{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "WebInspector",
      "version": "537.36"
    },
    "pages": [
      {
        "startedDateTime": "2020-06-09T03:23:57.270Z",
        "id": "page_2",
        "title": "https://discourse.gnome.org/",
        "pageTimings": {
          "onContentLoad": 23830.98400000017,
          "onLoad": null
        }
      }
    ],
    "entries": [
      {
        "startedDateTime": "2020-06-09T03:23:57.270Z",
        "time": 5157.89400000358,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache, no-store"
            },
            {
              "name": "Content-Security-Policy",
              "value": "base-uri 'none'; object-src 'none'; script-src 'report-sample' https://discourse.gnome.org/logs/ https://discourse.gnome.org/sidekiq/ https://discourse.gnome.org/mini-profiler-resources/ https://discourse.gnome.org/assets/ https://discourse.gnome.org/brotli_asset/ https://discourse.gnome.org/extra-locales/ https://discourse.gnome.org/highlight-js/ https://discourse.gnome.org/javascripts/ https://discourse.gnome.org/plugins/ https://discourse.gnome.org/theme-javascripts/ https://discourse.gnome.org/svg-sprite/; worker-src 'self' blob:"
            },
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Discourse-Cached",
              "value": "skip"
            },
            {
              "name": "X-Discourse-Route",
              "value": "categories/index"
            },
            {
              "name": "X-Discourse-TrackView",
              "value": "1"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Request-Id",
              "value": "b886bd8b-b92f-485c-92c6-65c94cd76d15"
            },
            {
              "name": "X-Runtime",
              "value": "0.085102"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            }
          ],
          "cookies": [],
          "content": {
            "size": 137961,
            "mimeType": "text/html",
            "text": "<!DOCTYPE html>\n<html lang=\"en-US\" class=\"desktop-view not-mobile-device text-size-normal anon\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>GNOME Discourse - GNOME discussions</title>\n    <meta name=\"description\" content=\"GNOME Project and Community related discussions\">\n    <meta name=\"discourse_theme_ids\" content=\"5\">\n    <meta name=\"discourse_current_homepage\" content=\"categories\">\n    <meta name=\"generator\" content=\"Discourse 2.4.5 - https://github.com/discourse/discourse version 53c7d0200a67ba1a87aeb0f23370c2081249bf21\">\n<link rel=\"icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\">\n<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\">\n<meta name=\"theme-color\" content=\"#4a86cf\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover\">\n\n<script type=\"application/ld+json\">{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https://discourse.gnome.org\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://discourse.gnome.org/search?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"}}</script>\n<link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://discourse.gnome.org/opensearch.xml\" title=\"GNOME Discourse Search\">\n\n    \n\n      <meta name=\"fragment\" content=\"!\">\n\n\n    \n\n    <link rel=\"preload\" href=\"/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js\" as=\"script\">\n<script src=\"/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js\" as=\"script\">\n<script src=\"/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js\" as=\"script\">\n<script src=\"/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js\" as=\"script\">\n<script src=\"/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js\" as=\"script\">\n<script src=\"/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js\" as=\"script\">\n<script src=\"/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js\" as=\"script\">\n<script src=\"/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js\" as=\"script\">\n<script src=\"/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js\"></script>\n\n\n      \n      \n      <link href=\"static.gnome.org/css/fonts.css\" rel=\"stylesheet\">\n\n    \n    \n    <link rel=\"manifest\" href=\"/manifest.webmanifest\" crossorigin=\"use-credentials\">\n\n\n      <link href=\"/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop\" data-theme-id=\"5\"/>\n\n\n  <link href=\"/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-details\" data-theme-id=\"5\"/>\n  \n  <link href=\"/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-ldap-auth\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-local-dates\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-presence\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-solved\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"lazy-yt\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll_desktop\" data-theme-id=\"5\"/>\n\n  <link href=\"/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop_theme\" data-theme-id=\"5\"/>\n\n\n      <meta property=\"og:site_name\" content=\"GNOME Discourse\" />\n<meta name=\"twitter:card\" content=\"summary\" />\n<meta name=\"twitter:image\" content=\"https://discourse.gnome.org/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\" />\n<meta property=\"og:image\" content=\"https://discourse.gnome.org/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\" />\n<meta property=\"og:url\" content=\"https://discourse.gnome.org/\" />\n<meta name=\"twitter:url\" content=\"https://discourse.gnome.org/\" />\n<meta property=\"og:title\" content=\"GNOME Discourse\" />\n<meta name=\"twitter:title\" content=\"GNOME Discourse\" />\n<meta property=\"og:description\" content=\"GNOME Project and Community related discussions\" />\n<meta name=\"twitter:description\" content=\"GNOME Project and Community related discussions\" />\n\n\n    \n\n    <meta id=\"data-discourse-setup\" data-base-url=\"https://discourse.gnome.org\" data-base-uri=\"\" data-environment=\"production\" data-letter-avatar-version=\"5_5460e1b8e90a3c342f76c51996a0a18f\" data-markdown-it-url=\"/assets/markdown-it-bundle-19e3108053fd49dc05d30b583403e585788a2aa398067fccde110fef8280b4d6.js\" data-service-worker-url=\"service-worker-29f380effd40cdaa98cfa88ea74b0c66ba6ca6c901f666253c7592d49fa5e7d4.js\" data-default-locale=\"en_US\" data-asset-version=\"d0f1dac6b6999784143e1ab5d596fb3b\" data-disable-custom-css=\"false\" data-highlight-js-path=\"/highlight-js/discourse.gnome.org/6a88550999021fba7568661984347ac5e0e0b8b7.js\" data-svg-sprite-path=\"/svg-sprite/discourse.gnome.org/svg-5-45ccff676fa06e2dd919b3caa08f8673ef7bc45f.js\" data-enable-js-error-reporting=\"true\">\n\n  </head>\n\n  <body class=\"\">\n    \n    <noscript data-path=\"/\">\n      \n  <header class=\"d-header\">\n    <div class=\"wrap\">\n      <div class=\"contents clearfix\">\n        <div class=\"title\">\n          <a href=\"/\">\n              <img src=\"https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\" alt=\"GNOME Discourse\" id=\"site-logo\">\n          </a>\n        </div>\n        <div class=\"panel clearfix\">\n            <span class='header-buttons'>\n                <a href=\"/signup\" class='btn btn-primary btn-small sign-up-button'>Sign Up</a>\n              <a href=\"/login\" class='btn btn-primary btn-small login-button btn-icon-text'><svg class=\"fa d-icon svg-icon svg-node\" aria-hidden=\"true\"><svg id=\"user\" viewBox=\"0 0 448 512\">\n    <path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/>\n  </svg></svg>\nLog In</a>\n            </span>\n        </div>\n      </div>\n    </div>\n  </header>\n\n      <div id=\"main-outlet\" class=\"wrap\">\n        <!-- preload-content: -->\n        <div itemscope itemtype='http://schema.org/ItemList'>\n  <table class='category-list'>\n    <thead>\n      <tr>\n        <th class='category'>Category</th>\n        <th class='topics'>Topics</th>\n      </tr>\n    </thead>\n    <tbody>\n      <meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'>\n        <tr>\n          <td class='category' style='border-color: #0088CC;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='0'>\n              <meta itemprop='url' content='/c/desktop'>\n              <h3>\n                <a href='/c/desktop'>\n                  <span itemprop='name'>Desktop</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='156 Topics'>156</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #9EB83B;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='1'>\n              <meta itemprop='url' content='/c/applications'>\n              <h3>\n                <a href='/c/applications'>\n                  <span itemprop='name'>Applications</span>\n                </a>\n              </h3>\n              <div itemprop='description'>GNOME ships with various applications. This category is for discussion about those applications.<br>\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='92 Topics'>92</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #F7941D;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='2'>\n              <meta itemprop='url' content='/c/platform'>\n              <h3>\n                <a href='/c/platform'>\n                  <span itemprop='name'>Platform</span>\n                </a>\n              </h3>\n              <div itemprop='description'>A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='416 Topics'>416</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #652D90;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='3'>\n              <meta itemprop='url' content='/c/community'>\n              <h3>\n                <a href='/c/community'>\n                  <span itemprop='name'>Community</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Anything that isn’t used to discuss code or development goes here!</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='72 Topics'>72</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #808281;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='4'>\n              <meta itemprop='url' content='/c/site-feedback'>\n              <h3>\n                <a href='/c/site-feedback'>\n                  <span itemprop='name'>Site Feedback</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Discussion about this site, its organization, how it works, and how we can improve it.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='24 Topics'>24</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #92278F;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='5'>\n              <meta itemprop='url' content='/c/international'>\n              <h3>\n                <a href='/c/international'>\n                  <span itemprop='name'>International</span>\n                </a>\n              </h3>\n              <div itemprop='description'>GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='5 Topics'>5</div>\n          </td>\n        </tr>\n    </tbody>\n  </table>\n</div>\n\n\n\n\n        <!-- :preload-content -->\n        <footer>\n          <nav itemscope itemtype='http://schema.org/SiteNavigationElement'>\n            <a href='/'>Home</a>\n            <a href=\"/categories\">Categories</a>\n            <a href=\"/guidelines\">FAQ/Guidelines</a>\n            <a href=\"/tos\">Terms of Service</a>\n            <a href=\"/privacy\">Privacy Policy</a>\n          </nav>\n        </footer>\n      </div>\n\n      <footer id='noscript-footer'>\n        <p style=\"text-align:center;\">Powered by <a href=\"https://www.discourse.org\">Discourse</a>, best viewed with JavaScript enabled</p>\n      </footer>\n    </noscript>\n\n      \n      \n\n    <section id='main'>\n    </section>\n\n    <div id='offscreen-content'>\n    </div>\n\n      <form id='hidden-login-form' method=\"post\" action=\"/login\" style=\"display: none;\">\n        <input name=\"username\" type=\"text\"     id=\"signin_username\">\n        <input name=\"password\" type=\"password\" id=\"signin_password\">\n        <input name=\"redirect\" type=\"hidden\">\n        <input type=\"submit\" id=\"signin-button\" value=\"Log In\">\n      </form>\n\n    <div class=\"hidden\" id=\"data-preloaded\" data-preloaded=\"{&quot;site&quot;:&quot;{\\&quot;default_archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;notification_types\\&quot;:{\\&quot;mentioned\\&quot;:1,\\&quot;replied\\&quot;:2,\\&quot;quoted\\&quot;:3,\\&quot;edited\\&quot;:4,\\&quot;liked\\&quot;:5,\\&quot;private_message\\&quot;:6,\\&quot;invited_to_private_message\\&quot;:7,\\&quot;invitee_accepted\\&quot;:8,\\&quot;posted\\&quot;:9,\\&quot;moved_post\\&quot;:10,\\&quot;linked\\&quot;:11,\\&quot;granted_badge\\&quot;:12,\\&quot;invited_to_topic\\&quot;:13,\\&quot;custom\\&quot;:14,\\&quot;group_mentioned\\&quot;:15,\\&quot;group_message_summary\\&quot;:16,\\&quot;watching_first_post\\&quot;:17,\\&quot;topic_reminder\\&quot;:18,\\&quot;liked_consolidated\\&quot;:19,\\&quot;post_approved\\&quot;:20,\\&quot;code_review_commit_approved\\&quot;:21,\\&quot;membership_request_accepted\\&quot;:22,\\&quot;membership_request_consolidated\\&quot;:23},\\&quot;post_types\\&quot;:{\\&quot;regular\\&quot;:1,\\&quot;moderator_action\\&quot;:2,\\&quot;small_action\\&quot;:3,\\&quot;whisper\\&quot;:4},\\&quot;groups\\&quot;:[{\\&quot;id\\&quot;:43,\\&quot;name\\&quot;:\\&quot;foundation-board\\&quot;},{\\&quot;id\\&quot;:42,\\&quot;name\\&quot;:\\&quot;foundation-members\\&quot;},{\\&quot;id\\&quot;:41,\\&quot;name\\&quot;:\\&quot;foundation-staff\\&quot;},{\\&quot;id\\&quot;:46,\\&quot;name\\&quot;:\\&quot;guadec-organizers\\&quot;},{\\&quot;id\\&quot;:45,\\&quot;name\\&quot;:\\&quot;guadec-volunteers\\&quot;}],\\&quot;filters\\&quot;:[\\&quot;latest\\&quot;,\\&quot;unread\\&quot;,\\&quot;new\\&quot;,\\&quot;read\\&quot;,\\&quot;posted\\&quot;,\\&quot;bookmarks\\&quot;],\\&quot;periods\\&quot;:[\\&quot;all\\&quot;,\\&quot;yearly\\&quot;,\\&quot;quarterly\\&quot;,\\&quot;monthly\\&quot;,\\&quot;weekly\\&quot;,\\&quot;daily\\&quot;],\\&quot;top_menu_items\\&quot;:[\\&quot;latest\\&quot;,\\&quot;unread\\&quot;,\\&quot;new\\&quot;,\\&quot;read\\&quot;,\\&quot;posted\\&quot;,\\&quot;bookmarks\\&quot;,\\&quot;categories\\&quot;,\\&quot;top\\&quot;],\\&quot;anonymous_top_menu_items\\&quot;:[\\&quot;latest\\&quot;,\\&quot;top\\&quot;,\\&quot;categories\\&quot;,\\&quot;categories\\&quot;,\\&quot;top\\&quot;],\\&quot;uncategorized_category_id\\&quot;:1,\\&quot;is_readonly\\&quot;:false,\\&quot;disabled_plugins\\&quot;:[\\&quot;discourse-oauth2-basic\\&quot;,\\&quot;discourse-saved-searches\\&quot;],\\&quot;user_field_max_length\\&quot;:2048,\\&quot;post_action_types\\&quot;:[{\\&quot;id\\&quot;:1,\\&quot;name_key\\&quot;:\\&quot;bookmark\\&quot;,\\&quot;name\\&quot;:\\&quot;Bookmark\\&quot;,\\&quot;description\\&quot;:\\&quot;Bookmark this post\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Bookmark this post\\&quot;,\\&quot;long_form\\&quot;:\\&quot;bookmarked this post\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:2,\\&quot;name_key\\&quot;:\\&quot;like\\&quot;,\\&quot;name\\&quot;:\\&quot;Like\\&quot;,\\&quot;description\\&quot;:\\&quot;Like this post\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Like this post\\&quot;,\\&quot;long_form\\&quot;:\\&quot;liked this\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:3,\\&quot;name_key\\&quot;:\\&quot;off_topic\\&quot;,\\&quot;name\\&quot;:\\&quot;Off-Topic\\&quot;,\\&quot;description\\&quot;:\\&quot;This post is not relevant to the current discussion as defined by the title and first post, and should probably be moved elsewhere.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Not relevant to the discussion\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as off-topic\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:4,\\&quot;name_key\\&quot;:\\&quot;inappropriate\\&quot;,\\&quot;name\\&quot;:\\&quot;Inappropriate\\&quot;,\\&quot;description\\&quot;:\\&quot;This post contains content that a reasonable person would consider offensive, abusive, or a violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;A violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as inappropriate\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:8,\\&quot;name_key\\&quot;:\\&quot;spam\\&quot;,\\&quot;name\\&quot;:\\&quot;Spam\\&quot;,\\&quot;description\\&quot;:\\&quot;This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;This is an advertisement or vandalism\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as spam\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:6,\\&quot;name_key\\&quot;:\\&quot;notify_user\\&quot;,\\&quot;name\\&quot;:\\&quot;Send @{{username}} a message\\&quot;,\\&quot;description\\&quot;:\\&quot;I want to talk to this person directly and personally about their post.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;I want to talk to this person directly and personally about their post.\\&quot;,\\&quot;long_form\\&quot;:\\&quot;messaged user\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true},{\\&quot;id\\&quot;:null,\\&quot;name_key\\&quot;:null,\\&quot;name\\&quot;:\\&quot;translation missing: en_US.post_action_types..title\\&quot;,\\&quot;description\\&quot;:\\&quot;translation missing: en_US.post_action_types.description\\&quot;,\\&quot;short_description\\&quot;:\\&quot;translation missing: en_US.post_action_types.short_description\\&quot;,\\&quot;long_form\\&quot;:\\&quot;translation missing: en_US.post_action_types..long_form\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:7,\\&quot;name_key\\&quot;:\\&quot;notify_moderators\\&quot;,\\&quot;name\\&quot;:\\&quot;Something Else\\&quot;,\\&quot;description\\&quot;:\\&quot;This post requires staff attention for another reason not listed above.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Requires staff attention for another reason\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this for staff attention\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true}],\\&quot;topic_flag_types\\&quot;:[{\\&quot;id\\&quot;:4,\\&quot;name_key\\&quot;:\\&quot;inappropriate\\&quot;,\\&quot;name\\&quot;:\\&quot;Inappropriate\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic contains content that a reasonable person would consider offensive, abusive, or a violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;A violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as inappropriate\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:8,\\&quot;name_key\\&quot;:\\&quot;spam\\&quot;,\\&quot;name\\&quot;:\\&quot;Spam\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic is an advertisement. It is not useful or relevant to this site, but promotional in nature.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;This is an advertisement\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as spam\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:null,\\&quot;name_key\\&quot;:null,\\&quot;name\\&quot;:\\&quot;translation missing: en_US.topic_flag_types..title\\&quot;,\\&quot;description\\&quot;:\\&quot;translation missing: en_US.topic_flag_types.description\\&quot;,\\&quot;short_description\\&quot;:\\&quot;translation missing: en_US.topic_flag_types.short_description\\&quot;,\\&quot;long_form\\&quot;:\\&quot;translation missing: en_US.topic_flag_types..long_form\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:7,\\&quot;name_key\\&quot;:\\&quot;notify_moderators\\&quot;,\\&quot;name\\&quot;:\\&quot;Something Else\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic requires general staff attention based on the \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eguidelines\\\\u003c/a\\\\u003e, \\\\u003ca href=\\\\\\&quot;/tos\\\\\\&quot;\\\\u003eTOS\\\\u003c/a\\\\u003e, or for another reason not listed above.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Requires staff attention for another reason\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this for moderator attention\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true}],\\&quot;can_create_tag\\&quot;:null,\\&quot;can_tag_topics\\&quot;:null,\\&quot;can_tag_pms\\&quot;:false,\\&quot;tags_filter_regexp\\&quot;:\\&quot;[/\\\\\\\\?#\\\\\\\\[\\\\\\\\]@!\\\\\\\\$\\\\u0026&#39;\\\\\\\\(\\\\\\\\)\\\\\\\\*\\\\\\\\+,;=\\\\\\\\.%\\\\\\\\\\\\\\\\`^\\\\\\\\s|\\\\\\\\{\\\\\\\\}\\\\\\&quot;\\\\u003c\\\\u003e]+\\&quot;,\\&quot;top_tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;glib\\&quot;,\\&quot;python\\&quot;,\\&quot;vala\\&quot;,\\&quot;documentation\\&quot;,\\&quot;builder\\&quot;,\\&quot;nautilus\\&quot;,\\&quot;windows\\&quot;,\\&quot;theme\\&quot;,\\&quot;tracker\\&quot;,\\&quot;gstreamer\\&quot;,\\&quot;javascript\\&quot;,\\&quot;c\\&quot;,\\&quot;flatpak\\&quot;,\\&quot;pango\\&quot;,\\&quot;libsoup\\&quot;,\\&quot;perl\\&quot;,\\&quot;evolution\\&quot;,\\&quot;announcement\\&quot;,\\&quot;cplusplus\\&quot;,\\&quot;guadec\\&quot;,\\&quot;newcomer\\&quot;,\\&quot;rust\\&quot;,\\&quot;boxes\\&quot;,\\&quot;cairo\\&quot;,\\&quot;development\\&quot;,\\&quot;events\\&quot;,\\&quot;gsoc\\&quot;,\\&quot;macos\\&quot;,\\&quot;minutes\\&quot;],\\&quot;topic_featured_link_allowed_category_ids\\&quot;:[10,129,63,17,34,1,25,64,13,4,219,12,2,8,23,6,9,334,3,114,336,5,335,11,7],\\&quot;user_themes\\&quot;:[{\\&quot;theme_id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;Dark\\&quot;,\\&quot;default\\&quot;:false},{\\&quot;theme_id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Deneb\\&quot;,\\&quot;default\\&quot;:true},{\\&quot;theme_id\\&quot;:2,\\&quot;name\\&quot;:\\&quot;Light\\&quot;,\\&quot;default\\&quot;:false}],\\&quot;censored_regexp\\&quot;:null,\\&quot;categories\\&quot;:[{\\&quot;id\\&quot;:6,\\&quot;name\\&quot;:\\&quot;Desktop\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;desktop\\&quot;,\\&quot;topic_count\\&quot;:156,\\&quot;post_count\\&quot;:813,\\&quot;position\\&quot;:0,\\&quot;description\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-desktop-category/15\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:7,\\&quot;name\\&quot;:\\&quot;Applications\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;applications\\&quot;,\\&quot;topic_count\\&quot;:92,\\&quot;post_count\\&quot;:455,\\&quot;position\\&quot;:1,\\&quot;description\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\u003cbr\\\\u003e\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications. \\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-applications-category/16\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;false\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Platform\\&quot;,\\&quot;color\\&quot;:\\&quot;F7941D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;platform\\&quot;,\\&quot;topic_count\\&quot;:416,\\&quot;post_count\\&quot;:2552,\\&quot;position\\&quot;:2,\\&quot;description\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-platform-category/14\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:9,\\&quot;name\\&quot;:\\&quot;Core\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;core\\&quot;,\\&quot;topic_count\\&quot;:110,\\&quot;post_count\\&quot;:616,\\&quot;position\\&quot;:3,\\&quot;description\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;description_text\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-core-category/18\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:11,\\&quot;name\\&quot;:\\&quot;Language bindings\\&quot;,\\&quot;color\\&quot;:\\&quot;BF1E2E\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;language-bindings\\&quot;,\\&quot;topic_count\\&quot;:55,\\&quot;post_count\\&quot;:327,\\&quot;position\\&quot;:4,\\&quot;description\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-language-bindings-category/20\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:8,\\&quot;name\\&quot;:\\&quot;Community\\&quot;,\\&quot;color\\&quot;:\\&quot;652D90\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;community\\&quot;,\\&quot;topic_count\\&quot;:72,\\&quot;post_count\\&quot;:567,\\&quot;position\\&quot;:6,\\&quot;description\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-category/17\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:10,\\&quot;name\\&quot;:\\&quot;Engagement\\&quot;,\\&quot;color\\&quot;:\\&quot;ED207B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;engagement\\&quot;,\\&quot;topic_count\\&quot;:36,\\&quot;post_count\\&quot;:148,\\&quot;position\\&quot;:7,\\&quot;description\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-engagement-category/19\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;Site Feedback\\&quot;,\\&quot;color\\&quot;:\\&quot;808281\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;site-feedback\\&quot;,\\&quot;topic_count\\&quot;:24,\\&quot;post_count\\&quot;:132,\\&quot;position\\&quot;:8,\\&quot;description\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-site-feedback-category/2\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:23,\\&quot;name\\&quot;:\\&quot;International\\&quot;,\\&quot;color\\&quot;:\\&quot;92278F\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;international\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:12,\\&quot;position\\&quot;:9,\\&quot;description\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-international-category/1284\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;Uncategorized\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;uncategorized\\&quot;,\\&quot;topic_count\\&quot;:0,\\&quot;post_count\\&quot;:0,\\&quot;position\\&quot;:13,\\&quot;description\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:null,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:25,\\&quot;name\\&quot;:\\&quot;Brazilian Portuguese\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;brazilian-portuguese\\&quot;,\\&quot;topic_count\\&quot;:3,\\&quot;post_count\\&quot;:9,\\&quot;position\\&quot;:15,\\&quot;description\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-brazilian-portuguese-category/1285\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:23,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:64,\\&quot;name\\&quot;:\\&quot;Portals\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;portals\\&quot;,\\&quot;topic_count\\&quot;:3,\\&quot;post_count\\&quot;:22,\\&quot;position\\&quot;:18,\\&quot;description\\&quot;:null,\\&quot;description_text\\&quot;:null,\\&quot;description_excerpt\\&quot;:null,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-portals-category/1649\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:334,\\&quot;name\\&quot;:\\&quot;Outreach\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;outreach\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:8,\\&quot;position\\&quot;:22,\\&quot;description\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-outreach-category/2947\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:335,\\&quot;name\\&quot;:\\&quot;Community Engagement Challenge\\&quot;,\\&quot;color\\&quot;:\\&quot;E45735\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;cechallenge\\&quot;,\\&quot;topic_count\\&quot;:2,\\&quot;post_count\\&quot;:46,\\&quot;position\\&quot;:23,\\&quot;description\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at \\\\u003ca href=\\\\\\&quot;http://www.gnome.org/challenge\\\\\\&quot;\\\\u003ewww.gnome.org/challenge\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at www.gnome.org\\\\u0026#x2F;challenge.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at \\\\u003ca href=\\\\\\&quot;http://www.gnome.org/challenge\\\\\\&quot;\\\\u003ewww.gnome.org/challenge\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-engagement-challenge-category/3101\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:336,\\&quot;name\\&quot;:\\&quot;Elections and Referendums\\&quot;,\\&quot;color\\&quot;:\\&quot;12A89D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;elections-and-referendums\\&quot;,\\&quot;topic_count\\&quot;:6,\\&quot;post_count\\&quot;:15,\\&quot;position\\&quot;:24,\\&quot;description\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-elections-and-referendums-category/3338\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:null,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null}],\\&quot;trust_levels\\&quot;:[{\\&quot;id\\&quot;:0,\\&quot;name\\&quot;:\\&quot;new user\\&quot;},{\\&quot;id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;basic user\\&quot;},{\\&quot;id\\&quot;:2,\\&quot;name\\&quot;:\\&quot;member\\&quot;},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;regular\\&quot;},{\\&quot;id\\&quot;:4,\\&quot;name\\&quot;:\\&quot;leader\\&quot;}],\\&quot;archetypes\\&quot;:[{\\&quot;id\\&quot;:\\&quot;regular\\&quot;,\\&quot;name\\&quot;:\\&quot;Regular Topic\\&quot;,\\&quot;options\\&quot;:[]},{\\&quot;id\\&quot;:\\&quot;banner\\&quot;,\\&quot;name\\&quot;:\\&quot;Banner Topic\\&quot;,\\&quot;options\\&quot;:[]}],\\&quot;user_fields\\&quot;:[],\\&quot;auth_providers\\&quot;:[{\\&quot;name\\&quot;:\\&quot;google_oauth2\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:null,\\&quot;message_override\\&quot;:null,\\&quot;frame_width\\&quot;:850,\\&quot;frame_height\\&quot;:500,\\&quot;can_connect\\&quot;:true,\\&quot;can_revoke\\&quot;:true,\\&quot;icon\\&quot;:null},{\\&quot;name\\&quot;:\\&quot;github\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:null,\\&quot;message_override\\&quot;:null,\\&quot;frame_width\\&quot;:null,\\&quot;frame_height\\&quot;:null,\\&quot;can_connect\\&quot;:true,\\&quot;can_revoke\\&quot;:true,\\&quot;icon\\&quot;:\\&quot;fab-github\\&quot;},{\\&quot;name\\&quot;:\\&quot;ldap\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:\\&quot;with LDAP\\&quot;,\\&quot;message_override\\&quot;:\\&quot;Log in with your LDAP credentials\\&quot;,\\&quot;frame_width\\&quot;:920,\\&quot;frame_height\\&quot;:800,\\&quot;can_connect\\&quot;:false,\\&quot;can_revoke\\&quot;:false,\\&quot;icon\\&quot;:null}]}&quot;,&quot;siteSettings&quot;:&quot;{\\&quot;default_locale\\&quot;:\\&quot;en_US\\&quot;,\\&quot;title\\&quot;:\\&quot;GNOME Discourse\\&quot;,\\&quot;short_site_description\\&quot;:\\&quot;GNOME discussions\\&quot;,\\&quot;contact_email\\&quot;:\\&quot;gnome-sysadmin@gnome.org\\&quot;,\\&quot;contact_url\\&quot;:\\&quot;https://www.gnome.org\\&quot;,\\&quot;logo\\&quot;:\\&quot;/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;logo_small\\&quot;:\\&quot;/uploads/default/original/1X/52191724761bd41e862053e2261445e1f9c9713a.png\\&quot;,\\&quot;digest_logo\\&quot;:\\&quot;\\&quot;,\\&quot;mobile_logo\\&quot;:\\&quot;\\&quot;,\\&quot;large_icon\\&quot;:\\&quot;/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\\&quot;,\\&quot;favicon\\&quot;:\\&quot;/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\\&quot;,\\&quot;apple_touch_icon\\&quot;:\\&quot;/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\\&quot;,\\&quot;allow_user_locale\\&quot;:true,\\&quot;support_mixed_text_direction\\&quot;:false,\\&quot;suggested_topics\\&quot;:5,\\&quot;ga_universal_tracking_code\\&quot;:\\&quot;\\&quot;,\\&quot;ga_universal_domain_name\\&quot;:\\&quot;auto\\&quot;,\\&quot;gtm_container_id\\&quot;:\\&quot;\\&quot;,\\&quot;top_menu\\&quot;:\\&quot;categories|latest|new|unread|top\\&quot;,\\&quot;post_menu\\&quot;:\\&quot;read|like|share|flag|edit|bookmark|bookmarkWithReminder|delete|admin|reply\\&quot;,\\&quot;post_menu_hidden_items\\&quot;:\\&quot;flag|bookmark|bookmarkWithReminder|edit|delete|admin\\&quot;,\\&quot;share_links\\&quot;:\\&quot;twitter|facebook|email\\&quot;,\\&quot;desktop_category_page_style\\&quot;:\\&quot;categories_and_top_topics\\&quot;,\\&quot;category_colors\\&quot;:\\&quot;BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735\\&quot;,\\&quot;category_style\\&quot;:\\&quot;bullet\\&quot;,\\&quot;max_category_nesting\\&quot;:2,\\&quot;enable_mobile_theme\\&quot;:true,\\&quot;relative_date_duration\\&quot;:30,\\&quot;fixed_category_positions\\&quot;:true,\\&quot;fixed_category_positions_on_create\\&quot;:true,\\&quot;enable_badges\\&quot;:true,\\&quot;enable_badge_sql\\&quot;:false,\\&quot;enable_whispers\\&quot;:false,\\&quot;enable_bookmarks_with_reminders\\&quot;:false,\\&quot;push_notifications_prompt\\&quot;:true,\\&quot;vapid_public_key_bytes\\&quot;:\\&quot;4|43|50|22|106|86|237|72|235|48|218|180|82|250|2|96|80|161|86|233|118|163|139|208|229|27|175|250|234|199|91|199|221|192|179|159|181|128|52|79|52|78|39|168|67|61|38|196|155|73|3|207|172|144|31|66|63|141|110|60|155|102|68|91|8\\&quot;,\\&quot;invite_only\\&quot;:false,\\&quot;login_required\\&quot;:false,\\&quot;must_approve_users\\&quot;:false,\\&quot;enable_local_logins\\&quot;:true,\\&quot;enable_local_logins_via_email\\&quot;:true,\\&quot;allow_new_registrations\\&quot;:true,\\&quot;enable_signup_cta\\&quot;:true,\\&quot;enable_sso\\&quot;:false,\\&quot;sso_overrides_email\\&quot;:false,\\&quot;sso_overrides_avatar\\&quot;:false,\\&quot;min_username_length\\&quot;:3,\\&quot;max_username_length\\&quot;:20,\\&quot;unicode_usernames\\&quot;:false,\\&quot;min_password_length\\&quot;:10,\\&quot;min_admin_password_length\\&quot;:15,\\&quot;logout_redirect\\&quot;:\\&quot;\\&quot;,\\&quot;full_name_required\\&quot;:false,\\&quot;enable_names\\&quot;:true,\\&quot;invites_per_page\\&quot;:40,\\&quot;delete_user_max_post_age\\&quot;:60,\\&quot;delete_all_posts_max\\&quot;:15,\\&quot;prioritize_username_in_ux\\&quot;:true,\\&quot;enable_user_directory\\&quot;:true,\\&quot;allow_anonymous_posting\\&quot;:false,\\&quot;anonymous_posting_min_trust_level\\&quot;:1,\\&quot;hide_user_profiles_from_public\\&quot;:false,\\&quot;allow_featured_topic_on_user_profiles\\&quot;:true,\\&quot;hide_suspension_reasons\\&quot;:false,\\&quot;ignored_users_count_message_threshold\\&quot;:5,\\&quot;ignored_users_message_gap_days\\&quot;:365,\\&quot;user_selected_primary_groups\\&quot;:false,\\&quot;enable_group_directory\\&quot;:true,\\&quot;enable_category_group_review\\&quot;:true,\\&quot;min_post_length\\&quot;:20,\\&quot;min_first_post_length\\&quot;:20,\\&quot;min_personal_message_post_length\\&quot;:10,\\&quot;max_post_length\\&quot;:32000,\\&quot;topic_featured_link_enabled\\&quot;:true,\\&quot;min_topic_title_length\\&quot;:15,\\&quot;max_topic_title_length\\&quot;:255,\\&quot;min_personal_message_title_length\\&quot;:2,\\&quot;allow_uncategorized_topics\\&quot;:false,\\&quot;min_title_similar_length\\&quot;:10,\\&quot;enable_personal_messages\\&quot;:true,\\&quot;enable_personal_email_messages\\&quot;:false,\\&quot;edit_history_visible_to_public\\&quot;:true,\\&quot;delete_removed_posts_after\\&quot;:24,\\&quot;traditional_markdown_linebreaks\\&quot;:false,\\&quot;enable_markdown_typographer\\&quot;:true,\\&quot;enable_markdown_linkify\\&quot;:true,\\&quot;markdown_linkify_tlds\\&quot;:\\&quot;com|net|org|io|co|tv|ru|cn|us|uk|me|de|fr|fi|gov\\&quot;,\\&quot;markdown_typographer_quotation_marks\\&quot;:\\&quot;“|”|‘|’\\&quot;,\\&quot;enable_rich_text_paste\\&quot;:true,\\&quot;suppress_reply_directly_below\\&quot;:true,\\&quot;suppress_reply_directly_above\\&quot;:true,\\&quot;max_reply_history\\&quot;:1,\\&quot;enable_mentions\\&quot;:true,\\&quot;newuser_max_images\\&quot;:1,\\&quot;newuser_max_attachments\\&quot;:0,\\&quot;show_pinned_excerpt_mobile\\&quot;:true,\\&quot;show_pinned_excerpt_desktop\\&quot;:true,\\&quot;display_name_on_posts\\&quot;:true,\\&quot;show_time_gap_days\\&quot;:7,\\&quot;short_progress_text_threshold\\&quot;:10000,\\&quot;default_code_lang\\&quot;:\\&quot;auto\\&quot;,\\&quot;autohighlight_all_code\\&quot;:false,\\&quot;highlighted_languages\\&quot;:\\&quot;apache|bash|cs|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|nginx|objectivec|ruby|perl|php|python|sql|handlebars\\&quot;,\\&quot;enable_emoji\\&quot;:true,\\&quot;enable_emoji_shortcuts\\&quot;:true,\\&quot;emoji_set\\&quot;:\\&quot;twitter\\&quot;,\\&quot;emoji_autocomplete_min_chars\\&quot;:0,\\&quot;enable_inline_emoji_translation\\&quot;:false,\\&quot;code_formatting_style\\&quot;:\\&quot;4-spaces-indent\\&quot;,\\&quot;allowed_href_schemes\\&quot;:\\&quot;\\&quot;,\\&quot;watched_words_regular_expressions\\&quot;:false,\\&quot;enable_advanced_editor_preview_sync\\&quot;:false,\\&quot;old_post_notice_days\\&quot;:14,\\&quot;email_time_window_mins\\&quot;:10,\\&quot;disable_digest_emails\\&quot;:false,\\&quot;email_in\\&quot;:true,\\&quot;disable_emails\\&quot;:\\&quot;no\\&quot;,\\&quot;bounce_score_threshold\\&quot;:4,\\&quot;max_image_size_kb\\&quot;:4096,\\&quot;max_attachment_size_kb\\&quot;:4096,\\&quot;authorized_extensions\\&quot;:\\&quot;jpg|jpeg|png|gif|pdf\\&quot;,\\&quot;authorized_extensions_for_staff\\&quot;:\\&quot;\\&quot;,\\&quot;max_image_width\\&quot;:690,\\&quot;max_image_height\\&quot;:500,\\&quot;prevent_anons_from_downloading_files\\&quot;:false,\\&quot;secure_media\\&quot;:false,\\&quot;enable_s3_uploads\\&quot;:false,\\&quot;allow_profile_backgrounds\\&quot;:true,\\&quot;allow_uploaded_avatars\\&quot;:true,\\&quot;allow_animated_avatars\\&quot;:false,\\&quot;default_avatars\\&quot;:\\&quot;\\&quot;,\\&quot;external_system_avatars_enabled\\&quot;:true,\\&quot;external_system_avatars_url\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png\\&quot;,\\&quot;selectable_avatars_enabled\\&quot;:false,\\&quot;allow_staff_to_upload_any_file_in_pm\\&quot;:true,\\&quot;simultaneous_uploads\\&quot;:5,\\&quot;tl1_requires_read_posts\\&quot;:30,\\&quot;tl3_links_no_follow\\&quot;:false,\\&quot;enforce_second_factor\\&quot;:\\&quot;no\\&quot;,\\&quot;moderators_view_emails\\&quot;:false,\\&quot;use_admin_ip_whitelist\\&quot;:false,\\&quot;allowed_iframes\\&quot;:\\&quot;https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/\\&quot;,\\&quot;max_oneboxes_per_post\\&quot;:50,\\&quot;reviewable_claiming\\&quot;:\\&quot;disabled\\&quot;,\\&quot;reviewable_default_topics\\&quot;:false,\\&quot;reviewable_default_visibility\\&quot;:\\&quot;low\\&quot;,\\&quot;alert_admins_if_errors_per_minute\\&quot;:0,\\&quot;alert_admins_if_errors_per_hour\\&quot;:0,\\&quot;max_prints_per_hour_per_user\\&quot;:5,\\&quot;enable_long_polling\\&quot;:true,\\&quot;long_polling_base_url\\&quot;:\\&quot;/\\&quot;,\\&quot;background_polling_interval\\&quot;:60000,\\&quot;polling_interval\\&quot;:3000,\\&quot;anon_polling_interval\\&quot;:30000,\\&quot;flush_timings_secs\\&quot;:60,\\&quot;verbose_localization\\&quot;:false,\\&quot;max_new_topics\\&quot;:500,\\&quot;enable_safe_mode\\&quot;:true,\\&quot;tos_url\\&quot;:\\&quot;\\&quot;,\\&quot;privacy_policy_url\\&quot;:\\&quot;https://www.gnome.org/privacy/\\&quot;,\\&quot;faq_url\\&quot;:\\&quot;\\&quot;,\\&quot;enable_backups\\&quot;:true,\\&quot;backup_location\\&quot;:\\&quot;local\\&quot;,\\&quot;maximum_backups\\&quot;:14,\\&quot;min_search_term_length\\&quot;:3,\\&quot;log_search_queries\\&quot;:true,\\&quot;version_checks\\&quot;:true,\\&quot;suppress_uncategorized_badge\\&quot;:false,\\&quot;header_dropdown_category_count\\&quot;:8,\\&quot;slug_generation_method\\&quot;:\\&quot;ascii\\&quot;,\\&quot;topic_views_heat_low\\&quot;:1000,\\&quot;topic_views_heat_medium\\&quot;:2000,\\&quot;topic_views_heat_high\\&quot;:3500,\\&quot;topic_post_like_heat_low\\&quot;:0.5,\\&quot;topic_post_like_heat_medium\\&quot;:1.0,\\&quot;topic_post_like_heat_high\\&quot;:2.0,\\&quot;history_hours_low\\&quot;:12,\\&quot;history_hours_medium\\&quot;:24,\\&quot;history_hours_high\\&quot;:48,\\&quot;cold_age_days_low\\&quot;:14,\\&quot;cold_age_days_medium\\&quot;:90,\\&quot;cold_age_days_high\\&quot;:180,\\&quot;global_notice\\&quot;:\\&quot;\\&quot;,\\&quot;show_create_topics_notice\\&quot;:true,\\&quot;bootstrap_mode_min_users\\&quot;:0,\\&quot;bootstrap_mode_enabled\\&quot;:false,\\&quot;automatically_unpin_topics\\&quot;:true,\\&quot;read_time_word_count\\&quot;:500,\\&quot;topic_page_title_includes_category\\&quot;:true,\\&quot;svg_icon_subset\\&quot;:\\&quot;\\&quot;,\\&quot;enable_new_user_card_route\\&quot;:false,\\&quot;disable_mailing_list_mode\\&quot;:false,\\&quot;default_topics_automatic_unpin\\&quot;:true,\\&quot;mute_all_categories_by_default\\&quot;:false,\\&quot;tagging_enabled\\&quot;:true,\\&quot;tag_style\\&quot;:\\&quot;bullet\\&quot;,\\&quot;max_tags_per_topic\\&quot;:5,\\&quot;max_tag_length\\&quot;:20,\\&quot;min_trust_level_to_tag_topics\\&quot;:\\&quot;0\\&quot;,\\&quot;max_tag_search_results\\&quot;:5,\\&quot;show_filter_by_tag\\&quot;:true,\\&quot;max_tags_in_filter_list\\&quot;:30,\\&quot;tags_sort_alphabetically\\&quot;:false,\\&quot;tags_listed_by_group\\&quot;:false,\\&quot;suppress_overlapping_tags_in_list\\&quot;:false,\\&quot;remove_muted_tags_from_latest\\&quot;:\\&quot;always\\&quot;,\\&quot;force_lowercase_tags\\&quot;:true,\\&quot;dashboard_general_tab_activity_metrics\\&quot;:\\&quot;page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies\\&quot;,\\&quot;details_enabled\\&quot;:true,\\&quot;discourse_internet_explorer_deprecation_warning\\&quot;:true,\\&quot;discourse_local_dates_email_format\\&quot;:\\&quot;YYYY-MM-DDTHH:mm:ss[Z]\\&quot;,\\&quot;discourse_local_dates_enabled\\&quot;:true,\\&quot;discourse_local_dates_default_formats\\&quot;:\\&quot;LLL|LTS|LL|LLLL\\&quot;,\\&quot;discourse_local_dates_default_timezones\\&quot;:\\&quot;Europe/Paris|America/Los_Angeles\\&quot;,\\&quot;discourse_narrative_bot_enabled\\&quot;:true,\\&quot;presence_enabled\\&quot;:true,\\&quot;poll_enabled\\&quot;:true,\\&quot;poll_maximum_options\\&quot;:20,\\&quot;poll_minimum_trust_level_to_create\\&quot;:1,\\&quot;poll_groupable_user_fields\\&quot;:\\&quot;\\&quot;,\\&quot;poll_export_data_explorer_query_id\\&quot;:-16,\\&quot;oauth2_enabled\\&quot;:false,\\&quot;oauth2_button_title\\&quot;:\\&quot;with OAuth2\\&quot;,\\&quot;saved_searches_enabled\\&quot;:false,\\&quot;saved_searches_min_trust_level\\&quot;:1,\\&quot;solved_enabled\\&quot;:true,\\&quot;allow_solved_on_all_topics\\&quot;:false,\\&quot;accept_all_solutions_trust_level\\&quot;:4,\\&quot;empty_box_on_unsolved\\&quot;:false,\\&quot;show_filter_by_solved_status\\&quot;:false,\\&quot;available_locales\\&quot;:\\&quot;[{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;اللغة العربية\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ar\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;беларуская мова\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;be\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;български език\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;bg\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;bosanski jezik\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;bs_BA\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;català\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ca\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;čeština\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;cs\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;dansk\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;da\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Deutsch\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;de\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;ελληνικά\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;el\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;English\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;en\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;English (United States)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;en_US\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Español\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;es\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;eesti\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;et\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;فارسی\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fa_IR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;suomi\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fi\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Français\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fr\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;galego\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;gl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;עברית\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;he\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;magyar\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;hu\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Հայերեն\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;hy\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Indonesian\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;id\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Italiano\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;it\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;日本語\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ja\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;한국어\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ko\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;lietuvių kalba\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;lt\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;latviešu valoda\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;lv\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Norsk bokmål\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;nb_NO\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Nederlands\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;nl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;język polski\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pl_PL\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Português\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pt\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Português (BR)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pt_BR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;limba română\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ro\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Русский\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ru\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;slovenčina\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sk\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;slovenščina\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Shqip\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sq\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;српски језик\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sr\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;svenska\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sv\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Kiswahili\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sw\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;తెలుగు\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;te\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;ไทย\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;th\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Türkçe\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;tr_TR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;українська мова\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;uk\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;اردو\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ur\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Việt Nam\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;vi\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;中文\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;zh_CN\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;中文 (TW)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;zh_TW\\\\\\&quot;}]\\&quot;,\\&quot;site_logo_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;site_logo_small_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/52191724761bd41e862053e2261445e1f9c9713a.png\\&quot;,\\&quot;site_mobile_logo_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;site_favicon_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\\&quot;}&quot;,&quot;customHTML&quot;:&quot;{\\&quot;top\\&quot;:\\&quot;\\&quot;,\\&quot;footer\\&quot;:\\&quot;\\&quot;}&quot;,&quot;banner&quot;:&quot;{\\&quot;html\\&quot;:\\&quot;\\u003cp\\u003eWe’ve now added the “Applications” category. This is for discussion of various apps that GNOME produces. Please tag posts with the application name if possible.\\u003cbr\\u003e\\\\n\\u003cstrong\\u003eNOTE:\\u003c\\\\/strong\\u003e not all application maintainers are using Discourse yet, you may also want to try a mailing list for support.\\u003c\\\\/p\\u003e\\&quot;,\\&quot;key\\&quot;:595,\\&quot;url\\&quot;:\\&quot;https://discourse.gnome.org/t/applications-category-opened/595\\&quot;}&quot;,&quot;customEmoji&quot;:&quot;[{\\&quot;name\\&quot;:\\&quot;gimp\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/69694cc406bf03c901cdb4a18aaa835cb367329a.png\\&quot;},{\\&quot;name\\&quot;:\\&quot;gnome\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/df97e7e32888ceafcea9ec94a52c9dfbbbf09150.png\\&quot;},{\\&quot;name\\&quot;:\\&quot;wanda\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/01295ef10c7c3c19158ea7e7af2ade9a60f3139f.png\\&quot;}]&quot;,&quot;categories_list&quot;:&quot;{\\&quot;category_list\\&quot;:{\\&quot;can_create_category\\&quot;:false,\\&quot;can_create_topic\\&quot;:false,\\&quot;draft\\&quot;:null,\\&quot;draft_key\\&quot;:\\&quot;new_topic\\&quot;,\\&quot;draft_sequence\\&quot;:null,\\&quot;categories\\&quot;:[{\\&quot;id\\&quot;:6,\\&quot;name\\&quot;:\\&quot;Desktop\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;desktop\\&quot;,\\&quot;topic_count\\&quot;:156,\\&quot;post_count\\&quot;:813,\\&quot;position\\&quot;:0,\\&quot;description\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-desktop-category/15\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:4,\\&quot;topics_month\\&quot;:12,\\&quot;topics_year\\&quot;:133,\\&quot;topics_all_time\\&quot;:156,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:7,\\&quot;name\\&quot;:\\&quot;Applications\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;applications\\&quot;,\\&quot;topic_count\\&quot;:92,\\&quot;post_count\\&quot;:455,\\&quot;position\\&quot;:1,\\&quot;description\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\u003cbr\\\\u003e\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications. \\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-applications-category/16\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:1,\\&quot;topics_month\\&quot;:15,\\&quot;topics_year\\&quot;:77,\\&quot;topics_all_time\\&quot;:92,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Platform\\&quot;,\\&quot;color\\&quot;:\\&quot;F7941D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;platform\\&quot;,\\&quot;topic_count\\&quot;:416,\\&quot;post_count\\&quot;:2552,\\&quot;position\\&quot;:2,\\&quot;description\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-platform-category/14\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:3,\\&quot;topics_week\\&quot;:13,\\&quot;topics_month\\&quot;:56,\\&quot;topics_year\\&quot;:480,\\&quot;topics_all_time\\&quot;:584,\\&quot;subcategory_ids\\&quot;:[9,11,64],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:8,\\&quot;name\\&quot;:\\&quot;Community\\&quot;,\\&quot;color\\&quot;:\\&quot;652D90\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;community\\&quot;,\\&quot;topic_count\\&quot;:72,\\&quot;post_count\\&quot;:567,\\&quot;position\\&quot;:6,\\&quot;description\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-category/17\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:7,\\&quot;topics_month\\&quot;:13,\\&quot;topics_year\\&quot;:105,\\&quot;topics_all_time\\&quot;:134,\\&quot;subcategory_ids\\&quot;:[10,334,335,336],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;Site Feedback\\&quot;,\\&quot;color\\&quot;:\\&quot;808281\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;site-feedback\\&quot;,\\&quot;topic_count\\&quot;:24,\\&quot;post_count\\&quot;:132,\\&quot;position\\&quot;:8,\\&quot;description\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-site-feedback-category/2\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:0,\\&quot;topics_month\\&quot;:1,\\&quot;topics_year\\&quot;:15,\\&quot;topics_all_time\\&quot;:24,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:23,\\&quot;name\\&quot;:\\&quot;International\\&quot;,\\&quot;color\\&quot;:\\&quot;92278F\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;international\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:12,\\&quot;position\\&quot;:9,\\&quot;description\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-international-category/1284\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:0,\\&quot;topics_month\\&quot;:1,\\&quot;topics_year\\&quot;:8,\\&quot;topics_all_time\\&quot;:8,\\&quot;subcategory_ids\\&quot;:[25],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null}]}}&quot;,&quot;topic_list_top&quot;:&quot;{\\&quot;users\\&quot;:[{\\&quot;id\\&quot;:2,\\&quot;username\\&quot;:\\&quot;nmcgovern\\&quot;,\\&quot;name\\&quot;:\\&quot;Neil McGovern\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/nmcgovern/{size}/11_2.png\\&quot;},{\\&quot;id\\&quot;:872,\\&quot;username\\&quot;:\\&quot;whatabouthisstatemen\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/w/e56c9b/{size}.png\\&quot;},{\\&quot;id\\&quot;:5,\\&quot;username\\&quot;:\\&quot;christopherdavis\\&quot;,\\&quot;name\\&quot;:\\&quot;Chris Davis\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/christopherdavis/{size}/19_2.png\\&quot;},{\\&quot;id\\&quot;:887,\\&quot;username\\&quot;:\\&quot;mactrent\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/bc79bd/{size}.png\\&quot;},{\\&quot;id\\&quot;:930,\\&quot;username\\&quot;:\\&quot;cwunder\\&quot;,\\&quot;name\\&quot;:\\&quot;Claudio Wunder\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cwunder/{size}/1159_2.png\\&quot;},{\\&quot;id\\&quot;:3,\\&quot;username\\&quot;:\\&quot;ebassi\\&quot;,\\&quot;name\\&quot;:\\&quot;Emmanuele Bassi\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ebassi/{size}/17_2.png\\&quot;},{\\&quot;id\\&quot;:43,\\&quot;username\\&quot;:\\&quot;januz\\&quot;,\\&quot;name\\&quot;:\\&quot;Diego Gangl\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/januz/{size}/364_2.png\\&quot;},{\\&quot;id\\&quot;:28,\\&quot;username\\&quot;:\\&quot;alexm\\&quot;,\\&quot;name\\&quot;:\\&quot;Alexander Mikhaylenko\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/a/3da27b/{size}.png\\&quot;},{\\&quot;id\\&quot;:680,\\&quot;username\\&quot;:\\&quot;FeRDNYC\\&quot;,\\&quot;name\\&quot;:\\&quot;Frank Dana\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ferdnyc/{size}/586_2.png\\&quot;},{\\&quot;id\\&quot;:878,\\&quot;username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;name\\&quot;:\\&quot;Michael Catanzaro\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/90ced4/{size}.png\\&quot;},{\\&quot;id\\&quot;:170,\\&quot;username\\&quot;:\\&quot;allanday\\&quot;,\\&quot;name\\&quot;:\\&quot;Allan Day\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/allanday/{size}/172_2.png\\&quot;},{\\&quot;id\\&quot;:30,\\&quot;username\\&quot;:\\&quot;fmuellner\\&quot;,\\&quot;name\\&quot;:\\&quot;Florian Müllner\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/fmuellner/{size}/39_2.png\\&quot;},{\\&quot;id\\&quot;:703,\\&quot;username\\&quot;:\\&quot;bberg\\&quot;,\\&quot;name\\&quot;:\\&quot;Benjamin Berg\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/b782af/{size}.png\\&quot;},{\\&quot;id\\&quot;:81,\\&quot;username\\&quot;:\\&quot;cassidyjames\\&quot;,\\&quot;name\\&quot;:\\&quot;Cassidy James Blaede\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cassidyjames/{size}/89_2.png\\&quot;},{\\&quot;id\\&quot;:852,\\&quot;username\\&quot;:\\&quot;Carson_Black\\&quot;,\\&quot;name\\&quot;:\\&quot;Carson Black\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/carson_black/{size}/823_2.png\\&quot;},{\\&quot;id\\&quot;:67,\\&quot;username\\&quot;:\\&quot;gbsneto\\&quot;,\\&quot;name\\&quot;:\\&quot;Georges Basile Stavracas Neto\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/gbsneto/{size}/71_2.png\\&quot;},{\\&quot;id\\&quot;:17,\\&quot;username\\&quot;:\\&quot;bilelmoussaoui\\&quot;,\\&quot;name\\&quot;:\\&quot;Bilal Elmoussaoui\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/bilelmoussaoui/{size}/29_2.png\\&quot;},{\\&quot;id\\&quot;:-1,\\&quot;username\\&quot;:\\&quot;system\\&quot;,\\&quot;name\\&quot;:\\&quot;system\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/system/{size}/2_2.png\\&quot;},{\\&quot;id\\&quot;:105,\\&quot;username\\&quot;:\\&quot;ramcq\\&quot;,\\&quot;name\\&quot;:\\&quot;Robert McQueen\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ramcq/{size}/112_2.png\\&quot;},{\\&quot;id\\&quot;:883,\\&quot;username\\&quot;:\\&quot;zyga\\&quot;,\\&quot;name\\&quot;:\\&quot;Zygmunt Krynicki\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/zyga/{size}/875_2.png\\&quot;},{\\&quot;id\\&quot;:826,\\&quot;username\\&quot;:\\&quot;jamesh\\&quot;,\\&quot;name\\&quot;:\\&quot;James Henstridge\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jamesh/{size}/782_2.png\\&quot;},{\\&quot;id\\&quot;:37,\\&quot;username\\&quot;:\\&quot;pgriffis\\&quot;,\\&quot;name\\&quot;:\\&quot;Patrick Griffis\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/p/8dc957/{size}.png\\&quot;},{\\&quot;id\\&quot;:528,\\&quot;username\\&quot;:\\&quot;mdhill\\&quot;,\\&quot;name\\&quot;:\\&quot;Michael Hill\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/e19b73/{size}.png\\&quot;},{\\&quot;id\\&quot;:694,\\&quot;username\\&quot;:\\&quot;j_arun_mani\\&quot;,\\&quot;name\\&quot;:\\&quot;J Arun Mani\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/j_arun_mani/{size}/603_2.png\\&quot;},{\\&quot;id\\&quot;:999,\\&quot;username\\&quot;:\\&quot;mwu\\&quot;,\\&quot;name\\&quot;:\\&quot;Melissa W\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/9d8465/{size}.png\\&quot;},{\\&quot;id\\&quot;:758,\\&quot;username\\&quot;:\\&quot;Bowler\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/8e7dd6/{size}.png\\&quot;},{\\&quot;id\\&quot;:1168,\\&quot;username\\&quot;:\\&quot;nandedamana\\&quot;,\\&quot;name\\&quot;:\\&quot;Nandakumar Edamana\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/n/e47c2d/{size}.png\\&quot;},{\\&quot;id\\&quot;:1251,\\&quot;username\\&quot;:\\&quot;Abhinav_Srivastava\\&quot;,\\&quot;name\\&quot;:\\&quot;Abhinav Srivastava\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/abhinav_srivastava/{size}/1377_2.png\\&quot;},{\\&quot;id\\&quot;:13,\\&quot;username\\&quot;:\\&quot;felipeborges\\&quot;,\\&quot;name\\&quot;:\\&quot;Felipe Borges\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/felipeborges/{size}/25_2.png\\&quot;},{\\&quot;id\\&quot;:409,\\&quot;username\\&quot;:\\&quot;esodan\\&quot;,\\&quot;name\\&quot;:\\&quot;Daniel Espinosa\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/esodan/{size}/1100_2.png\\&quot;},{\\&quot;id\\&quot;:134,\\&quot;username\\&quot;:\\&quot;nonoesimposible\\&quot;,\\&quot;name\\&quot;:\\&quot;NoNo\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/nonoesimposible/{size}/140_2.png\\&quot;},{\\&quot;id\\&quot;:44,\\&quot;username\\&quot;:\\&quot;andyholmes\\&quot;,\\&quot;name\\&quot;:\\&quot;Andy Holmes\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/andyholmes/{size}/54_2.png\\&quot;},{\\&quot;id\\&quot;:1107,\\&quot;username\\&quot;:\\&quot;blackpanther\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/3da27b/{size}.png\\&quot;},{\\&quot;id\\&quot;:1111,\\&quot;username\\&quot;:\\&quot;VaZark\\&quot;,\\&quot;name\\&quot;:\\&quot;Vasanth\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/vazark/{size}/1194_2.png\\&quot;},{\\&quot;id\\&quot;:1235,\\&quot;username\\&quot;:\\&quot;HROMANO\\&quot;,\\&quot;name\\&quot;:\\&quot;rv\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/h/fbc32d/{size}.png\\&quot;},{\\&quot;id\\&quot;:72,\\&quot;username\\&quot;:\\&quot;link\\&quot;,\\&quot;name\\&quot;:\\&quot;Link Dupont\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/link/{size}/75_2.png\\&quot;},{\\&quot;id\\&quot;:1045,\\&quot;username\\&quot;:\\&quot;bernard_ei8fdb\\&quot;,\\&quot;name\\&quot;:\\&quot;Bernard Tyers\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/bernard_ei8fdb/{size}/1119_2.png\\&quot;},{\\&quot;id\\&quot;:757,\\&quot;username\\&quot;:\\&quot;giacomoalbe\\&quot;,\\&quot;name\\&quot;:\\&quot;Giacomo Alberini\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/giacomoalbe/{size}/690_2.png\\&quot;},{\\&quot;id\\&quot;:658,\\&quot;username\\&quot;:\\&quot;rontarrant\\&quot;,\\&quot;name\\&quot;:\\&quot;Ron Tarrant\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/rontarrant/{size}/557_2.png\\&quot;},{\\&quot;id\\&quot;:678,\\&quot;username\\&quot;:\\&quot;Cogitri\\&quot;,\\&quot;name\\&quot;:\\&quot;Rasmus Thomsen\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cogitri/{size}/758_2.png\\&quot;},{\\&quot;id\\&quot;:70,\\&quot;username\\&quot;:\\&quot;gavr\\&quot;,\\&quot;name\\&quot;:\\&quot;gavr\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/gavr/{size}/74_2.png\\&quot;},{\\&quot;id\\&quot;:1221,\\&quot;username\\&quot;:\\&quot;thibaultamartin\\&quot;,\\&quot;name\\&quot;:\\&quot;Thibault\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/t/45deac/{size}.png\\&quot;},{\\&quot;id\\&quot;:4,\\&quot;username\\&quot;:\\&quot;kprogri\\&quot;,\\&quot;name\\&quot;:\\&quot;Kristi Progri\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/kprogri/{size}/102_2.png\\&quot;},{\\&quot;id\\&quot;:1069,\\&quot;username\\&quot;:\\&quot;jfft\\&quot;,\\&quot;name\\&quot;:\\&quot;Jeff the accursed heisenbug hunter\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jfft/{size}/1152_2.png\\&quot;},{\\&quot;id\\&quot;:47,\\&quot;username\\&quot;:\\&quot;TomaszGasior\\&quot;,\\&quot;name\\&quot;:\\&quot;Tomasz Gąsior\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/tomaszgasior/{size}/58_2.png\\&quot;},{\\&quot;id\\&quot;:189,\\&quot;username\\&quot;:\\&quot;StefanSalewski\\&quot;,\\&quot;name\\&quot;:\\&quot;Stefan Salewski\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/s/3ab097/{size}.png\\&quot;},{\\&quot;id\\&quot;:713,\\&quot;username\\&quot;:\\&quot;Rara\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/rara/{size}/1007_2.png\\&quot;},{\\&quot;id\\&quot;:177,\\&quot;username\\&quot;:\\&quot;sjohannes\\&quot;,\\&quot;name\\&quot;:\\&quot;Johannes Sasongko\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/sjohannes/{size}/179_2.png\\&quot;},{\\&quot;id\\&quot;:541,\\&quot;username\\&quot;:\\&quot;tpm\\&quot;,\\&quot;name\\&quot;:\\&quot;Tim Philipp Müller\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/t/c5a1d2/{size}.png\\&quot;},{\\&quot;id\\&quot;:725,\\&quot;username\\&quot;:\\&quot;sdroege\\&quot;,\\&quot;name\\&quot;:\\&quot;Sebastian Dröge\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/sdroege/{size}/657_2.png\\&quot;},{\\&quot;id\\&quot;:825,\\&quot;username\\&quot;:\\&quot;Nishanth1829\\&quot;,\\&quot;name\\&quot;:\\&quot;Nishanth Kumar\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/n/b4bc9f/{size}.png\\&quot;},{\\&quot;id\\&quot;:228,\\&quot;username\\&quot;:\\&quot;cecashon\\&quot;,\\&quot;name\\&quot;:\\&quot;C. Eric Cashon\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/c/a3d4f5/{size}.png\\&quot;},{\\&quot;id\\&quot;:356,\\&quot;username\\&quot;:\\&quot;jensgeorg\\&quot;,\\&quot;name\\&quot;:\\&quot;Jens Georg\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jensgeorg/{size}/1199_2.png\\&quot;},{\\&quot;id\\&quot;:867,\\&quot;username\\&quot;:\\&quot;Igor_Morgado\\&quot;,\\&quot;name\\&quot;:\\&quot;Igor Morgado\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/igor_morgado/{size}/843_2.png\\&quot;},{\\&quot;id\\&quot;:781,\\&quot;username\\&quot;:\\&quot;baedert\\&quot;,\\&quot;name\\&quot;:\\&quot;Timm Bäder\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/e95f7d/{size}.png\\&quot;},{\\&quot;id\\&quot;:16,\\&quot;username\\&quot;:\\&quot;tchx84\\&quot;,\\&quot;name\\&quot;:\\&quot;Martin Abente Lahaye\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/tchx84/{size}/27_2.png\\&quot;},{\\&quot;id\\&quot;:1151,\\&quot;username\\&quot;:\\&quot;Merlijn_Sebrechts\\&quot;,\\&quot;name\\&quot;:\\&quot;Merlijn Sebrechts\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/merlijn_sebrechts/{size}/1237_2.png\\&quot;},{\\&quot;id\\&quot;:943,\\&quot;username\\&quot;:\\&quot;Abdou\\&quot;,\\&quot;name\\&quot;:\\&quot;Abdou\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/a/a4c791/{size}.png\\&quot;},{\\&quot;id\\&quot;:179,\\&quot;username\\&quot;:\\&quot;lb90\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/l/d26b3c/{size}.png\\&quot;}],\\&quot;primary_groups\\&quot;:[{\\&quot;id\\&quot;:41,\\&quot;name\\&quot;:\\&quot;foundation-staff\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/0572f3a61f8118d073d0b37f03c37b0492142731.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;},{\\&quot;id\\&quot;:42,\\&quot;name\\&quot;:\\&quot;foundation-members\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/659f850c2e755bc4c906630dfb0784a28686489b.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;},{\\&quot;id\\&quot;:43,\\&quot;name\\&quot;:\\&quot;foundation-board\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/d016f9d51dbd99606588277b8f3106e22286b82f.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;}],\\&quot;topic_list\\&quot;:{\\&quot;can_create_topic\\&quot;:false,\\&quot;more_topics_url\\&quot;:\\&quot;/top\\&quot;,\\&quot;draft\\&quot;:null,\\&quot;draft_key\\&quot;:null,\\&quot;draft_sequence\\&quot;:null,\\&quot;per_page\\&quot;:20,\\&quot;top_tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;glib\\&quot;,\\&quot;python\\&quot;,\\&quot;vala\\&quot;,\\&quot;documentation\\&quot;,\\&quot;builder\\&quot;,\\&quot;nautilus\\&quot;,\\&quot;windows\\&quot;,\\&quot;theme\\&quot;,\\&quot;tracker\\&quot;,\\&quot;gstreamer\\&quot;,\\&quot;javascript\\&quot;,\\&quot;c\\&quot;,\\&quot;flatpak\\&quot;,\\&quot;pango\\&quot;,\\&quot;libsoup\\&quot;,\\&quot;perl\\&quot;,\\&quot;evolution\\&quot;,\\&quot;announcement\\&quot;,\\&quot;cplusplus\\&quot;,\\&quot;guadec\\&quot;,\\&quot;newcomer\\&quot;,\\&quot;rust\\&quot;,\\&quot;boxes\\&quot;,\\&quot;cairo\\&quot;,\\&quot;development\\&quot;,\\&quot;events\\&quot;,\\&quot;gsoc\\&quot;,\\&quot;macos\\&quot;,\\&quot;minutes\\&quot;],\\&quot;topics\\&quot;:[{\\&quot;id\\&quot;:1786,\\&quot;title\\&quot;:\\&quot;GNOME Foundation relationship with GNU and the FSF\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GNOME Foundation relationship with GNU and the FSF\\&quot;,\\&quot;slug\\&quot;:\\&quot;gnome-foundation-relationship-with-gnu-and-the-fsf\\&quot;,\\&quot;posts_count\\&quot;:25,\\&quot;reply_count\\&quot;:17,\\&quot;highest_post_number\\&quot;:29,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-16T18:09:34.431Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-11-09T11:09:00.659Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-11-09T11:09:00.659Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:5684,\\&quot;like_count\\&quot;:77,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;cwunder\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:2,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:872,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:5,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:887,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:930,\\&quot;primary_group_id\\&quot;:42}]},{\\&quot;id\\&quot;:1964,\\&quot;title\\&quot;:\\&quot;Straw man proposal: Changing the GNOME versioning scheme\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Straw man proposal: Changing the GNOME versioning scheme\\&quot;,\\&quot;slug\\&quot;:\\&quot;straw-man-proposal-changing-the-gnome-versioning-scheme\\&quot;,\\&quot;posts_count\\&quot;:41,\\&quot;reply_count\\&quot;:22,\\&quot;highest_post_number\\&quot;:41,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-10-11T11:52:47.372Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T17:11:12.852Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T17:11:12.852Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;desktop\\&quot;,\\&quot;release-team\\&quot;],\\&quot;views\\&quot;:1337,\\&quot;like_count\\&quot;:37,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:43,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:28,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:680,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3371,\\&quot;title\\&quot;:\\&quot;Official proposal: how we define GNOME software\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Official proposal: how we define GNOME software\\&quot;,\\&quot;slug\\&quot;:\\&quot;official-proposal-how-we-define-gnome-software\\&quot;,\\&quot;posts_count\\&quot;:44,\\&quot;reply_count\\&quot;:33,\\&quot;highest_post_number\\&quot;:44,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-05-19T10:45:07.014Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T11:33:57.230Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T11:33:57.230Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:2456,\\&quot;like_count\\&quot;:32,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;bberg\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:170,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:30,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:703,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1641,\\&quot;title\\&quot;:\\&quot;GTK, Adwaita, and Vendor Styles\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GTK, Adwaita, and Vendor Styles\\&quot;,\\&quot;slug\\&quot;:\\&quot;gtk-adwaita-and-vendor-styles\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:6,\\&quot;highest_post_number\\&quot;:18,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-27T11:39:45.666Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-08T10:35:28.026Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-24T10:35:23.534Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:3961,\\&quot;like_count\\&quot;:40,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:81,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:852,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:67,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:17,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1651,\\&quot;title\\&quot;:\\&quot;Sandboxing portal\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Sandboxing portal\\&quot;,\\&quot;slug\\&quot;:\\&quot;sandboxing-portal\\&quot;,\\&quot;posts_count\\&quot;:16,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:16,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-29T16:51:00.199Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-17T22:01:17.544Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-10-17T22:01:17.544Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1295,\\&quot;like_count\\&quot;:10,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;category_id\\&quot;:64,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:105,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:883,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:826,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:37,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2479,\\&quot;title\\&quot;:\\&quot;New HIG website\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;New HIG website\\&quot;,\\&quot;slug\\&quot;:\\&quot;new-hig-website\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-01-17T12:19:50.036Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-02-17T17:16:45.038Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-02-03T17:16:42.127Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;design\\&quot;,\\&quot;documentation\\&quot;],\\&quot;views\\&quot;:501,\\&quot;like_count\\&quot;:12,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:170,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:528,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3123,\\&quot;title\\&quot;:\\&quot;Looking for a team?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Looking for a team?\\&quot;,\\&quot;slug\\&quot;:\\&quot;looking-for-a-team\\&quot;,\\&quot;posts_count\\&quot;:40,\\&quot;reply_count\\&quot;:28,\\&quot;highest_post_number\\&quot;:43,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-10T17:40:30.032Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-01T12:39:28.937Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-01T12:39:28.937Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:769,\\&quot;like_count\\&quot;:33,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;Abhinav_Srivastava\\&quot;,\\&quot;category_id\\&quot;:335,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:999,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:758,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1168,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1251,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2913,\\&quot;title\\&quot;:\\&quot;Simplify our UI declarative language, a strawman proposal\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Simplify our UI declarative language, a strawman proposal\\&quot;,\\&quot;slug\\&quot;:\\&quot;simplify-our-ui-declarative-language-a-strawman-proposal\\&quot;,\\&quot;posts_count\\&quot;:31,\\&quot;reply_count\\&quot;:24,\\&quot;highest_post_number\\&quot;:32,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-03-03T13:22:20.069Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-03-21T01:50:11.600Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-03-07T01:39:51.023Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;strawman\\&quot;,\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:635,\\&quot;like_count\\&quot;:14,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:9,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:13,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:28,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:409,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3043,\\&quot;title\\&quot;:\\&quot;State of the Dash (Continuation of gnome-shell/!1139)\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;State of the Dash (Continuation of gnome-shell/!1139)\\&quot;,\\&quot;slug\\&quot;:\\&quot;state-of-the-dash-continuation-of-gnome-shell-1139\\&quot;,\\&quot;posts_count\\&quot;:32,\\&quot;reply_count\\&quot;:19,\\&quot;highest_post_number\\&quot;:32,\\&quot;image_url\\&quot;:\\&quot;https://gitlab.gnome.org/Teams/Design/os-mockups/-/raw/fe9c4089a099827748d7bb7a8bdc763f4771c69d/mobile-shell/mobile-shell-convergence.png\\&quot;,\\&quot;created_at\\&quot;:\\&quot;2020-04-01T02:24:35.248Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-05-26T12:10:12.278Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-05-26T12:10:12.278Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:977,\\&quot;like_count\\&quot;:17,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;HROMANO\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:134,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:44,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1107,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1111,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1235,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2794,\\&quot;title\\&quot;:\\&quot;Initiative Proposal: Chat communication platforms\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Initiative Proposal: Chat communication platforms\\&quot;,\\&quot;slug\\&quot;:\\&quot;initiative-proposal-chat-communication-platforms\\&quot;,\\&quot;posts_count\\&quot;:19,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:19,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-02-13T15:35:45.496Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-03-13T13:53:38.896Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-02-28T13:53:38.271Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:506,\\&quot;like_count\\&quot;:17,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:72,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:37,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1045,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1702,\\&quot;title\\&quot;:\\&quot;Consideration about GTK \\\\\\&quot;cross platform\\\\\\&quot; compatibility\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Consideration about GTK \\\\u0026ldquo;cross platform\\\\u0026rdquo; compatibility\\&quot;,\\&quot;slug\\&quot;:\\&quot;consideration-about-gtk-cross-platform-compatibility\\&quot;,\\&quot;posts_count\\&quot;:10,\\&quot;reply_count\\&quot;:2,\\&quot;highest_post_number\\&quot;:10,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-04T17:02:17.124Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-19T15:08:59.411Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-10-05T14:59:34.966Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;vala\\&quot;,\\&quot;windows\\&quot;,\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:638,\\&quot;like_count\\&quot;:13,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:757,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:658,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:678,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:70,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3067,\\&quot;title\\&quot;:\\&quot;GUADEC 2020 moves to online conference\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GUADEC 2020 moves to online conference\\&quot;,\\&quot;slug\\&quot;:\\&quot;guadec-2020-moves-to-online-conference\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-03T19:40:41.746Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T15:33:49.616Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T15:33:49.616Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;guadec\\&quot;],\\&quot;views\\&quot;:1009,\\&quot;like_count\\&quot;:11,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;jfft\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:2,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1221,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:4,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1069,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1316,\\&quot;title\\&quot;:\\&quot;(solved) Why GNOME uses \\\\\\&quot;grayscale\\\\\\&quot; antialiasing method by default?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;(solved) Why GNOME uses \\\\u0026ldquo;grayscale\\\\u0026rdquo; antialiasing method by default?\\&quot;,\\&quot;slug\\&quot;:\\&quot;solved-why-gnome-uses-grayscale-antialiasing-method-by-default\\&quot;,\\&quot;posts_count\\&quot;:13,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:13,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-07-06T17:05:38.747Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-07-23T00:49:14.633Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-07-09T00:49:12.979Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1570,\\&quot;like_count\\&quot;:4,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:47,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:703,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1223,\\&quot;title\\&quot;:\\&quot;GStreamer - How to save matroska file\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GStreamer - How to save matroska file\\&quot;,\\&quot;slug\\&quot;:\\&quot;gstreamer-how-to-save-matroska-file\\&quot;,\\&quot;posts_count\\&quot;:34,\\&quot;reply_count\\&quot;:24,\\&quot;highest_post_number\\&quot;:34,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-06-22T09:06:07.184Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-07-17T07:03:53.922Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-07-03T07:03:44.280Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gstreamer\\&quot;],\\&quot;views\\&quot;:1025,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:713,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:177,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:541,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:725,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1617,\\&quot;title\\&quot;:\\&quot;How to use graph with gtk+3.0\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;How to use graph with gtk+3.0\\&quot;,\\&quot;slug\\&quot;:\\&quot;how-to-use-graph-with-gtk-3-0\\&quot;,\\&quot;posts_count\\&quot;:10,\\&quot;reply_count\\&quot;:7,\\&quot;highest_post_number\\&quot;:10,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-20T03:42:16.495Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-09-06T15:27:12.230Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-08-23T15:27:06.071Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1349,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:356,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2215,\\&quot;title\\&quot;:\\&quot;Better documentation for GTK request\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Better documentation for GTK request\\&quot;,\\&quot;slug\\&quot;:\\&quot;better-documentation-for-gtk-request\\&quot;,\\&quot;posts_count\\&quot;:16,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:16,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-12-02T12:41:08.170Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-12-22T10:18:22.611Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-12-08T10:18:20.473Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:546,\\&quot;like_count\\&quot;:7,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:867,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:781,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1626,\\&quot;title\\&quot;:\\&quot;Onscreen Keyboard integration with GTK+3 application\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Onscreen Keyboard integration with GTK+3 application\\&quot;,\\&quot;slug\\&quot;:\\&quot;onscreen-keyboard-integration-with-gtk-3-application\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:12,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-24T04:34:39.241Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-07T05:31:04.234Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-23T05:31:00.244Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:903,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:16,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3170,\\&quot;title\\&quot;:\\&quot;Should I use GTK+ 3 or GTK 3?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Should I use GTK+ 3 or GTK 3?\\&quot;,\\&quot;slug\\&quot;:\\&quot;should-i-use-gtk-3-or-gtk-3\\&quot;,\\&quot;posts_count\\&quot;:11,\\&quot;reply_count\\&quot;:6,\\&quot;highest_post_number\\&quot;:11,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-16T20:36:09.136Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-05-01T22:25:31.084Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-04-17T22:15:21.138Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:152,\\&quot;like_count\\&quot;:11,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:1151,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2146,\\&quot;title\\&quot;:\\&quot;Compile and deploy GTKmm 3.95 on Windows\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Compile and deploy GTKmm 3.95 on Windows\\&quot;,\\&quot;slug\\&quot;:\\&quot;compile-and-deploy-gtkmm-3-95-on-windows\\&quot;,\\&quot;posts_count\\&quot;:41,\\&quot;reply_count\\&quot;:35,\\&quot;highest_post_number\\&quot;:41,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-11-19T16:55:41.913Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-12-24T01:26:16.484Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-12-10T01:26:14.594Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;windows\\&quot;],\\&quot;views\\&quot;:515,\\&quot;like_count\\&quot;:18,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:943,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:179,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1750,\\&quot;title\\&quot;:\\&quot;Gtk treeview cell color change\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Gtk treeview cell color change\\&quot;,\\&quot;slug\\&quot;:\\&quot;gtk-treeview-cell-color-change\\&quot;,\\&quot;posts_count\\&quot;:14,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:14,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-10T05:53:56.682Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-09-29T21:31:36.191Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-15T21:26:48.149Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:722,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:179,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]}]}}&quot;}\"></div>\n    <link rel=\"preload\" href=\"/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js\" as=\"script\">\n<script src=\"/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js\"></script>\n\n\n    \n\n    <link rel=\"preload\" href=\"/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js\" as=\"script\">\n<script src=\"/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js\"></script>\n\n\n      \n    \n  </body>\n</html>\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.6070000189989805,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1322.8510000090412,
          "receive": 3834.4359999755397,
          "_blocked_queueing": 0.4000000189989805
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "document",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:57.272Z",
        "time": 5152.879000001121,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 751,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "categories/index"
            },
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache, no-store"
            },
            {
              "name": "Content-Security-Policy",
              "value": "base-uri 'none'; object-src 'none'; script-src 'report-sample' https://discourse.gnome.org/logs/ https://discourse.gnome.org/sidekiq/ https://discourse.gnome.org/mini-profiler-resources/ https://discourse.gnome.org/assets/ https://discourse.gnome.org/brotli_asset/ https://discourse.gnome.org/extra-locales/ https://discourse.gnome.org/highlight-js/ https://discourse.gnome.org/javascripts/ https://discourse.gnome.org/plugins/ https://discourse.gnome.org/theme-javascripts/ https://discourse.gnome.org/svg-sprite/; worker-src 'self' blob:"
            },
            {
              "name": "X-Discourse-Cached",
              "value": "skip"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "b886bd8b-b92f-485c-92c6-65c94cd76d15"
            },
            {
              "name": "X-Runtime",
              "value": "0.085102"
            },
            {
              "name": "X-Discourse-TrackView",
              "value": "1"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 137961,
            "mimeType": "text/html",
            "compression": -14,
            "text": "<!DOCTYPE html>\n<html lang=\"en-US\" class=\"desktop-view not-mobile-device text-size-normal anon\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>GNOME Discourse - GNOME discussions</title>\n    <meta name=\"description\" content=\"GNOME Project and Community related discussions\">\n    <meta name=\"discourse_theme_ids\" content=\"5\">\n    <meta name=\"discourse_current_homepage\" content=\"categories\">\n    <meta name=\"generator\" content=\"Discourse 2.4.5 - https://github.com/discourse/discourse version 53c7d0200a67ba1a87aeb0f23370c2081249bf21\">\n<link rel=\"icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\">\n<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\">\n<meta name=\"theme-color\" content=\"#4a86cf\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover\">\n\n<script type=\"application/ld+json\">{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https://discourse.gnome.org\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://discourse.gnome.org/search?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"}}</script>\n<link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://discourse.gnome.org/opensearch.xml\" title=\"GNOME Discourse Search\">\n\n    \n\n      <meta name=\"fragment\" content=\"!\">\n\n\n    \n\n    <link rel=\"preload\" href=\"/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js\" as=\"script\">\n<script src=\"/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js\" as=\"script\">\n<script src=\"/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js\" as=\"script\">\n<script src=\"/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js\" as=\"script\">\n<script src=\"/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js\" as=\"script\">\n<script src=\"/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js\"></script>\n\n    <link rel=\"preload\" href=\"/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js\" as=\"script\">\n<script src=\"/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js\" as=\"script\">\n<script src=\"/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js\" as=\"script\">\n<script src=\"/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js\"></script>\n\n      <link rel=\"preload\" href=\"/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js\" as=\"script\">\n<script src=\"/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js\"></script>\n\n\n      \n      \n      <link href=\"static.gnome.org/css/fonts.css\" rel=\"stylesheet\">\n\n    \n    \n    <link rel=\"manifest\" href=\"/manifest.webmanifest\" crossorigin=\"use-credentials\">\n\n\n      <link href=\"/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop\" data-theme-id=\"5\"/>\n\n\n  <link href=\"/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-details\" data-theme-id=\"5\"/>\n  \n  <link href=\"/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-ldap-auth\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-local-dates\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-presence\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-solved\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"lazy-yt\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll_desktop\" data-theme-id=\"5\"/>\n\n  <link href=\"/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop_theme\" data-theme-id=\"5\"/>\n\n\n      <meta property=\"og:site_name\" content=\"GNOME Discourse\" />\n<meta name=\"twitter:card\" content=\"summary\" />\n<meta name=\"twitter:image\" content=\"https://discourse.gnome.org/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\" />\n<meta property=\"og:image\" content=\"https://discourse.gnome.org/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\" />\n<meta property=\"og:url\" content=\"https://discourse.gnome.org/\" />\n<meta name=\"twitter:url\" content=\"https://discourse.gnome.org/\" />\n<meta property=\"og:title\" content=\"GNOME Discourse\" />\n<meta name=\"twitter:title\" content=\"GNOME Discourse\" />\n<meta property=\"og:description\" content=\"GNOME Project and Community related discussions\" />\n<meta name=\"twitter:description\" content=\"GNOME Project and Community related discussions\" />\n\n\n    \n\n    <meta id=\"data-discourse-setup\" data-base-url=\"https://discourse.gnome.org\" data-base-uri=\"\" data-environment=\"production\" data-letter-avatar-version=\"5_5460e1b8e90a3c342f76c51996a0a18f\" data-markdown-it-url=\"/assets/markdown-it-bundle-19e3108053fd49dc05d30b583403e585788a2aa398067fccde110fef8280b4d6.js\" data-service-worker-url=\"service-worker-29f380effd40cdaa98cfa88ea74b0c66ba6ca6c901f666253c7592d49fa5e7d4.js\" data-default-locale=\"en_US\" data-asset-version=\"d0f1dac6b6999784143e1ab5d596fb3b\" data-disable-custom-css=\"false\" data-highlight-js-path=\"/highlight-js/discourse.gnome.org/6a88550999021fba7568661984347ac5e0e0b8b7.js\" data-svg-sprite-path=\"/svg-sprite/discourse.gnome.org/svg-5-45ccff676fa06e2dd919b3caa08f8673ef7bc45f.js\" data-enable-js-error-reporting=\"true\">\n\n  </head>\n\n  <body class=\"\">\n    \n    <noscript data-path=\"/\">\n      \n  <header class=\"d-header\">\n    <div class=\"wrap\">\n      <div class=\"contents clearfix\">\n        <div class=\"title\">\n          <a href=\"/\">\n              <img src=\"https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\" alt=\"GNOME Discourse\" id=\"site-logo\">\n          </a>\n        </div>\n        <div class=\"panel clearfix\">\n            <span class='header-buttons'>\n                <a href=\"/signup\" class='btn btn-primary btn-small sign-up-button'>Sign Up</a>\n              <a href=\"/login\" class='btn btn-primary btn-small login-button btn-icon-text'><svg class=\"fa d-icon svg-icon svg-node\" aria-hidden=\"true\"><svg id=\"user\" viewBox=\"0 0 448 512\">\n    <path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/>\n  </svg></svg>\nLog In</a>\n            </span>\n        </div>\n      </div>\n    </div>\n  </header>\n\n      <div id=\"main-outlet\" class=\"wrap\">\n        <!-- preload-content: -->\n        <div itemscope itemtype='http://schema.org/ItemList'>\n  <table class='category-list'>\n    <thead>\n      <tr>\n        <th class='category'>Category</th>\n        <th class='topics'>Topics</th>\n      </tr>\n    </thead>\n    <tbody>\n      <meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'>\n        <tr>\n          <td class='category' style='border-color: #0088CC;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='0'>\n              <meta itemprop='url' content='/c/desktop'>\n              <h3>\n                <a href='/c/desktop'>\n                  <span itemprop='name'>Desktop</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='156 Topics'>156</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #9EB83B;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='1'>\n              <meta itemprop='url' content='/c/applications'>\n              <h3>\n                <a href='/c/applications'>\n                  <span itemprop='name'>Applications</span>\n                </a>\n              </h3>\n              <div itemprop='description'>GNOME ships with various applications. This category is for discussion about those applications.<br>\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='92 Topics'>92</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #F7941D;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='2'>\n              <meta itemprop='url' content='/c/platform'>\n              <h3>\n                <a href='/c/platform'>\n                  <span itemprop='name'>Platform</span>\n                </a>\n              </h3>\n              <div itemprop='description'>A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='416 Topics'>416</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #652D90;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='3'>\n              <meta itemprop='url' content='/c/community'>\n              <h3>\n                <a href='/c/community'>\n                  <span itemprop='name'>Community</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Anything that isn’t used to discuss code or development goes here!</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='72 Topics'>72</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #808281;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='4'>\n              <meta itemprop='url' content='/c/site-feedback'>\n              <h3>\n                <a href='/c/site-feedback'>\n                  <span itemprop='name'>Site Feedback</span>\n                </a>\n              </h3>\n              <div itemprop='description'>Discussion about this site, its organization, how it works, and how we can improve it.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='24 Topics'>24</div>\n          </td>\n        </tr>\n        <tr>\n          <td class='category' style='border-color: #92278F;'>\n            <div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>\n              <meta itemprop='position' content='5'>\n              <meta itemprop='url' content='/c/international'>\n              <h3>\n                <a href='/c/international'>\n                  <span itemprop='name'>International</span>\n                </a>\n              </h3>\n              <div itemprop='description'>GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.</div>\n            </div>\n          </td>\n          <td class='topics'>\n            <div title='5 Topics'>5</div>\n          </td>\n        </tr>\n    </tbody>\n  </table>\n</div>\n\n\n\n\n        <!-- :preload-content -->\n        <footer>\n          <nav itemscope itemtype='http://schema.org/SiteNavigationElement'>\n            <a href='/'>Home</a>\n            <a href=\"/categories\">Categories</a>\n            <a href=\"/guidelines\">FAQ/Guidelines</a>\n            <a href=\"/tos\">Terms of Service</a>\n            <a href=\"/privacy\">Privacy Policy</a>\n          </nav>\n        </footer>\n      </div>\n\n      <footer id='noscript-footer'>\n        <p style=\"text-align:center;\">Powered by <a href=\"https://www.discourse.org\">Discourse</a>, best viewed with JavaScript enabled</p>\n      </footer>\n    </noscript>\n\n      \n      \n\n    <section id='main'>\n    </section>\n\n    <div id='offscreen-content'>\n    </div>\n\n      <form id='hidden-login-form' method=\"post\" action=\"/login\" style=\"display: none;\">\n        <input name=\"username\" type=\"text\"     id=\"signin_username\">\n        <input name=\"password\" type=\"password\" id=\"signin_password\">\n        <input name=\"redirect\" type=\"hidden\">\n        <input type=\"submit\" id=\"signin-button\" value=\"Log In\">\n      </form>\n\n    <div class=\"hidden\" id=\"data-preloaded\" data-preloaded=\"{&quot;site&quot;:&quot;{\\&quot;default_archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;notification_types\\&quot;:{\\&quot;mentioned\\&quot;:1,\\&quot;replied\\&quot;:2,\\&quot;quoted\\&quot;:3,\\&quot;edited\\&quot;:4,\\&quot;liked\\&quot;:5,\\&quot;private_message\\&quot;:6,\\&quot;invited_to_private_message\\&quot;:7,\\&quot;invitee_accepted\\&quot;:8,\\&quot;posted\\&quot;:9,\\&quot;moved_post\\&quot;:10,\\&quot;linked\\&quot;:11,\\&quot;granted_badge\\&quot;:12,\\&quot;invited_to_topic\\&quot;:13,\\&quot;custom\\&quot;:14,\\&quot;group_mentioned\\&quot;:15,\\&quot;group_message_summary\\&quot;:16,\\&quot;watching_first_post\\&quot;:17,\\&quot;topic_reminder\\&quot;:18,\\&quot;liked_consolidated\\&quot;:19,\\&quot;post_approved\\&quot;:20,\\&quot;code_review_commit_approved\\&quot;:21,\\&quot;membership_request_accepted\\&quot;:22,\\&quot;membership_request_consolidated\\&quot;:23},\\&quot;post_types\\&quot;:{\\&quot;regular\\&quot;:1,\\&quot;moderator_action\\&quot;:2,\\&quot;small_action\\&quot;:3,\\&quot;whisper\\&quot;:4},\\&quot;groups\\&quot;:[{\\&quot;id\\&quot;:43,\\&quot;name\\&quot;:\\&quot;foundation-board\\&quot;},{\\&quot;id\\&quot;:42,\\&quot;name\\&quot;:\\&quot;foundation-members\\&quot;},{\\&quot;id\\&quot;:41,\\&quot;name\\&quot;:\\&quot;foundation-staff\\&quot;},{\\&quot;id\\&quot;:46,\\&quot;name\\&quot;:\\&quot;guadec-organizers\\&quot;},{\\&quot;id\\&quot;:45,\\&quot;name\\&quot;:\\&quot;guadec-volunteers\\&quot;}],\\&quot;filters\\&quot;:[\\&quot;latest\\&quot;,\\&quot;unread\\&quot;,\\&quot;new\\&quot;,\\&quot;read\\&quot;,\\&quot;posted\\&quot;,\\&quot;bookmarks\\&quot;],\\&quot;periods\\&quot;:[\\&quot;all\\&quot;,\\&quot;yearly\\&quot;,\\&quot;quarterly\\&quot;,\\&quot;monthly\\&quot;,\\&quot;weekly\\&quot;,\\&quot;daily\\&quot;],\\&quot;top_menu_items\\&quot;:[\\&quot;latest\\&quot;,\\&quot;unread\\&quot;,\\&quot;new\\&quot;,\\&quot;read\\&quot;,\\&quot;posted\\&quot;,\\&quot;bookmarks\\&quot;,\\&quot;categories\\&quot;,\\&quot;top\\&quot;],\\&quot;anonymous_top_menu_items\\&quot;:[\\&quot;latest\\&quot;,\\&quot;top\\&quot;,\\&quot;categories\\&quot;,\\&quot;categories\\&quot;,\\&quot;top\\&quot;],\\&quot;uncategorized_category_id\\&quot;:1,\\&quot;is_readonly\\&quot;:false,\\&quot;disabled_plugins\\&quot;:[\\&quot;discourse-oauth2-basic\\&quot;,\\&quot;discourse-saved-searches\\&quot;],\\&quot;user_field_max_length\\&quot;:2048,\\&quot;post_action_types\\&quot;:[{\\&quot;id\\&quot;:1,\\&quot;name_key\\&quot;:\\&quot;bookmark\\&quot;,\\&quot;name\\&quot;:\\&quot;Bookmark\\&quot;,\\&quot;description\\&quot;:\\&quot;Bookmark this post\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Bookmark this post\\&quot;,\\&quot;long_form\\&quot;:\\&quot;bookmarked this post\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:2,\\&quot;name_key\\&quot;:\\&quot;like\\&quot;,\\&quot;name\\&quot;:\\&quot;Like\\&quot;,\\&quot;description\\&quot;:\\&quot;Like this post\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Like this post\\&quot;,\\&quot;long_form\\&quot;:\\&quot;liked this\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:3,\\&quot;name_key\\&quot;:\\&quot;off_topic\\&quot;,\\&quot;name\\&quot;:\\&quot;Off-Topic\\&quot;,\\&quot;description\\&quot;:\\&quot;This post is not relevant to the current discussion as defined by the title and first post, and should probably be moved elsewhere.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Not relevant to the discussion\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as off-topic\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:4,\\&quot;name_key\\&quot;:\\&quot;inappropriate\\&quot;,\\&quot;name\\&quot;:\\&quot;Inappropriate\\&quot;,\\&quot;description\\&quot;:\\&quot;This post contains content that a reasonable person would consider offensive, abusive, or a violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;A violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as inappropriate\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:8,\\&quot;name_key\\&quot;:\\&quot;spam\\&quot;,\\&quot;name\\&quot;:\\&quot;Spam\\&quot;,\\&quot;description\\&quot;:\\&quot;This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;This is an advertisement or vandalism\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as spam\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:6,\\&quot;name_key\\&quot;:\\&quot;notify_user\\&quot;,\\&quot;name\\&quot;:\\&quot;Send @{{username}} a message\\&quot;,\\&quot;description\\&quot;:\\&quot;I want to talk to this person directly and personally about their post.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;I want to talk to this person directly and personally about their post.\\&quot;,\\&quot;long_form\\&quot;:\\&quot;messaged user\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true},{\\&quot;id\\&quot;:null,\\&quot;name_key\\&quot;:null,\\&quot;name\\&quot;:\\&quot;translation missing: en_US.post_action_types..title\\&quot;,\\&quot;description\\&quot;:\\&quot;translation missing: en_US.post_action_types.description\\&quot;,\\&quot;short_description\\&quot;:\\&quot;translation missing: en_US.post_action_types.short_description\\&quot;,\\&quot;long_form\\&quot;:\\&quot;translation missing: en_US.post_action_types..long_form\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:7,\\&quot;name_key\\&quot;:\\&quot;notify_moderators\\&quot;,\\&quot;name\\&quot;:\\&quot;Something Else\\&quot;,\\&quot;description\\&quot;:\\&quot;This post requires staff attention for another reason not listed above.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Requires staff attention for another reason\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this for staff attention\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true}],\\&quot;topic_flag_types\\&quot;:[{\\&quot;id\\&quot;:4,\\&quot;name_key\\&quot;:\\&quot;inappropriate\\&quot;,\\&quot;name\\&quot;:\\&quot;Inappropriate\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic contains content that a reasonable person would consider offensive, abusive, or a violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;A violation of \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eour community guidelines\\\\u003c/a\\\\u003e\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as inappropriate\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:8,\\&quot;name_key\\&quot;:\\&quot;spam\\&quot;,\\&quot;name\\&quot;:\\&quot;Spam\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic is an advertisement. It is not useful or relevant to this site, but promotional in nature.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;This is an advertisement\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this as spam\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:null,\\&quot;name_key\\&quot;:null,\\&quot;name\\&quot;:\\&quot;translation missing: en_US.topic_flag_types..title\\&quot;,\\&quot;description\\&quot;:\\&quot;translation missing: en_US.topic_flag_types.description\\&quot;,\\&quot;short_description\\&quot;:\\&quot;translation missing: en_US.topic_flag_types.short_description\\&quot;,\\&quot;long_form\\&quot;:\\&quot;translation missing: en_US.topic_flag_types..long_form\\&quot;,\\&quot;is_flag\\&quot;:false,\\&quot;is_custom_flag\\&quot;:false},{\\&quot;id\\&quot;:7,\\&quot;name_key\\&quot;:\\&quot;notify_moderators\\&quot;,\\&quot;name\\&quot;:\\&quot;Something Else\\&quot;,\\&quot;description\\&quot;:\\&quot;This topic requires general staff attention based on the \\\\u003ca href=\\\\\\&quot;/guidelines\\\\\\&quot;\\\\u003eguidelines\\\\u003c/a\\\\u003e, \\\\u003ca href=\\\\\\&quot;/tos\\\\\\&quot;\\\\u003eTOS\\\\u003c/a\\\\u003e, or for another reason not listed above.\\&quot;,\\&quot;short_description\\&quot;:\\&quot;Requires staff attention for another reason\\&quot;,\\&quot;long_form\\&quot;:\\&quot;flagged this for moderator attention\\&quot;,\\&quot;is_flag\\&quot;:true,\\&quot;is_custom_flag\\&quot;:true}],\\&quot;can_create_tag\\&quot;:null,\\&quot;can_tag_topics\\&quot;:null,\\&quot;can_tag_pms\\&quot;:false,\\&quot;tags_filter_regexp\\&quot;:\\&quot;[/\\\\\\\\?#\\\\\\\\[\\\\\\\\]@!\\\\\\\\$\\\\u0026&#39;\\\\\\\\(\\\\\\\\)\\\\\\\\*\\\\\\\\+,;=\\\\\\\\.%\\\\\\\\\\\\\\\\`^\\\\\\\\s|\\\\\\\\{\\\\\\\\}\\\\\\&quot;\\\\u003c\\\\u003e]+\\&quot;,\\&quot;top_tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;glib\\&quot;,\\&quot;python\\&quot;,\\&quot;vala\\&quot;,\\&quot;documentation\\&quot;,\\&quot;builder\\&quot;,\\&quot;nautilus\\&quot;,\\&quot;windows\\&quot;,\\&quot;theme\\&quot;,\\&quot;tracker\\&quot;,\\&quot;gstreamer\\&quot;,\\&quot;javascript\\&quot;,\\&quot;c\\&quot;,\\&quot;flatpak\\&quot;,\\&quot;pango\\&quot;,\\&quot;libsoup\\&quot;,\\&quot;perl\\&quot;,\\&quot;evolution\\&quot;,\\&quot;announcement\\&quot;,\\&quot;cplusplus\\&quot;,\\&quot;guadec\\&quot;,\\&quot;newcomer\\&quot;,\\&quot;rust\\&quot;,\\&quot;boxes\\&quot;,\\&quot;cairo\\&quot;,\\&quot;development\\&quot;,\\&quot;events\\&quot;,\\&quot;gsoc\\&quot;,\\&quot;macos\\&quot;,\\&quot;minutes\\&quot;],\\&quot;topic_featured_link_allowed_category_ids\\&quot;:[10,129,63,17,34,1,25,64,13,4,219,12,2,8,23,6,9,334,3,114,336,5,335,11,7],\\&quot;user_themes\\&quot;:[{\\&quot;theme_id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;Dark\\&quot;,\\&quot;default\\&quot;:false},{\\&quot;theme_id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Deneb\\&quot;,\\&quot;default\\&quot;:true},{\\&quot;theme_id\\&quot;:2,\\&quot;name\\&quot;:\\&quot;Light\\&quot;,\\&quot;default\\&quot;:false}],\\&quot;censored_regexp\\&quot;:null,\\&quot;categories\\&quot;:[{\\&quot;id\\&quot;:6,\\&quot;name\\&quot;:\\&quot;Desktop\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;desktop\\&quot;,\\&quot;topic_count\\&quot;:156,\\&quot;post_count\\&quot;:813,\\&quot;position\\&quot;:0,\\&quot;description\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-desktop-category/15\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:7,\\&quot;name\\&quot;:\\&quot;Applications\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;applications\\&quot;,\\&quot;topic_count\\&quot;:92,\\&quot;post_count\\&quot;:455,\\&quot;position\\&quot;:1,\\&quot;description\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\u003cbr\\\\u003e\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications. \\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-applications-category/16\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;false\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Platform\\&quot;,\\&quot;color\\&quot;:\\&quot;F7941D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;platform\\&quot;,\\&quot;topic_count\\&quot;:416,\\&quot;post_count\\&quot;:2552,\\&quot;position\\&quot;:2,\\&quot;description\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-platform-category/14\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:9,\\&quot;name\\&quot;:\\&quot;Core\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;core\\&quot;,\\&quot;topic_count\\&quot;:110,\\&quot;post_count\\&quot;:616,\\&quot;position\\&quot;:3,\\&quot;description\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;description_text\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;The core components of the GNOME SDK\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-core-category/18\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:11,\\&quot;name\\&quot;:\\&quot;Language bindings\\&quot;,\\&quot;color\\&quot;:\\&quot;BF1E2E\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;language-bindings\\&quot;,\\&quot;topic_count\\&quot;:55,\\&quot;post_count\\&quot;:327,\\&quot;position\\&quot;:4,\\&quot;description\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-language-bindings-category/20\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:8,\\&quot;name\\&quot;:\\&quot;Community\\&quot;,\\&quot;color\\&quot;:\\&quot;652D90\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;community\\&quot;,\\&quot;topic_count\\&quot;:72,\\&quot;post_count\\&quot;:567,\\&quot;position\\&quot;:6,\\&quot;description\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-category/17\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:10,\\&quot;name\\&quot;:\\&quot;Engagement\\&quot;,\\&quot;color\\&quot;:\\&quot;ED207B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;engagement\\&quot;,\\&quot;topic_count\\&quot;:36,\\&quot;post_count\\&quot;:148,\\&quot;position\\&quot;:7,\\&quot;description\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;The Engagement Team works to promote GNOME by helping our communications with users, developers, contributors, partners and anyone else who might be interested in the project.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-engagement-category/19\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;Site Feedback\\&quot;,\\&quot;color\\&quot;:\\&quot;808281\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;site-feedback\\&quot;,\\&quot;topic_count\\&quot;:24,\\&quot;post_count\\&quot;:132,\\&quot;position\\&quot;:8,\\&quot;description\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-site-feedback-category/2\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:\\&quot;true\\&quot;},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:23,\\&quot;name\\&quot;:\\&quot;International\\&quot;,\\&quot;color\\&quot;:\\&quot;92278F\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;international\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:12,\\&quot;position\\&quot;:9,\\&quot;description\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-international-category/1284\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;Uncategorized\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;uncategorized\\&quot;,\\&quot;topic_count\\&quot;:0,\\&quot;post_count\\&quot;:0,\\&quot;position\\&quot;:13,\\&quot;description\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Topics that don&#39;t need a category, or don&#39;t fit into any other existing category.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:null,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:25,\\&quot;name\\&quot;:\\&quot;Brazilian Portuguese\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;brazilian-portuguese\\&quot;,\\&quot;topic_count\\&quot;:3,\\&quot;post_count\\&quot;:9,\\&quot;position\\&quot;:15,\\&quot;description\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Lista de discussão geral do GNOME Brasil.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-brazilian-portuguese-category/1285\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:23,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:64,\\&quot;name\\&quot;:\\&quot;Portals\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;portals\\&quot;,\\&quot;topic_count\\&quot;:3,\\&quot;post_count\\&quot;:22,\\&quot;position\\&quot;:18,\\&quot;description\\&quot;:null,\\&quot;description_text\\&quot;:null,\\&quot;description_excerpt\\&quot;:null,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-portals-category/1649\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:5,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:334,\\&quot;name\\&quot;:\\&quot;Outreach\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;outreach\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:8,\\&quot;position\\&quot;:22,\\&quot;description\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss outreach initiatives and events in which GNOME participates, like Google Summer of Code and Outreachy.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-outreach-category/2947\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:335,\\&quot;name\\&quot;:\\&quot;Community Engagement Challenge\\&quot;,\\&quot;color\\&quot;:\\&quot;E45735\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;cechallenge\\&quot;,\\&quot;topic_count\\&quot;:2,\\&quot;post_count\\&quot;:46,\\&quot;position\\&quot;:23,\\&quot;description\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at \\\\u003ca href=\\\\\\&quot;http://www.gnome.org/challenge\\\\\\&quot;\\\\u003ewww.gnome.org/challenge\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at www.gnome.org\\\\u0026#x2F;challenge.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to publish announcements and discuss the Community Engagement Challenge. For more information about the Challenge, please visit the website at \\\\u003ca href=\\\\\\&quot;http://www.gnome.org/challenge\\\\\\&quot;\\\\u003ewww.gnome.org/challenge\\\\u003c/a\\\\u003e.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-engagement-challenge-category/3101\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:336,\\&quot;name\\&quot;:\\&quot;Elections and Referendums\\&quot;,\\&quot;color\\&quot;:\\&quot;12A89D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;elections-and-referendums\\&quot;,\\&quot;topic_count\\&quot;:6,\\&quot;post_count\\&quot;:15,\\&quot;position\\&quot;:24,\\&quot;description\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;This category is used when the GNOME Foundation holds elections for the Board of Directors, or other referendums. Posting may be restricted to Foundation members from time to time.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-elections-and-referendums-category/3338\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;parent_category_id\\&quot;:8,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:null,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:null,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:null,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;custom_fields\\&quot;:{\\&quot;enable_accepted_answers\\&quot;:null},\\&quot;allowed_tags\\&quot;:[],\\&quot;allowed_tag_groups\\&quot;:[],\\&quot;allow_global_tags\\&quot;:false,\\&quot;min_tags_from_required_group\\&quot;:1,\\&quot;required_tag_group_name\\&quot;:null,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null}],\\&quot;trust_levels\\&quot;:[{\\&quot;id\\&quot;:0,\\&quot;name\\&quot;:\\&quot;new user\\&quot;},{\\&quot;id\\&quot;:1,\\&quot;name\\&quot;:\\&quot;basic user\\&quot;},{\\&quot;id\\&quot;:2,\\&quot;name\\&quot;:\\&quot;member\\&quot;},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;regular\\&quot;},{\\&quot;id\\&quot;:4,\\&quot;name\\&quot;:\\&quot;leader\\&quot;}],\\&quot;archetypes\\&quot;:[{\\&quot;id\\&quot;:\\&quot;regular\\&quot;,\\&quot;name\\&quot;:\\&quot;Regular Topic\\&quot;,\\&quot;options\\&quot;:[]},{\\&quot;id\\&quot;:\\&quot;banner\\&quot;,\\&quot;name\\&quot;:\\&quot;Banner Topic\\&quot;,\\&quot;options\\&quot;:[]}],\\&quot;user_fields\\&quot;:[],\\&quot;auth_providers\\&quot;:[{\\&quot;name\\&quot;:\\&quot;google_oauth2\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:null,\\&quot;message_override\\&quot;:null,\\&quot;frame_width\\&quot;:850,\\&quot;frame_height\\&quot;:500,\\&quot;can_connect\\&quot;:true,\\&quot;can_revoke\\&quot;:true,\\&quot;icon\\&quot;:null},{\\&quot;name\\&quot;:\\&quot;github\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:null,\\&quot;message_override\\&quot;:null,\\&quot;frame_width\\&quot;:null,\\&quot;frame_height\\&quot;:null,\\&quot;can_connect\\&quot;:true,\\&quot;can_revoke\\&quot;:true,\\&quot;icon\\&quot;:\\&quot;fab-github\\&quot;},{\\&quot;name\\&quot;:\\&quot;ldap\\&quot;,\\&quot;custom_url\\&quot;:null,\\&quot;pretty_name_override\\&quot;:null,\\&quot;title_override\\&quot;:\\&quot;with LDAP\\&quot;,\\&quot;message_override\\&quot;:\\&quot;Log in with your LDAP credentials\\&quot;,\\&quot;frame_width\\&quot;:920,\\&quot;frame_height\\&quot;:800,\\&quot;can_connect\\&quot;:false,\\&quot;can_revoke\\&quot;:false,\\&quot;icon\\&quot;:null}]}&quot;,&quot;siteSettings&quot;:&quot;{\\&quot;default_locale\\&quot;:\\&quot;en_US\\&quot;,\\&quot;title\\&quot;:\\&quot;GNOME Discourse\\&quot;,\\&quot;short_site_description\\&quot;:\\&quot;GNOME discussions\\&quot;,\\&quot;contact_email\\&quot;:\\&quot;gnome-sysadmin@gnome.org\\&quot;,\\&quot;contact_url\\&quot;:\\&quot;https://www.gnome.org\\&quot;,\\&quot;logo\\&quot;:\\&quot;/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;logo_small\\&quot;:\\&quot;/uploads/default/original/1X/52191724761bd41e862053e2261445e1f9c9713a.png\\&quot;,\\&quot;digest_logo\\&quot;:\\&quot;\\&quot;,\\&quot;mobile_logo\\&quot;:\\&quot;\\&quot;,\\&quot;large_icon\\&quot;:\\&quot;/uploads/default/original/1X/d7f8fbabd4cd13f5fdbf7c73bd203723a2ef36ea.png\\&quot;,\\&quot;favicon\\&quot;:\\&quot;/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\\&quot;,\\&quot;apple_touch_icon\\&quot;:\\&quot;/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\\&quot;,\\&quot;allow_user_locale\\&quot;:true,\\&quot;support_mixed_text_direction\\&quot;:false,\\&quot;suggested_topics\\&quot;:5,\\&quot;ga_universal_tracking_code\\&quot;:\\&quot;\\&quot;,\\&quot;ga_universal_domain_name\\&quot;:\\&quot;auto\\&quot;,\\&quot;gtm_container_id\\&quot;:\\&quot;\\&quot;,\\&quot;top_menu\\&quot;:\\&quot;categories|latest|new|unread|top\\&quot;,\\&quot;post_menu\\&quot;:\\&quot;read|like|share|flag|edit|bookmark|bookmarkWithReminder|delete|admin|reply\\&quot;,\\&quot;post_menu_hidden_items\\&quot;:\\&quot;flag|bookmark|bookmarkWithReminder|edit|delete|admin\\&quot;,\\&quot;share_links\\&quot;:\\&quot;twitter|facebook|email\\&quot;,\\&quot;desktop_category_page_style\\&quot;:\\&quot;categories_and_top_topics\\&quot;,\\&quot;category_colors\\&quot;:\\&quot;BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735\\&quot;,\\&quot;category_style\\&quot;:\\&quot;bullet\\&quot;,\\&quot;max_category_nesting\\&quot;:2,\\&quot;enable_mobile_theme\\&quot;:true,\\&quot;relative_date_duration\\&quot;:30,\\&quot;fixed_category_positions\\&quot;:true,\\&quot;fixed_category_positions_on_create\\&quot;:true,\\&quot;enable_badges\\&quot;:true,\\&quot;enable_badge_sql\\&quot;:false,\\&quot;enable_whispers\\&quot;:false,\\&quot;enable_bookmarks_with_reminders\\&quot;:false,\\&quot;push_notifications_prompt\\&quot;:true,\\&quot;vapid_public_key_bytes\\&quot;:\\&quot;4|43|50|22|106|86|237|72|235|48|218|180|82|250|2|96|80|161|86|233|118|163|139|208|229|27|175|250|234|199|91|199|221|192|179|159|181|128|52|79|52|78|39|168|67|61|38|196|155|73|3|207|172|144|31|66|63|141|110|60|155|102|68|91|8\\&quot;,\\&quot;invite_only\\&quot;:false,\\&quot;login_required\\&quot;:false,\\&quot;must_approve_users\\&quot;:false,\\&quot;enable_local_logins\\&quot;:true,\\&quot;enable_local_logins_via_email\\&quot;:true,\\&quot;allow_new_registrations\\&quot;:true,\\&quot;enable_signup_cta\\&quot;:true,\\&quot;enable_sso\\&quot;:false,\\&quot;sso_overrides_email\\&quot;:false,\\&quot;sso_overrides_avatar\\&quot;:false,\\&quot;min_username_length\\&quot;:3,\\&quot;max_username_length\\&quot;:20,\\&quot;unicode_usernames\\&quot;:false,\\&quot;min_password_length\\&quot;:10,\\&quot;min_admin_password_length\\&quot;:15,\\&quot;logout_redirect\\&quot;:\\&quot;\\&quot;,\\&quot;full_name_required\\&quot;:false,\\&quot;enable_names\\&quot;:true,\\&quot;invites_per_page\\&quot;:40,\\&quot;delete_user_max_post_age\\&quot;:60,\\&quot;delete_all_posts_max\\&quot;:15,\\&quot;prioritize_username_in_ux\\&quot;:true,\\&quot;enable_user_directory\\&quot;:true,\\&quot;allow_anonymous_posting\\&quot;:false,\\&quot;anonymous_posting_min_trust_level\\&quot;:1,\\&quot;hide_user_profiles_from_public\\&quot;:false,\\&quot;allow_featured_topic_on_user_profiles\\&quot;:true,\\&quot;hide_suspension_reasons\\&quot;:false,\\&quot;ignored_users_count_message_threshold\\&quot;:5,\\&quot;ignored_users_message_gap_days\\&quot;:365,\\&quot;user_selected_primary_groups\\&quot;:false,\\&quot;enable_group_directory\\&quot;:true,\\&quot;enable_category_group_review\\&quot;:true,\\&quot;min_post_length\\&quot;:20,\\&quot;min_first_post_length\\&quot;:20,\\&quot;min_personal_message_post_length\\&quot;:10,\\&quot;max_post_length\\&quot;:32000,\\&quot;topic_featured_link_enabled\\&quot;:true,\\&quot;min_topic_title_length\\&quot;:15,\\&quot;max_topic_title_length\\&quot;:255,\\&quot;min_personal_message_title_length\\&quot;:2,\\&quot;allow_uncategorized_topics\\&quot;:false,\\&quot;min_title_similar_length\\&quot;:10,\\&quot;enable_personal_messages\\&quot;:true,\\&quot;enable_personal_email_messages\\&quot;:false,\\&quot;edit_history_visible_to_public\\&quot;:true,\\&quot;delete_removed_posts_after\\&quot;:24,\\&quot;traditional_markdown_linebreaks\\&quot;:false,\\&quot;enable_markdown_typographer\\&quot;:true,\\&quot;enable_markdown_linkify\\&quot;:true,\\&quot;markdown_linkify_tlds\\&quot;:\\&quot;com|net|org|io|co|tv|ru|cn|us|uk|me|de|fr|fi|gov\\&quot;,\\&quot;markdown_typographer_quotation_marks\\&quot;:\\&quot;“|”|‘|’\\&quot;,\\&quot;enable_rich_text_paste\\&quot;:true,\\&quot;suppress_reply_directly_below\\&quot;:true,\\&quot;suppress_reply_directly_above\\&quot;:true,\\&quot;max_reply_history\\&quot;:1,\\&quot;enable_mentions\\&quot;:true,\\&quot;newuser_max_images\\&quot;:1,\\&quot;newuser_max_attachments\\&quot;:0,\\&quot;show_pinned_excerpt_mobile\\&quot;:true,\\&quot;show_pinned_excerpt_desktop\\&quot;:true,\\&quot;display_name_on_posts\\&quot;:true,\\&quot;show_time_gap_days\\&quot;:7,\\&quot;short_progress_text_threshold\\&quot;:10000,\\&quot;default_code_lang\\&quot;:\\&quot;auto\\&quot;,\\&quot;autohighlight_all_code\\&quot;:false,\\&quot;highlighted_languages\\&quot;:\\&quot;apache|bash|cs|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|nginx|objectivec|ruby|perl|php|python|sql|handlebars\\&quot;,\\&quot;enable_emoji\\&quot;:true,\\&quot;enable_emoji_shortcuts\\&quot;:true,\\&quot;emoji_set\\&quot;:\\&quot;twitter\\&quot;,\\&quot;emoji_autocomplete_min_chars\\&quot;:0,\\&quot;enable_inline_emoji_translation\\&quot;:false,\\&quot;code_formatting_style\\&quot;:\\&quot;4-spaces-indent\\&quot;,\\&quot;allowed_href_schemes\\&quot;:\\&quot;\\&quot;,\\&quot;watched_words_regular_expressions\\&quot;:false,\\&quot;enable_advanced_editor_preview_sync\\&quot;:false,\\&quot;old_post_notice_days\\&quot;:14,\\&quot;email_time_window_mins\\&quot;:10,\\&quot;disable_digest_emails\\&quot;:false,\\&quot;email_in\\&quot;:true,\\&quot;disable_emails\\&quot;:\\&quot;no\\&quot;,\\&quot;bounce_score_threshold\\&quot;:4,\\&quot;max_image_size_kb\\&quot;:4096,\\&quot;max_attachment_size_kb\\&quot;:4096,\\&quot;authorized_extensions\\&quot;:\\&quot;jpg|jpeg|png|gif|pdf\\&quot;,\\&quot;authorized_extensions_for_staff\\&quot;:\\&quot;\\&quot;,\\&quot;max_image_width\\&quot;:690,\\&quot;max_image_height\\&quot;:500,\\&quot;prevent_anons_from_downloading_files\\&quot;:false,\\&quot;secure_media\\&quot;:false,\\&quot;enable_s3_uploads\\&quot;:false,\\&quot;allow_profile_backgrounds\\&quot;:true,\\&quot;allow_uploaded_avatars\\&quot;:true,\\&quot;allow_animated_avatars\\&quot;:false,\\&quot;default_avatars\\&quot;:\\&quot;\\&quot;,\\&quot;external_system_avatars_enabled\\&quot;:true,\\&quot;external_system_avatars_url\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png\\&quot;,\\&quot;selectable_avatars_enabled\\&quot;:false,\\&quot;allow_staff_to_upload_any_file_in_pm\\&quot;:true,\\&quot;simultaneous_uploads\\&quot;:5,\\&quot;tl1_requires_read_posts\\&quot;:30,\\&quot;tl3_links_no_follow\\&quot;:false,\\&quot;enforce_second_factor\\&quot;:\\&quot;no\\&quot;,\\&quot;moderators_view_emails\\&quot;:false,\\&quot;use_admin_ip_whitelist\\&quot;:false,\\&quot;allowed_iframes\\&quot;:\\&quot;https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/\\&quot;,\\&quot;max_oneboxes_per_post\\&quot;:50,\\&quot;reviewable_claiming\\&quot;:\\&quot;disabled\\&quot;,\\&quot;reviewable_default_topics\\&quot;:false,\\&quot;reviewable_default_visibility\\&quot;:\\&quot;low\\&quot;,\\&quot;alert_admins_if_errors_per_minute\\&quot;:0,\\&quot;alert_admins_if_errors_per_hour\\&quot;:0,\\&quot;max_prints_per_hour_per_user\\&quot;:5,\\&quot;enable_long_polling\\&quot;:true,\\&quot;long_polling_base_url\\&quot;:\\&quot;/\\&quot;,\\&quot;background_polling_interval\\&quot;:60000,\\&quot;polling_interval\\&quot;:3000,\\&quot;anon_polling_interval\\&quot;:30000,\\&quot;flush_timings_secs\\&quot;:60,\\&quot;verbose_localization\\&quot;:false,\\&quot;max_new_topics\\&quot;:500,\\&quot;enable_safe_mode\\&quot;:true,\\&quot;tos_url\\&quot;:\\&quot;\\&quot;,\\&quot;privacy_policy_url\\&quot;:\\&quot;https://www.gnome.org/privacy/\\&quot;,\\&quot;faq_url\\&quot;:\\&quot;\\&quot;,\\&quot;enable_backups\\&quot;:true,\\&quot;backup_location\\&quot;:\\&quot;local\\&quot;,\\&quot;maximum_backups\\&quot;:14,\\&quot;min_search_term_length\\&quot;:3,\\&quot;log_search_queries\\&quot;:true,\\&quot;version_checks\\&quot;:true,\\&quot;suppress_uncategorized_badge\\&quot;:false,\\&quot;header_dropdown_category_count\\&quot;:8,\\&quot;slug_generation_method\\&quot;:\\&quot;ascii\\&quot;,\\&quot;topic_views_heat_low\\&quot;:1000,\\&quot;topic_views_heat_medium\\&quot;:2000,\\&quot;topic_views_heat_high\\&quot;:3500,\\&quot;topic_post_like_heat_low\\&quot;:0.5,\\&quot;topic_post_like_heat_medium\\&quot;:1.0,\\&quot;topic_post_like_heat_high\\&quot;:2.0,\\&quot;history_hours_low\\&quot;:12,\\&quot;history_hours_medium\\&quot;:24,\\&quot;history_hours_high\\&quot;:48,\\&quot;cold_age_days_low\\&quot;:14,\\&quot;cold_age_days_medium\\&quot;:90,\\&quot;cold_age_days_high\\&quot;:180,\\&quot;global_notice\\&quot;:\\&quot;\\&quot;,\\&quot;show_create_topics_notice\\&quot;:true,\\&quot;bootstrap_mode_min_users\\&quot;:0,\\&quot;bootstrap_mode_enabled\\&quot;:false,\\&quot;automatically_unpin_topics\\&quot;:true,\\&quot;read_time_word_count\\&quot;:500,\\&quot;topic_page_title_includes_category\\&quot;:true,\\&quot;svg_icon_subset\\&quot;:\\&quot;\\&quot;,\\&quot;enable_new_user_card_route\\&quot;:false,\\&quot;disable_mailing_list_mode\\&quot;:false,\\&quot;default_topics_automatic_unpin\\&quot;:true,\\&quot;mute_all_categories_by_default\\&quot;:false,\\&quot;tagging_enabled\\&quot;:true,\\&quot;tag_style\\&quot;:\\&quot;bullet\\&quot;,\\&quot;max_tags_per_topic\\&quot;:5,\\&quot;max_tag_length\\&quot;:20,\\&quot;min_trust_level_to_tag_topics\\&quot;:\\&quot;0\\&quot;,\\&quot;max_tag_search_results\\&quot;:5,\\&quot;show_filter_by_tag\\&quot;:true,\\&quot;max_tags_in_filter_list\\&quot;:30,\\&quot;tags_sort_alphabetically\\&quot;:false,\\&quot;tags_listed_by_group\\&quot;:false,\\&quot;suppress_overlapping_tags_in_list\\&quot;:false,\\&quot;remove_muted_tags_from_latest\\&quot;:\\&quot;always\\&quot;,\\&quot;force_lowercase_tags\\&quot;:true,\\&quot;dashboard_general_tab_activity_metrics\\&quot;:\\&quot;page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies\\&quot;,\\&quot;details_enabled\\&quot;:true,\\&quot;discourse_internet_explorer_deprecation_warning\\&quot;:true,\\&quot;discourse_local_dates_email_format\\&quot;:\\&quot;YYYY-MM-DDTHH:mm:ss[Z]\\&quot;,\\&quot;discourse_local_dates_enabled\\&quot;:true,\\&quot;discourse_local_dates_default_formats\\&quot;:\\&quot;LLL|LTS|LL|LLLL\\&quot;,\\&quot;discourse_local_dates_default_timezones\\&quot;:\\&quot;Europe/Paris|America/Los_Angeles\\&quot;,\\&quot;discourse_narrative_bot_enabled\\&quot;:true,\\&quot;presence_enabled\\&quot;:true,\\&quot;poll_enabled\\&quot;:true,\\&quot;poll_maximum_options\\&quot;:20,\\&quot;poll_minimum_trust_level_to_create\\&quot;:1,\\&quot;poll_groupable_user_fields\\&quot;:\\&quot;\\&quot;,\\&quot;poll_export_data_explorer_query_id\\&quot;:-16,\\&quot;oauth2_enabled\\&quot;:false,\\&quot;oauth2_button_title\\&quot;:\\&quot;with OAuth2\\&quot;,\\&quot;saved_searches_enabled\\&quot;:false,\\&quot;saved_searches_min_trust_level\\&quot;:1,\\&quot;solved_enabled\\&quot;:true,\\&quot;allow_solved_on_all_topics\\&quot;:false,\\&quot;accept_all_solutions_trust_level\\&quot;:4,\\&quot;empty_box_on_unsolved\\&quot;:false,\\&quot;show_filter_by_solved_status\\&quot;:false,\\&quot;available_locales\\&quot;:\\&quot;[{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;اللغة العربية\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ar\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;беларуская мова\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;be\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;български език\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;bg\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;bosanski jezik\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;bs_BA\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;català\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ca\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;čeština\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;cs\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;dansk\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;da\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Deutsch\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;de\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;ελληνικά\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;el\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;English\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;en\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;English (United States)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;en_US\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Español\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;es\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;eesti\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;et\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;فارسی\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fa_IR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;suomi\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fi\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Français\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;fr\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;galego\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;gl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;עברית\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;he\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;magyar\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;hu\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Հայերեն\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;hy\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Indonesian\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;id\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Italiano\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;it\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;日本語\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ja\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;한국어\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ko\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;lietuvių kalba\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;lt\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;latviešu valoda\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;lv\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Norsk bokmål\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;nb_NO\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Nederlands\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;nl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;język polski\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pl_PL\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Português\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pt\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Português (BR)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;pt_BR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;limba română\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ro\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Русский\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ru\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;slovenčina\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sk\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;slovenščina\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sl\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Shqip\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sq\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;српски језик\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sr\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;svenska\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sv\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Kiswahili\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;sw\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;తెలుగు\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;te\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;ไทย\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;th\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Türkçe\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;tr_TR\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;українська мова\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;uk\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;اردو\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;ur\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;Việt Nam\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;vi\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;中文\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;zh_CN\\\\\\&quot;},{\\\\\\&quot;name\\\\\\&quot;:\\\\\\&quot;中文 (TW)\\\\\\&quot;,\\\\\\&quot;value\\\\\\&quot;:\\\\\\&quot;zh_TW\\\\\\&quot;}]\\&quot;,\\&quot;site_logo_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;site_logo_small_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/52191724761bd41e862053e2261445e1f9c9713a.png\\&quot;,\\&quot;site_mobile_logo_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\\&quot;,\\&quot;site_favicon_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\\&quot;}&quot;,&quot;customHTML&quot;:&quot;{\\&quot;top\\&quot;:\\&quot;\\&quot;,\\&quot;footer\\&quot;:\\&quot;\\&quot;}&quot;,&quot;banner&quot;:&quot;{\\&quot;html\\&quot;:\\&quot;\\u003cp\\u003eWe’ve now added the “Applications” category. This is for discussion of various apps that GNOME produces. Please tag posts with the application name if possible.\\u003cbr\\u003e\\\\n\\u003cstrong\\u003eNOTE:\\u003c\\\\/strong\\u003e not all application maintainers are using Discourse yet, you may also want to try a mailing list for support.\\u003c\\\\/p\\u003e\\&quot;,\\&quot;key\\&quot;:595,\\&quot;url\\&quot;:\\&quot;https://discourse.gnome.org/t/applications-category-opened/595\\&quot;}&quot;,&quot;customEmoji&quot;:&quot;[{\\&quot;name\\&quot;:\\&quot;gimp\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/69694cc406bf03c901cdb4a18aaa835cb367329a.png\\&quot;},{\\&quot;name\\&quot;:\\&quot;gnome\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/df97e7e32888ceafcea9ec94a52c9dfbbbf09150.png\\&quot;},{\\&quot;name\\&quot;:\\&quot;wanda\\&quot;,\\&quot;url\\&quot;:\\&quot;/uploads/default/original/1X/01295ef10c7c3c19158ea7e7af2ade9a60f3139f.png\\&quot;}]&quot;,&quot;categories_list&quot;:&quot;{\\&quot;category_list\\&quot;:{\\&quot;can_create_category\\&quot;:false,\\&quot;can_create_topic\\&quot;:false,\\&quot;draft\\&quot;:null,\\&quot;draft_key\\&quot;:\\&quot;new_topic\\&quot;,\\&quot;draft_sequence\\&quot;:null,\\&quot;categories\\&quot;:[{\\&quot;id\\&quot;:6,\\&quot;name\\&quot;:\\&quot;Desktop\\&quot;,\\&quot;color\\&quot;:\\&quot;0088CC\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;desktop\\&quot;,\\&quot;topic_count\\&quot;:156,\\&quot;post_count\\&quot;:813,\\&quot;position\\&quot;:0,\\&quot;description\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-desktop-category/15\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:4,\\&quot;topics_month\\&quot;:12,\\&quot;topics_year\\&quot;:133,\\&quot;topics_all_time\\&quot;:156,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:7,\\&quot;name\\&quot;:\\&quot;Applications\\&quot;,\\&quot;color\\&quot;:\\&quot;9EB83B\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;applications\\&quot;,\\&quot;topic_count\\&quot;:92,\\&quot;post_count\\&quot;:455,\\&quot;position\\&quot;:1,\\&quot;description\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\u003cbr\\\\u003e\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications.\\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME ships with various applications. This category is for discussion about those applications. \\\\nPlease make sure to tag your topic with the relevant application if there isn’t a sub-category to put them in.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-applications-category/16\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:1,\\&quot;topics_month\\&quot;:15,\\&quot;topics_year\\&quot;:77,\\&quot;topics_all_time\\&quot;:92,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:5,\\&quot;name\\&quot;:\\&quot;Platform\\&quot;,\\&quot;color\\&quot;:\\&quot;F7941D\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;platform\\&quot;,\\&quot;topic_count\\&quot;:416,\\&quot;post_count\\&quot;:2552,\\&quot;position\\&quot;:2,\\&quot;description\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-platform-category/14\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:3,\\&quot;topics_week\\&quot;:13,\\&quot;topics_month\\&quot;:56,\\&quot;topics_year\\&quot;:480,\\&quot;topics_all_time\\&quot;:584,\\&quot;subcategory_ids\\&quot;:[9,11,64],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:8,\\&quot;name\\&quot;:\\&quot;Community\\&quot;,\\&quot;color\\&quot;:\\&quot;652D90\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;community\\&quot;,\\&quot;topic_count\\&quot;:72,\\&quot;post_count\\&quot;:567,\\&quot;position\\&quot;:6,\\&quot;description\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Anything that isn’t used to discuss code or development goes here!\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-community-category/17\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:7,\\&quot;topics_month\\&quot;:13,\\&quot;topics_year\\&quot;:105,\\&quot;topics_all_time\\&quot;:134,\\&quot;subcategory_ids\\&quot;:[10,334,335,336],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:3,\\&quot;name\\&quot;:\\&quot;Site Feedback\\&quot;,\\&quot;color\\&quot;:\\&quot;808281\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;site-feedback\\&quot;,\\&quot;topic_count\\&quot;:24,\\&quot;post_count\\&quot;:132,\\&quot;position\\&quot;:8,\\&quot;description\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;Discussion about this site, its organization, how it works, and how we can improve it.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-site-feedback-category/2\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:false,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:false,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows_with_featured_topics\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:0,\\&quot;topics_month\\&quot;:1,\\&quot;topics_year\\&quot;:15,\\&quot;topics_all_time\\&quot;:24,\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null},{\\&quot;id\\&quot;:23,\\&quot;name\\&quot;:\\&quot;International\\&quot;,\\&quot;color\\&quot;:\\&quot;92278F\\&quot;,\\&quot;text_color\\&quot;:\\&quot;FFFFFF\\&quot;,\\&quot;slug\\&quot;:\\&quot;international\\&quot;,\\&quot;topic_count\\&quot;:5,\\&quot;post_count\\&quot;:12,\\&quot;position\\&quot;:9,\\&quot;description\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_text\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;description_excerpt\\&quot;:\\&quot;GNOME is used all over the world, this category and the sub-categories contain topics which aren’t in English.\\&quot;,\\&quot;topic_url\\&quot;:\\&quot;/t/about-the-international-category/1284\\&quot;,\\&quot;read_restricted\\&quot;:false,\\&quot;permission\\&quot;:null,\\&quot;notification_level\\&quot;:1,\\&quot;topic_template\\&quot;:\\&quot;\\&quot;,\\&quot;has_children\\&quot;:true,\\&quot;sort_order\\&quot;:\\&quot;\\&quot;,\\&quot;sort_ascending\\&quot;:null,\\&quot;show_subcategory_list\\&quot;:true,\\&quot;num_featured_topics\\&quot;:3,\\&quot;default_view\\&quot;:\\&quot;\\&quot;,\\&quot;subcategory_list_style\\&quot;:\\&quot;rows\\&quot;,\\&quot;default_top_period\\&quot;:\\&quot;all\\&quot;,\\&quot;minimum_required_tags\\&quot;:0,\\&quot;navigate_to_first_post_after_read\\&quot;:false,\\&quot;topics_day\\&quot;:0,\\&quot;topics_week\\&quot;:0,\\&quot;topics_month\\&quot;:1,\\&quot;topics_year\\&quot;:8,\\&quot;topics_all_time\\&quot;:8,\\&quot;subcategory_ids\\&quot;:[25],\\&quot;uploaded_logo\\&quot;:null,\\&quot;uploaded_background\\&quot;:null}]}}&quot;,&quot;topic_list_top&quot;:&quot;{\\&quot;users\\&quot;:[{\\&quot;id\\&quot;:2,\\&quot;username\\&quot;:\\&quot;nmcgovern\\&quot;,\\&quot;name\\&quot;:\\&quot;Neil McGovern\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/nmcgovern/{size}/11_2.png\\&quot;},{\\&quot;id\\&quot;:872,\\&quot;username\\&quot;:\\&quot;whatabouthisstatemen\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/w/e56c9b/{size}.png\\&quot;},{\\&quot;id\\&quot;:5,\\&quot;username\\&quot;:\\&quot;christopherdavis\\&quot;,\\&quot;name\\&quot;:\\&quot;Chris Davis\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/christopherdavis/{size}/19_2.png\\&quot;},{\\&quot;id\\&quot;:887,\\&quot;username\\&quot;:\\&quot;mactrent\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/bc79bd/{size}.png\\&quot;},{\\&quot;id\\&quot;:930,\\&quot;username\\&quot;:\\&quot;cwunder\\&quot;,\\&quot;name\\&quot;:\\&quot;Claudio Wunder\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cwunder/{size}/1159_2.png\\&quot;},{\\&quot;id\\&quot;:3,\\&quot;username\\&quot;:\\&quot;ebassi\\&quot;,\\&quot;name\\&quot;:\\&quot;Emmanuele Bassi\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ebassi/{size}/17_2.png\\&quot;},{\\&quot;id\\&quot;:43,\\&quot;username\\&quot;:\\&quot;januz\\&quot;,\\&quot;name\\&quot;:\\&quot;Diego Gangl\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/januz/{size}/364_2.png\\&quot;},{\\&quot;id\\&quot;:28,\\&quot;username\\&quot;:\\&quot;alexm\\&quot;,\\&quot;name\\&quot;:\\&quot;Alexander Mikhaylenko\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/a/3da27b/{size}.png\\&quot;},{\\&quot;id\\&quot;:680,\\&quot;username\\&quot;:\\&quot;FeRDNYC\\&quot;,\\&quot;name\\&quot;:\\&quot;Frank Dana\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ferdnyc/{size}/586_2.png\\&quot;},{\\&quot;id\\&quot;:878,\\&quot;username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;name\\&quot;:\\&quot;Michael Catanzaro\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/90ced4/{size}.png\\&quot;},{\\&quot;id\\&quot;:170,\\&quot;username\\&quot;:\\&quot;allanday\\&quot;,\\&quot;name\\&quot;:\\&quot;Allan Day\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/allanday/{size}/172_2.png\\&quot;},{\\&quot;id\\&quot;:30,\\&quot;username\\&quot;:\\&quot;fmuellner\\&quot;,\\&quot;name\\&quot;:\\&quot;Florian Müllner\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/fmuellner/{size}/39_2.png\\&quot;},{\\&quot;id\\&quot;:703,\\&quot;username\\&quot;:\\&quot;bberg\\&quot;,\\&quot;name\\&quot;:\\&quot;Benjamin Berg\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/b782af/{size}.png\\&quot;},{\\&quot;id\\&quot;:81,\\&quot;username\\&quot;:\\&quot;cassidyjames\\&quot;,\\&quot;name\\&quot;:\\&quot;Cassidy James Blaede\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cassidyjames/{size}/89_2.png\\&quot;},{\\&quot;id\\&quot;:852,\\&quot;username\\&quot;:\\&quot;Carson_Black\\&quot;,\\&quot;name\\&quot;:\\&quot;Carson Black\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/carson_black/{size}/823_2.png\\&quot;},{\\&quot;id\\&quot;:67,\\&quot;username\\&quot;:\\&quot;gbsneto\\&quot;,\\&quot;name\\&quot;:\\&quot;Georges Basile Stavracas Neto\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/gbsneto/{size}/71_2.png\\&quot;},{\\&quot;id\\&quot;:17,\\&quot;username\\&quot;:\\&quot;bilelmoussaoui\\&quot;,\\&quot;name\\&quot;:\\&quot;Bilal Elmoussaoui\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/bilelmoussaoui/{size}/29_2.png\\&quot;},{\\&quot;id\\&quot;:-1,\\&quot;username\\&quot;:\\&quot;system\\&quot;,\\&quot;name\\&quot;:\\&quot;system\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/system/{size}/2_2.png\\&quot;},{\\&quot;id\\&quot;:105,\\&quot;username\\&quot;:\\&quot;ramcq\\&quot;,\\&quot;name\\&quot;:\\&quot;Robert McQueen\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/ramcq/{size}/112_2.png\\&quot;},{\\&quot;id\\&quot;:883,\\&quot;username\\&quot;:\\&quot;zyga\\&quot;,\\&quot;name\\&quot;:\\&quot;Zygmunt Krynicki\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/zyga/{size}/875_2.png\\&quot;},{\\&quot;id\\&quot;:826,\\&quot;username\\&quot;:\\&quot;jamesh\\&quot;,\\&quot;name\\&quot;:\\&quot;James Henstridge\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jamesh/{size}/782_2.png\\&quot;},{\\&quot;id\\&quot;:37,\\&quot;username\\&quot;:\\&quot;pgriffis\\&quot;,\\&quot;name\\&quot;:\\&quot;Patrick Griffis\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/p/8dc957/{size}.png\\&quot;},{\\&quot;id\\&quot;:528,\\&quot;username\\&quot;:\\&quot;mdhill\\&quot;,\\&quot;name\\&quot;:\\&quot;Michael Hill\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/e19b73/{size}.png\\&quot;},{\\&quot;id\\&quot;:694,\\&quot;username\\&quot;:\\&quot;j_arun_mani\\&quot;,\\&quot;name\\&quot;:\\&quot;J Arun Mani\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/j_arun_mani/{size}/603_2.png\\&quot;},{\\&quot;id\\&quot;:999,\\&quot;username\\&quot;:\\&quot;mwu\\&quot;,\\&quot;name\\&quot;:\\&quot;Melissa W\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/m/9d8465/{size}.png\\&quot;},{\\&quot;id\\&quot;:758,\\&quot;username\\&quot;:\\&quot;Bowler\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/8e7dd6/{size}.png\\&quot;},{\\&quot;id\\&quot;:1168,\\&quot;username\\&quot;:\\&quot;nandedamana\\&quot;,\\&quot;name\\&quot;:\\&quot;Nandakumar Edamana\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/n/e47c2d/{size}.png\\&quot;},{\\&quot;id\\&quot;:1251,\\&quot;username\\&quot;:\\&quot;Abhinav_Srivastava\\&quot;,\\&quot;name\\&quot;:\\&quot;Abhinav Srivastava\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/abhinav_srivastava/{size}/1377_2.png\\&quot;},{\\&quot;id\\&quot;:13,\\&quot;username\\&quot;:\\&quot;felipeborges\\&quot;,\\&quot;name\\&quot;:\\&quot;Felipe Borges\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/felipeborges/{size}/25_2.png\\&quot;},{\\&quot;id\\&quot;:409,\\&quot;username\\&quot;:\\&quot;esodan\\&quot;,\\&quot;name\\&quot;:\\&quot;Daniel Espinosa\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/esodan/{size}/1100_2.png\\&quot;},{\\&quot;id\\&quot;:134,\\&quot;username\\&quot;:\\&quot;nonoesimposible\\&quot;,\\&quot;name\\&quot;:\\&quot;NoNo\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/nonoesimposible/{size}/140_2.png\\&quot;},{\\&quot;id\\&quot;:44,\\&quot;username\\&quot;:\\&quot;andyholmes\\&quot;,\\&quot;name\\&quot;:\\&quot;Andy Holmes\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/andyholmes/{size}/54_2.png\\&quot;},{\\&quot;id\\&quot;:1107,\\&quot;username\\&quot;:\\&quot;blackpanther\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/3da27b/{size}.png\\&quot;},{\\&quot;id\\&quot;:1111,\\&quot;username\\&quot;:\\&quot;VaZark\\&quot;,\\&quot;name\\&quot;:\\&quot;Vasanth\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/vazark/{size}/1194_2.png\\&quot;},{\\&quot;id\\&quot;:1235,\\&quot;username\\&quot;:\\&quot;HROMANO\\&quot;,\\&quot;name\\&quot;:\\&quot;rv\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/h/fbc32d/{size}.png\\&quot;},{\\&quot;id\\&quot;:72,\\&quot;username\\&quot;:\\&quot;link\\&quot;,\\&quot;name\\&quot;:\\&quot;Link Dupont\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/link/{size}/75_2.png\\&quot;},{\\&quot;id\\&quot;:1045,\\&quot;username\\&quot;:\\&quot;bernard_ei8fdb\\&quot;,\\&quot;name\\&quot;:\\&quot;Bernard Tyers\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/bernard_ei8fdb/{size}/1119_2.png\\&quot;},{\\&quot;id\\&quot;:757,\\&quot;username\\&quot;:\\&quot;giacomoalbe\\&quot;,\\&quot;name\\&quot;:\\&quot;Giacomo Alberini\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/giacomoalbe/{size}/690_2.png\\&quot;},{\\&quot;id\\&quot;:658,\\&quot;username\\&quot;:\\&quot;rontarrant\\&quot;,\\&quot;name\\&quot;:\\&quot;Ron Tarrant\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/rontarrant/{size}/557_2.png\\&quot;},{\\&quot;id\\&quot;:678,\\&quot;username\\&quot;:\\&quot;Cogitri\\&quot;,\\&quot;name\\&quot;:\\&quot;Rasmus Thomsen\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/cogitri/{size}/758_2.png\\&quot;},{\\&quot;id\\&quot;:70,\\&quot;username\\&quot;:\\&quot;gavr\\&quot;,\\&quot;name\\&quot;:\\&quot;gavr\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/gavr/{size}/74_2.png\\&quot;},{\\&quot;id\\&quot;:1221,\\&quot;username\\&quot;:\\&quot;thibaultamartin\\&quot;,\\&quot;name\\&quot;:\\&quot;Thibault\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/t/45deac/{size}.png\\&quot;},{\\&quot;id\\&quot;:4,\\&quot;username\\&quot;:\\&quot;kprogri\\&quot;,\\&quot;name\\&quot;:\\&quot;Kristi Progri\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/kprogri/{size}/102_2.png\\&quot;},{\\&quot;id\\&quot;:1069,\\&quot;username\\&quot;:\\&quot;jfft\\&quot;,\\&quot;name\\&quot;:\\&quot;Jeff the accursed heisenbug hunter\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jfft/{size}/1152_2.png\\&quot;},{\\&quot;id\\&quot;:47,\\&quot;username\\&quot;:\\&quot;TomaszGasior\\&quot;,\\&quot;name\\&quot;:\\&quot;Tomasz Gąsior\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/tomaszgasior/{size}/58_2.png\\&quot;},{\\&quot;id\\&quot;:189,\\&quot;username\\&quot;:\\&quot;StefanSalewski\\&quot;,\\&quot;name\\&quot;:\\&quot;Stefan Salewski\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/s/3ab097/{size}.png\\&quot;},{\\&quot;id\\&quot;:713,\\&quot;username\\&quot;:\\&quot;Rara\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/rara/{size}/1007_2.png\\&quot;},{\\&quot;id\\&quot;:177,\\&quot;username\\&quot;:\\&quot;sjohannes\\&quot;,\\&quot;name\\&quot;:\\&quot;Johannes Sasongko\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/sjohannes/{size}/179_2.png\\&quot;},{\\&quot;id\\&quot;:541,\\&quot;username\\&quot;:\\&quot;tpm\\&quot;,\\&quot;name\\&quot;:\\&quot;Tim Philipp Müller\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/t/c5a1d2/{size}.png\\&quot;},{\\&quot;id\\&quot;:725,\\&quot;username\\&quot;:\\&quot;sdroege\\&quot;,\\&quot;name\\&quot;:\\&quot;Sebastian Dröge\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/sdroege/{size}/657_2.png\\&quot;},{\\&quot;id\\&quot;:825,\\&quot;username\\&quot;:\\&quot;Nishanth1829\\&quot;,\\&quot;name\\&quot;:\\&quot;Nishanth Kumar\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/n/b4bc9f/{size}.png\\&quot;},{\\&quot;id\\&quot;:228,\\&quot;username\\&quot;:\\&quot;cecashon\\&quot;,\\&quot;name\\&quot;:\\&quot;C. Eric Cashon\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/c/a3d4f5/{size}.png\\&quot;},{\\&quot;id\\&quot;:356,\\&quot;username\\&quot;:\\&quot;jensgeorg\\&quot;,\\&quot;name\\&quot;:\\&quot;Jens Georg\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/jensgeorg/{size}/1199_2.png\\&quot;},{\\&quot;id\\&quot;:867,\\&quot;username\\&quot;:\\&quot;Igor_Morgado\\&quot;,\\&quot;name\\&quot;:\\&quot;Igor Morgado\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/igor_morgado/{size}/843_2.png\\&quot;},{\\&quot;id\\&quot;:781,\\&quot;username\\&quot;:\\&quot;baedert\\&quot;,\\&quot;name\\&quot;:\\&quot;Timm Bäder\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/b/e95f7d/{size}.png\\&quot;},{\\&quot;id\\&quot;:16,\\&quot;username\\&quot;:\\&quot;tchx84\\&quot;,\\&quot;name\\&quot;:\\&quot;Martin Abente Lahaye\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/tchx84/{size}/27_2.png\\&quot;},{\\&quot;id\\&quot;:1151,\\&quot;username\\&quot;:\\&quot;Merlijn_Sebrechts\\&quot;,\\&quot;name\\&quot;:\\&quot;Merlijn Sebrechts\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/user_avatar/discourse.gnome.org/merlijn_sebrechts/{size}/1237_2.png\\&quot;},{\\&quot;id\\&quot;:943,\\&quot;username\\&quot;:\\&quot;Abdou\\&quot;,\\&quot;name\\&quot;:\\&quot;Abdou\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/a/a4c791/{size}.png\\&quot;},{\\&quot;id\\&quot;:179,\\&quot;username\\&quot;:\\&quot;lb90\\&quot;,\\&quot;name\\&quot;:\\&quot;\\&quot;,\\&quot;avatar_template\\&quot;:\\&quot;/letter_avatar_proxy/v4/letter/l/d26b3c/{size}.png\\&quot;}],\\&quot;primary_groups\\&quot;:[{\\&quot;id\\&quot;:41,\\&quot;name\\&quot;:\\&quot;foundation-staff\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/0572f3a61f8118d073d0b37f03c37b0492142731.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;},{\\&quot;id\\&quot;:42,\\&quot;name\\&quot;:\\&quot;foundation-members\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/659f850c2e755bc4c906630dfb0784a28686489b.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;},{\\&quot;id\\&quot;:43,\\&quot;name\\&quot;:\\&quot;foundation-board\\&quot;,\\&quot;flair_url\\&quot;:\\&quot;https://discourse.gnome.org/uploads/default/original/1X/d016f9d51dbd99606588277b8f3106e22286b82f.png\\&quot;,\\&quot;flair_bg_color\\&quot;:\\&quot;\\&quot;,\\&quot;flair_color\\&quot;:\\&quot;\\&quot;}],\\&quot;topic_list\\&quot;:{\\&quot;can_create_topic\\&quot;:false,\\&quot;more_topics_url\\&quot;:\\&quot;/top\\&quot;,\\&quot;draft\\&quot;:null,\\&quot;draft_key\\&quot;:null,\\&quot;draft_sequence\\&quot;:null,\\&quot;per_page\\&quot;:20,\\&quot;top_tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;glib\\&quot;,\\&quot;python\\&quot;,\\&quot;vala\\&quot;,\\&quot;documentation\\&quot;,\\&quot;builder\\&quot;,\\&quot;nautilus\\&quot;,\\&quot;windows\\&quot;,\\&quot;theme\\&quot;,\\&quot;tracker\\&quot;,\\&quot;gstreamer\\&quot;,\\&quot;javascript\\&quot;,\\&quot;c\\&quot;,\\&quot;flatpak\\&quot;,\\&quot;pango\\&quot;,\\&quot;libsoup\\&quot;,\\&quot;perl\\&quot;,\\&quot;evolution\\&quot;,\\&quot;announcement\\&quot;,\\&quot;cplusplus\\&quot;,\\&quot;guadec\\&quot;,\\&quot;newcomer\\&quot;,\\&quot;rust\\&quot;,\\&quot;boxes\\&quot;,\\&quot;cairo\\&quot;,\\&quot;development\\&quot;,\\&quot;events\\&quot;,\\&quot;gsoc\\&quot;,\\&quot;macos\\&quot;,\\&quot;minutes\\&quot;],\\&quot;topics\\&quot;:[{\\&quot;id\\&quot;:1786,\\&quot;title\\&quot;:\\&quot;GNOME Foundation relationship with GNU and the FSF\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GNOME Foundation relationship with GNU and the FSF\\&quot;,\\&quot;slug\\&quot;:\\&quot;gnome-foundation-relationship-with-gnu-and-the-fsf\\&quot;,\\&quot;posts_count\\&quot;:25,\\&quot;reply_count\\&quot;:17,\\&quot;highest_post_number\\&quot;:29,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-16T18:09:34.431Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-11-09T11:09:00.659Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-11-09T11:09:00.659Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:5684,\\&quot;like_count\\&quot;:77,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;cwunder\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:2,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:872,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:5,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:887,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:930,\\&quot;primary_group_id\\&quot;:42}]},{\\&quot;id\\&quot;:1964,\\&quot;title\\&quot;:\\&quot;Straw man proposal: Changing the GNOME versioning scheme\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Straw man proposal: Changing the GNOME versioning scheme\\&quot;,\\&quot;slug\\&quot;:\\&quot;straw-man-proposal-changing-the-gnome-versioning-scheme\\&quot;,\\&quot;posts_count\\&quot;:41,\\&quot;reply_count\\&quot;:22,\\&quot;highest_post_number\\&quot;:41,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-10-11T11:52:47.372Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T17:11:12.852Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T17:11:12.852Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;desktop\\&quot;,\\&quot;release-team\\&quot;],\\&quot;views\\&quot;:1337,\\&quot;like_count\\&quot;:37,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:43,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:28,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:680,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3371,\\&quot;title\\&quot;:\\&quot;Official proposal: how we define GNOME software\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Official proposal: how we define GNOME software\\&quot;,\\&quot;slug\\&quot;:\\&quot;official-proposal-how-we-define-gnome-software\\&quot;,\\&quot;posts_count\\&quot;:44,\\&quot;reply_count\\&quot;:33,\\&quot;highest_post_number\\&quot;:44,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-05-19T10:45:07.014Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T11:33:57.230Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T11:33:57.230Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:2456,\\&quot;like_count\\&quot;:32,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;bberg\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:170,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:30,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:703,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1641,\\&quot;title\\&quot;:\\&quot;GTK, Adwaita, and Vendor Styles\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GTK, Adwaita, and Vendor Styles\\&quot;,\\&quot;slug\\&quot;:\\&quot;gtk-adwaita-and-vendor-styles\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:6,\\&quot;highest_post_number\\&quot;:18,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-27T11:39:45.666Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-08T10:35:28.026Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-24T10:35:23.534Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:3961,\\&quot;like_count\\&quot;:40,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:81,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:852,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:67,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:17,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1651,\\&quot;title\\&quot;:\\&quot;Sandboxing portal\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Sandboxing portal\\&quot;,\\&quot;slug\\&quot;:\\&quot;sandboxing-portal\\&quot;,\\&quot;posts_count\\&quot;:16,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:16,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-29T16:51:00.199Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-17T22:01:17.544Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-10-17T22:01:17.544Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1295,\\&quot;like_count\\&quot;:10,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;mcatanzaro\\&quot;,\\&quot;category_id\\&quot;:64,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:105,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:883,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:826,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:37,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:878,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2479,\\&quot;title\\&quot;:\\&quot;New HIG website\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;New HIG website\\&quot;,\\&quot;slug\\&quot;:\\&quot;new-hig-website\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-01-17T12:19:50.036Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-02-17T17:16:45.038Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-02-03T17:16:42.127Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;design\\&quot;,\\&quot;documentation\\&quot;],\\&quot;views\\&quot;:501,\\&quot;like_count\\&quot;:12,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:170,\\&quot;primary_group_id\\&quot;:43},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:528,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3123,\\&quot;title\\&quot;:\\&quot;Looking for a team?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Looking for a team?\\&quot;,\\&quot;slug\\&quot;:\\&quot;looking-for-a-team\\&quot;,\\&quot;posts_count\\&quot;:40,\\&quot;reply_count\\&quot;:28,\\&quot;highest_post_number\\&quot;:43,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-10T17:40:30.032Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-01T12:39:28.937Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-01T12:39:28.937Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:769,\\&quot;like_count\\&quot;:33,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;Abhinav_Srivastava\\&quot;,\\&quot;category_id\\&quot;:335,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:999,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:758,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1168,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1251,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2913,\\&quot;title\\&quot;:\\&quot;Simplify our UI declarative language, a strawman proposal\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Simplify our UI declarative language, a strawman proposal\\&quot;,\\&quot;slug\\&quot;:\\&quot;simplify-our-ui-declarative-language-a-strawman-proposal\\&quot;,\\&quot;posts_count\\&quot;:31,\\&quot;reply_count\\&quot;:24,\\&quot;highest_post_number\\&quot;:32,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-03-03T13:22:20.069Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-03-21T01:50:11.600Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-03-07T01:39:51.023Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;strawman\\&quot;,\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:635,\\&quot;like_count\\&quot;:14,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:9,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:13,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:28,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:409,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3043,\\&quot;title\\&quot;:\\&quot;State of the Dash (Continuation of gnome-shell/!1139)\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;State of the Dash (Continuation of gnome-shell/!1139)\\&quot;,\\&quot;slug\\&quot;:\\&quot;state-of-the-dash-continuation-of-gnome-shell-1139\\&quot;,\\&quot;posts_count\\&quot;:32,\\&quot;reply_count\\&quot;:19,\\&quot;highest_post_number\\&quot;:32,\\&quot;image_url\\&quot;:\\&quot;https://gitlab.gnome.org/Teams/Design/os-mockups/-/raw/fe9c4089a099827748d7bb7a8bdc763f4771c69d/mobile-shell/mobile-shell-convergence.png\\&quot;,\\&quot;created_at\\&quot;:\\&quot;2020-04-01T02:24:35.248Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-05-26T12:10:12.278Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-05-26T12:10:12.278Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:977,\\&quot;like_count\\&quot;:17,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;HROMANO\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:134,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:44,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1107,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1111,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1235,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2794,\\&quot;title\\&quot;:\\&quot;Initiative Proposal: Chat communication platforms\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Initiative Proposal: Chat communication platforms\\&quot;,\\&quot;slug\\&quot;:\\&quot;initiative-proposal-chat-communication-platforms\\&quot;,\\&quot;posts_count\\&quot;:19,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:19,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-02-13T15:35:45.496Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-03-13T13:53:38.896Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-02-28T13:53:38.271Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:506,\\&quot;like_count\\&quot;:17,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:72,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:37,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1045,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1702,\\&quot;title\\&quot;:\\&quot;Consideration about GTK \\\\\\&quot;cross platform\\\\\\&quot; compatibility\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Consideration about GTK \\\\u0026ldquo;cross platform\\\\u0026rdquo; compatibility\\&quot;,\\&quot;slug\\&quot;:\\&quot;consideration-about-gtk-cross-platform-compatibility\\&quot;,\\&quot;posts_count\\&quot;:10,\\&quot;reply_count\\&quot;:2,\\&quot;highest_post_number\\&quot;:10,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-04T17:02:17.124Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-19T15:08:59.411Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-10-05T14:59:34.966Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;vala\\&quot;,\\&quot;windows\\&quot;,\\&quot;gtk\\&quot;],\\&quot;views\\&quot;:638,\\&quot;like_count\\&quot;:13,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:757,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:658,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:678,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:70,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3067,\\&quot;title\\&quot;:\\&quot;GUADEC 2020 moves to online conference\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GUADEC 2020 moves to online conference\\&quot;,\\&quot;slug\\&quot;:\\&quot;guadec-2020-moves-to-online-conference\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-03T19:40:41.746Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-06-08T15:33:49.616Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-06-08T15:33:49.616Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:false,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;guadec\\&quot;],\\&quot;views\\&quot;:1009,\\&quot;like_count\\&quot;:11,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;jfft\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:2,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:1221,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:4,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:1069,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1316,\\&quot;title\\&quot;:\\&quot;(solved) Why GNOME uses \\\\\\&quot;grayscale\\\\\\&quot; antialiasing method by default?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;(solved) Why GNOME uses \\\\u0026ldquo;grayscale\\\\u0026rdquo; antialiasing method by default?\\&quot;,\\&quot;slug\\&quot;:\\&quot;solved-why-gnome-uses-grayscale-antialiasing-method-by-default\\&quot;,\\&quot;posts_count\\&quot;:13,\\&quot;reply_count\\&quot;:8,\\&quot;highest_post_number\\&quot;:13,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-07-06T17:05:38.747Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-07-23T00:49:14.633Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-07-09T00:49:12.979Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1570,\\&quot;like_count\\&quot;:4,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:47,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:703,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1223,\\&quot;title\\&quot;:\\&quot;GStreamer - How to save matroska file\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;GStreamer - How to save matroska file\\&quot;,\\&quot;slug\\&quot;:\\&quot;gstreamer-how-to-save-matroska-file\\&quot;,\\&quot;posts_count\\&quot;:34,\\&quot;reply_count\\&quot;:24,\\&quot;highest_post_number\\&quot;:34,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-06-22T09:06:07.184Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-07-17T07:03:53.922Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-07-03T07:03:44.280Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gstreamer\\&quot;],\\&quot;views\\&quot;:1025,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:713,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:177,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:541,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:725,\\&quot;primary_group_id\\&quot;:42},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1617,\\&quot;title\\&quot;:\\&quot;How to use graph with gtk+3.0\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;How to use graph with gtk+3.0\\&quot;,\\&quot;slug\\&quot;:\\&quot;how-to-use-graph-with-gtk-3-0\\&quot;,\\&quot;posts_count\\&quot;:10,\\&quot;reply_count\\&quot;:7,\\&quot;highest_post_number\\&quot;:10,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-20T03:42:16.495Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-09-06T15:27:12.230Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-08-23T15:27:06.071Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:1349,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:356,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2215,\\&quot;title\\&quot;:\\&quot;Better documentation for GTK request\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Better documentation for GTK request\\&quot;,\\&quot;slug\\&quot;:\\&quot;better-documentation-for-gtk-request\\&quot;,\\&quot;posts_count\\&quot;:16,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:16,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-12-02T12:41:08.170Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-12-22T10:18:22.611Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-12-08T10:18:20.473Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:546,\\&quot;like_count\\&quot;:7,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:8,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:867,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:781,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1626,\\&quot;title\\&quot;:\\&quot;Onscreen Keyboard integration with GTK+3 application\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Onscreen Keyboard integration with GTK+3 application\\&quot;,\\&quot;slug\\&quot;:\\&quot;onscreen-keyboard-integration-with-gtk-3-application\\&quot;,\\&quot;posts_count\\&quot;:17,\\&quot;reply_count\\&quot;:12,\\&quot;highest_post_number\\&quot;:17,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-08-24T04:34:39.241Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-10-07T05:31:04.234Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-23T05:31:00.244Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:903,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:16,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:3170,\\&quot;title\\&quot;:\\&quot;Should I use GTK+ 3 or GTK 3?\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Should I use GTK+ 3 or GTK 3?\\&quot;,\\&quot;slug\\&quot;:\\&quot;should-i-use-gtk-3-or-gtk-3\\&quot;,\\&quot;posts_count\\&quot;:11,\\&quot;reply_count\\&quot;:6,\\&quot;highest_post_number\\&quot;:11,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2020-04-16T20:36:09.136Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2020-05-01T22:25:31.084Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2020-04-17T22:15:21.138Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:152,\\&quot;like_count\\&quot;:11,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:1151,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:694,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:2146,\\&quot;title\\&quot;:\\&quot;Compile and deploy GTKmm 3.95 on Windows\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Compile and deploy GTKmm 3.95 on Windows\\&quot;,\\&quot;slug\\&quot;:\\&quot;compile-and-deploy-gtkmm-3-95-on-windows\\&quot;,\\&quot;posts_count\\&quot;:41,\\&quot;reply_count\\&quot;:35,\\&quot;highest_post_number\\&quot;:41,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-11-19T16:55:41.913Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-12-24T01:26:16.484Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-12-10T01:26:14.594Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[\\&quot;gtk\\&quot;,\\&quot;windows\\&quot;],\\&quot;views\\&quot;:515,\\&quot;like_count\\&quot;:18,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:6,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:true,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:943,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:3,\\&quot;primary_group_id\\&quot;:41},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:179,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]},{\\&quot;id\\&quot;:1750,\\&quot;title\\&quot;:\\&quot;Gtk treeview cell color change\\&quot;,\\&quot;fancy_title\\&quot;:\\&quot;Gtk treeview cell color change\\&quot;,\\&quot;slug\\&quot;:\\&quot;gtk-treeview-cell-color-change\\&quot;,\\&quot;posts_count\\&quot;:14,\\&quot;reply_count\\&quot;:10,\\&quot;highest_post_number\\&quot;:14,\\&quot;image_url\\&quot;:null,\\&quot;created_at\\&quot;:\\&quot;2019-09-10T05:53:56.682Z\\&quot;,\\&quot;last_posted_at\\&quot;:\\&quot;2019-09-29T21:31:36.191Z\\&quot;,\\&quot;bumped\\&quot;:true,\\&quot;bumped_at\\&quot;:\\&quot;2019-09-15T21:26:48.149Z\\&quot;,\\&quot;unseen\\&quot;:false,\\&quot;pinned\\&quot;:false,\\&quot;unpinned\\&quot;:null,\\&quot;visible\\&quot;:true,\\&quot;closed\\&quot;:true,\\&quot;archived\\&quot;:false,\\&quot;bookmarked\\&quot;:null,\\&quot;liked\\&quot;:null,\\&quot;tags\\&quot;:[],\\&quot;views\\&quot;:722,\\&quot;like_count\\&quot;:1,\\&quot;has_summary\\&quot;:false,\\&quot;archetype\\&quot;:\\&quot;regular\\&quot;,\\&quot;last_poster_username\\&quot;:\\&quot;system\\&quot;,\\&quot;category_id\\&quot;:5,\\&quot;pinned_globally\\&quot;:false,\\&quot;featured_link\\&quot;:null,\\&quot;has_accepted_answer\\&quot;:false,\\&quot;posters\\&quot;:[{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Original Poster\\&quot;,\\&quot;user_id\\&quot;:825,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:179,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:189,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:null,\\&quot;description\\&quot;:\\&quot;Frequent Poster\\&quot;,\\&quot;user_id\\&quot;:228,\\&quot;primary_group_id\\&quot;:null},{\\&quot;extras\\&quot;:\\&quot;latest\\&quot;,\\&quot;description\\&quot;:\\&quot;Most Recent Poster\\&quot;,\\&quot;user_id\\&quot;:-1,\\&quot;primary_group_id\\&quot;:null}]}]}}&quot;}\"></div>\n    <link rel=\"preload\" href=\"/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js\" as=\"script\">\n<script src=\"/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js\"></script>\n\n\n    \n\n    <link rel=\"preload\" href=\"/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js\" as=\"script\">\n<script src=\"/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js\"></script>\n\n\n      \n    \n  </body>\n</html>\n"
          },
          "redirectURL": "",
          "headersSize": 1368,
          "bodySize": 137975,
          "_transferSize": 139343
        },
        "cache": {},
        "timings": {
          "blocked": 1.2279999869149179,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.07199999999999995,
          "wait": 1317.398000001302,
          "receive": 3834.1810000129044,
          "_blocked_queueing": 0.9499999869149178
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4588
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "738342",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2349.508999992395,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 723,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:41 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000498"
            },
            {
              "name": "Content-Length",
              "value": "63976"
            }
          ],
          "cookies": [],
          "content": {
            "size": 217699,
            "mimeType": "application/javascript",
            "compression": 153723,
            "text": "var I18n=I18n||{};I18n.defaultLocale=\"en\",I18n.pluralizationRules={en:function(e){return 0===e?[\"zero\",\"none\",\"other\"]:1===e?\"one\":\"other\"}},I18n.locale=null,I18n.fallbackLocale=null,I18n.PLACEHOLDER=/(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm,I18n.SEPARATOR=\".\",I18n.noFallbacks=!1,I18n.isValidNode=function(e,t,o){return null!==e[t]&&e[t]!==o},I18n.lookup=function(e,t){t=t||{};var o=this.prepareOptions(I18n.translations),a=t.locale||I18n.currentLocale(),i=o[a]||{};t=this.prepareOptions(t),\"object\"==typeof e&&(e=e.join(this.SEPARATOR)),t.scope&&(e=t.scope.toString()+this.SEPARATOR+e);var r=e;for(0<(e=e.split(this.SEPARATOR)).length&&\"js\"!==e[0]&&e.unshift(\"js\");i&&0<e.length;)i=i[e.shift()];if(void 0===i&&this.extras&&this.extras[a])for(i=this.extras[a],e=r.split(this.SEPARATOR);i&&0<e.length;)i=i[e.shift()];return void 0===i&&(i=t.defaultValue),i},I18n.prepareOptions=function(){for(var e,t={},o=arguments.length,a=0;a<o;a++)if(e=arguments[a])for(var i in e)this.isValidNode(t,i)||(t[i]=e[i]);return t},I18n.interpolate=function(e,t){t=this.prepareOptions(t);var o,a,i,r=e.match(this.PLACEHOLDER);if(!r)return e;for(var n=0;o=r[n];n++){a=\"string\"==typeof t[i=o.replace(this.PLACEHOLDER,\"$1\")]?t[i].replace(/\\$/g,\"$$$$\"):t[i],this.isValidNode(t,i)||(a=\"[missing \"+o+\" value]\");var s=new RegExp(o.replace(/\\{/gm,\"\\\\{\").replace(/\\}/gm,\"\\\\}\"));e=e.replace(s,a)}return e},I18n.translate=function(t,e){(e=this.prepareOptions(e)).needsPluralization=\"number\"==typeof e.count,e.ignoreMissing=!this.noFallbacks;var o=this.findTranslation(t,e);this.noFallbacks||(!o&&this.fallbackLocale&&(e.locale=this.fallbackLocale,o=this.findTranslation(t,e)),e.ignoreMissing=!1,o||this.currentLocale()===this.defaultLocale||(e.locale=this.defaultLocale,o=this.findTranslation(t,e)),o||\"en\"===this.currentLocale()||(e.locale=\"en\",o=this.findTranslation(t,e)));try{return this.interpolate(o,e)}catch(e){return this.missingTranslation(t)}},I18n.findTranslation=function(e,t){var o=this.lookup(e,t);return o&&t.needsPluralization&&(o=this.pluralize(o,e,t)),o},I18n.toNumber=function(e,t){t=this.prepareOptions(t,this.lookup(\"number.format\"),{precision:3,separator:this.SEPARATOR,delimiter:\",\",strip_insignificant_zeros:!1});var o,a,i=e<0,r=Math.abs(e).toFixed(t.precision).toString().split(this.SEPARATOR),n=[];for(e=r[0],r[1];0<e.length;)n.unshift(e.substr(Math.max(0,e.length-3),3)),e=e.substr(0,e.length-3);return a=n.join(t.delimiter),0<t.precision&&(a+=t.separator+r[1]),i&&(a=\"-\"+a),t.strip_insignificant_zeros&&(o={separator:new RegExp(t.separator.replace(/\\./,\"\\\\.\")+\"$\"),zeros:/0+$/},a=a.replace(o.zeros,\"\").replace(o.separator,\"\")),a},I18n.toHumanSize=function(e,t){for(var o,a,i=e,r=0;1024<=i&&r<4;)i/=1024,r+=1;return a=0===r?(o=this.t(\"number.human.storage_units.units.byte\",{count:i}),0):(o=this.t(\"number.human.storage_units.units.\"+[null,\"kb\",\"mb\",\"gb\",\"tb\"][r]),i-Math.floor(i)==0?0:1),t=this.prepareOptions(t,{precision:a,format:\"%n%u\",delimiter:\"\"}),e=this.toNumber(i,t),e=t.format.replace(\"%u\",o).replace(\"%n\",e)},I18n.pluralizer=function(e){var t=this.pluralizationRules[e];return void 0!==t?t:this.pluralizationRules.en},I18n.findAndTranslateValidNode=function(e,t){for(var o=0;o<e.length;o++){var a=e[o];if(this.isValidNode(t,a))return t[a]}return null},I18n.pluralize=function(e,t,o){if(\"object\"!=typeof e)return e;var a=(o=this.prepareOptions(o)).count.toString(),i=this.pluralizer(o.locale||this.currentLocale())(Math.abs(a)),r=\"object\"==typeof i&&i instanceof Array?i:[i],n=this.findAndTranslateValidNode(r,e);return null!==n||o.ignoreMissing?n:this.missingTranslation(t,r[0])},I18n.missingTranslation=function(e,t){var o=\"[\"+this.currentLocale()+this.SEPARATOR+e;return t&&(o+=this.SEPARATOR+t),o+\"]\"},I18n.currentLocale=function(){return I18n.locale||I18n.defaultLocale},I18n.enableVerboseLocalization=function(){var i=0,r={},n=I18n.t;I18n.noFallbacks=!0,I18n.t=I18n.translate=function(e,t){var o,a=r[e];return a||(o=\"Translation #\"+(a=r[e]=++i)+\": \"+e,_.isEmpty(t)||(o+=\", parameters: \"+JSON.stringify(t)),console.info(o)),n.apply(I18n,[e,t])+\" (#\"+a+\")\"}},I18n.enableVerboseLocalizationSession=function(){return sessionStorage.setItem(\"verbose_localization\",\"true\"),I18n.enableVerboseLocalization(),\"Verbose localization is enabled. Close the browser tab to turn it off. Reload the page to see the translation keys.\"},I18n.t=I18n.translate,MessageFormat={locale:{}},I18n._compiledMFs={\"logs_error_rate_notice.reached_hour_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> reached site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.reached_minute_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> reached site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.exceeded_hour_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> exceeded site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.exceeded_minute_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> exceeded site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"topic.read_more_MF\":function(e){var t=\"\";if(t+=\"There \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var a=\"UNREAD\",i=e[a],r=0,o={0:function(e){return\"\"},one:function(e){var t=\"\";if(t+=\"is <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/unread'>1 unread</a> \"},other:function(e){var t=\"\";if(t+=\"are <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/unread'>\"+function(){var e=i-r;if(isNaN(e))throw new Error(\"MessageFormat: `\"+a+\"` isnt a number.\");return e}()+\" unread</a> \"}};if(o[i+\"\"]?t+=o[i+\"\"](e):t+=(o[MessageFormat.locale.en(i-r)]||o.other)(e),t+=\" \",!e)throw new Error(\"MessageFormat: No data passed to function.\");i=e[a=\"NEW\"],r=0;if((o={0:function(e){return\"\"},one:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");var o={true:function(e){return\"and \"},false:function(e){return\"is \"},other:function(e){return\"\"}};if(t+=(o[e.BOTH]||o.other)(e),t+=\" <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/new'>1 new</a> topic\"},other:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");var o={true:function(e){return\"and \"},false:function(e){return\"are \"},other:function(e){return\"\"}};if(t+=(o[e.BOTH]||o.other)(e),t+=\" <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/new'>\"+function(){var e=i-r;if(isNaN(e))throw new Error(\"MessageFormat: `\"+a+\"` isnt a number.\");return e}()+\" new</a> topics\"}})[i+\"\"]?t+=o[i+\"\"](e):t+=(o[MessageFormat.locale.en(i-r)]||o.other)(e),t+=\" remaining, or \",!e)throw new Error(\"MessageFormat: No data passed to function.\");i=e[a=\"CATEGORY\"],r=0;return t+=((o={true:function(e){var t=\"\";if(t+=\"browse other topics in \",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.catLink},false:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.latestLink},other:function(e){return\"\"}})[i]||o.other)(e)},\"flagging.delete_confirm_MF\":function(e){var t=\"\";if(t+=\"You are about to delete \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"POSTS\",a=e[o],i=0,r={one:function(e){return\"<b>1</b> post\"},other:function(e){var t=\"\";return t+=\"<b>\"+function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\"</b> posts\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" and \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"TOPICS\"],i=0;if((r={one:function(e){return\"<b>1</b> topic\"},other:function(e){var t=\"\";return t+=\"<b>\"+function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\"</b> topics\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" from this user, remove their account, block signups from their IP address <b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.ip_address,t+=\"</b>, and add their email address <b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.email,t+=\"</b> to a permanent block list. Are you sure this user is really a spammer?\"},posts_likes_MF:function(e){var t=\"\";if(t+=\"This topic has \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"count\",a=e[o],i=0,r={one:function(e){return\"1 reply\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" replies\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"ratio\"],i=0;return t+=((r={low:function(e){return\"with a high like to post ratio\"},med:function(e){return\"with a very high like to post ratio\"},high:function(e){return\"with an extremely high like to post ratio\"},other:function(e){return\"\"}})[a]||r.other)(e),t+=\"\\n\"},\"admin.user.delete_all_posts_confirm_MF\":function(e){var t=\"\";if(t+=\"You are about to delete \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"POSTS\",a=e[o],i=0,r={one:function(e){return\"1 post\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" posts\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" and \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"TOPICS\"],i=0;return(r={one:function(e){return\"1 topic\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" topics\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\". Are you sure?\"}},MessageFormat.locale.en=function(e){return 1===e?\"one\":\"other\"},I18n.messageFormat=function(e,t){var o=I18n._compiledMFs[e];if(!o)return\"Missing Key: \"+e;try{return o(t)}catch(e){return e.message}return I18n._compiledMFs[e](t)},I18n.translations={en_US:{js:{dates:{time:\"h:mm a\",time_short_day:\"ddd, h:mm a\",timeline_date:\"MMM YYYY\",long_no_year:\"MMM D h:mm a\",long_no_year_no_time:\"MMM D\",full_no_year_no_time:\"MMMM Do\",long_with_year:\"MMM D, YYYY h:mm a\",long_with_year_no_time:\"MMM D, YYYY\",full_with_year_no_time:\"MMMM Do, YYYY\",long_date_with_year:\"MMM D, 'YY LT\",long_date_without_year:\"MMM D, LT\",long_date_with_year_without_time:\"MMM D, 'YY\",long_date_without_year_with_linebreak:\"MMM D <br/>LT\",long_date_with_year_with_linebreak:\"MMM D, 'YY <br/>LT\",tiny:{date_month:\"MMM D\",date_year:\"MMM 'YY\"},medium:{date_year:\"MMM D, 'YY\"}}}},en:{js:{number:{format:{separator:\".\",delimiter:\",\"},human:{storage_units:{format:\"%n %u\",units:{byte:{one:\"Byte\",other:\"Bytes\"},gb:\"GB\",kb:\"KB\",mb:\"MB\",tb:\"TB\"}}},short:{thousands:\"{{number}}k\",millions:\"{{number}}M\"}},dates:{wrap_ago:\"%{date} ago\",tiny:{half_a_minute:\"< 1m\",less_than_x_seconds:{one:\"< %{count}s\",other:\"< %{count}s\"},x_seconds:{one:\"%{count}s\",other:\"%{count}s\"},less_than_x_minutes:{one:\"< %{count}m\",other:\"< %{count}m\"},x_minutes:{one:\"%{count}m\",other:\"%{count}m\"},about_x_hours:{one:\"%{count}h\",other:\"%{count}h\"},x_days:{one:\"%{count}d\",other:\"%{count}d\"},x_months:{one:\"%{count}mon\",other:\"%{count}mon\"},about_x_years:{one:\"%{count}y\",other:\"%{count}y\"},over_x_years:{one:\"> %{count}y\",other:\"> %{count}y\"},almost_x_years:{one:\"%{count}y\",other:\"%{count}y\"}},medium:{x_minutes:{one:\"%{count} min\",other:\"%{count} mins\"},x_hours:{one:\"%{count} hour\",other:\"%{count} hours\"},x_days:{one:\"%{count} day\",other:\"%{count} days\"}},medium_with_ago:{x_minutes:{one:\"%{count} min ago\",other:\"%{count} mins ago\"},x_hours:{one:\"%{count} hour ago\",other:\"%{count} hours ago\"},x_days:{one:\"%{count} day ago\",other:\"%{count} days ago\"},x_months:{one:\"%{count} month ago\",other:\"%{count} months ago\"},x_years:{one:\"%{count} year ago\",other:\"%{count} years ago\"}},later:{x_days:{one:\"%{count} day later\",other:\"%{count} days later\"},x_months:{one:\"%{count} month later\",other:\"%{count} months later\"},x_years:{one:\"%{count} year later\",other:\"%{count} years later\"}},previous_month:\"Previous Month\",next_month:\"Next Month\",placeholder:\"date\"},share:{topic_html:'Topic: <span class=\"topic-title\">%{topicTitle}</span>',post:\"post #%{postNumber}\",close:\"close\",twitter:\"Share this link on Twitter\",facebook:\"Share this link on Facebook\",email:\"Send this link in an email\"},action_codes:{public_topic:\"made this topic public %{when}\",private_topic:\"made this topic a personal message %{when}\",split_topic:\"split this topic %{when}\",invited_user:\"invited %{who} %{when}\",invited_group:\"invited %{who} %{when}\",user_left:\"%{who} removed themselves from this message %{when}\",removed_user:\"removed %{who} %{when}\",removed_group:\"removed %{who} %{when}\",autobumped:\"automatically bumped %{when}\",autoclosed:{enabled:\"closed %{when}\",disabled:\"opened %{when}\"},closed:{enabled:\"closed %{when}\",disabled:\"opened %{when}\"},archived:{enabled:\"archived %{when}\",disabled:\"unarchived %{when}\"},pinned:{enabled:\"pinned %{when}\",disabled:\"unpinned %{when}\"},pinned_globally:{enabled:\"pinned globally %{when}\",disabled:\"unpinned %{when}\"},visible:{enabled:\"listed %{when}\",disabled:\"unlisted %{when}\"},banner:{enabled:\"made this a banner %{when}. It will appear at the top of every page until it is dismissed by the user.\",disabled:\"removed this banner %{when}. It will no longer appear at the top of every page.\"},forwarded:\"forwarded the above email\"},topic_admin_menu:\"topic actions\",wizard_required:\"Welcome to your new Discourse! Let’s get started with <a href='%{url}' data-auto-route='true'>the setup wizard</a> ✨\",emails_are_disabled:\"All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.\",bootstrap_mode_enabled:\"To make launching your new site easier, you are in bootstrap mode. All new users will be granted trust level 1 and have daily email summary emails enabled. This will be automatically turned off when %{min_users} users have joined.\",bootstrap_mode_disabled:\"Bootstrap mode will be disabled within 24 hours.\",themes:{default_description:\"Default\",broken_theme_alert:\"Your site may not work because theme / component %{theme} has errors. Disable it at %{path}.\"},s3:{regions:{ap_northeast_1:\"Asia Pacific (Tokyo)\",ap_northeast_2:\"Asia Pacific (Seoul)\",ap_south_1:\"Asia Pacific (Mumbai)\",ap_southeast_1:\"Asia Pacific (Singapore)\",ap_southeast_2:\"Asia Pacific (Sydney)\",ca_central_1:\"Canada (Central)\",cn_north_1:\"China (Beijing)\",cn_northwest_1:\"China (Ningxia)\",eu_central_1:\"EU (Frankfurt)\",eu_north_1:\"EU (Stockholm)\",eu_west_1:\"EU (Ireland)\",eu_west_2:\"EU (London)\",eu_west_3:\"EU (Paris)\",sa_east_1:\"South America (São Paulo)\",us_east_1:\"US East (N. Virginia)\",us_east_2:\"US East (Ohio)\",us_gov_east_1:\"AWS GovCloud (US-East)\",us_gov_west_1:\"AWS GovCloud (US-West)\",us_west_1:\"US West (N. California)\",us_west_2:\"US West (Oregon)\"}},edit:\"edit the title and category of this topic\",expand:\"Expand\",not_implemented:\"That feature hasn't been implemented yet, sorry!\",no_value:\"No\",yes_value:\"Yes\",submit:\"Submit\",generic_error:\"Sorry, an error has occurred.\",generic_error_with_reason:\"An error occurred: %{error}\",go_ahead:\"Go ahead\",sign_up:\"Sign Up\",log_in:\"Log In\",age:\"Age\",joined:\"Joined\",admin_title:\"Admin\",show_more:\"show more\",show_help:\"options\",links:\"Links\",links_lowercase:{one:\"link\",other:\"links\"},faq:\"FAQ\",guidelines:\"Guidelines\",privacy_policy:\"Privacy Policy\",privacy:\"Privacy\",tos:\"Terms of Service\",rules:\"Rules\",conduct:\"Code of Conduct\",mobile_view:\"Mobile View\",desktop_view:\"Desktop View\",you:\"You\",or:\"or\",now:\"just now\",read_more:\"read more\",more:\"More\",less:\"Less\",never:\"never\",every_30_minutes:\"every 30 minutes\",every_hour:\"every hour\",daily:\"daily\",weekly:\"weekly\",every_month:\"every month\",every_six_months:\"every six months\",max_of_count:\"max of {{count}}\",alternation:\"or\",character_count:{one:\"{{count}} character\",other:\"{{count}} characters\"},related_messages:{title:\"Related Messages\",see_all:'See <a href=\"%{path}\">all messages</a> from @%{username}...'},suggested_topics:{title:\"Suggested Topics\",pm_title:\"Suggested Messages\"},about:{simple_title:\"About\",title:\"About %{title}\",stats:\"Site Statistics\",our_admins:\"Our Admins\",our_moderators:\"Our Moderators\",moderators:\"Moderators\",stat:{all_time:\"All Time\",last_7_days:\"Last 7\",last_30_days:\"Last 30\"},like_count:\"Likes\",topic_count:\"Topics\",post_count:\"Posts\",user_count:\"Users\",active_user_count:\"Active Users\",contact:\"Contact Us\",contact_info:\"In the event of a critical issue or urgent matter affecting this site, please contact us at %{contact_info}.\"},bookmarked:{title:\"Bookmark\",clear_bookmarks:\"Clear Bookmarks\",help:{bookmark:\"Click to bookmark the first post on this topic\",unbookmark:\"Click to remove all bookmarks in this topic\"}},bookmarks:{created:\"you've bookmarked this post\",not_bookmarked:\"bookmark this post\",created_with_reminder:\"you've bookmarked this post with a reminder at %{date}\",remove:\"Remove Bookmark\",confirm_clear:\"Are you sure you want to clear all your bookmarks from this topic?\",save:\"Save\",no_timezone:'You have not set a timezone yet. You will not be able to set reminders. Set one up <a href=\"%{basePath}/my/preferences/profile\">in your profile</a>.',reminders:{at_desktop:\"Next time I'm at my desktop\",later_today:\"Later today <br/>{{date}}\",next_business_day:\"Next business day <br/>{{date}}\",tomorrow:\"Tomorrow <br/>{{date}}\",next_week:\"Next week <br/>{{date}}\",next_month:\"Next month <br/>{{date}}\",custom:\"Custom date and time\"}},drafts:{resume:\"Resume\",remove:\"Remove\",new_topic:\"New topic draft\",new_private_message:\"New private message draft\",topic_reply:\"Draft reply\",abandon:{confirm:\"You already opened another draft in this topic. Are you sure you want to abandon it?\",yes_value:\"Yes, abandon\",no_value:\"No, keep\"}},topic_count_latest:{one:\"See {{count}} new or updated topic\",other:\"See {{count}} new or updated topics\"},topic_count_unread:{one:\"See {{count}} unread topic\",other:\"See {{count}} unread topics\"},topic_count_new:{one:\"See {{count}} new topic\",other:\"See {{count}} new topics\"},preview:\"preview\",cancel:\"cancel\",save:\"Save Changes\",saving:\"Saving...\",saved:\"Saved!\",upload:\"Upload\",uploading:\"Uploading...\",uploading_filename:\"Uploading: {{filename}}...\",clipboard:\"clipboard\",uploaded:\"Uploaded!\",pasting:\"Pasting...\",enable:\"Enable\",disable:\"Disable\",continue:\"Continue\",undo:\"Undo\",revert:\"Revert\",failed:\"Failed\",switch_to_anon:\"Enter Anonymous Mode\",switch_from_anon:\"Exit Anonymous Mode\",banner:{close:\"Dismiss this banner.\",edit:\"Edit this banner >>\"},pwa:{install_banner:\"Do you want to <a href>install %{title} on this device?</a>\"},choose_topic:{none_found:\"No topics found.\",title:{search:\"Search for a Topic\",placeholder:\"type the topic title, url or id here\"}},choose_message:{none_found:\"No messages found.\",title:{search:\"Search for a Message\",placeholder:\"type the message title, url or id here\"}},review:{order_by:\"Order by\",in_reply_to:\"in reply to\",explain:{why:\"explain why this item ended up in the queue\",title:\"Reviewable Scoring\",formula:\"Formula\",subtotal:\"Subtotal\",total:\"Total\",min_score_visibility:\"Minimum Score for Visibility\",score_to_hide:\"Score to Hide Post\",take_action_bonus:{name:\"took action\",title:\"When a staff member chooses to take action the flag is given a bonus.\"},user_accuracy_bonus:{name:\"user accuracy\",title:\"Users whose flags have been historically agreed with are given a bonus.\"},trust_level_bonus:{name:\"trust level\",title:\"Reviewable items created by higher trust level users have a higher score.\"},type_bonus:{name:\"type bonus\",title:\"Certain reviewable types can be assigned a bonus by staff to make them a higher priority.\"}},claim_help:{optional:\"You can claim this item to prevent others from reviewing it.\",required:\"You must claim items before you can review them.\",claimed_by_you:\"You've claimed this item and can review it.\",claimed_by_other:\"This item can only be reviewed by <b>{{username}}</b>.\"},claim:{title:\"claim this topic\"},unclaim:{help:\"remove this claim\"},awaiting_approval:\"Awaiting Approval\",delete:\"Delete\",settings:{saved:\"Saved\",save_changes:\"Save Changes\",title:\"Settings\",priorities:{title:\"Reviewable Priorities\"}},moderation_history:\"Moderation History\",view_all:\"View All\",grouped_by_topic:\"Grouped by Topic\",none:\"There are no items to review.\",view_pending:\"view pending\",topic_has_pending:{one:\"This topic has <b>%{count}</b> post pending approval\",other:\"This topic has <b>{{count}}</b> posts pending approval\"},title:\"Review\",topic:\"Topic:\",filtered_topic:\"You have filtered to reviewable content in a single topic.\",filtered_user:\"User\",show_all_topics:\"show all topics\",deleted_post:\"(post deleted)\",deleted_user:\"(user deleted)\",user:{bio:\"Bio\",website:\"Website\",username:\"Username\",email:\"Email\",name:\"Name\",fields:\"Fields\"},user_percentage:{summary:{one:\"{{agreed}}, {{disagreed}}, {{ignored}} ({{count}} total flag)\",other:\"{{agreed}}, {{disagreed}}, {{ignored}} ({{count}} total flags)\"},agreed:{one:\"{{count}}% agree\",other:\"{{count}}% agree\"},disagreed:{one:\"{{count}}% disagree\",other:\"{{count}}% disagree\"},ignored:{one:\"{{count}}% ignore\",other:\"{{count}}% ignore\"}},topics:{topic:\"Topic\",reviewable_count:\"Count\",reported_by:\"Reported by\",deleted:\"[Topic Deleted]\",original:\"(original topic)\",details:\"details\",unique_users:{one:\"%{count} user\",other:\"{{count}} users\"}},replies:{one:\"%{count} reply\",other:\"{{count}} replies\"},edit:\"Edit\",save:\"Save\",cancel:\"Cancel\",new_topic:\"Approving this item will create a new topic\",filters:{all_categories:\"(all categories)\",type:{title:\"Type\",all:\"(all types)\"},minimum_score:\"Minimum Score:\",refresh:\"Refresh\",status:\"Status\",category:\"Category\",orders:{priority:\"Priority\",priority_asc:\"Priority (reverse)\",created_at:\"Created At\",created_at_asc:\"Created At (reverse)\"},priority:{title:\"Minimum Priority\",low:\"(any)\",medium:\"Medium\",high:\"High\"}},conversation:{view_full:\"view full conversation\"},scores:{about:\"This score is calculated based on the trust level of the reporter, the accuracy of their previous flags, and the priority of the item being reported.\",score:\"Score\",date:\"Date\",type:\"Type\",status:\"Status\",submitted_by:\"Submitted By\",reviewed_by:\"Reviewed By\"},statuses:{pending:{title:\"Pending\"},approved:{title:\"Approved\"},rejected:{title:\"Rejected\"},ignored:{title:\"Ignored\"},deleted:{title:\"Deleted\"},reviewed:{title:\"(all reviewed)\"},all:{title:\"(everything)\"}},types:{reviewable_flagged_post:{title:\"Flagged Post\",flagged_by:\"Flagged By\"},reviewable_queued_topic:{title:\"Queued Topic\"},reviewable_queued_post:{title:\"Queued Post\"},reviewable_user:{title:\"User\"}},approval:{title:\"Post Needs Approval\",description:\"We've received your new post but it needs to be approved by a moderator before it will appear. Please be patient.\",pending_posts:{one:\"You have <strong>%{count}</strong> post pending.\",other:\"You have <strong>{{count}}</strong> posts pending.\"},ok:\"OK\"}},user_action:{user_posted_topic:\"<a href='{{userUrl}}'>{{user}}</a> posted <a href='{{topicUrl}}'>the topic</a>\",you_posted_topic:\"<a href='{{userUrl}}'>You</a> posted <a href='{{topicUrl}}'>the topic</a>\",user_replied_to_post:\"<a href='{{userUrl}}'>{{user}}</a> replied to <a href='{{postUrl}}'>{{post_number}}</a>\",you_replied_to_post:\"<a href='{{userUrl}}'>You</a> replied to <a href='{{postUrl}}'>{{post_number}}</a>\",user_replied_to_topic:\"<a href='{{userUrl}}'>{{user}}</a> replied to <a href='{{topicUrl}}'>the topic</a>\",you_replied_to_topic:\"<a href='{{userUrl}}'>You</a> replied to <a href='{{topicUrl}}'>the topic</a>\",user_mentioned_user:\"<a href='{{user1Url}}'>{{user}}</a> mentioned <a href='{{user2Url}}'>{{another_user}}</a>\",user_mentioned_you:\"<a href='{{user1Url}}'>{{user}}</a> mentioned <a href='{{user2Url}}'>you</a>\",you_mentioned_user:\"<a href='{{user1Url}}'>You</a> mentioned <a href='{{user2Url}}'>{{another_user}}</a>\",posted_by_user:\"Posted by <a href='{{userUrl}}'>{{user}}</a>\",posted_by_you:\"Posted by <a href='{{userUrl}}'>you</a>\",sent_by_user:\"Sent by <a href='{{userUrl}}'>{{user}}</a>\",sent_by_you:\"Sent by <a href='{{userUrl}}'>you</a>\"},directory:{filter_name:\"filter by username\",title:\"Users\",likes_given:\"Given\",likes_received:\"Received\",topics_entered:\"Viewed\",topics_entered_long:\"Topics Viewed\",time_read:\"Time Read\",topic_count:\"Topics\",topic_count_long:\"Topics Created\",post_count:\"Replies\",post_count_long:\"Replies Posted\",no_results:\"No results were found.\",days_visited:\"Visits\",days_visited_long:\"Days Visited\",posts_read:\"Read\",posts_read_long:\"Posts Read\",total_rows:{one:\"%{count} user\",other:\"%{count} users\"}},group_histories:{actions:{change_group_setting:\"Change group setting\",add_user_to_group:\"Add user\",remove_user_from_group:\"Remove user\",make_user_group_owner:\"Make owner\",remove_user_as_group_owner:\"Revoke owner\"}},groups:{member_added:\"Added\",member_requested:\"Requested at\",add_members:{title:\"Add Members\",description:\"Manage the membership of this group\",usernames:\"Usernames\"},requests:{title:\"Requests\",reason:\"Reason\",accept:\"Accept\",accepted:\"accepted\",deny:\"Deny\",denied:\"denied\",undone:\"request undone\"},manage:{title:\"Manage\",name:\"Name\",full_name:\"Full Name\",add_members:\"Add Members\",delete_member_confirm:\"Remove '%{username}' from the '%{group}' group?\",profile:{title:\"Profile\"},interaction:{title:\"Interaction\",posting:\"Posting\",notification:\"Notification\"},membership:{title:\"Membership\",access:\"Access\"},logs:{title:\"Logs\",when:\"When\",action:\"Action\",acting_user:\"Acting user\",target_user:\"Target user\",subject:\"Subject\",details:\"Details\",from:\"From\",to:\"To\"}},public_admission:\"Allow users to join the group freely (Requires publicly visible group)\",public_exit:\"Allow users to leave the group freely\",empty:{posts:\"There are no posts by members of this group.\",members:\"There are no members in this group.\",requests:\"There are no membership requests for this group.\",mentions:\"There are no mentions of this group.\",messages:\"There are no messages for this group.\",topics:\"There are no topics by members of this group.\",logs:\"There are no logs for this group.\"},add:\"Add\",join:\"Join\",leave:\"Leave\",request:\"Request\",message:\"Message\",confirm_leave:\"Are you sure you want to leave this group?\",allow_membership_requests:\"Allow users to send membership requests to group owners (Requires publicly visible group)\",membership_request_template:\"Custom template to display to users when sending a membership request\",membership_request:{submit:\"Submit Request\",title:\"Request to join @%{group_name}\",reason:\"Let the group owners know why you belong in this group\"},membership:\"Membership\",name:\"Name\",group_name:\"Group name\",user_count:\"Users\",bio:\"About Group\",selector_placeholder:\"enter username\",owner:\"owner\",index:{title:\"Groups\",all:\"All Groups\",empty:\"There are no visible groups.\",filter:\"Filter by group type\",owner_groups:\"Groups I own\",close_groups:\"Closed Groups\",automatic_groups:\"Automatic Groups\",automatic:\"Automatic\",closed:\"Closed\",public:\"Public\",private:\"Private\",public_groups:\"Public Groups\",automatic_group:\"Automatic Group\",close_group:\"Close Group\",my_groups:\"My Groups\",group_type:\"Group type\",is_group_user:\"Member\",is_group_owner:\"Owner\"},title:{one:\"Group\",other:\"Groups\"},activity:\"Activity\",members:{title:\"Members\",filter_placeholder_admin:\"username or email\",filter_placeholder:\"username\",remove_member:\"Remove Member\",remove_member_description:\"Remove <b>%{username}</b> from this group\",make_owner:\"Make Owner\",make_owner_description:\"Make <b>%{username}</b> an owner of this group\",remove_owner:\"Remove as Owner\",remove_owner_description:\"Remove <b>%{username}</b> as an owner of this group\",owner:\"Owner\",forbidden:\"You're not allowed to view the members.\"},topics:\"Topics\",posts:\"Posts\",mentions:\"Mentions\",messages:\"Messages\",notification_level:\"Default notification level for group messages\",alias_levels:{mentionable:\"Who can @mention this group?\",messageable:\"Who can message this group?\",nobody:\"Nobody\",only_admins:\"Only admins\",mods_and_admins:\"Only moderators and Admins\",members_mods_and_admins:\"Only group members, moderators and admins\",owners_mods_and_admins:\"Only group owners, moderators and admins\",everyone:\"Everyone\"},notifications:{watching:{title:\"Watching\",description:\"You will be notified of every new post in every message, and a count of new replies will be shown.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new messages in this group but not replies to the messages.\"},tracking:{title:\"Tracking\",description:\"You will be notified if someone mentions your @name or replies to you, and a count of new replies will be shown.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted:{title:\"Muted\",description:\"You will not be notified of anything about messages in this group.\"}},flair_url:\"Avatar Flair Image\",flair_url_placeholder:\"(Optional) Image URL or Font Awesome class\",flair_url_description:'Use square images no smaller than 20px by 20px or FontAwesome icons (accepted formats: \"fa-icon\", \"far fa-icon\" or \"fab fa-icon\").',flair_bg_color:\"Avatar Flair Background Color\",flair_bg_color_placeholder:\"(Optional) Hex color value\",flair_color:\"Avatar Flair Color\",flair_color_placeholder:\"(Optional) Hex color value\",flair_preview_icon:\"Preview Icon\",flair_preview_image:\"Preview Image\"},user_action_groups:{1:\"Likes\",2:\"Likes\",3:\"Bookmarks\",4:\"Topics\",5:\"Replies\",6:\"Responses\",7:\"Mentions\",9:\"Quotes\",11:\"Edits\",12:\"Sent Items\",13:\"Inbox\",14:\"Pending\",15:\"Drafts\"},categories:{all:\"all categories\",all_subcategories:\"all\",no_subcategory:\"none\",category:\"Category\",category_list:\"Display category list\",reorder:{title:\"Reorder Categories\",title_long:\"Reorganize the category list\",save:\"Save Order\",apply_all:\"Apply\",position:\"Position\"},posts:\"Posts\",topics:\"Topics\",latest:\"Latest\",latest_by:\"latest by\",toggle_ordering:\"toggle ordering control\",subcategories:\"Subcategories\",topic_sentence:{one:\"%{count} topic\",other:\"%{count} topics\"},topic_stat_sentence_week:{one:\"%{count} new topic in the past week.\",other:\"%{count} new topics in the past week.\"},topic_stat_sentence_month:{one:\"%{count} new topic in the past month.\",other:\"%{count} new topics in the past month.\"},n_more:\"Categories (%{count} more) ...\"},ip_lookup:{title:\"IP Address Lookup\",hostname:\"Hostname\",location:\"Location\",location_not_found:\"(unknown)\",organisation:\"Organization\",phone:\"Phone\",other_accounts:\"Other accounts with this IP address:\",delete_other_accounts:\"Delete %{count}\",username:\"username\",trust_level:\"TL\",read_time:\"read time\",topics_entered:\"topics entered\",post_count:\"# posts\",confirm_delete_other_accounts:\"Are you sure you want to delete these accounts?\",powered_by:\"using <a href='https://maxmind.com'>MaxMindDB</a>\",copied:\"copied\"},user_fields:{none:\"(select an option)\"},user:{said:\"{{username}}:\",profile:\"Profile\",mute:\"Mute\",edit:\"Edit Preferences\",download_archive:{button_text:\"Download All\",confirm:\"Are you sure you want to download your posts?\",success:\"Download initiated, you will be notified via message when the process is complete.\",rate_limit_error:\"Posts can be downloaded once per day, please try again tomorrow.\"},new_private_message:\"New Message\",private_message:\"Message\",private_messages:\"Messages\",user_notifications:{ignore_duration_title:\"Ignore Timer\",ignore_duration_username:\"Username\",ignore_duration_when:\"Duration:\",ignore_duration_save:\"Ignore\",ignore_duration_note:\"Please note that all ignores are automatically removed after the ignore duration expires.\",ignore_duration_time_frame_required:\"Please select a time frame\",ignore_no_users:\"You have no ignored users.\",ignore_option:\"Ignored\",ignore_option_title:\"You will not receive notifications related to this user and all of their topics and replies will be hidden.\",add_ignored_user:\"Add...\",mute_option:\"Muted\",mute_option_title:\"You will not receive any notifications related to this user.\",normal_option:\"Normal\",normal_option_title:\"You will be notified if this user replies to you, quotes you, or mentions you.\"},activity_stream:\"Activity\",preferences:\"Preferences\",feature_topic_on_profile:{open_search:\"Select a New Topic\",title:\"Select a Topic\",search_label:\"Search for Topic by title\",save:\"Save\",clear:{title:\"Clear\",warning:\"Are you sure you want to clear your featured topic?\"}},profile_hidden:\"This user's public profile is hidden.\",expand_profile:\"Expand\",collapse_profile:\"Collapse\",bookmarks:\"Bookmarks\",bio:\"About me\",timezone:\"Timezone\",invited_by:\"Invited By\",trust_level:\"Trust Level\",notifications:\"Notifications\",statistics:\"Stats\",desktop_notifications:{label:\"Live Notifications\",not_supported:\"Notifications are not supported on this browser. Sorry.\",perm_default:\"Turn On Notifications\",perm_denied_btn:\"Permission Denied\",perm_denied_expl:\"You denied permission for notifications. Allow notifications via your browser settings.\",disable:\"Disable Notifications\",enable:\"Enable Notifications\",each_browser_note:\"Note: You have to change this setting on every browser you use.\",consent_prompt:\"Do you want live notifications when people reply to your posts?\"},dismiss:\"Dismiss\",dismiss_notifications:\"Dismiss All\",dismiss_notifications_tooltip:\"Mark all unread notifications as read\",first_notification:\"Your first notification! Select it to begin.\",dynamic_favicon:\"Show counts on browser icon\",theme_default_on_all_devices:\"Make this the default theme on all my devices\",text_size_default_on_all_devices:\"Make this the default text size on all my devices\",allow_private_messages:\"Allow other users to send me personal messages\",external_links_in_new_tab:\"Open all external links in a new tab\",enable_quoting:\"Enable quote reply for highlighted text\",enable_defer:\"Enable defer to mark topics unread\",change:\"change\",featured_topic:\"Featured Topic\",moderator:\"{{user}} is a moderator\",admin:\"{{user}} is an admin\",moderator_tooltip:\"This user is a moderator\",admin_tooltip:\"This user is an admin\",silenced_tooltip:\"This user is silenced\",suspended_notice:\"This user is suspended until {{date}}.\",suspended_permanently:\"This user is suspended.\",suspended_reason:\"Reason: \",github_profile:\"Github\",email_activity_summary:\"Activity Summary\",mailing_list_mode:{label:\"Mailing list mode\",enabled:\"Enable mailing list mode\",instructions:\"This setting overrides the activity summary.<br />\\nMuted topics and categories are not included in these emails.\\n\",individual:\"Send an email for every new post\",individual_no_echo:\"Send an email for every new post except my own\",many_per_day:\"Send me an email for every new post (about {{dailyEmailEstimate}} per day)\",few_per_day:\"Send me an email for every new post (about 2 per day)\",warning:\"Mailing list mode enabled. Email notification settings are overridden.\"},tag_settings:\"Tags\",watched_tags:\"Watched\",watched_tags_instructions:\"You will automatically watch all topics with these tags. You will be notified of all new posts and topics, and a count of new posts will also appear next to the topic.\",tracked_tags:\"Tracked\",tracked_tags_instructions:\"You will automatically track all topics with these tags. A count of new posts will appear next to the topic.\",muted_tags:\"Muted\",muted_tags_instructions:\"You will not be notified of anything about new topics with these tags, and they will not appear in latest.\",watched_categories:\"Watched\",watched_categories_instructions:\"You will automatically watch all topics in these categories. You will be notified of all new posts and topics, and a count of new posts will also appear next to the topic.\",tracked_categories:\"Tracked\",tracked_categories_instructions:\"You will automatically track all topics in these categories. A count of new posts will appear next to the topic.\",watched_first_post_categories:\"Watching First Post\",watched_first_post_categories_instructions:\"You will be notified of the first post in each new topic in these categories.\",watched_first_post_tags:\"Watching First Post\",watched_first_post_tags_instructions:\"You will be notified of the first post in each new topic with these tags.\",muted_categories:\"Muted\",muted_categories_instructions:\"You will not be notified of anything about new topics in these categories, and they will not appear on the categories or latest pages.\",muted_categories_instructions_dont_hide:\"You will not be notified of anything about new topics in these categories.\",no_category_access:\"As a moderator you have limited category access, save is disabled.\",delete_account:\"Delete My Account\",delete_account_confirm:\"Are you sure you want to permanently delete your account? This action cannot be undone!\",deleted_yourself:\"Your account has been deleted successfully.\",delete_yourself_not_allowed:\"Please contact a staff member if you wish your account to be deleted.\",unread_message_count:\"Messages\",admin_delete:\"Delete\",users:\"Users\",muted_users:\"Muted\",muted_users_instructions:\"Suppress all notifications from these users.\",ignored_users:\"Ignored\",ignored_users_instructions:\"Suppress all posts and notifications from these users.\",tracked_topics_link:\"Show\",automatically_unpin_topics:\"Automatically unpin topics when I reach the bottom.\",apps:\"Apps\",revoke_access:\"Revoke Access\",undo_revoke_access:\"Undo Revoke Access\",api_approved:\"Approved:\",api_last_used_at:\"Last used at:\",theme:\"Theme\",home:\"Default Home Page\",staged:\"Staged\",staff_counters:{flags_given:\"helpful flags\",flagged_posts:\"flagged posts\",deleted_posts:\"deleted posts\",suspensions:\"suspensions\",warnings_received:\"warnings\"},messages:{all:\"All\",inbox:\"Inbox\",sent:\"Sent\",archive:\"Archive\",groups:\"My Groups\",bulk_select:\"Select messages\",move_to_inbox:\"Move to Inbox\",move_to_archive:\"Archive\",failed_to_move:\"Failed to move selected messages (perhaps your network is down)\",select_all:\"Select All\",tags:\"Tags\"},preferences_nav:{account:\"Account\",profile:\"Profile\",emails:\"Emails\",notifications:\"Notifications\",categories:\"Categories\",users:\"Users\",tags:\"Tags\",interface:\"Interface\",apps:\"Apps\"},change_password:{success:\"(email sent)\",in_progress:\"(sending email)\",error:\"(error)\",action:\"Send Password Reset Email\",set_password:\"Set Password\",choose_new:\"Choose a new password\",choose:\"Choose a password\"},second_factor_backup:{title:\"Two Factor Backup Codes\",regenerate:\"Regenerate\",disable:\"Disable\",enable:\"Enable\",enable_long:\"Enable backup codes\",manage:\"Manage backup codes. You have <strong>{{count}}</strong> backup codes remaining.\",copied_to_clipboard:\"Copied to Clipboard\",copy_to_clipboard_error:\"Error copying data to Clipboard\",remaining_codes:\"You have <strong>{{count}}</strong> backup codes remaining.\",use:\"Use a backup code\",enable_prerequisites:\"You must enable a primary second factor before generating backup codes.\",codes:{title:\"Backup Codes Generated\",description:\"Each of these backup codes can only be used once. Keep them somewhere safe but accessible.\"}},second_factor:{title:\"Two Factor Authentication\",enable:\"Manage Two Factor Authentication\",forgot_password:\"Forgot password?\",confirm_password_description:\"Please confirm your password to continue\",name:\"Name\",label:\"Code\",rate_limit:\"Please wait before trying another authentication code.\",enable_description:'Scan this QR code in a supported app (<a href=\"https://www.google.com/search?q=authenticator+apps+for+android\" target=\"_blank\">Android</a> – <a href=\"https://www.google.com/search?q=authenticator+apps+for+ios\" target=\"_blank\">iOS</a>) and enter your authentication code.\\n',disable_description:\"Please enter the authentication code from your app\",show_key_description:\"Enter manually\",short_description:\"Protect your account with one-time use security codes.\\n\",extended_description:'Two factor authentication adds extra security to your account by requiring a one-time token in addition to your password. Tokens can be generated on <a href=\"https://www.google.com/search?q=authenticator+apps+for+android\" target=\\'_blank\\'>Android</a> and <a href=\"https://www.google.com/search?q=authenticator+apps+for+ios\">iOS</a> devices.\\n',oauth_enabled_warning:\"Please note that social logins will be disabled once two factor authentication has been enabled on your account.\",use:\"Use Authenticator app\",enforced_notice:\"You are required to enable two factor authentication before accessing this site.\",disable:\"disable\",disable_title:\"Disable Second Factor\",disable_confirm:\"Are you sure you want to disable all second factors?\",edit:\"Edit\",edit_title:\"Edit Second Factor\",edit_description:\"Second Factor Name\",enable_security_key_description:\"When you have your physical security key prepared press the Register button below.\",totp:{title:\"Token-Based Authenticators\",add:\"New Authenticator\",default_name:\"My Authenticator\"},security_key:{register:\"Register\",title:\"Security Keys\",add:\"Register Security Key\",default_name:\"Main Security Key\",not_allowed_error:\"The security key registration process either timed out or was cancelled.\",already_added_error:\"You have already registered this security key. You don’t have to register it again.\",edit:\"Edit Security Key\",edit_description:\"Security Key Name\",delete:\"Delete\"}},change_about:{title:\"Change About Me\",error:\"There was an error changing this value.\"},change_username:{title:\"Change Username\",confirm:\"Are you absolutely sure you want to change your username?\",taken:\"Sorry, that username is taken.\",invalid:\"That username is invalid. It must only include numbers and letters\"},change_email:{title:\"Change Email\",taken:\"Sorry, that email is not available.\",error:\"There was an error changing your email. Perhaps that address is already in use?\",success:\"We've sent an email to that address. Please follow the confirmation instructions.\",success_staff:\"We've sent an email to your current address. Please follow the confirmation instructions.\"},change_avatar:{title:\"Change your profile picture\",gravatar:\"<a href='//gravatar.com/emails' target='_blank'>Gravatar</a>, based on\",gravatar_title:\"Change your avatar on Gravatar's website\",gravatar_failed:\"We could not find a Gravatar with that email address.\",refresh_gravatar_title:\"Refresh your Gravatar\",letter_based:\"System assigned profile picture\",uploaded_avatar:\"Custom picture\",uploaded_avatar_empty:\"Add a custom picture\",upload_title:\"Upload your picture\",image_is_not_a_square:\"Warning: we've cropped your image; width and height were not equal.\"},change_profile_background:{title:\"Profile Header\",instructions:\"Profile headers will be centered and have a default width of 1110px.\"},change_card_background:{title:\"User Card Background\",instructions:\"Background images will be centered and have a default width of 590px.\"},change_featured_topic:{title:\"Featured Topic\",instructions:\"A link to this topic will be on your user card, and profile.\"},email:{title:\"Email\",primary:\"Primary Email\",secondary:\"Secondary Emails\",no_secondary:\"No secondary emails\",sso_override_instructions:\"Email can be updated from SSO provider.\",instructions:\"Never shown to the public.\",ok:\"We will email you to confirm\",invalid:\"Please enter a valid email address\",authenticated:\"Your email has been authenticated by {{provider}}\",frequency_immediately:\"We'll email you immediately if you haven't read the thing we're emailing you about.\",frequency:{one:\"We'll only email you if we haven't seen you in the last minute.\",other:\"We'll only email you if we haven't seen you in the last {{count}} minutes.\"}},associated_accounts:{title:\"Associated Accounts\",connect:\"Connect\",revoke:\"Revoke\",cancel:\"Cancel\",not_connected:\"(not connected)\",confirm_modal_title:\"Connect %{provider} Account\",confirm_description:{account_specific:\"Your %{provider} account '%{account_description}' will be used for authentication.\",generic:\"Your %{provider} account will be used for authentication.\"}},name:{title:\"Name\",instructions:\"your full name (optional)\",instructions_required:\"Your full name\",too_short:\"Your name is too short\",ok:\"Your name looks good\"},username:{title:\"Username\",instructions:\"unique, no spaces, short\",short_instructions:\"People can mention you as @{{username}}\",available:\"Your username is available\",not_available:\"Not available. Try {{suggestion}}?\",not_available_no_suggestion:\"Not available\",too_short:\"Your username is too short\",too_long:\"Your username is too long\",checking:\"Checking username availability...\",prefilled:\"Email matches this registered username\"},locale:{title:\"Interface language\",instructions:\"User interface language. It will change when you refresh the page.\",default:\"(default)\",any:\"any\"},password_confirmation:{title:\"Password Again\"},auth_tokens:{title:\"Recently Used Devices\",ip:\"IP\",details:\"Details\",log_out_all:\"Log out all\",active:\"active now\",not_you:\"Not you?\",show_all:\"Show all ({{count}})\",show_few:\"Show fewer\",was_this_you:\"Was this you?\",was_this_you_description:\"If it wasn’t you, we recommend you change your password and log out everywhere.\",browser_and_device:\"{{browser}} on {{device}}\",secure_account:\"Secure my Account\",latest_post:\"You last posted…\"},last_posted:\"Last Post\",last_emailed:\"Last Emailed\",last_seen:\"Seen\",created:\"Joined\",log_out:\"Log Out\",location:\"Location\",website:\"Web Site\",email_settings:\"Email\",hide_profile_and_presence:\"Hide my public profile and presence features\",enable_physical_keyboard:\"Enable physical keyboard support on iPad\",text_size:{title:\"Text Size\",smaller:\"Smaller\",normal:\"Normal\",larger:\"Larger\",largest:\"Largest\"},title_count_mode:{title:\"Background page title displays count of:\",notifications:\"New notifications\",contextual:\"New page content\"},like_notification_frequency:{title:\"Notify when liked\",always:\"Always\",first_time_and_daily:\"First time a post is liked and daily\",first_time:\"First time a post is liked\",never:\"Never\"},email_previous_replies:{title:\"Include previous replies at the bottom of emails\",unless_emailed:\"unless previously sent\",always:\"always\",never:\"never\"},email_digests:{title:\"When I don’t visit here, send me an email summary of popular topics and replies\",every_30_minutes:\"every 30 minutes\",every_hour:\"hourly\",daily:\"daily\",weekly:\"weekly\",every_month:\"every month\",every_six_months:\"every six months\"},email_level:{title:\"Send me an email when someone quotes me, replies to my post, mentions my @username, or invites me to a topic\",always:\"always\",only_when_away:\"only when away\",never:\"never\"},email_messages_level:\"Send me an email when someone messages me\",include_tl0_in_digests:\"Include content from new users in summary emails\",email_in_reply_to:\"Include an excerpt of replied to post in emails\",other_settings:\"Other\",categories_settings:\"Categories\",new_topic_duration:{label:\"Consider topics new when\",not_viewed:\"I haven't viewed them yet\",last_here:\"created since I was here last\",after_1_day:\"created in the last day\",after_2_days:\"created in the last 2 days\",after_1_week:\"created in the last week\",after_2_weeks:\"created in the last 2 weeks\"},auto_track_topics:\"Automatically track topics I enter\",auto_track_options:{never:\"never\",immediately:\"immediately\",after_30_seconds:\"after 30 seconds\",after_1_minute:\"after 1 minute\",after_2_minutes:\"after 2 minutes\",after_3_minutes:\"after 3 minutes\",after_4_minutes:\"after 4 minutes\",after_5_minutes:\"after 5 minutes\",after_10_minutes:\"after 10 minutes\"},notification_level_when_replying:\"When I post in a topic, set that topic to\",invited:{search:\"type to search invites...\",title:\"Invites\",user:\"Invited User\",sent:\"Last Sent\",none:\"No invites to display.\",truncated:{one:\"Showing the first invite.\",other:\"Showing the first {{count}} invites.\"},redeemed:\"Redeemed Invites\",redeemed_tab:\"Redeemed\",redeemed_tab_with_count:\"Redeemed ({{count}})\",redeemed_at:\"Redeemed\",pending:\"Pending Invites\",pending_tab:\"Pending\",pending_tab_with_count:\"Pending ({{count}})\",topics_entered:\"Topics Viewed\",posts_read_count:\"Posts Read\",expired:\"This invite has expired.\",rescind:\"Remove\",rescinded:\"Invite removed\",rescind_all:\"Remove all Expired Invites\",rescinded_all:\"All Expired Invites removed!\",rescind_all_confirm:\"Are you sure you want to remove all expired invites?\",reinvite:\"Resend Invite\",reinvite_all:\"Resend all Invites\",reinvite_all_confirm:\"Are you sure you want to resend all invites?\",reinvited:\"Invite re-sent\",reinvited_all:\"All Invites re-sent!\",time_read:\"Read Time\",days_visited:\"Days Visited\",account_age_days:\"Account age in days\",create:\"Send an Invite\",generate_link:\"Copy Invite Link\",link_generated:\"Invite link generated successfully!\",valid_for:\"Invite link is only valid for this email address: %{email}\",bulk_invite:{none:\"You haven't invited anyone here yet. Send individual invites, or invite many people at once by <a href='https://meta.discourse.org/t/send-bulk-invites/16468'>uploading a CSV file</a>.\",text:\"Bulk Invite from File\",success:\"File uploaded successfully, you will be notified via message when the process is complete.\",error:\"Sorry, file should be CSV format.\",confirmation_message:\"You’re about to email invites to everyone in the uploaded file.\"}},password:{title:\"Password\",too_short:\"Your password is too short.\",common:\"That password is too common.\",same_as_username:\"Your password is the same as your username.\",same_as_email:\"Your password is the same as your email.\",ok:\"Your password looks good.\",instructions:\"at least %{count} characters\"},summary:{title:\"Summary\",stats:\"Stats\",time_read:\"read time\",recent_time_read:\"recent read time\",topic_count:{one:\"topic created\",other:\"topics created\"},post_count:{one:\"post created\",other:\"posts created\"},likes_given:{one:\"given\",other:\"given\"},likes_received:{one:\"received\",other:\"received\"},days_visited:{one:\"day visited\",other:\"days visited\"},topics_entered:{one:\"topic viewed\",other:\"topics viewed\"},posts_read:{one:\"post read\",other:\"posts read\"},bookmark_count:{one:\"bookmark\",other:\"bookmarks\"},top_replies:\"Top Replies\",no_replies:\"No replies yet.\",more_replies:\"More Replies\",top_topics:\"Top Topics\",no_topics:\"No topics yet.\",more_topics:\"More Topics\",top_badges:\"Top Badges\",no_badges:\"No badges yet.\",more_badges:\"More Badges\",top_links:\"Top Links\",no_links:\"No links yet.\",most_liked_by:\"Most Liked By\",most_liked_users:\"Most Liked\",most_replied_to_users:\"Most Replied To\",no_likes:\"No likes yet.\",top_categories:\"Top Categories\",topics:\"Topics\",replies:\"Replies\"},ip_address:{title:\"Last IP Address\"},registration_ip_address:{title:\"Registration IP Address\"},avatar:{title:\"Profile Picture\",header_title:\"profile, messages, bookmarks and preferences\"},title:{title:\"Title\",none:\"(none)\"},primary_group:{title:\"Primary Group\",none:\"(none)\"},filters:{all:\"All\"},stream:{posted_by:\"Posted by\",sent_by:\"Sent by\",private_message:\"message\",the_topic:\"the topic\"}},loading:\"Loading...\",errors:{prev_page:\"while trying to load\",reasons:{network:\"Network Error\",server:\"Server Error\",forbidden:\"Access Denied\",unknown:\"Error\",not_found:\"Page Not Found\"},desc:{network:\"Please check your connection.\",network_fixed:\"Looks like it's back.\",server:\"Error code: {{status}}\",forbidden:\"You're not allowed to view that.\",not_found:\"Oops, the application tried to load a URL that doesn't exist.\",unknown:\"Something went wrong.\"},buttons:{back:\"Go Back\",again:\"Try Again\",fixed:\"Load Page\"}},close:\"Close\",assets_changed_confirm:\"This site was just updated. Refresh now for the latest version?\",logout:\"You were logged out.\",refresh:\"Refresh\",read_only_mode:{enabled:\"This site is in read only mode. Please continue to browse, but replying, likes, and other actions are disabled for now.\",login_disabled:\"Login is disabled while the site is in read only mode.\",logout_disabled:\"Logout is disabled while the site is in read only mode.\"},too_few_topics_and_posts_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentTopics}</strong> topics and <strong>%{currentPosts}</strong> posts. Visitors need more to read and reply to – we recommend at least <strong>%{requiredTopics}</strong> topics and <strong>%{requiredPosts}</strong> posts. Only staff can see this message.\",too_few_topics_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentTopics}</strong> topics. Visitors need more to read and reply to – we recommend at least <strong>%{requiredTopics}</strong> topics. Only staff can see this message.\",too_few_posts_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentPosts}</strong> posts. Visitors need more to read and reply to – we recommend at least <strong>%{requiredPosts}</strong> posts. Only staff can see this message.\",logs_error_rate_notice:{},learn_more:\"learn more...\",all_time:\"total\",all_time_desc:\"total topics created\",year:\"year\",year_desc:\"topics created in the last 365 days\",month:\"month\",month_desc:\"topics created in the last 30 days\",week:\"week\",week_desc:\"topics created in the last 7 days\",day:\"day\",first_post:\"First post\",mute:\"Mute\",unmute:\"Unmute\",last_post:\"Posted\",time_read:\"Read\",time_read_recently:\"%{time_read} recently\",time_read_tooltip:\"%{time_read} total time read\",time_read_recently_tooltip:\"%{time_read} total time read (%{recent_time_read} in the last 60 days)\",last_reply_lowercase:\"last reply\",replies_lowercase:{one:\"reply\",other:\"replies\"},signup_cta:{sign_up:\"Sign Up\",hide_session:\"Remind me tomorrow\",hide_forever:\"no thanks\",hidden_for_session:\"OK, I'll ask you tomorrow. You can always use 'Log In' to create an account, too.\",intro:\"Hello! Looks like you’re enjoying the discussion, but you haven’t signed up for an account yet.\",value_prop:\"When you create an account, we remember exactly what you’ve read, so you always come right back where you left off. You also get notifications, here and via email, whenever someone replies to you. And you can like posts to share the love. :heartpulse:\"},summary:{enabled_description:\"You're viewing a summary of this topic: the most interesting posts as determined by the community.\",description:\"There are <b>{{replyCount}}</b> replies.\",description_time:\"There are <b>{{replyCount}}</b> replies with an estimated read time of <b>{{readingTime}} minutes</b>.\",enable:\"Summarize This Topic\",disable:\"Show All Posts\"},deleted_filter:{enabled_description:\"This topic contains deleted posts, which have been hidden.\",disabled_description:\"Deleted posts in the topic are shown.\",enable:\"Hide Deleted Posts\",disable:\"Show Deleted Posts\"},private_message_info:{title:\"Message\",invite:\"Invite Others ...\",edit:\"Add or Remove ...\",leave_message:\"Do you really want to leave this message?\",remove_allowed_user:\"Do you really want to remove {{name}} from this message?\",remove_allowed_group:\"Do you really want to remove {{name}} from this message?\"},email:\"Email\",username:\"Username\",last_seen:\"Seen\",created:\"Created\",created_lowercase:\"created\",trust_level:\"Trust Level\",search_hint:\"username, email or IP address\",create_account:{disclaimer:\"By registering, you agree to the <a href='{{privacy_link}}' target='blank'>privacy policy</a> and <a href='{{tos_link}}' target='blank'>terms of service</a>.\",title:\"Create New Account\",failed:\"Something went wrong, perhaps this email is already registered, try the forgot password link\"},forgot_password:{title:\"Password Reset\",action:\"I forgot my password\",invite:\"Enter your username or email address, and we'll send you a password reset email.\",reset:\"Reset Password\",complete_username:\"If an account matches the username <b>%{username}</b>, you should receive an email with instructions on how to reset your password shortly.\",complete_email:\"If an account matches <b>%{email}</b>, you should receive an email with instructions on how to reset your password shortly.\",complete_username_found:\"We found an account that matches the username <b>%{username}</b>. You should receive an email with instructions on how to reset your password shortly.\",complete_email_found:\"We found an account that matches <b>%{email}</b>. You should receive an email with instructions on how to reset your password shortly.\",complete_username_not_found:\"No account matches the username <b>%{username}</b>\",complete_email_not_found:\"No account matches <b>%{email}</b>\",help:\"Email not arriving? Be sure to check your spam folder first.<p>Not sure which email address you used? Enter an email address and we’ll let you know if it exists here.</p><p>If you no longer have access to the email address on your account, please contact <a href='%{basePath}/about'>our helpful staff.</a></p>\",button_ok:\"OK\",button_help:\"Help\"},email_login:{link_label:\"Email me a login link\",button_label:\"with email\",complete_username:\"If an account matches the username <b>%{username}</b>, you should receive an email with a login link shortly.\",complete_email:\"If an account matches <b>%{email}</b>, you should receive an email with a login link shortly.\",complete_username_found:\"We found an account that matches the username <b>%{username}</b>, you should receive an email with a login link shortly.\",complete_email_found:\"We found an account that matches <b>%{email}</b>, you should receive an email with a login link shortly.\",complete_username_not_found:\"No account matches the username <b>%{username}</b>\",complete_email_not_found:\"No account matches <b>%{email}</b>\",confirm_title:\"Continue to %{site_name}\",logging_in_as:\"Logging in as %{email}\",confirm_button:\"Finish Login\"},login:{title:\"Log In\",username:\"User\",password:\"Password\",second_factor_title:\"Two Factor Authentication\",second_factor_description:\"Please enter the authentication code from your app:\",second_factor_backup:\"Log in using a backup code\",second_factor_backup_title:\"Two Factor Backup\",second_factor_backup_description:\"Please enter one of your backup codes:\",second_factor:\"Log in using Authenticator app\",security_key_description:\"When you have your physical security key prepared press the Authenticate with Security Key button below.\",security_key_alternative:\"Try another way\",security_key_authenticate:\"Authenticate with Security Key\",security_key_not_allowed_error:\"The security key authentication process either timed out or was cancelled.\",security_key_no_matching_credential_error:\"No matching credentials could be found in the provided security key.\",security_key_support_missing_error:\"Your current device or browser does not support the use of security keys. Please use a different method.\",email_placeholder:\"email or username\",caps_lock_warning:\"Caps Lock is on\",error:\"Unknown error\",cookies_error:\"Your browser seems to have cookies disabled. You might not be able to log in without enabling them first.\",rate_limit:\"Please wait before trying to log in again.\",blank_username:\"Please enter your email or username.\",blank_username_or_password:\"Please enter your email or username, and password.\",reset_password:\"Reset Password\",logging_in:\"Signing In...\",or:\"Or\",authenticating:\"Authenticating...\",awaiting_activation:\"Your account is awaiting activation, use the forgot password link to issue another activation email.\",awaiting_approval:\"Your account has not been approved by a staff member yet. You will be sent an email when it is approved.\",requires_invite:\"Sorry, access to this forum is by invite only.\",not_activated:\"You can't log in yet. We previously sent an activation email to you at <b>{{sentTo}}</b>. Please follow the instructions in that email to activate your account.\",not_allowed_from_ip_address:\"You can't login from that IP address.\",admin_not_allowed_from_ip_address:\"You can't log in as admin from that IP address.\",resend_activation_email:\"Click here to send the activation email again.\",omniauth_disallow_totp:\"Your account has two factor authentication enabled. Please log in with your password.\",resend_title:\"Resend Activation Email\",change_email:\"Change Email Address\",provide_new_email:\"Provide a new address and we'll resend your confirmation email.\",submit_new_email:\"Update Email Address\",sent_activation_email_again:\"We sent another activation email to you at <b>{{currentEmail}}</b>. It might take a few minutes for it to arrive; be sure to check your spam folder.\",sent_activation_email_again_generic:\"We sent another activation email. It might take a few minutes for it to arrive; be sure to check your spam folder.\",to_continue:\"Please Log In\",preferences:\"You need to be logged in to change your user preferences.\",forgot:\"I don't recall my account details\",not_approved:\"Your account hasn't been approved yet. You will be notified by email when you are ready to log in.\",google_oauth2:{name:\"Google\",title:\"with Google\"},twitter:{name:\"Twitter\",title:\"with Twitter\"},instagram:{name:\"Instagram\",title:\"with Instagram\"},facebook:{name:\"Facebook\",title:\"with Facebook\"},github:{name:\"GitHub\",title:\"with GitHub\"},discord:{name:\"Discord\",title:\"with Discord\"},second_factor_toggle:{totp:\"Use an authenticator app instead\",backup_code:\"Use a backup code instead\"},oauth2_basic:{name:\"OAuth 2\"}},invites:{accept_title:\"Invitation\",welcome_to:\"Welcome to %{site_name}!\",invited_by:\"You were invited by:\",social_login_available:\"You'll also be able to sign in with any social login using that email.\",your_email:\"Your account email address is <b>%{email}</b>.\",accept_invite:\"Accept Invitation\",success:\"Your account has been created and you're now logged in.\",name_label:\"Name\",password_label:\"Set Password\",optional_description:\"(optional)\"},password_reset:{continue:\"Continue to %{site_name}\"},emoji_set:{apple_international:\"Apple/International\",google:\"Google\",twitter:\"Twitter\",emoji_one:\"JoyPixels (formerly EmojiOne)\",win10:\"Win10\",google_classic:\"Google Classic\",facebook_messenger:\"Facebook Messenger\"},category_page_style:{categories_only:\"Categories Only\",categories_with_featured_topics:\"Categories with Featured Topics\",categories_and_latest_topics:\"Categories and Latest Topics\",categories_and_top_topics:\"Categories and Top Topics\",categories_boxes:\"Boxes with Subcategories\",categories_boxes_with_topics:\"Boxes with Featured Topics\"},shortcut_modifier_key:{shift:\"Shift\",ctrl:\"Ctrl\",alt:\"Alt\",enter:\"Enter\"},conditional_loading_section:{loading:\"Loading...\"},category_row:{topic_count:\"{{count}} topics in this category\"},select_kit:{default_header_text:\"Select...\",no_content:\"No matches found\",filter_placeholder:\"Search...\",filter_placeholder_with_any:\"Search or create...\",create:\"Create: '{{content}}'\",max_content_reached:{one:\"You can only select {{count}} item.\",other:\"You can only select {{count}} items.\"},min_content_not_reached:{one:\"Select at least {{count}} item.\",other:\"Select at least {{count}} items.\"},invalid_selection_length:\"Selection must be at least {{count}} characters.\"},date_time_picker:{from:\"From\",to:\"To\",errors:{to_before_from:\"To date must be later than from date.\"}},emoji_picker:{filter_placeholder:\"Search for emoji\",\"smileys_&_emotion\":\"Smileys and Emotion\",\"people_&_body\":\"People and Body\",\"animals_&_nature\":\"Animals and Nature\",\"food_&_drink\":\"Food and Drink\",\"travel_&_places\":\"Travel and Places\",activities:\"Activities\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom emojis\",recent:\"Recently used\",default_tone:\"No skin tone\",light_tone:\"Light skin tone\",medium_light_tone:\"Medium light skin tone\",medium_tone:\"Medium skin tone\",medium_dark_tone:\"Medium dark skin tone\",dark_tone:\"Dark skin tone\"},shared_drafts:{title:\"Shared Drafts\",notice:\"This topic is only visible to those who can see the <b>{{category}}</b> category.\",destination_category:\"Destination Category\",publish:\"Publish Shared Draft\",confirm_publish:\"Are you sure you want to publish this draft?\",publishing:\"Publishing Topic...\"},composer:{emoji:\"Emoji :)\",more_emoji:\"more...\",options:\"Options\",whisper:\"whisper\",unlist:\"unlisted\",blockquote_text:\"Blockquote\",add_warning:\"This is an official warning.\",toggle_whisper:\"Toggle Whisper\",toggle_unlisted:\"Toggle Unlisted\",posting_not_on_topic:\"Which topic do you want to reply to?\",saved_local_draft_tip:\"saved locally\",similar_topics:\"Your topic is similar to...\",drafts_offline:\"drafts offline\",edit_conflict:\"edit conflict\",group_mentioned_limit:\"<b>Warning!</b> You mentioned <a href='{{group_link}}'>{{group}}</a>, however this group has more members than the administrator configured mention limit of {{max}} users. Nobody will be notified.\",group_mentioned:{one:\"By mentioning {{group}}, you are about to notify <a href='{{group_link}}'>%{count} person</a> – are you sure?\",other:\"By mentioning {{group}}, you are about to notify <a href='{{group_link}}'>{{count}} people</a> – are you sure?\"},cannot_see_mention:{category:\"You mentioned {{username}} but they won't be notified because they do not have access to this category. You will need to add them to a group that has access to this category.\",private:\"You mentioned {{username}} but they won't be notified because they are unable to see this personal message. You will need to invite them to this PM.\"},duplicate_link:\"It looks like your link to <b>{{domain}}</b> was already posted in the topic by <b>@{{username}}</b> in <a href='{{post_url}}'>a reply on {{ago}}</a> – are you sure you want to post it again?\",reference_topic_title:\"RE: {{title}}\",error:{title_missing:\"Title is required\",title_too_short:\"Title must be at least {{min}} characters\",title_too_long:\"Title can't be more than {{max}} characters\",post_missing:\"Post can’t be empty\",post_length:\"Post must be at least {{min}} characters\",try_like:\"Have you tried the {{heart}} button?\",category_missing:\"You must choose a category\",tags_missing:\"You must choose at least {{count}} tags\",topic_template_not_modified:\"Please add details and specifics to your topic by editing the topic template.\"},save_edit:\"Save Edit\",overwrite_edit:\"Overwrite Edit\",reply_original:\"Reply on Original Topic\",reply_here:\"Reply Here\",reply:\"Reply\",cancel:\"Cancel\",create_topic:\"Create Topic\",create_pm:\"Message\",create_whisper:\"Whisper\",create_shared_draft:\"Create Shared Draft\",edit_shared_draft:\"Edit Shared Draft\",title:\"Or press Ctrl+Enter\",users_placeholder:\"Add a user\",title_placeholder:\"What is this discussion about in one brief sentence?\",title_or_link_placeholder:\"Type title, or paste a link here\",edit_reason_placeholder:\"why are you editing?\",topic_featured_link_placeholder:\"Enter link shown with title.\",remove_featured_link:\"Remove link from topic.\",reply_placeholder:\"Type here. Use Markdown, BBCode, or HTML to format. Drag or paste images.\",reply_placeholder_no_images:\"Type here. Use Markdown, BBCode, or HTML to format.\",reply_placeholder_choose_category:\"Select a category before typing here.\",view_new_post:\"View your new post.\",saving:\"Saving\",saved:\"Saved!\",saved_draft:\"Post draft in progress. Tap to resume.\",uploading:\"Uploading...\",show_preview:\"show preview &raquo;\",hide_preview:\"&laquo; hide preview\",quote_post_title:\"Quote whole post\",bold_label:\"B\",bold_title:\"Strong\",bold_text:\"strong text\",italic_label:\"I\",italic_title:\"Emphasis\",italic_text:\"emphasized text\",link_title:\"Hyperlink\",link_description:\"enter link description here\",link_dialog_title:\"Insert Hyperlink\",link_optional_text:\"optional title\",link_url_placeholder:\"Paste a URL or type to search topics\",quote_title:\"Blockquote\",quote_text:\"Blockquote\",code_title:\"Preformatted text\",code_text:\"indent preformatted text by 4 spaces\",paste_code_text:\"type or paste code here\",upload_title:\"Upload\",upload_description:\"enter upload description here\",olist_title:\"Numbered List\",ulist_title:\"Bulleted List\",list_item:\"List item\",toggle_direction:\"Toggle Direction\",help:\"Markdown Editing Help\",collapse:\"minimize the composer panel\",open:\"open the composer panel\",abandon:\"close composer and discard draft\",enter_fullscreen:\"enter fullscreen composer\",exit_fullscreen:\"exit fullscreen composer\",modal_ok:\"OK\",modal_cancel:\"Cancel\",cant_send_pm:\"Sorry, you can't send a message to %{username}.\",yourself_confirm:{title:\"Did you forget to add recipients?\",body:\"Right now this message is only being sent to yourself!\"},admin_options_title:\"Optional staff settings for this topic\",composer_actions:{reply:\"Reply\",draft:\"Draft\",edit:\"Edit\",reply_to_post:{label:\"Reply to post %{postNumber} by %{postUsername}\",desc:\"Reply to a specific post\"},reply_as_new_topic:{label:\"Reply as linked topic\",desc:\"Create a new topic linked to this topic\",confirm:\"You have a new topic draft saved, which will be overwritten if you create a linked topic.\"},reply_as_private_message:{label:\"New message\",desc:\"Create a new personal message\"},reply_to_topic:{label:\"Reply to topic\",desc:\"Reply to the topic, not any specific post\"},toggle_whisper:{label:\"Toggle whisper\",desc:\"Whispers are only visible to staff members\"},create_topic:{label:\"New Topic\"},shared_draft:{label:\"Shared Draft\",desc:\"Draft a topic that will only be visible to staff\"},toggle_topic_bump:{label:\"Toggle topic bump\",desc:\"Reply without changing latest reply date\"}},details_title:\"Summary\",details_text:\"This text will be hidden\"},notifications:{tooltip:{regular:{one:\"%{count} unseen notification\",other:\"{{count}} unseen notifications\"},message:{one:\"%{count} unread message\",other:\"{{count}} unread messages\"}},title:\"notifications of @name mentions, replies to your posts and topics, messages, etc\",none:\"Unable to load notifications at this time.\",empty:\"No notifications found.\",post_approved:\"Your post was approved\",reviewable_items:\"items requiring review\",mentioned:\"<span>{{username}}</span> {{description}}\",group_mentioned:\"<span>{{username}}</span> {{description}}\",quoted:\"<span>{{username}}</span> {{description}}\",replied:\"<span>{{username}}</span> {{description}}\",posted:\"<span>{{username}}</span> {{description}}\",edited:\"<span>{{username}}</span> {{description}}\",liked:\"<span>{{username}}</span> {{description}}\",liked_2:\"<span>{{username}}, {{username2}}</span> {{description}}\",liked_many:{one:\"<span>{{username}}, {{username2}} and %{count} other</span> {{description}}\",other:\"<span>{{username}}, {{username2}} and {{count}} others</span> {{description}}\"},liked_consolidated_description:{one:\"liked {{count}} of your posts\",other:\"liked {{count}} of your posts\"},liked_consolidated:\"<span>{{username}}</span> {{description}}\",private_message:\"<span>{{username}}</span> {{description}}\",invited_to_private_message:\"<p><span>{{username}}</span> {{description}}\",invited_to_topic:\"<span>{{username}}</span> {{description}}\",invitee_accepted:\"<span>{{username}}</span> accepted your invitation\",moved_post:\"<span>{{username}}</span> moved {{description}}\",linked:\"<span>{{username}}</span> {{description}}\",granted_badge:\"Earned '{{description}}'\",topic_reminder:\"<span>{{username}}</span> {{description}}\",watching_first_post:\"<span>New Topic</span> {{description}}\",membership_request_accepted:\"Membership accepted in '{{group_name}}'\",membership_request_consolidated:\"{{count}} open membership requests for '{{group_name}}'\",group_message_summary:{one:\"{{count}} message in your {{group_name}} inbox\",other:\"{{count}} messages in your {{group_name}} inbox\"},popup:{mentioned:'{{username}} mentioned you in \"{{topic}}\" - {{site_title}}',group_mentioned:'{{username}} mentioned you in \"{{topic}}\" - {{site_title}}',quoted:'{{username}} quoted you in \"{{topic}}\" - {{site_title}}',replied:'{{username}} replied to you in \"{{topic}}\" - {{site_title}}',posted:'{{username}} posted in \"{{topic}}\" - {{site_title}}',private_message:'{{username}} sent you a personal message in \"{{topic}}\" - {{site_title}}',linked:'{{username}} linked to your post from \"{{topic}}\" - {{site_title}}',watching_first_post:'{{username}} created a new topic \"{{topic}}\" - {{site_title}}',confirm_title:\"Notifications enabled - %{site_title}\",confirm_body:\"Success! Notifications have been enabled.\",custom:\"Notification from {{username}} on %{site_title}\"},titles:{mentioned:\"mentioned\",replied:\"new reply\",quoted:\"quoted\",edited:\"edited\",liked:\"new like\",private_message:\"new private message\",invited_to_private_message:\"invited to private message\",invitee_accepted:\"invite accepted\",posted:\"new post\",moved_post:\"post moved\",linked:\"linked\",granted_badge:\"badge granted\",invited_to_topic:\"invited to topic\",group_mentioned:\"group mentioned\",group_message_summary:\"new group messages\",watching_first_post:\"new topic\",topic_reminder:\"topic reminder\",liked_consolidated:\"new likes\",post_approved:\"post approved\",membership_request_consolidated:\"new membership requests\"},alt:{solved:{accepted_notification:\"accepted\"}}},upload_selector:{title:\"Add an image\",title_with_attachments:\"Add an image or a file\",from_my_computer:\"From my device\",from_the_web:\"From the web\",remote_tip:\"link to image\",remote_tip_with_attachments:\"link to image or file {{authorized_extensions}}\",local_tip:\"select images from your device\",local_tip_with_attachments:\"select images or files from your device {{authorized_extensions}}\",hint:\"(you can also drag & drop into the editor to upload them)\",hint_for_supported_browsers:\"you can also drag and drop or paste images into the editor\",uploading:\"Uploading\",select_file:\"Select File\",default_image_alt_text:\"image\"},search:{sort_by:\"Sort by\",relevance:\"Relevance\",latest_post:\"Latest Post\",latest_topic:\"Latest Topic\",most_viewed:\"Most Viewed\",most_liked:\"Most Liked\",select_all:\"Select All\",clear_all:\"Clear All\",too_short:\"Your search term is too short.\",result_count:{one:\"<span>%{count} result for</span><span class='term'>{{term}}</span>\",other:\"<span>{{count}}{{plus}} results for</span><span class='term'>{{term}}</span>\"},title:\"search topics, posts, users, or categories\",full_page_title:\"search topics or posts\",no_results:\"No results found.\",no_more_results:\"No more results found.\",searching:\"Searching ...\",post_format:\"#{{post_number}} by {{username}}\",results_page:\"Search results for '{{term}}'\",more_results:\"There are more results. Please narrow your search criteria.\",cant_find:\"Can’t find what you’re looking for?\",start_new_topic:\"Perhaps start a new topic?\",or_search_google:\"Or try searching with Google instead:\",search_google:\"Try searching with Google instead:\",search_google_button:\"Google\",search_google_title:\"Search this site\",context:{user:\"Search posts by @{{username}}\",category:\"Search the #{{category}} category\",tag:\"Search the #{{tag}} tag\",topic:\"Search this topic\",private_messages:\"Search messages\"},advanced:{title:\"Advanced Search\",posted_by:{label:\"Posted by\"},in_category:{label:\"Categorized\"},in_group:{label:\"In Group\"},with_badge:{label:\"With Badge\"},with_tags:{label:\"Tagged\"},filters:{label:\"Only return topics/posts...\",title:\"Matching in title only\",likes:\"I liked\",posted:\"I posted in\",created:\"I created\",watching:\"I'm watching\",tracking:\"I'm tracking\",private:\"In my messages\",bookmarks:\"I bookmarked\",first:\"are the very first post\",pinned:\"are pinned\",unpinned:\"are not pinned\",seen:\"I read\",unseen:\"I've not read\",wiki:\"are wiki\",images:\"include image(s)\",all_tags:\"All the above tags\"},statuses:{label:\"Where topics\",open:\"are open\",closed:\"are closed\",public:\"are public\",archived:\"are archived\",noreplies:\"have zero replies\",single_user:\"contain a single user\",solved:\"are solved\"},post:{count:{label:\"Minimum Post Count\"},time:{label:\"Posted\",before:\"before\",after:\"after\"}}}},hamburger_menu:\"go to another topic list or category\",new_item:\"new\",go_back:\"go back\",not_logged_in_user:\"user page with summary of current activity and preferences\",current_user:\"go to your user page\",view_all:\"view all\",topics:{new_messages_marker:\"last visit\",bulk:{select_all:\"Select All\",clear_all:\"Clear All\",unlist_topics:\"Unlist Topics\",relist_topics:\"Relist Topics\",reset_read:\"Reset Read\",delete:\"Delete Topics\",dismiss:\"Dismiss\",dismiss_read:\"Dismiss all unread\",dismiss_button:\"Dismiss…\",dismiss_tooltip:\"Dismiss just new posts or stop tracking topics\",also_dismiss_topics:\"Stop tracking these topics so they never show up as unread for me again\",dismiss_new:\"Dismiss New\",toggle:\"toggle bulk selection of topics\",actions:\"Bulk Actions\",change_category:\"Set Category\",close_topics:\"Close Topics\",archive_topics:\"Archive Topics\",notification_level:\"Notifications\",choose_new_category:\"Choose the new category for the topics:\",selected:{one:\"You have selected <b>%{count}</b> topic.\",other:\"You have selected <b>{{count}}</b> topics.\"},change_tags:\"Replace Tags\",append_tags:\"Append Tags\",choose_new_tags:\"Choose new tags for these topics:\",choose_append_tags:\"Choose new tags to append for these topics:\",changed_tags:\"The tags of those topics were changed.\"},none:{unread:\"You have no unread topics.\",new:\"You have no new topics.\",read:\"You haven't read any topics yet.\",posted:\"You haven't posted in any topics yet.\",latest:\"There are no latest topics. That's sad.\",bookmarks:\"You have no bookmarked topics yet.\",category:\"There are no {{category}} topics.\",top:\"There are no top topics.\",educate:{new:'<p>Your new topics appear here.</p><p>By default, topics are considered new and will show a <span class=\"badge new-topic badge-notification\" style=\"vertical-align:middle;line-height:inherit;\">new</span> indicator if they were created in the last 2 days.</p><p>Visit your <a href=\"%{userPrefsUrl}\">preferences</a> to change this.</p>',unread:'<p>Your unread topics appear here.</p><p>By default, topics are considered unread and will show unread counts <span class=\"badge new-posts badge-notification\">1</span> if you:</p><ul><li>Created the topic</li><li>Replied to the topic</li><li>Read the topic for more than 4 minutes</li></ul><p>Or if you have explicitly set the topic to Tracked or Watched via the notification control at the bottom of each topic.</p><p>Visit your <a href=\"%{userPrefsUrl}\">preferences</a> to change this.</p>'}},bottom:{latest:\"There are no more latest topics.\",posted:\"There are no more posted topics.\",read:\"There are no more read topics.\",new:\"There are no more new topics.\",unread:\"There are no more unread topics.\",category:\"There are no more {{category}} topics.\",top:\"There are no more top topics.\",bookmarks:\"There are no more bookmarked topics.\"}},topic:{filter_to:{one:\"%{count} post in topic\",other:\"{{count}} posts in topic\"},create:\"New Topic\",create_long:\"Create a new Topic\",open_draft:\"Open Draft\",private_message:\"Start a message\",archive_message:{help:\"Move message to your archive\",title:\"Archive\"},move_to_inbox:{title:\"Move to Inbox\",help:\"Move message back to Inbox\"},edit_message:{help:\"Edit first post of the message\",title:\"Edit Message\"},defer:{help:\"Mark as unread\",title:\"Defer\"},feature_on_profile:{help:\"Add a link to this topic on your user card and profile\",title:\"Feature On Profile\"},remove_from_profile:{warning:\"Your profile already has a featured topic. If you continue, this topic will replace the existing topic.\",help:\"Remove the link to this topic on your user profile\",title:\"Remove From Profile\"},list:\"Topics\",new:\"new topic\",unread:\"unread\",new_topics:{one:\"%{count} new topic\",other:\"{{count}} new topics\"},unread_topics:{one:\"%{count} unread topic\",other:\"{{count}} unread topics\"},title:\"Topic\",invalid_access:{title:\"Topic is private\",description:\"Sorry, you don't have access to that topic!\",login_required:\"You need to log in to see that topic.\"},server_error:{title:\"Topic failed to load\",description:\"Sorry, we couldn't load that topic, possibly due to a connection problem. Please try again. If the problem persists, let us know.\"},not_found:{title:\"Topic not found\",description:\"Sorry, we couldn't find that topic. Perhaps it was removed by a moderator?\"},total_unread_posts:{one:\"you have %{count} unread post in this topic\",other:\"you have {{count}} unread posts in this topic\"},unread_posts:{one:\"you have %{count} unread old post in this topic\",other:\"you have {{count}} unread old posts in this topic\"},new_posts:{one:\"there is %{count} new post in this topic since you last read it\",other:\"there are {{count}} new posts in this topic since you last read it\"},likes:{one:\"there is %{count} like in this topic\",other:\"there are {{count}} likes in this topic\"},back_to_list:\"Back to Topic List\",options:\"Topic Options\",show_links:\"show links within this topic\",toggle_information:\"toggle topic details\",read_more_in_category:\"Want to read more? Browse other topics in {{catLink}} or {{latestLink}}.\",read_more:\"Want to read more? {{catLink}} or {{latestLink}}.\",group_request:\"You need to request membership to the `{{name}}` group to see this topic\",group_join:\"You need join the `{{name}}` group to see this topic\",group_request_sent:\"Your group membership request has been sent. You will be informed when it's accepted.\",unread_indicator:\"No member has read the last post of this topic yet.\",browse_all_categories:\"Browse all categories\",view_latest_topics:\"view latest topics\",suggest_create_topic:\"Why not create a topic?\",jump_reply_up:\"jump to earlier reply\",jump_reply_down:\"jump to later reply\",deleted:\"The topic has been deleted\",topic_status_update:{title:\"Topic Timer\",save:\"Set Timer\",num_of_hours:\"Number of hours:\",remove:\"Remove Timer\",publish_to:\"Publish To:\",when:\"When:\",public_timer_types:\"Topic Timers\",private_timer_types:\"User Topic Timers\",time_frame_required:\"Please select a time frame\"},auto_update_input:{none:\"Select a timeframe\",later_today:\"Later today\",tomorrow:\"Tomorrow\",later_this_week:\"Later this week\",this_weekend:\"This weekend\",next_week:\"Next week\",two_weeks:\"Two Weeks\",next_month:\"Next month\",two_months:\"Two Months\",three_months:\"Three Months\",four_months:\"Four Months\",six_months:\"Six Months\",one_year:\"One Year\",forever:\"Forever\",pick_date_and_time:\"Pick date and time\",set_based_on_last_post:\"Close based on last post\"},publish_to_category:{title:\"Schedule Publishing\"},temp_open:{title:\"Open Temporarily\"},auto_reopen:{title:\"Auto-open Topic\"},temp_close:{title:\"Close Temporarily\"},auto_close:{title:\"Auto-Close Topic\",label:\"Auto-close topic hours:\",error:\"Please enter a valid value.\",based_on_last_post:\"Don't close until the last post in the topic is at least this old.\"},auto_delete:{title:\"Auto-Delete Topic\"},auto_bump:{title:\"Auto-Bump Topic\"},reminder:{title:\"Remind Me\"},status_update_notice:{auto_open:\"This topic will automatically open %{timeLeft}.\",auto_close:\"This topic will automatically close %{timeLeft}.\",auto_publish_to_category:\"This topic will be published to <a href=%{categoryUrl}>#%{categoryName}</a> %{timeLeft}.\",auto_close_based_on_last_post:\"This topic will close %{duration} after the last reply.\",auto_delete:\"This topic will be automatically deleted %{timeLeft}.\",auto_bump:\"This topic will be automatically bumped %{timeLeft}.\",auto_reminder:\"You will be reminded about this topic %{timeLeft}.\"},auto_close_title:\"Auto-Close Settings\",auto_close_immediate:{one:\"The last post in the topic is already %{count} hour old, so the topic will be closed immediately.\",other:\"The last post in the topic is already %{count} hours old, so the topic will be closed immediately.\"},timeline:{back:\"Back\",back_description:\"Go back to your last unread post\",replies_short:\"%{current} / %{total}\"},progress:{title:\"topic progress\",go_top:\"top\",go_bottom:\"bottom\",go:\"go\",jump_bottom:\"jump to last post\",jump_prompt:\"jump to...\",jump_prompt_of:\"of %{count} posts\",jump_prompt_long:\"Jump to...\",jump_bottom_with_number:\"jump to post %{post_number}\",jump_prompt_to_date:\"to date\",jump_prompt_or:\"or\",total:\"total posts\",current:\"current post\"},notifications:{title:\"change how often you get notified about this topic\",reasons:{mailing_list_mode:\"You have mailing list mode enabled, so you will be notified of replies to this topic via email.\",\"3_10\":\"You will receive notifications because you are watching a tag on this topic.\",\"3_6\":\"You will receive notifications because you are watching this category.\",\"3_5\":\"You will receive notifications because you started watching this topic automatically.\",\"3_2\":\"You will receive notifications because you are watching this topic.\",\"3_1\":\"You will receive notifications because you created this topic.\",3:\"You will receive notifications because you are watching this topic.\",\"2_8\":\"You will see a count of new replies because you are tracking this category.\",\"2_4\":\"You will see a count of new replies because you posted a reply to this topic.\",\"2_2\":\"You will see a count of new replies because you are tracking this topic.\",2:'You will see a count of new replies because you <a href=\"{{basePath}}/u/{{username}}/preferences\">read this topic</a>.',\"1_2\":\"You will be notified if someone mentions your @name or replies to you.\",1:\"You will be notified if someone mentions your @name or replies to you.\",\"0_7\":\"You are ignoring all notifications in this category.\",\"0_2\":\"You are ignoring all notifications on this topic.\",0:\"You are ignoring all notifications on this topic.\"},watching_pm:{title:\"Watching\",description:\"You will be notified of every new reply in this message, and a count of new replies will be shown.\"},watching:{title:\"Watching\",description:\"You will be notified of every new reply in this topic, and a count of new replies will be shown.\"},tracking_pm:{title:\"Tracking\",description:\"A count of new replies will be shown for this message. You will be notified if someone mentions your @name or replies to you.\"},tracking:{title:\"Tracking\",description:\"A count of new replies will be shown for this topic. You will be notified if someone mentions your @name or replies to you.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},regular_pm:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted_pm:{title:\"Muted\",description:\"You will never be notified of anything about this message.\"},muted:{title:\"Muted\",description:\"You will never be notified of anything about this topic, and it will not appear in latest.\"}},actions:{title:\"Actions\",recover:\"Un-Delete Topic\",delete:\"Delete Topic\",open:\"Open Topic\",close:\"Close Topic\",multi_select:\"Select Posts…\",timed_update:\"Set Topic Timer...\",pin:\"Pin Topic…\",unpin:\"Un-Pin Topic…\",unarchive:\"Unarchive Topic\",archive:\"Archive Topic\",invisible:\"Make Unlisted\",visible:\"Make Listed\",reset_read:\"Reset Read Data\",make_public:\"Make Public Topic\",make_private:\"Make Personal Message\",reset_bump_date:\"Reset Bump Date\"},feature:{pin:\"Pin Topic\",unpin:\"Un-Pin Topic\",pin_globally:\"Pin Topic Globally\",make_banner:\"Banner Topic\",remove_banner:\"Remove Banner Topic\"},reply:{title:\"Reply\",help:\"begin composing a reply to this topic\"},clear_pin:{title:\"Clear pin\",help:\"Clear the pinned status of this topic so it no longer appears at the top of your topic list\"},share:{title:\"Share\",extended_title:\"Share a link\",help:\"share a link to this topic\"},print:{title:\"Print\",help:\"Open a printer friendly version of this topic\"},flag_topic:{title:\"Flag\",help:\"privately flag this topic for attention or send a private notification about it\",success_message:\"You successfully flagged this topic.\"},make_public:{title:\"Convert to Public Topic\",choose_category:\"Please choose a category for the public topic:\"},feature_topic:{title:\"Feature this topic\",pin:\"Make this topic appear at the top of the {{categoryLink}} category until\",confirm_pin:\"You already have {{count}} pinned topics. Too many pinned topics may be a burden for new and anonymous users. Are you sure you want to pin another topic in this category?\",unpin:\"Remove this topic from the top of the {{categoryLink}} category.\",unpin_until:\"Remove this topic from the top of the {{categoryLink}} category or wait until <strong>%{until}</strong>.\",pin_note:\"Users can unpin the topic individually for themselves.\",pin_validation:\"A date is required to pin this topic.\",not_pinned:\"There are no topics pinned in {{categoryLink}}.\",already_pinned:{one:\"Topics currently pinned in {{categoryLink}}: <strong class='badge badge-notification unread'>%{count}</strong>\",other:\"Topics currently pinned in {{categoryLink}}: <strong class='badge badge-notification unread'>{{count}}</strong>\"},pin_globally:\"Make this topic appear at the top of all topic lists until\",confirm_pin_globally:\"You already have {{count}} globally pinned topics. Too many pinned topics may be a burden for new and anonymous users. Are you sure you want to pin another topic globally?\",unpin_globally:\"Remove this topic from the top of all topic lists.\",unpin_globally_until:\"Remove this topic from the top of all topic lists or wait until <strong>%{until}</strong>.\",global_pin_note:\"Users can unpin the topic individually for themselves.\",not_pinned_globally:\"There are no topics pinned globally.\",already_pinned_globally:{one:\"Topics currently pinned globally: <strong class='badge badge-notification unread'>%{count}</strong>\",other:\"Topics currently pinned globally: <strong class='badge badge-notification unread'>{{count}}</strong>\"},make_banner:\"Make this topic into a banner that appears at the top of all pages.\",remove_banner:\"Remove the banner that appears at the top of all pages.\",banner_note:\"Users can dismiss the banner by closing it. Only one topic can be bannered at any given time.\",no_banner_exists:\"There is no banner topic.\",banner_exists:\"There <strong class='badge badge-notification unread'>is</strong> currently a banner topic.\"},inviting:\"Inviting...\",automatically_add_to_groups:\"This invite also includes access to these groups:\",invite_private:{title:\"Invite to Message\",email_or_username:\"Invitee's Email or Username\",email_or_username_placeholder:\"email address or username\",action:\"Invite\",success:\"We've invited that user to participate in this message.\",success_group:\"We've invited that group to participate in this message.\",error:\"Sorry, there was an error inviting that user.\",group_name:\"group name\"},controls:\"Topic Controls\",invite_reply:{title:\"Invite\",username_placeholder:\"username\",action:\"Send Invite\",help:\"invite others to this topic via email or notifications\",to_forum:\"We'll send a brief email allowing your friend to immediately join by clicking a link, no login required.\",sso_enabled:\"Enter the username of the person you'd like to invite to this topic.\",to_topic_blank:\"Enter the username or email address of the person you'd like to invite to this topic.\",to_topic_email:\"You've entered an email address. We'll email an invitation that allows your friend to immediately reply to this topic.\",to_topic_username:\"You've entered a username. We'll send a notification with a link inviting them to this topic.\",to_username:\"Enter the username of the person you'd like to invite. We'll send a notification with a link inviting them to this topic.\",email_placeholder:\"name@example.com\",success_email:\"We mailed out an invitation to <b>{{emailOrUsername}}</b>. We'll notify you when the invitation is redeemed. Check the invitations tab on your user page to keep track of your invites.\",success_username:\"We've invited that user to participate in this topic.\",error:\"Sorry, we couldn't invite that person. Perhaps they have already been invited? (Invites are rate limited)\",success_existing_email:\"A user with email <b>{{emailOrUsername}}</b> already exists. We've invited that user to participate in this topic.\"},login_reply:\"Log In to Reply\",filters:{n_posts:{one:\"%{count} post\",other:\"{{count}} posts\"},cancel:\"Remove filter\"},move_to:{title:\"Move to\",action:\"move to\",error:\"There was an error moving posts.\"},split_topic:{title:\"Move to New Topic\",action:\"move to new topic\",topic_name:\"New Topic Title\",radio_label:\"New Topic\",error:\"There was an error moving posts to the new topic.\",instructions:{one:\"You are about to create a new topic and populate it with the post you've selected.\",other:\"You are about to create a new topic and populate it with the <b>{{count}}</b> posts you've selected.\"}},merge_topic:{title:\"Move to Existing Topic\",action:\"move to existing topic\",error:\"There was an error moving posts into that topic.\",radio_label:\"Existing Topic\",instructions:{one:\"Please choose the topic you'd like to move that post to.\",other:\"Please choose the topic you'd like to move those <b>{{count}}</b> posts to.\"}},move_to_new_message:{title:\"Move to New Message\",action:\"move to new message\",message_title:\"New Message Title\",radio_label:\"New Message\",participants:\"Participants\",instructions:{one:\"You are about to create a new message and populate it with the post you've selected.\",other:\"You are about to create a new message and populate it with the <b>{{count}}</b> posts you've selected.\"}},move_to_existing_message:{title:\"Move to Existing Message\",action:\"move to existing message\",radio_label:\"Existing Message\",participants:\"Participants\",instructions:{one:\"Please choose the message you'd like to move that post to.\",other:\"Please choose the message you'd like to move those <b>{{count}}</b> posts to.\"}},merge_posts:{title:\"Merge Selected Posts\",action:\"merge selected posts\",error:\"There was an error merging the selected posts.\"},change_owner:{title:\"Change Owner\",action:\"change ownership\",error:\"There was an error changing the ownership of the posts.\",placeholder:\"username of new owner\",instructions:{one:\"Please choose a new owner for the post by <b>@{{old_user}}</b>\",other:\"Please choose a new owner for the {{count}} posts by <b>@{{old_user}}</b>\"}},change_timestamp:{title:\"Change Timestamp...\",action:\"change timestamp\",invalid_timestamp:\"Timestamp cannot be in the future.\",error:\"There was an error changing the timestamp of the topic.\",instructions:\"Please select the new timestamp of the topic. Posts in the topic will be updated to have the same time difference.\"},multi_select:{select:\"select\",selected:\"selected ({{count}})\",select_post:{label:\"select\",title:\"Add post to selection\"},selected_post:{label:\"selected\",title:\"Click to remove post from selection\"},select_replies:{label:\"select +replies\",title:\"Add post and all its replies to selection\"},select_below:{label:\"select +below\",title:\"Add post and all after it to selection\"},delete:\"delete selected\",cancel:\"cancel selecting\",select_all:\"select all\",deselect_all:\"deselect all\",description:{one:\"You have selected <b>%{count}</b> post.\",other:\"You have selected <b>{{count}}</b> posts.\"}},deleted_by_author:{one:\"(topic withdrawn by author, will be automatically deleted in %{count} hour unless flagged)\",other:\"(topic withdrawn by author, will be automatically deleted in %{count} hours unless flagged)\"}},post:{quote_reply:\"Quote\",edit_reason:\"Reason: \",post_number:\"post {{number}}\",ignored:\"Ignored content\",wiki_last_edited_on:\"wiki last edited on\",last_edited_on:\"post last edited on\",reply_as_new_topic:\"Reply as linked Topic\",reply_as_new_private_message:\"Reply as new message to the same recipients\",continue_discussion:\"Continuing the discussion from {{postLink}}:\",follow_quote:\"go to the quoted post\",show_full:\"Show Full Post\",show_hidden:\"View ignored content.\",deleted_by_author:{one:\"(post withdrawn by author, will be automatically deleted in %{count} hour unless flagged)\",other:\"(post withdrawn by author, will be automatically deleted in %{count} hours unless flagged)\"},collapse:\"collapse\",expand_collapse:\"expand/collapse\",locked:\"a staff member has locked this post from being edited\",gap:{one:\"view %{count} hidden reply\",other:\"view {{count}} hidden replies\"},notice:{new_user:\"This is the first time {{user}} has posted — let’s welcome them to our community!\",returning_user:\"It’s been a while since we’ve seen {{user}} — their last post was {{time}}.\"},unread:\"Post is unread\",has_replies:{one:\"{{count}} Reply\",other:\"{{count}} Replies\"},has_likes_title:{one:\"%{count} person liked this post\",other:\"{{count}} people liked this post\"},has_likes_title_only_you:\"you liked this post\",has_likes_title_you:{one:\"you and %{count} other person liked this post\",other:\"you and {{count}} other people liked this post\"},errors:{create:\"Sorry, there was an error creating your post. Please try again.\",edit:\"Sorry, there was an error editing your post. Please try again.\",upload:\"Sorry, there was an error uploading that file. Please try again.\",file_too_large:\"Sorry, that file is too big (maximum size is {{max_size_kb}}kb). Why not upload your large file to a cloud sharing service, then paste the link?\",too_many_uploads:\"Sorry, you can only upload one file at a time.\",too_many_dragged_and_dropped_files:\"Sorry, you can only upload {{max}} files at a time.\",upload_not_authorized:\"Sorry, the file you are trying to upload is not authorized (authorized extensions: {{authorized_extensions}}).\",image_upload_not_allowed_for_new_user:\"Sorry, new users can not upload images.\",attachment_upload_not_allowed_for_new_user:\"Sorry, new users can not upload attachments.\",attachment_download_requires_login:\"Sorry, you need to be logged in to download attachments.\"},abandon_edit:{confirm:\"Are you sure you want to discard your changes?\",no_value:\"No, keep\",no_save_draft:\"No, save draft\",yes_value:\"Yes, discard edit\"},abandon:{confirm:\"Are you sure you want to abandon your post?\",no_value:\"No, keep\",no_save_draft:\"No, save draft\",yes_value:\"Yes, abandon\"},via_email:\"this post arrived via email\",via_auto_generated_email:\"this post arrived via an auto generated email\",whisper:\"this post is a private whisper for moderators\",wiki:{about:\"this post is a wiki\"},archetypes:{save:\"Save Options\"},few_likes_left:\"Thanks for sharing the love! You only have a few likes left for today.\",controls:{reply:\"begin composing a reply to this post\",like:\"like this post\",has_liked:\"you've liked this post\",read_indicator:\"members who read this post\",undo_like:\"undo like\",edit:\"edit this post\",edit_action:\"Edit\",edit_anonymous:\"Sorry, but you need to be logged in to edit this post.\",flag:\"privately flag this post for attention or send a private notification about it\",delete:\"delete this post\",undelete:\"undelete this post\",share:\"share a link to this post\",more:\"More\",delete_replies:{confirm:\"Do you also want to delete the replies to this post?\",direct_replies:{one:\"Yes, and %{count} direct reply\",other:\"Yes, and {{count}} direct replies\"},all_replies:{one:\"Yes, and %{count} reply\",other:\"Yes, and all {{count}} replies\"},just_the_post:\"No, just this post\"},admin:\"post admin actions\",wiki:\"Make Wiki\",unwiki:\"Remove Wiki\",convert_to_moderator:\"Add Staff Color\",revert_to_regular:\"Remove Staff Color\",rebake:\"Rebuild HTML\",unhide:\"Unhide\",change_owner:\"Change Ownership\",grant_badge:\"Grant Badge\",lock_post:\"Lock Post\",lock_post_description:\"prevent the poster from editing this post\",unlock_post:\"Unlock Post\",unlock_post_description:\"allow the poster to edit this post\",delete_topic_disallowed_modal:\"You don't have permission to delete this topic. If you really want it to be deleted, submit a flag for moderator attention together with reasoning.\",delete_topic_disallowed:\"you don't have permission to delete this topic\",delete_topic:\"delete topic\",add_post_notice:\"Add Staff Notice\",remove_post_notice:\"Remove Staff Notice\",remove_timer:\"remove timer\"},actions:{flag:\"Flag\",defer_flags:{one:\"Ignore flag\",other:\"Ignore flags\"},undo:{off_topic:\"Undo flag\",spam:\"Undo flag\",inappropriate:\"Undo flag\",bookmark:\"Undo bookmark\",like:\"Undo like\"},people:{off_topic:\"flagged this as off-topic\",spam:\"flagged this as spam\",inappropriate:\"flagged this as inappropriate\",notify_moderators:\"notified moderators\",notify_user:\"sent a message\",bookmark:\"bookmarked this\",like:{one:\"liked this\",other:\"liked this\"},read:{one:\"read this\",other:\"read this\"},like_capped:{one:\"and {{count}} other liked this\",other:\"and {{count}} others liked this\"},read_capped:{one:\"and {{count}} other read this\",other:\"and {{count}} others read this\"}},by_you:{off_topic:\"You flagged this as off-topic\",spam:\"You flagged this as spam\",inappropriate:\"You flagged this as inappropriate\",notify_moderators:\"You flagged this for moderation\",notify_user:\"You sent a message to this user\",bookmark:\"You bookmarked this post\",like:\"You liked this\"}},delete:{confirm:{one:\"Are you sure you want to delete that post?\",other:\"Are you sure you want to delete those {{count}} posts?\"}},merge:{confirm:{one:\"Are you sure you want to merge those posts?\",other:\"Are you sure you want to merge those {{count}} posts?\"}},revisions:{controls:{first:\"First revision\",previous:\"Previous revision\",next:\"Next revision\",last:\"Last revision\",hide:\"Hide revision\",show:\"Show revision\",revert:\"Revert to this revision\",edit_wiki:\"Edit Wiki\",edit_post:\"Edit Post\",comparing_previous_to_current_out_of_total:\"<strong>{{previous}}</strong> {{icon}} <strong>{{current}}</strong> / {{total}}\"},displays:{inline:{title:\"Show the rendered output with additions and removals inline\",button:\"HTML\"},side_by_side:{title:\"Show the rendered output diffs side-by-side\",button:\"HTML\"},side_by_side_markdown:{title:\"Show the raw source diffs side-by-side\",button:\"Raw\"}}},raw_email:{displays:{raw:{title:\"Show the raw email\",button:\"Raw\"},text_part:{title:\"Show the text part of the email\",button:\"Text\"},html_part:{title:\"Show the html part of the email\",button:\"HTML\"}}},bookmarks:{create:\"Create bookmark\",name:\"Name\",name_placeholder:\"Name the bookmark to help jog your memory\",set_reminder:\"Set a reminder\",actions:{delete_bookmark:{name:\"Delete bookmark\",description:\"Removes the bookmark from your profile and stops all reminders for the bookmark\"}}}},category:{can:\"can&hellip; \",none:\"(no category)\",all:\"All categories\",choose:\"category&hellip;\",edit:\"Edit\",edit_dialog_title:\"Edit: %{categoryName}\",view:\"View Topics in Category\",general:\"General\",settings:\"Settings\",topic_template:\"Topic Template\",tags:\"Tags\",tags_allowed_tags:\"Restrict these tags to this category:\",tags_allowed_tag_groups:\"Restrict these tag groups to this category:\",tags_placeholder:\"(Optional) list of allowed tags\",tags_tab_description:\"Tags and tag groups specified above will only be available in this category and other categories that also specify them. They won't be available for use in other categories.\",tag_groups_placeholder:\"(Optional) list of allowed tag groups\",manage_tag_groups_link:\"Manage tag groups here.\",allow_global_tags_label:\"Also allow other tags\",tag_group_selector_placeholder:\"(Optional) Tag group\",required_tag_group_description:\"Require new topics to have tags from a tag group:\",min_tags_from_required_group_label:\"Num Tags:\",required_tag_group_label:\"Tag group:\",topic_featured_link_allowed:\"Allow featured links in this category\",delete:\"Delete Category\",create:\"New Category\",create_long:\"Create a new category\",save:\"Save Category\",slug:\"Category Slug\",slug_placeholder:\"(Optional) dashed-words for url\",creation_error:\"There has been an error during the creation of the category.\",save_error:\"There was an error saving the category.\",name:\"Category Name\",description:\"Description\",topic:\"category topic\",logo:\"Category Logo Image\",background_image:\"Category Background Image\",badge_colors:\"Badge colors\",background_color:\"Background color\",foreground_color:\"Foreground color\",name_placeholder:\"One or two words maximum\",color_placeholder:\"Any web color\",delete_confirm:\"Are you sure you want to delete this category?\",delete_error:\"There was an error deleting the category.\",list:\"List Categories\",no_description:\"Please add a description for this category.\",change_in_category_topic:\"Edit Description\",already_used:\"This color has been used by another category\",security:\"Security\",special_warning:\"Warning: This category is a pre-seeded category and the security settings cannot be edited. If you do not wish to use this category, delete it instead of repurposing it.\",uncategorized_security_warning:\"This category is special. It is intended as holding area for topics that have no category; it cannot have security settings.\",uncategorized_general_warning:'This category is special. It is used as the default category for new topics that do not have a category selected. If you want to prevent this behavior and force category selection, <a href=\"%{settingLink}\">please disable the setting here</a>. If you want to change the name or description, go to <a href=\"%{customizeLink}\">Customize / Text Content</a>.',pending_permission_change_alert:\"You haven't added %{group} to this category; click this button to add them.\",images:\"Images\",email_in:\"Custom incoming email address:\",email_in_allow_strangers:\"Accept emails from anonymous users with no accounts\",email_in_disabled:\"Posting new topics via email is disabled in the Site Settings. To enable posting new topics via email, \",email_in_disabled_click:'enable the \"email in\" setting.',mailinglist_mirror:\"Category mirrors a mailing list\",show_subcategory_list:\"Show subcategory list above topics in this category.\",num_featured_topics:\"Number of topics shown on the categories page:\",subcategory_num_featured_topics:\"Number of featured topics on parent category's page:\",all_topics_wiki:\"Make new topics wikis by default\",subcategory_list_style:\"Subcategory List Style:\",sort_order:\"Topic List Sort By:\",default_view:\"Default Topic List:\",default_top_period:\"Default Top Period:\",allow_badges_label:\"Allow badges to be awarded in this category\",edit_permissions:\"Edit Permissions\",reviewable_by_group:\"In addition to staff, posts and flags in this category can be also be reviewed by:\",review_group_name:\"group name\",require_topic_approval:\"Require moderator approval of all new topics\",require_reply_approval:\"Require moderator approval of all new replies\",this_year:\"this year\",position:\"Position on the categories page:\",default_position:\"Default Position\",position_disabled:\"Categories will be displayed in order of activity. To control the order of categories in lists, \",position_disabled_click:'enable the \"fixed category positions\" setting.',minimum_required_tags:\"Minimum number of tags required in a topic:\",parent:\"Parent Category\",num_auto_bump_daily:\"Number of open topics to automatically bump daily:\",navigate_to_first_post_after_read:\"Navigate to first post after topics are read\",notifications:{watching:{title:\"Watching\",description:\"You will automatically watch all topics in these categories. You will be notified of every new post in every topic, and a count of new replies will be shown.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new topics in this category but not replies to the topics.\"},tracking:{title:\"Tracking\",description:\"You will automatically track all topics in these categories. You will be notified if someone mentions your @name or replies to you, and a count of new replies will be shown.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted:{title:\"Muted\",description:\"You will never be notified of anything about new topics in these categories, and they will not appear in latest.\"}},search_priority:{label:\"Search Priority\",options:{normal:\"Normal\",ignore:\"Ignore\",very_low:\"Very Low\",low:\"Low\",high:\"High\",very_high:\"Very High\"}},sort_options:{default:\"default\",likes:\"Likes\",op_likes:\"Original Post Likes\",views:\"Views\",posts:\"Posts\",activity:\"Activity\",posters:\"Posters\",category:\"Category\",created:\"Created\"},sort_ascending:\"Ascending\",sort_descending:\"Descending\",subcategory_list_styles:{rows:\"Rows\",rows_with_featured_topics:\"Rows with featured topics\",boxes:\"Boxes\",boxes_with_featured_topics:\"Boxes with featured topics\"},settings_sections:{general:\"General\",moderation:\"Moderation\",appearance:\"Appearance\",email:\"Email\"}},flagging:{title:\"Thanks for helping to keep our community civil!\",action:\"Flag Post\",take_action:\"Take Action\",notify_action:\"Message\",official_warning:\"Official Warning\",delete_spammer:\"Delete Spammer\",yes_delete_spammer:\"Yes, Delete Spammer\",ip_address_missing:\"(N/A)\",hidden_email_address:\"(hidden)\",submit_tooltip:\"Submit the private flag\",take_action_tooltip:\"Reach the flag threshold immediately, rather than waiting for more community flags\",cant:\"Sorry, you can't flag this post at this time.\",notify_staff:\"Notify staff privately\",formatted_name:{off_topic:\"It's Off-Topic\",inappropriate:\"It's Inappropriate\",spam:\"It's Spam\"},custom_placeholder_notify_user:\"Be specific, be constructive, and always be kind.\",custom_placeholder_notify_moderators:\"Let us know specifically what you are concerned about, and provide relevant links and examples where possible.\",custom_message:{at_least:{one:\"enter at least %{count} character\",other:\"enter at least {{count}} characters\"},more:{one:\"%{count} to go...\",other:\"{{count}} to go...\"},left:{one:\"%{count} remaining\",other:\"{{count}} remaining\"}}},flagging_topic:{title:\"Thanks for helping to keep our community civil!\",action:\"Flag Topic\",notify_action:\"Message\"},topic_map:{title:\"Topic Summary\",participants_title:\"Frequent Posters\",links_title:\"Popular Links\",links_shown:\"show more links...\",clicks:{one:\"%{count} click\",other:\"%{count} clicks\"}},post_links:{about:\"expand more links for this post\",title:{one:\"%{count} more\",other:\"%{count} more\"}},topic_statuses:{warning:{help:\"This is an official warning.\"},bookmarked:{help:\"You bookmarked this topic\"},locked:{help:\"This topic is closed; it no longer accepts new replies\"},archived:{help:\"This topic is archived; it is frozen and cannot be changed\"},locked_and_archived:{help:\"This topic is closed and archived; it no longer accepts new replies and cannot be changed\"},unpinned:{title:\"Unpinned\",help:\"This topic is unpinned for you; it will display in regular order\"},pinned_globally:{title:\"Pinned Globally\",help:\"This topic is pinned globally; it will display at the top of latest and its category\"},pinned:{title:\"Pinned\",help:\"This topic is pinned for you; it will display at the top of its category\"},unlisted:{help:\"This topic is unlisted; it will not be displayed in topic lists, and can only be accessed via a direct link\"},personal_message:{title:\"This topic is a personal message\"},solved:{help:\"This topic has a solution\"}},posts:\"Posts\",posts_long:\"there are {{number}} posts in this topic\",original_post:\"Original Post\",views:\"Views\",views_lowercase:{one:\"view\",other:\"views\"},replies:\"Replies\",views_long:{one:\"this topic has been viewed %{count} time\",other:\"this topic has been viewed {{number}} times\"},activity:\"Activity\",likes:\"Likes\",likes_lowercase:{one:\"like\",other:\"likes\"},likes_long:\"there are {{number}} likes in this topic\",users:\"Users\",users_lowercase:{one:\"user\",other:\"users\"},category_title:\"Category\",history:\"History\",changed_by:\"by {{author}}\",raw_email:{title:\"Incoming Email\",not_available:\"Not available!\"},categories_list:\"Categories List\",filters:{with_topics:\"%{filter} topics\",with_category:\"%{filter} %{category} topics\",latest:{title:\"Latest\",title_with_count:{one:\"Latest (%{count})\",other:\"Latest ({{count}})\"},help:\"topics with recent posts\"},read:{title:\"Read\",help:\"topics you've read, in the order that you last read them\"},categories:{title:\"Categories\",title_in:\"Category - {{categoryName}}\",help:\"all topics grouped by category\"},unread:{title:\"Unread\",title_with_count:{one:\"Unread (%{count})\",other:\"Unread ({{count}})\"},help:\"topics you are currently watching or tracking with unread posts\",lower_title_with_count:{one:\"%{count} unread\",other:\"{{count}} unread\"}},new:{lower_title_with_count:{one:\"%{count} new\",other:\"{{count}} new\"},lower_title:\"new\",title:\"New\",title_with_count:{one:\"New (%{count})\",other:\"New ({{count}})\"},help:\"topics created in the last few days\"},posted:{title:\"My Posts\",help:\"topics you have posted in\"},bookmarks:{title:\"Bookmarks\",help:\"topics you have bookmarked\"},category:{title:\"{{categoryName}}\",title_with_count:{one:\"{{categoryName}} (%{count})\",other:\"{{categoryName}} ({{count}})\"},help:\"latest topics in the {{categoryName}} category\"},top:{title:\"Top\",help:\"the most active topics in the last year, month, week or day\",all:{title:\"All Time\"},yearly:{title:\"Yearly\"},quarterly:{title:\"Quarterly\"},monthly:{title:\"Monthly\"},weekly:{title:\"Weekly\"},daily:{title:\"Daily\"},all_time:\"All Time\",this_year:\"Year\",this_quarter:\"Quarter\",this_month:\"Month\",this_week:\"Week\",today:\"Today\",other_periods:\"see top\"}},browser_update:'Unfortunately, <a href=\"https://www.discourse.org/faq/#browser\">your browser is too old to work on this site</a>. Please <a href=\"https://browsehappy.com\">upgrade your browser</a>.',permission_types:{full:\"Create / Reply / See\",create_post:\"Reply / See\",readonly:\"See\"},lightbox:{download:\"download\",previous:\"Previous (Left arrow key)\",next:\"Next (Right arrow key)\",counter:\"%curr% of %total%\",close:\"Close (Esc)\",content_load_error:'<a href=\"%url%\">The content</a> could not be loaded.',image_load_error:'<a href=\"%url%\">The image</a> could not be loaded.'},keyboard_shortcuts_help:{shortcut_key_delimiter_comma:\", \",shortcut_key_delimiter_plus:\"+\",shortcut_delimiter_or:\"%{shortcut1} or %{shortcut2}\",shortcut_delimiter_slash:\"%{shortcut1}/%{shortcut2}\",shortcut_delimiter_space:\"%{shortcut1} %{shortcut2}\",title:\"Keyboard Shortcuts\",jump_to:{title:\"Jump To\",home:\"%{shortcut} Home\",latest:\"%{shortcut} Latest\",new:\"%{shortcut} New\",unread:\"%{shortcut} Unread\",categories:\"%{shortcut} Categories\",top:\"%{shortcut} Top\",bookmarks:\"%{shortcut} Bookmarks\",profile:\"%{shortcut} Profile\",messages:\"%{shortcut} Messages\",drafts:\"%{shortcut} Drafts\"},navigation:{title:\"Navigation\",jump:\"%{shortcut} Go to post #\",back:\"%{shortcut} Back\",up_down:\"%{shortcut} Move selection &uarr; &darr;\",open:\"%{shortcut} Open selected topic\",next_prev:\"%{shortcut} Next/previous section\",go_to_unread_post:\"%{shortcut} Go to the first unread post\"},application:{title:\"Application\",create:\"%{shortcut} Create a new topic\",notifications:\"%{shortcut} Open notifications\",hamburger_menu:\"%{shortcut} Open hamburger menu\",user_profile_menu:\"%{shortcut} Open user menu\",show_incoming_updated_topics:\"%{shortcut} Show updated topics\",search:\"%{shortcut} Search\",help:\"%{shortcut} Open keyboard help\",dismiss_new_posts:\"%{shortcut} Dismiss New/Posts\",dismiss_topics:\"%{shortcut} Dismiss Topics\",log_out:\"%{shortcut} Log Out\"},composing:{title:\"Composing\",return:\"%{shortcut} Return to composer\",fullscreen:\"%{shortcut} Fullscreen composer\"},actions:{title:\"Actions\",bookmark_topic:\"%{shortcut} Toggle bookmark topic\",pin_unpin_topic:\"%{shortcut} Pin/Unpin topic\",share_topic:\"%{shortcut} Share topic\",share_post:\"%{shortcut} Share post\",reply_as_new_topic:\"%{shortcut} Reply as linked topic\",reply_topic:\"%{shortcut} Reply to topic\",reply_post:\"%{shortcut} Reply to post\",quote_post:\"%{shortcut} Quote post\",like:\"%{shortcut} Like post\",flag:\"%{shortcut} Flag post\",bookmark:\"%{shortcut} Bookmark post\",edit:\"%{shortcut} Edit post\",delete:\"%{shortcut} Delete post\",mark_muted:\"%{shortcut} Mute topic\",mark_regular:\"%{shortcut} Regular (default) topic\",mark_tracking:\"%{shortcut} Track topic\",mark_watching:\"%{shortcut} Watch topic\",print:\"%{shortcut} Print topic\",defer:\"%{shortcut} Defer topic\",topic_admin_actions:\"%{shortcut} Open topic admin actions\"}},badges:{earned_n_times:{one:\"Earned this badge %{count} time\",other:\"Earned this badge %{count} times\"},granted_on:\"Granted %{date}\",others_count:\"Others with this badge (%{count})\",title:\"Badges\",allow_title:\"You can use this badge as a title\",multiple_grant:\"You can earn this multiple times\",badge_count:{one:\"%{count} Badge\",other:\"%{count} Badges\"},more_badges:{one:\"+%{count} More\",other:\"+%{count} More\"},granted:{one:\"%{count} granted\",other:\"%{count} granted\"},select_badge_for_title:\"Select a badge to use as your title\",none:\"(none)\",successfully_granted:\"Successfully granted %{badge} to %{username}\",badge_grouping:{getting_started:{name:\"Getting Started\"},community:{name:\"Community\"},trust_level:{name:\"Trust Level\"},other:{name:\"Other\"},posting:{name:\"Posting\"}}},tagging:{all_tags:\"All Tags\",other_tags:\"Other Tags\",selector_all_tags:\"all tags\",selector_no_tags:\"no tags\",changed:\"tags changed:\",tags:\"Tags\",choose_for_topic:\"optional tags\",info:\"Info\",default_info:\"This tag isn't restricted to any categories, and has no synonyms.\",category_restricted:\"This tag is restricted to categories you don't have permission to access.\",synonyms:\"Synonyms\",synonyms_description:\"When the following tags are used, they will be replaced with <b>%{base_tag_name}</b>.\",tag_groups_info:{one:'This tag belongs to the group \"{{tag_groups}}\".',other:\"This tag belongs to these groups: {{tag_groups}}.\"},category_restrictions:{one:\"It can only be used in this category:\",other:\"It can only be used in these categories:\"},edit_synonyms:\"Manage Synonyms\",add_synonyms_label:\"Add synonyms:\",add_synonyms:\"Add\",add_synonyms_explanation:{one:\"Any place that currently uses this tag will be changed to use <b>%{tag_name}</b> instead. Are you sure you want to make this change?\",other:\"Any place that currently uses these tags will be changed to use <b>%{tag_name}</b> instead. Are you sure you want to make this change?\"},add_synonyms_failed:\"The following tags couldn't be added as synonyms: <b>%{tag_names}</b>. Ensure they don't have synonyms and aren't synonyms of another tag.\",remove_synonym:\"Remove Synonym\",delete_synonym_confirm:'Are you sure you want to delete the synonym \"%{tag_name}\"?',delete_tag:\"Delete Tag\",delete_confirm:{one:\"Are you sure you want to delete this tag and remove it from %{count} topic it is assigned to?\",other:\"Are you sure you want to delete this tag and remove it from {{count}} topics it is assigned to?\"},delete_confirm_no_topics:\"Are you sure you want to delete this tag?\",delete_confirm_synonyms:{one:\"Its synonym will also be deleted.\",other:\"Its {{count}} synonyms will also be deleted.\"},rename_tag:\"Rename Tag\",rename_instructions:\"Choose a new name for the tag:\",sort_by:\"Sort by:\",sort_by_count:\"count\",sort_by_name:\"name\",manage_groups:\"Manage Tag Groups\",manage_groups_description:\"Define groups to organize tags\",upload:\"Upload Tags\",upload_description:\"Upload a csv file to create tags in bulk\",upload_instructions:\"One per line, optionally with a tag group in the format 'tag_name,tag_group'.\",upload_successful:\"Tags uploaded successfully\",delete_unused_confirmation:{one:\"%{count} tag will be deleted: %{tags}\",other:\"%{count} tags will be deleted: %{tags}\"},delete_unused_confirmation_more_tags:{one:\"%{tags} and %{count} more\",other:\"%{tags} and %{count} more\"},delete_unused:\"Delete Unused Tags\",delete_unused_description:\"Delete all tags which are not attached to any topics or personal messages\",cancel_delete_unused:\"Cancel\",filters:{without_category:\"%{filter} %{tag} topics\",with_category:\"%{filter} %{tag} topics in %{category}\",untagged_without_category:\"%{filter} untagged topics\",untagged_with_category:\"%{filter} untagged topics in %{category}\"},notifications:{watching:{title:\"Watching\",description:\"You will automatically watch all topics with this tag. You will be notified of all new posts and topics, plus the count of unread and new posts will also appear next to the topic.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new topics in this tag but not replies to the topics.\"},tracking:{title:\"Tracking\",description:\"You will automatically track all topics with this tag. A count of unread and new posts will appear next to the topic.\"},regular:{title:\"Regular\",description:\"You will be notified if someone mentions your @name or replies to your post.\"},muted:{title:\"Muted\",description:\"You will not be notified of anything about new topics with this tag, and they will not appear on your unread tab.\"}},groups:{title:\"Tag Groups\",about:\"Add tags to groups to manage them more easily.\",new:\"New Group\",tags_label:\"Tags in this group:\",tags_placeholder:\"tags\",parent_tag_label:\"Parent tag:\",parent_tag_placeholder:\"Optional\",parent_tag_description:\"Tags from this group can't be used unless the parent tag is present.\",one_per_topic_label:\"Limit one tag per topic from this group\",new_name:\"New Tag Group\",name_placeholder:\"Tag Group Name\",save:\"Save\",delete:\"Delete\",confirm_delete:\"Are you sure you want to delete this tag group?\",everyone_can_use:\"Tags can be used by everyone\",usable_only_by_staff:\"Tags are visible to everyone, but only staff can use them\",visible_only_to_staff:\"Tags are visible only to staff\"},topics:{none:{unread:\"You have no unread topics.\",new:\"You have no new topics.\",read:\"You haven't read any topics yet.\",posted:\"You haven't posted in any topics yet.\",latest:\"There are no latest topics.\",bookmarks:\"You have no bookmarked topics yet.\",top:\"There are no top topics.\"},bottom:{latest:\"There are no more latest topics.\",posted:\"There are no more posted topics.\",read:\"There are no more read topics.\",new:\"There are no more new topics.\",unread:\"There are no more unread topics.\",top:\"There are no more top topics.\",bookmarks:\"There are no more bookmarked topics.\"}}},invite:{custom_message:\"Make your invite a little bit more personal by writing a <a href>custom message</a>.\",custom_message_placeholder:\"Enter your custom message\",custom_message_template_forum:\"Hey, you should join this forum!\",custom_message_template_topic:\"Hey, I thought you might enjoy this topic!\"},forced_anonymous:\"Due to extreme load, this is temporarily being shown to everyone as a logged out user would see it.\",safe_mode:{enabled:\"Safe mode is enabled, to exit safe mode close this browser window\"},details:{title:\"Hide Details\"},discourse_internet_explorer:{deprecation_warning:\"This site will soon remove support for Internet Explorer 11 - please update your browser\"},discourse_local_dates:{relative_dates:{today:\"Today %{time}\",tomorrow:\"Tomorrow %{time}\",yesterday:\"Yesterday %{time}\",countdown:{passed:\"date has passed\"}},title:\"Insert date / time\",create:{form:{insert:\"Insert\",advanced_mode:\"Advanced mode\",simple_mode:\"Simple mode\",format_description:'Format used to display the date to the user. Use \"\\\\T\\\\Z\" to display the user timezone in words (Europe/Paris)',timezones_title:\"Timezones to display\",timezones_description:\"Timezones will be used to display dates in preview and fallback.\",recurring_title:\"Recurrence\",recurring_description:\"Define the recurrence of an event. You can also manually edit the recurring option generated by the form and use one of the following keys: years, quarters, months, weeks, days, hours, minutes, seconds, milliseconds.\",recurring_none:\"No recurrence\",invalid_date:\"Invalid date, make sure date and time are correct\",date_title:\"Date\",time_title:\"Time\",format_title:\"Date format\",timezone:\"Timezone\",until:\"Until...\",recurring:{every_day:\"Every day\",every_week:\"Every week\",every_two_weeks:\"Every two weeks\",every_month:\"Every month\",every_two_months:\"Every two months\",every_three_months:\"Every three months\",every_six_months:\"Every six months\",every_year:\"Every year\"}}}},discourse_narrative_bot:{welcome_post_type:{new_user_track:\"Start the new user tutorial for all new users\",welcome_message:\"Send all new users a welcome message with a quick start guide\"}},presence:{replying:\"replying\",editing:\"editing\",replying_to_topic:{one:\"replying\",other:\"replying\"}},poll:{voters:{one:\"voter\",other:\"voters\"},total_votes:{one:\"total vote\",other:\"total votes\"},average_rating:\"Average rating: <strong>%{average}</strong>.\",public:{title:\"Votes are <strong>public</strong>.\"},results:{groups:{title:\"You need to be a member of %{groups} to vote in this poll.\"},vote:{title:\"Results will be shown on <strong>vote</strong>.\"},closed:{title:\"Results will be shown once <strong>closed</strong>.\"},staff:{title:\"Results are only shown to <strong>staff</strong> members.\"}},multiple:{help:{at_least_min_options:{one:\"Choose at least <strong>%{count}</strong> option\",other:\"Choose at least <strong>%{count}</strong> options\"},up_to_max_options:{one:\"Choose up to <strong>%{count}</strong> option\",other:\"Choose up to <strong>%{count}</strong> options\"},x_options:{one:\"Choose <strong>%{count}</strong> option\",other:\"Choose <strong>%{count}</strong> options\"},between_min_and_max_options:\"Choose between <strong>%{min}</strong> and <strong>%{max}</strong> options\"}},\"cast-votes\":{title:\"Cast your votes\",label:\"Vote now!\"},\"show-results\":{title:\"Display the poll results\",label:\"Show results\"},\"hide-results\":{title:\"Back to your votes\",label:\"Show vote\"},\"group-results\":{title:\"Group votes by user field\",label:\"Show breakdown\"},\"ungroup-results\":{title:\"Combine all votes\",label:\"Hide breakdown\"},\"export-results\":{title:\"Export the poll results\",label:\"Export\"},open:{title:\"Open the poll\",label:\"Open\",confirm:\"Are you sure you want to open this poll?\"},close:{title:\"Close the poll\",label:\"Close\",confirm:\"Are you sure you want to close this poll?\"},automatic_close:{closes_in:\"Closes in <strong>%{timeLeft}</strong>.\",age:\"Closed <strong>%{age}</strong>\"},error_while_toggling_status:\"Sorry, there was an error toggling the status of this poll.\",error_while_casting_votes:\"Sorry, there was an error casting your votes.\",error_while_fetching_voters:\"Sorry, there was an error displaying the voters.\",error_while_exporting_results:\"Sorry, there was an error exporting poll results.\",ui_builder:{title:\"Build Poll\",insert:\"Insert Poll\",help:{options_count:\"Enter at least 1 option\",invalid_values:\"Minimum value must be smaller than the maximum value.\",min_step_value:\"The minimum step value is 1\"},poll_type:{label:\"Type\",regular:\"Single Choice\",multiple:\"Multiple Choice\",number:\"Number Rating\"},poll_result:{label:\"Results\",always:\"Always visible\",vote:\"On vote\",closed:\"When closed\",staff:\"Staff only\"},poll_groups:{label:\"Allowed groups\"},poll_chart_type:{label:\"Chart type\"},poll_config:{max:\"Max\",min:\"Min\",step:\"Step\"},poll_public:{label:\"Show who voted\"},poll_options:{label:\"Enter one poll option per line\"},automatic_close:{label:\"Automatically close poll\"}}},saved_searches:{title:\"Saved Searches\",description:\"Save up to %{max} searches and receive notifications about new search results.\"},solved:{title:\"Solved\",allow_accepted_answers:\"Allow topic owner and staff to mark a reply as the solution\",accept_answer:\"Select if this reply solves the problem\",accepted_description:\"This is the accepted solution to this topic\",has_no_accepted_answer:\"This topic has no solution\",unaccept_answer:\"Unselect if this reply no longer solves the problem\",accepted_answer:\"Solution\",solution:\"Solution\",solution_summary:{one:\"solution\",other:\"solutions\"},accepted_html:\"{{icon}} Solved <span class='by'>by <a href data-user-card='{{username_lower}}'>{{username}}</a></span> in <a href='{{post_path}}' class='back'>post #{{post_number}}</a>\",accepted_notification:\"<p><span>{{username}}</span> {{description}}</p>\",topic_status_filter:{all:\"all\",solved:\"solved\",unsolved:\"unsolved\"}},admin:{web_hooks:{solved_event:{name:\"Solved Event\",details:\"When a user marks a post as the accepted or unaccepted answer.\"}}}}}},I18n.locale=\"en_US\",function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){\"use strict\";var e,i;function h(){return e.apply(null,arguments)}function s(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function l(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function r(e){return void 0===e}function c(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function n(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function u(e,t){for(var o=[],a=0;a<e.length;++a)o.push(t(e[a],a));return o}function p(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function d(e,t){for(var o in t)p(t,o)&&(e[o]=t[o]);return p(t,\"toString\")&&(e.toString=t.toString),p(t,\"valueOf\")&&(e.valueOf=t.valueOf),e}function m(e,t,o,a){return Pt(e,t,o,a,!0).utc()}function _(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var t=_(e),o=i.call(t.parsedDateParts,function(e){return null!=e}),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&o);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function g(e){var t=m(NaN);return null!=e?d(_(t),e):_(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),o=t.length>>>0,a=0;a<o;a++)if(a in t&&e.call(this,t[a],a,t))return!0;return!1};var y=h.momentProperties=[];function w(e,t){var o,a,i;if(r(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),r(t._i)||(e._i=t._i),r(t._f)||(e._f=t._f),r(t._l)||(e._l=t._l),r(t._strict)||(e._strict=t._strict),r(t._tzm)||(e._tzm=t._tzm),r(t._isUTC)||(e._isUTC=t._isUTC),r(t._offset)||(e._offset=t._offset),r(t._pf)||(e._pf=_(t)),r(t._locale)||(e._locale=t._locale),0<y.length)for(o=0;o<y.length;o++)r(i=t[a=y[o]])||(e[a]=i);return e}var t=!1;function b(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,h.updateOffset(this),t=!1)}function v(e){return e instanceof b||null!=e&&null!=e._isAMomentObject}function A(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,o=0;return 0!=t&&isFinite(t)&&(o=A(t)),o}function M(e,t,o){for(var a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),r=0,n=0;n<a;n++)(o&&e[n]!==t[n]||!o&&k(e[n])!==k(t[n]))&&r++;return r+i}function T(e){!1===h.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+e)}function o(i,r){var n=!0;return d(function(){if(null!=h.deprecationHandler&&h.deprecationHandler(null,i),n){for(var e,t=[],o=0;o<arguments.length;o++){if(e=\"\",\"object\"==typeof arguments[o]){for(var a in e+=\"\\n[\"+o+\"] \",arguments[0])e+=a+\": \"+arguments[0][a]+\", \";e=e.slice(0,-2)}else e=arguments[o];t.push(e)}T(i+\"\\nArguments: \"+Array.prototype.slice.call(t).join(\"\")+\"\\n\"+(new Error).stack),n=!1}return r.apply(this,arguments)},r)}var a,S={};function P(e,t){null!=h.deprecationHandler&&h.deprecationHandler(e,t),S[e]||(T(t),S[e]=!0)}function E(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function Y(e,t){var o,a=d({},e);for(o in t)p(t,o)&&(l(e[o])&&l(t[o])?(a[o]={},d(a[o],e[o]),d(a[o],t[o])):null!=t[o]?a[o]=t[o]:delete a[o]);for(o in e)p(e,o)&&!p(t,o)&&l(e[o])&&(a[o]=d({},a[o]));return a}function D(e){null!=e&&this.set(e)}h.suppressDeprecationWarnings=!1,h.deprecationHandler=null,a=Object.keys?Object.keys:function(e){var t,o=[];for(t in e)p(e,t)&&o.push(t);return o};var N={};function O(e,t){var o=e.toLowerCase();N[o]=N[o+\"s\"]=N[t]=e}function C(e){return\"string\"==typeof e?N[e]||N[e.toLowerCase()]:void 0}function L(e){var t,o,a={};for(o in e)p(e,o)&&(t=C(o))&&(a[t]=e[o]);return a}var z={};function x(e,t){z[e]=t}function R(e,t,o){var a=\"\"+Math.abs(e),i=t-a.length;return(0<=e?o?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,i)).toString().substr(1)+a}var F=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},U={};function B(e,t,o,a){var i=\"string\"==typeof a?function(){return this[a]()}:a;e&&(U[e]=i),t&&(U[t[0]]=function(){return R(i.apply(this,arguments),t[1],t[2])}),o&&(U[o]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function q(e,t){return e.isValid()?(t=G(t,e.localeData()),W[t]=W[t]||function(a){for(var e,i=a.match(F),t=0,r=i.length;t<r;t++)U[i[t]]?i[t]=U[i[t]]:i[t]=(e=i[t]).match(/\\[[\\s\\S]/)?e.replace(/^\\[|\\]$/g,\"\"):e.replace(/\\\\/g,\"\");return function(e){for(var t=\"\",o=0;o<r;o++)t+=E(i[o])?i[o].call(e,a):i[o];return t}}(t),W[t](e)):e.localeData().invalidDate()}function G(e,t){var o=5;function a(e){return t.longDateFormat(e)||e}for(I.lastIndex=0;0<=o&&I.test(e);)e=e.replace(I,a),I.lastIndex=0,--o;return e}var H=/\\d/,j=/\\d\\d/,V=/\\d{3}/,K=/\\d{4}/,X=/[+-]?\\d{6}/,Z=/\\d\\d?/,J=/\\d\\d\\d\\d?/,Q=/\\d\\d\\d\\d\\d\\d?/,$=/\\d{1,3}/,ee=/\\d{1,4}/,te=/[+-]?\\d{1,6}/,oe=/\\d+/,ae=/[+-]?\\d+/,ie=/Z|[+-]\\d\\d:?\\d\\d/gi,re=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,ne=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,se={};function le(e,o,a){se[e]=E(o)?o:function(e,t){return e&&a?a:o}}function ce(e,t){return p(se,e)?se[e](t._strict,t._locale):new RegExp(ue(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,t,o,a,i){return t||o||a||i})))}function ue(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var de={};function he(e,o){var t,a=o;for(\"string\"==typeof e&&(e=[e]),c(o)&&(a=function(e,t){t[o]=k(e)}),t=0;t<e.length;t++)de[e[t]]=a}function pe(e,i){he(e,function(e,t,o,a){o._w=o._w||{},i(e,o._w,o,a)})}var me=0,_e=1,fe=2,ge=3,ye=4,we=5,be=6,ve=7,Ae=8;function ke(e){return Me(e)?366:365}function Me(e){return e%4==0&&e%100!=0||e%400==0}B(\"Y\",0,0,function(){var e=this.year();return e<=9999?\"\"+e:\"+\"+e}),B(0,[\"YY\",2],0,function(){return this.year()%100}),B(0,[\"YYYY\",4],0,\"year\"),B(0,[\"YYYYY\",5],0,\"year\"),B(0,[\"YYYYYY\",6,!0],0,\"year\"),O(\"year\",\"y\"),x(\"year\",1),le(\"Y\",ae),le(\"YY\",Z,j),le(\"YYYY\",ee,K),le(\"YYYYY\",te,X),le(\"YYYYYY\",te,X),he([\"YYYYY\",\"YYYYYY\"],me),he(\"YYYY\",function(e,t){t[me]=2===e.length?h.parseTwoDigitYear(e):k(e)}),he(\"YY\",function(e,t){t[me]=h.parseTwoDigitYear(e)}),he(\"Y\",function(e,t){t[me]=parseInt(e,10)}),h.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Te,Se=Pe(\"FullYear\",!0);function Pe(t,o){return function(e){return null!=e?(Ye(this,t,e),h.updateOffset(this,o),this):Ee(this,t)}}function Ee(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function Ye(e,t,o){e.isValid()&&!isNaN(o)&&(\"FullYear\"===t&&Me(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o,e.month(),De(o,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o))}function De(e,t){if(isNaN(e)||isNaN(t))return NaN;var o,a=(t%(o=12)+o)%o;return e+=(t-a)/12,1==a?Me(e)?29:28:31-a%7%2}Te=Array.prototype.indexOf?Array.prototype.indexOf:function(e){for(var t=0;t<this.length;++t)if(this[t]===e)return t;return-1},B(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),B(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),B(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),O(\"month\",\"M\"),x(\"month\",8),le(\"M\",Z),le(\"MM\",Z,j),le(\"MMM\",function(e,t){return t.monthsShortRegex(e)}),le(\"MMMM\",function(e,t){return t.monthsRegex(e)}),he([\"M\",\"MM\"],function(e,t){t[_e]=k(e)-1}),he([\"MMM\",\"MMMM\"],function(e,t,o,a){var i=o._locale.monthsParse(e,a,o._strict);null!=i?t[_e]=i:_(o).invalidMonth=e});var Ne=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,Oe=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");var Ce=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function Le(e,t){var o;if(!e.isValid())return e;if(\"string\"==typeof t)if(/^\\d+$/.test(t))t=k(t);else if(!c(t=e.localeData().monthsParse(t)))return e;return o=Math.min(e.date(),De(e.year(),t)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](t,o),e}function ze(e){return null!=e?(Le(this,e),h.updateOffset(this,!0),this):Ee(this,\"Month\")}var xe=ne;var Re=ne;function Fe(){function e(e,t){return t.length-e.length}for(var t,o=[],a=[],i=[],r=0;r<12;r++)t=m([2e3,r]),o.push(this.monthsShort(t,\"\")),a.push(this.months(t,\"\")),i.push(this.months(t,\"\")),i.push(this.monthsShort(t,\"\"));for(o.sort(e),a.sort(e),i.sort(e),r=0;r<12;r++)o[r]=ue(o[r]),a[r]=ue(a[r]);for(r=0;r<24;r++)i[r]=ue(i[r]);this._monthsRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\")}function Ie(e){var t,o;return e<100&&0<=e?((o=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,o)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function We(e,t,o){var a=7+t-o;return a-(7+Ie(e,0,a).getUTCDay()-t)%7-1}function Ue(e,t,o,a,i){var r,n=1+7*(t-1)+(7+o-a)%7+We(e,a,i),s=n<=0?ke(r=e-1)+n:n>ke(e)?(r=e+1,n-ke(e)):(r=e,n);return{year:r,dayOfYear:s}}function Be(e,t,o){var a,i,r=We(e.year(),t,o),n=Math.floor((e.dayOfYear()-r-1)/7)+1;return n<1?a=n+qe(i=e.year()-1,t,o):n>qe(e.year(),t,o)?(a=n-qe(e.year(),t,o),i=e.year()+1):(i=e.year(),a=n),{week:a,year:i}}function qe(e,t,o){var a=We(e,t,o),i=We(e+1,t,o);return(ke(e)-a+i)/7}B(\"w\",[\"ww\",2],\"wo\",\"week\"),B(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),O(\"week\",\"w\"),O(\"isoWeek\",\"W\"),x(\"week\",5),x(\"isoWeek\",5),le(\"w\",Z),le(\"ww\",Z,j),le(\"W\",Z),le(\"WW\",Z,j),pe([\"w\",\"ww\",\"W\",\"WW\"],function(e,t,o,a){t[a.substr(0,1)]=k(e)});function Ge(e,t){return e.slice(t,7).concat(e.slice(0,t))}B(\"d\",0,\"do\",\"day\"),B(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),B(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),B(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),B(\"e\",0,0,\"weekday\"),B(\"E\",0,0,\"isoWeekday\"),O(\"day\",\"d\"),O(\"weekday\",\"e\"),O(\"isoWeekday\",\"E\"),x(\"day\",11),x(\"weekday\",11),x(\"isoWeekday\",11),le(\"d\",Z),le(\"e\",Z),le(\"E\",Z),le(\"dd\",function(e,t){return t.weekdaysMinRegex(e)}),le(\"ddd\",function(e,t){return t.weekdaysShortRegex(e)}),le(\"dddd\",function(e,t){return t.weekdaysRegex(e)}),pe([\"dd\",\"ddd\",\"dddd\"],function(e,t,o,a){var i=o._locale.weekdaysParse(e,a,o._strict);null!=i?t.d=i:_(o).invalidWeekday=e}),pe([\"d\",\"e\",\"E\"],function(e,t,o,a){t[a]=k(e)});var He=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");var je=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");var Ve=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");var Ke=ne;var Xe=ne;var Ze=ne;function Je(){function e(e,t){return t.length-e.length}for(var t,o,a,i,r=[],n=[],s=[],l=[],c=0;c<7;c++)t=m([2e3,1]).day(c),o=this.weekdaysMin(t,\"\"),a=this.weekdaysShort(t,\"\"),i=this.weekdays(t,\"\"),r.push(o),n.push(a),s.push(i),l.push(o),l.push(a),l.push(i);for(r.sort(e),n.sort(e),s.sort(e),l.sort(e),c=0;c<7;c++)n[c]=ue(n[c]),s[c]=ue(s[c]),l[c]=ue(l[c]);this._weekdaysRegex=new RegExp(\"^(\"+l.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+s.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+r.join(\"|\")+\")\",\"i\")}function Qe(){return this.hours()%12||12}function $e(e,t){B(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}B(\"H\",[\"HH\",2],0,\"hour\"),B(\"h\",[\"hh\",2],0,Qe),B(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),B(\"hmm\",0,0,function(){return\"\"+Qe.apply(this)+R(this.minutes(),2)}),B(\"hmmss\",0,0,function(){return\"\"+Qe.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),B(\"Hmm\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)}),B(\"Hmmss\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),$e(\"a\",!0),$e(\"A\",!1),O(\"hour\",\"h\"),x(\"hour\",13),le(\"a\",et),le(\"A\",et),le(\"H\",Z),le(\"h\",Z),le(\"k\",Z),le(\"HH\",Z,j),le(\"hh\",Z,j),le(\"kk\",Z,j),le(\"hmm\",J),le(\"hmmss\",Q),le(\"Hmm\",J),le(\"Hmmss\",Q),he([\"H\",\"HH\"],ge),he([\"k\",\"kk\"],function(e,t,o){var a=k(e);t[ge]=24===a?0:a}),he([\"a\",\"A\"],function(e,t,o){o._isPm=o._locale.isPM(e),o._meridiem=e}),he([\"h\",\"hh\"],function(e,t,o){t[ge]=k(e),_(o).bigHour=!0}),he(\"hmm\",function(e,t,o){var a=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a)),_(o).bigHour=!0}),he(\"hmmss\",function(e,t,o){var a=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a,2)),t[we]=k(e.substr(i)),_(o).bigHour=!0}),he(\"Hmm\",function(e,t,o){var a=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a))}),he(\"Hmmss\",function(e,t,o){var a=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a,2)),t[we]=k(e.substr(i))});var tt,ot=Pe(\"Hours\",!0),at={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:/\\d{1,2}/,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:Oe,monthsShort:Ce,week:{dow:0,doy:6},weekdays:He,weekdaysMin:Ve,weekdaysShort:je,meridiemParse:/[ap]\\.?m?\\.?/i},it={},rt={};function nt(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function st(e){var t=null;if(!it[e]&&\"undefined\"!=typeof module&&module&&module.exports)try{t=tt._abbr;require(\"./locale/\"+e),lt(t)}catch(e){}return it[e]}function lt(e,t){var o;return e&&((o=r(t)?ut(e):ct(e,t))?tt=o:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),tt._abbr}function ct(e,t){if(null===t)return delete it[e],null;var o,a=at;if(t.abbr=e,null!=it[e])P(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),a=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])a=it[t.parentLocale]._config;else{if(null==(o=st(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;a=o._config}return it[e]=new D(Y(a,t)),rt[e]&&rt[e].forEach(function(e){ct(e.name,e.config)}),lt(e),it[e]}function ut(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!s(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,o,a,i,r=0;r<e.length;){for(t=(i=nt(e[r]).split(\"-\")).length,o=(o=nt(e[r+1]))?o.split(\"-\"):null;0<t;){if(a=st(i.slice(0,t).join(\"-\")))return a;if(o&&o.length>=t&&M(i,o,!0)>=t-1)break;t--}r++}return tt}(e)}function dt(e){var t,o=e._a;return o&&-2===_(e).overflow&&(t=o[_e]<0||11<o[_e]?_e:o[fe]<1||o[fe]>De(o[me],o[_e])?fe:o[ge]<0||24<o[ge]||24===o[ge]&&(0!==o[ye]||0!==o[we]||0!==o[be])?ge:o[ye]<0||59<o[ye]?ye:o[we]<0||59<o[we]?we:o[be]<0||999<o[be]?be:-1,_(e)._overflowDayOfYear&&(t<me||fe<t)&&(t=fe),_(e)._overflowWeeks&&-1===t&&(t=ve),_(e)._overflowWeekday&&-1===t&&(t=Ae),_(e).overflow=t),e}function ht(e,t,o){return null!=e?e:null!=t?t:o}function pt(e){var t,o,a,i,r,n,s,l=[];if(!e._d){for(n=e,s=new Date(h.now()),a=n._useUTC?[s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()]:[s.getFullYear(),s.getMonth(),s.getDate()],e._w&&null==e._a[fe]&&null==e._a[_e]&&function(e){var t,o,a,i,r,n,s,l;{var c;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,n=4,o=ht(t.GG,e._a[me],Be(Et(),1,4).year),a=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(l=!0)):(r=e._locale._week.dow,n=e._locale._week.doy,c=Be(Et(),r,n),o=ht(t.gg,e._a[me],c.year),a=ht(t.w,c.week),null!=t.d?((i=t.d)<0||6<i)&&(l=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(l=!0)):i=r)}a<1||a>qe(o,r,n)?_(e)._overflowWeeks=!0:null!=l?_(e)._overflowWeekday=!0:(s=Ue(o,a,i,r,n),e._a[me]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],a[me]),(e._dayOfYear>ke(r)||0===e._dayOfYear)&&(_(e)._overflowDayOfYear=!0),o=Ie(r,0,e._dayOfYear),e._a[_e]=o.getUTCMonth(),e._a[fe]=o.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=l[t]=a[t];for(;t<7;t++)e._a[t]=l[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[ye]&&0===e._a[we]&&0===e._a[be]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ie:function(e,t,o,a,i,r,n){var s;return e<100&&0<=e?(s=new Date(e+400,t,o,a,i,r,n),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,o,a,i,r,n),s}).apply(null,l),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(_(e).weekdayMismatch=!0)}}var mt=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,_t=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,ft=/Z|[+-]\\d\\d(?::?\\d\\d)?/,gt=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],yt=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],wt=/^\\/?Date\\((\\-?\\d+)/i;function bt(e){var t,o,a,i,r,n,s=e._i,l=mt.exec(s)||_t.exec(s);if(l){for(_(e).iso=!0,t=0,o=gt.length;t<o;t++)if(gt[t][1].exec(l[1])){i=gt[t][0],a=!1!==gt[t][2];break}if(null==i)return void(e._isValid=!1);if(l[3]){for(t=0,o=yt.length;t<o;t++)if(yt[t][1].exec(l[3])){r=(l[2]||\" \")+yt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!a&&null!=r)return void(e._isValid=!1);if(l[4]){if(!ft.exec(l[4]))return void(e._isValid=!1);n=\"Z\"}e._f=i+(r||\"\")+(n||\"\"),Tt(e)}else e._isValid=!1}var vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function At(e,t,o,a,i,r){var n=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Ce.indexOf(t),parseInt(o,10),parseInt(a,10),parseInt(i,10)];return r&&n.push(parseInt(r,10)),n}var kt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,o,a,i=vt.exec(e._i.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\"));if(i){var r=At(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],o=r,a=e,t&&je.indexOf(t)!==new Date(o[0],o[1],o[2]).getDay()&&(_(a).weekdayMismatch=!0,!void(a._isValid=!1)))return;e._a=r,e._tzm=function(e,t,o){if(e)return kt[e];if(t)return 0;var a=parseInt(o,10),i=a%100;return 60*((a-i)/100)+i}(i[8],i[9],i[10]),e._d=Ie.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),_(e).rfc2822=!0}else e._isValid=!1}function Tt(e){if(e._f!==h.ISO_8601)if(e._f!==h.RFC_2822){e._a=[],_(e).empty=!0;for(var t,o,a,i,r,n,s=\"\"+e._i,l=s.length,c=0,u=G(e._f,e._locale).match(F)||[],d=0;d<u.length;d++)o=u[d],(t=(s.match(ce(o,e))||[])[0])&&(0<(a=s.substr(0,s.indexOf(t))).length&&_(e).unusedInput.push(a),s=s.slice(s.indexOf(t)+t.length),c+=t.length),U[o]?(t?_(e).empty=!1:_(e).unusedTokens.push(o),i=o,n=e,null!=(r=t)&&p(de,i)&&de[i](r,n._a,n,i)):e._strict&&!t&&_(e).unusedTokens.push(o);_(e).charsLeftOver=l-c,0<s.length&&_(e).unusedInput.push(s),e._a[ge]<=12&&!0===_(e).bigHour&&0<e._a[ge]&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[ge]=function(e,t,o){var a;if(null==o)return t;return null!=e.meridiemHour?e.meridiemHour(t,o):(null!=e.isPM&&((a=e.isPM(o))&&t<12&&(t+=12),a||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),pt(e),dt(e)}else Mt(e);else bt(e)}function St(e){var t,o,a=e._i,i=e._f;return e._locale=e._locale||ut(e._l),null===a||void 0===i&&\"\"===a?g({nullInput:!0}):(\"string\"==typeof a&&(e._i=a=e._locale.preparse(a)),v(a)?new b(dt(a)):(n(a)?e._d=a:s(i)?function(e){var t,o,a,i,r;if(0===e._f.length)return _(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Tt(t),f(t)&&(r+=_(t).charsLeftOver,r+=10*_(t).unusedTokens.length,_(t).score=r,(null==a||r<a)&&(a=r,o=t));d(e,o||t)}(e):i?Tt(e):r(o=(t=e)._i)?t._d=new Date(h.now()):n(o)?t._d=new Date(o.valueOf()):\"string\"==typeof o?function(e){var t=wt.exec(e._i);null===t?(bt(e),!1===e._isValid&&(delete e._isValid,Mt(e),!1===e._isValid&&(delete e._isValid,h.createFromInputFallback(e)))):e._d=new Date(+t[1])}(t):s(o)?(t._a=u(o.slice(0),function(e){return parseInt(e,10)}),pt(t)):l(o)?function(e){var t;e._d||(t=L(e._i),e._a=u([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),pt(e))}(t):c(o)?t._d=new Date(o):h.createFromInputFallback(t),f(e)||(e._d=null),e))}function Pt(e,t,o,a,i){var r,n={};return!0!==o&&!1!==o||(a=o,o=void 0),(l(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return;return 1}(e)||s(e)&&0===e.length)&&(e=void 0),n._isAMomentObject=!0,n._useUTC=n._isUTC=i,n._l=o,n._i=e,n._f=t,n._strict=a,(r=new b(dt(St(n))))._nextDay&&(r.add(1,\"d\"),r._nextDay=void 0),r}function Et(e,t,o,a){return Pt(e,t,o,a,!1)}h.createFromInputFallback=o(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),h.ISO_8601=function(){},h.RFC_2822=function(){};var Yt=o(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Et.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:g()}),Dt=o(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Et.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:g()});function Nt(e,t){var o,a;if(1===t.length&&s(t[0])&&(t=t[0]),!t.length)return Et();for(o=t[0],a=1;a<t.length;++a)t[a].isValid()&&!t[a][e](o)||(o=t[a]);return o}var Ot=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function Ct(e){var t=L(e),o=t.year||0,a=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,n=t.day||0,s=t.hour||0,l=t.minute||0,c=t.second||0,u=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Te.call(Ot,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var o=!1,a=0;a<Ot.length;++a)if(e[Ot[a]]){if(o)return!1;parseFloat(e[Ot[a]])!==k(e[Ot[a]])&&(o=!0)}return!0}(t),this._milliseconds=+u+1e3*c+6e4*l+1e3*s*60*60,this._days=+n+7*r,this._months=+i+3*a+12*o,this._data={},this._locale=ut(),this._bubble()}function Lt(e){return e instanceof Ct}function zt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function xt(e,o){B(e,0,0,function(){var e=this.utcOffset(),t=\"+\";return e<0&&(e=-e,t=\"-\"),t+R(~~(e/60),2)+o+R(~~e%60,2)})}xt(\"Z\",\":\"),xt(\"ZZ\",\"\"),le(\"Z\",re),le(\"ZZ\",re),he([\"Z\",\"ZZ\"],function(e,t,o){o._useUTC=!0,o._tzm=Ft(re,e)});var Rt=/([\\+\\-]|\\d\\d)/gi;function Ft(e,t){var o=(t||\"\").match(e);if(null===o)return null;var a=((o[o.length-1]||[])+\"\").match(Rt)||[\"-\",0,0],i=60*a[1]+k(a[2]);return 0===i?0:\"+\"===a[0]?i:-i}function It(e,t){var o,a;return t._isUTC?(o=t.clone(),a=(v(e)||n(e)?e.valueOf():Et(e).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+a),h.updateOffset(o,!1),o):Et(e).local()}function Wt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ut(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}h.updateOffset=function(){};var Bt=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,qt=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Gt(e,t){var o,a,i,r=e,n=null;return Lt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(r={},t?r[t]=e:r.milliseconds=e):(n=Bt.exec(e))?(o=\"-\"===n[1]?-1:1,r={y:0,d:k(n[fe])*o,h:k(n[ge])*o,m:k(n[ye])*o,s:k(n[we])*o,ms:k(zt(1e3*n[be]))*o}):(n=qt.exec(e))?(o=\"-\"===n[1]?-1:1,r={y:Ht(n[2],o),M:Ht(n[3],o),w:Ht(n[4],o),d:Ht(n[5],o),h:Ht(n[6],o),m:Ht(n[7],o),s:Ht(n[8],o)}):null==r?r={}:\"object\"==typeof r&&(\"from\"in r||\"to\"in r)&&(i=function(e,t){var o;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=It(t,e),e.isBefore(t)?o=jt(e,t):((o=jt(t,e)).milliseconds=-o.milliseconds,o.months=-o.months);return o}(Et(r.from),Et(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),a=new Ct(r),Lt(e)&&p(e,\"_locale\")&&(a._locale=e._locale),a}function Ht(e,t){var o=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(o)?0:o)*t}function jt(e,t){var o={};return o.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(o.months,\"M\").isAfter(t)&&--o.months,o.milliseconds=t-e.clone().add(o.months,\"M\"),o}function Vt(a,i){return function(e,t){var o;return null===t||isNaN(+t)||(P(i,\"moment().\"+i+\"(period, number) is deprecated. Please use moment().\"+i+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),o=e,e=t,t=o),Kt(this,Gt(e=\"string\"==typeof e?+e:e,t),a),this}}function Kt(e,t,o,a){var i=t._milliseconds,r=zt(t._days),n=zt(t._months);e.isValid()&&(a=null==a||a,n&&Le(e,Ee(e,\"Month\")+n*o),r&&Ye(e,\"Date\",Ee(e,\"Date\")+r*o),i&&e._d.setTime(e._d.valueOf()+i*o),a&&h.updateOffset(e,r||n))}Gt.fn=Ct.prototype,Gt.invalid=function(){return Gt(NaN)};var Xt=Vt(1,\"add\"),Zt=Vt(-1,\"subtract\");function Jt(e,t){var o=12*(t.year()-e.year())+(t.month()-e.month()),a=e.clone().add(o,\"months\"),i=t-a<0?(t-a)/(a-e.clone().add(o-1,\"months\")):(t-a)/(e.clone().add(1+o,\"months\")-a);return-(o+i)||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ut(e))&&(this._locale=t),this)}h.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",h.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var $t=o(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});function eo(){return this._locale}var to=126227808e5;function oo(e,t){return(e%t+t)%t}function ao(e,t,o){return e<100&&0<=e?new Date(e+400,t,o)-to:new Date(e,t,o).valueOf()}function io(e,t,o){return e<100&&0<=e?Date.UTC(e+400,t,o)-to:Date.UTC(e,t,o)}function ro(e,t){B(0,[e,e.length],0,t)}function no(e,t,o,a,i){var r;return null==e?Be(this,a,i).year:((r=qe(e,a,i))<t&&(t=r),function(e,t,o,a,i){var r=Ue(e,t,o,a,i),n=Ie(r.year,0,r.dayOfYear);return this.year(n.getUTCFullYear()),this.month(n.getUTCMonth()),this.date(n.getUTCDate()),this}.call(this,e,t,o,a,i))}B(0,[\"gg\",2],0,function(){return this.weekYear()%100}),B(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),ro(\"gggg\",\"weekYear\"),ro(\"ggggg\",\"weekYear\"),ro(\"GGGG\",\"isoWeekYear\"),ro(\"GGGGG\",\"isoWeekYear\"),O(\"weekYear\",\"gg\"),O(\"isoWeekYear\",\"GG\"),x(\"weekYear\",1),x(\"isoWeekYear\",1),le(\"G\",ae),le(\"g\",ae),le(\"GG\",Z,j),le(\"gg\",Z,j),le(\"GGGG\",ee,K),le(\"gggg\",ee,K),le(\"GGGGG\",te,X),le(\"ggggg\",te,X),pe([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,t,o,a){t[a.substr(0,2)]=k(e)}),pe([\"gg\",\"GG\"],function(e,t,o,a){t[a]=h.parseTwoDigitYear(e)}),B(\"Q\",0,\"Qo\",\"quarter\"),O(\"quarter\",\"Q\"),x(\"quarter\",7),le(\"Q\",H),he(\"Q\",function(e,t){t[_e]=3*(k(e)-1)}),B(\"D\",[\"DD\",2],\"Do\",\"date\"),O(\"date\",\"D\"),x(\"date\",9),le(\"D\",Z),le(\"DD\",Z,j),le(\"Do\",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),he([\"D\",\"DD\"],fe),he(\"Do\",function(e,t){t[fe]=k(e.match(Z)[0])});var so=Pe(\"Date\",!0);B(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),O(\"dayOfYear\",\"DDD\"),x(\"dayOfYear\",4),le(\"DDD\",$),le(\"DDDD\",V),he([\"DDD\",\"DDDD\"],function(e,t,o){o._dayOfYear=k(e)}),B(\"m\",[\"mm\",2],0,\"minute\"),O(\"minute\",\"m\"),x(\"minute\",14),le(\"m\",Z),le(\"mm\",Z,j),he([\"m\",\"mm\"],ye);var lo=Pe(\"Minutes\",!1);B(\"s\",[\"ss\",2],0,\"second\"),O(\"second\",\"s\"),x(\"second\",15),le(\"s\",Z),le(\"ss\",Z,j),he([\"s\",\"ss\"],we);var co,uo=Pe(\"Seconds\",!1);for(B(\"S\",0,0,function(){return~~(this.millisecond()/100)}),B(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),B(0,[\"SSS\",3],0,\"millisecond\"),B(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),B(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),B(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),B(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),B(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),B(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),O(\"millisecond\",\"ms\"),x(\"millisecond\",16),le(\"S\",$,H),le(\"SS\",$,j),le(\"SSS\",$,V),co=\"SSSS\";co.length<=9;co+=\"S\")le(co,oe);function ho(e,t){t[be]=k(1e3*(\"0.\"+e))}for(co=\"S\";co.length<=9;co+=\"S\")he(co,ho);var po=Pe(\"Milliseconds\",!1);B(\"z\",0,0,\"zoneAbbr\"),B(\"zz\",0,0,\"zoneName\");var mo=b.prototype;function _o(e){return e}mo.add=Xt,mo.calendar=function(e,t){var o=e||Et(),a=It(o,this).startOf(\"day\"),i=h.calendarFormat(this,a)||\"sameElse\",r=t&&(E(t[i])?t[i].call(this,o):t[i]);return this.format(r||this.localeData().calendar(i,this,Et(o)))},mo.clone=function(){return new b(this)},mo.diff=function(e,t,o){var a,i,r;if(!this.isValid())return NaN;if(!(a=It(e,this)).isValid())return NaN;switch(i=6e4*(a.utcOffset()-this.utcOffset()),t=C(t)){case\"year\":r=Jt(this,a)/12;break;case\"month\":r=Jt(this,a);break;case\"quarter\":r=Jt(this,a)/3;break;case\"second\":r=(this-a)/1e3;break;case\"minute\":r=(this-a)/6e4;break;case\"hour\":r=(this-a)/36e5;break;case\"day\":r=(this-a-i)/864e5;break;case\"week\":r=(this-a-i)/6048e5;break;default:r=this-a}return o?r:A(r)},mo.endOf=function(e){var t;if(void 0===(e=C(e))||\"millisecond\"===e||!this.isValid())return this;var o=this._isUTC?io:ao;switch(e){case\"year\":t=o(this.year()+1,0,1)-1;break;case\"quarter\":t=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case\"month\":t=o(this.year(),this.month()+1,1)-1;break;case\"week\":t=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case\"isoWeek\":t=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case\"day\":case\"date\":t=o(this.year(),this.month(),this.date()+1)-1;break;case\"hour\":t=this._d.valueOf(),t+=36e5-oo(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case\"minute\":t=this._d.valueOf(),t+=6e4-oo(t,6e4)-1;break;case\"second\":t=this._d.valueOf(),t+=1e3-oo(t,1e3)-1}return this._d.setTime(t),h.updateOffset(this,!0),this},mo.format=function(e){e=e||(this.isUtc()?h.defaultFormatUtc:h.defaultFormat);var t=q(this,e);return this.localeData().postformat(t)},mo.from=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Et(e).isValid())?Gt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mo.fromNow=function(e){return this.from(Et(),e)},mo.to=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Et(e).isValid())?Gt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mo.toNow=function(e){return this.to(Et(),e)},mo.get=function(e){return E(this[e=C(e)])?this[e]():this},mo.invalidAt=function(){return _(this).overflow},mo.isAfter=function(e,t){var o=v(e)?e:Et(e);return!(!this.isValid()||!o.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(t).valueOf())},mo.isBefore=function(e,t){var o=v(e)?e:Et(e);return!(!this.isValid()||!o.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()<o.valueOf():this.clone().endOf(t).valueOf()<o.valueOf())},mo.isBetween=function(e,t,o,a){var i=v(e)?e:Et(e),r=v(t)?t:Et(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&((\"(\"===(a=a||\"()\")[0]?this.isAfter(i,o):!this.isBefore(i,o))&&(\")\"===a[1]?this.isBefore(r,o):!this.isAfter(r,o)))},mo.isSame=function(e,t){var o,a=v(e)?e:Et(e);return!(!this.isValid()||!a.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()===a.valueOf():(o=a.valueOf(),this.clone().startOf(t).valueOf()<=o&&o<=this.clone().endOf(t).valueOf()))},mo.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mo.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mo.isValid=function(){return f(this)},mo.lang=$t,mo.locale=Qt,mo.localeData=eo,mo.max=Dt,mo.min=Yt,mo.parsingFlags=function(){return d({},_(this))},mo.set=function(e,t){if(\"object\"==typeof e)for(var o=function(e){var t=[];for(var o in e)t.push({unit:o,priority:z[o]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=L(e)),a=0;a<o.length;a++)this[o[a].unit](e[o[a].unit]);else if(E(this[e=C(e)]))return this[e](t);return this},mo.startOf=function(e){var t;if(void 0===(e=C(e))||\"millisecond\"===e||!this.isValid())return this;var o=this._isUTC?io:ao;switch(e){case\"year\":t=o(this.year(),0,1);break;case\"quarter\":t=o(this.year(),this.month()-this.month()%3,1);break;case\"month\":t=o(this.year(),this.month(),1);break;case\"week\":t=o(this.year(),this.month(),this.date()-this.weekday());break;case\"isoWeek\":t=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case\"day\":case\"date\":t=o(this.year(),this.month(),this.date());break;case\"hour\":t=this._d.valueOf(),t-=oo(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case\"minute\":t=this._d.valueOf(),t-=oo(t,6e4);break;case\"second\":t=this._d.valueOf(),t-=oo(t,1e3)}return this._d.setTime(t),h.updateOffset(this,!0),this},mo.subtract=Zt,mo.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mo.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mo.toDate=function(){return new Date(this.valueOf())},mo.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,o=t?this.clone().utc():this;return o.year()<0||9999<o.year()?q(o,t?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace(\"Z\",q(o,\"Z\")):q(o,t?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},mo.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var o=\"[\"+e+'(\"]',a=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",i=t+'[\")]';return this.format(o+a+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},mo.toJSON=function(){return this.isValid()?this.toISOString():null},mo.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},mo.unix=function(){return Math.floor(this.valueOf()/1e3)},mo.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mo.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mo.year=Se,mo.isLeapYear=function(){return Me(this.year())},mo.weekYear=function(e){return no.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mo.isoWeekYear=function(e){return no.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mo.quarter=mo.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mo.month=ze,mo.daysInMonth=function(){return De(this.year(),this.month())},mo.week=mo.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},mo.isoWeek=mo.isoWeeks=function(e){var t=Be(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},mo.weeksInYear=function(){var e=this.localeData()._week;return qe(this.year(),e.dow,e.doy)},mo.isoWeeksInYear=function(){return qe(this.year(),1,4)},mo.date=so,mo.day=mo.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,o,a=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,o=this.localeData(),e=\"string\"!=typeof t?t:isNaN(t)?\"number\"==typeof(t=o.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-a,\"d\")):a},mo.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},mo.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,o,a=(t=e,o=this.localeData(),\"string\"==typeof t?o.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?a:a-7)},mo.dayOfYear=function(e){var t=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},mo.hour=mo.hours=ot,mo.minute=mo.minutes=lo,mo.second=mo.seconds=uo,mo.millisecond=mo.milliseconds=po,mo.utcOffset=function(e,t,o){var a,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Wt(this);if(\"string\"==typeof e){if(null===(e=Ft(re,e)))return this}else Math.abs(e)<16&&!o&&(e*=60);return!this._isUTC&&t&&(a=Wt(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,\"m\"),i!==e&&(!t||this._changeInProgress?Kt(this,Gt(e-i,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,h.updateOffset(this,!0),this._changeInProgress=null)),this},mo.utc=function(e){return this.utcOffset(0,e)},mo.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Wt(this),\"m\")),this},mo.parseZone=function(){var e;return null!=this._tzm?this.utcOffset(this._tzm,!1,!0):\"string\"==typeof this._i&&(null!=(e=Ft(ie,this._i))?this.utcOffset(e):this.utcOffset(0,!0)),this},mo.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Et(e).utcOffset():0,(this.utcOffset()-e)%60==0)},mo.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mo.isLocal=function(){return!!this.isValid()&&!this._isUTC},mo.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mo.isUtc=Ut,mo.isUTC=Ut,mo.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},mo.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},mo.dates=o(\"dates accessor is deprecated. Use date instead.\",so),mo.months=o(\"months accessor is deprecated. Use month instead\",ze),mo.years=o(\"years accessor is deprecated. Use year instead\",Se),mo.zone=o(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,t){return null!=e?(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),mo.isDSTShifted=o(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,t={};return w(t,this),(t=St(t))._a?(e=(t._isUTC?m:Et)(t._a),this._isDSTShifted=this.isValid()&&0<M(t._a,e.toArray())):this._isDSTShifted=!1,this._isDSTShifted});var fo=D.prototype;function go(e,t,o,a){var i=ut(),r=m().set(a,t);return i[o](r,e)}function yo(e,t,o){if(c(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return go(e,t,o,\"month\");for(var a=[],i=0;i<12;i++)a[i]=go(e,i,o,\"month\");return a}function wo(e,t,o,a){t=(\"boolean\"==typeof e?c(t)&&(o=t,t=void 0):(t=e,e=!1,c(o=t)&&(o=t,t=void 0)),t||\"\");var i=ut(),r=e?i._week.dow:0;if(null!=o)return go(t,(o+r)%7,a,\"day\");for(var n=[],s=0;s<7;s++)n[s]=go(t,(s+r)%7,a,\"day\");return n}fo.calendar=function(e,t,o){var a=this._calendar[e]||this._calendar.sameElse;return E(a)?a.call(t,o):a},fo.longDateFormat=function(e){var t=this._longDateFormat[e],o=this._longDateFormat[e.toUpperCase()];return t||!o?t:(this._longDateFormat[e]=o.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},fo.invalidDate=function(){return this._invalidDate},fo.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},fo.preparse=_o,fo.postformat=_o,fo.relativeTime=function(e,t,o,a){var i=this._relativeTime[o];return E(i)?i(e,t,o,a):i.replace(/%d/i,e)},fo.pastFuture=function(e,t){var o=this._relativeTime[0<e?\"future\":\"past\"];return E(o)?o(t):o.replace(/%s/i,t)},fo.set=function(e){var t,o;for(o in e)E(t=e[o])?this[o]=t:this[\"_\"+o]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},fo.months=function(e,t){return e?s(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ne).test(t)?\"format\":\"standalone\"][e.month()]:s(this._months)?this._months:this._months.standalone},fo.monthsShort=function(e,t){return e?s(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ne.test(t)?\"format\":\"standalone\"][e.month()]:s(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},fo.monthsParse=function(e,t,o){var a,i,r;if(this._monthsParseExact)return function(e,t,o){var a,i,r,n=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)r=m([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(r,\"\").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(r,\"\").toLocaleLowerCase();return o?\"MMM\"===t?-1!==(i=Te.call(this._shortMonthsParse,n))?i:null:-1!==(i=Te.call(this._longMonthsParse,n))?i:null:\"MMM\"===t?-1!==(i=Te.call(this._shortMonthsParse,n))||-1!==(i=Te.call(this._longMonthsParse,n))?i:null:-1!==(i=Te.call(this._longMonthsParse,n))||-1!==(i=Te.call(this._shortMonthsParse,n))?i:null}.call(this,e,t,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(i=m([2e3,a]),o&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp(\"^\"+this.months(i,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[a]=new RegExp(\"^\"+this.monthsShort(i,\"\").replace(\".\",\"\")+\"$\",\"i\")),o||this._monthsParse[a]||(r=\"^\"+this.months(i,\"\")+\"|^\"+this.monthsShort(i,\"\"),this._monthsParse[a]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"MMMM\"===t&&this._longMonthsParse[a].test(e))return a;if(o&&\"MMM\"===t&&this._shortMonthsParse[a].test(e))return a;if(!o&&this._monthsParse[a].test(e))return a}},fo.monthsRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||Fe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(p(this,\"_monthsRegex\")||(this._monthsRegex=Re),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},fo.monthsShortRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||Fe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(p(this,\"_monthsShortRegex\")||(this._monthsShortRegex=xe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},fo.week=function(e){return Be(e,this._week.dow,this._week.doy).week},fo.firstDayOfYear=function(){return this._week.doy},fo.firstDayOfWeek=function(){return this._week.dow},fo.weekdays=function(e,t){var o=s(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?\"format\":\"standalone\"];return!0===e?Ge(o,this._week.dow):e?o[e.day()]:o},fo.weekdaysMin=function(e){return!0===e?Ge(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},fo.weekdaysShort=function(e){return!0===e?Ge(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},fo.weekdaysParse=function(e,t,o){var a,i,r;if(this._weekdaysParseExact)return function(e,t,o){var a,i,r,n=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)r=m([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(r,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(r,\"\").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(r,\"\").toLocaleLowerCase();return o?\"dddd\"===t?-1!==(i=Te.call(this._weekdaysParse,n))?i:null:\"ddd\"===t?-1!==(i=Te.call(this._shortWeekdaysParse,n))?i:null:-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:\"dddd\"===t?-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._shortWeekdaysParse,n))||-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:\"ddd\"===t?-1!==(i=Te.call(this._shortWeekdaysParse,n))||-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:-1!==(i=Te.call(this._minWeekdaysParse,n))||-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._shortWeekdaysParse,n))?i:null}.call(this,e,t,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(i=m([2e3,1]).day(a),o&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp(\"^\"+this.weekdays(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[a]=new RegExp(\"^\"+this.weekdaysShort(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[a]=new RegExp(\"^\"+this.weekdaysMin(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[a]||(r=\"^\"+this.weekdays(i,\"\")+\"|^\"+this.weekdaysShort(i,\"\")+\"|^\"+this.weekdaysMin(i,\"\"),this._weekdaysParse[a]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"dddd\"===t&&this._fullWeekdaysParse[a].test(e))return a;if(o&&\"ddd\"===t&&this._shortWeekdaysParse[a].test(e))return a;if(o&&\"dd\"===t&&this._minWeekdaysParse[a].test(e))return a;if(!o&&this._weekdaysParse[a].test(e))return a}},fo.weekdaysRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(p(this,\"_weekdaysRegex\")||(this._weekdaysRegex=Ke),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},fo.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(p(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=Xe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},fo.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(p(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},fo.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},fo.meridiem=function(e,t,o){return 11<e?o?\"pm\":\"PM\":o?\"am\":\"AM\"},lt(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?\"th\":1==t?\"st\":2==t?\"nd\":3==t?\"rd\":\"th\")}}),h.lang=o(\"moment.lang is deprecated. Use moment.locale instead.\",lt),h.langData=o(\"moment.langData is deprecated. Use moment.localeData instead.\",ut);var bo=Math.abs;function vo(e,t,o,a){var i=Gt(t,o);return e._milliseconds+=a*i._milliseconds,e._days+=a*i._days,e._months+=a*i._months,e._bubble()}function Ao(e){return e<0?Math.floor(e):Math.ceil(e)}function ko(e){return 4800*e/146097}function Mo(e){return 146097*e/4800}function To(e){return function(){return this.as(e)}}var So=To(\"ms\"),Po=To(\"s\"),Eo=To(\"m\"),Yo=To(\"h\"),Do=To(\"d\"),No=To(\"w\"),Oo=To(\"M\"),Co=To(\"Q\"),Lo=To(\"y\");function zo(e){return function(){return this.isValid()?this._data[e]:NaN}}var xo=zo(\"milliseconds\"),Ro=zo(\"seconds\"),Fo=zo(\"minutes\"),Io=zo(\"hours\"),Wo=zo(\"days\"),Uo=zo(\"months\"),Bo=zo(\"years\");var qo=Math.round,Go={ss:44,s:45,m:45,h:22,d:26,M:11};function Ho(e,t,o){var a=Gt(e).abs(),i=qo(a.as(\"s\")),r=qo(a.as(\"m\")),n=qo(a.as(\"h\")),s=qo(a.as(\"d\")),l=qo(a.as(\"M\")),c=qo(a.as(\"y\")),u=(i<=Go.ss?[\"s\",i]:i<Go.s&&[\"ss\",i])||r<=1&&[\"m\"]||r<Go.m&&[\"mm\",r]||n<=1&&[\"h\"]||n<Go.h&&[\"hh\",n]||s<=1&&[\"d\"]||s<Go.d&&[\"dd\",s]||l<=1&&[\"M\"]||l<Go.M&&[\"MM\",l]||c<=1&&[\"y\"]||[\"yy\",c];return u[2]=t,u[3]=0<+e,u[4]=o,function(e,t,o,a,i){return i.relativeTime(t||1,!!o,e,a)}.apply(null,u)}var jo=Math.abs;function Vo(e){return(0<e)-(e<0)||+e}function Ko(){if(!this.isValid())return this.localeData().invalidDate();var e=jo(this._milliseconds)/1e3,t=jo(this._days),o=jo(this._months),a=A(e/60),i=A(a/60);e%=60,a%=60;var r=A(o/12),n=o%=12,s=t,l=i,c=a,u=e?e.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",d=this.asSeconds();if(!d)return\"P0D\";var h=d<0?\"-\":\"\",p=Vo(this._months)!==Vo(d)?\"-\":\"\",m=Vo(this._days)!==Vo(d)?\"-\":\"\",_=Vo(this._milliseconds)!==Vo(d)?\"-\":\"\";return h+\"P\"+(r?p+r+\"Y\":\"\")+(n?p+n+\"M\":\"\")+(s?m+s+\"D\":\"\")+(l||c||u?\"T\":\"\")+(l?_+l+\"H\":\"\")+(c?_+c+\"M\":\"\")+(u?_+u+\"S\":\"\")}var Xo=Ct.prototype;return Xo.isValid=function(){return this._isValid},Xo.abs=function(){var e=this._data;return this._milliseconds=bo(this._milliseconds),this._days=bo(this._days),this._months=bo(this._months),e.milliseconds=bo(e.milliseconds),e.seconds=bo(e.seconds),e.minutes=bo(e.minutes),e.hours=bo(e.hours),e.months=bo(e.months),e.years=bo(e.years),this},Xo.add=function(e,t){return vo(this,e,t,1)},Xo.subtract=function(e,t){return vo(this,e,t,-1)},Xo.as=function(e){if(!this.isValid())return NaN;var t,o,a=this._milliseconds;if(\"month\"===(e=C(e))||\"quarter\"===e||\"year\"===e)switch(t=this._days+a/864e5,o=this._months+ko(t),e){case\"month\":return o;case\"quarter\":return o/3;case\"year\":return o/12}else switch(t=this._days+Math.round(Mo(this._months)),e){case\"week\":return t/7+a/6048e5;case\"day\":return t+a/864e5;case\"hour\":return 24*t+a/36e5;case\"minute\":return 1440*t+a/6e4;case\"second\":return 86400*t+a/1e3;case\"millisecond\":return Math.floor(864e5*t)+a;default:throw new Error(\"Unknown unit \"+e)}},Xo.asMilliseconds=So,Xo.asSeconds=Po,Xo.asMinutes=Eo,Xo.asHours=Yo,Xo.asDays=Do,Xo.asWeeks=No,Xo.asMonths=Oo,Xo.asQuarters=Co,Xo.asYears=Lo,Xo.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Xo._bubble=function(){var e,t,o,a,i,r=this._milliseconds,n=this._days,s=this._months,l=this._data;return 0<=r&&0<=n&&0<=s||r<=0&&n<=0&&s<=0||(r+=864e5*Ao(Mo(s)+n),s=n=0),l.milliseconds=r%1e3,e=A(r/1e3),l.seconds=e%60,t=A(e/60),l.minutes=t%60,o=A(t/60),l.hours=o%24,n+=A(o/24),s+=i=A(ko(n)),n-=Ao(Mo(i)),a=A(s/12),s%=12,l.days=n,l.months=s,l.years=a,this},Xo.clone=function(){return Gt(this)},Xo.get=function(e){return e=C(e),this.isValid()?this[e+\"s\"]():NaN},Xo.milliseconds=xo,Xo.seconds=Ro,Xo.minutes=Fo,Xo.hours=Io,Xo.days=Wo,Xo.weeks=function(){return A(this.days()/7)},Xo.months=Uo,Xo.years=Bo,Xo.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),o=Ho(this,!e,t);return e&&(o=t.pastFuture(+this,o)),t.postformat(o)},Xo.toISOString=Ko,Xo.toString=Ko,Xo.toJSON=Ko,Xo.locale=Qt,Xo.localeData=eo,Xo.toIsoString=o(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Ko),Xo.lang=$t,B(\"X\",0,0,\"unix\"),B(\"x\",0,0,\"valueOf\"),le(\"x\",ae),le(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),he(\"X\",function(e,t,o){o._d=new Date(1e3*parseFloat(e,10))}),he(\"x\",function(e,t,o){o._d=new Date(k(e))}),h.version=\"2.24.0\",e=Et,h.fn=mo,h.min=function(){return Nt(\"isBefore\",[].slice.call(arguments,0))},h.max=function(){return Nt(\"isAfter\",[].slice.call(arguments,0))},h.now=function(){return Date.now?Date.now():+new Date},h.utc=m,h.unix=function(e){return Et(1e3*e)},h.months=function(e,t){return yo(e,t,\"months\")},h.isDate=n,h.locale=lt,h.invalid=g,h.duration=Gt,h.isMoment=v,h.weekdays=function(e,t,o){return wo(e,t,o,\"weekdays\")},h.parseZone=function(){return Et.apply(null,arguments).parseZone()},h.localeData=ut,h.isDuration=Lt,h.monthsShort=function(e,t){return yo(e,t,\"monthsShort\")},h.weekdaysMin=function(e,t,o){return wo(e,t,o,\"weekdaysMin\")},h.defineLocale=ct,h.updateLocale=function(e,t){var o,a,i;return null!=t?(a=at,null!=(i=st(e))&&(a=i._config),(o=new D(t=Y(a,t))).parentLocale=it[e],it[e]=o,lt(e)):null!=it[e]&&(null!=it[e].parentLocale?it[e]=it[e].parentLocale:null!=it[e]&&delete it[e]),it[e]},h.locales=function(){return a(it)},h.weekdaysShort=function(e,t,o){return wo(e,t,o,\"weekdaysShort\")},h.normalizeUnits=C,h.relativeTimeRounding=function(e){return void 0===e?qo:\"function\"==typeof e&&(qo=e,!0)},h.relativeTimeThreshold=function(e,t){return void 0!==Go[e]&&(void 0===t?Go[e]:(Go[e]=t,\"s\"===e&&(Go.ss=t-1),!0))},h.calendarFormat=function(e,t){var o=e.diff(t,\"days\",!0);return o<-6?\"sameElse\":o<-1?\"lastWeek\":o<0?\"lastDay\":o<1?\"sameDay\":o<2?\"nextDay\":o<7?\"nextWeek\":\"sameElse\"},h.prototype=mo,h.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},h}),function(e,t){\"use strict\";\"object\"==typeof module&&module.exports?module.exports=t(require(\"moment\")):\"function\"==typeof define&&define.amd?define([\"moment\"],t):t(e.moment)}(this,function(r){\"use strict\";var t,n={},s={},c={},u={};r&&\"string\"==typeof r.version||P(\"Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/\");var e=r.version.split(\".\"),o=+e[0],a=+e[1];function l(e){return 96<e?e-87:64<e?e-29:e-48}function i(e){var t=0,o=e.split(\".\"),a=o[0],i=o[1]||\"\",r=1,n=0,s=1;for(45===e.charCodeAt(0)&&(s=-(t=1));t<a.length;t++)n=60*n+l(a.charCodeAt(t));for(t=0;t<i.length;t++)r/=60,n+=l(i.charCodeAt(t))*r;return n*s}function d(e){for(var t=0;t<e.length;t++)e[t]=i(e[t])}function h(e,t){for(var o=[],a=0;a<t.length;a++)o[a]=e[t[a]];return o}function p(e){var t=e.split(\"|\"),o=t[2].split(\" \"),a=t[3].split(\"\"),i=t[4].split(\" \");return d(o),d(a),d(i),function(e,t){for(var o=0;o<t;o++)e[o]=Math.round((e[o-1]||0)+6e4*e[o]);e[t-1]=1/0}(i,a.length),{name:t[0],abbrs:h(t[1].split(\" \"),a),offsets:h(o,a),untils:i,population:0|t[5]}}function m(e){e&&this._set(p(e))}function _(e){var t=e.toTimeString(),o=t.match(/\\([a-z ]+\\)/i);\"GMT\"===(o=o&&o[0]?(o=o[0].match(/[A-Z]/g))?o.join(\"\"):void 0:(o=t.match(/[A-Z]{3,5}/g))?o[0]:void 0)&&(o=void 0),this.at=+e,this.abbr=o,this.offset=e.getTimezoneOffset()}function f(e){this.zone=e,this.offsetScore=0,this.abbrScore=0}function g(){for(var e,t,o=(new Date).getFullYear()-2,a=new _(new Date(o,0,1)),i=[a],r=1;r<48;r++)(t=new _(new Date(o,r,1))).offset!==a.offset&&(e=function(e,t){for(var o,a;a=6e4*((t.at-e.at)/12e4|0);)(o=new _(new Date(e.at+a))).offset===e.offset?e=o:t=o;return e}(a,t),i.push(e),i.push(new _(new Date(e.at+6e4)))),a=t;for(r=0;r<4;r++)i.push(new _(new Date(o+r,0,1))),i.push(new _(new Date(o+r,6,1)));return i}function y(e,t){return e.offsetScore!==t.offsetScore?e.offsetScore-t.offsetScore:e.abbrScore!==t.abbrScore?e.abbrScore-t.abbrScore:t.zone.population-e.zone.population}function w(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e&&3<e.length){var t=c[b(e)];if(t)return t;P(\"Moment Timezone found \"+e+\" from the Intl api, but did not have that data loaded.\")}}catch(e){}for(var o,a,i=g(),r=i.length,n=function(e){for(var t,o,a=e.length,i={},r=[],n=0;n<a;n++)for(t in o=u[e[n].offset]||{})o.hasOwnProperty(t)&&(i[t]=!0);for(n in i)i.hasOwnProperty(n)&&r.push(c[n]);return r}(i),s=[],l=0;l<n.length;l++){for(o=new f(A(n[l])),a=0;a<r;a++)o.scoreOffsetAt(i[a]);s.push(o)}return s.sort(y),0<s.length?s[0].zone.name:void 0}function b(e){return(e||\"\").toLowerCase().replace(/\\//g,\"_\")}function v(e){var t,o,a,i;for(\"string\"==typeof e&&(e=[e]),t=0;t<e.length;t++)i=b(o=(a=e[t].split(\"|\"))[0]),n[i]=e[t],c[i]=o,function(e,t){var o,a;for(d(t),o=0;o<t.length;o++)a=t[o],u[a]=u[a]||{},u[a][e]=!0}(i,a[2].split(\" \"))}function A(e,t){e=b(e);var o,a=n[e];return a instanceof m?a:\"string\"==typeof a?(a=new m(a),n[e]=a):s[e]&&t!==A&&(o=A(s[e],A))?((a=n[e]=new m)._set(o),a.name=c[e],a):null}function k(e){var t,o,a,i;for(\"string\"==typeof e&&(e=[e]),t=0;t<e.length;t++)a=b((o=e[t].split(\"|\"))[0]),i=b(o[1]),s[a]=i,c[a]=o[0],s[i]=a,c[i]=o[1]}function M(e){v(e.zones),k(e.links),E.dataVersion=e.version}function T(e){return T.didShowError||(T.didShowError=!0,P(\"moment.tz.zoneExists('\"+e+\"') has been deprecated in favor of !moment.tz.zone('\"+e+\"')\")),!!A(e)}function S(e){var t=\"X\"===e._f||\"x\"===e._f;return!(!e._a||void 0!==e._tzm||t)}function P(e){\"undefined\"!=typeof console&&\"function\"==typeof console.error&&console.error(e)}function E(e){var t=Array.prototype.slice.call(arguments,0,-1),o=arguments[arguments.length-1],a=A(o),i=r.utc.apply(null,t);return a&&!r.isMoment(e)&&S(i)&&i.add(a.parse(i),\"minutes\"),i.tz(o),i}(o<2||2==o&&a<6)&&P(\"Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js \"+r.version+\". See momentjs.com\"),m.prototype={_set:function(e){this.name=e.name,this.abbrs=e.abbrs,this.untils=e.untils,this.offsets=e.offsets,this.population=e.population},_index:function(e){for(var t=+e,o=this.untils,a=0;a<o.length;a++)if(t<o[a])return a},parse:function(e){for(var t,o,a,i=+e,r=this.offsets,n=this.untils,s=n.length-1,l=0;l<s;l++)if(t=r[l],o=r[l+1],a=r[l?l-1:l],t<o&&E.moveAmbiguousForward?t=o:a<t&&E.moveInvalidForward&&(t=a),i<n[l]-6e4*t)return r[l];return r[s]},abbr:function(e){return this.abbrs[this._index(e)]},offset:function(e){return P(\"zone.offset has been deprecated in favor of zone.utcOffset\"),this.offsets[this._index(e)]},utcOffset:function(e){return this.offsets[this._index(e)]}},f.prototype.scoreOffsetAt=function(e){this.offsetScore+=Math.abs(this.zone.utcOffset(e.at)-e.offset),this.zone.abbr(e.at).replace(/[^A-Z]/g,\"\")!==e.abbr&&this.abbrScore++},E.version=\"0.5.25\",E.dataVersion=\"\",E._zones=n,E._links=s,E._names=c,E.add=v,E.link=k,E.load=M,E.zone=A,E.zoneExists=T,E.guess=function(e){return t&&!e||(t=w()),t},E.names=function(){var e,t=[];for(e in c)c.hasOwnProperty(e)&&(n[e]||n[s[e]])&&c[e]&&t.push(c[e]);return t.sort()},E.Zone=m,E.unpack=p,E.unpackBase60=i,E.needsOffset=S,E.moveInvalidForward=!0,E.moveAmbiguousForward=!1;var Y,D=r.fn;function N(e){return function(){return this._z?this._z.abbr(this):e.call(this)}}function O(e){return function(){return this._z=null,e.apply(this,arguments)}}r.tz=E,r.defaultZone=null,r.updateOffset=function(e,t){var o,a,i=r.defaultZone;void 0===e._z&&(i&&S(e)&&!e._isUTC&&(e._d=r.utc(e._a)._d,e.utc().add(i.parse(e),\"minutes\")),e._z=i),e._z&&(a=e._z.utcOffset(e),Math.abs(a)<16&&(a/=60),void 0!==e.utcOffset?(o=e._z,e.utcOffset(-a,t),e._z=o):e.zone(a,t))},D.tz=function(e,t){if(e){if(\"string\"!=typeof e)throw new Error(\"Time zone name must be a string, got \"+e+\" [\"+typeof e+\"]\");return this._z=A(e),this._z?r.updateOffset(this,t):P(\"Moment Timezone has no data for \"+e+\". See http://momentjs.com/timezone/docs/#/data-loading/.\"),this}if(this._z)return this._z.name},D.zoneName=N(D.zoneName),D.zoneAbbr=N(D.zoneAbbr),D.utc=O(D.utc),D.local=O(D.local),D.utcOffset=(Y=D.utcOffset,function(){return 0<arguments.length&&(this._z=null),Y.apply(this,arguments)}),r.tz.setDefault=function(e){return(o<2||2==o&&a<9)&&P(\"Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js \"+r.version+\".\"),r.defaultZone=e?A(e):null,r};var C=r.momentProperties;return\"[object Array]\"===Object.prototype.toString.call(C)?(C.push(\"_z\"),C.push(\"_a\")):C&&(C._z=null),M({version:\"2019a\",zones:[\"Africa/Abidjan|GMT|0|0||48e5\",\"Africa/Nairobi|EAT|-30|0||47e5\",\"Africa/Algiers|CET|-10|0||26e5\",\"Africa/Lagos|WAT|-10|0||17e6\",\"Africa/Maputo|CAT|-20|0||26e5\",\"Africa/Cairo|EET EEST|-20 -30|01010|1M2m0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|+00 +01|0 -10|01010101010101010101010101010101|1LHC0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00|32e5\",\"Europe/Paris|CET CEST|-10 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|11e6\",\"Africa/Johannesburg|SAST|-20|0||84e5\",\"Africa/Khartoum|EAT CAT|-30 -20|01|1Usl0|51e5\",\"Africa/Sao_Tome|GMT WAT|0 -10|010|1UQN0 2q00\",\"Africa/Tripoli|EET|-20|0||11e5\",\"Africa/Windhoek|CAT WAT|-20 -10|010101010|1LKo0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|HST HDT|a0 90|01010101010101010101010|1Lzo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AKST AKDT|90 80|01010101010101010101010|1Lzn0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Santo_Domingo|AST|40|0||29e5\",\"America/Fortaleza|-03|30|0||34e5\",\"America/Asuncion|-03 -04|30 40|01010101010101010101010|1LEP0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0|28e5\",\"America/Panama|EST|50|0||15e5\",\"America/Mexico_City|CST CDT|60 50|01010101010101010101010|1LKw0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0|20e6\",\"America/Managua|CST|60|0||22e5\",\"America/La_Paz|-04|40|0||19e5\",\"America/Lima|-05|50|0||11e6\",\"America/Denver|MST MDT|70 60|01010101010101010101010|1Lzl0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Campo_Grande|-03 -04|30 40|01010101010101010101010|1LqP0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0|77e4\",\"America/Cancun|CST CDT EST|60 50 50|0102|1LKw0 1lb0 Dd0|63e4\",\"America/Caracas|-0430 -04|4u 40|01|1QMT0|29e5\",\"America/Chicago|CST CDT|60 50|01010101010101010101010|1Lzk0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|MST MDT|70 60|01010101010101010101010|1LKx0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0|81e4\",\"America/Phoenix|MST|70|0||42e5\",\"America/Los_Angeles|PST PDT|80 70|01010101010101010101010|1Lzm0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/New_York|EST EDT|50 40|01010101010101010101010|1Lzj0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Fort_Nelson|PST PDT MST|80 70 70|0102|1Lzm0 1zb0 Op0|39e2\",\"America/Halifax|AST ADT|40 30|01010101010101010101010|1Lzi0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Godthab|-03 -02|30 20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|17e3\",\"America/Grand_Turk|EST EDT AST|50 40 40|0101210101010101010|1Lzj0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Havana|CST CDT|50 40|01010101010101010101010|1Lzh0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Metlakatla|PST AKST AKDT|80 90 80|012121201212121212121|1PAa0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Miquelon|-03 -02|30 20|01010101010101010101010|1Lzh0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Montevideo|-02 -03|20 30|0101|1Lzg0 1o10 11z0|17e5\",\"America/Noronha|-02|20|0||30e2\",\"America/Port-au-Prince|EST EDT|50 40|010101010101010101010|1Lzj0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"Antarctica/Palmer|-03 -04|30 40|01010|1LSP0 Rd0 46n0 Ap0|40\",\"America/Santiago|-03 -04|30 40|010101010101010101010|1LSP0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0|62e5\",\"America/Sao_Paulo|-02 -03|20 30|01010101010101010101010|1LqO0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0|20e6\",\"Atlantic/Azores|-01 +00|10 0|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|25e4\",\"America/St_Johns|NST NDT|3u 2u|01010101010101010101010|1Lzhu 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"Antarctica/Casey|+08 +11|-80 -b0|010|1RWg0 3m10|10\",\"Asia/Bangkok|+07|-70|0||15e6\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Pacific/Guadalcanal|+11|-b0|0||11e4\",\"Asia/Tashkent|+05|-50|0||23e5\",\"Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|14e5\",\"Asia/Baghdad|+03|-30|0||66e5\",\"Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|40\",\"Asia/Dhaka|+06|-60|0||16e6\",\"Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1LGK0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|25e5\",\"Asia/Kamchatka|+12|-c0|0||18e4\",\"Asia/Baku|+04 +05|-40 -50|01010|1LHA0 1o00 11A0 1o00|27e5\",\"Asia/Barnaul|+07 +06|-70 -60|010|1N7v0 3rd0\",\"Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|1LHy0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|22e5\",\"Asia/Kuala_Lumpur|+08|-80|0||71e5\",\"Asia/Kolkata|IST|-5u|0||15e6\",\"Asia/Chita|+10 +08 +09|-a0 -80 -90|012|1N7s0 3re0|33e4\",\"Asia/Ulaanbaatar|+08 +09|-80 -90|01010|1O8G0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Shanghai|CST|-80|0||23e6\",\"Asia/Colombo|+0530|-5u|0||22e5\",\"Asia/Damascus|EET EEST|-20 -30|01010101010101010101010|1LGK0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|26e5\",\"Asia/Dili|+09|-90|0||19e4\",\"Asia/Dubai|+04|-40|0||39e5\",\"Asia/Famagusta|EET EEST +03|-20 -30 -30|0101012010101010101010|1LHB0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00\",\"Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1LGK0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|18e5\",\"Asia/Hong_Kong|HKT|-80|0||73e5\",\"Asia/Hovd|+07 +08|-70 -80|01010|1O8H0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|+09 +08|-90 -80|01|1N7t0|60e4\",\"Europe/Istanbul|EET EEST +03|-20 -30 -30|0101012|1LI10 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|WIB|-70|0||31e6\",\"Asia/Jayapura|WIT|-90|0||26e4\",\"Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|1LGM0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0|81e4\",\"Asia/Kabul|+0430|-4u|0||46e5\",\"Asia/Karachi|PKT|-50|0||24e6\",\"Asia/Kathmandu|+0545|-5J|0||12e5\",\"Asia/Yakutsk|+10 +09|-a0 -90|01|1N7s0|28e4\",\"Asia/Krasnoyarsk|+08 +07|-80 -70|01|1N7u0|10e5\",\"Asia/Magadan|+12 +10 +11|-c0 -a0 -b0|012|1N7q0 3Cq0|95e3\",\"Asia/Makassar|WITA|-80|0||15e5\",\"Asia/Manila|PST|-80|0||24e6\",\"Europe/Athens|EET EEST|-20 -30|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|35e5\",\"Asia/Novosibirsk|+07 +06|-70 -60|010|1N7v0 4eN0|15e5\",\"Asia/Omsk|+07 +06|-70 -60|01|1N7v0|12e5\",\"Asia/Pyongyang|KST KST|-90 -8u|010|1P4D0 6BA0|29e5\",\"Asia/Qyzylorda|+06 +05|-60 -50|01|1Xei0|73e4\",\"Asia/Rangoon|+0630|-6u|0||48e5\",\"Asia/Sakhalin|+11 +10|-b0 -a0|010|1N7r0 3rd0|58e4\",\"Asia/Seoul|KST|-90|0||23e6\",\"Asia/Srednekolymsk|+12 +11|-c0 -b0|01|1N7q0|35e2\",\"Asia/Tehran|+0330 +0430|-3u -4u|01010101010101010101010|1LEku 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Tokyo|JST|-90|0||38e6\",\"Asia/Tomsk|+07 +06|-70 -60|010|1N7v0 3Qp0|10e5\",\"Asia/Vladivostok|+11 +10|-b0 -a0|01|1N7r0|60e4\",\"Asia/Yekaterinburg|+06 +05|-60 -50|01|1N7w0|14e5\",\"Europe/Lisbon|WET WEST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|27e5\",\"Atlantic/Cape_Verde|-01|10|0||50e4\",\"Australia/Sydney|AEDT AEST|-b0 -a0|01010101010101010101010|1LKg0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0|40e5\",\"Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|1LKgu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0|11e5\",\"Australia/Brisbane|AEST|-a0|0||20e5\",\"Australia/Darwin|ACST|-9u|0||12e4\",\"Australia/Eucla|+0845|-8J|0||368\",\"Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|1LKf0 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu|347\",\"Australia/Perth|AWST|-80|0||18e5\",\"Pacific/Easter|-05 -06|50 60|010101010101010101010|1LSP0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0|30e2\",\"Europe/Dublin|GMT IST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5\",\"Etc/GMT-1|+01|-10|0|\",\"Pacific/Fakaofo|+13|-d0|0||483\",\"Pacific/Kiritimati|+14|-e0|0||51e2\",\"Etc/GMT-2|+02|-20|0|\",\"Pacific/Tahiti|-10|a0|0||18e4\",\"Pacific/Niue|-11|b0|0||12e2\",\"Etc/GMT+12|-12|c0|0|\",\"Pacific/Galapagos|-06|60|0||25e3\",\"Etc/GMT+7|-07|70|0|\",\"Pacific/Pitcairn|-08|80|0||56\",\"Pacific/Gambier|-09|90|0||125\",\"Etc/UTC|UTC|0|0|\",\"Europe/Ulyanovsk|+04 +03|-40 -30|010|1N7y0 3rd0|13e5\",\"Europe/London|GMT BST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|10e6\",\"Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|1LHA0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|67e4\",\"Europe/Kaliningrad|+03 EET|-30 -20|01|1N7z0|44e4\",\"Europe/Kirov|+04 +03|-40 -30|01|1N7y0|48e4\",\"Europe/Moscow|MSK MSK|-40 -30|01|1N7y0|16e6\",\"Europe/Saratov|+04 +03|-40 -30|010|1N7y0 5810\",\"Europe/Simferopol|EET MSK MSK|-20 -40 -30|012|1LHA0 1nW0|33e4\",\"Europe/Volgograd|+04 +03|-40 -30|010|1N7y0 9Jd0|10e5\",\"Pacific/Honolulu|HST|a0|0||37e4\",\"MET|MET MEST|-10 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00\",\"Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|600\",\"Pacific/Apia|+14 +13|-e0 -d0|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|37e3\",\"Pacific/Bougainville|+10 +11|-a0 -b0|01|1NwE0|18e4\",\"Pacific/Fiji|+13 +12|-d0 -c0|01010101010101010101010|1Lfp0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0|88e4\",\"Pacific/Guam|ChST|-a0|0||17e4\",\"Pacific/Marquesas|-0930|9u|0||86e2\",\"Pacific/Pago_Pago|SST|b0|0||37e2\",\"Pacific/Norfolk|+1130 +11|-bu -b0|01|1PoCu|25e4\",\"Pacific/Tongatapu|+13 +14|-d0 -e0|010|1S4d0 s00|75e3\"],links:[\"Africa/Abidjan|Africa/Accra\",\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Bissau\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Monrovia\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|America/Danmarkshavn\",\"Africa/Abidjan|Atlantic/Reykjavik\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Abidjan|Etc/GMT\",\"Africa/Abidjan|Etc/GMT+0\",\"Africa/Abidjan|Etc/GMT-0\",\"Africa/Abidjan|Etc/GMT0\",\"Africa/Abidjan|Etc/Greenwich\",\"Africa/Abidjan|GMT\",\"Africa/Abidjan|GMT+0\",\"Africa/Abidjan|GMT-0\",\"Africa/Abidjan|GMT0\",\"Africa/Abidjan|Greenwich\",\"Africa/Abidjan|Iceland\",\"Africa/Algiers|Africa/Tunis\",\"Africa/Cairo|Egypt\",\"Africa/Casablanca|Africa/El_Aaiun\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Ndjamena\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Juba\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|America/Juneau\",\"America/Anchorage|America/Nome\",\"America/Anchorage|America/Sitka\",\"America/Anchorage|America/Yakutat\",\"America/Anchorage|US/Alaska\",\"America/Campo_Grande|America/Cuiaba\",\"America/Chicago|America/Indiana/Knox\",\"America/Chicago|America/Indiana/Tell_City\",\"America/Chicago|America/Knox_IN\",\"America/Chicago|America/Matamoros\",\"America/Chicago|America/Menominee\",\"America/Chicago|America/North_Dakota/Beulah\",\"America/Chicago|America/North_Dakota/Center\",\"America/Chicago|America/North_Dakota/New_Salem\",\"America/Chicago|America/Rainy_River\",\"America/Chicago|America/Rankin_Inlet\",\"America/Chicago|America/Resolute\",\"America/Chicago|America/Winnipeg\",\"America/Chicago|CST6CDT\",\"America/Chicago|Canada/Central\",\"America/Chicago|US/Central\",\"America/Chicago|US/Indiana-Starke\",\"America/Chihuahua|America/Mazatlan\",\"America/Chihuahua|Mexico/BajaSur\",\"America/Denver|America/Boise\",\"America/Denver|America/Cambridge_Bay\",\"America/Denver|America/Edmonton\",\"America/Denver|America/Inuvik\",\"America/Denver|America/Ojinaga\",\"America/Denver|America/Shiprock\",\"America/Denver|America/Yellowknife\",\"America/Denver|Canada/Mountain\",\"America/Denver|MST7MDT\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Fortaleza|America/Araguaina\",\"America/Fortaleza|America/Argentina/Buenos_Aires\",\"America/Fortaleza|America/Argentina/Catamarca\",\"America/Fortaleza|America/Argentina/ComodRivadavia\",\"America/Fortaleza|America/Argentina/Cordoba\",\"America/Fortaleza|America/Argentina/Jujuy\",\"America/Fortaleza|America/Argentina/La_Rioja\",\"America/Fortaleza|America/Argentina/Mendoza\",\"America/Fortaleza|America/Argentina/Rio_Gallegos\",\"America/Fortaleza|America/Argentina/Salta\",\"America/Fortaleza|America/Argentina/San_Juan\",\"America/Fortaleza|America/Argentina/San_Luis\",\"America/Fortaleza|America/Argentina/Tucuman\",\"America/Fortaleza|America/Argentina/Ushuaia\",\"America/Fortaleza|America/Bahia\",\"America/Fortaleza|America/Belem\",\"America/Fortaleza|America/Buenos_Aires\",\"America/Fortaleza|America/Catamarca\",\"America/Fortaleza|America/Cayenne\",\"America/Fortaleza|America/Cordoba\",\"America/Fortaleza|America/Jujuy\",\"America/Fortaleza|America/Maceio\",\"America/Fortaleza|America/Mendoza\",\"America/Fortaleza|America/Paramaribo\",\"America/Fortaleza|America/Recife\",\"America/Fortaleza|America/Rosario\",\"America/Fortaleza|America/Santarem\",\"America/Fortaleza|Antarctica/Rothera\",\"America/Fortaleza|Atlantic/Stanley\",\"America/Fortaleza|Etc/GMT+3\",\"America/Halifax|America/Glace_Bay\",\"America/Halifax|America/Goose_Bay\",\"America/Halifax|America/Moncton\",\"America/Halifax|America/Thule\",\"America/Halifax|Atlantic/Bermuda\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/La_Paz|America/Boa_Vista\",\"America/La_Paz|America/Guyana\",\"America/La_Paz|America/Manaus\",\"America/La_Paz|America/Porto_Velho\",\"America/La_Paz|Brazil/West\",\"America/La_Paz|Etc/GMT+4\",\"America/Lima|America/Bogota\",\"America/Lima|America/Eirunepe\",\"America/Lima|America/Guayaquil\",\"America/Lima|America/Porto_Acre\",\"America/Lima|America/Rio_Branco\",\"America/Lima|Brazil/Acre\",\"America/Lima|Etc/GMT+5\",\"America/Los_Angeles|America/Dawson\",\"America/Los_Angeles|America/Ensenada\",\"America/Los_Angeles|America/Santa_Isabel\",\"America/Los_Angeles|America/Tijuana\",\"America/Los_Angeles|America/Vancouver\",\"America/Los_Angeles|America/Whitehorse\",\"America/Los_Angeles|Canada/Pacific\",\"America/Los_Angeles|Canada/Yukon\",\"America/Los_Angeles|Mexico/BajaNorte\",\"America/Los_Angeles|PST8PDT\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Managua|America/Belize\",\"America/Managua|America/Costa_Rica\",\"America/Managua|America/El_Salvador\",\"America/Managua|America/Guatemala\",\"America/Managua|America/Regina\",\"America/Managua|America/Swift_Current\",\"America/Managua|America/Tegucigalpa\",\"America/Managua|Canada/Saskatchewan\",\"America/Mexico_City|America/Bahia_Banderas\",\"America/Mexico_City|America/Merida\",\"America/Mexico_City|America/Monterrey\",\"America/Mexico_City|Mexico/General\",\"America/New_York|America/Detroit\",\"America/New_York|America/Fort_Wayne\",\"America/New_York|America/Indiana/Indianapolis\",\"America/New_York|America/Indiana/Marengo\",\"America/New_York|America/Indiana/Petersburg\",\"America/New_York|America/Indiana/Vevay\",\"America/New_York|America/Indiana/Vincennes\",\"America/New_York|America/Indiana/Winamac\",\"America/New_York|America/Indianapolis\",\"America/New_York|America/Iqaluit\",\"America/New_York|America/Kentucky/Louisville\",\"America/New_York|America/Kentucky/Monticello\",\"America/New_York|America/Louisville\",\"America/New_York|America/Montreal\",\"America/New_York|America/Nassau\",\"America/New_York|America/Nipigon\",\"America/New_York|America/Pangnirtung\",\"America/New_York|America/Thunder_Bay\",\"America/New_York|America/Toronto\",\"America/New_York|Canada/Eastern\",\"America/New_York|EST5EDT\",\"America/New_York|US/East-Indiana\",\"America/New_York|US/Eastern\",\"America/New_York|US/Michigan\",\"America/Noronha|Atlantic/South_Georgia\",\"America/Noronha|Brazil/DeNoronha\",\"America/Noronha|Etc/GMT+2\",\"America/Panama|America/Atikokan\",\"America/Panama|America/Cayman\",\"America/Panama|America/Coral_Harbour\",\"America/Panama|America/Jamaica\",\"America/Panama|EST\",\"America/Panama|Jamaica\",\"America/Phoenix|America/Creston\",\"America/Phoenix|America/Dawson_Creek\",\"America/Phoenix|America/Hermosillo\",\"America/Phoenix|MST\",\"America/Phoenix|US/Arizona\",\"America/Santiago|Chile/Continental\",\"America/Santo_Domingo|America/Anguilla\",\"America/Santo_Domingo|America/Antigua\",\"America/Santo_Domingo|America/Aruba\",\"America/Santo_Domingo|America/Barbados\",\"America/Santo_Domingo|America/Blanc-Sablon\",\"America/Santo_Domingo|America/Curacao\",\"America/Santo_Domingo|America/Dominica\",\"America/Santo_Domingo|America/Grenada\",\"America/Santo_Domingo|America/Guadeloupe\",\"America/Santo_Domingo|America/Kralendijk\",\"America/Santo_Domingo|America/Lower_Princes\",\"America/Santo_Domingo|America/Marigot\",\"America/Santo_Domingo|America/Martinique\",\"America/Santo_Domingo|America/Montserrat\",\"America/Santo_Domingo|America/Port_of_Spain\",\"America/Santo_Domingo|America/Puerto_Rico\",\"America/Santo_Domingo|America/St_Barthelemy\",\"America/Santo_Domingo|America/St_Kitts\",\"America/Santo_Domingo|America/St_Lucia\",\"America/Santo_Domingo|America/St_Thomas\",\"America/Santo_Domingo|America/St_Vincent\",\"America/Santo_Domingo|America/Tortola\",\"America/Santo_Domingo|America/Virgin\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"Antarctica/Palmer|America/Punta_Arenas\",\"Asia/Baghdad|Antarctica/Syowa\",\"Asia/Baghdad|Asia/Aden\",\"Asia/Baghdad|Asia/Bahrain\",\"Asia/Baghdad|Asia/Kuwait\",\"Asia/Baghdad|Asia/Qatar\",\"Asia/Baghdad|Asia/Riyadh\",\"Asia/Baghdad|Etc/GMT-3\",\"Asia/Baghdad|Europe/Minsk\",\"Asia/Bangkok|Antarctica/Davis\",\"Asia/Bangkok|Asia/Ho_Chi_Minh\",\"Asia/Bangkok|Asia/Novokuznetsk\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Saigon\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Bangkok|Etc/GMT-7\",\"Asia/Bangkok|Indian/Christmas\",\"Asia/Dhaka|Antarctica/Vostok\",\"Asia/Dhaka|Asia/Almaty\",\"Asia/Dhaka|Asia/Bishkek\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dhaka|Asia/Kashgar\",\"Asia/Dhaka|Asia/Qostanay\",\"Asia/Dhaka|Asia/Thimbu\",\"Asia/Dhaka|Asia/Thimphu\",\"Asia/Dhaka|Asia/Urumqi\",\"Asia/Dhaka|Etc/GMT-6\",\"Asia/Dhaka|Indian/Chagos\",\"Asia/Dili|Etc/GMT-9\",\"Asia/Dili|Pacific/Palau\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Dubai|Asia/Tbilisi\",\"Asia/Dubai|Asia/Yerevan\",\"Asia/Dubai|Etc/GMT-4\",\"Asia/Dubai|Europe/Samara\",\"Asia/Dubai|Indian/Mahe\",\"Asia/Dubai|Indian/Mauritius\",\"Asia/Dubai|Indian/Reunion\",\"Asia/Gaza|Asia/Hebron\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jakarta|Asia/Pontianak\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kamchatka|Asia/Anadyr\",\"Asia/Kamchatka|Etc/GMT-12\",\"Asia/Kamchatka|Kwajalein\",\"Asia/Kamchatka|Pacific/Funafuti\",\"Asia/Kamchatka|Pacific/Kwajalein\",\"Asia/Kamchatka|Pacific/Majuro\",\"Asia/Kamchatka|Pacific/Nauru\",\"Asia/Kamchatka|Pacific/Tarawa\",\"Asia/Kamchatka|Pacific/Wake\",\"Asia/Kamchatka|Pacific/Wallis\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Brunei\",\"Asia/Kuala_Lumpur|Asia/Kuching\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Etc/GMT-8\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Rangoon|Indian/Cocos\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|Asia/Macao\",\"Asia/Shanghai|Asia/Macau\",\"Asia/Shanghai|Asia/Taipei\",\"Asia/Shanghai|PRC\",\"Asia/Shanghai|ROC\",\"Asia/Tashkent|Antarctica/Mawson\",\"Asia/Tashkent|Asia/Aqtau\",\"Asia/Tashkent|Asia/Aqtobe\",\"Asia/Tashkent|Asia/Ashgabat\",\"Asia/Tashkent|Asia/Ashkhabad\",\"Asia/Tashkent|Asia/Atyrau\",\"Asia/Tashkent|Asia/Dushanbe\",\"Asia/Tashkent|Asia/Oral\",\"Asia/Tashkent|Asia/Samarkand\",\"Asia/Tashkent|Etc/GMT-5\",\"Asia/Tashkent|Indian/Kerguelen\",\"Asia/Tashkent|Indian/Maldives\",\"Asia/Tehran|Iran\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Choibalsan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Vladivostok|Asia/Ust-Nera\",\"Asia/Yakutsk|Asia/Khandyga\",\"Atlantic/Azores|America/Scoresbysund\",\"Atlantic/Cape_Verde|Etc/GMT+1\",\"Australia/Adelaide|Australia/Broken_Hill\",\"Australia/Adelaide|Australia/South\",\"Australia/Adelaide|Australia/Yancowinna\",\"Australia/Brisbane|Australia/Lindeman\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Darwin|Australia/North\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/Currie\",\"Australia/Sydney|Australia/Hobart\",\"Australia/Sydney|Australia/Melbourne\",\"Australia/Sydney|Australia/NSW\",\"Australia/Sydney|Australia/Tasmania\",\"Australia/Sydney|Australia/Victoria\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Athens|Asia/Nicosia\",\"Europe/Athens|EET\",\"Europe/Athens|Europe/Bucharest\",\"Europe/Athens|Europe/Helsinki\",\"Europe/Athens|Europe/Kiev\",\"Europe/Athens|Europe/Mariehamn\",\"Europe/Athens|Europe/Nicosia\",\"Europe/Athens|Europe/Riga\",\"Europe/Athens|Europe/Sofia\",\"Europe/Athens|Europe/Tallinn\",\"Europe/Athens|Europe/Uzhgorod\",\"Europe/Athens|Europe/Vilnius\",\"Europe/Athens|Europe/Zaporozhye\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Atlantic/Canary\",\"Europe/Lisbon|Atlantic/Faeroe\",\"Europe/Lisbon|Atlantic/Faroe\",\"Europe/Lisbon|Atlantic/Madeira\",\"Europe/Lisbon|Portugal\",\"Europe/Lisbon|WET\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Paris|Africa/Ceuta\",\"Europe/Paris|Arctic/Longyearbyen\",\"Europe/Paris|Atlantic/Jan_Mayen\",\"Europe/Paris|CET\",\"Europe/Paris|Europe/Amsterdam\",\"Europe/Paris|Europe/Andorra\",\"Europe/Paris|Europe/Belgrade\",\"Europe/Paris|Europe/Berlin\",\"Europe/Paris|Europe/Bratislava\",\"Europe/Paris|Europe/Brussels\",\"Europe/Paris|Europe/Budapest\",\"Europe/Paris|Europe/Busingen\",\"Europe/Paris|Europe/Copenhagen\",\"Europe/Paris|Europe/Gibraltar\",\"Europe/Paris|Europe/Ljubljana\",\"Europe/Paris|Europe/Luxembourg\",\"Europe/Paris|Europe/Madrid\",\"Europe/Paris|Europe/Malta\",\"Europe/Paris|Europe/Monaco\",\"Europe/Paris|Europe/Oslo\",\"Europe/Paris|Europe/Podgorica\",\"Europe/Paris|Europe/Prague\",\"Europe/Paris|Europe/Rome\",\"Europe/Paris|Europe/San_Marino\",\"Europe/Paris|Europe/Sarajevo\",\"Europe/Paris|Europe/Skopje\",\"Europe/Paris|Europe/Stockholm\",\"Europe/Paris|Europe/Tirane\",\"Europe/Paris|Europe/Vaduz\",\"Europe/Paris|Europe/Vatican\",\"Europe/Paris|Europe/Vienna\",\"Europe/Paris|Europe/Warsaw\",\"Europe/Paris|Europe/Zagreb\",\"Europe/Paris|Europe/Zurich\",\"Europe/Paris|Poland\",\"Europe/Ulyanovsk|Europe/Astrakhan\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Fakaofo|Etc/GMT-13\",\"Pacific/Fakaofo|Pacific/Enderbury\",\"Pacific/Galapagos|Etc/GMT+6\",\"Pacific/Gambier|Etc/GMT+9\",\"Pacific/Guadalcanal|Antarctica/Macquarie\",\"Pacific/Guadalcanal|Etc/GMT-11\",\"Pacific/Guadalcanal|Pacific/Efate\",\"Pacific/Guadalcanal|Pacific/Kosrae\",\"Pacific/Guadalcanal|Pacific/Noumea\",\"Pacific/Guadalcanal|Pacific/Pohnpei\",\"Pacific/Guadalcanal|Pacific/Ponape\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|HST\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kiritimati|Etc/GMT-14\",\"Pacific/Niue|Etc/GMT+11\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Pitcairn|Etc/GMT+8\",\"Pacific/Port_Moresby|Antarctica/DumontDUrville\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Port_Moresby|Pacific/Chuuk\",\"Pacific/Port_Moresby|Pacific/Truk\",\"Pacific/Port_Moresby|Pacific/Yap\",\"Pacific/Tahiti|Etc/GMT+10\",\"Pacific/Tahiti|Pacific/Rarotonga\"]}),r}),moment.fn.shortDateNoYear=function(){return this.format(\"D MMM\")},moment.fn.shortDate=function(){return this.format(\"D MMM YYYY\")},moment.fn.longDate=function(){return this.format(\"D MMMM YYYY LT\")},moment.fn.relativeAge=function(e){return Discourse.Formatter.relativeAge(this.toDate(),e)};\n//# sourceMappingURL=/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js.map"
          },
          "redirectURL": "",
          "headersSize": 194,
          "bodySize": 63976,
          "_transferSize": 64170
        },
        "cache": {},
        "timings": {
          "blocked": 1071.5589999989625,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.10200000000008913,
          "wait": 194.04399999901648,
          "receive": 1083.8039999944158,
          "_blocked_queueing": 8.335999998962507
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739969"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.619Z",
        "time": 2351.0910000186414,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000498"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:41 GMT"
            },
            {
              "name": "Content-Length",
              "value": "63976"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 217699,
            "mimeType": "application/javascript",
            "text": "var I18n=I18n||{};I18n.defaultLocale=\"en\",I18n.pluralizationRules={en:function(e){return 0===e?[\"zero\",\"none\",\"other\"]:1===e?\"one\":\"other\"}},I18n.locale=null,I18n.fallbackLocale=null,I18n.PLACEHOLDER=/(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm,I18n.SEPARATOR=\".\",I18n.noFallbacks=!1,I18n.isValidNode=function(e,t,o){return null!==e[t]&&e[t]!==o},I18n.lookup=function(e,t){t=t||{};var o=this.prepareOptions(I18n.translations),a=t.locale||I18n.currentLocale(),i=o[a]||{};t=this.prepareOptions(t),\"object\"==typeof e&&(e=e.join(this.SEPARATOR)),t.scope&&(e=t.scope.toString()+this.SEPARATOR+e);var r=e;for(0<(e=e.split(this.SEPARATOR)).length&&\"js\"!==e[0]&&e.unshift(\"js\");i&&0<e.length;)i=i[e.shift()];if(void 0===i&&this.extras&&this.extras[a])for(i=this.extras[a],e=r.split(this.SEPARATOR);i&&0<e.length;)i=i[e.shift()];return void 0===i&&(i=t.defaultValue),i},I18n.prepareOptions=function(){for(var e,t={},o=arguments.length,a=0;a<o;a++)if(e=arguments[a])for(var i in e)this.isValidNode(t,i)||(t[i]=e[i]);return t},I18n.interpolate=function(e,t){t=this.prepareOptions(t);var o,a,i,r=e.match(this.PLACEHOLDER);if(!r)return e;for(var n=0;o=r[n];n++){a=\"string\"==typeof t[i=o.replace(this.PLACEHOLDER,\"$1\")]?t[i].replace(/\\$/g,\"$$$$\"):t[i],this.isValidNode(t,i)||(a=\"[missing \"+o+\" value]\");var s=new RegExp(o.replace(/\\{/gm,\"\\\\{\").replace(/\\}/gm,\"\\\\}\"));e=e.replace(s,a)}return e},I18n.translate=function(t,e){(e=this.prepareOptions(e)).needsPluralization=\"number\"==typeof e.count,e.ignoreMissing=!this.noFallbacks;var o=this.findTranslation(t,e);this.noFallbacks||(!o&&this.fallbackLocale&&(e.locale=this.fallbackLocale,o=this.findTranslation(t,e)),e.ignoreMissing=!1,o||this.currentLocale()===this.defaultLocale||(e.locale=this.defaultLocale,o=this.findTranslation(t,e)),o||\"en\"===this.currentLocale()||(e.locale=\"en\",o=this.findTranslation(t,e)));try{return this.interpolate(o,e)}catch(e){return this.missingTranslation(t)}},I18n.findTranslation=function(e,t){var o=this.lookup(e,t);return o&&t.needsPluralization&&(o=this.pluralize(o,e,t)),o},I18n.toNumber=function(e,t){t=this.prepareOptions(t,this.lookup(\"number.format\"),{precision:3,separator:this.SEPARATOR,delimiter:\",\",strip_insignificant_zeros:!1});var o,a,i=e<0,r=Math.abs(e).toFixed(t.precision).toString().split(this.SEPARATOR),n=[];for(e=r[0],r[1];0<e.length;)n.unshift(e.substr(Math.max(0,e.length-3),3)),e=e.substr(0,e.length-3);return a=n.join(t.delimiter),0<t.precision&&(a+=t.separator+r[1]),i&&(a=\"-\"+a),t.strip_insignificant_zeros&&(o={separator:new RegExp(t.separator.replace(/\\./,\"\\\\.\")+\"$\"),zeros:/0+$/},a=a.replace(o.zeros,\"\").replace(o.separator,\"\")),a},I18n.toHumanSize=function(e,t){for(var o,a,i=e,r=0;1024<=i&&r<4;)i/=1024,r+=1;return a=0===r?(o=this.t(\"number.human.storage_units.units.byte\",{count:i}),0):(o=this.t(\"number.human.storage_units.units.\"+[null,\"kb\",\"mb\",\"gb\",\"tb\"][r]),i-Math.floor(i)==0?0:1),t=this.prepareOptions(t,{precision:a,format:\"%n%u\",delimiter:\"\"}),e=this.toNumber(i,t),e=t.format.replace(\"%u\",o).replace(\"%n\",e)},I18n.pluralizer=function(e){var t=this.pluralizationRules[e];return void 0!==t?t:this.pluralizationRules.en},I18n.findAndTranslateValidNode=function(e,t){for(var o=0;o<e.length;o++){var a=e[o];if(this.isValidNode(t,a))return t[a]}return null},I18n.pluralize=function(e,t,o){if(\"object\"!=typeof e)return e;var a=(o=this.prepareOptions(o)).count.toString(),i=this.pluralizer(o.locale||this.currentLocale())(Math.abs(a)),r=\"object\"==typeof i&&i instanceof Array?i:[i],n=this.findAndTranslateValidNode(r,e);return null!==n||o.ignoreMissing?n:this.missingTranslation(t,r[0])},I18n.missingTranslation=function(e,t){var o=\"[\"+this.currentLocale()+this.SEPARATOR+e;return t&&(o+=this.SEPARATOR+t),o+\"]\"},I18n.currentLocale=function(){return I18n.locale||I18n.defaultLocale},I18n.enableVerboseLocalization=function(){var i=0,r={},n=I18n.t;I18n.noFallbacks=!0,I18n.t=I18n.translate=function(e,t){var o,a=r[e];return a||(o=\"Translation #\"+(a=r[e]=++i)+\": \"+e,_.isEmpty(t)||(o+=\", parameters: \"+JSON.stringify(t)),console.info(o)),n.apply(I18n,[e,t])+\" (#\"+a+\")\"}},I18n.enableVerboseLocalizationSession=function(){return sessionStorage.setItem(\"verbose_localization\",\"true\"),I18n.enableVerboseLocalization(),\"Verbose localization is enabled. Close the browser tab to turn it off. Reload the page to see the translation keys.\"},I18n.t=I18n.translate,MessageFormat={locale:{}},I18n._compiledMFs={\"logs_error_rate_notice.reached_hour_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> reached site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.reached_minute_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> reached site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.exceeded_hour_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> exceeded site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/hour\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/hour\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"logs_error_rate_notice.exceeded_minute_MF\":function(e){var t=\"\";if(t+=\"<b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.relativeAge,t+=\"</b> – <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.url,t+=\"' target='_blank'>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"rate\",a=e[o],i=0,r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\"</a> exceeded site setting limit of \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"limit\"],i=0;return(r={one:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" error/minute\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" errors/minute\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\".\"},\"topic.read_more_MF\":function(e){var t=\"\";if(t+=\"There \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var a=\"UNREAD\",i=e[a],r=0,o={0:function(e){return\"\"},one:function(e){var t=\"\";if(t+=\"is <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/unread'>1 unread</a> \"},other:function(e){var t=\"\";if(t+=\"are <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/unread'>\"+function(){var e=i-r;if(isNaN(e))throw new Error(\"MessageFormat: `\"+a+\"` isnt a number.\");return e}()+\" unread</a> \"}};if(o[i+\"\"]?t+=o[i+\"\"](e):t+=(o[MessageFormat.locale.en(i-r)]||o.other)(e),t+=\" \",!e)throw new Error(\"MessageFormat: No data passed to function.\");i=e[a=\"NEW\"],r=0;if((o={0:function(e){return\"\"},one:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");var o={true:function(e){return\"and \"},false:function(e){return\"is \"},other:function(e){return\"\"}};if(t+=(o[e.BOTH]||o.other)(e),t+=\" <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/new'>1 new</a> topic\"},other:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");var o={true:function(e){return\"and \"},false:function(e){return\"are \"},other:function(e){return\"\"}};if(t+=(o[e.BOTH]||o.other)(e),t+=\" <a href='\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.basePath,t+=\"/new'>\"+function(){var e=i-r;if(isNaN(e))throw new Error(\"MessageFormat: `\"+a+\"` isnt a number.\");return e}()+\" new</a> topics\"}})[i+\"\"]?t+=o[i+\"\"](e):t+=(o[MessageFormat.locale.en(i-r)]||o.other)(e),t+=\" remaining, or \",!e)throw new Error(\"MessageFormat: No data passed to function.\");i=e[a=\"CATEGORY\"],r=0;return t+=((o={true:function(e){var t=\"\";if(t+=\"browse other topics in \",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.catLink},false:function(e){var t=\"\";if(!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.latestLink},other:function(e){return\"\"}})[i]||o.other)(e)},\"flagging.delete_confirm_MF\":function(e){var t=\"\";if(t+=\"You are about to delete \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"POSTS\",a=e[o],i=0,r={one:function(e){return\"<b>1</b> post\"},other:function(e){var t=\"\";return t+=\"<b>\"+function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\"</b> posts\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" and \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"TOPICS\"],i=0;if((r={one:function(e){return\"<b>1</b> topic\"},other:function(e){var t=\"\";return t+=\"<b>\"+function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\"</b> topics\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" from this user, remove their account, block signups from their IP address <b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");if(t+=e.ip_address,t+=\"</b>, and add their email address <b>\",!e)throw new Error(\"MessageFormat: No data passed to function.\");return t+=e.email,t+=\"</b> to a permanent block list. Are you sure this user is really a spammer?\"},posts_likes_MF:function(e){var t=\"\";if(t+=\"This topic has \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"count\",a=e[o],i=0,r={one:function(e){return\"1 reply\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" replies\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"ratio\"],i=0;return t+=((r={low:function(e){return\"with a high like to post ratio\"},med:function(e){return\"with a very high like to post ratio\"},high:function(e){return\"with an extremely high like to post ratio\"},other:function(e){return\"\"}})[a]||r.other)(e),t+=\"\\n\"},\"admin.user.delete_all_posts_confirm_MF\":function(e){var t=\"\";if(t+=\"You are about to delete \",!e)throw new Error(\"MessageFormat: No data passed to function.\");var o=\"POSTS\",a=e[o],i=0,r={one:function(e){return\"1 post\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" posts\"}};if(r[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\" and \",!e)throw new Error(\"MessageFormat: No data passed to function.\");a=e[o=\"TOPICS\"],i=0;return(r={one:function(e){return\"1 topic\"},other:function(e){var t=\"\";return t+=function(){var e=a-i;if(isNaN(e))throw new Error(\"MessageFormat: `\"+o+\"` isnt a number.\");return e}()+\" topics\"}})[a+\"\"]?t+=r[a+\"\"](e):t+=(r[MessageFormat.locale.en(a-i)]||r.other)(e),t+=\". Are you sure?\"}},MessageFormat.locale.en=function(e){return 1===e?\"one\":\"other\"},I18n.messageFormat=function(e,t){var o=I18n._compiledMFs[e];if(!o)return\"Missing Key: \"+e;try{return o(t)}catch(e){return e.message}return I18n._compiledMFs[e](t)},I18n.translations={en_US:{js:{dates:{time:\"h:mm a\",time_short_day:\"ddd, h:mm a\",timeline_date:\"MMM YYYY\",long_no_year:\"MMM D h:mm a\",long_no_year_no_time:\"MMM D\",full_no_year_no_time:\"MMMM Do\",long_with_year:\"MMM D, YYYY h:mm a\",long_with_year_no_time:\"MMM D, YYYY\",full_with_year_no_time:\"MMMM Do, YYYY\",long_date_with_year:\"MMM D, 'YY LT\",long_date_without_year:\"MMM D, LT\",long_date_with_year_without_time:\"MMM D, 'YY\",long_date_without_year_with_linebreak:\"MMM D <br/>LT\",long_date_with_year_with_linebreak:\"MMM D, 'YY <br/>LT\",tiny:{date_month:\"MMM D\",date_year:\"MMM 'YY\"},medium:{date_year:\"MMM D, 'YY\"}}}},en:{js:{number:{format:{separator:\".\",delimiter:\",\"},human:{storage_units:{format:\"%n %u\",units:{byte:{one:\"Byte\",other:\"Bytes\"},gb:\"GB\",kb:\"KB\",mb:\"MB\",tb:\"TB\"}}},short:{thousands:\"{{number}}k\",millions:\"{{number}}M\"}},dates:{wrap_ago:\"%{date} ago\",tiny:{half_a_minute:\"< 1m\",less_than_x_seconds:{one:\"< %{count}s\",other:\"< %{count}s\"},x_seconds:{one:\"%{count}s\",other:\"%{count}s\"},less_than_x_minutes:{one:\"< %{count}m\",other:\"< %{count}m\"},x_minutes:{one:\"%{count}m\",other:\"%{count}m\"},about_x_hours:{one:\"%{count}h\",other:\"%{count}h\"},x_days:{one:\"%{count}d\",other:\"%{count}d\"},x_months:{one:\"%{count}mon\",other:\"%{count}mon\"},about_x_years:{one:\"%{count}y\",other:\"%{count}y\"},over_x_years:{one:\"> %{count}y\",other:\"> %{count}y\"},almost_x_years:{one:\"%{count}y\",other:\"%{count}y\"}},medium:{x_minutes:{one:\"%{count} min\",other:\"%{count} mins\"},x_hours:{one:\"%{count} hour\",other:\"%{count} hours\"},x_days:{one:\"%{count} day\",other:\"%{count} days\"}},medium_with_ago:{x_minutes:{one:\"%{count} min ago\",other:\"%{count} mins ago\"},x_hours:{one:\"%{count} hour ago\",other:\"%{count} hours ago\"},x_days:{one:\"%{count} day ago\",other:\"%{count} days ago\"},x_months:{one:\"%{count} month ago\",other:\"%{count} months ago\"},x_years:{one:\"%{count} year ago\",other:\"%{count} years ago\"}},later:{x_days:{one:\"%{count} day later\",other:\"%{count} days later\"},x_months:{one:\"%{count} month later\",other:\"%{count} months later\"},x_years:{one:\"%{count} year later\",other:\"%{count} years later\"}},previous_month:\"Previous Month\",next_month:\"Next Month\",placeholder:\"date\"},share:{topic_html:'Topic: <span class=\"topic-title\">%{topicTitle}</span>',post:\"post #%{postNumber}\",close:\"close\",twitter:\"Share this link on Twitter\",facebook:\"Share this link on Facebook\",email:\"Send this link in an email\"},action_codes:{public_topic:\"made this topic public %{when}\",private_topic:\"made this topic a personal message %{when}\",split_topic:\"split this topic %{when}\",invited_user:\"invited %{who} %{when}\",invited_group:\"invited %{who} %{when}\",user_left:\"%{who} removed themselves from this message %{when}\",removed_user:\"removed %{who} %{when}\",removed_group:\"removed %{who} %{when}\",autobumped:\"automatically bumped %{when}\",autoclosed:{enabled:\"closed %{when}\",disabled:\"opened %{when}\"},closed:{enabled:\"closed %{when}\",disabled:\"opened %{when}\"},archived:{enabled:\"archived %{when}\",disabled:\"unarchived %{when}\"},pinned:{enabled:\"pinned %{when}\",disabled:\"unpinned %{when}\"},pinned_globally:{enabled:\"pinned globally %{when}\",disabled:\"unpinned %{when}\"},visible:{enabled:\"listed %{when}\",disabled:\"unlisted %{when}\"},banner:{enabled:\"made this a banner %{when}. It will appear at the top of every page until it is dismissed by the user.\",disabled:\"removed this banner %{when}. It will no longer appear at the top of every page.\"},forwarded:\"forwarded the above email\"},topic_admin_menu:\"topic actions\",wizard_required:\"Welcome to your new Discourse! Let’s get started with <a href='%{url}' data-auto-route='true'>the setup wizard</a> ✨\",emails_are_disabled:\"All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.\",bootstrap_mode_enabled:\"To make launching your new site easier, you are in bootstrap mode. All new users will be granted trust level 1 and have daily email summary emails enabled. This will be automatically turned off when %{min_users} users have joined.\",bootstrap_mode_disabled:\"Bootstrap mode will be disabled within 24 hours.\",themes:{default_description:\"Default\",broken_theme_alert:\"Your site may not work because theme / component %{theme} has errors. Disable it at %{path}.\"},s3:{regions:{ap_northeast_1:\"Asia Pacific (Tokyo)\",ap_northeast_2:\"Asia Pacific (Seoul)\",ap_south_1:\"Asia Pacific (Mumbai)\",ap_southeast_1:\"Asia Pacific (Singapore)\",ap_southeast_2:\"Asia Pacific (Sydney)\",ca_central_1:\"Canada (Central)\",cn_north_1:\"China (Beijing)\",cn_northwest_1:\"China (Ningxia)\",eu_central_1:\"EU (Frankfurt)\",eu_north_1:\"EU (Stockholm)\",eu_west_1:\"EU (Ireland)\",eu_west_2:\"EU (London)\",eu_west_3:\"EU (Paris)\",sa_east_1:\"South America (São Paulo)\",us_east_1:\"US East (N. Virginia)\",us_east_2:\"US East (Ohio)\",us_gov_east_1:\"AWS GovCloud (US-East)\",us_gov_west_1:\"AWS GovCloud (US-West)\",us_west_1:\"US West (N. California)\",us_west_2:\"US West (Oregon)\"}},edit:\"edit the title and category of this topic\",expand:\"Expand\",not_implemented:\"That feature hasn't been implemented yet, sorry!\",no_value:\"No\",yes_value:\"Yes\",submit:\"Submit\",generic_error:\"Sorry, an error has occurred.\",generic_error_with_reason:\"An error occurred: %{error}\",go_ahead:\"Go ahead\",sign_up:\"Sign Up\",log_in:\"Log In\",age:\"Age\",joined:\"Joined\",admin_title:\"Admin\",show_more:\"show more\",show_help:\"options\",links:\"Links\",links_lowercase:{one:\"link\",other:\"links\"},faq:\"FAQ\",guidelines:\"Guidelines\",privacy_policy:\"Privacy Policy\",privacy:\"Privacy\",tos:\"Terms of Service\",rules:\"Rules\",conduct:\"Code of Conduct\",mobile_view:\"Mobile View\",desktop_view:\"Desktop View\",you:\"You\",or:\"or\",now:\"just now\",read_more:\"read more\",more:\"More\",less:\"Less\",never:\"never\",every_30_minutes:\"every 30 minutes\",every_hour:\"every hour\",daily:\"daily\",weekly:\"weekly\",every_month:\"every month\",every_six_months:\"every six months\",max_of_count:\"max of {{count}}\",alternation:\"or\",character_count:{one:\"{{count}} character\",other:\"{{count}} characters\"},related_messages:{title:\"Related Messages\",see_all:'See <a href=\"%{path}\">all messages</a> from @%{username}...'},suggested_topics:{title:\"Suggested Topics\",pm_title:\"Suggested Messages\"},about:{simple_title:\"About\",title:\"About %{title}\",stats:\"Site Statistics\",our_admins:\"Our Admins\",our_moderators:\"Our Moderators\",moderators:\"Moderators\",stat:{all_time:\"All Time\",last_7_days:\"Last 7\",last_30_days:\"Last 30\"},like_count:\"Likes\",topic_count:\"Topics\",post_count:\"Posts\",user_count:\"Users\",active_user_count:\"Active Users\",contact:\"Contact Us\",contact_info:\"In the event of a critical issue or urgent matter affecting this site, please contact us at %{contact_info}.\"},bookmarked:{title:\"Bookmark\",clear_bookmarks:\"Clear Bookmarks\",help:{bookmark:\"Click to bookmark the first post on this topic\",unbookmark:\"Click to remove all bookmarks in this topic\"}},bookmarks:{created:\"you've bookmarked this post\",not_bookmarked:\"bookmark this post\",created_with_reminder:\"you've bookmarked this post with a reminder at %{date}\",remove:\"Remove Bookmark\",confirm_clear:\"Are you sure you want to clear all your bookmarks from this topic?\",save:\"Save\",no_timezone:'You have not set a timezone yet. You will not be able to set reminders. Set one up <a href=\"%{basePath}/my/preferences/profile\">in your profile</a>.',reminders:{at_desktop:\"Next time I'm at my desktop\",later_today:\"Later today <br/>{{date}}\",next_business_day:\"Next business day <br/>{{date}}\",tomorrow:\"Tomorrow <br/>{{date}}\",next_week:\"Next week <br/>{{date}}\",next_month:\"Next month <br/>{{date}}\",custom:\"Custom date and time\"}},drafts:{resume:\"Resume\",remove:\"Remove\",new_topic:\"New topic draft\",new_private_message:\"New private message draft\",topic_reply:\"Draft reply\",abandon:{confirm:\"You already opened another draft in this topic. Are you sure you want to abandon it?\",yes_value:\"Yes, abandon\",no_value:\"No, keep\"}},topic_count_latest:{one:\"See {{count}} new or updated topic\",other:\"See {{count}} new or updated topics\"},topic_count_unread:{one:\"See {{count}} unread topic\",other:\"See {{count}} unread topics\"},topic_count_new:{one:\"See {{count}} new topic\",other:\"See {{count}} new topics\"},preview:\"preview\",cancel:\"cancel\",save:\"Save Changes\",saving:\"Saving...\",saved:\"Saved!\",upload:\"Upload\",uploading:\"Uploading...\",uploading_filename:\"Uploading: {{filename}}...\",clipboard:\"clipboard\",uploaded:\"Uploaded!\",pasting:\"Pasting...\",enable:\"Enable\",disable:\"Disable\",continue:\"Continue\",undo:\"Undo\",revert:\"Revert\",failed:\"Failed\",switch_to_anon:\"Enter Anonymous Mode\",switch_from_anon:\"Exit Anonymous Mode\",banner:{close:\"Dismiss this banner.\",edit:\"Edit this banner >>\"},pwa:{install_banner:\"Do you want to <a href>install %{title} on this device?</a>\"},choose_topic:{none_found:\"No topics found.\",title:{search:\"Search for a Topic\",placeholder:\"type the topic title, url or id here\"}},choose_message:{none_found:\"No messages found.\",title:{search:\"Search for a Message\",placeholder:\"type the message title, url or id here\"}},review:{order_by:\"Order by\",in_reply_to:\"in reply to\",explain:{why:\"explain why this item ended up in the queue\",title:\"Reviewable Scoring\",formula:\"Formula\",subtotal:\"Subtotal\",total:\"Total\",min_score_visibility:\"Minimum Score for Visibility\",score_to_hide:\"Score to Hide Post\",take_action_bonus:{name:\"took action\",title:\"When a staff member chooses to take action the flag is given a bonus.\"},user_accuracy_bonus:{name:\"user accuracy\",title:\"Users whose flags have been historically agreed with are given a bonus.\"},trust_level_bonus:{name:\"trust level\",title:\"Reviewable items created by higher trust level users have a higher score.\"},type_bonus:{name:\"type bonus\",title:\"Certain reviewable types can be assigned a bonus by staff to make them a higher priority.\"}},claim_help:{optional:\"You can claim this item to prevent others from reviewing it.\",required:\"You must claim items before you can review them.\",claimed_by_you:\"You've claimed this item and can review it.\",claimed_by_other:\"This item can only be reviewed by <b>{{username}}</b>.\"},claim:{title:\"claim this topic\"},unclaim:{help:\"remove this claim\"},awaiting_approval:\"Awaiting Approval\",delete:\"Delete\",settings:{saved:\"Saved\",save_changes:\"Save Changes\",title:\"Settings\",priorities:{title:\"Reviewable Priorities\"}},moderation_history:\"Moderation History\",view_all:\"View All\",grouped_by_topic:\"Grouped by Topic\",none:\"There are no items to review.\",view_pending:\"view pending\",topic_has_pending:{one:\"This topic has <b>%{count}</b> post pending approval\",other:\"This topic has <b>{{count}}</b> posts pending approval\"},title:\"Review\",topic:\"Topic:\",filtered_topic:\"You have filtered to reviewable content in a single topic.\",filtered_user:\"User\",show_all_topics:\"show all topics\",deleted_post:\"(post deleted)\",deleted_user:\"(user deleted)\",user:{bio:\"Bio\",website:\"Website\",username:\"Username\",email:\"Email\",name:\"Name\",fields:\"Fields\"},user_percentage:{summary:{one:\"{{agreed}}, {{disagreed}}, {{ignored}} ({{count}} total flag)\",other:\"{{agreed}}, {{disagreed}}, {{ignored}} ({{count}} total flags)\"},agreed:{one:\"{{count}}% agree\",other:\"{{count}}% agree\"},disagreed:{one:\"{{count}}% disagree\",other:\"{{count}}% disagree\"},ignored:{one:\"{{count}}% ignore\",other:\"{{count}}% ignore\"}},topics:{topic:\"Topic\",reviewable_count:\"Count\",reported_by:\"Reported by\",deleted:\"[Topic Deleted]\",original:\"(original topic)\",details:\"details\",unique_users:{one:\"%{count} user\",other:\"{{count}} users\"}},replies:{one:\"%{count} reply\",other:\"{{count}} replies\"},edit:\"Edit\",save:\"Save\",cancel:\"Cancel\",new_topic:\"Approving this item will create a new topic\",filters:{all_categories:\"(all categories)\",type:{title:\"Type\",all:\"(all types)\"},minimum_score:\"Minimum Score:\",refresh:\"Refresh\",status:\"Status\",category:\"Category\",orders:{priority:\"Priority\",priority_asc:\"Priority (reverse)\",created_at:\"Created At\",created_at_asc:\"Created At (reverse)\"},priority:{title:\"Minimum Priority\",low:\"(any)\",medium:\"Medium\",high:\"High\"}},conversation:{view_full:\"view full conversation\"},scores:{about:\"This score is calculated based on the trust level of the reporter, the accuracy of their previous flags, and the priority of the item being reported.\",score:\"Score\",date:\"Date\",type:\"Type\",status:\"Status\",submitted_by:\"Submitted By\",reviewed_by:\"Reviewed By\"},statuses:{pending:{title:\"Pending\"},approved:{title:\"Approved\"},rejected:{title:\"Rejected\"},ignored:{title:\"Ignored\"},deleted:{title:\"Deleted\"},reviewed:{title:\"(all reviewed)\"},all:{title:\"(everything)\"}},types:{reviewable_flagged_post:{title:\"Flagged Post\",flagged_by:\"Flagged By\"},reviewable_queued_topic:{title:\"Queued Topic\"},reviewable_queued_post:{title:\"Queued Post\"},reviewable_user:{title:\"User\"}},approval:{title:\"Post Needs Approval\",description:\"We've received your new post but it needs to be approved by a moderator before it will appear. Please be patient.\",pending_posts:{one:\"You have <strong>%{count}</strong> post pending.\",other:\"You have <strong>{{count}}</strong> posts pending.\"},ok:\"OK\"}},user_action:{user_posted_topic:\"<a href='{{userUrl}}'>{{user}}</a> posted <a href='{{topicUrl}}'>the topic</a>\",you_posted_topic:\"<a href='{{userUrl}}'>You</a> posted <a href='{{topicUrl}}'>the topic</a>\",user_replied_to_post:\"<a href='{{userUrl}}'>{{user}}</a> replied to <a href='{{postUrl}}'>{{post_number}}</a>\",you_replied_to_post:\"<a href='{{userUrl}}'>You</a> replied to <a href='{{postUrl}}'>{{post_number}}</a>\",user_replied_to_topic:\"<a href='{{userUrl}}'>{{user}}</a> replied to <a href='{{topicUrl}}'>the topic</a>\",you_replied_to_topic:\"<a href='{{userUrl}}'>You</a> replied to <a href='{{topicUrl}}'>the topic</a>\",user_mentioned_user:\"<a href='{{user1Url}}'>{{user}}</a> mentioned <a href='{{user2Url}}'>{{another_user}}</a>\",user_mentioned_you:\"<a href='{{user1Url}}'>{{user}}</a> mentioned <a href='{{user2Url}}'>you</a>\",you_mentioned_user:\"<a href='{{user1Url}}'>You</a> mentioned <a href='{{user2Url}}'>{{another_user}}</a>\",posted_by_user:\"Posted by <a href='{{userUrl}}'>{{user}}</a>\",posted_by_you:\"Posted by <a href='{{userUrl}}'>you</a>\",sent_by_user:\"Sent by <a href='{{userUrl}}'>{{user}}</a>\",sent_by_you:\"Sent by <a href='{{userUrl}}'>you</a>\"},directory:{filter_name:\"filter by username\",title:\"Users\",likes_given:\"Given\",likes_received:\"Received\",topics_entered:\"Viewed\",topics_entered_long:\"Topics Viewed\",time_read:\"Time Read\",topic_count:\"Topics\",topic_count_long:\"Topics Created\",post_count:\"Replies\",post_count_long:\"Replies Posted\",no_results:\"No results were found.\",days_visited:\"Visits\",days_visited_long:\"Days Visited\",posts_read:\"Read\",posts_read_long:\"Posts Read\",total_rows:{one:\"%{count} user\",other:\"%{count} users\"}},group_histories:{actions:{change_group_setting:\"Change group setting\",add_user_to_group:\"Add user\",remove_user_from_group:\"Remove user\",make_user_group_owner:\"Make owner\",remove_user_as_group_owner:\"Revoke owner\"}},groups:{member_added:\"Added\",member_requested:\"Requested at\",add_members:{title:\"Add Members\",description:\"Manage the membership of this group\",usernames:\"Usernames\"},requests:{title:\"Requests\",reason:\"Reason\",accept:\"Accept\",accepted:\"accepted\",deny:\"Deny\",denied:\"denied\",undone:\"request undone\"},manage:{title:\"Manage\",name:\"Name\",full_name:\"Full Name\",add_members:\"Add Members\",delete_member_confirm:\"Remove '%{username}' from the '%{group}' group?\",profile:{title:\"Profile\"},interaction:{title:\"Interaction\",posting:\"Posting\",notification:\"Notification\"},membership:{title:\"Membership\",access:\"Access\"},logs:{title:\"Logs\",when:\"When\",action:\"Action\",acting_user:\"Acting user\",target_user:\"Target user\",subject:\"Subject\",details:\"Details\",from:\"From\",to:\"To\"}},public_admission:\"Allow users to join the group freely (Requires publicly visible group)\",public_exit:\"Allow users to leave the group freely\",empty:{posts:\"There are no posts by members of this group.\",members:\"There are no members in this group.\",requests:\"There are no membership requests for this group.\",mentions:\"There are no mentions of this group.\",messages:\"There are no messages for this group.\",topics:\"There are no topics by members of this group.\",logs:\"There are no logs for this group.\"},add:\"Add\",join:\"Join\",leave:\"Leave\",request:\"Request\",message:\"Message\",confirm_leave:\"Are you sure you want to leave this group?\",allow_membership_requests:\"Allow users to send membership requests to group owners (Requires publicly visible group)\",membership_request_template:\"Custom template to display to users when sending a membership request\",membership_request:{submit:\"Submit Request\",title:\"Request to join @%{group_name}\",reason:\"Let the group owners know why you belong in this group\"},membership:\"Membership\",name:\"Name\",group_name:\"Group name\",user_count:\"Users\",bio:\"About Group\",selector_placeholder:\"enter username\",owner:\"owner\",index:{title:\"Groups\",all:\"All Groups\",empty:\"There are no visible groups.\",filter:\"Filter by group type\",owner_groups:\"Groups I own\",close_groups:\"Closed Groups\",automatic_groups:\"Automatic Groups\",automatic:\"Automatic\",closed:\"Closed\",public:\"Public\",private:\"Private\",public_groups:\"Public Groups\",automatic_group:\"Automatic Group\",close_group:\"Close Group\",my_groups:\"My Groups\",group_type:\"Group type\",is_group_user:\"Member\",is_group_owner:\"Owner\"},title:{one:\"Group\",other:\"Groups\"},activity:\"Activity\",members:{title:\"Members\",filter_placeholder_admin:\"username or email\",filter_placeholder:\"username\",remove_member:\"Remove Member\",remove_member_description:\"Remove <b>%{username}</b> from this group\",make_owner:\"Make Owner\",make_owner_description:\"Make <b>%{username}</b> an owner of this group\",remove_owner:\"Remove as Owner\",remove_owner_description:\"Remove <b>%{username}</b> as an owner of this group\",owner:\"Owner\",forbidden:\"You're not allowed to view the members.\"},topics:\"Topics\",posts:\"Posts\",mentions:\"Mentions\",messages:\"Messages\",notification_level:\"Default notification level for group messages\",alias_levels:{mentionable:\"Who can @mention this group?\",messageable:\"Who can message this group?\",nobody:\"Nobody\",only_admins:\"Only admins\",mods_and_admins:\"Only moderators and Admins\",members_mods_and_admins:\"Only group members, moderators and admins\",owners_mods_and_admins:\"Only group owners, moderators and admins\",everyone:\"Everyone\"},notifications:{watching:{title:\"Watching\",description:\"You will be notified of every new post in every message, and a count of new replies will be shown.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new messages in this group but not replies to the messages.\"},tracking:{title:\"Tracking\",description:\"You will be notified if someone mentions your @name or replies to you, and a count of new replies will be shown.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted:{title:\"Muted\",description:\"You will not be notified of anything about messages in this group.\"}},flair_url:\"Avatar Flair Image\",flair_url_placeholder:\"(Optional) Image URL or Font Awesome class\",flair_url_description:'Use square images no smaller than 20px by 20px or FontAwesome icons (accepted formats: \"fa-icon\", \"far fa-icon\" or \"fab fa-icon\").',flair_bg_color:\"Avatar Flair Background Color\",flair_bg_color_placeholder:\"(Optional) Hex color value\",flair_color:\"Avatar Flair Color\",flair_color_placeholder:\"(Optional) Hex color value\",flair_preview_icon:\"Preview Icon\",flair_preview_image:\"Preview Image\"},user_action_groups:{1:\"Likes\",2:\"Likes\",3:\"Bookmarks\",4:\"Topics\",5:\"Replies\",6:\"Responses\",7:\"Mentions\",9:\"Quotes\",11:\"Edits\",12:\"Sent Items\",13:\"Inbox\",14:\"Pending\",15:\"Drafts\"},categories:{all:\"all categories\",all_subcategories:\"all\",no_subcategory:\"none\",category:\"Category\",category_list:\"Display category list\",reorder:{title:\"Reorder Categories\",title_long:\"Reorganize the category list\",save:\"Save Order\",apply_all:\"Apply\",position:\"Position\"},posts:\"Posts\",topics:\"Topics\",latest:\"Latest\",latest_by:\"latest by\",toggle_ordering:\"toggle ordering control\",subcategories:\"Subcategories\",topic_sentence:{one:\"%{count} topic\",other:\"%{count} topics\"},topic_stat_sentence_week:{one:\"%{count} new topic in the past week.\",other:\"%{count} new topics in the past week.\"},topic_stat_sentence_month:{one:\"%{count} new topic in the past month.\",other:\"%{count} new topics in the past month.\"},n_more:\"Categories (%{count} more) ...\"},ip_lookup:{title:\"IP Address Lookup\",hostname:\"Hostname\",location:\"Location\",location_not_found:\"(unknown)\",organisation:\"Organization\",phone:\"Phone\",other_accounts:\"Other accounts with this IP address:\",delete_other_accounts:\"Delete %{count}\",username:\"username\",trust_level:\"TL\",read_time:\"read time\",topics_entered:\"topics entered\",post_count:\"# posts\",confirm_delete_other_accounts:\"Are you sure you want to delete these accounts?\",powered_by:\"using <a href='https://maxmind.com'>MaxMindDB</a>\",copied:\"copied\"},user_fields:{none:\"(select an option)\"},user:{said:\"{{username}}:\",profile:\"Profile\",mute:\"Mute\",edit:\"Edit Preferences\",download_archive:{button_text:\"Download All\",confirm:\"Are you sure you want to download your posts?\",success:\"Download initiated, you will be notified via message when the process is complete.\",rate_limit_error:\"Posts can be downloaded once per day, please try again tomorrow.\"},new_private_message:\"New Message\",private_message:\"Message\",private_messages:\"Messages\",user_notifications:{ignore_duration_title:\"Ignore Timer\",ignore_duration_username:\"Username\",ignore_duration_when:\"Duration:\",ignore_duration_save:\"Ignore\",ignore_duration_note:\"Please note that all ignores are automatically removed after the ignore duration expires.\",ignore_duration_time_frame_required:\"Please select a time frame\",ignore_no_users:\"You have no ignored users.\",ignore_option:\"Ignored\",ignore_option_title:\"You will not receive notifications related to this user and all of their topics and replies will be hidden.\",add_ignored_user:\"Add...\",mute_option:\"Muted\",mute_option_title:\"You will not receive any notifications related to this user.\",normal_option:\"Normal\",normal_option_title:\"You will be notified if this user replies to you, quotes you, or mentions you.\"},activity_stream:\"Activity\",preferences:\"Preferences\",feature_topic_on_profile:{open_search:\"Select a New Topic\",title:\"Select a Topic\",search_label:\"Search for Topic by title\",save:\"Save\",clear:{title:\"Clear\",warning:\"Are you sure you want to clear your featured topic?\"}},profile_hidden:\"This user's public profile is hidden.\",expand_profile:\"Expand\",collapse_profile:\"Collapse\",bookmarks:\"Bookmarks\",bio:\"About me\",timezone:\"Timezone\",invited_by:\"Invited By\",trust_level:\"Trust Level\",notifications:\"Notifications\",statistics:\"Stats\",desktop_notifications:{label:\"Live Notifications\",not_supported:\"Notifications are not supported on this browser. Sorry.\",perm_default:\"Turn On Notifications\",perm_denied_btn:\"Permission Denied\",perm_denied_expl:\"You denied permission for notifications. Allow notifications via your browser settings.\",disable:\"Disable Notifications\",enable:\"Enable Notifications\",each_browser_note:\"Note: You have to change this setting on every browser you use.\",consent_prompt:\"Do you want live notifications when people reply to your posts?\"},dismiss:\"Dismiss\",dismiss_notifications:\"Dismiss All\",dismiss_notifications_tooltip:\"Mark all unread notifications as read\",first_notification:\"Your first notification! Select it to begin.\",dynamic_favicon:\"Show counts on browser icon\",theme_default_on_all_devices:\"Make this the default theme on all my devices\",text_size_default_on_all_devices:\"Make this the default text size on all my devices\",allow_private_messages:\"Allow other users to send me personal messages\",external_links_in_new_tab:\"Open all external links in a new tab\",enable_quoting:\"Enable quote reply for highlighted text\",enable_defer:\"Enable defer to mark topics unread\",change:\"change\",featured_topic:\"Featured Topic\",moderator:\"{{user}} is a moderator\",admin:\"{{user}} is an admin\",moderator_tooltip:\"This user is a moderator\",admin_tooltip:\"This user is an admin\",silenced_tooltip:\"This user is silenced\",suspended_notice:\"This user is suspended until {{date}}.\",suspended_permanently:\"This user is suspended.\",suspended_reason:\"Reason: \",github_profile:\"Github\",email_activity_summary:\"Activity Summary\",mailing_list_mode:{label:\"Mailing list mode\",enabled:\"Enable mailing list mode\",instructions:\"This setting overrides the activity summary.<br />\\nMuted topics and categories are not included in these emails.\\n\",individual:\"Send an email for every new post\",individual_no_echo:\"Send an email for every new post except my own\",many_per_day:\"Send me an email for every new post (about {{dailyEmailEstimate}} per day)\",few_per_day:\"Send me an email for every new post (about 2 per day)\",warning:\"Mailing list mode enabled. Email notification settings are overridden.\"},tag_settings:\"Tags\",watched_tags:\"Watched\",watched_tags_instructions:\"You will automatically watch all topics with these tags. You will be notified of all new posts and topics, and a count of new posts will also appear next to the topic.\",tracked_tags:\"Tracked\",tracked_tags_instructions:\"You will automatically track all topics with these tags. A count of new posts will appear next to the topic.\",muted_tags:\"Muted\",muted_tags_instructions:\"You will not be notified of anything about new topics with these tags, and they will not appear in latest.\",watched_categories:\"Watched\",watched_categories_instructions:\"You will automatically watch all topics in these categories. You will be notified of all new posts and topics, and a count of new posts will also appear next to the topic.\",tracked_categories:\"Tracked\",tracked_categories_instructions:\"You will automatically track all topics in these categories. A count of new posts will appear next to the topic.\",watched_first_post_categories:\"Watching First Post\",watched_first_post_categories_instructions:\"You will be notified of the first post in each new topic in these categories.\",watched_first_post_tags:\"Watching First Post\",watched_first_post_tags_instructions:\"You will be notified of the first post in each new topic with these tags.\",muted_categories:\"Muted\",muted_categories_instructions:\"You will not be notified of anything about new topics in these categories, and they will not appear on the categories or latest pages.\",muted_categories_instructions_dont_hide:\"You will not be notified of anything about new topics in these categories.\",no_category_access:\"As a moderator you have limited category access, save is disabled.\",delete_account:\"Delete My Account\",delete_account_confirm:\"Are you sure you want to permanently delete your account? This action cannot be undone!\",deleted_yourself:\"Your account has been deleted successfully.\",delete_yourself_not_allowed:\"Please contact a staff member if you wish your account to be deleted.\",unread_message_count:\"Messages\",admin_delete:\"Delete\",users:\"Users\",muted_users:\"Muted\",muted_users_instructions:\"Suppress all notifications from these users.\",ignored_users:\"Ignored\",ignored_users_instructions:\"Suppress all posts and notifications from these users.\",tracked_topics_link:\"Show\",automatically_unpin_topics:\"Automatically unpin topics when I reach the bottom.\",apps:\"Apps\",revoke_access:\"Revoke Access\",undo_revoke_access:\"Undo Revoke Access\",api_approved:\"Approved:\",api_last_used_at:\"Last used at:\",theme:\"Theme\",home:\"Default Home Page\",staged:\"Staged\",staff_counters:{flags_given:\"helpful flags\",flagged_posts:\"flagged posts\",deleted_posts:\"deleted posts\",suspensions:\"suspensions\",warnings_received:\"warnings\"},messages:{all:\"All\",inbox:\"Inbox\",sent:\"Sent\",archive:\"Archive\",groups:\"My Groups\",bulk_select:\"Select messages\",move_to_inbox:\"Move to Inbox\",move_to_archive:\"Archive\",failed_to_move:\"Failed to move selected messages (perhaps your network is down)\",select_all:\"Select All\",tags:\"Tags\"},preferences_nav:{account:\"Account\",profile:\"Profile\",emails:\"Emails\",notifications:\"Notifications\",categories:\"Categories\",users:\"Users\",tags:\"Tags\",interface:\"Interface\",apps:\"Apps\"},change_password:{success:\"(email sent)\",in_progress:\"(sending email)\",error:\"(error)\",action:\"Send Password Reset Email\",set_password:\"Set Password\",choose_new:\"Choose a new password\",choose:\"Choose a password\"},second_factor_backup:{title:\"Two Factor Backup Codes\",regenerate:\"Regenerate\",disable:\"Disable\",enable:\"Enable\",enable_long:\"Enable backup codes\",manage:\"Manage backup codes. You have <strong>{{count}}</strong> backup codes remaining.\",copied_to_clipboard:\"Copied to Clipboard\",copy_to_clipboard_error:\"Error copying data to Clipboard\",remaining_codes:\"You have <strong>{{count}}</strong> backup codes remaining.\",use:\"Use a backup code\",enable_prerequisites:\"You must enable a primary second factor before generating backup codes.\",codes:{title:\"Backup Codes Generated\",description:\"Each of these backup codes can only be used once. Keep them somewhere safe but accessible.\"}},second_factor:{title:\"Two Factor Authentication\",enable:\"Manage Two Factor Authentication\",forgot_password:\"Forgot password?\",confirm_password_description:\"Please confirm your password to continue\",name:\"Name\",label:\"Code\",rate_limit:\"Please wait before trying another authentication code.\",enable_description:'Scan this QR code in a supported app (<a href=\"https://www.google.com/search?q=authenticator+apps+for+android\" target=\"_blank\">Android</a> – <a href=\"https://www.google.com/search?q=authenticator+apps+for+ios\" target=\"_blank\">iOS</a>) and enter your authentication code.\\n',disable_description:\"Please enter the authentication code from your app\",show_key_description:\"Enter manually\",short_description:\"Protect your account with one-time use security codes.\\n\",extended_description:'Two factor authentication adds extra security to your account by requiring a one-time token in addition to your password. Tokens can be generated on <a href=\"https://www.google.com/search?q=authenticator+apps+for+android\" target=\\'_blank\\'>Android</a> and <a href=\"https://www.google.com/search?q=authenticator+apps+for+ios\">iOS</a> devices.\\n',oauth_enabled_warning:\"Please note that social logins will be disabled once two factor authentication has been enabled on your account.\",use:\"Use Authenticator app\",enforced_notice:\"You are required to enable two factor authentication before accessing this site.\",disable:\"disable\",disable_title:\"Disable Second Factor\",disable_confirm:\"Are you sure you want to disable all second factors?\",edit:\"Edit\",edit_title:\"Edit Second Factor\",edit_description:\"Second Factor Name\",enable_security_key_description:\"When you have your physical security key prepared press the Register button below.\",totp:{title:\"Token-Based Authenticators\",add:\"New Authenticator\",default_name:\"My Authenticator\"},security_key:{register:\"Register\",title:\"Security Keys\",add:\"Register Security Key\",default_name:\"Main Security Key\",not_allowed_error:\"The security key registration process either timed out or was cancelled.\",already_added_error:\"You have already registered this security key. You don’t have to register it again.\",edit:\"Edit Security Key\",edit_description:\"Security Key Name\",delete:\"Delete\"}},change_about:{title:\"Change About Me\",error:\"There was an error changing this value.\"},change_username:{title:\"Change Username\",confirm:\"Are you absolutely sure you want to change your username?\",taken:\"Sorry, that username is taken.\",invalid:\"That username is invalid. It must only include numbers and letters\"},change_email:{title:\"Change Email\",taken:\"Sorry, that email is not available.\",error:\"There was an error changing your email. Perhaps that address is already in use?\",success:\"We've sent an email to that address. Please follow the confirmation instructions.\",success_staff:\"We've sent an email to your current address. Please follow the confirmation instructions.\"},change_avatar:{title:\"Change your profile picture\",gravatar:\"<a href='//gravatar.com/emails' target='_blank'>Gravatar</a>, based on\",gravatar_title:\"Change your avatar on Gravatar's website\",gravatar_failed:\"We could not find a Gravatar with that email address.\",refresh_gravatar_title:\"Refresh your Gravatar\",letter_based:\"System assigned profile picture\",uploaded_avatar:\"Custom picture\",uploaded_avatar_empty:\"Add a custom picture\",upload_title:\"Upload your picture\",image_is_not_a_square:\"Warning: we've cropped your image; width and height were not equal.\"},change_profile_background:{title:\"Profile Header\",instructions:\"Profile headers will be centered and have a default width of 1110px.\"},change_card_background:{title:\"User Card Background\",instructions:\"Background images will be centered and have a default width of 590px.\"},change_featured_topic:{title:\"Featured Topic\",instructions:\"A link to this topic will be on your user card, and profile.\"},email:{title:\"Email\",primary:\"Primary Email\",secondary:\"Secondary Emails\",no_secondary:\"No secondary emails\",sso_override_instructions:\"Email can be updated from SSO provider.\",instructions:\"Never shown to the public.\",ok:\"We will email you to confirm\",invalid:\"Please enter a valid email address\",authenticated:\"Your email has been authenticated by {{provider}}\",frequency_immediately:\"We'll email you immediately if you haven't read the thing we're emailing you about.\",frequency:{one:\"We'll only email you if we haven't seen you in the last minute.\",other:\"We'll only email you if we haven't seen you in the last {{count}} minutes.\"}},associated_accounts:{title:\"Associated Accounts\",connect:\"Connect\",revoke:\"Revoke\",cancel:\"Cancel\",not_connected:\"(not connected)\",confirm_modal_title:\"Connect %{provider} Account\",confirm_description:{account_specific:\"Your %{provider} account '%{account_description}' will be used for authentication.\",generic:\"Your %{provider} account will be used for authentication.\"}},name:{title:\"Name\",instructions:\"your full name (optional)\",instructions_required:\"Your full name\",too_short:\"Your name is too short\",ok:\"Your name looks good\"},username:{title:\"Username\",instructions:\"unique, no spaces, short\",short_instructions:\"People can mention you as @{{username}}\",available:\"Your username is available\",not_available:\"Not available. Try {{suggestion}}?\",not_available_no_suggestion:\"Not available\",too_short:\"Your username is too short\",too_long:\"Your username is too long\",checking:\"Checking username availability...\",prefilled:\"Email matches this registered username\"},locale:{title:\"Interface language\",instructions:\"User interface language. It will change when you refresh the page.\",default:\"(default)\",any:\"any\"},password_confirmation:{title:\"Password Again\"},auth_tokens:{title:\"Recently Used Devices\",ip:\"IP\",details:\"Details\",log_out_all:\"Log out all\",active:\"active now\",not_you:\"Not you?\",show_all:\"Show all ({{count}})\",show_few:\"Show fewer\",was_this_you:\"Was this you?\",was_this_you_description:\"If it wasn’t you, we recommend you change your password and log out everywhere.\",browser_and_device:\"{{browser}} on {{device}}\",secure_account:\"Secure my Account\",latest_post:\"You last posted…\"},last_posted:\"Last Post\",last_emailed:\"Last Emailed\",last_seen:\"Seen\",created:\"Joined\",log_out:\"Log Out\",location:\"Location\",website:\"Web Site\",email_settings:\"Email\",hide_profile_and_presence:\"Hide my public profile and presence features\",enable_physical_keyboard:\"Enable physical keyboard support on iPad\",text_size:{title:\"Text Size\",smaller:\"Smaller\",normal:\"Normal\",larger:\"Larger\",largest:\"Largest\"},title_count_mode:{title:\"Background page title displays count of:\",notifications:\"New notifications\",contextual:\"New page content\"},like_notification_frequency:{title:\"Notify when liked\",always:\"Always\",first_time_and_daily:\"First time a post is liked and daily\",first_time:\"First time a post is liked\",never:\"Never\"},email_previous_replies:{title:\"Include previous replies at the bottom of emails\",unless_emailed:\"unless previously sent\",always:\"always\",never:\"never\"},email_digests:{title:\"When I don’t visit here, send me an email summary of popular topics and replies\",every_30_minutes:\"every 30 minutes\",every_hour:\"hourly\",daily:\"daily\",weekly:\"weekly\",every_month:\"every month\",every_six_months:\"every six months\"},email_level:{title:\"Send me an email when someone quotes me, replies to my post, mentions my @username, or invites me to a topic\",always:\"always\",only_when_away:\"only when away\",never:\"never\"},email_messages_level:\"Send me an email when someone messages me\",include_tl0_in_digests:\"Include content from new users in summary emails\",email_in_reply_to:\"Include an excerpt of replied to post in emails\",other_settings:\"Other\",categories_settings:\"Categories\",new_topic_duration:{label:\"Consider topics new when\",not_viewed:\"I haven't viewed them yet\",last_here:\"created since I was here last\",after_1_day:\"created in the last day\",after_2_days:\"created in the last 2 days\",after_1_week:\"created in the last week\",after_2_weeks:\"created in the last 2 weeks\"},auto_track_topics:\"Automatically track topics I enter\",auto_track_options:{never:\"never\",immediately:\"immediately\",after_30_seconds:\"after 30 seconds\",after_1_minute:\"after 1 minute\",after_2_minutes:\"after 2 minutes\",after_3_minutes:\"after 3 minutes\",after_4_minutes:\"after 4 minutes\",after_5_minutes:\"after 5 minutes\",after_10_minutes:\"after 10 minutes\"},notification_level_when_replying:\"When I post in a topic, set that topic to\",invited:{search:\"type to search invites...\",title:\"Invites\",user:\"Invited User\",sent:\"Last Sent\",none:\"No invites to display.\",truncated:{one:\"Showing the first invite.\",other:\"Showing the first {{count}} invites.\"},redeemed:\"Redeemed Invites\",redeemed_tab:\"Redeemed\",redeemed_tab_with_count:\"Redeemed ({{count}})\",redeemed_at:\"Redeemed\",pending:\"Pending Invites\",pending_tab:\"Pending\",pending_tab_with_count:\"Pending ({{count}})\",topics_entered:\"Topics Viewed\",posts_read_count:\"Posts Read\",expired:\"This invite has expired.\",rescind:\"Remove\",rescinded:\"Invite removed\",rescind_all:\"Remove all Expired Invites\",rescinded_all:\"All Expired Invites removed!\",rescind_all_confirm:\"Are you sure you want to remove all expired invites?\",reinvite:\"Resend Invite\",reinvite_all:\"Resend all Invites\",reinvite_all_confirm:\"Are you sure you want to resend all invites?\",reinvited:\"Invite re-sent\",reinvited_all:\"All Invites re-sent!\",time_read:\"Read Time\",days_visited:\"Days Visited\",account_age_days:\"Account age in days\",create:\"Send an Invite\",generate_link:\"Copy Invite Link\",link_generated:\"Invite link generated successfully!\",valid_for:\"Invite link is only valid for this email address: %{email}\",bulk_invite:{none:\"You haven't invited anyone here yet. Send individual invites, or invite many people at once by <a href='https://meta.discourse.org/t/send-bulk-invites/16468'>uploading a CSV file</a>.\",text:\"Bulk Invite from File\",success:\"File uploaded successfully, you will be notified via message when the process is complete.\",error:\"Sorry, file should be CSV format.\",confirmation_message:\"You’re about to email invites to everyone in the uploaded file.\"}},password:{title:\"Password\",too_short:\"Your password is too short.\",common:\"That password is too common.\",same_as_username:\"Your password is the same as your username.\",same_as_email:\"Your password is the same as your email.\",ok:\"Your password looks good.\",instructions:\"at least %{count} characters\"},summary:{title:\"Summary\",stats:\"Stats\",time_read:\"read time\",recent_time_read:\"recent read time\",topic_count:{one:\"topic created\",other:\"topics created\"},post_count:{one:\"post created\",other:\"posts created\"},likes_given:{one:\"given\",other:\"given\"},likes_received:{one:\"received\",other:\"received\"},days_visited:{one:\"day visited\",other:\"days visited\"},topics_entered:{one:\"topic viewed\",other:\"topics viewed\"},posts_read:{one:\"post read\",other:\"posts read\"},bookmark_count:{one:\"bookmark\",other:\"bookmarks\"},top_replies:\"Top Replies\",no_replies:\"No replies yet.\",more_replies:\"More Replies\",top_topics:\"Top Topics\",no_topics:\"No topics yet.\",more_topics:\"More Topics\",top_badges:\"Top Badges\",no_badges:\"No badges yet.\",more_badges:\"More Badges\",top_links:\"Top Links\",no_links:\"No links yet.\",most_liked_by:\"Most Liked By\",most_liked_users:\"Most Liked\",most_replied_to_users:\"Most Replied To\",no_likes:\"No likes yet.\",top_categories:\"Top Categories\",topics:\"Topics\",replies:\"Replies\"},ip_address:{title:\"Last IP Address\"},registration_ip_address:{title:\"Registration IP Address\"},avatar:{title:\"Profile Picture\",header_title:\"profile, messages, bookmarks and preferences\"},title:{title:\"Title\",none:\"(none)\"},primary_group:{title:\"Primary Group\",none:\"(none)\"},filters:{all:\"All\"},stream:{posted_by:\"Posted by\",sent_by:\"Sent by\",private_message:\"message\",the_topic:\"the topic\"}},loading:\"Loading...\",errors:{prev_page:\"while trying to load\",reasons:{network:\"Network Error\",server:\"Server Error\",forbidden:\"Access Denied\",unknown:\"Error\",not_found:\"Page Not Found\"},desc:{network:\"Please check your connection.\",network_fixed:\"Looks like it's back.\",server:\"Error code: {{status}}\",forbidden:\"You're not allowed to view that.\",not_found:\"Oops, the application tried to load a URL that doesn't exist.\",unknown:\"Something went wrong.\"},buttons:{back:\"Go Back\",again:\"Try Again\",fixed:\"Load Page\"}},close:\"Close\",assets_changed_confirm:\"This site was just updated. Refresh now for the latest version?\",logout:\"You were logged out.\",refresh:\"Refresh\",read_only_mode:{enabled:\"This site is in read only mode. Please continue to browse, but replying, likes, and other actions are disabled for now.\",login_disabled:\"Login is disabled while the site is in read only mode.\",logout_disabled:\"Logout is disabled while the site is in read only mode.\"},too_few_topics_and_posts_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentTopics}</strong> topics and <strong>%{currentPosts}</strong> posts. Visitors need more to read and reply to – we recommend at least <strong>%{requiredTopics}</strong> topics and <strong>%{requiredPosts}</strong> posts. Only staff can see this message.\",too_few_topics_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentTopics}</strong> topics. Visitors need more to read and reply to – we recommend at least <strong>%{requiredTopics}</strong> topics. Only staff can see this message.\",too_few_posts_notice:\"Let's <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/'>start the discussion!</a> There are <strong>%{currentPosts}</strong> posts. Visitors need more to read and reply to – we recommend at least <strong>%{requiredPosts}</strong> posts. Only staff can see this message.\",logs_error_rate_notice:{},learn_more:\"learn more...\",all_time:\"total\",all_time_desc:\"total topics created\",year:\"year\",year_desc:\"topics created in the last 365 days\",month:\"month\",month_desc:\"topics created in the last 30 days\",week:\"week\",week_desc:\"topics created in the last 7 days\",day:\"day\",first_post:\"First post\",mute:\"Mute\",unmute:\"Unmute\",last_post:\"Posted\",time_read:\"Read\",time_read_recently:\"%{time_read} recently\",time_read_tooltip:\"%{time_read} total time read\",time_read_recently_tooltip:\"%{time_read} total time read (%{recent_time_read} in the last 60 days)\",last_reply_lowercase:\"last reply\",replies_lowercase:{one:\"reply\",other:\"replies\"},signup_cta:{sign_up:\"Sign Up\",hide_session:\"Remind me tomorrow\",hide_forever:\"no thanks\",hidden_for_session:\"OK, I'll ask you tomorrow. You can always use 'Log In' to create an account, too.\",intro:\"Hello! Looks like you’re enjoying the discussion, but you haven’t signed up for an account yet.\",value_prop:\"When you create an account, we remember exactly what you’ve read, so you always come right back where you left off. You also get notifications, here and via email, whenever someone replies to you. And you can like posts to share the love. :heartpulse:\"},summary:{enabled_description:\"You're viewing a summary of this topic: the most interesting posts as determined by the community.\",description:\"There are <b>{{replyCount}}</b> replies.\",description_time:\"There are <b>{{replyCount}}</b> replies with an estimated read time of <b>{{readingTime}} minutes</b>.\",enable:\"Summarize This Topic\",disable:\"Show All Posts\"},deleted_filter:{enabled_description:\"This topic contains deleted posts, which have been hidden.\",disabled_description:\"Deleted posts in the topic are shown.\",enable:\"Hide Deleted Posts\",disable:\"Show Deleted Posts\"},private_message_info:{title:\"Message\",invite:\"Invite Others ...\",edit:\"Add or Remove ...\",leave_message:\"Do you really want to leave this message?\",remove_allowed_user:\"Do you really want to remove {{name}} from this message?\",remove_allowed_group:\"Do you really want to remove {{name}} from this message?\"},email:\"Email\",username:\"Username\",last_seen:\"Seen\",created:\"Created\",created_lowercase:\"created\",trust_level:\"Trust Level\",search_hint:\"username, email or IP address\",create_account:{disclaimer:\"By registering, you agree to the <a href='{{privacy_link}}' target='blank'>privacy policy</a> and <a href='{{tos_link}}' target='blank'>terms of service</a>.\",title:\"Create New Account\",failed:\"Something went wrong, perhaps this email is already registered, try the forgot password link\"},forgot_password:{title:\"Password Reset\",action:\"I forgot my password\",invite:\"Enter your username or email address, and we'll send you a password reset email.\",reset:\"Reset Password\",complete_username:\"If an account matches the username <b>%{username}</b>, you should receive an email with instructions on how to reset your password shortly.\",complete_email:\"If an account matches <b>%{email}</b>, you should receive an email with instructions on how to reset your password shortly.\",complete_username_found:\"We found an account that matches the username <b>%{username}</b>. You should receive an email with instructions on how to reset your password shortly.\",complete_email_found:\"We found an account that matches <b>%{email}</b>. You should receive an email with instructions on how to reset your password shortly.\",complete_username_not_found:\"No account matches the username <b>%{username}</b>\",complete_email_not_found:\"No account matches <b>%{email}</b>\",help:\"Email not arriving? Be sure to check your spam folder first.<p>Not sure which email address you used? Enter an email address and we’ll let you know if it exists here.</p><p>If you no longer have access to the email address on your account, please contact <a href='%{basePath}/about'>our helpful staff.</a></p>\",button_ok:\"OK\",button_help:\"Help\"},email_login:{link_label:\"Email me a login link\",button_label:\"with email\",complete_username:\"If an account matches the username <b>%{username}</b>, you should receive an email with a login link shortly.\",complete_email:\"If an account matches <b>%{email}</b>, you should receive an email with a login link shortly.\",complete_username_found:\"We found an account that matches the username <b>%{username}</b>, you should receive an email with a login link shortly.\",complete_email_found:\"We found an account that matches <b>%{email}</b>, you should receive an email with a login link shortly.\",complete_username_not_found:\"No account matches the username <b>%{username}</b>\",complete_email_not_found:\"No account matches <b>%{email}</b>\",confirm_title:\"Continue to %{site_name}\",logging_in_as:\"Logging in as %{email}\",confirm_button:\"Finish Login\"},login:{title:\"Log In\",username:\"User\",password:\"Password\",second_factor_title:\"Two Factor Authentication\",second_factor_description:\"Please enter the authentication code from your app:\",second_factor_backup:\"Log in using a backup code\",second_factor_backup_title:\"Two Factor Backup\",second_factor_backup_description:\"Please enter one of your backup codes:\",second_factor:\"Log in using Authenticator app\",security_key_description:\"When you have your physical security key prepared press the Authenticate with Security Key button below.\",security_key_alternative:\"Try another way\",security_key_authenticate:\"Authenticate with Security Key\",security_key_not_allowed_error:\"The security key authentication process either timed out or was cancelled.\",security_key_no_matching_credential_error:\"No matching credentials could be found in the provided security key.\",security_key_support_missing_error:\"Your current device or browser does not support the use of security keys. Please use a different method.\",email_placeholder:\"email or username\",caps_lock_warning:\"Caps Lock is on\",error:\"Unknown error\",cookies_error:\"Your browser seems to have cookies disabled. You might not be able to log in without enabling them first.\",rate_limit:\"Please wait before trying to log in again.\",blank_username:\"Please enter your email or username.\",blank_username_or_password:\"Please enter your email or username, and password.\",reset_password:\"Reset Password\",logging_in:\"Signing In...\",or:\"Or\",authenticating:\"Authenticating...\",awaiting_activation:\"Your account is awaiting activation, use the forgot password link to issue another activation email.\",awaiting_approval:\"Your account has not been approved by a staff member yet. You will be sent an email when it is approved.\",requires_invite:\"Sorry, access to this forum is by invite only.\",not_activated:\"You can't log in yet. We previously sent an activation email to you at <b>{{sentTo}}</b>. Please follow the instructions in that email to activate your account.\",not_allowed_from_ip_address:\"You can't login from that IP address.\",admin_not_allowed_from_ip_address:\"You can't log in as admin from that IP address.\",resend_activation_email:\"Click here to send the activation email again.\",omniauth_disallow_totp:\"Your account has two factor authentication enabled. Please log in with your password.\",resend_title:\"Resend Activation Email\",change_email:\"Change Email Address\",provide_new_email:\"Provide a new address and we'll resend your confirmation email.\",submit_new_email:\"Update Email Address\",sent_activation_email_again:\"We sent another activation email to you at <b>{{currentEmail}}</b>. It might take a few minutes for it to arrive; be sure to check your spam folder.\",sent_activation_email_again_generic:\"We sent another activation email. It might take a few minutes for it to arrive; be sure to check your spam folder.\",to_continue:\"Please Log In\",preferences:\"You need to be logged in to change your user preferences.\",forgot:\"I don't recall my account details\",not_approved:\"Your account hasn't been approved yet. You will be notified by email when you are ready to log in.\",google_oauth2:{name:\"Google\",title:\"with Google\"},twitter:{name:\"Twitter\",title:\"with Twitter\"},instagram:{name:\"Instagram\",title:\"with Instagram\"},facebook:{name:\"Facebook\",title:\"with Facebook\"},github:{name:\"GitHub\",title:\"with GitHub\"},discord:{name:\"Discord\",title:\"with Discord\"},second_factor_toggle:{totp:\"Use an authenticator app instead\",backup_code:\"Use a backup code instead\"},oauth2_basic:{name:\"OAuth 2\"}},invites:{accept_title:\"Invitation\",welcome_to:\"Welcome to %{site_name}!\",invited_by:\"You were invited by:\",social_login_available:\"You'll also be able to sign in with any social login using that email.\",your_email:\"Your account email address is <b>%{email}</b>.\",accept_invite:\"Accept Invitation\",success:\"Your account has been created and you're now logged in.\",name_label:\"Name\",password_label:\"Set Password\",optional_description:\"(optional)\"},password_reset:{continue:\"Continue to %{site_name}\"},emoji_set:{apple_international:\"Apple/International\",google:\"Google\",twitter:\"Twitter\",emoji_one:\"JoyPixels (formerly EmojiOne)\",win10:\"Win10\",google_classic:\"Google Classic\",facebook_messenger:\"Facebook Messenger\"},category_page_style:{categories_only:\"Categories Only\",categories_with_featured_topics:\"Categories with Featured Topics\",categories_and_latest_topics:\"Categories and Latest Topics\",categories_and_top_topics:\"Categories and Top Topics\",categories_boxes:\"Boxes with Subcategories\",categories_boxes_with_topics:\"Boxes with Featured Topics\"},shortcut_modifier_key:{shift:\"Shift\",ctrl:\"Ctrl\",alt:\"Alt\",enter:\"Enter\"},conditional_loading_section:{loading:\"Loading...\"},category_row:{topic_count:\"{{count}} topics in this category\"},select_kit:{default_header_text:\"Select...\",no_content:\"No matches found\",filter_placeholder:\"Search...\",filter_placeholder_with_any:\"Search or create...\",create:\"Create: '{{content}}'\",max_content_reached:{one:\"You can only select {{count}} item.\",other:\"You can only select {{count}} items.\"},min_content_not_reached:{one:\"Select at least {{count}} item.\",other:\"Select at least {{count}} items.\"},invalid_selection_length:\"Selection must be at least {{count}} characters.\"},date_time_picker:{from:\"From\",to:\"To\",errors:{to_before_from:\"To date must be later than from date.\"}},emoji_picker:{filter_placeholder:\"Search for emoji\",\"smileys_&_emotion\":\"Smileys and Emotion\",\"people_&_body\":\"People and Body\",\"animals_&_nature\":\"Animals and Nature\",\"food_&_drink\":\"Food and Drink\",\"travel_&_places\":\"Travel and Places\",activities:\"Activities\",objects:\"Objects\",symbols:\"Symbols\",flags:\"Flags\",custom:\"Custom emojis\",recent:\"Recently used\",default_tone:\"No skin tone\",light_tone:\"Light skin tone\",medium_light_tone:\"Medium light skin tone\",medium_tone:\"Medium skin tone\",medium_dark_tone:\"Medium dark skin tone\",dark_tone:\"Dark skin tone\"},shared_drafts:{title:\"Shared Drafts\",notice:\"This topic is only visible to those who can see the <b>{{category}}</b> category.\",destination_category:\"Destination Category\",publish:\"Publish Shared Draft\",confirm_publish:\"Are you sure you want to publish this draft?\",publishing:\"Publishing Topic...\"},composer:{emoji:\"Emoji :)\",more_emoji:\"more...\",options:\"Options\",whisper:\"whisper\",unlist:\"unlisted\",blockquote_text:\"Blockquote\",add_warning:\"This is an official warning.\",toggle_whisper:\"Toggle Whisper\",toggle_unlisted:\"Toggle Unlisted\",posting_not_on_topic:\"Which topic do you want to reply to?\",saved_local_draft_tip:\"saved locally\",similar_topics:\"Your topic is similar to...\",drafts_offline:\"drafts offline\",edit_conflict:\"edit conflict\",group_mentioned_limit:\"<b>Warning!</b> You mentioned <a href='{{group_link}}'>{{group}}</a>, however this group has more members than the administrator configured mention limit of {{max}} users. Nobody will be notified.\",group_mentioned:{one:\"By mentioning {{group}}, you are about to notify <a href='{{group_link}}'>%{count} person</a> – are you sure?\",other:\"By mentioning {{group}}, you are about to notify <a href='{{group_link}}'>{{count}} people</a> – are you sure?\"},cannot_see_mention:{category:\"You mentioned {{username}} but they won't be notified because they do not have access to this category. You will need to add them to a group that has access to this category.\",private:\"You mentioned {{username}} but they won't be notified because they are unable to see this personal message. You will need to invite them to this PM.\"},duplicate_link:\"It looks like your link to <b>{{domain}}</b> was already posted in the topic by <b>@{{username}}</b> in <a href='{{post_url}}'>a reply on {{ago}}</a> – are you sure you want to post it again?\",reference_topic_title:\"RE: {{title}}\",error:{title_missing:\"Title is required\",title_too_short:\"Title must be at least {{min}} characters\",title_too_long:\"Title can't be more than {{max}} characters\",post_missing:\"Post can’t be empty\",post_length:\"Post must be at least {{min}} characters\",try_like:\"Have you tried the {{heart}} button?\",category_missing:\"You must choose a category\",tags_missing:\"You must choose at least {{count}} tags\",topic_template_not_modified:\"Please add details and specifics to your topic by editing the topic template.\"},save_edit:\"Save Edit\",overwrite_edit:\"Overwrite Edit\",reply_original:\"Reply on Original Topic\",reply_here:\"Reply Here\",reply:\"Reply\",cancel:\"Cancel\",create_topic:\"Create Topic\",create_pm:\"Message\",create_whisper:\"Whisper\",create_shared_draft:\"Create Shared Draft\",edit_shared_draft:\"Edit Shared Draft\",title:\"Or press Ctrl+Enter\",users_placeholder:\"Add a user\",title_placeholder:\"What is this discussion about in one brief sentence?\",title_or_link_placeholder:\"Type title, or paste a link here\",edit_reason_placeholder:\"why are you editing?\",topic_featured_link_placeholder:\"Enter link shown with title.\",remove_featured_link:\"Remove link from topic.\",reply_placeholder:\"Type here. Use Markdown, BBCode, or HTML to format. Drag or paste images.\",reply_placeholder_no_images:\"Type here. Use Markdown, BBCode, or HTML to format.\",reply_placeholder_choose_category:\"Select a category before typing here.\",view_new_post:\"View your new post.\",saving:\"Saving\",saved:\"Saved!\",saved_draft:\"Post draft in progress. Tap to resume.\",uploading:\"Uploading...\",show_preview:\"show preview &raquo;\",hide_preview:\"&laquo; hide preview\",quote_post_title:\"Quote whole post\",bold_label:\"B\",bold_title:\"Strong\",bold_text:\"strong text\",italic_label:\"I\",italic_title:\"Emphasis\",italic_text:\"emphasized text\",link_title:\"Hyperlink\",link_description:\"enter link description here\",link_dialog_title:\"Insert Hyperlink\",link_optional_text:\"optional title\",link_url_placeholder:\"Paste a URL or type to search topics\",quote_title:\"Blockquote\",quote_text:\"Blockquote\",code_title:\"Preformatted text\",code_text:\"indent preformatted text by 4 spaces\",paste_code_text:\"type or paste code here\",upload_title:\"Upload\",upload_description:\"enter upload description here\",olist_title:\"Numbered List\",ulist_title:\"Bulleted List\",list_item:\"List item\",toggle_direction:\"Toggle Direction\",help:\"Markdown Editing Help\",collapse:\"minimize the composer panel\",open:\"open the composer panel\",abandon:\"close composer and discard draft\",enter_fullscreen:\"enter fullscreen composer\",exit_fullscreen:\"exit fullscreen composer\",modal_ok:\"OK\",modal_cancel:\"Cancel\",cant_send_pm:\"Sorry, you can't send a message to %{username}.\",yourself_confirm:{title:\"Did you forget to add recipients?\",body:\"Right now this message is only being sent to yourself!\"},admin_options_title:\"Optional staff settings for this topic\",composer_actions:{reply:\"Reply\",draft:\"Draft\",edit:\"Edit\",reply_to_post:{label:\"Reply to post %{postNumber} by %{postUsername}\",desc:\"Reply to a specific post\"},reply_as_new_topic:{label:\"Reply as linked topic\",desc:\"Create a new topic linked to this topic\",confirm:\"You have a new topic draft saved, which will be overwritten if you create a linked topic.\"},reply_as_private_message:{label:\"New message\",desc:\"Create a new personal message\"},reply_to_topic:{label:\"Reply to topic\",desc:\"Reply to the topic, not any specific post\"},toggle_whisper:{label:\"Toggle whisper\",desc:\"Whispers are only visible to staff members\"},create_topic:{label:\"New Topic\"},shared_draft:{label:\"Shared Draft\",desc:\"Draft a topic that will only be visible to staff\"},toggle_topic_bump:{label:\"Toggle topic bump\",desc:\"Reply without changing latest reply date\"}},details_title:\"Summary\",details_text:\"This text will be hidden\"},notifications:{tooltip:{regular:{one:\"%{count} unseen notification\",other:\"{{count}} unseen notifications\"},message:{one:\"%{count} unread message\",other:\"{{count}} unread messages\"}},title:\"notifications of @name mentions, replies to your posts and topics, messages, etc\",none:\"Unable to load notifications at this time.\",empty:\"No notifications found.\",post_approved:\"Your post was approved\",reviewable_items:\"items requiring review\",mentioned:\"<span>{{username}}</span> {{description}}\",group_mentioned:\"<span>{{username}}</span> {{description}}\",quoted:\"<span>{{username}}</span> {{description}}\",replied:\"<span>{{username}}</span> {{description}}\",posted:\"<span>{{username}}</span> {{description}}\",edited:\"<span>{{username}}</span> {{description}}\",liked:\"<span>{{username}}</span> {{description}}\",liked_2:\"<span>{{username}}, {{username2}}</span> {{description}}\",liked_many:{one:\"<span>{{username}}, {{username2}} and %{count} other</span> {{description}}\",other:\"<span>{{username}}, {{username2}} and {{count}} others</span> {{description}}\"},liked_consolidated_description:{one:\"liked {{count}} of your posts\",other:\"liked {{count}} of your posts\"},liked_consolidated:\"<span>{{username}}</span> {{description}}\",private_message:\"<span>{{username}}</span> {{description}}\",invited_to_private_message:\"<p><span>{{username}}</span> {{description}}\",invited_to_topic:\"<span>{{username}}</span> {{description}}\",invitee_accepted:\"<span>{{username}}</span> accepted your invitation\",moved_post:\"<span>{{username}}</span> moved {{description}}\",linked:\"<span>{{username}}</span> {{description}}\",granted_badge:\"Earned '{{description}}'\",topic_reminder:\"<span>{{username}}</span> {{description}}\",watching_first_post:\"<span>New Topic</span> {{description}}\",membership_request_accepted:\"Membership accepted in '{{group_name}}'\",membership_request_consolidated:\"{{count}} open membership requests for '{{group_name}}'\",group_message_summary:{one:\"{{count}} message in your {{group_name}} inbox\",other:\"{{count}} messages in your {{group_name}} inbox\"},popup:{mentioned:'{{username}} mentioned you in \"{{topic}}\" - {{site_title}}',group_mentioned:'{{username}} mentioned you in \"{{topic}}\" - {{site_title}}',quoted:'{{username}} quoted you in \"{{topic}}\" - {{site_title}}',replied:'{{username}} replied to you in \"{{topic}}\" - {{site_title}}',posted:'{{username}} posted in \"{{topic}}\" - {{site_title}}',private_message:'{{username}} sent you a personal message in \"{{topic}}\" - {{site_title}}',linked:'{{username}} linked to your post from \"{{topic}}\" - {{site_title}}',watching_first_post:'{{username}} created a new topic \"{{topic}}\" - {{site_title}}',confirm_title:\"Notifications enabled - %{site_title}\",confirm_body:\"Success! Notifications have been enabled.\",custom:\"Notification from {{username}} on %{site_title}\"},titles:{mentioned:\"mentioned\",replied:\"new reply\",quoted:\"quoted\",edited:\"edited\",liked:\"new like\",private_message:\"new private message\",invited_to_private_message:\"invited to private message\",invitee_accepted:\"invite accepted\",posted:\"new post\",moved_post:\"post moved\",linked:\"linked\",granted_badge:\"badge granted\",invited_to_topic:\"invited to topic\",group_mentioned:\"group mentioned\",group_message_summary:\"new group messages\",watching_first_post:\"new topic\",topic_reminder:\"topic reminder\",liked_consolidated:\"new likes\",post_approved:\"post approved\",membership_request_consolidated:\"new membership requests\"},alt:{solved:{accepted_notification:\"accepted\"}}},upload_selector:{title:\"Add an image\",title_with_attachments:\"Add an image or a file\",from_my_computer:\"From my device\",from_the_web:\"From the web\",remote_tip:\"link to image\",remote_tip_with_attachments:\"link to image or file {{authorized_extensions}}\",local_tip:\"select images from your device\",local_tip_with_attachments:\"select images or files from your device {{authorized_extensions}}\",hint:\"(you can also drag & drop into the editor to upload them)\",hint_for_supported_browsers:\"you can also drag and drop or paste images into the editor\",uploading:\"Uploading\",select_file:\"Select File\",default_image_alt_text:\"image\"},search:{sort_by:\"Sort by\",relevance:\"Relevance\",latest_post:\"Latest Post\",latest_topic:\"Latest Topic\",most_viewed:\"Most Viewed\",most_liked:\"Most Liked\",select_all:\"Select All\",clear_all:\"Clear All\",too_short:\"Your search term is too short.\",result_count:{one:\"<span>%{count} result for</span><span class='term'>{{term}}</span>\",other:\"<span>{{count}}{{plus}} results for</span><span class='term'>{{term}}</span>\"},title:\"search topics, posts, users, or categories\",full_page_title:\"search topics or posts\",no_results:\"No results found.\",no_more_results:\"No more results found.\",searching:\"Searching ...\",post_format:\"#{{post_number}} by {{username}}\",results_page:\"Search results for '{{term}}'\",more_results:\"There are more results. Please narrow your search criteria.\",cant_find:\"Can’t find what you’re looking for?\",start_new_topic:\"Perhaps start a new topic?\",or_search_google:\"Or try searching with Google instead:\",search_google:\"Try searching with Google instead:\",search_google_button:\"Google\",search_google_title:\"Search this site\",context:{user:\"Search posts by @{{username}}\",category:\"Search the #{{category}} category\",tag:\"Search the #{{tag}} tag\",topic:\"Search this topic\",private_messages:\"Search messages\"},advanced:{title:\"Advanced Search\",posted_by:{label:\"Posted by\"},in_category:{label:\"Categorized\"},in_group:{label:\"In Group\"},with_badge:{label:\"With Badge\"},with_tags:{label:\"Tagged\"},filters:{label:\"Only return topics/posts...\",title:\"Matching in title only\",likes:\"I liked\",posted:\"I posted in\",created:\"I created\",watching:\"I'm watching\",tracking:\"I'm tracking\",private:\"In my messages\",bookmarks:\"I bookmarked\",first:\"are the very first post\",pinned:\"are pinned\",unpinned:\"are not pinned\",seen:\"I read\",unseen:\"I've not read\",wiki:\"are wiki\",images:\"include image(s)\",all_tags:\"All the above tags\"},statuses:{label:\"Where topics\",open:\"are open\",closed:\"are closed\",public:\"are public\",archived:\"are archived\",noreplies:\"have zero replies\",single_user:\"contain a single user\",solved:\"are solved\"},post:{count:{label:\"Minimum Post Count\"},time:{label:\"Posted\",before:\"before\",after:\"after\"}}}},hamburger_menu:\"go to another topic list or category\",new_item:\"new\",go_back:\"go back\",not_logged_in_user:\"user page with summary of current activity and preferences\",current_user:\"go to your user page\",view_all:\"view all\",topics:{new_messages_marker:\"last visit\",bulk:{select_all:\"Select All\",clear_all:\"Clear All\",unlist_topics:\"Unlist Topics\",relist_topics:\"Relist Topics\",reset_read:\"Reset Read\",delete:\"Delete Topics\",dismiss:\"Dismiss\",dismiss_read:\"Dismiss all unread\",dismiss_button:\"Dismiss…\",dismiss_tooltip:\"Dismiss just new posts or stop tracking topics\",also_dismiss_topics:\"Stop tracking these topics so they never show up as unread for me again\",dismiss_new:\"Dismiss New\",toggle:\"toggle bulk selection of topics\",actions:\"Bulk Actions\",change_category:\"Set Category\",close_topics:\"Close Topics\",archive_topics:\"Archive Topics\",notification_level:\"Notifications\",choose_new_category:\"Choose the new category for the topics:\",selected:{one:\"You have selected <b>%{count}</b> topic.\",other:\"You have selected <b>{{count}}</b> topics.\"},change_tags:\"Replace Tags\",append_tags:\"Append Tags\",choose_new_tags:\"Choose new tags for these topics:\",choose_append_tags:\"Choose new tags to append for these topics:\",changed_tags:\"The tags of those topics were changed.\"},none:{unread:\"You have no unread topics.\",new:\"You have no new topics.\",read:\"You haven't read any topics yet.\",posted:\"You haven't posted in any topics yet.\",latest:\"There are no latest topics. That's sad.\",bookmarks:\"You have no bookmarked topics yet.\",category:\"There are no {{category}} topics.\",top:\"There are no top topics.\",educate:{new:'<p>Your new topics appear here.</p><p>By default, topics are considered new and will show a <span class=\"badge new-topic badge-notification\" style=\"vertical-align:middle;line-height:inherit;\">new</span> indicator if they were created in the last 2 days.</p><p>Visit your <a href=\"%{userPrefsUrl}\">preferences</a> to change this.</p>',unread:'<p>Your unread topics appear here.</p><p>By default, topics are considered unread and will show unread counts <span class=\"badge new-posts badge-notification\">1</span> if you:</p><ul><li>Created the topic</li><li>Replied to the topic</li><li>Read the topic for more than 4 minutes</li></ul><p>Or if you have explicitly set the topic to Tracked or Watched via the notification control at the bottom of each topic.</p><p>Visit your <a href=\"%{userPrefsUrl}\">preferences</a> to change this.</p>'}},bottom:{latest:\"There are no more latest topics.\",posted:\"There are no more posted topics.\",read:\"There are no more read topics.\",new:\"There are no more new topics.\",unread:\"There are no more unread topics.\",category:\"There are no more {{category}} topics.\",top:\"There are no more top topics.\",bookmarks:\"There are no more bookmarked topics.\"}},topic:{filter_to:{one:\"%{count} post in topic\",other:\"{{count}} posts in topic\"},create:\"New Topic\",create_long:\"Create a new Topic\",open_draft:\"Open Draft\",private_message:\"Start a message\",archive_message:{help:\"Move message to your archive\",title:\"Archive\"},move_to_inbox:{title:\"Move to Inbox\",help:\"Move message back to Inbox\"},edit_message:{help:\"Edit first post of the message\",title:\"Edit Message\"},defer:{help:\"Mark as unread\",title:\"Defer\"},feature_on_profile:{help:\"Add a link to this topic on your user card and profile\",title:\"Feature On Profile\"},remove_from_profile:{warning:\"Your profile already has a featured topic. If you continue, this topic will replace the existing topic.\",help:\"Remove the link to this topic on your user profile\",title:\"Remove From Profile\"},list:\"Topics\",new:\"new topic\",unread:\"unread\",new_topics:{one:\"%{count} new topic\",other:\"{{count}} new topics\"},unread_topics:{one:\"%{count} unread topic\",other:\"{{count}} unread topics\"},title:\"Topic\",invalid_access:{title:\"Topic is private\",description:\"Sorry, you don't have access to that topic!\",login_required:\"You need to log in to see that topic.\"},server_error:{title:\"Topic failed to load\",description:\"Sorry, we couldn't load that topic, possibly due to a connection problem. Please try again. If the problem persists, let us know.\"},not_found:{title:\"Topic not found\",description:\"Sorry, we couldn't find that topic. Perhaps it was removed by a moderator?\"},total_unread_posts:{one:\"you have %{count} unread post in this topic\",other:\"you have {{count}} unread posts in this topic\"},unread_posts:{one:\"you have %{count} unread old post in this topic\",other:\"you have {{count}} unread old posts in this topic\"},new_posts:{one:\"there is %{count} new post in this topic since you last read it\",other:\"there are {{count}} new posts in this topic since you last read it\"},likes:{one:\"there is %{count} like in this topic\",other:\"there are {{count}} likes in this topic\"},back_to_list:\"Back to Topic List\",options:\"Topic Options\",show_links:\"show links within this topic\",toggle_information:\"toggle topic details\",read_more_in_category:\"Want to read more? Browse other topics in {{catLink}} or {{latestLink}}.\",read_more:\"Want to read more? {{catLink}} or {{latestLink}}.\",group_request:\"You need to request membership to the `{{name}}` group to see this topic\",group_join:\"You need join the `{{name}}` group to see this topic\",group_request_sent:\"Your group membership request has been sent. You will be informed when it's accepted.\",unread_indicator:\"No member has read the last post of this topic yet.\",browse_all_categories:\"Browse all categories\",view_latest_topics:\"view latest topics\",suggest_create_topic:\"Why not create a topic?\",jump_reply_up:\"jump to earlier reply\",jump_reply_down:\"jump to later reply\",deleted:\"The topic has been deleted\",topic_status_update:{title:\"Topic Timer\",save:\"Set Timer\",num_of_hours:\"Number of hours:\",remove:\"Remove Timer\",publish_to:\"Publish To:\",when:\"When:\",public_timer_types:\"Topic Timers\",private_timer_types:\"User Topic Timers\",time_frame_required:\"Please select a time frame\"},auto_update_input:{none:\"Select a timeframe\",later_today:\"Later today\",tomorrow:\"Tomorrow\",later_this_week:\"Later this week\",this_weekend:\"This weekend\",next_week:\"Next week\",two_weeks:\"Two Weeks\",next_month:\"Next month\",two_months:\"Two Months\",three_months:\"Three Months\",four_months:\"Four Months\",six_months:\"Six Months\",one_year:\"One Year\",forever:\"Forever\",pick_date_and_time:\"Pick date and time\",set_based_on_last_post:\"Close based on last post\"},publish_to_category:{title:\"Schedule Publishing\"},temp_open:{title:\"Open Temporarily\"},auto_reopen:{title:\"Auto-open Topic\"},temp_close:{title:\"Close Temporarily\"},auto_close:{title:\"Auto-Close Topic\",label:\"Auto-close topic hours:\",error:\"Please enter a valid value.\",based_on_last_post:\"Don't close until the last post in the topic is at least this old.\"},auto_delete:{title:\"Auto-Delete Topic\"},auto_bump:{title:\"Auto-Bump Topic\"},reminder:{title:\"Remind Me\"},status_update_notice:{auto_open:\"This topic will automatically open %{timeLeft}.\",auto_close:\"This topic will automatically close %{timeLeft}.\",auto_publish_to_category:\"This topic will be published to <a href=%{categoryUrl}>#%{categoryName}</a> %{timeLeft}.\",auto_close_based_on_last_post:\"This topic will close %{duration} after the last reply.\",auto_delete:\"This topic will be automatically deleted %{timeLeft}.\",auto_bump:\"This topic will be automatically bumped %{timeLeft}.\",auto_reminder:\"You will be reminded about this topic %{timeLeft}.\"},auto_close_title:\"Auto-Close Settings\",auto_close_immediate:{one:\"The last post in the topic is already %{count} hour old, so the topic will be closed immediately.\",other:\"The last post in the topic is already %{count} hours old, so the topic will be closed immediately.\"},timeline:{back:\"Back\",back_description:\"Go back to your last unread post\",replies_short:\"%{current} / %{total}\"},progress:{title:\"topic progress\",go_top:\"top\",go_bottom:\"bottom\",go:\"go\",jump_bottom:\"jump to last post\",jump_prompt:\"jump to...\",jump_prompt_of:\"of %{count} posts\",jump_prompt_long:\"Jump to...\",jump_bottom_with_number:\"jump to post %{post_number}\",jump_prompt_to_date:\"to date\",jump_prompt_or:\"or\",total:\"total posts\",current:\"current post\"},notifications:{title:\"change how often you get notified about this topic\",reasons:{mailing_list_mode:\"You have mailing list mode enabled, so you will be notified of replies to this topic via email.\",\"3_10\":\"You will receive notifications because you are watching a tag on this topic.\",\"3_6\":\"You will receive notifications because you are watching this category.\",\"3_5\":\"You will receive notifications because you started watching this topic automatically.\",\"3_2\":\"You will receive notifications because you are watching this topic.\",\"3_1\":\"You will receive notifications because you created this topic.\",3:\"You will receive notifications because you are watching this topic.\",\"2_8\":\"You will see a count of new replies because you are tracking this category.\",\"2_4\":\"You will see a count of new replies because you posted a reply to this topic.\",\"2_2\":\"You will see a count of new replies because you are tracking this topic.\",2:'You will see a count of new replies because you <a href=\"{{basePath}}/u/{{username}}/preferences\">read this topic</a>.',\"1_2\":\"You will be notified if someone mentions your @name or replies to you.\",1:\"You will be notified if someone mentions your @name or replies to you.\",\"0_7\":\"You are ignoring all notifications in this category.\",\"0_2\":\"You are ignoring all notifications on this topic.\",0:\"You are ignoring all notifications on this topic.\"},watching_pm:{title:\"Watching\",description:\"You will be notified of every new reply in this message, and a count of new replies will be shown.\"},watching:{title:\"Watching\",description:\"You will be notified of every new reply in this topic, and a count of new replies will be shown.\"},tracking_pm:{title:\"Tracking\",description:\"A count of new replies will be shown for this message. You will be notified if someone mentions your @name or replies to you.\"},tracking:{title:\"Tracking\",description:\"A count of new replies will be shown for this topic. You will be notified if someone mentions your @name or replies to you.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},regular_pm:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted_pm:{title:\"Muted\",description:\"You will never be notified of anything about this message.\"},muted:{title:\"Muted\",description:\"You will never be notified of anything about this topic, and it will not appear in latest.\"}},actions:{title:\"Actions\",recover:\"Un-Delete Topic\",delete:\"Delete Topic\",open:\"Open Topic\",close:\"Close Topic\",multi_select:\"Select Posts…\",timed_update:\"Set Topic Timer...\",pin:\"Pin Topic…\",unpin:\"Un-Pin Topic…\",unarchive:\"Unarchive Topic\",archive:\"Archive Topic\",invisible:\"Make Unlisted\",visible:\"Make Listed\",reset_read:\"Reset Read Data\",make_public:\"Make Public Topic\",make_private:\"Make Personal Message\",reset_bump_date:\"Reset Bump Date\"},feature:{pin:\"Pin Topic\",unpin:\"Un-Pin Topic\",pin_globally:\"Pin Topic Globally\",make_banner:\"Banner Topic\",remove_banner:\"Remove Banner Topic\"},reply:{title:\"Reply\",help:\"begin composing a reply to this topic\"},clear_pin:{title:\"Clear pin\",help:\"Clear the pinned status of this topic so it no longer appears at the top of your topic list\"},share:{title:\"Share\",extended_title:\"Share a link\",help:\"share a link to this topic\"},print:{title:\"Print\",help:\"Open a printer friendly version of this topic\"},flag_topic:{title:\"Flag\",help:\"privately flag this topic for attention or send a private notification about it\",success_message:\"You successfully flagged this topic.\"},make_public:{title:\"Convert to Public Topic\",choose_category:\"Please choose a category for the public topic:\"},feature_topic:{title:\"Feature this topic\",pin:\"Make this topic appear at the top of the {{categoryLink}} category until\",confirm_pin:\"You already have {{count}} pinned topics. Too many pinned topics may be a burden for new and anonymous users. Are you sure you want to pin another topic in this category?\",unpin:\"Remove this topic from the top of the {{categoryLink}} category.\",unpin_until:\"Remove this topic from the top of the {{categoryLink}} category or wait until <strong>%{until}</strong>.\",pin_note:\"Users can unpin the topic individually for themselves.\",pin_validation:\"A date is required to pin this topic.\",not_pinned:\"There are no topics pinned in {{categoryLink}}.\",already_pinned:{one:\"Topics currently pinned in {{categoryLink}}: <strong class='badge badge-notification unread'>%{count}</strong>\",other:\"Topics currently pinned in {{categoryLink}}: <strong class='badge badge-notification unread'>{{count}}</strong>\"},pin_globally:\"Make this topic appear at the top of all topic lists until\",confirm_pin_globally:\"You already have {{count}} globally pinned topics. Too many pinned topics may be a burden for new and anonymous users. Are you sure you want to pin another topic globally?\",unpin_globally:\"Remove this topic from the top of all topic lists.\",unpin_globally_until:\"Remove this topic from the top of all topic lists or wait until <strong>%{until}</strong>.\",global_pin_note:\"Users can unpin the topic individually for themselves.\",not_pinned_globally:\"There are no topics pinned globally.\",already_pinned_globally:{one:\"Topics currently pinned globally: <strong class='badge badge-notification unread'>%{count}</strong>\",other:\"Topics currently pinned globally: <strong class='badge badge-notification unread'>{{count}}</strong>\"},make_banner:\"Make this topic into a banner that appears at the top of all pages.\",remove_banner:\"Remove the banner that appears at the top of all pages.\",banner_note:\"Users can dismiss the banner by closing it. Only one topic can be bannered at any given time.\",no_banner_exists:\"There is no banner topic.\",banner_exists:\"There <strong class='badge badge-notification unread'>is</strong> currently a banner topic.\"},inviting:\"Inviting...\",automatically_add_to_groups:\"This invite also includes access to these groups:\",invite_private:{title:\"Invite to Message\",email_or_username:\"Invitee's Email or Username\",email_or_username_placeholder:\"email address or username\",action:\"Invite\",success:\"We've invited that user to participate in this message.\",success_group:\"We've invited that group to participate in this message.\",error:\"Sorry, there was an error inviting that user.\",group_name:\"group name\"},controls:\"Topic Controls\",invite_reply:{title:\"Invite\",username_placeholder:\"username\",action:\"Send Invite\",help:\"invite others to this topic via email or notifications\",to_forum:\"We'll send a brief email allowing your friend to immediately join by clicking a link, no login required.\",sso_enabled:\"Enter the username of the person you'd like to invite to this topic.\",to_topic_blank:\"Enter the username or email address of the person you'd like to invite to this topic.\",to_topic_email:\"You've entered an email address. We'll email an invitation that allows your friend to immediately reply to this topic.\",to_topic_username:\"You've entered a username. We'll send a notification with a link inviting them to this topic.\",to_username:\"Enter the username of the person you'd like to invite. We'll send a notification with a link inviting them to this topic.\",email_placeholder:\"name@example.com\",success_email:\"We mailed out an invitation to <b>{{emailOrUsername}}</b>. We'll notify you when the invitation is redeemed. Check the invitations tab on your user page to keep track of your invites.\",success_username:\"We've invited that user to participate in this topic.\",error:\"Sorry, we couldn't invite that person. Perhaps they have already been invited? (Invites are rate limited)\",success_existing_email:\"A user with email <b>{{emailOrUsername}}</b> already exists. We've invited that user to participate in this topic.\"},login_reply:\"Log In to Reply\",filters:{n_posts:{one:\"%{count} post\",other:\"{{count}} posts\"},cancel:\"Remove filter\"},move_to:{title:\"Move to\",action:\"move to\",error:\"There was an error moving posts.\"},split_topic:{title:\"Move to New Topic\",action:\"move to new topic\",topic_name:\"New Topic Title\",radio_label:\"New Topic\",error:\"There was an error moving posts to the new topic.\",instructions:{one:\"You are about to create a new topic and populate it with the post you've selected.\",other:\"You are about to create a new topic and populate it with the <b>{{count}}</b> posts you've selected.\"}},merge_topic:{title:\"Move to Existing Topic\",action:\"move to existing topic\",error:\"There was an error moving posts into that topic.\",radio_label:\"Existing Topic\",instructions:{one:\"Please choose the topic you'd like to move that post to.\",other:\"Please choose the topic you'd like to move those <b>{{count}}</b> posts to.\"}},move_to_new_message:{title:\"Move to New Message\",action:\"move to new message\",message_title:\"New Message Title\",radio_label:\"New Message\",participants:\"Participants\",instructions:{one:\"You are about to create a new message and populate it with the post you've selected.\",other:\"You are about to create a new message and populate it with the <b>{{count}}</b> posts you've selected.\"}},move_to_existing_message:{title:\"Move to Existing Message\",action:\"move to existing message\",radio_label:\"Existing Message\",participants:\"Participants\",instructions:{one:\"Please choose the message you'd like to move that post to.\",other:\"Please choose the message you'd like to move those <b>{{count}}</b> posts to.\"}},merge_posts:{title:\"Merge Selected Posts\",action:\"merge selected posts\",error:\"There was an error merging the selected posts.\"},change_owner:{title:\"Change Owner\",action:\"change ownership\",error:\"There was an error changing the ownership of the posts.\",placeholder:\"username of new owner\",instructions:{one:\"Please choose a new owner for the post by <b>@{{old_user}}</b>\",other:\"Please choose a new owner for the {{count}} posts by <b>@{{old_user}}</b>\"}},change_timestamp:{title:\"Change Timestamp...\",action:\"change timestamp\",invalid_timestamp:\"Timestamp cannot be in the future.\",error:\"There was an error changing the timestamp of the topic.\",instructions:\"Please select the new timestamp of the topic. Posts in the topic will be updated to have the same time difference.\"},multi_select:{select:\"select\",selected:\"selected ({{count}})\",select_post:{label:\"select\",title:\"Add post to selection\"},selected_post:{label:\"selected\",title:\"Click to remove post from selection\"},select_replies:{label:\"select +replies\",title:\"Add post and all its replies to selection\"},select_below:{label:\"select +below\",title:\"Add post and all after it to selection\"},delete:\"delete selected\",cancel:\"cancel selecting\",select_all:\"select all\",deselect_all:\"deselect all\",description:{one:\"You have selected <b>%{count}</b> post.\",other:\"You have selected <b>{{count}}</b> posts.\"}},deleted_by_author:{one:\"(topic withdrawn by author, will be automatically deleted in %{count} hour unless flagged)\",other:\"(topic withdrawn by author, will be automatically deleted in %{count} hours unless flagged)\"}},post:{quote_reply:\"Quote\",edit_reason:\"Reason: \",post_number:\"post {{number}}\",ignored:\"Ignored content\",wiki_last_edited_on:\"wiki last edited on\",last_edited_on:\"post last edited on\",reply_as_new_topic:\"Reply as linked Topic\",reply_as_new_private_message:\"Reply as new message to the same recipients\",continue_discussion:\"Continuing the discussion from {{postLink}}:\",follow_quote:\"go to the quoted post\",show_full:\"Show Full Post\",show_hidden:\"View ignored content.\",deleted_by_author:{one:\"(post withdrawn by author, will be automatically deleted in %{count} hour unless flagged)\",other:\"(post withdrawn by author, will be automatically deleted in %{count} hours unless flagged)\"},collapse:\"collapse\",expand_collapse:\"expand/collapse\",locked:\"a staff member has locked this post from being edited\",gap:{one:\"view %{count} hidden reply\",other:\"view {{count}} hidden replies\"},notice:{new_user:\"This is the first time {{user}} has posted — let’s welcome them to our community!\",returning_user:\"It’s been a while since we’ve seen {{user}} — their last post was {{time}}.\"},unread:\"Post is unread\",has_replies:{one:\"{{count}} Reply\",other:\"{{count}} Replies\"},has_likes_title:{one:\"%{count} person liked this post\",other:\"{{count}} people liked this post\"},has_likes_title_only_you:\"you liked this post\",has_likes_title_you:{one:\"you and %{count} other person liked this post\",other:\"you and {{count}} other people liked this post\"},errors:{create:\"Sorry, there was an error creating your post. Please try again.\",edit:\"Sorry, there was an error editing your post. Please try again.\",upload:\"Sorry, there was an error uploading that file. Please try again.\",file_too_large:\"Sorry, that file is too big (maximum size is {{max_size_kb}}kb). Why not upload your large file to a cloud sharing service, then paste the link?\",too_many_uploads:\"Sorry, you can only upload one file at a time.\",too_many_dragged_and_dropped_files:\"Sorry, you can only upload {{max}} files at a time.\",upload_not_authorized:\"Sorry, the file you are trying to upload is not authorized (authorized extensions: {{authorized_extensions}}).\",image_upload_not_allowed_for_new_user:\"Sorry, new users can not upload images.\",attachment_upload_not_allowed_for_new_user:\"Sorry, new users can not upload attachments.\",attachment_download_requires_login:\"Sorry, you need to be logged in to download attachments.\"},abandon_edit:{confirm:\"Are you sure you want to discard your changes?\",no_value:\"No, keep\",no_save_draft:\"No, save draft\",yes_value:\"Yes, discard edit\"},abandon:{confirm:\"Are you sure you want to abandon your post?\",no_value:\"No, keep\",no_save_draft:\"No, save draft\",yes_value:\"Yes, abandon\"},via_email:\"this post arrived via email\",via_auto_generated_email:\"this post arrived via an auto generated email\",whisper:\"this post is a private whisper for moderators\",wiki:{about:\"this post is a wiki\"},archetypes:{save:\"Save Options\"},few_likes_left:\"Thanks for sharing the love! You only have a few likes left for today.\",controls:{reply:\"begin composing a reply to this post\",like:\"like this post\",has_liked:\"you've liked this post\",read_indicator:\"members who read this post\",undo_like:\"undo like\",edit:\"edit this post\",edit_action:\"Edit\",edit_anonymous:\"Sorry, but you need to be logged in to edit this post.\",flag:\"privately flag this post for attention or send a private notification about it\",delete:\"delete this post\",undelete:\"undelete this post\",share:\"share a link to this post\",more:\"More\",delete_replies:{confirm:\"Do you also want to delete the replies to this post?\",direct_replies:{one:\"Yes, and %{count} direct reply\",other:\"Yes, and {{count}} direct replies\"},all_replies:{one:\"Yes, and %{count} reply\",other:\"Yes, and all {{count}} replies\"},just_the_post:\"No, just this post\"},admin:\"post admin actions\",wiki:\"Make Wiki\",unwiki:\"Remove Wiki\",convert_to_moderator:\"Add Staff Color\",revert_to_regular:\"Remove Staff Color\",rebake:\"Rebuild HTML\",unhide:\"Unhide\",change_owner:\"Change Ownership\",grant_badge:\"Grant Badge\",lock_post:\"Lock Post\",lock_post_description:\"prevent the poster from editing this post\",unlock_post:\"Unlock Post\",unlock_post_description:\"allow the poster to edit this post\",delete_topic_disallowed_modal:\"You don't have permission to delete this topic. If you really want it to be deleted, submit a flag for moderator attention together with reasoning.\",delete_topic_disallowed:\"you don't have permission to delete this topic\",delete_topic:\"delete topic\",add_post_notice:\"Add Staff Notice\",remove_post_notice:\"Remove Staff Notice\",remove_timer:\"remove timer\"},actions:{flag:\"Flag\",defer_flags:{one:\"Ignore flag\",other:\"Ignore flags\"},undo:{off_topic:\"Undo flag\",spam:\"Undo flag\",inappropriate:\"Undo flag\",bookmark:\"Undo bookmark\",like:\"Undo like\"},people:{off_topic:\"flagged this as off-topic\",spam:\"flagged this as spam\",inappropriate:\"flagged this as inappropriate\",notify_moderators:\"notified moderators\",notify_user:\"sent a message\",bookmark:\"bookmarked this\",like:{one:\"liked this\",other:\"liked this\"},read:{one:\"read this\",other:\"read this\"},like_capped:{one:\"and {{count}} other liked this\",other:\"and {{count}} others liked this\"},read_capped:{one:\"and {{count}} other read this\",other:\"and {{count}} others read this\"}},by_you:{off_topic:\"You flagged this as off-topic\",spam:\"You flagged this as spam\",inappropriate:\"You flagged this as inappropriate\",notify_moderators:\"You flagged this for moderation\",notify_user:\"You sent a message to this user\",bookmark:\"You bookmarked this post\",like:\"You liked this\"}},delete:{confirm:{one:\"Are you sure you want to delete that post?\",other:\"Are you sure you want to delete those {{count}} posts?\"}},merge:{confirm:{one:\"Are you sure you want to merge those posts?\",other:\"Are you sure you want to merge those {{count}} posts?\"}},revisions:{controls:{first:\"First revision\",previous:\"Previous revision\",next:\"Next revision\",last:\"Last revision\",hide:\"Hide revision\",show:\"Show revision\",revert:\"Revert to this revision\",edit_wiki:\"Edit Wiki\",edit_post:\"Edit Post\",comparing_previous_to_current_out_of_total:\"<strong>{{previous}}</strong> {{icon}} <strong>{{current}}</strong> / {{total}}\"},displays:{inline:{title:\"Show the rendered output with additions and removals inline\",button:\"HTML\"},side_by_side:{title:\"Show the rendered output diffs side-by-side\",button:\"HTML\"},side_by_side_markdown:{title:\"Show the raw source diffs side-by-side\",button:\"Raw\"}}},raw_email:{displays:{raw:{title:\"Show the raw email\",button:\"Raw\"},text_part:{title:\"Show the text part of the email\",button:\"Text\"},html_part:{title:\"Show the html part of the email\",button:\"HTML\"}}},bookmarks:{create:\"Create bookmark\",name:\"Name\",name_placeholder:\"Name the bookmark to help jog your memory\",set_reminder:\"Set a reminder\",actions:{delete_bookmark:{name:\"Delete bookmark\",description:\"Removes the bookmark from your profile and stops all reminders for the bookmark\"}}}},category:{can:\"can&hellip; \",none:\"(no category)\",all:\"All categories\",choose:\"category&hellip;\",edit:\"Edit\",edit_dialog_title:\"Edit: %{categoryName}\",view:\"View Topics in Category\",general:\"General\",settings:\"Settings\",topic_template:\"Topic Template\",tags:\"Tags\",tags_allowed_tags:\"Restrict these tags to this category:\",tags_allowed_tag_groups:\"Restrict these tag groups to this category:\",tags_placeholder:\"(Optional) list of allowed tags\",tags_tab_description:\"Tags and tag groups specified above will only be available in this category and other categories that also specify them. They won't be available for use in other categories.\",tag_groups_placeholder:\"(Optional) list of allowed tag groups\",manage_tag_groups_link:\"Manage tag groups here.\",allow_global_tags_label:\"Also allow other tags\",tag_group_selector_placeholder:\"(Optional) Tag group\",required_tag_group_description:\"Require new topics to have tags from a tag group:\",min_tags_from_required_group_label:\"Num Tags:\",required_tag_group_label:\"Tag group:\",topic_featured_link_allowed:\"Allow featured links in this category\",delete:\"Delete Category\",create:\"New Category\",create_long:\"Create a new category\",save:\"Save Category\",slug:\"Category Slug\",slug_placeholder:\"(Optional) dashed-words for url\",creation_error:\"There has been an error during the creation of the category.\",save_error:\"There was an error saving the category.\",name:\"Category Name\",description:\"Description\",topic:\"category topic\",logo:\"Category Logo Image\",background_image:\"Category Background Image\",badge_colors:\"Badge colors\",background_color:\"Background color\",foreground_color:\"Foreground color\",name_placeholder:\"One or two words maximum\",color_placeholder:\"Any web color\",delete_confirm:\"Are you sure you want to delete this category?\",delete_error:\"There was an error deleting the category.\",list:\"List Categories\",no_description:\"Please add a description for this category.\",change_in_category_topic:\"Edit Description\",already_used:\"This color has been used by another category\",security:\"Security\",special_warning:\"Warning: This category is a pre-seeded category and the security settings cannot be edited. If you do not wish to use this category, delete it instead of repurposing it.\",uncategorized_security_warning:\"This category is special. It is intended as holding area for topics that have no category; it cannot have security settings.\",uncategorized_general_warning:'This category is special. It is used as the default category for new topics that do not have a category selected. If you want to prevent this behavior and force category selection, <a href=\"%{settingLink}\">please disable the setting here</a>. If you want to change the name or description, go to <a href=\"%{customizeLink}\">Customize / Text Content</a>.',pending_permission_change_alert:\"You haven't added %{group} to this category; click this button to add them.\",images:\"Images\",email_in:\"Custom incoming email address:\",email_in_allow_strangers:\"Accept emails from anonymous users with no accounts\",email_in_disabled:\"Posting new topics via email is disabled in the Site Settings. To enable posting new topics via email, \",email_in_disabled_click:'enable the \"email in\" setting.',mailinglist_mirror:\"Category mirrors a mailing list\",show_subcategory_list:\"Show subcategory list above topics in this category.\",num_featured_topics:\"Number of topics shown on the categories page:\",subcategory_num_featured_topics:\"Number of featured topics on parent category's page:\",all_topics_wiki:\"Make new topics wikis by default\",subcategory_list_style:\"Subcategory List Style:\",sort_order:\"Topic List Sort By:\",default_view:\"Default Topic List:\",default_top_period:\"Default Top Period:\",allow_badges_label:\"Allow badges to be awarded in this category\",edit_permissions:\"Edit Permissions\",reviewable_by_group:\"In addition to staff, posts and flags in this category can be also be reviewed by:\",review_group_name:\"group name\",require_topic_approval:\"Require moderator approval of all new topics\",require_reply_approval:\"Require moderator approval of all new replies\",this_year:\"this year\",position:\"Position on the categories page:\",default_position:\"Default Position\",position_disabled:\"Categories will be displayed in order of activity. To control the order of categories in lists, \",position_disabled_click:'enable the \"fixed category positions\" setting.',minimum_required_tags:\"Minimum number of tags required in a topic:\",parent:\"Parent Category\",num_auto_bump_daily:\"Number of open topics to automatically bump daily:\",navigate_to_first_post_after_read:\"Navigate to first post after topics are read\",notifications:{watching:{title:\"Watching\",description:\"You will automatically watch all topics in these categories. You will be notified of every new post in every topic, and a count of new replies will be shown.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new topics in this category but not replies to the topics.\"},tracking:{title:\"Tracking\",description:\"You will automatically track all topics in these categories. You will be notified if someone mentions your @name or replies to you, and a count of new replies will be shown.\"},regular:{title:\"Normal\",description:\"You will be notified if someone mentions your @name or replies to you.\"},muted:{title:\"Muted\",description:\"You will never be notified of anything about new topics in these categories, and they will not appear in latest.\"}},search_priority:{label:\"Search Priority\",options:{normal:\"Normal\",ignore:\"Ignore\",very_low:\"Very Low\",low:\"Low\",high:\"High\",very_high:\"Very High\"}},sort_options:{default:\"default\",likes:\"Likes\",op_likes:\"Original Post Likes\",views:\"Views\",posts:\"Posts\",activity:\"Activity\",posters:\"Posters\",category:\"Category\",created:\"Created\"},sort_ascending:\"Ascending\",sort_descending:\"Descending\",subcategory_list_styles:{rows:\"Rows\",rows_with_featured_topics:\"Rows with featured topics\",boxes:\"Boxes\",boxes_with_featured_topics:\"Boxes with featured topics\"},settings_sections:{general:\"General\",moderation:\"Moderation\",appearance:\"Appearance\",email:\"Email\"}},flagging:{title:\"Thanks for helping to keep our community civil!\",action:\"Flag Post\",take_action:\"Take Action\",notify_action:\"Message\",official_warning:\"Official Warning\",delete_spammer:\"Delete Spammer\",yes_delete_spammer:\"Yes, Delete Spammer\",ip_address_missing:\"(N/A)\",hidden_email_address:\"(hidden)\",submit_tooltip:\"Submit the private flag\",take_action_tooltip:\"Reach the flag threshold immediately, rather than waiting for more community flags\",cant:\"Sorry, you can't flag this post at this time.\",notify_staff:\"Notify staff privately\",formatted_name:{off_topic:\"It's Off-Topic\",inappropriate:\"It's Inappropriate\",spam:\"It's Spam\"},custom_placeholder_notify_user:\"Be specific, be constructive, and always be kind.\",custom_placeholder_notify_moderators:\"Let us know specifically what you are concerned about, and provide relevant links and examples where possible.\",custom_message:{at_least:{one:\"enter at least %{count} character\",other:\"enter at least {{count}} characters\"},more:{one:\"%{count} to go...\",other:\"{{count}} to go...\"},left:{one:\"%{count} remaining\",other:\"{{count}} remaining\"}}},flagging_topic:{title:\"Thanks for helping to keep our community civil!\",action:\"Flag Topic\",notify_action:\"Message\"},topic_map:{title:\"Topic Summary\",participants_title:\"Frequent Posters\",links_title:\"Popular Links\",links_shown:\"show more links...\",clicks:{one:\"%{count} click\",other:\"%{count} clicks\"}},post_links:{about:\"expand more links for this post\",title:{one:\"%{count} more\",other:\"%{count} more\"}},topic_statuses:{warning:{help:\"This is an official warning.\"},bookmarked:{help:\"You bookmarked this topic\"},locked:{help:\"This topic is closed; it no longer accepts new replies\"},archived:{help:\"This topic is archived; it is frozen and cannot be changed\"},locked_and_archived:{help:\"This topic is closed and archived; it no longer accepts new replies and cannot be changed\"},unpinned:{title:\"Unpinned\",help:\"This topic is unpinned for you; it will display in regular order\"},pinned_globally:{title:\"Pinned Globally\",help:\"This topic is pinned globally; it will display at the top of latest and its category\"},pinned:{title:\"Pinned\",help:\"This topic is pinned for you; it will display at the top of its category\"},unlisted:{help:\"This topic is unlisted; it will not be displayed in topic lists, and can only be accessed via a direct link\"},personal_message:{title:\"This topic is a personal message\"},solved:{help:\"This topic has a solution\"}},posts:\"Posts\",posts_long:\"there are {{number}} posts in this topic\",original_post:\"Original Post\",views:\"Views\",views_lowercase:{one:\"view\",other:\"views\"},replies:\"Replies\",views_long:{one:\"this topic has been viewed %{count} time\",other:\"this topic has been viewed {{number}} times\"},activity:\"Activity\",likes:\"Likes\",likes_lowercase:{one:\"like\",other:\"likes\"},likes_long:\"there are {{number}} likes in this topic\",users:\"Users\",users_lowercase:{one:\"user\",other:\"users\"},category_title:\"Category\",history:\"History\",changed_by:\"by {{author}}\",raw_email:{title:\"Incoming Email\",not_available:\"Not available!\"},categories_list:\"Categories List\",filters:{with_topics:\"%{filter} topics\",with_category:\"%{filter} %{category} topics\",latest:{title:\"Latest\",title_with_count:{one:\"Latest (%{count})\",other:\"Latest ({{count}})\"},help:\"topics with recent posts\"},read:{title:\"Read\",help:\"topics you've read, in the order that you last read them\"},categories:{title:\"Categories\",title_in:\"Category - {{categoryName}}\",help:\"all topics grouped by category\"},unread:{title:\"Unread\",title_with_count:{one:\"Unread (%{count})\",other:\"Unread ({{count}})\"},help:\"topics you are currently watching or tracking with unread posts\",lower_title_with_count:{one:\"%{count} unread\",other:\"{{count}} unread\"}},new:{lower_title_with_count:{one:\"%{count} new\",other:\"{{count}} new\"},lower_title:\"new\",title:\"New\",title_with_count:{one:\"New (%{count})\",other:\"New ({{count}})\"},help:\"topics created in the last few days\"},posted:{title:\"My Posts\",help:\"topics you have posted in\"},bookmarks:{title:\"Bookmarks\",help:\"topics you have bookmarked\"},category:{title:\"{{categoryName}}\",title_with_count:{one:\"{{categoryName}} (%{count})\",other:\"{{categoryName}} ({{count}})\"},help:\"latest topics in the {{categoryName}} category\"},top:{title:\"Top\",help:\"the most active topics in the last year, month, week or day\",all:{title:\"All Time\"},yearly:{title:\"Yearly\"},quarterly:{title:\"Quarterly\"},monthly:{title:\"Monthly\"},weekly:{title:\"Weekly\"},daily:{title:\"Daily\"},all_time:\"All Time\",this_year:\"Year\",this_quarter:\"Quarter\",this_month:\"Month\",this_week:\"Week\",today:\"Today\",other_periods:\"see top\"}},browser_update:'Unfortunately, <a href=\"https://www.discourse.org/faq/#browser\">your browser is too old to work on this site</a>. Please <a href=\"https://browsehappy.com\">upgrade your browser</a>.',permission_types:{full:\"Create / Reply / See\",create_post:\"Reply / See\",readonly:\"See\"},lightbox:{download:\"download\",previous:\"Previous (Left arrow key)\",next:\"Next (Right arrow key)\",counter:\"%curr% of %total%\",close:\"Close (Esc)\",content_load_error:'<a href=\"%url%\">The content</a> could not be loaded.',image_load_error:'<a href=\"%url%\">The image</a> could not be loaded.'},keyboard_shortcuts_help:{shortcut_key_delimiter_comma:\", \",shortcut_key_delimiter_plus:\"+\",shortcut_delimiter_or:\"%{shortcut1} or %{shortcut2}\",shortcut_delimiter_slash:\"%{shortcut1}/%{shortcut2}\",shortcut_delimiter_space:\"%{shortcut1} %{shortcut2}\",title:\"Keyboard Shortcuts\",jump_to:{title:\"Jump To\",home:\"%{shortcut} Home\",latest:\"%{shortcut} Latest\",new:\"%{shortcut} New\",unread:\"%{shortcut} Unread\",categories:\"%{shortcut} Categories\",top:\"%{shortcut} Top\",bookmarks:\"%{shortcut} Bookmarks\",profile:\"%{shortcut} Profile\",messages:\"%{shortcut} Messages\",drafts:\"%{shortcut} Drafts\"},navigation:{title:\"Navigation\",jump:\"%{shortcut} Go to post #\",back:\"%{shortcut} Back\",up_down:\"%{shortcut} Move selection &uarr; &darr;\",open:\"%{shortcut} Open selected topic\",next_prev:\"%{shortcut} Next/previous section\",go_to_unread_post:\"%{shortcut} Go to the first unread post\"},application:{title:\"Application\",create:\"%{shortcut} Create a new topic\",notifications:\"%{shortcut} Open notifications\",hamburger_menu:\"%{shortcut} Open hamburger menu\",user_profile_menu:\"%{shortcut} Open user menu\",show_incoming_updated_topics:\"%{shortcut} Show updated topics\",search:\"%{shortcut} Search\",help:\"%{shortcut} Open keyboard help\",dismiss_new_posts:\"%{shortcut} Dismiss New/Posts\",dismiss_topics:\"%{shortcut} Dismiss Topics\",log_out:\"%{shortcut} Log Out\"},composing:{title:\"Composing\",return:\"%{shortcut} Return to composer\",fullscreen:\"%{shortcut} Fullscreen composer\"},actions:{title:\"Actions\",bookmark_topic:\"%{shortcut} Toggle bookmark topic\",pin_unpin_topic:\"%{shortcut} Pin/Unpin topic\",share_topic:\"%{shortcut} Share topic\",share_post:\"%{shortcut} Share post\",reply_as_new_topic:\"%{shortcut} Reply as linked topic\",reply_topic:\"%{shortcut} Reply to topic\",reply_post:\"%{shortcut} Reply to post\",quote_post:\"%{shortcut} Quote post\",like:\"%{shortcut} Like post\",flag:\"%{shortcut} Flag post\",bookmark:\"%{shortcut} Bookmark post\",edit:\"%{shortcut} Edit post\",delete:\"%{shortcut} Delete post\",mark_muted:\"%{shortcut} Mute topic\",mark_regular:\"%{shortcut} Regular (default) topic\",mark_tracking:\"%{shortcut} Track topic\",mark_watching:\"%{shortcut} Watch topic\",print:\"%{shortcut} Print topic\",defer:\"%{shortcut} Defer topic\",topic_admin_actions:\"%{shortcut} Open topic admin actions\"}},badges:{earned_n_times:{one:\"Earned this badge %{count} time\",other:\"Earned this badge %{count} times\"},granted_on:\"Granted %{date}\",others_count:\"Others with this badge (%{count})\",title:\"Badges\",allow_title:\"You can use this badge as a title\",multiple_grant:\"You can earn this multiple times\",badge_count:{one:\"%{count} Badge\",other:\"%{count} Badges\"},more_badges:{one:\"+%{count} More\",other:\"+%{count} More\"},granted:{one:\"%{count} granted\",other:\"%{count} granted\"},select_badge_for_title:\"Select a badge to use as your title\",none:\"(none)\",successfully_granted:\"Successfully granted %{badge} to %{username}\",badge_grouping:{getting_started:{name:\"Getting Started\"},community:{name:\"Community\"},trust_level:{name:\"Trust Level\"},other:{name:\"Other\"},posting:{name:\"Posting\"}}},tagging:{all_tags:\"All Tags\",other_tags:\"Other Tags\",selector_all_tags:\"all tags\",selector_no_tags:\"no tags\",changed:\"tags changed:\",tags:\"Tags\",choose_for_topic:\"optional tags\",info:\"Info\",default_info:\"This tag isn't restricted to any categories, and has no synonyms.\",category_restricted:\"This tag is restricted to categories you don't have permission to access.\",synonyms:\"Synonyms\",synonyms_description:\"When the following tags are used, they will be replaced with <b>%{base_tag_name}</b>.\",tag_groups_info:{one:'This tag belongs to the group \"{{tag_groups}}\".',other:\"This tag belongs to these groups: {{tag_groups}}.\"},category_restrictions:{one:\"It can only be used in this category:\",other:\"It can only be used in these categories:\"},edit_synonyms:\"Manage Synonyms\",add_synonyms_label:\"Add synonyms:\",add_synonyms:\"Add\",add_synonyms_explanation:{one:\"Any place that currently uses this tag will be changed to use <b>%{tag_name}</b> instead. Are you sure you want to make this change?\",other:\"Any place that currently uses these tags will be changed to use <b>%{tag_name}</b> instead. Are you sure you want to make this change?\"},add_synonyms_failed:\"The following tags couldn't be added as synonyms: <b>%{tag_names}</b>. Ensure they don't have synonyms and aren't synonyms of another tag.\",remove_synonym:\"Remove Synonym\",delete_synonym_confirm:'Are you sure you want to delete the synonym \"%{tag_name}\"?',delete_tag:\"Delete Tag\",delete_confirm:{one:\"Are you sure you want to delete this tag and remove it from %{count} topic it is assigned to?\",other:\"Are you sure you want to delete this tag and remove it from {{count}} topics it is assigned to?\"},delete_confirm_no_topics:\"Are you sure you want to delete this tag?\",delete_confirm_synonyms:{one:\"Its synonym will also be deleted.\",other:\"Its {{count}} synonyms will also be deleted.\"},rename_tag:\"Rename Tag\",rename_instructions:\"Choose a new name for the tag:\",sort_by:\"Sort by:\",sort_by_count:\"count\",sort_by_name:\"name\",manage_groups:\"Manage Tag Groups\",manage_groups_description:\"Define groups to organize tags\",upload:\"Upload Tags\",upload_description:\"Upload a csv file to create tags in bulk\",upload_instructions:\"One per line, optionally with a tag group in the format 'tag_name,tag_group'.\",upload_successful:\"Tags uploaded successfully\",delete_unused_confirmation:{one:\"%{count} tag will be deleted: %{tags}\",other:\"%{count} tags will be deleted: %{tags}\"},delete_unused_confirmation_more_tags:{one:\"%{tags} and %{count} more\",other:\"%{tags} and %{count} more\"},delete_unused:\"Delete Unused Tags\",delete_unused_description:\"Delete all tags which are not attached to any topics or personal messages\",cancel_delete_unused:\"Cancel\",filters:{without_category:\"%{filter} %{tag} topics\",with_category:\"%{filter} %{tag} topics in %{category}\",untagged_without_category:\"%{filter} untagged topics\",untagged_with_category:\"%{filter} untagged topics in %{category}\"},notifications:{watching:{title:\"Watching\",description:\"You will automatically watch all topics with this tag. You will be notified of all new posts and topics, plus the count of unread and new posts will also appear next to the topic.\"},watching_first_post:{title:\"Watching First Post\",description:\"You will be notified of new topics in this tag but not replies to the topics.\"},tracking:{title:\"Tracking\",description:\"You will automatically track all topics with this tag. A count of unread and new posts will appear next to the topic.\"},regular:{title:\"Regular\",description:\"You will be notified if someone mentions your @name or replies to your post.\"},muted:{title:\"Muted\",description:\"You will not be notified of anything about new topics with this tag, and they will not appear on your unread tab.\"}},groups:{title:\"Tag Groups\",about:\"Add tags to groups to manage them more easily.\",new:\"New Group\",tags_label:\"Tags in this group:\",tags_placeholder:\"tags\",parent_tag_label:\"Parent tag:\",parent_tag_placeholder:\"Optional\",parent_tag_description:\"Tags from this group can't be used unless the parent tag is present.\",one_per_topic_label:\"Limit one tag per topic from this group\",new_name:\"New Tag Group\",name_placeholder:\"Tag Group Name\",save:\"Save\",delete:\"Delete\",confirm_delete:\"Are you sure you want to delete this tag group?\",everyone_can_use:\"Tags can be used by everyone\",usable_only_by_staff:\"Tags are visible to everyone, but only staff can use them\",visible_only_to_staff:\"Tags are visible only to staff\"},topics:{none:{unread:\"You have no unread topics.\",new:\"You have no new topics.\",read:\"You haven't read any topics yet.\",posted:\"You haven't posted in any topics yet.\",latest:\"There are no latest topics.\",bookmarks:\"You have no bookmarked topics yet.\",top:\"There are no top topics.\"},bottom:{latest:\"There are no more latest topics.\",posted:\"There are no more posted topics.\",read:\"There are no more read topics.\",new:\"There are no more new topics.\",unread:\"There are no more unread topics.\",top:\"There are no more top topics.\",bookmarks:\"There are no more bookmarked topics.\"}}},invite:{custom_message:\"Make your invite a little bit more personal by writing a <a href>custom message</a>.\",custom_message_placeholder:\"Enter your custom message\",custom_message_template_forum:\"Hey, you should join this forum!\",custom_message_template_topic:\"Hey, I thought you might enjoy this topic!\"},forced_anonymous:\"Due to extreme load, this is temporarily being shown to everyone as a logged out user would see it.\",safe_mode:{enabled:\"Safe mode is enabled, to exit safe mode close this browser window\"},details:{title:\"Hide Details\"},discourse_internet_explorer:{deprecation_warning:\"This site will soon remove support for Internet Explorer 11 - please update your browser\"},discourse_local_dates:{relative_dates:{today:\"Today %{time}\",tomorrow:\"Tomorrow %{time}\",yesterday:\"Yesterday %{time}\",countdown:{passed:\"date has passed\"}},title:\"Insert date / time\",create:{form:{insert:\"Insert\",advanced_mode:\"Advanced mode\",simple_mode:\"Simple mode\",format_description:'Format used to display the date to the user. Use \"\\\\T\\\\Z\" to display the user timezone in words (Europe/Paris)',timezones_title:\"Timezones to display\",timezones_description:\"Timezones will be used to display dates in preview and fallback.\",recurring_title:\"Recurrence\",recurring_description:\"Define the recurrence of an event. You can also manually edit the recurring option generated by the form and use one of the following keys: years, quarters, months, weeks, days, hours, minutes, seconds, milliseconds.\",recurring_none:\"No recurrence\",invalid_date:\"Invalid date, make sure date and time are correct\",date_title:\"Date\",time_title:\"Time\",format_title:\"Date format\",timezone:\"Timezone\",until:\"Until...\",recurring:{every_day:\"Every day\",every_week:\"Every week\",every_two_weeks:\"Every two weeks\",every_month:\"Every month\",every_two_months:\"Every two months\",every_three_months:\"Every three months\",every_six_months:\"Every six months\",every_year:\"Every year\"}}}},discourse_narrative_bot:{welcome_post_type:{new_user_track:\"Start the new user tutorial for all new users\",welcome_message:\"Send all new users a welcome message with a quick start guide\"}},presence:{replying:\"replying\",editing:\"editing\",replying_to_topic:{one:\"replying\",other:\"replying\"}},poll:{voters:{one:\"voter\",other:\"voters\"},total_votes:{one:\"total vote\",other:\"total votes\"},average_rating:\"Average rating: <strong>%{average}</strong>.\",public:{title:\"Votes are <strong>public</strong>.\"},results:{groups:{title:\"You need to be a member of %{groups} to vote in this poll.\"},vote:{title:\"Results will be shown on <strong>vote</strong>.\"},closed:{title:\"Results will be shown once <strong>closed</strong>.\"},staff:{title:\"Results are only shown to <strong>staff</strong> members.\"}},multiple:{help:{at_least_min_options:{one:\"Choose at least <strong>%{count}</strong> option\",other:\"Choose at least <strong>%{count}</strong> options\"},up_to_max_options:{one:\"Choose up to <strong>%{count}</strong> option\",other:\"Choose up to <strong>%{count}</strong> options\"},x_options:{one:\"Choose <strong>%{count}</strong> option\",other:\"Choose <strong>%{count}</strong> options\"},between_min_and_max_options:\"Choose between <strong>%{min}</strong> and <strong>%{max}</strong> options\"}},\"cast-votes\":{title:\"Cast your votes\",label:\"Vote now!\"},\"show-results\":{title:\"Display the poll results\",label:\"Show results\"},\"hide-results\":{title:\"Back to your votes\",label:\"Show vote\"},\"group-results\":{title:\"Group votes by user field\",label:\"Show breakdown\"},\"ungroup-results\":{title:\"Combine all votes\",label:\"Hide breakdown\"},\"export-results\":{title:\"Export the poll results\",label:\"Export\"},open:{title:\"Open the poll\",label:\"Open\",confirm:\"Are you sure you want to open this poll?\"},close:{title:\"Close the poll\",label:\"Close\",confirm:\"Are you sure you want to close this poll?\"},automatic_close:{closes_in:\"Closes in <strong>%{timeLeft}</strong>.\",age:\"Closed <strong>%{age}</strong>\"},error_while_toggling_status:\"Sorry, there was an error toggling the status of this poll.\",error_while_casting_votes:\"Sorry, there was an error casting your votes.\",error_while_fetching_voters:\"Sorry, there was an error displaying the voters.\",error_while_exporting_results:\"Sorry, there was an error exporting poll results.\",ui_builder:{title:\"Build Poll\",insert:\"Insert Poll\",help:{options_count:\"Enter at least 1 option\",invalid_values:\"Minimum value must be smaller than the maximum value.\",min_step_value:\"The minimum step value is 1\"},poll_type:{label:\"Type\",regular:\"Single Choice\",multiple:\"Multiple Choice\",number:\"Number Rating\"},poll_result:{label:\"Results\",always:\"Always visible\",vote:\"On vote\",closed:\"When closed\",staff:\"Staff only\"},poll_groups:{label:\"Allowed groups\"},poll_chart_type:{label:\"Chart type\"},poll_config:{max:\"Max\",min:\"Min\",step:\"Step\"},poll_public:{label:\"Show who voted\"},poll_options:{label:\"Enter one poll option per line\"},automatic_close:{label:\"Automatically close poll\"}}},saved_searches:{title:\"Saved Searches\",description:\"Save up to %{max} searches and receive notifications about new search results.\"},solved:{title:\"Solved\",allow_accepted_answers:\"Allow topic owner and staff to mark a reply as the solution\",accept_answer:\"Select if this reply solves the problem\",accepted_description:\"This is the accepted solution to this topic\",has_no_accepted_answer:\"This topic has no solution\",unaccept_answer:\"Unselect if this reply no longer solves the problem\",accepted_answer:\"Solution\",solution:\"Solution\",solution_summary:{one:\"solution\",other:\"solutions\"},accepted_html:\"{{icon}} Solved <span class='by'>by <a href data-user-card='{{username_lower}}'>{{username}}</a></span> in <a href='{{post_path}}' class='back'>post #{{post_number}}</a>\",accepted_notification:\"<p><span>{{username}}</span> {{description}}</p>\",topic_status_filter:{all:\"all\",solved:\"solved\",unsolved:\"unsolved\"}},admin:{web_hooks:{solved_event:{name:\"Solved Event\",details:\"When a user marks a post as the accepted or unaccepted answer.\"}}}}}},I18n.locale=\"en_US\",function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){\"use strict\";var e,i;function h(){return e.apply(null,arguments)}function s(e){return e instanceof Array||\"[object Array]\"===Object.prototype.toString.call(e)}function l(e){return null!=e&&\"[object Object]\"===Object.prototype.toString.call(e)}function r(e){return void 0===e}function c(e){return\"number\"==typeof e||\"[object Number]\"===Object.prototype.toString.call(e)}function n(e){return e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e)}function u(e,t){for(var o=[],a=0;a<e.length;++a)o.push(t(e[a],a));return o}function p(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function d(e,t){for(var o in t)p(t,o)&&(e[o]=t[o]);return p(t,\"toString\")&&(e.toString=t.toString),p(t,\"valueOf\")&&(e.valueOf=t.valueOf),e}function m(e,t,o,a){return Pt(e,t,o,a,!0).utc()}function _(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var t=_(e),o=i.call(t.parsedDateParts,function(e){return null!=e}),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&o);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function g(e){var t=m(NaN);return null!=e?d(_(t),e):_(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),o=t.length>>>0,a=0;a<o;a++)if(a in t&&e.call(this,t[a],a,t))return!0;return!1};var y=h.momentProperties=[];function w(e,t){var o,a,i;if(r(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),r(t._i)||(e._i=t._i),r(t._f)||(e._f=t._f),r(t._l)||(e._l=t._l),r(t._strict)||(e._strict=t._strict),r(t._tzm)||(e._tzm=t._tzm),r(t._isUTC)||(e._isUTC=t._isUTC),r(t._offset)||(e._offset=t._offset),r(t._pf)||(e._pf=_(t)),r(t._locale)||(e._locale=t._locale),0<y.length)for(o=0;o<y.length;o++)r(i=t[a=y[o]])||(e[a]=i);return e}var t=!1;function b(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,h.updateOffset(this),t=!1)}function v(e){return e instanceof b||null!=e&&null!=e._isAMomentObject}function A(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,o=0;return 0!=t&&isFinite(t)&&(o=A(t)),o}function M(e,t,o){for(var a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),r=0,n=0;n<a;n++)(o&&e[n]!==t[n]||!o&&k(e[n])!==k(t[n]))&&r++;return r+i}function T(e){!1===h.suppressDeprecationWarnings&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+e)}function o(i,r){var n=!0;return d(function(){if(null!=h.deprecationHandler&&h.deprecationHandler(null,i),n){for(var e,t=[],o=0;o<arguments.length;o++){if(e=\"\",\"object\"==typeof arguments[o]){for(var a in e+=\"\\n[\"+o+\"] \",arguments[0])e+=a+\": \"+arguments[0][a]+\", \";e=e.slice(0,-2)}else e=arguments[o];t.push(e)}T(i+\"\\nArguments: \"+Array.prototype.slice.call(t).join(\"\")+\"\\n\"+(new Error).stack),n=!1}return r.apply(this,arguments)},r)}var a,S={};function P(e,t){null!=h.deprecationHandler&&h.deprecationHandler(e,t),S[e]||(T(t),S[e]=!0)}function E(e){return e instanceof Function||\"[object Function]\"===Object.prototype.toString.call(e)}function Y(e,t){var o,a=d({},e);for(o in t)p(t,o)&&(l(e[o])&&l(t[o])?(a[o]={},d(a[o],e[o]),d(a[o],t[o])):null!=t[o]?a[o]=t[o]:delete a[o]);for(o in e)p(e,o)&&!p(t,o)&&l(e[o])&&(a[o]=d({},a[o]));return a}function D(e){null!=e&&this.set(e)}h.suppressDeprecationWarnings=!1,h.deprecationHandler=null,a=Object.keys?Object.keys:function(e){var t,o=[];for(t in e)p(e,t)&&o.push(t);return o};var N={};function O(e,t){var o=e.toLowerCase();N[o]=N[o+\"s\"]=N[t]=e}function C(e){return\"string\"==typeof e?N[e]||N[e.toLowerCase()]:void 0}function L(e){var t,o,a={};for(o in e)p(e,o)&&(t=C(o))&&(a[t]=e[o]);return a}var z={};function x(e,t){z[e]=t}function R(e,t,o){var a=\"\"+Math.abs(e),i=t-a.length;return(0<=e?o?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,i)).toString().substr(1)+a}var F=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},U={};function B(e,t,o,a){var i=\"string\"==typeof a?function(){return this[a]()}:a;e&&(U[e]=i),t&&(U[t[0]]=function(){return R(i.apply(this,arguments),t[1],t[2])}),o&&(U[o]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function q(e,t){return e.isValid()?(t=G(t,e.localeData()),W[t]=W[t]||function(a){for(var e,i=a.match(F),t=0,r=i.length;t<r;t++)U[i[t]]?i[t]=U[i[t]]:i[t]=(e=i[t]).match(/\\[[\\s\\S]/)?e.replace(/^\\[|\\]$/g,\"\"):e.replace(/\\\\/g,\"\");return function(e){for(var t=\"\",o=0;o<r;o++)t+=E(i[o])?i[o].call(e,a):i[o];return t}}(t),W[t](e)):e.localeData().invalidDate()}function G(e,t){var o=5;function a(e){return t.longDateFormat(e)||e}for(I.lastIndex=0;0<=o&&I.test(e);)e=e.replace(I,a),I.lastIndex=0,--o;return e}var H=/\\d/,j=/\\d\\d/,V=/\\d{3}/,K=/\\d{4}/,X=/[+-]?\\d{6}/,Z=/\\d\\d?/,J=/\\d\\d\\d\\d?/,Q=/\\d\\d\\d\\d\\d\\d?/,$=/\\d{1,3}/,ee=/\\d{1,4}/,te=/[+-]?\\d{1,6}/,oe=/\\d+/,ae=/[+-]?\\d+/,ie=/Z|[+-]\\d\\d:?\\d\\d/gi,re=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,ne=/[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,se={};function le(e,o,a){se[e]=E(o)?o:function(e,t){return e&&a?a:o}}function ce(e,t){return p(se,e)?se[e](t._strict,t._locale):new RegExp(ue(e.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(e,t,o,a,i){return t||o||a||i})))}function ue(e){return e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}var de={};function he(e,o){var t,a=o;for(\"string\"==typeof e&&(e=[e]),c(o)&&(a=function(e,t){t[o]=k(e)}),t=0;t<e.length;t++)de[e[t]]=a}function pe(e,i){he(e,function(e,t,o,a){o._w=o._w||{},i(e,o._w,o,a)})}var me=0,_e=1,fe=2,ge=3,ye=4,we=5,be=6,ve=7,Ae=8;function ke(e){return Me(e)?366:365}function Me(e){return e%4==0&&e%100!=0||e%400==0}B(\"Y\",0,0,function(){var e=this.year();return e<=9999?\"\"+e:\"+\"+e}),B(0,[\"YY\",2],0,function(){return this.year()%100}),B(0,[\"YYYY\",4],0,\"year\"),B(0,[\"YYYYY\",5],0,\"year\"),B(0,[\"YYYYYY\",6,!0],0,\"year\"),O(\"year\",\"y\"),x(\"year\",1),le(\"Y\",ae),le(\"YY\",Z,j),le(\"YYYY\",ee,K),le(\"YYYYY\",te,X),le(\"YYYYYY\",te,X),he([\"YYYYY\",\"YYYYYY\"],me),he(\"YYYY\",function(e,t){t[me]=2===e.length?h.parseTwoDigitYear(e):k(e)}),he(\"YY\",function(e,t){t[me]=h.parseTwoDigitYear(e)}),he(\"Y\",function(e,t){t[me]=parseInt(e,10)}),h.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Te,Se=Pe(\"FullYear\",!0);function Pe(t,o){return function(e){return null!=e?(Ye(this,t,e),h.updateOffset(this,o),this):Ee(this,t)}}function Ee(e,t){return e.isValid()?e._d[\"get\"+(e._isUTC?\"UTC\":\"\")+t]():NaN}function Ye(e,t,o){e.isValid()&&!isNaN(o)&&(\"FullYear\"===t&&Me(e.year())&&1===e.month()&&29===e.date()?e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o,e.month(),De(o,e.month())):e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+t](o))}function De(e,t){if(isNaN(e)||isNaN(t))return NaN;var o,a=(t%(o=12)+o)%o;return e+=(t-a)/12,1==a?Me(e)?29:28:31-a%7%2}Te=Array.prototype.indexOf?Array.prototype.indexOf:function(e){for(var t=0;t<this.length;++t)if(this[t]===e)return t;return-1},B(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),B(\"MMM\",0,0,function(e){return this.localeData().monthsShort(this,e)}),B(\"MMMM\",0,0,function(e){return this.localeData().months(this,e)}),O(\"month\",\"M\"),x(\"month\",8),le(\"M\",Z),le(\"MM\",Z,j),le(\"MMM\",function(e,t){return t.monthsShortRegex(e)}),le(\"MMMM\",function(e,t){return t.monthsRegex(e)}),he([\"M\",\"MM\"],function(e,t){t[_e]=k(e)-1}),he([\"MMM\",\"MMMM\"],function(e,t,o,a){var i=o._locale.monthsParse(e,a,o._strict);null!=i?t[_e]=i:_(o).invalidMonth=e});var Ne=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,Oe=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");var Ce=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");function Le(e,t){var o;if(!e.isValid())return e;if(\"string\"==typeof t)if(/^\\d+$/.test(t))t=k(t);else if(!c(t=e.localeData().monthsParse(t)))return e;return o=Math.min(e.date(),De(e.year(),t)),e._d[\"set\"+(e._isUTC?\"UTC\":\"\")+\"Month\"](t,o),e}function ze(e){return null!=e?(Le(this,e),h.updateOffset(this,!0),this):Ee(this,\"Month\")}var xe=ne;var Re=ne;function Fe(){function e(e,t){return t.length-e.length}for(var t,o=[],a=[],i=[],r=0;r<12;r++)t=m([2e3,r]),o.push(this.monthsShort(t,\"\")),a.push(this.months(t,\"\")),i.push(this.months(t,\"\")),i.push(this.monthsShort(t,\"\"));for(o.sort(e),a.sort(e),i.sort(e),r=0;r<12;r++)o[r]=ue(o[r]),a[r]=ue(a[r]);for(r=0;r<24;r++)i[r]=ue(i[r]);this._monthsRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\")}function Ie(e){var t,o;return e<100&&0<=e?((o=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,o)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function We(e,t,o){var a=7+t-o;return a-(7+Ie(e,0,a).getUTCDay()-t)%7-1}function Ue(e,t,o,a,i){var r,n=1+7*(t-1)+(7+o-a)%7+We(e,a,i),s=n<=0?ke(r=e-1)+n:n>ke(e)?(r=e+1,n-ke(e)):(r=e,n);return{year:r,dayOfYear:s}}function Be(e,t,o){var a,i,r=We(e.year(),t,o),n=Math.floor((e.dayOfYear()-r-1)/7)+1;return n<1?a=n+qe(i=e.year()-1,t,o):n>qe(e.year(),t,o)?(a=n-qe(e.year(),t,o),i=e.year()+1):(i=e.year(),a=n),{week:a,year:i}}function qe(e,t,o){var a=We(e,t,o),i=We(e+1,t,o);return(ke(e)-a+i)/7}B(\"w\",[\"ww\",2],\"wo\",\"week\"),B(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),O(\"week\",\"w\"),O(\"isoWeek\",\"W\"),x(\"week\",5),x(\"isoWeek\",5),le(\"w\",Z),le(\"ww\",Z,j),le(\"W\",Z),le(\"WW\",Z,j),pe([\"w\",\"ww\",\"W\",\"WW\"],function(e,t,o,a){t[a.substr(0,1)]=k(e)});function Ge(e,t){return e.slice(t,7).concat(e.slice(0,t))}B(\"d\",0,\"do\",\"day\"),B(\"dd\",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),B(\"ddd\",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),B(\"dddd\",0,0,function(e){return this.localeData().weekdays(this,e)}),B(\"e\",0,0,\"weekday\"),B(\"E\",0,0,\"isoWeekday\"),O(\"day\",\"d\"),O(\"weekday\",\"e\"),O(\"isoWeekday\",\"E\"),x(\"day\",11),x(\"weekday\",11),x(\"isoWeekday\",11),le(\"d\",Z),le(\"e\",Z),le(\"E\",Z),le(\"dd\",function(e,t){return t.weekdaysMinRegex(e)}),le(\"ddd\",function(e,t){return t.weekdaysShortRegex(e)}),le(\"dddd\",function(e,t){return t.weekdaysRegex(e)}),pe([\"dd\",\"ddd\",\"dddd\"],function(e,t,o,a){var i=o._locale.weekdaysParse(e,a,o._strict);null!=i?t.d=i:_(o).invalidWeekday=e}),pe([\"d\",\"e\",\"E\"],function(e,t,o,a){t[a]=k(e)});var He=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\");var je=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\");var Ve=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\");var Ke=ne;var Xe=ne;var Ze=ne;function Je(){function e(e,t){return t.length-e.length}for(var t,o,a,i,r=[],n=[],s=[],l=[],c=0;c<7;c++)t=m([2e3,1]).day(c),o=this.weekdaysMin(t,\"\"),a=this.weekdaysShort(t,\"\"),i=this.weekdays(t,\"\"),r.push(o),n.push(a),s.push(i),l.push(o),l.push(a),l.push(i);for(r.sort(e),n.sort(e),s.sort(e),l.sort(e),c=0;c<7;c++)n[c]=ue(n[c]),s[c]=ue(s[c]),l[c]=ue(l[c]);this._weekdaysRegex=new RegExp(\"^(\"+l.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+s.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+n.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+r.join(\"|\")+\")\",\"i\")}function Qe(){return this.hours()%12||12}function $e(e,t){B(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}B(\"H\",[\"HH\",2],0,\"hour\"),B(\"h\",[\"hh\",2],0,Qe),B(\"k\",[\"kk\",2],0,function(){return this.hours()||24}),B(\"hmm\",0,0,function(){return\"\"+Qe.apply(this)+R(this.minutes(),2)}),B(\"hmmss\",0,0,function(){return\"\"+Qe.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),B(\"Hmm\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)}),B(\"Hmmss\",0,0,function(){return\"\"+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),$e(\"a\",!0),$e(\"A\",!1),O(\"hour\",\"h\"),x(\"hour\",13),le(\"a\",et),le(\"A\",et),le(\"H\",Z),le(\"h\",Z),le(\"k\",Z),le(\"HH\",Z,j),le(\"hh\",Z,j),le(\"kk\",Z,j),le(\"hmm\",J),le(\"hmmss\",Q),le(\"Hmm\",J),le(\"Hmmss\",Q),he([\"H\",\"HH\"],ge),he([\"k\",\"kk\"],function(e,t,o){var a=k(e);t[ge]=24===a?0:a}),he([\"a\",\"A\"],function(e,t,o){o._isPm=o._locale.isPM(e),o._meridiem=e}),he([\"h\",\"hh\"],function(e,t,o){t[ge]=k(e),_(o).bigHour=!0}),he(\"hmm\",function(e,t,o){var a=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a)),_(o).bigHour=!0}),he(\"hmmss\",function(e,t,o){var a=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a,2)),t[we]=k(e.substr(i)),_(o).bigHour=!0}),he(\"Hmm\",function(e,t,o){var a=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a))}),he(\"Hmmss\",function(e,t,o){var a=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,a)),t[ye]=k(e.substr(a,2)),t[we]=k(e.substr(i))});var tt,ot=Pe(\"Hours\",!0),at={calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},longDateFormat:{LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},invalidDate:\"Invalid date\",ordinal:\"%d\",dayOfMonthOrdinalParse:/\\d{1,2}/,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},months:Oe,monthsShort:Ce,week:{dow:0,doy:6},weekdays:He,weekdaysMin:Ve,weekdaysShort:je,meridiemParse:/[ap]\\.?m?\\.?/i},it={},rt={};function nt(e){return e?e.toLowerCase().replace(\"_\",\"-\"):e}function st(e){var t=null;if(!it[e]&&\"undefined\"!=typeof module&&module&&module.exports)try{t=tt._abbr;require(\"./locale/\"+e),lt(t)}catch(e){}return it[e]}function lt(e,t){var o;return e&&((o=r(t)?ut(e):ct(e,t))?tt=o:\"undefined\"!=typeof console&&console.warn&&console.warn(\"Locale \"+e+\" not found. Did you forget to load it?\")),tt._abbr}function ct(e,t){if(null===t)return delete it[e],null;var o,a=at;if(t.abbr=e,null!=it[e])P(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),a=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])a=it[t.parentLocale]._config;else{if(null==(o=st(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;a=o._config}return it[e]=new D(Y(a,t)),rt[e]&&rt[e].forEach(function(e){ct(e.name,e.config)}),lt(e),it[e]}function ut(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!s(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,o,a,i,r=0;r<e.length;){for(t=(i=nt(e[r]).split(\"-\")).length,o=(o=nt(e[r+1]))?o.split(\"-\"):null;0<t;){if(a=st(i.slice(0,t).join(\"-\")))return a;if(o&&o.length>=t&&M(i,o,!0)>=t-1)break;t--}r++}return tt}(e)}function dt(e){var t,o=e._a;return o&&-2===_(e).overflow&&(t=o[_e]<0||11<o[_e]?_e:o[fe]<1||o[fe]>De(o[me],o[_e])?fe:o[ge]<0||24<o[ge]||24===o[ge]&&(0!==o[ye]||0!==o[we]||0!==o[be])?ge:o[ye]<0||59<o[ye]?ye:o[we]<0||59<o[we]?we:o[be]<0||999<o[be]?be:-1,_(e)._overflowDayOfYear&&(t<me||fe<t)&&(t=fe),_(e)._overflowWeeks&&-1===t&&(t=ve),_(e)._overflowWeekday&&-1===t&&(t=Ae),_(e).overflow=t),e}function ht(e,t,o){return null!=e?e:null!=t?t:o}function pt(e){var t,o,a,i,r,n,s,l=[];if(!e._d){for(n=e,s=new Date(h.now()),a=n._useUTC?[s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()]:[s.getFullYear(),s.getMonth(),s.getDate()],e._w&&null==e._a[fe]&&null==e._a[_e]&&function(e){var t,o,a,i,r,n,s,l;{var c;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,n=4,o=ht(t.GG,e._a[me],Be(Et(),1,4).year),a=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(l=!0)):(r=e._locale._week.dow,n=e._locale._week.doy,c=Be(Et(),r,n),o=ht(t.gg,e._a[me],c.year),a=ht(t.w,c.week),null!=t.d?((i=t.d)<0||6<i)&&(l=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(l=!0)):i=r)}a<1||a>qe(o,r,n)?_(e)._overflowWeeks=!0:null!=l?_(e)._overflowWeekday=!0:(s=Ue(o,a,i,r,n),e._a[me]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],a[me]),(e._dayOfYear>ke(r)||0===e._dayOfYear)&&(_(e)._overflowDayOfYear=!0),o=Ie(r,0,e._dayOfYear),e._a[_e]=o.getUTCMonth(),e._a[fe]=o.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=l[t]=a[t];for(;t<7;t++)e._a[t]=l[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[ye]&&0===e._a[we]&&0===e._a[be]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ie:function(e,t,o,a,i,r,n){var s;return e<100&&0<=e?(s=new Date(e+400,t,o,a,i,r,n),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,o,a,i,r,n),s}).apply(null,l),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(_(e).weekdayMismatch=!0)}}var mt=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,_t=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,ft=/Z|[+-]\\d\\d(?::?\\d\\d)?/,gt=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],yt=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],wt=/^\\/?Date\\((\\-?\\d+)/i;function bt(e){var t,o,a,i,r,n,s=e._i,l=mt.exec(s)||_t.exec(s);if(l){for(_(e).iso=!0,t=0,o=gt.length;t<o;t++)if(gt[t][1].exec(l[1])){i=gt[t][0],a=!1!==gt[t][2];break}if(null==i)return void(e._isValid=!1);if(l[3]){for(t=0,o=yt.length;t<o;t++)if(yt[t][1].exec(l[3])){r=(l[2]||\" \")+yt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!a&&null!=r)return void(e._isValid=!1);if(l[4]){if(!ft.exec(l[4]))return void(e._isValid=!1);n=\"Z\"}e._f=i+(r||\"\")+(n||\"\"),Tt(e)}else e._isValid=!1}var vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;function At(e,t,o,a,i,r){var n=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Ce.indexOf(t),parseInt(o,10),parseInt(a,10),parseInt(i,10)];return r&&n.push(parseInt(r,10)),n}var kt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,o,a,i=vt.exec(e._i.replace(/\\([^)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\"));if(i){var r=At(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],o=r,a=e,t&&je.indexOf(t)!==new Date(o[0],o[1],o[2]).getDay()&&(_(a).weekdayMismatch=!0,!void(a._isValid=!1)))return;e._a=r,e._tzm=function(e,t,o){if(e)return kt[e];if(t)return 0;var a=parseInt(o,10),i=a%100;return 60*((a-i)/100)+i}(i[8],i[9],i[10]),e._d=Ie.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),_(e).rfc2822=!0}else e._isValid=!1}function Tt(e){if(e._f!==h.ISO_8601)if(e._f!==h.RFC_2822){e._a=[],_(e).empty=!0;for(var t,o,a,i,r,n,s=\"\"+e._i,l=s.length,c=0,u=G(e._f,e._locale).match(F)||[],d=0;d<u.length;d++)o=u[d],(t=(s.match(ce(o,e))||[])[0])&&(0<(a=s.substr(0,s.indexOf(t))).length&&_(e).unusedInput.push(a),s=s.slice(s.indexOf(t)+t.length),c+=t.length),U[o]?(t?_(e).empty=!1:_(e).unusedTokens.push(o),i=o,n=e,null!=(r=t)&&p(de,i)&&de[i](r,n._a,n,i)):e._strict&&!t&&_(e).unusedTokens.push(o);_(e).charsLeftOver=l-c,0<s.length&&_(e).unusedInput.push(s),e._a[ge]<=12&&!0===_(e).bigHour&&0<e._a[ge]&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[ge]=function(e,t,o){var a;if(null==o)return t;return null!=e.meridiemHour?e.meridiemHour(t,o):(null!=e.isPM&&((a=e.isPM(o))&&t<12&&(t+=12),a||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),pt(e),dt(e)}else Mt(e);else bt(e)}function St(e){var t,o,a=e._i,i=e._f;return e._locale=e._locale||ut(e._l),null===a||void 0===i&&\"\"===a?g({nullInput:!0}):(\"string\"==typeof a&&(e._i=a=e._locale.preparse(a)),v(a)?new b(dt(a)):(n(a)?e._d=a:s(i)?function(e){var t,o,a,i,r;if(0===e._f.length)return _(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Tt(t),f(t)&&(r+=_(t).charsLeftOver,r+=10*_(t).unusedTokens.length,_(t).score=r,(null==a||r<a)&&(a=r,o=t));d(e,o||t)}(e):i?Tt(e):r(o=(t=e)._i)?t._d=new Date(h.now()):n(o)?t._d=new Date(o.valueOf()):\"string\"==typeof o?function(e){var t=wt.exec(e._i);null===t?(bt(e),!1===e._isValid&&(delete e._isValid,Mt(e),!1===e._isValid&&(delete e._isValid,h.createFromInputFallback(e)))):e._d=new Date(+t[1])}(t):s(o)?(t._a=u(o.slice(0),function(e){return parseInt(e,10)}),pt(t)):l(o)?function(e){var t;e._d||(t=L(e._i),e._a=u([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),pt(e))}(t):c(o)?t._d=new Date(o):h.createFromInputFallback(t),f(e)||(e._d=null),e))}function Pt(e,t,o,a,i){var r,n={};return!0!==o&&!1!==o||(a=o,o=void 0),(l(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return;return 1}(e)||s(e)&&0===e.length)&&(e=void 0),n._isAMomentObject=!0,n._useUTC=n._isUTC=i,n._l=o,n._i=e,n._f=t,n._strict=a,(r=new b(dt(St(n))))._nextDay&&(r.add(1,\"d\"),r._nextDay=void 0),r}function Et(e,t,o,a){return Pt(e,t,o,a,!1)}h.createFromInputFallback=o(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(e){e._d=new Date(e._i+(e._useUTC?\" UTC\":\"\"))}),h.ISO_8601=function(){},h.RFC_2822=function(){};var Yt=o(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Et.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:g()}),Dt=o(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var e=Et.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:g()});function Nt(e,t){var o,a;if(1===t.length&&s(t[0])&&(t=t[0]),!t.length)return Et();for(o=t[0],a=1;a<t.length;++a)t[a].isValid()&&!t[a][e](o)||(o=t[a]);return o}var Ot=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function Ct(e){var t=L(e),o=t.year||0,a=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,n=t.day||0,s=t.hour||0,l=t.minute||0,c=t.second||0,u=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Te.call(Ot,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var o=!1,a=0;a<Ot.length;++a)if(e[Ot[a]]){if(o)return!1;parseFloat(e[Ot[a]])!==k(e[Ot[a]])&&(o=!0)}return!0}(t),this._milliseconds=+u+1e3*c+6e4*l+1e3*s*60*60,this._days=+n+7*r,this._months=+i+3*a+12*o,this._data={},this._locale=ut(),this._bubble()}function Lt(e){return e instanceof Ct}function zt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function xt(e,o){B(e,0,0,function(){var e=this.utcOffset(),t=\"+\";return e<0&&(e=-e,t=\"-\"),t+R(~~(e/60),2)+o+R(~~e%60,2)})}xt(\"Z\",\":\"),xt(\"ZZ\",\"\"),le(\"Z\",re),le(\"ZZ\",re),he([\"Z\",\"ZZ\"],function(e,t,o){o._useUTC=!0,o._tzm=Ft(re,e)});var Rt=/([\\+\\-]|\\d\\d)/gi;function Ft(e,t){var o=(t||\"\").match(e);if(null===o)return null;var a=((o[o.length-1]||[])+\"\").match(Rt)||[\"-\",0,0],i=60*a[1]+k(a[2]);return 0===i?0:\"+\"===a[0]?i:-i}function It(e,t){var o,a;return t._isUTC?(o=t.clone(),a=(v(e)||n(e)?e.valueOf():Et(e).valueOf())-o.valueOf(),o._d.setTime(o._d.valueOf()+a),h.updateOffset(o,!1),o):Et(e).local()}function Wt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ut(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}h.updateOffset=function(){};var Bt=/^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,qt=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Gt(e,t){var o,a,i,r=e,n=null;return Lt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(r={},t?r[t]=e:r.milliseconds=e):(n=Bt.exec(e))?(o=\"-\"===n[1]?-1:1,r={y:0,d:k(n[fe])*o,h:k(n[ge])*o,m:k(n[ye])*o,s:k(n[we])*o,ms:k(zt(1e3*n[be]))*o}):(n=qt.exec(e))?(o=\"-\"===n[1]?-1:1,r={y:Ht(n[2],o),M:Ht(n[3],o),w:Ht(n[4],o),d:Ht(n[5],o),h:Ht(n[6],o),m:Ht(n[7],o),s:Ht(n[8],o)}):null==r?r={}:\"object\"==typeof r&&(\"from\"in r||\"to\"in r)&&(i=function(e,t){var o;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=It(t,e),e.isBefore(t)?o=jt(e,t):((o=jt(t,e)).milliseconds=-o.milliseconds,o.months=-o.months);return o}(Et(r.from),Et(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),a=new Ct(r),Lt(e)&&p(e,\"_locale\")&&(a._locale=e._locale),a}function Ht(e,t){var o=e&&parseFloat(e.replace(\",\",\".\"));return(isNaN(o)?0:o)*t}function jt(e,t){var o={};return o.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(o.months,\"M\").isAfter(t)&&--o.months,o.milliseconds=t-e.clone().add(o.months,\"M\"),o}function Vt(a,i){return function(e,t){var o;return null===t||isNaN(+t)||(P(i,\"moment().\"+i+\"(period, number) is deprecated. Please use moment().\"+i+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),o=e,e=t,t=o),Kt(this,Gt(e=\"string\"==typeof e?+e:e,t),a),this}}function Kt(e,t,o,a){var i=t._milliseconds,r=zt(t._days),n=zt(t._months);e.isValid()&&(a=null==a||a,n&&Le(e,Ee(e,\"Month\")+n*o),r&&Ye(e,\"Date\",Ee(e,\"Date\")+r*o),i&&e._d.setTime(e._d.valueOf()+i*o),a&&h.updateOffset(e,r||n))}Gt.fn=Ct.prototype,Gt.invalid=function(){return Gt(NaN)};var Xt=Vt(1,\"add\"),Zt=Vt(-1,\"subtract\");function Jt(e,t){var o=12*(t.year()-e.year())+(t.month()-e.month()),a=e.clone().add(o,\"months\"),i=t-a<0?(t-a)/(a-e.clone().add(o-1,\"months\")):(t-a)/(e.clone().add(1+o,\"months\")-a);return-(o+i)||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ut(e))&&(this._locale=t),this)}h.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",h.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var $t=o(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(e){return void 0===e?this.localeData():this.locale(e)});function eo(){return this._locale}var to=126227808e5;function oo(e,t){return(e%t+t)%t}function ao(e,t,o){return e<100&&0<=e?new Date(e+400,t,o)-to:new Date(e,t,o).valueOf()}function io(e,t,o){return e<100&&0<=e?Date.UTC(e+400,t,o)-to:Date.UTC(e,t,o)}function ro(e,t){B(0,[e,e.length],0,t)}function no(e,t,o,a,i){var r;return null==e?Be(this,a,i).year:((r=qe(e,a,i))<t&&(t=r),function(e,t,o,a,i){var r=Ue(e,t,o,a,i),n=Ie(r.year,0,r.dayOfYear);return this.year(n.getUTCFullYear()),this.month(n.getUTCMonth()),this.date(n.getUTCDate()),this}.call(this,e,t,o,a,i))}B(0,[\"gg\",2],0,function(){return this.weekYear()%100}),B(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),ro(\"gggg\",\"weekYear\"),ro(\"ggggg\",\"weekYear\"),ro(\"GGGG\",\"isoWeekYear\"),ro(\"GGGGG\",\"isoWeekYear\"),O(\"weekYear\",\"gg\"),O(\"isoWeekYear\",\"GG\"),x(\"weekYear\",1),x(\"isoWeekYear\",1),le(\"G\",ae),le(\"g\",ae),le(\"GG\",Z,j),le(\"gg\",Z,j),le(\"GGGG\",ee,K),le(\"gggg\",ee,K),le(\"GGGGG\",te,X),le(\"ggggg\",te,X),pe([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(e,t,o,a){t[a.substr(0,2)]=k(e)}),pe([\"gg\",\"GG\"],function(e,t,o,a){t[a]=h.parseTwoDigitYear(e)}),B(\"Q\",0,\"Qo\",\"quarter\"),O(\"quarter\",\"Q\"),x(\"quarter\",7),le(\"Q\",H),he(\"Q\",function(e,t){t[_e]=3*(k(e)-1)}),B(\"D\",[\"DD\",2],\"Do\",\"date\"),O(\"date\",\"D\"),x(\"date\",9),le(\"D\",Z),le(\"DD\",Z,j),le(\"Do\",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),he([\"D\",\"DD\"],fe),he(\"Do\",function(e,t){t[fe]=k(e.match(Z)[0])});var so=Pe(\"Date\",!0);B(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),O(\"dayOfYear\",\"DDD\"),x(\"dayOfYear\",4),le(\"DDD\",$),le(\"DDDD\",V),he([\"DDD\",\"DDDD\"],function(e,t,o){o._dayOfYear=k(e)}),B(\"m\",[\"mm\",2],0,\"minute\"),O(\"minute\",\"m\"),x(\"minute\",14),le(\"m\",Z),le(\"mm\",Z,j),he([\"m\",\"mm\"],ye);var lo=Pe(\"Minutes\",!1);B(\"s\",[\"ss\",2],0,\"second\"),O(\"second\",\"s\"),x(\"second\",15),le(\"s\",Z),le(\"ss\",Z,j),he([\"s\",\"ss\"],we);var co,uo=Pe(\"Seconds\",!1);for(B(\"S\",0,0,function(){return~~(this.millisecond()/100)}),B(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),B(0,[\"SSS\",3],0,\"millisecond\"),B(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),B(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),B(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),B(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),B(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),B(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),O(\"millisecond\",\"ms\"),x(\"millisecond\",16),le(\"S\",$,H),le(\"SS\",$,j),le(\"SSS\",$,V),co=\"SSSS\";co.length<=9;co+=\"S\")le(co,oe);function ho(e,t){t[be]=k(1e3*(\"0.\"+e))}for(co=\"S\";co.length<=9;co+=\"S\")he(co,ho);var po=Pe(\"Milliseconds\",!1);B(\"z\",0,0,\"zoneAbbr\"),B(\"zz\",0,0,\"zoneName\");var mo=b.prototype;function _o(e){return e}mo.add=Xt,mo.calendar=function(e,t){var o=e||Et(),a=It(o,this).startOf(\"day\"),i=h.calendarFormat(this,a)||\"sameElse\",r=t&&(E(t[i])?t[i].call(this,o):t[i]);return this.format(r||this.localeData().calendar(i,this,Et(o)))},mo.clone=function(){return new b(this)},mo.diff=function(e,t,o){var a,i,r;if(!this.isValid())return NaN;if(!(a=It(e,this)).isValid())return NaN;switch(i=6e4*(a.utcOffset()-this.utcOffset()),t=C(t)){case\"year\":r=Jt(this,a)/12;break;case\"month\":r=Jt(this,a);break;case\"quarter\":r=Jt(this,a)/3;break;case\"second\":r=(this-a)/1e3;break;case\"minute\":r=(this-a)/6e4;break;case\"hour\":r=(this-a)/36e5;break;case\"day\":r=(this-a-i)/864e5;break;case\"week\":r=(this-a-i)/6048e5;break;default:r=this-a}return o?r:A(r)},mo.endOf=function(e){var t;if(void 0===(e=C(e))||\"millisecond\"===e||!this.isValid())return this;var o=this._isUTC?io:ao;switch(e){case\"year\":t=o(this.year()+1,0,1)-1;break;case\"quarter\":t=o(this.year(),this.month()-this.month()%3+3,1)-1;break;case\"month\":t=o(this.year(),this.month()+1,1)-1;break;case\"week\":t=o(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case\"isoWeek\":t=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case\"day\":case\"date\":t=o(this.year(),this.month(),this.date()+1)-1;break;case\"hour\":t=this._d.valueOf(),t+=36e5-oo(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case\"minute\":t=this._d.valueOf(),t+=6e4-oo(t,6e4)-1;break;case\"second\":t=this._d.valueOf(),t+=1e3-oo(t,1e3)-1}return this._d.setTime(t),h.updateOffset(this,!0),this},mo.format=function(e){e=e||(this.isUtc()?h.defaultFormatUtc:h.defaultFormat);var t=q(this,e);return this.localeData().postformat(t)},mo.from=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Et(e).isValid())?Gt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mo.fromNow=function(e){return this.from(Et(),e)},mo.to=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Et(e).isValid())?Gt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mo.toNow=function(e){return this.to(Et(),e)},mo.get=function(e){return E(this[e=C(e)])?this[e]():this},mo.invalidAt=function(){return _(this).overflow},mo.isAfter=function(e,t){var o=v(e)?e:Et(e);return!(!this.isValid()||!o.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()>o.valueOf():o.valueOf()<this.clone().startOf(t).valueOf())},mo.isBefore=function(e,t){var o=v(e)?e:Et(e);return!(!this.isValid()||!o.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()<o.valueOf():this.clone().endOf(t).valueOf()<o.valueOf())},mo.isBetween=function(e,t,o,a){var i=v(e)?e:Et(e),r=v(t)?t:Et(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&((\"(\"===(a=a||\"()\")[0]?this.isAfter(i,o):!this.isBefore(i,o))&&(\")\"===a[1]?this.isBefore(r,o):!this.isAfter(r,o)))},mo.isSame=function(e,t){var o,a=v(e)?e:Et(e);return!(!this.isValid()||!a.isValid())&&(\"millisecond\"===(t=C(t)||\"millisecond\")?this.valueOf()===a.valueOf():(o=a.valueOf(),this.clone().startOf(t).valueOf()<=o&&o<=this.clone().endOf(t).valueOf()))},mo.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mo.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mo.isValid=function(){return f(this)},mo.lang=$t,mo.locale=Qt,mo.localeData=eo,mo.max=Dt,mo.min=Yt,mo.parsingFlags=function(){return d({},_(this))},mo.set=function(e,t){if(\"object\"==typeof e)for(var o=function(e){var t=[];for(var o in e)t.push({unit:o,priority:z[o]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=L(e)),a=0;a<o.length;a++)this[o[a].unit](e[o[a].unit]);else if(E(this[e=C(e)]))return this[e](t);return this},mo.startOf=function(e){var t;if(void 0===(e=C(e))||\"millisecond\"===e||!this.isValid())return this;var o=this._isUTC?io:ao;switch(e){case\"year\":t=o(this.year(),0,1);break;case\"quarter\":t=o(this.year(),this.month()-this.month()%3,1);break;case\"month\":t=o(this.year(),this.month(),1);break;case\"week\":t=o(this.year(),this.month(),this.date()-this.weekday());break;case\"isoWeek\":t=o(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case\"day\":case\"date\":t=o(this.year(),this.month(),this.date());break;case\"hour\":t=this._d.valueOf(),t-=oo(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case\"minute\":t=this._d.valueOf(),t-=oo(t,6e4);break;case\"second\":t=this._d.valueOf(),t-=oo(t,1e3)}return this._d.setTime(t),h.updateOffset(this,!0),this},mo.subtract=Zt,mo.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mo.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mo.toDate=function(){return new Date(this.valueOf())},mo.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,o=t?this.clone().utc():this;return o.year()<0||9999<o.year()?q(o,t?\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ\"):E(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace(\"Z\",q(o,\"Z\")):q(o,t?\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\":\"YYYY-MM-DD[T]HH:mm:ss.SSSZ\")},mo.inspect=function(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var e=\"moment\",t=\"\";this.isLocal()||(e=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",t=\"Z\");var o=\"[\"+e+'(\"]',a=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",i=t+'[\")]';return this.format(o+a+\"-MM-DD[T]HH:mm:ss.SSS\"+i)},mo.toJSON=function(){return this.isValid()?this.toISOString():null},mo.toString=function(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")},mo.unix=function(){return Math.floor(this.valueOf()/1e3)},mo.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mo.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mo.year=Se,mo.isLeapYear=function(){return Me(this.year())},mo.weekYear=function(e){return no.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mo.isoWeekYear=function(e){return no.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mo.quarter=mo.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mo.month=ze,mo.daysInMonth=function(){return De(this.year(),this.month())},mo.week=mo.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),\"d\")},mo.isoWeek=mo.isoWeeks=function(e){var t=Be(this,1,4).week;return null==e?t:this.add(7*(e-t),\"d\")},mo.weeksInYear=function(){var e=this.localeData()._week;return qe(this.year(),e.dow,e.doy)},mo.isoWeeksInYear=function(){return qe(this.year(),1,4)},mo.date=so,mo.day=mo.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,o,a=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,o=this.localeData(),e=\"string\"!=typeof t?t:isNaN(t)?\"number\"==typeof(t=o.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-a,\"d\")):a},mo.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,\"d\")},mo.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,o,a=(t=e,o=this.localeData(),\"string\"==typeof t?o.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?a:a-7)},mo.dayOfYear=function(e){var t=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"d\")},mo.hour=mo.hours=ot,mo.minute=mo.minutes=lo,mo.second=mo.seconds=uo,mo.millisecond=mo.milliseconds=po,mo.utcOffset=function(e,t,o){var a,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Wt(this);if(\"string\"==typeof e){if(null===(e=Ft(re,e)))return this}else Math.abs(e)<16&&!o&&(e*=60);return!this._isUTC&&t&&(a=Wt(this)),this._offset=e,this._isUTC=!0,null!=a&&this.add(a,\"m\"),i!==e&&(!t||this._changeInProgress?Kt(this,Gt(e-i,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,h.updateOffset(this,!0),this._changeInProgress=null)),this},mo.utc=function(e){return this.utcOffset(0,e)},mo.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Wt(this),\"m\")),this},mo.parseZone=function(){var e;return null!=this._tzm?this.utcOffset(this._tzm,!1,!0):\"string\"==typeof this._i&&(null!=(e=Ft(ie,this._i))?this.utcOffset(e):this.utcOffset(0,!0)),this},mo.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Et(e).utcOffset():0,(this.utcOffset()-e)%60==0)},mo.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mo.isLocal=function(){return!!this.isValid()&&!this._isUTC},mo.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mo.isUtc=Ut,mo.isUTC=Ut,mo.zoneAbbr=function(){return this._isUTC?\"UTC\":\"\"},mo.zoneName=function(){return this._isUTC?\"Coordinated Universal Time\":\"\"},mo.dates=o(\"dates accessor is deprecated. Use date instead.\",so),mo.months=o(\"months accessor is deprecated. Use month instead\",ze),mo.years=o(\"years accessor is deprecated. Use year instead\",Se),mo.zone=o(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",function(e,t){return null!=e?(\"string\"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),mo.isDSTShifted=o(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,t={};return w(t,this),(t=St(t))._a?(e=(t._isUTC?m:Et)(t._a),this._isDSTShifted=this.isValid()&&0<M(t._a,e.toArray())):this._isDSTShifted=!1,this._isDSTShifted});var fo=D.prototype;function go(e,t,o,a){var i=ut(),r=m().set(a,t);return i[o](r,e)}function yo(e,t,o){if(c(e)&&(t=e,e=void 0),e=e||\"\",null!=t)return go(e,t,o,\"month\");for(var a=[],i=0;i<12;i++)a[i]=go(e,i,o,\"month\");return a}function wo(e,t,o,a){t=(\"boolean\"==typeof e?c(t)&&(o=t,t=void 0):(t=e,e=!1,c(o=t)&&(o=t,t=void 0)),t||\"\");var i=ut(),r=e?i._week.dow:0;if(null!=o)return go(t,(o+r)%7,a,\"day\");for(var n=[],s=0;s<7;s++)n[s]=go(t,(s+r)%7,a,\"day\");return n}fo.calendar=function(e,t,o){var a=this._calendar[e]||this._calendar.sameElse;return E(a)?a.call(t,o):a},fo.longDateFormat=function(e){var t=this._longDateFormat[e],o=this._longDateFormat[e.toUpperCase()];return t||!o?t:(this._longDateFormat[e]=o.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},fo.invalidDate=function(){return this._invalidDate},fo.ordinal=function(e){return this._ordinal.replace(\"%d\",e)},fo.preparse=_o,fo.postformat=_o,fo.relativeTime=function(e,t,o,a){var i=this._relativeTime[o];return E(i)?i(e,t,o,a):i.replace(/%d/i,e)},fo.pastFuture=function(e,t){var o=this._relativeTime[0<e?\"future\":\"past\"];return E(o)?o(t):o.replace(/%s/i,t)},fo.set=function(e){var t,o;for(o in e)E(t=e[o])?this[o]=t:this[\"_\"+o]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)},fo.months=function(e,t){return e?s(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ne).test(t)?\"format\":\"standalone\"][e.month()]:s(this._months)?this._months:this._months.standalone},fo.monthsShort=function(e,t){return e?s(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ne.test(t)?\"format\":\"standalone\"][e.month()]:s(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},fo.monthsParse=function(e,t,o){var a,i,r;if(this._monthsParseExact)return function(e,t,o){var a,i,r,n=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)r=m([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(r,\"\").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(r,\"\").toLocaleLowerCase();return o?\"MMM\"===t?-1!==(i=Te.call(this._shortMonthsParse,n))?i:null:-1!==(i=Te.call(this._longMonthsParse,n))?i:null:\"MMM\"===t?-1!==(i=Te.call(this._shortMonthsParse,n))||-1!==(i=Te.call(this._longMonthsParse,n))?i:null:-1!==(i=Te.call(this._longMonthsParse,n))||-1!==(i=Te.call(this._shortMonthsParse,n))?i:null}.call(this,e,t,o);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(i=m([2e3,a]),o&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp(\"^\"+this.months(i,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[a]=new RegExp(\"^\"+this.monthsShort(i,\"\").replace(\".\",\"\")+\"$\",\"i\")),o||this._monthsParse[a]||(r=\"^\"+this.months(i,\"\")+\"|^\"+this.monthsShort(i,\"\"),this._monthsParse[a]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"MMMM\"===t&&this._longMonthsParse[a].test(e))return a;if(o&&\"MMM\"===t&&this._shortMonthsParse[a].test(e))return a;if(!o&&this._monthsParse[a].test(e))return a}},fo.monthsRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||Fe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(p(this,\"_monthsRegex\")||(this._monthsRegex=Re),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},fo.monthsShortRegex=function(e){return this._monthsParseExact?(p(this,\"_monthsRegex\")||Fe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(p(this,\"_monthsShortRegex\")||(this._monthsShortRegex=xe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},fo.week=function(e){return Be(e,this._week.dow,this._week.doy).week},fo.firstDayOfYear=function(){return this._week.doy},fo.firstDayOfWeek=function(){return this._week.dow},fo.weekdays=function(e,t){var o=s(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?\"format\":\"standalone\"];return!0===e?Ge(o,this._week.dow):e?o[e.day()]:o},fo.weekdaysMin=function(e){return!0===e?Ge(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},fo.weekdaysShort=function(e){return!0===e?Ge(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},fo.weekdaysParse=function(e,t,o){var a,i,r;if(this._weekdaysParseExact)return function(e,t,o){var a,i,r,n=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)r=m([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(r,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(r,\"\").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(r,\"\").toLocaleLowerCase();return o?\"dddd\"===t?-1!==(i=Te.call(this._weekdaysParse,n))?i:null:\"ddd\"===t?-1!==(i=Te.call(this._shortWeekdaysParse,n))?i:null:-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:\"dddd\"===t?-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._shortWeekdaysParse,n))||-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:\"ddd\"===t?-1!==(i=Te.call(this._shortWeekdaysParse,n))||-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._minWeekdaysParse,n))?i:null:-1!==(i=Te.call(this._minWeekdaysParse,n))||-1!==(i=Te.call(this._weekdaysParse,n))||-1!==(i=Te.call(this._shortWeekdaysParse,n))?i:null}.call(this,e,t,o);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(i=m([2e3,1]).day(a),o&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp(\"^\"+this.weekdays(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._shortWeekdaysParse[a]=new RegExp(\"^\"+this.weekdaysShort(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\"),this._minWeekdaysParse[a]=new RegExp(\"^\"+this.weekdaysMin(i,\"\").replace(\".\",\"\\\\.?\")+\"$\",\"i\")),this._weekdaysParse[a]||(r=\"^\"+this.weekdays(i,\"\")+\"|^\"+this.weekdaysShort(i,\"\")+\"|^\"+this.weekdaysMin(i,\"\"),this._weekdaysParse[a]=new RegExp(r.replace(\".\",\"\"),\"i\")),o&&\"dddd\"===t&&this._fullWeekdaysParse[a].test(e))return a;if(o&&\"ddd\"===t&&this._shortWeekdaysParse[a].test(e))return a;if(o&&\"dd\"===t&&this._minWeekdaysParse[a].test(e))return a;if(!o&&this._weekdaysParse[a].test(e))return a}},fo.weekdaysRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(p(this,\"_weekdaysRegex\")||(this._weekdaysRegex=Ke),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},fo.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(p(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=Xe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},fo.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(p(this,\"_weekdaysRegex\")||Je.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(p(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},fo.isPM=function(e){return\"p\"===(e+\"\").toLowerCase().charAt(0)},fo.meridiem=function(e,t,o){return 11<e?o?\"pm\":\"PM\":o?\"am\":\"AM\"},lt(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?\"th\":1==t?\"st\":2==t?\"nd\":3==t?\"rd\":\"th\")}}),h.lang=o(\"moment.lang is deprecated. Use moment.locale instead.\",lt),h.langData=o(\"moment.langData is deprecated. Use moment.localeData instead.\",ut);var bo=Math.abs;function vo(e,t,o,a){var i=Gt(t,o);return e._milliseconds+=a*i._milliseconds,e._days+=a*i._days,e._months+=a*i._months,e._bubble()}function Ao(e){return e<0?Math.floor(e):Math.ceil(e)}function ko(e){return 4800*e/146097}function Mo(e){return 146097*e/4800}function To(e){return function(){return this.as(e)}}var So=To(\"ms\"),Po=To(\"s\"),Eo=To(\"m\"),Yo=To(\"h\"),Do=To(\"d\"),No=To(\"w\"),Oo=To(\"M\"),Co=To(\"Q\"),Lo=To(\"y\");function zo(e){return function(){return this.isValid()?this._data[e]:NaN}}var xo=zo(\"milliseconds\"),Ro=zo(\"seconds\"),Fo=zo(\"minutes\"),Io=zo(\"hours\"),Wo=zo(\"days\"),Uo=zo(\"months\"),Bo=zo(\"years\");var qo=Math.round,Go={ss:44,s:45,m:45,h:22,d:26,M:11};function Ho(e,t,o){var a=Gt(e).abs(),i=qo(a.as(\"s\")),r=qo(a.as(\"m\")),n=qo(a.as(\"h\")),s=qo(a.as(\"d\")),l=qo(a.as(\"M\")),c=qo(a.as(\"y\")),u=(i<=Go.ss?[\"s\",i]:i<Go.s&&[\"ss\",i])||r<=1&&[\"m\"]||r<Go.m&&[\"mm\",r]||n<=1&&[\"h\"]||n<Go.h&&[\"hh\",n]||s<=1&&[\"d\"]||s<Go.d&&[\"dd\",s]||l<=1&&[\"M\"]||l<Go.M&&[\"MM\",l]||c<=1&&[\"y\"]||[\"yy\",c];return u[2]=t,u[3]=0<+e,u[4]=o,function(e,t,o,a,i){return i.relativeTime(t||1,!!o,e,a)}.apply(null,u)}var jo=Math.abs;function Vo(e){return(0<e)-(e<0)||+e}function Ko(){if(!this.isValid())return this.localeData().invalidDate();var e=jo(this._milliseconds)/1e3,t=jo(this._days),o=jo(this._months),a=A(e/60),i=A(a/60);e%=60,a%=60;var r=A(o/12),n=o%=12,s=t,l=i,c=a,u=e?e.toFixed(3).replace(/\\.?0+$/,\"\"):\"\",d=this.asSeconds();if(!d)return\"P0D\";var h=d<0?\"-\":\"\",p=Vo(this._months)!==Vo(d)?\"-\":\"\",m=Vo(this._days)!==Vo(d)?\"-\":\"\",_=Vo(this._milliseconds)!==Vo(d)?\"-\":\"\";return h+\"P\"+(r?p+r+\"Y\":\"\")+(n?p+n+\"M\":\"\")+(s?m+s+\"D\":\"\")+(l||c||u?\"T\":\"\")+(l?_+l+\"H\":\"\")+(c?_+c+\"M\":\"\")+(u?_+u+\"S\":\"\")}var Xo=Ct.prototype;return Xo.isValid=function(){return this._isValid},Xo.abs=function(){var e=this._data;return this._milliseconds=bo(this._milliseconds),this._days=bo(this._days),this._months=bo(this._months),e.milliseconds=bo(e.milliseconds),e.seconds=bo(e.seconds),e.minutes=bo(e.minutes),e.hours=bo(e.hours),e.months=bo(e.months),e.years=bo(e.years),this},Xo.add=function(e,t){return vo(this,e,t,1)},Xo.subtract=function(e,t){return vo(this,e,t,-1)},Xo.as=function(e){if(!this.isValid())return NaN;var t,o,a=this._milliseconds;if(\"month\"===(e=C(e))||\"quarter\"===e||\"year\"===e)switch(t=this._days+a/864e5,o=this._months+ko(t),e){case\"month\":return o;case\"quarter\":return o/3;case\"year\":return o/12}else switch(t=this._days+Math.round(Mo(this._months)),e){case\"week\":return t/7+a/6048e5;case\"day\":return t+a/864e5;case\"hour\":return 24*t+a/36e5;case\"minute\":return 1440*t+a/6e4;case\"second\":return 86400*t+a/1e3;case\"millisecond\":return Math.floor(864e5*t)+a;default:throw new Error(\"Unknown unit \"+e)}},Xo.asMilliseconds=So,Xo.asSeconds=Po,Xo.asMinutes=Eo,Xo.asHours=Yo,Xo.asDays=Do,Xo.asWeeks=No,Xo.asMonths=Oo,Xo.asQuarters=Co,Xo.asYears=Lo,Xo.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Xo._bubble=function(){var e,t,o,a,i,r=this._milliseconds,n=this._days,s=this._months,l=this._data;return 0<=r&&0<=n&&0<=s||r<=0&&n<=0&&s<=0||(r+=864e5*Ao(Mo(s)+n),s=n=0),l.milliseconds=r%1e3,e=A(r/1e3),l.seconds=e%60,t=A(e/60),l.minutes=t%60,o=A(t/60),l.hours=o%24,n+=A(o/24),s+=i=A(ko(n)),n-=Ao(Mo(i)),a=A(s/12),s%=12,l.days=n,l.months=s,l.years=a,this},Xo.clone=function(){return Gt(this)},Xo.get=function(e){return e=C(e),this.isValid()?this[e+\"s\"]():NaN},Xo.milliseconds=xo,Xo.seconds=Ro,Xo.minutes=Fo,Xo.hours=Io,Xo.days=Wo,Xo.weeks=function(){return A(this.days()/7)},Xo.months=Uo,Xo.years=Bo,Xo.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),o=Ho(this,!e,t);return e&&(o=t.pastFuture(+this,o)),t.postformat(o)},Xo.toISOString=Ko,Xo.toString=Ko,Xo.toJSON=Ko,Xo.locale=Qt,Xo.localeData=eo,Xo.toIsoString=o(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",Ko),Xo.lang=$t,B(\"X\",0,0,\"unix\"),B(\"x\",0,0,\"valueOf\"),le(\"x\",ae),le(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),he(\"X\",function(e,t,o){o._d=new Date(1e3*parseFloat(e,10))}),he(\"x\",function(e,t,o){o._d=new Date(k(e))}),h.version=\"2.24.0\",e=Et,h.fn=mo,h.min=function(){return Nt(\"isBefore\",[].slice.call(arguments,0))},h.max=function(){return Nt(\"isAfter\",[].slice.call(arguments,0))},h.now=function(){return Date.now?Date.now():+new Date},h.utc=m,h.unix=function(e){return Et(1e3*e)},h.months=function(e,t){return yo(e,t,\"months\")},h.isDate=n,h.locale=lt,h.invalid=g,h.duration=Gt,h.isMoment=v,h.weekdays=function(e,t,o){return wo(e,t,o,\"weekdays\")},h.parseZone=function(){return Et.apply(null,arguments).parseZone()},h.localeData=ut,h.isDuration=Lt,h.monthsShort=function(e,t){return yo(e,t,\"monthsShort\")},h.weekdaysMin=function(e,t,o){return wo(e,t,o,\"weekdaysMin\")},h.defineLocale=ct,h.updateLocale=function(e,t){var o,a,i;return null!=t?(a=at,null!=(i=st(e))&&(a=i._config),(o=new D(t=Y(a,t))).parentLocale=it[e],it[e]=o,lt(e)):null!=it[e]&&(null!=it[e].parentLocale?it[e]=it[e].parentLocale:null!=it[e]&&delete it[e]),it[e]},h.locales=function(){return a(it)},h.weekdaysShort=function(e,t,o){return wo(e,t,o,\"weekdaysShort\")},h.normalizeUnits=C,h.relativeTimeRounding=function(e){return void 0===e?qo:\"function\"==typeof e&&(qo=e,!0)},h.relativeTimeThreshold=function(e,t){return void 0!==Go[e]&&(void 0===t?Go[e]:(Go[e]=t,\"s\"===e&&(Go.ss=t-1),!0))},h.calendarFormat=function(e,t){var o=e.diff(t,\"days\",!0);return o<-6?\"sameElse\":o<-1?\"lastWeek\":o<0?\"lastDay\":o<1?\"sameDay\":o<2?\"nextDay\":o<7?\"nextWeek\":\"sameElse\"},h.prototype=mo,h.HTML5_FMT={DATETIME_LOCAL:\"YYYY-MM-DDTHH:mm\",DATETIME_LOCAL_SECONDS:\"YYYY-MM-DDTHH:mm:ss\",DATETIME_LOCAL_MS:\"YYYY-MM-DDTHH:mm:ss.SSS\",DATE:\"YYYY-MM-DD\",TIME:\"HH:mm\",TIME_SECONDS:\"HH:mm:ss\",TIME_MS:\"HH:mm:ss.SSS\",WEEK:\"GGGG-[W]WW\",MONTH:\"YYYY-MM\"},h}),function(e,t){\"use strict\";\"object\"==typeof module&&module.exports?module.exports=t(require(\"moment\")):\"function\"==typeof define&&define.amd?define([\"moment\"],t):t(e.moment)}(this,function(r){\"use strict\";var t,n={},s={},c={},u={};r&&\"string\"==typeof r.version||P(\"Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/\");var e=r.version.split(\".\"),o=+e[0],a=+e[1];function l(e){return 96<e?e-87:64<e?e-29:e-48}function i(e){var t=0,o=e.split(\".\"),a=o[0],i=o[1]||\"\",r=1,n=0,s=1;for(45===e.charCodeAt(0)&&(s=-(t=1));t<a.length;t++)n=60*n+l(a.charCodeAt(t));for(t=0;t<i.length;t++)r/=60,n+=l(i.charCodeAt(t))*r;return n*s}function d(e){for(var t=0;t<e.length;t++)e[t]=i(e[t])}function h(e,t){for(var o=[],a=0;a<t.length;a++)o[a]=e[t[a]];return o}function p(e){var t=e.split(\"|\"),o=t[2].split(\" \"),a=t[3].split(\"\"),i=t[4].split(\" \");return d(o),d(a),d(i),function(e,t){for(var o=0;o<t;o++)e[o]=Math.round((e[o-1]||0)+6e4*e[o]);e[t-1]=1/0}(i,a.length),{name:t[0],abbrs:h(t[1].split(\" \"),a),offsets:h(o,a),untils:i,population:0|t[5]}}function m(e){e&&this._set(p(e))}function _(e){var t=e.toTimeString(),o=t.match(/\\([a-z ]+\\)/i);\"GMT\"===(o=o&&o[0]?(o=o[0].match(/[A-Z]/g))?o.join(\"\"):void 0:(o=t.match(/[A-Z]{3,5}/g))?o[0]:void 0)&&(o=void 0),this.at=+e,this.abbr=o,this.offset=e.getTimezoneOffset()}function f(e){this.zone=e,this.offsetScore=0,this.abbrScore=0}function g(){for(var e,t,o=(new Date).getFullYear()-2,a=new _(new Date(o,0,1)),i=[a],r=1;r<48;r++)(t=new _(new Date(o,r,1))).offset!==a.offset&&(e=function(e,t){for(var o,a;a=6e4*((t.at-e.at)/12e4|0);)(o=new _(new Date(e.at+a))).offset===e.offset?e=o:t=o;return e}(a,t),i.push(e),i.push(new _(new Date(e.at+6e4)))),a=t;for(r=0;r<4;r++)i.push(new _(new Date(o+r,0,1))),i.push(new _(new Date(o+r,6,1)));return i}function y(e,t){return e.offsetScore!==t.offsetScore?e.offsetScore-t.offsetScore:e.abbrScore!==t.abbrScore?e.abbrScore-t.abbrScore:t.zone.population-e.zone.population}function w(){try{var e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e&&3<e.length){var t=c[b(e)];if(t)return t;P(\"Moment Timezone found \"+e+\" from the Intl api, but did not have that data loaded.\")}}catch(e){}for(var o,a,i=g(),r=i.length,n=function(e){for(var t,o,a=e.length,i={},r=[],n=0;n<a;n++)for(t in o=u[e[n].offset]||{})o.hasOwnProperty(t)&&(i[t]=!0);for(n in i)i.hasOwnProperty(n)&&r.push(c[n]);return r}(i),s=[],l=0;l<n.length;l++){for(o=new f(A(n[l])),a=0;a<r;a++)o.scoreOffsetAt(i[a]);s.push(o)}return s.sort(y),0<s.length?s[0].zone.name:void 0}function b(e){return(e||\"\").toLowerCase().replace(/\\//g,\"_\")}function v(e){var t,o,a,i;for(\"string\"==typeof e&&(e=[e]),t=0;t<e.length;t++)i=b(o=(a=e[t].split(\"|\"))[0]),n[i]=e[t],c[i]=o,function(e,t){var o,a;for(d(t),o=0;o<t.length;o++)a=t[o],u[a]=u[a]||{},u[a][e]=!0}(i,a[2].split(\" \"))}function A(e,t){e=b(e);var o,a=n[e];return a instanceof m?a:\"string\"==typeof a?(a=new m(a),n[e]=a):s[e]&&t!==A&&(o=A(s[e],A))?((a=n[e]=new m)._set(o),a.name=c[e],a):null}function k(e){var t,o,a,i;for(\"string\"==typeof e&&(e=[e]),t=0;t<e.length;t++)a=b((o=e[t].split(\"|\"))[0]),i=b(o[1]),s[a]=i,c[a]=o[0],s[i]=a,c[i]=o[1]}function M(e){v(e.zones),k(e.links),E.dataVersion=e.version}function T(e){return T.didShowError||(T.didShowError=!0,P(\"moment.tz.zoneExists('\"+e+\"') has been deprecated in favor of !moment.tz.zone('\"+e+\"')\")),!!A(e)}function S(e){var t=\"X\"===e._f||\"x\"===e._f;return!(!e._a||void 0!==e._tzm||t)}function P(e){\"undefined\"!=typeof console&&\"function\"==typeof console.error&&console.error(e)}function E(e){var t=Array.prototype.slice.call(arguments,0,-1),o=arguments[arguments.length-1],a=A(o),i=r.utc.apply(null,t);return a&&!r.isMoment(e)&&S(i)&&i.add(a.parse(i),\"minutes\"),i.tz(o),i}(o<2||2==o&&a<6)&&P(\"Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js \"+r.version+\". See momentjs.com\"),m.prototype={_set:function(e){this.name=e.name,this.abbrs=e.abbrs,this.untils=e.untils,this.offsets=e.offsets,this.population=e.population},_index:function(e){for(var t=+e,o=this.untils,a=0;a<o.length;a++)if(t<o[a])return a},parse:function(e){for(var t,o,a,i=+e,r=this.offsets,n=this.untils,s=n.length-1,l=0;l<s;l++)if(t=r[l],o=r[l+1],a=r[l?l-1:l],t<o&&E.moveAmbiguousForward?t=o:a<t&&E.moveInvalidForward&&(t=a),i<n[l]-6e4*t)return r[l];return r[s]},abbr:function(e){return this.abbrs[this._index(e)]},offset:function(e){return P(\"zone.offset has been deprecated in favor of zone.utcOffset\"),this.offsets[this._index(e)]},utcOffset:function(e){return this.offsets[this._index(e)]}},f.prototype.scoreOffsetAt=function(e){this.offsetScore+=Math.abs(this.zone.utcOffset(e.at)-e.offset),this.zone.abbr(e.at).replace(/[^A-Z]/g,\"\")!==e.abbr&&this.abbrScore++},E.version=\"0.5.25\",E.dataVersion=\"\",E._zones=n,E._links=s,E._names=c,E.add=v,E.link=k,E.load=M,E.zone=A,E.zoneExists=T,E.guess=function(e){return t&&!e||(t=w()),t},E.names=function(){var e,t=[];for(e in c)c.hasOwnProperty(e)&&(n[e]||n[s[e]])&&c[e]&&t.push(c[e]);return t.sort()},E.Zone=m,E.unpack=p,E.unpackBase60=i,E.needsOffset=S,E.moveInvalidForward=!0,E.moveAmbiguousForward=!1;var Y,D=r.fn;function N(e){return function(){return this._z?this._z.abbr(this):e.call(this)}}function O(e){return function(){return this._z=null,e.apply(this,arguments)}}r.tz=E,r.defaultZone=null,r.updateOffset=function(e,t){var o,a,i=r.defaultZone;void 0===e._z&&(i&&S(e)&&!e._isUTC&&(e._d=r.utc(e._a)._d,e.utc().add(i.parse(e),\"minutes\")),e._z=i),e._z&&(a=e._z.utcOffset(e),Math.abs(a)<16&&(a/=60),void 0!==e.utcOffset?(o=e._z,e.utcOffset(-a,t),e._z=o):e.zone(a,t))},D.tz=function(e,t){if(e){if(\"string\"!=typeof e)throw new Error(\"Time zone name must be a string, got \"+e+\" [\"+typeof e+\"]\");return this._z=A(e),this._z?r.updateOffset(this,t):P(\"Moment Timezone has no data for \"+e+\". See http://momentjs.com/timezone/docs/#/data-loading/.\"),this}if(this._z)return this._z.name},D.zoneName=N(D.zoneName),D.zoneAbbr=N(D.zoneAbbr),D.utc=O(D.utc),D.local=O(D.local),D.utcOffset=(Y=D.utcOffset,function(){return 0<arguments.length&&(this._z=null),Y.apply(this,arguments)}),r.tz.setDefault=function(e){return(o<2||2==o&&a<9)&&P(\"Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js \"+r.version+\".\"),r.defaultZone=e?A(e):null,r};var C=r.momentProperties;return\"[object Array]\"===Object.prototype.toString.call(C)?(C.push(\"_z\"),C.push(\"_a\")):C&&(C._z=null),M({version:\"2019a\",zones:[\"Africa/Abidjan|GMT|0|0||48e5\",\"Africa/Nairobi|EAT|-30|0||47e5\",\"Africa/Algiers|CET|-10|0||26e5\",\"Africa/Lagos|WAT|-10|0||17e6\",\"Africa/Maputo|CAT|-20|0||26e5\",\"Africa/Cairo|EET EEST|-20 -30|01010|1M2m0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|+00 +01|0 -10|01010101010101010101010101010101|1LHC0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00|32e5\",\"Europe/Paris|CET CEST|-10 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|11e6\",\"Africa/Johannesburg|SAST|-20|0||84e5\",\"Africa/Khartoum|EAT CAT|-30 -20|01|1Usl0|51e5\",\"Africa/Sao_Tome|GMT WAT|0 -10|010|1UQN0 2q00\",\"Africa/Tripoli|EET|-20|0||11e5\",\"Africa/Windhoek|CAT WAT|-20 -10|010101010|1LKo0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|HST HDT|a0 90|01010101010101010101010|1Lzo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AKST AKDT|90 80|01010101010101010101010|1Lzn0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Santo_Domingo|AST|40|0||29e5\",\"America/Fortaleza|-03|30|0||34e5\",\"America/Asuncion|-03 -04|30 40|01010101010101010101010|1LEP0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0|28e5\",\"America/Panama|EST|50|0||15e5\",\"America/Mexico_City|CST CDT|60 50|01010101010101010101010|1LKw0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0|20e6\",\"America/Managua|CST|60|0||22e5\",\"America/La_Paz|-04|40|0||19e5\",\"America/Lima|-05|50|0||11e6\",\"America/Denver|MST MDT|70 60|01010101010101010101010|1Lzl0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Campo_Grande|-03 -04|30 40|01010101010101010101010|1LqP0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0|77e4\",\"America/Cancun|CST CDT EST|60 50 50|0102|1LKw0 1lb0 Dd0|63e4\",\"America/Caracas|-0430 -04|4u 40|01|1QMT0|29e5\",\"America/Chicago|CST CDT|60 50|01010101010101010101010|1Lzk0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|MST MDT|70 60|01010101010101010101010|1LKx0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0|81e4\",\"America/Phoenix|MST|70|0||42e5\",\"America/Los_Angeles|PST PDT|80 70|01010101010101010101010|1Lzm0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/New_York|EST EDT|50 40|01010101010101010101010|1Lzj0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Fort_Nelson|PST PDT MST|80 70 70|0102|1Lzm0 1zb0 Op0|39e2\",\"America/Halifax|AST ADT|40 30|01010101010101010101010|1Lzi0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Godthab|-03 -02|30 20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|17e3\",\"America/Grand_Turk|EST EDT AST|50 40 40|0101210101010101010|1Lzj0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Havana|CST CDT|50 40|01010101010101010101010|1Lzh0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Metlakatla|PST AKST AKDT|80 90 80|012121201212121212121|1PAa0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Miquelon|-03 -02|30 20|01010101010101010101010|1Lzh0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Montevideo|-02 -03|20 30|0101|1Lzg0 1o10 11z0|17e5\",\"America/Noronha|-02|20|0||30e2\",\"America/Port-au-Prince|EST EDT|50 40|010101010101010101010|1Lzj0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"Antarctica/Palmer|-03 -04|30 40|01010|1LSP0 Rd0 46n0 Ap0|40\",\"America/Santiago|-03 -04|30 40|010101010101010101010|1LSP0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0|62e5\",\"America/Sao_Paulo|-02 -03|20 30|01010101010101010101010|1LqO0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0|20e6\",\"Atlantic/Azores|-01 +00|10 0|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|25e4\",\"America/St_Johns|NST NDT|3u 2u|01010101010101010101010|1Lzhu 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"Antarctica/Casey|+08 +11|-80 -b0|010|1RWg0 3m10|10\",\"Asia/Bangkok|+07|-70|0||15e6\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Pacific/Guadalcanal|+11|-b0|0||11e4\",\"Asia/Tashkent|+05|-50|0||23e5\",\"Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|14e5\",\"Asia/Baghdad|+03|-30|0||66e5\",\"Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|40\",\"Asia/Dhaka|+06|-60|0||16e6\",\"Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1LGK0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|25e5\",\"Asia/Kamchatka|+12|-c0|0||18e4\",\"Asia/Baku|+04 +05|-40 -50|01010|1LHA0 1o00 11A0 1o00|27e5\",\"Asia/Barnaul|+07 +06|-70 -60|010|1N7v0 3rd0\",\"Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|1LHy0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|22e5\",\"Asia/Kuala_Lumpur|+08|-80|0||71e5\",\"Asia/Kolkata|IST|-5u|0||15e6\",\"Asia/Chita|+10 +08 +09|-a0 -80 -90|012|1N7s0 3re0|33e4\",\"Asia/Ulaanbaatar|+08 +09|-80 -90|01010|1O8G0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Shanghai|CST|-80|0||23e6\",\"Asia/Colombo|+0530|-5u|0||22e5\",\"Asia/Damascus|EET EEST|-20 -30|01010101010101010101010|1LGK0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|26e5\",\"Asia/Dili|+09|-90|0||19e4\",\"Asia/Dubai|+04|-40|0||39e5\",\"Asia/Famagusta|EET EEST +03|-20 -30 -30|0101012010101010101010|1LHB0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00\",\"Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1LGK0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0|18e5\",\"Asia/Hong_Kong|HKT|-80|0||73e5\",\"Asia/Hovd|+07 +08|-70 -80|01010|1O8H0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|+09 +08|-90 -80|01|1N7t0|60e4\",\"Europe/Istanbul|EET EEST +03|-20 -30 -30|0101012|1LI10 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|WIB|-70|0||31e6\",\"Asia/Jayapura|WIT|-90|0||26e4\",\"Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|1LGM0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0|81e4\",\"Asia/Kabul|+0430|-4u|0||46e5\",\"Asia/Karachi|PKT|-50|0||24e6\",\"Asia/Kathmandu|+0545|-5J|0||12e5\",\"Asia/Yakutsk|+10 +09|-a0 -90|01|1N7s0|28e4\",\"Asia/Krasnoyarsk|+08 +07|-80 -70|01|1N7u0|10e5\",\"Asia/Magadan|+12 +10 +11|-c0 -a0 -b0|012|1N7q0 3Cq0|95e3\",\"Asia/Makassar|WITA|-80|0||15e5\",\"Asia/Manila|PST|-80|0||24e6\",\"Europe/Athens|EET EEST|-20 -30|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|35e5\",\"Asia/Novosibirsk|+07 +06|-70 -60|010|1N7v0 4eN0|15e5\",\"Asia/Omsk|+07 +06|-70 -60|01|1N7v0|12e5\",\"Asia/Pyongyang|KST KST|-90 -8u|010|1P4D0 6BA0|29e5\",\"Asia/Qyzylorda|+06 +05|-60 -50|01|1Xei0|73e4\",\"Asia/Rangoon|+0630|-6u|0||48e5\",\"Asia/Sakhalin|+11 +10|-b0 -a0|010|1N7r0 3rd0|58e4\",\"Asia/Seoul|KST|-90|0||23e6\",\"Asia/Srednekolymsk|+12 +11|-c0 -b0|01|1N7q0|35e2\",\"Asia/Tehran|+0330 +0430|-3u -4u|01010101010101010101010|1LEku 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Tokyo|JST|-90|0||38e6\",\"Asia/Tomsk|+07 +06|-70 -60|010|1N7v0 3Qp0|10e5\",\"Asia/Vladivostok|+11 +10|-b0 -a0|01|1N7r0|60e4\",\"Asia/Yekaterinburg|+06 +05|-60 -50|01|1N7w0|14e5\",\"Europe/Lisbon|WET WEST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|27e5\",\"Atlantic/Cape_Verde|-01|10|0||50e4\",\"Australia/Sydney|AEDT AEST|-b0 -a0|01010101010101010101010|1LKg0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0|40e5\",\"Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|1LKgu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0|11e5\",\"Australia/Brisbane|AEST|-a0|0||20e5\",\"Australia/Darwin|ACST|-9u|0||12e4\",\"Australia/Eucla|+0845|-8J|0||368\",\"Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|1LKf0 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu|347\",\"Australia/Perth|AWST|-80|0||18e5\",\"Pacific/Easter|-05 -06|50 60|010101010101010101010|1LSP0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0|30e2\",\"Europe/Dublin|GMT IST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|12e5\",\"Etc/GMT-1|+01|-10|0|\",\"Pacific/Fakaofo|+13|-d0|0||483\",\"Pacific/Kiritimati|+14|-e0|0||51e2\",\"Etc/GMT-2|+02|-20|0|\",\"Pacific/Tahiti|-10|a0|0||18e4\",\"Pacific/Niue|-11|b0|0||12e2\",\"Etc/GMT+12|-12|c0|0|\",\"Pacific/Galapagos|-06|60|0||25e3\",\"Etc/GMT+7|-07|70|0|\",\"Pacific/Pitcairn|-08|80|0||56\",\"Pacific/Gambier|-09|90|0||125\",\"Etc/UTC|UTC|0|0|\",\"Europe/Ulyanovsk|+04 +03|-40 -30|010|1N7y0 3rd0|13e5\",\"Europe/London|GMT BST|0 -10|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|10e6\",\"Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|1LHA0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00|67e4\",\"Europe/Kaliningrad|+03 EET|-30 -20|01|1N7z0|44e4\",\"Europe/Kirov|+04 +03|-40 -30|01|1N7y0|48e4\",\"Europe/Moscow|MSK MSK|-40 -30|01|1N7y0|16e6\",\"Europe/Saratov|+04 +03|-40 -30|010|1N7y0 5810\",\"Europe/Simferopol|EET MSK MSK|-20 -40 -30|012|1LHA0 1nW0|33e4\",\"Europe/Volgograd|+04 +03|-40 -30|010|1N7y0 9Jd0|10e5\",\"Pacific/Honolulu|HST|a0|0||37e4\",\"MET|MET MEST|-10 -20|01010101010101010101010|1LHB0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00\",\"Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|600\",\"Pacific/Apia|+14 +13|-e0 -d0|01010101010101010101010|1LKe0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00|37e3\",\"Pacific/Bougainville|+10 +11|-a0 -b0|01|1NwE0|18e4\",\"Pacific/Fiji|+13 +12|-d0 -c0|01010101010101010101010|1Lfp0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0|88e4\",\"Pacific/Guam|ChST|-a0|0||17e4\",\"Pacific/Marquesas|-0930|9u|0||86e2\",\"Pacific/Pago_Pago|SST|b0|0||37e2\",\"Pacific/Norfolk|+1130 +11|-bu -b0|01|1PoCu|25e4\",\"Pacific/Tongatapu|+13 +14|-d0 -e0|010|1S4d0 s00|75e3\"],links:[\"Africa/Abidjan|Africa/Accra\",\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Bissau\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Monrovia\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|America/Danmarkshavn\",\"Africa/Abidjan|Atlantic/Reykjavik\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Abidjan|Etc/GMT\",\"Africa/Abidjan|Etc/GMT+0\",\"Africa/Abidjan|Etc/GMT-0\",\"Africa/Abidjan|Etc/GMT0\",\"Africa/Abidjan|Etc/Greenwich\",\"Africa/Abidjan|GMT\",\"Africa/Abidjan|GMT+0\",\"Africa/Abidjan|GMT-0\",\"Africa/Abidjan|GMT0\",\"Africa/Abidjan|Greenwich\",\"Africa/Abidjan|Iceland\",\"Africa/Algiers|Africa/Tunis\",\"Africa/Cairo|Egypt\",\"Africa/Casablanca|Africa/El_Aaiun\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Ndjamena\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Juba\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|America/Juneau\",\"America/Anchorage|America/Nome\",\"America/Anchorage|America/Sitka\",\"America/Anchorage|America/Yakutat\",\"America/Anchorage|US/Alaska\",\"America/Campo_Grande|America/Cuiaba\",\"America/Chicago|America/Indiana/Knox\",\"America/Chicago|America/Indiana/Tell_City\",\"America/Chicago|America/Knox_IN\",\"America/Chicago|America/Matamoros\",\"America/Chicago|America/Menominee\",\"America/Chicago|America/North_Dakota/Beulah\",\"America/Chicago|America/North_Dakota/Center\",\"America/Chicago|America/North_Dakota/New_Salem\",\"America/Chicago|America/Rainy_River\",\"America/Chicago|America/Rankin_Inlet\",\"America/Chicago|America/Resolute\",\"America/Chicago|America/Winnipeg\",\"America/Chicago|CST6CDT\",\"America/Chicago|Canada/Central\",\"America/Chicago|US/Central\",\"America/Chicago|US/Indiana-Starke\",\"America/Chihuahua|America/Mazatlan\",\"America/Chihuahua|Mexico/BajaSur\",\"America/Denver|America/Boise\",\"America/Denver|America/Cambridge_Bay\",\"America/Denver|America/Edmonton\",\"America/Denver|America/Inuvik\",\"America/Denver|America/Ojinaga\",\"America/Denver|America/Shiprock\",\"America/Denver|America/Yellowknife\",\"America/Denver|Canada/Mountain\",\"America/Denver|MST7MDT\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Fortaleza|America/Araguaina\",\"America/Fortaleza|America/Argentina/Buenos_Aires\",\"America/Fortaleza|America/Argentina/Catamarca\",\"America/Fortaleza|America/Argentina/ComodRivadavia\",\"America/Fortaleza|America/Argentina/Cordoba\",\"America/Fortaleza|America/Argentina/Jujuy\",\"America/Fortaleza|America/Argentina/La_Rioja\",\"America/Fortaleza|America/Argentina/Mendoza\",\"America/Fortaleza|America/Argentina/Rio_Gallegos\",\"America/Fortaleza|America/Argentina/Salta\",\"America/Fortaleza|America/Argentina/San_Juan\",\"America/Fortaleza|America/Argentina/San_Luis\",\"America/Fortaleza|America/Argentina/Tucuman\",\"America/Fortaleza|America/Argentina/Ushuaia\",\"America/Fortaleza|America/Bahia\",\"America/Fortaleza|America/Belem\",\"America/Fortaleza|America/Buenos_Aires\",\"America/Fortaleza|America/Catamarca\",\"America/Fortaleza|America/Cayenne\",\"America/Fortaleza|America/Cordoba\",\"America/Fortaleza|America/Jujuy\",\"America/Fortaleza|America/Maceio\",\"America/Fortaleza|America/Mendoza\",\"America/Fortaleza|America/Paramaribo\",\"America/Fortaleza|America/Recife\",\"America/Fortaleza|America/Rosario\",\"America/Fortaleza|America/Santarem\",\"America/Fortaleza|Antarctica/Rothera\",\"America/Fortaleza|Atlantic/Stanley\",\"America/Fortaleza|Etc/GMT+3\",\"America/Halifax|America/Glace_Bay\",\"America/Halifax|America/Goose_Bay\",\"America/Halifax|America/Moncton\",\"America/Halifax|America/Thule\",\"America/Halifax|Atlantic/Bermuda\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/La_Paz|America/Boa_Vista\",\"America/La_Paz|America/Guyana\",\"America/La_Paz|America/Manaus\",\"America/La_Paz|America/Porto_Velho\",\"America/La_Paz|Brazil/West\",\"America/La_Paz|Etc/GMT+4\",\"America/Lima|America/Bogota\",\"America/Lima|America/Eirunepe\",\"America/Lima|America/Guayaquil\",\"America/Lima|America/Porto_Acre\",\"America/Lima|America/Rio_Branco\",\"America/Lima|Brazil/Acre\",\"America/Lima|Etc/GMT+5\",\"America/Los_Angeles|America/Dawson\",\"America/Los_Angeles|America/Ensenada\",\"America/Los_Angeles|America/Santa_Isabel\",\"America/Los_Angeles|America/Tijuana\",\"America/Los_Angeles|America/Vancouver\",\"America/Los_Angeles|America/Whitehorse\",\"America/Los_Angeles|Canada/Pacific\",\"America/Los_Angeles|Canada/Yukon\",\"America/Los_Angeles|Mexico/BajaNorte\",\"America/Los_Angeles|PST8PDT\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Managua|America/Belize\",\"America/Managua|America/Costa_Rica\",\"America/Managua|America/El_Salvador\",\"America/Managua|America/Guatemala\",\"America/Managua|America/Regina\",\"America/Managua|America/Swift_Current\",\"America/Managua|America/Tegucigalpa\",\"America/Managua|Canada/Saskatchewan\",\"America/Mexico_City|America/Bahia_Banderas\",\"America/Mexico_City|America/Merida\",\"America/Mexico_City|America/Monterrey\",\"America/Mexico_City|Mexico/General\",\"America/New_York|America/Detroit\",\"America/New_York|America/Fort_Wayne\",\"America/New_York|America/Indiana/Indianapolis\",\"America/New_York|America/Indiana/Marengo\",\"America/New_York|America/Indiana/Petersburg\",\"America/New_York|America/Indiana/Vevay\",\"America/New_York|America/Indiana/Vincennes\",\"America/New_York|America/Indiana/Winamac\",\"America/New_York|America/Indianapolis\",\"America/New_York|America/Iqaluit\",\"America/New_York|America/Kentucky/Louisville\",\"America/New_York|America/Kentucky/Monticello\",\"America/New_York|America/Louisville\",\"America/New_York|America/Montreal\",\"America/New_York|America/Nassau\",\"America/New_York|America/Nipigon\",\"America/New_York|America/Pangnirtung\",\"America/New_York|America/Thunder_Bay\",\"America/New_York|America/Toronto\",\"America/New_York|Canada/Eastern\",\"America/New_York|EST5EDT\",\"America/New_York|US/East-Indiana\",\"America/New_York|US/Eastern\",\"America/New_York|US/Michigan\",\"America/Noronha|Atlantic/South_Georgia\",\"America/Noronha|Brazil/DeNoronha\",\"America/Noronha|Etc/GMT+2\",\"America/Panama|America/Atikokan\",\"America/Panama|America/Cayman\",\"America/Panama|America/Coral_Harbour\",\"America/Panama|America/Jamaica\",\"America/Panama|EST\",\"America/Panama|Jamaica\",\"America/Phoenix|America/Creston\",\"America/Phoenix|America/Dawson_Creek\",\"America/Phoenix|America/Hermosillo\",\"America/Phoenix|MST\",\"America/Phoenix|US/Arizona\",\"America/Santiago|Chile/Continental\",\"America/Santo_Domingo|America/Anguilla\",\"America/Santo_Domingo|America/Antigua\",\"America/Santo_Domingo|America/Aruba\",\"America/Santo_Domingo|America/Barbados\",\"America/Santo_Domingo|America/Blanc-Sablon\",\"America/Santo_Domingo|America/Curacao\",\"America/Santo_Domingo|America/Dominica\",\"America/Santo_Domingo|America/Grenada\",\"America/Santo_Domingo|America/Guadeloupe\",\"America/Santo_Domingo|America/Kralendijk\",\"America/Santo_Domingo|America/Lower_Princes\",\"America/Santo_Domingo|America/Marigot\",\"America/Santo_Domingo|America/Martinique\",\"America/Santo_Domingo|America/Montserrat\",\"America/Santo_Domingo|America/Port_of_Spain\",\"America/Santo_Domingo|America/Puerto_Rico\",\"America/Santo_Domingo|America/St_Barthelemy\",\"America/Santo_Domingo|America/St_Kitts\",\"America/Santo_Domingo|America/St_Lucia\",\"America/Santo_Domingo|America/St_Thomas\",\"America/Santo_Domingo|America/St_Vincent\",\"America/Santo_Domingo|America/Tortola\",\"America/Santo_Domingo|America/Virgin\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"Antarctica/Palmer|America/Punta_Arenas\",\"Asia/Baghdad|Antarctica/Syowa\",\"Asia/Baghdad|Asia/Aden\",\"Asia/Baghdad|Asia/Bahrain\",\"Asia/Baghdad|Asia/Kuwait\",\"Asia/Baghdad|Asia/Qatar\",\"Asia/Baghdad|Asia/Riyadh\",\"Asia/Baghdad|Etc/GMT-3\",\"Asia/Baghdad|Europe/Minsk\",\"Asia/Bangkok|Antarctica/Davis\",\"Asia/Bangkok|Asia/Ho_Chi_Minh\",\"Asia/Bangkok|Asia/Novokuznetsk\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Saigon\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Bangkok|Etc/GMT-7\",\"Asia/Bangkok|Indian/Christmas\",\"Asia/Dhaka|Antarctica/Vostok\",\"Asia/Dhaka|Asia/Almaty\",\"Asia/Dhaka|Asia/Bishkek\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dhaka|Asia/Kashgar\",\"Asia/Dhaka|Asia/Qostanay\",\"Asia/Dhaka|Asia/Thimbu\",\"Asia/Dhaka|Asia/Thimphu\",\"Asia/Dhaka|Asia/Urumqi\",\"Asia/Dhaka|Etc/GMT-6\",\"Asia/Dhaka|Indian/Chagos\",\"Asia/Dili|Etc/GMT-9\",\"Asia/Dili|Pacific/Palau\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Dubai|Asia/Tbilisi\",\"Asia/Dubai|Asia/Yerevan\",\"Asia/Dubai|Etc/GMT-4\",\"Asia/Dubai|Europe/Samara\",\"Asia/Dubai|Indian/Mahe\",\"Asia/Dubai|Indian/Mauritius\",\"Asia/Dubai|Indian/Reunion\",\"Asia/Gaza|Asia/Hebron\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jakarta|Asia/Pontianak\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kamchatka|Asia/Anadyr\",\"Asia/Kamchatka|Etc/GMT-12\",\"Asia/Kamchatka|Kwajalein\",\"Asia/Kamchatka|Pacific/Funafuti\",\"Asia/Kamchatka|Pacific/Kwajalein\",\"Asia/Kamchatka|Pacific/Majuro\",\"Asia/Kamchatka|Pacific/Nauru\",\"Asia/Kamchatka|Pacific/Tarawa\",\"Asia/Kamchatka|Pacific/Wake\",\"Asia/Kamchatka|Pacific/Wallis\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Brunei\",\"Asia/Kuala_Lumpur|Asia/Kuching\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Etc/GMT-8\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Rangoon|Indian/Cocos\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|Asia/Macao\",\"Asia/Shanghai|Asia/Macau\",\"Asia/Shanghai|Asia/Taipei\",\"Asia/Shanghai|PRC\",\"Asia/Shanghai|ROC\",\"Asia/Tashkent|Antarctica/Mawson\",\"Asia/Tashkent|Asia/Aqtau\",\"Asia/Tashkent|Asia/Aqtobe\",\"Asia/Tashkent|Asia/Ashgabat\",\"Asia/Tashkent|Asia/Ashkhabad\",\"Asia/Tashkent|Asia/Atyrau\",\"Asia/Tashkent|Asia/Dushanbe\",\"Asia/Tashkent|Asia/Oral\",\"Asia/Tashkent|Asia/Samarkand\",\"Asia/Tashkent|Etc/GMT-5\",\"Asia/Tashkent|Indian/Kerguelen\",\"Asia/Tashkent|Indian/Maldives\",\"Asia/Tehran|Iran\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Choibalsan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Vladivostok|Asia/Ust-Nera\",\"Asia/Yakutsk|Asia/Khandyga\",\"Atlantic/Azores|America/Scoresbysund\",\"Atlantic/Cape_Verde|Etc/GMT+1\",\"Australia/Adelaide|Australia/Broken_Hill\",\"Australia/Adelaide|Australia/South\",\"Australia/Adelaide|Australia/Yancowinna\",\"Australia/Brisbane|Australia/Lindeman\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Darwin|Australia/North\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/Currie\",\"Australia/Sydney|Australia/Hobart\",\"Australia/Sydney|Australia/Melbourne\",\"Australia/Sydney|Australia/NSW\",\"Australia/Sydney|Australia/Tasmania\",\"Australia/Sydney|Australia/Victoria\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Athens|Asia/Nicosia\",\"Europe/Athens|EET\",\"Europe/Athens|Europe/Bucharest\",\"Europe/Athens|Europe/Helsinki\",\"Europe/Athens|Europe/Kiev\",\"Europe/Athens|Europe/Mariehamn\",\"Europe/Athens|Europe/Nicosia\",\"Europe/Athens|Europe/Riga\",\"Europe/Athens|Europe/Sofia\",\"Europe/Athens|Europe/Tallinn\",\"Europe/Athens|Europe/Uzhgorod\",\"Europe/Athens|Europe/Vilnius\",\"Europe/Athens|Europe/Zaporozhye\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Atlantic/Canary\",\"Europe/Lisbon|Atlantic/Faeroe\",\"Europe/Lisbon|Atlantic/Faroe\",\"Europe/Lisbon|Atlantic/Madeira\",\"Europe/Lisbon|Portugal\",\"Europe/Lisbon|WET\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Paris|Africa/Ceuta\",\"Europe/Paris|Arctic/Longyearbyen\",\"Europe/Paris|Atlantic/Jan_Mayen\",\"Europe/Paris|CET\",\"Europe/Paris|Europe/Amsterdam\",\"Europe/Paris|Europe/Andorra\",\"Europe/Paris|Europe/Belgrade\",\"Europe/Paris|Europe/Berlin\",\"Europe/Paris|Europe/Bratislava\",\"Europe/Paris|Europe/Brussels\",\"Europe/Paris|Europe/Budapest\",\"Europe/Paris|Europe/Busingen\",\"Europe/Paris|Europe/Copenhagen\",\"Europe/Paris|Europe/Gibraltar\",\"Europe/Paris|Europe/Ljubljana\",\"Europe/Paris|Europe/Luxembourg\",\"Europe/Paris|Europe/Madrid\",\"Europe/Paris|Europe/Malta\",\"Europe/Paris|Europe/Monaco\",\"Europe/Paris|Europe/Oslo\",\"Europe/Paris|Europe/Podgorica\",\"Europe/Paris|Europe/Prague\",\"Europe/Paris|Europe/Rome\",\"Europe/Paris|Europe/San_Marino\",\"Europe/Paris|Europe/Sarajevo\",\"Europe/Paris|Europe/Skopje\",\"Europe/Paris|Europe/Stockholm\",\"Europe/Paris|Europe/Tirane\",\"Europe/Paris|Europe/Vaduz\",\"Europe/Paris|Europe/Vatican\",\"Europe/Paris|Europe/Vienna\",\"Europe/Paris|Europe/Warsaw\",\"Europe/Paris|Europe/Zagreb\",\"Europe/Paris|Europe/Zurich\",\"Europe/Paris|Poland\",\"Europe/Ulyanovsk|Europe/Astrakhan\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Fakaofo|Etc/GMT-13\",\"Pacific/Fakaofo|Pacific/Enderbury\",\"Pacific/Galapagos|Etc/GMT+6\",\"Pacific/Gambier|Etc/GMT+9\",\"Pacific/Guadalcanal|Antarctica/Macquarie\",\"Pacific/Guadalcanal|Etc/GMT-11\",\"Pacific/Guadalcanal|Pacific/Efate\",\"Pacific/Guadalcanal|Pacific/Kosrae\",\"Pacific/Guadalcanal|Pacific/Noumea\",\"Pacific/Guadalcanal|Pacific/Pohnpei\",\"Pacific/Guadalcanal|Pacific/Ponape\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|HST\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kiritimati|Etc/GMT-14\",\"Pacific/Niue|Etc/GMT+11\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Pitcairn|Etc/GMT+8\",\"Pacific/Port_Moresby|Antarctica/DumontDUrville\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Port_Moresby|Pacific/Chuuk\",\"Pacific/Port_Moresby|Pacific/Truk\",\"Pacific/Port_Moresby|Pacific/Yap\",\"Pacific/Tahiti|Etc/GMT+10\",\"Pacific/Tahiti|Pacific/Rarotonga\"]}),r}),moment.fn.shortDateNoYear=function(){return this.format(\"D MMM\")},moment.fn.shortDate=function(){return this.format(\"D MMM YYYY\")},moment.fn.longDate=function(){return this.format(\"D MMMM YYYY LT\")},moment.fn.relativeAge=function(e){return Discourse.Formatter.relativeAge(this.toDate(),e)};\n//# sourceMappingURL=/assets/locales/en_US-5d7f91ca05e99532c003ff938dae6dfead009af161c895ee3fffd38d0b59ba57.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.4280000208634883,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1268.8829999900665,
          "receive": 1081.7800000077114,
          "_blocked_queueing": 0.4270000208634883
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 24
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.619Z",
        "time": 3805.741999996826,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000351"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:15 GMT"
            },
            {
              "name": "Content-Length",
              "value": "154985"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 560957,
            "mimeType": "application/javascript",
            "text": "var define,requirejs;Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},window.ENV={},window.EmberENV=window.EmberENV||{},window.EmberENV.FORCE_JQUERY=!0,function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(T,e){\"use strict\";function m(e){return null!=e&&e===e.window}var t=[],C=T.document,r=Object.getPrototypeOf,s=t.slice,v=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,g=n.hasOwnProperty,a=g.toString,l=a.call(Object),y={},b=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType},c={type:!0,src:!0,nonce:!0,noModule:!0};function _(e,t,n){var r,i,o=(n=n||C).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var h=\"3.4.1\",R=function(e,t){return new R.fn.init(e,t)},f=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!b(e)&&!m(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}R.fn=R.prototype={jquery:h,constructor:R,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=R.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return R.each(this,e)},map:function(n){return this.pushStack(R.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},R.extend=R.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||b(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(R.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||R.isPlainObject(n)?n:{},i=!1,a[t]=R.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},R.extend({expando:\"jQuery\"+(h+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==o.call(e))&&(!(t=r(e))||\"function\"==typeof(n=g.call(t,\"constructor\")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){_(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(p(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?\"\":(e+\"\").replace(f,\"\")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?R.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!=a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return v.apply([],a)},guid:1,support:y}),\"function\"==typeof Symbol&&(R.fn[Symbol.iterator]=t[Symbol.iterator]),R.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var d=function(n){function h(e,t,n){var r=\"0x\"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)}function i(){E()}var e,p,_,o,a,d,f,m,w,u,l,E,T,s,C,v,c,g,y,R=\"sizzle\"+ +new Date,b=n.document,k=0,r=0,x=ue(),A=ue(),O=ue(),S=ue(),N=function(e,t){return e===t&&(l=!0),0},P={}.hasOwnProperty,t=[],L=t.pop,M=t.push,j=t.push,D=t.slice,I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},F=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",B=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",U=\"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",z=\"\\\\[\"+B+\"*(\"+U+\")(?:\"+B+\"*([*^$|!~]?=)\"+B+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+U+\"))|)\"+B+\"*\\\\]\",q=\":(\"+U+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+z+\")*)|.*)\\\\)|)\",H=new RegExp(B+\"+\",\"g\"),V=new RegExp(\"^\"+B+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+B+\"+$\",\"g\"),W=new RegExp(\"^\"+B+\"*,\"+B+\"*\"),Y=new RegExp(\"^\"+B+\"*([>+~]|\"+B+\")\"+B+\"*\"),G=new RegExp(B+\"|>\"),Q=new RegExp(q),K=new RegExp(\"^\"+U+\"$\"),$={ID:new RegExp(\"^#(\"+U+\")\"),CLASS:new RegExp(\"^\\\\.(\"+U+\")\"),TAG:new RegExp(\"^(\"+U+\"|[*])\"),ATTR:new RegExp(\"^\"+z),PSEUDO:new RegExp(\"^\"+q),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+B+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+B+\"*(?:([+-]|)\"+B+\"*(\\\\d+)|))\"+B+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+F+\")$\",\"i\"),needsContext:new RegExp(\"^\"+B+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+B+\"*((?:-\\\\d)?\\\\d*)\"+B+\"*\\\\)|)(?=[^-]|$)\",\"i\")},X=/HTML$/i,J=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,ee=/^[^{]+\\{\\s*\\[native \\w/,te=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ne=/[+~]/,re=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+B+\"?|(\"+B+\")|.)\",\"ig\"),ie=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,oe=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},ae=ye(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{j.apply(t=D.call(b.childNodes),b.childNodes),t[b.childNodes.length].nodeType}catch(e){j={apply:t.length?function(e,t){M.apply(e,D.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,h=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&((e?e.ownerDocument||e:b)!==T&&E(e),e=e||T,C)){if(11!==f&&(u=te.exec(t)))if(i=u[1]){if(9===f){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(h&&(a=h.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return j.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return j.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!S[t+\" \"]&&(!v||!v.test(t))&&(1!==f||\"object\"!==e.nodeName.toLowerCase())){if(c=t,h=e,1===f&&G.test(t)){for((s=e.getAttribute(\"id\"))?s=s.replace(ie,oe):e.setAttribute(\"id\",s=R),o=(l=d(t)).length;o--;)l[o]=\"#\"+s+\" \"+ge(l[o]);c=l.join(\",\"),h=ne.test(t)&&me(e.parentNode)||e}try{return j.apply(n,h.querySelectorAll(c)),n}catch(e){S(t,!0)}finally{s===R&&e.removeAttribute(\"id\")}}}return m(t.replace(V,\"$1\"),e,n,r)}function ue(){var n=[];function r(e,t){return n.push(e+\" \")>_.cacheLength&&delete r[n.shift()],r[e+\" \"]=t}return r}function le(e){return e[R]=!0,e}function ce(e){var t=T.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function he(e,t){for(var n=e.split(\"|\"),r=n.length;r--;)_.attrHandle[n[r]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function de(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!X.test(t||n&&n.nodeName||\"HTML\")},E=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:b;return r!==T&&9===r.nodeType&&r.documentElement&&(s=(T=r).documentElement,C=!a(T),b!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",i,!1):n.attachEvent&&n.attachEvent(\"onunload\",i)),p.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=ce(function(e){return s.appendChild(e).id=R,!T.getElementsByName||!T.getElementsByName(R).length}),p.getById?(_.filter.ID=function(e){var t=e.replace(re,h);return function(e){return e.getAttribute(\"id\")===t}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(_.filter.ID=function(e){var n=e.replace(re,h);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),_.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},_.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&C)return t.getElementsByClassName(e)},c=[],v=[],(p.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){s.appendChild(e).innerHTML=\"<a id='\"+R+\"'></a><select id='\"+R+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+B+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+B+\"*(?:value|\"+F+\")\"),e.querySelectorAll(\"[id~=\"+R+\"-]\").length||v.push(\"~=\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+R+\"+*\").length||v.push(\".#.+[+~]\")}),ce(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=T.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+B+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(p.matchesSelector=ee.test(g=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=g.call(e,\"*\"),g.call(e,\"[s!='']:x\"),c.push(\"!=\",q)}),v=v.length&&new RegExp(v.join(\"|\")),c=c.length&&new RegExp(c.join(\"|\")),t=ee.test(s.compareDocumentPosition),y=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===b&&y(b,e)?-1:t===T||t.ownerDocument===b&&y(b,t)?1:u?I(u,e)-I(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?I(u,e)-I(u,t):0;if(i===o)return fe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?fe(a[r],s[r]):a[r]===b?-1:s[r]===b?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&E(e),p.matchesSelector&&C&&!S[t+\" \"]&&(!c||!c.test(t))&&(!v||!v.test(t)))try{var n=g.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0<se(t,T,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==T&&E(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==T&&E(e);var n=_.attrHandle[t.toLowerCase()],r=n&&P.call(_.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:p.attributes||!C?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+\"\").replace(ie,oe)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!p.detectDuplicates,u=!p.sortStable&&e.slice(0),e.sort(N),l){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(_=se.selectors={cacheLength:50,createPseudo:le,match:$,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,h),e[3]=(e[3]||e[4]||e[5]||\"\").replace(re,h),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return $.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&Q.test(n)&&(t=d(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,h).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=x[e+\" \"];return t||(t=new RegExp(\"(^|\"+B+\")\"+e+\"(\"+B+\"|$)\"))&&x(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(H,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(d,e,t,m,v){var g=\"nth\"!==d.slice(0,3),y=\"last\"!==d.slice(-4),b=\"of-type\"===e;return 1===m&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=g!=y?\"nextSibling\":\"previousSibling\",c=e.parentNode,h=b&&e.nodeName.toLowerCase(),f=!n&&!b,p=!1;if(c){if(g){for(;l;){for(a=e;a=a[l];)if(b?a.nodeName.toLowerCase()===h:1===a.nodeType)return!1;u=l=\"only\"===d&&!u&&\"nextSibling\"}return!0}if(u=[y?c.firstChild:c.lastChild],y&&f){for(p=(s=(r=(i=(o=(a=c)[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];a=++s&&a&&a[l]||(p=s=0)||u.pop();)if(1===a.nodeType&&++p&&a===e){i[d]=[k,s,p];break}}else if(f&&(p=s=(r=(i=(o=(a=e)[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]||[])[0]===k&&r[1]),!1===p)for(;(a=++s&&a&&a[l]||(p=s=0)||u.pop())&&((b?a.nodeName.toLowerCase()!==h:1!==a.nodeType)||!++p||(f&&((i=(o=a[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]=[k,p]),a!==e)););return(p-=v)===m||p%m==0&&0<=p/m}}},PSEUDO:function(e,o){var t,a=_.pseudos[e]||_.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return a[R]?a(o):1<a.length?(t=[e,e,\"\",o],_.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){for(var n,r=a(e,o),i=r.length;i--;)e[n=I(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(V,\"$1\"));return s[R]?le(function(e,t,n,r){for(var i,o=s(e,null,r,[]),a=e.length;a--;)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(re,h),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return K.test(n||\"\")||se.error(\"unsupported lang: \"+n),n=n.replace(re,h).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===s},focus:function(e){return e===T.activeElement&&(!T.hasFocus||T.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:de(function(){return[0]}),last:de(function(e,t){return[t-1]}),eq:de(function(e,t,n){return[n<0?n+t:n]}),even:de(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:de(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:de(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:de(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=_.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[e]=function(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}(e);for(e in{submit:!0,reset:!0})_.pseudos[e]=function(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}(e);function ve(){}function ge(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function ye(s,e,t){var u=e.dir,l=e.next,c=l||u,h=t&&\"parentNode\"===c,f=r++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||h)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,f];if(n){for(;e=e[u];)if((1===e.nodeType||h)&&s(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||h)if(i=(o=e[R]||(e[R]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===f)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function be(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function _e(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function we(p,d,m,v,g,e){return v&&!v[R]&&(v=we(v)),g&&!g[R]&&(g=we(g,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(d||\"*\",n.nodeType?[n]:n,[]),h=!p||!e&&d?c:_e(c,s,p,n,r),f=m?g||(e?p:l||v)?[]:t:h;if(m&&m(h,f,n,r),v)for(i=_e(f,u),v(i,[],n,r),o=i.length;o--;)(a=i[o])&&(f[u[o]]=!(h[u[o]]=a));if(e){if(g||p){if(g){for(i=[],o=f.length;o--;)(a=f[o])&&i.push(h[o]=a);g(null,f=[],i,r)}for(o=f.length;o--;)(a=f[o])&&-1<(i=g?I(e,a):s[o])&&(e[i]=!(t[i]=a))}}else f=_e(f===t?f.splice(l,f.length):f),g?g(null,t,f,r):j.apply(t,f)})}function Ee(v,g){function e(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],h=[],f=w,p=e||b&&_.find.TAG(\"*\",i),d=k+=null==f?1:Math.random()||.1,m=p.length;for(i&&(w=t===T||t||i);l!==m&&null!=(o=p[l]);l++){if(b&&o){for(a=0,t||o.ownerDocument===T||(E(o),n=!C);s=v[a++];)if(s(o,t||T,n)){r.push(o);break}i&&(k=d)}y&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,y&&l!==u){for(a=0;s=g[a++];)s(c,h,t,n);if(e){if(0<u)for(;l--;)c[l]||h[l]||(h[l]=L.call(r));h=_e(h)}j.apply(r,h),i&&!e&&0<h.length&&1<u+g.length&&se.uniqueSort(r)}return i&&(k=d,w=f),c}var y=0<g.length,b=0<v.length;return y?le(e):e}return ve.prototype=_.filters=_.pseudos,_.setFilters=new ve,d=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=A[e+\" \"];if(l)return t?0:l.slice(0);for(a=e,s=[],u=_.preFilter;a;){for(o in n&&!(r=W.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=Y.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(V,\" \")}),a=a.slice(n.length)),_.filter)!(r=$[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):A(e,s).slice(0)},f=se.compile=function(e,t){var n,r=[],i=[],o=O[e+\" \"];if(!o){for(n=(t=t||d(e)).length;n--;)(o=function e(t){for(var i,n,r,o=t.length,a=_.relative[t[0].type],s=a||_.relative[\" \"],u=a?1:0,l=ye(function(e){return e===i},s,!0),c=ye(function(e){return-1<I(i,e)},s,!0),h=[function(e,t,n){var r=!a&&(n||t!==w)||((i=t).nodeType?l:c)(e,t,n);return i=null,r}];u<o;u++)if(n=_.relative[t[u].type])h=[ye(be(h),n)];else{if((n=_.filter[t[u].type].apply(null,t[u].matches))[R]){for(r=++u;r<o&&!_.relative[t[r].type];r++);return we(1<u&&be(h),1<u&&ge(t.slice(0,u-1).concat({value:\" \"===t[u-2].type?\"*\":\"\"})).replace(V,\"$1\"),n,u<r&&e(t.slice(u,r)),r<o&&e(t=t.slice(r)),r<o&&ge(t))}h.push(n)}return be(h)}(t[n]))[R]?r.push(o):i.push(o);(o=O(e,Ee(i,r))).selector=e}return o},m=se.select=function(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&d(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&C&&_.relative[o[1].type]){if(!(t=(_.find.ID(a.matches[0].replace(re,h),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=$.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((u=_.find[s])&&(r=u(a.matches[0].replace(re,h),ne.test(o[0].type)&&me(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&ge(o)))return j.apply(n,r),n;break}}return(l||f(e,c))(r,t,!C,n,!t||ne.test(e)&&me(t.parentNode)||t),n},p.sortStable=R.split(\"\").sort(N).join(\"\")===R,p.detectDuplicates=!!l,E(),p.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(T.createElement(\"fieldset\"))}),ce(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||he(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),p.attributes&&ce(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||he(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||he(F,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(T);R.find=d,R.expr=d.selectors,R.expr[\":\"]=R.expr.pseudos,R.uniqueSort=R.unique=d.uniqueSort,R.text=d.getText,R.isXMLDoc=d.isXML,R.contains=d.contains,R.escapeSelector=d.escape;function E(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&R(e).is(n))break;r.push(e)}return r}function k(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}var x=R.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var O=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function S(e,n,r){return b(n)?R.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?R.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?R.grep(e,function(e){return-1<i.call(n,e)!==r}):R.filter(n,e,r)}R.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?R.find.matchesSelector(r,e)?[r]:[]:R.find.matches(e,R.grep(t,function(e){return 1===e.nodeType}))},R.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(R(e).filter(function(){for(t=0;t<r;t++)if(R.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)R.find(e,i[t],n);return 1<r?R.uniqueSort(n):n},filter:function(e){return this.pushStack(S(this,e||[],!1))},not:function(e){return this.pushStack(S(this,e||[],!0))},is:function(e){return!!S(this,\"string\"==typeof e&&x.test(e)?R(e):e||[],!1).length}});var N,P=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(R.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||N,\"string\"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(R):R.makeArray(e,this);if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:P.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof R?t[0]:t,R.merge(this,R.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),O.test(r[1])&&R.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=R.fn,N=R(C);var L=/^(?:parents|prev(?:Until|All))/,M={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}R.fn.extend({has:function(e){var t=R(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(R.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&R(e);if(!x.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&R.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?R.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?i.call(R(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(R.uniqueSort(R.merge(this.get(),R(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),R.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,\"parentNode\")},parentsUntil:function(e,t,n){return E(e,\"parentNode\",n)},next:function(e){return j(e,\"nextSibling\")},prev:function(e){return j(e,\"previousSibling\")},nextAll:function(e){return E(e,\"nextSibling\")},prevAll:function(e){return E(e,\"previousSibling\")},nextUntil:function(e,t,n){return E(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return E(e,\"previousSibling\",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return void 0!==e.contentDocument?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),R.merge([],e.childNodes))}},function(r,i){R.fn[r]=function(e,t){var n=R.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=R.filter(t,n)),1<this.length&&(M[r]||R.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\\x20\\t\\r\\n\\f]+/g;function I(e){return e}function F(e){throw e}function B(e,t,n,r){var i;try{e&&b(i=e.promise)?i.call(e).done(t).fail(n):e&&b(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}R.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},R.each(e.match(D)||[],function(e,t){n[t]=!0}),n):R.extend({},r);function i(){for(s=s||r.once,a=o=!0;l.length;c=-1)for(t=l.shift();++c<u.length;)!1===u[c].apply(t[0],t[1])&&r.stopOnFalse&&(c=u.length,t=!1);r.memory||(t=!1),o=!1,s&&(u=t?[]:\"\")}var o,t,a,s,u=[],l=[],c=-1,h={add:function(){return u&&(t&&!o&&(c=u.length-1,l.push(t)),function n(e){R.each(e,function(e,t){b(t)?r.unique&&h.has(t)||u.push(t):t&&t.length&&\"string\"!==w(t)&&n(t)})}(arguments),t&&!o&&i()),this},remove:function(){return R.each(arguments,function(e,t){for(var n;-1<(n=R.inArray(t,u,n));)u.splice(n,1),n<=c&&c--}),this},has:function(e){return e?-1<R.inArray(e,u):0<u.length},empty:function(){return u=u&&[],this},disable:function(){return s=l=[],u=t=\"\",this},disabled:function(){return!u},lock:function(){return s=l=[],t||o||(u=t=\"\"),this},locked:function(){return!!s},fireWith:function(e,t){return s||(t=[e,(t=t||[]).slice?t.slice():t],l.push(t),o||i()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!a}};return h},R.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",R.Callbacks(\"memory\"),R.Callbacks(\"memory\"),2],[\"resolve\",\"done\",R.Callbacks(\"once memory\"),R.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",R.Callbacks(\"once memory\"),R.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return a.then(null,e)},pipe:function(){var i=arguments;return R.Deferred(function(r){R.each(o,function(e,t){var n=b(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&b(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){function e(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,b(t)?s?t.call(e,l(u,o,I,s),l(u,o,F,s)):(u++,t.call(e,l(u,o,I,s),l(u,o,F,s),l(u,o,I,o.notifyWith))):(a!==I&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}}var n=this,r=arguments,t=s?e:function(){try{e()}catch(e){R.Deferred.exceptionHook&&R.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==F&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(R.Deferred.getStackHook&&(t.stackTrace=R.Deferred.getStackHook()),T.setTimeout(t))}}return R.Deferred(function(e){o[0][3].add(l(0,e,b(r)?r:I,e.notifyWith)),o[1][3].add(l(0,e,b(t)?t:I)),o[2][3].add(l(0,e,b(n)?n:F))}).promise()},promise:function(e){return null!=e?R.extend(e,a):a}},s={};return R.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){function t(t){return function(e){i[t]=this,o[t]=1<arguments.length?s.call(arguments):e,--n||a.resolveWith(i,o)}}var n=arguments.length,r=n,i=Array(r),o=s.call(arguments),a=R.Deferred();if(n<=1&&(B(e,a.done(t(r)).resolve,a.reject,!n),\"pending\"===a.state()||b(o[r]&&o[r].then)))return a.then();for(;r--;)B(o[r],t(r),a.reject);return a.promise()}});var U=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;R.Deferred.exceptionHook=function(e,t){T.console&&T.console.warn&&e&&U.test(e.name)&&T.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},R.readyException=function(e){T.setTimeout(function(){throw e})};var z=R.Deferred();function q(){C.removeEventListener(\"DOMContentLoaded\",q),T.removeEventListener(\"load\",q),R.ready()}R.fn.ready=function(e){return z.then(e).catch(function(e){R.readyException(e)}),this},R.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--R.readyWait:R.isReady)||(R.isReady=!0)!==e&&0<--R.readyWait||z.resolveWith(C,[R])}}),R.ready.then=z.then,\"complete\"===C.readyState||\"loading\"!==C.readyState&&!C.documentElement.doScroll?T.setTimeout(R.ready):(C.addEventListener(\"DOMContentLoaded\",q),T.addEventListener(\"load\",q));var H=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===w(n))for(s in i=!0,n)H(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,b(r)||(a=!0),l&&(t=a?(t.call(e,r),null):(l=t,function(e,t,n){return l.call(R(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},V=/^-ms-/,W=/-([a-z])/g;function Y(e,t){return t.toUpperCase()}function G(e){return e.replace(V,\"ms-\").replace(W,Y)}function Q(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType}function K(){this.expando=R.expando+K.uid++}K.uid=1,K.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Q(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(D)||[]).length;for(;n--;)delete r[t[n]]}void 0!==t&&!R.isEmptyObject(r)||(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!R.isEmptyObject(t)}};var $=new K,X=new K,J=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(Z,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:J.test(i)?JSON.parse(i):i)}catch(e){}X.set(e,t,n)}else n=void 0;return n}R.extend({hasData:function(e){return X.hasData(e)||$.hasData(e)},data:function(e,t,n){return X.access(e,t,n)},removeData:function(e,t){X.remove(e,t)},_data:function(e,t,n){return $.access(e,t,n)},_removeData:function(e,t){$.remove(e,t)}}),R.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0!==n)return\"object\"==typeof n?this.each(function(){X.set(this,n)}):H(this,function(e){var t;return o&&void 0===e?void 0!==(t=X.get(o,n))||void 0!==(t=ee(o,n))?t:void 0:void this.each(function(){X.set(this,n,e)})},null,e,1<arguments.length,null,!0);if(this.length&&(i=X.get(o),1===o.nodeType&&!$.get(o,\"hasDataAttrs\"))){for(t=a.length;t--;)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=G(r.slice(5)),ee(o,r,i[r]));$.set(o,\"hasDataAttrs\",!0)}return i},removeData:function(e){return this.each(function(){X.remove(this,e)})}}),R.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=$.get(e,t),n&&(!r||Array.isArray(n)?r=$.access(e,t,R.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=R.queue(e,t),r=n.length,i=n.shift(),o=R._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){R.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return $.get(e,n)||$.access(e,n,{empty:R.Callbacks(\"once memory\").add(function(){$.remove(e,[t+\"queue\",n])})})}}),R.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?R.queue(this[0],t):void 0===n?this:this.each(function(){var e=R.queue(this,t,n);R._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&R.dequeue(this,t)})},dequeue:function(e){return this.each(function(){R.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){function n(){--i||o.resolveWith(a,[a])}var r,i=1,o=R.Deferred(),a=this,s=this.length;for(\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";s--;)(r=$.get(a[s],e+\"queueHooks\"))&&r.empty&&(i++,r.empty.add(n));return n(),o.promise(t)}});var te=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,ne=new RegExp(\"^(?:([+-])=|)(\"+te+\")([a-z%]*)$\",\"i\"),re=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ie=C.documentElement,oe=function(e){return R.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return R.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});function se(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i}var ue=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&oe(e)&&\"none\"===R.css(e,\"display\")};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return R.css(e,t,\"\")},u=s(),l=n&&n[3]||(R.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(R.cssNumber[t]||\"px\"!==l&&+u)&&ne.exec(R.css(e,t));if(c&&c[3]!==l){for(u/=2,l=l||c[3],c=+u||1;a--;)R.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,R.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function he(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,h=e.length;c<h;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=$.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ue(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=R.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ce[s]=u)))):\"none\"!==n&&(l[c]=\"none\",$.set(r,\"display\",n)));for(c=0;c<h;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}R.fn.extend({show:function(){return he(this,!0)},hide:function(){return he(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ue(this)?R(this).show():R(this).hide()})}});var fe=/^(?:checkbox|radio)$/i,pe=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,de=/^$|^module$|\\/(?:java|ecma)script/i,me={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function ve(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[];return void 0===t||t&&A(e,t)?R.merge([e],n):n}function ge(e,t){for(var n=0,r=e.length;n<r;n++)$.set(e[n],\"globalEval\",!t||$.get(t[n],\"globalEval\"))}me.optgroup=me.option,me.tbody=me.tfoot=me.colgroup=me.caption=me.thead,me.th=me.td;var ye,be,_e=/<|&#?\\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,h=t.createDocumentFragment(),f=[],p=0,d=e.length;p<d;p++)if((o=e[p])||0===o)if(\"object\"===w(o))R.merge(f,o.nodeType?[o]:o);else if(_e.test(o)){for(a=a||h.appendChild(t.createElement(\"div\")),s=(pe.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=me[s]||me._default,a.innerHTML=u[1]+R.htmlPrefilter(o)+u[2],c=u[0];c--;)a=a.lastChild;R.merge(f,a.childNodes),(a=h.firstChild).textContent=\"\"}else f.push(t.createTextNode(o));for(h.textContent=\"\",p=0;o=f[p++];)if(r&&-1<R.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(h.appendChild(o),\"script\"),l&&ge(a),n)for(c=0;o=a[c++];)de.test(o.type||\"\")&&n.push(o);return h}ye=C.createDocumentFragment().appendChild(C.createElement(\"div\")),(be=C.createElement(\"input\")).setAttribute(\"type\",\"radio\"),be.setAttribute(\"checked\",\"checked\"),be.setAttribute(\"name\",\"t\"),ye.appendChild(be),y.checkClone=ye.cloneNode(!0).cloneNode(!0).lastChild.checked,ye.innerHTML=\"<textarea>x</textarea>\",y.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var Ee=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\\.(.+)|)/;function Re(){return!0}function ke(){return!1}function xe(e,t){return e===function(){try{return C.activeElement}catch(e){}}()==(\"focus\"===t)}function Ae(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return R().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=R.guid++)),e.each(function(){R.event.add(this,t,i,r,n)})}function Oe(e,i,o){o?($.set(e,i,!1),R.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=$.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(R.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),$.set(this,i,r),t=o(this,i),this[i](),r!==(n=$.get(this,i))||t?$.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&($.set(this,i,{value:R.event.trigger(R.extend(r[0],R.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===$.get(e,i)&&R.event.add(e,i,Re)}R.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,h,f,p,d,m,v=$.get(t);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&R.find.matchesSelector(ie,i),n.guid||(n.guid=R.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return void 0!==R&&R.event.triggered!==e.type?R.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(D)||[\"\"]).length;l--;)p=m=(s=Ce.exec(e[l])||[])[1],d=(s[2]||\"\").split(\".\").sort(),p&&(h=R.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,h=R.event.special[p]||{},c=R.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&R.expr.match.needsContext.test(i),namespace:d.join(\".\")},o),(f=u[p])||((f=u[p]=[]).delegateCount=0,h.setup&&!1!==h.setup.call(t,r,d,a)||t.addEventListener&&t.addEventListener(p,a)),h.add&&(h.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,c):f.push(c),R.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,h,f,p,d,m,v=$.hasData(e)&&$.get(e);if(v&&(u=v.events)){for(l=(t=(t||\"\").match(D)||[\"\"]).length;l--;)if(p=m=(s=Ce.exec(t[l])||[])[1],d=(s[2]||\"\").split(\".\").sort(),p){for(h=R.event.special[p]||{},f=u[p=(r?h.delegateType:h.bindType)||p]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+d.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=f.length;o--;)c=f[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,h.remove&&h.remove.call(e,c));a&&!f.length&&(h.teardown&&!1!==h.teardown.call(e,d,v.handle)||R.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)R.event.remove(e,p+t[l],n,r,!0);R.isEmptyObject(u)&&$.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=R.event.fix(e),u=new Array(arguments.length),l=($.get(this,\"events\")||{})[s.type]||[],c=R.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){for(a=R.event.handlers.call(this,s,l),t=0;(i=a[t++])&&!s.isPropagationStopped();)for(s.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((R.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?-1<R(i,this).index(l):R.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(R.Event.prototype,t,{enumerable:!0,configurable:!0,get:b(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[R.expando]?e:new R.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return fe.test(t.type)&&t.click&&A(t,\"input\")&&Oe(t,\"click\",Re),!1},trigger:function(e){var t=this||e;return fe.test(t.type)&&t.click&&A(t,\"input\")&&Oe(t,\"click\"),!0},_default:function(e){var t=e.target;return fe.test(t.type)&&t.click&&A(t,\"input\")&&$.get(t,\"click\")||A(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},R.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},R.Event=function(e,t){if(!(this instanceof R.Event))return new R.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Re:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&R.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[R.expando]=!0},R.Event.prototype={constructor:R.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Re,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Re,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Re,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},R.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Ee.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},R.event.addProp),R.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){R.event.special[e]={setup:function(){return Oe(this,e,xe),!1},trigger:function(){return Oe(this,e),!0},delegateType:t}}),R.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){R.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||R.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),R.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,R(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"!=typeof e)return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){R.event.remove(this,e,n,t)});for(i in e)this.off(i,t,e[i]);return this}});var Se=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Ne=/<script|<style|<link/i,Pe=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Le=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Me(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&R(e).children(\"tbody\")[0]||e}function je(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function De(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Ie(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if($.hasData(e)&&(o=$.access(e),a=$.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)R.event.add(t,i,l[i][n]);X.hasData(e)&&(s=X.access(e),u=R.extend({},s),X.set(t,u))}}function Fe(n,r,i,o){r=v.apply([],r);var e,t,a,s,u,l,c=0,h=n.length,f=h-1,p=r[0],d=b(p);if(d||1<h&&\"string\"==typeof p&&!y.checkClone&&Pe.test(p))return n.each(function(e){var t=n.eq(e);d&&(r[0]=p.call(this,e,t.html())),Fe(t,r,i,o)});if(h&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=R.map(ve(e,\"script\"),je)).length;c<h;c++)u=e,c!==f&&(u=R.clone(u,!0,!0),s&&R.merge(a,ve(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,R.map(a,De),c=0;c<s;c++)u=a[c],de.test(u.type||\"\")&&!$.access(u,\"globalEval\")&&R.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?R._evalUrl&&!u.noModule&&R._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")}):_(u.textContent.replace(Le,\"\"),u,l))}return n}function Be(e,t,n){for(var r,i=t?R.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||R.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ge(ve(r,\"script\")),r.parentNode.removeChild(r));return e}R.extend({htmlPrefilter:function(e){return e.replace(Se,\"<$1></$2>\")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),h=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||R.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],\"input\"===(l=u.nodeName.toLowerCase())&&fe.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Ie(o[r],a[r]);else Ie(e,c);return 0<(a=ve(c,\"script\")).length&&ge(a,!h&&ve(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=R.event.special,o=0;void 0!==(n=e[o]);o++)if(Q(n)){if(t=n[$.expando]){if(t.events)for(r in t.events)i[r]?R.event.remove(n,r):R.removeEvent(n,r,t.handle);n[$.expando]=void 0}n[X.expando]&&(n[X.expando]=void 0)}}}),R.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return H(this,function(e){return void 0===e?R.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Fe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)})},prepend:function(){return Fe(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Me(this,e)).insertBefore(e,t.firstChild)})},before:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(R.cleanData(ve(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return R.clone(this,e,t)})},html:function(e){return H(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ne.test(e)&&!me[(pe.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=R.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(R.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Fe(this,arguments,function(e){var t=this.parentNode;R.inArray(this,n)<0&&(R.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),R.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){R.fn[e]=function(e){for(var t,n=[],r=R(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),R(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Ue,ze,qe,He,Ve,We,Ye,Ge=new RegExp(\"^(\"+te+\")(?!px)[a-z%]+$\",\"i\"),Qe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=T),t.getComputedStyle(e)},Ke=new RegExp(re.join(\"|\"),\"i\");function $e(){var e;Ye&&(We.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",Ye.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",ie.appendChild(We).appendChild(Ye),e=T.getComputedStyle(Ye),Ue=\"1%\"!==e.top,Ve=12===Xe(e.marginLeft),Ye.style.right=\"60%\",He=36===Xe(e.right),ze=36===Xe(e.width),Ye.style.position=\"absolute\",qe=12===Xe(Ye.offsetWidth/3),ie.removeChild(We),Ye=null)}function Xe(e){return Math.round(parseFloat(e))}function Je(e,t,n){var r,i,o,a,s=e.style;return(n=n||Qe(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=R.style(e,t)),!y.pixelBoxStyles()&&Ge.test(a)&&Ke.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}We=C.createElement(\"div\"),(Ye=C.createElement(\"div\")).style&&(Ye.style.backgroundClip=\"content-box\",Ye.cloneNode(!0).style.backgroundClip=\"\",y.clearCloneStyle=\"content-box\"===Ye.style.backgroundClip,R.extend(y,{boxSizingReliable:function(){return $e(),ze},pixelBoxStyles:function(){return $e(),He},pixelPosition:function(){return $e(),Ue},reliableMarginLeft:function(){return $e(),Ve},scrollboxSize:function(){return $e(),qe}}));var et=[\"Webkit\",\"Moz\",\"ms\"],tt=C.createElement(\"div\").style,nt={};function rt(e){var t=R.cssProps[e]||nt[e];return t||(e in tt?e:nt[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=et.length;n--;)if((e=et[n]+t)in tt)return e}(e)||e)}var it=/^(none|table(?!-c[ea]).+)/,ot=/^--/,at={position:\"absolute\",visibility:\"hidden\",display:\"block\"},st={letterSpacing:\"0\",fontWeight:\"400\"};function ut(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function lt(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=R.css(e,n+re[a],!0,i)),r?(\"content\"===n&&(u-=R.css(e,\"padding\"+re[a],!0,i)),\"margin\"!==n&&(u-=R.css(e,\"border\"+re[a]+\"Width\",!0,i))):(u+=R.css(e,\"padding\"+re[a],!0,i),\"padding\"!==n?u+=R.css(e,\"border\"+re[a]+\"Width\",!0,i):s+=R.css(e,\"border\"+re[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function ct(e,t,n){var r=Qe(e),i=(!y.boxSizingReliable()||n)&&\"border-box\"===R.css(e,\"boxSizing\",!1,r),o=i,a=Je(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Ge.test(a)){if(!n)return a;a=\"auto\"}return(!y.boxSizingReliable()&&i||\"auto\"===a||!parseFloat(a)&&\"inline\"===R.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===R.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function ht(e,t,n,r,i){return new ht.prototype.init(e,t,n,r,i)}R.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=ot.test(t),l=e.style;if(u||(t=rt(s)),a=R.cssHooks[t]||R.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(R.cssNumber[s]?\"\":\"px\")),y.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return ot.test(t)||(t=rt(s)),(a=R.cssHooks[t]||R.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Je(e,t,r)),\"normal\"===i&&t in st&&(i=st[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),R.each([\"height\",\"width\"],function(e,u){R.cssHooks[u]={get:function(e,t,n){if(t)return!it.test(R.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,u,n):se(e,at,function(){return ct(e,u,n)})},set:function(e,t,n){var r,i=Qe(e),o=!y.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===R.css(e,\"boxSizing\",!1,i),s=n?lt(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-lt(e,u,\"border\",!1,i)-.5)),s&&(r=ne.exec(t))&&\"px\"!==(r[3]||\"px\")&&(e.style[u]=t,t=R.css(e,u)),ut(0,t,s)}}}),R.cssHooks.marginLeft=Ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Je(e,\"marginLeft\"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),R.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){R.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(R.cssHooks[i+o].set=ut)}),R.fn.extend({css:function(e,t){return H(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Qe(e),i=t.length;a<i;a++)o[t[a]]=R.css(e,t[a],!1,r);return o}return void 0!==n?R.style(e,t,n):R.css(e,t)},e,t,1<arguments.length)}}),(R.Tween=ht).prototype={constructor:ht,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||R.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(R.cssNumber[n]?\"\":\"px\")},cur:function(){var e=ht.propHooks[this.prop];return e&&e.get?e.get(this):ht.propHooks._default.get(this)},run:function(e){var t,n=ht.propHooks[this.prop];return this.options.duration?this.pos=t=R.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ht.propHooks._default.set(this),this}},ht.prototype.init.prototype=ht.prototype,ht.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=R.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){R.fx.step[e.prop]?R.fx.step[e.prop](e):1!==e.elem.nodeType||!R.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:R.style(e.elem,e.prop,e.now+e.unit)}}},ht.propHooks.scrollTop=ht.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},R.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},R.fx=ht.prototype.init,R.fx.step={};var ft,pt,dt,mt,vt=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function yt(){pt&&(!1===C.hidden&&T.requestAnimationFrame?T.requestAnimationFrame(yt):T.setTimeout(yt,R.fx.interval),R.fx.tick())}function bt(){return T.setTimeout(function(){ft=void 0}),ft=Date.now()}function _t(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=re[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function wt(e,t,n){for(var r,i=(Et.tweeners[t]||[]).concat(Et.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function Et(o,e,t){var n,a,r=0,i=Et.prefilters.length,s=R.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=ft||bt(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:R.extend({},e),opts:R.extend(!0,{specialEasing:{},easing:R.easing._default},t),originalProperties:e,originalOptions:t,startTime:ft||bt(),duration:t.duration,tweens:[],createTween:function(e,t){var n=R.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=G(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=R.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=Et.prefilters[r].call(l,o,c,l.opts))return b(n.stop)&&(R._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return R.map(c,wt,l),b(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),R.fx.timer(R.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}R.Animation=R.extend(Et,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){for(var n,r=0,i=(e=b(e)?(t=e,[\"*\"]):e.match(D)).length;r<i;r++)n=e[r],Et.tweeners[n]=Et.tweeners[n]||[],Et.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,h=\"width\"in t||\"height\"in t,f=this,p={},d=e.style,m=e.nodeType&&ue(e),v=$.get(e,\"fxshow\");for(r in n.queue||(null==(a=R._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,R.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],vt.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(m?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;m=!0}p[r]=v&&v[r]||R.style(e,r)}if((u=!R.isEmptyObject(t))||!R.isEmptyObject(p))for(r in h&&1===e.nodeType&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],null==(l=v&&v.display)&&(l=$.get(e,\"display\")),\"none\"===(c=R.css(e,\"display\"))&&(l?c=l:(he([e],!0),l=e.style.display||l,c=R.css(e,\"display\"),he([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===R.css(e,\"float\")&&(u||(f.done(function(){d.display=l}),null==l&&(c=d.display,l=\"none\"===c?\"\":c)),d.display=\"inline-block\")),n.overflow&&(d.overflow=\"hidden\",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]})),u=!1,p)u||(v?\"hidden\"in v&&(m=v.hidden):v=$.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!m),m&&he([e],!0),f.done(function(){for(r in m||he([e]),$.remove(e,\"fxshow\"),p)R.style(e,r,p[r])})),u=wt(m?v[r]:0,r,f),r in v||(v[r]=u.start,m&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?Et.prefilters.unshift(e):Et.prefilters.push(e)}}),R.speed=function(e,t,n){var r=e&&\"object\"==typeof e?R.extend({},e):{complete:n||!n&&t||b(e)&&e,duration:e,easing:n&&t||t&&!b(t)&&t};return R.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in R.fx.speeds?r.duration=R.fx.speeds[r.duration]:r.duration=R.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){b(r.old)&&r.old.call(this),r.queue&&R.dequeue(this,r.queue)},r},R.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ue).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){function i(){var e=Et(this,R.extend({},t),a);(o||$.get(this,\"finish\"))&&e.stop(!0)}var o=R.isEmptyObject(t),a=R.speed(e,n,r);return i.finish=i,o||!1===a.queue?this.each(i):this.queue(a.queue,i)},stop:function(i,e,o){function a(e){var t=e.stop;delete e.stop,t(o)}return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=R.timers,r=$.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&gt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||R.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=$.get(this),n=t[a+\"queue\"],r=t[a+\"queueHooks\"],i=R.timers,o=n?n.length:0;for(t.finish=!0,R.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),R.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=R.fn[r];R.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(_t(r,!0),e,t,n)}}),R.each({slideDown:_t(\"show\"),slideUp:_t(\"hide\"),slideToggle:_t(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){R.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),R.timers=[],R.fx.tick=function(){var e,t=0,n=R.timers;for(ft=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||R.fx.stop(),ft=void 0},R.fx.timer=function(e){R.timers.push(e),R.fx.start()},R.fx.interval=13,R.fx.start=function(){pt||(pt=!0,yt())},R.fx.stop=function(){pt=null},R.fx.speeds={slow:600,fast:200,_default:400},R.fn.delay=function(r,e){return r=R.fx&&R.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=T.setTimeout(e,r);t.stop=function(){T.clearTimeout(n)}})},dt=C.createElement(\"input\"),mt=C.createElement(\"select\").appendChild(C.createElement(\"option\")),dt.type=\"checkbox\",y.checkOn=\"\"!==dt.value,y.optSelected=mt.selected,(dt=C.createElement(\"input\")).value=\"t\",dt.type=\"radio\",y.radioValue=\"t\"===dt.value;var Tt,Ct=R.expr.attrHandle;R.fn.extend({attr:function(e,t){return H(this,R.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){R.removeAttr(this,e)})}}),R.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?R.prop(e,t,n):(1===o&&R.isXMLDoc(e)||(i=R.attrHooks[t.toLowerCase()]||(R.expr.match.bool.test(t)?Tt:void 0)),void 0!==n?null===n?void R.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):!(i&&\"get\"in i&&null!==(r=i.get(e,t)))&&null==(r=R.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Tt={set:function(e,t,n){return!1===t?R.removeAttr(e,n):e.setAttribute(n,n),n}},R.each(R.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=Ct[t]||R.find.attr;Ct[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=Ct[o],Ct[o]=r,r=null!=a(e,t,n)?o:null,Ct[o]=i),r}});var Rt=/^(?:input|select|textarea|button)$/i,kt=/^(?:a|area)$/i;function xt(e){return(e.match(D)||[]).join(\" \")}function At(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function Ot(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(D)||[]}R.fn.extend({prop:function(e,t){return H(this,R.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[R.propFix[e]||e]})}}),R.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&R.isXMLDoc(e)||(t=R.propFix[t]||t,i=R.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=R.find.attr(e,\"tabindex\");return t?parseInt(t,10):Rt.test(e.nodeName)||kt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),y.optSelected||(R.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),R.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){R.propFix[this.toLowerCase()]=this}),R.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(b(t))return this.each(function(e){R(this).addClass(t.call(this,e,At(this)))});if((e=Ot(t)).length)for(;n=this[u++];)if(i=At(n),r=1===n.nodeType&&\" \"+xt(i)+\" \"){for(a=0;o=e[a++];)r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=xt(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(b(t))return this.each(function(e){R(this).removeClass(t.call(this,e,At(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((e=Ot(t)).length)for(;n=this[u++];)if(i=At(n),r=1===n.nodeType&&\" \"+xt(i)+\" \"){for(a=0;o=e[a++];)for(;-1<r.indexOf(\" \"+o+\" \");)r=r.replace(\" \"+o+\" \",\" \");i!==(s=xt(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(i,t){var o=typeof i,a=\"string\"==o||Array.isArray(i);return\"boolean\"==typeof t&&a?t?this.addClass(i):this.removeClass(i):b(i)?this.each(function(e){R(this).toggleClass(i.call(this,e,At(this),t),t)}):this.each(function(){var e,t,n,r;if(a)for(t=0,n=R(this),r=Ot(i);e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else void 0!==i&&\"boolean\"!=o||((e=At(this))&&$.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",!e&&!1!==i&&$.get(this,\"__className__\")||\"\"))})},hasClass:function(e){for(var t,n=0,r=\" \"+e+\" \";t=this[n++];)if(1===t.nodeType&&-1<(\" \"+xt(At(t))+\" \").indexOf(r))return!0;return!1}});var St=/\\r/g;R.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=b(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,R(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=R.map(t,function(e){return null==e?\"\":e+\"\"})),(r=R.valHooks[this.type]||R.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=R.valHooks[t.type]||R.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(St,\"\"):null==e?\"\":e:void 0}}),R.extend({valHooks:{option:{get:function(e){var t=R.find.attr(e,\"value\");return null!=t?t:xt(R.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o=\"select-one\"===e.type,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u<s;u++)if(((n=r[u]).selected||u===i)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,\"optgroup\"))){if(t=R(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=R.makeArray(t),a=i.length;a--;)((r=i[a]).selected=-1<R.inArray(R.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),R.each([\"radio\",\"checkbox\"],function(){R.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<R.inArray(R(e).val(),t)}},y.checkOn||(R.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),y.focusin=\"onfocusin\"in T;function Nt(e){e.stopPropagation()}var Pt=/^(?:focusinfocus|focusoutblur)$/;R.extend(R.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,h=[n||C],f=g.call(e,\"type\")?e.type:e,p=g.call(e,\"namespace\")?e.namespace.split(\".\"):[],d=c=o=n=n||C;if(3!==n.nodeType&&8!==n.nodeType&&!Pt.test(f+R.event.triggered)&&(-1<f.indexOf(\".\")&&(f=(p=f.split(\".\")).shift(),p.sort()),s=f.indexOf(\":\")<0&&\"on\"+f,(e=e[R.expando]?e:new R.Event(f,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=p.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:R.makeArray(t,[e]),l=R.event.special[f]||{},r||!l.trigger||!1!==l.trigger.apply(n,t))){if(!r&&!l.noBubble&&!m(n)){for(a=l.delegateType||f,Pt.test(a+f)||(d=d.parentNode);d;d=d.parentNode)h.push(d),o=d;o===(n.ownerDocument||C)&&h.push(o.defaultView||o.parentWindow||T)}for(i=0;(d=h[i++])&&!e.isPropagationStopped();)c=d,e.type=1<i?a:l.bindType||f,(u=($.get(d,\"events\")||{})[e.type]&&$.get(d,\"handle\"))&&u.apply(d,t),(u=s&&d[s])&&u.apply&&Q(d)&&(e.result=u.apply(d,t),!1===e.result&&e.preventDefault());return e.type=f,r||e.isDefaultPrevented()||l._default&&!1!==l._default.apply(h.pop(),t)||!Q(n)||s&&b(n[f])&&!m(n)&&((o=n[s])&&(n[s]=null),R.event.triggered=f,e.isPropagationStopped()&&c.addEventListener(f,Nt),n[f](),e.isPropagationStopped()&&c.removeEventListener(f,Nt),R.event.triggered=void 0,o&&(n[s]=o)),e.result}},simulate:function(e,t,n){var r=R.extend(new R.Event,n,{type:e,isSimulated:!0});R.event.trigger(r,null,t)}}),R.fn.extend({trigger:function(e,t){return this.each(function(){R.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return R.event.trigger(e,t,n,!0)}}),y.focusin||R.each({focus:\"focusin\",blur:\"focusout\"},function(n,r){function i(e){R.event.simulate(r,e.target,R.event.fix(e))}R.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=$.access(e,r);t||e.addEventListener(n,i,!0),$.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=$.access(e,r)-1;t?$.access(e,r,t):(e.removeEventListener(n,i,!0),$.remove(e,r))}}});var Lt=T.location,Mt=Date.now(),jt=/\\?/;R.parseXML=function(e){var t;if(!e||\"string\"!=typeof e)return null;try{t=(new T.DOMParser).parseFromString(e,\"text/xml\")}catch(e){t=void 0}return t&&!t.getElementsByTagName(\"parsererror\").length||R.error(\"Invalid XML: \"+e),t};var Dt=/\\[\\]$/,It=/\\r?\\n/g,Ft=/^(?:submit|button|image|reset|file)$/i,Bt=/^(?:input|select|textarea|keygen)/i;R.param=function(e,t){function n(e,t){var n=b(t)?t():t;i[i.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)}var r,i=[];if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!R.isPlainObject(e))R.each(e,function(){n(this.name,this.value)});else for(r in e)!function n(r,e,i,o){var t;if(Array.isArray(e))R.each(e,function(e,t){i||Dt.test(r)?o(r,t):n(r+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,i,o)});else if(i||\"object\"!==w(e))o(r,e);else for(t in e)n(r+\"[\"+t+\"]\",e[t],i,o)}(r,e[r],t,n);return i.join(\"&\")},R.fn.extend({serialize:function(){return R.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=R.prop(this,\"elements\");return e?R.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!R(this).is(\":disabled\")&&Bt.test(this.nodeName)&&!Ft.test(e)&&(this.checked||!fe.test(e))}).map(function(e,t){var n=R(this).val();return null==n?null:Array.isArray(n)?R.map(n,function(e){return{name:t.name,value:e.replace(It,\"\\r\\n\")}}):{name:t.name,value:n.replace(It,\"\\r\\n\")}}).get()}});var Ut=/%20/g,zt=/#.*$/,qt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Vt=/^(?:GET|HEAD)$/,Wt=/^\\/\\//,Yt={},Gt={},Qt=\"*/\".concat(\"*\"),Kt=C.createElement(\"a\");function $t(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(D)||[];if(b(t))for(;n=i[r++];)\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Xt(t,i,o,a){var s={},u=t===Gt;function l(e){var r;return s[e]=!0,R.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Jt(e,t){var n,r,i=R.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r=r||{})[n]=t[n]);return r&&R.extend(!0,e,r),e}Kt.href=Lt.href,R.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Lt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Lt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Qt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":R.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Jt(Jt(e,R.ajaxSettings),t):Jt(R.ajaxSettings,e)},ajaxPrefilter:$t(Yt),ajaxTransport:$t(Gt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,h,f,n,p,r,d,m,i,o,v=R.ajaxSetup({},t),g=v.context||v,y=v.context&&(g.nodeType||g.jquery)?R(g):R.event,b=R.Deferred(),_=R.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",E={readyState:0,getResponseHeader:function(e){var t;if(d){if(!n)for(n={};t=Ht.exec(f);)n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2]);t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return d?f:null},setRequestHeader:function(e,t){return null==d&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==d&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(d)E.always(e[E.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(b.promise(E),v.url=((e||v.url||Lt.href)+\"\").replace(Wt,Lt.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(D)||[\"\"],null==v.crossDomain){r=C.createElement(\"a\");try{r.href=v.url,r.href,v.crossDomain=Kt.protocol+\"//\"+Kt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=R.param(v.data,v.traditional)),Xt(Yt,v,t,E),d)return E;for(i in(m=R.event&&v.global)&&0==R.active++&&R.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Vt.test(v.type),h=v.url.replace(zt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Ut,\"+\")):(o=v.url.slice(h.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(h+=(jt.test(h)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(h=h.replace(qt,\"$1\"),o=(jt.test(h)?\"&\":\"?\")+\"_=\"+Mt+++o),v.url=h+o),v.ifModified&&(R.lastModified[h]&&E.setRequestHeader(\"If-Modified-Since\",R.lastModified[h]),R.etag[h]&&E.setRequestHeader(\"If-None-Match\",R.etag[h])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&E.setRequestHeader(\"Content-Type\",v.contentType),E.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+Qt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)E.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(g,E,v)||d))return E.abort();if(u=\"abort\",_.add(v.complete),E.done(v.success),E.fail(v.error),c=Xt(Gt,v,t,E)){if(E.readyState=1,m&&y.trigger(\"ajaxSend\",[E,v]),d)return E;v.async&&0<v.timeout&&(p=T.setTimeout(function(){E.abort(\"timeout\")},v.timeout));try{d=!1,c.send(a,l)}catch(e){if(d)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;d||(d=!0,p&&T.clearTimeout(p),c=void 0,f=r||\"\",E.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;\"*\"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a=a||i}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,E,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,E,i),i?(v.ifModified&&((u=E.getResponseHeader(\"Last-Modified\"))&&(R.lastModified[h]=u),(u=E.getResponseHeader(\"etag\"))&&(R.etag[h]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),E.status=e,E.statusText=(t||l)+\"\",i?b.resolveWith(g,[o,l,E]):b.rejectWith(g,[E,l,a]),E.statusCode(w),w=void 0,m&&y.trigger(i?\"ajaxSuccess\":\"ajaxError\",[E,v,i?o:a]),_.fireWith(g,[E,l]),m&&(y.trigger(\"ajaxComplete\",[E,v]),--R.active||R.event.trigger(\"ajaxStop\")))}return E},getJSON:function(e,t,n){return R.get(e,t,n,\"json\")},getScript:function(e,t){return R.get(e,void 0,t,\"script\")}}),R.each([\"get\",\"post\"],function(e,i){R[i]=function(e,t,n,r){return b(t)&&(r=r||n,n=t,t=void 0),R.ajax(R.extend({url:e,type:i,dataType:r,data:t,success:n},R.isPlainObject(e)&&e))}}),R._evalUrl=function(e,t){return R.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){R.globalEval(e,t)}})},R.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=R(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return b(n)?this.each(function(e){R(this).wrapInner(n.call(this,e))}):this.each(function(){var e=R(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=b(t);return this.each(function(e){R(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){R(this).replaceWith(this.childNodes)}),this}}),R.expr.pseudos.hidden=function(e){return!R.expr.pseudos.visible(e)},R.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},R.ajaxSettings.xhr=function(){try{return new T.XMLHttpRequest}catch(e){}};var Zt={0:200,1223:204},en=R.ajaxSettings.xhr();y.cors=!!en&&\"withCredentials\"in en,y.ajax=en=!!en,R.ajaxTransport(function(i){var o,a;if(y.cors||en&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Zt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&T.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),R.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),R.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return R.globalEval(e),e}}}),R.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),R.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=R(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var tn,nn=[],rn=/(=)\\?(?=&|$)|\\?\\?/;R.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=nn.pop()||R.expando+\"_\"+Mt++;return this[e]=!0,e}}),R.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(rn.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&rn.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(rn,\"$1\"+r):!1!==e.jsonp&&(e.url+=(jt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||R.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?R(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,nn.push(r)),o&&b(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((tn=C.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===tn.childNodes.length),R.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=O.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&R(o).remove(),R.merge([],i.childNodes)));var r,i,o},R.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=xt(e.slice(s)),e=e.slice(0,s)),b(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&R.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?R(\"<div>\").append(R.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},R.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){R.fn[t]=function(e){return this.on(t,e)}}),R.expr.pseudos.animated=function(t){return R.grep(R.timers,function(e){return t===e.elem}).length},R.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=R.css(e,\"position\"),c=R(e),h={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=R.css(e,\"top\"),u=R.css(e,\"left\"),i=(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(u)||0),b(t)&&(t=t.call(e,n,R.extend({},s))),null!=t.top&&(h.top=t.top-s.top+a),null!=t.left&&(h.left=t.left-s.left+i),\"using\"in t?t.using.call(e,h):c.css(h)}},R.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){R.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===R.css(r,\"position\"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&\"static\"===R.css(e,\"position\");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=R(e).offset()).top+=R.css(e,\"borderTopWidth\",!0),i.left+=R.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-R.css(r,\"marginTop\",!0),left:t.left-i.left-R.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&\"static\"===R.css(e,\"position\");)e=e.offsetParent;return e||ie})}}),R.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;R.fn[t]=function(e){return H(this,function(e,t,n){var r;return m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[i]:e[t]:void(r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),R.each([\"top\",\"left\"],function(e,n){R.cssHooks[n]=Ze(y.pixelPosition,function(e,t){if(t)return t=Je(e,n),Ge.test(t)?R(e).position()[n]+\"px\":t})}),R.each({Height:\"height\",Width:\"width\"},function(a,s){R.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){R.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return H(this,function(e,t,n){var r;return m(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?R.css(e,t,i):R.style(e,t,n,i)},s,n?e:void 0,n)}})}),R.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){R.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),R.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),R.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),R.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),b(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||R.guid++,i},R.holdReady=function(e){e?R.readyWait++:R.ready(!0)},R.isArray=Array.isArray,R.parseJSON=JSON.parse,R.nodeName=A,R.isFunction=b,R.isWindow=m,R.camelCase=G,R.type=w,R.now=Date.now,R.isNumeric=function(e){var t=R.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return R});var on=T.jQuery,an=T.$;return R.noConflict=function(e){return T.$===R&&(T.$=an),e&&T.jQuery===R&&(T.jQuery=on),R},e||(T.jQuery=T.$=R),R}),function(){var e,f,t;mainContext=this,function(){function l(e,t){var n=e,r=(r=c[n])||c[n+=\"/index\"],i=h[n];if(void 0!==i)return i;i=h[n]={},r||function(e,t){throw t?new Error(\"Could not find module \"+e+\" required by: \"+t):new Error(\"Could not find module \"+e)}(e,t);for(var o=r.deps,a=r.callback,s=new Array(o.length),u=0;u<o.length;u++)\"exports\"===o[u]?s[u]=i:\"require\"===o[u]?s[u]=f:s[u]=l(o[u],n);return a.apply(this,s),i}var c,h;\"undefined\"==typeof window&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process)||(t=this.Ember=this.Ember||{}),void 0===t&&(t={}),void 0===t.__loader?(c=Object.create(null),h=Object.create(null),e=function(e,t,n){var r={};n?(r.deps=t,r.callback=n):(r.deps=[],r.callback=t),c[e]=r},((f=function(e){return l(e,null)}).default=f).has=function(e){return Boolean(c[e])||Boolean(c[e+\"/index\"])},f._eak_seen=c,t.__loader={define:e,require:f,registry:c}):(e=t.__loader.define,f=t.__loader.require)}(),e(\"@ember/-internals/browser-environment\",[\"exports\"],function(e){\"use strict\";e.hasDOM=e.isFirefox=e.isChrome=e.userAgent=e.history=e.location=e.window=void 0;var t=\"object\"==typeof self&&null!==self&&self.Object===Object&&\"undefined\"!=typeof Window&&self.constructor===Window&&\"object\"==typeof document&&null!==document&&self.document===document&&\"object\"==typeof location&&null!==location&&self.location===location&&\"object\"==typeof history&&null!==history&&self.history===history&&\"object\"==typeof navigator&&null!==navigator&&self.navigator===navigator&&\"string\"==typeof navigator.userAgent,n=(e.hasDOM=t)?self:null;e.window=n;var r=t?self.location:null;e.location=r;var i=t?self.history:null;e.history=i;var o=t?self.navigator.userAgent:\"Lynx (textmode)\";e.userAgent=o;var a=t&&(Boolean(n.chrome)&&!n.opera);e.isChrome=a;var s=t&&\"undefined\"!=typeof InstallTrigger;e.isFirefox=s}),e(\"@ember/-internals/console/index\",[\"exports\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,t,n){\"use strict\";e.default=void 0;var r;n.LOGGER&&(r={log:function(){var e;return(e=console).log.apply(e,arguments)},warn:function(){var e;return(e=console).warn.apply(e,arguments)},error:function(){var e;return(e=console).error.apply(e,arguments)},info:function(){var e;return(e=console).info.apply(e,arguments)},debug:function(){var e,t;return console.debug?(t=console).debug.apply(t,arguments):(e=console).info.apply(e,arguments)},assert:function(){var e;return(e=console).assert.apply(e,arguments)}}),e.default=r}),e(\"@ember/-internals/container\",[\"exports\",\"@ember/-internals/owner\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/polyfills\"],function(e,a,s,t,u){\"use strict\";e.privatize=function(e){var t=e[0],n=y[t];if(n)return n;var r=t.split(\":\"),i=r[0],o=r[1];return y[t]=(0,s.intern)(i+\":\"+o+\"-\"+b)},e.FACTORY_FOR=e.Container=e.Registry=void 0;var n=function(){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.registry=e,this.owner=t.owner||null,this.cache=(0,s.dictionary)(t.cache||null),this.factoryManagerCache=(0,s.dictionary)(t.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}var t=e.prototype;return t.lookup=function(e,t){return h(this,this.registry.normalize(e),t)},t.destroy=function(){i(this),this.isDestroying=!0},t.finalizeDestroy=function(){o(this),this.isDestroyed=!0},t.reset=function(e){var t,n,r;this.isDestroyed||(void 0===e?(i(this),o(this)):(n=(t=this).registry.normalize(e),r=t.cache[n],delete t.factoryManagerCache[n],r&&(delete t.cache[n],r.destroy&&r.destroy())))},t.ownerInjection=function(){var e={};return e[a.OWNER]=this.owner,e},t.factoryFor=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=this.registry.normalize(e);if(!n.source&&!n.namespace||(r=this.registry.expandLocalLookup(e,n)))return f(this,r,e)},e}();function l(e,t){return!1!==e.registry.getOption(t,\"singleton\")}function c(e,t){return!1!==e.registry.getOption(t,\"instantiate\")}function h(e,t,n){var r=2<arguments.length&&void 0!==n?n:{},i=t;if(!r.source&&!r.namespace||(i=e.registry.expandLocalLookup(t,r))){if(!1!==r.singleton){var o=e.cache[i];if(void 0!==o)return o}return function(e,t,n,r){var i=f(e,t,n);if(void 0===i)return;if(function(e,t,n){var r=n.instantiate;return!1!==n.singleton&&!1!==r&&l(e,t)&&c(e,t)}(e,n,r))return e.cache[t]=i.create();if(function(e,t,n){var r=n.instantiate,i=n.singleton;return!1!==r&&(!1!==i||l(e,t))&&c(e,t)}(e,n,r))return i.create();if(function(e,t,n){var r=n.instantiate;return!1!==n.singleton&&!r&&l(e,t)&&!c(e,t)}(e,n,r)||function(e,t,n){var r=n.instantiate,i=n.singleton;return!(!1!==r||!1!==i&&l(e,t)||c(e,t))}(e,n,r))return i.class;throw new Error(\"Could not create factory\")}(e,i,t,r)}}function f(e,t,n){var r=e.factoryManagerCache[t];if(void 0!==r)return r;var i=e.registry.resolve(t);if(void 0!==i){0;var o=new v(e,i,n,t);return e.factoryManagerCache[t]=o}}function p(e,t,n){var r=n.injections;void 0===r&&(r=n.injections={});for(var i=0;i<t.length;i++){var o=t[i],a=o.property,s=o.specifier,u=o.source;r[a]=u?h(e,s,{source:u}):h(e,s),n.isDynamic||(n.isDynamic=!l(e,s))}}function d(e,t){var n,r,i,o,a=e.registry,s=t.split(\":\")[0],u=a.getTypeInjections(s),l=a.getInjections(t);return n=e,i=l,o={injections:void 0,isDynamic:!1},void 0!==(r=u)&&p(n,r,o),void 0!==i&&p(n,i,o),o}function i(e){for(var t=e.cache,n=Object.keys(t),r=0;r<n.length;r++){var i=t[n[r]];i.destroy&&i.destroy()}}function o(e){e.cache=(0,s.dictionary)(null),e.factoryManagerCache=(0,s.dictionary)(null)}e.Container=n;var m=new WeakMap;e.FACTORY_FOR=m;var v=function(){function e(e,t,n,r){this.container=e,this.owner=e.owner,this.class=t,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0,m.set(this,this)}var t=e.prototype;return t.toString=function(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString},t.create=function(e){var t,n,r=this.injections;void 0===r&&(r=n=(t=d(this.container,this.normalizedName)).injections,t.isDynamic||(this.injections=n));var i=r;if(void 0!==e&&(i=(0,u.assign)({},r,e)),!this.class.create)throw new Error(\"Failed to create an instance of '\"+this.normalizedName+\"'. Most likely an improperly defined class or an invalid module export.\");\"function\"==typeof this.class._initFactory?this.class._initFactory(this):(void 0!==e&&void 0!==i||(i=(0,u.assign)({},i)),(0,a.setOwner)(i,this.owner));var o=this.class.create(i);return m.set(o,this),o},e}(),r=/^[^:]+:[^:]+$/,g=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.fallback=e.fallback||null,this.resolver=e.resolver||null,this.registrations=(0,s.dictionary)(e.registrations||null),this._typeInjections=(0,s.dictionary)(null),this._injections=(0,s.dictionary)(null),this._localLookupCache=Object.create(null),this._normalizeCache=(0,s.dictionary)(null),this._resolveCache=(0,s.dictionary)(null),this._failSet=new Set,this._options=(0,s.dictionary)(null),this._typeOptions=(0,s.dictionary)(null)}var t=e.prototype;return t.container=function(e){return new n(this,e)},t.register=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:{},i=this.normalize(e);this._failSet.delete(i),this.registrations[i]=t,this._options[i]=r},t.unregister=function(e){var t=this.normalize(e);this._localLookupCache=Object.create(null),delete this.registrations[t],delete this._resolveCache[t],delete this._options[t],this._failSet.delete(t)},t.resolve=function(e,t){var n,r=function(e,t,n){var r=t;if(void 0!==n&&(n.source||n.namespace)&&!(r=e.expandLocalLookup(t,n)))return;var i,o=e._resolveCache[r];if(void 0!==o)return o;if(e._failSet.has(r))return;e.resolver&&(i=e.resolver.resolve(r));void 0===i&&(i=e.registrations[r]);void 0===i?e._failSet.add(r):e._resolveCache[r]=i;return i}(this,this.normalize(e),t);return void 0===r&&null!==this.fallback&&(r=(n=this.fallback).resolve.apply(n,arguments)),r},t.describe=function(e){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(e):null!==this.fallback?this.fallback.describe(e):e},t.normalizeFullName=function(e){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(e):null!==this.fallback?this.fallback.normalizeFullName(e):e},t.normalize=function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this.normalizeFullName(e))},t.makeToString=function(e,t){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(e,t):null!==this.fallback?this.fallback.makeToString(e,t):e.toString()},t.has=function(e,t){if(!this.isValidFullName(e))return!1;var n,r,i,o,a=t&&t.source&&this.normalize(t.source),s=t&&t.namespace||void 0;return r=(n=this).normalize(e),i=a,o=s,void 0!==n.resolve(r,{source:i,namespace:o})},t.optionsForType=function(e,t){this._typeOptions[e]=t},t.getOptionsForType=function(e){var t=this._typeOptions[e];return void 0===t&&null!==this.fallback&&(t=this.fallback.getOptionsForType(e)),t},t.options=function(e,t){var n=this.normalize(e);this._options[n]=t},t.getOptions=function(e){var t=this.normalize(e),n=this._options[t];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(e)),n},t.getOption=function(e,t){var n=this._options[e];if(void 0!==n&&void 0!==n[t])return n[t];var r=e.split(\":\")[0];return(n=this._typeOptions[r])&&void 0!==n[t]?n[t]:null!==this.fallback?this.fallback.getOption(e,t):void 0},t.typeInjection=function(e,t,n){n.split(\":\")[0];(this._typeInjections[e]||(this._typeInjections[e]=[])).push({property:t,specifier:n})},t.injection=function(e,t,n){var r=this.normalize(n);if(-1===e.indexOf(\":\"))return this.typeInjection(e,t,r);var i=this.normalize(e);(this._injections[i]||(this._injections[i]=[])).push({property:t,specifier:r})},t.knownForType=function(e){for(var t,n,r=(0,s.dictionary)(null),i=Object.keys(this.registrations),o=0;o<i.length;o++){var a=i[o];a.split(\":\")[0]===e&&(r[a]=!0)}return null!==this.fallback&&(t=this.fallback.knownForType(e)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(e)),(0,u.assign)({},t,r,n)},t.isValidFullName=function(e){return r.test(e)},t.getInjections=function(e){var t,n=this._injections[e];return null===this.fallback||void 0!==(t=this.fallback.getInjections(e))&&(n=void 0===n?t:n.concat(t)),n},t.getTypeInjections=function(e){var t,n=this._typeInjections[e];return null===this.fallback||void 0!==(t=this.fallback.getTypeInjections(e))&&(n=void 0===n?t:n.concat(t)),n},t.expandLocalLookup=function(e,t){if(null!==this.resolver&&this.resolver.expandLocalLookup){var n=this.normalize(e),r=this.normalize(t.source);return function(e,t,n,r){var i=e._localLookupCache,o=i[t];o=o||(i[t]=Object.create(null));var a=r||n,s=o[a];if(void 0!==s)return s;var u=e.resolver.expandLocalLookup(t,n,r);return o[a]=u}(this,n,r,t.namespace)}return null!==this.fallback?this.fallback.expandLocalLookup(e,t):null},e}();e.Registry=g;var y=(0,s.dictionary)(null),b=(\"\"+Math.random()+Date.now()).replace(\".\",\"\")}),e(\"@ember/-internals/environment\",[\"exports\",\"@ember/deprecated-features\"],function(e,c){\"use strict\";function t(e){return e&&e.Object===Object?e:void 0}e.getLookup=function(){return o.lookup},e.setLookup=function(e){o.lookup=e},e.getENV=function(){return h},e.ENV=e.context=e.global=void 0;var n,r=t((n=\"object\"==typeof global&&global)&&void 0===n.nodeType?n:void 0)||t(\"object\"==typeof self&&self)||t(\"object\"==typeof window&&window)||\"undefined\"!=typeof mainContext&&mainContext||new Function(\"return this\")();e.global=r;var i,o=void 0===(i=r.Ember)?{imports:r,exports:r,lookup:r}:{imports:i.imports||r,exports:i.exports||r,lookup:i.lookup||r};e.context=o;var h={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!0,Function:!0,String:!0},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_APPLICATION_TEMPLATE_WRAPPER:!0,_TEMPLATE_ONLY_GLIMMER_COMPONENTS:!1,_JQUERY_INTEGRATION:!0,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,EMBER_LOAD_HOOKS:{},FEATURES:{}};e.ENV=h,function(e){if(\"object\"==typeof e&&null!==e){for(var t in e){var n;e.hasOwnProperty(t)&&\"EXTEND_PROTOTYPES\"!==t&&\"EMBER_LOAD_HOOKS\"!==t&&(!0===(n=h[t])?h[t]=!1!==e[t]:!1===n&&(h[t]=!0===e[t]))}var r,i=e.EXTEND_PROTOTYPES;void 0!==i&&(\"object\"==typeof i&&null!==i?(h.EXTEND_PROTOTYPES.String=!1!==i.String,c.FUNCTION_PROTOTYPE_EXTENSIONS&&(h.EXTEND_PROTOTYPES.Function=!1!==i.Function),h.EXTEND_PROTOTYPES.Array=!1!==i.Array):(r=!1!==i,h.EXTEND_PROTOTYPES.String=r,c.FUNCTION_PROTOTYPE_EXTENSIONS&&(h.EXTEND_PROTOTYPES.Function=r),h.EXTEND_PROTOTYPES.Array=r));var o,a=e.EMBER_LOAD_HOOKS;if(\"object\"==typeof a&&null!==a)for(var s in a){a.hasOwnProperty(s)&&(o=a[s],Array.isArray(o)&&(h.EMBER_LOAD_HOOKS[s]=o.filter(function(e){return\"function\"==typeof e})))}var u=e.FEATURES;if(\"object\"==typeof u&&null!==u)for(var l in u)u.hasOwnProperty(l)&&(h.FEATURES[l]=!0===u[l])}}(r.EmberENV||r.ENV)}),e(\"@ember/-internals/error-handling/index\",[\"exports\"],function(e){\"use strict\";var t;e.getOnerror=function(){return t},e.setOnerror=function(e){t=e},e.getDispatchOverride=function(){return n},e.setDispatchOverride=function(e){n=e},e.onErrorTarget=void 0;var n,r={get onerror(){return t}};e.onErrorTarget=r}),e(\"@ember/-internals/extension-support/index\",[\"exports\",\"@ember/-internals/extension-support/lib/data_adapter\",\"@ember/-internals/extension-support/lib/container_debug_adapter\"],function(e,t,n){\"use strict\";Object.defineProperty(e,\"DataAdapter\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"ContainerDebugAdapter\",{enumerable:!0,get:function(){return n.default}})}),e(\"@ember/-internals/extension-support/lib/container_debug_adapter\",[\"exports\",\"@ember/string\",\"@ember/-internals/runtime\"],function(e,o,a){\"use strict\";e.default=void 0;var t=a.Object.extend({resolver:null,canCatalogEntriesByType:function(e){return\"model\"!==e&&\"template\"!==e},catalogEntriesByType:function(e){var t=(0,a.A)(a.Namespace.NAMESPACES),r=(0,a.A)(),i=new RegExp((0,o.classify)(e)+\"$\");return t.forEach(function(e){for(var t in e){var n;e.hasOwnProperty(t)&&i.test(t)&&(n=e[t],\"class\"===(0,a.typeOf)(n)&&r.push((0,o.dasherize)(t.replace(i,\"\"))))}}),r}});e.default=t}),e(\"@ember/-internals/extension-support/lib/data_adapter\",[\"exports\",\"@ember/-internals/owner\",\"@ember/runloop\",\"@ember/-internals/metal\",\"@ember/string\",\"@ember/-internals/runtime\"],function(e,n,s,f,o,p){\"use strict\";e.default=void 0;var t=p.Object.extend({init:function(){this._super.apply(this,arguments),this.releaseMethods=(0,p.A)()},containerDebugAdapter:void 0,attributeLimit:3,acceptsModelName:!0,releaseMethods:(0,p.A)(),getFilters:function(){return(0,p.A)()},watchModelTypes:function(e,r){var i=this,t=this.getModelTypes(),o=(0,p.A)();e(t.map(function(e){var t=e.klass,n=i.wrapModelType(t,e.name);return o.push(i.observeModelType(e.name,r)),n}));var n=function(){o.forEach(function(e){return e()}),i.releaseMethods.removeObject(n)};return this.releaseMethods.pushObject(n),n},_nameToClass:function(e){var t;return\"string\"==typeof e&&(e=(t=(0,n.getOwner)(this).factoryFor(\"model:\"+e))&&t.class),e},watchRecords:function(e,s,t,u){var n,l=this,c=(0,p.A)(),r=this._nameToClass(e),i=this.getRecords(r,e);function h(e){t([e])}var o=i.map(function(e){return c.push(l.observeRecord(e,h)),l.wrapRecord(e)}),a={didChange:function(e,t,n,r){for(var i=t;i<t+r;i++){var o=(0,f.objectAt)(e,i),a=l.wrapRecord(o);c.push(l.observeRecord(o,h)),s([a])}n&&u(t,n)},willChange:function(){return this}};return(0,f.addArrayObserver)(i,this,a),n=function(){c.forEach(function(e){return e()}),(0,f.removeArrayObserver)(i,l,a),l.releaseMethods.removeObject(n)},s(o),this.releaseMethods.pushObject(n),n},willDestroy:function(){this._super.apply(this,arguments),this.releaseMethods.forEach(function(e){return e()})},detect:function(){return!1},columnsForType:function(){return(0,p.A)()},observeModelType:function(e,t){var n=this,r=this._nameToClass(e),i=this.getRecords(r,e);function o(){t([this.wrapModelType(r,e)])}var a={didChange:function(e,t,n,r){(0<n||0<r)&&(0,s.scheduleOnce)(\"actions\",this,o)},willChange:function(){return this}};(0,f.addArrayObserver)(i,this,a);return function(){return(0,f.removeArrayObserver)(i,n,a)}},wrapModelType:function(e,t){var n=this.getRecords(e,t);return{name:t,count:(0,f.get)(n,\"length\"),columns:this.columnsForType(e),object:e}},getModelTypes:function(){var t=this,e=this.get(\"containerDebugAdapter\"),n=e.canCatalogEntriesByType(\"model\")?e.catalogEntriesByType(\"model\"):this._getObjectsOnNamespaces();return n=(0,p.A)(n).map(function(e){return{klass:t._nameToClass(e),name:e}}),n=(0,p.A)(n).filter(function(e){return t.detect(e.klass)}),(0,p.A)(n)},_getObjectsOnNamespaces:function(){var r=this,e=(0,p.A)(p.Namespace.NAMESPACES),i=(0,p.A)();return e.forEach(function(e){for(var t in e){var n;e.hasOwnProperty(t)&&r.detect(e[t])&&(n=(0,o.dasherize)(t),i.push(n))}}),i},getRecords:function(){return(0,p.A)()},wrapRecord:function(e){var t={object:e};return t.columnValues=this.getRecordColumnValues(e),t.searchKeywords=this.getRecordKeywords(e),t.filterValues=this.getRecordFilterValues(e),t.color=this.getRecordColor(e),t},getRecordColumnValues:function(){return{}},getRecordKeywords:function(){return(0,p.A)()},getRecordFilterValues:function(){return{}},getRecordColor:function(){return null},observeRecord:function(){return function(){}}});e.default=t}),e(\"@ember/-internals/glimmer\",[\"exports\",\"node-module\",\"ember-babel\",\"@ember/polyfills\",\"@ember/-internals/owner\",\"@glimmer/opcode-compiler\",\"@ember/-internals/runtime\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@glimmer/reference\",\"@ember/-internals/metal\",\"@ember/debug\",\"@glimmer/runtime\",\"@glimmer/util\",\"@ember/-internals/views\",\"@ember/-internals/browser-environment\",\"@ember/instrumentation\",\"@ember/service\",\"@ember/-internals/environment\",\"@ember/string\",\"@glimmer/wire-format\",\"@ember/-internals/container\",\"rsvp\",\"@glimmer/node\",\"@ember/-internals/routing\",\"@ember/deprecated-features\"],function(e,r,s,c,a,i,o,m,l,h,f,t,p,d,v,u,g,n,y,b,_,w,E,T,C,R){\"use strict\";function k(){var e=D([\"component:-default\"]);return k=function(){return e},e}function x(){var e=D([\"template-compiler:main\"]);return x=function(){return e},e}function A(){var e=D([\"template-compiler:main\"]);return A=function(){return e},e}function O(){var e=D([\"template-compiler:main\"]);return O=function(){return e},e}function S(){var e=D([\"template:components/-default\"]);return S=function(){return e},e}function N(){var e=D([\"template:-root\"]);return N=function(){return e},e}function P(){var e=D([\"template:-root\"]);return P=function(){return e},e}function L(){var e=D([\"component:-default\"]);return L=function(){return e},e}function M(){var e=D([\"template:components/-default\"]);return M=function(){return e},e}function j(){var e=D([\"template:components/-default\"]);return j=function(){return e},e}function D(e,t){return t=t||e.slice(0),e.raw=t,e}var I;function F(e){return new B((0,i.templateFactory)(e))}e.template=F,e.helper=V,e.escapeExpression=function(e){if(\"string\"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return\"\";if(!e)return String(e);e=String(e)}return rt.test(e)?e.replace(it,ot):e},e.htmlSafe=at,e.isHTMLSafe=st,e._resetRenderers=function(){Gt.length=0},e.renderSettled=function(){null===$t&&($t=E.default.defer(),(0,l.getCurrentRunLoop)()||l.backburner.schedule(\"actions\",null,Kt));return $t.promise},e.getTemplate=function(e){if(tn.hasOwnProperty(e))return tn[e]},e.setTemplate=function(e,t){return tn[e]=t},e.hasTemplate=function(e){return tn.hasOwnProperty(e)},e.getTemplates=function(){return tn},e.setTemplates=function(e){tn=e},e.setupEngineRegistry=function(e){e.register(\"view:-outlet\",Lr),e.register(\"template:-outlet\",Nr),e.injection(\"view:-outlet\",\"template\",\"template:-outlet\"),e.injection(\"service:-dom-changes\",\"document\",\"service:-document\"),e.injection(\"service:-dom-tree-construction\",\"document\",\"service:-document\"),e.register((0,w.privatize)(S()),Or),e.register(\"service:-glimmer-environment\",ct),e.register((0,w.privatize)(O()),Ar),e.injection((0,w.privatize)(A()),\"environment\",\"-environment:main\"),e.injection(\"template\",\"compiler\",(0,w.privatize)(x())),e.optionsForType(\"helper\",{instantiate:!1}),e.register(\"helper:loc\",dn),e.register(\"component:-text-field\",Te),e.register(\"component:-checkbox\",we),e.register(\"component:link-to\",Se),e.register(\"component:input\",pn),e.register(\"template:components/input\",Sr),e.register(\"component:textarea\",Ce);y.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS||e.register((0,w.privatize)(k()),be)},e.setupApplicationRegistry=function(e){e.injection(\"service:-glimmer-environment\",\"appendOperations\",\"service:-dom-tree-construction\"),e.injection(\"renderer\",\"env\",\"service:-glimmer-environment\"),e.register(\"service:-dom-builder\",{create:function(e){switch(e.bootOptions._renderMode){case\"serialize\":return T.serializeBuilder.bind(null);case\"rehydrate\":return p.rehydrationBuilder.bind(null);default:return p.clientBuilder.bind(null)}}}),e.injection(\"service:-dom-builder\",\"bootOptions\",\"-environment:main\"),e.injection(\"renderer\",\"builder\",\"service:-dom-builder\"),e.register((0,w.privatize)(P()),U),e.injection(\"renderer\",\"rootTemplate\",(0,w.privatize)(N())),e.register(\"renderer:-dom\",en),e.register(\"renderer:-inert\",Zt),u.hasDOM&&e.injection(\"service:-glimmer-environment\",\"updateOperations\",\"service:-dom-changes\");e.register(\"service:-dom-changes\",{create:function(e){var t=e.document;return new p.DOMChanges(t)}}),e.register(\"service:-dom-tree-construction\",{create:function(e){var t=e.document;return new(u.hasDOM?p.DOMTreeConstruction:T.NodeDOMTreeConstruction)(t)}})},e._registerMacros=function(e){Er.push(e)},e.iterableFor=Me,e.capabilities=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};var n=!0;0;return{asyncLifeCycleCallbacks:Boolean(t.asyncLifecycleCallbacks),destructor:Boolean(t.destructor),updateHook:n}},e.setComponentManager=function(t,e){var n;n=R.COMPONENT_MANAGER_STRING_LOOKUP&&\"string\"==typeof t?function(e){return e.lookup(\"component-manager:\"+t)}:t;return hn({factory:n,internal:!1,type:\"component\"},e)},e.getComponentManager=function(e){var t=fn(e);return t&&!t.internal&&\"component\"===t.type?t.factory:void 0},e.setModifierManager=function(e,t){return hn({factory:e,internal:!1,type:\"modifier\"},t)},e.getModifierManager=Tr,e.modifierCapabilties=function(e,t){return{}},Object.defineProperty(e,\"DOMChanges\",{enumerable:!0,get:function(){return p.DOMChanges}}),Object.defineProperty(e,\"DOMTreeConstruction\",{enumerable:!0,get:function(){return p.DOMTreeConstruction}}),Object.defineProperty(e,\"isSerializationFirstNode\",{enumerable:!0,get:function(){return p.isSerializationFirstNode}}),Object.defineProperty(e,\"NodeDOMTreeConstruction\",{enumerable:!0,get:function(){return T.NodeDOMTreeConstruction}}),e.OutletView=e.DebugStack=e.INVOKE=e.UpdatableReference=e.AbstractComponentManager=e._experimentalMacros=e.InteractiveRenderer=e.InertRenderer=e.Renderer=e.SafeString=e.Environment=e.Helper=e.ROOT_REF=e.Component=e.LinkComponent=e.TextArea=e.TextField=e.Checkbox=e.RootTemplate=void 0;var B=function(){function e(e){this.factory=e,this.id=e.id,this.meta=e.meta}return e.prototype.create=function(e){var t=(0,a.getOwner)(e);return this.factory.create(e.compiler,{owner:t})},e}(),U=F({id:\"hjhxUoru\",block:'{\"symbols\":[],\"statements\":[[1,[28,\"component\",[[23,0,[]]],null],false]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/root.hbs\"}});e.RootTemplate=U;var z=(0,m.symbol)(\"RECOMPUTE_TAG\");var q=o.FrameworkObject.extend({init:function(){this._super.apply(this,arguments),this[z]=h.DirtyableTag.create()},recompute:function(){var e=this;(0,l.join)(function(){return e[z].inner.dirty()})}});(e.Helper=q).isHelperFactory=!0,(0,o.setFrameworkClass)(q);var H=function(){function e(e){this.compute=e,this.isHelperFactory=!0}return e.prototype.create=function(){return{compute:this.compute}},e}();function V(e){return new H(e)}function W(e){return(0,o.isArray)(e)?0!==e.length:Boolean(e)}var Y=(0,m.symbol)(\"UPDATE\"),G=(0,m.symbol)(\"INVOKE\");e.INVOKE=G;var Q=(0,m.symbol)(\"ACTION\"),K=function(){function e(){}return e.prototype.get=function(e){return J.create(this,e)},e}(),$=function(t){function e(){var e=t.call(this)||this;return e.lastRevision=null,e.lastValue=null,e}return(0,s.inheritsLoose)(e,t),e.prototype.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue;return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},e}(K),X=function(n){function e(e){var t=n.call(this,e)||this;return t.children=Object.create(null),t}return(0,s.inheritsLoose)(e,n),e.create=function(e){return fe(e)},e.prototype.get=function(e){var t=this.children[e];return void 0===t&&(t=this.children[e]=new Z(this.inner,e)),t},e}(h.ConstReference);var J=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e,t){return(0,h.isConst)(e)?function(e,t){{if(le(e))return new Z(e,t);if(ce(e))return new ae(e[t]);if(he())return p.UNDEFINED_REFERENCE;throw(0,d.unreachable)()}}(e.value(),t):new ee(e,t)},t.prototype.get=function(e){return new ee(this,e)},t}($),Z=function(r){function e(e,t){var n=r.call(this)||this;return n.parentValue=e,n.propertyKey=t,n.propertyTag=h.UpdatableTag.create((0,f.tagForProperty)(e,t)),n.tag=n.propertyTag,n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.compute=function(){var e=this.parentValue,t=this.propertyKey,n=(0,f.get)(e,t);return n},t[Y]=function(e){(0,f.set)(this.parentValue,this.propertyKey,e)},e}(J),ee=function(o){function e(e,t){var n=o.call(this)||this;n.parentReference=e,n.propertyKey=t;var r=e.tag,i=n.propertyTag=h.UpdatableTag.create(h.CONSTANT_TAG);return n.tag=(0,h.combine)([r,i]),n}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.compute=function(){var e=this.parentReference,t=this.propertyTag,n=this.propertyKey,r=e.value(),i=typeof r;if(\"string\"==i&&\"length\"===n)return r.length;if(\"object\"==i&&null!==r||\"function\"==i){var o=r,a=(0,f.get)(o,n);return t.inner.update((0,f.tagForProperty)(o,n)),a}},t[Y]=function(e){(0,f.set)(this.parentReference.value(),this.propertyKey,e)},e}(J),te=function(n){function e(e){var t=n.call(this)||this;return t.tag=h.DirtyableTag.create(),t._value=e,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.value=function(){return this._value},t.update=function(e){e!==this._value&&(this.tag.inner.dirty(),this._value=e)},e}(K);e.UpdatableReference=te;var ne=function(n){function r(e){var t=n.call(this,e)||this;return t.objectTag=h.UpdatableTag.create(h.CONSTANT_TAG),t.tag=(0,h.combine)([e.tag,t.objectTag]),t}return(0,s.inheritsLoose)(r,n),r.create=function(e){if((0,h.isConst)(e)){var t=e.value();if(!(0,m.isProxy)(t))return p.PrimitiveReference.create(W(t))}return new r(e)},r.prototype.toBool=function(e){return(0,m.isProxy)(e)?(this.objectTag.inner.update((0,f.tagForProperty)(e,\"isTruthy\")),Boolean((0,f.get)(e,\"isTruthy\"))):(this.objectTag.inner.update((0,f.tagFor)(e)),W(e))},r}(p.ConditionalReference),re=function(r){function a(e,t){var n=r.call(this)||this;return n.helper=e,n.args=t,n.tag=t.tag,n}return(0,s.inheritsLoose)(a,r),a.create=function(e,t){if((0,h.isConst)(t)){var n=t.positional,r=t.named,i=n.value(),o=r.value();return fe(e(i,o))}return new a(e,t)},a.prototype.compute=function(){var e=this.helper,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value();return e(i,o)},a}($),ie=function(r){function n(e,t){var n=r.call(this)||this;return n.instance=e,n.args=t,n.tag=(0,h.combine)([e[z],t.tag]),n}return(0,s.inheritsLoose)(n,r),n.create=function(e,t){return new n(e,t)},n.prototype.compute=function(){var e=this.instance,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value();return e.compute(i,o)},n}($),oe=function(r){function e(e,t){var n=r.call(this)||this;return n.helper=e,n.args=t,n.tag=t.tag,n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){return(0,this.helper)(this.args)},e}($),ae=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return fe(e,!1)},t.prototype.get=function(e){return fe(this.inner[e],!1)},t}(h.ConstReference),se=function(n){function e(e){var t=n.call(this)||this;return t.inner=e,t.tag=e.tag,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.compute=function(){return this.inner.value()},t.get=function(e){return this.inner.get(e)},(0,s.createClass)(e,[{key:G,get:function(){return this.inner[G]}}]),e}($);function ue(e,t){for(var n=e,r=0;r<t.length;r++)n=n.get(t[r]);return n}function le(e){return null!==e&&\"object\"==typeof e}function ce(e){return\"function\"==typeof e}function he(){return 1}function fe(e,t){return le(e)?new(!(1<arguments.length&&void 0!==t)||t?X:ae)(e):ce(e)?new ae(e):p.PrimitiveReference.create(e)}var pe=(0,m.symbol)(\"DIRTY_TAG\"),de=(0,m.symbol)(\"ARGS\"),me=(0,m.symbol)(\"ROOT_REF\");e.ROOT_REF=me;var ve=(0,m.symbol)(\"IS_DISPATCHING_ATTRS\"),ge=(0,m.symbol)(\"HAS_BLOCK\"),ye=(0,m.symbol)(\"BOUNDS\"),be=v.CoreView.extend(v.ChildViewsSupport,v.ViewStateSupport,v.ClassNamesSupport,o.TargetActionSupport,v.ActionSupport,v.ViewMixin,((I={isComponent:!0,init:function(){this._super.apply(this,arguments),this[ve]=!1,this[pe]=h.DirtyableTag.create(),this[me]=new X(this),this[ye]=null},rerender:function(){this[pe].inner.dirty(),this._super()}})[f.PROPERTY_DID_CHANGE]=function(e){var t,n;this[ve]||void 0!==(n=void 0!==(t=this[de])?t[e]:void 0)&&void 0!==n[Y]&&n[Y]((0,f.get)(this,e))},I.getAttr=function(e){return this.get(e)},I.readDOMAttr=function(e){var t=(0,v.getViewElement)(this),n=t,r=n.namespaceURI===p.SVG_NAMESPACE,i=(0,p.normalizeProperty)(n,e),o=i.type,a=i.normalized;return r||\"attr\"===o?n.getAttribute(a):n[a]},I.didReceiveAttrs=function(){},I.didRender=function(){},I.willRender=function(){},I.didUpdateAttrs=function(){},I.willUpdate=function(){},I.didUpdate=function(){},I));(e.Component=be).toString=function(){return\"@ember/component\"},be.reopenClass({isComponentFactory:!0,positionalParams:[]}),(0,o.setFrameworkClass)(be);var _e=F({id:\"hvtsz7RF\",block:'{\"symbols\":[],\"statements\":[],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/empty.hbs\"}}),we=be.extend({layout:_e,classNames:[\"ember-checkbox\"],tagName:\"input\",attributeBindings:[\"type\",\"checked\",\"indeterminate\",\"disabled\",\"tabindex\",\"name\",\"autofocus\",\"required\",\"form\"],type:\"checkbox\",disabled:!1,indeterminate:!1,didInsertElement:function(){this._super.apply(this,arguments),this.element.indeterminate=Boolean(this.indeterminate)},change:function(){(0,f.set)(this,\"checked\",this.element.checked)}});(e.Checkbox=we).toString=function(){return\"@ember/component/checkbox\"};var Ee=u.hasDOM?Object.create(null):null;var Te=be.extend(v.TextSupport,{layout:_e,classNames:[\"ember-text-field\"],tagName:\"input\",attributeBindings:[\"accept\",\"autocomplete\",\"autosave\",\"dir\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"inputmode\",\"lang\",\"list\",\"type\",\"max\",\"min\",\"multiple\",\"name\",\"pattern\",\"size\",\"step\",\"value\",\"width\"],value:\"\",type:(0,f.computed)({get:function(){return\"text\"},set:function(e,t){var n=\"text\";return function(e){if(!u.hasDOM)return Boolean(e);if(e in Ee)return Ee[e];var t=document.createElement(\"input\");try{t.type=e}catch(e){}return Ee[e]=t.type===e}(t)&&(n=t),n}}),size:null,pattern:null,min:null,max:null});(e.TextField=Te).toString=function(){return\"@ember/component/text-field\"};var Ce=be.extend(v.TextSupport,{classNames:[\"ember-text-area\"],layout:_e,tagName:\"textarea\",attributeBindings:[\"rows\",\"cols\",\"name\",\"selectionEnd\",\"selectionStart\",\"autocomplete\",\"wrap\",\"lang\",\"dir\",\"value\"],rows:null,cols:null});(e.TextArea=Ce).toString=function(){return\"@ember/component/text-area\"};var Re,ke=F({id:\"giTNx+op\",block:'{\"symbols\":[\"&default\"],\"statements\":[[4,\"if\",[[25,1]],null,{\"statements\":[[14,1]],\"parameters\":[]},{\"statements\":[[1,[23,0,[\"linkTitle\"]],false]],\"parameters\":[]}]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs\"}}),xe=Object.freeze({toString:function(){return\"UNDEFINED\"}}),Ae=Object.freeze({});(Re=be.extend({layout:ke,tagName:\"a\",route:xe,model:xe,models:xe,query:xe,\"current-when\":null,title:null,rel:null,tabindex:null,target:null,activeClass:\"active\",loadingClass:\"loading\",disabledClass:\"disabled\",replace:!1,attributeBindings:[\"href\",\"title\",\"rel\",\"tabindex\",\"target\"],classNameBindings:[\"active\",\"loading\",\"disabled\",\"transitioningIn\",\"transitioningOut\"],eventName:\"click\",init:function(){this._super.apply(this,arguments);var e=this.eventName;this.on(e,this,this._invoke)},_routing:(0,n.inject)(\"-routing\"),_currentRoute:(0,f.alias)(\"_routing.currentRouteName\"),_currentRouterState:(0,f.alias)(\"_routing.currentState\"),_targetRouterState:(0,f.alias)(\"_routing.targetState\"),_route:(0,f.computed)(\"route\",\"_currentRouterState\",function(){var e=this.route;return e===xe?this._currentRoute:e}),_models:(0,f.computed)(\"model\",\"models\",function(){var e=this.model,t=this.models;return e!==xe?[e]:t!==xe?t:[]}),_query:(0,f.computed)(\"query\",function(){var e=this.query;return e===xe?Ae:(0,c.assign)({},e)}),disabled:(0,f.computed)({get:function(e){return!1},set:function(e,t){return!!(this._isDisabled=t)&&this.disabledClass}}),active:(0,f.computed)(\"activeClass\",\"_active\",function(){return!!this._active&&this.activeClass}),_active:(0,f.computed)(\"_currentRouterState\",\"_route\",\"_models\",\"_query\",\"loading\",\"current-when\",function(){var e=this._currentRouterState;return!!e&&this._isActive(e)}),willBeActive:(0,f.computed)(\"_currentRouterState\",\"_targetRouterState\",\"_route\",\"_models\",\"_query\",\"loading\",\"current-when\",function(){var e=this._currentRouterState,t=this._targetRouterState;if(e!==t)return this._isActive(t)}),_isActive:function(e){if(this.loading)return!1;if(\"boolean\"==typeof(n=this[\"current-when\"]))return n;for(var t=Boolean(n),n=t?n.split(\" \"):[this._route],r=this._models,i=this._query,o=this._routing,a=0;a<n.length;a++)if(o.isActiveForRoute(r,i,n[a],e,t))return!0;return!1},transitioningIn:(0,f.computed)(\"_active\",\"willBeActive\",function(){return!0===this.willBeActive&&!this._active&&\"ember-transitioning-in\"}),transitioningOut:(0,f.computed)(\"_active\",\"willBeActive\",function(){return!(!1!==this.willBeActive||!this._active)&&\"ember-transitioning-out\"}),_invoke:function(e){if(!(0,v.isSimpleClick)(e))return!0;var t=this.bubbles,n=this.preventDefault,r=this.element.target,i=!r||\"_self\"===r;if(!1!==n&&i&&e.preventDefault(),!1===t&&e.stopPropagation(),this._isDisabled)return!1;if(this.loading)return!1;if(!i)return!1;var o=this._route,a=this._models,s=this._query,u=this.replace,l={queryParams:s,routeName:o};return(0,g.flaggedInstrument)(\"interaction.link-to\",l,this._generateTransition(l,o,a,s,u)),!1},_generateTransition:function(e,t,n,r,i){var o=this._routing;return function(){e.transition=o.transitionTo(t,n,r,i)}},href:(0,f.computed)(\"_currentRouterState\",\"_route\",\"_models\",\"_query\",\"tagName\",\"loading\",\"loadingHref\",function(){if(\"a\"===this.tagName){if(this.loading)return this.loadingHref;var e=this._route,t=this._models,n=this._query,r=this._routing;return r.generateURL(e,t,n)}}),loading:(0,f.computed)(\"_route\",\"_modelsAreLoaded\",\"loadingClass\",function(){var e=this._route;if(!this._modelsAreLoaded||null==e)return this.loadingClass}),_modelsAreLoaded:(0,f.computed)(\"_models\",function(){for(var e=this._models,t=0;t<e.length;t++){var n=e[t];if(null==n)return!1}return!0}),loadingHref:\"#\",didReceiveAttrs:function(){var e=this.disabledWhen;void 0!==e&&this.set(\"disabled\",e);var t,n,r,i=this.params;i&&0!==i.length?(i=i.slice(),this[ge]||this.set(\"linkTitle\",i.shift()),(t=i[i.length-1])&&t.isQueryParams?this.set(\"query\",i.pop().values):this.set(\"query\",xe),0===i.length?this.set(\"route\",xe):this.set(\"route\",i.shift()),this.set(\"model\",xe),this.set(\"models\",i)):0<(n=this._models).length&&(\"object\"==typeof(r=n[n.length-1])&&null!==r&&r.isQueryParams&&(this.query=r.values,n.pop()))}})).toString=function(){return\"@ember/routing/link-component\"},Re.reopenClass({positionalParams:\"params\"});var Oe,Se=Re;e.LinkComponent=Se;var Ne=Oe;e.DebugStack=Ne;var Pe=(0,m.symbol)(\"EACH_IN\"),Le=function(){function e(e){this.inner=e,this.tag=e.tag,this[Pe]=!0}var t=e.prototype;return t.value=function(){return this.inner.value()},t.get=function(e){return this.inner.get(e)},e}();function Me(e,t){return null!==(n=e)&&\"object\"==typeof n&&n[Pe]?new He(e,t||\"@key\"):new Ve(e,t||\"@identity\");var n}var je=function(){function e(e,t){this.length=e,this.keyFor=t,this.position=0}var t=e.prototype;return t.isEmpty=function(){return!1},t.memoFor=function(e){return e},t.next=function(){var e=this.length,t=this.keyFor,n=this.position;if(e<=n)return null;var r=this.valueFor(n),i=this.memoFor(n),o=t(r,i,n);return this.position++,{key:o,value:r,memo:i}},e}(),De=function(i){function e(e,t,n){var r=i.call(this,t,n)||this;return r.array=e,r}return(0,s.inheritsLoose)(e,i),e.from=function(e,t){var n=e.length;return 0===n?qe:new this(e,n,t)},e.fromForEachable=function(e,t){var n=[];return e.forEach(function(e){return n.push(e)}),this.from(n,t)},e.prototype.valueFor=function(e){return this.array[e]},e}(je),Ie=function(i){function e(e,t,n){var r=i.call(this,t,n)||this;return r.array=e,r}return(0,s.inheritsLoose)(e,i),e.from=function(e,t){var n=e.length;return 0===n?qe:new this(e,n,t)},e.prototype.valueFor=function(e){return(0,f.objectAt)(this.array,e)},e}(je),Fe=function(o){function e(e,t,n,r){var i=o.call(this,n,r)||this;return i.keys=e,i.values=t,i}(0,s.inheritsLoose)(e,o),e.fromIndexable=function(e,t){var n=Object.keys(e),r=n.length;if(0===r)return qe;for(var i=[],o=0;o<r;o++)i.push((0,f.get)(e,n[o]));return new this(n,i,r,t)},e.fromForEachable=function(e,t){var n=arguments,r=[],i=[],o=0,a=!1;return e.forEach(function(e,t){(a=a||2<=n.length)&&r.push(t),i.push(e),o++}),0===o?qe:a?new this(r,i,o,t):new De(i,o,t)};var t=e.prototype;return t.valueFor=function(e){return this.values[e]},t.memoFor=function(e){return this.keys[e]},e}(je),Be=function(){function e(e,t,n){this.iterable=e,this.result=t,this.keyFor=n,this.position=0}e.from=function(e,t){var n=e[Symbol.iterator](),r=n.next(),i=r.value;return r.done?qe:new(Array.isArray(i)&&2===i.length?this:Ue)(n,r,t)};var t=e.prototype;return t.isEmpty=function(){return!1},t.next=function(){var e=this.iterable,t=this.result,n=this.position,r=this.keyFor;if(t.done)return null;var i=this.valueFor(t,n),o=this.memoFor(t,n),a=r(i,o,n);return this.position++,this.result=e.next(),{key:a,value:i,memo:o}},e}(),Ue=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.valueFor=function(e){return e.value},n.memoFor=function(e,t){return t},t}(Be),ze=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.valueFor=function(e){return e.value[1]},n.memoFor=function(e){return e.value[0]},t}(Be),qe={isEmpty:function(){return!0},next:function(){return null}},He=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=h.UpdatableTag.create(h.CONSTANT_TAG),this.tag=(0,h.combine)([e.tag,this.valueTag])}var t=e.prototype;return t.iterate=function(){var e,t=this.ref,n=this.valueTag,r=t.value(),i=(0,f.tagFor)(r);return(0,m.isProxy)(r)&&(r=(0,o._contentFor)(r)),n.inner.update(i),null===(e=r)||\"object\"!=typeof e&&\"function\"!=typeof e?qe:Array.isArray(r)||(0,m.isEmberArray)(r)?Fe.fromIndexable(r,this.keyFor(!0)):m.HAS_NATIVE_SYMBOL&&Ye(r)?ze.from(r,this.keyFor()):We(r)?Fe.fromForEachable(r,this.keyFor()):Fe.fromIndexable(r,this.keyFor(!0))},t.valueReferenceFor=function(e){return new te(e.value)},t.updateValueReference=function(e,t){e.update(t.value)},t.memoReferenceFor=function(e){return new te(e.memo)},t.updateMemoReference=function(e,t){e.update(t.memo)},t.keyFor=function(e){var t=0<arguments.length&&void 0!==e&&e,n=this.keyPath;switch(n){case\"@key\":return t?Qe:Je(Ke);case\"@index\":return Ge;case\"@identity\":return Je($e);default:return Je(Xe(n))}},e}(),Ve=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=h.UpdatableTag.create(h.CONSTANT_TAG),this.tag=(0,h.combine)([e.tag,this.valueTag])}var t=e.prototype;return t.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value();if(t.inner.update((0,f.tagForProperty)(n,\"[]\")),null===n||\"object\"!=typeof n)return qe;var r=this.keyFor();return Array.isArray(n)?De.from(n,r):(0,m.isEmberArray)(n)?Ie.from(n,r):m.HAS_NATIVE_SYMBOL&&Ye(n)?Ue.from(n,r):We(n)?De.fromForEachable(n,r):qe},t.valueReferenceFor=function(e){return new te(e.value)},t.updateValueReference=function(e,t){e.update(t.value)},t.memoReferenceFor=function(e){return new te(e.memo)},t.updateMemoReference=function(e,t){e.update(t.memo)},t.keyFor=function(){var e=this.keyPath;switch(e){case\"@index\":return Ge;case\"@identity\":return Je($e);default:return Je(Xe(e))}},e}();function We(e){return\"function\"==typeof e.forEach}function Ye(e){return\"function\"==typeof e[Symbol.iterator]}function Ge(e,t,n){return String(n)}function Qe(e,t){return t}function Ke(e,t){return $e(t)}function $e(e){switch(typeof e){case\"string\":return e;case\"number\":return String(e);default:return(0,m.guidFor)(e)}}function Xe(t){return function(e){return String((0,f.get)(e,t))}}function Je(o){var a={};return function(e,t,n){var r=o(e,t,n),i=a[r];return void 0===i?(a[r]=0,r):(a[r]=++i,r+\"be277757-bbbe-4620-9fcb-213ef433cca2\"+i)}}var Ze=function(){function e(e){this.string=e}var t=e.prototype;return t.toString=function(){return\"\"+this.string},t.toHTML=function(){return this.toString()},e}();e.SafeString=Ze;var et,tt,nt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\",\"=\":\"&#x3D;\"},rt=/[&<>\"'`=]/,it=/[&<>\"'`=]/g;function ot(e){return nt[e]}function at(e){return null==e?e=\"\":\"string\"!=typeof e&&(e=String(e)),new Ze(e)}function st(e){return null!==e&&\"object\"==typeof e&&\"function\"==typeof e.toHTML}function ut(e){return(tt=tt||document.createElement(\"a\")).href=e,tt.protocol}function lt(e){var t=null;return\"string\"==typeof e&&(t=et.parse(e).protocol),null===t?\":\":t}var ct=function(n){function e(e){var t=n.call(this,e)||this;return t.inTransaction=!1,t.owner=e[a.OWNER],t.isInteractive=t.owner.lookup(\"-environment:main\").isInteractive,t.destroyedComponents=[],function(e){var t;if(u.hasDOM&&(t=ut.call(e,\"foobar:baz\")),\"foobar:\"===t)e.protocolForURL=ut;else if(\"object\"==typeof URL)et=URL,e.protocolForURL=lt;else{if(\"function\"!=typeof r.require)throw new Error(\"Could not find valid URL parsing mechanism for URL Sanitization\");et=(0,r.require)(\"url\"),e.protocolForURL=lt}}((0,s.assertThisInitialized)(t)),t}(0,s.inheritsLoose)(e,n),e.create=function(e){return new this(e)};var t=e.prototype;return t.protocolForURL=function(e){return e},t.lookupComponent=function(e,t){return(0,v.lookupComponent)(t.owner,e,t)},t.toConditionalReference=function(e){return ne.create(e)},t.iterableFor=Me,t.scheduleInstallModifier=function(e,t){this.isInteractive&&n.prototype.scheduleInstallModifier.call(this,e,t)},t.scheduleUpdateModifier=function(e,t){this.isInteractive&&n.prototype.scheduleUpdateModifier.call(this,e,t)},t.didDestroy=function(e){e.destroy()},t.begin=function(){this.inTransaction=!0,n.prototype.begin.call(this)},t.commit=function(){var e=this.destroyedComponents;this.destroyedComponents=[];for(var t=0;t<e.length;t++)e[t].destroy();try{n.prototype.commit.call(this)}finally{this.inTransaction=!1}},e}(p.Environment);e.Environment=ct;var ht=function(){function e(){this.debugStack=void 0}var t=e.prototype;return t.prepareArgs=function(){return null},t.didCreateElement=function(){},t.didRenderLayout=function(){},t.didCreate=function(){},t.update=function(){},t.didUpdateLayout=function(){},t.didUpdate=function(){},e}();function ft(e){return{object:e.name+\":\"+e.outlet}}e.AbstractComponentManager=ht;function pt(e,t){var n=1<arguments.length&&void 0!==t?t:vt;this.state=e,this.manager=n}var dt={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!1,createInstance:!0},mt=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.create=function(e,t,n,r){r.outletState=t.ref;var i=t.controller;return{self:void 0===i?p.UNDEFINED_REFERENCE:new X(i),finalize:(0,g._instrumentStart)(\"render.outlet\",ft,t)}},n.getLayout=function(e){var t=e.template.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return dt},n.getSelf=function(e){return e.self},n.getTag=function(){return h.CONSTANT_TAG},n.didRenderLayout=function(e){e.finalize()},n.getDestructor=function(){return null},t}(ht),vt=new mt;function gt(){}var yt=function(){function e(e,t,n,r,i){this.environment=e,this.component=t,this.args=n,this.finalizer=r,this.hasWrappedElement=i,this.classRef=null,this.classRef=null,this.argsRevision=null===n?0:n.tag.value()}var t=e.prototype;return t.destroy=function(){var e,t=this.component,n=this.environment;n.isInteractive&&(t.trigger(\"willDestroyElement\"),t.trigger(\"willClearRender\"),(e=(0,v.getViewElement)(t))&&((0,v.clearElementView)(e),(0,v.clearViewElement)(t))),n.destroyedComponents.push(t)},t.finalize=function(){(0,this.finalizer)(),this.finalizer=gt},e}();function bt(e,t){return e[me].get(t)}function _t(e,t){return\"attrs\"===t[0]&&(t.shift(),1===t.length)?bt(e,t[0]):ue(e[me],t)}function wt(e){if(null!==e){var t=e[0],n=e[1],r=null===t?-1:t.indexOf(\"class\");if(-1!==r){var i=n[r];if(!Array.isArray(i))return;var o,a,s=i[0];s!==_.Ops.Get&&s!==_.Ops.MaybeLocal||(a=(o=i[i.length-1])[o.length-1],n[r]=[_.Ops.Helper,\"-class\",[i,a],null])}}}var Et=function(e){var t=e.indexOf(\":\");if(-1===t)return[e,e,!0];var n=e.substring(0,t),r=e.substring(t+1);return[n,r,!1]},Tt=function(e,t,n,r){var i=n[0],o=n[1];n[2];if(\"id\"===o){var a=(0,f.get)(t,i);return null==a&&(a=t.elementId),a=p.PrimitiveReference.create(a),void r.setAttribute(\"id\",a,!0,null)}var s=-1<i.indexOf(\".\"),u=s?_t(t,i.split(\".\")):bt(t,i);\"style\"===o&&(u=new kt(u,bt(t,\"isVisible\"))),r.setAttribute(o,u,!1,null)},Ct=\"display: none;\",Rt=at(Ct),kt=function(r){function e(e,t){var n=r.call(this)||this;return n.inner=e,n.isVisible=t,n.tag=(0,h.combine)([e.tag,t.tag]),n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.inner.value();if(!1!==this.isVisible.value())return e;if(e){var t=e+\" \"+Ct;return st(e)?at(t):t}return Rt},e}(h.CachedReference),xt={install:function(e,t,n){n.setAttribute(\"style\",(0,h.map)(bt(t,\"isVisible\"),this.mapStyleValue),!1,null)},mapStyleValue:function(e){return!1===e?Rt:null}},At=function(e,t,n,r){var i,o,a,s,u=n.split(\":\"),l=u[0],c=u[1],h=u[2];\"\"===l?r.setAttribute(\"class\",p.PrimitiveReference.create(c),!0,null):(o=(i=-1<l.indexOf(\".\"))?l.split(\".\"):[],a=i?_t(t,o):bt(t,l),s=void 0===c?new Ot(a,i?o[o.length-1]:l):new St(a,c,h),r.setAttribute(\"class\",s,!1,null))},Ot=function(r){function e(e,t){var n=r.call(this)||this;return n.inner=e,n.path=t,n.tag=e.tag,n.inner=e,n.path=t,n.dasherizedPath=null,n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.inner.value();if(!0!==e)return e||0===e?String(e):null;var t=this.path;return this.dasherizedPath||(this.dasherizedPath=(0,b.dasherize)(t))},e}(h.CachedReference),St=function(i){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,r=i.call(this)||this;return r.inner=e,r.truthy=t,r.falsy=n,r.tag=e.tag,r}return(0,s.inheritsLoose)(e,i),e.prototype.compute=function(){var e=this.inner,t=this.truthy,n=this.falsy;return e.value()?t:n},e}(h.CachedReference);function Nt(e){var t=e.names,n=e.value(),r=Object.create(null),i=Object.create(null);r[de]=i;for(var o=0;o<t.length;o++){var a=t[o],s=e.get(a),u=n[a];\"function\"==typeof u&&u[Q]?n[a]=u:s[Y]&&(n[a]=new Lt(s,u)),i[a]=s,r[a]=u}return r.attrs=n,r}var Pt=(0,m.symbol)(\"REF\"),Lt=function(){function e(e,t){this[v.MUTABLE_CELL]=!0,this[Pt]=e,this.value=t}return e.prototype.update=function(e){this[Pt][Y](e)},e}();var Mt=(0,w.privatize)(j()),jt=[];(0,t.debugFreeze)(jt);var Dt=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getLayout=function(e){return{handle:e.handle,symbolTable:e.symbolTable}},n.templateFor=function(e,t){var n=e.layout,r=e.layoutName,i=(0,a.getOwner)(e);if(void 0!==n)return\"function\"==typeof n.create?t.createTemplate(n,(0,a.getOwner)(e)):n;if(r){var o=i.lookup(\"template:\"+r);if(o)return o}return i.lookup(Mt)},n.getDynamicLayout=function(e,t){var n=e.component,r=this.templateFor(n,t).asWrappedLayout();return{handle:r.compile(),symbolTable:r.symbolTable}},n.getTagName=function(e){var t=e.component;return e.hasWrappedElement?t&&t.tagName||\"div\":null},n.getCapabilities=function(e){return e.capabilities},n.prepareArgs=function(e,t){if(t.named.has(\"__ARGS__\")){var n=t.named.get(\"__ARGS__\").value(),r={positional:jt,named:(0,c.assign)({},t.named.capture().map,n)};return r}var i=e.ComponentClass.class.positionalParams;if(null==i||0===t.positional.length)return null;if(\"string\"==typeof i){var o={};o[i]=t.positional.capture(),s=o,(0,c.assign)(s,t.named.capture().map)}else{if(!(Array.isArray(i)&&0<i.length))return null;var a=Math.min(i.length,t.positional.length),s={};(0,c.assign)(s,t.named.capture().map);for(var u=0;u<a;u++){var l=i[u];s[l]=t.positional.at(u)}}return{positional:d.EMPTY_ARRAY,named:s}},n.create=function(e,t,n,r,i,o){var a,s=r.view,u=t.ComponentClass,l=n.named.capture(),c=Nt(l);a=c,n.named.has(\"id\")&&(a.elementId=a.id),c.parentView=s,c[ge]=o,c._target=i.value(),t.template&&(c.layout=t.template);var h=u.create(c),f=(0,g._instrumentStart)(\"render.component\",It,h);r.view=h,null!=s&&(0,v.addChildView)(s,h),h.trigger(\"didReceiveAttrs\");var p=\"\"!==h.tagName;p||(e.isInteractive&&h.trigger(\"willRender\"),h._transitionTo(\"hasElement\"),e.isInteractive&&h.trigger(\"willInsertElement\"));var d=new yt(e,h,l,f,p);return n.named.has(\"class\")&&(d.classRef=n.named.get(\"class\")),e.isInteractive&&p&&h.trigger(\"willRender\"),d},n.getSelf=function(e){return e.component[me]},n.didCreateElement=function(e,t,n){var r=e.component,i=e.classRef,o=e.environment;(0,v.setViewElement)(r,t),(0,v.setElementView)(t,r);var a,s,u=r.attributeBindings,l=r.classNames,c=r.classNameBindings;u&&u.length?function(e,t,n,r){for(var i,o=[],a=t.length-1;-1!==a;){var s=t[a],u=Et(s),l=u[1];-1===o.indexOf(l)&&(o.push(l),Tt(e,n,u,r)),a--}-1===o.indexOf(\"id\")&&(i=n.elementId?n.elementId:(0,m.guidFor)(n),r.setAttribute(\"id\",p.PrimitiveReference.create(i),!1,null)),-1===o.indexOf(\"style\")&&xt.install(e,n,r)}(t,u,r,n):(a=r.elementId?r.elementId:(0,m.guidFor)(r),n.setAttribute(\"id\",p.PrimitiveReference.create(a),!1,null),xt.install(t,r,n)),i&&(s=new Ot(i,i.propertyKey),n.setAttribute(\"class\",s,!1,null)),l&&l.length&&l.forEach(function(e){n.setAttribute(\"class\",p.PrimitiveReference.create(e),!1,null)}),c&&c.length&&c.forEach(function(e){At(t,r,e,n)}),n.setAttribute(\"class\",p.PrimitiveReference.create(\"ember-view\"),!1,null),\"ariaRole\"in r&&n.setAttribute(\"role\",bt(r,\"ariaRole\"),!1,null),r._transitionTo(\"hasElement\"),o.isInteractive&&r.trigger(\"willInsertElement\")},n.didRenderLayout=function(e,t){e.component[ye]=t,e.finalize()},n.getTag=function(e){var t=e.args,n=e.component;return t?(0,h.combine)([t.tag,n[pe]]):n[pe]},n.didCreate=function(e){var t=e.component;e.environment.isInteractive&&(t._transitionTo(\"inDOM\"),t.trigger(\"didInsertElement\"),t.trigger(\"didRender\"))},n.update=function(e){var t,n=e.component,r=e.args,i=e.argsRevision,o=e.environment;e.finalizer=(0,g._instrumentStart)(\"render.component\",Ft,n),r&&!r.tag.validate(i)&&(t=Nt(r),e.argsRevision=r.tag.value(),n[ve]=!0,n.setProperties(t),n[ve]=!1,n.trigger(\"didUpdateAttrs\"),n.trigger(\"didReceiveAttrs\")),o.isInteractive&&(n.trigger(\"willUpdate\"),n.trigger(\"willRender\"))},n.didUpdateLayout=function(e){e.finalize()},n.didUpdate=function(e){var t=e.component;e.environment.isInteractive&&(t.trigger(\"didUpdate\"),t.trigger(\"didRender\"))},n.getDestructor=function(e){return e},t}(ht);function It(e){return e.instrumentDetails({initialRender:!0})}function Ft(e){return e.instrumentDetails({initialRender:!1})}function Bt(e,t,n,r,i){this.name=e,this.ComponentClass=t,this.handle=n,this.manager=zt;var o=r&&r.asLayout(),a=o?o.symbolTable:void 0;this.symbolTable=a,this.template=r,this.args=i,this.state={name:e,ComponentClass:t,handle:n,template:r,capabilities:Ut,symbolTable:a}}var Ut={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},zt=new Dt,qt=function(n){function e(e){var t=n.call(this)||this;return t.component=e,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.getLayout=function(e,t){var n=this.templateFor(this.component,t).asWrappedLayout();return{handle:n.compile(),symbolTable:n.symbolTable}},t.create=function(e,t,n,r){var i=this.component;var o=(0,g._instrumentStart)(\"render.component\",It,i),a=\"\"!==(r.view=i).tagName;return a||(e.isInteractive&&i.trigger(\"willRender\"),i._transitionTo(\"hasElement\"),e.isInteractive&&i.trigger(\"willInsertElement\")),new yt(e,i,null,o,a)},e}(Dt),Ht={dynamicLayout:!1,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Vt=function(){function e(e){this.component=e;var t=new qt(e);this.manager=t;var n=w.FACTORY_FOR.get(e);this.state={name:n.fullName.slice(10),capabilities:Ht,ComponentClass:n,handle:null}}return e.prototype.getTag=function(e){return e.component[pe]},e}(),Wt=function(){function e(e,t){this.view=e,this.outletState=t}var t=e.prototype;return t.child=function(){return new e(this.view,this.outletState)},t.get=function(){return this.outletState},t.set=function(e,t){return this.outletState=t},e}(),Yt=function(){function e(e,o,a,s,u,l,c){var h=this;this.id=(0,v.getViewId)(e),this.env=o,this.root=e,this.result=void 0,this.shouldReflush=!1,this.destroyed=!1;var f=this.options={alwaysRevalidate:!1};this.render=function(){for(var e,t=a.asLayout(),n=t.compile(),r=(0,p.renderMain)(t.compiler.program,o,s,l,c(o,{element:u,nextSibling:null}),n);!(e=r.next()).done;);var i=h.result=e.value;h.render=function(){return i.rerender(f)}}}var t=e.prototype;return t.isFor=function(e){return this.root===e},t.destroy=function(){var e=this.result,t=this.env;if(this.destroyed=!0,this.env=void 0,this.root=null,this.result=void 0,this.render=void 0,e){var n=!t.inTransaction;n&&t.begin();try{e.destroy()}finally{n&&t.commit()}}},e}(),Gt=[];function Qt(e){var t=Gt.indexOf(e);Gt.splice(t,1)}function Kt(){}var $t=null;var Xt=0;l.backburner.on(\"begin\",function(){for(var e=0;e<Gt.length;e++)Gt[e]._scheduleRevalidate()}),l.backburner.on(\"end\",function(){for(var e,t=0;t<Gt.length;t++)if(!Gt[t]._isValid()){if(Xt>y.ENV._RERENDER_LOOP_LIMIT)throw Xt=0,Gt[t].destroy(),new Error(\"infinite rendering invalidation detected\");return Xt++,l.backburner.join(null,Kt)}Xt=0,null!==$t&&(e=$t.resolve,$t=null,l.backburner.join(null,e))});var Jt=function(){function e(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]&&arguments[3],i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:p.clientBuilder;this._env=e,this._rootTemplate=t,this._viewRegistry=n,this._destinedForDOM=r,this._destroyed=!1,this._roots=[],this._lastRevision=-1,this._isRenderingRoots=!1,this._removedRoots=[],this._builder=i}var t=e.prototype;return t.appendOutletView=function(e,t){var n=function(e){if(y.ENV._APPLICATION_TEMPLATE_WRAPPER){var r=(0,c.assign)({},dt,{dynamicTag:!0,elementHook:!0}),t=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getTagName=function(){return\"div\"},n.getLayout=function(e){var t=e.template.asWrappedLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return r},n.didCreateElement=function(e,t){t.setAttribute(\"class\",\"ember-view\"),t.setAttribute(\"id\",(0,m.guidFor)(e))},t}(mt));return new pt(e.state,t)}return new pt(e.state)}(e);this._appendDefinition(e,(0,p.curry)(n),t)},t.appendTo=function(e,t){var n=new Vt(e);this._appendDefinition(e,(0,p.curry)(n),t)},t._appendDefinition=function(e,t,n){var r=new ae(t),i=new Wt(null,p.UNDEFINED_REFERENCE),o=new Yt(e,this._env,this._rootTemplate,r,n,i,this._builder);this._renderRoot(o)},t.rerender=function(){this._scheduleRevalidate()},t.register=function(e){var t=(0,v.getViewId)(e);this._viewRegistry[t]=e},t.unregister=function(e){delete this._viewRegistry[(0,v.getViewId)(e)]},t.remove=function(e){e._transitionTo(\"destroying\"),this.cleanupRootFor(e),this._destinedForDOM&&e.trigger(\"didDestroyElement\")},t.cleanupRootFor=function(e){if(!this._destroyed)for(var t=this._roots,n=this._roots.length;n--;){var r=t[n];r.isFor(e)&&(r.destroy(),t.splice(n,1))}},t.destroy=function(){this._destroyed||(this._destroyed=!0,this._clearAllRoots())},t.getBounds=function(e){var t=e[ye];return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}},t.createElement=function(e){return this._env.getAppendOperations().createElement(e)},t._renderRoot=function(e){var t,n=this._roots;n.push(e),1===n.length&&(t=this,Gt.push(t)),this._renderRootsTransaction()},t._renderRoots=function(){var e,t=this._roots,n=this._env,r=this._removedRoots,i=!1;do{n.begin();try{e=t.length,i=!1;for(var o=0;o<t.length;o++){var a,s=t[o];s.destroyed?r.push(s):(a=s.shouldReflush,e<=o&&!a||(s.options.alwaysRevalidate=a,a=s.shouldReflush=(0,f.runInTransaction)(s,\"render\"),i=i||a))}this._lastRevision=h.CURRENT_TAG.value()}finally{n.commit()}}while(i||t.length>e);for(;r.length;){var u=r.pop(),l=t.indexOf(u);t.splice(l,1)}0===this._roots.length&&Qt(this)},t._renderRootsTransaction=function(){if(!this._isRenderingRoots){var e=!(this._isRenderingRoots=!0);try{this._renderRoots(),e=!0}finally{e||(this._lastRevision=h.CURRENT_TAG.value(),!0===this._env.inTransaction&&this._env.commit()),this._isRenderingRoots=!1}}},t._clearAllRoots=function(){for(var e=this._roots,t=0;t<e.length;t++){e[t].destroy()}this._removedRoots.length=0,this._roots=[],e.length&&Qt(this)},t._scheduleRevalidate=function(){l.backburner.scheduleOnce(\"render\",this,this._revalidate)},t._isValid=function(){return this._destroyed||0===this._roots.length||h.CURRENT_TAG.validate(this._lastRevision)},t._revalidate=function(){this._isValid()||this._renderRootsTransaction()},e}(),Zt=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!1,e.builder)},t.prototype.getElement=function(){throw new Error(\"Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).\")},t}(e.Renderer=Jt);e.InertRenderer=Zt;var en=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!0,e.builder)},t.prototype.getElement=function(e){return(0,v.getViewElement)(e)},t}(Jt);e.InteractiveRenderer=en;var tn={};function nn(e,t,n){this.manager=e,this.state={ComponentClass:t,layout:n}}var rn=function(n){function e(e){var t=n.call(this)||this;return t.owner=e,t}return(0,s.inheritsLoose)(e,n),e.prototype.getLayout=function(e){var t=e.layout.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},e}(ht),on={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!0,createInstance:!0},an=[];(0,t.debugFreeze)(an);var sn,un=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getCapabilities=function(){return on},n.prepareArgs=function(e,t){var n=t.named.capture().map;return{positional:an,named:{__ARGS__:new X(n),type:t.named.get(\"type\")}}},n.create=function(e,t,n,r,i){var o=t.ComponentClass,a=n.named.get(\"type\"),s=o.create({caller:i.value(),type:a.value()});return{type:a,instance:s}},n.getSelf=function(e){var t=e.instance;return new X(t)},n.getTag=function(){return h.CONSTANT_TAG},n.update=function(e){var t=e.type,n=e.instance;(0,f.set)(n,\"type\",t.value())},n.getDestructor=function(e){return e.instance},t}(rn),ln=new WeakMap,cn=Object.getPrototypeOf;function hn(e,t){return ln.set(t,e),t}function fn(e){for(var t=e;null!=t;){if(ln.has(t))return ln.get(t);t=cn(t)}return null}hn({factory:function(e){return new un(e)},internal:!0,type:\"component\"},sn=o.Object.extend({isCheckbox:(0,f.computed)(\"type\",function(){return\"checkbox\"===this.type})})),sn.toString=function(){return\"@ember/component/input\"};var pn=sn,dn=V(function(e){return b.loc.apply(null,e)}),mn=function(){function e(e){this.resolver=e}var t=e.prototype;return t.getCapabilities=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state;return n.getCapabilities(r)},t.getLayout=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state;if(n.getCapabilities(r).dynamicLayout)return null;var i=n.getLayout(r,this.resolver);return{compile:function(){return i.handle},symbolTable:i.symbolTable}},t.lookupHelper=function(e,t){return this.resolver.lookupHelper(e,t)},t.lookupModifier=function(e,t){return this.resolver.lookupModifier(e,t)},t.lookupComponentDefinition=function(e,t){return this.resolver.lookupComponentHandle(e,t)},t.lookupPartial=function(e,t){return this.resolver.lookupPartial(e,t)},e}(),vn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0};function gn(e){return e.capabilities.asyncLifeCycleCallbacks}function yn(e){return e.capabilities.destructor}function bn(e,t,n,r){this.name=e,this.ComponentClass=t,this.delegate=n,this.template=r,this.manager=En;var i=r.asLayout().symbolTable;this.symbolTable=i,this.state={name:e,ComponentClass:t,template:r,symbolTable:i,delegate:n}}function _n(e){this.state=e,this.manager=Rn}function wn(e,t){return t.positional.at(0)}var En=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.create=function(e,t,n){var r=t.delegate,i=n.capture(),o={},a=i.value(),s=r.createComponent(t.ComponentClass.class,a);return new Tn(r,s,i,o)},n.update=function(e){var t=e.delegate,n=e.component,r=e.args,i=(e.namedArgsProxy,r.value());t.updateComponent(n,i)},n.didCreate=function(e){var t=e.delegate,n=e.component;gn(t)&&t.didCreateComponent(n)},n.didUpdate=function(e){var t=e.delegate,n=e.component;gn(t)&&t.didUpdateComponent(n)},n.getContext=function(e){var t=e.delegate,n=e.component;t.getContext(n)},n.getSelf=function(e){var t=e.delegate,n=e.component;return X.create(t.getContext(n))},n.getDestructor=function(e){return yn(e.delegate)?e:null},n.getCapabilities=function(e){var t=e.delegate;return(0,c.assign)({},vn,{updateHook:t.capabilities.updateHook})},n.getTag=function(e){return e.args.tag},n.didRenderLayout=function(){},n.getLayout=function(e){return{handle:e.template.asLayout().compile(),symbolTable:e.symbolTable}},t}(ht)),Tn=function(){function e(e,t,n,r){this.delegate=e,this.component=t,this.args=n,this.namedArgsProxy=r}return e.prototype.destroy=function(){var e=this.delegate,t=this.component;yn(e)&&e.destroyComponent(t)},e}(),Cn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0},Rn=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getLayout=function(e){var t=e.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return Cn},n.create=function(){return null},n.getSelf=function(){return p.NULL_REFERENCE},n.getTag=function(){return h.CONSTANT_TAG},n.getDestructor=function(){return null},t}(ht));function kn(e){var t=e.positional,n=t.at(0),r=t.length,i=n.value();return!0===i?1<r?(0,b.dasherize)(t.at(1).value()):null:!1===i?2<r?(0,b.dasherize)(t.at(2).value()):null:i}function xn(e){return\"checkbox\"===e.positional.at(0).value()?\"-checkbox\":\"-text-field\"}function An(e){var t=e.positional,n=t.at(0).value().split(\".\"),r=n[n.length-1],i=t.at(1).value();return!0===i?(0,b.dasherize)(r):i||0===i?String(i):\"\"}function On(e){return e}function Sn(e,t,n,i){var o,a,r;return\"function\"==typeof n[G]?a=(o=n)[G]:\"string\"==(r=typeof n)?a=(o=t).actions&&t.actions[n]:\"function\"==r&&(o=e,a=n),function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r={target:o,args:t,label:\"@glimmer/closure-action\"};return(0,g.flaggedInstrument)(\"interaction.ember-action\",r,function(){return l.join.apply(void 0,[o,a].concat(i(t)))})}}var Nn=function(e){return null==(t=e)||\"function\"!=typeof t.toString?\"\":String(e);var t};function Pn(e){return e.positional.value().map(Nn).join(\"\")}var Ln=null;function Mn(e){var a=e.positional,s=a.at(0);return function(){for(var e=a.value(),t=e[0],n=e.slice(1),r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return\"function\"==typeof s[G]?s[G].apply(s,n.concat(i)):t.call.apply(t,[Ln].concat(n,i))}}function jn(e,t){var n=null==t||\"\"===t?p.NULL_REFERENCE:\"string\"==typeof t&&-1<t.indexOf(\".\")?ue(e,t.split(\".\")):e.get(t);return n}var Dn=function(i){function n(e,t){var n=i.call(this)||this;n.sourceReference=e,n.pathReference=t,n.lastPath=null,n.innerReference=p.NULL_REFERENCE;var r=n.innerTag=h.UpdatableTag.create(h.CONSTANT_TAG);return n.tag=(0,h.combine)([e.tag,t.tag,r]),n}(0,s.inheritsLoose)(n,i),n.create=function(e,t){return(0,h.isConst)(t)?jn(e,t.value()):new n(e,t)};var e=n.prototype;return e.compute=function(){var e=this.lastPath,t=this.innerReference,n=this.innerTag,r=this.pathReference.value();return r!==e&&(t=jn(this.sourceReference,r),n.inner.update(t.tag),this.innerReference=t,this.lastPath=r),t.value()},e[Y]=function(e){(0,f.set)(this.sourceReference.value(),this.pathReference.value(),e)},n}($);var In=function(i){function o(e,t,n){var r=i.call(this)||this;return r.branchTag=h.UpdatableTag.create(h.CONSTANT_TAG),r.tag=(0,h.combine)([e.tag,r.branchTag]),r.cond=e,r.truthy=t,r.falsy=n,r}return(0,s.inheritsLoose)(o,i),o.create=function(e,t,n){var r=ne.create(e);return(0,h.isConst)(r)?r.value()?t:n:new o(r,t,n)},o.prototype.compute=function(){var e=this.cond.value()?this.truthy:this.falsy;return this.branchTag.inner.update(e.tag),e.value()},o}($);function Fn(e){var t,n=e.positional;(t=console).log.apply(t,n.value())}var Bn=(0,m.symbol)(\"MUT\"),Un=(0,m.symbol)(\"SOURCE\");function zn(e){e.positional;var t=e.named;return new C.QueryParams((0,c.assign)({},t.value()))}var qn=[\"alt\",\"shift\",\"meta\",\"ctrl\"],Hn=/^click|mouse|touch/;v.ActionManager.registeredActions;var Vn=function(e){var t=e.actionId;return v.ActionManager.registeredActions[t]=e,t},Wn=function(e){var t=e.actionId;delete v.ActionManager.registeredActions[t]},Yn=function(){function e(e,t,n,r,i,o,a,s,u){this.element=e,this.actionId=t,this.actionName=n,this.actionArgs=r,this.namedArgs=i,this.positional=o,this.implicitTarget=a,this.dom=s,this.eventName=this.getEventName(),this.tag=u}var t=e.prototype;return t.getEventName=function(){return this.namedArgs.get(\"on\").value()||\"click\"},t.getActionArgs=function(){for(var e=new Array(this.actionArgs.length),t=0;t<this.actionArgs.length;t++)e[t]=this.actionArgs[t].value();return e},t.getTarget=function(){var e=this.implicitTarget,t=this.namedArgs,n=t.has(\"target\")?t.get(\"target\").value():e.value();return n},t.handler=function(e){var n=this,r=this.actionName,t=this.namedArgs,i=t.get(\"bubbles\"),o=t.get(\"preventDefault\"),a=t.get(\"allowedKeys\"),s=this.getTarget(),u=!1!==i.value();return!function(e,t){if(null==t){if(Hn.test(e.type))return(0,v.isSimpleClick)(e);t=\"\"}if(0<=t.indexOf(\"any\"))return 1;for(var n=0;n<qn.length;n++)if(e[qn[n]+\"Key\"]&&-1===t.indexOf(qn[n]))return;return 1}(e,a.value())||(!1!==o.value()&&e.preventDefault(),u||e.stopPropagation(),(0,l.join)(function(){var e=n.getActionArgs(),t={args:e,target:s,name:null};\"function\"!=typeof r[G]?\"function\"!=typeof r?(t.name=r,s.send?(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){s.send.apply(s,[r].concat(e))}):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){s[r].apply(s,e)})):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){r.apply(s,e)}):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){r[G].apply(r,e)})}),u)},t.destroy=function(){Wn(this)},e}(),Gn=function(){function e(){}var t=e.prototype;return t.create=function(e,t,n,r,i){var o,a,s,u=n.capture(),l=u.named,c=u.positional,h=u.tag;1<c.length&&(a=c.at(0),o=(s=c.at(1))[G]?s:(s.propertyKey,s.value()));for(var f=[],p=2;p<c.length;p++)f.push(c.at(p));var d=(0,m.uuid)();return new Yn(e,d,o,f,l,c,a,i,h)},t.install=function(e){var t=e.dom,n=e.element,r=e.actionId;Vn(e),t.setAttribute(n,\"data-ember-action\",\"\"),t.setAttribute(n,\"data-ember-action-\"+r,r)},t.update=function(e){var t=e.positional.at(1);t[G]||(e.actionName=t.value()),e.eventName=e.getEventName()},t.getTag=function(e){return e.tag},t.getDestructor=function(e){return e},e}();function Qn(e,t,n,r){this.name=e,this.ModifierClass=t,this.delegate=n,this.state={ModifierClass:t,name:e,delegate:n},this.manager=r?Jn:Zn}var Kn=function(){function e(e,t,n,r){this.element=e,this.delegate=t,this.modifier=n,this.args=r}return e.prototype.destroy=function(){var e=this.delegate,t=this.modifier,n=this.args;e.destroyModifier(t,n.value())},e}(),$n=function(){function e(){}var t=e.prototype;return t.create=function(e,t,n){var r=n.capture(),i=t.delegate.createModifier(t.ModifierClass,r.value());return new Kn(e,t.delegate,i,r)},t.getTag=function(e){return e.args.tag},t.install=function(e){var t=e.element,n=e.args,r=e.delegate,i=e.modifier;r.installModifier(i,t,n.value())},t.update=function(e){var t=e.args,n=e.delegate,r=e.modifier;n.updateModifier(r,t.value())},t.getDestructor=function(e){return e},e}(),Xn=function(){function e(){}var t=e.prototype;return t.create=function(){return null},t.getTag=function(){return h.CONSTANT_TAG},t.install=function(){},t.update=function(){},t.getDestructor=function(){return null},e}(),Jn=new $n,Zn=new Xn,er=null,tr=function(){try{var e,t=document.createElement(\"div\"),n=0;return t.addEventListener(\"click\",function(){return n++},{once:!0}),\"function\"==typeof Event?e=new Event(\"click\"):(e=document.createEvent(\"Event\")).initEvent(\"click\",!0,!0),t.dispatchEvent(e),t.dispatchEvent(e),1===n}catch(e){return!1}}(),nr=function(){function e(e,t){this.shouldUpdate=!0,this.element=e,this.args=t,this.tag=t.tag}var t=e.prototype;return t.updateFromArgs=function(){var t,e=this.args,n=e.named.value(),r=n.once,i=n.passive,o=n.capture;r!==this.once&&(this.once=r,this.shouldUpdate=!0),i!==this.passive&&(this.passive=i,this.shouldUpdate=!0),o!==this.capture&&(this.capture=o,this.shouldUpdate=!0),r||i||o?t=this.options={once:r,passive:i,capture:o}:this.options=void 0;var a=e.positional.at(0).value();a!==this.eventName&&(this.eventName=a,this.shouldUpdate=!0);var s=e.positional.at(1).value();s!==this.userProvidedCallback&&(this.userProvidedCallback=s,this.shouldUpdate=!0);var u,l=!1===tr&&r||!1;this.shouldUpdate&&(l?u=this.callback=function(e){return!tr&&r&&or(this,a,u,t),s.call(er,e)}:this.callback=s)},t.destroy=function(){or(this.element,this.eventName,this.callback,this.options)},e}(),rr=0,ir=0;function or(e,t,n,r){ir++,tr?e.removeEventListener(t,n,r):void 0!==r&&r.capture?e.removeEventListener(t,n,!0):e.removeEventListener(t,n)}function ar(e,t,n,r){rr++,tr?e.addEventListener(t,n,r):void 0!==r&&r.capture?e.addEventListener(t,n,!0):e.addEventListener(t,n)}var sr=function(){function e(e){this.SUPPORTS_EVENT_OPTIONS=tr,this.isInteractive=e}var t=e.prototype;return t.create=function(e,t,n){if(!this.isInteractive)return null;var r=n.capture();return new nr(e,r)},t.getTag=function(e){return null===e?h.CONSTANT_TAG:e.tag},t.install=function(e){null!==e&&(e.updateFromArgs(),ar(e.element,e.eventName,e.callback,e.options),e.shouldUpdate=!1)},t.update=function(e){var t,n,r,i;null!==e&&(t=e.element,n=e.eventName,r=e.callback,i=e.options,e.updateFromArgs(),e.shouldUpdate&&(or(t,n,r,i),ar(e.element,e.eventName,e.callback,e.options),e.shouldUpdate=!1))},t.getDestructor=function(e){return e},(0,s.createClass)(e,[{key:\"counters\",get:function(){return{adds:rr,removes:ir}}}]),e}();function ur(e){return null===e?null:[e[0].map(function(e){return\"@\"+e}),e[1]]}function lr(e,t,n,r,i){return null!==n&&(null!==e?(i.compileParams(e),i.invokeStaticBlock(n,e.length)):i.invokeStatic(n)),!0}function cr(e,t){this.manager=fr,this.state={name:e,modelRef:t}}var hr={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},fr=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getDynamicLayout=function(e){var t=e.engine.lookup(\"template:application\").asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return hr},n.create=function(e,t){var n=e.owner.buildChildEngineInstance(t.name);n.boot();var r,i,o,a=n.factoryFor(\"controller:application\")||(0,C.generateControllerFactory)(n,\"application\"),s=t.modelRef;return void 0===s?{engine:n,controller:o=a.create(),self:new X(o),tag:h.CONSTANT_TAG}:(r=s.value(),i=s.tag.value(),{engine:n,controller:o=a.create({model:r}),self:new X(o),tag:s.tag,modelRef:s,modelRev:i})},n.getSelf=function(e){return e.self},n.getTag=function(e){return e.tag},n.getDestructor=function(e){return e.engine},n.didRenderLayout=function(){0},n.update=function(e){var t,n=e.controller,r=e.modelRef,i=e.modelRev;r.tag.validate(i)||(t=r.value(),e.modelRev=r.tag.value(),n.set(\"model\",t))},t}(ht));function pr(e,t,n,r){var i=[_.Ops.Helper,\"-mount\",t||[],n];return r.dynamicComponent(i,null,[],null,!1,null,null),!0}var dr=function(){function e(e,t,n){this.tag=e.tag,this.nameRef=e,this.modelRef=n,this.env=t,this._lastName=null,this._lastDef=null}var t=e.prototype;return t.value=function(){var e=this.env,t=this.nameRef,n=this.modelRef,r=t.value();return\"string\"==typeof r?this._lastName===r?this._lastDef:e.owner.hasRegistration(\"engine:\"+r)?(this._lastName=r,this._lastDef=(0,p.curry)(new cr(r,n)),this._lastDef):null:(this._lastDef=null,this._lastName=null)},t.get=function(){return p.UNDEFINED_REFERENCE},e}(),mr=function(){function e(e){this.outletState=e,this.tag=h.DirtyableTag.create()}var t=e.prototype;return t.get=function(e){return new gr(this,e)},t.value=function(){return this.outletState},t.update=function(e){this.outletState.outlets.main=e,this.tag.inner.dirty()},e}(),vr=function(){function e(e,t){this.parentStateRef=e,this.outletNameRef=t,this.tag=(0,h.combine)([e.tag,t.tag])}var t=e.prototype;return t.value=function(){var e=this.parentStateRef.value(),t=void 0===e?void 0:e.outlets;return void 0===t?void 0:t[this.outletNameRef.value()]},t.get=function(e){return new gr(this,e)},e}(),gr=function(){function t(e,t){this.parent=e,this.key=t,this.tag=e.tag}var e=t.prototype;return e.get=function(e){return new t(this,e)},e.value=function(){var e=this.parent.value();return e&&e[this.key]},t}();function yr(e,t,n,r){var i=[_.Ops.Helper,\"-outlet\",t||[],n];return r.dynamicComponent(i,null,[],null,!1,null,null),!0}var br=function(){function e(e){this.outletRef=e,this.definition=null,this.lastState=null,this.tag=e.tag}var t=e.prototype;return t.value=function(){var e,t,n=function(e){var t=e.value();if(void 0===t)return null;var n=t.render;if(void 0===n)return null;var r=n.template;return void 0===r?null:{ref:e,name:n.name,outlet:n.outlet,template:r,controller:n.controller}}(this.outletRef);if(e=n,t=this.lastState,null!==e?null!==t&&e.template===t.template&&e.controller===t.controller:null===t)return this.definition;var r=null;return null!==(this.lastState=n)&&(r=(0,p.curry)(new pt(n))),this.definition=r},t.get=function(){return p.UNDEFINED_REFERENCE},e}();function _r(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer);return null!==i&&(r.component.static(i,[null===t?[]:t,ur(n),null,null]),!0)}function wr(e,t,n,r,i,o){var a=o.compiler.resolver.lookupComponentDefinition(e,o.referrer);return null!==a&&(wt(n),o.component.static(a,[t,ur(n),r,i]),!0)}var Er=[];function Tr(e){var t=fn(e);return t&&!t.internal&&\"modifier\"===t.type?t.factory:void 0}function Cr(e){return{object:\"component:\"+e}}function Rr(e,t){return{source:void 0!==e?\"template:\"+e:void 0,namespace:t}}e._experimentalMacros=Er;var kr={if:function(e,t){var n=t.positional;return In.create(n.at(0),n.at(1),n.at(2))},action:function(e,t){var n=t.named,r=t.positional.capture().references,i=r[0],o=r[1],a=r.slice(2),s=o.propertyKey,u=n.has(\"target\")?n.get(\"target\"):i,l=function(n,t){var r,i;0<t.length&&(r=function(e){return t.map(function(e){return e.value()}).concat(e)});n&&(i=function(e){var t=n.value();return t&&0<e.length&&(e[0]=(0,f.get)(e[0],t)),e});return r&&i?function(e){return i(r(e))}:r||i||On}(n.has(\"value\")&&n.get(\"value\"),a),c=\"function\"==typeof o[G]?Sn(o,o,o[G],l):(0,h.isConst)(u)&&(0,h.isConst)(o)?Sn(i.value(),u.value(),o.value(),l):function(e,t,n,r,i){0;return function(){return Sn(e,t.value(),n.value(),r).apply(void 0,arguments)}}(i.value(),u,o,l,s);return c[Q]=!0,new ae(c)},array:function(e,t){return t.positional.capture()},concat:function(e,t){return new oe(Pn,t.capture())},get:function(e,t){return Dn.create(t.positional.at(0),t.positional.at(1))},hash:function(e,t){return t.named.capture()},log:function(e,t){return new oe(Fn,t.capture())},mut:function(e,t){var n,r=t.positional.at(0);if((n=r)&&n[Bn])return r;var i=Object.create(r);return i[Un]=r,i[G]=r[Y],i[Bn]=!0,i},\"query-params\":function(e,t){return new oe(zn,t.capture())},readonly:function(e,t){var n,r=(n=t.positional.at(0))[Un]||n;return new se(r)},unbound:function(e,t){return ae.create(t.positional.at(0).value())},unless:function(e,t){var n=t.positional;return In.create(n.at(0),n.at(2),n.at(1))},\"-class\":function(e,t){return new oe(kn,t.capture())},\"-each-in\":function(e,t){return new Le(t.positional.at(0))},\"-input-type\":function(e,t){return new oe(xn,t.capture())},\"-normalize-class\":function(e,t){return new oe(An,t.capture())},\"-get-dynamic-var\":p.getDynamicVar,\"-mount\":function(e,t){var n=e.env,r=t.positional.at(0),i=t.named.has(\"model\")?t.named.get(\"model\"):void 0;return new dr(r,n,i)},\"-outlet\":function(e,t){var n=e.dynamicScope(),r=0===t.positional.length?new h.ConstReference(\"main\"):t.positional.at(0);return new br(new vr(n.outletState,r))},\"-assert-implicit-component-helper-argument\":wn,fn:void 0};kr.fn=function(e,t){return new oe(Mn,t.capture())};var xr=function(){function e(e){this.handles=[void 0],this.objToHandle=new WeakMap,this.builtInHelpers=kr,this.templateCache=new Map,this.componentDefinitionCache=new Map,this.customManagerCache=new Map,this.templateCacheHits=0,this.templateCacheMisses=0,this.componentDefinitionCount=0,this.helperDefinitionCount=0;var t=new i.Macros;!function(e){var t=e.inlines,n=e.blocks;t.add(\"outlet\",yr),t.add(\"mount\",pr),t.addMissing(_r),n.add(\"let\",lr),n.addMissing(wr);for(var r=0;r<Er.length;r++){(0,Er[r])(n,t)}}(t),this.compiler=new i.LazyCompiler(new mn(this),this,t),this.isInteractive=e,this.builtInModifiers={action:{manager:new Gn,state:null}},this.builtInModifiers.on={manager:new sr(e),state:null}}var t=e.prototype;return t.lookupComponentDefinition=function(e,t){var n=this.lookupComponentHandle(e,t);return null===n?null:this.resolve(n)},t.lookupComponentHandle=function(e,t){var n=this.handles.length,r=this.handle(this._lookupComponentDefinition(e,t));return n===r&&this.componentDefinitionCount++,r},t.resolve=function(e){return this.handles[e]},t.lookupHelper=function(e,t){var n=this.handles.length,r=this._lookupHelper(e,t);if(null===r)return null;var i=this.handle(r);return n===i&&this.helperDefinitionCount++,i},t.lookupModifier=function(e,t){return this.handle(this._lookupModifier(e,t))},t.lookupPartial=function(e,t){var n=this._lookupPartial(e,t);return this.handle(n)},t.createTemplate=function(e,t){var n,r,i=this.templateCache.get(t);return void 0===i?(i=new Map,this.templateCache.set(t,i)):n=i.get(e),void 0===n?(r={compiler:this.compiler},(0,a.setOwner)(r,t),n=e.create(r),i.set(e,n),this.templateCacheMisses++):this.templateCacheHits++,n},t.handle=function(e){if(null==e)return null;var t=this.objToHandle.get(e);return void 0===t&&(t=this.handles.push(e)-1,this.objToHandle.set(e,t)),t},t._lookupHelper=function(e,t){var n=this.builtInHelpers[e];if(void 0!==n)return n;var r,i=t.owner,o=e,a=Rr(t.moduleName,void 0),s=i.factoryFor(\"helper:\"+o,a)||i.factoryFor(\"helper:\"+o);return\"object\"==typeof(r=s)&&null!==r&&r.class&&r.class.isHelperFactory?function(e,t){var n=s.create();return void 0===n.destroy?re.create(n.compute,t.capture()):(e.newDestroyable(n),ie.create(n,t.capture()))}:null},t._lookupPartial=function(e,t){var n=(0,v.lookupPartial)(e,t.owner);if(n)return new i.PartialDefinition(e,n);throw new Error(e+\" is not a partial\")},t._lookupModifier=function(e,t){var n=this.builtInModifiers[e];if(void 0===n){var r=t.owner,i=r.factoryFor(\"modifier:\"+e);if(void 0!==i){var o=Tr(i.class)(r);return new Qn(e,i,o,this.isInteractive)}}return n},t._parseNameForNamespace=function(e){var t=e,n=void 0,r=e.indexOf(\"::\");return-1!==r&&(t=e.slice(r+2),n=e.slice(0,r)),{name:t,namespace:n}},t._lookupComponentDefinition=function(e,t){var n=t.moduleName,r=t.owner,i=e,o=void 0,a=(0,v.lookupComponent)(r,i,Rr(n,o)),s=a.layout,u=a.component,l=void 0===u?s:u;if(void 0===l)return null;var c=this.componentDefinitionCache.get(l);if(void 0!==c)return c;var h,f,p=(0,g._instrumentStart)(\"render.getComponentDefinition\",Cr,i),d=null;return void 0!==s&&void 0===u&&y.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS&&(d=new _n(s)),void 0===u||void 0===u.class||(h=fn(u.class))&&\"component\"===h.type&&(f=h.factory,d=h.internal?new nn(f(r),u.class,s):new bn(i,u,f(r),s||r.lookup((0,w.privatize)(M())))),null===d&&(d=new Bt(i,u||r.factoryFor((0,w.privatize)(L())),null,s)),p(),this.componentDefinitionCache.set(l,d),d},t._lookupComponentManager=function(e,t){if(this.customManagerCache.has(t))return this.customManagerCache.get(t);var n=e.lookup(\"component-manager:\"+t);return this.customManagerCache.set(t,n),n},e}(),Ar={create:function(e){var t=e.environment;return new xr(t.isInteractive).compiler}},Or=F({id:\"chfQcH83\",block:'{\"symbols\":[\"&default\"],\"statements\":[[14,1]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/component.hbs\"}}),Sr=F({id:\"NWZzLSII\",block:'{\"symbols\":[\"Checkbox\",\"TextField\",\"@__ARGS__\",\"&attrs\"],\"statements\":[[4,\"let\",[[28,\"component\",[\"-checkbox\"],null],[28,\"component\",[\"-text-field\"],null]],null,{\"statements\":[[4,\"if\",[[23,0,[\"isCheckbox\"]]],null,{\"statements\":[[6,[23,1,[]],[[13,4]],[[\"@target\",\"@__ARGS__\"],[[23,0,[\"caller\"]],[23,3,[]]]]]],\"parameters\":[]},{\"statements\":[[6,[23,2,[]],[[13,4]],[[\"@target\",\"@__ARGS__\"],[[23,0,[\"caller\"]],[23,3,[]]]]]],\"parameters\":[]}]],\"parameters\":[1,2]},null]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/input.hbs\"}}),Nr=F({id:\"ffAL6HDl\",block:'{\"symbols\":[],\"statements\":[[1,[22,\"outlet\"],false]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs\"}}),Pr=\"-top-level\",Lr=function(){function i(e,t,n,r){this._environment=e,this.renderer=t,this.owner=n,this.template=r;var i=this.ref=new mr({outlets:{main:void 0},render:{owner:n,into:void 0,outlet:\"main\",name:Pr,controller:void 0,template:r}});this.state={ref:i,name:Pr,outlet:\"main\",template:r,controller:void 0}}i.extend=function(n){return function(t){function e(){return t.apply(this,arguments)||this}return(0,s.inheritsLoose)(e,t),e.create=function(e){return e?t.create.call(this,(0,c.assign)({},n,e)):t.create.call(this,n)},e}(i)},i.reopenClass=function(e){(0,c.assign)(this,e)},i.create=function(e){var t=e._environment,n=e.renderer,r=e.template;return new i(t,n,e[a.OWNER],r)};var e=i.prototype;return e.appendTo=function(e){var t=this._environment.hasDOM&&\"string\"==typeof e?document.querySelector(e):e;(0,l.schedule)(\"render\",this.renderer,\"appendOutletView\",this,t)},e.rerender=function(){},e.setOutletState=function(e){this.ref.update(e)},e.destroy=function(){},i}();e.OutletView=Lr}),e(\"@ember/-internals/meta/index\",[\"exports\",\"@ember/-internals/meta/lib/meta\"],function(e,t){\"use strict\";Object.defineProperty(e,\"counters\",{enumerable:!0,get:function(){return t.counters}}),Object.defineProperty(e,\"deleteMeta\",{enumerable:!0,get:function(){return t.deleteMeta}}),Object.defineProperty(e,\"Meta\",{enumerable:!0,get:function(){return t.Meta}}),Object.defineProperty(e,\"meta\",{enumerable:!0,get:function(){return t.meta}}),Object.defineProperty(e,\"peekMeta\",{enumerable:!0,get:function(){return t.peekMeta}}),Object.defineProperty(e,\"setMeta\",{enumerable:!0,get:function(){return t.setMeta}}),Object.defineProperty(e,\"UNDEFINED\",{enumerable:!0,get:function(){return t.UNDEFINED}})}),e(\"@ember/-internals/meta/lib/meta\",[\"exports\",\"ember-babel\",\"@ember/-internals/utils\",\"@ember/debug\"],function(e,n,t,r){\"use strict\";e.setMeta=h,e.peekMeta=f,e.deleteMeta=function(e){0;var t=f(e);null!==t&&t.destroy()},e.counters=e.meta=e.Meta=e.UNDEFINED=void 0;var i,o=Object.prototype;e.counters=i;var a=(0,t.symbol)(\"undefined\");e.UNDEFINED=a;var s=1,u=function(){function e(e){this._listenersVersion=1,this._inheritedEnd=-1,this._flattenedVersion=0,this._parent=void 0,this._descriptors=void 0,this._watching=void 0,this._mixins=void 0,this._deps=void 0,this._chainWatchers=void 0,this._chains=void 0,this._tag=void 0,this._tags=void 0,this._flags=0,this.source=e,this.proto=void 0===e.constructor?void 0:e.constructor.prototype,this._listeners=void 0}var t=e.prototype;return t.setInitializing=function(){this._flags|=8},t.unsetInitializing=function(){this._flags^=8},t.isInitializing=function(){return this._hasFlag(8)},t.isPrototypeMeta=function(e){return this.proto===this.source&&this.source===e},t.destroy=function(){var e;this.isMetaDestroyed()||(this.setMetaDestroyed(),void 0!==(e=this.readableChains())&&e.destroy())},t.isSourceDestroying=function(){return this._hasFlag(1)},t.setSourceDestroying=function(){this._flags|=1},t.isSourceDestroyed=function(){return this._hasFlag(2)},t.setSourceDestroyed=function(){this._flags|=2},t.isMetaDestroyed=function(){return this._hasFlag(4)},t.setMetaDestroyed=function(){this._flags|=4},t._hasFlag=function(e){return(this._flags&e)===e},t._getOrCreateOwnMap=function(e){return this[e]||(this[e]=Object.create(null))},t._getOrCreateOwnSet=function(e){return this[e]||(this[e]=new Set)},t._findInherited1=function(e){for(var t=this;null!==t;){var n=t[e];if(void 0!==n)return n;t=t.parent}},t._findInherited2=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r){var i=r[t];if(void 0!==i)return i}n=n.parent}},t._findInherited3=function(e,t,n){for(var r=this;null!==r;){var i=r[e];if(void 0!==i){var o=i[t];if(void 0!==o){var a=o[n];if(void 0!==a)return a}}r=r.parent}},t._findInheritedMap=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r){var i=r.get(t);if(void 0!==i)return i}n=n.parent}},t._hasInInheritedSet=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r&&r.has(t))return!0;n=n.parent}return!1},t.writeDeps=function(e,t,n){var r=this._getOrCreateOwnMap(\"_deps\"),i=r[e];void 0===i&&(i=r[e]=Object.create(null)),i[t]=n},t.peekDeps=function(e,t){var n=this._findInherited3(\"_deps\",e,t);return void 0===n?0:n},t.hasDeps=function(e){return void 0!==this._findInherited2(\"_deps\",e)},t.forEachInDeps=function(e,t){for(var n,r=this;null!==r;){var i=r._deps;if(void 0!==i){var o=i[e];if(void 0!==o)for(var a in n=void 0===n?new Set:n,o)n.has(a)||(n.add(a),0<o[a]&&t(a))}r=r.parent}},t.writableTags=function(){return this._getOrCreateOwnMap(\"_tags\")},t.readableTags=function(){return this._tags},t.writableTag=function(e){var t=this._tag;return void 0===t&&(t=this._tag=e(this.source)),t},t.readableTag=function(){return this._tag},t.writableLazyChainsFor=function(e){var t=this._getOrCreateOwnMap(\"_lazyChains\");return e in t||(t[e]=[]),t[e]},t.readableLazyChainsFor=function(e){var t=this._lazyChains;if(void 0!==t)return t[e]},t.writableChainWatchers=function(e){var t=this._chainWatchers;return void 0===t&&(t=this._chainWatchers=e(this.source)),t},t.readableChainWatchers=function(){return this._chainWatchers},t.writableChains=function(e){var t,n=this._chains;return void 0===n&&(this._chains=n=e(this.source),null!==(t=this.parent)&&t.writableChains(e).copyTo(n)),n},t.readableChains=function(){return this._findInherited1(\"_chains\")},t.writeWatching=function(e,t){this._getOrCreateOwnMap(\"_watching\")[e]=t},t.peekWatching=function(e){var t=this._findInherited2(\"_watching\",e);return void 0===t?0:t},t.addMixin=function(e){this._getOrCreateOwnSet(\"_mixins\").add(e)},t.hasMixin=function(e){return this._hasInInheritedSet(\"_mixins\",e)},t.forEachMixins=function(t){for(var n,e=this;null!==e;){var r=e._mixins;void 0!==r&&(n=void 0===n?new Set:n,r.forEach(function(e){n.has(e)||(n.add(e),t(e))})),e=e.parent}},t.writeDescriptors=function(e,t){(this._descriptors||(this._descriptors=new Map)).set(e,t)},t.peekDescriptors=function(e){var t=this._findInheritedMap(\"_descriptors\",e);return t===a?void 0:t},t.removeDescriptors=function(e){this.writeDescriptors(e,a)},t.forEachDescriptors=function(n){for(var r,e=this;null!==e;){var t=e._descriptors;void 0!==t&&(r=void 0===r?new Set:r,t.forEach(function(e,t){r.has(t)||(r.add(t),e!==a&&n(t,e))})),e=e.parent}},t.addToListeners=function(e,t,n,r,i){this.pushListener(e,t,n,r?1:0,i)},t.removeFromListeners=function(e,t,n){this.pushListener(e,t,n,2)},t.pushListener=function(e,t,n,r,i){var o,a=4<arguments.length&&void 0!==i&&i,s=this.writableListeners(),u=d(s,e,t,n);-1!==u&&u<this._inheritedEnd&&(s.splice(u,1),this._inheritedEnd--,u=-1),-1===u?s.push({event:e,target:t,method:n,kind:r,sync:a}):(o=s[u],2===r&&2!==o.kind?s.splice(u,1):(o.kind=r,o.sync=a))},t.writableListeners=function(){return this._flattenedVersion!==s||this.source!==this.proto&&-1!==this._inheritedEnd||s++,-1===this._inheritedEnd&&(this._inheritedEnd=0,this._listeners=[]),this._listeners},t.flattenedListeners=function(){if(0,this._flattenedVersion<s){0;var e=this.parent;if(null!==e){var t=e.flattenedListeners();if(void 0!==t)if(void 0===this._listeners)this._listeners=t;else{var n=this._listeners;0<this._inheritedEnd&&(n.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(var r=0;r<t.length;r++){var i=t[r];-1===d(n,i.event,i.target,i.method)&&(n.unshift(i),this._inheritedEnd++)}}}this._flattenedVersion=s}return this._listeners},t.matchingListeners=function(e){var t,n=this.flattenedListeners();if(0,void 0!==n)for(var r=0;r<n.length;r++){var i=n[r];i.event!==e||0!==i.kind&&1!==i.kind||(void 0===t&&(t=[]),t.push(i.target,i.method,1===i.kind))}return t},t.observerEvents=function(){var e,t=this.flattenedListeners();if(0,void 0!==t)for(var n=0;n<t.length;n++){var r=t[n];0!==r.kind&&1!==r.kind||-1===r.event.indexOf(\":change\")||(void 0===e&&(e=[]),e.push(r))}return e},(0,n.createClass)(e,[{key:\"parent\",get:function(){var e,t=this._parent;return void 0===t&&(e=l(this.source),this._parent=t=null===e||e===o?null:p(e)),t}}]),e}();e.Meta=u;var l=Object.getPrototypeOf,c=new WeakMap;function h(e,t){c.set(e,t)}function f(e){var t=c.get(e);if(void 0!==t)return t;for(var n=l(e);null!==n;){if(0,void 0!==(t=c.get(n)))return t.proto!==n&&(t.proto=n),t;n=l(n)}return null}var p=function(e){var t=f(e);if(null!==t&&t.source===e)return t;var n=new u(e);return h(e,n),n};function d(e,t,n,r){for(var i=e.length-1;0<=i;i--){var o=e[i];if(o.event===t&&o.target===n&&o.method===r)return i}return-1}e.meta=p}),e(\"@ember/-internals/metal\",[\"exports\",\"ember-babel\",\"@ember/polyfills\",\"@ember/-internals/meta\",\"@ember/debug\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@glimmer/reference\",\"@ember/-internals/environment\",\"@ember/error\",\"ember/version\",\"@ember/deprecated-features\",\"@ember/-internals/owner\"],function(e,r,f,p,t,d,s,m,c,u,n,h,v){\"use strict\";e.computed=it,e.isComputed=function(e,t){return Boolean(b(e,t))},e.getCacheFor=l,e.getCachedValueFor=o,e.peekCacheFor=y,e.alias=function(e){return Ue(new ut(e),st)},e.deprecateProperty=function(e,t,n,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,set:function(e){et(this,n,e)},get:function(){return Ke(this,n)}})},e._getPath=$e,e.get=Ke,e.getWithDefault=function(e,t,n){var r=Ke(e,t);return void 0!==r?r:n},e.set=et,e.trySet=function(e,t,n){return et(e,t,n,!0)},e.objectAt=fe,e.replace=function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:he;Array.isArray(e)?de(e,t,n,r):e.replace(t,n,r)},e.replaceInNativeArray=de,e.addArrayObserver=function(e,t,n){return me(e,t,n,L,!1)},e.removeArrayObserver=function(e,t,n){return me(e,t,n,M,!0)},e.arrayContentWillChange=le,e.arrayContentDidChange=ce,e.eachProxyFor=ve,e.eachProxyArrayWillChange=se,e.eachProxyArrayDidChange=ue,e.addListener=L,e.hasListeners=function(e,t){var n=(0,p.peekMeta)(e);if(null===n)return!1;var r=n.matchingListeners(t);return void 0!==r&&0<r.length},e.on=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.pop(),i=t;return(0,d.setListeners)(r,i),r},e.removeListener=M,e.sendEvent=j,e.isNone=function(e){return null==e},e.isEmpty=ht,e.isBlank=ft,e.isPresent=function(e){return!ft(e)},e.beginPropertyChanges=ee,e.changeProperties=ne,e.endPropertyChanges=te,e.notifyPropertyChange=$,e.overrideChains=Z,e.defineProperty=re,e.isElementDescriptor=je,e.nativeDescDecorator=Fe,e.descriptorForDecorator=_,e.descriptorForProperty=b,e.isClassicDecorator=w,e.setClassicDecorator=E,e.watchKey=ie,e.unwatchKey=oe,e.finishChains=function(e){var t=e.readableChainWatchers();void 0!==t&&t.revalidateAll();void 0!==e.readableChains()&&e.writableChains(Te)},e.removeChainWatcher=Re,e.getChainTagsForKey=Xe,e.watchPath=Se,e.unwatchPath=Ne,e.isWatching=function(e,t){return 0<Le(e,t)},e.unwatch=Me,e.watch=Pe,e.watcherCount=Le,e.getProperties=function(e,t){var n={},r=arguments,i=1;2===arguments.length&&Array.isArray(t)&&(i=0,r=arguments[1]);for(;i<r.length;i++)n[r[i]]=Ke(e,r[i]);return n},e.setProperties=function(r,i){return null!==i&&\"object\"==typeof i&&ne(function(){for(var e,t=Object.keys(i),n=0;n<t.length;n++)e=t[n],et(r,e,i[e])}),i},e.expandProperties=Ze,e.addObserver=B,e.activateObserver=z,e.removeObserver=U,e.flushAsyncObservers=function(){if(q===m.CURRENT_TAG.value())return;q=m.CURRENT_TAG.value(),F.forEach(function(e,n){var t=(0,p.peekMeta)(n);t&&(t.isSourceDestroying()||t.isMetaDestroyed())?F.delete(n):e.forEach(function(e,t){e.tag.validate(e.lastRevision)||(0,s.schedule)(\"actions\",function(){try{j(n,t,[n,e.path])}finally{e.tag=Xe(n,e.path),e.lastRevision=e.tag.value()}})})})},e.mixin=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Dt(e,n),e},e.observer=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i,o,a=t.pop();o=\"function\"==typeof a?(r=a,i=t,!c.ENV._DEFAULT_ASYNC_OBSERVERS):(r=a.fn,i=a.dependentKeys,a.sync);for(var s=[],u=function(e){return s.push(e)},l=0;l<i.length;++l)Ze(i[l],u);return(0,d.setObservers)(r,{paths:s,sync:o}),r},e.applyMixin=Dt,e.inject=function(n){for(var e=arguments.length,t=new Array(1<e?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];var i,o,a=je(t),s=a?void 0:t[0];a||t[1];{}function u(e){var t=(0,v.getOwner)(this)||this.container;return t.lookup(n+\":\"+(s||e),{source:i,namespace:o})}0;var l=it({get:u,set:function(e,t){re(this,e,null,t)}});return a?l(t[0],t[1],t[2]):l},e.tagForProperty=O,e.tagFor=S,e.markObjectAsDirty=N,e.consume=Ye,e.tracked=qe,e.track=We,e.addNamespace=function(e){gt.unprocessedNamespaces=!0,bt.push(e)},e.classToString=Ct,e.findNamespace=function(e){vt||Tt();return _t[e]},e.findNamespaces=wt,e.processNamespace=Et,e.processAllNamespaces=Tt,e.removeNamespace=function(e){var t=(0,d.getName)(e);delete _t[t],bt.splice(bt.indexOf(e),1),t in c.context.lookup&&e===c.context.lookup[t]&&(c.context.lookup[t]=void 0)},e.isNamespaceSearchDisabled=function(){return vt},e.setNamespaceSearchDisabled=function(e){vt=Boolean(e)},e.NAMESPACES_BY_ID=e.NAMESPACES=e.Tracker=e.assertNotRendered=e.didRender=e.runInTransaction=e.update=e.UNKNOWN_PROPERTY_TAG=e.DEBUG_INJECTION_FUNCTIONS=e.aliasMethod=e.Mixin=e.Libraries=e.libraries=e.ChainNode=e.PROPERTY_DID_CHANGE=e.PROXY_CONTENT=e.ComputedProperty=e._globalsComputed=void 0;var g,i=new WeakMap;function l(e){var t=i.get(e);return void 0===t&&(t=new Map,i.set(e,t)),t}function o(e,t){var n=i.get(e);if(void 0!==n)return n.get(t)}function y(e){return i.get(e)}var a=new WeakMap;function b(e,t,n){var r=void 0===n?(0,p.peekMeta)(e):n;if(null!==r)return r.peekDescriptors(t)}function _(e){return a.get(e)}function w(e){return null!=e&&a.has(e)}function E(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];a.set(e,t)}var T=new d.Cache(1e3,function(e){return e.indexOf(\".\")});function C(e){return\"string\"==typeof e&&-1!==T.get(e)}var R,k,x=(0,d.symbol)(\"UNKNOWN_PROPERTY_TAG\");function A(){return m.DirtyableTag.create()}function O(e,t,n){var r=typeof e;if(\"function\"!=r&&(\"object\"!=r||null===e))return m.CONSTANT_TAG;var i=void 0===n?(0,p.meta)(e):n;if(0,(0,d.isProxy)(e))return S(e,i);var o=i.writableTags(),a=o[t];return a||(o[t]=A())}function S(e,t){if(\"object\"==typeof e&&null!==e){var n=void 0===t?(0,p.meta)(e):t;if(!n.isMetaDestroyed())return n.writableTag(A)}return m.CONSTANT_TAG}function N(e,t,n){var r=void 0===n?(0,p.meta)(e):n,i=r.readableTag();void 0!==i&&((0,d.isProxy)(e)?i.inner.first.inner.dirty():i.inner.dirty());var o=r.readableTags(),a=void 0!==o?o[t]:void 0;void 0!==a&&R(a),void 0===i&&void 0===a||s.backburner.ensureInstance()}e.UNKNOWN_PROPERTY_TAG=x,e.update=k,R=function(e){e.inner.dirty()};var P=\":change\";function L(e,t,n,r,i){var o=!(5<arguments.length&&void 0!==arguments[5])||arguments[5];r||\"function\"!=typeof n||(r=n,n=null),(0,p.meta)(e).addToListeners(t,n,r,!0===i,o)}function M(e,t,n,r){var i,o=\"object\"==typeof n?(i=n,r):(i=null,n);(0,p.meta)(e).removeFromListeners(t,i,o)}function j(e,t,n,r,i){var o;if(void 0===r&&(r=\"object\"==typeof(o=void 0===i?(0,p.peekMeta)(e):i)&&null!==o?o.matchingListeners(t):void 0),void 0===r||0===r.length)return!1;for(var a=r.length-3;0<=a;a-=3){var s=r[a],u=r[a+1],l=r[a+2];u&&(l&&M(e,t,s,u),s=s||e,\"string\"==typeof u&&(u=s[u]),u.apply(s,n))}return!0}var D=!c.ENV._DEFAULT_ASYNC_OBSERVERS,I=new Map,F=new Map;function B(e,t,n,r){var i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:D,o=t+P;L(e,o,n,r,!1,i),Pe(e,t)}function U(e,t,n,r){var i=t+P;Me(e,t),M(e,i,n,r)}function z(e,t){var n,r,i,o,a=(n=e,(r=!0===(2<arguments.length&&void 0!==arguments[2]&&arguments[2])?I:F).has(n)||r.set(n,new Map),r.get(n));a.has(t)?a.get(t).count++:(o=Xe(e,i=t.split(\":\")[0]),a.set(t,{count:1,path:i,tag:o,lastRevision:o.value(),suspended:!1}))}var q=0;var H,V,W,Y=function(){function e(){this.added=new Map,this.queue=[]}var t=e.prototype;return t.add=function(e,t,n){var r=this.added.get(e);void 0===r&&(r=new Set,this.added.set(e,r)),r.has(t)||(this.queue.push(e,t,n),r.add(t))},t.flush=function(){var e=this.queue;this.added.clear(),this.queue=[];for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];n.isDestroying||n.isDestroyed||j(n,i,[n,r])}},e}();e.runInTransaction=H,e.didRender=V,e.assertNotRendered=W,e.runInTransaction=H=function(e,t){return e[t](),!1};var G=(0,d.symbol)(\"PROPERTY_DID_CHANGE\");e.PROPERTY_DID_CHANGE=G;var Q=new Y,K=0;function $(e,t,n){var r,i,o,a=void 0===n?(0,p.peekMeta)(e):n;null!==a&&(a.isInitializing()||a.isPrototypeMeta(e))||(void 0!==(r=b(e,t,a))&&\"function\"==typeof r.didChange&&r.didChange(e,t),null!==a&&0<a.peekWatching(t)&&(function(e,t,n){if(n.isSourceDestroying()||!n.hasDeps(t))return;var r=J;r&&(J=!1);(function(t,n,e,r,i){var o,a=r.get(n);void 0===a&&(a=new Set,r.set(n,a));if(a.has(e))return;i.forEachInDeps(e,function(e){void 0!==(o=b(n,e,i))&&o._suspended===n||t(n,e,i)})})($,e,t,X,n),r&&(X.clear(),J=!0)}(e,t,a),i=t,void 0!==(o=a.readableChainWatchers())&&o.notify(i,!0,$),function(e,t,n){if(n.isSourceDestroying())return;var r=t+P;0<K?Q.add(e,t,r):j(e,r,[e,t])}(e,t,a)),null!==a&&N(e,t,a),G in e&&e[G](t))}var X=new Map,J=!0;function Z(e,t,n){var r=n.readableChainWatchers();void 0!==r&&r.revalidate(t)}function ee(){K++}function te(){--K<=0&&Q.flush()}function ne(e){ee();try{e()}finally{te()}}function re(e,t,n,r,i){void 0===i&&(i=(0,p.meta)(e));var o=0<i.peekWatching(t),a=b(e,t,i),s=void 0!==a;s&&a.teardown(e,t,i);var u,l,c=!0;e===Array.prototype&&(c=!1),w(n)?(u=n(e,t,void 0,i),Object.defineProperty(e,t,u),l=n):null==n?(l=r,s||!1===c?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):e[t]=r):(l=n,Object.defineProperty(e,t,n)),o&&Z(0,t,i),\"function\"==typeof e.didDefineProperty&&e.didDefineProperty(e,t,l)}function ie(e,t,n){var r,i=void 0===n?(0,p.meta)(e):n,o=i.peekWatching(t);i.writeWatching(t,o+1),0===o&&(void 0!==(r=b(e,t,i))&&void 0!==r.willWatch&&r.willWatch(e,t,i),\"function\"==typeof e.willWatchProperty&&e.willWatchProperty(t))}function oe(e,t,n){var r,i,o=void 0===n?(0,p.peekMeta)(e):n;null===o||o.isSourceDestroyed()||(1===(r=o.peekWatching(t))?(o.writeWatching(t,0),void 0!==(i=b(e,t,o))&&void 0!==i.didUnwatch&&i.didUnwatch(e,t,o),\"function\"==typeof e.didUnwatchProperty&&e.didUnwatchProperty(t)):1<r&&o.writeWatching(t,r-1))}var ae=new WeakMap;function se(e,t,n,r){var i=ae.get(e);void 0!==i&&i.arrayWillChange(e,t,n,r)}function ue(e,t,n,r){var i=ae.get(e);void 0!==i&&i.arrayDidChange(e,t,n,r)}function le(e,t,n,r){return void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),se(e,t,n,r),j(e,\"@array:before\",[e,t,n,r]),e}function ce(e,t,n,r){void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));var i=(0,p.peekMeta)(e);(r<0||n<0||r-n!=0)&&$(e,\"length\",i),$(e,\"[]\",i),ue(e,t,n,r),j(e,\"@array:change\",[e,t,n,r]);var o,a,s,u=y(e);return void 0!==u&&(o=-1===n?0:n,a=e.length-((-1===r?0:r)-o),s=t<0?a+t:t,u.has(\"firstObject\")&&0===s&&$(e,\"firstObject\",i),u.has(\"lastObject\")&&a-1<s+o&&$(e,\"lastObject\",i)),e}var he=Object.freeze([]);function fe(e,t){return Array.isArray(e)?e[t]:e.objectAt(t)}var pe=6e4;function de(e,t,n,r){if(le(e,t,n,r.length),r.length<=pe)e.splice.apply(e,[t,n].concat(r));else{e.splice(t,n);for(var i=0;i<r.length;i+=pe){var o=r.slice(i,i+pe);e.splice.apply(e,[t+i,0].concat(o))}}ce(e,t,n,r.length)}function me(e,t,n,r,i){var o=n&&n.willChange||\"arrayWillChange\",a=n&&n.didChange||\"arrayDidChange\",s=Ke(e,\"hasArrayObservers\");return r(e,\"@array:before\",t,o),r(e,\"@array:change\",t,a),s===i&&$(e,\"hasArrayObservers\"),e}function ve(e){var t=ae.get(e);return void 0===t&&(t=new ge(e),ae.set(e,t)),t}var ge=function(){function e(e){this._content=e,(this._keys=void 0,p.meta)(this)}var t=e.prototype;return t.arrayWillChange=function(e,t,n){var r=this._keys;if(r){var i=0<n?t+n:-1;if(0<i)for(var o in r)be(e,o,this,t,i)}},t.arrayDidChange=function(e,t,n,r){var i=this._keys;if(i){var o=0<r?t+r:-1,a=(0,p.peekMeta)(this);for(var s in i)0<o&&ye(e,s,this,t,o),$(this,s,a)}},t.willWatchProperty=function(e){this.beginObservingContentKey(e)},t.didUnwatchProperty=function(e){this.stopObservingContentKey(e)},t.beginObservingContentKey=function(e){var t,n=this._keys;void 0===n&&(n=this._keys=Object.create(null)),n[e]?n[e]++:(n[e]=1,ye(t=this._content,e,this,0,t.length))},t.stopObservingContentKey=function(e){var t,n=this._keys;void 0!==n&&0<n[e]&&--n[e]<=0&&be(t=this._content,e,this,0,t.length)},t.contentKeyDidChange=function(e,t){$(this,t)},e}();function ye(e,t,n,r,i){for(;--i>=r;){var o=fe(e,i);o&&B(o,t,n,\"contentKeyDidChange\")}}function be(e,t,n,r,i){for(;--i>=r;){var o=fe(e,i);o&&U(o,t,n,\"contentKeyDidChange\")}}function _e(e){return\"object\"==typeof e&&null!==e}var we=function(){function e(){this.chains=Object.create(null)}var t=e.prototype;return t.add=function(e,t){var n=this.chains[e];void 0===n?this.chains[e]=[t]:n.push(t)},t.remove=function(e,t){var n=this.chains[e];if(void 0!==n)for(var r=0;r<n.length;r++)if(n[r]===t){n.splice(r,1);break}},t.has=function(e,t){var n=this.chains[e];if(void 0!==n)for(var r=0;r<n.length;r++)if(n[r]===t)return!0;return!1},t.revalidateAll=function(){for(var e in this.chains)this.notify(e,!0,void 0)},t.revalidate=function(e){this.notify(e,!0,void 0)},t.notify=function(e,t,n){var r=this.chains[e];if(void 0!==r&&0!==r.length){var i=void 0;void 0!==n&&(i=[]);for(var o=0;o<r.length;o++)r[o].notify(t,i);if(void 0!==n)for(var a=0;a<i.length;a+=2){n(i[a],i[a+1])}}},e}();function Ee(){return new we}function Te(e){return new Oe(null,null,e)}function Ce(e,t,n){var r=(0,p.meta)(e);r.writableChainWatchers(Ee).add(t,n),ie(e,t,r)}function Re(e,t,n,r){var i;_e(e)&&(null===(i=void 0===r?(0,p.peekMeta)(e):r)||i.isSourceDestroying()||i.isMetaDestroyed()||void 0===i.readableChainWatchers()||((i=(0,p.meta)(e)).readableChainWatchers().remove(t,n),oe(e,t,i)))}var ke=[];function xe(e){e.isWatching&&(Re(e.object,e.key,e),e.isWatching=!1)}function Ae(e){var t=e.chains;if(void 0!==t)for(var n in t)void 0!==t[n]&&ke.push(t[n])}var Oe=function(){function i(e,t,n){var r;this.paths=void 0,this.isWatching=!1,this.chains=void 0,this.object=void 0,this.count=0,this.parent=e,this.key=t,this.content=n,!(this.isWatching=null!==e)||_e(r=e.value())&&Ce(this.object=r,t,this)}var e=i.prototype;return e.value=function(){var e;return void 0===this.content&&this.isWatching&&(e=this.parent.value(),this.content=function(e,t){if(!_e(e))return;var n=(0,p.peekMeta)(e);if(null!==n&&n.proto===e)return;return\"@each\"===t?ve(e):(function(e,t,n){var r=b(e,t,n);return void 0===r||!1!==r._volatile}(e,t,n)?Ke:o)(e,t)}(e,this.key)),this.content},e.destroy=function(){(null===this.parent?function(e){for(Ae(e);0<ke.length;){var t=ke.pop();Ae(t),xe(t)}}:xe)(this)},e.copyTo=function(e){var t,n=this.paths;if(void 0!==n)for(t in n)0<n[t]&&e.add(t)},e.add=function(e){var t=this.paths||(this.paths={});t[e]=(t[e]||0)+1;var n=e.split(\".\");this.chain(n.shift(),n)},e.remove=function(e){var t,n=this.paths;void 0!==n&&(0<n[e]&&n[e]--,t=e.split(\".\"),this.unchain(t.shift(),t))},e.chain=function(e,t){var n=this.chains;void 0===n&&(n=this.chains=Object.create(null));var r=n[e];void 0===r&&(r=n[e]=new i(this,e,void 0)),r.count++,0<t.length&&r.chain(t.shift(),t)},e.unchain=function(e,t){var n=this.chains,r=n[e];0<t.length&&r.unchain(t.shift(),t),r.count--,r.count<=0&&(n[r.key]=void 0,r.destroy())},e.notify=function(e,t){var n;e&&this.isWatching&&((n=this.parent.value())!==this.object&&(Re(this.object,this.key,this),_e(n)?Ce(this.object=n,this.key,this):this.object=void 0),this.content=void 0);var r,i=this.chains;if(void 0!==i)for(var o in i)void 0!==(r=i[o])&&r.notify(e,t);void 0!==t&&null!==this.parent&&this.parent.populateAffected(this.key,1,t)},e.populateAffected=function(e,t,n){this.key&&(e=this.key+\".\"+e),null!==this.parent?this.parent.populateAffected(e,t+1,n):1<t&&n.push(this.value(),e)},i}();function Se(e,t,n){var r=void 0===n?(0,p.meta)(e):n,i=r.peekWatching(t);r.writeWatching(t,i+1),0===i&&r.writableChains(Te).add(t)}function Ne(e,t,n){var r,i=void 0===n?(0,p.peekMeta)(e):n;null===i||0<(r=i.peekWatching(t))&&(i.writeWatching(t,r-1),1===r&&i.writableChains(Te).remove(t))}function Pe(e,t,n){(C(t)?Se:ie)(e,t,n)}function Le(e,t){var n=(0,p.peekMeta)(e);return null!==n&&n.peekWatching(t)||0}function Me(e,t,n){(C(t)?Ne:oe)(e,t,n)}function je(e){var t=e[0],n=e[1],r=e[2];return 3===e.length&&(\"function\"==typeof t||\"object\"==typeof t&&null!==t)&&\"string\"==typeof n&&(\"object\"==typeof r&&null!==r&&\"enumerable\"in r&&\"configurable\"in r||void 0===r)}function De(e,t,n,r){var i=e._dependentKeys;if(null!=i)for(var o=0;o<i.length;o++){var a=i[o];r.writeDeps(a,n,r.peekDeps(a,n)+1),Pe(t,a,r)}}function Ie(e,t,n,r){var i=e._dependentKeys;if(null!=i)for(var o=0;o<i.length;o++){var a=i[o];r.writeDeps(a,n,r.peekDeps(a,n)-1),Me(t,a,r)}}function Fe(e){function t(){return e}return E(t),t}e.ChainNode=Oe;var Be=function(){function e(){this.enumerable=!0,this.configurable=!0,this._dependentKeys=void 0,this._meta=void 0}var t=e.prototype;return t.setup=function(e,t,n,r){r.writeDescriptors(t,this)},t.teardown=function(e,t,n){n.removeDescriptors(t)},e}();function Ue(l,e){function t(e,t,n,r,i){var o=3===arguments.length?(0,p.meta)(e):r;l.setup(e,t,n,o);var a,s,u={enumerable:l.enumerable,configurable:l.configurable,get:(a=t,s=l,function(){return s.get(this,a)})};return u}return E(t,l),Object.setPrototypeOf(t,e.prototype),t}var ze=function(){function e(){this.tags=new Set,this.last=null}var t=e.prototype;return t.add=function(e){this.tags.add(e),this.last=e},t.combine=function(){if(0===this.tags.size)return m.CONSTANT_TAG;if(1===this.tags.size)return this.last;var t=[];return this.tags.forEach(function(e){return t.push(e)}),(0,m.combine)(t)},(0,r.createClass)(e,[{key:\"size\",get:function(){return this.tags.size}}]),e}();function qe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(je(t))return He(t);function r(e,t,n,r,i){return He([e,t,{initializer:o||function(){return a}}])}var i=t[0],o=i?i.initializer:void 0,a=i?i.value:void 0;return E(r),r}function He(e){e[0];var n=e[1],t=e[2],r=t?t.initializer:void 0,i=new WeakMap,o=\"function\"==typeof r;return{enumerable:!0,configurable:!0,get:function(){var e,t=O(this,n);return Ve&&Ve.add(t),o&&!i.has(this)?(e=r.call(this),i.set(this,e)):e=i.get(this),(Array.isArray(e)||(0,d.isEmberArray)(e))&&k(t,O(e,\"[]\")),e},set:function(e){N(this,n),i.set(this,e),null!==Ge&&Ge()}}}e.Tracker=ze;var Ve=null;function We(e){var t=Ve,n=new ze;Ve=n;try{e()}finally{Ve=t}return n.combine()}function Ye(e){null!==Ve&&Ve.add(e)}var Ge=null,Qe=(0,d.symbol)(\"PROXY_CONTENT\");function Ke(e,t){var n,r=typeof e,i=\"object\"==r,o=i||\"function\"==r;if(C(t))return o?$e(e,t):void 0;if(o){0;var a=b(e,t);if(void 0!==a)return a.get(e,t);n=e[t]}else n=e[t];return void 0!==n||!i||t in e||\"function\"!=typeof e.unknownProperty?n:e.unknownProperty(t)}function $e(e,t){for(var n=e,r=\"string\"==typeof t?t.split(\".\"):t,i=0;i<r.length;i++){if(null==n||n.isDestroyed)return;n=Ke(n,r[i])}return n}function Xe(e,t){for(var n,r,i=[],o=e,a=t.split(\".\");0<a.length;){if(\"@each\"===(n=a.shift())&&0<a.length){n=a.shift();var s=o.map(function(e){return O(e,n)});i.push.apply(i,s.concat([O(o,\"[]\")]));break}var u=O(o,n);if(i.push(u),void 0===(r=b(o,n)))o=n in o||\"function\"!=typeof o.unknownProperty?o[n]:o.unknownProperty(n);else{var l=g(o,n);if(u.validate(l))\"string\"==typeof r.altKey?We(function(){o=Ke(o,r.altKey)}):o=y(o).get(n);else if(0<a.length){var c=m.UpdatableTag.create(m.CONSTANT_TAG);(0,p.meta)(o).writableLazyChainsFor(n).push([a.join(\".\"),c]),i.push(c);break}}var h=typeof o;if(null===o||\"object\"!=h&&\"function\"!=h)break}return(0,m.combine)(i)}e.PROXY_CONTENT=Qe;var Je=/\\.@each$/;function Ze(e,t){var n=e.indexOf(\"{\");n<0?t(e.replace(Je,\".[]\")):function e(t,n,r,i){var o,a,s=n.indexOf(\"}\"),u=0;var l=n.substring(r+1,s).split(\",\");var c=n.substring(s+1);t+=n.substring(0,r);a=l.length;for(;u<a;)(o=c.indexOf(\"{\"))<0?i((t+l[u++]+c).replace(Je,\".[]\")):e(t+l[u++],c,o,i)}(\"\",e,n,t)}function et(e,t,n,r){if(!e.isDestroyed){if(C(t))return function(e,t,n,r){var i=t.split(\".\"),o=i.pop();var a=$e(e,i);{if(null!=a)return et(a,o,n);if(!r)throw new u.default('Property set failed: object in path \"'+i.join(\".\")+'\" could not be found.')}}(e,t,n,r);var i,o=(0,p.peekMeta)(e),a=b(e,t,o);return void 0!==a?(a.set(e,t,n),n):(void 0!==(i=e[t])||\"object\"!=typeof e||t in e||\"function\"!=typeof e.setUnknownProperty?i!==(e[t]=n)&&$(e,t,o):e.setUnknownProperty(t,n),n)}}function tt(){}var nt=function(a){function e(e){var t=a.call(this)||this;t._volatile=!1,t._readOnly=!1,t._suspended=void 0,t._hasConfig=!1,t._getter=void 0,t._setter=void 0;var n,r,i=e[e.length-1];return(\"function\"==typeof i||null!==i&&\"object\"==typeof i)&&(t._hasConfig=!0,\"function\"==typeof(n=e.pop())?t._getter=n:(r=n,t._getter=r.get||tt,t._setter=r.set)),0<e.length&&t._property.apply(t,e),t}(0,r.inheritsLoose)(e,a);var t=e.prototype;return t.setup=function(e,t,n,r){var i,o;a.prototype.setup.call(this,e,t,n,r),!1===this._hasConfig&&(i=n.get,o=n.set,void 0!==i&&(this._getter=i),void 0!==o&&(this._setter=function(e,t){var n=o.call(this,t);return void 0!==i&&void 0===n?i.call(this):n}))},t.volatile=function(){this._volatile=!0},t.readOnly=function(){this._readOnly=!0},t.property=function(){this._property.apply(this,arguments)},t._property=function(){var t=[];function e(e){t.push(e)}for(var n=0;n<arguments.length;n++)Ze(n<0||arguments.length<=n?void 0:arguments[n],e);this._dependentKeys=t},t.didChange=function(e,t){var n,r;this._volatile||this._suspended===e||(null===(n=(0,p.peekMeta)(e))||n.source!==e||void 0!==(r=y(e))&&r.delete(t)&&Ie(this,e,t,n))},t.get=function(e,t){if(this._volatile)return this._getter.call(e,t);var n,r=l(e);if(0,r.has(t))return r.get(t);n=this._getter.call(e,t),r.set(t,n);var i=(0,p.meta)(e),o=i.readableChainWatchers();return void 0!==o&&o.revalidate(t),De(this,e,t,i),n},t.set=function(e,t,n){return this._readOnly&&this._throwReadOnlyError(e,t),this._setter?this._volatile?this.volatileSet(e,t,n):this.setWithSuspend(e,t,n):this.clobberSet(e,t,n)},t._throwReadOnlyError=function(e,t){throw new u.default('Cannot set read-only property \"'+t+'\" on object: '+(0,d.inspect)(e))},t.clobberSet=function(e,t,n){return re(e,t,null,o(e,t)),et(e,t,n),n},t.volatileSet=function(e,t,n){return this._setter.call(e,t,n)},t.setWithSuspend=function(e,t,n){var r=this._suspended;this._suspended=e;try{return this._set(e,t,n)}finally{this._suspended=r}},t._set=function(e,t,n){var r=l(e),i=r.has(t),o=r.get(t),a=this._setter.call(e,t,n,o);if(i&&o===a)return a;var s=(0,p.meta)(e);return i||De(this,e,t,s),r.set(t,a),$(e,t,s),a},t.teardown=function(e,t,n){var r;this._volatile||void 0!==(r=y(e))&&r.delete(t)&&Ie(this,e,t,n),a.prototype.teardown.call(this,e,t,n)},e}(Be);e.ComputedProperty=nt;var rt=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.readOnly=function(){return _(this).readOnly(),this},n.volatile=function(){return _(this).volatile(),this},n.property=function(){var e;return(e=_(this)).property.apply(e,arguments),this},n.meta=function(e){var t=_(this);return 0===arguments.length?t._meta||{}:(t._meta=e,this)},(0,r.createClass)(t,[{key:\"_getter\",get:function(){return _(this)._getter}},{key:\"enumerable\",set:function(e){_(this).enumerable=e}}]),t}((0,r.wrapNativeSuper)(Function));function it(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return je(t)?Ue(new nt([]),rt)(t[0],t[1],t[2]):Ue(new nt(t),rt)}var ot=it.bind(null);e._globalsComputed=ot;var at=Object.freeze({});var st=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.readOnly=function(){return _(this).readOnly(),this},n.oneWay=function(){return _(this).oneWay(),this},n.meta=function(e){var t=_(this);if(0===arguments.length)return t._meta||{};t._meta=e},t}((0,r.wrapNativeSuper)(Function)),ut=function(i){function e(e){var t=i.call(this)||this;return t.altKey=e,t._dependentKeys=[e],t}(0,r.inheritsLoose)(e,i);var t=e.prototype;return t.setup=function(e,t,n,r){i.prototype.setup.call(this,e,t,n,r),0<r.peekWatching(t)&&this.consume(e,t,r)},t.teardown=function(e,t,n){this.unconsume(e,t,n),i.prototype.teardown.call(this,e,t,n)},t.willWatch=function(e,t,n){this.consume(e,t,n)},t.get=function(e,t){var n=Ke(e,this.altKey);return this.consume(e,t,(0,p.meta)(e)),n},t.unconsume=function(e,t,n){var r=o(e,t)===at;(r||0<n.peekWatching(t))&&Ie(this,e,t,n),r&&l(e).delete(t)},t.consume=function(e,t,n){var r=l(e);r.get(t)!==at&&(r.set(t,at),De(this,e,t,n))},t.set=function(e,t,n){return et(e,this.altKey,n)},t.readOnly=function(){this.set=lt},t.oneWay=function(){this.set=ct},e}(Be);function lt(e,t){throw new u.default(\"Cannot set read-only property '\"+t+\"' on object: \"+(0,d.inspect)(e))}function ct(e,t,n){return re(e,t,null),et(e,t,n)}function ht(e){var t=null==e;if(t)return t;if(\"number\"==typeof e.size)return!e.size;var n=typeof e;if(\"object\"==n){var r=Ke(e,\"size\");if(\"number\"==typeof r)return!r}if(\"number\"==typeof e.length&&\"function\"!=n)return!e.length;if(\"object\"==n){var i=Ke(e,\"length\");if(\"number\"==typeof i)return!i}return!1}function ft(e){return ht(e)||\"string\"==typeof e&&!1===/\\S/.test(e)}var pt=function(){function e(){this._registry=[],this._coreLibIndex=0}var t=e.prototype;return t._getLibraryByName=function(e){for(var t=this._registry,n=t.length,r=0;r<n;r++)if(t[r].name===e)return t[r]},t.register=function(e,t,n){var r=this._registry.length;this._getLibraryByName(e)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:e,version:t}))},t.registerCoreLibrary=function(e,t){this.register(e,t,!0)},t.deRegister=function(e){var t,n=this._getLibraryByName(e);n&&(t=this._registry.indexOf(n),this._registry.splice(t,1))},e}(),dt=new(e.Libraries=pt);(e.libraries=dt).registerCoreLibrary(\"Ember\",n.default);var mt=Object.prototype.hasOwnProperty,vt=!1,gt={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(e){this._set++,this._unprocessedNamespaces=e}},yt=!1,bt=[];e.NAMESPACES=bt;var _t=Object.create(null);function wt(){if(gt.unprocessedNamespaces)for(var e,t=c.context.lookup,n=Object.keys(t),r=0;r<n.length;r++){var i,o=n[r];65<=(e=o.charCodeAt(0))&&e<=90&&((i=function(e,t){try{var n=e[t];return(null!==n&&\"object\"==typeof n||\"function\"==typeof n)&&n.isNamespace&&n}catch(e){}}(t,o))&&(0,d.setName)(i,o))}}function Et(e){!function e(t,n,r){var i=t.length;var o=t.join(\".\");_t[o]=n;(0,d.setName)(n,o);for(var a in n)if(mt.call(n,a)){var s=n[a];if(t[i]=a,s&&s.toString===Ct&&void 0===(0,d.getName)(s))(0,d.setName)(s,t.join(\".\"));else if(s&&s.isNamespace){if(r.has(s))continue;r.add(s),e(t,s,r)}}t.length=i}([e.toString()],e,new Set)}function Tt(){var e=gt.unprocessedNamespaces;if(e&&(wt(),gt.unprocessedNamespaces=!1),e||yt){for(var t=bt,n=0;n<t.length;n++)Et(t[n]);yt=!1}}function Ct(){var e=(0,d.getName)(this);return void 0!==e||(e=function(e){var t;if(!vt){if(Tt(),void 0!==(t=(0,d.getName)(e)))return t;var n=e;do{if((n=Object.getPrototypeOf(n))===Function.prototype||n===Object.prototype)break;if(void 0!==(t=(0,d.getName)(e))){t=\"(subclass of \"+t+\")\";break}}while(void 0===t)}return t||\"(unknown)\"}(this),(0,d.setName)(this,e)),e}e.NAMESPACES_BY_ID=_t;var Rt=Array.prototype.concat;Array.isArray;function kt(e){return\"function\"==typeof e&&!1!==e.isMethod&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function xt(e){return\"function\"==typeof e.get||\"function\"==typeof e.set}var At,Ot={};function St(e,t,n,r){var i=n[e]||r[e];return t[e]&&(i=i?Rt.call(i,t[e]):t[e]),i}function Nt(e,t,n,r,i){if(void 0!==i[t])return n;var o=r[t];return void 0===o&&void 0===b(e,t)&&(o=e[t]),\"function\"==typeof o?(0,d.wrap)(n,o):n}function Pt(e,t,n,r,i,o,a,s){var u,l,c,h;w(n)?(i[t]=function(e,t,n,r,i,o){var a,s=_(n);if(!(s instanceof nt)||void 0===s._getter)return n;if(void 0===r[t]&&(a=_(i[t])),void 0===(a=a||b(o,t,e))||!(a instanceof nt))return n;var u=(0,d.wrap)(s._getter,a._getter),l=a._setter?s._setter?(0,d.wrap)(s._setter,a._setter):a._setter:s._setter;if(u===s._getter&&l===s._setter)return n;var c=Object.create(s);return c._getter=u,c._setter=l,Ue(c,nt)}(r,t,n,o,i,e),o[t]=void 0):(a&&0<=a.indexOf(t)||\"concatenatedProperties\"===t||\"mergedProperties\"===t?(u=e,c=n,h=o[l=t]||u[l],n=(0,d.makeArray)(h).concat((0,d.makeArray)(c))):s&&-1<s.indexOf(t)?n=function(e,t,n,r){var i=r[t]||e[t];if(!i)return n;var o,a=(0,f.assign)({},i),s=!1;for(var u in n){n.hasOwnProperty(u)&&(kt(o=n[u])?(s=!0,a[u]=Nt(e,u,o,i,{})):a[u]=o)}return s&&(a._super=d.ROOT),a}(e,t,n,o):kt(n)&&(n=Nt(e,t,n,o,i)),i[t]=void 0,o[t]=n)}function Lt(e,t,n,r,i,o){var a,s,u,l,c;function h(e){delete n[e],delete r[e]}for(var f,p,d=0;d<e.length;d++)if(a=e[d],f=t,(s=(p=a)instanceof Ut?f.hasMixin(p)?Ot:(f.addMixin(p),p.properties):p)!==Ot)if(s){for(u in i.willMergeMixin&&i.willMergeMixin(s),l=St(\"concatenatedProperties\",s,r,i),c=St(\"mergedProperties\",s,r,i),s)s.hasOwnProperty(u)&&(o.push(u),Pt(i,u,s[u],t,n,r,l,c));s.hasOwnProperty(\"toString\")&&(i.toString=s.toString)}else a.mixins&&(Lt(a.mixins,t,n,r,i,o),a._without&&a._without.forEach(h))}function Mt(e,t,n,r){var i=(0,d.getObservers)(n),o=(0,d.getListeners)(n);if(void 0!==i)for(var a=r?B:U,s=0;s<i.paths.length;s++)a(e,i.paths[s],null,t,i.sync);if(void 0!==o)for(var u=r?L:M,l=0;l<o.length;l++)u(e,o[l],null,t)}function jt(e,t,n,r){\"function\"==typeof n&&Mt(e,t,n,!1),\"function\"==typeof r&&Mt(e,t,r,!0)}function Dt(e,t){var n,r={},i={},o=(0,p.meta)(e),a=[];e._super=d.ROOT,Lt(t,o,r,i,e,a);for(var s=0;s<a.length;s++)if(\"constructor\"!==(n=a[s])&&i.hasOwnProperty(n)){if(l=r[n],c=i[n],h.ALIAS_METHOD)for(;c&&c instanceof It;)var u=At(e,c,r,i),l=u.desc,c=u.value;void 0===l&&void 0===c||(void 0!==b(e,n)?jt(e,n,null,c):jt(e,n,e[n],c),re(e,n,l,c,o))}return e}h.ALIAS_METHOD&&(At=function(e,t,n,r){var i,o=t.methodName,a=n[o],s=r[o];return void 0!==a||void 0!==s||(s=void 0!==(i=b(e,o))?void(a=i):(a=void 0,e[o])),{desc:a,value:s}});var It,Ft,Bt,Ut=function(){function i(e,t){this.properties=function(n){if(void 0!==n){var r=(0,d.getOwnPropertyDescriptors)(n),e=Object.keys(r);if(e.some(function(e){return xt(r[e])})){var i={};return e.forEach(function(e){var t=r[e];xt(t)?i[e]=Fe(t):i[e]=n[e]}),i}}return n}(t),this.mixins=zt(e),this.ownerConstructor=void 0,this._without=void 0}i.create=function(){yt=!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new this(t,void 0)},i.mixins=function(e){var t=(0,p.peekMeta)(e),n=[];return null===t||t.forEachMixins(function(e){e.properties||n.push(e)}),n};var e=i.prototype;return e.reopen=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(0!==n.length)return this.properties?(e=new i(void 0,this.properties),this.properties=void 0,this.mixins=[e]):this.mixins||(this.mixins=[]),this.mixins=this.mixins.concat(zt(n)),this},e.apply=function(e){return Dt(e,[this])},e.applyPartial=function(e){return Dt(e,[this])},e.detect=function(e){if(\"object\"!=typeof e||null===e)return!1;if(e instanceof i)return function t(e,n){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new Set;if(r.has(e))return!1;r.add(e);if(e===n)return!0;var i=e.mixins;if(i)return i.some(function(e){return t(e,n,r)});return!1}(e,this);var t=(0,p.peekMeta)(e);return null!==t&&t.hasMixin(this)},e.without=function(){for(var e=new i([this]),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e._without=n,e},e.keys=function(){return function t(e){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new Set;var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new Set;if(r.has(e))return;r.add(e);if(e.properties)for(var i=Object.keys(e.properties),o=0;o<i.length;o++)n.add(i[o]);else e.mixins&&e.mixins.forEach(function(e){return t(e,n,r)});return n}(this)},e.toString=function(){return\"(unknown mixin)\"},i}();function zt(e){var t=e&&e.length||0,n=void 0;if(0<t){n=new Array(t);for(var r=0;r<t;r++){var i=e[r];n[r]=i instanceof Ut?i:new Ut(void 0,i)}}return n}(e.Mixin=Ut).prototype.toString=Ct,h.ALIAS_METHOD&&(It=function(e){this.methodName=e}),e.aliasMethod=Ft,h.ALIAS_METHOD&&(e.aliasMethod=Ft=function(e){return new It(e)}),e.DEBUG_INJECTION_FUNCTIONS=Bt}),e(\"@ember/-internals/owner/index\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";e.getOwner=function(e){return e[n]},e.setOwner=function(e,t){e[n]=t};var n=(e.OWNER=void 0,t.symbol)(\"OWNER\");e.OWNER=n}),e(\"@ember/-internals/routing/index\",[\"exports\",\"@ember/-internals/routing/lib/ext/controller\",\"@ember/-internals/routing/lib/location/api\",\"@ember/-internals/routing/lib/location/none_location\",\"@ember/-internals/routing/lib/location/hash_location\",\"@ember/-internals/routing/lib/location/history_location\",\"@ember/-internals/routing/lib/location/auto_location\",\"@ember/-internals/routing/lib/system/generate_controller\",\"@ember/-internals/routing/lib/system/controller_for\",\"@ember/-internals/routing/lib/system/dsl\",\"@ember/-internals/routing/lib/system/router\",\"@ember/-internals/routing/lib/system/route\",\"@ember/-internals/routing/lib/system/query_params\",\"@ember/-internals/routing/lib/services/routing\",\"@ember/-internals/routing/lib/services/router\",\"@ember/-internals/routing/lib/system/cache\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";Object.defineProperty(e,\"Location\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,\"NoneLocation\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"HashLocation\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"HistoryLocation\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"AutoLocation\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"generateController\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"generateControllerFactory\",{enumerable:!0,get:function(){return s.generateControllerFactory}}),Object.defineProperty(e,\"controllerFor\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"RouterDSL\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"Router\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"Route\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"QueryParams\",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,\"RoutingService\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"RouterService\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"BucketCache\",{enumerable:!0,get:function(){return m.default}})}),e(\"@ember/-internals/routing/lib/ext/controller\",[\"exports\",\"@ember/-internals/metal\",\"@ember/controller/lib/controller_mixin\",\"@ember/-internals/routing/lib/utils\"],function(e,o,t,a){\"use strict\";e.default=void 0,t.default.reopen({concatenatedProperties:[\"queryParams\"],queryParams:null,_qpDelegate:null,_qpChanged:function(e,t){var n=t.indexOf(\".[]\"),r=-1===n?t:t.slice(0,n);(0,e._qpDelegate)(r,(0,o.get)(e,r))},transitionToRoute:function(){for(var e=(0,o.get)(this,\"target\"),t=e.transitionToRoute||e.transitionTo,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.apply(e,(0,a.prefixRouteNameArg)(this,r))},replaceRoute:function(){for(var e=(0,o.get)(this,\"target\"),t=e.replaceRoute||e.replaceWith,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.apply(e,(0,a.prefixRouteNameArg)(this,r))}});var n=t.default;e.default=n}),e(\"@ember/-internals/routing/lib/location/api\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=void 0;var n={create:function(e){var t=e&&e.implementation,n=this.implementations[t];return n.create.apply(n,arguments)},implementations:{}};e.default=n}),e(\"@ember/-internals/routing/lib/location/auto_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/browser-environment\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,t,i,o,n,a,s,f){\"use strict\";e.getHistoryPath=p,e.getHashPath=d,e.default=void 0;var u=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"auto\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.detect=function(){var e=this.rootURL,t=function(e){var t=e.location,n=e.userAgent,r=e.history,i=e.documentMode,o=e.global,a=e.rootURL,s=\"none\",u=!1,l=(0,f.getFullPath)(t);{var c,h;(0,f.supportsHistory)(n,r)?(c=p(a,t),l===c?s=\"history\":\"/#\"===l.substr(0,2)?(r.replaceState({path:c},\"\",c),s=\"history\"):(u=!0,(0,f.replacePath)(t,c))):(0,f.supportsHashChange)(i,o)&&(h=d(a,t),l===h||\"/\"===l&&\"/#/\"===h?s=\"hash\":(u=!0,(0,f.replacePath)(t,h)))}if(u)return!1;return s}({location:this.location,history:this.history,userAgent:this.userAgent,rootURL:e,documentMode:this.documentMode,global:this.global});!1===t&&((0,i.set)(this,\"cancelRouterSetup\",!0),t=\"none\");var n=(0,o.getOwner)(this).lookup(\"location:\"+t);(0,i.set)(n,\"rootURL\",e),(0,i.set)(this,\"concreteImplementation\",n)},n.willDestroy=function(){var e=this.concreteImplementation;e&&e.destroy()},e}(n.Object);function l(i){return function(){for(var e=this.concreteImplementation,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(0,a.tryInvoke)(e,i,n)}}function p(e,t){var n,r,i=(0,f.getPath)(t),o=(0,f.getHash)(t),a=(0,f.getQuery)(t);i.indexOf(e);return\"#/\"===o.substr(0,2)?(n=(r=o.substr(1).split(\"#\")).shift(),\"/\"===i.charAt(i.length-1)&&(n=n.substr(1)),i+=n+a,r.length&&(i+=\"#\"+r.join(\"#\"))):i+=a+o,i}function d(e,t){var n=e,r=p(e,t).substr(e.length);return\"\"!==r&&(\"/\"!==r[0]&&(r=\"/\"+r),n+=\"#\"+r),n}(e.default=u).reopen({rootURL:\"/\",initState:l(\"initState\"),getURL:l(\"getURL\"),setURL:l(\"setURL\"),replaceURL:l(\"replaceURL\"),onUpdateURL:l(\"onUpdateURL\"),formatURL:l(\"formatURL\"),location:t.location,history:t.history,global:t.window,userAgent:t.userAgent,cancelRouterSetup:!1})}),e(\"@ember/-internals/routing/lib/location/hash_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/runloop\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,i,t,o,a){\"use strict\";e.default=void 0;var n=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"hash\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.init=function(){(0,i.set)(this,\"location\",this._location||window.location),this._hashchangeHandler=void 0},n.getHash=function(){return(0,a.getHash)(this.location)},n.getURL=function(){var e=this.getHash().substr(1),t=e;return\"/\"!==t[0]&&(t=\"/\",e&&(t+=\"#\"+e)),t},n.setURL=function(e){this.location.hash=e,(0,i.set)(this,\"lastSetURL\",e)},n.replaceURL=function(e){this.location.replace(\"#\"+e),(0,i.set)(this,\"lastSetURL\",e)},n.onUpdateURL=function(t){this._removeEventListener(),this._hashchangeHandler=(0,o.bind)(this,function(){var e=this.getURL();this.lastSetURL!==e&&((0,i.set)(this,\"lastSetURL\",null),t(e))}),window.addEventListener(\"hashchange\",this._hashchangeHandler)},n.formatURL=function(e){return\"#\"+e},n.willDestroy=function(){this._removeEventListener()},n._removeEventListener=function(){this._hashchangeHandler&&window.removeEventListener(\"hashchange\",this._hashchangeHandler)},e}(t.Object);e.default=n}),e(\"@ember/-internals/routing/lib/location/history_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,i,t,o){\"use strict\";e.default=void 0;var a=!1;function s(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})}var n=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"history\",e.rootURL=\"/\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.getHash=function(){return(0,o.getHash)(this.location)},n.init=function(){this._super.apply(this,arguments);var e=document.querySelector(\"base\"),t=\"\";e&&(t=e.getAttribute(\"href\")),(0,i.set)(this,\"baseURL\",t),(0,i.set)(this,\"location\",this.location||window.location),this._popstateHandler=void 0},n.initState=function(){var e=this.history||window.history;(0,i.set)(this,\"history\",e),e&&\"state\"in e&&(this.supportsHistory=!0);var t=this.getState(),n=this.formatURL(this.getURL());t&&t.path===n?this._previousURL=this.getURL():this.replaceState(n)},n.getURL=function(){var e=this.location,t=this.rootURL,n=this.baseURL,r=e.pathname,t=t.replace(/\\/$/,\"\"),n=n.replace(/\\/$/,\"\"),i=r.replace(new RegExp(\"^\"+n+\"(?=/|$)\"),\"\").replace(new RegExp(\"^\"+t+\"(?=/|$)\"),\"\").replace(/\\/\\//g,\"/\");return i+=(e.search||\"\")+this.getHash()},n.setURL=function(e){var t=this.getState();e=this.formatURL(e),t&&t.path===e||this.pushState(e)},n.replaceURL=function(e){var t=this.getState();e=this.formatURL(e),t&&t.path===e||this.replaceState(e)},n.getState=function(){return this.supportsHistory?this.history.state:this._historyState},n.pushState=function(e){var t={path:e,uuid:s()};this.history.pushState(t,null,e),this._historyState=t,this._previousURL=this.getURL()},n.replaceState=function(e){var t={path:e,uuid:s()};this.history.replaceState(t,null,e),this._historyState=t,this._previousURL=this.getURL()},n.onUpdateURL=function(e){var t=this;this._removeEventListener(),this._popstateHandler=function(){!a&&(a=!0,t.getURL()===t._previousURL)||e(t.getURL())},window.addEventListener(\"popstate\",this._popstateHandler)},n.formatURL=function(e){var t=this.rootURL,n=this.baseURL;return\"\"!==e?(t=t.replace(/\\/$/,\"\"),n=n.replace(/\\/$/,\"\")):\"/\"===n[0]&&\"/\"===t[0]&&(n=n.replace(/\\/$/,\"\")),n+t+e},n.willDestroy=function(){this._removeEventListener()},n._removeEventListener=function(){this._popstateHandler&&window.removeEventListener(\"popstate\",this._popstateHandler)},e}(t.Object);e.default=n}),e(\"@ember/-internals/routing/lib/location/none_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/debug\"],function(e,r,i,t,n){\"use strict\";e.default=void 0;var o=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"none\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.detect=function(){this.rootURL},n.getURL=function(){var e=this.path,t=(t=this.rootURL).replace(/\\/$/,\"\");return e.replace(new RegExp(\"^\"+t+\"(?=/|$)\"),\"\")},n.setURL=function(e){(0,i.set)(this,\"path\",e)},n.onUpdateURL=function(e){this.updateCallback=e},n.handleURL=function(e){(0,i.set)(this,\"path\",e),this.updateCallback(e)},n.formatURL=function(e){var t=this.rootURL;return\"\"!==e&&(t=t.replace(/\\/$/,\"\")),t+e},e}(t.Object);(e.default=o).reopen({path:\"\",rootURL:\"/\"})}),e(\"@ember/-internals/routing/lib/location/util\",[\"exports\"],function(e){\"use strict\";function t(e){var t=e.pathname;return\"/\"!==t[0]&&(t=\"/\"+t),t}function n(e){return e.search}function r(e){return void 0!==e.hash?e.hash.substr(0):\"\"}function i(e){var t=e.origin;return t||(t=e.protocol+\"//\"+e.hostname,e.port&&(t+=\":\"+e.port)),t}e.getPath=t,e.getQuery=n,e.getHash=r,e.getFullPath=function(e){return t(e)+n(e)+r(e)},e.getOrigin=i,e.supportsHashChange=function(e,t){return t&&\"onhashchange\"in t&&(void 0===e||7<e)},e.supportsHistory=function(e,t){return(-1===e.indexOf(\"Android 2.\")&&-1===e.indexOf(\"Android 4.0\")||-1===e.indexOf(\"Mobile Safari\")||-1!==e.indexOf(\"Chrome\")||-1!==e.indexOf(\"Windows Phone\"))&&Boolean(t&&\"pushState\"in t)},e.replacePath=function(e,t){e.replace(i(e)+t)}}),e(\"@ember/-internals/routing/lib/services/router\",[\"exports\",\"ember-babel\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/object/computed\",\"@ember/service\",\"@ember/-internals/routing/lib/utils\"],function(e,r,t,n,i,o,u){\"use strict\";function a(e,t){return\"/\"===t?e:e.substr(t.length,e.length)}e.default=void 0;var s=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){var t=this;e.prototype.init.apply(this,arguments),this._router.on(\"routeWillChange\",function(e){t.trigger(\"routeWillChange\",e)}),this._router.on(\"routeDidChange\",function(e){t.trigger(\"routeDidChange\",e)})},n.transitionTo=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((0,u.resemblesURL)(t[0]))return this._router._doURLTransition(\"transitionTo\",t[0]);var r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams,s=this._router._doTransition(i,o,a,!0);return s._keepDefaultQueryParamValues=!0,s},n.replaceWith=function(){return this.transitionTo.apply(this,arguments).method(\"replace\")},n.urlFor=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return(t=this._router).generate.apply(t,[e].concat(r))},n.isActive=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams,s=this._router._routerMicrolib;return!!s.isActiveIntent(i,o)&&(!(0<Object.keys(a).length)||(this._router._prepareQueryParams(i,o,a,!0),(0,u.shallowEqual)(a,s.state.queryParams)))},n.recognize=function(e){var t=a(e,this.rootURL);return this._router._routerMicrolib.recognize(t)},n.recognizeAndLoad=function(e){var t=a(e,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(t)},t}(o.default);(e.default=s).reopen(t.Evented,{currentRouteName:(0,i.readOnly)(\"_router.currentRouteName\"),currentURL:(0,i.readOnly)(\"_router.currentURL\"),location:(0,i.readOnly)(\"_router.location\"),rootURL:(0,i.readOnly)(\"_router.rootURL\"),currentRoute:(0,i.readOnly)(\"_router.currentRoute\")})}),e(\"@ember/-internals/routing/lib/services/routing\",[\"exports\",\"ember-babel\",\"@ember/object/computed\",\"@ember/polyfills\",\"@ember/service\"],function(e,r,t,o,n){\"use strict\";e.default=void 0;var i=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.hasRoute=function(e){return this.router.hasRoute(e)},n.transitionTo=function(e,t,n,r){var i=this.router._doTransition(e,t,n);return r&&i.method(\"replace\"),i},n.normalizeQueryParams=function(e,t,n){this.router._prepareQueryParams(e,t,n)},n.generateURL=function(e,t,n){var r=this.router;if(r._routerMicrolib){var i={};return n&&((0,o.assign)(i,n),this.normalizeQueryParams(e,t,i)),r.generate.apply(r,[e].concat(t,[{queryParams:i}]))}},n.isActiveForRoute=function(e,t,n,r,i){var o=this.router._routerMicrolib.recognizer.handlersFor(n),a=o[o.length-1].handler,s=function(e,t){for(var n=0,r=0;r<t.length&&(n+=t[r].names.length,t[r].handler!==e);r++);return n}(n,o);return e.length>s&&(n=a),r.isActiveIntent(n,e,t,!i)},t}(n.default);(e.default=i).reopen({targetState:(0,t.readOnly)(\"router.targetState\"),currentState:(0,t.readOnly)(\"router.currentState\"),currentRouteName:(0,t.readOnly)(\"router.currentRouteName\"),currentPath:(0,t.readOnly)(\"router.currentPath\")})}),e(\"@ember/-internals/routing/lib/system/cache\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=function(){function e(){this.cache=new Map}var t=e.prototype;return t.has=function(e){return this.cache.has(e)},t.stash=function(e,t,n){var r=this.cache.get(e);void 0===r&&(r=new Map,this.cache.set(e,r)),r.set(t,n)},t.lookup=function(e,t,n){if(!this.has(e))return n;var r=this.cache.get(e);return r.has(t)?r.get(t):n},e}();e.default=t}),e(\"@ember/-internals/routing/lib/system/controller_for\",[\"exports\"],function(e){\"use strict\";e.default=function(e,t,n){return e.lookup(\"controller:\"+t,n)}}),e(\"@ember/-internals/routing/lib/system/dsl\",[\"exports\",\"@ember/debug\",\"@ember/polyfills\"],function(e,t,y){\"use strict\";e.default=void 0;var b=0;function s(e){return\"function\"==typeof e}var n=function(){function g(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,t=1<arguments.length?arguments[1]:void 0;this.explicitIndex=!1,this.parent=e,this.enableLoadingSubstates=Boolean(t&&t.enableLoadingSubstates),this.matches=[],this.options=t}var e=g.prototype;return e.route=function(e,t,n){var r,i,o=null,a=\"/_unused_dummy_error_path_route_\"+e+\"/:error\";s(t)?(r={},o=t):s(n)?(r=t,o=n):r=t||{},this.enableLoadingSubstates&&(w(this,e+\"_loading\",{resetNamespace:r.resetNamespace}),w(this,e+\"_error\",{resetNamespace:r.resetNamespace,path:a})),o?(w(i=new g(_(this,e,r.resetNamespace),this.options),\"loading\"),w(i,\"error\",{path:a}),o.call(i),w(this,e,r,i.generate())):w(this,e,r)},e.push=function(e,t,n,r){var i=t.split(\".\");if(this.options.engineInfo){var o=t.slice(this.options.engineInfo.fullName.length+1),a=(0,y.assign)({localFullName:o},this.options.engineInfo);r&&(a.serializeMethod=r),this.options.addRouteForEngine(t,a)}else if(r)throw new Error(\"Defining a route serializer on route '\"+t+\"' outside an Engine is not allowed.\");\"\"!==e&&\"/\"!==e&&\"index\"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(e,t,n)},e.generate=function(){var n=this.matches;return this.explicitIndex||this.route(\"index\",{path:\"/\"}),function(e){for(var t=0;t<n.length;t+=3)e(n[t]).to(n[t+1],n[t+2])}},e.mount=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=this.options.resolveRouteMap(e),i=e;n.as&&(i=n.as);var o,a=_(this,i,n.resetNamespace),s={name:e,instanceId:b++,mountPoint:a,fullName:a},u=n.path;\"string\"!=typeof u&&(u=\"/\"+i);var l,c,h,f=\"/_unused_dummy_error_path_route_\"+i+\"/:error\";r&&(l=!1,(c=this.options.engineInfo)&&(l=!0,this.options.engineInfo=s),w(h=new g(a,(0,y.assign)({engineInfo:s},this.options)),\"loading\"),w(h,\"error\",{path:f}),r.class.call(h),o=h.generate(),l&&(this.options.engineInfo=c));var p,d,m,v=(0,y.assign)({localFullName:\"application\"},s);this.enableLoadingSubstates&&(p=i+\"_loading\",d=\"application_loading\",m=(0,y.assign)({localFullName:d},s),w(this,p,{resetNamespace:n.resetNamespace}),this.options.addRouteForEngine(p,m),p=i+\"_error\",d=\"application_error\",m=(0,y.assign)({localFullName:d},s),w(this,p,{resetNamespace:n.resetNamespace,path:f}),this.options.addRouteForEngine(p,m)),this.options.addRouteForEngine(a,v),this.push(u,a,o)},g}();function _(e,t,n){return\"application\"!==e.parent&&!0!==n?e.parent+\".\"+t:t}function w(e,t,n,r){var i=2<arguments.length&&void 0!==n?n:{},o=3<arguments.length?r:void 0,a=_(e,t,i.resetNamespace);\"string\"!=typeof i.path&&(i.path=\"/\"+t),e.push(i.path,a,o,i.serialize)}e.default=n}),e(\"@ember/-internals/routing/lib/system/engines\",[],function(){}),e(\"@ember/-internals/routing/lib/system/generate_controller\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,t,n){\"use strict\";function i(e,t){var n=(n=e.factoryFor(\"controller:basic\").class).extend({toString:function(){return\"(generated \"+t+\" controller)\"}}),r=\"controller:\"+t;return e.register(r,n),e.factoryFor(r)}e.generateControllerFactory=i,e.default=function(e,t){i(e,t);var n=\"controller:\"+t,r=e.lookup(n);0;return r}}),e(\"@ember/-internals/routing/lib/system/query_params\",[\"exports\"],function(e){\"use strict\";e.default=void 0;e.default=function(e){var t=0<arguments.length&&void 0!==e?e:null;this.isQueryParams=!0,this.values=t}}),e(\"@ember/-internals/routing/lib/system/route-info\",[],function(){}),e(\"@ember/-internals/routing/lib/system/route\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\",\"@ember/runloop\",\"@ember/string\",\"router_js\",\"@ember/-internals/routing/lib/utils\",\"@ember/-internals/routing/lib/system/generate_controller\"],function(e,w,r,E,T,C,a,t,s,n,g,R,k){\"use strict\";e.defaultSerialize=i,e.hasDefaultSerialize=function(e){return e.serialize===i},e.default=e.ROUTER_EVENT_DEPRECATIONS=e.ROUTE_CONNECTIONS=void 0;var u=new WeakMap;function i(e,t){if(!(t.length<1)&&e){var n,r={};return 1===t.length?(n=t[0])in e?r[n]=(0,E.get)(e,n):/_id$/.test(n)&&(r[n]=(0,E.get)(e,\"id\")):r=(0,E.getProperties)(e,t),r}}e.ROUTE_CONNECTIONS=u;var o,l=function(t){function e(){var e=t.apply(this,arguments)||this;return e.context={},e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n._setRouteName=function(e){this.routeName=e,this.fullRouteName=c((0,T.getOwner)(this),e)},n._stashNames=function(e,t){if(!this._names){var n=this._names=e._names;n.length||(n=(e=t)&&e._names||[]);for(var r=(0,E.get)(this,\"_qp.qps\"),i=new Array(n.length),o=0;o<n.length;++o)i[o]=e.name+\".\"+n[o];for(var a=0;a<r.length;++a){var s=r[a];\"model\"===s.scope&&(s.parts=i)}}},n._activeQPChanged=function(e,t){this._router._activeQPChanged(e.scopedPropertyName,t)},n._updatingQPChanged=function(e){this._router._updatingQPChanged(e.urlKey)},n.paramsFor=function(e){var t=(0,T.getOwner)(this).lookup(\"route:\"+e);if(!t)return{};var n=this._router._routerMicrolib.activeTransition,r=n?n[g.STATE_SYMBOL]:this._router._routerMicrolib.state,i=t.fullRouteName,o=(0,w.assign)({},r.params[i]),a=p(t,r);return Object.keys(a).reduce(function(e,t){return e[t]=a[t],e},o)},n.serializeQueryParamKey=function(e){return e},n.serializeQueryParam=function(e,t,n){return this._router._serializeQueryParam(e,n)},n.deserializeQueryParam=function(e,t,n){return this._router._deserializeQueryParam(e,n)},n._optionsForQueryParam=function(e){return(0,E.get)(this,\"queryParams.\"+e.urlKey)||(0,E.get)(this,\"queryParams.\"+e.prop)||{}},n.resetController=function(){return this},n.exit=function(){this.deactivate(),this.trigger(\"deactivate\"),this.teardownViews()},n._internalReset=function(e,t){var n=this.controller;n._qpDelegate=(0,E.get)(this,\"_qp.states.inactive\"),this.resetController(n,e,t)},n.enter=function(){u.set(this,[]),this.activate(),this.trigger(\"activate\")},n.deactivate=function(){},n.activate=function(){},n.transitionTo=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=this._router).transitionTo.apply(e,(0,R.prefixRouteNameArg)(this,n))},n.intermediateTransitionTo=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=(0,R.prefixRouteNameArg)(this,n),o=i[0],a=i.slice(1);(e=this._router).intermediateTransitionTo.apply(e,[o].concat(a))},n.refresh=function(){return this._router._routerMicrolib.refresh(this)},n.replaceWith=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=this._router).replaceWith.apply(e,(0,R.prefixRouteNameArg)(this,n))},n.setup=function(e,t){var n,r,i,o=this.controllerName||this.routeName,a=this.controllerFor(o,!0),s=a||this.generateController(o);this.controller||(r=void 0!==(n=(0,E.get)(this,\"_qp\"))?(0,E.get)(n,\"propertyNames\"):[],i=s,r.forEach(function(e){i.addObserver(e+\".[]\",i,i._qpChanged)}),this.controller=s);var u,l,c,h=(0,E.get)(this,\"_qp\"),f=h.states;s._qpDelegate=f.allowOverrides,t&&((0,R.stashParamNames)(this._router,t[g.STATE_SYMBOL].routeInfos),u=this._bucketCache,l=t[g.PARAMS_SYMBOL],h.propertyNames.forEach(function(e){var t=h.map[e];t.values=l;var n=(0,R.calculateCacheKey)(t.route.fullRouteName,t.parts,t.values),r=u.lookup(n,e,t.undecoratedDefaultValue);(0,E.set)(s,e,r)}),c=p(this,t[g.STATE_SYMBOL]),(0,E.setProperties)(s,c)),this.setupController(s,e,t),this._environment.options.shouldRender&&this.renderTemplate(s,e)},n._qpChanged=function(e,t,n){var r,i;n&&(r=this._bucketCache,i=(0,R.calculateCacheKey)(n.route.fullRouteName,n.parts,n.values),r.stash(i,e,t))},n.beforeModel=function(){},n.afterModel=function(){},n.redirect=function(){},n.contextDidChange=function(){this.currentModel=this.context},n.model=function(e,t){var n,r,i,o,a=(0,E.get)(this,\"_qp.map\");for(var s in e){\"queryParams\"===s||a&&s in a||(null!==(o=s.match(/^(.*)_id$/))&&(n=o[1],i=e[s]),r=!0)}return n?this.findModel(n,i):r?(0,w.assign)({},e):t.resolveIndex<1?void 0:t[g.STATE_SYMBOL].routeInfos[t.resolveIndex-1].context},n.deserialize=function(e,t){return this.model(this._paramsFor(this.routeName,e),t)},n.findModel=function(){var e;return(e=(0,E.get)(this,\"store\")).find.apply(e,arguments)},n.setupController=function(e,t){e&&void 0!==t&&(0,E.set)(e,\"model\",t)},n.controllerFor=function(e){var t=(0,T.getOwner)(this),n=t.lookup(\"route:\"+e);return n&&n.controllerName&&(e=n.controllerName),t.lookup(\"controller:\"+e)},n.generateController=function(e){var t=(0,T.getOwner)(this);return(0,k.default)(t,e)},n.modelFor=function(e){var t=(0,T.getOwner)(this),n=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0,r=t.routable&&void 0!==n?c(t,e):e,i=t.lookup(\"route:\"+r);if(null!=n){var o=i&&i.routeName||r;if(n.resolvedModels.hasOwnProperty(o))return n.resolvedModels[o]}return i&&i.currentModel},n.renderTemplate=function(){this.render()},n.render=function(e,t){var n,r=0===arguments.length;r||(\"object\"!=typeof e||t?n=e:(n=this.templateName||this.routeName,t=e));var i=function(e,t,n,r){var i,o,a,s,u,l,c=(0,T.getOwner)(e);r&&(a=r.into&&r.into.replace(/\\//g,\".\"),s=r.outlet,u=r.controller,l=r.model);s=s||\"main\",o=t?(i=e.routeName,e.templateName||i):(i=n.replace(/\\//g,\".\"),i);u=u||(t?e.controllerName||c.lookup(\"controller:\"+i):c.lookup(\"controller:\"+i)||e.controllerName||e.routeName);{var h;\"string\"==typeof u&&(h=u,u=c.lookup(\"controller:\"+h))}l&&u.set(\"model\",l);var f,p=c.lookup(\"template:\"+o);a&&(f=m(e))&&a===f.routeName&&(a=void 0);var d={owner:c,into:a,outlet:s,name:i,controller:u,template:p||e._topLevelViewTemplate};{}return d}(this,r,n,t);u.get(this).push(i),(0,s.once)(this._router,\"_setOutlets\")},n.disconnectOutlet=function(e){var t,n;e&&(\"string\"==typeof e?t=e:(t=e.outlet,n=e.parentView?e.parentView.replace(/\\//g,\".\"):void 0)),t=t||\"main\",this._disconnectOutlet(t,n);for(var r=this._router._routerMicrolib.currentRouteInfos,i=0;i<r.length;i++)r[i].route._disconnectOutlet(t,n)},n._disconnectOutlet=function(e,t){var n=m(this);n&&t===n.routeName&&(t=void 0);for(var r=u.get(this),i=0;i<r.length;i++){var o=r[i];o.outlet===e&&o.into===t&&(r[i]={owner:o.owner,into:o.into,outlet:o.outlet,name:o.name,controller:void 0,template:void 0},(0,s.once)(this._router,\"_setOutlets\"))}u.set(this,r)},n.willDestroy=function(){this.teardownViews()},n.teardownViews=function(){var e=u.get(this);void 0!==e&&0<e.length&&(u.set(this,[]),(0,s.once)(this._router,\"_setOutlets\"))},n.buildRouteInfoMetadata=function(){},e}(C.Object);function m(e){var t=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;if(!t)return;for(var r=0;r<t.length;r++)if(t[r].route===e)return t[r+n];return}(e,e._router._routerMicrolib.state.routeInfos,-1);return t&&t.route}function p(e,t){t.queryParamsFor=t.queryParamsFor||{};var n=e.fullRouteName;if(t.queryParamsFor[n])return t.queryParamsFor[n];for(var r,i,o=(r=e._router,(i=t).fullQueryParams||(i.fullQueryParams={},(0,w.assign)(i.fullQueryParams,i.queryParams),r._deserializeQueryParams(i.routeInfos,i.fullQueryParams)),i.fullQueryParams),a=t.queryParamsFor[n]={},s=(0,E.get)(e,\"_qp.qps\"),u=0;u<s.length;++u){var l=s[u],c=l.prop in o;a[l.prop]=c?o[l.prop]:x(l.defaultValue)}return a}function x(e){return Array.isArray(e)?(0,C.A)(e.slice()):e}function c(e,t){if(e.routable){var n=e.mountPoint;return\"application\"===t?n:n+\".\"+t}return t}l.reopenClass({isRouteFactory:!0}),l.prototype.serialize=i,l.reopen(C.ActionHandler,C.Evented,{mergedProperties:[\"queryParams\"],queryParams:{},templateName:null,_names:null,controllerName:null,store:(0,E.computed)({get:function(){var r=(0,T.getOwner)(this);this.routeName,(0,E.get)(this,\"_router.namespace\");return{find:function(e,t){var n=r.factoryFor(\"model:\"+e);if(n)return(n=n.class).find(t)}}},set:function(e,t){(0,E.defineProperty)(this,e,null,t)}}),_qp:(0,E.computed)(function(){var e,t,r=this,n=this.controllerName||this.routeName,i=(0,T.getOwner)(this),o=i.lookup(\"controller:\"+n),a=(0,E.get)(this,\"queryParams\"),s=0<Object.keys(a).length;o?(e=(0,E.get)(o,\"queryParams\")||{},t=function(e,t){var n,r,i={},o={defaultValue:!0,type:!0,scope:!0,as:!0};for(var a in e){e.hasOwnProperty(a)&&(n={},(0,w.assign)(n,e[a],t[a]),i[a]=n,o[a]=!0)}for(var s in t){t.hasOwnProperty(s)&&!o[s]&&(r={},(0,w.assign)(r,t[s],e[s]),i[s]=r)}return i}((0,R.normalizeControllerQueryParams)(e),a)):s&&(o=(0,k.default)(i,n),t=a);var u,l,c,h,f,p,d,m,v,g=[],y={},b=[];for(var _ in t){t.hasOwnProperty(_)&&\"unknownProperty\"!==_&&\"_super\"!==_&&(c=\"controller\"===(l=(u=t[_]).scope||\"model\")?[]:void 0,h=u.as||this.serializeQueryParamKey(_),f=x(f=(0,E.get)(o,_)),p=u.type||(0,C.typeOf)(f),d=this.serializeQueryParam(f,h,p),m=n+\":\"+_,v={undecoratedDefaultValue:(0,E.get)(o,_),defaultValue:f,serializedDefaultValue:d,serializedValue:d,type:p,urlKey:h,prop:_,scopedPropertyName:m,controllerName:n,route:this,parts:c,values:null,scope:l},y[_]=y[h]=y[m]=v,g.push(v),b.push(_))}return{qps:g,map:y,propertyNames:b,states:{inactive:function(e,t){var n=y[e];r._qpChanged(e,t,n)},active:function(e,t){var n=y[e];return r._qpChanged(e,t,n),r._activeQPChanged(n,t)},allowOverrides:function(e,t){var n=y[e];return r._qpChanged(e,t,n),r._updatingQPChanged(n)}}}}),send:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(this._router&&this._router._routerMicrolib||!(0,a.isTesting)()){(e=this._router).send.apply(e,n)}else{var i=n.shift(),o=this.actions[i];if(o)return o.apply(this,n)}},actions:{queryParamsDidChange:function(e,t,n){for(var r=(0,E.get)(this,\"_qp\").map,i=Object.keys(e).concat(Object.keys(n)),o=0;o<i.length;++o){var a=r[i[o]];if(a&&(0,E.get)(this._optionsForQueryParam(a),\"refreshModel\")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange:function(e,t,n){if(\"application\"!==this.fullRouteName)return!0;if(n){var r,i=n[g.STATE_SYMBOL].routeInfos,o=this._router,a=o._queryParamsFor(i),s=o._qpUpdates;(0,R.stashParamNames)(o,i);for(var u=0;u<a.qps.length;++u){var l,c,h=a.qps[u],f=h.route,p=f.controller,d=h.urlKey in e&&h.urlKey,m=void 0,v=void 0;s.has(h.urlKey)?(m=(0,E.get)(p,h.prop),v=f.serializeQueryParam(m,h.urlKey,h.type)):d?void 0!==(v=e[d])&&(m=f.deserializeQueryParam(v,h.urlKey,h.type)):(v=h.serializedDefaultValue,m=x(h.defaultValue)),p._qpDelegate=(0,E.get)(f,\"_qp.states.inactive\"),v!==h.serializedValue&&(n.queryParamsOnly&&!1!==r&&(l=f._optionsForQueryParam(h),(c=(0,E.get)(l,\"replace\"))?r=!0:!1===c&&(r=!1)),(0,E.set)(p,h.prop,m)),h.serializedValue=v,h.serializedDefaultValue===v&&!n._keepDefaultQueryParamValues||t.push({value:v,visible:!0,key:d||h.urlKey})}r&&n.method(\"replace\"),a.qps.forEach(function(e){var t=(0,E.get)(e.route,\"_qp\");e.route.controller._qpDelegate=(0,E.get)(t,\"states.active\")}),o._qpUpdates.clear()}}}}),e.ROUTER_EVENT_DEPRECATIONS=o,t.ROUTER_EVENTS&&(e.ROUTER_EVENT_DEPRECATIONS=o={on:function(e){this._super.apply(this,arguments)}},l.reopen(o,{_paramsFor:function(e,t){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(e):t}})),(0,C.setFrameworkClass)(l),e.default=l}),e(\"@ember/-internals/routing/lib/system/router\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\",\"@ember/error\",\"@ember/polyfills\",\"@ember/runloop\",\"@ember/-internals/routing/lib/location/api\",\"@ember/-internals/routing/lib/utils\",\"@ember/-internals/routing/lib/system/dsl\",\"@ember/-internals/routing/lib/system/route\",\"@ember/-internals/routing/lib/system/router_state\",\"router_js\"],function(e,o,p,d,a,t,c,l,f,h,s,m,i,v,r,g){\"use strict\";function n(e){A(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange(\"url\"),this.set(\"currentState\",this.targetState),(0,h.once)(this,this.trigger,\"didTransition\")}function u(e,t,n){(0,h.once)(this,this.trigger,\"willTransition\",n)}function y(){return this}e.triggerEvent=k,e.default=void 0;var b=Array.prototype.slice,_=function(t){function e(){var e=t.apply(this,arguments)||this;return e.currentURL=null,e.currentRouteName=null,e.currentPath=null,e.currentRoute=null,e._qpCache=Object.create(null),e._qpUpdates=new Set,e._handledErrors=new Set,e._engineInstances=Object.create(null),e._engineInfoByRoute=Object.create(null),e.currentState=null,e.targetState=null,e._resetQueuedQueryParameterChanges(),e}(0,o.inheritsLoose)(e,t);var n=e.prototype;return n._initRouterJs=function(){var r=(0,p.get)(this,\"location\"),s=this,u=(0,d.getOwner)(this),l=Object.create(null),e=function(e){function t(){return e.apply(this,arguments)||this}(0,o.inheritsLoose)(t,e);var n=t.prototype;return n.getRoute=function(e){var t=e,n=u,r=s._engineInfoByRoute[t];r&&(n=s._getEngineInstance(r),t=r.localFullName);var i,o=\"route:\"+t,a=n.lookup(o);if(l[e])return a;if(l[e]=!0,a||(i=n.factoryFor(\"route:basic\").class,n.register(o,i.extend()),a=n.lookup(o)),a._setRouteName(t),r&&!(0,v.hasDefaultSerialize)(a))throw new Error(\"Defining a custom serialize method on an Engine route is not supported.\");return a},n.getSerializer=function(e){var t=s._engineInfoByRoute[e];if(t)return t.serializeMethod||v.defaultSerialize},n.updateURL=function(e){(0,h.once)(function(){r.setURL(e),(0,p.set)(s,\"currentURL\",e)})},n.didTransition=function(e){c.ROUTER_EVENTS&&s.didTransition,s.didTransition(e)},n.willTransition=function(e,t,n){c.ROUTER_EVENTS&&s.willTransition,s.willTransition(e,t,n)},n.triggerEvent=function(e,t,n,r){return k.bind(s)(e,t,n,r)},n.routeWillChange=function(e){s.trigger(\"routeWillChange\",e)},n.routeDidChange=function(e){s.set(\"currentRoute\",e.to),(0,h.once)(function(){s.trigger(\"routeDidChange\",e)})},n.transitionDidError=function(e,t){return e.wasAborted||t.isAborted?(0,g.logAbort)(t):(t.trigger(!1,\"error\",e.error,t,e.route),s._isErrorHandled(e.error)?(t.rollback(),this.routeDidChange(t)):t.abort(),e.error)},n._triggerWillChangeContext=function(){return s},n._triggerWillLeave=function(){return s},n.replaceURL=function(e){r.replaceURL?(0,h.once)(function(){r.replaceURL(e),(0,p.set)(s,\"currentURL\",e)}):this.updateURL(e)},t}(g.default),t=this._routerMicrolib=new e,n=this.constructor.dslCallbacks||[y],i=this._buildDSL();i.route(\"application\",{path:\"/\",resetNamespace:!0,overrideNameAssertion:!0},function(){for(var e=0;e<n.length;e++)n[e].call(this)}),t.map(i.generate())},n._buildDSL=function(){var e=this._hasModuleBasedResolver(),n=this,t=(0,d.getOwner)(this),r={enableLoadingSubstates:e,resolveRouteMap:function(e){return t.factoryFor(\"route-map:\"+e)},addRouteForEngine:function(e,t){n._engineInfoByRoute[e]||(n._engineInfoByRoute[e]=t)}};return new i.default(null,r)},n._resetQueuedQueryParameterChanges=function(){this._queuedQPChanges={}},n._hasModuleBasedResolver=function(){var e=(0,d.getOwner)(this);if(!e)return!1;var t=(0,p.get)(e,\"application.__registry__.resolver.moduleBasedResolver\");return Boolean(t)},n.startRouting=function(){var e=(0,p.get)(this,\"initialURL\");if(this.setupRouter()){void 0===e&&(e=(0,p.get)(this,\"location\").getURL());var t=this.handleURL(e);if(t&&t.error)throw t.error}},n.setupRouter=function(){var t=this;this._setupLocation();var e=(0,p.get)(this,\"location\");return!(0,p.get)(e,\"cancelRouterSetup\")&&(this._initRouterJs(),e.onUpdateURL(function(e){t.handleURL(e)}),!0)},n._setOutlets=function(){if(!this.isDestroying&&!this.isDestroyed){var e,t,n=this._routerMicrolib.currentRouteInfos,r=null;if(n){for(var i,o,a,s,u=0;u<n.length;u++){e=n[u].route;for(var l=v.ROUTE_CONNECTIONS.get(e),c=void 0,h=0;h<l.length;h++){var f=function(e,t,n){var r,i={render:n,outlets:Object.create(null),wasUsed:!1};r=n.into?N(e,n.into):t;r?(0,p.set)(r.outlets,n.outlet,i):e=i;return{liveRoutes:e,ownState:i}}(r,t,l[h]),r=f.liveRoutes;f.ownState.render.name!==e.routeName&&\"main\"!==f.ownState.render.outlet||(c=f.ownState)}0===l.length&&(i=t,c=N(r,(o=e).routeName)||(i.outlets.main={render:{name:o.routeName,outlet:\"main\"},outlets:{}},i)),t=c}r&&(this._toplevelView?this._toplevelView.setOutletState(r):(s=(a=(0,d.getOwner)(this)).factoryFor(\"view:-outlet\"),this._toplevelView=s.create(),this._toplevelView.setOutletState(r),a.lookup(\"-application-instance:main\").didCreateRootView(this._toplevelView)))}}},n.handleURL=function(e){var t=e.split(/#(.+)?/)[0];return this._doURLTransition(\"handleURL\",t)},n._doURLTransition=function(e,t){var n=this._routerMicrolib[e](t||\"/\");return O(n,this),n},n.transitionTo=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((0,m.resemblesURL)(t[0]))return this._doURLTransition(\"transitionTo\",t[0]);var r=(0,m.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams;return this._doTransition(i,o,a)},n.intermediateTransitionTo=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this._routerMicrolib).intermediateTransitionTo.apply(t,[e].concat(r)),A(this)},n.replaceWith=function(){return this.transitionTo.apply(this,arguments).method(\"replace\")},n.generate=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var o=(t=this._routerMicrolib).generate.apply(t,[e].concat(r));return this.location.formatURL(o)},n.isActive=function(e){return this._routerMicrolib.isActive(e)},n.isActiveIntent=function(e,t,n){return this.currentState.isActiveIntent(e,t,n)},n.send=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this._routerMicrolib).trigger.apply(t,[e].concat(r))},n.hasRoute=function(e){return this._routerMicrolib.hasRoute(e)},n.reset=function(){this._routerMicrolib&&this._routerMicrolib.reset()},n.willDestroy=function(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),this._super.apply(this,arguments),this.reset();var e=this._engineInstances;for(var t in e)for(var n in e[t])(0,h.run)(e[t][n],\"destroy\")},n._activeQPChanged=function(e,t){this._queuedQPChanges[e]=t,(0,h.once)(this,this._fireQueryParamTransition)},n._updatingQPChanged=function(e){this._qpUpdates.add(e)},n._fireQueryParamTransition=function(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()},n._setupLocation=function(){var e,t,n=this.location,r=this.rootURL,i=(0,d.getOwner)(this);\"string\"==typeof n&&i&&(n=void 0!==(e=i.lookup(\"location:\"+n))?(0,p.set)(this,\"location\",e):(t={implementation:n},(0,p.set)(this,\"location\",s.default.create(t)))),null!==n&&\"object\"==typeof n&&(r&&(0,p.set)(n,\"rootURL\",r),\"function\"==typeof n.detect&&n.detect(),\"function\"==typeof n.initState&&n.initState())},n._serializeQueryParams=function(e,r){var i=this;S(this,e,r,function(e,t,n){if(n)delete r[e],r[n.urlKey]=n.route.serializeQueryParam(t,n.urlKey,n.type);else{if(void 0===t)return;r[e]=i._serializeQueryParam(t,(0,a.typeOf)(t))}})},n._serializeQueryParam=function(e,t){return null==e?e:\"array\"===t?JSON.stringify(e):\"\"+e},n._deserializeQueryParams=function(e,r){S(this,e,r,function(e,t,n){n&&(delete r[e],r[n.prop]=n.route.deserializeQueryParam(t,n.urlKey,n.type))})},n._deserializeQueryParam=function(e,t){return null==e?e:\"boolean\"===t?\"true\"===e:\"number\"===t?Number(e).valueOf():\"array\"===t?(0,a.A)(JSON.parse(e)):e},n._pruneDefaultQueryParamValues=function(e,t){var n=this._queryParamsFor(e);for(var r in t){var i=n.map[r];i&&i.serializedDefaultValue===t[r]&&delete t[r]}},n._doTransition=function(e,t,n,r){var i,o=e||(0,m.getActiveTargetName)(this._routerMicrolib),a={};this._processActiveTransitionQueryParams(o,t,a,n),(0,f.assign)(a,n),this._prepareQueryParams(o,t,a,Boolean(r));var s=(i=this._routerMicrolib).transitionTo.apply(i,[o].concat(t,[{queryParams:a}]));return O(s,this),s},n._processActiveTransitionQueryParams=function(e,t,n,r){if(this._routerMicrolib.activeTransition){var i={},o=this._qpUpdates,a=this._routerMicrolib.activeTransition[g.QUERY_PARAMS_SYMBOL];for(var s in a)o.has(s)||(i[s]=a[s]);this._fullyScopeQueryParams(e,t,r),this._fullyScopeQueryParams(e,t,i),(0,f.assign)(n,i)}},n._prepareQueryParams=function(e,t,n,r){var i=x(this,e,t);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)},n._getQPMeta=function(e){var t=e.route;return t&&(0,p.get)(t,\"_qp\")},n._queryParamsFor=function(e){var t=e.length,n=e[t-1].name,r=this._qpCache[n];if(void 0!==r)return r;for(var i,o,a=!0,s={},u=[],l=0;l<t;++l)if(i=this._getQPMeta(e[l])){for(var c=0;c<i.qps.length;c++)o=i.qps[c],u.push(o);(0,f.assign)(s,i.map)}else a=!1;var h={qps:u,map:s};return a&&(this._qpCache[n]=h),h},n._fullyScopeQueryParams=function(e,t,n){for(var r,i=x(this,e,t).routeInfos,o=0,a=i.length;o<a;++o)if(r=this._getQPMeta(i[o]))for(var s=void 0,u=void 0,l=0,c=r.qps.length;l<c;++l)(u=(s=r.qps[l]).prop in n&&s.prop||s.scopedPropertyName in n&&s.scopedPropertyName||s.urlKey in n&&s.urlKey)&&u!==s.scopedPropertyName&&(n[s.scopedPropertyName]=n[u],delete n[u])},n._hydrateUnsuppliedQueryParams=function(e,t){for(var n,r=e.routeInfos,i=this._bucketCache,o=0;o<r.length;++o)if(n=this._getQPMeta(r[o]))for(var a=0,s=n.qps.length;a<s;++a){var u,l,c=n.qps[a];(l=c.prop in t&&c.prop||c.scopedPropertyName in t&&c.scopedPropertyName||c.urlKey in t&&c.urlKey)?l!==c.scopedPropertyName&&(t[c.scopedPropertyName]=t[l],delete t[l]):(u=(0,m.calculateCacheKey)(c.route.fullRouteName,c.parts,e.params),t[c.scopedPropertyName]=i.lookup(u,c.prop,c.defaultValue))}},n._scheduleLoadingEvent=function(e,t){this._cancelSlowTransitionTimer(),this._slowTransitionTimer=(0,h.scheduleOnce)(\"routerTransitions\",this,\"_handleSlowTransition\",e,t)},n._handleSlowTransition=function(e,t){var n;this._routerMicrolib.activeTransition&&(n=new r.default(this,this._routerMicrolib,this._routerMicrolib.activeTransition[g.STATE_SYMBOL]),this.set(\"targetState\",n),e.trigger(!0,\"loading\",e,t))},n._cancelSlowTransitionTimer=function(){this._slowTransitionTimer&&(0,h.cancel)(this._slowTransitionTimer),this._slowTransitionTimer=null},n._markErrorAsHandled=function(e){this._handledErrors.add(e)},n._isErrorHandled=function(e){return this._handledErrors.has(e)},n._clearHandledError=function(e){this._handledErrors.delete(e)},n._getEngineInstance=function(e){var t=e.name,n=e.instanceId,r=e.mountPoint,i=this._engineInstances;i[t]||(i[t]=Object.create(null));var o=i[t][n];return o||((o=(0,d.getOwner)(this).buildChildEngineInstance(t,{routable:!0,mountPoint:r})).boot(),i[t][n]=o),o},e}(a.Object);function w(e,t){for(var n=e.length-1;0<=n;--n){var r=e[n],i=r.route;if(void 0!==i&&!0!==t(i,r))return}}var E={willResolveModel:function(e,t,n){this._scheduleLoadingEvent(t,n)},error:function(e,i,t){var o=this,a=e[e.length-1];w(e,function(e,t){if(t!==a){var n=C(e,\"error\");if(n)return o._markErrorAsHandled(i),o.intermediateTransitionTo(n,i),!1}var r=T(e,\"error\");return!r||(o._markErrorAsHandled(i),o.intermediateTransitionTo(r,i),!1)}),function(e,t){var n,r,i=[];r=e&&\"object\"==typeof e&&\"object\"==typeof e.errorThrown?e.errorThrown:e;t&&i.push(t);r&&(r.message&&i.push(r.message),r.stack&&i.push(r.stack),\"string\"==typeof r&&i.push(r));(n=console).error.apply(n,i)}(i,\"Error while processing route: \"+t.targetName)},loading:function(e,i){var o=this,a=e[e.length-1];w(e,function(e,t){if(t!==a){var n=C(e,\"loading\");if(n)return o.intermediateTransitionTo(n),!1}var r=T(e,\"loading\");return r?(o.intermediateTransitionTo(r),!1):i.pivotHandler!==e})}};function T(e,t){var n=(0,d.getOwner)(e),r=e.routeName,i=e.fullRouteName+\"_\"+t;return R(n,e._router,r+\"_\"+t,i)?i:\"\"}function C(e,t){var n=(0,d.getOwner)(e),r=e.routeName,i=e.fullRouteName,o=\"application\"===i?t:i+\".\"+t;return R(n,e._router,\"application\"===r?t:r+\".\"+t,o)?o:\"\"}function R(e,t,n,r){var i=t.hasRoute(r),o=e.hasRegistration(\"template:\"+n)||e.hasRegistration(\"route:\"+n);return i&&o}function k(e,t,n,r){if(!e){if(t)return;throw new l.default(\"Can't trigger action '\"+n+\"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.\")}for(var i,o,a=!1,s=e.length-1;0<=s;s--)if(o=(i=e[s].route)&&i.actions&&i.actions[n]){if(!0!==o.apply(i,r))return void(\"error\"===n&&i._router._markErrorAsHandled(r[0]));a=!0}var u=E[n];if(u)u.apply(this,[e].concat(r));else if(!a&&!t)throw new l.default(\"Nothing handled the action '\"+n+\"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.\")}function x(e,t,n){for(var r=e._routerMicrolib.applyIntent(t,n),i=r.routeInfos,o=r.params,a=0;a<i.length;++a){var s=i[a];s.isResolved?o[s.name]=s.params:o[s.name]=s.serialize(s.context)}return r}function A(e){var t,n,r,i,o=e._routerMicrolib.currentRouteInfos;0!==o.length&&(t=_._routePath(o),n=o[o.length-1].name,r=e.get(\"location\").getURL(),(0,p.set)(e,\"currentPath\",t),(0,p.set)(e,\"currentRouteName\",n),(0,p.set)(e,\"currentURL\",r),(i=(0,d.getOwner)(e).lookup(\"controller:application\"))&&c.APP_CTRL_ROUTER_PROPS&&(\"currentPath\"in i||Object.defineProperty(i,\"currentPath\",{get:function(){return(0,p.get)(e,\"currentPath\")}}),(0,p.notifyPropertyChange)(i,\"currentPath\"),\"currentRouteName\"in i||Object.defineProperty(i,\"currentRouteName\",{get:function(){return(0,p.get)(e,\"currentRouteName\")}}),(0,p.notifyPropertyChange)(i,\"currentRouteName\")))}function O(e,t){var n=new r.default(t,t._routerMicrolib,e[g.STATE_SYMBOL]);t.currentState||t.set(\"currentState\",n),t.set(\"targetState\",n),e.promise=e.catch(function(e){if(!t._isErrorHandled(e))throw e;t._clearHandledError(e)},\"Transition Error\")}function S(e,t,n,r){var i=e._queryParamsFor(t);for(var o in n){n.hasOwnProperty(o)&&r(o,n[o],i.map[o])}}function N(e,t){if(e)for(var n=[e];0<n.length;){var r=n.shift();if(r.render.name===t)return r;var i=r.outlets;for(var o in i)n.push(i[o])}}_.reopenClass({map:function(e){return this.dslCallbacks||(this.dslCallbacks=[],this.reopenClass({dslCallbacks:this.dslCallbacks})),this.dslCallbacks.push(e),this},_routePath:function(e){var t,n,r=[];for(var i=1;i<e.length;i++){for(t=e[i].name.split(\".\"),n=b.call(r);n.length&&!function(e,t){for(var n=0;n<e.length;++n)if(e[n]!==t[n])return;return 1}(n,t);)n.shift();r.push.apply(r,t.slice(n.length))}return r.join(\".\")}}),_.reopen(a.Evented,{didTransition:n,willTransition:u,rootURL:\"/\",location:\"hash\",url:(0,p.computed)(function(){return(0,p.get)(this,\"location\").getURL()})}),c.ROUTER_EVENTS&&_.reopen(v.ROUTER_EVENT_DEPRECATIONS),e.default=_}),e(\"@ember/-internals/routing/lib/system/router_state\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/routing/lib/utils\"],function(e,a,s){\"use strict\";e.default=void 0;var t=function(){function e(e,t,n){this.emberRouter=e,this.router=t,this.routerJsState=n}return e.prototype.isActiveIntent=function(e,t,n,r){var i=this.routerJsState;if(!this.router.isActiveIntent(e,t,void 0,i))return!1;if(r&&0<Object.keys(n).length){var o=(0,a.assign)({},n);return this.emberRouter._prepareQueryParams(e,t,o),(0,s.shallowEqual)(o,i.queryParams)}return!0},e}();e.default=t}),e(\"@ember/-internals/routing/lib/system/transition\",[],function(){}),e(\"@ember/-internals/routing/lib/utils\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/error\",\"@ember/polyfills\",\"router_js\"],function(e,l,o,a,s,n){\"use strict\";e.extractRouteArgs=function(e){var t,n=(e=e.slice())[e.length-1];t=n&&n.hasOwnProperty(\"queryParams\")?e.pop().queryParams:{};return{routeName:e.shift(),models:e,queryParams:t}},e.getActiveTargetName=function(e){var t=e.activeTransition?e.activeTransition[n.STATE_SYMBOL].routeInfos:e.state.routeInfos;return t[t.length-1].name},e.stashParamNames=function(e,t){if(t._namesStashed)return;for(var n,r=t[t.length-1].name,i=e._routerMicrolib.recognizer.handlersFor(r),o=0;o<t.length;++o){var a=t[o],s=i[o].names;s.length&&(n=a),a._names=s,a.route._stashNames(a,n)}t._namesStashed=!0},e.calculateCacheKey=function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],n=2<arguments.length?arguments[2]:void 0,r=\"\",i=0;i<t.length;++i){var o,a=t[i],s=function(e,t){for(var n=e.split(\".\"),r=\"\",i=0;i<n.length;i++){var o=n.slice(0,i+1).join(\".\");if(0!==t.indexOf(o))break;r=o}return r}(e,a),u=void 0;n&&(u=s&&s in n?(o=0===a.indexOf(s)?a.substr(s.length+1):a,(0,l.get)(n[s],o)):(0,l.get)(n,a)),r+=\"::\"+a+\":\"+u}return e+r.replace(c,\"-\")},e.normalizeControllerQueryParams=function(e){for(var t={},n=0;n<e.length;++n)!function(e,t){var n,r=e;\"string\"==typeof r&&((n={})[r]={as:null},r=n);for(var i in r){if(!r.hasOwnProperty(i))return;var o=r[i];\"string\"==typeof o&&(o={as:o}),n=t[i]||{as:null,scope:\"model\"},(0,s.assign)(n,o),t[i]=n}}(e[n],t);return t},e.resemblesURL=u,e.prefixRouteNameArg=function(e,t){var n=t[0],r=(0,o.getOwner)(e),i=r.mountPoint;if(r.routable&&\"string\"==typeof n){if(u(n))throw new a.default(\"Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.\");n=i+\".\"+n,t[0]=n}return t},e.shallowEqual=function(e,t){var n,r=0,i=0;for(n in e)if(e.hasOwnProperty(n)){if(e[n]!==t[n])return!1;r++}for(n in t)t.hasOwnProperty(n)&&i++;return r===i};var c=/\\./g;function u(e){return\"string\"==typeof e&&(\"\"===e||\"/\"===e[0])}}),e(\"@ember/-internals/runtime/index\",[\"exports\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/registry_proxy\",\"@ember/-internals/runtime/lib/mixins/container_proxy\",\"@ember/-internals/runtime/lib/copy\",\"@ember/-internals/runtime/lib/compare\",\"@ember/-internals/runtime/lib/is-equal\",\"@ember/-internals/runtime/lib/mixins/array\",\"@ember/-internals/runtime/lib/mixins/comparable\",\"@ember/-internals/runtime/lib/system/namespace\",\"@ember/-internals/runtime/lib/system/array_proxy\",\"@ember/-internals/runtime/lib/system/object_proxy\",\"@ember/-internals/runtime/lib/system/core_object\",\"@ember/-internals/runtime/lib/mixins/action_handler\",\"@ember/-internals/runtime/lib/mixins/copyable\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/runtime/lib/mixins/-proxy\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",\"@ember/-internals/runtime/lib/mixins/target_action_support\",\"@ember/-internals/runtime/lib/mixins/evented\",\"@ember/-internals/runtime/lib/mixins/promise_proxy\",\"@ember/-internals/runtime/lib/ext/rsvp\",\"@ember/-internals/runtime/lib/type-of\",\"@ember/-internals/runtime/lib/ext/function\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m,v,g,y,b,_,w,E,T,C){\"use strict\";Object.defineProperty(e,\"Object\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"FrameworkObject\",{enumerable:!0,get:function(){return t.FrameworkObject}}),Object.defineProperty(e,\"RegistryProxyMixin\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,\"ContainerProxyMixin\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"copy\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"compare\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"isEqual\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"Array\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"NativeArray\",{enumerable:!0,get:function(){return s.NativeArray}}),Object.defineProperty(e,\"A\",{enumerable:!0,get:function(){return s.A}}),Object.defineProperty(e,\"MutableArray\",{enumerable:!0,get:function(){return s.MutableArray}}),Object.defineProperty(e,\"removeAt\",{enumerable:!0,get:function(){return s.removeAt}}),Object.defineProperty(e,\"uniqBy\",{enumerable:!0,get:function(){return s.uniqBy}}),Object.defineProperty(e,\"isArray\",{enumerable:!0,get:function(){return s.isArray}}),Object.defineProperty(e,\"Comparable\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"Namespace\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"ArrayProxy\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"ObjectProxy\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"CoreObject\",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,\"setFrameworkClass\",{enumerable:!0,get:function(){return f.setFrameworkClass}}),Object.defineProperty(e,\"ActionHandler\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"Copyable\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"Enumerable\",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(e,\"_ProxyMixin\",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,\"_contentFor\",{enumerable:!0,get:function(){return v.contentFor}}),Object.defineProperty(e,\"Observable\",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,\"MutableEnumerable\",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,\"TargetActionSupport\",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,\"Evented\",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,\"PromiseProxyMixin\",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,\"RSVP\",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(e,\"onerrorDefault\",{enumerable:!0,get:function(){return E.onerrorDefault}}),Object.defineProperty(e,\"typeOf\",{enumerable:!0,get:function(){return T.typeOf}})}),e(\"@ember/-internals/runtime/lib/compare\",[\"exports\",\"@ember/-internals/runtime/lib/type-of\",\"@ember/-internals/runtime/lib/mixins/comparable\"],function(e,h,f){\"use strict\";e.default=function e(t,n){if(t===n)return 0;var r=(0,h.typeOf)(t);var i=(0,h.typeOf)(n);if(\"instance\"===r&&f.default.detect(t)&&t.constructor.compare)return t.constructor.compare(t,n);if(\"instance\"===i&&f.default.detect(n)&&n.constructor.compare)return-1*n.constructor.compare(n,t);var o=d(p[r],p[i]);if(0!==o)return o;switch(r){case\"boolean\":case\"number\":return d(t,n);case\"string\":return d(t.localeCompare(n),0);case\"array\":for(var a=t.length,s=n.length,u=Math.min(a,s),l=0;l<u;l++){var c=e(t[l],n[l]);if(0!==c)return c}return d(a,s);case\"instance\":return f.default.detect(t)?t.compare(t,n):0;case\"date\":return d(t.getTime(),n.getTime());default:return 0}};var p={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10};function d(e,t){var n=e-t;return(0<n)-(n<0)}}),e(\"@ember/-internals/runtime/lib/copy\",[\"exports\",\"@ember/debug\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/copyable\"],function(e,t,n,u){\"use strict\";e.default=function(e,t){return\"object\"==typeof e&&null!==e?Array.isArray(e)||!u.default.detect(e)?function e(t,n,r,i){if(\"object\"!=typeof t||null===t)return t;var o,a;if(n&&0<=(a=r.indexOf(t)))return i[a];n&&r.push(t);if(Array.isArray(t)){if(o=t.slice(),n)for(i.push(o),a=o.length;0<=--a;)o[a]=e(o[a],n,r,i)}else if(u.default.detect(t))o=t.copy(n,r,i),n&&i.push(o);else if(t instanceof Date)o=new Date(t.getTime()),n&&i.push(o);else{var s;for(s in o={},n&&i.push(o),t)Object.prototype.hasOwnProperty.call(t,s)&&\"__\"!==s.substring(0,2)&&(o[s]=n?e(t[s],n,r,i):t[s])}return o}(e,t,t?[]:null,t?[]:null):e.copy(t):e}}),e(\"@ember/-internals/runtime/lib/ext/function\",[\"@ember/-internals/environment\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,t,n,r){\"use strict\";r.FUNCTION_PROTOTYPE_EXTENSIONS&&e.ENV.EXTEND_PROTOTYPES.Function&&Object.defineProperties(Function.prototype,{property:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.computed.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}},observes:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.observer.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}},on:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.on.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}})}),e(\"@ember/-internals/runtime/lib/ext/rsvp\",[\"exports\",\"rsvp\",\"@ember/runloop\",\"@ember/-internals/error-handling\",\"@ember/debug\"],function(e,t,n,r,i){\"use strict\";function o(e){var t=function(e){if(!e)return;if(e.errorThrown)return function(e){var t=e.errorThrown;\"string\"==typeof t&&(t=new Error(t));return Object.defineProperty(t,\"__reason_with_error_thrown__\",{value:e,enumerable:!1}),t}(e);return\"UnrecognizedURLError\"!==e.name&&\"TransitionAborted\"!==e.name?e:void 0}(e);if(t){var n=(0,r.getDispatchOverride)();if(!n)throw t;n(t)}}e.onerrorDefault=o,e.default=void 0,t.configure(\"async\",function(e,t){n.backburner.schedule(\"actions\",null,e,t)}),t.configure(\"after\",function(e){n.backburner.schedule(n._rsvpErrorQueue,null,e)}),t.on(\"error\",o),e.default=t}),e(\"@ember/-internals/runtime/lib/is-equal\",[\"exports\"],function(e){\"use strict\";e.default=function(e,t){if(e&&\"function\"==typeof e.isEqual)return e.isEqual(t);if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();return e===t}}),e(\"@ember/-internals/runtime/lib/mixins/-proxy\",[\"exports\",\"@glimmer/reference\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/debug\"],function(e,t,i,o,n,r){\"use strict\";var a;function s(e,t){var n=(0,o.get)(e,\"content\"),r=(void 0===t?(0,i.meta)(e):t).readableTag();return void 0!==r&&r.inner.second.inner.update((0,o.tagFor)(n)),n}e.contentFor=s,e.default=void 0;var u=o.Mixin.create(((a={content:null,init:function(){this._super.apply(this,arguments),(0,n.setProxy)(this),(0,i.meta)(this).writableTag(function(){return(0,t.combine)([t.DirtyableTag.create(),t.UpdatableTag.create(t.CONSTANT_TAG)])})},willDestroy:function(){this.set(\"content\",null),this._super.apply(this,arguments)},isTruthy:(0,o.computed)(\"content\",function(){return Boolean((0,o.get)(this,\"content\"))}),willWatchProperty:function(e){var t=\"content.\"+e;(0,o.addObserver)(this,t,null,\"_contentPropertyDidChange\")},didUnwatchProperty:function(e){var t=\"content.\"+e;(0,o.removeObserver)(this,t,null,\"_contentPropertyDidChange\")},_contentPropertyDidChange:function(e,t){var n=t.slice(8);n in this||(0,o.notifyPropertyChange)(this,n)}})[o.UNKNOWN_PROPERTY_TAG]=function(e){return(0,o.getChainTagsForKey)(this,\"content.\"+e)},a.unknownProperty=function(e){var t=s(this);if(t)return(0,o.get)(t,e)},a.setUnknownProperty=function(e,t){var n=(0,i.meta)(this);if(n.isInitializing()||n.isPrototypeMeta(this))return(0,o.defineProperty)(this,e,null,t),t;var r=s(this,n);return(0,o.set)(r,e,t)},a));e.default=u}),e(\"@ember/-internals/runtime/lib/mixins/action_handler\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,o,t){\"use strict\";e.default=void 0;var n=o.Mixin.create({mergedProperties:[\"actions\"],send:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(this.actions&&this.actions[e]&&!(!0===this.actions[e].apply(this,n)))return;var i=(0,o.get)(this,\"target\");i&&i.send.apply(i,arguments)}});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/array\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/runtime/lib/compare\",\"@ember/-internals/environment\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",\"@ember/-internals/runtime/lib/type-of\"],function(e,u,o,t,n,l,r,i,a,s){\"use strict\";var c;e.uniqBy=p,e.removeAt=_,e.isArray=E,e.default=e.MutableArray=e.NativeArray=e.A=void 0;var h=Object.freeze([]),f=function(e){return e};function p(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:f,n=A(),r=new Set,i=\"function\"==typeof t?t:function(e){return(0,u.get)(e,t)};return e.forEach(function(e){var t=i(e);r.has(t)||(r.add(t),n.push(e))}),n}function d(t,n){return 2===arguments.length?function(e){return n===(0,u.get)(e,t)}:function(e){return Boolean((0,u.get)(e,t))}}function m(e,t,n){for(var r=e.length,i=n;i<r;i++){if(t((0,u.objectAt)(e,i),i,e))return i}return-1}function v(e,t,n){var r=m(e,t.bind(n),0);return-1===r?void 0:(0,u.objectAt)(e,r)}function g(e,t,n){return-1!==m(e,t.bind(n),0)}function y(e,t,n){var r=t.bind(n);return-1===m(e,function(e,t,n){return!r(e,t,n)},0)}function b(e,t,n,r){var i=2<arguments.length&&void 0!==n?n:0,o=3<arguments.length?r:void 0,a=e.length;return i<0&&(i+=a),m(e,o&&t!=t?function(e){return e!=e}:function(e){return e===t},i)}function _(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1;return(0,u.replace)(e,t,n,h),e}function w(e,t,n){return(0,u.replace)(e,t,0,[n]),n}function E(e){var t=e;if(!t||t.setInterval)return!1;if(Array.isArray(t)||R.detect(t))return!0;var n=(0,s.typeOf)(t);if(\"array\"===n)return!0;var r=t.length;return\"number\"==typeof r&&r==r&&\"object\"===n}function T(){var e=u.computed.apply(void 0,arguments);return e.enumerable=!1,e}function C(t){return this.map(function(e){return(0,u.get)(e,t)})}var R=u.Mixin.create(n.default,((c={})[o.EMBER_ARRAY]=!0,c.objectsAt=function(e){var t=this;return e.map(function(e){return(0,u.objectAt)(t,e)})},c[\"[]\"]=T({get:function(){return this},set:function(e,t){return this.replace(0,this.length,t),this}}),c.firstObject=T(function(){return(0,u.objectAt)(this,0)}).readOnly(),c.lastObject=T(function(){return(0,u.objectAt)(this,this.length-1)}).readOnly(),c.slice=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=1<arguments.length?arguments[1]:void 0,n=A(),r=this.length;for(e<0&&(e=r+e),void 0===t||r<t?t=r:t<0&&(t=r+t);e<t;)n[n.length]=(0,u.objectAt)(this,e++);return n},c.indexOf=function(e,t){return b(this,e,t,!1)},c.lastIndexOf=function(e,t){var n=this.length;(void 0===t||n<=t)&&(t=n-1),t<0&&(t+=n);for(var r=t;0<=r;r--)if((0,u.objectAt)(this,r)===e)return r;return-1},c.addArrayObserver=function(e,t){return(0,u.addArrayObserver)(this,e,t)},c.removeArrayObserver=function(e,t){return(0,u.removeArrayObserver)(this,e,t)},c.hasArrayObservers=T(function(){return(0,u.hasListeners)(this,\"@array:change\")||(0,u.hasListeners)(this,\"@array:before\")}),c.arrayContentWillChange=function(e,t,n){return(0,u.arrayContentWillChange)(this,e,t,n)},c.arrayContentDidChange=function(e,t,n){return(0,u.arrayContentDidChange)(this,e,t,n)},c.forEach=function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=this.length,r=0;r<n;r++){var i=this.objectAt(r);e.call(t,i,r,this)}return this},c.getEach=C,c.setEach=function(t,n){return this.forEach(function(e){return(0,u.set)(e,t,n)})},c.map=function(r){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=A();return this.forEach(function(e,t,n){return o[t]=r.call(i,e,t,n)}),o},c.mapBy=C,c.filter=function(r){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=A();return this.forEach(function(e,t,n){r.call(i,e,t,n)&&o.push(e)}),o},c.reject=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return this.filter(function(){return!e.apply(t,arguments)})},c.filterBy=function(){return this.filter(d.apply(void 0,arguments))},c.rejectBy=function(){return this.reject(d.apply(void 0,arguments))},c.find=function(e){return v(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.findBy=function(){return v(this,d.apply(void 0,arguments))},c.every=function(e){return y(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.isEvery=function(){return y(this,d.apply(void 0,arguments))},c.any=function(e){return g(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.isAny=function(){return g(this,d.apply(void 0,arguments))},c.reduce=function(n,e){var r=e;return this.forEach(function(e,t){r=n(r,e,t,this)},this),r},c.invoke=function(t){for(var e=arguments.length,n=new Array(1<e?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=A();return this.forEach(function(e){return i.push((0,o.tryInvoke)(e,t,n))}),i},c.toArray=function(){return this.map(function(e){return e})},c.compact=function(){return this.filter(function(e){return null!=e})},c.includes=function(e,t){return-1!==b(this,e,t,!0)},c.sortBy=function(){var s=arguments;return this.toArray().sort(function(e,t){for(var n=0;n<s.length;n++){var r=s[n],i=(0,u.get)(e,r),o=(0,u.get)(t,r),a=(0,l.default)(i,o);if(a)return a}return 0})},c.uniq=function(){return p(this)},c.uniqBy=function(e){return p(this,e)},c.without=function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(e){return e==e};return this.filter(e)},c)),k=u.Mixin.create(R,a.default,{clear:function(){var e=this.length;return 0===e||this.replace(0,e,h),this},insertAt:function(e,t){return w(this,e,t),this},removeAt:function(e,t){return _(this,e,t)},pushObject:function(e){return w(this,this.length,e)},pushObjects:function(e){return this.replace(this.length,0,e),this},popObject:function(){var e=this.length;if(0===e)return null;var t=(0,u.objectAt)(this,e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===this.length)return null;var e=(0,u.objectAt)(this,0);return this.removeAt(0),e},unshiftObject:function(e){return w(this,0,e)},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=this.length;if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=this.length;return this.replace(0,t,e),this},removeObject:function(e){for(var t=this.length||0;0<=--t;){(0,u.objectAt)(this,t)===e&&this.removeAt(t)}return this},removeObjects:function(e){(0,u.beginPropertyChanges)();for(var t=e.length-1;0<=t;t--)this.removeObject(e[t]);return(0,u.endPropertyChanges)(),this},addObject:function(e){return this.includes(e)||this.pushObject(e),this},addObjects:function(e){var t=this;return(0,u.beginPropertyChanges)(),e.forEach(function(e){return t.addObject(e)}),(0,u.endPropertyChanges)(),this}});e.MutableArray=k;var x=u.Mixin.create(k,i.default,{objectAt:function(e){return this[e]},replace:function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:h;return(0,u.replaceInNativeArray)(this,e,t,n),this}});e.NativeArray=x;var A,O=[\"length\"];x.keys().forEach(function(e){Array.prototype[e]&&O.push(e)}),e.NativeArray=x=x.without.apply(x,O),e.A=A,r.ENV.EXTEND_PROTOTYPES.Array?(x.apply(Array.prototype),e.A=A=function(e){return e||[]}):e.A=A=function(e){return e=e||[],R.detect(e)?e:x.apply(e)},e.default=R}),e(\"@ember/-internals/runtime/lib/mixins/comparable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({compare:null});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/container_proxy\",[\"exports\",\"@ember/runloop\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r={__container__:null,ownerInjection:function(){return this.__container__.ownerInjection()},lookup:function(e,t){return this.__container__.lookup(e,t)},destroy:function(){var e=this.__container__;e&&(0,t.join)(function(){e.destroy(),(0,t.schedule)(\"destroy\",e,\"finalizeDestroy\")}),this._super()},factoryFor:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return this.__container__.factoryFor(e,t)}},i=n.Mixin.create(r);e.default=i}),e(\"@ember/-internals/runtime/lib/mixins/copyable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({copy:null});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/enumerable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create();e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/evented\",[\"exports\",\"@ember/-internals/metal\"],function(e,i){\"use strict\";e.default=void 0;var t=i.Mixin.create({on:function(e,t,n){return(0,i.addListener)(this,e,t,n),this},one:function(e,t,n){return(0,i.addListener)(this,e,t,n,!0),this},trigger:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];(0,i.sendEvent)(this,e,n)},off:function(e,t,n){return(0,i.removeListener)(this,e,t,n),this},has:function(e){return(0,i.hasListeners)(this,e)}});e.default=t}),e(\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",[\"exports\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r=n.Mixin.create(t.default);e.default=r}),e(\"@ember/-internals/runtime/lib/mixins/observable\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,r,t){\"use strict\";e.default=void 0;var n=r.Mixin.create({get:function(e){return(0,r.get)(this,e)},getProperties:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.getProperties.apply(void 0,[this].concat(t))},set:function(e,t){return(0,r.set)(this,e,t)},setProperties:function(e){return(0,r.setProperties)(this,e)},beginPropertyChanges:function(){return(0,r.beginPropertyChanges)(),this},endPropertyChanges:function(){return(0,r.endPropertyChanges)(),this},notifyPropertyChange:function(e){return(0,r.notifyPropertyChange)(this,e),this},addObserver:function(e,t,n){return(0,r.addObserver)(this,e,t,n),this},removeObserver:function(e,t,n){return(0,r.removeObserver)(this,e,t,n),this},hasObserverFor:function(e){return(0,r.hasListeners)(this,e+\":change\")},getWithDefault:function(e,t){return(0,r.getWithDefault)(this,e,t)},incrementProperty:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;return(0,r.set)(this,e,(parseFloat((0,r.get)(this,e))||0)+t)},decrementProperty:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;return(0,r.set)(this,e,((0,r.get)(this,e)||0)-t)},toggleProperty:function(e){return(0,r.set)(this,e,!(0,r.get)(this,e))},cacheFor:function(e){return(0,r.getCachedValueFor)(this,e)}});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/promise_proxy\",[\"exports\",\"@ember/-internals/metal\",\"@ember/error\"],function(e,i,t){\"use strict\";e.default=void 0;var n=i.Mixin.create({reason:null,isPending:(0,i.computed)(\"isSettled\",function(){return!(0,i.get)(this,\"isSettled\")}).readOnly(),isSettled:(0,i.computed)(\"isRejected\",\"isFulfilled\",function(){return(0,i.get)(this,\"isRejected\")||(0,i.get)(this,\"isFulfilled\")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:(0,i.computed)({get:function(){throw new t.default(\"PromiseProxy's promise must be set\")},set:function(e,t){return n=this,r=t,(0,i.setProperties)(n,{isFulfilled:!1,isRejected:!1}),r.then(function(e){return n.isDestroyed||n.isDestroying||(0,i.setProperties)(n,{content:e,isFulfilled:!0}),e},function(e){throw n.isDestroyed||n.isDestroying||(0,i.setProperties)(n,{reason:e,isRejected:!0}),e},\"Ember: PromiseProxy\");var n,r}}),then:r(\"then\"),catch:r(\"catch\"),finally:r(\"finally\")});function r(t){return function(){var e=(0,i.get)(this,\"promise\");return e[t].apply(e,arguments)}}e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/registry_proxy\",[\"exports\",\"@ember/debug\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r=n.Mixin.create({__registry__:null,resolveRegistration:function(e,t){return this.__registry__.resolve(e,t)},register:i(\"register\"),unregister:i(\"unregister\"),hasRegistration:i(\"has\"),registeredOption:i(\"getOption\"),registerOptions:i(\"options\"),registeredOptions:i(\"getOptions\"),registerOptionsForType:i(\"optionsForType\"),registeredOptionsForType:i(\"getOptionsForType\"),inject:i(\"injection\")});function i(t){return function(){var e;return(e=this.__registry__)[t].apply(e,arguments)}}e.default=r}),e(\"@ember/-internals/runtime/lib/mixins/target_action_support\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,i,o,t){\"use strict\";e.default=void 0;var n=o.Mixin.create({target:null,action:null,actionContext:null,actionContextObject:(0,o.computed)(\"actionContext\",function(){var e=(0,o.get)(this,\"actionContext\");if(\"string\"!=typeof e)return e;var t=(0,o.get)(this,e);return void 0===t&&(t=(0,o.get)(i.context.lookup,e)),t}),triggerAction:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=e.target,r=e.actionContext,t=t||(0,o.get)(this,\"action\"),n=n||function(e){var t=(0,o.get)(e,\"target\");if(t){if(\"string\"!=typeof t)return t;var n=(0,o.get)(e,t);return void 0===n&&(n=(0,o.get)(i.context.lookup,t)),n}if(e._target)return e._target;return null}(this);if((void 0===r&&(r=(0,o.get)(this,\"actionContextObject\")||this),n&&t)&&!1!==(n.send?n.send.apply(n,[t].concat(r)):n[t].apply(n,[].concat(r))))return!0;return!1}});e.default=n}),e(\"@ember/-internals/runtime/lib/system/array_proxy\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/array\",\"@ember/debug\"],function(e,r,o,t,n,i){\"use strict\";e.default=void 0;var a,s={willChange:\"_arrangedContentArrayWillChange\",didChange:\"_arrangedContentArrayDidChange\"},u=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){e.prototype.init.apply(this,arguments),this._objectsDirtyIndex=0,this._objects=null,this._lengthDirty=!0,this._length=0,this._arrangedContent=null,this._addArrangedContentArrayObsever()},n.willDestroy=function(){this._removeArrangedContentArrayObsever()},n.objectAtContent=function(e){return(0,o.objectAt)((0,o.get)(this,\"arrangedContent\"),e)},n.replace=function(e,t,n){this.replaceContent(e,t,n)},n.replaceContent=function(e,t,n){(0,o.get)(this,\"content\").replace(e,t,n)},n.objectAt=function(e){if(0,null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){var t=(0,o.get)(this,\"arrangedContent\");if(t)for(var n=this._objects.length=(0,o.get)(t,\"length\"),r=this._objectsDirtyIndex;r<n;r++)this._objects[r]=this.objectAtContent(r);else this._objects.length=0;this._objectsDirtyIndex=-1}return this._objects[e]},n[o.PROPERTY_DID_CHANGE]=function(e){\"arrangedContent\"===e?this._updateArrangedContentArray():\"content\"===e&&this._invalidate()},n._updateArrangedContentArray=function(){var e=null===this._objects?0:this._objects.length,t=(0,o.get)(this,\"arrangedContent\"),n=t?(0,o.get)(t,\"length\"):0;this._removeArrangedContentArrayObsever(),this.arrayContentWillChange(0,e,n),this._invalidate(),this.arrayContentDidChange(0,e,n),this._addArrangedContentArrayObsever()},n._addArrangedContentArrayObsever=function(){var e=(0,o.get)(this,\"arrangedContent\");e&&!e.isDestroyed&&((0,o.addArrayObserver)(e,this,s),this._arrangedContent=e)},n._removeArrangedContentArrayObsever=function(){this._arrangedContent&&(0,o.removeArrayObserver)(this._arrangedContent,this,s)},n._arrangedContentArrayWillChange=function(){},n._arrangedContentArrayDidChange=function(e,t,n,r){this.arrayContentWillChange(t,n,r);var i=t;i<0&&(i+=(0,o.get)(this._arrangedContent,\"length\")+n-r),(-1===this._objectsDirtyIndex||this._objectsDirtyIndex>i)&&(this._objectsDirtyIndex=i),this._lengthDirty=!0,this.arrayContentDidChange(t,n,r)},n._invalidate=function(){this._objectsDirtyIndex=0,this._lengthDirty=!0},(0,r.createClass)(t,[{key:\"length\",get:function(){var e;return this._lengthDirty&&(e=(0,o.get)(this,\"arrangedContent\"),this._length=e?(0,o.get)(e,\"length\"):0,this._lengthDirty=!1),this._length},set:function(e){var t,n,r=this.length-e;0!==r&&(r<0&&(t=new Array(-r),r=0),(n=(0,o.get)(this,\"content\"))&&((0,o.replace)(n,e,r,t),this._invalidate()))}}]),t}(t.default);(e.default=u).reopen(n.MutableArray,{arrangedContent:(0,o.alias)(\"content\"),_revalidate:a})}),e(\"@ember/-internals/runtime/lib/system/core_object\",[\"exports\",\"ember-babel\",\"@ember/-internals/container\",\"@ember/-internals/owner\",\"@ember/polyfills\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/mixins/action_handler\",\"@ember/debug\"],function(e,n,r,o,d,m,i,v,g,t,a){\"use strict\";e.setFrameworkClass=function(e){e[f]=!0},e.default=void 0;var s=g.Mixin.prototype.reopen,u=new d._WeakSet,l=new WeakMap,c=new WeakMap,h=void 0,f=(0,m.symbol)(\"FRAMEWORK_CLASS\");function p(e,t){var n=(0,v.meta)(e);if(void 0!==t)for(var r=e.concatenatedProperties,i=e.mergedProperties,o=void 0!==r&&0<r.length,a=void 0!==i&&0<i.length,s=Object.keys(t),u=0;u<s.length;u++){var l,c=s[u],h=t[c],f=(0,g.descriptorForProperty)(e,c,n),p=void 0!==f;p||(l=e[c],o&&-1<r.indexOf(c)&&(h=l?(0,m.makeArray)(l).concat(h):(0,m.makeArray)(h)),a&&-1<i.indexOf(c)&&(h=(0,d.assign)({},l,h))),p?f.set(e,c,h):\"function\"!=typeof e.setUnknownProperty||c in e?e[c]=h:e.setUnknownProperty(c,h)}e.init(t),n.unsetInitializing(),(0,g.finishChains)(n),(0,g.sendEvent)(e,\"init\",void 0,void 0,void 0,n)}var y=function(){function e(e){var t=l.get(this.constructor);void 0!==t&&(l.delete(this.constructor),r.FACTORY_FOR.set(this,t)),this.constructor.proto();var n=this;(0,v.meta)(n).setInitializing()}e._initFactory=function(e){l.set(this,e)};var t=e.prototype;return t.reopen=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,g.applyMixin)(this,t),this},t.init=function(){},t.destroy=function(){var e=(0,v.peekMeta)(this);if(!e.isSourceDestroying())return e.setSourceDestroying(),(0,i.schedule)(\"actions\",this,this.willDestroy),(0,i.schedule)(\"destroy\",this,this._scheduledDestroy,e),this},t.willDestroy=function(){},t._scheduledDestroy=function(e){e.isSourceDestroyed()||((0,v.deleteMeta)(this),e.setSourceDestroyed())},t.toString=function(){var e=\"function\"==typeof this.toStringExtension?\":\"+this.toStringExtension():\"\";return\"<\"+((0,m.getName)(this)||r.FACTORY_FOR.get(this)||this.constructor.toString())+\":\"+(0,m.guidFor)(this)+e+\">\"},e.extend=function(){var e=function(e){function t(){return e.apply(this,arguments)||this}return(0,n.inheritsLoose)(t,e),t}(this);return s.apply(e.PrototypeMixin,arguments),e},e.create=function(e,t){var n,r,i=this[f]?(void 0!==(n=l.get(this))?r=n.owner:void 0!==e&&(r=(0,o.getOwner)(e)),void 0===r&&(r=h),new this(r)):new this;return p(i,void 0===t?e:function(){for(var e=this.concatenatedProperties,t=this.mergedProperties,n=void 0!==e&&0<e.length,r=void 0!==t&&0<t.length,i={},o=0;o<arguments.length;o++)for(var a=o<0||arguments.length<=o?void 0:arguments[o],s=Object.keys(a),u=0,l=s.length;u<l;u++){var c,h,f=s[u],p=a[f];n&&-1<e.indexOf(f)&&(c=i[f],p=c?(0,m.makeArray)(c).concat(p):(0,m.makeArray)(p)),r&&-1<t.indexOf(f)&&(h=i[f],p=(0,d.assign)({},h,p)),i[f]=p}return i}.apply(this,arguments)),i},e.reopen=function(){return this.willReopen(),s.apply(this.PrototypeMixin,arguments),this},e.willReopen=function(){var e=this.prototype;u.has(e)&&(u.delete(e),c.has(this)&&c.set(this,g.Mixin.create(this.PrototypeMixin)))},e.reopenClass=function(){return(0,g.applyMixin)(this,arguments),this},e.detect=function(e){if(\"function\"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},e.detectInstance=function(e){return e instanceof this},e.metaForProperty=function(e){var t=this.proto(),n=(0,g.descriptorForProperty)(t,e);return n._meta||{}},e.eachComputedProperty=function(r,e){var i=1<arguments.length&&void 0!==e?e:this;this.proto();var o={};(0,v.meta)(this.prototype).forEachDescriptors(function(e,t){var n;t.enumerable&&(n=t._meta||o,r.call(i,e,n))})},e.proto=function(){var e,t=this.prototype;return u.has(t)||(u.add(t),(e=this.superclass)&&e.proto(),c.has(this)&&this.PrototypeMixin.apply(t)),t},(0,n.createClass)(e,[{key:\"isDestroyed\",get:function(){return(0,v.peekMeta)(this).isSourceDestroyed()},set:function(e){}},{key:\"isDestroying\",get:function(){return(0,v.peekMeta)(this).isSourceDestroying()},set:function(e){}}],[{key:\"PrototypeMixin\",get:function(){var e=c.get(this);return void 0===e&&((e=g.Mixin.create()).ownerConstructor=this,c.set(this,e)),e}},{key:\"superclass\",get:function(){var e=Object.getPrototypeOf(this);return e!==Function.prototype?e:void 0}}]),e}();y.toString=g.classToString,(0,m.setName)(y,\"Ember.CoreObject\"),y.isClass=!0,y.isMethod=!1,e.default=y}),e(\"@ember/-internals/runtime/lib/system/namespace\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/-internals/runtime/lib/system/object\"],function(e,r,i,o,t){\"use strict\";e.default=void 0;var n=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){(0,i.addNamespace)(this)},n.toString=function(){var e=(0,i.get)(this,\"name\")||(0,i.get)(this,\"modulePrefix\");return e||((0,i.findNamespaces)(),void 0===(e=(0,o.getName)(this))&&(e=(0,o.guidFor)(this),(0,o.setName)(this,e)),e)},n.nameClasses=function(){(0,i.processNamespace)(this)},n.destroy=function(){(0,i.removeNamespace)(this),e.prototype.destroy.call(this)},t}(t.default);(e.default=n).prototype.isNamespace=!0,n.NAMESPACES=i.NAMESPACES,n.NAMESPACES_BY_ID=i.NAMESPACES_BY_ID,n.processAll=i.processAllNamespaces,n.byName=i.findNamespace}),e(\"@ember/-internals/runtime/lib/system/object\",[\"exports\",\"ember-babel\",\"@ember/-internals/container\",\"@ember/-internals/owner\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/system/core_object\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/debug\"],function(e,r,i,o,t,n,a,s,u){\"use strict\";var l,c=(e.FrameworkObject=e.default=void 0,t.symbol)(\"OVERRIDE_OWNER\"),h=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.inheritsLoose)(t,e),(0,r.createClass)(t,[{key:\"_debugContainerKey\",get:function(){var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.fullName}},{key:o.OWNER,get:function(){if(this[c])return this[c];var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.owner},set:function(e){this[c]=e}}]),t}(a.default);e.default=h,(0,t.setName)(h,\"Ember.Object\"),s.default.apply(h.prototype),e.FrameworkObject=l,e.FrameworkObject=l=function(n){function e(e){var t=n.call(this)||this;return(0,o.setOwner)((0,r.assertThisInitialized)(t),e),t}return(0,r.inheritsLoose)(e,n),(0,r.createClass)(e,[{key:\"_debugContainerKey\",get:function(){var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.fullName}}]),e}(a.default),s.default.apply(l.prototype)}),e(\"@ember/-internals/runtime/lib/system/object_proxy\",[\"exports\",\"ember-babel\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/-proxy\"],function(e,n,t,r){\"use strict\";e.default=void 0;var i=function(e){function t(){return e.apply(this,arguments)||this}return(0,n.inheritsLoose)(t,e),t}(t.default);(e.default=i).PrototypeMixin.reopen(r.default)}),e(\"@ember/-internals/runtime/lib/type-of\",[\"exports\",\"@ember/-internals/runtime/lib/system/core_object\"],function(e,n){\"use strict\";e.typeOf=function(e){if(null===e)return\"null\";if(void 0===e)return\"undefined\";var t=r[i.call(e)]||\"object\";\"function\"===t?n.default.detect(e)&&(t=\"class\"):\"object\"===t&&(e instanceof Error?t=\"error\":e instanceof n.default?t=\"instance\":e instanceof Date&&(t=\"date\"));return t};var r={\"[object Boolean]\":\"boolean\",\"[object Number]\":\"number\",\"[object String]\":\"string\",\"[object Function]\":\"function\",\"[object Array]\":\"array\",\"[object Date]\":\"date\",\"[object RegExp]\":\"regexp\",\"[object Object]\":\"object\",\"[object FileList]\":\"filelist\"},i=Object.prototype.toString}),e(\"@ember/-internals/utils\",[\"exports\",\"@ember/polyfills\",\"@ember/debug\"],function(e,i,t){\"use strict\";function n(e){var t={};for(var n in t[e]=1,t)if(n===e)return n;return e}function r(e){return null!==e&&(\"object\"==typeof e||\"function\"==typeof e)}e.symbol=p,e.isInternalSymbol=function(e){return-1!==f.indexOf(e)},e.dictionary=function(e){var t=Object.create(e);return t._dict=null,delete t._dict,t},e.uuid=a,e.generateGuid=function(e){var t=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:s)+a();r(e)&&u.set(e,t);return t},e.guidFor=function(e){var t;{var n;r(e)?void 0===(t=u.get(e))&&(t=s+a(),u.set(e,t)):void 0===(t=l.get(e))&&(t=\"string\"==(n=typeof e)?\"st\"+a():\"number\"==n?\"nu\"+a():\"symbol\"==n?\"sy\"+a():\"(\"+e+\")\",l.set(e,t))}return t},e.intern=n,e.wrap=function(e,t){return b(e)?k.has(t)||!b(t)?x(e,t):x(e,x(t,y)):e},e.getObservers=E,e.getListeners=R,e.setObservers=w,e.setListeners=C,e.inspect=function(e){return\"number\"!=typeof e||2!==arguments.length?D(e,0):this},e.lookupDescriptor=function(e,t){var n=e;do{var r=Object.getOwnPropertyDescriptor(n,t);if(void 0!==r)return r;n=Object.getPrototypeOf(n)}while(null!==n);return null},e.canInvoke=I,e.tryInvoke=function(e,t,n){if(I(e,t)){return e[t].apply(e,n)}},e.makeArray=function(e){return null!=e?F(e)?e:[e]:[]},e.getName=function(e){return B.get(e)},e.setName=function(e,t){r(e)&&B.set(e,t)},e.toString=function e(t){if(\"string\"==typeof t)return t;if(null===t)return\"null\";if(void 0===t)return\"undefined\";if(Array.isArray(t)){for(var n=\"\",r=0;r<t.length;r++)0<r&&(n+=\",\"),null!=t[r]&&(n+=e(t[r]));return n}if(\"function\"==typeof t.toString)return t.toString();return U.call(t)},e.isProxy=function(e){if(r(e))return H.has(e);return!1},e.setProxy=function(e){r(e)&&H.add(e)},e.isEmberArray=function(e){return e&&e[Q]},e.setWithMandatorySetter=e.teardownMandatorySetter=e.setupMandatorySetter=e.EMBER_ARRAY=e.Cache=e.HAS_NATIVE_PROXY=e.HAS_NATIVE_SYMBOL=e.ROOT=e.checkHasSuper=e.GUID_KEY=e.getOwnPropertyDescriptors=void 0;var o=0;function a(){return++o}var s=\"ember\",u=new WeakMap,l=new Map,c=n(\"__ember\"+Date.now());e.GUID_KEY=c;var h,f=[];function p(e){var t=n(\"__\"+e+(c+Math.floor(Math.random()*Date.now()))+\"__\");return f.push(t),t}h=void 0!==Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors:function(t){var n={};return Object.keys(t).forEach(function(e){n[e]=Object.getOwnPropertyDescriptor(t,e)}),n},e.getOwnPropertyDescriptors=h;var d=/\\.(_super|call\\(this|apply\\(this)/,m=Function.prototype.toString,v=-1<m.call(function(){return this}).indexOf(\"return this\")?function(e){return d.test(m.call(e))}:function(){return!0};e.checkHasSuper=v;var g=new WeakMap,y=Object.freeze(function(){});function b(e){var t=g.get(e);return void 0===t&&(t=v(e),g.set(e,t)),t}e.ROOT=y,g.set(y,!1);var _=new WeakMap;function w(e,t){_.set(e,t)}function E(e){return _.get(e)}var T=new WeakMap;function C(e,t){t&&T.set(e,t)}function R(e){return T.get(e)}var k=new i._WeakSet;function x(n,r){function e(){var e=this._super;this._super=r;var t=n.apply(this,arguments);return this._super=e,t}return k.add(e),w(e,E(n)),C(e,R(n)),e}var A=Object.prototype.toString,O=Function.prototype.toString,S=Array.isArray,N=Object.keys,P=JSON.stringify,L=100,M=4,j=/^[\\w$]+$/;function D(e,t,n){var r=!1;switch(typeof e){case\"undefined\":return\"undefined\";case\"object\":if(null===e)return\"null\";if(S(e)){r=!0;break}if(e.toString===A||void 0===e.toString)break;return e.toString();case\"function\":return e.toString===O?e.name?\"[Function:\"+e.name+\"]\":\"[Function]\":e.toString();case\"string\":return P(e);case\"symbol\":case\"boolean\":case\"number\":default:return e.toString()}if(void 0===n)n=new i._WeakSet;else if(n.has(e))return\"[Circular]\";return n.add(e),(r?function(e,t,n){if(M<t)return\"[Array]\";for(var r=\"[\",i=0;i<e.length;i++){if(r+=0===i?\" \":\", \",L<=i){r+=\"... \"+(e.length-L)+\" more items\";break}r+=D(e[i],t,n)}return r+=\" ]\"}:function(e,t,n){if(M<t)return\"[Object]\";for(var r=\"{\",i=N(e),o=0;o<i.length;o++){if(r+=0===o?\" \":\", \",L<=o){r+=\"... \"+(i.length-L)+\" more keys\";break}var a=i[o];r+=function(e){return j.test(e)?e:P(e)}(a)+\": \"+D(e[a],t,n)}return r+=\" }\"})(e,t+1,n)}function I(e,t){return null!=e&&\"function\"==typeof e[t]}var F=Array.isArray;var B=new WeakMap;var U=Object.prototype.toString;var z=\"function\"==typeof Symbol&&\"[object Symbol]\"===Object.prototype.toString.call(Symbol());e.HAS_NATIVE_SYMBOL=z;var q=\"function\"==typeof Proxy;e.HAS_NATIVE_PROXY=q;var H=new i._WeakSet;var V=function(){function e(e,t,n){this.limit=e,this.func=t,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}var t=e.prototype;return t.get=function(e){return this.store.has(e)?(this.hits++,this.store.get(e)):(this.misses++,this.set(e,this.func(e)))},t.set=function(e,t){return this.limit>this.size&&(this.size++,this.store.set(e,t)),t},t.purge=function(){this.store.clear(),this.size=0,this.hits=0,this.misses=0},e}();e.Cache=V;var W,Y,G,Q=p(\"EMBER_ARRAY\");e.EMBER_ARRAY=Q,e.setupMandatorySetter=W,e.teardownMandatorySetter=Y,e.setWithMandatorySetter=G}),e(\"@ember/-internals/views/index\",[\"exports\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/-internals/views/lib/system/utils\",\"@ember/-internals/views/lib/system/event_dispatcher\",\"@ember/-internals/views/lib/component_lookup\",\"@ember/-internals/views/lib/mixins/text_support\",\"@ember/-internals/views/lib/views/core_view\",\"@ember/-internals/views/lib/mixins/class_names_support\",\"@ember/-internals/views/lib/mixins/child_views_support\",\"@ember/-internals/views/lib/mixins/view_state_support\",\"@ember/-internals/views/lib/mixins/view_support\",\"@ember/-internals/views/lib/mixins/action_support\",\"@ember/-internals/views/lib/compat/attrs\",\"@ember/-internals/views/lib/system/lookup_partial\",\"@ember/-internals/views/lib/utils/lookup-component\",\"@ember/-internals/views/lib/system/action_manager\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";Object.defineProperty(e,\"jQuery\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"jQueryDisabled\",{enumerable:!0,get:function(){return t.jQueryDisabled}}),Object.defineProperty(e,\"addChildView\",{enumerable:!0,get:function(){return n.addChildView}}),Object.defineProperty(e,\"isSimpleClick\",{enumerable:!0,get:function(){return n.isSimpleClick}}),Object.defineProperty(e,\"getViewBounds\",{enumerable:!0,get:function(){return n.getViewBounds}}),Object.defineProperty(e,\"getViewClientRects\",{enumerable:!0,get:function(){return n.getViewClientRects}}),Object.defineProperty(e,\"getViewBoundingClientRect\",{enumerable:!0,get:function(){return n.getViewBoundingClientRect}}),Object.defineProperty(e,\"getRootViews\",{enumerable:!0,get:function(){return n.getRootViews}}),Object.defineProperty(e,\"getChildViews\",{enumerable:!0,get:function(){return n.getChildViews}}),Object.defineProperty(e,\"getViewId\",{enumerable:!0,get:function(){return n.getViewId}}),Object.defineProperty(e,\"getElementView\",{enumerable:!0,get:function(){return n.getElementView}}),Object.defineProperty(e,\"getViewElement\",{enumerable:!0,get:function(){return n.getViewElement}}),Object.defineProperty(e,\"setElementView\",{enumerable:!0,get:function(){return n.setElementView}}),Object.defineProperty(e,\"setViewElement\",{enumerable:!0,get:function(){return n.setViewElement}}),Object.defineProperty(e,\"clearElementView\",{enumerable:!0,get:function(){return n.clearElementView}}),Object.defineProperty(e,\"clearViewElement\",{enumerable:!0,get:function(){return n.clearViewElement}}),Object.defineProperty(e,\"constructStyleDeprecationMessage\",{enumerable:!0,get:function(){return n.constructStyleDeprecationMessage}}),Object.defineProperty(e,\"EventDispatcher\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"ComponentLookup\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"TextSupport\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"CoreView\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"ClassNamesSupport\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"ChildViewsSupport\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"ViewStateSupport\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"ViewMixin\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"ActionSupport\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"MUTABLE_CELL\",{enumerable:!0,get:function(){return f.MUTABLE_CELL}}),Object.defineProperty(e,\"lookupPartial\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"hasPartial\",{enumerable:!0,get:function(){return p.hasPartial}}),Object.defineProperty(e,\"lookupComponent\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"ActionManager\",{enumerable:!0,get:function(){return m.default}})}),e(\"@ember/-internals/views/lib/compat/attrs\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";var n=(e.MUTABLE_CELL=void 0,t.symbol)(\"MUTABLE_CELL\");e.MUTABLE_CELL=n}),e(\"@ember/-internals/views/lib/compat/fallback-view-registry\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";var n=(e.default=void 0,t.dictionary)(null);e.default=n}),e(\"@ember/-internals/views/lib/component_lookup\",[\"exports\",\"@ember/-internals/runtime\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Object.extend({componentFor:function(e,t,n){var r=\"component:\"+e;return t.factoryFor(r,n)},layoutFor:function(e,t,n){var r=\"template:components/\"+e;return t.lookup(r,n)}});e.default=n}),e(\"@ember/-internals/views/lib/mixins/action_support\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/-internals/views/lib/compat/attrs\",\"@ember/deprecated-features\"],function(e,t,a,n,r,i){\"use strict\";e.default=void 0;var o,s={send:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=this.actions&&this.actions[e];if(i&&!(!0===i.apply(this,n)))return;var o=(0,a.get)(this,\"target\");o&&o.send.apply(o,arguments)}};i.SEND_ACTION&&(o=function(e,t){return t&&t[r.MUTABLE_CELL]&&(t=t.value),t},s.sendAction=function(e){var t;if(void 0===e&&(e=\"action\"),t=(0,a.get)(this,\"attrs.\"+e)||(0,a.get)(this,e),void 0!==(t=o(this,t))){for(var n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];\"function\"==typeof t?t.apply(void 0,r):this.triggerAction({action:t,actionContext:r})}});var u=a.Mixin.create(s);e.default=u}),e(\"@ember/-internals/views/lib/mixins/child_views_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/views/lib/system/utils\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.Mixin.create({childViews:(0,t.nativeDescDecorator)({configurable:!1,enumerable:!1,get:function(){return(0,n.getChildViews)(this)}}),appendChild:function(e){(0,n.addChildView)(this,e)}});e.default=r}),e(\"@ember/-internals/views/lib/mixins/class_names_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,t,n){\"use strict\";e.default=void 0;var r=Object.freeze([]),i=t.Mixin.create({concatenatedProperties:[\"classNames\",\"classNameBindings\"],init:function(){this._super.apply(this,arguments)},classNames:r,classNameBindings:r});e.default=i}),e(\"@ember/-internals/views/lib/mixins/text_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,o,t,n,a){\"use strict\";e.default=void 0;var r={13:\"insertNewline\",27:\"cancel\"},i=o.Mixin.create(t.TargetActionSupport,{value:\"\",attributeBindings:[\"autocapitalize\",\"autocorrect\",\"autofocus\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"placeholder\",\"readonly\",\"required\",\"selectionDirection\",\"spellcheck\",\"tabindex\",\"title\"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on(\"paste\",this,this._elementValueDidChange),this.on(\"cut\",this,this._elementValueDidChange),this.on(\"input\",this,this._elementValueDidChange)},bubbles:!1,interpretKeyEvents:function(e){var t=r[e.keyCode];if(this._elementValueDidChange(),t)return this[t](e)},_elementValueDidChange:function(){(0,o.set)(this,\"value\",this.element.value)},change:function(e){this._elementValueDidChange(e)},insertNewline:function(e){s(\"enter\",this,e),s(\"insert-newline\",this,e)},cancel:function(e){s(\"escape-press\",this,e)},focusIn:function(e){s(\"focus-in\",this,e)},focusOut:function(e){this._elementValueDidChange(e),s(\"focus-out\",this,e)},keyPress:function(e){s(\"key-press\",this,e)},keyUp:function(e){this.interpretKeyEvents(e),s(\"key-up\",this,e)},keyDown:function(e){s(\"key-down\",this,e)}});function s(e,t,n){var r=(0,o.get)(t,\"attrs.\"+e)||(0,o.get)(t,e),i=(0,o.get)(t,\"value\");a.SEND_ACTION&&\"string\"==typeof r?t.triggerAction({action:r,actionContext:[i,n]}):\"function\"==typeof r&&r(i,n),r&&!(0,o.get)(t,\"bubbles\")&&n.stopPropagation()}e.default=i}),e(\"@ember/-internals/views/lib/mixins/view_state_support\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({_transitionTo:function(e){var t=this._currentState,n=this._currentState=this._states[e];this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}});e.default=n}),e(\"@ember/-internals/views/lib/mixins/view_support\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/-internals/browser-environment\",\"@ember/-internals/views/lib/system/utils\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/deprecated-features\"],function(e,t,r,n,i,o,a,s){\"use strict\";function u(){return this}var l={concatenatedProperties:[\"attributeBindings\"],nearestOfType:function(t){for(var e=this.parentView,n=t instanceof r.Mixin?function(e){return t.detect(e)}:function(e){return t.detect(e.constructor)};e;){if(n(e))return e;e=e.parentView}},nearestWithProperty:function(e){for(var t=this.parentView;t;){if(e in t)return t;t=t.parentView}},rerender:function(){return this._currentState.rerender(this)},element:(e.default=void 0,r.nativeDescDecorator)({configurable:!1,enumerable:!1,get:function(){return this.renderer.getElement(this)}}),appendTo:function(e){var t=i.hasDOM&&\"string\"==typeof e?document.querySelector(e):e;return this.renderer.appendTo(this,t),this},append:function(){return this.appendTo(document.body)},elementId:null,willInsertElement:u,didInsertElement:u,willClearRender:u,destroy:function(){this._super.apply(this,arguments),this._currentState.destroy(this)},willDestroyElement:u,didDestroyElement:u,parentViewDidChange:u,tagName:null,init:function(){this._super.apply(this,arguments),this.elementId||\"\"===this.tagName||(this.elementId=(0,t.guidFor)(this))},handleEvent:function(e,t){return this._currentState.handleEvent(this,e,t)}};s.JQUERY_INTEGRATION&&(l.$=function(e){if(this.element)return e?(0,a.default)(e,this.element):(0,a.default)(this.element)});var c=r.Mixin.create(l);e.default=c}),e(\"@ember/-internals/views/lib/system/action_manager\",[\"exports\"],function(e){\"use strict\";function t(){}(e.default=t).registeredActions={}}),e(\"@ember/-internals/views/lib/system/event_dispatcher\",[\"exports\",\"@ember/-internals/owner\",\"@ember/polyfills\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/-internals/views\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/-internals/views/lib/system/action_manager\",\"@ember/-internals/views/lib/system/jquery_event_deprecation\",\"@ember/-internals/views/lib/system/utils\",\"@ember/deprecated-features\"],function(e,t,a,n,s,r,l,c,f,p,d,m){\"use strict\";e.default=void 0;var u=\"ember-application\",h=\".\"+u,v={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},i=r.Object.extend({events:{touchstart:\"touchStart\",touchmove:\"touchMove\",touchend:\"touchEnd\",touchcancel:\"touchCancel\",keydown:\"keyDown\",keyup:\"keyUp\",keypress:\"keyPress\",mousedown:\"mouseDown\",mouseup:\"mouseUp\",contextmenu:\"contextMenu\",click:\"click\",dblclick:\"doubleClick\",mousemove:\"mouseMove\",focusin:\"focusIn\",focusout:\"focusOut\",mouseenter:\"mouseEnter\",mouseleave:\"mouseLeave\",submit:\"submit\",input:\"input\",change:\"change\",dragstart:\"dragStart\",drag:\"drag\",dragenter:\"dragEnter\",dragleave:\"dragLeave\",dragover:\"dragOver\",drop:\"drop\",dragend:\"dragEnd\"},rootElement:\"body\",init:function(){this._super(),this._eventHandlers=Object.create(null)},setup:function(e,t){var n=this._finalEvents=(0,a.assign)({},(0,s.get)(this,\"events\"),e);null!=t&&(0,s.set)(this,\"rootElement\",t);var r,i=(0,s.get)(this,\"rootElement\");if(!m.JQUERY_INTEGRATION||c.jQueryDisabled)(r=\"string\"!=typeof i?i:document.querySelector(i)).classList.add(u);else if((r=(0,c.default)(i)).addClass(u),!r.is(h))throw new TypeError(\"Unable to add '\"+u+\"' class to root element (\"+(r.selector||r[0].tagName)+\"). Make sure you set rootElement to the body or an element in the body.\");for(var o in n)n.hasOwnProperty(o)&&this.setupHandler(r,o,n[o])},setupHandler:function(e,t,h){var r,i,n,o,a,s,u;null!==h&&(!m.JQUERY_INTEGRATION||c.jQueryDisabled?(r=function(e,t){var n=(0,l.getElementView)(e),r=!0;return n&&(r=n.handleEvent(h,t)),r},i=function(e,t){var n=e.getAttribute(\"data-ember-action\"),r=f.default.registeredActions[n];if(\"\"===n)for(var i=e.attributes,o=i.length,r=[],a=0;a<o;a++){var s=i.item(a);0===s.name.indexOf(\"data-ember-action-\")&&(r=r.concat(f.default.registeredActions[s.value]))}if(r){for(var u=!0,l=0;l<r.length;l++){var c=r[l];c&&c.eventName===h&&(u=c.handler(t)&&u)}return u}},void 0!==v[t]?(n=v[t],o=t,a=function(e,t){var n=document.createEvent(\"MouseEvent\");return n.initMouseEvent(e,!1,!1,t.view,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget),Object.defineProperty(n,\"target\",{value:t.target,enumerable:!0}),n},s=this._eventHandlers[n]=function(e){for(var t=e.target,n=e.relatedTarget;t&&1===t.nodeType&&(null===n||n!==t&&!(0,d.contains)(t,n));)(0,l.getElementView)(t)?r(t,a(o,e)):t.hasAttribute(\"data-ember-action\")&&i(t,a(o,e)),t=t.parentNode},e.addEventListener(n,s)):(u=this._eventHandlers[t]=function(e){var t=e.target;do{if((0,l.getElementView)(t)){if(!1===r(t,e)){e.preventDefault(),e.stopPropagation();break}if(!0===e.cancelBubble)break}else if(\"function\"==typeof t.hasAttribute&&t.hasAttribute(\"data-ember-action\")&&!1===i(t,e))break;t=t.parentNode}while(t&&1===t.nodeType)},e.addEventListener(t,u))):(e.on(t+\".ember\",\".ember-view\",function(e){var t=(0,l.getElementView)(this),n=!0;return t&&(n=t.handleEvent(h,(0,p.default)(e))),n}),e.on(t+\".ember\",\"[data-ember-action]\",function(e){var t=e.currentTarget.attributes,n=[];e=(0,p.default)(e);for(var r=0;r<t.length;r++){var i,o=t.item(r);-1===o.name.lastIndexOf(\"data-ember-action-\",0)||(i=f.default.registeredActions[o.value])&&i.eventName===h&&-1===n.indexOf(i)&&(i.handler(e),n.push(i))}})))},destroy:function(){var e=(0,s.get)(this,\"rootElement\"),t=e.nodeType?e:document.querySelector(e);if(t){if(!m.JQUERY_INTEGRATION||c.jQueryDisabled)for(var n in this._eventHandlers)t.removeEventListener(n,this._eventHandlers[n]);else(0,c.default)(e).off(\".ember\",\"**\");return t.classList.remove(u),this._super.apply(this,arguments)}},toString:function(){return\"(EventDispatcher)\"}});e.default=i}),e(\"@ember/-internals/views/lib/system/jquery\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\",\"@ember/deprecated-features\"],function(e,t,n,r){\"use strict\";var i;e.default=e.jQueryDisabled=void 0;var o=!r.JQUERY_INTEGRATION||!1===t.ENV._JQUERY_INTEGRATION;e.jQueryDisabled=o,r.JQUERY_INTEGRATION&&n.hasDOM&&(i=t.context.imports.jQuery,!o&&i?i.event.addProp?i.event.addProp(\"dataTransfer\"):[\"dragstart\",\"drag\",\"dragenter\",\"dragleave\",\"dragover\",\"drop\",\"dragend\"].forEach(function(e){i.event.fixHooks[e]={props:[\"dataTransfer\"]}}):e.jQueryDisabled=o=!0);var a=o?void 0:i;e.default=a}),e(\"@ember/-internals/views/lib/system/jquery_event_deprecation\",[\"exports\",\"@ember/debug\",\"@ember/-internals/environment\",\"@ember/-internals/utils\",\"@ember/deprecated-features\"],function(e,t,n,r,i){\"use strict\";e.default=function(e){{}return e}}),e(\"@ember/-internals/views/lib/system/lookup_partial\",[\"exports\",\"@ember/debug\",\"@ember/error\"],function(e,r,i){\"use strict\";function o(e){var t=e.split(\"/\"),n=t[t.length-1];return t[t.length-1]=\"_\"+n,t.join(\"/\")}e.default=function(e,t){if(null==e)return;var n=function(e,t,n){if(!n)return;if(false&&!(n.indexOf(\".\")===-1)&&(0,r.assert)(\"templateNames are not allowed to contain periods: \"+n,n.indexOf(\".\")===-1),e)return e.lookup(\"template:\"+t)||e.lookup(\"template:\"+n);throw new i.default(\"Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA\")}(t,o(e),e);return n},e.hasPartial=function(e,t){if(t)return t.hasRegistration(\"template:\"+o(e))||t.hasRegistration(\"template:\"+e);throw new i.default(\"Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA\")}}),e(\"@ember/-internals/views/lib/system/utils\",[\"exports\",\"@ember/-internals/owner\",\"@ember/-internals/utils\"],function(e,n,t){\"use strict\";function r(e){return\"\"!==e.tagName&&e.elementId?e.elementId:(0,t.guidFor)(e)}e.isSimpleClick=function(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,n=1<e.which;return!t&&!n},e.constructStyleDeprecationMessage=function(e){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes. Style affected: \"'+e+'\"'},e.getRootViews=function(e){var n=e.lookup(\"-view-registry:main\"),r=[];return Object.keys(n).forEach(function(e){var t=n[e];null===t.parentView&&r.push(t)}),r},e.getViewId=r,e.getElementView=function(e){return i.get(e)||null},e.getViewElement=function(e){return o.get(e)||null},e.setElementView=function(e,t){i.set(e,t)},e.setViewElement=function(e,t){o.set(e,t)},e.clearElementView=function(e){i.delete(e)},e.clearViewElement=function(e){o.delete(e)},e.getChildViews=function(e){var t=(0,n.getOwner)(e).lookup(\"-view-registry:main\");return u(e,t)},e.initChildViews=s,e.addChildView=function(e,t){var n=a.get(e);void 0===n&&(n=s(e));n.add(r(t))},e.collectChildViews=u,e.getViewBounds=l,e.getViewRange=c,e.getViewClientRects=function(e){return c(e).getClientRects()},e.getViewBoundingClientRect=function(e){return c(e).getBoundingClientRect()},e.matches=function(e,t){return h.call(e,t)},e.contains=function(e,t){if(void 0!==e.contains)return e.contains(t);for(;t=t.parentNode;)if(t===e)return!0;return!1},e.elMatches=void 0;var i=new WeakMap,o=new WeakMap;var a=new WeakMap;function s(e){var t=new Set;return a.set(e,t),t}function u(e,n){var r=[],t=a.get(e);return void 0!==t&&t.forEach(function(e){var t=n[e];!t||t.isDestroying||t.isDestroyed||r.push(t)}),r}function l(e){return e.renderer.getBounds(e)}function c(e){var t=l(e),n=document.createRange();return n.setStartBefore(t.firstNode),n.setEndAfter(t.lastNode),n}var h=\"undefined\"!=typeof Element&&(Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector);e.elMatches=h}),e(\"@ember/-internals/views/lib/utils/lookup-component\",[\"exports\"],function(e){\"use strict\";function o(e,t,n,r){var i=e.componentFor(n,t,r);return{layout:e.layoutFor(n,t,r),component:i}}e.default=function(e,t,n){var r=e.lookup(\"component-lookup:main\");if(n&&(n.source||n.namespace)){var i=o(r,e,t,n);if(i.component||i.layout)return i}return o(r,e,t)}}),e(\"@ember/-internals/views/lib/views/core_view\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/views/lib/views/states\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.FrameworkObject.extend(t.Evented,t.ActionHandler,{isView:!0,_states:n.default,init:function(){if(this._super.apply(this,arguments),this._state=\"preRender\",this._currentState=this._states.preRender,!this.renderer)throw new Error(\"Cannot instantiate a component without a renderer. Please ensure that you are creating \"+this+\" with a proper container/registry.\")},parentView:null,instrumentDetails:function(e){return e.object=this.toString(),e.containerKey=this._debugContainerKey,e.view=this,e},trigger:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._super.apply(this,arguments);var i=this[e];if(\"function\"==typeof i)return i.apply(this,n)},has:function(e){return\"function\"==typeof this[e]||this._super(e)}});r.reopenClass({isViewFactory:!0});e.default=r}),e(\"@ember/-internals/views/lib/views/states\",[\"exports\",\"@ember/-internals/views/lib/views/states/pre_render\",\"@ember/-internals/views/lib/views/states/has_element\",\"@ember/-internals/views/lib/views/states/in_dom\",\"@ember/-internals/views/lib/views/states/destroying\"],function(e,t,n,r,i){\"use strict\";e.default=void 0;var o=Object.freeze({preRender:t.default,inDOM:r.default,hasElement:n.default,destroying:i.default});e.default=o}),e(\"@ember/-internals/views/lib/views/states/default\",[\"exports\",\"@ember/error\"],function(e,t){\"use strict\";e.default=void 0;var n={appendChild:function(){throw new t.default(\"You can't use appendChild outside of the rendering process\")},handleEvent:function(){return!0},rerender:function(){},destroy:function(){}},r=Object.freeze(n);e.default=r}),e(\"@ember/-internals/views/lib/views/states/destroying\",[\"exports\",\"@ember/polyfills\",\"@ember/error\",\"@ember/-internals/views/lib/views/states/default\"],function(e,t,n,r){\"use strict\";var i=(e.default=void 0,t.assign)({},r.default,{appendChild:function(){throw new n.default(\"You can't call appendChild on a view being destroyed\")},rerender:function(){throw new n.default(\"You can't call rerender on a view being destroyed\")}}),o=Object.freeze(i);e.default=o}),e(\"@ember/-internals/views/lib/views/states/has_element\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/views/lib/views/states/default\",\"@ember/runloop\",\"@ember/instrumentation\"],function(e,t,n,r,i){\"use strict\";var o=(e.default=void 0,t.assign)({},n.default,{rerender:function(e){e.renderer.rerender(e)},destroy:function(e){e.renderer.remove(e)},handleEvent:function(e,t,n){return!e.has(t)||(0,i.flaggedInstrument)(\"interaction.\"+t,{event:n,view:e},function(){return(0,r.join)(e,e.trigger,t,n)})}}),a=Object.freeze(o);e.default=a}),e(\"@ember/-internals/views/lib/views/states/in_dom\",[\"exports\",\"@ember/-internals/utils\",\"@ember/polyfills\",\"@ember/error\",\"@ember/-internals/views/lib/views/states/has_element\"],function(e,t,n,r,i){\"use strict\";var o=(e.default=void 0,n.assign)({},i.default,{enter:function(e){e.renderer.register(e)},exit:function(e){e.renderer.unregister(e)}}),a=Object.freeze(o);e.default=a}),e(\"@ember/-internals/views/lib/views/states/pre_render\",[\"exports\",\"@ember/-internals/views/lib/views/states/default\",\"@ember/polyfills\"],function(e,t,n){\"use strict\";var r=(e.default=void 0,n.assign)({},t.default),i=Object.freeze(r);e.default=i}),e(\"@ember/application/globals-resolver\",[\"exports\",\"ember-babel\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/string\",\"@ember/-internals/runtime\",\"@ember/application/lib/validate-type\",\"@ember/-internals/glimmer\"],function(e,r,u,h,t,f,n,i,o){\"use strict\";e.default=void 0;var a=function(t){function e(){return t.apply(this,arguments)||this}(0,r.inheritsLoose)(e,t),e.create=function(e){return t.create.call(this,e)};var n=e.prototype;return n.init=function(){this._parseNameCache=(0,u.dictionary)(null)},n.normalize=function(e){var t=e.split(\":\"),n=t[0],r=t[1];return\"template\"===n?e:n+\":\"+r.replace(/(\\.|_|-)./g,function(e){return e.charAt(1).toUpperCase()})},n.resolve=function(e){var t,n=this.parseName(e),r=n.resolveMethodName;return this[r]&&(t=this[r](n)),(t=t||this.resolveOther(n))&&(0,i.default)(t,n),t},n.parseName=function(e){return this._parseNameCache[e]||(this._parseNameCache[e]=this._parseName(e))},n._parseName=function(e){var t,n,r=e.split(\":\"),i=r[0],o=r[1],a=o,s=(0,h.get)(this,\"namespace\"),u=a.lastIndexOf(\"/\"),l=-1!==u?a.slice(0,u):null;\"template\"!==i&&-1!==u&&(a=(t=a.split(\"/\"))[t.length-1],n=(0,f.capitalize)(t.slice(0,-1).join(\".\")),s=(0,h.findNamespace)(n));var c=\"main\"===o?\"Main\":(0,f.classify)(i);if(!a||!i)throw new TypeError(\"Invalid fullName: `\"+e+\"`, must be of the form `type:name` \");return{fullName:e,type:i,fullNameWithoutType:o,dirname:l,name:a,root:s,resolveMethodName:\"resolve\"+c}},n.lookupDescription=function(e){var t,n=this.parseName(e);return\"template\"===n.type?\"template at \"+n.fullNameWithoutType.replace(/\\./g,\"/\"):(t=n.root+\".\"+(0,f.classify)(n.name).replace(/\\./g,\"\"),\"model\"!==n.type&&(t+=(0,f.classify)(n.type)),t)},n.makeToString=function(e){return e.toString()},n.useRouterNaming=function(e){\"basic\"===e.name?e.name=\"\":e.name=e.name.replace(/\\./g,\"_\")},n.resolveTemplate=function(e){var t=e.fullNameWithoutType.replace(/\\./g,\"/\");return(0,o.getTemplate)(t)||(0,o.getTemplate)((0,f.decamelize)(t))},n.resolveView=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveController=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveRoute=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveModel=function(e){var t=(0,f.classify)(e.name);return(0,h.get)(e.root,t)},n.resolveHelper=function(e){return this.resolveOther(e)},n.resolveOther=function(e){var t=(0,f.classify)(e.name)+(0,f.classify)(e.type);return(0,h.get)(e.root,t)},n.resolveMain=function(e){var t=(0,f.classify)(e.type);return(0,h.get)(e.root,t)},n.knownForType=function(e){for(var t=(0,h.get)(this,\"namespace\"),n=(0,f.classify)(e),r=new RegExp(n+\"$\"),i=(0,u.dictionary)(null),o=Object.keys(t),a=0;a<o.length;a++){var s=o[a];r.test(s)&&(i[this.translateToContainerFullname(e,s)]=!0)}return i},n.translateToContainerFullname=function(e,t){var n=(0,f.classify)(e),r=t.slice(0,-1*n.length);return e+\":\"+(0,f.dasherize)(r)},e}(n.Object);e.default=a}),e(\"@ember/application/index\",[\"exports\",\"@ember/-internals/owner\",\"@ember/application/lib/lazy_load\",\"@ember/application/lib/application\"],function(e,t,n,r){\"use strict\";Object.defineProperty(e,\"getOwner\",{enumerable:!0,get:function(){return t.getOwner}}),Object.defineProperty(e,\"setOwner\",{enumerable:!0,get:function(){return t.setOwner}}),Object.defineProperty(e,\"onLoad\",{enumerable:!0,get:function(){return n.onLoad}}),Object.defineProperty(e,\"runLoadHooks\",{enumerable:!0,get:function(){return n.runLoadHooks}}),Object.defineProperty(e,\"_loaded\",{enumerable:!0,get:function(){return n._loaded}}),Object.defineProperty(e,\"default\",{enumerable:!0,get:function(){return r.default}})}),e(\"@ember/application/instance\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/metal\",\"@ember/-internals/browser-environment\",\"@ember/-internals/views\",\"@ember/engine/instance\",\"@ember/-internals/glimmer\"],function(e,i,s,t,n,r,u){\"use strict\";e.default=void 0;var o=r.default.extend({application:null,customEvents:null,rootElement:null,init:function(){this._super.apply(this,arguments),this.application._watchInstance(this),this.register(\"-application-instance:main\",this,{instantiate:!1})},_bootSync:function(e){return this._booted||(e=new a(e),this.setupRegistry(e),e.rootElement?this.rootElement=e.rootElement:this.rootElement=this.application.rootElement,e.location&&(0,s.set)(this.router,\"location\",e.location),this.application.runInstanceInitializers(this),e.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this},setupRegistry:function(e){this.constructor.setupRegistry(this.__registry__,e)},router:(0,s.computed)(function(){return this.lookup(\"router:main\")}).readOnly(),didCreateRootView:function(e){e.appendTo(this.rootElement)},startRouting:function(){this.router.startRouting(),this._didSetupRouter=!0},setupRouter:function(){this._didSetupRouter||(this._didSetupRouter=!0,this.router.setupRouter())},handleURL:function(e){return this.setupRouter(),this.router.handleURL(e)},setupEventDispatcher:function(){var e=this.lookup(\"event_dispatcher:main\"),t=(0,s.get)(this.application,\"customEvents\"),n=(0,s.get)(this,\"customEvents\"),r=(0,i.assign)({},t,n);return e.setup(r,this.rootElement),e},getURL:function(){return this.router.url},visit:function(e){var t=this;this.setupRouter();function n(){return r.options.shouldRender?(0,u.renderSettled)().then(function(){return t}):t}var r=this.__container__.lookup(\"-environment:main\"),i=this.router,o=function(e){if(e.error)throw e.error;if(\"TransitionAborted\"===e.name&&i._routerMicrolib.activeTransition)return i._routerMicrolib.activeTransition.then(n,o);throw\"TransitionAborted\"===e.name?new Error(e.message):e},a=(0,s.get)(i,\"location\");return a.setURL(e),i.handleURL(a.getURL()).then(n,o)},willDestroy:function(){this._super.apply(this,arguments),this.application._unwatchInstance(this)}});o.reopenClass({setupRegistry:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};t.toEnvironment||(t=new a(t)),e.register(\"-environment:main\",t.toEnvironment(),{instantiate:!1}),e.register(\"service:-document\",t.document,{instantiate:!1}),this._super(e,t)}});var a=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.jQuery=n.jQuery,this.isInteractive=t.hasDOM,this._renderMode=e._renderMode,void 0!==e.isBrowser?this.isBrowser=Boolean(e.isBrowser):this.isBrowser=t.hasDOM,this.isBrowser||(this.jQuery=null,this.isInteractive=!1,this.location=\"none\"),void 0!==e.shouldRender?this.shouldRender=Boolean(e.shouldRender):this.shouldRender=!0,this.shouldRender||(this.jQuery=null,this.isInteractive=!1),e.document?this.document=e.document:this.document=\"undefined\"!=typeof document?document:null,e.rootElement&&(this.rootElement=e.rootElement),void 0!==e.location&&(this.location=e.location),void 0!==e.jQuery&&(this.jQuery=e.jQuery),void 0!==e.isInteractive&&(this.isInteractive=Boolean(e.isInteractive))}return e.prototype.toEnvironment=function(){var e=(0,i.assign)({},t);return e.hasDOM=this.isBrowser,e.isInteractive=this.isInteractive,e._renderMode=this._renderMode,e.options=this,e},e}();e.default=o}),e(\"@ember/application/lib/application\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\",\"@ember/debug\",\"@ember/runloop\",\"@ember/-internals/metal\",\"@ember/application/lib/lazy_load\",\"@ember/-internals/runtime\",\"@ember/-internals/views\",\"@ember/-internals/routing\",\"@ember/application/instance\",\"@ember/engine\",\"@ember/-internals/container\",\"@ember/-internals/glimmer\",\"@ember/deprecated-features\"],function(e,n,t,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";function v(){var e=function(e,t){t=t||e.slice(0);return e.raw=t,e}([\"-bucket-cache:main\"]);return v=function(){return e},e}e.default=void 0;var g=!1,y=f.default.extend({rootElement:\"body\",eventDispatcher:null,customEvents:null,autoboot:!0,_globalsMode:!0,_applicationInstances:null,init:function(){this._super.apply(this,arguments),this.$||(this.$=l.jQuery),g||(g=!0,m.JQUERY_INTEGRATION&&r.hasDOM&&!l.jQueryDisabled&&a.libraries.registerCoreLibrary(\"jQuery\",(0,l.jQuery)().jquery)),this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=this._globalsMode=Boolean(this.autoboot),this._globalsMode&&this._prepareForGlobalsMode(),this.autoboot&&this.waitForDOMReady()},buildInstance:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return e.base=this,e.application=this,h.default.create(e)},_watchInstance:function(e){this._applicationInstances.add(e)},_unwatchInstance:function(e){return this._applicationInstances.delete(e)},_prepareForGlobalsMode:function(){this.Router=(this.Router||c.Router).extend(),this._buildDeprecatedInstance()},_buildDeprecatedInstance:function(){var e=this.buildInstance();this.__deprecatedInstance__=e,this.__container__=e.__container__},waitForDOMReady:function(){!this.$||this.$.isReady?(0,o.schedule)(\"actions\",this,\"domReady\"):this.$().ready((0,o.bind)(this,\"domReady\"))},domReady:function(){this.isDestroyed||this._bootSync()},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--,0===this._readinessDeferrals&&(0,o.once)(this,this.didBecomeReady)},boot:function(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(e){}return this._bootPromise},_bootSync:function(){if(!this._booted){var t=this._bootResolver=u.RSVP.defer();this._bootPromise=t.promise;try{this.runInitializers(),(0,s.runLoadHooks)(\"application\",this),this.advanceReadiness()}catch(e){throw t.reject(e),e}}},reset:function(){var e=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,(this._booted=!1,o.join)(this,function(){(0,o.run)(e,\"destroy\"),this._buildDeprecatedInstance(),(0,o.schedule)(\"actions\",this,\"_bootSync\")})},didBecomeReady:function(){try{var e;(0,i.isTesting)()||((0,a.processAllNamespaces)(),(0,a.setNamespaceSearchDisabled)(!0)),this.autoboot&&((e=this._globalsMode?this.__deprecatedInstance__:this.buildInstance())._bootSync(),this.ready(),e.startRouting()),this._bootResolver.resolve(this),this._booted=!0}catch(e){throw this._bootResolver.reject(e),e}},ready:function(){return this},willDestroy:function(){this._super.apply(this,arguments),(0,a.setNamespaceSearchDisabled)(!1),this._booted=!1,this._bootPromise=null,this._bootResolver=null,s._loaded.application===this&&(s._loaded.application=void 0),this._applicationInstances.size&&(this._applicationInstances.forEach(function(e){return e.destroy()}),this._applicationInstances.clear())},visit:function(e,n){var r=this;return this.boot().then(function(){var t=r.buildInstance();return t.boot(n).then(function(){return t.visit(e)}).catch(function(e){throw(0,o.run)(t,\"destroy\"),e})})}});y.reopenClass({buildRegistry:function(){var e,t=this._super.apply(this,arguments);return(e=t).register(\"router:main\",c.Router.extend()),e.register(\"-view-registry:main\",{create:function(){return(0,n.dictionary)(null)}}),e.register(\"route:basic\",c.Route),e.register(\"event_dispatcher:main\",l.EventDispatcher),e.injection(\"router:main\",\"namespace\",\"application:main\"),e.register(\"location:auto\",c.AutoLocation),e.register(\"location:hash\",c.HashLocation),e.register(\"location:history\",c.HistoryLocation),e.register(\"location:none\",c.NoneLocation),e.register((0,p.privatize)(v()),{create:function(){return new c.BucketCache}}),e.register(\"service:router\",c.RouterService),e.injection(\"service:router\",\"_router\",\"router:main\"),(0,d.setupApplicationRegistry)(t),t}}),e.default=y}),e(\"@ember/application/lib/lazy_load\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\"],function(e,t,r){\"use strict\";e.onLoad=function(e,t){var n=o[e];i[e]=i[e]||[],i[e].push(t),n&&t(n)},e.runLoadHooks=function(e,t){{var n;o[e]=t,r.window&&\"function\"==typeof CustomEvent&&(n=new CustomEvent(e,{detail:t,name:e}),r.window.dispatchEvent(n))}i[e]&&i[e].forEach(function(e){return e(t)})},e._loaded=void 0;var i=t.ENV.EMBER_LOAD_HOOKS||{},o={};e._loaded=o}),e(\"@ember/application/lib/validate-type\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=function(e,t){var n=r[t.type];if(!n)return;n[1],n[2]};var r={route:[\"assert\",\"isRouteFactory\",\"Ember.Route\"],component:[\"deprecate\",\"isComponentFactory\",\"Ember.Component\"],view:[\"deprecate\",\"isViewFactory\",\"Ember.View\"],service:[\"deprecate\",\"isServiceFactory\",\"Ember.Service\"]}}),e(\"@ember/canary-features/index\",[\"exports\",\"@ember/-internals/environment\",\"@ember/polyfills\"],function(e,n,t){\"use strict\";var r={EMBER_LIBRARIES_ISREGISTERED:!(e.isEnabled=function(e){var t=i[e];return!0===t||!1===t?t:!!n.ENV.ENABLE_OPTIONAL_FEATURES}),EMBER_IMPROVED_INSTRUMENTATION:!1,EMBER_MODULE_UNIFICATION:!1,EMBER_METAL_TRACKED_PROPERTIES:!1,EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES:!(e.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT=e.EMBER_GLIMMER_ON_MODIFIER=e.EMBER_CUSTOM_COMPONENT_ARG_PROXY=e.EMBER_GLIMMER_FN_HELPER=e.EMBER_NATIVE_DECORATOR_SUPPORT=e.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS=e.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES=e.EMBER_METAL_TRACKED_PROPERTIES=e.EMBER_MODULE_UNIFICATION=e.EMBER_IMPROVED_INSTRUMENTATION=e.EMBER_LIBRARIES_ISREGISTERED=e.FEATURES=e.DEFAULT_FEATURES=void 0),EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS:!0,EMBER_NATIVE_DECORATOR_SUPPORT:!0,EMBER_GLIMMER_FN_HELPER:!0,EMBER_CUSTOM_COMPONENT_ARG_PROXY:!1,EMBER_GLIMMER_ON_MODIFIER:!0,EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT:!0};e.DEFAULT_FEATURES=r;var i=(0,t.assign)(r,n.ENV.FEATURES);function o(e){return!(!n.ENV.ENABLE_OPTIONAL_FEATURES||null!==e)||e}var a=o((e.FEATURES=i).EMBER_LIBRARIES_ISREGISTERED);e.EMBER_LIBRARIES_ISREGISTERED=a;var s=o(i.EMBER_IMPROVED_INSTRUMENTATION);e.EMBER_IMPROVED_INSTRUMENTATION=s;var u=o(i.EMBER_MODULE_UNIFICATION);e.EMBER_MODULE_UNIFICATION=u;var l=o(i.EMBER_METAL_TRACKED_PROPERTIES);e.EMBER_METAL_TRACKED_PROPERTIES=l;var c=o(i.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES);e.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES=c;var h=o(i.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS);e.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS=h;var f=o(i.EMBER_NATIVE_DECORATOR_SUPPORT);e.EMBER_NATIVE_DECORATOR_SUPPORT=f;var p=o(i.EMBER_GLIMMER_FN_HELPER);e.EMBER_GLIMMER_FN_HELPER=p;var d=o(i.EMBER_CUSTOM_COMPONENT_ARG_PROXY);e.EMBER_CUSTOM_COMPONENT_ARG_PROXY=d;var m=o(i.EMBER_GLIMMER_ON_MODIFIER);e.EMBER_GLIMMER_ON_MODIFIER=m;var v=o(i.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT);e.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT=v}),e(\"@ember/controller/index\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/metal\",\"@ember/controller/lib/controller_mixin\"],function(e,t,n,r){\"use strict\";e.inject=function(){return n.inject.apply(void 0,[\"controller\"].concat(Array.prototype.slice.call(arguments)))},e.default=void 0;var i=t.FrameworkObject.extend(r.default);(0,t.setFrameworkClass)(i),e.default=i}),e(\"@ember/controller/lib/controller_mixin\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.Mixin.create(n.ActionHandler,{isController:!0,target:null,store:null,model:null});e.default=r}),e(\"@ember/debug/index\",[\"exports\",\"@ember/-internals/browser-environment\",\"@ember/error\",\"@ember/debug/lib/deprecate\",\"@ember/debug/lib/testing\",\"@ember/debug/lib/warn\"],function(e,t,n,r,i,o){\"use strict\";Object.defineProperty(e,\"registerDeprecationHandler\",{enumerable:!0,get:function(){return r.registerHandler}}),Object.defineProperty(e,\"isTesting\",{enumerable:!0,get:function(){return i.isTesting}}),Object.defineProperty(e,\"setTesting\",{enumerable:!0,get:function(){return i.setTesting}}),Object.defineProperty(e,\"registerWarnHandler\",{enumerable:!0,get:function(){return o.registerHandler}}),e._warnIfUsingStrippedFeatureFlags=e.getDebugFunction=e.setDebugFunction=e.deprecateFunc=e.runInDebug=e.debugFreeze=e.debugSeal=e.deprecate=e.debug=e.warn=e.info=e.assert=void 0;function a(){}var s=a;e.assert=s;var u=a;e.info=u;var l=a;e.warn=l;var c=a;e.debug=c;var h=a;e.deprecate=h;var f=a;e.debugSeal=f;var p=a;e.debugFreeze=p;var d=a;e.runInDebug=d;var m=a;e.setDebugFunction=m;var v=a;e.getDebugFunction=v;var g=function(){return arguments[arguments.length-1]};e.deprecateFunc=g,e._warnIfUsingStrippedFeatureFlags=void 0}),e(\"@ember/debug/lib/deprecate\",[\"exports\",\"@ember/-internals/environment\",\"@ember/debug/index\",\"@ember/debug/lib/handlers\"],function(e,t,n,r){\"use strict\";e.missingOptionsUntilDeprecation=e.missingOptionsIdDeprecation=e.missingOptionsDeprecation=e.registerHandler=e.default=void 0;var i,o,a,s=function(){};e.registerHandler=s,e.missingOptionsDeprecation=i,e.missingOptionsIdDeprecation=o,e.missingOptionsUntilDeprecation=a;var u=function(){};e.default=u}),e(\"@ember/debug/lib/handlers\",[\"exports\"],function(e){\"use strict\";e.invoke=e.registerHandler=e.HANDLERS=void 0;var t={};e.HANDLERS=t;var n=function(){};e.registerHandler=n;var r=function(){};e.invoke=r}),e(\"@ember/debug/lib/testing\",[\"exports\"],function(e){\"use strict\";e.isTesting=function(){return t};var t=!(e.setTesting=function(e){t=Boolean(e)})}),e(\"@ember/debug/lib/warn\",[\"exports\",\"@ember/debug/index\",\"@ember/debug/lib/handlers\"],function(e,t,n){\"use strict\";e.missingOptionsDeprecation=e.missingOptionsIdDeprecation=e.registerHandler=e.default=void 0;var r=function(){};e.registerHandler=r;var i,o,a=function(){};e.missingOptionsDeprecation=i,e.missingOptionsIdDeprecation=o,e.default=a}),e(\"@ember/deprecated-features/index\",[\"exports\"],function(e){\"use strict\";e.FUNCTION_PROTOTYPE_EXTENSIONS=e.APP_CTRL_ROUTER_PROPS=e.ALIAS_METHOD=e.JQUERY_INTEGRATION=e.COMPONENT_MANAGER_STRING_LOOKUP=e.ROUTER_EVENTS=e.MERGE=e.LOGGER=e.EMBER_EXTEND_PROTOTYPES=e.SEND_ACTION=void 0;e.SEND_ACTION=!0;e.EMBER_EXTEND_PROTOTYPES=!0;e.LOGGER=!0;e.MERGE=!0;e.ROUTER_EVENTS=!0;e.COMPONENT_MANAGER_STRING_LOOKUP=!0;e.JQUERY_INTEGRATION=!0;e.ALIAS_METHOD=!0;e.APP_CTRL_ROUTER_PROPS=!0;e.FUNCTION_PROTOTYPE_EXTENSIONS=!0}),e(\"@ember/engine/index\",[\"exports\",\"@ember/engine/lib/engine-parent\",\"@ember/-internals/utils\",\"@ember/controller\",\"@ember/-internals/runtime\",\"@ember/-internals/container\",\"dag-map\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/application/globals-resolver\",\"@ember/engine/instance\",\"@ember/-internals/routing\",\"@ember/-internals/extension-support\",\"@ember/-internals/views\",\"@ember/-internals/glimmer\"],function(e,t,n,a,r,s,u,i,l,c,o,h,f,p,d){\"use strict\";function m(){var e=g([\"-bucket-cache:main\"]);return m=function(){return e},e}function v(){var e=g([\"-bucket-cache:main\"]);return v=function(){return e},e}function g(e,t){return t=t||e.slice(0),e.raw=t,e}Object.defineProperty(e,\"getEngineParent\",{enumerable:!0,get:function(){return t.getEngineParent}}),Object.defineProperty(e,\"setEngineParent\",{enumerable:!0,get:function(){return t.setEngineParent}}),e.default=void 0;var y=r.Namespace.extend(r.RegistryProxyMixin,{init:function(){this._super.apply(this,arguments),this.buildRegistry()},_initializersRan:!1,ensureInitializers:function(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)},buildInstance:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return this.ensureInitializers(),e.base=this,o.default.create(e)},buildRegistry:function(){return this.__registry__=this.constructor.buildRegistry(this)},initializer:function(e){this.constructor.initializer(e)},instanceInitializer:function(e){this.constructor.instanceInitializer(e)},runInitializers:function(){var n=this;this._runInitializer(\"initializers\",function(e,t){t.initialize(n)})},runInstanceInitializers:function(n){this._runInitializer(\"instanceInitializers\",function(e,t){t.initialize(n)})},_runInitializer:function(e,t){for(var n,r=(0,l.get)(this.constructor,e),i=function(e){var t=[];for(var n in e)t.push(n);return t}(r),o=new u.default,a=0;a<i.length;a++)n=r[i[a]],o.add(n.name,n,n.before,n.after);o.topsort(t)}});function b(n){return function(e){var t;void 0!==this.superclass[n]&&this.superclass[n]===this[n]&&((t={})[n]=Object.create(this[n]),this.reopenClass(t)),this[n][e.name]=e}}y.reopenClass({initializers:Object.create(null),instanceInitializers:Object.create(null),initializer:b(\"initializers\"),instanceInitializer:b(\"instanceInitializers\"),buildRegistry:function(e){var t,n,r,i,o=new s.Registry({resolver:(t=e,n=(0,l.get)(t,\"Resolver\")||c.default,r={namespace:t},n.create(r))});return o.set=l.set,o.register(\"application:main\",e,{instantiate:!1}),(i=o).optionsForType(\"component\",{singleton:!1}),i.optionsForType(\"view\",{singleton:!1}),i.register(\"controller:basic\",a.default,{instantiate:!1}),i.injection(\"view\",\"_viewRegistry\",\"-view-registry:main\"),i.injection(\"renderer\",\"_viewRegistry\",\"-view-registry:main\"),i.injection(\"route\",\"_topLevelViewTemplate\",\"template:-outlet\"),i.injection(\"view:-outlet\",\"namespace\",\"application:main\"),i.injection(\"controller\",\"target\",\"router:main\"),i.injection(\"controller\",\"namespace\",\"application:main\"),i.injection(\"router\",\"_bucketCache\",(0,s.privatize)(v())),i.injection(\"route\",\"_bucketCache\",(0,s.privatize)(m())),i.injection(\"route\",\"_router\",\"router:main\"),i.register(\"service:-routing\",h.RoutingService),i.injection(\"service:-routing\",\"router\",\"router:main\"),i.register(\"resolver-for-debugging:main\",i.resolver,{instantiate:!1}),i.injection(\"container-debug-adapter:main\",\"resolver\",\"resolver-for-debugging:main\"),i.injection(\"data-adapter:main\",\"containerDebugAdapter\",\"container-debug-adapter:main\"),i.register(\"container-debug-adapter:main\",f.ContainerDebugAdapter),i.register(\"component-lookup:main\",p.ComponentLookup),(0,d.setupEngineRegistry)(o),o},resolver:null,Resolver:null}),e.default=y}),e(\"@ember/engine/instance\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/error\",\"@ember/-internals/container\",\"@ember/engine/lib/engine-parent\"],function(e,n,r,t,i,o,a){\"use strict\";function s(){var e=l([\"template-compiler:main\"]);return s=function(){return e},e}function u(){var e=l([\"-bucket-cache:main\"]);return u=function(){return e},e}function l(e,t){return t=t||e.slice(0),e.raw=t,e}e.default=void 0;var c=r.Object.extend(r.RegistryProxyMixin,r.ContainerProxyMixin,{base:null,init:function(){this._super.apply(this,arguments),(0,n.guidFor)(this);var e=this.base;e||(e=this.application,this.base=e);var t=this.__registry__=new o.Registry({fallback:e.__registry__});this.__container__=t.container({owner:this}),this._booted=!1},boot:function(t){var n=this;return this._bootPromise||(this._bootPromise=new r.RSVP.Promise(function(e){return e(n._bootSync(t))})),this._bootPromise},_bootSync:function(e){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(e),this.base.runInstanceInitializers(this),this._booted=!0),this},setupRegistry:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.__container__.lookup(\"-environment:main\");this.constructor.setupRegistry(this.__registry__,e)},unregister:function(e){this.__container__.reset(e),this._super.apply(this,arguments)},buildChildEngineInstance:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=this.lookup(\"engine:\"+e);if(!n)throw new i.default(\"You attempted to mount the engine '\"+e+\"', but it is not registered with its parent.\");var r=n.buildInstance(t);return(0,a.setEngineParent)(r,this),r},cloneParentDependencies:function(){var t=this,n=(0,a.getEngineParent)(this);[\"route:basic\",\"service:-routing\",\"service:-glimmer-environment\"].forEach(function(e){return t.register(e,n.resolveRegistration(e))});var e=n.lookup(\"-environment:main\");this.register(\"-environment:main\",e,{instantiate:!1});var r=[\"router:main\",(0,o.privatize)(u()),\"-view-registry:main\",\"renderer:-\"+(e.isInteractive?\"dom\":\"inert\"),\"service:-document\",(0,o.privatize)(s())];e.isInteractive&&r.push(\"event_dispatcher:main\"),r.forEach(function(e){return t.register(e,n.lookup(e),{instantiate:!1})}),this.inject(\"view\",\"_environment\",\"-environment:main\"),this.inject(\"route\",\"_environment\",\"-environment:main\")}});c.reopenClass({setupRegistry:function(e,t){t&&(e.injection(\"view\",\"_environment\",\"-environment:main\"),e.injection(\"route\",\"_environment\",\"-environment:main\"),t.isInteractive?(e.injection(\"view\",\"renderer\",\"renderer:-dom\"),e.injection(\"component\",\"renderer\",\"renderer:-dom\")):(e.injection(\"view\",\"renderer\",\"renderer:-inert\"),e.injection(\"component\",\"renderer\",\"renderer:-inert\")))}});e.default=c}),e(\"@ember/engine/lib/engine-parent\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";e.getEngineParent=function(e){return e[n]},e.setEngineParent=function(e,t){e[n]=t};var n=(0,t.symbol)(\"ENGINE_PARENT\")}),e(\"@ember/error/index\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=Error;e.default=t}),e(\"@ember/instrumentation/index\",[\"exports\",\"@ember/-internals/environment\"],function(e,h){\"use strict\";e.instrument=i,e._instrumentStart=l,e.subscribe=function(e,t){for(var n,r=e.split(\".\"),i=[],o=0;o<r.length;o++)\"*\"===(n=r[o])?i.push(\"[^\\\\.]*\"):i.push(n);var a=i.join(\"\\\\.\");a+=\"(\\\\..*)?\";var s={pattern:e,regex:new RegExp(\"^\"+a+\"$\"),object:t};return f.push(s),p={},s},e.unsubscribe=function(e){for(var t=0,n=0;n<f.length;n++)f[n]===e&&(t=n);f.splice(t,1),p={}},e.reset=function(){f.length=0,p={}},e.flaggedInstrument=e.subscribers=void 0;var f=[];e.subscribers=f;var p={};var t,n,r,d=(t=\"undefined\"!=typeof window&&window.performance||{},(n=t.now||t.mozNow||t.webkitNow||t.msNow||t.oNow)?n.bind(t):Date.now);function i(e,t,n,r){var i,o,a=arguments.length<=3&&\"function\"==typeof t?(o=t,n):(i=t,o=n,r);if(0===f.length)return o.call(a);var s=i||{},u=l(e,function(){return s});return u===m?o.call(a):function(e,t,n,r){try{return e.call(r)}catch(e){throw n.exception=e}finally{t()}}(o,u,s,a)}function m(){}function l(r,e,t){if(0===f.length)return m;var i=p[r];if(0===(i=i||function(e){for(var t,n=[],r=0;r<f.length;r++)(t=f[r]).regex.test(e)&&n.push(t.object);return p[e]=n}(r)).length)return m;var o,a=e(t),s=h.ENV.STRUCTURED_PROFILE;s&&(o=r+\": \"+a.object,console.time(o));for(var u=[],n=d(),l=0;l<i.length;l++){var c=i[l];u.push(c.before(r,n,a))}return function(){for(var e=d(),t=0;t<i.length;t++){var n=i[t];\"function\"==typeof n.after&&n.after(r,e,a,u[t])}s&&console.timeEnd(o)}}e.flaggedInstrument=r,e.flaggedInstrument=r=function(e,t,n){return n()}}),e(\"@ember/modifier/index\",[\"exports\",\"@ember/-internals/glimmer\"],function(e,t){\"use strict\";Object.defineProperty(e,\"setModifierManager\",{enumerable:!0,get:function(){return t.setModifierManager}}),Object.defineProperty(e,\"capabilties\",{enumerable:!0,get:function(){return t.modifierCapabilties}})}),e(\"@ember/object/compat\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,a,t){\"use strict\";e.dependentKeyCompat=n;var s=function(e,i,t){var o=t.get;return void 0!==o&&(t.get=function(){var e,t=this,n=(0,a.tagForProperty)(this,i),r=(0,a.track)(function(){e=o.call(t)});return(0,a.update)(n,r),(0,a.consume)(r),e}),t};function n(e,t,o){if((0,a.isElementDescriptor)([e,t,o]))return s(e,t,o);o=e;function n(e,t,n,r,i){return s(e,t,o)}return(0,a.setClassicDecorator)(n),n}(0,a.setClassicDecorator)(n)}),e(\"@ember/object/computed\",[\"exports\",\"@ember/object/lib/computed/computed_macros\",\"@ember/object/lib/computed/reduce_computed_macros\"],function(e,t,n){\"use strict\";Object.defineProperty(e,\"empty\",{enumerable:!0,get:function(){return t.empty}}),Object.defineProperty(e,\"notEmpty\",{enumerable:!0,get:function(){return t.notEmpty}}),Object.defineProperty(e,\"none\",{enumerable:!0,get:function(){return t.none}}),Object.defineProperty(e,\"not\",{enumerable:!0,get:function(){return t.not}}),Object.defineProperty(e,\"bool\",{enumerable:!0,get:function(){return t.bool}}),Object.defineProperty(e,\"match\",{enumerable:!0,get:function(){return t.match}}),Object.defineProperty(e,\"equal\",{enumerable:!0,get:function(){return t.equal}}),Object.defineProperty(e,\"gt\",{enumerable:!0,get:function(){return t.gt}}),Object.defineProperty(e,\"gte\",{enumerable:!0,get:function(){return t.gte}}),Object.defineProperty(e,\"lt\",{enumerable:!0,get:function(){return t.lt}}),Object.defineProperty(e,\"lte\",{enumerable:!0,get:function(){return t.lte}}),Object.defineProperty(e,\"oneWay\",{enumerable:!0,get:function(){return t.oneWay}}),Object.defineProperty(e,\"readOnly\",{enumerable:!0,get:function(){return t.readOnly}}),Object.defineProperty(e,\"deprecatingAlias\",{enumerable:!0,get:function(){return t.deprecatingAlias}}),Object.defineProperty(e,\"and\",{enumerable:!0,get:function(){return t.and}}),Object.defineProperty(e,\"or\",{enumerable:!0,get:function(){return t.or}}),Object.defineProperty(e,\"sum\",{enumerable:!0,get:function(){return n.sum}}),Object.defineProperty(e,\"min\",{enumerable:!0,get:function(){return n.min}}),Object.defineProperty(e,\"max\",{enumerable:!0,get:function(){return n.max}}),Object.defineProperty(e,\"map\",{enumerable:!0,get:function(){return n.map}}),Object.defineProperty(e,\"sort\",{enumerable:!0,get:function(){return n.sort}}),Object.defineProperty(e,\"setDiff\",{enumerable:!0,get:function(){return n.setDiff}}),Object.defineProperty(e,\"mapBy\",{enumerable:!0,get:function(){return n.mapBy}}),Object.defineProperty(e,\"filter\",{enumerable:!0,get:function(){return n.filter}}),Object.defineProperty(e,\"filterBy\",{enumerable:!0,get:function(){return n.filterBy}}),Object.defineProperty(e,\"uniq\",{enumerable:!0,get:function(){return n.uniq}}),Object.defineProperty(e,\"uniqBy\",{enumerable:!0,get:function(){return n.uniqBy}}),Object.defineProperty(e,\"union\",{enumerable:!0,get:function(){return n.union}}),Object.defineProperty(e,\"intersect\",{enumerable:!0,get:function(){return n.intersect}}),Object.defineProperty(e,\"collect\",{enumerable:!0,get:function(){return n.collect}})}),e(\"@ember/object/index\",[\"exports\",\"@ember/debug\",\"@ember/polyfills\",\"@ember/-internals/metal\"],function(e,t,i,a){\"use strict\";var n;e.action=void 0,e.action=n;function s(e,t,n){var r;return void 0!==e.constructor&&\"function\"==typeof e.constructor.proto&&e.constructor.proto(),e.hasOwnProperty(\"actions\")||(r=e.actions,e.actions=r?(0,i.assign)({},r):{}),e.actions[t]=n,{get:function(){var e=o.get(this);void 0===e&&(e=new Map,o.set(this,e));var t=e.get(n);return void 0===t&&(t=n.bind(this),e.set(n,t)),t}}}var o=new WeakMap;e.action=n=function(e,t,n){var o;if((0,a.isElementDescriptor)([e,t,n]))return o=n.value,s(e,t,o);o=e;function r(e,t,n,r,i){return s(e,t,o)}return(0,a.setClassicDecorator)(r),r},(0,a.setClassicDecorator)(n)}),e(\"@ember/object/lib/computed/computed_macros\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,o,t){\"use strict\";function n(e,i){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=function(e){var t=[];function n(e){t.push(e)}for(var r=0;r<e.length;r++){var i=e[r];(0,o.expandProperties)(i,n)}return t}(t);return o.computed.apply(void 0,r.concat([function(){for(var e=r.length-1,t=0;t<e;t++){var n=(0,o.get)(this,r[t]);if(!i(n))return n}return(0,o.get)(this,r[e])}]))}}e.empty=function(e){return(0,o.computed)(e+\".length\",function(){return(0,o.isEmpty)((0,o.get)(this,e))})},e.notEmpty=function(e){return(0,o.computed)(e+\".length\",function(){return!(0,o.isEmpty)((0,o.get)(this,e))})},e.none=function(e){return(0,o.computed)(e,function(){return(0,o.isNone)((0,o.get)(this,e))})},e.not=function(e){return(0,o.computed)(e,function(){return!(0,o.get)(this,e)})},e.bool=function(e){return(0,o.computed)(e,function(){return Boolean((0,o.get)(this,e))})},e.match=function(t,n){return(0,o.computed)(t,function(){var e=(0,o.get)(this,t);return n.test(e)})},e.equal=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)===t})},e.gt=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)>t})},e.gte=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)>=t})},e.lt=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)<t})},e.lte=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)<=t})},e.oneWay=function(e){return(0,o.alias)(e).oneWay()},e.readOnly=function(e){return(0,o.alias)(e).readOnly()},e.deprecatingAlias=function(n,e){return(0,o.computed)(n,{get:function(e){return(0,o.get)(this,n)},set:function(e,t){return(0,o.set)(this,n,t),t}})},e.or=e.and=void 0;var r=n(0,function(e){return e});e.and=r;var i=n(0,function(e){return!e});e.or=i}),e(\"@ember/object/lib/computed/reduce_computed_macros\",[\"exports\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\"],function(e,t,p,d){\"use strict\";function n(t,n,r){return(0,p.computed)(t+\".[]\",function(){var e=(0,p.get)(this,t);return null===e||\"object\"!=typeof e?r:e.reduce(n,r,this)}).readOnly()}function i(e,t,n){var r;return/@each/.test(e)?r=e.replace(/\\.@each.*$/,\"\"):(r=e,e+=\".[]\"),p.computed.apply(void 0,[e].concat(t,[function(){var e=(0,p.get)(this,r);return(0,d.isArray)(e)?(0,d.A)(n.call(this,e)):(0,d.A)()}])).readOnly()}function r(e,t){var n=e.map(function(e){return e+\".[]\"});return p.computed.apply(void 0,n.concat([function(){return(0,d.A)(t.call(this,e))}])).readOnly()}function o(e,t,n){return void 0===n&&\"function\"==typeof t&&(n=t,t=[]),i(e,t,function(e){return e.map(n,this)})}function a(e,t,n){return void 0===n&&\"function\"==typeof t&&(n=t,t=[]),i(e,t,function(e){return e.filter(n,this)})}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(e){var n=this,r=(0,d.A)(),i=new Set;return e.forEach(function(e){var t=(0,p.get)(n,e);(0,d.isArray)(t)&&t.forEach(function(e){i.has(e)||(i.add(e),r.push(e))})}),r})}function m(e){return e.map(function(e){var t=e.split(\":\");return[t[0],t[1]||\"asc\"]})}function v(e,s){return(0,d.A)(e.slice().sort(function(e,t){for(var n=0;n<s.length;n++){var r=s[n],i=r[0],o=r[1],a=(0,d.compare)((0,p.get)(e,i),(0,p.get)(t,i));if(0!==a)return\"desc\"===o?-1*a:a}return 0}))}e.sum=function(e){return n(e,function(e,t){return e+t},0)},e.max=function(e){return n(e,function(e,t){return Math.max(e,t)},-1/0)},e.min=function(e){return n(e,function(e,t){return Math.min(e,t)},1/0)},e.map=o,e.mapBy=function(e,t){return o(e+\".@each.\"+t,function(e){return(0,p.get)(e,t)})},e.filter=a,e.filterBy=function(e,t,n){var r;r=2===arguments.length?function(e){return(0,p.get)(e,t)}:function(e){return(0,p.get)(e,t)===n};return a(e+\".@each.\"+t,r)},e.uniq=s,e.uniqBy=function(t,n){return(0,p.computed)(t+\".[]\",function(){var e=(0,p.get)(this,t);return(0,d.isArray)(e)?(0,d.uniqBy)(e,n):(0,d.A)()}).readOnly()},e.intersect=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(e){var n=this,o=e.map(function(e){var t=(0,p.get)(n,e);return(0,d.isArray)(t)?t:[]}),t=o.pop().filter(function(e){for(var t=0;t<o.length;t++){for(var n=!1,r=o[t],i=0;i<r.length;i++)if(r[i]===e){n=!0;break}if(!1===n)return!1}return!0});return(0,d.A)(t)})},e.setDiff=function(n,r){return(0,p.computed)(n+\".[]\",r+\".[]\",function(){var e=this.get(n),t=this.get(r);return(0,d.isArray)(e)?(0,d.isArray)(t)?e.filter(function(e){return-1===t.indexOf(e)}):(0,d.A)(e):(0,d.A)()}).readOnly()},e.collect=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(){var n=this,e=t.map(function(e){var t=(0,p.get)(n,e);return void 0===t?null:t});return(0,d.A)(e)})},e.sort=function(e,t,n){{}void 0!==n||Array.isArray(t)||(n=t,t=[]);return\"function\"==typeof n?function(e,t,r){return i(e,t,function(e){var n=this;return e.slice().sort(function(e,t){return r.call(n,e,t)})})}(e,t,n):function(l,c){var h=new WeakMap,f=new WeakMap;{return(0,p.computed)(c+\".[]\",function(e){var r=this,t=(0,p.get)(this,c),n=h.get(this);f.has(this)||f.set(this,function(){(0,p.notifyPropertyChange)(this,e)});var i=f.get(this);void 0!==n&&n.forEach(function(e){return(0,p.removeObserver)(r,e,i)});var o,a=\"@this\"===l,s=m(t),n=0===s.length?(o=a?\"[]\":l+\".[]\",(0,p.addObserver)(this,o,i),[o]):s.map(function(e){var t=e[0],n=a?\"@each.\"+t:l+\".@each.\"+t;return(0,p.addObserver)(r,n,i),n});h.set(this,n);var u=a?this:(0,p.get)(this,l);return(0,d.isArray)(u)?0===s.length?(0,d.A)(u.slice()):v(u,s):(0,d.A)()}).readOnly()}}(e,n)},e.union=void 0,e.union=s}),e(\"@ember/polyfills/index\",[\"exports\",\"@ember/deprecated-features\",\"@ember/polyfills/lib/merge\",\"@ember/polyfills/lib/assign\",\"@ember/polyfills/lib/weak_set\"],function(e,t,n,r,i){\"use strict\";Object.defineProperty(e,\"assign\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"assignPolyfill\",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(e,\"_WeakSet\",{enumerable:!0,get:function(){return i.default}}),e.merge=void 0;var o=t.MERGE?n.default:void 0;e.merge=o}),e(\"@ember/polyfills/lib/assign\",[\"exports\"],function(e){\"use strict\";function t(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n)for(var r=Object.keys(n),i=0;i<r.length;i++){var o=r[i];e[o]=n[o]}}return e}e.assign=t,e.default=void 0;var n=Object.assign||t;e.default=n}),e(\"@ember/polyfills/lib/merge\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=function(e,t){if(null===t||\"object\"!=typeof t)return e;for(var n,r=Object.keys(t),i=0;i<r.length;i++)n=r[i],e[n]=t[n];return e}}),e(\"@ember/polyfills/lib/weak_set\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=\"function\"==typeof WeakSet?WeakSet:function(){function e(){this._map=new WeakMap}var t=e.prototype;return t.add=function(e){return this._map.set(e,!0),this},t.delete=function(e){return this._map.delete(e)},t.has=function(e){return this._map.has(e)},e}();e.default=t}),e(\"@ember/runloop/index\",[\"exports\",\"@ember/debug\",\"@ember/-internals/error-handling\",\"@ember/-internals/metal\",\"backburner\"],function(e,t,n,r,i){\"use strict\";e.getCurrentRunLoop=function(){return a},e.run=c,e.join=f,e.begin=function(){l.begin()},e.end=function(){l.end()},e.schedule=function(){return l.schedule.apply(l,arguments)},e.hasScheduledTimers=function(){return l.hasTimers()},e.cancelTimers=function(){l.cancelTimers()},e.later=function(){return l.later.apply(l,arguments)},e.once=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift(\"actions\"),l.scheduleOnce.apply(l,t)},e.scheduleOnce=function(){return l.scheduleOnce.apply(l,arguments)},e.next=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.push(1),l.later.apply(l,t)},e.cancel=function(e){return l.cancel(e)},e.debounce=function(){return l.debounce.apply(l,arguments)},e.throttle=function(){return l.throttle.apply(l,arguments)},e.bind=e._globalsRun=e.backburner=e.queues=e._rsvpErrorQueue=void 0;var o,a=null;var s=(\"\"+Math.random()+Date.now()).replace(\".\",\"\"),u=[\"actions\",\"routerTransitions\",\"render\",\"afterRender\",\"destroy\",e._rsvpErrorQueue=s];e.queues=u;var l=new i.default(u,{defaultQueue:\"actions\",onBegin:function(e){a=e},onEnd:function(e,t){a=t},onErrorTarget:n.onErrorTarget,onErrorMethod:\"onerror\",flush:o});function c(){return l.run.apply(l,arguments)}e.backburner=l;var h=c.bind(null);function f(){return l.join.apply(l,arguments)}e._globalsRun=h;e.bind=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f.apply(void 0,r.concat(t))}}}),e(\"@ember/service/index\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.inject=function(){return n.inject.apply(void 0,[\"service\"].concat(Array.prototype.slice.call(arguments)))},e.default=void 0;var r=t.FrameworkObject.extend();r.reopenClass({isServiceFactory:!0}),(0,t.setFrameworkClass)(r),e.default=r}),e(\"@ember/string/index\",[\"exports\",\"@ember/string/lib/string_registry\",\"@ember/-internals/environment\",\"@ember/-internals/utils\"],function(e,n,t,r){\"use strict\";e.loc=_,e.w=w,e.decamelize=E,e.dasherize=T,e.camelize=C,e.classify=R,e.underscore=k,e.capitalize=x,Object.defineProperty(e,\"_getStrings\",{enumerable:!0,get:function(){return n.getStrings}}),Object.defineProperty(e,\"_setStrings\",{enumerable:!0,get:function(){return n.setStrings}});var i=/[ _]/g,o=new r.Cache(1e3,function(e){return E(e).replace(i,\"-\")}),a=/(\\-|\\_|\\.|\\s)+(.)?/g,s=/(^|\\/)([A-Z])/g,u=new r.Cache(1e3,function(e){return e.replace(a,function(e,t,n){return n?n.toUpperCase():\"\"}).replace(s,function(e){return e.toLowerCase()})}),l=/^(\\-|_)+(.)?/,c=/(.)(\\-|\\_|\\.|\\s)+(.)?/g,h=/(^|\\/|\\.)([a-z])/g,f=new r.Cache(1e3,function(e){for(var t=function(e,t,n){return n?\"_\"+n.toUpperCase():\"\"},n=function(e,t,n,r){return t+(r?r.toUpperCase():\"\")},r=e.split(\"/\"),i=0;i<r.length;i++)r[i]=r[i].replace(l,t).replace(c,n);return r.join(\"/\").replace(h,function(e){return e.toUpperCase()})}),p=/([a-z\\d])([A-Z]+)/g,d=/\\-|\\s+/g,m=new r.Cache(1e3,function(e){return e.replace(p,\"$1_$2\").replace(d,\"_\").toLowerCase()}),v=/(^|\\/)([a-z\\u00C0-\\u024F])/g,g=new r.Cache(1e3,function(e){return e.replace(v,function(e){return e.toUpperCase()})}),y=/([a-z\\d])([A-Z])/g,b=new r.Cache(1e3,function(e){return e.replace(y,\"$1_$2\").toLowerCase()});function _(e,t){return(!Array.isArray(t)||2<arguments.length)&&(t=Array.prototype.slice.call(arguments,1)),e=(0,n.getString)(e)||e,i=t,o=0,e.replace(/%@([0-9]+)?/g,function(e,t){var n=t?parseInt(t,10)-1:o++,r=n<i.length?i[n]:void 0;return\"string\"==typeof r?r:null===r?\"(null)\":void 0===r?\"\":String(r)});var i,o}function w(e){return e.split(/\\s+/)}function E(e){return b.get(e)}function T(e){return o.get(e)}function C(e){return u.get(e)}function R(e){return f.get(e)}function k(e){return m.get(e)}function x(e){return g.get(e)}t.ENV.EXTEND_PROTOTYPES.String&&Object.defineProperties(String.prototype,{w:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return w(this)}},loc:{configurable:!0,enumerable:!1,writeable:!0,value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return _(this,t)}},camelize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return C(this)}},decamelize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return E(this)}},dasherize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return T(this)}},underscore:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return k(this)}},classify:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return R(this)}},capitalize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return x(this)}}})}),e(\"@ember/string/lib/string_registry\",[\"exports\"],function(e){\"use strict\";e.setStrings=function(e){t=e},e.getStrings=function(){return t},e.getString=function(e){return t[e]};var t={}}),e(\"@glimmer/encoder\",[\"exports\"],function(e){\"use strict\";e.InstructionEncoder=void 0;var t=function(){function e(e){this.buffer=e,this.typePos=0,this.size=0}var t=e.prototype;return t.encode=function(e,t){if(255<e)throw new Error(\"Opcode type over 8-bits. Got \"+e+\".\");this.buffer.push(e|t|arguments.length-2<<8),this.typePos=this.buffer.length-1;for(var n=2;n<arguments.length;n++){var r=arguments[n];if(\"number\"==typeof r&&4294967295<r)throw new Error(\"Operand over 32-bits. Got \"+r+\".\");this.buffer.push(r)}this.size=this.buffer.length},t.patch=function(e,t){if(-1!==this.buffer[e+1])throw new Error(\"Trying to patch operand in populated slot instead of a reserved slot.\");this.buffer[e+1]=t},t.patchWith=function(e,t,n){if(-1!==this.buffer[e+1])throw new Error(\"Trying to patch operand in populated slot instead of a reserved slot.\");this.buffer[e+1]=t,this.buffer[e+2]=n},e}();e.InstructionEncoder=t}),e(\"@glimmer/low-level\",[\"exports\"],function(e){\"use strict\";e.Stack=e.Storage=void 0;var t=function(){function e(){this.array=[],this.next=0}var t=e.prototype;return t.add=function(e){var t,n=this.next,r=this.array;return n===r.length?this.next++:(t=r[n],this.next=t),this.array[n]=e,n},t.deref=function(e){return this.array[e]},t.drop=function(e){this.array[e]=this.next,this.next=e},e}();e.Storage=t;var n=function(){function n(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this.vec=e}var e=n.prototype;return e.clone=function(){return new n(this.vec.slice())},e.sliceFrom=function(e){return new n(this.vec.slice(e))},e.slice=function(e,t){return new n(this.vec.slice(e,t))},e.copy=function(e,t){this.vec[t]=this.vec[e]},e.writeRaw=function(e,t){this.vec[e]=t},e.getRaw=function(e){return this.vec[e]},e.reset=function(){this.vec.length=0},e.len=function(){return this.vec.length},n}();e.Stack=n}),e(\"@glimmer/node\",[\"exports\",\"ember-babel\",\"@glimmer/runtime\"],function(e,r,i){\"use strict\";e.serializeBuilder=function(e,t){return n.forInitialRender(e,t)},e.NodeDOMTreeConstruction=void 0;var t=function(t){function e(e){return t.call(this,e)||this}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.setupUselessElement=function(){},n.createElement=function(e){return this.document.createElement(e)},n.setAttribute=function(e,t,n){e.setAttribute(t,n)},e}(i.DOMTreeConstruction);e.NodeDOMTreeConstruction=t;var n=function(a){function e(){var e=a.apply(this,arguments)||this;return e.serializeBlockDepth=0,e}(0,r.inheritsLoose)(e,a);var t=e.prototype;return t.__openBlock=function(){var e=this.serializeBlockDepth++;this.__appendComment(\"%+b:\"+e+\"%\"),a.prototype.__openBlock.call(this)},t.__closeBlock=function(){a.prototype.__closeBlock.call(this),this.__appendComment(\"%-b:\"+--this.serializeBlockDepth+\"%\")},t.__appendHTML=function(e){var t,n=this.__appendComment(\"%glmr%\");\"TABLE\"!==this.element.tagName||-1<(t=e.indexOf(\"<\"))&&\"tr\"===e.slice(t+1,t+3)&&(e=\"<tbody>\"+e+\"</tbody>\"),\"\"===e?this.__appendComment(\"% %\"):a.prototype.__appendHTML.call(this,e);var r=this.__appendComment(\"%glmr%\");return new i.ConcreteBounds(this.element,n,r)},t.__appendText=function(e){var t,n,r,i=(n=(t=this).element,null===(r=t.nextSibling)?n.lastChild:r.previousSibling);return\"\"===e?this.__appendComment(\"% %\"):(i&&3===i.nodeType&&this.__appendComment(\"%|%\"),a.prototype.__appendText.call(this,e))},t.closeElement=function(){return!0===this.element.needsExtraClose&&(this.element.needsExtraClose=!1,a.prototype.closeElement.call(this)),a.prototype.closeElement.call(this)},t.openElement=function(e){return\"tr\"===e&&\"TBODY\"!==this.element.tagName&&(this.openElement(\"tbody\"),this.constructing.needsExtraClose=!0,this.flushElement(null)),a.prototype.openElement.call(this,e)},t.pushRemoteElement=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:null,i=this.dom,o=i.createElement(\"script\");o.setAttribute(\"glmr\",t),i.insertBefore(e,o,r),a.prototype.pushRemoteElement.call(this,e,t,r)},e}(i.NewElementBuilder)}),e(\"@glimmer/opcode-compiler\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"@glimmer/util\",\"@glimmer/vm\",\"@glimmer/wire-format\",\"@glimmer/encoder\",\"@glimmer/program\"],function(e,n,i,E,T,t,o,a){\"use strict\";e.compile=y,e.templateFactory=function(e){var r,t=e.id,i=e.meta,o=e.block,a=t||\"client-\"+L++;return{id:a,meta:i,create:function(e,t){var n=t?(0,E.assign)({},t,i):i;return r=r||JSON.parse(o),new M(e,{id:a,block:r,referrer:n})}}},e.debug=function(r,i,e){for(var t=arguments.length,o=new Array(3<t?t-3:0),n=3;n<t;n++)o[n-3]=arguments[n];var a=null;throw(0,E.unreachable)(\"Missing Opcode Metadata for \"+e);var s=(0,E.dict)();return a.ops.forEach(function(e,t){var n=o[t];switch(e.type){case\"to\":s[e.name]=r+n;break;case\"i32\":case\"symbol\":case\"block\":s[e.name]=n;break;case\"handle\":s[e.name]=i.resolveHandle(n);break;case\"str\":s[e.name]=i.getString(n);break;case\"option-str\":s[e.name]=n?i.getString(n):null;break;case\"str-array\":s[e.name]=i.getStringArray(n);break;case\"array\":s[e.name]=i.getArray(n);break;case\"bool\":s[e.name]=!!n;break;case\"primitive\":s[e.name]=function(e,t){var n=e>>3;switch(7&e){case 0:return n;case 1:return t.getNumber(n);case 2:return t.getString(n);case 3:switch(n){case 0:return!1;case 1:return!0;case 2:return null;case 3:return}case 4:case 5:return t.getNumber(n);default:throw(0,E.unreachable)()}}(n,i);break;case\"register\":s[e.name]=T.Register[n];break;case\"serializable\":s[e.name]=i.getSerializable(n);break;case\"lazy-constant\":s[e.name]=i.getOther(n)}}),[a.name,s]},e.debugSlice=function(e,t,n){},e.logOpcode=function(e,t){var n=e;{var r;t&&(r=Object.keys(t).map(function(e){return\" \"+e+\"=\"+void t[e]}).join(\"\"),n+=r)}return\"(\"+n+\")\"},e.PLACEHOLDER_HANDLE=e.WrappedBuilder=e.PartialDefinition=e.StdOpcodeBuilder=e.OpcodeBuilder=e.EagerOpcodeBuilder=e.LazyOpcodeBuilder=e.CompilableProgram=e.CompilableBlock=e.debugCompiler=e.AbstractCompiler=e.LazyCompiler=e.Macros=e.ATTRS_BLOCK=void 0;var s,r;e.PLACEHOLDER_HANDLE=-1,(r=s=s||{})[r.OpenComponentElement=0]=\"OpenComponentElement\",r[r.DidCreateElement=1]=\"DidCreateElement\",r[r.DidRenderLayout=2]=\"DidRenderLayout\",r[r.Debugger=3]=\"Debugger\";var l=t.Ops,C=\"&attrs\";e.ATTRS_BLOCK=C;var u,c,h=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;this.offset=e,this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.compile=function(e,t){var n=e[this.offset],r=this.names[n];(0,this.funcs[r])(e,t)},e}();function f(e,t,n){var r=e[1],i=e[2],o=e[3];n.expr(i),o?n.componentAttr(r,o,t):n.componentAttr(r,null,t)}function p(e,t,n){var r=e[1],i=e[2],o=e[3];n.expr(i),o?n.dynamicAttr(r,o,t):n.dynamicAttr(r,null,t)}e.Macros=function(){var e=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new d,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new m;return e.add(\"if\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #if requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){i.invokeStaticBlock(n)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add(\"unless\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #unless requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){r&&i.invokeStaticBlock(r)},ifFalse:function(){i.invokeStaticBlock(n)}})}),e.add(\"with\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #with requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.dup(),i.toBoolean(),2},ifTrue:function(){i.invokeStaticBlock(n,1)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add(\"each\",function(e,t,n,r,i){i.replayable({args:function(){return t&&\"key\"===t[0][0]?i.expr(t[1][0]):i.pushPrimitiveReference(null),i.expr(e[0]),2},body:function(){i.putIterator(),i.jumpUnless(\"ELSE\"),i.pushFrame(),i.dup(T.Register.fp,1),i.returnTo(\"ITER\"),i.enterList(\"BODY\"),i.label(\"ITER\"),i.iterate(\"BREAK\"),i.label(\"BODY\"),i.invokeStaticBlock(n,2),i.pop(2),i.jump(\"FINALLY\"),i.label(\"BREAK\"),i.exitList(),i.popFrame(),i.jump(\"FINALLY\"),i.label(\"ELSE\"),r&&i.invokeStaticBlock(r)}})}),e.add(\"in-element\",function(i,o,e,t,a){if(!i||1!==i.length)throw new Error(\"SYNTAX ERROR: #in-element requires a single argument\");a.replayableIf({args:function(){for(var e=o[0],t=o[1],n=0;n<e.length;n++){var r=e[n];if(\"nextSibling\"!==r&&\"guid\"!==r)throw new Error(\"SYNTAX ERROR: #in-element does not take a `\"+e[0]+\"` option\");a.expr(t[n])}return a.expr(i[0]),a.dup(),4},ifTrue:function(){a.pushRemoteElement(),a.invokeStaticBlock(e),a.popRemoteElement()}})}),e.add(\"-with-dynamic-vars\",function(e,t,n,r,i){var o,a;t?(o=t[0],a=t[1],i.compileParams(a),i.pushDynamicScope(),i.bindDynamicScope(o),i.invokeStaticBlock(n),i.popDynamicScope()):i.invokeStaticBlock(n)}),e.add(\"component\",function(e,t,n,r,i){if(\"string\"==typeof e[0]&&i.staticComponentHelper(e[0],t,n))return;var o=e[0],a=e.slice(1);i.dynamicComponent(o,null,a,t,!0,n,r)}),t.add(\"component\",function(e,t,n,r){var i=t&&t[0];if(\"string\"==typeof i&&r.staticComponentHelper(i,n,null))return!0;var o=t[0],a=t.slice(1);return r.dynamicComponent(o,null,a,n,!0,null,null),!0}),{blocks:e,inlines:t}}(),t=e.blocks,n=e.inlines;this.blocks=t,this.inlines=n};var d=function(){function e(){this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.addMissing=function(e){this.missing=e},t.compile=function(e,t,n,r,i,o){var a=this.names[e];void 0===a?(0,this.missing)(e,t,n,r,i,o):(0,this.funcs[a])(t,n,r,i,o)},e}(),m=function(){function e(){this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.addMissing=function(e){this.missing=e},t.compile=function(e,t){var n,r,i,o=e[1];if(!Array.isArray(o))return[\"expr\",o];if(o[0]===l.Helper)n=o[1],r=o[2],i=o[3];else{if(o[0]!==l.Unknown)return[\"expr\",o];n=o[1],r=i=null}var a=this.names[n];if(void 0===a&&this.missing){var s=(0,this.missing)(n,r,i,t);return!1===s?[\"expr\",o]:s}if(void 0===a)return[\"expr\",o];var u=(0,this.funcs[a])(n,r,i,t);return!1===u?[\"expr\",o]:u},e}();var v=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;this.compiled=-1;var e=this.layout.block.statements;return this.compiled=this.compiler.add(e,this.layout)},(0,i.createClass)(e,[{key:\"symbolTable\",get:function(){return this.layout.block}}]),e}();e.CompilableProgram=v;var g=function(){function e(e,t){this.compiler=e,this.parsed=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;this.compiled=-1;var e=this.parsed,t=e.block.statements,n=e.containingLayout;return this.compiled=this.compiler.add(t,n)},(0,i.createClass)(e,[{key:\"symbolTable\",get:function(){return this.parsed.block}}]),e}();function y(e,t,n){for(var r=function(){if(u)return u;var e=u=new h;e.add(l.Text,function(e,t){t.text(e[1])}),e.add(l.Comment,function(e,t){t.comment(e[1])}),e.add(l.CloseElement,function(e,t){t.closeElement()}),e.add(l.FlushElement,function(e,t){t.flushElement()}),e.add(l.Modifier,function(e,t){var n=t.referrer,r=e[1],i=e[2],o=e[3],a=t.compiler.resolveModifier(r,n);if(null===a)throw new Error(\"Compile Error \"+r+\" is not a modifier: Helpers may not be used in the element form.\");t.modifier(a,i,o)}),e.add(l.StaticAttr,function(e,t){var n=e[1],r=e[2],i=e[3];t.staticAttr(n,i,r)}),e.add(l.DynamicAttr,function(e,t){p(e,!1,t)}),e.add(l.ComponentAttr,function(e,t){f(e,!1,t)}),e.add(l.TrustingAttr,function(e,t){p(e,!0,t)}),e.add(l.TrustingComponentAttr,function(e,t){f(e,!0,t)}),e.add(l.OpenElement,function(e,t){var n=e[1];e[2]||t.putComponentOperations(),t.openPrimitiveElement(n)}),e.add(l.DynamicComponent,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=t.template(o),s=null;0<r.length&&(s=t.inlineBlock({statements:r,parameters:E.EMPTY_ARRAY})),t.dynamicComponent(n,s,null,i,!1,a,null)}),e.add(l.Component,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=t.referrer,s=t.compiler.resolveLayoutForTag(n,a),u=s.handle,l=s.capabilities,c=s.compilable;if(null===u||null===l)throw new Error(\"Compile Error: Cannot find component \"+n);var h=null;0<r.length&&(h=t.inlineBlock({statements:r,parameters:E.EMPTY_ARRAY}));var f=t.template(o);c?(t.pushComponentDefinition(u),t.invokeStaticComponent(l,c,h,null,i,!1,f&&f)):(t.pushComponentDefinition(u),t.invokeComponent(l,h,null,i,!1,f&&f))}),e.add(l.Partial,function(e,t){var n=e[1],r=e[2],i=t.referrer;t.replayableIf({args:function(){return t.expr(n),t.dup(),2},ifTrue:function(){t.invokePartial(i,t.evalSymbols(),r),t.popScope(),t.popFrame()}})}),e.add(l.Yield,function(e,t){var n=e[1],r=e[2];t.yield(n,r)}),e.add(l.AttrSplat,function(e,t){var n=e[1];t.yield(n,[])}),e.add(l.Debugger,function(e,t){var n=e[1];t.debugger(t.evalSymbols(),n)}),e.add(l.ClientSideStatement,function(e,t){n.compile(e,t)}),e.add(l.Append,function(e,t){var n=e[1],r=e[2];!0!==(t.compileInline(e)||n)&&t.guardedAppend(n,r)}),e.add(l.Block,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=t.template(o),u=t.template(a),l=s&&s,c=u&&u;t.compileBlock(n,r,i,l,c)});var n=new h(1);return n.add(s.OpenComponentElement,function(e,t){t.putComponentOperations(),t.openPrimitiveElement(e[2])}),n.add(s.DidCreateElement,function(e,t){t.didCreateElement(T.Register.s0)}),n.add(s.Debugger,function(){}),n.add(s.DidRenderLayout,function(e,t){t.didRenderLayout(T.Register.s0)}),e}(),i=0;i<e.length;i++)r.compile(e[i],t);return t.commit()}e.CompilableBlock=g;var b=function(){function t(e,t,n){this.main=e,this.trustingGuardedAppend=t,this.cautiousGuardedAppend=n}return t.compile=function(e){return new t(this.std(e,function(e){return e.main()}),this.std(e,function(e){return e.stdAppend(!0)}),this.std(e,function(e){return e.stdAppend(!1)}))},t.std=function(e,t){return x.build(e,t)},t.prototype.getAppend=function(e){return e?this.trustingGuardedAppend:this.cautiousGuardedAppend},t}(),_=function(){function e(e,t,n){this.macros=e,this.program=t,this.resolver=n,this.initialize()}var t=e.prototype;return t.initialize=function(){this.stdLib=b.compile(this)},t.compileInline=function(e,t){return this.macros.inlines.compile(e,t)},t.compileBlock=function(e,t,n,r,i,o){this.macros.blocks.compile(e,t,n,r,i,o)},t.add=function(e,t){return y(e,this.builderFor(t))},t.commit=function(e,t){for(var n=this.program.heap,r=n.malloc(),i=0;i<t.length;i++){var o=t[i];\"function\"==typeof o?n.pushPlaceholder(o):n.push(o)}return n.finishMalloc(r,e),r},t.resolveLayoutForTag=function(e,t){var n=this.resolver.lookupComponentDefinition(e,t);return null===n?{handle:null,capabilities:null,compilable:null}:this.resolveLayoutForHandle(n)},t.resolveLayoutForHandle=function(e){var t=this.resolver,n=t.getCapabilities(e),r=null;return n.dynamicLayout||(r=t.getLayout(e)),{handle:e,capabilities:n,compilable:r}},t.resolveModifier=function(e,t){return this.resolver.lookupModifier(e,t)},t.resolveHelper=function(e,t){return this.resolver.lookupHelper(e,t)},(0,i.createClass)(e,[{key:\"constants\",get:function(){return this.program.constants}}]),e}();e.AbstractCompiler=_,e.debugCompiler=void 0;var w=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null;var n=t.block,r=n.symbols.slice(),i=r.indexOf(C);this.attrsBlockNumber=-1===i?r.push(C):i+1,this.symbolTable={hasEval:n.hasEval,symbols:r}}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;var e,t=this.compiler,n=this.layout,r=t.builderFor(n);r.startLabels(),r.fetch(T.Register.s1),r.getComponentTagName(T.Register.s0),r.primitiveReference(),r.dup(),r.load(T.Register.s1),r.jumpUnless(\"BODY\"),r.fetch(T.Register.s1),r.putComponentOperations(),r.openDynamicElement(),r.didCreateElement(T.Register.s0),r.yield(this.attrsBlockNumber,[]),r.flushElement(),r.label(\"BODY\"),r.invokeStaticBlock(new g(t,{block:{statements:(e=n).block.statements,parameters:E.EMPTY_ARRAY},containingLayout:e})),r.fetch(T.Register.s1),r.jumpUnless(\"END\"),r.closeElement(),r.label(\"END\"),r.load(T.Register.s1),r.stopLabels();var i=r.commit();return this.compiled=i},e}();e.WrappedBuilder=w;var R=function(){function e(e){this.builder=e}return e.prototype.static=function(e,t){var n,r,i,o=t[0],a=t[1],s=t[2],u=t[3],l=this.builder;null!==e&&(r=(n=l.compiler.resolveLayoutForHandle(e)).capabilities,(i=n.compilable)?(l.pushComponentDefinition(e),l.invokeStaticComponent(r,i,null,o,a,!1,s,u)):(l.pushComponentDefinition(e),l.invokeComponent(r,null,o,a,!1,s,u)))},e}(),k=function(){function e(){this.labels=(0,E.dict)(),this.targets=[]}var t=e.prototype;return t.label=function(e,t){this.labels[e]=t},t.target=function(e,t){this.targets.push({at:e,target:t})},t.patch=function(e){for(var t=this.targets,n=this.labels,r=0;r<t.length;r++){var i=t[r],o=i.at,a=n[i.target]-o;e.patch(o,a)}},e}(),x=function(){function r(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;this.size=t,this.encoder=new o.InstructionEncoder([]),this.labelsStack=new E.Stack,this.compiler=e}r.build=function(e,t){var n=new r(e);return t(n),n.commit()};var e=r.prototype;return e.push=function(e,t,n,r){switch(arguments.length){case 1:return this.encoder.encode(e,0);case 2:return this.encoder.encode(e,0,t);case 3:return this.encoder.encode(e,0,t,n);default:return this.encoder.encode(e,0,t,n,r)}},e.pushMachine=function(e,t,n,r){switch(arguments.length){case 1:return this.encoder.encode(e,1024);case 2:return this.encoder.encode(e,1024,t);case 3:return this.encoder.encode(e,1024,t,n);default:return this.encoder.encode(e,1024,t,n,r)}},e.commit=function(){return this.pushMachine(24),this.compiler.commit(this.size,this.encoder.buffer)},e.reserve=function(e){this.encoder.encode(e,0,-1)},e.reserveWithOperand=function(e,t){this.encoder.encode(e,0,-1,t)},e.reserveMachine=function(e){this.encoder.encode(e,1024,-1)},e.main=function(){this.push(68,T.Register.s0),this.invokePreparedComponent(!1,!1,!0)},e.appendHTML=function(){this.push(28)},e.appendSafeHTML=function(){this.push(29)},e.appendDocumentFragment=function(){this.push(30)},e.appendNode=function(){this.push(31)},e.appendText=function(){this.push(32)},e.beginComponentTransaction=function(){this.push(91)},e.commitComponentTransaction=function(){this.push(92)},e.pushDynamicScope=function(){this.push(44)},e.popDynamicScope=function(){this.push(45)},e.pushRemoteElement=function(){this.push(41)},e.popRemoteElement=function(){this.push(42)},e.pushRootScope=function(e,t){this.push(20,e,t?1:0)},e.pushVirtualRootScope=function(e){this.push(21,e)},e.pushChildScope=function(){this.push(22)},e.popScope=function(){this.push(23)},e.prepareArgs=function(e){this.push(79,e)},e.createComponent=function(e,t){var n=0|t;this.push(81,n,e)},e.registerComponentDestructor=function(e){this.push(82,e)},e.putComponentOperations=function(){this.push(83)},e.getComponentSelf=function(e){this.push(84,e)},e.getComponentTagName=function(e){this.push(85,e)},e.getComponentLayout=function(e){this.push(86,e)},e.setupForEval=function(e){this.push(87,e)},e.invokeComponentLayout=function(e){this.push(90,e)},e.didCreateElement=function(e){this.push(93,e)},e.didRenderLayout=function(e){this.push(94,e)},e.pushFrame=function(){this.pushMachine(57)},e.popFrame=function(){this.pushMachine(58)},e.pushSmallFrame=function(){this.pushMachine(59)},e.popSmallFrame=function(){this.pushMachine(60)},e.invokeVirtual=function(){this.pushMachine(49)},e.invokeYield=function(){this.push(51)},e.toBoolean=function(){this.push(63)},e.invokePreparedComponent=function(e,t,n,r){var i=3<arguments.length&&void 0!==r?r:null;this.beginComponentTransaction(),this.pushDynamicScope(),this.createComponent(T.Register.s0,e),i&&i(),this.registerComponentDestructor(T.Register.s0),this.getComponentSelf(T.Register.s0),this.pushVirtualRootScope(T.Register.s0),this.setVariable(0),this.setupForEval(T.Register.s0),n&&this.setNamedVariables(T.Register.s0),t&&this.setBlocks(T.Register.s0),this.pop(),this.invokeComponentLayout(T.Register.s0),this.didRenderLayout(T.Register.s0),this.popFrame(),this.popScope(),this.popDynamicScope(),this.commitComponentTransaction()},e.compileInline=function(e){return this.compiler.compileInline(e,this)},e.compileBlock=function(e,t,n,r,i){this.compiler.compileBlock(e,t,n,r,i,this)},e.label=function(e){this.labels.label(e,this.nextPos)},e.startLabels=function(){this.labelsStack.push(new k)},e.stopLabels=function(){this.labelsStack.pop().patch(this.encoder)},e.pushCurriedComponent=function(){this.push(74)},e.pushDynamicComponentInstance=function(){this.push(73)},e.openDynamicElement=function(){this.push(34)},e.flushElement=function(){this.push(38)},e.closeElement=function(){this.push(39)},e.putIterator=function(){this.push(66)},e.enterList=function(e){this.reserve(64),this.labels.target(this.pos,e)},e.exitList=function(){this.push(65)},e.iterate=function(e){this.reserve(67),this.labels.target(this.pos,e)},e.setNamedVariables=function(e){this.push(2,e)},e.setBlocks=function(e){this.push(3,e)},e.setVariable=function(e){this.push(4,e)},e.setBlock=function(e){this.push(5,e)},e.getVariable=function(e){this.push(6,e)},e.getBlock=function(e){this.push(8,e)},e.hasBlock=function(e){this.push(9,e)},e.concat=function(e){this.push(11,e)},e.load=function(e){this.push(18,e)},e.fetch=function(e){this.push(19,e)},e.dup=function(e,t){var n=0<arguments.length&&void 0!==e?e:T.Register.sp,r=1<arguments.length&&void 0!==t?t:0;return this.push(16,n,r)},e.pop=function(e){var t=0<arguments.length&&void 0!==e?e:1;return this.push(17,t)},e.returnTo=function(e){this.reserveMachine(25),this.labels.target(this.pos,e)},e.primitiveReference=function(){this.push(14)},e.reifyU32=function(){this.push(15)},e.enter=function(e){this.push(61,e)},e.exit=function(){this.push(62)},e.return=function(){this.pushMachine(24)},e.jump=function(e){this.reserveMachine(52),this.labels.target(this.pos,e)},e.jumpIf=function(e){this.reserve(53),this.labels.target(this.pos,e)},e.jumpUnless=function(e){this.reserve(54),this.labels.target(this.pos,e)},e.jumpEq=function(e,t){this.reserveWithOperand(55,e),this.labels.target(this.pos,t)},e.assertSame=function(){this.push(56)},e.pushEmptyArgs=function(){this.push(77)},e.switch=function(e,t){var n=this,r=[],i=0;t(function(e,t){r.push({match:e,callback:t,label:\"CLAUSE\"+i++})}),this.enter(2),this.assertSame(),this.reifyU32(),this.startLabels(),r.slice(0,-1).forEach(function(e){return n.jumpEq(e.match,e.label)});for(var o=r.length-1;0<=o;o--){var a=r[o];this.label(a.label),this.pop(2),a.callback(),0!==o&&this.jump(\"END\")}this.label(\"END\"),this.stopLabels(),this.exit()},e.stdAppend=function(t){var n=this;this.switch(this.contentType(),function(e){e(1,function(){t?(n.assertSame(),n.appendHTML()):n.appendText()}),e(0,function(){n.pushCurriedComponent(),n.pushDynamicComponentInstance(),n.invokeBareComponent()}),e(3,function(){n.assertSame(),n.appendSafeHTML()}),e(4,function(){n.assertSame(),n.appendDocumentFragment()}),e(5,function(){n.assertSame(),n.appendNode()})})},e.populateLayout=function(e){this.push(89,e)},e.invokeBareComponent=function(){var e=this;this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0),this.pushFrame(),this.pushEmptyArgs(),this.prepareArgs(T.Register.s0),this.invokePreparedComponent(!1,!1,!0,function(){e.getComponentLayout(T.Register.s0),e.populateLayout(T.Register.s0)}),this.load(T.Register.s0)},e.isComponent=function(){this.push(69)},e.contentType=function(){this.push(70)},e.pushBlockScope=function(){this.push(47)},(0,i.createClass)(r,[{key:\"pos\",get:function(){return this.encoder.typePos}},{key:\"nextPos\",get:function(){return this.encoder.size}},{key:\"labels\",get:function(){return this.labelsStack.current}}]),r}(),A=function(r){function e(e,t){var n=r.call(this,e,t?t.block.symbols.length:0)||this;return n.containingLayout=t,n.component=new R((0,i.assertThisInitialized)(n)),n.expressionCompiler=function(){if(c)return c;var e=c=new h;return e.add(l.Unknown,function(e,t){var n=t.compiler,r=t.referrer,i=t.containingLayout.asPartial,o=e[1],a=n.resolveHelper(o,r);null!==a?t.helper(a,null,null):i?t.resolveMaybeLocal(o):(t.getVariable(0),t.getProperty(o))}),e.add(l.Concat,function(e,t){for(var n=e[1],r=0;r<n.length;r++)t.expr(n[r]);t.concat(n.length)}),e.add(l.Helper,function(e,t){var n=t.compiler,r=t.referrer,i=e[1],o=e[2],a=e[3];if(\"component\"!==i){var s=n.resolveHelper(i,r);if(null===s)throw new Error(\"Compile Error: \"+i+\" is not a helper\");t.helper(s,o,a)}else{var u=o[0],l=o.slice(1);t.curryComponent(u,l,a,!0)}}),e.add(l.Get,function(e,t){var n=e[1],r=e[2];t.getVariable(n);for(var i=0;i<r.length;i++)t.getProperty(r[i])}),e.add(l.MaybeLocal,function(e,t){var n,r=e[1];t.containingLayout.asPartial?(n=r[0],r=r.slice(1),t.resolveMaybeLocal(n)):t.getVariable(0);for(var i=0;i<r.length;i++)t.getProperty(r[i])}),e.add(l.Undefined,function(e,t){return t.pushPrimitiveReference(void 0)}),e.add(l.HasBlock,function(e,t){t.hasBlock(e[1])}),e.add(l.HasBlockParams,function(e,t){t.hasBlockParams(e[1])}),e}(),n.constants=e.constants,n.stdLib=e.stdLib,n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.expr=function(e){Array.isArray(e)?this.expressionCompiler.compile(e,this):this.pushPrimitiveReference(e)},t.pushArgs=function(e,t){var n=this.constants.stringArray(e);this.push(76,n,t)},t.pushYieldableBlock=function(e){this.pushSymbolTable(e&&e.symbolTable),this.pushBlockScope(),this.pushBlock(e)},t.curryComponent=function(e,t,n,r){var i=this.containingLayout.referrer;this.pushFrame(),this.compileArgs(t,n,null,r),this.push(80),this.expr(e),this.push(71,this.constants.serializable(i)),this.popFrame(),this.fetch(T.Register.v0)},t.pushSymbolTable=function(e){var t;e?(t=this.constants.serializable(e),this.push(48,t)):this.primitive(null)},t.invokeComponent=function(e,t,n,r,i,o,a,s){var u=this,l=6<arguments.length&&void 0!==a?a:null,c=7<arguments.length?s:void 0;this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0),this.pushFrame();var h=!!(o||l||t),f=!0===e||e.prepareArgs||!(!r||0===r[0].length),p={main:o,else:l,attrs:t};this.compileArgs(n,r,p,i),this.prepareArgs(T.Register.s0),this.invokePreparedComponent(null!==o,h,f,function(){c?(u.pushSymbolTable(c.symbolTable),u.pushLayout(c),u.resolveLayout()):u.getComponentLayout(T.Register.s0),u.populateLayout(T.Register.s0)}),this.load(T.Register.s0)},t.invokeStaticComponent=function(e,t,n,r,i,o,a,s){var u=7<arguments.length&&void 0!==s?s:null,l=t.symbolTable;if(l.hasEval||e.prepareArgs)this.invokeComponent(e,n,r,i,o,a,u,t);else{this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0);var c=l.symbols;e.createArgs&&(this.pushFrame(),this.compileArgs(r,i,null,o)),this.beginComponentTransaction(),e.dynamicScope&&this.pushDynamicScope(),e.createInstance&&this.createComponent(T.Register.s0,null!==a),e.createArgs&&this.popFrame(),this.pushFrame(),this.registerComponentDestructor(T.Register.s0);var h=[];this.getComponentSelf(T.Register.s0),h.push({symbol:0,isBlock:!1});for(var f=0;f<c.length;f++){var p=c[f];switch(p.charAt(0)){case\"&\":var d=null;if(\"&default\"===p)d=a;else if(\"&inverse\"===p)d=u;else{if(p!==C)throw(0,E.unreachable)();d=n}d?this.pushYieldableBlock(d):this.pushYieldableBlock(null),h.push({symbol:f+1,isBlock:!0});break;case\"@\":if(!i)break;var m=i[0],v=i[1],g=p;o&&(g=p.slice(1));var y=m.indexOf(g);-1!==y&&(this.expr(v[y]),h.push({symbol:f+1,isBlock:!1}))}}this.pushRootScope(c.length+1,!!(a||u||n));for(var b=h.length-1;0<=b;b--){var _=h[b],w=_.symbol;_.isBlock?this.setBlock(w):this.setVariable(w)}this.invokeStatic(t),e.createInstance&&this.didRenderLayout(T.Register.s0),this.popFrame(),this.popScope(),e.dynamicScope&&this.popDynamicScope(),this.commitComponentTransaction(),this.load(T.Register.s0)}},t.dynamicComponent=function(e,t,n,r,i,o,a){var s=this,u=6<arguments.length&&void 0!==a?a:null;this.replayable({args:function(){return s.expr(e),s.dup(),2},body:function(){s.jumpUnless(\"ELSE\"),s.resolveDynamicComponent(s.containingLayout.referrer),s.pushDynamicComponentInstance(),s.invokeComponent(!0,t,n,r,i,o,u),s.label(\"ELSE\")}})},t.yield=function(e,t){this.compileArgs(t,null,null,!1),this.getBlock(e),this.resolveBlock(),this.invokeYield(),this.popScope(),this.popFrame()},t.guardedAppend=function(e,t){this.pushFrame(),this.expr(e),this.pushMachine(50,this.stdLib.getAppend(t)),this.popFrame()},t.invokeStaticBlock=function(e,t){var n=1<arguments.length&&void 0!==t?t:0,r=e.symbolTable.parameters,i=r.length,o=Math.min(n,i);if(this.pushFrame(),o){this.pushChildScope();for(var a=0;a<o;a++)this.dup(T.Register.fp,n-a),this.setVariable(r[a])}this.pushBlock(e),this.resolveBlock(),this.invokeVirtual(),o&&this.popScope(),this.popFrame()},t.string=function(e){return this.constants.string(e)},t.names=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t[n]=this.constants.string(r)}return this.constants.array(t)},t.symbols=function(e){return this.constants.array(e)},t.primitive=function(e){var t,n=0;switch(typeof e){case\"number\":e%1==0?-1<e?t=e:(t=this.constants.number(e),n=4):(t=this.constants.number(e),n=1);break;case\"string\":t=this.string(e),n=2;break;case\"boolean\":t=0|e,n=3;break;case\"object\":t=2,n=3;break;case\"undefined\":n=t=3;break;default:throw new Error(\"Invalid primitive passed to pushPrimitive\")}var r=this.sizeImmediate(t<<3|n,t);this.push(13,r)},t.sizeImmediate=function(e,t){return 4294967295<=e||e<0?this.constants.number(t)<<3|5:e},t.pushPrimitiveReference=function(e){this.primitive(e),this.primitiveReference()},t.pushComponentDefinition=function(e){this.push(72,this.constants.handle(e))},t.resolveDynamicComponent=function(e){this.push(75,this.constants.serializable(e))},t.staticComponentHelper=function(e,t,n){var r=this.compiler.resolveLayoutForTag(e,this.referrer),i=r.handle,o=r.capabilities,a=r.compilable;if(null!==i&&null!==o&&a){if(t)for(var s=0;s<t.length;s+=2)t[s][0]=\"@\"+t[s][0];return this.pushComponentDefinition(i),this.invokeStaticComponent(o,a,null,null,t,!1,n&&n),!0}return!1},t.invokePartial=function(e,t,n){var r=this.constants.serializable(e),i=this.constants.stringArray(t),o=this.constants.array(n);this.push(95,r,i,o)},t.resolveMaybeLocal=function(e){this.push(96,this.string(e))},t.debugger=function(e,t){this.push(97,this.constants.stringArray(e),this.constants.array(t))},t.text=function(e){this.push(26,this.constants.string(e))},t.openPrimitiveElement=function(e){this.push(33,this.constants.string(e))},t.modifier=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(40,this.constants.handle(e)),this.popFrame()},t.comment=function(e){var t=this.constants.string(e);this.push(27,t)},t.dynamicAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0;this.push(36,r,!0===n?1:0,i)},t.componentAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0;this.push(37,r,!0===n?1:0,i)},t.staticAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0,o=this.constants.string(n);this.push(35,r,o,i)},t.hasBlockParams=function(e){this.getBlock(e),this.resolveBlock(),this.push(10)},t.getProperty=function(e){this.push(7,this.string(e))},t.helper=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(1,this.constants.handle(e)),this.popFrame(),this.fetch(T.Register.v0)},t.bindDynamicScope=function(e){this.push(43,this.names(e))},t.replayable=function(e){var t=e.args,n=e.body;this.startLabels(),this.pushFrame(),this.returnTo(\"ENDINITIAL\");var r=t();this.enter(r),n(),this.label(\"FINALLY\"),this.exit(),this.return(),this.label(\"ENDINITIAL\"),this.popFrame(),this.stopLabels()},t.replayableIf=function(e){var t=this,n=e.args,r=e.ifTrue,i=e.ifFalse;this.replayable({args:n,body:function(){t.jumpUnless(\"ELSE\"),r(),t.jump(\"FINALLY\"),t.label(\"ELSE\"),i&&i()}})},t.inlineBlock=function(e){return new g(this.compiler,{block:e,containingLayout:this.containingLayout})},t.evalSymbols=function(){var e=this.containingLayout.block;return e.hasEval?e.symbols:null},t.compileParams=function(e){if(!e)return 0;for(var t=0;t<e.length;t++)this.expr(e[t]);return e.length},t.compileArgs=function(e,t,n,r){n&&(this.pushYieldableBlock(n.main),this.pushYieldableBlock(n.else),this.pushYieldableBlock(n.attrs));var i=this.compileParams(e)<<4;r&&(i|=8),n&&(i|=7);var o=E.EMPTY_ARRAY;if(t){o=t[0];for(var a=t[1],s=0;s<a.length;s++)this.expr(a[s])}this.pushArgs(o,i)},t.template=function(e){return e?this.inlineBlock(e):null},(0,i.createClass)(e,[{key:\"referrer\",get:function(){return this.containingLayout&&this.containingLayout.referrer}}]),e}(e.StdOpcodeBuilder=x),O=function(e){function t(){return e.apply(this,arguments)||this}(0,i.inheritsLoose)(t,e);var n=t.prototype;return n.pushBlock=function(e){e?this.pushOther(e):this.primitive(null)},n.resolveBlock=function(){this.push(46)},n.pushLayout=function(e){e?this.pushOther(e):this.primitive(null)},n.resolveLayout=function(){this.push(46)},n.invokeStatic=function(e){this.pushOther(e),this.push(46),this.pushMachine(49)},n.pushOther=function(e){this.push(12,this.other(e))},n.other=function(e){return this.constants.other(e)},t}(e.OpcodeBuilder=A);e.LazyOpcodeBuilder=O;var S=function(e){function t(){return e.apply(this,arguments)||this}(0,i.inheritsLoose)(t,e);var n=t.prototype;return n.pushBlock=function(e){var t=e?e.compile():null;this.primitive(t)},n.resolveBlock=function(){},n.pushLayout=function(e){e?this.primitive(e.compile()):this.primitive(null)},n.resolveLayout=function(){},n.invokeStatic=function(e){var t=e.compile();-1===t?this.pushMachine(50,function(){return e.compile()}):this.pushMachine(50,t)},t}(A);e.EagerOpcodeBuilder=S;var N=function(o){function e(e,t,n){var r=new a.LazyConstants(t),i=new a.Program(r);return o.call(this,n,i,e)||this}return(0,i.inheritsLoose)(e,o),e.prototype.builderFor=function(e){return new O(this,e)},e}(_);e.LazyCompiler=N;var P=function(){function e(e,t){this.name=e,this.template=t}return e.prototype.getPartial=function(){var e=this.template.asPartial(),t=e.compile();return{symbolTable:e.symbolTable,handle:t}},e}();e.PartialDefinition=P;var L=0;var M=function(){function e(e,t){this.compiler=e,this.parsedLayout=t,this.layout=null,this.partial=null,this.wrappedLayout=null;var n=t.block;this.symbols=n.symbols,this.hasEval=n.hasEval,this.referrer=t.referrer,this.id=t.id||\"client-\"+L++}var t=e.prototype;return t.asLayout=function(){return this.layout?this.layout:this.layout=new v(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!1}))},t.asPartial=function(){return this.partial?this.partial:this.layout=new v(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!0}))},t.asWrappedLayout=function(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new w(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!1}))},e}()}),e(\"@glimmer/program\",[\"exports\",\"ember-babel\",\"@glimmer/util\"],function(e,i,t){\"use strict\";e.Opcode=e.Program=e.RuntimeProgram=e.WriteOnlyProgram=e.Heap=e.LazyConstants=e.Constants=e.RuntimeConstants=e.WriteOnlyConstants=e.WELL_KNOWN_EMPTY_ARRAY_POSITION=void 0;var o={};e.WELL_KNOWN_EMPTY_ARRAY_POSITION=0;var n=Object.freeze([]),r=function(){function e(){this.strings=[],this.arrays=[n],this.tables=[],this.handles=[],this.resolved=[],this.numbers=[]}var t=e.prototype;return t.string=function(e){var t=this.strings.indexOf(e);return-1<t?t:this.strings.push(e)-1},t.stringArray=function(e){for(var t=new Array(e.length),n=0;n<e.length;n++)t[n]=this.string(e[n]);return this.array(t)},t.array=function(e){if(0===e.length)return 0;var t=this.arrays.indexOf(e);return-1<t?t:this.arrays.push(e)-1},t.handle=function(e){var t=this.handles.indexOf(e);return-1<t?t:(this.resolved.push(o),this.handles.push(e)-1)},t.serializable=function(e){var t=JSON.stringify(e),n=this.strings.indexOf(t);return-1<n?n:this.strings.push(t)-1},t.number=function(e){var t=this.numbers.indexOf(e);return-1<t?t:this.numbers.push(e)-1},t.toPool=function(){return{strings:this.strings,arrays:this.arrays,handles:this.handles,numbers:this.numbers}},e}();e.WriteOnlyConstants=r;var a=function(){function e(e,t){this.resolver=e,this.strings=t.strings,this.arrays=t.arrays,this.handles=t.handles,this.resolved=this.handles.map(function(){return o}),this.numbers=t.numbers}var t=e.prototype;return t.getString=function(e){return this.strings[e]},t.getNumber=function(e){return this.numbers[e]},t.getStringArray=function(e){for(var t=this.getArray(e),n=new Array(t.length),r=0;r<t.length;r++){var i=t[r];n[r]=this.getString(i)}return n},t.getArray=function(e){return this.arrays[e]},t.resolveHandle=function(e){var t,n=this.resolved[e];return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},t.getSerializable=function(e){return JSON.parse(this.strings[e])},e}();e.RuntimeConstants=a;var s=function(r){function e(e,t){var n=r.call(this)||this;return n.resolver=e,t&&(n.strings=t.strings,n.arrays=t.arrays,n.handles=t.handles,n.resolved=n.handles.map(function(){return o}),n.numbers=t.numbers),n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.getNumber=function(e){return this.numbers[e]},t.getString=function(e){return this.strings[e]},t.getStringArray=function(e){for(var t=this.getArray(e),n=new Array(t.length),r=0;r<t.length;r++){var i=t[r];n[r]=this.getString(i)}return n},t.getArray=function(e){return this.arrays[e]},t.resolveHandle=function(e){var t,n=this.resolved[e];return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},t.getSerializable=function(e){return JSON.parse(this.strings[e])},e}(r),u=function(t){function e(){var e=t.apply(this,arguments)||this;return e.others=[],e.serializables=[],e}(0,i.inheritsLoose)(e,t);var n=e.prototype;return n.serializable=function(e){var t=this.serializables.indexOf(e);return-1<t?t:this.serializables.push(e)-1},n.getSerializable=function(e){return this.serializables[e]},n.getOther=function(e){return this.others[e-1]},n.other=function(e){return this.others.push(e)},e}(e.Constants=s);e.LazyConstants=u;var l=function(){function e(e){this.heap=e,this.offset=0}return(0,i.createClass)(e,[{key:\"size\",get:function(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}},{key:\"isMachine\",get:function(){return 1024&this.heap.getbyaddr(this.offset)}},{key:\"type\",get:function(){return 255&this.heap.getbyaddr(this.offset)}},{key:\"op1\",get:function(){return this.heap.getbyaddr(this.offset+1)}},{key:\"op2\",get:function(){return this.heap.getbyaddr(this.offset+2)}},{key:\"op3\",get:function(){return this.heap.getbyaddr(this.offset+3)}}]),e}();e.Opcode=l;var c=1048576,h=function(){function e(e){var t,n,r;this.placeholders=[],this.offset=0,this.handle=0,this.capacity=c,e?(t=e.buffer,n=e.table,r=e.handle,this.heap=new Uint32Array(t),this.table=n,this.offset=this.heap.length,this.handle=r,this.capacity=0):(this.heap=new Uint32Array(c),this.table=[])}var t=e.prototype;return t.push=function(e){this.sizeCheck(),this.heap[this.offset++]=e},t.sizeCheck=function(){var e;0===this.capacity&&(e=m(this.heap,0,this.offset),this.heap=new Uint32Array(e.length+c),this.heap.set(e,0),this.capacity=c),this.capacity--},t.getbyaddr=function(e){return this.heap[e]},t.setbyaddr=function(e,t){this.heap[e]=t},t.malloc=function(){this.table.push(this.offset,0,0);var e=this.handle;return this.handle+=3,e},t.finishMalloc=function(e,t){this.table[e+1]=0|t<<2},t.size=function(){return this.offset},t.getaddr=function(e){return this.table[e]},t.gethandle=function(e){this.table.push(e,3,0);var t=this.handle;return this.handle+=3,t},t.sizeof=function(){return-1},t.scopesizeof=function(e){return this.table[e+1]>>2},t.free=function(e){var t=this.table[e+1];this.table[e+1]=t|1<<30},t.pushPlaceholder=function(e){this.sizeCheck();var t=this.offset++;this.heap[t]=2147483647,this.placeholders.push([t,e])},t.patchPlaceholders=function(){for(var e=this.placeholders,t=0;t<e.length;t++){var n=e[t],r=n[0],i=n[1];this.setbyaddr(r,i())}},t.capture=function(e){var t=0<arguments.length&&void 0!==e?e:this.offset;this.patchPlaceholders();var n=m(this.heap,0,t).buffer;return{handle:this.handle,table:this.table,buffer:n}},e}();e.Heap=h;var f=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new r,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new h;this.constants=e,this.heap=t,this._opcode=new l(this.heap)}return e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}();e.WriteOnlyProgram=f;var p=function(){function i(e,t){this.constants=e,this.heap=t,this._opcode=new l(this.heap)}return i.hydrate=function(e,t,n){var r=new h(e);return new i(new a(n,t),r)},i.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},i}();e.RuntimeProgram=p;var d=function(e){function t(){return e.apply(this,arguments)||this}return(0,i.inheritsLoose)(t,e),t}(f);function m(e,t,n){if(void 0!==e.slice)return e.slice(t,n);for(var r=new Uint32Array(n);t<n;t++)r[t]=e[t];return r}e.Program=d}),e(\"@glimmer/reference\",[\"exports\",\"ember-babel\",\"@glimmer/util\"],function(e,i,n){\"use strict\";e.isConst=function(e){return e.tag===u},e.isConstTag=function(e){return e===u},e.bump=function(){h++},e.combineTagged=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n].tag;if(i===l)return l;i!==u&&t.push(i)}return p(t)},e.combineSlice=function(e){var t=[],n=e.head();for(;null!==n;){var r=n.tag;if(r===l)return l;r!==u&&t.push(r),n=e.nextNode(n)}return p(t)},e.combine=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n];if(i===l)return l;i!==u&&t.push(i)}return p(t)},e.map=function(e,t){return new b(e,t)},e.isModified=function(e){return e!==w},e.ReferenceCache=e.CachedReference=e.UpdatableTag=e.CachedTag=e.DirtyableTag=e.CURRENT_TAG=e.VOLATILE_TAG=e.CONSTANT_TAG=e.TagWrapper=e.RevisionTag=e.VOLATILE=e.INITIAL=e.CONSTANT=e.IteratorSynchronizer=e.ReferenceIterator=e.IterationArtifacts=e.ListItem=e.ConstReference=void 0;e.CONSTANT=0;e.INITIAL=1;e.VOLATILE=NaN;var t=function(){function e(){}return e.prototype.validate=function(e){return this.value()===e},e}();(e.RevisionTag=t).id=0;var r=[],o=[],a=function(){function e(e,t){this.type=e,this.inner=t}var t=e.prototype;return t.value=function(){return(0,r[this.type])(this.inner)},t.validate=function(e){return(0,o[this.type])(this.inner,e)},e}();function s(e){var t=r.length;r.push(function(e){return e.value()}),o.push(function(e,t){return e.validate(t)}),e.id=t}e.TagWrapper=a,r.push(function(){return 0}),o.push(function(e,t){return 0===t});var u=new a(0,null);e.CONSTANT_TAG=u,r.push(function(){return NaN}),o.push(function(e,t){return NaN===t});var l=new a(1,null);e.VOLATILE_TAG=l,r.push(function(){return h}),o.push(function(e,t){return t===h});var c=new a(2,null);e.CURRENT_TAG=c;var h=1;var f=function(n){function r(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:h,t=n.call(this)||this;return t.revision=e,t}(0,i.inheritsLoose)(r,n),r.create=function(e){var t=0<arguments.length&&void 0!==e?e:h;return new a(this.id,new r(t))};var e=r.prototype;return e.value=function(){return this.revision},e.dirty=function(){this.revision=++h},r}(t);function p(e){switch(e.length){case 0:return u;case 1:return e[0];case 2:return m.create(e[0],e[1]);default:return v.create(e)}}s(e.DirtyableTag=f);var d=function(t){function e(){var e=t.apply(this,arguments)||this;return e.lastChecked=null,e.lastValue=null,e}(0,i.inheritsLoose)(e,t);var n=e.prototype;return n.value=function(){return this.lastChecked!==h&&(this.lastChecked=h,this.lastValue=this.compute()),this.lastValue},n.invalidate=function(){this.lastChecked=null},e}(t),m=function(r){function n(e,t){var n=r.call(this)||this;return n.first=e,n.second=t,n}return(0,i.inheritsLoose)(n,r),n.create=function(e,t){return new a(this.id,new n(e,t))},n.prototype.compute=function(){return Math.max(this.first.value(),this.second.value())},n}(e.CachedTag=d);s(m);var v=function(n){function t(e){var t=n.call(this)||this;return t.tags=e,t}return(0,i.inheritsLoose)(t,n),t.create=function(e){return new a(this.id,new t(e))},t.prototype.compute=function(){for(var e=this.tags,t=-1,n=0;n<e.length;n++)var r=e[n].value(),t=Math.max(r,t);return t},t}(d);s(v);var g=function(n){function t(e){var t=n.call(this)||this;return t.tag=e,t.lastUpdated=1,t}(0,i.inheritsLoose)(t,n),t.create=function(e){return new a(this.id,new t(e))};var e=t.prototype;return e.compute=function(){return Math.max(this.lastUpdated,this.tag.value())},e.update=function(e){e!==this.tag&&(this.tag=e,this.lastUpdated=h,this.invalidate())},t}(d);s(e.UpdatableTag=g);var y=function(){function e(){this.lastRevision=null,this.lastValue=null}var t=e.prototype;return t.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue;return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},t.invalidate=function(){this.lastRevision=null},e}(),b=function(r){function e(e,t){var n=r.call(this)||this;return n.tag=e.tag,n.reference=e,n.mapper=t,n}return(0,i.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.reference;return(0,this.mapper)(e.value())},e}(e.CachedReference=y);var _=function(){function e(e){this.lastValue=null,this.lastRevision=null,this.initialized=!1,this.tag=e.tag,this.reference=e}var t=e.prototype;return t.peek=function(){return this.initialized?this.lastValue:this.initialize()},t.revalidate=function(){if(!this.initialized)return this.initialize();var e=this.reference,t=this.lastRevision,n=e.tag;if(n.validate(t))return w;this.lastRevision=n.value();var r=this.lastValue,i=e.value();return i===r?w:this.lastValue=i},t.initialize=function(){var e=this.reference,t=this.lastValue=e.value();return this.lastRevision=e.tag.value(),this.initialized=!0,t},e}();e.ReferenceCache=_;var w=\"adb3b78e-3d22-4e4b-877a-6317c2c5c145\";var E=function(){function e(e){this.inner=e,this.tag=u}return e.prototype.value=function(){return this.inner},e}();e.ConstReference=E;var T=function(r){function e(e,t){var n=r.call(this,e.valueReferenceFor(t))||this;return n.retained=!1,n.seen=!1,n.key=t.key,n.iterable=e,n.memo=e.memoReferenceFor(t),n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.update=function(e){this.retained=!0,this.iterable.updateValueReference(this.value,e),this.iterable.updateMemoReference(this.memo,e)},t.shouldRemove=function(){return!this.retained},t.reset=function(){this.retained=!1,this.seen=!1},e}(n.ListNode);e.ListItem=T;var C=function(){function e(e){this.iterator=null,this.map=(0,n.dict)(),this.list=new n.LinkedList,this.tag=e.tag,this.iterable=e}var t=e.prototype;return t.isEmpty=function(){return(this.iterator=this.iterable.iterate()).isEmpty()},t.iterate=function(){var e=null===this.iterator?this.iterable.iterate():this.iterator;return this.iterator=null,e},t.has=function(e){return!!this.map[e]},t.get=function(e){return this.map[e]},t.wasSeen=function(e){var t=this.map[e];return void 0!==t&&t.seen},t.append=function(e){var t=this.map,n=this.list,r=this.iterable,i=t[e.key]=new T(r,e);return n.append(i),i},t.insertBefore=function(e,t){var n=this.map,r=this.list,i=this.iterable,o=n[e.key]=new T(i,e);return o.retained=!0,r.insertBefore(o,t),o},t.move=function(e,t){var n=this.list;e.retained=!0,n.remove(e),n.insertBefore(e,t)},t.remove=function(e){this.list.remove(e),delete this.map[e.key]},t.nextNode=function(e){return this.list.nextNode(e)},t.head=function(){return this.list.head()},e}();e.IterationArtifacts=C;var R,k,x=function(){function e(e){this.iterator=null;var t=new C(e);this.artifacts=t}return e.prototype.next=function(){var e=this.artifacts,t=(this.iterator=this.iterator||e.iterate()).next();return null===t?null:e.append(t)},e}();e.ReferenceIterator=x,(k=R=R||{})[k.Append=0]=\"Append\",k[k.Prune=1]=\"Prune\",k[k.Done=2]=\"Done\";var A=function(){function e(e){var t=e.target,n=e.artifacts;this.target=t,this.artifacts=n,this.iterator=n.iterate(),this.current=n.head()}var t=e.prototype;return t.sync=function(){for(var e=R.Append;;)switch(e){case R.Append:e=this.nextAppend();break;case R.Prune:e=this.nextPrune();break;case R.Done:return void this.nextDone()}},t.advanceToKey=function(e){for(var t=this.current,n=this.artifacts,r=t;null!==r&&r.key!==e;)r.seen=!0,r=n.nextNode(r);null!==r&&(this.current=n.nextNode(r))},t.nextAppend=function(){var e=this.iterator,t=this.current,n=this.artifacts,r=e.next();if(null===r)return this.startPrune();var i=r.key;return null!==t&&t.key===i?this.nextRetain(r):n.has(i)?this.nextMove(r):this.nextInsert(r),R.Append},t.nextRetain=function(e){var t=this.artifacts,n=this.current;n.update(e),this.current=t.nextNode(n),this.target.retain(e.key,n.value,n.memo)},t.nextMove=function(e){var t=this.current,n=this.artifacts,r=this.target,i=e.key,o=n.get(e.key);o.update(e),n.wasSeen(e.key)?(n.move(o,t),r.move(o.key,o.value,o.memo,t?t.key:null)):this.advanceToKey(i)},t.nextInsert=function(e){var t=this.artifacts,n=this.target,r=this.current,i=t.insertBefore(e,r);n.insert(i.key,i.value,i.memo,r?r.key:null)},t.startPrune=function(){return this.current=this.artifacts.head(),R.Prune},t.nextPrune=function(){var e=this.artifacts,t=this.target,n=this.current;if(null===n)return R.Done;var r=n;return this.current=e.nextNode(r),r.shouldRemove()?(e.remove(r),t.delete(r.key)):r.reset(),R.Prune},t.nextDone=function(){this.target.done()},e}();e.IteratorSynchronizer=A}),e(\"@glimmer/runtime\",[\"exports\",\"ember-babel\",\"@glimmer/util\",\"@glimmer/reference\",\"@glimmer/vm\",\"@glimmer/low-level\"],function(e,s,f,d,p,n){\"use strict\";e.renderMain=function(e,t,n,r,i,o){var a=ft.initial(e,t,n,r,i,o);return new pt(a)},e.renderComponent=function(e,t,n,r,i){var o,a=5<arguments.length&&void 0!==arguments[5]?arguments[5]:{},s=ft.empty(e,t,n,r),u=s.constants.resolver,l=M(u,i,null),c=l.manager,h=l.state;{if(!U(I(c.getCapabilities(h))))throw new Error(\"Cannot invoke components with dynamic layouts as a root component.\");o=c.getLayout(h,u)}var f=Object.keys(a).map(function(e){return[e,a[e]]}),p=[\"main\",\"else\",\"attrs\"],d=f.map(function(e){return\"@\"+e[0]});s.pushFrame();for(var m=0;m<3*p.length;m++)s.stack.push(null);return s.stack.push(null),f.forEach(function(e){var t=e[1];s.stack.push(t)}),s.args.setup(s.stack,d,p,0,!1),s.stack.push(s.args),s.stack.push(o),s.stack.push(l),new pt(s)},e.setDebuggerCallback=function(e){W=e},e.resetDebuggerCallback=function(){W=V},e.getDynamicVar=function(e,t){var n=e.dynamicScope(),r=t.positional.at(0);return new dt(n,r)},e.isCurriedComponentDefinition=R,e.curry=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return new y(e,t)},e.isWhitespace=function(e){return ie.test(e)},e.normalizeProperty=we,e.clientBuilder=function(e,t){return Ue.forInitialRender(e,t)},e.rehydrationBuilder=function(e,t){return yt.forInitialRender(e,t)},e.isSerializationFirstNode=vt,e.capabilityFlagsFrom=I,e.hasCapability=F,e.Cursor=e.ConcreteBounds=e.SERIALIZATION_FIRST_NODE_STRING=e.RehydrateBuilder=e.NewElementBuilder=e.DOMTreeConstruction=e.IDOMChanges=e.SVG_NAMESPACE=e.DOMChanges=e.CurriedComponentDefinition=e.MINIMAL_CAPABILITIES=e.DEFAULT_CAPABILITIES=e.DefaultEnvironment=e.Environment=e.Scope=e.EMPTY_ARGS=e.DynamicAttribute=e.SimpleDynamicAttribute=e.RenderResult=e.UpdatingVM=e.LowLevelVM=e.ConditionalReference=e.PrimitiveReference=e.UNDEFINED_REFERENCE=e.NULL_REFERENCE=void 0;var o=new(function(){function e(){this.evaluateOpcode=(0,f.fillNulls)(98).slice()}var t=e.prototype;return t.add=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:\"syscall\";this.evaluateOpcode[e]={syscall:\"syscall\"===r,evaluate:t}},t.debugBefore=function(){return{sp:void 0,state:void 0}},t.debugAfter=function(e,t,n,r){r.sp,r.state},t.evaluate=function(e,t,n){var r=this.evaluateOpcode[n];r.syscall?r.evaluate(e,t):r.evaluate(e.inner,t)},e}()),t=function(t){function e(){var e=t.apply(this,arguments)||this;return e.next=null,e.prev=null,e}return(0,s.inheritsLoose)(e,t),e}(function(){(0,f.initializeGuid)(this)}),i=function(t){function e(e){return t.call(this,e)||this}return(0,s.inheritsLoose)(e,t),e.create=function(e){return void 0===e?l:null===e?u:!0===e?c:!1===e?h:new(\"number\"==typeof e?a:r)(e)},e.prototype.get=function(){return l},e}(d.ConstReference),r=function(n){function e(){var e=n.apply(this,arguments)||this;return e.lengthReference=null,e}return(0,s.inheritsLoose)(e,n),e.prototype.get=function(e){if(\"length\"!==e)return n.prototype.get.call(this,e);var t=this.lengthReference;return null===t&&(t=this.lengthReference=new a(this.inner.length)),t},e}(e.PrimitiveReference=i),a=function(t){function e(e){return t.call(this,e)||this}return(0,s.inheritsLoose)(e,t),e}(i),l=new a(void 0);e.UNDEFINED_REFERENCE=l;var u=new a(null);e.NULL_REFERENCE=u;var c=new a(!0),h=new a(!1),m=function(){function e(e){this.inner=e,this.tag=e.tag}var t=e.prototype;return t.value=function(){return this.toBool(this.inner.value())},t.toBool=function(e){return!!e},e}();e.ConditionalReference=m;var v=function(n){function e(e){var t=n.call(this)||this;return t.parts=e,t.tag=(0,d.combineTagged)(e),t}return(0,s.inheritsLoose)(e,n),e.prototype.compute=function(){for(var e,t=new Array,n=0;n<this.parts.length;n++){var r=this.parts[n].value();null!=r&&(t[n]=\"function\"==typeof(e=r).toString?String(e):\"\")}return 0<t.length?t.join(\"\"):null},e}(d.CachedReference);o.add(1,function(e,t){var n=t.op1,r=e.stack,i=e.constants.resolveHandle(n)(e,r.pop());e.loadValue(p.Register.v0,i)}),o.add(6,function(e,t){var n=t.op1,r=e.referenceForSymbol(n);e.stack.push(r)}),o.add(4,function(e,t){var n=t.op1,r=e.stack.pop();e.scope().bindSymbol(n,r)}),o.add(5,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=e.stack.pop(),a=o?[r,i,o]:null;e.scope().bindBlock(n,a)}),o.add(96,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.scope().getPartialMap()[r];void 0===i&&(i=e.getSelf().get(r)),e.stack.push(i)}),o.add(20,function(e,t){var n=t.op1,r=t.op2;e.pushRootScope(n,!!r)}),o.add(7,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.stack.pop();e.stack.push(i.get(r))}),o.add(8,function(e,t){var n=t.op1,r=e.stack,i=e.scope().getBlock(n);i?(r.push(i[2]),r.push(i[1]),r.push(i[0])):(r.push(null),r.push(null),r.push(null))}),o.add(9,function(e,t){var n=t.op1,r=!!e.scope().getBlock(n);e.stack.push(r?c:h)}),o.add(10,function(e){e.stack.pop(),e.stack.pop();var t=e.stack.pop(),n=t&&t.parameters.length;e.stack.push(n?c:h)}),o.add(11,function(e,t){for(var n=t.op1,r=new Array(n),i=n;0<i;i--){r[i-1]=e.stack.pop()}e.stack.push(new v(r))});var g=\"CURRIED COMPONENT DEFINITION [id=6f00feb9-a0ef-4547-99ea-ac328f80acea]\";function R(e){return!(!e||!e[g])}var y=function(){function e(e,t){this.inner=e,this.args=t,this[g]=!0}return e.prototype.unwrap=function(e){e.realloc(this.offset);for(var t=this;;){var n=t.args,r=t.inner;if(n&&(e.positional.prepend(n.positional),e.named.merge(n.named)),!R(r))return r;t=r}},(0,s.createClass)(e,[{key:\"offset\",get:function(){var e=this.inner,t=this.args,n=t?t.positional.length:0;return R(e)?n+e.offset:n}}]),e}();function b(e){return _(e)?\"\":String(e)}function _(e){return null==e||\"function\"!=typeof e.toString}function w(e){return\"object\"==typeof e&&null!==e&&\"function\"==typeof e.toHTML}function E(e){return\"object\"==typeof e&&null!==e&&\"number\"==typeof e.nodeType}function T(e){return\"string\"==typeof e}e.CurriedComponentDefinition=y;var C=function(i){function e(e,t,n){var r=i.call(this)||this;return r.node=e,r.reference=t,r.lastValue=n,r.type=\"dynamic-text\",r.tag=t.tag,r.lastRevision=r.tag.value(),r}(0,s.inheritsLoose)(e,i);var t=e.prototype;return t.evaluate=function(){var e=this.reference,t=this.tag;t.validate(this.lastRevision)||(this.lastRevision=t.value(),this.update(e.value()))},t.update=function(e){var t,n=this.lastValue;e===n||(t=_(e)?\"\":T(e)?e:String(e))!==n&&(this.node.nodeValue=this.lastValue=t)},e}(t),k=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new t(e)},t.prototype.toBool=R,t}(m),x=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){var e,t,n,r=this.inner.value();return T(n=r)||_(n)||\"boolean\"==typeof n||\"number\"==typeof n?1:(t=r)&&t[g]?0:w(r)?3:E(e=r)&&11===e.nodeType?4:E(r)?5:1},e}();o.add(28,function(e){var t=e.stack.pop().value(),n=_(t)?\"\":String(t);e.elements().appendDynamicHTML(n)}),o.add(29,function(e){var t=e.stack.pop().value().toHTML(),n=_(t)?\"\":t;e.elements().appendDynamicHTML(n)}),o.add(32,function(e){var t=e.stack.pop(),n=t.value(),r=_(n)?\"\":String(n),i=e.elements().appendDynamicText(r);(0,d.isConst)(t)||e.updateWith(new C(i,t,r))}),o.add(30,function(e){var t=e.stack.pop().value();e.elements().appendDynamicFragment(t)}),o.add(31,function(e){var t=e.stack.pop().value();e.elements().appendDynamicNode(t)}),o.add(22,function(e){return e.pushChildScope()}),o.add(23,function(e){return e.popScope()}),o.add(44,function(e){return e.pushDynamicScope()}),o.add(45,function(e){return e.popDynamicScope()}),o.add(12,function(e,t){var n=t.op1;e.stack.push(e.constants.getOther(n))}),o.add(13,function(e,t){var n=t.op1,r=e.stack,i=n>>3;switch(7&n){case 0:r.push(i);break;case 1:r.push(e.constants.getNumber(i));break;case 2:r.push(e.constants.getString(i));break;case 3:r.pushEncodedImmediate(n);break;case 4:case 5:r.push(e.constants.getNumber(i))}}),o.add(14,function(e){var t=e.stack;t.push(i.create(t.pop()))}),o.add(15,function(e){var t=e.stack;t.push(t.peek().value())}),o.add(16,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(n)-r;e.stack.dup(i)}),o.add(17,function(e,t){var n=t.op1;e.stack.pop(n)}),o.add(18,function(e,t){var n=t.op1;e.load(n)}),o.add(19,function(e,t){var n=t.op1;e.fetch(n)}),o.add(43,function(e,t){var n=t.op1,r=e.constants.getArray(n);e.bindDynamicScope(r)}),o.add(61,function(e,t){var n=t.op1;e.enter(n)}),o.add(62,function(e){e.exit()}),o.add(48,function(e,t){var n=t.op1;e.stack.push(e.constants.getSerializable(n))}),o.add(47,function(e){e.stack.push(e.scope())}),o.add(46,function(e){var t=e.stack,n=t.pop();n?t.push(n.compile()):t.pushNull()}),o.add(51,function(e){var t=e.stack,n=t.pop(),r=t.pop(),i=t.pop(),o=t.pop();if(null===i)return e.pushFrame(),void e.pushScope(r);var a=r,s=i.parameters,u=s.length;if(0<u){a=a.child();for(var l=0;l<u;l++)a.bindSymbol(s[l],o.at(l))}e.pushFrame(),e.pushScope(a),e.call(n)}),o.add(53,function(e,t){var n,r=t.op1,i=e.stack.pop();(0,d.isConst)(i)?i.value()&&e.goto(r):((n=new d.ReferenceCache(i)).peek()&&e.goto(r),e.updateWith(new A(n)))}),o.add(54,function(e,t){var n,r=t.op1,i=e.stack.pop();(0,d.isConst)(i)?i.value()||e.goto(r):((n=new d.ReferenceCache(i)).peek()||e.goto(r),e.updateWith(new A(n)))}),o.add(55,function(e,t){var n=t.op1,r=t.op2;e.stack.peek()===r&&e.goto(n)}),o.add(56,function(e){var t=e.stack.peek();(0,d.isConst)(t)||e.updateWith(A.initialize(new d.ReferenceCache(t)))}),o.add(63,function(e){var t=e.env,n=e.stack;n.push(t.toConditionalReference(n.pop()))});var A=function(n){function r(e){var t=n.call(this)||this;return t.type=\"assert\",t.tag=e.tag,t.cache=e,t}return(0,s.inheritsLoose)(r,n),r.initialize=function(e){var t=new r(e);return e.peek(),t},r.prototype.evaluate=function(e){var t=this.cache;(0,d.isModified)(t.revalidate())&&e.throw()},r}(t),O=function(r){function e(e,t){var n=r.call(this)||this;return n.target=t,n.type=\"jump-if-not-modified\",n.tag=e,n.lastRevision=e.value(),n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.evaluate=function(e){var t=this.tag,n=this.target,r=this.lastRevision;!e.alwaysRevalidate&&t.validate(r)&&e.goto(n)},t.didModify=function(){this.lastRevision=this.tag.value()},e}(t),S=function(n){function e(e){var t=n.call(this)||this;return t.target=e,t.type=\"did-modify\",t.tag=d.CONSTANT_TAG,t}return(0,s.inheritsLoose)(e,n),e.prototype.evaluate=function(){this.target.didModify()},e}(t),N=function(){function e(e){this.tag=d.CONSTANT_TAG,this.type=\"label\",this.label=null,this.prev=null,(this.next=null,f.initializeGuid)(this),this.label=e}var t=e.prototype;return t.evaluate=function(){},t.inspect=function(){return this.label+\" [\"+this._guid+\"]\"},e}();o.add(26,function(e,t){var n=t.op1;e.elements().appendText(e.constants.getString(n))}),o.add(27,function(e,t){var n=t.op1;e.elements().appendComment(e.constants.getString(n))}),o.add(33,function(e,t){var n=t.op1;e.elements().openElement(e.constants.getString(n))}),o.add(34,function(e){var t=e.stack.pop().value();e.elements().openElement(t)}),o.add(41,function(e){var t,n,r,i,o=e.stack.pop(),a=e.stack.pop(),s=e.stack.pop().value();(0,d.isConst)(o)?n=o.value():(n=(t=new d.ReferenceCache(o)).peek(),e.updateWith(new A(t))),(0,d.isConst)(a)?i=a.value():(i=(r=new d.ReferenceCache(a)).peek(),e.updateWith(new A(r))),e.elements().pushRemoteElement(n,s,i)}),o.add(42,function(e){e.elements().popRemoteElement()}),o.add(38,function(e){var t=e.fetchValue(p.Register.t0),n=null;t&&(n=t.flush(e),e.loadValue(p.Register.t0,null)),e.elements().flushElement(n)}),o.add(39,function(i){var e=i.elements().closeElement();e&&e.forEach(function(e){var t=e[0],n=e[1];i.env.scheduleInstallModifier(n,t);var r=t.getDestructor(n);r&&i.newDestroyable(r)})}),o.add(40,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=r.state,a=e.stack.pop(),s=e.elements(),u=s.constructing,l=s.updateOperations,c=e.dynamicScope(),h=i.create(u,o,a,c,l);e.fetchValue(p.Register.t0).addModifier(i,h);var f=i.getTag(h);(0,d.isConstTag)(f)||e.updateWith(new P(f,i,h))});var P=function(i){function e(e,t,n){var r=i.call(this)||this;return r.tag=e,r.manager=t,r.modifier=n,r.type=\"update-modifier\",r.lastUpdated=e.value(),r}return(0,s.inheritsLoose)(e,i),e.prototype.evaluate=function(e){var t=this.manager,n=this.modifier,r=this.tag,i=this.lastUpdated;r.validate(i)||(e.env.scheduleUpdateModifier(n,t),this.lastUpdated=r.value())},e}(t);o.add(35,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.constants.getString(r),s=i?e.constants.getString(i):null;e.elements().setStaticAttribute(o,a,s)}),o.add(36,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.stack.pop(),s=a.value(),u=i?e.constants.getString(i):null,l=e.elements().setDynamicAttribute(o,s,!!r,u);(0,d.isConst)(a)||e.updateWith(new L(a,l))});var L=function(r){function e(e,t){var n=r.call(this)||this;return n.reference=e,n.attribute=t,n.type=\"patch-element\",n.tag=e.tag,n.lastRevision=n.tag.value(),n}return(0,s.inheritsLoose)(e,r),e.prototype.evaluate=function(e){var t=this.attribute,n=this.reference,r=this.tag;r.validate(this.lastRevision)||(this.lastRevision=r.value(),t.update(n.value(),e.env))},e}(t);function M(e,t,n){return e.lookupComponentDefinition(t,n)}var j=function(){function e(e,t,n,r){this.inner=e,this.resolver=t,this.meta=n,this.args=r,this.tag=e.tag,this.lastValue=null,this.lastDefinition=null}var t=e.prototype;return t.value=function(){var e=this.inner,t=this.lastValue,n=e.value();if(n===t)return this.lastDefinition;var r=null;return R(n)?r=n:\"string\"==typeof n&&n&&(r=M(this.resolver,n,this.meta)),r=this.curry(r),this.lastValue=n,this.lastDefinition=r},t.get=function(){return l},t.curry=function(e){var t=this.args;return!t&&R(e)?e:e?new y(e,t):null},e}(),D=function(){function e(e){this.list=e,this.tag=(0,d.combineTagged)(e),this.list=e}return e.prototype.value=function(){for(var e=[],t=this.list,n=0;n<t.length;n++){var r=b(t[n].value());r&&e.push(r)}return 0===e.length?null:e.join(\" \")},e}();function I(e){return 0|(e.dynamicLayout?1:0)|(e.dynamicTag?2:0)|(e.prepareArgs?4:0)|(e.createArgs?8:0)|(e.attributeHook?16:0)|(e.elementHook?32:0)|(e.dynamicScope?64:0)|(e.createCaller?128:0)|(e.updateHook?256:0)|(e.createInstance?512:0)}function F(e,t){return!!(e&t)}o.add(69,function(e){var t=e.stack,n=t.pop();t.push(k.create(n))}),o.add(70,function(e){var t=e.stack,n=t.peek();t.push(new x(n))}),o.add(71,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),a=e.constants.getSerializable(n),s=e.constants.resolver;e.loadValue(p.Register.v0,new j(i,s,a,o))}),o.add(72,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=I(i.getCapabilities(r.state)),a={definition:r,manager:i,capabilities:o,state:null,handle:null,table:null,lookup:null};e.stack.push(a)}),o.add(75,function(e,t){var n=t.op1,r=e.stack,i=r.pop().value(),o=e.constants.getSerializable(n);if(e.loadValue(p.Register.t1,null),\"string\"==typeof i)var a=M(e.constants.resolver,i,o);else{if(!R(i))throw(0,f.unreachable)();a=i}r.push(a)}),o.add(73,function(e){var t,n,r=e.stack,i=r.pop();R(i)?n=t=null:t=I((n=i.manager).getCapabilities(i.state)),r.push({definition:i,capabilities:t,manager:n,state:null,handle:null,table:null})}),o.add(74,function(e,t){(0,s.objectDestructuringEmpty)(t);var n=e.stack,r=n.pop().value();if(!R(r))throw(0,f.unreachable)();n.push(r)}),o.add(76,function(e,t){var n=t.op1,r=t.op2,i=e.stack,o=e.constants.getStringArray(n),a=r>>4,s=8&r,u=[];4&r&&u.push(\"main\"),2&r&&u.push(\"else\"),1&r&&u.push(\"attrs\"),e.args.setup(i,o,u,a,!!s),i.push(e.args)}),o.add(77,function(e){var t=e.stack;t.push(e.args.empty(t))}),o.add(80,function(e){var t=e.stack,n=t.pop().capture();t.push(n)}),o.add(79,function(e,t){var n,r,i,o,a,s,u=t.op1,l=e.stack,c=e.fetchValue(u),h=l.pop(),f=c.definition;R(f)&&(r=f,i=h,o=(n=c).definition=r.unwrap(i),a=o.manager,s=o.state,n.manager=a,n.capabilities=I(a.getCapabilities(s)),f=o);var p=f.manager,d=f.state;if(!0==!!(4&c.capabilities)){var m=h.blocks.values,v=h.blocks.names,g=p.prepareArgs(d,h);if(g){h.clear();for(var y=0;y<m.length;y++)l.push(m[y]);for(var b=g.positional,_=g.named,w=b.length,E=0;E<w;E++)l.push(b[E]);for(var T=Object.keys(_),C=0;C<T.length;C++)l.push(_[T[C]]);h.setup(l,T,v,w,!0)}l.push(h)}else l.push(h)}),o.add(81,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(r),o=i.definition,a=i.manager,s=i.capabilities=I(a.getCapabilities(o.state)),u=null;s&64&&(u=e.dynamicScope());var l=1&n,c=null;s&8&&(c=e.stack.peek());var h=null;s&128&&(h=e.getSelf());var f=a.create(e.env,o.state,c,u,h,!!l);i.state=f;var p=a.getTag(f);s&256&&!(0,d.isConstTag)(p)&&e.updateWith(new q(p,f,a,u))}),o.add(82,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,a=i.getDestructor(o);a&&e.newDestroyable(a)}),o.add(91,function(e){e.beginCacheGroup(),e.elements().pushSimpleBlock()}),o.add(83,function(e){e.loadValue(p.Register.t0,new B)}),o.add(37,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.stack.pop(),s=i?e.constants.getString(i):null;e.fetchValue(p.Register.t0).setAttribute(o,a,!!r,s)});var B=function(){function e(){this.attributes=(0,f.dict)(),this.classes=[],this.modifiers=[]}var t=e.prototype;return t.setAttribute=function(e,t,n,r){var i={value:t,namespace:r,trusting:n};\"class\"===e&&this.classes.push(t),this.attributes[e]=i},t.addModifier=function(e,t){this.modifiers.push([e,t])},t.flush=function(e){for(var t in this.attributes){var n,r=this.attributes[t],i=r.value,o=r.namespace,a=r.trusting;\"class\"===t&&(i=new D(this.classes)),\"type\"!==t&&(n=e.elements().setDynamicAttribute(t,i.value(),a,o),(0,d.isConst)(i)||e.updateWith(new L(i,n)))}var s,u;return\"type\"in this.attributes&&(i=(s=this.attributes.type).value,o=s.namespace,a=s.trusting,u=e.elements().setDynamicAttribute(\"type\",i.value(),a,o),(0,d.isConst)(i)||e.updateWith(new L(i,u))),this.modifiers},e}();function U(e){return!1==!!(1&e)}function z(e,t,n,r,i){var o=n.table.symbols.indexOf(e),a=r.get(t);-1!==o&&i.scope().bindBlock(o+1,a),n.lookup&&(n.lookup[e]=a)}o.add(93,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager,s=e.fetchValue(p.Register.t0);a.didCreateElement(o,e.elements().expectConstructing(\"DidCreateElementOpcode#evaluate\"),s)}),o.add(84,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager;e.stack.push(a.getSelf(o))}),o.add(85,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager;e.stack.push(a.getTagName(o))}),o.add(86,function(e,t){var n,r=t.op1,i=e.fetchValue(r),o=i.manager,a=i.definition,s=e.constants.resolver,u=e.stack,l=i.state,c=i.capabilities,h=a.state;if(U(c))n=o.getLayout(h,s);else{if(1!=!!(1&c))throw(0,f.unreachable)();n=o.getDynamicLayout(l,s)}u.push(n.symbolTable),u.push(n.handle)}),o.add(68,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=r.manager,a=I(o.getCapabilities(r.state)),s={definition:r,manager:o,capabilities:a,state:null,handle:i.handle,table:i.symbolTable,lookup:null};e.loadValue(n,s)}),o.add(89,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),a=e.fetchValue(n);a.handle=i,a.table=o}),o.add(21,function(e,t){var n=t.op1,r=e.fetchValue(n).table.symbols;e.pushRootScope(r.length+1,!0)}),o.add(87,function(e,t){var n,r=t.op1,i=e.fetchValue(r);i.table.hasEval&&(n=i.lookup=(0,f.dict)(),e.scope().bindEvalScope(n))}),o.add(2,function(e,t){for(var n=t.op1,r=e.fetchValue(n),i=e.scope(),o=e.stack.peek(),a=o.named.atNames,s=a.length-1;0<=s;s--){var u=a[s],l=r.table.symbols.indexOf(a[s]),c=o.named.get(u,!1);-1!==l&&i.bindSymbol(l+1,c),r.lookup&&(r.lookup[u]=c)}}),o.add(3,function(e,t){var n=t.op1,r=e.fetchValue(n),i=e.stack.peek().blocks;z(\"&attrs\",\"attrs\",r,i,e),z(\"&inverse\",\"else\",r,i,e),z(\"&default\",\"main\",r,i,e)}),o.add(90,function(e,t){var n=t.op1,r=e.fetchValue(n);e.call(r.handle)}),o.add(94,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,a=e.elements().popBlock();i.didRenderLayout(o,a),e.env.didCreate(o,i),e.updateWith(new H(i,o,a))}),o.add(92,function(e){e.commitCacheGroup()});var q=function(o){function e(e,t,n,r){var i=o.call(this)||this;return i.tag=e,i.component=t,i.manager=n,i.dynamicScope=r,i.type=\"update-component\",i}return(0,s.inheritsLoose)(e,o),e.prototype.evaluate=function(){var e=this.component,t=this.manager,n=this.dynamicScope;t.update(e,n)},e}(t),H=function(i){function e(e,t,n){var r=i.call(this)||this;return r.manager=e,r.component=t,r.bounds=n,r.type=\"did-update-layout\",r.tag=d.CONSTANT_TAG,r}return(0,s.inheritsLoose)(e,i),e.prototype.evaluate=function(e){var t=this.manager,n=this.component,r=this.bounds;t.didUpdateLayout(n,r),e.env.didUpdate(n,t)},e}(t);function V(e,t){console.info(\"Use `context`, and `get(<path>)` to debug this template.\"),t(\"this\")}var W=V;var Y=function(){function e(e,t,n){this.scope=e,this.locals=(0,f.dict)();for(var r=0;r<n.length;r++){var i=n[r],o=t[i-1],a=e.getSymbol(i);this.locals[o]=a}}return e.prototype.get=function(e){var t,n=this.scope,r=this.locals,i=e.split(\".\"),o=e.split(\".\"),a=o[0],s=o.slice(1),u=n.getEvalScope();return\"this\"===a?t=n.getSelf():r[a]?t=r[a]:0===a.indexOf(\"@\")&&u[a]?t=u[a]:(t=this.scope.getSelf(),s=i),s.reduce(function(e,t){return e.get(t)},t)},e}();o.add(97,function(e,t){var n=t.op1,r=t.op2,i=e.constants.getStringArray(n),o=e.constants.getArray(r),a=new Y(e.scope(),i,o);W(e.getSelf().value(),function(e){return a.get(e).value()})}),o.add(95,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants,a=e.constants.resolver,s=e.stack.pop().value(),u=o.getSerializable(n),l=o.getStringArray(r),c=o.getArray(i),h=a.lookupPartial(s,u),f=a.resolve(h).getPartial(),p=f.symbolTable,d=f.handle,m=p.symbols,v=e.scope(),g=e.pushRootScope(m.length,!1),y=v.getEvalScope();g.bindCallerScope(v.getCallerScope()),g.bindEvalScope(y),g.bindSelf(v.getSelf());for(var b=Object.create(v.getPartialMap()),_=0;_<c.length;_++){var w=c[_],E=l[w-1],T=v.getSymbol(w);b[E]=T}if(y)for(var C=0;C<m.length;C++){var R=C+1,k=y[m[C]];void 0!==k&&g.bind(R,k)}g.bindPartialMap(b),e.pushFrame(),e.call(d)});var G=function(){function e(e){this.tag=e.tag,this.artifacts=e}return e.prototype.value=function(){return!this.artifacts.isEmpty()},e}();o.add(66,function(e){var t=e.stack,n=t.pop(),r=t.pop(),i=e.env.iterableFor(n,r.value()),o=new d.ReferenceIterator(i);t.push(o),t.push(new G(o.artifacts))}),o.add(64,function(e,t){var n=t.op1;e.enterList(n)}),o.add(65,function(e){e.exitList()}),o.add(67,function(e,t){var n,r=t.op1,i=e.stack.peek().next();i?(n=e.iterate(i.memo,i.value),e.enterItem(i.key,n)):e.goto(r)});function Q(e,t){this.element=e,this.nextSibling=t}e.Cursor=Q;var K=function(){function e(e,t,n){this.parentNode=e,this.first=t,this.last=n}var t=e.prototype;return t.parentElement=function(){return this.parentNode},t.firstNode=function(){return this.first},t.lastNode=function(){return this.last},e}();e.ConcreteBounds=K;var $=function(){function e(e,t){this.parentNode=e,this.node=t}var t=e.prototype;return t.parentElement=function(){return this.parentNode},t.firstNode=function(){return this.node},t.lastNode=function(){return this.node},e}();function X(e,t){for(var n=e.parentElement(),r=e.firstNode(),i=e.lastNode(),o=r;;){var a=o.nextSibling;if(n.insertBefore(o,t),o===i)return a;o=a}}function J(e){for(var t=e.parentElement(),n=e.firstNode(),r=e.lastNode(),i=n;;){var o=i.nextSibling;if(t.removeChild(i),i===r)return o;i=o}}function Z(e,t,i){if(!e)return t;if(!function(e,t){var n=e.createElementNS(t,\"svg\");try{n.insertAdjacentHTML(\"beforeend\",\"<circle></circle>\")}catch(e){}finally{return 1===n.childNodes.length&&n.firstChild.namespaceURI===te?!1:!0}}(e,i))return t;var o=e.createElement(\"div\");return function(r){function e(){return r.apply(this,arguments)||this}return(0,s.inheritsLoose)(e,r),e.prototype.insertHTMLBefore=function(e,t,n){return\"\"===n||e.namespaceURI!==i?r.prototype.insertHTMLBefore.call(this,e,t,n):function(e,t,n,r){var i;{var o,a;i=\"FOREIGNOBJECT\"===e.tagName.toUpperCase()?(o=\"<svg><foreignObject>\"+n+\"</foreignObject></svg>\",t.innerHTML=o,t.firstChild.firstChild):(a=\"<svg>\"+n+\"</svg>\",t.innerHTML=a,t.firstChild)}return function(e,t,n){var r=e.firstChild,i=r,o=r;for(;o;){var a=o.nextSibling;t.insertBefore(o,n),i=o,o=a}return new K(t,r,i)}(i,e,r)}(e,o,n,t)},e}(t)}function ee(e,t){return e?((n=e.createElement(\"div\")).innerHTML=\"first\",n.insertAdjacentHTML(\"beforeend\",\"second\"),2===n.childNodes.length?t:function(a){function e(e){var t=a.call(this,e)||this;return t.uselessComment=e.createComment(\"\"),t}return(0,s.inheritsLoose)(e,a),e.prototype.insertHTMLBefore=function(e,t,n){if(\"\"===n)return a.prototype.insertHTMLBefore.call(this,e,t,n);var r=!1,i=t?t.previousSibling:e.lastChild;i&&i instanceof Text&&(r=!0,e.insertBefore(this.uselessComment,t));var o=a.prototype.insertHTMLBefore.call(this,e,t,n);return r&&e.removeChild(this.uselessComment),o},e}(t)):t;var n}var te=\"http://www.w3.org/2000/svg\";e.SVG_NAMESPACE=te;var ne={foreignObject:1,desc:1,title:1},re=Object.create(null);[\"b\",\"big\",\"blockquote\",\"body\",\"br\",\"center\",\"code\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"hr\",\"i\",\"img\",\"li\",\"listing\",\"main\",\"meta\",\"nobr\",\"ol\",\"p\",\"pre\",\"ruby\",\"s\",\"small\",\"span\",\"strong\",\"strike\",\"sub\",\"sup\",\"table\",\"tt\",\"u\",\"ul\",\"var\"].forEach(function(e){return re[e]=1});var ie=/[\\t-\\r \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,oe=\"undefined\"==typeof document?null:document;var ae,se=function(){function e(e){this.document=e,this.setupUselessElement()}var t=e.prototype;return t.setupUselessElement=function(){this.uselessElement=this.document.createElement(\"div\")},t.createElement=function(e,t){var n,r=t?(n=t.namespaceURI===te||\"svg\"===e,ne[t.tagName]):(n=\"svg\"===e,!1);if(!n||r)return this.document.createElement(e);if(re[e])throw new Error(\"Cannot create a \"+e+\" inside an SVG context\");return this.document.createElementNS(te,e)},t.insertBefore=function(e,t,n){e.insertBefore(t,n)},t.insertHTMLBefore=function(e,t,n){if(\"\"===n){var r=this.createComment(\"\");return e.insertBefore(r,t),new K(e,r,r)}var i,o,a=t?t.previousSibling:e.lastChild;null===t?(e.insertAdjacentHTML(\"beforeend\",n),i=e.lastChild):t instanceof HTMLElement?(t.insertAdjacentHTML(\"beforebegin\",n),i=t.previousSibling):(o=this.uselessElement,e.insertBefore(o,t),o.insertAdjacentHTML(\"beforebegin\",n),i=o.previousSibling,e.removeChild(o));var s=a?a.nextSibling:e.firstChild;return new K(e,s,i)},t.createTextNode=function(e){return this.document.createTextNode(e)},t.createComment=function(e){return this.document.createComment(e)},e}();!function(e){var t=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.createElementNS=function(e,t){return this.document.createElementNS(e,t)},n.setAttribute=function(e,t,n,r){var i=3<arguments.length&&void 0!==r?r:null;i?e.setAttributeNS(i,t,n):e.setAttribute(t,n)},t}(se);e.TreeConstruction=t;var n=ee(oe,n=t);n=Z(oe,n,te),e.DOMTreeConstruction=n}(ae=ae||{});var ue=function(n){function e(e){var t=n.call(this,e)||this;return t.document=e,t.namespace=null,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.setAttribute=function(e,t,n){e.setAttribute(t,n)},t.removeAttribute=function(e,t){e.removeAttribute(t)},t.insertAfter=function(e,t,n){this.insertBefore(e,t,n.nextSibling)},e}(se);e.IDOMChanges=ue;var le=ee(oe,le=ue);le=Z(oe,le,te),e.DOMChanges=le;var ce=ae.DOMTreeConstruction;e.DOMTreeConstruction=ce;var he=[\"javascript:\",\"vbscript:\"],fe=[\"A\",\"BODY\",\"LINK\",\"IMG\",\"IFRAME\",\"BASE\",\"FORM\"],pe=[\"EMBED\"],de=[\"href\",\"src\",\"background\",\"action\"],me=[\"src\"];function ve(e,t){return-1!==e.indexOf(t)}function ge(e,t){return(null===e||ve(fe,e))&&ve(de,t)}function ye(e,t){return null!==e&&(ve(pe,e)&&ve(me,t))}function be(e,t){return ge(e,t)||ye(e,t)}function _e(e,t,n,r){var i=null;if(null==r)return r;if(w(r))return r.toHTML();i=t?t.tagName.toUpperCase():null;var o=b(r);if(ge(i,n)){var a=e.protocolForURL(o);if(ve(he,a))return\"unsafe:\"+o}return ye(i,n)?\"unsafe:\"+o:o}function we(e,t){var n,r,i,o,a,s;return t in e?(i=t,n=\"prop\"):i=(r=t.toLowerCase())in e?(n=\"prop\",r):(n=\"attr\",t),\"prop\"===n&&(\"style\"===i.toLowerCase()||(o=e.tagName,a=i,(s=Ee[o.toUpperCase()])&&s[a.toLowerCase()]))&&(n=\"attr\"),{normalized:i,type:n}}var Ee={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},BUTTON:{form:!0}};function Te(e,t,n){var r=e.tagName,i={element:e,name:t,namespace:n};if(e.namespaceURI===te)return Ce(r,t,i);var o=we(e,t),a=o.type,s=o.normalized;return(\"attr\"===a?Ce:function(e,t,n){if(be(e,t))return new Ae(t,n);if(function(e,t){return(\"INPUT\"===e||\"TEXTAREA\"===e)&&\"value\"===t}(e,t))return new Se(t,n);if(\"OPTION\"===e&&\"selected\"===t)return new Ne(t,n);return new xe(t,n)})(r,s,i)}function Ce(e,t,n){return new(be(e,t)?Oe:ke)(n)}function Re(e){this.attribute=e}var ke=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){var n,r,i,o=Pe(t);null!==o&&(r=(n=this.attribute).name,i=n.namespace,e.__setAttribute(r,o,i))},n.update=function(e){var t=Pe(e),n=this.attribute,r=n.element,i=n.name;null===t?r.removeAttribute(i):r.setAttribute(i,t)},t}(e.DynamicAttribute=Re);e.SimpleDynamicAttribute=ke;var xe=function(r){function e(e,t){var n=r.call(this,t)||this;return n.normalizedName=e,n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.set=function(e,t){null!=t&&(this.value=t,e.__setProperty(this.normalizedName,t))},t.update=function(e){var t=this.attribute.element;this.value!==e&&null==(t[this.normalizedName]=this.value=e)&&this.removeAttribute()},t.removeAttribute=function(){var e=this.attribute,t=e.element,n=e.namespace;n?t.removeAttributeNS(n,this.normalizedName):t.removeAttribute(this.normalizedName)},e}(Re),Ae=function(o){function e(){return o.apply(this,arguments)||this}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.set=function(e,t,n){var r=this.attribute,i=_e(n,r.element,r.name,t);o.prototype.set.call(this,e,i,n)},t.update=function(e,t){var n=this.attribute,r=_e(t,n.element,n.name,e);o.prototype.update.call(this,r,t)},e}(xe),Oe=function(o){function e(){return o.apply(this,arguments)||this}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.set=function(e,t,n){var r=this.attribute,i=_e(n,r.element,r.name,t);o.prototype.set.call(this,e,i,n)},t.update=function(e,t){var n=this.attribute,r=_e(t,n.element,n.name,e);o.prototype.update.call(this,r,t)},e}(ke),Se=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){e.__setProperty(\"value\",b(t))},n.update=function(e){var t=this.attribute.element,n=t.value,r=b(e);n!==r&&(t.value=r)},t}(xe),Ne=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){null!=t&&!1!==t&&e.__setProperty(\"selected\",!0)},n.update=function(e){var t=this.attribute.element;t.selected=!!e},t}(xe);function Pe(e){return!1===e||null==e||void 0===e.toString?null:!0===e?\"\":\"function\"==typeof e?null:String(e)}var Le=function(){function o(e,t,n,r){this.slots=e,this.callerScope=t,this.evalScope=n,this.partialMap=r}o.root=function(e,t){for(var n=1<arguments.length&&void 0!==t?t:0,r=new Array(n+1),i=0;i<=n;i++)r[i]=l;return new o(r,null,null,null).init({self:e})},o.sized=function(e){for(var t=0<arguments.length&&void 0!==e?e:0,n=new Array(t+1),r=0;r<=t;r++)n[r]=l;return new o(n,null,null,null)};var e=o.prototype;return e.init=function(e){var t=e.self;return this.slots[0]=t,this},e.getSelf=function(){return this.get(0)},e.getSymbol=function(e){return this.get(e)},e.getBlock=function(e){var t=this.get(e);return t===l?null:t},e.getEvalScope=function(){return this.evalScope},e.getPartialMap=function(){return this.partialMap},e.bind=function(e,t){this.set(e,t)},e.bindSelf=function(e){this.set(0,e)},e.bindSymbol=function(e,t){this.set(e,t)},e.bindBlock=function(e,t){this.set(e,t)},e.bindEvalScope=function(e){this.evalScope=e},e.bindPartialMap=function(e){this.partialMap=e},e.bindCallerScope=function(e){this.callerScope=e},e.getCallerScope=function(){return this.callerScope},e.child=function(){return new o(this.slots.slice(),this.callerScope,this.evalScope,this.partialMap)},e.get=function(e){if(e>=this.slots.length)throw new RangeError(\"BUG: cannot get $\"+e+\" from scope; length=\"+this.slots.length);return this.slots[e]},e.set=function(e,t){if(e>=this.slots.length)throw new RangeError(\"BUG: cannot get $\"+e+\" from scope; length=\"+this.slots.length);this.slots[e]=t},o}();e.Scope=Le;var Me=function(){function e(){this.scheduledInstallManagers=[],this.scheduledInstallModifiers=[],this.scheduledUpdateModifierManagers=[],this.scheduledUpdateModifiers=[],this.createdComponents=[],this.createdManagers=[],this.updatedComponents=[],this.updatedManagers=[],this.destructors=[]}var t=e.prototype;return t.didCreate=function(e,t){this.createdComponents.push(e),this.createdManagers.push(t)},t.didUpdate=function(e,t){this.updatedComponents.push(e),this.updatedManagers.push(t)},t.scheduleInstallModifier=function(e,t){this.scheduledInstallModifiers.push(e),this.scheduledInstallManagers.push(t)},t.scheduleUpdateModifier=function(e,t){this.scheduledUpdateModifiers.push(e),this.scheduledUpdateModifierManagers.push(t)},t.didDestroy=function(e){this.destructors.push(e)},t.commit=function(){for(var e=this.createdComponents,t=this.createdManagers,n=0;n<e.length;n++){var r=e[n];t[n].didCreate(r)}for(var i=this.updatedComponents,o=this.updatedManagers,a=0;a<i.length;a++){var s=i[a];o[a].didUpdate(s)}for(var u=this.destructors,l=0;l<u.length;l++)u[l].destroy();for(var c=this.scheduledInstallManagers,h=this.scheduledInstallModifiers,f=0;f<c.length;f++){var p=h[f];c[f].install(p)}for(var d=this.scheduledUpdateModifierManagers,m=this.scheduledUpdateModifiers,v=0;v<d.length;v++){var g=m[v];d[v].update(g)}},e}(),je=function(){function e(e){var t=e.appendOperations,n=e.updateOperations;this._transaction=null,this.appendOperations=t,this.updateOperations=n}var t=e.prototype;return t.toConditionalReference=function(e){return new m(e)},t.getAppendOperations=function(){return this.appendOperations},t.getDOM=function(){return this.updateOperations},t.begin=function(){this._transaction=new Me},t.didCreate=function(e,t){this.transaction.didCreate(e,t)},t.didUpdate=function(e,t){this.transaction.didUpdate(e,t)},t.scheduleInstallModifier=function(e,t){this.transaction.scheduleInstallModifier(e,t)},t.scheduleUpdateModifier=function(e,t){this.transaction.scheduleUpdateModifier(e,t)},t.didDestroy=function(e){this.transaction.didDestroy(e)},t.commit=function(){var e=this.transaction;this._transaction=null,e.commit()},t.attributeFor=function(e,t,n,r){return Te(e,t,3<arguments.length&&void 0!==r?r:null)},(0,s.createClass)(e,[{key:\"transaction\",get:function(){return this._transaction}}]),e}(),De=function(n){function e(e){var t;return e||(t=window.document,e={appendOperations:new ce(t),updateOperations:new ue(t)}),n.call(this,e)||this}return(0,s.inheritsLoose)(e,n),e}(e.Environment=je);e.DefaultEnvironment=De;var Ie=function(){function e(e,t,n,r){var i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:-1,o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:-1;this.stack=e,this.heap=t,this.program=n,this.externs=r,this.pc=i,this.ra=o,this.currentOpSize=0}var t=e.prototype;return t.pushFrame=function(){this.stack.push(this.ra),this.stack.push(this.stack.fp),this.stack.fp=this.stack.sp-1},t.popFrame=function(){this.stack.sp=this.stack.fp-1,this.ra=this.stack.get(0),this.stack.fp=this.stack.get(1)},t.pushSmallFrame=function(){this.stack.push(this.ra)},t.popSmallFrame=function(){this.ra=this.stack.popSmi()},t.goto=function(e){var t=this.pc+e-this.currentOpSize;this.pc=t},t.call=function(e){this.ra=this.pc,this.pc=this.heap.getaddr(e)},t.returnTo=function(e){var t=this.pc+e-this.currentOpSize;this.ra=t},t.return=function(){this.pc=this.ra},t.nextStatement=function(){var e=this.pc,t=this.program;if(-1===e)return null;var n=this.program.opcode(e).size,r=this.currentOpSize=n;return this.pc+=r,t.opcode(e)},t.evaluateOuter=function(e,t){this.evaluateInner(e,t)},t.evaluateInner=function(e,t){e.isMachine?this.evaluateMachine(e):this.evaluateSyscall(e,t)},t.evaluateMachine=function(e){switch(e.type){case 57:return this.pushFrame();case 58:return this.popFrame();case 59:return this.pushSmallFrame();case 60:return this.popSmallFrame();case 50:return this.call(e.op1);case 49:return this.call(this.stack.popSmi());case 52:return this.goto(e.op1);case 24:return this.return();case 25:return this.returnTo(e.op1)}},t.evaluateSyscall=function(e,t){o.evaluate(t,e,e.type)},e}(),Fe=function(){function e(e){this.node=e}return e.prototype.firstNode=function(){return this.node},e}(),Be=function(){function e(e){this.node=e}return e.prototype.lastNode=function(){return this.node},e}(),Ue=function(){function e(e,t,n){this.constructing=null,this.operations=null,this.cursorStack=new f.Stack,this.modifierStack=new f.Stack,this.blockStack=new f.Stack,this.pushElement(t,n),this.env=e,this.dom=e.getAppendOperations(),this.updateOperations=e.getDOM()}e.forInitialRender=function(e,t){var n=new this(e,t.element,t.nextSibling);return n.pushSimpleBlock(),n},e.resume=function(e,t,n){var r=new this(e,t.parentElement(),n);return r.pushSimpleBlock(),r.pushBlockTracker(t),r};var t=e.prototype;return t.expectConstructing=function(){return this.constructing},t.block=function(){return this.blockStack.current},t.popElement=function(){this.cursorStack.pop(),this.cursorStack.current},t.pushSimpleBlock=function(){return this.pushBlockTracker(new ze(this.element))},t.pushUpdatableBlock=function(){return this.pushBlockTracker(new He(this.element))},t.pushBlockList=function(e){return this.pushBlockTracker(new Ve(this.element,e))},t.pushBlockTracker=function(e,t){var n=1<arguments.length&&void 0!==t&&t,r=this.blockStack.current;return null!==r&&(r.newDestroyable(e),n||r.didAppendBounds(e)),this.__openBlock(),this.blockStack.push(e),e},t.popBlock=function(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()},t.__openBlock=function(){},t.__closeBlock=function(){},t.openElement=function(e){var t=this.__openElement(e);return this.constructing=t},t.__openElement=function(e){return this.dom.createElement(e,this.element)},t.flushElement=function(e){var t=this.element,n=this.constructing;this.__flushElement(t,n),this.constructing=null,this.operations=null,this.pushModifiers(e),this.pushElement(n,null),this.didOpenElement(n)},t.__flushElement=function(e,t){this.dom.insertBefore(e,t,this.nextSibling)},t.closeElement=function(){return this.willCloseElement(),this.popElement(),this.popModifiers()},t.pushRemoteElement=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:null;this.__pushRemoteElement(e,t,r)},t.__pushRemoteElement=function(e,t,n){this.pushElement(e,n);var r=new qe(e);this.pushBlockTracker(r,!0)},t.popRemoteElement=function(){this.popBlock(),this.popElement()},t.pushElement=function(e,t){this.cursorStack.push(new Q(e,t))},t.pushModifiers=function(e){this.modifierStack.push(e)},t.popModifiers=function(){return this.modifierStack.pop()},t.didAddDestroyable=function(e){this.block().newDestroyable(e)},t.didAppendBounds=function(e){return this.block().didAppendBounds(e),e},t.didAppendNode=function(e){return this.block().didAppendNode(e),e},t.didOpenElement=function(e){return this.block().openElement(e),e},t.willCloseElement=function(){this.block().closeElement()},t.appendText=function(e){return this.didAppendNode(this.__appendText(e))},t.__appendText=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createTextNode(e);return t.insertBefore(n,i,r),i},t.__appendNode=function(e){return this.dom.insertBefore(this.element,e,this.nextSibling),e},t.__appendFragment=function(e){var t=e.firstChild;if(t){var n=new K(this.element,t,e.lastChild);return this.dom.insertBefore(this.element,e,this.nextSibling),n}return new $(this.element,this.__appendComment(\"\"))},t.__appendHTML=function(e){return this.dom.insertHTMLBefore(this.element,this.nextSibling,e)},t.appendDynamicHTML=function(e){var t=this.trustedContent(e);this.didAppendBounds(t)},t.appendDynamicText=function(e){var t=this.untrustedContent(e);return this.didAppendNode(t),t},t.appendDynamicFragment=function(e){var t=this.__appendFragment(e);this.didAppendBounds(t)},t.appendDynamicNode=function(e){var t=this.__appendNode(e),n=new $(this.element,t);this.didAppendBounds(n)},t.trustedContent=function(e){return this.__appendHTML(e)},t.untrustedContent=function(e){return this.__appendText(e)},t.appendComment=function(e){return this.didAppendNode(this.__appendComment(e))},t.__appendComment=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createComment(e);return t.insertBefore(n,i,r),i},t.__setAttribute=function(e,t,n){this.dom.setAttribute(this.constructing,e,t,n)},t.__setProperty=function(e,t){this.constructing[e]=t},t.setStaticAttribute=function(e,t,n){this.__setAttribute(e,t,n)},t.setDynamicAttribute=function(e,t,n,r){var i=this.constructing,o=this.env.attributeFor(i,e,n,r);return o.set(this,t,this.env),o},(0,s.createClass)(e,[{key:\"element\",get:function(){return this.cursorStack.current.element}},{key:\"nextSibling\",get:function(){return this.cursorStack.current.nextSibling}}]),e}();e.NewElementBuilder=Ue;var ze=function(){function e(e){this.parent=e,this.first=null,this.last=null,this.destroyables=null,this.nesting=0}var t=e.prototype;return t.destroy=function(){var e=this.destroyables;if(e&&e.length)for(var t=0;t<e.length;t++)e[t].destroy()},t.parentElement=function(){return this.parent},t.firstNode=function(){return this.first.firstNode()},t.lastNode=function(){return this.last.lastNode()},t.openElement=function(e){this.didAppendNode(e),this.nesting++},t.closeElement=function(){this.nesting--},t.didAppendNode=function(e){0===this.nesting&&(this.first||(this.first=new Fe(e)),this.last=new Be(e))},t.didAppendBounds=function(e){0===this.nesting&&(this.first||(this.first=e),this.last=e)},t.newDestroyable=function(e){this.destroyables=this.destroyables||[],this.destroyables.push(e)},t.finalize=function(e){null===this.first&&e.appendComment(\"\")},e}(),qe=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),J(this)},t}(ze),He=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.prototype.reset=function(e){var t=this.destroyables;if(t&&t.length)for(var n=0;n<t.length;n++)e.didDestroy(t[n]);var r=J(this);return this.first=null,this.last=null,this.destroyables=null,this.nesting=0,r},t}(ze),Ve=function(){function e(e,t){this.parent=e,this.boundList=t,this.parent=e,this.boundList=t}var t=e.prototype;return t.destroy=function(){this.boundList.forEachNode(function(e){return e.destroy()})},t.parentElement=function(){return this.parent},t.firstNode=function(){return this.boundList.head().firstNode()},t.lastNode=function(){return this.boundList.tail().lastNode()},t.openElement=function(){},t.closeElement=function(){},t.didAppendNode=function(){},t.didAppendBounds=function(){},t.newDestroyable=function(){},t.finalize=function(){},e}();var We=268435455,Ye=function(){function r(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new n.Stack,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];this.inner=e,this.js=t}var e=r.prototype;return e.slice=function(e,t){var n=\"number\"==typeof e&&\"number\"==typeof t?this.inner.slice(e,t):\"number\"==typeof e&&void 0===t?this.inner.sliceFrom(e):this.inner.clone();return new r(n,this.js.slice(e,t))},e.sliceInner=function(e,t){for(var n=[],r=e;r<t;r++)n.push(this.get(r));return n},e.copy=function(e,t){this.inner.copy(e,t)},e.write=function(e,t){var n;!function(e){var t=typeof e;if(null==e)return!0;switch(t){case\"boolean\":case\"undefined\":return!0;case\"number\":if(e%1!=0)return!1;var n=Math.abs(e);return We<n?!1:!0;default:return!1}}(t)?(n=this.js.length,this.js.push(t),this.inner.writeRaw(e,~n)):this.inner.writeRaw(e,function(e){switch(typeof e){case\"number\":return function(e){{if(e<0){var t=Math.abs(e);if(We<t)throw new Error(\"not smi\");return Math.abs(e)<<3|4}if(We<e)throw new Error(\"not smi\");return e<<3|0}}(e);case\"boolean\":return e?11:3;case\"object\":return 19;case\"undefined\":return 27;default:throw(0,f.unreachable)()}}(t))},e.writeRaw=function(e,t){this.inner.writeRaw(e,t)},e.get=function(e){var t=this.inner.getRaw(e);return t<0?this.js[~t]:function(e){switch(e){case 3:return!1;case 11:return!0;case 19:return null;case 27:return;default:return function(e){switch(7&e){case 0:return e>>3;case 4:return-(e>>3);default:throw(0,f.unreachable)()}}(e)}}(t)},e.reset=function(){this.inner.reset(),this.js.length=0},(0,s.createClass)(r,[{key:\"length\",get:function(){return this.inner.len()}}]),r}(),Ge=function(){function e(e,t,n){this.stack=e,this.fp=t,this.sp=n}e.empty=function(){return new this(new Ye,0,-1)},e.restore=function(e){for(var t=new Ye,n=0;n<e.length;n++)t.write(n,e[n]);return new this(t,0,e.length-1)};var t=e.prototype;return t.push=function(e){this.stack.write(++this.sp,e)},t.pushEncodedImmediate=function(e){this.stack.writeRaw(++this.sp,e)},t.pushNull=function(){this.stack.write(++this.sp,null)},t.dup=function(e){var t=0<arguments.length&&void 0!==e?e:this.sp;this.stack.copy(t,++this.sp)},t.copy=function(e,t){this.stack.copy(e,t)},t.pop=function(e){var t=0<arguments.length&&void 0!==e?e:1,n=this.stack.get(this.sp);return this.sp-=t,n},t.popSmi=function(){return this.stack.get(this.sp--)},t.peek=function(e){var t=0<arguments.length&&void 0!==e?e:0;return this.stack.get(this.sp-t)},t.get=function(e,t){var n=1<arguments.length&&void 0!==t?t:this.fp;return this.stack.get(n+e)},t.set=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:this.fp;this.stack.write(r+t,e)},t.slice=function(e,t){return this.stack.slice(e,t)},t.sliceArray=function(e,t){return this.stack.sliceInner(e,t)},t.capture=function(e){var t=this.sp+1,n=t-e;return this.stack.sliceInner(n,t)},t.reset=function(){this.stack.reset()},t.toArray=function(){return this.stack.sliceInner(this.fp,this.sp+1)},e}();var Qe=function(){function e(e,t,n){var r=n.alwaysRevalidate,i=void 0!==r&&r;this.frameStack=new f.Stack,this.env=e,this.constants=t.constants,this.dom=e.getDOM(),this.alwaysRevalidate=i}var t=e.prototype;return t.execute=function(e,t){var n=this.frameStack;for(this.try(e,t);!n.isEmpty();){var r=this.frame.nextStatement();null!==r?r.evaluate(this):this.frameStack.pop()}},t.goto=function(e){this.frame.goto(e)},t.try=function(e,t){this.frameStack.push(new Ze(e,t))},t.throw=function(){this.frame.handleException(),this.frameStack.pop()},(0,s.createClass)(e,[{key:\"frame\",get:function(){return this.frameStack.current}}]),e}();e.UpdatingVM=Qe;var Ke=function(a){function e(e,t,n,r,i){var o=a.call(this)||this;return o.start=e,o.state=t,o.runtime=n,o.type=\"block\",o.next=null,o.prev=null,o.children=i,o.bounds=r,o}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.parentElement=function(){return this.bounds.parentElement()},t.firstNode=function(){return this.bounds.firstNode()},t.lastNode=function(){return this.bounds.lastNode()},t.evaluate=function(e){e.try(this.children,null)},t.destroy=function(){this.bounds.destroy()},t.didDestroy=function(){this.runtime.env.didDestroy(this.bounds)},e}(t),$e=function(a){function e(e,t,n,r,i){var o=a.call(this,e,t,n,r,i)||this;return o.type=\"try\",o.tag=o._tag=d.UpdatableTag.create(d.CONSTANT_TAG),o}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.didInitializeChildren=function(){this._tag.inner.update((0,d.combineSlice)(this.children))},t.evaluate=function(e){e.try(this.children,this)},t.handleException=function(){var t=this,n=this.state,e=this.bounds,r=this.children,i=this.start,o=this.prev,a=this.next,s=this.runtime;r.clear();var u=Ue.resume(s.env,e,e.reset(s.env)),l=ft.resume(n,s,u),c=new f.LinkedList;l.execute(i,function(e){e.stack=Ge.restore(n.stack),e.updatingOpcodeStack.push(c),e.updateWith(t),e.updatingOpcodeStack.push(r)}),this.prev=o,this.next=a},e}(Ke),Xe=function(){function e(e,t){this.opcode=e,this.marker=t,this.didInsert=!1,this.didDelete=!1,this.map=e.map,this.updating=e.children}var t=e.prototype;return t.insert=function(t,n,r,e){var i=this.map,o=this.opcode,a=this.updating,s=null,u=null,s=\"string\"==typeof e?(u=i[e]).bounds.firstNode():this.marker,l=o.vmForInsertion(s),c=null,h=o.start;l.execute(h,function(e){i[t]=c=e.iterate(r,n),e.updatingOpcodeStack.push(new f.LinkedList),e.updateWith(c),e.updatingOpcodeStack.push(c.children)}),a.insertBefore(c,u),this.didInsert=!0},t.retain=function(){},t.move=function(e,t,n,r){var i=this.map,o=this.updating,a=i[e],s=i[r]||null;X(a,\"string\"==typeof r?s.firstNode():this.marker),o.remove(a),o.insertBefore(a,s)},t.delete=function(e){var t=this.map,n=t[e];n.didDestroy(),J(n),this.updating.remove(n),delete t[e],this.didDelete=!0},t.done=function(){this.opcode.didInitializeChildren(this.didInsert||this.didDelete)},e}(),Je=function(u){function e(e,t,n,r,i,o){var a=u.call(this,e,t,n,r,i)||this;a.type=\"list-block\",a.map=(0,f.dict)(),a.lastIterated=d.INITIAL,a.artifacts=o;var s=a._tag=d.UpdatableTag.create(d.CONSTANT_TAG);return a.tag=(0,d.combine)([o.tag,s]),a}(0,s.inheritsLoose)(e,u);var t=e.prototype;return t.didInitializeChildren=function(e){var t=!(0<arguments.length&&void 0!==e)||e;this.lastIterated=this.artifacts.tag.value(),t&&this._tag.inner.update((0,d.combineSlice)(this.children))},t.evaluate=function(e){var t,n,r,i,o=this.artifacts,a=this.lastIterated;o.tag.validate(a)||(t=this.bounds,r=(n=e.dom).createComment(\"\"),n.insertAfter(t.parentElement(),r,t.lastNode()),i=new Xe(this,r),new d.IteratorSynchronizer({target:i,artifacts:o}).sync(),this.parentElement().removeChild(r)),u.prototype.evaluate.call(this,e)},t.vmForInsertion=function(e){var t=this.bounds,n=this.state,r=this.runtime,i=Ue.forInitialRender(r.env,{element:t.parentElement(),nextSibling:e});return ft.resume(n,r,i)},e}(Ke),Ze=function(){function e(e,t){this.ops=e,this.exceptionHandler=t,this.current=e.head()}var t=e.prototype;return t.goto=function(e){this.current=e},t.nextStatement=function(){var e=this.current,t=this.ops;return e&&(this.current=t.nextNode(e)),e},t.handleException=function(){this.exceptionHandler&&this.exceptionHandler.handleException()},e}(),et=function(){function e(e,t,n,r){this.env=e,this.program=t,this.updating=n,this.bounds=r}var t=e.prototype;return t.rerender=function(e){var t=(0<arguments.length&&void 0!==e?e:{alwaysRevalidate:!1}).alwaysRevalidate,n=void 0!==t&&t,r=this.env,i=this.program,o=this.updating;new Qe(r,i,{alwaysRevalidate:n}).execute(o,this)},t.parentElement=function(){return this.bounds.parentElement()},t.firstNode=function(){return this.bounds.firstNode()},t.lastNode=function(){return this.bounds.lastNode()},t.handleException=function(){throw\"this should never happen\"},t.destroy=function(){this.bounds.destroy(),J(this.bounds)},e}();e.RenderResult=et;var tt=function(){function e(){this.stack=null,this.positional=new rt,this.named=new ot,this.blocks=new st}var t=e.prototype;return t.empty=function(e){var t=e.sp+1;return this.named.empty(e,t),this.positional.empty(e,t),this.blocks.empty(e,t),this},t.setup=function(e,t,n,r,i){this.stack=e;var o=this.named,a=t.length,s=e.sp-a+1;o.setup(e,s,a,t,i);var u=s-r;this.positional.setup(e,u,r);var l=this.blocks,c=n.length,h=u-3*c;l.setup(e,h,c,n)},t.at=function(e){return this.positional.at(e)},t.realloc=function(e){var t=this.stack;if(0<e&&null!==t){for(var n=this.positional,r=this.named,i=n.base+e,o=n.length+r.length-1;0<=o;o--)t.copy(o+n.base,o+i);n.base+=e,r.base+=e,t.sp+=e}},t.capture=function(){var e=0===this.positional.length?ct:this.positional.capture(),t=0===this.named.length?lt:this.named.capture();return new nt(this.tag,e,t,this.length)},t.clear=function(){var e=this.stack,t=this.length;0<t&&null!==e&&e.pop(t)},(0,s.createClass)(e,[{key:\"tag\",get:function(){return(0,d.combineTagged)([this.positional,this.named])}},{key:\"base\",get:function(){return this.blocks.base}},{key:\"length\",get:function(){return this.positional.length+this.named.length+3*this.blocks.length}}]),e}(),nt=function(){function e(e,t,n,r){this.tag=e,this.positional=t,this.named=n,this.length=r}return e.prototype.value=function(){return{named:this.named.value(),positional:this.positional.value()}},e}(),rt=function(){function e(){this.base=0,this.length=0,this.stack=null,this._tag=null,this._references=null}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._tag=d.CONSTANT_TAG,this._references=f.EMPTY_ARRAY},t.setup=function(e,t,n){this.stack=e,this.base=t,0===(this.length=n)?(this._tag=d.CONSTANT_TAG,this._references=f.EMPTY_ARRAY):(this._tag=null,this._references=null)},t.at=function(e){var t=this.base,n=this.length,r=this.stack;return e<0||n<=e?l:r.get(e,t)},t.capture=function(){return new it(this.tag,this.references)},t.prepend=function(e){var t=e.length;if(0<t){var n=this.base,r=this.length,i=this.stack;this.base=n-=t,this.length=r+t;for(var o=0;o<t;o++)i.set(e.at(o),o,n);this._tag=null,this._references=null}},(0,s.createClass)(e,[{key:\"tag\",get:function(){return this._tag||(this._tag=(0,d.combineTagged)(this.references))}},{key:\"references\",get:function(){var e,t,n,r=this._references;return r||(e=this.stack,t=this.base,n=this.length,r=this._references=e.sliceArray(t,t+n)),r}}]),e}(),it=function(){function e(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:t.length;this.tag=e,this.references=t,this.length=n}e.empty=function(){return new e(d.CONSTANT_TAG,f.EMPTY_ARRAY,0)};var t=e.prototype;return t.at=function(e){return this.references[e]},t.value=function(){return this.references.map(this.valueOf)},t.get=function(e){var t=this.references,n=this.length;if(\"length\"===e)return i.create(n);var r=parseInt(e,10);return r<0||n<=r?l:t[r]},t.valueOf=function(e){return e.value()},e}(),ot=function(){function e(){this.base=0,this.length=0,this._references=null,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._references=f.EMPTY_ARRAY,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY},t.setup=function(e,t,n,r,i){this.stack=e,this.base=t,0===(this.length=n)?(this._references=f.EMPTY_ARRAY,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY):(this._references=null,i?(this._names=r,this._atNames=null):(this._names=null,this._atNames=r))},t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e,t){var n=!(1<arguments.length&&void 0!==t)||t,r=this.base,i=this.stack,o=(n?this.names:this.atNames).indexOf(e);return-1===o?l:i.get(o,r)},t.capture=function(){return new at(this.tag,this.names,this.references)},t.merge=function(e){var t=e.length;if(0<t){var n=this.names,r=this.length,i=this.stack,o=e.names;Object.isFrozen(n)&&0===n.length&&(n=[]);for(var a=0;a<t;a++){var s=o[a];-1===n.indexOf(s)&&(r=n.push(s),i.push(e.references[a]))}this.length=r,this._references=null,this._names=n,this._atNames=null}},t.toSyntheticName=function(e){return e.slice(1)},t.toAtName=function(e){return\"@\"+e},(0,s.createClass)(e,[{key:\"tag\",get:function(){return(0,d.combineTagged)(this.references)}},{key:\"names\",get:function(){return this._names||(this._names=this._atNames.map(this.toSyntheticName))}},{key:\"atNames\",get:function(){return this._atNames||(this._atNames=this._names.map(this.toAtName))}},{key:\"references\",get:function(){var e,t,n,r=this._references;return r||(e=this.base,t=this.length,n=this.stack,r=this._references=n.sliceArray(e,e+t)),r}}]),e}(),at=function(){function e(e,t,n){this.tag=e,this.names=t,this.references=n,this.length=t.length,this._map=null}var t=e.prototype;return t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.names,n=this.references,r=t.indexOf(e);return-1===r?l:n[r]},t.value=function(){for(var e=this.names,t=this.references,n=(0,f.dict)(),r=0;r<e.length;r++){n[e[r]]=t[r].value()}return n},(0,s.createClass)(e,[{key:\"map\",get:function(){if(!(n=this._map))for(var e=this.names,t=this.references,n=this._map=(0,f.dict)(),r=0;r<e.length;r++){n[e[r]]=t[r]}return n}}]),e}(),st=function(){function e(){this.internalValues=null,this.internalTag=null,this.names=f.EMPTY_ARRAY,this.length=0,this.base=0}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.names=f.EMPTY_ARRAY,this.base=t,this.length=0,this.internalTag=d.CONSTANT_TAG,this.internalValues=f.EMPTY_ARRAY},t.setup=function(e,t,n,r){this.stack=e,this.names=r,this.base=t,0===(this.length=n)?(this.internalTag=d.CONSTANT_TAG,this.internalValues=f.EMPTY_ARRAY):(this.internalTag=null,this.internalValues=null)},t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.base,n=this.stack,r=this.names,i=r.indexOf(e);if(-1===r.indexOf(e))return null;var o=n.get(3*i,t),a=n.get(3*i+1,t),s=n.get(3*i+2,t);return null===s?null:[s,a,o]},t.capture=function(){return new ut(this.names,this.values)},(0,s.createClass)(e,[{key:\"values\",get:function(){var e,t,n,r=this.internalValues;return r||(e=this.base,t=this.length,n=this.stack,r=this.internalValues=n.sliceArray(e,e+3*t)),r}}]),e}(),ut=function(){function e(e,t){this.names=e,this.values=t,this.length=e.length}var t=e.prototype;return t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.names.indexOf(e);return-1===t?null:[this.values[3*t+2],this.values[3*t+1],this.values[3*t]]},e}(),lt=new at(d.CONSTANT_TAG,f.EMPTY_ARRAY,f.EMPTY_ARRAY),ct=new it(d.CONSTANT_TAG,f.EMPTY_ARRAY),ht=new nt(d.CONSTANT_TAG,ct,lt,0);e.EMPTY_ARGS=ht;var ft=function(){function u(e,t,n,r){var i=this;this.runtime=e,this.elementStack=r,this.dynamicScopeStack=new f.Stack,this.scopeStack=new f.Stack,this.updatingOpcodeStack=new f.Stack,this.cacheGroups=new f.Stack,this.listBlockStack=new f.Stack,this.s0=null,this.s1=null,this.t0=null,this.t1=null,this.v0=null,this.heap=this.program.heap,this.constants=this.program.constants,this.elementStack=r,this.scopeStack.push(t),this.dynamicScopeStack.push(n),this.args=new tt,this.inner=new Ie(Ge.empty(),this.heap,e.program,{debugBefore:function(e){return o.debugBefore(i,e,e.type)},debugAfter:function(e,t){o.debugAfter(i,e,e.type,t)}})}var e=u.prototype;return e.fetch=function(e){this.stack.push(this[p.Register[e]])},e.load=function(e){this[p.Register[e]]=this.stack.pop()},e.fetchValue=function(e){return this[p.Register[e]]},e.loadValue=function(e,t){this[p.Register[e]]=t},e.pushFrame=function(){this.inner.pushFrame()},e.popFrame=function(){this.inner.popFrame()},e.goto=function(e){this.inner.goto(e)},e.call=function(e){this.inner.call(e)},e.returnTo=function(e){this.inner.returnTo(e)},e.return=function(){this.inner.return()},u.initial=function(e,t,n,r,i,o){var a=e.heap.scopesizeof(o),s=new u({program:e,env:t},Le.root(n,a),r,i);return s.pc=s.heap.getaddr(o),s.updatingOpcodeStack.push(new f.LinkedList),s},u.empty=function(e,t,n,r){var i={get:function(){return l},set:function(){return l},child:function(){return i}},o=new u({program:e,env:t},Le.root(l,0),i,n);return o.updatingOpcodeStack.push(new f.LinkedList),o.pc=o.heap.getaddr(r),o},u.resume=function(e,t,n){return new u(t,e.scope,e.dynamicScope,n)},e.capture=function(e){return{dynamicScope:this.dynamicScope(),scope:this.scope(),stack:this.stack.capture(e)}},e.beginCacheGroup=function(){this.cacheGroups.push(this.updating().tail())},e.commitCacheGroup=function(){var e=new N(\"END\"),t=this.updating(),n=this.cacheGroups.pop(),r=n?t.nextNode(n):t.head(),i=t.tail(),o=(0,d.combineSlice)(new f.ListSlice(r,i)),a=new O(o,e);t.insertBefore(a,r),t.append(new S(a)),t.append(e)},e.enter=function(e){var t=new f.LinkedList,n=this.capture(e),r=this.elements().pushUpdatableBlock(),i=new $e(this.heap.gethandle(this.pc),n,this.runtime,r,t);this.didEnter(i)},e.iterate=function(e,t){var n=this.stack;n.push(t),n.push(e);var r=this.capture(2),i=this.elements().pushUpdatableBlock();return new $e(this.heap.gethandle(this.pc),r,this.runtime,i,new f.LinkedList)},e.enterItem=function(e,t){this.listBlock().map[e]=t,this.didEnter(t)},e.enterList=function(e){var t=new f.LinkedList,n=this.capture(0),r=this.elements().pushBlockList(t),i=this.stack.peek().artifacts,o=this.pc+e-this.currentOpSize,a=this.heap.gethandle(o),s=new Je(a,n,this.runtime,r,t,i);this.listBlockStack.push(s),this.didEnter(s)},e.didEnter=function(e){this.updateWith(e),this.updatingOpcodeStack.push(e.children)},e.exit=function(){this.elements().popBlock(),this.updatingOpcodeStack.pop(),this.updating().tail().didInitializeChildren()},e.exitList=function(){this.exit(),this.listBlockStack.pop()},e.updateWith=function(e){this.updating().append(e)},e.listBlock=function(){return this.listBlockStack.current},e.updating=function(){return this.updatingOpcodeStack.current},e.elements=function(){return this.elementStack},e.scope=function(){return this.scopeStack.current},e.dynamicScope=function(){return this.dynamicScopeStack.current},e.pushChildScope=function(){this.scopeStack.push(this.scope().child())},e.pushDynamicScope=function(){var e=this.dynamicScope().child();return this.dynamicScopeStack.push(e),e},e.pushRootScope=function(e,t){var n=Le.sized(e);return t&&n.bindCallerScope(this.scope()),this.scopeStack.push(n),n},e.pushScope=function(e){this.scopeStack.push(e)},e.popScope=function(){this.scopeStack.pop()},e.popDynamicScope=function(){this.dynamicScopeStack.pop()},e.newDestroyable=function(e){this.elements().didAddDestroyable(e)},e.getSelf=function(){return this.scope().getSelf()},e.referenceForSymbol=function(e){return this.scope().getSymbol(e)},e.execute=function(e,t){var n;for(this.pc=this.heap.getaddr(e),t&&t(this);!(n=this.next()).done;);return n.value},e.next=function(){var e=this.env,t=this.program,n=this.updatingOpcodeStack,r=this.elementStack,i=this.inner.nextStatement(),o=null!==i?(this.inner.evaluateOuter(i,this),{done:!1,value:null}):(this.stack.reset(),{done:!0,value:new et(e,t,n.pop(),r.popBlock())});return o},e.bindDynamicScope=function(e){for(var t=this.dynamicScope(),n=e.length-1;0<=n;n--){var r=this.constants.getString(e[n]);t.set(r,this.stack.pop())}},(0,s.createClass)(u,[{key:\"stack\",get:function(){return this.inner.stack},set:function(e){this.inner.stack=e}},{key:\"currentOpSize\",set:function(e){this.inner.currentOpSize=e},get:function(){return this.inner.currentOpSize}},{key:\"pc\",get:function(){return this.inner.pc},set:function(e){this.inner.pc=e}},{key:\"ra\",get:function(){return this.inner.ra},set:function(e){this.inner.ra=e}},{key:\"fp\",get:function(){return this.stack.fp},set:function(e){this.stack.fp=e}},{key:\"sp\",get:function(){return this.stack.sp},set:function(e){this.stack.sp=e}},{key:\"program\",get:function(){return this.runtime.program}},{key:\"env\",get:function(){return this.runtime.env}}]),u}();e.LowLevelVM=ft;var pt=function(){function e(e){this.vm=e}return e.prototype.next=function(){return this.vm.next()},e}();var dt=function(){function e(e,t){this.scope=e,this.nameRef=t;var n=this.varTag=d.UpdatableTag.create(d.CONSTANT_TAG);this.tag=(0,d.combine)([t.tag,n])}var t=e.prototype;return t.value=function(){return this.getVar().value()},t.get=function(e){return this.getVar().get(e)},t.getVar=function(){var e=String(this.nameRef.value()),t=this.scope.get(e);return this.varTag.inner.update(t.tag),t},e}();e.DEFAULT_CAPABILITIES={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0};e.MINIMAL_CAPABILITIES={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,dynamicScope:!1,createCaller:!1,updateHook:!1,createInstance:!1};var mt=\"%+b:0%\";function vt(e){return e.nodeValue===mt}e.SERIALIZATION_FIRST_NODE_STRING=mt;var gt=function(i){function e(e,t,n){var r=i.call(this,e,t)||this;return r.startingBlockDepth=n,r.candidate=null,r.injectedOmittedNode=!1,r.openBlockDepth=n-1,r}return(0,s.inheritsLoose)(e,i),e}(Q),yt=function(a){function e(e,t,n){var r=a.call(this,e,t,n)||this;if(r.unmatchedAttributes=null,r.blockDepth=0,n)throw new Error(\"Rehydration with nextSibling not supported\");for(var i=r.currentCursor.element.firstChild;!(null===i||bt(i)&&vt(i));)i=i.nextSibling;return r.candidate=i,r}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.pushElement=function(e,t){var n=this.blockDepth,r=new gt(e,t,void 0===n?0:n),i=this.currentCursor;i&&i.candidate&&(r.candidate=e.firstChild,i.candidate=e.nextSibling),this.cursorStack.push(r)},t.clearMismatch=function(e){var t=e,n=this.currentCursor;if(null!==n){var r=n.openBlockDepth;if(r>=n.startingBlockDepth)for(;t&&(!bt(t)||_t(t)!==r);)t=this.remove(t);else for(;null!==t;)t=this.remove(t);n.nextSibling=t,n.candidate=null}},t.__openBlock=function(){var e,t,n,r=this.currentCursor;null!==r&&(e=this.blockDepth,this.blockDepth++,null!==(t=r.candidate)&&(bt(t)&&((n=t.nodeValue.match(/^%\\+b:(\\d+)%$/))&&n[1]?Number(n[1]):null)===e?(r.candidate=this.remove(t),r.openBlockDepth=e):this.clearMismatch(t)))},t.__closeBlock=function(){var e,t,n=this.currentCursor;null!==n&&(e=n.openBlockDepth,this.blockDepth--,null!==(t=n.candidate)&&(bt(t)&&_t(t)===e?(n.candidate=this.remove(t),n.openBlockDepth--):this.clearMismatch(t)),n.openBlockDepth===this.blockDepth&&(n.candidate=this.remove(n.nextSibling),n.openBlockDepth--))},t.__appendNode=function(e){var t=this.candidate;return t||a.prototype.__appendNode.call(this,e)},t.__appendHTML=function(e){var t=this.markerBounds();if(t){var n=t.firstNode(),r=t.lastNode(),i=new K(this.element,n.nextSibling,r.previousSibling),o=this.remove(n);return this.remove(r),null!==o&&Tt(o)&&(this.candidate=this.remove(o),null!==this.candidate&&this.clearMismatch(this.candidate)),i}return a.prototype.__appendHTML.call(this,e)},t.remove=function(e){var t=e.parentNode,n=e.nextSibling;return t.removeChild(e),n},t.markerBounds=function(){var e=this.candidate;if(e&&Et(e)){for(var t=e,n=t.nextSibling;n&&!Et(n);)n=n.nextSibling;return new K(this.element,t,n)}return null},t.__appendText=function(e){var t,n=this.candidate;if(n){if(3===n.nodeType)return n.nodeValue!==e&&(n.nodeValue=e),this.candidate=n.nextSibling,n;if(n&&(8===(t=n).nodeType&&\"%|%\"===t.nodeValue||Tt(n)))return this.candidate=n.nextSibling,this.remove(n),this.__appendText(e);if(Tt(n)){var r=this.remove(n);this.candidate=r;var i=this.dom.createTextNode(e);return this.dom.insertBefore(this.element,i,r),i}return this.clearMismatch(n),a.prototype.__appendText.call(this,e)}return a.prototype.__appendText.call(this,e)},t.__appendComment=function(e){var t=this.candidate;return t&&bt(t)?(t.nodeValue!==e&&(t.nodeValue=e),this.candidate=t.nextSibling,t):(t&&this.clearMismatch(t),a.prototype.__appendComment.call(this,e))},t.__openElement=function(e){var t,n,r=this.candidate;if(r&&wt(r)&&(n=e,(t=r).namespaceURI!==te?t.tagName===n.toUpperCase():t.tagName===n))return this.unmatchedAttributes=[].slice.call(r.attributes),r;if(r){if(wt(r)&&\"TBODY\"===r.tagName)return this.pushElement(r,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(e);this.clearMismatch(r)}return a.prototype.__openElement.call(this,e)},t.__setAttribute=function(e,t,n){var r=this.unmatchedAttributes;if(r){var i=Ct(r,e);if(i)return i.value!==t&&(i.value=t),void r.splice(r.indexOf(i),1)}return a.prototype.__setAttribute.call(this,e,t,n)},t.__setProperty=function(e,t){var n=this.unmatchedAttributes;if(n){var r=Ct(n,e);if(r)return r.value!==t&&(r.value=t),void n.splice(n.indexOf(r),1)}return a.prototype.__setProperty.call(this,e,t)},t.__flushElement=function(e,t){var n=this.unmatchedAttributes;if(n){for(var r=0;r<n.length;r++)this.constructing.removeAttribute(n[r].name);this.unmatchedAttributes=null}else a.prototype.__flushElement.call(this,e,t)},t.willCloseElement=function(){var e=this.candidate,t=this.currentCursor;null!==e&&this.clearMismatch(e),t&&t.injectedOmittedNode&&this.popElement(),a.prototype.willCloseElement.call(this)},t.getMarker=function(e,t){var n=e.querySelector('script[glmr=\"'+t+'\"]');if(n)return n;throw new Error(\"Cannot find serialized cursor for `in-element`\")},t.__pushRemoteElement=function(e,t,n){var r,i,o,a=2<arguments.length&&void 0!==n?n:null,s=this.getMarker(e,t);s.parentNode===e&&(i=(r=this.currentCursor).candidate,this.pushElement(e,a),r.candidate=i,this.candidate=this.remove(s),o=new qe(e),this.pushBlockTracker(o,!0))},t.didAppendBounds=function(e){var t;return a.prototype.didAppendBounds.call(this,e),this.candidate&&(t=e.lastNode(),this.candidate=t&&t.nextSibling),e},(0,s.createClass)(e,[{key:\"currentCursor\",get:function(){return this.cursorStack.current}},{key:\"candidate\",get:function(){return this.currentCursor?this.currentCursor.candidate:null},set:function(e){this.currentCursor.candidate=e}}]),e}(Ue);function bt(e){return 8===e.nodeType}function _t(e){var t=e.nodeValue.match(/^%\\-b:(\\d+)%$/);return t&&t[1]?Number(t[1]):null}function wt(e){return 1===e.nodeType}function Et(e){return 8===e.nodeType&&\"%glmr%\"===e.nodeValue}function Tt(e){return 8===e.nodeType&&\"% %\"===e.nodeValue}function Ct(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.name===t)return r}}e.RehydrateBuilder=yt}),e(\"@glimmer/util\",[\"exports\",\"ember-babel\"],function(e,n){\"use strict\";e.assert=function(e,t){if(!e)throw new Error(t||\"assertion failure\")},e.assign=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(null!==n&&\"object\"==typeof n)for(var r=a(n),i=0;i<r.length;i++){var o=r[i];e[o]=n[o]}}return e},e.fillNulls=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=null;return t},e.ensureGuid=i,e.initializeGuid=r,e.dict=o,e.unwrap=function(e){if(null==e)throw new Error(\"Expected value to be present\");return e},e.expect=function(e,t){if(null==e)throw new Error(t);return e},e.unreachable=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:\"unreachable\";return new Error(e)},e.EMPTY_ARRAY=e.ListSlice=e.ListNode=e.LinkedList=e.EMPTY_SLICE=e.DictSet=e.Stack=void 0;var a=Object.keys;var t=0;function r(e){return e._guid=++t}function i(e){return e._guid||r(e)}function o(){return Object.create(null)}var s=function(){function e(){this.dict=o()}var t=e.prototype;return t.add=function(e){return\"string\"==typeof e?this.dict[e]=e:this.dict[i(e)]=e,this},t.delete=function(e){\"string\"==typeof e?delete this.dict[e]:e._guid&&delete this.dict[e._guid]},e}();e.DictSet=s;var u=function(){function e(){this.stack=[],this.current=null}var t=e.prototype;return t.push=function(e){this.current=e,this.stack.push(e)},t.pop=function(){var e=this.stack.pop(),t=this.stack.length;return this.current=0===t?null:this.stack[t-1],void 0===e?null:e},t.isEmpty=function(){return 0===this.stack.length},(0,n.createClass)(e,[{key:\"size\",get:function(){return this.stack.length}}]),e}();e.Stack=u;e.ListNode=function(e){this.next=null,this.prev=null,this.value=e};var l=function(){function e(){this.clear()}var t=e.prototype;return t.head=function(){return this._head},t.tail=function(){return this._tail},t.clear=function(){this._head=this._tail=null},t.toArray=function(){var t=[];return this.forEachNode(function(e){return t.push(e)}),t},t.nextNode=function(e){return e.next},t.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=t.next},t.insertBefore=function(e,t){var n=1<arguments.length&&void 0!==t?t:null;return null===n?this.append(e):(n.prev?n.prev.next=e:this._head=e,e.prev=n.prev,(e.next=n).prev=e)},t.append=function(e){var t=this._tail;return t?((t.next=e).prev=t,e.next=null):this._head=e,this._tail=e},t.remove=function(e){return e.prev?e.prev.next=e.next:this._head=e.next,e.next?e.next.prev=e.prev:this._tail=e.prev,e},e}();e.LinkedList=l;var c=function(){function e(e,t){this._head=e,this._tail=t}var t=e.prototype;return t.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=this.nextNode(t)},t.head=function(){return this._head},t.tail=function(){return this._tail},t.toArray=function(){var t=[];return this.forEachNode(function(e){return t.push(e)}),t},t.nextNode=function(e){return e===this._tail?null:e.next},e}(),h=new(e.ListSlice=c)(null,null);e.EMPTY_SLICE=h;var f=Object.freeze([]);e.EMPTY_ARRAY=f}),e(\"@glimmer/vm\",[\"exports\"],function(e){\"use strict\";var t,n;e.Register=void 0,e.Register=t,(n=t||(e.Register=t={}))[n.pc=0]=\"pc\",n[n.ra=1]=\"ra\",n[n.fp=2]=\"fp\",n[n.sp=3]=\"sp\",n[n.s0=4]=\"s0\",n[n.s1=5]=\"s1\",n[n.t0=6]=\"t0\",n[n.t1=7]=\"t1\",n[n.v0=8]=\"v0\"}),e(\"@glimmer/wire-format\",[\"exports\"],function(e){\"use strict\";var t,n;function r(t){return function(e){return Array.isArray(e)&&e[0]===t}}e.is=r,e.isAttribute=function(e){return e[0]===t.StaticAttr||e[0]===t.DynamicAttr||e[0]===t.ComponentAttr||e[0]===t.TrustingAttr||e[0]===t.TrustingComponentAttr||e[0]===t.AttrSplat||e[0]===t.Modifier},e.isArgument=function(e){return e[0]===t.StaticArg||e[0]===t.DynamicArg},e.isMaybeLocal=e.isGet=e.isFlushElement=e.Ops=void 0,e.Ops=t,(n=t||(e.Ops=t={}))[n.Text=0]=\"Text\",n[n.Append=1]=\"Append\",n[n.Comment=2]=\"Comment\",n[n.Modifier=3]=\"Modifier\",n[n.Block=4]=\"Block\",n[n.Component=5]=\"Component\",n[n.DynamicComponent=6]=\"DynamicComponent\",n[n.OpenElement=7]=\"OpenElement\",n[n.FlushElement=8]=\"FlushElement\",n[n.CloseElement=9]=\"CloseElement\",n[n.StaticAttr=10]=\"StaticAttr\",n[n.DynamicAttr=11]=\"DynamicAttr\",n[n.ComponentAttr=12]=\"ComponentAttr\",n[n.AttrSplat=13]=\"AttrSplat\",n[n.Yield=14]=\"Yield\",n[n.Partial=15]=\"Partial\",n[n.DynamicArg=16]=\"DynamicArg\",n[n.StaticArg=17]=\"StaticArg\",n[n.TrustingAttr=18]=\"TrustingAttr\",n[n.TrustingComponentAttr=19]=\"TrustingComponentAttr\",n[n.Debugger=20]=\"Debugger\",n[n.ClientSideStatement=21]=\"ClientSideStatement\",n[n.Unknown=22]=\"Unknown\",n[n.Get=23]=\"Get\",n[n.MaybeLocal=24]=\"MaybeLocal\",n[n.HasBlock=25]=\"HasBlock\",n[n.HasBlockParams=26]=\"HasBlockParams\",n[n.Undefined=27]=\"Undefined\",n[n.Helper=28]=\"Helper\",n[n.Concat=29]=\"Concat\",n[n.ClientSideExpression=30]=\"ClientSideExpression\";var i=r(t.FlushElement);e.isFlushElement=i;var o=r(t.Get);e.isGet=o;var a=r(t.MaybeLocal);e.isMaybeLocal=a}),e(\"backburner\",[\"exports\",\"ember-babel\"],function(e,n){\"use strict\";e.buildPlatform=a,e.default=void 0;var o=setTimeout,r=function(){};function i(e){if(\"function\"==typeof Promise){var t=Promise.resolve();return function(){return t.then(e)}}if(\"function\"!=typeof MutationObserver)return function(){return o(e,0)};var n=0,r=new MutationObserver(e),i=document.createTextNode(\"\");return r.observe(i,{characterData:!0}),function(){return n=++n%2,i.data=\"\"+n,n}}function a(e){var t=r;return{setTimeout:function(e,t){return setTimeout(e,t)},clearTimeout:function(e){return clearTimeout(e)},now:function(){return Date.now()},next:i(e),clearNext:t}}var s=/\\d+/;function u(e){var t=typeof e;return\"number\"==t&&e==e||\"string\"==t&&s.test(e)}function l(e){return e.onError||e.onErrorTarget&&e.onErrorTarget[e.onErrorMethod]}function c(e,t,n){for(var r=-1,i=0,o=n.length;i<o;i+=4)if(n[i]===e&&n[i+1]===t){r=i;break}return r}function d(e,t,n){for(var r=-1,i=2,o=n.length;i<o;i+=6)if(n[i]===e&&n[i+1]===t){r=i-2;break}return r}function h(e,t,n){for(var r=2<arguments.length&&void 0!==n?n:0,i=[],o=0;o<e.length;o+=t){var a=e[o+3+r],s={target:e[o+0+r],method:e[o+1+r],args:e[o+2+r],stack:void 0!==a&&\"stack\"in a?a.stack:\"\"};i.push(s)}return i}function m(e,t){for(var n,r,i=0,o=t.length-6;i<o;)e>=t[n=i+(r=(o-i)/6)-r%6]?i=6+n:o=n;return e>=t[i]?i+6:i}var f=function(){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=e,this.options=t,this.globalOptions=n}var t=e.prototype;return t.stackFor=function(e){if(e<this._queue.length){var t=this._queue[3*e+4];return t?t.stack:null}},t.flush=function(e){var t,n=this.options,r=n.before,i=n.after;this.targetQueues.clear(),0===this._queueBeingFlushed.length&&(this._queueBeingFlushed=this._queue,this._queue=[]),void 0!==r&&r();var o=this._queueBeingFlushed;if(0<o.length)for(var a=l(this.globalOptions),s=a?this.invokeWithOnError:this.invoke,u=this.index;u<o.length;u+=4)if(this.index+=4,null!==(t=o[u+1])&&s(o[u],t,o[u+2],a,o[u+3]),this.index!==this._queueBeingFlushed.length&&this.globalOptions.mustYield&&this.globalOptions.mustYield())return 1;void 0!==i&&i(),this._queueBeingFlushed.length=0,this.index=0,!1!==e&&0<this._queue.length&&this.flush(!0)},t.hasWork=function(){return 0<this._queueBeingFlushed.length||0<this._queue.length},t.cancel=function(e){var t=e.target,n=e.method,r=this._queue,i=this.targetQueues.get(t);void 0!==i&&i.delete(n);var o=c(t,n,r);return-1<o?(r.splice(o,4),!0):-1<(o=c(t,n,r=this._queueBeingFlushed))&&!(r[o+1]=null)},t.push=function(e,t,n,r){return this._queue.push(e,t,n,r),{queue:this,target:e,method:t}},t.pushUnique=function(e,t,n,r){var i=this.targetQueues.get(e);void 0===i&&(i=new Map,this.targetQueues.set(e,i));var o,a,s=i.get(t);return void 0===s?(o=this._queue.push(e,t,n,r)-4,i.set(t,o)):((a=this._queue)[s+2]=n,a[s+3]=r),{queue:this,target:e,method:t}},t._getDebugInfo=function(e){if(e)return h(this._queue,4)},t.invoke=function(e,t,n){void 0===n?t.call(e):t.apply(e,n)},t.invokeWithOnError=function(e,t,n,r,i){try{void 0===n?t.call(e):t.apply(e,n)}catch(e){r(e,i)}},e}(),p=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],n=1<arguments.length?arguments[1]:void 0;this.queues={},this.queueNameIndex=0,(this.queueNames=e).reduce(function(e,t){return e[t]=new f(t,n[t],n),e},this.queues)}var t=e.prototype;return t.schedule=function(e,t,n,r,i,o){var a=this.queues[e];if(void 0===a)throw new Error(\"You attempted to schedule an action in a queue (\"+e+\") that doesn't exist\");if(null==n)throw new Error(\"You attempted to schedule an action in a queue (\"+e+\") for a method that doesn't exist\");return this.queueNameIndex=0,i?a.pushUnique(t,n,r,o):a.push(t,n,r,o)},t.flush=function(e){for(var t,n,r=0<arguments.length&&void 0!==e&&e,i=this.queueNames.length;this.queueNameIndex<i;)if(n=this.queueNames[this.queueNameIndex],!1===(t=this.queues[n]).hasWork()){if(this.queueNameIndex++,r&&this.queueNameIndex<i)return 1}else if(1===t.flush(!1))return 1},t._getDebugInfo=function(e){if(e){for(var t,n,r={},i=this.queueNames.length,o=0;o<i;)n=this.queueNames[o],t=this.queues[n],r[n]=t._getDebugInfo(e),o++;return r}},e}();function v(e){for(var t=e(),n=t.next();!1===n.done;)n.value(),n=t.next()}function g(){}var y=Object.freeze([]);function b(){var e,t,n=arguments.length;if(0!==n)if(1===n)t=null,e=arguments[0];else{var r=2,i=arguments[0],o=arguments[1],a=typeof o;if(\"function\"==a?(t=i,e=o):null!==i&&\"string\"==a&&o in i?e=(t=i)[o]:\"function\"==typeof i&&(r=1,t=null,e=i),r<n)for(var s=n-r,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l+r]}return[t,e,u]}function _(){var e,t,n,r,i,o;return 2===arguments.length?(i=arguments[0],t=arguments[1],r=null):(r=(n=b.apply(void 0,arguments))[0],i=n[1],void 0===(o=n[2])?t=0:u(t=o.pop())||(e=!0===t,t=o.pop())),[r,i,o,t=parseInt(t,10),e]}var w=0,E=0,T=0,C=0,R=0,k=0,x=0,A=0,O=0,S=0,N=0,P=0,L=0,M=0,j=0,D=0,I=0,F=0,B=0,U=0,z=0,t=function(){function e(e,t){var n=this;this.DEBUG=!1,this.currentInstance=null,this.instanceStack=[],this._eventCallbacks={end:[],begin:[]},this._timerTimeoutId=null,this._timers=[],this._autorun=!1,this._autorunStack=null,this.queueNames=e,this.options=t||{},\"string\"==typeof this.options.defaultQueue?this._defaultQueue=this.options.defaultQueue:this._defaultQueue=this.queueNames[0],this._onBegin=this.options.onBegin||g,this._onEnd=this.options.onEnd||g,this._boundRunExpiredTimers=this._runExpiredTimers.bind(this),this._boundAutorunEnd=function(){B++,!1!==n._autorun&&(n._autorun=!1,n._autorunStack=null,n._end(!0))};var r=this.options._buildPlatform||a;this._platform=r(this._boundAutorunEnd)}var t=e.prototype;return t.begin=function(){E++;var e,t=this.options,n=this.currentInstance;return!1!==this._autorun?(e=n,this._cancelAutorun()):(null!==n&&(z++,this.instanceStack.push(n)),U++,e=this.currentInstance=new p(this.queueNames,t),C++,this._trigger(\"begin\",e,n)),this._onBegin(e,n),e},t.end=function(){T++,this._end(!1)},t.on=function(e,t){if(\"function\"!=typeof t)throw new TypeError(\"Callback must be a function\");var n=this._eventCallbacks[e];if(void 0===n)throw new TypeError(\"Cannot on() event \"+e+\" because it does not exist\");n.push(t)},t.off=function(e,t){var n=this._eventCallbacks[e];if(!e||void 0===n)throw new TypeError(\"Cannot off() event \"+e+\" because it does not exist\");var r=!1;if(t)for(var i=0;i<n.length;i++)n[i]===t&&(r=!0,n.splice(i,1),i--);if(!r)throw new TypeError(\"Cannot off() callback that does not exist\")},t.run=function(){R++;var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2];return this._run(t,n,r)},t.join=function(){k++;var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2];return this._join(t,n,r)},t.defer=function(e,t,n){x++;for(var r=arguments.length,i=new Array(3<r?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.schedule.apply(this,[e,t,n].concat(i))},t.schedule=function(e){A++;for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=b.apply(void 0,n),o=i[0],a=i[1],s=i[2],u=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,o,a,s,!1,u)},t.scheduleIterable=function(e,t){O++;var n=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,null,v,[t],!1,n)},t.deferOnce=function(e,t,n){S++;for(var r=arguments.length,i=new Array(3<r?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.scheduleOnce.apply(this,[e,t,n].concat(i))},t.scheduleOnce=function(e){N++;for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=b.apply(void 0,n),o=i[0],a=i[1],s=i[2],u=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,o,a,s,!0,u)},t.setTimeout=function(){return P++,this.later.apply(this,arguments)},t.later=function(){L++;var e=function(){var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=0,o=void 0!==r?r.length:0;return 0<o&&u(r[o-1])&&(i=parseInt(r.pop(),10)),[t,n,r,i]}.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=e[3];return this._later(t,n,r,i)},t.throttle=function(){M++;var e,t,n=_.apply(void 0,arguments),r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],u=void 0===s||s,l=d(r,i,this._timers);return-1===l?(e=this._later(r,i,u?y:o,a),u&&this._join(r,i,o)):(e=this._timers[l+1],t=l+4,this._timers[t]!==y&&(this._timers[t]=o)),e},t.debounce=function(){j++;var e,t,n,r,i,o=_.apply(void 0,arguments),a=o[0],s=o[1],u=o[2],l=o[3],c=o[4],h=void 0!==c&&c,f=this._timers,p=d(a,s,f);return-1===p?(e=this._later(a,s,h?y:u,l),h&&this._join(a,s,u)):(t=this._platform.now()+l,f[n=p+4]===y&&(u=y),e=f[p+1],p+6===(r=m(t,f))?(f[p]=t,f[n]=u):(i=this._timers[p+5],this._timers.splice(r,0,t,e,a,s,u,i),this._timers.splice(p,6)),0===p&&this._reinstallTimerTimeout()),e},t.cancelTimers=function(){D++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()},t.hasTimers=function(){return 0<this._timers.length||this._autorun},t.cancel=function(e){if(I++,null==e)return!1;var t=typeof e;return\"number\"==t?this._cancelLaterTimer(e):!(\"object\"!=t||!e.queue||!e.method)&&e.queue.cancel(e)},t.ensureInstance=function(){this._ensureInstance()},t.getDebugInfo=function(){var t=this;if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:h(this._timers,6,2),instanceStack:[this.currentInstance].concat(this.instanceStack).map(function(e){return e&&e._getDebugInfo(t.DEBUG)})}},t._end=function(e){var t=this.currentInstance,n=null;if(null===t)throw new Error(\"end called without begin\");var r,i,o=!1;try{r=t.flush(e)}finally{o||(o=!0,1===r?(i=this.queueNames[t.queueNameIndex],this._scheduleAutorun(i)):(this.currentInstance=null,0<this.instanceStack.length&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger(\"end\",t,n),this._onEnd(t,n)))}},t._join=function(e,t,n){return null===this.currentInstance?this._run(e,t,n):void 0===e&&void 0===n?t():t.apply(e,n)},t._run=function(e,t,n){var r=l(this.options);if(this.begin(),r)try{return t.apply(e,n)}catch(e){r(e)}finally{this.end()}else try{return t.apply(e,n)}finally{this.end()}},t._cancelAutorun=function(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)},t._later=function(e,t,n,r){var i,o=this.DEBUG?new Error:void 0,a=this._platform.now()+r,s=w++;return 0===this._timers.length?(this._timers.push(a,s,e,t,n,o),this._installTimerTimeout()):(i=m(a,this._timers),this._timers.splice(i,0,a,s,e,t,n,o),this._reinstallTimerTimeout()),s},t._cancelLaterTimer=function(e){for(var t=1;t<this._timers.length;t+=6)if(this._timers[t]===e)return this._timers.splice(t-1,6),1===t&&this._reinstallTimerTimeout(),!0;return!1},t._trigger=function(e,t,n){var r=this._eventCallbacks[e];if(void 0!==r)for(var i=0;i<r.length;i++)r[i](t,n)},t._runExpiredTimers=function(){this._timerTimeoutId=null,0<this._timers.length&&(this.begin(),this._scheduleExpiredTimers(),this.end())},t._scheduleExpiredTimers=function(){for(var e=this._timers,t=0,n=e.length,r=this._defaultQueue,i=this._platform.now();t<n;t+=6){if(i<e[t])break;var o,a,s,u=e[t+4];u!==y&&(o=e[t+2],a=e[t+3],s=e[t+5],this.currentInstance.schedule(r,o,a,u,!1,s))}e.splice(0,t),this._installTimerTimeout()},t._reinstallTimerTimeout=function(){this._clearTimerTimeout(),this._installTimerTimeout()},t._clearTimerTimeout=function(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)},t._installTimerTimeout=function(){var e,t,n;0!==this._timers.length&&(e=this._timers[0],t=this._platform.now(),n=Math.max(0,e-t),this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n))},t._ensureInstance=function(){var e=this.currentInstance;return null===e&&(this._autorunStack=this.DEBUG?new Error:void 0,e=this.begin(),this._scheduleAutorun(this.queueNames[0])),e},t._scheduleAutorun=function(e){F++;var t=this._platform.next,n=this.options.flush;n?n(e,t):t(),this._autorun=!0},(0,n.createClass)(e,[{key:\"counters\",get:function(){return{begin:E,end:T,events:{begin:C,end:0},autoruns:{created:F,completed:B},run:R,join:k,defer:x,schedule:A,scheduleIterable:O,deferOnce:S,scheduleOnce:N,setTimeout:P,later:L,throttle:M,debounce:j,cancelTimers:D,cancel:I,loops:{total:U,nested:z}}}},{key:\"defaultQueue\",get:function(){return this._defaultQueue}}]),e}();t.Queue=f,t.buildPlatform=a,t.buildNext=i,e.default=t}),e(\"dag-map\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=(n.prototype.add=function(e,t,n,r){if(!e)throw new Error(\"argument `key` is required\");var i=this._vertices,o=i.add(e);if(o.val=t,n)if(\"string\"==typeof n)i.addEdge(o,i.add(n));else for(var a=0;a<n.length;a++)i.addEdge(o,i.add(n[a]));if(r)if(\"string\"==typeof r)i.addEdge(i.add(r),o);else for(a=0;a<r.length;a++)i.addEdge(i.add(r[a]),o)},n.prototype.addEdges=function(e,t,n,r){this.add(e,t,n,r)},n.prototype.each=function(e){this._vertices.walk(e)},n.prototype.topsort=function(e){this.each(e)},n);function n(){this._vertices=new r}e.default=t;var r=(i.prototype.add=function(e){if(!e)throw new Error(\"missing key\");for(var t,n=0|this.length,r=0;r<n;r++)if((t=this[r]).key===e)return t;return this.length=1+n,this[n]={idx:n,key:e,val:void 0,out:!1,flag:!1,length:0}},i.prototype.addEdge=function(e,t){this.check(e,t.key);for(var n=0|t.length,r=0;r<n;r++)if(t[r]===e.idx)return;t.length=1+n,t[n]=e.idx,e.out=!0},i.prototype.walk=function(e){this.reset();for(var t=0;t<this.length;t++){var n=this[t];n.out||this.visit(n,\"\")}this.each(this.result,e)},i.prototype.check=function(e,t){if(e.key===t)throw new Error(\"cycle detected: \"+t+\" <- \"+t);if(0!==e.length){for(var n=0;n<e.length;n++)if(this[e[n]].key===t)throw new Error(\"cycle detected: \"+t+\" <- \"+e.key+\" <- \"+t);if(this.reset(),this.visit(e,t),0<this.path.length){var r=\"cycle detected: \"+t;throw this.each(this.path,function(e){r+=\" <- \"+e}),new Error(r)}}},i.prototype.reset=function(){this.stack.length=0,this.path.length=0;for(var e=this.result.length=0,t=this.length;e<t;e++)this[e].flag=!1},i.prototype.visit=function(e,t){var n=this.stack,r=this.path,i=this.result;for(n.push(e.idx);n.length;){var o=0|n.pop();if(0<=o){var a=this[o];if(a.flag)continue;if(a.flag=!0,r.push(o),t===a.key)break;n.push(~o),this.pushIncoming(a)}else r.pop(),i.push(~o)}},i.prototype.pushIncoming=function(e){for(var t=this.stack,n=e.length-1;0<=n;n--){var r=e[n];this[r].flag||t.push(r)}},i.prototype.each=function(e,t){for(var n=0,r=e.length;n<r;n++){var i=this[e[n]];t(i.key,i.val)}},i);function i(){this.length=0,this.stack=new o,this.path=new o,this.result=new o}var o=(a.prototype.push=function(e){this[this.length++]=0|e},a.prototype.pop=function(){return 0|this[--this.length]},a);function a(){this.length=0}}),e(\"ember-babel\",[\"exports\"],function(e){\"use strict\";e.wrapNativeSuper=function(e){if(r.has(e))return r.get(e);function t(){}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),r.set(e,t),n(t,e)},e.classCallCheck=function(e,t){0},e.inheritsLoose=function(e,t){0;e.prototype=Object.create(null===t?null:t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),null!==t&&n(e,t)},e.taggedTemplateLiteralLoose=function(e,t){t=t||e.slice(0);return e.raw=t,e},e.createClass=function(e,t,n){null!=t&&i(e.prototype,t);null!=n&&i(e,n);return e},e.assertThisInitialized=o,e.possibleConstructorReturn=function(e,t){if(\"object\"==typeof t&&null!==t||\"function\"==typeof t)return t;return o(e)},e.objectDestructuringEmpty=function(e){0};var n=Object.setPrototypeOf,r=new Map;function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e){return e}}),e(\"ember/index\",[\"exports\",\"require\",\"@ember/-internals/environment\",\"node-module\",\"@ember/-internals/utils\",\"@ember/-internals/container\",\"@ember/instrumentation\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/canary-features\",\"@ember/debug\",\"backburner\",\"@ember/-internals/console\",\"@ember/controller\",\"@ember/controller/lib/controller_mixin\",\"@ember/string\",\"@ember/service\",\"@ember/object\",\"@ember/object/compat\",\"@ember/object/computed\",\"@ember/-internals/runtime\",\"@ember/-internals/glimmer\",\"ember/version\",\"@ember/-internals/views\",\"@ember/-internals/routing\",\"@ember/-internals/extension-support\",\"@ember/error\",\"@ember/runloop\",\"@ember/-internals/error-handling\",\"@ember/-internals/owner\",\"@ember/application\",\"@ember/application/globals-resolver\",\"@ember/application/instance\",\"@ember/engine\",\"@ember/engine/instance\",\"@ember/polyfills\",\"@ember/deprecated-features\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m,v,g,y,b,_,w,E,T,C,R,k,x,A,O,S,N,P,L,M,j,D){\"use strict\";e.default=void 0;var I=\"object\"==typeof n.context.imports.Ember&&n.context.imports.Ember||{};I.isNamespace=!0,I.toString=function(){return\"Ember\"},Object.defineProperty(I,\"ENV\",{get:n.getENV,enumerable:!1}),Object.defineProperty(I,\"lookup\",{get:n.getLookup,set:n.setLookup,enumerable:!1}),D.EMBER_EXTEND_PROTOTYPES&&Object.defineProperty(I,\"EXTEND_PROTOTYPES\",{enumerable:!1,get:function(){return n.ENV.EXTEND_PROTOTYPES}}),I.getOwner=O.getOwner,I.setOwner=O.setOwner,I.Application=S.default,I.DefaultResolver=I.Resolver=N.default,I.ApplicationInstance=P.default,I.Engine=L.default,I.EngineInstance=M.default,I.assign=j.assign,I.merge=j.merge,I.generateGuid=i.generateGuid,I.GUID_KEY=i.GUID_KEY,I.guidFor=i.guidFor,I.inspect=i.inspect,I.makeArray=i.makeArray,I.canInvoke=i.canInvoke,I.tryInvoke=i.tryInvoke,I.wrap=i.wrap,I.uuid=i.uuid,I.Container=o.Container,I.Registry=o.Registry,I.assert=c.assert,I.warn=c.warn,I.debug=c.debug,I.deprecate=c.deprecate,I.deprecateFunc=c.deprecateFunc,I.runInDebug=c.runInDebug,I.Error=k.default,I.Debug={registerDeprecationHandler:c.registerDeprecationHandler,registerWarnHandler:c.registerWarnHandler,isComputed:u.isComputed},I.instrument=a.instrument,I.subscribe=a.subscribe,I.Instrumentation={instrument:a.instrument,subscribe:a.subscribe,unsubscribe:a.unsubscribe,reset:a.reset},I.run=x._globalsRun,I.run.backburner=x.backburner,I.run.begin=x.begin,I.run.bind=x.bind,I.run.cancel=x.cancel,I.run.debounce=x.debounce,I.run.end=x.end,I.run.hasScheduledTimers=x.hasScheduledTimers,I.run.join=x.join,I.run.later=x.later,I.run.next=x.next,I.run.once=x.once,I.run.schedule=x.schedule,I.run.scheduleOnce=x.scheduleOnce,I.run.throttle=x.throttle,I.run.cancelTimers=x.cancelTimers,Object.defineProperty(I.run,\"currentRunLoop\",{get:x.getCurrentRunLoop,enumerable:!1});var F,B=u._globalsComputed;I.computed=B,I._descriptor=u.nativeDescDecorator,I._tracked=u.tracked,B.alias=u.alias,I.cacheFor=u.getCachedValueFor,I.ComputedProperty=u.ComputedProperty,Object.defineProperty(I,\"_setComputedDecorator\",{get:function(){return u.setClassicDecorator}}),I._setClassicDecorator=u.setClassicDecorator,I.meta=s.meta,I.get=u.get,I.getWithDefault=u.getWithDefault,I._getPath=u._getPath,I.set=u.set,I.trySet=u.trySet,I.FEATURES=(0,j.assign)({isEnabled:l.isEnabled},l.FEATURES),I._Cache=i.Cache,I.on=u.on,I.addListener=u.addListener,I.removeListener=u.removeListener,I.sendEvent=u.sendEvent,I.hasListeners=u.hasListeners,I.isNone=u.isNone,I.isEmpty=u.isEmpty,I.isBlank=u.isBlank,I.isPresent=u.isPresent,I.notifyPropertyChange=u.notifyPropertyChange,I.overrideChains=u.overrideChains,I.beginPropertyChanges=u.beginPropertyChanges,I.endPropertyChanges=u.endPropertyChanges,I.changeProperties=u.changeProperties,I.platform={defineProperty:!0,hasPropertyAccessors:!0},I.defineProperty=u.defineProperty,I.watchKey=u.watchKey,I.unwatchKey=u.unwatchKey,I.removeChainWatcher=u.removeChainWatcher,I._ChainNode=u.ChainNode,I.finishChains=u.finishChains,I.watchPath=u.watchPath,I.unwatchPath=u.unwatchPath,I.watch=u.watch,I.isWatching=u.isWatching,I.unwatch=u.unwatch,I.destroy=s.deleteMeta,I.libraries=u.libraries,I.getProperties=u.getProperties,I.setProperties=u.setProperties,I.expandProperties=u.expandProperties,I.addObserver=u.addObserver,I.removeObserver=u.removeObserver,I.aliasMethod=u.aliasMethod,I.observer=u.observer,I.mixin=u.mixin,I.Mixin=u.Mixin,Object.defineProperty(I,\"onerror\",{get:A.getOnerror,set:A.setOnerror,enumerable:!1}),Object.defineProperty(I,\"testing\",{get:c.isTesting,set:c.setTesting,enumerable:!1}),I._Backburner=h.default,D.LOGGER&&(I.Logger=f.default),I.A=_.A,I.String={loc:m.loc,w:m.w,dasherize:m.dasherize,decamelize:m.decamelize,camelize:m.camelize,classify:m.classify,underscore:m.underscore,capitalize:m.capitalize},I.Object=_.Object,I._RegistryProxyMixin=_.RegistryProxyMixin,I._ContainerProxyMixin=_.ContainerProxyMixin,I.compare=_.compare,I.copy=_.copy,I.isEqual=_.isEqual,I._setFrameworkClass=_.setFrameworkClass,I.inject=function(){},I.inject.service=v.inject,I.inject.controller=p.inject,I.Array=_.Array,I.Comparable=_.Comparable,I.Enumerable=_.Enumerable,I.ArrayProxy=_.ArrayProxy,I.ObjectProxy=_.ObjectProxy,I.ActionHandler=_.ActionHandler,I.CoreObject=_.CoreObject,I.NativeArray=_.NativeArray,I.Copyable=_.Copyable,I.MutableEnumerable=_.MutableEnumerable,I.MutableArray=_.MutableArray,I.TargetActionSupport=_.TargetActionSupport,I.Evented=_.Evented,I.PromiseProxyMixin=_.PromiseProxyMixin,I.Observable=_.Observable,I.typeOf=_.typeOf,I.isArray=_.isArray,I.Object=_.Object,I.onLoad=S.onLoad,I.runLoadHooks=S.runLoadHooks,I.Controller=p.default,I.ControllerMixin=d.default,I.Service=v.default,I._ProxyMixin=_._ProxyMixin,I.RSVP=_.RSVP,I.Namespace=_.Namespace,I._action=g.action,I._dependentKeyCompat=y.dependentKeyCompat,B.empty=b.empty,B.notEmpty=b.notEmpty,B.none=b.none,B.not=b.not,B.bool=b.bool,B.match=b.match,B.equal=b.equal,B.gt=b.gt,B.gte=b.gte,B.lt=b.lt,B.lte=b.lte,B.oneWay=b.oneWay,B.reads=b.oneWay,B.readOnly=b.readOnly,B.deprecatingAlias=b.deprecatingAlias,B.and=b.and,B.or=b.or,B.sum=b.sum,B.min=b.min,B.max=b.max,B.map=b.map,B.sort=b.sort,B.setDiff=b.setDiff,B.mapBy=b.mapBy,B.filter=b.filter,B.filterBy=b.filterBy,B.uniq=b.uniq,B.uniqBy=b.uniqBy,B.union=b.union,B.intersect=b.intersect,B.collect=b.collect,Object.defineProperty(I,\"STRINGS\",{configurable:!1,get:m._getStrings,set:m._setStrings}),Object.defineProperty(I,\"BOOTED\",{configurable:!1,enumerable:!1,get:u.isNamespaceSearchDisabled,set:u.setNamespaceSearchDisabled}),I.Component=w.Component,w.Helper.helper=w.helper,I.Helper=w.Helper,I.Checkbox=w.Checkbox,I.TextField=w.TextField,I.TextArea=w.TextArea,I.LinkComponent=w.LinkComponent,I._setComponentManager=w.setComponentManager,I._componentManagerCapabilities=w.capabilities,I._setModifierManager=w.setModifierManager,I._modifierManagerCapabilties=w.modifierCapabilties,I.Handlebars={template:w.template,Utils:{escapeExpression:w.escapeExpression}},I.HTMLBars={template:w.template},n.ENV.EXTEND_PROTOTYPES.String&&(String.prototype.htmlSafe=function(){return(0,w.htmlSafe)(this)}),I.String.htmlSafe=w.htmlSafe,I.String.isHTMLSafe=w.isHTMLSafe,Object.defineProperty(I,\"TEMPLATES\",{get:w.getTemplates,set:w.setTemplates,configurable:!1,enumerable:!1}),I.VERSION=E.default,D.JQUERY_INTEGRATION&&!T.jQueryDisabled&&Object.defineProperty(I,\"$\",{get:function(){return T.jQuery},configurable:!0,enumerable:!0}),I.ViewUtils={isSimpleClick:T.isSimpleClick,getElementView:T.getElementView,getViewElement:T.getViewElement,getViewBounds:T.getViewBounds,getViewClientRects:T.getViewClientRects,getViewBoundingClientRect:T.getViewBoundingClientRect,getRootViews:T.getRootViews,getChildViews:T.getChildViews,isSerializationFirstNode:w.isSerializationFirstNode},I.TextSupport=T.TextSupport,I.ComponentLookup=T.ComponentLookup,I.EventDispatcher=T.EventDispatcher,I.Location=C.Location,I.AutoLocation=C.AutoLocation,I.HashLocation=C.HashLocation,I.HistoryLocation=C.HistoryLocation,I.NoneLocation=C.NoneLocation,I.controllerFor=C.controllerFor,I.generateControllerFactory=C.generateControllerFactory,I.generateController=C.generateController,I.RouterDSL=C.RouterDSL,I.Router=C.Router,I.Route=C.Route,(0,S.runLoadHooks)(\"Ember.Application\",S.default),I.DataAdapter=R.DataAdapter,I.ContainerDebugAdapter=R.ContainerDebugAdapter,(0,t.has)(\"ember-template-compiler\")&&(0,t.default)(\"ember-template-compiler\"),(0,t.has)(\"ember-testing\")&&(F=(0,t.default)(\"ember-testing\"),I.Test=F.Test,I.Test.Adapter=F.Adapter,I.Test.QUnitAdapter=F.QUnitAdapter,I.setupForTesting=F.setupForTesting),(0,S.runLoadHooks)(\"Ember\"),e.default=I,r.IS_NODE?r.module.exports=I:n.context.exports.Ember=n.context.exports.Em=I}),e(\"ember/version\",[\"exports\"],function(e){\"use strict\";e.default=void 0;e.default=\"3.12.2\"}),e(\"node-module\",[\"exports\"],function(e){var t=\"object\"==typeof module&&\"function\"==typeof module.require;t?(e.require=module.require,e.module=module):(e.require=null,e.module=null),e.IS_NODE=t}),e(\"route-recognizer\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=Object.create;function n(){var e=t(null);return e.__=void 0,delete e.__,e}var a=function(e,t,n){this.path=e,this.matcher=t,this.delegate=n};a.prototype.to=function(e,t){var n=this.delegate;if(n&&n.willAddRoute&&(e=n.willAddRoute(this.matcher.target,e)),this.matcher.add(this.path,e),t){if(0===t.length)throw new Error(\"You must have an argument in the function passed to `to`\");this.matcher.addChild(this.path,e,t,this.delegate)}};function s(e){this.routes=n(),this.children=n(),this.target=e}function u(r,i,o){return function(e,t){var n=r+e;if(!t)return new a(n,i,o);t(u(n,i,o))}}function c(e,t,n,r){for(var i=t.routes,o=Object.keys(i),a=0;a<o.length;a++){var s=o[a],u=e.slice();!function(e,t,n){for(var r=0,i=0;i<e.length;i++)r+=e[i].path.length;var o={path:t=t.substr(r),handler:n};e.push(o)}(u,s,i[s]);var l=t.children[s];l?c(u,l,n,r):n.call(r,u)}}s.prototype.add=function(e,t){this.routes[e]=t},s.prototype.addChild=function(e,t,n,r){var i=new s(t),o=u(e,this.children[e]=i,r);r&&r.contextEntered&&r.contextEntered(t,o),n(o)};function d(e){return e.split(\"/\").map(v).join(\"/\")}var r=/%|\\//g;function v(e){return e.length<3||-1===e.indexOf(\"%\")?e:decodeURIComponent(e).replace(r,encodeURIComponent)}var i=/%(?:2(?:4|6|B|C)|3(?:B|D|A)|40)/g;function o(e){return encodeURIComponent(e).replace(i,decodeURIComponent)}var l=/(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)/g,h=Array.isArray,f=Object.prototype.hasOwnProperty;function p(e,t){if(\"object\"!=typeof e||null===e)throw new Error(\"You must pass an object as the second argument to `generate`.\");if(!f.call(e,t))throw new Error(\"You must provide param `\"+t+\"` to `generate`.\");var n=e[t],r=\"string\"==typeof n?n:\"\"+n;if(0===r.length)throw new Error(\"You must provide a param `\"+t+\"`.\");return r}var g=[];g[0]=function(e,t){for(var n=t,r=e.value,i=0;i<r.length;i++)var o=r.charCodeAt(i),n=n.put(o,!1,!1);return n},g[1]=function(e,t){return t.put(47,!0,!0)},g[2]=function(e,t){return t.put(-1,!1,!0)},g[4]=function(e,t){return t};var y=[];y[0]=function(e){return e.value.replace(l,\"\\\\$1\")},y[1]=function(){return\"([^/]+)\"},y[2]=function(){return\"(.+)\"},y[4]=function(){return\"\"};var m=[];m[0]=function(e){return e.value},m[1]=function(e,t){var n=p(t,e.value);return k.ENCODE_AND_DECODE_PATH_SEGMENTS?o(n):n},m[2]=function(e,t){return p(t,e.value)},m[4]=function(){return\"\"};var b=Object.freeze({}),_=Object.freeze([]);function w(e,t,n){return e.char===t&&e.negate===n}function E(e,t,n,r,i){this.states=e,this.id=t,this.char=n,this.negate=r,this.nextStates=i?t:null,this.pattern=\"\",this._regex=void 0,this.handlers=void 0,this.types=void 0}function T(e,t){return e.negate?e.char!==t&&-1!==e.char:e.char===t||-1===e.char}E.prototype.regex=function(){return this._regex||(this._regex=new RegExp(this.pattern)),this._regex},E.prototype.get=function(e,t){var n=this.nextStates;if(null!==n)if(h(n))for(var r=0;r<n.length;r++){var i=this.states[n[r]];if(w(i,e,t))return i}else{var o=this.states[n];if(w(o,e,t))return o}},E.prototype.put=function(e,t,n){if(i=this.get(e,t))return i;var r=this.states,i=new E(r,r.length,e,t,n);return r[r.length]=i,null==this.nextStates?this.nextStates=i.id:h(this.nextStates)?this.nextStates.push(i.id):this.nextStates=[this.nextStates,i.id],i},E.prototype.match=function(e){var t=this.nextStates;if(!t)return[];var n=[];if(h(t))for(var r=0;r<t.length;r++){var i=this.states[t[r]];T(i,e)&&n.push(i)}else{var o=this.states[t];T(o,e)&&n.push(o)}return n};function C(e){this.length=0,this.queryParams=e||{}}function R(e){var t;e=e.replace(/\\+/gm,\"%20\");try{t=decodeURIComponent(e)}catch(e){t=\"\"}return t}C.prototype.splice=Array.prototype.splice,C.prototype.slice=Array.prototype.slice,C.prototype.push=Array.prototype.push;var k=function(){this.names=n();var e=[],t=new E(e,0,-1,!0,!1);e[0]=t,this.states=e,this.rootState=t};k.prototype.add=function(e,t){for(var n,r=this.rootState,i=\"^\",o=[0,0,0],a=new Array(e.length),s=[],u=!0,l=0,c=0;c<e.length;c++){for(var h=e[c],f=function(e,t,n){0<t.length&&47===t.charCodeAt(0)&&(t=t.substr(1));for(var r=t.split(\"/\"),i=void 0,o=void 0,a=0;a<r.length;a++){var s,u=r[a],l=0;12&(s=2<<(l=\"\"===u?4:58===u.charCodeAt(0)?1:42===u.charCodeAt(0)?2:0))&&(u=u.slice(1),(i=i||[]).push(u),(o=o||[]).push(0!=(4&s))),14&s&&n[l]++,e.push({type:l,value:v(u)})}return{names:i||_,shouldDecodes:o||_}}(s,h.path,o),p=f.names,d=f.shouldDecodes;l<s.length;l++){var m=s[l];4!==m.type&&(u=!1,r=r.put(47,!1,!1),i+=\"/\",r=g[m.type](m,r),i+=y[m.type](m))}a[c]={handler:h.handler,names:p,shouldDecodes:d}}u&&(r=r.put(47,!1,!1),i+=\"/\"),r.handlers=a,r.pattern=i+\"$\",r.types=o,\"object\"==typeof t&&null!==t&&t.as&&(n=t.as),n&&(this.names[n]={segments:s,handlers:a})},k.prototype.handlersFor=function(e){var t=this.names[e];if(!t)throw new Error(\"There is no route named \"+e);for(var n=new Array(t.handlers.length),r=0;r<t.handlers.length;r++){var i=t.handlers[r];n[r]=i}return n},k.prototype.hasRoute=function(e){return!!this.names[e]},k.prototype.generate=function(e,t){var n=this.names[e],r=\"\";if(!n)throw new Error(\"There is no route named \"+e);for(var i=n.segments,o=0;o<i.length;o++){var a=i[o];4!==a.type&&(r+=\"/\",r+=m[a.type](a,t))}return\"/\"!==r.charAt(0)&&(r=\"/\"+r),t&&t.queryParams&&(r+=this.generateQueryString(t.queryParams)),r},k.prototype.generateQueryString=function(e){var t=[],n=Object.keys(e);n.sort();for(var r=0;r<n.length;r++){var i=n[r],o=e[i];if(null!=o){var a=encodeURIComponent(i);if(h(o))for(var s=0;s<o.length;s++){var u=i+\"[]=\"+encodeURIComponent(o[s]);t.push(u)}else a+=\"=\"+encodeURIComponent(o),t.push(a)}}return 0===t.length?\"\":\"?\"+t.join(\"&\")},k.prototype.parseQueryString=function(e){for(var t=e.split(\"&\"),n={},r=0;r<t.length;r++){var i=t[r].split(\"=\"),o=R(i[0]),a=o.length,s=!1,u=void 0,u=1===i.length?\"true\":(2<a&&\"[]\"===o.slice(a-2)&&(s=!0,n[o=o.slice(0,a-2)]||(n[o]=[])),i[1]?R(i[1]):\"\");s?n[o].push(u):n[o]=u}return n},k.prototype.recognize=function(e){var t,n=[this.rootState],r={},i=!1,o=e.indexOf(\"#\");-1!==o&&(e=e.substr(0,o));var a,s=e.indexOf(\"?\");-1!==s&&(a=e.substr(s+1,e.length),e=e.substr(0,s),r=this.parseQueryString(a)),\"/\"!==e.charAt(0)&&(e=\"/\"+e);var u=e;k.ENCODE_AND_DECODE_PATH_SEGMENTS?e=d(e):(e=decodeURI(e),u=decodeURI(u));var l=e.length;1<l&&\"/\"===e.charAt(l-1)&&(e=e.substr(0,l-1),u=u.substr(0,u.length-1),i=!0);for(var c=0;c<e.length&&(n=function(e,t){for(var n=[],r=0,i=e.length;r<i;r++)var o=e[r],n=n.concat(o.match(t));return n}(n,e.charCodeAt(c))).length;c++);for(var h=[],f=0;f<n.length;f++)n[f].handlers&&h.push(n[f]);n=h.sort(function(e,t){var n=e.types||[0,0,0],r=n[0],i=n[1],o=n[2],a=t.types||[0,0,0],s=a[0],u=a[1],l=a[2];if(o!==l)return o-l;if(o){if(r!==s)return s-r;if(i!==u)return u-i}return i!==u?i-u:r!==s?s-r:0});var p=h[0];return p&&p.handlers&&(i&&p.pattern&&\"(.+)$\"===p.pattern.slice(-5)&&(u+=\"/\"),t=function(e,t,n){var r=e.handlers,i=e.regex();if(!i||!r)throw new Error(\"state not initialized\");var o=t.match(i),a=1,s=new C(n);s.length=r.length;for(var u=0;u<r.length;u++){var l=r[u],c=l.names,h=l.shouldDecodes,f=b,p=!1;if(c!==_&&h!==_)for(var d=0;d<c.length;d++){p=!0;var m=c[d],v=o&&o[a++];f===b&&(f={}),k.ENCODE_AND_DECODE_PATH_SEGMENTS&&h[d]?f[m]=v&&decodeURIComponent(v):f[m]=v}s[u]={handler:l.handler,params:f,isDynamic:p}}return s}(p,u,r)),t},k.VERSION=\"0.3.4\",k.ENCODE_AND_DECODE_PATH_SEGMENTS=!0,k.Normalizer={normalizeSegment:v,normalizePath:d,encodePathSegment:o},k.prototype.map=function(e,t){var n=new s;e(u(\"\",n,this.delegate)),c([],n,function(e){t?t(this,e):this.add(e)},this)},e.default=k}),e(\"router_js\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"rsvp\",\"route-recognizer\"],function(e,f,n,l,r){\"use strict\";e.logAbort=a,e.InternalRouteInfo=e.TransitionError=e.TransitionState=e.QUERY_PARAMS_SYMBOL=e.PARAMS_SYMBOL=e.STATE_SYMBOL=e.InternalTransition=e.default=void 0;var s=(i.prototype=Object.create(Error.prototype)).constructor=i;function i(e){var t=Error.call(this,e);this.name=\"TransitionAborted\",this.message=e||\"TransitionAborted\",Error.captureStackTrace?Error.captureStackTrace(this,i):this.stack=t.stack}var o=Array.prototype.slice,c=Object.prototype.hasOwnProperty;function v(e,t){for(var n in t)c.call(t,n)&&(e[n]=t[n])}function h(e){var t,n,r=e&&e.length;if(r&&0<r){var i=e[r-1];if((n=i)&&c.call(n,\"queryParams\"))return t=i.queryParams,[o.call(e,0,r-1),t]}return[e,null]}function p(e){for(var t in e){var n=e[t];if(\"number\"==typeof n)e[t]=\"\"+n;else if(Array.isArray(n))for(var r=0,i=n.length;r<i;r++)n[r]=\"\"+n[r]}}function d(e){if(e.log){for(var t,n,r,i=arguments.length,o=new Array(1<i?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];2===o.length?(t=o[0],n=o[1],e.log(\"Transition #\"+t+\": \"+n)):(r=o[0],e.log(r))}}function m(e){return\"string\"==typeof e||e instanceof String||\"number\"==typeof e||e instanceof Number}function u(e,t){for(var n=0,r=e.length;n<r&&!1!==t(e[n]);n++);}function g(e,t){var n,r={all:{},changed:{},removed:{}};v(r.all,t);var i=!1;for(n in p(e),p(t),e)c.call(e,n)&&(c.call(t,n)||(i=!0,r.removed[n]=e[n]));for(n in t)if(c.call(t,n)){var o=e[n],a=t[n];if(y(o)&&y(a))if(o.length!==a.length)r.changed[n]=t[n],i=!0;else for(var s=0,u=o.length;s<u;s++)o[s]!==a[s]&&(r.changed[n]=t[n],i=!0);else e[n]!==t[n]&&(r.changed[n]=t[n],i=!0)}return i?r:void 0}function y(e){return Array.isArray(e)}function b(e){return\"Router: \"+e}var _=\"__STATE__-2619860001345920-3322w3\";e.STATE_SYMBOL=_;var w=\"__PARAMS__-261986232992830203-23323\";e.PARAMS_SYMBOL=w;var E=\"__QPS__-2619863929824844-32323\";e.QUERY_PARAMS_SYMBOL=E;var T=function(){function t(e,t,n){var r=this,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:void 0,o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:void 0;if(this.from=null,this.to=void 0,this.isAborted=!1,this.isActive=!0,this.urlMethod=\"update\",this.resolveIndex=0,this.queryParamsOnly=!1,this.isTransition=!0,this.isCausedByAbortingTransition=!1,this.isCausedByInitialTransition=!1,this.isCausedByAbortingReplaceTransition=!1,this._visibleQueryParams={},this[_]=n||e.state,this.intent=t,this.router=e,this.data=t&&t.data||{},this.resolvedModels={},this[E]={},this.promise=void 0,this.error=void 0,this[w]={},this.routeInfos=[],this.targetName=void 0,this.pivotHandler=void 0,this.sequence=-1,i)return this.promise=l.Promise.reject(i),void(this.error=i);if(this.isCausedByAbortingTransition=!!o,this.isCausedByInitialTransition=!!o&&(o.isCausedByInitialTransition||0===o.sequence),this.isCausedByAbortingReplaceTransition=!!o&&\"replace\"===o.urlMethod&&(!o.isCausedByAbortingTransition||o.isCausedByAbortingReplaceTransition),n){this[w]=n.params,this[E]=n.queryParams,this.routeInfos=n.routeInfos;var a=n.routeInfos.length;a&&(this.targetName=n.routeInfos[a-1].name);for(var s=0;s<a;++s){var u=n.routeInfos[s];if(!u.isResolved)break;this.pivotHandler=u.route}this.sequence=e.currentSequence++,this.promise=n.resolve(function(){return r.isAborted?l.Promise.reject(!1,b(\"Transition aborted - reject\")):l.Promise.resolve(!0)},this).catch(function(e){return l.Promise.reject(r.router.transitionDidError(e,r))},b(\"Handle Abort\"))}else this.promise=l.Promise.resolve(this[_]),this[w]={}}var e=t.prototype;return e.then=function(e,t,n){return this.promise.then(e,t,n)},e.catch=function(e,t){return this.promise.catch(e,t)},e.finally=function(e,t){return this.promise.finally(e,t)},e.abort=function(){this.rollback();var e=new t(this.router,void 0,void 0,void 0);return e.to=this.from,e.from=this.from,e.isAborted=!0,this.router.routeWillChange(e),this.router.routeDidChange(e),this},e.rollback=function(){this.isAborted||(d(this.router,this.sequence,this.targetName+\": transition was aborted\"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)},e.redirect=function(e){this.rollback(),this.router.routeWillChange(e)},e.retry=function(){this.abort();var e=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&e.method(this.urlMethod),e},e.method=function(e){return this.urlMethod=e,this},e.send=function(e,t,n,r,i){var o=0<arguments.length&&void 0!==e&&e,a=1<arguments.length?t:void 0,s=2<arguments.length?n:void 0,u=3<arguments.length?r:void 0,l=4<arguments.length?i:void 0;this.trigger(o,a,s,u,l)},e.trigger=function(e,t){var n=0<arguments.length&&void 0!==e&&e,r=1<arguments.length?t:void 0;\"string\"==typeof n&&(r=n,n=!1);for(var i=arguments.length,o=new Array(2<i?i-2:0),a=2;a<i;a++)o[a-2]=arguments[a];this.router.triggerEvent(this[_].routeInfos.slice(0,this.resolveIndex+1),n,r,o)},e.followRedirects=function(){var t=this.router;return this.promise.catch(function(e){return t.activeTransition?t.activeTransition.followRedirects():l.Promise.reject(e)})},e.toString=function(){return\"Transition (sequence \"+this.sequence+\")\"},e.log=function(e){d(this.router,this.sequence,e)},t}();function a(e){return d(e.router,e.sequence,\"detected abort.\"),new s}function C(e){return\"object\"==typeof e&&e instanceof T&&e.isTransition}e.InternalTransition=T;var R=new WeakMap;function k(l,e,t){var c=1<arguments.length&&void 0!==e?e:{},h=2<arguments.length&&void 0!==t&&t;return l.map(function(e,t){var n=e.name,r=e.params,i=e.paramNames,o=e.context,a=e.route;if(R.has(e)&&h){var s=x(function(e,t){var n={get metadata(){return A(e)}};if(Object.isFrozen(t)||t.hasOwnProperty(\"metadata\"))return Object.freeze((0,f.assign)({},t,n));return(0,f.assign)(t,n)}(a,R.get(e)),o);return R.set(e,s),s}var u={find:function(e,t){var n,r=[];3===e.length&&(r=l.map(function(e){return R.get(e)}));for(var i=0;l.length>i;i++)if(n=R.get(l[i]),e.call(t,n,i,r))return n},get name(){return n},get paramNames(){return i},get metadata(){return A(e.route)},get parent(){var e=l[t-1];return void 0===e?null:R.get(e)},get child(){var e=l[t+1];return void 0===e?null:R.get(e)},get localName(){var e=this.name.split(\".\");return e[e.length-1]},get params(){return r},get queryParams(){return c}};return h&&(u=x(u,o)),R.set(e,u),u})}function x(e,t){var n={get attributes(){return t}};return Object.isFrozen(e)||e.hasOwnProperty(\"attributes\")?Object.freeze((0,f.assign)({},e,n)):(0,f.assign)(e,n)}function A(e){return null!=e&&void 0!==e.buildRouteInfoMetadata?e.buildRouteInfoMetadata():null}var t=function(){function e(e,t,n,r){this._routePromise=void 0,this._route=null,this.params={},this.isResolved=!1,this.name=t,this.paramNames=n,this.router=e,r&&this._processRoute(r)}var t=e.prototype;return t.getModel=function(){return l.Promise.resolve(this.context)},t.serialize=function(){return this.params||{}},t.resolve=function(t,n){var r=this;return l.Promise.resolve(this.routePromise).then(function(e){return r.checkForAbort(t,e)}).then(function(){return r.runBeforeModelHook(n)}).then(function(){return r.checkForAbort(t,null)}).then(function(){return r.getModel(n)}).then(function(e){return r.checkForAbort(t,e)}).then(function(e){return r.runAfterModelHook(n,e)}).then(function(e){return r.becomeResolved(n,e)})},t.becomeResolved=function(e,t){var n,r=this.serialize(t);e&&(this.stashResolvedModel(e,t),e[w]=e[w]||{},e[w][this.name]=r);var i=t===this.context;(\"context\"in this||!i)&&(n=t);var o=R.get(this),a=new O(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==o&&R.set(a,o),a},t.shouldSupercede=function(e){if(!e)return!0;var t=e.context===this.context;return e.name!==this.name||\"context\"in this&&!t||this.hasOwnProperty(\"params\")&&!function(e,t){if(!e!=!t)return!1;if(!e)return!0;for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}(this.params,e.params)},t.log=function(e,t){e.log&&e.log(this.name+\": \"+t)},t.updateRoute=function(e){return e._internalName=this.name,this.route=e},t.runBeforeModelHook=function(e){var t;return e.trigger&&e.trigger(!0,\"willResolveModel\",e,this.route),this.route&&void 0!==this.route.beforeModel&&(t=this.route.beforeModel(e)),C(t)&&(t=null),l.Promise.resolve(t)},t.runAfterModelHook=function(e,t){var n,r,i=this.name;return this.stashResolvedModel(e,t),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(t,e)),n=C(r=n)?null:r,l.Promise.resolve(n).then(function(){return e.resolvedModels[i]})},t.checkForAbort=function(e,t){return l.Promise.resolve(e()).then(function(){return t},null)},t.stashResolvedModel=function(e,t){e.resolvedModels=e.resolvedModels||{},e.resolvedModels[this.name]=t},t.fetchRoute=function(){var e=this.router.getRoute(this.name);return this._processRoute(e)},t._processRoute=function(e){var t,n=this;return this.routePromise=l.Promise.resolve(e),null!==(t=e)&&\"object\"==typeof t&&\"function\"==typeof t.then?(this.routePromise=this.routePromise.then(function(e){return n.updateRoute(e)}),this.route=void 0):e?this.updateRoute(e):void 0},(0,n.createClass)(e,[{key:\"route\",get:function(){return null!==this._route?this._route:this.fetchRoute()},set:function(e){this._route=e}},{key:\"routePromise\",get:function(){return this._routePromise||this.fetchRoute(),this._routePromise},set:function(e){this._routePromise=e}}]),e}(),O=function(s){function e(e,t,n,r,i,o){var a=s.call(this,e,t,n,i)||this;return a.params=r,a.isResolved=!0,a.context=o,a}return(0,n.inheritsLoose)(e,s),e.prototype.resolve=function(e,t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),l.Promise.resolve(this)},e}(e.InternalRouteInfo=t),S=function(a){function e(e,t,n,r,i){var o=a.call(this,e,t,n,i)||this;return o.params={},o.params=r,o}return(0,n.inheritsLoose)(e,a),e.prototype.getModel=function(e){var t=this.params;e&&e[E]&&(v(t={},this.params),t.queryParams=e[E]);var n=this.route,r=void 0;return n.deserialize?r=n.deserialize(t,e):n.model&&(r=n.model(t,e)),r&&C(r)&&(r=void 0),l.Promise.resolve(r)},e}(t),N=function(o){function e(e,t,n,r){var i=o.call(this,e,t,n)||this;return i.context=r,i.serializer=i.router.getSerializer(t),i}(0,n.inheritsLoose)(e,o);var t=e.prototype;return t.getModel=function(e){return void 0!==this.router.log&&this.router.log(this.name+\": resolving provided model\"),o.prototype.getModel.call(this,e)},t.serialize=function(e){var t=this.paramNames,n=this.context,r={};if(m(e=e||n))return r[t[0]]=e,r;if(this.serializer)return this.serializer.call(null,e,t);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(e,t);if(1===t.length){var i=t[0];return/_id$/.test(i)?r[i]=e.id:r[i]=e,r}},e}(t);function P(e,t){var n=1<arguments.length&&void 0!==t?t:{};this.router=e,this.data=n}var L=function(){function e(){this.routeInfos=[],this.queryParams={},this.params={}}var t=e.prototype;return t.promiseLabel=function(e){var t=\"\";return u(this.routeInfos,function(e){return\"\"!==t&&(t+=\".\"),t+=e.name,!0}),b(\"'\"+t+\"': \"+e)},t.resolve=function(e,r){var t=this.params;u(this.routeInfos,function(e){return t[e.name]=e.params||{},!0}),r.resolveIndex=0;var i=this,o=!1;return l.Promise.resolve(null,this.promiseLabel(\"Start transition\")).then(s,null,this.promiseLabel(\"Resolve route\")).catch(function(e){var t=i.routeInfos,n=r.resolveIndex>=t.length?t.length-1:r.resolveIndex;return l.Promise.reject(new M(e,i.routeInfos[n].route,o,i))},this.promiseLabel(\"Handle error\"));function a(){return l.Promise.resolve(e(),i.promiseLabel(\"Check if should continue\")).catch(function(e){return o=!0,l.Promise.reject(e)},i.promiseLabel(\"Handle abort\"))}function n(e){var t,n=i.routeInfos[r.resolveIndex].isResolved;return i.routeInfos[r.resolveIndex++]=e,n||void 0!==(t=e.route)&&t.redirect&&t.redirect(e.context,r),a().then(s,null,i.promiseLabel(\"Resolve route\"))}function s(){return r.resolveIndex===i.routeInfos.length?i:i.routeInfos[r.resolveIndex].resolve(a,r).then(n,null,i.promiseLabel(\"Proceed\"))}},e}();e.TransitionState=L;var M=function(e,t,n,r){this.error=e,this.route=t,this.wasAborted=n,this.state=r};e.TransitionError=M;var j=function(s){function e(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:{},o=5<arguments.length?arguments[5]:void 0,a=s.call(this,e,o)||this;return a.preTransitionState=void 0,a.name=t,a.pivotHandler=n,a.contexts=r,a.queryParams=i,a}(0,n.inheritsLoose)(e,s);var t=e.prototype;return t.applyToState=function(e,t){var n=h([this.name].concat(this.contexts))[0],r=this.router.recognizer.handlersFor(n[0]),i=r[r.length-1].handler;return this.applyToHandlers(e,r,i,t,!1)},t.applyToHandlers=function(e,t,n,r,i){var o,a,s=new L,u=this.contexts.slice(0),l=t.length;if(this.pivotHandler)for(o=0,a=t.length;o<a;++o)if(t[o].handler===this.pivotHandler._internalName){l=o;break}for(o=t.length-1;0<=o;--o){var c,h=t[o],f=h.handler,p=e.routeInfos[o],d=null,d=!(0<h.names.length)||l<=o?this.createParamHandlerInfo(f,h.names,u,p):this.getHandlerInfoForDynamicSegment(f,h.names,u,p,n,o);i&&(d=d.becomeResolved(null,d.context),c=p&&p.context,0<h.names.length&&void 0!==p.context&&d.context===c&&(d.params=p&&p.params),d.context=c);var m=p;(l<=o||d.shouldSupercede(p))&&(l=Math.min(o,l),m=d),r&&!i&&(m=m.becomeResolved(null,m.context)),s.routeInfos.unshift(m)}if(0<u.length)throw new Error(\"More context objects were passed than there are dynamic segments for the route: \"+n);return r||this.invalidateChildren(s.routeInfos,l),v(s.queryParams,this.queryParams||{}),s},t.invalidateChildren=function(e,t){for(var n,r,i,o,a,s=t,u=e.length;s<u;++s){e[s].isResolved&&(r=(n=e[s]).name,i=n.params,o=n.route,a=n.paramNames,e[s]=new S(this.router,r,a,i,o))}},t.getHandlerInfoForDynamicSegment=function(e,t,n,r,i,o){if(0<n.length){if(m(s=n[n.length-1]))return this.createParamHandlerInfo(e,t,n,r);n.pop()}else{if(r&&r.name===e)return r;if(!this.preTransitionState)return r;var a=this.preTransitionState.routeInfos[o],s=a&&a.context}return new N(this.router,e,t,s)},t.createParamHandlerInfo=function(e,t,n,r){for(var i={},o=t.length,a=[];o--;){var s=r&&e===r.name&&r.params||{},u=n[n.length-1],l=t[o];m(u)?i[l]=\"\"+n.pop():s.hasOwnProperty(l)?i[l]=s[l]:a.push(l)}if(0<a.length)throw new Error(\"You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route \"+e+\". Missing params: \"+a);return new S(this.router,e,t,i)},e}(P),D=(I.prototype=Object.create(Error.prototype)).constructor=I;function I(e){var t=Error.call(this,e);this.name=\"UnrecognizedURLError\",this.message=e||\"UnrecognizedURL\",Error.captureStackTrace?Error.captureStackTrace(this,I):this.stack=t.stack}var F=function(i){function e(e,t,n){var r=i.call(this,e,n)||this;return r.url=t,r.preTransitionState=void 0,r}return(0,n.inheritsLoose)(e,i),e.prototype.applyToState=function(e){var t,n,r=new L,i=this.router.recognizer.recognize(this.url);if(!i)throw new D(this.url);var o=!1,a=this.url;function s(e){if(e&&e.inaccessibleByURL)throw new D(a);return e}for(t=0,n=i.length;t<n;++t){var u=i[t],l=u.handler,c=[];this.router.recognizer.hasRoute(l)&&(c=this.router.recognizer.handlersFor(l)[t].names);var h=new S(this.router,l,c,u.params),f=h.route;f?s(f):h.routePromise=h.routePromise.then(s);var p=e.routeInfos[t];o||h.shouldSupercede(p)?(o=!0,r.routeInfos[t]=h):r.routeInfos[t]=p}return v(r.queryParams,i.queryParams),r},e}(P),B=function(){function e(e){this._lastQueryParams={},this.state=void 0,this.oldState=void 0,this.activeTransition=void 0,this.currentRouteInfos=void 0,this._changedQueryParams=void 0,this.currentSequence=0,this.log=e,this.recognizer=new r.default,this.reset()}var t=e.prototype;return t.map=function(e){this.recognizer.map(e,function(e,t){for(var n=t.length-1,r=!0;0<=n&&r;--n){var i=t[n],o=i.handler;e.add(t,{as:o}),r=\"/\"===i.path||\"\"===i.path||\".index\"===o.slice(-6)}})},t.hasRoute=function(e){return this.recognizer.hasRoute(e)},t.queryParamsTransition=function(e,t,n,r){var i=this;if(this.fireQueryParamDidChange(r,e),!t&&this.activeTransition)return this.activeTransition;var o=new T(this,void 0,void 0);return o.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,o),o[E]=r.queryParams,this.toReadOnlyInfos(o,r),this.routeWillChange(o),o.promise=o.promise.then(function(e){return i._updateURL(o,n),i.didTransition(i.currentRouteInfos),i.toInfos(o,r.routeInfos,!0),i.routeDidChange(o),e},null,b(\"Transition complete\")),o},t.transitionByIntent=function(t,e){try{return this.getTransitionByIntent(t,e)}catch(e){return new T(this,t,void 0,e,void 0)}},t.recognize=function(e){var t=new F(this,e),n=this.generateNewState(t);if(null===n)return n;var r=k(n.routeInfos,n.queryParams);return r[r.length-1]},t.recognizeAndLoad=function(e){var t=new F(this,e),n=this.generateNewState(t);if(null===n)return l.Promise.reject(\"URL \"+e+\" was not recognized\");var r=new T(this,t,n,void 0);return r.then(function(){var e=k(n.routeInfos,r[E],!0);return e[e.length-1]})},t.generateNewState=function(e){try{return e.applyToState(this.state,!1)}catch(e){return null}},t.getTransitionByIntent=function(e,t){var n,r=this,i=!!this.activeTransition,o=i?this.activeTransition[_]:this.state,a=e.applyToState(o,t),s=g(o.queryParams,a.queryParams);if(U(a.routeInfos,o.routeInfos)){if(s){var u=this.queryParamsTransition(s,i,o,a);return u.queryParamsOnly=!0,u}return this.activeTransition||new T(this,void 0,void 0)}if(t){var l=new T(this,void 0,void 0);return this.toReadOnlyInfos(l,a),this.setupContexts(a),this.routeWillChange(l),this.activeTransition}return n=new T(this,e,a,void 0,this.activeTransition),function(e,t){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;++n){if(e[n].name!==t[n].name)return!1;if(!function(e,t){{if(!e&&!t)return!0;if(!e&&t||e&&!t)return!1}var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0,o=n.length;i<o;++i){var a=n[i];if(e[a]!==t[a])return!1}return!0}(e[n].params,t[n].params))return!1}return!0}(a.routeInfos,o.routeInfos)&&(n.queryParamsOnly=!0),this.toReadOnlyInfos(n,a),this.activeTransition&&this.activeTransition.redirect(n),(this.activeTransition=n).promise=n.promise.then(function(e){return r.finalizeTransition(n,e)},null,b(\"Settle transition promise when transition is finalized\")),i||this.notifyExistingHandlers(a,n),this.fireQueryParamDidChange(a,s),n},t.doTransition=function(e,t,n){var r,i,o=1<arguments.length&&void 0!==t?t:[],a=2<arguments.length&&void 0!==n&&n,s=o[o.length-1],u={};return void 0!==s&&s.hasOwnProperty(\"queryParams\")&&(u=o.pop().queryParams),i=void 0===e?(d(this,\"Updating query params\"),r=this.state.routeInfos,new j(this,r[r.length-1].name,void 0,[],u)):\"/\"===e.charAt(0)?(d(this,\"Attempting URL transition to \"+e),new F(this,e)):(d(this,\"Attempting transition to \"+e),new j(this,e,void 0,o,u)),this.transitionByIntent(i,a)},t.finalizeTransition=function(t,e){try{d(t.router,t.sequence,\"Resolved all models on destination route; finalizing transition.\");var n=e.routeInfos;return(this.setupContexts(e,t),t.isAborted)?(this.state.routeInfos=this.currentRouteInfos,l.Promise.reject(a(t))):(this._updateURL(t,e),t.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,\"didTransition\",[]),this.didTransition(this.currentRouteInfos),this.toInfos(t,e.routeInfos,!0),this.routeDidChange(t),d(this,t.sequence,\"TRANSITION COMPLETE.\"),n[n.length-1].route)}catch(e){var r;throw e instanceof s||(r=t[_].routeInfos,t.trigger(!0,\"error\",e,t,r[r.length-1].route),t.abort()),e}},t.setupContexts=function(e,t){for(var n,r=this.partitionRoutes(this.state,e),i=0,o=r.exited.length;i<o;i++)delete(n=r.exited[i].route).context,void 0!==n&&(void 0!==n._internalReset&&n._internalReset(!0,t),void 0!==n.exit&&n.exit(t));var a=this.oldState=this.state;this.state=e;var s=this.currentRouteInfos=r.unchanged.slice();try{for(i=0,o=r.reset.length;i<o;i++)void 0!==(n=r.reset[i].route)&&void 0!==n._internalReset&&n._internalReset(!1,t);for(i=0,o=r.updatedContext.length;i<o;i++)this.routeEnteredOrUpdated(s,r.updatedContext[i],!1,t);for(i=0,o=r.entered.length;i<o;i++)this.routeEnteredOrUpdated(s,r.entered[i],!0,t)}catch(e){throw this.state=a,this.currentRouteInfos=a.routeInfos,e}this.state.queryParams=this.finalizeQueryParamChange(s,e.queryParams,t)},t.fireQueryParamDidChange=function(e,t){t&&(this._changedQueryParams=t.all,this.triggerEvent(e.routeInfos,!0,\"queryParamsDidChange\",[t.changed,t.all,t.removed]),this._changedQueryParams=void 0)},t.routeEnteredOrUpdated=function(t,n,r,i){var e=n.route,o=n.context;function a(e){if(r&&void 0!==e.enter&&e.enter(i),i&&i.isAborted)throw new s;if(e.context=o,void 0!==e.contextDidChange&&e.contextDidChange(),void 0!==e.setup&&e.setup(o,i),i&&i.isAborted)throw new s;return t.push(n),e}return void 0===e?n.routePromise=n.routePromise.then(a):a(e),!0},t.partitionRoutes=function(e,t){for(var n,r=e.routeInfos,i=t.routeInfos,o={updatedContext:[],exited:[],entered:[],unchanged:[],reset:[]},a=!1,s=0,u=i.length;s<u;s++){var l=r[s],c=i[s];l&&l.route===c.route||(n=!0),n?(o.entered.push(c),l&&o.exited.unshift(l)):a||l.context!==c.context?(a=!0,o.updatedContext.push(c)):o.unchanged.push(l)}for(s=i.length,u=r.length;s<u;s++)o.exited.unshift(r[s]);return o.reset=o.updatedContext.slice(),o.reset.reverse(),o},t._updateURL=function(e,t){var n=e.urlMethod;if(n){for(var r,i,o,a,s,u=t.routeInfos,l=u[u.length-1].name,c={},h=u.length-1;0<=h;--h){var f=u[h];v(c,f.params),f.route.inaccessibleByURL&&(n=null)}n&&(c.queryParams=e._visibleQueryParams||t.queryParams,r=this.recognizer.generate(l,c),i=e.isCausedByInitialTransition,o=\"replace\"===n&&!e.isCausedByAbortingTransition,a=e.queryParamsOnly&&\"replace\"===n,s=\"replace\"===n&&e.isCausedByAbortingReplaceTransition,i||o||a||s?this.replaceURL(r):this.updateURL(r))}},t.finalizeQueryParamChange=function(e,t,n){for(var r in t)t.hasOwnProperty(r)&&null===t[r]&&delete t[r];var i=[];this.triggerEvent(e,!0,\"finalizeQueryParamChange\",[t,i,n]),n&&(n._visibleQueryParams={});for(var o={},a=0,s=i.length;a<s;++a){var u=i[a];o[u.key]=u.value,n&&!1!==u.visible&&(n._visibleQueryParams[u.key]=u.value)}return o},t.toReadOnlyInfos=function(e,t){var n=this.state.routeInfos;this.fromInfos(e,n),this.toInfos(e,t.routeInfos),this._lastQueryParams=t.queryParams},t.fromInfos=function(e,t){var n;void 0!==e&&0<t.length&&(n=k(t,(0,f.assign)({},this._lastQueryParams),!0),e.from=n[n.length-1]||null)},t.toInfos=function(e,t){var n,r=2<arguments.length&&void 0!==arguments[2]&&arguments[2];void 0!==e&&0<t.length&&(n=k(t,(0,f.assign)({},e[E]),r),e.to=n[n.length-1]||null)},t.notifyExistingHandlers=function(e,t){for(var n,r,i=this.state.routeInfos,o=i.length,a=0;a<o&&(n=i[a],(r=e.routeInfos[a])&&n.name===r.name);a++)r.isResolved;this.triggerEvent(i,!0,\"willTransition\",[t]),this.routeWillChange(t),this.willTransition(i,e.routeInfos,t)},t.reset=function(){this.state&&u(this.state.routeInfos.slice().reverse(),function(e){var t=e.route;return void 0!==t&&void 0!==t.exit&&t.exit(),!0}),this.oldState=void 0,this.state=new L,this.currentRouteInfos=void 0},t.handleURL=function(e){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),this.doTransition(e).method(null)},t.transitionTo=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return\"object\"==typeof e?(n.push(e),this.doTransition(void 0,n,!1)):this.doTransition(e,n)},t.intermediateTransitionTo=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.doTransition(e,n,!0)},t.refresh=function(e){var t=this.activeTransition,n=t?t[_]:this.state,r=n.routeInfos;void 0===e&&(e=r[0].route),d(this,\"Starting a refresh transition\");var i=r[r.length-1].name,o=new j(this,i,e,[],this._changedQueryParams||n.queryParams),a=this.transitionByIntent(o,!1);return t&&\"replace\"===t.urlMethod&&a.method(t.urlMethod),a},t.replaceWith=function(e){return this.doTransition(e).method(\"replace\")},t.generate=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var i=h(n),o=i[0],a=i[1],s=new j(this,e,void 0,o).applyToState(this.state,!1),u={},l=0,c=s.routeInfos.length;l<c;++l){v(u,s.routeInfos[l].serialize())}return u.queryParams=a,this.recognizer.generate(e,u)},t.applyIntent=function(e,t){var n=new j(this,e,void 0,t),r=this.activeTransition&&this.activeTransition[_]||this.state;return n.applyToState(r,!1)},t.isActiveIntent=function(e,t,n,r){var i=r||this.state,o=i.routeInfos;if(!o.length)return!1;for(var a=o[o.length-1].name,s=this.recognizer.handlersFor(a),u=0,l=s.length;u<l&&o[u].name!==e;++u);if(u===s.length)return!1;var c=new L;c.routeInfos=o.slice(0,u+1),s=s.slice(0,u+1);var h=U(new j(this,a,void 0,t).applyToHandlers(c,s,a,!0,!0).routeInfos,c.routeInfos);if(!n||!h)return h;var f={};v(f,n);var p=i.queryParams;for(var d in p)p.hasOwnProperty(d)&&f.hasOwnProperty(d)&&(f[d]=p[d]);return h&&!g(f,n)},t.isActive=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=h(n);return this.isActiveIntent(e,i[0],i[1])},t.trigger=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.triggerEvent(this.currentRouteInfos,!1,e,n)},e}();function U(e,t){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;++n)if(e[n]!==t[n])return!1;return!0}e.default=B}),e(\"rsvp\",[\"exports\",\"node-module\",\"ember-babel\"],function(e,t,o){\"use strict\";function a(e){return e._promiseCallbacks||(e._promiseCallbacks={})}e.asap=$,e.all=N,e.allSettled=L,e.race=M,e.hash=D,e.hashSettled=F,e.rethrow=B,e.defer=U,e.denodeify=O,e.configure=r,e.on=de,e.off=me,e.resolve=H,e.reject=V,e.map=q,e.filter=G,e.async=e.EventTarget=e.Promise=e.cast=e.default=void 0;var n={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e._promiseCallbacks=void 0,e},on:function(e,t){if(\"function\"!=typeof t)throw new TypeError(\"Callback must be a function\");var n=a(this),r=n[e];-1===(r=r||(n[e]=[])).indexOf(t)&&r.push(t)},off:function(e,t){var n,r,i=a(this);t?-1!==(r=(n=i[e]).indexOf(t))&&n.splice(r,1):i[e]=[]},trigger:function(e,t,n){var r=a(this)[e];if(r)for(var i=0;i<r.length;i++)(0,r[i])(t,n)}};e.EventTarget=n;var s={instrument:!1};function r(e,t){if(2!==arguments.length)return s[e];s[e]=t}n.mixin(s);var i=[];function u(e,t,n){1===i.push({name:e,payload:{key:t._guidKey,id:t._id,eventName:e,detail:t._result,childId:n&&n._id,label:t._label,timeStamp:Date.now(),error:s[\"instrument-with-stack\"]?new Error(t._label):null}})&&setTimeout(function(){for(var e=0;e<i.length;e++){var t=i[e],n=t.payload;n.guid=n.key+n.id,n.childGuid=n.key+n.childId,n.error&&(n.stack=n.error.stack),s.trigger(t.name,t.payload)}i.length=0},50)}function l(e,t){if(e&&\"object\"==typeof e&&e.constructor===this)return e;var n=new this(p,t);return v(n,e),n}function p(){}var c=void 0,h=1,f=2;function d(e,r,i){s.async(function(t){var n=!1,e=function(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}(i,r,function(e){n||(n=!0,(r===e?y:v)(t,e))},function(e){n||(n=!0,b(t,e))},t._label);!n&&e&&(n=!0,b(t,e))},e)}function m(e,t,n){var r,i;t.constructor===e.constructor&&n===T&&e.constructor.resolve===l?(r=e,(i=t)._state===h?y(r,i._result):i._state===f?(i._onError=null,b(r,i._result)):_(i,void 0,function(e){(i===e?y:v)(r,e)},function(e){return b(r,e)})):\"function\"==typeof n?d(e,t,n):y(e,t)}function v(t,e){if(t===e)y(t,e);else if(i=typeof(r=e),null===r||\"object\"!=i&&\"function\"!=i)y(t,e);else{var n;try{n=e.then}catch(e){return void b(t,e)}m(t,e,n)}var r,i}function g(e){e._onError&&e._onError(e._result),w(e)}function y(e,t){e._state===c&&(e._result=t,e._state=h,0===e._subscribers.length?s.instrument&&u(\"fulfilled\",e):s.async(w,e))}function b(e,t){e._state===c&&(e._state=f,e._result=t,s.async(g,e))}function _(e,t,n,r){var i=e._subscribers,o=i.length;e._onError=null,i[o]=t,i[o+h]=n,i[o+f]=r,0===o&&e._state&&s.async(w,e)}function w(e){var t=e._subscribers,n=e._state;if(s.instrument&&u(n===h?\"fulfilled\":\"rejected\",e),0!==t.length){for(var r,i,o=e._result,a=0;a<t.length;a+=3)r=t[a],i=t[a+n],r?E(n,r,i,o):i(o);e._subscribers.length=0}}function E(e,t,n,r){var i,o,a=\"function\"==typeof n,s=!0;if(a)try{i=n(r)}catch(e){s=!1,o=e}else i=r;t._state!==c||(i===t?b(t,new TypeError(\"A promises callback cannot return that same promise.\")):!1===s?b(t,o):a?v(t,i):e===h?y(t,i):e===f&&b(t,i))}function T(e,t,n){var r=this._state;if(r===h&&!e||r===f&&!t)return s.instrument&&u(\"chained\",this,this),this;this._onError=null;var i,o=new this.constructor(p,n),a=this._result;return s.instrument&&u(\"chained\",this,o),r===c?_(this,o,e,t):(i=r===h?e:t,s.async(function(){return E(r,o,i,a)})),o}var C=function(){function e(e,t,n,r){this._instanceConstructor=e,this.promise=new e(p,r),this._abortOnReject=n,this._isUsingOwnPromise=e===A,this._isUsingOwnResolve=e.resolve===l,this._init.apply(this,arguments)}var t=e.prototype;return t._init=function(e,t){var n=t.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(t)},t._enumerate=function(e){for(var t=this.length,n=this.promise,r=0;n._state===c&&r<t;r++)this._eachEntry(e[r],r,!0);this._checkFullfillment()},t._checkFullfillment=function(){var e;0===this._remaining&&(e=this._result,y(this.promise,e),this._result=null)},t._settleMaybeThenable=function(t,e,n){var r=this._instanceConstructor;if(this._isUsingOwnResolve){var i,o,a,s=!0;try{i=t.then}catch(e){s=!1,o=e}i===T&&t._state!==c?(t._onError=null,this._settledAt(t._state,e,t._result,n)):\"function\"!=typeof i?this._settledAt(h,e,t,n):this._isUsingOwnPromise?(a=new r(p),!1===s?b(a,o):(m(a,t,i),this._willSettleAt(a,e,n))):this._willSettleAt(new r(function(e){return e(t)}),e,n)}else this._willSettleAt(r.resolve(t),e,n)},t._eachEntry=function(e,t,n){null!==e&&\"object\"==typeof e?this._settleMaybeThenable(e,t,n):this._setResultAt(h,t,e,n)},t._settledAt=function(e,t,n,r){var i=this.promise;i._state===c&&(this._abortOnReject&&e===f?b(i,n):(this._setResultAt(e,t,n,r),this._checkFullfillment()))},t._setResultAt=function(e,t,n){this._remaining--,this._result[t]=n},t._willSettleAt=function(e,t,n){var r=this;_(e,void 0,function(e){return r._settledAt(h,t,e,n)},function(e){return r._settledAt(f,t,e,n)})},e}();function R(e,t,n){this._remaining--,this._result[t]=e===h?{state:\"fulfilled\",value:n}:{state:\"rejected\",reason:n}}var k=\"rsvp_\"+Date.now()+\"-\",x=0;var A=function(){function n(e,t){this._id=x++,this._label=t,this._state=void 0,this._result=void 0,this._subscribers=[],s.instrument&&u(\"created\",this),p!==e&&(\"function\"!=typeof e&&function(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}(),this instanceof n?function(t,e){var n=!1;try{e(function(e){n||(n=!0,v(t,e))},function(e){n||(n=!0,b(t,e))})}catch(e){b(t,e)}}(this,e):function(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}())}var e=n.prototype;return e._onError=function(e){var t=this;s.after(function(){t._onError&&s.trigger(\"error\",e,t._label)})},e.catch=function(e,t){return this.then(void 0,e,t)},e.finally=function(t){var n=this.constructor;return\"function\"==typeof t?this.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})}):this.then(t,t)},n}();function O(h,f){function e(){for(var e=arguments.length,t=new Array(e+1),n=!1,r=0;r<e;++r){var i=arguments[r];if(!n){if(null!==i&&\"object\"==typeof i)if(i.constructor===A)n=!0;else try{n=i.then}catch(e){var o=new A(p);return b(o,e),o}else n=!1;n&&!0!==n&&(i=function(n,r){return{then:function(e,t){return n.call(r,e,t)}}}(n,i))}t[r]=i}var a,s,u,l,c=new A(p);return t[e]=function(e,t){e?b(c,e):void 0===f?v(c,t):!0===f?v(c,function(e){for(var t=e.length,n=new Array(t-1),r=1;r<t;r++)n[r-1]=e[r];return n}(arguments)):Array.isArray(f)?v(c,function(e,t){for(var n={},r=e.length,i=new Array(r),o=0;o<r;o++)i[o]=e[o];for(var a=0;a<t.length;a++){n[t[a]]=i[a+1]}return n}(arguments,f)):v(c,t)},n?(a=c,s=t,u=h,l=this,A.all(s).then(function(e){return S(a,e,u,l)})):S(c,t,h,this)}return e.__proto__=h,e}function S(t,e,n,r){try{n.apply(r,e)}catch(e){b(t,e)}return t}function N(e,t){return A.all(e,t)}(e.Promise=A).cast=l,A.all=function(e,t){return Array.isArray(e)?new C(this,e,!0,t).promise:this.reject(new TypeError(\"Promise.all must be called with an array\"),t)},A.race=function(e,t){var n=new this(p,t);if(!Array.isArray(e))return b(n,new TypeError(\"Promise.race must be called with an array\")),n;for(var r=0;n._state===c&&r<e.length;r++)_(this.resolve(e[r]),void 0,function(e){return v(n,e)},function(e){return b(n,e)});return n},A.resolve=l,A.reject=function(e,t){var n=new this(p,t);return b(n,e),n},A.prototype._guidKey=k,A.prototype.then=T;var P=function(r){function e(e,t,n){return r.call(this,e,t,!1,n)||this}return(0,o.inheritsLoose)(e,r),e}(C);function L(e,t){return Array.isArray(e)?new P(A,e,t).promise:A.reject(new TypeError(\"Promise.allSettled must be called with an array\"),t)}function M(e,t){return A.race(e,t)}P.prototype._setResultAt=R;var j=function(i){function e(e,t){var n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2],r=3<arguments.length?arguments[3]:void 0;return i.call(this,e,t,n,r)||this}(0,o.inheritsLoose)(e,i);var t=e.prototype;return t._init=function(e,t){this._result={},this._enumerate(t)},t._enumerate=function(e){var t,n,r=Object.keys(e),i=r.length,o=this.promise;this._remaining=i;for(var a=0;o._state===c&&a<i;a++)n=e[t=r[a]],this._eachEntry(n,t,!0);this._checkFullfillment()},e}(C);function D(e,t){return A.resolve(e,t).then(function(e){if(null===e||\"object\"!=typeof e)throw new TypeError(\"Promise.hash must be called with an object\");return new j(A,e,t).promise})}var I=function(r){function e(e,t,n){return r.call(this,e,t,!1,n)||this}return(0,o.inheritsLoose)(e,r),e}(j);function F(e,t){return A.resolve(e,t).then(function(e){if(null===e||\"object\"!=typeof e)throw new TypeError(\"hashSettled must be called with an object\");return new I(A,e,!1,t).promise})}function B(e){throw setTimeout(function(){throw e}),e}function U(e){var n={resolve:void 0,reject:void 0};return n.promise=new A(function(e,t){n.resolve=e,n.reject=t},e),n}I.prototype._setResultAt=R;var z=function(i){function e(e,t,n,r){return i.call(this,e,t,!0,r,n)||this}(0,o.inheritsLoose)(e,i);var t=e.prototype;return t._init=function(e,t,n,r,i){var o=t.length||0;this.length=o,this._remaining=o,this._result=new Array(o),this._mapFn=i,this._enumerate(t)},t._setResultAt=function(e,t,n,r){if(r)try{this._eachEntry(this._mapFn(n,t),t,!1)}catch(e){this._settledAt(f,t,e,!1)}else this._remaining--,this._result[t]=n},e}(C);function q(e,t,n){return\"function\"!=typeof t?A.reject(new TypeError(\"map expects a function as a second argument\"),n):A.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError(\"map must be called with an array\");return new z(A,e,t,n).promise})}function H(e,t){return A.resolve(e,t)}function V(e,t){return A.reject(e,t)}var W={},Y=function(e){function t(){return e.apply(this,arguments)||this}(0,o.inheritsLoose)(t,e);var n=t.prototype;return n._checkFullfillment=function(){var e;0===this._remaining&&null!==this._result&&(e=this._result.filter(function(e){return e!==W}),y(this.promise,e),this._result=null)},n._setResultAt=function(e,t,n,r){if(r){this._result[t]=n;var i,o=!0;try{i=this._mapFn(n,t)}catch(e){o=!1,this._settledAt(f,t,e,!1)}o&&this._eachEntry(i,t,!1)}else this._remaining--,n||(this._result[t]=W)},t}(z);function G(e,t,n){return\"function\"!=typeof t?A.reject(new TypeError(\"filter expects function as a second argument\"),n):A.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError(\"filter must be called with an array\");return new Y(A,e,t,n).promise})}var Q,K=0;function $(e,t){ce[K]=e,ce[K+1]=t,2===(K+=2)&&re()}var X=\"undefined\"!=typeof window?window:void 0,J=X||{},Z=J.MutationObserver||J.WebKitMutationObserver,ee=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process),te=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel;function ne(){return function(){return setTimeout(he,1)}}var re,ie,oe,ae,se,ue,le,ce=new Array(1e3);function he(){for(var e=0;e<K;e+=2){(0,ce[e])(ce[e+1]),ce[e]=void 0,ce[e+1]=void 0}K=0}re=ee?(ue=process.nextTick,le=process.versions.node.match(/^(?:(\\d+)\\.)?(?:(\\d+)\\.)?(\\*|\\d+)$/),Array.isArray(le)&&\"0\"===le[1]&&\"10\"===le[2]&&(ue=setImmediate),function(){return ue(he)}):Z?(oe=0,ae=new Z(he),se=document.createTextNode(\"\"),ae.observe(se,{characterData:!0}),function(){return se.data=oe=++oe%2}):te?((ie=new MessageChannel).port1.onmessage=he,function(){return ie.port2.postMessage(0)}):(void 0===X&&\"function\"==typeof t.require?function(){try{var e=Function(\"return this\")().require(\"vertx\");return void 0!==(Q=e.runOnLoop||e.runOnContext)?function(){Q(he)}:ne()}catch(e){return ne()}}:ne)(),s.async=$,s.after=function(e){return setTimeout(e,0)};var fe=H;e.cast=fe;function pe(e,t){return s.async(e,t)}function de(){s.on.apply(s,arguments)}function me(){s.off.apply(s,arguments)}if(e.async=pe,\"undefined\"!=typeof window&&\"object\"==typeof window.__PROMISE_INSTRUMENTATION__){var ve=window.__PROMISE_INSTRUMENTATION__;for(var ge in r(\"instrument\",!0),ve)ve.hasOwnProperty(ge)&&de(ge,ve[ge])}var ye={asap:$,cast:fe,Promise:A,EventTarget:n,all:N,allSettled:L,race:M,hash:D,hashSettled:F,rethrow:B,defer:U,denodeify:O,configure:r,on:de,off:me,resolve:H,reject:V,map:q,async:pe,filter:G};e.default=ye}),f(\"ember\")}(),function(){var r,c={},i={\"ember-addons/ember-computed-decorators\":\"discourse-common/utils/decorators\"};\"undefined\"!=typeof Ember&&(c={jquery:{default:$},\"@ember/array\":{default:Ember.Array,A:Ember.A},\"@ember/array/proxy\":{default:Ember.ArrayProxy},\"@ember/component\":{default:Ember.Component,TextArea:Ember.TextArea,TextField:Ember.TextField},\"@ember/controller\":{default:Ember.Controller,inject:Ember.inject.controller},\"@ember/debug\":{warn:Ember.warn},\"@ember/object\":{action:Ember._action,default:Ember.Object,get:Ember.get,getProperties:Ember.getProperties,guidFor:Ember.guidFor,set:Ember.set,setProperties:Ember.setProperties,computed:Ember.computed,defineProperty:Ember.defineProperty},\"@ember/object/computed\":{alias:Ember.computed.alias,and:Ember.computed.and,bool:Ember.computed.bool,collect:Ember.computed.collect,deprecatingAlias:Ember.computed.deprecatingAlias,empty:Ember.computed.empty,equal:Ember.computed.equal,filter:Ember.computed.filter,filterBy:Ember.computed.filterBy,gt:Ember.computed.gt,gte:Ember.computed.gte,intersect:Ember.computed.intersect,lt:Ember.computed.lt,lte:Ember.computed.lte,map:Ember.computed.map,mapBy:Ember.computed.mapBy,match:Ember.computed.match,max:Ember.computed.max,min:Ember.computed.min,none:Ember.computed.none,not:Ember.computed.not,notEmpty:Ember.computed.notEmpty,oneWay:Ember.computed.oneWay,or:Ember.computed.or,readOnly:Ember.computed.readOnly,reads:Ember.computed.reads,setDiff:Ember.computed.setDiff,sort:Ember.computed.sort,sum:Ember.computed.sum,union:Ember.computed.union,uniq:Ember.computed.uniq,uniqBy:Ember.computed.uniqBy},\"@ember/object/mixin\":{default:Ember.Mixin},\"@ember/object/proxy\":{default:Ember.ObjectProxy},\"@ember/object/evented\":{default:Ember.Evented,on:Ember.on},\"@ember/routing/route\":{default:Ember.Route},\"@ember/routing/router\":{default:Ember.Router},\"@ember/runloop\":{bind:Ember.run.bind,cancel:Ember.run.cancel,debounce:Ember.testing?Ember.run:Ember.run.debounce,later:Ember.run.later,next:Ember.run.next,once:Ember.run.once,run:Ember.run,schedule:Ember.run.schedule,scheduleOnce:Ember.run.scheduleOnce,throttle:Ember.run.throttle},\"@ember/service\":{default:Ember.Service,inject:Ember.inject.service},\"@ember/utils\":{isPresent:Ember.isPresent,isBlank:Ember.isBlank,isEmpty:Ember.isEmpty,isNone:Ember.isNone},rsvp:{default:Ember.RSVP,EventTarget:Ember.RSVP.EventTarget,Promise:Ember.RSVP.Promise,hash:Ember.RSVP.hash,all:Ember.RSVP.all},\"@ember/string\":{dasherize:Ember.String.dasherize,classify:Ember.String.classify,underscore:Ember.String.underscore,camelize:Ember.String.camelize},\"@ember/template\":{htmlSafe:Ember.String.htmlSafe},\"@ember/application\":{default:Ember.Application,setOwner:Ember.setOwner,getOwner:Ember.getOwner},\"@ember/component/helper\":{default:Ember.Helper},\"@ember/error\":{default:Ember.error},\"@ember/object/internals\":{guidFor:Ember.guidFor}}),r=Array.isArray?Array.isArray:function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};var h={},a={},o=0;var s=[\"require\",\"exports\",\"module\"];function u(e,t,n,r){this.id=o++,this.name=e,this.deps=!t.length&&n.length?s:t,this.exports=r||{},this.callback=n,this.state=void 0,this._require=void 0}function l(e){this.name=e}function f(e,t,n){for(var r,i=e.deps,o=i.length,a=new Array(o),s={},u=0,l=o;u<l;u++)\"exports\"===(r=i[u])?s.exports=a[u]=n:\"require\"===r?a[u]=e.makeRequire():\"module\"===r?(e.exports=n,s=a[u]=e):a[u]=function(e,t){\"discourse/models/input-validation\"===(e=p(e))&&(console.log(\"input-validation has been removed and should be replaced with `@ember/object`\"),e=\"@ember/object\");if(c[e]||h[e])return requirejs(e);throw new Error(\"Could not find module `\"+e+\"` imported from `\"+t+\"`\")}(d(r,t),t);return{deps:a,module:s}}function p(e){var t,n,r=i[e];return r?(n=\"[DEPRECATION] `\"+e+\"` is deprecated.\",(t=r)&&(n+=\" Please use `\"+t+\"` instead.\"),console.warn(n),r):e}function d(e,t){if(\".\"!==e.charAt(0))return e;for(var n=e.split(\"/\"),r=t.split(\"/\").slice(0,-1),i=0,o=n.length;i<o;i++){var a=n[i];if(\"..\"===a){if(0===r.length)throw new Error(\"Cannot access parent module of root\");r.pop()}else{if(\".\"===a)continue;r.push(a)}}return r.join(\"/\")}u.prototype.makeRequire=function(){var t=p(this.name);return this._require||(this._require=function(e){return requirejs(d(e,t))})},(define=function(e,t,n){arguments.length<2&&function(e){throw new Error(\"an unsupported module was defined, expected `define(name, deps, module)` instead got: `\"+e+\"` arguments to define`\")}(arguments.length),r(t)||(n=t,t=[]),h[e]=new u(e,t,n)}).petal={},define.alias=function(e){return new l(e)},requirejs=require=function(e){if(e=p(e),c[e])return c[e];var t,n,r=h[e];if(r&&r.callback instanceof l&&(r=h[r.callback.name]),r||function(e){throw new Error(\"Could not find module \"+e)}(e),!1!==r.state&&a.hasOwnProperty(e))return a[e];var i,o=!1;return a[e]={},function(e,t){try{e()}finally{t()}}(function(){t=f(r,e,a[e]),n=r.callback.apply(this,t.deps),o=!0},function(){o||(r.state=!1)}),null===(i=void 0===n&&t.module.exports?t.module.exports:a[e]=n)||\"object\"!=typeof i&&\"function\"!=typeof i||void 0!==i.default||(i.default=i),a[e]=i},(window.requireModule=requirejs).entries=requirejs._eak_seen=h,requirejs.clear=function(){requirejs.entries=requirejs._eak_seen=h={},a={}}}(),define(\"ember\",[\"exports\"],function(e){console.warn([\"Deprecation notice:\",\"Use specific `@ember/*` imports instead of `ember`\",\"(deprecated since Discourse 2.4.0)\",\"(removal in Discourse 2.5.0)\"].join(\" \")),e.default=Ember});\n//# sourceMappingURL=/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.12800000661425293,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1431.6550000006575,
          "receive": 2373.9589999895543,
          "_blocked_queueing": 0.12700000661425292
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 27
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.619Z",
        "time": 1465.9799999790266,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000482"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:49:59 GMT"
            },
            {
              "name": "Content-Length",
              "value": "468"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 678,
            "mimeType": "application/javascript",
            "text": "define(\"preload-store\",[\"exports\",\"rsvp\"],function(t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={data:{},store:function(t,e){this.data[t]=e},getAndRemove:function(t,r){if(this.data[t]){var e=n.Promise.resolve(this.data[t]);return delete this.data[t],e}return r?new n.Promise(function(e,n){var t=r();t&&t.then?t.then(function(t){return e(t)}).catch(function(t){return n(t)}):e(t)}):n.Promise.resolve(null)},get:function(t){return this.data[t]},remove:function(t){this.data[t]&&delete this.data[t]},reset:function(){this.data={}}}});\n//# sourceMappingURL=/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.12099998241662979,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1465.5709999864232,
          "receive": 0.2880000101868063,
          "_blocked_queueing": 0.11999998241662979
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 30
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2567.3229999956675,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000467"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:49:51 GMT"
            },
            {
              "name": "Content-Length",
              "value": "59934"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 176747,
            "mimeType": "application/javascript",
            "text": "var Markdown;!function(){var a=null;window.Logster||(window.Logster={enabled:!0}),window.onerror=function(e,t,n,r,o){var i;a&&new Date-a<6e4||Logster.enabled&&(a=new Date,i={message:e,url:t,line:n,column:r,window_location:window.location&&window.location+\"\"},o&&o.stack&&(i.stacktrace=o.stack),$.ajax(\"/logs/report_js_error\",{data:i,type:\"POST\",cache:!1}))}}(),function(){window.jQuery;window.Discourse={},Discourse.SiteSettings={}}(),function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.Handlebars=t():e.Handlebars=t()}(this,function(){return o={},n.m=r=[function(e,t,n){\"use strict\";var r=n(1).default,o=n(2).default;t.__esModule=!0;var i=r(n(3)),a=o(n(32)),s=o(n(5)),u=r(n(4)),c=r(n(33)),l=o(n(38));function f(){var t=new i.HandlebarsEnvironment;return u.extend(t,i),t.SafeString=a.default,t.Exception=s.default,t.Utils=u,t.escapeExpression=u.escapeExpression,t.VM=c,t.template=function(e){return c.template(e,t)},t}var p=f();p.create=f,l.default(p),p.default=p,t.default=p,e.exports=t.default},function(e,t){\"use strict\";t.default=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},t.__esModule=!0},function(e,t){\"use strict\";t.default=function(e){return e&&e.__esModule?e:{default:e}},t.__esModule=!0},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.HandlebarsEnvironment=l;var o=n(4),i=r(n(5)),a=n(9),s=n(29),u=r(n(31));t.VERSION=\"4.5.3\";t.COMPILER_REVISION=8;t.LAST_COMPATIBLE_COMPILER_REVISION=7;t.REVISION_CHANGES={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\"== 1.x.x\",5:\"== 2.0.0-alpha.x\",6:\">= 2.0.0-beta.1\",7:\">= 4.0.0 <4.3.0\",8:\">= 4.3.0\"};var c=\"[object Object]\";function l(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},a.registerDefaultHelpers(this),s.registerDefaultDecorators(this)}l.prototype={constructor:l,logger:u.default,log:u.default.log,registerHelper:function(e,t){if(o.toString.call(e)===c){if(t)throw new i.default(\"Arg not supported with multiple helpers\");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(o.toString.call(e)===c)o.extend(this.partials,e);else{if(void 0===t)throw new i.default('Attempting to register a partial called \"'+e+'\" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(o.toString.call(e)===c){if(t)throw new i.default(\"Arg not supported with multiple decorators\");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var f=u.default.log;t.log=f,t.createFrame=o.createFrame,t.logger=u.default},function(e,t){\"use strict\";t.__esModule=!0,t.extend=a,t.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},t.escapeExpression=function(e){if(\"string\"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return\"\";if(!e)return e+\"\";e=\"\"+e}return o.test(e)?e.replace(r,i):e},t.isEmpty=function(e){return!e&&0!==e||!(!c(e)||0!==e.length)},t.createFrame=function(e){var t=a({},e);return t._parent=e,t},t.blockParams=function(e,t){return e.path=t,e},t.appendContextPath=function(e,t){return(e?e+\".\":\"\")+t};var n={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\",\"=\":\"&#x3D;\"},r=/[&<>\"'`=]/g,o=/[&<>\"'`=]/;function i(e){return n[e]}function a(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString;t.toString=s;var u=function(e){return\"function\"==typeof e};u(/x/)&&(t.isFunction=u=function(e){return\"function\"==typeof e&&\"[object Function]\"===s.call(e)}),t.isFunction=u;var c=Array.isArray||function(e){return!(!e||\"object\"!=typeof e)&&\"[object Array]\"===s.call(e)};t.isArray=c},function(e,t,n){\"use strict\";var c=n(6).default;t.__esModule=!0;var l=[\"description\",\"fileName\",\"lineNumber\",\"endLineNumber\",\"message\",\"name\",\"number\",\"stack\"];function f(e,t){var n=t&&t.loc,r=void 0,o=void 0,i=void 0,a=void 0;n&&(r=n.start.line,o=n.end.line,i=n.start.column,a=n.end.column,e+=\" - \"+r+\":\"+i);for(var s=Error.prototype.constructor.call(this,e),u=0;u<l.length;u++)this[l[u]]=s[l[u]];Error.captureStackTrace&&Error.captureStackTrace(this,f);try{n&&(this.lineNumber=r,this.endLineNumber=o,c?(Object.defineProperty(this,\"column\",{value:i,enumerable:!0}),Object.defineProperty(this,\"endColumn\",{value:a,enumerable:!0})):(this.column=i,this.endColumn=a))}catch(e){}}f.prototype=new Error,t.default=f,e.exports=t.default},function(e,t,n){e.exports={default:n(7),__esModule:!0}},function(e,t,n){var r=n(8);e.exports=function(e,t,n){return r.setDesc(e,t,n)}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.registerDefaultHelpers=function(e){o.default(e),i.default(e),a.default(e),s.default(e),u.default(e),c.default(e),l.default(e)},t.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var o=r(n(10)),i=r(n(11)),a=r(n(24)),s=r(n(25)),u=r(n(26)),c=r(n(27)),l=r(n(28))},function(e,t,n){\"use strict\";t.__esModule=!0;var a=n(4);t.default=function(i){i.registerHelper(\"blockHelperMissing\",function(e,t){var n,r=t.inverse,o=t.fn;return!0===e?o(this):!1===e||null==e?r(this):a.isArray(e)?0<e.length?(t.ids&&(t.ids=[t.name]),i.helpers.each(e,t)):r(this):(t.data&&t.ids&&((n=a.createFrame(t.data)).contextPath=a.appendContextPath(t.data.contextPath,t.name),t={data:n}),o(e,t))})},e.exports=t.default},function(t,n,r){(function(h){\"use strict\";var v=r(12).default,e=r(2).default;n.__esModule=!0;var g=r(4),m=e(r(5));n.default=function(e){e.registerHelper(\"each\",function(r,e){if(!e)throw new m.default(\"Must pass iterator to #each\");var t,o=e.fn,n=e.inverse,i=0,a=\"\",s=void 0,u=void 0;function c(e,t,n){s&&(s.key=e,s.index=t,s.first=0===t,s.last=!!n,u&&(s.contextPath=u+e)),a+=o(r[e],{data:s,blockParams:g.blockParams([r[e],e],[u+e,null])})}if(e.data&&e.ids&&(u=g.appendContextPath(e.data.contextPath,e.ids[0])+\".\"),g.isFunction(r)&&(r=r.call(this)),e.data&&(s=g.createFrame(e.data)),r&&\"object\"==typeof r)if(g.isArray(r))for(var l=r.length;i<l;i++)i in r&&c(i,i,i===r.length-1);else if(h.Symbol&&r[h.Symbol.iterator]){for(var f=[],p=r[h.Symbol.iterator](),d=p.next();!d.done;d=p.next())f.push(d.value);for(l=(r=f).length;i<l;i++)c(i,i,i===r.length-1)}else t=void 0,v(r).forEach(function(e){void 0!==t&&c(t,i-1),t=e,i++}),void 0!==t&&c(t,i-1,!0);return 0===i&&(a=n(this)),a})},t.exports=n.default}).call(n,function(){return this}())},function(e,t,n){e.exports={default:n(13),__esModule:!0}},function(e,t,n){n(14),e.exports=n(20).Object.keys},function(e,t,n){var r=n(15);n(17)(\"keys\",function(t){return function(e){return t(r(e))}})},function(e,t,n){var r=n(16);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports=function(e){if(null==e)throw TypeError(\"Can't call method on  \"+e);return e}},function(e,t,n){var o=n(18),i=n(20),a=n(23);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],r={};r[e]=t(n),o(o.S+o.F*a(function(){n(1)}),\"Object\",r)}},function(e,t,n){var h=n(19),v=n(20),g=n(21),m=\"prototype\",y=function(e,t,n){var r,o,i,a=e&y.F,s=e&y.G,u=e&y.S,c=e&y.P,l=e&y.B,f=e&y.W,p=s?v:v[t]||(v[t]={}),d=s?h:u?h[t]:(h[t]||{})[m];for(r in s&&(n=t),n)(o=!a&&d&&r in d)&&r in p||(i=o?d[r]:n[r],p[r]=s&&\"function\"!=typeof d[r]?n[r]:l&&o?g(i,h):f&&d[r]==i?function(t){function e(e){return this instanceof t?new t(e):t(e)}return e[m]=t[m],e}(i):c&&\"function\"==typeof i?g(Function.call,i):i,c&&((p[m]||(p[m]={}))[r]=i))};y.F=1,y.G=2,y.S=4,y.P=8,y.B=16,y.W=32,e.exports=y},function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:\"1.2.6\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var i=n(22);e.exports=function(r,o,e){if(i(r),void 0===o)return r;switch(e){case 1:return function(e){return r.call(o,e)};case 2:return function(e,t){return r.call(o,e,t)};case 3:return function(e,t,n){return r.call(o,e,t,n)}}return function(){return r.apply(o,arguments)}}},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=r(n(5));t.default=function(e){e.registerHelper(\"helperMissing\",function(){if(1!==arguments.length)throw new o.default('Missing helper: \"'+arguments[arguments.length-1].name+'\"')})},e.exports=t.default},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=n(4),i=r(n(5));t.default=function(n){n.registerHelper(\"if\",function(e,t){if(2!=arguments.length)throw new i.default(\"#if requires exactly one argument\");return o.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||o.isEmpty(e)?t.inverse(this):t.fn(this)}),n.registerHelper(\"unless\",function(e,t){if(2!=arguments.length)throw new i.default(\"#unless requires exactly one argument\");return n.helpers.if.call(this,e,{fn:t.inverse,inverse:t.fn,hash:t.hash})})},e.exports=t.default},function(e,t){\"use strict\";t.__esModule=!0,t.default=function(o){o.registerHelper(\"log\",function(){for(var e=[void 0],t=arguments[arguments.length-1],n=0;n<arguments.length-1;n++)e.push(arguments[n]);var r=1;null!=t.hash.level?r=t.hash.level:t.data&&null!=t.data.level&&(r=t.data.level),e[0]=r,o.log.apply(o,e)})},e.exports=t.default},function(e,t){\"use strict\";t.__esModule=!0;var n=/^(constructor|__defineGetter__|__defineSetter__|__lookupGetter__|__proto__)$/;t.dangerousPropertyRegex=n,t.default=function(e){e.registerHelper(\"lookup\",function(e,t){return e?!n.test(String(t))||Object.prototype.propertyIsEnumerable.call(e,t)?e[t]:void 0:e})}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=n(4),i=r(n(5));t.default=function(e){e.registerHelper(\"with\",function(e,t){if(2!=arguments.length)throw new i.default(\"#with requires exactly one argument\");o.isFunction(e)&&(e=e.call(this));var n=t.fn;if(o.isEmpty(e))return t.inverse(this);var r=t.data;return t.data&&t.ids&&((r=o.createFrame(t.data)).contextPath=o.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:r,blockParams:o.blockParams([e],[r&&r.contextPath])})})},e.exports=t.default},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.registerDefaultDecorators=function(e){o.default(e)};var o=r(n(30))},function(e,t,n){\"use strict\";t.__esModule=!0;var s=n(4);t.default=function(e){e.registerDecorator(\"inline\",function(o,i,a,e){var t=o;return i.partials||(i.partials={},t=function(e,t){var n=a.partials;a.partials=s.extend({},n,i.partials);var r=o(e,t);return a.partials=n,r}),i.partials[e.args[0]]=e.fn,t})},e.exports=t.default},function(e,t,n){\"use strict\";t.__esModule=!0;var r=n(4),i={methodMap:[\"debug\",\"info\",\"warn\",\"error\"],level:\"info\",lookupLevel:function(e){var t;return\"string\"==typeof e&&(e=0<=(t=r.indexOf(i.methodMap,e.toLowerCase()))?t:parseInt(e,10)),e},log:function(e){if(e=i.lookupLevel(e),\"undefined\"!=typeof console&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];console[t]||(t=\"log\");for(var n=arguments.length,r=Array(1<n?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];console[t].apply(console,r)}}};t.default=i,e.exports=t.default},function(e,t){\"use strict\";function n(e){this.string=e}t.__esModule=!0,n.prototype.toString=n.prototype.toHTML=function(){return\"\"+this.string},t.default=n,e.exports=t.default},function(e,t,n){\"use strict\";var r=n(34).default,o=n(1).default,i=n(2).default;t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=p.COMPILER_REVISION;if(t>=p.LAST_COMPATIBLE_COMPILER_REVISION&&t<=p.COMPILER_REVISION)return;{if(t<p.LAST_COMPATIBLE_COMPILER_REVISION){var r=p.REVISION_CHANGES[n],o=p.REVISION_CHANGES[t];throw new f.default(\"Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (\"+r+\") or downgrade your runtime to an older version (\"+o+\").\")}throw new f.default(\"Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (\"+e[1]+\").\")}},t.template=function(u,c){if(!c)throw new f.default(\"No environment passed to template\");if(!u||!u.main)throw new f.default(\"Unknown template object: \"+typeof u);u.main.decorator=u.main_d,c.VM.checkRevision(u.compiler);var n=u.compiler&&7===u.compiler[0];var a={strict:function(e,t,n){if(!(e&&t in e))throw new f.default('\"'+t+'\" not defined in '+e,{loc:n});return e[t]},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return\"function\"==typeof e?e.call(t):e},escapeExpression:l.escapeExpression,invokePartial:function(e,t,n){n.hash&&(t=l.extend({},t,n.hash),n.ids&&(n.ids[0]=!0)),e=c.VM.resolvePartial.call(this,e,t,n);var r=l.extend({},n,{hooks:this.hooks}),o=c.VM.invokePartial.call(this,e,t,r);if(null==o&&c.compile&&(n.partials[n.name]=c.compile(e,u.compilerOptions,c),o=n.partials[n.name](t,r)),null==o)throw new f.default(\"The partial \"+n.name+\" could not be compiled when running in runtime-only mode\");if(n.indent){for(var i=o.split(\"\\n\"),a=0,s=i.length;a<s&&(i[a]||a+1!==s);a++)i[a]=n.indent+i[a];o=i.join(\"\\n\")}return o},fn:function(e){var t=u[e];return t.decorator=u[e+\"_d\"],t},programs:[],program:function(e,t,n,r,o){var i=this.programs[e],a=this.fn(e);return i=t||o||r||n?h(this,e,a,t,n,r,o):i||(this.programs[e]=h(this,e,a))},data:function(e,t){for(;e&&t--;)e=e._parent;return e},nullContext:r({}),noop:c.VM.noop,compilerInfo:u.compiler};function s(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=t.data;s._setup(t),!t.partial&&u.useData&&(n=function(e,t){t&&\"root\"in t||((t=t?p.createFrame(t):{}).root=e);return t}(e,n));var r=void 0,o=u.useBlockParams?[]:void 0;function i(e){return\"\"+u.main(a,e,a.helpers,a.partials,n,o,r)}return u.useDepths&&(r=t.depths?e!=t.depths[0]?[e].concat(t.depths):t.depths:[e]),(i=v(u.main,i,a,t.depths||[],n,o))(e,t)}return s.isTop=!0,s._setup=function(e){var t;e.partial?(a.helpers=e.helpers,a.partials=e.partials,a.decorators=e.decorators,a.hooks=e.hooks):(a.helpers=l.extend({},c.helpers,e.helpers),u.usePartial&&(a.partials=l.extend({},c.partials,e.partials)),(u.usePartial||u.useDecorators)&&(a.decorators=l.extend({},c.decorators,e.decorators)),a.hooks={},t=e.allowCallsToHelperMissing||n,d.moveHelperToHooks(a,\"helperMissing\",t),d.moveHelperToHooks(a,\"blockHelperMissing\",t))},s._child=function(e,t,n,r){if(u.useBlockParams&&!n)throw new f.default(\"must pass block params\");if(u.useDepths&&!r)throw new f.default(\"must pass parent depths\");return h(a,e,u[e],t,0,n,r)},s},t.wrapProgram=h,t.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e=\"@partial-block\"===n.name?n.data[\"partial-block\"]:n.partials[n.name];return e},t.invokePartial=function(e,t,n){var o=n.data&&n.data[\"partial-block\"];n.partial=!0,n.ids&&(n.data.contextPath=n.ids[0]||n.data.contextPath);var i=void 0;n.fn&&n.fn!==a&&function(){n.data=p.createFrame(n.data);var r=n.fn;i=n.data[\"partial-block\"]=function(e,t){var n=arguments.length<=1||void 0===t?{}:t;return n.data=p.createFrame(n.data),n.data[\"partial-block\"]=o,r(e,n)},r.partials&&(n.partials=l.extend({},n.partials,r.partials))}();void 0===e&&i&&(e=i);{if(void 0===e)throw new f.default(\"The partial \"+n.name+\" could not be found\");if(e instanceof Function)return e(t,n)}},t.noop=a;var l=o(n(4)),f=i(n(5)),p=n(3),d=n(9);function h(r,e,o,i,t,a,s){function n(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=s;return!s||e==s[0]||e===r.nullContext&&null===s[0]||(n=[e].concat(s)),o(r,e,r.helpers,r.partials,t.data||i,a&&[t.blockParams].concat(a),n)}return(n=v(o,n,r,s,i,a)).program=e,n.depth=s?s.length:0,n.blockParams=t||0,n}function a(){return\"\"}function v(e,t,n,r,o,i){var a;return e.decorator&&(a={},t=e.decorator(t,a,n,r&&r[0],o,i,r),l.extend(t,a)),t}},function(e,t,n){e.exports={default:n(35),__esModule:!0}},function(e,t,n){n(36),e.exports=n(20).Object.seal},function(e,t,n){var r=n(37);n(17)(\"seal\",function(t){return function(e){return t&&r(e)?t(e):e}})},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t){(function(r){\"use strict\";t.__esModule=!0,t.default=function(e){var t=void 0!==r?r:window,n=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&&(t.Handlebars=n),e}},e.exports=t.default}).call(t,function(){return this}())}],n.c=o,n.p=\"\",n(0);function n(e){if(o[e])return o[e].exports;var t=o[e]={exports:{},id:e,loaded:!1};return r[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}var r,o}),function(){var n;\"undefined\"!=typeof I18n&&(n=I18n.toHumanSize,I18n.toHumanSize=function(e,t){return(t=t||{}).format=I18n.t(\"number.human.storage_units.format\"),n.apply(this,[e,t])},\"w\"in String.prototype&&(String.prototype.i18n=function(e){return I18n.t(String(this),e)}))}(),function(e,o,a){\"use strict\";e.MessageBus;var d,r,h,i,s,v=!1,t=function(){return\"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx\".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})}(),u=[],g=0,n=!1,c=[],m=0,y=e.jQuery;!function(){for(var e=[\"\",\"webkit\",\"ms\",\"moz\"],t=0;t<e.length;t++){var n=e[t],r=n+(\"\"===n?\"hidden\":\"Hidden\");o[r]!==a&&(s=r)}}();function l(){return s!==a?o[s]:!o.hasFocus}function f(e){var t=!1;if(!e)return!1;for(var n=0;n<e.length;n++)for(var r=e[n],t=!0,o=0;o<u.length;o++){var i=u[o];if(i.channel===r.channel){i.last_id=r.message_id;try{i.func(r.data,r.global_id,r.message_id)}catch(e){console.log&&console.log(\"MESSAGE BUS FAIL: callback \"+i.channel+\" caused exception \"+e.stack)}}\"/__status\"===r.channel&&r.data[i.channel]!==a&&(i.last_id=r.data[i.channel])}return t}function _(e){if(g=0,!n)return f(e);if(e)for(var t=0;t<e.length;t++)c.push(e[t]);return!1}var b,w=function(){try{return localStorage.setItem(\"mbTestLocalStorage\",Date.now()),localStorage.removeItem(\"mbTestLocalStorage\"),!0}catch(e){return!1}}(),x=null===(new XMLHttpRequest).onprogress,k=function(){return E.alwaysLongPoll||!l()},O=0,j=0,p=function(t,i){if(!v){var o,n=!1,a=!1,s=!1;b=new Date,j+=1,i.__seq=j;var e=k()&&E.enableLongPolling,r=e&&E.enableChunkedEncoding&&x;0<m&&(m--,r=!1);var u={\"X-SILENCE-LOGGER\":\"true\"};for(var c in E.headers)u[c]=E.headers[c];r||(u[\"Dont-Chunk\"]=\"true\");var l=r?\"text\":\"json\",f=function(e,t){var n=\"\\r\\n|\\r\\n\",r=e.indexOf(n,t);if(-1===r)return t;var o=(o=e.substring(t,r)).replace(/\\r\\n\\|\\|\\r\\n/g,n);try{_(JSON.parse(o))}catch(e){console.log&&(console.log(\"FAILED TO PARSE CHUNKED REPLY\"),console.log(i))}return f(e,r+n.length)},p=function(){E.longPoll&&(E.longPoll.abort(),m=30)};if(!E.ajax)throw new Error(\"Either jQuery or the ajax adapter must be loaded\");return w&&localStorage.setItem(\"__mbLastAjax\",Date.now()),v=!0,E.ajax({url:E.baseUrl+\"message-bus/\"+E.clientId+\"/poll\"+(e?\"\":\"?dlp=t\"),data:i,cache:!1,async:!0,dataType:l,type:\"POST\",headers:u,messageBus:{chunked:r,onProgressListener:function(e){var t=0,n=setTimeout(p,3e3);return e.onprogress=function(){clearTimeout(n),\"application/json; charset=utf-8\"===e.getResponseHeader(\"Content-Type\")?r=!1:t=f(e.responseText,t)}}},xhr:function(){var e=y.ajaxSettings.xhr();return r&&this.messageBus.onProgressListener(e),e},success:function(e){r||(\"string\"==typeof e&&(e=JSON.parse(e)),n=_(e))},error:function(e,t,n){var r;429===e.status?((r=(r=parseInt(e.getResponseHeader&&e.getResponseHeader(\"Retry-After\"))||0)||0)<15&&(r=15),o=r,s=!0):\"abort\"===t?a=!0:(g+=1,O+=1)},complete:function(){var e;v=!1;try{s?e=Math.max(E.minPollInterval,1e3*o):n||a?e=E.minPollInterval:(e=E.callbackInterval,2<g?e*=g:k()||(e=E.backgroundCallbackInterval),e>E.maxPollInterval&&(e=E.maxPollInterval),(e-=new Date-b)<100&&(e=100))}catch(e){console.log&&e.message&&console.log(\"MESSAGE BUS FAIL: \"+e.message)}h&&(clearTimeout(h),h=null),d&&(h=setTimeout(function(){h=null,t()},e)),E.longPoll=null}})}},E={minHiddenPollInterval:1500,enableChunkedEncoding:!0,enableLongPolling:!0,callbackInterval:15e3,backgroundCallbackInterval:6e4,minPollInterval:100,maxPollInterval:18e4,callbacks:u,clientId:t,alwaysLongPoll:!1,baseUrl:\"/\",headers:{},ajax:y&&y.ajax,noConflict:function(){return e.MessageBus=e.MessageBus.previousMessageBus,this},diagnostics:function(){console.log(\"Stopped: \"+r+\" Started: \"+d),console.log(\"Current callbacks\"),console.log(u),console.log(\"Total ajax calls: \"+j+\" Recent failure count: \"+g+\" Total failures: \"+O),console.log(\"Last ajax call: \"+(new Date-b)/1e3+\" seconds ago\")},pause:function(){n=!0},resume:function(){n=!1,f(c),c=[]},stop:function(){d=!(r=!0),i&&(clearTimeout(i),i=null),E.longPoll&&E.longPoll.abort()},start:function(){var n;d||(r=!(d=!0),n=function(){var e;if(!r)if(0===u.length||function(){if(w&&l()){var e=parseInt(localStorage.getItem(\"__mbLastAjax\"),10),t=Date.now()-e;return 0<=t&&t<E.minHiddenPollInterval}return!1}())i=i||setTimeout(function(){i=null,n()},parseInt(500+500*Math.random()));else{e={};for(var t=0;t<u.length;t++)e[u[t].channel]=u[t].last_id;E.longPoll||(E.longPoll=p(n,e))}},o.addEventListener&&\"hidden\"in o&&(E.visibilityEvent=e.document.addEventListener(\"visibilitychange\",function(){o.hidden||E.longPoll||!h||(clearTimeout(h),clearTimeout(i),h=i=null,n())})),n())},status:function(){if(n)return\"paused\";if(d)return\"started\";if(r)return\"stopped\";throw\"Cannot determine current status\"},subscribe:function(e,t,n){if(d||r||E.start(),\"number\"!=typeof n&&(n=-1),\"string\"!=typeof e)throw\"Channel name must be a string!\";return u.push({channel:e,func:t,last_id:n}),E.longPoll&&E.longPoll.abort(),t},unsubscribe:function(e,t){var n;-1!==e.indexOf(\"*\",e.length-1)&&(e=e.substr(0,e.length-1),n=!0);for(var r=!1,o=u.length-1;0<=o;o--){var i=u[o],a=n?i.channel.substr(0,e.length)!==e:i.channel!==e;!a&&t&&i.func!==t&&(a=!0),a||(u.splice(o,1),r=!0)}return r&&E.longPoll&&E.longPoll.abort(),r}};e.MessageBus=E}(window,document),function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(jQuery)}(function(l){var o,n=0,s=Array.prototype.slice;l.cleanData=(o=l.cleanData,function(e){for(var t,n,r=0;null!=(n=e[r]);r++)try{(t=l._data(n,\"events\"))&&t.remove&&l(n).triggerHandler(\"remove\")}catch(e){}o(e)}),l.widget=function(e,n,t){var r,o,i,a,s={},u=e.split(\".\")[0];return e=e.split(\".\")[1],r=u+\"-\"+e,t||(t=n,n=l.Widget),l.expr[\":\"][r.toLowerCase()]=function(e){return!!l.data(e,r)},l[u]=l[u]||{},o=l[u][e],i=l[u][e]=function(e,t){if(!this._createWidget)return new i(e,t);arguments.length&&this._createWidget(e,t)},l.extend(i,o,{version:t.version,_proto:l.extend({},t),_childConstructors:[]}),(a=new n).options=l.widget.extend({},a.options),l.each(t,function(t,r){function o(){return n.prototype[t].apply(this,arguments)}function i(e){return n.prototype[t].apply(this,e)}l.isFunction(r)?s[t]=function(){var e,t=this._super,n=this._superApply;return this._super=o,this._superApply=i,e=r.apply(this,arguments),this._super=t,this._superApply=n,e}:s[t]=r}),i.prototype=l.widget.extend(a,{widgetEventPrefix:o&&a.widgetEventPrefix||e},s,{constructor:i,namespace:u,widgetName:e,widgetFullName:r}),o?(l.each(o._childConstructors,function(e,t){var n=t.prototype;l.widget(n.namespace+\".\"+n.widgetName,i,t._proto)}),delete o._childConstructors):n._childConstructors.push(i),l.widget.bridge(e,i),i},l.widget.extend=function(e){for(var t,n,r=s.call(arguments,1),o=0,i=r.length;o<i;o++)for(t in r[o])n=r[o][t],r[o].hasOwnProperty(t)&&void 0!==n&&(l.isPlainObject(n)?e[t]=l.isPlainObject(e[t])?l.widget.extend({},e[t],n):l.widget.extend({},n):e[t]=n);return e},l.widget.bridge=function(i,t){var a=t.prototype.widgetFullName||i;l.fn[i]=function(n){var e=\"string\"==typeof n,r=s.call(arguments,1),o=this;return n=!e&&r.length?l.widget.extend.apply(null,[n].concat(r)):n,e?this.each(function(){var e,t=l.data(this,a);return\"instance\"===n?(o=t,!1):t?l.isFunction(t[n])&&\"_\"!==n.charAt(0)?(e=t[n].apply(t,r))!==t&&void 0!==e?(o=e&&e.jquery?o.pushStack(e.get()):e,!1):void 0:l.error(\"no such method '\"+n+\"' for \"+i+\" widget instance\"):l.error(\"cannot call methods on \"+i+\" prior to initialization; attempted to call method '\"+n+\"'\")}):this.each(function(){var e=l.data(this,a);e?(e.option(n||{}),e._init&&e._init()):l.data(this,a,new t(n,this))}),o}},l.Widget=function(){},l.Widget._childConstructors=[],l.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",defaultElement:\"<div>\",options:{disabled:!1,create:null},_createWidget:function(e,t){t=l(t||this.defaultElement||this)[0],this.element=l(t),this.uuid=n++,this.eventNamespace=\".\"+this.widgetName+this.uuid,this.options=l.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=l(),this.hoverable=l(),this.focusable=l(),t!==this&&(l.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=l(t.style?t.ownerDocument:t.document||t),this.window=l(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger(\"create\",null,this._getCreateEventData()),this._init()},_getCreateOptions:l.noop,_getCreateEventData:l.noop,_create:l.noop,_init:l.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(l.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr(\"aria-disabled\").removeClass(this.widgetFullName+\"-disabled ui-state-disabled\"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass(\"ui-state-hover\"),this.focusable.removeClass(\"ui-state-focus\")},_destroy:l.noop,widget:function(){return this.element},option:function(e,t){var n,r,o,i=e;if(0===arguments.length)return l.widget.extend({},this.options);if(\"string\"==typeof e)if(i={},e=(n=e.split(\".\")).shift(),n.length){for(r=i[e]=l.widget.extend({},this.options[e]),o=0;o<n.length-1;o++)r[n[o]]=r[n[o]]||{},r=r[n[o]];if(e=n.pop(),1===arguments.length)return void 0===r[e]?null:r[e];r[e]=t}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];i[e]=t}return this._setOptions(i),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,\"disabled\"===e&&(this.widget().toggleClass(this.widgetFullName+\"-disabled\",!!t),t&&(this.hoverable.removeClass(\"ui-state-hover\"),this.focusable.removeClass(\"ui-state-focus\"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(a,s,e){var u,c=this;\"boolean\"!=typeof a&&(e=s,s=a,a=!1),e?(s=u=l(s),this.bindings=this.bindings.add(s)):(e=s,s=this.element,u=this.widget()),l.each(e,function(e,t){function n(){if(a||!0!==c.options.disabled&&!l(this).hasClass(\"ui-state-disabled\"))return(\"string\"==typeof t?c[t]:t).apply(c,arguments)}\"string\"!=typeof t&&(n.guid=t.guid=t.guid||n.guid||l.guid++);var r=e.match(/^([\\w:-]*)\\s*(.*)$/),o=r[1]+c.eventNamespace,i=r[2];i?u.delegate(i,o,n):s.bind(o,n)})},_off:function(e,t){t=(t||\"\").split(\" \").join(this.eventNamespace+\" \")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){var n=this;return setTimeout(function(){return(\"string\"==typeof e?n[e]:e).apply(n,arguments)},t||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){l(e.currentTarget).addClass(\"ui-state-hover\")},mouseleave:function(e){l(e.currentTarget).removeClass(\"ui-state-hover\")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){l(e.currentTarget).addClass(\"ui-state-focus\")},focusout:function(e){l(e.currentTarget).removeClass(\"ui-state-focus\")}})},_trigger:function(e,t,n){var r,o,i=this.options[e];if(n=n||{},(t=l.Event(t)).type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),t.target=this.element[0],o=t.originalEvent)for(r in o)r in t||(t[r]=o[r]);return this.element.trigger(t,n),!(l.isFunction(i)&&!1===i.apply(this.element[0],[t].concat(n))||t.isDefaultPrevented())}},l.each({show:\"fadeIn\",hide:\"fadeOut\"},function(i,a){l.Widget.prototype[\"_\"+i]=function(t,e,n){\"string\"==typeof e&&(e={effect:e});var r,o=e?!0!==e&&\"number\"!=typeof e&&e.effect||a:i;\"number\"==typeof(e=e||{})&&(e={duration:e}),r=!l.isEmptyObject(e),e.complete=n,e.delay&&t.delay(e.delay),r&&l.effects&&l.effects.effect[o]?t[i](e):o!==i&&t[o]?t[o](e.duration,e.easing,n):t.queue(function(e){l(this)[i](),n&&n.call(t[0]),e()})}});l.widget}),Markdown=\"object\"==typeof exports&&\"function\"==typeof require?exports:{},function(){function t(e){return e}function n(e){return!1}function e(){}e.prototype={chain:function(e,n){var r=this[e];if(!r)throw new Error(\"unknown hook \"+e);this[e]=r===t?n:function(e){var t=Array.prototype.slice.call(arguments,0);return t[0]=r.apply(null,t),n.apply(null,t)}},set:function(e,t){if(!this[e])throw new Error(\"unknown hook \"+e);this[e]=t},addNoop:function(e){this[e]=t},addFalse:function(e){this[e]=n}},Markdown.HookCollection=e}();var bootbox=window.bootbox||function(y,_){var n=\"en\",r=\"en\",b=!0,w=\"static\",x=\"javascript:;\",k=\"\",c={},l={},O={setLocale:function(e){for(var t in o)if(t==e)return void(n=e);throw new Error(\"Invalid locale: \"+e)},addLocale:function(e,t){for(var n in void 0===o[e]&&(o[e]={}),t)o[e][n]=t[n]},setIcons:function(e){\"object\"==typeof(l=e)&&null!==l||(l={})},setBtnClasses:function(e){\"object\"==typeof(c=e)&&null!==c||(c={})},alert:function(){var e=\"\",t=f(\"OK\"),n=null;switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?n=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],n=arguments[2];break;default:throw new Error(\"Incorrect number of arguments: expected 1-3\")}return O.dialog(e,{label:t,icon:l.OK,class:c.OK,callback:n},{onEscape:n||!0})},confirm:function(){var e=\"\",t=f(\"CANCEL\"),n=f(\"CONFIRM\"),r=null;switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?r=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],\"function\"==typeof arguments[2]?r=arguments[2]:n=arguments[2];break;case 4:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3];break;default:throw new Error(\"Incorrect number of arguments: expected 1-4\")}function o(){if(\"function\"==typeof r)return r(!1)}return O.dialog(e,[{label:t,icon:l.CANCEL,class:c.CANCEL,callback:o},{label:n,icon:l.CONFIRM,class:c.CONFIRM,callback:function(){if(\"function\"==typeof r)return r(!0)}}],{onEscape:o})},prompt:function(){var e=\"\",t=f(\"CANCEL\"),n=f(\"CONFIRM\"),r=null,o=\"\";switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?r=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],\"function\"==typeof arguments[2]?r=arguments[2]:n=arguments[2];break;case 4:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3];break;case 5:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3],o=arguments[4];break;default:throw new Error(\"Incorrect number of arguments: expected 1-5\")}var i=e,a=_(\"<form></form>\");a.append(\"<input class='input-block-level' autocomplete=off type=text value='\"+o+\"' />\");function s(){if(\"function\"==typeof r)return r(null)}var u=O.dialog(a,[{label:t,icon:l.CANCEL,class:c.CANCEL,callback:s},{label:n,icon:l.CONFIRM,class:c.CONFIRM,callback:function(){if(\"function\"==typeof r)return r(a.find(\"input[type=text]\").val())}}],{header:i,show:!1,onEscape:s});return u.on(\"shown\",function(){a.find(\"input[type=text]\").focus(),a.on(\"submit\",function(e){e.preventDefault(),u.find(\".btn-primary\").click()})}),u.modal(\"show\"),u},dialog:function(e,i,t){var n=\"\",a=[];t=t||{},void 0===i?i=[]:void 0===i.length&&(i=[i]);for(var r=i.length;r--;){var o=null,s=\"btn-default\",u=\"\",c=null;if(void 0===i[r].label&&void 0===i[r].class&&void 0===i[r].callback){var l=0,f=null;for(var p in i[r])if(f=p,1<++l)break;1==l&&\"function\"==typeof i[r][p]&&(i[r].label=f,i[r].callback=i[r][p])}\"function\"==typeof i[r].callback&&(c=i[r].callback),i[r].class?s=i[r].class:r==i.length-1&&i.length<=2&&(s=\"btn-primary\"),!0!==i[r].link&&(s=\"btn \"+s),o=i[r].label?i[r].label:\"Option \"+(r+1),i[r].icon&&(u=\"<i class='\"+i[r].icon+\"'></i> \"),n=n+\"<a data-handler='\"+r+\"' class='\"+s+\"' href='\"+(i[r].href?i[r].href:x)+\"'>\"+u+o+\"</a>\",a[r]=c}var d,h=[\"<div class='bootbox modal' tabindex='-1' style='overflow:hidden;'>\"];t.header&&(d=\"\",void 0!==t.headerCloseButton&&!t.headerCloseButton||(d=\"<a href='\"+x+\"' class='close'>&times;</a>\"),h.push(\"<div class='modal-header'>\"+d+\"<h3>\"+t.header+\"</h3></div>\")),h.push(\"<div class='modal-body'></div>\"),n&&h.push(\"<div class='modal-footer'>\"+n+\"</div>\"),h.push(\"</div>\");var v=_(h.join(\"\\n\"));(void 0===t.animate?b:t.animate)&&v.addClass(\"fade\");var g=void 0===t.classes?k:t.classes;function m(){var e=null;\"function\"==typeof t.onEscape&&(e=t.onEscape()),!1!==e&&v.modal(\"hide\")}return g&&v.addClass(g),v.find(\".modal-body\").html(e),v.on(\"keyup.dismiss.modal\",function(e){27===e.which&&!1!==t.onEscape&&m()}),v.on(\"click\",\"a.close\",function(e){e.preventDefault(),m()}),v.on(\"shown.bs.modal\",function(){v.find(\"a.btn-primary:first\").focus()}),v.on(\"hidden.bs.modal\",function(){v.remove()}),v.on(\"click\",\".modal-footer a\",function(r){var o=this;Ember.run(function(){var e=_(o).data(\"handler\"),t=a[e],n=null;void 0!==e&&void 0!==i[e].href||(r.preventDefault(),\"function\"==typeof t&&(n=t(r)),!1!==n&&v.modal(\"hide\"))})}),(O.$body||_(\"body\")).append(v),v.modal({backdrop:void 0===t.backdrop?w:t.backdrop,keyboard:!1,show:!1}),v.on(\"show\",function(e){_(y).off(\"focusin.modal\")}),void 0!==t.show&&!0!==t.show||v.modal(\"show\"),v},modal:function(){var e,t,n,r={onEscape:null,keyboard:!0,backdrop:w};switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"object\"==typeof arguments[1]?n=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],n=arguments[2];break;default:throw new Error(\"Incorrect number of arguments: expected 1-3\")}return r.header=t,n=\"object\"==typeof n?_.extend(r,n):r,O.dialog(e,[],n)},hideAll:function(){_(\".bootbox\").modal(\"hide\")},animate:function(e){b=e},backdrop:function(e){w=e},classes:function(e){k=e}},o={br:{OK:\"OK\",CANCEL:\"Cancelar\",CONFIRM:\"Sim\"},da:{OK:\"OK\",CANCEL:\"Annuller\",CONFIRM:\"Accepter\"},de:{OK:\"OK\",CANCEL:\"Abbrechen\",CONFIRM:\"Akzeptieren\"},en:{OK:\"OK\",CANCEL:\"Cancel\",CONFIRM:\"OK\"},es:{OK:\"OK\",CANCEL:\"Cancelar\",CONFIRM:\"Aceptar\"},fr:{OK:\"OK\",CANCEL:\"Annuler\",CONFIRM:\"D'accord\"},it:{OK:\"OK\",CANCEL:\"Annulla\",CONFIRM:\"Conferma\"},nl:{OK:\"OK\",CANCEL:\"Annuleren\",CONFIRM:\"Accepteren\"},pl:{OK:\"OK\",CANCEL:\"Anuluj\",CONFIRM:\"Potwierdź\"},ru:{OK:\"OK\",CANCEL:\"Отмена\",CONFIRM:\"Применить\"},zh_CN:{OK:\"OK\",CANCEL:\"取消\",CONFIRM:\"确认\"},zh_TW:{OK:\"OK\",CANCEL:\"取消\",CONFIRM:\"確認\"}};function f(e,t){return void 0===t&&(t=n),\"string\"==typeof o[t][e]?o[t][e]:t!=r?f(e,r):e}return O}(document,window.jQuery);window.bootbox=bootbox,function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).Popper={})}(this,function(e){\"use strict\";function C(e){var t=e.getBoundingClientRect();return{width:t.width,height:t.height,top:t.top,right:t.right,bottom:t.bottom,left:t.left,x:t.left,y:t.top}}function k(e){if(\"[object Window]\"===e.toString())return e;var t=e.ownerDocument;return t?t.defaultView:window}function c(e){var t=k(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function T(e){return e instanceof k(e).Element}function l(e){return e instanceof k(e).HTMLElement}function f(e){return e?(e.nodeName||\"\").toLowerCase():null}function I(e){return(T(e)?e.ownerDocument:e.document).documentElement}function p(e){return C(I(e)).left+c(e).scrollLeft}function g(e,t,n){var r;void 0===n&&(n=!1);var o,i,a=C(e),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return n||(\"body\"!==f(t)&&(s=(o=t)!==k(o)&&l(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:c(o)),l(t)?((u=C(t)).x+=t.clientLeft,u.y+=t.clientTop):(r=I(t))&&(u.x=p(r))),{x:a.left+s.scrollLeft-u.x,y:a.top+s.scrollTop-u.y,width:a.width,height:a.height}}function Z(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function a(e){return\"html\"===f(e)?e:e.parentNode||e.host||document.ownerDocument||document.documentElement}function m(e){return k(e).getComputedStyle(e)}function y(e,t){void 0===t&&(t=[]);var n=function e(t){if(0<=[\"html\",\"body\",\"#document\"].indexOf(f(t)))return t.ownerDocument.body;if(l(t)){var n=m(t),r=n.overflow,o=n.overflowX,i=n.overflowY;if(/auto|scroll|overlay|hidden/.test(r+i+o))return t}return e(a(t))}(e),r=\"body\"===f(n),o=r?k(n):n,i=t.concat(o);return r?i:i.concat(y(a(o)))}var n=function(){return void 0!==window.InstallTrigger};function r(e){var t;return!l(e)||!(t=e.offsetParent)||n()&&\"fixed\"===m(t).position?null:t}function O(e){for(var t=k(e),n=r(e);n&&0<=[\"table\",\"td\",\"th\"].indexOf(f(n));)n=r(n);return(!n||\"body\"!==f(n)||\"static\"!==m(n).position)&&n||t}var J=\"top\",Y=\"bottom\",ee=\"right\",te=\"left\",S=\"auto\",P=[J,Y,ee,te],ne=\"start\",d=\"end\",A=\"clippingParents\",R=\"viewport\",N=\"popper\",D=\"reference\",M=P.reduce(function(e,t){return e.concat([t+\"-\"+ne,t+\"-\"+d])},[]),u=[].concat(P,[S]).reduce(function(e,t){return e.concat([t,t+\"-\"+ne,t+\"-\"+d])},[]),_=[\"beforeRead\",\"read\",\"afterRead\",\"beforeMain\",\"main\",\"afterMain\",\"beforeWrite\",\"write\",\"afterWrite\"];function b(e){var r=new Map,o=new Set,t=[];return e.forEach(function(e){r.set(e.name,e)}),e.forEach(function(e){o.has(e.name)||!function n(e){o.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){var t;o.has(e)||(t=r.get(e))&&n(t)}),t.push(e)}(e)}),t}function w(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return[].concat(n).reduce(function(e,t){return e.replace(/%s/,t)},e)}var x='Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s',j='Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available',E=[\"name\",\"enabled\",\"phase\",\"fn\",\"effect\",\"requires\",\"options\"];function F(e,n){var r=new Set;return e.filter(function(e){var t=n(e);if(!r.has(t))return r.add(t),!0})}function re(e){return e.split(\"-\")[0]}var L=\"Popper: Invalid reference or popper argument provided to Popper, they must be either a valid DOM element, virtual element, or a jQuery-wrapped DOM element.\",o={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function H(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&\"function\"==typeof e.getBoundingClientRect)})}function t(e){void 0===e&&(e={});var t=e.defaultModifiers,h=void 0===t?[]:t,n=e.defaultOptions,v=void 0===n?o:n;return function(s,u,t){void 0===t&&(t=v);var n,r,l={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},o,{},v),modifiersData:{},elements:{reference:s,popper:u},attributes:{},styles:{}},c=[],f=!1,p={state:l,setOptions:function(e){d(),l.options=Object.assign({},v,{},l.options,{},e),l.scrollParents={reference:T(s)?y(s):[],popper:y(u)};var t,n,r=(t=[].concat(l.options.modifiers.filter(function(t){return!h.find(function(e){return e.name===t.name})}),h.map(function(t){return Object.assign({},t,{},l.options.modifiers.find(function(e){return e.name===t.name}))})),n=b(t),_.reduce(function(e,t){return e.concat(n.filter(function(e){return e.phase===t}))},[])),o=F([].concat(r,l.options.modifiers),function(e){return e.name});(i=o).forEach(function(n){Object.keys(n).forEach(function(e){switch(e){case\"name\":\"string\"!=typeof n.name&&console.error(w(x,String(n.name),'\"name\"','\"string\"','\"'+String(n.name)+'\"'));break;case\"enabled\":\"boolean\"!=typeof n.enabled&&console.error(w(x,n.name,'\"enabled\"','\"boolean\"','\"'+String(n.enabled)+'\"'));case\"phase\":_.indexOf(n.phase)<0&&console.error(w(x,n.name,'\"phase\"',\"either \"+_.join(\", \"),'\"'+String(n.phase)+'\"'));break;case\"fn\":\"function\"!=typeof n.fn&&console.error(w(x,n.name,'\"fn\"','\"function\"','\"'+String(n.fn)+'\"'));break;case\"effect\":\"function\"!=typeof n.effect&&console.error(w(x,n.name,'\"effect\"','\"function\"','\"'+String(n.fn)+'\"'));break;case\"requires\":Array.isArray(n.requires)||console.error(w(x,n.name,'\"requires\"','\"array\"','\"'+String(n.requires)+'\"'));break;case\"requiresIfExists\":Array.isArray(n.requiresIfExists)||console.error(w(x,n.name,'\"requiresIfExists\"','\"array\"','\"'+String(n.requiresIfExists)+'\"'));break;case\"options\":case\"data\":break;default:console.error('PopperJS: an invalid property has been provided to the \"'+n.name+'\" modifier, valid properties are '+E.map(function(e){return'\"'+e+'\"'}).join(\", \")+'; but \"'+e+'\" was provided.')}n.requires&&n.requires.forEach(function(t){null==i.find(function(e){return e.name===t})&&console.error(w(j,String(n.name),t,t))})})}),re(l.options.placement)===S&&(r.find(function(e){return\"flip\"===e.name})||console.error(['Popper: \"auto\" placements require the \"flip\" modifier be',\"present and enabled to work.\"].join(\" \")));var i,a=m(u);return[a.marginTop,a.marginRight,a.marginBottom,a.marginLeft].some(function(e){return parseFloat(e)})&&console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding',\"between the popper and its reference element or boundary.\",\"To replicate margin, use the `offset` modifier, as well as\",\"the `padding` option in the `preventOverflow` and `flip`\",\"modifiers.\"].join(\" \")),l.orderedModifiers=r.filter(function(e){return e.enabled}),l.orderedModifiers.forEach(function(e){var t,n=e.name,r=e.options,o=void 0===r?{}:r,i=e.effect;\"function\"==typeof i&&(t=i({state:l,name:n,instance:p,options:o}),c.push(t||function(){}))}),p.update()},forceUpdate:function(){if(!f){var e=l.elements,t=e.reference,n=e.popper;if(H(t,n)){l.rects={reference:g(t,O(n),\"fixed\"===l.options.strategy),popper:Z(n)},l.reset=!1,l.placement=l.options.placement,l.orderedModifiers.forEach(function(e){return l.modifiersData[e.name]=Object.assign({},e.data)});for(var r,o,i,a,s,u=0,c=0;c<l.orderedModifiers.length;c++){if(100<(u+=1)){console.error(\"Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.\");break}!0!==l.reset?(o=(r=l.orderedModifiers[c]).fn,a=void 0===(i=r.options)?{}:i,s=r.name,\"function\"==typeof o&&(l=o({state:l,options:a,name:s,instance:p})||l)):(l.reset=!1,c=-1)}}else console.error(L)}},update:(n=function(){return new Promise(function(e){p.forceUpdate(),e(l)})},function(){return r=r||new Promise(function(e){Promise.resolve().then(function(){r=void 0,e(n())})})}),destroy:function(){d(),f=!0}};if(!H(s,u))return console.error(L),p;function d(){c.forEach(function(e){return e()}),c=[]}return p.setOptions(t).then(function(e){!f&&t.onFirstUpdate&&t.onFirstUpdate(e)}),p}}var h={passive:!0};function oe(e){return e.split(\"-\")[1]}function ie(e){return 0<=[\"top\",\"bottom\"].indexOf(e)?\"x\":\"y\"}function q(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?re(o):null,a=o?oe(o):null,s=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(i){case J:t={x:s,y:n.y-r.height};break;case Y:t={x:s,y:n.y+n.height};break;case ee:t={x:n.x+n.width,y:u};break;case te:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=i?ie(i):null;if(null!=c){var l=\"y\"===c?\"height\":\"width\";switch(a){case ne:t[c]=Math.floor(t[c])-Math.floor(n[l]/2-r[l]/2);break;case d:t[c]=Math.floor(t[c])+Math.ceil(n[l]/2-r[l]/2)}}return t}var B={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function v(e){var t,n,r,o,i,a,s=e.popper,u=e.popperRect,c=e.placement,l=e.offsets,f=e.position,p=e.gpuAcceleration,d=e.adaptive,h=(r=(n=l).x,o=n.y,i=window.devicePixelRatio||1,{x:Math.round(r*i)/i||0,y:Math.round(o*i)/i||0}),v=h.x,g=h.y,m=l.hasOwnProperty(\"x\"),y=l.hasOwnProperty(\"y\"),_=te,b=J;d&&((a=O(s))===k(s)&&(a=I(s)),c===J&&(b=Y,g-=a.clientHeight-u.height,g*=p?1:-1),c===te&&(_=ee,v-=a.clientWidth-u.width,v*=p?1:-1));var w,x=Object.assign({position:f},d&&B);return p?Object.assign({},x,((w={})[b]=y?\"0\":\"\",w[_]=m?\"0\":\"\",w.transform=(window.devicePixelRatio||1)<2?\"translate(\"+v+\"px, \"+g+\"px)\":\"translate3d(\"+v+\"px, \"+g+\"px, 0)\",w)):Object.assign({},x,((t={})[b]=y?g+\"px\":\"\",t[_]=m?v+\"px\":\"\",t.transform=\"\",t))}var i={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function $(e){return e.replace(/left|right|bottom|top/g,function(e){return i[e]})}var s={start:\"end\",end:\"start\"};function U(e){return e.replace(/start|end/g,function(e){return s[e]})}function z(e){return parseFloat(e)||0}function W(e){var t,n,r=k(e),o={top:z((n=l(t=e)?m(t):{}).borderTopWidth),right:z(n.borderRightWidth),bottom:z(n.borderBottomWidth),left:z(n.borderLeftWidth)},i=\"html\"===f(e),a=p(e),s=e.clientWidth+o.right,u=e.clientHeight+o.bottom;return i&&50<r.innerHeight-e.clientHeight&&(u=r.innerHeight-o.bottom),{top:i?0:e.clientTop,right:e.clientLeft>o.left?o.right:i?r.innerWidth-s-a:e.offsetWidth-s,bottom:i?r.innerHeight-u:e.offsetHeight-u,left:i?a:e.clientLeft}}function V(e,t){var n=Boolean(t.getRootNode&&t.getRootNode().host);if(e.contains(t))return!0;if(n){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function K(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function X(e,t){return t===R?K({width:(a=k(e)).innerWidth,height:a.innerHeight,x:0,y:0}):l(t)?C(t):K((n=I(e),r=k(n),o=c(n),(i=g(I(n),r)).height=Math.max(i.height,r.innerHeight),i.width=Math.max(i.width,r.innerWidth),i.x=-o.scrollLeft,i.y=-o.scrollTop,i));var n,r,o,i,a}function Q(o,e,t){var n,r,i,a=\"clippingParents\"===e?(r=y(n=o),T(i=0<=[\"absolute\",\"fixed\"].indexOf(m(n).position)&&l(n)?O(n):n)?r.filter(function(e){return T(e)&&V(e,i)}):[]):[].concat(e),s=[].concat(a,[t]),u=s[0],c=s.reduce(function(e,t){var n=X(o,t),r=W(l(t)?t:I(o));return e.top=Math.max(n.top+r.top,e.top),e.right=Math.min(n.right-r.right,e.right),e.bottom=Math.min(n.bottom-r.bottom,e.bottom),e.left=Math.max(n.left+r.left,e.left),e},X(o,u));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}function ae(){return{top:0,right:0,bottom:0,left:0}}function G(e){return Object.assign({},ae(),{},e)}function se(n,e){return e.reduce(function(e,t){return e[t]=n,e},{})}function ue(e,t){void 0===t&&(t={});var r,n=t.placement,o=void 0===n?e.placement:n,i=t.boundary,a=void 0===i?A:i,s=t.rootBoundary,u=void 0===s?R:s,c=t.elementContext,l=void 0===c?N:c,f=t.altBoundary,p=void 0!==f&&f,d=t.padding,h=void 0===d?0:d,v=G(\"number\"!=typeof h?h:se(h,P)),g=l===N?D:N,m=e.elements.reference,y=e.rects.popper,_=e.elements[p?g:l],b=Q(T(_)?_:I(e.elements.popper),a,u),w=C(m),x=q({reference:w,element:y,strategy:\"absolute\",placement:o}),k=K(Object.assign({},y,{},x)),O=l===N?k:w,j={top:b.top-O.top+v.top,bottom:O.bottom-b.bottom+v.bottom,left:b.left-O.left+v.left,right:O.right-b.right+v.right},E=e.modifiersData.offset;return l===N&&E&&(r=E[o],Object.keys(j).forEach(function(e){var t=0<=[ee,Y].indexOf(e)?1:-1,n=0<=[J,Y].indexOf(e)?\"y\":\"x\";j[e]+=r[n]*t})),j}function ce(e,t,n){return Math.max(e,Math.min(t,n))}function le(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function fe(t){return[J,ee,Y,te].some(function(e){return 0<=t[e]})}var pe=[{name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=void 0===o||o,a=r.resize,s=void 0===a||a,u=k(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(e){e.addEventListener(\"scroll\",n.update,h)}),s&&u.addEventListener(\"resize\",n.update,h),function(){i&&c.forEach(function(e){e.removeEventListener(\"scroll\",n.update,h)}),s&&u.removeEventListener(\"resize\",n.update,h)}},data:{}},{name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=q({reference:t.rects.reference,element:t.rects.popper,strategy:\"absolute\",placement:t.placement})},data:{}},{name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i;a&&parseFloat(m(t.elements.popper).transitionDuration)&&console.warn(['Popper: The \"computeStyles\" modifier\\'s `adaptive` option must be',\"disabled if CSS transitions are applied to the popper element.\"].join(\" \"));var s={placement:re(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o};t.styles.popper=Object.assign({},t.styles.popper,{},v(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a}))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,{},v(Object.assign({},s,{offsets:t.modifiersData.arrow,position:\"absolute\",adaptive:!1})))),t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-placement\":t.placement})},data:{}},{name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(e){var o=e.state;Object.keys(o.elements).forEach(function(e){var t=o.styles[e]||{},n=o.attributes[e]||{},r=o.elements[e];l(r)&&f(r)&&(Object.assign(r.style,t),Object.keys(n).forEach(function(e){var t=n[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?\"\":t)}))})},effect:function(e){var i=e.state,a={position:\"absolute\",left:\"0\",top:\"0\",margin:\"0\"};return Object.assign(i.elements.popper.style,a),function(){Object.keys(i.elements).forEach(function(e){var t=i.elements[e],n=Object.keys(i.styles.hasOwnProperty(e)?Object.assign({},i.styles[e]):a),r=i.attributes[e]||{},o=n.reduce(function(e,t){var n;return Object.assign({},e,((n={})[String(t)]=\"\",n))},{});l(t)&&f(t)&&(Object.assign(t.style,o),Object.keys(r).forEach(function(e){return t.removeAttribute(e)}))})}},requires:[\"computeStyles\"]},{name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(e){var l=e.state,t=e.options,n=e.name,r=t.offset,f=void 0===r?[0,0]:r,o=u.reduce(function(e,t){var n,r,o,i,a,s,u,c;return e[t]=(n=t,r=l.rects,o=f,i=re(n),a=0<=[te,J].indexOf(i)?-1:1,s=\"function\"==typeof o?o(Object.assign({},r,{placement:n})):o,u=(u=s[0])||0,c=((c=s[1])||0)*a,0<=[te,ee].indexOf(i)?{x:c,y:u}:{x:u,y:c}),e},{}),i=o[l.placement],a=i.x,s=i.y;l.modifiersData.popperOffsets.x+=a,l.modifiersData.popperOffsets.y+=s,l.modifiersData[n]=o}},{name:\"flip\",enabled:!0,phase:\"main\",fn:function(e){var n=e.state,t=e.options,r=e.name;if(!n.modifiersData[r]._skip){for(var o=t.fallbackPlacements,i=t.padding,a=t.boundary,s=t.rootBoundary,u=t.flipVariations,c=void 0===u||u,l=n.options.placement,f=re(l),p=o||(f===l||!c?[$(l)]:function(e){if(re(e)===S)return[];var t=$(e);return[U(e),t,U(t)]}(l)),d=F([l].concat(p).reduce(function(e,t){return re(t)===S?e.concat(function(n,e){void 0===e&&(e={});var t=e.placement,r=e.boundary,o=e.rootBoundary,i=e.padding,a=e.flipVariations,s=oe(t),u=(s?a?M:M.filter(function(e){return oe(e)===s}):P).reduce(function(e,t){return e[t]=ue(n,{placement:t,boundary:r,rootBoundary:o,padding:i})[re(t)],e},{});return Object.keys(u).sort(function(e,t){return u[e]-u[t]})}(n,{placement:t,boundary:a,rootBoundary:s,padding:i,flipVariations:c})):e.concat(t)},[]),function(e){return e}),h=n.rects.reference,v=n.rects.popper,g=new Map,m=!0,y=d[0],_=0;_<d.length;_++){var b=d[_],w=re(b),x=oe(b)===ne,k=0<=[J,Y].indexOf(w),O=k?\"width\":\"height\",j=ue(n,{placement:b,boundary:a,rootBoundary:s,padding:i}),E=k?x?ee:te:x?Y:J;h[O]>v[O]&&(E=$(E));var C=$(E),T=[j[w]<=0,j[E]<=0,j[C]<=0];if(T.every(function(e){return e})){y=b,m=!1;break}g.set(b,T)}if(m)for(var I=c?3:1;0<I;I--){if(\"break\"===function(n){var e=d.find(function(e){var t=g.get(e);if(t)return t.slice(0,n).every(function(e){return e})});if(e)return y=e,\"break\"}(I))break}n.placement!==y&&(n.modifiersData[r]._skip=!0,n.placement=y,n.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}},{name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(e){var t,n,r,o,i,a,s,u,c,l,f,p,d,h,v,g,m,y,_,b,w,x,k,O,j,E=e.state,C=e.options,T=e.name,I=C.mainAxis,S=void 0===I||I,P=C.altAxis,A=void 0!==P&&P,R=C.boundary,N=C.rootBoundary,D=C.padding,M=C.tether,F=void 0===M||M,L=C.tetherOffset,H=void 0===L?0:L,q=ue(E,{boundary:R,rootBoundary:N,padding:D}),B=re(E.placement),$=oe(E.placement),U=!$,z=ie(B),W=\"x\"===z?\"y\":\"x\",V=E.modifiersData.popperOffsets,K=E.rects.reference,X=E.rects.popper,Q=\"function\"==typeof H?H(Object.assign({},E.rects,{placement:E.placement})):H,G={x:0,y:0};S&&(t=\"y\"===z?J:te,n=\"y\"===z?Y:ee,r=\"y\"===z?\"height\":\"width\",o=V[z],i=V[z]+q[t],a=V[z]-q[n],s=F?-X[r]/2:0,u=$===ne?K[r]:X[r],c=$===ne?-X[r]:-K[r],l=E.elements.arrow,f=F&&l?Z(l):{width:0,height:0},d=(p=E.modifiersData[\"arrow#persistent\"]?E.modifiersData[\"arrow#persistent\"].padding:ae())[t],h=p[n],v=ce(0,Math.abs(K[r]-f[r]),f[r]),g=U?K[r]/2-s-v-d-Q:u-v-d-Q,m=U?-K[r]/2+s+v+h+Q:c+v+h+Q,y=E.modifiersData.offset?E.modifiersData.offset[E.placement][z]:0,_=E.modifiersData.popperOffsets[z]+g-y,b=E.modifiersData.popperOffsets[z]+m-y,w=ce(F?Math.min(i,_):i,o,F?Math.max(a,b):a),E.modifiersData.popperOffsets[z]=w,G[z]=w-o),A&&(x=\"x\"===z?J:te,k=\"x\"===z?Y:ee,j=ce((O=V[W])+q[x],O,O-q[k]),E.modifiersData.popperOffsets[W]=j,G[W]=j-O),E.modifiersData[T]=G},requiresIfExists:[\"offset\"]},{name:\"arrow\",enabled:!0,phase:\"main\",fn:function(e){var t,n,r,o,i,a,s,u=e.state,c=e.name,l=u.elements.arrow,f=u.modifiersData.popperOffsets,p=re(u.placement),d=ie(p),h=0<=[te,ee].indexOf(p)?\"height\":\"width\";l&&(n=u.modifiersData[c+\"#persistent\"].padding,r=Z(l),o=\"y\"===d?J:te,i=\"y\"===d?Y:ee,a=(u.rects.reference[h]+u.rects.reference[d]-f[d]-u.rects.popper[h])/2-(f[d]-u.rects.reference[d])/2,s=ce(n[o],u.rects.popper[h]/2-r[h]/2+a,u.rects.popper[h]-r[h]-n[i]),u.modifiersData[c]=((t={})[d]=s,t))},effect:function(e){var t=e.state,n=e.options,r=e.name,o=n.element,i=void 0===o?\"[data-popper-arrow]\":o,a=n.padding,s=void 0===a?0:a;\"string\"==typeof i&&!(i=t.elements.popper.querySelector(i))||(V(t.elements.popper,i)?(t.elements.arrow=i,t.modifiersData[r+\"#persistent\"]={padding:G(\"number\"!=typeof s?s:se(s,P))}):console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper',\"element.\"].join(\" \")))},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]},{name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=ue(t,{elementContext:\"reference\"}),s=ue(t,{altBoundary:!0}),u=le(a,r),c=le(s,o,i),l=fe(u),f=fe(c);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":l,\"data-popper-escaped\":f})}}],de=t({defaultModifiers:pe});e.createPopper=de,e.defaultModifiers=pe,e.popperGenerator=t,Object.defineProperty(e,\"__esModule\",{value:!0})}),function(a){\"use strict\";function i(e,t){this.options=t,this.$body=a(document.body),this.$element=a(e),this.$dialog=this.$element.find(\".modal-dialog\"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=\".navbar-fixed-top, .navbar-fixed-bottom\",this.options.remote&&this.$element.find(\".modal-content\").load(this.options.remote,a.proxy(function(){this.$element.trigger(\"loaded.bs.modal\")},this))}function s(r,o){return this.each(function(){var e=a(this),t=e.data(\"bs.modal\"),n=a.extend({},i.DEFAULTS,e.data(),\"object\"==typeof r&&r);t||e.data(\"bs.modal\",t=new i(this,n)),\"string\"==typeof r?t[r](o):n.show&&t.show(o)})}i.VERSION=\"3.4.1\",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(e){return this.isShown?this.hide():this.show(e)},i.prototype.show=function(n){var r=this,e=a.Event(\"show.bs.modal\",{relatedTarget:n});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass(\"modal-open\"),this.escape(),this.resize(),this.$element.on(\"click.dismiss.bs.modal\",'[data-dismiss=\"modal\"]',a.proxy(this.hide,this)),this.$dialog.on(\"mousedown.dismiss.bs.modal\",function(){r.$element.one(\"mouseup.dismiss.bs.modal\",function(e){a(e.target).is(r.$element)&&(r.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&r.$element.hasClass(\"fade\");r.$element.parent().length||r.$element.appendTo(r.$body),r.$element.show().scrollTop(0),r.adjustDialog(),e&&r.$element[0].offsetWidth,r.$element.addClass(\"in\"),r.enforceFocus();var t=a.Event(\"shown.bs.modal\",{relatedTarget:n});e?r.$dialog.one(\"bsTransitionEnd\",function(){r.$element.trigger(\"focus\").trigger(t)}).emulateTransitionEnd(i.TRANSITION_DURATION):r.$element.trigger(\"focus\").trigger(t)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=a.Event(\"hide.bs.modal\"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off(\"focusin.bs.modal\"),this.$element.removeClass(\"in\").off(\"click.dismiss.bs.modal\").off(\"mouseup.dismiss.bs.modal\"),this.$dialog.off(\"mousedown.dismiss.bs.modal\"),a.support.transition&&this.$element.hasClass(\"fade\")?this.$element.one(\"bsTransitionEnd\",a.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){a(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\",a.proxy(function(e){document===e.target||this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger(\"focus\")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(\"keydown.dismiss.bs.modal\",a.proxy(function(e){27==e.which&&this.hide()},this)):this.isShown||this.$element.off(\"keydown.dismiss.bs.modal\")},i.prototype.resize=function(){this.isShown?a(window).on(\"resize.bs.modal\",a.proxy(this.handleUpdate,this)):a(window).off(\"resize.bs.modal\")},i.prototype.hideModal=function(){var e=this;this.$element.hide(),this.backdrop(function(){e.$body.removeClass(\"modal-open\"),e.resetAdjustments(),e.resetScrollbar(),e.$element.trigger(\"hidden.bs.modal\")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var t,n=this,r=this.$element.hasClass(\"fade\")?\"fade\":\"\";if(this.isShown&&this.options.backdrop){var o=a.support.transition&&r;if(this.$backdrop=a(document.createElement(\"div\")).addClass(\"modal-backdrop \"+r).appendTo(this.$body),this.$element.on(\"click.dismiss.bs.modal\",a.proxy(function(e){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:e.target===e.currentTarget&&(\"static\"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass(\"in\"),!e)return;o?this.$backdrop.one(\"bsTransitionEnd\",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else{!this.isShown&&this.$backdrop?(this.$backdrop.removeClass(\"in\"),t=function(){n.removeBackdrop(),e&&e()},a.support.transition&&this.$element.hasClass(\"fade\")?this.$backdrop.one(\"bsTransitionEnd\",t).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):t()):e&&e()}},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var e=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:\"\",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:\"\"})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:\"\",paddingRight:\"\"})},i.prototype.checkScrollbar=function(){var e,t=window.innerWidth;t||(t=(e=document.documentElement.getBoundingClientRect()).right-Math.abs(e.left)),this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var e=parseInt(this.$body.css(\"padding-right\")||0,10);this.originalBodyPad=document.body.style.paddingRight||\"\";var o=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css(\"padding-right\",e+o),a(this.fixedContent).each(function(e,t){var n=t.style.paddingRight,r=a(t).css(\"padding-right\");a(t).data(\"padding-right\",n).css(\"padding-right\",parseFloat(r)+o+\"px\")}))},i.prototype.resetScrollbar=function(){this.$body.css(\"padding-right\",this.originalBodyPad),a(this.fixedContent).each(function(e,t){var n=a(t).data(\"padding-right\");a(t).removeData(\"padding-right\"),t.style.paddingRight=n||\"\"})},i.prototype.measureScrollbar=function(){var e=document.createElement(\"div\");e.className=\"modal-scrollbar-measure\",this.$body.append(e);var t=e.offsetWidth-e.clientWidth;return this.$body[0].removeChild(e),t};var e=a.fn.modal;a.fn.modal=s,a.fn.modal.Constructor=i,a.fn.modal.noConflict=function(){return a.fn.modal=e,this},a(document).on(\"click.bs.modal.data-api\",'[data-toggle=\"modal\"]',function(e){var t=a(this),n=t.attr(\"href\"),r=t.attr(\"data-target\")||n&&n.replace(/.*(?=#[^\\s]+$)/,\"\"),o=a(document).find(r),i=o.data(\"bs.modal\")?\"toggle\":a.extend({remote:!/#/.test(n)&&n},o.data(),t.data());t.is(\"a\")&&e.preventDefault(),o.one(\"show.bs.modal\",function(e){e.isDefaultPrevented()||o.one(\"hidden.bs.modal\",function(){t.is(\":visible\")&&t.trigger(\"focus\")})}),s.call(o,i,this)})}(jQuery);var clone=null;$.fn.caret=function(e){var t,n,r,o;return(t=e||this[0]).selectionStart?t.selectionStart:document.selection?(t.focus(),(n=document.selection.createRange())?(r=(o=t.createTextRange()).duplicate(),o.moveToBookmark(n.getBookmark()),r.setEndPoint(\"EndToStart\",o),r.text.length):0):0},$.fn.caretPosition=function(e){var t,n,o,r,i,a,s,u,c,l,f,p,d,h;clone&&clone.remove(),$(\"#pos span\"),d=$(this),i=function(e){return p.getPropertyValue(e)},p=function(e){return e.currentStyle?e.currentStyle:document.defaultView.getComputedStyle(e,\"\")}(d[0]),c=(clone=$(\"<div><p></p></div>\").appendTo(\"body\")).find(\"p\");var v=$(\"html\").hasClass(\"rtl\");clone.css({border:\"1px solid black\",padding:i(\"padding\"),resize:i(\"resize\"),\"max-height\":d.height()+\"px\",\"overflow-y\":\"auto\",\"word-wrap\":\"break-word\",position:\"absolute\",left:v?\"auto\":\"-7000px\",right:v?\"-7000px\":\"auto\"}),c.css({margin:0,padding:0,\"word-wrap\":\"break-word\",\"letter-spacing\":i(\"letter-spacing\"),\"font-family\":i(\"font-family\"),\"font-size\":i(\"font-size\"),\"line-height\":i(\"line-height\")}),clone.width(d.width()),clone.height(d.height()),f=e&&(e.pos||0===e.pos)?e.pos:$.caret(d[0]),h=d.val().replace(\"\\r\",\"\"),e&&e.key&&(h=h.substring(0,f)+e.key+h.substring(f)),a=!1,\"\\n\"===h[n=(t=f)-1]&&\"\\n\"===h[t]&&(a=!0),o=function(e){var t=e.replace(/</g,\"&lt;\");return(t=(t=t.replace(/>/g,\"&gt;\")).replace(/[ ]/g,\"&#x200b;&nbsp;&#x200b;\")).replace(/\\n/g,\"<br />\")},u=function(e,t,n){var r=h.substring(e,e+1);return\"\\n\"===r?\"<br>\":\"<span class='\"+t+\"' style='background-color:\"+n+\"; margin:0; padding: 0'>\"+o(r)+\"</span>\"},r=\"\",0<=n&&(r+=o(h.substring(0,f-1))+u(n,\"before\",\"#d0ffff\"),a&&(r+=u(0,\"post-before\",\"#d0ffff\"))),0<=t&&(r+=u(t,\"after\",\"#ffd0ff\"),t-1<h.length&&(r+=o(h.substring(t+1)))),c.html(r),clone.scrollTop(d.scrollTop()),f=(s=c.find(\"span:first\")).offset(),s.hasClass(\"before\")&&(f.left=f.left+s.width()),l=c.offset();var g={left:f.left-l.left,top:f.top-l.top-clone.scrollTop()};return clone.remove(),g},function(){function e(e){this.icon=e,this.opacity=.4,this.canvas=document.createElement(\"canvas\"),this.font=\"Helvetica, Arial, sans-serif\"}e.prototype.set=function(t){var n=this,r=document.createElement(\"img\");n.canvas.getContext&&(r.crossOrigin=\"anonymous\",r.onload=function(){var e;!function(e,t,n,r,o){var i,a,s,u,c,l,f,p=document.getElementsByTagName(\"head\")[0],d=document.querySelector(\"link[rel=icon]\"),h=document.createElement(\"link\");i=r.width/16,a=11*i,c=11*(u=i),f=2*(l=i),e.height=e.width=r.width,(s=e.getContext(\"2d\")).font=\"bold \"+a+\"px \"+n,o&&(s.globalAlpha=t);s.drawImage(r,0,0),s.globalAlpha=1,s.shadowColor=\"#FFF\",s.shadowBlur=f,s.shadowOffsetX=0,s.shadowOffsetY=0,s.fillStyle=\"#FFF\",s.fillText(o,u,c),s.fillText(o,u+l,c),s.fillText(o,u,c+l),s.fillText(o,u+l,c+l),s.fillStyle=\"#000\",s.fillText(o,u+l/2,c+l/2),h.rel=\"icon\",h.href=e.toDataURL(\"image/png\"),d&&p.removeChild(d);p.appendChild(h)}(n.canvas,n.opacity,n.font,r,(e=t,e=Math.round(e),isNaN(e)||e<1?\"\":e<10?\" \"+e:99<e?\"99\":e))},r.src=this.icon)},this.Favcount=e}.call(this),function(){Favcount.VERSION=\"1.5.1\"}.call(this),function(a,t){var n,r=a([]),o=a.resize=a.extend(a.resize,{}),s=\"setTimeout\",i=\"resize\",u=i+\"-special-event\",c=\"delay\",l=\"throttleWindow\";o[c]=250,o[l]=!0,a.event.special[i]={setup:function(){if(!o[l]&&this[s])return!1;var e=a(this);r=r.add(e),a.data(this,u,{w:e.width(),h:e.height()}),1===r.length&&function e(){n=t[s](function(){r.each(function(){var e=a(this),t=e.width(),n=e.height(),r=a.data(this,u);t===r.w&&n===r.h||e.trigger(i,[r.w=t,r.h=n])}),e()},o[c])}()},teardown:function(){if(!o[l]&&this[s])return!1;var e=a(this);r=r.not(e),e.removeData(u),r.length||clearTimeout(n)},add:function(e){if(!o[l]&&this[s])return!1;var i;function t(e,t,n){var r=a(this),o=a.data(this,u);o.w=void 0!==t?t:r.width(),o.h=void 0!==n?n:r.height(),i.apply(this,arguments)}if(a.isFunction(e))return i=e,t;i=e.handler,e.handler=t}}}(jQuery,this),function(e,t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):\"object\"==typeof exports?module.exports=t(require(\"jquery\")):t(e.jQuery)}(this,function(c,l){var f,n={},t=n.toString,p=/^([\\-+])=\\s*(\\d+\\.?\\d*)/,e=[{re:/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,space:\"hsla\",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],d=c.Color=function(e,t,n,r){return new c.Color.fn.parse(e,t,n,r)},h={rgba:{props:{red:{idx:0,type:\"byte\"},green:{idx:1,type:\"byte\"},blue:{idx:2,type:\"byte\"}}},hsla:{props:{hue:{idx:0,type:\"degrees\"},saturation:{idx:1,type:\"percent\"},lightness:{idx:2,type:\"percent\"}}}},v={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},g=c.each;function m(e){return null==e?e+\"\":\"object\"==typeof e?n[t.call(e)]||\"object\":typeof e}function y(e,t,n){var r=v[t.type]||{};return null==e?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),r.mod?(e+r.mod)%r.mod:Math.min(r.max,Math.max(0,e)))}function s(a){var s=d(),u=s._rgba=[];return a=a.toLowerCase(),g(e,function(e,t){var n,r=t.re.exec(a),o=r&&t.parse(r),i=t.space||\"rgba\";if(o)return n=s[i](o),s[h[i].cache]=n[h[i].cache],u=s._rgba=n._rgba,!1}),u.length?(\"0,0,0,0\"===u.join()&&c.extend(u,f.transparent),s):f[a]}function u(e,t,n){return 6*(n=(n+1)%1)<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}g(h,function(e,t){t.cache=\"_\"+e,t.props.alpha={idx:3,type:\"percent\",def:1}}),c.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()}),d.fn=c.extend(d.prototype,{parse:function(o,e,t,n){if(o===l)return this._rgba=[null,null,null,null],this;(o.jquery||o.nodeType)&&(o=c(o).css(e),e=l);var i=this,r=m(o),a=this._rgba=[];return e!==l&&(o=[o,e,t,n],r=\"array\"),\"string\"===r?this.parse(s(o)||f._default):\"array\"===r?(g(h.rgba.props,function(e,t){a[t.idx]=y(o[t.idx],t)}),this):\"object\"===r?(g(h,o instanceof d?function(e,t){o[t.cache]&&(i[t.cache]=o[t.cache].slice())}:function(e,n){var r=n.cache;g(n.props,function(e,t){if(!i[r]&&n.to){if(\"alpha\"===e||null==o[e])return;i[r]=n.to(i._rgba)}i[r][t.idx]=y(o[e],t,!0)}),i[r]&&c.inArray(null,i[r].slice(0,3))<0&&(null==i[r][3]&&(i[r][3]=1),n.from&&(i._rgba=n.from(i[r])))}),this):void 0},is:function(e){var o=d(e),i=!0,a=this;return g(h,function(e,t){var n,r=o[t.cache];return r&&(n=a[t.cache]||t.to&&t.to(a._rgba)||[],g(t.props,function(e,t){if(null!=r[t.idx])return i=r[t.idx]===n[t.idx]})),i}),i},_space:function(){var n=[],r=this;return g(h,function(e,t){r[t.cache]&&n.push(e)}),n.pop()},transition:function(e,a){var t=(c=d(e))._space(),n=h[t],r=0===this.alpha()?d(\"transparent\"):this,s=r[n.cache]||n.to(r._rgba),u=s.slice(),c=c[n.cache];return g(n.props,function(e,t){var n=t.idx,r=s[n],o=c[n],i=v[t.type]||{};null!==o&&(null===r?u[n]=o:(i.mod&&(i.mod/2<o-r?r+=i.mod:i.mod/2<r-o&&(r-=i.mod)),u[n]=y((o-r)*a+r,t)))}),this[t](u)},blend:function(e){if(1===this._rgba[3])return this;var t=this._rgba.slice(),n=t.pop(),r=d(e)._rgba;return d(c.map(t,function(e,t){return(1-n)*r[t]+n*e}))},toRgbaString:function(){var e=\"rgba(\",t=c.map(this._rgba,function(e,t){return null!=e?e:2<t?1:0});return 1===t[3]&&(t.pop(),e=\"rgb(\"),e+t.join()+\")\"},toHslaString:function(){var e=\"hsla(\",t=c.map(this.hsla(),function(e,t){return null==e&&(e=2<t?1:0),t&&t<3&&(e=Math.round(100*e)+\"%\"),e});return 1===t[3]&&(t.pop(),e=\"hsl(\"),e+t.join()+\")\"},toHexString:function(e){var t=this._rgba.slice(),n=t.pop();return e&&t.push(~~(255*n)),\"#\"+c.map(t,function(e){return(\"0\"+(e||0).toString(16)).substr(-2)}).join(\"\")},toString:function(){return 0===this._rgba[3]?\"transparent\":this.toRgbaString()}}),d.fn.parse.prototype=d.fn,h.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,o=e[3],i=Math.max(t,n,r),a=Math.min(t,n,r),s=i-a,u=i+a,c=.5*u,l=a===i?0:t===i?60*(n-r)/s+360:n===i?60*(r-t)/s+120:60*(t-n)/s+240,f=0==s?0:c<=.5?s/u:s/(2-u);return[Math.round(l)%360,f,c,null==o?1:o]},h.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],o=e[3],i=r<=.5?r*(1+n):r+n-r*n,a=2*r-i;return[Math.round(255*u(a,i,t+1/3)),Math.round(255*u(a,i,t)),Math.round(255*u(a,i,t-1/3)),o]},g(h,function(u,e){var n=e.props,a=e.cache,s=e.to,c=e.from;d.fn[u]=function(e){if(s&&!this[a]&&(this[a]=s(this._rgba)),e===l)return this[a].slice();var t,r=m(e),o=\"array\"===r||\"object\"===r?e:arguments,i=this[a].slice();return g(n,function(e,t){var n=o[\"object\"===r?e:t.idx];null==n&&(n=i[t.idx]),i[t.idx]=y(n,t)}),c?((t=d(c(i)))[a]=i,t):d(i)},g(n,function(a,s){d.fn[a]||(d.fn[a]=function(e){var t,n=m(e),r=\"alpha\"===a?this._hsla?\"hsla\":\"rgba\":u,o=this[r](),i=o[s.idx];return\"undefined\"===n?i:(\"function\"===n&&(n=m(e=e.call(this,i))),null==e&&s.empty?this:(\"string\"===n&&(t=p.exec(e))&&(e=i+parseFloat(t[2])*(\"+\"===t[1]?1:-1)),o[s.idx]=e,this[r](o)))})})}),d.hook=function(e){var t=e.split(\" \");g(t,function(e,r){c.cssHooks[r]={set:function(e,t){var n;\"transparent\"===t||\"string\"===m(t)&&!(n=s(t))||(t=(t=d(n||t)).toRgbaString()),e.style[r]=t}},c.fx.step[r]=function(e){e.colorInit||(e.start=d(e.elem,r),e.end=d(e.end),e.colorInit=!0),c.cssHooks[r].set(e.elem,e.start.transition(e.end,e.pos))}})},d.hook(\"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\"),c.cssHooks.borderColor={expand:function(n){var r={};return g([\"Top\",\"Right\",\"Bottom\",\"Left\"],function(e,t){r[\"border\"+t+\"Color\"]=n}),r}},f=c.Color.names={aqua:\"#00ffff\",black:\"#000000\",blue:\"#0000ff\",fuchsia:\"#ff00ff\",gray:\"#808080\",green:\"#008000\",lime:\"#00ff00\",maroon:\"#800000\",navy:\"#000080\",olive:\"#808000\",purple:\"#800080\",red:\"#ff0000\",silver:\"#c0c0c0\",teal:\"#008080\",white:\"#ffffff\",yellow:\"#ffff00\",transparent:[null,null,null,0],_default:\"#ffffff\"}}),function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(jQuery)}(function(h){var r=/\\+/g;function v(e){return m.raw?e:encodeURIComponent(e)}function g(e,t){var n=m.raw?e:function(e){0===e.indexOf('\"')&&(e=e.slice(1,-1).replace(/\\\\\"/g,'\"').replace(/\\\\\\\\/g,\"\\\\\"));try{return e=decodeURIComponent(e.replace(r,\" \")),m.json?JSON.parse(e):e}catch(e){}}(e);return h.isFunction(t)?t(n):n}var m=h.cookie=function(e,t,n){var r,o,i;if(void 0!==t&&!h.isFunction(t))return\"number\"==typeof(n=h.extend({},m.defaults,n)).expires&&(r=n.expires,(o=n.expires=new Date).setTime(+o+864e5*r)),document.cookie=[v(e),\"=\",(i=t,v(m.json?JSON.stringify(i):String(i))),n.expires?\"; expires=\"+n.expires.toUTCString():\"\",n.path?\"; path=\"+n.path:\"\",n.domain?\"; domain=\"+n.domain:\"\",n.secure?\"; secure\":\"\"].join(\"\");for(var a,s=e?void 0:{},u=document.cookie?document.cookie.split(\"; \"):[],c=0,l=u.length;c<l;c++){var f=u[c].split(\"=\"),p=(a=f.shift(),m.raw?a:decodeURIComponent(a)),d=f.join(\"=\");if(e&&e===p){s=g(d,t);break}e||void 0===(d=g(d))||(s[p]=d)}return s};m.defaults={},h.removeCookie=function(e,t){return void 0!==h.cookie(e)&&(h.cookie(e,\"\",h.extend({},t,{expires:-1})),!h.cookie(e))}}),function(e){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\",\"jquery.ui.widget\"],e):\"object\"==typeof exports?e(require(\"jquery\"),require(\"./vendor/jquery.ui.widget\")):e(window.jQuery)}(function(m){\"use strict\";function e(n){var r=\"dragover\"===n;return function(e){e.dataTransfer=e.originalEvent&&e.originalEvent.dataTransfer;var t=e.dataTransfer;t&&-1!==m.inArray(\"Files\",t.types)&&!1!==this._trigger(n,m.Event(n,{delegatedEvent:e}))&&(e.preventDefault(),r&&(t.dropEffect=\"copy\"))}}m.support.fileInput=!(new RegExp(\"(Android (1\\\\.[0156]|2\\\\.[01]))|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))\").test(window.navigator.userAgent)||m('<input type=\"file\">').prop(\"disabled\")),m.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),m.support.xhrFormDataFileUpload=!!window.FormData,m.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),m.widget(\"blueimp.fileupload\",{options:{dropZone:m(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:\"Uploaded bytes exceed file size\"},i18n:function(n,e){return n=this.messages[n]||n.toString(),e&&m.each(e,function(e,t){n=n.replace(\"{\"+e+\"}\",t)}),n},formData:function(e){return e.serializeArray()},add:function(e,t){if(e.isDefaultPrevented())return!1;(t.autoUpload||!1!==t.autoUpload&&m(this).fileupload(\"option\",\"autoUpload\"))&&t.process().done(function(){t.submit()})},processData:!1,contentType:!1,cache:!1},_specialOptions:[\"fileInput\",\"dropZone\",\"pasteZone\",\"multipart\",\"forceIframeTransport\"],_blobSlice:m.support.blobSlice&&function(){return(this.slice||this.webkitSlice||this.mozSlice).apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(e,t,n){var r=e-this.timestamp;return this.bitrate&&n&&!(n<r)||(this.bitrate=(t-this.loaded)*(1e3/r)*8,this.loaded=t,this.timestamp=e),this.bitrate}},_isXHRUpload:function(e){return!e.forceIframeTransport&&(!e.multipart&&m.support.xhrFileUpload||m.support.xhrFormDataFileUpload)},_getFormData:function(e){var n;return\"function\"===m.type(e.formData)?e.formData(e.form):m.isArray(e.formData)?e.formData:\"object\"===m.type(e.formData)?(n=[],m.each(e.formData,function(e,t){n.push({name:e,value:t})}),n):[]},_getTotal:function(e){var n=0;return m.each(e,function(e,t){n+=t.size||1}),n},_initProgressObject:function(e){var t={loaded:0,total:0,bitrate:0};e._progress?m.extend(e._progress,t):e._progress=t},_initResponseObject:function(e){var t;if(e._response)for(t in e._response)e._response.hasOwnProperty(t)&&delete e._response[t];else e._response={}},_onProgress:function(e,t){if(e.lengthComputable){var n,r=Date.now?Date.now():(new Date).getTime();if(t._time&&t.progressInterval&&r-t._time<t.progressInterval&&e.loaded!==e.total)return;t._time=r,n=Math.floor(e.loaded/e.total*(t.chunkSize||t._progress.total))+(t.uploadedBytes||0),this._progress.loaded+=n-t._progress.loaded,this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,t.bitrateInterval),t._progress.loaded=t.loaded=n,t._progress.bitrate=t.bitrate=t._bitrateTimer.getBitrate(r,n,t.bitrateInterval),this._trigger(\"progress\",m.Event(\"progress\",{delegatedEvent:e}),t),this._trigger(\"progressall\",m.Event(\"progressall\",{delegatedEvent:e}),this._progress)}},_initProgressListener:function(n){var r=this,e=n.xhr?n.xhr():m.ajaxSettings.xhr();e.upload&&(m(e.upload).bind(\"progress\",function(e){var t=e.originalEvent;e.lengthComputable=t.lengthComputable,e.loaded=t.loaded,e.total=t.total,r._onProgress(e,n)}),n.xhr=function(){return e})},_isInstanceOf:function(e,t){return Object.prototype.toString.call(t)===\"[object \"+e+\"]\"},_initXHRData:function(n){var r,o=this,e=n.files[0],t=n.multipart||!m.support.xhrFileUpload,i=\"array\"===m.type(n.paramName)?n.paramName[0]:n.paramName;n.headers=m.extend({},n.headers),n.contentRange&&(n.headers[\"Content-Range\"]=n.contentRange),t&&!n.blob&&this._isInstanceOf(\"File\",e)||(n.headers[\"Content-Disposition\"]='attachment; filename=\"'+encodeURI(e.name)+'\"'),t?m.support.xhrFormDataFileUpload&&(n.postMessage?(r=this._getFormData(n),n.blob?r.push({name:i,value:n.blob}):m.each(n.files,function(e,t){r.push({name:\"array\"===m.type(n.paramName)&&n.paramName[e]||i,value:t})})):(o._isInstanceOf(\"FormData\",n.formData)?r=n.formData:(r=new FormData,m.each(this._getFormData(n),function(e,t){r.append(t.name,t.value)})),n.blob?r.append(i,n.blob,e.name):m.each(n.files,function(e,t){(o._isInstanceOf(\"File\",t)||o._isInstanceOf(\"Blob\",t))&&r.append(\"array\"===m.type(n.paramName)&&n.paramName[e]||i,t,t.uploadName||t.name)})),n.data=r):(n.contentType=e.type||\"application/octet-stream\",n.data=n.blob||e),n.blob=null},_initIframeSettings:function(e){var t=m(\"<a></a>\").prop(\"href\",e.url).prop(\"host\");e.dataType=\"iframe \"+(e.dataType||\"\"),e.formData=this._getFormData(e),e.redirect&&t&&t!==location.host&&e.formData.push({name:e.redirectParamName||\"redirect\",value:e.redirect})},_initDataSettings:function(e){this._isXHRUpload(e)?(this._chunkedUpload(e,!0)||(e.data||this._initXHRData(e),this._initProgressListener(e)),e.postMessage&&(e.dataType=\"postmessage \"+(e.dataType||\"\"))):this._initIframeSettings(e)},_getParamName:function(e){var t=m(e.fileInput),r=e.paramName;return r?m.isArray(r)||(r=[r]):(r=[],t.each(function(){for(var e=m(this),t=e.prop(\"name\")||\"files[]\",n=(e.prop(\"files\")||[1]).length;n;)r.push(t),--n}),r.length||(r=[t.prop(\"name\")||\"files[]\"])),r},_initFormSettings:function(e){e.form&&e.form.length||(e.form=m(e.fileInput.prop(\"form\")),e.form.length||(e.form=m(this.options.fileInput.prop(\"form\")))),e.paramName=this._getParamName(e),e.url||(e.url=e.form.prop(\"action\")||location.href),e.type=(e.type||\"string\"===m.type(e.form.prop(\"method\"))&&e.form.prop(\"method\")||\"\").toUpperCase(),\"POST\"!==e.type&&\"PUT\"!==e.type&&\"PATCH\"!==e.type&&(e.type=\"POST\"),e.formAcceptCharset||(e.formAcceptCharset=e.form.attr(\"accept-charset\"))},_getAJAXSettings:function(e){var t=m.extend({},this.options,e);return this._initFormSettings(t),this._initDataSettings(t),t},_getDeferredState:function(e){return e.state?e.state():e.isResolved()?\"resolved\":e.isRejected()?\"rejected\":\"pending\"},_enhancePromise:function(e){return e.success=e.done,e.error=e.fail,e.complete=e.always,e},_getXHRPromise:function(e,t,n){var r=m.Deferred(),o=r.promise();return t=t||this.options.context||o,!0===e?r.resolveWith(t,n):!1===e&&r.rejectWith(t,n),o.abort=r.promise,this._enhancePromise(o)},_addConvenienceMethods:function(e,n){function r(e){return m.Deferred().resolveWith(o,e).promise()}var o=this;n.process=function(e,t){return(e||t)&&(n._processQueue=this._processQueue=(this._processQueue||r([this])).pipe(function(){return n.errorThrown?m.Deferred().rejectWith(o,[n]).promise():r(arguments)}).pipe(e,t)),this._processQueue||r([this])},n.submit=function(){return\"pending\"!==this.state()&&(n.jqXHR=this.jqXHR=!1!==o._trigger(\"submit\",m.Event(\"submit\",{delegatedEvent:e}),this)&&o._onSend(e,this)),this.jqXHR||o._getXHRPromise()},n.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown=\"abort\",o._trigger(\"fail\",null,this),o._getXHRPromise(!1))},n.state=function(){return this.jqXHR?o._getDeferredState(this.jqXHR):this._processQueue?o._getDeferredState(this._processQueue):void 0},n.processing=function(){return!this.jqXHR&&this._processQueue&&\"pending\"===o._getDeferredState(this._processQueue)},n.progress=function(){return this._progress},n.response=function(){return this._response}},_getUploadedBytes:function(e){var t=e.getResponseHeader(\"Range\"),n=t&&t.split(\"-\"),r=n&&1<n.length&&parseInt(n[1],10);return r&&r+1},_chunkedUpload:function(i,e){i.uploadedBytes=i.uploadedBytes||0;var t,a,s=this,n=i.files[0],u=n.size,c=i.uploadedBytes,l=i.maxChunkSize||u,f=this._blobSlice,p=m.Deferred(),r=p.promise();return!(!(this._isXHRUpload(i)&&f&&(c||l<u))||i.data)&&(!!e||(u<=c?(n.error=i.i18n(\"uploadedBytes\"),this._getXHRPromise(!1,i.context,[null,\"error\",n.error])):(a=function(){var r=m.extend({},i),o=r._progress.loaded;r.blob=f.call(n,c,c+l,n.type),r.chunkSize=r.blob.size,r.contentRange=\"bytes \"+c+\"-\"+(c+r.chunkSize-1)+\"/\"+u,s._initXHRData(r),s._initProgressListener(r),t=(!1!==s._trigger(\"chunksend\",null,r)&&m.ajax(r)||s._getXHRPromise(!1,r.context)).done(function(e,t,n){c=s._getUploadedBytes(n)||c+r.chunkSize,o+r.chunkSize-r._progress.loaded&&s._onProgress(m.Event(\"progress\",{lengthComputable:!0,loaded:c-r.uploadedBytes,total:c-r.uploadedBytes}),r),i.uploadedBytes=r.uploadedBytes=c,r.result=e,r.textStatus=t,r.jqXHR=n,s._trigger(\"chunkdone\",null,r),s._trigger(\"chunkalways\",null,r),c<u?a():p.resolveWith(r.context,[e,t,n])}).fail(function(e,t,n){r.jqXHR=e,r.textStatus=t,r.errorThrown=n,s._trigger(\"chunkfail\",null,r),s._trigger(\"chunkalways\",null,r),p.rejectWith(r.context,[e,t,n])})},this._enhancePromise(r),r.abort=function(){return t.abort()},a(),r)))},_beforeSend:function(e,t){0===this._active&&(this._trigger(\"start\"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(t),this._initProgressObject(t),t._progress.loaded=t.loaded=t.uploadedBytes||0,t._progress.total=t.total=this._getTotal(t.files)||1,t._progress.bitrate=t.bitrate=0,this._active+=1,this._progress.loaded+=t.loaded,this._progress.total+=t.total},_onDone:function(e,t,n,r){var o=r._progress.total,i=r._response;r._progress.loaded<o&&this._onProgress(m.Event(\"progress\",{lengthComputable:!0,loaded:o,total:o}),r),i.result=r.result=e,i.textStatus=r.textStatus=t,i.jqXHR=r.jqXHR=n,this._trigger(\"done\",null,r)},_onFail:function(e,t,n,r){var o=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total),o.jqXHR=r.jqXHR=e,o.textStatus=r.textStatus=t,o.errorThrown=r.errorThrown=n,this._trigger(\"fail\",null,r)},_onAlways:function(e,t,n,r){this._trigger(\"always\",null,r)},_onSend:function(e,t){t.submit||this._addConvenienceMethods(e,t);function n(){return s._sending+=1,u._bitrateTimer=new s._BitrateTimer,r=r||((o||!1===s._trigger(\"send\",m.Event(\"send\",{delegatedEvent:e}),u))&&s._getXHRPromise(!1,u.context,o)||s._chunkedUpload(u)||m.ajax(u)).done(function(e,t,n){s._onDone(e,t,n,u)}).fail(function(e,t,n){s._onFail(e,t,n,u)}).always(function(e,t,n){if(s._onAlways(e,t,n,u),--s._sending,--s._active,u.limitConcurrentUploads&&u.limitConcurrentUploads>s._sending)for(var r=s._slots.shift();r;){if(\"pending\"===s._getDeferredState(r)){r.resolve();break}r=s._slots.shift()}0===s._active&&s._trigger(\"stop\")})}var r,o,i,a,s=this,u=s._getAJAXSettings(t);return this._beforeSend(e,u),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?((a=1<this.options.limitConcurrentUploads?(i=m.Deferred(),this._slots.push(i),i.pipe(n)):(this._sequence=this._sequence.pipe(n,n),this._sequence)).abort=function(){return o=[void 0,\"abort\",\"abort\"],r?r.abort():(i&&i.rejectWith(u.context,o),n())},this._enhancePromise(a)):n()},_onAdd:function(r,o){var i,e,a,t,s=this,u=!0,n=m.extend({},this.options,o),c=o.files,l=c.length,f=n.limitMultiFileUploads,p=n.limitMultiFileUploadSize,d=n.limitMultiFileUploadSizeOverhead,h=0,v=this._getParamName(n),g=0;if(!p||l&&void 0!==c[0].size||(p=void 0),(n.singleFileUploads||f||p)&&this._isXHRUpload(n))if(n.singleFileUploads||p||!f)if(!n.singleFileUploads&&p)for(a=[],i=[],t=0;t<l;t+=1)h+=c[t].size+d,(t+1===l||h+c[t+1].size+d>p||f&&f<=t+1-g)&&(a.push(c.slice(g,t+1)),(e=v.slice(g,t+1)).length||(e=v),i.push(e),g=t+1,h=0);else i=v;else for(a=[],i=[],t=0;t<l;t+=f)a.push(c.slice(t,t+f)),(e=v.slice(t,t+f)).length||(e=v),i.push(e);else a=[c],i=[v];return o.originalFiles=c,m.each(a||c,function(e,t){var n=m.extend({},o);return n.files=a?t:[t],n.paramName=i[e],s._initResponseObject(n),s._initProgressObject(n),s._addConvenienceMethods(r,n),u=s._trigger(\"add\",m.Event(\"add\",{delegatedEvent:r}),n)}),u},_replaceFileInput:function(e){var n=e.fileInput,r=n.clone(!0);e.fileInputClone=r,m(\"<form></form>\").append(r)[0].reset(),n.after(r).detach(),m.cleanData(n.unbind(\"remove\")),this.options.fileInput=this.options.fileInput.map(function(e,t){return t===n[0]?r[0]:t}),n[0]===this.element[0]&&(this.element=r)},_handleFileTreeEntry:function(n,r){function o(e){e&&!e.entry&&(e.entry=n),a.resolve([e])}var e,i=this,a=m.Deferred(),s=function(){e.readEntries(function(e){var t;e.length?(u=u.concat(e),s()):(t=u,i._handleFileTreeEntries(t,r+n.name+\"/\").done(function(e){a.resolve(e)}).fail(o))},o)},u=[];return r=r||\"\",n.isFile?n._file?(n._file.relativePath=r,a.resolve(n._file)):n.file(function(e){e.relativePath=r,a.resolve(e)},o):n.isDirectory?(e=n.createReader(),s()):a.resolve([]),a.promise()},_handleFileTreeEntries:function(e,t){var n=this;return m.when.apply(m,m.map(e,function(e){return n._handleFileTreeEntry(e,t)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(e){var t=(e=e||{}).items;return t&&t.length&&(t[0].webkitGetAsEntry||t[0].getAsEntry)?this._handleFileTreeEntries(m.map(t,function(e){var t;return e.webkitGetAsEntry?((t=e.webkitGetAsEntry())&&(t._file=e.getAsFile()),t):e.getAsEntry()})):m.Deferred().resolve(m.makeArray(e.files)).promise()},_getSingleFileInputFiles:function(e){var t,n,r=(e=m(e)).prop(\"webkitEntries\")||e.prop(\"entries\");if(r&&r.length)return this._handleFileTreeEntries(r);if((t=m.makeArray(e.prop(\"files\"))).length)void 0===t[0].name&&t[0].fileName&&m.each(t,function(e,t){t.name=t.fileName,t.size=t.fileSize});else{if(!(n=e.prop(\"value\")))return m.Deferred().resolve([]).promise();t=[{name:n.replace(/^.*\\\\/,\"\")}]}return m.Deferred().resolve(t).promise()},_getFileInputFiles:function(e){return e instanceof m&&1!==e.length?m.when.apply(m,m.map(e,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(e)},_onChange:function(t){var n=this,r={fileInput:m(t.target),form:m(t.target.form)};this._getFileInputFiles(r.fileInput).always(function(e){r.files=e,n.options.replaceFileInput&&n._replaceFileInput(r),!1!==n._trigger(\"change\",m.Event(\"change\",{delegatedEvent:t}),r)&&n._onAdd(t,r)})},_onPaste:function(e){var t=e.originalEvent&&e.originalEvent.clipboardData&&e.originalEvent.clipboardData.items,r={files:[]};t&&t.length&&(m.each(t,function(e,t){var n=t.getAsFile&&t.getAsFile();n&&r.files.push(n)}),!1!==this._trigger(\"paste\",m.Event(\"paste\",{delegatedEvent:e}),r)&&this._onAdd(e,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var n=this,e=t.dataTransfer,r={};e&&e.files&&e.files.length&&(t.preventDefault(),this._getDroppedFiles(e).always(function(e){r.files=e,!1!==n._trigger(\"drop\",m.Event(\"drop\",{delegatedEvent:t}),r)&&n._onAdd(t,r)}))},_onDragOver:e(\"dragover\"),_onDragEnter:e(\"dragenter\"),_onDragLeave:e(\"dragleave\"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),m.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,\"dragenter dragleave dragover drop\"),this._off(this.options.pasteZone,\"paste\"),this._off(this.options.fileInput,\"change\")},_setOption:function(e,t){var n=-1!==m.inArray(e,this._specialOptions);n&&this._destroyEventHandlers(),this._super(e,t),n&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var e=this.options;void 0===e.fileInput?e.fileInput=this.element.is('input[type=\"file\"]')?this.element:this.element.find('input[type=\"file\"]'):e.fileInput instanceof m||(e.fileInput=m(e.fileInput)),e.dropZone instanceof m||(e.dropZone=m(e.dropZone)),e.pasteZone instanceof m||(e.pasteZone=m(e.pasteZone))},_getRegExp:function(e){var t=e.split(\"/\"),n=t.pop();return t.shift(),new RegExp(t.join(\"/\"),n)},_isRegExpOption:function(e,t){return\"url\"!==e&&\"string\"===m.type(t)&&/^\\/.*\\/[igm]{0,3}$/.test(t)},_initDataAttributes:function(){var r=this,o=this.options,i=m(this.element[0].cloneNode(!1)),e=i.data();i.remove(),m.each(e,function(e,t){var n=\"data-\"+e.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase();i.attr(n)&&(r._isRegExpOption(e,t)&&(t=r._getRegExp(t)),o[e]=t)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var n=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(e){t.files=e,n._onAdd(null,t)}):(t.files=m.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var n,r,o=this,i=m.Deferred(),e=i.promise();return e.abort=function(){return r=!0,n?n.abort():(i.reject(null,\"abort\",\"abort\"),e)},this._getFileInputFiles(t.fileInput).always(function(e){r||(e.length?(t.files=e,(n=o._onSend(null,t)).then(function(e,t,n){i.resolve(e,t,n)},function(e,t,n){i.reject(e,t,n)})):i.reject())}),this._enhancePromise(e)}if(t.files=m.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})}),function(e){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(window.jQuery)}(function(u){\"use strict\";var r=0;u.ajaxTransport(\"iframe\",function(o){if(o.async){var i,a,t,s=o.initialIframeSrc||\"javascript:false;\";return{send:function(e,n){(i=u('<form style=\"display:none;\"></form>')).attr(\"accept-charset\",o.formAcceptCharset),t=/\\?/.test(o.url)?\"&\":\"?\",\"DELETE\"===o.type?(o.url=o.url+t+\"_method=DELETE\",o.type=\"POST\"):\"PUT\"===o.type?(o.url=o.url+t+\"_method=PUT\",o.type=\"POST\"):\"PATCH\"===o.type&&(o.url=o.url+t+\"_method=PATCH\",o.type=\"POST\"),a=u('<iframe src=\"'+s+'\" name=\"iframe-transport-'+(r+=1)+'\"></iframe>').bind(\"load\",function(){var r,t=u.isArray(o.paramName)?o.paramName:[o.paramName];a.unbind(\"load\").bind(\"load\",function(){var t;try{if(!(t=a.contents()).length||!t[0].firstChild)throw new Error}catch(e){t=void 0}n(200,\"success\",{iframe:t}),u('<iframe src=\"'+s+'\"></iframe>').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop(\"target\",a.prop(\"name\")).prop(\"action\",o.url).prop(\"method\",o.type),o.formData&&u.each(o.formData,function(e,t){u('<input type=\"hidden\"/>').prop(\"name\",t.name).val(t.value).appendTo(i)}),o.fileInput&&o.fileInput.length&&\"POST\"===o.type&&(r=o.fileInput.clone(),o.fileInput.after(function(e){return r[e]}),o.paramName&&o.fileInput.each(function(e){u(this).prop(\"name\",t[e]||o.paramName)}),i.append(o.fileInput).prop(\"enctype\",\"multipart/form-data\").prop(\"encoding\",\"multipart/form-data\"),o.fileInput.removeAttr(\"form\")),i.submit(),r&&r.length&&o.fileInput.each(function(e,t){var n=u(r[e]);u(t).prop(\"name\",n.prop(\"name\")).attr(\"form\",n.attr(\"form\")),n.replaceWith(t)})}),i.append(a).appendTo(document.body)},abort:function(){a&&a.unbind(\"load\").prop(\"src\",s),i&&i.remove()}}}}),u.ajaxSetup({converters:{\"iframe text\":function(e){return e&&u(e[0].body).text()},\"iframe json\":function(e){return e&&u.parseJSON(u(e[0].body).text())},\"iframe html\":function(e){return e&&u(e[0].body).html()},\"iframe xml\":function(e){var t=e&&e[0];return t&&u.isXMLDoc(t)?t:u.parseXML(t.XMLDocument&&t.XMLDocument.xml||u(t.body).html())},\"iframe script\":function(e){return e&&u.globalEval(u(e[0].body).text())}}})}),function(t){jQuery.fn.putCursorAtEnd=function(){return this.each(function(){var e;t(this).focus(),this.setSelectionRange?(e=2*t(this).val().length,this.setSelectionRange(e,e)):t(this).val(t(this).val()),this.scrollTop=999999})}}(jQuery),function(c){var a=new Array,s=new Array;c.fn.doAutosize=function(e){var t,n,r,o=c(this).data(\"minwidth\"),i=c(this).data(\"maxwidth\"),a=\"\",s=c(this),u=c(\"#\"+c(this).data(\"tester_id\"));a!==(a=s.val())&&(t=a.replace(/&/g,\"&amp;\").replace(/\\s/g,\" \").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\"),u.html(t),((r=(n=u.width())+e.comfortZone>=o?n+e.comfortZone:o)<s.width()&&o<=r||o<r&&r<i)&&s.width(r))},c.fn.resetAutosize=function(e){var t=c(this).data(\"minwidth\")||e.minInputWidth||c(this).width(),n=c(this).data(\"maxwidth\")||e.maxInputWidth||c(this).closest(\".tagsinput\").width()-e.inputPadding,r=c(this),o=c(\"<tester/>\").css({position:\"absolute\",top:-9999,left:-9999,width:\"auto\",fontSize:r.css(\"fontSize\"),fontFamily:r.css(\"fontFamily\"),fontWeight:r.css(\"fontWeight\"),letterSpacing:r.css(\"letterSpacing\"),whiteSpace:\"nowrap\"}),i=c(this).attr(\"id\")+\"_autosize_tester\";0<!c(\"#\"+i).length&&(o.attr(\"id\",i),o.appendTo(\"body\")),r.data(\"minwidth\",t),r.data(\"maxwidth\",n),r.data(\"tester_id\",i),r.css(\"width\",t)},c.fn.addTag=function(o,i){return i=jQuery.extend({focus:!1,callback:!0},i),this.each(function(){var e,t,n=c(this).attr(\"id\"),r=c(this).val().split(a[n]);\"\"==r[0]&&(r=new Array),o=jQuery.trim(o),i.unique?1==(e=c(this).tagExist(o))&&c(\"#\"+n+\"_tag\").addClass(\"not_valid\"):e=!1,\"\"!=o&&1!=e&&(c(\"<span>\").addClass(\"tag\").append(c(\"<span>\").text(o).append(\"&nbsp;&nbsp;\"),c(\"<a>\",{href:\"#\",title:\"Removing tag\",text:\"x\"}).click(function(){return c(\"#\"+n).removeTag(escape(o))})).insertBefore(\"#\"+n+\"_addTag\"),r.push(o),c(\"#\"+n+\"_tag\").val(\"\"),i.focus?c(\"#\"+n+\"_tag\").focus():c(\"#\"+n+\"_tag\").blur(),c.fn.tagsInput.updateTagsField(this,r),i.callback&&s[n]&&s[n].onAddTag&&s[n].onAddTag.call(this,o),s[n]&&s[n].onChange&&(t=r.length,s[n].onChange.call(this,c(this),r[t-1])))}),!1},c.fn.removeTag=function(n){return n=unescape(n),this.each(function(){var e=c(this).attr(\"id\"),t=c(this).val().split(a[e]);for(c(\"#\"+e+\"_tagsinput .tag\").remove(),str=\"\",i=0;i<t.length;i++)t[i]!=n&&(str=str+a[e]+t[i]);c.fn.tagsInput.importTags(this,str),s[e]&&s[e].onRemoveTag&&s[e].onRemoveTag.call(this,n)}),!1},c.fn.tagExist=function(e){var t=c(this).attr(\"id\"),n=c(this).val().split(a[t]);return 0<=jQuery.inArray(e,n)},c.fn.importTags=function(e){var t=c(this).attr(\"id\");c(\"#\"+t+\"_tagsinput .tag\").remove(),c.fn.tagsInput.importTags(this,e)},c.fn.tagsInput=function(e){var o=jQuery.extend({interactive:!0,defaultText:\"add a tag\",minChars:0,width:\"300px\",height:\"100px\",autocomplete:{selectFirst:!1},hide:!0,delimiter:\",\",unique:!0,removeWithBackspace:!0,placeholderColor:\"#666666\",autosize:!0,comfortZone:20,inputPadding:12},e),n=0;return this.each(function(){if(void 0===c(this).attr(\"data-tagsinput-init\")){c(this).attr(\"data-tagsinput-init\",!0),o.hide&&c(this).hide();var r=c(this).attr(\"id\");r&&!a[c(this).attr(\"id\")]||(r=c(this).attr(\"id\",\"tags\"+(new Date).getTime()+n++).attr(\"id\"));var e=jQuery.extend({pid:r,real_input:\"#\"+r,holder:\"#\"+r+\"_tagsinput\",input_wrapper:\"#\"+r+\"_addTag\",fake_input:\"#\"+r+\"_tag\"},o);a[r]=e.delimiter,(o.onAddTag||o.onRemoveTag||o.onChange)&&(s[r]=new Array,s[r].onAddTag=o.onAddTag,s[r].onRemoveTag=o.onRemoveTag,s[r].onChange=o.onChange);var t='<div id=\"'+r+'_tagsinput\" class=\"tagsinput\"><div id=\"'+r+'_addTag\">';if(o.interactive&&(t=t+'<input id=\"'+r+'_tag\" value=\"\" data-default=\"'+o.defaultText+'\" />'),c(t+='</div><div class=\"tags_clear\"></div></div>').insertAfter(this),c(e.holder).css(\"width\",o.width),c(e.holder).css(\"min-height\",o.height),c(e.holder).css(\"height\",o.height),\"\"!=c(e.real_input).val()&&c.fn.tagsInput.importTags(c(e.real_input),c(e.real_input).val()),o.interactive){if(c(e.fake_input).val(c(e.fake_input).attr(\"data-default\")),c(e.fake_input).css(\"color\",o.placeholderColor),c(e.fake_input).resetAutosize(o),c(e.holder).bind(\"click\",e,function(e){c(e.data.fake_input).focus()}),c(e.fake_input).bind(\"focus\",e,function(e){c(e.data.fake_input).val()==c(e.data.fake_input).attr(\"data-default\")&&c(e.data.fake_input).val(\"\"),c(e.data.fake_input).css(\"color\",\"#000000\")}),null!=o.autocomplete_url){for(attrname in autocomplete_options={source:o.autocomplete_url},o.autocomplete)autocomplete_options[attrname]=o.autocomplete[attrname];void 0!==jQuery.Autocompleter?(c(e.fake_input).autocomplete(o.autocomplete_url,o.autocomplete),c(e.fake_input).bind(\"result\",e,function(e,t,n){t&&c(\"#\"+r).addTag(t[0]+\"\",{focus:!0,unique:o.unique})})):void 0!==jQuery.ui.autocomplete&&(c(e.fake_input).autocomplete(autocomplete_options),c(e.fake_input).bind(\"autocompleteselect\",e,function(e,t){return c(e.data.real_input).addTag(t.item.value,{focus:!0,unique:o.unique}),!1}))}else c(e.fake_input).bind(\"blur\",e,function(e){var t=c(this).attr(\"data-default\");return\"\"!=c(e.data.fake_input).val()&&c(e.data.fake_input).val()!=t?e.data.minChars<=c(e.data.fake_input).val().length&&(!e.data.maxChars||e.data.maxChars>=c(e.data.fake_input).val().length)&&c(e.data.real_input).addTag(c(e.data.fake_input).val(),{focus:!0,unique:o.unique}):(c(e.data.fake_input).val(c(e.data.fake_input).attr(\"data-default\")),c(e.data.fake_input).css(\"color\",o.placeholderColor)),!1});c(e.fake_input).bind(\"keypress\",e,function(e){return u(e)?(e.preventDefault(),e.data.minChars<=c(e.data.fake_input).val().length&&(!e.data.maxChars||e.data.maxChars>=c(e.data.fake_input).val().length)&&c(e.data.real_input).addTag(c(e.data.fake_input).val(),{focus:!0,unique:o.unique}),c(e.data.fake_input).resetAutosize(o),!1):void(e.data.autosize&&c(e.data.fake_input).doAutosize(o))}),e.removeWithBackspace&&c(e.fake_input).bind(\"keydown\",function(e){var t,n;8==e.keyCode&&\"\"==c(this).val()&&(e.preventDefault(),n=c(this).closest(\".tagsinput\").find(\".tag:last\").text(),t=c(this).attr(\"id\").replace(/_tag$/,\"\"),n=n.replace(/[\\s]+x$/,\"\"),c(\"#\"+t).removeTag(escape(n)),c(this).trigger(\"focus\"))}),c(e.fake_input).blur(),e.unique&&c(e.fake_input).keydown(function(e){8!=e.keyCode&&!String.fromCharCode(e.which).match(/\\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)||c(this).removeClass(\"not_valid\")})}}}),this},c.fn.tagsInput.updateTagsField=function(e,t){var n=c(e).attr(\"id\");c(e).val(t.join(a[n]))},c.fn.tagsInput.importTags=function(e,t){c(e).val(\"\");var n=c(e).attr(\"id\"),r=t.split(a[n]);for(i=0;i<r.length;i++)c(e).addTag(r[i],{focus:!1,callback:!1});s[n]&&s[n].onChange&&s[n].onChange.call(e,e,r[i])};var u=function(n){var r=!1;return 13==n.which||(\"string\"==typeof n.data.delimiter?n.which==n.data.delimiter.charCodeAt(0)&&(r=!0):c.each(n.data.delimiter,function(e,t){n.which==t.charCodeAt(0)&&(r=!0)}),r)}}(jQuery),function(a){var s,u=a();a.fn.sortable=function(i){var e=String(i);return i=a.extend({connectWith:!1},i),this.each(function(){var n,r,t,o;/^enable|disable|destroy$/.test(e)?(t=a(this).children(a(this).data(\"items\")).attr(\"draggable\",\"enable\"==e),\"destroy\"==e&&t.add(this).removeData(\"connectWith items\").off(\"dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s\")):(t=a(this).children(i.items),o=a(\"<\"+(/^ul|ol$/i.test(this.tagName)?\"li\":\"div\")+' class=\"sortable-placeholder\">'),t.find(i.handle).mousedown(function(){n=!0}).mouseup(function(){n=!1}),a(this).data(\"items\",i.items),u=u.add(o),i.connectWith&&a(i.connectWith).add(this).data(\"connectWith\",i.connectWith),t.attr(\"draggable\",\"true\").on(\"dragstart.h5s\",function(e){if(i.handle&&!n)return!1;n=!1;var t=e.originalEvent.dataTransfer;t.effectAllowed=\"move\",t.setData(\"Text\",\"dummy\"),r=(s=a(this)).addClass(\"sortable-dragging\").index()}).on(\"dragend.h5s\",function(){s&&(s.removeClass(\"sortable-dragging\").show(),u.detach(),r!=s.index()&&s.parent().trigger(\"sortupdate\",{item:s}),s=null)}).not(\"a[href], img\").on(\"selectstart.h5s\",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,o]).on(\"dragover.h5s dragenter.h5s drop.h5s\",function(e){return!t.is(s)&&i.connectWith!==a(s).parent().data(\"connectWith\")||(\"drop\"==e.type?(e.stopPropagation(),u.filter(\":visible\").after(s),s.trigger(\"dragend.h5s\")):(e.preventDefault(),e.originalEvent.dataTransfer.dropEffect=\"move\",t.is(this)?(i.forcePlaceholderSize&&o.height(s.outerHeight()),s.hide(),a(this)[o.index()<a(this).index()?\"after\":\"before\"](o),u.not(o).detach()):u.is(this)||a(this).children(i.items).length||(u.detach(),a(this).append(o))),!1)}))})}}(jQuery),function(){var E,d=200,y=\"Expected a function\",r=\"__lodash_hash_undefined__\",C=\"__lodash_placeholder__\",k=1,O=2,j=4,b=1,m=2,T=1,I=2,S=4,P=8,e=16,A=32,R=64,t=128,n=512,o=1/0,i=9007199254740991,a=17976931348623157e292,s=NaN,u=4294967295,N=[[\"ary\",t],[\"bind\",T],[\"bindKey\",I],[\"curry\",P],[\"curryRight\",e],[\"flip\",n],[\"partial\",A],[\"partialRight\",R],[\"rearg\",256]],D=\"[object Arguments]\",_=\"[object Array]\",c=\"[object AsyncFunction]\",M=\"[object Boolean]\",F=\"[object Date]\",w=\"[object Error]\",L=\"[object Function]\",H=\"[object GeneratorFunction]\",q=\"[object Map]\",B=\"[object Number]\",l=\"[object Null]\",$=\"[object Object]\",f=\"[object Promise]\",p=\"[object Proxy]\",U=\"[object RegExp]\",z=\"[object Set]\",W=\"[object String]\",V=\"[object Symbol]\",h=\"[object Undefined]\",v=\"[object WeakMap]\",K=\"[object ArrayBuffer]\",X=\"[object DataView]\",Q=\"[object Float32Array]\",G=\"[object Float64Array]\",Z=\"[object Int8Array]\",J=\"[object Int16Array]\",Y=\"[object Int32Array]\",ee=\"[object Uint8Array]\",te=\"[object Uint8ClampedArray]\",ne=\"[object Uint16Array]\",re=\"[object Uint32Array]\",g=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,x=/^\\w*$/,oe=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,ie=/^\\s+|\\s+$/g,ae=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,se=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ue=/,? & /,ce=/\\\\(\\\\)?/g,le=/\\w*$/,fe=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,de=/^\\[object .+?Constructor\\]$/,he=/^0o[0-7]+$/i,ve=/^(?:0|[1-9]\\d*)$/,ge=\"\\\\ud800-\\\\udfff\",me=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",ye=\"\\\\ufe0e\\\\ufe0f\",_e=\"[\"+ge+\"]\",be=\"[\"+me+\"]\",we=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",xe=\"[^\"+ge+\"]\",ke=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Oe=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",je=\"\\\\u200d\",Ee=\"(?:\"+be+\"|\"+we+\")\"+\"?\",Ce=\"[\"+ye+\"]?\",Te=Ce+Ee+(\"(?:\"+je+\"(?:\"+[xe,ke,Oe].join(\"|\")+\")\"+Ce+Ee+\")*\"),Ie=\"(?:\"+[xe+be+\"?\",be,ke,Oe,_e].join(\"|\")+\")\",Se=RegExp(we+\"(?=\"+we+\")|\"+Ie+Te,\"g\"),Pe=RegExp(\"[\"+je+ge+me+ye+\"]\"),Ae={};Ae[Q]=Ae[G]=Ae[Z]=Ae[J]=Ae[Y]=Ae[ee]=Ae[te]=Ae[ne]=Ae[re]=!0,Ae[D]=Ae[_]=Ae[K]=Ae[M]=Ae[X]=Ae[F]=Ae[w]=Ae[L]=Ae[q]=Ae[B]=Ae[$]=Ae[U]=Ae[z]=Ae[W]=Ae[v]=!1;var Re={};Re[D]=Re[_]=Re[K]=Re[X]=Re[M]=Re[F]=Re[Q]=Re[G]=Re[Z]=Re[J]=Re[Y]=Re[q]=Re[B]=Re[$]=Re[U]=Re[z]=Re[W]=Re[V]=Re[ee]=Re[te]=Re[ne]=Re[re]=!0,Re[w]=Re[L]=Re[v]=!1;var Ne=parseInt,De=\"object\"==typeof global&&global&&global.Object===Object&&global,Me=\"object\"==typeof self&&self&&self.Object===Object&&self,Fe=De||Me||Function(\"return this\")(),Le=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,He=Le&&\"object\"==typeof module&&module&&!module.nodeType&&module,qe=He&&He.exports===Le,Be=qe&&De.process,$e=function(){try{var e=He&&He.require&&He.require(\"util\").types;return e?e:Be&&Be.binding&&Be.binding(\"util\")}catch(e){}}(),Ue=$e&&$e.isMap,ze=$e&&$e.isSet,We=$e&&$e.isTypedArray;function Ve(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Ke(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o<i;){var a=e[o];t(r,a,n(a),e)}return r}function Xe(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Qe(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Ge(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}function Ze(e,t){var n,r,o;return!!(null==e?0:e.length)&&(n=e,o=0,-1<((r=t)==r?function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}(n,r,o):nt(n,rt,o)))}function Je(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}function Ye(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}function et(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}function tt(e,t,n,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function nt(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}function rt(e){return e!=e}function ot(e,r,o,i,t){return t(e,function(e,t,n){o=i?(i=!1,e):r(o,e,t,n)}),o}function it(t){return function(e){return t(e)}}function at(e,t){return e.has(t)}function st(e){var n=-1,r=Array(e.size);return e.forEach(function(e,t){r[++n]=[t,e]}),r}function ut(t,n){return function(e){return t(n(e))}}function ct(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function lt(e){return t=e,Pe.test(t)?e.match(Se)||[]:e.split(\"\");var t}var ft,pt=Array.prototype,dt=Function.prototype,ht=Object.prototype,vt=Fe[\"__core-js_shared__\"],gt=dt.toString,mt=ht.hasOwnProperty,yt=(ft=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+ft:\"\",_t=ht.toString,bt=gt.call(Object),wt=RegExp(\"^\"+gt.call(mt).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),xt=qe?Fe.Buffer:E,kt=Fe.Symbol,Ot=Fe.Uint8Array,jt=xt?xt.allocUnsafe:E,Et=ut(Object.getPrototypeOf,Object),Ct=Object.create,Tt=ht.propertyIsEnumerable,It=pt.splice,St=kt?kt.isConcatSpreadable:E,Pt=kt?kt.iterator:E,At=kt?kt.toStringTag:E,Rt=function(){try{var e=xr(Object,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}(),Nt=Math.ceil,Dt=Object.getOwnPropertySymbols,Mt=xt?xt.isBuffer:E,Ft=ut(Object.keys,Object),Lt=Math.max,Ht=Math.min,qt=Date.now,Bt=pt.reverse,$t=xr(Fe,\"DataView\"),Ut=xr(Fe,\"Map\"),zt=xr(Fe,\"Promise\"),Wt=xr(Fe,\"Set\"),Vt=xr(Fe,\"WeakMap\"),Kt=xr(Object,\"create\"),Xt=Vt&&new Vt,Qt={},Gt=zr($t),Zt=zr(Ut),Jt=zr(zt),Yt=zr(Wt),en=zr(Vt),tn=kt?kt.prototype:E,nn=tn?tn.valueOf:E,rn=tn?tn.toString:E;function on(e){if(Oo(e)&&!mo(e)&&!(e instanceof ln)){if(e instanceof cn)return e;if(mt.call(e,\"__wrapped__\"))return Wr(e)}return new cn(e)}var an=function(e){if(!ko(e))return{};if(Ct)return Ct(e);sn.prototype=e;var t=new sn;return sn.prototype=E,t};function sn(){}function un(){}function cn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=E}function ln(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u,this.__views__=[]}function fn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function pn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function dn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function hn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new dn;++t<n;)this.add(e[t])}function vn(e){var t=this.__data__=new pn(e);this.size=t.size}function gn(e,t){var n=mo(e),r=!n&&go(e),o=!n&&!r&&bo(e),i=!n&&!r&&!o&&So(e),a=n||r||o||i,s=a?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],u=s.length;for(var c in e)!t&&!mt.call(e,c)||a&&(\"length\"==c||o&&(\"offset\"==c||\"parent\"==c)||i&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||Tr(c,u))||s.push(c);return s}function mn(e,t,n){(n===E||vo(e[t],n))&&(n!==E||t in e)||wn(e,t,n)}function yn(e,t,n){var r=e[t];mt.call(e,t)&&vo(r,n)&&(n!==E||t in e)||wn(e,t,n)}function _n(e,t){for(var n=e.length;n--;)if(vo(e[n][0],t))return n;return-1}function bn(e,r,o,i){return jn(e,function(e,t,n){r(i,e,o(e),n)}),i}function wn(e,t,n){\"__proto__\"==t&&Rt?Rt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function xn(n,r,o,e,t,i){var a,s=r&k,u=r&O,c=r&j;if(o&&(a=t?o(n,e,t,i):o(n)),a!==E)return a;if(!ko(n))return n;var l,f,p,d,h,v,g,m,y=mo(n);if(y){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&\"string\"==typeof e[0]&&mt.call(e,\"index\")&&(n.index=e.index,n.input=e.input);return n}(n),!s)return ur(n,a)}else{var _=jr(n),b=_==L||_==H;if(bo(n))return ir(n,s);if(_==$||_==D||b&&!t){if(a=u||b?{}:Er(n),!s)return u?(m=h=n,v=(g=a)&&cr(m,$o(m),g),cr(h,Or(h),v)):(d=l=n,f=(p=a)&&cr(d,Bo(d),p),cr(l,kr(l),f))}else{if(!Re[_])return t?n:{};a=function(e,t,n){var r=e.constructor;switch(t){case K:return ar(e);case M:case F:return new r(+e);case X:return function(e,t){var n=t?ar(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Q:case G:case Z:case J:case Y:case ee:case te:case ne:case re:return sr(e,n);case q:return new r;case B:case W:return new r(e);case U:return function(e){var t=new e.constructor(e.source,le.exec(e));return t.lastIndex=e.lastIndex,t}(e);case z:return new r;case V:return function(e){return nn?Object(nn.call(e)):{}}(e)}}(n,_,s)}}var w=(i=i||new vn).get(n);if(w)return w;i.set(n,a),Co(n)?n.forEach(function(e){a.add(xn(e,r,o,e,n,i))}):jo(n)&&n.forEach(function(e,t){a.set(t,xn(e,r,o,t,n,i))});var x=y?E:(c?u?yr:mr:u?$o:Bo)(n);return Xe(x||n,function(e,t){x&&(e=n[t=e]),yn(a,t,xn(e,r,o,t,n,i))}),a}(on.prototype=un.prototype).constructor=on,(cn.prototype=an(un.prototype)).constructor=cn,(ln.prototype=an(un.prototype)).constructor=ln,fn.prototype.clear=function(){this.__data__=Kt?Kt(null):{},this.size=0},fn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},fn.prototype.get=function(e){var t=this.__data__;if(Kt){var n=t[e];return n===r?E:n}return mt.call(t,e)?t[e]:E},fn.prototype.has=function(e){var t=this.__data__;return Kt?t[e]!==E:mt.call(t,e)},fn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Kt&&t===E?r:t,this},pn.prototype.clear=function(){this.__data__=[],this.size=0},pn.prototype.delete=function(e){var t=this.__data__,n=_n(t,e);return!(n<0)&&(n==t.length-1?t.pop():It.call(t,n,1),--this.size,!0)},pn.prototype.get=function(e){var t=this.__data__,n=_n(t,e);return n<0?E:t[n][1]},pn.prototype.has=function(e){return-1<_n(this.__data__,e)},pn.prototype.set=function(e,t){var n=this.__data__,r=_n(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},dn.prototype.clear=function(){this.size=0,this.__data__={hash:new fn,map:new(Ut||pn),string:new fn}},dn.prototype.delete=function(e){var t=wr(this,e).delete(e);return this.size-=t?1:0,t},dn.prototype.get=function(e){return wr(this,e).get(e)},dn.prototype.has=function(e){return wr(this,e).has(e)},dn.prototype.set=function(e,t){var n=wr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},hn.prototype.add=hn.prototype.push=function(e){return this.__data__.set(e,r),this},hn.prototype.has=function(e){return this.__data__.has(e)},vn.prototype.clear=function(){this.__data__=new pn,this.size=0},vn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},vn.prototype.get=function(e){return this.__data__.get(e)},vn.prototype.has=function(e){return this.__data__.has(e)},vn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof pn){var r=n.__data__;if(!Ut||r.length<d-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new dn(r)}return n.set(e,t),this.size=n.size,this};var kn,On,jn=(kn=An,function(e,t){if(null==e)return e;if(!yo(e))return kn(e,t);for(var n=e.length,r=On?n:-1,o=Object(e);(On?r--:++r<n)&&!1!==t(o[r],r,o););return e});function En(e,r){var o=!0;return jn(e,function(e,t,n){return o=!!r(e,t,n)}),o}function Cn(e,t,n){for(var r=-1,o=e.length;++r<o;){var i,a,s=e[r],u=t(s);null!=u&&(i===E?u==u&&!Io(u):n(u,i))&&(i=u,a=s)}return a}function Tn(e,r){var o=[];return jn(e,function(e,t,n){r(e,t,n)&&o.push(e)}),o}function In(e,t,n,r,o){var i=-1,a=e.length;for(n=n||Cr,o=o||[];++i<a;){var s=e[i];0<t&&n(s)?1<t?In(s,t-1,n,r,o):et(o,s):r||(o[o.length]=s)}return o}var Sn,Pn=function(e,t,n){for(var r=-1,o=Object(e),i=n(e),a=i.length;a--;){var s=i[Sn?a:++r];if(!1===t(o[s],s,o))break}return e};function An(e,t){return e&&Pn(e,t,Bo)}function Rn(t,e){return Ge(e,function(e){return wo(t[e])})}function Nn(e,t){for(var n=0,r=(t=or(t,e)).length;null!=e&&n<r;)e=e[Ur(t[n++])];return n&&n==r?e:E}function Dn(e,t,n){var r=t(e);return mo(e)?r:et(r,n(e))}function Mn(e){return null==e?e===E?h:l:At&&At in Object(e)?function(e){var t=mt.call(e,At),n=e[At];try{e[At]=E;var r=!0}catch(e){}var o=_t.call(e);r&&(t?e[At]=n:delete e[At]);return o}(e):(t=e,_t.call(t));var t}function Fn(e,t){return t<e}function Ln(e,t){return null!=e&&t in Object(e)}function Hn(e,t,n){var r=null==(e=Dr(e,t=or(t,e)))?e:e[Ur(Gr(t))];return null==r?E:Ve(r,e,n)}function qn(e){return Oo(e)&&Mn(e)==D}function Bn(e,t,n,r,o){return e===t||(null==e||null==t||!Oo(e)&&!Oo(t)?e!=e&&t!=t:function(e,t,n,r,o,i){var a=mo(e),s=mo(t),u=a?_:jr(e),c=s?_:jr(t),l=(u=u==D?$:u)==$,f=(c=c==D?$:c)==$,p=u==c;if(p&&bo(e)){if(!bo(t))return!1;l=!(a=!0)}if(p&&!l)return i=i||new vn,a||So(e)?vr(e,t,n,r,o,i):function(e,t,n,r,o,i,a){switch(n){case X:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case K:return e.byteLength==t.byteLength&&i(new Ot(e),new Ot(t))?!0:!1;case M:case F:case B:return vo(+e,+t);case w:return e.name==t.name&&e.message==t.message;case U:case W:return e==t+\"\";case q:var s=st;case z:var u=r&b;if(s=s||ct,e.size!=t.size&&!u)return!1;var c=a.get(e);if(c)return c==t;r|=m,a.set(e,t);var l=vr(s(e),s(t),r,o,i,a);return a.delete(e),l;case V:if(nn)return nn.call(e)==nn.call(t)}return!1}(e,t,u,n,r,o,i);if(!(n&b)){var d=l&&mt.call(e,\"__wrapped__\"),h=f&&mt.call(t,\"__wrapped__\");if(d||h){var v=d?e.value():e,g=h?t.value():t;return i=i||new vn,o(v,g,n,r,i)}}return p&&(i=i||new vn,function(e,t,n,r,o,i){var a=n&b,s=mr(e),u=s.length,c=mr(t).length;if(u!=c&&!a)return!1;var l=u;for(;l--;){var f=s[l];if(!(a?f in t:mt.call(t,f)))return!1}var p=i.get(e);if(p&&i.get(t))return p==t;var d=!0;i.set(e,t),i.set(t,e);var h=a;for(;++l<u;){f=s[l];var v,g=e[f],m=t[f];if(r&&(v=a?r(m,g,f,t,e,i):r(g,m,f,e,t,i)),!(v===E?g===m||o(g,m,n,r,i):v)){d=!1;break}h=h||\"constructor\"==f}{var y,_;d&&!h&&(y=e.constructor,_=t.constructor,y!=_&&\"constructor\"in e&&\"constructor\"in t&&!(\"function\"==typeof y&&y instanceof y&&\"function\"==typeof _&&_ instanceof _)&&(d=!1))}return i.delete(e),i.delete(t),d}(e,t,n,r,o,i))}(e,t,n,r,Bn,o))}function $n(e){return ko(e)&&!(yt&&yt in e)&&(wo(e)?wt:de).test(zr(e))}function Un(e){return\"function\"==typeof e?e:null==e?Xo:\"object\"==typeof e?mo(e)?function(n,r){if(Sr(n)&&Ar(r))return Rr(Ur(n),r);return function(e){var t=Lo(e,n);return t===E&&t===r?Ho(e,n):Bn(r,t,b|m)}}(e[0],e[1]):function(t){var n=function(e){var t=Bo(e),n=t.length;for(;n--;){var r=t[n],o=e[r];t[n]=[r,o,Ar(o)]}return t}(t);if(1==n.length&&n[0][2])return Rr(n[0][0],n[0][1]);return function(e){return e===t||function(e,t,n,r){var o=n.length,i=o,a=!r;if(null==e)return!i;for(e=Object(e);o--;){var s=n[o];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++o<i;){var u=(s=n[o])[0],c=e[u],l=s[1];if(a&&s[2]){if(c===E&&!(u in e))return!1}else{var f,p=new vn;if(r&&(f=r(c,l,u,e,t,p)),!(f===E?Bn(l,c,b|m,r,p):f))return!1}}return!0}(e,t,n)}}(e):Jo(e)}function zn(e){if(!Pr(e))return Ft(e);var t=[];for(var n in Object(e))mt.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}function Wn(e){if(!ko(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Pr(e),n=[];for(var r in e)(\"constructor\"!=r||!t&&mt.call(e,r))&&n.push(r);return n}function Vn(e,t){return e<t}function Kn(e,r){var o=-1,i=yo(e)?Array(e.length):[];return jn(e,function(e,t,n){i[++o]=r(e,t,n)}),i}function Xn(r,o,i,a,s){r!==o&&Pn(o,function(e,t){var n;s=s||new vn,ko(e)?function(e,t,n,r,o,i,a){var s=Mr(e,n),u=Mr(t,n),c=a.get(u);if(c)return mn(e,n,c);var l=i?i(s,u,n+\"\",e,t,a):E,f=l===E;{var p,d,h;f&&(p=mo(u),d=!p&&bo(u),h=!p&&!d&&So(u),l=u,p||d||h?l=mo(s)?s:_o(s)?ur(s):d?ir(u,!(f=!1)):h?sr(u,!(f=!1)):[]:Eo(u)||go(u)?go(l=s)?l=Do(s):ko(s)&&!wo(s)||(l=Er(u)):f=!1)}f&&(a.set(u,l),o(l,u,r,i,a),a.delete(u));mn(e,n,l)}(r,o,t,i,Xn,a,s):((n=a?a(Mr(r,t),e,t+\"\",r,o,s):E)===E&&(n=e),mn(r,t,n))},$o)}function Qn(e,r,n){var o=-1;return r=Ye(r.length?r:[Xo],it(br())),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(Kn(e,function(t,e,n){return{criteria:Ye(r,function(e){return e(t)}),index:++o,value:t}}),function(e,t){return function(e,t,n){var r=-1,o=e.criteria,i=t.criteria,a=o.length,s=n.length;for(;++r<a;){var u=function(e,t){if(e!==t){var n=e!==E,r=null===e,o=e==e,i=Io(e),a=t!==E,s=null===t,u=t==t,c=Io(t);if(!s&&!c&&!i&&t<e||i&&a&&u&&!s&&!c||r&&a&&u||!n&&u||!o)return 1;if(!r&&!i&&!c&&e<t||c&&n&&o&&!r&&!i||s&&n&&o||!a&&o||!u)return-1}return 0}(o[r],i[r]);if(u){if(s<=r)return u;var c=n[r];return u*(\"desc\"==c?-1:1)}}return e.index-t.index}(e,t,n)})}function Gn(n,e){return function(e,t,n){var r=-1,o=t.length,i={};for(;++r<o;){var a=t[r],s=Nn(e,a);n(s,a)&&function(e,t,n,r){if(!ko(e))return;t=or(t,e);var o=-1,i=t.length,a=i-1,s=e;for(;null!=s&&++o<i;){var u,c=Ur(t[o]),l=n;o!=a&&(u=s[c],(l=r?r(u,c,s):E)===E&&(l=ko(u)?u:Tr(t[o+1])?[]:{})),yn(s,c,l),s=s[c]}}(i,or(a,e),s)}return i}(n,e,function(e,t){return Ho(n,t)})}function Zn(e,t){return Lr(Nr(e,t,Xo),e+\"\")}var Jn=Xt?function(e,t){return Xt.set(e,t),e}:Xo,Yn=Rt?function(e,t){return Rt(e,\"toString\",{configurable:!0,enumerable:!1,value:Ko(t),writable:!0})}:Xo;function er(e){if(\"string\"==typeof e)return e;if(mo(e))return Ye(e,er)+\"\";if(Io(e))return rn?rn.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-o?\"-0\":t}function tr(e,t,n){var r=-1,o=Ze,i=e.length,a=!0,s=[],u=s;if(n)a=!1,o=Je;else if(d<=i){var c=t?null:dr(e);if(c)return ct(c);a=!1,o=at,u=new hn}else u=t?[]:s;e:for(;++r<i;){var l=e[r],f=t?t(l):l,l=n||0!==l?l:0;if(a&&f==f){for(var p=u.length;p--;)if(u[p]===f)continue e;t&&u.push(f),s.push(l)}else o(u,f,n)||(u!==s&&u.push(f),s.push(l))}return s}function nr(e,t){var n=e;return n instanceof ln&&(n=n.value()),tt(t,function(e,t){return t.func.apply(t.thisArg,et([e],t.args))},n)}function rr(e){return _o(e)?e:[]}function or(e,t){return mo(e)?e:Sr(e,t)?[e]:$r(Mo(e))}function ir(e,t){if(t)return e.slice();var n=e.length,r=jt?jt(n):new e.constructor(n);return e.copy(r),r}function ar(e){var t=new e.constructor(e.byteLength);return new Ot(t).set(new Ot(e)),t}function sr(e,t){var n=t?ar(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ur(e,t){var n=-1,r=e.length;for(t=t||Array(r);++n<r;)t[n]=e[n];return t}function cr(e,t,n,r){var o=!n;n=n||{};for(var i=-1,a=t.length;++i<a;){var s=t[i],u=r?r(n[s],e[s],s,n,e):E;u===E&&(u=e[s]),(o?wn:yn)(n,s,u)}return n}function lr(s){return Zn(function(e,t){var n=-1,r=t.length,o=1<r?t[r-1]:E,i=2<r?t[2]:E,o=3<s.length&&\"function\"==typeof o?(r--,o):E;for(i&&Ir(t[0],t[1],i)&&(o=r<3?E:o,r=1),e=Object(e);++n<r;){var a=t[n];a&&s(e,a,n,o)}return e})}function fr(r){return function(){var e=arguments;switch(e.length){case 0:return new r;case 1:return new r(e[0]);case 2:return new r(e[0],e[1]);case 3:return new r(e[0],e[1],e[2]);case 4:return new r(e[0],e[1],e[2],e[3]);case 5:return new r(e[0],e[1],e[2],e[3],e[4]);case 6:return new r(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new r(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var t=an(r.prototype),n=r.apply(t,e);return ko(n)?n:t}}function pr(l,f,p,d,h,v,g,m,y,_){var b=f&t,w=f&T,x=f&I,k=f&(P|e),O=f&n,j=x?E:fr(l);return function e(){for(var t,n,r,o=arguments.length,i=Array(o),a=o;a--;)i[a]=arguments[a];if(k&&(r=e,n=function(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}(i,t=(mt.call(on,\"placeholder\")?on:r).placeholder)),d&&(i=function(e,t,n,r){for(var o=-1,i=e.length,a=n.length,s=-1,u=t.length,c=Lt(i-a,0),l=Array(u+c),f=!r;++s<u;)l[s]=t[s];for(;++o<a;)(f||o<i)&&(l[n[o]]=e[o]);for(;c--;)l[s++]=e[o++];return l}(i,d,h,k)),v&&(i=function(e,t,n,r){for(var o=-1,i=e.length,a=-1,s=n.length,u=-1,c=t.length,l=Lt(i-s,0),f=Array(l+c),p=!r;++o<l;)f[o]=e[o];for(var d=o;++u<c;)f[d+u]=t[u];for(;++a<s;)(p||o<i)&&(f[d+n[a]]=e[o++]);return f}(i,v,g,k)),o-=n,k&&o<_){var s=function(e,t){for(var n=-1,r=e.length,o=0,i=[];++n<r;){var a=e[n];a!==t&&a!==C||(e[n]=C,i[o++]=n)}return i}(i,t);return function(e,t,n,r,o,i,a,s,u,c){var l=t&P;t|=l?A:R,(t&=~(l?R:A))&S||(t&=~(T|I));var f=[e,t,o,l?i:E,l?a:E,l?E:i,l?E:a,s,u,c],p=n.apply(E,f);return function(e){var t=function(e){for(var t=e.name+\"\",n=Qt[t],r=mt.call(Qt,t)?n.length:0;r--;){var o=n[r],i=o.func;if(null==i||i==e)return o.name}return t}(e),n=on[t];if(\"function\"==typeof n&&t in ln.prototype){if(e===n)return 1;var r=_r(n);return r&&e===r[0]}}(e)&&Fr(p,f),p.placeholder=r,function(e,t,n){var r=t+\"\";return Lr(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(1<n?\"& \":\"\")+t[r],t=t.join(2<n?\", \":\" \"),e.replace(ae,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}(r,function(n,r){return Xe(N,function(e){var t=\"_.\"+e[0];r&e[1]&&!Ze(n,t)&&n.push(t)}),n.sort()}(function(e){var t=e.match(se);return t?t[1].split(ue):[]}(r),n)))}(p,e,t)}(l,f,pr,e.placeholder,p,i,s,m,y,_-o)}var u=w?p:this,c=x?u[l]:l,o=i.length;return m?i=function(e,t){for(var n=e.length,r=Ht(t.length,n),o=ur(e);r--;){var i=t[r];e[r]=Tr(i,n)?o[i]:E}return e}(i,m):O&&1<o&&i.reverse(),b&&y<o&&(i.length=y),this&&this!==Fe&&this instanceof e&&(c=j||fr(c)),c.apply(u,i)}}var dr=Wt&&1/ct(new Wt([,-0]))[1]==o?function(e){return new Wt(e)}:Zo;function hr(e){return Eo(e)?E:e}function vr(e,t,n,r,o,i){var a=n&b,s=e.length,u=t.length;if(s!=u&&!(a&&s<u))return!1;var c=i.get(e);if(c&&i.get(t))return c==t;var l=-1,f=!0,p=n&m?new hn:E;for(i.set(e,t),i.set(t,e);++l<s;){var d,h=e[l],v=t[l];if(r&&(d=a?r(v,h,l,t,e,i):r(h,v,l,e,t,i)),d!==E){if(d)continue;f=!1;break}if(p){if(!function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return 1}(t,function(e,t){return!at(p,t)&&(h===e||o(h,e,n,r,i))&&p.push(t)})){f=!1;break}}else if(h!==v&&!o(h,v,n,r,i)){f=!1;break}}return i.delete(e),i.delete(t),f}function gr(e){return Lr(Nr(e,E,Kr),e+\"\")}function mr(e){return Dn(e,Bo,kr)}function yr(e){return Dn(e,$o,Or)}var _r=Xt?function(e){return Xt.get(e)}:Zo;function br(e,t){var n=(n=on.iteratee||Qo)===Qo?Un:n;return arguments.length?n(e,t):n}function wr(e,t){var n,r,o=e.__data__;return(\"string\"==(r=typeof(n=t))||\"number\"==r||\"symbol\"==r||\"boolean\"==r?\"__proto__\"!==n:null===n)?o[\"string\"==typeof t?\"string\":\"hash\"]:o.map}function xr(e,t){var n,r,o=(r=t,null==(n=e)?E:n[r]);return $n(o)?o:E}var kr=Dt?function(t){return null==t?[]:(t=Object(t),Ge(Dt(t),function(e){return Tt.call(t,e)}))}:ni,Or=Dt?function(e){for(var t=[];e;)et(t,kr(e)),e=Et(e);return t}:ni,jr=Mn;function Er(e){return\"function\"!=typeof e.constructor||Pr(e)?{}:an(Et(e))}function Cr(e){return mo(e)||go(e)||!!(St&&e&&e[St])}function Tr(e,t){var n=typeof e;return!!(t=null==t?i:t)&&(\"number\"==n||\"symbol\"!=n&&ve.test(e))&&-1<e&&e%1==0&&e<t}function Ir(e,t,n){if(ko(n)){var r=typeof t;return(\"number\"==r?yo(n)&&Tr(t,n.length):\"string\"==r&&t in n)&&vo(n[t],e)}}function Sr(e,t){if(!mo(e)){var n=typeof e;return\"number\"==n||\"symbol\"==n||\"boolean\"==n||null==e||Io(e)||(x.test(e)||!g.test(e)||null!=t&&e in Object(t))}}function Pr(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||ht)}function Ar(e){return e==e&&!ko(e)}function Rr(t,n){return function(e){return null!=e&&(e[t]===n&&(n!==E||t in Object(e)))}}function Nr(i,a,s){return a=Lt(a===E?i.length-1:a,0),function(){for(var e=arguments,t=-1,n=Lt(e.length-a,0),r=Array(n);++t<n;)r[t]=e[a+t];t=-1;for(var o=Array(a+1);++t<a;)o[t]=e[t];return o[a]=s(r),Ve(i,this,o)}}function Dr(e,t){return t.length<2?e:Nn(e,function(e,t,n){var r=-1,o=e.length;t<0&&(t=o<-t?0:o+t),(n=o<n?o:n)<0&&(n+=o),o=n<t?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}(t,0,-1))}function Mr(e,t){if((\"constructor\"!==t||\"function\"!=typeof e[t])&&\"__proto__\"!=t)return e[t]}($t&&jr(new $t(new ArrayBuffer(1)))!=X||Ut&&jr(new Ut)!=q||zt&&jr(zt.resolve())!=f||Wt&&jr(new Wt)!=z||Vt&&jr(new Vt)!=v)&&(jr=function(e){var t=Mn(e),n=t==$?e.constructor:E,r=n?zr(n):\"\";if(r)switch(r){case Gt:return X;case Zt:return q;case Jt:return f;case Yt:return z;case en:return v}return t});var Fr=Hr(Jn),Lr=Hr(Yn);function Hr(n){var r=0,o=0;return function(){var e=qt(),t=16-(e-o);if(o=e,0<t){if(800<=++r)return arguments[0]}else r=0;return n.apply(E,arguments)}}var qr,Br,$r=(Br=(qr=po(function(e){var o=[];return 46===e.charCodeAt(0)&&o.push(\"\"),e.replace(oe,function(e,t,n,r){o.push(n?r.replace(ce,\"$1\"):t||e)}),o},function(e){return 500===Br.size&&Br.clear(),e})).cache,qr);function Ur(e){if(\"string\"==typeof e||Io(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-o?\"-0\":t}function zr(e){if(null!=e){try{return gt.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}function Wr(e){if(e instanceof ln)return e.clone();var t=new cn(e.__wrapped__,e.__chain__);return t.__actions__=ur(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function Vr(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:Ro(n);return o<0&&(o=Lt(r+o,0)),nt(e,br(t,3),o)}function Kr(e){return(null==e?0:e.length)?In(e,1):[]}function Xr(e){return e&&e.length?e[0]:E}var Qr=Zn(function(e){var t=Ye(e,rr);return t.length&&t[0]===e[0]?function(e,t,n){for(var r=n?Je:Ze,o=e[0].length,i=e.length,a=i,s=Array(i),u=1/0,c=[];a--;){var l=e[a];a&&t&&(l=Ye(l,it(t))),u=Ht(l.length,u),s[a]=!n&&(t||120<=o&&120<=l.length)?new hn(a&&l):E}l=e[0];var f=-1,p=s[0];e:for(;++f<o&&c.length<u;){var d=l[f],h=t?t(d):d,d=n||0!==d?d:0;if(!(p?at(p,h):r(c,h,n))){for(a=i;--a;){var v=s[a];if(!(v?at(v,h):r(e[a],h,n)))continue e}p&&p.push(h),c.push(d)}}return c}(t):[]});function Gr(e){var t=null==e?0:e.length;return t?e[t-1]:E}function Zr(e){return null==e?e:Bt.call(e)}var Jr=Zn(function(e){return tr(In(e,1,_o,!0))});var Yr=Zn(function(e,t){return _o(e)?function(e,t,n,r){var o=-1,i=Ze,a=!0,s=e.length,u=[],c=t.length;if(!s)return u;n&&(t=Ye(t,it(n))),r?(i=Je,a=!1):t.length>=d&&(i=at,a=!1,t=new hn(t));e:for(;++o<s;){var l=e[o],f=null==n?l:n(l),l=r||0!==l?l:0;if(a&&f==f){for(var p=c;p--;)if(t[p]===f)continue e;u.push(l)}else i(t,f,r)||u.push(l)}return u}(e,t):[]});function eo(e){var t=on(e);return t.__chain__=!0,t}function to(e,t){return t(e)}gr(function(t){function e(e){return function(e,t){for(var n=-1,r=t.length,o=Array(r),i=null==e;++n<r;)o[n]=i?E:Lo(e,t[n]);return o}(e,t)}var n=t.length,r=n?t[0]:0,o=this.__wrapped__;return!(1<n||this.__actions__.length)&&o instanceof ln&&Tr(r)?((o=o.slice(r,+r+(n?1:0))).__actions__.push({func:to,args:[e],thisArg:E}),new cn(o,this.__chain__).thru(function(e){return n&&!e.length&&e.push(E),e})):this.thru(e)});var no,ro=(no=Vr,function(e,t,n){var r,o=Object(e);yo(e)||(r=br(t,3),e=Bo(e),t=function(e){return r(o[e],e,o)});var i=no(e,t,n);return-1<i?o[r?e[i]:i]:E});function oo(e,t){return(mo(e)?Xe:jn)(e,br(t,3))}var io,ao,so=(io=function(e,t,n){mt.call(e,n)?e[n].push(t):wn(e,n,[t])},function(e,t){var n=mo(e)?Ke:bn,r=ao?ao():{};return n(e,io,br(t,2),r)});var uo=Zn(function(e,t){if(null==e)return[];var n=t.length;return 1<n&&Ir(e,t[0],t[1])?t=[]:2<n&&Ir(t[0],t[1],t[2])&&(t=[t[0]]),Qn(e,In(t,1),[])}),co=function(){return Fe.Date.now()};function lo(r,o,e){var i,a,s,u,c,l,f=0,p=!1,d=!1,t=!0;if(\"function\"!=typeof r)throw new TypeError(y);function h(e){var t=i,n=a;return i=a=E,f=e,u=r.apply(n,t)}function v(e){var t=e-l;return l===E||o<=t||t<0||d&&s<=e-f}function g(){var e,t,n=co();if(v(n))return m(n);c=setTimeout(g,(t=o-((e=n)-l),d?Ht(t,s-(e-f)):t))}function m(e){return c=E,t&&i?h(e):(i=a=E,u)}function n(){var e,t=co(),n=v(t);if(i=arguments,a=this,l=t,n){if(c===E)return f=e=l,c=setTimeout(g,o),p?h(e):u;if(d)return clearTimeout(c),c=setTimeout(g,o),h(l)}return c===E&&(c=setTimeout(g,o)),u}return o=No(o)||0,ko(e)&&(p=!!e.leading,s=(d=\"maxWait\"in e)?Lt(No(e.maxWait)||0,o):s,t=\"trailing\"in e?!!e.trailing:t),n.cancel=function(){c!==E&&clearTimeout(c),f=0,i=l=a=c=E},n.flush=function(){return c===E?u:m(co())},n}var fo=Zn(function(e,t,n){return function(e,t,n){if(\"function\"!=typeof e)throw new TypeError(y);return setTimeout(function(){e.apply(E,n)},t)}(e,No(t)||0,n)});function po(o,i){if(\"function\"!=typeof o||null!=i&&\"function\"!=typeof i)throw new TypeError(y);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var r=o.apply(this,e);return a.cache=n.set(t,r)||n,r};return a.cache=new(po.Cache||dn),a}function ho(t){if(\"function\"!=typeof t)throw new TypeError(y);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function vo(e,t){return e===t||e!=e&&t!=t}po.Cache=dn;var go=qn(function(){return arguments}())?qn:function(e){return Oo(e)&&mt.call(e,\"callee\")&&!Tt.call(e,\"callee\")},mo=Array.isArray;function yo(e){return null!=e&&xo(e.length)&&!wo(e)}function _o(e){return Oo(e)&&yo(e)}var bo=Mt||ri;function wo(e){if(!ko(e))return!1;var t=Mn(e);return t==L||t==H||t==c||t==p}function xo(e){return\"number\"==typeof e&&-1<e&&e%1==0&&e<=i}function ko(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function Oo(e){return null!=e&&\"object\"==typeof e}var jo=Ue?it(Ue):function(e){return Oo(e)&&jr(e)==q};function Eo(e){if(!Oo(e)||Mn(e)!=$)return!1;var t=Et(e);if(null===t)return!0;var n=mt.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&gt.call(n)==bt}var Co=ze?it(ze):function(e){return Oo(e)&&jr(e)==z};function To(e){return\"string\"==typeof e||!mo(e)&&Oo(e)&&Mn(e)==W}function Io(e){return\"symbol\"==typeof e||Oo(e)&&Mn(e)==V}var So=We?it(We):function(e){return Oo(e)&&xo(e.length)&&!!Ae[Mn(e)]};function Po(e){if(!e)return[];if(yo(e))return(To(e)?lt:ur)(e);if(Pt&&e[Pt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Pt]());var t=jr(e);return(t==q?st:t==z?ct:Vo)(e)}function Ao(e){return e?(e=No(e))!==o&&e!==-o?e==e?e:0:(e<0?-1:1)*a:0===e?e:0}function Ro(e){var t=Ao(e),n=t%1;return t==t?n?t-n:t:0}function No(e){if(\"number\"==typeof e)return e;if(Io(e))return s;var t;if(ko(e)&&(e=ko(t=\"function\"==typeof e.valueOf?e.valueOf():e)?t+\"\":t),\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(ie,\"\");var n=pe.test(e);return n||he.test(e)?Ne(e.slice(2),n?2:8):fe.test(e)?s:+e}function Do(e){return cr(e,$o(e))}function Mo(e){return null==e?\"\":er(e)}var Fo=lr(function(e,t){cr(t,$o(t),e)});function Lo(e,t,n){var r=null==e?E:Nn(e,t);return r===E?n:r}function Ho(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=or(t,e)).length,i=!1;++r<o;){var a=Ur(t[r]);if(!(i=null!=e&&n(e,a)))break;e=e[a]}return i||++r!=o?i:!!(o=null==e?0:e.length)&&xo(o)&&Tr(a,o)&&(mo(e)||go(e))}(e,t,Ln)}var qo=Zn(Hn);function Bo(e){return(yo(e)?gn:zn)(e)}function $o(e){return yo(e)?gn(e,!0):Wn(e)}var Uo=lr(function(e,t,n){Xn(e,t,n)}),zo=gr(function(t,e){var n={};if(null==t)return n;var r=!1;e=Ye(e,function(e){return e=or(e,t),r=r||1<e.length,e}),cr(t,yr(t),n),r&&(n=xn(n,k|O|j,hr));for(var o,i,a=e.length;a--;)o=n,i=e[a],null==(o=Dr(o,i=or(i,o)))||delete o[Ur(Gr(i))];return n}),Wo=gr(function(e,t){return null==e?{}:Gn(e,t)});function Vo(e){return null==e?[]:Ye(Bo(t=e),function(e){return t[e]});var t}function Ko(e){return function(){return e}}function Xo(e){return e}function Qo(e){return Un(\"function\"==typeof e?e:xn(e,k))}function Go(r,t,e){var n=Bo(t),o=Rn(t,n);null!=e||ko(t)&&(o.length||!n.length)||(e=t,t=r,r=this,o=Rn(t,Bo(t)));var i=!(ko(e)&&\"chain\"in e&&!e.chain),a=wo(r);return Xe(o,function(e){var n=t[e];r[e]=n,a&&(r.prototype[e]=function(){var e=this.__chain__;if(i||e){var t=r(this.__wrapped__);return(t.__actions__=ur(this.__actions__)).push({func:n,args:arguments,thisArg:r}),t.__chain__=e,t}return n.apply(r,et([this.value()],arguments))})}),r}function Zo(){}function Jo(e){return Sr(e)?(n=Ur(e),function(e){return null==e?E:e[n]}):(t=e,function(e){return Nn(e,t)});var t,n}function Yo(e,t,n){return n&&\"number\"!=typeof n&&Ir(e,t,n)&&(t=n=E),e=Ao(e),t===E?(t=e,e=0):t=Ao(t),function(e,t,n,r){for(var o=-1,i=Lt(Nt((t-e)/(n||1)),0),a=Array(i);i--;)a[r?i:++o]=e,e+=n;return a}(e,t,n=n===E?e<t?1:-1:Ao(n),ei)}var ei,ti;function ni(){return[]}function ri(){return!1}on.assignIn=Fo,on.chain=eo,on.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,o=[];++t<n;){var i=e[t];i&&(o[r++]=i)}return o},on.constant=Ko,on.debounce=lo,on.delay=fo,on.filter=function(e,t){return(mo(e)?Ge:Tn)(e,br(t,3))},on.flatten=Kr,on.groupBy=so,on.intersection=Qr,on.iteratee=Qo,on.keys=Bo,on.keysIn=$o,on.map=function(e,t){return(mo(e)?Ye:Kn)(e,br(t,3))},on.memoize=po,on.merge=Uo,on.mixin=Go,on.negate=ho,on.omit=zo,on.pick=Wo,on.property=Jo,on.range=Yo,on.reject=function(e,t){return(mo(e)?Ge:Tn)(e,ho(br(t,3)))},on.reverse=Zr,on.sortBy=uo,on.tap=function(e,t){return t(e),e},on.throttle=function(e,t,n){var r=!0,o=!0;if(\"function\"!=typeof e)throw new TypeError(y);return ko(n)&&(r=\"leading\"in n?!!n.leading:r,o=\"trailing\"in n?!!n.trailing:o),lo(e,t,{leading:r,maxWait:t,trailing:o})},on.thru=to,on.toArray=Po,on.toPlainObject=Do,on.union=Jr,on.uniq=function(e){return e&&e.length?tr(e):[]},on.values=Vo,on.without=Yr,on.extend=Fo,Go(on,on),on.clone=function(e){return xn(e,j)},on.eq=vo,on.every=function(e,t,n){var r=mo(e)?Qe:En;return n&&Ir(e,t,n)&&(t=E),r(e,br(t,3))},on.find=ro,on.findIndex=Vr,on.forEach=oo,on.get=Lo,on.hasIn=Ho,on.head=Xr,on.identity=Xo,on.invoke=qo,on.isArguments=go,on.isArray=mo,on.isArrayLike=yo,on.isArrayLikeObject=_o,on.isBuffer=bo,on.isEmpty=function(e){if(null==e)return!0;if(yo(e)&&(mo(e)||\"string\"==typeof e||\"function\"==typeof e.splice||bo(e)||So(e)||go(e)))return!e.length;var t=jr(e);if(t==q||t==z)return!e.size;if(Pr(e))return!zn(e).length;for(var n in e)if(mt.call(e,n))return!1;return!0},on.isEqual=function(e,t){return Bn(e,t)},on.isFunction=wo,on.isLength=xo,on.isMap=jo,on.isObject=ko,on.isObjectLike=Oo,on.isPlainObject=Eo,on.isSet=Co,on.isString=To,on.isSymbol=Io,on.isTypedArray=So,on.last=Gr,on.max=function(e){return e&&e.length?Cn(e,Xo,Fn):E},on.min=function(e){return e&&e.length?Cn(e,Xo,Vn):E},on.stubArray=ni,on.stubFalse=ri,on.noop=Zo,on.now=co,on.reduce=function(e,t,n){var r=mo(e)?tt:ot,o=arguments.length<3;return r(e,br(t,4),n,o,jn)},on.toFinite=Ao,on.toInteger=Ro,on.toNumber=No,on.toString=Mo,on.each=oo,on.first=Xr,Go(on,(ti={},An(on,function(e,t){mt.call(on.prototype,t)||(ti[t]=e)}),ti),{chain:!1}),on.VERSION=\"4.17.15\",Xe([\"drop\",\"take\"],function(n,r){ln.prototype[n]=function(e){e=e===E?1:Lt(Ro(e),0);var t=this.__filtered__&&!r?new ln(this):this.clone();return t.__filtered__?t.__takeCount__=Ht(e,t.__takeCount__):t.__views__.push({size:Ht(e,u),type:n+(t.__dir__<0?\"Right\":\"\")}),t},ln.prototype[n+\"Right\"]=function(e){return this.reverse()[n](e).reverse()}}),Xe([\"filter\",\"map\",\"takeWhile\"],function(e,t){var n=t+1,r=1==n||3==n;ln.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:br(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Xe([\"head\",\"last\"],function(e,t){var n=\"take\"+(t?\"Right\":\"\");ln.prototype[e]=function(){return this[n](1).value()[0]}}),Xe([\"initial\",\"tail\"],function(e,t){var n=\"drop\"+(t?\"\":\"Right\");ln.prototype[e]=function(){return this.__filtered__?new ln(this):this[n](1)}}),ln.prototype.compact=function(){return this.filter(Xo)},ln.prototype.find=function(e){return this.filter(e).head()},ln.prototype.findLast=function(e){return this.reverse().find(e)},ln.prototype.invokeMap=Zn(function(t,n){return\"function\"==typeof t?new ln(this):this.map(function(e){return Hn(e,t,n)})}),ln.prototype.reject=function(e){return this.filter(ho(br(e)))},ln.prototype.slice=function(e,t){e=Ro(e);var n=this;return n.__filtered__&&(0<e||t<0)?new ln(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==E&&(n=(t=Ro(t))<0?n.dropRight(-t):n.take(t-e)),n)},ln.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ln.prototype.toArray=function(){return this.take(u)},An(ln.prototype,function(f,e){var p=/^(?:filter|find|map|reject)|While$/.test(e),d=/^(?:head|last)$/.test(e),h=on[d?\"take\"+(\"last\"==e?\"Right\":\"\"):e],v=d||/^find/.test(e);h&&(on.prototype[e]=function(){function e(e){var t=h.apply(on,et([e],n));return d&&a?t[0]:t}var t=this.__wrapped__,n=d?[1]:arguments,r=t instanceof ln,o=n[0],i=r||mo(t);i&&p&&\"function\"==typeof o&&1!=o.length&&(r=i=!1);var a=this.__chain__,s=!!this.__actions__.length,u=v&&!a,c=r&&!s;if(v||!i)return u&&c?f.apply(this,n):(l=this.thru(e),u?d?l.value()[0]:l.value():l);t=c?t:new ln(this);var l=f.apply(t,n);return l.__actions__.push({func:to,args:[e],thisArg:E}),new cn(l,a)})}),Xe([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(e){var n=pt[e],r=/^(?:push|sort|unshift)$/.test(e)?\"tap\":\"thru\",o=/^(?:pop|shift)$/.test(e);on.prototype[e]=function(){var t=arguments;if(!o||this.__chain__)return this[r](function(e){return n.apply(mo(e)?e:[],t)});var e=this.value();return n.apply(mo(e)?e:[],t)}}),An(ln.prototype,function(e,t){var n,r=on[t];r&&(n=r.name+\"\",mt.call(Qt,n)||(Qt[n]=[]),Qt[n].push({name:t,func:r}))}),Qt[pr(E,I).name]=[{name:\"wrapper\",func:E}],ln.prototype.clone=function(){var e=new ln(this.__wrapped__);return e.__actions__=ur(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ur(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ur(this.__views__),e},ln.prototype.reverse=function(){var e;return this.__filtered__?((e=new ln(this)).__dir__=-1,e.__filtered__=!0):(e=this.clone()).__dir__*=-1,e},ln.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=mo(e),r=t<0,o=n?e.length:0,i=function(e,t,n){var r=-1,o=n.length;for(;++r<o;){var i=n[r],a=i.size;switch(i.type){case\"drop\":e+=a;break;case\"dropRight\":t-=a;break;case\"take\":t=Ht(t,e+a);break;case\"takeRight\":e=Lt(e,t-a)}}return{start:e,end:t}}(0,o,this.__views__),a=i.start,s=i.end,u=s-a,c=r?s:a-1,l=this.__iteratees__,f=l.length,p=0,d=Ht(u,this.__takeCount__);if(!n||!r&&o==u&&d==u)return nr(e,this.__actions__);var h=[];e:for(;u--&&p<d;){for(var v=-1,g=e[c+=t];++v<f;){var m=l[v],y=m.iteratee,_=m.type,b=y(g);if(2==_)g=b;else if(!b){if(1==_)continue e;break e}}h[p++]=g}return h},on.prototype.chain=function(){return eo(this)},on.prototype.commit=function(){return new cn(this.value(),this.__chain__)},on.prototype.next=function(){this.__values__===E&&(this.__values__=Po(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?E:this.__values__[this.__index__++]}},on.prototype.plant=function(e){for(var t,n=this;n instanceof un;){var r=Wr(n);r.__index__=0,r.__values__=E,t?o.__wrapped__=r:t=r;var o=r,n=n.__wrapped__}return o.__wrapped__=e,t},on.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof ln){var t=e;return this.__actions__.length&&(t=new ln(this)),(t=t.reverse()).__actions__.push({func:to,args:[Zr],thisArg:E}),new cn(t,this.__chain__)}return this.thru(Zr)},on.prototype.toJSON=on.prototype.valueOf=on.prototype.value=function(){return nr(this.__wrapped__,this.__actions__)},on.prototype.first=on.prototype.head,Pt&&(on.prototype[Pt]=function(){return this}),\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd?(Fe._=on,define(function(){return on})):He?((He.exports=on)._=on,Le._=on):Fe._=on}.call(this),function(e,r){if(e){for(var o,i={8:\"backspace\",9:\"tab\",13:\"enter\",16:\"shift\",17:\"ctrl\",18:\"alt\",20:\"capslock\",27:\"esc\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\",45:\"ins\",46:\"del\",91:\"meta\",93:\"meta\",224:\"meta\"},n={106:\"*\",107:\"+\",109:\"-\",110:\".\",111:\"/\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"},s={\"~\":\"`\",\"!\":\"1\",\"@\":\"2\",\"#\":\"3\",$:\"4\",\"%\":\"5\",\"^\":\"6\",\"&\":\"7\",\"*\":\"8\",\"(\":\"9\",\")\":\"0\",_:\"-\",\"+\":\"=\",\":\":\";\",'\"':\"'\",\"<\":\",\",\">\":\".\",\"?\":\"/\",\"|\":\"\\\\\"},u={option:\"alt\",command:\"meta\",return:\"enter\",escape:\"esc\",plus:\"+\",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?\"meta\":\"ctrl\"},t=1;t<20;++t)i[111+t]=\"f\"+t;for(t=0;t<=9;++t)i[t+96]=t.toString();w.prototype.bind=function(e,t,n){return e=e instanceof Array?e:[e],this._bindMultiple.call(this,e,t,n),this},w.prototype.unbind=function(e,t){return this.bind.call(this,e,function(){},t)},w.prototype.trigger=function(e,t){return this._directMap[e+\":\"+t]&&this._directMap[e+\":\"+t]({},e),this},w.prototype.reset=function(){return this._callbacks={},this._directMap={},this},w.prototype.stopCallback=function(e,t){var n;return!(-1<(\" \"+t.className+\" \").indexOf(\" mousetrap \"))&&(!function e(t,n){return null!==t&&t!==r&&(t===n||e(t.parentNode,n))}(t,this.target)&&(\"composedPath\"in e&&\"function\"==typeof e.composedPath&&((n=e.composedPath()[0])!==e.target&&(t=n)),\"INPUT\"==t.tagName||\"SELECT\"==t.tagName||\"TEXTAREA\"==t.tagName||t.isContentEditable))},w.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)},w.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(i[t]=e[t]);o=null},(w.init=function(){var t=w(r);for(var e in t)\"_\"!==e.charAt(0)&&(w[e]=function(e){return function(){return t[e].apply(t,arguments)}}(e))})(),e.Mousetrap=w,\"undefined\"!=typeof module&&module.exports&&(module.exports=w),\"function\"==typeof define&&define.amd&&define(function(){return w})}function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent(\"on\"+t,n)}function y(e){if(\"keypress\"!=e.type)return i[e.which]?i[e.which]:n[e.which]?n[e.which]:String.fromCharCode(e.which).toLowerCase();var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}function _(e){return\"shift\"==e||\"ctrl\"==e||\"alt\"==e||\"meta\"==e}function c(e,t,n){return\"keypress\"==(n=n||(function(){if(!o)for(var e in o={},i)95<e&&e<112||i.hasOwnProperty(e)&&(o[i[e]]=e);return o}()[e]?\"keydown\":\"keypress\"))&&t.length&&(n=\"keydown\"),n}function b(e,t){for(var n,r,o=[],i=\"+\"===(r=e)?[\"+\"]:(r=r.replace(/\\+{2}/g,\"+plus\")).split(\"+\"),a=0;a<i.length;++a)n=i[a],u[n]&&(n=u[n]),t&&\"keypress\"!=t&&s[n]&&(n=s[n],o.push(\"shift\")),_(n)&&o.push(n);return{key:n,modifiers:o,action:t=c(n,o,t)}}function w(e){var h=this;if(e=e||r,!(h instanceof w))return new w(e);h.target=e,h._callbacks={},h._directMap={};var u,v={},c=!1,l=!1,f=!1;function p(e){e=e||{};var t,n=!1;for(t in v)e[t]?n=!0:v[t]=0;n||(f=!1)}function d(e,t,n,r,o,i){var a,s,u,c=[],l=n.type;if(!h._callbacks[e])return[];for(\"keyup\"==l&&_(e)&&(t=[e]),a=0;a<h._callbacks[e].length;++a){var f,p,d=h._callbacks[e][a];!r&&d.seq&&v[d.seq]!=d.level||l==d.action&&((\"keypress\"!=l||n.metaKey||n.altKey||n.ctrlKey)&&(s=t,u=d.modifiers,s.sort().join(\",\")!==u.sort().join(\",\"))||(f=!r&&d.combo==o,p=r&&d.seq==r&&d.level==i,(f||p)&&h._callbacks[e].splice(a,1),c.push(d)))}return c}function g(e,t,n,r){var o,i;h.stopCallback(t,t.target||t.srcElement,n,r)||!1===e(t,n)&&((i=t).preventDefault?i.preventDefault():i.returnValue=!1,(o=t).stopPropagation?o.stopPropagation():o.cancelBubble=!0)}function t(e){\"number\"!=typeof e.which&&(e.which=e.keyCode);var t,n,r=y(e);r&&(\"keyup\"!=e.type||c!==r?h.handleKey(r,(n=[],(t=e).shiftKey&&n.push(\"shift\"),t.altKey&&n.push(\"alt\"),t.ctrlKey&&n.push(\"ctrl\"),t.metaKey&&n.push(\"meta\"),n),e):c=!1)}function s(t,e,n,r){function o(e){return function(){f=e,++v[t],clearTimeout(u),u=setTimeout(p,1e3)}}function i(e){g(n,e,t),\"keyup\"!==r&&(c=y(e)),setTimeout(p,10)}for(var a=v[t]=0;a<e.length;++a){var s=a+1===e.length?i:o(r||b(e[a+1]).action);m(e[a],s,r,t,a)}}function m(e,t,n,r,o){h._directMap[e+\":\"+n]=t;var i,a=(e=e.replace(/\\s+/g,\" \")).split(\" \");1<a.length?s(e,a,t,n):(i=b(e,n),h._callbacks[i.key]=h._callbacks[i.key]||[],d(i.key,i.modifiers,{type:i.action},r,e,o),h._callbacks[i.key][r?\"unshift\":\"push\"]({callback:t,modifiers:i.modifiers,action:i.action,seq:r,level:o,combo:e}))}h._handleKey=function(e,t,n){for(var r=d(e,t,n),o={},i=0,a=!1,s=0;s<r.length;++s)r[s].seq&&(i=Math.max(i,r[s].level));for(s=0;s<r.length;++s)if(r[s].seq){if(r[s].level!=i)continue;a=!0,o[r[s].seq]=1,g(r[s].callback,n,r[s].combo,r[s].seq)}else a||g(r[s].callback,n,r[s].combo);var u=\"keypress\"==n.type&&l;n.type!=f||_(e)||u||p(o),l=a&&\"keydown\"==n.type},h._bindMultiple=function(e,t,n){for(var r=0;r<e.length;++r)m(e[r],t,n)},a(e,\"keypress\",t),a(e,\"keydown\",t),a(e,\"keyup\",t)}}(\"undefined\"!=typeof window?window:null,\"undefined\"!=typeof window?document:null),function(e){var o={},i=e.prototype.stopCallback;e.prototype.stopCallback=function(e,t,n,r){return!!this.paused||!o[n]&&!o[r]&&i.call(this,e,t,n)},e.prototype.bindGlobal=function(e,t,n){if(this.bind(e,t,n),e instanceof Array)for(var r=0;r<e.length;r++)o[e[r]]=!0;else o[e]=!0},e.init()}(Mousetrap),function(e){\"use strict\";var n,t,r,o={},i=\"undefined\"!=typeof window?window:{},a=i.MutationObserver||i.WebKitMutationObserver;\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process)?o.async=function(e,t){process.nextTick(function(){e.call(t)})}:a?(n=[],t=new a(function(){var e=n.slice();n=[],e.forEach(function(e){var t=e[0],n=e[1];t.call(n)})}),r=document.createElement(\"div\"),t.observe(r,{attributes:!0}),window.addEventListener(\"unload\",function(){t.disconnect(),t=null}),o.async=function(e,t){n.push([e,t]),r.setAttribute(\"drainQueue\",\"drainQueue\")}):o.async=function(e,t){setTimeout(function(){e.call(t)},1)};function c(e,t){for(var n in this.type=e,t)t.hasOwnProperty(n)&&(this[n]=t[n])}function s(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n][0]===t)return n;return-1}function l(e){return e._promiseCallbacks||(e._promiseCallbacks={})}function u(){this.on(\"promise:resolved\",function(e){this.trigger(\"success\",{detail:e.detail})},this),this.on(\"promise:failed\",function(e){this.trigger(\"error\",{detail:e.detail})},this)}function f(){}function p(e,t,n,r){var o,i,a,s,u=\"function\"==typeof n;if(u)try{o=n(r.detail),a=!0}catch(e){s=!0,i=e}else o=r.detail,a=!0;o&&\"function\"==typeof o.then?o.then(function(e){t.resolve(e)},function(e){t.reject(e)}):u&&a?t.resolve(o):s?t.reject(i):t[e](o)}var d={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,n){var r,o,i=l(this);for(e=e.split(/\\s+/),n=n||this;o=e.shift();)r=(r=i[o])||(i[o]=[]),-1===s(r,t)&&r.push([t,n])},off:function(e,t){var n,r,o,i=l(this);for(e=e.split(/\\s+/);r=e.shift();)t?(n=i[r],-1!==(o=s(n,t))&&n.splice(o,1)):i[r]=[]},trigger:function(e,t){var n,r,o,i,a;if(n=l(this)[e])for(var s=0,u=n.length;s<u;s++)o=(r=n[s])[0],i=r[1],\"object\"!=typeof t&&(t={detail:t}),a=new c(e,t),o.call(i,a)}};u.prototype={then:function(t,n){var r=new u;return this.isResolved&&o.async(function(){p(\"resolve\",r,t,{detail:this.resolvedValue})},this),this.isRejected&&o.async(function(){p(\"reject\",r,n,{detail:this.rejectedValue})},this),this.on(\"promise:resolved\",function(e){p(\"resolve\",r,t,e)}),this.on(\"promise:failed\",function(e){p(\"reject\",r,n,e)}),r},resolve:function(e){var t,n;t=this,n=e,o.async(function(){t.trigger(\"promise:resolved\",{detail:n}),t.isResolved=!0,t.resolvedValue=n}),this.resolve=f,this.reject=f},reject:function(e){var t,n;t=this,n=e,o.async(function(){t.trigger(\"promise:failed\",{detail:n}),t.isRejected=!0,t.rejectedValue=n}),this.resolve=f,this.reject=f}},d.mixin(u.prototype),e.Promise=u,e.Event=c,e.EventTarget=d,e.all=function(e){var n=[],r=new u,o=e.length;0===o&&r.resolve([]);for(var i=function(e,t){n[e]=t,0==--o&&r.resolve(n)},t=function(e){r.reject(e)},a=0;a<o;a++)e[a].then(function(t){return function(e){i(t,e)}}(a),t);return r},e.configure=function(e,t){o[e]=t}}(window.RSVP={}),function(s){s.fn.showHtml=function(o,i,a){return this.each(function(){var e=s(this),t={width:this.style.width,height:this.style.height},n={width:e.width()+\"px\",height:e.height()+\"px\"};e.html(o);var r={width:e.width()+\"px\",height:e.height()+\"px\"};e.css(n).animate(r,i,function(){e.css(t),s.isFunction(a)&&a()})})}}(jQuery),function(e){\"use strict\";var t=e.Ember,i=t.get,r=t.set,o=t.Mixin.create({buffer:null,hasBufferedChanges:!1,unknownProperty:function(e){var t=this.buffer;return t&&t.hasOwnProperty(e)?t[e]:this._super(e)},setUnknownProperty:function(e,t){this.buffer||(this.buffer={});var n=this.buffer,r=this.get(\"content\"),o=r&&i(r,e);if((n.hasOwnProperty(e)?n[e]:o)!==t)return o===t?(delete n[e],function(e){var t;for(t in e)if(e.hasOwnProperty(t))return;return 1}(n)&&this.set(\"hasBufferedChanges\",!1)):(n[e]=t,this.set(\"hasBufferedChanges\",!0)),this.notifyPropertyChange(e),t},applyBufferedChanges:function(){var e,t=this.buffer,n=this.get(\"content\");for(e in t)t.hasOwnProperty(e)&&r(n,e,t[e]);this.buffer={},this.set(\"hasBufferedChanges\",!1)},discardBufferedChanges:function(){var e,t=this.buffer;this.get(\"content\");for(e in t)t.hasOwnProperty(e)&&(delete t[e],this.notifyPropertyChange(e));this.set(\"hasBufferedChanges\",!1)}});\"undefined\"!=typeof module&&module.exports?module.exports=o:\"function\"==typeof define&&define.amd?define(\"buffered-proxy\",function(e,t,n){return o}):e.BufferedProxy=o}(this),function(c){var s,u={},l=!1,f={ellipsis:\"...\",setTitle:\"never\",live:!1};function p(e,r){var o=(e.data(\"jqae\")||{}).wrapperElement;o||(o=e.wrapInner(\"<div/>\").find(\">div\")).css({margin:0,padding:0,border:0});var t=o.data(\"jqae\"),n=(t=t||{}).originalContent;n?o=t.originalContent.clone(!0).data(\"jqae\",{originalContent:n}).replaceAll(o):o.data(\"jqae\",{originalContent:o.clone(!0)}),e.data(\"jqae\",{wrapperElement:o,containerWidth:e.width(),containerHeight:e.height()});var i=e.height(),a=(parseInt(e.css(\"padding-top\"),10)||0)+(parseInt(e.css(\"border-top-width\"),10)||0)-(o.offset().top-e.offset().top),s=!1,u=o;r.selector&&(u=c(o.find(r.selector).get().reverse())),u.each(function(){var e=c(this),t=e.text(),n=!1;if(o.innerHeight()-e.innerHeight()>i+a)e.remove();else if(h(e),e.contents().length){for(s&&(d(e).get(0).nodeValue+=r.ellipsis,s=!1);o.innerHeight()>i+a;){if(!(n=function(e){var t=d(e);if(t.length){var n=t.get(0).nodeValue,r=n.lastIndexOf(\" \");return-1<r?(n=c.trim(n.substring(0,r)),t.get(0).nodeValue=n):t.get(0).nodeValue=\"\",!0}return!1}(e))){s=!0,e.remove();break}if(h(e),!e.contents().length){s=!0,e.remove();break}d(e).get(0).nodeValue+=r.ellipsis}\"onEllipsis\"==r.setTitle&&n||\"always\"==r.setTitle?e.attr(\"title\",t):\"never\"!=r.setTitle&&e.removeAttr(\"title\")}})}function d(e){if(e.contents().length){var t=(n=e.contents()).eq(n.length-1);return t.filter(o).length?t:d(t)}var n;return e.append(\"\"),(n=e.contents()).eq(n.length-1)}function h(e){if(e.contents().length){var t=e.contents(),n=t.eq(t.length-1);if(n.filter(o).length){var r=n.get(0).nodeValue;return\"\"==(r=c.trim(r))&&(n.remove(),1)}for(;h(n););return!n.contents().length&&(n.remove(),1)}}function o(){return 3===this.nodeType}c.fn.ellipsis=function(e,t){var n,r,o,i,a=c(this);return\"string\"!=typeof e&&(t=e,e=void 0),(n=c.extend({},f,t)).selector=e,a.each(function(){p(c(this),n)}),n.live?(o=a.selector,i=n,u[o]=i,s=s||window.setInterval(function(){!function(){if(!l){for(var n in l=!0,u)c(n).each(function(){var e=c(this),t=e.data(\"jqae\");t.containerWidth==e.width()&&t.containerHeight==e.height()||p(e,u[n])});l=!1}}()},200)):(r=a.selector,u[r]&&(delete u[r],u.length||s&&(window.clearInterval(s),s=void 0))),this}}(jQuery),function(e){var t;\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):(\"undefined\"!=typeof window?t=window:\"undefined\"!=typeof global?t=global:\"undefined\"!=typeof self&&(t=self),t.virtualDom=e())}(function(){return function i(a,s,u){function c(n,e){if(!s[n]){if(!a[n]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(n,!0);if(l)return l(n,!0);var r=new Error(\"Cannot find module '\"+n+\"'\");throw r.code=\"MODULE_NOT_FOUND\",r}var o=s[n]={exports:{}};a[n][0].call(o.exports,function(e){var t=a[n][1][e];return c(t||e)},o,o.exports,i,a,s,u)}return s[n].exports}for(var l=\"function\"==typeof require&&require,e=0;e<u.length;e++)c(u[e]);return c}({1:[function(e,t,n){var r=e(\"./vdom/create-element.js\");t.exports=r},{\"./vdom/create-element.js\":15}],2:[function(e,t,n){var r=e(\"./vtree/diff.js\");t.exports=r},{\"./vtree/diff.js\":35}],3:[function(e,t,n){var r=e(\"./virtual-hyperscript/index.js\");t.exports=r},{\"./virtual-hyperscript/index.js\":22}],4:[function(e,t,n){var r=e(\"./diff.js\"),o=e(\"./patch.js\"),i=e(\"./h.js\"),a=e(\"./create-element.js\"),s=e(\"./vnode/vnode.js\"),u=e(\"./vnode/vtext.js\");t.exports={diff:r,patch:o,h:i,create:a,VNode:s,VText:u}},{\"./create-element.js\":1,\"./diff.js\":2,\"./h.js\":3,\"./patch.js\":13,\"./vnode/vnode.js\":31,\"./vnode/vtext.js\":33}],5:[function(e,t,n){var l,f,p;t.exports=(f=String.prototype.split,p=/()??/.exec(\"\")[1]===l,function(e,t,n){if(\"[object RegExp]\"!==Object.prototype.toString.call(t))return f.call(e,t,n);var r,o,i,a,s=[],u=(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.extended?\"x\":\"\")+(t.sticky?\"y\":\"\"),c=0,t=new RegExp(t.source,u+\"g\");for(e+=\"\",p||(r=new RegExp(\"^\"+t.source+\"$(?!\\\\s)\",u)),n=n===l?-1>>>0:n>>>0;(o=t.exec(e))&&!(c<(i=o.index+o[0].length)&&(s.push(e.slice(c,o.index)),!p&&1<o.length&&o[0].replace(r,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===l&&(o[e]=l)}),1<o.length&&o.index<e.length&&Array.prototype.push.apply(s,o.slice(1)),a=o[0].length,c=i,s.length>=n));)t.lastIndex===o.index&&t.lastIndex++;return c===e.length?!a&&t.test(\"\")||s.push(\"\"):s.push(e.slice(c)),s.length>n?s.slice(0,n):s})},{}],6:[function(e,t,n){},{}],7:[function(e,t,n){\"use strict\";e(\"individual/one-version\")(\"ev-store\",\"7\");var r=\"__EV_STORE_KEY@7\";t.exports=function(e){var t=e[r];t=t||(e[r]={});return t}},{\"individual/one-version\":9}],8:[function(e,t,n){(function(e){\"use strict\";var n=\"undefined\"!=typeof window?window:void 0!==e?e:{};t.exports=function(e,t){if(e in n)return n[e];return n[e]=t}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],9:[function(e,t,n){\"use strict\";var i=e(\"./index.js\");t.exports=function(e,t,n){var r=\"__INDIVIDUAL_ONE_VERSION_\"+e,o=i(r+\"_ENFORCE_SINGLETON\",t);if(o===t)return i(r,n);throw new Error(\"Can only have one copy of \"+e+\".\\nYou already have version \"+o+\" installed.\\nThis means you cannot install version \"+t)}},{\"./index.js\":8}],10:[function(o,i,e){(function(e){var t,n=void 0!==e?e:\"undefined\"!=typeof window?window:{},r=o(\"min-document\");\"undefined\"!=typeof document?i.exports=document:(t=(t=n[\"__GLOBAL_DOCUMENT_CACHE@4\"])||(n[\"__GLOBAL_DOCUMENT_CACHE@4\"]=r),i.exports=t)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"min-document\":6}],11:[function(e,t,n){\"use strict\";t.exports=function(e){return\"object\"==typeof e&&null!==e}},{}],12:[function(e,t,n){var r=Array.isArray,o=Object.prototype.toString;t.exports=r||function(e){return\"[object Array]\"===o.call(e)}},{}],13:[function(e,t,n){var r=e(\"./vdom/patch.js\");t.exports=r},{\"./vdom/patch.js\":18}],14:[function(e,t,n){var l=e(\"is-object\"),s=e(\"../vnode/is-vhook.js\");function i(e,t,n,r){if(r){var o=r[t];if(s(o))o.unhook&&o.unhook(e,t,n);else if(\"attributes\"===t)for(var i in o)e.removeAttribute(i);else if(\"style\"===t)for(var a in o)e.style[a]=\"\";else e[t]=\"string\"==typeof o?\"\":null}}function f(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}t.exports=function(e,t,n){for(var r in t){var o=t[r];void 0===o?i(e,r,o,n):s(o)?(i(e,r,o,n),o.hook&&o.hook(e,r,n?n[r]:void 0)):l(o)?function(e,t,n,r){var o=t?t[n]:void 0;if(\"attributes\"===n){for(var i in r){var a=r[i];void 0===a?e.removeAttribute(i):e.setAttribute(i,a)}return}if(o&&l(o)&&f(o)!==f(r))return e[n]=r;l(e[n])||(e[n]={});var s=\"style\"===n?\"\":void 0;for(var u in r){var c=r[u];e[n][u]=void 0===c?s:c}}(e,n,r,o):e[r]=o}}},{\"../vnode/is-vhook.js\":26,\"is-object\":11}],15:[function(e,t,n){var l=e(\"global/document\"),f=e(\"./apply-properties\"),p=e(\"../vnode/is-vnode.js\"),d=e(\"../vnode/is-vtext.js\"),h=e(\"../vnode/is-widget.js\"),v=e(\"../vnode/handle-thunk.js\");t.exports=function e(t,n){var r=n&&n.document||l;var o=n?n.warn:null;t=v(t).a;{if(h(t))return t.init();if(d(t))return r.createTextNode(t.text);if(!p(t))return o&&o(\"Item is not a valid virtual dom node\",t),null}var i=null===t.namespace?r.createElement(t.tagName):r.createElementNS(t.namespace,t.tagName);var a=t.properties;f(i,a);var s=t.children;for(var u=0;u<s.length;u++){var c=e(s[u],n);c&&i.appendChild(c)}return i}},{\"../vnode/handle-thunk.js\":24,\"../vnode/is-vnode.js\":27,\"../vnode/is-vtext.js\":28,\"../vnode/is-widget.js\":29,\"./apply-properties\":14,\"global/document\":10}],16:[function(e,t,n){var f={};function p(e,t,n){if(0!==e.length)for(var r,o,i=0,a=e.length-1;i<=a;){if(o=e[r=(a+i)/2>>0],i===a)return t<=o&&o<=n;if(o<t)i=1+r;else{if(!(n<o))return 1;a=r-1}}}function o(e,t){return t<e?1:-1}t.exports=function(e,t,n,r){return n&&0!==n.length?(n.sort(o),function e(t,n,r,o,i){o=o||{};if(t){p(r,i,i)&&(o[i]=t);var a=n.children;if(a)for(var s=t.childNodes,u=0;u<n.children.length;u++){i+=1;var c=a[u]||f,l=i+(c.count||0);p(r,i,l)&&e(s[u],c,r,o,i),i=l}}return o}(e,t,n,r,0)):{}}},{}],17:[function(e,t,n){var a=e(\"./apply-properties\"),r=e(\"../vnode/is-widget.js\"),s=e(\"../vnode/vpatch.js\"),u=e(\"./update-widget\");function c(e,t){\"function\"==typeof t.destroy&&r(t)&&t.destroy(e)}t.exports=function(e,t,n){var r=e.type,o=e.vNode,i=e.patch;switch(r){case s.REMOVE:return function(e,t){var n=e.parentNode;n&&n.removeChild(e);return c(e,t),null}(t,o);case s.INSERT:return function(e,t,n){var r=n.render(t,n);e&&e.appendChild(r);return e}(t,i,n);case s.VTEXT:return function(e,t,n){var r;{var o;3===e.nodeType?(e.replaceData(0,e.length,t.text),r=e):(o=e.parentNode,r=n.render(t,n),o&&r!==e&&o.replaceChild(r,e))}return r}(t,i,n);case s.WIDGET:return function(e,t,n,r){var o,i=u(t,n);o=i?n.update(t,e)||e:r.render(n,r);var a=e.parentNode;a&&o!==e&&a.replaceChild(o,e);i||c(e,t);return o}(t,o,i,n);case s.VNODE:return function(e,t,n){var r=e.parentNode,o=n.render(t,n);r&&o!==e&&r.replaceChild(o,e);return o}(t,i,n);case s.ORDER:return function(e,t){for(var n,r,o,i=e.childNodes,a={},s=0;s<t.removes.length;s++)r=t.removes[s],n=i[r.from],r.key&&(a[r.key]=n),e.removeChild(n);for(var u=i.length,c=0;c<t.inserts.length;c++)o=t.inserts[c],n=a[o.key],e.insertBefore(n,o.to>=u++?null:i[o.to])}(t,i),t;case s.PROPS:return a(t,i,o.properties),t;case s.THUNK:return function(e,t){e&&t&&e!==t&&e.parentNode&&e.parentNode.replaceChild(t,e);return t}(t,n.patch(t,i,n));default:return t}}},{\"../vnode/is-widget.js\":29,\"../vnode/vpatch.js\":32,\"./apply-properties\":14,\"./update-widget\":19}],18:[function(e,t,n){var u=e(\"global/document\"),c=e(\"x-is-array\"),o=e(\"./create-element\"),l=e(\"./dom-index\"),f=e(\"./patch-op\");function i(e,t,n){var r=function(e){var t=[];for(var n in e)\"a\"!==n&&t.push(Number(n));return t}(t);if(0===r.length)return e;var o=l(e,t.a,r),i=e.ownerDocument;n.document||i===u||(n.document=i);for(var a=0;a<r.length;a++){var s=r[a];e=function(e,t,n,r){if(!t)return e;var o;if(c(n))for(var i=0;i<n.length;i++)o=f(n[i],t,r),t===e&&(e=o);else o=f(n,t,r),t===e&&(e=o);return e}(e,o[s],t[s],n)}return e}t.exports=function e(t,n,r){r=r||{};r.patch=r.patch&&r.patch!==e?r.patch:i;r.render=r.render||o;return r.patch(t,n,r)}},{\"./create-element\":15,\"./dom-index\":16,\"./patch-op\":17,\"global/document\":10,\"x-is-array\":12}],19:[function(e,t,n){var r=e(\"../vnode/is-widget.js\");t.exports=function(e,t){if(r(e)&&r(t))return\"name\"in e&&\"name\"in t?e.id===t.id:e.init===t.init;return!1}},{\"../vnode/is-widget.js\":29}],20:[function(e,t,n){\"use strict\";var r=e(\"ev-store\");function o(e){if(!(this instanceof o))return new o(e);this.value=e}(t.exports=o).prototype.hook=function(e,t){r(e)[t.substr(3)]=this.value},o.prototype.unhook=function(e,t){r(e)[t.substr(3)]=void 0}},{\"ev-store\":7}],21:[function(e,t,n){\"use strict\";function r(e){if(!(this instanceof r))return new r(e);this.value=e}(t.exports=r).prototype.hook=function(e,t){e[t]!==this.value&&(e[t]=this.value)}},{}],22:[function(e,t,n){\"use strict\";var u=e(\"x-is-array\"),c=e(\"../vnode/vnode.js\"),l=e(\"../vnode/vtext.js\"),r=e(\"../vnode/is-vnode\"),o=e(\"../vnode/is-vtext\"),i=e(\"../vnode/is-widget\"),f=e(\"../vnode/is-vhook\"),a=e(\"../vnode/is-thunk\"),p=e(\"./parse-tag.js\"),d=e(\"./hooks/soft-set-hook.js\"),h=e(\"./hooks/ev-hook.js\");function v(e){return r(e)||o(e)||i(e)||a(e)}function g(e){var t=new Error;return t.type=\"virtual-hyperscript.unexpected.virtual-element\",t.message=\"Unexpected virtual child passed to h().\\nExpected a VNode / Vthunk / VWidget / string but:\\ngot:\\n\"+s(e.foreignObject)+\".\\nThe parent vnode is:\\n\"+s(e.parentVnode),t.foreignObject=e.foreignObject,t.parentVnode=e.parentVnode,t}function s(t){try{return JSON.stringify(t,null,\"    \")}catch(e){return String(t)}}t.exports=function(e,t,n){var r,o,i,a,s=[];!n&&function(e){return\"string\"==typeof e||u(e)||v(e)}(t)&&(n=t,o={});r=p(e,o=o||t||{}),o.hasOwnProperty(\"key\")&&(i=o.key,o.key=void 0);o.hasOwnProperty(\"namespace\")&&(a=o.namespace,o.namespace=void 0);\"INPUT\"!==r||a||!o.hasOwnProperty(\"value\")||void 0===o.value||f(o.value)||(o.value=d(o.value));(function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];if(f(n))continue;\"ev-\"===t.substr(0,3)&&(e[t]=h(n))}})(o),null!=n&&function e(t,n,r,o){if(\"string\"==typeof t)n.push(new l(t));else if(\"number\"==typeof t)n.push(new l(String(t)));else if(v(t))n.push(t);else{if(!u(t)){if(null==t)return;throw g({foreignObject:t,parentVnode:{tagName:r,properties:o}})}for(var i=0;i<t.length;i++)e(t[i],n,r,o)}}(n,s,r,o);return new c(r,o,s,i,a)}},{\"../vnode/is-thunk\":25,\"../vnode/is-vhook\":26,\"../vnode/is-vnode\":27,\"../vnode/is-vtext\":28,\"../vnode/is-widget\":29,\"../vnode/vnode.js\":31,\"../vnode/vtext.js\":33,\"./hooks/ev-hook.js\":20,\"./hooks/soft-set-hook.js\":21,\"./parse-tag.js\":23,\"x-is-array\":12}],23:[function(e,t,n){\"use strict\";var c=e(\"browser-split\"),l=/([\\.#]?[a-zA-Z0-9\\u007F-\\uFFFF_:-]+)/,f=/^\\.|#/;t.exports=function(e,t){if(!e)return\"DIV\";var n,r,o,i,a=!t.hasOwnProperty(\"id\"),s=c(e,l),u=null;f.test(s[1])&&(u=\"DIV\");for(i=0;i<s.length;i++)(r=s[i])&&(o=r.charAt(0),u?\".\"===o?(n=n||[]).push(r.substring(1,r.length)):\"#\"===o&&a&&(t.id=r.substring(1,r.length)):u=r);n&&(t.className&&n.push(t.className),t.className=n.join(\" \"));return t.namespace?u:u.toUpperCase()}},{\"browser-split\":5}],24:[function(e,t,n){var r=e(\"./is-vnode\"),o=e(\"./is-vtext\"),i=e(\"./is-widget\"),a=e(\"./is-thunk\");function s(e,t){var n=(n=e.vnode)||(e.vnode=e.render(t));if(!(r(n)||o(n)||i(n)))throw new Error(\"thunk did not return a valid node\");return n}t.exports=function(e,t){var n=e,r=t;a(t)&&(r=s(t,e));a(e)&&(n=s(e,null));return{a:n,b:r}}},{\"./is-thunk\":25,\"./is-vnode\":27,\"./is-vtext\":28,\"./is-widget\":29}],25:[function(e,t,n){t.exports=function(e){return e&&\"Thunk\"===e.type}},{}],26:[function(e,t,n){t.exports=function(e){return e&&(\"function\"==typeof e.hook&&!e.hasOwnProperty(\"hook\")||\"function\"==typeof e.unhook&&!e.hasOwnProperty(\"unhook\"))}},{}],27:[function(e,t,n){var r=e(\"./version\");t.exports=function(e){return e&&\"VirtualNode\"===e.type&&e.version===r}},{\"./version\":30}],28:[function(e,t,n){var r=e(\"./version\");t.exports=function(e){return e&&\"VirtualText\"===e.type&&e.version===r}},{\"./version\":30}],29:[function(e,t,n){t.exports=function(e){return e&&\"Widget\"===e.type}},{}],30:[function(e,t,n){t.exports=\"2\"},{}],31:[function(e,t,n){var r=e(\"./version\"),v=e(\"./is-vnode\"),g=e(\"./is-widget\"),m=e(\"./is-thunk\"),y=e(\"./is-vhook\");t.exports=o;var _={},b=[];function o(e,t,n,r,o){this.tagName=e,this.properties=t||_,this.children=n||b,this.key=null!=r?String(r):void 0,this.namespace=\"string\"==typeof o?o:null;var i,a,s=n&&n.length||0,u=0,c=!1,l=!1,f=!1;for(var p in t){t.hasOwnProperty(p)&&(a=t[p],y(a)&&a.unhook&&((i=i||{})[p]=a))}for(var d=0;d<s;d++){var h=n[d];v(h)?(u+=h.count||0,!c&&h.hasWidgets&&(c=!0),!l&&h.hasThunks&&(l=!0),f||!h.hooks&&!h.descendantHooks||(f=!0)):!c&&g(h)?\"function\"==typeof h.destroy&&(c=!0):!l&&m(h)&&(l=!0)}this.count=s+u,this.hasWidgets=c,this.hasThunks=l,this.hooks=i,this.descendantHooks=f}o.prototype.version=r,o.prototype.type=\"VirtualNode\"},{\"./is-thunk\":25,\"./is-vhook\":26,\"./is-vnode\":27,\"./is-widget\":29,\"./version\":30}],32:[function(e,t,n){var r=e(\"./version\");function o(e,t,n){this.type=Number(e),this.vNode=t,this.patch=n}o.NONE=0,o.VTEXT=1,o.VNODE=2,o.WIDGET=3,o.PROPS=4,o.ORDER=5,o.INSERT=6,o.REMOVE=7,o.THUNK=8,(t.exports=o).prototype.version=r,o.prototype.type=\"VirtualPatch\"},{\"./version\":30}],33:[function(e,t,n){var r=e(\"./version\");function o(e){this.text=String(e)}(t.exports=o).prototype.version=r,o.prototype.type=\"VirtualText\"},{\"./version\":30}],34:[function(e,t,n){var c=e(\"is-object\"),l=e(\"../vnode/is-vhook\");function f(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}t.exports=function e(t,n){var r;for(var o in t){o in n||((r=r||{})[o]=void 0);var i,a=t[o],s=n[o];a!==s&&(!c(a)||!c(s)||f(s)!==f(a)||l(s)?(r=r||{})[o]=s:(i=e(a,s))&&((r=r||{})[o]=i))}for(var u in n)u in t||((r=r||{})[u]=n[u]);return r}},{\"../vnode/is-vhook\":26,\"is-object\":11}],35:[function(e,t,n){var r=e(\"x-is-array\"),h=e(\"../vnode/vpatch\"),v=e(\"../vnode/is-vnode\"),s=e(\"../vnode/is-vtext\"),u=e(\"../vnode/is-widget\"),c=e(\"../vnode/is-thunk\"),a=e(\"../vnode/handle-thunk\"),l=e(\"./diff-props\");function f(e,t){var n={a:e};return g(e,t,n,0),n}function g(e,t,n,r){var o,i,a;e!==t&&(o=n[r],i=!1,c(e)||c(t)?d(e,t,n,r):null==t?(u(e)||(p(e,n,r),o=n[r]),o=y(o,new h(h.REMOVE,e,t))):v(t)?v(e)&&e.tagName===t.tagName&&e.namespace===t.namespace&&e.key===t.key?((a=l(e.properties,t.properties))&&(o=y(o,new h(h.PROPS,e,a))),o=function(e,t,n,r,o){for(var i=e.children,a=function(e,t){var n=j(t),r=n.keys,o=n.free;if(o.length===t.length)return{children:t,moves:null};var i=j(e),a=i.keys;if(i.free.length===e.length)return{children:t,moves:null};for(var s,u=[],c=0,l=o.length,f=0,p=0;p<e.length;p++){var d=e[p];d.key?r.hasOwnProperty(d.key)?(s=r[d.key],u.push(t[s])):(s=p-f++,u.push(null)):c<l?(s=o[c++],u.push(t[s])):(s=p-f++,u.push(null))}for(var h=c>=o.length?t.length:o[c],v=0;v<t.length;v++){var g=t[v];g.key?a.hasOwnProperty(g.key)||u.push(g):h<=v&&u.push(g)}for(var m,y=u.slice(),_=0,b=[],w=[],x=0;x<t.length;){var k=t[x];for(m=y[_];null===m&&y.length;)b.push(O(y,_,null)),m=y[_];m&&m.key===k.key?(_++,x++):k.key?(m&&m.key&&r[m.key]!==x+1?(b.push(O(y,_,m.key)),(m=y[_])&&m.key===k.key?_++:w.push({key:k.key,to:x})):w.push({key:k.key,to:x}),x++):m&&m.key&&b.push(O(y,_,m.key))}for(;_<y.length;)m=y[_],b.push(O(y,_,m&&m.key));return b.length!==f||w.length?{children:u,moves:{removes:b,inserts:w}}:{children:u,moves:null}}(i,t.children),s=a.children,u=i.length,c=s.length,l=c<u?u:c,f=0;f<l;f++){var p=i[f],d=s[f];o+=1,p?g(p,d,n,o):d&&(r=y(r,new h(h.INSERT,null,d))),v(p)&&p.count&&(o+=p.count)}a.moves&&(r=y(r,new h(h.ORDER,e,a.moves)));return r}(e,t,n,o,r)):(o=y(o,new h(h.VNODE,e,t)),i=!0):s(t)?s(e)?e.text!==t.text&&(o=y(o,new h(h.VTEXT,e,t))):(o=y(o,new h(h.VTEXT,e,t)),i=!0):u(t)&&(u(e)||(i=!0),o=y(o,new h(h.WIDGET,e,t))),o&&(n[r]=o),i&&p(e,n,r))}function p(e,t,n){!function e(t,n,r){if(v(t)){if(t.hooks&&(n[r]=y(n[r],new h(h.PROPS,t,m(t.hooks)))),t.descendantHooks||t.hasThunks)for(var o=t.children,i=o.length,a=0;a<i;a++){var s=o[a];e(s,n,r+=1),v(s)&&s.count&&(r+=s.count)}}else c(t)&&d(t,null,n,r)}(e,t,n),function e(t,n,r){if(u(t))\"function\"==typeof t.destroy&&(n[r]=y(n[r],new h(h.REMOVE,t,null)));else if(v(t)&&(t.hasWidgets||t.hasThunks))for(var o=t.children,i=o.length,a=0;a<i;a++){var s=o[a];e(s,n,r+=1),v(s)&&s.count&&(r+=s.count)}else c(t)&&d(t,null,n,r)}(e,t,n)}function d(e,t,n,r){var o=a(e,t),i=f(o.a,o.b);!function(e){for(var t in e)if(\"a\"!==t)return!0;return!1}(i)||(n[r]=new h(h.THUNK,null,i))}function m(e){var t={};for(var n in e)t[n]=void 0;return t}function O(e,t,n){return e.splice(t,1),{from:t,key:n}}function j(e){for(var t={},n=[],r=e.length,o=0;o<r;o++){var i=e[o];i.key?t[i.key]=o:n.push(o)}return{keys:t,free:n}}function y(e,t){return e?(r(e)?e.push(t):e=[e,t],e):t}t.exports=f},{\"../vnode/handle-thunk\":24,\"../vnode/is-thunk\":25,\"../vnode/is-vnode\":27,\"../vnode/is-vtext\":28,\"../vnode/is-widget\":29,\"../vnode/vpatch\":32,\"./diff-props\":34,\"x-is-array\":12}]},{},[4])(4)}),define(\"virtual-dom\",[],function(){return virtualDom}),jQuery.extend({highlight:function(e,t,n,r){if(3===e.nodeType){var o=e.data.match(t);if(o){var i=document.createElement(n||\"span\");i.className=r||\"highlight\";var a=e.splitText(o.index);a.splitText(o[0].length);var s=a.cloneNode(!0);return i.appendChild(s),a.parentNode.replaceChild(i,a),1}}else if(1===e.nodeType&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&(e.tagName!==n.toUpperCase()||e.className!==r))for(var u=0;u<e.childNodes.length;u++)u+=jQuery.highlight(e.childNodes[u],t,n,r);return 0}}),jQuery.fn.unhighlight=function(e){var t={className:\"highlight-strong\",element:\"span\"};return jQuery.extend(t,e),this.find(t.element+\".\"+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this),e.normalize()}).end()},jQuery.fn.highlight=function(e,t){var n={className:\"highlight-strong\",element:\"span\",caseSensitive:!1,wordsOnly:!1};if(jQuery.extend(n,t),e.constructor===String&&(e=[e]),e=jQuery.grep(e,function(e){return\"\"!==e}),0===(e=jQuery.map(e,function(e){return e.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\")})).length)return this;var r=n.caseSensitive?\"\":\"i\",o=\"(\"+e.join(\"|\")+\")\";n.wordsOnly&&(o=\"\\\\b\"+o+\"\\\\b\");var i=new RegExp(o,r);return this.each(function(){jQuery.highlight(this,i,n.element,n.className)})},function(v,g){\"use strict\";var t;function c(e){this.time=e.time,this.target=e.target,this.rootBounds=e.rootBounds,this.boundingClientRect=e.boundingClientRect,this.intersectionRect=e.intersectionRect||i(),this.isIntersecting=!!e.intersectionRect;var t=this.boundingClientRect,n=t.width*t.height,r=this.intersectionRect,o=r.width*r.height;this.intersectionRatio=n?Number((o/n).toFixed(4)):this.isIntersecting?1:0}function e(e,t){var n,r,o,i=t||{};if(\"function\"!=typeof e)throw new Error(\"callback must be a function\");if(i.root&&1!=i.root.nodeType)throw new Error(\"root must be an Element\");this._checkForIntersections=(n=this._checkForIntersections.bind(this),r=this.THROTTLE_TIMEOUT,o=null,function(){o=o||setTimeout(function(){n(),o=null},r)}),this._callback=e,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(i.rootMargin),this.thresholds=this._initThresholds(i.threshold),this.root=i.root||null,this.rootMargin=this._rootMarginValues.map(function(e){return e.value+e.unit}).join(\" \")}function n(e,t,n,r){\"function\"==typeof e.addEventListener?e.addEventListener(t,n,r||!1):\"function\"==typeof e.attachEvent&&e.attachEvent(\"on\"+t,n)}function r(e,t,n,r){\"function\"==typeof e.removeEventListener?e.removeEventListener(t,n,r||!1):\"function\"==typeof e.detatchEvent&&e.detatchEvent(\"on\"+t,n)}function m(e){var t;try{t=e.getBoundingClientRect()}catch(e){}return t?(t.width&&t.height||(t={top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.right-t.left,height:t.bottom-t.top}),t):i()}function i(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function o(e,t){for(var n=t;n;){if(n==e)return!0;n=y(n)}return!1}function y(e){var t=e.parentNode;return t&&11==t.nodeType&&t.host?t.host:t}\"IntersectionObserver\"in v&&\"IntersectionObserverEntry\"in v&&\"intersectionRatio\"in v.IntersectionObserverEntry.prototype?\"isIntersecting\"in v.IntersectionObserverEntry.prototype||Object.defineProperty(v.IntersectionObserverEntry.prototype,\"isIntersecting\",{get:function(){return 0<this.intersectionRatio}}):(t=[],e.prototype.THROTTLE_TIMEOUT=100,e.prototype.POLL_INTERVAL=null,e.prototype.USE_MUTATION_OBSERVER=!0,e.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error(\"target must be an Element\");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},e.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},e.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},e.prototype.takeRecords=function(){var e=this._queuedEntries.slice();return this._queuedEntries=[],e},e.prototype._initThresholds=function(e){var t=e||[0];return Array.isArray(t)||(t=[t]),t.sort().filter(function(e,t,n){if(\"number\"!=typeof e||isNaN(e)||e<0||1<e)throw new Error(\"threshold must be a number between 0 and 1 inclusively\");return e!==n[t-1]})},e.prototype._parseRootMargin=function(e){var t=(e||\"0px\").split(/\\s+/).map(function(e){var t=/^(-?\\d*\\.?\\d+)(px|%)$/.exec(e);if(!t)throw new Error(\"rootMargin must be specified in pixels or percent\");return{value:parseFloat(t[1]),unit:t[2]}});return t[1]=t[1]||t[0],t[2]=t[2]||t[0],t[3]=t[3]||t[1],t},e.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(n(v,\"resize\",this._checkForIntersections,!0),n(g,\"scroll\",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&\"MutationObserver\"in v&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(g,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},e.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,r(v,\"resize\",this._checkForIntersections,!0),r(g,\"scroll\",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},e.prototype._checkForIntersections=function(){var s=this._rootIsInDom(),u=s?this._getRootRect():i();this._observationTargets.forEach(function(e){var t=e.element,n=m(t),r=this._rootContainsTarget(t),o=e.entry,i=s&&r&&this._computeTargetAndRootIntersection(t,u),a=e.entry=new c({time:v.performance&&performance.now&&performance.now(),target:t,boundingClientRect:n,rootBounds:u,intersectionRect:i});o?s&&r?this._hasCrossedThreshold(o,a)&&this._queuedEntries.push(a):o&&o.isIntersecting&&this._queuedEntries.push(a):this._queuedEntries.push(a)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},e.prototype._computeTargetAndRootIntersection=function(e,t){if(\"none\"!=v.getComputedStyle(e).display){for(var n,r,o,i,a,s,u,c,l=m(e),f=y(e),p=!1;!p;){var d=null,h=1==f.nodeType?v.getComputedStyle(f):{};if(\"none\"==h.display)return;if(f==this.root||f==g?(p=!0,d=t):f!=g.body&&f!=g.documentElement&&\"visible\"!=h.overflow&&(d=m(f)),d&&(n=d,r=l,0,o=Math.max(n.top,r.top),i=Math.min(n.bottom,r.bottom),a=Math.max(n.left,r.left),s=Math.min(n.right,r.right),c=i-o,!(l=0<=(u=s-a)&&0<=c&&{top:o,bottom:i,left:a,right:s,width:u,height:c})))break;f=y(f)}return l}},e.prototype._getRootRect=function(){var e,t,n;return n=this.root?m(this.root):(e=g.documentElement,t=g.body,{top:0,left:0,right:e.clientWidth||t.clientWidth,width:e.clientWidth||t.clientWidth,bottom:e.clientHeight||t.clientHeight,height:e.clientHeight||t.clientHeight}),this._expandRectByRootMargin(n)},e.prototype._expandRectByRootMargin=function(n){var e=this._rootMarginValues.map(function(e,t){return\"px\"==e.unit?e.value:e.value*(t%2?n.width:n.height)/100}),t={top:n.top-e[0],right:n.right+e[1],bottom:n.bottom+e[2],left:n.left-e[3]};return t.width=t.right-t.left,t.height=t.bottom-t.top,t},e.prototype._hasCrossedThreshold=function(e,t){var n=e&&e.isIntersecting?e.intersectionRatio||0:-1,r=t.isIntersecting?t.intersectionRatio||0:-1;if(n!==r)for(var o=0;o<this.thresholds.length;o++){var i=this.thresholds[o];if(i==n||i==r||i<n!=i<r)return!0}},e.prototype._rootIsInDom=function(){return!this.root||o(g,this.root)},e.prototype._rootContainsTarget=function(e){return o(this.root||g,e)},e.prototype._registerInstance=function(){t.indexOf(this)<0&&t.push(this)},e.prototype._unregisterInstance=function(){var e=t.indexOf(this);-1!=e&&t.splice(e,1)},v.IntersectionObserver=e,v.IntersectionObserverEntry=c)}(window,document);\n//# sourceMappingURL=/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.13000000035390258,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.001,
          "wait": 1662.014000008978,
          "receive": 905.1779999863356,
          "_blocked_queueing": 0.13000000035390258
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 33
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2541.6740000073332,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000312"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:18 GMT"
            },
            {
              "name": "Content-Length",
              "value": "42976"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 134131,
            "mimeType": "application/javascript",
            "text": "ZGVmaW5lKCJwcmV0dHktdGV4dC9wcmV0dHktdGV4dCIsWyJleHBvcnRzIiwicHJldHR5LXRleHQvZW5naW5lcy9kaXNjb3Vyc2UtbWFya2Rvd24taXQiXSxmdW5jdGlvbihlLHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUsYSl7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciB0PWFbbl07dC5lbnVtZXJhYmxlPXQuZW51bWVyYWJsZXx8ITEsdC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHQmJih0LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LmtleSx0KX19ZnVuY3Rpb24gYShlKXt2YXIgYT1lLnNpdGVTZXR0aW5ncyxuPWUuZ2V0VVJMLHQ9ZS5sb29rdXBBdmF0YXIsbz1lLmxvb2t1cFByaW1hcnlVc2VyR3JvdXAsaT1lLmdldFRvcGljSW5mbyxyPWUudG9waWNJZCxzPWUuY2F0ZWdvcnlIYXNodGFnTG9va3VwLGw9ZS51c2VySWQsYz1lLmdldEN1cnJlbnRVc2VyLG09ZS5jdXJyZW50VXNlcix1PWUubG9va3VwQXZhdGFyQnlQb3N0TnVtYmVyLGc9ZS5sb29rdXBQcmltYXJ5VXNlckdyb3VwQnlQb3N0TnVtYmVyLGQ9ZS5mb3JtYXRVc2VybmFtZSxoPWUuZW1vamlVbmljb2RlUmVwbGFjZXIscD1lLmxvb2t1cFVwbG9hZFVybHMsdz1lLnByZXZpZXdpbmcsZj1lLmxpbmtpZnksYj1lLmNlbnNvcmVkUmVnZXhwLGs9ZS5kaXNhYmxlRW1vamlzLHk9eyJib2xkLWl0YWxpY3MiOiEwLCJhdXRvLWxpbmsiOiEwLG1lbnRpb25zOiEwLGJiY29kZTohMCxxdW90ZTohMCxodG1sOiEwLCJjYXRlZ29yeS1oYXNodGFnIjohMCxvbmVib3g6ITAsbGlua2lmeTohMSE9PWYsbmV3bGluZTohYS50cmFkaXRpb25hbF9tYXJrZG93bl9saW5lYnJlYWtzfTtlLmZlYXR1cmVzJiYoeT1fLm1lcmdlKHksZS5mZWF0dXJlcykpO3ZhciB2PXtzYW5pdGl6ZTohMCxnZXRVUkw6bixmZWF0dXJlczp5LGxvb2t1cEF2YXRhcjp0LGxvb2t1cFByaW1hcnlVc2VyR3JvdXA6byxnZXRUb3BpY0luZm86aSx0b3BpY0lkOnIsY2F0ZWdvcnlIYXNodGFnTG9va3VwOnMsdXNlcklkOmwsZ2V0Q3VycmVudFVzZXI6YyxjdXJyZW50VXNlcjptLGxvb2t1cEF2YXRhckJ5UG9zdE51bWJlcjp1LGxvb2t1cFByaW1hcnlVc2VyR3JvdXBCeVBvc3ROdW1iZXI6Zyxmb3JtYXRVc2VybmFtZTpkLGVtb2ppVW5pY29kZVJlcGxhY2VyOmgsbG9va3VwVXBsb2FkVXJsczpwLGNlbnNvcmVkUmVnZXhwOmIsYWxsb3dlZEhyZWZTY2hlbWVzOmEuYWxsb3dlZF9ocmVmX3NjaGVtZXM/YS5hbGxvd2VkX2hyZWZfc2NoZW1lcy5zcGxpdCgifCIpOm51bGwsYWxsb3dlZElmcmFtZXM6YS5hbGxvd2VkX2lmcmFtZXM/YS5hbGxvd2VkX2lmcmFtZXMuc3BsaXQoInwiKTpbXSxtYXJrZG93bkl0OiEwLGluamVjdExpbmVOdW1iZXJzVG9QcmV2aWV3OmEuZW5hYmxlX2FkdmFuY2VkX2VkaXRvcl9wcmV2aWV3X3N5bmMscHJldmlld2luZzp3LGRpc2FibGVFbW9qaXM6a307cmV0dXJuKDAseC5zZXR1cCkodixhLGUpLHZ9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsZS5yZWdpc3Rlck9wdGlvbj1mdW5jdGlvbigpe30sZS5idWlsZE9wdGlvbnM9YTt2YXIgbj0oZnVuY3Rpb24oZSxhLG4pe3JldHVybiBhJiZ0KGUucHJvdG90eXBlLGEpLG4mJnQoZSxuKSxlfShvLFt7a2V5OiJkaXNhYmxlU2FuaXRpemVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMub3B0cy5zYW5pdGl6ZXI9dGhpcy5vcHRzLmRpc2NvdXJzZS5zYW5pdGl6ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fX0se2tleToiY29vayIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjAhPT1lLmxlbmd0aCYmKDAseC5jb29rKShlLHRoaXMub3B0cyl8fCIifX0se2tleToic2FuaXRpemUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdHMuc2FuaXRpemVyKGUpLnRyaW0oKX19XSksbyk7ZnVuY3Rpb24gbyhlKXshZnVuY3Rpb24oZSxhKXtpZighKGUgaW5zdGFuY2VvZiBhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSxlPWV8fGEoe3NpdGVTZXR0aW5nczp7fX0pLHRoaXMub3B0cz1lfWUuZGVmYXVsdD1ufSksZGVmaW5lKCJwcmV0dHktdGV4dC9ndWlkIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3ZhciBuPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2Uubm93JiYobis9cGVyZm9ybWFuY2Uubm93KCkpLCJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxmdW5jdGlvbihlKXt2YXIgYT0obisxNipNYXRoLnJhbmRvbSgpKSUxNnwwO3JldHVybiBuPU1hdGguZmxvb3Iobi8xNiksKCJ4Ij09PWU/YTozJmF8OCkudG9TdHJpbmcoMTYpfSl9fSksZGVmaW5lKCJwcmV0dHktdGV4dC9jZW5zb3JlZC13b3JkcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSxpKXtpZihlKXt2YXIgYT1uZXcgUmVnRXhwKGUsImlnIik7cmV0dXJuIGk9aXx8IiYjOTYzMjsiLGZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZShhLGZ1bmN0aW9uKGUpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTxhP2EtMTowKSx0PTE7dDxhO3QrKyluW3QtMV09YXJndW1lbnRzW3RdO3ZhciBvPW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9KTtyZXR1cm4gZS5yZXBsYWNlKG8sbmV3IEFycmF5KG8ubGVuZ3RoKzEpLmpvaW4oaSkpfSl9fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY2Vuc29yRm49dCxlLmNlbnNvcj1mdW5jdGlvbihlLGEsbil7cmV0dXJuIHQoYSxuKShlKX19KSxkZWZpbmUoInByZXR0eS10ZXh0L2Vtb2ppL2RhdGEiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5lbW9qaXM9WyJncmlubmluZyIsImdyaW1hY2luZyIsImdyaW4iLCJqb3kiLCJyb2ZsIiwic21pbGV5Iiwic21pbGUiLCJzd2VhdF9zbWlsZSIsImxhdWdoaW5nIiwiaW5ub2NlbnQiLCJ3aW5rIiwiYmx1c2giLCJzbGlnaHRseV9zbWlsaW5nX2ZhY2UiLCJ1cHNpZGVfZG93bl9mYWNlIiwicmVsYXhlZCIsInl1bSIsInJlbGlldmVkIiwiaGVhcnRfZXllcyIsImtpc3NpbmdfaGVhcnQiLCJraXNzaW5nIiwia2lzc2luZ19zbWlsaW5nX2V5ZXMiLCJraXNzaW5nX2Nsb3NlZF9leWVzIiwic3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZSIsInN0dWNrX291dF90b25ndWVfY2xvc2VkX2V5ZXMiLCJzdHVja19vdXRfdG9uZ3VlIiwibW9uZXlfbW91dGhfZmFjZSIsIm5lcmRfZmFjZSIsInN1bmdsYXNzZXMiLCJjbG93bl9mYWNlIiwiY293Ym95X2hhdF9mYWNlIiwiaHVncyIsInNtaXJrIiwibm9fbW91dGgiLCJuZXV0cmFsX2ZhY2UiLCJleHByZXNzaW9ubGVzcyIsInVuYW11c2VkIiwicm9sbF9leWVzIiwidGhpbmtpbmciLCJseWluZ19mYWNlIiwiZmx1c2hlZCIsImRpc2FwcG9pbnRlZCIsIndvcnJpZWQiLCJhbmdyeSIsInJhZ2UiLCJwZW5zaXZlIiwiY29uZnVzZWQiLCJzbGlnaHRseV9mcm93bmluZ19mYWNlIiwiZnJvd25pbmdfZmFjZSIsInBlcnNldmVyZSIsImNvbmZvdW5kZWQiLCJ0aXJlZF9mYWNlIiwid2VhcnkiLCJ0cml1bXBoIiwib3Blbl9tb3V0aCIsInNjcmVhbSIsImZlYXJmdWwiLCJjb2xkX3N3ZWF0IiwiaHVzaGVkIiwiZnJvd25pbmciLCJhbmd1aXNoZWQiLCJjcnkiLCJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiLCJkcm9vbGluZ19mYWNlIiwic2xlZXB5Iiwic3dlYXQiLCJzb2IiLCJkaXp6eV9mYWNlIiwiYXN0b25pc2hlZCIsInppcHBlcl9tb3V0aF9mYWNlIiwibmF1c2VhdGVkX2ZhY2UiLCJzbmVlemluZ19mYWNlIiwibWFzayIsImZhY2Vfd2l0aF90aGVybW9tZXRlciIsImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiLCJzbGVlcGluZyIsInp6eiIsInBvb3AiLCJzbWlsaW5nX2ltcCIsImltcCIsImphcGFuZXNlX29ncmUiLCJqYXBhbmVzZV9nb2JsaW4iLCJza3VsbCIsImdob3N0IiwiYWxpZW4iLCJyb2JvdCIsInNtaWxleV9jYXQiLCJzbWlsZV9jYXQiLCJqb3lfY2F0IiwiaGVhcnRfZXllc19jYXQiLCJzbWlya19jYXQiLCJraXNzaW5nX2NhdCIsInNjcmVhbV9jYXQiLCJjcnlpbmdfY2F0X2ZhY2UiLCJwb3V0aW5nX2NhdCIsInJhaXNlZF9oYW5kcyIsImNsYXAiLCJ3YXZlIiwiY2FsbF9tZV9oYW5kIiwiKzEiLCItMSIsImZhY2VwdW5jaCIsImZpc3QiLCJmaXN0X2xlZnQiLCJmaXN0X3JpZ2h0IiwidiIsIm9rX2hhbmQiLCJyYWlzZWRfaGFuZCIsInJhaXNlZF9iYWNrX29mX2hhbmQiLCJvcGVuX2hhbmRzIiwibXVzY2xlIiwicHJheSIsImhhbmRzaGFrZSIsInBvaW50X3VwIiwicG9pbnRfdXBfMiIsInBvaW50X2Rvd24iLCJwb2ludF9sZWZ0IiwicG9pbnRfcmlnaHQiLCJmdSIsInJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkIiwibWV0YWwiLCJjcm9zc2VkX2ZpbmdlcnMiLCJ2dWxjYW5fc2FsdXRlIiwid3JpdGluZ19oYW5kIiwic2VsZmllIiwibmFpbF9jYXJlIiwibGlwcyIsInRvbmd1ZSIsImVhciIsIm5vc2UiLCJleWUiLCJleWVzIiwiYnVzdF9pbl9zaWxob3VldHRlIiwiYnVzdHNfaW5fc2lsaG91ZXR0ZSIsInNwZWFraW5nX2hlYWQiLCJiYWJ5IiwiYm95IiwiZ2lybCIsIm1hbiIsIndvbWFuIiwiYmxvbmRlX3dvbWFuIiwiYmxvbmRlX21hbiIsIm9sZGVyX21hbiIsIm9sZGVyX3dvbWFuIiwibWFuX3dpdGhfZ3VhX3BpX21hbyIsIndvbWFuX3dpdGhfdHVyYmFuIiwibWFuX3dpdGhfdHVyYmFuIiwicG9saWNld29tYW4iLCJwb2xpY2VtYW4iLCJjb25zdHJ1Y3Rpb25fd29ya2VyX3dvbWFuIiwiY29uc3RydWN0aW9uX3dvcmtlcl9tYW4iLCJndWFyZHN3b21hbiIsImd1YXJkc21hbiIsImZlbWFsZV9kZXRlY3RpdmUiLCJtYWxlX2RldGVjdGl2ZSIsIndvbWFuX2hlYWx0aF93b3JrZXIiLCJtYW5faGVhbHRoX3dvcmtlciIsIndvbWFuX2Zhcm1lciIsIm1hbl9mYXJtZXIiLCJ3b21hbl9jb29rIiwibWFuX2Nvb2siLCJ3b21hbl9zdHVkZW50IiwibWFuX3N0dWRlbnQiLCJ3b21hbl9zaW5nZXIiLCJtYW5fc2luZ2VyIiwid29tYW5fdGVhY2hlciIsIm1hbl90ZWFjaGVyIiwid29tYW5fZmFjdG9yeV93b3JrZXIiLCJtYW5fZmFjdG9yeV93b3JrZXIiLCJ3b21hbl90ZWNobm9sb2dpc3QiLCJtYW5fdGVjaG5vbG9naXN0Iiwid29tYW5fb2ZmaWNlX3dvcmtlciIsIm1hbl9vZmZpY2Vfd29ya2VyIiwid29tYW5fbWVjaGFuaWMiLCJtYW5fbWVjaGFuaWMiLCJ3b21hbl9zY2llbnRpc3QiLCJtYW5fc2NpZW50aXN0Iiwid29tYW5fYXJ0aXN0IiwibWFuX2FydGlzdCIsIndvbWFuX2ZpcmVmaWdodGVyIiwibWFuX2ZpcmVmaWdodGVyIiwid29tYW5fcGlsb3QiLCJtYW5fcGlsb3QiLCJ3b21hbl9hc3Ryb25hdXQiLCJtYW5fYXN0cm9uYXV0Iiwid29tYW5fanVkZ2UiLCJtYW5fanVkZ2UiLCJtcnNfY2xhdXMiLCJzYW50YSIsImFuZ2VsIiwicHJlZ25hbnRfd29tYW4iLCJwcmluY2VzcyIsInByaW5jZSIsImJyaWRlX3dpdGhfdmVpbCIsIm1hbl9pbl90dXhlZG8iLCJydW5uaW5nX3dvbWFuIiwicnVubmluZ19tYW4iLCJ3YWxraW5nX3dvbWFuIiwid2Fsa2luZ19tYW4iLCJkYW5jZXIiLCJtYW5fZGFuY2luZyIsImRhbmNpbmdfd29tZW4iLCJkYW5jaW5nX21lbiIsImNvdXBsZSIsInR3b19tZW5faG9sZGluZ19oYW5kcyIsInR3b193b21lbl9ob2xkaW5nX2hhbmRzIiwiYm93aW5nX3dvbWFuIiwiYm93aW5nX21hbiIsIm1hbl9mYWNlcGFsbWluZyIsIndvbWFuX2ZhY2VwYWxtaW5nIiwid29tYW5fc2hydWdnaW5nIiwibWFuX3NocnVnZ2luZyIsInRpcHBpbmdfaGFuZF93b21hbiIsInRpcHBpbmdfaGFuZF9tYW4iLCJub19nb29kX3dvbWFuIiwibm9fZ29vZF9tYW4iLCJva193b21hbiIsIm9rX21hbiIsInJhaXNpbmdfaGFuZF93b21hbiIsInJhaXNpbmdfaGFuZF9tYW4iLCJwb3V0aW5nX3dvbWFuIiwicG91dGluZ19tYW4iLCJmcm93bmluZ193b21hbiIsImZyb3duaW5nX21hbiIsImhhaXJjdXRfd29tYW4iLCJoYWlyY3V0X21hbiIsIm1hc3NhZ2Vfd29tYW4iLCJtYXNzYWdlX21hbiIsImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX21hbiIsImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIiwiY291cGxlX3dpdGhfaGVhcnRfbWFuX21hbiIsImNvdXBsZWtpc3NfbWFuX3dvbWFuIiwiY291cGxla2lzc193b21hbl93b21hbiIsImNvdXBsZWtpc3NfbWFuX21hbiIsImZhbWlseV9tYW5fd29tYW5fYm95IiwiZmFtaWx5X21hbl93b21hbl9naXJsIiwiZmFtaWx5X21hbl93b21hbl9naXJsX2JveSIsImZhbWlseV9tYW5fd29tYW5fYm95X2JveSIsImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsIiwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveSIsImZhbWlseV93b21hbl93b21hbl9naXJsIiwiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95IiwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3kiLCJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9naXJsIiwiZmFtaWx5X21hbl9tYW5fYm95IiwiZmFtaWx5X21hbl9tYW5fZ2lybCIsImZhbWlseV9tYW5fbWFuX2dpcmxfYm95IiwiZmFtaWx5X21hbl9tYW5fYm95X2JveSIsImZhbWlseV9tYW5fbWFuX2dpcmxfZ2lybCIsImZhbWlseV93b21hbl9ib3kiLCJmYW1pbHlfd29tYW5fZ2lybCIsImZhbWlseV93b21hbl9naXJsX2JveSIsImZhbWlseV93b21hbl9ib3lfYm95IiwiZmFtaWx5X3dvbWFuX2dpcmxfZ2lybCIsImZhbWlseV9tYW5fYm95IiwiZmFtaWx5X21hbl9naXJsIiwiZmFtaWx5X21hbl9naXJsX2JveSIsImZhbWlseV9tYW5fYm95X2JveSIsImZhbWlseV9tYW5fZ2lybF9naXJsIiwid29tYW5zX2Nsb3RoZXMiLCJ0c2hpcnQiLCJqZWFucyIsIm5lY2t0aWUiLCJkcmVzcyIsImJpa2luaSIsImtpbW9ubyIsImxpcHN0aWNrIiwia2lzcyIsImZvb3RwcmludHMiLCJoaWdoX2hlZWwiLCJzYW5kYWwiLCJib290IiwibWFuc19zaG9lIiwiYXRobGV0aWNfc2hvZSIsIndvbWFuc19oYXQiLCJ0b3BoYXQiLCJyZXNjdWVfd29ya2VyX2hlbG1ldCIsIm1vcnRhcl9ib2FyZCIsImNyb3duIiwic2Nob29sX3NhdGNoZWwiLCJwb3VjaCIsInB1cnNlIiwiaGFuZGJhZyIsImJyaWVmY2FzZSIsImV5ZWdsYXNzZXMiLCJkYXJrX3N1bmdsYXNzZXMiLCJyaW5nIiwiY2xvc2VkX3VtYnJlbGxhIiwiZG9nIiwiY2F0IiwibW91c2UiLCJoYW1zdGVyIiwicmFiYml0IiwiZm94X2ZhY2UiLCJiZWFyIiwicGFuZGFfZmFjZSIsImtvYWxhIiwidGlnZXIiLCJsaW9uIiwiY293IiwicGlnIiwicGlnX25vc2UiLCJmcm9nIiwic3F1aWQiLCJvY3RvcHVzIiwic2hyaW1wIiwibW9ua2V5X2ZhY2UiLCJnb3JpbGxhIiwic2VlX25vX2V2aWwiLCJoZWFyX25vX2V2aWwiLCJzcGVha19ub19ldmlsIiwibW9ua2V5IiwiY2hpY2tlbiIsInBlbmd1aW4iLCJiaXJkIiwiYmFieV9jaGljayIsImhhdGNoaW5nX2NoaWNrIiwiaGF0Y2hlZF9jaGljayIsImR1Y2siLCJlYWdsZSIsIm93bCIsImJhdCIsIndvbGYiLCJib2FyIiwiaG9yc2UiLCJ1bmljb3JuIiwiaG9uZXliZWUiLCJidWciLCJidXR0ZXJmbHkiLCJzbmFpbCIsImJlZXRsZSIsImFudCIsInNwaWRlciIsInNjb3JwaW9uIiwiY3JhYiIsInNuYWtlIiwibGl6YXJkIiwidHVydGxlIiwidHJvcGljYWxfZmlzaCIsImZpc2giLCJibG93ZmlzaCIsImRvbHBoaW4iLCJzaGFyayIsIndoYWxlIiwid2hhbGUyIiwiY3JvY29kaWxlIiwibGVvcGFyZCIsInRpZ2VyMiIsIndhdGVyX2J1ZmZhbG8iLCJveCIsImNvdzIiLCJkZWVyIiwiZHJvbWVkYXJ5X2NhbWVsIiwiY2FtZWwiLCJlbGVwaGFudCIsInJoaW5vY2Vyb3MiLCJnb2F0IiwicmFtIiwic2hlZXAiLCJyYWNlaG9yc2UiLCJwaWcyIiwicmF0IiwibW91c2UyIiwicm9vc3RlciIsInR1cmtleSIsImRvdmUiLCJkb2cyIiwicG9vZGxlIiwiY2F0MiIsInJhYmJpdDIiLCJjaGlwbXVuayIsInBhd19wcmludHMiLCJkcmFnb24iLCJkcmFnb25fZmFjZSIsImNhY3R1cyIsImNocmlzdG1hc190cmVlIiwiZXZlcmdyZWVuX3RyZWUiLCJkZWNpZHVvdXNfdHJlZSIsInBhbG1fdHJlZSIsInNlZWRsaW5nIiwiaGVyYiIsInNoYW1yb2NrIiwiZm91cl9sZWFmX2Nsb3ZlciIsImJhbWJvbyIsInRhbmFiYXRhX3RyZWUiLCJsZWF2ZXMiLCJmYWxsZW5fbGVhZiIsIm1hcGxlX2xlYWYiLCJlYXJfb2ZfcmljZSIsImhpYmlzY3VzIiwic3VuZmxvd2VyIiwicm9zZSIsIndpbHRlZF9mbG93ZXIiLCJ0dWxpcCIsImJsb3Nzb20iLCJjaGVycnlfYmxvc3NvbSIsImJvdXF1ZXQiLCJtdXNocm9vbSIsImNoZXN0bnV0IiwiamFja19vX2xhbnRlcm4iLCJzaGVsbCIsInNwaWRlcl93ZWIiLCJlYXJ0aF9hbWVyaWNhcyIsImVhcnRoX2FmcmljYSIsImVhcnRoX2FzaWEiLCJmdWxsX21vb24iLCJ3YW5pbmdfZ2liYm91c19tb29uIiwibGFzdF9xdWFydGVyX21vb24iLCJ3YW5pbmdfY3Jlc2NlbnRfbW9vbiIsIm5ld19tb29uIiwid2F4aW5nX2NyZXNjZW50X21vb24iLCJmaXJzdF9xdWFydGVyX21vb24iLCJ3YXhpbmdfZ2liYm91c19tb29uIiwibmV3X21vb25fd2l0aF9mYWNlIiwiZnVsbF9tb29uX3dpdGhfZmFjZSIsImZpcnN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCJzdW5fd2l0aF9mYWNlIiwiY3Jlc2NlbnRfbW9vbiIsInN0YXIiLCJzdGFyMiIsImRpenp5Iiwic3BhcmtsZXMiLCJjb21ldCIsInN1bm55Iiwic3VuX2JlaGluZF9zbWFsbF9jbG91ZCIsInBhcnRseV9zdW5ueSIsInN1bl9iZWhpbmRfbGFyZ2VfY2xvdWQiLCJzdW5fYmVoaW5kX3JhaW5fY2xvdWQiLCJjbG91ZCIsImNsb3VkX3dpdGhfcmFpbiIsImNsb3VkX3dpdGhfbGlnaHRuaW5nX2FuZF9yYWluIiwiY2xvdWRfd2l0aF9saWdodG5pbmciLCJ6YXAiLCJmaXJlIiwiYm9vbSIsInNub3dmbGFrZSIsImNsb3VkX3dpdGhfc25vdyIsInNub3dtYW4iLCJzbm93bWFuX3dpdGhfc25vdyIsIndpbmRfZmFjZSIsImRhc2giLCJ0b3JuYWRvIiwiZm9nIiwib3Blbl91bWJyZWxsYSIsInVtYnJlbGxhIiwiZHJvcGxldCIsInN3ZWF0X2Ryb3BzIiwib2NlYW4iLCJncmVlbl9hcHBsZSIsImFwcGxlIiwicGVhciIsInRhbmdlcmluZSIsImxlbW9uIiwiYmFuYW5hIiwid2F0ZXJtZWxvbiIsImdyYXBlcyIsInN0cmF3YmVycnkiLCJtZWxvbiIsImNoZXJyaWVzIiwicGVhY2giLCJwaW5lYXBwbGUiLCJraXdpX2ZydWl0IiwiYXZvY2FkbyIsInRvbWF0byIsImVnZ3BsYW50IiwiY3VjdW1iZXIiLCJjYXJyb3QiLCJob3RfcGVwcGVyIiwicG90YXRvIiwiY29ybiIsInN3ZWV0X3BvdGF0byIsInBlYW51dHMiLCJob25leV9wb3QiLCJjcm9pc3NhbnQiLCJicmVhZCIsImJhZ3VldHRlX2JyZWFkIiwiY2hlZXNlIiwiZWdnIiwiYmFjb24iLCJwYW5jYWtlcyIsInBvdWx0cnlfbGVnIiwibWVhdF9vbl9ib25lIiwiZnJpZWRfc2hyaW1wIiwiZnJpZWRfZWdnIiwiaGFtYnVyZ2VyIiwiZnJpZXMiLCJzdHVmZmVkX2ZsYXRicmVhZCIsImhvdGRvZyIsInBpenphIiwic3BhZ2hldHRpIiwidGFjbyIsImJ1cnJpdG8iLCJncmVlbl9zYWxhZCIsInNoYWxsb3dfcGFuX29mX2Zvb2QiLCJyYW1lbiIsInN0ZXciLCJmaXNoX2Nha2UiLCJzdXNoaSIsImJlbnRvIiwiY3VycnkiLCJyaWNlX2JhbGwiLCJyaWNlIiwicmljZV9jcmFja2VyIiwib2RlbiIsImRhbmdvIiwic2hhdmVkX2ljZSIsImljZV9jcmVhbSIsImljZWNyZWFtIiwiY2FrZSIsImJpcnRoZGF5IiwiY3VzdGFyZCIsImNhbmR5IiwibG9sbGlwb3AiLCJjaG9jb2xhdGVfYmFyIiwicG9wY29ybiIsImRvdWdobnV0IiwiY29va2llIiwibWlsa19nbGFzcyIsImJlZXIiLCJiZWVycyIsImNsaW5raW5nX2dsYXNzZXMiLCJ3aW5lX2dsYXNzIiwidHVtYmxlcl9nbGFzcyIsImNvY2t0YWlsIiwidHJvcGljYWxfZHJpbmsiLCJjaGFtcGFnbmUiLCJzYWtlIiwidGVhIiwiY29mZmVlIiwiYmFieV9ib3R0bGUiLCJzcG9vbiIsImZvcmtfYW5kX2tuaWZlIiwicGxhdGVfd2l0aF9jdXRsZXJ5Iiwic29jY2VyIiwiYmFza2V0YmFsbCIsImZvb3RiYWxsIiwiYmFzZWJhbGwiLCJ0ZW5uaXMiLCJ2b2xsZXliYWxsIiwicnVnYnlfZm9vdGJhbGwiLCI4YmFsbCIsImdvbGYiLCJnb2xmaW5nX3dvbWFuIiwiZ29sZmluZ19tYW4iLCJwaW5nX3BvbmciLCJiYWRtaW50b24iLCJnb2FsX25ldCIsImljZV9ob2NrZXkiLCJmaWVsZF9ob2NrZXkiLCJjcmlja2V0X2JhdF9hbmRfYmFsbCIsInNraSIsInNraWVyIiwic25vd2JvYXJkZXIiLCJwZXJzb25fZmVuY2luZyIsIndvbWVuX3dyZXN0bGluZyIsIm1lbl93cmVzdGxpbmciLCJ3b21hbl9jYXJ0d2hlZWxpbmciLCJtYW5fY2FydHdoZWVsaW5nIiwid29tYW5fcGxheWluZ19oYW5kYmFsbCIsIm1hbl9wbGF5aW5nX2hhbmRiYWxsIiwiaWNlX3NrYXRlIiwiYm93X2FuZF9hcnJvdyIsImZpc2hpbmdfcG9sZV9hbmRfZmlzaCIsImJveGluZ19nbG92ZSIsIm1hcnRpYWxfYXJ0c191bmlmb3JtIiwicm93aW5nX3dvbWFuIiwicm93aW5nX21hbiIsInN3aW1taW5nX3dvbWFuIiwic3dpbW1pbmdfbWFuIiwid29tYW5fcGxheWluZ193YXRlcl9wb2xvIiwibWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyIsInN1cmZpbmdfd29tYW4iLCJzdXJmaW5nX21hbiIsImJhdGgiLCJiYXNrZXRiYWxsX3dvbWFuIiwiYmFza2V0YmFsbF9tYW4iLCJ3ZWlnaHRfbGlmdGluZ193b21hbiIsIndlaWdodF9saWZ0aW5nX21hbiIsImJpa2luZ193b21hbiIsImJpa2luZ19tYW4iLCJtb3VudGFpbl9iaWtpbmdfd29tYW4iLCJtb3VudGFpbl9iaWtpbmdfbWFuIiwiaG9yc2VfcmFjaW5nIiwiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIiwidHJvcGh5IiwicnVubmluZ19zaGlydF93aXRoX3Nhc2giLCJtZWRhbF9zcG9ydHMiLCJtZWRhbF9taWxpdGFyeSIsIjFzdF9wbGFjZV9tZWRhbCIsIjJuZF9wbGFjZV9tZWRhbCIsIjNyZF9wbGFjZV9tZWRhbCIsInJlbWluZGVyX3JpYmJvbiIsInJvc2V0dGUiLCJ0aWNrZXQiLCJ0aWNrZXRzIiwicGVyZm9ybWluZ19hcnRzIiwiYXJ0IiwiY2lyY3VzX3RlbnQiLCJ3b21hbl9qdWdnbGluZyIsIm1hbl9qdWdnbGluZyIsIm1pY3JvcGhvbmUiLCJoZWFkcGhvbmVzIiwibXVzaWNhbF9zY29yZSIsIm11c2ljYWxfa2V5Ym9hcmQiLCJkcnVtIiwic2F4b3Bob25lIiwidHJ1bXBldCIsImd1aXRhciIsInZpb2xpbiIsImNsYXBwZXIiLCJ2aWRlb19nYW1lIiwic3BhY2VfaW52YWRlciIsImRhcnQiLCJnYW1lX2RpZSIsInNsb3RfbWFjaGluZSIsImJvd2xpbmciLCJyZWRfY2FyIiwidGF4aSIsImJsdWVfY2FyIiwiYnVzIiwidHJvbGxleWJ1cyIsInJhY2luZ19jYXIiLCJwb2xpY2VfY2FyIiwiYW1idWxhbmNlIiwiZmlyZV9lbmdpbmUiLCJtaW5pYnVzIiwidHJ1Y2siLCJhcnRpY3VsYXRlZF9sb3JyeSIsInRyYWN0b3IiLCJraWNrX3Njb290ZXIiLCJtb3RvcmN5Y2xlIiwiYmlrZSIsIm1vdG9yX3Njb290ZXIiLCJyb3RhdGluZ19saWdodCIsIm9uY29taW5nX3BvbGljZV9jYXIiLCJvbmNvbWluZ19idXMiLCJvbmNvbWluZ19hdXRvbW9iaWxlIiwib25jb21pbmdfdGF4aSIsImFlcmlhbF90cmFtd2F5IiwibW91bnRhaW5fY2FibGV3YXkiLCJzdXNwZW5zaW9uX3JhaWx3YXkiLCJyYWlsd2F5X2NhciIsInRyYWluIiwibW9ub3JhaWwiLCJidWxsZXR0cmFpbl9zaWRlIiwiYnVsbGV0dHJhaW5fZnJvbnQiLCJsaWdodF9yYWlsIiwibW91bnRhaW5fcmFpbHdheSIsInN0ZWFtX2xvY29tb3RpdmUiLCJ0cmFpbjIiLCJtZXRybyIsInRyYW0iLCJzdGF0aW9uIiwiaGVsaWNvcHRlciIsInNtYWxsX2FpcnBsYW5lIiwiYWlycGxhbmUiLCJmbGlnaHRfZGVwYXJ0dXJlIiwiZmxpZ2h0X2Fycml2YWwiLCJzYWlsYm9hdCIsIm1vdG9yX2JvYXQiLCJzcGVlZGJvYXQiLCJmZXJyeSIsInBhc3Nlbmdlcl9zaGlwIiwicm9ja2V0IiwiYXJ0aWZpY2lhbF9zYXRlbGxpdGUiLCJzZWF0IiwiY2Fub2UiLCJhbmNob3IiLCJjb25zdHJ1Y3Rpb24iLCJmdWVscHVtcCIsImJ1c3N0b3AiLCJ2ZXJ0aWNhbF90cmFmZmljX2xpZ2h0IiwidHJhZmZpY19saWdodCIsImNoZWNrZXJlZF9mbGFnIiwic2hpcCIsImZlcnJpc193aGVlbCIsInJvbGxlcl9jb2FzdGVyIiwiY2Fyb3VzZWxfaG9yc2UiLCJidWlsZGluZ19jb25zdHJ1Y3Rpb24iLCJmb2dneSIsInRva3lvX3Rvd2VyIiwiZmFjdG9yeSIsImZvdW50YWluIiwicmljZV9zY2VuZSIsIm1vdW50YWluIiwibW91bnRhaW5fc25vdyIsIm1vdW50X2Z1amkiLCJ2b2xjYW5vIiwiamFwYW4iLCJjYW1waW5nIiwidGVudCIsIm5hdGlvbmFsX3BhcmsiLCJtb3RvcndheSIsInJhaWx3YXlfdHJhY2siLCJzdW5yaXNlIiwic3VucmlzZV9vdmVyX21vdW50YWlucyIsImRlc2VydCIsImJlYWNoX3VtYnJlbGxhIiwiZGVzZXJ0X2lzbGFuZCIsImNpdHlfc3VucmlzZSIsImNpdHlfc3Vuc2V0IiwiY2l0eXNjYXBlIiwibmlnaHRfd2l0aF9zdGFycyIsImJyaWRnZV9hdF9uaWdodCIsIm1pbGt5X3dheSIsInN0YXJzIiwic3BhcmtsZXIiLCJmaXJld29ya3MiLCJyYWluYm93IiwiaG91c2VzIiwiZXVyb3BlYW5fY2FzdGxlIiwiamFwYW5lc2VfY2FzdGxlIiwic3RhZGl1bSIsInN0YXR1ZV9vZl9saWJlcnR5IiwiaG91c2UiLCJob3VzZV93aXRoX2dhcmRlbiIsImRlcmVsaWN0X2hvdXNlIiwib2ZmaWNlIiwiZGVwYXJ0bWVudF9zdG9yZSIsInBvc3Rfb2ZmaWNlIiwiZXVyb3BlYW5fcG9zdF9vZmZpY2UiLCJob3NwaXRhbCIsImJhbmsiLCJob3RlbCIsImNvbnZlbmllbmNlX3N0b3JlIiwic2Nob29sIiwibG92ZV9ob3RlbCIsIndlZGRpbmciLCJjbGFzc2ljYWxfYnVpbGRpbmciLCJjaHVyY2giLCJtb3NxdWUiLCJzeW5hZ29ndWUiLCJrYWFiYSIsInNoaW50b19zaHJpbmUiLCJ3YXRjaCIsImlwaG9uZSIsImNhbGxpbmciLCJjb21wdXRlciIsImtleWJvYXJkIiwiZGVza3RvcF9jb21wdXRlciIsInByaW50ZXIiLCJjb21wdXRlcl9tb3VzZSIsInRyYWNrYmFsbCIsImpveXN0aWNrIiwiY2xhbXAiLCJtaW5pZGlzYyIsImZsb3BweV9kaXNrIiwiY2QiLCJkdmQiLCJ2aHMiLCJjYW1lcmEiLCJjYW1lcmFfZmxhc2giLCJ2aWRlb19jYW1lcmEiLCJtb3ZpZV9jYW1lcmEiLCJmaWxtX3Byb2plY3RvciIsImZpbG1fc3RyaXAiLCJ0ZWxlcGhvbmVfcmVjZWl2ZXIiLCJwaG9uZSIsInBhZ2VyIiwiZmF4IiwidHYiLCJyYWRpbyIsInN0dWRpb19taWNyb3Bob25lIiwibGV2ZWxfc2xpZGVyIiwiY29udHJvbF9rbm9icyIsInN0b3B3YXRjaCIsInRpbWVyX2Nsb2NrIiwiYWxhcm1fY2xvY2siLCJtYW50ZWxwaWVjZV9jbG9jayIsImhvdXJnbGFzc19mbG93aW5nX3NhbmQiLCJob3VyZ2xhc3MiLCJzYXRlbGxpdGUiLCJiYXR0ZXJ5IiwiZWxlY3RyaWNfcGx1ZyIsImJ1bGIiLCJmbGFzaGxpZ2h0IiwiY2FuZGxlIiwid2FzdGViYXNrZXQiLCJvaWxfZHJ1bSIsIm1vbmV5X3dpdGhfd2luZ3MiLCJkb2xsYXIiLCJ5ZW4iLCJldXJvIiwicG91bmQiLCJtb25leWJhZyIsImNyZWRpdF9jYXJkIiwiZ2VtIiwiYmFsYW5jZV9zY2FsZSIsIndyZW5jaCIsImhhbW1lciIsImhhbW1lcl9hbmRfcGljayIsImhhbW1lcl9hbmRfd3JlbmNoIiwicGljayIsIm51dF9hbmRfYm9sdCIsImdlYXIiLCJjaGFpbnMiLCJndW4iLCJib21iIiwiaG9jaG8iLCJkYWdnZXIiLCJjcm9zc2VkX3N3b3JkcyIsInNoaWVsZCIsInNtb2tpbmciLCJza3VsbF9hbmRfY3Jvc3Nib25lcyIsImNvZmZpbiIsImZ1bmVyYWxfdXJuIiwiYW1waG9yYSIsImNyeXN0YWxfYmFsbCIsInByYXllcl9iZWFkcyIsImJhcmJlciIsImFsZW1iaWMiLCJ0ZWxlc2NvcGUiLCJtaWNyb3Njb3BlIiwiaG9sZSIsInBpbGwiLCJzeXJpbmdlIiwidGhlcm1vbWV0ZXIiLCJsYWJlbCIsImJvb2ttYXJrIiwidG9pbGV0Iiwic2hvd2VyIiwiYmF0aHR1YiIsImtleSIsIm9sZF9rZXkiLCJjb3VjaF9hbmRfbGFtcCIsInNsZWVwaW5nX2JlZCIsImJlZCIsImRvb3IiLCJiZWxsaG9wX2JlbGwiLCJmcmFtZWRfcGljdHVyZSIsIndvcmxkX21hcCIsInBhcmFzb2xfb25fZ3JvdW5kIiwibW95YWkiLCJzaG9wcGluZyIsInNob3BwaW5nX2NhcnQiLCJiYWxsb29uIiwiZmxhZ3MiLCJyaWJib24iLCJnaWZ0IiwiY29uZmV0dGlfYmFsbCIsInRhZGEiLCJkb2xscyIsIndpbmRfY2hpbWUiLCJjcm9zc2VkX2ZsYWdzIiwiaXpha2F5YV9sYW50ZXJuIiwiZW1haWwiLCJlbnZlbG9wZV93aXRoX2Fycm93IiwiaW5jb21pbmdfZW52ZWxvcGUiLCJlLW1haWwiLCJsb3ZlX2xldHRlciIsInBvc3Rib3giLCJtYWlsYm94X2Nsb3NlZCIsIm1haWxib3giLCJtYWlsYm94X3dpdGhfbWFpbCIsIm1haWxib3hfd2l0aF9ub19tYWlsIiwicGFja2FnZSIsInBvc3RhbF9ob3JuIiwiaW5ib3hfdHJheSIsIm91dGJveF90cmF5Iiwic2Nyb2xsIiwicGFnZV93aXRoX2N1cmwiLCJib29rbWFya190YWJzIiwiYmFyX2NoYXJ0IiwiY2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kIiwiY2hhcnRfd2l0aF9kb3dud2FyZHNfdHJlbmQiLCJwYWdlX2ZhY2luZ191cCIsImRhdGUiLCJjYWxlbmRhciIsInNwaXJhbF9jYWxlbmRhciIsImNhcmRfaW5kZXgiLCJjYXJkX2ZpbGVfYm94IiwiYmFsbG90X2JveCIsImZpbGVfY2FiaW5ldCIsImNsaXBib2FyZCIsInNwaXJhbF9ub3RlcGFkIiwiZmlsZV9mb2xkZXIiLCJvcGVuX2ZpbGVfZm9sZGVyIiwiY2FyZF9pbmRleF9kaXZpZGVycyIsIm5ld3NwYXBlcl9yb2xsIiwibmV3c3BhcGVyIiwibm90ZWJvb2siLCJjbG9zZWRfYm9vayIsImdyZWVuX2Jvb2siLCJibHVlX2Jvb2siLCJvcmFuZ2VfYm9vayIsIm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlciIsImxlZGdlciIsImJvb2tzIiwib3Blbl9ib29rIiwibGluayIsInBhcGVyY2xpcCIsInBhcGVyY2xpcHMiLCJzY2lzc29ycyIsInRyaWFuZ3VsYXJfcnVsZXIiLCJzdHJhaWdodF9ydWxlciIsInB1c2hwaW4iLCJyb3VuZF9wdXNocGluIiwidHJpYW5ndWxhcl9mbGFnX29uX3Bvc3QiLCJ3aGl0ZV9mbGFnIiwiYmxhY2tfZmxhZyIsInJhaW5ib3dfZmxhZyIsImNsb3NlZF9sb2NrX3dpdGhfa2V5IiwibG9jayIsInVubG9jayIsImxvY2tfd2l0aF9pbmtfcGVuIiwicGVuIiwiZm91bnRhaW5fcGVuIiwiYmxhY2tfbmliIiwibWVtbyIsInBlbmNpbDIiLCJjcmF5b24iLCJwYWludGJydXNoIiwibWFnIiwibWFnX3JpZ2h0IiwiaGVhcnQiLCJ5ZWxsb3dfaGVhcnQiLCJncmVlbl9oZWFydCIsImJsdWVfaGVhcnQiLCJwdXJwbGVfaGVhcnQiLCJibGFja19oZWFydCIsImJyb2tlbl9oZWFydCIsImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uIiwidHdvX2hlYXJ0cyIsInJldm9sdmluZ19oZWFydHMiLCJoZWFydGJlYXQiLCJoZWFydHB1bHNlIiwic3BhcmtsaW5nX2hlYXJ0IiwiY3VwaWQiLCJnaWZ0X2hlYXJ0IiwiaGVhcnRfZGVjb3JhdGlvbiIsInBlYWNlX3N5bWJvbCIsImxhdGluX2Nyb3NzIiwic3Rhcl9hbmRfY3Jlc2NlbnQiLCJvbSIsIndoZWVsX29mX2RoYXJtYSIsInN0YXJfb2ZfZGF2aWQiLCJzaXhfcG9pbnRlZF9zdGFyIiwibWVub3JhaCIsInlpbl95YW5nIiwib3J0aG9kb3hfY3Jvc3MiLCJwbGFjZV9vZl93b3JzaGlwIiwib3BoaXVjaHVzIiwiYXJpZXMiLCJ0YXVydXMiLCJnZW1pbmkiLCJjYW5jZXIiLCJsZW8iLCJ2aXJnbyIsImxpYnJhIiwic2NvcnBpdXMiLCJzYWdpdHRhcml1cyIsImNhcHJpY29ybiIsImFxdWFyaXVzIiwicGlzY2VzIiwiaWQiLCJhdG9tX3N5bWJvbCIsInU3YTdhIiwidTUyNzIiLCJyYWRpb2FjdGl2ZSIsImJpb2hhemFyZCIsIm1vYmlsZV9waG9uZV9vZmYiLCJ2aWJyYXRpb25fbW9kZSIsInU2NzA5IiwidTcxMjEiLCJ1NzUzMyIsInU1NWI2IiwidTY3MDgiLCJlaWdodF9wb2ludGVkX2JsYWNrX3N0YXIiLCJ2cyIsImFjY2VwdCIsIndoaXRlX2Zsb3dlciIsImlkZW9ncmFwaF9hZHZhbnRhZ2UiLCJzZWNyZXQiLCJjb25ncmF0dWxhdGlvbnMiLCJ1NTQwOCIsInU2ZTgwIiwidTc5ODEiLCJhIiwiYiIsImFiIiwiY2wiLCJvMiIsInNvcyIsIm5vX2VudHJ5IiwibmFtZV9iYWRnZSIsIm5vX2VudHJ5X3NpZ24iLCJ4IiwibyIsInN0b3Bfc2lnbiIsImFuZ2VyIiwiaG90c3ByaW5ncyIsIm5vX3BlZGVzdHJpYW5zIiwiZG9fbm90X2xpdHRlciIsIm5vX2JpY3ljbGVzIiwibm9uLXBvdGFibGVfd2F0ZXIiLCJ1bmRlcmFnZSIsIm5vX21vYmlsZV9waG9uZXMiLCJleGNsYW1hdGlvbiIsImdyZXlfZXhjbGFtYXRpb24iLCJxdWVzdGlvbiIsImdyZXlfcXVlc3Rpb24iLCJiYW5nYmFuZyIsImludGVycm9iYW5nIiwiMTAwIiwibG93X2JyaWdodG5lc3MiLCJoaWdoX2JyaWdodG5lc3MiLCJ0cmlkZW50IiwiZmxldXJfZGVfbGlzIiwicGFydF9hbHRlcm5hdGlvbl9tYXJrIiwid2FybmluZyIsImNoaWxkcmVuX2Nyb3NzaW5nIiwiYmVnaW5uZXIiLCJyZWN5Y2xlIiwidTYzMDciLCJjaGFydCIsInNwYXJrbGUiLCJlaWdodF9zcG9rZWRfYXN0ZXJpc2siLCJuZWdhdGl2ZV9zcXVhcmVkX2Nyb3NzX21hcmsiLCJ3aGl0ZV9jaGVja19tYXJrIiwiZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSIsImN5Y2xvbmUiLCJsb29wIiwiZ2xvYmVfd2l0aF9tZXJpZGlhbnMiLCJtIiwiYXRtIiwic2EiLCJwYXNzcG9ydF9jb250cm9sIiwiY3VzdG9tcyIsImJhZ2dhZ2VfY2xhaW0iLCJsZWZ0X2x1Z2dhZ2UiLCJ3aGVlbGNoYWlyIiwibm9fc21va2luZyIsIndjIiwicGFya2luZyIsInBvdGFibGVfd2F0ZXIiLCJtZW5zIiwid29tZW5zIiwiYmFieV9zeW1ib2wiLCJyZXN0cm9vbSIsInB1dF9saXR0ZXJfaW5faXRzX3BsYWNlIiwiY2luZW1hIiwic2lnbmFsX3N0cmVuZ3RoIiwia29rbyIsIm5nIiwib2siLCJ1cCIsImNvb2wiLCJuZXciLCJmcmVlIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImtleWNhcF90ZW4iLCJhc3RlcmlzayIsIjEyMzQiLCJhcnJvd19mb3J3YXJkIiwicGF1c2VfYnV0dG9uIiwibmV4dF90cmFja19idXR0b24iLCJzdG9wX2J1dHRvbiIsInJlY29yZF9idXR0b24iLCJwbGF5X29yX3BhdXNlX2J1dHRvbiIsInByZXZpb3VzX3RyYWNrX2J1dHRvbiIsImZhc3RfZm9yd2FyZCIsInJld2luZCIsInR3aXN0ZWRfcmlnaHR3YXJkc19hcnJvd3MiLCJyZXBlYXQiLCJyZXBlYXRfb25lIiwiYXJyb3dfYmFja3dhcmQiLCJhcnJvd191cF9zbWFsbCIsImFycm93X2Rvd25fc21hbGwiLCJhcnJvd19kb3VibGVfdXAiLCJhcnJvd19kb3VibGVfZG93biIsImFycm93X3JpZ2h0IiwiYXJyb3dfbGVmdCIsImFycm93X3VwIiwiYXJyb3dfZG93biIsImFycm93X3VwcGVyX3JpZ2h0IiwiYXJyb3dfbG93ZXJfcmlnaHQiLCJhcnJvd19sb3dlcl9sZWZ0IiwiYXJyb3dfdXBwZXJfbGVmdCIsImFycm93X3VwX2Rvd24iLCJsZWZ0X3JpZ2h0X2Fycm93IiwiYXJyb3dzX2NvdW50ZXJjbG9ja3dpc2UiLCJhcnJvd19yaWdodF9ob29rIiwibGVmdHdhcmRzX2Fycm93X3dpdGhfaG9vayIsImFycm93X2hlYWRpbmdfdXAiLCJhcnJvd19oZWFkaW5nX2Rvd24iLCJoYXNoIiwiaW5mb3JtYXRpb25fc291cmNlIiwiYWJjIiwiYWJjZCIsImNhcGl0YWxfYWJjZCIsInN5bWJvbHMiLCJtdXNpY2FsX25vdGUiLCJub3RlcyIsIndhdnlfZGFzaCIsImN1cmx5X2xvb3AiLCJoZWF2eV9jaGVja19tYXJrIiwiYXJyb3dzX2Nsb2Nrd2lzZSIsImhlYXZ5X3BsdXNfc2lnbiIsImhlYXZ5X21pbnVzX3NpZ24iLCJoZWF2eV9kaXZpc2lvbl9zaWduIiwiaGVhdnlfbXVsdGlwbGljYXRpb25feCIsImhlYXZ5X2RvbGxhcl9zaWduIiwiY3VycmVuY3lfZXhjaGFuZ2UiLCJjb3B5cmlnaHQiLCJyZWdpc3RlcmVkIiwidG0iLCJlbmQiLCJiYWNrIiwib24iLCJ0b3AiLCJzb29uIiwiYmFsbG90X2JveF93aXRoX2NoZWNrIiwicmFkaW9fYnV0dG9uIiwid2hpdGVfY2lyY2xlIiwiYmxhY2tfY2lyY2xlIiwicmVkX2NpcmNsZSIsImxhcmdlX2JsdWVfY2lyY2xlIiwic21hbGxfb3JhbmdlX2RpYW1vbmQiLCJzbWFsbF9ibHVlX2RpYW1vbmQiLCJsYXJnZV9vcmFuZ2VfZGlhbW9uZCIsImxhcmdlX2JsdWVfZGlhbW9uZCIsInNtYWxsX3JlZF90cmlhbmdsZSIsImJsYWNrX3NtYWxsX3NxdWFyZSIsIndoaXRlX3NtYWxsX3NxdWFyZSIsImJsYWNrX2xhcmdlX3NxdWFyZSIsIndoaXRlX2xhcmdlX3NxdWFyZSIsInNtYWxsX3JlZF90cmlhbmdsZV9kb3duIiwiYmxhY2tfbWVkaXVtX3NxdWFyZSIsIndoaXRlX21lZGl1bV9zcXVhcmUiLCJibGFja19tZWRpdW1fc21hbGxfc3F1YXJlIiwid2hpdGVfbWVkaXVtX3NtYWxsX3NxdWFyZSIsImJsYWNrX3NxdWFyZV9idXR0b24iLCJ3aGl0ZV9zcXVhcmVfYnV0dG9uIiwic3BlYWtlciIsInNvdW5kIiwibG91ZF9zb3VuZCIsIm11dGUiLCJtZWdhIiwibG91ZHNwZWFrZXIiLCJiZWxsIiwibm9fYmVsbCIsImJsYWNrX2pva2VyIiwibWFoam9uZyIsInNwYWRlcyIsImNsdWJzIiwiaGVhcnRzIiwiZGlhbW9uZHMiLCJmbG93ZXJfcGxheWluZ19jYXJkcyIsInRob3VnaHRfYmFsbG9vbiIsInJpZ2h0X2FuZ2VyX2J1YmJsZSIsInNwZWVjaF9iYWxsb29uIiwibGVmdF9zcGVlY2hfYnViYmxlIiwiY2xvY2sxIiwiY2xvY2syIiwiY2xvY2szIiwiY2xvY2s0IiwiY2xvY2s1IiwiY2xvY2s2IiwiY2xvY2s3IiwiY2xvY2s4IiwiY2xvY2s5IiwiY2xvY2sxMCIsImNsb2NrMTEiLCJjbG9jazEyIiwiY2xvY2sxMzAiLCJjbG9jazIzMCIsImNsb2NrMzMwIiwiY2xvY2s0MzAiLCJjbG9jazUzMCIsImNsb2NrNjMwIiwiY2xvY2s3MzAiLCJjbG9jazgzMCIsImNsb2NrOTMwIiwiY2xvY2sxMDMwIiwiY2xvY2sxMTMwIiwiY2xvY2sxMjMwIiwiYWZnaGFuaXN0YW4iLCJhbGFuZF9pc2xhbmRzIiwiYWxiYW5pYSIsImFsZ2VyaWEiLCJhbWVyaWNhbl9zYW1vYSIsImFuZG9ycmEiLCJhbmdvbGEiLCJhbmd1aWxsYSIsImFudGFyY3RpY2EiLCJhbnRpZ3VhX2JhcmJ1ZGEiLCJhcmdlbnRpbmEiLCJhcm1lbmlhIiwiYXJ1YmEiLCJhdXN0cmFsaWEiLCJhdXN0cmlhIiwiYXplcmJhaWphbiIsImJhaGFtYXMiLCJiYWhyYWluIiwiYmFuZ2xhZGVzaCIsImJhcmJhZG9zIiwiYmVsYXJ1cyIsImJlbGdpdW0iLCJiZWxpemUiLCJiZW5pbiIsImJlcm11ZGEiLCJiaHV0YW4iLCJib2xpdmlhIiwiY2FyaWJiZWFuX25ldGhlcmxhbmRzIiwiYm9zbmlhX2hlcnplZ292aW5hIiwiYm90c3dhbmEiLCJicmF6aWwiLCJicml0aXNoX2luZGlhbl9vY2Vhbl90ZXJyaXRvcnkiLCJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIiwiYnJ1bmVpIiwiYnVsZ2FyaWEiLCJidXJraW5hX2Zhc28iLCJidXJ1bmRpIiwiY2FwZV92ZXJkZSIsImNhbWJvZGlhIiwiY2FtZXJvb24iLCJjYW5hZGEiLCJjYW5hcnlfaXNsYW5kcyIsImNheW1hbl9pc2xhbmRzIiwiY2VudHJhbF9hZnJpY2FuX3JlcHVibGljIiwiY2hhZCIsImNoaWxlIiwiY24iLCJjaHJpc3RtYXNfaXNsYW5kIiwiY29jb3NfaXNsYW5kcyIsImNvbG9tYmlhIiwiY29tb3JvcyIsImNvbmdvX2JyYXp6YXZpbGxlIiwiY29uZ29fa2luc2hhc2EiLCJjb29rX2lzbGFuZHMiLCJjb3N0YV9yaWNhIiwiY3JvYXRpYSIsImN1YmEiLCJjdXJhY2FvIiwiY3lwcnVzIiwiY3plY2hfcmVwdWJsaWMiLCJkZW5tYXJrIiwiZGppYm91dGkiLCJkb21pbmljYSIsImRvbWluaWNhbl9yZXB1YmxpYyIsImVjdWFkb3IiLCJlZ3lwdCIsImVsX3NhbHZhZG9yIiwiZXF1YXRvcmlhbF9ndWluZWEiLCJlcml0cmVhIiwiZXN0b25pYSIsImV0aGlvcGlhIiwiZXUiLCJmYWxrbGFuZF9pc2xhbmRzIiwiZmFyb2VfaXNsYW5kcyIsImZpamkiLCJmaW5sYW5kIiwiZnIiLCJmcmVuY2hfZ3VpYW5hIiwiZnJlbmNoX3BvbHluZXNpYSIsImZyZW5jaF9zb3V0aGVybl90ZXJyaXRvcmllcyIsImdhYm9uIiwiZ2FtYmlhIiwiZ2VvcmdpYSIsImRlIiwiZ2hhbmEiLCJnaWJyYWx0YXIiLCJncmVlY2UiLCJncmVlbmxhbmQiLCJncmVuYWRhIiwiZ3VhZGVsb3VwZSIsImd1YW0iLCJndWF0ZW1hbGEiLCJndWVybnNleSIsImd1aW5lYSIsImd1aW5lYV9iaXNzYXUiLCJndXlhbmEiLCJoYWl0aSIsImhvbmR1cmFzIiwiaG9uZ19rb25nIiwiaHVuZ2FyeSIsImljZWxhbmQiLCJpbmRpYSIsImluZG9uZXNpYSIsImlyYW4iLCJpcmFxIiwiaXJlbGFuZCIsImlzbGVfb2ZfbWFuIiwiaXNyYWVsIiwiaXQiLCJjb3RlX2Rpdm9pcmUiLCJqYW1haWNhIiwianAiLCJqZXJzZXkiLCJqb3JkYW4iLCJrYXpha2hzdGFuIiwia2VueWEiLCJraXJpYmF0aSIsImtvc292byIsImt1d2FpdCIsImt5cmd5enN0YW4iLCJsYW9zIiwibGF0dmlhIiwibGViYW5vbiIsImxlc290aG8iLCJsaWJlcmlhIiwibGlieWEiLCJsaWVjaHRlbnN0ZWluIiwibGl0aHVhbmlhIiwibHV4ZW1ib3VyZyIsIm1hY2F1IiwibWFjZWRvbmlhIiwibWFkYWdhc2NhciIsIm1hbGF3aSIsIm1hbGF5c2lhIiwibWFsZGl2ZXMiLCJtYWxpIiwibWFsdGEiLCJtYXJzaGFsbF9pc2xhbmRzIiwibWFydGluaXF1ZSIsIm1hdXJpdGFuaWEiLCJtYXVyaXRpdXMiLCJtYXlvdHRlIiwibWV4aWNvIiwibWljcm9uZXNpYSIsIm1vbGRvdmEiLCJtb25hY28iLCJtb25nb2xpYSIsIm1vbnRlbmVncm8iLCJtb250c2VycmF0IiwibW9yb2NjbyIsIm1vemFtYmlxdWUiLCJteWFubWFyIiwibmFtaWJpYSIsIm5hdXJ1IiwibmVwYWwiLCJuZXRoZXJsYW5kcyIsIm5ld19jYWxlZG9uaWEiLCJuZXdfemVhbGFuZCIsIm5pY2FyYWd1YSIsIm5pZ2VyIiwibmlnZXJpYSIsIm5pdWUiLCJub3Jmb2xrX2lzbGFuZCIsIm5vcnRoZXJuX21hcmlhbmFfaXNsYW5kcyIsIm5vcnRoX2tvcmVhIiwibm9yd2F5Iiwib21hbiIsInBha2lzdGFuIiwicGFsYXUiLCJwYWxlc3Rpbmlhbl90ZXJyaXRvcmllcyIsInBhbmFtYSIsInBhcHVhX25ld19ndWluZWEiLCJwYXJhZ3VheSIsInBlcnUiLCJwaGlsaXBwaW5lcyIsInBpdGNhaXJuX2lzbGFuZHMiLCJwb2xhbmQiLCJwb3J0dWdhbCIsInB1ZXJ0b19yaWNvIiwicWF0YXIiLCJyZXVuaW9uIiwicm9tYW5pYSIsInJ1IiwicndhbmRhIiwic3RfYmFydGhlbGVteSIsInN0X2hlbGVuYSIsInN0X2tpdHRzX25ldmlzIiwic3RfbHVjaWEiLCJzdF9waWVycmVfbWlxdWVsb24iLCJzdF92aW5jZW50X2dyZW5hZGluZXMiLCJzYW1vYSIsInNhbl9tYXJpbm8iLCJzYW9fdG9tZV9wcmluY2lwZSIsInNhdWRpX2FyYWJpYSIsInNlbmVnYWwiLCJzZXJiaWEiLCJzZXljaGVsbGVzIiwic2llcnJhX2xlb25lIiwic2luZ2Fwb3JlIiwic2ludF9tYWFydGVuIiwic2xvdmFraWEiLCJzbG92ZW5pYSIsInNvbG9tb25faXNsYW5kcyIsInNvbWFsaWEiLCJzb3V0aF9hZnJpY2EiLCJzb3V0aF9nZW9yZ2lhX3NvdXRoX3NhbmR3aWNoX2lzbGFuZHMiLCJrciIsInNvdXRoX3N1ZGFuIiwiZXMiLCJzcmlfbGFua2EiLCJzdWRhbiIsInN1cmluYW1lIiwic3dhemlsYW5kIiwic3dlZGVuIiwic3dpdHplcmxhbmQiLCJzeXJpYSIsInRhaXdhbiIsInRhamlraXN0YW4iLCJ0YW56YW5pYSIsInRoYWlsYW5kIiwidGltb3JfbGVzdGUiLCJ0b2dvIiwidG9rZWxhdSIsInRvbmdhIiwidHJpbmlkYWRfdG9iYWdvIiwidHVuaXNpYSIsInRyIiwidHVya21lbmlzdGFuIiwidHVya3NfY2FpY29zX2lzbGFuZHMiLCJ0dXZhbHUiLCJ1Z2FuZGEiLCJ1a3JhaW5lIiwidW5pdGVkX2FyYWJfZW1pcmF0ZXMiLCJ1ayIsInVzIiwidXNfdmlyZ2luX2lzbGFuZHMiLCJ1cnVndWF5IiwidXpiZWtpc3RhbiIsInZhbnVhdHUiLCJ2YXRpY2FuX2NpdHkiLCJ2ZW5lenVlbGEiLCJ2aWV0bmFtIiwid2FsbGlzX2Z1dHVuYSIsIndlc3Rlcm5fc2FoYXJhIiwieWVtZW4iLCJ6YW1iaWEiLCJ6aW1iYWJ3ZSIsInN0YXJfc3RydWNrIiwiZmFjZV93aXRoX3JhaXNlZF9leWVicm93IiwiZXhwbG9kaW5nX2hlYWQiLCJjcmF6eV9mYWNlIiwiZmFjZV93aXRoX3N5bWJvbHNfb3Zlcl9tb3V0aCIsImZhY2Vfdm9taXRpbmciLCJzaHVzaGluZ19mYWNlIiwiZmFjZV93aXRoX2hhbmRfb3Zlcl9tb3V0aCIsImZhY2Vfd2l0aF9tb25vY2xlIiwiY2hpbGQiLCJhZHVsdCIsIm9sZGVyX2FkdWx0Iiwid29tYW5fd2l0aF9oZWFkc2NhcmYiLCJiZWFyZGVkX3BlcnNvbiIsImJyZWFzdF9mZWVkaW5nIiwibWFnZSIsIndvbWFuX21hZ2UiLCJmYWlyeSIsInZhbXBpcmUiLCJtZXJtYWlkIiwibWVybWFuIiwiZWxmIiwiZ2VuaWUiLCJ3b21hbl9nZW5pZSIsInpvbWJpZSIsIndvbWFuX3pvbWJpZSIsInBlcnNvbl9pbl9zdGVhbXlfcm9vbSIsIndvbWFuX2luX3N0ZWFteV9yb29tIiwicGVyc29uX2NsaW1iaW5nIiwid29tYW5fY2xpbWJpbmciLCJwZXJzb25faW5fbG90dXNfcG9zaXRpb24iLCJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiIsImxvdmVfeW91X2dlc3R1cmUiLCJwYWxtc191cF90b2dldGhlciIsImJyYWluIiwib3JhbmdlX2hlYXJ0Iiwic2NhcmYiLCJnbG92ZXMiLCJjb2F0Iiwic29ja3MiLCJiaWxsZWRfY2FwIiwiemVicmEiLCJnaXJhZmZlIiwiaGVkZ2Vob2ciLCJzYXVyb3BvZCIsInRfcmV4IiwiY3JpY2tldCIsImNvY29udXQiLCJicm9jY29saSIsInByZXR6ZWwiLCJjdXRfb2ZfbWVhdCIsInNhbmR3aWNoIiwiYm93bF93aXRoX3Nwb29uIiwiY2FubmVkX2Zvb2QiLCJkdW1wbGluZyIsImZvcnR1bmVfY29va2llIiwidGFrZW91dF9ib3giLCJwaWUiLCJjdXBfd2l0aF9zdHJhdyIsImNob3BzdGlja3MiLCJmbHlpbmdfc2F1Y2VyIiwic2xlZCIsImN1cmxpbmdfc3RvbmUiLCJzdmFsYmFyZF9hbmRfamFuX21heWVuIiwic3RfbWFydGluIiwidXNfb3V0bHlpbmdfaXNsYW5kcyIsInRyaXN0YW5fZGFfY3VuaGEiLCJoZWFyZF9hbmRfbWNfZG9uYWxkX2lzbGFuZHMiLCJjZXV0YV9hbmRfbWVsaWxsYSIsImRpZWdvX2dhcmNpYSIsImFzY2Vuc2lvbl9pc2xhbmQiLCJib3V2ZXRfaXNsYW5kIiwiY2xpcHBlcnRvbl9pc2xhbmQiLCJ1bml0ZWRfbmF0aW9ucyIsInNtaWxpbmdfZmFjZV93aXRoX3RocmVlX2hlYXJ0cyIsImhvdF9mYWNlIiwiY29sZF9mYWNlIiwicGFydHlpbmdfZmFjZSIsIndvb3p5X2ZhY2UiLCJwbGVhZGluZ19mYWNlIiwibWFuX3JlZF9oYWlyZWQiLCJtYW5fY3VybHlfaGFpcmVkIiwibWFuX3doaXRlX2hhaXJlZCIsIm1hbl9iYWxkIiwid29tYW5fcmVkX2hhaXJlZCIsIndvbWFuX2N1cmx5X2hhaXJlZCIsIndvbWFuX3doaXRlX2hhaXJlZCIsIndvbWFuX2JhbGQiLCJzdXBlcmhlcm8iLCJtYW5fc3VwZXJoZXJvIiwid29tYW5fc3VwZXJoZXJvIiwic3VwZXJ2aWxsYWluIiwid29tYW5fc3VwZXJ2aWxsYWluIiwibWFuX3N1cGVydmlsbGFpbiIsImxlZyIsImZvb3QiLCJib25lIiwidG9vdGgiLCJnb2dnbGVzIiwibGFiX2NvYXQiLCJoaWtpbmdfYm9vdCIsImZsYXRfc2hvZSIsInJhY2Nvb24iLCJsbGFtYSIsImhpcHBvcG90YW11cyIsImthbmdhcm9vIiwiYmFkZ2VyIiwic3dhbiIsInBlYWNvY2siLCJwYXJyb3QiLCJsb2JzdGVyIiwibW9zcXVpdG8iLCJtaWNyb2JlIiwibWFuZ28iLCJsZWFmeV9ncmVlbiIsImJhZ2VsIiwic2FsdCIsIm1vb25fY2FrZSIsImN1cGNha2UiLCJjb21wYXNzIiwiYnJpY2siLCJza2F0ZWJvYXJkIiwibHVnZ2FnZSIsImZpcmVjcmFja2VyIiwicmVkX2dpZnRfZW52ZWxvcGUiLCJzb2Z0YmFsbCIsImZseWluZ19kaXNjIiwibGFjcm9zc2UiLCJuYXphcl9hbXVsZXQiLCJqaWdzYXciLCJ0ZWRkeV9iZWFyIiwiY2hlc3NfcGF3biIsInRocmVhZCIsInlhcm4iLCJhYmFjdXMiLCJyZWNlaXB0IiwidG9vbGJveCIsIm1hZ25ldCIsInRlc3RfdHViZSIsInBldHJpX2Rpc2giLCJkbmEiLCJsb3Rpb25fYm90dGxlIiwic2FmZXR5X3BpbiIsImJyb29tIiwiYmFza2V0Iiwicm9sbF9vZl90b2lsZXRfcGFwZXIiLCJzb2FwIiwic3BvbmdlIiwiZmlyZV9leHRpbmd1aXNoZXIiLCJpbmZpbml0eSIsInBpcmF0ZV9mbGFnIiwid2FmZmxlIiwib3R0ZXIiLCJzbG90aCIsImljZV9jdWJlIiwicmluZ2VyX3BsYW5ldCIsImZsYW1pbmdvIiwieWF3bmluZ19mYWNlIiwicGluY2hpbmdfaGFuZCIsInNlcnZpY2VfZG9nIiwib3Jhbmd1dGFuIiwiYXV0b19yaWNrc2hhdyIsInBhcmFjaHV0ZSIsInlvLXlvIiwia2l0ZSIsImJyb3duX3NxdWFyZSIsInB1cnBsZV9zcXVhcmUiLCJibHVlX3NxdWFyZSIsImdyZWVuX3NxdWFyZSIsInllbGxvd19zcXVhcmUiLCJvcmFuZ2Vfc3F1YXJlIiwicmVkX3NxdWFyZSIsImJyb3duX2NpcmNsZSIsInB1cnBsZV9jaXJjbGUiLCJncmVlbl9jaXJjbGUiLCJ5ZWxsb3dfY2lyY2xlIiwib3JhbmdlX2NpcmNsZSIsInJhem9yIiwiY2hhaXIiLCJzdGV0aG9zY29wZSIsImFkaGVzaXZlX2JhbmRhZ2UiLCJkcm9wX29mX2Jsb29kIiwicHJvYmluZ19jYW5lIiwiYXhlIiwiZGl5YV9sYW1wIiwiYmFuam8iLCJiYWxsZXRfc2hvZXMiLCJzaG9ydHMiLCJicmllZnMiLCJvbmVfcGllY2Vfc3dpbXN1aXQiLCJzYXJpIiwic2FmZXR5X3Zlc3QiLCJkaXZpbmdfbWFzayIsIm1vdG9yaXplZF93aGVlbGNoYWlyIiwibWFudWFsX3doZWVsY2hhaXIiLCJoaW5kdV90ZW1wbGUiLCJtYXTDqSIsImJldmVyYWdlX2JveCIsIm95c3RlciIsImJ1dHRlciIsImZhbGFmZWwiLCJvbmlvbiIsImdhcmxpYyIsInNrdW5rIiwiZ3VpZGVfZG9nIiwicGVvcGxlX2hvbGRpbmdfaGFuZHMiLCJ3b21hbl9pbl9tYW51YWxfd2hlZWxjaGFpciIsIm1hbl9pbl9tYW51YWxfd2hlZWxjaGFpciIsIndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwibWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwid29tYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCJ3b21hbl9rbmVlbGluZyIsIm1hbl9rbmVlbGluZyIsIm1hbl9zdGFuZGluZyIsIndvbWFuX3N0YW5kaW5nIiwiZGVhZl93b21hbiIsImRlYWZfbWFuIiwiaGVhcl93aXRoX2hlYXJpbmdfYWlkIiwibWVjaGFuaWNhbF9sZWciLCJtZWNoYW5pY2FsX2FybSIsIndoaXRlX2hlYXJ0IiwiYnJvd25faGVhcnQiLCJ0cmFuc2dlbmRlcl9mbGFnIl0sZS50b25hYmxlRW1vamlzPVsicmFpc2VkX2hhbmRzIiwiY2xhcCIsIndhdmUiLCJjYWxsX21lX2hhbmQiLCIrMSIsIi0xIiwiZmFjZXB1bmNoIiwiZmlzdCIsImZpc3RfbGVmdCIsImZpc3RfcmlnaHQiLCJ2Iiwib2tfaGFuZCIsInJhaXNlZF9oYW5kIiwicmFpc2VkX2JhY2tfb2ZfaGFuZCIsIm9wZW5faGFuZHMiLCJtdXNjbGUiLCJwcmF5IiwicG9pbnRfdXAiLCJwb2ludF91cF8yIiwicG9pbnRfZG93biIsInBvaW50X2xlZnQiLCJwb2ludF9yaWdodCIsImZ1IiwicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQiLCJtZXRhbCIsImNyb3NzZWRfZmluZ2VycyIsInZ1bGNhbl9zYWx1dGUiLCJ3cml0aW5nX2hhbmQiLCJzZWxmaWUiLCJuYWlsX2NhcmUiLCJlYXIiLCJub3NlIiwiYmFieSIsImJveSIsImdpcmwiLCJtYW4iLCJ3b21hbiIsImJsb25kZV93b21hbiIsImJsb25kZV9tYW4iLCJvbGRlcl9tYW4iLCJvbGRlcl93b21hbiIsIm1hbl93aXRoX2d1YV9waV9tYW8iLCJ3b21hbl93aXRoX3R1cmJhbiIsIm1hbl93aXRoX3R1cmJhbiIsInBvbGljZXdvbWFuIiwicG9saWNlbWFuIiwiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbiIsImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuIiwiZ3VhcmRzd29tYW4iLCJndWFyZHNtYW4iLCJtYWxlX2RldGVjdGl2ZSIsIndvbWFuX2hlYWx0aF93b3JrZXIiLCJtYW5faGVhbHRoX3dvcmtlciIsIndvbWFuX2Zhcm1lciIsIm1hbl9mYXJtZXIiLCJ3b21hbl9jb29rIiwibWFuX2Nvb2siLCJ3b21hbl9zdHVkZW50IiwibWFuX3N0dWRlbnQiLCJ3b21hbl9zaW5nZXIiLCJtYW5fc2luZ2VyIiwid29tYW5fdGVhY2hlciIsIm1hbl90ZWFjaGVyIiwid29tYW5fZmFjdG9yeV93b3JrZXIiLCJtYW5fZmFjdG9yeV93b3JrZXIiLCJ3b21hbl90ZWNobm9sb2dpc3QiLCJtYW5fdGVjaG5vbG9naXN0Iiwid29tYW5fb2ZmaWNlX3dvcmtlciIsIm1hbl9vZmZpY2Vfd29ya2VyIiwid29tYW5fbWVjaGFuaWMiLCJtYW5fbWVjaGFuaWMiLCJ3b21hbl9zY2llbnRpc3QiLCJtYW5fc2NpZW50aXN0Iiwid29tYW5fYXJ0aXN0IiwibWFuX2FydGlzdCIsIndvbWFuX2ZpcmVmaWdodGVyIiwibWFuX2ZpcmVmaWdodGVyIiwid29tYW5fcGlsb3QiLCJtYW5fcGlsb3QiLCJ3b21hbl9hc3Ryb25hdXQiLCJtYW5fYXN0cm9uYXV0Iiwid29tYW5fanVkZ2UiLCJtYW5fanVkZ2UiLCJtcnNfY2xhdXMiLCJzYW50YSIsImFuZ2VsIiwicHJlZ25hbnRfd29tYW4iLCJwcmluY2VzcyIsInByaW5jZSIsImJyaWRlX3dpdGhfdmVpbCIsIm1hbl9pbl90dXhlZG8iLCJydW5uaW5nX3dvbWFuIiwicnVubmluZ19tYW4iLCJ3YWxraW5nX3dvbWFuIiwid2Fsa2luZ19tYW4iLCJkYW5jZXIiLCJtYW5fZGFuY2luZyIsImJvd2luZ193b21hbiIsImJvd2luZ19tYW4iLCJtYW5fZmFjZXBhbG1pbmciLCJ3b21hbl9mYWNlcGFsbWluZyIsIndvbWFuX3NocnVnZ2luZyIsIm1hbl9zaHJ1Z2dpbmciLCJ0aXBwaW5nX2hhbmRfd29tYW4iLCJ0aXBwaW5nX2hhbmRfbWFuIiwibm9fZ29vZF93b21hbiIsIm5vX2dvb2RfbWFuIiwib2tfd29tYW4iLCJva19tYW4iLCJyYWlzaW5nX2hhbmRfd29tYW4iLCJyYWlzaW5nX2hhbmRfbWFuIiwicG91dGluZ193b21hbiIsInBvdXRpbmdfbWFuIiwiZnJvd25pbmdfd29tYW4iLCJmcm93bmluZ19tYW4iLCJoYWlyY3V0X3dvbWFuIiwiaGFpcmN1dF9tYW4iLCJtYXNzYWdlX3dvbWFuIiwibWFzc2FnZV9tYW4iLCJnb2xmaW5nX21hbiIsInNub3dib2FyZGVyIiwid29tYW5fY2FydHdoZWVsaW5nIiwibWFuX2NhcnR3aGVlbGluZyIsIndvbWFuX3BsYXlpbmdfaGFuZGJhbGwiLCJtYW5fcGxheWluZ19oYW5kYmFsbCIsInJvd2luZ193b21hbiIsInJvd2luZ19tYW4iLCJzd2ltbWluZ193b21hbiIsInN3aW1taW5nX21hbiIsIndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyIsIm1hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCJzdXJmaW5nX3dvbWFuIiwic3VyZmluZ19tYW4iLCJiYXRoIiwiYmFza2V0YmFsbF9tYW4iLCJ3ZWlnaHRfbGlmdGluZ19tYW4iLCJiaWtpbmdfd29tYW4iLCJiaWtpbmdfbWFuIiwibW91bnRhaW5fYmlraW5nX3dvbWFuIiwibW91bnRhaW5fYmlraW5nX21hbiIsImhvcnNlX3JhY2luZyIsImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZyIsIndvbWFuX2p1Z2dsaW5nIiwibWFuX2p1Z2dsaW5nIiwic2xlZXBpbmdfYmVkIiwiY2hpbGQiLCJhZHVsdCIsIm9sZGVyX2FkdWx0Iiwid29tYW5fd2l0aF9oZWFkc2NhcmYiLCJiZWFyZGVkX3BlcnNvbiIsImJyZWFzdF9mZWVkaW5nIiwibWFnZSIsIndvbWFuX21hZ2UiLCJmYWlyeSIsInZhbXBpcmUiLCJtZXJtYWlkIiwibWVybWFuIiwiZWxmIiwicGVyc29uX2luX3N0ZWFteV9yb29tIiwid29tYW5faW5fc3RlYW15X3Jvb20iLCJwZXJzb25fY2xpbWJpbmciLCJ3b21hbl9jbGltYmluZyIsInBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbiIsIndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uIiwibG92ZV95b3VfZ2VzdHVyZSIsInBhbG1zX3VwX3RvZ2V0aGVyIl0sZS5hbGlhc2VzPXtyaWdodF9hbmdlcl9idWJibGU6WyJhbmdlcl9yaWdodCJdLGJhbGxvdF9ib3g6WyJiYWxsb3RfYm94X3dpdGhfYmFsbG90Il0sYmFza2V0YmFsbF9tYW46WyJiYXNrZXRiYWxsX3BsYXllciIsInBlcnNvbl93aXRoX2JhbGwiXSxiZWFjaF91bWJyZWxsYTpbInVtYnJlbGxhX29uX2dyb3VuZCIsImJlYWNoIiwiYmVhY2hfd2l0aF91bWJyZWxsYSJdLHBhcmFzb2xfb25fZ3JvdW5kOlsidW1icmVsbGFfb25fZ3JvdW5kIl0sYmVsbGhvcF9iZWxsOlsiYmVsbGhvcCJdLGJpb2hhemFyZDpbImJpb2hhemFyZF9zaWduIl0sYm93X2FuZF9hcnJvdzpbImFyY2hlcnkiXSxzcGlyYWxfY2FsZW5kYXI6WyJjYWxlbmRhcl9zcGlyYWwiLCJzcGlyYWxfY2FsZW5kYXJfcGFkIl0sY2FyZF9maWxlX2JveDpbImNhcmRfYm94Il0sY2hhbXBhZ25lOlsiYm90dGxlX3dpdGhfcG9wcGluZ19jb3JrIl0sY2hlZXNlOlsiY2hlZXNlX3dlZGdlIl0sY2l0eV9zdW5zZXQ6WyJjaXR5X2R1c2siXSxjb3VjaF9hbmRfbGFtcDpbImNvdWNoIl0sY3JheW9uOlsibG93ZXJfbGVmdF9jcmF5b24iXSxjcmlja2V0X2JhdF9hbmRfYmFsbDpbImNyaWNrZXRfYmF0X2JhbGwiXSxsYXRpbl9jcm9zczpbImNyb3NzIl0sZGFnZ2VyOlsiZGFnZ2VyX2tuaWZlIl0sZGVza3RvcF9jb21wdXRlcjpbImRlc2t0b3AiXSxjYXJkX2luZGV4X2RpdmlkZXJzOlsiZGl2aWRlcnMiXSxkb3ZlOlsiZG92ZV9vZl9wZWFjZSJdLGZvb3RwcmludHM6WyJmZWV0Il0sZmlyZTpbImZsYW1lIl0sYmxhY2tfZmxhZzpbImZsYWdfYmxhY2siLCJ3YXZpbmdfYmxhY2tfZmxhZyJdLGNuOlsiZmxhZ19jbiJdLGRlOlsiZmxhZ19kZSJdLGVzOlsiZmxhZ19lcyJdLGZyOlsiZmxhZ19mciJdLHVrOlsiZ2IiLCJmbGFnX2diIl0saXQ6WyJmbGFnX2l0Il0sanA6WyJmbGFnX2pwIl0sa3I6WyJmbGFnX2tyIl0scnU6WyJmbGFnX3J1Il0sdXM6WyJmbGFnX3VzIl0sd2hpdGVfZmxhZzpbImZsYWdfd2hpdGUiLCJ3YXZpbmdfd2hpdGVfZmxhZyJdLHBsYXRlX3dpdGhfY3V0bGVyeTpbImZvcmtfa25pZmVfcGxhdGUiLCJmb3JrX2FuZF9rbmlmZV93aXRoX3BsYXRlIl0sZnJhbWVkX3BpY3R1cmU6WyJmcmFtZV9waG90byIsImZyYW1lX3dpdGhfcGljdHVyZSJdLGhhbW1lcl9hbmRfcGljazpbImhhbW1lcl9waWNrIl0saGVhdnlfaGVhcnRfZXhjbGFtYXRpb246WyJoZWFydF9leGNsYW1hdGlvbiIsImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uX21hcmtfb3JuYW1lbnQiXSxob3VzZXM6WyJob21lcyIsImhvdXNlX2J1aWxkaW5ncyJdLGhvdGRvZzpbImhvdF9kb2ciXSxkZXJlbGljdF9ob3VzZTpbImhvdXNlX2FiYW5kb25lZCIsImRlcmVsaWN0X2hvdXNlX2J1aWxkaW5nIl0sZGVzZXJ0X2lzbGFuZDpbImlzbGFuZCJdLG9sZF9rZXk6WyJrZXkyIl0sbGF1Z2hpbmc6WyJzYXRpc2ZpZWQiXSxidXNpbmVzc19zdWl0X2xldml0YXRpbmc6WyJsZXZpdGF0ZSIsIm1hbl9pbl9idXNpbmVzc19zdWl0X2xldml0YXRpbmciXSx3ZWlnaHRfbGlmdGluZ19tYW46WyJsaWZ0ZXIiLCJ3ZWlnaHRfbGlmdGVyIl0sbWVkYWxfc3BvcnRzOlsibWVkYWwiLCJzcG9ydHNfbWVkYWwiXSxtZXRhbDpbInNpZ25fb2ZfdGhlX2hvcm5zIl0sZnU6WyJtaWRkbGVfZmluZ2VyIiwicmV2ZXJzZWRfaGFuZF93aXRoX21pZGRsZV9maW5nZXJfZXh0ZW5kZWQiXSxtb3RvcmN5Y2xlOlsicmFjaW5nX21vdG9yY3ljbGUiXSxtb3VudGFpbl9zbm93Olsic25vd19jYXBwZWRfbW91bnRhaW4iXSxuZXdzcGFwZXJfcm9sbDpbIm5ld3NwYXBlcjIiLCJyb2xsZWRfdXBfbmV3c3BhcGVyIl0sc3BpcmFsX25vdGVwYWQ6WyJub3RlcGFkX3NwaXJhbCIsInNwaXJhbF9ub3RlX3BhZCJdLG9pbF9kcnVtOlsib2lsIl0sb2xkZXJfd29tYW46WyJncmFuZG1hIl0scGFpbnRicnVzaDpbImxvd2VyX2xlZnRfcGFpbnRicnVzaCJdLHBhcGVyY2xpcHM6WyJsaW5rZWRfcGFwZXJjbGlwcyJdLHBhdXNlX2J1dHRvbjpbImRvdWJsZV92ZXJ0aWNhbF9iYXIiXSxwZWFjZV9zeW1ib2w6WyJwZWFjZSJdLGZvdW50YWluX3BlbjpbInBlbl9mb3VudGFpbiIsImxvd2VyX2xlZnRfZm91bnRhaW5fcGVuIl0scGluZ19wb25nOlsidGFibGVfdGVubmlzIl0scGxhY2Vfb2Zfd29yc2hpcDpbIndvcnNoaXBfc3ltYm9sIl0scG9vcDpbInNoaXQiLCJoYW5rZXkiLCJwb28iXSxyYWRpb2FjdGl2ZTpbInJhZGlvYWN0aXZlX3NpZ24iXSxyYWlsd2F5X3RyYWNrOlsicmFpbHJvYWRfdHJhY2siXSxyb2JvdDpbInJvYm90X2ZhY2UiXSxza3VsbDpbInNrZWxldG9uIl0sc2t1bGxfYW5kX2Nyb3NzYm9uZXM6WyJza3VsbF9jcm9zc2JvbmVzIl0sc3BlYWtpbmdfaGVhZDpbInNwZWFraW5nX2hlYWRfaW5fc2lsaG91ZXR0ZSJdLG1hbGVfZGV0ZWN0aXZlOlsic3B5Iiwic2xldXRoX29yX3NweSJdLHRoaW5raW5nOlsidGhpbmtpbmdfZmFjZSJdLCItMSI6WyJ0aHVtYnNkb3duIl0sIisxIjpbInRodW1ic3VwIl0sY2xvdWRfd2l0aF9saWdodG5pbmdfYW5kX3JhaW46WyJ0aHVuZGVyX2Nsb3VkX3JhaW4iLCJ0aHVuZGVyX2Nsb3VkX2FuZF9yYWluIl0sdGlja2V0czpbImFkbWlzc2lvbl90aWNrZXRzIl0sbmV4dF90cmFja19idXR0b246WyJ0cmFja19uZXh0IiwibmV4dF90cmFjayJdLHByZXZpb3VzX3RyYWNrX2J1dHRvbjpbInRyYWNrX3ByZXZpb3VzIiwicHJldmlvdXNfdHJhY2siXSx1bmljb3JuOlsidW5pY29ybl9mYWNlIl0sZnVuZXJhbF91cm46WyJ1cm4iXSxzdW5fYmVoaW5kX2xhcmdlX2Nsb3VkOlsid2hpdGVfc3VuX2Nsb3VkIiwid2hpdGVfc3VuX2JlaGluZF9jbG91ZCJdLHN1bl9iZWhpbmRfcmFpbl9jbG91ZDpbIndoaXRlX3N1bl9yYWluX2Nsb3VkIiwid2hpdGVfc3VuX2JlaGluZF9jbG91ZF93aXRoX3JhaW4iXSxwYXJ0bHlfc3Vubnk6WyJ3aGl0ZV9zdW5fc21hbGxfY2xvdWQiLCJ3aGl0ZV9zdW5fd2l0aF9zbWFsbF9jbG91ZCJdLG9wZW5fdW1icmVsbGE6WyJ1bWJyZWxsYTIiXSxoYW1tZXJfYW5kX3dyZW5jaDpbInRvb2xzIl0sZmFjZV93aXRoX3RoZXJtb21ldGVyOlsidGhlcm1vbWV0ZXJfZmFjZSJdLHRpbWVyX2Nsb2NrOlsidGltZXIiXSxrZXljYXBfdGVuOlsidGVuIl0sbWVtbzpbInBlbmNpbCJdLHJlc2N1ZV93b3JrZXJfaGVsbWV0OlsiaGVsbWV0X3dpdGhfY3Jvc3MiLCJoZWxtZXRfd2l0aF93aGl0ZV9jcm9zcyJdLHNsaWdodGx5X3NtaWxpbmdfZmFjZTpbInNsaWdodGx5X3NtaWxpbmciLCJzbGlnaHRfc21pbGUiXSxjb25zdHJ1Y3Rpb25fd29ya2VyX21hbjpbImNvbnN0cnVjdGlvbl93b3JrZXIiXSx1cHNpZGVfZG93bl9mYWNlOlsidXBzaWRlX2Rvd24iXSxtb25leV9tb3V0aF9mYWNlOlsibW9uZXlfbW91dGgiXSxuZXJkX2ZhY2U6WyJuZXJkIl0saHVnczpbImh1Z2dpbmciLCJodWdnaW5nX2ZhY2UiXSxyb2xsX2V5ZXM6WyJyb2xsaW5nX2V5ZXMiLCJmYWNlX3dpdGhfcm9sbGluZ19leWVzIl0sc2xpZ2h0bHlfZnJvd25pbmdfZmFjZTpbInNsaWdodF9mcm93biJdLGZyb3duaW5nX2ZhY2U6WyJmcm93bmluZzIiLCJ3aGl0ZV9mcm93bmluZ19mYWNlIl0semlwcGVyX21vdXRoX2ZhY2U6WyJ6aXBwZXJfbW91dGgiXSxmYWNlX3dpdGhfaGVhZF9iYW5kYWdlOlsiaGVhZF9iYW5kYWdlIl0scmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQ6WyJoYW5kX3NwbGF5ZWQiXSxyYWlzZWRfaGFuZDpbImhhbmQiXSx2dWxjYW5fc2FsdXRlOlsidnVsY2FuIiwicmFpc2VkX2hhbmRfd2l0aF9wYXJ0X2JldHdlZW5fbWlkZGxlX2FuZF9yaW5nX2ZpbmdlcnMiXSxwb2xpY2VtYW46WyJjb3AiXSxydW5uaW5nX21hbjpbInJ1bm5lciJdLHdhbGtpbmdfbWFuOlsid2Fsa2luZyJdLGJvd2luZ19tYW46WyJib3ciXSxub19nb29kX3dvbWFuOlsibm9fZ29vZCJdLHJhaXNpbmdfaGFuZF93b21hbjpbInJhaXNpbmdfaGFuZCJdLHBvdXRpbmdfd29tYW46WyJwZXJzb25fd2l0aF9wb3V0aW5nX2ZhY2UiXSxmcm93bmluZ193b21hbjpbInBlcnNvbl9mcm93bmluZyJdLGhhaXJjdXRfd29tYW46WyJoYWlyY3V0Il0sbWFzc2FnZV93b21hbjpbIm1hc3NhZ2UiXSx0c2hpcnQ6WyJzaGlydCJdLGJpa2luZ19tYW46WyJiaWN5Y2xpc3QiXSxtb3VudGFpbl9iaWtpbmdfbWFuOlsibW91bnRhaW5fYmljeWNsaXN0Il0scGFzc2VuZ2VyX3NoaXA6WyJjcnVpc2Vfc2hpcCJdLG1vdG9yX2JvYXQ6WyJtb3RvcmJvYXQiLCJib2F0Il0sZmxpZ2h0X2Fycml2YWw6WyJhaXJwbGFuZV9hcnJpdmluZyJdLGZsaWdodF9kZXBhcnR1cmU6WyJhaXJwbGFuZV9kZXBhcnR1cmUiXSxzbWFsbF9haXJwbGFuZTpbImFpcnBsYW5lX3NtYWxsIl0scmFjaW5nX2NhcjpbInJhY2VfY2FyIl0sZmFtaWx5X21hbl93b21hbl9ib3lfYm95OlsiZmFtaWx5X21hbl93b21hbl9ib3lzIl0sZmFtaWx5X21hbl93b21hbl9naXJsX2dpcmw6WyJmYW1pbHlfbWFuX3dvbWFuX2dpcmxzIl0sZmFtaWx5X3dvbWFuX3dvbWFuX2JveTpbImZhbWlseV93b21lbl9ib3kiXSxmYW1pbHlfd29tYW5fd29tYW5fZ2lybDpbImZhbWlseV93b21lbl9naXJsIl0sZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95OlsiZmFtaWx5X3dvbWVuX2dpcmxfYm95Il0sZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3k6WyJmYW1pbHlfd29tZW5fYm95cyJdLGZhbWlseV93b21hbl93b21hbl9naXJsX2dpcmw6WyJmYW1pbHlfd29tZW5fZ2lybHMiXSxmYW1pbHlfbWFuX21hbl9ib3k6WyJmYW1pbHlfbWVuX2JveSJdLGZhbWlseV9tYW5fbWFuX2dpcmw6WyJmYW1pbHlfbWVuX2dpcmwiXSxmYW1pbHlfbWFuX21hbl9naXJsX2JveTpbImZhbWlseV9tZW5fZ2lybF9ib3kiXSxmYW1pbHlfbWFuX21hbl9ib3lfYm95OlsiZmFtaWx5X21lbl9ib3lzIl0sZmFtaWx5X21hbl9tYW5fZ2lybF9naXJsOlsiZmFtaWx5X21lbl9naXJscyJdLGNsb3VkX3dpdGhfbGlnaHRuaW5nOlsiY2xvdWRfbGlnaHRuaW5nIl0sdG9ybmFkbzpbImNsb3VkX3Rvcm5hZG8iLCJjbG91ZF93aXRoX3Rvcm5hZG8iXSxjbG91ZF93aXRoX3JhaW46WyJjbG91ZF9yYWluIl0sY2xvdWRfd2l0aF9zbm93OlsiY2xvdWRfc25vdyJdLGFzdGVyaXNrOlsia2V5Y2FwX3N0YXIiXSxzdHVkaW9fbWljcm9waG9uZTpbIm1pY3JvcGhvbmUyIl0sbWVkYWxfbWlsaXRhcnk6WyJtaWxpdGFyeV9tZWRhbCJdLGNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuOlsiZmVtYWxlX2NvdXBsZV93aXRoX2hlYXJ0Il0sY291cGxlX3dpdGhfaGVhcnRfbWFuX21hbjpbIm1hbGVfY291cGxlX3dpdGhfaGVhcnQiXSxjb3VwbGVraXNzX3dvbWFuX3dvbWFuOlsiZmVtYWxlX2NvdXBsZWtpc3MiXSxjb3VwbGVraXNzX21hbl9tYW46WyJtYWxlX2NvdXBsZWtpc3MiXSxob25leWJlZTpbImJlZSJdLGxpb246WyJsaW9uX2ZhY2UiXSxhcnRpZmljaWFsX3NhdGVsbGl0ZTpbInNhdGVsbGl0ZV9vcmJpdGFsIl0sY29tcHV0ZXJfbW91c2U6WyJtb3VzZV90aHJlZV9idXR0b24iLCJ0aHJlZV9idXR0b25fbW91c2UiXSxob2NobzpbImtuaWZlIl0sc3dpbW1pbmdfbWFuOlsic3dpbW1lciJdLHdpbmRfZmFjZTpbIndpbmRfYmxvd2luZ19mYWNlIl0sZ29sZmluZ19tYW46WyJnb2xmZXIiXSxmYWNlcHVuY2g6WyJwdW5jaCJdLGJ1aWxkaW5nX2NvbnN0cnVjdGlvbjpbImNvbnN0cnVjdGlvbl9zaXRlIl0sZmFtaWx5X21hbl93b21hbl9naXJsX2JveTpbImZhbWlseSJdLGljZV9ob2NrZXk6WyJob2NrZXkiXSxzbm93bWFuX3dpdGhfc25vdzpbInNub3dtYW4yIl0scGxheV9vcl9wYXVzZV9idXR0b246WyJwbGF5X3BhdXNlIl0sZmlsbV9wcm9qZWN0b3I6WyJwcm9qZWN0b3IiXSxzaG9wcGluZzpbInNob3BwaW5nX2JhZ3MiXSxvcGVuX2Jvb2s6WyJib29rIl0sbmF0aW9uYWxfcGFyazpbInBhcmsiXSx3b3JsZF9tYXA6WyJtYXAiXSxwZW46WyJwZW5fYmFsbHBvaW50IiwibG93ZXJfbGVmdF9iYWxscG9pbnRfcGVuIl0sZW1haWw6WyJlbnZlbG9wZSIsImUtbWFpbCJdLHBob25lOlsidGVsZXBob25lIl0sYXRvbV9zeW1ib2w6WyJhdG9tIl0sbWFudGVscGllY2VfY2xvY2s6WyJjbG9jayJdLGNhbWVyYV9mbGFzaDpbImNhbWVyYV93aXRoX2ZsYXNoIl0sZmlsbV9zdHJpcDpbImZpbG1fZnJhbWVzIl0sYmFsYW5jZV9zY2FsZTpbInNjYWxlcyJdLHN1cmZpbmdfbWFuOlsic3VyZmVyIl0sY291cGxla2lzc19tYW5fd29tYW46WyJjb3VwbGVraXNzIl0sY291cGxlX3dpdGhfaGVhcnRfd29tYW5fbWFuOlsiY291cGxlX3dpdGhfaGVhcnQiXSxjbGFtcDpbImNvbXByZXNzaW9uIl0sZGFuY2luZ193b21lbjpbImRhbmNlcnMiXSxibG9uZGVfbWFuOlsicGVyc29uX3dpdGhfYmxvbmRfaGFpciJdLHNsZWVwaW5nX2JlZDpbInNsZWVwaW5nX2FjY29tbW9kYXRpb24iXSxvbTpbIm9tX3N5bWJvbCJdLHRpcHBpbmdfaGFuZF93b21hbjpbImluZm9ybWF0aW9uX2Rlc2tfcGVyc29uIl0scm93aW5nX21hbjpbInJvd2JvYXQiXSxuZXdfbW9vbjpbIm1vb24iXSxvbmNvbWluZ19hdXRvbW9iaWxlOlsiY2FyIiwiYXV0b21vYmlsZSJdLGZsZXVyX2RlX2xpczpbImZsZXVyLWRlLWxpcyJdLGZhY2Vfdm9taXRpbmc6WyJwdWtlIl19LGUuc2VhcmNoQWxpYXNlcz17c2FkOlsiZnJvd25pbmdfZmFjZSIsInNsaWdodGx5X2Zyb3duaW5nX2ZhY2UiLCJzb2IiLCJjcnlpbmdfY2F0X2ZhY2UiLCJjcnkiXSxjcnk6WyJzb2IiXX0sZS50cmFuc2xhdGlvbnM9eyI6KSI6InNsaWdodF9zbWlsZSIsIjotKSI6InNsaWdodF9zbWlsZSIsIl5fXiI6InNsaWdodF9zbWlsZSIsIl5fX14iOiJzbGlnaHRfc21pbGUiLCI6KCI6ImZyb3duaW5nIiwiOi0oIjoiZnJvd25pbmciLCI7KSI6IndpbmsiLCI7LSkiOiJ3aW5rIiwiOicoIjoiY3J5IiwiOictKCI6ImNyeSIsIjotJygiOiJjcnkiLCI6cCI6InN0dWNrX291dF90b25ndWUiLCI6UCI6InN0dWNrX291dF90b25ndWUiLCI6LVAiOiJzdHVja19vdXRfdG9uZ3VlIiwiOk8iOiJvcGVuX21vdXRoIiwiOi1PIjoib3Blbl9tb3V0aCIsIjpEIjoic21pbGV5IiwiOi1EIjoic21pbGV5IiwiOnwiOiJleHByZXNzaW9ubGVzcyIsIjotfCI6ImV4cHJlc3Npb25sZXNzIiwiOi8iOiJjb25mdXNlZCIsIjgtKSI6InN1bmdsYXNzZXMiLCI7UCI6InN0dWNrX291dF90b25ndWVfd2lua2luZ19leWUiLCI7LVAiOiJzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllIiwiOiQiOiJibHVzaCIsIjotJCI6ImJsdXNoIn0sZS5yZXBsYWNlbWVudHM9eyLwn5iAIjoiZ3Jpbm5pbmciLCLwn5isIjoiZ3JpbWFjaW5nIiwi8J+YgSI6ImdyaW4iLCLwn5iCIjoiam95Iiwi8J+koyI6InJvZmwiLCLwn5iDIjoic21pbGV5Iiwi8J+YhCI6InNtaWxlIiwi8J+YhSI6InN3ZWF0X3NtaWxlIiwi8J+YhiI6ImxhdWdoaW5nIiwi8J+YhyI6Imlubm9jZW50Iiwi8J+YiSI6IndpbmsiLCLwn5iKIjoiYmx1c2giLCLwn5mCIjoic2xpZ2h0bHlfc21pbGluZ19mYWNlIiwi8J+ZgyI6InVwc2lkZV9kb3duX2ZhY2UiLCLimLoiOiJzbGlnaHRfc21pbGUiLCLwn5iLIjoieXVtIiwi8J+YjCI6InJlbGlldmVkIiwi8J+YjSI6ImhlYXJ0X2V5ZXMiLCLwn5iYIjoia2lzc2luZ19oZWFydCIsIvCfmJciOiJraXNzaW5nIiwi8J+YmSI6Imtpc3Npbmdfc21pbGluZ19leWVzIiwi8J+YmiI6Imtpc3NpbmdfY2xvc2VkX2V5ZXMiLCLwn5icIjoic3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZSIsIvCfmJ0iOiJzdHVja19vdXRfdG9uZ3VlX2Nsb3NlZF9leWVzIiwi8J+YmyI6InN0dWNrX291dF90b25ndWUiLCLwn6SRIjoibW9uZXlfbW91dGhfZmFjZSIsIvCfpJMiOiJuZXJkX2ZhY2UiLCLwn5iOIjoic3VuZ2xhc3NlcyIsIvCfpKEiOiJjbG93bl9mYWNlIiwi8J+koCI6ImNvd2JveV9oYXRfZmFjZSIsIvCfpJciOiJodWdzIiwi8J+YjyI6InNtaXJrIiwi8J+YtiI6Im5vX21vdXRoIiwi8J+YkCI6Im5ldXRyYWxfZmFjZSIsIvCfmJEiOiJleHByZXNzaW9ubGVzcyIsIvCfmJIiOiJ1bmFtdXNlZCIsIvCfmYQiOiJyb2xsX2V5ZXMiLCLwn6SUIjoidGhpbmtpbmciLCLwn6SlIjoibHlpbmdfZmFjZSIsIvCfmLMiOiJmbHVzaGVkIiwi8J+YniI6ImRpc2FwcG9pbnRlZCIsIvCfmJ8iOiJ3b3JyaWVkIiwi8J+YoCI6ImFuZ3J5Iiwi8J+YoSI6InJhZ2UiLCLwn5iUIjoicGVuc2l2ZSIsIvCfmJUiOiJjb25mdXNlZCIsIvCfmYEiOiJzbGlnaHRseV9mcm93bmluZ19mYWNlIiwi4pi5IjoiZnJvd25pbmciLCLwn5ijIjoicGVyc2V2ZXJlIiwi8J+YliI6ImNvbmZvdW5kZWQiLCLwn5irIjoidGlyZWRfZmFjZSIsIvCfmKkiOiJ3ZWFyeSIsIvCfmKQiOiJ0cml1bXBoIiwi8J+YriI6Im9wZW5fbW91dGgiLCLwn5ixIjoic2NyZWFtIiwi8J+YqCI6ImZlYXJmdWwiLCLwn5iwIjoiY29sZF9zd2VhdCIsIvCfmK8iOiJodXNoZWQiLCLwn5imIjoiZnJvd25pbmciLCLwn5inIjoiYW5ndWlzaGVkIiwi8J+YoiI6ImNyeSIsIvCfmKUiOiJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiLCLwn6SkIjoiZHJvb2xpbmdfZmFjZSIsIvCfmKoiOiJzbGVlcHkiLCLwn5iTIjoic3dlYXQiLCLwn5itIjoic29iIiwi8J+YtSI6ImRpenp5X2ZhY2UiLCLwn5iyIjoiYXN0b25pc2hlZCIsIvCfpJAiOiJ6aXBwZXJfbW91dGhfZmFjZSIsIvCfpKIiOiJuYXVzZWF0ZWRfZmFjZSIsIvCfpKciOiJzbmVlemluZ19mYWNlIiwi8J+YtyI6Im1hc2siLCLwn6SSIjoiZmFjZV93aXRoX3RoZXJtb21ldGVyIiwi8J+klSI6ImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiLCLwn5i0Ijoic2xlZXBpbmciLCLwn5KkIjoienp6Iiwi8J+SqSI6InBvb3AiLCLwn5iIIjoic21pbGluZ19pbXAiLCLwn5G/IjoiaW1wIiwi8J+RuSI6ImphcGFuZXNlX29ncmUiLCLwn5G6IjoiamFwYW5lc2VfZ29ibGluIiwi8J+SgCI6InNrdWxsIiwi8J+RuyI6Imdob3N0Iiwi8J+RvSI6ImFsaWVuIiwi8J+kliI6InJvYm90Iiwi8J+YuiI6InNtaWxleV9jYXQiLCLwn5i4Ijoic21pbGVfY2F0Iiwi8J+YuSI6ImpveV9jYXQiLCLwn5i7IjoiaGVhcnRfZXllc19jYXQiLCLwn5i8Ijoic21pcmtfY2F0Iiwi8J+YvSI6Imtpc3NpbmdfY2F0Iiwi8J+ZgCI6InNjcmVhbV9jYXQiLCLwn5i/IjoiY3J5aW5nX2NhdF9mYWNlIiwi8J+YviI6InBvdXRpbmdfY2F0Iiwi8J+ZjCI6InJhaXNlZF9oYW5kcyIsIvCfmYzwn4+7IjoicmFpc2VkX2hhbmRzOnQyIiwi8J+ZjPCfj7wiOiJyYWlzZWRfaGFuZHM6dDMiLCLwn5mM8J+PvSI6InJhaXNlZF9oYW5kczp0NCIsIvCfmYzwn4++IjoicmFpc2VkX2hhbmRzOnQ1Iiwi8J+ZjPCfj78iOiJyYWlzZWRfaGFuZHM6dDYiLCLwn5GPIjoiY2xhcCIsIvCfkY/wn4+7IjoiY2xhcDp0MiIsIvCfkY/wn4+8IjoiY2xhcDp0MyIsIvCfkY/wn4+9IjoiY2xhcDp0NCIsIvCfkY/wn4++IjoiY2xhcDp0NSIsIvCfkY/wn4+/IjoiY2xhcDp0NiIsIvCfkYsiOiJ3YXZlIiwi8J+Ri/Cfj7siOiJ3YXZlOnQyIiwi8J+Ri/Cfj7wiOiJ3YXZlOnQzIiwi8J+Ri/Cfj70iOiJ3YXZlOnQ0Iiwi8J+Ri/Cfj74iOiJ3YXZlOnQ1Iiwi8J+Ri/Cfj78iOiJ3YXZlOnQ2Iiwi8J+kmSI6ImNhbGxfbWVfaGFuZCIsIvCfpJnwn4+7IjoiY2FsbF9tZV9oYW5kOnQyIiwi8J+kmfCfj7wiOiJjYWxsX21lX2hhbmQ6dDMiLCLwn6SZ8J+PvSI6ImNhbGxfbWVfaGFuZDp0NCIsIvCfpJnwn4++IjoiY2FsbF9tZV9oYW5kOnQ1Iiwi8J+kmfCfj78iOiJjYWxsX21lX2hhbmQ6dDYiLCLwn5GNIjoiKzEiLCLwn5GN8J+PuyI6IisxOnQyIiwi8J+RjfCfj7wiOiIrMTp0MyIsIvCfkY3wn4+9IjoiKzE6dDQiLCLwn5GN8J+PviI6IisxOnQ1Iiwi8J+RjfCfj78iOiIrMTp0NiIsIvCfkY4iOiItMSIsIvCfkY7wn4+7IjoiLTE6dDIiLCLwn5GO8J+PvCI6Ii0xOnQzIiwi8J+RjvCfj70iOiItMTp0NCIsIvCfkY7wn4++IjoiLTE6dDUiLCLwn5GO8J+PvyI6Ii0xOnQ2Iiwi8J+RiiI6ImZhY2VwdW5jaCIsIvCfkYrwn4+7IjoiZmFjZXB1bmNoOnQyIiwi8J+RivCfj7wiOiJmYWNlcHVuY2g6dDMiLCLwn5GK8J+PvSI6ImZhY2VwdW5jaDp0NCIsIvCfkYrwn4++IjoiZmFjZXB1bmNoOnQ1Iiwi8J+RivCfj78iOiJmYWNlcHVuY2g6dDYiLCLinIoiOiJmaXN0Iiwi4pyK8J+PuyI6ImZpc3Q6dDIiLCLinIrwn4+8IjoiZmlzdDp0MyIsIuKcivCfj70iOiJmaXN0OnQ0Iiwi4pyK8J+PviI6ImZpc3Q6dDUiLCLinIrwn4+/IjoiZmlzdDp0NiIsIvCfpJsiOiJmaXN0X2xlZnQiLCLwn6Sb8J+PuyI6ImZpc3RfbGVmdDp0MiIsIvCfpJvwn4+8IjoiZmlzdF9sZWZ0OnQzIiwi8J+km/Cfj70iOiJmaXN0X2xlZnQ6dDQiLCLwn6Sb8J+PviI6ImZpc3RfbGVmdDp0NSIsIvCfpJvwn4+/IjoiZmlzdF9sZWZ0OnQ2Iiwi8J+knCI6ImZpc3RfcmlnaHQiLCLwn6Sc8J+PuyI6ImZpc3RfcmlnaHQ6dDIiLCLwn6Sc8J+PvCI6ImZpc3RfcmlnaHQ6dDMiLCLwn6Sc8J+PvSI6ImZpc3RfcmlnaHQ6dDQiLCLwn6Sc8J+PviI6ImZpc3RfcmlnaHQ6dDUiLCLwn6Sc8J+PvyI6ImZpc3RfcmlnaHQ6dDYiLCLinIwiOiJ2Iiwi4pyM8J+PuyI6InY6dDIiLCLinIzwn4+8Ijoidjp0MyIsIuKcjPCfj70iOiJ2OnQ0Iiwi4pyM8J+PviI6InY6dDUiLCLinIzwn4+/Ijoidjp0NiIsIvCfkYwiOiJva19oYW5kIiwi8J+RjPCfj7siOiJva19oYW5kOnQyIiwi8J+RjPCfj7wiOiJva19oYW5kOnQzIiwi8J+RjPCfj70iOiJva19oYW5kOnQ0Iiwi8J+RjPCfj74iOiJva19oYW5kOnQ1Iiwi8J+RjPCfj78iOiJva19oYW5kOnQ2Iiwi4pyLIjoicmFpc2VkX2hhbmQiLCLinIvwn4+7IjoicmFpc2VkX2hhbmQ6dDIiLCLinIvwn4+8IjoicmFpc2VkX2hhbmQ6dDMiLCLinIvwn4+9IjoicmFpc2VkX2hhbmQ6dDQiLCLinIvwn4++IjoicmFpc2VkX2hhbmQ6dDUiLCLinIvwn4+/IjoicmFpc2VkX2hhbmQ6dDYiLCLwn6SaIjoicmFpc2VkX2JhY2tfb2ZfaGFuZCIsIvCfpJrwn4+7IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0MiIsIvCfpJrwn4+8IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0MyIsIvCfpJrwn4+9IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NCIsIvCfpJrwn4++IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NSIsIvCfpJrwn4+/IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NiIsIvCfkZAiOiJvcGVuX2hhbmRzIiwi8J+RkPCfj7siOiJvcGVuX2hhbmRzOnQyIiwi8J+RkPCfj7wiOiJvcGVuX2hhbmRzOnQzIiwi8J+RkPCfj70iOiJvcGVuX2hhbmRzOnQ0Iiwi8J+RkPCfj74iOiJvcGVuX2hhbmRzOnQ1Iiwi8J+RkPCfj78iOiJvcGVuX2hhbmRzOnQ2Iiwi8J+SqiI6Im11c2NsZSIsIvCfkqrwn4+7IjoibXVzY2xlOnQyIiwi8J+SqvCfj7wiOiJtdXNjbGU6dDMiLCLwn5Kq8J+PvSI6Im11c2NsZTp0NCIsIvCfkqrwn4++IjoibXVzY2xlOnQ1Iiwi8J+SqvCfj78iOiJtdXNjbGU6dDYiLCLwn5mPIjoicHJheSIsIvCfmY/wn4+7IjoicHJheTp0MiIsIvCfmY/wn4+8IjoicHJheTp0MyIsIvCfmY/wn4+9IjoicHJheTp0NCIsIvCfmY/wn4++IjoicHJheTp0NSIsIvCfmY/wn4+/IjoicHJheTp0NiIsIvCfpJ0iOiJoYW5kc2hha2UiLCLimJ0iOiJwb2ludF91cCIsIuKYnfCfj7siOiJwb2ludF91cDp0MiIsIuKYnfCfj7wiOiJwb2ludF91cDp0MyIsIuKYnfCfj70iOiJwb2ludF91cDp0NCIsIuKYnfCfj74iOiJwb2ludF91cDp0NSIsIuKYnfCfj78iOiJwb2ludF91cDp0NiIsIvCfkYYiOiJwb2ludF91cF8yIiwi8J+RhvCfj7siOiJwb2ludF91cF8yOnQyIiwi8J+RhvCfj7wiOiJwb2ludF91cF8yOnQzIiwi8J+RhvCfj70iOiJwb2ludF91cF8yOnQ0Iiwi8J+RhvCfj74iOiJwb2ludF91cF8yOnQ1Iiwi8J+RhvCfj78iOiJwb2ludF91cF8yOnQ2Iiwi8J+RhyI6InBvaW50X2Rvd24iLCLwn5GH8J+PuyI6InBvaW50X2Rvd246dDIiLCLwn5GH8J+PvCI6InBvaW50X2Rvd246dDMiLCLwn5GH8J+PvSI6InBvaW50X2Rvd246dDQiLCLwn5GH8J+PviI6InBvaW50X2Rvd246dDUiLCLwn5GH8J+PvyI6InBvaW50X2Rvd246dDYiLCLwn5GIIjoicG9pbnRfbGVmdCIsIvCfkYjwn4+7IjoicG9pbnRfbGVmdDp0MiIsIvCfkYjwn4+8IjoicG9pbnRfbGVmdDp0MyIsIvCfkYjwn4+9IjoicG9pbnRfbGVmdDp0NCIsIvCfkYjwn4++IjoicG9pbnRfbGVmdDp0NSIsIvCfkYjwn4+/IjoicG9pbnRfbGVmdDp0NiIsIvCfkYkiOiJwb2ludF9yaWdodCIsIvCfkYnwn4+7IjoicG9pbnRfcmlnaHQ6dDIiLCLwn5GJ8J+PvCI6InBvaW50X3JpZ2h0OnQzIiwi8J+RifCfj70iOiJwb2ludF9yaWdodDp0NCIsIvCfkYnwn4++IjoicG9pbnRfcmlnaHQ6dDUiLCLwn5GJ8J+PvyI6InBvaW50X3JpZ2h0OnQ2Iiwi8J+WlSI6ImZ1Iiwi8J+WlfCfj7siOiJmdTp0MiIsIvCflpXwn4+8IjoiZnU6dDMiLCLwn5aV8J+PvSI6ImZ1OnQ0Iiwi8J+WlfCfj74iOiJmdTp0NSIsIvCflpXwn4+/IjoiZnU6dDYiLCLwn5aQIjoicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQiLCLwn5aQ8J+PuyI6InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkOnQyIiwi8J+WkPCfj7wiOiJyYWlzZWRfaGFuZF93aXRoX2ZpbmdlcnNfc3BsYXllZDp0MyIsIvCflpDwn4+9IjoicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQ6dDQiLCLwn5aQ8J+PviI6InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkOnQ1Iiwi8J+WkPCfj78iOiJyYWlzZWRfaGFuZF93aXRoX2ZpbmdlcnNfc3BsYXllZDp0NiIsIvCfpJgiOiJtZXRhbCIsIvCfpJjwn4+7IjoibWV0YWw6dDIiLCLwn6SY8J+PvCI6Im1ldGFsOnQzIiwi8J+kmPCfj70iOiJtZXRhbDp0NCIsIvCfpJjwn4++IjoibWV0YWw6dDUiLCLwn6SY8J+PvyI6Im1ldGFsOnQ2Iiwi8J+kniI6ImNyb3NzZWRfZmluZ2VycyIsIvCfpJ7wn4+7IjoiY3Jvc3NlZF9maW5nZXJzOnQyIiwi8J+knvCfj7wiOiJjcm9zc2VkX2ZpbmdlcnM6dDMiLCLwn6Se8J+PvSI6ImNyb3NzZWRfZmluZ2Vyczp0NCIsIvCfpJ7wn4++IjoiY3Jvc3NlZF9maW5nZXJzOnQ1Iiwi8J+knvCfj78iOiJjcm9zc2VkX2ZpbmdlcnM6dDYiLCLwn5aWIjoidnVsY2FuX3NhbHV0ZSIsIvCflpbwn4+7IjoidnVsY2FuX3NhbHV0ZTp0MiIsIvCflpbwn4+8IjoidnVsY2FuX3NhbHV0ZTp0MyIsIvCflpbwn4+9IjoidnVsY2FuX3NhbHV0ZTp0NCIsIvCflpbwn4++IjoidnVsY2FuX3NhbHV0ZTp0NSIsIvCflpbwn4+/IjoidnVsY2FuX3NhbHV0ZTp0NiIsIuKcjSI6IndyaXRpbmdfaGFuZCIsIuKcjfCfj7siOiJ3cml0aW5nX2hhbmQ6dDIiLCLinI3wn4+8Ijoid3JpdGluZ19oYW5kOnQzIiwi4pyN8J+PvSI6IndyaXRpbmdfaGFuZDp0NCIsIuKcjfCfj74iOiJ3cml0aW5nX2hhbmQ6dDUiLCLinI3wn4+/Ijoid3JpdGluZ19oYW5kOnQ2Iiwi8J+ksyI6InNlbGZpZSIsIvCfpLPwn4+7Ijoic2VsZmllOnQyIiwi8J+ks/Cfj7wiOiJzZWxmaWU6dDMiLCLwn6Sz8J+PvSI6InNlbGZpZTp0NCIsIvCfpLPwn4++Ijoic2VsZmllOnQ1Iiwi8J+ks/Cfj78iOiJzZWxmaWU6dDYiLCLwn5KFIjoibmFpbF9jYXJlIiwi8J+ShfCfj7siOiJuYWlsX2NhcmU6dDIiLCLwn5KF8J+PvCI6Im5haWxfY2FyZTp0MyIsIvCfkoXwn4+9IjoibmFpbF9jYXJlOnQ0Iiwi8J+ShfCfj74iOiJuYWlsX2NhcmU6dDUiLCLwn5KF8J+PvyI6Im5haWxfY2FyZTp0NiIsIvCfkYQiOiJsaXBzIiwi8J+RhSI6InRvbmd1ZSIsIvCfkYIiOiJlYXIiLCLwn5GC8J+PuyI6ImVhcjp0MiIsIvCfkYLwn4+8IjoiZWFyOnQzIiwi8J+RgvCfj70iOiJlYXI6dDQiLCLwn5GC8J+PviI6ImVhcjp0NSIsIvCfkYLwn4+/IjoiZWFyOnQ2Iiwi8J+RgyI6Im5vc2UiLCLwn5GD8J+PuyI6Im5vc2U6dDIiLCLwn5GD8J+PvCI6Im5vc2U6dDMiLCLwn5GD8J+PvSI6Im5vc2U6dDQiLCLwn5GD8J+PviI6Im5vc2U6dDUiLCLwn5GD8J+PvyI6Im5vc2U6dDYiLCLwn5GBIjoiZXllIiwi8J+RgCI6ImV5ZXMiLCLwn5GkIjoiYnVzdF9pbl9zaWxob3VldHRlIiwi8J+RpSI6ImJ1c3RzX2luX3NpbGhvdWV0dGUiLCLwn5ejIjoic3BlYWtpbmdfaGVhZCIsIvCfkbYiOiJiYWJ5Iiwi8J+RtvCfj7siOiJiYWJ5OnQyIiwi8J+RtvCfj7wiOiJiYWJ5OnQzIiwi8J+RtvCfj70iOiJiYWJ5OnQ0Iiwi8J+RtvCfj74iOiJiYWJ5OnQ1Iiwi8J+RtvCfj78iOiJiYWJ5OnQ2Iiwi8J+RpiI6ImJveSIsIvCfkabwn4+7IjoiYm95OnQyIiwi8J+RpvCfj7wiOiJib3k6dDMiLCLwn5Gm8J+PvSI6ImJveTp0NCIsIvCfkabwn4++IjoiYm95OnQ1Iiwi8J+RpvCfj78iOiJib3k6dDYiLCLwn5GnIjoiZ2lybCIsIvCfkafwn4+7IjoiZ2lybDp0MiIsIvCfkafwn4+8IjoiZ2lybDp0MyIsIvCfkafwn4+9IjoiZ2lybDp0NCIsIvCfkafwn4++IjoiZ2lybDp0NSIsIvCfkafwn4+/IjoiZ2lybDp0NiIsIvCfkagiOiJtYW4iLCLwn5Go8J+PuyI6Im1hbjp0MiIsIvCfkajwn4+8IjoibWFuOnQzIiwi8J+RqPCfj70iOiJtYW46dDQiLCLwn5Go8J+PviI6Im1hbjp0NSIsIvCfkajwn4+/IjoibWFuOnQ2Iiwi8J+RqSI6IndvbWFuIiwi8J+RqfCfj7siOiJ3b21hbjp0MiIsIvCfkanwn4+8Ijoid29tYW46dDMiLCLwn5Gp8J+PvSI6IndvbWFuOnQ0Iiwi8J+RqfCfj74iOiJ3b21hbjp0NSIsIvCfkanwn4+/Ijoid29tYW46dDYiLCLwn5Gx4oCN4pmA77iPIjoiYmxvbmRlX3dvbWFuIiwi8J+RsfCfj7vigI3imYDvuI8iOiJibG9uZGVfd29tYW46dDIiLCLwn5Gx8J+PvOKAjeKZgO+4jyI6ImJsb25kZV93b21hbjp0MyIsIvCfkbHwn4+94oCN4pmA77iPIjoiYmxvbmRlX3dvbWFuOnQ0Iiwi8J+RsfCfj77igI3imYDvuI8iOiJibG9uZGVfd29tYW46dDUiLCLwn5Gx8J+Pv+KAjeKZgO+4jyI6ImJsb25kZV93b21hbjp0NiIsIvCfkbEiOiJibG9uZGVfbWFuIiwi8J+RsfCfj7siOiJibG9uZGVfbWFuOnQyIiwi8J+RsfCfj7wiOiJibG9uZGVfbWFuOnQzIiwi8J+RsfCfj70iOiJibG9uZGVfbWFuOnQ0Iiwi8J+RsfCfj74iOiJibG9uZGVfbWFuOnQ1Iiwi8J+RsfCfj78iOiJibG9uZGVfbWFuOnQ2Iiwi8J+RtCI6Im9sZGVyX21hbiIsIvCfkbTwn4+7Ijoib2xkZXJfbWFuOnQyIiwi8J+RtPCfj7wiOiJvbGRlcl9tYW46dDMiLCLwn5G08J+PvSI6Im9sZGVyX21hbjp0NCIsIvCfkbTwn4++Ijoib2xkZXJfbWFuOnQ1Iiwi8J+RtPCfj78iOiJvbGRlcl9tYW46dDYiLCLwn5G1Ijoib2xkZXJfd29tYW4iLCLwn5G18J+PuyI6Im9sZGVyX3dvbWFuOnQyIiwi8J+RtfCfj7wiOiJvbGRlcl93b21hbjp0MyIsIvCfkbXwn4+9Ijoib2xkZXJfd29tYW46dDQiLCLwn5G18J+PviI6Im9sZGVyX3dvbWFuOnQ1Iiwi8J+RtfCfj78iOiJvbGRlcl93b21hbjp0NiIsIvCfkbIiOiJtYW5fd2l0aF9ndWFfcGlfbWFvIiwi8J+RsvCfj7siOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQyIiwi8J+RsvCfj7wiOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQzIiwi8J+RsvCfj70iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ0Iiwi8J+RsvCfj74iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ1Iiwi8J+RsvCfj78iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ2Iiwi8J+Rs+KAjeKZgO+4jyI6IndvbWFuX3dpdGhfdHVyYmFuIiwi8J+Rs/Cfj7vigI3imYDvuI8iOiJ3b21hbl93aXRoX3R1cmJhbjp0MiIsIvCfkbPwn4+84oCN4pmA77iPIjoid29tYW5fd2l0aF90dXJiYW46dDMiLCLwn5Gz8J+PveKAjeKZgO+4jyI6IndvbWFuX3dpdGhfdHVyYmFuOnQ0Iiwi8J+Rs/Cfj77igI3imYDvuI8iOiJ3b21hbl93aXRoX3R1cmJhbjp0NSIsIvCfkbPwn4+/4oCN4pmA77iPIjoid29tYW5fd2l0aF90dXJiYW46dDYiLCLwn5GzIjoibWFuX3dpdGhfdHVyYmFuIiwi8J+Rs/Cfj7siOiJtYW5fd2l0aF90dXJiYW46dDIiLCLwn5Gz8J+PvCI6Im1hbl93aXRoX3R1cmJhbjp0MyIsIvCfkbPwn4+9IjoibWFuX3dpdGhfdHVyYmFuOnQ0Iiwi8J+Rs/Cfj74iOiJtYW5fd2l0aF90dXJiYW46dDUiLCLwn5Gz8J+PvyI6Im1hbl93aXRoX3R1cmJhbjp0NiIsIvCfka7igI3imYDvuI8iOiJwb2xpY2V3b21hbiIsIvCfka7wn4+74oCN4pmA77iPIjoicG9saWNld29tYW46dDIiLCLwn5Gu8J+PvOKAjeKZgO+4jyI6InBvbGljZXdvbWFuOnQzIiwi8J+RrvCfj73igI3imYDvuI8iOiJwb2xpY2V3b21hbjp0NCIsIvCfka7wn4++4oCN4pmA77iPIjoicG9saWNld29tYW46dDUiLCLwn5Gu8J+Pv+KAjeKZgO+4jyI6InBvbGljZXdvbWFuOnQ2Iiwi8J+RriI6InBvbGljZW1hbiIsIvCfka7wn4+7IjoicG9saWNlbWFuOnQyIiwi8J+RrvCfj7wiOiJwb2xpY2VtYW46dDMiLCLwn5Gu8J+PvSI6InBvbGljZW1hbjp0NCIsIvCfka7wn4++IjoicG9saWNlbWFuOnQ1Iiwi8J+RrvCfj78iOiJwb2xpY2VtYW46dDYiLCLwn5G34oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbiIsIvCfkbfwn4+74oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0MiIsIvCfkbfwn4+84oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0MyIsIvCfkbfwn4+94oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NCIsIvCfkbfwn4++4oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NSIsIvCfkbfwn4+/4oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NiIsIvCfkbciOiJjb25zdHJ1Y3Rpb25fd29ya2VyX21hbiIsIvCfkbfwn4+7IjoiY29uc3RydWN0aW9uX3dvcmtlcl9tYW46dDIiLCLwn5G38J+PvCI6ImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuOnQzIiwi8J+Rt/Cfj70iOiJjb25zdHJ1Y3Rpb25fd29ya2VyX21hbjp0NCIsIvCfkbfwn4++IjoiY29uc3RydWN0aW9uX3dvcmtlcl9tYW46dDUiLCLwn5G38J+PvyI6ImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuOnQ2Iiwi8J+SguKAjeKZgO+4jyI6Imd1YXJkc3dvbWFuIiwi8J+SgvCfj7vigI3imYDvuI8iOiJndWFyZHN3b21hbjp0MiIsIvCfkoLwn4+84oCN4pmA77iPIjoiZ3VhcmRzd29tYW46dDMiLCLwn5KC8J+PveKAjeKZgO+4jyI6Imd1YXJkc3dvbWFuOnQ0Iiwi8J+SgvCfj77igI3imYDvuI8iOiJndWFyZHN3b21hbjp0NSIsIvCfkoLwn4+/4oCN4pmA77iPIjoiZ3VhcmRzd29tYW46dDYiLCLwn5KCIjoiZ3VhcmRzbWFuIiwi8J+SgvCfj7siOiJndWFyZHNtYW46dDIiLCLwn5KC8J+PvCI6Imd1YXJkc21hbjp0MyIsIvCfkoLwn4+9IjoiZ3VhcmRzbWFuOnQ0Iiwi8J+SgvCfj74iOiJndWFyZHNtYW46dDUiLCLwn5KC8J+PvyI6Imd1YXJkc21hbjp0NiIsIvCflbXvuI/igI3imYAiOiJmZW1hbGVfZGV0ZWN0aXZlIiwi8J+VtSI6Im1hbGVfZGV0ZWN0aXZlIiwi8J+VtfCfj7siOiJtYWxlX2RldGVjdGl2ZTp0MiIsIvCflbXwn4+8IjoibWFsZV9kZXRlY3RpdmU6dDMiLCLwn5W18J+PvSI6Im1hbGVfZGV0ZWN0aXZlOnQ0Iiwi8J+VtfCfj74iOiJtYWxlX2RldGVjdGl2ZTp0NSIsIvCflbXwn4+/IjoibWFsZV9kZXRlY3RpdmU6dDYiLCLwn5Gp4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlciIsIvCfkanwn4+74oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0MiIsIvCfkanwn4+84oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0MyIsIvCfkanwn4+94oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NCIsIvCfkanwn4++4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NSIsIvCfkanwn4+/4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NiIsIvCfkajigI3impXvuI8iOiJtYW5faGVhbHRoX3dvcmtlciIsIvCfkajwn4+74oCN4pqV77iPIjoibWFuX2hlYWx0aF93b3JrZXI6dDIiLCLwn5Go8J+PvOKAjeKale+4jyI6Im1hbl9oZWFsdGhfd29ya2VyOnQzIiwi8J+RqPCfj73igI3impXvuI8iOiJtYW5faGVhbHRoX3dvcmtlcjp0NCIsIvCfkajwn4++4oCN4pqV77iPIjoibWFuX2hlYWx0aF93b3JrZXI6dDUiLCLwn5Go8J+Pv+KAjeKale+4jyI6Im1hbl9oZWFsdGhfd29ya2VyOnQ2Iiwi8J+RqeKAjfCfjL4iOiJ3b21hbl9mYXJtZXIiLCLwn5Gp8J+Pu+KAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDIiLCLwn5Gp8J+PvOKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDMiLCLwn5Gp8J+PveKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDQiLCLwn5Gp8J+PvuKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDYiLCLwn5Go4oCN8J+MviI6Im1hbl9mYXJtZXIiLCLwn5Go8J+Pu+KAjfCfjL4iOiJtYW5fZmFybWVyOnQyIiwi8J+RqPCfj7zigI3wn4y+IjoibWFuX2Zhcm1lcjp0MyIsIvCfkajwn4+94oCN8J+MviI6Im1hbl9mYXJtZXI6dDQiLCLwn5Go8J+PvuKAjfCfjL4iOiJtYW5fZmFybWVyOnQ1Iiwi8J+RqPCfj7/igI3wn4y+IjoibWFuX2Zhcm1lcjp0NiIsIvCfkanigI3wn42zIjoid29tYW5fY29vayIsIvCfkanwn4+74oCN8J+NsyI6IndvbWFuX2Nvb2s6dDIiLCLwn5Gp8J+PvOKAjfCfjbMiOiJ3b21hbl9jb29rOnQzIiwi8J+RqfCfj73igI3wn42zIjoid29tYW5fY29vazp0NCIsIvCfkanwn4++4oCN8J+NsyI6IndvbWFuX2Nvb2s6dDUiLCLwn5Gp8J+Pv+KAjfCfjbMiOiJ3b21hbl9jb29rOnQ2Iiwi8J+RqOKAjfCfjbMiOiJtYW5fY29vayIsIvCfkajwn4+74oCN8J+NsyI6Im1hbl9jb29rOnQyIiwi8J+RqPCfj7zigI3wn42zIjoibWFuX2Nvb2s6dDMiLCLwn5Go8J+PveKAjfCfjbMiOiJtYW5fY29vazp0NCIsIvCfkajwn4++4oCN8J+NsyI6Im1hbl9jb29rOnQ1Iiwi8J+RqPCfj7/igI3wn42zIjoibWFuX2Nvb2s6dDYiLCLwn5Gp4oCN8J+OkyI6IndvbWFuX3N0dWRlbnQiLCLwn5Gp8J+Pu+KAjfCfjpMiOiJ3b21hbl9zdHVkZW50OnQyIiwi8J+RqfCfj7zigI3wn46TIjoid29tYW5fc3R1ZGVudDp0MyIsIvCfkanwn4+94oCN8J+OkyI6IndvbWFuX3N0dWRlbnQ6dDQiLCLwn5Gp8J+PvuKAjfCfjpMiOiJ3b21hbl9zdHVkZW50OnQ1Iiwi8J+RqfCfj7/igI3wn46TIjoid29tYW5fc3R1ZGVudDp0NiIsIvCfkajigI3wn46TIjoibWFuX3N0dWRlbnQiLCLwn5Go8J+Pu+KAjfCfjpMiOiJtYW5fc3R1ZGVudDp0MiIsIvCfkajwn4+84oCN8J+OkyI6Im1hbl9zdHVkZW50OnQzIiwi8J+RqPCfj73igI3wn46TIjoibWFuX3N0dWRlbnQ6dDQiLCLwn5Go8J+PvuKAjfCfjpMiOiJtYW5fc3R1ZGVudDp0NSIsIvCfkajwn4+/4oCN8J+OkyI6Im1hbl9zdHVkZW50OnQ2Iiwi8J+RqeKAjfCfjqQiOiJ3b21hbl9zaW5nZXIiLCLwn5Gp8J+Pu+KAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDIiLCLwn5Gp8J+PvOKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDMiLCLwn5Gp8J+PveKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDQiLCLwn5Gp8J+PvuKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDYiLCLwn5Go4oCN8J+OpCI6Im1hbl9zaW5nZXIiLCLwn5Go8J+Pu+KAjfCfjqQiOiJtYW5fc2luZ2VyOnQyIiwi8J+RqPCfj7zigI3wn46kIjoibWFuX3Npbmdlcjp0MyIsIvCfkajwn4+94oCN8J+OpCI6Im1hbl9zaW5nZXI6dDQiLCLwn5Go8J+PvuKAjfCfjqQiOiJtYW5fc2luZ2VyOnQ1Iiwi8J+RqPCfj7/igI3wn46kIjoibWFuX3Npbmdlcjp0NiIsIvCfkanigI3wn4+rIjoid29tYW5fdGVhY2hlciIsIvCfkanwn4+74oCN8J+PqyI6IndvbWFuX3RlYWNoZXI6dDIiLCLwn5Gp8J+PvOKAjfCfj6siOiJ3b21hbl90ZWFjaGVyOnQzIiwi8J+RqfCfj73igI3wn4+rIjoid29tYW5fdGVhY2hlcjp0NCIsIvCfkanwn4++4oCN8J+PqyI6IndvbWFuX3RlYWNoZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfj6siOiJ3b21hbl90ZWFjaGVyOnQ2Iiwi8J+RqOKAjfCfj6siOiJtYW5fdGVhY2hlciIsIvCfkajwn4+74oCN8J+PqyI6Im1hbl90ZWFjaGVyOnQyIiwi8J+RqPCfj7zigI3wn4+rIjoibWFuX3RlYWNoZXI6dDMiLCLwn5Go8J+PveKAjfCfj6siOiJtYW5fdGVhY2hlcjp0NCIsIvCfkajwn4++4oCN8J+PqyI6Im1hbl90ZWFjaGVyOnQ1Iiwi8J+RqPCfj7/igI3wn4+rIjoibWFuX3RlYWNoZXI6dDYiLCLwn5Gp4oCN8J+PrSI6IndvbWFuX2ZhY3Rvcnlfd29ya2VyIiwi8J+RqfCfj7vigI3wn4+tIjoid29tYW5fZmFjdG9yeV93b3JrZXI6dDIiLCLwn5Gp8J+PvOKAjfCfj60iOiJ3b21hbl9mYWN0b3J5X3dvcmtlcjp0MyIsIvCfkanwn4+94oCN8J+PrSI6IndvbWFuX2ZhY3Rvcnlfd29ya2VyOnQ0Iiwi8J+RqfCfj77igI3wn4+tIjoid29tYW5fZmFjdG9yeV93b3JrZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfj60iOiJ3b21hbl9mYWN0b3J5X3dvcmtlcjp0NiIsIvCfkajigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyIiwi8J+RqPCfj7vigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQyIiwi8J+RqPCfj7zigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQzIiwi8J+RqPCfj73igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ0Iiwi8J+RqPCfj77igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ1Iiwi8J+RqPCfj7/igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ2Iiwi8J+RqeKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3QiLCLwn5Gp8J+Pu+KAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDIiLCLwn5Gp8J+PvOKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDMiLCLwn5Gp8J+PveKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDQiLCLwn5Gp8J+PvuKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDUiLCLwn5Gp8J+Pv+KAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDYiLCLwn5Go4oCN8J+SuyI6Im1hbl90ZWNobm9sb2dpc3QiLCLwn5Go8J+Pu+KAjfCfkrsiOiJtYW5fdGVjaG5vbG9naXN0OnQyIiwi8J+RqPCfj7zigI3wn5K7IjoibWFuX3RlY2hub2xvZ2lzdDp0MyIsIvCfkajwn4+94oCN8J+SuyI6Im1hbl90ZWNobm9sb2dpc3Q6dDQiLCLwn5Go8J+PvuKAjfCfkrsiOiJtYW5fdGVjaG5vbG9naXN0OnQ1Iiwi8J+RqPCfj7/igI3wn5K7IjoibWFuX3RlY2hub2xvZ2lzdDp0NiIsIvCfkanigI3wn5K8Ijoid29tYW5fb2ZmaWNlX3dvcmtlciIsIvCfkanwn4+74oCN8J+SvCI6IndvbWFuX29mZmljZV93b3JrZXI6dDIiLCLwn5Gp8J+PvOKAjfCfkrwiOiJ3b21hbl9vZmZpY2Vfd29ya2VyOnQzIiwi8J+RqfCfj73igI3wn5K8Ijoid29tYW5fb2ZmaWNlX3dvcmtlcjp0NCIsIvCfkanwn4++4oCN8J+SvCI6IndvbWFuX29mZmljZV93b3JrZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfkrwiOiJ3b21hbl9vZmZpY2Vfd29ya2VyOnQ2Iiwi8J+RqOKAjfCfkrwiOiJtYW5fb2ZmaWNlX3dvcmtlciIsIvCfkajwn4+74oCN8J+SvCI6Im1hbl9vZmZpY2Vfd29ya2VyOnQyIiwi8J+RqPCfj7zigI3wn5K8IjoibWFuX29mZmljZV93b3JrZXI6dDMiLCLwn5Go8J+PveKAjfCfkrwiOiJtYW5fb2ZmaWNlX3dvcmtlcjp0NCIsIvCfkajwn4++4oCN8J+SvCI6Im1hbl9vZmZpY2Vfd29ya2VyOnQ1Iiwi8J+RqPCfj7/igI3wn5K8IjoibWFuX29mZmljZV93b3JrZXI6dDYiLCLwn5Gp4oCN8J+UpyI6IndvbWFuX21lY2hhbmljIiwi8J+RqfCfj7vigI3wn5SnIjoid29tYW5fbWVjaGFuaWM6dDIiLCLwn5Gp8J+PvOKAjfCflKciOiJ3b21hbl9tZWNoYW5pYzp0MyIsIvCfkanwn4+94oCN8J+UpyI6IndvbWFuX21lY2hhbmljOnQ0Iiwi8J+RqfCfj77igI3wn5SnIjoid29tYW5fbWVjaGFuaWM6dDUiLCLwn5Gp8J+Pv+KAjfCflKciOiJ3b21hbl9tZWNoYW5pYzp0NiIsIvCfkajigI3wn5SnIjoibWFuX21lY2hhbmljIiwi8J+RqPCfj7vigI3wn5SnIjoibWFuX21lY2hhbmljOnQyIiwi8J+RqPCfj7zigI3wn5SnIjoibWFuX21lY2hhbmljOnQzIiwi8J+RqPCfj73igI3wn5SnIjoibWFuX21lY2hhbmljOnQ0Iiwi8J+RqPCfj77igI3wn5SnIjoibWFuX21lY2hhbmljOnQ1Iiwi8J+RqPCfj7/igI3wn5SnIjoibWFuX21lY2hhbmljOnQ2Iiwi8J+RqeKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3QiLCLwn5Gp8J+Pu+KAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDIiLCLwn5Gp8J+PvOKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDMiLCLwn5Gp8J+PveKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDQiLCLwn5Gp8J+PvuKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDUiLCLwn5Gp8J+Pv+KAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDYiLCLwn5Go4oCN8J+UrCI6Im1hbl9zY2llbnRpc3QiLCLwn5Go8J+Pu+KAjfCflKwiOiJtYW5fc2NpZW50aXN0OnQyIiwi8J+RqPCfj7zigI3wn5SsIjoibWFuX3NjaWVudGlzdDp0MyIsIvCfkajwn4+94oCN8J+UrCI6Im1hbl9zY2llbnRpc3Q6dDQiLCLwn5Go8J+PvuKAjfCflKwiOiJtYW5fc2NpZW50aXN0OnQ1Iiwi8J+RqPCfj7/igI3wn5SsIjoibWFuX3NjaWVudGlzdDp0NiIsIvCfkanigI3wn46oIjoid29tYW5fYXJ0aXN0Iiwi8J+RqfCfj7vigI3wn46oIjoid29tYW5fYXJ0aXN0OnQyIiwi8J+RqfCfj7zigI3wn46oIjoid29tYW5fYXJ0aXN0OnQzIiwi8J+RqfCfj73igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ0Iiwi8J+RqfCfj77igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ1Iiwi8J+RqfCfj7/igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ2Iiwi8J+RqOKAjfCfjqgiOiJtYW5fYXJ0aXN0Iiwi8J+RqPCfj7vigI3wn46oIjoibWFuX2FydGlzdDp0MiIsIvCfkajwn4+84oCN8J+OqCI6Im1hbl9hcnRpc3Q6dDMiLCLwn5Go8J+PveKAjfCfjqgiOiJtYW5fYXJ0aXN0OnQ0Iiwi8J+RqPCfj77igI3wn46oIjoibWFuX2FydGlzdDp0NSIsIvCfkajwn4+/4oCN8J+OqCI6Im1hbl9hcnRpc3Q6dDYiLCLwn5Gp4oCN8J+akiI6IndvbWFuX2ZpcmVmaWdodGVyIiwi8J+RqfCfj7vigI3wn5qSIjoid29tYW5fZmlyZWZpZ2h0ZXI6dDIiLCLwn5Gp8J+PvOKAjfCfmpIiOiJ3b21hbl9maXJlZmlnaHRlcjp0MyIsIvCfkanwn4+94oCN8J+akiI6IndvbWFuX2ZpcmVmaWdodGVyOnQ0Iiwi8J+RqfCfj77igI3wn5qSIjoid29tYW5fZmlyZWZpZ2h0ZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfmpIiOiJ3b21hbl9maXJlZmlnaHRlcjp0NiIsIvCfkajigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyIiwi8J+RqPCfj7vigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQyIiwi8J+RqPCfj7zigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQzIiwi8J+RqPCfj73igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ0Iiwi8J+RqPCfj77igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ1Iiwi8J+RqPCfj7/igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ2Iiwi8J+RqeKAjeKciO+4jyI6IndvbWFuX3BpbG90Iiwi8J+RqfCfj7vigI3inIjvuI8iOiJ3b21hbl9waWxvdDp0MiIsIvCfkanwn4+84oCN4pyI77iPIjoid29tYW5fcGlsb3Q6dDMiLCLwn5Gp8J+PveKAjeKciO+4jyI6IndvbWFuX3BpbG90OnQ0Iiwi8J+RqfCfj77igI3inIjvuI8iOiJ3b21hbl9waWxvdDp0NSIsIvCfkanwn4+/4oCN4pyI77iPIjoid29tYW5fcGlsb3Q6dDYiLCLwn5Go4oCN4pyI77iPIjoibWFuX3BpbG90Iiwi8J+RqPCfj7vigI3inIjvuI8iOiJtYW5fcGlsb3Q6dDIiLCLwn5Go8J+PvOKAjeKciO+4jyI6Im1hbl9waWxvdDp0MyIsIvCfkajwn4+94oCN4pyI77iPIjoibWFuX3BpbG90OnQ0Iiwi8J+RqPCfj77igI3inIjvuI8iOiJtYW5fcGlsb3Q6dDUiLCLwn5Go8J+Pv+KAjeKciO+4jyI6Im1hbl9waWxvdDp0NiIsIvCfkanigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0Iiwi8J+RqfCfj7vigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQyIiwi8J+RqfCfj7zigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQzIiwi8J+RqfCfj73igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ0Iiwi8J+RqfCfj77igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ1Iiwi8J+RqfCfj7/igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ2Iiwi8J+RqOKAjfCfmoAiOiJtYW5fYXN0cm9uYXV0Iiwi8J+RqPCfj7vigI3wn5qAIjoibWFuX2FzdHJvbmF1dDp0MiIsIvCfkajwn4+84oCN8J+agCI6Im1hbl9hc3Ryb25hdXQ6dDMiLCLwn5Go8J+PveKAjfCfmoAiOiJtYW5fYXN0cm9uYXV0OnQ0Iiwi8J+RqPCfj77igI3wn5qAIjoibWFuX2FzdHJvbmF1dDp0NSIsIvCfkajwn4+/4oCN8J+agCI6Im1hbl9hc3Ryb25hdXQ6dDYiLCLwn5Gp4oCN4pqW77iPIjoid29tYW5fanVkZ2UiLCLwn5Gp8J+Pu+KAjeKalu+4jyI6IndvbWFuX2p1ZGdlOnQyIiwi8J+RqfCfj7zigI3impbvuI8iOiJ3b21hbl9qdWRnZTp0MyIsIvCfkanwn4+94oCN4pqW77iPIjoid29tYW5fanVkZ2U6dDQiLCLwn5Gp8J+PvuKAjeKalu+4jyI6IndvbWFuX2p1ZGdlOnQ1Iiwi8J+RqfCfj7/igI3impbvuI8iOiJ3b21hbl9qdWRnZTp0NiIsIvCfkajigI3impbvuI8iOiJtYW5fanVkZ2UiLCLwn5Go8J+Pu+KAjeKalu+4jyI6Im1hbl9qdWRnZTp0MiIsIvCfkajwn4+84oCN4pqW77iPIjoibWFuX2p1ZGdlOnQzIiwi8J+RqPCfj73igI3impbvuI8iOiJtYW5fanVkZ2U6dDQiLCLwn5Go8J+PvuKAjeKalu+4jyI6Im1hbl9qdWRnZTp0NSIsIvCfkajwn4+/4oCN4pqW77iPIjoibWFuX2p1ZGdlOnQ2Iiwi8J+ktiI6Im1yc19jbGF1cyIsIvCfpLbwn4+7IjoibXJzX2NsYXVzOnQyIiwi8J+ktvCfj7wiOiJtcnNfY2xhdXM6dDMiLCLwn6S28J+PvSI6Im1yc19jbGF1czp0NCIsIvCfpLbwn4++IjoibXJzX2NsYXVzOnQ1Iiwi8J+ktvCfj78iOiJtcnNfY2xhdXM6dDYiLCLwn46FIjoic2FudGEiLCLwn46F8J+PuyI6InNhbnRhOnQyIiwi8J+OhfCfj7wiOiJzYW50YTp0MyIsIvCfjoXwn4+9Ijoic2FudGE6dDQiLCLwn46F8J+PviI6InNhbnRhOnQ1Iiwi8J+OhfCfj78iOiJzYW50YTp0NiIsIvCfkbwiOiJhbmdlbCIsIvCfkbzwn4+7IjoiYW5nZWw6dDIiLCLwn5G88J+PvCI6ImFuZ2VsOnQzIiwi8J+RvPCfj70iOiJhbmdlbDp0NCIsIvCfkbzwn4++IjoiYW5nZWw6dDUiLCLwn5G88J+PvyI6ImFuZ2VsOnQ2Iiwi8J+ksCI6InByZWduYW50X3dvbWFuIiwi8J+ksPCfj7siOiJwcmVnbmFudF93b21hbjp0MiIsIvCfpLDwn4+8IjoicHJlZ25hbnRfd29tYW46dDMiLCLwn6Sw8J+PvSI6InByZWduYW50X3dvbWFuOnQ0Iiwi8J+ksPCfj74iOiJwcmVnbmFudF93b21hbjp0NSIsIvCfpLDwn4+/IjoicHJlZ25hbnRfd29tYW46dDYiLCLwn5G4IjoicHJpbmNlc3MiLCLwn5G48J+PuyI6InByaW5jZXNzOnQyIiwi8J+RuPCfj7wiOiJwcmluY2Vzczp0MyIsIvCfkbjwn4+9IjoicHJpbmNlc3M6dDQiLCLwn5G48J+PviI6InByaW5jZXNzOnQ1Iiwi8J+RuPCfj78iOiJwcmluY2Vzczp0NiIsIvCfpLQiOiJwcmluY2UiLCLwn6S08J+PuyI6InByaW5jZTp0MiIsIvCfpLTwn4+8IjoicHJpbmNlOnQzIiwi8J+ktPCfj70iOiJwcmluY2U6dDQiLCLwn6S08J+PviI6InByaW5jZTp0NSIsIvCfpLTwn4+/IjoicHJpbmNlOnQ2Iiwi8J+RsCI6ImJyaWRlX3dpdGhfdmVpbCIsIvCfkbDwn4+7IjoiYnJpZGVfd2l0aF92ZWlsOnQyIiwi8J+RsPCfj7wiOiJicmlkZV93aXRoX3ZlaWw6dDMiLCLwn5Gw8J+PvSI6ImJyaWRlX3dpdGhfdmVpbDp0NCIsIvCfkbDwn4++IjoiYnJpZGVfd2l0aF92ZWlsOnQ1Iiwi8J+RsPCfj78iOiJicmlkZV93aXRoX3ZlaWw6dDYiLCLwn6S1IjoibWFuX2luX3R1eGVkbyIsIvCfpLXwn4+7IjoibWFuX2luX3R1eGVkbzp0MiIsIvCfpLXwn4+8IjoibWFuX2luX3R1eGVkbzp0MyIsIvCfpLXwn4+9IjoibWFuX2luX3R1eGVkbzp0NCIsIvCfpLXwn4++IjoibWFuX2luX3R1eGVkbzp0NSIsIvCfpLXwn4+/IjoibWFuX2luX3R1eGVkbzp0NiIsIvCfj4PigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuIiwi8J+Pg/Cfj7vigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQyIiwi8J+Pg/Cfj7zigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQzIiwi8J+Pg/Cfj73igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ0Iiwi8J+Pg/Cfj77igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ1Iiwi8J+Pg/Cfj7/igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ2Iiwi8J+PgyI6InJ1bm5pbmdfbWFuIiwi8J+Pg/Cfj7siOiJydW5uaW5nX21hbjp0MiIsIvCfj4Pwn4+8IjoicnVubmluZ19tYW46dDMiLCLwn4+D8J+PvSI6InJ1bm5pbmdfbWFuOnQ0Iiwi8J+Pg/Cfj74iOiJydW5uaW5nX21hbjp0NSIsIvCfj4Pwn4+/IjoicnVubmluZ19tYW46dDYiLCLwn5q24oCN4pmA77iPIjoid2Fsa2luZ193b21hbiIsIvCfmrbwn4+74oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0MiIsIvCfmrbwn4+84oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0MyIsIvCfmrbwn4+94oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NCIsIvCfmrbwn4++4oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NSIsIvCfmrbwn4+/4oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NiIsIvCfmrYiOiJ3YWxraW5nX21hbiIsIvCfmrbwn4+7Ijoid2Fsa2luZ19tYW46dDIiLCLwn5q28J+PvCI6IndhbGtpbmdfbWFuOnQzIiwi8J+atvCfj70iOiJ3YWxraW5nX21hbjp0NCIsIvCfmrbwn4++Ijoid2Fsa2luZ19tYW46dDUiLCLwn5q28J+PvyI6IndhbGtpbmdfbWFuOnQ2Iiwi8J+SgyI6ImRhbmNlciIsIvCfkoPwn4+7IjoiZGFuY2VyOnQyIiwi8J+Sg/Cfj7wiOiJkYW5jZXI6dDMiLCLwn5KD8J+PvSI6ImRhbmNlcjp0NCIsIvCfkoPwn4++IjoiZGFuY2VyOnQ1Iiwi8J+Sg/Cfj78iOiJkYW5jZXI6dDYiLCLwn5W6IjoibWFuX2RhbmNpbmciLCLwn5W68J+PuyI6Im1hbl9kYW5jaW5nOnQyIiwi8J+VuvCfj7wiOiJtYW5fZGFuY2luZzp0MyIsIvCflbrwn4+9IjoibWFuX2RhbmNpbmc6dDQiLCLwn5W68J+PviI6Im1hbl9kYW5jaW5nOnQ1Iiwi8J+VuvCfj78iOiJtYW5fZGFuY2luZzp0NiIsIvCfka8iOiJkYW5jaW5nX3dvbWVuIiwi8J+Rr+KAjeKZgiI6ImRhbmNpbmdfbWVuIiwi8J+RqyI6ImNvdXBsZSIsIvCfkawiOiJ0d29fbWVuX2hvbGRpbmdfaGFuZHMiLCLwn5GtIjoidHdvX3dvbWVuX2hvbGRpbmdfaGFuZHMiLCLwn5mH4oCN4pmA77iPIjoiYm93aW5nX3dvbWFuIiwi8J+Zh/Cfj7vigI3imYDvuI8iOiJib3dpbmdfd29tYW46dDIiLCLwn5mH8J+PvOKAjeKZgO+4jyI6ImJvd2luZ193b21hbjp0MyIsIvCfmYfwn4+94oCN4pmA77iPIjoiYm93aW5nX3dvbWFuOnQ0Iiwi8J+Zh/Cfj77igI3imYDvuI8iOiJib3dpbmdfd29tYW46dDUiLCLwn5mH8J+Pv+KAjeKZgO+4jyI6ImJvd2luZ193b21hbjp0NiIsIvCfmYciOiJib3dpbmdfbWFuIiwi8J+Zh/Cfj7siOiJib3dpbmdfbWFuOnQyIiwi8J+Zh/Cfj7wiOiJib3dpbmdfbWFuOnQzIiwi8J+Zh/Cfj70iOiJib3dpbmdfbWFuOnQ0Iiwi8J+Zh/Cfj74iOiJib3dpbmdfbWFuOnQ1Iiwi8J+Zh/Cfj78iOiJib3dpbmdfbWFuOnQ2Iiwi8J+kpuKAjeKZgu+4jyI6Im1hbl9mYWNlcGFsbWluZyIsIvCfpKbwn4+74oCN4pmC77iPIjoibWFuX2ZhY2VwYWxtaW5nOnQyIiwi8J+kpvCfj7zigI3imYLvuI8iOiJtYW5fZmFjZXBhbG1pbmc6dDMiLCLwn6Sm8J+PveKAjeKZgu+4jyI6Im1hbl9mYWNlcGFsbWluZzp0NCIsIvCfpKbwn4++4oCN4pmC77iPIjoibWFuX2ZhY2VwYWxtaW5nOnQ1Iiwi8J+kpvCfj7/igI3imYLvuI8iOiJtYW5fZmFjZXBhbG1pbmc6dDYiLCLwn6Sm4oCN4pmA77iPIjoid29tYW5fZmFjZXBhbG1pbmciLCLwn6Sm8J+Pu+KAjeKZgO+4jyI6IndvbWFuX2ZhY2VwYWxtaW5nOnQyIiwi8J+kpvCfj7zigI3imYDvuI8iOiJ3b21hbl9mYWNlcGFsbWluZzp0MyIsIvCfpKbwn4+94oCN4pmA77iPIjoid29tYW5fZmFjZXBhbG1pbmc6dDQiLCLwn6Sm8J+PvuKAjeKZgO+4jyI6IndvbWFuX2ZhY2VwYWxtaW5nOnQ1Iiwi8J+kpvCfj7/igI3imYDvuI8iOiJ3b21hbl9mYWNlcGFsbWluZzp0NiIsIvCfpLfigI3imYDvuI8iOiJ3b21hbl9zaHJ1Z2dpbmciLCLwn6S38J+Pu+KAjeKZgO+4jyI6IndvbWFuX3NocnVnZ2luZzp0MiIsIvCfpLfwn4+84oCN4pmA77iPIjoid29tYW5fc2hydWdnaW5nOnQzIiwi8J+kt/Cfj73igI3imYDvuI8iOiJ3b21hbl9zaHJ1Z2dpbmc6dDQiLCLwn6S38J+PvuKAjeKZgO+4jyI6IndvbWFuX3NocnVnZ2luZzp0NSIsIvCfpLfwn4+/4oCN4pmA77iPIjoid29tYW5fc2hydWdnaW5nOnQ2Iiwi8J+kt+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmciLCLwn6S38J+Pu+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDIiLCLwn6S38J+PvOKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDMiLCLwn6S38J+PveKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDQiLCLwn6S38J+PvuKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDUiLCLwn6S38J+Pv+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDYiLCLwn5KB4oCN4pmA77iPIjoidGlwcGluZ19oYW5kX3dvbWFuIiwi8J+SgfCfj7vigI3imYDvuI8iOiJ0aXBwaW5nX2hhbmRfd29tYW46dDIiLCLwn5KB8J+PvOKAjeKZgO+4jyI6InRpcHBpbmdfaGFuZF93b21hbjp0MyIsIvCfkoHwn4+94oCN4pmA77iPIjoidGlwcGluZ19oYW5kX3dvbWFuOnQ0Iiwi8J+SgfCfj77igI3imYDvuI8iOiJ0aXBwaW5nX2hhbmRfd29tYW46dDUiLCLwn5KB8J+Pv+KAjeKZgO+4jyI6InRpcHBpbmdfaGFuZF93b21hbjp0NiIsIvCfkoHigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuIiwi8J+SgfCfj7vigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQyIiwi8J+SgfCfj7zigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQzIiwi8J+SgfCfj73igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ0Iiwi8J+SgfCfj77igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ1Iiwi8J+SgfCfj7/igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ2Iiwi8J+ZheKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW4iLCLwn5mF8J+Pu+KAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDIiLCLwn5mF8J+PvOKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDMiLCLwn5mF8J+PveKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDQiLCLwn5mF8J+PvuKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDUiLCLwn5mF8J+Pv+KAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDYiLCLwn5mF4oCN4pmC77iPIjoibm9fZ29vZF9tYW4iLCLwn5mF8J+Pu+KAjeKZgu+4jyI6Im5vX2dvb2RfbWFuOnQyIiwi8J+ZhfCfj7zigI3imYLvuI8iOiJub19nb29kX21hbjp0MyIsIvCfmYXwn4+94oCN4pmC77iPIjoibm9fZ29vZF9tYW46dDQiLCLwn5mF8J+PvuKAjeKZgu+4jyI6Im5vX2dvb2RfbWFuOnQ1Iiwi8J+ZhfCfj7/igI3imYLvuI8iOiJub19nb29kX21hbjp0NiIsIvCfmYbigI3imYDvuI8iOiJva193b21hbiIsIvCfmYbwn4+74oCN4pmA77iPIjoib2tfd29tYW46dDIiLCLwn5mG8J+PvOKAjeKZgO+4jyI6Im9rX3dvbWFuOnQzIiwi8J+ZhvCfj73igI3imYDvuI8iOiJva193b21hbjp0NCIsIvCfmYbwn4++4oCN4pmA77iPIjoib2tfd29tYW46dDUiLCLwn5mG8J+Pv+KAjeKZgO+4jyI6Im9rX3dvbWFuOnQ2Iiwi8J+ZhuKAjeKZgu+4jyI6Im9rX21hbiIsIvCfmYbwn4+74oCN4pmC77iPIjoib2tfbWFuOnQyIiwi8J+ZhvCfj7zigI3imYLvuI8iOiJva19tYW46dDMiLCLwn5mG8J+PveKAjeKZgu+4jyI6Im9rX21hbjp0NCIsIvCfmYbwn4++4oCN4pmC77iPIjoib2tfbWFuOnQ1Iiwi8J+ZhvCfj7/igI3imYLvuI8iOiJva19tYW46dDYiLCLwn5mL4oCN4pmA77iPIjoicmFpc2luZ19oYW5kX3dvbWFuIiwi8J+Zi/Cfj7vigI3imYDvuI8iOiJyYWlzaW5nX2hhbmRfd29tYW46dDIiLCLwn5mL8J+PvOKAjeKZgO+4jyI6InJhaXNpbmdfaGFuZF93b21hbjp0MyIsIvCfmYvwn4+94oCN4pmA77iPIjoicmFpc2luZ19oYW5kX3dvbWFuOnQ0Iiwi8J+Zi/Cfj77igI3imYDvuI8iOiJyYWlzaW5nX2hhbmRfd29tYW46dDUiLCLwn5mL8J+Pv+KAjeKZgO+4jyI6InJhaXNpbmdfaGFuZF93b21hbjp0NiIsIvCfmYvigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuIiwi8J+Zi/Cfj7vigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQyIiwi8J+Zi/Cfj7zigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQzIiwi8J+Zi/Cfj73igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ0Iiwi8J+Zi/Cfj77igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ1Iiwi8J+Zi/Cfj7/igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ2Iiwi8J+ZjuKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW4iLCLwn5mO8J+Pu+KAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDIiLCLwn5mO8J+PvOKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDMiLCLwn5mO8J+PveKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDQiLCLwn5mO8J+PvuKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDUiLCLwn5mO8J+Pv+KAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDYiLCLwn5mO4oCN4pmC77iPIjoicG91dGluZ19tYW4iLCLwn5mO8J+Pu+KAjeKZgu+4jyI6InBvdXRpbmdfbWFuOnQyIiwi8J+ZjvCfj7zigI3imYLvuI8iOiJwb3V0aW5nX21hbjp0MyIsIvCfmY7wn4+94oCN4pmC77iPIjoicG91dGluZ19tYW46dDQiLCLwn5mO8J+PvuKAjeKZgu+4jyI6InBvdXRpbmdfbWFuOnQ1Iiwi8J+ZjvCfj7/igI3imYLvuI8iOiJwb3V0aW5nX21hbjp0NiIsIvCfmY3igI3imYDvuI8iOiJmcm93bmluZ193b21hbiIsIvCfmY3wn4+74oCN4pmA77iPIjoiZnJvd25pbmdfd29tYW46dDIiLCLwn5mN8J+PvOKAjeKZgO+4jyI6ImZyb3duaW5nX3dvbWFuOnQzIiwi8J+ZjfCfj73igI3imYDvuI8iOiJmcm93bmluZ193b21hbjp0NCIsIvCfmY3wn4++4oCN4pmA77iPIjoiZnJvd25pbmdfd29tYW46dDUiLCLwn5mN8J+Pv+KAjeKZgO+4jyI6ImZyb3duaW5nX3dvbWFuOnQ2Iiwi8J+ZjeKAjeKZgu+4jyI6ImZyb3duaW5nX21hbiIsIvCfmY3wn4+74oCN4pmC77iPIjoiZnJvd25pbmdfbWFuOnQyIiwi8J+ZjfCfj7zigI3imYLvuI8iOiJmcm93bmluZ19tYW46dDMiLCLwn5mN8J+PveKAjeKZgu+4jyI6ImZyb3duaW5nX21hbjp0NCIsIvCfmY3wn4++4oCN4pmC77iPIjoiZnJvd25pbmdfbWFuOnQ1Iiwi8J+ZjfCfj7/igI3imYLvuI8iOiJmcm93bmluZ19tYW46dDYiLCLwn5KH4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbiIsIvCfkofwn4+74oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0MiIsIvCfkofwn4+84oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0MyIsIvCfkofwn4+94oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NCIsIvCfkofwn4++4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NSIsIvCfkofwn4+/4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NiIsIvCfkofigI3imYLvuI8iOiJoYWlyY3V0X21hbiIsIvCfkofwn4+74oCN4pmC77iPIjoiaGFpcmN1dF9tYW46dDIiLCLwn5KH8J+PvOKAjeKZgu+4jyI6ImhhaXJjdXRfbWFuOnQzIiwi8J+Sh/Cfj73igI3imYLvuI8iOiJoYWlyY3V0X21hbjp0NCIsIvCfkofwn4++4oCN4pmC77iPIjoiaGFpcmN1dF9tYW46dDUiLCLwn5KH8J+Pv+KAjeKZgu+4jyI6ImhhaXJjdXRfbWFuOnQ2Iiwi8J+ShuKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW4iLCLwn5KG8J+Pu+KAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDIiLCLwn5KG8J+PvOKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDMiLCLwn5KG8J+PveKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDQiLCLwn5KG8J+PvuKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDUiLCLwn5KG8J+Pv+KAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDYiLCLwn5KG4oCN4pmC77iPIjoibWFzc2FnZV9tYW4iLCLwn5KG8J+Pu+KAjeKZgu+4jyI6Im1hc3NhZ2VfbWFuOnQyIiwi8J+ShvCfj7zigI3imYLvuI8iOiJtYXNzYWdlX21hbjp0MyIsIvCfkobwn4+94oCN4pmC77iPIjoibWFzc2FnZV9tYW46dDQiLCLwn5KG8J+PvuKAjeKZgu+4jyI6Im1hc3NhZ2VfbWFuOnQ1Iiwi8J+ShvCfj7/igI3imYLvuI8iOiJtYXNzYWdlX21hbjp0NiIsIvCfkpEiOiJjb3VwbGVfd2l0aF9oZWFydF93b21hbl9tYW4iLCLwn5Gp4oCN4p2k77iP4oCN8J+RqSI6ImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIiwi8J+RqOKAjeKdpO+4j+KAjfCfkagiOiJjb3VwbGVfd2l0aF9oZWFydF9tYW5fbWFuIiwi8J+SjyI6ImNvdXBsZWtpc3NfbWFuX3dvbWFuIiwi8J+RqeKAjeKdpO+4j+KAjfCfkovigI3wn5GpIjoiY291cGxla2lzc193b21hbl93b21hbiIsIvCfkajigI3inaTvuI/igI3wn5KL4oCN8J+RqCI6ImNvdXBsZWtpc3NfbWFuX21hbiIsIvCfkaoiOiJmYW1pbHlfbWFuX3dvbWFuX2JveSIsIvCfkajigI3wn5Gp4oCN8J+RpyI6ImZhbWlseV9tYW5fd29tYW5fZ2lybCIsIvCfkajigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiOiJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfYm95Iiwi8J+RqOKAjfCfkanigI3wn5Gm4oCN8J+RpiI6ImZhbWlseV9tYW5fd29tYW5fYm95X2JveSIsIvCfkajigI3wn5Gp4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfZ2lybCIsIvCfkanigI3wn5Gp4oCN8J+RpiI6ImZhbWlseV93b21hbl93b21hbl9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkaciOiJmYW1pbHlfd29tYW5fd29tYW5fZ2lybCIsIvCfkanigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiOiJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkabigI3wn5GmIjoiZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkafigI3wn5GnIjoiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfZ2lybCIsIvCfkajigI3wn5Go4oCN8J+RpiI6ImZhbWlseV9tYW5fbWFuX2JveSIsIvCfkajigI3wn5Go4oCN8J+RpyI6ImZhbWlseV9tYW5fbWFuX2dpcmwiLCLwn5Go4oCN8J+RqOKAjfCfkafigI3wn5GmIjoiZmFtaWx5X21hbl9tYW5fZ2lybF9ib3kiLCLwn5Go4oCN8J+RqOKAjfCfkabigI3wn5GmIjoiZmFtaWx5X21hbl9tYW5fYm95X2JveSIsIvCfkajigI3wn5Go4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfbWFuX21hbl9naXJsX2dpcmwiLCLwn5Gp4oCN8J+RpiI6ImZhbWlseV93b21hbl9ib3kiLCLwn5Gp4oCN8J+RpyI6ImZhbWlseV93b21hbl9naXJsIiwi8J+RqeKAjfCfkafigI3wn5GmIjoiZmFtaWx5X3dvbWFuX2dpcmxfYm95Iiwi8J+RqeKAjfCfkabigI3wn5GmIjoiZmFtaWx5X3dvbWFuX2JveV9ib3kiLCLwn5Gp4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfd29tYW5fZ2lybF9naXJsIiwi8J+RqOKAjfCfkaYiOiJmYW1pbHlfbWFuX2JveSIsIvCfkajigI3wn5GnIjoiZmFtaWx5X21hbl9naXJsIiwi8J+RqOKAjfCfkafigI3wn5GmIjoiZmFtaWx5X21hbl9naXJsX2JveSIsIvCfkajigI3wn5Gm4oCN8J+RpiI6ImZhbWlseV9tYW5fYm95X2JveSIsIvCfkajigI3wn5Gn4oCN8J+RpyI6ImZhbWlseV9tYW5fZ2lybF9naXJsIiwi8J+RmiI6IndvbWFuc19jbG90aGVzIiwi8J+RlSI6InRzaGlydCIsIvCfkZYiOiJqZWFucyIsIvCfkZQiOiJuZWNrdGllIiwi8J+RlyI6ImRyZXNzIiwi8J+RmSI6ImJpa2luaSIsIvCfkZgiOiJraW1vbm8iLCLwn5KEIjoibGlwc3RpY2siLCLwn5KLIjoia2lzcyIsIvCfkaMiOiJmb290cHJpbnRzIiwi8J+RoCI6ImhpZ2hfaGVlbCIsIvCfkaEiOiJzYW5kYWwiLCLwn5GiIjoiYm9vdCIsIvCfkZ4iOiJtYW5zX3Nob2UiLCLwn5GfIjoiYXRobGV0aWNfc2hvZSIsIvCfkZIiOiJ3b21hbnNfaGF0Iiwi8J+OqSI6InRvcGhhdCIsIuKbkSI6InJlc2N1ZV93b3JrZXJfaGVsbWV0Iiwi8J+OkyI6Im1vcnRhcl9ib2FyZCIsIvCfkZEiOiJjcm93biIsIvCfjpIiOiJzY2hvb2xfc2F0Y2hlbCIsIvCfkZ0iOiJwb3VjaCIsIvCfkZsiOiJwdXJzZSIsIvCfkZwiOiJoYW5kYmFnIiwi8J+SvCI6ImJyaWVmY2FzZSIsIvCfkZMiOiJleWVnbGFzc2VzIiwi8J+VtiI6ImRhcmtfc3VuZ2xhc3NlcyIsIvCfko0iOiJyaW5nIiwi8J+MgiI6ImNsb3NlZF91bWJyZWxsYSIsIvCfkLYiOiJkb2ciLCLwn5CxIjoiY2F0Iiwi8J+QrSI6Im1vdXNlIiwi8J+QuSI6ImhhbXN0ZXIiLCLwn5CwIjoicmFiYml0Iiwi8J+miiI6ImZveF9mYWNlIiwi8J+QuyI6ImJlYXIiLCLwn5C8IjoicGFuZGFfZmFjZSIsIvCfkKgiOiJrb2FsYSIsIvCfkK8iOiJ0aWdlciIsIvCfpoEiOiJsaW9uIiwi8J+QriI6ImNvdyIsIvCfkLciOiJwaWciLCLwn5C9IjoicGlnX25vc2UiLCLwn5C4IjoiZnJvZyIsIvCfppEiOiJzcXVpZCIsIvCfkJkiOiJvY3RvcHVzIiwi8J+mkCI6InNocmltcCIsIvCfkLUiOiJtb25rZXlfZmFjZSIsIvCfpo0iOiJnb3JpbGxhIiwi8J+ZiCI6InNlZV9ub19ldmlsIiwi8J+ZiSI6ImhlYXJfbm9fZXZpbCIsIvCfmYoiOiJzcGVha19ub19ldmlsIiwi8J+QkiI6Im1vbmtleSIsIvCfkJQiOiJjaGlja2VuIiwi8J+QpyI6InBlbmd1aW4iLCLwn5CmIjoiYmlyZCIsIvCfkKQiOiJiYWJ5X2NoaWNrIiwi8J+QoyI6ImhhdGNoaW5nX2NoaWNrIiwi8J+QpSI6ImhhdGNoZWRfY2hpY2siLCLwn6aGIjoiZHVjayIsIvCfpoUiOiJlYWdsZSIsIvCfpokiOiJvd2wiLCLwn6aHIjoiYmF0Iiwi8J+QuiI6IndvbGYiLCLwn5CXIjoiYm9hciIsIvCfkLQiOiJob3JzZSIsIvCfpoQiOiJ1bmljb3JuIiwi8J+QnSI6ImhvbmV5YmVlIiwi8J+QmyI6ImJ1ZyIsIvCfposiOiJidXR0ZXJmbHkiLCLwn5CMIjoic25haWwiLCLwn5CeIjoiYmVldGxlIiwi8J+QnCI6ImFudCIsIvCflbciOiJzcGlkZXIiLCLwn6aCIjoic2NvcnBpb24iLCLwn6aAIjoiY3JhYiIsIvCfkI0iOiJzbmFrZSIsIvCfpo4iOiJsaXphcmQiLCLwn5CiIjoidHVydGxlIiwi8J+QoCI6InRyb3BpY2FsX2Zpc2giLCLwn5CfIjoiZmlzaCIsIvCfkKEiOiJibG93ZmlzaCIsIvCfkKwiOiJkb2xwaGluIiwi8J+miCI6InNoYXJrIiwi8J+QsyI6IndoYWxlIiwi8J+QiyI6IndoYWxlMiIsIvCfkIoiOiJjcm9jb2RpbGUiLCLwn5CGIjoibGVvcGFyZCIsIvCfkIUiOiJ0aWdlcjIiLCLwn5CDIjoid2F0ZXJfYnVmZmFsbyIsIvCfkIIiOiJveCIsIvCfkIQiOiJjb3cyIiwi8J+mjCI6ImRlZXIiLCLwn5CqIjoiZHJvbWVkYXJ5X2NhbWVsIiwi8J+QqyI6ImNhbWVsIiwi8J+QmCI6ImVsZXBoYW50Iiwi8J+mjyI6InJoaW5vY2Vyb3MiLCLwn5CQIjoiZ29hdCIsIvCfkI8iOiJyYW0iLCLwn5CRIjoic2hlZXAiLCLwn5COIjoicmFjZWhvcnNlIiwi8J+QliI6InBpZzIiLCLwn5CAIjoicmF0Iiwi8J+QgSI6Im1vdXNlMiIsIvCfkJMiOiJyb29zdGVyIiwi8J+mgyI6InR1cmtleSIsIvCflYoiOiJkb3ZlIiwi8J+QlSI6ImRvZzIiLCLwn5CpIjoicG9vZGxlIiwi8J+QiCI6ImNhdDIiLCLwn5CHIjoicmFiYml0MiIsIvCfkL8iOiJjaGlwbXVuayIsIvCfkL4iOiJwYXdfcHJpbnRzIiwi8J+QiSI6ImRyYWdvbiIsIvCfkLIiOiJkcmFnb25fZmFjZSIsIvCfjLUiOiJjYWN0dXMiLCLwn46EIjoiY2hyaXN0bWFzX3RyZWUiLCLwn4yyIjoiZXZlcmdyZWVuX3RyZWUiLCLwn4yzIjoiZGVjaWR1b3VzX3RyZWUiLCLwn4y0IjoicGFsbV90cmVlIiwi8J+MsSI6InNlZWRsaW5nIiwi8J+MvyI6ImhlcmIiLCLimJgiOiJzaGFtcm9jayIsIvCfjYAiOiJmb3VyX2xlYWZfY2xvdmVyIiwi8J+OjSI6ImJhbWJvbyIsIvCfjosiOiJ0YW5hYmF0YV90cmVlIiwi8J+NgyI6ImxlYXZlcyIsIvCfjYIiOiJmYWxsZW5fbGVhZiIsIvCfjYEiOiJtYXBsZV9sZWFmIiwi8J+MviI6ImVhcl9vZl9yaWNlIiwi8J+MuiI6ImhpYmlzY3VzIiwi8J+MuyI6InN1bmZsb3dlciIsIvCfjLkiOiJyb3NlIiwi8J+lgCI6IndpbHRlZF9mbG93ZXIiLCLwn4y3IjoidHVsaXAiLCLwn4y8IjoiYmxvc3NvbSIsIvCfjLgiOiJjaGVycnlfYmxvc3NvbSIsIvCfkpAiOiJib3VxdWV0Iiwi8J+NhCI6Im11c2hyb29tIiwi8J+MsCI6ImNoZXN0bnV0Iiwi8J+OgyI6ImphY2tfb19sYW50ZXJuIiwi8J+QmiI6InNoZWxsIiwi8J+VuCI6InNwaWRlcl93ZWIiLCLwn4yOIjoiZWFydGhfYW1lcmljYXMiLCLwn4yNIjoiZWFydGhfYWZyaWNhIiwi8J+MjyI6ImVhcnRoX2FzaWEiLCLwn4yVIjoiZnVsbF9tb29uIiwi8J+MliI6IndhbmluZ19naWJib3VzX21vb24iLCLwn4yXIjoibGFzdF9xdWFydGVyX21vb24iLCLwn4yYIjoid2FuaW5nX2NyZXNjZW50X21vb24iLCLwn4yRIjoibmV3X21vb24iLCLwn4ySIjoid2F4aW5nX2NyZXNjZW50X21vb24iLCLwn4yTIjoiZmlyc3RfcXVhcnRlcl9tb29uIiwi8J+MlCI6IndheGluZ19naWJib3VzX21vb24iLCLwn4yaIjoibmV3X21vb25fd2l0aF9mYWNlIiwi8J+MnSI6ImZ1bGxfbW9vbl93aXRoX2ZhY2UiLCLwn4ybIjoiZmlyc3RfcXVhcnRlcl9tb29uX3dpdGhfZmFjZSIsIvCfjJwiOiJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCLwn4yeIjoic3VuX3dpdGhfZmFjZSIsIvCfjJkiOiJjcmVzY2VudF9tb29uIiwi4q2QIjoic3RhciIsIvCfjJ8iOiJzdGFyMiIsIvCfkqsiOiJkaXp6eSIsIuKcqCI6InNwYXJrbGVzIiwi4piEIjoiY29tZXQiLCLimIAiOiJzdW5ueSIsIvCfjKQiOiJzdW5fYmVoaW5kX3NtYWxsX2Nsb3VkIiwi4puFIjoicGFydGx5X3N1bm55Iiwi8J+MpSI6InN1bl9iZWhpbmRfbGFyZ2VfY2xvdWQiLCLwn4ymIjoic3VuX2JlaGluZF9yYWluX2Nsb3VkIiwi4piBIjoiY2xvdWQiLCLwn4ynIjoiY2xvdWRfd2l0aF9yYWluIiwi4puIIjoiY2xvdWRfd2l0aF9saWdodG5pbmdfYW5kX3JhaW4iLCLwn4ypIjoiY2xvdWRfd2l0aF9saWdodG5pbmciLCLimqEiOiJ6YXAiLCLwn5SlIjoiZmlyZSIsIvCfkqUiOiJib29tIiwi4p2EIjoic25vd2ZsYWtlIiwi8J+MqCI6ImNsb3VkX3dpdGhfc25vdyIsIuKbhCI6InNub3dtYW4iLCLimIMiOiJzbm93bWFuX3dpdGhfc25vdyIsIvCfjKwiOiJ3aW5kX2ZhY2UiLCLwn5KoIjoiZGFzaCIsIvCfjKoiOiJ0b3JuYWRvIiwi8J+MqyI6ImZvZyIsIuKYgiI6Im9wZW5fdW1icmVsbGEiLCLimJQiOiJ1bWJyZWxsYSIsIvCfkqciOiJkcm9wbGV0Iiwi8J+SpiI6InN3ZWF0X2Ryb3BzIiwi8J+MiiI6Im9jZWFuIiwi8J+NjyI6ImdyZWVuX2FwcGxlIiwi8J+NjiI6ImFwcGxlIiwi8J+NkCI6InBlYXIiLCLwn42KIjoidGFuZ2VyaW5lIiwi8J+NiyI6ImxlbW9uIiwi8J+NjCI6ImJhbmFuYSIsIvCfjYkiOiJ3YXRlcm1lbG9uIiwi8J+NhyI6ImdyYXBlcyIsIvCfjZMiOiJzdHJhd2JlcnJ5Iiwi8J+NiCI6Im1lbG9uIiwi8J+NkiI6ImNoZXJyaWVzIiwi8J+NkSI6InBlYWNoIiwi8J+NjSI6InBpbmVhcHBsZSIsIvCfpZ0iOiJraXdpX2ZydWl0Iiwi8J+lkSI6ImF2b2NhZG8iLCLwn42FIjoidG9tYXRvIiwi8J+NhiI6ImVnZ3BsYW50Iiwi8J+lkiI6ImN1Y3VtYmVyIiwi8J+llSI6ImNhcnJvdCIsIvCfjLYiOiJob3RfcGVwcGVyIiwi8J+llCI6InBvdGF0byIsIvCfjL0iOiJjb3JuIiwi8J+NoCI6InN3ZWV0X3BvdGF0byIsIvCfpZwiOiJwZWFudXRzIiwi8J+NryI6ImhvbmV5X3BvdCIsIvCfpZAiOiJjcm9pc3NhbnQiLCLwn42eIjoiYnJlYWQiLCLwn6WWIjoiYmFndWV0dGVfYnJlYWQiLCLwn6eAIjoiY2hlZXNlIiwi8J+lmiI6ImVnZyIsIvCfpZMiOiJiYWNvbiIsIvCfpZ4iOiJwYW5jYWtlcyIsIvCfjZciOiJwb3VsdHJ5X2xlZyIsIvCfjZYiOiJtZWF0X29uX2JvbmUiLCLwn42kIjoiZnJpZWRfc2hyaW1wIiwi8J+NsyI6ImZyaWVkX2VnZyIsIvCfjZQiOiJoYW1idXJnZXIiLCLwn42fIjoiZnJpZXMiLCLwn6WZIjoic3R1ZmZlZF9mbGF0YnJlYWQiLCLwn4ytIjoiaG90ZG9nIiwi8J+NlSI6InBpenphIiwi8J+NnSI6InNwYWdoZXR0aSIsIvCfjK4iOiJ0YWNvIiwi8J+MryI6ImJ1cnJpdG8iLCLwn6WXIjoiZ3JlZW5fc2FsYWQiLCLwn6WYIjoic2hhbGxvd19wYW5fb2ZfZm9vZCIsIvCfjZwiOiJyYW1lbiIsIvCfjbIiOiJzdGV3Iiwi8J+NpSI6ImZpc2hfY2FrZSIsIvCfjaMiOiJzdXNoaSIsIvCfjbEiOiJiZW50byIsIvCfjZsiOiJjdXJyeSIsIvCfjZkiOiJyaWNlX2JhbGwiLCLwn42aIjoicmljZSIsIvCfjZgiOiJyaWNlX2NyYWNrZXIiLCLwn42iIjoib2RlbiIsIvCfjaEiOiJkYW5nbyIsIvCfjaciOiJzaGF2ZWRfaWNlIiwi8J+NqCI6ImljZV9jcmVhbSIsIvCfjaYiOiJpY2VjcmVhbSIsIvCfjbAiOiJjYWtlIiwi8J+OgiI6ImJpcnRoZGF5Iiwi8J+NriI6ImN1c3RhcmQiLCLwn42sIjoiY2FuZHkiLCLwn42tIjoibG9sbGlwb3AiLCLwn42rIjoiY2hvY29sYXRlX2JhciIsIvCfjb8iOiJwb3Bjb3JuIiwi8J+NqSI6ImRvdWdobnV0Iiwi8J+NqiI6ImNvb2tpZSIsIvCfpZsiOiJtaWxrX2dsYXNzIiwi8J+NuiI6ImJlZXIiLCLwn427IjoiYmVlcnMiLCLwn6WCIjoiY2xpbmtpbmdfZ2xhc3NlcyIsIvCfjbciOiJ3aW5lX2dsYXNzIiwi8J+lgyI6InR1bWJsZXJfZ2xhc3MiLCLwn424IjoiY29ja3RhaWwiLCLwn425IjoidHJvcGljYWxfZHJpbmsiLCLwn42+IjoiY2hhbXBhZ25lIiwi8J+NtiI6InNha2UiLCLwn421IjoidGVhIiwi4piVIjoiY29mZmVlIiwi8J+NvCI6ImJhYnlfYm90dGxlIiwi8J+lhCI6InNwb29uIiwi8J+NtCI6ImZvcmtfYW5kX2tuaWZlIiwi8J+NvSI6InBsYXRlX3dpdGhfY3V0bGVyeSIsIuKavSI6InNvY2NlciIsIvCfj4AiOiJiYXNrZXRiYWxsIiwi8J+PiCI6ImZvb3RiYWxsIiwi4pq+IjoiYmFzZWJhbGwiLCLwn46+IjoidGVubmlzIiwi8J+PkCI6InZvbGxleWJhbGwiLCLwn4+JIjoicnVnYnlfZm9vdGJhbGwiLCLwn46xIjoiOGJhbGwiLCLim7MiOiJnb2xmIiwi8J+PjO+4j+KAjeKZgCI6ImdvbGZpbmdfd29tYW4iLCLwn4+MIjoiZ29sZmluZ19tYW4iLCLwn4+M8J+PuyI6ImdvbGZpbmdfbWFuOnQyIiwi8J+PjPCfj7wiOiJnb2xmaW5nX21hbjp0MyIsIvCfj4zwn4+9IjoiZ29sZmluZ19tYW46dDQiLCLwn4+M8J+PviI6ImdvbGZpbmdfbWFuOnQ1Iiwi8J+PjPCfj78iOiJnb2xmaW5nX21hbjp0NiIsIvCfj5MiOiJwaW5nX3BvbmciLCLwn4+4IjoiYmFkbWludG9uIiwi8J+lhSI6ImdvYWxfbmV0Iiwi8J+PkiI6ImljZV9ob2NrZXkiLCLwn4+RIjoiZmllbGRfaG9ja2V5Iiwi8J+PjyI6ImNyaWNrZXRfYmF0X2FuZF9iYWxsIiwi8J+OvyI6InNraSIsIuKbtyI6InNraWVyIiwi8J+PgiI6InNub3dib2FyZGVyIiwi8J+PgvCfj7siOiJzbm93Ym9hcmRlcjp0MiIsIvCfj4Lwn4+8Ijoic25vd2JvYXJkZXI6dDMiLCLwn4+C8J+PvSI6InNub3dib2FyZGVyOnQ0Iiwi8J+PgvCfj74iOiJzbm93Ym9hcmRlcjp0NSIsIvCfj4Lwn4+/Ijoic25vd2JvYXJkZXI6dDYiLCLwn6S6IjoicGVyc29uX2ZlbmNpbmciLCLwn6S84oCN4pmAIjoid29tZW5fd3Jlc3RsaW5nIiwi8J+kvOKAjeKZgiI6Im1lbl93cmVzdGxpbmciLCLwn6S44oCN4pmA77iPIjoid29tYW5fY2FydHdoZWVsaW5nIiwi8J+kuPCfj7vigI3imYDvuI8iOiJ3b21hbl9jYXJ0d2hlZWxpbmc6dDIiLCLwn6S48J+PvOKAjeKZgO+4jyI6IndvbWFuX2NhcnR3aGVlbGluZzp0MyIsIvCfpLjwn4+94oCN4pmA77iPIjoid29tYW5fY2FydHdoZWVsaW5nOnQ0Iiwi8J+kuPCfj77igI3imYDvuI8iOiJ3b21hbl9jYXJ0d2hlZWxpbmc6dDUiLCLwn6S48J+Pv+KAjeKZgO+4jyI6IndvbWFuX2NhcnR3aGVlbGluZzp0NiIsIvCfpLjigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nIiwi8J+kuPCfj7vigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQyIiwi8J+kuPCfj7zigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQzIiwi8J+kuPCfj73igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ0Iiwi8J+kuPCfj77igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ1Iiwi8J+kuPCfj7/igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ2Iiwi8J+kvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGwiLCLwn6S+8J+Pu+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDIiLCLwn6S+8J+PvOKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDMiLCLwn6S+8J+PveKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDQiLCLwn6S+8J+PvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDUiLCLwn6S+8J+Pv+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDYiLCLwn6S+4oCN4pmC77iPIjoibWFuX3BsYXlpbmdfaGFuZGJhbGwiLCLwn6S+8J+Pu+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX2hhbmRiYWxsOnQyIiwi8J+kvvCfj7zigI3imYLvuI8iOiJtYW5fcGxheWluZ19oYW5kYmFsbDp0MyIsIvCfpL7wn4+94oCN4pmC77iPIjoibWFuX3BsYXlpbmdfaGFuZGJhbGw6dDQiLCLwn6S+8J+PvuKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX2hhbmRiYWxsOnQ1Iiwi8J+kvvCfj7/igI3imYLvuI8iOiJtYW5fcGxheWluZ19oYW5kYmFsbDp0NiIsIuKbuCI6ImljZV9za2F0ZSIsIvCfj7kiOiJib3dfYW5kX2Fycm93Iiwi8J+OoyI6ImZpc2hpbmdfcG9sZV9hbmRfZmlzaCIsIvCfpYoiOiJib3hpbmdfZ2xvdmUiLCLwn6WLIjoibWFydGlhbF9hcnRzX3VuaWZvcm0iLCLwn5qj4oCN4pmA77iPIjoicm93aW5nX3dvbWFuIiwi8J+ao/Cfj7vigI3imYDvuI8iOiJyb3dpbmdfd29tYW46dDIiLCLwn5qj8J+PvOKAjeKZgO+4jyI6InJvd2luZ193b21hbjp0MyIsIvCfmqPwn4+94oCN4pmA77iPIjoicm93aW5nX3dvbWFuOnQ0Iiwi8J+ao/Cfj77igI3imYDvuI8iOiJyb3dpbmdfd29tYW46dDUiLCLwn5qj8J+Pv+KAjeKZgO+4jyI6InJvd2luZ193b21hbjp0NiIsIvCfmqMiOiJyb3dpbmdfbWFuIiwi8J+ao/Cfj7siOiJyb3dpbmdfbWFuOnQyIiwi8J+ao/Cfj7wiOiJyb3dpbmdfbWFuOnQzIiwi8J+ao/Cfj70iOiJyb3dpbmdfbWFuOnQ0Iiwi8J+ao/Cfj74iOiJyb3dpbmdfbWFuOnQ1Iiwi8J+ao/Cfj78iOiJyb3dpbmdfbWFuOnQ2Iiwi8J+PiuKAjeKZgO+4jyI6InN3aW1taW5nX3dvbWFuIiwi8J+PivCfj7vigI3imYDvuI8iOiJzd2ltbWluZ193b21hbjp0MiIsIvCfj4rwn4+84oCN4pmA77iPIjoic3dpbW1pbmdfd29tYW46dDMiLCLwn4+K8J+PveKAjeKZgO+4jyI6InN3aW1taW5nX3dvbWFuOnQ0Iiwi8J+PivCfj77igI3imYDvuI8iOiJzd2ltbWluZ193b21hbjp0NSIsIvCfj4rwn4+/4oCN4pmA77iPIjoic3dpbW1pbmdfd29tYW46dDYiLCLwn4+KIjoic3dpbW1pbmdfbWFuIiwi8J+PivCfj7siOiJzd2ltbWluZ19tYW46dDIiLCLwn4+K8J+PvCI6InN3aW1taW5nX21hbjp0MyIsIvCfj4rwn4+9Ijoic3dpbW1pbmdfbWFuOnQ0Iiwi8J+PivCfj74iOiJzd2ltbWluZ19tYW46dDUiLCLwn4+K8J+PvyI6InN3aW1taW5nX21hbjp0NiIsIvCfpL3igI3imYDvuI8iOiJ3b21hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCLwn6S98J+Pu+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbzp0MiIsIvCfpL3wn4+84oCN4pmA77iPIjoid29tYW5fcGxheWluZ193YXRlcl9wb2xvOnQzIiwi8J+kvfCfj73igI3imYDvuI8iOiJ3b21hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDQiLCLwn6S98J+PvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbzp0NSIsIvCfpL3wn4+/4oCN4pmA77iPIjoid29tYW5fcGxheWluZ193YXRlcl9wb2xvOnQ2Iiwi8J+kveKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCLwn6S98J+Pu+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDIiLCLwn6S98J+PvOKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDMiLCLwn6S98J+PveKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDQiLCLwn6S98J+PvuKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDUiLCLwn6S98J+Pv+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDYiLCLwn4+E4oCN4pmA77iPIjoic3VyZmluZ193b21hbiIsIvCfj4Twn4+74oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0MiIsIvCfj4Twn4+84oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0MyIsIvCfj4Twn4+94oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NCIsIvCfj4Twn4++4oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NSIsIvCfj4Twn4+/4oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NiIsIvCfj4QiOiJzdXJmaW5nX21hbiIsIvCfj4Twn4+7Ijoic3VyZmluZ19tYW46dDIiLCLwn4+E8J+PvCI6InN1cmZpbmdfbWFuOnQzIiwi8J+PhPCfj70iOiJzdXJmaW5nX21hbjp0NCIsIvCfj4Twn4++Ijoic3VyZmluZ19tYW46dDUiLCLwn4+E8J+PvyI6InN1cmZpbmdfbWFuOnQ2Iiwi8J+bgCI6ImJhdGgiLCLwn5uA8J+PuyI6ImJhdGg6dDIiLCLwn5uA8J+PvCI6ImJhdGg6dDMiLCLwn5uA8J+PvSI6ImJhdGg6dDQiLCLwn5uA8J+PviI6ImJhdGg6dDUiLCLwn5uA8J+PvyI6ImJhdGg6dDYiLCLim7nvuI/igI3imYAiOiJiYXNrZXRiYWxsX3dvbWFuIiwi4pu5IjoiYmFza2V0YmFsbF9tYW4iLCLim7nwn4+7IjoiYmFza2V0YmFsbF9tYW46dDIiLCLim7nwn4+8IjoiYmFza2V0YmFsbF9tYW46dDMiLCLim7nwn4+9IjoiYmFza2V0YmFsbF9tYW46dDQiLCLim7nwn4++IjoiYmFza2V0YmFsbF9tYW46dDUiLCLim7nwn4+/IjoiYmFza2V0YmFsbF9tYW46dDYiLCLwn4+L77iP4oCN4pmAIjoid2VpZ2h0X2xpZnRpbmdfd29tYW4iLCLwn4+LIjoid2VpZ2h0X2xpZnRpbmdfbWFuIiwi8J+Pi/Cfj7siOiJ3ZWlnaHRfbGlmdGluZ19tYW46dDIiLCLwn4+L8J+PvCI6IndlaWdodF9saWZ0aW5nX21hbjp0MyIsIvCfj4vwn4+9Ijoid2VpZ2h0X2xpZnRpbmdfbWFuOnQ0Iiwi8J+Pi/Cfj74iOiJ3ZWlnaHRfbGlmdGluZ19tYW46dDUiLCLwn4+L8J+PvyI6IndlaWdodF9saWZ0aW5nX21hbjp0NiIsIvCfmrTigI3imYDvuI8iOiJiaWtpbmdfd29tYW4iLCLwn5q08J+Pu+KAjeKZgO+4jyI6ImJpa2luZ193b21hbjp0MiIsIvCfmrTwn4+84oCN4pmA77iPIjoiYmlraW5nX3dvbWFuOnQzIiwi8J+atPCfj73igI3imYDvuI8iOiJiaWtpbmdfd29tYW46dDQiLCLwn5q08J+PvuKAjeKZgO+4jyI6ImJpa2luZ193b21hbjp0NSIsIvCfmrTwn4+/4oCN4pmA77iPIjoiYmlraW5nX3dvbWFuOnQ2Iiwi8J+atCI6ImJpa2luZ19tYW4iLCLwn5q08J+PuyI6ImJpa2luZ19tYW46dDIiLCLwn5q08J+PvCI6ImJpa2luZ19tYW46dDMiLCLwn5q08J+PvSI6ImJpa2luZ19tYW46dDQiLCLwn5q08J+PviI6ImJpa2luZ19tYW46dDUiLCLwn5q08J+PvyI6ImJpa2luZ19tYW46dDYiLCLwn5q14oCN4pmA77iPIjoibW91bnRhaW5fYmlraW5nX3dvbWFuIiwi8J+atfCfj7vigI3imYDvuI8iOiJtb3VudGFpbl9iaWtpbmdfd29tYW46dDIiLCLwn5q18J+PvOKAjeKZgO+4jyI6Im1vdW50YWluX2Jpa2luZ193b21hbjp0MyIsIvCfmrXwn4+94oCN4pmA77iPIjoibW91bnRhaW5fYmlraW5nX3dvbWFuOnQ0Iiwi8J+atfCfj77igI3imYDvuI8iOiJtb3VudGFpbl9iaWtpbmdfd29tYW46dDUiLCLwn5q18J+Pv+KAjeKZgO+4jyI6Im1vdW50YWluX2Jpa2luZ193b21hbjp0NiIsIvCfmrUiOiJtb3VudGFpbl9iaWtpbmdfbWFuIiwi8J+atfCfj7siOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQyIiwi8J+atfCfj7wiOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQzIiwi8J+atfCfj70iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ0Iiwi8J+atfCfj74iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ1Iiwi8J+atfCfj78iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ2Iiwi8J+PhyI6ImhvcnNlX3JhY2luZyIsIvCfj4fwn4+7IjoiaG9yc2VfcmFjaW5nOnQyIiwi8J+Ph/Cfj7wiOiJob3JzZV9yYWNpbmc6dDMiLCLwn4+H8J+PvSI6ImhvcnNlX3JhY2luZzp0NCIsIvCfj4fwn4++IjoiaG9yc2VfcmFjaW5nOnQ1Iiwi8J+Ph/Cfj78iOiJob3JzZV9yYWNpbmc6dDYiLCLwn5W0IjoiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIiwi8J+VtPCfj7siOiJidXNpbmVzc19zdWl0X2xldml0YXRpbmc6dDIiLCLwn5W08J+PvCI6ImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZzp0MyIsIvCflbTwn4+9IjoiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nOnQ0Iiwi8J+VtPCfj74iOiJidXNpbmVzc19zdWl0X2xldml0YXRpbmc6dDUiLCLwn5W08J+PvyI6ImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZzp0NiIsIvCfj4YiOiJ0cm9waHkiLCLwn469IjoicnVubmluZ19zaGlydF93aXRoX3Nhc2giLCLwn4+FIjoibWVkYWxfc3BvcnRzIiwi8J+OliI6Im1lZGFsX21pbGl0YXJ5Iiwi8J+lhyI6IjFzdF9wbGFjZV9tZWRhbCIsIvCfpYgiOiIybmRfcGxhY2VfbWVkYWwiLCLwn6WJIjoiM3JkX3BsYWNlX21lZGFsIiwi8J+OlyI6InJlbWluZGVyX3JpYmJvbiIsIvCfj7UiOiJyb3NldHRlIiwi8J+OqyI6InRpY2tldCIsIvCfjp8iOiJ0aWNrZXRzIiwi8J+OrSI6InBlcmZvcm1pbmdfYXJ0cyIsIvCfjqgiOiJhcnQiLCLwn46qIjoiY2lyY3VzX3RlbnQiLCLwn6S54oCN4pmA77iPIjoid29tYW5fanVnZ2xpbmciLCLwn6S58J+Pu+KAjeKZgO+4jyI6IndvbWFuX2p1Z2dsaW5nOnQyIiwi8J+kufCfj7zigI3imYDvuI8iOiJ3b21hbl9qdWdnbGluZzp0MyIsIvCfpLnwn4+94oCN4pmA77iPIjoid29tYW5fanVnZ2xpbmc6dDQiLCLwn6S58J+PvuKAjeKZgO+4jyI6IndvbWFuX2p1Z2dsaW5nOnQ1Iiwi8J+kufCfj7/igI3imYDvuI8iOiJ3b21hbl9qdWdnbGluZzp0NiIsIvCfpLnigI3imYLvuI8iOiJtYW5fanVnZ2xpbmciLCLwn6S58J+Pu+KAjeKZgu+4jyI6Im1hbl9qdWdnbGluZzp0MiIsIvCfpLnwn4+84oCN4pmC77iPIjoibWFuX2p1Z2dsaW5nOnQzIiwi8J+kufCfj73igI3imYLvuI8iOiJtYW5fanVnZ2xpbmc6dDQiLCLwn6S58J+PvuKAjeKZgu+4jyI6Im1hbl9qdWdnbGluZzp0NSIsIvCfpLnwn4+/4oCN4pmC77iPIjoibWFuX2p1Z2dsaW5nOnQ2Iiwi8J+OpCI6Im1pY3JvcGhvbmUiLCLwn46nIjoiaGVhZHBob25lcyIsIvCfjrwiOiJtdXNpY2FsX3Njb3JlIiwi8J+OuSI6Im11c2ljYWxfa2V5Ym9hcmQiLCLwn6WBIjoiZHJ1bSIsIvCfjrciOiJzYXhvcGhvbmUiLCLwn466IjoidHJ1bXBldCIsIvCfjrgiOiJndWl0YXIiLCLwn467IjoidmlvbGluIiwi8J+OrCI6ImNsYXBwZXIiLCLwn46uIjoidmlkZW9fZ2FtZSIsIvCfkb4iOiJzcGFjZV9pbnZhZGVyIiwi8J+OryI6ImRhcnQiLCLwn46yIjoiZ2FtZV9kaWUiLCLwn46wIjoic2xvdF9tYWNoaW5lIiwi8J+OsyI6ImJvd2xpbmciLCLwn5qXIjoicmVkX2NhciIsIvCfmpUiOiJ0YXhpIiwi8J+amSI6ImJsdWVfY2FyIiwi8J+ajCI6ImJ1cyIsIvCfmo4iOiJ0cm9sbGV5YnVzIiwi8J+PjiI6InJhY2luZ19jYXIiLCLwn5qTIjoicG9saWNlX2NhciIsIvCfmpEiOiJhbWJ1bGFuY2UiLCLwn5qSIjoiZmlyZV9lbmdpbmUiLCLwn5qQIjoibWluaWJ1cyIsIvCfmpoiOiJ0cnVjayIsIvCfmpsiOiJhcnRpY3VsYXRlZF9sb3JyeSIsIvCfmpwiOiJ0cmFjdG9yIiwi8J+btCI6ImtpY2tfc2Nvb3RlciIsIvCfj40iOiJtb3RvcmN5Y2xlIiwi8J+asiI6ImJpa2UiLCLwn5u1IjoibW90b3Jfc2Nvb3RlciIsIvCfmqgiOiJyb3RhdGluZ19saWdodCIsIvCfmpQiOiJvbmNvbWluZ19wb2xpY2VfY2FyIiwi8J+ajSI6Im9uY29taW5nX2J1cyIsIvCfmpgiOiJvbmNvbWluZ19hdXRvbW9iaWxlIiwi8J+aliI6Im9uY29taW5nX3RheGkiLCLwn5qhIjoiYWVyaWFsX3RyYW13YXkiLCLwn5qgIjoibW91bnRhaW5fY2FibGV3YXkiLCLwn5qfIjoic3VzcGVuc2lvbl9yYWlsd2F5Iiwi8J+agyI6InJhaWx3YXlfY2FyIiwi8J+aiyI6InRyYWluIiwi8J+anSI6Im1vbm9yYWlsIiwi8J+ahCI6ImJ1bGxldHRyYWluX3NpZGUiLCLwn5qFIjoiYnVsbGV0dHJhaW5fZnJvbnQiLCLwn5qIIjoibGlnaHRfcmFpbCIsIvCfmp4iOiJtb3VudGFpbl9yYWlsd2F5Iiwi8J+agiI6InN0ZWFtX2xvY29tb3RpdmUiLCLwn5qGIjoidHJhaW4yIiwi8J+ahyI6Im1ldHJvIiwi8J+aiiI6InRyYW0iLCLwn5qJIjoic3RhdGlvbiIsIvCfmoEiOiJoZWxpY29wdGVyIiwi8J+bqSI6InNtYWxsX2FpcnBsYW5lIiwi4pyIIjoiYWlycGxhbmUiLCLwn5urIjoiZmxpZ2h0X2RlcGFydHVyZSIsIvCfm6wiOiJmbGlnaHRfYXJyaXZhbCIsIuKbtSI6InNhaWxib2F0Iiwi8J+bpSI6Im1vdG9yX2JvYXQiLCLwn5qkIjoic3BlZWRib2F0Iiwi4pu0IjoiZmVycnkiLCLwn5uzIjoicGFzc2VuZ2VyX3NoaXAiLCLwn5qAIjoicm9ja2V0Iiwi8J+bsCI6ImFydGlmaWNpYWxfc2F0ZWxsaXRlIiwi8J+SuiI6InNlYXQiLCLwn5u2IjoiY2Fub2UiLCLimpMiOiJhbmNob3IiLCLwn5qnIjoiY29uc3RydWN0aW9uIiwi4pu9IjoiZnVlbHB1bXAiLCLwn5qPIjoiYnVzc3RvcCIsIvCfmqYiOiJ2ZXJ0aWNhbF90cmFmZmljX2xpZ2h0Iiwi8J+apSI6InRyYWZmaWNfbGlnaHQiLCLwn4+BIjoiY2hlY2tlcmVkX2ZsYWciLCLwn5qiIjoic2hpcCIsIvCfjqEiOiJmZXJyaXNfd2hlZWwiLCLwn46iIjoicm9sbGVyX2NvYXN0ZXIiLCLwn46gIjoiY2Fyb3VzZWxfaG9yc2UiLCLwn4+XIjoiYnVpbGRpbmdfY29uc3RydWN0aW9uIiwi8J+MgSI6ImZvZ2d5Iiwi8J+XvCI6InRva3lvX3Rvd2VyIiwi8J+PrSI6ImZhY3RvcnkiLCLim7IiOiJmb3VudGFpbiIsIvCfjpEiOiJyaWNlX3NjZW5lIiwi4puwIjoibW91bnRhaW4iLCLwn4+UIjoibW91bnRhaW5fc25vdyIsIvCfl7siOiJtb3VudF9mdWppIiwi8J+MiyI6InZvbGNhbm8iLCLwn5e+IjoiamFwYW4iLCLwn4+VIjoiY2FtcGluZyIsIuKbuiI6InRlbnQiLCLwn4+eIjoibmF0aW9uYWxfcGFyayIsIvCfm6MiOiJtb3RvcndheSIsIvCfm6QiOiJyYWlsd2F5X3RyYWNrIiwi8J+MhSI6InN1bnJpc2UiLCLwn4yEIjoic3VucmlzZV9vdmVyX21vdW50YWlucyIsIvCfj5wiOiJkZXNlcnQiLCLwn4+WIjoiYmVhY2hfdW1icmVsbGEiLCLwn4+dIjoiZGVzZXJ0X2lzbGFuZCIsIvCfjIciOiJjaXR5X3N1bnJpc2UiLCLwn4yGIjoiY2l0eV9zdW5zZXQiLCLwn4+ZIjoiY2l0eXNjYXBlIiwi8J+MgyI6Im5pZ2h0X3dpdGhfc3RhcnMiLCLwn4yJIjoiYnJpZGdlX2F0X25pZ2h0Iiwi8J+MjCI6Im1pbGt5X3dheSIsIvCfjKAiOiJzdGFycyIsIvCfjociOiJzcGFya2xlciIsIvCfjoYiOiJmaXJld29ya3MiLCLwn4yIIjoicmFpbmJvdyIsIvCfj5giOiJob3VzZXMiLCLwn4+wIjoiZXVyb3BlYW5fY2FzdGxlIiwi8J+PryI6ImphcGFuZXNlX2Nhc3RsZSIsIvCfj58iOiJzdGFkaXVtIiwi8J+XvSI6InN0YXR1ZV9vZl9saWJlcnR5Iiwi8J+PoCI6ImhvdXNlIiwi8J+PoSI6ImhvdXNlX3dpdGhfZ2FyZGVuIiwi8J+PmiI6ImRlcmVsaWN0X2hvdXNlIiwi8J+PoiI6Im9mZmljZSIsIvCfj6wiOiJkZXBhcnRtZW50X3N0b3JlIiwi8J+PoyI6InBvc3Rfb2ZmaWNlIiwi8J+PpCI6ImV1cm9wZWFuX3Bvc3Rfb2ZmaWNlIiwi8J+PpSI6Imhvc3BpdGFsIiwi8J+PpiI6ImJhbmsiLCLwn4+oIjoiaG90ZWwiLCLwn4+qIjoiY29udmVuaWVuY2Vfc3RvcmUiLCLwn4+rIjoic2Nob29sIiwi8J+PqSI6ImxvdmVfaG90ZWwiLCLwn5KSIjoid2VkZGluZyIsIvCfj5siOiJjbGFzc2ljYWxfYnVpbGRpbmciLCLim6oiOiJjaHVyY2giLCLwn5WMIjoibW9zcXVlIiwi8J+VjSI6InN5bmFnb2d1ZSIsIvCflYsiOiJrYWFiYSIsIuKbqSI6InNoaW50b19zaHJpbmUiLCLijJoiOiJ3YXRjaCIsIvCfk7EiOiJpcGhvbmUiLCLwn5OyIjoiY2FsbGluZyIsIvCfkrsiOiJjb21wdXRlciIsIuKMqCI6ImtleWJvYXJkIiwi8J+WpSI6ImRlc2t0b3BfY29tcHV0ZXIiLCLwn5aoIjoicHJpbnRlciIsIvCflrEiOiJjb21wdXRlcl9tb3VzZSIsIvCflrIiOiJ0cmFja2JhbGwiLCLwn5W5Ijoiam95c3RpY2siLCLwn5ecIjoiY2xhbXAiLCLwn5K9IjoibWluaWRpc2MiLCLwn5K+IjoiZmxvcHB5X2Rpc2siLCLwn5K/IjoiY2QiLCLwn5OAIjoiZHZkIiwi8J+TvCI6InZocyIsIvCfk7ciOiJjYW1lcmEiLCLwn5O4IjoiY2FtZXJhX2ZsYXNoIiwi8J+TuSI6InZpZGVvX2NhbWVyYSIsIvCfjqUiOiJtb3ZpZV9jYW1lcmEiLCLwn5O9IjoiZmlsbV9wcm9qZWN0b3IiLCLwn46eIjoiZmlsbV9zdHJpcCIsIvCfk54iOiJ0ZWxlcGhvbmVfcmVjZWl2ZXIiLCLimI4iOiJwaG9uZSIsIvCfk58iOiJwYWdlciIsIvCfk6AiOiJmYXgiLCLwn5O6IjoidHYiLCLwn5O7IjoicmFkaW8iLCLwn46ZIjoic3R1ZGlvX21pY3JvcGhvbmUiLCLwn46aIjoibGV2ZWxfc2xpZGVyIiwi8J+OmyI6ImNvbnRyb2xfa25vYnMiLCLij7EiOiJzdG9wd2F0Y2giLCLij7IiOiJ0aW1lcl9jbG9jayIsIuKPsCI6ImFsYXJtX2Nsb2NrIiwi8J+VsCI6Im1hbnRlbHBpZWNlX2Nsb2NrIiwi4o+zIjoiaG91cmdsYXNzX2Zsb3dpbmdfc2FuZCIsIuKMmyI6ImhvdXJnbGFzcyIsIvCfk6EiOiJzYXRlbGxpdGUiLCLwn5SLIjoiYmF0dGVyeSIsIvCflIwiOiJlbGVjdHJpY19wbHVnIiwi8J+SoSI6ImJ1bGIiLCLwn5SmIjoiZmxhc2hsaWdodCIsIvCfla8iOiJjYW5kbGUiLCLwn5eRIjoid2FzdGViYXNrZXQiLCLwn5uiIjoib2lsX2RydW0iLCLwn5K4IjoibW9uZXlfd2l0aF93aW5ncyIsIvCfkrUiOiJkb2xsYXIiLCLwn5K0IjoieWVuIiwi8J+StiI6ImV1cm8iLCLwn5K3IjoicG91bmQiLCLwn5KwIjoibW9uZXliYWciLCLwn5KzIjoiY3JlZGl0X2NhcmQiLCLwn5KOIjoiZ2VtIiwi4pqWIjoiYmFsYW5jZV9zY2FsZSIsIvCflKciOiJ3cmVuY2giLCLwn5SoIjoiaGFtbWVyIiwi4pqSIjoiaGFtbWVyX2FuZF9waWNrIiwi8J+boCI6ImhhbW1lcl9hbmRfd3JlbmNoIiwi4puPIjoicGljayIsIvCflKkiOiJudXRfYW5kX2JvbHQiLCLimpkiOiJnZWFyIiwi4puTIjoiY2hhaW5zIiwi8J+UqyI6Imd1biIsIvCfkqMiOiJib21iIiwi8J+UqiI6ImhvY2hvIiwi8J+XoSI6ImRhZ2dlciIsIuKalCI6ImNyb3NzZWRfc3dvcmRzIiwi8J+boSI6InNoaWVsZCIsIvCfmqwiOiJzbW9raW5nIiwi4pigIjoic2t1bGxfYW5kX2Nyb3NzYm9uZXMiLCLimrAiOiJjb2ZmaW4iLCLimrEiOiJmdW5lcmFsX3VybiIsIvCfj7oiOiJhbXBob3JhIiwi8J+UriI6ImNyeXN0YWxfYmFsbCIsIvCfk78iOiJwcmF5ZXJfYmVhZHMiLCLwn5KIIjoiYmFyYmVyIiwi4pqXIjoiYWxlbWJpYyIsIvCflK0iOiJ0ZWxlc2NvcGUiLCLwn5SsIjoibWljcm9zY29wZSIsIvCflbMiOiJob2xlIiwi8J+SiiI6InBpbGwiLCLwn5KJIjoic3lyaW5nZSIsIvCfjKEiOiJ0aGVybW9tZXRlciIsIvCfj7ciOiJsYWJlbCIsIvCflJYiOiJib29rbWFyayIsIvCfmr0iOiJ0b2lsZXQiLCLwn5q/Ijoic2hvd2VyIiwi8J+bgSI6ImJhdGh0dWIiLCLwn5SRIjoia2V5Iiwi8J+XnSI6Im9sZF9rZXkiLCLwn5uLIjoiY291Y2hfYW5kX2xhbXAiLCLwn5uMIjoic2xlZXBpbmdfYmVkIiwi8J+bjPCfj7siOiJzbGVlcGluZ19iZWQ6dDIiLCLwn5uM8J+PvCI6InNsZWVwaW5nX2JlZDp0MyIsIvCfm4zwn4+9Ijoic2xlZXBpbmdfYmVkOnQ0Iiwi8J+bjPCfj74iOiJzbGVlcGluZ19iZWQ6dDUiLCLwn5uM8J+PvyI6InNsZWVwaW5nX2JlZDp0NiIsIvCfm48iOiJiZWQiLCLwn5qqIjoiZG9vciIsIvCfm44iOiJiZWxsaG9wX2JlbGwiLCLwn5a8IjoiZnJhbWVkX3BpY3R1cmUiLCLwn5e6Ijoid29ybGRfbWFwIiwi4puxIjoicGFyYXNvbF9vbl9ncm91bmQiLCLwn5e/IjoibW95YWkiLCLwn5uNIjoic2hvcHBpbmciLCLwn5uSIjoic2hvcHBpbmdfY2FydCIsIvCfjogiOiJiYWxsb29uIiwi8J+OjyI6ImZsYWdzIiwi8J+OgCI6InJpYmJvbiIsIvCfjoEiOiJnaWZ0Iiwi8J+OiiI6ImNvbmZldHRpX2JhbGwiLCLwn46JIjoidGFkYSIsIvCfjo4iOiJkb2xscyIsIvCfjpAiOiJ3aW5kX2NoaW1lIiwi8J+OjCI6ImNyb3NzZWRfZmxhZ3MiLCLwn4+uIjoiaXpha2F5YV9sYW50ZXJuIiwi4pyJIjoiZW1haWwiLCLwn5OpIjoiZW52ZWxvcGVfd2l0aF9hcnJvdyIsIvCfk6giOiJpbmNvbWluZ19lbnZlbG9wZSIsIvCfk6ciOiJlLW1haWwiLCLwn5KMIjoibG92ZV9sZXR0ZXIiLCLwn5OuIjoicG9zdGJveCIsIvCfk6oiOiJtYWlsYm94X2Nsb3NlZCIsIvCfk6siOiJtYWlsYm94Iiwi8J+TrCI6Im1haWxib3hfd2l0aF9tYWlsIiwi8J+TrSI6Im1haWxib3hfd2l0aF9ub19tYWlsIiwi8J+TpiI6InBhY2thZ2UiLCLwn5OvIjoicG9zdGFsX2hvcm4iLCLwn5OlIjoiaW5ib3hfdHJheSIsIvCfk6QiOiJvdXRib3hfdHJheSIsIvCfk5wiOiJzY3JvbGwiLCLwn5ODIjoicGFnZV93aXRoX2N1cmwiLCLwn5ORIjoiYm9va21hcmtfdGFicyIsIvCfk4oiOiJiYXJfY2hhcnQiLCLwn5OIIjoiY2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kIiwi8J+TiSI6ImNoYXJ0X3dpdGhfZG93bndhcmRzX3RyZW5kIiwi8J+ThCI6InBhZ2VfZmFjaW5nX3VwIiwi8J+ThSI6ImRhdGUiLCLwn5OGIjoiY2FsZW5kYXIiLCLwn5eTIjoic3BpcmFsX2NhbGVuZGFyIiwi8J+ThyI6ImNhcmRfaW5kZXgiLCLwn5eDIjoiY2FyZF9maWxlX2JveCIsIvCfl7MiOiJiYWxsb3RfYm94Iiwi8J+XhCI6ImZpbGVfY2FiaW5ldCIsIvCfk4siOiJjbGlwYm9hcmQiLCLwn5eSIjoic3BpcmFsX25vdGVwYWQiLCLwn5OBIjoiZmlsZV9mb2xkZXIiLCLwn5OCIjoib3Blbl9maWxlX2ZvbGRlciIsIvCfl4IiOiJjYXJkX2luZGV4X2RpdmlkZXJzIiwi8J+XniI6Im5ld3NwYXBlcl9yb2xsIiwi8J+TsCI6Im5ld3NwYXBlciIsIvCfk5MiOiJub3RlYm9vayIsIvCfk5UiOiJjbG9zZWRfYm9vayIsIvCfk5ciOiJncmVlbl9ib29rIiwi8J+TmCI6ImJsdWVfYm9vayIsIvCfk5kiOiJvcmFuZ2VfYm9vayIsIvCfk5QiOiJub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXIiLCLwn5OSIjoibGVkZ2VyIiwi8J+TmiI6ImJvb2tzIiwi8J+TliI6Im9wZW5fYm9vayIsIvCflJciOiJsaW5rIiwi8J+TjiI6InBhcGVyY2xpcCIsIvCflociOiJwYXBlcmNsaXBzIiwi4pyCIjoic2Npc3NvcnMiLCLwn5OQIjoidHJpYW5ndWxhcl9ydWxlciIsIvCfk48iOiJzdHJhaWdodF9ydWxlciIsIvCfk4wiOiJwdXNocGluIiwi8J+TjSI6InJvdW5kX3B1c2hwaW4iLCLwn5qpIjoidHJpYW5ndWxhcl9mbGFnX29uX3Bvc3QiLCLwn4+zIjoid2hpdGVfZmxhZyIsIvCfj7QiOiJibGFja19mbGFnIiwi8J+Ps++4j+KAjfCfjIgiOiJyYWluYm93X2ZsYWciLCLwn5SQIjoiY2xvc2VkX2xvY2tfd2l0aF9rZXkiLCLwn5SSIjoibG9jayIsIvCflJMiOiJ1bmxvY2siLCLwn5SPIjoibG9ja193aXRoX2lua19wZW4iLCLwn5aKIjoicGVuIiwi8J+WiyI6ImZvdW50YWluX3BlbiIsIuKckiI6ImJsYWNrX25pYiIsIvCfk50iOiJtZW1vIiwi4pyPIjoicGVuY2lsMiIsIvCflo0iOiJjcmF5b24iLCLwn5aMIjoicGFpbnRicnVzaCIsIvCflI0iOiJtYWciLCLwn5SOIjoibWFnX3JpZ2h0Iiwi4p2kIjoiaGVhcnQiLCLwn5KbIjoieWVsbG93X2hlYXJ0Iiwi8J+SmiI6ImdyZWVuX2hlYXJ0Iiwi8J+SmSI6ImJsdWVfaGVhcnQiLCLwn5KcIjoicHVycGxlX2hlYXJ0Iiwi8J+WpCI6ImJsYWNrX2hlYXJ0Iiwi8J+SlCI6ImJyb2tlbl9oZWFydCIsIuKdoyI6ImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uIiwi8J+SlSI6InR3b19oZWFydHMiLCLwn5KeIjoicmV2b2x2aW5nX2hlYXJ0cyIsIvCfkpMiOiJoZWFydGJlYXQiLCLwn5KXIjoiaGVhcnRwdWxzZSIsIvCfkpYiOiJzcGFya2xpbmdfaGVhcnQiLCLwn5KYIjoiY3VwaWQiLCLwn5KdIjoiZ2lmdF9oZWFydCIsIvCfkp8iOiJoZWFydF9kZWNvcmF0aW9uIiwi4piuIjoicGVhY2Vfc3ltYm9sIiwi4pydIjoibGF0aW5fY3Jvc3MiLCLimKoiOiJzdGFyX2FuZF9jcmVzY2VudCIsIvCflYkiOiJvbSIsIuKYuCI6IndoZWVsX29mX2RoYXJtYSIsIuKcoSI6InN0YXJfb2ZfZGF2aWQiLCLwn5SvIjoic2l4X3BvaW50ZWRfc3RhciIsIvCflY4iOiJtZW5vcmFoIiwi4pivIjoieWluX3lhbmciLCLimKYiOiJvcnRob2RveF9jcm9zcyIsIvCfm5AiOiJwbGFjZV9vZl93b3JzaGlwIiwi4puOIjoib3BoaXVjaHVzIiwi4pmIIjoiYXJpZXMiLCLimYkiOiJ0YXVydXMiLCLimYoiOiJnZW1pbmkiLCLimYsiOiJjYW5jZXIiLCLimYwiOiJsZW8iLCLimY0iOiJ2aXJnbyIsIuKZjiI6ImxpYnJhIiwi4pmPIjoic2NvcnBpdXMiLCLimZAiOiJzYWdpdHRhcml1cyIsIuKZkSI6ImNhcHJpY29ybiIsIuKZkiI6ImFxdWFyaXVzIiwi4pmTIjoicGlzY2VzIiwi8J+GlCI6ImlkIiwi4pqbIjoiYXRvbV9zeW1ib2wiLCLwn4izIjoidTdhN2EiLCLwn4i5IjoidTUyNzIiLCLimKIiOiJyYWRpb2FjdGl2ZSIsIuKYoyI6ImJpb2hhemFyZCIsIvCfk7QiOiJtb2JpbGVfcGhvbmVfb2ZmIiwi8J+TsyI6InZpYnJhdGlvbl9tb2RlIiwi8J+ItiI6InU2NzA5Iiwi8J+ImiI6InU3MTIxIiwi8J+IuCI6InU3NTMzIiwi8J+IuiI6InU1NWI2Iiwi8J+ItyI6InU2NzA4Iiwi4py0IjoiZWlnaHRfcG9pbnRlZF9ibGFja19zdGFyIiwi8J+GmiI6InZzIiwi8J+JkSI6ImFjY2VwdCIsIvCfkq4iOiJ3aGl0ZV9mbG93ZXIiLCLwn4mQIjoiaWRlb2dyYXBoX2FkdmFudGFnZSIsIuOKmSI6InNlY3JldCIsIuOKlyI6ImNvbmdyYXR1bGF0aW9ucyIsIvCfiLQiOiJ1NTQwOCIsIvCfiLUiOiJ1NmU4MCIsIvCfiLIiOiJ1Nzk4MSIsIvCfhbAiOiJhIiwi8J+FsSI6ImIiLCLwn4aOIjoiYWIiLCLwn4aRIjoiY2wiLCLwn4W+IjoibzIiLCLwn4aYIjoic29zIiwi4puUIjoibm9fZW50cnkiLCLwn5ObIjoibmFtZV9iYWRnZSIsIvCfmqsiOiJub19lbnRyeV9zaWduIiwi4p2MIjoieCIsIuKtlSI6Im8iLCLwn5uRIjoic3RvcF9zaWduIiwi8J+SoiI6ImFuZ2VyIiwi4pmoIjoiaG90c3ByaW5ncyIsIvCfmrciOiJub19wZWRlc3RyaWFucyIsIvCfmq8iOiJkb19ub3RfbGl0dGVyIiwi8J+asyI6Im5vX2JpY3ljbGVzIiwi8J+asSI6Im5vbi1wb3RhYmxlX3dhdGVyIiwi8J+UniI6InVuZGVyYWdlIiwi8J+TtSI6Im5vX21vYmlsZV9waG9uZXMiLCLinZciOiJleGNsYW1hdGlvbiIsIuKdlSI6ImdyZXlfZXhjbGFtYXRpb24iLCLinZMiOiJxdWVzdGlvbiIsIuKdlCI6ImdyZXlfcXVlc3Rpb24iLCLigLwiOiJiYW5nYmFuZyIsIuKBiSI6ImludGVycm9iYW5nIiwi8J+SryI6IjEwMCIsIvCflIUiOiJsb3dfYnJpZ2h0bmVzcyIsIvCflIYiOiJoaWdoX2JyaWdodG5lc3MiLCLwn5SxIjoidHJpZGVudCIsIuKanCI6ImZsZXVyX2RlX2xpcyIsIuOAvSI6InBhcnRfYWx0ZXJuYXRpb25fbWFyayIsIuKaoCI6Indhcm5pbmciLCLwn5q4IjoiY2hpbGRyZW5fY3Jvc3NpbmciLCLwn5SwIjoiYmVnaW5uZXIiLCLimbsiOiJyZWN5Y2xlIiwi8J+IryI6InU2MzA3Iiwi8J+SuSI6ImNoYXJ0Iiwi4p2HIjoic3BhcmtsZSIsIuKcsyI6ImVpZ2h0X3Nwb2tlZF9hc3RlcmlzayIsIuKdjiI6Im5lZ2F0aXZlX3NxdWFyZWRfY3Jvc3NfbWFyayIsIuKchSI6IndoaXRlX2NoZWNrX21hcmsiLCLwn5KgIjoiZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSIsIvCfjIAiOiJjeWNsb25lIiwi4p6/IjoibG9vcCIsIvCfjJAiOiJnbG9iZV93aXRoX21lcmlkaWFucyIsIuKTgiI6Im0iLCLwn4+nIjoiYXRtIiwi8J+IgiI6InNhIiwi8J+bgiI6InBhc3Nwb3J0X2NvbnRyb2wiLCLwn5uDIjoiY3VzdG9tcyIsIvCfm4QiOiJiYWdnYWdlX2NsYWltIiwi8J+bhSI6ImxlZnRfbHVnZ2FnZSIsIuKZvyI6IndoZWVsY2hhaXIiLCLwn5qtIjoibm9fc21va2luZyIsIvCfmr4iOiJ3YyIsIvCfhb8iOiJwYXJraW5nIiwi8J+asCI6InBvdGFibGVfd2F0ZXIiLCLwn5q5IjoibWVucyIsIvCfmroiOiJ3b21lbnMiLCLwn5q8IjoiYmFieV9zeW1ib2wiLCLwn5q7IjoicmVzdHJvb20iLCLwn5quIjoicHV0X2xpdHRlcl9pbl9pdHNfcGxhY2UiLCLwn46mIjoiY2luZW1hIiwi8J+TtiI6InNpZ25hbF9zdHJlbmd0aCIsIvCfiIEiOiJrb2tvIiwi8J+GliI6Im5nIiwi8J+GlyI6Im9rIiwi8J+GmSI6InVwIiwi8J+GkiI6ImNvb2wiLCLwn4aVIjoibmV3Iiwi8J+GkyI6ImZyZWUiLCIw77iP4oOjIjoiemVybyIsIjHvuI/ig6MiOiJvbmUiLCIy77iP4oOjIjoidHdvIiwiM++4j+KDoyI6InRocmVlIiwiNO+4j+KDoyI6ImZvdXIiLCI177iP4oOjIjoiZml2ZSIsIjbvuI/ig6MiOiJzaXgiLCI377iP4oOjIjoic2V2ZW4iLCI477iP4oOjIjoiZWlnaHQiLCI577iP4oOjIjoibmluZSIsIvCflJ8iOiJrZXljYXBfdGVuIiwiKu+4j+KDoyI6ImFzdGVyaXNrIiwi8J+UoiI6IjEyMzQiLCLilrYiOiJhcnJvd19mb3J3YXJkIiwi4o+4IjoicGF1c2VfYnV0dG9uIiwi4o+tIjoibmV4dF90cmFja19idXR0b24iLCLij7kiOiJzdG9wX2J1dHRvbiIsIuKPuiI6InJlY29yZF9idXR0b24iLCLij68iOiJwbGF5X29yX3BhdXNlX2J1dHRvbiIsIuKPriI6InByZXZpb3VzX3RyYWNrX2J1dHRvbiIsIuKPqSI6ImZhc3RfZm9yd2FyZCIsIuKPqiI6InJld2luZCIsIvCflIAiOiJ0d2lzdGVkX3JpZ2h0d2FyZHNfYXJyb3dzIiwi8J+UgSI6InJlcGVhdCIsIvCflIIiOiJyZXBlYXRfb25lIiwi4peAIjoiYXJyb3dfYmFja3dhcmQiLCLwn5S8IjoiYXJyb3dfdXBfc21hbGwiLCLwn5S9IjoiYXJyb3dfZG93bl9zbWFsbCIsIuKPqyI6ImFycm93X2RvdWJsZV91cCIsIuKPrCI6ImFycm93X2RvdWJsZV9kb3duIiwi4p6hIjoiYXJyb3dfcmlnaHQiLCLirIUiOiJhcnJvd19sZWZ0Iiwi4qyGIjoiYXJyb3dfdXAiLCLirIciOiJhcnJvd19kb3duIiwi4oaXIjoiYXJyb3dfdXBwZXJfcmlnaHQiLCLihpgiOiJhcnJvd19sb3dlcl9yaWdodCIsIuKGmSI6ImFycm93X2xvd2VyX2xlZnQiLCLihpYiOiJhcnJvd191cHBlcl9sZWZ0Iiwi4oaVIjoiYXJyb3dfdXBfZG93biIsIvCflIQiOiJhcnJvd3NfY291bnRlcmNsb2Nrd2lzZSIsIuKGqiI6ImFycm93X3JpZ2h0X2hvb2siLCLihqkiOiJsZWZ0d2FyZHNfYXJyb3dfd2l0aF9ob29rIiwi4qS0IjoiYXJyb3dfaGVhZGluZ191cCIsIuKktSI6ImFycm93X2hlYWRpbmdfZG93biIsIiPvuI/ig6MiOiJoYXNoIiwi4oS5IjoiaW5mb3JtYXRpb25fc291cmNlIiwi8J+UpCI6ImFiYyIsIvCflKEiOiJhYmNkIiwi8J+UoCI6ImNhcGl0YWxfYWJjZCIsIvCflKMiOiJzeW1ib2xzIiwi8J+OtSI6Im11c2ljYWxfbm90ZSIsIvCfjrYiOiJub3RlcyIsIuOAsCI6IndhdnlfZGFzaCIsIuKesCI6ImN1cmx5X2xvb3AiLCLinJQiOiJoZWF2eV9jaGVja19tYXJrIiwi8J+UgyI6ImFycm93c19jbG9ja3dpc2UiLCLinpUiOiJoZWF2eV9wbHVzX3NpZ24iLCLinpYiOiJoZWF2eV9taW51c19zaWduIiwi4p6XIjoiaGVhdnlfZGl2aXNpb25fc2lnbiIsIuKcliI6ImhlYXZ5X211bHRpcGxpY2F0aW9uX3giLCLwn5KyIjoiaGVhdnlfZG9sbGFyX3NpZ24iLCLwn5KxIjoiY3VycmVuY3lfZXhjaGFuZ2UiLCLwn5SaIjoiZW5kIiwi8J+UmSI6ImJhY2siLCLwn5SbIjoib24iLCLwn5SdIjoidG9wIiwi8J+UnCI6InNvb24iLCLimJEiOiJiYWxsb3RfYm94X3dpdGhfY2hlY2siLCLwn5SYIjoicmFkaW9fYnV0dG9uIiwi4pqqIjoid2hpdGVfY2lyY2xlIiwi4pqrIjoiYmxhY2tfY2lyY2xlIiwi8J+UtCI6InJlZF9jaXJjbGUiLCLwn5S1IjoibGFyZ2VfYmx1ZV9jaXJjbGUiLCLwn5S4Ijoic21hbGxfb3JhbmdlX2RpYW1vbmQiLCLwn5S5Ijoic21hbGxfYmx1ZV9kaWFtb25kIiwi8J+UtiI6ImxhcmdlX29yYW5nZV9kaWFtb25kIiwi8J+UtyI6ImxhcmdlX2JsdWVfZGlhbW9uZCIsIvCflLoiOiJzbWFsbF9yZWRfdHJpYW5nbGUiLCLilqoiOiJibGFja19zbWFsbF9zcXVhcmUiLCLilqsiOiJ3aGl0ZV9zbWFsbF9zcXVhcmUiLCLirJsiOiJibGFja19sYXJnZV9zcXVhcmUiLCLirJwiOiJ3aGl0ZV9sYXJnZV9zcXVhcmUiLCLwn5S7Ijoic21hbGxfcmVkX3RyaWFuZ2xlX2Rvd24iLCLil7wiOiJibGFja19tZWRpdW1fc3F1YXJlIiwi4pe7Ijoid2hpdGVfbWVkaXVtX3NxdWFyZSIsIuKXviI6ImJsYWNrX21lZGl1bV9zbWFsbF9zcXVhcmUiLCLil70iOiJ3aGl0ZV9tZWRpdW1fc21hbGxfc3F1YXJlIiwi8J+UsiI6ImJsYWNrX3NxdWFyZV9idXR0b24iLCLwn5SzIjoid2hpdGVfc3F1YXJlX2J1dHRvbiIsIvCflIgiOiJzcGVha2VyIiwi8J+UiSI6InNvdW5kIiwi8J+UiiI6ImxvdWRfc291bmQiLCLwn5SHIjoibXV0ZSIsIvCfk6MiOiJtZWdhIiwi8J+ToiI6ImxvdWRzcGVha2VyIiwi8J+UlCI6ImJlbGwiLCLwn5SVIjoibm9fYmVsbCIsIvCfg48iOiJibGFja19qb2tlciIsIvCfgIQiOiJtYWhqb25nIiwi4pmgIjoic3BhZGVzIiwi4pmjIjoiY2x1YnMiLCLimaUiOiJoZWFydCIsIuKZpiI6ImRpYW1vbmRzIiwi8J+OtCI6ImZsb3dlcl9wbGF5aW5nX2NhcmRzIiwi8J+SrSI6InRob3VnaHRfYmFsbG9vbiIsIvCfl68iOiJyaWdodF9hbmdlcl9idWJibGUiLCLwn5KsIjoic3BlZWNoX2JhbGxvb24iLCLwn5eoIjoibGVmdF9zcGVlY2hfYnViYmxlIiwi8J+VkCI6ImNsb2NrMSIsIvCflZEiOiJjbG9jazIiLCLwn5WSIjoiY2xvY2szIiwi8J+VkyI6ImNsb2NrNCIsIvCflZQiOiJjbG9jazUiLCLwn5WVIjoiY2xvY2s2Iiwi8J+VliI6ImNsb2NrNyIsIvCflZciOiJjbG9jazgiLCLwn5WYIjoiY2xvY2s5Iiwi8J+VmSI6ImNsb2NrMTAiLCLwn5WaIjoiY2xvY2sxMSIsIvCflZsiOiJjbG9jazEyIiwi8J+VnCI6ImNsb2NrMTMwIiwi8J+VnSI6ImNsb2NrMjMwIiwi8J+VniI6ImNsb2NrMzMwIiwi8J+VnyI6ImNsb2NrNDMwIiwi8J+VoCI6ImNsb2NrNTMwIiwi8J+VoSI6ImNsb2NrNjMwIiwi8J+VoiI6ImNsb2NrNzMwIiwi8J+VoyI6ImNsb2NrODMwIiwi8J+VpCI6ImNsb2NrOTMwIiwi8J+VpSI6ImNsb2NrMTAzMCIsIvCflaYiOiJjbG9jazExMzAiLCLwn5WnIjoiY2xvY2sxMjMwIiwi8J+HpvCfh6siOiJhZmdoYW5pc3RhbiIsIvCfh6bwn4e9IjoiYWxhbmRfaXNsYW5kcyIsIvCfh6bwn4exIjoiYWxiYW5pYSIsIvCfh6nwn4e/IjoiYWxnZXJpYSIsIvCfh6bwn4e4IjoiYW1lcmljYW5fc2Ftb2EiLCLwn4em8J+HqSI6ImFuZG9ycmEiLCLwn4em8J+HtCI6ImFuZ29sYSIsIvCfh6bwn4euIjoiYW5ndWlsbGEiLCLwn4em8J+HtiI6ImFudGFyY3RpY2EiLCLwn4em8J+HrCI6ImFudGlndWFfYmFyYnVkYSIsIvCfh6bwn4e3IjoiYXJnZW50aW5hIiwi8J+HpvCfh7IiOiJhcm1lbmlhIiwi8J+HpvCfh7wiOiJhcnViYSIsIvCfh6bwn4e6IjoiYXVzdHJhbGlhIiwi8J+HpvCfh7kiOiJhdXN0cmlhIiwi8J+HpvCfh78iOiJhemVyYmFpamFuIiwi8J+Hp/Cfh7giOiJiYWhhbWFzIiwi8J+Hp/Cfh60iOiJiYWhyYWluIiwi8J+Hp/Cfh6kiOiJiYW5nbGFkZXNoIiwi8J+Hp/Cfh6ciOiJiYXJiYWRvcyIsIvCfh6fwn4e+IjoiYmVsYXJ1cyIsIvCfh6fwn4eqIjoiYmVsZ2l1bSIsIvCfh6fwn4e/IjoiYmVsaXplIiwi8J+Hp/Cfh68iOiJiZW5pbiIsIvCfh6fwn4eyIjoiYmVybXVkYSIsIvCfh6fwn4e5IjoiYmh1dGFuIiwi8J+Hp/Cfh7QiOiJib2xpdmlhIiwi8J+Hp/Cfh7YiOiJjYXJpYmJlYW5fbmV0aGVybGFuZHMiLCLwn4en8J+HpiI6ImJvc25pYV9oZXJ6ZWdvdmluYSIsIvCfh6fwn4e8IjoiYm90c3dhbmEiLCLwn4en8J+HtyI6ImJyYXppbCIsIvCfh67wn4e0IjoiYnJpdGlzaF9pbmRpYW5fb2NlYW5fdGVycml0b3J5Iiwi8J+Hu/Cfh6wiOiJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIiwi8J+Hp/Cfh7MiOiJicnVuZWkiLCLwn4en8J+HrCI6ImJ1bGdhcmlhIiwi8J+Hp/Cfh6siOiJidXJraW5hX2Zhc28iLCLwn4en8J+HriI6ImJ1cnVuZGkiLCLwn4eo8J+HuyI6ImNhcGVfdmVyZGUiLCLwn4ew8J+HrSI6ImNhbWJvZGlhIiwi8J+HqPCfh7IiOiJjYW1lcm9vbiIsIvCfh6jwn4emIjoiY2FuYWRhIiwi8J+HrvCfh6giOiJjYW5hcnlfaXNsYW5kcyIsIvCfh7Dwn4e+IjoiY2F5bWFuX2lzbGFuZHMiLCLwn4eo8J+HqyI6ImNlbnRyYWxfYWZyaWNhbl9yZXB1YmxpYyIsIvCfh7nwn4epIjoiY2hhZCIsIvCfh6jwn4exIjoiY2hpbGUiLCLwn4eo8J+HsyI6ImNuIiwi8J+HqPCfh70iOiJjaHJpc3RtYXNfaXNsYW5kIiwi8J+HqPCfh6giOiJjb2Nvc19pc2xhbmRzIiwi8J+HqPCfh7QiOiJjb2xvbWJpYSIsIvCfh7Dwn4eyIjoiY29tb3JvcyIsIvCfh6jwn4esIjoiY29uZ29fYnJhenphdmlsbGUiLCLwn4eo8J+HqSI6ImNvbmdvX2tpbnNoYXNhIiwi8J+HqPCfh7AiOiJjb29rX2lzbGFuZHMiLCLwn4eo8J+HtyI6ImNvc3RhX3JpY2EiLCLwn4et8J+HtyI6ImNyb2F0aWEiLCLwn4eo8J+HuiI6ImN1YmEiLCLwn4eo8J+HvCI6ImN1cmFjYW8iLCLwn4eo8J+HviI6ImN5cHJ1cyIsIvCfh6jwn4e/IjoiY3plY2hfcmVwdWJsaWMiLCLwn4ep8J+HsCI6ImRlbm1hcmsiLCLwn4ep8J+HryI6ImRqaWJvdXRpIiwi8J+HqfCfh7IiOiJkb21pbmljYSIsIvCfh6nwn4e0IjoiZG9taW5pY2FuX3JlcHVibGljIiwi8J+HqvCfh6giOiJlY3VhZG9yIiwi8J+HqvCfh6wiOiJlZ3lwdCIsIvCfh7jwn4e7IjoiZWxfc2FsdmFkb3IiLCLwn4es8J+HtiI6ImVxdWF0b3JpYWxfZ3VpbmVhIiwi8J+HqvCfh7ciOiJlcml0cmVhIiwi8J+HqvCfh6oiOiJlc3RvbmlhIiwi8J+HqvCfh7kiOiJldGhpb3BpYSIsIvCfh6rwn4e6IjoiZXUiLCLwn4er8J+HsCI6ImZhbGtsYW5kX2lzbGFuZHMiLCLwn4er8J+HtCI6ImZhcm9lX2lzbGFuZHMiLCLwn4er8J+HryI6ImZpamkiLCLwn4er8J+HriI6ImZpbmxhbmQiLCLwn4er8J+HtyI6ImZyIiwi8J+HrPCfh6siOiJmcmVuY2hfZ3VpYW5hIiwi8J+HtfCfh6siOiJmcmVuY2hfcG9seW5lc2lhIiwi8J+HufCfh6siOiJmcmVuY2hfc291dGhlcm5fdGVycml0b3JpZXMiLCLwn4es8J+HpiI6ImdhYm9uIiwi8J+HrPCfh7IiOiJnYW1iaWEiLCLwn4es8J+HqiI6Imdlb3JnaWEiLCLwn4ep8J+HqiI6ImRlIiwi8J+HrPCfh60iOiJnaGFuYSIsIvCfh6zwn4euIjoiZ2licmFsdGFyIiwi8J+HrPCfh7ciOiJncmVlY2UiLCLwn4es8J+HsSI6ImdyZWVubGFuZCIsIvCfh6zwn4epIjoiZ3JlbmFkYSIsIvCfh6zwn4e1IjoiZ3VhZGVsb3VwZSIsIvCfh6zwn4e6IjoiZ3VhbSIsIvCfh6zwn4e5IjoiZ3VhdGVtYWxhIiwi8J+HrPCfh6wiOiJndWVybnNleSIsIvCfh6zwn4ezIjoiZ3VpbmVhIiwi8J+HrPCfh7wiOiJndWluZWFfYmlzc2F1Iiwi8J+HrPCfh74iOiJndXlhbmEiLCLwn4et8J+HuSI6ImhhaXRpIiwi8J+HrfCfh7MiOiJob25kdXJhcyIsIvCfh63wn4ewIjoiaG9uZ19rb25nIiwi8J+HrfCfh7oiOiJodW5nYXJ5Iiwi8J+HrvCfh7giOiJpY2VsYW5kIiwi8J+HrvCfh7MiOiJpbmRpYSIsIvCfh67wn4epIjoiaW5kb25lc2lhIiwi8J+HrvCfh7ciOiJpcmFuIiwi8J+HrvCfh7YiOiJpcmFxIiwi8J+HrvCfh6oiOiJpcmVsYW5kIiwi8J+HrvCfh7IiOiJpc2xlX29mX21hbiIsIvCfh67wn4exIjoiaXNyYWVsIiwi8J+HrvCfh7kiOiJpdCIsIvCfh6jwn4euIjoiY290ZV9kaXZvaXJlIiwi8J+Hr/Cfh7IiOiJqYW1haWNhIiwi8J+Hr/Cfh7UiOiJqcCIsIvCfh6/wn4eqIjoiamVyc2V5Iiwi8J+Hr/Cfh7QiOiJqb3JkYW4iLCLwn4ew8J+HvyI6ImthemFraHN0YW4iLCLwn4ew8J+HqiI6ImtlbnlhIiwi8J+HsPCfh64iOiJraXJpYmF0aSIsIvCfh73wn4ewIjoia29zb3ZvIiwi8J+HsPCfh7wiOiJrdXdhaXQiLCLwn4ew8J+HrCI6Imt5cmd5enN0YW4iLCLwn4ex8J+HpiI6Imxhb3MiLCLwn4ex8J+HuyI6ImxhdHZpYSIsIvCfh7Hwn4enIjoibGViYW5vbiIsIvCfh7Hwn4e4IjoibGVzb3RobyIsIvCfh7Hwn4e3IjoibGliZXJpYSIsIvCfh7Hwn4e+IjoibGlieWEiLCLwn4ex8J+HriI6ImxpZWNodGVuc3RlaW4iLCLwn4ex8J+HuSI6ImxpdGh1YW5pYSIsIvCfh7Hwn4e6IjoibHV4ZW1ib3VyZyIsIvCfh7Lwn4e0IjoibWFjYXUiLCLwn4ey8J+HsCI6Im1hY2Vkb25pYSIsIvCfh7Lwn4esIjoibWFkYWdhc2NhciIsIvCfh7Lwn4e8IjoibWFsYXdpIiwi8J+HsvCfh74iOiJtYWxheXNpYSIsIvCfh7Lwn4e7IjoibWFsZGl2ZXMiLCLwn4ey8J+HsSI6Im1hbGkiLCLwn4ey8J+HuSI6Im1hbHRhIiwi8J+HsvCfh60iOiJtYXJzaGFsbF9pc2xhbmRzIiwi8J+HsvCfh7YiOiJtYXJ0aW5pcXVlIiwi8J+HsvCfh7ciOiJtYXVyaXRhbmlhIiwi8J+HsvCfh7oiOiJtYXVyaXRpdXMiLCLwn4e+8J+HuSI6Im1heW90dGUiLCLwn4ey8J+HvSI6Im1leGljbyIsIvCfh6vwn4eyIjoibWljcm9uZXNpYSIsIvCfh7Lwn4epIjoibW9sZG92YSIsIvCfh7Lwn4eoIjoibW9uYWNvIiwi8J+HsvCfh7MiOiJtb25nb2xpYSIsIvCfh7Lwn4eqIjoibW9udGVuZWdybyIsIvCfh7Lwn4e4IjoibW9udHNlcnJhdCIsIvCfh7Lwn4emIjoibW9yb2NjbyIsIvCfh7Lwn4e/IjoibW96YW1iaXF1ZSIsIvCfh7Lwn4eyIjoibXlhbm1hciIsIvCfh7Pwn4emIjoibmFtaWJpYSIsIvCfh7Pwn4e3IjoibmF1cnUiLCLwn4ez8J+HtSI6Im5lcGFsIiwi8J+Hs/Cfh7EiOiJuZXRoZXJsYW5kcyIsIvCfh7Pwn4eoIjoibmV3X2NhbGVkb25pYSIsIvCfh7Pwn4e/IjoibmV3X3plYWxhbmQiLCLwn4ez8J+HriI6Im5pY2FyYWd1YSIsIvCfh7Pwn4eqIjoibmlnZXIiLCLwn4ez8J+HrCI6Im5pZ2VyaWEiLCLwn4ez8J+HuiI6Im5pdWUiLCLwn4ez8J+HqyI6Im5vcmZvbGtfaXNsYW5kIiwi8J+HsvCfh7UiOiJub3J0aGVybl9tYXJpYW5hX2lzbGFuZHMiLCLwn4ew8J+HtSI6Im5vcnRoX2tvcmVhIiwi8J+Hs/Cfh7QiOiJub3J3YXkiLCLwn4e08J+HsiI6Im9tYW4iLCLwn4e18J+HsCI6InBha2lzdGFuIiwi8J+HtfCfh7wiOiJwYWxhdSIsIvCfh7Xwn4e4IjoicGFsZXN0aW5pYW5fdGVycml0b3JpZXMiLCLwn4e18J+HpiI6InBhbmFtYSIsIvCfh7Xwn4esIjoicGFwdWFfbmV3X2d1aW5lYSIsIvCfh7Xwn4e+IjoicGFyYWd1YXkiLCLwn4e18J+HqiI6InBlcnUiLCLwn4e18J+HrSI6InBoaWxpcHBpbmVzIiwi8J+HtfCfh7MiOiJwaXRjYWlybl9pc2xhbmRzIiwi8J+HtfCfh7EiOiJwb2xhbmQiLCLwn4e18J+HuSI6InBvcnR1Z2FsIiwi8J+HtfCfh7ciOiJwdWVydG9fcmljbyIsIvCfh7bwn4emIjoicWF0YXIiLCLwn4e38J+HqiI6InJldW5pb24iLCLwn4e38J+HtCI6InJvbWFuaWEiLCLwn4e38J+HuiI6InJ1Iiwi8J+Ht/Cfh7wiOiJyd2FuZGEiLCLwn4en8J+HsSI6InN0X2JhcnRoZWxlbXkiLCLwn4e48J+HrSI6InN0X2hlbGVuYSIsIvCfh7Dwn4ezIjoic3Rfa2l0dHNfbmV2aXMiLCLwn4ex8J+HqCI6InN0X2x1Y2lhIiwi8J+HtfCfh7IiOiJzdF9waWVycmVfbWlxdWVsb24iLCLwn4e78J+HqCI6InN0X3ZpbmNlbnRfZ3JlbmFkaW5lcyIsIvCfh7zwn4e4Ijoic2Ftb2EiLCLwn4e48J+HsiI6InNhbl9tYXJpbm8iLCLwn4e48J+HuSI6InNhb190b21lX3ByaW5jaXBlIiwi8J+HuPCfh6YiOiJzYXVkaV9hcmFiaWEiLCLwn4e48J+HsyI6InNlbmVnYWwiLCLwn4e38J+HuCI6InNlcmJpYSIsIvCfh7jwn4eoIjoic2V5Y2hlbGxlcyIsIvCfh7jwn4exIjoic2llcnJhX2xlb25lIiwi8J+HuPCfh6wiOiJzaW5nYXBvcmUiLCLwn4e48J+HvSI6InNpbnRfbWFhcnRlbiIsIvCfh7jwn4ewIjoic2xvdmFraWEiLCLwn4e48J+HriI6InNsb3ZlbmlhIiwi8J+HuPCfh6ciOiJzb2xvbW9uX2lzbGFuZHMiLCLwn4e48J+HtCI6InNvbWFsaWEiLCLwn4e/8J+HpiI6InNvdXRoX2FmcmljYSIsIvCfh6zwn4e4Ijoic291dGhfZ2VvcmdpYV9zb3V0aF9zYW5kd2ljaF9pc2xhbmRzIiwi8J+HsPCfh7ciOiJrciIsIvCfh7jwn4e4Ijoic291dGhfc3VkYW4iLCLwn4eq8J+HuCI6ImVzIiwi8J+HsfCfh7AiOiJzcmlfbGFua2EiLCLwn4e48J+HqSI6InN1ZGFuIiwi8J+HuPCfh7ciOiJzdXJpbmFtZSIsIvCfh7jwn4e/Ijoic3dhemlsYW5kIiwi8J+HuPCfh6oiOiJzd2VkZW4iLCLwn4eo8J+HrSI6InN3aXR6ZXJsYW5kIiwi8J+HuPCfh74iOiJzeXJpYSIsIvCfh7nwn4e8IjoidGFpd2FuIiwi8J+HufCfh68iOiJ0YWppa2lzdGFuIiwi8J+HufCfh78iOiJ0YW56YW5pYSIsIvCfh7nwn4etIjoidGhhaWxhbmQiLCLwn4e58J+HsSI6InRpbW9yX2xlc3RlIiwi8J+HufCfh6wiOiJ0b2dvIiwi8J+HufCfh7AiOiJ0b2tlbGF1Iiwi8J+HufCfh7QiOiJ0b25nYSIsIvCfh7nwn4e5IjoidHJpbmlkYWRfdG9iYWdvIiwi8J+HufCfh7MiOiJ0dW5pc2lhIiwi8J+HufCfh7ciOiJ0ciIsIvCfh7nwn4eyIjoidHVya21lbmlzdGFuIiwi8J+HufCfh6giOiJ0dXJrc19jYWljb3NfaXNsYW5kcyIsIvCfh7nwn4e7IjoidHV2YWx1Iiwi8J+HuvCfh6wiOiJ1Z2FuZGEiLCLwn4e68J+HpiI6InVrcmFpbmUiLCLwn4em8J+HqiI6InVuaXRlZF9hcmFiX2VtaXJhdGVzIiwi8J+HrPCfh6ciOiJ1ayIsIvCfh7rwn4e4IjoidXMiLCLwn4e78J+HriI6InVzX3Zpcmdpbl9pc2xhbmRzIiwi8J+HuvCfh74iOiJ1cnVndWF5Iiwi8J+HuvCfh78iOiJ1emJla2lzdGFuIiwi8J+Hu/Cfh7oiOiJ2YW51YXR1Iiwi8J+Hu/Cfh6YiOiJ2YXRpY2FuX2NpdHkiLCLwn4e78J+HqiI6InZlbmV6dWVsYSIsIvCfh7vwn4ezIjoidmlldG5hbSIsIvCfh7zwn4erIjoid2FsbGlzX2Z1dHVuYSIsIvCfh6rwn4etIjoid2VzdGVybl9zYWhhcmEiLCLwn4e+8J+HqiI6InllbWVuIiwi8J+Hv/Cfh7IiOiJ6YW1iaWEiLCLwn4e/8J+HvCI6InppbWJhYndlIiwi8J+kqSI6InN0YXJfc3RydWNrIiwi8J+kqCI6ImZhY2Vfd2l0aF9yYWlzZWRfZXllYnJvdyIsIvCfpK8iOiJleHBsb2RpbmdfaGVhZCIsIvCfpKoiOiJjcmF6eV9mYWNlIiwi8J+krCI6ImZhY2Vfd2l0aF9zeW1ib2xzX292ZXJfbW91dGgiLCLwn6SuIjoiZmFjZV92b21pdGluZyIsIvCfpKsiOiJzaHVzaGluZ19mYWNlIiwi8J+krSI6ImZhY2Vfd2l0aF9oYW5kX292ZXJfbW91dGgiLCLwn6eQIjoiZmFjZV93aXRoX21vbm9jbGUiLCLwn6eSIjoiY2hpbGQiLCLwn6eS8J+PuyI6ImNoaWxkOnQyIiwi8J+nkvCfj7wiOiJjaGlsZDp0MyIsIvCfp5Lwn4+9IjoiY2hpbGQ6dDQiLCLwn6eS8J+PviI6ImNoaWxkOnQ1Iiwi8J+nkvCfj78iOiJjaGlsZDp0NiIsIvCfp5EiOiJhZHVsdCIsIvCfp5Hwn4+7IjoiYWR1bHQ6dDIiLCLwn6eR8J+PvCI6ImFkdWx0OnQzIiwi8J+nkfCfj70iOiJhZHVsdDp0NCIsIvCfp5Hwn4++IjoiYWR1bHQ6dDUiLCLwn6eR8J+PvyI6ImFkdWx0OnQ2Iiwi8J+nkyI6Im9sZGVyX2FkdWx0Iiwi8J+nk/Cfj7siOiJvbGRlcl9hZHVsdDp0MiIsIvCfp5Pwn4+8Ijoib2xkZXJfYWR1bHQ6dDMiLCLwn6eT8J+PvSI6Im9sZGVyX2FkdWx0OnQ0Iiwi8J+nk/Cfj74iOiJvbGRlcl9hZHVsdDp0NSIsIvCfp5Pwn4+/Ijoib2xkZXJfYWR1bHQ6dDYiLCLwn6eVIjoid29tYW5fd2l0aF9oZWFkc2NhcmYiLCLwn6eV8J+PuyI6IndvbWFuX3dpdGhfaGVhZHNjYXJmOnQyIiwi8J+nlfCfj7wiOiJ3b21hbl93aXRoX2hlYWRzY2FyZjp0MyIsIvCfp5Xwn4+9Ijoid29tYW5fd2l0aF9oZWFkc2NhcmY6dDQiLCLwn6eV8J+PviI6IndvbWFuX3dpdGhfaGVhZHNjYXJmOnQ1Iiwi8J+nlfCfj78iOiJ3b21hbl93aXRoX2hlYWRzY2FyZjp0NiIsIvCfp5QiOiJiZWFyZGVkX3BlcnNvbiIsIvCfp5Twn4+7IjoiYmVhcmRlZF9wZXJzb246dDIiLCLwn6eU8J+PvCI6ImJlYXJkZWRfcGVyc29uOnQzIiwi8J+nlPCfj70iOiJiZWFyZGVkX3BlcnNvbjp0NCIsIvCfp5Twn4++IjoiYmVhcmRlZF9wZXJzb246dDUiLCLwn6eU8J+PvyI6ImJlYXJkZWRfcGVyc29uOnQ2Iiwi8J+ksSI6ImJyZWFzdF9mZWVkaW5nIiwi8J+ksfCfj7siOiJicmVhc3RfZmVlZGluZzp0MiIsIvCfpLHwn4+8IjoiYnJlYXN0X2ZlZWRpbmc6dDMiLCLwn6Sx8J+PvSI6ImJyZWFzdF9mZWVkaW5nOnQ0Iiwi8J+ksfCfj74iOiJicmVhc3RfZmVlZGluZzp0NSIsIvCfpLHwn4+/IjoiYnJlYXN0X2ZlZWRpbmc6dDYiLCLwn6eZIjoibWFnZSIsIvCfp5nwn4+7IjoibWFnZTp0MiIsIvCfp5nwn4+8IjoibWFnZTp0MyIsIvCfp5nwn4+9IjoibWFnZTp0NCIsIvCfp5nwn4++IjoibWFnZTp0NSIsIvCfp5nwn4+/IjoibWFnZTp0NiIsIvCfp5nigI3imYDvuI8iOiJ3b21hbl9tYWdlIiwi8J+nmfCfj7vigI3imYDvuI8iOiJ3b21hbl9tYWdlOnQyIiwi8J+nmfCfj7zigI3imYDvuI8iOiJ3b21hbl9tYWdlOnQzIiwi8J+nmfCfj73igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ0Iiwi8J+nmfCfj77igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ1Iiwi8J+nmfCfj7/igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ2Iiwi8J+nmiI6ImZhaXJ5Iiwi8J+nmvCfj7siOiJmYWlyeTp0MiIsIvCfp5rwn4+8IjoiZmFpcnk6dDMiLCLwn6ea8J+PvSI6ImZhaXJ5OnQ0Iiwi8J+nmvCfj74iOiJmYWlyeTp0NSIsIvCfp5rwn4+/IjoiZmFpcnk6dDYiLCLwn6ebIjoidmFtcGlyZSIsIvCfp5vwn4+7IjoidmFtcGlyZTp0MiIsIvCfp5vwn4+8IjoidmFtcGlyZTp0MyIsIvCfp5vwn4+9IjoidmFtcGlyZTp0NCIsIvCfp5vwn4++IjoidmFtcGlyZTp0NSIsIvCfp5vwn4+/IjoidmFtcGlyZTp0NiIsIvCfp5wiOiJtZXJtYWlkIiwi8J+nnPCfj7siOiJtZXJtYWlkOnQyIiwi8J+nnPCfj7wiOiJtZXJtYWlkOnQzIiwi8J+nnPCfj70iOiJtZXJtYWlkOnQ0Iiwi8J+nnPCfj74iOiJtZXJtYWlkOnQ1Iiwi8J+nnPCfj78iOiJtZXJtYWlkOnQ2Iiwi8J+nnOKAjeKZgu+4jyI6Im1lcm1hbiIsIvCfp5zwn4+74oCN4pmC77iPIjoibWVybWFuOnQyIiwi8J+nnPCfj7zigI3imYLvuI8iOiJtZXJtYW46dDMiLCLwn6ec8J+PveKAjeKZgu+4jyI6Im1lcm1hbjp0NCIsIvCfp5zwn4++4oCN4pmC77iPIjoibWVybWFuOnQ1Iiwi8J+nnPCfj7/igI3imYLvuI8iOiJtZXJtYW46dDYiLCLwn6edIjoiZWxmIiwi8J+nnfCfj7siOiJlbGY6dDIiLCLwn6ed8J+PvCI6ImVsZjp0MyIsIvCfp53wn4+9IjoiZWxmOnQ0Iiwi8J+nnfCfj74iOiJlbGY6dDUiLCLwn6ed8J+PvyI6ImVsZjp0NiIsIvCfp54iOiJnZW5pZSIsIvCfp57igI3imYAiOiJ3b21hbl9nZW5pZSIsIvCfp58iOiJ6b21iaWUiLCLwn6ef4oCN4pmAIjoid29tYW5fem9tYmllIiwi8J+nliI6InBlcnNvbl9pbl9zdGVhbXlfcm9vbSIsIvCfp5bwn4+7IjoicGVyc29uX2luX3N0ZWFteV9yb29tOnQyIiwi8J+nlvCfj7wiOiJwZXJzb25faW5fc3RlYW15X3Jvb206dDMiLCLwn6eW8J+PvSI6InBlcnNvbl9pbl9zdGVhbXlfcm9vbTp0NCIsIvCfp5bwn4++IjoicGVyc29uX2luX3N0ZWFteV9yb29tOnQ1Iiwi8J+nlvCfj78iOiJwZXJzb25faW5fc3RlYW15X3Jvb206dDYiLCLwn6eW4oCN4pmA77iPIjoid29tYW5faW5fc3RlYW15X3Jvb20iLCLwn6eW8J+Pu+KAjeKZgO+4jyI6IndvbWFuX2luX3N0ZWFteV9yb29tOnQyIiwi8J+nlvCfj7zigI3imYDvuI8iOiJ3b21hbl9pbl9zdGVhbXlfcm9vbTp0MyIsIvCfp5bwn4+94oCN4pmA77iPIjoid29tYW5faW5fc3RlYW15X3Jvb206dDQiLCLwn6eW8J+PvuKAjeKZgO+4jyI6IndvbWFuX2luX3N0ZWFteV9yb29tOnQ1Iiwi8J+nlvCfj7/igI3imYDvuI8iOiJ3b21hbl9pbl9zdGVhbXlfcm9vbTp0NiIsIvCfp5ciOiJwZXJzb25fY2xpbWJpbmciLCLwn6eX8J+PuyI6InBlcnNvbl9jbGltYmluZzp0MiIsIvCfp5fwn4+8IjoicGVyc29uX2NsaW1iaW5nOnQzIiwi8J+nl/Cfj70iOiJwZXJzb25fY2xpbWJpbmc6dDQiLCLwn6eX8J+PviI6InBlcnNvbl9jbGltYmluZzp0NSIsIvCfp5fwn4+/IjoicGVyc29uX2NsaW1iaW5nOnQ2Iiwi8J+nl+KAjeKZgO+4jyI6IndvbWFuX2NsaW1iaW5nIiwi8J+nl/Cfj7vigI3imYDvuI8iOiJ3b21hbl9jbGltYmluZzp0MiIsIvCfp5fwn4+84oCN4pmA77iPIjoid29tYW5fY2xpbWJpbmc6dDMiLCLwn6eX8J+PveKAjeKZgO+4jyI6IndvbWFuX2NsaW1iaW5nOnQ0Iiwi8J+nl/Cfj77igI3imYDvuI8iOiJ3b21hbl9jbGltYmluZzp0NSIsIvCfp5fwn4+/4oCN4pmA77iPIjoid29tYW5fY2xpbWJpbmc6dDYiLCLwn6eYIjoicGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uIiwi8J+nmPCfj7siOiJwZXJzb25faW5fbG90dXNfcG9zaXRpb246dDIiLCLwn6eY8J+PvCI6InBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbjp0MyIsIvCfp5jwn4+9IjoicGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uOnQ0Iiwi8J+nmPCfj74iOiJwZXJzb25faW5fbG90dXNfcG9zaXRpb246dDUiLCLwn6eY8J+PvyI6InBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbjp0NiIsIvCfp5jigI3imYDvuI8iOiJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiIsIvCfp5jwn4+74oCN4pmA77iPIjoid29tYW5faW5fbG90dXNfcG9zaXRpb246dDIiLCLwn6eY8J+PvOKAjeKZgO+4jyI6IndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uOnQzIiwi8J+nmPCfj73igI3imYDvuI8iOiJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbjp0NCIsIvCfp5jwn4++4oCN4pmA77iPIjoid29tYW5faW5fbG90dXNfcG9zaXRpb246dDUiLCLwn6eY8J+Pv+KAjeKZgO+4jyI6IndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uOnQ2Iiwi8J+knyI6ImxvdmVfeW91X2dlc3R1cmUiLCLwn6Sf8J+PuyI6ImxvdmVfeW91X2dlc3R1cmU6dDIiLCLwn6Sf8J+PvCI6ImxvdmVfeW91X2dlc3R1cmU6dDMiLCLwn6Sf8J+PvSI6ImxvdmVfeW91X2dlc3R1cmU6dDQiLCLwn6Sf8J+PviI6ImxvdmVfeW91X2dlc3R1cmU6dDUiLCLwn6Sf8J+PvyI6ImxvdmVfeW91X2dlc3R1cmU6dDYiLCLwn6SyIjoicGFsbXNfdXBfdG9nZXRoZXIiLCLwn6Sy8J+PuyI6InBhbG1zX3VwX3RvZ2V0aGVyOnQyIiwi8J+ksvCfj7wiOiJwYWxtc191cF90b2dldGhlcjp0MyIsIvCfpLLwn4+9IjoicGFsbXNfdXBfdG9nZXRoZXI6dDQiLCLwn6Sy8J+PviI6InBhbG1zX3VwX3RvZ2V0aGVyOnQ1Iiwi8J+ksvCfj78iOiJwYWxtc191cF90b2dldGhlcjp0NiIsIvCfp6AiOiJicmFpbiIsIvCfp6EiOiJvcmFuZ2VfaGVhcnQiLCLwn6ejIjoic2NhcmYiLCLwn6ekIjoiZ2xvdmVzIiwi8J+npSI6ImNvYXQiLCLwn6emIjoic29ja3MiLCLwn6eiIjoiYmlsbGVkX2NhcCIsIvCfppMiOiJ6ZWJyYSIsIvCfppIiOiJnaXJhZmZlIiwi8J+mlCI6ImhlZGdlaG9nIiwi8J+mlSI6InNhdXJvcG9kIiwi8J+mliI6InRfcmV4Iiwi8J+mlyI6ImNyaWNrZXQiLCLwn6WlIjoiY29jb251dCIsIvCfpaYiOiJicm9jY29saSIsIvCfpagiOiJwcmV0emVsIiwi8J+lqSI6ImN1dF9vZl9tZWF0Iiwi8J+lqiI6InNhbmR3aWNoIiwi8J+loyI6ImJvd2xfd2l0aF9zcG9vbiIsIvCfpasiOiJjYW5uZWRfZm9vZCIsIvCfpZ8iOiJkdW1wbGluZyIsIvCfpaAiOiJmb3J0dW5lX2Nvb2tpZSIsIvCfpaEiOiJ0YWtlb3V0X2JveCIsIvCfpaciOiJwaWUiLCLwn6WkIjoiY3VwX3dpdGhfc3RyYXciLCLwn6WiIjoiY2hvcHN0aWNrcyIsIvCfm7giOiJmbHlpbmdfc2F1Y2VyIiwi8J+btyI6InNsZWQiLCLwn6WMIjoiY3VybGluZ19zdG9uZSIsIvCfh7jwn4evIjoic3ZhbGJhcmRfYW5kX2phbl9tYXllbiIsIvCfh7Lwn4erIjoic3RfbWFydGluIiwi8J+HuvCfh7IiOiJ1c19vdXRseWluZ19pc2xhbmRzIiwi8J+HufCfh6YiOiJ0cmlzdGFuX2RhX2N1bmhhIiwi8J+HrfCfh7IiOiJoZWFyZF9hbmRfbWNfZG9uYWxkX2lzbGFuZHMiLCLwn4eq8J+HpiI6ImNldXRhX2FuZF9tZWxpbGxhIiwi8J+HqfCfh6wiOiJkaWVnb19nYXJjaWEiLCLwn4em8J+HqCI6ImFzY2Vuc2lvbl9pc2xhbmQiLCLwn4en8J+HuyI6ImJvdXZldF9pc2xhbmQiLCLwn4eo8J+HtSI6ImNsaXBwZXJ0b25faXNsYW5kIiwi8J+HuvCfh7MiOiJ1bml0ZWRfbmF0aW9ucyIsIvCfpbAiOiJzbWlsaW5nX2ZhY2Vfd2l0aF90aHJlZV9oZWFydHMiLCLwn6W1IjoiaG90X2ZhY2UiLCLwn6W2IjoiY29sZF9mYWNlIiwi8J+lsyI6InBhcnR5aW5nX2ZhY2UiLCLwn6W0Ijoid29venlfZmFjZSIsIvCfpboiOiJwbGVhZGluZ19mYWNlIiwi8J+RqOKAjfCfprAiOiJtYW5fcmVkX2hhaXJlZCIsIvCfkajigI3wn6axIjoibWFuX2N1cmx5X2hhaXJlZCIsIvCfkajigI3wn6azIjoibWFuX3doaXRlX2hhaXJlZCIsIvCfkajigI3wn6ayIjoibWFuX2JhbGQiLCLwn5Gp4oCN8J+msCI6IndvbWFuX3JlZF9oYWlyZWQiLCLwn5Gp4oCN8J+msSI6IndvbWFuX2N1cmx5X2hhaXJlZCIsIvCfkanigI3wn6azIjoid29tYW5fd2hpdGVfaGFpcmVkIiwi8J+RqeKAjfCfprIiOiJ3b21hbl9iYWxkIiwi8J+muCI6InN1cGVyaGVybyIsIvCfprjigI3imYIiOiJtYW5fc3VwZXJoZXJvIiwi8J+muOKAjeKZgCI6IndvbWFuX3N1cGVyaGVybyIsIvCfprkiOiJzdXBlcnZpbGxhaW4iLCLwn6a54oCN4pmAIjoid29tYW5fc3VwZXJ2aWxsYWluIiwi8J+mueKAjeKZgiI6Im1hbl9zdXBlcnZpbGxhaW4iLCLwn6a1IjoibGVnIiwi8J+mtiI6ImZvb3QiLCLwn6a0IjoiYm9uZSIsIvCfprciOiJ0b290aCIsIvCfpb0iOiJnb2dnbGVzIiwi8J+lvCI6ImxhYl9jb2F0Iiwi8J+lviI6Imhpa2luZ19ib290Iiwi8J+lvyI6ImZsYXRfc2hvZSIsIvCfpp0iOiJyYWNjb29uIiwi8J+mmSI6ImxsYW1hIiwi8J+mmyI6ImhpcHBvcG90YW11cyIsIvCfppgiOiJrYW5nYXJvbyIsIvCfpqEiOiJiYWRnZXIiLCLwn6aiIjoic3dhbiIsIvCfppoiOiJwZWFjb2NrIiwi8J+mnCI6InBhcnJvdCIsIvCfpp4iOiJsb2JzdGVyIiwi8J+mnyI6Im1vc3F1aXRvIiwi8J+moCI6Im1pY3JvYmUiLCLwn6WtIjoibWFuZ28iLCLwn6WsIjoibGVhZnlfZ3JlZW4iLCLwn6WvIjoiYmFnZWwiLCLwn6eCIjoic2FsdCIsIvCfpa4iOiJtb29uX2Nha2UiLCLwn6eBIjoiY3VwY2FrZSIsIvCfp60iOiJjb21wYXNzIiwi8J+nsSI6ImJyaWNrIiwi8J+buSI6InNrYXRlYm9hcmQiLCLwn6ezIjoibHVnZ2FnZSIsIvCfp6giOiJmaXJlY3JhY2tlciIsIvCfp6ciOiJyZWRfZ2lmdF9lbnZlbG9wZSIsIvCfpY4iOiJzb2Z0YmFsbCIsIvCfpY8iOiJmbHlpbmdfZGlzYyIsIvCfpY0iOiJsYWNyb3NzZSIsIvCfp78iOiJuYXphcl9hbXVsZXQiLCLwn6epIjoiamlnc2F3Iiwi8J+nuCI6InRlZGR5X2JlYXIiLCLimZ8iOiJjaGVzc19wYXduIiwi8J+ntSI6InRocmVhZCIsIvCfp7YiOiJ5YXJuIiwi8J+nriI6ImFiYWN1cyIsIvCfp74iOiJyZWNlaXB0Iiwi8J+nsCI6InRvb2xib3giLCLwn6eyIjoibWFnbmV0Iiwi8J+nqiI6InRlc3RfdHViZSIsIvCfp6siOiJwZXRyaV9kaXNoIiwi8J+nrCI6ImRuYSIsIvCfp7QiOiJsb3Rpb25fYm90dGxlIiwi8J+ntyI6InNhZmV0eV9waW4iLCLwn6e5IjoiYnJvb20iLCLwn6e6IjoiYmFza2V0Iiwi8J+nuyI6InJvbGxfb2ZfdG9pbGV0X3BhcGVyIiwi8J+nvCI6InNvYXAiLCLwn6e9Ijoic3BvbmdlIiwi8J+nryI6ImZpcmVfZXh0aW5ndWlzaGVyIiwi4pm+IjoiaW5maW5pdHkiLCLwn4+04oCN4pigIjoicGlyYXRlX2ZsYWciLCLwn6eHIjoid2FmZmxlIiwi8J+mpiI6Im90dGVyIiwi8J+mpSI6InNsb3RoIiwi8J+niiI6ImljZV9jdWJlIiwi8J+qkCI6InJpbmdlcl9wbGFuZXQiLCLwn6apIjoiZmxhbWluZ28iLCLwn6WxIjoieWF3bmluZ19mYWNlIiwi8J+kjyI6InBpbmNoaW5nX2hhbmQiLCLwn5CV4oCN8J+muiI6InNlcnZpY2VfZG9nIiwi8J+mpyI6Im9yYW5ndXRhbiIsIvCfm7oiOiJhdXRvX3JpY2tzaGF3Iiwi8J+qgiI6InBhcmFjaHV0ZSIsIvCfqoAiOiJ5by15byIsIvCfqoEiOiJraXRlIiwi8J+fqyI6ImJyb3duX3NxdWFyZSIsIvCfn6oiOiJwdXJwbGVfc3F1YXJlIiwi8J+fpiI6ImJsdWVfc3F1YXJlIiwi8J+fqSI6ImdyZWVuX3NxdWFyZSIsIvCfn6giOiJ5ZWxsb3dfc3F1YXJlIiwi8J+fpyI6Im9yYW5nZV9zcXVhcmUiLCLwn5+lIjoicmVkX3NxdWFyZSIsIvCfn6QiOiJicm93bl9jaXJjbGUiLCLwn5+jIjoicHVycGxlX2NpcmNsZSIsIvCfn6IiOiJncmVlbl9jaXJjbGUiLCLwn5+hIjoieWVsbG93X2NpcmNsZSIsIvCfn6AiOiJvcmFuZ2VfY2lyY2xlIiwi8J+qkiI6InJhem9yIiwi8J+qkSI6ImNoYWlyIiwi8J+puiI6InN0ZXRob3Njb3BlIiwi8J+puSI6ImFkaGVzaXZlX2JhbmRhZ2UiLCLwn6m4IjoiZHJvcF9vZl9ibG9vZCIsIvCfpq8iOiJwcm9iaW5nX2NhbmUiLCLwn6qTIjoiYXhlIiwi8J+qlCI6ImRpeWFfbGFtcCIsIvCfqpUiOiJiYW5qbyIsIvCfqbAiOiJiYWxsZXRfc2hvZXMiLCLwn6mzIjoic2hvcnRzIiwi8J+psiI6ImJyaWVmcyIsIvCfqbEiOiJvbmVfcGllY2Vfc3dpbXN1aXQiLCLwn6W7Ijoic2FyaSIsIvCfproiOiJzYWZldHlfdmVzdCIsIvCfpL8iOiJkaXZpbmdfbWFzayIsIvCfprwiOiJtb3Rvcml6ZWRfd2hlZWxjaGFpciIsIvCfpr0iOiJtYW51YWxfd2hlZWxjaGFpciIsIvCfm5UiOiJoaW5kdV90ZW1wbGUiLCLwn6eJIjoibWF0w6kiLCLwn6eDIjoiYmV2ZXJhZ2VfYm94Iiwi8J+mqiI6Im95c3RlciIsIvCfp4giOiJidXR0ZXIiLCLwn6eGIjoiZmFsYWZlbCIsIvCfp4UiOiJvbmlvbiIsIvCfp4QiOiJnYXJsaWMiLCLwn6aoIjoic2t1bmsiLCLwn6auIjoiZ3VpZGVfZG9nIiwi8J+nkeKAjfCfpJ3igI3wn6eRIjoicGVvcGxlX2hvbGRpbmdfaGFuZHMiLCLwn5Gp4oCN8J+mvSI6IndvbWFuX2luX21hbnVhbF93aGVlbGNoYWlyIiwi8J+RqOKAjfCfpr0iOiJtYW5faW5fbWFudWFsX3doZWVsY2hhaXIiLCLwn5Gp4oCN8J+mvCI6IndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwi8J+RqOKAjfCfprwiOiJtYW5faW5fbW90b3JpemVkX3doZWVsY2hhaXIiLCLwn5Gp4oCN8J+mryI6IndvbWFuX3dpdGhfcHJvYmluZ19jYW5lIiwi8J+RqOKAjfCfpq8iOiJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCLwn6eO4oCN4pmAIjoid29tYW5fa25lZWxpbmciLCLwn6eO4oCN4pmCIjoibWFuX2tuZWVsaW5nIiwi8J+njeKAjeKZgiI6Im1hbl9zdGFuZGluZyIsIvCfp43igI3imYAiOiJ3b21hbl9zdGFuZGluZyIsIvCfp4/igI3imYAiOiJkZWFmX3dvbWFuIiwi8J+nj+KAjeKZgiI6ImRlYWZfbWFuIiwi8J+muyI6ImhlYXJfd2l0aF9oZWFyaW5nX2FpZCIsIvCfpr8iOiJtZWNoYW5pY2FsX2xlZyIsIvCfpr4iOiJtZWNoYW5pY2FsX2FybSIsIvCfpI0iOiJ3aGl0ZV9oZWFydCIsIvCfpI4iOiJicm93bl9oZWFydCIsIvCfj7PvuI/igI3imqciOiJ0cmFuc2dlbmRlcl9mbGFnIiwi4pi7Ijoic2xpZ2h0X3NtaWxlIiwi4pmhIjoiaGVhcnQifX0pLGRlZmluZSgicHJldHR5LXRleHQvZW1vamkvdmVyc2lvbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLklNQUdFX1ZFUlNJT049IjkifSksZGVmaW5lKCJwcmV0dHktdGV4dC9lbW9qaSIsWyJleHBvcnRzIiwicHJldHR5LXRleHQvZW1vamkvZGF0YSIsInByZXR0eS10ZXh0L2Vtb2ppL3ZlcnNpb24iXSxmdW5jdGlvbihlLHUsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlZ2lzdGVyRW1vamk9ZnVuY3Rpb24oZSxhKXtlPWUudG9Mb3dlckNhc2UoKSxjW2VdPWF9LGUuZXh0ZW5kZWRFbW9qaUxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gY30sZS5idWlsZFJlcGxhY2VtZW50c0xpc3Q9YSxlLnBlcmZvcm1FbW9qaVVuZXNjYXBlPWZ1bmN0aW9uKGwsYyl7aWYoIWwpcmV0dXJuO3ZhciBtPWMuaW5saW5lRW1vamksZT1yKG0pO3JldHVybiBsLnJlcGxhY2UoZSxmdW5jdGlvbihlLGEpe3ZhciBuPWMuZW5hYmxlRW1vamlTaG9ydGN1dHMmJiEhdS50cmFuc2xhdGlvbnNbZV0sdD0hIXUucmVwbGFjZW1lbnRzW2VdLG89dm9pZCAwLG89bj91LnRyYW5zbGF0aW9uc1tlXTp0P3UucmVwbGFjZW1lbnRzW2VdOmUuc2xpY2UoMSxlLmxlbmd0aC0xKSxpPWUubGFzdEluZGV4T2YoIjoiKT09PWUubGVuZ3RoLTEscj1wKG8sYyksXz1oKG8sYyk/ImVtb2ppIGVtb2ppLWN1c3RvbSI6ImVtb2ppIixzPShufHxpfHx0KSYmZChsLGEsbSk7cmV0dXJuIHImJnM/IjxpbWcgc3JjPSciK3IrIicgIisoYy5za2lwVGl0bGU/IiI6InRpdGxlPSciK28rIiciKSsiIGFsdD0nIitvKyInIGNsYXNzPSciK18rIic+IjplfSl9LGUucGVyZm9ybUVtb2ppRXNjYXBlPWZ1bmN0aW9uKG4sdCl7dmFyIG89dC5pbmxpbmVFbW9qaSxlPXIobyk7cmV0dXJuIG4ucmVwbGFjZShlLGZ1bmN0aW9uKGUsYSl7aWYoZChuLGEsbykpe2lmKHUudHJhbnNsYXRpb25zW2VdKXJldHVybiB0LmVtb2ppU2hvcnRjdXRzPyI6Iit1LnRyYW5zbGF0aW9uc1tlXSsiOiI6ZTtpZih1LnJlcGxhY2VtZW50c1tlXSlyZXR1cm4iOiIrdS5yZXBsYWNlbWVudHNbZV0rIjoifXJldHVybiBlfSl9LGUuaXNDdXN0b21FbW9qaT1oLGUuYnVpbGRFbW9qaVVybD1wLGUuZW1vamlFeGlzdHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLCEhKGMuaGFzT3duUHJvcGVydHkoZSl8fG0uaGFzT3duUHJvcGVydHkoZSl8fGcuaGFzT3duUHJvcGVydHkoZSkpfSxlLmVtb2ppU2VhcmNoPWZ1bmN0aW9uKGUsYSl7dmFyIG49YSYmYS5tYXhSZXN1bHRzfHwtMTtpZigwPT09bilyZXR1cm5bXTt3PXd8fF8udW5pb24oXy5rZXlzKG0pLF8ua2V5cyhjKSxfLmtleXMoZykpLnNvcnQoKTt2YXIgdD1bXTtmdW5jdGlvbiBvKGUpe3ZhciBhPWdbZV18fGU7LTE9PT10LmluZGV4T2YoYSkmJnQucHVzaChhKX1mb3IodmFyIGk9MDtpPHcubGVuZ3RoO2krKyl7dmFyIHI9d1tpXTswPT09ci5pbmRleE9mKGUpJiZvKHIpfXUuc2VhcmNoQWxpYXNlc1tlXSYmdC5wdXNoLmFwcGx5KHQsdS5zZWFyY2hBbGlhc2VzW2VdKTtmb3IodmFyIHM9MDtzPHcubGVuZ3RoO3MrKyl7dmFyIGw9d1tzXTswPGwuaW5kZXhPZihlKSYmbyhsKX1yZXR1cm4tMT09PW4/dDp0LnNsaWNlKDAsbil9LGUuaXNTa2luVG9uYWJsZUVtb2ppPWZ1bmN0aW9uKGUpe3ZhciBhPV8uY29tcGFjdChlLnNwbGl0KCI6IikpWzBdO2lmKGEpcmV0dXJuLTEhPT11LnRvbmFibGVFbW9qaXMuaW5kZXhPZihhKTtyZXR1cm4hMX07dmFyIGM9e307dmFyIG09e307ZnVuY3Rpb24gYShlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuc29ydCgpLnJldmVyc2UoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iXFx1IitlLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDQsIjAiKX0pLmpvaW4oIiIpfSkuam9pbigifCIpfXZhciBuPXZvaWQgMCx0PXt9O2Z1bmN0aW9uIGkoKXtyZXR1cm4gdm9pZCAwPT09biYmKG49YSh1LnJlcGxhY2VtZW50cykpLG59ZnVuY3Rpb24gcihlKXt2YXIgYTtyZXR1cm4gdm9pZCAwPT09dFtlXSYmKGE9ZT8ifDpbXlxcczpdKyg/Ojp0XFxkKT86PyI6InxcXEI6W15cXHM6XSsoPzo6dFxcZCk/Oj9cXEIiLHRbZV09bmV3IFJlZ0V4cChpKCkrYSwiZyIpKSx0W2VdfXUuZW1vamlzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG1bZV09ITB9KTt2YXIgZz17fTtmdW5jdGlvbiBkKGUsYSxuKXtpZihuKXJldHVybiEwO3ZhciB0PWUuc2xpY2UoMCxhLShuPzE6MCkpO3JldHVybiAwPT09dC5sZW5ndGh8fC8oPzpcc3xbPi4sXC8jISQlXiYqOzp7fT1cLV9gfigpXSkkLy50ZXN0KHQpfHxuZXcgUmVnRXhwKCIoPzoiK2koKSsiKSQiKS50ZXN0KHQpfWZ1bmN0aW9uIGgoZSxhKXtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksISFjLmhhc093blByb3BlcnR5KGUpfHwhIShhJiZhLmN1c3RvbUVtb2ppJiZhLmN1c3RvbUVtb2ppLmhhc093blByb3BlcnR5KGUpKX1mdW5jdGlvbiBwKGUsYSl7dmFyIG49dm9pZCAwO2U9U3RyaW5nKGUpLnRvTG93ZXJDYXNlKCksYy5oYXNPd25Qcm9wZXJ0eShlKSYmKG49Y1tlXSksYSYmYS5jdXN0b21FbW9qaSYmYS5jdXN0b21FbW9qaVtlXSYmKG49YS5jdXN0b21FbW9qaVtlXSk7dmFyIHQ9ZS5tYXRjaCgvKFteOl0rKTo/Lyk7cmV0dXJuIHQmJiFuJiYobS5oYXNPd25Qcm9wZXJ0eSh0WzFdKXx8Zy5oYXNPd25Qcm9wZXJ0eSh0WzFdKSkmJihuPWEuZ2V0VVJMKCIvaW1hZ2VzL2Vtb2ppLyIrYS5lbW9qaVNldCsiLyIrZS5yZXBsYWNlKC86dC8sIi8iKSsiLnBuZyIpKSxuPW4mJm4rIj92PSIrby5JTUFHRV9WRVJTSU9OfU9iamVjdC5rZXlzKHUuYWxpYXNlcykuZm9yRWFjaChmdW5jdGlvbihhKXt1LmFsaWFzZXNbYV0uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZ1tlXT1hfSl9KTt2YXIgdz12b2lkIDB9KSxkZWZpbmUoInByZXR0eS10ZXh0L2VuZ2luZXMvZGlzY291cnNlLW1hcmtkb3duLWl0IixbImV4cG9ydHMiLCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJwcmV0dHktdGV4dC9ndWlkIl0sZnVuY3Rpb24oZSxyLF8saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkFUVEFDSE1FTlRfQ1NTX0NMQVNTPXZvaWQgMCxlLmV4dHJhY3REYXRhQXR0cmlidXRlPXosZS5zZXR1cD1mdW5jdGlvbihvLGEsbil7aWYoby5zZXR1cClyZXR1cm47az1rfHxyZXF1aXJlanMoInByZXR0eS10ZXh0L2VuZ2luZXMvZGlzY291cnNlLW1hcmtkb3duL2hlbHBlcnMiKSxvLm1hcmtkb3duSXQ9ITA7dmFyIGw9W10sYz1bXSxtPXtmOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSx1PS9kaXNjb3Vyc2UtbWFya2Rvd25cL3xtYXJrZG93bi1pdFwvLyxnPVtdLGQ9W107T2JqZWN0LmtleXMocmVxdWlyZS5fZWFrX3NlZW4pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGEsbix0LG8saSxyLF8sczshdS50ZXN0KGUpfHwoYT1yZXF1aXJlanMoZSkpJiZhLnNldHVwJiYobj1lLnNwbGl0KCIvIikucmV2ZXJzZSgpWzBdLGcucHVzaChuKSxhLnNldHVwKCh0PW4sbz1sLGk9YyxyPW0sXz1kLChzPXttYXJrZG93bkl0OiEwfSkud2hpdGVMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBfLnB1c2goW3QsZV0pfSxzLnJlZ2lzdGVySW5saW5lPWgodCwicmVnaXN0ZXJJbmxpbmUiKSxzLnJlcGxhY2VCbG9jaz1oKHQsInJlcGxhY2VCbG9jayIpLHMuYWRkUHJlUHJvY2Vzc29yPWgodCwiYWRkUHJlUHJvY2Vzc29yIikscy5pbmxpbmVSZXBsYWNlPWgodCwiaW5saW5lUmVwbGFjZSIpLHMucG9zdFByb2Nlc3NUYWc9aCh0LCJwb3N0UHJvY2Vzc1RhZyIpLHMuaW5saW5lUmVnZXhwPWgodCwiaW5saW5lUmVnZXhwIikscy5pbmxpbmVCZXR3ZWVuPWgodCwiaW5saW5lQmV0d2VlbiIpLHMucG9zdFByb2Nlc3NUZXh0PWgodCwicG9zdFByb2Nlc3NUZXh0Iikscy5vblBhcnNlTm9kZT1oKHQsIm9uUGFyc2VOb2RlIikscy5yZWdpc3RlckJsb2NrPWgodCwicmVnaXN0ZXJCbG9jayIpLHMuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiByLmYoKX0scy5yZWdpc3Rlck9wdGlvbnM9ZnVuY3Rpb24oZSl7by5wdXNoKFt0LGVdKX0scy5yZWdpc3RlclBsdWdpbj1mdW5jdGlvbihlKXtpLnB1c2goW3QsZV0pfSxzKSkpfSksT2JqZWN0LmVudHJpZXMobi53aGl0ZUxpc3RlZHx8e30pLmZvckVhY2goZnVuY3Rpb24oZSl7ZC5wdXNoKGUpfSksbC5mb3JFYWNoKGZ1bmN0aW9uKGUpeygwLHMoZSwyKVsxXSkobyxhLG4pfSksZy5mb3JFYWNoKGZ1bmN0aW9uKGUpe28uZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoZSl8fChvLmZlYXR1cmVzW2VdPSEwKX0pO3ZhciB0PXt9O09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1vW2VdLGRlbGV0ZSBvW2VdfSksdC5oZWxwZXJzPXt0ZXh0UmVwbGFjZTprLnRleHRSZXBsYWNlfSxvLmRpc2NvdXJzZT10LG0uZj1mdW5jdGlvbigpe3JldHVybiBvLmRpc2NvdXJzZX0sby5kaXNjb3Vyc2UubGltaXRlZFNpdGVTZXR0aW5ncz17c2VjdXJlTWVkaWE6YS5zZWN1cmVfbWVkaWF9LG8uZW5naW5lPXdpbmRvdy5tYXJrZG93bml0KHtkaXNjb3Vyc2U6by5kaXNjb3Vyc2UsaHRtbDohMCxicmVha3M6by5kaXNjb3Vyc2UuZmVhdHVyZXMubmV3bGluZSx4aHRtbE91dDohMSxsaW5raWZ5OmEuZW5hYmxlX21hcmtkb3duX2xpbmtpZnksdHlwb2dyYXBoZXI6YS5lbmFibGVfbWFya2Rvd25fdHlwb2dyYXBoZXJ9KTt2YXIgZT1hLm1hcmtkb3duX3R5cG9ncmFwaGVyX3F1b3RhdGlvbl9tYXJrcztlJiYoby5lbmdpbmUub3B0aW9ucy5xdW90ZXM9ZS5zcGxpdCgifCIpKTt7dmFyIGk7by5lbmdpbmUubGlua2lmeS50bGRzKChhLm1hcmtkb3duX2xpbmtpZnlfdGxkc3x8IiIpLnNwbGl0KCJ8IikpLGZ1bmN0aW9uKGUpe2UudXRpbHMubGliLm1kdXJsLmRlY29kZS5kZWZhdWx0Q2hhcnM9IjsvPzpAJj0rJCwjICJ9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmh0bWxfcmF3PXd9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmltYWdlPWZ9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmxpbmtfb3Blbj1ifShvLmVuZ2luZSksZnVuY3Rpb24oZSl7ZS5ibG9jay5iYmNvZGU9e3J1bGVyOm5ldyBwfX0oby5lbmdpbmUpLGZ1bmN0aW9uKGUpe2UuaW5saW5lLmJiY29kZT17cnVsZXI6bmV3IHB9fShvLmVuZ2luZSksZnVuY3Rpb24oZSl7dmFyIGE9cmVxdWlyZWpzKCJwcmV0dHktdGV4dC9lbmdpbmVzL2Rpc2NvdXJzZS1tYXJrZG93bi90ZXh0LXBvc3QtcHJvY2VzcyIpLlRleHRQb3N0UHJvY2Vzc1J1bGVyO2UuY29yZS50ZXh0UG9zdFByb2Nlc3M9e3J1bGVyOm5ldyBhfX0oby5lbmdpbmUpLGMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYT1zKGUsMiksbj1hWzBdLHQ9YVsxXTtvLmRpc2NvdXJzZS5mZWF0dXJlc1tuXSYmby5lbmdpbmUudXNlKHQpfSksby5tYXJrZG93bkl0PSEwLG8uc2V0dXA9ITAsby5kaXNjb3Vyc2Uuc2FuaXRpemVyJiZvLnNhbml0aXplcnx8KGk9bmV3IHIuZGVmYXVsdChvLmRpc2NvdXJzZSksZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBhPXMoZSwyKSxuPWFbMF0sdD1hWzFdO2kud2hpdGVMaXN0RmVhdHVyZShuLHQpfSksby5zYW5pdGl6ZXI9by5kaXNjb3Vyc2Uuc2FuaXRpemVyPW8uZGlzY291cnNlLnNhbml0aXplP2Z1bmN0aW9uKGUpe3JldHVybigwLF8uc2FuaXRpemUpKGUsaSl9OmZ1bmN0aW9uKGUpe3JldHVybiBlfSl9fSxlLmNvb2s9ZnVuY3Rpb24oZSxhKXt2YXIgbj17fTthLmRpc2NvdXJzZS5ob2lzdGVkPW47dmFyIHQ9YS5lbmdpbmUucmVuZGVyKGUpLG89YS5kaXNjb3Vyc2Uuc2FuaXRpemVyKHQpLnRyaW0oKSxpPU9iamVjdC5rZXlzKG4pO2lmKGkubGVuZ3RoKWZvcih2YXIgcj0hMCxfPWZ1bmN0aW9uKGUpe289by5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLGZ1bmN0aW9uKCl7cmV0dXJuIHI9ITAsbltlXX0pfTtyOylyPSExLGkuZm9yRWFjaChfKTtyZXR1cm4gZGVsZXRlIGEuZGlzY291cnNlLmhvaXN0ZWQsb307dmFyIHM9ZnVuY3Rpb24oZSxhKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsYSl7dmFyIG49W10sdD0hMCxvPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHIsXz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHI9Xy5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCFhfHxuLmxlbmd0aCE9PWEpO3Q9ITApO31jYXRjaChlKXtvPSEwLGk9ZX1maW5hbGx5e3RyeXshdCYmXy5yZXR1cm4mJl8ucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiBufShlLGEpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07dmFyIGE9ZnVuY3Rpb24oZSxhLG4pe3JldHVybiBhJiZ0KGUucHJvdG90eXBlLGEpLG4mJnQoZSxuKSxlfTtmdW5jdGlvbiB0KGUsYSl7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciB0PWFbbl07dC5lbnVtZXJhYmxlPXQuZW51bWVyYWJsZXx8ITEsdC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHQmJih0LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LmtleSx0KX19dmFyIG09ZS5BVFRBQ0hNRU5UX0NTU19DTEFTUz0iYXR0YWNobWVudCI7ZnVuY3Rpb24gaChlLGEpe3JldHVybiBmdW5jdGlvbigpe3dpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZyhlKyI6ICIrYSsiIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGhlIG5ldyBtYXJrZG93biBpdCBBUElzIil9fXZhciBwPShhKG4sW3trZXk6ImdldFJ1bGVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfX0se2tleToiZ2V0UnVsZUZvclRhZyIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5lbnN1cmVDYWNoZSgpLHRoaXMuY2FjaGUuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHRoaXMuY2FjaGVbZV19fSx7a2V5OiJlbnN1cmVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5jYWNoZSl7dGhpcy5jYWNoZT17fTtmb3IodmFyIGU9dGhpcy5ydWxlcy5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIGE9dGhpcy5ydWxlc1tlXTt0aGlzLmNhY2hlW2EucnVsZS50YWddPWF9fX19LHtrZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKGUsYSl7dGhpcy5ydWxlcy5wdXNoKHtuYW1lOmUscnVsZTphfSksdGhpcy5jYWNoZT1udWxsfX1dKSxuKTtmdW5jdGlvbiBuKCl7IWZ1bmN0aW9uKGUsYSl7aWYoIShlIGluc3RhbmNlb2YgYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5ydWxlcz1bXX1mdW5jdGlvbiB3KGUsYSxuKXt2YXIgdD1lW2FdLmNvbnRlbnQ7aWYodCYmMDx0Lmxlbmd0aCl7dmFyIG89KDAsaS5kZWZhdWx0KSgpO3JldHVybiBuLmRpc2NvdXJzZS5ob2lzdGVkW29dPWVbYV0uY29udGVudCxvfXJldHVybiIifWZ1bmN0aW9uIHooZSl7dmFyIGE9ZS5pbmRleE9mKCI9Iik7aWYoLTE9PT1hKXJldHVybiBudWxsO3ZhciBuPSgiZGF0YS0iK2Uuc3Vic3RyKDAsYSkpLnRvTG93ZXJDYXNlKCk7cmV0dXJuL15bQS1aYS16XStbXHdcLVw6XC5dKiQvLnRlc3Qobik/W24sZS5zdWJzdHIoYSsxKV06bnVsbH12YXIgUz0vXihbMS05XStbMC05XSopeChbMS05XStbMC05XSopKFxzKixccyooeD8pKFsxLTldWzAtOV17MCwyfT8pKFsleF0/KSk/JC87ZnVuY3Rpb24gZihlLGEsbix0LG8pe3ZhciBpLHIsXyxzLGwsYyxtLHUsZz1lW2FdLGQ9by5yZW5kZXJJbmxpbmVBc1RleHQoZy5jaGlsZHJlbixuLHQpLnNwbGl0KCJ8IiksaD1bXSxwPXtzZWN1cmVNZWRpYTpuLmRpc2NvdXJzZS5saW1pdGVkU2l0ZVNldHRpbmdzLnNlY3VyZU1lZGlhfTtpZigidmlkZW8iPT09ZFsxXSlyZXR1cm4gYz1wLG09KGw9ZykuYXR0ckdldCgic3JjIiksdT1sLmF0dHJHZXQoImRhdGEtb3JpZy1zcmMiKSwnPGRpdiBjbGFzcz0idmlkZW8tY29udGFpbmVyIj5cbiAgICA8dmlkZW8gd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcHJlbG9hZD0iJysoYy5zZWN1cmVNZWRpYT8ibm9uZSI6Im1ldGFkYXRhIikrJyIgY29udHJvbHM+XG4gICAgICA8c291cmNlIHNyYz0iJyttKyciICcrKG51bGwhPT11PydkYXRhLW9yaWctc3JjPSInK3UrJyInOiIiKSsnPlxuICAgICAgPGEgaHJlZj0iJyttKyciPicrbSsiPC9hPlxuICAgIDwvdmlkZW8+XG4gIDwvZGl2PiI7aWYoImF1ZGlvIj09PWRbMV0pcmV0dXJuIHI9cCxfPShpPWcpLmF0dHJHZXQoInNyYyIpLHM9aS5hdHRyR2V0KCJkYXRhLW9yaWctc3JjIiksJzxhdWRpbyBwcmVsb2FkPSInKyhyLnNlY3VyZU1lZGlhPyJub25lIjoibWV0YWRhdGEiKSsnIiBjb250cm9scz5cbiAgICA8c291cmNlIHNyYz0iJytfKyciICcrKG51bGwhPT1zPydkYXRhLW9yaWctc3JjPSInK3MrJyInOiIiKSsnPlxuICAgIDxhIGhyZWY9IicrXysnIj4nK18rIjwvYT5cbiAgPC9hdWRpbz4iO2Zvcih2YXIgdyxmLGIsayx5LHYseCxqPTA7ajxkLmxlbmd0aDsrK2opeyh3PWRbal0ubWF0Y2goUykpJiZ3WzFdJiZ3WzJdPyhrPXdbMV0seT13WzJdLHdbNV0mJndbNl0mJiIlIj09PXdbNl0mJihiPXBhcnNlRmxvYXQod1s1XSkvMTAwLGs9cGFyc2VJbnQoaypiLDEwKSx5PXBhcnNlSW50KHkqYiwxMCkpLHdbNV0mJndbNl0mJiJ4Ij09PXdbNl0mJih2PXBhcnNlRmxvYXQod1s1XSkvayxrPXBhcnNlSW50KHdbNV0sMTApLHk9cGFyc2VJbnQoeSp2LDEwKSksd1s1XSYmd1s0XSYmIngiPT09d1s0XSYmIXdbNl0mJih4PXBhcnNlRmxvYXQod1s1XSkveSx5PXBhcnNlSW50KHdbNV0sMTApLGs9cGFyc2VJbnQoayp4LDEwKSksLTE9PT1nLmF0dHJJbmRleCgid2lkdGgiKSYmZy5hdHRycy5wdXNoKFsid2lkdGgiLGtdKSwtMT09PWcuYXR0ckluZGV4KCJoZWlnaHQiKSYmZy5hdHRycy5wdXNoKFsiaGVpZ2h0Iix5XSksbi5kaXNjb3Vyc2UucHJldmlld2luZyYmIngiIT09d1s2XSYmIngiIT09d1s0XSYmZy5hdHRycy5wdXNoKFsiY2xhc3MiLCJyZXNpemFibGUiXSkpOihmPXooZFtqXSkpP2cuYXR0cnMucHVzaChmKTpoLnB1c2goZFtqXSl9cmV0dXJuIGcuYXR0cnNbZy5hdHRySW5kZXgoImFsdCIpXVsxXT1oLmpvaW4oInwiKSxvLnJlbmRlclRva2VuKGUsYSxuKX1mdW5jdGlvbiBiKGUsYSxuLHQsbyl7Zm9yKHZhciBpLHI9ZVthXSxfPWVbYSsxXSxzPV8uY29udGVudC5zcGxpdCgifCIpLGw9W10sYz0wO2M8cy5sZW5ndGg7KytjKXNbY109PT1tP3IuYXR0cnMudW5zaGlmdChbImNsYXNzIixzW2NdXSk6KGk9eihzW2NdKSk/ci5hdHRycy5wdXNoKGkpOmwucHVzaChzW2NdKTtyZXR1cm4gMDxsLmxlbmd0aCYmKF8uY29udGVudD1sLmpvaW4oInwiKSksby5yZW5kZXJUb2tlbihlLGEsbil9dmFyIGs9dm9pZCAwfSksZnVuY3Rpb24gaShyLF8scyl7ZnVuY3Rpb24gbChuLGUpe2lmKCFfW25dKXtpZighcltuXSl7dmFyIGE9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWUmJmEpcmV0dXJuIGEobiwhMCk7aWYoYylyZXR1cm4gYyhuLCEwKTt2YXIgdD1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIituKyInIik7dGhyb3cgdC5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIix0fXZhciBvPV9bbl09e2V4cG9ydHM6e319O3Jbbl1bMF0uY2FsbChvLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIGE9cltuXVsxXVtlXTtyZXR1cm4gbChhfHxlKX0sbyxvLmV4cG9ydHMsaSxyLF8scyl9cmV0dXJuIF9bbl0uZXhwb3J0c31mb3IodmFyIGM9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsZT0wO2U8cy5sZW5ndGg7ZSsrKWwoc1tlXSk7cmV0dXJuIGx9KHsxOltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiY3NzZmlsdGVyIikuRmlsdGVyQ1NTLG09ZSgiLi91dGlsIik7ZnVuY3Rpb24gbygpe3JldHVybnthOlsidGFyZ2V0IiwiaHJlZiIsInRpdGxlIl0sYWJicjpbInRpdGxlIl0sYWRkcmVzczpbXSxhcmVhOlsic2hhcGUiLCJjb29yZHMiLCJocmVmIiwiYWx0Il0sYXJ0aWNsZTpbXSxhc2lkZTpbXSxhdWRpbzpbImF1dG9wbGF5IiwiY29udHJvbHMiLCJsb29wIiwicHJlbG9hZCIsInNyYyJdLGI6W10sYmRpOlsiZGlyIl0sYmRvOlsiZGlyIl0sYmlnOltdLGJsb2NrcXVvdGU6WyJjaXRlIl0sYnI6W10sY2FwdGlvbjpbXSxjZW50ZXI6W10sY2l0ZTpbXSxjb2RlOltdLGNvbDpbImFsaWduIiwidmFsaWduIiwic3BhbiIsIndpZHRoIl0sY29sZ3JvdXA6WyJhbGlnbiIsInZhbGlnbiIsInNwYW4iLCJ3aWR0aCJdLGRkOltdLGRlbDpbImRhdGV0aW1lIl0sZGV0YWlsczpbIm9wZW4iXSxkaXY6W10sZGw6W10sZHQ6W10sZW06W10sZm9udDpbImNvbG9yIiwic2l6ZSIsImZhY2UiXSxmb290ZXI6W10saDE6W10saDI6W10saDM6W10saDQ6W10saDU6W10saDY6W10saGVhZGVyOltdLGhyOltdLGk6W10saW1nOlsic3JjIiwiYWx0IiwidGl0bGUiLCJ3aWR0aCIsImhlaWdodCJdLGluczpbImRhdGV0aW1lIl0sbGk6W10sbWFyazpbXSxuYXY6W10sb2w6W10scDpbXSxwcmU6W10sczpbXSxzZWN0aW9uOltdLHNtYWxsOltdLHNwYW46W10sc3ViOltdLHN1cDpbXSxzdHJvbmc6W10sdGFibGU6WyJ3aWR0aCIsImJvcmRlciIsImFsaWduIiwidmFsaWduIl0sdGJvZHk6WyJhbGlnbiIsInZhbGlnbiJdLHRkOlsid2lkdGgiLCJyb3dzcGFuIiwiY29sc3BhbiIsImFsaWduIiwidmFsaWduIl0sdGZvb3Q6WyJhbGlnbiIsInZhbGlnbiJdLHRoOlsid2lkdGgiLCJyb3dzcGFuIiwiY29sc3BhbiIsImFsaWduIiwidmFsaWduIl0sdGhlYWQ6WyJhbGlnbiIsInZhbGlnbiJdLHRyOlsicm93c3BhbiIsImFsaWduIiwidmFsaWduIl0sdHQ6W10sdTpbXSx1bDpbXSx2aWRlbzpbImF1dG9wbGF5IiwiY29udHJvbHMiLCJsb29wIiwicHJlbG9hZCIsInNyYyIsImhlaWdodCIsIndpZHRoIl19fXZhciBpPW5ldyB0O2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUucmVwbGFjZShfLCImbHQ7IikucmVwbGFjZShzLCImZ3Q7Iil9dmFyIF89LzwvZyxzPS8+L2csbD0vIi9nLGM9LyZxdW90Oy9nLHU9LyYjKFthLXpBLVowLTldKik7Py9naW0sZz0vJmNvbG9uOz8vZ2ltLGQ9LyZuZXdsaW5lOz8vZ2ltLGg9LygoalxzKmFccyp2XHMqYXx2XHMqYnxsXHMqaVxzKnZccyplKVxzKnNccypjXHMqclxzKmlccypwXHMqdFxzKnxtXHMqb1xzKmNccypoXHMqYSlcOi9naSxwPS9lXHMqeFxzKnBccypyXHMqZVxzKnNccypzXHMqaVxzKm9ccypuXHMqXCguKi9naSx3PS91XHMqclxzKmxccypcKC4qL2dpO2Z1bmN0aW9uIGYoZSl7cmV0dXJuIGUucmVwbGFjZShsLCImcXVvdDsiKX1mdW5jdGlvbiBiKGUpe3JldHVybiBlLnJlcGxhY2UoYywnIicpfWZ1bmN0aW9uIGsoZSl7cmV0dXJuIGUucmVwbGFjZSh1LGZ1bmN0aW9uKGUsYSl7cmV0dXJuIngiPT09YVswXXx8IlgiPT09YVswXT9TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGEuc3Vic3RyKDEpLDE2KSk6U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhLDEwKSl9KX1mdW5jdGlvbiB5KGUpe3JldHVybiBlLnJlcGxhY2UoZywiOiIpLnJlcGxhY2UoZCwiICIpfWZ1bmN0aW9uIHYoZSl7Zm9yKHZhciBhPSIiLG49MCx0PWUubGVuZ3RoO248dDtuKyspYSs9ZS5jaGFyQ29kZUF0KG4pPDMyPyIgIjplLmNoYXJBdChuKTtyZXR1cm4gbS50cmltKGEpfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIGU9dihlPXkoZT1rKGU9YihlKSkpKX1mdW5jdGlvbiBqKGUpe3JldHVybiBlPXIoZT1mKGUpKX12YXIgej0vPCEtLVtcc1xTXSo/LS0+L2c7bi53aGl0ZUxpc3Q9bygpLG4uZ2V0RGVmYXVsdFdoaXRlTGlzdD1vLG4ub25UYWc9ZnVuY3Rpb24oZSxhLG4pe30sbi5vbklnbm9yZVRhZz1mdW5jdGlvbihlLGEsbil7fSxuLm9uVGFnQXR0cj1mdW5jdGlvbihlLGEsbil7fSxuLm9uSWdub3JlVGFnQXR0cj1mdW5jdGlvbihlLGEsbil7fSxuLnNhZmVBdHRyVmFsdWU9ZnVuY3Rpb24oZSxhLG4sdCl7aWYodD10fHxpLG49eChuKSwiaHJlZiI9PT1hfHwic3JjIj09PWEpe2lmKCIjIj09PShuPW0udHJpbShuKSkpcmV0dXJuIiMiO2lmKCJodHRwOi8vIiE9PW4uc3Vic3RyKDAsNykmJiJodHRwczovLyIhPT1uLnN1YnN0cigwLDgpJiYibWFpbHRvOiIhPT1uLnN1YnN0cigwLDcpJiYiIyIhPT1uWzBdJiYiLyIhPT1uWzBdKXJldHVybiIifWVsc2UgaWYoImJhY2tncm91bmQiPT09YSl7aWYoaC5sYXN0SW5kZXg9MCxoLnRlc3QobikpcmV0dXJuIiJ9ZWxzZSBpZigic3R5bGUiPT09YSl7aWYocC5sYXN0SW5kZXg9MCxwLnRlc3QobikpcmV0dXJuIiI7aWYody5sYXN0SW5kZXg9MCx3LnRlc3QobikmJihoLmxhc3RJbmRleD0wLGgudGVzdChuKSkpcmV0dXJuIiI7bj10LnByb2Nlc3Mobil9cmV0dXJuIG49aihuKX0sbi5lc2NhcGVIdG1sPXIsbi5lc2NhcGVRdW90ZT1mLG4udW5lc2NhcGVRdW90ZT1iLG4uZXNjYXBlSHRtbEVudGl0aWVzPWssbi5lc2NhcGVEYW5nZXJIdG1sNUVudGl0aWVzPXksbi5jbGVhck5vblByaW50YWJsZUNoYXJhY3Rlcj12LG4uZnJpZW5kbHlBdHRyVmFsdWU9eCxuLmVzY2FwZUF0dHJWYWx1ZT1qLG4ub25JZ25vcmVUYWdTdHJpcEFsbD1mdW5jdGlvbigpe3JldHVybiIifSxuLlN0cmlwVGFnQm9keT1mdW5jdGlvbihyLF8peyJmdW5jdGlvbiIhPXR5cGVvZiBfJiYoXz1mdW5jdGlvbigpe30pO3ZhciBzPSFBcnJheS5pc0FycmF5KHIpLGw9W10sYz0hMTtyZXR1cm57b25JZ25vcmVUYWc6ZnVuY3Rpb24oZSxhLG4pe2lmKGk9ZSxzfHwtMSE9PW0uaW5kZXhPZihyLGkpKXtpZihuLmlzQ2xvc2luZyl7dmFyIHQ9IlsvcmVtb3ZlZF0iLG89bi5wb3NpdGlvbit0Lmxlbmd0aDtyZXR1cm4gbC5wdXNoKFshMSE9PWM/YzpuLnBvc2l0aW9uLG9dKSxjPSExLHR9cmV0dXJuIGM9Y3x8bi5wb3NpdGlvbiwiW3JlbW92ZWRdIn1yZXR1cm4gXyhlLGEsbik7dmFyIGl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgbj0iIix0PTA7cmV0dXJuIG0uZm9yRWFjaChsLGZ1bmN0aW9uKGUpe24rPWEuc2xpY2UodCxlWzBdKSx0PWVbMV19KSxuKz1hLnNsaWNlKHQpfX19LG4uc3RyaXBDb21tZW50VGFnPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoeiwiIil9LG4uc3RyaXBCbGFua0NoYXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgYT1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDEyNyE9PWEmJighKGE8PTMxKXx8KDEwPT09YXx8MTM9PT1hKSl9KS5qb2luKCIiKX0sbi5jc3NGaWx0ZXI9aX0seyIuL3V0aWwiOjQsY3NzZmlsdGVyOjh9XSwyOltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL3BhcnNlciIpLGk9ZSgiLi94c3MiKTtmb3IodmFyIHIgaW4obj1hLmV4cG9ydHM9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gbmV3IGkoYSkucHJvY2VzcyhlKX0pLkZpbHRlclhTUz1pLHQpbltyXT10W3JdO2Zvcih2YXIgciBpbiBvKW5bcl09b1tyXTsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5maWx0ZXJYU1M9YS5leHBvcnRzKX0seyIuL2RlZmF1bHQiOjEsIi4vcGFyc2VyIjozLCIuL3hzcyI6NX1dLDM6W2Z1bmN0aW9uKGUsYSxuKXt2YXIgZD1lKCIuL3V0aWwiKTt2YXIgYz0vW15hLXpBLVowLTlfOlwuXC1dL2dpbTtmdW5jdGlvbiBtKGUpe3JldHVybiciJz09PShhPWUpWzBdJiYnIic9PT1hW2EubGVuZ3RoLTFdfHwiJyI9PT1hWzBdJiYiJyI9PT1hW2EubGVuZ3RoLTFdP2Uuc3Vic3RyKDEsZS5sZW5ndGgtMik6ZTt2YXIgYX1uLnBhcnNlVGFnPWZ1bmN0aW9uKGUsYSxuKXtmb3IodmFyIHQsbyxpLHI9IiIsXz0wLHM9ITEsbD0hMSxjPTAsbT1lLmxlbmd0aCx1PSIiLGM9MDtjPG07YysrKXt2YXIgZz1lLmNoYXJBdChjKTtpZighMT09PXMpe2lmKCI8Ij09PWcpe3M9Yztjb250aW51ZX19ZWxzZSBpZighMT09PWwpe2lmKCI8Ij09PWcpe3IrPW4oZS5zbGljZShfLGMpKSxfPXM9Yztjb250aW51ZX1pZigiPiI9PT1nKXtyKz1uKGUuc2xpY2UoXyxzKSksdT1lLnNsaWNlKHMsYysxKSxvPXZvaWQgMCxpPSh0PXUpLmluZGV4T2YoIiAiKSxvPS0xPT09aT90LnNsaWNlKDEsLTEpOnQuc2xpY2UoMSxpKzEpLCIvIj09PShvPWQudHJpbShvKS50b0xvd2VyQ2FzZSgpKS5zbGljZSgwLDEpJiYobz1vLnNsaWNlKDEpKSwiLyI9PT1vLnNsaWNlKC0xKSYmKG89by5zbGljZSgwLC0xKSkscis9YShzLHIubGVuZ3RoLG8sdSwiPC8iPT09dS5zbGljZSgwLDIpKSxfPWMrMSxzPSExO2NvbnRpbnVlfWlmKCgnIic9PT1nfHwiJyI9PT1nKSYmIj0iPT09ZS5jaGFyQXQoYy0xKSl7bD1nO2NvbnRpbnVlfX1lbHNlIGlmKGc9PT1sKXtsPSExO2NvbnRpbnVlfX1yZXR1cm4gXzxlLmxlbmd0aCYmKHIrPW4oZS5zdWJzdHIoXykpKSxyfSxuLnBhcnNlQXR0cj1mdW5jdGlvbihlLHQpe3ZhciBhPTAsbz1bXSxuPSExLGk9ZS5sZW5ndGg7ZnVuY3Rpb24gcihlLGEpe3ZhciBuOyhlPShlPWQudHJpbShlKSkucmVwbGFjZShjLCIiKS50b0xvd2VyQ2FzZSgpKS5sZW5ndGg8MXx8KG49dChlLGF8fCIiKSkmJm8ucHVzaChuKX1mb3IodmFyIF89MDtfPGk7XysrKXt2YXIgcyxsPWUuY2hhckF0KF8pO2lmKCExIT09bnx8Ij0iIT09bClpZighMT09PW58fF8hPT1hfHwnIichPT1sJiYiJyIhPT1sfHwiPSIhPT1lLmNoYXJBdChfLTEpKXtpZigiICI9PT1sKXtpZighMT09PW4pe2lmKC0xPT09KHM9ZnVuY3Rpb24oZSxhKXtmb3IoO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbj1lW2FdO2lmKCIgIiE9PW4pcmV0dXJuIj0iPT09bj9hOi0xfX0oZSxfKSkpe3IoZC50cmltKGUuc2xpY2UoYSxfKSkpLG49ITEsYT1fKzE7Y29udGludWV9Xz1zLTE7Y29udGludWV9aWYoLTEhPT0ocz1mdW5jdGlvbihlLGEpe2Zvcig7MDxhO2EtLSl7dmFyIG49ZVthXTtpZigiICIhPT1uKXJldHVybiI9Ij09PW4/YTotMX19KGUsXy0xKSkpY29udGludWU7cihuLG0oZC50cmltKGUuc2xpY2UoYSxfKSkpKSxuPSExLGE9XysxfX1lbHNle2lmKC0xPT09KHM9ZS5pbmRleE9mKGwsXysxKSkpYnJlYWs7cihuLGQudHJpbShlLnNsaWNlKGErMSxzKSkpLG49ITEsYT0oXz1zKSsxfWVsc2Ugbj1lLnNsaWNlKGEsXyksYT1fKzF9cmV0dXJuIGE8ZS5sZW5ndGgmJighMT09PW4/cihlLnNsaWNlKGEpKTpyKG4sbShkLnRyaW0oZS5zbGljZShhKSkpKSksZC50cmltKG8uam9pbigiICIpKX19LHsiLi91dGlsIjo0fV0sNDpbZnVuY3Rpb24oZSxhLG4pe2EuZXhwb3J0cz17aW5kZXhPZjpmdW5jdGlvbihlLGEpe3ZhciBuLHQ7aWYoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpcmV0dXJuIGUuaW5kZXhPZihhKTtmb3Iobj0wLHQ9ZS5sZW5ndGg7bjx0O24rKylpZihlW25dPT09YSlyZXR1cm4gbjtyZXR1cm4tMX0sZm9yRWFjaDpmdW5jdGlvbihlLGEsbil7dmFyIHQsbztpZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaClyZXR1cm4gZS5mb3JFYWNoKGEsbik7Zm9yKHQ9MCxvPWUubGVuZ3RoO3Q8bzt0KyspYS5jYWxsKG4sZVt0XSx0LGUpfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC8oXlxzKil8KFxzKiQpL2csIiIpfX19LHt9XSw1OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiY3NzZmlsdGVyIikuRmlsdGVyQ1NTLG89ZSgiLi9kZWZhdWx0IiksaT1lKCIuL3BhcnNlciIpLHI9aS5wYXJzZVRhZyxmPWkucGFyc2VBdHRyLGI9ZSgiLi91dGlsIik7ZnVuY3Rpb24gayhlKXtyZXR1cm4gbnVsbD09ZX1mdW5jdGlvbiBfKGUpeyhlPWV8fHt9KS5zdHJpcElnbm9yZVRhZyYmKGUub25JZ25vcmVUYWcmJmNvbnNvbGUuZXJyb3IoJ05vdGVzOiBjYW5ub3QgdXNlIHRoZXNlIHR3byBvcHRpb25zICJzdHJpcElnbm9yZVRhZyIgYW5kICJvbklnbm9yZVRhZyIgYXQgdGhlIHNhbWUgdGltZScpLGUub25JZ25vcmVUYWc9by5vbklnbm9yZVRhZ1N0cmlwQWxsKSxlLndoaXRlTGlzdD1lLndoaXRlTGlzdHx8by53aGl0ZUxpc3QsZS5vblRhZz1lLm9uVGFnfHxvLm9uVGFnLGUub25UYWdBdHRyPWUub25UYWdBdHRyfHxvLm9uVGFnQXR0cixlLm9uSWdub3JlVGFnPWUub25JZ25vcmVUYWd8fG8ub25JZ25vcmVUYWcsZS5vbklnbm9yZVRhZ0F0dHI9ZS5vbklnbm9yZVRhZ0F0dHJ8fG8ub25JZ25vcmVUYWdBdHRyLGUuc2FmZUF0dHJWYWx1ZT1lLnNhZmVBdHRyVmFsdWV8fG8uc2FmZUF0dHJWYWx1ZSxlLmVzY2FwZUh0bWw9ZS5lc2NhcGVIdG1sfHxvLmVzY2FwZUh0bWwsZS5jc3M9ZS5jc3N8fHt9LHRoaXMub3B0aW9ucz1lLHRoaXMuY3NzRmlsdGVyPW5ldyB0KGUuY3NzKX1fLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKGUpe2lmKCEoZT0oZT1lfHwiIikudG9TdHJpbmcoKSkpcmV0dXJuIiI7dmFyIGE9dGhpcy5vcHRpb25zLGM9YS53aGl0ZUxpc3QsbT1hLm9uVGFnLHU9YS5vbklnbm9yZVRhZyxnPWEub25UYWdBdHRyLGQ9YS5vbklnbm9yZVRhZ0F0dHIsaD1hLnNhZmVBdHRyVmFsdWUscD1hLmVzY2FwZUh0bWwsdz10aGlzLmNzc0ZpbHRlcjthLnN0cmlwQmxhbmtDaGFyJiYoZT1vLnN0cmlwQmxhbmtDaGFyKGUpKSxhLmFsbG93Q29tbWVudFRhZ3x8KGU9by5zdHJpcENvbW1lbnRUYWcoZSkpO3ZhciBuPSExO2Euc3RyaXBJZ25vcmVUYWdCb2R5JiYodT0obj1vLlN0cmlwVGFnQm9keShhLnN0cmlwSWdub3JlVGFnQm9keSx1KSkub25JZ25vcmVUYWcpO3ZhciB0PXIoZSxmdW5jdGlvbihlLGEsbyxuLHQpe3ZhciBpPXtzb3VyY2VQb3NpdGlvbjplLHBvc2l0aW9uOmEsaXNDbG9zaW5nOnQsaXNXaGl0ZTpvIGluIGN9LHI9bShvLG4saSk7aWYoIWsocikpcmV0dXJuIHI7aWYoaS5pc1doaXRlKXtpZihpLmlzQ2xvc2luZylyZXR1cm4iPC8iK28rIj4iO3ZhciBfPWZ1bmN0aW9uKGUpe3ZhciBhPWUuaW5kZXhPZigiICIpO2lmKC0xPT09YSlyZXR1cm57aHRtbDoiIixjbG9zaW5nOiIvIj09PWVbZS5sZW5ndGgtMl19O3ZhciBuPSIvIj09PShlPWIudHJpbShlLnNsaWNlKGErMSwtMSkpKVtlLmxlbmd0aC0xXTtyZXR1cm4gbiYmKGU9Yi50cmltKGUuc2xpY2UoMCwtMSkpKSx7aHRtbDplLGNsb3Npbmc6bn19KG4pLHM9Y1tvXSxsPWYoXy5odG1sLGZ1bmN0aW9uKGUsYSl7dmFyIG49LTEhPT1iLmluZGV4T2YocyxlKSx0PWcobyxlLGEsbik7cmV0dXJuIGsodCk/bj8oYT1oKG8sZSxhLHcpKT9lKyc9IicrYSsnIic6ZTprKHQ9ZChvLGUsYSxuKSk/dm9pZCAwOnQ6dH0pLG49IjwiK287cmV0dXJuIGwmJihuKz0iICIrbCksXy5jbG9zaW5nJiYobis9IiAvIiksbis9Ij4ifXJldHVybiBrKHI9dShvLG4saSkpP3Aobik6cn0scCk7cmV0dXJuIG4mJih0PW4ucmVtb3ZlKHQpKSx0fSxhLmV4cG9ydHM9X30seyIuL2RlZmF1bHQiOjEsIi4vcGFyc2VyIjozLCIuL3V0aWwiOjQsY3NzZmlsdGVyOjh9XSw2OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL3BhcnNlciIpO2UoIi4vdXRpbCIpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIG51bGw9PWV9ZnVuY3Rpb24gaShlKXsoZT1lfHx7fSkud2hpdGVMaXN0PWUud2hpdGVMaXN0fHx0LndoaXRlTGlzdCxlLm9uQXR0cj1lLm9uQXR0cnx8dC5vbkF0dHIsZS5vbklnbm9yZUF0dHI9ZS5vbklnbm9yZUF0dHJ8fHQub25JZ25vcmVBdHRyLHRoaXMub3B0aW9ucz1lfWkucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24oZSl7aWYoIShlPShlPWV8fCIiKS50b1N0cmluZygpKSlyZXR1cm4iIjt2YXIgYT10aGlzLm9wdGlvbnMsbD1hLndoaXRlTGlzdCxjPWEub25BdHRyLG09YS5vbklnbm9yZUF0dHI7cmV0dXJuIG8oZSxmdW5jdGlvbihlLGEsbix0LG8pe3ZhciBpPWxbbl0scj0hMTshMD09PWk/cj1pOiJmdW5jdGlvbiI9PXR5cGVvZiBpP3I9aSh0KTppIGluc3RhbmNlb2YgUmVnRXhwJiYocj1pLnRlc3QodCkpLCEwIT09ciYmKHI9ITEpO3ZhciBfLHM9e3Bvc2l0aW9uOmEsc291cmNlUG9zaXRpb246ZSxzb3VyY2U6byxpc1doaXRlOnJ9O3JldHVybiByP3UoXz1jKG4sdCxzKSk/bisiOiIrdDpfOnUoXz1tKG4sdCxzKSk/dm9pZCAwOl99KX0sYS5leHBvcnRzPWl9LHsiLi9kZWZhdWx0Ijo3LCIuL3BhcnNlciI6OSwiLi91dGlsIjoxMH1dLDc6W2Z1bmN0aW9uKGUsYSxuKXtmdW5jdGlvbiB0KCl7dmFyIGU9eyJhbGlnbi1jb250ZW50IjohMSwiYWxpZ24taXRlbXMiOiExLCJhbGlnbi1zZWxmIjohMSwiYWxpZ25tZW50LWFkanVzdCI6ITEsImFsaWdubWVudC1iYXNlbGluZSI6ITEsYWxsOiExLCJhbmNob3ItcG9pbnQiOiExLGFuaW1hdGlvbjohMSwiYW5pbWF0aW9uLWRlbGF5IjohMSwiYW5pbWF0aW9uLWRpcmVjdGlvbiI6ITEsImFuaW1hdGlvbi1kdXJhdGlvbiI6ITEsImFuaW1hdGlvbi1maWxsLW1vZGUiOiExLCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50IjohMSwiYW5pbWF0aW9uLW5hbWUiOiExLCJhbmltYXRpb24tcGxheS1zdGF0ZSI6ITEsImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24iOiExLGF6aW11dGg6ITEsImJhY2tmYWNlLXZpc2liaWxpdHkiOiExLGJhY2tncm91bmQ6ITAsImJhY2tncm91bmQtYXR0YWNobWVudCI6ITAsImJhY2tncm91bmQtY2xpcCI6ITAsImJhY2tncm91bmQtY29sb3IiOiEwLCJiYWNrZ3JvdW5kLWltYWdlIjohMCwiYmFja2dyb3VuZC1vcmlnaW4iOiEwLCJiYWNrZ3JvdW5kLXBvc2l0aW9uIjohMCwiYmFja2dyb3VuZC1yZXBlYXQiOiEwLCJiYWNrZ3JvdW5kLXNpemUiOiEwLCJiYXNlbGluZS1zaGlmdCI6ITEsYmluZGluZzohMSxibGVlZDohMSwiYm9va21hcmstbGFiZWwiOiExLCJib29rbWFyay1sZXZlbCI6ITEsImJvb2ttYXJrLXN0YXRlIjohMSxib3JkZXI6ITAsImJvcmRlci1ib3R0b20iOiEwLCJib3JkZXItYm90dG9tLWNvbG9yIjohMCwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyI6ITAsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIjohMCwiYm9yZGVyLWJvdHRvbS1zdHlsZSI6ITAsImJvcmRlci1ib3R0b20td2lkdGgiOiEwLCJib3JkZXItY29sbGFwc2UiOiEwLCJib3JkZXItY29sb3IiOiEwLCJib3JkZXItaW1hZ2UiOiEwLCJib3JkZXItaW1hZ2Utb3V0c2V0IjohMCwiYm9yZGVyLWltYWdlLXJlcGVhdCI6ITAsImJvcmRlci1pbWFnZS1zbGljZSI6ITAsImJvcmRlci1pbWFnZS1zb3VyY2UiOiEwLCJib3JkZXItaW1hZ2Utd2lkdGgiOiEwLCJib3JkZXItbGVmdCI6ITAsImJvcmRlci1sZWZ0LWNvbG9yIjohMCwiYm9yZGVyLWxlZnQtc3R5bGUiOiEwLCJib3JkZXItbGVmdC13aWR0aCI6ITAsImJvcmRlci1yYWRpdXMiOiEwLCJib3JkZXItcmlnaHQiOiEwLCJib3JkZXItcmlnaHQtY29sb3IiOiEwLCJib3JkZXItcmlnaHQtc3R5bGUiOiEwLCJib3JkZXItcmlnaHQtd2lkdGgiOiEwLCJib3JkZXItc3BhY2luZyI6ITAsImJvcmRlci1zdHlsZSI6ITAsImJvcmRlci10b3AiOiEwLCJib3JkZXItdG9wLWNvbG9yIjohMCwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyI6ITAsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIjohMCwiYm9yZGVyLXRvcC1zdHlsZSI6ITAsImJvcmRlci10b3Atd2lkdGgiOiEwLCJib3JkZXItd2lkdGgiOiEwLGJvdHRvbTohMSwiYm94LWRlY29yYXRpb24tYnJlYWsiOiEwLCJib3gtc2hhZG93IjohMCwiYm94LXNpemluZyI6ITAsImJveC1zbmFwIjohMCwiYm94LXN1cHByZXNzIjohMCwiYnJlYWstYWZ0ZXIiOiEwLCJicmVhay1iZWZvcmUiOiEwLCJicmVhay1pbnNpZGUiOiEwLCJjYXB0aW9uLXNpZGUiOiExLGNoYWluczohMSxjbGVhcjohMCxjbGlwOiExLCJjbGlwLXBhdGgiOiExLCJjbGlwLXJ1bGUiOiExLGNvbG9yOiEwLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiOiEwLCJjb2x1bW4tY291bnQiOiExLCJjb2x1bW4tZmlsbCI6ITEsImNvbHVtbi1nYXAiOiExLCJjb2x1bW4tcnVsZSI6ITEsImNvbHVtbi1ydWxlLWNvbG9yIjohMSwiY29sdW1uLXJ1bGUtc3R5bGUiOiExLCJjb2x1bW4tcnVsZS13aWR0aCI6ITEsImNvbHVtbi1zcGFuIjohMSwiY29sdW1uLXdpZHRoIjohMSxjb2x1bW5zOiExLGNvbnRhaW46ITEsY29udGVudDohMSwiY291bnRlci1pbmNyZW1lbnQiOiExLCJjb3VudGVyLXJlc2V0IjohMSwiY291bnRlci1zZXQiOiExLGNyb3A6ITEsY3VlOiExLCJjdWUtYWZ0ZXIiOiExLCJjdWUtYmVmb3JlIjohMSxjdXJzb3I6ITEsZGlyZWN0aW9uOiExLGRpc3BsYXk6ITAsImRpc3BsYXktaW5zaWRlIjohMCwiZGlzcGxheS1saXN0IjohMCwiZGlzcGxheS1vdXRzaWRlIjohMCwiZG9taW5hbnQtYmFzZWxpbmUiOiExLGVsZXZhdGlvbjohMSwiZW1wdHktY2VsbHMiOiExLGZpbHRlcjohMSxmbGV4OiExLCJmbGV4LWJhc2lzIjohMSwiZmxleC1kaXJlY3Rpb24iOiExLCJmbGV4LWZsb3ciOiExLCJmbGV4LWdyb3ciOiExLCJmbGV4LXNocmluayI6ITEsImZsZXgtd3JhcCI6ITEsZmxvYXQ6ITEsImZsb2F0LW9mZnNldCI6ITEsImZsb29kLWNvbG9yIjohMSwiZmxvb2Qtb3BhY2l0eSI6ITEsImZsb3ctZnJvbSI6ITEsImZsb3ctaW50byI6ITEsZm9udDohMCwiZm9udC1mYW1pbHkiOiEwLCJmb250LWZlYXR1cmUtc2V0dGluZ3MiOiEwLCJmb250LWtlcm5pbmciOiEwLCJmb250LWxhbmd1YWdlLW92ZXJyaWRlIjohMCwiZm9udC1zaXplIjohMCwiZm9udC1zaXplLWFkanVzdCI6ITAsImZvbnQtc3RyZXRjaCI6ITAsImZvbnQtc3R5bGUiOiEwLCJmb250LXN5bnRoZXNpcyI6ITAsImZvbnQtdmFyaWFudCI6ITAsImZvbnQtdmFyaWFudC1hbHRlcm5hdGVzIjohMCwiZm9udC12YXJpYW50LWNhcHMiOiEwLCJmb250LXZhcmlhbnQtZWFzdC1hc2lhbiI6ITAsImZvbnQtdmFyaWFudC1saWdhdHVyZXMiOiEwLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6ITAsImZvbnQtdmFyaWFudC1wb3NpdGlvbiI6ITAsImZvbnQtd2VpZ2h0IjohMCxncmlkOiExLCJncmlkLWFyZWEiOiExLCJncmlkLWF1dG8tY29sdW1ucyI6ITEsImdyaWQtYXV0by1mbG93IjohMSwiZ3JpZC1hdXRvLXJvd3MiOiExLCJncmlkLWNvbHVtbiI6ITEsImdyaWQtY29sdW1uLWVuZCI6ITEsImdyaWQtY29sdW1uLXN0YXJ0IjohMSwiZ3JpZC1yb3ciOiExLCJncmlkLXJvdy1lbmQiOiExLCJncmlkLXJvdy1zdGFydCI6ITEsImdyaWQtdGVtcGxhdGUiOiExLCJncmlkLXRlbXBsYXRlLWFyZWFzIjohMSwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIjohMSwiZ3JpZC10ZW1wbGF0ZS1yb3dzIjohMSwiaGFuZ2luZy1wdW5jdHVhdGlvbiI6ITEsaGVpZ2h0OiEwLGh5cGhlbnM6ITEsaWNvbjohMSwiaW1hZ2Utb3JpZW50YXRpb24iOiExLCJpbWFnZS1yZXNvbHV0aW9uIjohMSwiaW1lLW1vZGUiOiExLCJpbml0aWFsLWxldHRlcnMiOiExLCJpbmxpbmUtYm94LWFsaWduIjohMSwianVzdGlmeS1jb250ZW50IjohMSwianVzdGlmeS1pdGVtcyI6ITEsImp1c3RpZnktc2VsZiI6ITEsbGVmdDohMSwibGV0dGVyLXNwYWNpbmciOiEwLCJsaWdodGluZy1jb2xvciI6ITAsImxpbmUtYm94LWNvbnRhaW4iOiExLCJsaW5lLWJyZWFrIjohMSwibGluZS1ncmlkIjohMSwibGluZS1oZWlnaHQiOiExLCJsaW5lLXNuYXAiOiExLCJsaW5lLXN0YWNraW5nIjohMSwibGluZS1zdGFja2luZy1ydWJ5IjohMSwibGluZS1zdGFja2luZy1zaGlmdCI6ITEsImxpbmUtc3RhY2tpbmctc3RyYXRlZ3kiOiExLCJsaXN0LXN0eWxlIjohMCwibGlzdC1zdHlsZS1pbWFnZSI6ITAsImxpc3Qtc3R5bGUtcG9zaXRpb24iOiEwLCJsaXN0LXN0eWxlLXR5cGUiOiEwLG1hcmdpbjohMCwibWFyZ2luLWJvdHRvbSI6ITAsIm1hcmdpbi1sZWZ0IjohMCwibWFyZ2luLXJpZ2h0IjohMCwibWFyZ2luLXRvcCI6ITAsIm1hcmtlci1vZmZzZXQiOiExLCJtYXJrZXItc2lkZSI6ITEsbWFya3M6ITEsbWFzazohMSwibWFzay1ib3giOiExLCJtYXNrLWJveC1vdXRzZXQiOiExLCJtYXNrLWJveC1yZXBlYXQiOiExLCJtYXNrLWJveC1zbGljZSI6ITEsIm1hc2stYm94LXNvdXJjZSI6ITEsIm1hc2stYm94LXdpZHRoIjohMSwibWFzay1jbGlwIjohMSwibWFzay1pbWFnZSI6ITEsIm1hc2stb3JpZ2luIjohMSwibWFzay1wb3NpdGlvbiI6ITEsIm1hc2stcmVwZWF0IjohMSwibWFzay1zaXplIjohMSwibWFzay1zb3VyY2UtdHlwZSI6ITEsIm1hc2stdHlwZSI6ITEsIm1heC1oZWlnaHQiOiEwLCJtYXgtbGluZXMiOiExLCJtYXgtd2lkdGgiOiEwLCJtaW4taGVpZ2h0IjohMCwibWluLXdpZHRoIjohMCwibW92ZS10byI6ITEsIm5hdi1kb3duIjohMSwibmF2LWluZGV4IjohMSwibmF2LWxlZnQiOiExLCJuYXYtcmlnaHQiOiExLCJuYXYtdXAiOiExLCJvYmplY3QtZml0IjohMSwib2JqZWN0LXBvc2l0aW9uIjohMSxvcGFjaXR5OiExLG9yZGVyOiExLG9ycGhhbnM6ITEsb3V0bGluZTohMSwib3V0bGluZS1jb2xvciI6ITEsIm91dGxpbmUtb2Zmc2V0IjohMSwib3V0bGluZS1zdHlsZSI6ITEsIm91dGxpbmUtd2lkdGgiOiExLG92ZXJmbG93OiExLCJvdmVyZmxvdy13cmFwIjohMSwib3ZlcmZsb3cteCI6ITEsIm92ZXJmbG93LXkiOiExLHBhZGRpbmc6ITAsInBhZGRpbmctYm90dG9tIjohMCwicGFkZGluZy1sZWZ0IjohMCwicGFkZGluZy1yaWdodCI6ITAsInBhZGRpbmctdG9wIjohMCxwYWdlOiExLCJwYWdlLWJyZWFrLWFmdGVyIjohMSwicGFnZS1icmVhay1iZWZvcmUiOiExLCJwYWdlLWJyZWFrLWluc2lkZSI6ITEsInBhZ2UtcG9saWN5IjohMSxwYXVzZTohMSwicGF1c2UtYWZ0ZXIiOiExLCJwYXVzZS1iZWZvcmUiOiExLHBlcnNwZWN0aXZlOiExLCJwZXJzcGVjdGl2ZS1vcmlnaW4iOiExLHBpdGNoOiExLCJwaXRjaC1yYW5nZSI6ITEsInBsYXktZHVyaW5nIjohMSxwb3NpdGlvbjohMSwicHJlc2VudGF0aW9uLWxldmVsIjohMSxxdW90ZXM6ITEsInJlZ2lvbi1mcmFnbWVudCI6ITEscmVzaXplOiExLHJlc3Q6ITEsInJlc3QtYWZ0ZXIiOiExLCJyZXN0LWJlZm9yZSI6ITEscmljaG5lc3M6ITEscmlnaHQ6ITEscm90YXRpb246ITEsInJvdGF0aW9uLXBvaW50IjohMSwicnVieS1hbGlnbiI6ITEsInJ1YnktbWVyZ2UiOiExLCJydWJ5LXBvc2l0aW9uIjohMSwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIjohMSwic2hhcGUtb3V0c2lkZSI6ITEsInNoYXBlLW1hcmdpbiI6ITEsc2l6ZTohMSxzcGVhazohMSwic3BlYWstYXMiOiExLCJzcGVhay1oZWFkZXIiOiExLCJzcGVhay1udW1lcmFsIjohMSwic3BlYWstcHVuY3R1YXRpb24iOiExLCJzcGVlY2gtcmF0ZSI6ITEsc3RyZXNzOiExLCJzdHJpbmctc2V0IjohMSwidGFiLXNpemUiOiExLCJ0YWJsZS1sYXlvdXQiOiExLCJ0ZXh0LWFsaWduIjohMCwidGV4dC1hbGlnbi1sYXN0IjohMCwidGV4dC1jb21iaW5lLXVwcmlnaHQiOiEwLCJ0ZXh0LWRlY29yYXRpb24iOiEwLCJ0ZXh0LWRlY29yYXRpb24tY29sb3IiOiEwLCJ0ZXh0LWRlY29yYXRpb24tbGluZSI6ITAsInRleHQtZGVjb3JhdGlvbi1za2lwIjohMCwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjohMCwidGV4dC1lbXBoYXNpcyI6ITAsInRleHQtZW1waGFzaXMtY29sb3IiOiEwLCJ0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIjohMCwidGV4dC1lbXBoYXNpcy1zdHlsZSI6ITAsInRleHQtaGVpZ2h0IjohMCwidGV4dC1pbmRlbnQiOiEwLCJ0ZXh0LWp1c3RpZnkiOiEwLCJ0ZXh0LW9yaWVudGF0aW9uIjohMCwidGV4dC1vdmVyZmxvdyI6ITAsInRleHQtc2hhZG93IjohMCwidGV4dC1zcGFjZS1jb2xsYXBzZSI6ITAsInRleHQtdHJhbnNmb3JtIjohMCwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iOiEwLCJ0ZXh0LXdyYXAiOiEwLHRvcDohMSx0cmFuc2Zvcm06ITEsInRyYW5zZm9ybS1vcmlnaW4iOiExLCJ0cmFuc2Zvcm0tc3R5bGUiOiExLHRyYW5zaXRpb246ITEsInRyYW5zaXRpb24tZGVsYXkiOiExLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIjohMSwidHJhbnNpdGlvbi1wcm9wZXJ0eSI6ITEsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIjohMSwidW5pY29kZS1iaWRpIjohMSwidmVydGljYWwtYWxpZ24iOiExLHZpc2liaWxpdHk6ITEsInZvaWNlLWJhbGFuY2UiOiExLCJ2b2ljZS1kdXJhdGlvbiI6ITEsInZvaWNlLWZhbWlseSI6ITEsInZvaWNlLXBpdGNoIjohMSwidm9pY2UtcmFuZ2UiOiExLCJ2b2ljZS1yYXRlIjohMSwidm9pY2Utc3RyZXNzIjohMSwidm9pY2Utdm9sdW1lIjohMSx2b2x1bWU6ITEsIndoaXRlLXNwYWNlIjohMSx3aWRvd3M6ITEsd2lkdGg6ITAsIndpbGwtY2hhbmdlIjohMSwid29yZC1icmVhayI6ITAsIndvcmQtc3BhY2luZyI6ITAsIndvcmQtd3JhcCI6ITAsIndyYXAtZmxvdyI6ITEsIndyYXAtdGhyb3VnaCI6ITEsIndyaXRpbmctbW9kZSI6ITEsInotaW5kZXgiOiExfTtyZXR1cm4gZX1uLndoaXRlTGlzdD10KCksbi5nZXREZWZhdWx0V2hpdGVMaXN0PXQsbi5vbkF0dHI9ZnVuY3Rpb24oZSxhLG4pe30sbi5vbklnbm9yZUF0dHI9ZnVuY3Rpb24oZSxhLG4pe319LHt9XSw4OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL2NzcyIpO2Zvcih2YXIgaSBpbihuPWEuZXhwb3J0cz1mdW5jdGlvbihlLGEpe3JldHVybiBuZXcgbyhhKS5wcm9jZXNzKGUpfSkuRmlsdGVyQ1NTPW8sdCluW2ldPXRbaV07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuZmlsdGVyQ1NTPWEuZXhwb3J0cyl9LHsiLi9jc3MiOjYsIi4vZGVmYXVsdCI6N31dLDk6W2Z1bmN0aW9uKGUsYSxuKXt2YXIgbT1lKCIuL3V0aWwiKTthLmV4cG9ydHM9ZnVuY3Rpb24oaSxyKXsiOyIhPT0oaT1tLnRyaW1SaWdodChpKSlbaS5sZW5ndGgtMV0mJihpKz0iOyIpO3ZhciBlPWkubGVuZ3RoLF89ITEscz0wLGw9MCxjPSIiO2Z1bmN0aW9uIGEoKXt2YXIgZSxhLG4sdCxvO198fC0xIT09KGE9KGU9bS50cmltKGkuc2xpY2UocyxsKSkpLmluZGV4T2YoIjoiKSkmJihuPW0udHJpbShlLnNsaWNlKDAsYSkpLHQ9bS50cmltKGUuc2xpY2UoYSsxKSksIW58fChvPXIocyxjLmxlbmd0aCxuLHQsZSkpJiYoYys9bysiOyAiKSkscz1sKzF9Zm9yKDtsPGU7bCsrKXt2YXIgbj1pW2xdO2lmKCIvIj09PW4mJiIqIj09PWlbbCsxXSl7dmFyIHQ9aS5pbmRleE9mKCIqLyIsbCsyKTtpZigtMT09PXQpYnJlYWs7cz0obD10KzEpKzEsXz0hMX1lbHNlIigiPT09bj9fPSEwOiIpIj09PW4/Xz0hMToiOyI9PT1uP198fGEoKToiXG4iPT09biYmYSgpfXJldHVybiBtLnRyaW0oYyl9fSx7Ii4vdXRpbCI6MTB9XSwxMDpbZnVuY3Rpb24oZSxhLG4pe2EuZXhwb3J0cz17aW5kZXhPZjpmdW5jdGlvbihlLGEpe3ZhciBuLHQ7aWYoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpcmV0dXJuIGUuaW5kZXhPZihhKTtmb3Iobj0wLHQ9ZS5sZW5ndGg7bjx0O24rKylpZihlW25dPT09YSlyZXR1cm4gbjtyZXR1cm4tMX0sZm9yRWFjaDpmdW5jdGlvbihlLGEsbil7dmFyIHQsbztpZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaClyZXR1cm4gZS5mb3JFYWNoKGEsbik7Zm9yKHQ9MCxvPWUubGVuZ3RoO3Q8bzt0KyspYS5jYWxsKG4sZVt0XSx0LGUpfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC8oXlxzKil8KFxzKiQpL2csIiIpfSx0cmltUmlnaHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbVJpZ2h0P2UudHJpbVJpZ2h0KCk6ZS5yZXBsYWNlKC8oXHMqJCkvZywiIil9fX0se31dfSx7fSxbMl0pLGRlZmluZSgicHJldHR5LXRleHQveHNzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD13aW5kb3cuZmlsdGVyWFNTfSksZGVmaW5lKCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyJdLGZ1bmN0aW9uKGUsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkRFRkFVTFRfTElTVD1lLmRlZmF1bHQ9dm9pZCAwO3ZhciB1PWZ1bmN0aW9uKGUsYSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLGEpe3ZhciBuPVtdLHQ9ITAsbz0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciByLF89ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShyPV8ubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhYXx8bi5sZW5ndGghPT1hKTt0PSEwKTt9Y2F0Y2goZSl7bz0hMCxpPWV9ZmluYWxseXt0cnl7IXQmJl8ucmV0dXJuJiZfLnJldHVybigpfWZpbmFsbHl7aWYobyl0aHJvdyBpfX1yZXR1cm4gbn0oZSxhKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIHQoZSxhKXtmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKyl7dmFyIHQ9YVtuXTt0LmVudW1lcmFibGU9dC5lbnVtZXJhYmxlfHwhMSx0LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdCYmKHQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQua2V5LHQpfX12YXIgZz0vKFteXFtdKykoXFsoW149XSspKD0oLiopKT9cXSk/LyxuPShmdW5jdGlvbihlLGEsbil7cmV0dXJuIGEmJnQoZS5wcm90b3R5cGUsYSksbiYmdChlLG4pLGV9KG8sW3trZXk6IndoaXRlTGlzdEZlYXR1cmUiLHZhbHVlOmZ1bmN0aW9uKGUsYSl7dGhpcy5fcmF3RmVhdHVyZXMucHVzaChbZSxhXSl9fSx7a2V5OiJkaXNhYmxlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9lbmFibGVkW2VdPSExLHRoaXMuX2NhY2hlPW51bGx9fSx7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuX2VuYWJsZWRbZV09ITAsdGhpcy5fY2FjaGU9bnVsbH19LHtrZXk6Il9idWlsZENhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBvPXRoaXMsYz17fSxtPXt9LGk9W107dGhpcy5fcmF3RmVhdHVyZXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYT11KGUsMiksbj1hWzBdLHQ9YVsxXTtvLl9lbmFibGVkW25dJiYodC5jdXN0b20/aS5wdXNoKHQuY3VzdG9tKTooInN0cmluZyI9PXR5cGVvZiB0JiYodD1bdF0pLCh0fHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYSxuLHQsbyxpLHIsXz1lLnNwbGl0KCIuIikscz1fLnNoaWZ0KCksbD1nLmV4ZWMocyk7bCYmKG49KGE9dShsLDYpKVsxXSx0PWFbM10sbz1hWzVdLGNbbl09W10saT1tW25dPW1bbl18fHt9LDA8Xy5sZW5ndGgmJihpLmNsYXNzPShpLmNsYXNzfHxbXSkuY29uY2F0KF8pKSx0JiYocj1pW3RdPWlbdF18fFtdLG8/ci5wdXNoKG8pOmlbdF09WyIqIl0pKX0pKSl9KSx0aGlzLl9jYWNoZT17Y3VzdG9tOmksd2hpdGVMaXN0Ont0YWdMaXN0OmMsYXR0ckxpc3Q6bX19fX0se2tleToiX2Vuc3VyZUNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2NhY2hlfHx0aGlzLl9idWlsZENhY2hlKCl9fSx7a2V5OiJnZXRXaGl0ZUxpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Vuc3VyZUNhY2hlKCksdGhpcy5fY2FjaGUud2hpdGVMaXN0fX0se2tleToiZ2V0Q3VzdG9tIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbnN1cmVDYWNoZSgpLHRoaXMuX2NhY2hlLmN1c3RvbX19LHtrZXk6ImdldEFsbG93ZWRIcmVmU2NoZW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWxsb3dlZEhyZWZTY2hlbWVzfX0se2tleToiZ2V0QWxsb3dlZElmcmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsbG93ZWRJZnJhbWVzfX1dKSxvKTtmdW5jdGlvbiBvKGEpe3ZhciBuPXRoaXM7IWZ1bmN0aW9uKGUsYSl7aWYoIShlIGluc3RhbmNlb2YgYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbyksdGhpcy5fZW5hYmxlZD17ZGVmYXVsdDohMH0sdGhpcy5fYWxsb3dlZEhyZWZTY2hlbWVzPWEmJmEuYWxsb3dlZEhyZWZTY2hlbWVzfHxbXSx0aGlzLl9hbGxvd2VkSWZyYW1lcz1hJiZhLmFsbG93ZWRJZnJhbWVzfHxbXSx0aGlzLl9yYXdGZWF0dXJlcz1bWyJkZWZhdWx0IixpXV0sdGhpcy5fY2FjaGU9bnVsbCxhJiZhLmZlYXR1cmVzJiZPYmplY3Qua2V5cyhhLmZlYXR1cmVzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2EuZmVhdHVyZXNbZV0mJihuLl9lbmFibGVkW2VdPSEwKX0pfWUuZGVmYXVsdD1uO3ZhciBpPWUuREVGQVVMVF9MSVNUPVsiYS5hdHRhY2htZW50IiwiYS5oYXNodGFnIiwiYS5tZW50aW9uIiwiYS5tZW50aW9uLWdyb3VwIiwiYS5vbmVib3giLCJhLiIrYS5JTkxJTkVfT05FQk9YX0NTU19DTEFTUywiYS4iK2EuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUywiYVtkYXRhLWJiY29kZV0iLCJhW25hbWVdIiwiYVtyZWw9bm9mb2xsb3ddIiwiYVtyZWw9dWdjXSIsImFbdGFyZ2V0PV9ibGFua10iLCJhW3RpdGxlXSIsImFiYnJbdGl0bGVdIiwiYXNpZGUucXVvdGUiLCJhc2lkZVtkYXRhLSpdIiwiYXVkaW8iLCJhdWRpb1tjb250cm9sc10iLCJhdWRpb1twcmVsb2FkXSIsImIiLCJiaWciLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkaXYiLCJkaXYucXVvdGUtY29udHJvbHMiLCJkaXYudGl0bGUiLCJkaXZbYWxpZ25dIiwiZGl2W2xhbmddIiwiZGl2W2RhdGEtKl0iLCJkaXZbZGlyXSIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImlmcmFtZSIsImlmcmFtZVtmcmFtZWJvcmRlcl0iLCJpZnJhbWVbaGVpZ2h0XSIsImlmcmFtZVttYXJnaW5oZWlnaHRdIiwiaWZyYW1lW21hcmdpbndpZHRoXSIsImlmcmFtZVt3aWR0aF0iLCJpZnJhbWVbYWxsb3dmdWxsc2NyZWVuXSIsImltZ1thbHRdIiwiaW1nW2hlaWdodF0iLCJpbWdbdGl0bGVdIiwiaW1nW3dpZHRoXSIsImlucyIsImtiZCIsImxpIiwib2wiLCJvbFtzdGFydF0iLCJwIiwicFtsYW5nXSIsInByZSIsInMiLCJzbWFsbCIsInNwYW5bbGFuZ10iLCJzcGFuLmV4Y2VycHQiLCJkaXYuZXhjZXJwdCIsImRpdi52aWRlby1jb250YWluZXIiLCJzcGFuLmhhc2h0YWciLCJzcGFuLm1lbnRpb24iLCJzdHJpa2UiLCJzdHJvbmciLCJzdWIiLCJzdXAiLCJzb3VyY2Vbc3JjXSIsInNvdXJjZVtkYXRhLW9yaWctc3JjXSIsInNvdXJjZVt0eXBlXSIsInRyYWNrIiwidHJhY2tbZGVmYXVsdF0iLCJ0cmFja1tsYWJlbF0iLCJ0cmFja1traW5kXSIsInRyYWNrW3NyY10iLCJ0cmFja1tzcmNsYW5nXSIsInVsIiwidmlkZW8iLCJ2aWRlb1tjb250cm9sc10iLCJ2aWRlb1tjb250cm9sc2xpc3RdIiwidmlkZW9bY3Jvc3NvcmlnaW5dIiwidmlkZW9baGVpZ2h0XSIsInZpZGVvW3Bvc3Rlcl0iLCJ2aWRlb1t3aWR0aF0iLCJ2aWRlb1tjb250cm9sc10iLCJ2aWRlb1twcmVsb2FkXSIsInJ1YnkiLCJydWJ5W2xhbmddIiwicmIiLCJyYltsYW5nXSIsInJwIiwicnQiLCJydFtsYW5nXSJdfSksZGVmaW5lKCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L3hzcyJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0oZSxhKXtyZXR1cm4gYT9lKyc9Iicrbi5kZWZhdWx0LmVzY2FwZUF0dHJWYWx1ZShhKSsnIic6ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5lc2NhcGU9ZnVuY3Rpb24oZSl7e2lmKG51bGw9PT1lKXJldHVybiIiO2lmKCFlKXJldHVybiBlKyIifXJldHVybiBlPSIiK2Usby50ZXN0KGUpP2UucmVwbGFjZSh0LGkpOmV9LGUuaHJlZkFsbG93ZWQ9dSxlLnNhbml0aXplPWZ1bmN0aW9uKGUsXyl7aWYoIWUpcmV0dXJuIiI7ZT1lLnJlcGxhY2UoLzwoW15BLVphLXpcL1whXXwkKS9nLCImbHQ7JDEiKTt2YXIgcz1fLmdldFdoaXRlTGlzdCgpLGE9Xy5nZXRBbGxvd2VkSHJlZlNjaGVtZXMoKSxsPV8uZ2V0QWxsb3dlZElmcmFtZXMoKSxjPW51bGw7YSYmMDxhLmxlbmd0aCYmKGM9W25ldyBSZWdFeHAoIl4oIithLmpvaW4oInwiKSsiKTovL1tcXHdcXC5cXC1dKyIsImkiKV0sYS5pbmNsdWRlcygidGVsIikmJmMucHVzaChuZXcgUmVnRXhwKCJedGVsOi8vXFwrP1tcXHdcXC5cXC1dKyIsImkiKSkpO3JldHVybigwLG4uZGVmYXVsdCkoZSx7d2hpdGVMaXN0OnMudGFnTGlzdCxzdHJpcElnbm9yZVRhZzohMCxzdHJpcElnbm9yZVRhZ0JvZHk6WyJzY3JpcHQiLCJ0YWJsZSJdLG9uSWdub3JlVGFnQXR0cjpmdW5jdGlvbihlLGEsbil7dmFyIHQ9cy5hdHRyTGlzdFtlXTtpZih0KXt2YXIgbz10W2FdO2lmKG8mJigtMSE9PW8uaW5kZXhPZigiKiIpfHwtMSE9PW8uaW5kZXhPZihuKSl8fDA9PT1hLmluZGV4T2YoImRhdGEtIikmJnRbImRhdGEtKiJdfHwiYSI9PT1lJiYiaHJlZiI9PT1hJiZ1KG4sYyl8fCJpbWciPT09ZSYmInNyYyI9PT1hJiYoL15kYXRhOmltYWdlLiokL2kudGVzdChuKXx8dShuLGMpKXx8ImlmcmFtZSI9PT1lJiYic3JjIj09PWEmJmwuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gMD09PW4udG9Mb3dlckNhc2UoKS5pbmRleE9mKChlfHwiIikudG9Mb3dlckNhc2UoKSl9KSlyZXR1cm4gbShhLG4pO2lmKCJpZnJhbWUiPT09ZSYmInNyYyI9PT1hKXJldHVybiItU1RSSVAtIjtpZigtMSE9PVsiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2Il0uaW5kZXhPZihlKSYmbi5tYXRjaCgvXmhlYWRpbmdcLVwtW2EtekEtWjAtOVwtXF9dKyQvKSlyZXR1cm4gbShhLG4pO2Zvcih2YXIgaT1fLmdldEN1c3RvbSgpLHI9MDtyPGkubGVuZ3RoO3IrKyl7aWYoKDAsaVtyXSkoZSxhLG4pKXJldHVybiBtKGEsbil9fX19KS5yZXBsYWNlKC9cW3JlbW92ZWRcXS9nLCIiKS5yZXBsYWNlKC9cPGlmcmFtZVtePl0rXC1TVFJJUFwtW14+XSo+W148XSo8XC9pZnJhbWU+L2csIiIpLnJlcGxhY2UoLyYoPyFbI1x3XSs7KS9nLCImYW1wOyIpLnJlcGxhY2UoLyYjMzk7L2csIiciKS5yZXBsYWNlKC8gXC8+L2csIj4iKX07dmFyIGE9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImI3gyNzsiLCJgIjoiJiN4NjA7In0sdD0vWyY8PiInYF0vZyxvPS9bJjw+IidgXS87ZnVuY3Rpb24gaShlKXtyZXR1cm4gYVtlXX1mdW5jdGlvbiB1KGUsYSl7aWYoZT1lLnJlcGxhY2UoLycvZywiJTI3IiksL14oaHR0cHM/Oik/XC9cL1tcd1wuXC1dKy9pLnRlc3QoZSkpcmV0dXJuIGU7aWYoL15cL1tcd1wuXC1dKy9pLnRlc3QoZSkpcmV0dXJuIGU7aWYoL14jW1x3XC5cLV0rL2kudGVzdChlKSlyZXR1cm4gZTtpZigvXm1haWx0bzpbXHdcLlwtQF0rL2kudGVzdChlKSlyZXR1cm4gZTtpZihhJiYwPGEubGVuZ3RoKWZvcih2YXIgbj0wO248YS5sZW5ndGg7bisrKWlmKGFbbl0udGVzdChlKSlyZXR1cm4gZX19KSxkZWZpbmUoInByZXR0eS10ZXh0L29uZWJveGVyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsInByZXR0eS10ZXh0L29uZWJveGVyLWNhY2hlIl0sZnVuY3Rpb24oZSx1LGcpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5MT0FESU5HX09ORUJPWF9DU1NfQ0xBU1M9dm9pZCAwLGUucmVzZXRDYWNoZT1mdW5jdGlvbigpe2guY2xlYXIoKSwoMCxnLnJlc2V0TG9jYWxDYWNoZSkoKSwoMCxnLnJlc2V0RmFpbGVkQ2FjaGUpKCl9LGUubG9hZD1mdW5jdGlvbihlKXt2YXIgYT1lLmVsZW0sbj1lLnJlZnJlc2gsdD12b2lkIDA9PT1ufHxuLG89ZS5hamF4LGk9ZS5zeW5jaHJvbm91cyxyPXZvaWQgMCE9PWkmJmksXz1lLmNhdGVnb3J5SWQscz1lLnRvcGljSWQsbD0kKGEpO2lmKGwuZGF0YSgib25lYm94LWxvYWRlZCIpKXJldHVybjtpZihsLmhhc0NsYXNzKHApKXJldHVybjt2YXIgYz1hLmhyZWY7aWYoIXQpe3ZhciBtPWcubG9jYWxDYWNoZVsoMCxnLm5vcm1hbGl6ZSkoYyldO2lmKG0pcmV0dXJuIG0ucHJvcCgib3V0ZXJIVE1MIik7aWYoZy5mYWlsZWRDYWNoZVsoMCxnLm5vcm1hbGl6ZSkoYyldKXJldHVybn17aWYobC5hZGRDbGFzcyhwKSxoLnB1c2goe3VybDpjLHJlZnJlc2g6dCwkZWxlbTpsLGNhdGVnb3J5SWQ6Xyx0b3BpY0lkOnN9KSxyKXJldHVybiB3KG8pO2Q9ZHx8KDAsdS5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gdyhvKX0sMTUwKX19O3ZhciBkPXZvaWQgMCxoPVtdLHA9ZS5MT0FESU5HX09ORUJPWF9DU1NfQ0xBU1M9ImxvYWRpbmctb25lYm94IjtmdW5jdGlvbiBsKGUpeyQoZSkuYWRkQ2xhc3MoInNpemUtcmVzb2x2ZWQiKSwwPGUud2lkdGgmJmUud2lkdGg9PT1lLmhlaWdodCYmJChlKS5hZGRDbGFzcygib25lYm94LWF2YXRhciIpfWZ1bmN0aW9uIHcoZSl7aWYoMCE9PWgubGVuZ3RoKXt2YXIgYT0xNTAsbj0hMCx0PWguc2hpZnQoKSxpPXQudXJsLG89dC5yZWZyZXNoLHI9dC4kZWxlbSxfPXQuY2F0ZWdvcnlJZCxzPXQudG9waWNJZDtyZXR1cm4gZSgiL29uZWJveCIse2RhdGFUeXBlOiJodG1sIixkYXRhOnt1cmw6aSxyZWZyZXNoOm8sY2F0ZWdvcnlfaWQ6Xyx0b3BpY19pZDpzfSxjYWNoZTohMH0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIGEsbix0LG89JChlKTsoMCxnLnNldExvY2FsQ2FjaGUpKCgwLGcubm9ybWFsaXplKShpKSxvKSxyLnJlcGxhY2VXaXRoKG8pLGE9bywoMCxnLm5vcm1hbGl6ZSkoaSksYS5oYXNDbGFzcygid2hpdGVsaXN0ZWRnZW5lcmljIikmJihuPWEuZmluZCgiLm9uZWJveC1ib2R5IGltZy50aHVtYm5haWwiKSx0PW5bMF0sMSE9PW4ubGVuZ3RofHxuLmhhc0NsYXNzKCJzaXplLXJlc29sdmVkIil8fCh0LmNvbXBsZXRlP2wodCk6bi5vbigibG9hZC5vbmVib3giLGZ1bmN0aW9uKCl7bCh0KSxuLm9mZigibG9hZC5vbmVib3giKX0pKSl9LGZ1bmN0aW9uKGUpe2UmJmUuanFYSFImJjQyOT09PWUuanFYSFIuc3RhdHVzPyhuPSEoYT0yZTMpLGgudW5zaGlmdCh7dXJsOmkscmVmcmVzaDpvLCRlbGVtOnIsY2F0ZWdvcnlJZDpfLHRvcGljSWQ6c30pKTooMCxnLnNldEZhaWxlZENhY2hlKSgoMCxnLm5vcm1hbGl6ZSkoaSksITApfSkuZmluYWxseShmdW5jdGlvbigpe2Q9KDAsdS5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gdyhlKX0sYSksbiYmKHIucmVtb3ZlQ2xhc3MocCksci5kYXRhKCJvbmVib3gtbG9hZGVkIikpfSl9ZD1udWxsfX0pLGRlZmluZSgicHJldHR5LXRleHQvb25lYm94ZXItY2FjaGUiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNldExvY2FsQ2FjaGU9ZnVuY3Rpb24oKXtlLmxvY2FsQ2FjaGU9bj17fX0sZS5yZXNldEZhaWxlZENhY2hlPWZ1bmN0aW9uKCl7ZS5mYWlsZWRDYWNoZT10PXt9fSxlLnNldExvY2FsQ2FjaGU9ZnVuY3Rpb24oZSxhKXtuW2VdPWF9LGUuc2V0RmFpbGVkQ2FjaGU9ZnVuY3Rpb24oZSxhKXt0W2VdPWF9LGUubm9ybWFsaXplPW8sZS5sb29rdXBDYWNoZT1mdW5jdGlvbihlKXt2YXIgYT1uW28oZSldO3JldHVybiBhJiZhLnByb3AoIm91dGVySFRNTCIpfTt2YXIgbj1lLmxvY2FsQ2FjaGU9e30sdD1lLmZhaWxlZENhY2hlPXt9O2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUucmVwbGFjZSgvXC8kLywiIil9fSksZGVmaW5lKCJwcmV0dHktdGV4dC9jb250ZXh0L2lubGluZS1vbmVib3gtY3NzLWNsYXNzZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5JTkxJTkVfT05FQk9YX0xPQURJTkdfQ1NTX0NMQVNTPSJpbmxpbmUtb25lYm94LWxvYWRpbmciLGUuSU5MSU5FX09ORUJPWF9DU1NfQ0xBU1M9ImlubGluZS1vbmVib3gifSksZGVmaW5lKCJwcmV0dHktdGV4dC9pbmxpbmUtb25lYm94ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFwcGx5SW5saW5lT25lYm94ZXM9ZnVuY3Rpb24obixlLGEpe3JldHVybiBhPWF8fHt9LE9iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT17fX0pLGUoIi9pbmxpbmUtb25lYm94Iix7ZGF0YTp7dXJsczpPYmplY3Qua2V5cyhuKSxjYXRlZ29yeV9pZDphLmNhdGVnb3J5SWQsdG9waWNfaWQ6YS50b3BpY0lkfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZVsiaW5saW5lLW9uZWJveGVzIl0uZm9yRWFjaChmdW5jdGlvbihhKXthLnRpdGxlJiYob1thLnVybF09YSwoblthLnVybF18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyQoZSkudGV4dChhLnRpdGxlKS5hZGRDbGFzcyh0LklOTElORV9PTkVCT1hfQ1NTX0NMQVNTKS5yZW1vdmVDbGFzcyh0LklOTElORV9PTkVCT1hfTE9BRElOR19DU1NfQ0xBU1MpfSkpfSl9KX0sZS5jYWNoZWRJbmxpbmVPbmVib3g9ZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19LGUuYXBwbHlDYWNoZWRJbmxpbmVPbmVib3g9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gb1tlXT1hfSxlLmRlbGV0ZUNhY2hlZElubGluZU9uZWJveD1mdW5jdGlvbihlKXtyZXR1cm4gZGVsZXRlIG9bZV19O3ZhciBvPXt9fSksZGVmaW5lKCJwcmV0dHktdGV4dC91cGxvYWQtc2hvcnQtdXJsIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIi4vZW5naW5lcy9kaXNjb3Vyc2UtbWFya2Rvd24taXQiXSxmdW5jdGlvbihlLG8sbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxvb2t1cENhY2hlZFVwbG9hZFVybD1pLGUubG9va3VwVW5jYWNoZWRVcGxvYWRVcmxzPXMsZS5jYWNoZVNob3J0VXBsb2FkVXJsPWwsZS5yZXNldENhY2hlPWZ1bmN0aW9uKCl7dD17fX0sZS5yZXNvbHZlQWxsU2hvcnRVcmxzPWZ1bmN0aW9uKG4pe3ZhciBlPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLGE9ImltZ1tkYXRhLW9yaWctc3JjXSwgYVtkYXRhLW9yaWctaHJlZl0sIHNvdXJjZVtkYXRhLW9yaWctc3JjXSIsdD0kKGV8fGRvY3VtZW50KS5maW5kKGEpO2lmKDA8dC5sZW5ndGgmJihtKHQpLDA8KHQ9JChlfHxkb2N1bWVudCkuZmluZChhKSkubGVuZ3RoKSlyZXR1cm4oMCxvLmRlYm91bmNlKShudWxsLGZ1bmN0aW9uKCl7cmV0dXJuIGE9bixzKChlPXQpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGE9JChlKTtyZXR1cm4gYS5kYXRhKCJvcmlnLXNyYyIpfHxhLmRhdGEoIm9yaWctaHJlZiIpfSksYSkudGhlbihmdW5jdGlvbigpe3JldHVybiBtKGUpfSk7dmFyIGUsYX0sNDUwLCEwKX07dmFyIHQ9e307ZnVuY3Rpb24gaShlKXtyZXR1cm4gdFtlXXx8e319dmFyIHI9Im1pc3NpbmciO2Z1bmN0aW9uIHMoYSxlKXtpZigwIT09KGE9Xy5jb21wYWN0KGEpKS5sZW5ndGgpcmV0dXJuIGUoIi91cGxvYWRzL2xvb2t1cC11cmxzIix7bWV0aG9kOiJQT1NUIixkYXRhOntzaG9ydF91cmxzOmF9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2woZS5zaG9ydF91cmwse3VybDplLnVybCxzaG9ydF9wYXRoOmUuc2hvcnRfcGF0aH0pfSksYS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBsKGUse3VybDppKGUpLnVybHx8cixzaG9ydF9wYXRoOmkoZSkuc2hvcnRfcGF0aHx8cn0pfSksZX0pfWZ1bmN0aW9uIGwoZSxhKXt0W2VdPWF9ZnVuY3Rpb24gYyhlLGEsbil7dmFyIHQ9aShlLmRhdGEoYSkpLG89Im9yaWctaHJlZiI9PT1hP3Quc2hvcnRfcGF0aDp0LnVybDtvJiYoZS5yZW1vdmVBdHRyKCJkYXRhLSIrYSksbyE9PXImJm4obykpfWZ1bmN0aW9uIG0oZSl7ZS5lYWNoKGZ1bmN0aW9uKGUsYSl7dmFyIG89JChhKTtzd2l0Y2goYS50YWdOYW1lKXtjYXNlIkEiOmMobywib3JpZy1ocmVmIixmdW5jdGlvbihlKXtvLmF0dHIoImhyZWYiLGUpO3ZhciBhPW8udGV4dCgpLnNwbGl0KCJ8Iik7YVsxXT09PW4uQVRUQUNITUVOVF9DU1NfQ0xBU1MmJihvLmFkZENsYXNzKG4uQVRUQUNITUVOVF9DU1NfQ0xBU1MpLG8udGV4dChhWzBdKSl9KTticmVhaztjYXNlIklNRyI6YyhvLCJvcmlnLXNyYyIsZnVuY3Rpb24oZSl7by5hdHRyKCJzcmMiLGUpfSk7YnJlYWs7Y2FzZSJTT1VSQ0UiOmMobywib3JpZy1zcmMiLGZ1bmN0aW9uKGUpe3ZhciBhO28uYXR0cigic3JjIixlKSxlLnN0YXJ0c1dpdGgoIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCkmJihhPW5ldyBSZWdFeHAoIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCwiZyIpLGU9ZS5yZXBsYWNlKGEsIiIpKTt2YXIgbj13aW5kb3cubG9jYXRpb24ub3JpZ2luK2U7by5hdHRyKCJzcmMiLG4pO3ZhciB0PW8ucGFyZW50KCk7dFswXS5sb2FkKCksdC5maW5kKCJhIikuYXR0cigiaHJlZiIsbikudGV4dChuKX0pfX0pfX0pOwovLyMgc291cmNlTWFwcGluZ1VSTD0vYXNzZXRzL3ByZXR0eS10ZXh0LWJ1bmRsZS00ZjU0OWU3N2Q3NTZmYmFlNjYyNzI5NzkyMDFiYzM2NjIzYWE4NjdkNWQ2NzEzOTU5MDI4OGE1ZTQxNTRhN2FmLmpzLm1hcA==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.10699999222904444,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1842.1039999888055,
          "receive": 699.4630000262987,
          "_blocked_queueing": 0.10599999222904444
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 36
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 21800.434000004316,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000441"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:51:11 GMT"
            },
            {
              "name": "Content-Length",
              "value": "447347"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2412472,
            "mimeType": "application/javascript",
            "text": "ZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvZXh0cmFjdC12YWx1ZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlLmluaXRpYWxpemVyJiZlLmluaXRpYWxpemVyKCl9fSksZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvaGFuZGxlLWRlc2NyaXB0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCIuL2V4dHJhY3QtdmFsdWUiXSxmdW5jdGlvbihlLGEsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpbXTtyZXR1cm57ZW51bWVyYWJsZTppLmVudW1lcmFibGUsY29uZmlndXJhYmxlOmkuY29uZmlndXJhYmxlLHdyaXRlYWJsZTppLndyaXRlYWJsZSxpbml0aWFsaXplcjpmdW5jdGlvbigpe3ZhciBlPXZvaWQgMDtpZighaS53cml0YWJsZSl0aHJvdyBuZXcgRXJyb3IoImVtYmVyLWNvbXB1dGVkLWRlY29yYXRvcnMgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7dmFyIHQscyxvLG49KDAsbC5kZWZhdWx0KShpKSxlPSJvYmplY3QiPT09KHZvaWQgMD09PW4/InVuZGVmaW5lZCI6dShuKSk/KHQ9e30sbi5nZXQmJih0LmdldD1kKHIsbi5nZXQpKSxuLnNldCYmKHQuc2V0PShzPXIsbz1uLnNldCxzPXMubWFwKGMpLGZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxpPXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ2V0KShuLGUpfSk7cmV0dXJuIGkudW5zaGlmdCh0KSxvLmFwcGx5KHRoaXMsaSl9KSksdCk6ZChyLG4pO3JldHVybiBhLmNvbXB1dGVkLmFwcGx5KG51bGwsci5jb25jYXQoZSkpfX19O3ZhciB1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtmdW5jdGlvbiBjKGUpe2Zvcih2YXIgdD1lLnNwbGl0KCIuIiksbj12b2lkIDAsbj0wO248dC5sZW5ndGgmJigiQGVhY2giIT09dFtuXSYmIltdIiE9PXRbbl0mJi0xPT09dFtuXS5pbmRleE9mKCJ7IikpO24rKyk7cmV0dXJuIHQuc2xpY2UoMCxuKS5qb2luKCIuIil9ZnVuY3Rpb24gZChuLGkpe3JldHVybiBuPW4ubWFwKGMpLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ2V0KSh0LGUpfSk7cmV0dXJuIGkuYXBwbHkodGhpcyxlKX19fSksZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvaXMtZGVzY3JpcHRvciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6dChlKSkmJiJ3cml0YWJsZSJpbiBlJiYiZW51bWVyYWJsZSJpbiBlJiYiY29uZmlndXJhYmxlImluIGV9O3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtlbnZpcm9ubWVudDpFbWJlci50ZXN0aW5nPyJ0ZXN0IjoiZGV2ZWxvcG1lbnQifX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL2JvdW5kLWkxOG4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSx0KXtyZXR1cm4gSTE4bi50KGUsdC5oYXNoKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvY29tcG9uZW50LWZvci1jb2xsZWN0aW9uIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJjb21wb25lbnQtZm9yLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbihlKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvY29tcG9uZW50LWZvci1yb3ciLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImNvbXBvbmVudC1mb3Itcm93IixmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9kaWZ5Q29tcG9uZW50Rm9yUm93KGUsdCl9KX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL2QtaWNvbiIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJkLWljb24iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5yZW5kZXJJY29uKSgic3RyaW5nIixlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvZmEtaWNvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlLHQpe3JldHVybigwLG4ucmVuZGVySWNvbikoInN0cmluZyIsZSx0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pY29uSFRNTD1zLCgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZmEtaWNvbiIsZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxpLmRlZmF1bHQpKCJVc2UgYHt7ZC1pY29ufX1gIGluc3RlYWQgb2YgYHt7ZmEtaWNvbn19IiksbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhzKGUsdCkpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vaGVscGVycy9nZXQtdXJsIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtdXJsIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJnZXQtdXJsIixmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmRlZmF1bHQpKGUpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vaGVscGVycy9pMThuIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJpMThuIixmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoZSx0KX0pLCgwLGUucmVnaXN0ZXJVbmJvdW5kKSgiaTE4bi15ZXMtbm8iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIEkxOG4udChlPyJ5ZXNfdmFsdWUiOiJub192YWx1ZSIsdCl9KX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL3BvcHVsYXItdGhlbWVzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuUE9QVUxBUl9USEVNRVM9W3tuYW1lOiJHcmFjZWZ1bCIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZ3JhY2VmdWwiLHByZXZpZXc6Imh0dHBzOi8vdGhlbWUtY3JlYXRvci5kaXNjb3Vyc2Uub3JnL3RoZW1lL2F3ZXNvbWVyb2JvdC9ncmFjZWZ1bCIsZGVzY3JpcHRpb246IkEgbGlnaHQgYW5kIGdyYWNlZnVsIHRoZW1lIGZvciBEaXNjb3Vyc2UuIixtZXRhX3VybDoiaHR0cHM6Ly9tZXRhLmRpc2NvdXJzZS5vcmcvdC9hLWdyYWNlZnVsLXRoZW1lLWZvci1kaXNjb3Vyc2UvOTMwNDAifSx7bmFtZToiTWF0ZXJpYWwgRGVzaWduIFRoZW1lIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9tYXRlcmlhbC1kZXNpZ24tc3RvY2stdGhlbWUiLHByZXZpZXc6Imh0dHBzOi8vbmV3bWF0ZXJpYWwudHJ5ZGlzY291cnNlLmNvbSIsZGVzY3JpcHRpb246Ikluc3BpcmVkIGJ5IE1hdGVyaWFsIERlc2lnbiwgdGhpcyB0aGVtZSBjb21lcyB3aXRoIHNldmVyYWwgY29sb3IgcGFsZXR0ZXMgKGluY2wuIGEgZGFyayBvbmUpLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvbWF0ZXJpYWwtZGVzaWduLXN0b2NrLXRoZW1lLzQ3MTQyIn0se25hbWU6Ik1pbmltYSIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvbWluaW1hIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvbWluaW1hIixkZXNjcmlwdGlvbjoiQSBtaW5pbWFsIHRoZW1lIHdpdGggcmVkdWNlZCBVSSBlbGVtZW50cyBhbmQgZm9jdXMgb24gdGV4dC4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L21pbmltYS1hLW1pbmltYWwtdGhlbWUtZm9yLWRpc2NvdXJzZS8xMDgxNzgifSx7bmFtZToiU2FtJ3MgU2ltcGxlIFRoZW1lIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2Utc2ltcGxlLXRoZW1lIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9zYW0vc2ltcGxlIixkZXNjcmlwdGlvbjoiU2ltcGxpZmllZCBmcm9udCBwYWdlIGRlc2lnbiB3aXRoIGNsYXNzaWMgY29sb3JzIGFuZCB0eXBvZ3JhcGh5LiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3Qvc2Ftcy1wZXJzb25hbC1taW5pbWFsLXRvcGljLWxpc3QtZGVzaWduLzIzNTUyIn0se25hbWU6IlZpbmNlbnQiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS12aW5jZW50LXRoZW1lIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvdmluY2VudCIsZGVzY3JpcHRpb246IkFuIGVsZWdhbnQgZGFyayB0aGVtZSB3aXRoIGEgZmV3IGNvbG9yIHBhbGV0dGVzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZGlzY291cnNlLXZpbmNlbnQtdGhlbWUvNzY2NjIifSx7bmFtZToiQnJhbmQgSGVhZGVyIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2UtYnJhbmQtaGVhZGVyIixkZXNjcmlwdGlvbjoiQWRkIGFuIGV4dHJhIHRvcCBoZWFkZXIgd2l0aCB5b3VyIGxvZ28sIG5hdmlnYXRpb24gbGlua3MgYW5kIHNvY2lhbCBpY29ucy4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2JyYW5kLWhlYWRlci10aGVtZS1jb21wb25lbnQvNzc5NzciLGNvbXBvbmVudDohMH0se25hbWU6IkN1c3RvbSBIZWFkZXIgTGlua3MiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1jdXN0b20taGVhZGVyLWxpbmtzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9Kb2hhbmkvY3VzdG9tLWhlYWRlci1saW5rcyIsZGVzY3JpcHRpb246IkVhc2lseSBhZGQgY3VzdG9tIHRleHQtYmFzZWQgbGlua3MgdG8gdGhlIGhlYWRlci4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2N1c3RvbS1oZWFkZXItbGlua3MvOTA1ODgiLGNvbXBvbmVudDohMH0se25hbWU6IkNhdGVnb3J5IEJhbm5lcnMiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1jYXRlZ29yeS1iYW5uZXJzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvZGlzY291cnNlLWNhdGVnb3J5LWJhbm5lcnMiLGRlc2NyaXB0aW9uOiJTaG93IGJhbm5lcnMgb24gY2F0ZWdvcnkgcGFnZXMgdXNpbmcgeW91ciBleGlzdGluZyBjYXRlZ29yeSBkZXRhaWxzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZGlzY291cnNlLWNhdGVnb3J5LWJhbm5lcnMvODYyNDEiLGNvbXBvbmVudDohMH0se25hbWU6IkthbmJhbiBCb2FyZCIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZGlzY291cnNlLWthbmJhbi10aGVtZSIscHJldmlldzoiaHR0cHM6Ly90aGVtZS1jcmVhdG9yLmRpc2NvdXJzZS5vcmcvdGhlbWUvZGF2aWQva2FuYmFuIixkZXNjcmlwdGlvbjoiRGlzcGxheSBhbmQgb3JnYW5pemUgdG9waWNzIHVzaW5nIGEgS2FuYmFuIGJvYXJkIGludGVyZmFjZS4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2thbmJhbi1ib2FyZC10aGVtZS1jb21wb25lbnQvMTE4MTY0Iixjb21wb25lbnQ6ITB9LHtuYW1lOiJIYW1idXJnZXIgVGhlbWUgU2VsZWN0b3IiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1oYW1idXJnZXItdGhlbWUtc2VsZWN0b3IiLGRlc2NyaXB0aW9uOiJEaXNwbGF5cyBhIHRoZW1lIHNlbGVjdG9yIGluIHRoZSBoYW1idXJnZXIgbWVudSBwcm92aWRlZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHVzZXItc2VsZWN0YWJsZSB0aGVtZS4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2hhbWJ1cmdlci10aGVtZS1zZWxlY3Rvci82MTIxMCIsY29tcG9uZW50OiEwfSx7bmFtZToiSGVhZGVyIFN1Ym1lbnVzIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2UtaGVhZGVyLXN1Ym1lbnVzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9Kb2hhbmkvaGVhZGVyLXN1Ym1lbnVzIixkZXNjcmlwdGlvbjoiTGV0cyB5b3UgYnVpbGQgYSBoZWFkZXIgbWVudSB3aXRoIHN1Ym1lbnVzIChkcm9wZG93bnMpLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvaGVhZGVyLXN1Ym1lbnVzLzk0NTg0Iixjb21wb25lbnQ6ITB9LHtuYW1lOiJBbHRlcm5hdGl2ZSBMb2dvcyIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZGlzY291cnNlLWFsdC1sb2dvIixkZXNjcmlwdGlvbjoiQWRkIGFsdGVybmF0aXZlIGxvZ29zIGZvciBkYXJrIC8gbGlnaHQgdGhlbWVzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvYWx0ZXJuYXRpdmUtbG9nby1mb3ItZGFyay10aGVtZXMvODg1MDIiLGNvbXBvbmVudDohMH0se25hbWU6IkF1dG9tYXRpYyBUYWJsZSBvZiBDb250ZW50cyIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvRGlzY29UT0MiLGRlc2NyaXB0aW9uOiJHZW5lcmF0ZXMgYW4gaW50ZXJhY3RpdmUgdGFibGUgb2YgY29udGVudHMgb24gdGhlIHNpZGViYXIgb2YgeW91ciB0b3BpYyB3aXRoIGEgc2ltcGxlIGNsaWNrIGluIHRoZSBjb21wb3Nlci4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2Rpc2NvdG9jLWF1dG9tYXRpYy10YWJsZS1vZi1jb250ZW50cy8xMTExNDMiLGNvbXBvbmVudDohMH0se25hbWU6IkVhc3kgUmVzcG9uc2l2ZSBGb290ZXIiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL0Rpc2NvdXJzZS1lYXN5LWZvb3RlciIscHJldmlldzoiaHR0cHM6Ly90aGVtZS1jcmVhdG9yLmRpc2NvdXJzZS5vcmcvdGhlbWUvSm9oYW5pL2Vhc3ktZm9vdGVyIixkZXNjcmlwdGlvbjoiQWRkIGEgZnVsbHkgcmVzcG9uc2l2ZSBmb290ZXIgd2l0aG91dCB3cml0aW5nIGFueSBIVE1MLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZWFzeS1yZXNwb25zaXZlLWZvb3Rlci85NTgxOCIsY29tcG9uZW50OiEwfV19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2F0dHJpYnV0ZS1ob29rIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXJldHVybiBuZXcgbihlLHQpO3RoaXMubmFtZXNwYWNlPWUsdGhpcy52YWx1ZT10fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKGUsdCxuKXtuJiYiQXR0cmlidXRlSG9vayI9PT1uLnR5cGUmJm4udmFsdWU9PT10aGlzLnZhbHVlJiZuLm5hbWVzcGFjZT09PXRoaXMubmFtZXNwYWNlfHxlLnNldEF0dHJpYnV0ZU5TKHRoaXMubmFtZXNwYWNlLHQsdGhpcy52YWx1ZSl9LG4ucHJvdG90eXBlLnVuaG9vaz1mdW5jdGlvbihlLHQsbil7dmFyIGkscztuJiYiQXR0cmlidXRlSG9vayI9PT1uLnR5cGUmJm4ubmFtZXNwYWNlPT09dGhpcy5uYW1lc3BhY2V8fChzPS0xPChpPXQuaW5kZXhPZigiOiIpKT90LnN1YnN0cihpKzEpOnQsZS5yZW1vdmVBdHRyaWJ1dGVOUyh0aGlzLm5hbWVzcGFjZSxzKSl9LG4ucHJvdG90eXBlLnR5cGU9IkF0dHJpYnV0ZUhvb2siLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307ZT1bIkRlcHJlY2F0aW9uIG5vdGljZToiLGVdLHQuc2luY2UmJmUucHVzaCgiKGRlcHJlY2F0ZWQgc2luY2UgRGlzY291cnNlICIrdC5zaW5jZSsiKSIpO3QuZHJvcEZyb20mJmUucHVzaCgiKHJlbW92YWwgaW4gRGlzY291cnNlICIrdC5kcm9wRnJvbSsiKSIpO2lmKGU9ZS5qb2luKCIgIiksdC5yYWlzZUVycm9yKXRocm93IGU7Y29uc29sZS53YXJuKGUpfX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gRW1iZXIuZ2V0T3duZXI/RW1iZXIuZ2V0T3duZXIoZSl8fERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fOmUuY29udGFpbmVyfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldE93bmVyPXMsZS5nZXRSZWdpc3Rlcj1mdW5jdGlvbihlKXt2YXIgdD1zKGUpLG49e2xvb2t1cDpmdW5jdGlvbigpe3JldHVybiB0Lmxvb2t1cC5hcHBseSh0LGFyZ3VtZW50cyl9LGxvb2t1cEZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdC5mYWN0b3J5Rm9yP3QuZmFjdG9yeUZvci5hcHBseSh0LGFyZ3VtZW50cyk6dC5fbG9va3VwRmFjdG9yeT90Ll9sb29rdXBGYWN0b3J5LmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9LGRlcHJlY2F0ZUNvbnRhaW5lcjpmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY29udGFpbmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5kZWZhdWx0KSgiVXNlIGB0aGlzLnJlZ2lzdGVyYCBvciBgZ2V0T3duZXJgIGluc3RlYWQgb2YgYHRoaXMuY29udGFpbmVyYCIpLG59fSl9fTtyZXR1cm4gbn19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2dldC11cmwiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBlO249bnx8KCQoJ21ldGFbbmFtZT0iZGlzY291cnNlLWJhc2UtdXJpIl0nKS5hdHRyKCJjb250ZW50Iil8fCIiKTtpZigiLyIhPT1lJiYhL15cL1teXC9dLy50ZXN0KGUpKXJldHVybiBlO3ZhciB0PWUuaW5kZXhPZihuKTtpZigwPD10JiZ0PDMpcmV0dXJuIGU7Ii8iIT09ZVswXSYmKGU9Ii8iK2UpO3JldHVybiBuK2V9O3ZhciBuPXZvaWQgMH0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQvaGVscGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiXSxmdW5jdGlvbihlLHMsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFrZUFycmF5PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lP0FycmF5LmlzQXJyYXkoZSk/ZTpbZV06W119LGUuaHRtbEhlbHBlcj1mdW5jdGlvbihpKXtyZXR1cm4gbi5kZWZhdWx0LmhlbHBlcihmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQ9MTx0Lmxlbmd0aD90WzBdLmNvbmNhdCh7aGFzaDp0W3QubGVuZ3RoLTFdfSk6dCxuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGkuYXBwbHkodGhpcyx0KXx8IiIpfSl9LGUucmVnaXN0ZXJIZWxwZXI9ZnVuY3Rpb24oZSx0KXtpW2VdPW4uZGVmYXVsdC5oZWxwZXIodCl9LGUuZmluZEhlbHBlcj1mdW5jdGlvbihlKXtyZXR1cm4gaVtlXXx8aVtlLmRhc2hlcml6ZSgpXX0sZS5yZWdpc3RlckhlbHBlcnM9ZnVuY3Rpb24odCl7T2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihlKXt0LnJlZ2lzdGVyKCJoZWxwZXI6IitlLGlbZV0se3NpbmdsZXRvbjohMX0pfSl9LGUucmVnaXN0ZXJVbmJvdW5kPWZ1bmN0aW9uKGUscil7aVtlXT1uLmRlZmF1bHQuZXh0ZW5kKHtjb21wdXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuYXBwbHkodm9pZCAwLGZ1bmN0aW9uKGUpe3tpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9fShlKS5jb25jYXQoW3RdKSl9fSksdC5kZWZhdWx0LnJlZ2lzdGVySGVscGVyKGUsZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KGUpLG49MDtuPGU7bisrKXRbbl09YXJndW1lbnRzW25dO2Zvcih2YXIgaT10LnBvcCgpLHM9dCxvPTA7bzxzLmxlbmd0aDtvKyspIWkudHlwZXN8fCJJRCIhPT1pLnR5cGVzW29dJiYiUGF0aEV4cHJlc3Npb24iIT09aS50eXBlc1tvXXx8KHNbb109YSh0aGlzLHNbb10saSkpO3JldHVybiByLmNhbGwuYXBwbHkocixbdGhpc10uY29uY2F0KHMsW2Z1bmN0aW9uKG4saSl7dmFyIHM9e30sbz1pLmhhc2g7byYmKGkuaGFzaFR5cGVzP09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9aS5oYXNoVHlwZXNbZV07IlNUUklORyI9PT10fHwiU3RyaW5nTGl0ZXJhbCI9PT10fHwiU3ViRXhwcmVzc2lvbiI9PT10P3NbZV09b1tlXToiSUQiIT09dCYmIlBhdGhFeHByZXNzaW9uIiE9PXR8fChzW2VdPWEobixvW2VdLGkpKX0pOnM9byk7cmV0dXJuIHN9KHRoaXMsaSldKSl9KX07dmFyIGk9e307ZnVuY3Rpb24gYShlLHQsbil7aWYobi50eXBlcyYmbi5kYXRhLnZpZXcpe3ZhciBpPW4uZGF0YS52aWV3O3JldHVybiBpLmdldFN0cmVhbT9pLmdldFN0cmVhbSh0KS52YWx1ZSgpOmkuZ2V0QXR0cih0KX1yZXR1cm4oMCxzLmdldCkoZSx0KX19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsWyJleHBvcnRzIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9hdHRyaWJ1dGUtaG9vayIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLG8scixhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVwbGFjZUljb249ZnVuY3Rpb24oZSx0KXtjW2VdPXR9LGUucmVuZGVySWNvbj1uLGUuaWNvbkhUTUw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbigic3RyaW5nIixlLHQpfSxlLmljb25Ob2RlPXQsZS5jb252ZXJ0SWNvbkNsYXNzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoImZhciBmYS0iLCJmYXItIikucmVwbGFjZSgiZmFiIGZhLSIsImZhYi0iKS5yZXBsYWNlKCJmYXMgZmEtIiwiIikucmVwbGFjZSgiZmEtIiwiIikudHJpbSgpfSxlLnJlZ2lzdGVySWNvblJlbmRlcmVyPWk7dmFyIGw9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix1PVtdLGM9eyJkLXRyYWNraW5nIjoiYmVsbCIsImQtbXV0ZWQiOiJkaXNjb3Vyc2UtYmVsbC1zbGFzaCIsImQtcmVndWxhciI6ImZhci1iZWxsIiwiZC13YXRjaGluZyI6ImRpc2NvdXJzZS1iZWxsLWV4Y2xhbWF0aW9uIiwiZC13YXRjaGluZy1maXJzdCI6ImRpc2NvdXJzZS1iZWxsLW9uZSIsImQtZHJvcC1leHBhbmRlZCI6ImNhcmV0LWRvd24iLCJkLWRyb3AtY29sbGFwc2VkIjoiY2FyZXQtcmlnaHQiLCJkLXVubGlrZWQiOiJmYXItaGVhcnQiLCJkLWxpa2VkIjoiaGVhcnQiLCJub3RpZmljYXRpb24ubWVudGlvbmVkIjoiYXQiLCJub3RpZmljYXRpb24uZ3JvdXBfbWVudGlvbmVkIjoiYXQiLCJub3RpZmljYXRpb24ucXVvdGVkIjoicXVvdGUtcmlnaHQiLCJub3RpZmljYXRpb24ucmVwbGllZCI6InJlcGx5Iiwibm90aWZpY2F0aW9uLnBvc3RlZCI6InJlcGx5Iiwibm90aWZpY2F0aW9uLmVkaXRlZCI6InBlbmNpbC1hbHQiLCJub3RpZmljYXRpb24ubGlrZWQiOiJoZWFydCIsIm5vdGlmaWNhdGlvbi5saWtlZF8yIjoiaGVhcnQiLCJub3RpZmljYXRpb24ubGlrZWRfbWFueSI6ImhlYXJ0Iiwibm90aWZpY2F0aW9uLmxpa2VkX2NvbnNvbGlkYXRlZCI6ImhlYXJ0Iiwibm90aWZpY2F0aW9uLnByaXZhdGVfbWVzc2FnZSI6ImZhci1lbnZlbG9wZSIsIm5vdGlmaWNhdGlvbi5pbnZpdGVkX3RvX3ByaXZhdGVfbWVzc2FnZSI6ImZhci1lbnZlbG9wZSIsIm5vdGlmaWNhdGlvbi5pbnZpdGVkX3RvX3RvcGljIjoiaGFuZC1wb2ludC1yaWdodCIsIm5vdGlmaWNhdGlvbi5pbnZpdGVlX2FjY2VwdGVkIjoidXNlciIsIm5vdGlmaWNhdGlvbi5tb3ZlZF9wb3N0Ijoic2lnbi1vdXQtYWx0Iiwibm90aWZpY2F0aW9uLmxpbmtlZCI6ImxpbmsiLCJub3RpZmljYXRpb24uZ3JhbnRlZF9iYWRnZSI6ImNlcnRpZmljYXRlIiwibm90aWZpY2F0aW9uLnRvcGljX3JlbWluZGVyIjoiZmFyLWNsb2NrIiwibm90aWZpY2F0aW9uLndhdGNoaW5nX2ZpcnN0X3Bvc3QiOiJkaXNjb3Vyc2UtYmVsbC1vbmUiLCJub3RpZmljYXRpb24uZ3JvdXBfbWVzc2FnZV9zdW1tYXJ5IjoidXNlcnMiLCJub3RpZmljYXRpb24ucG9zdF9hcHByb3ZlZCI6ImNoZWNrIiwibm90aWZpY2F0aW9uLm1lbWJlcnNoaXBfcmVxdWVzdF9hY2NlcHRlZCI6InVzZXItcGx1cyIsIm5vdGlmaWNhdGlvbi5tZW1iZXJzaGlwX3JlcXVlc3RfY29uc29saWRhdGVkIjoidXNlcnMifSxkPXsiNTAwcHgiOiJmYWItNTAwcHgiLCJhZGRyZXNzLWJvb2stbyI6ImZhci1hZGRyZXNzLWJvb2siLCJhZGRyZXNzLWNhcmQtbyI6ImZhci1hZGRyZXNzLWNhcmQiLGFkbjoiZmFiLWFkbiIsYW1hem9uOiJmYWItYW1hem9uIixhbmRyb2lkOiJmYWItYW5kcm9pZCIsYW5nZWxsaXN0OiJmYWItYW5nZWxsaXN0IixhcHBsZToiZmFiLWFwcGxlIiwiYXJlYS1jaGFydCI6ImNoYXJ0LWFyZWEiLCJhcnJvdy1jaXJjbGUtby1kb3duIjoiZmFyLWFycm93LWFsdC1jaXJjbGUtZG93biIsImFycm93LWNpcmNsZS1vLWxlZnQiOiJmYXItYXJyb3ctYWx0LWNpcmNsZS1sZWZ0IiwiYXJyb3ctY2lyY2xlLW8tcmlnaHQiOiJmYXItYXJyb3ctYWx0LWNpcmNsZS1yaWdodCIsImFycm93LWNpcmNsZS1vLXVwIjoiZmFyLWFycm93LWFsdC1jaXJjbGUtdXAiLGFycm93czoiYXJyb3dzLWFsdCIsImFycm93cy1hbHQiOiJleHBhbmQtYXJyb3dzLWFsdCIsImFycm93cy1oIjoiYXJyb3dzLWFsdC1oIiwiYXJyb3dzLXYiOiJhcnJvd3MtYWx0LXYiLCJhc2wtaW50ZXJwcmV0aW5nIjoiYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmciLGF1dG9tb2JpbGU6ImNhciIsYmFuZGNhbXA6ImZhYi1iYW5kY2FtcCIsYmFuazoidW5pdmVyc2l0eSIsImJhci1jaGFydCI6ImZhci1jaGFydC1iYXIiLCJiYXItY2hhcnQtbyI6ImZhci1jaGFydC1iYXIiLGJhdGh0dWI6ImJhdGgiLGJhdHRlcnk6ImJhdHRlcnktZnVsbCIsImJhdHRlcnktMCI6ImJhdHRlcnktZW1wdHkiLCJiYXR0ZXJ5LTEiOiJiYXR0ZXJ5LXF1YXJ0ZXIiLCJiYXR0ZXJ5LTIiOiJiYXR0ZXJ5LWhhbGYiLCJiYXR0ZXJ5LTMiOiJiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzIiwiYmF0dGVyeS00IjoiYmF0dGVyeS1mdWxsIixiZWhhbmNlOiJmYWItYmVoYW5jZSIsImJlaGFuY2Utc3F1YXJlIjoiZmFiLWJlaGFuY2Utc3F1YXJlIiwiYmVsbC1vIjoiZmFyLWJlbGwiLCJiZWxsLXNsYXNoLW8iOiJmYXItYmVsbC1zbGFzaCIsYml0YnVja2V0OiJmYWItYml0YnVja2V0IiwiYml0YnVja2V0LXNxdWFyZSI6ImZhYi1iaXRidWNrZXQiLGJpdGNvaW46ImZhYi1idGMiLCJibGFjay10aWUiOiJmYWItYmxhY2stdGllIixibHVldG9vdGg6ImZhYi1ibHVldG9vdGgiLCJibHVldG9vdGgtYiI6ImZhYi1ibHVldG9vdGgtYiIsImJvb2ttYXJrLW8iOiJmYXItYm9va21hcmsiLGJ0YzoiZmFiLWJ0YyIsImJ1aWxkaW5nLW8iOiJmYXItYnVpbGRpbmciLGJ1eXNlbGxhZHM6ImZhYi1idXlzZWxsYWRzIixjYWI6InRheGkiLGNhbGVuZGFyOiJjYWxlbmRhci1hbHQiLCJjYWxlbmRhci1jaGVjay1vIjoiZmFyLWNhbGVuZGFyLWNoZWNrIiwiY2FsZW5kYXItbWludXMtbyI6ImZhci1jYWxlbmRhci1taW51cyIsImNhbGVuZGFyLW8iOiJmYXItY2FsZW5kYXIiLCJjYWxlbmRhci1wbHVzLW8iOiJmYXItY2FsZW5kYXItcGx1cyIsImNhbGVuZGFyLXRpbWVzLW8iOiJmYXItY2FsZW5kYXItdGltZXMiLCJjYXJldC1zcXVhcmUtby1kb3duIjoiZmFyLWNhcmV0LXNxdWFyZS1kb3duIiwiY2FyZXQtc3F1YXJlLW8tbGVmdCI6ImZhci1jYXJldC1zcXVhcmUtbGVmdCIsImNhcmV0LXNxdWFyZS1vLXJpZ2h0IjoiZmFyLWNhcmV0LXNxdWFyZS1yaWdodCIsImNhcmV0LXNxdWFyZS1vLXVwIjoiZmFyLWNhcmV0LXNxdWFyZS11cCIsY2M6ImZhci1jbG9zZWQtY2FwdGlvbmluZyIsImNjLWFtZXgiOiJmYWItY2MtYW1leCIsImNjLWRpbmVycy1jbHViIjoiZmFiLWNjLWRpbmVycy1jbHViIiwiY2MtZGlzY292ZXIiOiJmYWItY2MtZGlzY292ZXIiLCJjYy1qY2IiOiJmYWItY2MtamNiIiwiY2MtbWFzdGVyY2FyZCI6ImZhYi1jYy1tYXN0ZXJjYXJkIiwiY2MtcGF5cGFsIjoiZmFiLWNjLXBheXBhbCIsImNjLXN0cmlwZSI6ImZhYi1jYy1zdHJpcGUiLCJjYy12aXNhIjoiZmFiLWNjLXZpc2EiLGNoYWluOiJsaW5rIiwiY2hhaW4tYnJva2VuIjoidW5saW5rIiwiY2hlY2stY2lyY2xlLW8iOiJmYXItY2hlY2stY2lyY2xlIiwiY2hlY2stc3F1YXJlLW8iOiJmYXItY2hlY2stc3F1YXJlIixjaHJvbWU6ImZhYi1jaHJvbWUiLCJjaXJjbGUtbyI6ImZhci1jaXJjbGUiLCJjaXJjbGUtby1ub3RjaCI6ImNpcmNsZS1ub3RjaCIsImNpcmNsZS10aGluIjoiZmFyLWNpcmNsZSIsY2xpcGJvYXJkOiJmYXItY2xpcGJvYXJkIiwiY2xvY2stbyI6ImZhci1jbG9jayIsY2xvbmU6ImZhci1jbG9uZSIsY2xvc2U6InRpbWVzIiwiY2xvdWQtZG93bmxvYWQiOiJjbG91ZC1kb3dubG9hZC1hbHQiLCJjbG91ZC11cGxvYWQiOiJjbG91ZC11cGxvYWQtYWx0Iixjbnk6Inllbi1zaWduIiwiY29kZS1mb3JrIjoiY29kZS1icmFuY2giLGNvZGVwZW46ImZhYi1jb2RlcGVuIixjb2RpZXBpZToiZmFiLWNvZGllcGllIiwiY29tbWVudC1vIjoiZmFyLWNvbW1lbnQiLGNvbW1lbnRpbmc6ImZhci1jb21tZW50LWRvdHMiLCJjb21tZW50aW5nLW8iOiJmYXItY29tbWVudC1kb3RzIiwiY29tbWVudHMtbyI6ImZhci1jb21tZW50cyIsY29tcGFzczoiZmFyLWNvbXBhc3MiLGNvbm5lY3RkZXZlbG9wOiJmYWItY29ubmVjdGRldmVsb3AiLGNvbnRhbzoiZmFiLWNvbnRhbyIsY29weXJpZ2h0OiJmYXItY29weXJpZ2h0IiwiY3JlYXRpdmUtY29tbW9ucyI6ImZhYi1jcmVhdGl2ZS1jb21tb25zIiwiY3JlZGl0LWNhcmQiOiJmYXItY3JlZGl0LWNhcmQiLCJjcmVkaXQtY2FyZC1hbHQiOiJjcmVkaXQtY2FyZCIsY3NzMzoiZmFiLWNzczMiLGN1dGxlcnk6InV0ZW5zaWxzIixkYXNoYm9hcmQ6InRhY2hvbWV0ZXItYWx0IixkYXNoY3ViZToiZmFiLWRhc2hjdWJlIixkZWFmbmVzczoiZGVhZiIsZGVkZW50OiJvdXRkZW50IixkZWxpY2lvdXM6ImZhYi1kZWxpY2lvdXMiLGRldmlhbnRhcnQ6ImZhYi1kZXZpYW50YXJ0IixkaWFtb25kOiJmYXItZ2VtIixkaWdnOiJmYWItZGlnZyIsZGlzY29yZDoiZmFiLWRpc2NvcmQiLGRvbGxhcjoiZG9sbGFyLXNpZ24iLCJkb3QtY2lyY2xlLW8iOiJmYXItZG90LWNpcmNsZSIsZHJpYmJibGU6ImZhYi1kcmliYmJsZSIsImRyaXZlcnMtbGljZW5zZSI6ImlkLWNhcmQiLCJkcml2ZXJzLWxpY2Vuc2UtbyI6ImZhci1pZC1jYXJkIixkcm9wYm94OiJmYWItZHJvcGJveCIsZHJ1cGFsOiJmYWItZHJ1cGFsIixlZGdlOiJmYWItZWRnZSIsZWVyY2FzdDoiZmFiLXNlbGxjYXN0IixlbXBpcmU6ImZhYi1lbXBpcmUiLCJlbnZlbG9wZS1vIjoiZmFyLWVudmVsb3BlIiwiZW52ZWxvcGUtb3Blbi1vIjoiZmFyLWVudmVsb3BlLW9wZW4iLGVudmlyYToiZmFiLWVudmlyYSIsZXRzeToiZmFiLWV0c3kiLGV1cjoiZXVyby1zaWduIixldXJvOiJldXJvLXNpZ24iLGV4Y2hhbmdlOiJleGNoYW5nZS1hbHQiLGV4cGVkaXRlZHNzbDoiZmFiLWV4cGVkaXRlZHNzbCIsImV4dGVybmFsLWxpbmsiOiJleHRlcm5hbC1saW5rLWFsdCIsImV4dGVybmFsLWxpbmstc3F1YXJlIjoiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0IixleWU6ImZhci1leWUiLCJleWUtc2xhc2giOiJmYXItZXllLXNsYXNoIixleWVkcm9wcGVyOiJleWUtZHJvcHBlciIsZmE6ImZhYi1mb250LWF3ZXNvbWUiLGZhY2Vib29rOiJmYWItZmFjZWJvb2stZiIsImZhY2Vib29rLWYiOiJmYWItZmFjZWJvb2stZiIsImZhY2Vib29rLW9mZmljaWFsIjoiZmFiLWZhY2Vib29rIiwiZmFjZWJvb2stc3F1YXJlIjoiZmFiLWZhY2Vib29rLXNxdWFyZSIsZmVlZDoicnNzIiwiZmlsZS1hcmNoaXZlLW8iOiJmYXItZmlsZS1hcmNoaXZlIiwiZmlsZS1hdWRpby1vIjoiZmFyLWZpbGUtYXVkaW8iLCJmaWxlLWNvZGUtbyI6ImZhci1maWxlLWNvZGUiLCJmaWxlLWV4Y2VsLW8iOiJmYXItZmlsZS1leGNlbCIsImZpbGUtaW1hZ2UtbyI6ImZhci1maWxlLWltYWdlIiwiZmlsZS1tb3ZpZS1vIjoiZmFyLWZpbGUtdmlkZW8iLCJmaWxlLW8iOiJmYXItZmlsZSIsImZpbGUtcGRmLW8iOiJmYXItZmlsZS1wZGYiLCJmaWxlLXBob3RvLW8iOiJmYXItZmlsZS1pbWFnZSIsImZpbGUtcGljdHVyZS1vIjoiZmFyLWZpbGUtaW1hZ2UiLCJmaWxlLXBvd2VycG9pbnQtbyI6ImZhci1maWxlLXBvd2VycG9pbnQiLCJmaWxlLXNvdW5kLW8iOiJmYXItZmlsZS1hdWRpbyIsImZpbGUtdGV4dCI6ImZpbGUtYWx0IiwiZmlsZS10ZXh0LW8iOiJmYXItZmlsZS1hbHQiLCJmaWxlLXZpZGVvLW8iOiJmYXItZmlsZS12aWRlbyIsImZpbGUtd29yZC1vIjoiZmFyLWZpbGUtd29yZCIsImZpbGUtemlwLW8iOiJmYXItZmlsZS1hcmNoaXZlIiwiZmlsZXMtbyI6ImZhci1jb3B5IixmaXJlZm94OiJmYWItZmlyZWZveCIsImZpcnN0LW9yZGVyIjoiZmFiLWZpcnN0LW9yZGVyIiwiZmxhZy1vIjoiZmFyLWZsYWciLGZsYXNoOiJib2x0IixmbGlja3I6ImZhYi1mbGlja3IiLCJmbG9wcHktbyI6ImZhci1zYXZlIiwiZm9sZGVyLW8iOiJmYXItZm9sZGVyIiwiZm9sZGVyLW9wZW4tbyI6ImZhci1mb2xkZXItb3BlbiIsImZvbnQtYXdlc29tZSI6ImZhYi1mb250LWF3ZXNvbWUiLGZvbnRpY29uczoiZmFiLWZvbnRpY29ucyIsImZvcnQtYXdlc29tZSI6ImZhYi1mb3J0LWF3ZXNvbWUiLGZvcnVtYmVlOiJmYWItZm9ydW1iZWUiLGZvdXJzcXVhcmU6ImZhYi1mb3Vyc3F1YXJlIiwiZnJlZS1jb2RlLWNhbXAiOiJmYWItZnJlZS1jb2RlLWNhbXAiLCJmcm93bi1vIjoiZmFyLWZyb3duIiwiZnV0Ym9sLW8iOiJmYXItZnV0Ym9sIixnYnA6InBvdW5kLXNpZ24iLGdlOiJmYWItZW1waXJlIixnZWFyOiJjb2ciLGdlYXJzOiJjb2dzIiwiZ2V0LXBvY2tldCI6ImZhYi1nZXQtcG9ja2V0IixnZzoiZmFiLWdnIiwiZ2ctY2lyY2xlIjoiZmFiLWdnLWNpcmNsZSIsZ2l0OiJmYWItZ2l0IiwiZ2l0LXNxdWFyZSI6ImZhYi1naXQtc3F1YXJlIixnaXRodWI6ImZhYi1naXRodWIiLCJnaXRodWItYWx0IjoiZmFiLWdpdGh1Yi1hbHQiLCJnaXRodWItc3F1YXJlIjoiZmFiLWdpdGh1Yi1zcXVhcmUiLGdpdGxhYjoiZmFiLWdpdGxhYiIsZ2l0dGlwOiJmYWItZ3JhdGlwYXkiLGdsYXNzOiJnbGFzcy1tYXJ0aW5pIixnbGlkZToiZmFiLWdsaWRlIiwiZ2xpZGUtZyI6ImZhYi1nbGlkZS1nIixnb29nbGU6ImZhYi1nb29nbGUiLCJnb29nbGUtcGx1cyI6ImZhYi1nb29nbGUtcGx1cy1nIiwiZ29vZ2xlLXBsdXMtY2lyY2xlIjoiZmFiLWdvb2dsZS1wbHVzIiwiZ29vZ2xlLXBsdXMtb2ZmaWNpYWwiOiJmYWItZ29vZ2xlLXBsdXMiLCJnb29nbGUtcGx1cy1zcXVhcmUiOiJmYWItZ29vZ2xlLXBsdXMtc3F1YXJlIiwiZ29vZ2xlLXdhbGxldCI6ImZhYi1nb29nbGUtd2FsbGV0IixncmF0aXBheToiZmFiLWdyYXRpcGF5IixncmF2OiJmYWItZ3JhdiIsZ3JvdXA6InVzZXJzIiwiaGFja2VyLW5ld3MiOiJmYWItaGFja2VyLW5ld3MiLCJoYW5kLWdyYWItbyI6ImZhci1oYW5kLXJvY2siLCJoYW5kLWxpemFyZC1vIjoiZmFyLWhhbmQtbGl6YXJkIiwiaGFuZC1vLWRvd24iOiJmYXItaGFuZC1wb2ludC1kb3duIiwiaGFuZC1vLWxlZnQiOiJmYXItaGFuZC1wb2ludC1sZWZ0IiwiaGFuZC1vLXJpZ2h0IjoiZmFyLWhhbmQtcG9pbnQtcmlnaHQiLCJoYW5kLW8tdXAiOiJmYXItaGFuZC1wb2ludC11cCIsImhhbmQtcGFwZXItbyI6ImZhci1oYW5kLXBhcGVyIiwiaGFuZC1wZWFjZS1vIjoiZmFyLWhhbmQtcGVhY2UiLCJoYW5kLXBvaW50ZXItbyI6ImZhci1oYW5kLXBvaW50ZXIiLCJoYW5kLXJvY2stbyI6ImZhci1oYW5kLXJvY2siLCJoYW5kLXNjaXNzb3JzLW8iOiJmYXItaGFuZC1zY2lzc29ycyIsImhhbmQtc3BvY2stbyI6ImZhci1oYW5kLXNwb2NrIiwiaGFuZC1zdG9wLW8iOiJmYXItaGFuZC1wYXBlciIsImhhbmRzaGFrZS1vIjoiZmFyLWhhbmRzaGFrZSIsImhhcmQtb2YtaGVhcmluZyI6ImRlYWYiLCJoZGQtbyI6ImZhci1oZGQiLGhlYWRlcjoiaGVhZGluZyIsImhlYXJ0LW8iOiJmYXItaGVhcnQiLCJob3NwaXRhbC1vIjoiZmFyLWhvc3BpdGFsIixob3RlbDoiYmVkIiwiaG91cmdsYXNzLTEiOiJob3VyZ2xhc3Mtc3RhcnQiLCJob3VyZ2xhc3MtMiI6ImhvdXJnbGFzcy1oYWxmIiwiaG91cmdsYXNzLTMiOiJob3VyZ2xhc3MtZW5kIiwiaG91cmdsYXNzLW8iOiJmYXItaG91cmdsYXNzIixob3V6ejoiZmFiLWhvdXp6IixodG1sNToiZmFiLWh0bWw1IiwiaWQtY2FyZC1vIjoiZmFyLWlkLWNhcmQiLGlsczoic2hla2VsLXNpZ24iLGltYWdlOiJmYXItaW1hZ2UiLGltZGI6ImZhYi1pbWRiIixpbnI6InJ1cGVlLXNpZ24iLGluc3RhZ3JhbToiZmFiLWluc3RhZ3JhbSIsaW5zdGl0dXRpb246InVuaXZlcnNpdHkiLCJpbnRlcm5ldC1leHBsb3JlciI6ImZhYi1pbnRlcm5ldC1leHBsb3JlciIsaW50ZXJzZXg6InRyYW5zZ2VuZGVyIixpb3hob3N0OiJmYWItaW94aG9zdCIsam9vbWxhOiJmYWItam9vbWxhIixqcHk6Inllbi1zaWduIixqc2ZpZGRsZToiZmFiLWpzZmlkZGxlIiwia2V5Ym9hcmQtbyI6ImZhci1rZXlib2FyZCIsa3J3OiJ3b24tc2lnbiIsbGFzdGZtOiJmYWItbGFzdGZtIiwibGFzdGZtLXNxdWFyZSI6ImZhYi1sYXN0Zm0tc3F1YXJlIixsZWFucHViOiJmYWItbGVhbnB1YiIsbGVnYWw6ImdhdmVsIiwibGVtb24tbyI6ImZhci1sZW1vbiIsImxldmVsLWRvd24iOiJsZXZlbC1kb3duLWFsdCIsImxldmVsLXVwIjoibGV2ZWwtdXAtYWx0IiwibGlmZS1ib3V5IjoiZmFyLWxpZmUtcmluZyIsImxpZmUtYnVveSI6ImZhci1saWZlLXJpbmciLCJsaWZlLXJpbmciOiJmYXItbGlmZS1yaW5nIiwibGlmZS1zYXZlciI6ImZhci1saWZlLXJpbmciLCJsaWdodGJ1bGItbyI6ImZhci1saWdodGJ1bGIiLCJsaW5lLWNoYXJ0IjoiY2hhcnQtbGluZSIsbGlua2VkaW46ImZhYi1saW5rZWRpbi1pbiIsImxpbmtlZGluLXNxdWFyZSI6ImZhYi1saW5rZWRpbiIsbGlub2RlOiJmYWItbGlub2RlIixsaW51eDoiZmFiLWxpbnV4IiwibGlzdC1hbHQiOiJmYXItbGlzdC1hbHQiLCJsb25nLWFycm93LWRvd24iOiJsb25nLWFycm93LWFsdC1kb3duIiwibG9uZy1hcnJvdy1sZWZ0IjoibG9uZy1hcnJvdy1hbHQtbGVmdCIsImxvbmctYXJyb3ctcmlnaHQiOiJsb25nLWFycm93LWFsdC1yaWdodCIsImxvbmctYXJyb3ctdXAiOiJsb25nLWFycm93LWFsdC11cCIsIm1haWwtZm9yd2FyZCI6InNoYXJlIiwibWFpbC1yZXBseSI6InJlcGx5IiwibWFpbC1yZXBseS1hbGwiOiJyZXBseS1hbGwiLCJtYXAtbWFya2VyIjoibWFwLW1hcmtlci1hbHQiLCJtYXAtbyI6ImZhci1tYXAiLG1heGNkbjoiZmFiLW1heGNkbiIsbWVhbnBhdGg6ImZhYi1mb250LWF3ZXNvbWUiLG1lZGl1bToiZmFiLW1lZGl1bSIsbWVldHVwOiJmYWItbWVldHVwIiwibWVoLW8iOiJmYXItbWVoIiwibWludXMtc3F1YXJlLW8iOiJmYXItbWludXMtc3F1YXJlIixtaXhjbG91ZDoiZmFiLW1peGNsb3VkIixtb2JpbGU6Im1vYmlsZS1hbHQiLCJtb2JpbGUtcGhvbmUiOiJtb2JpbGUtYWx0Iixtb2R4OiJmYWItbW9keCIsbW9uZXk6ImZhci1tb25leS1iaWxsLWFsdCIsIm1vb24tbyI6ImZhci1tb29uIiwibW9ydGFyLWJvYXJkIjoiZ3JhZHVhdGlvbi1jYXAiLG5hdmljb246ImJhcnMiLCJuZXdzcGFwZXItbyI6ImZhci1uZXdzcGFwZXIiLCJvYmplY3QtZ3JvdXAiOiJmYXItb2JqZWN0LWdyb3VwIiwib2JqZWN0LXVuZ3JvdXAiOiJmYXItb2JqZWN0LXVuZ3JvdXAiLG9kbm9rbGFzc25pa2k6ImZhYi1vZG5va2xhc3NuaWtpIiwib2Rub2tsYXNzbmlraS1zcXVhcmUiOiJmYWItb2Rub2tsYXNzbmlraS1zcXVhcmUiLG9wZW5jYXJ0OiJmYWItb3BlbmNhcnQiLG9wZW5pZDoiZmFiLW9wZW5pZCIsb3BlcmE6ImZhYi1vcGVyYSIsIm9wdGluLW1vbnN0ZXIiOiJmYWItb3B0aW4tbW9uc3RlciIscGFnZWxpbmVzOiJmYWItcGFnZWxpbmVzIiwicGFwZXItcGxhbmUtbyI6ImZhci1wYXBlci1wbGFuZSIscGFzdGU6ImZhci1jbGlwYm9hcmQiLHBhdHJlb246ImZhYi1wYXRyZW9uIiwicGF1c2UtY2lyY2xlLW8iOiJmYXItcGF1c2UtY2lyY2xlIixwYXlwYWw6ImZhYi1wYXlwYWwiLHBlbmNpbDoicGVuY2lsLWFsdCIsInBlbmNpbC1zcXVhcmUiOiJwZW4tc3F1YXJlIiwicGVuY2lsLXNxdWFyZS1vIjoiZmFyLWVkaXQiLHBob3RvOiJmYXItaW1hZ2UiLCJwaWN0dXJlLW8iOiJmYXItaW1hZ2UiLCJwaWUtY2hhcnQiOiJjaGFydC1waWUiLCJwaWVkLXBpcGVyIjoiZmFiLXBpZWQtcGlwZXIiLCJwaWVkLXBpcGVyLWFsdCI6ImZhYi1waWVkLXBpcGVyLWFsdCIsInBpZWQtcGlwZXItcHAiOiJmYWItcGllZC1waXBlci1wcCIscGludGVyZXN0OiJmYWItcGludGVyZXN0IiwicGludGVyZXN0LXAiOiJmYWItcGludGVyZXN0LXAiLCJwaW50ZXJlc3Qtc3F1YXJlIjoiZmFiLXBpbnRlcmVzdC1zcXVhcmUiLCJwbGF5LWNpcmNsZS1vIjoiZmFyLXBsYXktY2lyY2xlIiwicGx1cy1zcXVhcmUtbyI6ImZhci1wbHVzLXNxdWFyZSIsInByb2R1Y3QtaHVudCI6ImZhYi1wcm9kdWN0LWh1bnQiLHFxOiJmYWItcXEiLCJxdWVzdGlvbi1jaXJjbGUtbyI6ImZhci1xdWVzdGlvbi1jaXJjbGUiLHF1b3JhOiJmYWItcXVvcmEiLHJhOiJmYWItcmViZWwiLHJhdmVscnk6ImZhYi1yYXZlbHJ5IixyZWJlbDoiZmFiLXJlYmVsIixyZWRkaXQ6ImZhYi1yZWRkaXQiLCJyZWRkaXQtYWxpZW4iOiJmYWItcmVkZGl0LWFsaWVuIiwicmVkZGl0LXNxdWFyZSI6ImZhYi1yZWRkaXQtc3F1YXJlIixyZWZyZXNoOiJzeW5jIixyZWdpc3RlcmVkOiJmYXItcmVnaXN0ZXJlZCIscmVtb3ZlOiJ0aW1lcyIscmVucmVuOiJmYWItcmVucmVuIixyZW9yZGVyOiJiYXJzIixyZXBlYXQ6InJlZG8iLHJlc2lzdGFuY2U6ImZhYi1yZWJlbCIscm1iOiJ5ZW4tc2lnbiIsInJvdGF0ZS1sZWZ0IjoidW5kbyIsInJvdGF0ZS1yaWdodCI6InJlZG8iLHJvdWJsZToicnVibGUtc2lnbiIscnViOiJydWJsZS1zaWduIixydWJsZToicnVibGUtc2lnbiIscnVwZWU6InJ1cGVlLXNpZ24iLHMxNToiYmF0aCIsc2FmYXJpOiJmYWItc2FmYXJpIixzY2lzc29yczoiY3V0IixzY3JpYmQ6ImZhYi1zY3JpYmQiLHNlbGxzeToiZmFiLXNlbGxzeSIsc2VuZDoicGFwZXItcGxhbmUiLCJzZW5kLW8iOiJmYXItcGFwZXItcGxhbmUiLCJzaGFyZS1zcXVhcmUtbyI6ImZhci1zaGFyZS1zcXVhcmUiLHNoZWtlbDoic2hla2VsLXNpZ24iLHNoZXFlbDoic2hla2VsLXNpZ24iLHNoaWVsZDoic2hpZWxkLWFsdCIsc2hpcnRzaW5idWxrOiJmYWItc2hpcnRzaW5idWxrIiwic2lnbi1pbiI6InNpZ24taW4tYWx0Iiwic2lnbi1vdXQiOiJzaWduLW91dC1hbHQiLHNpZ25pbmc6InNpZ24tbGFuZ3VhZ2UiLHNpbXBseWJ1aWx0OiJmYWItc2ltcGx5YnVpbHQiLHNreWF0bGFzOiJmYWItc2t5YXRsYXMiLHNreXBlOiJmYWItc2t5cGUiLHNsYWNrOiJmYWItc2xhY2siLHNsaWRlcnM6InNsaWRlcnMtaCIsc2xpZGVzaGFyZToiZmFiLXNsaWRlc2hhcmUiLCJzbWlsZS1vIjoiZmFyLXNtaWxlIixzbmFwY2hhdDoiZmFiLXNuYXBjaGF0Iiwic25hcGNoYXQtZ2hvc3QiOiJmYWItc25hcGNoYXQtZ2hvc3QiLCJzbmFwY2hhdC1zcXVhcmUiOiJmYWItc25hcGNoYXQtc3F1YXJlIiwic25vd2ZsYWtlLW8iOiJmYXItc25vd2ZsYWtlIiwic29jY2VyLWJhbGwtbyI6ImZhci1mdXRib2wiLCJzb3J0LWFscGhhLWFzYyI6InNvcnQtYWxwaGEtZG93biIsInNvcnQtYWxwaGEtZGVzYyI6InNvcnQtYWxwaGEtdXAiLCJzb3J0LWFtb3VudC1hc2MiOiJzb3J0LWFtb3VudC1kb3duIiwic29ydC1hbW91bnQtZGVzYyI6InNvcnQtYW1vdW50LXVwIiwic29ydC1hc2MiOiJzb3J0LXVwIiwic29ydC1kZXNjIjoic29ydC1kb3duIiwic29ydC1udW1lcmljLWFzYyI6InNvcnQtbnVtZXJpYy1kb3duIiwic29ydC1udW1lcmljLWRlc2MiOiJzb3J0LW51bWVyaWMtdXAiLHNvdW5kY2xvdWQ6ImZhYi1zb3VuZGNsb3VkIixzcG9vbjoidXRlbnNpbC1zcG9vbiIsc3BvdGlmeToiZmFiLXNwb3RpZnkiLCJzcXVhcmUtbyI6ImZhci1zcXVhcmUiLCJzdGFjay1leGNoYW5nZSI6ImZhYi1zdGFjay1leGNoYW5nZSIsInN0YWNrLW92ZXJmbG93IjoiZmFiLXN0YWNrLW92ZXJmbG93Iiwic3Rhci1oYWxmLWVtcHR5IjoiZmFyLXN0YXItaGFsZiIsInN0YXItaGFsZi1mdWxsIjoiZmFyLXN0YXItaGFsZiIsInN0YXItaGFsZi1vIjoiZmFyLXN0YXItaGFsZiIsInN0YXItbyI6ImZhci1zdGFyIixzdGVhbToiZmFiLXN0ZWFtIiwic3RlYW0tc3F1YXJlIjoiZmFiLXN0ZWFtLXNxdWFyZSIsInN0aWNreS1ub3RlLW8iOiJmYXItc3RpY2t5LW5vdGUiLCJzdG9wLWNpcmNsZS1vIjoiZmFyLXN0b3AtY2lyY2xlIixzdHVtYmxldXBvbjoiZmFiLXN0dW1ibGV1cG9uIiwic3R1bWJsZXVwb24tY2lyY2xlIjoiZmFiLXN0dW1ibGV1cG9uLWNpcmNsZSIsInN1bi1vIjoiZmFyLXN1biIsc3VwZXJwb3dlcnM6ImZhYi1zdXBlcnBvd2VycyIsc3VwcG9ydDoiZmFyLWxpZmUtcmluZyIsdGFibGV0OiJ0YWJsZXQtYWx0Iix0YWNob21ldGVyOiJ0YWNob21ldGVyLWFsdCIsdGVsZWdyYW06ImZhYi10ZWxlZ3JhbSIsdGVsZXZpc2lvbjoidHYiLCJ0ZW5jZW50LXdlaWJvIjoiZmFiLXRlbmNlbnQtd2VpYm8iLHRoZW1laXNsZToiZmFiLXRoZW1laXNsZSIsdGhlcm1vbWV0ZXI6InRoZXJtb21ldGVyLWZ1bGwiLCJ0aGVybW9tZXRlci0wIjoidGhlcm1vbWV0ZXItZW1wdHkiLCJ0aGVybW9tZXRlci0xIjoidGhlcm1vbWV0ZXItcXVhcnRlciIsInRoZXJtb21ldGVyLTIiOiJ0aGVybW9tZXRlci1oYWxmIiwidGhlcm1vbWV0ZXItMyI6InRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIiwidGhlcm1vbWV0ZXItNCI6InRoZXJtb21ldGVyLWZ1bGwiLCJ0aHVtYi10YWNrIjoidGh1bWJ0YWNrIiwidGh1bWJzLW8tZG93biI6ImZhci10aHVtYnMtZG93biIsInRodW1icy1vLXVwIjoiZmFyLXRodW1icy11cCIsdGlja2V0OiJ0aWNrZXQtYWx0IiwidGltZXMtY2lyY2xlLW8iOiJmYXItdGltZXMtY2lyY2xlIiwidGltZXMtcmVjdGFuZ2xlIjoid2luZG93LWNsb3NlIiwidGltZXMtcmVjdGFuZ2xlLW8iOiJmYXItd2luZG93LWNsb3NlIiwidG9nZ2xlLWRvd24iOiJmYXItY2FyZXQtc3F1YXJlLWRvd24iLCJ0b2dnbGUtbGVmdCI6ImZhci1jYXJldC1zcXVhcmUtbGVmdCIsInRvZ2dsZS1yaWdodCI6ImZhci1jYXJldC1zcXVhcmUtcmlnaHQiLCJ0b2dnbGUtdXAiOiJmYXItY2FyZXQtc3F1YXJlLXVwIix0cmFzaDoidHJhc2gtYWx0IiwidHJhc2gtbyI6ImZhci10cmFzaC1hbHQiLHRyZWxsbzoiZmFiLXRyZWxsbyIsdHJpcGFkdmlzb3I6ImZhYi10cmlwYWR2aXNvciIsdHJ5OiJsaXJhLXNpZ24iLHR1bWJscjoiZmFiLXR1bWJsciIsInR1bWJsci1zcXVhcmUiOiJmYWItdHVtYmxyLXNxdWFyZSIsInR1cmtpc2gtbGlyYSI6ImxpcmEtc2lnbiIsdHdpdGNoOiJmYWItdHdpdGNoIix0d2l0dGVyOiJmYWItdHdpdHRlciIsInR3aXR0ZXItc3F1YXJlIjoiZmFiLXR3aXR0ZXItc3F1YXJlIix1bnNvcnRlZDoic29ydCIsdXNiOiJmYWItdXNiIix1c2Q6ImRvbGxhci1zaWduIiwidXNlci1jaXJjbGUtbyI6ImZhci11c2VyLWNpcmNsZSIsInVzZXItbyI6ImZhci11c2VyIix2Y2FyZDoiYWRkcmVzcy1jYXJkIiwidmNhcmQtbyI6ImZhci1hZGRyZXNzLWNhcmQiLHZpYWNvaW46ImZhYi12aWFjb2luIix2aWFkZW86ImZhYi12aWFkZW8iLCJ2aWFkZW8tc3F1YXJlIjoiZmFiLXZpYWRlby1zcXVhcmUiLCJ2aWRlby1jYW1lcmEiOiJ2aWRlbyIsdmltZW86ImZhYi12aW1lby12IiwidmltZW8tc3F1YXJlIjoiZmFiLXZpbWVvLXNxdWFyZSIsdmluZToiZmFiLXZpbmUiLHZrOiJmYWItdmsiLHZrb250YWt0ZToiZmFiLXZrIiwidm9sdW1lLWNvbnRyb2wtcGhvbmUiOiJwaG9uZS12b2x1bWUiLHdhcm5pbmc6ImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIix3ZWNoYXQ6ImZhYi13ZWl4aW4iLHdlaWJvOiJmYWItd2VpYm8iLHdlaXhpbjoiZmFiLXdlaXhpbiIsd2hhdHNhcHA6ImZhYi13aGF0c2FwcCIsIndoZWVsY2hhaXItYWx0IjoiZmFiLWFjY2Vzc2libGUtaWNvbiIsIndpa2lwZWRpYS13IjoiZmFiLXdpa2lwZWRpYS13Iiwid2luZG93LWNsb3NlLW8iOiJmYXItd2luZG93LWNsb3NlIiwid2luZG93LW1heGltaXplIjoiZmFyLXdpbmRvdy1tYXhpbWl6ZSIsIndpbmRvdy1yZXN0b3JlIjoiZmFyLXdpbmRvdy1yZXN0b3JlIix3aW5kb3dzOiJmYWItd2luZG93cyIsd29uOiJ3b24tc2lnbiIsd29yZHByZXNzOiJmYWItd29yZHByZXNzIix3cGJlZ2lubmVyOiJmYWItd3BiZWdpbm5lciIsd3BleHBsb3JlcjoiZmFiLXdwZXhwbG9yZXIiLHdwZm9ybXM6ImZhYi13cGZvcm1zIix4aW5nOiJmYWIteGluZyIsInhpbmctc3F1YXJlIjoiZmFiLXhpbmctc3F1YXJlIiwieS1jb21iaW5hdG9yIjoiZmFiLXktY29tYmluYXRvciIsInktY29tYmluYXRvci1zcXVhcmUiOiJmYWItaGFja2VyLW5ld3MiLHlhaG9vOiJmYWIteWFob28iLHljOiJmYWIteS1jb21iaW5hdG9yIiwieWMtc3F1YXJlIjoiZmFiLWhhY2tlci1uZXdzIix5ZWxwOiJmYWIteWVscCIseWVuOiJ5ZW4tc2lnbiIseW9hc3Q6ImZhYi15b2FzdCIseW91dHViZToiZmFiLXlvdXR1YmUiLCJ5b3V0dWJlLXBsYXkiOiJmYWIteW91dHViZSIsInlvdXR1YmUtc3F1YXJlIjoiZmFiLXlvdXR1YmUtc3F1YXJlIn07ZnVuY3Rpb24gbihlLHQsbil7Zm9yKHZhciBpPTA7aTx1Lmxlbmd0aDtpKyspe3ZhciBzPXVbaV1bZV07aWYocyl7dmFyIG89cyh7aWQ6dCxyZXBsYWNlbWVudElkOmNbdF19LG58fHt9KTtpZihvKXJldHVybiBvfX19ZnVuY3Rpb24gdChlLHQpe3JldHVybiBuKCJub2RlIixlLHQpfWZ1bmN0aW9uIGkoZSl7dS51bnNoaWZ0KGUpfWZ1bmN0aW9uIHAoZSx0KXt2YXIgbj0iZmEgZC1pY29uIGQtaWNvbi0iKyhlLnJlcGxhY2VtZW50SWQmJi0xPGUuaWQuaW5kZXhPZigibm90aWZpY2F0aW9uLiIpP2UucmVwbGFjZW1lbnRJZDplLmlkKSsiIHN2Zy1pY29uIjtyZXR1cm4gdCYmdC5jbGFzcyYmKG4rPSIgIit0LmNsYXNzKSxufSJ1bmRlZmluZWQiIT10eXBlb2YgRGlzY291cnNlJiYoRGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGU9dCk7dmFyIG09W107ZnVuY3Rpb24gZihlKXt2YXIgdCxuLGkscyxvPWUucmVwbGFjZW1lbnRJZHx8ZS5pZHx8IiI7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkobykmJihuPWRbdD1vXSwoMCxhLmRlZmF1bHQpKCdQbGVhc2UgcmVwbGFjZSBhbGwgb2NjdXJyZW5jZXMgb2YgIicrdCsnIiIgd2l0aCAiJytuKyciLiBGb250QXdlc29tZSA0LjcgaWNvbiBuYW1lcyBhcmUgbm93IGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLicpLERpc2NvdXJzZS50ZXN0aW5nfHxtLmluY2x1ZGVzKHQpfHwoaT17bWVzc2FnZTonRkEgaWNvbiBkZXByZWNhdGlvbjogcmVwbGFjZSAiJyt0KyciIiB3aXRoICInK24rJyIuJyxzdGFja3RyYWNlOkVycm9yKCkuc3RhY2t9LEVtYmVyLiQuYWpheChEaXNjb3Vyc2UuQmFzZVVyaSsiL2xvZ3MvcmVwb3J0X2pzX2Vycm9yIix7ZGF0YTppLHR5cGU6IlBPU1QiLGNhY2hlOiExfSksbS5wdXNoKHQpKSxvPWRbb10pLG89by5yZXBsYWNlKCIgdW5waW5uZWQiLCIiKSxzPW8sInVuZGVmaW5lZCIhPXR5cGVvZiBEaXNjb3Vyc2UmJiJkZXZlbG9wbWVudCI9PT1EaXNjb3Vyc2UuRW52aXJvbm1lbnQmJiFEaXNjb3Vyc2UuZGlzYWJsZU1pc3NpbmdJY29uV2FybmluZyYmRGlzY291cnNlLlN2Z0ljb25MaXN0JiYtMT09PURpc2NvdXJzZS5TdmdJY29uTGlzdC5pbmRleE9mKHMpJiZjb25zb2xlLndhcm4oJ1RoZSBpY29uICInK3MrJyIgaXMgbWlzc2luZyBmcm9tIHRoZSBTVkcgc3Vic2V0LicpLG99aSh7bmFtZToiZm9udC1hd2Vzb21lIixzdHJpbmc6ZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGUpLGk9IjxzdmcgY2xhc3M9JyIrcChlLHQpKyIgc3ZnLXN0cmluZyciO3JldHVybiB0LmxhYmVsJiYoaSs9IiBhcmlhLWhpZGRlbj0ndHJ1ZSciKSxpKz0nIHhtbG5zPSInK2wrJyI+PHVzZSB4bGluazpocmVmPSIjJytuKyciIC8+PC9zdmc+Jyx0LmxhYmVsJiYoaSs9IjxzcGFuIGNsYXNzPSdzci1vbmx5Jz4iK3QubGFiZWwrIjwvc3Bhbj4iKSx0LnRpdGxlJiYoaT0nPHNwYW4gY2xhc3M9InN2Zy1pY29uLXRpdGxlIiB0aXRsZT1cJycrSTE4bi50KHQudGl0bGUpLnJlcGxhY2UoLycvZywiJiMzOTsiKSsiJz4iK2krIjwvc3Bhbj4iKSx0LnRyYW5zbGF0ZWR0aXRsZSYmKGk9JzxzcGFuIGNsYXNzPSJzdmctaWNvbi10aXRsZSIgdGl0bGU9XCcnK3QudHJhbnNsYXRlZHRpdGxlLnJlcGxhY2UoLycvZywiJiMzOTsiKSsiJz4iK2krIjwvc3Bhbj4iKSxpfSxub2RlOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZihlKSxpPXAoZSx0KSsiIHN2Zy1ub2RlIixzPSgwLG8uaCkoInN2ZyIse2F0dHJpYnV0ZXM6e2NsYXNzOmksImFyaWEtaGlkZGVuIjohMH0sbmFtZXNwYWNlOmx9LFsoMCxvLmgpKCJ1c2UiLHsieGxpbms6aHJlZiI6KDAsci5kZWZhdWx0KSgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsIiMiK24pLG5hbWVzcGFjZTpsfSldKTtyZXR1cm4gdC50aXRsZT8oMCxvLmgpKCJzcGFuIix7dGl0bGU6dC50aXRsZSxhdHRyaWJ1dGVzOntjbGFzczoic3ZnLWljb24tdGl0bGUifX0sW3NdKTpzfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycy1oZWxwZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVnaXN0ZXJSYXdIZWxwZXJzPWZ1bmN0aW9uKGksZSl7aS5oZWxwZXJzfHwoaS5oZWxwZXJzPU9iamVjdC5jcmVhdGUoZS5oZWxwZXJzKSk7ZnVuY3Rpb24gdChlKXt2YXIgbj1pLmhlbHBlcnNbZV07aS5oZWxwZXJzW2VdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uYXBwbHkodGhpcyxbaS5oZWxwZXJzLmdldChlLHQpLHRdKX19aS5oZWxwZXJzLmdldD1mdW5jdGlvbihlLHQpe2lmKGUmJnQuY29udGV4dHMpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gZTt2YXIgbj10LmNvbnRleHRzWzBdLGk9bltlXTtyZXR1cm4gMD09PWUudG9TdHJpbmcoKS5pbmRleE9mKCJjb250cm9sbGVyLiIpJiYoZT1lLnNsaWNlKGUuaW5kZXhPZigiLiIpKzEpKSx2b2lkIDA9PT1pPygwLGwuZ2V0KShuLGUpOml9fSxpLnJlZ2lzdGVySGVscGVyKCJlYWNoIixmdW5jdGlvbihlLHQsbixpKXtmb3IodmFyIHM9KDAsbC5nZXQpKHRoaXMsbiksbz1bXSxyPU9iamVjdC5jcmVhdGUodGhpcyksYT0wO2E8cy5sZW5ndGg7YSsrKXJbZV09c1thXSxvLnB1c2goaS5mbihyKSk7cmV0dXJuIG8uam9pbigiIil9KTt2YXIgbj1pLmhlbHBlcnMuaWY7aS5oZWxwZXJzLnVubGVzcz1mdW5jdGlvbihlLHQpe3JldHVybiBuLmFwcGx5KHRoaXMsW2kuaGVscGVycy5nZXQoZSx0KSx7Zm46dC5pbnZlcnNlLGludmVyc2U6dC5mbixoYXNoOnQuaGFzaH1dKX0sdCgiaWYiKSx0KCJ3aXRoIil9fSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRlbXBsYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHIudGVtcGxhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLnByZWNvbXBpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gci5wcmVjb21waWxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZS5jb21waWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGlsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciByPUhhbmRsZWJhcnMuY3JlYXRlKCk7ZnVuY3Rpb24gbihlLHQpe3ZhciBuPXt0eXBlOiJQYXRoRXhwcmVzc2lvbiIsZGF0YTohMSxkZXB0aDplLnBhdGguZGVwdGgsbG9jOmUucGF0aC5sb2N9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZV09dFtlXX0pLG59ZnVuY3Rpb24gYShlKXt2YXIgdD1uZXcgSGFuZGxlYmFycy5WaXNpdG9yO3QubXV0YXRpbmc9ITAsdC5NdXN0YWNoZVN0YXRlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJhbXMubGVuZ3RofHxlLmhhc2h8fChlLnBhcmFtc1swXT1lLnBhdGgsZS5wYXRoPW4oZSx7cGFydHM6WyJnZXQiXSxvcmlnaW5hbDoiZ2V0IixzdHJpY3Q6ITAsZmFsc3k6ITB9KSksSGFuZGxlYmFycy5WaXNpdG9yLnByb3RvdHlwZS5NdXN0YWNoZVN0YXRlbWVudC5jYWxsKHRoaXMsZSl9LHQuQmxvY2tTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImVhY2giPT09ZS5wYXRoLm9yaWdpbmFsJiYxPT09ZS5wYXJhbXMubGVuZ3RoJiYodD1lLnByb2dyYW0uYmxvY2tQYXJhbXNbMF0sZS5wYXJhbXM9W24oZSx7b3JpZ2luYWw6dH0pLHt0eXBlOiJDb21tZW50U3RhdGVtZW50Iix2YWx1ZToiaW4ifSxlLnBhcmFtc1swXV0sZGVsZXRlIGUucHJvZ3JhbS5ibG9ja1BhcmFtcyksSGFuZGxlYmFycy5WaXNpdG9yLnByb3RvdHlwZS5CbG9ja1N0YXRlbWVudC5jYWxsKHRoaXMsZSl9LHQuYWNjZXB0KGUpfUhhbmRsZWJhcnMuQ29tcGlsZXImJihyLkNvbXBpbGVyPWZ1bmN0aW9uKCl7fSxyLkNvbXBpbGVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhhbmRsZWJhcnMuQ29tcGlsZXIucHJvdG90eXBlKSxyLkNvbXBpbGVyLnByb3RvdHlwZS5jb21waWxlcj1yLkNvbXBpbGVyLHIuSmF2YVNjcmlwdENvbXBpbGVyPWZ1bmN0aW9uKCl7fSxyLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShIYW5kbGViYXJzLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGUpLHIuSmF2YVNjcmlwdENvbXBpbGVyLnByb3RvdHlwZS5jb21waWxlcj1yLkphdmFTY3JpcHRDb21waWxlcixyLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGUubmFtZXNwYWNlPSJSYXdIYW5kbGViYXJzIixyLnByZWNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj1IYW5kbGViYXJzLnBhcnNlKGUpO2Eobik7dmFyIGk9e2tub3duSGVscGVyczp7Z2V0OiEwfSxkYXRhOiEwLHN0cmluZ1BhcmFtczohMH07dD12b2lkIDA9PT10fHx0O3ZhciBzPShuZXcgci5Db21waWxlcikuY29tcGlsZShuLGkpO3JldHVybihuZXcgci5KYXZhU2NyaXB0Q29tcGlsZXIpLmNvbXBpbGUocyxpLHZvaWQgMCx0KX0sci5jb21waWxlPWZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMucGFyc2UoZSk7YSh0KTt2YXIgbj17ZGF0YTohMCxzdHJpbmdQYXJhbXM6ITB9LGk9KG5ldyByLkNvbXBpbGVyKS5jb21waWxlKHQsbikscz0obmV3IHIuSmF2YVNjcmlwdENvbXBpbGVyKS5jb21waWxlKGksbix2b2lkIDAsITApLG89ci50ZW1wbGF0ZShzKTtyZXR1cm4gby5pc01ldGhvZD0hMSxvfSksZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbWl4aW5zL2ZvY3VzLWV2ZW50IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuY3JlYXRlKHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9vbkNoYW5nZUhhbmRsZXI9KDAsdC5iaW5kKSh0aGlzLHRoaXMuX29uQ2hhbmdlKSxEaXNjb3Vyc2Uuc2V0KCJoYXNGb2N1cyIsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX29uQ2hhbmdlSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVzdW1lIix0aGlzLl9vbkNoYW5nZUhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZyZWV6ZSIsdGhpcy5fb25DaGFuZ2VIYW5kbGVyKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5fb25DaGFuZ2VIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXN1bWUiLHRoaXMuX29uQ2hhbmdlSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZnJlZXplIix0aGlzLl9vbkNoYW5nZUhhbmRsZXIpLHRoaXMuX29uQ2hhbmdlSGFuZGxlcj1udWxsfSxfb25DaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT0oMCxuLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpOyJoaWRkZW4iPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP0Rpc2NvdXJzZS5oYXNGb2N1cyYmKERpc2NvdXJzZS5zZXQoImhhc0ZvY3VzIiwhMSksZS50cmlnZ2VyKCJkaXNjb3Vyc2U6Zm9jdXMtY2hhbmdlZCIsITEpKTpEaXNjb3Vyc2UuaGFzRm9jdXN8fChEaXNjb3Vyc2Uuc2V0KCJoYXNGb2N1cyIsITApLGUudHJpZ2dlcigiZGlzY291cnNlOmZvY3VzLWNoYW5nZWQiLCEwKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHQscyxvLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXRSZXNvbHZlck9wdGlvbj1mdW5jdGlvbihlLHQpe25bZV09dH0sZS5nZXRSZXNvbHZlck9wdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gbltlXX0sZS5idWlsZFJlc29sdmVyPWZ1bmN0aW9uKHIpe3JldHVybiBFbWJlci5EZWZhdWx0UmVzb2x2ZXIuZXh0ZW5kKHtwYXJzZU5hbWU6aSxyZXNvbHZlUm91dGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXIrIi9yb3V0ZXIiO3JldHVybiByZXF1aXJlanMuZW50cmllc1t0XT9yZXF1aXJlanModCxudWxsLG51bGwsITApLmRlZmF1bHQ6dGhpcy5fc3VwZXIoZSl9LG5vcm1hbGl6ZTpmdW5jdGlvbihlKXtpZigiYXBwLWV2ZW50czptYWluIj09PWUpcmV0dXJuKDAsby5kZWZhdWx0KSgiYGFwcC1ldmVudHM6bWFpbmAgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBgc2VydmljZTphcHAtZXZlbnRzYCIse3NpbmNlOiIyLjQuMCJ9KSwic2VydmljZTphcHAtZXZlbnRzIjt2YXIgdD1lLnNwbGl0KCI6Iik7aWYoMTx0Lmxlbmd0aCl7dmFyIG49cisiLyIrdFswXSsicy8iLGk9ImFkbWluLyIrdFswXSsicy8iO3RbMV09dFsxXS5yZXBsYWNlKCIudGVtcGxhdGVzIiwiIikucmVwbGFjZSgiL3RlbXBsYXRlcyIsIiIpO3ZhciBzPSgwLGEuZGFzaGVyaXplKSh0WzFdLnJlcGxhY2UoL1wuL2csIi8iKSk7aWYocmVxdWlyZWpzLmVudHJpZXNbbitzXXx8cmVxdWlyZWpzLmVudHJpZXNbaStzXSlyZXR1cm4gdFswXSsiOiIrcztpZihzPSgwLGEuZGFzaGVyaXplKSh0WzFdLnJlcGxhY2UoL1wuL2csIi0iKSkscmVxdWlyZWpzLmVudHJpZXNbbitzXXx8cmVxdWlyZWpzLmVudHJpZXNbaStzXSlyZXR1cm4gdFswXSsiOiIrc31yZXR1cm4gdGhpcy5fc3VwZXIoZSl9LGN1c3RvbVJlc29sdmU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnR5cGUrInMvIitlLmZ1bGxOYW1lV2l0aG91dFR5cGUsaT0oMCxhLmRhc2hlcml6ZSkobikscz1PYmplY3Qua2V5cyhyZXF1aXJlanMuZW50cmllcykuZmluZChmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuaW5kZXhPZihuLGUubGVuZ3RoLW4ubGVuZ3RoKXx8LTEhPT1lLmluZGV4T2YoaSxlLmxlbmd0aC1pLmxlbmd0aCl9KTtyZXR1cm4gcyYmKHQ9cmVxdWlyZWpzKHMsbnVsbCxudWxsLCEwKSkmJnQuZGVmYXVsdCYmKHQ9dC5kZWZhdWx0KSx0fSxyZXNvbHZlV2lkZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlQWRhcHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZU1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlVmlldzpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZUhlbHBlcjpmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmZpbmRIZWxwZXIpKGUuZnVsbE5hbWVXaXRob3V0VHlwZSl8fHRoaXMuY3VzdG9tUmVzb2x2ZShlKXx8dGhpcy5fc3VwZXIoZSl9LHJlc29sdmVDb250cm9sbGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlQ29tcG9uZW50OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlU2VydmljZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZVJvdXRlOmZ1bmN0aW9uKGUpe3JldHVybiJiYXNpYyI9PT1lLmZ1bGxOYW1lV2l0aG91dFR5cGU/cmVxdWlyZWpzKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsbnVsbCxudWxsLCEwKS5kZWZhdWx0OnRoaXMuY3VzdG9tUmVzb2x2ZShlKXx8dGhpcy5fc3VwZXIoZSl9LGZpbmRMb2FkaW5nVGVtcGxhdGU6ZnVuY3Rpb24oZSl7aWYoZS5mdWxsTmFtZVdpdGhvdXRUeXBlLm1hdGNoKC9sb2FkaW5nJC8pKXJldHVybiBFbWJlci5URU1QTEFURVMubG9hZGluZ30sZmluZENvbm5lY3RvclRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5yZXBsYWNlKCJjb21wb25lbnRzLyIsIiIpO2lmKDA9PT10LmluZGV4T2YoImNvbm5lY3RvcnMiKSlyZXR1cm4gRW1iZXIuVEVNUExBVEVTWyJqYXZhc2NyaXB0cy8iK3RdfSxyZXNvbHZlVGVtcGxhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmluZFBsdWdpbk1vYmlsZVRlbXBsYXRlKGUpfHx0aGlzLmZpbmRQbHVnaW5UZW1wbGF0ZShlKXx8dGhpcy5maW5kTW9iaWxlVGVtcGxhdGUoZSl8fHRoaXMuZmluZFRlbXBsYXRlKGUpfHx0aGlzLmZpbmRMb2FkaW5nVGVtcGxhdGUoZSl8fHRoaXMuZmluZENvbm5lY3RvclRlbXBsYXRlKGUpfHxFbWJlci5URU1QTEFURVMubm90X2ZvdW5kfSxmaW5kUGx1Z2luVGVtcGxhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wYXJzZU5hbWUoZS5mdWxsTmFtZS5yZXBsYWNlKCJ0ZW1wbGF0ZToiLCJ0ZW1wbGF0ZTpqYXZhc2NyaXB0cy8iKSk7cmV0dXJuIHRoaXMuZmluZFRlbXBsYXRlKHQpfSxmaW5kUGx1Z2luTW9iaWxlVGVtcGxhdGU6ZnVuY3Rpb24oZSl7aWYobi5tb2JpbGVWaWV3KXt2YXIgdD10aGlzLnBhcnNlTmFtZShlLmZ1bGxOYW1lLnJlcGxhY2UoInRlbXBsYXRlOiIsInRlbXBsYXRlOmphdmFzY3JpcHRzL21vYmlsZS8iKSk7cmV0dXJuIHRoaXMuZmluZFRlbXBsYXRlKHQpfX0sZmluZE1vYmlsZVRlbXBsYXRlOmZ1bmN0aW9uKGUpe2lmKG4ubW9iaWxlVmlldyl7dmFyIHQ9dGhpcy5wYXJzZU5hbWUoZS5mdWxsTmFtZS5yZXBsYWNlKCJ0ZW1wbGF0ZToiLCJ0ZW1wbGF0ZTptb2JpbGUvIikpO3JldHVybiB0aGlzLmZpbmRUZW1wbGF0ZSh0KX19LGZpbmRUZW1wbGF0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmZ1bGxOYW1lV2l0aG91dFR5cGUsbj10LnJlcGxhY2UoL1wuL2csIi8iKSxpPXQuZGVjYW1lbGl6ZSgpLHM9aS5yZXBsYWNlKC9cLi9nLCItIikucmVwbGFjZSgvXF8vZywiLSIpLG89RW1iZXIuVEVNUExBVEVTO3JldHVybiB0aGlzLl9zdXBlcihlKXx8b1tuXXx8b1t0XXx8b1t0LnJlcGxhY2UoL1wucmF3JC8sIiIpXXx8b1tzXXx8b1tpLnJlcGxhY2UoL1wuLywiLyIpXXx8b1tpLnJlcGxhY2UoL1xfLywiLyIpXXx8b1tyKyIvdGVtcGxhdGVzLyIrdF18fHRoaXMuZmluZEFkbWluVGVtcGxhdGUoZSl8fHRoaXMuZmluZFVuZGVyc2NvcmVkVGVtcGxhdGUoZSl9LGZpbmRVbmRlcnNjb3JlZFRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5kZWNhbWVsaXplKCkucmVwbGFjZSgvXC0vZywiXyIpO3JldHVybiBFbWJlci5URU1QTEFURVNbdF19LGZpbmRBZG1pblRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5kZWNhbWVsaXplKCk7aWYoMD09PXQuaW5kZXhPZigiY29tcG9uZW50cyIpKXt2YXIgbj0iYWRtaW4vdGVtcGxhdGVzLyIrdCxpPUVtYmVyLlRFTVBMQVRFU1siamF2YXNjcmlwdHMvIituXXx8RW1iZXIuVEVNUExBVEVTW25dO2lmKGkpcmV0dXJuIGl9aWYoImphdmFzY3JpcHRzL2FkbWluIj09PXQpcmV0dXJuIEVtYmVyLlRFTVBMQVRFU1siYWRtaW4vdGVtcGxhdGVzL2FkbWluIl07aWYoMD09PXQuaW5kZXhPZigiYWRtaW4iKXx8MD09PXQuaW5kZXhPZigiamF2YXNjcmlwdHMvYWRtaW4iKSl7dmFyIHM9KHQ9KHQ9KHQ9dC5yZXBsYWNlKC9eYWRtaW5cXy8sImFkbWluL3RlbXBsYXRlcy8iKSkucmVwbGFjZSgvXmFkbWluXC4vLCJhZG1pbi90ZW1wbGF0ZXMvIikpLnJlcGxhY2UoL1wuL2csIl8iKSkucmVwbGFjZSgvXy9nLCItIik7cmV0dXJuIEVtYmVyLlRFTVBMQVRFU1t0XXx8RW1iZXIuVEVNUExBVEVTW3NdfHxFbWJlci5URU1QTEFURVNbcy5yZXBsYWNlKCJhZG1pbi0iLCJhZG1pbi8iKV19fX0pfTt2YXIgbj17fTtmdW5jdGlvbiBpKGUpe3ZhciB0PWUuc3BsaXQoIjoiKSxuPXRbMF0saT10WzFdO3JldHVybntmdWxsTmFtZTplLHR5cGU6bixmdWxsTmFtZVdpdGhvdXRUeXBlOmksbmFtZTppLHJvb3Q6KDAscy5nZXQpKHRoaXMsIm5hbWVzcGFjZSIpLHJlc29sdmVNZXRob2ROYW1lOiJyZXNvbHZlIisoMCxhLmNsYXNzaWZ5KShuKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLFsiZXhwb3J0cyIsImVtYmVyLWFkZG9ucy91dGlscy9oYW5kbGUtZGVzY3JpcHRvciIsImVtYmVyLWFkZG9ucy91dGlscy9pcy1kZXNjcmlwdG9yIiwiZW1iZXItYWRkb25zL3V0aWxzL2V4dHJhY3QtdmFsdWUiLCJAZW1iZXIvcnVubG9vcCIsImVtYmVyLWFkZG9ucy9kZWNvcmF0b3ItYWxpYXMiLCJlbWJlci1hZGRvbnMvbWFjcm8tYWxpYXMiXSxmdW5jdGlvbihlLGkscyxvLHIsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudW5pcT1lLnVuaW9uPWUuc3VtPWUuc29ydD1lLnNldERpZmY9ZS5yZWFkcz1lLm9yPWUub25lV2F5PWUubm90RW1wdHk9ZS5ub3Q9ZS5ub25lPWUubWluPWUubWF4PWUubWF0Y2g9ZS5tYXBCeT1lLm1hcD1lLmx0ZT1lLmx0PWUuZ3RlPWUuZ3Q9ZS5maWx0ZXJCeT1lLmZpbHRlcj1lLmVxdWFsPWUuZW1wdHk9ZS5jb2xsZWN0PWUuYm9vbD1lLmFuZD1lLmFsaWFzPWUub2JzZXJ2ZXM9ZS5vbj12b2lkIDAsZS5kZWZhdWx0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oMCxzLmRlZmF1bHQpKHRbdC5sZW5ndGgtMV0pP2kuZGVmYXVsdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKTpmdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHQuYXBwbHkodm9pZCAwLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykuY29uY2F0KFt0XSkpfX0sZS5hZnRlclJlbmRlcj1mdW5jdGlvbihlLHQsbil7dmFyIGk9bi52YWx1ZTtuLnZhbHVlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50czsoMCxyLm5leHQpKGZ1bmN0aW9uKCl7KDAsci5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2lmKGUuZWxlbWVudCYmIWUuaXNEZXN0cm95aW5nJiYhZS5pc0Rlc3Ryb3llZClyZXR1cm4gaS5hcHBseShlLHQpfSl9KX19LGUucmVhZE9ubHk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybnt3cml0YWJsZTohMSxlbnVtZXJhYmxlOm4uZW51bWVyYWJsZSxjb25maWd1cmFibGU6bi5jb25maWd1cmFibGUsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmRlZmF1bHQpKG4pLnJlYWRPbmx5KCl9fX07ZS5vbj0oMCx0LmRlZmF1bHQpKEVtYmVyLm9uLCJDYW4gbm90IGBvbmAgd2l0aG91dCBldmVudCBuYW1lcyIpLGUub2JzZXJ2ZXM9KDAsdC5kZWZhdWx0KShFbWJlci5vYnNlcnZlciwiQ2FuIG5vdCBgb2JzZXJ2ZWAgd2l0aG91dCBwcm9wZXJ0eSBuYW1lcyIpLGUuYWxpYXM9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5hbGlhcyksZS5hbmQ9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5hbmQpLGUuYm9vbD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmJvb2wpLGUuY29sbGVjdD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmNvbGxlY3QpLGUuZW1wdHk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5lbXB0eSksZS5lcXVhbD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmVxdWFsKSxlLmZpbHRlcj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmZpbHRlciksZS5maWx0ZXJCeT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmZpbHRlckJ5KSxlLmd0PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQuZ3QpLGUuZ3RlPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQuZ3RlKSxlLmx0PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubHQpLGUubHRlPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubHRlKSxlLm1hcD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1hcCksZS5tYXBCeT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1hcEJ5KSxlLm1hdGNoPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubWF0Y2gpLGUubWF4PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubWF4KSxlLm1pbj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1pbiksZS5ub25lPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubm9uZSksZS5ub3Q9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5ub3QpLGUubm90RW1wdHk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5ub3RFbXB0eSksZS5vbmVXYXk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5vbmVXYXkpLGUub3I9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5vciksZS5yZWFkcz0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnJlYWRzKSxlLnNldERpZmY9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5zZXREaWZmKSxlLnNvcnQ9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5zb3J0KSxlLnN1bT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnN1bSksZS51bmlvbj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnVuaW9uKSxlLnVuaXE9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC51bmlxKX0pLGRlZmluZSgiZW1iZXItYWRkb25zL2RlY29yYXRvci1hbGlhcyIsWyJleHBvcnRzIiwiLi91dGlscy9leHRyYWN0LXZhbHVlIl0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihzLG4pe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoZSksdD0wO3Q8ZTt0KyspaVt0XT1hcmd1bWVudHNbdF07aWYoMD09PWkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybntlbnVtZXJhYmxlOm4uZW51bWVyYWJsZSxjb25maWd1cmFibGU6bi5jb25maWd1cmFibGUsd3JpdGFibGU6bi53cml0YWJsZSxpbml0aWFsaXplcjpmdW5jdGlvbigpe3ZhciBlPSgwLG8uZGVmYXVsdCkobik7cmV0dXJuIHMuYXBwbHkobnVsbCxpLmNvbmNhdChlKSl9fX19fX0pLGRlZmluZSgiZW1iZXItYWRkb25zL21hY3JvLWFsaWFzIixbImV4cG9ydHMiLCIuL3V0aWxzL2lzLWRlc2NyaXB0b3IiXSxmdW5jdGlvbihlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUsdCxuLGkpe3ZhciBzPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTpbXTtyZXR1cm57ZW51bWVyYWJsZTpuLmVudW1lcmFibGUsY29uZmlndXJhYmxlOm4uY29uZmlndXJhYmxlLHdyaXRhYmxlOm4ud3JpdGFibGUsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5hcHBseSh2b2lkIDAsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfShzKSl9fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoZSksdD0wO3Q8ZTt0KyspaVt0XT1hcmd1bWVudHNbdF07cmV0dXJuKDAsbi5kZWZhdWx0KShpW2kubGVuZ3RoLTFdKT9vLmFwcGx5KHZvaWQgMCxpLmNvbmNhdChbc10pKTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8oZSx0LG4scyxpKX19fX0pLGRlZmluZSgiZW1iZXItYWRkb25zL2ZtdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10O2lmKCFfLmlzQXJyYXkobil8fDI8YXJndW1lbnRzLmxlbmd0aCl7bj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtmb3IodmFyIGk9MSxzPWFyZ3VtZW50cy5sZW5ndGg7aTxzO2krKyluW2ktMV09YXJndW1lbnRzW2ldfXZhciBvPTA7cmV0dXJuIGUucmVwbGFjZSgvJUAoWzAtOV0rKT8vZyxmdW5jdGlvbihlLHQpe3JldHVybiB0PXQ/cGFyc2VJbnQodCwxMCktMTpvKyssInN0cmluZyI9PXR5cGVvZihlPW5bdF0pP2U6bnVsbD09PWU/IihudWxsKSI6dm9pZCAwPT09ZT8iIjoiIitlfSl9fSksdm9pZCAwPT09UmVnRXhwLnByb3RvdHlwZS5mbGFncyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCkubWF0Y2goL1tnaW1zdXldKiQvKVswXX19KSxTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0fHwoU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydD1mdW5jdGlvbihlLHQpe3JldHVybiBlPj49MCx0PVN0cmluZyh2b2lkIDAhPT10P3Q6IiAiKSx0aGlzLmxlbmd0aD49ZT9TdHJpbmcodGhpcyk6KChlLT10aGlzLmxlbmd0aCk+dC5sZW5ndGgmJih0Kz10LnJlcGVhdChlL3QubGVuZ3RoKSksdC5zbGljZSgwLGUpK1N0cmluZyh0aGlzKSl9KSxTdHJpbmcucHJvdG90eXBlLnBhZEVuZHx8KFN0cmluZy5wcm90b3R5cGUucGFkRW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj0wLHQ9U3RyaW5nKHZvaWQgMCE9PXQ/dDoiICIpLHRoaXMubGVuZ3RoPmU/U3RyaW5nKHRoaXMpOigoZS09dGhpcy5sZW5ndGgpPnQubGVuZ3RoJiYodCs9dC5yZXBlYXQoZS90Lmxlbmd0aCkpLFN0cmluZyh0aGlzKSt0LnNsaWNlKDAsZSkpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvYWRtaW4tZ3JvdXAtc2VsZWN0b3IiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiYWRtaW4tZ3JvdXAtc2VsZWN0b3IiXSxjbGFzc05hbWVzOlsiYWRtaW4tZ3JvdXAtc2VsZWN0b3IiXSxzZWxlY3RLaXRPcHRpb25zOnthbGxvd0FueTohMX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3JpZXMtYWRtaW4tZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImNhdGVnb3JpZXMtYWRtaW4tZHJvcGRvd24iXSxjbGFzc05hbWVzOlsiY2F0ZWdvcmllcy1hZG1pbi1kcm9wZG93biJdLGZpeGVkQ2F0ZW9yeVBvc2l0aW9uczooMCxpLnNldHRpbmcpKCJmaXhlZF9jYXRlZ29yeV9wb3NpdGlvbnMiKSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJiYXJzIixzaG93RnVsbFRpdGxlOiExLGF1dG9GaWx0ZXJhYmxlOiExLGZpbHRlcmFibGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT1be2lkOiJjcmVhdGUiLG5hbWU6STE4bi50KCJjYXRlZ29yeS5jcmVhdGUiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNhdGVnb3J5LmNyZWF0ZV9sb25nIiksaWNvbjoicGx1cyJ9XTtyZXR1cm4gdGhpcy5maXhlZENhdGVvcnlQb3NpdGlvbnMmJmUucHVzaCh7aWQ6InJlb3JkZXIiLG5hbWU6STE4bi50KCJjYXRlZ29yaWVzLnJlb3JkZXIudGl0bGUiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNhdGVnb3JpZXMucmVvcmRlci50aXRsZV9sb25nIiksaWNvbjoicmFuZG9tIn0pLGV9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktY2hvb3NlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCIsImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLHIsaSxzLG8sYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjYXRlZ29yeS1jaG9vc2VyIl0sY2xhc3NOYW1lczpbImNhdGVnb3J5LWNob29zZXIiXSxhbGxvd1VuY2F0ZWdvcml6ZWRUb3BpY3M6KDAsYS5zZXR0aW5nKSgiYWxsb3dfdW5jYXRlZ29yaXplZF90b3BpY3MiKSxmaXhlZENhdGVnb3J5UG9zaXRpb25zT25DcmVhdGU6KDAsYS5zZXR0aW5nKSgiZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zX29uX2NyZWF0ZSIpLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsYWxsb3dVbmNhdGVnb3JpemVkOiExLGFsbG93U3ViQ2F0ZWdvcmllczohMCxwZXJtaXNzaW9uVHlwZTpuLmRlZmF1bHQuRlVMTCxleGNsdWRlQ2F0ZWdvcnlJZDpudWxsLHNjb3BlZENhdGVnb3J5SWQ6bnVsbH0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuImNhdGVnb3J5LXJvdyJ9LG1vZGlmeU5vU2VsZWN0aW9uOmZ1bmN0aW9uKCl7aWYoKDAsby5pc05vbmUpKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZSkpcmV0dXJuIHRoaXMuYWxsb3dVbmNhdGVnb3JpemVkVG9waWNzfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZD9yLmRlZmF1bHQuZmluZFVuY2F0ZWdvcml6ZWQoKTp0aGlzLmRlZmF1bHRJdGVtKG51bGwsSTE4bi50KCJjYXRlZ29yeS5jaG9vc2UiKS5odG1sU2FmZSgpKTt2YXIgZT0ic3RyaW5nIj09dHlwZW9mIHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZTtyZXR1cm4gdGhpcy5kZWZhdWx0SXRlbShudWxsLEkxOG4udChlP3RoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZToiY2F0ZWdvcnkubm9uZSIpLmh0bWxTYWZlKCkpfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lmhhc1NlbGVjdGlvbiYmKHQ9ci5kZWZhdWx0LmZpbmRCeUlkKHRoaXMudmFsdWUpLCgwLHMuc2V0KShlLCJsYWJlbCIsKDAsaS5jYXRlZ29yeUJhZGdlSFRNTCkodCx7bGluazohMSxoaWRlUGFyZW50OiEhdC5wYXJlbnRfY2F0ZWdvcnlfaWQsYWxsb3dVbmNhdGVnb3JpemVkOiEwLHJlY3Vyc2l2ZTohMH0pLmh0bWxTYWZlKCkpKSxlfSxzZWFyY2g6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcztyZXR1cm4gcz90aGlzLmNvbnRlbnQuZmlsdGVyKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5maW5kQnlJZChvLmdldFZhbHVlKGUpKSxuPW8uZ2V0TmFtZShlKTtpZih0JiZ0LnBhcmVudENhdGVnb3J5KXt2YXIgaT1vLmdldE5hbWUodC5wYXJlbnRDYXRlZ29yeSk7cmV0dXJuIG8uX21hdGNoQ2F0ZWdvcnkocyxuKXx8by5fbWF0Y2hDYXRlZ29yeShzLGkpfXJldHVybiBvLl9tYXRjaENhdGVnb3J5KHMsbil9KTp0aGlzLmNvbnRlbnR9LGNvbnRlbnQ6KDAscy5jb21wdXRlZCkoInNlbGVjdEtpdC57ZmlsdGVyLG9wdGlvbnMuc2NvcGVkQ2F0ZWdvcnlJZH0iLGZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc2VsZWN0S2l0LmZpbHRlciYmdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkP3RoaXMuY2F0ZWdvcmllc0J5U2NvcGUodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkKTp0aGlzLmNhdGVnb3JpZXNCeVNjb3BlKCl9KSxjYXRlZ29yaWVzQnlTY29wZTpmdW5jdGlvbihlKXt2YXIgdCxpPXRoaXMscz0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZTpudWxsLG49dGhpcy5maXhlZENhdGVnb3J5UG9zaXRpb25zT25DcmVhdGU/ci5kZWZhdWx0Lmxpc3QoKTpyLmRlZmF1bHQubGlzdEJ5QWN0aXZpdHkoKTtzJiYodD1yLmRlZmF1bHQuZmluZEJ5SWQocykscz10LnBhcmVudF9jYXRlZ29yeV9pZHx8dC5pZCk7dmFyIG89dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5leGNsdWRlQ2F0ZWdvcnlJZDtyZXR1cm4gbi5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9aS5nZXRWYWx1ZShlKTtpZihzJiZ0IT09cyYmZS5wYXJlbnRfY2F0ZWdvcnlfaWQhPT1zKXJldHVybiExO2lmKCExPT09aS5zZWxlY3RLaXQub3B0aW9ucy5hbGxvd1N1YkNhdGVnb3JpZXMmJmUucGFyZW50Q2F0ZWdvcnkpcmV0dXJuITE7aWYoITE9PT1pLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZCYmZS5pc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeXx8bz09PXQpcmV0dXJuITE7dmFyIG49aS5zZWxlY3RLaXQub3B0aW9ucy5wZXJtaXNzaW9uVHlwZTtyZXR1cm4hbnx8bj09PWUucGVybWlzc2lvbn0pfSxfbWF0Y2hDYXRlZ29yeTpmdW5jdGlvbihlLHQpe3JldHVybi0xPHRoaXMuX25vcm1hbGl6ZSh0KS5pbmRleE9mKGUpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5BTExfQ0FURUdPUklFU19JRD1lLk5PX0NBVEVHT1JJRVNfSUQ9dm9pZCAwO3ZhciBhPWUuTk9fQ0FURUdPUklFU19JRD0ibm8tY2F0ZWdvcmllcyIsbD1lLkFMTF9DQVRFR09SSUVTX0lEPSJhbGwtY2F0ZWdvcmllcyI7ZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktZHJvcCJdLGNsYXNzTmFtZUJpbmRpbmdzOlsiY2F0ZWdvcnlTdHlsZSJdLGNsYXNzTmFtZXM6WyJjYXRlZ29yeS1kcm9wIl0sdmFsdWU6KDAsdC5yZWFkT25seSkoImNhdGVnb3J5LmlkIiksY29udGVudDooMCx0LnJlYWRPbmx5KSgiY2F0ZWdvcmllc1dpdGhTaG9ydGN1dHMuW10iKSx0YWdOYW1lOiJsaSIsY2F0ZWdvcnlTdHlsZTooMCx0LnJlYWRPbmx5KSgic2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlIiksbm9DYXRlZ29yaWVzTGFiZWw6STE4bi50KCJjYXRlZ29yaWVzLm5vX3N1YmNhdGVnb3J5Iiksc2VsZWN0S2l0T3B0aW9uczp7ZmlsdGVyYWJsZTohMCxub25lOiJjYXRlZ29yeS5hbGwiLGNhcmV0RG93bkljb246ImNhcmV0LXJpZ2h0IixjYXJldFVwSWNvbjoiY2FyZXQtZG93biIsZnVsbFdpZHRoT25Nb2JpbGU6ITAsbm9TdWJjYXRlZ29yaWVzOiExLHN1YkNhdGVnb3J5OiExLGNsZWFyYWJsZTohMSxoaWRlUGFyZW50Q2F0ZWdvcnk6ImhpZGVQYXJlbnRDYXRlZ29yeSIsYWxsb3dVbmNhdGVnb3JpemVkOiEwLGNvdW50U3ViY2F0ZWdvcmllczohMSxhdXRvSW5zZXJ0Tm9uZUl0ZW06ITEsZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246ImRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uIixoZWFkZXJDb21wb25lbnQ6ImNhdGVnb3J5LWRyb3AvY2F0ZWdvcnktZHJvcC1oZWFkZXIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4iY2F0ZWdvcnktcm93In0sZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpfHwwPHRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpKX0pLGhpZGVQYXJlbnRDYXRlZ29yeTooMCxuLmNvbXB1dGVkKShmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuc3ViQ2F0ZWdvcnl8fCExfSksY2F0ZWdvcmllc1dpdGhTaG9ydGN1dHM6KDAsbi5jb21wdXRlZCkoImNhdGVnb3JpZXMuW10iLCJ2YWx1ZSIsInNlbGVjdEtpdC5vcHRpb25zLntzdWJDYXRlZ29yeSxub1N1YmNhdGVnb3JpZXN9IixmdW5jdGlvbigpe3ZhciBlPVtdOyh0aGlzLnZhbHVlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLm5vU3ViY2F0ZWdvcmllcyYmdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeSkmJmUucHVzaCh7aWQ6bCxuYW1lOnRoaXMuYWxsQ2F0ZWdvcmllc0xhYmVsfSksIXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuc3ViQ2F0ZWdvcnl8fCF0aGlzLnZhbHVlJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLm5vU3ViY2F0ZWdvcmllc3x8ZS5wdXNoKHtpZDphLG5hbWU6dGhpcy5ub0NhdGVnb3JpZXNMYWJlbH0pO3ZhciB0PXRoaXMuX2ZpbHRlclVuY2F0ZWdvcml6ZWQodGhpcy5jYXRlZ29yaWVzfHxbXSk7cmV0dXJuIGUuY29uY2F0KHQpfSksbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ub1N1YmNhdGVnb3JpZXM/dGhpcy5kZWZhdWx0SXRlbShhLHRoaXMubm9DYXRlZ29yaWVzTGFiZWwpOnRoaXMuZGVmYXVsdEl0ZW0obCx0aGlzLmFsbENhdGVnb3JpZXNMYWJlbCl9LG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy52YWx1ZSYmKHQ9by5kZWZhdWx0LmZpbmRCeUlkKHRoaXMudmFsdWUpLGUudGl0bGU9dC50aXRsZSxlLmxhYmVsPSgwLHIuY2F0ZWdvcnlCYWRnZUhUTUwpKHQse2xpbms6ITEsYWxsb3dVbmNhdGVnb3JpemVkOnRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dVbmNhdGVnb3JpemVkLGhpZGVQYXJlbnQ6ITB9KS5odG1sU2FmZSgpKSxlfSxwYXJlbnRDYXRlZ29yeU5hbWU6KDAsdC5yZWFkT25seSkoInNlbGVjdEtpdC5vcHRpb25zLnBhcmVudENhdGVnb3J5Lm5hbWUiKSxwYXJlbnRDYXRlZ29yeVVybDooMCx0LnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMucGFyZW50Q2F0ZWdvcnkudXJsIiksYWxsQ2F0ZWdvcmllc0xhYmVsOigwLG4uY29tcHV0ZWQpKCJwYXJlbnRDYXRlZ29yeU5hbWUiLCJzZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeT9JMThuLnQoImNhdGVnb3JpZXMuYWxsX3N1YmNhdGVnb3JpZXMiLHtjYXRlZ29yeU5hbWU6dGhpcy5wYXJlbnRDYXRlZ29yeU5hbWV9KTpJMThuLnQoImNhdGVnb3JpZXMuYWxsIil9KSxhbGxDYXRlZ29yaWVzVXJsOigwLG4uY29tcHV0ZWQpKCJwYXJlbnRDYXRlZ29yeVVybCIsInNlbGVjdEtpdC5vcHRpb25zLnN1YkNhdGVnb3J5IixmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuc3ViQ2F0ZWdvcnkmJnRoaXMucGFyZW50Q2F0ZWdvcnlVcmx8fCIvIil9KSxub0NhdGVnb3JpZXNVcmw6KDAsbi5jb21wdXRlZCkoInBhcmVudENhdGVnb3J5VXJsIixmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKHRoaXMucGFyZW50Q2F0ZWdvcnlVcmwrIi9ub25lIil9KSxzZWFyY2g6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9RGlzY291cnNlLkNhdGVnb3J5LnNlYXJjaChlKTtyZXR1cm4gdD10aGlzLl9maWx0ZXJVbmNhdGVnb3JpemVkKHQpLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJiF0LnBhcmVudF9jYXRlZ29yeV9pZD8xOiFlLnBhcmVudF9jYXRlZ29yeV9pZCYmdC5wYXJlbnRfY2F0ZWdvcnlfaWQ/LTE6MH0pfXJldHVybiB0aGlzLl9maWx0ZXJVbmNhdGVnb3JpemVkKHRoaXMuY29udGVudCl9LGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT12b2lkIDA7cmV0dXJuIGk9ZT09PWw/dGhpcy5hbGxDYXRlZ29yaWVzVXJsOmU9PT1hP3RoaXMubm9DYXRlZ29yaWVzVXJsOih0PXBhcnNlSW50KGUsMTApLG49by5kZWZhdWx0LmZpbmRCeUlkKHQpLCIvYy8iK0Rpc2NvdXJzZS5DYXRlZ29yeS5zbHVnRm9yKG4pKSxzLmRlZmF1bHQucm91dGVUb1VybChpKSwhMX19LF9maWx0ZXJVbmNhdGVnb3JpemVkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZHx8KGU9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZH0pKSxlfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcC9jYXRlZ29yeS1kcm9wLWhlYWRlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHI9KDAscy5kZWZhdWx0KSgic2VsZWN0ZWRDb250ZW50LmNvbG9yIiksYT0oMCxzLmRlZmF1bHQpKCJzZWxlY3RlZENvbnRlbnQudGV4dF9jb2xvciIpLGw9KDAscy5kZWZhdWx0KSgic2VsZWN0ZWRDb250ZW50IiwiY2F0ZWdvcnlCYWNrZ3JvdW5kQ29sb3IiLCJjYXRlZ29yeVRleHRDb2xvciIpLG8odT17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jYXRlZ29yeS1kcm9wL2NhdGVnb3J5LWRyb3AtaGVhZGVyIixjbGFzc05hbWVzOlsiY2F0ZWdvcnktZHJvcC1oZWFkZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImNhdGVnb3J5U3R5bGVDbGFzcyJdLGNhdGVnb3J5U3R5bGVDbGFzczooMCx0LnJlYWRPbmx5KSgic2l0ZS5jYXRlZ29yeV9zdHlsZSIpLGNhdGVnb3J5QmFja2dyb3VuZENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiI2U5ZTllOSJ9LGNhdGVnb3J5VGV4dENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIzMzMyJ9LGNhdGVnb3J5U3R5bGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuc2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlO2lmKCJidWxsZXQiIT09aSYmZSYmKHR8fG4pKXt2YXIgcz0iIjtyZXR1cm4gdCYmImJveCI9PT1pJiYocys9ImJvcmRlci1jb2xvcjogIyIrdCsiOyBiYWNrZ3JvdW5kLWNvbG9yOiAjIit0KyI7IixuJiYocys9ImNvbG9yOiAjIituKyI7IikpLHMuaHRtbFNhZmUoKX19LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7ZS5jYXRlZ29yeVN0eWxlJiYoZS5lbGVtZW50LnNldEF0dHJpYnV0ZSgic3R5bGUiLGUuY2F0ZWdvcnlTdHlsZSksZS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jYXJldC1pY29uIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsZS5jYXRlZ29yeVN0eWxlKSl9KX19LCJjYXRlZ29yeUJhY2tncm91bmRDb2xvciIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlCYWNrZ3JvdW5kQ29sb3IiKSx1KSxvKHUsImNhdGVnb3J5VGV4dENvbG9yIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJjYXRlZ29yeVRleHRDb2xvciIpLHUpLG8odSwiY2F0ZWdvcnlTdHlsZSIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlTdHlsZSIpLHUpLHUpKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3J5LW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktbm90aWZpY2F0aW9ucy1idXR0b24iXSxjbGFzc05hbWVzOlsiY2F0ZWdvcnktbm90aWZpY2F0aW9ucy1idXR0b24iXSxpc0hpZGRlbjooMCx0Lm9yKSgiY2F0ZWdvcnkuZGVsZXRlZCIpLHNlbGVjdEtpdE9wdGlvbnM6e2kxOG5QcmVmaXg6ImkxOG5QcmVmaXgiLHNob3dGdWxsVGl0bGU6ITF9LGkxOG5QcmVmaXg6ImNhdGVnb3J5Lm5vdGlmaWNhdGlvbnMifSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9jYXRlZ29yeS1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93IixjbGFzc05hbWVzOlsiY2F0ZWdvcnktcm93Il0saGlkZVBhcmVudENhdGVnb3J5OigwLHQuYm9vbCkoInNlbGVjdEtpdC5vcHRpb25zLmhpZGVQYXJlbnRDYXRlZ29yeSIpLGFsbG93VW5jYXRlZ29yaXplZDooMCx0LmJvb2wpKCJzZWxlY3RLaXQub3B0aW9ucy5hbGxvd1VuY2F0ZWdvcml6ZWQiKSxjYXRlZ29yeUxpbms6KDAsdC5ib29sKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2F0ZWdvcnlMaW5rIiksY291bnRTdWJjYXRlZ29yaWVzOigwLHQuYm9vbCkoInNlbGVjdEtpdC5vcHRpb25zLmNvdW50U3ViY2F0ZWdvcmllcyIpLGFsbG93VW5jYXRlZ29yaXplZFRvcGljczooMCxhLnNldHRpbmcpKCJhbGxvd191bmNhdGVnb3JpemVkX3RvcGljcyIpLGRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uOigwLHIuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy5kaXNwbGF5Q2F0ZWdvcnlEZXNjcmlwdGlvbiIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLmRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uO3JldHVybiEhKDAsby5pc05vbmUpKGUpfHxlfSksdGl0bGU6KDAsci5jb21wdXRlZCkoImRlc2NyaXB0aW9uVGV4dCIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnlOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9uVGV4dHx8dGhpcy5kZXNjcmlwdGlvbnx8dGhpcy5jYXRlZ29yeU5hbWV9KSxjYXRlZ29yeU5hbWU6KDAsdC5yZWFkcykoImNhdGVnb3J5Lm5hbWUiKSxjYXRlZ29yeURlc2NyaXB0aW9uOigwLHQucmVhZHMpKCJjYXRlZ29yeS5kZXNjcmlwdGlvbiIpLGNhdGVnb3J5RGVzY3JpcHRpb25UZXh0OigwLHQucmVhZHMpKCJjYXRlZ29yeS5kZXNjcmlwdGlvbl90ZXh0IiksY2F0ZWdvcnk6KDAsci5jb21wdXRlZCkoInJvd1ZhbHVlIiwicm93TmFtZSIsZnVuY3Rpb24oKXtpZighKDAsby5pc0VtcHR5KSh0aGlzLnJvd1ZhbHVlKSlyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeUlkKHBhcnNlSW50KHRoaXMucm93VmFsdWUsMTApKTt2YXIgZT1pLmRlZmF1bHQuZmluZFVuY2F0ZWdvcml6ZWQoKTtyZXR1cm4gZSYmZS5uYW1lPT09dGhpcy5yb3dOYW1lP2U6dm9pZCAwfSksYmFkZ2VGb3JDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmNhdGVnb3J5QmFkZ2VIVE1MKSh0aGlzLmNhdGVnb3J5LHtsaW5rOnRoaXMuY2F0ZWdvcnlMaW5rLGFsbG93VW5jYXRlZ29yaXplZDp0aGlzLmFsbG93VW5jYXRlZ29yaXplZFRvcGljc3x8dGhpcy5hbGxvd1VuY2F0ZWdvcml6ZWQsaGlkZVBhcmVudDohIXRoaXMucGFyZW50Q2F0ZWdvcnksdG9waWNDb3VudDp0aGlzLnRvcGljQ291bnR9KS5odG1sU2FmZSgpfSksYmFkZ2VGb3JQYXJlbnRDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgicGFyZW50Q2F0ZWdvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5jYXRlZ29yeUJhZGdlSFRNTCkodGhpcy5wYXJlbnRDYXRlZ29yeSx7bGluazp0aGlzLmNhdGVnb3J5TGluayxhbGxvd1VuY2F0ZWdvcml6ZWQ6dGhpcy5hbGxvd1VuY2F0ZWdvcml6ZWRUb3BpY3N8fHRoaXMuYWxsb3dVbmNhdGVnb3JpemVkLHJlY3Vyc2l2ZTohMH0pLmh0bWxTYWZlKCl9KSxwYXJlbnRDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgicGFyZW50Q2F0ZWdvcnlJZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeUlkKHRoaXMucGFyZW50Q2F0ZWdvcnlJZCl9KSxoYXNQYXJlbnRDYXRlZ29yeTooMCx0LmJvb2wpKCJwYXJlbnRDYXRlZ29yeUlkIikscGFyZW50Q2F0ZWdvcnlJZDooMCx0LnJlYWRzKSgiY2F0ZWdvcnkucGFyZW50X2NhdGVnb3J5X2lkIiksY2F0ZWdvcnlUb3RhbFRvcGljQ291bnQ6KDAsdC5yZWFkcykoImNhdGVnb3J5LnRvdGFsVG9waWNDb3VudCIpLGNhdGVnb3J5VG9waWNDb3VudDooMCx0LnJlYWRzKSgiY2F0ZWdvcnkudG9waWNfY291bnQiKSx0b3BpY0NvdW50OigwLHIuY29tcHV0ZWQpKCJjYXRlZ29yeVRvdGFsVG9waWNDb3VudCIsImNhdGVnb3J5VG9waWNDb3VudCIsImNvdW50U3ViY2F0ZWdvcmllcyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudFN1YmNhdGVnb3JpZXM/dGhpcy5jYXRlZ29yeVRvdGFsVG9waWNDb3VudDp0aGlzLmNhdGVnb3J5VG9waWNDb3VudH0pLHNob3VsZERpc3BsYXlEZXNjcmlwdGlvbjooMCxyLmNvbXB1dGVkKSgiZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb24iLCJjYXRlZ29yeURlc2NyaXB0aW9uIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uJiZ0aGlzLmNhdGVnb3J5RGVzY3JpcHRpb24mJiJudWxsIiE9PXRoaXMuY2F0ZWdvcnlEZXNjcmlwdGlvbn0pLGRlc2NyaXB0aW9uVGV4dDooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnlEZXNjcmlwdGlvblRleHQiLGZ1bmN0aW9uKCl7aWYodGhpcy5jYXRlZ29yeURlc2NyaXB0aW9uVGV4dClyZXR1cm4gdGhpcy5fZm9ybWF0RGVzY3JpcHRpb24odGhpcy5jYXRlZ29yeURlc2NyaXB0aW9uVGV4dCl9KSxkZXNjcmlwdGlvbjooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnlEZXNjcmlwdGlvbiIsZnVuY3Rpb24oKXtpZih0aGlzLmNhdGVnb3J5RGVzY3JpcHRpb24pcmV0dXJuIHRoaXMuX2Zvcm1hdERlc2NyaXB0aW9uKHRoaXMuY2F0ZWdvcnlEZXNjcmlwdGlvbil9KSxfZm9ybWF0RGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3Vic3RyKDAsMjAwKSsoMjAwPGUubGVuZ3RoPyImaGVsbGlwOyI6IiIpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSxzLHQsaSxuLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktc2VsZWN0b3IiXSxjbGFzc05hbWVzOlsiY2F0ZWdvcnktc2VsZWN0b3IiXSxjYXRlZ29yaWVzOm51bGwsYmxhY2tsaXN0Om51bGwsc2VsZWN0S2l0T3B0aW9uczp7ZmlsdGVyYWJsZTohMCxhbGxvd0FueTohMSxhbGxvd1VuY2F0ZWdvcml6ZWQ6ImFsbG93VW5jYXRlZ29yaXplZCIsZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246ITEsc2VsZWN0ZWROYW1lQ29tcG9uZW50OiJtdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkifSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuY2F0ZWdvcmllc3x8dGhpcy5zZXQoImNhdGVnb3JpZXMiLFtdKSx0aGlzLmJsYWNrbGlzdHx8dGhpcy5zZXQoImJsYWNrbGlzdCIsW10pfSxjb250ZW50OigwLHMuY29tcHV0ZWQpKCJjYXRlZ29yaWVzLltdIiwiYmxhY2tsaXN0LltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj0oMCxpLm1ha2VBcnJheSkodGhpcy5ibGFja2xpc3QpO3JldHVybiBvLmRlZmF1bHQubGlzdCgpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdC5jYXRlZ29yaWVzLmluY2x1ZGVzKGUpfHwhbi5pbmNsdWRlcyhlKX0pfSksdmFsdWU6KDAsdC5tYXBCeSkoImNhdGVnb3JpZXMiLCJpZCIpLGZpbHRlckNvbXB1dGVkQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1uZXcgUmVnRXhwKHQsImkiKTtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG4uX25vcm1hbGl6ZSgoMCxzLmdldCkoZSwibmFtZSIpKS5tYXRjaChpKX0pfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRycy5vbkNoYW5nZShlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5kZWZhdWx0LmZpbmRCeUlkKGUpfSkuZmlsdGVyKEJvb2xlYW4pKSwhMX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9jb2xvci1wYWxldHRlcyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb2xvci1wYWxldHRlcyJdLGNsYXNzTmFtZXM6WyJjb2xvci1wYWxldHRlcyJdLG1vZGlmeUNvbXBvbmVudEZvclJvdzpmdW5jdGlvbigpe3JldHVybiJjb2xvci1wYWxldHRlcy9jb2xvci1wYWxldHRlcy1yb3cifX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZXMvY29sb3ItcGFsZXR0ZXMtcm93IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJjb2xvci1wYWxldHRlcy1yb3ciXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGVzL2NvbG9yLXBhbGV0dGVzLXJvdyIscGFsZXR0ZXM6KDAsaS5jb21wdXRlZCkoIml0ZW0uY29sb3JzLltdIixmdW5jdGlvbigpe3JldHVybih0aGlzLml0ZW0uY29sb3JzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiIjIisoMCx0LmVzY2FwZUV4cHJlc3Npb24pKGUuaGV4KX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4nPHNwYW4gY2xhc3M9InBhbGV0dGUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOicrZSsnIj48L3NwYW4+J30pLmpvaW4oIiIpLmh0bWxTYWZlKCl9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2luZ2xlLXNlbGVjdCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb21iby1ib3giXSxjbGFzc05hbWVzOlsiY29tYm9ib3giLCJjb21iby1ib3giXSxzZWxlY3RLaXRPcHRpb25zOntjYXJldFVwSWNvbjoiY2FyZXQtdXAiLGNhcmV0RG93bkljb246ImNhcmV0LWRvd24iLGF1dG9GaWx0ZXJhYmxlOiJhdXRvRmlsdGVyYWJsZSIsY2xlYXJhYmxlOiExLGhlYWRlckNvbXBvbmVudDoiY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIifSxhdXRvRmlsdGVyYWJsZTpuLmNvbXB1dGVkLmd0ZSgiY29udGVudC5sZW5ndGgiLDEwKX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIixjbGFzc05hbWVzOlsiY29tYm8tYm94LWhlYWRlciJdLGNsZWFyYWJsZTooMCx0LnJlYWRzKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2xlYXJhYmxlIiksY2FyZXRVcEljb246KDAsdC5yZWFkcykoInNlbGVjdEtpdC5vcHRpb25zLmNhcmV0VXBJY29uIiksY2FyZXREb3duSWNvbjooMCx0LnJlYWRzKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2FyZXREb3duSWNvbiIpLHNob3VsZERpc3BsYXlDbGVhcmFibGVCdXR0b246KDAsdC5hbmQpKCJjbGVhcmFibGUiLCJ2YWx1ZSIpLGNhcmV0SWNvbjooMCxpLmNvbXB1dGVkKSgic2VsZWN0S2l0LmlzRXhwYW5kZWQiLCJjYXJldFVwSWNvbiIsImNhcmV0RG93bkljb24iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5jYXJldFVwSWNvbjp0aGlzLmNhcmV0RG93bkljb259KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tcG9zZXItYWN0aW9ucyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3giLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlL21vZGVscy9kcmFmdCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvc3RyaW5nIiwiQGVtYmVyL3V0aWxzIl0sZnVuY3Rpb24oZSx0LG8saSxuLHMscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLl9jbGVhclNuYXBzaG90cz1mdW5jdGlvbigpe2w9YT1udWxsfTt2YXIgYT1udWxsLGw9bnVsbDtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb21wb3Nlci1hY3Rpb25zIl0sY2xhc3NOYW1lczpbImNvbXBvc2VyLWFjdGlvbnMiXSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJzaGFyZSIsZmlsdGVyYWJsZTohMSxzaG93RnVsbFRpdGxlOiExfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksIXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljIil8fGEmJnRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLmlkIik9PT1hLmlkfHwoYT10aGlzLmdldCgiY29tcG9zZXJNb2RlbC50b3BpYyIpLGw9dGhpcy5nZXQoImNvbXBvc2VyTW9kZWwucG9zdCIpKSwhdGhpcy5nZXQoImNvbXBvc2VyTW9kZWwucG9zdCIpfHxsJiZ0aGlzLmdldCgiY29tcG9zZXJNb2RlbC5wb3N0LmlkIik9PT1sLmlkfHwobD10aGlzLmdldCgiY29tcG9zZXJNb2RlbC5wb3N0IikpLCgwLHIuaXNFbXB0eSkodGhpcy5jb250ZW50KSYmdGhpcy5zZXQoInNlbGVjdEtpdC5pc0hpZGRlbiIsITApfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm57fX0sY29udGVudDooMCxuLmNvbXB1dGVkKShmdW5jdGlvbigpe3ZhciBlPVtdO3RoaXMuYWN0aW9uIT09by5DUkVBVEVfVE9QSUMmJnRoaXMuYWN0aW9uIT09by5DUkVBVEVfU0hBUkVEX0RSQUZUJiZhJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYy5sYWJlbCIpLGRlc2NyaXB0aW9uOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5yZXBseV9hc19uZXdfdG9waWMuZGVzYyIpLGljb246InBsdXMiLGlkOiJyZXBseV9hc19uZXdfdG9waWMifSksKHRoaXMuYWN0aW9uIT09by5SRVBMWSYmbHx8dGhpcy5hY3Rpb249PT1vLlJFUExZJiZsJiYoIXRoaXMucmVwbHlPcHRpb25zLnVzZXJBdmF0YXJ8fCF0aGlzLnJlcGx5T3B0aW9ucy51c2VyTGluaykpJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3Bvc3QubGFiZWwiLHtwb3N0TnVtYmVyOmwucG9zdF9udW1iZXIscG9zdFVzZXJuYW1lOmwudXNlcm5hbWV9KSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfdG9fcG9zdC5kZXNjIiksaWNvbjoic2hhcmUiLGlkOiJyZXBseV90b19wb3N0In0pLHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmdGhpcy5hY3Rpb24hPT1vLlBSSVZBVEVfTUVTU0FHRSYmZS5wdXNoKHtuYW1lOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5yZXBseV9hc19wcml2YXRlX21lc3NhZ2UubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfYXNfcHJpdmF0ZV9tZXNzYWdlLmRlc2MiKSxpY29uOiJlbnZlbG9wZSIsaWQ6InJlcGx5X2FzX3ByaXZhdGVfbWVzc2FnZSJ9KSwodGhpcy5hY3Rpb24hPT1vLlJFUExZJiZhfHx0aGlzLmFjdGlvbj09PW8uUkVQTFkmJmEmJnRoaXMucmVwbHlPcHRpb25zLnVzZXJBdmF0YXImJnRoaXMucmVwbHlPcHRpb25zLnVzZXJMaW5rJiZ0aGlzLnJlcGx5T3B0aW9ucy50b3BpY0xpbmspJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3RvcGljLmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3RvcGljLmRlc2MiKSxpY29uOiJzaGFyZSIsaWQ6InJlcGx5X3RvX3RvcGljIn0pLHRoaXMuY2FuV2hpc3BlciYmKCFsfHxsJiZsLnBvc3RfdHlwZSE9PXRoaXMuc2l0ZS5wb3N0X3R5cGVzLndoaXNwZXIpJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnRvZ2dsZV93aGlzcGVyLmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnRvZ2dsZV93aGlzcGVyLmRlc2MiKSxpY29uOiJmYXItZXllLXNsYXNoIixpZDoidG9nZ2xlX3doaXNwZXIifSk7dmFyIHQ9ITE7dGhpcy5hY3Rpb249PT1vLkNSRUFURV9TSEFSRURfRFJBRlQmJih0PSEwKSx0aGlzLmFjdGlvbj09PW8uQ1JFQVRFX1RPUElDJiYodGhpcy5zaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQmJmUucHVzaCh7bmFtZTpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMuc2hhcmVkX2RyYWZ0LmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnNoYXJlZF9kcmFmdC5kZXNjIiksaWNvbjoiZmFyLWNsaXBib2FyZCIsaWQ6InNoYXJlZF9kcmFmdCJ9KSwwPT09ZS5sZW5ndGgmJih0PSEwKSksdCYmZS5wdXNoKHtuYW1lOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5jcmVhdGVfdG9waWMubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfYXNfbmV3X3RvcGljLmRlc2MiKSxpY29uOiJzaGFyZSIsaWQ6ImNyZWF0ZV90b3BpYyJ9KTt2YXIgbj10aGlzLmdldCgiY3VycmVudFVzZXIuc3RhZmYiKXx8ND09PXRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpO3JldHVybiB0aGlzLmFjdGlvbj09PW8uUkVQTFkmJm4mJmUucHVzaCh7bmFtZTpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMudG9nZ2xlX3RvcGljX2J1bXAubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMudG9nZ2xlX3RvcGljX2J1bXAuZGVzYyIpLGljb246ImFuY2hvciIsaWQ6InRvZ2dsZV90b3BpY19idW1wIn0pLGV9KSxfcmVwbHlGcm9tRXhpc3Rpbmc6ZnVuY3Rpb24oZSx0LG4pe3RoaXMuY2xvc2VDb21wb3NlcigpLHRoaXMub3BlbkNvbXBvc2VyKGUsdCxuKX0sX29wZW5Db21wb3NlcjpmdW5jdGlvbihlKXt0aGlzLmNsb3NlQ29tcG9zZXIoKSx0aGlzLm9wZW5Db21wb3NlcihlKX0sdG9nZ2xlV2hpc3BlclNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7dC50b2dnbGVQcm9wZXJ0eSgid2hpc3BlciIpfSx0b2dnbGVUb3BpY0J1bXBTZWxlY3RlZDpmdW5jdGlvbihlLHQpe3QudG9nZ2xlUHJvcGVydHkoIm5vQnVtcCIpfSxyZXBseVRvVG9waWNTZWxlY3RlZDpmdW5jdGlvbihlKXtlLmFjdGlvbj1vLlJFUExZLGUudG9waWM9YSxlLnNraXBEcmFmdENoZWNrPSEwLHRoaXMuX29wZW5Db21wb3NlcihlKX0scmVwbHlUb1Bvc3RTZWxlY3RlZDpmdW5jdGlvbihlKXtlLmFjdGlvbj1vLlJFUExZLGUucG9zdD1sLGUuc2tpcERyYWZ0Q2hlY2s9ITAsdGhpcy5fb3BlbkNvbXBvc2VyKGUpfSxyZXBseUFzTmV3VG9waWNTZWxlY3RlZDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO2kuZGVmYXVsdC5nZXQoIm5ld190b3BpYyIpLnRoZW4oZnVuY3Rpb24oZSl7ZS5kcmFmdD9ib290Ym94LmNvbmZpcm0oSTE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYy5jb25maXJtIiksZnVuY3Rpb24oZSl7ZSYmbi5fcmVwbHlBc05ld1RvcGljU2VsZWN0KHQpfSk6bi5fcmVwbHlBc05ld1RvcGljU2VsZWN0KHQpfSl9LF9yZXBseUFzTmV3VG9waWNTZWxlY3Q6ZnVuY3Rpb24oZSl7ZS5hY3Rpb249by5DUkVBVEVfVE9QSUMsZS5jYXRlZ29yeUlkPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLmNhdGVnb3J5LmlkIiksZS5kaXNhYmxlU2NvcGVkQ2F0ZWdvcnk9ITAsZS5za2lwRHJhZnRDaGVjaz0hMCx0aGlzLl9yZXBseUZyb21FeGlzdGluZyhlLGwsYSl9LHJlcGx5QXNQcml2YXRlTWVzc2FnZVNlbGVjdGVkOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXZvaWQgMDtsJiYhbC5nZXQoInlvdXJzIik/KHQ9bC5nZXQoInVzZXJuYW1lIikpJiYocz10KTp0aGlzLmdldCgiY29tcG9zZXJNb2RlbC50b3BpYyIpJiYoIShuPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLnBvc3RTdHJlYW0iKSkuZ2V0KCJmaXJzdFBvc3RQcmVzZW50Iil8fChpPW4uZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpKSYmIWkuZ2V0KCJ5b3VycyIpJiZpLmdldCgidXNlcm5hbWUiKSYmKHM9aS5nZXQoInVzZXJuYW1lIikpKSxlLmFjdGlvbj1vLlBSSVZBVEVfTUVTU0FHRSxlLnVzZXJuYW1lcz1zLGUuYXJjaGV0eXBlSWQ9InByaXZhdGVfbWVzc2FnZSIsZS5za2lwRHJhZnRDaGVjaz0hMCx0aGlzLl9yZXBseUZyb21FeGlzdGluZyhlLGwsYSl9LF9zd2l0Y2hDcmVhdGU6ZnVuY3Rpb24oZSx0KXtlLmFjdGlvbj10LGUuY2F0ZWdvcnlJZD10aGlzLmdldCgiY29tcG9zZXJNb2RlbC5jYXRlZ29yeUlkIiksZS50b3BpY1RpdGxlPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRpdGxlIiksZS50YWdzPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRhZ3MiKSxlLnNraXBEcmFmdENoZWNrPSEwLHRoaXMuX29wZW5Db21wb3NlcihlKX0sY3JlYXRlVG9waWNTZWxlY3RlZDpmdW5jdGlvbihlKXt0aGlzLl9zd2l0Y2hDcmVhdGUoZSxvLkNSRUFURV9UT1BJQyl9LHNoYXJlZERyYWZ0U2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fc3dpdGNoQ3JlYXRlKGUsby5DUkVBVEVfU0hBUkVEX0RSQUZUKX0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jYW1lbGl6ZSkoZSkrIlNlbGVjdGVkIjt0aGlzW3RdP3RoaXNbdF0odGhpcy5jb21wb3Nlck1vZGVsLmdldFByb3BlcnRpZXMoImRyYWZ0S2V5IiwiZHJhZnRTZXF1ZW5jZSIsInJlcGx5IiwiZGlzYWJsZVNjb3BlZENhdGVnb3J5IiksdGhpcy5jb21wb3Nlck1vZGVsKTpjb25zb2xlLmVycm9yKCJObyBtZXRob2QgJyIrdCsiJyBmb3VuZCIpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NyZWF0ZS1jb2xvci1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY3JlYXRlLWNvbG9yLXJvdyIsY2xhc3NOYW1lczpbImNyZWF0ZS1jb2xvci1yb3ciXSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxpLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9KDAsbi5lc2NhcGVFeHByZXNzaW9uKSh0LnJvd1ZhbHVlKTt0LmVsZW1lbnQuc3R5bGUuYm9yZGVyTGVmdENvbG9yPSIjIitlfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2luZ2xlLXNlbGVjdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJkcm9wZG93bi1zZWxlY3QtYm94Il0sY2xhc3NOYW1lczpbImRyb3Bkb3duLXNlbGVjdC1ib3giXSxzZWxlY3RLaXRPcHRpb25zOnthdXRvRmlsdGVyYWJsZTohMSxmaWx0ZXJhYmxlOiExLHNob3dGdWxsVGl0bGU6ITAsaGVhZGVyQ29tcG9uZW50OiJkcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIn0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuImRyb3Bkb3duLXNlbGVjdC1ib3gvZHJvcGRvd24tc2VsZWN0LWJveC1yb3cifX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciIsY2xhc3NOYW1lczpbImJ0bi1kZWZhdWx0IiwiZHJvcGRvd24tc2VsZWN0LWJveC1oZWFkZXIiXSx0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiYnRuQ2xhc3NOYW1lIl0sc2hvd0Z1bGxUaXRsZTooMCxpLnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMuc2hvd0Z1bGxUaXRsZSIpLGF0dHJpYnV0ZUJpbmRpbmdzOlsiYnV0dG9uVHlwZTp0eXBlIl0sYnV0dG9uVHlwZToiYnV0dG9uIixidG5DbGFzc05hbWU6KDAsbi5jb21wdXRlZCkoInNob3dGdWxsVGl0bGUiLGZ1bmN0aW9uKCl7cmV0dXJuImJ0biAiKyh0aGlzLnNob3dGdWxsVGl0bGU/ImJ0bi1pY29uLXRleHQiOiJuby10ZXh0IGJ0bi1pY29uIil9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsY2xhc3NOYW1lczpbImRyb3Bkb3duLXNlbGVjdC1ib3gtcm93Il0sZGVzY3JpcHRpb246KDAsdC5yZWFkT25seSkoIml0ZW0uZGVzY3JpcHRpb24iKX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3V0aWxzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL21peGluIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkZPUk1BVD1lLlRJTUVGUkFNRVM9dm9pZCAwLGUudGltZWZyYW1lRGV0YWlscz1mdW5jdGlvbihlKXtjfHwoYz17fSx1LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGNbZS5pZF09ZX0pKTtyZXR1cm4gY1tlXX07dmFyIGE9e2VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sd2hlbjpmdW5jdGlvbigpe3JldHVybiBudWxsfSxpY29uOiJicmllZmNhc2UiLGRpc3BsYXlXaGVuOiEwfTtmdW5jdGlvbiBsKGUpe3JldHVybiBqUXVlcnkuZXh0ZW5kKHt9LGEsZSl9dmFyIHU9ZS5USU1FRlJBTUVTPVtsKHtpZDoibGF0ZXJfdG9kYXkiLGZvcm1hdDoiaCBhIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmNhblNjaGVkdWxlVG9kYXl9LHdoZW46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaG91cigxOCkubWludXRlKDApfSxpY29uOiJmYXItbW9vbiJ9KSxsKHtpZDoidG9tb3Jyb3ciLGZvcm1hdDoiZGRkLCBoIGEiLHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMSwiZGF5IikuaG91cih0KS5taW51dGUoMCl9LGljb246ImZhci1zdW4ifSksbCh7aWQ6ImxhdGVyX3RoaXNfd2VlayIsZm9ybWF0OiJkZGQsIGggYSIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4hZS5jYW5TY2hlZHVsZVRvZGF5JiZlLmRheTw0fSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDIsImRheSIpLmhvdXIodCkubWludXRlKDApfX0pLGwoe2lkOiJ0aGlzX3dlZWtlbmQiLGZvcm1hdDoiZGRkLCBoIGEiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF5PDUmJmUuaW5jbHVkZVdlZWtlbmR9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5kYXkoNikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJlZCJ9KSxsKHtpZDoibmV4dF93ZWVrIixmb3JtYXQ6ImRkZCwgaCBhIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiA3IT09ZS5kYXl9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMSwid2VlayIpLmRheSgxKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJ0d29fd2Vla3MiLGZvcm1hdDoiTU1NIEQiLHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMiwid2VlayIpLmhvdXIodCkubWludXRlKDApfSxpY29uOiJicmllZmNhc2UifSksbCh7aWQ6Im5leHRfbW9udGgiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm93LmRhdGUoKSE9PW1vbWVudCgpLmVuZE9mKCJtb250aCIpLmRhdGUoKX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCgxLCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoidHdvX21vbnRocyIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlTWlkRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDIsIm1vbnRoIikuc3RhcnRPZigibW9udGgiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJ0aHJlZV9tb250aHMiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZU1pZEZ1dHVyZX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCgzLCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoiZm91cl9tb250aHMiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZU1pZEZ1dHVyZX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCg0LCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoic2l4X21vbnRocyIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlRmFyRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDYsIm1vbnRoIikuc3RhcnRPZigibW9udGgiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJvbmVfeWVhciIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlRmFyRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDEsInllYXIiKS5zdGFydE9mKCJkYXkiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJmb3JldmVyIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmluY2x1ZGVGYXJGdXR1cmV9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMWUzLCJ5ZWFyIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImdhdmVsIixkaXNwbGF5V2hlbjohMX0pLGwoe2lkOiJwaWNrX2RhdGVfYW5kX3RpbWUiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZURhdGVUaW1lfSxpY29uOiJmYXItY2FsZW5kYXItcGx1cyJ9KSxsKHtpZDoic2V0X2Jhc2VkX29uX2xhc3RfcG9zdCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlQmFzZWRPbkxhc3RQb3N0fSxpY29uOiJmYXItY2xvY2sifSldLGM9bnVsbDtlLkZPUk1BVD0iWVlZWS1NTS1ERCBISDptbVoiO2UuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKHIuZGVmYXVsdCx7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3RvciJdLGNsYXNzTmFtZXM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3RvciJdLGlzQ3VzdG9tOigwLG4uZXF1YWwpKCJ2YWx1ZSIsInBpY2tfZGF0ZV9hbmRfdGltZSIpLGlzQmFzZWRPbkxhc3RQb3N0OigwLG4uZXF1YWwpKCJ2YWx1ZSIsInNldF9iYXNlZF9vbl9sYXN0X3Bvc3QiKSxzZWxlY3RLaXRPcHRpb25zOnthdXRvSW5zZXJ0Tm9uZUl0ZW06ITEsaGVhZGVyQ29tcG9uZW50OiJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1oZWFkZXIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4iZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3Itcm93In0sY29udGVudDooMCx0LmNvbXB1dGVkKShmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1tb21lbnQoKSxuPXtub3c6ZSxkYXk6ZS5kYXkoKSxpbmNsdWRlV2Vla2VuZDp0aGlzLmluY2x1ZGVXZWVrZW5kLGluY2x1ZGVNaWRGdXR1cmU6dGhpcy5pbmNsdWRlTWlkRnV0dXJlfHwhMCxpbmNsdWRlRmFyRnV0dXJlOnRoaXMuaW5jbHVkZUZhckZ1dHVyZSxpbmNsdWRlRGF0ZVRpbWU6dGhpcy5pbmNsdWRlRGF0ZVRpbWUsaW5jbHVkZUJhc2VkT25MYXN0UG9zdDp0aGlzLnN0YXR1c1R5cGU9PT1vLkNMT1NFX1NUQVRVU19UWVBFLGNhblNjaGVkdWxlVG9kYXk6NjwyNC1lLmhvdXIoKX07cmV0dXJuIHUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVuYWJsZWQobil9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUuaWQsbmFtZTpJMThuLnQoInRvcGljLmF1dG9fdXBkYXRlX2lucHV0LiIrZS5pZCksZGF0ZXRpbWU6dC5fY29tcHV0ZURhdGV0aW1lRm9yVmFsdWUoZS5pZCksaWNvbnM6dC5fY29tcHV0ZUljb25zRm9yVmFsdWUoZS5pZCl9fSl9KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgdDsicGlja19kYXRlX2FuZF90aW1lIj09PWUmJnRoaXMuaXNCYXNlZE9uTGFzdFBvc3R8fCh0PXRoaXMuX3VwZGF0ZUF0KGUpLnRpbWUpJiYhKDAsaS5pc0VtcHR5KShlKSYmdGhpcy5hdHRycy5vbkNoYW5nZUlucHV0JiZ0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQodC5sb2NhbGUoImVuIikuZm9ybWF0KCJZWVlZLU1NLUREIEhIOm1tWiIpKSx0aGlzLmF0dHJzLm9uQ2hhbmdlJiZ0aGlzLmF0dHJzLm9uQ2hhbmdlKGUpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciIsY2xhc3NOYW1lczoiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3ItaGVhZGVyIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3Itcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1yb3ciLGNsYXNzTmFtZXM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1yb3ciXX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvbWl4aW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci91dGlscyJdLGZ1bmN0aW9uKGUsbixpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X2NvbXB1dGVJY29uc0ZvclZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3VwZGF0ZUF0KGUpLmljb247cmV0dXJuIHQ/dC5zcGxpdCgiLCIpOltdfSxfY29tcHV0ZURhdGV0aW1lRm9yVmFsdWU6ZnVuY3Rpb24oZSl7aWYoKDAscy5pc05vbmUpKGUpKXJldHVybiBudWxsO3ZhciB0PXRoaXMuX3VwZGF0ZUF0KGUpLnRpbWU7aWYodCl7dmFyIG49KDAsaS50aW1lZnJhbWVEZXRhaWxzKShlKTtpZihuLmRpc3BsYXlXaGVufHwodD1udWxsKSx0JiZuLmZvcm1hdClyZXR1cm4gdC5mb3JtYXQobi5mb3JtYXQpfXJldHVybiB0fSxfdXBkYXRlQXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAsaS50aW1lZnJhbWVEZXRhaWxzKShlKTtyZXR1cm4gdD97dGltZTp0LndoZW4obW9tZW50KCksdGhpcy5zdGF0dXNUeXBlIT09bi5DTE9TRV9TVEFUVVNfVFlQRT84OjE4KSxpY29uOnQuaWNvbn06e3RpbWU6bW9tZW50KCl9fX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZ3JvdXAtZHJvcGRvd24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImdyb3VwLWRyb3Bkb3duIl0sY2xhc3NOYW1lczpbImdyb3VwLWRyb3Bkb3duIl0sY29udGVudDooMCx0LnJlYWRzKSgiZ3JvdXBzV2l0aFNob3J0Y3V0IiksdGFnTmFtZToibGkiLHZhbHVlUHJvcGVydHk6bnVsbCxuYW1lUHJvcGVydHk6bnVsbCxoYXNNYW55R3JvdXBzOigwLHQuZ3RlKSgiY29udGVudC5sZW5ndGgiLDEwKSxlbmFibGVHcm91cERpcmVjdG9yeTooMCxvLnNldHRpbmcpKCJlbmFibGVfZ3JvdXBfZGlyZWN0b3J5Iiksc2VsZWN0S2l0T3B0aW9uczp7Y2FyZXREb3duSWNvbjoiY2FyZXQtcmlnaHQiLGNhcmV0VXBJY29uOiJjYXJldC1kb3duIixmaWx0ZXJhYmxlOiJoYXNNYW55R3JvdXBzIn0sZ3JvdXBzV2l0aFNob3J0Y3V0OigwLHMuY29tcHV0ZWQpKCJncm91cHMuW10iLGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuKHRoaXMuZW5hYmxlR3JvdXBEaXJlY3Rvcnl8fHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpKSYmZS5wdXNoKEkxOG4udCgiZ3JvdXBzLmluZGV4LmFsbCIpLnRvTG93ZXJDYXNlKCkpLGUuY29uY2F0KHRoaXMuZ3JvdXBzKX0pLGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpeyh0aGlzLmdyb3Vwc3x8W10pLmluY2x1ZGVzKGUpP2kuZGVmYXVsdC5yb3V0ZVRvVXJsKCIvZy8iK2UpOmkuZGVmYXVsdC5yb3V0ZVRvVXJsKCIvZyIpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2dyb3VwLW1lbWJlcnMtZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPXtjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVycy1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e2ljb246ImJhcnMiLHNob3dGdWxsVGl0bGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT1be2lkOiJzaG93QWRkTWVtYmVyc01vZGFsIixuYW1lOkkxOG4udCgiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIiksaWNvbjoidXNlci1wbHVzIn1dO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmFkbWluJiZlLnB1c2goe2lkOiJzaG93QnVsa0FkZE1vZGFsIixuYW1lOkkxOG4udCgiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLnRpdGxlIiksaWNvbjoidXNlcnMifSksZX0pLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMmJnRoaXMuYXR0cnNbZV0mJnRoaXMuYXR0cnNbZV0oKX19LHM9aSxvPSJvbkNoYW5nZSIscj1bbi5hY3Rpb25dLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLCJvbkNoYW5nZSIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ncm91cC1ub3RpZmljYXRpb25zLWJ1dHRvbiIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImdyb3VwLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbImdyb3VwLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sc2VsZWN0S2l0T3B0aW9uczp7aTE4blByZWZpeDoiaTE4blByZWZpeCJ9LGkxOG5QcmVmaXg6Imdyb3Vwcy5ub3RpZmljYXRpb25zIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvaWNvbi1waWNrZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJpY29uLXBpY2tlciJdLGNsYXNzTmFtZXM6WyJpY29uLXBpY2tlciJdLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2FjaGVkSWNvbnNMaXN0PW51bGwsImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudCYmKERpc2NvdXJzZS5kaXNhYmxlTWlzc2luZ0ljb25XYXJuaW5nPSEwKX0sY29udGVudDooMCxuLmNvbXB1dGVkKSgidmFsdWUuW10iLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLm1hcCh0aGlzLl9wcm9jZXNzSWNvbil9KSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOiIiO3JldHVybiIiPT09biYmdGhpcy5fY2FjaGVkSWNvbnNMaXN0JiZ0aGlzLl9jYWNoZWRJY29uc0xpc3QubGVuZ3RoP3RoaXMuX2NhY2hlZEljb25zTGlzdDooMCxpLmFqYXgpKCIvc3ZnLXNwcml0ZS9waWNrZXItc2VhcmNoIix7ZGF0YTp7ZmlsdGVyOm59fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZT1lLm1hcCh0Ll9wcm9jZXNzSWNvbiksIiI9PT1uJiYodC5fY2FjaGVkSWNvbnNMaXN0PWUpLGV9KX0sX3Byb2Nlc3NJY29uOmZ1bmN0aW9uKGUpe3ZhciB0PSJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6cihlKSk/ZS5pZDplLG49KDAsby5jb252ZXJ0SWNvbkNsYXNzKSh0KSxpPSIjc3ZnLXNwcml0ZXMiLHM9ImFqYXgtaWNvbi1ob2xkZXIiO3JldHVybiJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6cihlKSkmJigwPT09JChpKyIgLiIrcykubGVuZ3RoJiYkKGkpLmFwcGVuZCgnPGRpdiBjbGFzcz0iJytzKyJcIiBzdHlsZT0nZGlzcGxheTogbm9uZTsnPjwvZGl2PiIpLCQoaSsiIHN5bWJvbCMiK24pLmxlbmd0aHx8JChpKyIgLiIrcykuYXBwZW5kKCI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+IitlLnN5bWJvbCsiPC9zdmc+IikpLHtpZDp0LG5hbWU6dCxpY29uOm59fSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXskKCIjc3ZnLXNwcml0ZXMgLmFqYXgtaWNvbi1ob2xkZXIiKS5yZW1vdmUoKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2FjaGVkSWNvbnNMaXN0PW51bGwsImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudCYmZGVsZXRlIERpc2NvdXJzZS5kaXNhYmxlTWlzc2luZ0ljb25XYXJuaW5nfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlLHQpezE9PT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLm1heGltdW0mJihlPWUubGVuZ3RoP2VbMF06bnVsbCx0PXQubGVuZ3RoP3RbMF06bnVsbCksdGhpcy5hdHRycy5vbkNoYW5nZSYmdGhpcy5hdHRycy5vbkNoYW5nZShlLHQpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2xpc3Qtc2V0dGluZyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsibGlzdC1zZXR0aW5nIl0sY2xhc3NOYW1lczpbImxpc3Qtc2V0dGluZyJdLGNob2ljZXM6bnVsbCxuYW1lUHJvcGVydHk6bnVsbCx2YWx1ZVByb3BlcnR5Om51bGwsY29udGVudDooMCxzLnJlYWRPbmx5KSgiY2hvaWNlcyIpLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsc2VsZWN0ZWROYW1lQ29tcG9uZW50OiJzZWxlY3RlZE5hbWVDb21wb25lbnQifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oZSl7aWYoZT09PW4uTUFJTl9DT0xMRUNUSU9OJiZ0aGlzLnNldHRpbmdOYW1lJiYtMTx0aGlzLnNldHRpbmdOYW1lLmluZGV4T2YoImNvbG9yIikpcmV0dXJuImNyZWF0ZS1jb2xvci1yb3cifSxzZWxlY3RlZE5hbWVDb21wb25lbnQ6KDAsaS5jb21wdXRlZCkoInNldHRpbmdOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdOYW1lJiYtMTx0aGlzLnNldHRpbmdOYW1lLmluZGV4T2YoImNvbG9yIik/InNlbGVjdGVkLWNvbG9yIjoic2VsZWN0ZWQtbmFtZSJ9KSxkZXNlbGVjdDpmdW5jdGlvbihlKXt0aGlzLm9uQ2hhbmdlQ2hvaWNlcyYmdGhpcy5vbkNoYW5nZUNob2ljZXMoW10uY29uY2F0KHIobmV3IFNldChbZV0uY29uY2F0KHIoKDAsby5tYWtlQXJyYXkpKHRoaXMuY2hvaWNlcykpKSkpKSksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbWluaS10YWctY2hvb3NlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9jb21iby1ib3giLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQiXSxmdW5jdGlvbihlLHQsbixpLHIscyxvLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHU9Ik1JTklfVEFHX0NIT09TRVJfU0VMRUNURURfVEFHUyI7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtoZWFkZXJDb21wb25lbnQ6Im1pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiLHBsdWdpbkFwaUlkZW50aWZpZXJzOlsibWluaS10YWctY2hvb3NlciJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2VsZWN0S2l0Lm9wdGlvbnMuY2F0ZWdvcnlJZDpjYXRlZ29yeS1pZCJdLGNsYXNzTmFtZXM6WyJtaW5pLXRhZy1jaG9vc2VyIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJub1RhZ3MiXSxub1RhZ3M6KDAsdC5lbXB0eSkoInZhbHVlIiksbWF4VGFnU2VhcmNoUmVzdWx0czooMCxvLnNldHRpbmcpKCJtYXhfdGFnX3NlYXJjaF9yZXN1bHRzIiksbWF4VGFnc1BlclRvcGljOigwLG8uc2V0dGluZykoIm1heF90YWdzX3Blcl90b3BpYyIpLGhpZ2hsaWdodGVkVGFnOm51bGwsc2luZ2xlU2VsZWN0OiExLGNvbGxlY3Rpb25zOigwLHMuY29tcHV0ZWQpKCJtYWluQ29sbGVjdGlvbi5bXSIsImVycm9yc0NvbGxlY3Rpb24uW10iLCJoaWdobGlnaHRlZFRhZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksc2VsZWN0S2l0T3B0aW9uczp7ZnVsbFdpZHRoT25Nb2JpbGU6ITAsZmlsdGVyYWJsZTohMCxjYXJldERvd25JY29uOiJjYXJldEljb24iLGNhcmV0VXBJY29uOiJjYXJldEljb24iLHRlcm1NYXRjaGVzRm9yYmlkZGVuOiExLGNhdGVnb3J5SWQ6bnVsbCxldmVyeVRhZzohMSxub25lOiJ0YWdnaW5nLmNob29zZV9mb3JfdG9waWMiLGNsb3NlT25DaGFuZ2U6ITEsbWF4aW11bToibWF4aW11bVNlbGVjdGVkVGFncyIsYXV0b0luc2VydE5vbmVJdGVtOiExfSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSh0KT09PXRoaXMuc2VsZWN0S2l0LmZpbHRlcj8ic2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyI6InRhZy1yb3cifSxtb2RpZnlDb21wb25lbnRGb3JDb2xsZWN0aW9uOmZ1bmN0aW9uKGUpe2lmKGU9PT11KXJldHVybiJtaW5pLXRhZy1jaG9vc2VyL3NlbGVjdGVkLWNvbGxlY3Rpb24ifSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09dSlyZXR1cm57c2VsZWN0ZWRUYWdzOnRoaXMudmFsdWUsaGlnaGxpZ2h0ZWRUYWc6dGhpcy5oaWdobGlnaHRlZFRhZ319LGFsbG93QW55VGFnOigwLHQub3IpKCJhbGxvd0NyZWF0ZSIsInNpdGUuY2FuX2NyZWF0ZV90YWciKSxtYXhpbXVtU2VsZWN0ZWRUYWdzOigwLHMuY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMub3B0aW9ucy5saW1pdHx8dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtfHx0aGlzLm1heFRhZ3NQZXJUb3BpYywxMCl9KSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaW5zZXJ0QWZ0ZXJDb2xsZWN0aW9uKGEuRVJST1JTX0NPTExFQ1RJT04sdSl9LGNhcmV0SWNvbjooMCxzLmNvbXB1dGVkKSgidmFsdWUuW10iLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtO3JldHVybiBlJiYoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubGVuZ3RoPj1wYXJzZUludChlLDEwKT9udWxsOiJwbHVzIn0pLG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdCxuLGk9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5taW5pbXVtO3JldHVybiBpJiYoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubGVuZ3RoPHBhcnNlSW50KGksMTApPyh0PXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubWluaW11bUxhYmVsfHwic2VsZWN0X2tpdC5taW5fY29udGVudF9ub3RfcmVhY2hlZCIsbj1JMThuLnQodCx7Y291bnQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5taW5pbXVtfSksZS50aXRsZT1lLm5hbWU9ZS5sYWJlbD1uKTooZS5uYW1lPWUudmFsdWU9KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmpvaW4oIiwiKSxlLnRpdGxlPWUubGFiZWw9KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmpvaW4oIiwgIiksMzI8ZS5sYWJlbC5sZW5ndGgmJihlLmxhYmVsPWUubGFiZWwuc2xpY2UoMCwzMikrIi4uLiIpKSxlfSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9e3E6ZXx8IiIsbGltaXQ6dGhpcy5tYXhUYWdTZWFyY2hSZXN1bHRzLGNhdGVnb3J5SWQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5jYXRlZ29yeUlkfTtyZXR1cm4gdGhpcy52YWx1ZSYmKHQuc2VsZWN0ZWRfdGFncz10aGlzLnZhbHVlLnNsaWNlKDAsMTAwKSksdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ldmVyeVRhZ3x8KHQuZmlsdGVyRm9ySW5wdXQ9ITApLHRoaXMuc2VhcmNoVGFncygiL3RhZ3MvZmlsdGVyL3NlYXJjaCIsdCx0aGlzLl90cmFuc2Zvcm1Kc29uKX0sX3RyYW5zZm9ybUpzb246ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnJlc3VsdHM7cmV0dXJuIHQuc2V0UHJvcGVydGllcyh7dGVybU1hdGNoZXNGb3JiaWRkZW46ISFlLmZvcmJpZGRlbix0ZXJtTWF0Y2hFcnJvck1lc3NhZ2U6ZS5mb3JiaWRkZW5fbWVzc2FnZX0pLHQuZ2V0KCJzaXRlU2V0dGluZ3MudGFnc19zb3J0X2FscGhhYmV0aWNhbGx5IikmJihuPW4uc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLnRleHQubG9jYWxlQ29tcGFyZSh0LnRleHQpfSkpLG49bi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISgwLHIubWFrZUFycmF5KSh0LnRhZ3MpLmluY2x1ZGVzKGUuaWQpfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLnRleHQsbmFtZTplLnRleHQsY291bnQ6ZS5jb3VudH19KX0sc2VsZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMuX3Jlc2V0KCksdGhpcy52YWxpZGF0ZVNlbGVjdChlKSYmKHQ9W10uY29uY2F0KGwobmV3IFNldCgoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuY29uY2F0KGUpKSkpLHRoaXMuc2VsZWN0S2l0LmNoYW5nZSh0LHQpKX0sZGVzZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5fcmVzZXQoKTt2YXIgdD1bXS5jb25jYXQobChuZXcgU2V0KCgwLHIubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5yZW1vdmVPYmplY3QoZSkpKSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHQsdCl9LF9yZXNldDpmdW5jdGlvbigpe3RoaXMuY2xlYXJFcnJvcnMoKSx0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG51bGwpfSxfb25LZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG89KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpO3JldHVybiA4PT09ZS5rZXlDb2RlP3RoaXMuX29uQmFja3NwYWNlKHRoaXMudmFsdWUsdGhpcy5oaWdobGlnaHRlZFRhZyk6Mzc9PT1lLmtleUNvZGU/dGhpcy5oaWdobGlnaHRlZFRhZz8odD1vLmluZGV4T2YodGhpcy5oaWdobGlnaHRlZFRhZyksbj1vW3QtMV0/b1t0LTFdOm8ubGFzdE9iamVjdCx0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG4pKTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG8ubGFzdE9iamVjdCk6Mzk9PT1lLmtleUNvZGU/dGhpcy5oaWdobGlnaHRlZFRhZz8oaT1vLmluZGV4T2YodGhpcy5oaWdobGlnaHRlZFRhZykscz1vW2krMV0/b1tpKzFdOm8uZmlyc3RPYmplY3QsdGhpcy5zZXQoImhpZ2hsaWdodGVkVGFnIixzKSk6dGhpcy5zZXQoImhpZ2hsaWdodGVkVGFnIixvLmZpcnN0T2JqZWN0KTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG51bGwpLCEwfSxfb25CYWNrc3BhY2U6ZnVuY3Rpb24oZSx0KXtlJiZlLmxlbmd0aCYmKHQ/dGhpcy5kZXNlbGVjdCh0KTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLGUubGFzdE9iamVjdCkpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9taW5pLXRhZy1jaG9vc2VyLWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiLGNsYXNzTmFtZXM6WyJtaW5pLXRhZy1jaG9vc2VyLWhlYWRlciJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9taW5pLXRhZy1jaG9vc2VyL3NlbGVjdGVkLWNvbGxlY3Rpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9zZWxlY3RlZC1jb2xsZWN0aW9uIixjbGFzc05hbWVzOlsibWluaS10YWctY2hvb3Nlci1zZWxlY3RlZC1jb2xsZWN0aW9uIiwic2VsZWN0ZWQtdGFncyJdLGlzVmlzaWJsZTooMCxpLm5vdEVtcHR5KSgic2VsZWN0ZWRUYWdzLltdIiksc2VsZWN0ZWRUYWdzOigwLGkucmVhZHMpKCJjb2xsZWN0aW9uLmNvbnRlbnQuc2VsZWN0ZWRUYWdzLltdIiksaGlnaGxpZ2h0ZWRUYWc6KDAsaS5yZWFkcykoImNvbGxlY3Rpb24uY29udGVudC5oaWdobGlnaHRlZFRhZyIpLHRhZ3M6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkVGFncy5bXSIsImhpZ2hsaWdodGVkVGFnIiwic2VsZWN0S2l0LmZpbHRlciIsZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCF0aGlzLnNlbGVjdGVkVGFncylyZXR1cm5bXTt2YXIgZT10aGlzLnNlbGVjdGVkVGFncztyZXR1cm4gMjA8PWUubGVuZ3RoJiZ0aGlzLnNlbGVjdEtpdC5maWx0ZXI/ZT1lLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMDw9ZS5pbmRleE9mKG4uc2VsZWN0S2l0LmZpbHRlcil9KToyMDw9ZS5sZW5ndGgmJihlPWUuc2xpY2UoMCwyMCkpLGU9ZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9WyJzZWxlY3RlZC10YWciXTtyZXR1cm4gZT09PW4uaGlnaGxpZ2h0ZWRUYWcmJnQucHVzaCgiaXMtaGlnaGxpZ2h0ZWQiKSx7dmFsdWU6ZSxjbGFzc05hbWVzOnQuam9pbigiICIpfX0pfSksYWN0aW9uczp7ZGVzZWxlY3RUYWc6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LmRlc2VsZWN0KGUpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJtdWx0aS1zZWxlY3QiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsY2xhc3NOYW1lczpbIm11bHRpLXNlbGVjdCJdLG11bHRpU2VsZWN0OiEwLHNlbGVjdEtpdE9wdGlvbnM6e25vbmU6InNlbGVjdF9raXQuZGVmYXVsdF9oZWFkZXJfdGV4dCIsY2xlYXJhYmxlOiEwLGZpbHRlcmFibGU6ITAsZmlsdGVySWNvbjpudWxsLGNsZWFyT25DbGljazohMCxjbG9zZU9uQ2hhbmdlOiExLGF1dG9JbnNlcnROb25lSXRlbTohMSxoZWFkZXJDb21wb25lbnQ6Im11bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtaGVhZGVyIixmaWx0ZXJDb21wb25lbnQ6Im11bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZmlsdGVyIn0sc2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3N1cGVyKGUpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hKDAscy5tYWtlQXJyYXkpKHQuc2VsZWN0ZWRDb250ZW50KS5pbmNsdWRlcyhlKX0pfSxkZXNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3RoaXMuY2xlYXJFcnJvcnMoKTt2YXIgZT10aGlzLnNlbGVjdGVkQ29udGVudC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZ2V0VmFsdWUodCkhPT1uLmdldFZhbHVlKGUpfSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHRoaXMudmFsdWVQcm9wZXJ0eT9lLm1hcEJ5KHRoaXMudmFsdWVQcm9wZXJ0eSk6ZSxlKX0sc2VsZWN0OmZ1bmN0aW9uKGUsdCl7aWYoKDAsby5pc1ByZXNlbnQpKGUpKXtpZih0aGlzLmZpbmRWYWx1ZSh0aGlzLm1haW5Db2xsZWN0aW9uLHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHk/dDplKSYmIXRoaXMudmFsaWRhdGVTZWxlY3QodCkpcmV0dXJuO3ZhciBuPSgwLHMubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5jb25jYXQoKDAscy5tYWtlQXJyYXkpKGUpKSxpPSgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0KSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKG4saS5sZW5ndGg/aTooMCxzLm1ha2VBcnJheSkodGhpcy5kZWZhdWx0SXRlbShlLGUpKSl9ZWxzZXtpZighdGhpcy52YWxpZGF0ZVNlbGVjdCh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCkpcmV0dXJuO3RoaXMuc2VsZWN0S2l0LmNoYW5nZSgoMCxzLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0aGlzLmdldFZhbHVlKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSkpLCgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCkpKX19LHNlbGVjdGVkQ29udGVudDooMCxpLmNvbXB1dGVkKSgidmFsdWUuW10iLCJjb250ZW50LltdIixmdW5jdGlvbigpe3ZhciBuPXRoaXMsZT0oMCxzLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLnNlbGVjdEtpdC5vcHRpb25zLmNhc3RJbnRlZ2VyJiZuLl9pc051bWVyaWMoZSk/TnVtYmVyKGUpOmV9KTtpZihlLmxlbmd0aCl7dmFyIGk9W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDtuLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5Pyh0PSgwLHMubWFrZUFycmF5KShuLmNvbnRlbnQpLmZpbmRCeShuLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5LGUpKSYmaS5wdXNoKHQpOigwLHMubWFrZUFycmF5KShuLmNvbnRlbnQpLmluY2x1ZGVzKGUpJiZpLnB1c2goZSl9KSx0aGlzLnNlbGVjdEtpdC5tb2RpZnlTZWxlY3Rpb24oaXx8W10pfXJldHVybiB0aGlzLnNlbGVjdEtpdC5ub25lSXRlbX0pLF9vbktleWRvd246ZnVuY3Rpb24oZSl7dmFyIHQsbixpO3JldHVybiA4PT09ZS5rZXlDb2RlPyhlLnN0b3BQcm9wYWdhdGlvbigpLCh0PXRoaXMuZ2V0RmlsdGVySW5wdXQoKSkmJjE8PSF0LnZhbHVlLmxlbmd0aCYmKCEobj10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlbGVjdC1raXQtaGVhZGVyIC5jaG9pY2Uuc2VsZWN0LWtpdC1zZWxlY3RlZC1uYW1lIikpLmxlbmd0aHx8KGk9bltuLmxlbmd0aC0xXSkmJihpLmNsYXNzTGlzdC5jb250YWlucygiaXMtaGlnaGxpZ2h0ZWQiKT90aGlzLmRlc2VsZWN0KHRoaXMuc2VsZWN0ZWRDb250ZW50Lmxhc3RPYmplY3QpOmkuY2xhc3NMaXN0LmFkZCgiaXMtaGlnaGxpZ2h0ZWQiKSkpKTp0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlbGVjdC1raXQtaGVhZGVyIC5jaG9pY2Uuc2VsZWN0LWtpdC1zZWxlY3RlZC1uYW1lIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1oaWdobGlnaHRlZCIpfSksITB9LGhhbmRsZURlcHJlY2F0aW9uczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9kZXByZWNhdGVWYWx1ZXMoKX0sX2RlcHJlY2F0ZVZhbHVlczpmdW5jdGlvbigpe3RoaXMudmFsdWVzJiYhdGhpcy52YWx1ZSYmKCgwLHQuZGVmYXVsdCkoIlRoZSBgdmFsdWVzYCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGZvciBtdWx0aS1zZWxlY3QuIFVzZSBgdmFsdWVgIGluc3RlYWQiLHtzaW5jZToidjIuNC4wIn0pLHRoaXMuc2V0KCJ2YWx1ZSIsdGhpcy52YWx1ZXMpKX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZmlsdGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9RW1iZXIuaXNFbXB0eTtlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlciIsInNlbGVjdEtpdC5oYXNTZWxlY3Rpb24iKSxvPXM9e2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciIsY2xhc3NOYW1lczpbIm11bHRpLXNlbGVjdC1maWx0ZXIiXSxjb21wdXRlZFBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fGQoZSk/IiI6STE4bi50KGUpfX0scj0iY29tcHV0ZWRQbGFjZWhvbGRlciIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNvbXB1dGVkUGxhY2Vob2xkZXIiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsibXVsdGktc2VsZWN0LWhlYWRlciJdLGxheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1oZWFkZXIiLHNlbGVjdGVkTmFtZXM6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkQ29udGVudCIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5hbWUoZSl9KX0pLHNlbGVjdGVkVmFsdWU6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkQ29udGVudCIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5hbWUoZSkhPT10LmdldE5hbWUodC5zZWxlY3RLaXQubm9uZUl0ZW0pP3QuZ2V0VmFsdWUoZSk6bnVsbH0pLmZpbHRlcihCb29sZWFuKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3RlZC1uYW1lIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsic2VsZWN0ZWQtY2F0ZWdvcnkiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdC9zZWxlY3RlZC1jYXRlZ29yeSIsYmFkZ2U6KDAsaS5jb21wdXRlZCkoIml0ZW0iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5jYXRlZ29yeUJhZGdlSFRNTCkodGhpcy5pdGVtLHthbGxvd1VuY2F0ZWdvcml6ZWQ6ITAsbGluazohMX0pLmh0bWxTYWZlKCl9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L3NlbGVjdGVkLWNvbG9yIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgibmFtZSIpLG89cz17Y2xhc3NOYW1lczpbInNlbGVjdC1raXQtc2VsZWN0ZWQtY29sb3IiXSxmb290ZXJDb250ZW50OmZ1bmN0aW9uKGUpe3JldHVybignPHNwYW4gY2xhc3M9ImNvbG9yLXByZXZpZXciIHN0eWxlPSJiYWNrZ3JvdW5kOiMnK2UrJyI+PC9zcGFuPicpLmh0bWxTYWZlKCl9fSxyPSJmb290ZXJDb250ZW50IixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiZm9vdGVyQ29udGVudCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ub25lLWNhdGVnb3J5LXJvdyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3J5LXJvdyIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxyPW89e2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93IixjbGFzc05hbWVzOiJub25lIGNhdGVnb3J5LXJvdyIsYmFkZ2VGb3JDYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmNhdGVnb3J5QmFkZ2VIVE1MKShlLHtsaW5rOnRoaXMuY2F0ZWdvcnlMaW5rLGFsbG93VW5jYXRlZ29yaXplZDohMCxoaWRlUGFyZW50OiEwfSkuaHRtbFNhZmUoKX19LGE9ImJhZGdlRm9yQ2F0ZWdvcnkiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJiYWRnZUZvckNhdGVnb3J5IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsImRpc2NvdXJzZS9saWIvbm90aWZpY2F0aW9uLWxldmVscyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY29udGVudDpuLmFsbExldmVscyxuYW1lUHJvcGVydHk6ImtleSIsc2VsZWN0S2l0T3B0aW9uczp7YXV0b0ZpbHRlcmFibGU6ITEsZmlsdGVyYWJsZTohMSxpMThuUHJlZml4OiIiLGkxOG5Qb3N0Zml4OiIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4ibm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24tcm93In0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe2U9ZXx8e307dmFyIHQ9dGhpcy5zZWxlY3RLaXQub3B0aW9ucyxuPXQuaTE4blByZWZpeCxpPXQuaTE4blBvc3RmaXg7cmV0dXJuKDAscy5zZXRQcm9wZXJ0aWVzKShlLHtsYWJlbDpJMThuLnQobisiLiIrdGhpcy5idXR0b25Gb3JWYWx1ZS5rZXkraSsiLnRpdGxlIiksaWNvbjp0aGlzLmJ1dHRvbkZvclZhbHVlLmljb259KSxlfSxidXR0b25Gb3JWYWx1ZTooMCxzLmNvbXB1dGVkKSgidmFsdWUiLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5idXR0b25EZXRhaWxzKSh0aGlzLnZhbHVlKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ub3RpZmljYXRpb25zLWJ1dHRvbi9ub3RpZmljYXRpb25zLWJ1dHRvbi1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0Iiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3gvZHJvcGRvd24tc2VsZWN0LWJveC1yb3ciLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uLXJvdyJdLGkxOG5QcmVmaXg6KDAsdC5yZWFkT25seSkoInNlbGVjdEtpdC5vcHRpb25zLmkxOG5QcmVmaXgiKSxpMThuUG9zdGZpeDooMCx0LnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMuaTE4blBvc3RmaXgiKSxsYWJlbDooMCxuLmNvbXB1dGVkKSgiX3N0YXJ0IixmdW5jdGlvbigpe3JldHVybigwLHMuZXNjYXBlRXhwcmVzc2lvbikoSTE4bi50KHRoaXMuX3N0YXJ0KyIudGl0bGUiKSl9KSx0aXRsZTooMCx0LnJlYWRPbmx5KSgibGFiZWwiKSxpY29uczooMCxuLmNvbXB1dGVkKSgidGl0bGUiLCJpdGVtLmljb24iLGZ1bmN0aW9uKCl7cmV0dXJuWygwLHMuZXNjYXBlRXhwcmVzc2lvbikodGhpcy5pdGVtLmljb24pXX0pLGRlc2NyaXB0aW9uOigwLG4uY29tcHV0ZWQpKCJfc3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZSYmdGhpcy5zaXRlLm1vYmlsZVZpZXc/bnVsbDooMCxzLmVzY2FwZUV4cHJlc3Npb24pKEkxOG4udCh0aGlzLl9zdGFydCsiLmRlc2NyaXB0aW9uIikpfSksX3N0YXJ0OigwLG4uY29tcHV0ZWQpKCJpMThuUHJlZml4IiwiaTE4blBvc3RmaXgiLCJyb3dOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmkxOG5QcmVmaXgrIi4iK3RoaXMucm93TmFtZSt0aGlzLmkxOG5Qb3N0Zml4fSl9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3BlcmlvZC1jaG9vc2VyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3giXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInBlcmlvZC1jaG9vc2VyIl0sY29udGVudDooMCx0Lm9uZVdheSkoInNpdGUucGVyaW9kcyIpLHZhbHVlOigwLHQucmVhZE9ubHkpKCJwZXJpb2QiKSxpc1Zpc2libGU6KDAsdC5yZWFkT25seSkoInNob3dQZXJpb2RzIiksdmFsdWVQcm9wZXJ0eTpudWxsLG5hbWVQcm9wZXJ0eTpudWxsLG1vZGlmeUNvbXBvbmVudEZvclJvdzpmdW5jdGlvbigpe3JldHVybiJwZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3cifSxzZWxlY3RLaXRPcHRpb25zOntmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExLGZ1bGxEYXk6ImZ1bGxEYXkiLGhlYWRlckNvbXBvbmVudDoicGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItaGVhZGVyIn0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5hY3Rpb24/dGhpcy5hY3Rpb24oZSk6dGhpcy5hdHRycy5vbkNoYW5nZSYmdGhpcy5hdHRycy5vbkNoYW5nZShlKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLmRlZmF1bHQpKCJzZWxlY3RLaXQuaXNFeHBhbmRlZCIpLG89cz17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiLGNsYXNzTmFtZXM6WyJwZXJpb2QtY2hvb3Nlci1oZWFkZXIiXSxjYXJldEljb246ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImNhcmV0LXVwIjoiY2FyZXQtZG93biJ9fSxyPSJjYXJldEljb24iLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJjYXJldEljb24iKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgicm93TmFtZSIpLG89cz17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3ciLGNsYXNzTmFtZXM6WyJwZXJpb2QtY2hvb3Nlci1yb3ciXSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJmaWx0ZXJzLnRvcC4iKyhlfHwidGhpc193ZWVrIikpLnRpdGxlfX0scj0idGl0bGUiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ0aXRsZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsbi5kZWZhdWx0KSgidG9waWMucGlubmVkX2dsb2JhbGx5IiwicGlubmVkIiksbz0oMCxuLmRlZmF1bHQpKCJwaW5uZWQiLCJ0b3BpYy5kZWxldGVkIiwidG9waWMudW5waW5uZWQiKSxpKHI9e3BsdWdpbkFwaUlkZW50aWZpZXJzOlsicGlubmVkLWJ1dHRvbiJdLGRlc2NyaXB0aW9uS2V5OiJoZWxwIixjbGFzc05hbWVzOiJwaW5uZWQtYnV0dG9uIixjbGFzc05hbWVCaW5kaW5nczpbImlzSGlkZGVuIl0sbGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIixyZWFzb25UZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49InRvcGljX3N0YXR1c2VzLiIrKHQ/InBpbm5lZCIrKGU/Il9nbG9iYWxseSI6IiIpOiJ1bnBpbm5lZCIpKyIuaGVscCI7cmV0dXJuIEkxOG4udChuKX0saXNIaWRkZW46ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0fHwhZSYmIW59fSwicmVhc29uVGV4dCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwicmVhc29uVGV4dCIpLHIpLGkociwiaXNIaWRkZW4iLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImlzSGlkZGVuIikscikscikpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvcGlubmVkLW9wdGlvbnMiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxzLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9InVucGlubmVkIjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT17cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJwaW5uZWQtb3B0aW9ucyJdLGNsYXNzTmFtZXM6WyJwaW5uZWQtb3B0aW9ucyJdLG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldCgidG9waWMucGlubmVkX2dsb2JhbGx5Iiksbj10aGlzLnZhbHVlPyJwaW5uZWQiKyh0PyJfZ2xvYmFsbHkiOiIiKTpkLGk9STE4bi50KCJ0b3BpY19zdGF0dXNlcy4iK24rIi50aXRsZSIpO3JldHVybiBlLmxhYmVsPSgiPHNwYW4+IitpKyI8L3NwYW4+IisoMCxzLmljb25IVE1MKSgiY2FyZXQtZG93biIpKS5odG1sU2FmZSgpLGUudGl0bGU9aSxlLm5hbWU9bixlLmljb249InRodW1idGFjayIrKG49PWQ/IiB1bnBpbm5lZCI6IiIpLGV9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljLnBpbm5lZF9nbG9iYWxseT8iX2dsb2JhbGx5IjoiIjtyZXR1cm5be2lkOiJwaW5uZWQiLG5hbWU6STE4bi50KCJ0b3BpY19zdGF0dXNlcy5waW5uZWQiK2UrIi50aXRsZSIpLGRlc2NyaXB0aW9uOnRoaXMuc2l0ZS5tb2JpbGVWaWV3P251bGw6STE4bi50KCJ0b3BpY19zdGF0dXNlcy5waW5uZWQiK2UrIi5oZWxwIiksaWNvbjoidGh1bWJ0YWNrIn0se2lkOmQsbmFtZTpJMThuLnQoInRvcGljX3N0YXR1c2VzLnVucGlubmVkLnRpdGxlIiksaWNvbjoidGh1bWJ0YWNrIHVucGlubmVkIixkZXNjcmlwdGlvbjp0aGlzLnNpdGUubW9iaWxlVmlldz9udWxsOkkxOG4udCgidG9waWNfc3RhdHVzZXMudW5waW5uZWQuaGVscCIpfV19KSxvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO3JldHVybiBlPT09ZD90LmNsZWFyUGluKCk6dC5yZVBpbigpfX0sbz1pLHI9Im9uQ2hhbmdlIixhPVtuLmFjdGlvbl0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9uQ2hhbmdlIiksdT1pLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLGkpKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlYXJjaC1hZHZhbmNlZC1jYXRlZ29yeS1jaG9vc2VyIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktY2hvb3NlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciJdLGNsYXNzTmFtZXM6WyJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciJdLHNlbGVjdEtpdE9wdGlvbnM6e2FsbG93VW5jYXRlZ29yaXplZDohMCxjbGVhcmFibGU6ITAsbm9uZToiY2F0ZWdvcnkuYWxsIixkaXNwbGF5Q2F0ZWdvcnlEZXNjcmlwdGlvbjohMSxwZXJtaXNzaW9uVHlwZTpudWxsfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIiwic2VsZWN0LWtpdC9taXhpbnMvcGx1Z2luLWFwaSIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsInJzdnAiXSxmdW5jdGlvbihlLHUsdCxuLHIsaSxzLG8sYSxsLGMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5FUlJPUlNfQ09MTEVDVElPTj1lLk1BSU5fQ09MTEVDVElPTj12b2lkIDA7dmFyIGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHA9KGUuTUFJTl9DT0xMRUNUSU9OPSJNQUlOX0NPTExFQ1RJT04iLGUuRVJST1JTX0NPTExFQ1RJT049IkVSUk9SU19DT0xMRUNUSU9OIiksbT1PYmplY3QuZnJlZXplKHt9KSxmPW8uZGVmYXVsdC5jcmVhdGUoe21lcmdlZFByb3BlcnRpZXM6WyJzZWxlY3RLaXRPcHRpb25zIl0sc2VsZWN0S2l0T3B0aW9uczptfSk7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoZixzLmRlZmF1bHQsaS5kZWZhdWx0LHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInNlbGVjdC1raXQiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQiLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0Il0sY2xhc3NOYW1lQmluZGluZ3M6WyJzZWxlY3RLaXQuaXNMb2FkaW5nOmlzLWxvYWRpbmciLCJzZWxlY3RLaXQuaXNFeHBhbmRlZDppcy1leHBhbmRlZCIsInNlbGVjdEtpdC5pc0Rpc2FibGVkOmlzLWRpc2FibGVkIiwic2VsZWN0S2l0LmlzSGlkZGVuOmlzLWhpZGRlbiIsInNlbGVjdEtpdC5oYXNTZWxlY3Rpb246aGFzLXNlbGVjdGlvbiJdLHRhYmluZGV4OjAsY29udGVudDpudWxsLHZhbHVlOm51bGwsc2VsZWN0S2l0Om51bGwsbWFpbkNvbGxlY3Rpb246bnVsbCxlcnJvcnNDb2xsZWN0aW9uOm51bGwsb3B0aW9uczpudWxsLHZhbHVlUHJvcGVydHk6ImlkIixuYW1lUHJvcGVydHk6Im5hbWUiLHNpbmdsZVNlbGVjdDohMSxtdWx0aVNlbGVjdDohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3NlYXJjaFByb21pc2U9bnVsbCx0aGlzLnNldCgiZXJyb3JzQ29sbGVjdGlvbiIsW10pLHRoaXMuX2NvbGxlY3Rpb25zPVtwLCJNQUlOX0NPTExFQ1RJT04iXSx0aGlzLm9wdGlvbnN8fHRoaXMuc2V0KCJvcHRpb25zIix1LmRlZmF1bHQuY3JlYXRlKHt9KSksdGhpcy5oYW5kbGVEZXByZWNhdGlvbnMoKSx0aGlzLnNldCgic2VsZWN0S2l0Iix1LmRlZmF1bHQuY3JlYXRlKHt1bmlxdWVJRDpFbWJlci5ndWlkRm9yKHRoaXMpLHZhbHVlUHJvcGVydHk6dGhpcy52YWx1ZVByb3BlcnR5LG5hbWVQcm9wZXJ0eTp0aGlzLm5hbWVQcm9wZXJ0eSxvcHRpb25zOnUuZGVmYXVsdC5jcmVhdGUoKSxpc0xvYWRpbmc6ITEsaXNIaWRkZW46ITEsaXNFeHBhbmRlZDohMSxpc0ZpbHRlckV4cGFuZGVkOiExLGhhc1NlbGVjdGlvbjohMSxoYXNOb0NvbnRlbnQ6ITAsaGlnaGxpZ2h0ZWQ6bnVsbCxub25lSXRlbTpudWxsLG5ld0l0ZW06bnVsbCxmaWx0ZXI6bnVsbCxtb2RpZnlDb250ZW50OigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlDb250ZW50V3JhcHBlciksbW9kaWZ5U2VsZWN0aW9uOigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlTZWxlY3Rpb25XcmFwcGVyKSxtb2RpZnlDb21wb25lbnRGb3JSb3c6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX21vZGlmeUNvbXBvbmVudEZvclJvd1dyYXBwZXIpLG1vZGlmeUNvbnRlbnRGb3JDb2xsZWN0aW9uOigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbldyYXBwZXIpLG1vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb246KDAsbC5iaW5kKSh0aGlzLHRoaXMuX21vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb25XcmFwcGVyKSx0b2dnbGU6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX3RvZ2dsZSksY2xvc2U6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX2Nsb3NlKSxvcGVuOigwLGwuYmluZCkodGhpcyx0aGlzLl9vcGVuKSxoaWdobGlnaHROZXh0OigwLGwuYmluZCkodGhpcyx0aGlzLl9oaWdobGlnaHROZXh0KSxoaWdobGlnaHRQcmV2aW91czooMCxsLmJpbmQpKHRoaXMsdGhpcy5faGlnaGxpZ2h0UHJldmlvdXMpLGNoYW5nZTooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25DaGFuZ2VXcmFwcGVyKSxzZWxlY3Q6KDAsbC5iaW5kKSh0aGlzLHRoaXMuc2VsZWN0KSxkZXNlbGVjdDooMCxsLmJpbmQpKHRoaXMsdGhpcy5kZXNlbGVjdCksb25PcGVuOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbk9wZW5XcmFwcGVyKSxvbkNsb3NlOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbkNsb3NlV3JhcHBlciksb25JbnB1dDooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25JbnB1dCksb25DbGVhclNlbGVjdGlvbjooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25DbGVhclNlbGVjdGlvbiksb25Ib3ZlcjooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25Ib3Zlciksb25LZXlkb3duOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbktleWRvd25XcmFwcGVyKX0pKX0sX21vZGlmeUNvbXBvbmVudEZvclJvd1dyYXBwZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tb2RpZnlDb21wb25lbnRGb3JSb3coZSx0KXx8InNlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3cifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXt9LF9tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbldyYXBwZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbihlKTtpZighdClzd2l0Y2goZSl7Y2FzZSBwOnQ9dGhpcy5lcnJvcnNDb2xsZWN0aW9uO2JyZWFrO2RlZmF1bHQ6dD10aGlzLm1haW5Db2xsZWN0aW9ufXJldHVybiB0fSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbigpe30sX21vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb25XcmFwcGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbihlKTtpZighdClzd2l0Y2goZSl7Y2FzZSBwOnQ9InNlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iO2JyZWFrO2RlZmF1bHQ6dD0ic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWNvbGxlY3Rpb24ifXJldHVybiB0fSxtb2RpZnlDb21wb25lbnRGb3JDb2xsZWN0aW9uOmZ1bmN0aW9uKCl7fSxkaWRVcGRhdGVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgic2VsZWN0S2l0LmlzRGlzYWJsZWQiLHRoaXMuaXNEaXNhYmxlZHx8ITEpLHRoaXMuaGFuZGxlRGVwcmVjYXRpb25zKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5wb3BwZXImJih0aGlzLnBvcHBlci5kZXN0cm95KCksdGhpcy5wb3BwZXI9bnVsbCl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBpPXt9O09iamVjdC5rZXlzKHRoaXMuc2VsZWN0S2l0T3B0aW9ucykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLnNlbGVjdEtpdE9wdGlvbnNbZV07aWYoImNvbXBvbmVudEZvclJvdyIhPT1lJiYiY29udGVudEZvckNvbGxlY3Rpb24iIT09ZSYmImNvbXBvbmVudEZvckNvbGxlY3Rpb24iIT09ZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0LmluZGV4T2YoIi4iKTwwJiZ0IGluIG4paWYoImZ1bmN0aW9uIiE9dHlwZW9mKDAsdS5nZXQpKG4sdCkpcmV0dXJuIHZvaWQoaVtlXT0oMCx1LmdldCkobix0KSk7aVtlXT10fWVsc2UgaVtlXT0ic3RyaW5nIj09dHlwZW9mIHQ/ZnVuY3Rpb24oKXtyZXR1cm4gdH06KDAsbC5iaW5kKShuLHQpfSksdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zZXRQcm9wZXJ0aWVzKE9iamVjdC5hc3NpZ24oaSx0aGlzLm9wdGlvbnN8fHt9KSksdGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aGFzU2VsZWN0aW9uOiEoMCxhLmlzRW1wdHkpKHRoaXMudmFsdWUpLG5vbmVJdGVtOnRoaXMuX21vZGlmeU5vU2VsZWN0aW9uV3JhcHBlcigpLG5ld0l0ZW06bnVsbH0pLHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQmJih0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKHRoaXMuc2VsZWN0S2l0LmZpbHRlcikpLHRoaXMuY29tcHV0ZUNvbnRlbnQmJih0aGlzLl9kZXByZWNhdGVkKCJUaGUgYGNvbXB1dGVDb250ZW50KClgIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgcGFzcyBhIGBjb250ZW50YCBhdHRyaWJ1dGUgb3IgZGVmaW5lIGEgYGNvbnRlbnRgIGNvbXB1dGVkIHByb3BlcnR5IGluIHlvdXIgY29tcG9uZW50LiIpLHRoaXMuc2V0KCJjb250ZW50Iix0aGlzLmNvbXB1dGVDb250ZW50KCkpKX0sc2VsZWN0S2l0T3B0aW9uczp7c2hvd0Z1bGxUaXRsZTohMCxub25lOm51bGwsdHJhbnNsYXRlZE5vbmU6bnVsbCxmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiJhdXRvRmlsdGVyYWJsZSIsZmlsdGVySWNvbjoic2VhcmNoIixmaWx0ZXJQbGFjZWhvbGRlcjoiZmlsdGVyUGxhY2Vob2xkZXIiLHRyYW5zbGF0ZWRmaWx0ZXJQbGFjZWhvbGRlcjpudWxsLGljb246bnVsbCxpY29uczpudWxsLG1heGltdW06bnVsbCxtYXhpbXVtTGFiZWw6bnVsbCxtaW5pbXVtOm51bGwsbWluaW11bUxhYmVsOm51bGwsYXV0b0luc2VydE5vbmVJdGVtOiEwLGNsZWFyT25DbGljazohMSxjbG9zZU9uQ2hhbmdlOiEwLGxpbWl0TWF0Y2hlczpudWxsLHBsYWNlbWVudDoiYm90dG9tLXN0YXJ0IixmaWx0ZXJDb21wb25lbnQ6InNlbGVjdC1raXQvc2VsZWN0LWtpdC1maWx0ZXIiLHNlbGVjdGVkTmFtZUNvbXBvbmVudDoic2VsZWN0ZWQtbmFtZSIsY2FzdEludGVnZXI6ITF9LGF1dG9GaWx0ZXJhYmxlOigwLHUuY29tcHV0ZWQpKCJjb250ZW50LltdIiwic2VsZWN0S2l0LmZpbHRlciIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuZmlsdGVyJiZ0aGlzLm9wdGlvbnMuYXV0b0ZpbHRlcmFibGUmJjE1PHRoaXMuY29udGVudC5sZW5ndGh9KSxmaWx0ZXJQbGFjZWhvbGRlcjooMCx1LmNvbXB1dGVkKSgib3B0aW9ucy5hbGxvd0FueSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLmFsbG93QW55PyJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlcl93aXRoX2FueSI6InNlbGVjdF9raXQuZmlsdGVyX3BsYWNlaG9sZGVyIn0pLGNvbGxlY3Rpb25zOigwLHUuY29tcHV0ZWQpKCJzZWxlY3RlZENvbnRlbnQuW10iLCJtYWluQ29sbGVjdGlvbi5bXSIsImVycm9yc0NvbGxlY3Rpb24uW10iLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fY29sbGVjdGlvbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZGVudGlmaWVyOmUsY29udGVudDp0LnNlbGVjdEtpdC5tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbihlKX19KX0pLGNyZWF0ZUNvbnRlbnRGcm9tSW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHZhbGlkYXRlQ3JlYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jbGVhckVycm9ycygpLDA8ZS5sZW5ndGgmJnQmJiF0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRWYWx1ZShlKX0pLmluY2x1ZGVzKGUpJiYhKDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmluY2x1ZGVzKGUpfSx2YWxpZGF0ZVNlbGVjdDpmdW5jdGlvbigpe3RoaXMuY2xlYXJFcnJvcnMoKTt2YXIgZT0oMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSksdD10aGlzLnNlbGVjdEtpdC5vcHRpb25zLm1heGltdW07aWYodCYmZS5sZW5ndGg+PXQpe3ZhciBuPXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubWF4aW11bUxhYmVsfHwic2VsZWN0X2tpdC5tYXhfY29udGVudF9yZWFjaGVkIjtyZXR1cm4gdGhpcy5hZGRFcnJvcihJMThuLnQobix7Y291bnQ6dH0pKSwhMX1yZXR1cm4hMH0sYWRkRXJyb3I6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmVycm9yc0NvbGxlY3Rpb24ucHVzaE9iamVjdChlKSx0aGlzLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXtyZXR1cm4gdC5wb3BwZXImJnQucG9wcGVyLnVwZGF0ZSgpfSl9LGNsZWFyRXJyb3JzOmZ1bmN0aW9uKCl7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuc2V0KCJlcnJvcnNDb2xsZWN0aW9uIixbXSl9LHByZXBlbmRDb2xsZWN0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuX2NvbGxlY3Rpb25zLnVuc2hpZnQoZSl9LGFwcGVuZENvbGxlY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy5fY29sbGVjdGlvbnMucHVzaChlKX0saW5zZXJ0Q29sbGVjdGlvbkF0SW5kZXg6ZnVuY3Rpb24oZSx0KXt0aGlzLl9jb2xsZWN0aW9ucy5pbnNlcnRBdCh0LGUpfSxpbnNlcnRCZWZvcmVDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fY29sbGVjdGlvbnMuaW5kZXhPZihlKTt0aGlzLmluc2VydENvbGxlY3Rpb25BdEluZGV4KHQsbi0xKX0saW5zZXJ0QWZ0ZXJDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fY29sbGVjdGlvbnMuaW5kZXhPZihlKTt0aGlzLmluc2VydENvbGxlY3Rpb25BdEluZGV4KHQsbisxKX0sX29uSW5wdXQ6ZnVuY3Rpb24oZSl7dGhpcy5wb3BwZXImJnRoaXMucG9wcGVyLnVwZGF0ZSgpLHRoaXMuX3NlYXJjaFByb21pc2UmJigwLGwuY2FuY2VsKSh0aGlzLl9zZWFyY2hQcm9taXNlKSwoMCxzLmFwcGx5T25JbnB1dFBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KSYmKDAsbC5kZWJvdW5jZSkodGhpcyx0aGlzLl9kZWJvdW5jZWRJbnB1dCxlLnRhcmdldC52YWx1ZSwyMDApfSxfZGVib3VuY2VkSW5wdXQ6ZnVuY3Rpb24oZSl7dGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7ZmlsdGVyOmUsaXNMb2FkaW5nOiEwfSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKGUpfSxfb25DaGFuZ2VXcmFwcGVyOmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5zZWxlY3RLaXQuc2V0KCJmaWx0ZXIiLG51bGwpLG5ldyBjLlByb21pc2UoZnVuY3Rpb24oZSl7aS5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eXx8aS5zZWxlY3RLaXQubm9uZUl0ZW0hPT10fHwodD1udWxsLG49W10pLHQ9KDAsci5tYWtlQXJyYXkpKHQpLG49KDAsci5tYWtlQXJyYXkpKG4pLGkubXVsdGlTZWxlY3QmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09aS5uZXdJdGVtJiZlIT09aS5ub25lSXRlbSYmbnVsbCE9PWkuZ2V0VmFsdWUoZSl9KSwxPT09aS5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtJiYodD10LnNsaWNlKDAsMSksbj1uLnNsaWNlKDAsMSkpKSxpLnNpbmdsZVNlbGVjdCYmKHQ9KDAsYS5pc1ByZXNlbnQpKHQuZmlyc3RPYmplY3QpP3QuZmlyc3RPYmplY3Q6bnVsbCxuPSgwLGEuaXNQcmVzZW50KShuLmZpcnN0T2JqZWN0KT9uLmZpcnN0T2JqZWN0Om51bGwpLGkuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25DaGFuZ2UiLHQsbiksZShuKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLmlzRGVzdHJveWluZ3x8aS5pc0Rlc3Ryb3llZHx8KGkuc2VsZWN0S2l0Lm9wdGlvbnMuY2xvc2VPbkNoYW5nZSYmaS5zZWxlY3RLaXQuY2xvc2UoKSxpLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXtpLl9mb2N1c0ZpbHRlcigpLGkucG9wcGVyJiZpLnBvcHBlci51cGRhdGUoKX0pKX0pfSxfbW9kaWZ5Q29udGVudFdyYXBwZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhpcy5tb2RpZnlDb250ZW50KGUpLCgwLHMuYXBwbHlDb250ZW50UGx1Z2luQXBpQ2FsbGJhY2tzKSh0aGlzLnBsdWdpbkFwaUlkZW50aWZpZXJzLGUsdGhpcy5zZWxlY3RLaXQpfSxtb2RpZnlDb250ZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlfSxfbW9kaWZ5Tm9TZWxlY3Rpb25XcmFwcGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RpZnlOb1NlbGVjdGlvbigpO3JldHVybigwLHMuYXBwbHlNb2RpZnlOb1NlbGVjdGlvblBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KX0sbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtpZih0aGlzLnNlbGVjdEtpdC5vcHRpb25zLnRyYW5zbGF0ZWROb25lKXJldHVybiB0aGlzLmRlZmF1bHRJdGVtKG51bGwsdGhpcy5zZWxlY3RLaXQub3B0aW9ucy50cmFuc2xhdGVkTm9uZSk7dmFyIGU9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ub25lO2lmKCgwLGEuaXNOb25lKShlKSYmIXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnkpcmV0dXJuIG51bGw7aWYoKDAsYS5pc05vbmUpKGUpJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiYhdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZClyZXR1cm4gdGhpcy5kZWZhdWx0SXRlbShudWxsLEkxOG4udCgic2VsZWN0X2tpdC5maWx0ZXJfcGxhY2Vob2xkZXJfd2l0aF9hbnkiKSk7dmFyIHQ9dm9pZCAwO3N3aXRjaCh2b2lkIDA9PT1lPyJ1bmRlZmluZWQiOmQoZSkpe2Nhc2Uic3RyaW5nIjp0PXRoaXMuZGVmYXVsdEl0ZW0obnVsbCxJMThuLnQoZSkpO2JyZWFrO2RlZmF1bHQ6dD1lfXJldHVybiB0fSxfbW9kaWZ5U2VsZWN0aW9uV3JhcHBlcjpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFwcGx5SGVhZGVyQ29udGVudFBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KSx0aGlzLm1vZGlmeVNlbGVjdGlvbihlKX0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxfb25LZXlkb3duV3JhcHBlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fYm91bmRhcnlBY3Rpb25IYW5kbGVyKCJvbktleWRvd24iLGUpfSxfb25Ib3ZlcjpmdW5jdGlvbihlLHQpeygwLGwudGhyb3R0bGUpKHRoaXMsdGhpcy5faGlnaGxpZ2h0LHQsMjUsITApfSxfaGlnaGxpZ2h0OmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LnNldCgiaGlnaGxpZ2h0ZWQiLGUpfSxfYm91bmRhcnlBY3Rpb25IYW5kbGVyOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCl7Zm9yKHZhciB0LG49ITAsaT0iXyIrZSxzPSgwLHUuZ2V0KSh0aGlzLGkpLG89YXJndW1lbnRzLmxlbmd0aCxyPUFycmF5KDE8bz9vLTE6MCksYT0xO2E8bzthKyspclthLTFdPWFyZ3VtZW50c1thXTtzJiYobj1zLmNhbGwuYXBwbHkocyxbdGhpc10uY29uY2F0KHIpKSksdGhpcy5hY3Rpb25zJiYodD0oMCx1LmdldCkodGhpcy5hY3Rpb25zLGUpLG4mJnQmJihuPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpKSk7dmFyIGw9KDAsdS5nZXQpKHRoaXMsZSk7cmV0dXJuIG4mJmwmJihuPWwuY2FsbC5hcHBseShsLFt0aGlzXS5jb25jYXQocikpKSxufX0sZGVzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXJyb3JzKCksdGhpcy5zZWxlY3RLaXQuY2hhbmdlKG51bGwsbnVsbCl9LHNlYXJjaDpmdW5jdGlvbihuKXt2YXIgaT10aGlzLGU9dGhpcy5jb250ZW50fHxbXTtyZXR1cm4gbiYmKG49dGhpcy5fbm9ybWFsaXplKG4pLGU9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9aS5fbm9ybWFsaXplKGkuZ2V0TmFtZShlKSk7cmV0dXJuIHQmJi0xPHQuaW5kZXhPZihuKX0pKSxlfSxfc2VhcmNoV3JhcHBlcjpmdW5jdGlvbihpKXt2YXIgcz10aGlzO3RoaXMuY2xlYXJFcnJvcnMoKSx0aGlzLnNldFByb3BlcnRpZXMoe21haW5Db2xsZWN0aW9uOltdLCJzZWxlY3RLaXQuaXNMb2FkaW5nIjohMH0pLHRoaXMuX3NhZmVBZnRlclJlbmRlcihmdW5jdGlvbigpe3JldHVybiBzLnBvcHBlciYmcy5wb3BwZXIudXBkYXRlKCl9KTt2YXIgbz1bXTtyZXR1cm4gYy5Qcm9taXNlLnJlc29sdmUodGhpcy5zZWFyY2goaSkpLnRoZW4oZnVuY3Rpb24oZSl7bz1vLmNvbmNhdCgoMCxyLm1ha2VBcnJheSkoZSkpLG89cy5zZWxlY3RLaXQubW9kaWZ5Q29udGVudChvKS5maWx0ZXIoQm9vbGVhbiksbz1zLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5P28udW5pcUJ5KHMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHkpOm8udW5pcSgpLHMuc2VsZWN0S2l0Lm9wdGlvbnMubGltaXRNYXRjaGVzJiYobz1vLnNsaWNlKDAscy5zZWxlY3RLaXQub3B0aW9ucy5saW1pdE1hdGNoZXMpKTt2YXIgdD1zLnNlbGVjdEtpdC5ub25lSXRlbTtzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiZpJiZzLmdldE5hbWUodCkhPT1pJiYoaT1zLmNyZWF0ZUNvbnRlbnRGcm9tSW5wdXQoaSkscy52YWxpZGF0ZUNyZWF0ZShpLG8pJiYocy5zZWxlY3RLaXQuc2V0KCJuZXdJdGVtIixzLmRlZmF1bHRJdGVtKGksaSkpLG8udW5zaGlmdChzLnNlbGVjdEtpdC5uZXdJdGVtKSkpO3ZhciBuPSgwLGEuaXNFbXB0eSkobyk7cy5zZWxlY3RLaXQuaGFzU2VsZWN0aW9uJiZ0JiZzLnNlbGVjdEtpdC5vcHRpb25zLmF1dG9JbnNlcnROb25lSXRlbSYmby51bnNoaWZ0KHQpLHMuc2V0KCJtYWluQ29sbGVjdGlvbiIsbykscy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aGlnaGxpZ2h0ZWQ6cy5zaW5nbGVTZWxlY3QmJnMudmFsdWU/cy5pdGVtRm9yVmFsdWUocy52YWx1ZSxzLm1haW5Db2xsZWN0aW9uKTpzLm1haW5Db2xsZWN0aW9uLmZpcnN0T2JqZWN0LGlzTG9hZGluZzohMSxoYXNOb0NvbnRlbnQ6bn0pLHMuX3NhZmVBZnRlclJlbmRlcihmdW5jdGlvbigpe3MucG9wcGVyJiZzLnBvcHBlci51cGRhdGUoKSxzLl9mb2N1c0ZpbHRlcigpfSl9KX0sX3NhZmVBZnRlclJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzOygwLGwubmV4dCkoZnVuY3Rpb24oKXsoMCxsLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7IXQuZWxlbWVudHx8dC5pc0Rlc3Ryb3llZHx8dC5pc0Rlc3Ryb3lpbmd8fGUoKX0pfSl9LF9zY3JvbGxUb1JvdzpmdW5jdGlvbihlKXt2YXIgdCxuLGk9dGhpcy5nZXRWYWx1ZShlKSxzPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0LWtpdC1yb3dbZGF0YS12YWx1ZT0iJytpKyciXScpO3MmJihuPSh0PSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3Qta2l0LWNvbGxlY3Rpb24iKSkpLnBvc2l0aW9uKCkudG9wLHQuc2Nyb2xsVG9wKHQuc2Nyb2xsVG9wKCkrJChzKS5wb3NpdGlvbigpLnRvcC1uKSl9LF9oaWdobGlnaHROZXh0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tYWluQ29sbGVjdGlvbi5pbmRleE9mKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSx0PWUsdD1lPHRoaXMubWFpbkNvbGxlY3Rpb24ubGVuZ3RoLTE/ZSsxOjAsbj10aGlzLm1haW5Db2xsZWN0aW9uLm9iamVjdEF0KHQpO24mJih0aGlzLl9zY3JvbGxUb1JvdyhuKSx0aGlzLnNldCgic2VsZWN0S2l0LmhpZ2hsaWdodGVkIixuKSl9LF9oaWdobGlnaHRQcmV2aW91czpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWFpbkNvbGxlY3Rpb24uaW5kZXhPZih0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdD1lLG49dGhpcy5tYWluQ29sbGVjdGlvbi5sZW5ndGgsdD0wPGU/ZS0xOm4tMSxpPXRoaXMubWFpbkNvbGxlY3Rpb24ub2JqZWN0QXQodCk7aSYmKHRoaXMuX3Njcm9sbFRvUm93KGkpLHRoaXMuc2V0KCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLGkpKX0sc2VsZWN0OmZ1bmN0aW9uKGUsdCl7aWYoKDAsYS5pc1ByZXNlbnQpKGUpKXtpZih0aGlzLmZpbmRWYWx1ZSh0aGlzLm1haW5Db2xsZWN0aW9uLHQpJiYhdGhpcy52YWxpZGF0ZVNlbGVjdCh0KSlyZXR1cm47dGhpcy5zZWxlY3RLaXQuY2hhbmdlKGUsdHx8dGhpcy5kZWZhdWx0SXRlbShlLGUpKX1lbHNle2lmKCF0aGlzLnZhbGlkYXRlU2VsZWN0KHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSlyZXR1cm47dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKX19LF9vbkNsZWFyU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKG51bGwsbnVsbCl9LF9vbk9wZW5XcmFwcGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25PcGVuIik7cmV0dXJuKDAscy5hcHBseU9uT3BlblBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyx0aGlzLnNlbGVjdEtpdCxlKX0sX29uQ2xvc2VXcmFwcGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2ZvY3VzRmlsdGVyKHRoaXMubXVsdGlTZWxlY3QpLHRoaXMuc2V0KCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLG51bGwpO3RoaXMuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25DbG9zZSIpO3JldHVybigwLHMuYXBwbHlPbkNsb3NlUGx1Z2luQXBpQ2FsbGJhY2tzKSh0aGlzLnBsdWdpbkFwaUlkZW50aWZpZXJzLHRoaXMuc2VsZWN0S2l0LGUpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5fY2xvc2UoZSk6dGhpcy5fb3BlbihlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQmJih0aGlzLmNsZWFyRXJyb3JzKCksdGhpcy5zZWxlY3RLaXQub25DbG9zZShlKSYmdGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aXNFeHBhbmRlZDohMSxmaWx0ZXI6bnVsbH0pKX0sX29wZW46ZnVuY3Rpb24oZSl7dmFyIHQsbixpLG89dGhpczt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkfHwodGhpcy5jbGVhckVycm9ycygpLHRoaXMuc2VsZWN0S2l0Lm9uT3BlbihlKSYmKHRoaXMucG9wcGVyfHwodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1oZWFkZXJdIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5XSIpLHRoaXMuc2l0ZSYmIXRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZuLm9mZnNldFdpZHRoPHQub2Zmc2V0V2lkdGgmJihuLnN0eWxlLm1pbldpZHRoPXQub2Zmc2V0V2lkdGgrInB4IiksaT0kKHRoaXMuZWxlbWVudCkucGFyZW50cygiI2Rpc2NvdXJzZS1tb2RhbCIpLmxlbmd0aCx0aGlzLnNpdGUmJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmaSYmKG4uc3R5bGUud2lkdGg9dC5vZmZzZXRXaWR0aCsicHgiKSx0aGlzLnBvcHBlcj1Qb3BwZXIuY3JlYXRlUG9wcGVyKHQsbix7ZXZlbnRzRW5hYmxlZDohMSxzdHJhdGVneTppPyJmaXhlZCI6ImFic29sdXRlIixwbGFjZW1lbnQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5wbGFjZW1lbnQsbW9kaWZpZXJzOlt7bmFtZToicG9zaXRpb25XcmFwcGVyIixwaGFzZToiYWZ0ZXJXcml0ZSIsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdCxuLGkscz1vLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnNlbGVjdC1raXQtd3JhcHBlciIpO3MmJih0PW8uZWxlbWVudC5vZmZzZXRIZWlnaHQsKG49by5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3Qta2l0LWJvZHkiKSkmJih0Kz1uLm9mZnNldEhlaWdodCksKGk9ZS5zdGF0ZS5lbGVtZW50cy5wb3BwZXIpJiYidG9wLXN0YXJ0Ij09PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXBvcHBlci1wbGFjZW1lbnQiKT8oby5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImlzLXVuZGVyIiksby5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLWFib3ZlIikpOihvLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWJvdmUiKSxvLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtdW5kZXIiKSkscy5zdHlsZS53aWR0aD1vLmVsZW1lbnQub2Zmc2V0V2lkdGgrInB4IixzLnN0eWxlLmhlaWdodD10KyJweCIpfX1dfSkpLHRoaXMuc2VsZWN0S2l0LnNldFByb3BlcnRpZXMoe2lzRXhwYW5kZWQ6ITAsaXNGaWx0ZXJFeHBhbmRlZDp0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmZpbHRlcmFibGV8fHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnl9KSx0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKCksdGhpcy5fc2FmZUFmdGVyUmVuZGVyKGZ1bmN0aW9uKCl7by5fZm9jdXNGaWx0ZXIoKSxvLnBvcHBlciYmby5wb3BwZXIudXBkYXRlKCl9KSkpfSxfZm9jdXNGaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZSYmZTt0aGlzLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXt2YXIgZSx0PW4uZ2V0RmlsdGVySW5wdXQoKTshaSYmdD90LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk6KGU9bi5nZXRIZWFkZXIoKSkmJmUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pfSxnZXRGaWx0ZXJJbnB1dDpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1maWx0ZXJdIGlucHV0Iil9LGdldEhlYWRlcjpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1oZWFkZXJdIil9LGhhbmRsZURlcHJlY2F0aW9uczpmdW5jdGlvbigpe3RoaXMuX2RlcHJlY2F0ZVZhbHVlQXR0cmlidXRlKCksdGhpcy5fZGVwcmVjYXRlTXV0YXRpb25zKCksdGhpcy5fZGVwcmVjYXRlT3B0aW9ucygpfSxfZGVwcmVjYXRlZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1kaXNjb3Vyc2Utc2V0dXAiKTt0JiYiZGV2ZWxvcG1lbnQiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtZW52aXJvbm1lbnQiKSYmKDAsbi5kZWZhdWx0KShlLHtzaW5jZToidjIuNC4wIn0pfSxfZGVwcmVjYXRlVmFsdWVBdHRyaWJ1dGU6ZnVuY3Rpb24oKXshdGhpcy52YWx1ZUF0dHJpYnV0ZSYmbnVsbCE9PXRoaXMudmFsdWVBdHRyaWJ1dGV8fCh0aGlzLl9kZXByZWNhdGVkKCJUaGUgYHZhbHVlQXR0cmlidXRlYCBpcyBkZXByZWNhdGVkLiBVc2UgYHZhbHVlUHJvcGVydHlgIGluc3RlYWQiKSx0aGlzLnNldCgidmFsdWVQcm9wZXJ0eSIsdGhpcy52YWx1ZUF0dHJpYnV0ZSkpfSxfZGVwcmVjYXRlTXV0YXRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zfHx7fSx0aGlzLmF0dHJzPXRoaXMuYXR0cnN8fHt9LHRoaXMuYXR0cnMub25DaGFuZ2V8fHRoaXMuYWN0aW9ucy5vbkNoYW5nZXx8KHRoaXMuX2RlcHJlY2F0ZWQoIkltcGxpY2l0IG11dGF0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYG9uQ2hhbmdlYCBoYW5kbGVyIiksdGhpcy5hY3Rpb25zLm9uQ2hhbmdlPXRoaXMuYXR0cnMub25TZWxlY3R8fHRoaXMuYWN0aW9ucy5vblNlbGVjdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJ2YWx1ZSIsZSl9KX0sX2RlcHJlY2F0ZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9e2hlYWRlckljb246Imljb24iLG9uRXhwYW5kOiJvbk9wZW4iLG9uQ29sbGFwc2U6Im9uQ2xvc2UiLGFsbG93QW55OiJvcHRpb25zLmFsbG93QW55IixhbGxvd0NyZWF0ZToib3B0aW9ucy5hbGxvd0FueSIsZmlsdGVyYWJsZToib3B0aW9ucy5maWx0ZXJhYmxlIixleGNsdWRlQ2F0ZWdvcnlJZDoib3B0aW9ucy5leGNsdWRlQ2F0ZWdvcnlJZCIsc2NvcGVkQ2F0ZWdvcnlJZDoib3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkIixhbGxvd1VuY2F0ZWdvcml6ZWQ6Im9wdGlvbnMuYWxsb3dVbmNhdGVnb3JpemVkIixub25lOiJvcHRpb25zLm5vbmUiLHJvb3ROb25lOiJvcHRpb25zLm5vbmUiLGlzRGlzYWJsZWQ6Im9wdGlvbnMuaXNEaXNhYmxlZCIscm9vdE5vbmVMYWJlbDoib3B0aW9ucy5ub25lIixzaG93RnVsbFRpdGxlOiJvcHRpb25zLnNob3dGdWxsVGl0bGUiLHRpdGxlOiJvcHRpb25zLnRyYW5zbGF0ZWROb25lIixtYXhpbXVtOiJvcHRpb25zLm1heGltdW0iLG1pbmltdW06Im9wdGlvbnMubWluaW11bSIsaTE4blBvc3RmaXg6Im9wdGlvbnMuaTE4blBvc3RmaXgiLGkxOG5QcmVmaXg6Im9wdGlvbnMuaTE4blByZWZpeCIsY2FzdEludGVnZXI6Im9wdGlvbnMuY2FzdEludGVnZXIifTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZV07bi5nZXQoZSkmJiFuLmdldCh0KSYmKG4uX2RlcHJlY2F0ZWQoIlRoZSBgIitlKyJgIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkLiBVc2UgYCIrdCsiYCBpbnN0ZWFkIiksbi5zZXQodCxuLmdldChlKSkpfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L2Vycm9ycy1jb2xsZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0LWVycm9ycy1jb2xsZWN0aW9uIl0sdGFnTmFtZToidWwiLGlzVmlzaWJsZTooMCxuLm5vdEVtcHR5KSgiY29sbGVjdGlvbi5jb250ZW50Iil9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1ib2R5IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtYm9keSIsY2xhc3NOYW1lczpbInNlbGVjdC1raXQtYm9keSJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2VsZWN0S2l0SWQ6ZGF0YS1zZWxlY3Qta2l0LWlkIl0sc2VsZWN0S2l0SWQ6KDAsbi5jb21wdXRlZCkoInNlbGVjdEtpdC51bmlxdWVJRCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5In0pLHJvb3RFdmVudFR5cGU6ImNsaWNrIixpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaGFuZGxlUm9vdE1vdXNlRG93bkhhbmRsZXI9KDAsaS5iaW5kKSh0aGlzLHRoaXMuaGFuZGxlUm9vdE1vdXNlRG93bil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnJvb3RFdmVudFR5cGUsdGhpcy5oYW5kbGVSb290TW91c2VEb3duSGFuZGxlciwhMCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMucm9vdEV2ZW50VHlwZSx0aGlzLmhhbmRsZVJvb3RNb3VzZURvd25IYW5kbGVyLCEwKX0saGFuZGxlUm9vdE1vdXNlRG93bjpmdW5jdGlvbihlKXt2YXIgdDt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkJiYoKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtc2VsZWN0LWtpdC1pZD0iK3RoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItaGVhZGVyXSIpKSYmdC5jb250YWlucyhlLnRhcmdldCl8fHRoaXMuZWxlbWVudC5jb250YWlucyhlLnRhcmdldCl8fHRoaXMuc2VsZWN0S2l0LmNsb3NlKGUpKX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1jb2xsZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1jb2xsZWN0aW9uIixjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1jb2xsZWN0aW9uIl0sdGFnTmFtZToidWwiLGlzVmlzaWJsZTooMCxuLm5vdEVtcHR5KSgiY29sbGVjdGlvbiIpfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtY3JlYXRlLXJvdyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyIsY2xhc3NOYW1lczoiY3JlYXRlIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9taXhpbnMvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7dmFyIGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLG4uZGVmYXVsdCkoInNlbGVjdEtpdC5vcHRpb25zLmZpbHRlclBsYWNlaG9sZGVyIiwic2VsZWN0S2l0Lm9wdGlvbnMudHJhbnNsYXRlZGZpbHRlclBsYWNlaG9sZGVyIiksbD17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtZmlsdGVyIixjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1maWx0ZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImlzRXhwYW5kZWQ6aXMtZXhwYW5kZWQiXSxhdHRyaWJ1dGVCaW5kaW5nczpbInNlbGVjdEtpdElkOmRhdGEtc2VsZWN0LWtpdC1pZCJdLHNlbGVjdEtpdElkOigwLHMuY29tcHV0ZWQpKCJzZWxlY3RLaXQudW5pcXVlSUQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItZmlsdGVyIn0pLGlzSGlkZGVuOigwLHMuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy57ZmlsdGVyYWJsZSxhbGxvd0FueSxhdXRvRmlsdGVyYWJsZX0iLCJjb250ZW50LltdIixmdW5jdGlvbigpe3JldHVybiF0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmZpbHRlcmFibGUmJiF0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiYhdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5hdXRvRmlsdGVyYWJsZX0pLGlzRXhwYW5kZWQ6KDAsby5ub3QpKCJpc0hpZGRlbiIpLHBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsaS5pc0VtcHR5KShlKT90fHwiIjpJMThuLnQoZSl9LGFjdGlvbnM6e29uSW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm9uSW5wdXQoZSksITB9LG9uS2V5ZG93bjpmdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMuc2VsZWN0S2l0Lm9uS2V5ZG93bihlKSYmKDM3PT09ZS5rZXlDb2RlfHwzOT09PWUua2V5Q29kZXx8KDM4PT09ZS5rZXlDb2RlPyh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRQcmV2aW91cygpLCExKTo0MD09PWUua2V5Q29kZT8odGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0TmV4dCgpLCExKToyNz09PWUua2V5Q29kZT8odGhpcy5zZWxlY3RLaXQuY2xvc2UoZSksITEpOjEzPT09ZS5rZXlDb2RlJiZ0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZD8odGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSwhMSk6MTMhPT1lLmtleUNvZGV8fHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkPzk9PT1lLmtleUNvZGU/KHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkJiZ0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkJiZ0aGlzLnNlbGVjdEtpdC5zZWxlY3QodGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHZvaWQgdGhpcy5zZWxlY3RLaXQuY2xvc2UoZSkpOnZvaWQgMDoodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKSwhMSkpKX19fSx1PWwsYz0icGxhY2Vob2xkZXIiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJwbGFjZWhvbGRlciIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbXBvbmVudCIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtldmVudFR5cGU6ImNsaWNrIixjbGljazpmdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYhdGhpcy5pc0Rlc3Ryb3llZCYmdGhpcy5zZWxlY3RLaXQmJiF0aGlzLnNlbGVjdEtpdC5pc0Rpc2FibGVkJiYiY2xpY2siPT09dGhpcy5ldmVudFR5cGUmJjA9PT1lLmJ1dHRvbilyZXR1cm4gdGhpcy5zZWxlY3RLaXQudG9nZ2xlKGUpLCExfSxjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1oZWFkZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImlzRm9jdXNlZCJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGFiaW5kZXgiLCJhcmlhT3duczphcmlhLW93bnMiLCJhcmlhSGFzUG9wdXA6YXJpYS1oYXNwb3B1cCIsImFyaWFJc0V4cGFuZGVkOmFyaWEtZXhwYW5kZWQiLCJzZWxlY3RLaXRJZDpkYXRhLXNlbGVjdC1raXQtaWQiLCJyb2xlQnV0dG9uOnJvbGUiLCJzZWxlY3RlZFZhbHVlOmRhdGEtdmFsdWUiLCJzZWxlY3RlZE5hbWVzOmRhdGEtbmFtZSIsInNlcmlhbGl6ZWROYW1lczp0aXRsZSJdLHNlbGVjdGVkVmFsdWU6KDAsdC5jb21wdXRlZCkoInZhbHVlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlPT09dGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5ub25lSXRlbSk/bnVsbDooMCxvLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuam9pbigiLCIpfSksc2VsZWN0ZWROYW1lczooMCx0LmNvbXB1dGVkKSgic2VsZWN0ZWRDb250ZW50LltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsby5tYWtlQXJyYXkpKHRoaXMuc2VsZWN0ZWRDb250ZW50KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0TmFtZShlKX0pLmpvaW4oIiwiKX0pLGljb25zOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy57aWNvbixpY29uc30iLGZ1bmN0aW9uKCl7dmFyIGU9KDAsby5tYWtlQXJyYXkpKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuaWNvbiksdD0oMCxvLm1ha2VBcnJheSkodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5pY29ucyk7cmV0dXJuIGUuY29uY2F0KHQpLmZpbHRlcihCb29sZWFuKX0pLHNlbGVjdEtpdElkOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQudW5pcXVlSUQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItaGVhZGVyIn0pLGFyaWFJc0V4cGFuZGVkOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQuaXNFeHBhbmRlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZD8idHJ1ZSI6ImZhbHNlIn0pLGFyaWFIYXNQb3B1cDohMCxhcmlhT3duczooMCx0LmNvbXB1dGVkKSgic2VsZWN0S2l0LnVuaXF1ZUlEIixmdW5jdGlvbigpe3JldHVybiJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5XSJ9KSxyb2xlQnV0dG9uOiJidXR0b24iLHRhYmluZGV4OjAsa2V5VXA6ZnVuY3Rpb24oZSl7MzI9PT1lLmtleUNvZGUmJmUucHJldmVudERlZmF1bHQoKX0sa2V5RG93bjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKCF0aGlzLnNlbGVjdEtpdC5pc0Rpc2FibGVkKXtpZighdGhpcy5zZWxlY3RLaXQub25LZXlkb3duKGUpKXJldHVybiExO3ZhciBuPWUuc2hpZnRLZXkmJjE2PT09ZS5rZXlDb2RlO2lmKCFlLm1ldGFLZXkmJiFuKWlmKDEzPT09ZS5rZXlDb2RlKWlmKHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQpe2lmKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKXJldHVybiB0aGlzLnNlbGVjdEtpdC5zZWxlY3QodGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLCExfWVsc2UgdGhpcy5zZWxlY3RLaXQuY2xvc2UoZSk7ZWxzZXtpZigzOD09PWUua2V5Q29kZSlyZXR1cm4gdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZD90aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRQcmV2aW91cygpOnRoaXMuc2VsZWN0S2l0Lm9wZW4oZSksITE7aWYoNDA9PT1lLmtleUNvZGUpcmV0dXJuIHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0TmV4dCgpOnRoaXMuc2VsZWN0S2l0Lm9wZW4oZSksITE7aWYoMzc9PT1lLmtleUNvZGV8fDM5PT09ZS5rZXlDb2RlKXJldHVybiEwO2lmKDMyPT09ZS5rZXlDb2RlKWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdEtpdC50b2dnbGUoZSk7ZWxzZSBpZigyNz09PWUua2V5Q29kZSl0aGlzLnNlbGVjdEtpdC5jbG9zZShlKTtlbHNlIGlmKDg9PT1lLmtleUNvZGUpdGhpcy5fZm9jdXNGaWx0ZXJJbnB1dCgpO2Vsc2UgaWYoOT09PWUua2V5Q29kZSl0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCYmdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZCYmdGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSx0aGlzLnNlbGVjdEtpdC5jbG9zZShlKTtlbHNle2lmKCEodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5maWx0ZXJhYmxlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmF1dG9GaWx0ZXJhYmxlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55KSlyZXR1cm4hdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZDt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkP3RoaXMuX2ZvY3VzRmlsdGVySW5wdXQoKToodGhpcy5zZWxlY3RLaXQub3BlbihlKSwoMCxzLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHQuX2ZvY3VzRmlsdGVySW5wdXQoKX0pKX19fX0sX2ZvY3VzRmlsdGVySW5wdXQ6ZnVuY3Rpb24oKXt2YXIgZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXNlbGVjdC1raXQtaWQ9Iit0aGlzLnNlbGVjdEtpdC51bmlxdWVJRCsiLWZpbHRlcl0iKTt0JiYodC5zdHlsZS5kaXNwbGF5PSJmbGV4IiwoZT10LnF1ZXJ5U2VsZWN0b3IoIi5maWx0ZXItaW5wdXQiKSkmJmUuZm9jdXMoKSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtbm9uZS1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciLGNsYXNzTmFtZXM6Im5vbmUifSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0L2ludGVybmFscyIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0LXJvdyJdLHRhZ05hbWU6ImxpIix0YWJJbmRleDotMSxhdHRyaWJ1dGVCaW5kaW5nczpbInRhYkluZGV4IiwidGl0bGUiLCJyb3dWYWx1ZTpkYXRhLXZhbHVlIiwicm93TmFtZTpkYXRhLW5hbWUiLCJhcmlhTGFiZWw6YXJpYS1sYWJlbCIsImd1aWQ6ZGF0YS1ndWlkIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJpc0hpZ2hsaWdodGVkIiwiaXNTZWxlY3RlZCIsImlzTm9uZSIsImlzTm9uZTpub25lIiwiaXRlbS5jbGFzc05hbWVzIl0saXNOb25lOigwLG4uY29tcHV0ZWQpKCJyb3dWYWx1ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb3dWYWx1ZT09PXRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQubm9uZUl0ZW0pfSksZ3VpZDooMCxuLmNvbXB1dGVkKSgiaXRlbSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmd1aWRGb3IpKHRoaXMuaXRlbSl9KSxhcmlhTGFiZWw6KDAsbi5jb21wdXRlZCkoIml0ZW0uYXJpYUxhYmVsIiwidGl0bGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkodGhpcy5pdGVtLCJhcmlhTGFiZWwiKXx8dGhpcy50aXRsZX0pLHRpdGxlOigwLG4uY29tcHV0ZWQpKCJpdGVtLnRpdGxlIiwicm93TmFtZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sInRpdGxlIil8fHRoaXMucm93TmFtZX0pLGxhYmVsOigwLG4uY29tcHV0ZWQpKCJpdGVtLmxhYmVsIiwidGl0bGUiLCJyb3dOYW1lIixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0UHJvcGVydHkodGhpcy5pdGVtLCJsYWJlbCIpfHx0aGlzLnRpdGxlfHx0aGlzLnJvd05hbWU7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnkmJnRoaXMucm93VmFsdWU9PT10aGlzLnNlbGVjdEtpdC5maWx0ZXImJnRoaXMuZ2V0TmFtZSh0aGlzLnNlbGVjdEtpdC5ub25lSXRlbSkhPT10aGlzLnJvd05hbWUmJnRoaXMuZ2V0TmFtZSh0aGlzLnNlbGVjdEtpdC5uZXdJdGVtKT09PXRoaXMucm93TmFtZT9JMThuLnQoInNlbGVjdF9raXQuY3JlYXRlIix7Y29udGVudDplfSk6ZX0pLGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe3Jvd05hbWU6dGhpcy5nZXROYW1lKHRoaXMuaXRlbSkscm93VmFsdWU6dGhpcy5nZXRWYWx1ZSh0aGlzLml0ZW0pfSl9LGljb25zOigwLG4uY29tcHV0ZWQpKCJpdGVtLntpY29uLGljb25zfSIsZnVuY3Rpb24oKXt2YXIgZT0oMCxpLm1ha2VBcnJheSkodGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sImljb24iKSksdD0oMCxpLm1ha2VBcnJheSkodGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sImljb25zIikpO3JldHVybiBlLmNvbmNhdCh0KS5maWx0ZXIoQm9vbGVhbil9KSxoaWdobGlnaHRlZFZhbHVlOigwLG4uY29tcHV0ZWQpKCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpfSksaXNIaWdobGlnaHRlZDooMCxuLmNvbXB1dGVkKSgicm93VmFsdWUiLCJoaWdobGlnaHRlZFZhbHVlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvd1ZhbHVlPT09dGhpcy5oaWdobGlnaHRlZFZhbHVlfSksaXNTZWxlY3RlZDooMCxuLmNvbXB1dGVkKSgicm93VmFsdWUiLCJ2YWx1ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb3dWYWx1ZT09PXRoaXMudmFsdWV9KSxtb3VzZUVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEZXN0cm95aW5nJiZ0aGlzLmlzRGVzdHJveWVkfHx0aGlzLnNlbGVjdEtpdC5vbkhvdmVyKHRoaXMucm93VmFsdWUsdGhpcy5pdGVtKSwhMX0sY2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMucm93VmFsdWUsdGhpcy5pdGVtKSwhMX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIiwic2VsZWN0LWtpdC9taXhpbnMvdXRpbHMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciIsY2xhc3NOYW1lczpbInNpbmdsZS1zZWxlY3QtaGVhZGVyIl19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdGVkLWNvbG9yIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiQGVtYmVyL3J1bmxvb3AiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1zZWxlY3RlZC1jb2xvciJdLGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT0oMCxuLmVzY2FwZUV4cHJlc3Npb24pKHQubmFtZSk7dC5lbGVtZW50LnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yPSIjIitlfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3RlZC1uYW1lIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJzZWxlY3Qta2l0L21peGlucy91dGlscyJdLGZ1bmN0aW9uKGUsbix0LGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQse2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsY2xhc3NOYW1lczpbInNlbGVjdC1raXQtc2VsZWN0ZWQtbmFtZSIsInNlbGVjdGVkLW5hbWUiLCJjaG9pY2UiXSxuYW1lOm51bGwsdmFsdWU6bnVsbCx0YWJpbmRleDowLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGl0bGUiLCJ2YWx1ZTpkYXRhLXZhbHVlIiwibmFtZTpkYXRhLW5hbWUiXSxjbGljazpmdW5jdGlvbigpe2lmKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuY2xlYXJPbkNsaWNrKXJldHVybiB0aGlzLnNlbGVjdEtpdC5kZXNlbGVjdCh0aGlzLml0ZW0pLCExfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXRQcm9wZXJ0aWVzKHtuYW1lOnRoaXMuZ2V0TmFtZSh0aGlzLml0ZW0pLHZhbHVlOnRoaXMuaXRlbT09PXRoaXMuc2VsZWN0S2l0Lm5vbmVJdGVtP251bGw6dGhpcy5nZXRWYWx1ZSh0aGlzLml0ZW0pfSl9LGFyaWFMYWJlbDooMCxuLmNvbXB1dGVkKSgiaXRlbSIsInNhbml0aXplZFRpdGxlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zYWZlUHJvcGVydHkoImFyaWFMYWJlbCIsdGhpcy5pdGVtKXx8dGhpcy5zYW5pdGl6ZWRUaXRsZX0pLHNhbml0aXplZFRpdGxlOigwLG4uY29tcHV0ZWQpKCJ0aXRsZSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMudGl0bGUpLnJlcGxhY2UoIiZoZWxsaXA7IiwiIil9KSx0aXRsZTooMCxuLmNvbXB1dGVkKSgiaXRlbSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2FmZVByb3BlcnR5KCJ0aXRsZSIsdGhpcy5pdGVtKXx8dGhpcy5uYW1lfHwiIn0pLGxhYmVsOigwLG4uY29tcHV0ZWQpKCJ0aXRsZSIsIm5hbWUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NhZmVQcm9wZXJ0eSgibGFiZWwiLHRoaXMuaXRlbSl8fHRoaXMudGl0bGV8fHRoaXMubmFtZX0pLGljb25zOigwLG4uY29tcHV0ZWQpKCJpdGVtLntpY29uLGljb25zfSIsZnVuY3Rpb24oKXt2YXIgZT0oMCxpLm1ha2VBcnJheSkodGhpcy5fc2FmZVByb3BlcnR5KCJpY29uIix0aGlzLml0ZW0pKSx0PSgwLGkubWFrZUFycmF5KSh0aGlzLl9zYWZlUHJvcGVydHkoImljb25zIix0aGlzLml0ZW0pKTtyZXR1cm4gZS5jb25jYXQodCkuZmlsdGVyKEJvb2xlYW4pfSksX3NhZmVQcm9wZXJ0eTpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLG4uZ2V0KSh0LGUpOm51bGx9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zaW5nbGUtc2VsZWN0IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInNpbmdsZS1zZWxlY3QiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3QiLGNsYXNzTmFtZXM6WyJzaW5nbGUtc2VsZWN0Il0sc2luZ2xlU2VsZWN0OiEwLHNlbGVjdEtpdE9wdGlvbnM6e2hlYWRlckNvbXBvbmVudDoic2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciJ9LHNlbGVjdGVkQ29udGVudDooMCxuLmNvbXB1dGVkKSgidmFsdWUiLCJjb250ZW50LltdIixmdW5jdGlvbigpe2lmKCgwLGkuaXNFbXB0eSkodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm5vbmVJdGVtO3ZhciBlPXZvaWQgMCx0PXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuY2FzdEludGVnZXImJnRoaXMuX2lzTnVtZXJpYyh0aGlzLnZhbHVlKT9OdW1iZXIodGhpcy52YWx1ZSk6dGhpcy52YWx1ZTtyZXR1cm4gdGhpcy5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eT8oZT0odGhpcy5jb250ZW50fHxbXSkuZmluZEJ5KHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHksdCksdGhpcy5zZWxlY3RLaXQubW9kaWZ5U2VsZWN0aW9uKGV8fHRoaXMuZGVmYXVsdEl0ZW0odCx0KSkpOnRoaXMuc2VsZWN0S2l0Lm1vZGlmeVNlbGVjdGlvbigodGhpcy5jb250ZW50fHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctY2hvb3Nlci1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1jaG9vc2VyLXJvdyIsY2xhc3NOYW1lczpbInRhZy1jaG9vc2VyLXJvdyJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctY2hvb3NlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidGFnLWNob29zZXIiXSxjbGFzc05hbWVzOlsidGFnLWNob29zZXIiXSxzZWxlY3RLaXRPcHRpb25zOntmaWx0ZXJhYmxlOiEwLGZpbHRlclBsYWNlaG9sZGVyOiJ0YWdnaW5nLmNob29zZV9mb3JfdG9waWMiLGxpbWl0Om51bGwsYWxsb3dBbnk6ImNhbkNyZWF0ZVRhZyIsbWF4aW11bToibWF4aW11bVRhZ0NvdW50In0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuInRhZy1jaG9vc2VyLXJvdyJ9LGJsYWNrbGlzdDpudWxsLGF0dHJpYnV0ZUJpbmRpbmdzOlsiY2F0ZWdvcnlJZCJdLGV4Y2x1ZGVTeW5vbnltczohMSxleGNsdWRlSGFzU3lub255bXM6ITEsY2FuQ3JlYXRlVGFnOigwLHQuY29tcHV0ZWQpKCJzaXRlLmNhbl9jcmVhdGVfdGFnIiwiYWxsb3dDcmVhdGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWxsb3dDcmVhdGV8fHRoaXMuc2l0ZS5jYW5fY3JlYXRlX3RhZ30pLG1heGltdW1UYWdDb3VudDooMCx0LmNvbXB1dGVkKSgic2l0ZVNldHRpbmdzLm1heF90YWdzX3Blcl90b3BpYyIsInVubGltaXRlZFRhZ0NvdW50IixmdW5jdGlvbigpe3JldHVybiB0aGlzLnVubGltaXRlZFRhZ0NvdW50P251bGw6cGFyc2VJbnQodGhpcy5vcHRpb25zLmxpbWl0fHx0aGlzLm9wdGlvbnMubWF4aW11bXx8dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5tYXhfdGFnc19wZXJfdG9waWMiKSwxMCl9KSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0UHJvcGVydGllcyh7YmxhY2tsaXN0OnRoaXMuYmxhY2tsaXN0fHxbXSx0ZXJtTWF0Y2hlc0ZvcmJpZGRlbjohMSx0ZXJtTWF0Y2hFcnJvck1lc3NhZ2U6bnVsbH0pfSx2YWx1ZTooMCx0LmNvbXB1dGVkKSgidGFncy5bXSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLm1ha2VBcnJheSkodGhpcy50YWdzKS51bmlxKCl9KSxjb250ZW50OigwLHQuY29tcHV0ZWQpKCJ0YWdzLltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAscy5tYWtlQXJyYXkpKHRoaXMudGFncykudW5pcSgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0SXRlbShlLGUpfSl9KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnNldCgidGFncyIsZSl9fSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5tYWtlQXJyYXkpKHRoaXMudGFncykuZmlsdGVyKEJvb2xlYW4pLG49e3E6ZSxsaW1pdDp0aGlzLmdldCgic2l0ZVNldHRpbmdzLm1heF90YWdfc2VhcmNoX3Jlc3VsdHMiKSxjYXRlZ29yeUlkOnRoaXMuY2F0ZWdvcnlJZH07cmV0dXJuKHQubGVuZ3RofHx0aGlzLmJsYWNrbGlzdC5sZW5ndGgpJiYobi5zZWxlY3RlZF90YWdzPXQuY29uY2F0KHRoaXMuYmxhY2tsaXN0KS51bmlxKCkuc2xpY2UoMCwxMDApKSx0aGlzLmV2ZXJ5VGFnfHwobi5maWx0ZXJGb3JJbnB1dD0hMCksdGhpcy5leGNsdWRlU3lub255bXMmJihuLmV4Y2x1ZGVTeW5vbnltcz0hMCksdGhpcy5leGNsdWRlSGFzU3lub255bXMmJihuLmV4Y2x1ZGVIYXNTeW5vbnltcz0hMCksdGhpcy5zZWFyY2hUYWdzKCIvdGFncy9maWx0ZXIvc2VhcmNoIixuLHRoaXMuX3RyYW5zZm9ybUpzb24pfSxfdHJhbnNmb3JtSnNvbjpmdW5jdGlvbih0LGUpe3ZhciBuPWUucmVzdWx0cztyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHt0ZXJtTWF0Y2hlc0ZvcmJpZGRlbjohIWUuZm9yYmlkZGVuLHRlcm1NYXRjaEVycm9yTWVzc2FnZTplLmZvcmJpZGRlbl9tZXNzYWdlfSksdC5ibGFja2xpc3QmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmJsYWNrbGlzdC5pbmNsdWRlcyhlLmlkKX0pKSx0LmdldCgic2l0ZVNldHRpbmdzLnRhZ3Nfc29ydF9hbHBoYWJldGljYWxseSIpJiYobj1uLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pZD50LmlkfSkpLG4udW5pcUJ5KCJ0ZXh0IikubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLnRleHQsbmFtZTplLnRleHQsY291bnQ6ZS5jb3VudH19KX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1kcm9wIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTk9ORV9UQUdfSUQ9ZS5BTExfVEFHU19JRD1lLk5PX1RBR19JRD12b2lkIDA7dmFyIGM9ZS5OT19UQUdfSUQ9Im5vLXRhZ3MiLGQ9ZS5BTExfVEFHU19JRD0iYWxsLXRhZ3MiLHA9ZS5OT05FX1RBR19JRD0ibm9uZSI7ZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRhZy1kcm9wIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJjYXRlZ29yeVN0eWxlIiwidGFnQ2xhc3MiXSxjbGFzc05hbWVzOlsidGFnLWRyb3AiXSx2YWx1ZTooMCx0LnJlYWRPbmx5KSgidGFnSWQiKSx0YWdOYW1lOiJsaSIsY3VycmVudENhdGVnb3J5OigwLHQub3IpKCJzZWNvbmRDYXRlZ29yeSIsImZpcnN0Q2F0ZWdvcnkiKSxzaG93RmlsdGVyQnlUYWc6KDAsbi5zZXR0aW5nKSgic2hvd19maWx0ZXJfYnlfdGFnIiksY2F0ZWdvcnlTdHlsZTooMCxuLnNldHRpbmcpKCJjYXRlZ29yeV9zdHlsZSIpLG1heFRhZ1NlYXJjaFJlc3VsdHM6KDAsbi5zZXR0aW5nKSgibWF4X3RhZ19zZWFyY2hfcmVzdWx0cyIpLHNvcnRUYWdzQWxwaGFiZXRpY2FsbHk6KDAsbi5zZXR0aW5nKSgidGFnc19zb3J0X2FscGhhYmV0aWNhbGx5IiksaXNWaXNpYmxlOigwLGEuY29tcHV0ZWQpKCJzaG93RmlsdGVyQnlUYWciLCJjb250ZW50LltdIixmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuc2hvd0ZpbHRlckJ5VGFnfHwoMCxsLmlzRW1wdHkpKHRoaXMuY29udGVudCkpfSksc2VsZWN0S2l0T3B0aW9uczp7YWxsb3dBbnk6ITEsY2FyZXREb3duSWNvbjoiY2FyZXQtcmlnaHQiLGNhcmV0VXBJY29uOiJjYXJldC1kb3duIixmdWxsV2lkdGhPbk1vYmlsZTohMCxmaWx0ZXJhYmxlOiEwLGhlYWRlckNvbXBvbmVudDoidGFnLWRyb3AvdGFnLWRyb3AtaGVhZGVyIixhdXRvSW5zZXJ0Tm9uZUl0ZW06ITF9LG5vVGFnc1NlbGVjdGVkOigwLHQuZXF1YWwpKCJ0YWdJZCIscCksZmlsdGVyYWJsZTooMCx0Lmd0ZSkoImNvbnRlbnQubGVuZ3RoIiwxNSksbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub1RhZ3NTZWxlY3RlZD90aGlzLmRlZmF1bHRJdGVtKGMsdGhpcy5ub1RhZ3NMYWJlbCk6dGhpcy5kZWZhdWx0SXRlbShkLHRoaXMuYWxsVGFnc0xhYmVsKX0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRhZ0lkJiYoZT10aGlzLm5vVGFnc1NlbGVjdGVkP3RoaXMuZGVmYXVsdEl0ZW0oYyx0aGlzLm5vVGFnc0xhYmVsKTp0aGlzLmRlZmF1bHRJdGVtKHRoaXMudGFnSWQsdGhpcy50YWdJZCkpLGV9LHRhZ0NsYXNzOigwLGEuY29tcHV0ZWQpKCJ0YWdJZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWdJZD8idGFnLSIrdGhpcy50YWdJZDoidGFnX2FsbCJ9KSxjdXJyZW50Q2F0ZWdvcnlVcmw6KDAsdC5yZWFkT25seSkoImN1cnJlbnRDYXRlZ29yeS51cmwiKSxhbGxUYWdzVXJsOigwLGEuY29tcHV0ZWQpKCJmaXJzdENhdGVnb3J5Iiwic2Vjb25kQ2F0ZWdvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudENhdGVnb3J5P0Rpc2NvdXJzZS5nZXRVUkwodGhpcy5jdXJyZW50Q2F0ZWdvcnlVcmwrIj9hbGxUYWdzPTEiKTpEaXNjb3Vyc2UuZ2V0VVJMKCIvIil9KSxub1RhZ3NVcmw6KDAsYS5jb21wdXRlZCkoImZpcnN0Q2F0ZWdvcnkiLCJzZWNvbmRDYXRlZ29yeSIsZnVuY3Rpb24oKXt2YXIgZT0iL3RhZ3MiO3JldHVybiB0aGlzLmN1cnJlbnRDYXRlZ29yeSYmKGUrPSIvYy8iK2kuZGVmYXVsdC5zbHVnRm9yKHRoaXMuY3VycmVudENhdGVnb3J5KSsiLyIrdGhpcy5jdXJyZW50Q2F0ZWdvcnkuaWQpLERpc2NvdXJzZS5nZXRVUkwoZSsiLyIrcCl9KSxhbGxUYWdzTGFiZWw6KDAsbi5pMThuKSgidGFnZ2luZy5zZWxlY3Rvcl9hbGxfdGFncyIpLG5vVGFnc0xhYmVsOigwLG4uaTE4bikoInRhZ2dpbmcuc2VsZWN0b3Jfbm9fdGFncyIpLHNob3J0Y3V0czooMCxhLmNvbXB1dGVkKSgidGFnSWQiLGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMudGFnSWQhPT1wJiZlLnB1c2goe2lkOmMsbmFtZTp0aGlzLm5vVGFnc0xhYmVsfSksdGhpcy50YWdJZCYmZS5wdXNoKHtpZDpkLG5hbWU6dGhpcy5hbGxUYWdzTGFiZWx9KSxlfSksdG9wVGFnczooMCxhLmNvbXB1dGVkKSgiZmlyc3RDYXRlZ29yeSIsInNlY29uZENhdGVnb3J5Iiwic2l0ZS5jYXRlZ29yeV90b3BfdGFncy5bXSIsInNpdGUudG9wX3RhZ3MuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudENhdGVnb3J5JiZ0aGlzLnNpdGUuY2F0ZWdvcnlfdG9wX3RhZ3M/dGhpcy5zaXRlLmNhdGVnb3J5X3RvcF90YWdzOnRoaXMuc2l0ZS50b3BfdGFnc30pLGNvbnRlbnQ6KDAsYS5jb21wdXRlZCkoInRvcFRhZ3MuW10iLCJzaG9ydGN1dHMuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydFRhZ3NBbHBoYWJldGljYWxseSYmdGhpcy50b3BUYWdzP3RoaXMuc2hvcnRjdXRzLmNvbmNhdCh0aGlzLnRvcFRhZ3Muc29ydCgpKTp0aGlzLnNob3J0Y3V0cy5jb25jYXQoKDAsdS5tYWtlQXJyYXkpKHRoaXMudG9wVGFncykpfSksc2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoZSl7dmFyIG49e3E6ZSxsaW1pdDp0aGlzLm1heFRhZ1NlYXJjaFJlc3VsdHN9O3JldHVybiB0aGlzLnNlYXJjaFRhZ3MoIi90YWdzL2ZpbHRlci9zZWFyY2giLG4sdGhpcy5fdHJhbnNmb3JtSnNvbil9cmV0dXJuKHRoaXMuY29udGVudHx8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZCYmZS5uYW1lP2U6dC5kZWZhdWx0SXRlbShlLGUpfSl9LF90cmFuc2Zvcm1Kc29uOmZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUucmVzdWx0cy5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQ+dC5pZH0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD1uLmRlZmF1bHRJdGVtKGUuaWQsZS50ZXh0KTtyZXR1cm4gdC50YXJnZXRUYWdJZD1lLnRhcmdldF90YWd8fGUuaWQsdC5jb3VudD1lLmNvdW50LHQucG1Db3VudD1lLnBtX2NvdW50LHR9KX0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDA7c3dpdGNoKGUpe2Nhc2UgZDpuPXRoaXMuYWxsVGFnc1VybDticmVhaztjYXNlIGM6bj10aGlzLm5vVGFnc1VybDticmVhaztkZWZhdWx0Om49dGhpcy5jdXJyZW50Q2F0ZWdvcnk/Ii90YWdzL2MvIitpLmRlZmF1bHQuc2x1Z0Zvcih0aGlzLmN1cnJlbnRDYXRlZ29yeSkrIi8iK3RoaXMuY3VycmVudENhdGVnb3J5LmlkOiIvdGFnIix0JiZ0LnRhcmdldFRhZ0lkP24rPSIvIit0LnRhcmdldFRhZ0lkLnRvTG93ZXJDYXNlKCk6bis9Ii8iK2UudG9Mb3dlckNhc2UoKX1vLmRlZmF1bHQucm91dGVUbyhEaXNjb3Vyc2UuZ2V0VVJMKG4pKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9jb21iby1ib3gvY29tYm8tYm94LWhlYWRlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIiLGNsYXNzTmFtZXM6InRhZy1kcm9wLWhlYWRlciJ9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1ncm91cC1jaG9vc2VyIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0Iiwic2VsZWN0LWtpdC9taXhpbnMvdGFncyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0YWctZ3JvdXAtY2hvb3NlciJdLGNsYXNzTmFtZXM6WyJ0YWctZ3JvdXAtY2hvb3NlciIsInRhZy1jaG9vc2VyIl0sc2VsZWN0S2l0T3B0aW9uczp7YWxsb3dBbnk6ITEsZmlsdGVyYWJsZTohMCxmaWx0ZXJQbGFjZWhvbGRlcjoiY2F0ZWdvcnkudGFnX2dyb3Vwc19wbGFjZWhvbGRlciIsbGltaXQ6bnVsbH0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuInRhZy1jaG9vc2VyLXJvdyJ9LHZhbHVlOigwLHMuY29tcHV0ZWQpKCJ0YWdHcm91cHMuW10iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5tYWtlQXJyYXkpKHRoaXMudGFnR3JvdXBzKS51bmlxKCl9KSxjb250ZW50OigwLHMuY29tcHV0ZWQpKCJ0YWdHcm91cHMuW10iLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4oMCxpLm1ha2VBcnJheSkodGhpcy50YWdHcm91cHMpLnVuaXEoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdEl0ZW0oZSxlKX0pfSksYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRhZ0dyb3VwcyIsZSl9fSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXtxOmUsbGltaXQ6dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5tYXhfdGFnX3NlYXJjaF9yZXN1bHRzIil9O3JldHVybiB0aGlzLnNlYXJjaFRhZ3MoIi90YWdfZ3JvdXBzL2ZpbHRlci9zZWFyY2giLG4sdGhpcy5fdHJhbnNmb3JtSnNvbikudGhlbihmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aClyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISgwLGkubWFrZUFycmF5KSh0LnRhZ0dyb3VwcykuaW5jbHVkZXModC5nZXRWYWx1ZShlKSl9KX0pfSxfdHJhbnNmb3JtSnNvbjpmdW5jdGlvbihlLHQpe3JldHVybiB0LnJlc3VsdHMuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLmlkPnQuaWR9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUudGV4dCxuYW1lOmUudGV4dCxjb3VudDplLmNvdW50fX0pfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdGFnLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24iXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidGFnLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbInRhZy1ub3RpZmljYXRpb25zLWJ1dHRvbiJdLHNlbGVjdEtpdE9wdGlvbnM6e3Nob3dGdWxsVGl0bGU6ITEsaTE4blByZWZpeDoiaTE4blByZWZpeCJ9LGkxOG5QcmVmaXg6InRhZ2dpbmcubm90aWZpY2F0aW9ucyJ9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1yb3ciLGNsYXNzTmFtZXM6WyJ0YWctcm93Il19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RpbWV6b25lLWlucHV0IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRpbWV6b25lLWlucHV0Il0sY2xhc3NOYW1lczpbInRpbWV6b25lLWlucHV0Il0sbmFtZVByb3BlcnR5Om51bGwsdmFsdWVQcm9wZXJ0eTpudWxsLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsYWxsb3dBbnk6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm4iZW4iIT09bW9tZW50LmxvY2FsZSgpJiYiZnVuY3Rpb24iPT10eXBlb2YgbW9tZW50LnR6LmxvY2FsaXplZE5hbWVzP21vbWVudC50ei5sb2NhbGl6ZWROYW1lcygpLm1hcEJ5KCJ2YWx1ZSIpOm1vbWVudC50ei5uYW1lcygpfSl9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3Rvb2xiYXItcG9wdXAtbWVudS1vcHRpb25zIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj0iSEVBRElOR19DT0xMRUNUSU9OIjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucyJdLGNsYXNzTmFtZXM6WyJ0b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucyJdLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5wcmVwZW5kQ29sbGVjdGlvbihuKX0sc2VsZWN0S2l0T3B0aW9uczp7c2hvd0Z1bGxUaXRsZTohMSxmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExfSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09bilyZXR1cm57dGl0bGU6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5wb3B1cFRpdGxlfX0sbW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09bilyZXR1cm4idG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJ9LG1vZGlmeUNvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuY29uZGl0aW9uKXJldHVybntpY29uOmUuaWNvbixuYW1lOkkxOG4udChlLmxhYmVsKSxpZDplLmFjdGlvbn19KS5maWx0ZXIoQm9vbGVhbil9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJoMyIsbGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIixjbGFzc05hbWVzOlsidG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJdLGhlYWRpbmc6KDAsbi5yZWFkcykoImNvbGxlY3Rpb24uY29udGVudC50aXRsZSIpfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90b3BpYy1mb290ZXItbW9iaWxlLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRvcGljLWZvb3Rlci1tb2JpbGUtZHJvcGRvd24iXSxjbGFzc05hbWVzOlsidG9waWMtZm9vdGVyLW1vYmlsZS1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e25vbmU6InRvcGljLmNvbnRyb2xzIixmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlLHQpe3QuYWN0aW9uJiZ0LmFjdGlvbigpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RvcGljLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RvcGljLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixjbGFzc05hbWVzOlsidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iXSxhcHBlbmRSZWFzb246ITAsc2hvd0Z1bGxUaXRsZTohMCxwbGFjZW1lbnQ6ImJvdHRvbS1zdGFydCIsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIsdGhpcywiX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIsdGhpcywiX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiKX0sX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7aWYoZS5ldmVudCl7dmFyIHQ9ZS5ldmVudC50YXJnZXQucXVlcnlTZWxlY3RvcigiI3RvcGljIik7aWYodCYmdC5kYXRhc2V0LnRvcGljSWQpe3ZhciBuPXBhcnNlSW50KHQuZGF0YXNldC50b3BpY0lkLDEwKTtpZihuJiZuIT09dGhpcy50b3BpYy5pZClyZXR1cm59fWUuaWQhPT10aGlzLm5vdGlmaWNhdGlvbkxldmVsJiZ0aGlzLnRvcGljLmRldGFpbHMudXBkYXRlTm90aWZpY2F0aW9ucyhlLmlkKX0sYWN0aW9uczp7Y2hhbmdlVG9waWNOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbihlLHQpe3RoaXMuX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwodCl9fX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24iLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0b3BpYy1ub3RpZmljYXRpb25zLW9wdGlvbnMiXSxjbGFzc05hbWVzOlsidG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIl0sY29udGVudDpuLnRvcGljTGV2ZWxzLHNlbGVjdEtpdE9wdGlvbnM6e2kxOG5QcmVmaXg6ImkxOG5QcmVmaXgiLGkxOG5Qb3N0Zml4OiJpMThuUG9zdGZpeCJ9LGkxOG5QcmVmaXg6InRvcGljLm5vdGlmaWNhdGlvbnMiLGkxOG5Qb3N0Zml4OigwLGkuY29tcHV0ZWQpKCJ0b3BpYy5hcmNoZXR5cGUiLGZ1bmN0aW9uKCl7cmV0dXJuInByaXZhdGVfbWVzc2FnZSI9PT10aGlzLnRvcGljLmFyY2hldHlwZT8iX3BtIjoiIn0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy91c2VyLWNob29zZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91c2VyLXNlYXJjaCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbixvLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidXNlci1jaG9vc2VyIl0sY2xhc3NOYW1lczpbInVzZXItY2hvb3NlciJdLHZhbHVlUHJvcGVydHk6InVzZXJuYW1lIixtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4idXNlci1jaG9vc2VyL3VzZXItcm93In0sc2VsZWN0S2l0T3B0aW9uczp7dG9waWNJZDp2b2lkIDAsY2F0ZWdvcnlJZDp2b2lkIDAsaW5jbHVkZUdyb3VwczohMSxhbGxvd2VkVXNlcnM6ITEsaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzOiExLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczohMSxhbGxvd0VtYWlsczohMSxncm91cE1lbWJlcnNPZjp2b2lkIDB9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoInZhbHVlLltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsaS5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0SXRlbShlLGUpfSl9KSxleGNsdWRlZFVzZXJzOigwLG4uY29tcHV0ZWQpKCJ2YWx1ZSIsImN1cnJlbnRVc2VyIiwic2VsZWN0S2l0Lm9wdGlvbnMue2V4Y2x1ZGVDdXJyZW50VXNlcixleGNsdWRlZFVzZXJuYW1lc30iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLHQ9KDAsaS5tYWtlQXJyYXkpKHRoaXMudmFsdWUpO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiZlLmV4Y2x1ZGVDdXJyZW50VXNlciYmKHQ9dC5jb25jYXQoW3RoaXMuY3VycmVudFVzZXIudXNlcm5hbWVdKSksdC5jb25jYXQoZS5leGNsdWRlZFVzZXJuYW1lc3x8W10pfX0pLHNlYXJjaDpmdW5jdGlvbihlKXt2YXIgdD0odD0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiIil8fCIiLG49dGhpcy5zZWxlY3RLaXQub3B0aW9ucyxpPSgwLG8uc2tpcFNlYXJjaCkodCxuLmFsbG93RW1haWxzKSxzPSgwLG8uZWFnZXJDb21wbGV0ZVNlYXJjaCkodCxuLnRvcGljSWR8fG4uY2F0ZWdvcnlJZCk7aWYoIWkmJigiIiE9PXR8fHMpKXJldHVybigwLG8uZGVmYXVsdCkoe3Rlcm06dCx0b3BpY0lkOm4udG9waWNJZCxjYXRlZ29yeUlkOm4uY2F0ZWdvcnlJZCxleGNsdWRlOnRoaXMuZXhjbHVkZWRVc2VycyxpbmNsdWRlR3JvdXBzOm4uaW5jbHVkZUdyb3VwcyxhbGxvd2VkVXNlcnM6bi5hbGxvd2VkVXNlcnMsaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzOm4uaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczpuLmluY2x1ZGVNZXNzYWdlYWJsZUdyb3Vwcyxncm91cE1lbWJlcnNPZjpuLmdyb3VwTWVtYmVyc09mLGFsbG93RW1haWxzOm4uYWxsb3dFbWFpbHN9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gZX0pfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy91c2VyLWNob29zZXIvdXNlci1yb3ciLGNsYXNzTmFtZXM6WyJ1c2VyLXJvdyJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy91c2VyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInVzZXItbm90aWZpY2F0aW9ucyIsInVzZXItbm90aWZpY2F0aW9ucy1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e2hlYWRlckljb246InVzZXJOb3RpZmljYXRpb25pY29uIn0sdXNlck5vdGlmaWNhdGlvbmljb246KDAscy5jb21wdXRlZCkoIm1haW5Db2xsZWN0aW9uLltdIiwidmFsdWUiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5tYWluQ29sbGVjdGlvbiYmdGhpcy5tYWluQ29sbGVjdGlvbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC52YWx1ZX0pLmljb259KSxjb250ZW50OigwLHMuY29tcHV0ZWQpKGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGUucHVzaCh7aWNvbjoidXNlciIsaWQ6ImNoYW5nZVRvTm9ybWFsIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm5vcm1hbF9vcHRpb25fdGl0bGUiKSxuYW1lOkkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMubm9ybWFsX29wdGlvbiIpfSksZS5wdXNoKHtpY29uOiJ0aW1lcy1jaXJjbGUiLGlkOiJjaGFuZ2VUb011dGVkIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm11dGVfb3B0aW9uX3RpdGxlIiksbmFtZTpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm11dGVfb3B0aW9uIil9KSx0aGlzLmdldCgidXNlci5jYW5faWdub3JlX3VzZXIiKSYmZS5wdXNoKHtpY29uOiJmYXItZXllLXNsYXNoIixpZDoiY2hhbmdlVG9JZ25vcmVkIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9vcHRpb25fdGl0bGUiKSxuYW1lOkkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX29wdGlvbiIpfSksZX0pLGNoYW5nZVRvTm9ybWFsOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgibm9ybWFsIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9LGNoYW5nZVRvTXV0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsKCJtdXRlIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9LGNoYW5nZVRvSWdub3JlZDpmdW5jdGlvbigpeygwLGkuZGVmYXVsdCkoImlnbm9yZS1kdXJhdGlvbiIse21vZGVsOnRoaXMudXNlcn0pfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzW2VdKCksdGhpcy5zZXQoInZhbHVlIixlKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvbWl4aW5zL3BsdWdpbi1hcGkiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4sbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFwcGx5Q29udGVudFBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQscyl7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsoYVtlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD0oMCxvLm1ha2VBcnJheSkoZShzLHQpKS5jb25jYXQodCl9KSwocltlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD10LmNvbmNhdCgoMCxvLm1ha2VBcnJheSkoZShzLHQpKSl9KTt2YXIgaT1sW2VdfHxbXTtpLmxlbmd0aCYmKHQ9dC5maWx0ZXIoZnVuY3Rpb24odCl7dmFyIG49ITA7cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihlKXtuPWUocyx0KX0pLG59KSksKGNbZV18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Q9ZShzLHQpfSl9KSx0fSxlLmFwcGx5SGVhZGVyQ29udGVudFBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsocFtlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD1lKG4sdCl9KX0pLHR9LGUuYXBwbHlNb2RpZnlOb1NlbGVjdGlvblBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsoZltlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD1lKG4sdCl9KX0pLHR9LGUuYXBwbHlDb2xsZWN0aW9uSGVhZGVyQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhiW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXt0PWUobix0KX0pfSksdH0sZS5hcHBseU9uU2VsZWN0UGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7KHZbZV18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKG4sdCl9KX0pfSxlLmFwcGx5T25PcGVuUGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhfW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKHQsbil9KX0pLGl9LGUuYXBwbHlPbkNsb3NlUGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyh4W2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKHQsbil9KX0pLGl9LGUuYXBwbHlPbklucHV0UGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhQW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKG4sdCl9KX0pLGl9LGUubW9kaWZ5U2VsZWN0S2l0PWZ1bmN0aW9uIHQobil7cmV0dXJue2FwcGVuZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkobixmdW5jdGlvbigpe3JldHVybiBlfSksdChuKX0scHJlcGVuZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHMobixmdW5jdGlvbigpe3JldHVybiBlfSksdChuKX0sZmlsdGVyQ29udGVudDpmdW5jdGlvbihlKXtyZXR1cm4gdShuLGUpLHQobil9LG1vZGlmeUNvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGQobixlKSx0KG4pfSxtb2RpZnlIZWFkZXJDb21wdXRlZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG0obixlKSx0KG4pfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oZSl7cmV0dXJuIG0obixlKSx0KG4pfSxtb2RpZnlOb1NlbGVjdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gaChuLGUpLHQobil9LG1vZGlmeUNvbGxlY3Rpb25IZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGcobixlKSx0KG4pfSxvblNlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4geShuLGUpLHQobil9LG9uQ2xvc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGsobixlKSx0KG4pfSxvbk9wZW46ZnVuY3Rpb24oZSl7cmV0dXJuIHcobixlKSx0KG4pfSxvbklucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBqKG4sZSksdChuKX19fSxlLmNsZWFyQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7cj17fSxhPXt9LGw9e30sZj17fSxjPXt9LHA9e30sYj17fSx2PXt9LHg9e30sXz17fSxQPXt9fTt2YXIgcj17fTtmdW5jdGlvbiBpKGUsdCl7KDAsbi5pc05vbmUpKHJbZV0pJiYocltlXT1bXSkscltlXS5wdXNoKHQpfXZhciBhPXt9O2Z1bmN0aW9uIHMoZSx0KXsoMCxuLmlzTm9uZSkoYVtlXSkmJihhW2VdPVtdKSxhW2VdLnB1c2godCl9dmFyIGw9e307ZnVuY3Rpb24gdShlLHQpeygwLG4uaXNOb25lKShsW2VdKSYmKGxbZV09W10pLGxbZV0ucHVzaCh0KX12YXIgYz17fTtmdW5jdGlvbiBkKGUsdCl7KDAsbi5pc05vbmUpKGNbZV0pJiYoY1tlXT1bXSksY1tlXS5wdXNoKHQpfXZhciBwPXt9O2Z1bmN0aW9uIG0oZSx0KXsoMCxuLmlzTm9uZSkocFtlXSkmJihwW2VdPVtdKSxwW2VdLnB1c2godCl9dmFyIGY9e307ZnVuY3Rpb24gaChlLHQpeygwLG4uaXNOb25lKShmW2VdKSYmKGZbZV09W10pLGZbZV0ucHVzaCh0KX12YXIgYj17fTtmdW5jdGlvbiBnKGUsdCl7KDAsbi5pc05vbmUpKGJbZV0pJiYoYltlXT1bXSksYltlXS5wdXNoKHQpfXZhciB2PXt9O2Z1bmN0aW9uIHkoZSx0KXsoMCxuLmlzTm9uZSkodltlXSkmJih2W2VdPVtdKSx2W2VdLnB1c2godCl9dmFyIF89e307ZnVuY3Rpb24gdyhlLHQpeygwLG4uaXNOb25lKShfW2VdKSYmKF9bZV09W10pLF9bZV0ucHVzaCh0KX12YXIgeD17fTtmdW5jdGlvbiBrKGUsdCl7KDAsbi5pc05vbmUpKHhbZV0pJiYoeFtlXT1bXSkseFtlXS5wdXNoKHQpfXZhciBQPXt9O2Z1bmN0aW9uIGooZSx0KXsoMCxuLmlzTm9uZSkoUFtlXSkmJihQW2VdPVtdKSxQW2VdLnB1c2godCl9dmFyIFQ9T2JqZWN0LmZyZWV6ZShbXSk7ZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe2NvbmNhdGVuYXRlZFByb3BlcnRpZXM6WyJwbHVnaW5BcGlJZGVudGlmaWVycyJdLHBsdWdpbkFwaUlkZW50aWZpZXJzOlR9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9taXhpbnMvdGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiQGVtYmVyL3V0aWxzIl0sZnVuY3Rpb24oZSx0LHMsbyxuLGwsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSh7c2VhcmNoVGFnczpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcztyZXR1cm4oMCxzLmFqYXgpKERpc2NvdXJzZS5nZXRVUkwoZSkse3F1aWV0TWlsbGlzOjIwMCxjYWNoZTohMCxkYXRhVHlwZToianNvbiIsZGF0YTp0fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbihpLGUpfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcil9LHNlbGVjdEtpdE9wdGlvbnM6e2FsbG93QW55OiJhbGxvd0FueVRhZyJ9LGFsbG93QW55VGFnOigwLHQucmVhZHMpKCJzaXRlLmNhbl9jcmVhdGVfdGFnIiksdmFsaWRhdGVDcmVhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtO2lmKGkmJigwLGwubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5sZW5ndGg+PXBhcnNlSW50KGksMTApKXJldHVybiB0aGlzLmFkZEVycm9yKEkxOG4udCgic2VsZWN0X2tpdC5tYXhfY29udGVudF9yZWFjaGVkIix7Y291bnQ6dGhpcy5zZWxlY3RLaXQubGltaXR9KSksITE7dmFyIHM9bmV3IFJlZ0V4cCh0aGlzLnNpdGUudGFnc19maWx0ZXJfcmVnZXhwLCJnIik7aWYoZT1lLnJlcGxhY2UocywiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksdGhpcy50ZXJtTWF0Y2hlc0ZvcmJpZGRlbilyZXR1cm4hMTtpZighZS5sZW5ndGh8fHRoaXMuZ2V0KCJzaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgiKTxlLmxlbmd0aClyZXR1cm4gdGhpcy5hZGRFcnJvcihJMThuLnQoInNlbGVjdF9raXQuaW52YWxpZF9zZWxlY3Rpb25fbGVuZ3RoIix7Y291bnQ6IlsxIC0gIit0aGlzLmdldCgic2l0ZVNldHRpbmdzLm1heF90YWdfbGVuZ3RoIikrIl0ifSkpLCExO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKDAsdS5pc0VtcHR5KShlKT92b2lkIDA6ZS50b0xvd2VyQ2FzZSgpfXZhciByPXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBvKG4uZ2V0VmFsdWUoZSkpfSkuZmlsdGVyKEJvb2xlYW4pLmluY2x1ZGVzKGUpLGE9KHRoaXMudmFsdWV8fFtdKS5tYXAobykuZmlsdGVyKEJvb2xlYW4pLmluY2x1ZGVzKGUpO3JldHVybiFyJiYhYX0sY3JlYXRlQ29udGVudEZyb21JbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZT1lLnRyaW0oKS5yZXBsYWNlKC9ccysvZywiLSIpLnJlcGxhY2UoL1tcL1w/I1xbXF1AIVwkJidcKFwpXCpcKyw7PVwuJVxcYF5cc3xce1x9Ijw+XSsvZywiIikuc3Vic3RyaW5nKDAsdGhpcy5zaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgpLHRoaXMuc2l0ZVNldHRpbmdzLmZvcmNlX2xvd2VyY2FzZV90YWdzJiYoZT1lLnRvTG93ZXJDYXNlKCkpLGV9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuY3JlYXRlKHtkZWZhdWx0SXRlbTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHkpe3ZhciBuPXt9O3JldHVybiBuW3RoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHldPWUsblt0aGlzLnNlbGVjdEtpdC5uYW1lUHJvcGVydHldPXQsbn1yZXR1cm4gdHx8ZX0saXRlbUZvclZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHk/dC5maW5kQnkodGhpcy5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eSxlKTplfSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihlLHQsbil7dmFyIGk9KDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09bj9uOntkZWZpbmVkT25seTohMH0pLmRlZmluZWRPbmx5O2lmKGUmJiJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHM9KDAsby5nZXQpKGUsdCk7aWYocylyZXR1cm4gc31yZXR1cm4gdD0oMCxvLmdldCkodGhpcy5zZWxlY3RLaXQsdCksIWV8fCF0JiZpP251bGw6dD8ic3RyaW5nIj09dHlwZW9mIHQ/KDAsby5nZXQpKGUsdCk6dChlKTplfSxnZXRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShlLCJ2YWx1ZVByb3BlcnR5Iix7ZGVmaW5lZE9ubHk6ITF9KX0sZ2V0TmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShlLCJuYW1lUHJvcGVydHkiLHtkZWZpbmVkT25seTohMX0pfSxmaW5kVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9KDAsby5nZXQpKHRoaXMuc2VsZWN0S2l0LCJ2YWx1ZVByb3BlcnR5Iik7aWYoaSl7aWYoInN0cmluZyI9PXR5cGVvZiBpKXJldHVybiBlLmZpbmRCeShpLHRoaXMuZ2V0VmFsdWUodCkpO3ZhciBzPXRoaXMuZ2V0VmFsdWUodCk7cmV0dXJuIGUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRWYWx1ZShlKT09PXN9KX1pZigtMTxlLmluZGV4T2YodCkpcmV0dXJuIHR9LF9pc051bWVyaWM6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoZSkpJiZpc0Zpbml0ZShlKX0sX25vcm1hbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mKGU9ZS50b0xvd2VyQ2FzZSgpKS5ub3JtYWxpemUmJihlPWUubm9ybWFsaXplKCJORkQiKS5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywiIikpLGV9fSl9KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcC9jYXRlZ29yeS1kcm9wLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiLCJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV0sWzI0LFsic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiY2FyZXRJY29uIl1dXSxbWyJjbGFzcyJdLFsiY2FyZXQtaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jYXRlZ29yeS1kcm9wL2NhdGVnb3J5LWRyb3AtaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktc3RhdHVzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNQYXJlbnRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaGlkZVBhcmVudENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwiYmFkZ2VGb3JQYXJlbnRDYXRlZ29yeSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjIsImJhZGdlRm9yQ2F0ZWdvcnkiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5RGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktZGVzYyJdLFs4XSxbMSxbMjgsImRpci1zcGFuIixbWzI0LFsiZGVzY3JpcHRpb24iXV1dLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJsYWJlbCJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZXMvY29sb3ItcGFsZXR0ZXMtcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwiY29sb3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwYWxldHRlcyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyMiwicGFsZXR0ZXMiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jb2xvci1wYWxldHRlcy9jb2xvci1wYWxldHRlcy1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jb21iby1ib3gvY29tYm8tYm94LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIl0sWyJidG4tY2xlYXIiLCJ0aW1lcyIsWzI0LFsic2VsZWN0S2l0Iiwib25DbGVhclNlbGVjdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jcmVhdGUtY29sb3Itcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jcmVhdGUtY29sb3Itcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Iiwic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdLFtbMjQsWyJ0YWJpbmRleCJdXSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiXV0sWzI0LFsic2VsZWN0S2l0Il1dLFsyNCxbInNob3VsZERpc3BsYXlDbGVhcmFibGVCdXR0b24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImljb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzZWxlY3Rpb24taW5kaWNhdG9yIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLFtbInRyYW5zbGF0ZWR0aXRsZSJdLFtbMjgsImRhc2hlcml6ZSIsW1syNCxbInRpdGxlIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGV4dHMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyMiwibGFiZWwiXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyMiwiZGVzY3JpcHRpb24iXSx0cnVlXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWljb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiXSxbWzI0LFsidGFiaW5kZXgiXV0sWzI0LFsic2VsZWN0ZWRDb250ZW50Il1dLFsyNCxbInNlbGVjdEtpdCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNlbGVjdGVkQ29udGVudCIsImRhdGV0aW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3ItZGF0ZXRpbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiLCJkYXRldGltZSJdXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJjYXJldEljb24iXV1dLFtbImNsYXNzIl0sWyJjYXJldC1pY29uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXRlbSIsImljb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1pY29ucyJdLFs4XSxbMCwiXFxuICAgICJdLFs0LCJlYWNoIixbWzI0LFsiaXRlbSIsImljb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkYXRldGltZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWRhdGV0aW1lIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsiaXRlbSIsImRhdGV0aW1lIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9taW5pLXRhZy1jaG9vc2VyLWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvc2VsZWN0ZWQtY29sbGVjdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbInRyYW5zbGF0ZWRUaXRsZSIsImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIl0sW1syMywxLFsidmFsdWUiXV0sInRpbWVzIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVzZWxlY3RUYWciXSxudWxsXSxbMjMsMSxbInZhbHVlIl1dLFsyMywxLFsiY2xhc3NOYW1lcyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFnIixbWzIzLDEsWyJ2YWx1ZSJdXV0sW1sibm9IcmVmIl0sW3RydWVdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9zZWxlY3RlZC1jb2xsZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjb2xsZWN0aW9uIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiaGVhZGVyQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsInZhbHVlIiwic2VsZWN0ZWRDb250ZW50Iiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiLG51bGwsW1sic2VsZWN0S2l0Il0sW1syNCxbInNlbGVjdEtpdCJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJzZWxlY3RLaXQiLCJpc0xvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0S2l0IiwiZmlsdGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlbGVjdEtpdCIsImhhc05vQ29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VsZWN0X2tpdC5ub19jb250ZW50Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiY29sbGVjdGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjgsImNvbXBvbmVudC1mb3ItY29sbGVjdGlvbiIsW1syMywxLFsiaWRlbnRpZmllciJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dLG51bGxdXSxbWyJjb2xsZWN0aW9uIiwic2VsZWN0S2l0IiwidmFsdWUiXSxbWzIzLDEsW11dLFsyNCxbInNlbGVjdEtpdCJdXSxbMjQsWyJ2YWx1ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJpcy1sb2FkaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWxlY3Qta2l0LXdyYXBwZXIiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNob2ljZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic2VsZWN0ZWRDb250ZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiXSxbWzI0LFsidGFiaW5kZXgiXV0sWzIzLDEsW11dLFsyNCxbInNlbGVjdEtpdCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2hvaWNlIGlucHV0LXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmaWx0ZXJDb21wb25lbnQiXV1dLFtbInNlbGVjdEtpdCJdLFtbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdC9zZWxlY3RlZC1jYXRlZ29yeSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJvZHkiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJiYWRnZSJdLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGVkLW5hbWUiXSxbMTEsInRpdGxlIixbMjIsInRpdGxlIl1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syNCxbInZhbHVlIl1dXSxbWyJzaG93RGF0ZVJhbmdlIiwiZnVsbERheSJdLFt0cnVlLFsyNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmdWxsRGF5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGlvbi1pbmRpY2F0b3IiXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBlcmlvZC10aXRsZSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syNCxbInJvd1ZhbHVlIl1dXSxbWyJzaG93RGF0ZVJhbmdlIiwiZnVsbERheSJdLFt0cnVlLFsyNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmdWxsRGF5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInBpbm5lZC1vcHRpb25zIixudWxsLFtbInZhbHVlIiwidG9waWMiXSxbWzI0LFsicGlubmVkIl1dLFsyNCxbInRvcGljIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJyZWFzb24iXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJyZWFzb25UZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGlubmVkLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNvbGxlY3Rpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9uIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdC1raXQtZXJyb3IiXSxbOF0sWzEsWzIzLDEsW11dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L2Vycm9ycy1jb2xsZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzZWxlY3RLaXQiLCJpc0V4cGFuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtY29sbGVjdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9uIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syOCwiY29tcG9uZW50LWZvci1yb3ciLFtbMjQsWyJjb2xsZWN0aW9uIiwiaWRlbnRpZmllciJdXSxbMjMsMSxbXV0sWzI0LFsic2VsZWN0S2l0Il1dXSxudWxsXV0sW1siaXRlbSIsInZhbHVlIiwic2VsZWN0S2l0Il0sW1syMywxLFtdXSxbMjQsWyJ2YWx1ZSJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWNvbGxlY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtZmlsdGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0YWJpbmRleCIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJhdXRvY29tcGxldGUiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwic3BlbGxjaGVjayIsInZhbHVlIiwiaW5wdXQiLCJrZXlEb3duIl0sWy0xLCJmaWx0ZXItaW5wdXQiLFsyNCxbInBsYWNlaG9sZGVyIl1dLCJvZmYiLCJvZmYiLCJvZmYiLGZhbHNlLFsyOCwicmVhZG9ubHkiLFtbMjQsWyJzZWxlY3RLaXQiLCJmaWx0ZXIiXV1dLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbklucHV0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uS2V5ZG93biJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsImZpbHRlckljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmaWx0ZXJJY29uIl1dXSxbWyJjbGFzcyJdLFsiZmlsdGVyLWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImljb24iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLFtbInRyYW5zbGF0ZWR0aXRsZSJdLFtbMjgsImRhc2hlcml6ZSIsW1syNCxbInRpdGxlIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImljb24iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbMSxbMjgsImQtaWNvbiIsW1syMywxLFtdXV0sbnVsbF0sZmFsc2VdLFswLCIgIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG5cXG4iXSxbMSxbMjgsImNvbXBvbmVudCIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJzZWxlY3RlZE5hbWVDb21wb25lbnQiXV1dLFtbInRhYmluZGV4IiwiaXRlbSIsInNlbGVjdEtpdCJdLFtbMjQsWyJ0YWJpbmRleCJdXSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiXV0sWzI0LFsic2VsZWN0S2l0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdGVkLW5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJzaG93RnVsbFRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIml0ZW0iLCJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpdGVtIiwiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjIsImxhYmVsIl0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsImNsZWFyT25DbGljayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiIsImFjdGlvblBhcmFtIl0sWyJidG4tY2xlYXIiLCJ0aW1lcyIsWzI0LFsic2VsZWN0S2l0IiwiZGVzZWxlY3QiXV0sWzI0LFsiaXRlbSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJpdGVtIiwiaWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiaXRlbSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdGVkLW5hbWUifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zaW5nbGUtc2VsZWN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjb2xsZWN0aW9uIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiaGVhZGVyQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsInZhbHVlIiwic2VsZWN0ZWRDb250ZW50Iiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiLG51bGwsW1sic2VsZWN0S2l0Il0sW1syNCxbInNlbGVjdEtpdCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiZmlsdGVyQ29tcG9uZW50Il1dXSxbWyJzZWxlY3RLaXQiXSxbWzI0LFsic2VsZWN0S2l0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNlbGVjdEtpdCIsImlzTG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzZWxlY3RLaXQiLCJmaWx0ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0S2l0IiwiaGFzTm9Db250ZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibm8tY29udGVudCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWxlY3Rfa2l0Lm5vX2NvbnRlbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syOCwiY29tcG9uZW50LWZvci1jb2xsZWN0aW9uIixbWzIzLDEsWyJpZGVudGlmaWVyIl1dLFsyNCxbInNlbGVjdEtpdCJdXV0sbnVsbF1dLFtbImNvbGxlY3Rpb24iLCJzZWxlY3RLaXQiLCJ2YWx1ZSJdLFtbMjMsMSxbXV0sWzI0LFsic2VsZWN0S2l0Il1dLFsyNCxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWxvYWRpbmciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIl0sWyJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdC1raXQtd3JhcHBlciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3QifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctY2hvb3Nlci1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syNCxbInJvd1ZhbHVlIl1dXSxbWyJjb3VudCIsIm5vSHJlZiJdLFtbMjQsWyJpdGVtIiwiY291bnQiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1jaG9vc2VyLXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1kcm9wL3RhZy1kcm9wLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiLCJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV0sWzI0LFsic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiY2FyZXRJY29uIl1dXSxbWyJjbGFzcyJdLFsiY2FyZXQtaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjQsWyJyb3dWYWx1ZSJdXV0sW1sibm9IcmVmIiwiY291bnQiXSxbdHJ1ZSxbMjQsWyJpdGVtIiwiY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJoZWFkaW5nIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvdG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIixudWxsLFtbInZhbHVlIiwidG9waWMiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbWzI0LFsibm90aWZpY2F0aW9uTGV2ZWwiXV0sWzI0LFsidG9waWMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1sic2hvd0Z1bGxUaXRsZSIsInBsYWNlbWVudCJdLFtbMjQsWyJzaG93RnVsbFRpdGxlIl1dLFsyNCxbInBsYWNlbWVudCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImFwcGVuZFJlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlYXNvbiJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyNCxbInRvcGljIiwiZGV0YWlscyIsIm5vdGlmaWNhdGlvblJlYXNvblRleHQiXV0sdHJ1ZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b3BpYy1ub3RpZmljYXRpb25zLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIl1dXSxbWyJpbWFnZVNpemUiXSxbInRpbnkiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VybmFtZSJdLFs4XSxbMSxbMjgsImZvcm1hdC11c2VybmFtZSIsW1syNCxbIml0ZW0iLCJ1c2VybmFtZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyNCxbIml0ZW0iLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLXJvdyJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9taXhpbnMvZm9jdXMtZXZlbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG09W10sZj1FbWJlci5BcHBsaWNhdGlvbi5leHRlbmQocy5kZWZhdWx0LChhPSgwLG4ub2JzZXJ2ZXMpKCJfZG9jVGl0bGUiLCJoYXNGb2N1cyIsImNvbnRleHRDb3VudCIsIm5vdGlmaWNhdGlvbkNvdW50IiksbD0oMCxuLmRlZmF1bHQpKCJjb250ZXh0Q291bnQiLCJub3RpZmljYXRpb25Db3VudCIpLHU9KDAsbi5vYnNlcnZlcykoImNvbnRleHRDb3VudCIsIm5vdGlmaWNhdGlvbkNvdW50IiksYz0oMCxuLm9ic2VydmVzKSgiaGFzRm9jdXMiKSxkPSgwLG4uZGVmYXVsdCkoImN1cnJlbnRBc3NldFZlcnNpb24iLCJkZXNpcmVkQXNzZXRWZXJzaW9uIikscihwPXtyb290RWxlbWVudDoiI21haW4iLF9kb2NUaXRsZTpkb2N1bWVudC50aXRsZSxSQVdfVEVNUExBVEVTOnt9LF9fd2lkZ2V0X2hlbHBlcnM6e30sY3VzdG9tRXZlbnRzOntwYXN0ZToicGFzdGUifSxyZXNldDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxNb3VzZXRyYXAucmVzZXQoKX0sZ2V0VVJMOmZ1bmN0aW9uKGUpe3JldHVybiBlJiYoIi8iPT09ZXx8L15cL1teXC9dLy50ZXN0KGUpKT8oIi8iIT09ZVswXSYmKGU9Ii8iK2UpLGUuc3RhcnRzV2l0aChmLkJhc2VVcmkpP2U6Zi5CYXNlVXJpK2UpOmV9LGdldFVSTFdpdGhDRE46ZnVuY3Rpb24oZSl7cmV0dXJuIGU9Zi5nZXRVUkwoZSksZi5DRE4mJi9eXC9bXlwvXS8udGVzdChlKT9lPWYuQ0ROK2U6Zi5TM0NETiYmKGU9ZS5yZXBsYWNlKGYuUzNCYXNlVXJsLGYuUzNDRE4pKSxlfSxSZXNvbHZlcjooMCx0LmJ1aWxkUmVzb2x2ZXIpKCJkaXNjb3Vyc2UiKSxfdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZG9jVGl0bGV8fGYuU2l0ZVNldHRpbmdzLnRpdGxlOyQoInRpdGxlIikudGV4dCgpIT09ZSYmJCgidGl0bGUiKS50ZXh0KGUpO3ZhciB0PXRoaXMuZGlzcGxheUNvdW50LG49dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5keW5hbWljX2Zhdmljb247MDx0JiYhbiYmKGU9IigiK3QrIikgIitlKSxkb2N1bWVudC50aXRsZT1lfSxkaXNwbGF5Q291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmIm5vdGlmaWNhdGlvbnMiPT09dGhpcy5jdXJyZW50VXNlci5nZXQoInRpdGxlX2NvdW50X21vZGUiKT90aGlzLm5vdGlmaWNhdGlvbkNvdW50OnRoaXMuY29udGV4dENvdW50fSxmYXZpY29uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlLHQ7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5nZXQoImR5bmFtaWNfZmF2aWNvbiIpJiYoZT1mLlNpdGVTZXR0aW5ncy5zaXRlX2Zhdmljb25fdXJsLC9eaHR0cC8udGVzdChlKSYmKGU9Zi5nZXRVUkwoIi9mYXZpY29uL3Byb3hpZWQ/IitlbmNvZGVVUklDb21wb25lbnQoZSkpKSx0PXRoaXMuZGlzcGxheUNvdW50LG5ldyB3aW5kb3cuRmF2Y291bnQoZSkuc2V0KHQpKX0sdXBkYXRlQ29udGV4dENvdW50OmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJjb250ZXh0Q291bnQiLGUpfSx1cGRhdGVOb3RpZmljYXRpb25Db3VudDpmdW5jdGlvbihlKXt0aGlzLmhhc0ZvY3VzfHx0aGlzLnNldCgibm90aWZpY2F0aW9uQ291bnQiLGUpfSxpbmNyZW1lbnRCYWNrZ3JvdW5kQ29udGV4dENvdW50OmZ1bmN0aW9uKCl7dGhpcy5oYXNGb2N1c3x8KHRoaXMuc2V0KCJiYWNrZ3JvdW5kTm90aWZ5IiwhMCksdGhpcy5zZXQoImNvbnRleHRDb3VudCIsKHRoaXMuY29udGV4dENvdW50fHwwKSsxKSl9LHJlc2V0Q291bnRzOmZ1bmN0aW9uKCl7dGhpcy5oYXNGb2N1cyYmdGhpcy5iYWNrZ3JvdW5kTm90aWZ5JiZ0aGlzLnNldCgiY29udGV4dENvdW50IiwwKSx0aGlzLnNldCgiYmFja2dyb3VuZE5vdGlmeSIsITEpLHRoaXMuaGFzRm9jdXMmJnRoaXMuc2V0KCJub3RpZmljYXRpb25Db3VudCIsMCl9LGF1dGhlbnRpY2F0aW9uQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGYuX19jb250YWluZXJfXy5sb29rdXAoImNvbnRyb2xsZXI6bG9naW4iKS5hdXRoZW50aWNhdGlvbkNvbXBsZXRlKGUpfSxzdGFydDpmdW5jdGlvbigpeyQoIm5vc2NyaXB0IikucmVtb3ZlKCksT2JqZWN0LmtleXMocmVxdWlyZWpzLl9lYWtfc2VlbikuZm9yRWFjaChmdW5jdGlvbihlKXtpZigvXC9wcmVcLWluaXRpYWxpemVyc1wvLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYW4gaW5pdGlhbGl6ZXIuIik7dmFyIG49dC5kZWZhdWx0LGk9bi5pbml0aWFsaXplO24uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2kuY2FsbCh0aGlzLGYuX19jb250YWluZXJfXyxmKX0sZi5pbml0aWFsaXplcihuKX19KSxPYmplY3Qua2V5cyhyZXF1aXJlanMuX2Vha19zZWVuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKC9cL2luaXRpYWxpemVyc1wvLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYW4gaW5pdGlhbGl6ZXIuIik7dmFyIG49dC5kZWZhdWx0LGk9bi5pbml0aWFsaXplO24uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2kuY2FsbCh0aGlzLGYuX19jb250YWluZXJfXyxmKX0sZi5pbnN0YW5jZUluaXRpYWxpemVyKG4pfX0pO3ZhciB0PXJlcXVpcmVqcygiZGlzY291cnNlL2xpYi9wbHVnaW4tYXBpIikud2l0aFBsdWdpbkFwaSxuPTA7bS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2YuaW5zdGFuY2VJbml0aWFsaXplcih7bmFtZToiX2Rpc2NvdXJzZV9wbHVnaW5fIisgKytuLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3QoZS52ZXJzaW9uLGUuY29kZSl9fSl9KX0scmVxdWlyZXNSZWZyZXNoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQmJmUhPT10fSxfcmVnaXN0ZXJQbHVnaW5Db2RlOmZ1bmN0aW9uKGUsdCl7bS5wdXNoKHt2ZXJzaW9uOmUsY29kZTp0fSl9LGFzc2V0VmVyc2lvbjooMCxpLmNvbXB1dGVkKSh7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudEFzc2V0VmVyc2lvbn0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQmJih0aGlzLmN1cnJlbnRBc3NldFZlcnNpb24/dGhpcy5zZXQoImRlc2lyZWRBc3NldFZlcnNpb24iLHQpOnRoaXMuc2V0KCJjdXJyZW50QXNzZXRWZXJzaW9uIix0KSksdGhpcy5jdXJyZW50QXNzZXRWZXJzaW9ufX0pfSwiX3RpdGxlQ2hhbmdlZCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX3RpdGxlQ2hhbmdlZCIpLHApLHIocCwiZGlzcGxheUNvdW50IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJkaXNwbGF5Q291bnQiKSxwKSxyKHAsImZhdmljb25DaGFuZ2VkIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmYXZpY29uQ2hhbmdlZCIpLHApLHIocCwicmVzZXRDb3VudHMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlc2V0Q291bnRzIikscCkscihwLCJyZXF1aXJlc1JlZnJlc2giLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlcXVpcmVzUmVmcmVzaCIpLHApLHApKS5jcmVhdGUoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiTW9kZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmRlZmF1bHQpKCJVc2UgYW4gYEBlbWJlci9vYmplY3RgIGluc3RlYWQgb2YgRGlzY291cnNlLk1vZGVsIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksaS5kZWZhdWx0fX0pLGUuZGVmYXVsdD1mfSksd2luZG93LkRpc2NvdXJzZT1yZXF1aXJlanMoImRpc2NvdXJzZSIpLmRlZmF1bHQsZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXt0cnl7dmFyIHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9Lzxjb2RlW14+XSo+KFtcc1xTXSo/KTxcL2NvZGU+L2dpLG49ZSxpPXQuZXhlYyhuKSxzPVtdO2Zvcig7aTspe3ZhciBvPSJESVNDT1VSU0VfUExBQ0VIT0xERVJfIisocy5sZW5ndGgrMSkscj1pWzFdO3I9JCgiPGRpdiAvPiIpLmh0bWwocikudGV4dCgpLnJlcGxhY2UoL15cbi8sIiIpLnJlcGxhY2UoL1xuJC8sIiIpLHMucHVzaChbbyxyXSksZT1lLnJlcGxhY2UoaVswXSwiPGNvZGU+IitvKyI8L2NvZGU+IiksaT10LmV4ZWMobil9cmV0dXJue2VsZW1lbnRzOmZ1bmN0aW9uIGUodCl7aWYoIiN0ZXh0IiE9PXQubm9kZU5hbWUmJnZvaWQgMCE9PXQubGVuZ3RoKXtmb3IodmFyIG49W10saT0wO2k8dC5sZW5ndGg7KytpKSIjY29tbWVudCIhPT10W2ldLm5vZGVOYW1lJiZuLnB1c2goZSh0W2ldKSk7cmV0dXJuIG59dmFyIHM9e25hbWU6dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGRhdGE6dC5kYXRhLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319O2lmKCIjdGV4dCI9PT10Lm5vZGVOYW1lKXJldHVybiBzO2Zvcih2YXIgbz0wO288dC5jaGlsZE5vZGVzLmxlbmd0aDsrK28pIiNjb21tZW50IiE9PXQuY2hpbGROb2Rlc1tvXS5ub2RlTmFtZSYmcy5jaGlsZHJlbi5wdXNoKGUodC5jaGlsZE5vZGVzW29dKSk7Zm9yKHZhciByPTA7cjx0LmF0dHJpYnV0ZXMubGVuZ3RoOysrcilzLmF0dHJpYnV0ZXNbdC5hdHRyaWJ1dGVzW3JdLm5hbWVdPXQuYXR0cmlidXRlc1tyXS52YWx1ZTtyZXR1cm4gc30oJC5wYXJzZUhUTUwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvPGJvZHlbXj5dKj4oW1xzXFNdKj8pPFwvYm9keT4vKTtlPShlPXQ/dFsxXTplKS5yZXBsYWNlKC9ccnxcbnwmbmJzcDsvZywiICIpO3ZhciBuPXZvaWQgMDtmb3IoO249ZS5tYXRjaCgvPFteXHM+XStbXj5dKj5cc3syLH08W15ccz5dK1tePl0qPi8pOyllPWUucmVwbGFjZShuWzBdLG5bMF0ucmVwbGFjZSgvPlxzezIsfTwvLCI+IDwiKSk7cmV0dXJuIGU9ZS5yZXBsYWNlKC88IVxbaWYgIT9cUypdPlteIV0qPCFcW2VuZGlmXT4vZywiIil9KGUpKSkscGxhY2Vob2xkZXJzOnN9fShlKSxuPXQuZWxlbWVudHMsaT10LnBsYWNlaG9sZGVycyxzPWgucGFyc2UobikudHJpbSgpO3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7dD10LnJlcGxhY2UoZVswXSxlWzFdKX0pLHR9KHM9KHM9cy5yZXBsYWNlKC9ePGI+LywiIikucmVwbGFjZSgvPFwvYj4kLywiIikudHJpbSgpKS5yZXBsYWNlKC9cbiArL2csIlxuIikucmVwbGFjZSgvICtcbi9nLCJcbiIpLnJlcGxhY2UoLyB7Mix9L2csIiAiKS5yZXBsYWNlKC9cbnszLH0vZywiXG5cbiIpLnJlcGxhY2UoL1x0L2csIiAgIiksaSl9Y2F0Y2goZSl7cmV0dXJuIiJ9fTtmdW5jdGlvbiByKGUsdCxuKXtudWxsPT09ZSYmKGU9RnVuY3Rpb24ucHJvdG90eXBlKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYodm9pZCAwPT09aSl7dmFyIHM9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09cz92b2lkIDA6cihzLHQsbil9aWYoInZhbHVlImluIGkpcmV0dXJuIGkudmFsdWU7dmFyIG89aS5nZXQ7cmV0dXJuIHZvaWQgMCE9PW8/by5jYWxsKG4pOnZvaWQgMH1mdW5jdGlvbiBhKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24gbChlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9ZnVuY3Rpb24gbyhlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gdShlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfXZhciBjPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX07ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxzKy8sIiIpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvXHMrJC8sIiIpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuKGUucmVwbGFjZSgvXFxcfC8sIiIpLm1hdGNoKC9cfC9nKXx8W10pLmxlbmd0aH12YXIgbT1bIk1zb0xpc3RQYXJhZ3JhcGhDeFNwRmlyc3QiLCJNc29MaXN0UGFyYWdyYXBoQ3hTcE1pZGRsZSIsIk1zb0xpc3RQYXJhZ3JhcGhDeFNwTGFzdCJdLG49ZS5UYWc9KGMoZixbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybih0aGlzLnByZWZpeHx8dGhpcy5zdWZmaXgpJiYoZT1bdGhpcy5wcmVmaXgsZSx0aGlzLnN1ZmZpeF0uam9pbigiIikpLHRoaXMuaW5saW5lJiYoZT0iICIrZSsiICIpLGV9fSx7a2V5OiJ0b01hcmtkb3duIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC5pbm5lck1hcmtkb3duKCk7cmV0dXJuIGUmJmUudHJpbSgpP3RoaXMuZGVjb3JhdGUoZSk6ZX19XSxbe2tleToiYmxvY2tzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiYWRkcmVzcyIsImFydGljbGUiLCJkZCIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJtYWluIiwibmF2IiwicCIsInByZSIsInNlY3Rpb24iXX19LHtrZXk6ImhlYWRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2Il19fSx7a2V5OiJlbXBoYXNlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bWyJiIiwiKioiXSxbInN0cm9uZyIsIioqIl0sWyJpIiwiKiJdLFsiZW0iLCIqIl0sWyJzIiwifn4iXSxbInN0cmlrZSIsIn5+Il1dfX0se2tleToic2xpY2VzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiZHQiLCJkZCIsInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdfX0se2tleToidHJpbW1hYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdLmNvbmNhdChvKGYuYmxvY2tzKCkpLG8oZi5oZWFkaW5ncygpKSxvKGYuc2xpY2VzKCkpLFsiYXNpZGUiLCJsaSIsInRkIiwidGgiLCJiciIsImhyIiwiYmxvY2txdW90ZSIsInRhYmxlIiwib2wiLCJ0ciIsInVsIl0pfX0se2tleToid2hpdGVsaXN0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bImlucyIsImRlbCIsInNtYWxsIiwiYmlnIiwia2JkIiwicnVieSIsInJ0IiwicmIiLCJycCJdfX0se2tleToiYmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gbChzLGYpLGMocyxbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZWxlbWVudC5wYXJlbnQ7cmV0dXJuInAiPT09dGhpcy5uYW1lJiZ0JiYibGkiPT09dC5uYW1lJiYodGhpcy5nYXA9IiIpLCIiK3RoaXMuZ2FwK3RoaXMucHJlZml4K2UrdGhpcy5zdWZmaXgrdGhpcy5nYXB9fV0pLHM7ZnVuY3Rpb24gcygpe3UodGhpcyxzKTt2YXIgZT1hKHRoaXMsKHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpLmNhbGwodGhpcyx0LG4saSkpO3JldHVybiBlLmdhcD0iXG5cbiIsZX19fSx7a2V5OiJhc2lkZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChvLGYuYmxvY2soImFzaWRlIikpLGMobyxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXtpZighL1xicXVvdGVcYi8udGVzdCh0aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5jbGFzcykpcmV0dXJuIHIoby5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yoby5wcm90b3R5cGUpLCJ0b01hcmtkb3duIix0aGlzKS5jYWxsKHRoaXMpO3ZhciBlPXRoaXMuZWxlbWVudC5jaGlsZHJlbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiJibG9ja3F1b3RlIj09PWUubmFtZX0pO2lmKCFlKXJldHVybiByKG8ucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8ucHJvdG90eXBlKSwidG9NYXJrZG93biIsdGhpcykuY2FsbCh0aGlzKTt2YXIgdD1oLnBhcnNlKFtlXSx0aGlzLmVsZW1lbnQpfHwiIjtpZigwPT09KHQ9dC50cmltKCkucmVwbGFjZSgvXj4vZywiIikpLmxlbmd0aClyZXR1cm4iIjt2YXIgbj10aGlzLmVsZW1lbnQuYXR0cmlidXRlc1siZGF0YS11c2VybmFtZSJdLGk9dGhpcy5lbGVtZW50LmF0dHJpYnV0ZXNbImRhdGEtcG9zdCJdLHM9dGhpcy5lbGVtZW50LmF0dHJpYnV0ZXNbImRhdGEtdG9waWMiXTtyZXR1cm4iXG5cbiIrKG4mJmkmJnM/J1txdW90ZT0iJytuKyIsIHBvc3Q6IitpKyIsIHRvcGljOiIrcysnIl0nOiJbcXVvdGVdIikrIlxuIit0KyJcblsvcXVvdGVdXG5cbiJ9fV0pLG87ZnVuY3Rpb24gbygpe3JldHVybiB1KHRoaXMsbyksYSh0aGlzLChvLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pKS5jYWxsKHRoaXMpKX19fSx7a2V5OiJoZWFkaW5nIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLmNvbmNhdChvKEFycmF5KHQpKSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIiMifSkuam9pbigiIikrIiAiO3JldHVybiBmLmJsb2NrKGUsbiwiIil9fSx7a2V5OiJlbXBoYXNpcyIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbChuLGYpLGMobixbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2UuaW5jbHVkZXMoIlxuIikmJih0aGlzLnByZWZpeD0iPCIrdGhpcy5uYW1lKyI+Iix0aGlzLnN1ZmZpeD0iPC8iK3RoaXMubmFtZSsiPiIpO3ZhciB0PWUubWF0Y2goL15ccy8pfHxbIiJdO3JldHVybiB0aGlzLnByZWZpeD10WzBdK3RoaXMucHJlZml4LHQ9ZS5tYXRjaCgvXHMkLyl8fFsiIl0sdGhpcy5zdWZmaXg9dGhpcy5zdWZmaXgrdFswXSxyKG4ucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4ucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlLnRyaW0oKSl9fV0pLG47ZnVuY3Rpb24gbigpe3JldHVybiB1KHRoaXMsbiksYSh0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMsZSx0LHQsITApKX19fSx7a2V5OiJ3aGl0ZWxpc3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBsKHQsZiksdDtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxhKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcyxlLCI8IitlKyI+IiwiPC8iK2UrIj4iKSl9fX0se2tleToicmVwbGFjZSIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbChpLGYpLGMoaSxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0fX1dKSxpO2Z1bmN0aW9uIGkoKXt1KHRoaXMsaSk7dmFyIGU9YSh0aGlzLChpLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpKS5jYWxsKHRoaXMsdCwiIiwiIikpO3JldHVybiBlLnRleHQ9bixlfX19LHtrZXk6InNwYW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGwodCxmKSxjKHQsW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4iYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIGNsaWNrcyI9PT10aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5jbGFzcz8iIjpyKHQucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlKX19XSksdDtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxhKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcywic3BhbiIpKX19fSx7a2V5OiJsaW5rIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKGUsZiksYyhlLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLmVsZW1lbnQsaT1uLmF0dHJpYnV0ZXM7aWYoL15tZW50aW9uLy50ZXN0KGkuY2xhc3MpJiYiQCI9PT1lWzBdKXJldHVybiBlO2lmKCJoYXNodGFnIj09PWkuY2xhc3MmJiIjIj09PWVbMF0pcmV0dXJuIGU7aWYoWyJsaWdodGJveCIsImQtbGF6eWxvYWQiXS5pbmNsdWRlcyhpLmNsYXNzKSYmKHQ9ImltZyIsKG4uY2hpbGRyZW58fFtdKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSkpKXt2YXIgcz1pLmhyZWYsbz0obi5jaGlsZHJlbnx8W10pLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuImltZyI9PT1lLm5hbWV9KS5hdHRyaWJ1dGVzWyJkYXRhLWJhc2U2Mi1zaGExIl07cmV0dXJuIG8mJihzPSJ1cGxvYWQ6Ly8iK28pLCIhWyIrKGU9aS50aXRsZXx8IiIpKyJdKCIrcysiKSJ9cmV0dXJuIGkuaHJlZiYmZSE9PWkuaHJlZj8iWyIrKGU9ZS5yZXBsYWNlKC9cbnsyLH0vZywiXG4iKSkrIl0oIitpLmhyZWYrIikiOmV9fV0pLGU7ZnVuY3Rpb24gZSgpe3JldHVybiB1KHRoaXMsZSksYSh0aGlzLChlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKS5jYWxsKHRoaXMsImEiLCIiLCIiLCEwKSl9fX0se2tleToiaW1hZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGwoZSxmKSxjKGUsW3trZXk6InRvTWFya2Rvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LHQ9ZS5hdHRyaWJ1dGVzLG49ZS5wYXJlbnQmJmUucGFyZW50LmF0dHJpYnV0ZXN8fHt9LGk9dC5zcmN8fG4uc3JjLHM9dFsiZGF0YS1iYXNlNjItc2hhMSJdO3MmJihpPSJ1cGxvYWQ6Ly8iK3MpO3ZhciBvPXQuY2xhc3N8fG4uY2xhc3M7aWYobyYmby5pbmNsdWRlcygiZW1vamkiKSlyZXR1cm4gdC50aXRsZXx8bi50aXRsZTtpZihpKXt2YXIgcj10LmFsdHx8bi5hbHR8fCIiLGE9dC53aWR0aHx8bi53aWR0aCxsPXQuaGVpZ2h0fHxuLmhlaWdodCx1PXQudGl0bGU7cmV0dXJuIGEmJmwmJihyPXIrKHRoaXMuZWxlbWVudC5wYXJlbnROYW1lcy5pbmNsdWRlcygidGFibGUiKT8iXFx8IjoifCIpK2ErIngiK2wpLCIhWyIrcisiXSgiK2krKHU/JyAiJyt1KyciJzoiIikrIikifXJldHVybiIifX1dKSxlO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdSh0aGlzLGUpLGEodGhpcywoZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSkuY2FsbCh0aGlzLCJpbWciLCIiLCIiLCEwKSl9fX0se2tleToic2xpY2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGwobixmKSxjKG4sW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm5leHR8fCh0aGlzLnN1ZmZpeD0iIiksIiIrZSt0aGlzLnN1ZmZpeH19XSksbjtmdW5jdGlvbiBuKCl7cmV0dXJuIHUodGhpcyxuKSxhKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxlLCIiLHQpKX19fSx7a2V5OiJjZWxsIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbCh0LGYpLGModCxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQuaW5uZXJNYXJrZG93bigpLnRyaW0oKTtpZihlLmluY2x1ZGVzKCJcbiIpKWZvcih2YXIgdD10aGlzLmVsZW1lbnQ7dD10LnBhcmVudDspaWYoInRhYmxlIj09PXQubmFtZSl7dC50YWcoKS5pbnZhbGlkKCk7YnJlYWt9cmV0dXJuIHRoaXMuZGVjb3JhdGUoZSl9fV0pLHQ7ZnVuY3Rpb24gdCgpe3JldHVybiB1KHRoaXMsdCksYSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsZSwifCIpKX19fSx7a2V5OiJsaSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChzLGYuc2xpY2UoImxpIiwiXG4iKSksYyhzLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbGVtZW50LmZpbHRlclBhcmVudE5hbWVzKFsib2wiLCJ1bCJdKS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4iXHQifSkuam9pbigiIiksbj10aGlzLmVsZW1lbnQuYXR0cmlidXRlcztpZihtLmluY2x1ZGVzKG4uY2xhc3MpKXRyeXt2YXIgaT1wYXJzZUludChuLnN0eWxlLm1hdGNoKC9sZXZlbC4vKVswXS5yZXBsYWNlKCJsZXZlbCIsIiIpLDEwKSx0PUFycmF5KGkpLmpvaW4oIlx0IikrdH1maW5hbGx5eyJNc29MaXN0UGFyYWdyYXBoQ3hTcEZpcnN0Ij09PW4uY2xhc3M/dD0iXG5cbiIrdDoiTXNvTGlzdFBhcmFncmFwaEN4U3BMYXN0Ij09PW4uY2xhc3MmJihlKz0iXG4iKX1yZXR1cm4gcihzLnByb3RvdHlwZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzLnByb3RvdHlwZSksImRlY29yYXRlIix0aGlzKS5jYWxsKHRoaXMsdCsiKiAiK2QoZSkpfX1dKSxzO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdSh0aGlzLHMpLGEodGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fSx7a2V5OiJjb2RlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKHQsZiksYyh0LFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5wYXJlbnROYW1lcy5pbmNsdWRlcygicHJlIik/KHRoaXMucHJlZml4PSJcblxuYGBgXG4iLHRoaXMuc3VmZml4PSJcbmBgYFxuXG4iKTp0aGlzLmlubGluZT0hMCxlPSQoIjx0ZXh0YXJlYSAvPiIpLmh0bWwoZSkudGV4dCgpLHIodC5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLGUpfX1dKSx0O2Z1bmN0aW9uIHQoKXtyZXR1cm4gdSh0aGlzLHQpLGEodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzLCJjb2RlIiwiYCIsImAiKSl9fX0se2tleToiYmxvY2txdW90ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbCh0LGYpLGModCxbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlPWUudHJpbSgpLnJlcGxhY2UoL1xuezIsfT4vZywiXG4+IikucmVwbGFjZSgvXG4vZywiXG4+ICIpLHIodC5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLGUpfX1dKSx0O2Z1bmN0aW9uIHQoKXtyZXR1cm4gdSh0aGlzLHQpLGEodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzLCJibG9ja3F1b3RlIiwiXG4+ICIsIlxuIikpfX19LHtrZXk6InRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKHMsZi5ibG9jaygidGFibGUiKSksYyhzLFt7a2V5OiJpbnZhbGlkIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaXNWYWxpZD0hMSx0aGlzLmVsZW1lbnQucGFyZW50TmFtZXMuaW5jbHVkZXMoInRhYmxlIikpZm9yKHZhciBlPXRoaXMuZWxlbWVudDtlPWUucGFyZW50OylpZigidGFibGUiPT09ZS5uYW1lKXtlLnRhZygpLmludmFsaWQoKTticmVha319fSx7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQsbj0oZT1yKHMucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlKS5yZXBsYWNlKC9cfFxuezIsfVx8L2csInxcbnwiKSkudHJpbSgpLnNwbGl0KCJcbiIpLGk9cChuWzBdKTtyZXR1cm4gdGhpcy5pc1ZhbGlkPXRoaXMuaXNWYWxpZCYmMTxuLmxlbmd0aCYmMjxpJiZuLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlJiZwKHQpPD1pfSksdGhpcy5pc1ZhbGlkPyh0PVtdLmNvbmNhdChvKEFycmF5KGktMSkpKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4ifCAtLS0gIn0pLmpvaW4oIiIpKyJ8XG4iLGU9ZS5yZXBsYWNlKCJ8XG4iLCJ8XG4iK3QpKTooZT1lLnJlcGxhY2UoL1x8L2csIiAiKSx0aGlzLmludmFsaWQoKSksZX19XSkscztmdW5jdGlvbiBzKCl7dSh0aGlzLHMpO3ZhciBlPWEodGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuY2FsbCh0aGlzKSk7cmV0dXJuIGUuaXNWYWxpZD0hMCxlfX19LHtrZXk6Imxpc3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBsKGksZi5ibG9jayhlKSksYyhpLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIsbj10aGlzLmVsZW1lbnQucGFyZW50O3JldHVybiBuJiYidWwiPT09bi5uYW1lJiYodGhpcy5nYXA9IiIsdGhpcy5zdWZmaXg9IlxuIiksdGhpcy5lbGVtZW50LmZpbHRlclBhcmVudE5hbWVzKFsibGkiXSkubGVuZ3RoJiYodGhpcy5nYXA9IiIsdD0iXG4iKSx0K3IoaS5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaS5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLHMoZSkpfX1dKSxpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gdSh0aGlzLGkpLGEodGhpcywoaS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fSx7a2V5OiJvbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChpLGYubGlzdCgib2wiKSksYyhpLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PShlPSJcbiIrZSkubWF0Y2goL1xuXHQqXCovKVswXSxuPXBhcnNlSW50KHRoaXMuZWxlbWVudC5hdHRyaWJ1dGVzLnN0YXJ0fHwxLDEwKTtlLmluY2x1ZGVzKHQpO24rKyllPWUucmVwbGFjZSh0LHQucmVwbGFjZSgiKiIsbisiLiIpKTtyZXR1cm4gcihpLnByb3RvdHlwZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpLnByb3RvdHlwZSksImRlY29yYXRlIix0aGlzKS5jYWxsKHRoaXMsZS5zbGljZSgxKSl9fV0pLGk7ZnVuY3Rpb24gaSgpe3JldHVybiB1KHRoaXMsaSksYSh0aGlzLChpLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX19LHtrZXk6InRyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKGUsZi5zbGljZSgidHIiLCJ8XG4iKSksYyhlLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5uZXh0fHwodGhpcy5zdWZmaXg9InwiKSwiIitlK3RoaXMuc3VmZml4fX1dKSxlO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdSh0aGlzLGUpLGEodGhpcywoZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fV0pLGYpO2Z1bmN0aW9uIGYoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiLGk9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTt1KHRoaXMsZiksdGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9dCx0aGlzLnN1ZmZpeD1uLHRoaXMuaW5saW5lPWl9dmFyIGg9KGMoYixbe2tleToidGFnIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uZXcoW10uY29uY2F0KG8obi5ibG9ja3MoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uYmxvY2soZSl9KSksbyhuLmhlYWRpbmdzKCkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uaGVhZGluZyhlLHQrMSl9KSksbyhuLnNsaWNlcygpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5zbGljZShlLCJcbiIpfSkpLG8obi5lbXBoYXNlcygpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5lbXBoYXNpcyhlWzBdLGVbMV0pfSkpLG8obi53aGl0ZWxpc3RzKCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLndoaXRlbGlzdChlKX0pKSxbbi5hc2lkZSgpLG4uY2VsbCgidGQiKSxuLmNlbGwoInRoIiksbi5yZXBsYWNlKCJiciIsIlxuIiksbi5yZXBsYWNlKCJociIsIlxuLS0tXG4iKSxuLnJlcGxhY2UoImhlYWQiLCIiKSxuLmxpKCksbi5saW5rKCksbi5pbWFnZSgpLG4uY29kZSgpLG4uYmxvY2txdW90ZSgpLG4udGFibGUoKSxuLnRyKCksbi5vbCgpLG4ubGlzdCgidWwiKSxuLnNwYW4oKV0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4obmV3IGUpLm5hbWU9PT10Lm5hbWV9KVswXXx8bik7cmV0dXJuIGUuZWxlbWVudD10aGlzLGV9fSx7a2V5OiJpbm5lck1hcmtkb3duIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBiLnBhcnNlQ2hpbGRyZW4odGhpcyl9fSx7a2V5OiJsZWZ0VHJpbW1hYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZpb3VzJiZuLnRyaW1tYWJsZSgpLmluY2x1ZGVzKHRoaXMucHJldmlvdXMubmFtZSl9fSx7a2V5OiJyaWdodFRyaW1tYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0JiZuLnRyaW1tYWJsZSgpLmluY2x1ZGVzKHRoaXMubmV4dC5uYW1lKX19LHtrZXk6InRleHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5kYXRhfHwiIjtyZXR1cm4gdGhpcy5sZWZ0VHJpbW1hYmxlKCkmJihlPWQoZSkpLHRoaXMucmlnaHRUcmltbWFibGUoKSYmKGU9cyhlKSksZT1lLnJlcGxhY2UoL1sgXHRdKy9nLCIgIiksZX19LHtrZXk6InRvTWFya2Rvd24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIiN0ZXh0Ij09PXRoaXMubmFtZT90aGlzLnRleHQoKTp0aGlzLnRhZygpLnRvTWFya2Rvd24oKX19LHtrZXk6ImZpbHRlclBhcmVudE5hbWVzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnROYW1lcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5jbHVkZXMoZSl9KX19XSxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIG5ldyBiKGUsdCxuLGkpLnRvTWFya2Rvd24oKX19LHtrZXk6InBhcnNlQ2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBiLnBhcnNlKGUuY2hpbGRyZW4sZSl9fSx7a2V5OiJwYXJzZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDpudWxsO2lmKGUpe2Zvcih2YXIgaT1bXSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBvPTA9PT1zP251bGw6ZVtzLTFdLHI9cz09PWUubGVuZ3RoP251bGw6ZVtzKzFdO2kucHVzaChiLnRvTWFya2Rvd24oZVtzXSxuLG8scikpfXJldHVybiBpLmpvaW4oIiIpfXJldHVybiIifX1dKSxiKTtmdW5jdGlvbiBiKGUsdCxuLGkpe3UodGhpcyxiKSx0aGlzLm5hbWU9ZS5uYW1lLHRoaXMuZGF0YT1lLmRhdGEsdGhpcy5jaGlsZHJlbj1lLmNoaWxkcmVuLHRoaXMuYXR0cmlidXRlcz1lLmF0dHJpYnV0ZXMsdCYmKHRoaXMucGFyZW50PXQsdGhpcy5wYXJlbnROYW1lcz10LnBhcmVudE5hbWVzLnNsaWNlKCksdGhpcy5wYXJlbnROYW1lcy5wdXNoKHQubmFtZSkpLHRoaXMucGFyZW50TmFtZXM9dGhpcy5wYXJlbnROYW1lc3x8W10sdGhpcy5wcmV2aW91cz1uLHRoaXMubmV4dD1pLCJwIj09PXRoaXMubmFtZSYmbS5pbmNsdWRlcyh0aGlzLmF0dHJpYnV0ZXMuY2xhc3MpJiYodGhpcy5uYW1lPSJsaSIsdGhpcy5wYXJlbnROYW1lcy5wdXNoKCJ1bCIpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIixbImV4cG9ydHMiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIl0sZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS50cmFuc2xhdGVTaXplPXIsZS5lc2NhcGVFeHByZXNzaW9uPWEsZS5mb3JtYXRVc2VybmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlfHwiIil9LGUucmVwbGFjZUZvcm1hdHRlcj1mdW5jdGlvbihlKXtpPWV9LGUuYXZhdGFyVXJsPWwsZS5nZXRSYXdTaXplPXMsZS5hdmF0YXJJbWc9dSxlLnRpbnlBdmF0YXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdShfLm1lcmdlKHthdmF0YXJUZW1wbGF0ZTplLHNpemU6InRpbnkifSx0KSl9LGUucG9zdFVybD1mdW5jdGlvbihlLHQsbil7dmFyIGk9RGlzY291cnNlLmdldFVSTCgiL3QvIik7aSs9ZT9lKyIvIjoidG9waWMvIjtpKz10LDE8biYmKGkrPSIvIituKTtyZXR1cm4gaX0sZS5lbWFpbFZhbGlkPWZ1bmN0aW9uKGUpe3JldHVybi9eW2EtekEtWjAtOSEjJCUmJyorXC89P1xeX2B7fH1+XC1dKyg/OlwuW2EtekEtWjAtOSEjJCUmJ1wqK1wvPT9cXl9ge3x9flwtXSspKkAoPzpbYS16QS1aMC05XSg/OlthLXpBLVowLTlcLV0qW2EtekEtWjAtOV0pP1wuKStbYS16QS1aMC05XSg/OlthLXpBLVowLTlcLV0qW2EtekEtWjAtOV0pPyQvLnRlc3QoZSl9LGUuZXh0cmFjdERvbWFpbkZyb21Vcmw9ZnVuY3Rpb24oZSl7ZT0tMTxlLmluZGV4T2YoIjovLyIpP2Uuc3BsaXQoIi8iKVsyXTplLnNwbGl0KCIvIilbMF07cmV0dXJuIGUuc3BsaXQoIjoiKVswXX0sZS5zZWxlY3RlZFRleHQ9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoZS5pc0NvbGxhcHNlZClyZXR1cm4iIjtmb3IodmFyIHQ9JCgiPGRpdj4iKSxuPTA7bjxlLnJhbmdlQ291bnQ7bisrKXt2YXIgaT1lLmdldFJhbmdlQXQobikscz0kKGkuY29tbW9uQW5jZXN0b3JDb250YWluZXIpLmZpbmQoIi5wb3N0LW1lbnUtYXJlYSIpWzBdO3MmJmkuc2V0RW5kQmVmb3JlKHMpLHQuYXBwZW5kKGkuY2xvbmVDb250ZW50cygpKX1yZXR1cm4oMCxvLmRlZmF1bHQpKHQuaHRtbCgpKX0sZS5zZWxlY3RlZEVsZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoMDxlLnJhbmdlQ291bnQpcmV0dXJuIGUuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50fSxlLmNhcmV0Um93Q29sPWZ1bmN0aW9uKGUpe3ZhciB0PWMoZSksbj1lLnZhbHVlLnNsaWNlKDAsdCkuc3BsaXQoIlxuIiksaT1uLmxlbmd0aCxzPXQtbi5zcGxpY2UoMCxpLTEpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlK3QubGVuZ3RoKzF9LDApO3JldHVybntyb3dOdW06aSxjb2xOdW06c319LGUuY2FyZXRQb3NpdGlvbj1jLGUuc2V0Q2FyZXRQb3NpdGlvbj1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUuc2V0U2VsZWN0aW9uUmFuZ2UpcmV0dXJuIGUuZm9jdXMoKSx2b2lkIGUuc2V0U2VsZWN0aW9uUmFuZ2UodCx0KTtpZihlLmNyZWF0ZVRleHRSYW5nZSlyZXR1cm4obj1lLmNyZWF0ZVRleHRSYW5nZSgpKS5jb2xsYXBzZSghMCksbi5tb3ZlRW5kKCJjaGFyYWN0ZXIiLHQpLG4ubW92ZVN0YXJ0KCJjaGFyYWN0ZXIiLHQpLG4uc2VsZWN0KCl9LGUuZGVmYXVsdEhvbWVwYWdlPWZ1bmN0aW9uKCl7dmFyIGU9bnVsbCx0PV8uZmlyc3QoJChuKSk7dCYmKGU9dC5jb250ZW50KTtlPWV8fERpc2NvdXJzZS5TaXRlU2V0dGluZ3MudG9wX21lbnUuc3BsaXQoInwiKVswXS5zcGxpdCgiLCIpWzBdO3JldHVybiBlfSxlLnNldERlZmF1bHRIb21lcGFnZT1mdW5jdGlvbihlKXt2YXIgdD1fLmZpcnN0KCQobikpO3QmJih0LmNvbnRlbnQ9ZSl9LGUuZGV0ZXJtaW5lUG9zdFJlcGxhY2VTZWxlY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZWxlY3Rpb24sbj1lLm5lZWRsZSxpPWUucmVwbGFjZW1lbnQscz1pLmVuZC1pLnN0YXJ0LShuLmVuZC1uLnN0YXJ0KTtyZXR1cm4gdC5lbmQ8PW4uc3RhcnQ/e3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfTp0LnN0YXJ0PD1uLnN0YXJ0P3QuZW5kPG4uZW5kP3tzdGFydDp0LnN0YXJ0LGVuZDpuLnN0YXJ0fTp7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmQrc306dC5zdGFydDxuLmVuZD90LmVuZDw9bi5lbmQ/e3N0YXJ0OmkuZW5kLGVuZDppLmVuZH06e3N0YXJ0OmkuZW5kLGVuZDp0LmVuZCtzfTp7c3RhcnQ6dC5zdGFydCtzLGVuZDp0LmVuZCtzfX0sZS5pc0FwcGxlRGV2aWNlPWQsZS5pT1NXaXRoVmlzdWFsVmlld3BvcnQ9bSxlLmlzaVBhZD1mdW5jdGlvbigpe3ZvaWQgMD09PXAmJihwPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQYWQvZykmJiFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9UcmlkZW50L2cpKTtyZXR1cm4gcH0sZS5zYWZhcmlIYWNrc0Rpc2FibGVkPWZ1bmN0aW9uKCl7aWYobSgpKXJldHVybiExO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJzYWZhcmktaGFja3MtZGlzYWJsZWQiKSx0PSExO251bGwhPT1lJiYodD0idHJ1ZSI9PT1lKTtyZXR1cm4gdH0sZS5jbGlwYm9hcmREYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jbGlwYm9hcmREYXRhfHxlLm9yaWdpbmFsRXZlbnQuY2xpcGJvYXJkRGF0YXx8ZS5kZWxlZ2F0ZWRFdmVudC5vcmlnaW5hbEV2ZW50LmNsaXBib2FyZERhdGEsaT1mKG4udHlwZXMpLHM9ZihuLmZpbGVzKTtpLmluY2x1ZGVzKCJGaWxlcyIpJiYwPT09cy5sZW5ndGgmJihzPWYobi5pdGVtcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJmaWxlIj09PWUua2luZH0pKTt2YXIgbz0odD1zJiZ0JiZpLmluY2x1ZGVzKCJGaWxlcyIpKSYmcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZS5tYXRjaCgiXmltYWdlLyIpfSlbMF0scj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9yaWNoX3RleHRfcGFzdGUmJmkuaW5jbHVkZXMoInRleHQvaHRtbCIpJiYhbztyZXR1cm57Y2xpcGJvYXJkOm4sdHlwZXM6aSxjYW5VcGxvYWQ6dCxjYW5QYXN0ZUh0bWw6cn19LGUudG9OdW1iZXI9aCxlLmlzTnVtZXJpYz1mdW5jdGlvbihlKXtyZXR1cm4haXNOYU4oaChlKSkmJmlzRmluaXRlKGUpfSxlLmZpbGxNaXNzaW5nRGF0ZXM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1tb21lbnQodCwiWVlZWS1NTS1ERCIpLHM9bW9tZW50KG4sIllZWVktTU0tREQiKS5kaWZmKGksImRheXMiKSxvPWkscj0wO3I8PXM7cisrKXt2YXIgYT1lW3JdP21vbWVudChlW3JdLngsIllZWVktTU0tREQiKTpudWxsOzAhPT1yfHxhJiYhYS5pc0FmdGVyKGkpP2EmJiFhLmlzQWZ0ZXIobW9tZW50KG8pKXx8ZS5zcGxpY2UociwwLHt4Om8seTowfSk6ZS5zcGxpY2UociwwLHt4OmkuZm9ybWF0KCJZWVlZLU1NLUREIikseTowfSksbz1tb21lbnQobykuYWRkKDEsImRheSIpLmZvcm1hdCgiWVlZWS1NTS1ERCIpfXJldHVybiBlfSxlLmFyZUNvb2tpZXNFbmFibGVkPWZ1bmN0aW9uKCl7dHJ5e2RvY3VtZW50LmNvb2tpZT0iY29va2lldGVzdD0xIjt2YXIgZT0tMSE9PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJjb29raWV0ZXN0PSIpO3JldHVybiBkb2N1bWVudC5jb29raWU9ImNvb2tpZXRlc3Q9MTsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsZX1jYXRjaChlKXtyZXR1cm4hMX19LGUuaXNpT1NQV0E9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcyYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQYWR8aVBob25lfGlQb2QpL2cpfSxlLmlzQXBwV2Vidmlldz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT13aW5kb3cuUmVhY3ROYXRpdmVXZWJWaWV3fSxlLnBvc3RSTldlYnZpZXdNZXNzYWdlPWZ1bmN0aW9uKGUsdCl7dm9pZCAwIT09d2luZG93LlJlYWN0TmF0aXZlV2ViVmlldyYmd2luZG93LlJlYWN0TmF0aXZlV2ViVmlldy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShmdW5jdGlvbihlLHQsbil7dCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW47cmV0dXJuIGV9KHt9LGUsdCkpKX0sZS5yZXNjdWVUaGVtZUVycm9yPWZ1bmN0aW9uKGUsdCxuKXtjb25zb2xlLmVycm9yKCciJytlKyciIGVycm9yOicsdCksZnVuY3Rpb24oZSx0KXt2YXIgbj17bWVzc2FnZTplKyIgdGhlbWUvY29tcG9uZW50IGlzIHRocm93aW5nIGVycm9ycyIsc3RhY2t0cmFjZTp0LnN0YWNrfTtFbWJlci4kLmFqYXgoRGlzY291cnNlLkJhc2VVcmkrIi9sb2dzL3JlcG9ydF9qc19lcnJvciIse2RhdGE6bix0eXBlOiJQT1NUIixjYWNoZTohMX0pfShlLHQpO3ZhciBpPW4uZ2V0Q3VycmVudFVzZXIoKTtpZighaXx8IWkuYWRtaW4pcmV0dXJuO3ZhciBzPURpc2NvdXJzZS5CYXNlVXJpKyIvYWRtaW4vY3VzdG9taXplL3RoZW1lcyIsbz1JMThuLnQoInRoZW1lcy5icm9rZW5fdGhlbWVfYWxlcnQiLHt0aGVtZTplLHBhdGg6JzxhIGhyZWY9IicrcysnIj4nK3MrIjwvYT4ifSkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTGlzdC5hZGQoImJyb2tlbi10aGVtZS1hbGVydCIpLHIuaW5uZXJIVE1MPSLimqDvuI8gIitvLGRvY3VtZW50LmJvZHkucHJlcGVuZChyKX0sZS5pbkNvZGVCbG9jaz1mdW5jdGlvbihlLHQpe3ZhciBuPSExLGk9dm9pZCAwO2Zvcig7bnVsbCE9PShpPWIuZXhlYyhlKSk7KXt2YXIgcz1pLmluZGV4LG89aS5pbmRleCtpWzBdLmxlbmd0aDtzPD10JiZ0PD1vJiYobj0hMCl9cmV0dXJuIG59O3ZhciBuPSJtZXRhW25hbWU9ZGlzY291cnNlX2N1cnJlbnRfaG9tZXBhZ2VdIjtmdW5jdGlvbiByKGUpe3N3aXRjaChlKXtjYXNlInRpbnkiOnJldHVybiAyMDtjYXNlInNtYWxsIjpyZXR1cm4gMjU7Y2FzZSJtZWRpdW0iOnJldHVybiAzMjtjYXNlImxhcmdlIjpyZXR1cm4gNDU7Y2FzZSJleHRyYV9sYXJnZSI6cmV0dXJuIDYwO2Nhc2UiaHVnZSI6cmV0dXJuIDEyMH1yZXR1cm4gZX1mdW5jdGlvbiBhKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSGFuZGxlYmFycy5TYWZlU3RyaW5nP2UudG9TdHJpbmcoKTooMCx0LmVzY2FwZSkoZSl9dmFyIGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIGwoZSx0KXtpZighZSlyZXR1cm4iIjt2YXIgbj1zKHIodCkpO3JldHVybiBlLnJlcGxhY2UoL1x7c2l6ZVx9L2csbil9ZnVuY3Rpb24gcyhlKXt2YXIgdD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtyZXR1cm4gZSpNYXRoLm1pbigzLE1hdGgubWF4KDEsTWF0aC5yb3VuZCh0KSkpfWZ1bmN0aW9uIHUoZSx0KXt0PXR8fERpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROO3ZhciBuPXIoZS5zaXplKSxpPWwoZS5hdmF0YXJUZW1wbGF0ZSxuKTtpZighaXx8MD09PWkubGVuZ3RoKXJldHVybiIiO3ZhciBzPSJhdmF0YXIiKyhlLmV4dHJhQ2xhc3Nlcz8iICIrZS5leHRyYUNsYXNzZXM6IiIpLG89ZS50aXRsZT8iIHRpdGxlPSciK2EoZS50aXRsZXx8IiIpKyInIjoiIjtyZXR1cm4iPGltZyBhbHQ9Jycgd2lkdGg9JyIrbisiJyBoZWlnaHQ9JyIrbisiJyBzcmM9JyIrdChpKSsiJyBjbGFzcz0nIitzKyInIitvKyI+In1mdW5jdGlvbiBjKGUpe3ZhciB0LG4saTtyZXR1cm4gZS5zZWxlY3Rpb25TdGFydD9lLnNlbGVjdGlvblN0YXJ0OmRvY3VtZW50LnNlbGVjdGlvbj8oZS5mb2N1cygpLCh0PWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpKT8obj0oaT1lLmNyZWF0ZVRleHRSYW5nZSgpKS5kdXBsaWNhdGUoKSxpLm1vdmVUb0Jvb2ttYXJrKHQuZ2V0Qm9va21hcmsoKSksbi5zZXRFbmRQb2ludCgiRW5kVG9TdGFydCIsaSksbi50ZXh0Lmxlbmd0aCk6MCk6MH1mdW5jdGlvbiBkKCl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKS5pc0lPUyYmIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1RyaWRlbnQvZyl9dmFyIHA9dm9pZCAwO2Z1bmN0aW9uIG0oKXtyZXR1cm4gZCgpJiZ2b2lkIDAhPT13aW5kb3cudmlzdWFsVmlld3BvcnR9dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8W10sQXJyYXkuaXNBcnJheShlKT9lOkFycmF5LmZyb20oZSl9O2Z1bmN0aW9uIGgoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP2U6cGFyc2VGbG9hdChlKX12YXIgYj0vXiggICAgfFx0KS4qfGBbXmBdK2B8XmBgYFteXSo/XmBgYHxcW2NvZGVcXVteXSo/XFtcL2NvZGVcXS9nbTtlLmRlZmF1bHQ9e319KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGFnZS12aXNpYmxlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10PyFkb2N1bWVudFt0XTpkb2N1bWVudCYmZG9jdW1lbnQuaGFzRm9jdXN9O3ZhciB0PXZvaWQgMCE9PWRvY3VtZW50LmhpZGRlbj8iaGlkZGVuIjp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4/IndlYmtpdEhpZGRlbiI6dm9pZCAwfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xvZ291dCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL21vZGVscy9sb2dpbi1tZXRob2QiXSxmdW5jdGlvbihlLHIsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt7dmFyIG47ZSYmdHx8KG49RGlzY291cnNlLl9fY29udGFpbmVyX18sZT1lfHxuLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIiksdD10fHxuLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSl9dC5hYmFuZG9uTG9jYWwoKTt2YXIgaT1lLmxvZ291dF9yZWRpcmVjdDtpZighKDAsci5pc0VtcHR5KShpKSlyZXR1cm4gdm9pZCh3aW5kb3cubG9jYXRpb24uaHJlZj1pKTt2YXIgcz1lLmVuYWJsZV9zc28sbz0hZS5lbmFibGVfbG9jYWxfbG9naW5zJiYxPT09KDAsYS5maW5kQWxsKSgpLmxlbmd0aDtpZihlLmxvZ2luX3JlcXVpcmVkJiYoc3x8bykpcmV0dXJuIHZvaWQod2luZG93LmxvY2F0aW9uLmhyZWY9RGlzY291cnNlLmdldFVSTCgiL2xvZ2luIikpO3dpbmRvdy5sb2NhdGlvbi5ocmVmPURpc2NvdXJzZS5nZXRVUkwoIi8iKX19KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvc2luZ2xldG9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXQuZGVmYXVsdC5jcmVhdGUoe2N1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudHx8KHRoaXMuX2N1cnJlbnQ9dGhpcy5jcmVhdGVDdXJyZW50KCkpLHRoaXMuX2N1cnJlbnR9LGNyZWF0ZUN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jcmVhdGUoe30pfSxjdXJyZW50UHJvcDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY3VycmVudCgpO2lmKG4pcmV0dXJuIHZvaWQgMCE9PXQ/KG4uc2V0KGUsdCksdCk6bi5nZXQoZSl9LHJlc2V0Q3VycmVudDpmdW5jdGlvbihlKXt0aGlzLl9jdXJyZW50PWV9fSk7ZS5kZWZhdWx0PW59KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4scyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uLmRlZmF1bHQuZXh0ZW5kKHtpc05ldzooMCx0LmVxdWFsKSgiX19zdGF0ZSIsIm5ldyIpLGlzQ3JlYXRlZDooMCx0LmVxdWFsKSgiX19zdGF0ZSIsImNyZWF0ZWQiKSxpc1NhdmluZzohMSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt9LGFmdGVyVXBkYXRlOmZ1bmN0aW9uKCl7fSx1cGRhdGU6ZnVuY3Rpb24obil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5pc1NhdmluZz9zLlByb21pc2UucmVqZWN0KCk6KG49bnx8dGhpcy51cGRhdGVQcm9wZXJ0aWVzKCksdGhpcy5zZXQoImlzU2F2aW5nIiwhMCksdGhpcy5zdG9yZS51cGRhdGUodGhpcy5fX3R5cGUsdGhpcy5pZCxuKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWkuX19tdW5nZShlLnBheWxvYWR8fGUucmVzcG9uc2VKc29uKTtyZXR1cm4iT0siPT09dC5zdWNjZXNzJiYoRW1iZXIud2FybigiQW4gdXBkYXRlIGNhbGwgc2hvdWxkIHJldHVybiB0aGUgdXBkYXRlZCBhdHRyaWJ1dGVzIix7aWQ6ImRpc2NvdXJzZS5yZXN0LW1vZGVsLnVwZGF0ZS1hdHRyaWJ1dGVzIn0pLGU9biksaS5zZXRQcm9wZXJ0aWVzKHQpLGkuYWZ0ZXJVcGRhdGUoZSksZS50YXJnZXQ9aSxlfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBpLnNldCgiaXNTYXZpbmciLCExKX0pKX0sX3NhdmVOZXc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLmlzU2F2aW5nKXJldHVybiBzLlByb21pc2UucmVqZWN0KCk7ZT1lfHx0aGlzLmNyZWF0ZVByb3BlcnRpZXMoKSx0aGlzLmJlZm9yZUNyZWF0ZShlKTt2YXIgbj10aGlzLnN0b3JlLmFkYXB0ZXJGb3IodGhpcy5fX3R5cGUpO3JldHVybiB0aGlzLnNldCgiaXNTYXZpbmciLCEwKSxuLmNyZWF0ZVJlY29yZCh0aGlzLnN0b3JlLHRoaXMuX190eXBlLGUpLnRoZW4oZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJSZWNlaXZlZCBubyBkYXRhIGJhY2sgZnJvbSBjcmVhdGVSZWNvcmQiKTtyZXR1cm4gZS5wYXlsb2FkJiYodC5zZXRQcm9wZXJ0aWVzKHQuX19tdW5nZShlLnBheWxvYWQpKSx0LnNldCgiX19zdGF0ZSIsImNyZWF0ZWQiKSksZS50YXJnZXQ9dCxlfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgiaXNTYXZpbmciLCExKX0pfSxjcmVhdGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJZb3UgbXVzdCBvdmVyd3JpdGUgYGNyZWF0ZVByb3BlcnRpZXMoKWAgYmVmb3JlIHNhdmluZyBhIHJlY29yZCIpfSxzYXZlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzTmV3P3RoaXMuX3NhdmVOZXcoZSk6dGhpcy51cGRhdGUoZSl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9yZS5kZXN0cm95UmVjb3JkKHRoaXMuX190eXBlLHRoaXMpfX0pO2kucmVvcGVuQ2xhc3Moe211bmdlOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxjcmVhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKGU9ZXx8e30pLnN0b3JlfHwodD1EaXNjb3Vyc2UuX19jb250YWluZXJfXyxlLnN0b3JlPXQubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikpLGUuX19tdW5nZT10aGlzLm11bmdlLHRoaXMuX3N1cGVyKHRoaXMubXVuZ2UoZSxlLnN0b3JlKSl9fSksZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImhpZ2hlc3RTZWVuQnlUb3BpYyIse30pfX0pO3MucmVvcGVuQ2xhc3Mobi5kZWZhdWx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRGlzY291cnNlLCJTZXNzaW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5kZWZhdWx0KSgiSW1wb3J0IHRoZSBTZXNzaW9uIG9iamVjdCBpbnN0ZWFkIG9mIHVzaW5nIERpc2NvdXJzZS5TZXNzaW9uIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksc319KSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hamF4IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvcGFnZS12aXNpYmxlIiwiZGlzY291cnNlL2xpYi9sb2dvdXQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxhLHQsbixsLHMsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNldFRyYW5zaWVudEhlYWRlcj1mdW5jdGlvbihlLHQpe2Q9e2tleTplLHZhbHVlOnR9fSxlLnZpZXdUcmFja2luZ1JlcXVpcmVkPWZ1bmN0aW9uKCl7Yz0hMH0sZS5oYW5kbGVMb2dvZmY9cCxlLnVwZGF0ZUNzcmZUb2tlbj1tLGUuYWpheD1vO3ZhciBjPSExLGQ9bnVsbCxpPSExO2Z1bmN0aW9uIHAoZSl7ZSYmZS5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUxvZ2dlZC1PdXQiKSYmIWkmJihpPSEwLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpLnN0b3AoKSxib290Ym94LmRpYWxvZyhJMThuLnQoImxvZ291dCIpLHtsYWJlbDpJMThuLnQoInJlZnJlc2giKSxjYWxsYmFjazpuLmRlZmF1bHR9LHtvbkVzY2FwZTpmdW5jdGlvbigpe3JldHVybigwLG4uZGVmYXVsdCkoKX0sYmFja2Ryb3A6InN0YXRpYyJ9KSl9ZnVuY3Rpb24gbSgpe3JldHVybiBvKCIvc2Vzc2lvbi9jc3JmIikudGhlbihmdW5jdGlvbihlKXtsLmRlZmF1bHQuY3VycmVudFByb3AoImNzcmZUb2tlbiIsZS5jc3JmKX0pfWZ1bmN0aW9uIG8oKXt2YXIgbz12b2lkIDAscj12b2lkIDAsbj12b2lkIDA7ZnVuY3Rpb24gaShzLGkpe3IuaGVhZGVycz1yLmhlYWRlcnN8fHt9LERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSYmKHIuaGVhZGVyc1siRGlzY291cnNlLUxvZ2dlZC1JbiJdPSJ0cnVlIiksZCYmKHIuaGVhZGVyc1tkLmtleV09ZC52YWx1ZSxkPW51bGwpLCFjfHxyLnR5cGUmJiJHRVQiIT09ci50eXBlfHwoYz0hMSxyLmhlYWRlcnNbIkRpc2NvdXJzZS1UcmFjay1WaWV3Il09InRydWUiKSwoMCx0LmRlZmF1bHQpKCkmJihyLmhlYWRlcnNbIkRpc2NvdXJzZS1WaXNpYmxlIl09InRydWUiKSxyLnN1Y2Nlc3M9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpOyhpPWUpJiZpLmdldFJlc3BvbnNlSGVhZGVyJiZpLmdldFJlc3BvbnNlSGVhZGVyKCJEaXNjb3Vyc2UtWGhyLVJlZGlyZWN0IikmJih3aW5kb3cubG9jYXRpb24ucmVwbGFjZShpLnJlc3BvbnNlVGV4dCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpKSxwKG4pLCgwLGEucnVuKShmdW5jdGlvbigpe3UuZGVmYXVsdC5jdXJyZW50UHJvcCgiaXNSZWFkT25seSIsISghbnx8IW4uZ2V0UmVzcG9uc2VIZWFkZXIoIkRpc2NvdXJzZS1SZWFkb25seSIpKSl9KSxyLnJldHVyblhIUiYmKGU9e3Jlc3VsdDplLHhocjpufSksKDAsYS5ydW4pKG51bGwscyxlKX0sci5lcnJvcj1mdW5jdGlvbihlLHQsbil7aWYoMCE9PWUucmVhZHlTdGF0ZSl7aWYocChlKSw0MDM9PT1lLnN0YXR1cyYmJ1siQkFEIENTUkYiXSc9PT1lLnJlc3BvbnNlVGV4dCYmbC5kZWZhdWx0LmN1cnJlbnQoKS5zZXQoImNzcmZUb2tlbiIsbnVsbCksMjAwPT09ZS5zdGF0dXMpcmV0dXJuIHIuc3VjY2VzcyhlKTtlLmpxVGV4dFN0YXR1cz10LGUucmVxdWVzdGVkVXJsPW8sKDAsYS5ydW4pKG51bGwsaSx7anFYSFI6ZSx0ZXh0U3RhdHVzOnQsZXJyb3JUaHJvd246bn0pfX0sci50eXBlfHwoci50eXBlPSJHRVQiKSxyLmRhdGFUeXBlfHwiR0VUIiE9PXIudHlwZS50b1VwcGVyQ2FzZSgpfHwoci5kYXRhVHlwZT0ianNvbiIpLCJzY3JpcHQiPT09ci5kYXRhVHlwZSYmKHIuaGVhZGVyc1siRGlzY291cnNlLVNjcmlwdCJdPSEwKSwiR0VUIj09PXIudHlwZSYmITAhPT1yLmNhY2hlJiYoci5jYWNoZT0hMCksbj0kLmFqYXgoRGlzY291cnNlLmdldFVSTChvKSxyKX0xPT09YXJndW1lbnRzLmxlbmd0aD8ic3RyaW5nIj09dHlwZW9mIGFyZ3VtZW50c1swXT8obz1hcmd1bWVudHNbMF0scj17fSk6KG89KHI9YXJndW1lbnRzWzBdKS51cmwsZGVsZXRlIHIudXJsKToyPT09YXJndW1lbnRzLmxlbmd0aCYmKG89YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdKTt2YXIgZT12b2lkIDA7cmV0dXJuKGU9ci50eXBlJiYiR0VUIiE9PXIudHlwZS50b1VwcGVyQ2FzZSgpJiZvIT09RGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpJiYhbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjc3JmVG9rZW4iKT9uZXcgcy5Qcm9taXNlKGZ1bmN0aW9uKGUsdCl7bj1tKCkudGhlbihmdW5jdGlvbigpe2koZSx0KX0pfSk6bmV3IHMuUHJvbWlzZShpKSkuYWJvcnQ9ZnVuY3Rpb24oKXtuJiZuLmFib3J0KCl9LGV9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RleHQiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L3ByZXR0eS10ZXh0IiwicHJldHR5LXRleHQvZW1vamkiLCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJyc3ZwIl0sZnVuY3Rpb24oZSxzLGksbixvLHQscixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChlLHQpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGModCkuY29vayhlKSl9ZnVuY3Rpb24gdSgpe3JldHVybiBEaXNjb3Vyc2UuTWFya2Rvd25JdFVSTD8oMCx0LmRlZmF1bHQpKERpc2NvdXJzZS5NYXJrZG93bkl0VVJMKS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfSk6YS5Qcm9taXNlLnJlc29sdmUoKX1mdW5jdGlvbiBjKGUpe3JldHVybiBuZXcgcy5kZWZhdWx0KCh0PWUsbj1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLGk9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzaXRlOm1haW4iKSx0PV8ubWVyZ2Uoe2dldFVSTDpEaXNjb3Vyc2UuZ2V0VVJMV2l0aENETixjdXJyZW50VXNlcjpEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIiksY2Vuc29yZWRSZWdleHA6aS5jZW5zb3JlZF9yZWdleHAsc2l0ZVNldHRpbmdzOm4sZm9ybWF0VXNlcm5hbWU6ci5mb3JtYXRVc2VybmFtZX0sdCksKDAscy5idWlsZE9wdGlvbnMpKHQpKSk7dmFyIHQsbixpfWZ1bmN0aW9uIGQoKXtpZihEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9lbW9qaSlyZXR1cm57Z2V0VVJMOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROLGVtb2ppU2V0OkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW1vamlfc2V0LGVuYWJsZUVtb2ppU2hvcnRjdXRzOkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5hYmxlX2Vtb2ppX3Nob3J0Y3V0cyxpbmxpbmVFbW9qaTpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9pbmxpbmVfZW1vamlfdHJhbnNsYXRpb259fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNvb2s9bCxlLmNvb2tBc3luYz1mdW5jdGlvbihlLHQpe3JldHVybiB1KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsKGUsdCl9KX0sZS5zYW5pdGl6ZT1mdW5jdGlvbihlLHQpe3JldHVybigwLG8uc2FuaXRpemUpKGUsbmV3IG4uZGVmYXVsdCh0KSl9LGUuc2FuaXRpemVBc3luYz1mdW5jdGlvbihlLHQpe3JldHVybihuZXcgdSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjKHQpLnNhbml0aXplKGUpfSl9LGUuZW1vamlVbmVzY2FwZT1mdW5jdGlvbihlLHQpe3ZhciBuPWQoKTtyZXR1cm4gbj8oMCxpLnBlcmZvcm1FbW9qaVVuZXNjYXBlKShlLE9iamVjdC5hc3NpZ24obix0fHx7fSkpOmV9LGUuZW1vamlVcmxGb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZCgpO2lmKHQpcmV0dXJuKDAsaS5idWlsZEVtb2ppVXJsKShlLHQpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9oYXNoIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaGFzaFN0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gdH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbG9hZC1zY3JpcHQiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCJdLGZ1bmN0aW9uKGUsYyxkLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5sb2FkQ1NTPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUse2NzczohMH0pfSxlLmRlZmF1bHQ9dDt2YXIgbT17fSxmPXt9O2Z1bmN0aW9uIHQobCx1KXtyZXR1cm4iZGVmZXIvaHRtbC1zYW5pdGl6ZXItYnVuZGxlIj09PWw/cC5Qcm9taXNlLnJlc29sdmUoKToobD0odT11fHx7fSkuY3NzP0Rpc2NvdXJzZS5nZXRVUkwobCk6RGlzY291cnNlLmdldFVSTFdpdGhDRE4obCksJCgic2NyaXB0IikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJzcmMiKTtuJiZuIT09bCYmIWZbbl0mJihtW25dPSEwKX0pLG5ldyBwLlByb21pc2UoZnVuY3Rpb24odCl7aWYobVtsXSlyZXR1cm4gdCgpO2lmKGZbbF0pcmV0dXJuIGZbbF0udGhlbih0KTt2YXIgbj12b2lkIDA7ZltsXT1uZXcgcC5Qcm9taXNlKGZ1bmN0aW9uKGUpe249ZX0pLGZbbF0udGhlbihmdW5jdGlvbigpe2RlbGV0ZSBmW2xdfSk7ZnVuY3Rpb24gZShlKXt1JiZ1LmNzcyYmJCgiaGVhZCIpLmFwcGVuZCgiPHN0eWxlPiIrZSsiPC9zdHlsZT4iKSxuKCksdCgpLG1bbF09ITB9dmFyIGkscyxvLHIsYTt1LmNzcz8oMCxkLmFqYXgpKHt1cmw6bCxkYXRhVHlwZToidGV4dCIsY2FjaGU6ITB9KS50aGVuKGUpOihpPWwscz1lLG89ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSxyPSExLChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5zcmM9aSxFbWJlci5UZXN0JiZFbWJlci5UZXN0LnJlZ2lzdGVyV2FpdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSxhLm9ubG9hZD1hLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLHQpe3I9ITAsIXQmJmEucmVhZHlTdGF0ZSYmImxvYWRlZCIhPT1hLnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPT1hLnJlYWR5U3RhdGV8fChhPWEub25sb2FkPWEub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsdHx8KDAsYy5ydW4pKG51bGwscykpfSxvLmFwcGVuZENoaWxkKGEpKX0pKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbm90aWZpY2F0aW9uLWxldmVscyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmJ1dHRvbkRldGFpbHM9cjt2YXIgdD0wLG49MSxpPTIscz0zLG89NDtlLk5vdGlmaWNhdGlvbkxldmVscz17V0FUQ0hJTkdfRklSU1RfUE9TVDpvLFdBVENISU5HOnMsVFJBQ0tJTkc6aSxSRUdVTEFSOm4sTVVURUQ6dH07ZnVuY3Rpb24gcihlKXtzd2l0Y2goZSl7Y2FzZSBvOnJldHVybntpZDpvLGtleToid2F0Y2hpbmdfZmlyc3RfcG9zdCIsaWNvbjoiZC13YXRjaGluZy1maXJzdCJ9O2Nhc2UgczpyZXR1cm57aWQ6cyxrZXk6IndhdGNoaW5nIixpY29uOiJkLXdhdGNoaW5nIn07Y2FzZSBpOnJldHVybntpZDppLGtleToidHJhY2tpbmciLGljb246ImQtdHJhY2tpbmcifTtjYXNlIHQ6cmV0dXJue2lkOnQsa2V5OiJtdXRlZCIsaWNvbjoiZC1tdXRlZCJ9O2RlZmF1bHQ6cmV0dXJue2lkOm4sa2V5OiJyZWd1bGFyIixpY29uOiJkLXJlZ3VsYXIifX19dmFyIGE9ZS5hbGxMZXZlbHM9W3MsaSxvLG4sdF0ubWFwKHIpO2UudG9waWNMZXZlbHM9YS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT1vfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9zZXJ2aWNlcy9hcHAtZXZlbnRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiQGVtYmVyL3NlcnZpY2UiXSxmdW5jdGlvbihlLHIsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChFbWJlci5FdmVudGVkLHtfZXZlbnRzOnt9LG9uOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvLHIsYTtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGg/KHQ9KGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSlbMF0sbj1lWzFdLGk9e30sdGhpcy5fZXZlbnRzW3RdPXRoaXMuX2V2ZW50c1t0XXx8W10sdGhpcy5fZXZlbnRzW3RdLnB1c2goe3RhcmdldDppLGZuOm59KSx0aGlzLl9zdXBlcih0LGksbikpOjM9PT1hcmd1bWVudHMubGVuZ3RoJiYobz0ocz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKVswXSxyPXNbMV0sYT1zWzJdLHRoaXMuX2V2ZW50c1tvXT10aGlzLl9ldmVudHNbb118fFtdLHRoaXMuX2V2ZW50c1tvXS5wdXNoKHt0YXJnZXQ6cixmbjphfSksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0aGlzfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMscz1lLG89bjtyZXR1cm4gdGhpcy5fZXZlbnRzW3NdJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/KCgwLHIuZGVmYXVsdCkoIlJlbW92aW5nIGFsbCBldmVudCBsaXN0ZW5lcnMgYXQgb25jZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgcmVtb3ZlIGVhY2ggbGlzdGVuZXIgaW5kaXZpZHVhbGx5LiIpLHRoaXMuX2V2ZW50c1tzXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kuX3N1cGVyKHMsZS50YXJnZXQsZS5mbil9KSxkZWxldGUgdGhpcy5fZXZlbnRzW3NdKTozPT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9ldmVudHNbc109dGhpcy5fZXZlbnRzW3NdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5mbiE9PW99KSwwPT09dGhpcy5fZXZlbnRzW3NdLmxlbmd0aCYmZGVsZXRlIHRoaXMuX2V2ZW50c1tzXSkpLHRoaXN9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKCl7dmFyIGU9JCgiaGVhZGVyLmQtaGVhZGVyIik7cmV0dXJuKGUub3V0ZXJIZWlnaHQoITApfHwwKStlLnBvc2l0aW9uKCkudG9wfWZ1bmN0aW9uIHQoKXt2YXIgZT1sKCk7aWYoJCgiaHRtbCIpLmhhc0NsYXNzKCJtb2JpbGUtdmlldyIpKXJldHVybiBlO3ZhciB0PSQod2luZG93KSxuPXQuaGVpZ2h0KCksaT0kKGRvY3VtZW50KS5oZWlnaHQoKSxzPSQoIiN0b3BpYy1ib3R0b20iKS5vZmZzZXQoKS50b3A7aWYoczxpLW4pcmV0dXJuIGU7dmFyIG89dC5zY3JvbGxUb3AoKStuLXM7aWYoMDxvKXt2YXIgcj1pLXMsYT0obi1yKSpvL3I7cmV0dXJuIE1hdGgubWF4KGUsYSl9cmV0dXJuIGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2Nyb2xsVG9wRm9yPWZ1bmN0aW9uKGUpe3JldHVybiBlLXQoKX0sZS5taW5pbXVtT2Zmc2V0PWwsZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbG9jay1vbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9vZmZzZXQtY2FsY3VsYXRvciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0ic2Nyb2xsLmxvY2stb24gdG91Y2htb3ZlLmxvY2stb24gbW91c2Vkb3duLmxvY2stb24gd2hlZWwubG9jay1vbiBET01Nb3VzZVNjcm9sbC5sb2NrLW9uIG1vdXNld2hlZWwubG9jay1vbiBrZXl1cC5sb2NrLW9uIixhPVsibW91c2Vkb3duIiwibW91c2V3aGVlbCIsInRvdWNobW92ZSIsIndoZWVsIl07ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIE1hdGguYWJzKHQtbik8ZX12YXIgcz0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShvLFt7a2V5OiJlbGVtZW50VG9wIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPSQodGhpcy5zZWxlY3Rvcik7aWYoZS5sZW5ndGgmJmUub2Zmc2V0JiZlLm9mZnNldCgpKXJldHVybiBlLm9mZnNldCgpLnRvcC0oMCx0Lm1pbmltdW1PZmZzZXQpKCl9fSx7a2V5OiJjbGVhckxvY2siLHZhbHVlOmZ1bmN0aW9uKGUpeyQoImJvZHksIGh0bWwiKS5vZmYobiksY2xlYXJJbnRlcnZhbChlKSx0aGlzLm9wdGlvbnMuZmluaXNoZWQmJnRoaXMub3B0aW9ucy5maW5pc2hlZCgpfX0se2tleToibG9jayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLHM9KG5ldyBEYXRlKS5nZXRUaW1lKCksbz10aGlzLmVsZW1lbnRUb3AoKTtvJiYkKHdpbmRvdykuc2Nyb2xsVG9wKG8pO3ZhciByPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9aS5lbGVtZW50VG9wKCk7aWYob3x8ZSl7dmFyIHQ9TWF0aC5tYXgoMCxlKSxuPSQod2luZG93KS5zY3JvbGxUb3AoKTtyZXR1cm4gdm9pZCAwPT09dHx8aXNOYU4odCk/aS5jbGVhckxvY2socik6KGwoNCx0LG8pJiZsKDQsbix0KXx8KCQod2luZG93KS5zY3JvbGxUb3AodCksbz10KSwxZTM8KG5ldyBEYXRlKS5nZXRUaW1lKCktcz9pLmNsZWFyTG9jayhyKTp2b2lkIDApfX0sNTApOyQoImJvZHksIGh0bWwiKS5vZmYobikub24obixmdW5jdGlvbihlKXsoMDxlLndoaWNofHxhLmluY2x1ZGVzKGUudHlwZSkpJiZpLmNsZWFyTG9jayhyKX0pfX1dKSxvKTtmdW5jdGlvbiBvKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbyksdGhpcy5zZWxlY3Rvcj1lLHRoaXMub3B0aW9ucz10fHx7fX1lLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi91cmwiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLCJkaXNjb3Vyc2UvbGliL2xvY2stb24iLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdSx0LHAsbSxmLGksYyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJld3JpdGVQYXRoPWcsZS5jbGVhclJld3JpdGVzPWZ1bmN0aW9uKCl7cy5sZW5ndGg9MH0sZS51c2VyUGF0aD12LGUuZ3JvdXBQYXRoPWZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGU/Ii9nLyIrZToiL2ciKX0sZS5qdW1wVG9FbGVtZW50PXk7dmFyIHM9W10sZD0vXC90XC8oW15cL10rKVwvKFxkKylcLz8oXGQrKT8vO2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uPWUsITB9dmFyIGI9Wy9eXC9hc3NldHNcLy8sL15cL3VwbG9hZHNcLy8sL15cL3N0eWxlc2hlZXRzXC8vLC9eXC9zaXRlX2N1c3RvbWl6YXRpb25zXC8vLC9eXC9yYXdcLy8sL15cL3Bvc3RzXC9cZCtcL3Jhdy8sL15cL3Jhd1wvXGQrLywvXlwvd2l6YXJkLywvXC5yc3MkLywvXC5qc29uJC8sL15cL2FkbWluXC91cGdyYWRlJC8sL15cL2xvZ3MoJHxcLykvLC9eXC9hZG1pblwvbG9nc1wvd2F0Y2hlZF93b3Jkc1wvYWN0aW9uXC9bXlwvXStcL2Rvd25sb2FkJC9dO2Z1bmN0aW9uIGcodCl7dmFyIGU9dC5zcGxpdCgiPyIpLG49ZVswXTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhlLm9wdHMuZXhjZXB0aW9uc3x8W10pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSl9KXx8KG49bi5yZXBsYWNlKGUucmVnZXhwLGUucmVwbGFjZW1lbnQpKX0pLDE8ZS5sZW5ndGgmJihuKz0iPyIrZVsxXSksbn1mdW5jdGlvbiB2KGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGU/Ii91LyIrZToiL3UiKX12YXIgbj0hMTtmdW5jdGlvbiB5KGUpe3ZhciB0O258fCgwLHUuaXNFbXB0eSkoZSl8fCh0PSIjIitlKyIsIGFbbmFtZT0iK2UrIl0iLG49ITAsKDAscC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe25ldyBmLmRlZmF1bHQodCx7ZmluaXNoZWQ6ZnVuY3Rpb24oKXtuPSExfX0pLmxvY2soKX0pKX12YXIgXz0hMSx3PXQuZGVmYXVsdC5leHRlbmQoe2lzSnVtcFNjaGVkdWxlZDpmdW5jdGlvbigpe3JldHVybiBffHxufSxqdW1wVG9Qb3N0OmZ1bmN0aW9uKHUsYyl7Yz1jfHx7fTt2YXIgZD0iI3Bvc3RfIit1O189MTx1LCgwLHAuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT12b2lkIDAsdD12b2lkIDA7aWYoYy5qdW1wRW5kKXt2YXIgbj0kKGQpLGk9bi5oZWlnaHQoKTtpZigkKHdpbmRvdykuaGVpZ2h0KCktKDAsbS5kZWZhdWx0KSgpPGkpcmV0dXJuICQod2luZG93KS5zY3JvbGxUb3Aobi5vZmZzZXQoKS50b3ArKGktaS8xMCkpLHZvaWQoXz0hMSl9aWYoMT09PXUmJiFjLmFuY2hvcilyZXR1cm4gJCh3aW5kb3cpLnNjcm9sbFRvcCgwKSx2b2lkKF89ITEpO2MuYW5jaG9yJiYoZT1jLmFuY2hvcix0PSQoZSkpLHQmJjAhPT10Lmxlbmd0aHx8KGU9ZCx0PSQoZSkpO3ZhciBzPW5ldyBmLmRlZmF1bHQoZSx7ZmluaXNoZWQ6ZnVuY3Rpb24oKXtfPSExfX0pO2lmKDA8dC5sZW5ndGgmJmMmJmMuc2tpcElmT25TY3JlZW4pe3ZhciBvPXMuZWxlbWVudFRvcCgpLHI9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGE9JCh3aW5kb3cpLmhlaWdodCgpLSgwLG0uZGVmYXVsdCkoKSxsPXQuaGVpZ2h0KCk7aWYocjxvJiZvK2w8cithKXJldHVybiB2b2lkKF89ITEpfXMubG9jaygpLHMuZWxlbWVudFRvcCgpPDEmJihfPSExKX0pfSxyZXBsYWNlU3RhdGU6ZnVuY3Rpb24odCl7d2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlJiZ3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUhPT10JiYoMCxwLm5leHQpKGZ1bmN0aW9uKCl7dmFyIGU9dy5nZXQoInJvdXRlci5sb2NhdGlvbiIpO2UmJmUucmVwbGFjZVVSTCYmZS5yZXBsYWNlVVJMKHQpfSl9LHJvdXRlVG9UYWc6ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuaHJlZikmJihlLmhvc3QmJmUuaG9zdCE9PWRvY3VtZW50LmxvY2F0aW9uLmhvc3Q/KGRvY3VtZW50LmxvY2F0aW9uPWUuaHJlZiwhMSk6dGhpcy5yb3V0ZVRvKGUuaHJlZikpfSxyb3V0ZVRvOmZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhKDAsdS5pc0VtcHR5KSh0KSl7aWYoRGlzY291cnNlLmdldCgicmVxdWlyZXNSZWZyZXNoIikpcmV0dXJuIGgoRGlzY291cnNlLmdldFVSTCh0KSk7dmFyIG49dC5yZXBsYWNlKC8oaHR0cHM/XDopP1wvXC9bXlwvXSsvLCIiKSxpPURpc2NvdXJzZS5CYXNlVXJpO2lmKCF3LmlzSW50ZXJuYWwodCkpcmV0dXJuIGgodCk7aWYoIWIuc29tZShmdW5jdGlvbihlKXtpZihuLm1hdGNoKGUpKXJldHVybiBoKHQpfSkpe3ZhciBzPS9eIyguKykkLy5leGVjKHQpO2lmKHMpcmV0dXJuIHkoc1sxXSksdGhpcy5yZXBsYWNlU3RhdGUodCk7dmFyIG8scj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsYT1pKyIvbXkvIjtpZigwPT09KHQ9dC5yZXBsYWNlKC8oaHR0cHM/XDopP1wvXC9bXlwvXSsvLCIiKSkuaW5kZXhPZihhKSl7dmFyIGw9Yy5kZWZhdWx0LmN1cnJlbnQoKTtpZighbClyZXR1cm4gaCgiLzQwNCIpO3Q9dC5yZXBsYWNlKGEsdihsLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiLyIpKX1pZigwPT09dC5pbmRleE9mKCIvIikmJihvPSh2b2lkIDA9PT1pPyIvIjppKS5yZXBsYWNlKC9cLyQvLCIiKSx0PXQucmVwbGFjZShvLCIiKSksdD1nKHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmFmdGVyUm91dGVDb21wbGV0ZSYmKDAscC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixlLmFmdGVyUm91dGVDb21wbGV0ZSksIXRoaXMubmF2aWdhdGVkVG9Qb3N0KHIsdCxlKSYmKHI9PT10JiZ0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ1cmw6cmVmcmVzaCIpLCF0aGlzLm5hdmlnYXRlZFRvSG9tZShyLHQsZSkpKXJldHVybiIiPT09dCYmKHQ9Ii8iKSx0aGlzLmhhbmRsZVVSTCh0LGUpfX19LHJvdXRlVG9Vcmw6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDp7fTt0aGlzLnJvdXRlVG8oRGlzY291cnNlLmdldFVSTChlKSxuKX0scmV3cml0ZTpmdW5jdGlvbihlLHQsbil7cy5wdXNoKHtyZWdleHA6ZSxyZXBsYWNlbWVudDp0LG9wdHM6bnx8e319KX0scmVkaXJlY3RUbzpmdW5jdGlvbihlKXt3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTChlKX0saXNJbnRlcm5hbDpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aCl7aWYoMD09PWUuaW5kZXhPZigiLy8iKSYmKGU9Imh0dHA6IitlKSwwPT09ZS5pbmRleE9mKCIjIikpcmV0dXJuITA7aWYoMD09PWUuaW5kZXhPZigiLyIpKXJldHVybiEwO2lmKDA9PT1lLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITA7aWYoMD09PWUucmVwbGFjZSgvXmh0dHAvLCJodHRwcyIpLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITA7aWYoMD09PWUucmVwbGFjZSgvXmh0dHBzLywiaHR0cCIpLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITB9cmV0dXJuITF9LG5hdmlnYXRlZFRvUG9zdDpmdW5jdGlvbihlLGkscyl7dmFyIG89dGhpcyx0PWQuZXhlYyhpKSxuPXQ/dFsyXTpudWxsO2lmKG4pe3ZhciByPWQuZXhlYyhlKTtpZigocj9yWzJdOm51bGwpPT09bil7dy5yZXBsYWNlU3RhdGUoaSk7dmFyIGE9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJjb250cm9sbGVyOnRvcGljIiksbD17fSx1PWEuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7cmV0dXJuIHRbM10mJihsLm5lYXJQb3N0PXRbM10pLGkubWF0Y2goL2xhc3QkLykmJihsLm5lYXJQb3N0PWEuZ2V0KCJtb2RlbC5oaWdoZXN0X3Bvc3RfbnVtYmVyIikpLGwuY2FuY2VsU3VtbWFyeT0hMCx1LnJlZnJlc2gobCkudGhlbihmdW5jdGlvbigpe3ZhciBlPXUuY2xvc2VzdFBvc3ROdW1iZXJGb3IobC5uZWFyUG9zdHx8MSk7YS5zZXRQcm9wZXJ0aWVzKHsibW9kZWwuY3VycmVudFBvc3QiOmUsZW50ZXJlZEF0OihuZXcgRGF0ZSkuZ2V0VGltZSgpLnRvU3RyaW5nKCl9KSxvLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OmhpZ2hsaWdodCIsZSk7dmFyIHQ9e3NraXBJZk9uU2NyZWVuOnMuc2tpcElmT25TY3JlZW4sanVtcEVuZDpzLmp1bXBFbmR9LG49LyMuKyQvLmV4ZWMoaSk7biYmKHQuYW5jaG9yPW5bMF0pLG8uanVtcFRvUG9zdChlLHQpfSksITB9fXJldHVybiExfSxuYXZpZ2F0ZWRUb0hvbWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxpLmRlZmF1bHRIb21lcGFnZSkoKTtyZXR1cm4hKCF3aW5kb3cuaGlzdG9yeXx8IXdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZXx8Ii8iIT09dCYmdCE9PSIvIitufHwiLyIhPT1lJiZlIT09Ii8iK24pJiYodGhpcy5hcHBFdmVudHMudHJpZ2dlcigidXJsOnJlZnJlc2giKSwhMCl9LG9yaWdpbjpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luKygiLyI9PT1EaXNjb3Vyc2UuQmFzZVVyaT8iIjpEaXNjb3Vyc2UuQmFzZVVyaSl9LGdldCByb3V0ZXIoKXtyZXR1cm4gRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJyb3V0ZXI6bWFpbiIpfSxnZXQgYXBwRXZlbnRzKCl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIil9LGNvbnRyb2xsZXJGb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY29udHJvbGxlcjoiK2UpfSxoYW5kbGVVUkw6ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXRoaXMucm91dGVyO3QucmVwbGFjZVVSTCYmdGhpcy5yZXBsYWNlU3RhdGUoZSk7dmFyIGk9ZS5zcGxpdCgiIyIpLHM9dm9pZCAwOzI9PT1pLmxlbmd0aCYmKGU9aVswXSxzPWlbMV0pO3ZhciBvPXZvaWQgMDsobz0iLyI9PT1lfHwiLz8iPT09ZS5zdWJzdHJpbmcoMCwyKT8obi5fcm91dGVyTWljcm9saWIudXBkYXRlVVJMKGUpLG4uaGFuZGxlVVJMKGUpKTpuLnRyYW5zaXRpb25UbyhlKSkuX2Rpc2NvdXJzZV9pbnRlcmNlcHRlZD0hMCwoby5wcm9taXNlfHxvKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHkocyl9KX19KS5jcmVhdGUoKTtlLmRlZmF1bHQ9d30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiXSxmdW5jdGlvbihlLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe2UuYXBwbHkoaSxzKX12YXIgaT12b2lkIDAscz12b2lkIDA7cmV0dXJuIGZ1bmN0aW9uKCl7aT10aGlzLHM9YXJndW1lbnRzLCgwLG8uZGVib3VuY2UpKG51bGwsbix0KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3F1b3RlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17UkVHRVhQOi9cW3F1b3RlPShbXlxdXSopXF0oKD86W1xzXFNdKD8hXFtxdW90ZT1bXlxdXSpcXSkpKj8pXFtcL3F1b3RlXF0vaW0sYnVpbGQ6ZnVuY3Rpb24oZSx0LG4pe2lmKCFlKXJldHVybiIiO249bnx8e307dmFyIGk9KHQ9dHx8IiIpLnJlcGxhY2UodGhpcy5SRUdFWFAsIiIpLnRyaW0oKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuIiI7dmFyIHM9JCgiPGRpdi8+IikuaHRtbChlLmdldCgiY29va2VkIikpLnRleHQoKS5yZXBsYWNlKC9cVy9nLCIiKT09PXQucmVwbGFjZSgvXFcvZywiIiksbz1bbi51c2VybmFtZXx8ZS51c2VybmFtZSwicG9zdDoiKyhuLnBvc3R8fGUucG9zdF9udW1iZXIpLCJ0b3BpYzoiKyhuLnRvcGljfHxlLnRvcGljX2lkKV07cmV0dXJuKChuPW58fHt9KS5mdWxsfHxzKSYmby5wdXNoKCJmdWxsOnRydWUiKSwnW3F1b3RlPSInK28uam9pbigiLCAiKSsnIl1cbicrKG4ucmF3P3Q6aSkrIlxuWy9xdW90ZV1cblxuIn19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT12b2lkIDA7dHJ5e2k9bG9jYWxTdG9yYWdlLCJ0cnVlIj09PWxvY2FsU3RvcmFnZS5kaXNhYmxlTG9jYWxTdG9yYWdlP2k9bnVsbDppLnNhZmVMb2NhbFN0b3JhZ2U9ITB9Y2F0Y2goZSl7aT1udWxsfWZ1bmN0aW9uIHQoZSl7dGhpcy5jb250ZXh0PWV9KHQucHJvdG90eXBlPXthYmFuZG9uTG9jYWw6ZnVuY3Rpb24oKXtpZihpKXtmb3IodmFyIGU9aS5sZW5ndGgtMTswPD1lOyl7dmFyIHQ9aS5rZXkoZSk7dC5zdWJzdHJpbmcoMCx0aGlzLmNvbnRleHQubGVuZ3RoKT09PXRoaXMuY29udGV4dCYmaS5yZW1vdmVJdGVtKHQpLGUtLX1yZXR1cm4hMH19LHJlbW92ZTpmdW5jdGlvbihlKXtpZihpKXJldHVybiBpLnJlbW92ZUl0ZW0odGhpcy5jb250ZXh0K2UpfSxzZXQ6ZnVuY3Rpb24oZSl7aWYoIWkpcmV0dXJuITE7aVt0aGlzLmNvbnRleHQrZS5rZXldPWUudmFsdWV9LHNldE9iamVjdDpmdW5jdGlvbihlKXt0aGlzLnNldCh7a2V5OmUua2V5LHZhbHVlOkpTT04uc3RyaW5naWZ5KGUudmFsdWUpfSl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gaT9pW3RoaXMuY29udGV4dCtlXTpudWxsfSxnZXRJbnQ6ZnVuY3Rpb24oZSx0KXtpZih0PXR8fDAsIWkpcmV0dXJuIHQ7dmFyIG49cGFyc2VJbnQodGhpcy5nZXQoZSksMTApO3JldHVybiBpc0Zpbml0ZShuKT9uOnR9LGdldE9iamVjdDpmdW5jdGlvbihlKXtpZighaSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UoaVt0aGlzLmNvbnRleHQrZV0pfWNhdGNoKGUpe319fSkuZ2V0SXRlbT10LnByb3RvdHlwZS5nZXQsdC5wcm90b3R5cGUucmVtb3ZlSXRlbT10LnByb3RvdHlwZS5yZW1vdmUsdC5wcm90b3R5cGUuc2V0SXRlbT1mdW5jdGlvbihlLHQpe3RoaXMuc2V0KHtrZXk6ZSx2YWx1ZTp0fSl9LGUuZGVmYXVsdD10fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIixbImV4cG9ydHMiLCJlbWJlci1hZGRvbnMvZm10Il0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucHJvcGVydHlFcXVhbD1mdW5jdGlvbihlLHQpe3JldHVybiBFbWJlci5jb21wdXRlZChlLHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoZSk9PT10aGlzLmdldCh0KX0pfSxlLnByb3BlcnR5Tm90RXF1YWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRW1iZXIuY29tcHV0ZWQoZSx0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KGUpIT09dGhpcy5nZXQodCl9KX0sZS5wcm9wZXJ0eUdyZWF0ZXJUaGFuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEVtYmVyLmNvbXB1dGVkKGUsdCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldChlKT50aGlzLmdldCh0KX0pfSxlLnByb3BlcnR5TGVzc1RoYW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRW1iZXIuY29tcHV0ZWQoZSx0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KGUpPHRoaXMuZ2V0KHQpfSl9LGUuaTE4bj1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxpPTA7aTx0O2krKyluW2ldPWFyZ3VtZW50c1tpXTt2YXIgcz1uLnBvcCgpO3JldHVybihlPUVtYmVyKS5jb21wdXRlZC5hcHBseShlLG4uY29uY2F0KFtmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIEkxOG4udChvLmRlZmF1bHQuYXBwbHkodm9pZCAwLFtzXS5jb25jYXQocihuLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXQoZSl9KSkpKSl9XSkpfSxlLmZtdD1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxpPTA7aTx0O2krKyluW2ldPWFyZ3VtZW50c1tpXTt2YXIgcz1uLnBvcCgpO3JldHVybihlPUVtYmVyKS5jb21wdXRlZC5hcHBseShlLG4uY29uY2F0KFtmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG8uZGVmYXVsdC5hcHBseSh2b2lkIDAsW3NdLmNvbmNhdChyKG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldChlKX0pKSkpfV0pKX0sZS51cmw9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkodCksaT0wO2k8dDtpKyspbltpXT1hcmd1bWVudHNbaV07dmFyIHM9bi5wb3AoKTtyZXR1cm4oZT1FbWJlcikuY29tcHV0ZWQuYXBwbHkoZSxuLmNvbmNhdChbZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKG8uZGVmYXVsdC5hcHBseSh2b2lkIDAsW3NdLmNvbmNhdChyKG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldChlKX0pKSkpKX1dKSl9LGUuZW5kV2l0aD1mdW5jdGlvbigpe3ZhciBlLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGk9bi5wb3AoKTtyZXR1cm4oZT1FbWJlcikuY29tcHV0ZWQuYXBwbHkoZSxyKG4pLmNvbmNhdChbZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXQoZSl9KS5ldmVyeShmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aC1pLmxlbmd0aCxuPWUubGFzdEluZGV4T2YoaSk7cmV0dXJuLTEhPT1uJiZuPT09dH0pfV0pKX0sZS5zZXR0aW5nPWZ1bmN0aW9uKGUpe3JldHVybiBFbWJlci5jb21wdXRlZChmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzW2VdfSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5tZWRpdW0uZGF0ZV95ZWFyIikpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoSTE4bi50KCJkYXRlcy50aW55LmRhdGVfbW9udGgiKSl9ZnVuY3Rpb24gdShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bjtyZXR1cm4oZS5nZXRGdWxsWWVhcigpPT09KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpP2w6dCkoZSl9ZnVuY3Rpb24gbihlKXtyZXR1cm4gbW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLnRpbnkuZGF0ZV95ZWFyIikpfWZ1bmN0aW9uIGMoZSl7aWYoZSlyZXR1cm4gbW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfd2l0aF95ZWFyIikpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIEkxOG4udCgiZGF0ZXMud3JhcF9hZ28iLHtkYXRlOmV9KX1mdW5jdGlvbiBpKGUsaSl7ZnVuY3Rpb24gdChlLHQpe3ZhciBuPUkxOG4udCgiZGF0ZXMudGlueS4iK2UsdCk7cmV0dXJuIGkmJmkuYWRkQWdvP2Qobik6bn12YXIgbj1NYXRoLnJvdW5kKChuZXcgRGF0ZS1lKS8xZTMpLHM9TWF0aC5yb3VuZChuLzYwKSxvPXM8MT8xOnMscj12b2lkIDA7c3dpdGNoKCEwKXtjYXNlIDA8PW8mJm88PTQ0OnI9dCgieF9taW51dGVzIix7Y291bnQ6b30pO2JyZWFrO2Nhc2UgNDU8PW8mJm88PTg5OnI9dCgiYWJvdXRfeF9ob3VycyIse2NvdW50OjF9KTticmVhaztjYXNlIDkwPD1vJiZvPD0xNDA5OnI9dCgiYWJvdXRfeF9ob3VycyIse2NvdW50Ok1hdGgucm91bmQoby82MCl9KTticmVhaztjYXNlIDA9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnJlbGF0aXZlX2RhdGVfZHVyYXRpb24mJm88PTUyNTU5OTpyPWwoZSk7YnJlYWs7Y2FzZSAxNDEwPD1vJiZvPD0yNTE5OnI9dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9byYmbzw9MTQ0MCooRGlzY291cnNlLlNpdGVTZXR0aW5ncy5yZWxhdGl2ZV9kYXRlX2R1cmF0aW9ufHwxNCk6cj10KCJ4X2RheXMiLHtjb3VudDpNYXRoLnJvdW5kKG8vMTQ0MCl9KTticmVhaztkZWZhdWx0OnI9KGkuZGVmYXVsdEZvcm1hdHx8dSkoZSl9cmV0dXJuIHJ9ZnVuY3Rpb24gcChlLG4pe2Z1bmN0aW9uIHQoZSx0KXtyZXR1cm4gSTE4bi50KCJkYXRlcy5tZWRpdW0iKyhuPyJfd2l0aF9hZ28iOiIiKSsiLiIrZSx0KX12YXIgaT12b2lkIDAscz1NYXRoLnJvdW5kKGUvNjApO3N3aXRjaCghMCl7Y2FzZSAxPD1zJiZzPD01NTppPXQoInhfbWludXRlcyIse2NvdW50OnN9KTticmVhaztjYXNlIDU2PD1zJiZzPD04OTppPXQoInhfaG91cnMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSA5MDw9cyYmczw9MTQwOTppPXQoInhfaG91cnMiLHtjb3VudDpNYXRoLnJvdW5kKHMvNjApfSk7YnJlYWs7Y2FzZSAxNDEwPD1zJiZzPD0yNTE5Omk9dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9cyYmczw9MTI5NTk5Omk9dCgieF9kYXlzIix7Y291bnQ6TWF0aC5yb3VuZCgocy03MjApLzE0NDApfSk7YnJlYWs7Y2FzZSAxMjk2MDA8PXMmJnM8PTUyNTU5OTppPXQoInhfbW9udGhzIix7Y291bnQ6TWF0aC5yb3VuZChzLzQzMjAwKX0pO2JyZWFrO2RlZmF1bHQ6aT10KCJ4X3llYXJzIix7Y291bnQ6TWF0aC5yb3VuZChzLzUyNTYwMCl9KX1yZXR1cm4gaXx8IiZtZGFzaDsifWZ1bmN0aW9uIHMoZSx0KXt2YXIgbj0hMSE9PXQud3JhcEluU3BhbixpPXQubGVhdmVBZ28scz1NYXRoLnJvdW5kKChuZXcgRGF0ZS1lKS8xZTMpO2lmKCFlKXJldHVybiImbWRhc2g7Ijt2YXIgbz1jKGUpLHI9IiIscj1zPDYwP0kxOG4udCgibm93Iik6NDMyZTM8cz91KGUsYSk6cChzLGkpO3JldHVybiBuPyI8c3BhbiBjbGFzcz0nZGF0ZScgdGl0bGU9JyIrbysiJz4iK3IrIjwvc3Bhbj4iOnJ9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPSh0PXR8fHt9KS5mb3JtYXR8fCJ0aW55IjtyZXR1cm4idGlueSI9PT1uP2koZSx0KToibWVkaXVtIj09PW4/cyhlLHQpOiJtZWRpdW0td2l0aC1hZ28iPT09bj9zKGUsXy5leHRlbmQodCx7Zm9ybWF0OiJtZWRpdW0iLGxlYXZlQWdvOiEwfSkpOiJVTktOT1dOIEZPUk1BVCJ9ZnVuY3Rpb24gcihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/SlNPTi5wYXJzZShlKTplfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNob3J0RGF0ZT1hLGUuc21hcnRTaG9ydERhdGU9dSxlLnRpbnlEYXRlWWVhcj1uLGUudG9UaXRsZUNhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXHdcUyovZyxmdW5jdGlvbihlKXtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpfSl9LGUubG9uZ0RhdGU9YyxlLmxvbmdEYXRlTm9ZZWFyPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybjtyZXR1cm4obmV3IERhdGUpLmdldEZ1bGxZZWFyKCkhPT1lLmdldEZ1bGxZZWFyKCk/bW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXIiKSk6bW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRob3V0X3llYXIiKSl9LGUudXBkYXRlUmVsYXRpdmVBZ2U9ZnVuY3Rpb24oZSl7ZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTtlLmh0bWwobyhuZXcgRGF0ZShlLmRhdGEoInRpbWUiKSkse2Zvcm1hdDplLmRhdGEoImZvcm1hdCIpLHdyYXBJblNwYW46ITF9KSl9KX0sZS5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZT1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiIiO2lmKCtlPT0rbmV3IERhdGUoMCkpcmV0dXJuIiI7dmFyIG49KHQ9dHx8e30pLmZvcm1hdHx8InRpbnkiLGk9IiI7Im1lZGl1bSI9PT1uJiYoaT0iIGRhdGUiLHQubGVhdmVBZ28mJihuPSJtZWRpdW0td2l0aC1hZ28iKSx0LndyYXBJblNwYW49ITEpO3ZhciBzPW8oZSx0KTsidGlueSI9PT1uJiZmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXRjaCgvJ1tcZF17Mn0kLyl9KHMpJiYoaSs9IiB3aXRoLXllYXIiKTt0LnRpdGxlJiYoaSs9IicgdGl0bGU9JyIrYyhlKSk7cmV0dXJuIjxzcGFuIGNsYXNzPSdyZWxhdGl2ZS1kYXRlIitpKyInIGRhdGEtdGltZT0nIitlLmdldFRpbWUoKSsiJyBkYXRhLWZvcm1hdD0nIituKyInPiIrcysiPC9zcGFuPiJ9LGUuZHVyYXRpb25UaW55PWZ1bmN0aW9uKGUsaSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXJldHVybiImbWRhc2g7IjtmdW5jdGlvbiB0KGUsdCl7dmFyIG49STE4bi50KCJkYXRlcy50aW55LiIrZSx0KTtyZXR1cm4gaSYmaS5hZGRBZ28/ZChuKTpufXZhciBuPU1hdGgucm91bmQoZS82MCkscz1uPDE/MTpuLG89dm9pZCAwO3N3aXRjaCghMCl7Y2FzZSBlPD01OTpvPXQoImxlc3NfdGhhbl94X21pbnV0ZXMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSAwPD1zJiZzPD00NDpvPXQoInhfbWludXRlcyIse2NvdW50OnN9KTticmVhaztjYXNlIDQ1PD1zJiZzPD04OTpvPXQoImFib3V0X3hfaG91cnMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSA5MDw9cyYmczw9MTQwOTpvPXQoImFib3V0X3hfaG91cnMiLHtjb3VudDpNYXRoLnJvdW5kKHMvNjApfSk7YnJlYWs7Y2FzZSAxNDEwPD1zJiZzPD0yNTE5Om89dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9cyYmczw9MTI5NTk5Om89dCgieF9kYXlzIix7Y291bnQ6TWF0aC5yb3VuZChzLzE0NDApfSk7YnJlYWs7Y2FzZSAxMjk2MDA8PXMmJnM8PTUyNTU5OTpvPXQoInhfbW9udGhzIix7Y291bnQ6TWF0aC5yb3VuZChzLzQzMjAwKX0pO2JyZWFrO2RlZmF1bHQ6dmFyIHI9cy81MjU2MDAsYT1yJTE7bz1hPC4yNT90KCJhYm91dF94X3llYXJzIix7Y291bnQ6TWF0aC5mbG9vcihyKX0pOmE8Ljc1P3QoIm92ZXJfeF95ZWFycyIse2NvdW50Ok1hdGguZmxvb3Iocil9KTp0KCJhbG1vc3RfeF95ZWFycyIse2NvdW50Ok1hdGguZmxvb3IocikrMX0pfXJldHVybiBvfSxlLnJlbGF0aXZlQWdlTWVkaXVtU3Bhbj1wLGUucmVsYXRpdmVBZ2U9byxlLm51bWJlcj1mdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7ZT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoZSkpLGlzTmFOKGUpJiYoZT0wKTt7aWYoOTk5OTk5PGUpcmV0dXJuIHQ9STE4bi50b051bWJlcihlLzFlNix7cHJlY2lzaW9uOjF9KSxJMThuLnQoIm51bWJlci5zaG9ydC5taWxsaW9ucyIse251bWJlcjp0fSk7aWYoOTk5OTk8ZSlyZXR1cm4gdD1JMThuLnRvTnVtYmVyKE1hdGguZmxvb3IoZS8xZTMpLHtwcmVjaXNpb246MH0pLEkxOG4udCgibnVtYmVyLnNob3J0LnRob3VzYW5kcyIse251bWJlcjp0fSk7aWYoOTk5PGUpcmV0dXJuIHQ9STE4bi50b051bWJlcihlLzFlMyx7cHJlY2lzaW9uOjF9KSxJMThuLnQoIm51bWJlci5zaG9ydC50aG91c2FuZHMiLHtudW1iZXI6dH0pfXJldHVybiBlLnRvU3RyaW5nKCl9LGUuZW5zdXJlSlNPTj1yLGUucGxhaW5KU09OPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSksbj0iIjtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtuKz1lKyI6ICIrdFtlXSsiXG4ifSksbn0sZS5wcmV0dHlKU09OPWZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShyKGUpLG51bGwsMil9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaXNSVEw9cixlLmlzTFRSPWZ1bmN0aW9uKGUpe3JldHVybiBzLnRlc3QoZSl9LGUuc2V0VGV4dERpcmVjdGlvbnM9ZnVuY3Rpb24oZSl7ZS5maW5kKCIqIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLnRleHQoKTtpJiYocihpKT9uLmF0dHIoImRpciIsInJ0bCIpOm4uYXR0cigiZGlyIiwibHRyIikpfSl9LGUuc2l0ZURpcj1mdW5jdGlvbigpe289b3x8KCQoImh0bWwiKS5oYXNDbGFzcygicnRsIik/InJ0bCI6Imx0ciIpO3JldHVybiBvfTt2YXIgdD0iQS1aYS16w4Atw5bDmC3DtsO4Lcq4zIAt1pDgoIAt4b+/4rCALe+snO+3vi3vua/vu70t77+/IixuPSLWkS3fv++snS3vt73vubAt77u8IixpPW5ldyBSZWdFeHAoIl5bXiIrdCsiXSpbIituKyJdIikscz1uZXcgUmVnRXhwKCJeW14iK24rIl0qWyIrdCsiXSIpLG89dm9pZCAwO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGkudGVzdChlKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZXllbGluZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jb25maWd1cmVFeWVsaW5lPXM7dmFyIGk9dm9pZCAwLGQ9dm9pZCAwO2Z1bmN0aW9uIHMoZSl7ZD1lPyhpPWUuc2tpcFVwZGF0ZSxlLnJvb3RFbGVtZW50KTooaT0idGVzdCI9PT10LmRlZmF1bHQuZW52aXJvbm1lbnQsbnVsbCl9cygpO2Z1bmN0aW9uIG8oZSl7dGhpcy5zZWxlY3Rvcj1lfW8ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7aWYoIWkpe3ZhciBhPWQ/JChkKS5zY3JvbGxUb3AoKTokKHdpbmRvdykuc2Nyb2xsVG9wKCksZT1kPyQoZCkuaGVpZ2h0KCk6JCh3aW5kb3cpLmhlaWdodCgpLGw9YStlLHU9JCh0aGlzLnNlbGVjdG9yKSx0PWQ/dS5sYXN0KCkucG9zaXRpb24oKTp1Lmxhc3QoKS5vZmZzZXQoKSxjPSExO3JldHVybiB0JiYoYz10LnRvcDw9bCYmdC50b3A+PWEpLHUuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1kP24ucG9zaXRpb24oKS50b3A6bi5vZmZzZXQoKS50b3Ascz1pK24uaGVpZ2h0KCksbz0hMTtyZXR1cm4hbi5pcygiOnZpc2libGUiKXx8KGk8PWwmJmE8PWkmJihvPSEwKSxpPD1hJiZsPD1zJiYobz0hMCksYyYmYTw9cyYmKG89ITApLCFvfHwoYz8oMD09PWUmJnIudHJpZ2dlcigic2F3VG9wIix7ZGV0YWlsOm59KSxlPT09dS5sZW5ndGgtMT9yLnRyaWdnZXIoInNhd0JvdHRvbSIse2RldGFpbDpufSk6dm9pZCAwKTooci50cmlnZ2VyKCJzYXciLHtkZXRhaWw6bn0pLDA9PT1lJiZyLnRyaWdnZXIoInNhd1RvcCIse2RldGFpbDpufSksITEpKSl9KX19LG8ucHJvdG90eXBlLmZsdXNoUmVzdD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7InRlc3QiIT09dC5kZWZhdWx0LmVudmlyb25tZW50JiYkKHRoaXMuc2VsZWN0b3IpLmVhY2goZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi50cmlnZ2VyKCJzYXciLHtkZXRhaWw6JCh0KX0pfSl9LG4uRXZlbnRUYXJnZXQubWl4aW4oby5wcm90b3R5cGUpLGUuZGVmYXVsdD1vfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLFsiZXhwb3J0cyIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj1EaXNjb3Vyc2UuX19jb250YWluZXJfXyxpPW4ubG9va3VwKCJyb3V0ZTphcHBsaWNhdGlvbiIpLHM9aS5jb250cm9sbGVyRm9yKCJtb2RhbCIpO3Muc2V0KCJtb2RhbENsYXNzIix0Lm1vZGFsQ2xhc3MpO3ZhciBvPXQuYWRtaW4/Im1vZGFscy8iK2U6ZTtzLnNldCgibmFtZSIsbyk7dmFyIHI9bi5sb29rdXAoImNvbnRyb2xsZXI6IitvKSxhPXQudGVtcGxhdGVOYW1lfHwoMCxwLmRhc2hlcml6ZSkoZSksbD17aW50bzoibW9kYWwiLG91dGxldDoibW9kYWxCb2R5In07cj9sLmNvbnRyb2xsZXI9bzoobC5jb250cm9sbGVyPSJiYXNpYy1tb2RhbC1ib2R5IixyPW4ubG9va3VwKCJjb250cm9sbGVyOiIrbC5jb250cm9sbGVyKSksdC5hZGRNb2RhbEJvZHlWaWV3JiYobC52aWV3PSJtb2RhbC1ib2R5Iik7dmFyIHU9Im1vZGFsLyIrYSxjPXQuYWRtaW4/ImFkbWluL3RlbXBsYXRlcy8iK3U6dTtpLnJlbmRlcihjLGwpLHQudGl0bGUmJnMuc2V0KCJ0aXRsZSIsSTE4bi50KHQudGl0bGUpKSx0LnBhbmVscz8ocy5zZXRQcm9wZXJ0aWVzKHtwYW5lbHM6dC5wYW5lbHMsc2VsZWN0ZWRQYW5lbDp0LnBhbmVsc1swXX0pLHIuYWN0aW9ucy5vblNlbGVjdFBhbmVsJiZzLnNldCgib25TZWxlY3RQYW5lbCIsci5hY3Rpb25zLm9uU2VsZWN0UGFuZWwpLHMuc2V0KCJtb2RhbENsYXNzIixzLmdldCgibW9kYWxDbGFzcyIpKyIgaGFzLXRhYnMiKSk6cy5zZXRQcm9wZXJ0aWVzKHtwYW5lbHM6W10sc2VsZWN0ZWRQYW5lbDpudWxsfSksci5zZXQoIm1vZGFsIixzKTt2YXIgZD10Lm1vZGVsO3JldHVybiBkJiZyLnNldCgibW9kZWwiLGQpLHIub25TaG93JiZyLm9uU2hvdygpLHIuc2V0KCJmbGFzaE1lc3NhZ2UiLG51bGwpLHJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbGluZyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiQGVtYmVyL29iamVjdC9taXhpbiJdLGZ1bmN0aW9uKGUscyxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TY3JvbGxpbmdET01NZXRob2RzPXZvaWQgMDt2YXIgcj17YmluZE9uU2Nyb2xsOmZ1bmN0aW9uKGUsdCl7dD10fHwiZGVmYXVsdCIsJChkb2N1bWVudCkuYmluZCgidG91Y2htb3ZlLmRpc2NvdXJzZS0iK3QsZSksJCh3aW5kb3cpLmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtIit0LGUpfSx1bmJpbmRPblNjcm9sbDpmdW5jdGlvbihlKXtlPWV8fCJkZWZhdWx0IiwkKHdpbmRvdykudW5iaW5kKCJzY3JvbGwuZGlzY291cnNlLSIrZSksJChkb2N1bWVudCkudW5iaW5kKCJ0b3VjaG1vdmUuZGlzY291cnNlLSIrZSl9LHNjcmVlbk5vdEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gJCh3aW5kb3cpLmhlaWdodCgpPiQoIiNtYWluIikuaGVpZ2h0KCl9fSxuPXQuZGVmYXVsdC5jcmVhdGUoe2JpbmRTY3JvbGxpbmc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztlPWV8fHtkZWJvdW5jZToxMDB9O3ZhciBuPURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgicm91dGVyOm1haW4iKS5fcm91dGVyTWljcm9saWIsaT1mdW5jdGlvbigpe2lmKCFuLmFjdGl2ZVRyYW5zaXRpb24pcmV0dXJuKDAscy5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdCwic2Nyb2xsZWQiKX07ZS5kZWJvdW5jZSYmKGk9KDAsby5kZWZhdWx0KShpLGUuZGVib3VuY2UpKSxyLmJpbmRPblNjcm9sbChpLGUubmFtZSl9LHNjcmVlbk5vdEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gci5zY3JlZW5Ob3RGdWxsKCl9LHVuYmluZFNjcm9sbGluZzpmdW5jdGlvbihlKXtyLnVuYmluZE9uU2Nyb2xsKGUpfX0pO2UuU2Nyb2xsaW5nRE9NTWV0aG9kcz1yLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7ZSBpbnN0YW5jZW9mIEVycm9yJiZjb25zb2xlLmVycm9yKGUuc3RhY2spLCJzdHJpbmciPT10eXBlb2YgZSYmY29uc29sZS5lcnJvcihlKSxlLmpxWEhSJiYoZT1lLmpxWEhSKTt2YXIgbj12b2lkIDAsaT12b2lkIDA7aWYoZS5yZXNwb25zZUpTT04mJihpPWUucmVzcG9uc2VKU09OKSwhaSYmZS5yZXNwb25zZVRleHQpdHJ5e2k9JC5wYXJzZUpTT04oZS5yZXNwb25zZVRleHQpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5zdGFjayl9cmV0dXJuIGkmJihpLmVycm9ycyYmMDxpLmVycm9ycy5sZW5ndGg/bj1pLmVycm9ycy5qb2luKCI8YnI+Iik6aS5lcnJvcj9uPWkuZXJyb3I6aS5tZXNzYWdlP249aS5tZXNzYWdlOmkuZmFpbGVkJiYobj1pLmZhaWxlZCkpLG58fGUuc3RhdHVzJiY0MDA8PWUuc3RhdHVzJiYobj1lLnN0YXR1cysiICIrZS5zdGF0dXNUZXh0KSxufHx0fHxJMThuLnQoImdlbmVyaWNfZXJyb3IiKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5leHRyYWN0RXJyb3I9bixlLnRocm93QWpheEVycm9yPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt0aHJvdyB0JiZ0KGUpLG4oZSl9fSxlLnBvcHVwQWpheEVycm9yPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX2Rpc2NvdXJzZV9kaXNwbGF5ZWQpcmV0dXJuO3Rocm93IGJvb3Rib3guYWxlcnQobihlKSksZS5fZGlzY291cnNlX2Rpc3BsYXllZD0hMCxlfX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9yZXN1bHQtc2V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuQXJyYXlQcm94eS5leHRlbmQoKG49KDAsdC5kZWZhdWx0KSgidG90YWxSb3dzIiwibGVuZ3RoIiksbz1zPXtsb2FkaW5nOiExLGxvYWRpbmdNb3JlOiExLHRvdGFsUm93czowLHJlZnJlc2hpbmc6ITEsY29udGVudDpudWxsLGxvYWRNb3JlVXJsOm51bGwscmVmcmVzaFVybDpudWxsLGZpbmRBcmdzOm51bGwsc3RvcmU6bnVsbCxfX3R5cGU6bnVsbCxyZXN1bHRTZXRNZXRhOm51bGwsY2FuTG9hZE1vcmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdDxlfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmxvYWRNb3JlVXJsO2lmKHQpe3ZhciBuPXRoaXMudG90YWxSb3dzO3JldHVybiB0aGlzLmxlbmd0aDxuJiYhdGhpcy5sb2FkaW5nTW9yZT8odGhpcy5zZXQoImxvYWRpbmdNb3JlIiwhMCksdGhpcy5zdG9yZS5hcHBlbmRSZXN1bHRzKHRoaXMsdGhpcy5fX3R5cGUsdCkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgibG9hZGluZ01vcmUiLCExKX0pKTppLlByb21pc2UucmVzb2x2ZSgpfX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMucmVmcmVzaGluZyl7dmFyIHQ9dGhpcy5yZWZyZXNoVXJsO2lmKHQpcmV0dXJuIHRoaXMuc2V0KCJyZWZyZXNoaW5nIiwhMCksdGhpcy5zdG9yZS5yZWZyZXNoUmVzdWx0cyh0aGlzLHRoaXMuX190eXBlLHQpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInJlZnJlc2hpbmciLCExKX0pfX19LHI9ImNhbkxvYWRNb3JlIixhPVtuXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiY2FuTG9hZE1vcmUiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9yZXN1bHQtc2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiQGVtYmVyL3N0cmluZyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJyc3ZwIl0sZnVuY3Rpb24oZSx1LHQscixjLG4sZCxwLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5mbHVzaE1hcD12b2lkIDA7dmFyIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGE9dm9pZCAwO2Z1bmN0aW9uIG8oKXthPXt9fWZ1bmN0aW9uIGwoZSx0LG4pe3QmJihhW2VdPWFbZV18fHt9LGFbZV1bdF09bil9ZnVuY3Rpb24gbShlLHQpe3ZhciBuPWFbZV07biYmZGVsZXRlIG5bdF19bygpLGUuZGVmYXVsdD11LmRlZmF1bHQuZXh0ZW5kKHtfcGx1cmFsczp7Y2F0ZWdvcnk6ImNhdGVnb3JpZXMiLCJwb3N0LXJlcGx5IjoicG9zdC1yZXBsaWVzIiwicG9zdC1yZXBseS1oaXN0b3J5IjoicG9zdF9yZXBseV9oaXN0b3JpZXMiLHJldmlld2FibGVfaGlzdG9yeToicmV2aWV3YWJsZV9oaXN0b3JpZXMifSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVnaXN0ZXI9dGhpcy5yZWdpc3Rlcnx8KDAsbi5nZXRSZWdpc3RlcikodGhpcyl9LHBsdXJhbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGx1cmFsc1tlXXx8ZSsicyJ9LGFkZFBsdXJhbGl6YXRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9wbHVyYWxzW2VdPXR9LGZpbmRBbGw6ZnVuY3Rpb24oaSxlKXt2YXIgdD10aGlzLHM9dGhpcy5hZGFwdGVyRm9yKGkpLG89dGhpcztyZXR1cm4gcy5maW5kQWxsKHRoaXMsaSxlKS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPXQuX3Jlc3VsdFNldChpLG4pO3JldHVybiBzLmFmdGVyRmluZEFsbCYmKGU9cy5hZnRlckZpbmRBbGwoZSx7bG9va3VwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uX2xvb2t1cFN1YlR5cGUoZSxpLHQsbil9fSkpLGV9KX0sZmluZEZpbHRlcmVkOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5hZGFwdGVyRm9yKHQpLmZpbmQodGhpcyx0LGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4uX2J1aWxkKHQsZSl9KX0sX2h5ZHJhdGVGaW5kUmVzdWx0czpmdW5jdGlvbihlLHQsbil7aWYoIm9iamVjdCI9PT0odm9pZCAwPT09bj8idW5kZWZpbmVkIjpzKG4pKSlyZXR1cm4gdGhpcy5fcmVzdWx0U2V0KHQsZSxuKTt2YXIgaT10aGlzLmFkYXB0ZXJGb3IodCkuYXBpTmFtZUZvcih0KTtyZXR1cm4gdGhpcy5faHlkcmF0ZSh0LGVbKDAsZC51bmRlcnNjb3JlKShpKV0sZSl9LGZpbmRTdGFsZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcyxzPXRoaXMuYWRhcHRlckZvcihlKS5maW5kU3RhbGUodGhpcyxlLHQsbik7cmV0dXJue2hhc1Jlc3VsdHM6dm9pZCAwIT09cyxyZXN1bHRzOnMscmVmcmVzaDpmdW5jdGlvbigpe3JldHVybiBpLmZpbmQoZSx0LG4pfX19LGZpbmQ6ZnVuY3Rpb24oaSxzLG8pe3ZhciByPXRoaXMsYT10aGlzLmFkYXB0ZXJGb3IoaSk7cmV0dXJuIGEuZmluZCh0aGlzLGkscyxvKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0LG49ci5faHlkcmF0ZUZpbmRSZXN1bHRzKGUsaSxzLG8pO3JldHVybiBlLmV4dHJhcyYmbi5zZXQoImV4dHJhcyIsZS5leHRyYXMpLGEuY2FjaGUmJih0PWEuZmluZFN0YWxlKHIsaSxzLG8pLG49ci5fdXBkYXRlU3RhbGUodCxuKSxhLmNhY2hlRmluZChyLGkscyxvLG4pKSxufSl9LF91cGRhdGVTdGFsZTpmdW5jdGlvbihuLGUpe3JldHVybiBuJiZlLnNldCgiY29udGVudCIsZS5nZXQoImNvbnRlbnQiKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9bi5jb250ZW50LmZpbmRCeSgiaWQiLGUuZ2V0KCJpZCIpKTtyZXR1cm4gdD90LnNldFByb3BlcnRpZXMoZSk6dD1lLHR9KSksZX0scmVmcmVzaFJlc3VsdHM6ZnVuY3Rpb24oaSxzLGUpe3ZhciBvPXRoaXMscj10aGlzLmFkYXB0ZXJGb3Iocyk7cmV0dXJuKDAsdC5hamF4KShlKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPSgwLGQudW5kZXJzY29yZSkoby5wbHVyYWxpemUoci5hcGlOYW1lRm9yKHMpKSksbj10W2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5faHlkcmF0ZShzLGUsdCl9KTtpLnNldCgiY29udGVudCIsbil9KX0sYXBwZW5kUmVzdWx0czpmdW5jdGlvbihyLGEsZSl7dmFyIGw9dGhpcyx1PXRoaXMuYWRhcHRlckZvcihhKTtyZXR1cm4oMCx0LmFqYXgpKGUpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9KDAsZC51bmRlcnNjb3JlKShsLnBsdXJhbGl6ZSh1LmFwaU5hbWVGb3IoYSkpKSxuPXQubWV0YXx8dCxpPW5bInRvdGFsX3Jvd3NfIitlXXx8ci5nZXQoInRvdGFsUm93cyIpLHM9blsibG9hZF9tb3JlXyIrZV0sbz10W2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbC5faHlkcmF0ZShhLGUsdCl9KTtyLnNldFByb3BlcnRpZXMoe3RvdGFsUm93czppLGxvYWRNb3JlVXJsOnN9KSxyLmdldCgiY29udGVudCIpLnB1c2hPYmplY3RzKG8pLHIuZ2V0KCJsZW5ndGgiKT49aSYmci5zZXQoImxvYWRNb3JlVXJsIixudWxsKX0pfSx1cGRhdGU6ZnVuY3Rpb24obixpLGUpe3JldHVybiB0aGlzLmFkYXB0ZXJGb3IobikudXBkYXRlKHRoaXMsbixpLGUsZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUmJmVbbl0mJmVbbl0uaWQmJih0PWZ1bmN0aW9uKGUsdCl7dmFyIG49YVtlXTtpZihuKXt2YXIgaT1uW3RdO3JldHVybiBkZWxldGUgblt0XSxpfX0obixpKSxsKG4sZVtuXS5pZCx0KSksZX0pfSxjcmVhdGVSZWNvcmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkuaWQ/dGhpcy5faHlkcmF0ZShlLHQpOnRoaXMuX2J1aWxkKGUsdCl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXQoImlzTmV3Iik/KG0odCxuLmdldCgiaWQiKSksaS5Qcm9taXNlLnJlc29sdmUoITApKTp0aGlzLmFkYXB0ZXJGb3IodCkuZGVzdHJveVJlY29yZCh0aGlzLHQsbikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbSh0LG4uZ2V0KCJpZCIpKSxlfSl9LF9yZXN1bHRTZXQ6ZnVuY3Rpb24odCxuLGUpe3ZhciBpPXRoaXMscz10aGlzLmFkYXB0ZXJGb3IodCksbz0oMCxkLnVuZGVyc2NvcmUpKHRoaXMucGx1cmFsaXplKHMuYXBpTmFtZUZvcih0KSkpO2lmKG5bb10pe3ZhciByPW5bb10ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLl9oeWRyYXRlKHQsZSxuKX0pLGE9bi5tZXRhfHxuLGw9e2NvbnRlbnQ6cixmaW5kQXJnczplLHRvdGFsUm93czphWyJ0b3RhbF9yb3dzXyIrb118fHIubGVuZ3RoLGxvYWRNb3JlVXJsOmFbImxvYWRfbW9yZV8iK29dLHJlZnJlc2hVcmw6YVsicmVmcmVzaF8iK29dLHJlc3VsdFNldE1ldGE6bi5tZXRhLHN0b3JlOnRoaXMsX190eXBlOnR9O3JldHVybiBuLmV4dHJhcyYmKGwuZXh0cmFzPW4uZXh0cmFzKSxjLmRlZmF1bHQuY3JlYXRlKGwpfWNvbnNvbGUuZXJyb3IoIkpTT04gcmVzcG9uc2UgaXMgbWlzc2luZyBgIitvKyJgIGtleSIsbil9LF9idWlsZDpmdW5jdGlvbihlLHQpe3Quc3RvcmU9dGhpcyx0Ll9fdHlwZT1lLHQuX19zdGF0ZT10LmlkPyJjcmVhdGVkIjoibmV3Iix0LnRvcGljVHJhY2tpbmdTdGF0ZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpLHQua2V5VmFsdWVTdG9yZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSx0LnNpdGVTZXR0aW5ncz10aGlzLnJlZ2lzdGVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIik7dmFyIG49KHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgibW9kZWw6IitlKXx8ci5kZWZhdWx0KS5jcmVhdGUodCk7cmV0dXJuIGwoZSx0LmlkLG4pLG59LGFkYXB0ZXJGb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucmVnaXN0ZXIubG9va3VwKCJhZGFwdGVyOiIrZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwKCJhZGFwdGVyOnJlc3QiKX0sX2xvb2t1cFN1YlR5cGU6ZnVuY3Rpb24oZSx0LG4saSl7aWYoImNhdGVnb3J5Ij09PWUmJiJ0b3BpYyIhPT10KXJldHVybiBwLmRlZmF1bHQuZmluZEJ5SWQobik7aS5tZXRhJiZpLm1ldGEudHlwZXMmJihlPWkubWV0YS50eXBlc1tlXXx8ZSk7dmFyIHM9dGhpcy5wbHVyYWxpemUoZSksbz1pW3RoaXMucGx1cmFsaXplKGUpXTtpZihvKXt2YXIgcj0iX19oYXNoZWRfIitzLGE9aVtyXTthfHwoYT17fSxvLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlLmlkXT1lfSksaVtyXT1hKTt2YXIgbD1hW25dO2lmKGwpe3ZhciB1PXRoaXMuX2h5ZHJhdGUoZSxsLGkpO3JldHVybiBhW25dPXV9fX0sX2h5ZHJhdGVFbWJlZGRlZDpmdW5jdGlvbihvLHIsYSl7dmFyIGw9dGhpcztPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPS8oLispXF9pZChzPykkLy5leGVjKGUpO3MmJih0PXNbMV0sc1syXT8obj1yW2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbC5fbG9va3VwU3ViVHlwZSh0LG8sZSxhKX0pLHJbbC5wbHVyYWxpemUodCldPW58fFtdLGRlbGV0ZSByW2VdKTooaT1sLl9sb29rdXBTdWJUeXBlKHQsbyxyW2VdLGEpKT8oclt0XT1pLGRlbGV0ZSByW2VdKTooMCx1LnNldCkocix0LG51bGwpKX0pfSxfaHlkcmF0ZTpmdW5jdGlvbihlLHQsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCBoeWRyYXRlICIrZSsiIG9mIGBudWxsYCIpO3ZhciBpPXQuaWQ7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCBoeWRyYXRlICIrZSsiIHdpdGhvdXQgYW4gYGlkYCIpOyIxIj09PShuPW58fHQpLl9fcmVzdF9zZXJpYWxpemVyJiZ0aGlzLl9oeWRyYXRlRW1iZWRkZWQoZSx0LG4pO3ZhciBzPWZ1bmN0aW9uKGUsdCl7dmFyIG49YVtlXTtpZihuKXJldHVybiBuW3RdfShlLGkpO2lmKHM9PT10KXJldHVybiBzO2lmKHMpe2RlbGV0ZSB0LmlkO3ZhciBvPXRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgibW9kZWw6IitlKTtyZXR1cm4gbyYmby5jbGFzcyYmKG89by5jbGFzcyksbz1vfHxyLmRlZmF1bHQscy5zZXRQcm9wZXJ0aWVzKG8ubXVuZ2UodCkpLHQuaWQ9aSxzfXJldHVybiB0aGlzLl9idWlsZChlLHQpfX0pLGUuZmx1c2hNYXA9b30pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9hY3Rpb24tc3VtbWFyeSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxpLG4scyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2FuVG9nZ2xlOigwLHQub3IpKCJjYW5fdW5kbyIsImNhbl9hY3QiKSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2FjdGVkOiExLGNvdW50OnRoaXMuY291bnQtMSxjYW5fYWN0OiEwLGNhbl91bmRvOiExfSl9LHRvZ2dsZVByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWN0ZWQ/dGhpcy51bmRvKGUpOnRoaXMuYWN0KGUpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWN0ZWQ/KHRoaXMudW5kbyhlKSwhMSk6KHRoaXMuYWN0KGUpLCEwKX0sYWN0OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gZT1lfHx7fSx0aGlzLnNldFByb3BlcnRpZXMoe2FjdGVkOiEwLGNvdW50OnRoaXMuY291bnQrMSxjYW5fYWN0OiExLGNhbl91bmRvOiEwfSksKDAsaS5hamF4KSgiL3Bvc3RfYWN0aW9ucyIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOnRoaXMuZmxhZ1RvcGljP3RoaXMuZ2V0KCJmbGFnVG9waWMuaWQiKTp0LmdldCgiaWQiKSxwb3N0X2FjdGlvbl90eXBlX2lkOnRoaXMuaWQsbWVzc2FnZTplLm1lc3NhZ2UsaXNfd2FybmluZzplLmlzV2FybmluZyx0YWtlX2FjdGlvbjplLnRha2VBY3Rpb24sZmxhZ190b3BpYzohIXRoaXMuZmxhZ1RvcGljfSxyZXR1cm5YSFI6ITB9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuLmZsYWdUb3BpY3x8dC51cGRhdGVBY3Rpb25zU3VtbWFyeShlLnJlc3VsdCkse2FjdGVkOiEwLHJlbWFpbmluZzpwYXJzZUludChlLnhoci5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUFjdGlvbnMtUmVtYWluaW5nIil8fDAsMTApLG1heDpwYXJzZUludChlLnhoci5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUFjdGlvbnMtTWF4Iil8fDAsMTApfX0pLmNhdGNoKGZ1bmN0aW9uKGUpeygwLHMucG9wdXBBamF4RXJyb3IpKGUpLG4ucmVtb3ZlQWN0aW9uKHQpfSl9LHVuZG86ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVtb3ZlQWN0aW9uKHQpLCgwLGkuYWpheCkoIi9wb3N0X2FjdGlvbnMvIit0LmdldCgiaWQiKSx7dHlwZToiREVMRVRFIixkYXRhOntwb3N0X2FjdGlvbl90eXBlX2lkOnRoaXMuaWR9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC51cGRhdGVBY3Rpb25zU3VtbWFyeShlKSx7YWN0ZWQ6ITF9fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxyLGEsbCx1LGMsZD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoImlkIiksbz1zPXtkZXNjcmlwdGlvbjpmdW5jdGlvbihlKXt2YXIgdD0iIjtzd2l0Y2goZSl7Y2FzZSAxOnQ9ImZ1bGwiO2JyZWFrO2Nhc2UgMjp0PSJjcmVhdGVfcG9zdCI7YnJlYWs7Y2FzZSAzOnQ9InJlYWRvbmx5In1yZXR1cm4gSTE4bi50KCJwZXJtaXNzaW9uX3R5cGVzLiIrdCl9fSxyPSJkZXNjcmlwdGlvbiIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImRlc2NyaXB0aW9uIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKTtkLkZVTEw9MSxkLkNSRUFURV9QT1NUPTIsZC5SRUFET05MWT0zLGUuZGVmYXVsdD1kfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9wZXJtaXNzaW9uLXR5cGUiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSx0LGEsbixpLHMsbyxyLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaCxiLGcsdix5LHcseCxrLFAsaixULEUsTyxTLEMsTSxEO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSSxMPWkuZGVmYXVsdC5leHRlbmQoKGM9KDAsdC5vbikoImluaXQiKSxkPSgwLHQub24pKCJpbml0IikscD0oMCx0LmRlZmF1bHQpKCJpZCIpLG09KDAsdC5kZWZhdWx0KSgicGFyZW50Q2F0ZWdvcnkuYW5jZXN0b3JzIiksZj0oMCx0LmRlZmF1bHQpKCJwYXJlbnRDYXRlZ29yeS5sZXZlbCIpLGg9KDAsdC5kZWZhdWx0KSgic3ViY2F0ZWdvcmllcyIpLGI9KDAsdC5kZWZhdWx0KSgic3ViY2F0ZWdvcmllcyIpLGc9KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX2xldmVsIiksdj0oMCx0LmRlZmF1bHQpKCJub3RpZmljYXRpb25fbGV2ZWwiKSx5PSgwLHQuZGVmYXVsdCkoIm5hbWUiKSx3PSgwLHQuZGVmYXVsdCkoIm5hbWUiKSx4PSgwLHQuZGVmYXVsdCkoInVybCIpLGs9KDAsdC5kZWZhdWx0KSgidXJsIiksUD0oMCx0LmRlZmF1bHQpKCJjb2xvciIsInRleHRfY29sb3IiKSxqPSgwLHQuZGVmYXVsdCkoInRvcGljX2NvdW50IiksVD0oMCx0LmRlZmF1bHQpKCJ0b3BpY19jb3VudCIsInN1YmNhdGVnb3JpZXMuW10iKSxFPSgwLHQuZGVmYXVsdCkoInRvcGljcyIpLE89KDAsdC5kZWZhdWx0KSgidG9waWNzIiksUz0oMCx0LmRlZmF1bHQpKCJpZCIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSxDPSgwLHQuZGVmYXVsdCkoImlkIiwidG9waWNUcmFja2luZ1N0YXRlLm1lc3NhZ2VDb3VudCIpLE09KDAsdC5kZWZhdWx0KSgiaWQiKSx1KEQ9e3Blcm1pc3Npb25zOm51bGwsc2V0dXBHcm91cHNBbmRQZXJtaXNzaW9uczpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5hdmFpbGFibGVfZ3JvdXBzO3QmJih0aGlzLnNldCgiYXZhaWxhYmxlR3JvdXBzIix0KSwoZT10aGlzLmdyb3VwX3Blcm1pc3Npb25zKSYmdGhpcy5zZXQoInBlcm1pc3Npb25zIixlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5yZW1vdmVPYmplY3QoZS5ncm91cF9uYW1lKSx7Z3JvdXBfbmFtZTplLmdyb3VwX25hbWUscGVybWlzc2lvbjpzLmRlZmF1bHQuY3JlYXRlKHtpZDplLnBlcm1pc3Npb25fdHlwZX0pfX0pKSl9LHNldHVwUmVxdWlyZWRUYWdHcm91cHM6ZnVuY3Rpb24oKXt0aGlzLnJlcXVpcmVkX3RhZ19ncm91cF9uYW1lJiZ0aGlzLnNldCgicmVxdWlyZWRfdGFnX2dyb3VwcyIsW3RoaXMucmVxdWlyZWRfdGFnX2dyb3VwX25hbWVdKX0sYXZhaWxhYmxlUGVybWlzc2lvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bcy5kZWZhdWx0LmNyZWF0ZSh7aWQ6cy5kZWZhdWx0LkZVTEx9KSxzLmRlZmF1bHQuY3JlYXRlKHtpZDpzLmRlZmF1bHQuQ1JFQVRFX1BPU1R9KSxzLmRlZmF1bHQuY3JlYXRlKHtpZDpzLmRlZmF1bHQuUkVBRE9OTFl9KV19LHNlYXJjaENvbnRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6ImNhdGVnb3J5IixpZDplLGNhdGVnb3J5OnRoaXN9fSxhbmNlc3RvcnM6ZnVuY3Rpb24oZSl7cmV0dXJuW10uY29uY2F0KGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0oZXx8W10pLFt0aGlzXSl9LGxldmVsOmZ1bmN0aW9uKGUpe3JldHVybihlfHwtMSkrMX0saXNQYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZS5sZW5ndGh9LGlzR3JhbmRQYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWJjYXRlZ29yaWVzJiYwPGUuc3ViY2F0ZWdvcmllcy5sZW5ndGh9KX0saXNNdXRlZDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PW8uTm90aWZpY2F0aW9uTGV2ZWxzLk1VVEVEfSxub3RpZmljYXRpb25MZXZlbFN0cmluZzpmdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyhvLk5vdGlmaWNhdGlvbkxldmVscykuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gby5Ob3RpZmljYXRpb25MZXZlbHNbZV09PT10fSk7aWYoZSlyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfSx1cmw6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL2MvIitMLnNsdWdGb3IodGhpcykrIi8iK3RoaXMuaWQpfSxmdWxsU2x1ZzpmdW5jdGlvbigpe3JldHVybiBMLnNsdWdGb3IodGhpcykucmVwbGFjZSgvXC8vZywiLSIpfSxuYW1lTG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdW5yZWFkVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlKyIvbC91bnJlYWQifSxuZXdVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIi9sL25ldyJ9LHN0eWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImJhY2tncm91bmQtY29sb3I6ICMiK2UrIjsgY29sb3I6ICMiK3R9LG1vcmVUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+KHRoaXMubnVtX2ZlYXR1cmVkX3RvcGljc3x8Mil9LHRvdGFsVG9waWNDb3VudDpmdW5jdGlvbih0LGUpe3JldHVybiBlJiZlLmZvckVhY2goZnVuY3Rpb24oZSl7dCs9ZS50b3BpY19jb3VudH0pLHR9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmlkLHQ9ZT8iL2NhdGVnb3JpZXMvIitlOiIvY2F0ZWdvcmllcyI7cmV0dXJuKDAsbi5hamF4KSh0LHtkYXRhOntuYW1lOnRoaXMubmFtZSxzbHVnOnRoaXMuc2x1Zyxjb2xvcjp0aGlzLmNvbG9yLHRleHRfY29sb3I6dGhpcy50ZXh0X2NvbG9yLHNlY3VyZTp0aGlzLnNlY3VyZSxwZXJtaXNzaW9uczp0aGlzLl9wZXJtaXNzaW9uc0ZvclVwZGF0ZSgpLGF1dG9fY2xvc2VfaG91cnM6dGhpcy5hdXRvX2Nsb3NlX2hvdXJzLGF1dG9fY2xvc2VfYmFzZWRfb25fbGFzdF9wb3N0OnRoaXMuZ2V0KCJhdXRvX2Nsb3NlX2Jhc2VkX29uX2xhc3RfcG9zdCIpLHBvc2l0aW9uOnRoaXMucG9zaXRpb24sZW1haWxfaW46dGhpcy5lbWFpbF9pbixlbWFpbF9pbl9hbGxvd19zdHJhbmdlcnM6dGhpcy5lbWFpbF9pbl9hbGxvd19zdHJhbmdlcnMsbWFpbGluZ2xpc3RfbWlycm9yOnRoaXMubWFpbGluZ2xpc3RfbWlycm9yLHBhcmVudF9jYXRlZ29yeV9pZDp0aGlzLnBhcmVudF9jYXRlZ29yeV9pZCx1cGxvYWRlZF9sb2dvX2lkOnRoaXMuZ2V0KCJ1cGxvYWRlZF9sb2dvLmlkIiksdXBsb2FkZWRfYmFja2dyb3VuZF9pZDp0aGlzLmdldCgidXBsb2FkZWRfYmFja2dyb3VuZC5pZCIpLGFsbG93X2JhZGdlczp0aGlzLmFsbG93X2JhZGdlcyxjdXN0b21fZmllbGRzOnRoaXMuY3VzdG9tX2ZpZWxkcyx0b3BpY190ZW1wbGF0ZTp0aGlzLnRvcGljX3RlbXBsYXRlLGFsbF90b3BpY3Nfd2lraTp0aGlzLmFsbF90b3BpY3Nfd2lraSxhbGxvd2VkX3RhZ3M6dGhpcy5hbGxvd2VkX3RhZ3MsYWxsb3dlZF90YWdfZ3JvdXBzOnRoaXMuYWxsb3dlZF90YWdfZ3JvdXBzLGFsbG93X2dsb2JhbF90YWdzOnRoaXMuYWxsb3dfZ2xvYmFsX3RhZ3MscmVxdWlyZWRfdGFnX2dyb3VwX25hbWU6dGhpcy5yZXF1aXJlZF90YWdfZ3JvdXBzP3RoaXMucmVxdWlyZWRfdGFnX2dyb3Vwc1swXTpudWxsLG1pbl90YWdzX2Zyb21fcmVxdWlyZWRfZ3JvdXA6dGhpcy5taW5fdGFnc19mcm9tX3JlcXVpcmVkX2dyb3VwLHNvcnRfb3JkZXI6dGhpcy5zb3J0X29yZGVyLHNvcnRfYXNjZW5kaW5nOnRoaXMuc29ydF9hc2NlbmRpbmcsdG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkOnRoaXMudG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkLHNob3dfc3ViY2F0ZWdvcnlfbGlzdDp0aGlzLnNob3dfc3ViY2F0ZWdvcnlfbGlzdCxudW1fZmVhdHVyZWRfdG9waWNzOnRoaXMubnVtX2ZlYXR1cmVkX3RvcGljcyxkZWZhdWx0X3ZpZXc6dGhpcy5kZWZhdWx0X3ZpZXcsc3ViY2F0ZWdvcnlfbGlzdF9zdHlsZTp0aGlzLnN1YmNhdGVnb3J5X2xpc3Rfc3R5bGUsZGVmYXVsdF90b3BfcGVyaW9kOnRoaXMuZGVmYXVsdF90b3BfcGVyaW9kLG1pbmltdW1fcmVxdWlyZWRfdGFnczp0aGlzLm1pbmltdW1fcmVxdWlyZWRfdGFncyxuYXZpZ2F0ZV90b19maXJzdF9wb3N0X2FmdGVyX3JlYWQ6dGhpcy5nZXQoIm5hdmlnYXRlX3RvX2ZpcnN0X3Bvc3RfYWZ0ZXJfcmVhZCIpLHNlYXJjaF9wcmlvcml0eTp0aGlzLnNlYXJjaF9wcmlvcml0eSxyZXZpZXdhYmxlX2J5X2dyb3VwX25hbWU6dGhpcy5yZXZpZXdhYmxlX2J5X2dyb3VwX25hbWV9LHR5cGU6ZT8iUFVUIjoiUE9TVCJ9KX0sX3Blcm1pc3Npb25zRm9yVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wZXJtaXNzaW9ucyx0PXt9O3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHRbZS5ncm91cF9uYW1lXT1lLnBlcm1pc3Npb24uaWR9KSx0fSxkZXN0cm95OmZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5hamF4KSgiL2NhdGVnb3JpZXMvIisodGhpcy5pZHx8dGhpcy5zbHVnKSx7dHlwZToiREVMRVRFIn0pfSxhZGRQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMucGVybWlzc2lvbnMuYWRkT2JqZWN0KGUpLHRoaXMuYXZhaWxhYmxlR3JvdXBzLnJlbW92ZU9iamVjdChlLmdyb3VwX25hbWUpfSxyZW1vdmVQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMucGVybWlzc2lvbnMucmVtb3ZlT2JqZWN0KGUpLHRoaXMuYXZhaWxhYmxlR3JvdXBzLmFkZE9iamVjdChlLmdyb3VwX25hbWUpfSxsYXRlc3RUb3BpYzpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aClyZXR1cm4gZVswXX0sZmVhdHVyZWRUb3BpY3M6ZnVuY3Rpb24oZSl7aWYoZSYmZS5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoMCx0aGlzLm51bV9mZWF0dXJlZF90b3BpY3N8fDIpfSx1bnJlYWRUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9waWNUcmFja2luZ1N0YXRlLmNvdW50VW5yZWFkKGUpfSxuZXdUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9waWNUcmFja2luZ1N0YXRlLmNvdW50TmV3KGUpfSxzZXROb3RpZmljYXRpb246ZnVuY3Rpb24oZSl7dGhpcy5zZXQoIm5vdGlmaWNhdGlvbl9sZXZlbCIsZSk7dmFyIHQ9Ii9jYXRlZ29yeS8iK3RoaXMuaWQrIi9ub3RpZmljYXRpb25zIjtyZXR1cm4oMCxuLmFqYXgpKHQse2RhdGE6e25vdGlmaWNhdGlvbl9sZXZlbDplfSx0eXBlOiJQT1NUIn0pfSxpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpfX0sInNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsInNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMiKSxEKSx1KEQsInNldHVwUmVxdWlyZWRUYWdHcm91cHMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsInNldHVwUmVxdWlyZWRUYWdHcm91cHMiKSxEKSx1KEQsImF2YWlsYWJsZVBlcm1pc3Npb25zIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImF2YWlsYWJsZVBlcm1pc3Npb25zIiksRCksdShELCJzZWFyY2hDb250ZXh0IixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJzZWFyY2hDb250ZXh0IiksRCksdShELCJhbmNlc3RvcnMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImFuY2VzdG9ycyIpLEQpLHUoRCwibGV2ZWwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImxldmVsIiksRCksdShELCJpc1BhcmVudCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwiaXNQYXJlbnQiKSxEKSx1KEQsImlzR3JhbmRQYXJlbnQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImlzR3JhbmRQYXJlbnQiKSxEKSx1KEQsImlzTXV0ZWQiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImlzTXV0ZWQiKSxEKSx1KEQsIm5vdGlmaWNhdGlvbkxldmVsU3RyaW5nIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJub3RpZmljYXRpb25MZXZlbFN0cmluZyIpLEQpLHUoRCwidXJsIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1cmwiKSxEKSx1KEQsImZ1bGxTbHVnIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImZ1bGxTbHVnIiksRCksdShELCJuYW1lTG93ZXIiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsIm5hbWVMb3dlciIpLEQpLHUoRCwidW5yZWFkVXJsIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1bnJlYWRVcmwiKSxEKSx1KEQsIm5ld1VybCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibmV3VXJsIiksRCksdShELCJzdHlsZSIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwic3R5bGUiKSxEKSx1KEQsIm1vcmVUb3BpY3MiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsIm1vcmVUb3BpY3MiKSxEKSx1KEQsInRvdGFsVG9waWNDb3VudCIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwidG90YWxUb3BpY0NvdW50IiksRCksdShELCJsYXRlc3RUb3BpYyIsW0VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibGF0ZXN0VG9waWMiKSxEKSx1KEQsImZlYXR1cmVkVG9waWNzIixbT10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJmZWF0dXJlZFRvcGljcyIpLEQpLHUoRCwidW5yZWFkVG9waWNzIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1bnJlYWRUb3BpY3MiKSxEKSx1KEQsIm5ld1RvcGljcyIsW0NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibmV3VG9waWNzIiksRCksdShELCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSIsW01dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwiaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiKSxEKSxEKSk7TC5yZW9wZW5DbGFzcyh7ZmluZFVuY2F0ZWdvcml6ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gST1JfHxMLmxpc3QoKS5maW5kQnkoImlkIixsLmRlZmF1bHQuY3VycmVudFByb3AoInVuY2F0ZWdvcml6ZWRfY2F0ZWdvcnlfaWQiKSl9LHNsdWdGb3I6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDoiLyI7aWYoIWUpcmV0dXJuIiI7dmFyIGk9KDAsYS5nZXQpKGUsInBhcmVudENhdGVnb3J5Iikscz0iIjtpJiYocz1MLnNsdWdGb3IoaSkrbik7dmFyIG89KDAsYS5nZXQpKGUsImlkIikscj0oMCxhLmdldCkoZSwic2x1ZyIpO3JldHVybiByJiYwIT09ci50cmltKCkubGVuZ3RoP3MrcjoiIitzK28rIi1jYXRlZ29yeSJ9LGxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjYXRlZ29yaWVzTGlzdCIpfSxsaXN0QnlBY3Rpdml0eTpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHQuY3VycmVudFByb3AoInNvcnRlZENhdGVnb3JpZXMiKX0sX2lkTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIGwuZGVmYXVsdC5jdXJyZW50UHJvcCgiY2F0ZWdvcmllc0J5SWQiKX0sZmluZFNpbmdsZUJ5U2x1ZzpmdW5jdGlvbih0KXtyZXR1cm4iZW5jb2RlZCIhPT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNsdWdfZ2VuZXJhdGlvbl9tZXRob2Q/TC5saXN0KCkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gTC5zbHVnRm9yKGUpPT09dH0pOkwubGlzdCgpLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIEwuc2x1Z0ZvcihlKT09PWVuY29kZVVSSSh0KX0pfSxmaW5kQnlJZDpmdW5jdGlvbihlKXtpZihlKXJldHVybiBMLl9pZE1hcCgpW2VdfSxmaW5kQnlJZHM6ZnVuY3Rpb24oZSl7dmFyIG49W107cmV0dXJuKDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOltdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PUwuZmluZEJ5SWQoZSk7dCYmbi5wdXNoKHQpfSksbn0sZmluZEJ5U2x1Z0FuZFBhcmVudDpmdW5jdGlvbih0LG4pe3JldHVybiJlbmNvZGVkIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2x1Z19nZW5lcmF0aW9uX21ldGhvZCYmKHQ9ZW5jb2RlVVJJKHQpKSxMLmxpc3QoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNsdWc9PT10JiYoZS5wYXJlbnRDYXRlZ29yeXx8bnVsbCk9PT1ufSl9LGZpbmRCeVNsdWdQYXRoOmZ1bmN0aW9uKGUpe3ZhciB0PW51bGwsbj0hMCxpPSExLHM9dm9pZCAwO3RyeXtmb3IodmFyIG8scj1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KG89ci5uZXh0KCkpLmRvbmUpO249ITApe3ZhciBhPW8udmFsdWU7aWYoISh0PXRoaXMuZmluZEJ5U2x1Z0FuZFBhcmVudChhLHQpKSlyZXR1cm4gbnVsbH19Y2F0Y2goZSl7aT0hMCxzPWV9ZmluYWxseXt0cnl7IW4mJnIucmV0dXJuJiZyLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBzfX1yZXR1cm4gdH0sZmluZEJ5U2x1Z1BhdGhXaXRoSUQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKTsiZW5jb2RlZCI9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNsdWdfZ2VuZXJhdGlvbl9tZXRob2QmJih0PXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBkZWNvZGVVUkkoZSl9KSk7dmFyIG4saSxzPW51bGw7cmV0dXJuIDA8dC5sZW5ndGgmJnRbdC5sZW5ndGgtMV0ubWF0Y2goL15cZCskLyk/KG49cGFyc2VJbnQodC5wb3AoKSwxMCkscz1MLmZpbmRCeUlkKG4pKTohKHM9TC5maW5kQnlTbHVnUGF0aCh0KSkmJjA8dC5sZW5ndGgmJnRbdC5sZW5ndGgtMV0ubWF0Y2goL15cZCstY2F0ZWdvcnkvKSYmKGk9cGFyc2VJbnQodC5wb3AoKSwxMCkscz1MLmZpbmRCeUlkKGkpKSxzfSxmaW5kQnlTbHVnOmZ1bmN0aW9uKHQsbil7dmFyIGU9TC5saXN0KCksaT12b2lkIDA7aWYobil7dmFyIHM9TC5maW5kU2luZ2xlQnlTbHVnKG4pO2lmKHMpe2lmKCJub25lIj09PXQpcmV0dXJuIHM7aT1lLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpPT09cyYmKCJlbmNvZGVkIiE9PURpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2x1Z19nZW5lcmF0aW9uX21ldGhvZCYmTC5zbHVnRm9yKGUpPT09bisiLyIrdHx8ImVuY29kZWQiPT09RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zbHVnX2dlbmVyYXRpb25fbWV0aG9kJiZMLnNsdWdGb3IoZSk9PT1lbmNvZGVVUkkobikrIi8iK2VuY29kZVVSSSh0KSl9KX19ZWxzZSBpZigoaT1MLmZpbmRTaW5nbGVCeVNsdWcodCkpJiZpLmdldCgicGFyZW50Q2F0ZWdvcnkiKSlyZXR1cm47cmV0dXJuIGk9aXx8ZS5maW5kQnkoImlkIixwYXJzZUludCh0LDEwKSl9LHJlbG9hZEJ5SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5hamF4KSgiL2MvIitlKyIvc2hvdy5qc29uIil9LHJlbG9hZEJ5U2x1ZzpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLG4uYWpheCkoIi9jLyIrdCsiLyIrZSsiL2ZpbmRfYnlfc2x1Zy5qc29uIik6KDAsbi5hamF4KSgiL2MvIitlKyIvZmluZF9ieV9zbHVnLmpzb24iKX0scmVsb2FkQnlTbHVnUGF0aDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmFqYXgpKCIvYy8iK2UrIi9maW5kX2J5X3NsdWcuanNvbiIpfSxzZWFyY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbj01O2lmKHQpe2lmKDA9PT10LmxpbWl0KXJldHVybltdO3QubGltaXQmJihuPXQubGltaXQpfXZhciBpPSIiPT09ZSxzPWU7aXx8KGU9KHM9ZT1lLnRvTG93ZXJDYXNlKCkpLnJlcGxhY2UoLy0vZywiICIpKTtmb3IodmFyIG89TC5saXN0QnlBY3Rpdml0eSgpLHI9by5sZW5ndGgsYT1bXSxsPWZ1bmN0aW9uKCl7cmV0dXJuIGEubGVuZ3RoPT09bn0sdT0wO3U8ciYmIWwoKTt1Kyspe3ZhciBjPW9bdV07KCFpfHxjLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikpJiYoaXx8MCE9PWMuZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpJiYwIT09Yy5nZXQoInNsdWciKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocykpfHxhLnB1c2goYyl9aWYoIWwoKSlmb3IodT0wO3U8ciYmIWwoKTt1Kyspe3ZhciBkPW9bdV07IWkmJigwPGQuZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpfHwwPGQuZ2V0KCJzbHVnIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKHMpKSYmLTE9PT1hLmluZGV4T2YoZCkmJmEucHVzaChkKX1yZXR1cm4gXy5zb3J0QnkoYSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoInJlYWRfcmVzdHJpY3RlZCIpfSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiQ2F0ZWdvcnkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmRlZmF1bHQpKCJJbXBvcnQgdGhlIENhdGVnb3J5IGNsYXNzIGluc3RlYWQgb2YgdXNpbmcgRGlzY291cnNlLkNhdGVnb3J5Iix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksTH19KSxlLmRlZmF1bHQ9TH0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiIsImRpc2NvdXJzZS9tb2RlbHMvYWN0aW9uLXN1bW1hcnkiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJwcmV0dHktdGV4dC9jZW5zb3JlZC13b3JkcyIsImRpc2NvdXJzZS9saWIvdGV4dCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxsLHQsdSxuLGkscyxvLHIsYSxjLGQscCxtLGYsaCxiLGcsdix5LHcpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBrLFAsaixULEUsTyxTLEMsTSxELEksTCxBLE4seixVLEYsQixSLHEsSCwkLEssVyxWLEcsWSxKLFgsUSxaLGVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLklEX0NPTlNUUkFJTlQ9dm9pZCAwLGUubG9hZFRvcGljVmlldz1mdW5jdGlvbih0LGUpe3ZhciBuPV8ubWVyZ2Uoe30sZSksaT0iIitEaXNjb3Vyc2UuZ2V0VVJMKCIvdC8iKSt0LmlkLHM9KG4ubmVhclBvc3Q/aSsiLyIrbi5uZWFyUG9zdDppKSsiLmpzb24iO3JldHVybiBkZWxldGUgbi5uZWFyUG9zdCxkZWxldGUgbi5fX3R5cGUsZGVsZXRlIG4uc3RvcmUsbS5kZWZhdWx0LmdldEFuZFJlbW92ZSgidG9waWNfIit0LmlkLGZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5hamF4KShzLHtkYXRhOm59KX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQudXBkYXRlRnJvbUpzb24oZSksZX0pfSxlLm1vdmVQb3N0cz1mdW5jdGlvbihlLHQpe3JldHVybigwLHUuYWpheCkoIi90LyIrZSsiL21vdmUtcG9zdHMiLHt0eXBlOiJQT1NUIixkYXRhOnR9KS50aGVuKG5lKX0sZS5tZXJnZVRvcGljPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdS5hamF4KSgiL3QvIitlKyIvbWVyZ2UtdG9waWMiLHt0eXBlOiJQT1NUIixkYXRhOnR9KS50aGVuKG5lKX07ZS5JRF9DT05TVFJBSU5UPS9eXGQrJC87dmFyIHRlPWkuZGVmYXVsdC5leHRlbmQoKGs9KDAsaC5kZWZhdWx0KSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwiaGlnaGVzdF9wb3N0X251bWJlciIpLFA9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5maXJzdE9iamVjdCIpLGo9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5bXSIpLFQ9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5bXSIsInBhcnRpY2lwYW50cy5bXSIsImFsbG93ZWRfdXNlcl9jb3VudCIpLEU9KDAsaC5kZWZhdWx0KSgiZmFuY3lfdGl0bGUiKSxPPSgwLGguZGVmYXVsdCkoImJ1bXBlZF9hdCIsImNyZWF0ZWRBdCIpLFM9KDAsaC5kZWZhdWx0KSgiYnVtcGVkQXQiLCJjcmVhdGVkQXQiKSxDPSgwLGguZGVmYXVsdCkoImNyZWF0ZWRfYXQiKSxNPSgwLGguZGVmYXVsdCkoInRhZ3MiKSxEPSgwLGguZGVmYXVsdCkoInJlbGF0ZWRfbWVzc2FnZXMiKSxJPSgwLGguZGVmYXVsdCkoInN1Z2dlc3RlZF90b3BpY3MiKSxMPSgwLGguZGVmYXVsdCkoInBvc3RzX2NvdW50IiksQT0oMCxoLmRlZmF1bHQpKCJpZCIpLE49KDAsaC5vbikoImluaXQiKSx6PSgwLGgub2JzZXJ2ZXMpKCJjYXRlZ29yeV9pZCIpLFU9KDAsaC5vYnNlcnZlcykoImNhdGVnb3J5TmFtZSIpLEY9KDAsaC5kZWZhdWx0KSgidGFncyIpLEI9KDAsaC5kZWZhdWx0KSgidXJsIiksUj0oMCxoLmRlZmF1bHQpKCJpZCIsInNsdWciKSxxPSgwLGguZGVmYXVsdCkoIm5ld19wb3N0cyIsInVucmVhZCIpLEg9KDAsaC5kZWZhdWx0KSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwidXJsIiksJD0oMCxoLmRlZmF1bHQpKCJsYXN0X3JlYWRfcG9zdF9udW1iZXIiLCJoaWdoZXN0X3Bvc3RfbnVtYmVyIiwidXJsIiksSz0oMCxoLmRlZmF1bHQpKCJoaWdoZXN0X3Bvc3RfbnVtYmVyIiwidXJsIiksVz0oMCxoLmRlZmF1bHQpKCJ1cmwiKSxWPSgwLGguZGVmYXVsdCkoInVybCIpLEc9KDAsaC5kZWZhdWx0KSgibGFzdF9wb3N0ZXIudXNlcm5hbWUiKSxZPSgwLGguZGVmYXVsdCkoIm5ld19wb3N0cyIsImlkIiksSj0oMCxoLmRlZmF1bHQpKCJ2aWV3cyIpLFg9KDAsaC5kZWZhdWx0KSgiYXJjaGV0eXBlIiksUT0oMCxoLmRlZmF1bHQpKCJleGNlcnB0IiksWj0oMCxoLmRlZmF1bHQpKCJleGNlcnB0IikseChlZT17bWVzc2FnZTpudWxsLGVycm9yTG9hZGluZzohMSx2aXNpdGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ8PWV9LGNyZWF0b3I6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUudXNlcn0sbGFzdFBvc3RlcjpmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMDtyZXR1cm4gZSYmMDxlLmxlbmd0aCYmKG49KHQ9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0cmFzJiYwPD1lLmV4dHJhcy5pbmRleE9mKCJsYXRlc3QiKX0pWzBdKSYmdC51c2VyKSxufHx0aGlzLmNyZWF0b3J9LGZlYXR1cmVkVXNlcnM6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbyxyPWUsYT1yLmxlbmd0aDtyZXR1cm4gdGhpcy5pc1ByaXZhdGVNZXNzYWdlJiZ0JiZhPDUmJihpPTAsMTxhJiYoKHM9clthLTFdKS5leHRyYXMmJnMuZXh0cmFzLmluY2x1ZGVzKCJsYXRlc3QiKSYmKGk9MSkpLG89ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlciYmZS51c2VyLmlkfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSksdC5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiFvLmluY2x1ZGVzKGUudXNlcl9pZCkmJihyLnNwbGljZShyLmxlbmd0aC1pLDAsZSksNT09PXIubGVuZ3RoKX0pKSx0aGlzLmlzUHJpdmF0ZU1lc3NhZ2UmJjU8biYmKHIuc3BsaWNlKDMsMSksci5wdXNoKHttb3JlQ291bnQ6IisiKyhuLTUrMSl9KSkscn0sZmFuY3lUaXRsZTpmdW5jdGlvbihlKXt2YXIgdD0oMCxkLmNlbnNvcikoKDAscC5lbW9qaVVuZXNjYXBlKShlKXx8IiIseS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjZW5zb3JlZF9yZWdleHAiKSk7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbj8nPHNwYW4gZGlyPSInKygoMCxyLmlzUlRMKShlKT8icnRsIjoibHRyIikrJyI+Jyt0KyI8L3NwYW4+Ijp0fSxidW1wZWRBdDpmdW5jdGlvbihlLHQpe3JldHVybiBlP25ldyBEYXRlKGUpOnR9LGJ1bXBlZEF0VGl0bGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1JMThuLnQoImZpcnN0X3Bvc3QiKSxpPUkxOG4udCgibGFzdF9wb3N0Iik7cmV0dXJuIG4rIjogIisoMCxvLmxvbmdEYXRlKSh0KSsiXG4iK2krIjogIisoMCxvLmxvbmdEYXRlKShlKX0sY3JlYXRlZEF0OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGF0ZShlKX0scG9zdFN0cmVhbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgicG9zdFN0cmVhbSIse2lkOnRoaXMuaWQsdG9waWM6dGhpc30pfSx2aXNpYmxlTGlzdFRhZ3M6ZnVuY3Rpb24oZSl7aWYoIWV8fCFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnN1cHByZXNzX292ZXJsYXBwaW5nX3RhZ3NfaW5fbGlzdClyZXR1cm4gZTt2YXIgdD10aGlzLnRpdGxlLG49W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXstMT09PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpJiZuLnB1c2goZSl9KSxufSxyZWxhdGVkTWVzc2FnZXM6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9dGhpcy5zdG9yZTtyZXR1cm4gdGhpcy5zZXQoInJlbGF0ZWRfbWVzc2FnZXMiLGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNyZWF0ZVJlY29yZCgidG9waWMiLGUpfSkpfX0sc3VnZ2VzdGVkVG9waWNzOmZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PXRoaXMuc3RvcmU7cmV0dXJuIHRoaXMuc2V0KCJzdWdnZXN0ZWRfdG9waWNzIixlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5jcmVhdGVSZWNvcmQoInRvcGljIixlKX0pKX19LHJlcGx5Q291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUtMX0sZGV0YWlsczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidG9waWNEZXRhaWxzIix7aWQ6dGhpcy5pZCx0b3BpYzp0aGlzfSl9LGludmlzaWJsZTooMCx0Lm5vdCkoInZpc2libGUiKSxkZWxldGVkOigwLHQubm90RW1wdHkpKCJkZWxldGVkX2F0Iiksc2VhcmNoQ29udGV4dDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidG9waWMiLGlkOmV9fSxfY2F0ZWdvcnlJZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY2F0ZWdvcnkiLGIuZGVmYXVsdC5maW5kQnlJZCh0aGlzLmNhdGVnb3J5X2lkKSl9LF9jYXRlZ29yeU5hbWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jYXRlZ29yeU5hbWUsdD12b2lkIDA7ZSYmKHQ9dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllcyIpLmZpbmRCeSgibmFtZSIsZSkpLHRoaXMuc2V0KCJjYXRlZ29yeSIsdCl9LGNhdGVnb3J5Q2xhc3M6KDAscy5mbXQpKCJjYXRlZ29yeS5mdWxsU2x1ZyIsImNhdGVnb3J5LSVAIiksdGFnQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuInRhZy0iK2V9KS5qb2luKCIgIil9LHNoYXJlVXJsOmZ1bmN0aW9uKGUpe3ZhciB0PXcuZGVmYXVsdC5jdXJyZW50KCk7cmV0dXJuIGUrKHQ/Ij91PSIrdC5nZXQoInVzZXJuYW1lX2xvd2VyIik6IiIpfSxwcmludFVybDooMCxzLmZtdCkoInVybCIsIiVAL3ByaW50IiksdXJsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT0odD10fHwiIikudHJpbSgpLmxlbmd0aCYmKHQ9InRvcGljIiksIiIrRGlzY291cnNlLmdldFVSTCgiL3QvIikrdCsiLyIrZX0sdXJsRm9yUG9zdE51bWJlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnVybDtyZXR1cm4gZSYmMDxlJiYodCs9Ii8iK2UpLHR9LHRvdGFsVW5yZWFkOmZ1bmN0aW9uKGUsdCl7dmFyIG49KHR8fDApKyhlfHwwKTtyZXR1cm4gMDxuP246bnVsbH0sbGFzdFJlYWRVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudXJsRm9yUG9zdE51bWJlcihlKX0sbGFzdFVucmVhZFVybDpmdW5jdGlvbihlLHQpe3JldHVybiB0PD1lJiZ0aGlzLmdldCgiY2F0ZWdvcnkubmF2aWdhdGVfdG9fZmlyc3RfcG9zdF9hZnRlcl9yZWFkIik/dGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpOnRoaXMudXJsRm9yUG9zdE51bWJlcihlKzEpfSxsYXN0UG9zdFVybDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKGUpfSxmaXJzdFBvc3RVcmw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpfSxzdW1tYXJ5VXJsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oYXNfc3VtbWFyeT8iP2ZpbHRlcj1zdW1tYXJ5IjoiIjtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpK2V9LGxhc3RQb3N0ZXJVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZi51c2VyUGF0aCkoZSl9LGRpc3BsYXlOZXdQb3N0czpmdW5jdGlvbihlLHQpe3ZhciBuPWcuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlnaGVzdFNlZW5CeVRvcGljIilbdF07aWYobil7dmFyIGk9bi10aGlzLmxhc3RfcmVhZF9wb3N0X251bWJlcjtpZigwPGkpe3ZhciBzPWUtaTtyZXR1cm4gczwwJiYocz0wKSxzfX1yZXR1cm4gZX0sdmlld3NIZWF0OmZ1bmN0aW9uKGUpe3JldHVybiBlPj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcGljX3ZpZXdzX2hlYXRfaGlnaD8iaGVhdG1hcC1oaWdoIjplPj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcGljX3ZpZXdzX2hlYXRfbWVkaXVtPyJoZWF0bWFwLW1lZCI6ZT49RGlzY291cnNlLlNpdGVTZXR0aW5ncy50b3BpY192aWV3c19oZWF0X2xvdz8iaGVhdG1hcC1sb3ciOm51bGx9LGFyY2hldHlwZU9iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4geS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJhcmNoZXR5cGVzIikuZmluZEJ5KCJpZCIsZSl9LGlzUHJpdmF0ZU1lc3NhZ2U6KDAsdC5lcXVhbCkoImFyY2hldHlwZSIsInByaXZhdGVfbWVzc2FnZSIpLGlzQmFubmVyOigwLHQuZXF1YWwpKCJhcmNoZXR5cGUiLCJiYW5uZXIiKSx0b2dnbGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9nZ2xlUHJvcGVydHkoZSksdGhpcy5zYXZlU3RhdHVzKGUsISF0aGlzLmdldChlKSl9LHNhdmVTdGF0dXM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJjbG9zZWQiPT09ZSYmdGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgicG9zdHNfY291bnQiKSwoMCx1LmFqYXgpKHRoaXMudXJsKyIvc3RhdHVzIix7dHlwZToiUFVUIixkYXRhOntzdGF0dXM6ZSxlbmFibGVkOiEhdCx1bnRpbDpufX0pfSxtYWtlQmFubmVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9tYWtlLWJhbm5lciIse3R5cGU6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJhcmNoZXR5cGUiLCJiYW5uZXIiKX0pfSxyZW1vdmVCYW5uZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3JlbW92ZS1iYW5uZXIiLHt0eXBlOiJQVVQifSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgiYXJjaGV0eXBlIiwicmVndWxhciIpfSl9LHRvZ2dsZUJvb2ttYXJrOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZih0aGlzLmJvb2ttYXJraW5nKXJldHVybiB2LlByb21pc2UucmVzb2x2ZSgpO3RoaXMuc2V0KCJib29rbWFya2luZyIsITApO2Z1bmN0aW9uIGkoKXtyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK24uaWQrdCx7dHlwZToiUFVUIn0pLnRoZW4oZnVuY3Rpb24oKXtpZihuLnRvZ2dsZVByb3BlcnR5KCJib29rbWFya2VkIiksciYmbylyZXR1cm4gby5zZXQoImJvb2ttYXJrZWQiLCEwKSxuLnNpdGVTZXR0aW5ncy5lbmFibGVfYm9va21hcmtzX3dpdGhfcmVtaW5kZXJzJiZvLnNldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiwhMCksW28uaWRdO2lmKHJ8fCFzKXJldHVybltdO3ZhciB0PVtdO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoImJvb2ttYXJrZWQiKSYmKGUuc2V0KCJib29rbWFya2VkIiwhMSksdC5wdXNoKGUuaWQpKSxuLnNpdGVTZXR0aW5ncy5lbmFibGVfYm9va21hcmtzX3dpdGhfcmVtaW5kZXJzJiZlLmdldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIikmJihlLnNldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiwhMSksdC5wdXNoKGUuaWQpKX0pLHR9KS5jYXRjaChjLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJib29rbWFya2luZyIsITEpfSl9dmFyIGU9dGhpcy5wb3N0U3RyZWFtLHM9KDAsbC5nZXQpKGUsInBvc3RzIiksbz1zJiZzWzBdJiYxPT09c1swXS5nZXQoInBvc3RfbnVtYmVyIikmJnNbMF0scj0hdGhpcy5ib29rbWFya2VkLHQ9cj8iL2Jvb2ttYXJrIjoiL3JlbW92ZV9ib29rbWFya3MiLGE9W107cmV0dXJuIXImJnMmJnMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4oZS5nZXQoImJvb2ttYXJrZWQiKXx8ZS5nZXQoImJvb2ttYXJrZWRfd2l0aF9yZW1pbmRlciIpKSYmYS5wdXNoKGUpfSksbmV3IHYuUHJvbWlzZShmdW5jdGlvbih0KXsxPGEubGVuZ3RoP2Jvb3Rib3guY29uZmlybShJMThuLnQoImJvb2ttYXJrcy5jb25maXJtX2NsZWFyIiksSTE4bi50KCJub192YWx1ZSIpLEkxOG4udCgieWVzX3ZhbHVlIiksZnVuY3Rpb24oZSl7cmV0dXJuIGU/aSgpLnRoZW4odCk6dCgpfSk6aSgpLnRoZW4odCl9KX0sY3JlYXRlR3JvdXBJbnZpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvaW52aXRlLWdyb3VwIix7dHlwZToiUE9TVCIsZGF0YTp7Z3JvdXA6ZX19KX0sY3JlYXRlSW52aXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9pbnZpdGUiLHt0eXBlOiJQT1NUIixkYXRhOnt1c2VyOmUsZ3JvdXBfbmFtZXM6dCxjdXN0b21fbWVzc2FnZTpufX0pfSxnZW5lcmF0ZUludml0ZUxpbms6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLHUuYWpheCkoIi9pbnZpdGVzL2xpbmsiLHt0eXBlOiJQT1NUIixkYXRhOntlbWFpbDplLGdyb3VwX25hbWVzOnQsdG9waWNfaWQ6bn19KX0sZGVzdHJveTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCx7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9LHR5cGU6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5zZXRQcm9wZXJ0aWVzKHtkZWxldGVkX2F0Om5ldyBEYXRlLGRlbGV0ZWRfYnk6ZSwiZGV0YWlscy5jYW5fZGVsZXRlIjohMSwiZGV0YWlscy5jYW5fcmVjb3ZlciI6ITB9KX0pLmNhdGNoKGMucG9wdXBBamF4RXJyb3IpfSxyZWNvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCwiZGV0YWlscy5jYW5fZGVsZXRlIjohMCwiZGV0YWlscy5jYW5fcmVjb3ZlciI6ITF9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9yZWNvdmVyIix7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9LHR5cGU6IlBVVCJ9KX0sdXBkYXRlRnJvbUpzb246ZnVuY3Rpb24odCl7dmFyIG49dGhpcyxlPU9iamVjdC5rZXlzKHQpO3Qudmlld19oaWRkZW58fCh0aGlzLmRldGFpbHMudXBkYXRlRnJvbUpzb24odC5kZXRhaWxzKSxlLnJlbW92ZU9iamVjdHMoWyJkZXRhaWxzIiwicG9zdF9zdHJlYW0iXSkpLGUuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5zZXQoZSx0W2VdKX0pfSxyZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCx7dHlwZToiR0VUIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQudXBkYXRlRnJvbUpzb24oZSl9KX0saXNQaW5uZWRVbmNhdGVnb3JpemVkOigwLHQuYW5kKSgicGlubmVkIiwiY2F0ZWdvcnkuaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiKSxjbGVhclBpbjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwaW5uZWQ6ITEsdW5waW5uZWQ6ITB9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9jbGVhci1waW4iLHt0eXBlOiJQVVQifSkudGhlbihudWxsLGZ1bmN0aW9uKCl7ZS5zZXRQcm9wZXJ0aWVzKHtwaW5uZWQ6ITAsdW5waW5uZWQ6ITF9KX0pfSx0b2dnbGVQaW5uZWRGb3JVc2VyOmZ1bmN0aW9uKCl7dGhpcy5waW5uZWQ/dGhpcy5jbGVhclBpbigpOnRoaXMucmVQaW4oKX0scmVQaW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7cGlubmVkOiEwLHVucGlubmVkOiExfSksKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvcmUtcGluIix7dHlwZToiUFVUIn0pLnRoZW4obnVsbCxmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7cGlubmVkOiEwLHVucGlubmVkOiExfSl9KX0sZXNjYXBlZEV4Y2VycHQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscC5lbW9qaVVuZXNjYXBlKShlKX0saGFzRXhjZXJwdDooMCx0Lm5vdEVtcHR5KSgiZXhjZXJwdCIpLGV4Y2VycHRUcnVuY2F0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiImaGVsbGlwOyI9PT1lLnN1YnN0cihlLmxlbmd0aC04LDgpfSxyZWFkTGFzdFBvc3Q6KDAscy5wcm9wZXJ0eUVxdWFsKSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwiaGlnaGVzdF9wb3N0X251bWJlciIpLGNhbkNsZWFyUGluOigwLHQuYW5kKSgicGlubmVkIiwicmVhZExhc3RQb3N0IiksY2FuRWRpdFRhZ3M6KDAsdC5vcikoImRldGFpbHMuY2FuX2VkaXQiLCJkZXRhaWxzLmNhbl9lZGl0X3RhZ3MiKSxhcmNoaXZlTWVzc2FnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImFyY2hpdmluZyIsITApO3ZhciBlPSgwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL2FyY2hpdmUtbWVzc2FnZSIse3R5cGU6IlBVVCJ9KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMCksZSYmZS5ncm91cF9uYW1lJiZ0LnNldCgiaW5ib3hHcm91cE5hbWUiLGUuZ3JvdXBfbmFtZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJhcmNoaXZpbmciLCExKX0pLGV9LG1vdmVUb0luYm94OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldCgiYXJjaGl2aW5nIiwhMCk7dmFyIGU9KDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvbW92ZS10by1pbmJveCIse3R5cGU6IlBVVCJ9KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMSksZSYmZS5ncm91cF9uYW1lJiZ0LnNldCgiaW5ib3hHcm91cE5hbWUiLGUuZ3JvdXBfbmFtZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJhcmNoaXZpbmciLCExKX0pLGV9LHB1Ymxpc2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3B1Ymxpc2giLHt0eXBlOiJQVVQiLGRhdGE6dGhpcy5nZXRQcm9wZXJ0aWVzKCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgiZGVzdGluYXRpb25fY2F0ZWdvcnlfaWQiLG51bGwpfSkuY2F0Y2goYy5wb3B1cEFqYXhFcnJvcil9LHVwZGF0ZURlc3RpbmF0aW9uQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIsZSksKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvc2hhcmVkLWRyYWZ0Iix7bWV0aG9kOiJQVVQiLGRhdGE6e2NhdGVnb3J5X2lkOmV9fSl9LGNvbnZlcnRUb3BpYzpmdW5jdGlvbihlLHQpe3ZhciBuPXt0eXBlOiJQVVQifTtyZXR1cm4gdCYmdC5jYXRlZ29yeUlkJiYobi5kYXRhPXtjYXRlZ29yeV9pZDp0LmNhdGVnb3J5SWR9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9jb252ZXJ0LXRvcGljLyIrZSxuKX0scmVzZXRCdW1wRGF0ZTpmdW5jdGlvbigpe3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3Jlc2V0LWJ1bXAtZGF0ZSIse3R5cGU6IlBVVCJ9KS5jYXRjaChjLnBvcHVwQWpheEVycm9yKX0sdXBkYXRlVGFnczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMCE9PWUubGVuZ3RofHwoZT1bIiJdKSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi90YWdzIix7dHlwZToiUFVUIixkYXRhOnt0YWdzOmV9fSl9fSwidmlzaXRlZCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInZpc2l0ZWQiKSxlZSkseChlZSwiY3JlYXRvciIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImNyZWF0b3IiKSxlZSkseChlZSwibGFzdFBvc3RlciIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImxhc3RQb3N0ZXIiKSxlZSkseChlZSwiZmVhdHVyZWRVc2VycyIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImZlYXR1cmVkVXNlcnMiKSxlZSkseChlZSwiZmFuY3lUaXRsZSIsW0VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImZhbmN5VGl0bGUiKSxlZSkseChlZSwiYnVtcGVkQXQiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJidW1wZWRBdCIpLGVlKSx4KGVlLCJidW1wZWRBdFRpdGxlIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiYnVtcGVkQXRUaXRsZSIpLGVlKSx4KGVlLCJjcmVhdGVkQXQiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJjcmVhdGVkQXQiKSxlZSkseChlZSwicG9zdFN0cmVhbSIsW2guZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicG9zdFN0cmVhbSIpLGVlKSx4KGVlLCJ2aXNpYmxlTGlzdFRhZ3MiLFtNXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ2aXNpYmxlTGlzdFRhZ3MiKSxlZSkseChlZSwicmVsYXRlZE1lc3NhZ2VzIixbRF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicmVsYXRlZE1lc3NhZ2VzIiksZWUpLHgoZWUsInN1Z2dlc3RlZFRvcGljcyIsW0ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInN1Z2dlc3RlZFRvcGljcyIpLGVlKSx4KGVlLCJyZXBseUNvdW50IixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicmVwbHlDb3VudCIpLGVlKSx4KGVlLCJkZXRhaWxzIixbaC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJkZXRhaWxzIiksZWUpLHgoZWUsInNlYXJjaENvbnRleHQiLFtBXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzZWFyY2hDb250ZXh0IiksZWUpLHgoZWUsIl9jYXRlZ29yeUlkQ2hhbmdlZCIsW04sel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiX2NhdGVnb3J5SWRDaGFuZ2VkIiksZWUpLHgoZWUsIl9jYXRlZ29yeU5hbWVDaGFuZ2VkIixbVV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiX2NhdGVnb3J5TmFtZUNoYW5nZWQiKSxlZSkseChlZSwidGFnQ2xhc3NlcyIsW0ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInRhZ0NsYXNzZXMiKSxlZSkseChlZSwic2hhcmVVcmwiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzaGFyZVVybCIpLGVlKSx4KGVlLCJ1cmwiLFtSXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ1cmwiKSxlZSkseChlZSwidG90YWxVbnJlYWQiLFtxXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ0b3RhbFVucmVhZCIpLGVlKSx4KGVlLCJsYXN0UmVhZFVybCIsW0hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImxhc3RSZWFkVXJsIiksZWUpLHgoZWUsImxhc3RVbnJlYWRVcmwiLFskXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJsYXN0VW5yZWFkVXJsIiksZWUpLHgoZWUsImxhc3RQb3N0VXJsIixbS10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwibGFzdFBvc3RVcmwiKSxlZSkseChlZSwiZmlyc3RQb3N0VXJsIixbV10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiZmlyc3RQb3N0VXJsIiksZWUpLHgoZWUsInN1bW1hcnlVcmwiLFtWXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzdW1tYXJ5VXJsIiksZWUpLHgoZWUsImxhc3RQb3N0ZXJVcmwiLFtHXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJsYXN0UG9zdGVyVXJsIiksZWUpLHgoZWUsImRpc3BsYXlOZXdQb3N0cyIsW1ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImRpc3BsYXlOZXdQb3N0cyIpLGVlKSx4KGVlLCJ2aWV3c0hlYXQiLFtKXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ2aWV3c0hlYXQiKSxlZSkseChlZSwiYXJjaGV0eXBlT2JqZWN0IixbWF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiYXJjaGV0eXBlT2JqZWN0IiksZWUpLHgoZWUsImVzY2FwZWRFeGNlcnB0IixbUV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiZXNjYXBlZEV4Y2VycHQiKSxlZSkseChlZSwiZXhjZXJwdFRydW5jYXRlZCIsW1pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImV4Y2VycHRUcnVuY2F0ZWQiKSxlZSksZWUpKTtmdW5jdGlvbiBuZShlKXtpZihlLnN1Y2Nlc3MpcmV0dXJuKDAsbi5mbHVzaE1hcCkoKSxlO3Rocm93IG5ldyBFcnJvcigiZXJyb3IgbW92aW5nIHBvc3RzIHRvcGljIil9dGUucmVvcGVuQ2xhc3Moe05vdGlmaWNhdGlvbkxldmVsOntXQVRDSElORzozLFRSQUNLSU5HOjIsUkVHVUxBUjoxLE1VVEVEOjB9LGNyZWF0ZUFjdGlvblN1bW1hcnk6ZnVuY3Rpb24obil7dmFyIGk7bi5hY3Rpb25zX3N1bW1hcnkmJihpPWwuZGVmYXVsdC5jcmVhdGUoKSxuLmFjdGlvbnNfc3VtbWFyeT1uLmFjdGlvbnNfc3VtbWFyeS5tYXAoZnVuY3Rpb24oZSl7ZS5wb3N0PW4sZS5hY3Rpb25UeXBlPXkuZGVmYXVsdC5jdXJyZW50KCkucG9zdEFjdGlvblR5cGVCeUlkKGUuaWQpO3ZhciB0PWEuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkuc2V0KGUuYWN0aW9uVHlwZS5nZXQoIm5hbWVfa2V5IiksdCksdH0pLG4uc2V0KCJhY3Rpb25CeU5hbWUiLGkpKX0sdXBkYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMCE9PW4uY2F0ZWdvcnlJZCYmKG4uY2F0ZWdvcnlfaWQ9bi5jYXRlZ29yeUlkLGRlbGV0ZSBuLmNhdGVnb3J5SWQpLHQuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikmJmRlbGV0ZSBuLmNhdGVnb3J5X2lkLCgwLHUuYWpheCkodC5nZXQoInVybCIpLHt0eXBlOiJQVVQiLGRhdGE6SlNPTi5zdHJpbmdpZnkobiksY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkudGhlbihmdW5jdGlvbihlKXtuLnRpdGxlPWUuYmFzaWNfdG9waWMudGl0bGUsbi5mYW5jeV90aXRsZT1lLmJhc2ljX3RvcGljLmZhbmN5X3RpdGxlLHQuc2V0UHJvcGVydGllcyhuKX0pfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3JlYXRlQWN0aW9uU3VtbWFyeShlKSxlfSxmaW5kOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLmdldFVSTCgiL3QvIikrZTt0Lm5lYXJQb3N0JiYobis9Ii8iK3QubmVhclBvc3QpO3ZhciBpPXt9O3JldHVybiB0LnBvc3RzQWZ0ZXImJihpLnBvc3RzX2FmdGVyPXQucG9zdHNBZnRlciksdC5wb3N0c0JlZm9yZSYmKGkucG9zdHNfYmVmb3JlPXQucG9zdHNCZWZvcmUpLHQudHJhY2tWaXNpdCYmKGkudHJhY2tfdmlzaXQ9ITApLHQudXNlckZpbHRlcnMmJjA8dC51c2VyRmlsdGVycy5sZW5ndGgmJihpLnVzZXJuYW1lX2ZpbHRlcnM9W10sdC51c2VyRmlsdGVycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kudXNlcm5hbWVfZmlsdGVycy5wdXNoKGUpfSkpLCEwPT09dC5zdW1tYXJ5JiYoaS5zdW1tYXJ5PSEwKSwoMCx1LmFqYXgpKG4rIi5qc29uIix7ZGF0YTppfSl9LGNoYW5nZU93bmVyczpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLHUuYWpheCkoIi90LyIrZSsiL2NoYW5nZS1vd25lciIse3R5cGU6IlBPU1QiLGRhdGE6dH0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3VjY2Vzcz9lOnZvaWQgbi5yZWplY3QobmV3IEVycm9yKCJlcnJvciBjaGFuZ2luZyBvd25lcnNoaXAgb2YgcG9zdHMiKSl9KTtyZXR1cm4gbn0sY2hhbmdlVGltZXN0YW1wOmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsdS5hamF4KSgiL3QvIitlKyIvY2hhbmdlLXRpbWVzdGFtcCIse3R5cGU6IlBVVCIsZGF0YTp7dGltZXN0YW1wOnR9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWNjZXNzP2U6dm9pZCBuLnJlamVjdChuZXcgRXJyb3IoImVycm9yIHVwZGF0aW5nIHRpbWVzdGFtcCBvZiB0b3BpYyIpKX0pO3JldHVybiBufSxidWxrT3BlcmF0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdS5hamF4KSgiL3RvcGljcy9idWxrIix7dHlwZToiUFVUIixkYXRhOnt0b3BpY19pZHM6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJpZCIpfSksb3BlcmF0aW9uOnR9fSl9LGJ1bGtPcGVyYXRpb25CeUZpbHRlcjpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz17ZmlsdGVyOmUsb3BlcmF0aW9uOnR9O3JldHVybiBpJiZpLmluY2x1ZGVTdWJjYXRlZ29yaWVzJiYocy5pbmNsdWRlX3N1YmNhdGVnb3JpZXM9ITApLG4mJihzLmNhdGVnb3J5X2lkPW4pLCgwLHUuYWpheCkoIi90b3BpY3MvYnVsayIse3R5cGU6IlBVVCIsZGF0YTpzfSl9LHJlc2V0TmV3OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZT97Y2F0ZWdvcnlfaWQ6ZS5pZCxpbmNsdWRlX3N1YmNhdGVnb3JpZXM6dH06e307cmV0dXJuKDAsdS5hamF4KSgiL3RvcGljcy9yZXNldC1uZXciLHt0eXBlOiJQVVQiLGRhdGE6bn0pfSxpZEZvclNsdWc6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdS5hamF4KSgiL3QvaWRfZm9yLyIrZSl9fSksZS5kZWZhdWx0PXRlfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxzLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dC5kZWZhdWx0LmV4dGVuZCgpO24ucmVvcGVuQ2xhc3Moe2NsZWFyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5hamF4KSgiL2RyYWZ0Lmpzb24iLHt0eXBlOiJERUxFVEUiLGRhdGE6e2RyYWZ0X2tleTplLHNlcXVlbmNlOnR9fSl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvZHJhZnQuanNvbiIse2RhdGE6e2RyYWZ0X2tleTplfSxkYXRhVHlwZToianNvbiJ9KX0sZ2V0TG9jYWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0sc2F2ZTpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gbj0ic3RyaW5nIj09dHlwZW9mIG4/bjpKU09OLnN0cmluZ2lmeShuKSwoMCxzLmFqYXgpKCIvZHJhZnQuanNvbiIse3R5cGU6IlBPU1QiLGRhdGE6e2RyYWZ0X2tleTplLHNlcXVlbmNlOnQsZGF0YTpuLG93bmVyOml9fSl9fSksZS5kZWZhdWx0PW59KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9xdW90ZSIsImRpc2NvdXJzZS9tb2RlbHMvZHJhZnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCJdLGZ1bmN0aW9uKGUscix0LGEscCxuLGMsbSxsLGkscyx1LG8sZCxmLGgsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGcobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHYseSx3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsJCxLLFcsVixHLFksSjtmdW5jdGlvbiBYKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TQVZFX0lDT05TPWUuU0FWRV9MQUJFTFM9ZS5ORVdfVE9QSUNfS0VZPWUuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVk9ZS5FRElUPWUuUkVQTFk9ZS5QUklWQVRFX01FU1NBR0U9ZS5FRElUX1NIQVJFRF9EUkFGVD1lLkNSRUFURV9TSEFSRURfRFJBRlQ9ZS5DUkVBVEVfVE9QSUM9dm9pZCAwO3ZhciBRPWUuQ1JFQVRFX1RPUElDPSJjcmVhdGVUb3BpYyIsWj1lLkNSRUFURV9TSEFSRURfRFJBRlQ9ImNyZWF0ZVNoYXJlZERyYWZ0IixlZT1lLkVESVRfU0hBUkVEX0RSQUZUPSJlZGl0U2hhcmVkRHJhZnQiLHRlPWUuUFJJVkFURV9NRVNTQUdFPSJwcml2YXRlTWVzc2FnZSIsbmU9ZS5SRVBMWT0icmVwbHkiLGllPWUuRURJVD0iZWRpdCI7ZS5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWT0ibmV3X3ByaXZhdGVfbWVzc2FnZSIsZS5ORVdfVE9QSUNfS0VZPSJuZXdfdG9waWMiO2Z1bmN0aW9uIHNlKGUpe3JldHVybiBlPT09aWV8fGU9PT1lZX12YXIgb2U9ImNsb3NlZCIscmU9InNhdmluZyIsYWU9Im9wZW4iLGxlPSJmdWxsc2NyZWVuIix1ZT17cmF3OiJyZXBseSIsdGl0bGU6InRpdGxlIix1bmxpc3RfdG9waWM6InVubGlzdFRvcGljIixjYXRlZ29yeToiY2F0ZWdvcnlJZCIsdG9waWNfaWQ6InRvcGljLmlkIixpc193YXJuaW5nOiJpc1dhcm5pbmciLHdoaXNwZXI6IndoaXNwZXIiLGFyY2hldHlwZToiYXJjaGV0eXBlSWQiLHRhcmdldF9yZWNpcGllbnRzOiJ0YXJnZXRSZWNpcGllbnRzIix0eXBpbmdfZHVyYXRpb25fbXNlY3M6InR5cGluZ1RpbWUiLGNvbXBvc2VyX29wZW5fZHVyYXRpb25fbXNlY3M6ImNvbXBvc2VyVGltZSIsdGFnczoidGFncyIsZmVhdHVyZWRfbGluazoiZmVhdHVyZWRMaW5rIixzaGFyZWRfZHJhZnQ6InNoYXJlZERyYWZ0Iixub19idW1wOiJub0J1bXAiLGRyYWZ0X2tleToiZHJhZnRLZXkifSxjZT17dGl0bGU6InRvcGljLnRpdGxlIixjYXRlZ29yeUlkOiJ0b3BpYy5jYXRlZ29yeS5pZCIsdGFnczoidG9waWMudGFncyIsZmVhdHVyZWRMaW5rOiJ0b3BpYy5mZWF0dXJlZF9saW5rIn0sZGU9e3JlcGx5OiJyZXBseSIsYWN0aW9uOiJhY3Rpb24iLHRpdGxlOiJ0aXRsZSIsY2F0ZWdvcnlJZDoiY2F0ZWdvcnlJZCIsYXJjaGV0eXBlSWQ6ImFyY2hldHlwZUlkIix3aGlzcGVyOiJ3aGlzcGVyIixtZXRhRGF0YToibWV0YURhdGEiLGNvbXBvc2VyVGltZToiY29tcG9zZXJUaW1lIix0eXBpbmdUaW1lOiJ0eXBpbmdUaW1lIixwb3N0SWQ6InBvc3QuaWQiLHVzZXJuYW1lczoidGFyZ2V0VXNlcm5hbWVzIixyZWNpcGllbnRzOiJ0YXJnZXRSZWNpcGllbnRzIn0scGU9e30sbWU9KGUuU0FWRV9MQUJFTFM9KFgodj17fSxpZSwiY29tcG9zZXIuc2F2ZV9lZGl0IiksWCh2LG5lLCJjb21wb3Nlci5yZXBseSIpLFgodixRLCJjb21wb3Nlci5jcmVhdGVfdG9waWMiKSxYKHYsdGUsImNvbXBvc2VyLmNyZWF0ZV9wbSIpLFgodixaLCJjb21wb3Nlci5jcmVhdGVfc2hhcmVkX2RyYWZ0IiksWCh2LGVlLCJjb21wb3Nlci5zYXZlX2VkaXQiKSx2KSxlLlNBVkVfSUNPTlM9KFgoeT17fSxpZSwicGVuY2lsLWFsdCIpLFgoeSxlZSwiZmFyLWNsaXBib2FyZCIpLFgoeSxuZSwicmVwbHkiKSxYKHksUSwicGx1cyIpLFgoeSx0ZSwiZW52ZWxvcGUiKSxYKHksWiwiZmFyLWNsaXBib2FyZCIpLHkpLG4uZGVmYXVsdC5leHRlbmQoKHc9KDAscy5kZWZhdWx0KSgiY2F0ZWdvcnlJZCIpLHg9KDAscy5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxrPSgwLHMuZGVmYXVsdCkoImVkaXRpbmdQb3N0IiwidG9waWMuZGV0YWlscy5jYW5fZWRpdCIpLFA9KDAscy5kZWZhdWx0KSgicHJpdmF0ZU1lc3NhZ2UiLCJhcmNoZXR5cGUuaGFzT3B0aW9ucyIpLGo9KDAscy5kZWZhdWx0KSgiY3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsInRvcGljIiksVD0oMCxzLmRlZmF1bHQpKCJhY3Rpb24iKSxFPSgwLHMub2JzZXJ2ZXMpKCJjb21wb3NlU3RhdGUiKSxPPSgwLHMuZGVmYXVsdCkoImFyY2hldHlwZUlkIiksUz0oMCxzLm9ic2VydmVzKSgiYXJjaGV0eXBlIiksQz0oMCxzLmRlZmF1bHQpKCJjYW5FZGl0VGl0bGUiLCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwiY2F0ZWdvcnlJZCIpLE09KDAscy5kZWZhdWx0KSgiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIiksRD0oMCxzLmRlZmF1bHQpKCJhY3Rpb24iLCJwb3N0IiwidG9waWMiLCJ0b3BpYy50aXRsZSIpLEk9KDAscy5kZWZhdWx0KSgidGFyZ2V0UmVjaXBpZW50cyIpLEw9KDAscy5kZWZhdWx0KSgidGFyZ2V0UmVjaXBpZW50cyIpLEE9KDAscy5kZWZhdWx0KSgibG9hZGluZyIsImNhbkVkaXRUaXRsZSIsInRpdGxlTGVuZ3RoIiwidGFyZ2V0UmVjaXBpZW50cyIsInRhcmdldFJlY2lwaWVudHNBcnJheSIsInJlcGx5TGVuZ3RoIiwiY2F0ZWdvcnlJZCIsIm1pc3NpbmdSZXBseUNoYXJhY3RlcnMiLCJ0YWdzIiwidG9waWNGaXJzdFBvc3QiLCJtaW5pbXVtUmVxdWlyZWRUYWdzIiwiaXNTdGFmZlVzZXIiKSxOPSgwLHMuZGVmYXVsdCkoImNhbkNhdGVnb3JpemUiLCJjYXRlZ29yeUlkIiksej0oMCxzLmRlZmF1bHQpKCJtaW5pbXVtVGl0bGVMZW5ndGgiLCJ0aXRsZUxlbmd0aCIsInBvc3Quc3RhdGljX2RvYyIpLFU9KDAscy5kZWZhdWx0KSgibWV0YURhdGEiKSxGPSgwLHMuZGVmYXVsdCkoIm1pbmltdW1UaXRsZUxlbmd0aCIsInRpdGxlTGVuZ3RoIiksQj0oMCxzLmRlZmF1bHQpKCJwcml2YXRlTWVzc2FnZSIpLFI9KDAscy5kZWZhdWx0KSgibWluaW11bVBvc3RMZW5ndGgiLCJyZXBseUxlbmd0aCIsImNhbkVkaXRUb3BpY0ZlYXR1cmVkTGluayIpLHE9KDAscy5kZWZhdWx0KSgicHJpdmF0ZU1lc3NhZ2UiLCJ0b3BpY0ZpcnN0UG9zdCIsInRvcGljLnBtX3dpdGhfbm9uX2h1bWFuX3VzZXIiKSxIPSgwLHMuZGVmYXVsdCkoInRpdGxlIiksJD0oMCxzLmRlZmF1bHQpKCJyZXBseSIpLEs9KDAscy5vbikoImluaXQiKSxXPSgwLHMub2JzZXJ2ZXMpKCJ0aXRsZSIsInJlcGx5IiksZyhWPXtfY2F0ZWdvcnlJZDpudWxsLHVubGlzdFRvcGljOiExLG5vQnVtcDohMSxkcmFmdFNhdmluZzohMSxkcmFmdFNhdmVkOiExLGFyY2hldHlwZXM6KDAsdC5yZWFkcykoInNpdGUuYXJjaGV0eXBlcyIpLHNoYXJlZERyYWZ0OigwLHQuZXF1YWwpKCJhY3Rpb24iLFopLGNhdGVnb3J5SWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYXRlZ29yeUlkfSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fY2F0ZWdvcnlJZDtyZXR1cm4oMCxyLmlzRW1wdHkpKGUpJiYoZT1udWxsKSx0IT09KHRoaXMuX2NhdGVnb3J5SWQ9ZSkmJnRoaXMuYXBwbHlUb3BpY1RlbXBsYXRlKHQsZSksZX19LGNhdGVnb3J5OmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGUpOm51bGx9LG1pbmltdW1SZXF1aXJlZFRhZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZS5taW5pbXVtX3JlcXVpcmVkX3RhZ3M/ZS5taW5pbXVtX3JlcXVpcmVkX3RhZ3M6bnVsbH0sY3JlYXRpbmdUb3BpYzooMCx0LmVxdWFsKSgiYWN0aW9uIixRKSxjcmVhdGluZ1NoYXJlZERyYWZ0OigwLHQuZXF1YWwpKCJhY3Rpb24iLFopLGNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2U6KDAsdC5lcXVhbCkoImFjdGlvbiIsdGUpLG5vdENyZWF0aW5nUHJpdmF0ZU1lc3NhZ2U6KDAsdC5ub3QpKCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiksbm90UHJpdmF0ZU1lc3NhZ2U6KDAsdC5ub3QpKCJwcml2YXRlTWVzc2FnZSIpLGRpc2FibGVUaXRsZUlucHV0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxzaG93Q2F0ZWdvcnlDaG9vc2VyOmZ1bmN0aW9uKGUsdCl7dmFyIG49MTx0aGlzLnNpdGUuY2F0ZWdvcmllcy5sZW5ndGg7cmV0dXJuIWUmJih0fHxuKX0scHJpdmF0ZU1lc3NhZ2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dCYmInByaXZhdGVfbWVzc2FnZSI9PT10LmFyY2hldHlwZX0sdG9waWNGaXJzdFBvc3Q6KDAsdC5vcikoImNyZWF0aW5nVG9waWMiLCJlZGl0aW5nRmlyc3RQb3N0IiksZWRpdGluZ1Bvc3Q6c2UscmVwbHlpbmdUb1RvcGljOigwLHQuZXF1YWwpKCJhY3Rpb24iLG5lKSx2aWV3T3BlbjooMCx0LmVxdWFsKSgiY29tcG9zZVN0YXRlIixhZSksdmlld0RyYWZ0OigwLHQuZXF1YWwpKCJjb21wb3NlU3RhdGUiLCJkcmFmdCIpLHZpZXdGdWxsc2NyZWVuOigwLHQuZXF1YWwpKCJjb21wb3NlU3RhdGUiLGxlKSx2aWV3T3Blbk9yRnVsbHNjcmVlbjooMCx0Lm9yKSgidmlld09wZW4iLCJ2aWV3RnVsbHNjcmVlbiIpLGNvbXBvc2VTdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuY29tcG9zZXJPcGVuZWQsbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJodG1sIik7dGhpcy5jb21wb3NlU3RhdGU9PT1sZT9uLmNsYXNzTGlzdC5hZGQoImZ1bGxzY3JlZW4tY29tcG9zZXIiKTpuLmNsYXNzTGlzdC5yZW1vdmUoImZ1bGxzY3JlZW4tY29tcG9zZXIiKSx0aGlzLmNvbXBvc2VTdGF0ZT09PWFlP3RoaXMuc2V0KCJjb21wb3Nlck9wZW5lZCIsdHx8bmV3IERhdGUpOih0JiYoZT10aGlzLmNvbXBvc2VyVG90YWxPcGVuZWR8fDAsdGhpcy5zZXQoImNvbXBvc2VyVG90YWxPcGVuZWQiLGUrKG5ldyBEYXRlLXQpKSksdGhpcy5zZXQoImNvbXBvc2VyT3BlbmVkIixudWxsKSl9LGNvbXBvc2VyVGltZTp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb21wb3NlclRvdGFsT3BlbmVkfHwwLHQ9dGhpcy5jb21wb3Nlck9wZW5lZDtyZXR1cm4gdCYmKGUrPW5ldyBEYXRlLXQpLGV9fSxhcmNoZXR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYXJjaGV0eXBlcy5maW5kQnkoImlkIixlKX0sYXJjaGV0eXBlQ2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldCgibWV0YURhdGEiLGEuZGVmYXVsdC5jcmVhdGUoKSl9LHR5cGluZzpmdW5jdGlvbigpeygwLHAudGhyb3R0bGUpKHRoaXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzLnR5cGluZ1RpbWV8fDA7dGhpcy5zZXQoInR5cGluZ1RpbWUiLGUrMTAwKX0sMTAwLCExKX0sZWRpdGluZ0ZpcnN0UG9zdDooMCx0LmFuZCkoImVkaXRpbmdQb3N0IiwicG9zdC5maXJzdFBvc3QiKSxjYW5FZGl0VGl0bGU6KDAsdC5vcikoImNyZWF0aW5nVG9waWMiLCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwiZWRpdGluZ0ZpcnN0UG9zdCIsImNyZWF0aW5nU2hhcmVkRHJhZnQiKSxjYW5DYXRlZ29yaXplOigwLHQuYW5kKSgiY2FuRWRpdFRpdGxlIiwibm90Q3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsIm5vdFByaXZhdGVNZXNzYWdlIiksY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rOmZ1bmN0aW9uKGUsdCxuKXtpZighdGhpcy5zaXRlU2V0dGluZ3MudG9waWNfZmVhdHVyZWRfbGlua19lbmFibGVkfHwhZXx8dClyZXR1cm4hMTt2YXIgaT10aGlzLnNpdGUudG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkX2NhdGVnb3J5X2lkcztyZXR1cm4hKG58fCFpfHwtMT09PWkuaW5kZXhPZih0aGlzLnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCkmJnRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzKXx8KHZvaWQgMD09PWl8fCFpLmxlbmd0aHx8LTEhPT1pLmluZGV4T2YobikpfSx0aXRsZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJjb21wb3Nlci50aXRsZV9vcl9saW5rX3BsYWNlaG9sZGVyIjoiY29tcG9zZXIudGl0bGVfcGxhY2Vob2xkZXIifSxyZXBseU9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHMsbyxyLGE9e3VzZXJMaW5rOm51bGwsdG9waWNMaW5rOm51bGwscG9zdExpbms6bnVsbCx1c2VyQXZhdGFyOm51bGwsb3JpZ2luYWxVc2VyOm51bGx9O3JldHVybiBuJiYoYS50b3BpY0xpbms9e2hyZWY6bi51cmwsYW5jaG9yOm4uZmFuY3lfdGl0bGV8fCgwLHUuZXNjYXBlRXhwcmVzc2lvbikoaSl9KSx0JiYoYS5sYWJlbD1JMThuLnQoInBvc3QuIitlKSxhLnVzZXJBdmF0YXI9KDAsdS50aW55QXZhdGFyKSh0LmF2YXRhcl90ZW1wbGF0ZSksdGhpcy5zaXRlLm1vYmlsZVZpZXd8fChzPXQuZ2V0KCJyZXBseV90b191c2VyLnVzZXJuYW1lIiksbz10LmdldCgicmVwbHlfdG9fdXNlci5hdmF0YXJfdGVtcGxhdGUiKSxzJiZvJiZzZShlKSYmKGEub3JpZ2luYWxVc2VyPXt1c2VybmFtZTpzLGF2YXRhcjooMCx1LnRpbnlBdmF0YXIpKG8pfSkpKSxuJiZ0JiYocj10LnBvc3RfbnVtYmVyLGEucG9zdExpbms9e2hyZWY6bi51cmwrIi8iK3IsYW5jaG9yOkkxOG4udCgicG9zdC5wb3N0X251bWJlciIse251bWJlcjpyfSl9LGEudXNlckxpbms9e2hyZWY6bi51cmwrIi8iK3IsYW5jaG9yOnQudXNlcm5hbWV9KSxhfSx0YXJnZXRVc2VybmFtZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYi5kZWZhdWx0KSgiYHRhcmdldFVzZXJuYW1lc2AgaXMgZGVwcmVjYXRlZCwgdXNlIGB0YXJnZXRSZWNpcGllbnRzYCBpbnN0ZWFkLiIpLGV9LHRhcmdldFJlY2lwaWVudHNBcnJheTpmdW5jdGlvbihlKXt2YXIgdD1lP2Uuc3BsaXQoIiwiKTpbXSxuPW5ldyBTZXQodGhpcy5zaXRlLmdyb3Vwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZX0pKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uaGFzKGUpP3t0eXBlOiJncm91cCIsbmFtZTplfTooMCx1LmVtYWlsVmFsaWQpKGUpP3t0eXBlOiJlbWFpbCIsbmFtZTplfTp7dHlwZToidXNlciIsbmFtZTplfX0pfSxjYW50U3VibWl0UG9zdDpmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCx1LGMsZCl7aWYoZSlyZXR1cm4hMDtpZih0JiYhdGhpcy50aXRsZUxlbmd0aFZhbGlkKXJldHVybiEwO2lmKDA8YSlyZXR1cm4hMDtpZih0aGlzLnNpdGUuY2FuX3RhZ190b3BpY3MmJiFkJiZ1JiZjJiYobHx8W10pLmxlbmd0aDxjKXJldHVybiEwO2lmKHUpe3ZhciBwPXRoaXMuY2F0ZWdvcnk7aWYocCYmcC50b3BpY190ZW1wbGF0ZSYmdGhpcy5yZXBseS50cmltKCk9PT1wLnRvcGljX3RlbXBsYXRlLnRyaW0oKSlyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoImNvbXBvc2VyLmVycm9yLnRvcGljX3RlbXBsYXRlX25vdF9tb2RpZmllZCIpKSwhMH1yZXR1cm4gdGhpcy5wcml2YXRlTWVzc2FnZT9pJiYwPT09cy5sZW5ndGg6dGhpcy5yZXF1aXJlZENhdGVnb3J5TWlzc2luZ30scmVxdWlyZWRDYXRlZ29yeU1pc3Npbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXQmJiF0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc30sdGl0bGVMZW5ndGhWYWxpZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuISEodGhpcy51c2VyLmFkbWluJiZuJiYwPHQpfHwhKHQ8ZSkmJnQ8PXRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGh9LGhhc01ldGFEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiEhZSYmKDAsci5pc0VtcHR5KShFbWJlci5rZXlzKGUpKX0scmVwbHlEaXJ0eTooMCxvLnByb3BlcnR5Tm90RXF1YWwpKCJyZXBseSIsIm9yaWdpbmFsVGV4dCIpLHRpdGxlRGlydHk6KDAsby5wcm9wZXJ0eU5vdEVxdWFsKSgidGl0bGUiLCJvcmlnaW5hbFRpdGxlIiksbWlzc2luZ1RpdGxlQ2hhcmFjdGVyczpmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9LG1pbmltdW1UaXRsZUxlbmd0aDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLnNpdGVTZXR0aW5ncy5taW5fcGVyc29uYWxfbWVzc2FnZV90aXRsZV9sZW5ndGg6dGhpcy5zaXRlU2V0dGluZ3MubWluX3RvcGljX3RpdGxlX2xlbmd0aH0sbWlzc2luZ1JlcGx5Q2hhcmFjdGVyczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuZ2V0KCJwb3N0LnBvc3RfdHlwZSIpPT09dGhpcy5zaXRlLmdldCgicG9zdF90eXBlcy5zbWFsbF9hY3Rpb24iKXx8biYmdGhpcy5mZWF0dXJlZExpbms/MDplLXR9LG1pbmltdW1Qb3N0TGVuZ3RoOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj8xOmU/dGhpcy5zaXRlU2V0dGluZ3MubWluX3BlcnNvbmFsX21lc3NhZ2VfcG9zdF9sZW5ndGg6dD90aGlzLnNpdGVTZXR0aW5ncy5taW5fZmlyc3RfcG9zdF9sZW5ndGg6dGhpcy5zaXRlU2V0dGluZ3MubWluX3Bvc3RfbGVuZ3RofSx0aXRsZUxlbmd0aDpmdW5jdGlvbihlKXtyZXR1cm4oZT1lfHwiIikucmVwbGFjZSgvXHMrL2dpbSwiICIpLnRyaW0oKS5sZW5ndGh9LHJlcGx5TGVuZ3RoOmZ1bmN0aW9uKGUpe2lmKDFlNDwoZT1lfHwiIikubGVuZ3RoKXJldHVybiBlLmxlbmd0aDtmb3IoO2wuZGVmYXVsdC5SRUdFWFAudGVzdChlKTspe3ZhciB0PW5ldyBSZWdFeHAobC5kZWZhdWx0LlJFR0VYUC5zb3VyY2UsImltZyIpO2U9ZS5yZXBsYWNlKHQsIiIpfWZvcih2YXIgbj0wLGk9ITAscz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbz1lLmNoYXJDb2RlQXQocykscj0hMTtpZig4MTkyPD1vJiZvPD04MjAyKXI9ITA7ZWxzZSBzd2l0Y2gobyl7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMTM6Y2FzZSAzMjpjYXNlIDE2MDpjYXNlIDU3NjA6Y2FzZSA4MjM5OmNhc2UgODI4NzpjYXNlIDEyMjg4OnI9ITB9cj9pfHwobisrLGk9ITApOihuKyssaT0hMSl9cmV0dXJuIDA8biYmaSYmbi0tLG59LF9zZXR1cENvbXBvc2VyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFyY2hldHlwZUlkIix0aGlzLnNpdGUuZGVmYXVsdF9hcmNoZXR5cGUpfSxhcHBlbmRUZXh0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLnJlcGx5fHwiIjt0PSJudW1iZXIiPT10eXBlb2YgdD90OmkubGVuZ3RoO3ZhciBzPWkuc2xpY2UoMCx0KXx8IiIsbz1pLnNsaWNlKHQpfHwiIixyPXZvaWQgMCxhPXZvaWQgMDtpZihuJiZuLmJsb2NrKXtpZigiIiE9PXMudHJpbSgpKWZvcihyPXMucmVwbGFjZSgvXHIvZywiIiksYT0wO2E8MjthKyspIlxuIiE9PXJbci5sZW5ndGgtMS1hXSYmKHMrPSJcbiIsdCsrKTtpZigiIiE9PW8udHJpbSgpKWZvcihyPW8ucmVwbGFjZSgvXHIvZywiIiksYT0wO2E8MjthKyspIlxuIiE9PXJbYV0mJihvPSJcbiIrbyl9cmV0dXJuIG4mJm4uc3BhY2UmJigwPHMubGVuZ3RoJiYhc1tzLmxlbmd0aC0xXS5tYXRjaCgvXHMvKSYmKHMrPSIgIiksMDxvLmxlbmd0aCYmIW9bMF0ubWF0Y2goL1xzLykmJihvPSIgIitvKSksdGhpcy5zZXQoInJlcGx5IixzK2Urbykscy5sZW5ndGgrZS5sZW5ndGh9LHByZXBlbmRUZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5yZXBseXx8IiI7dCYmdC5uZXdfbGluZSYmMDxuLmxlbmd0aCYmKGU9ZS50cmltKCkrIlxuXG4iKSx0aGlzLnNldCgicmVwbHkiLGUrbil9LGFwcGx5VG9waWNUZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuLGksczt0aGlzLmFjdGlvbj09PVEmJihuPXRoaXMucmVwbHksIWV8fChpPXRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGUpKSYmaS50b3BpY190ZW1wbGF0ZT09PW4mJihuPSIiKSwhKDAsci5pc0VtcHR5KShuKXx8KHM9dGhpcy5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KCJpZCIsdCkpJiZ0aGlzLnNldCgicmVwbHkiLHMudG9waWNfdGVtcGxhdGV8fCIiKSl9LG9wZW46ZnVuY3Rpb24odCl7dmFyIG49dGhpczt0PXR8fHt9LHRoaXMuc2V0KCJsb2FkaW5nIiwhMSk7dmFyIGUsaSxzPSgwLHIuaXNFbXB0eSkodGhpcy5yZXBseSksbz10aGlzO2lmKHN8fCF0LnJlcGx5JiYhc2UodC5hY3Rpb24pfHwhdGhpcy5yZXBseURpcnR5KXtpZih0LmFjdGlvbj09PW5lJiZzZSh0aGlzLmFjdGlvbikmJnRoaXMuc2V0KCJyZXBseSIsIiIpLCF0LmRyYWZ0S2V5KXRocm93IG5ldyBFcnJvcigiZHJhZnQga2V5IGlzIHJlcXVpcmVkIik7aWYobnVsbD09PXQuZHJhZnRTZXF1ZW5jZSl0aHJvdyBuZXcgRXJyb3IoImRyYWZ0IHNlcXVlbmNlIGlzIHJlcXVpcmVkIik7cmV0dXJuIHQudXNlcm5hbWVzJiYoMCxiLmRlZmF1bHQpKCJgdXNlcm5hbWVzYCBpcyBkZXByZWNhdGVkLCB1c2UgYHJlY2lwaWVudHNgIGluc3RlYWQuIiksdGhpcy5zZXRQcm9wZXJ0aWVzKHtkcmFmdEtleTp0LmRyYWZ0S2V5LGRyYWZ0U2VxdWVuY2U6dC5kcmFmdFNlcXVlbmNlLGNvbXBvc2VTdGF0ZTp0LmNvbXBvc2VyU3RhdGV8fGFlLGFjdGlvbjp0LmFjdGlvbix0b3BpYzp0LnRvcGljLHRhcmdldFJlY2lwaWVudHM6dC51c2VybmFtZXN8fHQucmVjaXBpZW50cyxjb21wb3NlclRvdGFsT3BlbmVkOnQuY29tcG9zZXJUaW1lLHR5cGluZ1RpbWU6dC50eXBpbmdUaW1lLHdoaXNwZXI6dC53aGlzcGVyLHRhZ3M6dC50YWdzLG5vQnVtcDp0Lm5vQnVtcH0pLHQucG9zdD8odGhpcy5zZXRQcm9wZXJ0aWVzKHtwb3N0OnQucG9zdCx3aGlzcGVyOnQucG9zdC5wb3N0X3R5cGU9PT10aGlzLnNpdGUucG9zdF90eXBlcy53aGlzcGVyfSksdGhpcy50b3BpY3x8dGhpcy5zZXQoInRvcGljIix0LnBvc3QudG9waWMpKTp0aGlzLnNldCgicG9zdCIsbnVsbCksdGhpcy5zZXRQcm9wZXJ0aWVzKHthcmNoZXR5cGVJZDp0LmFyY2hldHlwZUlkfHx0aGlzLnNpdGUuZGVmYXVsdF9hcmNoZXR5cGUsbWV0YURhdGE6dC5tZXRhRGF0YT9hLmRlZmF1bHQuY3JlYXRlKHQubWV0YURhdGEpOm51bGwscmVwbHk6dC5yZXBseXx8dGhpcy5yZXBseXx8IiJ9KSx0aGlzLnNldCgiY2F0ZWdvcnlJZCIsdC5jYXRlZ29yeUlkfHx0aGlzLmdldCgidG9waWMuY2F0ZWdvcnkuaWQiKSksdGhpcy5jYXRlZ29yeUlkfHwhdGhpcy5jcmVhdGluZ1RvcGljfHwxPT09KGU9dGhpcy5zaXRlLmNhdGVnb3JpZXMpLmxlbmd0aCYmdGhpcy5zZXQoImNhdGVnb3J5SWQiLGVbMF0uaWQpLHQucG9zdElkJiYodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLnN0b3JlLmZpbmQoInBvc3QiLHQucG9zdElkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBvLnNldFByb3BlcnRpZXMoe3Bvc3Q6ZSxsb2FkaW5nOiExfSl9KSksc2UodC5hY3Rpb24pJiZ0LnBvc3Q/KChpPXRoaXMuc2VyaWFsaXplKGNlKSkubG9hZGluZz0hMCx0LmFjdGlvbj09PWVlJiZ0LmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZCYmKGkuY2F0ZWdvcnlJZD10LmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZCksdGhpcy5zZXRQcm9wZXJ0aWVzKGkpLHRoaXMuc3RvcmUuZmluZCgicG9zdCIsdC5wb3N0LmlkKS50aGVuKGZ1bmN0aW9uKGUpe28uc2V0UHJvcGVydGllcyh7cmVwbHk6ZS5yYXcsb3JpZ2luYWxUZXh0OmUucmF3LGxvYWRpbmc6ITF9KSxvLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBseS1yZWxvYWRlZCIsbyl9KSk6dC5hY3Rpb249PT1uZSYmdC5xdW90ZSYmdGhpcy5zZXRQcm9wZXJ0aWVzKHtyZXBseTp0LnF1b3RlLG9yaWdpbmFsVGV4dDp0LnF1b3RlfSksdC50aXRsZSYmdGhpcy5zZXQoInRpdGxlIix0LnRpdGxlKSx0aGlzLnNldCgib3JpZ2luYWxUZXh0Iix0LmRyYWZ0PyIiOnRoaXMucmVwbHkpLHRoaXMuZWRpdGluZ0ZpcnN0UG9zdCYmdGhpcy5zZXQoIm9yaWdpbmFsVGl0bGUiLHRoaXMudGl0bGUpLHNlKHQuYWN0aW9uKSYmdC5wb3N0fHxvLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBseS1yZWxvYWRlZCIsbyksT2JqZWN0LmtleXMocGUpLmZvckVhY2goZnVuY3Rpb24oZSl7bi5zZXQocGVbZV0sdFtlXSl9KSwhMX19LGJlZm9yZVNhdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5Qcm9taXNlLnJlc29sdmUoKX0sc2F2ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmJlZm9yZVNhdmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoIXQuY2FudFN1Ym1pdFBvc3QpcmV0dXJuIHQuY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rfHx0LnNldCgiZmVhdHVyZWRMaW5rIixudWxsKSx0LmVkaXRpbmdQb3N0P3QuZWRpdFBvc3QoZSk6dC5jcmVhdGVQb3N0KGUpfSl9LGNsZWFyU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe29yaWdpbmFsVGV4dDpudWxsLHJlcGx5Om51bGwscG9zdDpudWxsLHRpdGxlOm51bGwsdW5saXN0VG9waWM6ITEsZWRpdFJlYXNvbjpudWxsLHN0YWdlZFBvc3Q6ITEsdHlwaW5nVGltZTowLGNvbXBvc2VyT3BlbmVkOm51bGwsY29tcG9zZXJUb3RhbE9wZW5lZDowLGZlYXR1cmVkTGluazpudWxsLG5vQnVtcDohMSxlZGl0Q29uZmxpY3Q6ITF9KX0sZWRpdFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcyxvPXRoaXMucG9zdCxyPW8uY29va2VkLGE9ZC5Qcm9taXNlLnJlc29sdmUoKTt0aGlzLnRpdGxlJiYxPT09by5wb3N0X251bWJlciYmKCh0PXRoaXMudG9waWMpLmRldGFpbHMuY2FuX2VkaXQ/KChuPXRoaXMuZ2V0UHJvcGVydGllcyhPYmplY3Qua2V5cyhjZSkpKS5mZWF0dXJlZExpbmsmJihuLmZlYXR1cmVkX2xpbms9bi5mZWF0dXJlZExpbmssZGVsZXRlIG4uZmVhdHVyZWRMaW5rKSx0aGlzLmFjdGlvbj09PWVlJiYoaT1uLmNhdGVnb3J5SWQsYT1hLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC51cGRhdGVEZXN0aW5hdGlvbkNhdGVnb3J5KGkpfSksbi5jYXRlZ29yeUlkPXQuZ2V0KCJjYXRlZ29yeS5pZCIpKSxhPWEudGhlbihmdW5jdGlvbigpe3JldHVybiBjLmRlZmF1bHQudXBkYXRlKHQsbil9KSk6dC5kZXRhaWxzLmNhbl9lZGl0X3RhZ3MmJihhPWEudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnVwZGF0ZVRhZ3Mocy50YWdzKX0pKSk7dmFyIGw9e3RvcGljX2lkOnRoaXMudG9waWMuaWQscmF3OnRoaXMucmVwbHkscmF3X29sZDp0aGlzLmVkaXRDb25mbGljdD9udWxsOnRoaXMub3JpZ2luYWxUZXh0LGVkaXRfcmVhc29uOmUuZWRpdFJlYXNvbixpbWFnZV9zaXplczplLmltYWdlU2l6ZXMsY29va2VkOnRoaXMuZ2V0Q29va2VkSHRtbCgpfTt0aGlzLnNldCgiY29tcG9zZVN0YXRlIixyZSk7dmFyIHU9KDAsbS50aHJvd0FqYXhFcnJvcikoZnVuY3Rpb24oZSl7by5zZXQoImNvb2tlZCIscikscy5zZXQoImNvbXBvc2VTdGF0ZSIsYWUpLGUuanFYSFImJjQwOT09PWUuanFYSFIuc3RhdHVzJiZzLnNldCgiZWRpdENvbmZsaWN0IiwhMCl9KTtyZXR1cm4gYS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG8uc2V0KCJjb29rZWQiLGwuY29va2VkKSxvLnNhdmUobCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gcy5jbGVhclN0YXRlKCksZX0pfSkuY2F0Y2godSl9LHNlcmlhbGl6ZTpmdW5jdGlvbihuLGkpe3ZhciBzPXRoaXM7cmV0dXJuIGk9aXx8e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zLmdldChuW2VdKTt2b2lkIDAhPT10JiYoMCxhLnNldCkoaSxlLHQpfSksaX0sY3JlYXRlUG9zdDpmdW5jdGlvbihlKXt2YXIgaT10aGlzO1EhPT10aGlzLmFjdGlvbiYmdGUhPT10aGlzLmFjdGlvbnx8dGhpcy5zZXQoInRvcGljIixudWxsKTt2YXIgdD10aGlzLnBvc3Qscz10aGlzLnRvcGljLG49dGhpcy51c2VyLG89dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSxyPSExLGE9dGhpcy5zaXRlLnBvc3RfdHlwZXMsbD10aGlzLndoaXNwZXI/YS53aGlzcGVyOmEucmVndWxhcix1PXRoaXMuc3RvcmUuY3JlYXRlUmVjb3JkKCJwb3N0Iix7aW1hZ2VTaXplczplLmltYWdlU2l6ZXMsY29va2VkOnRoaXMuZ2V0Q29va2VkSHRtbCgpLHJlcGx5X2NvdW50OjAsbmFtZTpuLm5hbWUsZGlzcGxheV91c2VybmFtZTpuLm5hbWUsdXNlcm5hbWU6bi51c2VybmFtZSx1c2VyX2lkOm4uaWQsdXNlcl90aXRsZTpuLnRpdGxlLGF2YXRhcl90ZW1wbGF0ZTpuLmF2YXRhcl90ZW1wbGF0ZSx1c2VyX2N1c3RvbV9maWVsZHM6bi5jdXN0b21fZmllbGRzLHBvc3RfdHlwZTpsLGFjdGlvbnNfc3VtbWFyeTpbXSxtb2RlcmF0b3I6bi5tb2RlcmF0b3IsYWRtaW46bi5hZG1pbix5b3VyczohMCxyZWFkOiEwLHdpa2k6ITEsdHlwaW5nVGltZTp0aGlzLnR5cGluZ1RpbWUsY29tcG9zZXJUaW1lOnRoaXMuY29tcG9zZXJUaW1lfSk7dGhpcy5zZXJpYWxpemUodWUsdSksdCYmdS5zZXRQcm9wZXJ0aWVzKHtyZXBseV90b19wb3N0X251bWJlcjp0LnBvc3RfbnVtYmVyLHJlcGx5X3RvX3VzZXI6dC5nZXRQcm9wZXJ0aWVzKCJ1c2VybmFtZSIsImF2YXRhcl90ZW1wbGF0ZSIpfSk7dmFyIGM9bnVsbDtpZighb3x8KHQmJnQuc2V0UHJvcGVydGllcyh7cmVwbHlfY291bnQ6KHQucmVwbHlfY291bnR8fDApKzEscmVwbGllczpbXX0pLF8uaXNFbXB0eSh1LmNvb2tlZCl8fCJhbHJlYWR5U3RhZ2luZyIhPT0oYz1vLnN0YWdlUG9zdCh1LG4pKSkpe3ZhciBkPXRoaXM7cmV0dXJuIGQuc2V0UHJvcGVydGllcyh7Y29tcG9zZVN0YXRlOnJlLHN0YWdlZFBvc3Q6InN0YWdlZCI9PT1jJiZ1fSksdS5zYXZlKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdCxuPSEwO3JldHVybiJlbnF1ZXVlZCI9PT1lLnJlc3BvbnNlSnNvbi5hY3Rpb24/byYmby51bmRvUG9zdCh1KTooZS5yZXNwb25zZUpzb24mJmUucmVzcG9uc2VKc29uLnBvc3QmJiFlLnJlc3BvbnNlSnNvbi5wb3N0LnJlcGx5X3RvX3VzZXImJnUuc2V0KCJyZXBseV90b191c2VyIixudWxsKSxzPyhzLnNldCgiZHJhZnRfc2VxdWVuY2UiLGUudGFyZ2V0LmRyYWZ0X3NlcXVlbmNlKSxvLmNvbW1pdFBvc3QodSkscj0hMCk6KGQuc2V0KCJjb21wb3NlU3RhdGUiLG9lKSxuPSExLCh0PWQuc2l0ZS5jYXRlZ29yaWVzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT0ocGFyc2VJbnQodS5jYXRlZ29yeSwxMCl8fDEpfSkpJiZ0LmluY3JlbWVudFByb3BlcnR5KCJ0b3BpY19jb3VudCIpLERpc2NvdXJzZS5ub3RpZnlQcm9wZXJ0eUNoYW5nZSgiZ2xvYmFsTm90aWNlIikpLGQuY2xlYXJTdGF0ZSgpLGQuc2V0KCJjcmVhdGVkUG9zdCIsdSksZC5yZXBseWluZ1RvVG9waWM/aS5hcHBFdmVudHMudHJpZ2dlcigicG9zdDpjcmVhdGVkIix1KTppLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzpjcmVhdGVkIix1LGQpLHI/ZC5zZXQoImNvbXBvc2VTdGF0ZSIsb2UpOm4mJmQuc2V0KCJjb21wb3NlU3RhdGUiLHJlKSksZX0pLmNhdGNoKCgwLG0udGhyb3dBamF4RXJyb3IpKGZ1bmN0aW9uKCl7byYmKG8udW5kb1Bvc3QodSksdCYmdC5zZXQoInJlcGx5X2NvdW50Iix0LnJlcGx5X2NvdW50LTEpKSwoMCxwLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2V0KCJjb21wb3NlU3RhdGUiLGFlKX0pfSkpfX0sZ2V0Q29va2VkSHRtbDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXBseS1jb250cm9sIC5kLWVkaXRvci1wcmV2aWV3Iik7cmV0dXJuIGU/ZS5pbm5lckhUTUwucmVwbGFjZSgvPHNwYW4gY2xhc3M9Im1hcmtlciI+PFwvc3Bhbj4vZywiIik6IiJ9LHNhdmVEcmFmdDpmdW5jdGlvbigpe3ZhciBzPXRoaXM7aWYoIXRoaXMuZGlzYWJsZURyYWZ0cyl7aWYodGhpcy5jYW5FZGl0VGl0bGUpe2lmKCF0aGlzLnRpdGxlJiYhdGhpcy5yZXBseSlyZXR1cm47aWYodGhpcy50aXRsZSYmdGhpcy50aXRsZUxlbmd0aFZhbGlkJiZ0aGlzLnJlcGx5JiZ0aGlzLnJlcGx5TGVuZ3RoPHRoaXMuc2l0ZVNldHRpbmdzLm1pbl9wb3N0X2xlbmd0aClyZXR1cm59ZWxzZXtpZighdGhpcy5yZXBseSlyZXR1cm47aWYodGhpcy5yZXBseUxlbmd0aDx0aGlzLnNpdGVTZXR0aW5ncy5taW5fcG9zdF9sZW5ndGgpcmV0dXJufXRoaXMuc2V0UHJvcGVydGllcyh7ZHJhZnRTYXZlZDohMSxkcmFmdFNhdmluZzohMCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSksdGhpcy5fY2xlYXJpbmdTdGF0dXMmJigoMCxwLmNhbmNlbCkodGhpcy5fY2xlYXJpbmdTdGF0dXMpLHRoaXMuX2NsZWFyaW5nU3RhdHVzPW51bGwpO3ZhciBlPXRoaXMuc2VyaWFsaXplKGRlKTtyZXR1cm4gZS5wb3N0SWQmJiEoMCxyLmlzRW1wdHkpKHRoaXMub3JpZ2luYWxUZXh0KSYmKGUub3JpZ2luYWxUZXh0PXRoaXMub3JpZ2luYWxUZXh0KSxpLmRlZmF1bHQuc2F2ZSh0aGlzLmRyYWZ0S2V5LHRoaXMuZHJhZnRTZXF1ZW5jZSxlLHRoaXMubWVzc2FnZUJ1cy5jbGllbnRJZCkudGhlbihmdW5jdGlvbihlKXtlLmRyYWZ0X3NlcXVlbmNlJiYocy5kcmFmdFNlcXVlbmNlPWUuZHJhZnRfc2VxdWVuY2UpLGUuY29uZmxpY3RfdXNlcj9zLnNldFByb3BlcnRpZXMoe2RyYWZ0U2F2aW5nOiExLGRyYWZ0U3RhdHVzOkkxOG4udCgiY29tcG9zZXIuZWRpdF9jb25mbGljdCIpLGRyYWZ0Q29uZmxpY3RVc2VyOmUuY29uZmxpY3RfdXNlcn0pOnMuc2V0UHJvcGVydGllcyh7ZHJhZnRTYXZpbmc6ITEsZHJhZnRTYXZlZDohMCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSl9KS5jYXRjaChmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMCxpPWUmJmUuanFYSFI7aSYmNDA5PT09aS5zdGF0dXMmJmkucmVzcG9uc2VKU09OJiZpLnJlc3BvbnNlSlNPTi5lcnJvcnMmJmkucmVzcG9uc2VKU09OLmVycm9ycy5sZW5ndGgmJihuPSh0PWUuanFYSFIucmVzcG9uc2VKU09OKS5lcnJvcnNbMF0sdC5leHRyYXMmJnQuZXh0cmFzLmRlc2NyaXB0aW9uJiZib290Ym94LmFsZXJ0KHQuZXh0cmFzLmRlc2NyaXB0aW9uKSkscy5zZXRQcm9wZXJ0aWVzKHtkcmFmdFNhdmluZzohMSxkcmFmdFN0YXR1czpufHxJMThuLnQoImNvbXBvc2VyLmRyYWZ0c19vZmZsaW5lIiksZHJhZnRDb25mbGljdFVzZXI6bnVsbH0pfSl9fSxkYXRhQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5kcmFmdFN0YXR1cyYmIXRoaXMuX2NsZWFyaW5nU3RhdHVzJiYodGhpcy5fY2xlYXJpbmdTdGF0dXM9KDAscC5sYXRlcikodGhpcyxmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7ZHJhZnRTdGF0dXM6bnVsbCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSksZS5fY2xlYXJpbmdTdGF0dXM9bnVsbCxlLnNldFByb3BlcnRpZXMoe2RyYWZ0U2F2aW5nOiExLGRyYWZ0U2F2ZWQ6ITF9KX0sRW1iZXIuVGVzdD8wOjFlMykpfX0sImNhdGVnb3J5SWQiLFtzLmRlZmF1bHRdLChHPShHPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2F0ZWdvcnlJZCIpKT9HLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gR319KSxWKSxnKFYsImNhdGVnb3J5Iixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYXRlZ29yeSIpLFYpLGcoViwibWluaW11bVJlcXVpcmVkVGFncyIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVJlcXVpcmVkVGFncyIpLFYpLGcoViwiZGlzYWJsZVRpdGxlSW5wdXQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImRpc2FibGVUaXRsZUlucHV0IiksViksZyhWLCJzaG93Q2F0ZWdvcnlDaG9vc2VyIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJzaG93Q2F0ZWdvcnlDaG9vc2VyIiksViksZyhWLCJwcml2YXRlTWVzc2FnZSIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwicHJpdmF0ZU1lc3NhZ2UiKSxWKSxnKFYsImVkaXRpbmdQb3N0IixbVF0sKFk9KFk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJlZGl0aW5nUG9zdCIpKT9ZLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gWX19KSxWKSxnKFYsImNvbXBvc2VTdGF0ZUNoYW5nZWQiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNvbXBvc2VTdGF0ZUNoYW5nZWQiKSxWKSxnKFYsImNvbXBvc2VyVGltZSIsW3MuZGVmYXVsdF0sKEo9KEo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjb21wb3NlclRpbWUiKSk/Si52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIEp9fSksViksZyhWLCJhcmNoZXR5cGUiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImFyY2hldHlwZSIpLFYpLGcoViwiYXJjaGV0eXBlQ2hhbmdlZCIsW1NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiYXJjaGV0eXBlQ2hhbmdlZCIpLFYpLGcoViwiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIixbQ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxWKSxnKFYsInRpdGxlUGxhY2Vob2xkZXIiLFtNXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInRpdGxlUGxhY2Vob2xkZXIiKSxWKSxnKFYsInJlcGx5T3B0aW9ucyIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwicmVwbHlPcHRpb25zIiksViksZyhWLCJ0YXJnZXRVc2VybmFtZXMiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInRhcmdldFVzZXJuYW1lcyIpLFYpLGcoViwidGFyZ2V0UmVjaXBpZW50c0FycmF5IixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0YXJnZXRSZWNpcGllbnRzQXJyYXkiKSxWKSxnKFYsImNhbnRTdWJtaXRQb3N0IixbQV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW50U3VibWl0UG9zdCIpLFYpLGcoViwicmVxdWlyZWRDYXRlZ29yeU1pc3NpbmciLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInJlcXVpcmVkQ2F0ZWdvcnlNaXNzaW5nIiksViksZyhWLCJ0aXRsZUxlbmd0aFZhbGlkIixbel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0aXRsZUxlbmd0aFZhbGlkIiksViksZyhWLCJoYXNNZXRhRGF0YSIsW1VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiaGFzTWV0YURhdGEiKSxWKSxnKFYsIm1pc3NpbmdUaXRsZUNoYXJhY3RlcnMiLFtGXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsIm1pc3NpbmdUaXRsZUNoYXJhY3RlcnMiKSxWKSxnKFYsIm1pbmltdW1UaXRsZUxlbmd0aCIsW0JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVRpdGxlTGVuZ3RoIiksViksZyhWLCJtaXNzaW5nUmVwbHlDaGFyYWN0ZXJzIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJtaXNzaW5nUmVwbHlDaGFyYWN0ZXJzIiksViksZyhWLCJtaW5pbXVtUG9zdExlbmd0aCIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVBvc3RMZW5ndGgiKSxWKSxnKFYsInRpdGxlTGVuZ3RoIixbSF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0aXRsZUxlbmd0aCIpLFYpLGcoViwicmVwbHlMZW5ndGgiLFskXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInJlcGx5TGVuZ3RoIiksViksZyhWLCJfc2V0dXBDb21wb3NlciIsW0tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiX3NldHVwQ29tcG9zZXIiKSxWKSxnKFYsImRhdGFDaGFuZ2VkIixbV10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJkYXRhQ2hhbmdlZCIpLFYpLFYpKSk7bWUucmVvcGVuQ2xhc3Moe2NyZWF0ZTpmdW5jdGlvbihlKXtyZXR1cm4oZT1lfHx7fSkudXNlcj1lLnVzZXJ8fGguZGVmYXVsdC5jdXJyZW50KCksZS5zaXRlPWUuc2l0ZXx8Zi5kZWZhdWx0LmN1cnJlbnQoKSxlLnNpdGVTZXR0aW5ncz1lLnNpdGVTZXR0aW5nc3x8RGlzY291cnNlLlNpdGVTZXR0aW5ncyx0aGlzLl9zdXBlcihlKX0sc2VyaWFsaXplVG9Ub3BpYzpmdW5jdGlvbihlLHQpe3Q9dHx8ZSxjZVtlXT10fSxzZXJpYWxpemVPbkNyZWF0ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ZSx1ZVtlXT10fSxzZXJpYWxpemVkRmllbGRzRm9yQ3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHVlKX0sc2VyaWFsaXplVG9EcmFmdDpmdW5jdGlvbihlLHQpe3Q9dHx8ZSxkZVtlXT10LHBlW2VdPXR9LHNlcmlhbGl6ZWRGaWVsZHNGb3JEcmFmdDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhkZSl9LENMT1NFRDpvZSxTQVZJTkc6cmUsT1BFTjphZSxEUkFGVDoiZHJhZnQiLEZVTExTQ1JFRU46bGUsQ1JFQVRFX1RPUElDOlEsQ1JFQVRFX1NIQVJFRF9EUkFGVDpaLEVESVRfU0hBUkVEX0RSQUZUOmVlLFBSSVZBVEVfTUVTU0FHRTp0ZSxSRVBMWTpuZSxFRElUOmllLE5FV19QUklWQVRFX01FU1NBR0VfS0VZOiJuZXdfcHJpdmF0ZV9tZXNzYWdlIixORVdfVE9QSUNfS0VZOiJuZXdfdG9waWMifSksZS5kZWZhdWx0PW1lfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlLWdyb3VwaW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksbz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksaShyPXtpMThuTmFtZUtleTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccy9nLCJfIil9LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKCl7dmFyIGU9ImJhZGdlcy5iYWRnZV9ncm91cGluZy4iK3RoaXMuaTE4bk5hbWVLZXkrIi5uYW1lIjtyZXR1cm4gSTE4bi50KGUse2RlZmF1bHRWYWx1ZTp0aGlzLm5hbWV9KX19LCJpMThuTmFtZUtleSIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaTE4bk5hbWVLZXkiKSxyKSxpKHIsImRpc3BsYXlOYW1lIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJkaXNwbGF5TmFtZSIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9iYWRnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlLWdyb3VwaW5nIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLHMsbyxyLGksYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGQ9aS5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJiYWRnZV90eXBlLm5hbWUiKSxsKGM9e25ld0JhZGdlOigwLG4ubm9uZSkoImlkIiksdXJsOmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5nZXRVUkwoIi9iYWRnZXMvIit0aGlzLmlkKyIvIit0aGlzLnNsdWcpfSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3QuYmFkZ2UmJk9iamVjdC5rZXlzKHQuYmFkZ2UpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG4uc2V0KGUsdC5iYWRnZVtlXSl9KSx0LmJhZGdlX3R5cGVzJiZ0LmJhZGdlX3R5cGVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5pZD09PW4uYmFkZ2VfdHlwZV9pZCYmbi5zZXQoImJhZGdlX3R5cGUiLE9iamVjdC5jcmVhdGUoZSkpfSl9LGJhZGdlVHlwZUNsYXNzTmFtZTpmdW5jdGlvbihlKXtyZXR1cm4iYmFkZ2UtdHlwZS0iKyhlPWV8fCIiKS50b0xvd2VyQ2FzZSgpfSxzYXZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0iL2FkbWluL2JhZGdlcyIsaT0iUE9TVCI7cmV0dXJuIHRoaXMuaWQmJihuKz0iLyIrdGhpcy5pZCxpPSJQVVQiKSwoMCxvLmFqYXgpKG4se3R5cGU6aSxkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnVwZGF0ZUZyb21Kc29uKGUpLHR9KS5jYXRjaChmdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoZSl9KX0sZGVzdHJveTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5ld0JhZGdlP2EuUHJvbWlzZS5yZXNvbHZlKCk6KDAsby5hamF4KSgiL2FkbWluL2JhZGdlcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX19LCJ1cmwiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywidXJsIiksYyksbChjLCJiYWRnZVR5cGVDbGFzc05hbWUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImJhZGdlVHlwZUNsYXNzTmFtZSIpLGMpLGMpKTtkLnJlb3BlbkNsYXNzKHtjcmVhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgbj17fTsiYmFkZ2VfdHlwZXMiaW4gZSYmZS5iYWRnZV90eXBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2UuaWRdPXMuZGVmYXVsdC5jcmVhdGUoZSl9KTt2YXIgaT17fTsiYmFkZ2VfZ3JvdXBpbmdzImluIGUmJmUuYmFkZ2VfZ3JvdXBpbmdzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGlbZS5pZF09ci5kZWZhdWx0LmNyZWF0ZShlKX0pO3ZhciB0PVtdO3JldHVybiJiYWRnZSJpbiBlP3Q9W2UuYmFkZ2VdOmUuYmFkZ2VzJiYodD1lLmJhZGdlcyksdD10Lm1hcChmdW5jdGlvbihlKXt2YXIgdD1kLmNyZWF0ZShlKTtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtiYWRnZV90eXBlOm5bdC5iYWRnZV90eXBlX2lkXSxiYWRnZV9ncm91cGluZzppW3QuYmFkZ2VfZ3JvdXBpbmdfaWRdfSksdH0pLCJiYWRnZSJpbiBlP3RbMF06dH0sZmluZEFsbDpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZSYmZS5vbmx5TGlzdGFibGUmJih0PSI/b25seV9saXN0YWJsZT10cnVlIiksKDAsby5hamF4KSgiL2JhZGdlcy5qc29uIit0LHtkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBkLmNyZWF0ZUZyb21Kc29uKGUpfSl9LGZpbmRCeUlkOmZ1bmN0aW9uKGUpe3JldHVybigwLG8uYWpheCkoIi9iYWRnZXMvIitlKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBkLmNyZWF0ZUZyb21Kc29uKGUpfSl9fSksZS5kZWZhdWx0PWR9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24tZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3B1c2g6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXRlbXN8fCh0aGlzLml0ZW1zPVtdKSx0aGlzLml0ZW1zLnB1c2goZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdHJ1c3QtbGV2ZWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGV0YWlsZWROYW1lOigwLG4uZm10KSgiaWQiLCJuYW1lIiwiJUAgLSAlQCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvc2VhcmNoIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktdGFnLXNlYXJjaCIsImRpc2NvdXJzZS9saWIvdXNlci1zZWFyY2giLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiXSxmdW5jdGlvbihlLGwsbixzLG8saSxyLGEsdSxjLGQscCxtKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZihvLHIpe3I9cnx8e30sby50b3BpY3M9by50b3BpY3N8fFtdLG8udXNlcnM9by51c2Vyc3x8W10sby5wb3N0cz1vLnBvc3RzfHxbXSxvLmNhdGVnb3JpZXM9by5jYXRlZ29yaWVzfHxbXSxvLnRhZ3M9by50YWdzfHxbXSxvLmdyb3Vwcz1vLmdyb3Vwc3x8W107dmFyIHQ9e307by50b3BpY3M9by50b3BpY3MubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlPW0uZGVmYXVsdC5jcmVhdGUoZSksdFtlLmlkXT1lfSksby5wb3N0cz1vLnBvc3RzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VybmFtZSYmKGUudXNlclBhdGg9KDAsdS51c2VyUGF0aCkoZS51c2VybmFtZS50b0xvd2VyQ2FzZSgpKSksKGU9cC5kZWZhdWx0LmNyZWF0ZShlKSkuc2V0KCJ0b3BpYyIsdFtlLnRvcGljX2lkXSksZS5ibHVyYj0oMCxjLmVtb2ppVW5lc2NhcGUpKGUuYmx1cmIpLGV9KSxvLnVzZXJzPW8udXNlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBkLmRlZmF1bHQuY3JlYXRlKGUpfSksby5jYXRlZ29yaWVzPW8uY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGVmYXVsdC5saXN0KCkuZmluZEJ5KCJpZCIsZS5pZCl9KS5jb21wYWN0KCksby5ncm91cHM9by5ncm91cHMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLm5hbWUpLG49SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUuZnVsbF9uYW1lfHxlLmRpc3BsYXlfbmFtZSksaT0oMCxsLmlzRW1wdHkpKGUuZmxhaXJfdXJsKT9udWxsOkhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLmZsYWlyX3VybCkscz1IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS5mbGFpcl9jb2xvciksbz1IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS5mbGFpcl9iZ19jb2xvcik7cmV0dXJue2lkOmUuaWQsZmxhaXJVcmw6aSxmbGFpckNvbG9yOnMsZmxhaXJCZ0NvbG9yOm8sZnVsbE5hbWU6bixuYW1lOnQsdXJsOkRpc2NvdXJzZS5nZXRVUkwoIi9nLyIrdCl9fSkuY29tcGFjdCgpLG8udGFncz1vLnRhZ3MubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLm5hbWUpO3JldHVybiBuLmRlZmF1bHQuY3JlYXRlKHtpZDp0LHVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvdGFnLyIrdCl9KX0pLmNvbXBhY3QoKSxvLnJlc3VsdFR5cGVzPVtdO3ZhciBhPW8uZ3JvdXBlZF9zZWFyY2hfcmVzdWx0O3JldHVybiBhJiZbWyJ0b3BpYyIsInBvc3RzIl0sWyJ1c2VyIiwidXNlcnMiXSxbImdyb3VwIiwiZ3JvdXBzIl0sWyJjYXRlZ29yeSIsImNhdGVnb3JpZXMiXSxbInRhZyIsInRhZ3MiXV0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGk9ZVswXSxzPWVbMV07MDxvW3NdLmxlbmd0aCYmKHQ9ci5zZWFyY2hDb250ZXh0JiYidG9waWMiPT09ci5zZWFyY2hDb250ZXh0LnR5cGUmJiJ0b3BpYyI9PT1pPyJwb3N0IjppLChuPXtyZXN1bHRzOm9bc10sY29tcG9uZW50TmFtZToic2VhcmNoLXJlc3VsdC0iK3QsdHlwZTppLG1vcmU6YVsibW9yZV8iK3NdfSkubW9yZSYmInRvcGljIj09PXQmJnIuZnVsbFNlYXJjaFVybCYmKG4ubW9yZT0hMSxuLm1vcmVVcmw9ci5mdWxsU2VhcmNoVXJsKSxvLnJlc3VsdFR5cGVzLnB1c2gobikpfSksIShvLnRvcGljcy5sZW5ndGh8fG8ucG9zdHMubGVuZ3RofHxvLnVzZXJzLmxlbmd0aHx8by5jYXRlZ29yaWVzLmxlbmd0aCk/bnVsbDpuLmRlZmF1bHQuY3JlYXRlKG8pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYW5zbGF0ZVJlc3VsdHM9ZixlLnNlYXJjaEZvclRlcm09ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt0ZXJtOmUsaW5jbHVkZV9ibHVyYnM6InRydWUifTt0LnR5cGVGaWx0ZXImJihuLnR5cGVfZmlsdGVyPXQudHlwZUZpbHRlcik7dC5zZWFyY2hGb3JJZCYmKG4uc2VhcmNoX2Zvcl9pZD0hMCk7dC5yZXN0cmljdFRvQXJjaGV0eXBlJiYobi5yZXN0cmljdF90b19hcmNoZXR5cGU9dC5yZXN0cmljdFRvQXJjaGV0eXBlKTt0LnNlYXJjaENvbnRleHQmJihuLnNlYXJjaF9jb250ZXh0PXt0eXBlOnQuc2VhcmNoQ29udGV4dC50eXBlLGlkOnQuc2VhcmNoQ29udGV4dC5pZCxuYW1lOnQuc2VhcmNoQ29udGV4dC5uYW1lfSk7dmFyIGk9KDAscy5hamF4KSgiL3NlYXJjaC9xdWVyeSIse2RhdGE6bn0pO3JldHVybiBpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGYoZSx0KX0pLGl9LGUuc2VhcmNoQ29udGV4dERlc2NyaXB0aW9uPWZ1bmN0aW9uKGUsdCl7aWYoZSlzd2l0Y2goZSl7Y2FzZSJ0b3BpYyI6cmV0dXJuIEkxOG4udCgic2VhcmNoLmNvbnRleHQudG9waWMiKTtjYXNlInVzZXIiOnJldHVybiBJMThuLnQoInNlYXJjaC5jb250ZXh0LnVzZXIiLHt1c2VybmFtZTp0fSk7Y2FzZSJjYXRlZ29yeSI6cmV0dXJuIEkxOG4udCgic2VhcmNoLmNvbnRleHQuY2F0ZWdvcnkiLHtjYXRlZ29yeTp0fSk7Y2FzZSJ0YWciOnJldHVybiBJMThuLnQoInNlYXJjaC5jb250ZXh0LnRhZyIse3RhZzp0fSk7Y2FzZSJwcml2YXRlX21lc3NhZ2VzIjpyZXR1cm4gSTE4bi50KCJzZWFyY2guY29udGV4dC5wcml2YXRlX21lc3NhZ2VzIil9fSxlLmdldFNlYXJjaEtleT1mdW5jdGlvbihlKXtyZXR1cm4gZS5xKyJ8IisoZS5zZWFyY2hDb250ZXh0JiZlLnNlYXJjaENvbnRleHQudHlwZXx8IiIpKyJ8IisoZS5zZWFyY2hDb250ZXh0JiZlLnNlYXJjaENvbnRleHQuaWR8fCIiKX0sZS5pc1ZhbGlkU2VhcmNoVGVybT1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJmUudHJpbSgpLmxlbmd0aD49RGlzY291cnNlLlNpdGVTZXR0aW5ncy5taW5fc2VhcmNoX3Rlcm1fbGVuZ3RofSxlLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlPWZ1bmN0aW9uKGUsdCxuLGkpe2Z1bmN0aW9uIHMoKXtuJiZuLnRyaWdnZXIoInNlYXJjaC1hdXRvY29tcGxldGU6YWZ0ZXItY29tcGxldGUiKX1lLmF1dG9jb21wbGV0ZShfLm1lcmdlKHt0ZW1wbGF0ZTooMCxvLmZpbmRSYXdUZW1wbGF0ZSkoImNhdGVnb3J5LXRhZy1hdXRvY29tcGxldGUiKSxrZXk6IiMiLHdpZHRoOiIxMDAlIix0cmVhdEFzVGV4dGFyZWE6ITAsdHJhbnNmb3JtQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dH0sZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxyLnNlYXJjaCkoZSx0KX0sYWZ0ZXJDb21wbGV0ZTpzfSxpKSksRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfbWVudGlvbnMmJmUuYXV0b2NvbXBsZXRlKF8ubWVyZ2Uoe3RlbXBsYXRlOigwLG8uZmluZFJhd1RlbXBsYXRlKSgidXNlci1zZWxlY3Rvci1hdXRvY29tcGxldGUiKSxrZXk6IkAiLHdpZHRoOiIxMDAlIix0cmVhdEFzVGV4dGFyZWE6ITAsdHJhbnNmb3JtQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWV8fGUubmFtZX0sZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxhLmRlZmF1bHQpKHt0ZXJtOmUsaW5jbHVkZUdyb3VwczohMH0pfSxhZnRlckNvbXBsZXRlOnN9LGkpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXNlci1zZWFyY2giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2F1dG9jb21wbGV0ZSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LHAsbSxmLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5za2lwU2VhcmNoPXcsZS5lYWdlckNvbXBsZXRlU2VhcmNoPXgsZS5kZWZhdWx0PWZ1bmN0aW9uKGkpe2kudGVybSYmMDxpLnRlcm0ubGVuZ3RoJiYiQCI9PT1pLnRlcm1bMF0mJihpLnRlcm09aS50ZXJtLnN1YnN0cmluZygxKSk7dmFyIHM9aS50ZXJtfHwiIixvPWkuaW5jbHVkZUdyb3VwcyxyPWkuaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzLGE9aS5pbmNsdWRlTWVzc2FnZWFibGVHcm91cHMsbD1pLmFsbG93ZWRVc2Vycyx1PWkudG9waWNJZCxjPWkuY2F0ZWdvcnlJZCxkPWkuZ3JvdXBNZW1iZXJzT2Y7diYmKHYuYWJvcnQoKSx2PW51bGwpO3JldHVybiBnPXMsbmV3IG4uUHJvbWlzZShmdW5jdGlvbih0KXt2YXIgZT11KyItIitjOygzZTQ8bmV3IERhdGUtYnx8aCE9PWUpJiYoeT17fSksaD1lO3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KHAuQ0FOQ0VMTEVEX1NUQVRVUyl9LDVlMyk7dyhzLGkuYWxsb3dFbWFpbHMpP3QoW10pOl8ocyx1LGMsbyxyLGEsbCxkLGZ1bmN0aW9uKGUpe2NsZWFyVGltZW91dChuKSx0KGZ1bmN0aW9uKGUsdCl7aWYoZT09PXAuQ0FOQ0VMTEVEX1NUQVRVUylyZXR1cm4gZTt2YXIgbj10LmV4Y2x1ZGV8fFtdLGk9dC5saW1pdHx8NSxzPVtdLG89W10scj1bXSxhPVtdO2UudXNlcnMmJmUudXNlcnMuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT1uLmluZGV4T2YoZS51c2VybmFtZSkmJihzLnB1c2goZSksYS5wdXNoKGUpKSxhLmxlbmd0aDw9aX0pO3t2YXIgbDt0LmFsbG93RW1haWxzJiYoMCxmLmVtYWlsVmFsaWQpKHQudGVybSkmJihsPXt1c2VybmFtZTp0LnRlcm19LG89W2xdLGEucHVzaChsKSl9ZS5ncm91cHMmJmUuZ3JvdXBzLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybih0LnRlcm0udG9Mb3dlckNhc2UoKT09PWUubmFtZS50b0xvd2VyQ2FzZSgpfHxhLmxlbmd0aDxpKSYmLTE9PT1uLmluZGV4T2YoZS5uYW1lKSYmKHIucHVzaChlKSxhLnB1c2goZSkpLCEwfSk7cmV0dXJuIGEudXNlcnM9cyxhLmVtYWlscz1vLGEuZ3JvdXBzPXIsYX0oZSxpKSl9KX0pfTt2YXIgaCxiLGcsdix5PXt9O3ZhciBfPSgwLHQuZGVmYXVsdCkoZnVuY3Rpb24obixlLHQsaSxzLG8scixhLGwpe3ZhciB1LGMsZD15W25dO2Q/bChkKToodT14KG4sZXx8dCksIiIhPT1ufHx1Pyh2PSQuYWpheCgoMCxtLnVzZXJQYXRoKSgic2VhcmNoL3VzZXJzIikse2RhdGE6e3Rlcm06bix0b3BpY19pZDplLGNhdGVnb3J5X2lkOnQsaW5jbHVkZV9ncm91cHM6aSxpbmNsdWRlX21lbnRpb25hYmxlX2dyb3VwczpzLGluY2x1ZGVfbWVzc2FnZWFibGVfZ3JvdXBzOm8sZ3JvdXBzOmEsdG9waWNfYWxsb3dlZF91c2VyczpyfX0pLGM9cC5DQU5DRUxMRURfU1RBVFVTLHYudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hIShlLnVzZXJzJiZlLnVzZXJzLmxlbmd0aHx8ZS5ncm91cHMmJmUuZ3JvdXBzLmxlbmd0aHx8ZS5lbWFpbHMmJmUuZW1haWxzLmxlbmd0aCk7dSYmIXQmJihlPXAuQ0FOQ0VMTEVEX1NUQVRVUykseVtuXT1lLGI9bmV3IERhdGUsbj09PWcmJihjPWUpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7dj1udWxsLGwoYyl9KSk6bChwLkNBTkNFTExFRF9TVEFUVVMpKX0sMzAwKTt2YXIgaT0vKFtcdTIwMDAtXHUyMDZGXHUyRTAwLVx1MkU3RlxcJyEiIyQlJigpKixcLzo7PD0+P1xbXF1eYHt8fX5dKXxcc1xzfF5ccyR8XlteK10qXCtbXkBdKiQvO2Z1bmN0aW9uIHcoZSx0KXtyZXR1cm4tMTxlLmluZGV4T2YoIkAiKSYmIXR8fCEhZS5tYXRjaChpKX1mdW5jdGlvbiB4KGUsdCl7cmV0dXJuIiI9PT1lJiYhIXR9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2V4cG9ydC1jc3YiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsaSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL2V4cG9ydF9jc3YvZXhwb3J0X2VudGl0eS5qc29uIix7bWV0aG9kOiJQT1NUIixkYXRhOntlbnRpdHk6dCxhcmdzOm59fSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZXhwb3J0VXNlckFyY2hpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gbigwLCJ1c2VyX2FyY2hpdmUiKS50aGVuKGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoInVzZXIuZG93bmxvYWRfYXJjaGl2ZS5zdWNjZXNzIikpfSkuY2F0Y2godC5wb3B1cEFqYXhFcnJvcil9LGUuZXhwb3J0RW50aXR5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4oMCxlLHQpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hdXRvY29tcGxldGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiXSxmdW5jdGlvbihlLE8scixTLEMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DQU5DRUxMRURfU1RBVFVTPXZvaWQgMCxlLmRlZmF1bHQ9ZnVuY3Rpb24oYyl7dmFyIGU9dGhpcztpZigwIT09dGhpcy5sZW5ndGgmJigiZGVzdHJveSIhPT1jJiYhYy51cGRhdGVEYXRhfHwoKDAsTy5jYW5jZWwpKEwpLCQodGhpcykub2ZmKCJrZXl1cC5hdXRvY29tcGxldGUiKS5vZmYoImtleWRvd24uYXV0b2NvbXBsZXRlIikub2ZmKCJwYXN0ZS5hdXRvY29tcGxldGUiKS5vZmYoImNsaWNrLmF1dG9jb21wbGV0ZSIpLCQod2luZG93KS5vZmYoImNsaWNrLmF1dG9jb21wbGV0ZSIpLCJkZXN0cm95IiE9PWMpKSl7aWYoYyYmYy5jYW5jZWwmJnRoaXMuZGF0YSgiY2xvc2VBdXRvY29tcGxldGUiKSlyZXR1cm4gdGhpcy5kYXRhKCJjbG9zZUF1dG9jb21wbGV0ZSIpKCksdGhpcztpZigxIT09dGhpcy5sZW5ndGgpcmV0dXJuIHdpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUubG9nKCJXQVJOSU5HOiBwYXNzZWQgbXVsdGlwbGUgZWxlbWVudHMgdG8gJC5hdXRvY29tcGxldGUsIHNraXBwaW5nLiIpLHdpbmRvdy5FcnJvciYmd2luZG93LmNvbnNvbGUubG9nKChuZXcgd2luZG93LkVycm9yKS5zdGFjaykpLHRoaXM7dmFyIHQsbj1jJiZjLmRpc2FibGVkLGQ9bnVsbCxwPW51bGwsbT1udWxsLGY9bnVsbCxoPW51bGwsYj10aGlzLGc9bnVsbCxpPW51bGwsdj0iSU5QVVQiPT09dGhpc1swXS50YWdOYW1lJiYhYy50cmVhdEFzVGV4dGFyZWEseT1bXSx3PWZ1bmN0aW9uKGUpe3ZhciB0O2UmJih2PyhiLnZhbCgiIiksYy5zaW5nbGUmJmIuaGlkZSgpLG8oZSwhMCkpOihjLnRyYW5zZm9ybUNvbXBsZXRlJiYoZT1jLnRyYW5zZm9ybUNvbXBsZXRlKGUpKSxlJiYodD0odD1iLnZhbCgpKS5zdWJzdHJpbmcoMCxmKSsoYy5rZXl8fCIiKStlKyIgIit0LnN1YnN0cmluZyhoKzEsdC5sZW5ndGgpLGIudmFsKHQpLCgwLFMuc2V0Q2FyZXRQb3NpdGlvbikoYlswXSxmKzErZS5sZW5ndGgpLGMmJmMuYWZ0ZXJDb21wbGV0ZSYmYy5hZnRlckNvbXBsZXRlKHQpKSkpLGsoKX07diYmKHQ9TWF0aC5tYXgodGhpcy53aWR0aCgpLDIwMCksYy51cGRhdGVEYXRhPygoZD10aGlzLnBhcmVudCgpKS5maW5kKCIuaXRlbSIpLnJlbW92ZSgpLGIuc2hvdygpKTooZD10aGlzLndyYXAoIjxkaXYgY2xhc3M9J2FjLXdyYXAgY2xlYXJmaXgiKyhuPyIgZGlzYWJsZWQiOiIiKSsiJy8+IikucGFyZW50KCksYy5mdWxsV2lkdGhXcmFwfHxkLndpZHRoKHQpKSxjLnNpbmdsZSYmIWMud2lkdGg/dGhpcy5hdHRyKCJjbGFzcyIsdGhpcy5hdHRyKCJjbGFzcyIpKyIgZnVsbHdpZHRoLWlucHV0Iik6Yy53aWR0aCYmdGhpcy5jc3MoIndpZHRoIixjLndpZHRoKSx0aGlzLmF0dHIoIm5hbWUiLGMudXBkYXRlRGF0YT90aGlzLmF0dHIoIm5hbWUiKTp0aGlzLmF0dHIoIm5hbWUiKSsiLXJlbmFtZWQiKSx0aGlzLnZhbCgpLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbihlKXsiIiE9PWUmJihjLnJldmVyc2VUcmFuc2Zvcm0mJihlPWMucmV2ZXJzZVRyYW5zZm9ybShlKSksYy5zaW5nbGUmJmIuaGlkZSgpLG8oZSwhMSkpfSksYy5pdGVtcyYmYy5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Muc2luZ2xlJiZiLmhpZGUoKSxvKGUsITApfSksdGhpcy52YWwoIiIpLGY9MCxkLmNsaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZm9jdXMoKSwhMH0pKTt2YXIgdT0tMzIseD0ic2tpcCIscz1iLmRhdGEoImNsb3NlQXV0b2NvbXBsZXRlIik7cmV0dXJuIGIuZGF0YSgiY2xvc2VBdXRvY29tcGxldGUiLGZ1bmN0aW9uKCl7cyYmcygpLGsoKX0pLCQod2luZG93KS5vbigiY2xpY2suYXV0b2NvbXBsZXRlIixrKSwkKHRoaXMpLm9uKCJjbGljay5hdXRvY29tcGxldGUiLGspLCQodGhpcykub24oInBhc3RlLmF1dG9jb21wbGV0ZSIsZnVuY3Rpb24oKXsoMCxPLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBiLnRyaWdnZXIoImtleWRvd24iKX0sNTApfSksJCh0aGlzKS5vbigia2V5dXAuYXV0b2NvbXBsZXRlIixmdW5jdGlvbihlKXtpZigtMSE9PVtJLmVzYyxJLmVudGVyXS5pbmRleE9mKGUud2hpY2gpKXJldHVybiEwO3ZhciB0LG4saT0oMCxTLmNhcmV0UG9zaXRpb24pKGJbMF0pLHM9YlswXS52YWx1ZVtpLTFdO2Mua2V5JiYoIWMub25LZXlVcHx8cz09PWMua2V5fHwodD1jLm9uS2V5VXAoYi52YWwoKSxpKSkmJihmPWktdFswXS5sZW5ndGgsaD1mK3RbMF0ubGVuZ3RoLTEsVChqKHRbMF0uc3Vic3RyaW5nKDEsdFswXS5sZW5ndGgpLGMpKSkpLG51bGw9PT1mJiYwPGk/cz09PWMua2V5JiYobj1iLnZhbCgpLmNoYXJBdChpLTIpLCFFKCl8fG4mJiFELnRlc3Qobil8fChmPWg9aS0xLFQoaigiIixjKSkpKTpudWxsIT09ZiYmVChqKGIudmFsKCkuc3Vic3RyaW5nKGYrKGMua2V5PzE6MCksaSksYykpfSksJCh0aGlzKS5vbigia2V5ZG93bi5hdXRvY29tcGxldGUiLGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG8scixhLGwsdT12b2lkIDA7aWYoZS5jdHJsS2V5fHxlLmFsdEtleXx8ZS5tZXRhS2V5KXJldHVybiEwO2lmKGMuYWxsb3dBbnkmJigoMCxPLmNhbmNlbCkoTCksTD0oMCxPLmxhdGVyKShmdW5jdGlvbigpezA9PT15Lmxlbmd0aCYmeS5wdXNoKCIiKSxfLmlzU3RyaW5nKHlbMF0pJiYwPGIudmFsKCkubGVuZ3RoJiYoeS5wb3AoKSx5LnB1c2goYi52YWwoKSksYy5vbkNoYW5nZUl0ZW1zJiZjLm9uQ2hhbmdlSXRlbXMoeSkpfSw1MCkpLGMua2V5fHwoZj0wKSxlLndoaWNoIT09SS5zaGlmdCl7aWYobnVsbD09PWYmJmUud2hpY2g9PT1JLmJhY2tTcGFjZSYmYy5rZXkpZm9yKHQ9KDAsUy5jYXJldFBvc2l0aW9uKShiWzBdKSxpPS0tdCxvPSEwO28mJjA8PXQ7KXtpZigtLXQsKHM9YlswXS52YWx1ZVt0XSk9PT1jLmtleSYmKHM9YlswXS52YWx1ZVt0LTFdLEUoe2JhY2tTcGFjZTohMH0pJiYoIXN8fEQudGVzdChzKSkpKXJldHVybiBmPXQsdT1oPWksVChqKHI9YlswXS52YWx1ZS5zdWJzdHJpbmcodCsxLGkpLGMpKSwhMDtvPS9bYS16QS1aXC4tXS8udGVzdChzKX1pZihlLndoaWNoPT09SS5lc2MpcmV0dXJuIG51bGw9PT1nfHwoaygpLCExKTtpZihudWxsIT09Zil7aWYodT0oMCxTLmNhcmV0UG9zaXRpb24pKGJbMF0pLGUud2hpY2g9PT1JLnJpZ2h0QXJyb3cmJiIgIj09PWJbMF0udmFsdWVbdV0pcmV0dXJuIGsoKSwhMDtpZih1PD1mJiZjLmtleSlyZXR1cm4gaygpLCEwO3N3aXRjaChlLndoaWNoKXtjYXNlIEkuZW50ZXI6Y2FzZSBJLnRhYjpyZXR1cm4gcD8hKDA8PW0mJihsPXBbbV0pKXx8KHcobCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6ITA7Y2FzZSBJLnVwQXJyb3c6cmV0dXJuLS1tPDAmJihtPTApLFAoKSwhMTtjYXNlIEkuZG93bkFycm93OnJldHVybihhPXAubGVuZ3RoKTw9KG0rPTEpJiYobT1hLTEpLG08MCYmKG09MCksUCgpLCExO2Nhc2UgSS5iYWNrU3BhY2U6cmV0dXJuKGg9dSwtLXU8MCk/KGsoKSx2JiYobj1kLmZpbmQoImE6bGFzdCIpKSYmbi5jbGljaygpLCEwKToocj1iLnZhbCgpLnN1YnN0cmluZyhmKyhjLmtleT8xOjApLHUpLGY9PT11JiZyPT09Yy5rZXkmJmsoKSxUKGoocixjKSksITApO2RlZmF1bHQ6cmV0dXJuIGg9dSwhMH19fX0pLHRoaXN9ZnVuY3Rpb24gaygpe2cmJmcuaGlkZSgpLnJlbW92ZSgpLGk9cD1mPWc9bnVsbH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49ZTtjLnRyYW5zZm9ybUNvbXBsZXRlJiYobj1jLnRyYW5zZm9ybUNvbXBsZXRlKG4pKSxjLnNpbmdsZSYmKHk9W10pO3ZhciBpPShfLmlzQXJyYXkobik/bjpbbnx8ZV0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD0kKCI8ZGl2IGNsYXNzPSdpdGVtJz48c3Bhbj4iK2UrIjxhIGNsYXNzPSdyZW1vdmUnIGhyZWY+IisoMCxyLmljb25IVE1MKSgidGltZXMiKSsiPC9hPjwvc3Bhbj48L2Rpdj4iKSxuPWIucGFyZW50KCkuZmluZCgiLml0ZW06bGFzdCIpO3JldHVybiAwPT09bi5sZW5ndGg/Yi5wYXJlbnQoKS5wcmVwZW5kKHQpOm4uYWZ0ZXIodCkseS5wdXNoKGUpLHRbMF19KTtjLm9uQ2hhbmdlSXRlbXMmJnQmJmMub25DaGFuZ2VJdGVtcyh5KSwkKGkpLmZpbmQoImEiKS5jbGljayhmdW5jdGlvbigpe3JldHVybiBrKCkseS5zcGxpY2UoJC5pbkFycmF5KG4seSksMSksJCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5yZW1vdmUoKSxjLnNpbmdsZSYmYi5zaG93KCksYy5vbkNoYW5nZUl0ZW1zJiZjLm9uQ2hhbmdlSXRlbXMoeSksITF9KX1mdW5jdGlvbiBQKCl7dmFyIGU9Zy5maW5kKCJsaSBhIik7cmV0dXJuIGUucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksJChlW21dKS5hZGRDbGFzcygic2VsZWN0ZWQiKX1mdW5jdGlvbiBqKGUsdCl7cmV0dXJuIGk9PT1lP3g6MCE9PShpPWUpLmxlbmd0aCYmMD09PWUudHJpbSgpLmxlbmd0aD8oaygpLG51bGwpOnQuZGF0YVNvdXJjZShlKX1mdW5jdGlvbiBUKGUpe2lmKG51bGwhPT1mJiZlIT09eCl7aWYoZSYmZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgZS50aGVuKXJldHVybiBnJiZnLmhpZGUoKS5yZW1vdmUoKSx2b2lkIGUudGhlbihUKTt2YXIgdCxuLGkscyxvLHIsYSxsO2UhPT1NJiYoKHA9ZSkmJjAhPT1lLmxlbmd0aD8oZyYmZy5oaWRlKCkucmVtb3ZlKCksMCE9PXAubGVuZ3RoJiYodD0oZz0kKGMudGVtcGxhdGUoe29wdGlvbnM6cH0pKSkuZmluZCgidWwiKSxtPTAsUCgpLHQuZmluZCgibGkiKS5jbGljayhmdW5jdGlvbigpe3JldHVybiBtPXQuZmluZCgibGkiKS5pbmRleCh0aGlzKSx3KHBbbV0pLCExfSksbj1udWxsLGk9cz0wLHY/KG49e2xlZnQ6MCx0b3A6MH0scz11LGk9MCk6KG49Yi5jYXJldFBvc2l0aW9uKHtwb3M6ZisxfSksaT0xMCxjLnRyZWF0QXNUZXh0YXJlYSYmKHM9LTMyKSksZy5jc3Moe2xlZnQ6Ii0xMDAwcHgifSksYy5hcHBlbmRTZWxlY3Rvcj9iLnBhcmVudHMoYy5hcHBlbmRTZWxlY3RvcikuYXBwZW5kKGcpOmIucGFyZW50KCkuYXBwZW5kKGcpLHZ8fGMudHJlYXRBc1RleHRhcmVhfHwocz1nLmhlaWdodCgpLHdpbmRvdy5pbm5lckhlaWdodC1iLm91dGVySGVpZ2h0KCktJCgiaGVhZGVyLmQtaGVhZGVyIikuaW5uZXJIZWlnaHQoKTxzJiZzPm4udG9wJiYocz11KSxDLmRlZmF1bHQuY3VycmVudFByb3AoIm1vYmlsZVZpZXciKSYmKGIuaGVpZ2h0KCkvMj49bi50b3AmJihzPXUpLGIud2lkdGgoKS8yPD1uLmxlZnQmJihpPS1nLndpZHRoKCkpKSksbz1iLnBvc2l0aW9uKCkscj1wYXJzZUludChiLmNzcygiYm9yZGVyLXRvcC13aWR0aCIpLDEwKXx8MCwoYT1vLmxlZnQrbi5sZWZ0K2kpPDAmJihhPTApLGw9Yi5vZmZzZXQoKS50b3Asby50b3Arbi50b3Arci1zK2w8MzAmJihzPXUpLGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpvLnRvcCtuLnRvcC1zK3IrInB4IixsZWZ0OmErInB4In0pKSk6aygpKX19ZnVuY3Rpb24gRShlKXtyZXR1cm4hYy50cmlnZ2VyUnVsZXx8Yy50cmlnZ2VyUnVsZShiWzBdLGUpfX07dmFyIE09ZS5DQU5DRUxMRURfU1RBVFVTPSJfX0NBTkNFTExFRCIsRD0vW1xzXHRcW1x7XChcL10vLEk9e2JhY2tTcGFjZTo4LHRhYjo5LGVudGVyOjEzLHNoaWZ0OjE2LGN0cmw6MTcsYWx0OjE4LGVzYzoyNyxzcGFjZTozMixsZWZ0V2luZG93czo5MSxyaWdodFdpbmRvd3M6OTIscGFnZVVwOjMzLHBhZ2VEb3duOjM0LGVuZDozNSxob21lOjM2LGxlZnRBcnJvdzozNyx1cEFycm93OjM4LHJpZ2h0QXJyb3c6MzksZG93bkFycm93OjQwLGluc2VydDo0NSxkZWxldGVLZXk6NDYsemVybzo0OCxhOjY1LHo6OTB9LEw9dm9pZCAwfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2FmdGVyLXRyYW5zaXRpb24iLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuICQoZSkub24ocyxmdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWUuY3VycmVudFRhcmdldClyZXR1cm4gdChlKX0pfTt2YXIgdCxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9e3dlYmtpdDoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96OiJ0cmFuc2l0aW9uZW5kIixPOiJvVHJhbnNpdGlvbkVuZCIsbXM6Ik1TVHJhbnNpdGlvbkVuZCJ9LHM9KHQ9InRyYW5zaXRpb25lbmQiLE9iamVjdC5rZXlzKGkpLnNvbWUoZnVuY3Rpb24oZSl7aWYoZSsiVHJhbnNpdGlvblByb3BlcnR5ImluIG4uc3R5bGUpcmV0dXJuIHQ9aVtlXSwhMH0pLHQpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3NhZmFyaS1oYWNrcyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLGMsZCxwKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBtPSEoZS5pc1dvcmthcm91bmRBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gbX0pO2Z1bmN0aW9uIGYoZSl7dmFyIGwsdCxuLGkscyxvLHIsYTtmdW5jdGlvbiB1KGUsdCl7JChlKS5kYXRhKCJsaXN0ZW5pbmciKXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdCksJChlKS5kYXRhKCJsaXN0ZW5pbmciLCEwKSl9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJjYXBhYmlsaXRpZXM6bWFpbiIpLmlzSU9TJiYhKDAscC5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpJiYobD1lWzBdLHQ9bC5zdHlsZS5oZWlnaHQsbj0wLGk9bnVsbCxmLmJsdXI9ZnVuY3Rpb24oZSl7bSYmKCQoImJvZHkiKS5yZW1vdmVDbGFzcygiaW9zLXNhZmFyaS1jb21wb3Nlci1oYWNrcyIpLCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfHwobC5zdHlsZS5oZWlnaHQ9dCwoMCxjLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiAkKGwpLnJlbW92ZUNsYXNzKCJuby10cmFuc2l0aW9uIil9LDUwMCkpLCQod2luZG93KS5zY3JvbGxUb3AobiksZSYmZS50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIscyksbT0hMSl9LHM9KDAsZC5kZWZhdWx0KShmdW5jdGlvbihlKXtpJiYoImhpZGRlbiI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fCQoaSkuaGFzQ2xhc3MoInNlbGVjdC1raXQtaGVhZGVyIil8fCQoaSkuY2xvc2VzdCgiLmF1dG9jb21wbGV0ZSIpLmxlbmd0aHx8InRleHRhcmVhIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fFsic3BhbiIsInN2ZyIsImJ1dHRvbiJdLmluY2x1ZGVzKGkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpfHxmLmJsdXIoZSl9LDI1MCksbz1mdW5jdGlvbihhKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHMpLGUuZmluZCgiLnNlbGVjdC1raXQuaXMtZXhwYW5kZWQgPiBidXR0b24iKS50cmlnZ2VyKCJjbGljayIpLGUuZmluZCgiLnNlbGVjdC1raXQgPiBidXR0b24uaXMtZm9jdXNlZCIpLnJlbW92ZUNsYXNzKCJpcy1mb2N1c2VkIiksMDwkKHdpbmRvdykuc2Nyb2xsVG9wKCkmJihuPSQod2luZG93KS5zY3JvbGxUb3AoKSksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyO2lmKCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpJiZ3aW5kb3cuaW5uZXJIZWlnaHQtd2luZG93LnZpc3VhbFZpZXdwb3J0LmhlaWdodDw3NSlyZXR1cm47IjBweCIhPT1sLnN0eWxlLnRvcD90aGlzLmRpc2FibGVkfHwoJCgiYm9keSIpLmFkZENsYXNzKCJpb3Mtc2FmYXJpLWNvbXBvc2VyLWhhY2tzIiksJCh3aW5kb3cpLnNjcm9sbFRvcCgwKSxlPTIwLHQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXskKHdpbmRvdykuc2Nyb2xsVG9wKDApLDA9PWUtLSYmY2xlYXJJbnRlcnZhbCh0KX0sMTApLCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfHwoaT13aW5kb3cuaW5uZXJIZWlnaHQtMjcwLHM9d2luZG93LmlubmVySGVpZ2h0PndpbmRvdy5pbm5lcldpZHRoLG89NDA8KHM/d2luZG93LnNjcmVlbi5oZWlnaHQ6d2luZG93LnNjcmVlbi53aWR0aCktd2luZG93LmlubmVySGVpZ2h0LHM/KDU2OD09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT0yNzApLDY2Nz09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzI5NTozMjUpLDczNj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzM1MzozODMpLDgxMj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzM0MDozNzApLDg5Nj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzQxMDo0NDApLDkyMDx3aW5kb3cuaW5uZXJIZWlnaHQmJihpLT00NSkpOjY2NTx3aW5kb3cuaW5uZXJIZWlnaHQmJihpLT0xMjgpLG49TWF0aC5tYXgoaSwyNzApLGwuc3R5bGUuaGVpZ2h0PW4rInB4IiwkKGwpLmFkZENsYXNzKCJuby10cmFuc2l0aW9uIikpLGEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCksbT0hMCk6dGhpcyE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihhLnByZXZlbnREZWZhdWx0KCksdGhpcy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoLTIwMHB4KSIsdGhpcy5mb2N1cygpLHI9dGhpcyxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5zdHlsZS50cmFuc2Zvcm09Im5vbmUifSwzMCkpfSwzNTApfSxyPWZ1bmN0aW9uKGUpe2UmJmUudGFyZ2V0JiYoaT1lLnRhcmdldCl9LGE9KDAsZC5kZWZhdWx0KShmdW5jdGlvbigpe3UobCxyKSxlLmZpbmQoImlucHV0W3R5cGU9dGV4dF0sdGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7dSh0aGlzLG8pfSl9LDEwMCksbmV3IE11dGF0aW9uT2JzZXJ2ZXIoYSkub2JzZXJ2ZShsLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiExLGNoYXJhY3RlckRhdGE6ITF9KSl9ZS5kZWZhdWx0PWZ9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9lbWFpbC10ZW1wbGF0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2Jhc2VQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIi9hZG1pbi9jdXN0b21pemUvIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL2dyb3VwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YXBwZW5kUXVlcnlQYXJhbXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0LCIuanNvbiIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvbm90aWZpY2F0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2FjaGU6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Bvc3QtcmVwbHktaGlzdG9yeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHMsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7dmFyIGk9RGlzY291cnNlLlNpdGVTZXR0aW5ncy5tYXhfcmVwbHlfaGlzdG9yeTtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIituLnBvc3RJZCsiL3JlcGx5LWhpc3Rvcnk/bWF4X3JlcGxpZXM9IitpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybntwb3N0X3JlcGx5X2hpc3RvcmllczplfX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvcG9zdC1yZXBseSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLGksdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL3Bvc3RzLyIrbi5wb3N0SWQrIi9yZXBsaWVzIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm57cG9zdF9yZXBsaWVzOmV9fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHMsbyxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1vLmRlZmF1bHQuZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0LG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJue3Bvc3Q6ZX19KX0sY3JlYXRlUmVjb3JkOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0oMCxyLnVuZGVyc2NvcmUpKHQpO3JldHVybiBuLm5lc3RlZF9wb3N0PSEwLCgwLHMuYWpheCkodGhpcy5wYXRoRm9yKGUsdCkse21ldGhvZDoiUE9TVCIsZGF0YTpufSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8uUmVzdWx0KGVbaV0sZSl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2hhc2giLCJAZW1iZXIvc3RyaW5nIl0sZnVuY3Rpb24oZSx0LHIsaSxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuUmVzdWx0PWw7dmFyIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LG49WyJwbHVnaW4iLCJ0aGVtZSIsImVtYmVkZGFibGUtaG9zdCIsIndlYi1ob29rIiwid2ViLWhvb2stZXZlbnQiLCJmbGFnZ2VkLXRvcGljIl07ZnVuY3Rpb24gbChlLHQpe3RoaXMucGF5bG9hZD1lLHRoaXMucmVzcG9uc2VKc29uPXQsdGhpcy50YXJnZXQ9bnVsbH1mdW5jdGlvbiBvKGUpe2lmKDQwND09PWUuc3RhdHVzKXRocm93IG5ldyBFcnJvcigiNDA0OiAiK2UucmVzcG9uc2VUZXh0KTt0aHJvdyBlfWUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzdG9yYWdlS2V5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbiYmbi5jYWNoZUtleT9uLmNhY2hlS2V5OmUrIl8iK01hdGguYWJzKCgwLGkuaGFzaFN0cmluZykoSlNPTi5zdHJpbmdpZnkodCkpKX0sYmFzZVBhdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4tMSE9PW4uaW5kZXhPZih0LnJlcGxhY2UoIl8iLCItIikpPyIvYWRtaW4vIjoiLyJ9LGFwcGVuZFF1ZXJ5UGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXtpZih0KXtpZigib2JqZWN0IiE9PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnModCkpKXJldHVybiBlKyIvIitlbmNvZGVVUklDb21wb25lbnQodCkrKG58fCIiKTt2YXIgaT1PYmplY3Qua2V5cyh0KS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIXRbZV19KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0W2VdKX0pO2lmKGkubGVuZ3RoKXJldHVybiIiK2UrKG58fCIiKSsiPyIraS5qb2luKCImIil9cmV0dXJuIGV9LHBhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuYmFzZVBhdGgoZSx0LG4pKygwLGEudW5kZXJzY29yZSkoZS5wbHVyYWxpemUodGhpcy5hcGlOYW1lRm9yKHQpKSk7cmV0dXJuIHRoaXMuYXBwZW5kUXVlcnlQYXJhbXMoaSxuKX0sYXBpTmFtZUZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sZmluZEFsbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pKS5jYXRjaChvKX0sZmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pKS5jYXRjaChvKX0sZmluZFN0YWxlOmZ1bmN0aW9uKGUsdCxuLGkpe2lmKHRoaXMuY2FjaGVkKXJldHVybiB0aGlzLmNhY2hlZFt0aGlzLnN0b3JhZ2VLZXkodCxuLGkpXX0sY2FjaGVGaW5kOmZ1bmN0aW9uKGUsdCxuLGkscyl7dGhpcy5jYWNoZWQ9dGhpcy5jYWNoZWR8fHt9LHRoaXMuY2FjaGVkW3RoaXMuc3RvcmFnZUtleSh0LG4saSldPXN9LGpzb25Nb2RlOiExLGdldFBheWxvYWQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj17bWV0aG9kOmUsZGF0YTp0fTtyZXR1cm4gdGhpcy5qc29uTW9kZSYmKG4uY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24iLG4uZGF0YT1KU09OLnN0cmluZ2lmeSh0KSksbn0sdXBkYXRlOmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPXt9LG89KDAsYS51bmRlcnNjb3JlKSh0aGlzLmFwaU5hbWVGb3IodCkpO3JldHVybiBzW29dPWksKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pLHRoaXMuZ2V0UGF5bG9hZCgiUFVUIixzKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGwoZVtvXSxlKX0pfSxjcmVhdGVSZWNvcmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXt9LHM9KDAsYS51bmRlcnNjb3JlKSh0aGlzLmFwaU5hbWVGb3IodCkpO3JldHVybiBpW3NdPW4sKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0KSx0aGlzLmdldFBheWxvYWQoIlBPU1QiLGkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgbChlW3NdLGUpfSl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLHIuYWpheCkodGhpcy5wYXRoRm9yKGUsdCxuLmdldCgiaWQiKSkse21ldGhvZDoiREVMRVRFIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmV2aWV3YWJsZS1leHBsYW5hdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2pzb25Nb2RlOiEwLHBhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvcmV2aWV3LyIrbisiL2V4cGxhaW4uanNvbiJ9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9yZXZpZXdhYmxlLXNldHRpbmdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGF0aEZvcjpmdW5jdGlvbigpe3JldHVybiIvcmV2aWV3L3NldHRpbmdzIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jldmlld2FibGUtdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwYXRoRm9yOmZ1bmN0aW9uKCl7cmV0dXJuIi9yZXZpZXcvdG9waWNzIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jldmlld2FibGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtqc29uTW9kZTohMCxwYXRoRm9yOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5hcHBlbmRRdWVyeVBhcmFtcygiL3JldmlldyIsbil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy90YWctaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvdGFnLyIrbisiL2luZm8ifX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdGFnLW5vdGlmaWNhdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvdGFnLyIrbisiL25vdGlmaWNhdGlvbnMifX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdG9waWMtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSxvLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoaSxzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZSxuLHQ9RGlzY291cnNlLmdldFVSTCgiLyIpK2krIi5qc29uIjtyZXR1cm4gcyYmKGU9T2JqZWN0LmtleXMocyksbj1bXSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZW5jb2RlVVJJKHNbZV0pO3ZvaWQgMCE9PXQmJm4ucHVzaChlKyI9Iit0KX0pLDA8bi5sZW5ndGgmJih0Kz0iPyIrbi5qb2luKCImIikpKSwoMCxvLmFqYXgpKHQpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5maW5kZXJGb3I9YSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7dmFyIGk9bi5maWx0ZXIscz1uLnBhcmFtcztyZXR1cm4gci5kZWZhdWx0LmdldEFuZFJlbW92ZSgidG9waWNfbGlzdF8iK2ksYShpLHMpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcj1pLGUucGFyYW1zPXMsZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSxpLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLnNpbWlsYXI/KDAsaS5hamF4KSgiL3RvcGljcy9zaW1pbGFyX3RvIix7ZGF0YTpuLnNpbWlsYXJ9KTp0aGlzLl9zdXBlcihlLHQsbil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTUFYX01FU1NBR0VfTEVOR1RIPXZvaWQgMDtlLk1BWF9NRVNTQUdFX0xFTkdUSD01MDA7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe25vdEN1c3RvbUZsYWc6KDAsdC5ub3QpKCJpc19jdXN0b21fZmxhZyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbW9kZWxzL2FjdGlvbi1zdW1tYXJ5IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQscixuLGkscyxvLGEsbCx1LGMsZCxwLG0sZixoLGIsZyx2KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgXyx3LHgsayxQLGosVCxFLE8sUyxDO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTT1vLmRlZmF1bHQuZXh0ZW5kKChfPSgwLHQuZGVmYXVsdCkoInVybCIpLHc9KDAsdC5kZWZhdWx0KSgibmFtZSIsInVzZXJuYW1lIikseD0oMCx0LmRlZmF1bHQpKCJmaXJzdFBvc3QiLCJkZWxldGVkX2J5IiwidG9waWMuZGVsZXRlZF9ieSIpLGs9KDAsdC5kZWZhdWx0KSgiZmlyc3RQb3N0IiwiZGVsZXRlZF9hdCIsInRvcGljLmRlbGV0ZWRfYXQiKSxQPSgwLHQuZGVmYXVsdCkoInBvc3RfbnVtYmVyIiwidG9waWNfaWQiLCJ0b3BpYy5zbHVnIiksaj0oMCx0LmRlZmF1bHQpKCJwb3N0X251bWJlciIsInVybCIpLFQ9KDAsdC5kZWZhdWx0KSgidXNlcm5hbWUiKSxFPSgwLHQuZGVmYXVsdCkoImxpbmtfY291bnRzLkBlYWNoLmludGVybmFsIiksTz0oMCx0LmRlZmF1bHQpKCJhY3Rpb25zX3N1bW1hcnkuQGVhY2guY2FuX2FjdCIpLHkoUz17c2l0ZVNldHRpbmdzOigwLHIuY29tcHV0ZWQpKHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLlNpdGVTZXR0aW5nc30sc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3N9fSksc2hhcmVVcmw6ZnVuY3Rpb24oZSl7dmFyIHQ9Zy5kZWZhdWx0LmN1cnJlbnQoKSxuPXQ/Ij91PSIrdC51c2VybmFtZV9sb3dlcjoiIjtyZXR1cm4gdGhpcy5maXJzdFBvc3Q/dGhpcy5nZXQoInRvcGljLnVybCIpK246ZStufSxuZXdfdXNlcjooMCxpLmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDApLGZpcnN0UG9zdDooMCxpLmVxdWFsKSgicG9zdF9udW1iZXIiLDEpLGRlbGV0ZWRWaWFUb3BpYzooMCxpLmFuZCkoImZpcnN0UG9zdCIsInRvcGljLmRlbGV0ZWRfYXQiKSxkZWxldGVkOigwLGkub3IpKCJkZWxldGVkX2F0IiwiZGVsZXRlZFZpYVRvcGljIiksbm90RGVsZXRlZDooMCxpLm5vdCkoImRlbGV0ZWQiKSxzaG93TmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZlIT09dCYmRGlzY291cnNlLlNpdGVTZXR0aW5ncy5kaXNwbGF5X25hbWVfb25fcG9zdHN9LHBvc3REZWxldGVkQnk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0scG9zdERlbGV0ZWRBdDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU/bjp0fSx1cmw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGQucG9zdFVybCkobnx8dGhpcy50b3BpY19zbHVnLHR8fHRoaXMuZ2V0KCJ0b3BpYy5pZCIpLGUpfSx1cmxXaXRoTnVtYmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDE9PT1lP3QrIi8xIjp0fSx1c2VybmFtZVVybDptLnVzZXJQYXRoLHRvcGljT3duZXI6KDAsdS5wcm9wZXJ0eUVxdWFsKSgidG9waWMuZGV0YWlscy5jcmVhdGVkX2J5LmlkIiwidXNlcl9pZCIpLHVwZGF0ZVBvc3RGaWVsZDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT17fTtyZXR1cm4gaVtlXT10LCgwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi8iK2Use3R5cGU6IlBVVCIsZGF0YTppfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLnNldChlLHQpfSkuY2F0Y2goYS5wb3B1cEFqYXhFcnJvcil9LGludGVybmFsTGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4oMCxuLmlzRW1wdHkpKHRoaXMubGlua19jb3VudHMpP251bGw6dGhpcy5saW5rX2NvdW50cy5maWx0ZXJCeSgiaW50ZXJuYWwiKS5maWx0ZXJCeSgidGl0bGUiKX0sZmxhZ3NBdmFpbGFibGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnNpdGU/dGhpcy5zaXRlLmZsYWdUeXBlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0KCJhY3Rpb25CeU5hbWUuIitlLm5hbWVfa2V5KyIuY2FuX2FjdCIpfSk6W119LGFmdGVyVXBkYXRlOmZ1bmN0aW9uKGUpe2UuY2F0ZWdvcnkmJnRoaXMuc2l0ZS51cGRhdGVDYXRlZ29yeShlLmNhdGVnb3J5KX0sdXBkYXRlUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybntwb3N0OntyYXc6dGhpcy5yYXcsZWRpdF9yZWFzb246dGhpcy5lZGl0UmVhc29ufSxpbWFnZV9zaXplczp0aGlzLmltYWdlU2l6ZXN9fSxjcmVhdGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRQcm9wZXJ0aWVzKGYuZGVmYXVsdC5zZXJpYWxpemVkRmllbGRzRm9yQ3JlYXRlKCkpO3QucmVwbHlfdG9fcG9zdF9udW1iZXI9dGhpcy5yZXBseV90b19wb3N0X251bWJlcix0LmltYWdlX3NpemVzPXRoaXMuaW1hZ2VTaXplczt2YXIgbj10aGlzLm1ldGFEYXRhO3JldHVybiBuJiYodC5tZXRhX2RhdGE9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5tZXRhX2RhdGFbZV09bltlXX0pKSx0fSxleHBhbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi9leHBhbmQtZW1iZWQiKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb29rZWQiLCc8c2VjdGlvbiBjbGFzcz0iZXhwYW5kZWQtZW1iZWQiPicrZS5jb29rZWQrIjwvc2VjdGlvbj4iKX0pfSxyZWNvdmVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPXRoaXMuZ2V0UHJvcGVydGllcygiZGVsZXRlZF9hdCIsImRlbGV0ZWRfYnkiLCJ1c2VyX2RlbGV0ZWQiLCJjYW5fZGVsZXRlIik7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCx1c2VyX2RlbGV0ZWQ6ITEsY2FuX2RlbGV0ZTohMX0pLCgwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi9yZWNvdmVyIix7dHlwZToiUFVUIixjYWNoZTohMX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtjb29rZWQ6ZS5jb29rZWQscmF3OmUucmF3LHVzZXJfZGVsZXRlZDohMSxjYW5fZGVsZXRlOiEwLHZlcnNpb246ZS52ZXJzaW9ufSl9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxhLnBvcHVwQWpheEVycm9yKShlKSx0LnNldFByb3BlcnRpZXMobil9KX0sc2V0RGVsZXRlZFN0YXRlOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcyxpPXZvaWQgMDtyZXR1cm4gdGhpcy5zZXQoIm9sZENvb2tlZCIsdGhpcy5jb29rZWQpLGUuc3RhZmZ8fDA9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmRlbGV0ZV9yZW1vdmVkX3Bvc3RzX2FmdGVyP3RoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpuZXcgRGF0ZSxkZWxldGVkX2J5OmUsY2FuX2RlbGV0ZTohMSxjYW5fcmVjb3ZlcjohMH0pOih0PTE9PT10aGlzLnBvc3RfbnVtYmVyPyJ0b3BpYy5kZWxldGVkX2J5X2F1dGhvciI6InBvc3QuZGVsZXRlZF9ieV9hdXRob3IiLGk9KDAscC5jb29rQXN5bmMpKEkxOG4udCh0LHtjb3VudDpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmRlbGV0ZV9yZW1vdmVkX3Bvc3RzX2FmdGVyfSkpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHtjb29rZWQ6ZSxjYW5fZGVsZXRlOiExLHZlcnNpb246bi52ZXJzaW9uKzEsY2FuX3JlY292ZXI6ITAsY2FuX2VkaXQ6ITEsdXNlcl9kZWxldGVkOiEwfSl9KSksaXx8aC5Qcm9taXNlLnJlc29sdmUoKX0sdW5kb0RlbGV0ZVN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRDb29rZWQmJnRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCxjb29rZWQ6dGhpcy5vbGRDb29rZWQsdmVyc2lvbjp0aGlzLnZlcnNpb24tMSxjYW5fcmVjb3ZlcjohMSxjYW5fZGVsZXRlOiEwLHVzZXJfZGVsZXRlZDohMX0pfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0RGVsZXRlZFN0YXRlKGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0LmlkLHtkYXRhOntjb250ZXh0OndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0sdHlwZToiREVMRVRFIn0pfSl9LHVwZGF0ZUZyb21Qb3N0OmZ1bmN0aW9uKHMpe3ZhciBvPXRoaXM7T2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zW2VdLG49KG49b1tlXSl8fG51bGwsaT0hMTsiZnVuY3Rpb24iIT10eXBlb2YodD10fHxudWxsKSYmbiE9PXQmJigicmVwbHlfdG9fdXNlciI9PT1lJiZ0JiZuJiYoaT10LnVzZXJuYW1lPT09bi51c2VybmFtZXx8KDAsci5nZXQpKHQsInVzZXJuYW1lIik9PT0oMCxyLmdldCkobiwidXNlcm5hbWUiKSksaXx8by5zZXQoZSx0KSl9KX0sZXhwYW5kSGlkZGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvY29va2VkLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0UHJvcGVydGllcyh7Y29va2VkOmUuY29va2VkLGNvb2tlZF9oaWRkZW46ITF9KX0pfSxyZWJha2U6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvcmViYWtlIix7dHlwZToiUFVUIn0pfSx1bmhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvdW5oaWRlIix7dHlwZToiUFVUIn0pfSx0b2dnbGVCb29rbWFyazpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj12b2lkIDA7cmV0dXJuIHRoaXMudG9nZ2xlUHJvcGVydHkoImJvb2ttYXJrZWQiKSx0aGlzLmJvb2ttYXJrZWQmJiF0aGlzLmdldCgidG9waWMuYm9va21hcmtlZCIpJiYodGhpcy5zZXQoInRvcGljLmJvb2ttYXJrZWQiLCEwKSxuPSEwKSxNLnVwZGF0ZUJvb2ttYXJrKHRoaXMuaWQsdGhpcy5ib29rbWFya2VkKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJ0b3BpYy5ib29rbWFya2VkIixlLnRvcGljX2Jvb2ttYXJrZWQpLHQuYXBwRXZlbnRzLnRyaWdnZXIoInBhZ2U6Ym9va21hcmstcG9zdC10b2dnbGVkIix0KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Rocm93IHQudG9nZ2xlUHJvcGVydHkoImJvb2ttYXJrZWQiKSxuJiZ0LnNldCgidG9waWMuYm9va21hcmtlZCIsITEpLG5ldyBFcnJvcihlKX0pfSx0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy50b2dnbGVQcm9wZXJ0eSgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiksIXRoaXMuYm9va21hcmtlZF93aXRoX3JlbWluZGVyKXJldHVybiB0aGlzLnNldCgiYm9va21hcmtfcmVtaW5kZXJfYXQiLG51bGwpLE0uZGVzdHJveUJvb2ttYXJrKHRoaXMuaWQpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRvcGljLmJvb2ttYXJrZWQiLGUudG9waWNfYm9va21hcmtlZCksdC5hcHBFdmVudHMudHJpZ2dlcigicGFnZTpib29rbWFyay1wb3N0LXRvZ2dsZWQiLHQpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dGhyb3cgdC50b2dnbGVQcm9wZXJ0eSgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiksbmV3IEVycm9yKGUpfSk7KDAsdi5kZWZhdWx0KSgiYm9va21hcmsiLHttb2RlbDp7cG9zdElkOnRoaXMuaWR9LHRpdGxlOiJwb3N0LmJvb2ttYXJrcy5jcmVhdGUiLG1vZGFsQ2xhc3M6ImJvb2ttYXJrLXdpdGgtcmVtaW5kZXIifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZVdpdGhvdXRTYXZpbmc6ZnVuY3Rpb24oKXt0LnRvZ2dsZVByb3BlcnR5KCJib29rbWFya2VkX3dpdGhfcmVtaW5kZXIiKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6dC5pZH0pfSxhZnRlclNhdmU6ZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHsidG9waWMuYm9va21hcmtlZCI6ITAsYm9va21hcmtfcmVtaW5kZXJfYXQ6ZX0pLHQuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHtpZDp0LmlkfSl9fSl9LHVwZGF0ZUFjdGlvbnNTdW1tYXJ5OmZ1bmN0aW9uKGUpe2UmJmUuaWQ9PT10aGlzLmlkJiYoZT1NLm11bmdlKGUpLHRoaXMuc2V0KCJhY3Rpb25zX3N1bW1hcnkiLGUuYWN0aW9uc19zdW1tYXJ5KSl9LHJldmVydFRvUmV2aXNpb246ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrdGhpcy5pZCsiL3JldmlzaW9ucy8iK2UrIi9yZXZlcnQiLHt0eXBlOiJQVVQifSl9fSwic2hhcmVVcmwiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInNoYXJlVXJsIiksUykseShTLCJzaG93TmFtZSIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywic2hvd05hbWUiKSxTKSx5KFMsInBvc3REZWxldGVkQnkiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInBvc3REZWxldGVkQnkiKSxTKSx5KFMsInBvc3REZWxldGVkQXQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInBvc3REZWxldGVkQXQiKSxTKSx5KFMsInVybCIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywidXJsIiksUykseShTLCJ1cmxXaXRoTnVtYmVyIixbal0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTLCJ1cmxXaXRoTnVtYmVyIiksUykseShTLCJ1c2VybmFtZVVybCIsW1RdLChDPShDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywidXNlcm5hbWVVcmwiKSk/Qy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIEN9fSksUykseShTLCJpbnRlcm5hbExpbmtzIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTLCJpbnRlcm5hbExpbmtzIiksUykseShTLCJmbGFnc0F2YWlsYWJsZSIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywiZmxhZ3NBdmFpbGFibGUiKSxTKSxTKSk7TS5yZW9wZW5DbGFzcyh7bXVuZ2U6ZnVuY3Rpb24obil7dmFyIGk7cmV0dXJuIG4uYWN0aW9uc19zdW1tYXJ5JiYoaT1yLmRlZmF1bHQuY3JlYXRlKCksbi5hY3Rpb25zX3N1bW1hcnk9bi5hY3Rpb25zX3N1bW1hcnkubWFwKGZ1bmN0aW9uKGUpe2UuYWN0aW9uVHlwZT1iLmRlZmF1bHQuY3VycmVudCgpLnBvc3RBY3Rpb25UeXBlQnlJZChlLmlkKSxlLmNvdW50PWUuY291bnR8fDA7dmFyIHQ9bC5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gaVtlLmFjdGlvblR5cGUubmFtZV9rZXldPXQsImxpa2UiPT09ZS5hY3Rpb25UeXBlLm5hbWVfa2V5JiYobi5saWtlQWN0aW9uPXQpLHR9KSxuLmFjdGlvbkJ5TmFtZT1pKSxuJiZuLnJlcGx5X3RvX3VzZXImJihuLnJlcGx5X3RvX3VzZXI9Zy5kZWZhdWx0LmNyZWF0ZShuLnJlcGx5X3RvX3VzZXIpKSxufSx1cGRhdGVCb29rbWFyazpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK2UrIi9ib29rbWFyayIse3R5cGU6IlBVVCIsZGF0YTp7Ym9va21hcmtlZDp0fX0pfSxkZXN0cm95Qm9va21hcms6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrZSsiL2Jvb2ttYXJrIix7dHlwZToiREVMRVRFIn0pfSxkZWxldGVNYW55OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09dD90Ont9KS5hZ3JlZVdpdGhGaXJzdFJlcGx5RmxhZyxpPXZvaWQgMD09PW58fG47cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzL2Rlc3Ryb3lfbWFueSIse3R5cGU6IkRFTEVURSIsZGF0YTp7cG9zdF9pZHM6ZSxhZ3JlZV93aXRoX2ZpcnN0X3JlcGx5X2ZsYWc6aX19KX0sbWVyZ2VQb3N0czpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvbWVyZ2VfcG9zdHMiLHt0eXBlOiJQVVQiLGRhdGE6e3Bvc3RfaWRzOmV9fSl9LGxvYWRSZXZpc2lvbjpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK2UrIi9yZXZpc2lvbnMvIit0KyIuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGUoZSl9KX0saGlkZVJldmlzaW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrZSsiL3JldmlzaW9ucy8iK3QrIi9oaWRlIix7dHlwZToiUFVUIn0pfSxzaG93UmV2aXNpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIvcmV2aXNpb25zLyIrdCsiL3Nob3ciLHt0eXBlOiJQVVQifSl9LGxvYWRRdW90ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9TS5jcmVhdGUoZSk7cmV0dXJuIGMuZGVmYXVsdC5idWlsZCh0LHQucmF3LHtyYXc6ITAsZnVsbDohMH0pfSl9LGxvYWRSYXdFbWFpbDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIvcmF3LWVtYWlsLmpzb24iKX19KSxlLmRlZmF1bHQ9TX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9wb3N0cy13aXRoLXBsYWNlaG9sZGVycyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHU7ZnVuY3Rpb24gYyhlKXt0aGlzLnZpZXdOYW1lPWV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuUGxhY2Vob2xkZXI9YyxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChFbWJlci5BcnJheSwocz1pPXtwb3N0czpudWxsLF9hcHBlbmRpbmdJZHM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fYXBwZW5kaW5nSWRzPXt9fSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpK09iamVjdC5rZXlzKHRoaXMuX2FwcGVuZGluZ0lkc3x8e30pLmxlbmd0aH0sbmV4dE9iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vYmplY3RBdChlKX0sX2NoYW5nZUFycmF5OmZ1bmN0aW9uKGUsdCxuLGkpe3RoaXMuYXJyYXlDb250ZW50V2lsbENoYW5nZSh0LG4saSksZSgpLHRoaXMuYXJyYXlDb250ZW50RGlkQ2hhbmdlKHQsbixpKSx0aGlzLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJsZW5ndGgiKX0sY2xlYXI6ZnVuY3Rpb24oZSl7dGhpcy5fY2hhbmdlQXJyYXkoZSwwLHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKSwwKX0sYXBwZW5kUG9zdDpmdW5jdGlvbihlKXt0aGlzLl9jaGFuZ2VBcnJheShlLHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKSwwLDEpfSxyZW1vdmVQb3N0OmZ1bmN0aW9uKGUpe3RoaXMuX2NoYW5nZUFycmF5KGUsdGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpLTEsMSwwKX0scmVmcmVzaEFsbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldCgicG9zdHMubGVuZ3RoIik7dGhpcy5fY2hhbmdlQXJyYXkoZSwwLHQsdCl9LGFwcGVuZGluZzpmdW5jdGlvbihlKXt2YXIgbj10aGlzO3RoaXMuX2NoYW5nZUFycmF5KGZ1bmN0aW9uKCl7dmFyIHQ9bi5fYXBwZW5kaW5nSWRzO2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXT0hMH0pfSx0aGlzLmxlbmd0aCwwLGUubGVuZ3RoKX0sZmluaXNoZWRBcHBlbmRpbmc6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0aGlzLl9jaGFuZ2VBcnJheShmdW5jdGlvbigpe3ZhciB0PW4uX2FwcGVuZGluZ0lkcztlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSB0W2VdfSl9LHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKS1lLmxlbmd0aCxlLmxlbmd0aCxlLmxlbmd0aCl9LGZpbmlzaGVkUHJlcGVuZGluZzpmdW5jdGlvbihlKXt0aGlzLl9jaGFuZ2VBcnJheShmdW5jdGlvbigpe30sMCwwLGUubGVuZ3RoKX0sb2JqZWN0QXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wb3N0cztyZXR1cm4gZTx0Lmxlbmd0aD90W2VdOm5ldyBjKCJwb3N0LXBsYWNlaG9sZGVyIil9fSxvPSJsZW5ndGgiLHI9W24uZGVmYXVsdF0sYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksImxlbmd0aCIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1zdHJlYW0iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL3Bvc3RzLXdpdGgtcGxhY2Vob2xkZXJzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGwscix0LHUsbixpLHMsbyxhLGMsZCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG0sZixoLGIsZyx2LHksdyx4LGssUCxqO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobT0oMCxvLmRlZmF1bHQpKCJpc01lZ2FUb3BpYyIsInN0cmVhbS5sZW5ndGgiLCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIiksZj0oMCxvLmRlZmF1bHQpKCJwb3N0cy5bXSIpLGg9KDAsby5kZWZhdWx0KSgiaGFzUG9zdHMiLCJmaWx0ZXJlZFBvc3RzQ291bnQiKSxiPSgwLG8uZGVmYXVsdCkoImhhc0xvYWRlZERhdGEiLCJmaXJzdFBvc3RJZCIsInBvc3RzLltdIiksZz0oMCxvLmRlZmF1bHQpKCJpc01lZ2FUb3BpYyIsInN0cmVhbS5maXJzdE9iamVjdCIsImZpcnN0SWQiKSx2PSgwLG8uZGVmYXVsdCkoImlzTWVnYVRvcGljIiwic3RyZWFtLmxhc3RPYmplY3QiLCJsYXN0SWQiKSx5PSgwLG8uZGVmYXVsdCkoImhhc0xvYWRlZERhdGEiLCJsYXN0UG9zdElkIiwicG9zdHMuQGVhY2guaWQiKSx3PSgwLG8uZGVmYXVsdCkoInN1bW1hcnkiLCJ1c2VyRmlsdGVycy5bXSIpLHg9KDAsby5kZWZhdWx0KSgic3RyZWFtRmlsdGVycy5bXSIsInRvcGljLnBvc3RzX2NvdW50IiwicG9zdHMubGVuZ3RoIiksaz0oMCxvLmRlZmF1bHQpKCJwb3N0cy5bXSIsInN0cmVhbS5bXSIpLFA9KDAsby5kZWZhdWx0KSgicG9zdHMubGFzdE9iamVjdCIsInN0cmVhbS5bXSIpLHAoaj17X2lkZW50aXR5TWFwOm51bGwscG9zdHM6bnVsbCxzdHJlYW06bnVsbCx1c2VyRmlsdGVyczpudWxsLHN1bW1hcnk6bnVsbCxsb2FkZWQ6bnVsbCxsb2FkaW5nQWJvdmU6bnVsbCxsb2FkaW5nQmVsb3c6bnVsbCxsb2FkaW5nRmlsdGVyOm51bGwsbG9hZGluZ05lYXJQb3N0Om51bGwsc3RhZ2luZ1Bvc3Q6bnVsbCxwb3N0c1dpdGhQbGFjZWhvbGRlcnM6bnVsbCx0aW1lbGluZUxvb2t1cDpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9pZGVudGl0eU1hcD17fTt2YXIgZT1bXSx0PXMuZGVmYXVsdC5jcmVhdGUoe3Bvc3RzOmUsc3RvcmU6dGhpcy5zdG9yZX0pO3RoaXMuc2V0UHJvcGVydGllcyh7cG9zdHM6ZSxwb3N0c1dpdGhQbGFjZWhvbGRlcnM6dCxzdHJlYW06W10sdXNlckZpbHRlcnM6W10sc3VtbWFyeTohMSxsb2FkZWQ6ITEsbG9hZGluZ0Fib3ZlOiExLGxvYWRpbmdCZWxvdzohMSxsb2FkaW5nRmlsdGVyOiExLHN0YWdpbmdQb3N0OiExLHRpbWVsaW5lTG9va3VwOltdfSl9LGxvYWRpbmc6KDAsdC5vcikoImxvYWRpbmdBYm92ZSIsImxvYWRpbmdCZWxvdyIsImxvYWRpbmdGaWx0ZXIiLCJzdGFnaW5nUG9zdCIpLG5vdExvYWRpbmc6KDAsdC5ub3QpKCJsb2FkaW5nIiksZmlsdGVyZWRQb3N0c0NvdW50OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT9uOnR9LGhhc1Bvc3RzOmZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpfSxoYXNMb2FkZWREYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjA8dH0sY2FuQXBwZW5kTW9yZTooMCx0LmFuZCkoIm5vdExvYWRpbmciLCJoYXNQb3N0cyIsImxhc3RQb3N0Tm90TG9hZGVkIiksY2FuUHJlcGVuZE1vcmU6KDAsdC5hbmQpKCJub3RMb2FkaW5nIiwiaGFzUG9zdHMiLCJmaXJzdFBvc3ROb3RMb2FkZWQiKSxmaXJzdFBvc3RQcmVzZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuISFlJiYhIXRoaXMucG9zdHMuZmluZEJ5KCJpZCIsdCl9LGZpcnN0UG9zdE5vdExvYWRlZDooMCx0Lm5vdCkoImZpcnN0UG9zdFByZXNlbnQiKSxmaXJzdElkOm51bGwsbGFzdElkOm51bGwsZmlyc3RQb3N0SWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0sbGFzdFBvc3RJZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU/bjp0fSxsb2FkZWRBbGxQb3N0czpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmKC0xPT09dHx8ISF0aGlzLnBvc3RzLmZpbmRCeSgiaWQiLHQpKX0sbGFzdFBvc3ROb3RMb2FkZWQ6KDAsdC5ub3QpKCJsb2FkZWRBbGxQb3N0cyIpLHN0cmVhbUZpbHRlcnM6ZnVuY3Rpb24oZSl7dmFyIHQ9e307ZSYmKHQuZmlsdGVyPSJzdW1tYXJ5Iik7dmFyIG49dGhpcy51c2VyRmlsdGVycztyZXR1cm4oMCxyLmlzRW1wdHkpKG4pfHwodC51c2VybmFtZV9maWx0ZXJzPW4uam9pbigiLCIpKSx0fSxoYXNOb0ZpbHRlcnM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0cmVhbUZpbHRlcnM7cmV0dXJuIShlJiYoInN1bW1hcnkiPT09ZS5maWx0ZXJ8fGUudXNlcm5hbWVfZmlsdGVycykpfSxwcmV2aW91c1dpbmRvdzpmdW5jdGlvbigpe3ZhciBlPV8uZmlyc3QodGhpcy5wb3N0cyk7aWYoIWUpcmV0dXJuW107dmFyIHQ9dGhpcy5zdHJlYW0sbj10aGlzLmluZGV4T2YoZSk7aWYoLTE9PT1uKXJldHVybltdO3ZhciBpPW4tdGhpcy5nZXQoInRvcGljLmNodW5rX3NpemUiKTtyZXR1cm4gaTwwJiYoaT0wKSx0LnNsaWNlKGksbil9LG5leHRXaW5kb3c6ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHQ9dGhpcy5zdHJlYW0sbj10aGlzLmluZGV4T2YoZSk7cmV0dXJuLTE9PT1ufHxuKzE+PXRoaXMuaGlnaGVzdF9wb3N0X251bWJlcj9bXTp0LnNsaWNlKG4rMSxuK3RoaXMuZ2V0KCJ0b3BpYy5jaHVua19zaXplIikrMSl9LGNhbmNlbEZpbHRlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJzdW1tYXJ5IiwhMSksdGhpcy51c2VyRmlsdGVycy5jbGVhcigpfSx0b2dnbGVTdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnVzZXJGaWx0ZXJzLmNsZWFyKCksdGhpcy50b2dnbGVQcm9wZXJ0eSgic3VtbWFyeSIpO3ZhciB0PXt9O3JldHVybiB0aGlzLnN1bW1hcnl8fCh0LmZpbHRlcj0ibm9uZSIpLHRoaXMucmVmcmVzaCh0KS50aGVuKGZ1bmN0aW9uKCl7ZS5zdW1tYXJ5JiZlLmp1bXBUb1NlY29uZFZpc2libGUoKX0pfSxqdW1wVG9TZWNvbmRWaXNpYmxlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLnBvc3RzOzE8dC5sZW5ndGgmJihlPXRbMV0uZ2V0KCJwb3N0X251bWJlciIpLG4uZGVmYXVsdC5qdW1wVG9Qb3N0KGUpKX0sdG9nZ2xlUGFydGljaXBhbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMudXNlckZpbHRlcnM7dGhpcy5zZXQoInN1bW1hcnkiLCExKTt2YXIgaT0hMTtyZXR1cm4gbi5pbmNsdWRlcyhlKT9uLnJlbW92ZU9iamVjdChlKToobi5hZGRPYmplY3QoZSksaT0hMCksdGhpcy5yZWZyZXNoKCkudGhlbihmdW5jdGlvbigpe2kmJnQuanVtcFRvU2Vjb25kVmlzaWJsZSgpfSl9LHJlZnJlc2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoZT1lfHx7fSkubmVhclBvc3Q9cGFyc2VJbnQoZS5uZWFyUG9zdCwxMCksZS5jYW5jZWxTdW1tYXJ5JiYodGhpcy5zZXQoInN1bW1hcnkiLCExKSxkZWxldGUgZS5jYW5jZWxTdW1tYXJ5KTt2YXIgbj10aGlzLnRvcGljO2lmKGUuZm9yY2VMb2FkKXRoaXMuc2V0KCJsb2FkZWQiLCExKTtlbHNlIGlmKHRoaXMucG9zdHMuZmluZEJ5KCJwb3N0X251bWJlciIsZS5uZWFyUG9zdCkpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJuIHRoaXMuc2V0KCJsb2FkaW5nRmlsdGVyIiwhMCksdGhpcy5zZXQoImxvYWRpbmdOZWFyUG9zdCIsZS5uZWFyUG9zdCksZT1fLm1lcmdlKGUsdGhpcy5zdHJlYW1GaWx0ZXJzKSwoMCxhLmxvYWRUb3BpY1ZpZXcpKG4sZSkudGhlbihmdW5jdGlvbihlKXt0LnVwZGF0ZUZyb21Kc29uKGUucG9zdF9zdHJlYW0pLHQuc2V0UHJvcGVydGllcyh7bG9hZGluZ0ZpbHRlcjohMSx0aW1lbGluZUxvb2t1cDplLnRpbWVsaW5lX2xvb2t1cCxsb2FkZWQ6ITB9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Rocm93IHQuZXJyb3JMb2FkaW5nKGUpLG5ldyBFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZ05lYXJQb3N0IixudWxsKX0pfSxmaWxsR2FwQmVmb3JlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXQuZ2V0KCJpZCIpLHM9dGhpcy5zdHJlYW0sbz1zLmluZGV4T2YoaSkscj10aGlzLnBvc3RzO2lmKC0xIT09byl7cy5zcGxpY2UuYXBwbHkocyxbbywwXS5jb25jYXQoZSkpO3ZhciBhPXIuaW5kZXhPZih0KSxsPWE7aWYoLTEhPT1hKXJldHVybiB0aGlzLmZpbmRQb3N0c0J5SWRzKGUpLnRoZW4oZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW4uc3RvcmVQb3N0KGUpO3IuaW5jbHVkZXModCl8fHIuaW5zZXJ0QXQoYSsrLHQpfSksZGVsZXRlIG4uZ2V0KCJnYXBzLmJlZm9yZSIpW2ldLG4uc3RyZWFtLmFycmF5Q29udGVudERpZENoYW5nZSgpLG4ucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmFycmF5Q29udGVudERpZENoYW5nZShsLDAsZS5sZW5ndGgpLHQuc2V0KCJoYXNHYXAiLCExKX0pfXJldHVybiBjLlByb21pc2UucmVzb2x2ZSgpfSxmaWxsR2FwQWZ0ZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9ZS5nZXQoImlkIikscz10aGlzLnN0cmVhbTtyZXR1cm4tMSE9PXMuaW5kZXhPZihpKT8ocy5wdXNoT2JqZWN0cyh0KSx0aGlzLmFwcGVuZE1vcmUoKS50aGVuKGZ1bmN0aW9uKCl7ZGVsZXRlIG4uZ2V0KCJnYXBzLmFmdGVyIilbaV0sbi5zdHJlYW0uYXJyYXlDb250ZW50RGlkQ2hhbmdlKCl9KSk6Yy5Qcm9taXNlLnJlc29sdmUoKX0sYXBwZW5kTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2FuQXBwZW5kTW9yZSlyZXR1cm4gYy5Qcm9taXNlLnJlc29sdmUoKTt2YXIgZT10aGlzLnBvc3RzV2l0aFBsYWNlaG9sZGVycztpZih0aGlzLmlzTWVnYVRvcGljKXt0aGlzLnNldCgibG9hZGluZ0JlbG93IiwhMCk7dmFyIG49Xy5yYW5nZSgtMSwtdGhpcy5nZXQoInRvcGljLmNodW5rX3NpemUiKSwtMSk7cmV0dXJuIGUuYXBwZW5kaW5nKG4pLHRoaXMuZmV0Y2hOZXh0V2luZG93KHRoaXMuZ2V0KCJwb3N0cy5sYXN0T2JqZWN0LnBvc3RfbnVtYmVyIiksITAsZnVuY3Rpb24oZSl7dC5hcHBlbmRQb3N0KGUpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZmluaXNoZWRBcHBlbmRpbmcobiksdC5zZXQoImxvYWRpbmdCZWxvdyIsITEpfSl9dmFyIGk9dGhpcy5uZXh0V2luZG93O3JldHVybigwLHIuaXNFbXB0eSkoaSk/Yy5Qcm9taXNlLnJlc29sdmUoKToodGhpcy5zZXQoImxvYWRpbmdCZWxvdyIsITApLGUuYXBwZW5kaW5nKGkpLHRoaXMuZmluZFBvc3RzQnlJZHMoaSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGVuZFBvc3QoZSl9KSxlfSkuZmluYWxseShmdW5jdGlvbigpe2UuZmluaXNoZWRBcHBlbmRpbmcoaSksdC5zZXQoImxvYWRpbmdCZWxvdyIsITEpfSkpfSxwcmVwZW5kTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2FuUHJlcGVuZE1vcmUpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7aWYodGhpcy5pc01lZ2FUb3BpYyl7dGhpcy5zZXQoImxvYWRpbmdBYm92ZSIsITApO3ZhciBuPVtdO3JldHVybiB0aGlzLmZldGNoTmV4dFdpbmRvdyh0aGlzLmdldCgicG9zdHMuZmlyc3RPYmplY3QucG9zdF9udW1iZXIiKSwhMSxmdW5jdGlvbihlKXt0LnByZXBlbmRQb3N0KGUpLG4ucHVzaChlLmdldCgiaWQiKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5wb3N0c1dpdGhQbGFjZWhvbGRlcnMuZmluaXNoZWRQcmVwZW5kaW5nKG4pLHQuc2V0KCJsb2FkaW5nQWJvdmUiLCExKX0pfXZhciBlPXRoaXMucHJldmlvdXNXaW5kb3c7cmV0dXJuKDAsci5pc0VtcHR5KShlKT9jLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldCgibG9hZGluZ0Fib3ZlIiwhMCksdGhpcy5maW5kUG9zdHNCeUlkcyhlLnJldmVyc2UoKSkudGhlbihmdW5jdGlvbihlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJlcGVuZFBvc3QoZSl9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnBvc3RzV2l0aFBsYWNlaG9sZGVycy5maW5pc2hlZFByZXBlbmRpbmcoZSksdC5zZXQoImxvYWRpbmdBYm92ZSIsITEpfSkpfSxzdGFnZVBvc3Q6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLnN0YWdpbmdQb3N0KXJldHVybiJhbHJlYWR5U3RhZ2luZyI7dGhpcy5zZXQoInN0YWdpbmdQb3N0IiwhMCk7dmFyIG49dGhpcy50b3BpYztyZXR1cm4gbi5zZXRQcm9wZXJ0aWVzKHtwb3N0c19jb3VudDoobi5nZXQoInBvc3RzX2NvdW50Iil8fDApKzEsbGFzdF9wb3N0ZWRfYXQ6bmV3IERhdGUsImRldGFpbHMubGFzdF9wb3N0ZXIiOnQsaGlnaGVzdF9wb3N0X251bWJlcjoobi5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKXx8MCkrMX0pLGUuc2V0UHJvcGVydGllcyh7cG9zdF9udW1iZXI6bi5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKSx0b3BpYzpuLGNyZWF0ZWRfYXQ6bmV3IERhdGUsaWQ6LTF9KSx0aGlzLmxvYWRlZEFsbFBvc3RzPyh0aGlzLmFwcGVuZFBvc3QoZSksdGhpcy5zdHJlYW0uYWRkT2JqZWN0KGUuZ2V0KCJpZCIpKSwic3RhZ2VkIik6Im9mZlNjcmVlbiJ9LGNvbW1pdFBvc3Q6ZnVuY3Rpb24oZSl7dGhpcy5nZXQoInRvcGljLmlkIik9PT1lLmdldCgidG9waWNfaWQiKSYmdGhpcy5sb2FkZWRBbGxQb3N0cyYmKHRoaXMuYXBwZW5kUG9zdChlKSx0aGlzLnN0cmVhbS5hZGRPYmplY3QoZS5nZXQoImlkIikpKSx0aGlzLnN0cmVhbS5yZW1vdmVPYmplY3QoLTEpLHRoaXMuX2lkZW50aXR5TWFwWy0xXT1udWxsLHRoaXMuc2V0KCJzdGFnaW5nUG9zdCIsITEpfSx1bmRvUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc3RyZWFtLnJlbW92ZU9iamVjdCgtMSksdGhpcy5wb3N0c1dpdGhQbGFjZWhvbGRlcnMucmVtb3ZlUG9zdChmdW5jdGlvbigpe3JldHVybiB0LnBvc3RzLnJlbW92ZU9iamVjdChlKX0pLHRoaXMuX2lkZW50aXR5TWFwWy0xXT1udWxsO3ZhciBuPXRoaXMudG9waWM7dGhpcy5zZXQoInN0YWdpbmdQb3N0IiwhMSksbi5zZXRQcm9wZXJ0aWVzKHtoaWdoZXN0X3Bvc3RfbnVtYmVyOihuLmdldCgiaGlnaGVzdF9wb3N0X251bWJlciIpfHwwKS0xLHBvc3RzX2NvdW50OihuLmdldCgicG9zdHNfY291bnQiKXx8MCktMX0pfSxwcmVwZW5kUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnN0b3JlUG9zdChlKTtyZXR1cm4gdCYmdGhpcy5wb3N0cy51bnNoaWZ0T2JqZWN0KHQpLGV9LGFwcGVuZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLnN0b3JlUG9zdChlKTtyZXR1cm4gbiYmKCh0PXRoaXMucG9zdHMpLmluY2x1ZGVzKG4pfHwodGhpcy5sb2FkaW5nQmVsb3c/dC5wdXNoT2JqZWN0KG4pOnRoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmFwcGVuZFBvc3QoZnVuY3Rpb24oKXtyZXR1cm4gdC5wdXNoT2JqZWN0KG4pfSkpLC0xIT09bi5nZXQoImlkIikmJnRoaXMuc2V0KCJsYXN0QXBwZW5kZWQiLG4pKSxlfSxyZW1vdmVQb3N0czpmdW5jdGlvbihpKXt2YXIgcz10aGlzOygwLHIuaXNFbXB0eSkoaSl8fHRoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLnJlZnJlc2hBbGwoZnVuY3Rpb24oKXt2YXIgZT1zLnBvc3RzLHQ9aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJpZCIpfSksbj1zLl9pZGVudGl0eU1hcDtzLnN0cmVhbS5yZW1vdmVPYmplY3RzKHQpLGUucmVtb3ZlT2JqZWN0cyhpKSx0LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSBuW2VdfSl9KX0sZmluZExvYWRlZFBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2lkZW50aXR5TWFwW2VdfSxsb2FkUG9zdEJ5UG9zdE51bWJlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy9ieV9udW1iZXIvIit0aGlzLmdldCgidG9waWMuaWQiKSsiLyIrZSxpPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0b3JlUG9zdChpLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSl9LGxvYWROZWFyZXN0UG9zdFRvRGF0ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy9ieS1kYXRlLyIrdGhpcy5nZXQoInRvcGljLmlkIikrIi8iK2UsaT10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkobikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zdG9yZVBvc3QoaS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpKX0pfSxsb2FkUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy8iK2UsaT10aGlzLnN0b3JlLHM9dGhpcy5faWRlbnRpdHlNYXBbZV07cmV0dXJuKDAsdS5hamF4KShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBzJiYoZS5jb29rZWQ9cy5jb29rZWQpLHQuc3RvcmVQb3N0KGkuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KX0sdHJpZ2dlck5ld1Bvc3RJblN0cmVhbTpmdW5jdGlvbihuKXt2YXIgaT10aGlzLGU9Yy5Qcm9taXNlLnJlc29sdmUoKTtpZighbilyZXR1cm4gZTtpZighdGhpcy5oYXNOb0ZpbHRlcnMpcmV0dXJuIGU7dmFyIHQ9dGhpcy5sb2FkZWRBbGxQb3N0cztyZXR1cm4tMT09PXRoaXMuc3RyZWFtLmluZGV4T2YobikmJih0aGlzLnN0cmVhbS5hZGRPYmplY3QobiksdCk/KHRoaXMuc2V0KCJsb2FkaW5nTGFzdFBvc3QiLCEwKSx0aGlzLmZpbmRQb3N0c0J5SWRzKFtuXSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1kLmRlZmF1bHQuY3VycmVudCgpJiZkLmRlZmF1bHQuY3VycmVudCgpLmdldCgiaWdub3JlZF91c2VycyIpO2UuZm9yRWFjaChmdW5jdGlvbihlKXt0JiZ0LmluY2x1ZGVzKGUudXNlcm5hbWUpP2kuc3RyZWFtLnJlbW92ZU9iamVjdChuKTppLmFwcGVuZFBvc3QoZSl9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLnNldCgibG9hZGluZ0xhc3RQb3N0IiwhMSl9KSk6ZX0sdHJpZ2dlclJlY292ZXJlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIG89dGhpcztpZih0aGlzLl9pZGVudGl0eU1hcFtlXSlyZXR1cm4gdGhpcy50cmlnZ2VyQ2hhbmdlZFBvc3QoZSxuZXcgRGF0ZSk7dmFyIHQ9Ii9wb3N0cy8iK2Uscj10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkodCkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1yLmNyZWF0ZVJlY29yZCgicG9zdCIsdCksbj1vLnN0cmVhbSxpPW8ucG9zdHM7by5zdG9yZVBvc3QoZSk7dmFyIHM9MDtuLmZvckVhY2goZnVuY3Rpb24oZSl7ZTx0LmlkJiYocys9MSl9KSxuLmluc2VydEF0KHMsdC5pZCkscz0wLGkuZm9yRWFjaChmdW5jdGlvbihlKXtlLmlkPHQuaWQmJihzKz0xKX0pLHM8aS5sZW5ndGg/by5wb3N0c1dpdGhQbGFjZWhvbGRlcnMucmVmcmVzaEFsbChmdW5jdGlvbigpe2kuaW5zZXJ0QXQocyxlKX0pOmUucG9zdF9udW1iZXI8aVtpLmxlbmd0aC0xXS5wb3N0X251bWJlcis1JiZvLmFwcGVuZE1vcmUoKX0pfSx0cmlnZ2VyRGVsZXRlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMuX2lkZW50aXR5TWFwW2VdO2lmKCFufHxuLmRlbGV0ZWRfYXQpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9Ii9wb3N0cy8iK2Uscz10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkoaSkudGhlbihmdW5jdGlvbihlKXt0LnN0b3JlUG9zdChzLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSkuY2F0Y2goZnVuY3Rpb24oKXt0LnJlbW92ZVBvc3RzKFtuXSl9KX0sdHJpZ2dlckNoYW5nZWRQb3N0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzO249bnx8e307dmFyIHM9Yy5Qcm9taXNlLnJlc29sdmUoKTtpZighZSlyZXR1cm4gczt2YXIgbz10aGlzLl9pZGVudGl0eU1hcFtlXTtpZihvJiZvLnVwZGF0ZWRfYXQhPT10KXt2YXIgcj0iL3Bvc3RzLyIrZSxhPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShyKS50aGVuKGZ1bmN0aW9uKGUpe24ucHJlc2VydmVDb29rZWQmJihlLmNvb2tlZD1vLmdldCgiY29va2VkIikpLGkuc3RvcmVQb3N0KGEuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KX1yZXR1cm4gc30sdHJpZ2dlclJlYWRQb3N0OmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcyxlPWMuUHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJuIGUudGhlbihmdW5jdGlvbigpe3ZhciBlPWkuZmluZExvYWRlZFBvc3QodCk7ZSYmbj5lLnJlYWRlcnNfY291bnQmJihlLnNldCgicmVhZGVyc19jb3VudCIsbiksaS5zdG9yZVBvc3QoZSkpfSksZX0scG9zdEZvclBvc3ROdW1iZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5oYXNQb3N0cylyZXR1cm4gdGhpcy5wb3N0cy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicG9zdF9udW1iZXIiKT09PXR9KX0sY2xvc2VzdFBvc3RGb3JQb3N0TnVtYmVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuaGFzUG9zdHMpe3ZhciBuPW51bGw7cmV0dXJuIHRoaXMucG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXsoIW58fE1hdGguYWJzKHQtZS5nZXQoInBvc3RfbnVtYmVyIikpPE1hdGguYWJzKG4uZ2V0KCJwb3N0X251bWJlciIpLXQpKSYmKG49ZSl9KSxufX0scHJvZ3Jlc3NJbmRleE9mUG9zdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9ncmVzc0luZGV4T2ZQb3N0SWQoZSl9LHByb2dyZXNzSW5kZXhPZlBvc3RJZDpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiaWQiKSxuPXRoaXMuc3RyZWFtLmluZGV4T2YodCk7cmV0dXJuIHRoaXMuaXNNZWdhVG9waWM/ZS5nZXQoInBvc3RfbnVtYmVyIik6bisxfSxjbG9zZXN0UG9zdE51bWJlckZvcjpmdW5jdGlvbih0KXtpZih0aGlzLmhhc1Bvc3RzKXt2YXIgbj1udWxsO3JldHVybiB0aGlzLnBvc3RzLmZvckVhY2goZnVuY3Rpb24oZSl7biE9PXQmJihuPW58fGUuZ2V0KCJwb3N0X251bWJlciIpLE1hdGguYWJzKHQtZS5nZXQoInBvc3RfbnVtYmVyIikpPE1hdGguYWJzKG4tdCkmJihuPWUuZ2V0KCJwb3N0X251bWJlciIpKSl9KSxufX0sY2xvc2VzdERheXNBZ29Gb3I6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGltZWxpbmVMb29rdXB8fFtdLG49MCxpPXQubGVuZ3RoLTE7bjw9aTspe3ZhciBzPU1hdGguZmxvb3IobisoaS1uKS8yKSxvPXRbc11bMF07aWYoZTxvKWk9cy0xO2Vsc2V7aWYoIShvPGUpKXJldHVybiB0W3NdWzFdO249cysxfX12YXIgcj10W2ldfHx0W25dO2lmKHIpcmV0dXJuIHJbMV19LGZpbmRQb3N0SWRGb3JQb3N0TnVtYmVyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnN0cmVhbSxuPXRoaXMuZ2V0KCJnYXBzLmJlZm9yZSIpLGk9dC5sZW5ndGgscz0xLG89MDtvPGk7bysrKXt2YXIgcj10W29dO2lmKG4pe3ZhciBhPW5bcl07aWYoYSlmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7aWYocz09PWUpcmV0dXJuIHI7cysrfX1pZihzPT09ZSlyZXR1cm4gcjtzKyt9fSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMsaT10aGlzLnBvc3RzO3RoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmNsZWFyKGZ1bmN0aW9uKCl7cmV0dXJuIGkuY2xlYXIoKX0pLHRoaXMuc2V0KCJnYXBzIixudWxsKSxlJiYodD10aGlzLnN0b3JlLGUucG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5hcHBlbmRQb3N0KHQuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KSxkZWxldGUgZS5wb3N0cyx0aGlzLnNldFByb3BlcnRpZXMoZSkpfSxzdG9yZVBvc3Q6ZnVuY3Rpb24oZSl7aWYoZSl7aWYoKDAsbC5nZXQpKGUsImlkIikpe3ZhciB0PXRoaXMuX2lkZW50aXR5TWFwW2UuZ2V0KCJpZCIpXSxuPWUuZ2V0KCJwb3N0X251bWJlciIpO2lmKG4mJm4+KHRoaXMuZ2V0KCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIil8fDApJiYodGhpcy5zZXQoInRvcGljLmhpZ2hlc3RfcG9zdF9udW1iZXIiLG4pLHRoaXMuc2V0KCJ0b3BpYy5sYXN0X3Bvc3RlZF9hdCIsZS5nZXQoImNyZWF0ZWRfYXQiKSkpLHQpcmV0dXJuIHQudXBkYXRlRnJvbVBvc3QoZSksdDtlLnNldCgidG9waWMiLHRoaXMudG9waWMpLHRoaXMuX2lkZW50aXR5TWFwW2UuZ2V0KCJpZCIpXT1lfXJldHVybiBlfX0sZmV0Y2hOZXh0V2luZG93OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLHM9IXRoaXMuZ2V0KCJ0b3BpYy5zdWdnZXN0ZWRfdG9waWNzIiksbz0iL3QvIit0aGlzLmdldCgidG9waWMuaWQiKSsiL3Bvc3RzLmpzb24iLHI9e3Bvc3RfbnVtYmVyOmUsYXNjOnQsaW5jbHVkZV9zdWdnZXN0ZWQ6c30scj1fLm1lcmdlKHIsdGhpcy5zdHJlYW1GaWx0ZXJzKSxhPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShvLHtkYXRhOnJ9KS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGVkX3RvcGljcyYmaS5zZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiLGUuc3VnZ2VzdGVkX3RvcGljcyk7dmFyIHQ9KDAsbC5nZXQpKGUsInBvc3Rfc3RyZWFtLnBvc3RzIik7dCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9aS5zdG9yZVBvc3QoYS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpKSxuJiZuLmNhbGwoaSxlKX0pfSl9LGZpbmRQb3N0c0J5SWRzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lkZW50aXR5TWFwLG49ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXRbZV19KTtyZXR1cm4gdGhpcy5sb2FkSW50b0lkZW50aXR5TWFwKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5jb21wYWN0KCl9KX0sbG9hZEludG9JZGVudGl0eU1hcDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKCgwLHIuaXNFbXB0eSkoZSkpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgdD0hdGhpcy5nZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiKSxpPSIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcG9zdHMuanNvbiIscz17cG9zdF9pZHM6ZSxpbmNsdWRlX3N1Z2dlc3RlZDp0fSxvPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShpLHtkYXRhOnN9KS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGVkX3RvcGljcyYmbi5zZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiLGUuc3VnZ2VzdGVkX3RvcGljcyk7dmFyIHQ9KDAsbC5nZXQpKGUsInBvc3Rfc3RyZWFtLnBvc3RzIik7dCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuLnN0b3JlUG9zdChvLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSl9KX0sYmFja2ZpbGxFeGNlcnB0czpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX2V4Y2VycHRzPXRoaXMuX2V4Y2VycHRzfHxbXTt2YXIgbj10aGlzLnN0cmVhbTtpZih0aGlzLl9leGNlcnB0cy5sb2FkTmV4dD1lLHRoaXMuX2V4Y2VycHRzLmxvYWRpbmcpcmV0dXJuIHRoaXMuX2V4Y2VycHRzLmxvYWRpbmcudGhlbihmdW5jdGlvbigpe2lmKCF0Ll9leGNlcnB0c1tuW2VdXSYmdC5fZXhjZXJwdHMubG9hZE5leHQ9PT1lKXJldHVybiB0LmJhY2tmaWxsRXhjZXJwdHMoZSl9KTtmb3IodmFyIGk9bi5zbGljZShNYXRoLm1heChlLTIwLDApLGUrMjApLHM9aS5sZW5ndGgtMTswPD1zO3MtLSl0aGlzLl9leGNlcnB0c1tpW3NdXSYmaS5zcGxpY2UocywxKTt2YXIgbz17cG9zdF9pZHM6aX07cmV0dXJuIHRoaXMuX2V4Y2VycHRzLmxvYWRpbmc9KDAsdS5hamF4KSgiL3QvIit0aGlzLmdldCgidG9waWMuaWQiKSsiL2V4Y2VycHRzLmpzb24iLHtkYXRhOm99KS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9leGNlcnB0c1tlLnBvc3RfaWRdPWV9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0Ll9leGNlcnB0cy5sb2FkaW5nPW51bGx9KSx0aGlzLl9leGNlcnB0cy5sb2FkaW5nfSxleGNlcnB0OmZ1bmN0aW9uKGkpe3ZhciBzPXRoaXM7aWYodGhpcy5pc01lZ2FUb3BpYylyZXR1cm4gbmV3IGMuUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gZSgiIil9KTt2YXIgbz10aGlzLnN0cmVhbTtyZXR1cm4gbmV3IGMuUHJvbWlzZShmdW5jdGlvbihlLHQpe3ZhciBuPXMuX2V4Y2VycHRzJiZzLl9leGNlcnB0c1tvW2ldXTtuP2Uobik6cy5iYWNrZmlsbEV4Y2VycHRzKGkpLnRoZW4oZnVuY3Rpb24oKXtlKHMuX2V4Y2VycHRzW29baV1dKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSl9KX0saW5kZXhPZjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdHJlYW0uaW5kZXhPZihlLmdldCgiaWQiKSl9LGVycm9yTG9hZGluZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO3RoaXMuc2V0KCJsb2FkaW5nRmlsdGVyIiwhMSksdC5zZXQoImVycm9yTG9hZGluZyIsITApO3ZhciBuPWUuanFYSFIucmVzcG9uc2VKU09OO24mJm4uZXh0cmFzJiZuLmV4dHJhcy5odG1sP3Quc2V0KCJlcnJvckh0bWwiLG4uZXh0cmFzLmh0bWwpOih0LnNldCgiZXJyb3JNZXNzYWdlIixJMThuLnQoInRvcGljLnNlcnZlcl9lcnJvci5kZXNjcmlwdGlvbiIpKSx0LnNldCgibm9SZXRyeSIsNDAzPT09ZS5qcVhIUi5zdGF0dXMpKX19LCJmaWx0ZXJlZFBvc3RzQ291bnQiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImZpbHRlcmVkUG9zdHNDb3VudCIpLGopLHAoaiwiaGFzUG9zdHMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImhhc1Bvc3RzIiksaikscChqLCJoYXNMb2FkZWREYXRhIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJoYXNMb2FkZWREYXRhIiksaikscChqLCJmaXJzdFBvc3RQcmVzZW50IixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJmaXJzdFBvc3RQcmVzZW50IiksaikscChqLCJmaXJzdFBvc3RJZCIsW2ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaiwiZmlyc3RQb3N0SWQiKSxqKSxwKGosImxhc3RQb3N0SWQiLFt2XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImxhc3RQb3N0SWQiKSxqKSxwKGosImxvYWRlZEFsbFBvc3RzIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJsb2FkZWRBbGxQb3N0cyIpLGopLHAoaiwic3RyZWFtRmlsdGVycyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioaiwic3RyZWFtRmlsdGVycyIpLGopLHAoaiwiaGFzTm9GaWx0ZXJzIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJoYXNOb0ZpbHRlcnMiKSxqKSxwKGosInByZXZpb3VzV2luZG93Iixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJwcmV2aW91c1dpbmRvdyIpLGopLHAoaiwibmV4dFdpbmRvdyIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaiwibmV4dFdpbmRvdyIpLGopLGopKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYy1kZXRhaWxzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL2xpYi9ub3RpZmljYXRpb24tbGV2ZWxzIiwiZGlzY291cnNlL21vZGVscy9yZXN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1LGMsZCxwLG0sZixoPXIuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX2xldmVsIiwibm90aWZpY2F0aW9uc19yZWFzb25faWQiKSx1PWw9e2xvYWRlZDohMSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO2UuYWxsb3dlZF91c2VycyYmKGUuYWxsb3dlZF91c2Vycz1lLmFsbG93ZWRfdXNlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGUucGFydGljaXBhbnRzJiYoZS5wYXJ0aWNpcGFudHM9ZS5wYXJ0aWNpcGFudHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljPXQsbi5kZWZhdWx0LmNyZWF0ZShlKX0pKSx0aGlzLnNldFByb3BlcnRpZXMoZSksdGhpcy5zZXQoImxvYWRlZCIsITApfSxub3RpZmljYXRpb25SZWFzb25UZXh0OmZ1bmN0aW9uKGUsdCl7Im51bWJlciIhPXR5cGVvZiBlJiYoZT0xKTt2YXIgbixpPSJ0b3BpYy5ub3RpZmljYXRpb25zLnJlYXNvbnMuIitlO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKG49aSsiXyIrdCxJMThuLmxvb2t1cChuLHtsb2NhbGU6ImVuIn0pJiYoaT1uKSkscy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtYWlsaW5nX2xpc3RfbW9kZSIpJiZlPm8uZGVmYXVsdC5NVVRFRD9JMThuLnQoInRvcGljLm5vdGlmaWNhdGlvbnMucmVhc29ucy5tYWlsaW5nX2xpc3RfbW9kZSIpOkkxOG4udChpLHt1c2VybmFtZTpzLmRlZmF1bHQuY3VycmVudFByb3AoInVzZXJuYW1lX2xvd2VyIiksYmFzZVBhdGg6RGlzY291cnNlLkJhc2VVcml9KX0sdXBkYXRlTm90aWZpY2F0aW9uczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zZXQoIm5vdGlmaWNhdGlvbl9sZXZlbCIsZSksdGhpcy5zZXQoIm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkIixudWxsKSwoMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvbm90aWZpY2F0aW9ucyIse3R5cGU6IlBPU1QiLGRhdGE6e25vdGlmaWNhdGlvbl9sZXZlbDplfX0pfSxyZW1vdmVBbGxvd2VkR3JvdXA6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hbGxvd2VkX2dyb3VwcyxuPWUubmFtZTtyZXR1cm4oMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcmVtb3ZlLWFsbG93ZWQtZ3JvdXAiLHt0eXBlOiJQVVQiLGRhdGE6e25hbWU6bn19KS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmVPYmplY3QodC5maW5kQnkoIm5hbWUiLG4pKX0pfSxyZW1vdmVBbGxvd2VkVXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFsbG93ZWRfdXNlcnMsbj1lLmdldCgidXNlcm5hbWUiKTtyZXR1cm4oMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcmVtb3ZlLWFsbG93ZWQtdXNlciIse3R5cGU6IlBVVCIsZGF0YTp7dXNlcm5hbWU6bn19KS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmVPYmplY3QodC5maW5kQnkoInVzZXJuYW1lIixuKSl9KX19LGM9Im5vdGlmaWNhdGlvblJlYXNvblRleHQiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJub3RpZmljYXRpb25SZWFzb25UZXh0IiksbT1sLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGwpKTtlLmRlZmF1bHQ9aH0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24tZ3JvdXAiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGgsYixnLHYseSxfO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdz17bGlrZXNfZ2l2ZW46MSxsaWtlc19yZWNlaXZlZDoyLGJvb2ttYXJrczozLHRvcGljczo0LHBvc3RzOjUscmVwbGllczo2LG1lbnRpb25zOjcscXVvdGVzOjksZWRpdHM6MTEsbWVzc2FnZXNfc2VudDoxMixtZXNzYWdlc19yZWNlaXZlZDoxMyxwZW5kaW5nOjE0fSx4PXt9O09iamVjdC5rZXlzKHcpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHhbZV09d1tlXX0pO3ZhciBrPWkuZGVmYXVsdC5leHRlbmQoKGM9KDAsdC5vbikoImluaXQiKSxkPSgwLHQuZGVmYXVsdCkoImFjdGlvbl90eXBlIikscD0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZSIpLG09KDAsdC5kZWZhdWx0KSgidGFyZ2V0X3VzZXJuYW1lIiksZj0oMCx0LmRlZmF1bHQpKCJ0YXJnZXRfdXNlcm5hbWUiKSxoPSgwLHQuZGVmYXVsdCkoInVzZXJuYW1lIiksYj0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZUxvd2VyIiksZz0oMCx0LmRlZmF1bHQpKCksdj0oMCx0LmRlZmF1bHQpKCkseT0oMCx0LmRlZmF1bHQpKCJjaGlsZEdyb3VwcyIsImNoaWxkR3JvdXBzLmxpa2VzLml0ZW1zIiwiY2hpbGRHcm91cHMubGlrZXMuaXRlbXMuW10iLCJjaGlsZEdyb3Vwcy5zdGFycy5pdGVtcyIsImNoaWxkR3JvdXBzLnN0YXJzLml0ZW1zLltdIiwiY2hpbGRHcm91cHMuZWRpdHMuaXRlbXMiLCJjaGlsZEdyb3Vwcy5lZGl0cy5pdGVtcy5bXSIsImNoaWxkR3JvdXBzLmJvb2ttYXJrcy5pdGVtcyIsImNoaWxkR3JvdXBzLmJvb2ttYXJrcy5pdGVtcy5bXSIpLHUoXz17X2F0dGFjaENhdGVnb3J5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jYXRlZ29yeV9pZDtlJiZ0aGlzLnNldCgiY2F0ZWdvcnkiLGEuZGVmYXVsdC5maW5kQnlJZChlKSl9LGRlc2NyaXB0aW9uS2V5OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZXx8MDw9ay5UT19TSE9XLmluZGV4T2YoZSk/dGhpcy5pc1BNP3RoaXMuc2FtZVVzZXI/InNlbnRfYnlfeW91Ijoic2VudF9ieV91c2VyIjp0aGlzLnNhbWVVc2VyPyJwb3N0ZWRfYnlfeW91IjoicG9zdGVkX2J5X3VzZXIiOnRoaXMudG9waWNUeXBlP3RoaXMuc2FtZVVzZXI/InlvdV9wb3N0ZWRfdG9waWMiOiJ1c2VyX3Bvc3RlZF90b3BpYyI6dGhpcy5wb3N0UmVwbHlUeXBlP3RoaXMucmVwbHlfdG9fcG9zdF9udW1iZXI/dGhpcy5zYW1lVXNlcj8ieW91X3JlcGxpZWRfdG9fcG9zdCI6InVzZXJfcmVwbGllZF90b19wb3N0Ijp0aGlzLnNhbWVVc2VyPyJ5b3VfcmVwbGllZF90b190b3BpYyI6InVzZXJfcmVwbGllZF90b190b3BpYyI6dGhpcy5tZW50aW9uVHlwZT90aGlzLnNhbWVVc2VyPyJ5b3VfbWVudGlvbmVkX3VzZXIiOnRoaXMudGFyZ2V0VXNlcj8idXNlcl9tZW50aW9uZWRfeW91IjoidXNlcl9tZW50aW9uZWRfdXNlciI6dm9pZCAwfSxzYW1lVXNlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0sdGFyZ2V0VXNlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0scHJlc2VudE5hbWU6KDAsbi5vcikoIm5hbWUiLCJ1c2VybmFtZSIpLHRhcmdldERpc3BsYXlOYW1lOigwLG4ub3IpKCJ0YXJnZXRfbmFtZSIsInRhcmdldF91c2VybmFtZSIpLGFjdGluZ0Rpc3BsYXlOYW1lOigwLG4ub3IpKCJhY3RpbmdfbmFtZSIsImFjdGluZ191c2VybmFtZSIpLHRhcmdldFVzZXJVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsci51c2VyUGF0aCkoZSl9LHVzZXJuYW1lTG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdXNlclVybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxyLnVzZXJQYXRoKShlKX0scG9zdFVybDpmdW5jdGlvbigpe3JldHVybigwLG8ucG9zdFVybCkodGhpcy5zbHVnLHRoaXMudG9waWNfaWQsdGhpcy5wb3N0X251bWJlcil9LHJlcGx5VXJsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsby5wb3N0VXJsKSh0aGlzLnNsdWcsdGhpcy50b3BpY19pZCx0aGlzLnJlcGx5X3RvX3Bvc3RfbnVtYmVyKX0scmVwbHlUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5yZXBsaWVzKSxwb3N0VHlwZTooMCxuLmVxdWFsKSgiYWN0aW9uX3R5cGUiLHcucG9zdHMpLHRvcGljVHlwZTooMCxuLmVxdWFsKSgiYWN0aW9uX3R5cGUiLHcudG9waWNzKSxib29rbWFya1R5cGU6KDAsbi5lcXVhbCkoImFjdGlvbl90eXBlIix3LmJvb2ttYXJrcyksbWVzc2FnZVNlbnRUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5tZXNzYWdlc19zZW50KSxtZXNzYWdlUmVjZWl2ZWRUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5tZXNzYWdlc19yZWNlaXZlZCksbWVudGlvblR5cGU6KDAsbi5lcXVhbCkoImFjdGlvbl90eXBlIix3Lm1lbnRpb25zKSxpc1BNOigwLG4ub3IpKCJtZXNzYWdlU2VudFR5cGUiLCJtZXNzYWdlUmVjZWl2ZWRUeXBlIikscG9zdFJlcGx5VHlwZTooMCxuLm9yKSgicG9zdFR5cGUiLCJyZXBseVR5cGUiKSxyZW1vdmFibGVCb29rbWFyazooMCxuLmFuZCkoImJvb2ttYXJrVHlwZSIsInNhbWVVc2VyIiksYWRkQ2hpbGQ6ZnVuY3Rpb24oZSl7dmFyIHQ9KHQ9dGhpcy5jaGlsZEdyb3Vwcyl8fHtsaWtlczpzLmRlZmF1bHQuY3JlYXRlKHtpY29uOiJoZWFydCJ9KSxzdGFyczpzLmRlZmF1bHQuY3JlYXRlKHtpY29uOiJzdGFyIn0pLGVkaXRzOnMuZGVmYXVsdC5jcmVhdGUoe2ljb246InBlbmNpbC1hbHQifSksYm9va21hcmtzOnMuZGVmYXVsdC5jcmVhdGUoe2ljb246ImJvb2ttYXJrIn0pfTt0aGlzLnNldCgiY2hpbGRHcm91cHMiLHQpO3ZhciBuPXRbZnVuY3Rpb24oKXtzd2l0Y2goZS5hY3Rpb25fdHlwZSl7Y2FzZSB3Lmxpa2VzX2dpdmVuOmNhc2Ugdy5saWtlc19yZWNlaXZlZDpyZXR1cm4ibGlrZXMiO2Nhc2Ugdy5lZGl0czpyZXR1cm4iZWRpdHMiO2Nhc2Ugdy5ib29rbWFya3M6cmV0dXJuImJvb2ttYXJrcyJ9fSgpXTtuJiZuLnB1c2goZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jaGlsZEdyb3Vwcyx0PVtdO3JldHVybiBlJiYodD1bZS5saWtlcyxlLnN0YXJzLGUuZWRpdHMsZS5ib29rbWFya3NdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoIml0ZW1zIikmJjA8ZS5nZXQoIml0ZW1zIikubGVuZ3RofSkpLHR9LHN3aXRjaFRvQWN0aW5nOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHt1c2VybmFtZTp0aGlzLmFjdGluZ191c2VybmFtZSxuYW1lOnRoaXMuYWN0aW5nRGlzcGxheU5hbWV9KX19LCJfYXR0YWNoQ2F0ZWdvcnkiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIl9hdHRhY2hDYXRlZ29yeSIpLF8pLHUoXywiZGVzY3JpcHRpb25LZXkiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImRlc2NyaXB0aW9uS2V5IiksXyksdShfLCJzYW1lVXNlciIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywic2FtZVVzZXIiKSxfKSx1KF8sInRhcmdldFVzZXIiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRhcmdldFVzZXIiKSxfKSx1KF8sInRhcmdldFVzZXJVcmwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRhcmdldFVzZXJVcmwiKSxfKSx1KF8sInVzZXJuYW1lTG93ZXIiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInVzZXJuYW1lTG93ZXIiKSxfKSx1KF8sInVzZXJVcmwiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInVzZXJVcmwiKSxfKSx1KF8sInBvc3RVcmwiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInBvc3RVcmwiKSxfKSx1KF8sInJlcGx5VXJsIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJyZXBseVVybCIpLF8pLHUoXywiY2hpbGRyZW4iLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNoaWxkcmVuIiksXyksXykpO2sucmVvcGVuQ2xhc3Moe2NvbGxhcHNlU3RyZWFtOmZ1bmN0aW9uKGUpe3ZhciBzPXt9LG89W10scj0wO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnRvcGljX2lkKyItIitlLnBvc3RfbnVtYmVyLGk9c1tuXTt2b2lkIDA9PT1pPyh0PXZvaWQgMCwwPD1rLlRPX0NPTExBUFNFLmluZGV4T2YoZS5hY3Rpb25fdHlwZSk/KHQ9ay5jcmVhdGUoZSksZS5zd2l0Y2hUb0FjdGluZygpLHQuYWRkQ2hpbGQoZSkpOnQ9ZSxzW25dPXIsb1tyXT10LHIrPTEpOjA8PWsuVE9fQ09MTEFQU0UuaW5kZXhPZihlLmFjdGlvbl90eXBlKT8oZS5zd2l0Y2hUb0FjdGluZygpLG9baV0uYWRkQ2hpbGQoZSkpOm9baV0uc2V0UHJvcGVydGllcyhlLmdldFByb3BlcnRpZXMoImFjdGlvbl90eXBlIiwiZGVzY3JpcHRpb24iKSl9KSxvfSxUWVBFUzp3LFRZUEVTX0lOVkVSVEVEOngsVE9fQ09MTEFQU0U6W3cubGlrZXNfZ2l2ZW4sdy5saWtlc19yZWNlaXZlZCx3LmVkaXRzLHcuYm9va21hcmtzXSxUT19TSE9XOlt3Lmxpa2VzX2dpdmVuLHcubGlrZXNfcmVjZWl2ZWQsdy5lZGl0cyx3LmJvb2ttYXJrcyx3Lm1lc3NhZ2VzX3NlbnQsdy5tZXNzYWdlc19yZWNlaXZlZF19KSxlLmRlZmF1bHQ9a30pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWJhZGdlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LGksbixzLHIsbyxhKXsidXNlIHN0cmljdCI7dmFyIGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGMsZCxwLG0sZixoLGI9by5kZWZhdWx0LmV4dGVuZCgoYz1sPXtwb3N0VXJsOmZ1bmN0aW9uKCl7aWYodGhpcy50b3BpY190aXRsZSlyZXR1cm4iL3QvLS8iK3RoaXMudG9waWNfaWQrIi8iK3RoaXMucG9zdF9udW1iZXJ9LHJldm9rZTpmdW5jdGlvbigpe3JldHVybigwLGkuYWpheCkoIi91c2VyX2JhZGdlcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX19LGQ9InBvc3RVcmwiLHA9W3QuZGVmYXVsdF0sdT0odT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInBvc3RVcmwiKSk/dS52YWx1ZTp2b2lkIDAsbT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19LGY9bCxoPXt9LE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oZSl7aFtlXT1tW2VdfSksaC5lbnVtZXJhYmxlPSEhaC5lbnVtZXJhYmxlLGguY29uZmlndXJhYmxlPSEhaC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBofHxoLmluaXRpYWxpemVyKSYmKGgud3JpdGFibGU9ITApLGg9cC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChjLGQsZSl8fGV9LGgpLGYmJnZvaWQgMCE9PWguaW5pdGlhbGl6ZXImJihoLnZhbHVlPWguaW5pdGlhbGl6ZXI/aC5pbml0aWFsaXplci5jYWxsKGYpOnZvaWQgMCxoLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09aC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGQsaCksaD1udWxsKSxsKSk7Yi5yZW9wZW5DbGFzcyh7Y3JlYXRlRnJvbUpzb246ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZS51c2VycyYmKGUudXNlcnM9W10pO3ZhciBpPXt9O2UudXNlcnMuZm9yRWFjaChmdW5jdGlvbihlKXtpW2UuaWRdPWEuZGVmYXVsdC5jcmVhdGUoZSl9KSx2b2lkIDA9PT1lLnRvcGljcyYmKGUudG9waWNzPVtdKTt2YXIgcz17fTtlLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3NbZS5pZF09ci5kZWZhdWx0LmNyZWF0ZShlKX0pLHZvaWQgMD09PWUuYmFkZ2VzJiYoZS5iYWRnZXM9W10pO3ZhciBvPXt9O24uZGVmYXVsdC5jcmVhdGVGcm9tSnNvbihlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZS5nZXQoImlkIildPWV9KTt2YXIgdD1bXTtyZXR1cm4gdD0odD0idXNlcl9iYWRnZSJpbiBlP1tlLnVzZXJfYmFkZ2VdOmUudXNlcl9iYWRnZV9pbmZvJiZlLnVzZXJfYmFkZ2VfaW5mby51c2VyX2JhZGdlc3x8ZS51c2VyX2JhZGdlcykubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWIuY3JlYXRlKGUpLG49RGF0ZS5wYXJzZSh0LmdldCgiZ3JhbnRlZF9hdCIpKTtyZXR1cm4gdC5zZXQoImdyYW50ZWRBdCIsbiksdC5zZXQoImJhZGdlIixvW3QuZ2V0KCJiYWRnZV9pZCIpXSksdC5nZXQoInVzZXJfaWQiKSYmdC5zZXQoInVzZXIiLGlbdC5nZXQoInVzZXJfaWQiKV0pLHQuZ2V0KCJncmFudGVkX2J5X2lkIikmJnQuc2V0KCJncmFudGVkX2J5IixpW3QuZ2V0KCJncmFudGVkX2J5X2lkIildKSx0LmdldCgidG9waWNfaWQiKSYmdC5zZXQoInRvcGljIixzW3QuZ2V0KCJ0b3BpY19pZCIpXSksdH0pLCJ1c2VyX2JhZGdlImluIGU/dFswXTooZS51c2VyX2JhZGdlX2luZm8mJih0LmdyYW50X2NvdW50PWUudXNlcl9iYWRnZV9pbmZvLmdyYW50X2NvdW50LHQudXNlcm5hbWU9ZS51c2VyX2JhZGdlX2luZm8udXNlcm5hbWUpLHQpfSxmaW5kQnlVc2VybmFtZTpmdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiBzLlByb21pc2UucmVzb2x2ZShbXSk7dmFyIG49Ii91c2VyLWJhZGdlcy8iK2UrIi5qc29uIjtyZXR1cm4gdCYmdC5ncm91cGVkJiYobis9Ij9ncm91cGVkPXRydWUiKSwoMCxpLmFqYXgpKG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGIuY3JlYXRlRnJvbUpzb24oZSl9KX0sZmluZEJ5QmFkZ2VJZDpmdW5jdGlvbihlLHQpe3JldHVybih0PXR8fHt9KS5iYWRnZV9pZD1lLCgwLGkuYWpheCkoIi91c2VyX2JhZGdlcy5qc29uIix7ZGF0YTp0fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYi5jcmVhdGVGcm9tSnNvbihlKX0pfSxncmFudDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL3VzZXJfYmFkZ2VzIix7dHlwZToiUE9TVCIsZGF0YTp7dXNlcm5hbWU6dCxiYWRnZV9pZDplLHJlYXNvbjpufX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGIuY3JlYXRlRnJvbUpzb24oZSl9KX19KSxlLmRlZmF1bHQ9Yn0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hdXRvc2l6ZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdCxoPSJmdW5jdGlvbiI9PXR5cGVvZiBTZXQ/bmV3IFNldDoodD1bXSx7aGFzOmZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKC0xPHQuaW5kZXhPZihlKSl9LGFkZDpmdW5jdGlvbihlKXt0LnB1c2goZSl9LGRlbGV0ZTpmdW5jdGlvbihlKXt0LnNwbGljZSh0LmluZGV4T2YoZSksMSl9fSk7ZnVuY3Rpb24gbihlKXt2YXIgdDtlJiZlLm5vZGVOYW1lJiYiVEVYVEFSRUEiPT09ZS5ub2RlTmFtZSYmKCh0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5pbml0RXZlbnQoImF1dG9zaXplOmRlc3Ryb3kiLCEwLCExKSxlLmRpc3BhdGNoRXZlbnQodCkpfWZ1bmN0aW9uIGkoZSl7dmFyIHQ7ZSYmZS5ub2RlTmFtZSYmIlRFWFRBUkVBIj09PWUubm9kZU5hbWUmJigodD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSkuaW5pdEV2ZW50KCJhdXRvc2l6ZTp1cGRhdGUiLCEwLCExKSxlLmRpc3BhdGNoRXZlbnQodCkpfWZ1bmN0aW9uIHMoZSx0KXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyxlKXt2YXIgbyxuLHIsaSx0LGE9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lP2U6e30sbD1hLnNldE92ZXJmbG93WCx1PXZvaWQgMD09PWx8fGwsYz1hLnNldE92ZXJmbG93WSxkPXZvaWQgMD09PWN8fGM7ZnVuY3Rpb24gcChlKXt2YXIgdD1zLnN0eWxlLndpZHRoO3Muc3R5bGUud2lkdGg9IjBweCIscy5vZmZzZXRXaWR0aCxzLnN0eWxlLndpZHRoPXQsbj1lLGQmJihzLnN0eWxlLm92ZXJmbG93WT1lKSxtKCl9ZnVuY3Rpb24gbSgpe3ZhciBlPXdpbmRvdy5wYWdlWU9mZnNldCx0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLG49cy5zdHlsZS5oZWlnaHQ7cy5zdHlsZS5oZWlnaHQ9ImF1dG8iO3ZhciBpPXMuc2Nyb2xsSGVpZ2h0K287MCE9PXMuc2Nyb2xsSGVpZ2h0PyhzLnN0eWxlLmhlaWdodD1pKyJweCIscj1zLmNsaWVudFdpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9ZSxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcD10KTpzLnN0eWxlLmhlaWdodD1ufWZ1bmN0aW9uIGYoKXt2YXIgZSx0PXMuc3R5bGUuaGVpZ2h0O20oKSx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzLG51bGwpLmhlaWdodCE9PXMuc3R5bGUuaGVpZ2h0PyJ2aXNpYmxlIiE9PW4mJnAoInZpc2libGUiKToiaGlkZGVuIiE9PW4mJnAoImhpZGRlbiIpLHQhPT1zLnN0eWxlLmhlaWdodCYmKChlPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5pbml0RXZlbnQoImF1dG9zaXplOnJlc2l6ZWQiLCEwLCExKSxzLmRpc3BhdGNoRXZlbnQoZSkpfXMmJnMubm9kZU5hbWUmJiJURVhUQVJFQSI9PT1zLm5vZGVOYW1lJiYhaC5oYXMocykmJihuPW89bnVsbCxyPXMuY2xpZW50V2lkdGgsaT1mdW5jdGlvbigpe3MuY2xpZW50V2lkdGghPT1yJiZmKCl9LHMuYWRkRXZlbnRMaXN0ZW5lcigiYXV0b3NpemU6ZGVzdHJveSIsZnVuY3Rpb24gZSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixpLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IixmLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixmLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImF1dG9zaXplOmRlc3Ryb3kiLGUsITEpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYXV0b3NpemU6dXBkYXRlIixmLCExKSxoLmRlbGV0ZShzKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Muc3R5bGVbZV09dFtlXX0pfSwhMSksIm9ucHJvcGVydHljaGFuZ2UiaW4gcyYmIm9uaW5wdXQiaW4gcyYmcy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZiwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZiwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJhdXRvc2l6ZTp1cGRhdGUiLGYsITEpLGguYWRkKHMpLHUmJihzLnN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIixzLnN0eWxlLndvcmRXcmFwPSJicmVhay13b3JkIiksdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzLG51bGwpLG49dC5vdmVyZmxvd1ksInZlcnRpY2FsIj09PXQucmVzaXplP3Muc3R5bGUucmVzaXplPSJub25lIjoiYm90aCI9PT10LnJlc2l6ZSYmKHMuc3R5bGUucmVzaXplPSJob3Jpem9udGFsIiksbz0iY29udGVudC1ib3giPT09dC5ib3hTaXppbmc/LShwYXJzZUZsb2F0KHQucGFkZGluZ1RvcCkrcGFyc2VGbG9hdCh0LnBhZGRpbmdCb3R0b20pKTpwYXJzZUZsb2F0KHQuYm9yZGVyVG9wV2lkdGgpK3BhcnNlRmxvYXQodC5ib3JkZXJCb3R0b21XaWR0aCksaXNOYU4obykmJihvPTApLGYoKSl9KGUsdCl9KSxlfXMuZGVzdHJveT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxuKSxlfSxzLnVwZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxpKSxlfSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9jYWNoZWQtdG9waWMtbGlzdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmZpbmRPclJlc2V0Q2FjaGVkVG9waWNMaXN0PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInRvcGljTGlzdCIpO3JldHVybiBuJiZuLmZpbHRlcj09PXQ/bjooZS5zZXRQcm9wZXJ0aWVzKHt0b3BpY0xpc3Q6bnVsbCx0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbjpudWxsfSksITEpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9jYXRlZ29yeS1oYXNodGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TRVBBUkFUT1I9dm9pZCAwLGUucmVwbGFjZVNwYW49ZnVuY3Rpb24oZSx0LG4pe2UucmVwbGFjZVdpdGgoJzxhIGhyZWY9IicrbisnIiBjbGFzcz0iaGFzaHRhZyI+IzxzcGFuPicrdCsiPC9zcGFuPjwvYT4iKX0sZS5jYXRlZ29yeUhhc2h0YWdUcmlnZ2VyUnVsZT1mdW5jdGlvbihlLHQpe3ZhciBuPSgwLHIuY2FyZXRSb3dDb2wpKGUpLGk9bi5yb3dOdW0scz1uLmNvbE51bSxvPWUudmFsdWUuc3BsaXQoIlxuIilbaS0xXTtpZih0JiZ0LmJhY2tTcGFjZSYmKC0tcyxvPW8uc2xpY2UoMCxvLmxlbmd0aC0xKSwvXiN7MX1cdysvLnRlc3QobykpKXJldHVybiExO2lmKHM8NiYmby5zbGljZSgwLHMpPT09IiMiLnJlcGVhdChzKSlyZXR1cm4hMTtpZigoMCxyLmluQ29kZUJsb2NrKShlLnZhbHVlLCgwLHIuY2FyZXRQb3NpdGlvbikoZSkpKXJldHVybiExO3JldHVybiEwfTtlLlNFUEFSQVRPUj0iOiJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktdGFnLXNlYXJjaCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvYXV0b2NvbXBsZXRlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvdGFnLWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi9jYXRlZ29yeS1oYXNodGFncyIsInJzdnAiXSxmdW5jdGlvbihlLHIsYSxvLGwsdSxjKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2VhcmNoPWZ1bmN0aW9uKGUsdCl7cCYmKHAuYWJvcnQoKSxwPW51bGwpOzNlNDxuZXcgRGF0ZS1kJiYobT17fSk7dmFyIG49bVtlXTtpZihuKXJldHVybiBuO3ZhciBpPW8uZGVmYXVsdC5zZWFyY2goZSx7bGltaXQ6NX0pLHM9aS5sZW5ndGg7cmV0dXJuIGk9aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue21vZGVsOmUsdGV4dDpvLmRlZmF1bHQuc2x1Z0ZvcihlLHUuU0VQQVJBVE9SKX19KSw1IT09cyYmdC50YWdnaW5nX2VuYWJsZWQ/ZnVuY3Rpb24oaSxlLG8pe3JldHVybiBuZXcgYy5Qcm9taXNlKGZ1bmN0aW9uKHQpe3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KGEuQ0FOQ0VMTEVEX1NUQVRVUyl9LDVlMyk7KDAsci5kZWZhdWx0KShmdW5jdGlvbihlLGksdCl7cD0kLmFqYXgoRGlzY291cnNlLmdldFVSTCgiL3RhZ3MvZmlsdGVyL3NlYXJjaCIpLHt0eXBlOiJHRVQiLGNhY2hlOiEwLGRhdGE6e2xpbWl0Om8scTplfX0pO3ZhciBzPWEuQ0FOQ0VMTEVEX1NUQVRVUztwLnRoZW4oZnVuY3Rpb24oZSl7dmFyIG49aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubW9kZWwuZ2V0KCJuYW1lIil9KSx0PWUucmVzdWx0cy5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50ZXh0O3JldHVybntuYW1lOnQsdGV4dDpuLmluY2x1ZGVzKHQpPyIiK3QrbC5UQUdfSEFTSFRBR19QT1NURklYOnQsY291bnQ6ZS5jb3VudH19KTtzPWkuY29uY2F0KHQpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7cD1udWxsLHQocyl9KX0sMzAwKShpLGUsZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KG4pLHQoZihpLGUpKX0pfSl9KGUsaSw1LXMpOmYoZSxpKX07dmFyIGQscCxtPXt9O2Z1bmN0aW9uIGYoZSx0KXtyZXR1cm4gbVtlXT10LGQ9bmV3IERhdGUsdH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY2xlYW4tZG9tIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt3aW5kb3cuTWluaVByb2ZpbGVyJiZ3aW5kb3cuTWluaVByb2ZpbGVyLnBhZ2VUcmFuc2l0aW9uKCksJCgiaGVhZGVyIHVsLmljb25zIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLCQoJ1tkYXRhLXRvZ2dsZT0iZHJvcGRvd24iXScpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJvcGVuIiksJC5tYWduaWZpY1BvcHVwJiYkLm1hZ25pZmljUG9wdXAuaW5zdGFuY2UmJigkLm1hZ25pZmljUG9wdXAuaW5zdGFuY2UuY2xvc2UoKSwkKCJib2R5IikucmVtb3ZlQ2xhc3MoIm1mcC16b29tLW91dC1jdXIiKSksJChkb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ub3QoImJvZHkiKS5ub3QoIi5uby1ibHVyIikuYmx1cigpLERpc2NvdXJzZS5zZXQoImNvbnRleHRDb3VudCIsMCksRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJyb3V0ZTphcHBsaWNhdGlvbiIpLnNlbmQoImNsb3NlTW9kYWwiKTt2YXIgZT0kKCJodG1sIikuZGF0YSgiaGlkZS1kcm9wZG93biIpO2UmJmUoKSxEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLnRyaWdnZXIoImRvbTpjbGVhbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNsZWFuRE9NPWZ1bmN0aW9uKCl7KDAsdC5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsbil9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9pbnRlcmNlcHQtY2xpY2siLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInJzdnAiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUseSxfLHcseCxrLFAsaixUKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShlKXtyZXR1cm4hZS5pcygiLmxpZ2h0Ym94LCAubm8tdHJhY2stbGluaywgLmhhc2h0YWcsIC5iYWNrIikmJigwPT09ZS5wYXJlbnRzKCJhc2lkZS5xdW90ZSwgLmVsaWRlZCwgLmV4cGFuZGVkLWVtYmVkIikubGVuZ3RoJiYoZS5oYXNDbGFzcygidHJhY2stbGluayIpfHwwPT09ZS5jbG9zZXN0KCIuaGFzaHRhZywgLmJhZGdlLWNhdGVnb3J5LCAub25lYm94LXJlc3VsdCwgLm9uZWJveC1ib2R5IikubGVuZ3RoKSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaXNWYWxpZExpbms9RSxlLmRlZmF1bHQ9e3RyYWNrQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoMz09PWUud2hpY2gpcmV0dXJuITA7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCgiUmFuZ2UiPT09dC50eXBlfHwwPHQucmFuZ2VDb3VudCkmJiIiIT09KDAsay5zZWxlY3RlZFRleHQpKCkpcmV0dXJuITA7dmFyIG49JChlLmN1cnJlbnRUYXJnZXQpLGk9RShuKTtpZihuLmlzKCIubWVudGlvbiwgLm1lbnRpb24tZ3JvdXAiKSlyZXR1cm4hMDt2YXIgcyxvPShuLmF0dHIoImhyZWYiKXx8bi5kYXRhKCJocmVmIil8fCIiKS50cmltKCk7aWYoIW98fDA9PT1vLmluZGV4T2YoIm1haWx0bzoiKSlyZXR1cm4hMDtpZihuLmhhc0NsYXNzKCJhdHRhY2htZW50IikpcmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MucHJldmVudF9hbm9uc19mcm9tX2Rvd25sb2FkaW5nX2ZpbGVzJiYhVC5kZWZhdWx0LmN1cnJlbnQoKT9ib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuYXR0YWNobWVudF9kb3dubG9hZF9yZXF1aXJlc19sb2dpbiIpKTooMCx4LndhbnRzTmV3V2luZG93KShlKT8oKHM9d2luZG93Lm9wZW4obywiX2JsYW5rIikpLm9wZW5lcj1udWxsLHMuZm9jdXMoKSk6dy5kZWZhdWx0LnJlZGlyZWN0VG8obyksITE7dmFyIHIsYSxsLHU9bi5jbG9zZXN0KCJhcnRpY2xlOm5vdCgub25lYm94LWJvZHkpLCAuZXhjZXJwdCwgI3JldmlzaW9ucyIpLGM9dS5kYXRhKCJwb3N0LWlkIiksZD0kKCIjdG9waWMiKS5kYXRhKCJ0b3BpYy1pZCIpfHx1LmRhdGEoInRvcGljLWlkIikscD1uLmRhdGEoInVzZXItaWQiKXx8dS5kYXRhKCJ1c2VyLWlkIiksbT1wJiZwPT09VC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJpZCIpOyFpfHxtfHwxPT09KHI9JCgic3Bhbi5iYWRnZSIsbikpLmxlbmd0aCYmKGE9ci5odG1sKCksbD0obmV3IERhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygpKyItIitjKyItIitvLC9eXGQrJC8udGVzdChhKSYmIXNlc3Npb25TdG9yYWdlLmdldEl0ZW0obCkmJihzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGwsITApLHIuaHRtbChwYXJzZUludChhLDEwKSsxKSkpO3ZhciBmLGg9UC5Qcm9taXNlLnJlc29sdmUoKTtpJiYoInRlc3QiIT09ai5kZWZhdWx0LmVudmlyb25tZW50JiZuYXZpZ2F0b3Iuc2VuZEJlYWNvbj8oKGY9bmV3IEZvcm1EYXRhKS5hcHBlbmQoInVybCIsbyksZi5hcHBlbmQoInBvc3RfaWQiLGMpLGYuYXBwZW5kKCJ0b3BpY19pZCIsZCksbmF2aWdhdG9yLnNlbmRCZWFjb24oRGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpLGYpKTpoPSgwLF8uYWpheCkoRGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpLHt0eXBlOiJQT1NUIixkYXRhOnt1cmw6byxwb3N0X2lkOmMsdG9waWNfaWQ6ZH19KSk7dmFyIGIsZz13LmRlZmF1bHQuaXNJbnRlcm5hbChvKSx2PVQuZGVmYXVsdC5jdXJyZW50UHJvcCgiZXh0ZXJuYWxfbGlua3NfaW5fbmV3X3RhYiIpO3JldHVybiEhKDAseC53YW50c05ld1dpbmRvdykoZSl8fCghZyYmdj8oKGI9d2luZG93Lm9wZW4obywiX2JsYW5rIikpLm9wZW5lcj1udWxsLGIuZm9jdXMoKSxuLmRhdGEoImhyZWYiKXx8KG4uYWRkQ2xhc3MoIm5vLWhyZWYiKSxuLmRhdGEoImhyZWYiLG4uYXR0cigiaHJlZiIpKSxuLmF0dHIoImhyZWYiLG51bGwpLG4uZGF0YSgiYXV0by1yb3V0ZSIsITApLCgwLHkubGF0ZXIpKGZ1bmN0aW9uKCl7bi5yZW1vdmVDbGFzcygibm8taHJlZiIpLG4uYXR0cigiaHJlZiIsbi5kYXRhKCJocmVmIikpLG4uZGF0YSgiaHJlZiIsbnVsbCksbi5kYXRhKCJhdXRvLXJvdXRlIixudWxsKX0sNTApKSk6aC5maW5hbGx5KGZ1bmN0aW9uKCl7Zz93LmRlZmF1bHQucm91dGVUbyhvKTp3LmRlZmF1bHQucmVkaXJlY3RUbyhvKX0pLCExKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NvbmNlcm5zL3NlYXJjaC1jb25zdGFudHMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5QSFJBU0VfTUFUQ0hfUkVHRVhQX1BBVFRFUk49JyIoW14iXSspIid9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY29weS10ZXh0IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3ZhciBuPSExO3RyeXtkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSYmKG49ITApfWNhdGNoKGUpe31pZihuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2kuc2VsZWN0Tm9kZSh0KTt2YXIgcz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cy5yZW1vdmVBbGxSYW5nZXMoKSxzLmFkZFJhbmdlKGkpO3RyeXtpZihkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKXJldHVybiEwfWNhdGNoKGUpe31yZXR1cm4hMX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2QtcG9wb3ZlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiJdLGZ1bmN0aW9uKGUscCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlBPUE9WRVJfU0VMRUNUT1JTPXZvaWQgMCxlLmhpZGVQb3BvdmVyPW8sZS5zaG93UG9wb3Zlcj1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj0kKGUudGFyZ2V0KS5jbG9zZXN0KHMpLmZpcnN0KCk7bi5sZW5ndGh8fChuPSQoZS50YXJnZXQpKTt3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyYmMTx3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyYmaCgpLmFkZENsYXNzKCJyZXRpbmEiKTtoKCkubGVuZ3RofHwkKCJib2R5IikuYXBwZW5kKCQoaSkpO3JldHVybiBmdW5jdGlvbihlLHQpe3Q9dHx8ZS5hdHRyKCJkYXRhLWh0bWwtcG9wb3ZlciIpfHxlLmF0dHIoImRhdGEtaHRtbC10b29sdGlwIiksYShlLHQpfShuLHQuaHRtbENvbnRlbnQpLGZ1bmN0aW9uKGUsdCl7dD10fHxlLmF0dHIoImRhdGEtcG9wb3ZlciIpfHxlLmF0dHIoImRhdGEtdG9vbHRpcCIpLHIoZSx0KX0obix0LnRleHRDb250ZW50KSxoKCkuZmFkZUluKCksbChuKSx7aHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gYShuLGUpfSx0ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiByKG4sZSl9LGhpZGU6b319O3ZhciB0PSJkLXBvcG92ZXIiLGk9J1xuICA8ZGl2IGlkPSInK3QrJyIgY2xhc3M9ImlzLXVuZGVyIj5cbiAgICA8ZGl2IGNsYXNzPSJkLXBvcG92ZXItYXJyb3cgZC1wb3BvdmVyLXRvcC1hcnJvdyI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0iZC1wb3BvdmVyLWNvbnRlbnQiPlxuICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciBzbWFsbCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz0iZC1wb3BvdmVyLWFycm93IGQtcG9wb3Zlci1ib3R0b20tYXJyb3ciPjwvZGl2PlxuICA8L2Rpdj5cbicsbT0xMCxmPTUscz1lLlBPUE9WRVJfU0VMRUNUT1JTPSJbZGF0YS1odG1sLXBvcG92ZXJdLCBbZGF0YS1odG1sLXRvb2x0aXBdLCBbZGF0YS1wb3BvdmVyXSwgW2RhdGEtdG9vbHRpcF0iO2Z1bmN0aW9uIG8oKXtyZXR1cm4gaCgpLmZhZGVPdXQoKS5yZW1vdmUoKSxoKCl9ZnVuY3Rpb24gcihlLHQpe3QmJihoKCkuZmluZCgiLmQtcG9wb3Zlci1jb250ZW50IikudGV4dCh0KSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGwoZSl9KSl9ZnVuY3Rpb24gYShlLHQpe3QmJihoKCkuZmluZCgiLmQtcG9wb3Zlci1jb250ZW50IikuaHRtbCh0KSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGwoZSl9KSl9ZnVuY3Rpb24gbChlKXt2YXIgdD1oKCk7dC5yZW1vdmVDbGFzcygiaXMtYWJvdmUgaXMtdW5kZXIgaXMtbGVmdC1hbGlnbmVkIGlzLXJpZ2h0LWFsaWduZWQiKTt2YXIgbj0kKCIuZC1oZWFkZXIiKSxpPW4ubGVuZ3RoP25bMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tOjAscz0kKHdpbmRvdykud2lkdGgoKSxvPSQod2luZG93KS5oZWlnaHQoKSxyPXt3aWR0aDp0LndpZHRoKCksaGVpZ2h0OnQuaGVpZ2h0KCksbGVmdDpudWxsLHJpZ2h0Om51bGx9O3Iud2lkdGg+cy0yKmYmJihyLndpZHRoPXMtMipmLHQud2lkdGgoci53aWR0aCkpO3ZhciBhPWVbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbD1vLWEuYm90dG9tLW0sdT1hLnRvcC1pLW07bD5yLmhlaWdodCtmfHx1PGw/dC5jc3MoInRvcCIsYS5ib3R0b20rd2luZG93LnBhZ2VZT2Zmc2V0K20pLmFkZENsYXNzKCJpcy11bmRlciIpOnQuY3NzKCJ0b3AiLGEudG9wK3dpbmRvdy5wYWdlWU9mZnNldC1yLmhlaWdodC1tKS5hZGRDbGFzcygiaXMtYWJvdmUiKTt2YXIgYz1hLmxlZnQrYS53aWR0aC8yOyJsdHIiPT09KDAscC5zaXRlRGlyKSgpP2M+ci53aWR0aC8yK2Y/KHIubGVmdD1jLXIud2lkdGgvMix0LmNzcygibGVmdCIsci5sZWZ0KSk6KHIubGVmdD1mLHQuY3NzKCJsZWZ0IixyLmxlZnQpLmFkZENsYXNzKCJpcy1sZWZ0LWFsaWduZWQiKSk6cy1hLnJpZ2h0PnIud2lkdGgvMitmPyhyLmxlZnQ9Yy1yLndpZHRoLzIsdC5jc3MoImxlZnQiLHIubGVmdCkpOihyLmxlZnQ9cy1yLndpZHRoLTIqZix0LmNzcygibGVmdCIsci5sZWZ0KS5hZGRDbGFzcygiaXMtcmlnaHQtYWxpZ25lZCIpKTt2YXIgZD12b2lkIDAsZD0ibHRyIj09PSgwLHAuc2l0ZURpcikoKT9NYXRoLmFicyhhLmxlZnQtci5sZWZ0KTphLmxlZnQtci5sZWZ0K2Eud2lkdGgvMjt0LmZpbmQoIi5kLXBvcG92ZXItYXJyb3ciKS5jc3MoImxlZnQiLGQpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gJChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2RlY2ltYWwtYWRqdXN0IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PW58fDA9PStuP01hdGhbZV0odCk6KHQ9K3Qsbj0rbixpc05hTih0KXx8Im51bWJlciIhPXR5cGVvZiBufHxuJTEhPTA/TmFOOih0PXQudG9TdHJpbmcoKS5zcGxpdCgiZSIpLCsoKHQ9KHQ9TWF0aFtlXSgrKHRbMF0rImUiKyh0WzFdP3RbMV0tbjotbikpKSkudG9TdHJpbmcoKS5zcGxpdCgiZSIpKVswXSsiZSIrKHRbMV0/K3RbMV0rbjpuKSkpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGVza3RvcC1ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9rZXktdmFsdWUtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGEsbCx0LHUsYyxkLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kaXNhYmxlPWUuY29uZmlybU5vdGlmaWNhdGlvbj1lLmFsZXJ0Q2hhbm5lbD1lLnVuc3Vic2NyaWJlPWUub25Ob3RpZmljYXRpb249ZS5pbml0PWUuY29udGV4dD12b2lkIDA7dmFyIHA9ITEsbT0hMSxmPW51bGwsaT0ieHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4IixoPS0xLHM9ImZvY3VzLXRyYWNrZXIiLGI9MWU0LG89ImRpc2NvdXJzZV9kZXNrdG9wX25vdGlmaWNhdGlvbnNfIixnPW5ldyB0LmRlZmF1bHQobyk7ZnVuY3Rpb24gcigpe2g9RGF0ZS5ub3coKX1mdW5jdGlvbiB2KGUpe3JldHVybiIvbm90aWZpY2F0aW9uLWFsZXJ0LyIrZS5nZXQoImlkIil9ZS5jb250ZXh0PW8sZS5pbml0PWZ1bmN0aW9uKGUsdCl7aWYobT0hMSxpPWUuY2xpZW50SWQsbi5kZWZhdWx0LmN1cnJlbnQoKSl7dHJ5e2cuZ2V0SXRlbShzKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBjb25zb2xlLmluZm8oIkRpc2NvdXJzZSBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgYXJlIGRpc2FibGVkIC0gbG9jYWxTdG9yYWdlIGRlbmllZC4iKX1pZigiTm90aWZpY2F0aW9uImluIHdpbmRvdyl7dHJ5e2lmKCJncmFudGVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uKWY9ITA7ZWxzZSBpZigiZGVuaWVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uKXJldHVybiB2b2lkKGY9ITEpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiVW5leHBlY3RlZCBlcnJvciwgTm90aWZpY2F0aW9uIGlzIGRlZmluZWQgb24gd2luZG93IGJ1dCBub3QgYSByZXNwb25kaW5nIGNvcnJlY3RseSAiK2UpfW09ITA7dHJ5eyFmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGUua2V5IT09IiIrbytzfHx2b2lkKHA9ITEpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3B8fChwPSEwLGcuc2V0SXRlbShzLGkpKX0pLGRvY3VtZW50JiZ2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4mJmRvY3VtZW50LmhpZGRlbj9wPSExOihwPSEwLGcuc2V0SXRlbShzLGkpKTtkb2N1bWVudCYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyKTtlLm9uKCJwYWdlOmNoYW5nZWQiLHIpfSh0KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1lbHNlIGNvbnNvbGUuaW5mbygiRGlzY291cnNlIGRlc2t0b3Agbm90aWZpY2F0aW9ucyBhcmUgZGlzYWJsZWQgLSBub3Qgc3VwcG9ydGVkIGJ5IGJyb3dzZXIiKX19LGUub25Ob3RpZmljYXRpb249ZnVuY3Rpb24obil7dmFyIGksZSxzLG8scjttJiZwJiZoK2I8RGF0ZS5ub3coKSYmKGcuZ2V0SXRlbSgibm90aWZpY2F0aW9ucy1kaXNhYmxlZCIpfHwoaT1JMThuLnQoKGU9bi5ub3RpZmljYXRpb25fdHlwZSwibm90aWZpY2F0aW9ucy5wb3B1cC4iK2QuZGVmYXVsdC5jdXJyZW50KCkuZ2V0KCJub3RpZmljYXRpb25Mb29rdXAiKVtlXSkse3NpdGVfdGl0bGU6RGlzY291cnNlLlNpdGVTZXR0aW5ncy50aXRsZSx0b3BpYzpuLnRvcGljX3RpdGxlLHVzZXJuYW1lOigwLHUuZm9ybWF0VXNlcm5hbWUpKG4udXNlcm5hbWUpfSkscz1uLmV4Y2VycHQsbz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNpdGVfbG9nb19zbWFsbF91cmx8fERpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2l0ZV9sb2dvX3VybCxyPSJkaXNjb3Vyc2Utbm90aWZpY2F0aW9uLSIrRGlzY291cnNlLlNpdGVTZXR0aW5ncy50aXRsZSsiLSIrbi50b3BpY19pZCwoITA9PT1mP2MuUHJvbWlzZS5yZXNvbHZlKCk6ITE9PT1mP2MuUHJvbWlzZS5yZWplY3QoKTpuZXcgYy5Qcm9taXNlKGZ1bmN0aW9uKHQsbil7Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKGUpeygiZ3JhbnRlZCI9PT1lP3Q6bikoKX0pfSkpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1uZXcgTm90aWZpY2F0aW9uKGkse2JvZHk6cyxpY29uOm8sdGFnOnJ9KTtmdW5jdGlvbiB0KCl7bC5kZWZhdWx0LnJvdXRlVG8obi5wb3N0X3VybCksd2luZG93LmZvY3VzKCl9ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdCksKDAsYS5sYXRlcikoZnVuY3Rpb24oKXtlLmNsb3NlKCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdCl9LDFlNCl9KSkpfSxlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsdCl7ZS51bnN1YnNjcmliZSh2KHQpKX0sZS5hbGVydENoYW5uZWw9dixlLmNvbmZpcm1Ob3RpZmljYXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2xvc2UoKX12YXIgdD1uZXcgTm90aWZpY2F0aW9uKEkxOG4udCgibm90aWZpY2F0aW9ucy5wb3B1cC5jb25maXJtX3RpdGxlIix7c2l0ZV90aXRsZTpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRpdGxlfSkse2JvZHk6STE4bi50KCJub3RpZmljYXRpb25zLnBvcHVwLmNvbmZpcm1fYm9keSIpLGljb246RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zaXRlX2xvZ29fc21hbGxfdXJsfHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNpdGVfbG9nb191cmwsdGFnOiJjb25maXJtLXN1YnNjcmlwdGlvbiJ9KTt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlKSwoMCxhLmxhdGVyKShmdW5jdGlvbigpe3QuY2xvc2UoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixlKX0sMWU0KX0sZS5kaXNhYmxlPWZ1bmN0aW9uKCl7Zy5zZXRJdGVtKCJub3RpZmljYXRpb25zLWRpc2FibGVkIiwiZGlzYWJsZWQiKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGlydHkta2V5cyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX0obixbe2tleToia2V5RGlydHkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KHQ9dHx8e30pLmRpcnR5PSEwLHRoaXMuX2tleXNbZV09dH19LHtrZXk6ImZvcmNlQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMua2V5RGlydHkoIioiKX19LHtrZXk6ImFsbERpcnR5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5fa2V5c1siKiJdfX0se2tleToib3B0aW9uc0ZvciIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2tleXNbZV18fHtkaXJ0eTohMX19fSx7a2V5OiJyZW5kZXJlZEtleSIsdmFsdWU6ZnVuY3Rpb24oZSl7IioiPT09ZT90aGlzLl9rZXlzPXt9OmRlbGV0ZSB0aGlzLl9rZXlzW2VdfX1dKSxuKTtmdW5jdGlvbiBuKGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMubmFtZT1lLHRoaXMuX2tleXM9e319ZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGlzY291cnNlLWxvY2F0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJAZW1iZXIvb2JqZWN0L2ludGVybmFscyJdLGZ1bmN0aW9uKGUsdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89ITEsbj13aW5kb3cuaGlzdG9yeSYmInN0YXRlImluIHdpbmRvdy5oaXN0b3J5LHI9W10sYT10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJsb2NhdGlvbiIsdGhpcy5sb2NhdGlvbnx8d2luZG93LmxvY2F0aW9uKSx0aGlzLmluaXRTdGF0ZSgpfSxpbml0U3RhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhpc3Rvcnl8fHdpbmRvdy5oaXN0b3J5O2UmJmUuc2Nyb2xsUmVzdG9yYXRpb24mJihlLnNjcm9sbFJlc3RvcmF0aW9uPSJtYW51YWwiKSx0aGlzLnNldCgiaGlzdG9yeSIsZSk7dmFyIHQ9dGhpcy5mb3JtYXRVUkwodGhpcy5nZXRVUkwoKSk7dGhpcy5sb2NhdGlvbiYmdGhpcy5sb2NhdGlvbi5oYXNoJiYodCs9dGhpcy5sb2NhdGlvbi5oYXNoKSx0aGlzLnJlcGxhY2VTdGF0ZSh0KX0scm9vdFVSTDoiLyIsZ2V0VVJMOmZ1bmN0aW9uKCl7dmFyIGU9KGU9dGhpcy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZShuZXcgUmVnRXhwKCJeIitEaXNjb3Vyc2UuQmFzZVVyaSksIiIpO3JldHVybiBlKz10aGlzLmxvY2F0aW9uLnNlYXJjaHx8IiJ9LHNldFVSTDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMuZ2V0U3RhdGUoKTtlPXRoaXMuZm9ybWF0VVJMKGUpLG4mJm4ucGF0aCE9PWUmJigodD1bZSxuLnBhdGhdKS5pbmNsdWRlcygiLyIpJiZ0LmluY2x1ZGVzKCIvIisoMCxpLmRlZmF1bHRIb21lcGFnZSkoKSl8fHRoaXMucHVzaFN0YXRlKGUpKX0scmVwbGFjZVVSTDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldFN0YXRlKCk7ZT10aGlzLmZvcm1hdFVSTChlKSx0JiZ0LnBhdGg9PT1lfHx0aGlzLnJlcGxhY2VTdGF0ZShlKX0sZ2V0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbj90aGlzLmhpc3Rvcnkuc3RhdGU6dGhpcy5faGlzdG9yeVN0YXRlfSxwdXNoU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9e3BhdGg6ZX07bj90aGlzLmhpc3RvcnkucHVzaFN0YXRlKHQsbnVsbCxlKTp0aGlzLl9oaXN0b3J5U3RhdGU9dCx0aGlzLl9wcmV2aW91c1VSTD10aGlzLmdldFVSTCgpfSxyZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9e3BhdGg6ZX07bj90aGlzLmhpc3RvcnkucmVwbGFjZVN0YXRlKHQsbnVsbCxlKTp0aGlzLl9oaXN0b3J5U3RhdGU9dCx0aGlzLl9wcmV2aW91c1VSTD10aGlzLmdldFVSTCgpfSxvblVwZGF0ZVVSTDpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHQ9KDAscy5ndWlkRm9yKSh0aGlzKTskKHdpbmRvdykub24oInBvcHN0YXRlLmVtYmVyLWxvY2F0aW9uLSIrdCxmdW5jdGlvbigpe3ZhciB0PW4uZ2V0VVJMKCk7IW8mJihvPSEwLHQ9PT1uLl9wcmV2aW91c1VSTCl8fChyLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSxlKHQpKX0pfSxmb3JtYXRVUkw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5yb290VVJMO3JldHVybiIiIT09ZSYmMDwodD10LnJlcGxhY2UoL1wvJC8sIiIpKS5sZW5ndGgmJjA9PT1lLmluZGV4T2YodCsiLyIpJiYodD0iIiksdCtlfSx3aWxsRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0oMCxzLmd1aWRGb3IpKHRoaXMpOyQod2luZG93KS5vZmYoInBvcHN0YXRlLmVtYmVyLWxvY2F0aW9uLSIrZSl9fSk7ZS5kZWZhdWx0PWF9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZXhwb3J0LXJlc3VsdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLm91dHB1dEV4cG9ydFJlc3VsdD1mdW5jdGlvbihlKXtlLnN1Y2Nlc3M/Ym9vdGJveC5hbGVydChJMThuLnQoImFkbWluLmV4cG9ydF9jc3Yuc3VjY2VzcyIpKTpib290Ym94LmFsZXJ0KEkxOG4udCgiYWRtaW4uZXhwb3J0X2Nzdi5mYWlsZWQiKSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC1zeW50YXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvbG9hZC1zY3JpcHQiXSxmdW5jdGlvbihlLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0b2hpZ2hsaWdodF9hbGxfY29kZT8icHJlIGNvZGUiOiJwcmUgY29kZVtjbGFzc10iLG49RGlzY291cnNlLkhpZ2hsaWdodEpTUGF0aDtpZighbilyZXR1cm47JCh0LGUpLmVhY2goZnVuY3Rpb24oZSx0KXskKHQpLnJlbW92ZUNsYXNzKCJsYW5nLWF1dG8iKSwoMCxpLmRlZmF1bHQpKG4pLnRoZW4oZnVuY3Rpb24oKXtzLmZvckVhY2goZnVuY3Rpb24oZSl7dm9pZCAwPT09aGxqcy5nZXRMYW5ndWFnZShlLm5hbWUpJiZobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoZS5uYW1lLGUuZm4pfSksaGxqcy5oaWdobGlnaHRCbG9jayh0KX0pfSl9LGUucmVnaXN0ZXJIaWdobGlnaHRKU0xhbmd1YWdlPWZ1bmN0aW9uKGUsdCl7cy5wdXNoKHtuYW1lOmUsZm46dH0pfTt2YXIgcz1bXX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9oaWdobGlnaHQtdGV4dCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9jb25jZXJucy9zZWFyY2gtY29uc3RhbnRzIl0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ0xBU1NfTkFNRT12b2lkIDAsZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dmFyIG4saSxzPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtfLmlzRW1wdHkodCl8fChuPShuPV8ucmVqZWN0KHQubWF0Y2gobmV3IFJlZ0V4cChvLlBIUkFTRV9NQVRDSF9SRUdFWFBfUEFUVEVSTisifFteXFxzXSsiLCJnIikpLGZ1bmN0aW9uKGUpe3JldHVybiJsIj09PWV9KSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL14iKC4qKSIkLywiJDEiKX0pLGk9e3dvcmRzT25seTohMH0scy5kZWZhdWx0Q2xhc3NOYW1lfHwoaS5jbGFzc05hbWU9ciksZS5oaWdobGlnaHQobixpKSl9O3ZhciByPWUuQ0xBU1NfTkFNRT0ic2VhcmNoLWhpZ2hsaWdodCJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGUuc2hpZnRLZXl8fGUubWV0YUtleXx8ZS5jdHJsS2V5fHxlLmJ1dHRvbiYmMCE9PWUuYnV0dG9ufHxlLnRhcmdldCYmIl9ibGFuayI9PT1lLnRhcmdldC50YXJnZXR9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUud2FudHNOZXdXaW5kb3c9cyxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYocyhlKSlyZXR1cm47dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpLG49dC5hdHRyKCJocmVmIik7aWYoIW58fCIjIj09PW58fHQuYXR0cigidGFyZ2V0Iil8fHQuZGF0YSgiZW1iZXItYWN0aW9uIil8fHQuZGF0YSgiYXV0by1yb3V0ZSIpfHx0LmRhdGEoInNoYXJlLXVybCIpfHx0Lmhhc0NsYXNzKCJ3aWRnZXQtbGluayIpfHx0Lmhhc0NsYXNzKCJyYXctbGluayIpfHx0Lmhhc0NsYXNzKCJtZW50aW9uIil8fCF0Lmhhc0NsYXNzKCJkLWxpbmsiKSYmIXQuZGF0YSgidXNlci1jYXJkIikmJnQuaGFzQ2xhc3MoImVtYmVyLXZpZXciKXx8dC5oYXNDbGFzcygibGlnaHRib3giKXx8MD09PW4uaW5kZXhPZigibWFpbHRvOiIpfHxuLm1hdGNoKC9eaHR0cFtzXT86XC9cLy9pKSYmIW4ubWF0Y2gobmV3IFJlZ0V4cCgiXmh0dHBzPzpcXC9cXC8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiaSIpKSlyZXR1cm47cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxpLmRlZmF1bHQucm91dGVUbyhuKSwhMX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvaXMtZWxlbWVudC1pbi12aWV3cG9ydCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7ZSBpbnN0YW5jZW9mIGpRdWVyeSYmKGU9ZVswXSk7dmFyIHQ9JCh3aW5kb3cpLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gMDw9bi50b3AmJjA8PW4ubGVmdCYmbi5ib3R0b208PXQuaGVpZ2h0KCkmJm4ucmlnaHQ8PXQud2lkdGgoKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIva2V5Ym9hcmQtc2hvcnRjdXRzIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG4saSx0LGcscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz17IiEiOntwb3N0QWN0aW9uOiJzaG93RmxhZ3MifSwiIyI6e2hhbmRsZXI6ImdvVG9Qb3N0Iixhbm9ueW1vdXM6ITB9LCIvIjp7aGFuZGxlcjoidG9nZ2xlU2VhcmNoIixhbm9ueW1vdXM6ITB9LCJjdHJsK2FsdCtmIjp7aGFuZGxlcjoidG9nZ2xlU2VhcmNoIixhbm9ueW1vdXM6ITAsZ2xvYmFsOiEwfSwiPSI6e2hhbmRsZXI6InRvZ2dsZUhhbWJ1cmdlck1lbnUiLGFub255bW91czohMH0sIj8iOntoYW5kbGVyOiJzaG93SGVscE1vZGFsIixhbm9ueW1vdXM6ITB9LCIuIjp7Y2xpY2s6Ii5hbGVydC5hbGVydC1pbmZvLmNsaWNrYWJsZSIsYW5vbnltb3VzOiEwfSxiOntoYW5kbGVyOiJ0b2dnbGVCb29rbWFyayJ9LGM6e2hhbmRsZXI6ImNyZWF0ZVRvcGljIn0sQzp7aGFuZGxlcjoiZm9jdXNDb21wb3NlciJ9LCJjdHJsK2YiOntoYW5kbGVyOiJzaG93UGFnZVNlYXJjaCIsYW5vbnltb3VzOiEwfSwiY29tbWFuZCtmIjp7aGFuZGxlcjoic2hvd1BhZ2VTZWFyY2giLGFub255bW91czohMH0sImN0cmwrcCI6e2hhbmRsZXI6InByaW50VG9waWMiLGFub255bW91czohMH0sImNvbW1hbmQrcCI6e2hhbmRsZXI6InByaW50VG9waWMiLGFub255bW91czohMH0sZDp7cG9zdEFjdGlvbjoiZGVsZXRlUG9zdCJ9LGU6e3Bvc3RBY3Rpb246ImVkaXRQb3N0In0sZW5kOntoYW5kbGVyOiJnb1RvTGFzdFBvc3QiLGFub255bW91czohMH0sImNvbW1hbmQrZG93biI6e2hhbmRsZXI6ImdvVG9MYXN0UG9zdCIsYW5vbnltb3VzOiEwfSxmOntoYW5kbGVyOiJ0b2dnbGVCb29rbWFya1RvcGljIn0sImcgaCI6e3BhdGg6Ii8iLGFub255bW91czohMH0sImcgbCI6e3BhdGg6Ii9sYXRlc3QiLGFub255bW91czohMH0sImcgbiI6e3BhdGg6Ii9uZXcifSwiZyB1Ijp7cGF0aDoiL3VucmVhZCJ9LCJnIGMiOntwYXRoOiIvY2F0ZWdvcmllcyIsYW5vbnltb3VzOiEwfSwiZyB0Ijp7cGF0aDoiL3RvcCIsYW5vbnltb3VzOiEwfSwiZyBiIjp7cGF0aDoiL2Jvb2ttYXJrcyJ9LCJnIHAiOntwYXRoOiIvbXkvYWN0aXZpdHkifSwiZyBtIjp7cGF0aDoiL215L21lc3NhZ2VzIn0sImcgZCI6e3BhdGg6Ii9teS9hY3Rpdml0eS9kcmFmdHMifSwiZyBzIjp7aGFuZGxlcjoiZ29Ub0ZpcnN0U3VnZ2VzdGVkVG9waWMiLGFub255bW91czohMH0saG9tZTp7aGFuZGxlcjoiZ29Ub0ZpcnN0UG9zdCIsYW5vbnltb3VzOiEwfSwiY29tbWFuZCt1cCI6e2hhbmRsZXI6ImdvVG9GaXJzdFBvc3QiLGFub255bW91czohMH0sajp7aGFuZGxlcjoic2VsZWN0RG93biIsYW5vbnltb3VzOiEwfSxrOntoYW5kbGVyOiJzZWxlY3RVcCIsYW5vbnltb3VzOiEwfSxsOntjbGljazoiLnRvcGljLXBvc3Quc2VsZWN0ZWQgYnV0dG9uLnRvZ2dsZS1saWtlIn0sIm0gbSI6e2hhbmRsZXI6InNldFRyYWNraW5nVG9NdXRlZCJ9LCJtIHIiOntoYW5kbGVyOiJzZXRUcmFja2luZ1RvUmVndWxhciJ9LCJtIHQiOntoYW5kbGVyOiJzZXRUcmFja2luZ1RvVHJhY2tpbmcifSwibSB3Ijp7aGFuZGxlcjoic2V0VHJhY2tpbmdUb1dhdGNoaW5nIn0sIm8sZW50ZXIiOntjbGljazpbIi50b3BpYy1saXN0IHRyLnNlbGVjdGVkIGEudGl0bGUiLCIubGF0ZXN0LXRvcGljLWxpc3QgLmxhdGVzdC10b3BpYy1saXN0LWl0ZW0uc2VsZWN0ZWQgZGl2Lm1haW4tbGluayBhLnRpdGxlIiwiLnRvcC10b3BpYy1saXN0IC5sYXRlc3QtdG9waWMtbGlzdC1pdGVtLnNlbGVjdGVkIGRpdi5tYWluLWxpbmsgYS50aXRsZSIsIi5sYXRlc3QgLmZlYXR1cmVkLXRvcGljLnNlbGVjdGVkIGEudGl0bGUiXS5qb2luKCIsICIpLGFub255bW91czohMH0sdGFiOntoYW5kbGVyOiJzd2l0Y2hGb2N1c0NhdGVnb3JpZXNQYWdlIixhbm9ueW1vdXM6ITB9LHA6e2hhbmRsZXI6InNob3dDdXJyZW50VXNlciJ9LHE6e2hhbmRsZXI6InF1b3RlUmVwbHkifSxyOntwb3N0QWN0aW9uOiJyZXBseVRvUG9zdCJ9LHM6e2NsaWNrOiIudG9waWMtcG9zdC5zZWxlY3RlZCBhLnBvc3QtZGF0ZSIsYW5vbnltb3VzOiEwfSwic2hpZnQraiI6e2hhbmRsZXI6Im5leHRTZWN0aW9uIixhbm9ueW1vdXM6ITB9LCJzaGlmdCtrIjp7aGFuZGxlcjoicHJldlNlY3Rpb24iLGFub255bW91czohMH0sInNoaWZ0K3AiOntoYW5kbGVyOiJwaW5VbnBpblRvcGljIn0sInNoaWZ0K3IiOntoYW5kbGVyOiJyZXBseVRvVG9waWMifSwic2hpZnQrcyI6e2NsaWNrOiIjdG9waWMtZm9vdGVyLWJ1dHRvbnMgYnV0dG9uLnNoYXJlIixhbm9ueW1vdXM6ITB9LCJzaGlmdCtsIjp7aGFuZGxlcjoiZ29Ub1VucmVhZFBvc3QifSwic2hpZnQreiBzaGlmdCt6Ijp7aGFuZGxlcjoibG9nb3V0In0sInNoaWZ0K2YxMSI6e2hhbmRsZXI6ImZ1bGxzY3JlZW5Db21wb3NlciIsZ2xvYmFsOiEwfSwic2hpZnQrdSI6e2hhbmRsZXI6ImRlZmVyVG9waWMifSwic2hpZnQrYSI6e2hhbmRsZXI6InRvZ2dsZUFkbWluQWN0aW9ucyJ9LHQ6e3Bvc3RBY3Rpb246InJlcGx5QXNOZXdUb3BpYyJ9LHU6e2hhbmRsZXI6ImdvQmFjayIsYW5vbnltb3VzOiEwfSwieCByIjp7Y2xpY2s6IiNkaXNtaXNzLW5ldywjZGlzbWlzcy1uZXctdG9wLCNkaXNtaXNzLXBvc3RzLCNkaXNtaXNzLXBvc3RzLXRvcCJ9LCJ4IHQiOntjbGljazoiI2Rpc21pc3MtdG9waWNzLCNkaXNtaXNzLXRvcGljcy10b3AifX07ZS5kZWZhdWx0PXtiaW5kRXZlbnRzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLmtleVRyYXBwZXI9ZSx0aGlzLmNvbnRhaW5lcj10LHRoaXMuX3N0b3BDYWxsYmFjaygpLHRoaXMuc2VhcmNoU2VydmljZT10aGlzLmNvbnRhaW5lci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKSx0aGlzLmFwcEV2ZW50cz10aGlzLmNvbnRhaW5lci5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLHRoaXMuY3VycmVudFVzZXI9dGhpcy5jb250YWluZXIubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpLHRoaXMuY29udGFpbmVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikuZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzfHxkZWxldGUgb1siZyBtIl0sT2JqZWN0LmtleXMobykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1vW2VdOyh0LmFub255bW91c3x8bi5jdXJyZW50VXNlcikmJih0LnBhdGg/bi5fYmluZFRvUGF0aCh0LnBhdGgsZSk6dC5oYW5kbGVyP3QuZ2xvYmFsP24uX2dsb2JhbEJpbmRUb0Z1bmN0aW9uKHQuaGFuZGxlcixlKTpuLl9iaW5kVG9GdW5jdGlvbih0LmhhbmRsZXIsZSk6dC5wb3N0QWN0aW9uP24uX2JpbmRUb1NlbGVjdGVkUG9zdCh0LnBvc3RBY3Rpb24sZSk6dC5jbGljayYmbi5fYmluZFRvQ2xpY2sodC5jbGljayxlKSl9KX0sdG9nZ2xlQm9va21hcms6ZnVuY3Rpb24oKXt0aGlzLnNlbmRUb1NlbGVjdGVkUG9zdCgidG9nZ2xlQm9va21hcmsiKSx0aGlzLnNlbmRUb1RvcGljTGlzdEl0ZW1WaWV3KCJ0b2dnbGVCb29rbWFyayIpfSx0b2dnbGVCb29rbWFya1RvcGljOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VG9waWMoKSYmMDwkKCIucG9zdHMtd3JhcHBlciIpLmxlbmd0aD90aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKS5zZW5kKCJ0b2dnbGVCb29rbWFyayIpOnRoaXMuc2VuZFRvVG9waWNMaXN0SXRlbVZpZXcoInRvZ2dsZUJvb2ttYXJrIil9LGxvZ291dDpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgicm91dGU6YXBwbGljYXRpb24iKS5zZW5kKCJsb2dvdXQiKX0scXVvdGVSZXBseTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbmRUb1NlbGVjdGVkUG9zdCgicmVwbHlUb1Bvc3QiKSwoMCxuLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiAkKCIuZC1lZGl0b3IgLnF1b3RlIikuY2xpY2soKX0sNTAwKSwhMX0sZ29Ub0ZpcnN0U3VnZ2VzdGVkVG9waWM6ZnVuY3Rpb24oKXt2YXIgbixlLHQ9JCgiLnN1Z2dlc3RlZC10b3BpY3MgYS5yYXctdG9waWMtbGluazpmaXJzdCIpO3QubGVuZ3RoP3QuY2xpY2soKTooZT0iL3QvIisobj10aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKSkuZ2V0KCJtb2RlbC5pZCIpKyIvbGFzdC5qc29uIiwoMCxzLmFqYXgpKGUpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZS5zdWdnZXN0ZWRfdG9waWNzJiYwPGUuc3VnZ2VzdGVkX3RvcGljcy5sZW5ndGgmJih0PW4uc3RvcmUuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZS5zdWdnZXN0ZWRfdG9waWNzWzBdKSxpLmRlZmF1bHQucm91dGVUbyh0LmdldCgidXJsIikpKX0pKX0sZ29Ub0ZpcnN0UG9zdDpmdW5jdGlvbigpe3RoaXMuX2p1bXBUbygianVtcFRvcCIpfSxnb1RvTGFzdFBvc3Q6ZnVuY3Rpb24oKXt0aGlzLl9qdW1wVG8oImp1bXBCb3R0b20iKX0sZ29Ub1VucmVhZFBvc3Q6ZnVuY3Rpb24oKXt0aGlzLl9qdW1wVG8oImp1bXBVbnJlYWQiKX0sX2p1bXBUbzpmdW5jdGlvbihlKXskKCIuY29udGFpbmVyLnBvc3RzIikubGVuZ3RoJiZ0aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKS5zZW5kKGUpfSxyZXBseVRvVG9waWM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwbHlUb1Bvc3QoKSwhMX0sc2VsZWN0RG93bjpmdW5jdGlvbigpe3RoaXMuX21vdmVTZWxlY3Rpb24oMSl9LHNlbGVjdFVwOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVNlbGVjdGlvbigtMSl9LGdvQmFjazpmdW5jdGlvbigpe2hpc3RvcnkuYmFjaygpfSxuZXh0U2VjdGlvbjpmdW5jdGlvbigpe3RoaXMuX2NoYW5nZVNlY3Rpb24oMSl9LHByZXZTZWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5fY2hhbmdlU2VjdGlvbigtMSl9LHNob3dQYWdlU2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7KDAsbi5ydW4pKGZ1bmN0aW9uKCl7dC5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmtleWJvYXJkLXRyaWdnZXIiLHt0eXBlOiJwYWdlLXNlYXJjaCIsZXZlbnQ6ZX0pfSl9LHByaW50VG9waWM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCxuLnJ1bikoZnVuY3Rpb24oKXskKCIuY29udGFpbmVyLnBvc3RzIikubGVuZ3RoJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHQuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpLnByaW50KCkpfSl9LGNyZWF0ZVRvcGljOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5jYW5fY3JlYXRlX3RvcGljJiYoKGU9JCgiI2NyZWF0ZS10b3BpYyIpKS5sZW5ndGg/ZS5jbGljaygpOnRoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjpjb21wb3NlciIpLm9wZW4oe2FjdGlvbjp0LmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OnQuZGVmYXVsdC5ORVdfVE9QSUNfS0VZfSkpfSxmb2N1c0NvbXBvc2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7ZS5nZXQoIm1vZGVsLnZpZXdPcGVuIik/c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiAkKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLmZvY3VzKCl9LDApOmUuc2VuZCgib3BlbklmRHJhZnQiKX0sZnVsbHNjcmVlbkNvbXBvc2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7ZS5nZXQoIm1vZGVsIikmJmUudG9nZ2xlRnVsbHNjcmVlbigpfSxwaW5VbnBpblRvcGljOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOnRvcGljIikudG9nZ2xlUGlubmVkU3RhdGUoKX0sZ29Ub1Bvc3Q6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzprZXlib2FyZC10cmlnZ2VyIix7dHlwZToianVtcCJ9KX0sdG9nZ2xlU2VhcmNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InNlYXJjaCIsZXZlbnQ6ZX0pLCExfSx0b2dnbGVIYW1idXJnZXJNZW51OmZ1bmN0aW9uKGUpe3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjprZXlib2FyZC10cmlnZ2VyIix7dHlwZToiaGFtYnVyZ2VyIixldmVudDplfSl9LHNob3dDdXJyZW50VXNlcjpmdW5jdGlvbihlKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InVzZXIiLGV2ZW50OmV9KX0sc2hvd0hlbHBNb2RhbDpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjphcHBsaWNhdGlvbiIpLnNlbmQoInNob3dLZXlib2FyZFNob3J0Y3V0c0hlbHAiKX0sc2V0VHJhY2tpbmdUb011dGVkOmZ1bmN0aW9uKGUpeygwLG4udGhyb3R0bGUpKHRoaXMsIl9zZXRUcmFja2luZyIse2lkOjAsZXZlbnQ6ZX0sMjUwLCEwKX0sc2V0VHJhY2tpbmdUb1JlZ3VsYXI6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MSxldmVudDplfSwyNTAsITApfSxzZXRUcmFja2luZ1RvVHJhY2tpbmc6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MixldmVudDplfSwyNTAsITApfSxzZXRUcmFja2luZ1RvV2F0Y2hpbmc6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MyxldmVudDplfSwyNTAsITApfSxfc2V0VHJhY2tpbmc6ZnVuY3Rpb24oZSl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIse3R5cGU6Im5vdGlmaWNhdGlvbiIsaWQ6ZS5pZCxldmVudDplLmV2ZW50fSl9LHNlbmRUb1RvcGljTGlzdEl0ZW1WaWV3OmZ1bmN0aW9uKGUpe3ZhciB0LG49JCgidHIuc2VsZWN0ZWQudG9waWMtbGlzdC1pdGVtLmVtYmVyLXZpZXciKVswXTshbnx8KHQ9dGhpcy5jb250YWluZXIubG9va3VwKCItdmlldy1yZWdpc3RyeTptYWluIikpJiZ0W24uaWRdLnNlbmQoZSl9LGN1cnJlbnRUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpO2lmKGUpe3ZhciB0PWUuZ2V0KCJtb2RlbCIpO2lmKHQpcmV0dXJuIHR9fSxzZW5kVG9TZWxlY3RlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcy5jb250YWluZXIsbz1wYXJzZUludCgkKCIudG9waWMtcG9zdC5zZWxlY3RlZCBhcnRpY2xlLmJveGVkIikuZGF0YSgicG9zdC1pZCIpLDEwKTtyZXR1cm4gbyYmKCEobj0odD1zLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpKS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHMiKS5maW5kQnkoImlkIixvKSl8fChpPSh0LmFjdGlvbnNbZV18fHMubG9va3VwKCJyb3V0ZTp0b3BpYyIpLmFjdGlvbnNbZV0pLmNhbGwodCxuKSkmJmkudGhlbiYmdGhpcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOm99KSksITF9LF9iaW5kVG9TZWxlY3RlZFBvc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3RoaXMua2V5VHJhcHBlci5iaW5kKHQsZnVuY3Rpb24oKXtyZXR1cm4gbi5zZW5kVG9TZWxlY3RlZFBvc3QoZSl9KX0sX2JpbmRUb1BhdGg6ZnVuY3Rpb24oZSx0KXt0aGlzLmtleVRyYXBwZXIuYmluZCh0LGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5yb3V0ZVRvKERpc2NvdXJzZS5CYXNlVXJpK2UpfSl9LF9iaW5kVG9DbGljazpmdW5jdGlvbihuLGUpe2U9ZS5zcGxpdCgiLCIpLHRoaXMua2V5VHJhcHBlci5iaW5kKGUsZnVuY3Rpb24oZSl7dmFyIHQ9JChuKTtpZihlJiYxMz09PWUua2V5Q29kZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCl9dC5jbGljaygpfSl9LF9nbG9iYWxCaW5kVG9GdW5jdGlvbjpmdW5jdGlvbihlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2VdJiZ0aGlzLmtleVRyYXBwZXIuYmluZEdsb2JhbCh0LHRoaXNbZV0uYmluZCh0aGlzKSl9LF9iaW5kVG9GdW5jdGlvbjpmdW5jdGlvbihlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2VdJiZ0aGlzLmtleVRyYXBwZXIuYmluZCh0LHRoaXNbZV0uYmluZCh0aGlzKSl9LF9tb3ZlU2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PStuZXcgRGF0ZSxuPXRoaXMuX2xhc3RNb3ZlVGltZSYmdC10aGlzLl9sYXN0TW92ZVRpbWU8MTUwO3RoaXMuX2xhc3RNb3ZlVGltZT10O3ZhciBpPXRoaXMuX2ZpbmRBcnRpY2xlcygpO2lmKHZvaWQgMCE9PWkpe3ZhciBzLG8scixhLGwsdT1pLmZpbHRlcigiLnNlbGVjdGVkIik7MD09PXUubGVuZ3RoJiYodT1pLmZpbHRlcigiW2RhdGEtaXNsYXN0dmlld2VkdG9waWM9dHJ1ZV0iKSksMD09PXUubGVuZ3RofHxufHwocz0oMCxnLm1pbmltdW1PZmZzZXQpKCkscj0obz0kKHdpbmRvdykuc2Nyb2xsVG9wKCktcykrd2luZG93LmlubmVySGVpZ2h0K3MsYT11Lm9mZnNldCgpLnRvcCwodS5vZmZzZXQoKS50b3ArdS5oZWlnaHQoKTxvfHxyPGEpJiYodT1udWxsKSksdSYmMCE9PXUubGVuZ3RofHwobD0oMCxnLm1pbmltdW1PZmZzZXQpKCksdT0odT1pLnRvQXJyYXkoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcD5sfSkpfHxpW2kubGVuZ3RoLTFdLGU9MCk7dmFyIGM9aS5pbmRleCh1KSxkPWkuZXEoYyk7aWYoIW4mJjAhPT1lJiYwPGQubGVuZ3RoKXt2YXIgcD1kLmlzKCIudG9waWMtcG9zdCIpJiZkLmZpbmQoIiNwb3N0XzEiKS5sZW5ndGg/MDpkLm9mZnNldCgpLnRvcCxtPWQub2Zmc2V0KCkudG9wK2RbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LGY9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGg9Zit3aW5kb3cuaW5uZXJIZWlnaHQ7aWYoZTwwJiZwPGYpcmV0dXJuIHRoaXMuX3Njcm9sbFRvKE1hdGgubWF4KGYtd2luZG93LmlubmVySGVpZ2h0KzMqKDAsZy5taW5pbXVtT2Zmc2V0KSgpLHAtKDAsZy5taW5pbXVtT2Zmc2V0KSgpKSk7aWYoMDxlJiZoPG0tKDAsZy5taW5pbXVtT2Zmc2V0KSgpKXJldHVybiB0aGlzLl9zY3JvbGxUbyhNYXRoLm1pbihoLTMqKDAsZy5taW5pbXVtT2Zmc2V0KSgpLG0td2luZG93LmlubmVySGVpZ2h0KSl9aWYoMCE9PXUubGVuZ3RoKXtpZigtMT09PWUmJjA9PT1jKXJldHVybjtpZigxPT09ZSYmYz09PWkubGVuZ3RoLTEpcmV0dXJufWlmKDA8KGQ9aS5lcShjK2UpKS5sZW5ndGgpe2kucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksZC5hZGRDbGFzcygic2VsZWN0ZWQiKTt2YXIgYj1kWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFuJiZlPDAmJmIuaGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodClyZXR1cm4gdGhpcy5fc2Nyb2xsVG8oZC5vZmZzZXQoKS50b3ArYi5oZWlnaHQtd2luZG93LmlubmVySGVpZ2h0KTtpZihkLmlzKCIudG9waWMtcG9zdCIpKXJldHVybiB0aGlzLl9zY3JvbGxUbygwPGQuZmluZCgiI3Bvc3RfMSIpLmxlbmd0aD8wOmQub2Zmc2V0KCkudG9wLSgwLGcubWluaW11bU9mZnNldCkoKSxmdW5jdGlvbigpe3JldHVybiAkKCJhLnRhYkxvYyIsZCkuZm9jdXMoKX0pO3RoaXMuX3Njcm9sbExpc3QoZCxlKX19fSxfc2Nyb2xsVG86ZnVuY3Rpb24oZSx0KXskKCJodG1sLCBib2R5Iikuc3RvcCghMCwhMCkuYW5pbWF0ZSh7c2Nyb2xsVG9wOmV9LHtkdXJhdGlvbjoxMDAsY29tcGxldGU6dH0pfSxfc2Nyb2xsTGlzdDpmdW5jdGlvbihlKXt2YXIgdCxuPWUub2Zmc2V0KCksaT1lLmhlaWdodCgpLHM9JCgiaGVhZGVyLmQtaGVhZGVyIikuaGVpZ2h0KCksbz0kKHdpbmRvdykuc2Nyb2xsVG9wKCkscj0kKHdpbmRvdykuaGVpZ2h0KCk7bi50b3Atcz5vJiZuLnRvcCtpPG8rcnx8KHQ9bi50b3AraS8yLS41KnIsci1zPGkmJih0PW4udG9wLXMpLHQ8MCYmKHQ9MCksdGhpcy5fc2Nyb2xsQW5pbWF0aW9uJiZ0aGlzLl9zY3JvbGxBbmltYXRpb24uc3RvcCgpLHRoaXMuX3Njcm9sbEFuaW1hdGlvbj0kKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOnQrInB4In0sMTAwKSl9LGNhdGVnb3JpZXNUb3BpY3NMaXN0OmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuY29udGFpbmVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikuZGVza3RvcF9jYXRlZ29yeV9wYWdlX3N0eWxlKXtjYXNlImNhdGVnb3JpZXNfd2l0aF9mZWF0dXJlZF90b3BpY3MiOnJldHVybiAkKCIubGF0ZXN0IC5mZWF0dXJlZC10b3BpYyIpO2Nhc2UiY2F0ZWdvcmllc19hbmRfbGF0ZXN0X3RvcGljcyI6cmV0dXJuICQoIi5sYXRlc3QtdG9waWMtbGlzdCAubGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIpO2Nhc2UiY2F0ZWdvcmllc19hbmRfdG9wX3RvcGljcyI6cmV0dXJuICQoIi50b3AtdG9waWMtbGlzdCAubGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIpO2RlZmF1bHQ6cmV0dXJuICQoKX19LF9maW5kQXJ0aWNsZXM6ZnVuY3Rpb24oKXt2YXIgZT0kKCIudG9waWMtbGlzdCIpLHQ9JCgiLnBvc3RzLXdyYXBwZXIiKSxuPXRoaXMuY2F0ZWdvcmllc1RvcGljc0xpc3QoKTtyZXR1cm4gMDx0Lmxlbmd0aD8kKCIucG9zdHMtd3JhcHBlciAudG9waWMtcG9zdCwgLnRvcGljLWxpc3QgdGJvZHkgdHIiKTowPGUubGVuZ3RoP2UuZmluZCgiLnRvcGljLWxpc3QtaXRlbSIpOjA8bi5sZW5ndGg/bjp2b2lkIDB9LF9jaGFuZ2VTZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIi5uYXYubmF2LXBpbGxzIGxpIiksbj0kKCIubmF2Lm5hdi1waWxscyBsaS5hY3RpdmUiKSxpPXQuaW5kZXgobikrZTswPD1pJiZpPHQubGVuZ3RoJiZ0LmVxKGkpLmZpbmQoImEiKS5jbGljaygpfSxfc3RvcENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5rZXlUcmFwcGVyLnByb3RvdHlwZS5zdG9wQ2FsbGJhY2s7dGhpcy5rZXlUcmFwcGVyLnByb3RvdHlwZS5zdG9wQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuKCJjdHJsK2YiIT09biYmImNvbW1hbmQrZiIhPT1ufHwic2VhcmNoLXRlcm0iIT09dC5pZCkmJnMuY2FsbCh0aGlzLGUsdCxuLGkpfX0sX3JlcGx5VG9Qb3N0OmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOnRvcGljIikuc2VuZCgicmVwbHlUb1Bvc3QiKX0sZGVmZXJUb3BpYzpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpLnNlbmQoImRlZmVyVG9waWMiKX0sdG9nZ2xlQWRtaW5BY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6dG9nZ2xlLWFjdGlvbnMiKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xhenktbG9hZC1pbWFnZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXR1cExhenlMb2FkaW5nPWZ1bmN0aW9uKGUpe3ZhciBpPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7ZS5pc0ludGVyc2VjdGluZyYmKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZ2V0KGUpO3t2YXIgbixpLHMsbzt0Pygobj1uZXcgSW1hZ2UpLm9ubG9hZD1mdW5jdGlvbigpe2Uuc3JjPW4uc3JjLG4uc3Jjc2V0JiYoZS5zcmNzZXQ9bi5zcmNzZXQpLGUuY2xhc3NMaXN0LnJlbW92ZSgiZC1sYXp5bG9hZC1oaWRkZW4iKSxlLm9ubG9hZD9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobik6ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZS5vbmxvYWQ9bnVsbH0sbi5vbmxvYWQ9bnVsbH0sbi5zcmM9dC5zcmMsdC5zcmNzZXQmJihuLnNyY3NldD10LnNyY3NldCksaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxzPXBhcnNlSW50KGkud2lkdGgsMTApLG89cGFyc2VJbnQoaS5oZWlnaHQsMTApLG4uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixuLnN0eWxlLnRvcD1lLm9mZnNldFRvcCsicHgiLG4uc3R5bGUubGVmdD1lLm9mZnNldExlZnQrInB4IixuLnN0eWxlLndpZHRoPXMrInB4IixuLnN0eWxlLmhlaWdodD1vKyJweCIsbi5jbGFzc05hbWU9dC5jbGFzc05hbWUsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGUubmV4dFNpYmxpbmcpKTplLmNsYXNzTGlzdC5yZW1vdmUoImQtbGF6eWxvYWQtaGlkZGVuIil9fSh0KSxpLnVub2JzZXJ2ZSh0KSl9KX0sdCk7ZS5kZWNvcmF0ZUNvb2tlZChmdW5jdGlvbihlKXskKCJpbWciLGUpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbjt0LndpZHRoPj1zJiZ0LmhlaWdodD49cyYmKChuPXQpLmNsYXNzTGlzdC5hZGQoImQtbGF6eWxvYWQiKSxuLmNsYXNzTGlzdC5hZGQoImQtbGF6eWxvYWQtaGlkZGVuIiksci5zZXQobix7c3JjOm4uc3JjLHNyY3NldDpuLnNyY3NldCx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxjbGFzc05hbWU6bi5jbGFzc05hbWV9KSxuLnJlbW92ZUF0dHJpYnV0ZSgic3Jjc2V0Iiksbi5zcmM9bi5kYXRhc2V0LnNtYWxsVXBsb2FkfHxvLG4ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNtYWxsLXVwbG9hZCIpLGkub2JzZXJ2ZSh0KSl9KX0se29ubHlTdHJlYW06ITAsaWQ6ImRpc2NvdXJzZS1sYXp5LWxvYWQifSl9O3ZhciB0PXtyb290TWFyZ2luOiI2NiUifSxzPTE1MCxyPW5ldyBXZWFrTWFwLG89ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09In0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9saWdodGJveCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9sb2FkLXNjcmlwdCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2hlbHBlcnMvbG9hZGluZy1zcGlubmVyIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe3QmJigwLG4uZGVmYXVsdCkoIi9qYXZhc2NyaXB0cy9qcXVlcnkubWFnbmlmaWMtcG9wdXAubWluLmpzIikudGhlbihmdW5jdGlvbigpe3ZhciBlPXQuZmluZCgiLnNwb2lsZXIgYS5saWdodGJveCwgLnNwb2lsZWQgYS5saWdodGJveCIpO3QuZmluZCgiYS5saWdodGJveCIpLm5vdChlKS5tYWduaWZpY1BvcHVwKHt0eXBlOiJpbWFnZSIsY2xvc2VPbkNvbnRlbnRDbGljazohMSxyZW1vdmFsRGVsYXk6MzAwLG1haW5DbGFzczoibWZwLXpvb20taW4iLHRDbG9zZTpJMThuLnQoImxpZ2h0Ym94LmNsb3NlIiksdExvYWRpbmc6by5zcGlubmVySFRNTCxnYWxsZXJ5OntlbmFibGVkOiEwLHRQcmV2OkkxOG4udCgibGlnaHRib3gucHJldmlvdXMiKSx0TmV4dDpJMThuLnQoImxpZ2h0Ym94Lm5leHQiKSx0Q291bnRlcjpJMThuLnQoImxpZ2h0Ym94LmNvdW50ZXIiKX0sYWpheDp7dEVycm9yOkkxOG4udCgibGlnaHRib3guY29udGVudF9sb2FkX2Vycm9yIil9LGNhbGxiYWNrczp7b3BlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMud3JhcCx0PXRoaXMuY3Vyckl0ZW0uaW1nLG49dC5jc3MoIm1heC1oZWlnaHQiKTtlLm9uKCJjbGljay5waW5oYW5kbGVyIiwiaW1nIixmdW5jdGlvbigpe2UudG9nZ2xlQ2xhc3MoIm1mcC1mb3JjZS1zY3JvbGxiYXJzIiksdC5jc3MoIm1heC1oZWlnaHQiLGUuaGFzQ2xhc3MoIm1mcC1mb3JjZS1zY3JvbGxiYXJzIik/Im5vbmUiOm4pfSksKDAsaS5pc0FwcFdlYnZpZXcpKCkmJigwLGkucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJoZWFkZXJCZyIsJCgiLm1mcC1iZyIpLmNzcygiYmFja2dyb3VuZC1jb2xvciIpKX0sYmVmb3JlQ2xvc2U6ZnVuY3Rpb24oKXt0aGlzLndyYXAub2ZmKCJjbGljay5waW5oYW5kbGVyIiksdGhpcy53cmFwLnJlbW92ZUNsYXNzKCJtZnAtZm9yY2Utc2Nyb2xsYmFycyIpLCgwLGkuaXNBcHBXZWJ2aWV3KSgpJiYoMCxpLnBvc3RSTldlYnZpZXdNZXNzYWdlKSgiaGVhZGVyQmciLCQoIi5kLWhlYWRlciIpLmNzcygiYmFja2dyb3VuZC1jb2xvciIpKX19LGltYWdlOnt0RXJyb3I6STE4bi50KCJsaWdodGJveC5pbWFnZV9sb2FkX2Vycm9yIiksdGl0bGVTcmM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5lbC5kYXRhKCJkb3dubG9hZC1ocmVmIil8fGUuc3JjLG49WygwLGkuZXNjYXBlRXhwcmVzc2lvbikoZS5lbC5hdHRyKCJ0aXRsZSIpKSwkKCJzcGFuLmluZm9ybWF0aW9ucyIsZS5lbCkudGV4dCgpXTtyZXR1cm4gRGlzY291cnNlLlNpdGVTZXR0aW5ncy5wcmV2ZW50X2Fub25zX2Zyb21fZG93bmxvYWRpbmdfZmlsZXMmJiFyLmRlZmF1bHQuY3VycmVudCgpfHxuLnB1c2goJzxhIGNsYXNzPSJpbWFnZS1zb3VyY2UtbGluayIgaHJlZj0iJyt0KyciPicrKDAscy5yZW5kZXJJY29uKSgic3RyaW5nIiwiZG93bmxvYWQiKStJMThuLnQoImxpZ2h0Ym94LmRvd25sb2FkIikrIjwvYT4iKSxuLmpvaW4oIiAmbWlkZG90OyAiKX19fSl9KX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbGluay1jYXRlZ29yeS1oYXNodGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LWhhc2h0YWdzIl0sZnVuY3Rpb24oZSxzLG4scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxpbmtTZWVuQ2F0ZWdvcnlIYXNodGFncz1mdW5jdGlvbihlKXt2YXIgdD0kKCJzcGFuLmhhc2h0YWc6bm90KC4iK3UrIikiLGUpLG49W107e3ZhciBpO3QubGVuZ3RoJiYoKGk9dC5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0KS50ZXh0KCkuc3Vic3RyKDEpfSkpLmxlbmd0aCYmXy51bmlxKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7LTE9PT1sLmluZGV4T2YoZSkmJm4ucHVzaChlKX0pLGZ1bmN0aW9uKGUsbyl7KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2UuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPW9bZV0saT1hW25dLHM9JCh0KTtpPygwLHIucmVwbGFjZVNwYW4pKHMsbixpKTotMSE9PWwuaW5kZXhPZihuKSYmcy5hZGRDbGFzcyh1KX0pfSl9KHQsaSkpfXJldHVybiBufSxlLmZldGNoVW5zZWVuQ2F0ZWdvcnlIYXNodGFncz1mdW5jdGlvbih0KXtyZXR1cm4oMCxuLmFqYXgpKCIvY2F0ZWdvcnlfaGFzaHRhZ3MvY2hlY2siLHtkYXRhOntjYXRlZ29yeV9zbHVnczp0fX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS52YWxpZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2FbZS5zbHVnXT1lLnVybH0pLGwucHVzaC5hcHBseShsLHQpfSl9O3ZhciBhPXt9LGw9W10sdT0iaGFzaHRhZy10ZXN0ZWQifSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xpbmstbG9va3VwIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz17fSxyPVshMSxudWxsXSx0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmkoZS5wcm90b3R5cGUsdCksbiYmaShlLG4pLGV9KG4sW3trZXk6ImNoZWNrIix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKG9bdF0pcmV0dXJuIHI7dmFyIG49dC5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihvW25dKXJldHVybiByO3ZhciBpPXRoaXMuX2xpbmtzW25dO2lmKGkpe2lmKGUpe2lmKGUpe3ZhciBzPWUuZ2V0KCJwb3N0X251bWJlciIpO2lmKDE9PT1zfHxzPT09aS5wb3N0X251bWJlcilyZXR1cm4gcn1pZihtb21lbnQoZS5nZXQoImNyZWF0ZWRfYXQiKSkuaXNCZWZvcmUobW9tZW50KCkuc3VidHJhY3QoMiwid2Vla3MiKSkpcmV0dXJuIHJ9cmV0dXJuIG9bdF09ITAsW29bbl09ITAsaV19cmV0dXJuIHJ9fV0pLG4pO2Z1bmN0aW9uIG4oZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fbGlua3M9ZX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9saW5rLW1lbnRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLG8sbixyLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5saW5rU2Vlbk1lbnRpb25zPWZ1bmN0aW9uKGUsdCl7dmFyIG49JCgic3Bhbi5tZW50aW9uOm5vdCgubWVudGlvbi10ZXN0ZWQpIixlKTtpZihuLmxlbmd0aCl7dmFyIGk9bi5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0KS50ZXh0KCkuc3Vic3RyKDEpfSk7cmV0dXJuIGZ1bmN0aW9uKGUscyl7KDAsby5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9c1tlXTtjW2kudG9Mb3dlckNhc2UoKV0/dShuLGkse2Nhbm5vdF9zZWU6ZltpXX0pOnBbaV0/dShuLGkse2dyb3VwOiEwLG1lbnRpb25hYmxlOnBbaV19KTpkW2ldP3UobixpLHtncm91cDohMH0pOm1baV0mJm4uYWRkQ2xhc3MoIm1lbnRpb24tdGVzdGVkIil9KX0pfShuLGkpLF8udW5pcShpKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIW1bZV0mJmUubGVuZ3RoPj10Lm1pbl91c2VybmFtZV9sZW5ndGh9KX1yZXR1cm5bXX0sZS5mZXRjaFVuc2Vlbk1lbnRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsbi5hamF4KSgoMCxyLnVzZXJQYXRoKSgiaXNfbG9jYWxfdXNlcm5hbWUiKSx7ZGF0YTp7dXNlcm5hbWVzOnQsdG9waWNfaWQ6ZX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbGlkLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV09ITB9KSxlLnZhbGlkX2dyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBkW2VdPSEwfSksZS5tZW50aW9uYWJsZV9ncm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gcFtlLm5hbWVdPWV9KSxlLmNhbm5vdF9zZWUuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZltlXT0hMH0pLGw9ZS5tYXhfdXNlcnNfbm90aWZpZWRfcGVyX2dyb3VwX21lbnRpb24sdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBtW2VdPSEwfSksZX0pfTt2YXIgbD12b2lkIDA7ZnVuY3Rpb24gdShlLHQsbil7dmFyIGk9IiIscz0iIjtuJiZuLmdyb3VwPyhuLm1lbnRpb25hYmxlJiYoaT0iZGF0YS1uYW1lPSciK3QrIicgZGF0YS1tZW50aW9uYWJsZS11c2VyLWNvdW50PSciK24ubWVudGlvbmFibGUudXNlcl9jb3VudCsiJyBkYXRhLW1heC1tZW50aW9ucz0nIitsKyInIixzPSJub3RpZnkiKSxlLnJlcGxhY2VXaXRoKCI8YSBocmVmPSciKyhEaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iKSt0KSsiJyBjbGFzcz0nbWVudGlvbi1ncm91cCAiK3MrIicgIitpKyI+QCIrdCsiPC9hPiIpKToobiYmbi5jYW5ub3Rfc2VlJiYoaT0iZGF0YS1uYW1lPSciK3QrIiciLHM9ImNhbm5vdC1zZWUiKSxlLnJlcGxhY2VXaXRoKCI8YSBocmVmPSciKygwLHIudXNlclBhdGgpKHQudG9Mb3dlckNhc2UoKSkrIicgY2xhc3M9J21lbnRpb24gIitzKyInICIraSsiPkAiKygwLGEuZm9ybWF0VXNlcm5hbWUpKHQpKyI8L2E+IikpfXZhciBjPXt9LGQ9e30scD17fSxtPXt9LGY9W119KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbGluay10YWctaGFzaHRhZyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi90YWctaGFzaHRhZ3MiXSxmdW5jdGlvbihlLHMsbixyLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5saW5rU2VlblRhZ0hhc2h0YWdzPWZ1bmN0aW9uKGUpe3ZhciB0PSQoInNwYW4uaGFzaHRhZzpub3QoLiIrdSsiKSIsZSksbj1bXTt7dmFyIGk7dC5sZW5ndGgmJigoaT10Lm1hcChmdW5jdGlvbihlLHQpe3JldHVybiAkKHQpLnRleHQoKS5zdWJzdHIoMSkucmVwbGFjZShvLlRBR19IQVNIVEFHX1BPU1RGSVgsIiIpfSkpLmxlbmd0aCYmXy51bmlxKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7LTE9PT1sLmluZGV4T2YoZSkmJm4ucHVzaChlKX0pLGZ1bmN0aW9uKGUsbyl7KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2UuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPW9bZV0saT1hW25dLHM9JCh0KTtpPygwLHIucmVwbGFjZVNwYW4pKHMsbixpKTotMSE9PWwuaW5kZXhPZihuKSYmcy5hZGRDbGFzcyh1KX0pfSl9KHQsaSkpfXJldHVybiBufSxlLmZldGNoVW5zZWVuVGFnSGFzaHRhZ3M9ZnVuY3Rpb24odCl7cmV0dXJuKDAsbi5hamF4KSgiL3RhZ3MvY2hlY2siLHtkYXRhOnt0YWdfdmFsdWVzOnR9fSkudGhlbihmdW5jdGlvbihlKXtlLnZhbGlkLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlLnZhbHVlXT1lLnVybH0pLGwucHVzaC5hcHBseShsLHQpfSl9O3ZhciBhPXt9LGw9W10sdT0idGFnLWhhc2h0YWctdGVzdGVkIn0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9tb2JpbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZm9yY2VNb2JpbGU9ZnVuY3Rpb24oKXtpPSEwfTt2YXIgaT0hKGUucmVzZXRNb2JpbGU9ZnVuY3Rpb24oKXtpPSExfSkscz17aXNNb2JpbGVEZXZpY2U6ITEsbW9iaWxlVmlldzohMSxpbml0OmZ1bmN0aW9uKCl7dmFyIGUsdD0kKCJodG1sIik7aWYodGhpcy5pc01vYmlsZURldmljZT1pfHx0Lmhhc0NsYXNzKCJtb2JpbGUtZGV2aWNlIiksdGhpcy5tb2JpbGVWaWV3PWl8fHQuaGFzQ2xhc3MoIm1vYmlsZS12aWV3IiksInRlc3QiIT09bi5kZWZhdWx0LmVudmlyb25tZW50JiYhaSl0cnl7d2luZG93LmxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvbW9iaWxlX3ZpZXc9MS8pJiYobG9jYWxTdG9yYWdlLm1vYmlsZVZpZXc9ITApLHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubWF0Y2goL21vYmlsZV92aWV3PTAvKSYmKGxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3PSExKSx3aW5kb3cubG9jYXRpb24uc2VhcmNoLm1hdGNoKC9tb2JpbGVfdmlldz1hdXRvLykmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJtb2JpbGVWaWV3IiksIWxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3fHwoZT0idHJ1ZSI9PT1sb2NhbFN0b3JhZ2UubW9iaWxlVmlldykhPT10aGlzLm1vYmlsZVZpZXcmJnRoaXMucmVsb2FkUGFnZShlKX1jYXRjaChlKXt9fSx0b2dnbGVNb2JpbGVWaWV3OmZ1bmN0aW9uKCl7dHJ5e2xvY2FsU3RvcmFnZSYmKGxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3PSF0aGlzLm1vYmlsZVZpZXcpfWNhdGNoKGUpe310aGlzLnJlbG9hZFBhZ2UoIXRoaXMubW9iaWxlVmlldyl9LHJlbG9hZFBhZ2U6ZnVuY3Rpb24oZSl7d2luZG93LmxvY2F0aW9uLmFzc2lnbih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUrIj9tb2JpbGVfdmlldz0iKyhlPyIxIjoiMCIpKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShEaXNjb3Vyc2UsIk1vYmlsZSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLHQuZGVmYXVsdCkoImBEaXNjb3Vyc2UuTW9iaWxlYCBpcyBkZXByZWNhdGVkLCB1c2UgYHRoaXMuc2l0ZS5tb2JpbGVWaWV3YCBpbnN0ZWFkIiksc319KSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtyZXR1cm4gbihmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzKS5sb29rdXAoInNlcnZpY2U6IisodHx8cyhlKSkpfSl9O3ZhciB0PUVtYmVyLG49dC5jb21wdXRlZCxpPXQuZ2V0T3duZXIscz10LlN0cmluZy5kYXNoZXJpemV9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGFnZS10cmFja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNldFRyYW5zaWVudD1mdW5jdGlvbihlLHQsbil7cltlXT17ZGF0YTp0LHRhcmdldDphK259fSxlLmdldFRyYW5zaWVudD1mdW5jdGlvbihlKXtyZXR1cm4gcltlXX0sZS5yZXNldFBhZ2VUcmFja2luZz1mdW5jdGlvbigpe3Q9ITEsYT0wLHI9e319LGUuc3RhcnRQYWdlVHJhY2tpbmc9ZnVuY3Rpb24oaSxzKXtpZih0KXJldHVybjtpLm9uKCJyb3V0ZURpZENoYW5nZSIsZnVuY3Rpb24oZSl7dmFyIHQ9InJlcGxhY2UiPT09ZS51cmxNZXRob2QmJmUucXVlcnlQYXJhbXNPbmx5O2kuc2VuZCgicmVmcmVzaFRpdGxlIik7dmFyIG49RGlzY291cnNlLmdldFVSTChpLmdldCgidXJsIikpOygwLG8ubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT1EaXNjb3Vyc2UuZ2V0KCJfZG9jVGl0bGUiKTtzLnRyaWdnZXIoInBhZ2U6Y2hhbmdlZCIse3VybDpuLHRpdGxlOmUsY3VycmVudFJvdXRlTmFtZTppLmN1cnJlbnRSb3V0ZU5hbWUscmVwbGFjZWRPbmx5UXVlcnlQYXJhbXM6dH0pfSksYSsrLE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9cltlXTt0JiZ0LnRhcmdldCYmdC50YXJnZXQ8YSYmZGVsZXRlIHJbZV19KX0pLHQ9ITB9LGUuYWRkR1RNUGFnZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbihlKXtuLnB1c2goZSl9O3ZhciB0PSEoZS5nb29nbGVUYWdNYW5hZ2VyUGFnZUNoYW5nZWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e2V2ZW50OiJ2aXJ0dWFsUGFnZVZpZXciLHBhZ2U6e3RpdGxlOmUudGl0bGUsdXJsOmUudXJsfX07bi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSksd2luZG93LmRhdGFMYXllci5wdXNoKHQpfSkscj17fSxhPTA7dmFyIG49W119KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGx1Z2luLWFwaSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtY29va2VkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvcGx1Z2luLWNvbm5lY3RvciIsImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWVkaXRvciIsImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS1iYW5uZXIiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LW1lbnUiLCJkaXNjb3Vyc2UvbGliL3RyYW5zZm9ybS1wb3N0IiwiZGlzY291cnNlL2xpYi9oaWdobGlnaHQtc3ludGF4IiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1lZGl0b3IiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9tb3VudC13aWRnZXQiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nbG9iYWwtbm90aWNlIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiIsImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIiwiZGlzY291cnNlL3dpZGdldHMvdXNlci1tZW51IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsImRpc2NvdXJzZS93aWRnZXRzL2hlYWRlciIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciLCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJzZWxlY3Qta2l0L21peGlucy9wbHVnaW4tYXBpIiwiZGlzY291cnNlL2xpYi9wYWdlLXRyYWNrZXIiLCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Rlci1uYW1lIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RvcGljIiwiZGlzY291cnNlL2xpYi9zaGFyaW5nIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1zZXR0aW5ncyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiXSxmdW5jdGlvbihlLHQsbyxuLGkscyxyLGEsbCx1LGMsZCxwLG0sZixoLGIsZyx2LHksXyx3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHopeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBVKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUud2l0aFBsdWdpbkFwaT1mdW5jdGlvbihlLHQsbil7bj1ufHx7fTt2YXIgaT1mdW5jdGlvbihlKXt7aWYoZnVuY3Rpb24oZSx0KXt2YXIgbixpLHM9LyhcLjArKSskLyxvPWUucmVwbGFjZShzLCIiKS5zcGxpdCgiLiIpLHI9dC5yZXBsYWNlKHMsIiIpLnNwbGl0KCIuIiksYT1NYXRoLm1pbihvLmxlbmd0aCxyLmxlbmd0aCk7Zm9yKG49MDtuPGE7bisrKWlmKGk9cGFyc2VJbnQob1tuXSwxMCktcGFyc2VJbnQocltuXSwxMCkpcmV0dXJuIGk7cmV0dXJuIG8ubGVuZ3RoLXIubGVuZ3RofShlPWUudG9TdHJpbmcoKSxGKTw9MClyZXR1cm4ocT1xfHxuZXcgQihlLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fKSkudmVyc2lvbjxlJiYocS52ZXJzaW9uPWUpLHE7Y29uc29sZS53YXJuKCJQbHVnaW4gQVBJIHYiK2UrIiBpcyBub3Qgc3VwcG9ydGVkIil9fShlKTtpZihpKXJldHVybiB0KGksbil9LGUucmVzZXRQbHVnaW5BcGk9ZnVuY3Rpb24oKXtxPW51bGx9O3ZhciBGPSIwLjguMzgiLEI9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmVShlLnByb3RvdHlwZSx0KSxuJiZVKGUsbiksZX0oUixbe2tleToiZ2V0Q3VycmVudFVzZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvb2t1cENvbnRhaW5lcigiY3VycmVudC11c2VyOm1haW4iKX19LHtrZXk6Il9sb29rdXBDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuY29udGFpbmVyJiYhdGhpcy5jb250YWluZXIuaXNEZXN0cm95aW5nJiYhdGhpcy5jb250YWluZXIuaXNEZXN0cm95ZWQpcmV0dXJuIHRoaXMuY29udGFpbmVyLmxvb2t1cChlKX19LHtrZXk6Il9yZXNvbHZlQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dD10fHx7fSx0aGlzLmNvbnRhaW5lci5jYWNoZVtlXSYmY29uc29sZS53YXJuKCciJytlKyJcIiB3YXMgYWxyZWFkeSBjYWNoZWQgaW4gdGhlIGNvbnRhaW5lci4gQ2hhbmdlcyB3b24ndCBiZSBhcHBsaWVkLiIpO3ZhciBuPXRoaXMuY29udGFpbmVyLmZhY3RvcnlGb3IoZSk7aWYobilyZXR1cm4gbjt0Lmlnbm9yZU1pc3Npbmd8fGNvbnNvbGUud2FybignIicrZSsnIiB3YXMgbm90IGZvdW5kIGJ5IG1vZGlmeUNsYXNzJyl9fSx7a2V5OiJtb2RpZnlDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuX3Jlc29sdmVDbGFzcyhlLG4pO3JldHVybiBpJiZpLmNsYXNzLnJlb3Blbih0KSxpfX0se2tleToibW9kaWZ5Q2xhc3NTdGF0aWMiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLl9yZXNvbHZlQ2xhc3MoZSxuKTtyZXR1cm4gaSYmaS5jbGFzcy5yZW9wZW5DbGFzcyh0KSxpfX0se2tleToicmVnaXN0ZXJJY29uUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLG8ucmVnaXN0ZXJJY29uUmVuZGVyZXIpKGUpfX0se2tleToicmVwbGFjZUljb24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsby5yZXBsYWNlSWNvbikoZSx0KX19LHtrZXk6ImRlY29yYXRlQ29va2VkIix2YWx1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8e30sKDAsbi5hZGREZWNvcmF0b3IpKGUpLHQub25seVN0cmVhbXx8KFcocy5kZWZhdWx0LCJwcmV2aWV3UmVmcmVzaGVkIixlLHQuaWQpLFcoci5kZWZhdWx0LCJkaWRJbnNlcnRFbGVtZW50IixlLHQuaWQpLFcodGhpcy5jb250YWluZXIuZmFjdG9yeUZvcigiY29tcG9uZW50OnVzZXItc3RyZWFtIikuY2xhc3MsImRpZEluc2VydEVsZW1lbnQiLGUsdC5pZCkpfX0se2tleToiYWRkUG9zdGVySWNvbiIsdmFsdWU6ZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5fbG9va3VwQ29udGFpbmVyKCJzaXRlOm1haW4iKSx0PWUmJmUubW9iaWxlVmlldz8iYmVmb3JlIjoiYWZ0ZXIiOygwLG0uZGVjb3JhdGVXaWRnZXQpKCJwb3N0ZXItbmFtZToiK3QsZnVuY3Rpb24obil7dmFyIGU9bi5hdHRycyxpPXMoZS51c2VyQ3VzdG9tRmllbGRzfHx7fSxlKTtpZihpKXt2YXIgdD12b2lkIDA7cmV0dXJuIGkuaWNvbj90PSgwLG8uaWNvbk5vZGUpKGkuaWNvbik6aS5lbW9qaSYmKHQ9aS5lbW9qaS5zcGxpdCgifCIpLm1hcChmdW5jdGlvbihlKXt2YXIgdD17bmFtZTplfTtyZXR1cm4gaS5lbW9qaVRpdGxlJiYodC50aXRsZT0hMCksbi5hdHRhY2goImVtb2ppIix0KX0pKSxpLnRleHQmJih0PVt0LGkudGV4dF0pLGkudXJsJiYodD1uLmgoImEiLHthdHRyaWJ1dGVzOntocmVmOmkudXJsfX0sdCkpLG4uaCgic3Bhbi5wb3N0ZXItaWNvbiIse2NsYXNzTmFtZTppLmNsYXNzTmFtZSxhdHRyaWJ1dGVzOnt0aXRsZTppLnRpdGxlfX0sdCl9fSl9fSx7a2V5OiJkZWNvcmF0ZVdpZGdldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCxtLmRlY29yYXRlV2lkZ2V0KShlLHQpfX0se2tleToiYXR0YWNoV2lkZ2V0QWN0aW9uIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7KCgwLG0ucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMuY29udGFpbmVyLmZhY3RvcnlGb3IoIndpZGdldDoiK2UpLmNsYXNzKS5wcm90b3R5cGVbdF09bn19LHtrZXk6ImluY2x1ZGVQb3N0QXR0cmlidXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXtsLmluY2x1ZGVBdHRyaWJ1dGVzLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0se2tleToiYWRkUG9zdE1lbnVCdXR0b24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsYS5hZGRCdXR0b24pKGUsdCl9fSx7a2V5OiJvblRvb2xiYXJDcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGMuYWRkVG9vbGJhckNhbGxiYWNrKShlKX19LHtrZXk6ImFkZFRvb2xiYXJQb3B1cE1lbnVPcHRpb25zQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGIuYWRkUG9wdXBNZW51T3B0aW9uc0NhbGxiYWNrKShlKX19LHtrZXk6ImNsZWFudXBTdHJlYW0iLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGQuYWRkV2lkZ2V0Q2xlYW5DYWxsYmFjaykoInBvc3Qtc3RyZWFtIixlKX19LHtrZXk6Im9uUGFnZUNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5vbkFwcEV2ZW50KCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe3JldHVybiB0KGUudXJsLGUudGl0bGUpfSl9fSx7a2V5OiJvbkFwcEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2xvb2t1cENvbnRhaW5lcigic2VydmljZTphcHAtZXZlbnRzIik7biYmbi5vbihlLHQpfX0se2tleToiY3VzdG9tVXNlckF2YXRhckNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLE0ucmVnaXN0ZXJDdXN0b21BdmF0YXJIZWxwZXIpKGUpfX0se2tleToiZGlzYWJsZU5hbWVTdXBwcmVzc2lvbk9uUG9zdHMiLHZhbHVlOmZ1bmN0aW9uKCl7KDAsRC5kaXNhYmxlTmFtZVN1cHByZXNzaW9uKSgpfX0se2tleToicmVnaXN0ZXJDdXN0b21Qb3N0TWVzc2FnZUNhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbihlLHQpeygwLEkucmVnaXN0ZXJDdXN0b21Qb3N0TWVzc2FnZUNhbGxiYWNrKShlLHQpfX0se2tleToiY2hhbmdlV2lkZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4peygwLG0uY2hhbmdlU2V0dGluZykoZSx0LG4pfX0se2tleToicHJldmVudENsb2FrIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxmLnByZXZlbnRDbG9haykoZSl9fSx7a2V5OiJjcmVhdGVXaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbS5jcmVhdGVXaWRnZXQpKGUsdCl9fSx7a2V5OiJyZW9wZW5XaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbS5yZW9wZW5XaWRnZXQpKGUsdCl9fSx7a2V5OiJhZGRGbGFnUHJvcGVydHkiLHZhbHVlOmZ1bmN0aW9uKCl7KDAsdC5kZWZhdWx0KSgiYWRkRmxhZ1Byb3BlcnR5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgcmV2aWV3YWJsZSBBUEkgaW5zdGVhZC4iKX19LHtrZXk6ImFkZEhlYWRlclBhbmVsIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7KDAsUC5hdHRhY2hBZGRpdGlvbmFsUGFuZWwpKGUsdCxuKX19LHtrZXk6ImFkZFN0b3JlUGx1cmFsaXphdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9sb29rdXBDb250YWluZXIoInNlcnZpY2U6c3RvcmUiKTtuJiZuLmFkZFBsdXJhbGl6YXRpb24oZSx0KX19LHtrZXk6InJlZ2lzdGVyQ29ubmVjdG9yQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxnLmV4dHJhQ29ubmVjdG9yQ2xhc3MpKGUrIi8iK3Qsbil9fSx7a2V5OiJyZWdpc3RlclRvcGljRm9vdGVyQnV0dG9uIix2YWx1ZTpmdW5jdGlvbihlKXsoMCx5LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKGUpfX0se2tleToiYWRkUG9zdFNtYWxsQWN0aW9uSWNvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCx2LmFkZFBvc3RTbWFsbEFjdGlvbkljb24pKGUsdCl9fSx7a2V5OiJhZGREaXNjb3ZlcnlRdWVyeVBhcmFtIix2YWx1ZTpmdW5jdGlvbihlLHQpeygwLF8uYWRkRGlzY292ZXJ5UXVlcnlQYXJhbSkoZSx0KX19LHtrZXk6ImFkZFRhZ3NIdG1sQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsdy5hZGRUYWdzSHRtbENhbGxiYWNrKShlLHQpfX0se2tleToiYWRkVXNlck1lbnVHbHlwaCIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAseC5hZGRVc2VyTWVudUdseXBoKShlKX19LHtrZXk6ImFkZFBvc3RDbGFzc2VzQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGsuYWRkUG9zdENsYXNzZXNDYWxsYmFjaykoZSl9fSx7a2V5OiJhZGRQb3N0VHJhbnNmb3JtQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGYuYWRkUG9zdFRyYW5zZm9ybUNhbGxiYWNrKShlKX19LHtrZXk6ImFkZE5hdmlnYXRpb25CYXJJdGVtIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgbixpLHMsbyxyLGEsbCx1O2UubmFtZT8oKG49ZS5jdXN0b21IcmVmKSYmKGk9dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuY3VzdG9tSHJlZj1mdW5jdGlvbihlLHQpe3JldHVybiBuKGUsdCxpKX0pLChzPWUuY3VzdG9tRmlsdGVyKSYmKG89dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuY3VzdG9tRmlsdGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHMoZSx0LG8pfSksKHI9ZS5mb3JjZUFjdGl2ZSkmJihhPXRoaXMuY29udGFpbmVyLmxvb2t1cCgic2VydmljZTpyb3V0ZXIiKSxlLmZvcmNlQWN0aXZlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIoZSx0LGEpfSksKGw9ZS5pbml0KSYmKHU9dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuaW5pdD1mdW5jdGlvbihlLHQsbil7bChlLHQsbix1KX0pLCgwLEUuYWRkTmF2SXRlbSkoZSkpOmNvbnNvbGUud2FybigiQSAnbmFtZScgaXMgcmVxdWlyZWQgd2hlbiBhZGRpbmcgYSBOYXZpZ2F0aW9uIEJhciBJdGVtLiIsZSl9fSx7a2V5OiJmb3JtYXRVc2VybmFtZSIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsTy5yZXBsYWNlRm9ybWF0dGVyKShlKX19LHtrZXk6Im1vZGlmeVNlbGVjdEtpdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsUy5tb2RpZnlTZWxlY3RLaXQpKGUpfX0se2tleToiYWRkR1RNUGFnZUNoYW5nZWRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsQy5hZGRHVE1QYWdlQ2hhbmdlZENhbGxiYWNrKShlKX19LHtrZXk6ImFkZFNoYXJpbmdTb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGUpe0wuZGVmYXVsdC5hZGRTaGFyaW5nSWQoZS5pZCksTC5kZWZhdWx0LmFkZFNvdXJjZShlKX19LHtrZXk6ImFkZENvbXBvc2VyVXBsb2FkSGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCxzLmFkZENvbXBvc2VyVXBsb2FkSGFuZGxlcikoZSx0KX19LHtrZXk6ImFkZENvbXBvc2VyVXBsb2FkTWFya2Rvd25SZXNvbHZlciIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAscy5hZGRDb21wb3NlclVwbG9hZE1hcmtkb3duUmVzb2x2ZXIpKGUpfX0se2tleToiY29tcG9zZXJCZWZvcmVTYXZlIix2YWx1ZTpmdW5jdGlvbihlKXtOLmRlZmF1bHQucmVvcGVuKHtiZWZvcmVTYXZlOmV9KX19LHtrZXk6InNlcmlhbGl6ZVRvRHJhZnQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Ti5kZWZhdWx0LnNlcmlhbGl6ZVRvRHJhZnQoZSx0KX19LHtrZXk6ImFkZENhdGVnb3J5U29ydENyaXRlcmlhIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxBLmFkZENhdGVnb3J5U29ydENyaXRlcmlhKShlKX19LHtrZXk6InJlcGxhY2VDYXRlZ29yeUxpbmtSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsai5yZXBsYWNlQ2F0ZWdvcnlMaW5rUmVuZGVyZXIpKGUpfX0se2tleToicmVwbGFjZVRhZ1JlbmRlcmVyIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxULnJlcGxhY2VUYWdSZW5kZXJlcikoZSl9fSx7a2V5OiJyZWdpc3RlckhpZ2hsaWdodEpTTGFuZ3VhZ2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsdS5yZWdpc3RlckhpZ2hsaWdodEpTTGFuZ3VhZ2UpKGUsdCl9fSx7a2V5OiJhZGRHbG9iYWxOb3RpY2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxwLmFkZEdsb2JhbE5vdGljZSkoZSx0LG4pfX0se2tleToiZGVjb3JhdGVQbHVnaW5PdXRsZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxpLmFkZFBsdWdpbk91dGxldERlY29yYXRvcikoZSx0LG58fHt9KX19XSksUik7ZnVuY3Rpb24gUihlLHQpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLFIpLHRoaXMudmVyc2lvbj1lLHRoaXMuY29udGFpbmVyPXQsdGhpcy5oPWguaH12YXIgcT12b2lkIDA7dmFyIEg9MCxLPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFcoZSx0LG4saSl7aWYoaSl7Sy5oYXMoZSl8fEsuc2V0KGUsbmV3IFNldCksaT1pKyI6Iit0O3ZhciBzPUsuZ2V0KGUpO2lmKHMuaGFzKGkpKXJldHVybjtzLmFkZChpKX1lbHNlIGNvbnNvbGUud2FybigiYGRlY29yYXRlQ29va2VkYCBzaG91bGQgYmUgc3VwcGxpZWQgd2l0aCBhbiBgaWRgIG9wdGlvbiB0byBhdm9pZCBtZW1vcnkgbGVha3MuIik7dmFyIG89e307b1siX2RlY29yYXRlXyIrSCsrXT0oMCx6Lm9uKSh0LGZ1bmN0aW9uKGUpeyhlPWV8fCQodGhpcy5lbGVtZW50KSkmJm4oZSl9KSxlLnJlb3BlbihvKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlc2V0RXh0cmFDbGFzc2VzPWZ1bmN0aW9uKCl7bz17fSxyPXZvaWQgMH0sZS5leHRyYUNvbm5lY3RvckNsYXNzPWZ1bmN0aW9uKGUsdCl7b1tlXT10fSxlLmNsZWFyQ2FjaGU9ZnVuY3Rpb24oKXtuPWk9bnVsbH0sZS5jb25uZWN0b3JzRm9yPWMsZS5yZW5kZXJlZENvbm5lY3RvcnNGb3I9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBjKGUpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5jb25uZWN0b3JDbGFzcy5zaG91bGRSZW5kZXIodCxuKX0pfSxlLnJhd0Nvbm5lY3RvcnNGb3I9ZnVuY3Rpb24oZSl7bnx8KG49e30sbChEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFUyxmdW5jdGlvbihlLHQpe25bZV09bltlXXx8W10sbltlXS5wdXNoKHt0ZW1wbGF0ZTpEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1t0XX0pfSkpO3JldHVybiBuW2VdfHxbXX0sZS5idWlsZEFyZ3NXaXRoRGVwcmVjYXRpb25zPWZ1bmN0aW9uKHQsbil7dmFyIGk9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSx7dmFsdWU6dFtlXX0pfSksT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmRlZmF1bHQpKGUrIiBpcyBkZXByZWNhdGVkIiksbltlXX19KX0pLGl9O3ZhciBpPXZvaWQgMCxuPXZvaWQgMCxvPXt9LHI9dm9pZCAwO3ZhciBhPXthY3Rpb25zOnt9LHNob3VsZFJlbmRlcjpmdW5jdGlvbigpe3JldHVybiEwfSxzZXR1cENvbXBvbmVudDpmdW5jdGlvbigpe30sdGVhcmRvd25Db21wb25lbnQ6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBsKGUsbyl7dmFyIHI9dC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJkaXNhYmxlZF9wbHVnaW5zIil8fFtdO09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoLTEhPT1lLmluZGV4T2YoIi9jb25uZWN0b3JzLyIpKXtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoO3QrKylpZigtMSE9PWUuaW5kZXhPZigiLyIrclt0XSsiLyIpKXJldHVybjt2YXIgbj1lLnNwbGl0KCIvIiksaT1uW24ubGVuZ3RoLTJdLHM9bltuLmxlbmd0aC0xXTtvKGksZSxzKX19KX1mdW5jdGlvbiB1KCl7aT17fSxsKEVtYmVyLlRFTVBMQVRFUyxmdW5jdGlvbihlLHQsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2goe291dGxldE5hbWU6ZSx0ZW1wbGF0ZU5hbWU6dC5yZXBsYWNlKCJqYXZhc2NyaXB0cy8iLCIiKSx0ZW1wbGF0ZTpFbWJlci5URU1QTEFURVNbdF0sY2xhc3NOYW1lczplKyItb3V0bGV0ICIrbixjb25uZWN0b3JDbGFzczpmdW5jdGlvbihlLHQpe3J8fChyPXt9LGwocmVxdWlyZS5fZWFrX3NlZW4sZnVuY3Rpb24oZSx0LG4pe3JbZSsiLyIrbl09cmVxdWlyZWpzKHQpLmRlZmF1bHR9KSk7dmFyIG49ZSsiLyIrdCxpPW9bbl18fHJbbl07cmV0dXJuIGk/alF1ZXJ5LmV4dGVuZCh7fSxhLGkpOmF9KGUsbil9KX0pfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGl8fHUoKSxpW2VdfHxbXX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcHVzaC1ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSJdLGZ1bmN0aW9uKGUsaSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUua2V5VmFsdWVTdG9yZT12b2lkIDAsZS51c2VyU3Vic2NyaXB0aW9uS2V5PW8sZS5pc1B1c2hOb3RpZmljYXRpb25zU3VwcG9ydGVkPWwsZS5pc1B1c2hOb3RpZmljYXRpb25zRW5hYmxlZD1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZsKHQpJiZzLmdldEl0ZW0obyhlKSl9LGUucmVnaXN0ZXI9ZnVuY3Rpb24odCxlLG4saSl7aWYoIWwoZSkpcmV0dXJuO2lmKCJkZW5pZWQiPT09Tm90aWZpY2F0aW9uLnBlcm1pc3Npb258fCF0KXJldHVybjtuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKGZ1bmN0aW9uKGUpe2UucHVzaE1hbmFnZXIuZ2V0U3Vic2NyaXB0aW9uKCkudGhlbihmdW5jdGlvbihlKXtlJiYocihlLCExKSxzLnNldEl0ZW0obyh0KSwic3Vic2NyaWJlZCIpKSxmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGEpLGRvY3VtZW50JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGEpO2Uub24oInBhZ2U6Y2hhbmdlZCIsYSl9KGkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKX0pfSksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIHQ7InVybCJpbiBlLmRhdGEmJih0PWUuZGF0YS51cmwsbi5oYW5kbGVVUkwodCkpfSl9LGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQsbixlKXtpZighbChlKSlyZXR1cm47bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHkudGhlbihmdW5jdGlvbihlKXtlLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5Om5ldyBVaW50OEFycmF5KG4uc3BsaXQoInwiKSl9KS50aGVuKGZ1bmN0aW9uKGUpe3IoZSwhMCksdCYmdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKX0pfSl9LGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSx0LG4pe2lmKCFsKG4pKXJldHVybjtzLnNldEl0ZW0obyhlKSwiIiksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHkudGhlbihmdW5jdGlvbihlKXtlLnB1c2hNYW5hZ2VyLmdldFN1YnNjcmlwdGlvbigpLnRoZW4oZnVuY3Rpb24odCl7dCYmdC51bnN1YnNjcmliZSgpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKDAsaS5hamF4KSgiL3B1c2hfbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZSIse3R5cGU6IlBPU1QiLGRhdGE6e3N1YnNjcmlwdGlvbjp0LnRvSlNPTigpfX0pfSl9KS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfSksdCYmdCgpfSl9O3ZhciBzPWUua2V5VmFsdWVTdG9yZT1uZXcgdC5kZWZhdWx0KCJkaXNjb3Vyc2VfcHVzaF9ub3RpZmljYXRpb25zXyIpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuInN1YnNjcmliZWQtIitlLmdldCgiaWQiKX1mdW5jdGlvbiByKGUsdCl7KDAsaS5hamF4KSgiL3B1c2hfbm90aWZpY2F0aW9ucy9zdWJzY3JpYmUiLHt0eXBlOiJQT1NUIixkYXRhOntzdWJzY3JpcHRpb246ZS50b0pTT04oKSxzZW5kX2NvbmZpcm1hdGlvbjp0fX0pfWZ1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2gobmV3IFJlZ0V4cChlKyIvKFxcZCspXFwuXFxkIikpO3JldHVybiEoaSYmbnx8IWl8fHBhcnNlSW50KGlbMV0sMTApPHQpfWZ1bmN0aW9uIGEoKXsiY29udHJvbGxlciJpbiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciYmbnVsbCE9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciYmbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7bGFzdEFjdGlvbjpEYXRlLm5vdygpfSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4hISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24mJiJ1bmRlZmluZWQiIT10eXBlb2YgTm90aWZpY2F0aW9uJiYic2hvd05vdGlmaWNhdGlvbiJpbiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnByb3RvdHlwZSYmIlB1c2hNYW5hZ2VyImluIHdpbmRvdykmJiEoIW4oIkZpcmVmb3giLDQ0LGUpJiYhbigiQ2hyb21lIiw1MCkpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9wd2EtdXRpbHMiLFsiZXhwb3J0cyIsInJzdnAiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5uYXRpdmVTaGFyZT1mdW5jdGlvbihuKXt2YXIgaT1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImNhcGFiaWxpdGllczptYWluIik7cmV0dXJuIG5ldyB0LlByb21pc2UoZnVuY3Rpb24oZSx0KXsoaS5pc0lPU3x8aS5pc0FuZHJvaWR8fGkuaXNXaW5waG9uZSkmJiJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiZ2b2lkIDAhPT13aW5kb3cubmF2aWdhdG9yLnNoYXJlP3dpbmRvdy5uYXZpZ2F0b3Iuc2hhcmUobikudGhlbihlKS5jYXRjaChmdW5jdGlvbihlKXsiQWJvcnRFcnJvciI9PT1lLm5hbWV8fHQoKX0pOnQoKX0pfSxlLmdldE5hdGl2ZUNvbnRhY3Q9ZnVuY3Rpb24obixpKXt2YXIgcz1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImNhcGFiaWxpdGllczptYWluIik7cmV0dXJuIG5ldyB0LlByb21pc2UoZnVuY3Rpb24oZSx0KXtzLmhhc0NvbnRhY3RQaWNrZXI/bmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChuLHttdWx0aXBsZTppfSkudGhlbihlKS5jYXRjaCh0KTp0KCl9KX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcXVvdGUtc3RhdGUiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmkoZS5wcm90b3R5cGUsdCksbiYmaShlLG4pLGV9KG4sW3trZXk6InNlbGVjdGVkIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7dGhpcy5wb3N0SWQ9ZSx0aGlzLmJ1ZmZlcj10LHRoaXMub3B0cz1ufX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5idWZmZXI9IiIsdGhpcy5wb3N0SWQ9bnVsbCx0aGlzLm9wdHM9bnVsbH19XSksbik7ZnVuY3Rpb24gbigpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMuY2xlYXIoKX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3Jlc29sdmVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZFJhd1RlbXBsYXRlPWZ1bmN0aW9uKGUpe2lmKCgwLHQuZ2V0UmVzb2x2ZXJPcHRpb24pKCJtb2JpbGVWaWV3IikpcmV0dXJuIERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJqYXZhc2NyaXB0cy9tb2JpbGUvIitlXXx8RGlzY291cnNlLlJBV19URU1QTEFURVNbImphdmFzY3JpcHRzLyIrZV18fERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJtb2JpbGUvIitlXXx8RGlzY291cnNlLlJBV19URU1QTEFURVNbZV07cmV0dXJuIERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJqYXZhc2NyaXB0cy8iK2VdfHxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1tlXX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2Vycm9yIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbj1mdW5jdGlvbihlKXtpZighZS5pZClyZXR1cm4gdm9pZCgwLG4uZGVmYXVsdCkoIkF0dGVtcHRlZCB0byByZWdpc3RlciBhIHRvcGljIGJ1dHRvbjogIitlKyIgd2l0aCBubyBpZC4iKTtpZihsW2UuaWRdKXJldHVybjt2YXIgdD1PYmplY3QuYXNzaWduKHtpZDpudWxsLGljb246bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZWRUaXRsZTpudWxsLGxhYmVsOm51bGwsdHJhbnNsYXRlZExhYmVsOm51bGwsZHJvcGRvd246ITEsY2xhc3NOYW1lczpbXSxkZXBlbmRlbnRLZXlzOltdLGRpc3BsYXllZDohMCxkaXNhYmxlZDohMSxwcmlvcml0eTowfSxlKTtpZighdC5pY29uJiYhdC50aXRsZSYmIXQudHJhbnNsYXRlZFRpdGxlKXJldHVybiB2b2lkKDAsbi5kZWZhdWx0KSgiQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgdG9waWMgYnV0dG9uOiAiK2UuaWQrIiB3aXRoIG5vIGljb24gb3IgdGl0bGUuIik7bFt0LmlkXT10fSxlLmdldFRvcGljRm9vdGVyQnV0dG9ucz1mdW5jdGlvbigpe3ZhciBlLHQ9KGU9W10pLmNvbmNhdC5hcHBseShlLHMoT2JqZWN0LnZhbHVlcyhsKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVwZW5kZW50S2V5c30pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSk7cmV0dXJuIGkuY29tcHV0ZWQuYXBwbHkodm9pZCAwLHModCkuY29uY2F0KFt7Z2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGV9ZnVuY3Rpb24gcihlLHQpe3ZhciBuPWVbdF07cmV0dXJuIG8obik/bi5hcHBseShhKTpufXZhciBhPXRoaXM7cmV0dXJuIE9iamVjdC52YWx1ZXMobCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiByKGUsImRpc3BsYXllZCIpfSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXt9O3QuaWQ9ZS5pZDt2YXIgbj1yKGUsImxhYmVsIik7dC5sYWJlbD1uP0kxOG4udChuKTpyKGUsInRyYW5zbGF0ZWRMYWJlbCIpO3ZhciBpLHM9cihlLCJ0aXRsZSIpO3JldHVybiB0LnRpdGxlPXM/STE4bi50KHMpOnIoZSwidHJhbnNsYXRlZFRpdGxlIiksdC5jbGFzc05hbWVzPShyKGUsImNsYXNzTmFtZXMiKXx8W10pLmpvaW4oIiAiKSx0Lmljb249cihlLCJpY29uIiksdC5kaXNhYmxlZD1yKGUsImRpc2FibGVkIiksdC5kcm9wZG93bj1yKGUsImRyb3Bkb3duIiksdC5wcmlvcml0eT1yKGUsInByaW9yaXR5IiksbyhlLmFjdGlvbik/dC5hY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZS5hY3Rpb24uYXBwbHkoYSl9OihpPWUuYWN0aW9uLHQuYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGFbaV0oKX0pLHR9KS5zb3J0QnkoInByaW9yaXR5IikucmV2ZXJzZSgpfX1dKSl9LGUuY2xlYXJUb3BpY0Zvb3RlckJ1dHRvbnM9ZnVuY3Rpb24oKXtsPVtdfTt2YXIgbD17fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZW5kZXItdGFnIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXBsYWNlVGFnUmVuZGVyZXI9ZnVuY3Rpb24oZSl7bj1lfSxlLmRlZmF1bHRSZW5kZXJUYWc9dCxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihlLHQpfTt2YXIgbj10O2Z1bmN0aW9uIHQoZSx0KXt0PXR8fHt9O3ZhciBuPUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlKTtlPW4udG9Mb3dlckNhc2UoKTt2YXIgaT1bImRpc2NvdXJzZS10YWciXSxzPXQudGFnTmFtZXx8ImEiLG89dm9pZCAwOyJhIiE9PXN8fHQubm9IcmVmfHwobz0odC5pc1ByaXZhdGVNZXNzYWdlfHx0LnBtT25seSkmJmwuZGVmYXVsdC5jdXJyZW50KCk/Ii91LyIrKHQudGFnc0ZvclVzZXI/dC50YWdzRm9yVXNlcjpsLmRlZmF1bHQuY3VycmVudCgpLnVzZXJuYW1lKSsiL21lc3NhZ2VzL3RhZ3MvIitlOiIvdGFnLyIrZSk7dmFyIHI9bz8iIGhyZWY9JyIrRGlzY291cnNlLmdldFVSTChvKSsiJyAiOiIiOyhEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRhZ19zdHlsZXx8dC5zdHlsZSkmJmkucHVzaCh0LnN0eWxlfHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRhZ19zdHlsZSksdC5zaXplJiZpLnB1c2godC5zaXplKTt2YXIgYT0iPCIrcytyKyIgZGF0YS10YWctbmFtZT0iK2UrIiBjbGFzcz0nIitpLmpvaW4oIiAiKSsiJz4iK24rIjwvIitzKyI+IjtyZXR1cm4gdC5jb3VudCYmKGErPSIgPHNwYW4gY2xhc3M9J2Rpc2NvdXJzZS10YWctY291bnQnPngiK3QuY291bnQrIjwvc3Bhbj4iKSxhfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZW5kZXItdGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9yZW5kZXItdGFnIl0sZnVuY3Rpb24oZSx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVGFnc0h0bWxDYWxsYmFjaz1mdW5jdGlvbihlLHQpe2M9Y3x8W10scz1zfHxbXTt2YXIgbj10JiZ0LnByaW9yaXR5fHwwLGk9MDtmb3IoO2k8cy5sZW5ndGgmJnNbaV0+bjspaSs9MTtzLnNwbGljZShpLDAsbiksYy5zcGxpY2UoaSwwLGUpfSxlLmRlZmF1bHQ9ZnVuY3Rpb24obixpKXt2YXIgZT1uLnRhZ3MsdD0iIixzPW51bGwsbz12b2lkIDAscj1uLmdldCgiaXNQcml2YXRlTWVzc2FnZSIpO2kmJigibGlzdCI9PT1pLm1vZGUmJihlPW4uZ2V0KCJ2aXNpYmxlTGlzdFRhZ3MiKSksaS50YWdzRm9yVXNlciYmKHM9aS50YWdzRm9yVXNlciksaS50YWdOYW1lJiYobz1pLnRhZ05hbWUpKTt2YXIgYT1udWxsO2lmKGMmJmMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lKG4saSk7dCYmKGE/YSs9dDphPXQpfSksYXx8ZSYmMDxlLmxlbmd0aCl7aWYodD0iPGRpdiBjbGFzcz0nZGlzY291cnNlLXRhZ3MnPiIsZSlmb3IodmFyIGw9MDtsPGUubGVuZ3RoO2wrKyl0Kz0oMCx1LmRlZmF1bHQpKGVbbF0se2lzUHJpdmF0ZU1lc3NhZ2U6cix0YWdzRm9yVXNlcjpzLHRhZ05hbWU6b30pKyIgIjthJiYodCs9YSksdCs9IjwvZGl2PiJ9cmV0dXJuIHR9O3ZhciBjPW51bGwscz1udWxsfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIixbImV4cG9ydHMiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRGZWF0dXJlZExpbmtNZXRhRGVjb3JhdG9yPWZ1bmN0aW9uKGUpe28ucHVzaChlKX0sZS5leHRyYWN0TGlua01ldGE9cixlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlKTtyZXR1cm4gdD8nPGEgY2xhc3M9InRvcGljLWZlYXR1cmVkLWxpbmsiIHJlbD0iJyt0LnJlbCsnIiB0YXJnZXQ9IicrdC50YXJnZXQrJyIgaHJlZj0iJyt0LmhyZWYrJyI+JysoMCxpLnJlbmRlckljb24pKCJzdHJpbmciLCJleHRlcm5hbC1saW5rLWFsdCIpKyIgIit0LmRvbWFpbisiPC9hPiI6IiJ9LGUudG9waWNGZWF0dXJlZExpbmtOb2RlPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSk7aWYodClyZXR1cm4oMCxuLmgpKCJhLnRvcGljLWZlYXR1cmVkLWxpbmsiLHthdHRyaWJ1dGVzOntocmVmOnQuaHJlZixyZWw6dC5yZWwsdGFyZ2V0OnQudGFyZ2V0fX0sWygwLGkucmVuZGVySWNvbikoIm5vZGUiLCJleHRlcm5hbC1saW5rLWFsdCIpLHQuZG9tYWluXSl9O3ZhciBvPVtdO2Z1bmN0aW9uIHIoZSl7dmFyIHQ9ZS5nZXQoImZlYXR1cmVkX2xpbmsiKSxuPXMuZGVmYXVsdC5jdXJyZW50UHJvcCgiZXh0ZXJuYWxfbGlua3NfaW5fbmV3X3RhYiIpPyJfYmxhbmsiOiIiO2lmKHQpe3ZhciBpPXt0YXJnZXQ6bixocmVmOnQsZG9tYWluOmUuZ2V0KCJmZWF0dXJlZF9saW5rX3Jvb3RfZG9tYWluIikscmVsOiJub2ZvbGxvdyB1Z2MifTtyZXR1cm4gby5sZW5ndGgmJm8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZShpKX0pLGl9fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZXBvcnRzLWxvYWRlciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz10LnJ1bi5kZWJvdW5jZSxvPVtdLHI9MDtlLmRlZmF1bHQ9e2VucXVldWU6ZnVuY3Rpb24oZSx0LG4pezIwPD1vLmxlbmd0aCYmby5zcGxpY2UoMCwxKVswXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucnVubmFibGUoKSg0MjkpfSksby5wdXNoKHtydW5uYWJsZTpmdW5jdGlvbigpe3JldHVybiBufSx0eXBlOmUscGFyYW1zOnR9KSxzKHRoaXMsdGhpcy5fcHJvY2Vzc1F1ZXVlLDUwKX0sX3Byb2Nlc3NRdWV1ZTpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzOzAhPT1vLmxlbmd0aCYmKDM8PXJ8fChyKyssZT1vLnNwbGljZSgwLDQpLDA8by5sZW5ndGgmJnModGhpcyx0aGlzLl9wcm9jZXNzUXVldWUsNTApLHQ9e30sZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS50eXBlXT1lLnBhcmFtc30pLCgwLGkuYWpheCkoIi9hZG1pbi9yZXBvcnRzL2J1bGsiLHtkYXRhOntyZXBvcnRzOnR9fSkudGhlbihmdW5jdGlvbihuKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5yZXBvcnRzLmZpbmRCeSgidHlwZSIsZS50eXBlKTtlLnJ1bm5hYmxlKCkodCl9KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2UuZm9yRWFjaChmdW5jdGlvbihlKXt0LmpxWEhSJiY0Mjk9PT10LmpxWEhSLnN0YXR1cz9lLnJ1bm5hYmxlKCkoNDI5KTp0LmpxWEhSJiY1MDA9PT10LmpxWEhSLnN0YXR1cz9lLnJ1bm5hYmxlKCkoNTAwKTplLnJ1bm5hYmxlKCkoKX0pfSkuZmluYWxseShmdW5jdGlvbigpe3ItLSxzKG4sbi5fcHJvY2Vzc1F1ZXVlLDUwKX0pKSl9LF9yZXNldDpmdW5jdGlvbigpe289W10scj0wfX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcm91bmQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZGVjaW1hbC1hZGp1c3QiXSxmdW5jdGlvbihlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5kZWZhdWx0KSgicm91bmQiLGUsdCl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3NjcmVlbi10cmFjayIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHMscCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgdD0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShvLFt7a2V5OiJzdGFydCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9dGhpcy5fdG9waWNJZDtpJiZpIT09ZSYmKHRoaXMudGljaygpLHRoaXMuZmx1c2goKSksdGhpcy5yZXNldCgpLHRoaXMuX2ludGVydmFsfHwodGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtyZXR1cm4gbi50aWNrKCl9LDFlMyksdGhpcy5fYm91bmRTY3JvbGxlZD0oMCxzLmJpbmQpKHRoaXMsdGhpcy5zY3JvbGxlZCksJCh3aW5kb3cpLm9uKCJzY3JvbGwuc2NyZWVudHJhY2siLHRoaXMuX2JvdW5kU2Nyb2xsZWQpKSx0aGlzLl90b3BpY0lkPWUsdGhpcy5fdG9waWNDb250cm9sbGVyPXR9fSx7a2V5OiJzdG9wIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3RvcGljSWQmJih0aGlzLl9ib3VuZFNjcm9sbGVkJiYkKHdpbmRvdykub2ZmKCJzY3JvbGwuc2NyZWVudHJhY2siLHRoaXMuX2JvdW5kU2Nyb2xsZWQpLHRoaXMudGljaygpLHRoaXMuZmx1c2goKSx0aGlzLnJlc2V0KCksdGhpcy5fdG9waWNJZD1udWxsLHRoaXMuX3RvcGljQ29udHJvbGxlcj1udWxsLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCkpfX0se2tleToic2V0T25zY3JlZW4iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fb25zY3JlZW49ZSx0aGlzLl9yZWFkT25zY3JlZW49dH19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuX2xhc3RUaWNrPWUsdGhpcy5fbGFzdFNjcm9sbGVkPWUsdGhpcy5fbGFzdEZsdXNoPTAsdGhpcy5fdGltaW5ncz17fSx0aGlzLl90b3RhbFRpbWluZ3M9e30sdGhpcy5fdG9waWNUaW1lPTAsdGhpcy5fb25zY3JlZW49W10sdGhpcy5fcmVhZE9uc2NyZWVuPVtdLHRoaXMuX3JlYWRQb3N0cz17fSx0aGlzLl9pblByb2dyZXNzPSExfX0se2tleToic2Nyb2xsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbGFzdFNjcm9sbGVkPShuZXcgRGF0ZSkuZ2V0VGltZSgpfX0se2tleToicmVnaXN0ZXJBbm9uQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuX2Fub25DYWxsYmFjaz1lfX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXt9LHM9dGhpcy5fdG90YWxUaW1pbmdzLG89dGhpcy5fdGltaW5ncztPYmplY3Qua2V5cyh0aGlzLl90aW1pbmdzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW9bZV07c1tlXT1zW2VdfHwwLDA8dCYmc1tlXTwzNmU0JiYoc1tlXSs9dCxpW2VdPXQpLG9bZV09MH0pO3ZhciByPXBhcnNlSW50KHRoaXMuX3RvcGljSWQsMTApLHQ9MCxlPXRoaXMuX3RvcGljQ29udHJvbGxlcixhPWU/ZS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKTpudWxsO3RoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJpZ25vcmVkX3VzZXJzLmxlbmd0aCIpJiZhJiZhLmhhc05vRmlsdGVycyYmIWEuY2FuQXBwZW5kTW9yZSYmYS5wb3N0cy5sYXN0T2JqZWN0JiZhLnBvc3RzLmxhc3RPYmplY3QucmVhZCYmYS5nYXBzJiZhLmdhcHMuYWZ0ZXJbYS5wb3N0cy5sYXN0T2JqZWN0LmlkXSYmYS50b3BpYy5sYXN0X3JlYWRfcG9zdF9udW1iZXIhPT1hLnBvc3RzLmxhc3RPYmplY3QucG9zdF9udW1iZXIrYS5nZXQoImdhcHMuYWZ0ZXIuIithLnBvc3RzLmxhc3RPYmplY3QuaWQrIi5sZW5ndGgiKSYmKGlbYS5wb3N0cy5sYXN0T2JqZWN0LnBvc3RfbnVtYmVyK2EuZ2V0KCJnYXBzLmFmdGVyLiIrYS5wb3N0cy5sYXN0T2JqZWN0LmlkKyIubGVuZ3RoIildPTEpLE9iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7dD1NYXRoLm1heCh0LHBhcnNlSW50KGUsMTApKX0pO3ZhciBsLHUsYyxkPXRoaXMuc2Vzc2lvbi5nZXQoImhpZ2hlc3RTZWVuQnlUb3BpYyIpOyhkW3JdfHwwKTx0JiYoZFtyXT10KSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZS51cGRhdGVTZWVuKHIsdCksJC5pc0VtcHR5T2JqZWN0KGkpfHwodGhpcy5jdXJyZW50VXNlcj8odGhpcy5faW5Qcm9ncmVzcz0hMCwoMCxwLmFqYXgpKCIvdG9waWNzL3RpbWluZ3MiLHtkYXRhOnt0aW1pbmdzOmksdG9waWNfdGltZTp0aGlzLl90b3BpY1RpbWUsdG9waWNfaWQ6cn0sY2FjaGU6ITEsdHlwZToiUE9TVCIsaGVhZGVyczp7IlgtU0lMRU5DRS1MT0dHRVIiOiJ0cnVlIn19KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGUsdD1uLl90b3BpY0NvbnRyb2xsZXI7dCYmKGU9T2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pLHQucmVhZFBvc3RzKHIsZSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5qcVhIUjs0MDUhPT10LnN0YXR1c3x8dC5yZXNwb25zZUpTT04uZXJyb3JfdHlwZX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtuLl9pblByb2dyZXNzPSExLG4uX2xhc3RGbHVzaD0wfSkpOnRoaXMuX2Fub25DYWxsYmFjayYmKHU9KGw9dGhpcy5rZXlWYWx1ZVN0b3JlKS5nZXRJbnQoImFub24tdG9waWMtdGltZSIpLGwuc2V0SXRlbSgiYW5vbi10b3BpYy10aW1lIix1K3RoaXMuX3RvcGljVGltZSksLTE9PT0oYz0oYz1sLmdldCgiYW5vbi10b3BpYy1pZHMiKSk/Yy5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KTpbXSkuaW5kZXhPZihyKSYmYy5sZW5ndGg8NSYmKGMucHVzaChyKSxsLnNldEl0ZW0oImFub24tdG9waWMtaWRzIixjLmpvaW4oIiwiKSkpLHRoaXMuX2Fub25DYWxsYmFjaygpKSx0aGlzLl90b3BpY1RpbWU9MCksdGhpcy5fbGFzdEZsdXNoPTB9fSx7a2V5OiJ0aWNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LG4saSxlLHMsbz10aGlzLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7MThlNDxyLXRoaXMuX2xhc3RTY3JvbGxlZHx8KHQ9ci10aGlzLl9sYXN0VGljayx0aGlzLl9sYXN0Rmx1c2grPXQsdGhpcy5fbGFzdFRpY2s9cixuPXRoaXMuX3RvdGFsVGltaW5ncyxpPXRoaXMuX3RpbWluZ3MsZT0xZTMqdGhpcy5zaXRlU2V0dGluZ3MuZmx1c2hfdGltaW5nc19zZWNzLHM9T2JqZWN0LmtleXMoaSkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gMDxpW2VdJiYhbltlXSYmIW8uX3JlYWRQb3N0c1tlXX0pLCF0aGlzLl9pblByb2dyZXNzJiYodGhpcy5fbGFzdEZsdXNoPmV8fHMpJiZ0aGlzLmZsdXNoKCksRGlzY291cnNlLmdldCgiaGFzRm9jdXMiKSYmKHRoaXMuX3RvcGljVGltZSs9dCx0aGlzLl9vbnNjcmVlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpW2VdPShpW2VdfHwwKSt0fSksdGhpcy5fcmVhZE9uc2NyZWVuLmZvckVhY2goZnVuY3Rpb24oZSl7by5fcmVhZFBvc3RzW2VdPSEwfSkpKX19XSksbyk7ZnVuY3Rpb24gbyhlLHQsbixpKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZT1lLHRoaXMuc2l0ZVNldHRpbmdzPXQsdGhpcy5zZXNzaW9uPW4sdGhpcy5jdXJyZW50VXNlcj1pLHRoaXMucmVzZXQoKX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9zZXR0aW5ncyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnByaW9yaXRpemVOYW1lSW5VeD1mdW5jdGlvbihlLHQpe3JldHVybiEodD10fHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzKS5wcmlvcml0aXplX3VzZXJuYW1lX2luX3V4JiZlJiYwPGUudHJpbSgpLmxlbmd0aH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvc2hhcmluZyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdD17fSxuPVtdO2UuZGVmYXVsdD17YWRkU2hhcmluZ0lkOmZ1bmN0aW9uKGUpe24ucHVzaChlKX0sYWRkU291cmNlOmZ1bmN0aW9uKGUpe2UuZmFJY29uJiYoZS5pY29uPWUuZmFJY29uLnJlcGxhY2UoImZhLSIsIiIpLGRlbGV0ZSBlLmZhSWNvbiksdFtlLmlkXT1lfSxzaGFyZVNvdXJjZTpmdW5jdGlvbihlLHQpe3ZhciBuLGkscztlLmNsaWNrSGFuZGxlcj9lLmNsaWNrSGFuZGxlcih0LnVybCx0LnRpdGxlKToobj1lLmdlbmVyYXRlVXJsKHQudXJsLHQudGl0bGUpLGk9e21lbnViYXI6Im5vIix0b29sYmFyOiJubyIscmVzaXphYmxlOiJ5ZXMiLHNjcm9sbGJhcnM6InllcyIsd2lkdGg6NjAwLGhlaWdodDplLnBvcHVwSGVpZ2h0fHwzMTV9LHM9T2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlKyI9IitpW2VdfSkuam9pbigiLCIpLGUuc2hvdWxkT3BlbkluUG9wdXA/d2luZG93Lm9wZW4obiwiIixzKTp3aW5kb3cub3BlbihuLCJfYmxhbmsiKSl9LGFjdGl2ZVNvdXJjZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOiIiKS5zcGxpdCgifCIpLmNvbmNhdChuKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5jb21wYWN0KCl9LF9yZXNldDpmdW5jdGlvbigpe3Q9e30sbj1bXX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvc3RhdGljLXBhZ2UiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKG4pe3JldHVybiB0LmRlZmF1bHQuZXh0ZW5kKHtyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJzdGF0aWMiKX0sYmVmb3JlTW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9b1tuXTt0JiYwPERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbdF0ubGVuZ3RoJiYoZS5hYm9ydCgpLHMuZGVmYXVsdC5yZWRpcmVjdFRvKERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbdF0pKX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksKDAscy5qdW1wVG9FbGVtZW50KShkb2N1bWVudC5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKSl9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5maW5kKG4pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInN0YXRpYyIpLnNldCgibW9kZWwiLHQpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udChuKX0sYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfTt2YXIgbz17ZmFxOiJmYXFfdXJsIix0b3M6InRvc191cmwiLHByaXZhY3k6InByaXZhY3lfcG9saWN5X3VybCJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3N2Zy1zcHJpdGUtbG9hZGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0Il0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic3ZnLXNwcml0ZS1sb2FkZXIiLGxvYWQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0ic3ZnLXNwcml0ZXMiLGk9IiMiK24scz1pKyIgLiIrdDswPT09JChpKS5sZW5ndGgmJiQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9IicrbisnIj4nKSwwPT09JChzKS5sZW5ndGgmJiQoaSkuYXBwZW5kKCc8ZGl2IGNsYXNzPSInK3QrJyI+JyksKDAsby5kZWZhdWx0KShlKS50aGVuKGZ1bmN0aW9uKCl7JChzKS5odG1sKHdpbmRvdy5fX3N2Z19zcHJpdGUpLGRlbGV0ZSB3aW5kb3cuX19zdmdfc3ByaXRlfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi90YWctaGFzaHRhZ3MiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5UQUdfSEFTSFRBR19QT1NURklYPSI6OnRhZyJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdGhlbWUtc2VsZWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmN1cnJlbnRUaGVtZUtleT1mdW5jdGlvbigpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS50cmFjZSYmKDAsbi5kZWZhdWx0KSgiJ2N1cnJlbnRUaGVtZUtleScgaXMgaXMgZGVwcmVjYXRlZCB1c2UgJ2N1cnJlbnRUaGVtZUlkJyBpbnN0ZWFkLiBBIHRoZW1lIGNvbXBvbmVudCBtYXkgcmVxdWlyZSB1cGRhdGluZy4iKX0sZS5jdXJyZW50VGhlbWVJZHM9cyxlLmN1cnJlbnRUaGVtZUlkPW8sZS5zZXRMb2NhbFRoZW1lPWZ1bmN0aW9uKGUsdCl7KGU9ZS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSkmJjA8ZS5sZW5ndGg/JC5jb29raWUoInRoZW1lX2lkcyIsZS5qb2luKCIsIikrInwiK3Qse3BhdGg6Ii8iLGV4cGlyZXM6OTk5OX0pOiQucmVtb3ZlQ29va2llKCJ0aGVtZV9pZHMiLHtwYXRoOiIvIixleHBpcmVzOjF9KX0sZS5yZWZyZXNoQ1NTPXIsZS5wcmV2aWV3VGhlbWU9ZnVuY3Rpb24oKXt2YXIgbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107KG49bi5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSkuaW5jbHVkZXMobygpKXx8KERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLCgwLHQuYWpheCkoIi90aGVtZXMvYXNzZXRzLyIrKDA8bi5sZW5ndGg/bi5qb2luKCItIik6ImRlZmF1bHQiKSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1fLmZpcnN0KCQoaSkpO3QmJih0LmNvbnRlbnQ9bi5qb2luKCIsIikpLGUudGhlbWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9JCgibGlua1tyZWw9c3R5bGVzaGVldF1bZGF0YS10YXJnZXQ9IitlLnRhcmdldCsiXSIpWzBdO3QmJnIodCxudWxsLGUubmV3X2hyZWYpfSl9KSl9LGUubGlzdFRoZW1lcz1mdW5jdGlvbihlKXt2YXIgdD1lLmdldCgidXNlcl90aGVtZXMiKTtpZighdClyZXR1cm4gbnVsbDt2YXIgbj0hIXQuZmluZEJ5KCJkZWZhdWx0IiwhMCksaT1bXTtufHxpLnB1c2goe25hbWU6STE4bi50KCJ0aGVtZXMuZGVmYXVsdF9kZXNjcmlwdGlvbiIpLGlkOm51bGx9KTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kucHVzaCh7bmFtZTplLm5hbWUsaWQ6ZS50aGVtZV9pZH0pfSksMD09PWkubGVuZ3RoP251bGw6aX07dmFyIGk9Im1ldGFbbmFtZT1kaXNjb3Vyc2VfdGhlbWVfaWRzXSI7ZnVuY3Rpb24gcygpe3ZhciB0PVtdLGU9Xy5maXJzdCgkKGkpKTtyZXR1cm4gZSYmZS5jb250ZW50LnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbihlKXtlPXBhcnNlSW50KGUsMTApLGlzTmFOKGUpfHx0LnB1c2goZSl9KSx0fWZ1bmN0aW9uIG8oKXtyZXR1cm4gcygpWzBdfWZ1bmN0aW9uIHIoZSx0LG4pe3ZhciBpPSQoZSk7aS5kYXRhKCJyZWxvYWRpbmciKSYmKGNsZWFyVGltZW91dChpLmRhdGEoInRpbWVvdXQiKSksaS5kYXRhKCJjb3B5IikucmVtb3ZlKCkpLGkuZGF0YSgib3JpZyIpfHxpLmRhdGEoIm9yaWciLGUuaHJlZiksaS5kYXRhKCJyZWxvYWRpbmciLCEwKTt2YXIgcz0kKGUpLmRhdGEoIm9yaWciKSxvPWkuY2xvbmUoITApO29bMF0uaHJlZj10P3MrKDA8PXMuaW5kZXhPZigiPyIpPyImaGFzaD0iOiI/aGFzaD0iKSt0Om4saS5hZnRlcihvKTt2YXIgcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5yZW1vdmUoKSxvLmRhdGEoInJlbG9hZGluZyIsITEpfSwyZTMpO2kuZGF0YSgidGltZW91dCIsciksaS5kYXRhKCJjb3B5IixvKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdG9vbHRpcCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93VG9vbHRpcD1uLGUuaGlkZVRvb2x0aXA9ZixlLnJlZ2lzdGVyVG9vbHRpcD1mdW5jdGlvbihlKXsoMCx0LmRlZmF1bHQpKCJ0b29sdGlwIGlzIGdldHRpbmcgZGVwcmVjYXRlZC4gVXNlIGQtcG9wb3ZlciBpbnN0ZWFkIiksZS5sZW5ndGgmJmUub2ZmKCJjbGljayIpLm9uKCJjbGljayIsbil9LGUucmVnaXN0ZXJIb3ZlclRvb2x0aXA9ZnVuY3Rpb24oZSl7KDAsdC5kZWZhdWx0KSgidG9vbHRpcCBpcyBnZXR0aW5nIGRlcHJlY2F0ZWQuIFVzZSBkLXBvcG92ZXIgaW5zdGVhZCIpLGUubGVuZ3RoJiZlLm9mZigibW91c2VlbnRlciBtb3VzZWxlYXZlIGNsaWNrIikub24oIm1vdXNlZW50ZXIgY2xpY2siLG4pLm9uKCJtb3VzZWxlYXZlIixmKX0sZS51bnJlZ2lzdGVyVG9vbHRpcD1mdW5jdGlvbihlKXtlLmxlbmd0aCYmZS5vZmYoImNsaWNrIil9LGUudW5yZWdpc3RlckhvdmVyVG9vbHRpcD1mdW5jdGlvbihlKXtlLmxlbmd0aCYmZS5vZmYoIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjbGljayIpfTt2YXIgcD0zMDAsbT0iI2Rpc2NvdXJzZS10b29sdGlwIjtmdW5jdGlvbiBuKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KSxuPXQub2Zmc2V0UGFyZW50KCksaT10LmF0dHIoImRhdGEtdG9vbHRpcCIpPygwLGQuZXNjYXBlRXhwcmVzc2lvbikodC5hdHRyKCJkYXRhLXRvb2x0aXAiKSk6dC5hdHRyKCJkYXRhLWh0bWwtdG9vbHRpcCIpfHwiIixzPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvJiYxPHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvPyJjbGFzcz0ncmV0aW5hJyI6IiIsbz10Lm9mZnNldCgpLHI9bi5vZmZzZXQoKTtvLnRvcC09ci50b3Asby5sZWZ0LT1yLmxlZnQsZigpLHQuYWZ0ZXIoJ1xuICAgIDxkaXYgaWQ9ImRpc2NvdXJzZS10b29sdGlwIiAnK3MrJz5cbiAgICAgIDxkaXYgY2xhc3M9InRvb2x0aXAtcG9pbnRlciI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJ0b29sdGlwLWNvbnRlbnQiPicraSsiPC9kaXY+XG4gICAgPC9kaXY+XG4gICIpLCQod2luZG93KS5vbigiY2xpY2suZGlzY291cnNlIixmdW5jdGlvbihlKXtyZXR1cm4gMD09PSQoZS50YXJnZXQpLmNsb3Nlc3QobSkubGVuZ3RoJiYoJChtKS5yZW1vdmUoKSwkKHdpbmRvdykub2ZmKCJjbGljay5kaXNjb3Vyc2UiKSksITB9KTt2YXIgYT0kKG0pO2EuY3NzKHt0b3A6MCxsZWZ0OjB9KTt2YXIgbD1vLmxlZnQtYS53aWR0aCgpLzIrdC53aWR0aCgpLzI7bDwwJiYoYS5maW5kKCIudG9vbHRpcC1wb2ludGVyIikuY3NzKHsibWFyZ2luLWxlZnQiOjIqbCsicHgifSksbD0wKTt2YXIgdSxjPW4ud2lkdGgoKTtyZXR1cm4gbCthLndpZHRoKCk+YyYmKHU9bCxsPWMtYS53aWR0aCgpLGEuZmluZCgiLnRvb2x0aXAtcG9pbnRlciIpLmNzcyh7Im1hcmdpbi1sZWZ0IjoyKih1LWwpKyJweCJ9KSksYS5jc3Moe3RvcDpvLnRvcCs1KyJweCIsbGVmdDpsKyJweCJ9KSxhLmZhZGVJbihwKSwhMX1mdW5jdGlvbiBmKCl7JChtKS5mYWRlT3V0KHApLnJlbW92ZSgpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi90cmFuc2Zvcm0tcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmluY2x1ZGVBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTt0LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGgucHVzaChlKX0pfSxlLnRyYW5zZm9ybUJhc2ljUG9zdD1iLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvPW4ucG9zdF90eXBlLHI9dC5wb3N0X3R5cGVzLGE9bi50b3BpYyxsPWEuZ2V0KCJkZXRhaWxzIiksdT1iKG4pLGM9bC5jcmVhdGVkX2J5fHx7fTt1LnRvcGljSWQ9YS5pZCx1LnRvcGljT3duZXI9Yy5pZD09PW4udXNlcl9pZCx1LnRvcGljQ3JlYXRlZEJ5SWQ9Yy5pZCx1LnBvc3RfdHlwZT1vLHUudmlhX2VtYWlsPW4udmlhX2VtYWlsLHUuaXNBdXRvR2VuZXJhdGVkPW4uaXNfYXV0b19nZW5lcmF0ZWQsdS5pc01vZGVyYXRvckFjdGlvbj1vPT09ci5tb2RlcmF0b3JfYWN0aW9uLHUuaXNXaGlzcGVyPW89PT1yLndoaXNwZXIsdS5pc1NtYWxsQWN0aW9uPW89PT1yLnNtYWxsX2FjdGlvbnx8InNwbGl0X3RvcGljIj09PW4uYWN0aW9uX2NvZGUsdS5jYW5Cb29rbWFyaz0hIWUsdS5jYW5NYW5hZ2U9ZSYmZS5nZXQoImNhbk1hbmFnZVRvcGljIiksdS5jYW5WaWV3UmF3RW1haWw9ZSYmKGUuaWQ9PT1uLnVzZXJfaWR8fGUuc3RhZmYpLHUuY2FuUmVwbHlBc05ld1RvcGljPWwuY2FuX3JlcGx5X2FzX25ld190b3BpYyx1LmNhblJldmlld1RvcGljPSEhbC5jYW5fcmV2aWV3X3RvcGljLHUuaXNXYXJuaW5nPWEuaXNfd2FybmluZyx1LmxpbmtzPW4uZ2V0KCJpbnRlcm5hbExpbmtzIiksdS5yZXBseURpcmVjdGx5QmVsb3c9cyYmcy5yZXBseV90b19wb3N0X251bWJlcj09PW4ucG9zdF9udW1iZXIsdS5yZXBseURpcmVjdGx5QWJvdmU9aSYmbi5yZXBseV90b19wb3N0X251bWJlcj09PWkucG9zdF9udW1iZXIsdS5saW5rQ291bnRzPW4ubGlua19jb3VudHMsdS5hY3Rpb25Db2RlPW4uYWN0aW9uX2NvZGUsdS5hY3Rpb25Db2RlV2hvPW4uYWN0aW9uX2NvZGVfd2hvLHUudG9waWNVcmw9YS5nZXQoInVybCIpLHUuaXNTYXZpbmc9bi5pc1NhdmluZyxuLm5vdGljZV90eXBlJiYodS5ub3RpY2VUeXBlPW4ubm90aWNlX3R5cGUsImN1c3RvbSI9PT11Lm5vdGljZVR5cGU/dS5ub3RpY2VNZXNzYWdlPW4ubm90aWNlX2FyZ3M6InJldHVybmluZ191c2VyIj09PXUubm90aWNlVHlwZSYmKHUubm90aWNlVGltZT1uZXcgRGF0ZShuLm5vdGljZV9hcmdzKSkpO3ZhciBkPSJwcml2YXRlX21lc3NhZ2UiPT09YS5hcmNoZXR5cGUmJjE9PT1uLnBvc3RfbnVtYmVyO2QmJih1LnNob3dQTU1hcD0hMCx1LmFsbG93ZWRHcm91cHM9bC5hbGxvd2VkX2dyb3Vwcyx1LmFsbG93ZWRVc2Vycz1sLmFsbG93ZWRfdXNlcnMsdS5jYW5SZW1vdmVBbGxvd2VkVXNlcnM9bC5jYW5fcmVtb3ZlX2FsbG93ZWRfdXNlcnMsdS5jYW5SZW1vdmVTZWxmSWQ9bC5jYW5fcmVtb3ZlX3NlbGZfaWQsdS5jYW5JbnZpdGU9bC5jYW5faW52aXRlX3RvKTt7dmFyIHA7KGR8fDE9PT1uLnBvc3RfbnVtYmVyJiYicmVndWxhciI9PT1hLmFyY2hldHlwZSYmMTxhLnBvc3RzX2NvdW50KSYmKHUuc2hvd1RvcGljTWFwPSEwLHUudG9waWNDcmVhdGVkQXQ9YS5jcmVhdGVkX2F0LHUuY3JlYXRlZEJ5VXNlcm5hbWU9Yy51c2VybmFtZSx1LmNyZWF0ZWRCeUF2YXRhclRlbXBsYXRlPWMuYXZhdGFyX3RlbXBsYXRlLHUuY3JlYXRlZEJ5TmFtZT1jLm5hbWUsdS5sYXN0UG9zdFVybD1hLmdldCgibGFzdFBvc3RVcmwiKSx1Lmxhc3RQb3N0VXNlcm5hbWU9bC5sYXN0X3Bvc3Rlci51c2VybmFtZSx1Lmxhc3RQb3N0QXZhdGFyVGVtcGxhdGU9bC5sYXN0X3Bvc3Rlci5hdmF0YXJfdGVtcGxhdGUsdS5sYXN0UG9zdE5hbWU9bC5sYXN0X3Bvc3Rlci5uYW1lLHUubGFzdFBvc3RBdD1hLmxhc3RfcG9zdGVkX2F0LHUudG9waWNSZXBseUNvdW50PWEuZ2V0KCJyZXBseUNvdW50IiksdS50b3BpY1ZpZXdzPWEudmlld3MsdS50b3BpY1ZpZXdzSGVhdD1hLmdldCgidmlld3NIZWF0IiksdS5wYXJ0aWNpcGFudENvdW50PWEucGFydGljaXBhbnRfY291bnQsdS50b3BpY0xpa2VDb3VudD1hLmxpa2VfY291bnQsdS50b3BpY0xpbmtzPWwubGlua3MsdS50b3BpY0xpbmtzJiYodS50b3BpY0xpbmtMZW5ndGg9bC5saW5rcy5sZW5ndGgpLHUudG9waWNQb3N0c0NvdW50PWEucG9zdHNfY291bnQsdS5wYXJ0aWNpcGFudHM9bC5wYXJ0aWNpcGFudHMscD1hLmdldCgicG9zdFN0cmVhbSIpLHUudXNlckZpbHRlcnM9cC51c2VyRmlsdGVycyx1LnRvcGljU3VtbWFyeUVuYWJsZWQ9cC5zdW1tYXJ5LHUudG9waWNXb3JkQ291bnQ9YS53b3JkX2NvdW50LHUuaGFzVG9waWNTdW1tYXJ5PWEuaGFzX3N1bW1hcnkpfXUuaXNEZWxldGVkJiYodS5kZWxldGVkQnlBdmF0YXJUZW1wbGF0ZT1uLmdldCgicG9zdERlbGV0ZWRCeS5hdmF0YXJfdGVtcGxhdGUiKSx1LmRlbGV0ZWRCeVVzZXJuYW1lPW4uZ2V0KCJwb3N0RGVsZXRlZEJ5LnVzZXJuYW1lIikpO3ZhciBtPW4uZ2V0KCJyZXBseV90b191c2VyIik7bSYmKHUucmVwbHlUb1VzZXJuYW1lPW0udXNlcm5hbWUsdS5yZXBseVRvQXZhdGFyVGVtcGxhdGU9bS5hdmF0YXJfdGVtcGxhdGUpO24uYWN0aW9uc19zdW1tYXJ5JiYodS5hY3Rpb25zU3VtbWFyeT1uLmFjdGlvbnNfc3VtbWFyeS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuImxpa2UiIT09ZS5hY3Rpb25UeXBlLm5hbWVfa2V5JiZlLmFjdGVkfSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWN0aW9uVHlwZS5uYW1lX2tleTtyZXR1cm57aWQ6ZS5pZCxwb3N0SWQ6bi5pZCxhY3Rpb246dCxjYW5VbmRvOmUuY2FuX3VuZG8sZGVzY3JpcHRpb246STE4bi50KCJwb3N0LmFjdGlvbnMuYnlfeW91LiIrdCl9fSkpO3ZhciBmPW4ubGlrZUFjdGlvbjtmJiYodS5saWtlZD1mLmFjdGVkLHUuY2FuVG9nZ2xlTGlrZT1mLmdldCgiY2FuVG9nZ2xlIiksdS5zaG93TGlrZT11Lmxpa2VkfHx1LmNhblRvZ2dsZUxpa2UsdS5saWtlQ291bnQ9Zi5jb3VudCk7ZXx8KHUuc2hvd0xpa2U9IWEuYXJjaGl2ZWQpOzE9PT11LnBvc3RfbnVtYmVyPyh1LmNhblJlY292ZXJUb3BpYz11LmlzRGVsZXRlZCYmbC5jYW5fcmVjb3Zlcix1LmNhbkRlbGV0ZVRvcGljPSF1LmlzRGVsZXRlZCYmbC5jYW5fZGVsZXRlLHUuZXhwYW5kYWJsZVBvc3Q9YS5leHBhbmRhYmxlX2ZpcnN0X3Bvc3QsdS5zaG93RmxhZ0RlbGV0ZT0hdS5jYW5EZWxldGUmJnUueW91cnMmJmUmJiFlLnN0YWZmKToodS5jYW5SZWNvdmVyPXUuaXNEZWxldGVkJiZ1LmNhblJlY292ZXIsdS5jYW5EZWxldGU9dS5jYW5EZWxldGUmJiFuLmRlbGV0ZWRfYXQmJmUmJihlLnN0YWZmfHwhbi51c2VyX2RlbGV0ZWQpKTtyZXR1cm4gaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB1W2VdPW5bZV19KSx1fTt2YXIgaD1bXTtmdW5jdGlvbiBiKHQpe3ZhciBuPXtpZDp0LmlkLGhpZGRlbjp0LmhpZGRlbixkZWxldGVkOnQuZ2V0KCJkZWxldGVkIiksZGVsZXRlZF9hdDp0LmRlbGV0ZWRfYXQsdXNlcl9kZWxldGVkOnQudXNlcl9kZWxldGVkLGlzRGVsZXRlZDp0LmRlbGV0ZWRfYXR8fHQudXNlcl9kZWxldGVkLGRlbGV0ZWRCeUF2YXRhclRlbXBsYXRlOm51bGwsZGVsZXRlZEJ5VXNlcm5hbWU6bnVsbCxwcmltYXJ5X2dyb3VwX25hbWU6dC5wcmltYXJ5X2dyb3VwX25hbWUscHJpbWFyeV9ncm91cF9mbGFpcl91cmw6dC5wcmltYXJ5X2dyb3VwX2ZsYWlyX3VybCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOnQucHJpbWFyeV9ncm91cF9mbGFpcl9iZ19jb2xvcixwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yOnQucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvcix3aWtpOnQud2lraSxsYXN0V2lraUVkaXQ6dC5sYXN0X3dpa2lfZWRpdCxmaXJzdFBvc3Q6MT09PXQucG9zdF9udW1iZXIscG9zdF9udW1iZXI6dC5wb3N0X251bWJlcixjb29rZWQ6dC5jb29rZWQsdmlhX2VtYWlsOnQudmlhX2VtYWlsLGlzQXV0b0dlbmVyYXRlZDp0LmlzX2F1dG9fZ2VuZXJhdGVkLHVzZXJfaWQ6dC51c2VyX2lkLHVzZXJuYW1lVXJsOigwLHMudXNlclBhdGgpKHQudXNlcm5hbWUpLHVzZXJuYW1lOnQudXNlcm5hbWUsYXZhdGFyX3RlbXBsYXRlOnQuYXZhdGFyX3RlbXBsYXRlLGJvb2ttYXJrZWQ6dC5ib29rbWFya2VkLGJvb2ttYXJrZWRXaXRoUmVtaW5kZXI6dC5ib29rbWFya2VkX3dpdGhfcmVtaW5kZXIsYm9va21hcmtSZW1pbmRlckF0OnQuYm9va21hcmtfcmVtaW5kZXJfYXQseW91cnM6dC55b3VycyxzaGFyZVVybDp0LmdldCgic2hhcmVVcmwiKSxzdGFmZjp0LnN0YWZmLGFkbWluOnQuYWRtaW4sbW9kZXJhdG9yOnQubW9kZXJhdG9yLG5ld191c2VyOjA9PT10LnRydXN0X2xldmVsLG5hbWU6dC5uYW1lLHVzZXJfdGl0bGU6dC51c2VyX3RpdGxlLGNyZWF0ZWRfYXQ6dC5jcmVhdGVkX2F0LHVwZGF0ZWRfYXQ6dC51cGRhdGVkX2F0LGNhbkRlbGV0ZTp0LmNhbl9kZWxldGUsc2hvd0ZsYWdEZWxldGU6ITEsY2FuUmVjb3Zlcjp0LmNhbl9yZWNvdmVyLGNhbkVkaXQ6dC5jYW5fZWRpdCxjYW5GbGFnOiEoMCxpLmlzRW1wdHkpKHQuZ2V0KCJmbGFnc0F2YWlsYWJsZSIpKSxjYW5SZXZpZXdUb3BpYzohMSxyZXZpZXdhYmxlSWQ6dC5yZXZpZXdhYmxlX2lkLHJldmlld2FibGVTY29yZUNvdW50OnQucmV2aWV3YWJsZV9zY29yZV9jb3VudCxyZXZpZXdhYmxlU2NvcmVQZW5kaW5nQ291bnQ6dC5yZXZpZXdhYmxlX3Njb3JlX3BlbmRpbmdfY291bnQsdmVyc2lvbjp0LnZlcnNpb24sY2FuUmVjb3ZlclRvcGljOiExLGNhbkRlbGV0ZVRvcGljOiExLGNhblZpZXdFZGl0SGlzdG9yeTp0LmNhbl92aWV3X2VkaXRfaGlzdG9yeSxjYW5XaWtpOnQuY2FuX3dpa2ksc2hvd0xpa2U6ITEsbGlrZWQ6ITEsY2FuVG9nZ2xlTGlrZTohMSxsaWtlQ291bnQ6ITEsYWN0aW9uc1N1bW1hcnk6bnVsbCxyZWFkOnQucmVhZCxyZXBseVRvVXNlcm5hbWU6bnVsbCxyZXBseVRvQXZhdGFyVGVtcGxhdGU6bnVsbCxyZXBseV90b19wb3N0X251bWJlcjp0LnJlcGx5X3RvX3Bvc3RfbnVtYmVyLGNvb2tlZF9oaWRkZW46ISF0LmNvb2tlZF9oaWRkZW4sZXhwYW5kYWJsZVBvc3Q6ITEscmVwbHlDb3VudDp0LnJlcGx5X2NvdW50LGxvY2tlZDp0LmxvY2tlZCx1c2VyQ3VzdG9tRmllbGRzOnQudXNlcl9jdXN0b21fZmllbGRzLHJlYWRDb3VudDp0LnJlYWRlcnNfY291bnR9O3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV09dFtlXX0pLG59fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3VwbG9hZHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdChlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gaShlKXt2YXIgdD1lLnN1YnN0cigwLGUubGFzdEluZGV4T2YoIi4iKSk7cmV0dXJuKDAsbi5pc0FwcGxlRGV2aWNlKSgpJiYvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvaS50ZXN0KHQpJiYodD1JMThuLnQoInVwbG9hZF9zZWxlY3Rvci5kZWZhdWx0X2ltYWdlX2FsdF90ZXh0IikpLHQucmVwbGFjZSgvXFt8XF18XHwvZywiIil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFya2Rvd25OYW1lRnJvbUZpbGVOYW1lPWksZS52YWxpZGF0ZVVwbG9hZGVkRmlsZXM9ZnVuY3Rpb24oZSx0KXtpZighZXx8MD09PWUubGVuZ3RoKXJldHVybiExO2lmKDE8ZS5sZW5ndGgpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJwb3N0LmVycm9ycy50b29fbWFueV91cGxvYWRzIikpLCExO3ZhciBuPWVbMF07InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiYidW5kZWZpbmVkIiE9dHlwZW9mIEZpbGUmJm4gaW5zdGFuY2VvZiBCbG9iJiYhKG4gaW5zdGFuY2VvZiBGaWxlKSYmImltYWdlL3BuZyI9PT1uLnR5cGUmJihuLm5hbWU9ImltYWdlLnBuZyIpO3JldHVybih0PXR8fHt9KS50eXBlPWgobi5uYW1lKSxmdW5jdGlvbihlLHQpe2lmKHQuc2tpcFZhbGlkYXRpb24pcmV0dXJuITA7dmFyIG49KHQ9dHx8e30pLnVzZXIsaT1uJiZuLnN0YWZmO2lmKCFkKGkpKXJldHVybiExO3ZhciBzPWUmJmUubmFtZTtpZighcylyZXR1cm4hMTtpZih0LmFsbG93U3RhZmZUb1VwbG9hZEFueUZpbGVJblBtJiZ0LmlzUHJpdmF0ZU1lc3NhZ2UmJmkpcmV0dXJuITA7aWYodC5pbWFnZXNPbmx5KXtpZighcChzKSYmIWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUmVnRXhwKCJcXC4oIitsKGUpLmpvaW4oInwiKSsiKSQiLCJpIil9KHQpLnRlc3QoZSl9KHMsaSkpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJwb3N0LmVycm9ycy51cGxvYWRfbm90X2F1dGhvcml6ZWQiLHthdXRob3JpemVkX2V4dGVuc2lvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuIGMoZSk/InBuZywganBnLCBqcGVnLCBnaWYsIHN2ZywgaWNvIjpsKGUpLmpvaW4oIiwgIil9KGkpfSkpLCExfWVsc2UgaWYodC5jc3ZPbmx5KXtpZighL1wuY3N2JC9pLnRlc3QocykpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmludml0ZWQuYnVsa19pbnZpdGUuZXJyb3IiKSksITF9ZWxzZSBpZighYyhpKSYmIWZ1bmN0aW9uKGUsdCl7aWYodCYmbmV3IFJlZ0V4cCgiXFwuKCIrYSgpLmpvaW4oInwiKSsiKSQiLCJpIikudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4gbmV3IFJlZ0V4cCgiXFwuKCIrcigpLmpvaW4oInwiKSsiKSQiLCJpIikudGVzdChlKX0ocyxpKSlyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoInBvc3QuZXJyb3JzLnVwbG9hZF9ub3RfYXV0aG9yaXplZCIse2F1dGhvcml6ZWRfZXh0ZW5zaW9uczp1KGkpfSkpLCExO2lmKCF0LmJ5cGFzc05ld1VzZXJSZXN0cmljdGlvbiYmbiYmIW4uaXNBbGxvd2VkVG9VcGxvYWRBRmlsZSh0LnR5cGUpKXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuIit0LnR5cGUrIl91cGxvYWRfbm90X2FsbG93ZWRfZm9yX25ld191c2VyIikpLCExO3JldHVybiEwfShuLHQpfSxlLmF1dGhvcml6ZWRFeHRlbnNpb25zPXUsZS5hdXRob3JpemVzQWxsRXh0ZW5zaW9ucz1jLGUuYXV0aG9yaXplc09uZU9yTW9yZUV4dGVuc2lvbnM9ZCxlLmF1dGhvcml6ZXNPbmVPck1vcmVJbWFnZUV4dGVuc2lvbnM9ZnVuY3Rpb24oZSl7cmV0dXJuISFjKGUpfHwwPGwoZSkubGVuZ3RofSxlLmlzSW1hZ2U9cCxlLmlzVmlkZW89bSxlLmlzQXVkaW89ZixlLmFsbG93c0ltYWdlcz1mdW5jdGlvbihlKXtyZXR1cm4gYyhlKXx8cy50ZXN0KHUoZSkpfSxlLmFsbG93c0F0dGFjaG1lbnRzPWIsZS51cGxvYWRJY29uPWZ1bmN0aW9uKGUpe3JldHVybiBiKGUpPyJ1cGxvYWQiOiJmYXItaW1hZ2UifSxlLmdldFVwbG9hZE1hcmtkb3duPWZ1bmN0aW9uKGUpe3JldHVybiBwKGUub3JpZ2luYWxfZmlsZW5hbWUpP2Z1bmN0aW9uKGUpe3JldHVybiIhWyIraShlLm9yaWdpbmFsX2ZpbGVuYW1lKSsifCIrZS50aHVtYm5haWxfd2lkdGgrIngiK2UudGh1bWJuYWlsX2hlaWdodCsiXSgiKyhlLnNob3J0X3VybHx8ZS51cmwpKyIpIn0oZSk6ZihlLm9yaWdpbmFsX2ZpbGVuYW1lKT9nKGUsImF1ZGlvIik6bShlLm9yaWdpbmFsX2ZpbGVuYW1lKT9nKGUsInZpZGVvIik6ZnVuY3Rpb24oZSl7cmV0dXJuIlsiK2Uub3JpZ2luYWxfZmlsZW5hbWUrInxhdHRhY2htZW50XSgiK2Uuc2hvcnRfdXJsKyIpICgiK0kxOG4udG9IdW1hblNpemUoZS5maWxlc2l6ZSkrIikifShlKX0sZS5kaXNwbGF5RXJyb3JGb3JVcGxvYWQ9ZnVuY3Rpb24oZSl7aWYoZS5qcVhIUilzd2l0Y2goZS5qcVhIUi5zdGF0dXMpe2Nhc2UgMDpyZXR1cm47Y2FzZSA0MTM6dmFyIHQ9aChlLmZpbGVzWzBdLm5hbWUpLG49RGlzY291cnNlLlNpdGVTZXR0aW5nc1sibWF4XyIrdCsiX3NpemVfa2IiXTtyZXR1cm4gdm9pZCBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuZmlsZV90b29fbGFyZ2UiLHttYXhfc2l6ZV9rYjpufSkpO2Nhc2UgNDIyOnJldHVybiB2b2lkKGUuanFYSFIucmVzcG9uc2VKU09OLm1lc3NhZ2U/Ym9vdGJveC5hbGVydChlLmpxWEhSLnJlc3BvbnNlSlNPTi5tZXNzYWdlKTpib290Ym94LmFsZXJ0KGUuanFYSFIucmVzcG9uc2VKU09OLmVycm9ycy5qb2luKCJcbiIpKSl9ZWxzZSBpZihlLmVycm9ycyYmMDxlLmVycm9ycy5sZW5ndGgpcmV0dXJuIHZvaWQgYm9vdGJveC5hbGVydChlLmVycm9ycy5qb2luKCJcbiIpKTtib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudXBsb2FkIikpfTt2YXIgcz0vKHBuZ3xqcGU/Z3xnaWZ8c3ZnfGljbykvaTtmdW5jdGlvbiBvKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW1xzXC5dKy9nLCIiKS5zcGxpdCgifCIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4tMT09PWUuaW5kZXhPZigiKiIpfSl9ZnVuY3Rpb24gcigpe3JldHVybiBvKERpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0aG9yaXplZF9leHRlbnNpb25zKX1mdW5jdGlvbiBhKCl7cmV0dXJuIG8oRGlzY291cnNlLlNpdGVTZXR0aW5ncy5hdXRob3JpemVkX2V4dGVuc2lvbnNfZm9yX3N0YWZmKX1mdW5jdGlvbiBsKGUpe3ZhciB0LG49cigpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gcy50ZXN0KGUpfSk7cmV0dXJuIGUmJih0PWEoKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlKX0pLG49Xy51bmlvbihuLHQpKSxufWZ1bmN0aW9uIHUoZSl7cmV0dXJuKGU/W10uY29uY2F0KHQocigpKSx0KGEoKSkpOnIoKSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RofSkuam9pbigiLCAiKX1mdW5jdGlvbiBjKGUpe3JldHVybiAwPD1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmF1dGhvcml6ZWRfZXh0ZW5zaW9ucy5pbmRleE9mKCIqIil8fDA8PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0aG9yaXplZF9leHRlbnNpb25zX2Zvcl9zdGFmZi5pbmRleE9mKCIqIikmJmV9ZnVuY3Rpb24gZChlKXtyZXR1cm4hIWMoZSl8fDA8RGlzY291cnNlLlNpdGVTZXR0aW5ncy5hdXRob3JpemVkX2V4dGVuc2lvbnMuc3BsaXQoInwiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KS5sZW5ndGh9ZnVuY3Rpb24gcChlKXtyZXR1cm4vXC4ocG5nfHdlYnB8anBlP2d8Z2lmfHN2Z3xpY28pJC9pLnRlc3QoZSl9ZnVuY3Rpb24gbShlKXtyZXR1cm4vXC4obW92fG1wNHx3ZWJtfG00dnwzZ3B8b2d2fGF2aXxtcGVnfG9ndikkL2kudGVzdChlKX1mdW5jdGlvbiBmKGUpe3JldHVybi9cLihtcDN8b2dbZ2FdfG9wdXN8d2F2fG00W2FicHJdfGFhY3xmbGFjKSQvaS50ZXN0KGUpfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIHAoZSk/ImltYWdlIjoiYXR0YWNobWVudCJ9ZnVuY3Rpb24gYihlKXtyZXR1cm4gYyhlKXx8dShlKS5zcGxpdCgiLCAiKS5sZW5ndGg+bChlKS5sZW5ndGh9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiIhWyIraShlLm9yaWdpbmFsX2ZpbGVuYW1lKSsifCIrdCsiXSgiK2Uuc2hvcnRfdXJsKyIpIn19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNlbmRBY3RpdmF0aW9uRW1haWw9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdC5hamF4KSgoMCxpLnVzZXJQYXRoKSgiYWN0aW9uL3NlbmRfYWN0aXZhdGlvbl9lbWFpbCIpLHt0eXBlOiJQT1NUIixkYXRhOnt1c2VybmFtZTplfX0pLmNhdGNoKG4ucG9wdXBBamF4RXJyb3IpfSxlLmNoYW5nZUVtYWlsPWZ1bmN0aW9uKGUpe3JldHVybigwLHQuYWpheCkoKDAsaS51c2VyUGF0aCkoInVwZGF0ZS1hY3RpdmF0aW9uLWVtYWlsIikse2RhdGE6ZSx0eXBlOiJQVVQifSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3dlYmF1dGhuIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQ9bmV3IEFycmF5QnVmZmVyKGUubGVuZ3RoKSxuPW5ldyBVaW50OEFycmF5KHQpLGk9MDtpPGUubGVuZ3RoO2krKyluW2ldPWUuY2hhckNvZGVBdChpKTtyZXR1cm4gdH1mdW5jdGlvbiBhKGUpe3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0obmV3IFVpbnQ4QXJyYXkoZSkpKSl9ZnVuY3Rpb24gbCgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgUHVibGljS2V5Q3JlZGVudGlhbH1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zdHJpbmdUb0J1ZmZlcj1yLGUuYnVmZmVyVG9CYXNlNjQ9YSxlLmlzV2ViYXV0aG5TdXBwb3J0ZWQ9bCxlLmdldFdlYmF1dGhuQ3JlZGVudGlhbD1mdW5jdGlvbihlLG4saSxzKXtpZighbCgpKXJldHVybiBzKEkxOG4udCgibG9naW4uc2VjdXJpdHlfa2V5X3N1cHBvcnRfbWlzc2luZ19lcnJvciIpKTt2YXIgdD1yKGUpLG89bi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOnIoYXRvYihlKSksdHlwZToicHVibGljLWtleSJ9fSk7bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCh7cHVibGljS2V5OntjaGFsbGVuZ2U6dCxhbGxvd0NyZWRlbnRpYWxzOm8sdGltZW91dDo2ZTQsdXNlclZlcmlmaWNhdGlvbjoiZGlzY291cmFnZWQifX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoIW4uc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYSh0LnJhd0lkKT09PWV9KSlyZXR1cm4gcyhJMThuLnQoImxvZ2luLnNlY3VyaXR5X2tleV9ub19tYXRjaGluZ19jcmVkZW50aWFsX2Vycm9yIikpO3ZhciBlPXtzaWduYXR1cmU6YSh0LnJlc3BvbnNlLnNpZ25hdHVyZSksY2xpZW50RGF0YTphKHQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLGF1dGhlbnRpY2F0b3JEYXRhOmEodC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSksY3JlZGVudGlhbElkOmEodC5yYXdJZCl9O2koZSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4iTm90QWxsb3dlZEVycm9yIj09PWUubmFtZT9zKEkxOG4udCgibG9naW4uc2VjdXJpdHlfa2V5X25vdF9hbGxvd2VkX2Vycm9yIikpOnZvaWQgcyhlKX0pfX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9hZGQtYXJjaGV0eXBlLWNsYXNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0obj0oMCx0Lm9ic2VydmVzKSgiYXJjaGV0eXBlIiksaT0oMCx0Lm9uKSgiaW5pdCIpLG89cz17X2NsZWFuVXA6ZnVuY3Rpb24oKXskKCJib2R5IikucmVtb3ZlQ2xhc3MoZnVuY3Rpb24oZSx0KXtyZXR1cm4odC5tYXRjaCgvXGJhcmNoZXR5cGUtXFMrL2cpfHxbXSkuam9pbigiICIpfSl9LF9hcmNoZXR5cGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hcmNoZXR5cGU7dGhpcy5fY2xlYW5VcCgpLGUmJiQoImJvZHkiKS5hZGRDbGFzcygiYXJjaGV0eXBlLSIrZSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jbGVhblVwKCl9fSxyPSJfYXJjaGV0eXBlQ2hhbmdlZCIsYT1bbixpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiX2FyY2hldHlwZUNoYW5nZWQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscyl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvYnVmZmVyZWQtY29udGVudCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9wcm94eSIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSl7dmFyIHQ9e2J1ZmZlcmVkOigwLHMuY29tcHV0ZWQpKGUsZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0LmV4dGVuZChCdWZmZXJlZFByb3h5KS5jcmVhdGUoe2NvbnRlbnQ6dGhpcy5nZXQoZSl9KX0pLHJvbGxiYWNrQnVmZmVyOmZ1bmN0aW9uKCl7dGhpcy5idWZmZXJlZC5kaXNjYXJkQnVmZmVyZWRDaGFuZ2VzKCl9LGNvbW1pdEJ1ZmZlcjpmdW5jdGlvbigpe3RoaXMuYnVmZmVyZWQuYXBwbHlCdWZmZXJlZENoYW5nZXMoKX0scHJvcGVydHk6bnVsbH07cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUodCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVmZmVyZWRQcm9wZXJ0eT10LGUuZGVmYXVsdD10KCJjb250ZW50Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxzLG4saSxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoKHI9KDAsbi5vbikoImluaXQiKSxhPXtidWxrU2VsZWN0RW5hYmxlZDohMSxzZWxlY3RlZDpudWxsLGNhbkJ1bGtTZWxlY3Q6KDAsdC5hbGlhcykoImN1cnJlbnRVc2VyLnN0YWZmIikscmVzZXRTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJzZWxlY3RlZCIsW10pfSxhY3Rpb25zOnt0b2dnbGVCdWxrU2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiYnVsa1NlbGVjdEVuYWJsZWQiKSx0aGlzLnNlbGVjdGVkLmNsZWFyKCl9LGRpc21pc3NSZWFkOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxpPXZvaWQgMCxpPSJwb3N0cyI9PT1lP3t0eXBlOiJkaXNtaXNzX3Bvc3RzIn06e3R5cGU6ImNoYW5nZV9ub3RpZmljYXRpb25fbGV2ZWwiLG5vdGlmaWNhdGlvbl9sZXZlbF9pZDpzLk5vdGlmaWNhdGlvbkxldmVscy5SRUdVTEFSfTsoMDx0aGlzLnNlbGVjdGVkLmxlbmd0aD9vLmRlZmF1bHQuYnVsa09wZXJhdGlvbih0aGlzLnNlbGVjdGVkLGkpOm8uZGVmYXVsdC5idWxrT3BlcmF0aW9uQnlGaWx0ZXIoInVucmVhZCIsaSx0aGlzLmdldCgiY2F0ZWdvcnkuaWQiKSx0KSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtlJiZlLnRvcGljX2lkcyYmKHQ9bi50b3BpY1RyYWNraW5nU3RhdGUsZS50b3BpY19pZHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5yZW1vdmVUb3BpYyhlKX0pLHQuaW5jcmVtZW50TWVzc2FnZUNvdW50KCkpLG4uc2VuZCgiY2xvc2VNb2RhbCIpLG4uc2VuZCgicmVmcmVzaCIpfSl9fX0sbD1hLHU9InJlc2V0U2VsZWN0ZWQiLGM9W3JdLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJyZXNldFNlbGVjdGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9jYW4tY2hlY2stZW1haWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuY3JlYXRlKHtpc0N1cnJlbnRVc2VyOigwLG4ucHJvcGVydHlFcXVhbCkoIm1vZGVsLmlkIiwiY3VycmVudFVzZXIuaWQiKSxzaG93RW1haWxPblByb2ZpbGU6KDAsbi5zZXR0aW5nKSgibW9kZXJhdG9yc192aWV3X2VtYWlscyIpLGNhblN0YWZmQ2hlY2tFbWFpbHM6KDAsdC5hbmQpKCJzaG93RW1haWxPblByb2ZpbGUiLCJjdXJyZW50VXNlci5zdGFmZiIpLGNhbkFkbWluQ2hlY2tFbWFpbHM6KDAsdC5hbGlhcykoImN1cnJlbnRVc2VyLmFkbWluIiksY2FuQ2hlY2tFbWFpbHM6KDAsdC5vcikoImlzQ3VycmVudFVzZXIiLCJjYW5TdGFmZkNoZWNrRW1haWxzIiwiY2FuQWRtaW5DaGVja0VtYWlscyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvY2FyZC1jb250ZW50cy1iYXNlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvYWZ0ZXItdHJhbnNpdGlvbiIsImRpc2NvdXJzZS9saWIvdXJsIiwiQGVtYmVyL29iamVjdC9taXhpbiJdLGZ1bmN0aW9uKGUsdCxkLGEsbCx1LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5jcmVhdGUoe2VsZW1lbnRJZDpudWxsLHRyaWdnZXJpbmdMaW5rQ2xhc3M6bnVsbCxfc2hvd0NhbGxiYWNrOm51bGwscG9zdFN0cmVhbTooMCx0LmFsaWFzKSgidG9waWMucG9zdFN0cmVhbSIpLHZpZXdpbmdUb3BpYzooMCx0Lm1hdGNoKSgiY3VycmVudFBhdGgiLC9edG9waWNcLi8pLHZpc2libGU6ITEsdXNlcm5hbWU6bnVsbCxsb2FkaW5nOm51bGwsY2FyZFRhcmdldDpudWxsLHBvc3Q6bnVsbCxpc0ZpeGVkOiExLGlzRG9ja2VkOiExLF9zaG93OmZ1bmN0aW9uKGUsdCl7aWYodGhpcy5zaXRlU2V0dGluZ3MuaGlkZV91c2VyX3Byb2ZpbGVzX2Zyb21fcHVibGljJiYhdGhpcy5jdXJyZW50VXNlcilyZXR1cm4hMTtpZihlPUVtYmVyLkhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRvU3RyaW5nKCkpLHQucGFyZW50cygiLmNhcmQtY29udGVudCIpLmxlbmd0aClyZXR1cm4gdGhpcy5fY2xvc2UoKSx1LmRlZmF1bHQucm91dGVUbyh0LmF0dHIoImhyZWYiKSksITE7aWYoZSE9PXRoaXMudXNlcm5hbWV8fHRoaXMubG9hZGluZyE9PWUpe3ZhciBuPXQucGFyZW50cygiYXJ0aWNsZSIpLmRhdGEoInBvc3QtaWQiKSxpPXRoaXMudmlzaWJsZSxzPXRoaXMuY2FyZFRhcmdldCxvPXRbMF07aWYoIWl8fCh0aGlzLl9jbG9zZSgpLG8hPT1zKSl7dmFyIHI9dGhpcy52aWV3aW5nVG9waWMmJm4/dGhpcy5wb3N0U3RyZWFtLmZpbmRMb2FkZWRQb3N0KG4pOm51bGw7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7dXNlcm5hbWU6ZSxsb2FkaW5nOmUsY2FyZFRhcmdldDpvLHBvc3Q6cn0pLHRoaXMuX3Nob3dDYWxsYmFjayhlLHQpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLl9iaW5kTW9iaWxlU2Nyb2xsKCksITF9fX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLGwuZGVmYXVsdCkoJCh0aGlzLmVsZW1lbnQpLHRoaXMuX2hpZGUuYmluZCh0aGlzKSk7dmFyIGk9dGhpcy5lbGVtZW50SWQscz10aGlzLnRyaWdnZXJpbmdMaW5rQ2xhc3MsZT0ibW91c2Vkb3duLm91dHNpZGUtIitpLHQ9ImNsaWNrLmRpc2NvdXJzZS0iK2ksbz0iY2xpY2suZGlzY291cnNlLSIraSsiLSIrcyxyPSJjbGljay5kaXNjb3Vyc2UtcHJldmlldy0iK2krIi0iK3M7dGhpcy5zZXRQcm9wZXJ0aWVzKHtjbGlja091dHNpZGVFdmVudE5hbWU6ZSxjbGlja0RhdGFFeHBhbmQ6dCxjbGlja01lbnRpb246byxwcmV2aWV3Q2xpY2tFdmVudDpyLG1vYmlsZVNjcm9sbEV2ZW50OiJzY3JvbGwubW9iaWxlLWNhcmQtY2xvYWsifSksJCgiaHRtbCIpLm9mZihlKS5vbihlLGZ1bmN0aW9uKGUpe2lmKG4udmlzaWJsZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5jbG9zZXN0KCJbZGF0YS0iK2krIl0iKS5kYXRhKGkpfHwwPHQuY2xvc2VzdCgiYS4iK3MpLmxlbmd0aHx8MDx0LmNsb3Nlc3QoIiMiK2kpLmxlbmd0aClyZXR1cm47bi5fY2xvc2UoKX1yZXR1cm4hMH0pLCQoIiNtYWluLW91dGxldCIpLm9uKHQsIltkYXRhLSIraSsiXSIsZnVuY3Rpb24oZSl7aWYoISgwLGEud2FudHNOZXdXaW5kb3cpKGUpKXt2YXIgdD0kKGUuY3VycmVudFRhcmdldCk7cmV0dXJuIG4uX3Nob3codC5kYXRhKGkpLHQpfX0pLCQoIiNtYWluLW91dGxldCIpLm9uKG8sImEuIitzLGZ1bmN0aW9uKGUpe2lmKCEoMCxhLndhbnRzTmV3V2luZG93KShlKSl7dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpO3JldHVybiBuLl9zaG93KHQudGV4dCgpLnJlcGxhY2UoL15ALywiIiksdCl9fSksdGhpcy5hcHBFdmVudHMub24ocix0aGlzLCJfcHJldmlld0NsaWNrIiksdGhpcy5hcHBFdmVudHMub24oInRvcGljLWhlYWRlcjp0cmlnZ2VyLSIraSx0aGlzLCJfdG9waWNIZWFkZXJUcmlnZ2VyIil9LF90b3BpY0hlYWRlclRyaWdnZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5zZXRQcm9wZXJ0aWVzKHtpc0ZpeGVkOiEwLGlzRG9ja2VkOiEwfSksdGhpcy5fc2hvdyhlLHQpfSxfYmluZE1vYmlsZVNjcm9sbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm1vYmlsZVNjcm9sbEV2ZW50OyQod2luZG93KS5vbih0LGZ1bmN0aW9uKCl7KDAsZC50aHJvdHRsZSkoZSxlLl9jbG9zZSwxZTMpfSl9LF91bmJpbmRNb2JpbGVTY3JvbGw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vYmlsZVNjcm9sbEV2ZW50OyQod2luZG93KS5vZmYoZSl9LF9wcmV2aWV3Q2xpY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJpc0ZpeGVkIiwhMCksdGhpcy5fc2hvdyhlLnRleHQoKS5yZXBsYWNlKC9eQC8sIiIpLGUpfSxfcG9zaXRpb25DYXJkOmZ1bmN0aW9uKHMpe3ZhciBvLHIsYSxsLHU9dGhpcyxjPSJydGwiPT09JCgiaHRtbCIpLmNzcygiZGlyZWN0aW9uIik7cyYmKG89JCh0aGlzLmVsZW1lbnQpLndpZHRoKCkscj10aGlzLmlzRml4ZWQsYT10aGlzLmlzRG9ja2VkLChsPTAsZC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlLHQsbixpO3MmJih1LnNpdGUubW9iaWxlVmlld3x8KGU9cy5vZmZzZXQoKSwwPHMucGFyZW50cygiLmQtaGVhZGVyIikubGVuZ3RoJiYoZS50b3A9cy5wb3NpdGlvbigpLnRvcCksZSYmKGUuYm90dG9tPSJ1bnNldCIsYz8oZS5yaWdodD0kKHdpbmRvdykud2lkdGgoKS1lLmxlZnQrMTAsZS5sZWZ0PSJhdXRvIiwodD0kKHdpbmRvdykud2lkdGgoKS01MC0oZS5yaWdodCtvKSk8MCYmKGUucmlnaHQrPXQsZS50b3ArPXMuaGVpZ2h0KCkrNDgsbCs9cy5oZWlnaHQoKSs0OCkpOihlLmxlZnQrPXMud2lkdGgoKSsxMCwobj0kKHdpbmRvdykud2lkdGgoKS01MC0oZS5sZWZ0K28pKTwwJiYoZS5sZWZ0Kz1uLGUudG9wKz1zLmhlaWdodCgpKzQ4LGwrPXMuaGVpZ2h0KCkrNDgpKSxlLnRvcC09JCgiI21haW4tb3V0bGV0Iikub2Zmc2V0KCkudG9wLHImJihlLnRvcC09JCgiaHRtbCIpLnNjcm9sbFRvcCgpLGUudG9wKzE3NStsPiQod2luZG93KS5oZWlnaHQoKS01MCYmKGUuYm90dG9tPSQod2luZG93KS5oZWlnaHQoKS0ocy5vZmZzZXQoKS50b3AtJCgiaHRtbCIpLnNjcm9sbFRvcCgpKSwwPGwmJihlLmJvdHRvbSs9NDgpLGUudG9wPSJ1bnNldCIpKSxhJiZlLnRvcDw0NCYmKGUudG9wPTQ0KSwkKHUuZWxlbWVudCkuY3NzKGUpKSksdS5zaXRlLm1vYmlsZVZpZXcmJigkKCIuY2FyZC1jbG9hayIpLnJlbW92ZUNsYXNzKCJoaWRkZW4iKSwoaT1zLm9mZnNldCgpKS50b3A9IjEwJSIsaS5sZWZ0PTAsJCh1LmVsZW1lbnQpLmNzcyhpKSksJCh1LmVsZW1lbnQpLnRvZ2dsZUNsYXNzKCJkb2NrZWQtY2FyZCIsYSksKDAsZC5uZXh0KShudWxsLGZ1bmN0aW9uKCl7dmFyIGU9dS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImEiKTtlJiZlLmZvY3VzKCl9KSl9KSl9LF9oaWRlOmZ1bmN0aW9uKCl7dGhpcy52aXNpYmxlfHwoJCh0aGlzLmVsZW1lbnQpLmNzcyh7bGVmdDotOTk5OSx0b3A6LTk5OTl9KSx0aGlzLnNpdGUubW9iaWxlVmlldyYmJCgiLmNhcmQtY2xvYWsiKS5hZGRDbGFzcygiaGlkZGVuIikpfSxfY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3Zpc2libGU6ITEsdXNlcm5hbWU6bnVsbCxsb2FkaW5nOm51bGwsY2FyZFRhcmdldDpudWxsLHBvc3Q6bnVsbCxpc0ZpeGVkOiExLGlzRG9ja2VkOiExfSksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJnRoaXMuX3VuYmluZE1vYmlsZVNjcm9sbCgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5jbGlja091dHNpZGVFdmVudE5hbWUsdD10aGlzLmNsaWNrRGF0YUV4cGFuZCxuPXRoaXMuY2xpY2tNZW50aW9uLGk9dGhpcy5wcmV2aWV3Q2xpY2tFdmVudDskKCJodG1sIikub2ZmKGUpLCQoIiNtYWluIikub2ZmKHQpLm9mZihuKSx0aGlzLmFwcEV2ZW50cy5vZmYoaSx0aGlzLCJfcHJldmlld0NsaWNrIiksdGhpcy5hcHBFdmVudHMub2ZmKCJ0b3BpYy1oZWFkZXI6dHJpZ2dlci0iK3RoaXMuZWxlbWVudElkLHRoaXMsIl90b3BpY0hlYWRlclRyaWdnZXIiKX0sa2V5VXA6ZnVuY3Rpb24oZSl7dmFyIHQ7Mjc9PT1lLmtleUNvZGUmJih0PXRoaXMuY2FyZFRhcmdldCx0aGlzLl9jbG9zZSgpLHQuZm9jdXMoKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvY2xlYW5zLXVwIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5jcmVhdGUoe19pbml0aWFsaXplQ2hvb3NlcjooMCx0Lm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIsZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vbigiZG9tOmNsZWFuIix0aGlzLCJjbGVhblVwIil9KSxfY2xlYXJDaG9vc2VyOigwLHQub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiLGZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsImNsZWFuVXAiKX0pfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvZG9ja2luZyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9e29mZnNldDpmdW5jdGlvbigpe3ZhciBlPSQoIiNtYWluIikub2Zmc2V0KCksdD1lP2UudG9wOjA7cmV0dXJuKHdpbmRvdy5wYWdlWU9mZnNldHx8JCgiaHRtbCIpLnNjcm9sbFRvcCgpKS10fX07ZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe3F1ZXVlRG9ja0NoZWNrOm51bGwsaW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucXVldWVEb2NrQ2hlY2s9ZnVuY3Rpb24oKXsoMCxuLmRlYm91bmNlKShlLGUuc2FmZURvY2tDaGVjayw1KX19LHNhZmVEb2NrQ2hlY2s6ZnVuY3Rpb24oKXt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLmlzRGVzdHJveWluZ3x8dGhpcy5kb2NrQ2hlY2soaSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh3aW5kb3cpLmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtZG9jayIsdGhpcy5xdWV1ZURvY2tDaGVjayksJChkb2N1bWVudCkuYmluZCgidG91Y2htb3ZlLmRpc2NvdXJzZS1kb2NrIix0aGlzLnF1ZXVlRG9ja0NoZWNrKSx0aGlzLmRvY2tDaGVjayhpKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQod2luZG93KS51bmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtZG9jayIsdGhpcy5xdWV1ZURvY2tDaGVjayksJChkb2N1bWVudCkudW5iaW5kKCJ0b3VjaG1vdmUuZGlzY291cnNlLWRvY2siLHRoaXMucXVldWVEb2NrQ2hlY2spfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuY3JlYXRlKHtmaWx0ZXJNb2RlSW50ZXJuYWw6KDAsbi5jb21wdXRlZCkoInJhd0ZpbHRlck1vZGUiLCJmaWx0ZXJUeXBlIiwiY2F0ZWdvcnkiLCJub1N1YmNhdGVnb3JpZXMiLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yYXdGaWx0ZXJNb2RlO2lmKGUpcmV0dXJuIGU7dmFyIHQ9dGhpcy5jYXRlZ29yeSxuPXRoaXMuZmlsdGVyVHlwZTtpZih0KXt2YXIgaT10aGlzLm5vU3ViY2F0ZWdvcmllcztyZXR1cm4iYy8iK3MuZGVmYXVsdC5zbHVnRm9yKHQpKyhpPyIvbm9uZSI6IiIpKyIvbC8iK259cmV0dXJuIG59KSxmaWx0ZXJNb2RlOigwLG4uY29tcHV0ZWQpKCJmaWx0ZXJNb2RlSW50ZXJuYWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXJNb2RlSW50ZXJuYWx9LHNldDpmdW5jdGlvbihlLHQpe3RoaXMuc2V0KCJyYXdGaWx0ZXJNb2RlIix0KTt2YXIgbj10LnNwbGl0KCIvIik7cmV0dXJuIDI8PW4ubGVuZ3RoJiYidG9wIj09PW5bbi5sZW5ndGgtMl0/dGhpcy5zZXQoImZpbHRlclR5cGUiLCJ0b3AiKTp0aGlzLnNldCgiZmlsdGVyVHlwZSIsbi5wb3AoKSksdH19KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2dyYW50LWJhZGdlLWNvbnRyb2xsZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4scyxpLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW8uZGVmYXVsdC5jcmVhdGUoKGE9KDAsdC5kZWZhdWx0KSgiYWxsQmFkZ2VzLltdIiwidXNlckJhZGdlcy5bXSIpLGw9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWRCYWRnZUlkIiwiZ3JhbnRhYmxlQmFkZ2VzIikscih1PXtncmFudGFibGVCYWRnZXM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10LnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3QuZ2V0KCJiYWRnZV9pZCIpXT0hMCxlfSx7fSk7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgiZW5hYmxlZCIpJiZlLmdldCgibWFudWFsbHlfZ3JhbnRhYmxlIikmJighbltlLmdldCgiaWQiKV18fGUuZ2V0KCJtdWx0aXBsZV9ncmFudCIpKX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImljb24iKSYmZS5zZXQoImljb24iLCgwLGkuY29udmVydEljb25DbGFzcykoZS5pY29uKSksZX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXQoIm5hbWUiKS5sb2NhbGVDb21wYXJlKHQuZ2V0KCJuYW1lIikpfSl9LG5vR3JhbnRhYmxlQmFkZ2VzOigwLG4uZW1wdHkpKCJncmFudGFibGVCYWRnZXMiKSxzZWxlY3RlZEJhZGdlR3JhbnRhYmxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUmJmUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImlkIik9PT10fSl9LGdyYW50QmFkZ2U6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXM7cmV0dXJuIHMuZGVmYXVsdC5ncmFudChlLHQsbikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gaS51c2VyQmFkZ2VzLnB1c2hPYmplY3QoZSksZX0sZnVuY3Rpb24oZSl7dGhyb3cgZX0pfX0sImdyYW50YWJsZUJhZGdlcyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiZ3JhbnRhYmxlQmFkZ2VzIiksdSkscih1LCJzZWxlY3RlZEJhZGdlR3JhbnRhYmxlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzZWxlY3RlZEJhZGdlR3JhbnRhYmxlIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2tleS1lbnRlci1lc2NhcGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17a2V5RG93bjpmdW5jdGlvbihlKXtyZXR1cm4gMjc9PT1lLndoaWNoPyh0aGlzLmNhbmNlbGxlZCgpLCExKToxMz09PWUud2hpY2gmJihlLmN0cmxLZXl8fGUubWV0YUtleXx8KDAsdC5pc2lQYWQpKCkmJmUuYWx0S2V5KT8odGhpcy5zYXZlKCksITEpOnZvaWQgMH19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2xvYWQtbW9yZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9leWVsaW5lIiwiZGlzY291cnNlL21peGlucy9zY3JvbGxpbmciLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxuLHQsaSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuY3JlYXRlKHQuZGVmYXVsdCwocj0oMCxpLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGE9KDAsaS5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLG8obD17c2Nyb2xsZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmV5ZWxpbmU7cmV0dXJuIGUmJmUudXBkYXRlKCl9LGxvYWRNb3JlVW5sZXNzRnVsbDpmdW5jdGlvbigpe3RoaXMuc2NyZWVuTm90RnVsbCgpJiZ0aGlzLnNlbmQoImxvYWRNb3JlIil9LF9iaW5kRXllbGluZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1uZXcgbi5kZWZhdWx0KHRoaXMuZXllbGluZVNlbGVjdG9yKyI6bGFzdCIpO3RoaXMuc2V0KCJleWVsaW5lIix0KSx0Lm9uKCJzYXdCb3R0b20iLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgibG9hZE1vcmUiKX0pLHQudXBkYXRlKCksdGhpcy5iaW5kU2Nyb2xsaW5nKCl9LF9yZW1vdmVFeWVsaW5lOmZ1bmN0aW9uKCl7dGhpcy51bmJpbmRTY3JvbGxpbmcoKX19LCJfYmluZEV5ZWxpbmUiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9iaW5kRXllbGluZSIpLGwpLG8obCwiX3JlbW92ZUV5ZWxpbmUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9yZW1vdmVFeWVsaW5lIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL21vYmlsZS1zY3JvbGwtZGlyZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHIsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X2xhc3RTY3JvbGw6bnVsbCxfYm90dG9tSGl0OjAsY2FsY3VsYXRlRGlyZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXRoaXMsbz1NYXRoLmZsb29yKGUtdGhpcy5fbGFzdFNjcm9sbCk7bzw9NSYmLTU8PW98fDAhPT1lJiYodD10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbixuPTA8bz8iZG93biI6bnVsbCxpPU1hdGguZmxvb3IoJCgiYm9keSIpLmhlaWdodCgpLWUtJCh3aW5kb3cpLmhlaWdodCgpKSxlPDA/dGhpcy5zZXQoIm1vYmlsZVNjcm9sbERpcmVjdGlvbiIsbnVsbCk6biE9PXQmJjA8aSYmdGhpcy5zZXQoIm1vYmlsZVNjcm9sbERpcmVjdGlvbiIsbiksdGhpcy5fbGFzdFNjcm9sbD1NYXRoLmZsb29yKGUpLDA8aT90aGlzLl9ib3R0b21IaXQ9MDooKDAsci5kZWJvdW5jZSkoZnVuY3Rpb24oKXtzLl9ib3R0b21IaXQ9MX0sMWUzKSwxPT09dGhpcy5fYm90dG9tSGl0JiZ0aGlzLnNldCgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIixudWxsKSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSh7Zmxhc2g6ZnVuY3Rpb24oZSx0KXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbC1ib2R5OmZsYXNoIix7dGV4dDplLG1lc3NhZ2VDbGFzczp0fSl9LGNsZWFyRmxhc2g6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbC1ib2R5OmNsZWFyRmxhc2giKX0sc2hvd01vZGFsOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX0sYWN0aW9uczp7Y2xvc2VNb2RhbDpmdW5jdGlvbigpe3RoaXMubW9kYWwuc2VuZCgiY2xvc2VNb2RhbCIpLHRoaXMuc2V0KCJwYW5lbHMiLFtdKX0sb25TZWxlY3RQYW5lbDpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRQYW5lbCIsZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL25hbWUtdmFsaWRhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoKHI9KDAsbi5kZWZhdWx0KSgpLGE9KDAsbi5kZWZhdWx0KSgiYWNjb3VudE5hbWUiKSxvKGw9e25hbWVJbnN0cnVjdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KHRoaXMuc2l0ZVNldHRpbmdzLmZ1bGxfbmFtZV9yZXF1aXJlZD8idXNlci5uYW1lLmluc3RydWN0aW9uc19yZXF1aXJlZCI6InVzZXIubmFtZS5pbnN0cnVjdGlvbnMiKX0sbmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuZnVsbF9uYW1lX3JlcXVpcmVkJiYoMCx0LmlzRW1wdHkpKHRoaXMuYWNjb3VudE5hbWUpP3MuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMH0pOnMuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwibmFtZUluc3RydWN0aW9ucyIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwibmFtZUluc3RydWN0aW9ucyIpLGwpLG8obCwibmFtZVZhbGlkYXRpb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm5hbWVWYWxpZGF0aW9uIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL29wZW4tY29tcG9zZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe29wZW5Db21wb3NlcjpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiY2F0ZWdvcnkuaWQiKTt0JiZlLmNhdGVnb3J5LmlzVW5jYXRlZ29yaXplZENhdGVnb3J5JiYhdGhpcy5zaXRlU2V0dGluZ3MuYWxsb3dfdW5jYXRlZ29yaXplZF90b3BpY3MmJih0PW51bGwpLHRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5vcGVuKHtjYXRlZ29yeUlkOnQsYWN0aW9uOm8uZGVmYXVsdC5DUkVBVEVfVE9QSUMsZHJhZnRLZXk6ZS5nZXQoIm1vZGVsLmRyYWZ0X2tleSIpfHxvLmRlZmF1bHQuTkVXX1RPUElDX0tFWSxkcmFmdFNlcXVlbmNlOmUuZ2V0KCJtb2RlbC5kcmFmdF9zZXF1ZW5jZSIpfHwwfSl9LG9wZW5Db21wb3NlcldpdGhUb3BpY1BhcmFtczpmdW5jdGlvbihlLHQsbixpLHMpe3RoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5vcGVuKHthY3Rpb246by5kZWZhdWx0LkNSRUFURV9UT1BJQyx0b3BpY1RpdGxlOnQsdG9waWNCb2R5Om4sdG9waWNDYXRlZ29yeUlkOmksdG9waWNUYWdzOnMsZHJhZnRLZXk6ZS5nZXQoIm1vZGVsLmRyYWZ0X2tleSIpfHxvLmRlZmF1bHQuTkVXX1RPUElDX0tFWSxkcmFmdFNlcXVlbmNlOmUuZ2V0KCJtb2RlbC5kcmFmdF9zZXF1ZW5jZSIpfSl9LG9wZW5Db21wb3NlcldpdGhNZXNzYWdlUGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7YWN0aW9uOm8uZGVmYXVsdC5QUklWQVRFX01FU1NBR0UscmVjaXBpZW50czplLHRvcGljVGl0bGU6dCx0b3BpY0JvZHk6bixhcmNoZXR5cGVJZDoicHJpdmF0ZV9tZXNzYWdlIixkcmFmdEtleTpvLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9wYW4tZXZlbnRzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTUlOSU1VTV9TV0lQRV9ESVNUQU5DRT1lLlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRD1lLlNXSVBFX0RJU1RBTkNFX1RIUkVTSE9MRD1lLlNXSVBFX1ZFTE9DSVRZPXZvaWQgMDtlLlNXSVBFX1ZFTE9DSVRZPTQwLGUuU1dJUEVfRElTVEFOQ0VfVEhSRVNIT0xEPTUwLGUuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEPS4xMixlLk1JTklNVU1fU1dJUEVfRElTVEFOQ0U9NTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X3BhblN0YXRlOm51bGwsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFkZFRvdWNoTGlzdGVuZXJzKCQodGhpcy5lbGVtZW50KSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbW92ZVRvdWNoTGlzdGVuZXJzKCQodGhpcy5lbGVtZW50KSl9LGFkZFRvdWNoTGlzdGVuZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUub24oInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvdWNoZXMmJm4uX3BhblN0YXJ0KGUudG91Y2hlc1swXSl9KS5vbigidG91Y2htb3ZlIixmdW5jdGlvbihlKXt2YXIgdD1lLnRvdWNoZXNbMF07dC50eXBlPSJwb2ludGVybW92ZSIsbi5fcGFuTW92ZSh0LGUpfSkub24oInRvdWNoZW5kIixmdW5jdGlvbihlKXtyZXR1cm4gbi5fcGFuTW92ZSh7dHlwZToicG9pbnRlcnVwIn0sZSl9KS5vbigidG91Y2hjYW5jZWwiLGZ1bmN0aW9uKGUpe3JldHVybiBuLl9wYW5Nb3ZlKHt0eXBlOiJwb2ludGVyY2FuY2VsIn0sZSl9KX0scmVtb3ZlVG91Y2hMaXN0ZW5lcnM6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUub2ZmKCJ0b3VjaHN0YXJ0Iikub2ZmKCJ0b3VjaG1vdmUiKS5vZmYoInRvdWNoZW5kIikub2ZmKCJ0b3VjaGNhbmNlbCIpfSxfY2FsY3VsYXRlRGlyZWN0aW9uOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5zdGFydHx8IWUuZGlyZWN0aW9uP01hdGguYWJzKHQpPk1hdGguYWJzKG4pPzA8dD8icmlnaHQiOiJsZWZ0IjowPG4/ImRvd24iOiJ1cCI6ZS5kaXJlY3Rpb259LF9jYWxjdWxhdGVOZXdQYW5TdGF0ZTpmdW5jdGlvbihlLHQpe2lmKCJwb2ludGVydXAiPT09dC50eXBlfHwicG9pbnRlcmNhbmNlbCI9PT10LnR5cGUpcmV0dXJuIGU7dmFyIG49KG5ldyBEYXRlKS5nZXRUaW1lKCksaT1uLWUudGltZXN0YW1wO2lmKDA9PWkpcmV0dXJuIGU7dmFyIHM9dC5jbGllbnRYLWUuc3RhcnRMb2NhdGlvbi54LG89dC5jbGllbnRZLWUuc3RhcnRMb2NhdGlvbi55LHI9TWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3cocywyKStNYXRoLnBvdyhvLDIpKSksYT10LmNsaWVudFgtZS5jZW50ZXIueCxsPXQuY2xpZW50WS1lLmNlbnRlci55LHU9YS9pLGM9bC9pLGQ9TWF0aC5zcXJ0KE1hdGgucG93KGEsMikrTWF0aC5wb3cobCwyKSkvaTtyZXR1cm57c3RhcnRMb2NhdGlvbjplLnN0YXJ0TG9jYXRpb24sY2VudGVyOnt4Ok1hdGgucm91bmQodC5jbGllbnRYKSx5Ok1hdGgucm91bmQodC5jbGllbnRZKX0sdmVsb2NpdHk6ZCx2ZWxvY2l0eVg6dSx2ZWxvY2l0eVk6YyxkZWx0YVg6cyxkZWx0YVk6byxkaXN0YW5jZTpyLHN0YXJ0OiExLHRpbWVzdGFtcDpuLGRpcmVjdGlvbjp0aGlzLl9jYWxjdWxhdGVEaXJlY3Rpb24oZSxzLG8pfX0sX3BhblN0YXJ0OmZ1bmN0aW9uKGUpe3ZhciB0PXtjZW50ZXI6e3g6TWF0aC5yb3VuZChlLmNsaWVudFgpLHk6TWF0aC5yb3VuZChlLmNsaWVudFkpfSxzdGFydExvY2F0aW9uOnt4OmUuY2xpZW50WCx5OmUuY2xpZW50WX0sdmVsb2NpdHk6MCx2ZWxvY2l0eVg6MCx2ZWxvY2l0eVk6MCxkZWx0YVg6MCxkZWx0YVk6MCxkaXN0YW5jZTowLHN0YXJ0OiEwLHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSxkaXJlY3Rpb246bnVsbH07dGhpcy5zZXQoIl9wYW5TdGF0ZSIsdCl9LF9wYW5Nb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saTt0aGlzLl9wYW5TdGF0ZT8obj10aGlzLl9wYW5TdGF0ZSxpPXRoaXMuX2NhbGN1bGF0ZU5ld1BhblN0YXRlKG4sZSksbi5zdGFydCYmaS5kaXN0YW5jZTw1fHwodGhpcy5zZXQoIl9wYW5TdGF0ZSIsaSksaS5vcmlnaW5hbEV2ZW50PXQsbi5zdGFydCYmInBhblN0YXJ0ImluIHRoaXM/dGhpcy5wYW5TdGFydChpKTooInBvaW50ZXJ1cCI9PT1lLnR5cGV8fCJwb2ludGVyY2FuY2VsIj09PWUudHlwZSkmJiJwYW5FbmQiaW4gdGhpcz90aGlzLnBhbkVuZChpKToicG9pbnRlcm1vdmUiPT09ZS50eXBlJiYicGFuTW92ZSJpbiB0aGlzJiZ0aGlzLnBhbk1vdmUoaSkpKTp0aGlzLl9wYW5TdGFydChlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9wYXNzd29yZC12YWxpZGF0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUscix0LG4sYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuY3JlYXRlKChzPSgwLHQuZGVmYXVsdCkoInBhc3N3b3JkTWluTGVuZ3RoIiksbz0oMCx0LmRlZmF1bHQpKCJpc0RldmVsb3BlciIsImFkbWluIiksbD0oMCx0LmRlZmF1bHQpKCJhY2NvdW50UGFzc3dvcmQiLCJwYXNzd29yZFJlcXVpcmVkIiwicmVqZWN0ZWRQYXNzd29yZHMuW10iLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50RW1haWwiLCJwYXNzd29yZE1pbkxlbmd0aCIpLGkodT17cmVqZWN0ZWRQYXNzd29yZHM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJyZWplY3RlZFBhc3N3b3JkcyIsW10pLHRoaXMuc2V0KCJyZWplY3RlZFBhc3N3b3Jkc01lc3NhZ2VzIixuZXcgTWFwKX0scGFzc3dvcmRJbnN0cnVjdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJ1c2VyLnBhc3N3b3JkLmluc3RydWN0aW9ucyIse2NvdW50OnRoaXMucGFzc3dvcmRNaW5MZW5ndGh9KX0scGFzc3dvcmRNaW5MZW5ndGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dD90aGlzLnNpdGVTZXR0aW5ncy5taW5fYWRtaW5fcGFzc3dvcmRfbGVuZ3RoOnRoaXMuc2l0ZVNldHRpbmdzLm1pbl9wYXNzd29yZF9sZW5ndGh9LHBhc3N3b3JkVmFsaWRhdGlvbjpmdW5jdGlvbihlLHQsbixpLHMsbyl7cmV0dXJuIHQ/bi5pbmNsdWRlcyhlKT9hLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnRoaXMucmVqZWN0ZWRQYXNzd29yZHNNZXNzYWdlcy5nZXQoZSl8fEkxOG4udCgidXNlci5wYXNzd29yZC5jb21tb24iKX0pOigwLHIuaXNFbXB0eSkoZSk/YS5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk6ZS5sZW5ndGg8bz9hLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOkkxOG4udCgidXNlci5wYXNzd29yZC50b29fc2hvcnQiKX0pOigwLHIuaXNFbXB0eSkoaSl8fGUhPT1pPygwLHIuaXNFbXB0eSkocyl8fGUhPT1zP2EuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIucGFzc3dvcmQub2siKX0pOmEuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnBhc3N3b3JkLnNhbWVfYXNfZW1haWwiKX0pOmEuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnBhc3N3b3JkLnNhbWVfYXNfdXNlcm5hbWUiKX0pOmEuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwicGFzc3dvcmRJbnN0cnVjdGlvbnMiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInBhc3N3b3JkSW5zdHJ1Y3Rpb25zIiksdSksaSh1LCJwYXNzd29yZE1pbkxlbmd0aCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGFzc3dvcmRNaW5MZW5ndGgiKSx1KSxpKHUsInBhc3N3b3JkVmFsaWRhdGlvbiIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGFzc3dvcmRWYWxpZGF0aW9uIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSgoaT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5pc1NhdmluZyIpLG89cz17c2F2ZWQ6ITEsc2F2ZUJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInNhdmUiKX19LHI9InNhdmVCdXR0b25UZXh0IixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocywic2F2ZUJ1dHRvblRleHQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNjcm9sbFRvcD12b2lkIDA7dmFyIHI9e19zY3JvbGxUb3A6ZnVuY3Rpb24oKXsidGVzdCIhPT1vLmRlZmF1bHQuZW52aXJvbm1lbnQmJiQoZG9jdW1lbnQpLnNjcm9sbFRvcCgwKX19O2Z1bmN0aW9uIGEoKXtuLmRlZmF1bHQuaXNKdW1wU2NoZWR1bGVkKCl8fCgwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHIsci5fc2Nyb2xsVG9wKX1lLmRlZmF1bHQ9cy5kZWZhdWx0LmNyZWF0ZSh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpeygwLGkuZGVwcmVjYXRlZCkoIlRoZSBgU2Nyb2xsVG9wYCBtaXhpbiBpcyBkZXByZWNhdGVkLiBSZXBsYWNlIGl0IHdpdGggYSBge3tkLXNlY3Rpb259fWAgY29tcG9uZW50IiksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEoKX19KSxlLnNjcm9sbFRvcD1hfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LXVybCIsIkBlbWJlci9vYmplY3QvZXZlbnRlZCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLGEsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoe3VwbG9hZGluZzohMSx1cGxvYWRQcm9ncmVzczowLHVwbG9hZERvbmU6ZnVuY3Rpb24oKXtFbWJlci53YXJuKCJZb3Ugc2hvdWxkIGltcGxlbWVudCBgdXBsb2FkRG9uZWAiLHtpZDoiZGlzY291cnNlLnVwbG9hZC5taXNzaW5nLXVwbG9hZC1kb25lIn0pfSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LGNhbGN1bGF0ZVVwbG9hZFVybDpmdW5jdGlvbigpe3JldHVybigwLHQuZGVmYXVsdCkodGhpcy5nZXRXaXRoRGVmYXVsdCgidXBsb2FkVXJsIiwiL3VwbG9hZHMiKSkrIi5qc29uP2NsaWVudF9pZD0iKyh0aGlzLm1lc3NhZ2VCdXMmJnRoaXMubWVzc2FnZUJ1cy5jbGllbnRJZCkrdGhpcy51cGxvYWRVcmxQYXJhbXN9LHVwbG9hZFVybFBhcmFtczoiIix1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9pbml0aWFsaXplOigwLG4ub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gci5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRpbmc6ITEsdXBsb2FkUHJvZ3Jlc3M6MH0pfXZhciByPXRoaXMsZT0kKHRoaXMuZWxlbWVudCksbj10aGlzLmdldFdpdGhEZWZhdWx0KCJtYXhGaWxlcyIsdGhpcy5zaXRlU2V0dGluZ3Muc2ltdWx0YW5lb3VzX3VwbG9hZHMpO2Uub24oImZpbGV1cGxvYWRkb25lIixmdW5jdGlvbihlLHQpe3ZhciBuPXQucmVzdWx0O3IudXBsb2FkRG9uZShuKSxpKCl9KSxlLmZpbGV1cGxvYWQoXy5tZXJnZSh7dXJsOnRoaXMuY2FsY3VsYXRlVXBsb2FkVXJsKCksZGF0YVR5cGU6Impzb24iLHJlcGxhY2VGaWxlSW5wdXQ6ITEsZHJvcFpvbmU6ZSxwYXN0ZVpvbmU6ZX0sdGhpcy51cGxvYWRPcHRpb25zKCkpKSxlLm9uKCJmaWxldXBsb2FkZHJvcCIsZnVuY3Rpb24oZSx0KXtyZXR1cm4hKDA8biYmdC5maWxlcy5sZW5ndGg+bil8fChib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudG9vX21hbnlfZHJhZ2dlZF9hbmRfZHJvcHBlZF9maWxlcyIse21heDpufSkpLCExKX0pLGUub24oImZpbGV1cGxvYWRzdWJtaXQiLGZ1bmN0aW9uKGUsdCl7dmFyIG49Xy5tZXJnZSh7YnlwYXNzTmV3VXNlclJlc3RyaWN0aW9uOiEwLHVzZXI6ci5jdXJyZW50VXNlcn0sci52YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zKCkpLGk9KDAsYS52YWxpZGF0ZVVwbG9hZGVkRmlsZXMpKHQuZmlsZXMsbikscz1yLnR5cGUsbz1zP3t0eXBlOnN9Ont9O3JldHVybiByLmRhdGEmJihvPSQuZXh0ZW5kKG8sci5kYXRhKSksdC5mb3JtRGF0YT1vLHIuc2V0UHJvcGVydGllcyh7dXBsb2FkUHJvZ3Jlc3M6MCx1cGxvYWRpbmc6aX0pLGl9KSxlLm9uKCJmaWxldXBsb2FkcHJvZ3Jlc3NhbGwiLGZ1bmN0aW9uKGUsdCl7dmFyIG49cGFyc2VJbnQodC5sb2FkZWQvdC50b3RhbCoxMDAsMTApO3Iuc2V0KCJ1cGxvYWRQcm9ncmVzcyIsbil9KSxlLm9uKCJmaWxldXBsb2FkZmFpbCIsZnVuY3Rpb24oZSx0KXsoIXR8fHQmJiJhYm9ydCIhPT10LmVycm9yVGhyb3duKSYmKDAsYS5kaXNwbGF5RXJyb3JGb3JVcGxvYWQpKHQpLGkoKX0pfSksX2Rlc3Ryb3k6KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIsZnVuY3Rpb24oKXt0aGlzLm1lc3NhZ2VCdXMmJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3VwbG9hZHMvIit0aGlzLnR5cGUpO3ZhciBlPSQodGhpcy5lbGVtZW50KTt0cnl7ZS5maWxldXBsb2FkKCJkZXN0cm95Iil9Y2F0Y2goZSl7fWUub2ZmKCl9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VybC1yZWZyZXNoIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidXJsOnJlZnJlc2giLHRoaXMsInJlZnJlc2giKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigidXJsOnJlZnJlc2giLHRoaXMsInJlZnJlc2giKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VzZXItZmllbGRzLXZhbGlkYXRpb24iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxuLHQsaSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuY3JlYXRlKChyPSgwLGkub24pKCJpbml0IiksYT0oMCxpLmRlZmF1bHQpKCJ1c2VyRmllbGRzLkBlYWNoLnZhbHVlIiksbyhsPXtfY3JlYXRlVXNlckZpZWxkczpmdW5jdGlvbigpe3ZhciBlO3RoaXMuc2l0ZSYmKGU9KGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKSkmJl8uc29ydEJ5KGUsInBvc2l0aW9uIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmRlZmF1bHQuY3JlYXRlKHt2YWx1ZTpudWxsLGZpZWxkOmV9KX0pLHRoaXMuc2V0KCJ1c2VyRmllbGRzIixlKSl9LHVzZXJGaWVsZHNWYWxpZGF0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9KGU9dGhpcy51c2VyRmllbGRzKSYmZS5maWx0ZXJCeSgiZmllbGQucmVxdWlyZWQiKTtpZighKDAsbi5pc0VtcHR5KShlKSYmZS5hbnkoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXQoInZhbHVlIik7cmV0dXJuIXR8fCgwLG4uaXNFbXB0eSkodCl9KSlyZXR1cm4gdC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk7cmV0dXJuIHQuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwiX2NyZWF0ZVVzZXJGaWVsZHMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jcmVhdGVVc2VyRmllbGRzIiksbCksbyhsLCJ1c2VyRmllbGRzVmFsaWRhdGlvbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXNlckZpZWxkc1ZhbGlkYXRpb24iKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbix0LGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmNyZWF0ZSgodT0oMCxzLmRlZmF1bHQpKCJhY2NvdW50VXNlcm5hbWUiKSxjPSgwLHMuZGVmYXVsdCkoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsImJhc2ljVXNlcm5hbWVWYWxpZGF0aW9uIiksbChkPXt1bmlxdWVVc2VybmFtZVZhbGlkYXRpb246bnVsbCxtYXhVc2VybmFtZUxlbmd0aDooMCxpLnNldHRpbmcpKCJtYXhfdXNlcm5hbWVfbGVuZ3RoIiksbWluVXNlcm5hbWVMZW5ndGg6KDAsaS5zZXR0aW5nKSgibWluX3VzZXJuYW1lX2xlbmd0aCIpLGZldGNoRXhpc3RpbmdVc2VybmFtZTooMCx0LmRlZmF1bHQpKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpczthLmRlZmF1bHQuY2hlY2tVc2VybmFtZShudWxsLHRoaXMuYWNjb3VudEVtYWlsKS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGlvbiYmKCgwLG4uaXNFbXB0eSkodC5hY2NvdW50VXNlcm5hbWUpfHx0LmFjY291bnRVc2VybmFtZT09PXQuZ2V0KCJhdXRoT3B0aW9ucy51c2VybmFtZSIpKSYmdC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50VXNlcm5hbWU6ZS5zdWdnZXN0aW9uLHByZWZpbGxlZFVzZXJuYW1lOmUuc3VnZ2VzdGlvbn0pfSl9LDUwMCksYmFzaWNVc2VybmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJ1bmlxdWVVc2VybmFtZVZhbGlkYXRpb24iLG51bGwpLGUmJmU9PT10aGlzLnByZWZpbGxlZFVzZXJuYW1lP3IuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUucHJlZmlsbGVkIil9KTooMCxuLmlzRW1wdHkpKGUpP3IuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMH0pOmUubGVuZ3RoPHRoaXMuc2l0ZVNldHRpbmdzLm1pbl91c2VybmFtZV9sZW5ndGg/ci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUudG9vX3Nob3J0Iil9KTplLmxlbmd0aD50aGlzLm1heFVzZXJuYW1lTGVuZ3RoP3IuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnVzZXJuYW1lLnRvb19sb25nIil9KToodGhpcy5jaGVja1VzZXJuYW1lQXZhaWxhYmlsaXR5KCksci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUuY2hlY2tpbmciKX0pKX0sc2hvdWxkQ2hlY2tVc2VybmFtZUF2YWlsYWJpbGl0eTpmdW5jdGlvbigpe3JldHVybiEoMCxuLmlzRW1wdHkpKHRoaXMuYWNjb3VudFVzZXJuYW1lKSYmdGhpcy5hY2NvdW50VXNlcm5hbWUubGVuZ3RoPj10aGlzLm1pblVzZXJuYW1lTGVuZ3RofSxjaGVja1VzZXJuYW1lQXZhaWxhYmlsaXR5OigwLHQuZGVmYXVsdCkoZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuc2hvdWxkQ2hlY2tVc2VybmFtZUF2YWlsYWJpbGl0eSgpKXJldHVybiBhLmRlZmF1bHQuY2hlY2tVc2VybmFtZSh0aGlzLmFjY291bnRVc2VybmFtZSx0aGlzLmFjY291bnRFbWFpbCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoImlzRGV2ZWxvcGVyIiwhMSksZS5hdmFpbGFibGU/KGUuaXNfZGV2ZWxvcGVyJiZ0LnNldCgiaXNEZXZlbG9wZXIiLCEwKSx0LnNldCgidW5pcXVlVXNlcm5hbWVWYWxpZGF0aW9uIixyLmRlZmF1bHQuY3JlYXRlKHtvazohMCxyZWFzb246STE4bi50KCJ1c2VyLnVzZXJuYW1lLmF2YWlsYWJsZSIpfSkpKTplLnN1Z2dlc3Rpb24/dC5zZXQoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUubm90X2F2YWlsYWJsZSIsZSl9KSk6dC5zZXQoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjplLmVycm9ycz9lLmVycm9ycy5qb2luKCIgIik6STE4bi50KCJ1c2VyLnVzZXJuYW1lLm5vdF9hdmFpbGFibGVfbm9fc3VnZ2VzdGlvbiIpfSkpfSl9LDUwMCksdXNlcm5hbWVWYWxpZGF0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYXNpY1VzZXJuYW1lVmFsaWRhdGlvbix0PXRoaXMudW5pcXVlVXNlcm5hbWVWYWxpZGF0aW9uO3JldHVybiB0fHxlfX0sImJhc2ljVXNlcm5hbWVWYWxpZGF0aW9uIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJiYXNpY1VzZXJuYW1lVmFsaWRhdGlvbiIpLGQpLGwoZCwidXNlcm5hbWVWYWxpZGF0aW9uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ1c2VybmFtZVZhbGlkYXRpb24iKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvdmlld2luZy1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e3ZpZXdpbmdBY3Rpb25UeXBlOmZ1bmN0aW9uKGUpe3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgidXNlckFjdGlvblR5cGUiLGUpLHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLnNldCgidXNlckFjdGlvblR5cGUiLGUpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvaW52aXRlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi91cmwiLCJyc3ZwIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxvLHIsdCxhLGwsdSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjPW8uZGVmYXVsdC5leHRlbmQoe3Jlc2NpbmQ6ZnVuY3Rpb24oKXsoMCxyLmFqYXgpKCIvaW52aXRlcyIse3R5cGU6IkRFTEVURSIsZGF0YTp7ZW1haWw6dGhpcy5lbWFpbH19KSx0aGlzLnNldCgicmVzY2luZGVkIiwhMCl9LHJlaW52aXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCxyLmFqYXgpKCIvaW52aXRlcy9yZWludml0ZSIse3R5cGU6IlBPU1QiLGRhdGE6e2VtYWlsOnRoaXMuZW1haWx9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgicmVpbnZpdGVkIiwhMCl9KS5jYXRjaCh0LnBvcHVwQWpheEVycm9yKX19KTtjLnJlb3BlbkNsYXNzKHtjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUudXNlciYmKGUudXNlcj1uLmRlZmF1bHQuY3JlYXRlKGUudXNlcikpLGV9LGZpbmRJbnZpdGVkQnk6ZnVuY3Rpb24oZSx0LG4saSl7ZXx8bC5Qcm9taXNlLnJlc29sdmUoKTt2YXIgcz17fTtyZXR1cm4oMCx1LmlzTm9uZSkodCl8fChzLmZpbHRlcj10KSwoMCx1LmlzTm9uZSkobil8fChzLnNlYXJjaD1uKSxzLm9mZnNldD1pfHwwLCgwLHIuYWpheCkoKDAsYS51c2VyUGF0aCkoZS51c2VybmFtZV9sb3dlcisiL2ludml0ZWQuanNvbiIpLHtkYXRhOnN9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmludml0ZXM9ZS5pbnZpdGVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYy5jcmVhdGUoZSl9KSxvLmRlZmF1bHQuY3JlYXRlKGUpfSl9LGZpbmRJbnZpdGVkQ291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGwuUHJvbWlzZS5yZXNvbHZlKCksKDAsci5hamF4KSgoMCxhLnVzZXJQYXRoKShlLnVzZXJuYW1lX2xvd2VyKyIvaW52aXRlZF9jb3VudC5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG8uZGVmYXVsdC5jcmVhdGUoZS5jb3VudHMpfSl9LHJlaW52aXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsci5hamF4KSgiL2ludml0ZXMvcmVpbnZpdGUtYWxsIix7dHlwZToiUE9TVCJ9KX0scmVzY2luZEFsbDpmdW5jdGlvbigpe3JldHVybigwLHIuYWpheCkoIi9pbnZpdGVzL3Jlc2NpbmQtYWxsIix7dHlwZToiUE9TVCJ9KX19KSxlLmRlZmF1bHQ9Y30pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1uYXZpZ2F0aW9uIl0sZnVuY3Rpb24oZSxpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZERpc2NvdmVyeVF1ZXJ5UGFyYW09ZS5xdWVyeVBhcmFtcz12b2lkIDA7dmFyIG89ZS5xdWVyeVBhcmFtcz17b3JkZXI6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxhc2NlbmRpbmc6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxzdGF0dXM6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxzdGF0ZTp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LHNlYXJjaDp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LG1heF9wb3N0czp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LHE6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSx0YWdzOntyZXBsYWNlOiEwfSxiZWZvcmU6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxidW1wZWRfYmVmb3JlOntyZXBsYWNlOiEwLHJlZnJlc2hNb2RlbDohMH19LG49e2Rpc2NvdmVyeVRvcGljczooMCx0LmluamVjdCkoImRpc2NvdmVyeS90b3BpY3MiKSxxdWVyeVBhcmFtczpPYmplY3Qua2V5cyhvKX07bi5xdWVyeVBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdPSgwLGkuYWxpYXMpKCJkaXNjb3ZlcnlUb3BpY3MuIitlKX0pO3ZhciByPXQuZGVmYXVsdC5leHRlbmQobik7ZS5hZGREaXNjb3ZlcnlRdWVyeVBhcmFtPWZ1bmN0aW9uKGUsdCl7b1tlXT10O3ZhciBuPXt9O25bZV09KDAsaS5hbGlhcykoImRpc2NvdmVyeVRvcGljcy4iK2UpLG4ucXVlcnlQYXJhbXM9T2JqZWN0LmtleXMobyksci5yZW9wZW4obiksdCYmdC5wZXJzaXN0ZWQmJnMuZGVmYXVsdC5yZW9wZW4oe3BlcnNpc3RlZFF1ZXJ5UGFyYW1zOm99KX07ZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocz0oMCx0LmRlZmF1bHQpKCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwiLCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwuZHJhZnQiKSxvPXtkaXNjb3Zlcnk6KDAsbi5pbmplY3QpKCksZGlzY292ZXJ5VG9waWNzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L3RvcGljcyIpLGRyYWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwuZHJhZnQiKX19LGE9byxsPSJkcmFmdCIsdT1bc10scj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImRyYWZ0IikpP3IudmFsdWU6dm9pZCAwLGM9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXBhbmVsIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVpbGRDYXRlZ29yeVBhbmVsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkuZXh0ZW5kKHthY3RpdmVUYWI6KDAsbi5lcXVhbCkoInNlbGVjdGVkVGFiIixlKSxjbGFzc05hbWVCaW5kaW5nczpbIjptb2RhbC10YWIiLCJhY3RpdmVUYWI6OmhpZGUiLCI6ZWRpdC1jYXRlZ29yeS10YWItIitlXX0sdHx8e30pfTt2YXIgaT10LmRlZmF1bHQuZXh0ZW5kKHt9KTtlLmRlZmF1bHQ9aX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2l0ZS1oZWFkZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9kb2NraW5nIiwiZGlzY291cnNlL21peGlucy9wYW4tZXZlbnRzIl0sZnVuY3Rpb24oZSx2LHQsbixpLHUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmhlYWRlckhlaWdodD15LGUuaGVhZGVyVG9wPV87dmFyIHIsYSxsLGMsZCxwLG09dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsdS5kZWZhdWx0LChzPSgwLG4ub2JzZXJ2ZXMpKCJjdXJyZW50VXNlci51bnJlYWRfbm90aWZpY2F0aW9ucyIsImN1cnJlbnRVc2VyLnVucmVhZF9wcml2YXRlX21lc3NhZ2VzIiwiY3VycmVudFVzZXIucmV2aWV3YWJsZV9jb3VudCIpLHI9bz17d2lkZ2V0OiJoZWFkZXIiLGRvY0F0Om51bGwsZG9ja2VkSGVhZGVyOm51bGwsX2FuaW1hdGU6ITEsX2lzUGFubmluZzohMSxfcGFuTWVudU9yaWdpbjoicmlnaHQiLF9wYW5NZW51T2Zmc2V0OjAsX3NjaGVkdWxlZE1vdmluZ0FuaW1hdGlvbjpudWxsLF9zY2hlZHVsZWRSZW1vdmVBbmltYXRlOm51bGwsX3RvcGljOm51bGwsbm90aWZpY2F0aW9uc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sX2FuaW1hdGVPcGVuaW5nOmZ1bmN0aW9uKGUpe2UuY3NzKHtyaWdodDoiIixsZWZ0OiIifSksdGhpcy5fcGFuTWVudU9mZnNldD0wfSxfYW5pbWF0ZUNsb3Npbmc6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXM7ZS5jc3ModCwtbiksdGhpcy5fYW5pbWF0ZT0hMCwoMCx2LnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7aS5ldmVudERpc3BhdGNoZWQoImRvbTpjbGVhbiIsImhlYWRlciIpLGkuX3Bhbk1lbnVPZmZzZXQ9MH0pfSxfaXNSVEw6ZnVuY3Rpb24oKXtyZXR1cm4icnRsIj09PSQoImh0bWwiKS5jc3MoImRpcmVjdGlvbiIpfSxfbGVmdE1lbnVDbGFzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1JUTCgpPyIudXNlci1tZW51IjoiLmhhbWJ1cmdlci1wYW5lbCJ9LF9sZWZ0TWVudUFjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1JUTCgpPyJ0b2dnbGVVc2VyTWVudSI6InRvZ2dsZUhhbWJ1cmdlciJ9LF9yaWdodE1lbnVBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNSVEwoKT8idG9nZ2xlSGFtYnVyZ2VyIjoidG9nZ2xlVXNlck1lbnUifSxfaGFuZGxlUGFuRG9uZTpmdW5jdGlvbihzLG8pe3ZhciByPXRoaXMsYT0kKHdpbmRvdykud2lkdGgoKSxlPSQoIi5tZW51LXBhbmVsIiksbD10aGlzLl9wYW5NZW51T3JpZ2luO3RoaXMuX3Nob3VsZE1lbnVDbG9zZShvLGwpP3MrPXUuU1dJUEVfVkVMT0NJVFk6cy09dS5TV0lQRV9WRUxPQ0lUWSxlLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9JCgiLmhlYWRlci1jbG9hayIpO24uY3NzKGwsLXMpLGkuY3NzKCJvcGFjaXR5IixNYXRoLm1pbiguNSwoMzAwLXMpLzYwMCkpLGE8cz9yLl9hbmltYXRlQ2xvc2luZyhuLGwsYSk6czw9MD9yLl9hbmltYXRlT3BlbmluZyhuKTpyLl9zY2hlZHVsZWRNb3ZpbmdBbmltYXRpb249d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLl9oYW5kbGVQYW5Eb25lKHMsbyl9KX0pfSxfc2hvdWxkTWVudUNsb3NlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuInJpZ2h0Ij09PXQ/ZS5kZWx0YVg+dS5TV0lQRV9ESVNUQU5DRV9USFJFU0hPTEQmJmUudmVsb2NpdHlYPi11LlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRHx8MDxlLnZlbG9jaXR5WDplLmRlbHRhWDwtdS5TV0lQRV9ESVNUQU5DRV9USFJFU0hPTEQmJmUudmVsb2NpdHlYPHUuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEfHxlLnZlbG9jaXR5WDwwfSxwYW5TdGFydDpmdW5jdGlvbihlKXt2YXIgdD1lLmNlbnRlcixuPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LngsdC55KSk7IShuLmhhc0NsYXNzKCJwYW5lbC1ib2R5Iil8fG4uaGFzQ2xhc3MoImhlYWRlci1jbG9hayIpfHxuLnBhcmVudHMoIi5wYW5lbC1ib2R5IikubGVuZ3RoKXx8ImxlZnQiIT09ZS5kaXJlY3Rpb24mJiJyaWdodCIhPT1lLmRpcmVjdGlvbj90aGlzLl9pc1Bhbm5pbmc9ITE6KGUub3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2lzUGFubmluZz0hMCl9LHBhbkVuZDpmdW5jdGlvbihzKXt2YXIgbz10aGlzO3RoaXMuX2lzUGFubmluZyYmKHRoaXMuX2lzUGFubmluZz0hMSwkKCIubWVudS1wYW5lbCIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9bi5jc3MoInJpZ2h0Iik7ImxlZnQiPT09by5fcGFuTWVudU9yaWdpbiYmKGk9bi5jc3MoImxlZnQiKSksaT1NYXRoLmFicyhwYXJzZUludChpLDEwKSksby5faGFuZGxlUGFuRG9uZShpLHMpfSkpfSxwYW5Nb3ZlOmZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7dGhpcy5faXNQYW5uaW5nJiYkKCIubWVudS1wYW5lbCIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbixpLHM9JCh0KSxvPSQoIi5oZWFkZXItY2xvYWsiKTsicmlnaHQiPT09YS5fcGFuTWVudU9yaWdpbj8obj1NYXRoLm1pbigwLC1yLmRlbHRhWCthLl9wYW5NZW51T2Zmc2V0KSxzLmNzcygicmlnaHQiLG4pLG8uY3NzKCJvcGFjaXR5IixNYXRoLm1pbiguNSwoMzAwK24pLzYwMCkpKTooaT1NYXRoLm1pbigwLHIuZGVsdGFYK2EuX3Bhbk1lbnVPZmZzZXQpLHMuY3NzKCJsZWZ0IixpKSxvLmNzcygib3BhY2l0eSIsTWF0aC5taW4oLjUsKDMwMCtpKS82MDApKSl9KX0sZG9ja0NoZWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoImhlYWRlci5kLWhlYWRlciIpO2lmKG51bGw9PT10aGlzLmRvY0F0KXtpZighdHx8MSE9PXQubGVuZ3RoKXJldHVybjt0aGlzLmRvY0F0PXQub2Zmc2V0KCkudG9wfXZhciBuPSQoImJvZHkiKTtlLm9mZnNldCgpPj10aGlzLmRvY0F0P3RoaXMuZG9ja2VkSGVhZGVyfHwobi5hZGRDbGFzcygiZG9ja2VkIiksdGhpcy5kb2NrZWRIZWFkZXI9ITApOnRoaXMuZG9ja2VkSGVhZGVyJiYobi5yZW1vdmVDbGFzcygiZG9ja2VkIiksdGhpcy5kb2NrZWRIZWFkZXI9ITEpfSxzZXRUb3BpYzpmdW5jdGlvbihlKXt0aGlzLmV2ZW50RGlzcGF0Y2hlZCgiZG9tOmNsZWFuIiwiaGVhZGVyIiksdGhpcy5fdG9waWM9ZSx0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sd2lsbFJlbmRlcjpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpJiYkKCJib2R5IikuYWRkQ2xhc3MoInN0YWZmIil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKHdpbmRvdykub24oInJlc2l6ZS5kaXNjb3Vyc2UtbWVudS1wYW5lbCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5hZnRlclJlbmRlcigpfSksdGhpcy5hcHBFdmVudHMub24oImhlYWRlcjpzaG93LXRvcGljIix0aGlzLCJzZXRUb3BpYyIpLHRoaXMuYXBwRXZlbnRzLm9uKCJoZWFkZXI6aGlkZS10b3BpYyIsdGhpcywic2V0VG9waWMiKSx0aGlzLmRpc3BhdGNoKCJub3RpZmljYXRpb25zOmNoYW5nZWQiLCJ1c2VyLW5vdGlmaWNhdGlvbnMiKSx0aGlzLmRpc3BhdGNoKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIsImhlYWRlciIpLHRoaXMuZGlzcGF0Y2goInNlYXJjaC1hdXRvY29tcGxldGU6YWZ0ZXItY29tcGxldGUiLCJzZWFyY2gtdGVybSIpLHRoaXMuYXBwRXZlbnRzLm9uKCJkb206Y2xlYW4iLHRoaXMsIl9jbGVhbkRvbSIpfSxfY2xlYW5Eb206ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLm1lbnUtcGFuZWwiKSYmdGhpcy5ldmVudERpc3BhdGNoZWQoImRvbTpjbGVhbiIsImhlYWRlciIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiYm9keSIpLm9mZigia2V5ZG93bi5oZWFkZXIiKSwkKHdpbmRvdykub2ZmKCJyZXNpemUuZGlzY291cnNlLW1lbnUtcGFuZWwiKSx0aGlzLmFwcEV2ZW50cy5vZmYoImhlYWRlcjpzaG93LXRvcGljIix0aGlzLCJzZXRUb3BpYyIpLHRoaXMuYXBwRXZlbnRzLm9mZigiaGVhZGVyOmhpZGUtdG9waWMiLHRoaXMsInNldFRvcGljIiksdGhpcy5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsIl9jbGVhbkRvbSIpLCgwLHYuY2FuY2VsKSh0aGlzLl9zY2hlZHVsZWRSZW1vdmVBbmltYXRlKSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2NoZWR1bGVkTW92aW5nQW5pbWF0aW9uKX0sYnVpbGRBcmdzOmZ1bmN0aW9uKCl7cmV0dXJue3RvcGljOnRoaXMuX3RvcGljLGNhblNpZ25VcDp0aGlzLmNhblNpZ25VcH19LGFmdGVyUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGYsaCxlLGIsZz10aGlzLHQ9JCgiLm1lbnUtcGFuZWwiKTswIT09dC5sZW5ndGg/KGY9JCh3aW5kb3cpLGg9Zi53aWR0aCgpLGU9JCgiI21haW4tb3V0bGV0IC5jb250YWluZXIiKS53aWR0aCgpfHwxMTAwLGI9KGgtZSkvMjw1MD8ic2xpZGUtaW4iOiJkcm9wLWRvd24iLHQuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT0kKCIuaGVhZGVyLWNsb2FrIikscz1wYXJzZUludChuLmF0dHIoImRhdGEtbWF4LXdpZHRoIiksMTApfHwzMDA7aC1zPDUwJiYocz1oLTUwKSxnLl9wYW5NZW51T2Zmc2V0JiYoZy5fcGFuTWVudU9mZnNldD0tcyksbi5yZW1vdmVDbGFzcygiZHJvcC1kb3duIHNsaWRlLWluIikuYWRkQ2xhc3MoYiksIWcuX2FuaW1hdGUmJjA9PT1nLl9wYW5NZW51T2Zmc2V0fHwoaS5jc3MoIm9wYWNpdHkiLDApLGcuc2l0ZS5tb2JpbGVWaWV3JiYwPG4ucGFyZW50KGcuX2xlZnRNZW51Q2xhc3MoKSkubGVuZ3RoPyhnLl9wYW5NZW51T3JpZ2luPSJsZWZ0IixuLmNzcygibGVmdCIsLWgpKTooZy5fcGFuTWVudU9yaWdpbj0icmlnaHQiLG4uY3NzKCJyaWdodCIsLWgpKSk7dmFyIG89JCgiLnBhbmVsLWJvZHkiLG4pLHI9JCgiLnBhbmVsLWJvZHktY29udGVudHMiLG4pLmhlaWdodCgpKzIsYT1uLnByb3AoInN0eWxlIik7aWYoImRyb3AtZG93biI9PWIpe2lmKDA9PT0kKCJoZWFkZXIgdWwuaWNvbnMiKS5sZW5ndGgpcmV0dXJuOyIxMDAlIj09PWEudG9wJiYiYXV0byI9PT1hLmhlaWdodHx8bi5jc3Moe3RvcDoiMTAwJSIsaGVpZ2h0OiJhdXRvIn0pO3ZhciBsPWYuaGVpZ2h0KCksdT1uLm9mZnNldCgpLnRvcCxjPWYuc2Nyb2xsVG9wKCk7KGw8cisodS1jKSszMHx8Zy5zaXRlLm1vYmlsZVZpZXcpJiYocj1sLSh1LWMpLTMwKSxvLmhlaWdodCgpIT09ciYmby5oZWlnaHQociksJCgiYm9keSIpLmFkZENsYXNzKCJkcm9wLWRvd24tbW9kZSIpfWVsc2V7Zy5zaXRlLm1vYmlsZVZpZXcmJmkuc2hvdygpO3ZhciBkPShnLnNpdGUubW9iaWxlVmlldz9fOnkpKCkscD12b2lkIDAsbT0od2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCkpLTE2LHA9ZCtyPG0mJiFnLnNpdGUubW9iaWxlVmlldz9yKyJweCI6bS1kOyIxMDAlIiE9PW8ucHJvcCgic3R5bGUiKS5oZWlnaHQmJm8uaGVpZ2h0KCIxMDAlIiksYS50b3A9PT1kKyJweCImJmEuaGVpZ2h0PT09cHx8KG4uY3NzKHt0b3A6ZCsicHgiLGhlaWdodDpwfSksJCgiLmhlYWRlci1jbG9hayIpLmNzcyh7dG9wOmQrInB4In0pKSwkKCJib2R5IikucmVtb3ZlQ2xhc3MoImRyb3AtZG93bi1tb2RlIil9bi53aWR0aChzKSxnLl9hbmltYXRlJiYobi5hZGRDbGFzcygiYW5pbWF0ZSIpLGkuYWRkQ2xhc3MoImFuaW1hdGUiKSxnLl9zY2hlZHVsZWRSZW1vdmVBbmltYXRlPSgwLHYubGF0ZXIpKGZ1bmN0aW9uKCl7bi5yZW1vdmVDbGFzcygiYW5pbWF0ZSIpLGkucmVtb3ZlQ2xhc3MoImFuaW1hdGUiKX0sMjAwKSksbi5jc3Moe3JpZ2h0OiIiLGxlZnQ6IiJ9KSxpLmNzcygib3BhY2l0eSIsLjUpLGcuX2FuaW1hdGU9ITF9KSk6dGhpcy5zaXRlLm1vYmlsZVZpZXcmJih0aGlzLl9hbmltYXRlPSEwKX19LGE9Im5vdGlmaWNhdGlvbnNDaGFuZ2VkIixsPVtzXSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywibm90aWZpY2F0aW9uc0NoYW5nZWQiKSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHApLHA9bnVsbCksbykpO2Z1bmN0aW9uIHkoKXt2YXIgZT0kKCJoZWFkZXIuZC1oZWFkZXIiKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIDA7dmFyIHQ9ZS5vZmZzZXQoKSxuPXQ/dC50b3A6MDtyZXR1cm4gZS5vdXRlckhlaWdodCgpK24tJCh3aW5kb3cpLnNjcm9sbFRvcCgpfWZ1bmN0aW9uIF8oKXt2YXIgZT0kKCJoZWFkZXIuZC1oZWFkZXIiKS5vZmZzZXQoKTtyZXR1cm4oZT9lLnRvcDowKS0kKHdpbmRvdykuc2Nyb2xsVG9wKCl9ZS5kZWZhdWx0PW19KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2QtZWRpdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktaGFzaHRhZ3MiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LXRhZy1zZWFyY2giLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtb3duZXIiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwicHJldHR5LXRleHQvZW1vamkvZGF0YSIsInByZXR0eS10ZXh0L2Vtb2ppIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwicnN2cCIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxhLHQsbixpLHMsbyxsLHIsdSxjLGIsZyxkLHAsbSxmLGgsdix5KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVG9vbGJhckNhbGxiYWNrPXosZS5vblRvb2xiYXJDcmVhdGU9ZnVuY3Rpb24oZSl7KDAsZC5kZWZhdWx0KSgiYG9uVG9vbGJhckNyZWF0ZWAgaXMgZGVwcmVjYXRlZCwgdXNlIHRoZSBwbHVnaW4gYXBpIGluc3RlYWQuIikseihlKX07dmFyIHcseCxrLFAsaj1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBUKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWZ1bmN0aW9uIEUoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1mdW5jdGlvbiBPKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1tlLGUubGVuZ3RoXTpPKGUodCkpfWZ1bmN0aW9uIFMoZSx0KXtyZXR1cm4gSTE4bi50KGUpPT09dD9udWxsOmV9ZnVuY3Rpb24gQyhlLHQpe3ZhciBuPWUubWF0Y2godCk7cmV0dXJuIG4mJm4ubGVuZ3RoJTJ9dmFyIE09MCxEPTEsST0yLEw9W10sQT0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZFKGUucHJvdG90eXBlLHQpLG4mJkUoZSxuKSxlfShOLFt7a2V5OiJhZGRCdXR0b24iLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdyb3Vwcy5maW5kQnkoImdyb3VwIixlLmdyb3VwKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgdG9vbGJhciBncm91cCAiK2UuZ3JvdXApO3ZhciBpPXtpZDplLmlkLGNsYXNzTmFtZTplLmNsYXNzTmFtZXx8ZS5pZCxsYWJlbDplLmxhYmVsLGljb246ZS5sYWJlbD9udWxsOmUuaWNvbnx8ZS5pZCxhY3Rpb246ZS5hY3Rpb258fGZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbnRleHQuc2VuZCgidG9vbGJhckJ1dHRvbiIsZSl9LHBlcmZvcm06ZS5wZXJmb3JtfHxmdW5jdGlvbigpe30sdHJpbUxlYWRpbmc6ZS50cmltTGVhZGluZyxwb3B1cE1lbnU6ZS5wb3B1cE1lbnV8fCExfTtlLnNlbmRBY3Rpb24mJihpLnNlbmRBY3Rpb249ZS5zZW5kQWN0aW9uKTt2YXIgcyxvLHIsYT1JMThuLnQoZS50aXRsZXx8ImNvbXBvc2VyLiIrZS5pZCsiX3RpdGxlIik7ZS5zaG9ydGN1dD8ocj0obz0ocz0vTWFjfGlQb2R8aVBob25lfGlQYWQvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSk/Ik1ldGEiOiJDdHJsIikrIisiK2Uuc2hvcnRjdXQscj1zP3IucmVwbGFjZSgiU2hpZnQiLCLih6ciKS5yZXBsYWNlKCJNZXRhIiwi4oyYIikucmVwbGFjZSgiQWx0Iiwi4oylIikucmVwbGFjZSgvXCsvZywiIik6ci5yZXBsYWNlKCJTaGlmdCIsSTE4bi50KCJzaG9ydGN1dF9tb2RpZmllcl9rZXkuc2hpZnQiKSkucmVwbGFjZSgiQ3RybCIsSTE4bi50KCJzaG9ydGN1dF9tb2RpZmllcl9rZXkuY3RybCIpKS5yZXBsYWNlKCJBbHQiLEkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmFsdCIpKSxpLnRpdGxlPWErIiAoIityKyIpIix0aGlzLnNob3J0Y3V0c1sobysiKyIrZS5zaG9ydGN1dCkudG9Mb3dlckNhc2UoKV09aSk6aS50aXRsZT1hLGUudW5zaGlmdD9uLmJ1dHRvbnMudW5zaGlmdChpKTpuLmJ1dHRvbnMucHVzaChpKX19XSksTik7ZnVuY3Rpb24gTihlKXt2YXIgaT10aGlzOyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLE4pO3ZhciB0PWUuc2l0ZVNldHRpbmdzO3RoaXMuc2hvcnRjdXRzPXt9LHRoaXMuY29udGV4dD1udWxsLHRoaXMuZ3JvdXBzPVt7Z3JvdXA6ImZvbnRTdHlsZXMiLGJ1dHRvbnM6W119LHtncm91cDoiaW5zZXJ0aW9ucyIsYnV0dG9uczpbXX0se2dyb3VwOiJleHRyYXMiLGJ1dHRvbnM6W119XSx0aGlzLmFkZEJ1dHRvbih7dHJpbUxlYWRpbmc6ITAsaWQ6ImJvbGQiLGdyb3VwOiJmb250U3R5bGVzIixpY29uOiJib2xkIixsYWJlbDpTKCJjb21wb3Nlci5ib2xkX2xhYmVsIiwiQiIpLHNob3J0Y3V0OiJCIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5U3Vycm91bmQoIioqIiwiKioiLCJib2xkX3RleHQiKX19KSx0aGlzLmFkZEJ1dHRvbih7dHJpbUxlYWRpbmc6ITAsaWQ6Iml0YWxpYyIsZ3JvdXA6ImZvbnRTdHlsZXMiLGljb246Iml0YWxpYyIsbGFiZWw6UygiY29tcG9zZXIuaXRhbGljX2xhYmVsIiwiSSIpLHNob3J0Y3V0OiJJIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5U3Vycm91bmQoIioiLCIqIiwiaXRhbGljX3RleHQiKX19KSxlLnNob3dMaW5rJiZ0aGlzLmFkZEJ1dHRvbih7aWQ6ImxpbmsiLGdyb3VwOiJpbnNlcnRpb25zIixzaG9ydGN1dDoiSyIsdHJpbUxlYWRpbmc6ITAsc2VuZEFjdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gaS5jb250ZXh0LnNlbmQoInNob3dMaW5rTW9kYWwiLGUpfX0pLHRoaXMuYWRkQnV0dG9uKHtpZDoicXVvdGUiLGdyb3VwOiJpbnNlcnRpb25zIixpY29uOiJxdW90ZS1yaWdodCIsc2hvcnRjdXQ6IlNoaWZ0KzkiLHBlcmZvcm06ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHlMaXN0KCI+ICIsImJsb2NrcXVvdGVfdGV4dCIse2FwcGx5RW1wdHlMaW5lczohMCxtdWx0aWxpbmU6ITB9KX19KSx0aGlzLmFkZEJ1dHRvbih7aWQ6ImNvZGUiLGdyb3VwOiJpbnNlcnRpb25zIixzaG9ydGN1dDoiU2hpZnQrQyIsYWN0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gaS5jb250ZXh0LnNlbmQoImZvcm1hdENvZGUiLHQpfX0pLHRoaXMuYWRkQnV0dG9uKHtpZDoiYnVsbGV0Iixncm91cDoiZXh0cmFzIixpY29uOiJsaXN0LXVsIixzaG9ydGN1dDoiU2hpZnQrOCIsdGl0bGU6ImNvbXBvc2VyLnVsaXN0X3RpdGxlIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5TGlzdCgiKiAiLCJsaXN0X2l0ZW0iKX19KSx0aGlzLmFkZEJ1dHRvbih7aWQ6Imxpc3QiLGdyb3VwOiJleHRyYXMiLGljb246Imxpc3Qtb2wiLHNob3J0Y3V0OiJTaGlmdCs3Iix0aXRsZToiY29tcG9zZXIub2xpc3RfdGl0bGUiLHBlcmZvcm06ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHlMaXN0KGZ1bmN0aW9uKGUpe3JldHVybiBlP3BhcnNlSW50KGUsMTApKzErIi4gIjoiMS4gIn0sImxpc3RfaXRlbSIpfX0pLHQuc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbiYmdGhpcy5hZGRCdXR0b24oe2lkOiJ0b2dnbGUtZGlyZWN0aW9uIixncm91cDoiZXh0cmFzIixpY29uOiJleGNoYW5nZS1hbHQiLHNob3J0Y3V0OiJTaGlmdCs2Iix0aXRsZToiY29tcG9zZXIudG9nZ2xlX2RpcmVjdGlvbiIscGVyZm9ybTpmdW5jdGlvbihlKXtyZXR1cm4gZS50b2dnbGVEaXJlY3Rpb24oKX19KSx0aGlzLmdyb3Vwc1t0aGlzLmdyb3Vwcy5sZW5ndGgtMV0ubGFzdEdyb3VwPSEwfWZ1bmN0aW9uIHooZSl7TC5wdXNoKGUpfWUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCh3PSgwLGkuZGVmYXVsdCkoInBsYWNlaG9sZGVyIikseD0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50Iiksaz0oMCxpLm9ic2VydmVzKSgicmVhZHkiLCJ2YWx1ZSIpLFQoUD17Y2xhc3NOYW1lczpbImQtZWRpdG9yIl0scmVhZHk6ITEsbGFzdFNlbDpudWxsLF9tb3VzZVRyYXA6bnVsbCxzaG93TGluazohMCxlbW9qaVBpY2tlcklzQWN0aXZlOiExLGVtb2ppU3RvcmU6KDAsdC5pbmplY3QpKCJlbW9qaS1zdG9yZSIpLHBsYWNlaG9sZGVyVHJhbnNsYXRlZDpmdW5jdGlvbihlKXtyZXR1cm4gZT9JMThuLnQoZSk6bnVsbH0sX3JlYWR5Tm93OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInJlYWR5IiwhMCksdGhpcy5hdXRvZm9jdXMmJnRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYSIpLmZvY3VzKCl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZWdpc3Rlcj0oMCxyLmdldFJlZ2lzdGVyKSh0aGlzKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKTt0aGlzLl9hcHBseUVtb2ppQXV0b2NvbXBsZXRlKGUpLHRoaXMuX2FwcGx5Q2F0ZWdvcnlIYXNodGFnQXV0b2NvbXBsZXRlKGUpLCgwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fcmVhZHlOb3cpO3ZhciBpPU1vdXNldHJhcCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmQtZWRpdG9yLWlucHV0IikpLHM9dGhpcy5nZXQoInRvb2xiYXIuc2hvcnRjdXRzIik7T2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zW2VdO2kuYmluZChlLGZ1bmN0aW9uKCl7cmV0dXJuIHQuYWN0aW9uKHQpLCExfSl9KSwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItcHJldmlldyIpKS5vbigiY2xpY2sucHJldmlldyIsZnVuY3Rpb24oZSl7aWYoISgwLHAud2FudHNOZXdXaW5kb3cpKGUpKXt2YXIgdD0kKGUudGFyZ2V0KTtyZXR1cm4gdC5pcygiYS5tZW50aW9uIikmJm4uYXBwRXZlbnRzLnRyaWdnZXIoImNsaWNrLmRpc2NvdXJzZS1wcmV2aWV3LXVzZXItY2FyZC1tZW50aW9uIix0KSx0LmlzKCJhLm1lbnRpb24tZ3JvdXAiKSYmbi5hcHBFdmVudHMudHJpZ2dlcigiY2xpY2suZGlzY291cnNlLXByZXZpZXctZ3JvdXAtY2FyZC1tZW50aW9uLWdyb3VwIix0KSx0LmlzKCJhIik/KGUucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZCAwfX0pLHRoaXMuY29tcG9zZXJFdmVudHMmJih0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIix0aGlzLCJfaW5zZXJ0QmxvY2siKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLHRoaXMsIl9pbnNlcnRUZXh0IiksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsdGhpcywiX3JlcGxhY2VUZXh0IikpLHRoaXMuX21vdXNlVHJhcD1pfSxfaW5zZXJ0QmxvY2s6ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQmxvY2sodGhpcy5fZ2V0U2VsZWN0ZWQoKSxlKX0sX2luc2VydFRleHQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl9hZGRUZXh0KHRoaXMuX2dldFNlbGVjdGVkKCksZSx0KX0sX3NodXREb3duOmZ1bmN0aW9uKCl7dGhpcy5jb21wb3NlckV2ZW50cyYmKHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIix0aGlzLCJfaW5zZXJ0QmxvY2siKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOmluc2VydC10ZXh0Iix0aGlzLCJfaW5zZXJ0VGV4dCIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6cmVwbGFjZS10ZXh0Iix0aGlzLCJfcmVwbGFjZVRleHQiKSk7dmFyIHQ9dGhpcy5fbW91c2VUcmFwO09iamVjdC5rZXlzKHRoaXMuZ2V0KCJ0b29sYmFyLnNob3J0Y3V0cyIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnVuYmluZChlKX0pLCQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1wcmV2aWV3IikpLm9mZigiY2xpY2sucHJldmlldyIpfSx0b29sYmFyOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEEodGhpcy5nZXRQcm9wZXJ0aWVzKCJzaXRlIiwic2l0ZVNldHRpbmdzIiwic2hvd0xpbmsiKSk7cmV0dXJuIHQuY29udGV4dD10aGlzLEwuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pLHRoaXMuZXh0cmFCdXR0b25zJiZ0aGlzLmV4dHJhQnV0dG9ucyh0KSx0fSxfdXBkYXRlUHJldmlldzpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzOyJpbkRPTSI9PT10aGlzLl9zdGF0ZSYmKGU9dGhpcy52YWx1ZSx0PXRoaXMubWFya2Rvd25PcHRpb25zfHx7fSwoMCxsLmNvb2tBc3luYykoZSx0KS50aGVuKGZ1bmN0aW9uKGUpe24uaXNEZXN0cm95ZWR8fChuLnNldCgicHJldmlldyIsZSksKDAsYS5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZTsiaW5ET00iIT09bi5fc3RhdGV8fDAhPT0oZT0kKG4uZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItcHJldmlldyIpKSkubGVuZ3RoJiZuLnByZXZpZXdVcGRhdGVkJiZuLnByZXZpZXdVcGRhdGVkKGUpfSkpfSkpfSxfd2F0Y2hGb3JDaGFuZ2VzOmZ1bmN0aW9uKCl7dGhpcy5yZWFkeSYmKCJ0ZXN0Ij09PXkuZGVmYXVsdC5lbnZpcm9ubWVudD90aGlzLl91cGRhdGVQcmV2aWV3KCk6KDAsYS5kZWJvdW5jZSkodGhpcyx0aGlzLl91cGRhdGVQcmV2aWV3LDMwKSl9LF9hcHBseUNhdGVnb3J5SGFzaHRhZ0F1dG9jb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnNpdGVTZXR0aW5nczskKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSkuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx1LmZpbmRSYXdUZW1wbGF0ZSkoImNhdGVnb3J5LXRhZy1hdXRvY29tcGxldGUiKSxrZXk6IiMiLGFmdGVyQ29tcGxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fZm9jdXNUZXh0QXJlYSgpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0fSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLm1hdGNoKC9ccy8pP251bGw6KDAsby5zZWFyY2gpKGUsdCl9LHRyaWdnZXJSdWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5jYXRlZ29yeUhhc2h0YWdUcmlnZ2VyUnVsZSkoZSx0KX19KX0sX2FwcGx5RW1vamlBdXRvY29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHI9dGhpczt0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfZW1vamkmJmUuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx1LmZpbmRSYXdUZW1wbGF0ZSkoImVtb2ppLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSIpLGtleToiOiIsYWZ0ZXJDb21wbGV0ZTpmdW5jdGlvbihlKXtyLnNldCgidmFsdWUiLGUpLHIuX2ZvY3VzVGV4dEFyZWEoKX0sb25LZXlVcDpmdW5jdGlvbihlLHQpe2lmKCgwLGIuaW5Db2RlQmxvY2spKGUsdCkpcmV0dXJuITE7dmFyIG49Lyg/Ol58W15hLXpdKSg6KD8hOikuP1tcdy1dKjo/KD8hOikoPzp0XGQ/KT86PykgPyQvZ2kuZXhlYyhlLnN1YnN0cmluZygwLHQpKTtyZXR1cm4gbiYmblsxXT9bblsxXV06dm9pZCAwfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2RlPyhyLmVtb2ppU3RvcmUudHJhY2sodC5jb2RlKSx0LmNvZGUrIjoiKTooZS5hdXRvY29tcGxldGUoe2NhbmNlbDohMH0pLHIuc2V0UHJvcGVydGllcyh7aXNFZGl0b3JGb2N1c2VkOiQoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0IikuaXMoIjpmb2N1cyIpLGVtb2ppUGlja2VySXNBY3RpdmU6ITB9KSwoMCxhLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmVtb2ppLXBpY2tlciBpbnB1dFtuYW1lPSdmaWx0ZXInXSIpO2UmJihlLnZhbHVlPXQudGVybSwoMCxhLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKX0sNTApKX0pLCIiKX0sZGF0YVNvdXJjZTpmdW5jdGlvbihvKXtyZXR1cm4gbmV3IHYuUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD0iOiIrbztpZigobz1vLnRvTG93ZXJDYXNlKCkpLmxlbmd0aDxyLnNpdGVTZXR0aW5ncy5lbW9qaV9hdXRvY29tcGxldGVfbWluX2NoYXJzKXJldHVybiBlKFtdKTtpZigiIj09PW8pcmV0dXJuIHIuZW1vamlTdG9yZS5mYXZvcml0ZXMubGVuZ3RoP2Uoci5lbW9qaVN0b3JlLmZhdm9yaXRlcy5zbGljZSgwLDUpKTplKFsic2xpZ2h0X3NtaWxlIiwic21pbGUiLCJ3aW5rIiwic3VubnkiLCJibHVzaCJdKTtpZihtLnRyYW5zbGF0aW9uc1t0XSlyZXR1cm4gZShbbS50cmFuc2xhdGlvbnNbdF1dKTt2YXIgbj1vLm1hdGNoKC9eOj8oLio/KTp0KFsyLTZdKT8kLyk7aWYobil7dmFyIGk9blsxXSxzPW5bMl07aWYoKDAsZi5pc1NraW5Ub25hYmxlRW1vamkpKGkpKXJldHVybiBlKHM/W2krIjp0IitzXTpbMiwzLDQsNSw2XS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkrIjp0IitlfSkpfXJldHVybiBlKCgwLGYuZW1vamlTZWFyY2gpKG8se21heFJlc3VsdHM6NX0pKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGgmJmUucHVzaCh7bGFiZWw6STE4bi50KCJjb21wb3Nlci5tb3JlX2Vtb2ppIiksdGVybTpvfSksZX0pfSx0cmlnZ2VyUnVsZTpmdW5jdGlvbihlKXtyZXR1cm4hKDAsYi5pbkNvZGVCbG9jaykoZS52YWx1ZSwoMCxiLmNhcmV0UG9zaXRpb24pKGUpKX19KX0sX2dldFNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeSl7Zm9yKHZhciBuPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLGk9bi52YWx1ZSxzPW4uc2VsZWN0aW9uU3RhcnQsbz1uLnNlbGVjdGlvbkVuZDtzPG8mJi9ccy8udGVzdChpLmNoYXJBdChvLTEpKTspby0tO2lmKGUpZm9yKDtzPG8mJi9ccy8udGVzdChpLmNoYXJBdChzKSk7KXMrKzt2YXIgcj1pLnN1YnN0cmluZyhzLG8pLGE9aS5zbGljZSgwLHMpLGw9aS5zbGljZShvKTtyZXR1cm4gdCYmdC5saW5lVmFsP3tzdGFydDpzLGVuZDpvLHZhbHVlOnIscHJlOmEscG9zdDpsLGxpbmVWYWw6aS5zcGxpdCgiXG4iKVtpLnN1YnN0cigwLG4uc2VsZWN0aW9uU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aC0xXX06e3N0YXJ0OnMsZW5kOm8sdmFsdWU6cixwcmU6YSxwb3N0Omx9fX0sX3NlbGVjdFRleHQ6ZnVuY3Rpb24oaSxzKXt2YXIgbz10aGlzOygwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9by5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0IiksdD0kKGUpLG49dC5zY3JvbGxUb3AoKTtvLmNhcGFiaWxpdGllcy5pc0lPUyYmISgwLGIuc2FmYXJpSGFja3NEaXNhYmxlZCkoKXx8dC5mb2N1cygpLGUuc2VsZWN0aW9uU3RhcnQ9aSxlLnNlbGVjdGlvbkVuZD1pK3MsKDAsYS5uZXh0KShmdW5jdGlvbigpe3JldHVybiB0LnRyaWdnZXIoImNoYW5nZSIpfSksdC5zY3JvbGxUb3Aobil9KX0sX2dldE11bHRpbGluZUNvbnRlbnRzOmZ1bmN0aW9uKGUsYyxkLHAsbSxmLHQpe3ZhciBoPU0sYj10JiZ0LmFwcGx5RW1wdHlMaW5lcztyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7aWYoIWImJjA9PT1lLmxlbmd0aClyZXR1cm4gZTtpZihoIT09SSYmKGUuc2xpY2UoMCxwKT09PWQmJjA9PT1mfHxtLmxlbmd0aCYmZS5zbGljZSgtZik9PT1tKSl7aWYoaD1ELDA9PT1mKXt2YXIgdD1lLnNsaWNlKHApLG49TyhjLGQpLGk9aihuLDIpO3JldHVybiBkPWlbMF0scD1pWzFdLHR9aWYoZS5zbGljZSgtZik9PT1tKXt2YXIgcz1lLnNsaWNlKHAsLWYpLG89TyhjLGQpLHI9aihvLDIpO3JldHVybiBkPXJbMF0scD1yWzFdLHN9fWVsc2UgaWYoaD09PU0paD1JO2Vsc2UgaWYoaD09PUQpcmV0dXJuIGU7dmFyIGE9IiIrZCtlK20sbD1PKGMsZCksdT1qKGwsMik7cmV0dXJuIGQ9dVswXSxwPXVbMV0sYX0pLmpvaW4oIlxuIil9LF9hcHBseVN1cnJvdW5kOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG8scixhLGwsdSxjLGQscCxtLGYsaD1lLnByZSxiPWUucG9zdCxnPW4ubGVuZ3RoO2lmKGUuc3RhcnQ9PT1lLmVuZCl7aWYoMD09PWcpcmV0dXJuO3ZhciB2PU8odCkseT1qKHYsMiksXz15WzBdLHc9eVsxXSx4PUkxOG4udCgiY29tcG9zZXIuIitpKTt0aGlzLnNldCgidmFsdWUiLCIiK2grXyt4K24rYiksdGhpcy5fc2VsZWN0VGV4dChoLmxlbmd0aCt3LHgubGVuZ3RoKX1lbHNle3MmJiFzLm11bHRpbGluZT8obz1PKHQpLGE9KHI9aihvLDIpKVswXSxsPXJbMV0scy51c2VCbG9ja01vZGUmJjE8ZS52YWx1ZS5zcGxpdCgiXG4iKS5sZW5ndGgmJihhKz0iXG4iLGwrPTEsbj0iXG4iK24pLGguc2xpY2UoLWwpPT09YSYmYi5zbGljZSgwLG4ubGVuZ3RoKT09PW4/KHRoaXMuc2V0KCJ2YWx1ZSIsIiIraC5zbGljZSgwLC1sKStlLnZhbHVlK2Iuc2xpY2Uobi5sZW5ndGgpKSx0aGlzLl9zZWxlY3RUZXh0KGUuc3RhcnQtbCxlLnZhbHVlLmxlbmd0aCkpOih0aGlzLnNldCgidmFsdWUiLCIiK2grYStlLnZhbHVlK24rYiksdGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0K2wsZS52YWx1ZS5sZW5ndGgpKSk6KHU9ZS52YWx1ZS5zcGxpdCgiXG4iKSxjPU8odCkscD0oZD1qKGMsMikpWzBdLG09ZFsxXSwxPT09dS5sZW5ndGgmJmguc2xpY2UoLWcpPT09biYmYi5zbGljZSgwLG0pPT09cD8odGhpcy5zZXQoInZhbHVlIiwiIitoLnNsaWNlKDAsLW0pK2UudmFsdWUrYi5zbGljZShnKSksdGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0LW0sZS52YWx1ZS5sZW5ndGgpKTooZj10aGlzLl9nZXRNdWx0aWxpbmVDb250ZW50cyh1LHQscCxtLG4sZyxzKSx0aGlzLnNldCgidmFsdWUiLCIiK2grZitiKSwxPT09dS5sZW5ndGgmJjA8Zz90aGlzLl9zZWxlY3RUZXh0KGUuc3RhcnQrbSxlLnZhbHVlLmxlbmd0aCk6dGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0LGYubGVuZ3RoKSkpfX0sX2FwcGx5TGlzdDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7LTEhPT1lLnZhbHVlLmluZGV4T2YoIlxuIik/dGhpcy5fYXBwbHlTdXJyb3VuZChlLHQsIiIsbixpKToocz1PKHQpLHI9KG89aihzLDIpKVswXSxhPW9bMV0sZS5zdGFydD09PWUuZW5kJiYoZS52YWx1ZT1JMThuLnQoImNvbXBvc2VyLiIrbikpLGw9ZS5wcmUudHJpbSgpLHU9MD09PWUudmFsdWUuaW5kZXhPZihyKT9lLnZhbHVlLnNsaWNlKGEpOiIiK3IrZS52YWx1ZSxjPWwubGVuZ3RoP2wrIlxuXG4iOiIiLHA9KGQ9ZS5wb3N0LnRyaW0oKSkubGVuZ3RoPyJcblxuIitkOmQsdGhpcy5zZXQoInZhbHVlIixjK3UrcCksdGhpcy5fc2VsZWN0VGV4dChjLmxlbmd0aCx1Lmxlbmd0aCkpfSxfcmVwbGFjZVRleHQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbyxyLGE9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1uP246e30sbD10aGlzLnZhbHVlLHU9bC5pbmRleE9mKGUpOy0xIT09dSYmKGk9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0Iikscz0oMCxiLmRldGVybWluZVBvc3RSZXBsYWNlU2VsZWN0aW9uKSh7c2VsZWN0aW9uOntzdGFydDppLnNlbGVjdGlvblN0YXJ0LGVuZDppLnNlbGVjdGlvbkVuZH0sbmVlZGxlOntzdGFydDp1LGVuZDp1K2UubGVuZ3RofSxyZXBsYWNlbWVudDp7c3RhcnQ6dSxlbmQ6dSt0Lmxlbmd0aH19KSxhLmluZGV4JiZhLnJlZ2V4PyhvPS0xLHI9bC5yZXBsYWNlKGEucmVnZXgsZnVuY3Rpb24oZSl7cmV0dXJuKytvPT09YS5pbmRleD90OmV9KSx0aGlzLnNldCgidmFsdWUiLHIpKTp0aGlzLnNldCgidmFsdWUiLGwucmVwbGFjZShlLHQpKSwoYS5mb3JjZUZvY3VzfHwkKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLmlzKCI6Zm9jdXMiKSkmJnRoaXMuX3NlbGVjdFRleHQocy5zdGFydCxzLmVuZC1zLnN0YXJ0KSl9LF9hZGRCbG9jazpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvOzAhPT0odD0odHx8IiIpLnRyaW0oKSkubGVuZ3RoJiYobj1lLnByZSxpPWUudmFsdWUrZS5wb3N0LDA8bi5sZW5ndGgmJihuPW4ucmVwbGFjZSgvXG4qJC8sIlxuXG4iKSkscz1uK3QrKGk9MDxpLmxlbmd0aD9pLnJlcGxhY2UoL15cbiovLCJcblxuIik6IlxuIiksbz0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpKSx0aGlzLnNldCgidmFsdWUiLHMpLG8udmFsKHMpLG8ucHJvcCgic2VsZWN0aW9uU3RhcnQiLChuK3QpLmxlbmd0aCsyKSxvLnByb3AoInNlbGVjdGlvbkVuZCIsKG4rdCkubGVuZ3RoKzIpLHRoaXMuX2ZvY3VzVGV4dEFyZWEoKSl9LF9hZGRUZXh0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpKTtuJiZuLmVuc3VyZVNwYWNlJiYoMDwoZS5wcmUrIiIpLmxlbmd0aCYmKGUucHJlLm1hdGNoKC9ccyQvKXx8KHQ9IiAiK3QpKSwwPChlLnBvc3QrIiIpLmxlbmd0aCYmKGUucG9zdC5tYXRjaCgvXlxzLyl8fCh0Kz0iICIpKSk7dmFyIHM9IiIrZS5wcmUrdCxvPXMrZS5wb3N0O3RoaXMuc2V0KCJ2YWx1ZSIsbyksaS52YWwobyksaS5wcm9wKCJzZWxlY3Rpb25TdGFydCIscy5sZW5ndGgpLGkucHJvcCgic2VsZWN0aW9uRW5kIixzLmxlbmd0aCksKDAsYS5uZXh0KShmdW5jdGlvbigpe3JldHVybiBpLnRyaWdnZXIoImNoYW5nZSIpfSksdGhpcy5fZm9jdXNUZXh0QXJlYSgpfSxfZXh0cmFjdFRhYmxlOmZ1bmN0aW9uKGUpe2UuZW5kc1dpdGgoIlxuIikmJihlPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMSkpO3ZhciB0PWUuc3BsaXQoIlxuIik7aWYoMTx0Lmxlbmd0aCl7dmFyIG49dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIlx0IikubGVuZ3RofSk7aWYobi5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmblswXT09PXQmJjE8dH0pJiYhKDI9PT1uWzBdJiZ0WzBdLnNwbGl0KCJcdCIpWzBdLm1hdGNoKC9e4oCiJHxeXGQrLiQvKSkpe3ZhciBpPVtdLmNvbmNhdChmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9KEFycmF5KG5bMF0pKSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIi0tLSJ9KS5qb2luKCJcdCIpO3JldHVybiB0LnNwbGljZSgxLDAsaSksInwiK3QubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCJcdCIpLmpvaW4oInwiKX0pLmpvaW4oInxcbnwiKSsifFxuIn19cmV0dXJuIG51bGx9LF90b2dnbGVEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT0kKCIuZC1lZGl0b3ItaW5wdXQiKSx0PSJsdHIiPT09KGUuYXR0cigiZGlyIik/ZS5hdHRyKCJkaXIiKTooMCxjLnNpdGVEaXIpKCkpPyJydGwiOiJsdHIiO2UuYXR0cigiZGlyIix0KS5mb2N1cygpfSxwYXN0ZTpmdW5jdGlvbihlKXt2YXIgdCxuLGkscyxvLHIsYSxsLHUsYyxkLHAsbSxmLGg7JCgiLmQtZWRpdG9yLWlucHV0IikuaXMoIjpmb2N1cyIpJiYodD0kKCIjcmVwbHktY29udHJvbCAuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIiksaT0obj0oMCxiLmNsaXBib2FyZERhdGEpKGUsdCkpLmNsaXBib2FyZCxzPW4uY2FuUGFzdGVIdG1sLG89bi5jYW5VcGxvYWQscj1pLmdldERhdGEoInRleHQvcGxhaW4iKSxhPWkuZ2V0RGF0YSgidGV4dC9odG1sIiksbD0hMSxjPSh1PXRoaXMuX2dldFNlbGVjdGVkKG51bGwse2xpbmVWYWw6ITB9KSkucHJlLGQ9dS5saW5lVmFsLHA9Yy5tYXRjaCgvW15cbl0kLyksbT1DKGMsLyhefFxuKWBgYC9nKSxyJiZ0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcmljaF90ZXh0X3Bhc3RlJiYhcCYmIW0mJihyPXIudHJpbSgpLnJlcGxhY2UoL1xyL2csIiIpLChmPXRoaXMuX2V4dHJhY3RUYWJsZShyKSkmJih0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtdGV4dCIsZiksbD0hMCkpLHMmJnImJihzPXA/IShkLm1hdGNoKC9eYGBgLyl8fEMoYywvYC9nKXx8ZC5tYXRjaCgvXiAgICAvKSk6IW0pLHMmJiFsJiYoaD0oMCxnLmRlZmF1bHQpKGEpLCghcnx8ci5sZW5ndGg8aC5sZW5ndGgpJiYocCYmKGg9aC5yZXBsYWNlKC9eIysvLCIiKS50cmltKCksaD1jLm1hdGNoKC9cUyQvKT8iICIraDpoKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtdGV4dCIsaCksbD0hMCkpLChsfHxvJiYhcikmJmUucHJldmVudERlZmF1bHQoKSl9LF9mb2N1c1RleHRBcmVhOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0Iik7KDAsYS5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmJsdXIoKSxlLmZvY3VzKCl9KX0sYWN0aW9uczp7ZW1vamk6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVkfHwodGhpcy5zZXQoImlzRWRpdG9yRm9jdXNlZCIsJCgidGV4dGFyZWEuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIikpLHRoaXMuc2V0KCJlbW9qaVBpY2tlcklzQWN0aXZlIiwhdGhpcy5lbW9qaVBpY2tlcklzQWN0aXZlKSl9LGVtb2ppU2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLl9nZXRTZWxlY3RlZCgpLGk9bi5wcmUubWF0Y2goL1xCOihcdyopJC8pO18uaXNFbXB0eShpKT9uLnByZS5tYXRjaCgvXFMkLyk/dGhpcy5fYWRkVGV4dChuLCIgOiIrZSsiOiIpOnRoaXMuX2FkZFRleHQobiwiOiIrZSsiOiIpOih0PW4ucHJlLmxlbmd0aC1pWzFdLmxlbmd0aCxuLnByZT1uLnByZS5zbGljZSgwLG4ucHJlLmxlbmd0aC1pWzFdLmxlbmd0aCksbi5zdGFydC09dCxuLmVuZC09dCx0aGlzLl9hZGRUZXh0KG4sZSsiOiIpKX0sdG9vbGJhckJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgcz10aGlzO2lmKCF0aGlzLmRpc2FibGVkKXt2YXIgbz10aGlzLl9nZXRTZWxlY3RlZChlLnRyaW1MZWFkaW5nKSx0PXtzZWxlY3RlZDpvLHNlbGVjdFRleHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcy5fc2VsZWN0VGV4dChlLHQpfSxhcHBseVN1cnJvdW5kOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiBzLl9hcHBseVN1cnJvdW5kKG8sZSx0LG4saSl9LGFwcGx5TGlzdDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHMuX2FwcGx5TGlzdChvLGUsdCxuKX0sYWRkVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gcy5fYWRkVGV4dChvLGUpfSxyZXBsYWNlVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gcy5fYWRkVGV4dCh7cHJlOiIiLHBvc3Q6IiJ9LGUpfSxnZXRUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHMudmFsdWV9LHRvZ2dsZURpcmVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBzLl90b2dnbGVEaXJlY3Rpb24oKX19O2lmKGUuc2VuZEFjdGlvbilyZXR1cm4gZS5zZW5kQWN0aW9uKHQpO2UucGVyZm9ybSh0KX19LHNob3dMaW5rTW9kYWw6ZnVuY3Rpb24oZSl7dmFyIHQ7dGhpcy5kaXNhYmxlZHx8KHQ9IiIsdGhpcy5fbGFzdFNlbD1lLnNlbGVjdGVkLHRoaXMuX2xhc3RTZWwmJih0PXRoaXMuX2xhc3RTZWwudmFsdWUpLCgwLGguZGVmYXVsdCkoImluc2VydC1oeXBlcmxpbmsiKS5zZXRQcm9wZXJ0aWVzKHtsaW5rVGV4dDp0LHRvb2xiYXJFdmVudDplfSkpfSxmb3JtYXRDb2RlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZWQpe3ZhciBlPXRoaXMuX2dldFNlbGVjdGVkKCIiLHtsaW5lVmFsOiEwfSksdD1lLnZhbHVlLG49LTEhPT10LmluZGV4T2YoIlxuIiksaT0wPT09ZS5saW5lVmFsLnRyaW0oKS5sZW5ndGgscz0iNC1zcGFjZXMtaW5kZW50Ij09PXRoaXMuc2l0ZVNldHRpbmdzLmNvZGVfZm9ybWF0dGluZ19zdHlsZTtpZihuKXtpZihzKXJldHVybiB0aGlzLl9hcHBseVN1cnJvdW5kKGUsIiAgICAiLCIiLCJjb2RlX3RleHQiKTt2YXIgbz0iXG4iIT09ZS5wcmVbLTFdJiYiIiE9PWUucHJlPyJcbiI6IiIscj0iXG4iIT09ZS5wb3N0WzBdPyJcbiI6IiI7cmV0dXJuIHRoaXMuX2FkZFRleHQoZSxvKyJgYGBcbiIrZS52YWx1ZSsiXG5gYGAiK3IpfWlmKDA9PT10Lmxlbmd0aCYmaSl7aWYocyl7dmFyIGE9STE4bi50KCJjb21wb3Nlci5jb2RlX3RleHQiKTtyZXR1cm4gdGhpcy5zZXQoInZhbHVlIixlLnByZSsiICAgICIrYStlLnBvc3QpLHRoaXMuX3NlbGVjdFRleHQoZS5wcmUubGVuZ3RoKzQsYS5sZW5ndGgpfXJldHVybiB0aGlzLl9hcHBseVN1cnJvdW5kKGUsImBgYFxuIiwiXG5gYGAiLCJwYXN0ZV9jb2RlX3RleHQiKX1yZXR1cm4gdGhpcy5fYXBwbHlTdXJyb3VuZChlLCJgIiwiYCIsImNvZGVfdGl0bGUiKX19fX0sInBsYWNlaG9sZGVyVHJhbnNsYXRlZCIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUCwicGxhY2Vob2xkZXJUcmFuc2xhdGVkIiksUCksVChQLCJfc2h1dERvd24iLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFAsIl9zaHV0RG93biIpLFApLFQoUCwidG9vbGJhciIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJ0b29sYmFyIiksUCksVChQLCJfd2F0Y2hGb3JDaGFuZ2VzIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJfd2F0Y2hGb3JDaGFuZ2VzIiksUCksUCkpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4scyxpLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9aS5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMSxyZXNmcmVzaFF1ZXJ5V2l0aG91dFRyYW5zaXRpb246ITEsYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zaG93Rm9vdGVyJiZ0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxlLG4saT10aGlzO2lmKCF0aGlzLnJlZnJlc2hRdWVyeVdpdGhvdXRUcmFuc2l0aW9uKXJldHVybiB0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KDAscy5nZXRPd25lcikodGhpcykubG9va3VwKCJyb3V0ZXI6bWFpbiIpLl9yb3V0ZXJNaWNyb2xpYi5hY3RpdmVUcmFuc2l0aW9ufHwoZT0odD10aGlzLmNvbnRyb2xsZXIpLmdldCgibW9kZWwiKSxuPXRoaXMuY29udHJvbGxlci5nZXRQcm9wZXJ0aWVzKE9iamVjdC5rZXlzKHRoaXMucXVlcnlQYXJhbXMpKSxlLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwobikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gaS5zZXR1cENvbnRyb2xsZXIodCxlKX0pKX0sX3JlZnJlc2hUaXRsZU9uY2U6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoIl9jb2xsZWN0VGl0bGVUb2tlbnMiLFtdKX0sYWN0aW9uczp7X2NvbGxlY3RUaXRsZVRva2VuczpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hdGhpcy50aXRsZVRva2VufHwoZT10aGlzLnRpdGxlVG9rZW4oKSkmJmUubGVuZ3RoJiYoZSBpbnN0YW5jZW9mIEFycmF5P2UuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSl9KTp0LnB1c2goZSkpLCEwfSxyZWZyZXNoVGl0bGU6ZnVuY3Rpb24oKXsoMCx0Lm9uY2UpKHRoaXMsdGhpcy5fcmVmcmVzaFRpdGxlT25jZSl9LGNsZWFyVG9waWNEcmFmdDpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjb250cm9sbGVyLmxpc3QuZHJhZnQiKSYmdGhpcy5zZXQoImNvbnRyb2xsZXIubGlzdC5kcmFmdCIsbnVsbCksdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIpLmdldCgibW9kZWwuZHJhZnQiKSYmdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIpLnNldCgibW9kZWwuZHJhZnQiLG51bGwpLHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLmdldCgibW9kZWwuZHJhZnQiKSYmdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvdG9waWNzIikuc2V0KCJtb2RlbC5kcmFmdCIsbnVsbCl9fSxyZWRpcmVjdElmTG9naW5SZXF1aXJlZDpmdW5jdGlvbigpe3RoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5nZXQoImxvZ2luUmVxdWlyZWQiKSYmdGhpcy5yZXBsYWNlV2l0aCgibG9naW4iKX0sb3BlblRvcGljRHJhZnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb250cm9sbGVyRm9yKCJjb21wb3NlciIpO3QuZ2V0KCJtb2RlbC5hY3Rpb24iKT09PW4uZGVmYXVsdC5DUkVBVEVfVE9QSUMmJnQuZ2V0KCJtb2RlbC5kcmFmdEtleSIpPT09ZS5kcmFmdF9rZXk/dC5zZXQoIm1vZGVsLmNvbXBvc2VTdGF0ZSIsbi5kZWZhdWx0Lk9QRU4pOnQub3Blbih7YWN0aW9uOm4uZGVmYXVsdC5DUkVBVEVfVE9QSUMsZHJhZnQ6ZS5kcmFmdCxkcmFmdEtleTplLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOmUuZHJhZnRfc2VxdWVuY2V9KX0saXNQb3BwZWRTdGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4hZS5fZGlzY291cnNlX2ludGVyY2VwdGVkJiYhIWUuaW50ZW50LnVybH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGlzY291cnNlLCJSb3V0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLG8uZGVmYXVsdCkoIkltcG9ydCB0aGUgUm91dGUgY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBEaXNjb3Vyc2UuUm91dGUiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjUuMCJ9KSxpLmRlZmF1bHR9fSksZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtdG9waWMtcm91dGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL21vZGVscy9zZXNzaW9uIiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsdCxpLG4sbCx1LGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKHQsZSl7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxlfHx7fSk7cmV0dXJuIHQmJk9iamVjdC5rZXlzKGkucXVlcnlQYXJhbXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXSYmKG5bZV09dFtlXSl9KSxufWZ1bmN0aW9uIHIoaSxzLG8scixhKXtyZXR1cm4gYT1hfHx7fSxuZXcgdS5Qcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PWwuZGVmYXVsdC5jdXJyZW50KCk7aWYoYS5jYWNoZWQpe3ZhciBuPXQuZ2V0KCJ0b3BpY0xpc3QiKTtpZihuJiZuLmdldCgiZmlsdGVyIik9PT1vJiYobi5nZXQoInRvcGljcy5sZW5ndGgiKXx8MCk+bi5nZXQoInBlcl9wYWdlIikmJl8uaXNFcXVhbChuLmdldCgibGlzdFBhcmFtcyIpLHIpKXJldHVybiBuLnNldCgibG9hZGVkIiwhMCkscyYmcy51cGRhdGVUb3BpY3Mobi5nZXQoInRvcGljcyIpKSxlKG4pO3Quc2V0KCJ0b3BpY0xpc3QiLG51bGwpfWVsc2UgdC5zZXRQcm9wZXJ0aWVzKHt0b3BpY0xpc3Q6bnVsbCx0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbjpudWxsfSk7cmV0dXJuIHI9cnx8e30sT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yW2VdOyJ1bmRlZmluZWQiIT09dCYmIm51bGwiIT09dCYmImZhbHNlIiE9PXR8fChyW2VdPXZvaWQgMCl9KSxlKGkuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6byxwYXJhbXM6cnx8e319KSl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgibGlzdFBhcmFtcyIscikscyYmKHMuc3luYyhlLGUuZmlsdGVyKSxzLnRyYWNrSW5jb21pbmcoZS5maWx0ZXIpKSxsLmRlZmF1bHQuY3VycmVudFByb3AoInRvcGljTGlzdCIsZSksZS50b3BpY19saXN0JiZlLnRvcGljX2xpc3QudG9wX3RhZ3MmJihlLmZpbHRlci5zdGFydHNXaXRoKCJjLyIpfHxlLmZpbHRlci5zdGFydHNXaXRoKCJ0YWdzL2MvIik/Yy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjYXRlZ29yeV90b3BfdGFncyIsZS50b3BpY19saXN0LnRvcF90YWdzKTpjLmRlZmF1bHQuY3VycmVudFByb3AoInRvcF90YWdzIixlLnRvcGljX2xpc3QudG9wX3RhZ3MpKSxlfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZFRvcGljTGlzdD1lLmZpbHRlclF1ZXJ5UGFyYW1zPXZvaWQgMCxlLmRlZmF1bHQ9ZnVuY3Rpb24ocyxlKXtyZXR1cm4gZT1lfHx7fSx0LmRlZmF1bHQuZXh0ZW5kKHtxdWVyeVBhcmFtczppLnF1ZXJ5UGFyYW1zLGJlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2RlZmF1bHQiKS5zZXQoImZpbHRlclR5cGUiLHMuc3BsaXQoIi8iKVswXSl9LG1vZGVsOmZ1bmN0aW9uKGUsdCl7dGhpcy5zY3JlZW5UcmFjay5zdG9wKCk7dmFyIG49byhlKSxpPXtjYWNoZWQ6dGhpcy5pc1BvcHBlZFN0YXRlKHQpfTtyZXR1cm4gcih0aGlzLnN0b3JlLHRoaXMudG9waWNUcmFja2luZ1N0YXRlLHMsbixpKX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe2lmKHMhPT0oMCxuLmRlZmF1bHRIb21lcGFnZSkoKSl7dmFyIGU9STE4bi50KCJmaWx0ZXJzLiIrcy5yZXBsYWNlKCIvIiwiLiIpKyIudGl0bGUiKTtyZXR1cm4gSTE4bi50KCJmaWx0ZXJzLndpdGhfdG9waWNzIix7ZmlsdGVyOmV9KX19LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXttb2RlbDp0LGNhdGVnb3J5Om51bGwscGVyaW9kOnQuZ2V0KCJmb3JfcGVyaW9kIil8fCgwPD1zLmluZGV4T2YoInRvcC8iKT9zLnNwbGl0KCIvIilbMV06IiIpLHNlbGVjdGVkOltdLGV4cGFuZEFsbFBpbm5lZDohMSxleHBhbmRHbG9iYWxseVBpbm5lZDohMH0saT10LmdldCgicGFyYW1zIik7aSYmT2JqZWN0LmtleXMoaSkubGVuZ3RoJiYodm9pZCAwIT09aS5vcmRlciYmKG4ub3JkZXI9aS5vcmRlciksdm9pZCAwIT09aS5hc2NlbmRpbmcmJihuLmFzY2VuZGluZz1pLmFzY2VuZGluZykpLHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLnNldFByb3BlcnRpZXMobiksdGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2RlZmF1bHQiKS5zZXQoImNhbkNyZWF0ZVRvcGljIix0LmdldCgiY2FuX2NyZWF0ZV90b3BpYyIpKX0scmVzZXRDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dCYmZS5zZXRQcm9wZXJ0aWVzKHtvcmRlcjoiZGVmYXVsdCIsYXNjZW5kaW5nOiExfSl9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoIm5hdmlnYXRpb24vZGVmYXVsdCIse291dGxldDoibmF2aWdhdGlvbi1iYXIifSksdGhpcy5yZW5kZXIoImRpc2NvdmVyeS90b3BpY3MiLHtjb250cm9sbGVyOiJkaXNjb3ZlcnkvdG9waWNzIixvdXRsZXQ6Imxpc3QtY29udGFpbmVyIn0pfX0sZSl9LGUuZmlsdGVyUXVlcnlQYXJhbXM9byxlLmZpbmRUb3BpY0xpc3Q9cn0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthZnRlck1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgiY2FuX2VkaXQiKXx8dGhpcy5yZXBsYWNlV2l0aCgidXNlckFjdGl2aXR5Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci10b3BpYy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9taXhpbnMvdmlld2luZy1hY3Rpb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci10b3BpY3MtbGlzdCIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLnVzZXJBY3Rpb25UeXBlO3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgidXNlckFjdGlvblR5cGUiLG4pLHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLnNldCgidXNlckFjdGlvblR5cGUiLG4pLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsaGlkZUNhdGVnb3J5OiExfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1zdHJlYW0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21peGlucy92aWV3aW5nLWFjdGlvbi10eXBlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtxdWVyeVBhcmFtczp7YWN0aW5nX3VzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJzdHJlYW0iKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmZpbHRlckJ5KHtmaWx0ZXI6dGhpcy51c2VyQWN0aW9uVHlwZSxub0NvbnRlbnRIZWxwS2V5OnRoaXMubm9Db250ZW50SGVscEtleXx8InVzZXJfYWN0aXZpdHkubm9fZGVmYXVsdCIsYWN0aW5nVXNlcm5hbWU6dC50by5xdWVyeVBhcmFtcy5hY3RpbmdfdXNlcm5hbWV9KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlcl9zdHJlYW0iKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSx0aGlzLnZpZXdpbmdBY3Rpb25UeXBlKHRoaXMudXNlckFjdGlvblR5cGUpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWZyb20tcGFyYW1zIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHUsYyx0LGQscCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHttb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gZX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikudW5zdWJzY3JpYmUoKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsaSl7dmFyIHM9dGhpczsoaT1pfHx7fSkudHJhY2tfdmlzaXQ9ITA7dmFyIG89dGhpcy5tb2RlbEZvcigidG9waWMiKSxyPW8ucG9zdFN0cmVhbSxhPXRoaXMuY29udHJvbGxlckZvcigidG9waWMiKSxsPXRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKTsibGFzdCI9PT1pLm5lYXJQb3N0JiYoaS5uZWFyUG9zdD05OTk5OTk5OTkpLGkuZm9yY2VMb2FkPSEwLHIucmVmcmVzaChpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGUsdCxuO28udmlld19oaWRkZW58fChlPXIuY2xvc2VzdFBvc3RGb3JQb3N0TnVtYmVyKGkubmVhclBvc3R8fDEpLHQ9ZS5wb3N0X251bWJlcixhLnNldFByb3BlcnRpZXMoeyJtb2RlbC5jdXJyZW50UG9zdCI6dCxlbnRlcmVkSW5kZXg6by5wb3N0U3RyZWFtLnByb2dyZXNzSW5kZXhPZlBvc3QoZSksZW50ZXJlZEF0OihuZXcgRGF0ZSkuZ2V0VGltZSgpLnRvU3RyaW5nKCl9KSxzLmFwcEV2ZW50cy50cmlnZ2VyKCJwYWdlOnRvcGljLWxvYWRlZCIsbyksYS5zdWJzY3JpYmUoKSwoMCxjLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OmhpZ2hsaWdodCIsdCl9KSxuPXt9LGRvY3VtZW50LmxvY2F0aW9uLmhhc2gmJmRvY3VtZW50LmxvY2F0aW9uLmhhc2gubGVuZ3RoJiYobi5hbmNob3I9ZG9jdW1lbnQubG9jYXRpb24uaGFzaCksZC5kZWZhdWx0Lmp1bXBUb1Bvc3QodCxuKSwoMCx1LmlzRW1wdHkpKG8uZHJhZnQpfHxsLm9wZW4oe2RyYWZ0OnAuZGVmYXVsdC5nZXRMb2NhbChvLmRyYWZ0X2tleSxvLmRyYWZ0KSxkcmFmdEtleTpvLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOm8uZHJhZnRfc2VxdWVuY2UsaWdub3JlSWZDaGFuZ2VkOiEwLHRvcGljOm99KSl9KS5jYXRjaChmdW5jdGlvbihlKXsidGVzdCIhPT1uLmRlZmF1bHQuZW52aXJvbm1lbnQmJmNvbnNvbGUubG9nKCJDb3VsZCBub3QgdmlldyB0b3BpYyIsZSl9KX0sYWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ0b3BpYyIpLnNldCgicHJldmlvdXNVUkwiLGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdGV4dC1kaXJlY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlcktleSIpLGkobz17YXR0cmlidXRlQmluZGluZ3M6WyJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2ZvY3VzIiwibWF4TGVuZ3RoIiwiZGlyIl0sZGlyOmZ1bmN0aW9uKCl7aWYodGhpcy5zaXRlU2V0dGluZ3Muc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbil7dmFyIGU9dGhpcy52YWx1ZTtyZXR1cm4gZT8oMCxuLmlzUlRMKShlKT8icnRsIjoibHRyIjooMCxuLnNpdGVEaXIpKCl9fSxrZXlVcDpmdW5jdGlvbihlKXt2YXIgdDt0aGlzLl9zdXBlcihlKSx0aGlzLnNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uJiYodD10aGlzLnZhbHVlLCgwLG4uaXNSVEwpKHQpP3RoaXMuc2V0KCJkaXIiLCJydGwiKTooMCxuLmlzTFRSKSh0KT90aGlzLnNldCgiZGlyIiwibHRyIik6dGhpcy5zZXQoImRpciIsKDAsbi5zaXRlRGlyKSgpKSl9LHBsYWNlaG9sZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI/dGhpcy5fcGxhY2Vob2xkZXI6dGhpcy5wbGFjZWhvbGRlcktleT9JMThuLnQodGhpcy5wbGFjZWhvbGRlcktleSk6IiJ9LHNldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI9ZX19fSwiZGlyIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImRpciIpLG8pLGkobywicGxhY2Vob2xkZXIiLFtzXSwocj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInBsYWNlaG9sZGVyIikpP3IudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiByfX0pLG8pLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJzaXplIiksbz1zPXtjbGFzc05hbWVCaW5kaW5nczpbIjpsb2FkaW5nLWNvbnRhaW5lciIsImNvbnRhaW5lckNsYXNzIiwiY29uZGl0aW9uOnZpc2libGUiXSxjb250YWluZXJDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4ic21hbGwiPT09ZT8iaW5saW5lLXNwaW5uZXIiOnZvaWQgMH19LHI9ImNvbnRhaW5lckNsYXNzIixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiY29udGFpbmVyQ2xhc3MiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbCx0LHUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZW5kZXJBdmF0YXI9dm9pZCAwLGUucmVnaXN0ZXJDdXN0b21BdmF0YXJIZWxwZXI9ZnVuY3Rpb24oZSl7KGk9aXx8W10pLnB1c2goZSl9LGUuYWRkRXh0cmFVc2VyQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciBuPXMoZSkuam9pbigiICIpO24mJm4ubGVuZ3RoJiYodC5leHRyYUNsYXNzZXM9bik7cmV0dXJuIHR9LGUuY2xhc3Nlc0ZvclVzZXI9czt2YXIgaT12b2lkIDA7ZnVuY3Rpb24gcyhlKXt2YXIgdD1bXTtpZihpKWZvcih2YXIgbj0wO248aS5sZW5ndGg7bisrKXQ9dC5jb25jYXQoaVtuXShlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gbihlLHQpe2lmKHQ9dHx8e30sZSl7dmFyIG49KDAsbC5nZXQpKGUsdC5uYW1lUGF0aHx8Im5hbWUiKSxpPSgwLGwuZ2V0KShlLHQudXNlcm5hbWVQYXRofHwidXNlcm5hbWUiKSxzPSgwLGwuZ2V0KShlLHQuYXZhdGFyVGVtcGxhdGVQYXRofHwiYXZhdGFyX3RlbXBsYXRlIik7aWYoIWl8fCFzKXJldHVybiIiO3ZhciBvLHI9bnx8KDAsdS5mb3JtYXRVc2VybmFtZSkoaSksYT10LnRpdGxlO3JldHVybiBhfHx0Lmlnbm9yZVRpdGxlfHwoYT0oMCxsLmdldCkoZSwidGl0bGUiKSl8fChvPSgwLGwuZ2V0KShlLCJkZXNjcmlwdGlvbiIpKSYmMDxvLmxlbmd0aCYmKGE9cisiIC0gIitvKSwoMCx1LmF2YXRhckltZykoe3NpemU6dC5pbWFnZVNpemUsZXh0cmFDbGFzc2VzOigwLGwuZ2V0KShlLCJleHRyYXMiKXx8dC5leHRyYUNsYXNzZXMsdGl0bGU6YXx8cixhdmF0YXJUZW1wbGF0ZTpzfSl9cmV0dXJuIiJ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJhdmF0YXIiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcobi5jYWxsKHRoaXMsZSx0KSl9KSxlLnJlbmRlckF2YXRhcj1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jb2xkLWFnZS1jbGFzcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzg2NGU1fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoZS5kYXlzU2luY2VFcG9jaD12b2lkIDAsdC5yZWdpc3RlclVuYm91bmQpKCJjb2xkLWFnZS1jbGFzcyIsZnVuY3Rpb24oZSx0KXt2YXIgbj10LmNsYXNzfHwiYWdlIjtpZighZSlyZXR1cm4gbjt2YXIgaT1vKHQuc3RhcnREYXRlfHxuZXcgRGF0ZSkscz1vKG5ldyBEYXRlKGUpKTtyZXR1cm4gaS1zPkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuY29sZF9hZ2VfZGF5c19oaWdoP24rIiBjb2xkbWFwLWhpZ2giOmktcz5EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmNvbGRfYWdlX2RheXNfbWVkaXVtP24rIiBjb2xkbWFwLW1lZCI6aS1zPkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuY29sZF9hZ2VfZGF5c19sb3c/bisiIGNvbGRtYXAtbG93IjpufSksZS5kYXlzU2luY2VFcG9jaD1vfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9sb2FkaW5nLXNwaW5uZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3ZhciB0PSI8ZGl2IGNsYXNzPSdzcGlubmVyIjtyZXR1cm4gZSYmKHQrPSIgIitlKSx0KyInPjwvZGl2PiJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVuZGVyU3Bpbm5lcj1lLnNwaW5uZXJIVE1MPXZvaWQgMDt2YXIgaT1uKCk7ZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5oYXNoO3JldHVybiBuKHQmJnQuc2l6ZT90LnNpemU6dm9pZCAwKX0pLGUuc3Bpbm5lckhUTUw9aSxlLnJlbmRlclNwaW5uZXI9bn0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsZyx0LHYseSxfLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXBsYWNlQ2F0ZWdvcnlMaW5rUmVuZGVyZXI9ZnVuY3Rpb24oZSl7bz1lfSxlLmNhdGVnb3J5QmFkZ2VIVE1MPXIsZS5jYXRlZ29yeUxpbmtIVE1MPW47dmFyIHc9SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uLG89ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxnLmdldCkoZSwiZGVzY3JpcHRpb25fdGV4dCIpLGk9KDAsZy5nZXQpKGUsInJlYWRfcmVzdHJpY3RlZCIpLHM9dC51cmw/dC51cmw6RGlzY291cnNlLmdldFVSTCgiL2MvIitfLmRlZmF1bHQuc2x1Z0ZvcihlKSsiLyIrKDAsZy5nZXQpKGUsImlkIikpLG89ITE9PT10Lmxpbms/IiI6cyxyPSExPT09dC5saW5rfHwiZmFsc2UiPT09dC5saW5rPyJzcGFuIjoiYSIsYT10LmV4dHJhQ2xhc3Nlcz8iICIrdC5leHRyYUNsYXNzZXM6IiIsbD0oMCxnLmdldCkoZSwiY29sb3IiKSx1PSIiLGM9bnVsbCxkPSIiO3QuaGlkZVBhcmVudHx8KGM9Xy5kZWZhdWx0LmZpbmRCeUlkKCgwLGcuZ2V0KShlLCJwYXJlbnRfY2F0ZWdvcnlfaWQiKSkpO3ZhciBwPXQuY2F0ZWdvcnlTdHlsZXx8RGlzY291cnNlLlNpdGVTZXR0aW5ncy5jYXRlZ29yeV9zdHlsZTsibm9uZSIhPT1wJiYoYyYmYyE9PWUmJih1Kz14KCgwLGcuZ2V0KShjLCJjb2xvciIpLCJiYWRnZS1jYXRlZ29yeS1wYXJlbnQtYmciKSksdSs9eChsLCJiYWRnZS1jYXRlZ29yeS1iZyIpKTt2YXIgbT0iYmFkZ2UtY2F0ZWdvcnkgY2xlYXItYmFkZ2UiO2kmJihtKz0iIHJlc3RyaWN0ZWQiKTt2YXIgZj0iIjsiYm94Ij09PXAmJihmPSdzdHlsZT0iY29sb3I6ICMnKygwLGcuZ2V0KShlLCJ0ZXh0X2NvbG9yIikrJzsiJyk7dSs9IjxzcGFuICIrZisnIGRhdGEtZHJvcC1jbG9zZT0idHJ1ZSIgY2xhc3M9IicrbSsnIicrKG4/J3RpdGxlPSInK24rJyIgJzoiIikrIj4iO3ZhciBoPXcoKDAsZy5nZXQpKGUsIm5hbWUiKSk7RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uJiYoZD0oMCx2LmlzUlRMKShoKT8nZGlyPSJydGwiJzonZGlyPSJsdHIiJyk7dSs9aT8oMCx5Lmljb25IVE1MKSgibG9jayIpKyc8c3BhbiBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgJytkKyI+IitoKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9ImNhdGVnb3J5LW5hbWUiICcrZCsiPiIraCsiPC9zcGFuPiI7dSs9Ijwvc3Bhbj4iLHQudG9waWNDb3VudCYmImJveCIhPT1wJiYodSs9ayh0LnRvcGljQ291bnQpKTtvPW8mJicgaHJlZj0iJytvKyciICc7YT1wP3ArYTphO3ZhciBiPSIiO3QudG9waWNDb3VudCYmImJveCI9PT1wJiYoYis9ayh0LnRvcGljQ291bnQpKTtyZXR1cm4iPCIrcisnIGNsYXNzPSJiYWRnZS13cmFwcGVyICcrYSsnIiAnK28rIj4iK3UrIjwvIityKyI+IitifTtmdW5jdGlvbiB4KGUsdCl7cmV0dXJuIjxzcGFuIGNsYXNzPSciK3QrIicgIisoZT8ic3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICMiK2UrIjsnIjoiIikrIj48L3NwYW4+In1mdW5jdGlvbiByKGUsdCl7aWYodD10fHx7fSwhZXx8IXQuYWxsb3dVbmNhdGVnb3JpemVkJiYoMCxnLmdldCkoZSwiaWQiKT09PXMuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpJiZEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnN1cHByZXNzX3VuY2F0ZWdvcml6ZWRfYmFkZ2UpcmV0dXJuIiI7dmFyIG49KHQuZGVwdGh8fDEpKzE7aWYodC5yZWN1cnNpdmUmJm48PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWF4X2NhdGVnb3J5X25lc3Rpbmcpe3ZhciBpPV8uZGVmYXVsdC5maW5kQnlJZChlLnBhcmVudF9jYXRlZ29yeV9pZCk7cmV0dXJuIHQuZGVwdGg9bixyKGksdCkrbyhlLHQpfXJldHVybiBvKGUsdCl9ZnVuY3Rpb24gbihlLHQpe3ZhciBuPXt9O3JldHVybiB0JiZ0Lmhhc2gmJih0PXQuaGFzaCksdCYmKHQuYWxsb3dVbmNhdGVnb3JpemVkJiYobi5hbGxvd1VuY2F0ZWdvcml6ZWQ9ITApLHZvaWQgMCE9PXQubGluayYmKG4ubGluaz10LmxpbmspLHQuZXh0cmFDbGFzc2VzJiYobi5leHRyYUNsYXNzZXM9dC5leHRyYUNsYXNzZXMpLHQuaGlkZVBhcmVudCYmKG4uaGlkZVBhcmVudD0hMCksdC5jYXRlZ29yeVN0eWxlJiYobi5jYXRlZ29yeVN0eWxlPXQuY2F0ZWdvcnlTdHlsZSksdC5yZWN1cnNpdmUmJihuLnJlY3Vyc2l2ZT0hMCkpLG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcocihlLG4pKX1mdW5jdGlvbiBrKGUpe3JldHVybic8c3BhbiBjbGFzcz0idG9waWMtY291bnQiIGFyaWEtbGFiZWw9IicrSTE4bi50KCJjYXRlZ29yeV9yb3cudG9waWNfY291bnQiLHtjb3VudDplfSkrJyI+JnRpbWVzOyAnK2UrIjwvc3Bhbj4ifSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiY2F0ZWdvcnktbGluayIsbil9KSxkZWZpbmUoImRpc2NvdXJzZS9tYXBwaW5nLXJvdXRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50IiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxuLGksdCxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFwUm91dGVzPWZ1bmN0aW9uKCl7dmFyIGk9bmV3IHUoInJvb3QiKSxzPVtdO3JldHVybiBPYmplY3Qua2V5cyhyZXF1aXJlanMuX2Vha19zZWVuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKC9yb3V0ZS1tYXAkLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0fHwhdC5kZWZhdWx0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYSByb3V0ZSBtYXAuIik7dmFyIG49dC5kZWZhdWx0OyJmdW5jdGlvbiI9PXR5cGVvZiBuP2kuZXh0cmFjdChuKTpzLnB1c2gobil9fSkscy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWkuZmluZFBhdGgoZS5yZXNvdXJjZSk7dCYmdC5leHRyYWN0KGUubWFwKX0pLGwuZXh0ZW5kKCkubWFwKGZ1bmN0aW9uKCl7aS5tYXBSb3V0ZXModGhpcyksdGhpcy5yb3V0ZSgidW5rbm93biIse3BhdGg6IipwYXRoIn0pfSl9O3ZhciBvPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX07ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBhPURpc2NvdXJzZS5CYXNlVXJpLGw9RW1iZXIuUm91dGVyLmV4dGVuZCh7cm9vdFVSTDphLGxvY2F0aW9uOiJ0ZXN0Ij09PXQuZGVmYXVsdC5lbnZpcm9ubWVudD8ibm9uZSI6ImRpc2NvdXJzZS1sb2NhdGlvbiIsaGFuZGxlVVJMOmZ1bmN0aW9uKGUpe3ZhciB0PShlPSgwLGkucmV3cml0ZVBhdGgpKGUpKS5zcGxpdCgiPyIpO3JldHVybiIvIj09PXRbMF0mJihlPSgwLG4uZGVmYXVsdEhvbWVwYWdlKSgpLHRbMV0mJnRbMV0ubGVuZ3RoJiYoZT1lKyI/Iit0WzFdKSksdGhpcy5fc3VwZXIoZSl9fSksdT0obyhjLFt7a2V5OiJyb3V0ZSIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3Q9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx7fSk6dHx8e307dmFyIGkscz10aGlzLmNoaWxkcmVuQnlOYW1lW2VdO3M/KHQucGF0aCYmKHMucGF0aHNbdC5wYXRoXT0hMCkscy5leHRyYWN0KG4pKTooKGk9bmV3IGMoZSx0LHRoaXMuZGVwdGgrMSkpLmV4dHJhY3QobiksdGhpcy5jaGlsZHJlbkJ5TmFtZVtlXT1pLHRoaXMuY2hpbGRyZW4ucHVzaChpKSl9fSx7a2V5OiJleHRyYWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtlJiZlLmNhbGwodGhpcyl9fSx7a2V5OiJtYXBSb3V0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5jaGlsZHJlbjsicm9vdCI9PT10aGlzLm5hbWU/bi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcFJvdXRlcyh0KX0pOihlPTA9PT1uLmxlbmd0aD92b2lkIDA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO24uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXBSb3V0ZXModCl9KX0sdC5yb3V0ZSh0aGlzLm5hbWUsdGhpcy5vcHRzLGUpKX19LHtrZXk6ImZpbmRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aCl7dmFyIHQ9ZS5zaGlmdCgpLG49dGhpcy5jaGlsZHJlbkJ5TmFtZVt0XTtpZihuKXJldHVybiAwPT09ZS5sZW5ndGg/bjpuLmZpbmRTZWdtZW50KGUpfX19LHtrZXk6ImZpbmRQYXRoIix2YWx1ZTpmdW5jdGlvbihlKXtpZihlKXJldHVybiB0aGlzLmZpbmRTZWdtZW50KGUuc3BsaXQoIi4iKSl9fV0pLGMpO2Z1bmN0aW9uIGMoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjA7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsYyksdGhpcy5uYW1lPWUsdGhpcy5vcHRzPXQsdGhpcy5kZXB0aD1uLHRoaXMuY2hpbGRyZW49W10sdGhpcy5jaGlsZHJlbkJ5TmFtZT17fSx0aGlzLnBhdGhzPXt9LHRoaXMuc2l0ZT1zLmRlZmF1bHQuY3VycmVudCgpLHQucGF0aHx8KHQucGF0aD1lKSx0aGlzLnBhdGhzW3QucGF0aF09ITB9ZS5kZWZhdWx0PWx9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hYm91dCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocz17ZmFxT3ZlcnJpZGVuOigwLG4uZ3QpKCJzaXRlU2V0dGluZ3MuZmFxX3VybC5sZW5ndGgiLDApLGNvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsP0kxOG4udCgiYWJvdXQuY29udGFjdF9pbmZvIix7Y29udGFjdF9pbmZvOiI8YSBocmVmPSciK3RoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsKyInIHRhcmdldD0nX2JsYW5rJz4iK3RoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsKyI8L2E+In0pOnRoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfZW1haWw/STE4bi50KCJhYm91dC5jb250YWN0X2luZm8iLHtjb250YWN0X2luZm86dGhpcy5zaXRlU2V0dGluZ3MuY29udGFjdF9lbWFpbH0pOm51bGx9fSxvPXMscj0iY29udGFjdEluZm8iLGE9W3QuZGVmYXVsdF0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNvbnRhY3RJbmZvIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FjY291bnQtY3JlYXRlZC1lZGl0LWVtYWlsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgibmV3RW1haWwiLCJhY2NvdW50Q3JlYXRlZC5lbWFpbCIpLGE9cj17YWNjb3VudENyZWF0ZWQ6bnVsbCxuZXdFbWFpbDpudWxsLHN1Ym1pdERpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fSxhY3Rpb25zOntjaGFuZ2VFbWFpbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm5ld0VtYWlsOygwLGkuY2hhbmdlRW1haWwpKHtlbWFpbDp0fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJhY2NvdW50Q3JlYXRlZC5lbWFpbCIsdCksZS50cmFuc2l0aW9uVG9Sb3V0ZSgiYWNjb3VudC1jcmVhdGVkLnJlc2VudCIpfSkuY2F0Y2gocy5wb3B1cEFqYXhFcnJvcil9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvUm91dGUoImFjY291bnQtY3JlYXRlZC5pbmRleCIpfX19LGw9InN1Ym1pdERpc2FibGVkIix1PVtvXSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic3VibWl0RGlzYWJsZWQiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvYWNjb3VudC1jcmVhdGVkLWluZGV4IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3NlbmRBY3RpdmF0aW9uRW1haWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLG4ucmVzZW5kQWN0aXZhdGlvbkVtYWlsKSh0aGlzLmdldCgiYWNjb3VudENyZWF0ZWQudXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbigpe2UudHJhbnNpdGlvblRvUm91dGUoImFjY291bnQtY3JlYXRlZC5yZXNlbnQiKX0pfSxlZGl0QWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgiYWNjb3VudC1jcmVhdGVkLmVkaXQtZW1haWwiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hY3RpdmF0aW9uLWVkaXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi91c2VyLWFjdGl2YXRpb24iXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIsImN1cnJlbnRFbWFpbCIpLGE9e2xvZ2luOigwLG4uaW5qZWN0KSgpLGN1cnJlbnRFbWFpbDpudWxsLG5ld0VtYWlsOm51bGwscGFzc3dvcmQ6bnVsbCxzdWJtaXREaXNhYmxlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dH0sYWN0aW9uczp7Y2hhbmdlRW1haWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5sb2dpbjsoMCxvLmNoYW5nZUVtYWlsKSh7dXNlcm5hbWU6ZS5nZXQoImxvZ2luTmFtZSIpLHBhc3N3b3JkOmUuZ2V0KCJsb2dpblBhc3N3b3JkIiksZW1haWw6dGhpcy5uZXdFbWFpbH0pLnRoZW4oZnVuY3Rpb24oKXt0LnNob3dNb2RhbCgiYWN0aXZhdGlvbi1yZXNlbnQiLHt0aXRsZToibG9nX2luIn0pLnNldCgiY3VycmVudEVtYWlsIix0Lm5ld0VtYWlsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmZsYXNoKCgwLHMuZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKX0pfX19LGw9YSx1PSJzdWJtaXREaXNhYmxlZCIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInN1Ym1pdERpc2FibGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FkZC1wb3N0LW5vdGljZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL3RleHQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJzYXZpbmciLCJub3RpY2UiKSxsPWE9e3Bvc3Q6bnVsbCxyZXNvbHZlOm51bGwscmVqZWN0Om51bGwsbm90aWNlOm51bGwsc2F2aW5nOiExLGRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCgwLG4uaXNFbXB0eSkodCl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bm90aWNlOiIiLHNhdmluZzohMX0pfSxvbkNsb3NlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yZWplY3Q7ZSYmZSgpfSxhY3Rpb25zOntzZXROb3RpY2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgbj10aGlzLnBvc3QsaT10aGlzLnJlc29sdmUsZT10aGlzLnJlamVjdCxzPXRoaXMubm90aWNlO3RoaXMuc2V0UHJvcGVydGllcyh7cmVzb2x2ZTpudWxsLHJlamVjdDpudWxsfSksbi51cGRhdGVQb3N0RmllbGQoIm5vdGljZSIscykudGhlbihmdW5jdGlvbigpe3JldHVybigwLG8uY29va0FzeW5jKShzLHtmZWF0dXJlczp7b25lYm94OiExfX0pfSkudGhlbihmdW5jdGlvbihlKXtuLnNldFByb3BlcnRpZXMoe25vdGljZV90eXBlOiJjdXN0b20iLG5vdGljZV9hcmdzOmUuc3RyaW5nfSksaSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2goZnVuY3Rpb24oKXtlKCksdC5zZW5kKCJjbG9zZU1vZGFsIil9KX19fSx1PSJkaXNhYmxlZCIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FwcGxpY2F0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobyhyPXtzaG93VG9wOiEwLHNob3dGb290ZXI6ITEscm91dGVyOigwLG4uaW5qZWN0KSgpLGNhblNpZ25VcDpmdW5jdGlvbigpe3JldHVybiFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmludml0ZV9vbmx5JiZEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmFsbG93X25ld19yZWdpc3RyYXRpb25zJiYhRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfc3NvfSxsb2dpblJlcXVpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MubG9naW5fcmVxdWlyZWQmJiF0aGlzLmN1cnJlbnRVc2VyfSxzaG93Rm9vdGVyTmF2OmZ1bmN0aW9uKCl7cmV0dXJuKDAscy5pc0FwcFdlYnZpZXcpKCl8fCgwLHMuaXNpT1NQV0EpKCl9fSwiY2FuU2lnblVwIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImNhblNpZ25VcCIpLHIpLG8ociwibG9naW5SZXF1aXJlZCIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJsb2dpblJlcXVpcmVkIiksciksbyhyLCJzaG93Rm9vdGVyTmF2IixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInNob3dGb290ZXJOYXYiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hc3NvY2lhdGUtYWNjb3VudC1jb25maXJtIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQse2FjdGlvbnM6e2ZpbmlzaENvbm5lY3Q6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLG4uYWpheCkoe3VybDoiL2Fzc29jaWF0ZS8iK2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLm1vZGVsLnRva2VuKSx0eXBlOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnRyYW5zaXRpb25Ub1JvdXRlKCJwcmVmZXJlbmNlcy5hY2NvdW50Iix0LmN1cnJlbnRVc2VyLmZpbmREZXRhaWxzKCkpLHQuc2VuZCgiY2xvc2VNb2RhbCIpKTp0LnNldCgibW9kZWwuZXJyb3IiLGUuZXJyb3IpfSkuY2F0Y2goaS5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvYXV0aC10b2tlbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtleHBhbmRlZDohMSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLHMuYWpheCkoKDAsby51c2VyUGF0aCkodGhpcy5nZXQoImN1cnJlbnRVc2VyLnVzZXJuYW1lX2xvd2VyIikrIi9hY3Rpdml0eS5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7MDxlLmxlbmd0aCYmdC5zZXQoImxhdGVzdF9wb3N0IixlWzBdKX0pfSxhY3Rpb25zOnt0b2dnbGVFeHBhbmRlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJleHBhbmRlZCIsIXRoaXMuZXhwYW5kZWQpfSxoaWdobGlnaHRTZWN1cmU6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImNsb3NlTW9kYWwiKSwoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7dmFyIGU9JCgiLnByZWYtcGFzc3dvcmQiKTtlLmFkZENsYXNzKCJoaWdobGlnaHRlZCIpLGUub24oImFuaW1hdGlvbmVuZCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW1vdmVDbGFzcygiaGlnaGxpZ2h0ZWQiKX0pLHdpbmRvdy5zY3JvbGxUbyh7dG9wOmUub2Zmc2V0KCkudG9wLGJlaGF2aW9yOiJzbW9vdGgifSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hdmF0YXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwobD0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZCIsInVzZXIuc3lzdGVtX2F2YXRhcl91cGxvYWRfaWQiLCJ1c2VyLmdyYXZhdGFyX2F2YXRhcl91cGxvYWRfaWQiLCJ1c2VyLmN1c3RvbV9hdmF0YXJfdXBsb2FkX2lkIiksdT0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZCIsInVzZXIuc3lzdGVtX2F2YXRhcl90ZW1wbGF0ZSIsInVzZXIuZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlIiwidXNlci5jdXN0b21fYXZhdGFyX3RlbXBsYXRlIiksYz0oMCx0LmRlZmF1bHQpKCksYShkPXtzZWxlY3RlZFVwbG9hZElkOmZ1bmN0aW9uKGUsdCxuLGkpe3N3aXRjaChlKXtjYXNlInN5c3RlbSI6cmV0dXJuIHQ7Y2FzZSJncmF2YXRhciI6cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gaX19LHNlbGVjdGVkQXZhdGFyVGVtcGxhdGU6ZnVuY3Rpb24oZSx0LG4saSl7c3dpdGNoKGUpe2Nhc2Uic3lzdGVtIjpyZXR1cm4gdDtjYXNlImdyYXZhdGFyIjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiBpfX0sYWxsb3dBdmF0YXJVcGxvYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuYWxsb3dfdXBsb2FkZWRfYXZhdGFycyYmKDAsby5hbGxvd3NJbWFnZXMpKHRoaXMuY3VycmVudFVzZXIuc3RhZmYpfSxhY3Rpb25zOnt1cGxvYWRDb21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJzZWxlY3RlZCIsInVwbG9hZGVkIil9LHJlZnJlc2hHcmF2YXRhcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJncmF2YXRhclJlZnJlc2hEaXNhYmxlZCIsITApLCgwLHMuYWpheCkoIi91c2VyX2F2YXRhci8iK3RoaXMuZ2V0KCJ1c2VyLnVzZXJuYW1lIikrIi9yZWZyZXNoX2dyYXZhdGFyLmpzb24iLHttZXRob2Q6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXtlLmdyYXZhdGFyX3VwbG9hZF9pZD8odC5zZXQoImdyYXZhdGFyRmFpbGVkIiwhMSksdC51c2VyLnNldFByb3BlcnRpZXMoe2dyYXZhdGFyX2F2YXRhcl91cGxvYWRfaWQ6ZS5ncmF2YXRhcl91cGxvYWRfaWQsZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlOmUuZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlfSkpOnQuc2V0KCJncmF2YXRhckZhaWxlZCIsITApfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgiZ3JhdmF0YXJSZWZyZXNoRGlzYWJsZWQiLCExKX0pfSxzZWxlY3RBdmF0YXI6ZnVuY3Rpb24oZSl7dGhpcy51c2VyLnNlbGVjdEF2YXRhcihlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxzYXZlQXZhdGFyU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZWxlY3RlZFVwbG9hZElkLHQ9dGhpcy5zZWxlY3RlZDt0aGlzLnVzZXIucGlja0F2YXRhcihlLHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9fX0sInNlbGVjdGVkVXBsb2FkSWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlbGVjdGVkVXBsb2FkSWQiKSxkKSxhKGQsInNlbGVjdGVkQXZhdGFyVGVtcGxhdGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlbGVjdGVkQXZhdGFyVGVtcGxhdGUiKSxkKSxhKGQsImFsbG93QXZhdGFyVXBsb2FkIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJhbGxvd0F2YXRhclVwbG9hZCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2JhZGdlcy9pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoIm1vZGVsIiksbz1zPXtiYWRnZUdyb3VwczpmdW5jdGlvbihlKXt2YXIgdCxuPV8uc29ydEJ5KGUsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXQoImJhZGdlX2dyb3VwaW5nLnBvc2l0aW9uIiksbj1lLmdldCgiYmFkZ2VfdHlwZV9pZCIpLGk9ZS5nZXQoIm5hbWUiKTtyZXR1cm4oIjAwMCIrdCkuc2xpY2UoLTQpKygxMC1uKStpfSksaT1bXSxzPVtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZSl7dCE9PWUuYmFkZ2VfZ3JvdXBpbmdfaWQmJihzJiYwPHMubGVuZ3RoJiZpLnB1c2goe2JhZGdlczpzLGJhZGdlR3JvdXBpbmc6c1swXS5iYWRnZV9ncm91cGluZ30pLHM9W10sdD1lLmJhZGdlX2dyb3VwaW5nX2lkKSxzLnB1c2goZSl9KSxzJiYwPHMubGVuZ3RoJiZpLnB1c2goe2JhZGdlczpzLGJhZGdlR3JvdXBpbmc6c1swXS5iYWRnZV9ncm91cGluZ30pLGl9fSxyPSJiYWRnZUdyb3VwcyIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImJhZGdlR3JvdXBzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2JhZGdlcy9zaG93IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwiZGlzY291cnNlL21vZGVscy91c2VyLWJhZGdlIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoYT0oMCxvLmRlZmF1bHQpKCJ1c2VyQmFkZ2VzQWxsIiksbD0oMCxvLmRlZmF1bHQpKCJmaWx0ZXJlZExpc3QiKSx1PSgwLG8uZGVmYXVsdCkoInVzZXJuYW1lIiksYz0oMCxvLmRlZmF1bHQpKCJ1c2VybmFtZSIsIm1vZGVsLmdyYW50X2NvdW50IiwidXNlckJhZGdlcy5ncmFudF9jb3VudCIpLGQ9KDAsby5kZWZhdWx0KSgibW9kZWwuZ3JhbnRfY291bnQiLCJ1c2VyQmFkZ2VzLmdyYW50X2NvdW50IikscD0oMCxvLmRlZmF1bHQpKCJtb2RlbC5hbGxvd190aXRsZSIsIm1vZGVsLmhhc19iYWRnZSIsIm1vZGVsIiksbT0oMCxvLmRlZmF1bHQpKCJub01vcmVCYWRnZXMiLCJncmFudENvdW50IiwidXNlckJhZGdlcy5sZW5ndGgiKSxmPSgwLG8uZGVmYXVsdCkoInVzZXIiLCJtb2RlbC5ncmFudF9jb3VudCIpLGg9KDAsby5vYnNlcnZlcykoImNhbkxvYWRNb3JlIikscihiPXtxdWVyeVBhcmFtczpbInVzZXJuYW1lIl0sbm9Nb3JlQmFkZ2VzOiExLHVzZXJCYWRnZXM6bnVsbCxhcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxoaWRkZW5TZXRUaXRsZTohMCxmaWx0ZXJlZExpc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyQnkoImJhZGdlLmFsbG93X3RpdGxlIiwhMCl9LHNlbGVjdGFibGVVc2VyQmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybltuLmRlZmF1bHQuY3JlYXRlKHtiYWRnZTppLmRlZmF1bHQuY3JlYXRlKHtuYW1lOkkxOG4udCgiYmFkZ2VzLm5vbmUiKX0pfSldLmNvbmNhdChmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9KGUudW5pcUJ5KCJiYWRnZS5uYW1lIikpKX0sdXNlcjpmdW5jdGlvbihlKXtpZihlKXJldHVybiB0aGlzLnVzZXJCYWRnZXNbMF0uZ2V0KCJ1c2VyIil9LGdyYW50Q291bnQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0sb3RoZXJzQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSxjYW5TZWxlY3RUaXRsZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfYmFkZ2VzJiZlJiZ0fSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciB0LG49dGhpczt0aGlzLmxvYWRpbmdNb3JlfHwodGhpcy5zZXQoImxvYWRpbmdNb3JlIiwhMCksdD10aGlzLnVzZXJCYWRnZXMscy5kZWZhdWx0LmZpbmRCeUJhZGdlSWQodGhpcy5nZXQoIm1vZGVsLmlkIikse29mZnNldDp0Lmxlbmd0aCx1c2VybmFtZTp0aGlzLnVzZXJuYW1lfSkudGhlbihmdW5jdGlvbihlKXt0LnB1c2hPYmplY3RzKGUpLDA9PT10Lmxlbmd0aCYmbi5zZXQoIm5vTW9yZUJhZGdlcyIsITApfSkuZmluYWxseShmdW5jdGlvbigpe24uc2V0KCJsb2FkaW5nTW9yZSIsITEpfSkpfSx0b2dnbGVTZXRVc2VyVGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2dnbGVQcm9wZXJ0eSgiaGlkZGVuU2V0VGl0bGUiKX19LGNhbkxvYWRNb3JlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZSYmKG58fDApPHR9LGNhblNob3dPdGhlcnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJjE8dH0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuY2FuTG9hZE1vcmUpfX0sImZpbHRlcmVkTGlzdCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmlsdGVyZWRMaXN0IiksYikscihiLCJzZWxlY3RhYmxlVXNlckJhZGdlcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic2VsZWN0YWJsZVVzZXJCYWRnZXMiKSxiKSxyKGIsInVzZXIiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsInVzZXIiKSxiKSxyKGIsImdyYW50Q291bnQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImdyYW50Q291bnQiKSxiKSxyKGIsIm90aGVyc0NvdW50IixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJvdGhlcnNDb3VudCIpLGIpLHIoYiwiY2FuU2VsZWN0VGl0bGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblNlbGVjdFRpdGxlIiksYikscihiLCJjYW5Mb2FkTW9yZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY2FuTG9hZE1vcmUiKSxiKSxyKGIsImNhblNob3dPdGhlcnMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblNob3dPdGhlcnMiKSxiKSxyKGIsIl9zaG93Rm9vdGVyIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfc2hvd0Zvb3RlciIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Jhc2ljLW1vZGFsLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHttb2RhbDpudWxsfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ib29rbWFyayIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJAZW1iZXIvdGVtcGxhdGUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdSxjLGQscCxtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHk9e0FUX0RFU0tUT1A6ImF0X2Rlc2t0b3AiLExBVEVSX1RPREFZOiJsYXRlcl90b2RheSIsTkVYVF9CVVNJTkVTU19EQVk6Im5leHRfYnVzaW5lc3NfZGF5IixUT01PUlJPVzoidG9tb3Jyb3ciLE5FWFRfV0VFSzoibmV4dF93ZWVrIixORVhUX01PTlRIOiJuZXh0X21vbnRoIixDVVNUT006ImN1c3RvbSJ9O2UuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCwodT0oMCxpLmRlZmF1bHQpKCksYz0oMCxpLmRlZmF1bHQpKCksZD0oMCxpLmRlZmF1bHQpKCkscD0oMCxpLmRlZmF1bHQpKCksbT0oMCxpLmRlZmF1bHQpKCksZj0oMCxpLmRlZmF1bHQpKCksaD0oMCxpLmRlZmF1bHQpKCksYj0oMCxpLmRlZmF1bHQpKCksbChnPXtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLG5hbWU6bnVsbCxzZWxlY3RlZFJlbWluZGVyVHlwZTpudWxsLGNsb3NlV2l0aG91dFNhdmluZzohMSxpc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk6ITEsb25DbG9zZVdpdGhvdXRTYXZpbmc6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2Vycm9yTWVzc2FnZTpudWxsLG5hbWU6bnVsbCxzZWxlY3RlZFJlbWluZGVyVHlwZTpudWxsLGNsb3NlV2l0aG91dFNhdmluZzohMSxpc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk6ITF9KX0sb25DbG9zZTpmdW5jdGlvbigpe3RoaXMuY2xvc2VXaXRob3V0U2F2aW5nfHx0aGlzLmlzU2F2aW5nQm9va21hcmtNYW51YWxseXx8dGhpcy5zYXZlQm9va21hcmsoKSx0aGlzLm9uQ2xvc2VXaXRob3V0U2F2aW5nJiZ0aGlzLmNsb3NlV2l0aG91dFNhdmluZyYmdGhpcy5vbkNsb3NlV2l0aG91dFNhdmluZygpfSx1c2luZ01vYmlsZURldmljZTooMCxhLnJlYWRzKSgic2l0ZS5tb2JpbGVWaWV3Iiksc2hvd0Jvb2ttYXJrUmVtaW5kZXJDb250cm9sczohMSxyZW1pbmRlclR5cGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LHNob3dMYXRlclRvZGF5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubGF0ZXJUb2RheSgpLmlzU2FtZSh0aGlzLnRvbW9ycm93KCksImRhdGUiKX0sbGF0ZXJUb2RheUZvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5sYXRlcl90b2RheSIse2RhdGU6dGhpcy5sYXRlclRvZGF5KCkuZm9ybWF0KEkxOG4udCgiZGF0ZXMudGltZSIpKX0pKX0sdG9tb3Jyb3dGb3JtYXR0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmh0bWxTYWZlKShJMThuLnQoImJvb2ttYXJrcy5yZW1pbmRlcnMudG9tb3Jyb3ciLHtkYXRlOnRoaXMudG9tb3Jyb3coKS5mb3JtYXQoSTE4bi50KCJkYXRlcy50aW1lX3Nob3J0X2RheSIpKX0pKX0sbmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkOmZ1bmN0aW9uKCl7cmV0dXJuKDAsby5odG1sU2FmZSkoSTE4bi50KCJib29rbWFya3MucmVtaW5kZXJzLm5leHRfYnVzaW5lc3NfZGF5Iix7ZGF0ZTp0aGlzLm5leHRCdXNpbmVzc0RheSgpLmZvcm1hdChJMThuLnQoImRhdGVzLnRpbWVfc2hvcnRfZGF5IikpfSkpfSxuZXh0V2Vla0Zvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5uZXh0X3dlZWsiLHtkYXRlOnRoaXMubmV4dFdlZWsoKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXIiKSl9KSl9LG5leHRNb250aEZvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5uZXh0X21vbnRoIix7ZGF0ZTp0aGlzLm5leHRNb250aCgpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhciIpKX0pKX0sdXNlckhhc1RpbWV6b25lU2V0OmZ1bmN0aW9uKCl7cmV0dXJuIV8uaXNFbXB0eSh0aGlzLnVzZXJUaW1lem9uZSgpKX0sc2F2ZUJvb2ttYXJrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMucmVtaW5kZXJBdCgpLG49dD90LnRvSVNPU3RyaW5nKCk6bnVsbCxpPXtyZW1pbmRlcl90eXBlOnRoaXMuc2VsZWN0ZWRSZW1pbmRlclR5cGUscmVtaW5kZXJfYXQ6bixuYW1lOnRoaXMubmFtZSxwb3N0X2lkOnRoaXMubW9kZWwucG9zdElkfTtyZXR1cm4oMCxyLmFqYXgpKCIvYm9va21hcmtzIix7dHlwZToiUE9TVCIsZGF0YTppfSkudGhlbihmdW5jdGlvbigpe2UuYWZ0ZXJTYXZlJiZlLmFmdGVyU2F2ZShuKX0pfSxyZW1pbmRlckF0OmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFJlbWluZGVyVHlwZSlzd2l0Y2godGhpcy5zZWxlY3RlZFJlbWluZGVyVHlwZSl7Y2FzZSB5LkFUX0RFU0tUT1A6cmV0dXJuIiI7Y2FzZSB5LkxBVEVSX1RPREFZOnJldHVybiB0aGlzLmxhdGVyVG9kYXkoKTtjYXNlIHkuTkVYVF9CVVNJTkVTU19EQVk6cmV0dXJuIHRoaXMubmV4dEJ1c2luZXNzRGF5KCk7Y2FzZSB5LlRPTU9SUk9XOnJldHVybiB0aGlzLnRvbW9ycm93KCk7Y2FzZSB5Lk5FWFRfV0VFSzpyZXR1cm4gdGhpcy5uZXh0V2VlaygpO2Nhc2UgeS5ORVhUX01PTlRIOnJldHVybiB0aGlzLm5leHRNb250aCgpO2Nhc2UgeS5DVVNUT006cmV0dXJuIiJ9fSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0T2ZEYXkodGhpcy5ub3coKS5hZGQoNywiZGF5cyIpKX0sbmV4dE1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRPZkRheSh0aGlzLm5vdygpLmFkZCgxLCJtb250aCIpKX0sbmV4dEJ1c2luZXNzRGF5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ub3coKS5pc29XZWVrZGF5KCksdD1udWxsLHQ9NT09PWU/dGhpcy5ub3coKS5hZGQoMywiZGF5cyIpOjY9PT1lP3RoaXMubm93KCkuYWRkKDIsImRheXMiKTp0aGlzLm5vdygpLmFkZCgxLCJkYXkiKTtyZXR1cm4gdGhpcy5zdGFydE9mRGF5KHQpfSx0b21vcnJvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0T2ZEYXkodGhpcy5ub3coKS5hZGQoMSwiZGF5IikpfSxzdGFydE9mRGF5OmZ1bmN0aW9uKGUpe3JldHVybiBlLmhvdXIoOCkuc3RhcnRPZigiaG91ciIpfSx1c2VyVGltZXpvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlci50aW1lem9uZX0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuIG1vbWVudC50eih0aGlzLnVzZXJUaW1lem9uZSgpKX0sbGF0ZXJUb2RheTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubm93KCkuYWRkKDMsImhvdXJzIik7cmV0dXJuIGUubWludXRlcygpPDMwP2UubWludXRlcygzMCk6ZS5hZGQoMzAsIm1pbnV0ZXMiKS5zdGFydE9mKCJob3VyIil9LGFjdGlvbnM6e3NhdmVBbmRDbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5pc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk9ITAsdGhpcy5zYXZlQm9va21hcmsoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7KHQuaXNTYXZpbmdCb29rbWFya01hbnVhbGx5PSExLHMucG9wdXBBamF4RXJyb3IpKGUpfSl9LGNsb3NlV2l0aG91dFNhdmluZ0Jvb2ttYXJrOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZVdpdGhvdXRTYXZpbmc9ITAsdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LHNlbGVjdFJlbWluZGVyVHlwZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRSZW1pbmRlclR5cGUiLGUpfX19LCJyZW1pbmRlclR5cGVzIixbdV0sKHY9KHY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJyZW1pbmRlclR5cGVzIikpP3YudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB2fX0pLGcpLGwoZywic2hvd0xhdGVyVG9kYXkiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInNob3dMYXRlclRvZGF5IiksZyksbChnLCJsYXRlclRvZGF5Rm9ybWF0dGVkIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJsYXRlclRvZGF5Rm9ybWF0dGVkIiksZyksbChnLCJ0b21vcnJvd0Zvcm1hdHRlZCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywidG9tb3Jyb3dGb3JtYXR0ZWQiKSxnKSxsKGcsIm5leHRCdXNpbmVzc0RheUZvcm1hdHRlZCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkIiksZyksbChnLCJuZXh0V2Vla0Zvcm1hdHRlZCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dFdlZWtGb3JtYXR0ZWQiKSxnKSxsKGcsIm5leHRNb250aEZvcm1hdHRlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dE1vbnRoRm9ybWF0dGVkIiksZyksbChnLCJ1c2VySGFzVGltZXpvbmVTZXQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInVzZXJIYXNUaW1lem9uZVNldCIpLGcpLGcpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2J1bGstbm90aWZpY2F0aW9uLWxldmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKG89e3RvcGljQnVsa0FjdGlvbnM6KDAsaS5pbmplY3QpKCksbm90aWZpY2F0aW9uTGV2ZWxJZDpudWxsLG5vdGlmaWNhdGlvbkxldmVsczpmdW5jdGlvbigpe3JldHVybiBzLnRvcGljTGV2ZWxzLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZS5pZC50b1N0cmluZygpLG5hbWU6STE4bi50KCJ0b3BpYy5ub3RpZmljYXRpb25zLiIrZS5rZXkrIi50aXRsZSIpLGRlc2NyaXB0aW9uOkkxOG4udCgidG9waWMubm90aWZpY2F0aW9ucy4iK2Uua2V5KyIuZGVzY3JpcHRpb24iKX19KX0sZGlzYWJsZWQ6KDAsbi5lbXB0eSkoIm5vdGlmaWNhdGlvbkxldmVsSWQiKSxhY3Rpb25zOntjaGFuZ2VOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbigpe3RoaXMudG9waWNCdWxrQWN0aW9ucy5wZXJmb3JtQW5kUmVmcmVzaCh7dHlwZToiY2hhbmdlX25vdGlmaWNhdGlvbl9sZXZlbCIsbm90aWZpY2F0aW9uX2xldmVsX2lkOnRoaXMubm90aWZpY2F0aW9uTGV2ZWxJZH0pfX19LHI9byxhPSJub3RpZmljYXRpb25MZXZlbHMiLGw9W3QuZGVmYXVsdF0sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIm5vdGlmaWNhdGlvbkxldmVscyIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9jaGFuZ2Utb3duZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiwibmV3X3VzZXIiKSxjPXt0b3BpY0NvbnRyb2xsZXI6KDAsby5pbmplY3QpKCJ0b3BpYyIpLHNhdmluZzohMSxuZXdfdXNlcjpudWxsLHNlbGVjdGVkUG9zdHNDb3VudDooMCxpLmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHNDb3VudCIpLHNlbGVjdGVkUG9zdHNVc2VybmFtZTooMCxpLmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHNVc2VybmFtZSIpLGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCgwLG4uaXNFbXB0eSkodCl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLG5ld191c2VyOiIifSl9LGFjdGlvbnM6e2NoYW5nZU93bmVyc2hpcE9mUG9zdHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgdD17cG9zdF9pZHM6dGhpcy5nZXQoInRvcGljQ29udHJvbGxlci5zZWxlY3RlZFBvc3RJZHMiKSx1c2VybmFtZTp0aGlzLm5ld191c2VyfTtyZXR1cm4gbC5kZWZhdWx0LmNoYW5nZU93bmVycyh0aGlzLmdldCgidG9waWNDb250cm9sbGVyLm1vZGVsLmlkIiksdCkudGhlbihmdW5jdGlvbigpe2Uuc2VuZCgiY2xvc2VNb2RhbCIpLGUudG9waWNDb250cm9sbGVyLnNlbmQoImRlc2VsZWN0QWxsIiksZS5nZXQoInRvcGljQ29udHJvbGxlci5tdWx0aVNlbGVjdCIpJiZlLnRvcGljQ29udHJvbGxlci5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpLCgwLHMubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LnJvdXRlVG8oZS5nZXQoInRvcGljQ29udHJvbGxlci5tb2RlbC51cmwiKSl9KX0sZnVuY3Rpb24oKXtlLmZsYXNoKEkxOG4udCgidG9waWMuY2hhbmdlX293bmVyLmVycm9yIiksImFsZXJ0LWVycm9yIiksZS5zZXQoInNhdmluZyIsITEpfSksITF9fX0sZD1jLHA9ImJ1dHRvbkRpc2FibGVkIixtPVt1XSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiYnV0dG9uRGlzYWJsZWQiKSxoPWMsYj17fSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2JbZV09ZltlXX0pLGIuZW51bWVyYWJsZT0hIWIuZW51bWVyYWJsZSxiLmNvbmZpZ3VyYWJsZT0hIWIuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gYnx8Yi5pbml0aWFsaXplcikmJihiLndyaXRhYmxlPSEwKSxiPW0uc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoZCxwLGUpfHxlfSxiKSxoJiZ2b2lkIDAhPT1iLmluaXRpYWxpemVyJiYoYi52YWx1ZT1iLmluaXRpYWxpemVyP2IuaW5pdGlhbGl6ZXIuY2FsbChoKTp2b2lkIDAsYi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWIuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxwLGIpLGI9bnVsbCksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY2hhbmdlLXRpbWVzdGFtcCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxpLG4scyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LCh1PSgwLHQuZGVmYXVsdCkoInNhdmluZyIpLGM9KDAsdC5kZWZhdWx0KSgiZGF0ZSIsInRpbWUiKSxkPSgwLHQuZGVmYXVsdCkoImNyZWF0ZWRBdCIpLHA9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiwiZGF0ZSIsInZhbGlkVGltZXN0YW1wIiksbChtPXt0b3BpY0NvbnRyb2xsZXI6KDAscy5pbmplY3QpKCJ0b3BpYyIpLHNhdmluZzohMSxkYXRlOiIiLHRpbWU6IiIsYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInRvcGljLmNoYW5nZV90aW1lc3RhbXAuYWN0aW9uIil9LGNyZWF0ZWRBdDpmdW5jdGlvbihlLHQpe3JldHVybiBtb21lbnQoZSsiICIrdCwiWVlZWS1NTS1ERCBISDptbTpzcyIpfSx2YWxpZFRpbWVzdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gbW9tZW50KCkuZGlmZihlLCJtaW51dGVzIik8MH0sYnV0dG9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiEoIWUmJiFuKXx8KDAsaS5pc0VtcHR5KSh0KX0sb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImRhdGUiLG1vbWVudCgpLmZvcm1hdCgiWVlZWS1NTS1ERCIpKX0sYWN0aW9uczp7Y2hhbmdlVGltZXN0YW1wOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgic2F2aW5nIiwhMCk7dmFyIHQ9dGhpcy50b3BpY0NvbnRyb2xsZXIubW9kZWw7cmV0dXJuIGEuZGVmYXVsdC5jaGFuZ2VUaW1lc3RhbXAodC5pZCx0aGlzLmNyZWF0ZWRBdC51bml4KCkpLnRoZW4oZnVuY3Rpb24oKXtlLnNlbmQoImNsb3NlTW9kYWwiKSxlLnNldFByb3BlcnRpZXMoe2RhdGU6IiIsdGltZToiIixzYXZpbmc6ITF9KSwoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVmYXVsdC5yb3V0ZVRvKHQudXJsKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZS5mbGFzaChJMThuLnQoInRvcGljLmNoYW5nZV90aW1lc3RhbXAuZXJyb3IiKSwiYWxlcnQtZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInNhdmluZyIsITEpfSksITF9fX0sImJ1dHRvblRpdGxlIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJidXR0b25UaXRsZSIpLG0pLGwobSwiY3JlYXRlZEF0IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjcmVhdGVkQXQiKSxtKSxsKG0sInZhbGlkVGltZXN0YW1wIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJ2YWxpZFRpbWVzdGFtcCIpLG0pLGwobSwiYnV0dG9uRGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImJ1dHRvbkRpc2FibGVkIiksbSksbSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY29tcG9zZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCJdLGZ1bmN0aW9uKGUsaSx0LG4scyxvLHUscixsLGMsYSxkLHAsbSxmLGgsYixnLHYseSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRvZ2dsZUNoZWNrRHJhZnRQb3B1cD1mdW5jdGlvbihlKXtHPWV9LGUuY2xlYXJQb3B1cE1lbnVPcHRpb25zQ2FsbGJhY2s9ZnVuY3Rpb24oKXtWLmxlbmd0aD0wfSxlLmFkZFBvcHVwTWVudU9wdGlvbnNDYWxsYmFjaz1mdW5jdGlvbihlKXtWLnB1c2goZSl9O3ZhciB3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsSz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBXKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBWPVtdLEc9InRlc3QiPT09IWcuZGVmYXVsdC5lbnZpcm9ubWVudDtlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZCgodz0oMCxhLm9uKSgiaW5pdCIpLHg9KDAsYS5kZWZhdWx0KSgic2hvd1ByZXZpZXciKSxrPSgwLGEub2JzZXJ2ZXMpKCJzaG93UHJldmlldyIpLFA9KDAsYS5kZWZhdWx0KSgibW9kZWwucmVwbHlpbmdUb1RvcGljIiwibW9kZWwuY3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsIm1vZGVsLnRhcmdldFJlY2lwaWVudHMiLCJtb2RlbC5jb21wb3NlU3RhdGUiKSxqPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmNhbkVkaXRUaXRsZSIsIm1vZGVsLmNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2UiKSxUPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmVkaXRpbmdQb3N0IiwibW9kZWwudG9waWMuZGV0YWlscy5jYW5fZWRpdCIpLEU9KDAsYS5kZWZhdWx0KSgibW9kZWwuZWRpdGluZ1Bvc3QiLCJtb2RlbC50b3BpYy5jYW5FZGl0VGFncyIpLE89KDAsYS5kZWZhdWx0KSgiY2FuV2hpc3BlciIsInJlcGx5aW5nVG9XaGlzcGVyIiksUz0oMCxhLmRlZmF1bHQpKCJtb2RlbC5wb3N0IiksQz0oMCxhLmRlZmF1bHQpKCJtb2RlbC5hY3Rpb24iLCJpc1doaXNwZXJpbmciKSxNPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmFjdGlvbiIsImlzV2hpc3BlcmluZyIsIm1vZGVsLmVkaXRDb25mbGljdCIpLEQ9KDAsYS5kZWZhdWx0KSgiaXNTdGFmZlVzZXIiLCJtb2RlbC5hY3Rpb24iKSxJPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmNvbXBvc2VTdGF0ZSIsIm1vZGVsLmNyZWF0aW5nVG9waWMiLCJtb2RlbC5wb3N0IiksTD0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwibW9kZWwudGFyZ2V0UmVjaXBpZW50cyIpLEE9KDAsYS5kZWZhdWx0KSgibW9kZWwudG9waWMudGl0bGUiKSxOPSgwLGEuZGVmYXVsdCkoKSx6PSgwLGEub2JzZXJ2ZXMpKCJtb2RlbC5yZXBseSIsIm1vZGVsLnRpdGxlIiksVT0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jYXRlZ29yeUlkIiwibGFzdFZhbGlkYXRlZEF0IiksRj0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jYXRlZ29yeSIsIm1vZGVsLnRhZ3MiLCJsYXN0VmFsaWRhdGVkQXQiKSxCPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmFjdGlvbiIpLFI9KDAsYS5kZWZhdWx0KSgibW9kZWwuY29tcG9zZVN0YXRlIiksXyhIPXt0b3BpY0NvbnRyb2xsZXI6KDAsby5pbmplY3QpKCJ0b3BpYyIpLHJvdXRlcjooMCxzLmluamVjdCkoKSxjaGVja2VkTWVzc2FnZXM6ITEsbWVzc2FnZUNvdW50Om51bGwsc2hvd0VkaXRSZWFzb246ITEsZWRpdFJlYXNvbjpudWxsLHNjb3BlZENhdGVnb3J5SWQ6bnVsbCxsYXN0VmFsaWRhdGVkQXQ6bnVsbCxpc1VwbG9hZGluZzohMSxhbGxvd1VwbG9hZDohMSx1cGxvYWRJY29uOiJ1cGxvYWQiLHRvcGljOm51bGwsbGlua0xvb2t1cDpudWxsLHNob3dQcmV2aWV3OiEwLGZvcmNlUHJldmlldzooMCx0LmFuZCkoInNpdGUubW9iaWxlVmlldyIsInNob3dQcmV2aWV3Iiksd2hpc3Blck9yVW5saXN0VG9waWM6KDAsdC5vcikoImlzV2hpc3BlcmluZyIsIm1vZGVsLnVubGlzdFRvcGljIiksY2F0ZWdvcmllczooMCx0LmFsaWFzKSgic2l0ZS5jYXRlZ29yaWVzTGlzdCIpLF9zZXR1cFByZXZpZXc6ZnVuY3Rpb24oKXt2YXIgZT0hdGhpcy5zaXRlLm1vYmlsZVZpZXcmJih0aGlzLmtleVZhbHVlU3RvcmUuZ2V0KCJjb21wb3Nlci5zaG93UHJldmlldyIpfHwidHJ1ZSIpO3RoaXMuc2V0KCJzaG93UHJldmlldyIsInRydWUiPT09ZSl9LHRvZ2dsZVRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJjb21wb3Nlci5oaWRlX3ByZXZpZXciKTpJMThuLnQoImNvbXBvc2VyLnNob3dfcHJldmlldyIpfSxzaG93UHJldmlld0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5rZXlWYWx1ZVN0b3JlLnNldCh7a2V5OiJjb21wb3Nlci5zaG93UHJldmlldyIsdmFsdWU6dGhpcy5zaG93UHJldmlld30pfSxmb2N1c1RhcmdldDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMuaXNJT1MmJiEoMCxwLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCk/Im5vbmUiOihuPW58fCIiLHQmJjA9PT1uLmxlbmd0aHx8bj09PXRoaXMuY3VycmVudFVzZXIudXNlcm5hbWU/InVzZXJuYW1lcyI6ZT8icmVwbHkiOmk9PT1jLmRlZmF1bHQuRlVMTFNDUkVFTj8iZWRpdG9yIjoidGl0bGUiKX0sc2hvd1Rvb2xiYXI6KDAsdi5jb21wdXRlZCkoe2dldDpmdW5jdGlvbigpe3ZhciBlPSgwLGQuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKS5nZXQoInRvb2xiYXItZW5hYmxlZCIpO3JldHVybiB2b2lkIDA9PT10aGlzLl90b29sYmFyRW5hYmxlZCYmdm9pZCAwPT09ZSYmKHRoaXMuX3Rvb2xiYXJFbmFibGVkPTM3MDx3aW5kb3cuaW5uZXJXaWR0aCYmIXRoaXMuY2FwYWJpbGl0aWVzLmlzQW5kcm9pZCksdGhpcy5fdG9vbGJhckVuYWJsZWR8fCJ0cnVlIj09PWV9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLGQuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKTtyZXR1cm4gdGhpcy5fdG9vbGJhckVuYWJsZWQ9dCxuLnNldCh7a2V5OiJ0b29sYmFyLWVuYWJsZWQiLHZhbHVlOnQ/InRydWUiOiJmYWxzZSJ9KSx0fX0pLHRvcGljTW9kZWw6KDAsdC5hbGlhcykoInRvcGljQ29udHJvbGxlci5tb2RlbCIpLGNhbkVkaXRUYWdzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZS5jYW5fdGFnX3RvcGljcyYmZSYmIXQmJighdGhpcy5nZXQoIm1vZGVsLnRvcGljLmlzUHJpdmF0ZU1lc3NhZ2UiKXx8dGhpcy5zaXRlLmNhbl90YWdfcG1zKX0sZGlzYWJsZUNhdGVnb3J5Q2hvb3NlcjpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYhdH0sZGlzYWJsZVRhZ3NDaG9vc2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxpc1N0YWZmVXNlcjooMCx0LnJlYWRzKSgiY3VycmVudFVzZXIuc3RhZmYiKSxjYW5Vbmxpc3RUb3BpYzooMCx0LmFuZCkoIm1vZGVsLmNyZWF0aW5nVG9waWMiLCJpc1N0YWZmVXNlciIpLHNob3dXaGlzcGVyVG9nZ2xlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxyZXBseWluZ1RvV2hpc3BlcjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5wb3N0X3R5cGU9PT10aGlzLnNpdGUucG9zdF90eXBlcy53aGlzcGVyfSxpc1doaXNwZXJpbmc6KDAsdC5vcikoInJlcGx5aW5nVG9XaGlzcGVyIiwibW9kZWwud2hpc3BlciIpLHNhdmVJY29uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ImZhci1leWUtc2xhc2giOmMuU0FWRV9JQ09OU1tlXX0sc2F2ZUxhYmVsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj8iY29tcG9zZXIub3ZlcndyaXRlX2VkaXQiOnQ/ImNvbXBvc2VyLmNyZWF0ZV93aGlzcGVyIjpjLlNBVkVfTEFCRUxTW2VdfSxjYW5XaGlzcGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV93aGlzcGVycyYmZSYmYy5kZWZhdWx0LlJFUExZPT09dH0sX3NldHVwUG9wdXBNZW51T3B0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUodGhpcyk7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDoodm9pZCAwPT09dC5jb25kaXRpb24/dC5jb25kaXRpb249ITA6ImJvb2xlYW4iPT10eXBlb2YgdC5jb25kaXRpb258fCh0LmNvbmRpdGlvbj10aGlzLmdldCh0LmNvbmRpdGlvbikpLHQpfSxwb3B1cE1lbnVPcHRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoIm9wZW4iPT09ZXx8ImZ1bGxzY3JlZW4iPT09ZSl7dmFyIG49W107cmV0dXJuIG4ucHVzaCh0aGlzLl9zZXR1cFBvcHVwTWVudU9wdGlvbihmdW5jdGlvbigpe3JldHVybnthY3Rpb246InRvZ2dsZUludmlzaWJsZSIsaWNvbjoiZmFyLWV5ZS1zbGFzaCIsbGFiZWw6ImNvbXBvc2VyLnRvZ2dsZV91bmxpc3RlZCIsY29uZGl0aW9uOiJjYW5Vbmxpc3RUb3BpYyJ9fSkpLG4ucHVzaCh0aGlzLl9zZXR1cFBvcHVwTWVudU9wdGlvbihmdW5jdGlvbigpe3JldHVybnthY3Rpb246InRvZ2dsZVdoaXNwZXIiLGljb246ImZhci1leWUtc2xhc2giLGxhYmVsOiJjb21wb3Nlci50b2dnbGVfd2hpc3BlciIsY29uZGl0aW9uOiJzaG93V2hpc3BlclRvZ2dsZSJ9fSkpLG4uY29uY2F0KFYubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9zZXR1cFBvcHVwTWVudU9wdGlvbihlKX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX19LHNob3dXYXJuaW5nOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpKXJldHVybiExO3ZhciBuPXRoaXMuZ2V0KCJtb2RlbC5oYXNUYXJnZXRHcm91cHMiKTtyZXR1cm4hKDAsaS5pc0VtcHR5KSh0KSYmMT09PXQuc3BsaXQoIiwiKS5sZW5ndGgmJiFuJiZlfSxkcmFmdFRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybigwLGYuZW1vamlVbmVzY2FwZSkoKDAscC5lc2NhcGVFeHByZXNzaW9uKShlKSl9fSwiYWxsb3dVcGxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbS5hdXRob3JpemVzT25lT3JNb3JlRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZil9KSxfKEgsInVwbG9hZEljb24iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbS51cGxvYWRJY29uKSh0aGlzLmN1cnJlbnRVc2VyLnN0YWZmKX0pLF8oSCwiYWN0aW9ucyIse3RvZ2dsZVByZXZpZXc6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJzaG93UHJldmlldyIpfSxjbG9zZUNvbXBvc2VyOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfSxvcGVuQ29tcG9zZXI6ZnVuY3Rpb24oZSxvLHIpe3ZhciBhPXRoaXM7dGhpcy5vcGVuKGUpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT12b2lkIDA7byYmKGU9by51cmwpLCFvJiZyJiYoZT1yLnVybCk7dmFyIHQsbixpLHM9dm9pZCAwO3ImJihzPXIudGl0bGUpLGUmJnMmJihlPWxvY2F0aW9uLnByb3RvY29sKyIvLyIrbG9jYXRpb24uaG9zdCtlLHQ9IlsiK0hhbmRsZWJhcnMuZXNjYXBlRXhwcmVzc2lvbihzKSsiXSgiK2UrIikiLG49STE4bi50KCJwb3N0LmNvbnRpbnVlX2Rpc2N1c3Npb24iLHtwb3N0TGluazp0fSksKGk9YS5nZXQoIm1vZGVsLnJlcGx5IikpJiZpLmluY2x1ZGVzKG4pfHxhLm1vZGVsLnByZXBlbmRUZXh0KG4se25ld19saW5lOiEwfSkpfSl9LGNhbmNlbFVwbG9hZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJtb2RlbC51cGxvYWRDYW5jZWxsZWQiLCEwKX0sb25Qb3B1cE1lbnVBY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy5zZW5kKGUpfSxzdG9yZVRvb2xiYXJTdGF0ZTpmdW5jdGlvbihlKXt0aGlzLnNldCgidG9vbGJhckV2ZW50IixlKX0sdHlwZWQ6ZnVuY3Rpb24oKXt0aGlzLmNoZWNrUmVwbHlMZW5ndGgoKSx0aGlzLm1vZGVsLnR5cGluZygpfSxjYW5jZWxsZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImhpdEVzYyIpfSxhZGRMaW5rTG9va3VwOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJsaW5rTG9va3VwIixlKX0sYWZ0ZXJSZWZyZXNoOmZ1bmN0aW9uKGUpe3ZhciBsLHU9dGhpcyxjPXRoaXMuZ2V0KCJtb2RlbC50b3BpYyIpLGQ9dGhpcy5saW5rTG9va3VwO2MmJmQmJjEhPT1jLnBvc3RzX2NvdW50JiYobD10aGlzLmdldCgibW9kZWwucG9zdCIpLCQoImFbaHJlZl0iLGUpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLnByb3AoImhyZWYiKTtpZihuJiZuLmxlbmd0aCl7dmFyIGk9ZC5jaGVjayhsLG4pLHM9SyhpLDIpLG89c1swXSxyPXNbMV07aWYobyl7dmFyIGE9STE4bi50KCJjb21wb3Nlci5kdXBsaWNhdGVfbGluayIse2RvbWFpbjpyLmRvbWFpbix1c2VybmFtZTpyLnVzZXJuYW1lLHBvc3RfdXJsOmMudXJsRm9yUG9zdE51bWJlcihyLnBvc3RfbnVtYmVyKSxhZ286KDAsaC5zaG9ydERhdGUpKHIucG9zdGVkX2F0KX0pO3JldHVybiB1LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHtleHRyYUNsYXNzOiJjdXN0b20tYm9keSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsYm9keTphfSksITF9fXJldHVybiEwfSkpfSx0b2dnbGVXaGlzcGVyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgibW9kZWwud2hpc3BlciIpfSx0b2dnbGVJbnZpc2libGU6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJtb2RlbC51bmxpc3RUb3BpYyIpfSx0b2dnbGVUb29sYmFyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd1Rvb2xiYXIiKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2VBdXRvY29tcGxldGUoKSwoMCxpLmlzRW1wdHkpKHRoaXMuZ2V0KCJtb2RlbC5yZXBseSIpKSYmKDAsaS5pc0VtcHR5KSh0aGlzLmdldCgibW9kZWwudGl0bGUiKSk/dGhpcy5jbG9zZSgpOnRoaXMuZ2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiKT09PWMuZGVmYXVsdC5PUEVOfHx0aGlzLmdldCgibW9kZWwuY29tcG9zZVN0YXRlIik9PT1jLmRlZmF1bHQuRlVMTFNDUkVFTj90aGlzLnNocmluaygpOnRoaXMuY2FuY2VsQ29tcG9zZXIoKSwhMX0sZnVsbHNjcmVlbkNvbXBvc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9nZ2xlRnVsbHNjcmVlbigpLCExfSxpbXBvcnRRdW90ZTpmdW5jdGlvbihuKXt2YXIgZSx0LGk9dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSxzPXRoaXMuZ2V0KCJtb2RlbC5wb3N0LmlkIik7aWYoIXMmJmkmJihzPWkuZ2V0KCJzdHJlYW0uZmlyc3RPYmplY3QiKSksdGhpcy5nZXQoIm1vZGVsLmVkaXRpbmdQb3N0IikmJighKGU9dGhpcy5nZXQoIm1vZGVsLnBvc3QucmVwbHlfdG9fcG9zdF9udW1iZXIiKSl8fCh0PWkucG9zdHMuZmluZEJ5KCJwb3N0X251bWJlciIsZSkpJiYocz10LmlkKSkscyl7dGhpcy5zZXQoIm1vZGVsLmxvYWRpbmciLCEwKTt2YXIgbz10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmQoInBvc3QiLHMpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ci5kZWZhdWx0LmJ1aWxkKGUsZS5yYXcse3JhdzohMCxmdWxsOiEwfSk7bi5hZGRUZXh0KHQpLG8uc2V0KCJtb2RlbC5sb2FkaW5nIiwhMSl9KX19LGNhbmNlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJ0b3BpYy5pZCIpIT09dGhpcy5nZXQoIm1vZGVsLnRvcGljLmlkIik7dGhpcy5jYW5jZWxDb21wb3NlcihlKX0sc2F2ZTpmdW5jdGlvbigpe3RoaXMuc2F2ZSgpfSxkaXNwbGF5RWRpdFJlYXNvbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG93RWRpdFJlYXNvbiIsITApfSxoaXRFc2M6ZnVuY3Rpb24oKXsxIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmVtb2ppLXBpY2tlci1tb2RhbC5mYWRlSW4iKS5sZW5ndGg/MDwodGhpcy5tZXNzYWdlQ291bnR8fDApP3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyLW1lc3NhZ2VzOmNsb3NlIik6KHRoaXMuZ2V0KCJtb2RlbC52aWV3T3BlbiIpfHx0aGlzLmdldCgibW9kZWwudmlld0Z1bGxzY3JlZW4iKSkmJnRoaXMuc2hyaW5rKCk6dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiZW1vamktcGlja2VyOmNsb3NlIil9LG9wZW5JZkRyYWZ0OmZ1bmN0aW9uKCl7dGhpcy5nZXQoIm1vZGVsLnZpZXdEcmFmdCIpJiZ0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTil9LGdyb3Vwc01lbnRpb25lZDpmdW5jdGlvbihlKXt2YXIgaT10aGlzO3RoaXMuZ2V0KCJtb2RlbC5jcmVhdGluZ1ByaXZhdGVNZXNzYWdlIil8fHRoaXMuZ2V0KCJtb2RlbC50b3BpYy5pc1ByaXZhdGVNZXNzYWdlIil8fGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD12b2lkIDAsbj1EaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iK2UubmFtZSsiL21lbWJlcnMiKTtlLm1heF9tZW50aW9uczxlLnVzZXJfY291bnQ/dD1JMThuLnQoImNvbXBvc2VyLmdyb3VwX21lbnRpb25lZF9saW1pdCIse2dyb3VwOiJAIitlLm5hbWUsbWF4OmUubWF4X21lbnRpb25zLGdyb3VwX2xpbms6bn0pOjA8ZS51c2VyX2NvdW50JiYodD1JMThuLnQoImNvbXBvc2VyLmdyb3VwX21lbnRpb25lZCIse2dyb3VwOiJAIitlLm5hbWUsY291bnQ6ZS51c2VyX2NvdW50LGdyb3VwX2xpbms6bn0pKSx0JiZpLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHtleHRyYUNsYXNzOiJjdXN0b20tYm9keSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsYm9keTp0fSl9KX0sY2Fubm90U2VlTWVudGlvbjpmdW5jdGlvbihlKXt2YXIgaT10aGlzO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1pLmdldCgibW9kZWwudG9waWMuaXNQcml2YXRlTWVzc2FnZSIpPyJjb21wb3Nlci5jYW5ub3Rfc2VlX21lbnRpb24ucHJpdmF0ZSI6ImNvbXBvc2VyLmNhbm5vdF9zZWVfbWVudGlvbi5jYXRlZ29yeSIsbj1JMThuLnQodCx7dXNlcm5hbWU6IkAiK2UubmFtZX0pO2kuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyLW1lc3NhZ2VzOmNyZWF0ZSIse2V4dHJhQ2xhc3M6ImN1c3RvbS1ib2R5Iix0ZW1wbGF0ZU5hbWU6ImN1c3RvbS1ib2R5Iixib2R5Om59KX0pfX0pLF8oSCwiZGlzYWJsZVN1Ym1pdCIsKDAsdC5vcikoIm1vZGVsLmxvYWRpbmciLCJpc1VwbG9hZGluZyIpKSxfKEgsInNhdmUiLGZ1bmN0aW9uKGUpe3ZhciBzPXRoaXM7aWYoIXRoaXMuZGlzYWJsZVN1Ym1pdCl7dGhpcy5zaG93V2FybmluZ3x8dGhpcy5zZXQoIm1vZGVsLmlzV2FybmluZyIsITEpO3ZhciBvPXRoaXMubW9kZWw7aWYoIW8uY2FudFN1Ym1pdFBvc3Qpe2lmKG8uc2V0KCJkaXNhYmxlRHJhZnRzIiwhMCksIWUmJm8ucmVwbHlpbmdUb1RvcGljKXt2YXIgdD10aGlzLnRvcGljTW9kZWw7aWYoIXQpcmV0dXJuIHZvaWQgdGhpcy5zYXZlKCEwKTtpZih0LmlkIT09by5nZXQoInRvcGljLmlkIikpe3ZhciBuPUkxOG4udCgiY29tcG9zZXIucG9zdGluZ19ub3Rfb25fdG9waWMiKSxpPVt7bGFiZWw6STE4bi50KCJjb21wb3Nlci5jYW5jZWwiKSxjbGFzczoiZC1tb2RhbC1jYW5jZWwiLGxpbms6ITB9XTtyZXR1cm4gaS5wdXNoKHtsYWJlbDpJMThuLnQoImNvbXBvc2VyLnJlcGx5X2hlcmUiKSsiPGJyLz48ZGl2IGNsYXNzPSd0b3BpYy10aXRsZSBvdmVyZmxvdy1lbGxpcHNpcyc+Iit0LmdldCgiZmFuY3lUaXRsZSIpKyI8L2Rpdj4iLGNsYXNzOiJidG4gYnRuLXJlcGx5LWhlcmUiLGNhbGxiYWNrOmZ1bmN0aW9uKCl7by5zZXRQcm9wZXJ0aWVzKHt0b3BpYzp0LHBvc3Q6bnVsbH0pLHMuc2F2ZSghMCl9fSksaS5wdXNoKHtsYWJlbDpJMThuLnQoImNvbXBvc2VyLnJlcGx5X29yaWdpbmFsIikrIjxici8+PGRpdiBjbGFzcz0ndG9waWMtdGl0bGUgb3ZlcmZsb3ctZWxsaXBzaXMnPiIrdGhpcy5nZXQoIm1vZGVsLnRvcGljLmZhbmN5VGl0bGUiKSsiPC9kaXY+IixjbGFzczoiYnRuLXByaW1hcnkgYnRuLXJlcGx5LW9uLW9yaWdpbmFsIixjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBzLnNhdmUoITApfX0pLHZvaWQgYm9vdGJveC5kaWFsb2cobixpLHtjbGFzc2VzOiJyZXBseS13aGVyZS1tb2RhbCJ9KX19dmFyIHI9ITEsYT17fTskKCIjcmVwbHktY29udHJvbCAuZC1lZGl0b3ItcHJldmlldyBpbWciKS5lYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIG49JCh0KSxpPW4ucHJvcCgic3JjIik7aSYmaS5sZW5ndGgmJihhW2ldPXt3aWR0aDpuLndpZHRoKCksaGVpZ2h0Om4uaGVpZ2h0KCl9KX0pO3ZhciBsPW8uc2F2ZSh7aW1hZ2VTaXplczphLGVkaXRSZWFzb246dGhpcy5lZGl0UmVhc29ufSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtpZigiZW5xdWV1ZWQiPT09ZS5yZXNwb25zZUpzb24uYWN0aW9uKXJldHVybiBzLnNlbmQoInBvc3RXYXNFbnF1ZXVlZCIsZS5yZXNwb25zZUpzb24pLCFlLnJlc3BvbnNlSnNvbi5wZW5kaW5nX3Bvc3R8fCh0PXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIubW9kZWwucGVuZGluZ19wb3N0cyIpKSYmdC5wdXNoT2JqZWN0KGUucmVzcG9uc2VKc29uLnBlbmRpbmdfcG9zdCkscy5kZXN0cm95RHJhZnQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHMuY2xvc2UoKSxzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIiksZX0pO2lmKHMuZ2V0KCJtb2RlbC5lZGl0aW5nUG9zdCIpPyhzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6cGFyc2VJbnQoZS5yZXNwb25zZUpzb24uaWQsMTApfSksMT09PWUucmVzcG9uc2VKc29uLnBvc3QucG9zdF9udW1iZXImJnMuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjp1cGRhdGUtdG9waWMiLG8udG9waWMpKTpzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIiksImNyZWF0ZV9wb3N0Ij09PWUucmVzcG9uc2VKc29uLmFjdGlvbiYmcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdDpoaWdobGlnaHQiLGUucGF5bG9hZC5wb3N0X251bWJlciksZS5yZXNwb25zZUpzb24ucm91dGVfdG8pcmV0dXJuIHMuZGVzdHJveURyYWZ0KCksZS5yZXNwb25zZUpzb24ubWVzc2FnZT9ib290Ym94LmFsZXJ0KGUucmVzcG9uc2VKc29uLm1lc3NhZ2UsZnVuY3Rpb24oKXt1LmRlZmF1bHQucm91dGVUbyhlLnJlc3BvbnNlSnNvbi5yb3V0ZV90byl9KTp1LmRlZmF1bHQucm91dGVUbyhlLnJlc3BvbnNlSnNvbi5yb3V0ZV90byk7cy5jbG9zZSgpO3ZhciBuPXMuY3VycmVudFVzZXI7by5jcmVhdGluZ1RvcGljP24uc2V0KCJ0b3BpY19jb3VudCIsbi50b3BpY19jb3VudCsxKTpuLnNldCgicmVwbHlfY291bnQiLG4ucmVwbHlfY291bnQrMSk7dmFyIGk9ZS50YXJnZXQ7aSYmIXImJnUuZGVmYXVsdC5yb3V0ZVRvKGkudXJsLHtza2lwSWZPblNjcmVlbjohMH0pfSkuY2F0Y2goZnVuY3Rpb24oZSl7by5zZXQoImRpc2FibGVEcmFmdHMiLCExKSxlJiZzLmFwcEV2ZW50cy5vbmUoImNvbXBvc2VyOndpbGwtb3BlbiIsZnVuY3Rpb24oKXtyZXR1cm4gYm9vdGJveC5hbGVydChlKX0pfSk7cmV0dXJuInRvcGljIj09PXRoaXMucm91dGVyLmN1cnJlbnRSb3V0ZU5hbWUuc3BsaXQoIi4iKVswXSYmby5nZXQoInRvcGljLmlkIik9PT10aGlzLmdldCgidG9waWNNb2RlbC5pZCIpJiYocj1vLmdldCgic3RhZ2VkUG9zdCIpKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHIpLHRoaXMubWVzc2FnZUJ1cy5wYXVzZSgpLGwuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBzLm1lc3NhZ2VCdXMucmVzdW1lKCl9KSxsfXRoaXMuc2V0KCJsYXN0VmFsaWRhdGVkQXQiLERhdGUubm93KCkpfX0pLF8oSCwiY2hlY2tSZXBseUxlbmd0aCIsZnVuY3Rpb24oKXsoMCxpLmlzRW1wdHkpKCJtb2RlbC5yZXBseSIpfHx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlcjp0eXBlZC1yZXBseSIpfSksXyhILCJvcGVuIixmdW5jdGlvbihpKXt2YXIgcz10aGlzO2lmKCEoaT1pfHx7fSkuZHJhZnRLZXkpdGhyb3cgbmV3IEVycm9yKCJjb21wb3NlciBvcGVuZWQgd2l0aG91dCBhIHByb3BlciBkcmFmdCBrZXkiKTt2YXIgbz10aGlzLm1vZGVsO2lmKCFpLmlnbm9yZUlmQ2hhbmdlZHx8IW98fG8uY29tcG9zZVN0YXRlPT09Yy5kZWZhdWx0LkNMT1NFRClyZXR1cm4gdGhpcy5zZXRQcm9wZXJ0aWVzKHtzaG93RWRpdFJlYXNvbjohMSxlZGl0UmVhc29uOm51bGwsc2NvcGVkQ2F0ZWdvcnlJZDpudWxsfSksaS5jYXRlZ29yeUlkJiYhaS5kaXNhYmxlU2NvcGVkQ2F0ZWdvcnkmJnRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGkuY2F0ZWdvcnlJZCkmJnRoaXMuc2V0KCJzY29wZWRDYXRlZ29yeUlkIixpLmNhdGVnb3J5SWQpLG8mJmkuZHJhZnRLZXkhPT1vLmRyYWZ0S2V5JiZvLmNvbXBvc2VTdGF0ZT09PWMuZGVmYXVsdC5EUkFGVCYmKHRoaXMuY2xvc2UoKSxvPW51bGwpLG5ldyBiLlByb21pc2UoZnVuY3Rpb24oZSx0KXtpZihvJiZvLnJlcGx5RGlydHkpe2lmKG8uY29tcG9zZVN0YXRlPT09Yy5kZWZhdWx0Lk9QRU4mJm8uZHJhZnRLZXk9PT1pLmRyYWZ0S2V5JiYhaS5hY3Rpb24pcmV0dXJuIGUoKTtpZihvLmNvbXBvc2VTdGF0ZT09PWMuZGVmYXVsdC5EUkFGVCYmby5kcmFmdEtleT09PWkuZHJhZnRLZXkmJihvLnNldCgiY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTiksIWkuYWN0aW9uKSlyZXR1cm4gZSgpO3ZhciBuPSFpLnBvc3R8fCFvLnRvcGljfHxvLnRvcGljLmlkIT09aS5wb3N0LnRvcGljX2lkO3JldHVybiBzLmNhbmNlbENvbXBvc2VyKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcy5vcGVuKGkpfSkudGhlbihlLHQpfWlmKG8mJm8uYWN0aW9uIT09aS5hY3Rpb24mJm8uc2V0UHJvcGVydGllcyh7dW5saXN0VG9waWM6ITEsd2hpc3BlcjohMX0pLHZvaWQgMD09PWkuZHJhZnRTZXF1ZW5jZSlyZXR1cm4gbC5kZWZhdWx0LmdldChpLmRyYWZ0S2V5KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBpLnNraXBEcmFmdENoZWNrPyhlLmRyYWZ0PXZvaWQgMCxlKTpzLmNvbmZpcm1EcmFmdEFiYW5kb24oZSl9KS50aGVuKGZ1bmN0aW9uKGUpeyFpLmRyYWZ0JiZlLmRyYWZ0JiYoaS5kcmFmdD1lLmRyYWZ0KSxpLmRyYWZ0U2VxdWVuY2U9ZS5kcmFmdF9zZXF1ZW5jZSxzLl9zZXRNb2RlbChvLGkpfSkudGhlbihlLHQpO2kuZHJhZnR8fGkuc2tpcERyYWZ0Q2hlY2t8fGwuZGVmYXVsdC5nZXQoaS5kcmFmdEtleSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gcy5jb25maXJtRHJhZnRBYmFuZG9uKGUpfSkudGhlbihmdW5jdGlvbihlKXtlLmRyYWZ0JiYoaS5kcmFmdD1lLmRyYWZ0LGkuZHJhZnRTZXF1ZW5jZT1lLmRyYWZ0X3NlcXVlbmNlLHMub3BlbihpKSl9KSxzLl9zZXRNb2RlbChvLGkpLGUoKX0pfSksXyhILCJfc2V0TW9kZWwiLGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzO3RoaXMuc2V0KCJsaW5rTG9va3VwIixudWxsKSx0LmRyYWZ0PyhlPWZ1bmN0aW9uKGUsdCl7dmFyIG49KHQ9dHx8e30pLmRyYWZ0LGk9dC5kcmFmdEtleSxzPXQuZHJhZnRTZXF1ZW5jZTt0cnl7biYmInN0cmluZyI9PXR5cGVvZiBuJiYobj1KU09OLnBhcnNlKG4pKX1jYXRjaChlKXtuPW51bGwsbC5kZWZhdWx0LmNsZWFyKGkscyl9aWYobiYmKG4udGl0bGUmJiIiIT09bi50aXRsZXx8bi5yZXBseSYmIiIhPT1uLnJlcGx5KSl7dmFyIG89ZS5jcmVhdGVSZWNvcmQoImNvbXBvc2VyIikscj1jLmRlZmF1bHQuc2VyaWFsaXplZEZpZWxkc0ZvckRyYWZ0KCksYT17ZHJhZnRLZXk6aSxkcmFmdFNlcXVlbmNlOnMsZHJhZnQ6ITAsY29tcG9zZXJTdGF0ZTpjLmRlZmF1bHQuRFJBRlR9O3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlXT1uW2VdfHx0W2VdfSksby5vcGVuKGEpLG99fSh0aGlzLnN0b3JlLHQpKSYmZS5zZXQoInRvcGljIix0LnRvcGljKTooZT1lfHx0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgiY29tcG9zZXIiKSkub3Blbih0KSx0aGlzLnNldCgibW9kZWwiLGUpLGUuc2V0UHJvcGVydGllcyh7Y29tcG9zZVN0YXRlOmMuZGVmYXVsdC5PUEVOLGlzV2FybmluZzohMX0pLHRoaXMubW9kZWwudGFyZ2V0UmVjaXBpZW50c3x8KHQudXNlcm5hbWVzPygoMCx5LmRlZmF1bHQpKCJgdXNlcm5hbWVzYCBpcyBkZXByZWNhdGVkLCB1c2UgYHJlY2lwaWVudHNgIGluc3RlYWQuIiksdGhpcy5tb2RlbC5zZXQoInRhcmdldFJlY2lwaWVudHMiLHQudXNlcm5hbWVzKSk6dC5yZWNpcGllbnRzJiZ0aGlzLm1vZGVsLnNldCgidGFyZ2V0UmVjaXBpZW50cyIsdC5yZWNpcGllbnRzKSksdC50b3BpY1RpdGxlJiZ0LnRvcGljVGl0bGUubGVuZ3RoPD10aGlzLnNpdGVTZXR0aW5ncy5tYXhfdG9waWNfdGl0bGVfbGVuZ3RoJiZ0aGlzLm1vZGVsLnNldCgidGl0bGUiLHQudG9waWNUaXRsZSksdC50b3BpY0NhdGVnb3J5SWQmJnRoaXMubW9kZWwuc2V0KCJjYXRlZ29yeUlkIix0LnRvcGljQ2F0ZWdvcnlJZCksdC50b3BpY1RhZ3MmJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmdGhpcy5zaXRlLmNhbl90YWdfdG9waWNzJiYoKG49KDAscC5lc2NhcGVFeHByZXNzaW9uKSh0LnRvcGljVGFncykuc3BsaXQoIiwiKS5zbGljZSgwLHRoaXMuc2l0ZVNldHRpbmdzLm1heF90YWdzX3Blcl90b3BpYykpLmZvckVhY2goZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuW3RdPWUuc3Vic3RyaW5nKDAsaS5zaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgpfSksdGhpcy5tb2RlbC5zZXQoInRhZ3MiLG4pKSx0LnRvcGljQm9keSYmdGhpcy5tb2RlbC5zZXQoInJlcGx5Iix0LnRvcGljQm9keSl9KSxfKEgsInZpZXdOZXdSZXBseSIsZnVuY3Rpb24oKXtyZXR1cm4gdS5kZWZhdWx0LnJvdXRlVG8odGhpcy5nZXQoIm1vZGVsLmNyZWF0ZWRQb3N0LnVybCIpKSx0aGlzLmNsb3NlKCksITF9KSxfKEgsImRlc3Ryb3lEcmFmdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5nZXQoIm1vZGVsLmRyYWZ0S2V5Iik7cmV0dXJuIHQ/KCJuZXdfdG9waWMiPT09dCYmdGhpcy5zZW5kKCJjbGVhclRvcGljRHJhZnQiKSxsLmRlZmF1bHQuY2xlYXIodCx0aGlzLmdldCgibW9kZWwuZHJhZnRTZXF1ZW5jZSIpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwRXZlbnRzLnRyaWdnZXIoImRyYWZ0OmRlc3Ryb3llZCIsdCl9KSk6Yi5Qcm9taXNlLnJlc29sdmUoKX0pLF8oSCwiY29uZmlybURyYWZ0QWJhbmRvbiIsZnVuY3Rpb24odCl7aWYoIXQuZHJhZnQpcmV0dXJuIHQ7dmFyIGU9SlNPTi5wYXJzZSh0LmRyYWZ0KTtyZXR1cm4gZS5yZXBseSE9PWUub3JpZ2luYWxUZXh0JiZHP25ldyBiLlByb21pc2UoZnVuY3Rpb24oZSl7Ym9vdGJveC5kaWFsb2coSTE4bi50KCJkcmFmdHMuYWJhbmRvbi5jb25maXJtIiksW3tsYWJlbDpJMThuLnQoImRyYWZ0cy5hYmFuZG9uLm5vX3ZhbHVlIiksY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZSh0KX19LHtsYWJlbDpJMThuLnQoImRyYWZ0cy5hYmFuZG9uLnllc192YWx1ZSIpLGNsYXNzOiJidG4tZGFuZ2VyIixjYWxsYmFjazpmdW5jdGlvbigpe3QuZHJhZnQ9bnVsbCxlKHQpfX1dKX0pOih0LmRyYWZ0PW51bGwsdCl9KSxfKEgsImNhbmNlbENvbXBvc2VyIixmdW5jdGlvbihlKXt2YXIgbj10aGlzLGk9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lJiZlLHM9ImVkaXQiPT09dGhpcy5tb2RlbC5hY3Rpb24/InBvc3QuYWJhbmRvbl9lZGl0IjoicG9zdC5hYmFuZG9uIjtyZXR1cm4gbmV3IGIuUHJvbWlzZShmdW5jdGlvbih0KXtuLmdldCgibW9kZWwuaGFzTWV0YURhdGEiKXx8bi5nZXQoIm1vZGVsLnJlcGx5RGlydHkiKT9ib290Ym94LmRpYWxvZyhJMThuLnQocysiLmNvbmZpcm0iKSxbe2xhYmVsOmk/STE4bi50KHMrIi5ub19zYXZlX2RyYWZ0Iik6STE4bi50KHMrIi5ub192YWx1ZSIpLGNhbGxiYWNrOmZ1bmN0aW9uKCl7aSYmKG4ubW9kZWwuY2xlYXJTdGF0ZSgpLG4uY2xvc2UoKSx0KCkpfX0se2xhYmVsOkkxOG4udChzKyIueWVzX3ZhbHVlIiksY2xhc3M6ImJ0bi1kYW5nZXIiLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe2UmJm4uZGVzdHJveURyYWZ0KCkudGhlbihmdW5jdGlvbigpe24ubW9kZWwuY2xlYXJTdGF0ZSgpLG4uY2xvc2UoKSx0KCl9KX19XSk6bi5kZXN0cm95RHJhZnQoKS50aGVuKGZ1bmN0aW9uKCl7bi5tb2RlbC5jbGVhclN0YXRlKCksbi5jbG9zZSgpLHQoKX0pfSl9KSxfKEgsInNocmluayIsZnVuY3Rpb24oKXt0aGlzLmdldCgibW9kZWwucmVwbHlEaXJ0eSIpfHx0aGlzLmdldCgibW9kZWwuY2FuRWRpdFRpdGxlIikmJnRoaXMuZ2V0KCJtb2RlbC50aXRsZURpcnR5Iik/dGhpcy5jb2xsYXBzZSgpOnRoaXMuY2xvc2UoKX0pLF8oSCwiX3NhdmVEcmFmdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsO2UmJmUuc2F2ZURyYWZ0KCl9KSxfKEgsIl9zaG91bGRTYXZlRHJhZnQiLGZ1bmN0aW9uKCl7KDAsbi5kZWJvdW5jZSkodGhpcyx0aGlzLl9zYXZlRHJhZnQsMmUzKX0pLF8oSCwiY2F0ZWdvcnlWYWxpZGF0aW9uIixmdW5jdGlvbihlLHQpe2lmKCF0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljcyYmIWUpcmV0dXJuIHYuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJjb21wb3Nlci5lcnJvci5jYXRlZ29yeV9taXNzaW5nIiksbGFzdFNob3duQXQ6dH0pfSksXyhILCJ0YWdWYWxpZGF0aW9uIixmdW5jdGlvbihlLHQsbil7dmFyIGk9dHx8W107aWYodGhpcy5zaXRlLmNhbl90YWdfdG9waWNzJiZlJiZlLm1pbmltdW1fcmVxdWlyZWRfdGFncz5pLmxlbmd0aClyZXR1cm4gdi5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoImNvbXBvc2VyLmVycm9yLnRhZ3NfbWlzc2luZyIse2NvdW50OmUubWluaW11bV9yZXF1aXJlZF90YWdzfSksbGFzdFNob3duQXQ6bn0pfSksXyhILCJjb2xsYXBzZSIsZnVuY3Rpb24oKXt0aGlzLl9zYXZlRHJhZnQoKSx0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuRFJBRlQpfSksXyhILCJ0b2dnbGVGdWxsc2NyZWVuIixmdW5jdGlvbigpe3RoaXMuX3NhdmVEcmFmdCgpLHRoaXMuZ2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiKT09PWMuZGVmYXVsdC5GVUxMU0NSRUVOP3RoaXMuc2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiLGMuZGVmYXVsdC5PUEVOKTp0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuRlVMTFNDUkVFTil9KSxfKEgsImNsb3NlIixmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKS5jbGFzc0xpc3QucmVtb3ZlKCJmdWxsc2NyZWVuLWNvbXBvc2VyIiksdGhpcy5zZXRQcm9wZXJ0aWVzKHttb2RlbDpudWxsLGxhc3RWYWxpZGF0ZWRBdDpudWxsfSl9KSxfKEgsImNsb3NlQXV0b2NvbXBsZXRlIixmdW5jdGlvbigpeyQoIi5kLWVkaXRvci1pbnB1dCIpLmF1dG9jb21wbGV0ZSh7Y2FuY2VsOiEwfSl9KSxfKEgsImNhbkVkaXQiLGZ1bmN0aW9uKGUpe3JldHVybiJlZGl0Ij09PWUmJnRoaXMuY3VycmVudFVzZXIuY2FuX2VkaXR9KSxfKEgsInZpc2libGUiLGZ1bmN0aW9uKGUpe3JldHVybiBlJiYiY2xvc2VkIiE9PWV9KSxXKHE9SCwiX3NldHVwUHJldmlldyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiX3NldHVwUHJldmlldyIpLHEpLFcocSwidG9nZ2xlVGV4dCIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwidG9nZ2xlVGV4dCIpLHEpLFcocSwic2hvd1ByZXZpZXdDaGFuZ2VkIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzaG93UHJldmlld0NoYW5nZWQiKSxxKSxXKHEsImZvY3VzVGFyZ2V0IixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJmb2N1c1RhcmdldCIpLHEpLFcocSwiY2FuRWRpdFRhZ3MiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImNhbkVkaXRUYWdzIikscSksVyhxLCJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIikscSksVyhxLCJkaXNhYmxlVGFnc0Nob29zZXIiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImRpc2FibGVUYWdzQ2hvb3NlciIpLHEpLFcocSwic2hvd1doaXNwZXJUb2dnbGUiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInNob3dXaGlzcGVyVG9nZ2xlIikscSksVyhxLCJyZXBseWluZ1RvV2hpc3BlciIsW1NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwicmVwbHlpbmdUb1doaXNwZXIiKSxxKSxXKHEsInNhdmVJY29uIixbQ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzYXZlSWNvbiIpLHEpLFcocSwic2F2ZUxhYmVsIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzYXZlTGFiZWwiKSxxKSxXKHEsImNhbldoaXNwZXIiLFtEXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImNhbldoaXNwZXIiKSxxKSxXKHEsInBvcHVwTWVudU9wdGlvbnMiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInBvcHVwTWVudU9wdGlvbnMiKSxxKSxXKHEsInNob3dXYXJuaW5nIixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzaG93V2FybmluZyIpLHEpLFcocSwiZHJhZnRUaXRsZSIsW0FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiZHJhZnRUaXRsZSIpLHEpLFcocSwiYWxsb3dVcGxvYWQiLFthLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiYWxsb3dVcGxvYWQiKSxxKSxXKHEsInVwbG9hZEljb24iLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInVwbG9hZEljb24iKSxxKSxXKHEsIl9zaG91bGRTYXZlRHJhZnQiLFt6XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsIl9zaG91bGRTYXZlRHJhZnQiKSxxKSxXKHEsImNhdGVnb3J5VmFsaWRhdGlvbiIsW1VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiY2F0ZWdvcnlWYWxpZGF0aW9uIikscSksVyhxLCJ0YWdWYWxpZGF0aW9uIixbRl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJ0YWdWYWxpZGF0aW9uIikscSksVyhxLCJjYW5FZGl0IixbQl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJjYW5FZGl0IikscSksVyhxLCJ2aXNpYmxlIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJ2aXNpYmxlIikscSkscSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY29udmVydC10by1wdWJsaWMtdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3B1YmxpY0NhdGVnb3J5SWQ6bnVsbCxzYXZpbmc6ITAsb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwdWJsaWNDYXRlZ29yeUlkOm51bGwsc2F2aW5nOiExfSl9LGFjdGlvbnM6e21ha2VQdWJsaWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5tb2RlbDt0LmNvbnZlcnRUb3BpYygicHVibGljIix7Y2F0ZWdvcnlJZDp0aGlzLnB1YmxpY0NhdGVnb3J5SWR9KS50aGVuKGZ1bmN0aW9uKCl7dC5zZXQoImFyY2hldHlwZSIsInJlZ3VsYXIiKSx0LnNldCgiY2F0ZWdvcnlfaWQiLGUucHVibGljQ2F0ZWdvcnlJZCksZS5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnNob3ctdG9waWMiLHQpLGUuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY3JlYXRlLWFjY291bnQiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvbmFtZS12YWxpZGF0aW9uIiwiZGlzY291cnNlL21peGlucy91c2VyLWZpZWxkcy12YWxpZGF0aW9uIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHMsdCxuLGksbyxyLGEsbCx1LGMsZCxwLG0sZixoLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBnKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB2LHksXyx3LHgsayxQLGo7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCx1LmRlZmF1bHQsYy5kZWZhdWx0LGQuZGVmYXVsdCxwLmRlZmF1bHQsKHY9KDAsYS5kZWZhdWx0KSgicGFzc3dvcmRSZXF1aXJlZCIsIm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIsImVtYWlsVmFsaWRhdGlvbi5mYWlsZWQiLCJ1c2VybmFtZVZhbGlkYXRpb24uZmFpbGVkIiwicGFzc3dvcmRWYWxpZGF0aW9uLmZhaWxlZCIsInVzZXJGaWVsZHNWYWxpZGF0aW9uLmZhaWxlZCIsImZvcm1TdWJtaXR0ZWQiKSx5PSgwLGEuZGVmYXVsdCkoImF1dGhPcHRpb25zLmF1dGhfcHJvdmlkZXIiKSxfPSgwLGEuZGVmYXVsdCkoImFjY291bnRFbWFpbCIsInJlamVjdGVkRW1haWxzLltdIiksdz0oMCxhLmRlZmF1bHQpKCJhY2NvdW50RW1haWwiLCJhdXRoT3B0aW9ucy5lbWFpbCIsImF1dGhPcHRpb25zLmVtYWlsX3ZhbGlkIikseD0oMCxhLm9ic2VydmVzKSgiZW1haWxWYWxpZGF0aW9uIiwiYWNjb3VudEVtYWlsIiksaz0oMCxhLm9uKSgiaW5pdCIpLGcoUD17bG9naW46KDAsbi5pbmplY3QpKCksY29tcGxldGU6ITEsYWNjb3VudENoYWxsZW5nZTowLGFjY291bnRIb25leXBvdDowLGZvcm1TdWJtaXR0ZWQ6ITEscmVqZWN0ZWRFbWFpbHM6RW1iZXIuQShbXSkscHJlZmlsbGVkVXNlcm5hbWU6bnVsbCx1c2VyRmllbGRzOm51bGwsaXNEZXZlbG9wZXI6ITEsaGFzQXV0aE9wdGlvbnM6KDAsdC5ub3RFbXB0eSkoImF1dGhPcHRpb25zIiksY2FuQ3JlYXRlTG9jYWw6KDAsci5zZXR0aW5nKSgiZW5hYmxlX2xvY2FsX2xvZ2lucyIpLHNob3dDcmVhdGVGb3JtOigwLHQub3IpKCJoYXNBdXRoT3B0aW9ucyIsImNhbkNyZWF0ZUxvY2FsIikscmVzZXRGb3JtOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHthY2NvdW50TmFtZToiIixhY2NvdW50RW1haWw6IiIsYWNjb3VudFVzZXJuYW1lOiIiLGFjY291bnRQYXNzd29yZDoiIixhdXRoT3B0aW9uczpudWxsLGNvbXBsZXRlOiExLGZvcm1TdWJtaXR0ZWQ6ITEscmVqZWN0ZWRFbWFpbHM6W10scmVqZWN0ZWRQYXNzd29yZHM6W10scHJlZmlsbGVkVXNlcm5hbWU6bnVsbCxpc0RldmVsb3BlcjohMX0pLHRoaXMuX2NyZWF0ZVVzZXJGaWVsZHMoKX0sc3VibWl0RGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuZm9ybVN1Ym1pdHRlZHx8KCEhdGhpcy5nZXQoIm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIpfHwoISF0aGlzLmdldCgiZW1haWxWYWxpZGF0aW9uLmZhaWxlZCIpfHwoISghdGhpcy5nZXQoInVzZXJuYW1lVmFsaWRhdGlvbi5mYWlsZWQiKXx8IXRoaXMudXNlcm5hbWVSZXF1aXJlZCl8fCghKCF0aGlzLmdldCgicGFzc3dvcmRWYWxpZGF0aW9uLmZhaWxlZCIpfHwhdGhpcy5wYXNzd29yZFJlcXVpcmVkKXx8ISF0aGlzLmdldCgidXNlckZpZWxkc1ZhbGlkYXRpb24uZmFpbGVkIikpKSkpfSx1c2VybmFtZVJlcXVpcmVkOigwLHQubm90KSgiYXV0aE9wdGlvbnMub21pdF91c2VybmFtZSIpLGZ1bGxuYW1lUmVxdWlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInNpdGVTZXR0aW5ncy5mdWxsX25hbWVfcmVxdWlyZWQiKXx8dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5lbmFibGVfbmFtZXMiKX0scGFzc3dvcmRSZXF1aXJlZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmlzRW1wdHkpKGUpfSxkaXNjbGFpbWVySHRtbDpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImNyZWF0ZV9hY2NvdW50LmRpc2NsYWltZXIiLHt0b3NfbGluazp0aGlzLmdldCgic2l0ZVNldHRpbmdzLnRvc191cmwiKXx8RGlzY291cnNlLmdldFVSTCgiL3RvcyIpLHByaXZhY3lfbGluazp0aGlzLmdldCgic2l0ZVNldHRpbmdzLnByaXZhY3lfcG9saWN5X3VybCIpfHxEaXNjb3Vyc2UuZ2V0VVJMKCIvcHJpdmFjeSIpfSl9LGVtYWlsVmFsaWRhdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuaXNFbXB0eSkoZSk/aC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk6dC5pbmNsdWRlcyhlKT9oLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOkkxOG4udCgidXNlci5lbWFpbC5pbnZhbGlkIil9KTp0aGlzLmdldCgiYXV0aE9wdGlvbnMuZW1haWwiKT09PWUmJnRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbF92YWxpZCIpP2guZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIuZW1haWwuYXV0aGVudGljYXRlZCIse3Byb3ZpZGVyOnRoaXMuYXV0aFByb3ZpZGVyRGlzcGxheU5hbWUodGhpcy5nZXQoImF1dGhPcHRpb25zLmF1dGhfcHJvdmlkZXIiKSl9KX0pOigwLGwuZW1haWxWYWxpZCkoZSk/aC5kZWZhdWx0LmNyZWF0ZSh7b2s6ITAscmVhc29uOkkxOG4udCgidXNlci5lbWFpbC5vayIpfSk6aC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIuZW1haWwuaW52YWxpZCIpfSl9LGVtYWlsVmFsaWRhdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbCIpPT09dGhpcy5hY2NvdW50RW1haWwmJnRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbF92YWxpZCIpfSxhdXRoUHJvdmlkZXJEaXNwbGF5TmFtZTpmdW5jdGlvbih0KXt2YXIgZT0oMCxmLmZpbmRBbGwpKCkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dH0pO3JldHVybiBlP2UuZ2V0KCJwcmV0dHlOYW1lIik6dH0scHJlZmlsbFVzZXJuYW1lOmZ1bmN0aW9uKCl7dGhpcy5wcmVmaWxsZWRVc2VybmFtZSYmKHRoaXMuYWNjb3VudFVzZXJuYW1lPT09dGhpcy5wcmVmaWxsZWRVc2VybmFtZSYmdGhpcy5zZXQoImFjY291bnRVc2VybmFtZSIsIiIpLHRoaXMuc2V0KCJwcmVmaWxsZWRVc2VybmFtZSIsbnVsbCkpLHRoaXMuZ2V0KCJlbWFpbFZhbGlkYXRpb24ub2siKSYmKCgwLHMuaXNFbXB0eSkodGhpcy5hY2NvdW50VXNlcm5hbWUpfHx0aGlzLmdldCgiYXV0aE9wdGlvbnMuZW1haWwiKSkmJnRoaXMuZmV0Y2hFeGlzdGluZ1VzZXJuYW1lKCl9LGhhc0F0TGVhc3RPbmVMb2dpbkJ1dHRvbjpmdW5jdGlvbigpe3JldHVybiAwPCgwLGYuZmluZEFsbCkoKS5sZW5ndGh9LGZldGNoQ29uZmlybWF0aW9uVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkuYWpheCkoKDAsbS51c2VyUGF0aCkoImhwLmpzb24iKSkudGhlbihmdW5jdGlvbihlKXt0Ll9jaGFsbGVuZ2VEYXRlPW5ldyBEYXRlLHQuX2NoYWxsZW5nZUV4cGlyeT1wYXJzZUludChlLmV4cGlyZXNfaW4sMTApLTMwLHQuX2NoYWxsZW5nZUV4cGlyeTwzMCYmKHQuX2NoYWxsZW5nZUV4cGlyeT0zMCksdC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50SG9uZXlwb3Q6ZS52YWx1ZSxhY2NvdW50Q2hhbGxlbmdlOmUuY2hhbGxlbmdlLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIil9KX0pfSxwZXJmb3JtQWNjb3VudENyZWF0aW9uOmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXRoaXMuZ2V0UHJvcGVydGllcygiYWNjb3VudE5hbWUiLCJhY2NvdW50RW1haWwiLCJhY2NvdW50UGFzc3dvcmQiLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50Q2hhbGxlbmdlIik7aS5hY2NvdW50UGFzc3dvcmRDb25maXJtPXRoaXMuYWNjb3VudEhvbmV5cG90O3ZhciBlPXRoaXMudXNlckZpZWxkcyx0PXRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5kZXN0aW5hdGlvbl91cmwiKTtyZXR1cm4oMCxzLmlzRW1wdHkpKHQpfHwkLmNvb2tpZSgiZGVzdGluYXRpb25fdXJsIix0LHtwYXRoOiIvIn0pLCgwLHMuaXNFbXB0eSkoZSl8fChpLnVzZXJGaWVsZHM9e30sZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpLnVzZXJGaWVsZHNbZS5nZXQoImZpZWxkLmlkIildPWUuZ2V0KCJ2YWx1ZSIpfSkpLHRoaXMuc2V0KCJmb3JtU3VibWl0dGVkIiwhMCksYi5kZWZhdWx0LmNyZWF0ZUFjY291bnQoaSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtuLnNldCgiaXNEZXZlbG9wZXIiLCExKSxlLnN1Y2Nlc3M/KG4uX2NoYWxsZW5nZUV4cGlyeT0xLCh0PSQoIiNoaWRkZW4tbG9naW4tZm9ybSIpKS5maW5kKCJpbnB1dFtuYW1lPXVzZXJuYW1lXSIpLnZhbChpLmFjY291bnRVc2VybmFtZSksdC5maW5kKCJpbnB1dFtuYW1lPXBhc3N3b3JkXSIpLnZhbChpLmFjY291bnRQYXNzd29yZCksdC5maW5kKCJpbnB1dFtuYW1lPXJlZGlyZWN0XSIpLnZhbCgoMCxtLnVzZXJQYXRoKSgiYWNjb3VudC1jcmVhdGVkIikpLHQuc3VibWl0KCkpOihuLmZsYXNoKGUubWVzc2FnZXx8STE4bi50KCJjcmVhdGVfYWNjb3VudC5mYWlsZWQiKSwiZXJyb3IiKSxlLmlzX2RldmVsb3BlciYmbi5zZXQoImlzRGV2ZWxvcGVyIiwhMCksZS5lcnJvcnMmJmUuZXJyb3JzLmVtYWlsJiYwPGUuZXJyb3JzLmVtYWlsLmxlbmd0aCYmZS52YWx1ZXMmJm4ucmVqZWN0ZWRFbWFpbHMucHVzaE9iamVjdChlLnZhbHVlcy5lbWFpbCksZS5lcnJvcnMmJmUuZXJyb3JzLnBhc3N3b3JkJiYwPGUuZXJyb3JzLnBhc3N3b3JkLmxlbmd0aCYmbi5yZWplY3RlZFBhc3N3b3Jkcy5wdXNoT2JqZWN0KGkuYWNjb3VudFBhc3N3b3JkKSxuLnNldCgiZm9ybVN1Ym1pdHRlZCIsITEpLCQucmVtb3ZlQ29va2llKCJkZXN0aW5hdGlvbl91cmwiKSl9LGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJmb3JtU3VibWl0dGVkIiwhMSksJC5yZW1vdmVDb29raWUoImRlc3RpbmF0aW9uX3VybCIpLG4uZmxhc2goSTE4bi50KCJjcmVhdGVfYWNjb3VudC5mYWlsZWQiKSwiZXJyb3IiKX0pfSxhY3Rpb25zOntleHRlcm5hbExvZ2luOmZ1bmN0aW9uKGUpe3RoaXMubG9naW4uc2VuZCgiZXh0ZXJuYWxMb2dpbiIsZSl9LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO25ldyBEYXRlLXRoaXMuX2NoYWxsZW5nZURhdGU+MWUzKnRoaXMuX2NoYWxsZW5nZUV4cGlyeT90aGlzLmZldGNoQ29uZmlybWF0aW9uVmFsdWUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucGVyZm9ybUFjY291bnRDcmVhdGlvbigpfSk6dGhpcy5wZXJmb3JtQWNjb3VudENyZWF0aW9uKCl9fX0sInN1Ym1pdERpc2FibGVkIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJzdWJtaXREaXNhYmxlZCIpLFApLGcoUCwiZnVsbG5hbWVSZXF1aXJlZCIsW2EuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJmdWxsbmFtZVJlcXVpcmVkIiksUCksZyhQLCJwYXNzd29yZFJlcXVpcmVkIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJwYXNzd29yZFJlcXVpcmVkIiksUCksZyhQLCJkaXNjbGFpbWVySHRtbCIsW2EuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJkaXNjbGFpbWVySHRtbCIpLFApLGcoUCwiZW1haWxWYWxpZGF0aW9uIixbX10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJlbWFpbFZhbGlkYXRpb24iKSxQKSxnKFAsImVtYWlsVmFsaWRhdGVkIixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJlbWFpbFZhbGlkYXRlZCIpLFApLGcoUCwicHJlZmlsbFVzZXJuYW1lIixbeF0sKGo9KGo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJwcmVmaWxsVXNlcm5hbWUiKSk/ai52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGp9fSksUCksZyhQLCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iLFthLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUCwiaGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uIiksUCksZyhQLCJmZXRjaENvbmZpcm1hdGlvblZhbHVlIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJmZXRjaENvbmZpcm1hdGlvblZhbHVlIiksUCksUCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsby5vYnNlcnZlcykoImxvYWRlZEFsbEl0ZW1zIiksYT17ZGlzY292ZXJ5VG9waWNzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L3RvcGljcyIpLG5hdmlnYXRpb25DYXRlZ29yeTooMCxuLmluamVjdCkoIm5hdmlnYXRpb24vY2F0ZWdvcnkiKSxhcHBsaWNhdGlvbjooMCxuLmluamVjdCkoKSxsb2FkaW5nOiExLGNhdGVnb3J5OigwLHQuYWxpYXMpKCJuYXZpZ2F0aW9uQ2F0ZWdvcnkuY2F0ZWdvcnkiKSxub1N1YmNhdGVnb3JpZXM6KDAsdC5hbGlhcykoIm5hdmlnYXRpb25DYXRlZ29yeS5ub1N1YmNhdGVnb3JpZXMiKSxsb2FkZWRBbGxJdGVtczooMCx0Lm5vdCkoImRpc2NvdmVyeVRvcGljcy5tb2RlbC5jYW5Mb2FkTW9yZSIpLF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHRoaXMubG9hZGVkQWxsSXRlbXMpfSxzaG93TW9yZVVybDpmdW5jdGlvbihlKXt2YXIgdD0iIixuPXRoaXMuY2F0ZWdvcnk7cmV0dXJuIG4mJih0PSIvYy8iK3MuZGVmYXVsdC5zbHVnRm9yKG4pKyIvIituLmlkKyh0aGlzLm5vU3ViY2F0ZWdvcmllcz8iL25vbmUiOiIiKSsiL2wiKSx0Kz0iL3RvcC8iK2V9LGFjdGlvbnM6e2NoYW5nZVBlcmlvZDpmdW5jdGlvbihlKXtpLmRlZmF1bHQucm91dGVUbyh0aGlzLnNob3dNb3JlVXJsKGUpKX19fSx1PWEsYz0iX3Nob3dGb290ZXIiLGQ9W3JdLGw9KGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJfc2hvd0Zvb3RlciIpKT9sLnZhbHVlOnZvaWQgMCxwPXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBsfX0sbT1hLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS9jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IiwiQGVtYmVyL3N0cmluZyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjPXtyb3dzOiJjYXRlZ29yaWVzX29ubHkiLHJvd3Nfd2l0aF9mZWF0dXJlZF90b3BpY3M6ImNhdGVnb3JpZXNfd2l0aF9mZWF0dXJlZF90b3BpY3MiLGJveGVzOiJjYXRlZ29yaWVzX2JveGVzIixib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljczoiY2F0ZWdvcmllc19ib3hlc193aXRoX3RvcGljcyJ9O2UuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKChhPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3JpZXMuW10uZmVhdHVyZWRUb3BpY3MubGVuZ3RoIiksbD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5wYXJlbnRDYXRlZ29yeSIpLHIodT17ZGlzY292ZXJ5OigwLGkuaW5qZWN0KSgpLGNhdGVnb3J5Om51bGwsY2FuRWRpdDooMCxuLnJlYWRzKSgiY3VycmVudFVzZXIuc3RhZmYiKSxsYXRlc3RUb3BpY09ubHk6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3JpZXMiKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiAxPGUuZ2V0KCJmZWF0dXJlZFRvcGljcy5sZW5ndGgiKX0pfSxjYXRlZ29yeVBhZ2VTdHlsZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUubW9iaWxlVmlldz8iY2F0ZWdvcmllc193aXRoX2ZlYXR1cmVkX3RvcGljcyI6dGhpcy5zaXRlU2V0dGluZ3MuZGVza3RvcF9jYXRlZ29yeV9wYWdlX3N0eWxlO2UmJih0PWNbZS5nZXQoInN1YmNhdGVnb3J5X2xpc3Rfc3R5bGUiKV18fHQpO3ZhciBuPWUmJiJjYXRlZ29yaWVzX2FuZF9sYXRlc3RfdG9waWNzIj09PXQ/ImNhdGVnb3JpZXNfb25seSI6dDtyZXR1cm4oMCxvLmRhc2hlcml6ZSkobil9LGFjdGlvbnM6e3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoInRyaWdnZXJSZWZyZXNoIil9fX0sImxhdGVzdFRvcGljT25seSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwibGF0ZXN0VG9waWNPbmx5IiksdSkscih1LCJjYXRlZ29yeVBhZ2VTdHlsZSIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlQYWdlU3R5bGUiKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3ZlcnkvdG9waWNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHk9KG09KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGg9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGI9KDAsdC5kZWZhdWx0KSgiYWxsTG9hZGVkIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGc9KDAsdC5kZWZhdWx0KSgiYWxsTG9hZGVkIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLHAodj17ZGlzY292ZXJ5OigwLGkuaW5qZWN0KSgpLGRpc2NvdmVyeVRvcGljczooMCxpLmluamVjdCkoImRpc2NvdmVyeS90b3BpY3MiKSxwZXJpb2Q6bnVsbCxjYW5TdGFyOigwLG4uYWxpYXMpKCJjdXJyZW50VXNlci5pZCIpLHNob3dUb3BpY1Bvc3RCYWRnZXM6KDAsbi5ub3QpKCJkaXNjb3ZlcnlUb3BpY3MubmV3IikscmVkaXJlY3RlZFJlYXNvbjooMCxuLmFsaWFzKSgiY3VycmVudFVzZXIucmVkaXJlY3RlZF90b190b3AucmVhc29uIiksb3JkZXI6ImRlZmF1bHQiLGFzY2VuZGluZzohMSxleHBhbmRHbG9iYWxseVBpbm5lZDohMSxleHBhbmRBbGxQaW5uZWQ6ITEscmVzZXRQYXJhbXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO09iamVjdC5rZXlzKHRoaXMuZ2V0KCJtb2RlbC5wYXJhbXMiKXx8e30pLmZvckVhY2goZnVuY3Rpb24oZSl7dC5zZXQoZSx5W2VdKX0pfSxhY3Rpb25zOntjaGFuZ2VTb3J0OmZ1bmN0aW9uKGUpe2U9PT10aGlzLm9yZGVyP3RoaXMudG9nZ2xlUHJvcGVydHkoImFzY2VuZGluZyIpOnRoaXMuc2V0UHJvcGVydGllcyh7b3JkZXI6ZSxhc2NlbmRpbmc6ITF9KSx0aGlzLm1vZGVsLnJlZnJlc2hTb3J0KGUsdGhpcy5hc2NlbmRpbmcpfSxzaG93SW5zZXJ0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljVHJhY2tpbmdTdGF0ZTtyZXR1cm4gdGhpcy5tb2RlbC5sb2FkQmVmb3JlKGUuZ2V0KCJuZXdJbmNvbWluZyIpLCEwKSxlLnJlc2V0VHJhY2tpbmcoKSwhMX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwuZmlsdGVyIik7dGhpcy5yZXNldFBhcmFtcygpLHRoaXMuZ2V0KCJkaXNjb3ZlcnkubG9hZGluZyIpfHwodGhpcy5zZXQoImRpc2NvdmVyeS5sb2FkaW5nIiwhMCksdGhpcy50b3BpY1RyYWNraW5nU3RhdGUucmVzZXRUcmFja2luZygpLHRoaXMuc3RvcmUuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6bn0pLnRoZW4oZnVuY3Rpb24oZSl7Yy5kZWZhdWx0LmhpZGVVbmlmb3JtQ2F0ZWdvcnkoZSx0LmNhdGVnb3J5KSx0LnNldFByb3BlcnRpZXMoe21vZGVsOmV9KSx0LnJlc2V0U2VsZWN0ZWQoKSx0LnRvcGljVHJhY2tpbmdTdGF0ZSYmdC50b3BpY1RyYWNraW5nU3RhdGUuc3luYyhlLG4pLHQuc2VuZCgibG9hZGluZ0NvbXBsZXRlIil9KSl9LHJlc2V0TmV3OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztkLmRlZmF1bHQucmVzZXROZXcodGhpcy5jYXRlZ29yeSwhdGhpcy5ub1N1YmNhdGVnb3JpZXMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJyZWZyZXNoIil9KX0sZGlzbWlzc1JlYWRQb3N0czpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImRpc21pc3MtcmVhZCIse3RpdGxlOiJ0b3BpY3MuYnVsay5kaXNtaXNzX3JlYWQifSl9fSxpc0ZpbHRlclBhZ2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJiEhZS5tYXRjaChuZXcgUmVnRXhwKHQrIiQiLCJnaSIpKX0sc2hvd0Rpc21pc3NSZWFkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuaXNGaWx0ZXJQYWdlKGUsInVucmVhZCIpJiYwPHR9LHNob3dSZXNldE5ldzpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmlzRmlsdGVyUGFnZShlLCJuZXciKSYmMDx0fSxzaG93RGlzbWlzc0F0VG9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHRoaXMuaXNGaWx0ZXJQYWdlKGUsIm5ldyIpfHx0aGlzLmlzRmlsdGVyUGFnZShlLCJ1bnJlYWQiKSkmJjE1PD10fSxoYXNUb3BpY3M6KDAsbi5ndCkoIm1vZGVsLnRvcGljcy5sZW5ndGgiLDApLGFsbExvYWRlZDooMCxuLmVtcHR5KSgibW9kZWwubW9yZV90b3BpY3NfdXJsIiksbGF0ZXN0OigwLGEuZW5kV2l0aCkoIm1vZGVsLmZpbHRlciIsImxhdGVzdCIpLG5ldzooMCxhLmVuZFdpdGgpKCJtb2RlbC5maWx0ZXIiLCJuZXciKSx0b3A6KDAsbi5ub3RFbXB0eSkoInBlcmlvZCIpLHllYXJseTooMCxuLmVxdWFsKSgicGVyaW9kIiwieWVhcmx5IikscXVhcnRlcmx5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJxdWFydGVybHkiKSxtb250aGx5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJtb250aGx5Iiksd2Vla2x5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJ3ZWVrbHkiKSxkYWlseTooMCxuLmVxdWFsKSgicGVyaW9kIiwiZGFpbHkiKSxmb290ZXJNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7aWYoZSl7dmFyIG49dGhpcy5jYXRlZ29yeTtpZihuKXJldHVybiBJMThuLnQoInRvcGljcy5ib3R0b20uY2F0ZWdvcnkiLHtjYXRlZ29yeTpuLmdldCgibmFtZSIpfSk7dmFyIGk9KHRoaXMuZ2V0KCJtb2RlbC5maWx0ZXIiKXx8IiIpLnNwbGl0KCIvIik7cmV0dXJuIDA9PT10P0kxOG4udCgidG9waWNzLm5vbmUuIitpWzBdLHtjYXRlZ29yeTppWzFdfSk6STE4bi50KCJ0b3BpY3MuYm90dG9tLiIraVswXSx7Y2F0ZWdvcnk6aVsxXX0pfX0sZm9vdGVyRWR1Y2F0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoZSYmISgwPHQpJiZ0aGlzLmN1cnJlbnRVc2VyKXt2YXIgbj0odGhpcy5nZXQoIm1vZGVsLmZpbHRlciIpfHwiIikuc3BsaXQoIi8iKSxpPW5bbi5sZW5ndGgtMV07aWYoIm5ldyI9PT1pfHwidW5yZWFkIj09PWkpcmV0dXJuIEkxOG4udCgidG9waWNzLm5vbmUuZWR1Y2F0ZS4iK2kse3VzZXJQcmVmc1VybDooMCx1LnVzZXJQYXRoKSh0aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiL3ByZWZlcmVuY2VzIil9KX19fSwic2hvd0Rpc21pc3NSZWFkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93RGlzbWlzc1JlYWQiKSx2KSxwKHYsInNob3dSZXNldE5ldyIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iodiwic2hvd1Jlc2V0TmV3IiksdikscCh2LCJzaG93RGlzbWlzc0F0VG9wIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93RGlzbWlzc0F0VG9wIiksdikscCh2LCJmb290ZXJNZXNzYWdlIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJmb290ZXJNZXNzYWdlIiksdikscCh2LCJmb290ZXJFZHVjYXRpb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImZvb3RlckVkdWNhdGlvbiIpLHYpLHYpO09iamVjdC5rZXlzKG8ucXVlcnlQYXJhbXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dm9pZCAwPT09eVtlXSYmKHlbZV09bnVsbCl9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCh5LHIuZGVmYXVsdCl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LWNhdGVnb3J5IixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxmLGgsYixnO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHU9KDAsci5vbikoImluaXQiKSxjPSgwLHIub2JzZXJ2ZXMpKCJtb2RlbC5kZXNjcmlwdGlvbiIpLGQ9KDAsci5kZWZhdWx0KSgibW9kZWwue2lkLG5hbWV9IikscD0oMCxyLm9ic2VydmVzKSgidGl0bGUiKSxtPSgwLHIuZGVmYXVsdCkoInNhdmluZyIsIm1vZGVsLm5hbWUiLCJtb2RlbC5jb2xvciIsImRlbGV0aW5nIiksZj0oMCxyLmRlZmF1bHQpKCJzYXZpbmciLCJkZWxldGluZyIpLGg9KDAsci5kZWZhdWx0KSgibmFtZSIpLGI9KDAsci5kZWZhdWx0KSgic2F2aW5nIiwibW9kZWwuaWQiKSxsKGc9e3NlbGVjdGVkVGFiOm51bGwsc2F2aW5nOiExLGRlbGV0aW5nOiExLHBhbmVsczpudWxsLGhpZGRlblRvb2x0aXA6ITAsX2luaXRQYW5lbHM6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3BhbmVsczpbXSx2YWxpZGF0b3JzOltdfSl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuY2hhbmdlU2l6ZSgpLHRoaXMudGl0bGVDaGFuZ2VkKCksdGhpcy5zZXQoImhpZGRlblRvb2x0aXAiLCEwKX0sY2hhbmdlU2l6ZTpmdW5jdGlvbigpeygwLHQuaXNFbXB0eSkodGhpcy5nZXQoIm1vZGVsLmRlc2NyaXB0aW9uIikpP3RoaXMuc2V0KCJtb2RhbC5tb2RhbENsYXNzIiwiZWRpdC1jYXRlZ29yeS1tb2RhbCBzbWFsbCIpOnRoaXMuc2V0KCJtb2RhbC5tb2RhbENsYXNzIiwiZWRpdC1jYXRlZ29yeS1tb2RhbCBmdWxsIil9LHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlkP0kxOG4udCgiY2F0ZWdvcnkuZWRpdF9kaWFsb2dfdGl0bGUiLHtjYXRlZ29yeU5hbWU6ZS5uYW1lfSk6STE4bi50KCJjYXRlZ29yeS5jcmVhdGUiKX0sdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXQoIm1vZGFsLnRpdGxlIix0aGlzLnRpdGxlKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuISghZSYmIWkpfHwoIXR8fCFuKX0sZGVsZXRlRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8ZXx8ITF9LGNhdGVnb3J5TmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gMDwoZT1lfHwiIikudHJpbSgpLmxlbmd0aD9lOkkxOG4udCgicHJldmlldyIpfSxzYXZlTGFiZWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT8ic2F2aW5nIjp0PyJjYXRlZ29yeS5zYXZlIjoiY2F0ZWdvcnkuY3JlYXRlIn0sYWN0aW9uczp7cmVnaXN0ZXJWYWxpZGF0b3I6ZnVuY3Rpb24oZSl7dGhpcy52YWxpZGF0b3JzLnB1c2goZSl9LHNhdmVDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciB0LGUsbj10aGlzO3RoaXMudmFsaWRhdG9ycy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KXx8KHQ9dGhpcy5tb2RlbCxlPXRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLHBhcnNlSW50KHQucGFyZW50X2NhdGVnb3J5X2lkLDEwKSksdGhpcy5zZXQoInNhdmluZyIsITApLHQuc2V0KCJwYXJlbnRDYXRlZ29yeSIsZSksdC5zYXZlKCkudGhlbihmdW5jdGlvbihlKXtuLnNldCgic2F2aW5nIiwhMSksbi5zZW5kKCJjbG9zZU1vZGFsIiksdC5zZXRQcm9wZXJ0aWVzKHtzbHVnOmUuY2F0ZWdvcnkuc2x1ZyxpZDplLmNhdGVnb3J5LmlkfSkscy5kZWZhdWx0LnJlZGlyZWN0VG8oIi9jLyIrYS5kZWZhdWx0LnNsdWdGb3IodCkrIi8iK3QuaWQpfSkuY2F0Y2goZnVuY3Rpb24oZSl7bi5mbGFzaCgoMCxvLmV4dHJhY3RFcnJvcikoZSksImVycm9yIiksbi5zZXQoInNhdmluZyIsITEpfSkpfSxkZWxldGVDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImRlbGV0aW5nIiwhMCksdGhpcy5zZW5kKCJoaWRlTW9kYWwiKSxib290Ym94LmNvbmZpcm0oSTE4bi50KCJjYXRlZ29yeS5kZWxldGVfY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/dC5tb2RlbC5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHMuZGVmYXVsdC5yZWRpcmVjdFRvKCIvY2F0ZWdvcmllcyIpfSxmdW5jdGlvbihlKXt0LmZsYXNoKCgwLG8uZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKSx0LnNlbmQoInJlb3Blbk1vZGFsIiksdC5kaXNwbGF5RXJyb3JzKFtJMThuLnQoImNhdGVnb3J5LmRlbGV0ZV9lcnJvciIpXSksdC5zZXQoImRlbGV0aW5nIiwhMSl9KToodC5zZW5kKCJyZW9wZW5Nb2RhbCIpLHQuc2V0KCJkZWxldGluZyIsITEpKX0pfSx0b2dnbGVEZWxldGVUb29sdGlwOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiaGlkZGVuVG9vbHRpcCIpfX19LCJfaW5pdFBhbmVscyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiX2luaXRQYW5lbHMiKSxnKSxsKGcsImNoYW5nZVNpemUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImNoYW5nZVNpemUiKSxnKSxsKGcsInRpdGxlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJ0aXRsZSIpLGcpLGwoZywidGl0bGVDaGFuZ2VkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJ0aXRsZUNoYW5nZWQiKSxnKSxsKGcsImRpc2FibGVkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJkaXNhYmxlZCIpLGcpLGwoZywiZGVsZXRlRGlzYWJsZWQiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImRlbGV0ZURpc2FibGVkIiksZyksbChnLCJjYXRlZ29yeU5hbWUiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImNhdGVnb3J5TmFtZSIpLGcpLGwoZywic2F2ZUxhYmVsIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJzYXZlTGFiZWwiKSxnKSxnKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLXRpbWVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSxzLHQsbixpLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5CVU1QX1RZUEU9ZS5SRU1JTkRFUl9UWVBFPWUuREVMRVRFX1NUQVRVU19UWVBFPWUuUFVCTElTSF9UT19DQVRFR09SWV9TVEFUVVNfVFlQRT1lLk9QRU5fU1RBVFVTX1RZUEU9ZS5DTE9TRV9TVEFUVVNfVFlQRT12b2lkIDA7ZS5DTE9TRV9TVEFUVVNfVFlQRT0iY2xvc2UiLGUuT1BFTl9TVEFUVVNfVFlQRT0ib3BlbiIsZS5QVUJMSVNIX1RPX0NBVEVHT1JZX1NUQVRVU19UWVBFPSJwdWJsaXNoX3RvX2NhdGVnb3J5IixlLkRFTEVURV9TVEFUVVNfVFlQRT0iZGVsZXRlIixlLlJFTUlOREVSX1RZUEU9InJlbWluZGVyIixlLkJVTVBfVFlQRT0iYnVtcCI7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChsPSgwLG4uZGVmYXVsdCkoIm1vZGVsLmNsb3NlZCIpLHU9KDAsbi5kZWZhdWx0KSgpLGM9KDAsbi5kZWZhdWx0KSgiaXNQdWJsaWMiLCJwdWJsaWNUaW1lclR5cGVzIiwicHJpdmF0ZVRpbWVyVHlwZXMiKSxkPSgwLG4uZGVmYXVsdCkoImlzUHVibGljIiwibW9kZWwudG9waWNfdGltZXIiLCJtb2RlbC5wcml2YXRlX3RvcGljX3RpbWVyIiksYShwPXtsb2FkaW5nOiExLGlzUHVibGljOiJ0cnVlIixwdWJsaWNUaW1lclR5cGVzOmZ1bmN0aW9uKGUpe3ZhciB0PVt7aWQ6ImNsb3NlIixuYW1lOkkxOG4udChlPyJ0b3BpYy50ZW1wX29wZW4udGl0bGUiOiJ0b3BpYy5hdXRvX2Nsb3NlLnRpdGxlIil9LHtpZDoib3BlbiIsbmFtZTpJMThuLnQoZT8idG9waWMuYXV0b19yZW9wZW4udGl0bGUiOiJ0b3BpYy50ZW1wX2Nsb3NlLnRpdGxlIil9LHtpZDoicHVibGlzaF90b19jYXRlZ29yeSIsbmFtZTpJMThuLnQoInRvcGljLnB1Ymxpc2hfdG9fY2F0ZWdvcnkudGl0bGUiKX0se2lkOiJidW1wIixuYW1lOkkxOG4udCgidG9waWMuYXV0b19idW1wLnRpdGxlIil9XTtyZXR1cm4gdGhpcy5jdXJyZW50VXNlci5nZXQoInN0YWZmIikmJnQucHVzaCh7aWQ6ImRlbGV0ZSIsbmFtZTpJMThuLnQoInRvcGljLmF1dG9fZGVsZXRlLnRpdGxlIil9KSx0fSxwcml2YXRlVGltZXJUeXBlczpmdW5jdGlvbigpe3JldHVyblt7aWQ6InJlbWluZGVyIixuYW1lOkkxOG4udCgidG9waWMucmVtaW5kZXIudGl0bGUiKX1dfSxzZWxlY3Rpb25zOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idHJ1ZSI9PT1lP3Q6bn0sdG9waWNUaW1lcjpmdW5jdGlvbihlLHQsbil7cmV0dXJuInRydWUiPT09ZT90Om59LF9zZXRUaW1lcjpmdW5jdGlvbihuLGUpe3ZhciBpPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSxvLmRlZmF1bHQudXBkYXRlU3RhdHVzKHRoaXMuZ2V0KCJtb2RlbC5pZCIpLG4sdGhpcy5nZXQoInRvcGljVGltZXIuYmFzZWRfb25fbGFzdF9wb3N0IiksZSx0aGlzLmdldCgidG9waWNUaW1lci5jYXRlZ29yeV9pZCIpKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0O24/KGkuc2VuZCgiY2xvc2VNb2RhbCIpLCgwLHMuc2V0UHJvcGVydGllcykoaS50b3BpY1RpbWVyLHtleGVjdXRlX2F0OmUuZXhlY3V0ZV9hdCxkdXJhdGlvbjplLmR1cmF0aW9uLGNhdGVnb3J5X2lkOmUuY2F0ZWdvcnlfaWR9KSxpLnNldCgibW9kZWwuY2xvc2VkIixlLmNsb3NlZCkpOih0PSJ0cnVlIj09PWkuaXNQdWJsaWM/InRvcGljX3RpbWVyIjoicHJpdmF0ZV90b3BpY190aW1lciIsaS5zZXQoIm1vZGVsLiIrdCxzLmRlZmF1bHQuY3JlYXRlKHt9KSksaS5zZXRQcm9wZXJ0aWVzKHtzZWxlY3Rpb246bnVsbH0pKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gaS5zZXQoImxvYWRpbmciLCExKX0pfSxhY3Rpb25zOntvbkNoYW5nZVN0YXR1c1R5cGU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiLGUpfSxvbkNoYW5nZVVwZGF0ZVRpbWU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIudXBkYXRlVGltZSIsZSl9LHNhdmVUaW1lcjpmdW5jdGlvbigpe3RoaXMuZ2V0KCJ0b3BpY1RpbWVyLnVwZGF0ZVRpbWUiKT90aGlzLl9zZXRUaW1lcih0aGlzLmdldCgidG9waWNUaW1lci51cGRhdGVUaW1lIiksdGhpcy5nZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSk6dGhpcy5mbGFzaChJMThuLnQoInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUudGltZV9mcmFtZV9yZXF1aXJlZCIpLCJhbGVydC1lcnJvciIpfSxyZW1vdmVUaW1lcjpmdW5jdGlvbigpe3RoaXMuX3NldFRpbWVyKG51bGwsdGhpcy5nZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSl9fX0sInB1YmxpY1RpbWVyVHlwZXMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInB1YmxpY1RpbWVyVHlwZXMiKSxwKSxhKHAsInByaXZhdGVUaW1lclR5cGVzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJwcml2YXRlVGltZXJUeXBlcyIpLHApLGEocCwic2VsZWN0aW9ucyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2VsZWN0aW9ucyIpLHApLGEocCwidG9waWNUaW1lciIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwidG9waWNUaW1lciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2VtYWlsLWxvZ2luIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi93ZWJhdXRobiJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJtb2RlbCIpLGM9KDAsdC5kZWZhdWx0KSgibW9kZWwiKSxsKGQ9e2xvY2tJbWFnZVVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2xvY2suc3ZnIiksc2Vjb25kRmFjdG9yUmVxdWlyZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VjdXJpdHlfa2V5X3JlcXVpcmVkfHxlLnNlY29uZF9mYWN0b3JfcmVxdWlyZWR9LHNlY29uZEZhY3Rvck1ldGhvZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zZWN1cml0eV9rZXlfcmVxdWlyZWQ/aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOmkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFB9LGFjdGlvbnM6e2ZpbmlzaExvZ2luOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXtzZWNvbmRfZmFjdG9yX21ldGhvZDp0aGlzLnNlY29uZEZhY3Rvck1ldGhvZH07dGhpcy5zZWN1cml0eUtleUNyZWRlbnRpYWw/ZS5zZWNvbmRfZmFjdG9yX3Rva2VuPXRoaXMuc2VjdXJpdHlLZXlDcmVkZW50aWFsOmUuc2Vjb25kX2ZhY3Rvcl90b2tlbj10aGlzLnNlY29uZEZhY3RvclRva2VuLCgwLHMuYWpheCkoe3VybDoiL3Nlc3Npb24vZW1haWwtbG9naW4vIit0aGlzLm1vZGVsLnRva2VuLHR5cGU6IlBPU1QiLGRhdGE6ZX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzP28uZGVmYXVsdC5yZWRpcmVjdFRvKCIvIik6dC5zZXQoIm1vZGVsLmVycm9yIixlLmVycm9yKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxhdXRoZW50aWNhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsYS5nZXRXZWJhdXRobkNyZWRlbnRpYWwpKHRoaXMubW9kZWwuY2hhbGxlbmdlLHRoaXMubW9kZWwuYWxsb3dlZF9jcmVkZW50aWFsX2lkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoImZpbmlzaExvZ2luIil9LGZ1bmN0aW9uKGUpe3Quc2V0KCJtb2RlbC5lcnJvciIsZSl9KX19fSwic2Vjb25kRmFjdG9yUmVxdWlyZWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlY29uZEZhY3RvclJlcXVpcmVkIiksZCksbChkLCJzZWNvbmRGYWN0b3JNZXRob2QiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlY29uZEZhY3Rvck1ldGhvZCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2V4Y2VwdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkPXtjbGFzc2VzOiJidG4tcHJpbWFyeSIsYWN0aW9uOiJiYWNrIixrZXk6ImVycm9ycy5idXR0b25zLmJhY2sifSxwPXtjbGFzc2VzOiIiLGFjdGlvbjoiYmFjayIsa2V5OiJlcnJvcnMuYnV0dG9ucy5iYWNrIn0sbT17Y2xhc3NlczoiYnRuLXByaW1hcnkiLGFjdGlvbjoidHJ5TG9hZGluZyIsa2V5OiJlcnJvcnMuYnV0dG9ucy5hZ2FpbiIsaWNvbjoic3luYyJ9LGY9e2NsYXNzZXM6ImJ0bi1wcmltYXJ5IixhY3Rpb246InRyeUxvYWRpbmciLGtleToiZXJyb3JzLmJ1dHRvbnMuZml4ZWQifTtlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCxzLm9uKSgiaW5pdCIpLGE9KDAscy5kZWZhdWx0KSgiaXNOZXR3b3JrIiwiaXNTZXJ2ZXIiLCJpc1Vua25vd24iKSxsPSgwLHMuZGVmYXVsdCkoIm5ldHdvcmtGaXhlZCIsImlzTmV0d29yayIsImlzU2VydmVyIiwiaXNVbmtub3duIiksdT0oMCxzLmRlZmF1bHQpKCJuZXR3b3JrRml4ZWQiLCJpc05ldHdvcmsiLCJpc1NlcnZlciIsImlzVW5rbm93biIpLG8oYz17dGhyb3duOm51bGwsbGFzdFRyYW5zaXRpb246bnVsbCxpc05ldHdvcms6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZ2V0KCJ0aHJvd24ucmVhZHlTdGF0ZSIpfHwidGltZW91dCI9PT10aGlzLmdldCgidGhyb3duLmpxVGV4dFN0YXR1cyIpfSxpc05vdEZvdW5kOigwLHQuZXF1YWwpKCJ0aHJvd24uc3RhdHVzIiw0MDQpLGlzRm9yYmlkZGVuOigwLHQuZXF1YWwpKCJ0aHJvd24uc3RhdHVzIiw0MDMpLGlzU2VydmVyOigwLHQuZ3RlKSgidGhyb3duLnN0YXR1cyIsNTAwKSxpc1Vua25vd246KDAsdC5ub25lKSgiaXNOZXR3b3JrIiwiaXNTZXJ2ZXIiKSxuZXR3b3JrRml4ZWQ6ITEsbG9hZGluZzohMSxfaW5pdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHJlYXNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTmV0d29yaz9JMThuLnQoImVycm9ycy5yZWFzb25zLm5ldHdvcmsiKTp0aGlzLmlzU2VydmVyP0kxOG4udCgiZXJyb3JzLnJlYXNvbnMuc2VydmVyIik6dGhpcy5pc05vdEZvdW5kP0kxOG4udCgiZXJyb3JzLnJlYXNvbnMubm90X2ZvdW5kIik6dGhpcy5pc0ZvcmJpZGRlbj9JMThuLnQoImVycm9ycy5yZWFzb25zLmZvcmJpZGRlbiIpOkkxOG4udCgiZXJyb3JzLnJlYXNvbnMudW5rbm93biIpfSxyZXF1ZXN0VXJsOigwLHQuYWxpYXMpKCJ0aHJvd24ucmVxdWVzdGVkVXJsIiksZGVzYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5ldHdvcmtGaXhlZD9JMThuLnQoImVycm9ycy5kZXNjLm5ldHdvcmtfZml4ZWQiKTp0aGlzLmlzTmV0d29yaz9JMThuLnQoImVycm9ycy5kZXNjLm5ldHdvcmsiKTp0aGlzLmlzTm90Rm91bmQ/STE4bi50KCJlcnJvcnMuZGVzYy5ub3RfZm91bmQiKTp0aGlzLmlzU2VydmVyP0kxOG4udCgiZXJyb3JzLmRlc2Muc2VydmVyIix7c3RhdHVzOnRoaXMuZ2V0KCJ0aHJvd24uc3RhdHVzIikrIiAiK3RoaXMuZ2V0KCJ0aHJvd24uc3RhdHVzVGV4dCIpfSk6STE4bi50KCJlcnJvcnMuZGVzYy51bmtub3duIil9LGVuYWJsZWRCdXR0b25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV0d29ya0ZpeGVkP1tmXTp0aGlzLmlzTmV0d29yaz9bcCxtXTpbZCxtXX0sYWN0aW9uczp7YmFjazpmdW5jdGlvbigpe3dpbmRvdy5oaXN0b3J5LmJhY2soKX0sdHJ5TG9hZGluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSwoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7ZS5sYXN0VHJhbnNpdGlvbi5yZXRyeSgpLGUuc2V0KCJsb2FkaW5nIiwhMSl9KX19fSwiaXNOZXR3b3JrIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImlzTmV0d29yayIpLGMpLG8oYywiX2luaXQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9pbml0IiksYyksbyhjLCJyZWFzb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInJlYXNvbiIpLGMpLG8oYywiZGVzYyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZGVzYyIpLGMpLG8oYywiZW5hYmxlZEJ1dHRvbnMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImVuYWJsZWRCdXR0b25zIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZXhwbGFpbi1yZXZpZXdhYmxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bG9hZGluZzpudWxsLHJldmlld2FibGVFeHBsYW5hdGlvbjpudWxsLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLHJldmlld2FibGVFeHBsYW5hdGlvbjpudWxsfSksdGhpcy5zdG9yZS5maW5kKCJyZXZpZXdhYmxlLWV4cGxhbmF0aW9uIix0aGlzLm1vZGVsLmlkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNldCgicmV2aWV3YWJsZUV4cGxhbmF0aW9uIixlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse25ld0ZlYXR1cmVkVG9waWM6bnVsbCxzYXZpbmc6ITEsbm9Ub3BpY1NlbGVjdGVkOigwLG8ubm9uZSkoIm5ld0ZlYXR1cmVkVG9waWMiKSxvbkNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXQoIm5ld0ZlYXR1cmVkVG9waWMiLG51bGwpfSxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsImNob29zZS10b3BpYy1tb2RhbCIpfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCxpLmFqYXgpKCIvdS8iK3RoaXMubW9kZWwudXNlcm5hbWUrIi9mZWF0dXJlLXRvcGljIix7dHlwZToiUFVUIixkYXRhOnt0b3BpY19pZDp0aGlzLm5ld0ZlYXR1cmVkVG9waWMuaWR9fSkudGhlbihmdW5jdGlvbigpe2UubW9kZWwuc2V0KCJmZWF0dXJlZF90b3BpYyIsZS5uZXdGZWF0dXJlZFRvcGljKSxlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSxuZXdUb3BpY1NlbGVjdGVkOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJuZXdGZWF0dXJlZFRvcGljIixlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9mZWF0dXJlLXRvcGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscCxtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChsPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5IiksdT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeUxpbmsiLCJtb2RlbC5waW5uZWRfZ2xvYmFsbHkiLCJtb2RlbC5waW5uZWRfdW50aWwiKSxjPSgwLHQuZGVmYXVsdCkoImNhdGVnb3J5TGluayIpLGQ9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnlMaW5rIiwicGlubmVkSW5DYXRlZ29yeUNvdW50IikscD0oMCx0LmRlZmF1bHQpKCJwYXJzZWRQaW5uZWRJbkNhdGVnb3J5VW50aWwiKSxtPSgwLHQuZGVmYXVsdCkoInBhcnNlZFBpbm5lZEdsb2JhbGx5VW50aWwiKSxmPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnBpbm5lZEluQ2F0ZWdvcnlVbnRpbCIpLGg9KDAsdC5kZWZhdWx0KSgibW9kZWwucGlubmVkR2xvYmFsbHlVbnRpbCIpLGI9KDAsdC5kZWZhdWx0KSgicGluRGlzYWJsZWQiKSxnPSgwLHQuZGVmYXVsdCkoInBpbkdsb2JhbGx5RGlzYWJsZWQiKSxhKHY9e3RvcGljQ29udHJvbGxlcjooMCxuLmluamVjdCkoInRvcGljIiksbG9hZGluZzohMCxwaW5uZWRJbkNhdGVnb3J5Q291bnQ6MCxwaW5uZWRHbG9iYWxseUNvdW50OjAsYmFubmVyQ291bnQ6MCxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7Im1vZGVsLnBpbm5lZEluQ2F0ZWdvcnlVbnRpbCI6bnVsbCwibW9kZWwucGlubmVkR2xvYmFsbHlVbnRpbCI6bnVsbCxwaW5JbkNhdGVnb3J5VGlwU2hvd25BdDohMSxwaW5HbG9iYWxseVRpcFNob3duQXQ6ITF9KX0sY2F0ZWdvcnlMaW5rOmZ1bmN0aW9uKGUpe3JldHVybigwLG8uY2F0ZWdvcnlMaW5rSFRNTCkoZSx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9LHVuUGluTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9InRvcGljLmZlYXR1cmVfdG9waWMudW5waW4iO3QmJihpKz0iX2dsb2JhbGx5IiksbW9tZW50KG4pPm1vbWVudCgpJiYoaSs9Il91bnRpbCIpO3ZhciBzPW1vbWVudChuKS5mb3JtYXQoIkxMIik7cmV0dXJuIEkxOG4udChpLHtjYXRlZ29yeUxpbms6ZSx1bnRpbDpzfSl9LHBpbk1lc3NhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgidG9waWMuZmVhdHVyZV90b3BpYy5waW4iLHtjYXRlZ29yeUxpbms6ZX0pfSxhbHJlYWR5UGlubmVkTWVzc2FnZTpmdW5jdGlvbihlLHQpe3ZhciBuPTA9PT10PyJ0b3BpYy5mZWF0dXJlX3RvcGljLm5vdF9waW5uZWQiOiJ0b3BpYy5mZWF0dXJlX3RvcGljLmFscmVhZHlfcGlubmVkIjtyZXR1cm4gSTE4bi50KG4se2NhdGVnb3J5TGluazplLGNvdW50OnR9KX0scGluRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIXRoaXMuX2lzRGF0ZVZhbGlkKGUpfSxwaW5HbG9iYWxseURpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLl9pc0RhdGVWYWxpZChlKX0scGFyc2VkUGlubmVkSW5DYXRlZ29yeVVudGlsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJzZURhdGUoZSl9LHBhcnNlZFBpbm5lZEdsb2JhbGx5VW50aWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcnNlRGF0ZShlKX0scGluSW5DYXRlZ29yeVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMucGluX3ZhbGlkYXRpb24iKX0pfSxwaW5HbG9iYWxseVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMucGluX3ZhbGlkYXRpb24iKX0pfSxfcGFyc2VEYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBtb21lbnQoZSxbIllZWVktTU0tREQiLCJZWVlZLU1NLUREIEhIOm1tIl0pfSxfaXNEYXRlVmFsaWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNWYWxpZCgpJiZlPm1vbWVudCgpfSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnNldCgibG9hZGluZyIsITApLCgwLGkuYWpheCkoIi90b3BpY3MvZmVhdHVyZV9zdGF0cy5qc29uIix7ZGF0YTp7Y2F0ZWdvcnlfaWQ6dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3J5LmlkIil9fSkudGhlbihmdW5jdGlvbihlKXtlJiZ0LnNldFByb3BlcnRpZXMoe3Bpbm5lZEluQ2F0ZWdvcnlDb3VudDplLnBpbm5lZF9pbl9jYXRlZ29yeV9jb3VudCxwaW5uZWRHbG9iYWxseUNvdW50OmUucGlubmVkX2dsb2JhbGx5X2NvdW50LGJhbm5lckNvdW50OmUuYmFubmVyX2NvdW50fSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0sX2ZvcndhcmRBY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy50b3BpY0NvbnRyb2xsZXIuc2VuZChlKSx0aGlzLnNlbmQoImNsb3NlTW9kYWwiKX0sX2NvbmZpcm1CZWZvcmVQaW5uaW5nOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzO2U8ND90aGlzLl9mb3J3YXJkQWN0aW9uKG4pOih0aGlzLnNlbmQoImhpZGVNb2RhbCIpLGJvb3Rib3guY29uZmlybShJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMuY29uZmlybV8iK3Qse2NvdW50OmV9KSxJMThuLnQoIm5vX3ZhbHVlIiksSTE4bi50KCJ5ZXNfdmFsdWUiKSxmdW5jdGlvbihlKXtyZXR1cm4gZT9pLl9mb3J3YXJkQWN0aW9uKG4pOmkuc2VuZCgicmVvcGVuTW9kYWwiKX0pKX0sYWN0aW9uczp7cGluOmZ1bmN0aW9uKCl7dGhpcy5waW5EaXNhYmxlZD90aGlzLnNldCgicGluSW5DYXRlZ29yeVRpcFNob3duQXQiLERhdGUubm93KCkpOnRoaXMuX2ZvcndhcmRBY3Rpb24oInRvZ2dsZVBpbm5lZCIpfSxwaW5HbG9iYWxseTpmdW5jdGlvbigpe3RoaXMucGluR2xvYmFsbHlEaXNhYmxlZD90aGlzLnNldCgicGluR2xvYmFsbHlUaXBTaG93bkF0IixEYXRlLm5vdygpKTp0aGlzLl9jb25maXJtQmVmb3JlUGlubmluZyh0aGlzLnBpbm5lZEdsb2JhbGx5Q291bnQsInBpbl9nbG9iYWxseSIsInBpbkdsb2JhbGx5Iil9LHVucGluOmZ1bmN0aW9uKCl7dGhpcy5fZm9yd2FyZEFjdGlvbigidG9nZ2xlUGlubmVkIil9LG1ha2VCYW5uZXI6ZnVuY3Rpb24oKXt0aGlzLl9mb3J3YXJkQWN0aW9uKCJtYWtlQmFubmVyIil9LHJlbW92ZUJhbm5lcjpmdW5jdGlvbigpe3RoaXMuX2ZvcndhcmRBY3Rpb24oInJlbW92ZUJhbm5lciIpfX19LCJjYXRlZ29yeUxpbmsiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImNhdGVnb3J5TGluayIpLHYpLGEodiwidW5QaW5NZXNzYWdlIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJ1blBpbk1lc3NhZ2UiKSx2KSxhKHYsInBpbk1lc3NhZ2UiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbk1lc3NhZ2UiKSx2KSxhKHYsImFscmVhZHlQaW5uZWRNZXNzYWdlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJhbHJlYWR5UGlubmVkTWVzc2FnZSIpLHYpLGEodiwicGluRGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkRpc2FibGVkIiksdiksYSh2LCJwaW5HbG9iYWxseURpc2FibGVkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJwaW5HbG9iYWxseURpc2FibGVkIiksdiksYSh2LCJwYXJzZWRQaW5uZWRJbkNhdGVnb3J5VW50aWwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBhcnNlZFBpbm5lZEluQ2F0ZWdvcnlVbnRpbCIpLHYpLGEodiwicGFyc2VkUGlubmVkR2xvYmFsbHlVbnRpbCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwicGFyc2VkUGlubmVkR2xvYmFsbHlVbnRpbCIpLHYpLGEodiwicGluSW5DYXRlZ29yeVZhbGlkYXRpb24iLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIiksdiksYSh2LCJwaW5HbG9iYWxseVZhbGlkYXRpb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkdsb2JhbGx5VmFsaWRhdGlvbiIpLHYpLHYpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2ZsYWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL2FjdGlvbi1zdW1tYXJ5IiwiZGlzY291cnNlL21vZGVscy9wb3N0LWFjdGlvbi10eXBlIiwiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4scixpLHMsYSxvLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscCxtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwoZD0oMCx0LmRlZmF1bHQpKCJzcGFtbWVyRGV0YWlscy5jYW5EZWxldGUiLCJzZWxlY3RlZC5uYW1lX2tleSIpLHA9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiksbT0oMCx0LmRlZmF1bHQpKCJwb3N0IiwiZmxhZ1RvcGljIiwibW9kZWwuYWN0aW9uc19zdW1tYXJ5LkBlYWNoLmNhbl9hY3QiKSxmPSgwLHQuZGVmYXVsdCkoInBvc3QiLCJmbGFnVG9waWMiLCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkuQGVhY2guY2FuX2FjdCIpLGg9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciLCJtZXNzYWdlLmxlbmd0aCIpLGI9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiwic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciKSxnPSgwLHQuZGVmYXVsdCkoInNlbGVjdGVkLmlzX2N1c3RvbV9mbGFnIiksdj0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZC5pc19jdXN0b21fZmxhZyIsImZsYWdUb3BpYyIpLHk9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiwic2VsZWN0ZWQubmFtZV9rZXkiKSxjKF89e2FkbWluVG9vbHM6KDAsbC5kZWZhdWx0KSgpLHVzZXJEZXRhaWxzOm51bGwsc2VsZWN0ZWQ6bnVsbCxmbGFnVG9waWM6bnVsbCxtZXNzYWdlOm51bGwsaXNXYXJuaW5nOiExLHRvcGljQWN0aW9uQnlOYW1lOm51bGwsc3BhbW1lckRldGFpbHM6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWQ6bnVsbCxzcGFtbWVyRGV0YWlsczpudWxsfSk7dmFyIGU9dGhpcy5hZG1pblRvb2xzO2UmJmUuY2hlY2tTcGFtbWVyKHRoaXMuZ2V0KCJtb2RlbC51c2VyX2lkIikpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInNwYW1tZXJEZXRhaWxzIixlKX0pfSxzaG93RGVsZXRlU3BhbW1lcjpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYic3BhbSI9PT10fSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZmxhZ2dpbmdfdG9waWMudGl0bGUiOiJmbGFnZ2luZy50aXRsZSJ9LGZsYWdzQXZhaWxhYmxlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZih0aGlzLmZsYWdUb3BpYyl7dmFyIHQ9ci5kZWZhdWx0LmNyZWF0ZSgpLGk9dGhpcy5tb2RlbDtyZXR1cm4gaS5nZXQoImFjdGlvbnNfc3VtbWFyeSIpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mbGFnVG9waWM9aSxlLmFjdGlvblR5cGU9bi5zaXRlLnRvcGljRmxhZ1R5cGVCeUlkKGUuaWQpLHQuc2V0KGUuYWN0aW9uVHlwZS5nZXQoIm5hbWVfa2V5IiksYS5kZWZhdWx0LmNyZWF0ZShlKSl9KSx0aGlzLnNldCgidG9waWNBY3Rpb25CeU5hbWUiLHQpLHRoaXMuc2l0ZS5nZXQoInRvcGljX2ZsYWdfdHlwZXMiKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0KCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkiKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5nZXQoImlkIikmJmUuY2FuX2FjdH0pfSl9dmFyIGUscz10aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKSxvPXMuaW5kZXhPZihzLmZpbHRlckJ5KCJuYW1lX2tleSIsIm5vdGlmeV91c2VyIilbMF0pO3JldHVybi0xIT09byYmKGU9c1tvXSxzLnNwbGljZShvLDEpLHMuc3BsaWNlKDAsMCxlKSksc30sc3RhZmZGbGFnc0F2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKSYmMTx0aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKS5sZW5ndGh9LHN1Ym1pdEVuYWJsZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdGVkO2lmKCFlKXJldHVybiExO2lmKGUuZ2V0KCJpc19jdXN0b21fZmxhZyIpKXt2YXIgdD10aGlzLmdldCgibWVzc2FnZS5sZW5ndGgiKXx8MDtyZXR1cm4gdD49RGlzY291cnNlLlNpdGVTZXR0aW5ncy5taW5fcGVyc29uYWxfbWVzc2FnZV9wb3N0X2xlbmd0aCYmdDw9by5NQVhfTUVTU0FHRV9MRU5HVEh9cmV0dXJuITB9LHN1Ym1pdERpc2FibGVkOigwLG4ubm90KSgic3VibWl0RW5hYmxlZCIpLGNhblRha2VBY3Rpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmIXQmJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxzdWJtaXRJY29uOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJlbnZlbG9wZSI6ImZsYWcifSxzdWJtaXRMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiBlP3Q/ImZsYWdnaW5nX3RvcGljLm5vdGlmeV9hY3Rpb24iOiJmbGFnZ2luZy5ub3RpZnlfYWN0aW9uIjp0PyJmbGFnZ2luZ190b3BpYy5hY3Rpb24iOiJmbGFnZ2luZy5hY3Rpb24ifSxhY3Rpb25zOntkZWxldGVTcGFtbWVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zcGFtbWVyRGV0YWlscztlJiZlLmRlbGV0ZVVzZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pfSx0YWtlQWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjcmVhdGVGbGFnIix7dGFrZUFjdGlvbjohMH0pLHRoaXMuc2V0KCJtb2RlbC5oaWRkZW4iLCEwKX0sY3JlYXRlRmxhZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dm9pZCAwLG49dGhpcy5mbGFnVG9waWM/dGhpcy5nZXQoInRvcGljQWN0aW9uQnlOYW1lLiIrdGhpcy5nZXQoInNlbGVjdGVkLm5hbWVfa2V5IikpOnRoaXMuZ2V0KCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkiKS5maW5kQnkoImlkIix0aGlzLmdldCgic2VsZWN0ZWQuaWQiKSksaT10aGlzLmdldCgic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciKT97bWVzc2FnZTp0aGlzLm1lc3NhZ2V9Ont9O2UmJihpPSQuZXh0ZW5kKGksZSkpLHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIodGhpcy5mbGFnVG9waWM/InRvcGljOmZsYWctY3JlYXRlZCI6InBvc3Q6ZmxhZy1jcmVhdGVkIix0aGlzLm1vZGVsLG4saSksdGhpcy5zZW5kKCJoaWRlTW9kYWwiKSxuLmFjdCh0aGlzLm1vZGVsLGkpLnRoZW4oZnVuY3Rpb24oKXt0LnNlbmQoImNsb3NlTW9kYWwiKSxpLm1lc3NhZ2UmJnQuc2V0KCJtZXNzYWdlIiwiIiksdC5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOnQuZ2V0KCJtb2RlbC5pZCIpfSl9KS5jYXRjaChmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSwoMCx1LnBvcHVwQWpheEVycm9yKShlKX0pfSxjcmVhdGVGbGFnQXNXYXJuaW5nOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjcmVhdGVGbGFnIix7aXNXYXJuaW5nOiEwfSksdGhpcy5zZXQoIm1vZGVsLmhpZGRlbiIsITApfSxjaGFuZ2VQb3N0QWN0aW9uVHlwZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWQiLGUpfX0sY2FuU2VuZFdhcm5pbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmdGhpcy5jdXJyZW50VXNlci5nZXQoInN0YWZmIikmJiJub3RpZnlfdXNlciI9PT10fX0sInNob3dEZWxldGVTcGFtbWVyIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJzaG93RGVsZXRlU3BhbW1lciIpLF8pLGMoXywidGl0bGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRpdGxlIiksXyksYyhfLCJmbGFnc0F2YWlsYWJsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiZmxhZ3NBdmFpbGFibGUiKSxfKSxjKF8sInN0YWZmRmxhZ3NBdmFpbGFibGUiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN0YWZmRmxhZ3NBdmFpbGFibGUiKSxfKSxjKF8sInN1Ym1pdEVuYWJsZWQiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN1Ym1pdEVuYWJsZWQiKSxfKSxjKF8sImNhblRha2VBY3Rpb24iLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNhblRha2VBY3Rpb24iKSxfKSxjKF8sInN1Ym1pdEljb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN1Ym1pdEljb24iKSxfKSxjKF8sInN1Ym1pdExhYmVsIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJzdWJtaXRMYWJlbCIpLF8pLGMoXywiY2FuU2VuZFdhcm5pbmciLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNhblNlbmRXYXJuaW5nIiksXyksXykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZm9yZ290LXBhc3N3b3JkIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxvLHMscixhKXsidXNlIHN0cmljdCI7dmFyIGwsdSxjLGQscCxtLGYsaDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChsPSgwLHQuZGVmYXVsdCkoImFjY291bnRFbWFpbE9yVXNlcm5hbWUiLCJkaXNhYmxlZCIpLGM9dT17b2ZmZXJIZWxwOm51bGwsaGVscFNlZW46ITEsc3VibWl0RGlzYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxuLmlzRW1wdHkpKChlfHwiIikudHJpbSgpKXx8dH0sb25TaG93OmZ1bmN0aW9uKCl7JC5jb29raWUoImVtYWlsIikmJnRoaXMuc2V0KCJhY2NvdW50RW1haWxPclVzZXJuYW1lIiwkLmNvb2tpZSgiZW1haWwiKSl9LGFjdGlvbnM6e29rOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LGhlbHA6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe29mZmVySGVscDpJMThuLnQoImZvcmdvdF9wYXNzd29yZC5oZWxwIix7YmFzZVBhdGg6RGlzY291cnNlLkJhc2VVcml9KSxoZWxwU2VlbjohMH0pfSxyZXNldFBhc3N3b3JkOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy5zdWJtaXREaXNhYmxlZHx8KHRoaXMuc2V0KCJkaXNhYmxlZCIsITApLHRoaXMuY2xlYXJGbGFzaCgpLCgwLG8uYWpheCkoIi9zZXNzaW9uL2ZvcmdvdF9wYXNzd29yZCIse2RhdGE6e2xvZ2luOnRoaXMuYWNjb3VudEVtYWlsT3JVc2VybmFtZS50cmltKCl9LHR5cGU6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0oMCxyLmVzY2FwZUV4cHJlc3Npb24pKHMuYWNjb3VudEVtYWlsT3JVc2VybmFtZSksbj0iZm9yZ290X3Bhc3N3b3JkLmNvbXBsZXRlXyIrKHQubWF0Y2goL0AvKT8iZW1haWwiOiJ1c2VybmFtZSIpLGk9dm9pZCAwOyEwPT09ZS51c2VyX2ZvdW5kPyhuKz0iX2ZvdW5kIixzLnNldCgiYWNjb3VudEVtYWlsT3JVc2VybmFtZSIsIiIpLHMuc2V0KCJvZmZlckhlbHAiLEkxOG4udChuLHtlbWFpbDp0LHVzZXJuYW1lOnR9KSkpOighMT09PWUudXNlcl9mb3VuZCYmKG4rPSJfbm90X2ZvdW5kIixpPSJlcnJvciIpLHMuZmxhc2goSTE4bi50KG4se2VtYWlsOnQsdXNlcm5hbWU6dH0pLGkpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3MuZmxhc2goKDAsYS5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3Muc2V0KCJkaXNhYmxlZCIsITEpfSkpLCExfX19LGQ9InN1Ym1pdERpc2FibGVkIixwPVtsXSxtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwic3VibWl0RGlzYWJsZWQiKSxmPXUsaD17fSxPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2hbZV09bVtlXX0pLGguZW51bWVyYWJsZT0hIWguZW51bWVyYWJsZSxoLmNvbmZpZ3VyYWJsZT0hIWguY29uZmlndXJhYmxlLCgidmFsdWUiaW4gaHx8aC5pbml0aWFsaXplcikmJihoLndyaXRhYmxlPSEwKSxoPXAuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYyxkLGUpfHxlfSxoKSxmJiZ2b2lkIDAhPT1oLmluaXRpYWxpemVyJiYoaC52YWx1ZT1oLmluaXRpYWxpemVyP2guaW5pdGlhbGl6ZXIuY2FsbChmKTp2b2lkIDAsaC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWguaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxkLGgpLGg9bnVsbCksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZnVsbC1wYWdlLXNlYXJjaCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3BhZ2UtdHJhY2tlciIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiXSxmdW5jdGlvbihlLHQsbixpLHIsYSxzLG8sbCx1LGMsZCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG0sZixoLGIsZyx2LHksdyx4LGssUCxqLFQsRSxPLFMsQyxNLEQsSSxMO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgQT1be25hbWU6STE4bi50KCJzZWFyY2gucmVsZXZhbmNlIiksaWQ6MH0se25hbWU6STE4bi50KCJzZWFyY2gubGF0ZXN0X3Bvc3QiKSxpZDoxLHRlcm06Im9yZGVyOmxhdGVzdCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLm1vc3RfbGlrZWQiKSxpZDoyLHRlcm06Im9yZGVyOmxpa2VzIn0se25hbWU6STE4bi50KCJzZWFyY2gubW9zdF92aWV3ZWQiKSxpZDozLHRlcm06Im9yZGVyOnZpZXdzIn0se25hbWU6STE4bi50KCJzZWFyY2gubGF0ZXN0X3RvcGljIiksaWQ6NCx0ZXJtOiJvcmRlcjpsYXRlc3RfdG9waWMifV07ZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKG09KDAscy5kZWZhdWx0KSgicmVzdWx0Q291bnQiKSxmPSgwLHMuZGVmYXVsdCkoInEiKSxoPSgwLHMuZGVmYXVsdCkoInEiKSxiPSgwLHMuZGVmYXVsdCkoInNraXBfY29udGV4dCIsImNvbnRleHQiKSxnPSgwLHMuZGVmYXVsdCkoImNvbnRleHQiLCJjb250ZXh0X2lkIiksdj0oMCxzLmRlZmF1bHQpKCJxIikseT0oMCxzLmRlZmF1bHQpKCJxIiksdz0oMCxzLmRlZmF1bHQpKCJjYW5DcmVhdGVUb3BpYyIsInNpdGVTZXR0aW5ncy5sb2dpbl9yZXF1aXJlZCIpLHg9KDAscy5vYnNlcnZlcykoInNvcnRPcmRlciIpLGs9KDAscy5vYnNlcnZlcykoIm1vZGVsIiksUD0oMCxzLmRlZmF1bHQpKCJxIiksaj0oMCxzLm9ic2VydmVzKSgicSIpLFQ9KDAscy5kZWZhdWx0KSgicSIpLEU9KDAscy5vYnNlcnZlcykoImxvYWRpbmciKSxPPSgwLHMuZGVmYXVsdCkoInJlc3VsdENvdW50Iiwibm9Tb3J0USIpLFM9KDAscy5vYnNlcnZlcykoIm1vZGVsLnBvc3RzLmxlbmd0aCIpLEM9KDAscy5kZWZhdWx0KSgiaGFzUmVzdWx0cyIpLE09KDAscy5kZWZhdWx0KSgibW9kZWwuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LmNhbl9jcmVhdGVfdG9waWMiKSxEPSgwLHMuZGVmYXVsdCkoInBhZ2UiKSxwKEk9e2FwcGxpY2F0aW9uOigwLGkuaW5qZWN0KSgpLGNvbXBvc2VyOigwLGkuaW5qZWN0KSgpLGJ1bGtTZWxlY3RFbmFibGVkOm51bGwsbG9hZGluZzohMSxxdWVyeVBhcmFtczpbInEiLCJleHBhbmRlZCIsImNvbnRleHRfaWQiLCJjb250ZXh0Iiwic2tpcF9jb250ZXh0Il0scTpudWxsLHNlbGVjdGVkOltdLGV4cGFuZGVkOiExLGNvbnRleHRfaWQ6bnVsbCxjb250ZXh0Om51bGwsc2VhcmNoaW5nOiExLHNvcnRPcmRlcjowLHNvcnRPcmRlcnM6QSxpbnZhbGlkU2VhcmNoOiExLHBhZ2U6MSxyZXN1bHRDb3VudDpudWxsLGhhc1Jlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIDA8KGV8fDApfSxoYXNBdXRvZm9jdXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdC5pc0VtcHR5KShlKX0saGlnaGxpZ2h0UXVlcnk6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gXy5yZWplY3QoZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oZSl7cmV0dXJuImwiPT09ZX0pLmpvaW4oIiAiKX0sc2VhcmNoQ29udGV4dEVuYWJsZWQ6e2dldDpmdW5jdGlvbihlLHQpe3JldHVybiFlJiZ0fHwiZmFsc2UiPT09ZX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJza2lwX2NvbnRleHQiLGU/ImZhbHNlIjoidHJ1ZSIpfX0sc2VhcmNoQ29udGV4dERlc2NyaXB0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dDtpZigiY2F0ZWdvcnkiPT09ZSl7dmFyIGk9by5kZWZhdWx0LmZpbmRCeUlkKHQpO2lmKCFpKXJldHVybjtuPWkuZ2V0KCJuYW1lIil9cmV0dXJuKDAsYS5zZWFyY2hDb250ZXh0RGVzY3JpcHRpb24pKGUsbil9LHNlYXJjaEFjdGl2ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxhLmlzVmFsaWRTZWFyY2hUZXJtKShlKX0sbm9Tb3J0UTpmdW5jdGlvbihlKXtyZXR1cm4gZT10aGlzLmNsZWFuVGVybShlKSwoMCxsLmVzY2FwZUV4cHJlc3Npb24pKGUpfSxzaG93U3VnZ2VzdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiBlfHwhdH0sX3NlYXJjaE9uU29ydENoYW5nZTohMCxzZXRTZWFyY2hUZXJtOmZ1bmN0aW9uKGUpe3RoaXMuX3NlYXJjaE9uU29ydENoYW5nZT0hMSxlPXRoaXMuY2xlYW5UZXJtKGUpLHRoaXMuX3NlYXJjaE9uU29ydENoYW5nZT0hMCx0aGlzLnNldCgic2VhcmNoVGVybSIsZSl9LGNsZWFuVGVybTpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiB0JiZBLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50ZXJtJiZ0Lm1hdGNoKG5ldyBSZWdFeHAoZS50ZXJtKyJcXGIiKSkmJihuLnNldCgic29ydE9yZGVyIixlLmlkKSx0PSh0PXQucmVwbGFjZShuZXcgUmVnRXhwKGUudGVybSsiXFxiIiwiZyIpLCIiKSkudHJpbSgpKX0pLHR9LHRyaWdnZXJTZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLl9zZWFyY2hPblNvcnRDaGFuZ2UmJih0aGlzLnNldCgicGFnZSIsMSksdGhpcy5fc2VhcmNoKCkpfSxtb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlYXJjaFRlcm0hPT10aGlzLnEmJnRoaXMuc2V0U2VhcmNoVGVybSh0aGlzLnEpfSxzaG93TGlrZUNvdW50OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYtMTxlLmluZGV4T2YoIm9yZGVyOmxpa2VzIil9LHFDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbCYmdGhpcy5nZXQoIm1vZGVsLnEiKSE9PXRoaXMucSYmKHRoaXMuc2V0U2VhcmNoVGVybSh0aGlzLnEpLHRoaXMuc2VuZCgic2VhcmNoIikpfSxpc1ByaXZhdGVNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0aGlzLmN1cnJlbnRVc2VyJiYoLTE8ZS5pbmRleE9mKCJpbjpwZXJzb25hbCIpfHwtMTxlLmluZGV4T2YoInBlcnNvbmFsX21lc3NhZ2VzOiIrdGhpcy5jdXJyZW50VXNlci5nZXQoInVzZXJuYW1lX2xvd2VyIikpKX0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMubG9hZGluZyl9LHJlc3VsdENvdW50TGFiZWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lJTUwPT0wPyIrIjoiIjtyZXR1cm4gSTE4bi50KCJzZWFyY2gucmVzdWx0X2NvdW50Iix7Y291bnQ6ZSxwbHVzOm4sdGVybTp0fSl9LHJlc3VsdENvdW50Q2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJyZXN1bHRDb3VudCIsdGhpcy5nZXQoIm1vZGVsLnBvc3RzLmxlbmd0aCIpKX0sY2FuQnVsa1NlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5zdGFmZiYmZX0sY2FuQ3JlYXRlVG9waWM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJmV9LGlzTGFzdFBhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIDEwPT09ZX0sc2VhcmNoQnV0dG9uRGlzYWJsZWQ6KDAsbi5vcikoInNlYXJjaGluZyIsImxvYWRpbmciKSxfc2VhcmNoOmZ1bmN0aW9uKCl7dmFyIGUsbix0LGkscyxvPXRoaXM7dGhpcy5zZWFyY2hpbmd8fCh0aGlzLnNldCgiaW52YWxpZFNlYXJjaCIsITEpLGU9dGhpcy5zZWFyY2hUZXJtLCgwLGEuaXNWYWxpZFNlYXJjaFRlcm0pKGUpPygxPT09KG49e3E6ZSxwYWdlOnRoaXMucGFnZX0pLnBhZ2U/KHRoaXMuc2V0KCJidWxrU2VsZWN0RW5hYmxlZCIsITEpLHRoaXMuc2VsZWN0ZWQuY2xlYXIoKSx0aGlzLnNldCgic2VhcmNoaW5nIiwhMCksKDAsZC5zY3JvbGxUb3ApKCkpOnRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKHQ9dGhpcy5zb3J0T3JkZXIpJiZBW3RdLnRlcm0mJihuLnErPSIgIitBW3RdLnRlcm0pLHRoaXMuc2V0KCJxIixuLnEpLCghKGk9dGhpcy5za2lwX2NvbnRleHQpJiZ0aGlzLmNvbnRleHR8fCJmYWxzZSI9PT1pKSYmKG4uc2VhcmNoX2NvbnRleHQ9e3R5cGU6dGhpcy5jb250ZXh0LGlkOnRoaXMuY29udGV4dF9pZH0pLHM9KDAsYS5nZXRTZWFyY2hLZXkpKG4pLCgwLHIuYWpheCkoIi9zZWFyY2giLHtkYXRhOm59KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PSgwLGEudHJhbnNsYXRlUmVzdWx0cykoZSl8fHt9O2UuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0JiZvLnNldCgicSIsZS5ncm91cGVkX3NlYXJjaF9yZXN1bHQudGVybSksMTxuLnBhZ2U/dCYmKG8ubW9kZWwucG9zdHMucHVzaE9iamVjdHModC5wb3N0cyksby5tb2RlbC50b3BpY3MucHVzaE9iamVjdHModC50b3BpY3MpLG8ubW9kZWwuc2V0KCJncm91cGVkX3NlYXJjaF9yZXN1bHQiLGUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0KSk6KCgwLHUuc2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIse3NlYXJjaEtleTpzLG1vZGVsOnR9LDUpLHQuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0PWUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LG8uc2V0KCJtb2RlbCIsdCkpfSkuZmluYWxseShmdW5jdGlvbigpe28uc2V0KCJzZWFyY2hpbmciLCExKSxvLnNldCgibG9hZGluZyIsITEpfSkpOnRoaXMuc2V0KCJpbnZhbGlkU2VhcmNoIiwhMCkpfSxhY3Rpb25zOntjcmVhdGVUb3BpYzpmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMDstMT09PWUuaW5kZXhPZigiY2F0ZWdvcnk6Iil8fCh0PWUubWF0Y2goL2NhdGVnb3J5OihcUyopLykpJiZ0WzFdJiYobj10WzFdKSx0aGlzLmNvbXBvc2VyLm9wZW4oe2FjdGlvbjpjLmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OmMuZGVmYXVsdC5ORVdfVE9QSUNfS0VZLHRvcGljQ2F0ZWdvcnk6bn0pfSxzZWxlY3RBbGw6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkLmFkZE9iamVjdHModGhpcy5nZXQoIm1vZGVsLnBvc3RzIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljfSkpLCQoIi5mcHMtcmVzdWx0IGlucHV0W3R5cGU9Y2hlY2tib3hdIikucHJvcCgiY2hlY2tlZCIsITApfSxjbGVhckFsbDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWQuY2xlYXIoKSwkKCIuZnBzLXJlc3VsdCBpbnB1dFt0eXBlPWNoZWNrYm94XSIpLnByb3AoImNoZWNrZWQiLCExKX0sdG9nZ2xlQnVsa1NlbGVjdDpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoImJ1bGtTZWxlY3RFbmFibGVkIiksdGhpcy5zZWxlY3RlZC5jbGVhcigpfSxzZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLnNldCgicGFnZSIsMSksdGhpcy5fc2VhcmNoKCksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJnRoaXMuc2V0KCJleHBhbmRlZCIsITEpfSx0b2dnbGVBZHZhbmNlZFNlYXJjaDpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoImV4cGFuZGVkIil9LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYWdlO3RoaXMuZ2V0KCJtb2RlbC5ncm91cGVkX3NlYXJjaF9yZXN1bHQubW9yZV9mdWxsX3BhZ2VfcmVzdWx0cyIpJiYhdGhpcy5sb2FkaW5nJiZlPDEwJiYodGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgicGFnZSIpLHRoaXMuX3NlYXJjaCgpKX0sbG9nQ2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5nZXQoIm1vZGVsLmdyb3VwZWRfc2VhcmNoX3Jlc3VsdC5zZWFyY2hfbG9nX2lkIikmJmUmJigwLHIuYWpheCkoIi9zZWFyY2gvY2xpY2siLHt0eXBlOiJQT1NUIixkYXRhOntzZWFyY2hfbG9nX2lkOnRoaXMuZ2V0KCJtb2RlbC5ncm91cGVkX3NlYXJjaF9yZXN1bHQuc2VhcmNoX2xvZ19pZCIpLHNlYXJjaF9yZXN1bHRfaWQ6ZSxzZWFyY2hfcmVzdWx0X3R5cGU6InRvcGljIn19KX19fSwiaGFzUmVzdWx0cyIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaGFzUmVzdWx0cyIpLEkpLHAoSSwiaGFzQXV0b2ZvY3VzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoYXNBdXRvZm9jdXMiKSxJKSxwKEksImhpZ2hsaWdodFF1ZXJ5IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoaWdobGlnaHRRdWVyeSIpLEkpLHAoSSwic2VhcmNoQ29udGV4dEVuYWJsZWQiLFtiXSwoTD0oTD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInNlYXJjaENvbnRleHRFbmFibGVkIikpP0wudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBMfX0pLEkpLHAoSSwic2VhcmNoQ29udGV4dERlc2NyaXB0aW9uIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJzZWFyY2hDb250ZXh0RGVzY3JpcHRpb24iKSxJKSxwKEksInNlYXJjaEFjdGl2ZSIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2VhcmNoQWN0aXZlIiksSSkscChJLCJub1NvcnRRIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJub1NvcnRRIiksSSkscChJLCJzaG93U3VnZ2VzdGlvbiIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2hvd1N1Z2dlc3Rpb24iKSxJKSxwKEksInRyaWdnZXJTZWFyY2giLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInRyaWdnZXJTZWFyY2giKSxJKSxwKEksIm1vZGVsQ2hhbmdlZCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwibW9kZWxDaGFuZ2VkIiksSSkscChJLCJzaG93TGlrZUNvdW50IixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJzaG93TGlrZUNvdW50IiksSSkscChJLCJxQ2hhbmdlZCIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicUNoYW5nZWQiKSxJKSxwKEksImlzUHJpdmF0ZU1lc3NhZ2UiLFtUXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImlzUHJpdmF0ZU1lc3NhZ2UiKSxJKSxwKEksIl9zaG93Rm9vdGVyIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJfc2hvd0Zvb3RlciIpLEkpLHAoSSwicmVzdWx0Q291bnRMYWJlbCIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicmVzdWx0Q291bnRMYWJlbCIpLEkpLHAoSSwicmVzdWx0Q291bnRDaGFuZ2VkIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJyZXN1bHRDb3VudENoYW5nZWQiKSxJKSxwKEksImNhbkJ1bGtTZWxlY3QiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImNhbkJ1bGtTZWxlY3QiKSxJKSxwKEksImNhbkNyZWF0ZVRvcGljIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJjYW5DcmVhdGVUb3BpYyIpLEkpLHAoSSwiaXNMYXN0UGFnZSIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaXNMYXN0UGFnZSIpLEkpLEkpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyYW50LWJhZGdlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9taXhpbnMvZ3JhbnQtYmFkZ2UtY29udHJvbGxlciIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHUsYyxkLHAsbT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBmKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCxvLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHMiKSxjPSgwLHQuZGVmYXVsdCkoInBvc3QiKSxkPSgwLHQuZGVmYXVsdCkoInNhdmluZyIsInNlbGVjdGVkQmFkZ2VHcmFudGFibGUiKSxmKHA9e3RvcGljQ29udHJvbGxlcjooMCxuLmluamVjdCkoInRvcGljIiksbG9hZGluZzohMCxzYXZpbmc6ITEsc2VsZWN0ZWRCYWRnZUlkOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFsbEJhZGdlcz1bXSx0aGlzLnVzZXJCYWRnZXM9W119LHBvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInRvcGljQ29udHJvbGxlci5zZWxlY3RlZFBvc3RzIilbMF19LGJhZGdlUmVhc29uOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0KCJ1cmwiKSxuPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0O3JldHVybiAwPT09dC5pbmRleE9mKCIvIik/bit0OnR9LGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCF0fSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgcz10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCksKDAsbC5hbGwpKFtyLmRlZmF1bHQuZmluZEFsbCgpLGEuZGVmYXVsdC5maW5kQnlVc2VybmFtZSh0aGlzLmdldCgicG9zdC51c2VybmFtZSIpKV0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bShlLDIpLG49dFswXSxpPXRbMV07cy5zZXRQcm9wZXJ0aWVzKHthbGxCYWRnZXM6bix1c2VyQmFkZ2VzOmksbG9hZGluZzohMX0pfSl9LGFjdGlvbnM6e2dyYW50QmFkZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLmdyYW50QmFkZ2UodGhpcy5zZWxlY3RlZEJhZGdlSWQsdGhpcy5nZXQoInBvc3QudXNlcm5hbWUiKSx0aGlzLmJhZGdlUmVhc29uKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJzZWxlY3RlZEJhZGdlSWQiLG51bGwpLHQuZmxhc2goSTE4bi50KCJiYWRnZXMuc3VjY2Vzc2Z1bGx5X2dyYW50ZWQiLHt1c2VybmFtZTp0LmdldCgicG9zdC51c2VybmFtZSIpLGJhZGdlOmUuZ2V0KCJiYWRnZS5uYW1lIil9KSwic3VjY2VzcyIpfSxmdW5jdGlvbihlKXt0LmZsYXNoKCgwLGkuZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoInNhdmluZyIsITEpfSl9fX0sInBvc3QiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBvc3QiKSxwKSxmKHAsImJhZGdlUmVhc29uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJiYWRnZVJlYXNvbiIpLHApLGYocCwiYnV0dG9uRGlzYWJsZWQiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImJ1dHRvbkRpc2FibGVkIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHktcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz0oMCxuLm9ic2VydmVzKSgiY2FuTG9hZE1vcmUiKSxvPXtncm91cDooMCx0LmluamVjdCkoKSxncm91cEFjdGl2aXR5OigwLHQuaW5qZWN0KSgpLGFwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLGNhbkxvYWRNb3JlOiEwLGxvYWRpbmc6ITEsZW1wdHlUZXh0OigwLGkuZm10KSgidHlwZSIsImdyb3Vwcy5lbXB0eS4lQCIpLGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscyxvPXRoaXM7dGhpcy5jYW5Mb2FkTW9yZSYmKHRoaXMubG9hZGluZ3x8KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKHQ9dGhpcy5tb2RlbCkmJnQubGVuZ3RoJiYoZT10W3QubGVuZ3RoLTFdLmdldCgiaWQiKSxuPXRoaXMuZ2V0KCJncm91cC5tb2RlbCIpLGk9dGhpcy5nZXQoImdyb3VwQWN0aXZpdHkuY2F0ZWdvcnlfaWQiKSxzPXtiZWZvcmVQb3N0SWQ6ZSx0eXBlOnRoaXMudHlwZSxjYXRlZ29yeUlkOml9LG4uZmluZFBvc3RzKHMpLnRoZW4oZnVuY3Rpb24oZSl7dC5hZGRPYmplY3RzKGUpLDA9PT1lLmxlbmd0aCYmby5zZXQoImNhbkxvYWRNb3JlIiwhMSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7by5zZXQoImxvYWRpbmciLCExKX0pKSkpfX0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuY2FuTG9hZE1vcmUpfX0scj1vLGE9Il9zaG93Rm9vdGVyIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiX3Nob3dGb290ZXIiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHktdG9waWNzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHkiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cm91dGVyOigwLHQuaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsiY2F0ZWdvcnlfaWQiXX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWRkLW1lbWJlcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LGksbixzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKHI9KDAsdC5kZWZhdWx0KSgibW9kZWwudXNlcm5hbWVzIiwibG9hZGluZyIpLGw9YT17bG9hZGluZzohMSxzZXRBc093bmVyOiExLGRpc2FibGVBZGRCdXR0b246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8IWV8fCEoMDxlLmxlbmd0aCl9LGFjdGlvbnM6e2FkZE1lbWJlcnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCk7dmFyIGU9dGhpcy5tb2RlbCxuPWUuZ2V0KCJ1c2VybmFtZXMiKTsoMCxpLmlzRW1wdHkpKG4pfHwodGhpcy5zZXRBc093bmVyP2UuYWRkT3duZXJzKG4sITApOmUuYWRkTWVtYmVycyhuLCEwKSkudGhlbihmdW5jdGlvbigpe3QudHJhbnNpdGlvblRvUm91dGUoImdyb3VwLm1lbWJlcnMiLHQuZ2V0KCJtb2RlbC5uYW1lIikse3F1ZXJ5UGFyYW1zOntmaWx0ZXI6bn19KSxlLnNldCgidXNlcm5hbWVzIixudWxsKSx0LnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAscy5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9fX0sdT0iZGlzYWJsZUFkZEJ1dHRvbiIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVBZGRCdXR0b24iKSxwPWEsbT17fSxPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21bZV09ZFtlXX0pLG0uZW51bWVyYWJsZT0hIW0uZW51bWVyYWJsZSxtLmNvbmZpZ3VyYWJsZT0hIW0uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gbXx8bS5pbml0aWFsaXplcikmJihtLndyaXRhYmxlPSEwKSxtPWMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobCx1LGUpfHxlfSxtKSxwJiZ2b2lkIDAhPT1tLmluaXRpYWxpemVyJiYobS52YWx1ZT1tLmluaXRpYWxpemVyP20uaW5pdGlhbGl6ZXIuY2FsbChwKTp2b2lkIDAsbS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW0uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobCx1LG0pLG09bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYnVsay1hZGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJpbnB1dCIsImxvYWRpbmciLCJyZXN1bHQiKSx1PWw9e2xvYWRpbmc6ITEsZGlzYWJsZUFkZEJ1dHRvbjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHR8fCgwLGkuaXNFbXB0eSkoZSl8fGUubGVuZ3RoPD0wfHxufSxhY3Rpb25zOntjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLnNldCgicmVzdWx0IixudWxsKX0sYWRkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITAscmVzdWx0Om51bGx9KTt2YXIgZT10aGlzLmlucHV0LnNwbGl0KCJcbiIpLnVuaXEoKS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmxlbmd0aH0pOygwLHIuYWpheCkoIi9hZG1pbi9ncm91cHMvYnVsayIse2RhdGE6e3VzZXJzOmUsZ3JvdXBfaWQ6dGhpcy5nZXQoIm1vZGVsLmlkIil9LG1ldGhvZDoiUFVUIn0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInJlc3VsdCIsZSksZS51c2Vyc19ub3RfYWRkZWQmJnQuc2V0KCJyZXN1bHQuaW52YWxpZFVzZXJzIixlLnVzZXJzX25vdF9hZGRlZC5qb2luKCIsICIpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAscy5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3Quc2V0KCJsb2FkaW5nIiwhMSl9KX19fSxjPSJkaXNhYmxlQWRkQnV0dG9uIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZGlzYWJsZUFkZEJ1dHRvbiIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cC1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5vYnNlcnZlcykoImZpbHRlcklucHV0IiksbD0oMCxpLm9ic2VydmVzKSgib3JkZXIiLCJkZXNjIiwiZmlsdGVyIiksdT0oMCxpLmRlZmF1bHQpKCJvcmRlciIsImRlc2MiLCJmaWx0ZXIiKSxjPSgwLGkuZGVmYXVsdCkoIm1vZGVsLm1lbWJlcnMuW10iKSxkPSgwLGkuZGVmYXVsdCkoIm1vZGVsIikscihwPXthcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxxdWVyeVBhcmFtczpbIm9yZGVyIiwiZGVzYyIsImZpbHRlciJdLG9yZGVyOiIiLGRlc2M6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJJbnB1dDpudWxsLGxvYWRpbmc6ITEsaXNPd25lcjooMCxuLmFsaWFzKSgibW9kZWwuaXNfZ3JvdXBfb3duZXIiKSxzaG93QWN0aW9uczohMSxfc2V0RmlsdGVyOigwLG8uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfZmlsdGVyc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpbmRNZW1iZXJzKCEwKX0sZmluZE1lbWJlcnM6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzO3RoaXMubG9hZGluZ3x8KHQ9dGhpcy5tb2RlbCkmJighZSYmdC5tZW1iZXJzLmxlbmd0aD49dC51c2VyX2NvdW50P3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhMCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdC5maW5kTWVtYmVycyh0aGlzLm1lbWJlclBhcmFtcyxlKS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHQubWVtYmVycy5sZW5ndGg+PXQudXNlcl9jb3VudCksbi5zZXQoImxvYWRpbmciLCExKX0pKSl9LG1lbWJlclBhcmFtczpmdW5jdGlvbihlLHQsbil7cmV0dXJue29yZGVyOmUsZGVzYzp0LGZpbHRlcjpufX0saGFzTWVtYmVyczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMDxlLmxlbmd0aH0sY2FuTWFuYWdlR3JvdXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuY2FuTWFuYWdlR3JvdXAoZSl9LGZpbHRlclBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW4/Imdyb3Vwcy5tZW1iZXJzLmZpbHRlcl9wbGFjZWhvbGRlcl9hZG1pbiI6Imdyb3Vwcy5tZW1iZXJzLmZpbHRlcl9wbGFjZWhvbGRlciJ9LGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5maW5kTWVtYmVycygpfSx0b2dnbGVBY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0FjdGlvbnMiKX0sYWN0T25Hcm91cDpmdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlInJlbW92ZU1lbWJlciI6dGhpcy5zZW5kKCJyZW1vdmVNZW1iZXIiLGUpO2JyZWFrO2Nhc2UibWFrZU93bmVyIjp0aGlzLnNlbmQoIm1ha2VPd25lciIsZS51c2VybmFtZSk7YnJlYWs7Y2FzZSJyZW1vdmVPd25lciI6dGhpcy5zZW5kKCJyZW1vdmVPd25lciIsZSl9fSxyZW1vdmVNZW1iZXI6ZnVuY3Rpb24oZSl7dGhpcy5tb2RlbC5yZW1vdmVNZW1iZXIoZSx0aGlzLm1lbWJlclBhcmFtcyl9LG1ha2VPd25lcjpmdW5jdGlvbihlKXt0aGlzLm1vZGVsLmFkZE93bmVycyhlKX0scmVtb3ZlT3duZXI6ZnVuY3Rpb24oZSl7dGhpcy5tb2RlbC5yZW1vdmVPd25lcihlKX0sYWRkTWVtYmVyczpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnVzZXJuYW1lczt0JiYwPHQubGVuZ3RoJiZ0aGlzLm1vZGVsLmFkZE1lbWJlcnModCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgidXNlcm5hbWVzIixbXSl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX19fSwiX3NldEZpbHRlciIsW2FdLChtPShtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX3NldEZpbHRlciIpKT9tLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbX19KSxwKSxyKHAsIl9maWx0ZXJzQ2hhbmdlZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX2ZpbHRlcnNDaGFuZ2VkIikscCkscihwLCJtZW1iZXJQYXJhbXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm1lbWJlclBhcmFtcyIpLHApLHIocCwiaGFzTWVtYmVycyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaGFzTWVtYmVycyIpLHApLHIocCwiY2FuTWFuYWdlR3JvdXAiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhbk1hbmFnZUdyb3VwIikscCkscihwLCJmaWx0ZXJQbGFjZWhvbGRlciIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmaWx0ZXJQbGFjZWhvbGRlciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZS1sb2dzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiZmlsdGVycy5hY3Rpb24iLCJmaWx0ZXJzLmFjdGluZ191c2VyIiwiZmlsdGVycy50YXJnZXRfdXNlciIsImZpbHRlcnMuc3ViamVjdCIpLHI9KDAsaS5vYnNlcnZlcykoImZpbHRlcnMuYWN0aW9uIiwiZmlsdGVycy5hY3RpbmdfdXNlciIsImZpbHRlcnMudGFyZ2V0X3VzZXIiLCJmaWx0ZXJzLnN1YmplY3QiKSxhPSgwLGkub2JzZXJ2ZXMpKCJtb2RlbC5hbGxfbG9hZGVkIikscyhsPXtncm91cDooMCx0LmluamVjdCkoKSxsb2FkaW5nOiExLG9mZnNldDowLGFwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImZpbHRlcnMiLG4uZGVmYXVsdC5jcmVhdGUoKSl9LGZpbHRlclBhcmFtczpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm57YWN0aW9uOmUsYWN0aW5nX3VzZXI6dCx0YXJnZXRfdXNlcjpuLHN1YmplY3Q6aX19LF9yZWZyZXNoTW9kZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZ2V0KCJncm91cC5tb2RlbCIpLmZpbmRMb2dzKDAsdGhpcy5maWx0ZXJQYXJhbXMpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoIm9mZnNldCIsMCksdC5tb2RlbC5zZXRQcm9wZXJ0aWVzKHtsb2dzOmUubG9ncyxhbGxfbG9hZGVkOmUuYWxsX2xvYWRlZH0pfSl9LF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHRoaXMuZ2V0KCJtb2RlbC5hbGxfbG9hZGVkIikpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7b2Zmc2V0OjAsZmlsdGVyczpuLmRlZmF1bHQuY3JlYXRlKCl9KX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZ2V0KCJtb2RlbC5hbGxfbG9hZGVkIil8fCh0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMuZ2V0KCJncm91cC5tb2RlbCIpLmZpbmRMb2dzKHRoaXMub2Zmc2V0KzEsdGhpcy5maWx0ZXJQYXJhbXMpLnRoZW4oZnVuY3Rpb24oZSl7ZS5sb2dzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0KCJtb2RlbC5sb2dzIikuYWRkT2JqZWN0KGUpfSksdC5pbmNyZW1lbnRQcm9wZXJ0eSgib2Zmc2V0IiksdC5zZXQoIm1vZGVsLmFsbF9sb2FkZWQiLGUuYWxsX2xvYWRlZCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoImxvYWRpbmciLCExKX0pKX0sY2xlYXJGaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImZpbHRlcnMuIitlLCIiKX19fSwiZmlsdGVyUGFyYW1zIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJmaWx0ZXJQYXJhbXMiKSxsKSxzKGwsIl9yZWZyZXNoTW9kZWwiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9yZWZyZXNoTW9kZWwiKSxsKSxzKGwsIl9zaG93Rm9vdGVyIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2hvd0Zvb3RlciIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZS1wcm9maWxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2F2aW5nOm51bGx9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZSIsWyJleHBvcnRzIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5hdXRvbWF0aWMiKSxvPXtyb3V0ZXI6KDAsdC5pbmplY3QpKCksdGFiczpmdW5jdGlvbihlKXt2YXIgdD1be3JvdXRlOiJncm91cC5tYW5hZ2UucHJvZmlsZSIsdGl0bGU6Imdyb3Vwcy5tYW5hZ2UucHJvZmlsZS50aXRsZSJ9LHtyb3V0ZToiZ3JvdXAubWFuYWdlLmludGVyYWN0aW9uIix0aXRsZToiZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi50aXRsZSJ9LHtyb3V0ZToiZ3JvdXAubWFuYWdlLmxvZ3MiLHRpdGxlOiJncm91cHMubWFuYWdlLmxvZ3MudGl0bGUifV07cmV0dXJuIGV8fHQuc3BsaWNlKDEsMCx7cm91dGU6Imdyb3VwLm1hbmFnZS5tZW1iZXJzaGlwIix0aXRsZToiZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLnRpdGxlIn0pLHR9fSxyPW8sYT0idGFicyIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRhYnMiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtbWVzc2FnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cm91dGVyOigwLHQuaW5qZWN0KSgpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cC1yZXF1ZXN0cyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGE9KDAsbi5vYnNlcnZlcykoImZpbHRlcklucHV0IiksbD0oMCxuLm9ic2VydmVzKSgib3JkZXIiLCJkZXNjIiwiZmlsdGVyIiksdT0oMCxuLmRlZmF1bHQpKCJvcmRlciIsImRlc2MiLCJmaWx0ZXIiKSxjPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnJlcXVlc3RlcnMuW10iKSxyKGQ9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsib3JkZXIiLCJkZXNjIiwiZmlsdGVyIl0sb3JkZXI6IiIsZGVzYzpudWxsLGZpbHRlcjpudWxsLGZpbHRlcklucHV0Om51bGwsbG9hZGluZzohMSxfc2V0RmlsdGVyOigwLG8uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfZmlsdGVyc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpbmRSZXF1ZXN0ZXJzKCEwKX0sZmluZFJlcXVlc3RlcnM6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzO3RoaXMubG9hZGluZ3x8KHQ9dGhpcy5tb2RlbCkmJighZSYmdC5tZW1iZXJzLmxlbmd0aD49dC51c2VyX2NvdW50P3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhMCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdC5maW5kUmVxdWVzdGVycyh0aGlzLm1lbWJlclBhcmFtcyxlKS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHQucmVxdWVzdGVycy5sZW5ndGg+PXQudXNlcl9jb3VudCksbi5zZXQoImxvYWRpbmciLCExKX0pKSl9LG1lbWJlclBhcmFtczpmdW5jdGlvbihlLHQsbil7cmV0dXJue29yZGVyOmUsZGVzYzp0LGZpbHRlcjpufX0saGFzUmVxdWVzdGVyczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMDxlLmxlbmd0aH0sZmlsdGVyUGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbj8iZ3JvdXBzLm1lbWJlcnMuZmlsdGVyX3BsYWNlaG9sZGVyX2FkbWluIjoiZ3JvdXBzLm1lbWJlcnMuZmlsdGVyX3BsYWNlaG9sZGVyIn0saGFuZGxlUmVxdWVzdDpmdW5jdGlvbihlKXsoMCxpLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5nZXQoIm1vZGVsLmlkIikrIi9oYW5kbGVfbWVtYmVyc2hpcF9yZXF1ZXN0Lmpzb24iLHtkYXRhOmUsdHlwZToiUFVUIn0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3RoaXMuZmluZFJlcXVlc3RlcnMoKX0sYWNjZXB0UmVxdWVzdDpmdW5jdGlvbihlKXt0aGlzLmhhbmRsZVJlcXVlc3Qoe3VzZXJfaWQ6ZS5nZXQoImlkIiksYWNjZXB0OiEwfSksZS5zZXRQcm9wZXJ0aWVzKHtyZXF1ZXN0X2FjY2VwdGVkOiEwLHJlcXVlc3RfZGVuaWVkOiExfSl9LHVuZG9BY2NlcHRSZXF1ZXN0OmZ1bmN0aW9uKGUpeygwLGkuYWpheCkoIi9ncm91cHMvIit0aGlzLmdldCgibW9kZWwuaWQiKSsiL21lbWJlcnMuanNvbiIse3R5cGU6IkRFTEVURSIsZGF0YTp7dXNlcl9pZDplLmdldCgiaWQiKX19KS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInJlcXVlc3RfdW5kb25lIiwhMCl9KX0sZGVueVJlcXVlc3Q6ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVSZXF1ZXN0KHt1c2VyX2lkOmUuZ2V0KCJpZCIpfSksZS5zZXRQcm9wZXJ0aWVzKHtyZXF1ZXN0X2FjY2VwdGVkOiExLHJlcXVlc3RfZGVuaWVkOiEwfSl9fX0sIl9zZXRGaWx0ZXIiLFthXSwocD0ocD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9zZXRGaWx0ZXIiKSk/cC52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHB9fSksZCkscihkLCJfZmlsdGVyc0NoYW5nZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9maWx0ZXJzQ2hhbmdlZCIpLGQpLHIoZCwibWVtYmVyUGFyYW1zIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJtZW1iZXJQYXJhbXMiKSxkKSxyKGQsImhhc1JlcXVlc3RlcnMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImhhc1JlcXVlc3RlcnMiKSxkKSxyKGQsImZpbHRlclBsYWNlaG9sZGVyIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImZpbHRlclBsYWNlaG9sZGVyIiksZCksZCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYyxkLHAsbSxmO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaD10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMubmFtZTt0aGlzLnNldCgicm91dGUiLHRoaXMucm91dGV8fCJncm91cC4iK2UpLHRoaXMuc2V0KCJtZXNzYWdlIixJMThuLnQoImdyb3Vwcy4iKyh0aGlzLmkxOG5LZXl8fGUpKSl9fSk7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5kZWZhdWx0KSgic2hvd01lc3NhZ2VzIiwibW9kZWwudXNlcl9jb3VudCIsIm1vZGVsLnJlcXVlc3RfY291bnQiLCJjYW5NYW5hZ2VHcm91cCIsIm1vZGVsLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiKSxsPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmlzX2dyb3VwX3VzZXIiKSx1PSgwLGkuZGVmYXVsdCkoIm1vZGVsLmlzX2dyb3VwX293bmVyIiwibW9kZWwuYXV0b21hdGljIiksYz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5kaXNwbGF5TmFtZSIsIm1vZGVsLmZ1bGxfbmFtZSIpLGQ9KDAsaS5kZWZhdWx0KSgibW9kZWwubmFtZSIsIm1vZGVsLmZsYWlyX3VybCIsIm1vZGVsLmZsYWlyX2JnX2NvbG9yIiwibW9kZWwuZmxhaXJfY29sb3IiKSxwPSgwLGkuZGVmYXVsdCkoIm1vZGVsLm1lc3NhZ2VhYmxlIiksbT0oMCxpLmRlZmF1bHQpKCJtb2RlbCIsIm1vZGVsLmF1dG9tYXRpYyIpLHIoZj17YXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksY291bnRzOm51bGwsc2hvd2luZzoibWVtYmVycyIsZGVzdHJveWluZzpudWxsLHJvdXRlcjooMCxzLmluamVjdCkoKSxjdXJyZW50UGF0aDooMCxvLnJlYWRPbmx5KSgicm91dGVyLl9yb3V0ZXIuY3VycmVudFBhdGgiKSx0YWJzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG89aC5jcmVhdGUoe25hbWU6Im1lbWJlcnMiLHJvdXRlOiJncm91cC5pbmRleCIsaWNvbjoidXNlcnMiLGkxOG5LZXk6Im1lbWJlcnMudGl0bGUifSk7by5zZXQoImNvdW50Iix0KTt2YXIgcj1bbyxoLmNyZWF0ZSh7bmFtZToiYWN0aXZpdHkifSldO3JldHVybiBpJiZzJiZyLnB1c2goaC5jcmVhdGUoe25hbWU6InJlcXVlc3RzIixpMThuS2V5OiJyZXF1ZXN0cy50aXRsZSIsaWNvbjoidXNlci1wbHVzIixjb3VudDpufSkpLGUmJnIucHVzaChoLmNyZWF0ZSh7bmFtZToibWVzc2FnZXMiLGkxOG5LZXk6Im1lc3NhZ2VzIn0pKSxpJiZyLnB1c2goaC5jcmVhdGUoe25hbWU6Im1hbmFnZSIsaTE4bktleToibWFuYWdlLnRpdGxlIixpY29uOiJ3cmVuY2gifSkpLHJ9LHNob3dNZXNzYWdlczpmdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmKGV8fHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW4pfSxjYW5FZGl0R3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdCYmZX0sZ3JvdXBOYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHR8fGUpLmNhcGl0YWxpemUoKX0sYXZhdGFyRmxhaXJBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybntwcmltYXJ5X2dyb3VwX2ZsYWlyX3VybDp0LHByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3I6bixwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yOmkscHJpbWFyeV9ncm91cF9uYW1lOmV9fSxkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiZlfSxjYW5NYW5hZ2VHcm91cDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiYodGhpcy5jdXJyZW50VXNlci5jYW5NYW5hZ2VHcm91cChlKXx8dGhpcy5jdXJyZW50VXNlci5hZG1pbiYmdCl9LGFjdGlvbnM6e21lc3NhZ2VHcm91cDpmdW5jdGlvbigpe3RoaXMuc2VuZCgiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyIsdGhpcy5nZXQoIm1vZGVsLm5hbWUiKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5tb2RlbDt0aGlzLnNldCgiZGVzdHJveWluZyIsITApLGJvb3Rib3guY29uZmlybShJMThuLnQoImFkbWluLmdyb3Vwcy5kZWxldGVfY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/bi5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpe3QudHJhbnNpdGlvblRvUm91dGUoImdyb3Vwcy5pbmRleCIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKSxib290Ym94LmFsZXJ0KEkxOG4udCgiYWRtaW4uZ3JvdXBzLmRlbGV0ZV9mYWlsZWQiKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJkZXN0cm95aW5nIiwhMSl9KTp0LnNldCgiZGVzdHJveWluZyIsITEpfSl9fX0sInRhYnMiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsInRhYnMiKSxmKSxyKGYsInNob3dNZXNzYWdlcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwic2hvd01lc3NhZ2VzIiksZikscihmLCJjYW5FZGl0R3JvdXAiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsImNhbkVkaXRHcm91cCIpLGYpLHIoZiwiZ3JvdXBOYW1lIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLCJncm91cE5hbWUiKSxmKSxyKGYsImF2YXRhckZsYWlyQXR0cmlidXRlcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwiYXZhdGFyRmxhaXJBdHRyaWJ1dGVzIiksZikscihmLCJkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLCJkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uIiksZikscihmLCJjYW5NYW5hZ2VHcm91cCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwiY2FuTWFuYWdlR3JvdXAiKSxmKSxmKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cHMtaW5kZXgiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmV4dHJhcy50eXBlX2ZpbHRlcnMiKSxyPSgwLGkub2JzZXJ2ZXMpKCJmaWx0ZXJJbnB1dCIpLGE9KDAsaS5vYnNlcnZlcykoIm1vZGVsLmNhbkxvYWRNb3JlIikscyhsPXthcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxxdWVyeVBhcmFtczpbIm9yZGVyIiwiYXNjIiwiZmlsdGVyIiwidHlwZSJdLG9yZGVyOm51bGwsYXNjOm51bGwsZmlsdGVyOiIiLHR5cGU6bnVsbCx0eXBlczpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaCh7aWQ6ZSxuYW1lOkkxOG4udCgiZ3JvdXBzLmluZGV4LiIrZSsiX2dyb3VwcyIpfSl9KSx0fSxfc2V0RmlsdGVyOigwLG4uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3RoaXMubW9kZWwubG9hZE1vcmUoKX0sbmV3OmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgiZ3JvdXBzLm5ldyIpfX19LCJ0eXBlcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHlwZXMiKSxsKSxzKGwsIl9zZXRGaWx0ZXIiLFtyXSwodT0odT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9zZXRGaWx0ZXIiKSk/dS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSksbCkscyhsLCJfc2hvd0Zvb3RlciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX3Nob3dGb290ZXIiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cHMtbmV3IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzYXZpbmc6bnVsbCxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgic2F2aW5nIiwhMCk7dmFyIHQ9dGhpcy5tb2RlbDt0LmNyZWF0ZSgpLnRoZW4oZnVuY3Rpb24oKXtlLnRyYW5zaXRpb25Ub1JvdXRlKCJncm91cC5tZW1iZXJzIix0Lm5hbWUpfSkuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2aW5nIiwhMSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9oaXN0b3J5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdix5LF8sdyx4LGssUCxqLFQsRSxPLFMsQyxNLEQsSTtmdW5jdGlvbiBMKHQpe3JldHVybigwLGQuY29tcHV0ZWQpKHQsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldCh0KTtyZXR1cm4gZSYmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSkpLGV9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChtPSgwLHQub24pKCJpbml0IiksZj0oMCx0LmRlZmF1bHQpKCJwcmV2aW91c1ZlcnNpb24iLCJtb2RlbC5jdXJyZW50X3ZlcnNpb24iLCJtb2RlbC52ZXJzaW9uX2NvdW50IiksaD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5jcmVhdGVkX2F0IiksYj0oMCx0LmRlZmF1bHQpKCJtb2RlbC5jdXJyZW50X3ZlcnNpb24iKSxnPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iLCJtb2RlbC5wcmV2aW91c19yZXZpc2lvbiIpLHY9KDAsdC5kZWZhdWx0KSgibW9kZWwucHJldmlvdXNfaGlkZGVuIikseT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5wcmV2aW91c19oaWRkZW4iKSxfPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmxhc3RfcmV2aXNpb24iLCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwuY2FuX2VkaXQiLCJ0b3BpY0NvbnRyb2xsZXIiKSx3PSgwLHQuZGVmYXVsdCkoIm1vZGVsLndpa2kiKSx4PSgwLHQuZGVmYXVsdCkoKSxrPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnByZXZpb3VzX2hpZGRlbiIsIm1vZGVsLmN1cnJlbnRfaGlkZGVuIiwiZGlzcGxheWluZ0lubGluZSIpLFA9KDAsdC5kZWZhdWx0KSgiZGlzcGxheWluZ0lubGluZSIpLGo9KDAsdC5kZWZhdWx0KSgiZGlzcGxheWluZ1NpZGVCeVNpZGUiKSxUPSgwLHQuZGVmYXVsdCkoImRpc3BsYXlpbmdTaWRlQnlTaWRlTWFya2Rvd24iKSxFPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5X2lkX2NoYW5nZXMiKSxPPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5X2lkX2NoYW5nZXMiKSxTPSgwLHQuZGVmYXVsdCkoIm1vZGVsLndpa2lfY2hhbmdlcyIpLEM9KDAsdC5kZWZhdWx0KSgibW9kZWwucG9zdF90eXBlX2NoYW5nZXMiKSxNPSgwLHQuZGVmYXVsdCkoInZpZXdNb2RlIiwibW9kZWwudGl0bGVfY2hhbmdlcyIpLEQ9KDAsdC5vYnNlcnZlcykoInZpZXdNb2RlIiwibW9kZWwuYm9keV9jaGFuZ2VzIikscChJPXtsb2FkaW5nOiEwLHZpZXdNb2RlOiJzaWRlX2J5X3NpZGUiLF9jaGFuZ2VWaWV3TW9kZU9uTW9iaWxlOmZ1bmN0aW9uKCl7dGhpcy5zaXRlJiZ0aGlzLnNpdGUubW9iaWxlVmlldyYmdGhpcy5zZXQoInZpZXdNb2RlIiwiaW5saW5lIil9LHByZXZpb3VzRmVhdHVyZWRMaW5rOigwLG4uYWxpYXMpKCJtb2RlbC5mZWF0dXJlZF9saW5rX2NoYW5nZXMucHJldmlvdXMiKSxjdXJyZW50RmVhdHVyZWRMaW5rOigwLG4uYWxpYXMpKCJtb2RlbC5mZWF0dXJlZF9saW5rX2NoYW5nZXMuY3VycmVudCIpLHByZXZpb3VzVGFnQ2hhbmdlczpMKCJtb2RlbC50YWdzX2NoYW5nZXMucHJldmlvdXMiKSxjdXJyZW50VGFnQ2hhbmdlczpMKCJtb2RlbC50YWdzX2NoYW5nZXMuY3VycmVudCIpLHJldmlzaW9uc1RleHQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBJMThuLnQoInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmNvbXBhcmluZ19wcmV2aW91c190b19jdXJyZW50X291dF9vZl90b3RhbCIse3ByZXZpb3VzOmUsaWNvbjooMCxsLmljb25IVE1MKSgiYXJyb3dzLWFsdC1oIiksY3VycmVudDp0LHRvdGFsOm59KX0scmVmcmVzaDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSx1LmRlZmF1bHQubG9hZFJldmlzaW9uKGUsdCkudGhlbihmdW5jdGlvbihlKXtuLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITEsbW9kZWw6ZX0pfSl9LGhpZGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3UuZGVmYXVsdC5oaWRlUmV2aXNpb24oZSx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVmcmVzaChlLHQpfSl9LHNob3c6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3UuZGVmYXVsdC5zaG93UmV2aXNpb24oZSx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVmcmVzaChlLHQpfSl9LHJldmVydDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7dC5yZXZlcnRUb1JldmlzaW9uKG4pLnRoZW4oZnVuY3Rpb24oZSl7aS5yZWZyZXNoKHQuZ2V0KCJpZCIpLG4pLGUudG9waWMmJih0LnNldCgidG9waWMuc2x1ZyIsZS50b3BpYy5zbHVnKSx0LnNldCgidG9waWMudGl0bGUiLGUudG9waWMudGl0bGUpLHQuc2V0KCJ0b3BpYy5mYW5jeV90aXRsZSIsZS50b3BpYy5mYW5jeV90aXRsZSkpLGUuY2F0ZWdvcnlfaWQmJnQuc2V0KCJ0b3BpYy5jYXRlZ29yeSIsYy5kZWZhdWx0LmZpbmRCeUlkKGUuY2F0ZWdvcnlfaWQpKSxpLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnMmJmUuanFYSFIucmVzcG9uc2VKU09OLmVycm9yc1swXSYmYm9vdGJveC5hbGVydChlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnNbMF0pfSl9LGNyZWF0ZWRBdERhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoIkxMTEwiKX0scHJldmlvdXNWZXJzaW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlLTF9LGRpc3BsYXlHb1RvUHJldmlvdXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmdDxlfSxkaXNwbGF5UmV2aXNpb25zOigwLG4uZ3QpKCJtb2RlbC52ZXJzaW9uX2NvdW50IiwyKSxkaXNwbGF5R29Ub0ZpcnN0OigwLHIucHJvcGVydHlHcmVhdGVyVGhhbikoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iLCJtb2RlbC5maXJzdF9yZXZpc2lvbiIpLGRpc3BsYXlHb1RvTmV4dDooMCxyLnByb3BlcnR5TGVzc1RoYW4pKCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwubmV4dF9yZXZpc2lvbiIpLGRpc3BsYXlHb1RvTGFzdDooMCxyLnByb3BlcnR5TGVzc1RoYW4pKCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwubmV4dF9yZXZpc2lvbiIpLGhpZGVHb1RvRmlyc3Q6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub0ZpcnN0IiksaGlkZUdvVG9QcmV2aW91czooMCxuLm5vdCkoImRpc3BsYXlHb1RvUHJldmlvdXMiKSxoaWRlR29Ub05leHQ6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub05leHQiKSxoaWRlR29Ub0xhc3Q6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub0xhc3QiKSxsb2FkRmlyc3REaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvRmlyc3QiKSxsb2FkUHJldmlvdXNEaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvUHJldmlvdXMiKSxsb2FkTmV4dERpc2FibGVkOigwLG4ub3IpKCJsb2FkaW5nIiwiaGlkZUdvVG9OZXh0IiksbG9hZExhc3REaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvTGFzdCIpLGRpc3BsYXlTaG93OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKX0sZGlzcGxheUhpZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIWUmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxkaXNwbGF5RWRpdDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4hKCFufHwhaXx8ZSE9PXQpfSxlZGl0QnV0dG9uTGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLiIrKGU/ImVkaXRfd2lraSI6ImVkaXRfcG9zdCIpfSxkaXNwbGF5UmV2ZXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxpc0VpdGhlclJldmlzaW9uSGlkZGVuOigwLG4ub3IpKCJtb2RlbC5wcmV2aW91c19oaWRkZW4iLCJtb2RlbC5jdXJyZW50X2hpZGRlbiIpLGhpZGRlbkNsYXNzZXM6ZnVuY3Rpb24oZSx0LG4pe2lmKG4pcmV0dXJuIHRoaXMuaXNFaXRoZXJSZXZpc2lvbkhpZGRlbj8iaGlkZGVuLXJldmlzaW9uLWVpdGhlciI6bnVsbDt2YXIgaT1bXTtyZXR1cm4gZSYmaS5wdXNoKCJoaWRkZW4tcmV2aXNpb24tcHJldmlvdXMiKSx0JiZpLnB1c2goImhpZGRlbi1yZXZpc2lvbi1jdXJyZW50IiksaS5qb2luKCIgIil9LGRpc3BsYXlpbmdJbmxpbmU6KDAsbi5lcXVhbCkoInZpZXdNb2RlIiwiaW5saW5lIiksZGlzcGxheWluZ1NpZGVCeVNpZGU6KDAsbi5lcXVhbCkoInZpZXdNb2RlIiwic2lkZV9ieV9zaWRlIiksZGlzcGxheWluZ1NpZGVCeVNpZGVNYXJrZG93bjooMCxuLmVxdWFsKSgidmlld01vZGUiLCJzaWRlX2J5X3NpZGVfbWFya2Rvd24iKSxpbmxpbmVDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZT8iYnRuLWRhbmdlciI6ImJ0bi1mbGF0In0sc2lkZUJ5U2lkZUNsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJidG4tZGFuZ2VyIjoiYnRuLWZsYXQifSxzaWRlQnlTaWRlTWFya2Rvd25DbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZT8iYnRuLWRhbmdlciI6ImJ0bi1mbGF0In0scHJldmlvdXNDYXRlZ29yeTpmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1jLmRlZmF1bHQuZmluZEJ5SWQoZS5wcmV2aW91cyk7cmV0dXJuKDAsby5jYXRlZ29yeUJhZGdlSFRNTCkodCx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9fSxjdXJyZW50Q2F0ZWdvcnk6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9Yy5kZWZhdWx0LmZpbmRCeUlkKGUuY3VycmVudCk7cmV0dXJuKDAsby5jYXRlZ29yeUJhZGdlSFRNTCkodCx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9fSx3aWtpRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiFlLmN1cnJlbnR9LHBvc3RUeXBlRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuY3VycmVudCE9PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpfSx0aXRsZURpZmY6ZnVuY3Rpb24oZSl7cmV0dXJuInNpZGVfYnlfc2lkZV9tYXJrZG93biI9PT1lJiYoZT0ic2lkZV9ieV9zaWRlIiksdGhpcy5nZXQoIm1vZGVsLnRpdGxlX2NoYW5nZXMuIitlKX0sYm9keURpZmZDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudmlld01vZGUsbj10aGlzLmdldCgibW9kZWwuYm9keV9jaGFuZ2VzLiIrZSk7aWYoInNpZGVfYnlfc2lkZV9tYXJrZG93biIhPT1lKXtyZXR1cm4oMCxhLnNhbml0aXplQXN5bmMpKG4se2ZlYXR1cmVzOntlZGl0SGlzdG9yeTohMH0sd2hpdGVMaXN0ZWQ6e2VkaXRIaXN0b3J5OntjdXN0b206ZnVuY3Rpb24oZSx0KXtyZXR1cm4iY2xhc3MiPT09dH19fX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJib2R5RGlmZiIsZSl9KX10aGlzLnNldCgiYm9keURpZmYiLG4pfSxhY3Rpb25zOntsb2FkRmlyc3RWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmZpcnN0X3JldmlzaW9uIikpfSxsb2FkUHJldmlvdXNWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLnByZXZpb3VzX3JldmlzaW9uIikpfSxsb2FkTmV4dFZlcnNpb246ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2godGhpcy5nZXQoIm1vZGVsLnBvc3RfaWQiKSx0aGlzLmdldCgibW9kZWwubmV4dF9yZXZpc2lvbiIpKX0sbG9hZExhc3RWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmxhc3RfcmV2aXNpb24iKSl9LGhpZGVWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5oaWRlKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iKSl9LHNob3dWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5zaG93KHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iKSl9LGVkaXRQb3N0OmZ1bmN0aW9uKCl7dGhpcy50b3BpY0NvbnRyb2xsZXIuc2VuZCgiZWRpdFBvc3QiLHRoaXMucG9zdCksdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LHJldmVydFRvVmVyc2lvbjpmdW5jdGlvbigpe3RoaXMucmV2ZXJ0KHRoaXMucG9zdCx0aGlzLmdldCgibW9kZWwuY3VycmVudF9yZXZpc2lvbiIpKX0sZGlzcGxheUlubGluZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJ2aWV3TW9kZSIsImlubGluZSIpfSxkaXNwbGF5U2lkZUJ5U2lkZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJ2aWV3TW9kZSIsInNpZGVfYnlfc2lkZSIpfSxkaXNwbGF5U2lkZUJ5U2lkZU1hcmtkb3duOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInZpZXdNb2RlIiwic2lkZV9ieV9zaWRlX21hcmtkb3duIil9fX0sIl9jaGFuZ2VWaWV3TW9kZU9uTW9iaWxlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJfY2hhbmdlVmlld01vZGVPbk1vYmlsZSIpLEkpLHAoSSwicmV2aXNpb25zVGV4dCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicmV2aXNpb25zVGV4dCIpLEkpLHAoSSwiY3JlYXRlZEF0RGF0ZSIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiY3JlYXRlZEF0RGF0ZSIpLEkpLHAoSSwicHJldmlvdXNWZXJzaW9uIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJwcmV2aW91c1ZlcnNpb24iKSxJKSxwKEksImRpc3BsYXlHb1RvUHJldmlvdXMiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImRpc3BsYXlHb1RvUHJldmlvdXMiKSxJKSxwKEksImRpc3BsYXlTaG93Iixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJkaXNwbGF5U2hvdyIpLEkpLHAoSSwiZGlzcGxheUhpZGUiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImRpc3BsYXlIaWRlIiksSSkscChJLCJkaXNwbGF5RWRpdCIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiZGlzcGxheUVkaXQiKSxJKSxwKEksImVkaXRCdXR0b25MYWJlbCIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiZWRpdEJ1dHRvbkxhYmVsIiksSSkscChJLCJkaXNwbGF5UmV2ZXJ0IixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJkaXNwbGF5UmV2ZXJ0IiksSSkscChJLCJoaWRkZW5DbGFzc2VzIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoaWRkZW5DbGFzc2VzIiksSSkscChJLCJpbmxpbmVDbGFzcyIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaW5saW5lQ2xhc3MiKSxJKSxwKEksInNpZGVCeVNpZGVDbGFzcyIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2lkZUJ5U2lkZUNsYXNzIiksSSkscChJLCJzaWRlQnlTaWRlTWFya2Rvd25DbGFzcyIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2lkZUJ5U2lkZU1hcmtkb3duQ2xhc3MiKSxJKSxwKEksInByZXZpb3VzQ2F0ZWdvcnkiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInByZXZpb3VzQ2F0ZWdvcnkiKSxJKSxwKEksImN1cnJlbnRDYXRlZ29yeSIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiY3VycmVudENhdGVnb3J5IiksSSkscChJLCJ3aWtpRGlzYWJsZWQiLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksIndpa2lEaXNhYmxlZCIpLEkpLHAoSSwicG9zdFR5cGVEaXNhYmxlZCIsW0NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicG9zdFR5cGVEaXNhYmxlZCIpLEkpLHAoSSwidGl0bGVEaWZmIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJ0aXRsZURpZmYiKSxJKSxwKEksImJvZHlEaWZmQ2hhbmdlZCIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiYm9keURpZmZDaGFuZ2VkIiksSSksSSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvaWdub3JlLWR1cmF0aW9uLXdpdGgtdXNlcm5hbWUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bG9hZGluZzohMSxpZ25vcmVkVW50aWw6bnVsbCxpZ25vcmVkVXNlcm5hbWU6bnVsbCxhY3Rpb25zOntpZ25vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaWdub3JlZFVudGlsJiZ0aGlzLmlnbm9yZWRVc2VybmFtZT8odGhpcy5zZXQoImxvYWRpbmciLCEwKSxzLmRlZmF1bHQuZmluZEJ5VXNlcm5hbWUodGhpcy5pZ25vcmVkVXNlcm5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7ZS51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgiaWdub3JlIix0Lmlnbm9yZWRVbnRpbCkudGhlbihmdW5jdGlvbigpe3Qub25Vc2VySWdub3JlZCh0Lmlnbm9yZWRVc2VybmFtZSksdC5zZW5kKCJjbG9zZU1vZGFsIil9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0pKTp0aGlzLmZsYXNoKEkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpbWVfZnJhbWVfcmVxdWlyZWQiKSwiYWxlcnQtZXJyb3IiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pZ25vcmUtZHVyYXRpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2xvYWRpbmc6ITEsaWdub3JlZFVudGlsOm51bGwsYWN0aW9uczp7aWdub3JlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmlnbm9yZWRVbnRpbD8odGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLnVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsKCJpZ25vcmUiLHRoaXMuaWdub3JlZFVudGlsKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoIm1vZGVsLmlnbm9yZWQiLCEwKSxlLnNldCgibW9kZWwubXV0ZWQiLCExKSxlLm9uU3VjY2VzcyYmZS5vblN1Y2Nlc3MoKSxlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoImxvYWRpbmciLCExKX0pKTp0aGlzLmZsYXNoKEkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpbWVfZnJhbWVfcmVxdWlyZWQiKSwiYWxlcnQtZXJyb3IiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pbnNlcnQtaHlwZXJsaW5rIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9zZWFyY2giXSxmdW5jdGlvbihlLHMsbix0LGksbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse19kZWJvdW5jZWQ6bnVsbCxfYWN0aXZlU2VhcmNoOm51bGwsb25TaG93OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe2xpbmtVcmw6IiIsbGlua1RleHQ6IiIsc2VhcmNoUmVzdWx0czpbXSxzZWFyY2hMb2FkaW5nOiExLHNlbGVjdGVkUm93Oi0xfSksKDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5zZXJ0LWxpbmsiKTtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGUpe3JldHVybiB0LmtleURvd24oZSl9KSxlLmNsb3Nlc3QoIi5tb2RhbC1pbm5lci1jb250YWluZXIiKS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpe3JldHVybiB0Lm1vdXNlRG93bihlKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0LmxpbmstdXJsIikuZm9jdXMoKX0pfSxrZXlEb3duOmZ1bmN0aW9uKGUpe3N3aXRjaChlLndoaWNoKXtjYXNlIDQwOnRoaXMuaGlnaGxpZ2h0Um93KGUsImRvd24iKTticmVhaztjYXNlIDM4OnRoaXMuaGlnaGxpZ2h0Um93KGUsInVwIik7YnJlYWs7Y2FzZSAxMzp2YXIgdDstMTx0aGlzLnNlbGVjdGVkUm93JiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW50ZXJuYWwtbGluay1yZXN1bHRzIC5zZWFyY2gtbGluayIpW3RoaXMuc2VsZWN0ZWRSb3ddLHRoaXMuc2VsZWN0TGluayh0KSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7YnJlYWs7Y2FzZSAyNzp0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoJiYodGhpcy5zZXQoInNlYXJjaFJlc3VsdHMiLFtdKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9fSxtb3VzZURvd246ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xvc2VzdCgiLmlucHV0cyIpfHx0aGlzLnNldCgic2VhcmNoUmVzdWx0cyIsW10pfSxoaWdobGlnaHRSb3c6ZnVuY3Rpb24oZSx0KXt2YXIgbj0iZG93biI9PT10P3RoaXMuc2VsZWN0ZWRSb3crMTp0aGlzLnNlbGVjdGVkUm93LTE7LTE8biYmbjx0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoPyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW50ZXJuYWwtbGluay1yZXN1bHRzIC5zZWFyY2gtbGluayIpW25dLmZvY3VzKCksdGhpcy5zZXQoInNlbGVjdGVkUm93IixuKSk6KHRoaXMuc2V0KCJzZWxlY3RlZFJvdyIsLTEpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0LmxpbmstdXJsIikuZm9jdXMoKSksZS5wcmV2ZW50RGVmYXVsdCgpfSxzZWxlY3RMaW5rOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7bGlua1VybDplLmhyZWYsc2VhcmNoUmVzdWx0czpbXSxzZWxlY3RlZFJvdzotMX0pLCF0aGlzLmxpbmtUZXh0JiZlLmRhdGFzZXQudGl0bGUmJnRoaXMuc2V0KCJsaW5rVGV4dCIsZS5kYXRhc2V0LnRpdGxlKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dC5saW5rLXRleHQiKS5mb2N1cygpfSx0cmlnZ2VyU2VhcmNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczszPHRoaXMubGlua1VybC5sZW5ndGgmJi0xPT09dGhpcy5saW5rVXJsLmluZGV4T2YoImh0dHAiKT8odGhpcy5zZXQoInNlYXJjaExvYWRpbmciLCEwKSx0aGlzLl9hY3RpdmVTZWFyY2g9KDAsby5zZWFyY2hGb3JUZXJtKSh0aGlzLmxpbmtVcmwse3R5cGVGaWx0ZXI6InRvcGljIn0pLHRoaXMuX2FjdGl2ZVNlYXJjaC50aGVuKGZ1bmN0aW9uKGUpe2UmJmUudG9waWNzJiYwPGUudG9waWNzLmxlbmd0aD90LnNldCgic2VhcmNoUmVzdWx0cyIsZS50b3BpY3MpOnQuc2V0KCJzZWFyY2hSZXN1bHRzIixbXSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoInNlYXJjaExvYWRpbmciLCExKSx0Ll9hY3RpdmVTZWFyY2g9bnVsbH0pKTp0aGlzLmFib3J0U2VhcmNoKCl9LGFib3J0U2VhcmNoOmZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlU2VhcmNoJiZ0aGlzLl9hY3RpdmVTZWFyY2guYWJvcnQoKSx0aGlzLnNldFByb3BlcnRpZXMoe3NlYXJjaFJlc3VsdHM6W10sc2VhcmNoTG9hZGluZzohMX0pfSxvbkNsb3NlOmZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmluc2VydC1saW5rIik7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleURvd24pLGUuY2xvc2VzdCgiLm1vZGFsLWlubmVyLWNvbnRhaW5lciIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5tb3VzZURvd24pLCgwLG4uY2FuY2VsKSh0aGlzLl9kZWJvdW5jZWQpfSxhY3Rpb25zOntvazpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5saW5rVXJsLG49LTE9PT10LmluZGV4T2YoIjovLyIpPyJodHRwOi8vIit0OnQsaT10aGlzLnRvb2xiYXJFdmVudC5zZWxlY3RlZDsoMCxzLmlzRW1wdHkpKG4pfHwoKGU9dGhpcy5saW5rVGV4dHx8IiIpLmxlbmd0aD90aGlzLnRvb2xiYXJFdmVudC5hZGRUZXh0KCJbIitlKyJdKCIrbisiKSIpOmkudmFsdWU/dGhpcy50b29sYmFyRXZlbnQuYWRkVGV4dCgiWyIraS52YWx1ZSsiXSgiK24rIikiKToodGhpcy50b29sYmFyRXZlbnQuYWRkVGV4dCgiWyIrdCsiXSgiK24rIikiKSx0aGlzLnRvb2xiYXJFdmVudC5zZWxlY3RUZXh0KGkuc3RhcnQrMSx0Lmxlbmd0aCkpLHRoaXMuc2VuZCgiY2xvc2VNb2RhbCIpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LGxpbmtDbGljazpmdW5jdGlvbihlKXtlLm1ldGFLZXl8fGUuY3RybEtleXx8KGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2VsZWN0TGluayhlLnRhcmdldC5jbG9zZXN0KCIuc2VhcmNoLWxpbmsiKSkpfSxzZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLl9kZWJvdW5jZWQ9KDAsbi5kZWJvdW5jZSkodGhpcyx0aGlzLnRyaWdnZXJTZWFyY2gsNDAwKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pbnZpdGVzLXNob3ciLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC11cmwiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvbmFtZS12YWxpZGF0aW9uIiwiZGlzY291cnNlL21peGlucy91c2VyLWZpZWxkcy12YWxpZGF0aW9uIiwiZGlzY291cnNlL21vZGVscy9sb2dpbi1tZXRob2QiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1LGMsZCxwKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGwuZGVmYXVsdCx1LmRlZmF1bHQsYy5kZWZhdWx0LGQuZGVmYXVsdCwoZj0oMCxzLmRlZmF1bHQpKCJlbWFpbCIpLGg9KDAscy5kZWZhdWx0KSgidXNlcm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIsInBhc3N3b3JkVmFsaWRhdGlvbi5mYWlsZWQiLCJuYW1lVmFsaWRhdGlvbi5mYWlsZWQiLCJ1c2VyRmllbGRzVmFsaWRhdGlvbi5mYWlsZWQiKSxtKGI9e2ludml0ZWRCeTooMCx0LmFsaWFzKSgibW9kZWwuaW52aXRlZF9ieSIpLGVtYWlsOigwLHQuYWxpYXMpKCJtb2RlbC5lbWFpbCIpLGFjY291bnRVc2VybmFtZTooMCx0LmFsaWFzKSgibW9kZWwudXNlcm5hbWUiKSxwYXNzd29yZFJlcXVpcmVkOigwLHQubm90RW1wdHkpKCJhY2NvdW50UGFzc3dvcmQiKSxzdWNjZXNzTWVzc2FnZTpudWxsLGVycm9yTWVzc2FnZTpudWxsLHVzZXJGaWVsZHM6bnVsbCxpbnZpdGVJbWFnZVVybDooMCxvLmRlZmF1bHQpKCIvaW1hZ2VzL2VudmVsb3BlLnN2ZyIpLHdlbGNvbWVUaXRsZTpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImludml0ZXMud2VsY29tZV90byIse3NpdGVfbmFtZTp0aGlzLnNpdGVTZXR0aW5ncy50aXRsZX0pfSx5b3VyRW1haWxNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImludml0ZXMueW91cl9lbWFpbCIse2VtYWlsOmV9KX0sZXh0ZXJuYWxBdXRoc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMDwoMCxwLmZpbmRBbGwpKCkubGVuZ3RofSxzdWJtaXREaXNhYmxlZDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gZXx8dHx8bnx8aX0sZnVsbG5hbWVSZXF1aXJlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5mdWxsX25hbWVfcmVxdWlyZWR8fHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uYW1lc30sYWN0aW9uczp7c3VibWl0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudXNlckZpZWxkcyxuPXt9OygwLGkuaXNFbXB0eSkoZSl8fGUuZm9yRWFjaChmdW5jdGlvbihlKXtuW2UuZ2V0KCJmaWVsZC5pZCIpXT1lLmdldCgidmFsdWUiKX0pLCgwLGEuYWpheCkoe3VybDoiL2ludml0ZXMvc2hvdy8iK3RoaXMuZ2V0KCJtb2RlbC50b2tlbiIpKyIuanNvbiIsdHlwZToiUFVUIixkYXRhOnt1c2VybmFtZTp0aGlzLmFjY291bnRVc2VybmFtZSxuYW1lOnRoaXMuYWNjb3VudE5hbWUscGFzc3dvcmQ6dGhpcy5hY2NvdW50UGFzc3dvcmQsdXNlcl9jdXN0b21fZmllbGRzOm4sdGltZXpvbmU6bW9tZW50LnR6Lmd1ZXNzKCl9fSkudGhlbihmdW5jdGlvbihlKXtlLnN1Y2Nlc3M/KHQuc2V0KCJzdWNjZXNzTWVzc2FnZSIsZS5tZXNzYWdlfHxJMThuLnQoImludml0ZXMuc3VjY2VzcyIpKSxlLnJlZGlyZWN0X3RvJiZyLmRlZmF1bHQucmVkaXJlY3RUbyhlLnJlZGlyZWN0X3RvKSk6KGUuZXJyb3JzJiZlLmVycm9ycy5wYXNzd29yZCYmMDxlLmVycm9ycy5wYXNzd29yZC5sZW5ndGgmJih0LnJlamVjdGVkUGFzc3dvcmRzLnB1c2hPYmplY3QodC5hY2NvdW50UGFzc3dvcmQpLHQucmVqZWN0ZWRQYXNzd29yZHNNZXNzYWdlcy5zZXQodC5hY2NvdW50UGFzc3dvcmQsZS5lcnJvcnMucGFzc3dvcmRbMF0pKSxlLm1lc3NhZ2UmJnQuc2V0KCJlcnJvck1lc3NhZ2UiLGUubWVzc2FnZSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSl9fX0sIndlbGNvbWVUaXRsZSIsW3MuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJ3ZWxjb21lVGl0bGUiKSxiKSxtKGIsInlvdXJFbWFpbE1lc3NhZ2UiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsInlvdXJFbWFpbE1lc3NhZ2UiKSxiKSxtKGIsImV4dGVybmFsQXV0aHNFbmFibGVkIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImV4dGVybmFsQXV0aHNFbmFibGVkIiksYiksbShiLCJzdWJtaXREaXNhYmxlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic3VibWl0RGlzYWJsZWQiKSxiKSxtKGIsImZ1bGxuYW1lUmVxdWlyZWQiLFtzLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZnVsbG5hbWVSZXF1aXJlZCIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2p1bXAtdG8tcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LHttb2RlbDpudWxsLHBvc3ROdW1iZXI6bnVsbCxwb3N0RGF0ZTpudWxsLGZpbHRlcmVkUG9zdHNDb3VudDooMCx0LmFsaWFzKSgidG9waWMucG9zdFN0cmVhbS5maWx0ZXJlZFBvc3RzQ291bnQiKSxvblNob3c6ZnVuY3Rpb24oKXsoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQoIiNwb3N0LWp1bXAiKS5mb2N1cygpfSl9LGFjdGlvbnM6e2p1bXA6ZnVuY3Rpb24oKXt0aGlzLnBvc3ROdW1iZXI/dGhpcy5fanVtcFRvSW5kZXgodGhpcy5maWx0ZXJlZFBvc3RzQ291bnQsdGhpcy5wb3N0TnVtYmVyKTp0aGlzLnBvc3REYXRlJiZ0aGlzLl9qdW1wVG9EYXRlKHRoaXMucG9zdERhdGUpfX0sX2p1bXBUb0luZGV4OmZ1bmN0aW9uKGUsdCl7dmFyIG49TWF0aC5taW4oZSxNYXRoLm1heCgxLHBhcnNlSW50KHQsMTApKSk7dGhpcy5qdW1wVG9JbmRleChuKSx0aGlzLl9jbG9zZSgpfSxfanVtcFRvRGF0ZTpmdW5jdGlvbihlKXt0aGlzLmp1bXBUb0RhdGUoZSksdGhpcy5fY2xvc2UoKX0sX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwb3N0TnVtYmVyOm51bGwscG9zdERhdGU6bnVsbH0pLHRoaXMuc2VuZCgiY2xvc2VNb2RhbCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMva2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGM9ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwIixpPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LnNoaWZ0Iikscz1JMThuLnQoInNob3J0Y3V0X21vZGlmaWVyX2tleS5hbHQiKSxvPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmN0cmwiKSxyPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmVudGVyIiksZD1JMThuLnQoYysiLnNob3J0Y3V0X2tleV9kZWxpbWl0ZXJfY29tbWEiKSxhPUkxOG4udChjKyIuc2hvcnRjdXRfa2V5X2RlbGltaXRlcl9wbHVzIik7ZnVuY3Rpb24gcChlKXtyZXR1cm4nPHNwYW4gZGlyPSJsdHIiPicrZSsiPC9zcGFuPiJ9ZnVuY3Rpb24gbChlLHQpe3ZhciBuPXQua2V5czEsaT12b2lkIDA9PT1uP1tdOm4scz10LmtleXMyLG89dm9pZCAwPT09cz9bXTpzLHI9dC5rZXlzRGVsaW1pdGVyLGE9dm9pZCAwPT09cj9kOnIsbD10LnNob3J0Y3V0c0RlbGltaXRlcix1PXtzaG9ydGN1dDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz1bZSx0XS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmxlbmd0aH0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIjxrYmQ+IitlKyI8L2tiZD4ifSkuam9pbihuKX0pO2lmKDE9PT1zLmxlbmd0aClyZXR1cm4gcChzWzBdKTt2YXIgbz17c2hvcnRjdXQxOnNbMF0sc2hvcnRjdXQyOnNbMV19LHI9IiI7cmV0dXJuIm9yIj09PWk/cj1JMThuLnQoYysiLnNob3J0Y3V0X2RlbGltaXRlcl9vciIsbyk6InNsYXNoIj09PWk/cj1JMThuLnQoYysiLnNob3J0Y3V0X2RlbGltaXRlcl9zbGFzaCIsbyk6InNwYWNlIj09PWkmJihyPUkxOG4udChjKyIuc2hvcnRjdXRfZGVsaW1pdGVyX3NwYWNlIixvKSkscChyKX0oaSxvLGEsdm9pZCAwPT09bD8ib3IiOmwpfTtyZXR1cm4gSTE4bi50KGMrIi4iK2UsdSl9ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsImtleWJvYXJkLXNob3J0Y3V0cy1tb2RhbCIpfSxzaG9ydGN1dHM6e2p1bXBfdG86e2hvbWU6bCgianVtcF90by5ob21lIix7a2V5czE6WyJnIiwiaCJdfSksbGF0ZXN0OmwoImp1bXBfdG8ubGF0ZXN0Iix7a2V5czE6WyJnIiwibCJdfSksbmV3OmwoImp1bXBfdG8ubmV3Iix7a2V5czE6WyJnIiwibiJdfSksdW5yZWFkOmwoImp1bXBfdG8udW5yZWFkIix7a2V5czE6WyJnIiwidSJdfSksY2F0ZWdvcmllczpsKCJqdW1wX3RvLmNhdGVnb3JpZXMiLHtrZXlzMTpbImciLCJjIl19KSx0b3A6bCgianVtcF90by50b3AiLHtrZXlzMTpbImciLCJ0Il19KSxib29rbWFya3M6bCgianVtcF90by5ib29rbWFya3MiLHtrZXlzMTpbImciLCJiIl19KSxwcm9maWxlOmwoImp1bXBfdG8ucHJvZmlsZSIse2tleXMxOlsiZyIsInAiXX0pLG1lc3NhZ2VzOmwoImp1bXBfdG8ubWVzc2FnZXMiLHtrZXlzMTpbImciLCJtIl19KSxkcmFmdHM6bCgianVtcF90by5kcmFmdHMiLHtrZXlzMTpbImciLCJkIl19KX0sbmF2aWdhdGlvbjp7YmFjazpsKCJuYXZpZ2F0aW9uLmJhY2siLHtrZXlzMTpbInUiXX0pLGp1bXA6bCgibmF2aWdhdGlvbi5qdW1wIix7a2V5czE6WyIjIl19KSx1cF9kb3duOmwoIm5hdmlnYXRpb24udXBfZG93biIse2tleXMxOlsiayJdLGtleXMyOlsiaiJdLHNob3J0Y3V0c0RlbGltaXRlcjoic2xhc2gifSksb3BlbjpsKCJuYXZpZ2F0aW9uLm9wZW4iLHtrZXlzMTpbIm8iXSxrZXlzMjpbcl19KSxuZXh0X3ByZXY6bCgibmF2aWdhdGlvbi5uZXh0X3ByZXYiLHtrZXlzMTpbaSwiaiJdLGtleXMyOltpLCJrIl0sa2V5c0RlbGltaXRlcjphLHNob3J0Y3V0c0RlbGltaXRlcjoic2xhc2gifSksZ29fdG9fdW5yZWFkX3Bvc3Q6bCgibmF2aWdhdGlvbi5nb190b191bnJlYWRfcG9zdCIse2tleXMxOltpLCJsIl0sa2V5c0RlbGltaXRlcjphfSl9LGFwcGxpY2F0aW9uOntoYW1idXJnZXJfbWVudTpsKCJhcHBsaWNhdGlvbi5oYW1idXJnZXJfbWVudSIse2tleXMxOlsiPSJdfSksdXNlcl9wcm9maWxlX21lbnU6bCgiYXBwbGljYXRpb24udXNlcl9wcm9maWxlX21lbnUiLHtrZXlzMTpbInAiXX0pLGNyZWF0ZTpsKCJhcHBsaWNhdGlvbi5jcmVhdGUiLHtrZXlzMTpbImMiXX0pLHNob3dfaW5jb21pbmdfdXBkYXRlZF90b3BpY3M6bCgiYXBwbGljYXRpb24uc2hvd19pbmNvbWluZ191cGRhdGVkX3RvcGljcyIse2tleXMxOlsiLiJdfSksc2VhcmNoOmwoImFwcGxpY2F0aW9uLnNlYXJjaCIse2tleXMxOlsiLyJdLGtleXMyOltvLHMsImYiXSxrZXlzRGVsaW1pdGVyOmF9KSxoZWxwOmwoImFwcGxpY2F0aW9uLmhlbHAiLHtrZXlzMTpbIj8iXX0pLGRpc21pc3NfbmV3X3Bvc3RzOmwoImFwcGxpY2F0aW9uLmRpc21pc3NfbmV3X3Bvc3RzIix7a2V5czE6WyJ4IiwiciJdfSksZGlzbWlzc190b3BpY3M6bCgiYXBwbGljYXRpb24uZGlzbWlzc190b3BpY3MiLHtrZXlzMTpbIngiLCJ0Il19KSxsb2dfb3V0OmwoImFwcGxpY2F0aW9uLmxvZ19vdXQiLHtrZXlzMTpbaSwieiJdLGtleXMyOltpLCJ6Il0sa2V5c0RlbGltaXRlcjphLHNob3J0Y3V0c0RlbGltaXRlcjoic3BhY2UifSl9LGNvbXBvc2luZzp7cmV0dXJuOmwoImNvbXBvc2luZy5yZXR1cm4iLHtrZXlzMTpbaSwiYyJdLGtleXNEZWxpbWl0ZXI6YX0pLGZ1bGxzY3JlZW46bCgiY29tcG9zaW5nLmZ1bGxzY3JlZW4iLHtrZXlzMTpbaSwiRjExIl0sa2V5c0RlbGltaXRlcjphfSl9LGFjdGlvbnM6e2Jvb2ttYXJrX3RvcGljOmwoImFjdGlvbnMuYm9va21hcmtfdG9waWMiLHtrZXlzMTpbImYiXX0pLHJlcGx5X2FzX25ld190b3BpYzpsKCJhY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYyIse2tleXMxOlsidCJdfSkscmVwbHlfdG9waWM6bCgiYWN0aW9ucy5yZXBseV90b3BpYyIse2tleXMxOltpLCJyIl0sa2V5c0RlbGltaXRlcjphfSkscmVwbHlfcG9zdDpsKCJhY3Rpb25zLnJlcGx5X3Bvc3QiLHtrZXlzMTpbInIiXX0pLHF1b3RlX3Bvc3Q6bCgiYWN0aW9ucy5xdW90ZV9wb3N0Iix7a2V5czE6WyJxIl19KSxwaW5fdW5waW5fdG9waWM6bCgiYWN0aW9ucy5waW5fdW5waW5fdG9waWMiLHtrZXlzMTpbaSwicCJdLGtleXNEZWxpbWl0ZXI6YX0pLHNoYXJlX3RvcGljOmwoImFjdGlvbnMuc2hhcmVfdG9waWMiLHtrZXlzMTpbaSwicyJdLGtleXNEZWxpbWl0ZXI6YX0pLHNoYXJlX3Bvc3Q6bCgiYWN0aW9ucy5zaGFyZV9wb3N0Iix7a2V5czE6WyJzIl19KSxsaWtlOmwoImFjdGlvbnMubGlrZSIse2tleXMxOlsibCJdfSksZmxhZzpsKCJhY3Rpb25zLmZsYWciLHtrZXlzMTpbIiEiXX0pLGJvb2ttYXJrOmwoImFjdGlvbnMuYm9va21hcmsiLHtrZXlzMTpbImIiXX0pLGVkaXQ6bCgiYWN0aW9ucy5lZGl0Iix7a2V5czE6WyJlIl19KSxkZWxldGU6bCgiYWN0aW9ucy5kZWxldGUiLHtrZXlzMTpbImQiXX0pLG1hcmtfbXV0ZWQ6bCgiYWN0aW9ucy5tYXJrX211dGVkIix7a2V5czE6WyJtIiwibSJdfSksbWFya19yZWd1bGFyOmwoImFjdGlvbnMubWFya19yZWd1bGFyIix7a2V5czE6WyJtIiwiciJdfSksbWFya190cmFja2luZzpsKCJhY3Rpb25zLm1hcmtfdHJhY2tpbmciLHtrZXlzMTpbIm0iLCJ0Il19KSxtYXJrX3dhdGNoaW5nOmwoImFjdGlvbnMubWFya193YXRjaGluZyIse2tleXMxOlsibSIsInciXX0pLHByaW50OmwoImFjdGlvbnMucHJpbnQiLHtrZXlzMTpbbywicCJdLGtleXNEZWxpbWl0ZXI6YX0pLGRlZmVyOmwoImFjdGlvbnMuZGVmZXIiLHtrZXlzMTpbaSwidSJdLGtleXNEZWxpbWl0ZXI6YX0pLHRvcGljX2FkbWluX2FjdGlvbnM6bCgiYWN0aW9ucy50b3BpY19hZG1pbl9hY3Rpb25zIix7a2V5czE6W2ksImEiXSxrZXlzRGVsaW1pdGVyOmF9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9sb2dpbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwicHJldHR5LXRleHQvc2FuaXRpemVyIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL3dlYmF1dGhuIl0sZnVuY3Rpb24oZSx0LG4saSxyLGEscyxsLG8sdSxjLGQscCxtLGYsaCxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdix5LF8sdyx4LGssUCxqLFQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBFPVsicmVxdWlyZXNfaW52aXRlIiwiYXdhaXRpbmdfYXBwcm92YWwiLCJhd2FpdGluZ19hY3RpdmF0aW9uIiwiYWRtaW5fbm90X2FsbG93ZWRfZnJvbV9pcF9hZGRyZXNzIiwibm90X2FsbG93ZWRfZnJvbV9pcF9hZGRyZXNzIl07ZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LCh2PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSx5PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSxfPSgwLHQuZGVmYXVsdCkoImF3YWl0aW5nQXBwcm92YWwiLCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iKSx3PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSx4PSgwLHQuZGVmYXVsdCkoImNhbkxvZ2luTG9jYWxXaXRoRW1haWwiKSxrPSgwLHQuZGVmYXVsdCkoImxvZ2dpbmdJbiIpLFA9KDAsdC5kZWZhdWx0KSgibG9nZ2luZ0luIiwiYXBwbGljYXRpb24uY2FuU2lnblVwIiksaj0oMCx0LmRlZmF1bHQpKCJjYW5Mb2dpbkxvY2FsV2l0aEVtYWlsIiwicHJvY2Vzc2luZ0VtYWlsTGluayIpLGcoVD17Y3JlYXRlQWNjb3VudDooMCxzLmluamVjdCkoKSxmb3Jnb3RQYXNzd29yZDooMCxzLmluamVjdCkoKSxhcHBsaWNhdGlvbjooMCxzLmluamVjdCkoKSxsb2dnaW5nSW46ITEsbG9nZ2VkSW46ITEscHJvY2Vzc2luZ0VtYWlsTGluazohMSxzaG93TG9naW5CdXR0b25zOiEwLHNob3dTZWNvbmRGYWN0b3I6ITEsYXdhaXRpbmdBcHByb3ZhbDohMSxjYW5Mb2dpbkxvY2FsOigwLGMuc2V0dGluZykoImVuYWJsZV9sb2NhbF9sb2dpbnMiKSxjYW5Mb2dpbkxvY2FsV2l0aEVtYWlsOigwLGMuc2V0dGluZykoImVuYWJsZV9sb2NhbF9sb2dpbnNfdmlhX2VtYWlsIiksbG9naW5SZXF1aXJlZDooMCxpLmFsaWFzKSgiYXBwbGljYXRpb24ubG9naW5SZXF1aXJlZCIpLHNlY29uZEZhY3Rvck1ldGhvZDpoLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLHJlc2V0Rm9ybTpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bG9nZ2luZ0luOiExLGxvZ2dlZEluOiExLHNlY29uZEZhY3RvclJlcXVpcmVkOiExLHNob3dTZWNvbmRGYWN0b3I6ITEsc2hvd1NlY3VyaXR5S2V5OiExLHNob3dMb2dpbkJ1dHRvbnM6ITAsYXdhaXRpbmdBcHByb3ZhbDohMX0pfSxjcmVkZW50aWFsc0NsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQ/ImhpZGRlbiI6IiJ9LHNlY29uZEZhY3RvckNsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQ/IiI6ImhpZGRlbiJ9LG1vZGFsQm9keUNsYXNzZXM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bImxvZ2luLW1vZGFsIl07cmV0dXJuIGUmJm4ucHVzaCgiYXdhaXRpbmctYXBwcm92YWwiKSx0JiZuLnB1c2goImhhcy1hbHQtYXV0aCIpLG4uam9pbigiICIpfSxkaXNhYmxlTG9naW5GaWVsZHM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dH0saGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uOmZ1bmN0aW9uKGUpe3JldHVybiAwPCgwLGQuZmluZEFsbCkoKS5sZW5ndGh8fGV9LGxvZ2luQnV0dG9uTGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImxvZ2luLmxvZ2dpbmdfaW4iOiJsb2dpbi50aXRsZSJ9LGxvZ2luRGlzYWJsZWQ6KDAsaS5vcikoImxvZ2dpbmdJbiIsImxvZ2dlZEluIiksc2hvd1NpZ251cExpbms6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmIWV9LHNob3dTcGlubmVyOigwLGkucmVhZE9ubHkpKCJsb2dnaW5nSW4iKSxzaG93TG9naW5XaXRoRW1haWxMaW5rOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxhY3Rpb25zOntsb2dpbjpmdW5jdGlvbigpe3ZhciBvPXRoaXM7aWYoIXRoaXMubG9naW5EaXNhYmxlZCl7aWYoISgwLG4uaXNFbXB0eSkodGhpcy5sb2dpbk5hbWUpJiYhKDAsbi5pc0VtcHR5KSh0aGlzLmxvZ2luUGFzc3dvcmQpKXJldHVybiB0aGlzLnNldCgibG9nZ2luZ0luIiwhMCksKDAsbC5hamF4KSgiL3Nlc3Npb24iLHt0eXBlOiJQT1NUIixkYXRhOntsb2dpbjp0aGlzLmxvZ2luTmFtZSxwYXNzd29yZDp0aGlzLmxvZ2luUGFzc3dvcmQsc2Vjb25kX2ZhY3Rvcl90b2tlbjp0aGlzLnNlY3VyaXR5S2V5Q3JlZGVudGlhbHx8dGhpcy5zZWNvbmRGYWN0b3JUb2tlbixzZWNvbmRfZmFjdG9yX21ldGhvZDp0aGlzLnNlY29uZEZhY3Rvck1ldGhvZCx0aW1lem9uZTptb21lbnQudHouZ3Vlc3MoKX19KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCFlfHwhZS5lcnJvcil7by5zZXQoImxvZ2dlZEluIiwhMCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhpZGRlbi1sb2dpbi1mb3JtIiksdD1mdW5jdGlvbihlLHQpe24mJihuLnF1ZXJ5U2VsZWN0b3IoImlucHV0W25hbWU9Iit0KyJdIikudmFsdWU9ZSl9LGk9JC5jb29raWUoImRlc3RpbmF0aW9uX3VybCIpLHM9JC5jb29raWUoInNzb19kZXN0aW5hdGlvbl91cmwiKTtyZXR1cm4odChvLmxvZ2luTmFtZSwidXNlcm5hbWUiKSx0KG8ubG9naW5QYXNzd29yZCwicGFzc3dvcmQiKSxzKT8oJC5yZW1vdmVDb29raWUoInNzb19kZXN0aW5hdGlvbl91cmwiKSx2b2lkIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24ocykpOihpPygkLnJlbW92ZUNvb2tpZSgiZGVzdGluYXRpb25fdXJsIiksdChpLCJyZWRpcmVjdCIpKTp0KHdpbmRvdy5sb2NhdGlvbi5ocmVmLCJyZWRpcmVjdCIpLHZvaWQobiYmKG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUGFkfGlQaG9uZXxpUG9kKS9nKSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvU2FmYXJpL2cpP3dpbmRvdy5sb2NhdGlvbi5ocmVmPW4ucXVlcnlTZWxlY3RvcigiaW5wdXRbbmFtZT1yZWRpcmVjdF0iKS52YWx1ZTpuLnN1Ym1pdCgpKSkpfWlmKG8uc2V0KCJsb2dnaW5nSW4iLCExKSwoZS5zZWN1cml0eV9rZXlfZW5hYmxlZHx8ZS50b3RwX2VuYWJsZWQpJiYhby5zZWNvbmRGYWN0b3JSZXF1aXJlZClyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLWFsZXJ0Iikuc3R5bGUuZGlzcGxheT0ibm9uZSIsby5zZXRQcm9wZXJ0aWVzKHtvdGhlck1ldGhvZEFsbG93ZWQ6ZS5tdWx0aXBsZV9zZWNvbmRfZmFjdG9yX21ldGhvZHMsc2Vjb25kRmFjdG9yUmVxdWlyZWQ6ITAsc2hvd0xvZ2luQnV0dG9uczohMSxiYWNrdXBFbmFibGVkOmUuYmFja3VwX2VuYWJsZWQsc2hvd1NlY29uZEZhY3RvcjplLnRvdHBfZW5hYmxlZCxzaG93U2VjdXJpdHlLZXk6ZS5zZWN1cml0eV9rZXlfZW5hYmxlZCxzZWNvbmRGYWN0b3JNZXRob2Q6ZS5zZWN1cml0eV9rZXlfZW5hYmxlZD9oLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5TRUNVUklUWV9LRVk6aC5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUCxzZWN1cml0eUtleUNoYWxsZW5nZTplLmNoYWxsZW5nZSxzZWN1cml0eUtleUFsbG93ZWRDcmVkZW50aWFsSWRzOmUuYWxsb3dlZF9jcmVkZW50aWFsX2lkc30pLHZvaWQoby5zaG93U2VjdXJpdHlLZXl8fCgwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmQtZmFjdG9yIikucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfSkpOyJub3RfYWN0aXZhdGVkIj09PWUucmVhc29uP28uc2VuZCgic2hvd05vdEFjdGl2YXRlZCIse3VzZXJuYW1lOm8ubG9naW5OYW1lLHNlbnRUbzooMCxwLmVzY2FwZSkoZS5zZW50X3RvX2VtYWlsKSxjdXJyZW50RW1haWw6KDAscC5lc2NhcGUpKGUuY3VycmVudF9lbWFpbCl9KToic3VzcGVuZGVkIj09PWUucmVhc29uPyhvLnNlbmQoImNsb3NlTW9kYWwiKSxib290Ym94LmFsZXJ0KGUuZXJyb3IpKTpvLmZsYXNoKGUuZXJyb3IsImVycm9yIil9LGZ1bmN0aW9uKGUpe2UuanFYSFImJjQyOT09PWUuanFYSFIuc3RhdHVzP28uZmxhc2goSTE4bi50KCJsb2dpbi5yYXRlX2xpbWl0IiksImVycm9yIik6KDAsbS5hcmVDb29raWVzRW5hYmxlZCkoKT9vLmZsYXNoKEkxOG4udCgibG9naW4uZXJyb3IiKSwiZXJyb3IiKTpvLmZsYXNoKEkxOG4udCgibG9naW4uY29va2llc19lcnJvciIpLCJlcnJvciIpLG8uc2V0KCJsb2dnaW5nSW4iLCExKX0pLCExO3RoaXMuZmxhc2goSTE4bi50KCJsb2dpbi5ibGFua191c2VybmFtZV9vcl9wYXNzd29yZCIpLCJlcnJvciIpfX0sZXh0ZXJuYWxMb2dpbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMubG9naW5EaXNhYmxlZHx8KHRoaXMuc2V0KCJsb2dnaW5nSW4iLCEwKSxlLmRvTG9naW4oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9nZ2luZ0luIiwhMSl9KSl9LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuY3JlYXRlQWNjb3VudDt0JiYodC5yZXNldEZvcm0oKSwoZT10aGlzLmxvZ2luTmFtZSkmJjA8ZS5pbmRleE9mKCJAIik/dC5zZXQoImFjY291bnRFbWFpbCIsZSk6dC5zZXQoImFjY291bnRVc2VybmFtZSIsZSkpLHRoaXMuc2VuZCgic2hvd0NyZWF0ZUFjY291bnQiKX0sZm9yZ290UGFzc3dvcmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmZvcmdvdFBhc3N3b3JkO2UmJmUuc2V0KCJhY2NvdW50RW1haWxPclVzZXJuYW1lIix0aGlzLmxvZ2luTmFtZSksdGhpcy5zZW5kKCJzaG93Rm9yZ290UGFzc3dvcmQiKX0sZW1haWxMb2dpbjpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5wcm9jZXNzaW5nRW1haWxMaW5rfHwoKDAsbi5pc0VtcHR5KSh0aGlzLmxvZ2luTmFtZSk/dGhpcy5mbGFzaChJMThuLnQoImxvZ2luLmJsYW5rX3VzZXJuYW1lIiksImVycm9yIik6KHRoaXMuc2V0KCJwcm9jZXNzaW5nRW1haWxMaW5rIiwhMCksKDAsbC5hamF4KSgiL3UvZW1haWwtbG9naW4iLHtkYXRhOntsb2dpbjp0aGlzLmxvZ2luTmFtZS50cmltKCl9LHR5cGU6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0oMCxtLmVzY2FwZUV4cHJlc3Npb24pKGkubG9naW5OYW1lKSxuPSJlbWFpbF9sb2dpbi5jb21wbGV0ZV8iKyh0Lm1hdGNoKC9ALyk/ImVtYWlsIjoidXNlcm5hbWUiKTshMT09PWUudXNlcl9mb3VuZD9pLmZsYXNoKEkxOG4udChuKyJfbm90X2ZvdW5kIix7ZW1haWw6dCx1c2VybmFtZTp0fSksImVycm9yIik6aS5mbGFzaChJMThuLnQobisiX2ZvdW5kIix7ZW1haWw6dCx1c2VybmFtZTp0fSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGkuZmxhc2goKDAsZi5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBpLnNldCgicHJvY2Vzc2luZ0VtYWlsTGluayIsITEpfSkpKX0sYXV0aGVudGljYXRlU2VjdXJpdHlLZXk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLGIuZ2V0V2ViYXV0aG5DcmVkZW50aWFsKSh0aGlzLnNlY3VyaXR5S2V5Q2hhbGxlbmdlLHRoaXMuc2VjdXJpdHlLZXlBbGxvd2VkQ3JlZGVudGlhbElkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoImxvZ2luIil9LGZ1bmN0aW9uKGUpe3QuZmxhc2goZSwiZXJyb3IiKX0pfX0sYXV0aGVudGljYXRpb25Db21wbGV0ZTpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCxuKXsoMCx1LmRlZmF1bHQpKCJsb2dpbiIpLCgwLGEubmV4dCkoZnVuY3Rpb24oKXtuJiZuKCksaS5mbGFzaChlLHR8fCJzdWNjZXNzIil9KX12YXIgaT10aGlzO2lmKCFlLmF3YWl0aW5nX2FwcHJvdmFsfHx0aGlzLmNhbkxvZ2luTG9jYWx8fHRoaXMuY2FuTG9naW5Mb2NhbFdpdGhFbWFpbHx8dGhpcy5zZXQoImF3YWl0aW5nQXBwcm92YWwiLCEwKSxlLm9tbmlhdXRoX2Rpc2FsbG93X3RvdHApcmV0dXJuIHQoSTE4bi50KCJsb2dpbi5vbW5pYXV0aF9kaXNhbGxvd190b3RwIiksImVycm9yIixmdW5jdGlvbigpe2kuc2V0UHJvcGVydGllcyh7bG9naW5OYW1lOmUuZW1haWwsc2hvd0xvZ2luQnV0dG9uczohMX0pLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1hY2NvdW50LXBhc3N3b3JkIikuZm9jdXMoKX0pO2Zvcih2YXIgbixzPTA7czxFLmxlbmd0aDtzKyspe3ZhciBvPUVbc107aWYoZVtvXSlyZXR1cm4gdChJMThuLnQoImxvZ2luLiIrbykpfWlmKGUuc3VzcGVuZGVkKXJldHVybiB0KGUuc3VzcGVuZGVkX21lc3NhZ2UsImVycm9yIik7ZS5hdXRoZW50aWNhdGVkPyhuPSQuY29va2llKCJkZXN0aW5hdGlvbl91cmwiKXx8ZS5kZXN0aW5hdGlvbl91cmwpPygkLnJlbW92ZUNvb2tpZSgiZGVzdGluYXRpb25fdXJsIiksd2luZG93LmxvY2F0aW9uLmhyZWY9bik6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lPT09RGlzY291cnNlLmdldFVSTCgiL2xvZ2luIik/d2luZG93LmxvY2F0aW9uPURpc2NvdXJzZS5nZXRVUkwoIi8iKTp3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk6KHRoaXMuY3JlYXRlQWNjb3VudC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50RW1haWw6ZS5lbWFpbCxhY2NvdW50VXNlcm5hbWU6ZS51c2VybmFtZSxhY2NvdW50TmFtZTplLm5hbWUsYXV0aE9wdGlvbnM6ci5kZWZhdWx0LmNyZWF0ZShlKX0pLCgwLHUuZGVmYXVsdCkoImNyZWF0ZUFjY291bnQiKSl9fSwiY3JlZGVudGlhbHNDbGFzcyIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY3JlZGVudGlhbHNDbGFzcyIpLFQpLGcoVCwic2Vjb25kRmFjdG9yQ2xhc3MiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNlY29uZEZhY3RvckNsYXNzIiksVCksZyhULCJtb2RhbEJvZHlDbGFzc2VzIixbX10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJtb2RhbEJvZHlDbGFzc2VzIiksVCksZyhULCJkaXNhYmxlTG9naW5GaWVsZHMiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImRpc2FibGVMb2dpbkZpZWxkcyIpLFQpLGcoVCwiaGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iKSxUKSxnKFQsImxvZ2luQnV0dG9uTGFiZWwiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImxvZ2luQnV0dG9uTGFiZWwiKSxUKSxnKFQsInNob3dTaWdudXBMaW5rIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93U2lnbnVwTGluayIpLFQpLGcoVCwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL21vZGFsIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbW92ZS10by10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgZCxwLG0sZixoO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKGQ9KDAsbC5kZWZhdWx0KSgic2F2aW5nIiwic2VsZWN0ZWRUb3BpY0lkIiwidG9waWNOYW1lIikscD0oMCxsLmRlZmF1bHQpKCJzYXZpbmciLCJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIiksbT0oMCxsLmRlZmF1bHQpKCJzZWxlY3RlZEFsbFBvc3RzIiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxmPSgwLGwuZGVmYXVsdCkoImNhblNwbGl0VG9waWMiKSxjKGg9e3RvcGljTmFtZTpudWxsLHNhdmluZzohMSxjYXRlZ29yeUlkOm51bGwsdGFnczpudWxsLGNhbkFkZFRhZ3M6KDAsdC5hbGlhcykoInNpdGUuY2FuX2NyZWF0ZV90YWciKSxjYW5UYWdNZXNzYWdlczooMCx0LmFsaWFzKSgic2l0ZS5jYW5fdGFnX3BtcyIpLHNlbGVjdGVkVG9waWNJZDpudWxsLG5ld1RvcGljOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJuZXdfdG9waWMiKSxleGlzdGluZ1RvcGljOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJleGlzdGluZ190b3BpYyIpLG5ld01lc3NhZ2U6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsIm5ld19tZXNzYWdlIiksZXhpc3RpbmdNZXNzYWdlOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJleGlzdGluZ19tZXNzYWdlIikscGFydGljaXBhbnRzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIl0sdGhpcy5tb3ZlVHlwZXM9WyJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIl19LHRvcGljQ29udHJvbGxlcjooMCxzLmluamVjdCkoInRvcGljIiksc2VsZWN0ZWRQb3N0c0NvdW50OigwLHQuYWxpYXMpKCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0c0NvdW50Iiksc2VsZWN0ZWRBbGxQb3N0czooMCx0LmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkQWxsUG9zdHMiKSxzZWxlY3RlZFBvc3RzOigwLHQuYWxpYXMpKCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0cyIpLGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZXx8KDAsaS5pc0VtcHR5KSh0KSYmKDAsaS5pc0VtcHR5KShuKX0sYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gdD9JMThuLnQoInRvcGljLnNwbGl0X3RvcGljLnRpdGxlIik6bj9JMThuLnQoInRvcGljLm1lcmdlX3RvcGljLnRpdGxlIik6aT9JMThuLnQoInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UudGl0bGUiKTpzP0kxOG4udCgidG9waWMubW92ZV90b19leGlzdGluZ19tZXNzYWdlLnRpdGxlIik6STE4bi50KCJzYXZpbmciKX0sb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHsibW9kYWwubW9kYWxDbGFzcyI6ImNob29zZS10b3BpYy1tb2RhbCIsc2F2aW5nOiExLHNlbGVjdGlvbjoibmV3X3RvcGljIixjYXRlZ29yeUlkOm51bGwsdG9waWNOYW1lOiIiLHRhZ3M6bnVsbCxwYXJ0aWNpcGFudHM6bnVsbH0pLHRoaXMuZ2V0KCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIik/dGhpcy5zZXQoInNlbGVjdGlvbiIsdGhpcy5jYW5TcGxpdFRvUE0/Im5ld19tZXNzYWdlIjoiZXhpc3RpbmdfbWVzc2FnZSIpOnRoaXMuY2FuU3BsaXRUb3BpY3x8KHRoaXMuc2V0KCJzZWxlY3Rpb24iLCJleGlzdGluZ190b3BpYyIpLCgwLG4ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJCgiI2Nob29zZS10b3BpYy10aXRsZSIpLmZvY3VzKCl9KSl9LGNhblNwbGl0VG9waWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmMDx0Lmxlbmd0aCYmdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucG9zdF9udW1iZXItdC5wb3N0X251bWJlcn0pWzBdLnBvc3RfdHlwZT09PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMucmVndWxhciIpfSxjYW5TcGxpdFRvUE06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW59LGFjdGlvbnM6e3BlcmZvcm1Nb3ZlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm1vdmVUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuZ2V0KGUpJiZ0LnNlbmQoIm1vdmVQb3N0c1RvIixlKX0pfSxtb3ZlUG9zdHNUbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgbj10aGlzLmdldCgibW9kZWwuaWQiKSxpPXZvaWQgMCxzPXZvaWQgMCxzPSJleGlzdGluZ1RvcGljIj09PWU/KGk9e2Rlc3RpbmF0aW9uX3RvcGljX2lkOnRoaXMuc2VsZWN0ZWRUb3BpY0lkfSxPYmplY3QuYXNzaWduKHtwb3N0X2lkczp0aGlzLmdldCgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdElkcyIpfSxpKSk6ImV4aXN0aW5nTWVzc2FnZSI9PT1lPyhpPXtkZXN0aW5hdGlvbl90b3BpY19pZDp0aGlzLnNlbGVjdGVkVG9waWNJZCxwYXJ0aWNpcGFudHM6dGhpcy5wYXJ0aWNpcGFudHMsYXJjaGV0eXBlOiJwcml2YXRlX21lc3NhZ2UifSxPYmplY3QuYXNzaWduKHtwb3N0X2lkczp0aGlzLmdldCgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdElkcyIpfSxpKSk6Im5ld1RvcGljIj09PWU/KGk9e30se3RpdGxlOnRoaXMudG9waWNOYW1lLHBvc3RfaWRzOnRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0SWRzIiksY2F0ZWdvcnlfaWQ6dGhpcy5jYXRlZ29yeUlkLHRhZ3M6dGhpcy50YWdzfSk6KGk9e30se3RpdGxlOnRoaXMudG9waWNOYW1lLHBvc3RfaWRzOnRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0SWRzIiksdGFnczp0aGlzLnRhZ3MsYXJjaGV0eXBlOiJwcml2YXRlX21lc3NhZ2UifSk7cmV0dXJuKHRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRBbGxQb3N0cyIpPygwLHIubWVyZ2VUb3BpYykobixpKTooMCxyLm1vdmVQb3N0cykobixzKSkudGhlbihmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSx0LnRvcGljQ29udHJvbGxlci5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpLGEuZGVmYXVsdC5yb3V0ZVRvKGUudXJsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAsdS5leHRyYWN0RXJyb3IpKGUsSTE4bi50KCJ0b3BpYy5tb3ZlX3RvLmVycm9yIikpKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgic2F2aW5nIiwhMSl9KSwhMX19fSwiYnV0dG9uRGlzYWJsZWQiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImJ1dHRvbkRpc2FibGVkIiksaCksYyhoLCJidXR0b25UaXRsZSIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiYnV0dG9uVGl0bGUiKSxoKSxjKGgsImNhblNwbGl0VG9waWMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImNhblNwbGl0VG9waWMiKSxoKSxjKGgsImNhblNwbGl0VG9QTSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiY2FuU3BsaXRUb1BNIiksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbmF2aWdhdGlvbi9jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZGlzY292ZXJ5Q2F0ZWdvcmllcy5tb2RlbCIsImRpc2NvdmVyeUNhdGVnb3JpZXMubW9kZWwuZHJhZnQiKSxvPXtkaXNjb3ZlcnlDYXRlZ29yaWVzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKSxkcmFmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGlzY292ZXJ5Q2F0ZWdvcmllcy5tb2RlbC5kcmFmdCIpfX0scj1vLGE9ImRyYWZ0IixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZHJhZnQiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbmF2aWdhdGlvbi9jYXRlZ29yeSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3Nob3dpbmdQYXJlbnRDYXRlZ29yeTooMCx0Lm5vbmUpKCJjYXRlZ29yeS5wYXJlbnRDYXRlZ29yeSIpLHNob3dpbmdTdWJjYXRlZ29yeUxpc3Q6KDAsdC5hbmQpKCJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiLCJzaG93aW5nUGFyZW50Q2F0ZWdvcnkiKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbm90LWFjdGl2YXRlZCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL3VzZXItYWN0aXZhdGlvbiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHthY3Rpb25zOntzZW5kQWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczsoMCxpLnJlc2VuZEFjdGl2YXRpb25FbWFpbCkodGhpcy51c2VybmFtZSkudGhlbihmdW5jdGlvbigpe2Uuc2hvd01vZGFsKCJhY3RpdmF0aW9uLXJlc2VudCIse3RpdGxlOiJsb2dfaW4ifSkuc2V0KCJjdXJyZW50RW1haWwiLGUuY3VycmVudEVtYWlsKX0pfSxlZGl0QWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaG93TW9kYWwoImFjdGl2YXRpb24tZWRpdCIse3RpdGxlOiJsb2dpbi5jaGFuZ2VfZW1haWwifSksdD10aGlzLmN1cnJlbnRFbWFpbDtlLnNldCgiY3VycmVudEVtYWlsIix0KSxlLnNldCgibmV3RW1haWwiLHQpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3Bhc3N3b3JkLXJlc2V0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9saWIvd2ViYXV0aG4iXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHIuZGVmYXVsdCwoYz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5zZWN1cml0eV9rZXlfcmVxdWlyZWQiKSxkPSgwLGkuZGVmYXVsdCkoKSxwPSgwLGkuZGVmYXVsdCkoInJlZGlyZWN0VG8iKSx1KG09e2lzRGV2ZWxvcGVyOigwLHQuYWxpYXMpKCJtb2RlbC5pc19kZXZlbG9wZXIiKSxhZG1pbjooMCx0LmFsaWFzKSgibW9kZWwuYWRtaW4iKSxzZWNvbmRGYWN0b3JSZXF1aXJlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9yZXF1aXJlZCIpLHNlY3VyaXR5S2V5UmVxdWlyZWQ6KDAsdC5hbGlhcykoIm1vZGVsLnNlY3VyaXR5X2tleV9yZXF1aXJlZCIpLGJhY2t1cEVuYWJsZWQ6KDAsdC5hbGlhcykoIm1vZGVsLmJhY2t1cF9lbmFibGVkIiksc2VjdXJpdHlLZXlPclNlY29uZEZhY3RvclJlcXVpcmVkOigwLHQub3IpKCJtb2RlbC5zZWNvbmRfZmFjdG9yX3JlcXVpcmVkIiwibW9kZWwuc2VjdXJpdHlfa2V5X3JlcXVpcmVkIiksb3RoZXJNZXRob2RBbGxvd2VkOigwLHQucmVhZE9ubHkpKCJtb2RlbC5tdWx0aXBsZV9zZWNvbmRfZmFjdG9yX21ldGhvZHMiKSxzZWNvbmRGYWN0b3JNZXRob2Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/YS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOmEuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFB9LHBhc3N3b3JkUmVxdWlyZWQ6ITAsZXJyb3JNZXNzYWdlOm51bGwsc3VjY2Vzc01lc3NhZ2U6bnVsbCxyZXF1aXJlc0FwcHJvdmFsOiExLHJlZGlyZWN0ZWQ6ITEsY29udGludWVCdXR0b25UZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgicGFzc3dvcmRfcmVzZXQuY29udGludWUiLHtzaXRlX25hbWU6dGhpcy5zaXRlU2V0dGluZ3MudGl0bGV9KX0scmVkaXJlY3RIcmVmOmZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGV8fCIvIil9LGxvY2tJbWFnZVVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2xvY2suc3ZnIiksYWN0aW9uczp7c3VibWl0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCxvLmFqYXgpKHt1cmw6KDAscy51c2VyUGF0aCkoInBhc3N3b3JkLXJlc2V0LyIrdGhpcy5nZXQoIm1vZGVsLnRva2VuIikrIi5qc29uIiksdHlwZToiUFVUIixkYXRhOntwYXNzd29yZDp0aGlzLmFjY291bnRQYXNzd29yZCxzZWNvbmRfZmFjdG9yX3Rva2VuOnRoaXMuc2VjdXJpdHlLZXlDcmVkZW50aWFsfHx0aGlzLnNlY29uZEZhY3RvclRva2VuLHNlY29uZF9mYWN0b3JfbWV0aG9kOnRoaXMuc2Vjb25kRmFjdG9yTWV0aG9kfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnNldCgic3VjY2Vzc01lc3NhZ2UiLGUubWVzc2FnZSksdC5zZXQoInJlZGlyZWN0VG8iLGUucmVkaXJlY3RfdG8pLGUucmVxdWlyZXNfYXBwcm92YWw/dC5zZXQoInJlcXVpcmVzQXBwcm92YWwiLCEwKToodC5zZXQoInJlZGlyZWN0ZWQiLCEwKSxzLmRlZmF1bHQucmVkaXJlY3RUbyhlLnJlZGlyZWN0X3RvfHwiLyIpKSk6KGUuZXJyb3JzJiYhZS5lcnJvcnMucGFzc3dvcmQ/dC5zZXRQcm9wZXJ0aWVzKHtzZWNvbmRGYWN0b3JSZXF1aXJlZDp0LnNlY29uZEZhY3RvclJlcXVpcmVkLHNlY3VyaXR5S2V5UmVxdWlyZWQ6dC5zZWN1cml0eUtleVJlcXVpcmVkLHBhc3N3b3JkOm51bGwsZXJyb3JNZXNzYWdlOmUubWVzc2FnZX0pOnQuc2Vjb25kRmFjdG9yUmVxdWlyZWR8fHQuc2VjdXJpdHlLZXlSZXF1aXJlZD90LnNldFByb3BlcnRpZXMoe3NlY29uZEZhY3RvclJlcXVpcmVkOiExLHNlY3VyaXR5S2V5UmVxdWlyZWQ6ITEsZXJyb3JNZXNzYWdlOm51bGx9KTplLmVycm9ycyYmZS5lcnJvcnMucGFzc3dvcmQmJjA8ZS5lcnJvcnMucGFzc3dvcmQubGVuZ3RoJiYodC5yZWplY3RlZFBhc3N3b3Jkcy5wdXNoT2JqZWN0KHQuYWNjb3VudFBhc3N3b3JkKSx0LnJlamVjdGVkUGFzc3dvcmRzTWVzc2FnZXMuc2V0KHQuYWNjb3VudFBhc3N3b3JkLGUuZXJyb3JzLnBhc3N3b3JkWzBdKSksZS5tZXNzYWdlJiZ0LnNldCgiZXJyb3JNZXNzYWdlIixlLm1lc3NhZ2UpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCFlLmpxWEhSfHw0MjkhPT1lLmpxWEhSLnN0YXR1cyl0aHJvdyBuZXcgRXJyb3IoZSk7dC5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3IucmF0ZV9saW1pdCIpKX0pfSxhdXRoZW50aWNhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsbC5nZXRXZWJhdXRobkNyZWRlbnRpYWwpKHRoaXMubW9kZWwuY2hhbGxlbmdlLHRoaXMubW9kZWwuYWxsb3dlZF9jcmVkZW50aWFsX2lkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoInN1Ym1pdCIpfSxmdW5jdGlvbihlKXt0LnNldFByb3BlcnRpZXMoe3NlY3VyaXR5S2V5UmVxdWlyZWQ6ITAscGFzc3dvcmQ6bnVsbCxlcnJvck1lc3NhZ2U6ZX0pfSl9LGRvbmU6ZnVuY3Rpb24oKXt0aGlzLnNldCgicmVkaXJlY3RlZCIsITApLHMuZGVmYXVsdC5yZWRpcmVjdFRvKHRoaXMucmVkaXJlY3RUb3x8Ii8iKX19fSwic2Vjb25kRmFjdG9yTWV0aG9kIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzZWNvbmRGYWN0b3JNZXRob2QiKSxtKSx1KG0sImNvbnRpbnVlQnV0dG9uVGV4dCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiY29udGludWVCdXR0b25UZXh0IiksbSksdShtLCJyZWRpcmVjdEhyZWYiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInJlZGlyZWN0SHJlZiIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3ByZWZlcmVuY2VzIixbImV4cG9ydHMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3JvdXRlcjooMCx0LmluamVjdCkoKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21peGlucy9jYW4tY2hlY2stZW1haWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9sb2dvdXQiXSxmdW5jdGlvbihlLHQsbixzLGksbyxyLGEsbCx1LGMsZCxwLG0peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBmKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBoLGIsZyx2LHksXyx3LHg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCxyLmRlZmF1bHQsKGg9KDAsby5kZWZhdWx0KSgpLGI9KDAsby5kZWZhdWx0KSgibW9kZWwuZmlsdGVyZWRHcm91cHMiKSxnPSgwLG8uZGVmYXVsdCkoIm1vZGVsLmlzX2Fub255bW91cyIpLHY9KDAsby5kZWZhdWx0KSgibW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cyIpLHk9KDAsby5kZWZhdWx0KSgibW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cy5bXSIpLF89KDAsby5kZWZhdWx0KSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9lbmFibGVkIiwiY2FuQ2hlY2tFbWFpbHMiLCJtb2RlbC5pc19hbm9ueW1vdXMiKSx3PSgwLG8uZGVmYXVsdCkoInNob3dBbGxBdXRoVG9rZW5zIiwibW9kZWwudXNlcl9hdXRoX3Rva2VucyIpLGYoeD17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJuYW1lIiwidGl0bGUiLCJwcmltYXJ5X2dyb3VwX2lkIl0sdGhpcy5zZXQoInJldm9raW5nIix7fSl9LGNhbkVkaXROYW1lOigwLGEuc2V0dGluZykoImVuYWJsZV9uYW1lcyIpLGNhblNhdmVVc2VyOiEwLG5ld05hbWVJbnB1dDpudWxsLG5ld1RpdGxlSW5wdXQ6bnVsbCxuZXdQcmltYXJ5R3JvdXBJbnB1dDpudWxsLHBhc3N3b3JkUHJvZ3Jlc3M6bnVsbCxzaG93QWxsQXV0aFRva2VuczohMSxyZXZva2luZzpudWxsLGNhbm5vdERlbGV0ZUFjY291bnQ6KDAsdC5ub3QpKCJjdXJyZW50VXNlci5jYW5fZGVsZXRlX2FjY291bnQiKSxkZWxldGVEaXNhYmxlZDooMCx0Lm9yKSgibW9kZWwuaXNTYXZpbmciLCJkZWxldGluZyIsImNhbm5vdERlbGV0ZUFjY291bnQiKSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0KCJwYXNzd29yZFByb2dyZXNzIixudWxsKX0sbmFtZUluc3RydWN0aW9uczpmdW5jdGlvbigpe3JldHVybiBJMThuLnQodGhpcy5zaXRlU2V0dGluZ3MuZnVsbF9uYW1lX3JlcXVpcmVkPyJ1c2VyLm5hbWUuaW5zdHJ1Y3Rpb25zX3JlcXVpcmVkIjoidXNlci5uYW1lLmluc3RydWN0aW9ucyIpfSxjYW5TZWxlY3RUaXRsZTooMCx0Lmd0KSgibW9kZWwuYXZhaWxhYmxlVGl0bGVzLmxlbmd0aCIsMCksY2FuU2VsZWN0UHJpbWFyeUdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RoJiZ0aGlzLnNpdGVTZXR0aW5ncy51c2VyX3NlbGVjdGVkX3ByaW1hcnlfZ3JvdXBzfSxjYW5DaGFuZ2VQYXNzd29yZDpmdW5jdGlvbihlKXtyZXR1cm4hZSYmKCF0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfc3NvJiZ0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfbG9jYWxfbG9naW5zKX0sYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSxhdXRoUHJvdmlkZXJzOmZ1bmN0aW9uKGUpe3JldHVybigwLGMuZmluZEFsbCkoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue21ldGhvZDp0LGFjY291bnQ6ZS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10Lm5hbWV9KX19KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWNjb3VudHx8ZS5tZXRob2QuY2FuX2Nvbm5lY3R9KX0sZGlzYWJsZUNvbm5lY3RCdXR0b25zOigwLGEucHJvcGVydHlOb3RFcXVhbCkoIm1vZGVsLmlkIiwiY3VycmVudFVzZXIuaWQiKSxjYW5VcGRhdGVBc3NvY2lhdGVkQWNjb3VudHM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiEoZXx8IXR8fG4pJiYwPCgwLGMuZmluZEFsbCkoKS5sZW5ndGh9LGF1dGhUb2tlbnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaXNfYWN0aXZlPy0xOnQuaXNfYWN0aXZlPzE6dC5zZWVuX2F0LmxvY2FsZUNvbXBhcmUoZS5zZWVuX2F0KX0pLGU/dDp0LnNsaWNlKDAsMil9LGNhblNob3dBbGxBdXRoVG9rZW5zOigwLHQuZ3QpKCJtb2RlbC51c2VyX2F1dGhfdG9rZW5zLmxlbmd0aCIsMiksYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZlZCIsITEpLHRoaXMubW9kZWwuc2V0UHJvcGVydGllcyh7bmFtZTp0aGlzLm5ld05hbWVJbnB1dCx0aXRsZTp0aGlzLm5ld1RpdGxlSW5wdXQscHJpbWFyeV9ncm91cF9pZDp0aGlzLm5ld1ByaW1hcnlHcm91cElucHV0fSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2ZWQiLCEwKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpfSxjaGFuZ2VQYXNzd29yZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMucGFzc3dvcmRQcm9ncmVzcylyZXR1cm4gdGhpcy5zZXQoInBhc3N3b3JkUHJvZ3Jlc3MiLEkxOG4udCgidXNlci5jaGFuZ2VfcGFzc3dvcmQuaW5fcHJvZ3Jlc3MiKSksdGhpcy5tb2RlbC5jaGFuZ2VQYXNzd29yZCgpLnRoZW4oZnVuY3Rpb24oKXtlLnNldFByb3BlcnRpZXMoe2NoYW5nZVBhc3N3b3JkUHJvZ3Jlc3M6ITEscGFzc3dvcmRQcm9ncmVzczpJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnN1Y2Nlc3MiKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtlLnNldFByb3BlcnRpZXMoe2NoYW5nZVBhc3N3b3JkUHJvZ3Jlc3M6ITEscGFzc3dvcmRQcm9ncmVzczpJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLmVycm9yIil9KX0pfSxkZWxldGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJkZWxldGluZyIsITApO3ZhciB0PUkxOG4udCgidXNlci5kZWxldGVfYWNjb3VudF9jb25maXJtIiksbj10aGlzLm1vZGVsLGk9W3tsYWJlbDpJMThuLnQoImNhbmNlbCIpLGNsYXNzOiJkLW1vZGFsLWNhbmNlbCIsbGluazohMCxjYWxsYmFjazpmdW5jdGlvbigpe2Uuc2V0KCJkZWxldGluZyIsITEpfX0se2xhYmVsOigwLHMuaWNvbkhUTUwpKCJleGNsYW1hdGlvbi10cmlhbmdsZSIpK0kxOG4udCgidXNlci5kZWxldGVfYWNjb3VudCIpLGNsYXNzOiJidG4gYnRuLWRhbmdlciIsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO24uZGVsZXRlKCkudGhlbihmdW5jdGlvbigpe2Jvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmRlbGV0ZWRfeW91cnNlbGYiKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiLyIpfSl9LGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoInVzZXIuZGVsZXRlX3lvdXJzZWxmX25vdF9hbGxvd2VkIikpLGUuc2V0KCJkZWxldGluZyIsITEpfSl9fV07Ym9vdGJveC5kaWFsb2codCxpLHtjbGFzc2VzOiJkZWxldGUtYWNjb3VudCJ9KX0scmV2b2tlQWNjb3VudDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3RoaXMuc2V0KCJyZXZva2luZy4iK3QubmFtZSwhMCksdGhpcy5tb2RlbC5yZXZva2VBc3NvY2lhdGVkQWNjb3VudCh0Lm5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzP24ubW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cy5yZW1vdmVPYmplY3QodCk6Ym9vdGJveC5hbGVydChlLm1lc3NhZ2UpfSkuY2F0Y2gobC5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgicmV2b2tpbmcuIit0Lm5hbWUsITEpfSl9LHRvZ2dsZVNob3dBbGxBdXRoVG9rZW5zOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0FsbEF1dGhUb2tlbnMiKX0scmV2b2tlQXV0aFRva2VuOmZ1bmN0aW9uKGUpeygwLGQuYWpheCkoKDAscC51c2VyUGF0aCkodGhpcy5nZXQoIm1vZGVsLnVzZXJuYW1lX2xvd2VyIikrIi9wcmVmZXJlbmNlcy9yZXZva2UtYXV0aC10b2tlbiIpLHt0eXBlOiJQT1NUIixkYXRhOmU/e3Rva2VuX2lkOmUuaWR9Ont9fSkudGhlbihmdW5jdGlvbigpe2V8fCgwLG0uZGVmYXVsdCkoKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpfSxzaG93VG9rZW46ZnVuY3Rpb24oZSl7KDAsdS5kZWZhdWx0KSgiYXV0aC10b2tlbiIse21vZGVsOmV9KX0sY29ubmVjdEFjY291bnQ6ZnVuY3Rpb24oZSl7ZS5kb0xvZ2luKHtyZWNvbm5lY3Q6ITB9KX19fSwibmFtZUluc3RydWN0aW9ucyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeCwibmFtZUluc3RydWN0aW9ucyIpLHgpLGYoeCwiY2FuU2VsZWN0UHJpbWFyeUdyb3VwIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJjYW5TZWxlY3RQcmltYXJ5R3JvdXAiKSx4KSxmKHgsImNhbkNoYW5nZVBhc3N3b3JkIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJjYW5DaGFuZ2VQYXNzd29yZCIpLHgpLGYoeCwiYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJhc3NvY2lhdGVkQWNjb3VudHNMb2FkZWQiKSx4KSxmKHgsImF1dGhQcm92aWRlcnMiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHgsImF1dGhQcm92aWRlcnMiKSx4KSxmKHgsImNhblVwZGF0ZUFzc29jaWF0ZWRBY2NvdW50cyIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeCwiY2FuVXBkYXRlQXNzb2NpYXRlZEFjY291bnRzIikseCksZih4LCJhdXRoVG9rZW5zIixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJhdXRoVG9rZW5zIikseCkseCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvY2F0ZWdvcmllcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJtb2RlbC53YXRjaGVkQ2F0ZWdvcmllcyIsIm1vZGVsLndhdGNoZWRGaXJzdFBvc3RDYXRlZ29yaWVzIiwibW9kZWwudHJhY2tlZENhdGVnb3JpZXMiLCJtb2RlbC5tdXRlZENhdGVnb3JpZXMiKSxsPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZW1vdmVfbXV0ZWRfdGFnc19mcm9tX2xhdGVzdCIpLHIodT17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF9jYXRlZ29yeV9pZHMiLCJ3YXRjaGVkX2NhdGVnb3J5X2lkcyIsInRyYWNrZWRfY2F0ZWdvcnlfaWRzIiwid2F0Y2hlZF9maXJzdF9wb3N0X2NhdGVnb3J5X2lkcyJdfSxzZWxlY3RlZENhdGVnb3JpZXM6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuW10uY29uY2F0KGUsdCxuLGkpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfSxjYW5TZWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoImN1cnJlbnRVc2VyLmlkIik9PT10aGlzLmdldCgibW9kZWwuaWQiKX0saGlkZU11dGVkVGFnczpmdW5jdGlvbigpe3JldHVybiJuZXZlciIhPT10aGlzLnNpdGVTZXR0aW5ncy5yZW1vdmVfbXV0ZWRfdGFnc19mcm9tX2xhdGVzdH0sY2FuU2F2ZTooMCxuLm9yKSgiY2FuU2VlIiwiY3VycmVudFVzZXIuYWRtaW4iKSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcil9fX0sInNlbGVjdGVkQ2F0ZWdvcmllcyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwic2VsZWN0ZWRDYXRlZ29yaWVzIiksdSkscih1LCJjYW5TZWUiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2FuU2VlIiksdSkscih1LCJoaWRlTXV0ZWRUYWdzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJoaWRlTXV0ZWRUYWdzIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvZW1haWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobD0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIpLHU9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiksYz0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIpLGQ9KDAsdC5kZWZhdWx0KSgiaW52YWxpZEVtYWlsIiksYShwPXt0YWtlbjohMSxzYXZpbmc6ITEsZXJyb3I6ITEsc3VjY2VzczohMSxuZXdFbWFpbDpudWxsLG5ld0VtYWlsRW1wdHk6KDAsbi5lbXB0eSkoIm5ld0VtYWlsIiksc2F2ZURpc2FibGVkOigwLG4ub3IpKCJzYXZpbmciLCJuZXdFbWFpbEVtcHR5IiwidGFrZW4iLCJ1bmNoYW5nZWQiLCJpbnZhbGlkRW1haWwiKSx1bmNoYW5nZWQ6KDAscy5wcm9wZXJ0eUVxdWFsKSgibmV3RW1haWxMb3dlciIsImN1cnJlbnRVc2VyLmVtYWlsIiksbmV3RW1haWxMb3dlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKX0sc2F2ZUJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInVzZXIuY2hhbmdlIil9LGludmFsaWRFbWFpbDpmdW5jdGlvbihlKXtyZXR1cm4hKDAsci5lbWFpbFZhbGlkKShlKX0sZW1haWxWYWxpZGF0aW9uOmZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIG8uZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLmVtYWlsLmludmFsaWQiKX0pfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7dGFrZW46ITEsc2F2aW5nOiExLGVycm9yOiExLHN1Y2Nlc3M6ITEsbmV3RW1haWw6bnVsbH0pfSxhY3Rpb25zOntjaGFuZ2VFbWFpbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLm1vZGVsLmNoYW5nZUVtYWlsKHRoaXMubmV3RW1haWwpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoInN1Y2Nlc3MiLCEwKX0sZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtlcnJvcjohMCxzYXZpbmc6ITF9KSxlLmpxWEhSLnJlc3BvbnNlSlNPTiYmZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnNbMF0/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIixJMThuLnQoInVzZXIuY2hhbmdlX2VtYWlsLmVycm9yIikpfSl9fX0sIm5ld0VtYWlsTG93ZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5ld0VtYWlsTG93ZXIiKSxwKSxhKHAsInNhdmVCdXR0b25UZXh0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzYXZlQnV0dG9uVGV4dCIpLHApLGEocCwiaW52YWxpZEVtYWlsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpbnZhbGlkRW1haWwiKSxwKSxhKHAsImVtYWlsVmFsaWRhdGlvbiIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZW1haWxWYWxpZGF0aW9uIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvZW1haWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZD0wLHA9MSxtPTI7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoKSxsPSgwLHMuZGVmYXVsdCkoKSx1PSgwLHMuZGVmYXVsdCkoKSxyKGM9e2VtYWlsTWVzc2FnZXNMZXZlbEF3YXk6KDAsdC5lcXVhbCkoIm1vZGVsLnVzZXJfb3B0aW9uLmVtYWlsX21lc3NhZ2VzX2xldmVsIixwKSxlbWFpbExldmVsQXdheTooMCx0LmVxdWFsKSgibW9kZWwudXNlcl9vcHRpb24uZW1haWxfbGV2ZWwiLHApLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zYXZlQXR0ck5hbWVzPVsiZW1haWxfbGV2ZWwiLCJlbWFpbF9tZXNzYWdlc19sZXZlbCIsIm1haWxpbmdfbGlzdF9tb2RlIiwibWFpbGluZ19saXN0X21vZGVfZnJlcXVlbmN5IiwiZW1haWxfZGlnZXN0cyIsImVtYWlsX2luX3JlcGx5X3RvIiwiZW1haWxfcHJldmlvdXNfcmVwbGllcyIsImRpZ2VzdF9hZnRlcl9taW51dGVzIiwiaW5jbHVkZV90bDBfaW5fZGlnZXN0cyJdLHRoaXMucHJldmlvdXNSZXBsaWVzT3B0aW9ucz1be25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMuYWx3YXlzIiksdmFsdWU6MH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMudW5sZXNzX2VtYWlsZWQiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfcHJldmlvdXNfcmVwbGllcy5uZXZlciIpLHZhbHVlOjJ9XSx0aGlzLmVtYWlsTGV2ZWxPcHRpb25zPVt7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfbGV2ZWwuYWx3YXlzIiksdmFsdWU6ZH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2xldmVsLm9ubHlfd2hlbl9hd2F5IiksdmFsdWU6cH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2xldmVsLm5ldmVyIiksdmFsdWU6bX1dLHRoaXMuZGlnZXN0RnJlcXVlbmNpZXM9W3tuYW1lOkkxOG4udCgidXNlci5lbWFpbF9kaWdlc3RzLmV2ZXJ5XzMwX21pbnV0ZXMiKSx2YWx1ZTozMH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2RpZ2VzdHMuZXZlcnlfaG91ciIpLHZhbHVlOjYwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5kYWlseSIpLHZhbHVlOjE0NDB9LHtuYW1lOkkxOG4udCgidXNlci5lbWFpbF9kaWdlc3RzLndlZWtseSIpLHZhbHVlOjEwMDgwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5ldmVyeV9tb250aCIpLHZhbHVlOjQzMjAwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5ldmVyeV9zaXhfbW9udGhzIiksdmFsdWU6MjU5MjAwfV19LGZyZXF1ZW5jeUVzdGltYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLm1haWxpbmdfbGlzdF9wb3N0c19wZXJfZGF5Iik7cmV0dXJuIWV8fGU8Mj9JMThuLnQoInVzZXIubWFpbGluZ19saXN0X21vZGUuZmV3X3Blcl9kYXkiKTpJMThuLnQoInVzZXIubWFpbGluZ19saXN0X21vZGUubWFueV9wZXJfZGF5Iix7ZGFpbHlFbWFpbEVzdGltYXRlOmV9KX0sbWFpbGluZ0xpc3RNb2RlT3B0aW9uczpmdW5jdGlvbigpe3JldHVyblt7bmFtZTp0aGlzLmZyZXF1ZW5jeUVzdGltYXRlLHZhbHVlOjF9LHtuYW1lOkkxOG4udCgidXNlci5tYWlsaW5nX2xpc3RfbW9kZS5pbmRpdmlkdWFsX25vX2VjaG8iKSx2YWx1ZToyfV19LGVtYWlsRnJlcXVlbmN5SW5zdHJ1Y3Rpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVtYWlsX3RpbWVfd2luZG93X21pbnM/STE4bi50KCJ1c2VyLmVtYWlsLmZyZXF1ZW5jeSIse2NvdW50OnRoaXMuc2l0ZVNldHRpbmdzLmVtYWlsX3RpbWVfd2luZG93X21pbnN9KTpJMThuLnQoInVzZXIuZW1haWwuZnJlcXVlbmN5X2ltbWVkaWF0ZWx5Iil9LGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX19fSwiZnJlcXVlbmN5RXN0aW1hdGUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImZyZXF1ZW5jeUVzdGltYXRlIiksYykscihjLCJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIiksYykscihjLCJlbWFpbEZyZXF1ZW5jeUluc3RydWN0aW9ucyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZW1haWxGcmVxdWVuY3lJbnN0cnVjdGlvbnMiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9pbnRlcmZhY2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi90aGVtZS1zZWxlY3RvciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwLG0sZixoLGIsZyx2O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeT17MToibGF0ZXN0IiwyOiJjYXRlZ29yaWVzIiwzOiJ1bnJlYWQiLDQ6Im5ldyIsNToidG9wIn0sXz1bInNtYWxsZXIiLCJub3JtYWwiLCJsYXJnZXIiLCJsYXJnZXN0Il0sdz1bIm5vdGlmaWNhdGlvbnMiLCJjb250ZXh0dWFsIl07ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LCh1PSgwLHMuZGVmYXVsdCkoIm1ha2VUaGVtZURlZmF1bHQiKSxjPSgwLHMuZGVmYXVsdCkoKSxkPSgwLHMuZGVmYXVsdCkoKSxwPSgwLHMuZGVmYXVsdCkoKSxtPSgwLHMuZGVmYXVsdCkoInVzZXJTZWxlY3RhYmxlVGhlbWVzIiksZj0oMCxzLm9ic2VydmVzKSgidGhlbWVJZCIpLGg9KDAscy5kZWZhdWx0KSgibW9kZWwudXNlcl9vcHRpb24udGhlbWVfaWRzIiwidGhlbWVJZCIpLGI9KDAscy5kZWZhdWx0KSgibW9kZWwudXNlcl9vcHRpb24udGV4dF9zaXplIiwidGV4dFNpemUiKSxnPSgwLHMuZGVmYXVsdCkoKSxsKHY9e3NhdmVBdHRyTmFtZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9WyJsb2NhbGUiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZHluYW1pY19mYXZpY29uIiwiZW5hYmxlX3F1b3RpbmciLCJlbmFibGVfZGVmZXIiLCJhdXRvbWF0aWNhbGx5X3VucGluX3RvcGljcyIsImFsbG93X3ByaXZhdGVfbWVzc2FnZXMiLCJob21lcGFnZV9pZCIsImhpZGVfcHJvZmlsZV9hbmRfcHJlc2VuY2UiLCJ0ZXh0X3NpemUiLCJ0aXRsZV9jb3VudF9tb2RlIl07cmV0dXJuIGUmJnQucHVzaCgidGhlbWVfaWRzIiksdH0scHJlZmVyZW5jZXNDb250cm9sbGVyOigwLHQuaW5qZWN0KSgicHJlZmVyZW5jZXMiKSxpc2lQYWQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmlzaVBhZCkoKSYmISgwLGkuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfSxkaXNhYmxlU2FmYXJpSGFja3M6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCl9LGF2YWlsYWJsZUxvY2FsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnNpdGVTZXR0aW5ncy5hdmFpbGFibGVfbG9jYWxlcyl9LHRleHRTaXplczpmdW5jdGlvbigpe3JldHVybiBfLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpJMThuLnQoInVzZXIudGV4dF9zaXplLiIrZSksdmFsdWU6ZX19KX0saG9tZXBhZ2VJZDooMCxhLmNvbXB1dGVkKSgibW9kZWwudXNlcl9vcHRpb24uaG9tZXBhZ2VfaWQiLCJ1c2VyU2VsZWN0YWJsZUhvbWUuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwudXNlcl9vcHRpb24uaG9tZXBhZ2VfaWR8fHRoaXMudXNlclNlbGVjdGFibGVIb21lLmZpcnN0T2JqZWN0LnZhbHVlfSksdGl0bGVDb3VudE1vZGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHcubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOkkxOG4udCgidXNlci50aXRsZV9jb3VudF9tb2RlLiIrZSksdmFsdWU6ZX19KX0sdXNlclNlbGVjdGFibGVUaGVtZXM6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmxpc3RUaGVtZXMpKHRoaXMuc2l0ZSl9LHNob3dUaGVtZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlJiYxPGUubGVuZ3RofSx0aGVtZUlkQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudGhlbWVJZDsoMCxvLnByZXZpZXdUaGVtZSkoW2VdKX0sc2hvd1RoZW1lU2V0RGVmYXVsdDpmdW5jdGlvbihlLHQpe3JldHVybiFlfHxlWzBdIT09dH0sc2hvd1RleHRTZXREZWZhdWx0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUhPT10fSxob21lQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2l0ZVNldHRpbmdzLnRvcF9tZW51LnNwbGl0KCJ8IilbMF0uc3BsaXQoIiwiKVswXSx0PXlbdGhpcy5nZXQoIm1vZGVsLnVzZXJfb3B0aW9uLmhvbWVwYWdlX2lkIildOygwLGkuc2V0RGVmYXVsdEhvbWVwYWdlKSh0fHxlKX0sdXNlclNlbGVjdGFibGVIb21lOmZ1bmN0aW9uKCl7dmFyIG49e307T2JqZWN0LmtleXMoeSkuZm9yRWFjaChmdW5jdGlvbihlKXtuW3lbZV1dPWV9KTt2YXIgaT1bXTtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MudG9wX21lbnUuc3BsaXQoInwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07dCYmaS5wdXNoKHtuYW1lOkkxOG4udCgiZmlsdGVycy4iK2UrIi50aXRsZSIpLHZhbHVlOk51bWJlcih0KX0pfSksaX0sYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoInNhdmVkIiwhMSk7dmFyIHQ9dGhpcy5tYWtlVGhlbWVEZWZhdWx0O3QmJnRoaXMuc2V0KCJtb2RlbC51c2VyX29wdGlvbi50aGVtZV9pZHMiLFt0aGlzLnRoZW1lSWRdKTt2YXIgbj10aGlzLm1ha2VUZXh0U2l6ZURlZmF1bHQ7cmV0dXJuIG4mJnRoaXMuc2V0KCJtb2RlbC51c2VyX29wdGlvbi50ZXh0X3NpemUiLHRoaXMudGV4dFNpemUpLHRoaXMubW9kZWwuc2F2ZSh0aGlzLnNhdmVBdHRyTmFtZXMpLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgic2F2ZWQiLCEwKSx0PygwLG8uc2V0TG9jYWxUaGVtZSkoW10pOigwLG8uc2V0TG9jYWxUaGVtZSkoW2UudGhlbWVJZF0sZS5nZXQoIm1vZGVsLnVzZXJfb3B0aW9uLnRoZW1lX2tleV9zZXEiKSksbj9lLm1vZGVsLnVwZGF0ZVRleHRTaXplQ29va2llKG51bGwpOmUubW9kZWwudXBkYXRlVGV4dFNpemVDb29raWUoZS50ZXh0U2l6ZSksZS5ob21lQ2hhbmdlZCgpLGUuaXNpUGFkJiYoKDAsaS5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpIT09ZS5kaXNhYmxlU2FmYXJpSGFja3MmJkRpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJzYWZhcmktaGFja3MtZGlzYWJsZWQiLGUuZGlzYWJsZVNhZmFyaUhhY2tzLnRvU3RyaW5nKCkpKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxzZWxlY3RUZXh0U2l6ZTpmdW5jdGlvbihuKXt2YXIgaT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0O18uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0idGV4dC1zaXplLSIrZTtuPT09ZT9pLmFkZCh0KTppLnJlbW92ZSh0KX0pLERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLHRoaXMuc2V0KCJ0ZXh0U2l6ZSIsbil9fX0sInNhdmVBdHRyTmFtZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInNhdmVBdHRyTmFtZXMiKSx2KSxsKHYsImlzaVBhZCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiaXNpUGFkIiksdiksbCh2LCJkaXNhYmxlU2FmYXJpSGFja3MiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImRpc2FibGVTYWZhcmlIYWNrcyIpLHYpLGwodiwiYXZhaWxhYmxlTG9jYWxlcyIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiYXZhaWxhYmxlTG9jYWxlcyIpLHYpLGwodiwidGV4dFNpemVzIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRleHRTaXplcyIpLHYpLGwodiwidGl0bGVDb3VudE1vZGVzIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRpdGxlQ291bnRNb2RlcyIpLHYpLGwodiwidXNlclNlbGVjdGFibGVUaGVtZXMiLFtzLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwidXNlclNlbGVjdGFibGVUaGVtZXMiKSx2KSxsKHYsInNob3dUaGVtZVNlbGVjdG9yIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93VGhlbWVTZWxlY3RvciIpLHYpLGwodiwidGhlbWVJZENoYW5nZWQiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRoZW1lSWRDaGFuZ2VkIiksdiksbCh2LCJzaG93VGhlbWVTZXREZWZhdWx0IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93VGhlbWVTZXREZWZhdWx0IiksdiksbCh2LCJzaG93VGV4dFNldERlZmF1bHQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInNob3dUZXh0U2V0RGVmYXVsdCIpLHYpLGwodiwidXNlclNlbGVjdGFibGVIb21lIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJ1c2VyU2VsZWN0YWJsZUhvbWUiKSx2KSx2KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvcHJlZmVyZW5jZXMtdGFiLWNvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2F2ZUF0dHJOYW1lcz1bIm11dGVkX3VzZXJuYW1lcyIsImlnbm9yZWRfdXNlcm5hbWVzIiwibmV3X3RvcGljX2R1cmF0aW9uX21pbnV0ZXMiLCJhdXRvX3RyYWNrX3RvcGljc19hZnRlcl9tc2VjcyIsIm5vdGlmaWNhdGlvbl9sZXZlbF93aGVuX3JlcGx5aW5nIiwibGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5IiwiYWxsb3dfcHJpdmF0ZV9tZXNzYWdlcyJdLHRoaXMubGlrZU5vdGlmaWNhdGlvbkZyZXF1ZW5jaWVzPVt7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5LmFsd2F5cyIpLHZhbHVlOjB9LHtuYW1lOkkxOG4udCgidXNlci5saWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kuZmlyc3RfdGltZV9hbmRfZGFpbHkiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5LmZpcnN0X3RpbWUiKSx2YWx1ZToyfSx7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5Lm5ldmVyIiksdmFsdWU6M31dLHRoaXMuYXV0b1RyYWNrRHVyYXRpb25zPVt7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLm5ldmVyIiksdmFsdWU6LTF9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuaW1tZWRpYXRlbHkiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzMwX3NlY29uZHMiKSx2YWx1ZTozZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfMV9taW51dGUiKSx2YWx1ZTo2ZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfMl9taW51dGVzIiksdmFsdWU6MTJlNH0se25hbWU6STE4bi50KCJ1c2VyLmF1dG9fdHJhY2tfb3B0aW9ucy5hZnRlcl8zX21pbnV0ZXMiKSx2YWx1ZToxOGU0fSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzRfbWludXRlcyIpLHZhbHVlOjI0ZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfNV9taW51dGVzIiksdmFsdWU6M2U1fSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzEwX21pbnV0ZXMiKSx2YWx1ZTo2ZTV9XSx0aGlzLm5vdGlmaWNhdGlvbkxldmVsc0ZvclJlcGx5aW5nPVt7bmFtZTpJMThuLnQoInRvcGljLm5vdGlmaWNhdGlvbnMud2F0Y2hpbmcudGl0bGUiKSx2YWx1ZTppLk5vdGlmaWNhdGlvbkxldmVscy5XQVRDSElOR30se25hbWU6STE4bi50KCJ0b3BpYy5ub3RpZmljYXRpb25zLnRyYWNraW5nLnRpdGxlIiksdmFsdWU6aS5Ob3RpZmljYXRpb25MZXZlbHMuVFJBQ0tJTkd9LHtuYW1lOkkxOG4udCgidG9waWMubm90aWZpY2F0aW9ucy5yZWd1bGFyLnRpdGxlIiksdmFsdWU6aS5Ob3RpZmljYXRpb25MZXZlbHMuUkVHVUxBUn1dLHRoaXMuY29uc2lkZXJOZXdUb3BpY09wdGlvbnM9W3tuYW1lOkkxOG4udCgidXNlci5uZXdfdG9waWNfZHVyYXRpb24ubm90X3ZpZXdlZCIpLHZhbHVlOi0xfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzFfZGF5IiksdmFsdWU6MTQ0MH0se25hbWU6STE4bi50KCJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5hZnRlcl8yX2RheXMiKSx2YWx1ZToyODgwfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzFfd2VlayIpLHZhbHVlOjEwMDgwfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzJfd2Vla3MiKSx2YWx1ZToyMDE2MH0se25hbWU6STE4bi50KCJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5sYXN0X2hlcmUiKSx2YWx1ZTotMn1dfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2gocy5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvcHJvZmlsZSIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCJdLGZ1bmN0aW9uKGUscyxpLHQsbixvLHIsYSxsLHUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LChkPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnVzZXJfZmllbGRzLkBlYWNoLnZhbHVlIikscD0oMCxuLmRlZmF1bHQpKCJtb2RlbC5jYW5fY2hhbmdlX2JpbyIpLGMobT17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJiaW9fcmF3Iiwid2Vic2l0ZSIsImxvY2F0aW9uIiwiY3VzdG9tX2ZpZWxkcyIsInVzZXJfZmllbGRzIiwicHJvZmlsZV9iYWNrZ3JvdW5kX3VwbG9hZF91cmwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIsImRhdGVfb2ZfYmlydGgiLCJ0aW1lem9uZSJdfSx1c2VyRmllbGRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKTtpZighKDAscy5pc0VtcHR5KShlKSl7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnVzZXJfZmllbGRzIik7cmV0dXJuIHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpfHwoZT1lLmZpbHRlckJ5KCJlZGl0YWJsZSIsITApKSxlLnNvcnRCeSgicG9zaXRpb24iKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9bj9uW2UuZ2V0KCJpZCIpLnRvU3RyaW5nKCldOm51bGw7cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSl9fSxjYW5DaGFuZ2VCaW86ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGFjdGlvbnM6e3Nob3dGZWF0dXJlZFRvcGljTW9kYWw6ZnVuY3Rpb24oKXsoMCx1LmRlZmF1bHQpKCJmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUiLHttb2RlbDp0aGlzLm1vZGVsLHRpdGxlOiJ1c2VyLmZlYXR1cmVfdG9waWNfb25fcHJvZmlsZS50aXRsZSJ9KX0sY2xlYXJGZWF0dXJlZFRvcGljRnJvbVByb2ZpbGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2Jvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLmNsZWFyLndhcm5pbmciKSxmdW5jdGlvbihlKXtlJiYoMCxsLmFqYXgpKCIvdS8iK3QubW9kZWwudXNlcm5hbWUrIi9jbGVhci1mZWF0dXJlZC10b3BpYyIse3R5cGU6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5tb2RlbC5zZXQoImZlYXR1cmVkX3RvcGljIixudWxsKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSl9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzYXZlZCIsITEpO3ZhciB0LG49dGhpcy5tb2RlbCxpPXRoaXMudXNlckZpZWxkcztyZXR1cm4oMCxzLmlzRW1wdHkpKGkpfHwodD1uLmdldCgidXNlcl9maWVsZHMiKSwoMCxzLmlzRW1wdHkpKHQpfHxpLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlLmdldCgiZmllbGQuaWQiKS50b1N0cmluZygpXT1lLmdldCgidmFsdWUiKX0pKSxuLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7KDAsYS5jb29rQXN5bmMpKG4uZ2V0KCJiaW9fcmF3IikpLnRoZW4oZnVuY3Rpb24oKXtuLnNldCgiYmlvX2Nvb2tlZCIpLGUuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKX19fSwidXNlckZpZWxkcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwidXNlckZpZWxkcyIpLG0pLGMobSwiY2FuQ2hhbmdlQmlvIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYW5DaGFuZ2VCaW8iKSxtKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9zZWNvbmQtZmFjdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChkPSgwLGkuZGVmYXVsdCkoImN1cnJlbnRVc2VyIiksYyhwPXtsb2FkaW5nOiExLGRpcnR5OiExLHJlc2V0UGFzc3dvcmRMb2FkaW5nOiExLHJlc2V0UGFzc3dvcmRQcm9ncmVzczoiIixwYXNzd29yZDpudWxsLGVycm9yTWVzc2FnZTpudWxsLG5ld1VzZXJuYW1lOm51bGwsYmFja3VwRW5hYmxlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCIpLHNlY29uZEZhY3Rvck1ldGhvZDpsLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLHRvdHBzOm51bGwsbG9hZGVkOigwLHQuYW5kKSgic2Vjb25kRmFjdG9ySW1hZ2UiLCJzZWNvbmRGYWN0b3JLZXkiKSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJ0b3RwcyIsW10pfSxkaXNwbGF5T0F1dGhXYXJuaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA8KDAsYS5maW5kQWxsKSgpLmxlbmd0aH0sc2hvd0VuZm9yY2VkTm90aWNlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmVuZm9yY2VkU2Vjb25kRmFjdG9yfSxoYW5kbGVFcnJvcjpmdW5jdGlvbihlKXt2YXIgdDtlLmpxWEhSJiYoZT1lLmpxWEhSKSwiaW52YWxpZF9hY2Nlc3MiPT09ZS5yZXNwb25zZUpTT04uZXJyb3JfdHlwZT8odD10aGlzLm1vZGVsLnVzZXJuYW1lLnRvTG93ZXJDYXNlKCksby5kZWZhdWx0LnJlZGlyZWN0VG8oKDAsby51c2VyUGF0aCkodCsiL3ByZWZlcmVuY2VzL3NlY29uZC1mYWN0b3IiKSkpOigwLHIucG9wdXBBamF4RXJyb3IpKGUpfSxsb2FkU2Vjb25kRmFjdG9yczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ITEhPT10aGlzLmRpcnR5JiYodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLmxvYWRTZWNvbmRGYWN0b3JDb2Rlcyh0aGlzLnBhc3N3b3JkKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQuc2V0UHJvcGVydGllcyh7ZXJyb3JNZXNzYWdlOm51bGwsbG9hZGVkOiEwLHRvdHBzOmUudG90cHMsc2VjdXJpdHlfa2V5czplLnNlY3VyaXR5X2tleXMscGFzc3dvcmQ6bnVsbCxkaXJ0eTohMX0pLHQuc2V0KCJtb2RlbC5zZWNvbmRfZmFjdG9yX2VuYWJsZWQiLGUudG90cHMmJjA8ZS50b3Rwcy5sZW5ndGh8fGUuc2VjdXJpdHlfa2V5cyYmMDxlLnNlY3VyaXR5X2tleXMubGVuZ3RoKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5oYW5kbGVFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImRpcnR5IiwhMCl9LGFjdGlvbnM6e2NvbmZpcm1QYXNzd29yZDpmdW5jdGlvbigpe3RoaXMucGFzc3dvcmQmJih0aGlzLm1hcmtEaXJ0eSgpLHRoaXMubG9hZFNlY29uZEZhY3RvcnMoKSx0aGlzLnNldCgicGFzc3dvcmQiLG51bGwpKX0scmVzZXRQYXNzd29yZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7cmVzZXRQYXNzd29yZExvYWRpbmc6ITAscmVzZXRQYXNzd29yZFByb2dyZXNzOiIifSksdGhpcy5tb2RlbC5jaGFuZ2VQYXNzd29yZCgpLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmVzZXRQYXNzd29yZFByb2dyZXNzIixJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnN1Y2Nlc3MiKSl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJyZXNldFBhc3N3b3JkTG9hZGluZyIsITEpfSl9LGRpc2FibGVBbGxTZWNvbmRGYWN0b3JzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxvYWRpbmd8fGJvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuc2Vjb25kX2ZhY3Rvci5kaXNhYmxlX2NvbmZpcm0iKSxJMThuLnQoImNhbmNlbCIpLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yLmRpc2FibGUiKSxmdW5jdGlvbihlKXtlJiZ0Lm1vZGVsLmRpc2FibGVBbGxTZWNvbmRGYWN0b3JzKCkudGhlbihmdW5jdGlvbigpe3ZhciBlPXQubW9kZWwudXNlcm5hbWUudG9Mb3dlckNhc2UoKTtvLmRlZmF1bHQucmVkaXJlY3RUbygoMCxvLnVzZXJQYXRoKShlKyIvcHJlZmVyZW5jZXMiKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5oYW5kbGVFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfSl9LGNyZWF0ZVRvdHA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLHUuZGVmYXVsdCkoInNlY29uZC1mYWN0b3ItYWRkLXRvdHAiLHttb2RlbDp0aGlzLm1vZGVsLHRpdGxlOiJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5hZGQifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxjcmVhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsdS5kZWZhdWx0KSgic2Vjb25kLWZhY3Rvci1hZGQtc2VjdXJpdHkta2V5Iix7bW9kZWw6dGhpcy5tb2RlbCx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5hZGQifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxlZGl0U2VjdXJpdHlLZXk6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWVkaXQtc2VjdXJpdHkta2V5Iix7bW9kZWw6ZSx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5lZGl0In0pLnNldFByb3BlcnRpZXMoe3VzZXI6dGhpcy5tb2RlbCxvbkNsb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIHQubG9hZFNlY29uZEZhY3RvcnMoKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya0RpcnR5KCl9LG9uRXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGFuZGxlRXJyb3IoZSl9fSl9LGVkaXRTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWVkaXQiLHttb2RlbDplLHRpdGxlOiJ1c2VyLnNlY29uZF9mYWN0b3IuZWRpdF90aXRsZSJ9KS5zZXRQcm9wZXJ0aWVzKHt1c2VyOnRoaXMubW9kZWwsb25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxlZGl0U2Vjb25kRmFjdG9yQmFja3VwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWJhY2t1cC1lZGl0Iix7bW9kZWw6dGhpcy5tb2RlbCx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC50aXRsZSJ9KS5zZXRQcm9wZXJ0aWVzKHtvbkNsb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIHQubG9hZFNlY29uZEZhY3RvcnMoKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya0RpcnR5KCl9LG9uRXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGFuZGxlRXJyb3IoZSl9fSl9fX0sImRpc3BsYXlPQXV0aFdhcm5pbmciLFtpLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZGlzcGxheU9BdXRoV2FybmluZyIpLHApLGMocCwic2hvd0VuZm9yY2VkTm90aWNlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93RW5mb3JjZWROb3RpY2UiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy90YWdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvcHJlZmVyZW5jZXMtdGFiLWNvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgbyxyLGEsbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKG89KDAsdC5kZWZhdWx0KSgibW9kZWwud2F0Y2hlZF90YWdzLltdIiwibW9kZWwud2F0Y2hpbmdfZmlyc3RfcG9zdF90YWdzLltdIiwibW9kZWwudHJhY2tlZF90YWdzLltdIiwibW9kZWwubXV0ZWRfdGFncy5bXSIpLGE9cj17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF90YWdzIiwidHJhY2tlZF90YWdzIiwid2F0Y2hlZF90YWdzIiwid2F0Y2hpbmdfZmlyc3RfcG9zdF90YWdzIl19LHNlbGVjdGVkVGFnczpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm5bXS5jb25jYXQoZSx0LG4saSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSl9LGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX19fSxsPSJzZWxlY3RlZFRhZ3MiLHU9W29dLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzZWxlY3RlZFRhZ3MiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvdXNlcm5hbWUiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbix0LGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHMub2JzZXJ2ZXMpKCJuZXdVc2VybmFtZSIpLGQ9KDAscy5kZWZhdWx0KSgic2F2aW5nIiksdShwPXt0YWtlbjohMSxzYXZpbmc6ITEsZXJyb3JNZXNzYWdlOm51bGwsbmV3VXNlcm5hbWU6bnVsbCxtYXhMZW5ndGg6KDAsby5zZXR0aW5nKSgibWF4X3VzZXJuYW1lX2xlbmd0aCIpLG1pbkxlbmd0aDooMCxvLnNldHRpbmcpKCJtaW5fdXNlcm5hbWVfbGVuZ3RoIiksbmV3VXNlcm5hbWVFbXB0eTooMCx0LmVtcHR5KSgibmV3VXNlcm5hbWUiKSxzYXZlRGlzYWJsZWQ6KDAsdC5vcikoInNhdmluZyIsIm5ld1VzZXJuYW1lRW1wdHkiLCJ0YWtlbiIsInVuY2hhbmdlZCIsImVycm9yTWVzc2FnZSIpLHVuY2hhbmdlZDooMCxvLnByb3BlcnR5RXF1YWwpKCJuZXdVc2VybmFtZSIsInVzZXJuYW1lIiksY2hlY2tUYWtlbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm5ld1VzZXJuYW1lO2lmKGUmJmUubGVuZ3RoPHRoaXMubWluTGVuZ3RoKXRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLEkxOG4udCgidXNlci5uYW1lLnRvb19zaG9ydCIpKTtlbHNle2lmKHRoaXMuc2V0KCJ0YWtlbiIsITEpLHRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLCgwLG4uaXNFbXB0eSkodGhpcy5uZXdVc2VybmFtZSkpcmV0dXJuO2lmKHRoaXMudW5jaGFuZ2VkKXJldHVybjtsLmRlZmF1bHQuY2hlY2tVc2VybmFtZShlLHZvaWQgMCx0aGlzLmdldCgibW9kZWwuaWQiKSkudGhlbihmdW5jdGlvbihlKXtlLmVycm9ycz90LnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9ycy5qb2luKCIgIikpOiExPT09ZS5hdmFpbGFibGUmJnQuc2V0KCJ0YWtlbiIsITApfSl9fSxzYXZlQnV0dG9uVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gZT9JMThuLnQoInNhdmluZyIpOkkxOG4udCgidXNlci5jaGFuZ2UiKX0sYWN0aW9uczp7Y2hhbmdlVXNlcm5hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLnNhdmVEaXNhYmxlZClyZXR1cm4gYm9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5jaGFuZ2VfdXNlcm5hbWUuY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2UmJih0LnNldCgic2F2aW5nIiwhMCksdC5tb2RlbC5jaGFuZ2VVc2VybmFtZSh0Lm5ld1VzZXJuYW1lKS50aGVuKGZ1bmN0aW9uKCl7ci5kZWZhdWx0LnJlZGlyZWN0VG8oKDAsci51c2VyUGF0aCkodC5uZXdVc2VybmFtZS50b0xvd2VyQ2FzZSgpKyIvcHJlZmVyZW5jZXMiKSl9KS5jYXRjaChhLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJzYXZpbmciLCExKX0pKX0pfX19LCJjaGVja1Rha2VuIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjaGVja1Rha2VuIikscCksdShwLCJzYXZlQnV0dG9uVGV4dCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2F2ZUJ1dHRvblRleHQiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy91c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYShsPXtpZ25vcmVkVXNlcm5hbWVzOigwLG4uYWxpYXMpKCJtb2RlbC5pZ25vcmVkX3VzZXJuYW1lcyIpLHVzZXJJc01lbWJlck9yQWJvdmU6KDAsbi5ndGUpKCJtb2RlbC50cnVzdF9sZXZlbCIsMiksaWdub3JlZEVuYWJsZWQ6KDAsbi5vcikoInVzZXJJc01lbWJlck9yQWJvdmUiLCJtb2RlbC5zdGFmZiIpLG11dGVkVXNlcm5hbWVzOigwLGkuY29tcHV0ZWQpKCJtb2RlbC5tdXRlZF91c2VybmFtZXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsLm11dGVkX3VzZXJuYW1lcztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPWUuc3BsaXQoIiwiKS5maWx0ZXIoQm9vbGVhbikpLCgwLHQubWFrZUFycmF5KShlKS51bmlxKCl9fSksaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF91c2VybmFtZXMiLCJpZ25vcmVkX3VzZXJuYW1lcyJdfSxvbkNoYW5nZU11dGVkVXNlcm5hbWVzOmZ1bmN0aW9uKGUpe3RoaXMubW9kZWwuc2V0KCJtdXRlZF91c2VybmFtZXMiLGUudW5pcSgpLmpvaW4oIiwiKSl9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9fSwib25DaGFuZ2VNdXRlZFVzZXJuYW1lcyIsW2kuYWN0aW9uXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm9uQ2hhbmdlTXV0ZWRVc2VybmFtZXMiKSxsKSxhKGwsInNhdmUiLFtpLmFjdGlvbl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJzYXZlIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcmF3LWVtYWlsIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3Bvc3QiLCJhZG1pbi9tb2RlbHMvaW5jb21pbmctZW1haWwiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3Jhd0VtYWlsOiIiLHRleHRQYXJ0OiIiLGh0bWxQYXJ0OiIiLHRhYjoicmF3IixzaG93UmF3RW1haWw6KDAsdC5lcXVhbCkoInRhYiIsInJhdyIpLHNob3dUZXh0UGFydDooMCx0LmVxdWFsKSgidGFiIiwidGV4dF9wYXJ0Iiksc2hvd0h0bWxQYXJ0OigwLHQuZXF1YWwpKCJ0YWIiLCJodG1sX3BhcnQiKSxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImRpc3BsYXlSYXciKX0sbG9hZFJhd0VtYWlsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHMuZGVmYXVsdC5sb2FkUmF3RW1haWwoZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtyYXdFbWFpbDplLnJhd19lbWFpbCx0ZXh0UGFydDplLnRleHRfcGFydCxodG1sUGFydDplLmh0bWxfcGFydH0pfSl9LGxvYWRJbmNvbWluZ1Jhd0VtYWlsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIG8uZGVmYXVsdC5sb2FkUmF3RW1haWwoZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtyYXdFbWFpbDplLnJhd19lbWFpbCx0ZXh0UGFydDplLnRleHRfcGFydCxodG1sUGFydDplLmh0bWxfcGFydH0pfSl9LGFjdGlvbnM6e2Rpc3BsYXlSYXc6ZnVuY3Rpb24oKXt0aGlzLnNldCgidGFiIiwicmF3Iil9LGRpc3BsYXlUZXh0UGFydDpmdW5jdGlvbigpe3RoaXMuc2V0KCJ0YWIiLCJ0ZXh0X3BhcnQiKX0sZGlzcGxheUh0bWxQYXJ0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRhYiIsImh0bWxfcGFydCIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3JlbmFtZS10YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL21peGlucy9idWZmZXJlZC1jb250ZW50IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQscy5kZWZhdWx0LChyPSgwLHQuZGVmYXVsdCkoImJ1ZmZlcmVkLmlkIiwiaWQiKSxsPWE9e3JlbmFtZURpc2FibGVkOmZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IFJlZ0V4cCh0aGlzLnNpdGUudGFnc19maWx0ZXJfcmVnZXhwLCJnIiksaT1lP2UucmVwbGFjZShuLCIiKS50cmltKCk6IiI7cmV0dXJuIDA9PT1pLmxlbmd0aHx8aT09PXR9LGFjdGlvbnM6e3BlcmZvcm1SZW5hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubW9kZWwudXBkYXRlKHtpZDp0aGlzLmdldCgiYnVmZmVyZWQuaWQiKX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZW5kKCJjbG9zZU1vZGFsIiksZS5yZXNwb25zZUpzb24udGFnP3QudHJhbnNpdGlvblRvUm91dGUoInRhZ3Muc2hvdyIsZS5yZXNwb25zZUpzb24udGFnLmlkKTp0LmZsYXNoKCgwLG8uZXh0cmFjdEVycm9yKShlLnJlc3BvbnNlSnNvbi5lcnJvcnNbMF0pLCJlcnJvciIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhc2goKDAsby5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSl9fX0sdT0icmVuYW1lRGlzYWJsZWQiLGM9W3JdLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJyZW5hbWVEaXNhYmxlZCIpLHA9YSxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChsLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHUsbSksbT1udWxsKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9yZW9yZGVyLWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiLCJAZW1iZXIvb2JqZWN0L3Byb3h5IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbT13aW5kb3cuQnVmZmVyZWRQcm94eTtlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsbi5kZWZhdWx0LChjPSgwLGwuZGVmYXVsdCkoInNpdGUuY2F0ZWdvcmllcyIpLGQ9KDAsbC5vbikoImluaXQiKSx1KHA9e2luaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5jYXRlZ29yaWVzU29ydGluZz1bInBvc2l0aW9uIl19LGNhdGVnb3JpZXNCdWZmZXJlZDpmdW5jdGlvbihlKXt2YXIgdD1pLmRlZmF1bHQuZXh0ZW5kKG0pO3JldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5jcmVhdGUoe2NvbnRlbnQ6ZX0pfSl9LGNhdGVnb3JpZXNPcmRlcmVkOigwLHQuc29ydCkoImNhdGVnb3JpZXNCdWZmZXJlZCIsImNhdGVnb3JpZXNTb3J0aW5nIikscmVvcmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7IWZ1bmN0aW9uIHQobixpLHMpe3JldHVybiBlLmNhdGVnb3JpZXNPcmRlcmVkLmZvckVhY2goZnVuY3Rpb24oZSl7KG51bGwhPT1ufHxlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikpJiZlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikhPT1ufHwoZS5zZXRQcm9wZXJ0aWVzKHtkZXB0aDppLHBvc2l0aW9uOnMrK30pLHM9dChlLmdldCgiaWQiKSxpKzEscykpfSksc30obnVsbCwwLDApLHRoaXMuY2F0ZWdvcmllc0J1ZmZlcmVkLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoImhhc0J1ZmZlcmVkQ2hhbmdlcyIpJiZlLmFwcGx5QnVmZmVyZWRDaGFuZ2VzKCl9KSx0aGlzLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJjYXRlZ29yaWVzQnVmZmVyZWQiKX0sbW92ZTpmdW5jdGlvbih0LG4pe3ZhciBlLGk9dm9pZCAwOyhpPS0xPT09bj90aGlzLmNhdGVnb3JpZXNPcmRlcmVkLnJldmVyc2UoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldCgicGFyZW50X2NhdGVnb3J5X2lkIik9PT1lLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikmJmUuZ2V0KCJwb3NpdGlvbiIpPHQuZ2V0KCJwb3NpdGlvbiIpfSk6MT09PW4/dGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldCgicGFyZW50X2NhdGVnb3J5X2lkIik9PT1lLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikmJmUuZ2V0KCJwb3NpdGlvbiIpPnQuZ2V0KCJwb3NpdGlvbiIpfSk6dGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicG9zaXRpb24iKT09PXQuZ2V0KCJwb3NpdGlvbiIpK259KSk/dC5nZXQoImlkIikhPT1pLmdldCgiaWQiKSYmKGU9dC5nZXQoInBvc2l0aW9uIiksdC5zZXQoInBvc2l0aW9uIixpLmdldCgicG9zaXRpb24iKSksaS5zZXQoInBvc2l0aW9uIixlKSk6bjwwP3Quc2V0KCJwb3NpdGlvbiIsLTEpOjA8biYmdC5zZXQoInBvc2l0aW9uIix0aGlzLmNhdGVnb3JpZXNPcmRlcmVkLmxlbmd0aCksdGhpcy5yZW9yZGVyKCl9LGFjdGlvbnM6e2NoYW5nZTpmdW5jdGlvbihlLHQpe3ZhciBuPXBhcnNlSW50KHQudGFyZ2V0LnZhbHVlLDEwKSxuPU1hdGgubWluKE1hdGgubWF4KG4sMCksdGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5sZW5ndGgtMSk7dGhpcy5tb3ZlKGUsbi1lLmdldCgicG9zaXRpb24iKSl9LG1vdmVVcDpmdW5jdGlvbihlKXt0aGlzLm1vdmUoZSwtMSl9LG1vdmVEb3duOmZ1bmN0aW9uKGUpe3RoaXMubW92ZShlLDEpfSxzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnJlb3JkZXIoKTt2YXIgdD17fTt0aGlzLmNhdGVnb3JpZXNCdWZmZXJlZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS5nZXQoImlkIildPWUuZ2V0KCJwb3NpdGlvbiIpfSksKDAsby5hamF4KSgiL2NhdGVnb3JpZXMvcmVvcmRlciIse3R5cGU6IlBPU1QiLGRhdGE6e21hcHBpbmc6SlNPTi5zdHJpbmdpZnkodCl9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGEucG9wdXBBamF4RXJyb3IpfX19LCJjYXRlZ29yaWVzQnVmZmVyZWQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhdGVnb3JpZXNCdWZmZXJlZCIpLHApLHUocCwicmVvcmRlciIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwicmVvcmRlciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3JlcXVlc3QtZ3JvdXAtbWVtYmVyc2hpcC1mb3JtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChhLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgibW9kZWwubmFtZSIpLGM9KDAsdC5kZWZhdWx0KSgibG9hZGluZyIsInJlYXNvbiIpLGwoZD17bG9hZGluZzohMSxyZWFzb246KDAsaS5hbGlhcykoIm1vZGVsLm1lbWJlcnNoaXBfcmVxdWVzdF90ZW1wbGF0ZSIpLHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3QudGl0bGUiLHtncm91cF9uYW1lOmV9KX0sZGlzYWJsZVN1Ym1pdDpmdW5jdGlvbihlLHQpe3JldHVybiBlfHwoMCxuLmlzRW1wdHkpKHQpfSxhY3Rpb25zOntyZXF1ZXN0TWVtYmVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmN1cnJlbnRVc2VyPyh0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwucmVxdWVzdE1lbWJlcnNoaXAodGhpcy5yZWFzb24pLnRoZW4oZnVuY3Rpb24oZSl7ci5kZWZhdWx0LnJvdXRlVG8oZS5yZWxhdGl2ZV91cmwpfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe2Uuc2V0KCJsb2FkaW5nIiwhMSl9KSk6dGhpcy5fc2hvd0xvZ2luTW9kYWwoKX19fSwidGl0bGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRpdGxlIiksZCksbChkLCJkaXNhYmxlU3VibWl0IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJkaXNhYmxlU3VibWl0IiksZCksZCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcmV2aWV3LWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGVUeXBlcyIpLG89KDAsdC5kZWZhdWx0KSgiZmlsdGVyc0V4cGFuZGVkIiksaShyPXtxdWVyeVBhcmFtczpbInByaW9yaXR5IiwidHlwZSIsInN0YXR1cyIsImNhdGVnb3J5X2lkIiwidG9waWNfaWQiLCJ1c2VybmFtZSIsImZyb21fZGF0ZSIsInRvX2RhdGUiLCJzb3J0X29yZGVyIiwiYWRkaXRpb25hbF9maWx0ZXJzIl0sdHlwZTpudWxsLHN0YXR1czoicGVuZGluZyIscHJpb3JpdHk6ImxvdyIsY2F0ZWdvcnlfaWQ6bnVsbCxyZXZpZXdhYmxlczpudWxsLHRvcGljX2lkOm51bGwsZmlsdGVyc0V4cGFuZGVkOiExLHVzZXJuYW1lOiIiLGZyb21fZGF0ZTpudWxsLHRvX2RhdGU6bnVsbCxzb3J0X29yZGVyOiJwcmlvcml0eSIsYWRkaXRpb25hbF9maWx0ZXJzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgicHJpb3JpdHkiLHRoaXMuc2l0ZVNldHRpbmdzLnJldmlld2FibGVfZGVmYXVsdF92aXNpYmlsaXR5KSx0aGlzLnNldCgiZmlsdGVyc0V4cGFuZGVkIiwhdGhpcy5zaXRlLm1vYmlsZVZpZXcpfSxhbGxUeXBlczpmdW5jdGlvbigpe3JldHVybih0aGlzLnJldmlld2FibGVUeXBlc3x8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZSxuYW1lOkkxOG4udCgicmV2aWV3LnR5cGVzLiIrZS51bmRlcnNjb3JlKCkrIi50aXRsZSIpfX0pfSxwcmlvcml0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuWyJsb3ciLCJtZWRpdW0iLCJoaWdoIl0ubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLG5hbWU6STE4bi50KCJyZXZpZXcuZmlsdGVycy5wcmlvcml0eS4iK2UpfX0pfSxzb3J0T3JkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuWyJwcmlvcml0eSIsInByaW9yaXR5X2FzYyIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkX2F0X2FzYyJdLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZSxuYW1lOkkxOG4udCgicmV2aWV3LmZpbHRlcnMub3JkZXJzLiIrZSl9fSl9LHN0YXR1c2VzOmZ1bmN0aW9uKCl7cmV0dXJuWyJwZW5kaW5nIiwiYXBwcm92ZWQiLCJyZWplY3RlZCIsImRlbGV0ZWQiLCJpZ25vcmVkIiwicmV2aWV3ZWQiLCJhbGwiXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUsbmFtZTpJMThuLnQoInJldmlldy5zdGF0dXNlcy4iK2UrIi50aXRsZSIpfX0pfSx0b2dnbGVGaWx0ZXJzSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iY2hldnJvbi11cCI6ImNoZXZyb24tZG93biJ9LHNldFJhbmdlOmZ1bmN0aW9uKGUpe2UuZnJvbSYmdGhpcy5zZXQoImZyb20iLG5ldyBEYXRlKGUuZnJvbSkudG9JU09TdHJpbmcoKS5zcGxpdCgiVCIpWzBdKSxlLnRvJiZ0aGlzLnNldCgidG8iLG5ldyBEYXRlKGUudG8pLnRvSVNPU3RyaW5nKCkuc3BsaXQoIlQiKVswXSl9LGFjdGlvbnM6e3JlbW92ZTpmdW5jdGlvbih0KXt2YXIgZTt0JiYoZT10aGlzLnJldmlld2FibGVzLnJlamVjdChmdW5jdGlvbihlKXtyZXR1cm4tMSE9PXQuaW5kZXhPZihlLmlkKX0pLHRoaXMuc2V0KCJyZXZpZXdhYmxlcyIsZSkpfSxyZXNldFRvcGljOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRvcGljX2lkIixudWxsKSx0aGlzLnNlbmQoInJlZnJlc2hSb3V0ZSIpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHt0eXBlOnRoaXMuZmlsdGVyVHlwZSxwcmlvcml0eTp0aGlzLmZpbHRlclByaW9yaXR5LHN0YXR1czp0aGlzLmZpbHRlclN0YXR1cyxjYXRlZ29yeV9pZDp0aGlzLmZpbHRlckNhdGVnb3J5SWQsdXNlcm5hbWU6dGhpcy5maWx0ZXJVc2VybmFtZSxmcm9tX2RhdGU6dGhpcy5maWx0ZXJGcm9tRGF0ZSx0b19kYXRlOnRoaXMuZmlsdGVyVG9EYXRlLHNvcnRfb3JkZXI6dGhpcy5maWx0ZXJTb3J0T3JkZXIsYWRkaXRpb25hbF9maWx0ZXJzOkpTT04uc3RyaW5naWZ5KHRoaXMuYWRkaXRpb25hbEZpbHRlcnMpfSksdGhpcy5zZW5kKCJyZWZyZXNoUm91dGUiKX0sbG9hZE1vcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXZpZXdhYmxlcy5sb2FkTW9yZSgpfSx0b2dnbGVGaWx0ZXJzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZmlsdGVyc0V4cGFuZGVkIil9fX0sImFsbFR5cGVzIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJhbGxUeXBlcyIpLHIpLGkociwicHJpb3JpdGllcyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJwcmlvcml0aWVzIiksciksaShyLCJzb3J0T3JkZXJzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInNvcnRPcmRlcnMiKSxyKSxpKHIsInN0YXR1c2VzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInN0YXR1c2VzIiksciksaShyLCJ0b2dnbGVGaWx0ZXJzSWNvbiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwidG9nZ2xlRmlsdGVyc0ljb24iKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9yZXZpZXctc2V0dGluZ3MiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2F2aW5nOiExLHNhdmVkOiExLGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307dGhpcy5nZXQoInNldHRpbmdzLnJldmlld2FibGVfc2NvcmVfdHlwZXMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS5pZF09cGFyc2VGbG9hdChlLnJldmlld2FibGVfcHJpb3JpdHkpfSksdGhpcy5zZXQoInNhdmluZyIsITApLCgwLG4uYWpheCkoIi9yZXZpZXcvc2V0dGluZ3MiLHttZXRob2Q6IlBVVCIsZGF0YTp7cmV2aWV3YWJsZV9wcmlvcml0aWVzOnR9fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goaS5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2aW5nIiwhMSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9zZWNvbmQtZmFjdG9yLWFkZC1zZWN1cml0eS1rZXkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi93ZWJhdXRobiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxsb2FkaW5nOiEwLHNlY3VyaXR5S2V5TmFtZTpJMThuLnQoInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkuZGVmYXVsdF9uYW1lIiksd2ViYXV0aG5VbnN1cHBvcnRlZDohKDAsaS5pc1dlYmF1dGhuU3VwcG9ydGVkKSgpfSksdGhpcy5tb2RlbC5yZXF1ZXN0U2VjdXJpdHlLZXlDaGFsbGVuZ2UoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6dC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6KDAsaS5pc1dlYmF1dGhuU3VwcG9ydGVkKSgpP251bGw6STE4bi50KCJsb2dpbi5zZWN1cml0eV9rZXlfc3VwcG9ydF9taXNzaW5nX2Vycm9yIiksbG9hZGluZzohMSxjaGFsbGVuZ2U6ZS5jaGFsbGVuZ2UscmVsYXlpbmdQYXJ0eTp7aWQ6ZS5ycF9pZCxuYW1lOmUucnBfbmFtZX0sc3VwcG9ydGVkX2FsZ29yaXRoczplLnN1cHBvcnRlZF9hbGdvcml0aHMsdXNlcl9zZWN1cmVfaWQ6ZS51c2VyX3NlY3VyZV9pZCxleGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHM6ZS5leGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHN9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfSxhY3Rpb25zOntyZWdpc3RlclNlY3VyaXR5S2V5OmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxlPXtjaGFsbGVuZ2U6VWludDhBcnJheS5mcm9tKHRoaXMuY2hhbGxlbmdlLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCl9KSxycDp7bmFtZTp0aGlzLnJlbGF5aW5nUGFydHkubmFtZSxpZDp0aGlzLnJlbGF5aW5nUGFydHkuaWR9LHVzZXI6e2lkOlVpbnQ4QXJyYXkuZnJvbSh0aGlzLnVzZXJfc2VjdXJlX2lkLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCl9KSxkaXNwbGF5TmFtZTp0aGlzLm1vZGVsLnVzZXJuYW1lX2xvd2VyLG5hbWU6dGhpcy5tb2RlbC51c2VybmFtZV9sb3dlcn0scHViS2V5Q3JlZFBhcmFtczp0aGlzLnN1cHBvcnRlZF9hbGdvcml0aHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJwdWJsaWMta2V5IixhbGc6ZX19KSxleGNsdWRlQ3JlZGVudGlhbHM6dGhpcy5leGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJwdWJsaWMta2V5IixpZDooMCxpLnN0cmluZ1RvQnVmZmVyKShhdG9iKGUpKX19KSx0aW1lb3V0OjJlNCxhdHRlc3RhdGlvbjoibm9uZSIsYXV0aGVudGljYXRvclNlbGVjdGlvbjp7dXNlclZlcmlmaWNhdGlvbjoiZGlzY291cmFnZWQifX07bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSh7cHVibGljS2V5OmV9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PXtpZDplLmlkLHJhd0lkOigwLGkuYnVmZmVyVG9CYXNlNjQpKGUucmF3SWQpLHR5cGU6ZS50eXBlLGF0dGVzdGF0aW9uOigwLGkuYnVmZmVyVG9CYXNlNjQpKGUucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpLGNsaWVudERhdGE6KDAsaS5idWZmZXJUb0Jhc2U2NCkoZS5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksbmFtZTpuLnNlY3VyaXR5S2V5TmFtZX07bi5tb2RlbC5yZWdpc3RlclNlY3VyaXR5S2V5KHQpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcj9uLnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9yKToobi5tYXJrRGlydHkoKSxuLnNldCgiZXJyb3JNZXNzYWdlIixudWxsKSxuLnNlbmQoImNsb3NlTW9kYWwiKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5vbkVycm9yKGUpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsITEpfSl9LGZ1bmN0aW9uKGUpe3JldHVybiJJbnZhbGlkU3RhdGVFcnJvciI9PT1lLm5hbWU/bi5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmFscmVhZHlfYWRkZWRfZXJyb3IiKSk6Ik5vdEFsbG93ZWRFcnJvciI9PT1lLm5hbWU/bi5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5Lm5vdF9hbGxvd2VkX2Vycm9yIikpOnZvaWQgbi5zZXQoImVycm9yTWVzc2FnZSIsZS5tZXNzYWdlKX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3NlY29uZC1mYWN0b3ItYWRkLXRvdHAiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtsb2FkaW5nOiExLHNlY29uZEZhY3RvckltYWdlOm51bGwsc2Vjb25kRmFjdG9yS2V5Om51bGwsc2hvd1NlY29uZEZhY3RvcktleTohMSxlcnJvck1lc3NhZ2U6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7ZXJyb3JNZXNzYWdlOm51bGwsc2Vjb25kRmFjdG9yS2V5Om51bGwsc2Vjb25kRmFjdG9yTmFtZTpudWxsLHNlY29uZEZhY3RvclRva2VuOm51bGwsc2hvd1NlY29uZEZhY3RvcktleTohMSxzZWNvbmRGYWN0b3JJbWFnZTpudWxsLGxvYWRpbmc6ITB9KSx0aGlzLm1vZGVsLmNyZWF0ZVNlY29uZEZhY3RvclRvdHAoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6dC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxzZWNvbmRGYWN0b3JLZXk6ZS5rZXksc2Vjb25kRmFjdG9ySW1hZ2U6ZS5xcn0pfSkuY2F0Y2goZnVuY3Rpb24oZSl7dC5zZW5kKCJjbG9zZU1vZGFsIiksdC5vbkVycm9yKGUpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9LGFjdGlvbnM6e3Nob3dTZWNvbmRGYWN0b3JLZXk6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2hvd1NlY29uZEZhY3RvcktleSIsITApfSxlbmFibGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2Vjb25kRmFjdG9yVG9rZW4mJih0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwuZW5hYmxlU2Vjb25kRmFjdG9yVG90cCh0aGlzLnNlY29uZEZhY3RvclRva2VuLHRoaXMuc2Vjb25kRmFjdG9yTmFtZSkudGhlbihmdW5jdGlvbihlKXtlLmVycm9yP3Quc2V0KCJlcnJvck1lc3NhZ2UiLGUuZXJyb3IpOih0Lm1hcmtEaXJ0eSgpLHQuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLHQuc2VuZCgiY2xvc2VNb2RhbCIpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvc2Vjb25kLWZhY3Rvci1iYWNrdXAtZWRpdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7dmFyIGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoImJhY2t1cEVuYWJsZWQiKSxsPXtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLHN1Y2Nlc3NNZXNzYWdlOm51bGwsYmFja3VwRW5hYmxlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCIpLHJlbWFpbmluZ0NvZGVzOigwLHQuYWxpYXMpKCJtb2RlbC5zZWNvbmRfZmFjdG9yX3JlbWFpbmluZ19iYWNrdXBfY29kZXMiKSxiYWNrdXBDb2RlczpudWxsLHNlY29uZEZhY3Rvck1ldGhvZDpvLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLGdlbmVyYXRlQmFja3VwQ29kZUJ0bkxhYmVsOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLnJlZ2VuZXJhdGUiOiJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmVuYWJsZSJ9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bG9hZGluZzohMSxlcnJvck1lc3NhZ2U6bnVsbCxzdWNjZXNzTWVzc2FnZTpudWxsLGJhY2t1cENvZGVzOm51bGx9KX0sYWN0aW9uczp7Y29weUJhY2t1cENvZGU6ZnVuY3Rpb24oZSl7ZT90aGlzLnNldCgic3VjY2Vzc01lc3NhZ2UiLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb3BpZWRfdG9fY2xpcGJvYXJkIikpOnRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb3B5X3RvX2NsaXBib2FyZF9lcnJvciIpKSx0aGlzLl9oaWRlQ29weU1lc3NhZ2UoKX0sZGlzYWJsZVNlY29uZEZhY3RvckJhY2t1cDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImJhY2t1cENvZGVzIixbXSksdGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLnVwZGF0ZVNlY29uZEZhY3RvcigwLCIiLCEwLG8uU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLHQubW9kZWwuc2V0KCJzZWNvbmRfZmFjdG9yX2JhY2t1cF9lbmFibGVkIiwhMSksdC5tYXJrRGlydHkoKSx0LnNlbmQoImNsb3NlTW9kYWwiKSl9KS5jYXRjaChmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSx0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0sZ2VuZXJhdGVTZWNvbmRGYWN0b3JDb2RlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLmdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXMoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQubWFya0RpcnR5KCksdC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxiYWNrdXBDb2RlczplLmJhY2t1cF9jb2RlcyxiYWNrdXBFbmFibGVkOiEwLHJlbWFpbmluZ0NvZGVzOmUuYmFja3VwX2NvZGVzLmxlbmd0aH0pKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITF9KX0pfX0sX2hpZGVDb3B5TWVzc2FnZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7KDAsbi5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXRQcm9wZXJ0aWVzKHtzdWNjZXNzTWVzc2FnZTpudWxsLGVycm9yTWVzc2FnZTpudWxsfSl9LDJlMyl9fSx1PWwsYz0iZ2VuZXJhdGVCYWNrdXBDb2RlQnRuTGFiZWwiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJnZW5lcmF0ZUJhY2t1cENvZGVCdG5MYWJlbCIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9zZWNvbmQtZmFjdG9yLWVkaXQtc2VjdXJpdHkta2V5IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7YWN0aW9uczp7ZGlzYWJsZVNlY3VyaXR5S2V5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnVzZXIudXBkYXRlU2VjdXJpdHlLZXkodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITApLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGVkaXRTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy51c2VyLnVwZGF0ZVNlY3VyaXR5S2V5KHRoaXMubW9kZWwuaWQsdGhpcy5tb2RlbC5uYW1lLCExKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3J8fHQubWFya0RpcnR5KCl9KS5jYXRjaChmdW5jdGlvbihlKXt0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoImxvYWRpbmciLCExKSx0LnNlbmQoImNsb3NlTW9kYWwiKX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3NlY29uZC1mYWN0b3ItZWRpdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2FjdGlvbnM6e2Rpc2FibGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudXNlci51cGRhdGVTZWNvbmRGYWN0b3IodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITAsdGhpcy5tb2RlbC5tZXRob2QpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGVkaXRTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudXNlci51cGRhdGVTZWNvbmRGYWN0b3IodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITEsdGhpcy5tb2RlbC5tZXRob2QpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvc3RhdGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgibW9kZWwucGF0aCIpLGw9KDAsdC5kZWZhdWx0KSgibW9kZWwucGF0aCIpLHIodT17YXBwbGljYXRpb246KDAsaS5pbmplY3QpKCksc2hvd0xvZ2luQnV0dG9uOigwLG4uZXF1YWwpKCJtb2RlbC5wYXRoIiwibG9naW4iKSxib2R5Q2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuInN0YXRpYy0iK2V9LHNob3dTaWdudXBCdXR0b246ZnVuY3Rpb24oKXtyZXR1cm4ibG9naW4iPT09dGhpcy5nZXQoIm1vZGVsLnBhdGgiKSYmdGhpcy5nZXQoImFwcGxpY2F0aW9uLmNhblNpZ25VcCIpfSxhY3Rpb25zOnttYXJrRmFxUmVhZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFVzZXI7ZSYmKDAscy5hamF4KSgoMCxvLnVzZXJQYXRoKSgicmVhZC1mYXEiKSx7bWV0aG9kOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmVhZF9mYXEiLCEwKX0pfX19LCJib2R5Q2xhc3MiLFthXSwoYz0oYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsImJvZHlDbGFzcyIpKT9jLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY319KSx1KSxyKHUsInNob3dTaWdudXBCdXR0b24iLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNob3dTaWdudXBCdXR0b24iKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWctZ3JvdXBzLWVkaXQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdHcm91cHM6KDAsdC5pbmplY3QpKCksYWN0aW9uczp7b25EZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy50YWdHcm91cHMubW9kZWwucmVtb3ZlT2JqZWN0KHRoaXMubW9kZWwpLHRoaXMudHJhbnNpdGlvblRvUm91dGUoInRhZ0dyb3Vwcy5pbmRleCIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RhZy1ncm91cHMtbmV3IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnR3JvdXBzOigwLHQuaW5qZWN0KSgpLGFjdGlvbnM6e29uU2F2ZTpmdW5jdGlvbigpe3RoaXMudGFnR3JvdXBzLm1vZGVsLnB1c2hPYmplY3QodGhpcy5tb2RlbCksdGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgidGFnR3JvdXBzLmVkaXQiLHRoaXMubW9kZWwpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RhZy1ncm91cHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthY3Rpb25zOntuZXdUYWdHcm91cDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvUm91dGUoInRhZ0dyb3Vwcy5uZXciKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWdzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcix1O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJncm91cGVkQnlDYXRlZ29yeSIsImdyb3VwZWRCeVRhZ0dyb3VwIiksbyh1PXtzb3J0ZWRCeUNvdW50OiEwLHNvcnRlZEJ5TmFtZTohMSxjYW5BZG1pblRhZ3M6KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLnN0YWZmIiksZ3JvdXBlZEJ5Q2F0ZWdvcnk6KDAsbi5ub3RFbXB0eSkoIm1vZGVsLmV4dHJhcy5jYXRlZ29yaWVzIiksZ3JvdXBlZEJ5VGFnR3JvdXA6KDAsbi5ub3RFbXB0eSkoIm1vZGVsLmV4dHJhcy50YWdfZ3JvdXBzIiksaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNvcnRQcm9wZXJ0aWVzPVsidG90YWxDb3VudDpkZXNjIiwiaWQiXX0sb3RoZXJUYWdzVGl0bGVLZXk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dD8idGFnZ2luZy5vdGhlcl90YWdzIjoidGFnZ2luZy5hbGxfdGFncyJ9LGFjdGlvbnNNYXBwaW5nOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm57bWFuYWdlR3JvdXBzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd1RhZ0dyb3VwcyIpfSx1cGxvYWRUYWdzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd1VwbG9hZGVyIil9LGRlbGV0ZVVudXNlZFRhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJkZWxldGVVbnVzZWQiKX19fSxhY3Rpb25zOntzb3J0QnlDb3VudDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c29ydFByb3BlcnRpZXM6WyJ0b3RhbENvdW50OmRlc2MiLCJpZCJdLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExfSl9LHNvcnRCeUlkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImlkIl0sc29ydGVkQnlDb3VudDohMSxzb3J0ZWRCeU5hbWU6ITB9KX0sc2hvd1VwbG9hZGVyOmZ1bmN0aW9uKCl7KDAscy5kZWZhdWx0KSgidGFnLXVwbG9hZCIpfSxkZWxldGVVbnVzZWQ6ZnVuY3Rpb24oKXt2YXIgcj10aGlzOygwLGEuYWpheCkoIi90YWdzL3VudXNlZCIse3R5cGU6IkdFVCJ9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFncyxuPXQuc2xpY2UoMCwyMCkuam9pbigiLCAiKSxpPU1hdGgubWF4KDAsdC5sZW5ndGgtMjApLHM9MD09PWk/bjpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3VudXNlZF9jb25maXJtYXRpb25fbW9yZV90YWdzIix7Y291bnQ6aSx0YWdzOm59KSxvPUkxOG4udCgidGFnZ2luZy5kZWxldGVfdW51c2VkX2NvbmZpcm1hdGlvbiIse2NvdW50OnQubGVuZ3RoLHRhZ3M6c30pO2Jvb3Rib3guY29uZmlybShvLEkxOG4udCgidGFnZ2luZy5jYW5jZWxfZGVsZXRlX3VudXNlZCIpLEkxOG4udCgidGFnZ2luZy5kZWxldGVfdW51c2VkIiksZnVuY3Rpb24oZSl7ZSYmKDAsYS5hamF4KSgiL3RhZ3MvdW51c2VkIix7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5zZW5kKCJyZWZyZXNoIil9KS5jYXRjaChsLnBvcHVwQWpheEVycm9yKX0pfSkuY2F0Y2gobC5wb3B1cEFqYXhFcnJvcil9fX0sIm90aGVyVGFnc1RpdGxlS2V5Iixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJvdGhlclRhZ3NUaXRsZUtleSIpLHUpLG8odSwiYWN0aW9uc01hcHBpbmciLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiYWN0aW9uc01hcHBpbmciKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWdzLXNob3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwLG0sZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCxyLmRlZmF1bHQsKHU9KDAsaS5kZWZhdWx0KSgibGlzdCIsImxpc3QuZHJhZnQiKSxjPSgwLGkuZGVmYXVsdCkoImNhbkNyZWF0ZVRvcGljIiwiY2F0ZWdvcnkiLCJjYW5DcmVhdGVUb3BpY09uQ2F0ZWdvcnkiLCJ0YWciLCJjYW5DcmVhdGVUb3BpY09uVGFnIiksZD0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeSIsInRhZy5pZCIsImZpbHRlclR5cGUiLCJub1N1YmNhdGVnb3JpZXMiKSxwPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiksbT0oMCxpLmRlZmF1bHQpKCJhZGRpdGlvbmFsVGFncyIsImNhdGVnb3J5IiwidGFnLmlkIiksZj0oMCxpLm9ic2VydmVzKSgibGlzdC5jYW5Mb2FkTW9yZSIpLGg9KDAsaS5kZWZhdWx0KSgibmF2TW9kZSIsImxpc3QudG9waWNzLmxlbmd0aCIsImxvYWRpbmciKSxsKGI9e2FwcGxpY2F0aW9uOigwLG4uaW5qZWN0KSgpLHRhZzpudWxsLGFkZGl0aW9uYWxUYWdzOm51bGwsbGlzdDpudWxsLGNhbkFkbWluVGFnOigwLHQuYWxpYXMpKCJjdXJyZW50VXNlci5zdGFmZiIpLG5hdk1vZGU6ImxhdGVzdCIsbG9hZGluZzohMSxjYW5DcmVhdGVUb3BpYzohMSxvcmRlcjoiZGVmYXVsdCIsYXNjZW5kaW5nOiExLHN0YXR1czpudWxsLHN0YXRlOm51bGwsc2VhcmNoOm51bGwsbWF4X3Bvc3RzOm51bGwscTpudWxsLHNob3dJbmZvOiExLGNhdGVnb3JpZXM6KDAsdC5hbGlhcykoInNpdGUuY2F0ZWdvcmllc0xpc3QiKSxjcmVhdGVUb3BpY0xhYmVsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/InRvcGljLm9wZW5fZHJhZnQiOiJ0b3BpYy5jcmVhdGUifSxjcmVhdGVUb3BpY0Rpc2FibGVkOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIWV8fHQmJiFufHxpJiYhc30scXVlcnlQYXJhbXM6T2JqZWN0LmtleXMoYS5xdWVyeVBhcmFtcyksbmF2SXRlbXM6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIG8uZGVmYXVsdC5idWlsZExpc3QoZSx7dGFnSWQ6dCxmaWx0ZXJUeXBlOm4sbm9TdWJjYXRlZ29yaWVzOml9KX0sc2hvd1RhZ0ZpbHRlcjpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNob3dfZmlsdGVyX2J5X3RhZ30sc2hvd1RvZ2dsZUluZm86ZnVuY3Rpb24oZSx0LG4pe3JldHVybiFlJiYhdCYmIm5vbmUiIT09bn0sbG9hZE1vcmVUb3BpY3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saXN0LmxvYWRNb3JlKCl9LF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLCF0aGlzLmdldCgibGlzdC5jYW5Mb2FkTW9yZSIpKX0sZm9vdGVyTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7aWYoIW4mJjA9PT10KXJldHVybiAwPT09dD9JMThuLnQoInRhZ2dpbmcudG9waWNzLm5vbmUuIitlLHt0YWc6dGhpcy5nZXQoInRhZy5pZCIpfSk6STE4bi50KCJ0YWdnaW5nLnRvcGljcy5ib3R0b20uIitlLHt0YWc6dGhpcy5nZXQoInRhZy5pZCIpfSl9LGFjdGlvbnM6e2NoYW5nZVNvcnQ6ZnVuY3Rpb24oZSl7ZT09PXRoaXMub3JkZXI/dGhpcy50b2dnbGVQcm9wZXJ0eSgiYXNjZW5kaW5nIik6dGhpcy5zZXRQcm9wZXJ0aWVzKHtvcmRlcjplLGFzY2VuZGluZzohMX0pLHRoaXMudHJhbnNpdGlvblRvUm91dGUoe3F1ZXJ5UGFyYW1zOntvcmRlcjplLGFzY2VuZGluZzp0aGlzLmFzY2VuZGluZ319KX0sdG9nZ2xlSW5mbzpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoInNob3dJbmZvIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0YWdzLyIrdGhpcy5nZXQoInRhZy5pZCIpfSkudGhlbihmdW5jdGlvbihlKXt0LnNldCgibGlzdCIsZSksdC5yZXNldFNlbGVjdGVkKCl9KX0sZGVsZXRlVGFnOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibGlzdC50b3BpY19saXN0LnRhZ3MuZmlyc3RPYmplY3QudG9waWNfY291bnQiKXx8MCxpPTA9PT1uP0kxOG4udCgidGFnZ2luZy5kZWxldGVfY29uZmlybV9ub190b3BpY3MiKTpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX2NvbmZpcm0iLHtjb3VudDpufSk7MDxlLnN5bm9ueW1zLmxlbmd0aCYmKGkrPSIgIitJMThuLnQoInRhZ2dpbmcuZGVsZXRlX2NvbmZpcm1fc3lub255bXMiLHtjb3VudDplLnN5bm9ueW1zLmxlbmd0aH0pKSxib290Ym94LmNvbmZpcm0oaSxmdW5jdGlvbihlKXtlJiZ0LnRhZy5kZXN0cm95UmVjb3JkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnRyYW5zaXRpb25Ub1JvdXRlKCJ0YWdzLmluZGV4Iil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgiZ2VuZXJpY19lcnJvciIpKX0pfSl9LGNoYW5nZVRhZ05vdGlmaWNhdGlvbkxldmVsOmZ1bmN0aW9uKGUpe3RoaXMudGFnTm90aWZpY2F0aW9uLnVwZGF0ZSh7bm90aWZpY2F0aW9uX2xldmVsOmV9KX19fSwiY3JlYXRlVG9waWNMYWJlbCIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY3JlYXRlVG9waWNMYWJlbCIpLGIpLGwoYiwiY3JlYXRlVG9waWNEaXNhYmxlZCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY3JlYXRlVG9waWNEaXNhYmxlZCIpLGIpLGwoYiwibmF2SXRlbXMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsIm5hdkl0ZW1zIiksYiksbChiLCJzaG93VGFnRmlsdGVyIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJzaG93VGFnRmlsdGVyIiksYiksbChiLCJzaG93VG9nZ2xlSW5mbyIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic2hvd1RvZ2dsZUluZm8iKSxiKSxsKGIsIl9zaG93Rm9vdGVyIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfc2hvd0Zvb3RlciIpLGIpLGwoYiwiZm9vdGVyTWVzc2FnZSIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZm9vdGVyTWVzc2FnZSIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RvcGljLWJ1bGstYWN0aW9ucyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZEJ1bGtCdXR0b249dm9pZCAwO2Z1bmN0aW9uIHIoKXtyZXR1cm4hMH12YXIgYT1bXTtmdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIHUoZSx0LG4pe3ZhciBpPXthY3Rpb246ZSxsYWJlbDoidG9waWNzLmJ1bGsuIit0LGljb246KG49bnx8e30pLmljb24sYnV0dG9uVmlzaWJsZTpuLmJ1dHRvblZpc2libGV8fHIsY2xhc3M6bi5jbGFzc307YS5wdXNoKGkpfXUoInNob3dDaGFuZ2VDYXRlZ29yeSIsImNoYW5nZV9jYXRlZ29yeSIse2ljb246InBlbmNpbC1hbHQiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJjbG9zZVRvcGljcyIsImNsb3NlX3RvcGljcyIse2ljb246ImxvY2siLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJhcmNoaXZlVG9waWNzIiwiYXJjaGl2ZV90b3BpY3MiLHtpY29uOiJmb2xkZXIiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJzaG93Tm90aWZpY2F0aW9uTGV2ZWwiLCJub3RpZmljYXRpb25fbGV2ZWwiLHtpY29uOiJkLXJlZ3VsYXIiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJyZXNldFJlYWQiLCJyZXNldF9yZWFkIix7aWNvbjoiYmFja3dhcmQiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJ1bmxpc3RUb3BpY3MiLCJ1bmxpc3RfdG9waWNzIix7aWNvbjoiZmFyLWV5ZS1zbGFzaCIsY2xhc3M6ImJ0bi1kZWZhdWx0IixidXR0b25WaXNpYmxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmlzaWJsZX0pfX0pLHUoInJlbGlzdFRvcGljcyIsInJlbGlzdF90b3BpY3MiLHtpY29uOiJmYXItZXllIixjbGFzczoiYnRuLWRlZmF1bHQiLGJ1dHRvblZpc2libGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4hZS52aXNpYmxlfSl9fSksRGlzY291cnNlLlNpdGVTZXR0aW5ncy50YWdnaW5nX2VuYWJsZWQmJih1KCJzaG93VGFnVG9waWNzIiwiY2hhbmdlX3RhZ3MiLHtpY29uOiJ0YWciLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJzaG93QXBwZW5kVGFnVG9waWNzIiwiYXBwZW5kX3RhZ3MiLHtpY29uOiJ0YWciLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSksdSgiZGVsZXRlVG9waWNzIiwiZGVsZXRlIix7aWNvbjoidHJhc2gtYWx0IixjbGFzczoiYnRuLWRhbmdlciJ9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3RhZ3M6bnVsbCxlbXB0eVRhZ3M6KDAsdC5lbXB0eSkoInRhZ3MiKSxjYXRlZ29yeUlkOigwLHQuYWxpYXMpKCJtb2RlbC5jYXRlZ29yeS5pZCIpLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0KCJtb2RlbC50b3BpY3MiKTt0aGlzLnNldCgiYnV0dG9ucyIsYS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYnV0dG9uVmlzaWJsZSh0KX0pKSx0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsInRvcGljLWJ1bGstYWN0aW9ucy1tb2RhbCBzbWFsbCIpLHRoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwibW9kYWwvYnVsay1hY3Rpb25zLWJ1dHRvbnMiKX0scGVyZm9ybTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCk7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnRvcGljcyIpO3JldHVybiBzLmRlZmF1bHQuYnVsa09wZXJhdGlvbihuLGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSksZSYmZS50b3BpY19pZHM/ZS50b3BpY19pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmZpbmRCeSgiaWQiLGUpfSk6ZX0pLmNhdGNoKGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSksdC5zZXQoImxvYWRpbmciLCExKX0pfSxmb3JFYWNoUGVyZm9ybWVkOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLnBlcmZvcm0oZSkudGhlbihmdW5jdGlvbihlKXtlJiYoZS5mb3JFYWNoKHQpLChuLnJlZnJlc2hDbG9zdXJlfHxsKSgpLG4uc2VuZCgiY2xvc2VNb2RhbCIpKX0pfSxwZXJmb3JtQW5kUmVmcmVzaDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnBlcmZvcm0oZSkudGhlbihmdW5jdGlvbigpeyh0LnJlZnJlc2hDbG9zdXJlfHxsKSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGFjdGlvbnM6e3Nob3dUYWdUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLnNldCgidGFncyIsIiIpLHRoaXMuc2V0KCJhY3Rpb24iLCJjaGFuZ2VUYWdzIiksdGhpcy5zZXQoImxhYmVsIiwiY2hhbmdlX3RhZ3MiKSx0aGlzLnNldCgidGl0bGUiLCJjaG9vc2VfbmV3X3RhZ3MiKSx0aGlzLnNlbmQoImNoYW5nZUJ1bGtUZW1wbGF0ZSIsImJ1bGstdGFnIil9LGNoYW5nZVRhZ3M6ZnVuY3Rpb24oKXt0aGlzLnBlcmZvcm1BbmRSZWZyZXNoKHt0eXBlOiJjaGFuZ2VfdGFncyIsdGFnczp0aGlzLnRhZ3N9KX0sc2hvd0FwcGVuZFRhZ1RvcGljczpmdW5jdGlvbigpe3RoaXMuc2V0KCJ0YWdzIiwiIiksdGhpcy5zZXQoImFjdGlvbiIsImFwcGVuZFRhZ3MiKSx0aGlzLnNldCgibGFiZWwiLCJhcHBlbmRfdGFncyIpLHRoaXMuc2V0KCJ0aXRsZSIsImNob29zZV9hcHBlbmRfdGFncyIpLHRoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwiYnVsay10YWciKX0sYXBwZW5kVGFnczpmdW5jdGlvbigpe3RoaXMucGVyZm9ybUFuZFJlZnJlc2goe3R5cGU6ImFwcGVuZF90YWdzIix0YWdzOnRoaXMudGFnc30pfSxzaG93Q2hhbmdlQ2F0ZWdvcnk6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImNoYW5nZUJ1bGtUZW1wbGF0ZSIsIm1vZGFsL2J1bGstY2hhbmdlLWNhdGVnb3J5Iil9LHNob3dOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbigpe3RoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwiKX0sZGVsZXRlVG9waWNzOmZ1bmN0aW9uKCl7dGhpcy5wZXJmb3JtQW5kUmVmcmVzaCh7dHlwZToiZGVsZXRlIn0pfSxjbG9zZVRvcGljczpmdW5jdGlvbigpe3RoaXMuZm9yRWFjaFBlcmZvcm1lZCh7dHlwZToiY2xvc2UifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImNsb3NlZCIsITApfSl9LGFyY2hpdmVUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hQZXJmb3JtZWQoe3R5cGU6ImFyY2hpdmUifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImFyY2hpdmVkIiwhMCl9KX0sdW5saXN0VG9waWNzOmZ1bmN0aW9uKCl7dGhpcy5mb3JFYWNoUGVyZm9ybWVkKHt0eXBlOiJ1bmxpc3QifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoInZpc2libGUiLCExKX0pfSxyZWxpc3RUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hQZXJmb3JtZWQoe3R5cGU6InJlbGlzdCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgidmlzaWJsZSIsITApfSl9LGNoYW5nZUNhdGVnb3J5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXBhcnNlSW50KHRoaXMubmV3Q2F0ZWdvcnlJZCwxMCl8fDAsbj1vLmRlZmF1bHQuZmluZEJ5SWQoZSk7dGhpcy5wZXJmb3JtKHt0eXBlOiJjaGFuZ2VfY2F0ZWdvcnkiLGNhdGVnb3J5X2lkOmV9KS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImNhdGVnb3J5IixuKX0pLCh0LnJlZnJlc2hDbG9zdXJlfHxsKSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LHJlc2V0UmVhZDpmdW5jdGlvbigpe3RoaXMucGVyZm9ybUFuZFJlZnJlc2goe3R5cGU6InJlc2V0X3JlYWQifSl9fX0pLGUuYWRkQnVsa0J1dHRvbj11fSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvYnVmZmVyZWQtY29udGVudCIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbGliL3F1b3RlLXN0YXRlIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2lzLWVsZW1lbnQtaW4tdmlld3BvcnQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2hlbHBlcnMvbG9hZGluZy1zcGlubmVyIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL21vZGVscy90b3BpYy10aW1lciIsInJzdnAiXSxmdW5jdGlvbihlLHUsdCxpLHIsbixzLGMsbyxhLGQsbCxwLG0sZixoLGIsZyx2LHksdyx4LGspeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBQKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1mdW5jdGlvbiBqKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBULEUsTyxTLEMsTSxELEksTCxBLE4seixVLEYsQixSLHEsSCxLLFcsVjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNldEN1c3RvbVBvc3RNZXNzYWdlQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Rz17fX0sZS5yZWdpc3RlckN1c3RvbVBvc3RNZXNzYWdlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtpZihHW2VdKXRocm93IG5ldyBFcnJvcigiRXJyb3IgIitlKyIgaXMgYW4gYWxyZWFkeSByZWdpc3RlcmVkIHBvc3QgbWVzc2FnZSEiKTtHW2VdPXR9O3ZhciBHPXt9O2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCgwLHMuYnVmZmVyZWRQcm9wZXJ0eSkoIm1vZGVsIiksKFQ9KDAsYi5vYnNlcnZlcykoIm1vZGVsLnRpdGxlIiwiY2F0ZWdvcnkiKSxFPSgwLGIuZGVmYXVsdCkoIm1vZGVsLmRldGFpbHMuY2FuX2NyZWF0ZV9wb3N0IiksTz0oMCxiLmRlZmF1bHQpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZCIsIm1vZGVsLmNhdGVnb3J5X2lkIiksUz0oMCxiLmRlZmF1bHQpKCJzaXRlLm1vYmlsZVZpZXciLCJtb2RlbC5wb3N0c19jb3VudCIpLEM9KDAsYi5kZWZhdWx0KSgibW9kZWwucG9zdFN0cmVhbS5wb3N0cyIsIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHNXaXRoUGxhY2Vob2xkZXJzIiksTT0oMCxiLmRlZmF1bHQpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRpbmdGaWx0ZXIiKSxEPSgwLGIuZGVmYXVsdCkoIm1vZGVsIiksST0oMCxiLmRlZmF1bHQpKCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIiwibW9kZWwuY2F0ZWdvcnkuaWQiKSxMPSgwLGIuZGVmYXVsdCkoIm1vZGVsIiksQT0oMCxiLmRlZmF1bHQpKCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIiksTj0oMCxiLmRlZmF1bHQpKCJzZWxlY3RlZFBvc3RJZHMiLCJtb2RlbC5wb3N0U3RyZWFtLnBvc3RzIiwic2VsZWN0ZWRQb3N0SWRzLltdIiwibW9kZWwucG9zdFN0cmVhbS5wb3N0cy5bXSIpLHo9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxVPSgwLGIuZGVmYXVsdCkoInNlbGVjdGVkUG9zdHNDb3VudCIsIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiLCJtb2RlbC5wb3N0U3RyZWFtLnN0cmVhbS5sZW5ndGgiLCJtb2RlbC5wb3N0c19jb3VudCIpLEY9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRBbGxQb3N0cyIsIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiKSxCPSgwLGIuZGVmYXVsdCkoImN1cnJlbnRVc2VyLnN0YWZmIiwic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRBbGxQb3N0cyIsInNlbGVjdGVkUG9zdHMiLCJzZWxlY3RlZFBvc3RzLltdIiksUj0oMCxiLmRlZmF1bHQpKCJtb2RlbC5kZXRhaWxzLmNhbl9tb3ZlX3Bvc3RzIiwic2VsZWN0ZWRQb3N0c0NvdW50IikscT0oMCxiLmRlZmF1bHQpKCJjdXJyZW50VXNlci5hZG1pbiIsInNlbGVjdGVkUG9zdHNDb3VudCIsInNlbGVjdGVkUG9zdHNVc2VybmFtZSIpLEg9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRQb3N0c1VzZXJuYW1lIiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxLPSgwLGIub2JzZXJ2ZXMpKCJtdWx0aVNlbGVjdCIpLFc9KDAsYi5vYnNlcnZlcykoIm1vZGVsLnBvc3RTdHJlYW0ubG9hZGVkIiwibW9kZWwucG9zdFN0cmVhbS5sb2FkZWRBbGxQb3N0cyIpLGooVj17Y29tcG9zZXI6KDAsbi5pbmplY3QpKCksYXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksbXVsdGlTZWxlY3Q6ITEsc2VsZWN0ZWRQb3N0SWRzOm51bGwsZWRpdGluZ1RvcGljOiExLHF1ZXJ5UGFyYW1zOlsiZmlsdGVyIiwidXNlcm5hbWVfZmlsdGVycyJdLGxvYWRlZEFsbFBvc3RzOigwLHQub3IpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZEFsbFBvc3RzIiwibW9kZWwucG9zdFN0cmVhbS5sb2FkaW5nTGFzdFBvc3QiKSxlbnRlcmVkQXQ6bnVsbCxlbnRlcmVkSW5kZXg6bnVsbCxyZXRyeWluZzohMSx1c2VyVHJpZ2dlcmVkUHJvZ3Jlc3M6bnVsbCxfcHJvZ3Jlc3NJbmRleDpudWxsLGhhc1Njcm9sbGVkOm51bGwsdXNlcm5hbWVfZmlsdGVyczpudWxsLGZpbHRlcjpudWxsLHF1b3RlU3RhdGU6bnVsbCxjYW5SZW1vdmVUb3BpY0ZlYXR1cmVkTGluazooMCx0LmFuZCkoImNhbkVkaXRUb3BpY0ZlYXR1cmVkTGluayIsImJ1ZmZlcmVkLmZlYXR1cmVkX2xpbmsiKSx1cGRhdGVRdWVyeVBhcmFtczpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5zdHJlYW1GaWx0ZXJzIikpfSxfdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLnRpdGxlIik7KDAsdS5pc0VtcHR5KShlKXx8dGhpcy5zZW5kKCJyZWZyZXNoVGl0bGUiKX0sZW1iZWRRdW90ZUJ1dHRvbjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5nZXQoImVuYWJsZV9xdW90aW5nIil9LHNob3dTaGFyZWREcmFmdENvbnRyb2xzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5zaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQ7cmV0dXJuIGUmJm4mJnQmJm49PT10fSxzaG93U2VsZWN0ZWRQb3N0c0F0Qm90dG9tOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjM8dH0scG9zdHNUb1JlbmRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmNhcGFiaWxpdGllcy5pc0FuZHJvaWQ/ZTp0fSxhbmRyb2lkTG9hZGluZzpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMuaXNBbmRyb2lkJiZlfSxwbVBhdGg6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIucG1QYXRoKGUpfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJwb3N0OnNob3ctcmV2aXNpb24iLHRoaXMsIl9zaG93UmV2aXNpb24iKSx0aGlzLnNldFByb3BlcnRpZXMoe3NlbGVjdGVkUG9zdElkczpbXSxxdW90ZVN0YXRlOm5ldyBsLmRlZmF1bHR9KX0sd2lsbERlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0OnNob3ctcmV2aXNpb24iLHRoaXMsIl9zaG93UmV2aXNpb24iKX0sX3Nob3dSZXZpc2lvbjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT10aGlzLm1vZGVsLmdldCgicG9zdFN0cmVhbSIpLnBvc3RGb3JQb3N0TnVtYmVyKGUpO2kmJigwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7bi5zZW5kKCJzaG93SGlzdG9yeSIsaSx0KX0pfSxzaG93Q2F0ZWdvcnlDaG9vc2VyOigwLHQubm90KSgibW9kZWwuaXNQcml2YXRlTWVzc2FnZSIpLGdvdG9JbmJveDpmdW5jdGlvbihlKXt2YXIgdD0oMCxvLnVzZXJQYXRoKSh0aGlzLmdldCgiY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXIiKSsiL21lc3NhZ2VzIik7ZSYmKHQ9dCsiL2dyb3VwLyIrZSksby5kZWZhdWx0LnJvdXRlVG8odCl9LHNlbGVjdGVkUXVlcnk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5wb3N0U2VsZWN0ZWQoZSl9fSxjYW5FZGl0VG9waWNGZWF0dXJlZExpbms6ZnVuY3Rpb24oZSx0KXtpZighdGhpcy5zaXRlU2V0dGluZ3MudG9waWNfZmVhdHVyZWRfbGlua19lbmFibGVkfHxlKXJldHVybiExO3ZhciBuPXRoaXMuc2l0ZS5nZXQoInRvcGljX2ZlYXR1cmVkX2xpbmtfYWxsb3dlZF9jYXRlZ29yeV9pZHMiKTtyZXR1cm4gdm9pZCAwPT09bnx8IW4ubGVuZ3RofHxuLmluY2x1ZGVzKHQpfSxmZWF0dXJlZExpbmtEb21haW46ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZy5leHRyYWN0TGlua01ldGEpKGUpLmRvbWFpbn0sY2FuRWRpdFRhZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2l0ZS5nZXQoImNhbl90YWdfdG9waWNzIikmJighZXx8dGhpcy5zaXRlLmdldCgiY2FuX3RhZ19wbXMiKSl9LF9mb3JjZVJlZnJlc2hQb3N0U3RyZWFtOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2ZvcmNlOiEwfSl9LF91cGRhdGVTZWxlY3RlZFBvc3RJZHM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc21hbGxBY3Rpb25Qb3N0SWRzKCk7dGhpcy5zZWxlY3RlZFBvc3RJZHMucHVzaE9iamVjdHMoZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXQuaGFzKGUpfSkpLHRoaXMuc2V0KCJzZWxlY3RlZFBvc3RJZHMiLFtdLmNvbmNhdChQKG5ldyBTZXQodGhpcy5zZWxlY3RlZFBvc3RJZHMpKSkpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sX3NtYWxsQWN0aW9uUG9zdElkczpmdW5jdGlvbigpe3ZhciB0LG4saT1uZXcgU2V0LGU9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHMiKTtyZXR1cm4gZSYmKHQ9dGhpcy5zaXRlLmdldCgicG9zdF90eXBlcy5zbWFsbF9hY3Rpb24iKSxuPXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMud2hpc3BlciIpLGUuZm9yRWFjaChmdW5jdGlvbihlKXtlLnBvc3RfdHlwZSE9PXQmJihlLmNvb2tlZHx8ZS5wb3N0X3R5cGUhPT1uKXx8aS5hZGQoZS5pZCl9KSksaX0sX2xvYWRQb3N0SWRzOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7aWYoIXRoaXMubG9hZGluZ1Bvc3RJZHMpe3ZhciBlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIiksaT0iL3QvIit0aGlzLmdldCgibW9kZWwuaWQiKSsiL3Bvc3RfaWRzLmpzb24iO3JldHVybiB0aGlzLnNldCgibG9hZGluZ1Bvc3RJZHMiLCEwKSwoMCxoLmFqYXgpKGkse2RhdGE6Xy5tZXJnZSh7cG9zdF9udW1iZXI6dC5nZXQoInBvc3RfbnVtYmVyIil9LGUuZ2V0KCJzdHJlYW1GaWx0ZXJzIikpfSkudGhlbihmdW5jdGlvbihlKXtlLnBvc3RfaWRzLnB1c2hPYmplY3QodC5nZXQoImlkIikpLG4uX3VwZGF0ZVNlbGVjdGVkUG9zdElkcyhlLnBvc3RfaWRzKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtuLnNldCgibG9hZGluZ1Bvc3RJZHMiLCExKX0pfX0sYWN0aW9uczp7dG9waWNDYXRlZ29yeUNoYW5nZWQ6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImJ1ZmZlcmVkLmNhdGVnb3J5X2lkIixlKX0sdG9waWNUYWdzQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLnNldCgiYnVmZmVyZWQudGFncyIsZSl9LGRlbGV0ZVBlbmRpbmc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4oMCxoLmFqYXgpKCIvcmV2aWV3LyIrZS5pZCx7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXt0LmdldCgibW9kZWwucGVuZGluZ19wb3N0cyIpLnJlbW92ZU9iamVjdChlKX0pLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfSxzaG93UG9zdEZsYWdzOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNlbmQoInNob3dGbGFncyIsZSl9LG9wZW5GZWF0dXJlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoInNob3dGZWF0dXJlVG9waWMiKX0sc2VsZWN0VGV4dDpmdW5jdGlvbihlLGEsbCl7dmFyIHU9dGhpcyx0PXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIikuZmluZExvYWRlZFBvc3QoZSk7cmV0dXJuKHQ/ay5Qcm9taXNlLnJlc29sdmUodCk6dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5sb2FkUG9zdChlKSkudGhlbihmdW5jdGlvbihlKXt2YXIgdCxuLGkscz11LmNvbXBvc2VyLG89cy5nZXQoIm1vZGVsLnZpZXdPcGVuIikscj1kLmRlZmF1bHQuYnVpbGQoZSxhLGwpO298fHUuZ2V0KCJtb2RlbC5kZXRhaWxzLmNhbl9jcmVhdGVfcG9zdCIpPyh0PXthY3Rpb246Yy5kZWZhdWx0LlJFUExZLGRyYWZ0U2VxdWVuY2U6ZS5nZXQoInRvcGljLmRyYWZ0X3NlcXVlbmNlIiksZHJhZnRLZXk6ZS5nZXQoInRvcGljLmRyYWZ0X2tleSIpfSwxPT09ZS5nZXQoInBvc3RfbnVtYmVyIik/dC50b3BpYz1lLmdldCgidG9waWMiKTp0LnBvc3Q9ZSwobj1zLmdldCgibW9kZWwucG9zdCIpKSYmbi5nZXQoImlkIikhPT11LmdldCgicG9zdC5pZCIpJiYodC5wb3N0PW4pLHQucXVvdGU9cixzLmdldCgibW9kZWwudmlld09wZW4iKT91LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtYmxvY2siLHIpOnMuZ2V0KCJtb2RlbC52aWV3RHJhZnQiKT8oKGk9cy5nZXQoIm1vZGVsIikpLnNldCgicmVwbHkiLGkuZ2V0KCJyZXBseSIpK3IpLHMuc2VuZCgib3BlbklmRHJhZnQiKSk6cy5vcGVuKHQpKTp1LnNlbmQoInJlcGx5QXNOZXdUb3BpYyIsZSxyKX0pfSxmaWxsR2FwQmVmb3JlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLmZpbGxHYXBCZWZvcmUoZS5wb3N0LGUuZ2FwKX0sZmlsbEdhcEFmdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLmZpbGxHYXBBZnRlcihlLnBvc3QsZS5nYXApfSxjdXJyZW50UG9zdENoYW5nZWQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixpPWUucG9zdDtpJiYodD1pLmdldCgicG9zdF9udW1iZXIiKSwobj10aGlzLm1vZGVsKS5zZXQoImN1cnJlbnRQb3N0Iix0KSx0PihuLmdldCgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIil8fDApJiYobi5zZXQoImxhc3RfcmVhZF9wb3N0X2lkIixpLmdldCgiaWQiKSksbi5zZXQoImxhc3RfcmVhZF9wb3N0X251bWJlciIsdCkpLHRoaXMuc2VuZCgicG9zdENoYW5nZWRSb3V0ZSIsdCksdGhpcy5fcHJvZ3Jlc3NJbmRleD1uLmdldCgicG9zdFN0cmVhbSIpLnByb2dyZXNzSW5kZXhPZlBvc3QoaSksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6Y3VycmVudC1wb3N0LWNoYW5nZWQiLHtwb3N0Oml9KSl9LGN1cnJlbnRQb3N0U2Nyb2xsZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50Iiksbj1wYXJzZUZsb2F0KHRoaXMuX3Byb2dyZXNzSW5kZXgrZS5wZXJjZW50LTEpL3Q7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIix7cG9zdEluZGV4OnRoaXMuX3Byb2dyZXNzSW5kZXgscGVyY2VudDpNYXRoLm1heChNYXRoLm1pbihuLDEpLDApfSl9LHRvcFZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT1lLnBvc3Qscz1lLnJlZnJlc2g7aSYmKG49KHQ9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKSkuZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpLGkuZ2V0JiYxPT09aS5nZXQoInBvc3RfbnVtYmVyIil8fG4mJm49PT1pJiZ0LnByZXBlbmRNb3JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBzKCl9KSl9LGJvdHRvbVZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zdCxuPWUucmVmcmVzaCxpPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIikscz1pLmdldCgicG9zdHMubGFzdE9iamVjdCIpO3MmJnM9PT10JiZpLmdldCgiY2FuQXBwZW5kTW9yZSIpJiYoaS5hcHBlbmRNb3JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuKCl9KSxuKCkpfSx0b2dnbGVTdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS50b2dnbGVTdW1tYXJ5KCkudGhlbihmdW5jdGlvbigpe2UudXBkYXRlUXVlcnlQYXJhbXMoKX0pfSxyZW1vdmVBbGxvd2VkVXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmdldCgibW9kZWwuZGV0YWlscyIpLnJlbW92ZUFsbG93ZWRVc2VyKGUpLnRoZW4oZnVuY3Rpb24oKXt0LmN1cnJlbnRVc2VyLmlkPT09ZS5pZCYmdC50cmFuc2l0aW9uVG9Sb3V0ZSgidXNlclByaXZhdGVNZXNzYWdlcyIsZSl9KX0scmVtb3ZlQWxsb3dlZEdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwuZGV0YWlscyIpLnJlbW92ZUFsbG93ZWRHcm91cChlKX0sZGVsZXRlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLmRlbGV0ZVRvcGljKCl9LHRvZ2dsZUFyY2hpdmVNZXNzYWdlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG49dGhpcy5tb2RlbDtuLmdldCgiYXJjaGl2aW5nIil8fChlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZ290b0luYm94KG4uZ2V0KCJpbmJveEdyb3VwTmFtZSIpKX0sbi5nZXQoIm1lc3NhZ2VfYXJjaGl2ZWQiKT9uLm1vdmVUb0luYm94KCkudGhlbihlKTpuLmFyY2hpdmVNZXNzYWdlKCkudGhlbihlKSl9LGRlZmVyVG9waWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzY3JlZW4tdHJhY2s6bWFpbiIpLG49dGhpcy5jdXJyZW50VXNlcixpPXRoaXMubW9kZWw7dC5yZXNldCgpLHQuc3RvcCgpO3ZhciBzPWkuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIik/bi5wbVBhdGgoaSk6Ii8iOygwLGguYWpheCkoIi90LyIraS5nZXQoImlkIikrIi90aW1pbmdzLmpzb24/bGFzdD0xIix7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXtlLnNlc3Npb24uZ2V0KCJoaWdoZXN0U2VlbkJ5VG9waWMiKVtpLmdldCgiaWQiKV09bnVsbCxvLmRlZmF1bHQucm91dGVUbyhzKX0pLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfSxlZGl0Rmlyc3RQb3N0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7aWYoMSE9PShuPWUuZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpKS5nZXQoInBvc3RfbnVtYmVyIikpe3ZhciBuLGk9ZS5maW5kUG9zdElkRm9yUG9zdE51bWJlcigxKTtpZih2b2lkIDA9PT0obj1lLmZpbmRMb2FkZWRQb3N0KGkpKSlyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5sb2FkUG9zdChpKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2VuZCgiZWRpdFBvc3QiLGUpfSl9dGhpcy5zZW5kKCJlZGl0UG9zdCIsbil9LHJlcGx5VG9Qb3N0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY29tcG9zZXIsbj1lP2UuZ2V0KCJ0b3BpYyIpOnRoaXMubW9kZWwsaT10aGlzLnF1b3RlU3RhdGUscz10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO2lmKHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInBhZ2U6Y29tcG9zZS1yZXBseSIsbikscyYmbiYmbi5nZXQoImRldGFpbHMuY2FuX2NyZWF0ZV9wb3N0Iikpe3ZhciBvLHI9cy5maW5kTG9hZGVkUG9zdChpLnBvc3RJZCksYT1kLmRlZmF1bHQuYnVpbGQocixpLmJ1ZmZlcik7cmV0dXJuIGkuY2xlYXIoKSx0LmdldCgibW9kZWwudG9waWMuaWQiKT09PW4uZ2V0KCJpZCIpJiZ0LmdldCgibW9kZWwuYWN0aW9uIik9PT1jLmRlZmF1bHQuUkVQTFk/KHQuc2V0KCJtb2RlbC5wb3N0IixlKSx0LnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTiksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIixhLnRyaW0oKSkpOihvPXthY3Rpb246Yy5kZWZhdWx0LlJFUExZLGRyYWZ0S2V5Om4uZ2V0KCJkcmFmdF9rZXkiKSxkcmFmdFNlcXVlbmNlOm4uZ2V0KCJkcmFmdF9zZXF1ZW5jZSIpfSxhJiYoby5xdW90ZT1hKSxlJiYxIT09ZS5nZXQoInBvc3RfbnVtYmVyIik/by5wb3N0PWU6by50b3BpYz1uLHQub3BlbihvKSksITF9fSxyZWNvdmVyUG9zdDpmdW5jdGlvbihlKXsxPT09ZS5nZXQoInBvc3RfbnVtYmVyIik/dGhpcy5yZWNvdmVyVG9waWMoKTplLnJlY292ZXIoKX0sZGVsZXRlUG9zdDpmdW5jdGlvbihpKXt2YXIgZT10aGlzO2lmKDE9PT1pLmdldCgicG9zdF9udW1iZXIiKSlyZXR1cm4gdGhpcy5kZWxldGVUb3BpYygpO2lmKCFpLmNhbl9kZWxldGUpcmV0dXJuITE7ZnVuY3Rpb24gcygpe3JldHVybiBlLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIil9dmFyIG89dGhpcy5jdXJyZW50VXNlcix0PTA8aS5nZXQoInJlcGx5X2NvdW50Iikscj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5wb3N0cyIpO2lmKCFvLmdldCgic3RhZmYiKXx8IXQpcmV0dXJuIGkuZGVzdHJveShvKS50aGVuKHMpLmNhdGNoKGZ1bmN0aW9uKGUpeygwLHYucG9wdXBBamF4RXJyb3IpKGUpLGkudW5kb0RlbGV0ZVN0YXRlKCl9KTsoMCxoLmFqYXgpKCIvcG9zdHMvIitpLmlkKyIvcmVwbHktaWRzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gaS5kZXN0cm95KG8pLnRoZW4ocykuY2F0Y2goZnVuY3Rpb24oZSl7KDAsdi5wb3B1cEFqYXhFcnJvcikoZSksaS51bmRvRGVsZXRlU3RhdGUoKX0pO3ZhciB0PVtdO3QucHVzaCh7bGFiZWw6STE4bi50KCJjYW5jZWwiKSxjbGFzczoiYnRuLWRhbmdlciByaWdodCJ9KSx0LnB1c2goe2xhYmVsOkkxOG4udCgicG9zdC5jb250cm9scy5kZWxldGVfcmVwbGllcy5qdXN0X3RoZV9wb3N0IiksY2FsbGJhY2s6ZnVuY3Rpb24oKXtpLmRlc3Ryb3kobykudGhlbihzKS5jYXRjaChmdW5jdGlvbihlKXsoMCx2LnBvcHVwQWpheEVycm9yKShlKSxpLnVuZG9EZWxldGVTdGF0ZSgpfSl9fSksZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiAxPGUubGV2ZWx9KSYmdC5wdXNoKHtsYWJlbDpJMThuLnQoInBvc3QuY29udHJvbHMuZGVsZXRlX3JlcGxpZXMuYWxsX3JlcGxpZXMiLHtjb3VudDplLmxlbmd0aH0pLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybih0PT09aXx8ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5pZH0pKSYmdC5zZXREZWxldGVkU3RhdGUobyl9KSxhLmRlZmF1bHQuZGVsZXRlTWFueShbaS5pZF0uY29uY2F0KFAoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9KSkpKS50aGVuKHMpLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfX0pO3ZhciBuPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5sZXZlbH0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZH0pO3QucHVzaCh7bGFiZWw6STE4bi50KCJwb3N0LmNvbnRyb2xzLmRlbGV0ZV9yZXBsaWVzLmRpcmVjdF9yZXBsaWVzIix7Y291bnQ6bi5sZW5ndGh9KSxjbGFzczoiYnRuLXByaW1hcnkiLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybihlPT09aXx8bi5pbmNsdWRlcyhlLmlkKSkmJmUuc2V0RGVsZXRlZFN0YXRlKG8pfSksYS5kZWZhdWx0LmRlbGV0ZU1hbnkoW2kuaWRdLmNvbmNhdChQKG4pKSkudGhlbihzKS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKX19KSxib290Ym94LmRpYWxvZyhJMThuLnQoInBvc3QuY29udHJvbHMuZGVsZXRlX3JlcGxpZXMuY29uZmlybSIpLHQpfSl9LGVkaXRQb3N0OmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmN1cnJlbnRVc2VyKXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5jb250cm9scy5lZGl0X2Fub255bW91cyIpKTtpZighZS5jYW5fZWRpdClyZXR1cm4hMTt2YXIgdD10aGlzLmNvbXBvc2VyLG49dGhpcy5tb2RlbCxpPXQuZ2V0KCJtb2RlbCIpLHM9aSYmKGUuZ2V0KCJmaXJzdFBvc3QiKXx8aS5nZXQoImVkaXRpbmdGaXJzdFBvc3QiKSksbz0hMSxyPXRoaXMuZ2V0KCJzaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQiKTtyJiZyPT09bi5nZXQoImNhdGVnb3J5LmlkIikmJihvPWUuZ2V0KCJmaXJzdFBvc3QiKSk7dmFyIGE9e3Bvc3Q6ZSxhY3Rpb246bz9jLmRlZmF1bHQuRURJVF9TSEFSRURfRFJBRlQ6Yy5kZWZhdWx0LkVESVQsZHJhZnRLZXk6ZS5nZXQoInRvcGljLmRyYWZ0X2tleSIpLGRyYWZ0U2VxdWVuY2U6ZS5nZXQoInRvcGljLmRyYWZ0X3NlcXVlbmNlIil9O28mJihhLmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZD1uLmdldCgiZGVzdGluYXRpb25fY2F0ZWdvcnlfaWQiKSkscz90LmNhbmNlbENvbXBvc2VyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Lm9wZW4oYSl9KTp0Lm9wZW4oYSl9LHRvZ2dsZUJvb2ttYXJrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY3VycmVudFVzZXI/ZT9lLnRvZ2dsZUJvb2ttYXJrKCkuY2F0Y2godi5wb3B1cEFqYXhFcnJvcik6dGhpcy5tb2RlbC50b2dnbGVCb29rbWFyaygpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6ZX0pfSl9KTpib290Ym94LmFsZXJ0KEkxOG4udCgiYm9va21hcmtzLm5vdF9ib29rbWFya2VkIikpfSx0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlcj9lP2UudG9nZ2xlQm9va21hcmtXaXRoUmVtaW5kZXIoKTp0aGlzLm1vZGVsLnRvZ2dsZUJvb2ttYXJrV2l0aFJlbWluZGVyKCk6Ym9vdGJveC5hbGVydChJMThuLnQoImJvb2ttYXJrcy5ub3RfYm9va21hcmtlZCIpKX0sanVtcFRvSW5kZXg6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvSW5kZXgoZSl9LGp1bXBUb0RhdGU6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvRGF0ZShlKX0sanVtcFRvUG9zdFByb21wdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm1vZGVsOygwLHcuZGVmYXVsdCkoImp1bXAtdG8tcG9zdCIse21vZGFsQ2xhc3M6Imp1bXAtdG8tcG9zdC1tb2RhbCJ9KS5zZXRQcm9wZXJ0aWVzKHt0b3BpYzplLHBvc3ROdW1iZXI6bnVsbCxqdW1wVG9JbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gdC5zZW5kKCJqdW1wVG9JbmRleCIsZSl9LGp1bXBUb0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2VuZCgianVtcFRvRGF0ZSIsZSl9fSl9LGp1bXBUb1Bvc3Q6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvUG9zdE51bWJlcihlKX0sanVtcFRvcDpmdW5jdGlvbigpe28uZGVmYXVsdC5yb3V0ZVRvKHRoaXMuZ2V0KCJtb2RlbC5maXJzdFBvc3RVcmwiKSx7c2tpcElmT25TY3JlZW46ITF9KX0sanVtcEJvdHRvbTpmdW5jdGlvbigpe28uZGVmYXVsdC5yb3V0ZVRvKHRoaXMuZ2V0KCJtb2RlbC5sYXN0UG9zdFVybCIpLHtza2lwSWZPblNjcmVlbjohMX0pfSxqdW1wRW5kOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6anVtcC10by1wb3N0Iix0aGlzLmdldCgibW9kZWwuaGlnaGVzdF9wb3N0X251bWJlciIpKSxvLmRlZmF1bHQucm91dGVUbyh0aGlzLmdldCgibW9kZWwubGFzdFBvc3RVcmwiKSx7anVtcEVuZDohMH0pfSxqdW1wVW5yZWFkOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvUG9zdElkKHRoaXMuZ2V0KCJtb2RlbC5sYXN0X3JlYWRfcG9zdF9pZCIpKX0sanVtcFRvUG9zdElkOmZ1bmN0aW9uKGUpe3RoaXMuX2p1bXBUb1Bvc3RJZChlKX0sdG9nZ2xlTXVsdGlTZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJtdWx0aVNlbGVjdCIpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc21hbGxBY3Rpb25Qb3N0SWRzKCk7dGhpcy5zZXQoInNlbGVjdGVkUG9zdElkcyIsW10uY29uY2F0KFAodGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uc3RyZWFtIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmhhcyhlKX0pKSkpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sZGVzZWxlY3RBbGw6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbXSksdGhpcy5fZm9yY2VSZWZyZXNoUG9zdFN0cmVhbSgpfSx0b2dnbGVQb3N0U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2VsZWN0ZWRQb3N0SWRzO3QuaW5jbHVkZXMoZS5pZCk/dC5yZW1vdmVPYmplY3QoZS5pZCk6dC5hZGRPYmplY3QoZS5pZCl9LHNlbGVjdFJlcGxpZXM6ZnVuY3Rpb24obil7dmFyIGk9dGhpczsoMCxoLmFqYXgpKCIvcG9zdHMvIituLmlkKyIvcmVwbHktaWRzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkfSk7aS5zZWxlY3RlZFBvc3RJZHMucHVzaE9iamVjdHMoW24uaWRdLmNvbmNhdChQKHQpKSksaS5fZm9yY2VSZWZyZXNoUG9zdFN0cmVhbSgpfSl9LHNlbGVjdEJlbG93OmZ1bmN0aW9uKGUpe3ZhciB0LG47dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiKT90aGlzLl9sb2FkUG9zdElkcyhlKToobj0odD1bXS5jb25jYXQoUCh0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5zdHJlYW0iKSkpKS5zbGljZSh0LmluZGV4T2YoZS5pZCkpLHRoaXMuX3VwZGF0ZVNlbGVjdGVkUG9zdElkcyhuKSl9LGRlbGV0ZVNlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPXRoaXMuY3VycmVudFVzZXI7Ym9vdGJveC5jb25maXJtKEkxOG4udCgicG9zdC5kZWxldGUuY29uZmlybSIse2NvdW50OnRoaXMuc2VsZWN0ZWRQb3N0c0NvdW50fSksZnVuY3Rpb24oZSl7aWYoZSl7aWYodC5zZWxlY3RlZEFsbFBvc3RzKXJldHVybiB0LmRlbGV0ZVRvcGljKCk7YS5kZWZhdWx0LmRlbGV0ZU1hbnkodC5zZWxlY3RlZFBvc3RJZHMpLHQuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLnBvc3RzIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5wb3N0U2VsZWN0ZWQoZSkmJmUuc2V0RGVsZXRlZFN0YXRlKG4pfSksdC5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpfX0pfSxtZXJnZVBvc3RzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJwb3N0Lm1lcmdlLmNvbmZpcm0iLHtjb3VudDp0aGlzLnNlbGVjdGVkUG9zdHNDb3VudH0pLGZ1bmN0aW9uKGUpe2UmJihhLmRlZmF1bHQubWVyZ2VQb3N0cyh0LnNlbGVjdGVkUG9zdElkcyksdC5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpKX0pfSxjaGFuZ2VQb3N0T3duZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInNlbGVjdGVkUG9zdElkcyIsW2UuaWRdKSx0aGlzLnNlbmQoImNoYW5nZU93bmVyIil9LGxvY2tQb3N0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgibG9ja2VkIiwhMCl9LHVubG9ja1Bvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudXBkYXRlUG9zdEZpZWxkKCJsb2NrZWQiLCExKX0sZ3JhbnRCYWRnZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbZS5pZF0pLHRoaXMuc2VuZCgic2hvd0dyYW50QmFkZ2VNb2RhbCIpfSxhZGROb3RpY2U6ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBrLlByb21pc2UoZnVuY3Rpb24oZSx0KXsoMCx3LmRlZmF1bHQpKCJhZGQtcG9zdC1ub3RpY2UiKS5zZXRQcm9wZXJ0aWVzKHtwb3N0Om4scmVzb2x2ZTplLHJlamVjdDp0fSl9KX0scmVtb3ZlTm90aWNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgibm90aWNlIixudWxsKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0UHJvcGVydGllcyh7bm90aWNlX3R5cGU6bnVsbCxub3RpY2VfYXJnczpudWxsfSl9KX0sdG9nZ2xlUGFydGljaXBhbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLnRvZ2dsZVBhcnRpY2lwYW50KGUuZ2V0KCJ1c2VybmFtZSIpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudXBkYXRlUXVlcnlQYXJhbXN9KX0sZWRpdFRvcGljOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJtb2RlbC5kZXRhaWxzLmNhbl9lZGl0IikmJnRoaXMuc2V0KCJlZGl0aW5nVG9waWMiLCEwKSwhMX0sY2FuY2VsRWRpdGluZ1RvcGljOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImVkaXRpbmdUb3BpYyIsITEpLHRoaXMucm9sbGJhY2tCdWZmZXIoKX0sZmluaXNoZWRFZGl0aW5nVG9waWM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXM7dGhpcy5lZGl0aW5nVG9waWMmJihlPXRoaXMuZ2V0KCJidWZmZXJlZC5idWZmZXIiKSxwLmRlZmF1bHQudXBkYXRlKHRoaXMubW9kZWwsZSkudGhlbihmdW5jdGlvbigpe3Qucm9sbGJhY2tCdWZmZXIoKSx0LnNldCgiZWRpdGluZ1RvcGljIiwhMSl9KS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKSl9LGV4cGFuZEhpZGRlbjpmdW5jdGlvbihlKXtyZXR1cm4gZS5leHBhbmRIaWRkZW4oKX0sdG9nZ2xlVmlzaWJpbGl0eTpmdW5jdGlvbigpe3RoaXMubW9kZWwudG9nZ2xlU3RhdHVzKCJ2aXNpYmxlIil9LHRvZ2dsZUNsb3NlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWw7dGhpcy5tb2RlbC50b2dnbGVTdGF0dXMoImNsb3NlZCIpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRvcGljX3N0YXR1c191cGRhdGUiLGUudG9waWNfc3RhdHVzX3VwZGF0ZSl9KX0scmVjb3ZlclRvcGljOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZWNvdmVyKCl9LG1ha2VCYW5uZXI6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLm1ha2VCYW5uZXIoKX0scmVtb3ZlQmFubmVyOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZW1vdmVCYW5uZXIoKX0sdG9nZ2xlUGlubmVkOmZ1bmN0aW9uKCl7dmFyIGU9IXRoaXMuZ2V0KCJtb2RlbC5waW5uZWRfYXQiKSx0PXRoaXMubW9kZWwsbj10aGlzLmdldCgibW9kZWwucGlubmVkSW5DYXRlZ29yeVVudGlsIik7cmV0dXJuIHQuc2V0UHJvcGVydGllcyh7cGlubmVkX2F0OmU/bW9tZW50KCk6bnVsbCxwaW5uZWRfZ2xvYmFsbHk6ITEscGlubmVkX3VudGlsOmU/bjpudWxsfSksdC5zYXZlU3RhdHVzKCJwaW5uZWQiLGUsbil9LHBpbkdsb2JhbGx5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbCx0PXRoaXMuZ2V0KCJtb2RlbC5waW5uZWRHbG9iYWxseVVudGlsIik7cmV0dXJuIGUuc2V0UHJvcGVydGllcyh7cGlubmVkX2F0Om1vbWVudCgpLHBpbm5lZF9nbG9iYWxseTohMCxwaW5uZWRfdW50aWw6dH0pLGUuc2F2ZVN0YXR1cygicGlubmVkX2dsb2JhbGx5IiwhMCx0KX0sdG9nZ2xlQXJjaGl2ZWQ6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnRvZ2dsZVN0YXR1cygiYXJjaGl2ZWQiKX0sY2xlYXJQaW46ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmNsZWFyUGluKCl9LHRvZ2dsZVBpbm5lZEZvclVzZXI6ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLmdldCgibW9kZWwucGlubmVkX2F0IikmJigoZT10aGlzLm1vZGVsKS5nZXQoInBpbm5lZCIpP2UuY2xlYXJQaW4oKTplLnJlUGluKCkpfSxyZXBseUFzTmV3VG9waWM6ZnVuY3Rpb24oaSxlKXt2YXIgdCxuLHMsbyxyPXRoaXMsYT10aGlzLmNvbXBvc2VyLGw9dGhpcy5xdW90ZVN0YXRlO2U9ZXx8ZC5kZWZhdWx0LmJ1aWxkKGksbC5idWZmZXIpLGwuY2xlYXIoKSx0PXRoaXMuZ2V0KCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIik/KG49dGhpcy5nZXQoIm1vZGVsLmRldGFpbHMuYWxsb3dlZF91c2VycyIpLHM9dGhpcy5nZXQoIm1vZGVsLmRldGFpbHMuYWxsb3dlZF9ncm91cHMiKSxvPVtdLG4uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gby5wdXNoKGUudXNlcm5hbWUpfSkscy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBvLnB1c2goZS5uYW1lKX0pLG89by5qb2luKCkse2FjdGlvbjpjLmRlZmF1bHQuUFJJVkFURV9NRVNTQUdFLGFyY2hldHlwZUlkOiJwcml2YXRlX21lc3NhZ2UiLGRyYWZ0S2V5OmkudG9waWMuZHJhZnRfa2V5LHVzZXJuYW1lczpvfSk6e2FjdGlvbjpjLmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OmkudG9waWMuZHJhZnRfa2V5LGNhdGVnb3J5SWQ6dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3J5LmlkIil9LGEub3Blbih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5pc0VtcHR5KShlKT8iIjplfSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2xvY2F0aW9uLmhvc3QraS5nZXQoInVybCIpLG49IlsiK0hhbmRsZWJhcnMuZXNjYXBlRXhwcmVzc2lvbihyLmdldCgibW9kZWwudGl0bGUiKSkrIl0oIit0KyIpIjthLmdldCgibW9kZWwiKS5wcmVwZW5kVGV4dChJMThuLnQoInBvc3QuY29udGludWVfZGlzY3Vzc2lvbiIse3Bvc3RMaW5rOm59KSsiXG5cbiIrZSx7bmV3X2xpbmU6ITB9KX0pfSxyZXRyeUxvYWRpbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJyZXRyeWluZyIsITApO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5zZXQoInJldHJ5aW5nIiwhMSl9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5yZWZyZXNoKCkudGhlbih0LHQpfSx0b2dnbGVXaWtpOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgid2lraSIsIWUuZ2V0KCJ3aWtpIikpfSx0b2dnbGVQb3N0VHlwZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUuZ2V0KCJwb3N0X3R5cGVzLnJlZ3VsYXIiKSxuPXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpO3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgicG9zdF90eXBlIixlLmdldCgicG9zdF90eXBlIik9PT1uP3Q6bil9LHJlYmFrZVBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmViYWtlKCl9LHVuaGlkZVBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5oaWRlKCl9LGNvbnZlcnRUb1B1YmxpY1RvcGljOmZ1bmN0aW9uKCl7KDAsdy5kZWZhdWx0KSgiY29udmVydC10by1wdWJsaWMtdG9waWMiLHttb2RlbDp0aGlzLm1vZGVsLG1vZGFsQ2xhc3M6ImNvbnZlcnQtdG8tcHVibGljLXRvcGljIn0pfSxjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZTpmdW5jdGlvbigpe3RoaXMubW9kZWwuY29udmVydFRvcGljKCJwcml2YXRlIikudGhlbihmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKX0scmVtb3ZlRmVhdHVyZWRMaW5rOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJ1ZmZlcmVkLmZlYXR1cmVkX2xpbmsiLG51bGwpfSxyZXNldEJ1bXBEYXRlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZXNldEJ1bXBEYXRlKCl9LHJlbW92ZVRvcGljVGltZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3guZGVmYXVsdC51cGRhdGVTdGF0dXModGhpcy5nZXQoIm1vZGVsLmlkIiksbnVsbCxudWxsLGUsbnVsbCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLnNldCgibW9kZWwuIit0LGkuZGVmYXVsdC5jcmVhdGUoe30pKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLHYucG9wdXBBamF4RXJyb3IpKGUpfSl9fSxfanVtcFRvSW5kZXg6ZnVuY3Rpb24oZSl7dmFyIHQsbixpPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7aS5nZXQoImlzTWVnYVRvcGljIik/dGhpcy5fanVtcFRvUG9zdE51bWJlcihlKToodD1pLmdldCgic3RyZWFtIiksbj1NYXRoLm1heCgxLE1hdGgubWluKHQubGVuZ3RoLGUpKSx0aGlzLl9qdW1wVG9Qb3N0SWQodFtuLTFdKSl9LF9qdW1wVG9EYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO24ubG9hZE5lYXJlc3RQb3N0VG9EYXRlKGUpLnRoZW4oZnVuY3Rpb24oZSl7by5kZWZhdWx0LnJvdXRlVG8odC5tb2RlbC51cmxGb3JQb3N0TnVtYmVyKGUuZ2V0KCJwb3N0X251bWJlciIpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QuX2p1bXBUb0luZGV4KG4uZ2V0KCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIikpfSl9LF9qdW1wVG9Qb3N0TnVtYmVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLGk9bi5nZXQoInBvc3RzIikuZmluZEJ5KCJwb3N0X251bWJlciIsZSk7aT9vLmRlZmF1bHQucm91dGVUbyh0aGlzLm1vZGVsLnVybEZvclBvc3ROdW1iZXIoaS5nZXQoInBvc3RfbnVtYmVyIikpKTpuLmxvYWRQb3N0QnlQb3N0TnVtYmVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7by5kZWZhdWx0LnJvdXRlVG8odC5tb2RlbC51cmxGb3JQb3N0TnVtYmVyKGUuZ2V0KCJwb3N0X251bWJlciIpKSl9KX0sX2p1bXBUb1Bvc3RJZDpmdW5jdGlvbihlKXt2YXIgdCxuLGk7ZT8odGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6anVtcC10by1wb3N0IixlKSwoaT0obj0odD10aGlzLm1vZGVsKS5nZXQoInBvc3RTdHJlYW0iKSkuZmluZExvYWRlZFBvc3QoZSkpP28uZGVmYXVsdC5yb3V0ZVRvKHQudXJsRm9yUG9zdE51bWJlcihpLmdldCgicG9zdF9udW1iZXIiKSkpOm4uZmluZFBvc3RzQnlJZHMoW2VdKS50aGVuKGZ1bmN0aW9uKGUpe28uZGVmYXVsdC5yb3V0ZVRvKHQudXJsRm9yUG9zdE51bWJlcihlWzBdLmdldCgicG9zdF9udW1iZXIiKSkpfSkpOmNvbnNvbGUud2FybigianVtcC1wb3N0IGNvZGUgYnJva2VuIC0gcmVxdWVzdGVkIGFuIGluZGV4IG91dHNpZGUgdGhlIHN0cmVhbSBhcnJheSIpfSx0b2dnbGVQaW5uZWRTdGF0ZTpmdW5jdGlvbigpe3RoaXMuc2VuZCgidG9nZ2xlUGlubmVkRm9yVXNlciIpfSxwcmludDpmdW5jdGlvbigpezA8dGhpcy5zaXRlU2V0dGluZ3MubWF4X3ByaW50c19wZXJfaG91cl9wZXJfdXNlciYmd2luZG93Lm9wZW4odGhpcy5nZXQoIm1vZGVsLnByaW50VXJsIiksIiIsIm1lbnViYXI9bm8sdG9vbGJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHdpZHRoPTYwMCxoZWlnaHQ9MzE1Iil9LGhhc0Vycm9yOigwLHQub3IpKCJtb2RlbC5lcnJvckh0bWwiLCJtb2RlbC5lcnJvck1lc3NhZ2UiKSxub0Vycm9yWWV0OigwLHQubm90KSgiaGFzRXJyb3IiKSxjYXRlZ29yaWVzOigwLHQuYWxpYXMpKCJzaXRlLmNhdGVnb3JpZXNMaXN0Iiksc2VsZWN0ZWRQb3N0c0NvdW50OigwLHQuYWxpYXMpKCJzZWxlY3RlZFBvc3RJZHMubGVuZ3RoIiksc2VsZWN0ZWRQb3N0czpmdW5jdGlvbihlLG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSl9LHNlbGVjdGVkUG9zdHNVc2VybmFtZTpmdW5jdGlvbihlLHQpe2lmKCEodC5sZW5ndGg8MXx8ZT50Lmxlbmd0aCkpe3ZhciBuPXRbMF0udXNlcm5hbWU7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWU9PT1ufSk/bjp2b2lkIDB9fSxzZWxlY3RlZEFsbFBvc3RzOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiB0P2k8PWU6bjw9ZX0sY2FuU2VsZWN0QWxsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIXQmJiFlfSxjYW5EZXNlbGVjdEFsbDooMCx0LmFsaWFzKSgic2VsZWN0ZWRBbGxQb3N0cyIpLGNhbkRlbGV0ZVNlbGVjdGVkOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiAwPHQmJihuJiZlfHxpLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBlLmNhbl9kZWxldGV9KSl9LGNhbk1lcmdlVG9waWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmMDx0fSxjYW5DaGFuZ2VPd25lcjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJjA8dCYmdm9pZCAwIT09bn0sY2FuTWVyZ2VQb3N0czpmdW5jdGlvbihlLHQsbil7cmV0dXJuIDE8ZSYmdm9pZCAwIT09dCYmbi5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gZS5jYW5fZGVsZXRlfSl9LF9tdWx0aVNlbGVjdENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbXSl9LHBvc3RTZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZEFsbFBvc3R8fHRoaXMuc2VsZWN0ZWRQb3N0SWRzLmluY2x1ZGVzKGUuaWQpfSxsb2FkaW5nSFRNTDpmdW5jdGlvbigpe3JldHVybiB5LnNwaW5uZXJIVE1MfSxyZWNvdmVyVG9waWM6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnJlY292ZXIoKX0sZGVsZXRlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmRlc3Ryb3kodGhpcy5jdXJyZW50VXNlcil9LHN1YnNjcmliZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy51bnN1YnNjcmliZSgpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGEuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLGUpfXRoaXMubWVzc2FnZUJ1cy5zdWJzY3JpYmUoIi90b3BpYy8iK3RoaXMuZ2V0KCJtb2RlbC5pZCIpLGZ1bmN0aW9uKGUpe3ZhciB0PWEubW9kZWw7aWYoKDAsdS5pc1ByZXNlbnQpKGUubm90aWZpY2F0aW9uX2xldmVsX2NoYW5nZSkpcmV0dXJuIHQuc2V0KCJkZXRhaWxzLm5vdGlmaWNhdGlvbl9sZXZlbCIsZS5ub3RpZmljYXRpb25fbGV2ZWxfY2hhbmdlKSx2b2lkIHQuc2V0KCJkZXRhaWxzLm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkIixlLm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkKTt2YXIgbixpLHMsbz1hLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO2lmKGUucmVsb2FkX3RvcGljKXQucmVsb2FkKCkudGhlbihmdW5jdGlvbigpe2Euc2VuZCgicG9zdENoYW5nZWRSb3V0ZSIsdC5nZXQoInBvc3RfbnVtYmVyIil8fDEpLGEuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjp1cGRhdGUtdG9waWMiLHQpLGUucmVmcmVzaF9zdHJlYW0mJm8ucmVmcmVzaCgpfSk7ZWxzZXtzd2l0Y2goZS50eXBlKXtjYXNlImFjdGVkIjpvLnRyaWdnZXJDaGFuZ2VkUG9zdChlLmlkLGUudXBkYXRlZF9hdCx7cHJlc2VydmVDb29rZWQ6ITB9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWQscmVmcmVzaExpa2VzOiEwfSl9KTticmVhaztjYXNlInJlYWQiOm8udHJpZ2dlclJlYWRQb3N0KGUuaWQsZS5yZWFkZXJzX2NvdW50KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWQscmVmcmVzaExpa2VzOiEwfSl9KTticmVhaztjYXNlInJldmlzZWQiOmNhc2UicmViYWtlZCI6by50cmlnZ2VyQ2hhbmdlZFBvc3QoZS5pZCxlLnVwZGF0ZWRfYXQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbCh7aWQ6ZS5pZH0pfSk7YnJlYWs7Y2FzZSJkZWxldGVkIjpvLnRyaWdnZXJEZWxldGVkUG9zdChlLmlkKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWR9KX0pO2JyZWFrO2Nhc2UicmVjb3ZlcmVkIjpvLnRyaWdnZXJSZWNvdmVyZWRQb3N0KGUuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbCh7aWQ6ZS5pZH0pfSk7YnJlYWs7Y2FzZSJjcmVhdGVkIjpvLnRyaWdnZXJOZXdQb3N0SW5TdHJlYW0oZS5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsKCl9KSxhLmdldCgiY3VycmVudFVzZXIuaWQiKSE9PWUudXNlcl9pZCYmRGlzY291cnNlLmluY3JlbWVudEJhY2tncm91bmRDb250ZXh0Q291bnQoKTticmVhaztjYXNlIm1vdmVfdG9faW5ib3giOnQuc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMSk7YnJlYWs7Y2FzZSJhcmNoaXZlZCI6dC5zZXQoIm1lc3NhZ2VfYXJjaGl2ZWQiLCEwKTticmVhaztkZWZhdWx0OnZhciByPUdbZS50eXBlXTtyP3IoYSxlKTpjb25zb2xlLndhcm4oInVua25vd24gdG9waWMgYnVzIG1lc3NhZ2UgdHlwZSIsZSl9dC5nZXQoImlzUHJpdmF0ZU1lc3NhZ2UiKSYmYS5jdXJyZW50VXNlciYmYS5jdXJyZW50VXNlci5nZXQoImlkIikhPT1lLnVzZXJfaWQmJi0yPT09ZS51c2VyX2lkJiYiY3JlYXRlZCI9PT1lLnR5cGUmJihuPWUucG9zdF9udW1iZXIsaT10LmdldCgiaGlnaGVzdF9wb3N0X251bWJlciIpPD1uLHM9bi10LmdldCgiY3VycmVudFBvc3QiKSxpJiYwPHMmJnM8NyYmYS5fc2Nyb2xsVG9Qb3N0KGUucG9zdF9udW1iZXIpKX19LHRoaXMuZ2V0KCJtb2RlbC5tZXNzYWdlX2J1c19sYXN0X2lkIikpfSxfc2Nyb2xsVG9Qb3N0OigwLG0uZGVmYXVsdCkoZnVuY3Rpb24oZSl7dmFyIHQ9JCgiLnRvcGljLXBvc3QgYXJ0aWNsZSNwb3N0XyIrZSk7MD09PXQubGVuZ3RofHwoMCxmLmRlZmF1bHQpKHQpfHwkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOnQub2Zmc2V0KCkudG9wfSwxZTMpfSw1MDApLHVuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7dGhpcy5nZXQoIm1vZGVsLmlkIikmJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3RvcGljLyoiKX0scmVwbHk6ZnVuY3Rpb24oKXt0aGlzLnJlcGx5VG9Qb3N0KCl9LHJlYWRQb3N0czpmdW5jdGlvbihlLHQpe3ZhciBuLGk9dGhpcyxzPXRoaXMubW9kZWwsbz1zLmdldCgicG9zdFN0cmVhbSIpO3MuZ2V0KCJpZCIpPT09ZSYmKG8uZ2V0KCJwb3N0cyIpLmZvckVhY2goZnVuY3Rpb24oZSl7IWUucmVhZCYmdC5pbmNsdWRlcyhlLnBvc3RfbnVtYmVyKSYmKGUuc2V0KCJyZWFkIiwhMCksaS5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOmUuZ2V0KCJpZCIpfSkpfSksdGhpcy5zaXRlU2V0dGluZ3MuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MmJihuPV8ubWF4KHQpLHMuZ2V0KCJwaW5uZWQiKSYmbj49cy5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKSYmKDAsci5uZXh0KShmdW5jdGlvbigpe3JldHVybiBzLmNsZWFyUGluKCl9KSkpfSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZCIpJiZ0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5sb2FkZWRBbGxQb3N0cyIpO3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIixlKX19LCJfdGl0bGVDaGFuZ2VkIixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJfdGl0bGVDaGFuZ2VkIiksViksaihWLCJlbWJlZFF1b3RlQnV0dG9uIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJlbWJlZFF1b3RlQnV0dG9uIiksViksaihWLCJzaG93U2hhcmVkRHJhZnRDb250cm9scyIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2hvd1NoYXJlZERyYWZ0Q29udHJvbHMiKSxWKSxqKFYsInNob3dTZWxlY3RlZFBvc3RzQXRCb3R0b20iLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInNob3dTZWxlY3RlZFBvc3RzQXRCb3R0b20iKSxWKSxqKFYsInBvc3RzVG9SZW5kZXIiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInBvc3RzVG9SZW5kZXIiKSxWKSxqKFYsImFuZHJvaWRMb2FkaW5nIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJhbmRyb2lkTG9hZGluZyIpLFYpLGooViwicG1QYXRoIixbRF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJwbVBhdGgiKSxWKSxqKFYsInNlbGVjdGVkUXVlcnkiLFtiLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2VsZWN0ZWRRdWVyeSIpLFYpLGooViwiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIixbSV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxWKSxqKFYsImZlYXR1cmVkTGlua0RvbWFpbiIsW0xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiZmVhdHVyZWRMaW5rRG9tYWluIiksViksaihWLCJjYW5FZGl0VGFncyIsW0FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2FuRWRpdFRhZ3MiKSxWKSxqKFYsInNlbGVjdGVkUG9zdHMiLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInNlbGVjdGVkUG9zdHMiKSxWKSxqKFYsInNlbGVjdGVkUG9zdHNVc2VybmFtZSIsW3pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2VsZWN0ZWRQb3N0c1VzZXJuYW1lIiksViksaihWLCJzZWxlY3RlZEFsbFBvc3RzIixbVV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJzZWxlY3RlZEFsbFBvc3RzIiksViksaihWLCJjYW5TZWxlY3RBbGwiLFtGXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhblNlbGVjdEFsbCIpLFYpLGooViwiY2FuRGVsZXRlU2VsZWN0ZWQiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhbkRlbGV0ZVNlbGVjdGVkIiksViksaihWLCJjYW5NZXJnZVRvcGljIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5NZXJnZVRvcGljIiksViksaihWLCJjYW5DaGFuZ2VPd25lciIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2FuQ2hhbmdlT3duZXIiKSxWKSxqKFYsImNhbk1lcmdlUG9zdHMiLFtIXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhbk1lcmdlUG9zdHMiKSxWKSxqKFYsIl9tdWx0aVNlbGVjdENoYW5nZWQiLFtLXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsIl9tdWx0aVNlbGVjdENoYW5nZWQiKSxWKSxqKFYsImxvYWRpbmdIVE1MIixbYi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImxvYWRpbmdIVE1MIiksViksaihWLCJfc2hvd0Zvb3RlciIsW1ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiX3Nob3dGb290ZXIiKSxWKSxWKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91cGxvYWQtc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdXBsb2FkcyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztmdW5jdGlvbiBkKGUsdCl7cmV0dXJuKDAsby5hbGxvd3NBdHRhY2htZW50cykodC5zdGFmZikmJihlKz0iX3dpdGhfYXR0YWNobWVudHMiKSwidXBsb2FkX3NlbGVjdG9yLiIrZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoKSxsPSgwLHMuZGVmYXVsdCkoKSx1PSgwLHMuZGVmYXVsdCkoInNlbGVjdGlvbiIpLHIoYz17aW1hZ2VVcmw6bnVsbCxsb2NhbDooMCx0LmVxdWFsKSgic2VsZWN0aW9uIiwibG9jYWwiKSxyZW1vdGU6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsInJlbW90ZSIpLHNlbGVjdGlvbjoibG9jYWwiLHVwbG9hZEljb246ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLnVwbG9hZEljb24pKHRoaXMuY3VycmVudFVzZXIuc3RhZmYpfSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiBkKCJ0aXRsZSIsdGhpcy5jdXJyZW50VXNlcil9LHRpcDpmdW5jdGlvbihlKXt2YXIgdD0oMCxvLmF1dGhvcml6ZXNBbGxFeHRlbnNpb25zKSh0aGlzLmN1cnJlbnRVc2VyLnN0YWZmKT8iIjoiKCIrKDAsby5hdXRob3JpemVkRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZikrIikiO3JldHVybiBJMThuLnQoZChlKyJfdGlwIix0aGlzLmN1cnJlbnRVc2VyKSx7YXV0aG9yaXplZF9leHRlbnNpb25zOnR9KX0sYWN0aW9uczp7dXBsb2FkOmZ1bmN0aW9uKCl7dmFyIGUsdDt0aGlzLmxvY2FsPyQoIi53bWQtY29udHJvbHMiKS5maWxldXBsb2FkKCJhZGQiLHtmaWxlSW5wdXQ6JCgiI2ZpbGVuYW1lLWlucHV0Iil9KTooZT10aGlzLmltYWdlVXJsfHwiIix0PXRoaXMudG9vbGJhckV2ZW50LGUubWF0Y2goL1wuKGpwZ3xqcGVnfHBuZ3xnaWYpJC8pP3QuYWRkVGV4dCgiIVtdKCIrZSsiKSIpOnQuYWRkVGV4dChlKSksdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9fX0sInVwbG9hZEljb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInVwbG9hZEljb24iKSxjKSxyKGMsInRpdGxlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJ0aXRsZSIpLGMpLHIoYywidGlwIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJ0aXAiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLWFjdGl2aXR5IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvZXhwb3J0LWNzdiIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbSxmO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCxvLm9ic2VydmVzKSgidXNlckFjdGlvblR5cGUiLCJtb2RlbC5zdHJlYW0uaXRlbXNMb2FkZWQiKSxhPXthcHBsaWNhdGlvbjooMCxpLmluamVjdCkoKSxyb3V0ZXI6KDAsbi5pbmplY3QpKCksdXNlcjooMCxpLmluamVjdCkoKSx1c2VyQWN0aW9uVHlwZTpudWxsLGNhbkRvd25sb2FkUG9zdHM6KDAsdC5hbGlhcykoInVzZXIudmlld2luZ1NlbGYiKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzO3Q9dGhpcy51c2VyQWN0aW9uVHlwZT8oZT0odGhpcy5nZXQoIm1vZGVsLnN0YXRzIil8fFtdKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFjdGlvbl90eXBlPT09bi51c2VyQWN0aW9uVHlwZX0pKSYmZS5jb3VudDw9dGhpcy5nZXQoIm1vZGVsLnN0cmVhbS5pdGVtc0xvYWRlZCIpOnRoaXMuZ2V0KCJtb2RlbC5zdGF0c0NvdW50Tm9uUE0iKTw9dGhpcy5nZXQoIm1vZGVsLnN0cmVhbS5pdGVtc0xvYWRlZCIpLHRoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIix0KX0sYWN0aW9uczp7ZXhwb3J0VXNlckFyY2hpdmU6ZnVuY3Rpb24oKXtib290Ym94LmNvbmZpcm0oSTE4bi50KCJ1c2VyLmRvd25sb2FkX2FyY2hpdmUuY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe3JldHVybiBlPygwLHMuZXhwb3J0VXNlckFyY2hpdmUpKCk6bnVsbH0pfX19LHU9YSxjPSJfc2hvd0Zvb3RlciIsZD1bcl0sbD0obD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9zaG93Rm9vdGVyIikpP2wudmFsdWU6dm9pZCAwLHA9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSxtPWEsZj17fSxPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZbZV09cFtlXX0pLGYuZW51bWVyYWJsZT0hIWYuZW51bWVyYWJsZSxmLmNvbmZpZ3VyYWJsZT0hIWYuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZnx8Zi5pbml0aWFsaXplcikmJihmLndyaXRhYmxlPSEwKSxmPWQuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQodSxjLGUpfHxlfSxmKSxtJiZ2b2lkIDAhPT1mLmluaXRpYWxpemVyJiYoZi52YWx1ZT1mLmluaXRpYWxpemVyP2YuaW5pdGlhbGl6ZXIuY2FsbChtKTp2b2lkIDAsZi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWYuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkodSxjLGYpLGY9bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdXNlci1iYWRnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHt1c2VyOigwLG4uaW5qZWN0KSgpLHVzZXJuYW1lOigwLHQuYWxpYXMpKCJ1c2VyLm1vZGVsLnVzZXJuYW1lX2xvd2VyIiksc29ydGVkQmFkZ2VzOigwLHQuc29ydCkoIm1vZGVsIiwiYmFkZ2VTb3J0T3JkZXIiKSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYmFkZ2VTb3J0T3JkZXI9WyJiYWRnZS5iYWRnZV90eXBlLnNvcnRfb3JkZXIiLCJiYWRnZS5uYW1lIl19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLWNhcmQiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3RvcGljOigwLG4uaW5qZWN0KSgpLHJvdXRlcjooMCx0LmluamVjdCkoKSxhY3Rpb25zOnt0b2dnbGVQb3N0czpmdW5jdGlvbihlKXt0aGlzLnRvcGljLnNlbmQoInRvZ2dsZVBhcnRpY2lwYW50IixlKX0sc2hvd1VzZXI6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oKDAsaS51c2VyUGF0aCkoZS51c2VybmFtZV9sb3dlcikpfSxzaG93R3JvdXA6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oKDAsaS5ncm91cFBhdGgpKGUubmFtZSkpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItaW52aXRlZC1zaG93IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbW9kZWxzL2ludml0ZSIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHIub2JzZXJ2ZXMpKCJzZWFyY2hUZXJtIiksdT0oMCxyLmRlZmF1bHQpKCJmaWx0ZXIiKSxjPSgwLHIuZGVmYXVsdCkoImludml0ZXNDb3VudC50b3RhbCIsImludml0ZXNDb3VudC5wZW5kaW5nIiksZD0oMCxyLmRlZmF1bHQpKCJpbnZpdGVzQ291bnQudG90YWwiLCJpbnZpdGVzQ291bnQucmVkZWVtZWQiKSxhKHA9e3VzZXI6bnVsbCxtb2RlbDpudWxsLGZpbHRlcjpudWxsLHRvdGFsSW52aXRlczpudWxsLGludml0ZXNDb3VudDpudWxsLGNhbkxvYWRNb3JlOiEwLGludml0ZXNMb2FkaW5nOiExLHJlaW52aXRlZEFsbDohMSxyZXNjaW5kZWRBbGw6ITEsc2VhcmNoVGVybTpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoInNlYXJjaFRlcm0iLCIiKX0sX3NlYXJjaFRlcm1DaGFuZ2VkOigwLHMuZGVmYXVsdCkoZnVuY3Rpb24oKXt2YXIgdD10aGlzO2kuZGVmYXVsdC5maW5kSW52aXRlZEJ5KHRoaXMudXNlcix0aGlzLmZpbHRlcix0aGlzLnNlYXJjaFRlcm0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJtb2RlbCIsZSl9KX0sMjUwKSxpbnZpdGVSZWRlZW1lZDooMCx0LmVxdWFsKSgiZmlsdGVyIiwicmVkZWVtZWQiKSxzaG93QnVsa0FjdGlvbkJ1dHRvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuInBlbmRpbmciPT09ZSYmNDx0aGlzLm1vZGVsLmludml0ZXMubGVuZ3RoJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKX0sY2FuSW52aXRlVG9Gb3J1bTooMCx0LnJlYWRzKSgiY3VycmVudFVzZXIuY2FuX2ludml0ZV90b19mb3J1bSIpLGNhbkJ1bGtJbnZpdGU6KDAsdC5yZWFkcykoImN1cnJlbnRVc2VyLmFkbWluIiksc2hvd1NlYXJjaDooMCx0Lmd0ZSkoInRvdGFsSW52aXRlcyIsMTApLHBlbmRpbmdMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiA1MDxlP0kxOG4udCgidXNlci5pbnZpdGVkLnBlbmRpbmdfdGFiX3dpdGhfY291bnQiLHtjb3VudDp0fSk6STE4bi50KCJ1c2VyLmludml0ZWQucGVuZGluZ190YWIiKX0scmVkZWVtZWRMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiA1MDxlP0kxOG4udCgidXNlci5pbnZpdGVkLnJlZGVlbWVkX3RhYl93aXRoX2NvdW50Iix7Y291bnQ6dH0pOkkxOG4udCgidXNlci5pbnZpdGVkLnJlZGVlbWVkX3RhYiIpfSxhY3Rpb25zOntyZXNjaW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlc2NpbmQoKSwhMX0scmVzY2luZEFsbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Ym9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5pbnZpdGVkLnJlc2NpbmRfYWxsX2NvbmZpcm0iKSxmdW5jdGlvbihlKXtlJiZpLmRlZmF1bHQucmVzY2luZEFsbCgpLnRoZW4oZnVuY3Rpb24oKXt0LnNldCgicmVzY2luZGVkQWxsIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSxyZWludml0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWludml0ZSgpLCExfSxyZWludml0ZUFsbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Ym9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5pbnZpdGVkLnJlaW52aXRlX2FsbF9jb25maXJtIiksZnVuY3Rpb24oZSl7ZSYmaS5kZWZhdWx0LnJlaW52aXRlQWxsKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnNldCgicmVpbnZpdGVkQWxsIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLm1vZGVsO3RoaXMuY2FuTG9hZE1vcmUmJiF0aGlzLmludml0ZXNMb2FkaW5nJiYodGhpcy5zZXQoImludml0ZXNMb2FkaW5nIiwhMCksaS5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodGhpcy51c2VyLHRoaXMuZmlsdGVyLHRoaXMuc2VhcmNoVGVybSxuLmludml0ZXMubGVuZ3RoKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJpbnZpdGVzTG9hZGluZyIsITEpLG4uaW52aXRlcy5wdXNoT2JqZWN0cyhlLmludml0ZXMpLCgwPT09ZS5pbnZpdGVzLmxlbmd0aHx8ZS5pbnZpdGVzLmxlbmd0aDxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmludml0ZXNfcGVyX3BhZ2UpJiZ0LnNldCgiY2FuTG9hZE1vcmUiLCExKX0pKX19fSwiX3NlYXJjaFRlcm1DaGFuZ2VkIixbbF0sKG09KG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJfc2VhcmNoVGVybUNoYW5nZWQiKSk/bS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIG19fSkscCksYShwLCJzaG93QnVsa0FjdGlvbkJ1dHRvbnMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dCdWxrQWN0aW9uQnV0dG9ucyIpLHApLGEocCwicGVuZGluZ0xhYmVsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJwZW5kaW5nTGFiZWwiKSxwKSxhKHAsInJlZGVlbWVkTGFiZWwiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlZGVlbWVkTGFiZWwiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLW5vdGlmaWNhdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9zZXJ2aWNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoYT0oMCxpLm9ic2VydmVzKSgibW9kZWwuY2FuTG9hZE1vcmUiKSxsPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmNvbnRlbnQubGVuZ3RoIiksdT0oMCxpLmRlZmF1bHQpKCJtb2RlbC5jb250ZW50LkBlYWNoLnJlYWQiKSxyKGM9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLHJvdXRlcjooMCxvLmluamVjdCkoKSxjdXJyZW50UGF0aDooMCxzLnJlYWRPbmx5KSgicm91dGVyLl9yb3V0ZXIuY3VycmVudFBhdGgiKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxoYXNOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3JldHVybiAwPGV9LGFsbE5vdGlmaWNhdGlvbnNSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0KCJtb2RlbC5jb250ZW50Iikuc29tZShmdW5jdGlvbihlKXtyZXR1cm4hZS5nZXQoInJlYWQiKX0pfSxhY3Rpb25zOntyZXNldE5ldzpmdW5jdGlvbigpe3ZhciBlPXRoaXM7KDAsbi5hamF4KSgiL25vdGlmaWNhdGlvbnMvbWFyay1yZWFkIix7bWV0aG9kOiJQVVQifSkudGhlbihmdW5jdGlvbigpe2UubW9kZWwuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoInJlYWQiLCEwKX0pfSl9LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5sb2FkTW9yZSgpfX19LCJfc2hvd0Zvb3RlciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiX3Nob3dGb290ZXIiKSxjKSxyKGMsImhhc05vdGlmaWNhdGlvbnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImhhc05vdGlmaWNhdGlvbnMiKSxjKSxyKGMsImFsbE5vdGlmaWNhdGlvbnNSZWFkIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJhbGxOb3RpZmljYXRpb25zUmVhZCIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4ub2JzZXJ2ZXMpKCJtb2RlbC5jYW5Mb2FkTW9yZSIpLHM9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLCF0aGlzLmdldCgibW9kZWwuY2FuTG9hZE1vcmUiKSl9fSxyPXMsYT0iX3Nob3dGb290ZXIiLGw9W2ldLG89KG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJfc2hvd0Zvb3RlciIpKT9vLnZhbHVlOnZvaWQgMCx1PXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBvfX0sYz1zLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c29ydFByb3BlcnRpZXM6WyJjb3VudDpkZXNjIiwiaWQiXSx0YWdzRm9yVXNlcjpudWxsLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExLGFjdGlvbnM6e3NvcnRCeUNvdW50OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImNvdW50OmRlc2MiLCJpZCJdLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExfSl9LHNvcnRCeUlkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImlkIl0sc29ydGVkQnlDb3VudDohMSxzb3J0ZWRCeU5hbWU6ITB9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLXByaXZhdGUtbWVzc2FnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWQuW10iLCJidWxrU2VsZWN0RW5hYmxlZCIpLGw9KDAsdC5kZWZhdWx0KSgiaGFzU2VsZWN0aW9uIiwicG1WaWV3IiwiYXJjaGl2ZSIpLHU9KDAsdC5kZWZhdWx0KSgiaGFzU2VsZWN0aW9uIiwicG1WaWV3IiwiYXJjaGl2ZSIpLHIoYz17cm91dGVyOigwLGkuaW5qZWN0KSgpLHVzZXJUb3BpY3NMaXN0OigwLHMuaW5qZWN0KSgidXNlci10b3BpY3MtbGlzdCIpLHVzZXI6KDAscy5pbmplY3QpKCkscG1WaWV3OiExLHZpZXdpbmdTZWxmOigwLG4uYWxpYXMpKCJ1c2VyLnZpZXdpbmdTZWxmIiksaXNHcm91cDooMCxuLmVxdWFsKSgicG1WaWV3IiwiZ3JvdXBzIiksY3VycmVudFBhdGg6KDAsbi5hbGlhcykoInJvdXRlci5fcm91dGVyLmN1cnJlbnRQYXRoIiksc2VsZWN0ZWQ6KDAsbi5hbGlhcykoInVzZXJUb3BpY3NMaXN0LnNlbGVjdGVkIiksYnVsa1NlbGVjdEVuYWJsZWQ6KDAsbi5hbGlhcykoInVzZXJUb3BpY3NMaXN0LmJ1bGtTZWxlY3RFbmFibGVkIiksc2hvd1RvZ2dsZUJ1bGtTZWxlY3Q6ITAscG1UYWdnaW5nRW5hYmxlZDooMCxuLmFsaWFzKSgic2l0ZS5jYW5fdGFnX3BtcyIpLHRhZ0lkOm51bGwsc2hvd05ld1BNOigwLG4uYW5kKSgidXNlci52aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLmNhbl9zZW5kX3ByaXZhdGVfbWVzc2FnZXMiKSxoYXNTZWxlY3Rpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmZSYmMDxlLmxlbmd0aH0sY2FuTW92ZVRvSW5ib3g6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiYoImFyY2hpdmUiPT09dHx8bil9LGNhbkFyY2hpdmU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiYiYXJjaGl2ZSIhPT10JiYhbn0sYnVsa09wZXJhdGlvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy5zZWxlY3RlZCxpPXt0eXBlOmV9O3RoaXMuaXNHcm91cCYmKGkuZ3JvdXA9dGhpcy5ncm91cEZpbHRlciksby5kZWZhdWx0LmJ1bGtPcGVyYXRpb24obixpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9dC5nZXQoInVzZXJUb3BpY3NMaXN0Lm1vZGVsIik7ZS5nZXQoInRvcGljcyIpLnJlbW92ZU9iamVjdHMobiksbi5jbGVhcigpLGUubG9hZE1vcmUoKX0sZnVuY3Rpb24oKXtib290Ym94LmFsZXJ0KEkxOG4udCgidXNlci5tZXNzYWdlcy5mYWlsZWRfdG9fbW92ZSIpKX0pfSxhY3Rpb25zOntjaGFuZ2VHcm91cE5vdGlmaWNhdGlvbkxldmVsOmZ1bmN0aW9uKGUpe3RoaXMuZ3JvdXAuc2V0Tm90aWZpY2F0aW9uKGUsdGhpcy5nZXQoInVzZXIuaWQiKSl9LGFyY2hpdmU6ZnVuY3Rpb24oKXt0aGlzLmJ1bGtPcGVyYXRpb24oImFyY2hpdmVfbWVzc2FnZXMiKX0sdG9JbmJveDpmdW5jdGlvbigpe3RoaXMuYnVsa09wZXJhdGlvbigibW92ZV9tZXNzYWdlc190b19pbmJveCIpfSx0b2dnbGVCdWxrU2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiYnVsa1NlbGVjdEVuYWJsZWQiKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKCl7JCgiaW5wdXQuYnVsay1zZWxlY3Q6bm90KGNoZWNrZWQpIikuY2xpY2soKX19fSwiaGFzU2VsZWN0aW9uIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJoYXNTZWxlY3Rpb24iKSxjKSxyKGMsImNhbk1vdmVUb0luYm94IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJjYW5Nb3ZlVG9JbmJveCIpLGMpLHIoYywiY2FuQXJjaGl2ZSIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2FuQXJjaGl2ZSIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmJhZGdlcy5sZW5ndGgiKSxhPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnRpbWVfcmVhZCIpLGw9KDAsdC5kZWZhdWx0KSgibW9kZWwudGltZV9yZWFkIiwibW9kZWwucmVjZW50X3RpbWVfcmVhZCIpLHU9KDAsdC5kZWZhdWx0KSgibW9kZWwucmVjZW50X3RpbWVfcmVhZCIpLG8oYz17dXNlckNvbnRyb2xsZXI6KDAsaS5pbmplY3QpKCJ1c2VyIiksdXNlcjooMCxuLmFsaWFzKSgidXNlckNvbnRyb2xsZXIubW9kZWwiKSxtb3JlQmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybiA2PD1lfSx0aW1lUmVhZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmR1cmF0aW9uVGlueSkoZSl9LHNob3dSZWNlbnRUaW1lUmVhZDpmdW5jdGlvbihlLHQpe3JldHVybiBlIT09dCYmMCE9PXR9LHJlY2VudFRpbWVSZWFkOmZ1bmN0aW9uKGUpe3JldHVybiAwPGU/KDAscy5kdXJhdGlvblRpbnkpKGUpOm51bGx9fSwibW9yZUJhZGdlcyIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywibW9yZUJhZGdlcyIpLGMpLG8oYywidGltZVJlYWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRpbWVSZWFkIiksYyksbyhjLCJzaG93UmVjZW50VGltZVJlYWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNob3dSZWNlbnRUaW1lUmVhZCIpLGMpLG8oYywicmVjZW50VGltZVJlYWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInJlY2VudFRpbWVSZWFkIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdXNlci10b3BpY3MtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQub2JzZXJ2ZXMpKCJtb2RlbC5jYW5Mb2FkTW9yZSIpLG89KDAsdC5kZWZhdWx0KSgiaW5jb21pbmdDb3VudCIpLGkocj17YXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksaGlkZUNhdGVnb3J5OiExLHNob3dQb3N0ZXJzOiExLGluY29taW5nQ291bnQ6MCxjaGFubmVsOm51bGwsdGFnc0ZvclVzZXI6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubmV3SW5jb21pbmc9W119LHNhdmVTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5zZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIiwkKHdpbmRvdykuc2Nyb2xsVG9wKCkpfSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxoYXNJbmNvbWluZzpmdW5jdGlvbihlKXtyZXR1cm4gMDxlfSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnNldCgiY2hhbm5lbCIsZSksdGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZShlLGZ1bmN0aW9uKGUpey0xPT09dC5uZXdJbmNvbWluZy5pbmRleE9mKGUudG9waWNfaWQpJiYodC5uZXdJbmNvbWluZy5wdXNoKGUudG9waWNfaWQpLHQuaW5jcmVtZW50UHJvcGVydHkoImluY29taW5nQ291bnQiKSl9KX0sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNoYW5uZWw7ZSYmdGhpcy5tZXNzYWdlQnVzLnVuc3Vic2NyaWJlKGUpLHRoaXMuX3Jlc2V0VHJhY2tpbmcoKSx0aGlzLnNldCgiY2hhbm5lbCIsbnVsbCl9LF9yZXNldFRyYWNraW5nOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtuZXdJbmNvbWluZzpbXSxpbmNvbWluZ0NvdW50OjB9KX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9LHNob3dJbnNlcnRlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmxvYWRCZWZvcmUodGhpcy5uZXdJbmNvbWluZyksdGhpcy5fcmVzZXRUcmFja2luZygpLCExfX19LCJfc2hvd0Zvb3RlciIsW3NdLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiX3Nob3dGb290ZXIiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSksciksaShyLCJoYXNJbmNvbWluZyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaGFzSW5jb21pbmciKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL29wdGlvbmFsLXNlcnZpY2UiLCJkaXNjb3Vyc2UvbGliL3NldHRpbmdzIl0sZnVuY3Rpb24oZSx0LGksbixzLG8scixhLGwsdSxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcCxtLGYsaCxiLGcsdix5LF8sdyx4LGssUCxqLFQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1yLmRlZmF1bHQuZXh0ZW5kKGEuZGVmYXVsdCwocD0oMCx0LmRlZmF1bHQpKCJtb2RlbC51c2VybmFtZSIpLG09KDAsdC5kZWZhdWx0KSgidmlld2luZ1NlbGYiLCJtb2RlbC5wcm9maWxlX2hpZGRlbiIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwucHJvZmlsZUJhY2tncm91bmRVcmwiKSxoPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnByb2ZpbGVfaGlkZGVuIiwiaW5kZXhTdHJlYW0iLCJ2aWV3aW5nU2VsZiIsImZvcmNlRXhwYW5kIiksYj0oMCx0LmRlZmF1bHQpKCJtb2RlbC5zdXNwZW5kZWQiLCJjdXJyZW50VXNlci5zdGFmZiIpLGc9KDAsdC5kZWZhdWx0KSgibW9kZWwudHJ1c3RfbGV2ZWwiKSx2PSgwLHQuZGVmYXVsdCkoInZpZXdpbmdTZWxmIiwiY3VycmVudFVzZXIuYWRtaW4iKSx5PSgwLHQuZGVmYXVsdCkoInZpZXdpbmdTZWxmIiksXz0oMCx0LmRlZmF1bHQpKCJ2aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLmFkbWluIiksdz0oMCx0LmRlZmF1bHQpKCJ2aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLnN0YWZmIikseD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5uYW1lIiksaz0oMCx0LmRlZmF1bHQpKCJtb2RlbC5iYWRnZV9jb3VudCIpLFA9KDAsdC5kZWZhdWx0KSgpLGo9KDAsdC5kZWZhdWx0KSgibW9kZWwudXNlcl9maWVsZHMuQGVhY2gudmFsdWUiKSxkKFQ9e2luZGV4U3RyZWFtOiExLHJvdXRlcjooMCxvLmluamVjdCkoKSx1c2VyTm90aWZpY2F0aW9uczooMCxyLmluamVjdCkoInVzZXItbm90aWZpY2F0aW9ucyIpLGN1cnJlbnRQYXRoOigwLG4uYWxpYXMpKCJyb3V0ZXIuX3JvdXRlci5jdXJyZW50UGF0aCIpLGFkbWluVG9vbHM6KDAsdS5kZWZhdWx0KSgpLHZpZXdpbmdTZWxmOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY3VycmVudFVzZXI7cmV0dXJuIHQmJmU9PT10LmdldCgidXNlcm5hbWUiKX0sY2FuRXhwYW5kUHJvZmlsZTpmdW5jdGlvbihlLHQpe3JldHVybiF0JiZlfSxoYXNQcm9maWxlQmFja2dyb3VuZFVybDpmdW5jdGlvbihlKXtyZXR1cm4hKDAsaS5pc0VtcHR5KShlLnRvU3RyaW5nKCkpfSxjb2xsYXBzZWRJbmZvOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiEhZXx8KCF0fHxuKSYmIWl9LGNhbk11dGVPcklnbm9yZVVzZXI6KDAsbi5vcikoIm1vZGVsLmNhbl9pZ25vcmVfdXNlciIsIm1vZGVsLmNhbl9tdXRlX3VzZXIiKSxoYXNHaXZlbkZsYWdzOigwLG4uZ3QpKCJtb2RlbC5udW1iZXJfb2ZfZmxhZ3NfZ2l2ZW4iLDApLGhhc0ZsYWdnZWRQb3N0czooMCxuLmd0KSgibW9kZWwubnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiLDApLGhhc0RlbGV0ZWRQb3N0czooMCxuLmd0KSgibW9kZWwubnVtYmVyX29mX2RlbGV0ZWRfcG9zdHMiLDApLGhhc0JlZW5TdXNwZW5kZWQ6KDAsbi5ndCkoIm1vZGVsLm51bWJlcl9vZl9zdXNwZW5zaW9ucyIsMCksaGFzUmVjZWl2ZWRXYXJuaW5nczooMCxuLmd0KSgibW9kZWwud2FybmluZ3NfcmVjZWl2ZWRfY291bnQiLDApLHNob3dTdGFmZkNvdW50ZXJzOigwLG4ub3IpKCJoYXNHaXZlbkZsYWdzIiwiaGFzRmxhZ2dlZFBvc3RzIiwiaGFzRGVsZXRlZFBvc3RzIiwiaGFzQmVlblN1c3BlbmRlZCIsImhhc1JlY2VpdmVkV2FybmluZ3MiKSxzaG93RmVhdHVyZWRUb3BpYzooMCxuLmFuZCkoIm1vZGVsLmZlYXR1cmVkX3RvcGljIiwic2l0ZVNldHRpbmdzLmFsbG93X2ZlYXR1cmVkX3RvcGljX29uX3VzZXJfcHJvZmlsZXMiKSxpc05vdFN1c3BlbmRlZE9ySXNTdGFmZjpmdW5jdGlvbihlLHQpe3JldHVybiFlfHx0fSxsaW5rV2Vic2l0ZTooMCxuLm5vdCkoIm1vZGVsLmlzQmFzaWMiKSxyZW1vdmVOb0ZvbGxvdzpmdW5jdGlvbihlKXtyZXR1cm4gMjxlJiYhdGhpcy5zaXRlU2V0dGluZ3MudGwzX2xpbmtzX25vX2ZvbGxvd30sc2hvd0Jvb2ttYXJrczpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxzaG93RHJhZnRzOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxzaG93UHJpdmF0ZU1lc3NhZ2VzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmKGV8fHQpfSxzaG93Tm90aWZpY2F0aW9uc1RhYjpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxuYW1lRmlyc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYy5wcmlvcml0aXplTmFtZUluVXgpKGUsdGhpcy5zaXRlU2V0dGluZ3MpfSxzaG93QmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9iYWRnZXMmJjA8ZX0sY2FuSW52aXRlVG9Gb3J1bTpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHQuY3VycmVudFByb3AoImNhbl9pbnZpdGVfdG9fZm9ydW0iKX0sY2FuRGVsZXRlVXNlcjooMCxuLmFuZCkoIm1vZGVsLmNhbl9iZV9kZWxldGVkIiwibW9kZWwuY2FuX2RlbGV0ZV9hbGxfcG9zdHMiKSxwdWJsaWNVc2VyRmllbGRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKTtpZighKDAsaS5pc0VtcHR5KShlKSl7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnVzZXJfZmllbGRzIik7cmV0dXJuIGUuZmlsdGVyQnkoInNob3dfb25fcHJvZmlsZSIsITApLnNvcnRCeSgicG9zaXRpb24iKS5tYXAoZnVuY3Rpb24oZSl7KDAscy5zZXQpKGUsImRhc2hlcml6ZWRfbmFtZSIsZS5nZXQoIm5hbWUiKS5kYXNoZXJpemUoKSk7dmFyIHQ9bj9uW2UuZ2V0KCJpZCIpLnRvU3RyaW5nKCldOm51bGw7cmV0dXJuKDAsaS5pc0VtcHR5KSh0KT9udWxsOnMuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSkuY29tcGFjdCgpfX0sdXNlck5vdGlmaWNhdGlvbkxldmVsOigwLHMuY29tcHV0ZWQpKCJjdXJyZW50VXNlci5pZ25vcmVkX2lkcyIsIm1vZGVsLmlnbm9yZWQiLCJtb2RlbC5tdXRlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLmlnbm9yZWQiKT8iY2hhbmdlVG9JZ25vcmVkIjp0aGlzLmdldCgibW9kZWwubXV0ZWQiKT8iY2hhbmdlVG9NdXRlZCI6ImNoYW5nZVRvTm9ybWFsIn0pLGFjdGlvbnM6e2NvbGxhcHNlUHJvZmlsZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJmb3JjZUV4cGFuZCIsITEpfSxleHBhbmRQcm9maWxlOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImZvcmNlRXhwYW5kIiwhMCl9LHNob3dTdXNwZW5zaW9uczpmdW5jdGlvbigpe3RoaXMuYWRtaW5Ub29scy5zaG93QWN0aW9uTG9ncyh0aGlzLHt0YXJnZXRfdXNlcjp0aGlzLmdldCgibW9kZWwudXNlcm5hbWUiKSxhY3Rpb25fbmFtZToic3VzcGVuZF91c2VyIn0pfSxhZG1pbkRlbGV0ZTpmdW5jdGlvbigpe3RoaXMuYWRtaW5Ub29scy5kZWxldGVVc2VyKHRoaXMuZ2V0KCJtb2RlbC5pZCIpKX0sdXBkYXRlTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubW9kZWwudXBkYXRlTm90aWZpY2F0aW9uTGV2ZWwoZSl9fX0sInZpZXdpbmdTZWxmIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJ2aWV3aW5nU2VsZiIpLFQpLGQoVCwiY2FuRXhwYW5kUHJvZmlsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuRXhwYW5kUHJvZmlsZSIpLFQpLGQoVCwiaGFzUHJvZmlsZUJhY2tncm91bmRVcmwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImhhc1Byb2ZpbGVCYWNrZ3JvdW5kVXJsIiksVCksZChULCJjb2xsYXBzZWRJbmZvIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJjb2xsYXBzZWRJbmZvIiksVCksZChULCJpc05vdFN1c3BlbmRlZE9ySXNTdGFmZiIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaXNOb3RTdXNwZW5kZWRPcklzU3RhZmYiKSxUKSxkKFQsInJlbW92ZU5vRm9sbG93IixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJyZW1vdmVOb0ZvbGxvdyIpLFQpLGQoVCwic2hvd0Jvb2ttYXJrcyIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0Jvb2ttYXJrcyIpLFQpLGQoVCwic2hvd0RyYWZ0cyIsW3ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0RyYWZ0cyIpLFQpLGQoVCwic2hvd1ByaXZhdGVNZXNzYWdlcyIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd1ByaXZhdGVNZXNzYWdlcyIpLFQpLGQoVCwic2hvd05vdGlmaWNhdGlvbnNUYWIiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNob3dOb3RpZmljYXRpb25zVGFiIiksVCksZChULCJuYW1lRmlyc3QiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsIm5hbWVGaXJzdCIpLFQpLGQoVCwic2hvd0JhZGdlcyIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0JhZGdlcyIpLFQpLGQoVCwiY2FuSW52aXRlVG9Gb3J1bSIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuSW52aXRlVG9Gb3J1bSIpLFQpLGQoVCwicHVibGljVXNlckZpZWxkcyIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwicHVibGljVXNlckZpZWxkcyIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocj0oMCxzLm9ic2VydmVzKSgibmFtZUlucHV0IiksYT0oMCxzLm9ic2VydmVzKSgibW9kZWwuY2FuTG9hZE1vcmUiKSxvKGw9e2FwcGxpY2F0aW9uOigwLG4uaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsicGVyaW9kIiwib3JkZXIiLCJhc2MiLCJuYW1lIiwiZ3JvdXAiLCJleGNsdWRlX3VzZXJuYW1lcyJdLHBlcmlvZDoid2Vla2x5IixvcmRlcjoibGlrZXNfcmVjZWl2ZWQiLGFzYzpudWxsLG5hbWU6IiIsZ3JvdXA6bnVsbCxleGNsdWRlX3VzZXJuYW1lczpudWxsLHNob3dUaW1lUmVhZDooMCx0LmVxdWFsKSgicGVyaW9kIiwiYWxsIiksX3NldE5hbWU6KDAsaS5kZWZhdWx0KShmdW5jdGlvbigpe3RoaXMuc2V0KCJuYW1lIix0aGlzLm5hbWVJbnB1dCl9LDUwMCksX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuZ2V0KCJtb2RlbC5jYW5Mb2FkTW9yZSIpKX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9fX0sIl9zZXROYW1lIixbcl0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2V0TmFtZSIpKT91LnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KSxsKSxvKGwsIl9zaG93Rm9vdGVyIixbYV0sKGM9KGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2hvd0Zvb3RlciIpKT9jLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY319KSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvYXJjaGV0eXBlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoe2hhc09wdGlvbnM6KDAsdC5ndCkoIm9wdGlvbnMubGVuZ3RoIiwwKSxpc0RlZmF1bHQ6KDAsbi5wcm9wZXJ0eUVxdWFsKSgiaWQiLCJzaXRlLmRlZmF1bHRfYXJjaGV0eXBlIiksbm90RGVmYXVsdDooMCx0Lm5vdCkoImlzRGVmYXVsdCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvYm9va21hcmsiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7dmFyIHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhLGwsdSxjLGQscCxtPW8uZGVmYXVsdC5leHRlbmQoKHI9e25ld0Jvb2ttYXJrOigwLHQubm9uZSkoImlkIiksZ2V0IHVybCgpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvYm9va21hcmtzLyIrdGhpcy5pZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXdCb29rbWFyaz9zLlByb21pc2UucmVzb2x2ZSgpOigwLGkuYWpheCkodGhpcy51cmwse3R5cGU6IkRFTEVURSJ9KX19LGE9cixsPSJ1cmwiLHU9W24uY29tcHV0ZWRdLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJ1cmwiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpO2UuZGVmYXVsdD1tfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5LWxpc3QiLFsiZXhwb3J0cyIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsaSxzLGEsdCxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1PUVtYmVyLkFycmF5UHJveHkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNvbnRlbnQiLFtdKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7dS5yZW9wZW5DbGFzcyh7Y2F0ZWdvcmllc0Zyb206ZnVuY3Rpb24oZSxuKXt2YXIgcz11LmNyZWF0ZSgpLG89dC5kZWZhdWx0Lmxpc3QoKSxyPSJhbGwiLGk9LjY2Km4uY2F0ZWdvcnlfbGlzdC5jYXRlZ29yaWVzLmxlbmd0aDtyZXR1cm5bIndlZWsiLCJtb250aCJdLnNvbWUoZnVuY3Rpb24odCl7aWYobi5jYXRlZ29yeV9saXN0LmNhdGVnb3JpZXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGVbInRvcGljc18iK3RdfSkubGVuZ3RoPj1pKXJldHVybiByPXQsITB9KSxuLmNhdGVnb3J5X2xpc3QuY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3N3aXRjaChuLnBhcmVudF9jYXRlZ29yeV9pZCYmKG4ucGFyZW50Q2F0ZWdvcnk9by5maW5kQnkoImlkIixuLnBhcmVudF9jYXRlZ29yeV9pZCkpLG4uc3ViY2F0ZWdvcnlfaWRzJiYobi5zdWJjYXRlZ29yaWVzPW4uc3ViY2F0ZWdvcnlfaWRzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5maW5kQnkoImlkIixwYXJzZUludChlLDEwKSl9KSksbi50b3BpY3MmJihuLnRvcGljcz1uLnRvcGljcy5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9YS5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gdC5zZXQoImNhdGVnb3J5IixuKSx0fSkpLHIpe2Nhc2Uid2VlayI6Y2FzZSJtb250aCI6dmFyIGU9blsidG9waWNzXyIrcl0sdD1JMThuLnQocik7aWYoMDxlKXtuLnN0YXQ9JzxzcGFuIGNsYXNzPSJ2YWx1ZSI+JytlKyc8L3NwYW4+IC8gPHNwYW4gY2xhc3M9InVuaXQiPicrdCsiPC9zcGFuPiIsbi5zdGF0VGl0bGU9STE4bi50KCJjYXRlZ29yaWVzLnRvcGljX3N0YXRfc2VudGVuY2VfIityLHtjb3VudDplfSksblsicGljayIrclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSldPSEwO2JyZWFrfWRlZmF1bHQ6bi5zdGF0PSc8c3BhbiBjbGFzcz0idmFsdWUiPicrbi50b3BpY3NfYWxsX3RpbWUrIjwvc3Bhbj4iLG4uc3RhdFRpdGxlPUkxOG4udCgiY2F0ZWdvcmllcy50b3BpY19zZW50ZW5jZSIse2NvdW50Om4udG9waWNzX2FsbF90aW1lfSksbi5waWNrQWxsPSEwfXZhciBpPWwuZGVmYXVsdC5jdXJyZW50KCkudXBkYXRlQ2F0ZWdvcnkobik7aS5zZXR1cEdyb3Vwc0FuZFBlcm1pc3Npb25zKCkscy5wdXNoT2JqZWN0KGkpfSksc30sbGlzdEZvclBhcmVudDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL2NhdGVnb3JpZXMuanNvbj9wYXJlbnRfY2F0ZWdvcnlfaWQ9IituLmdldCgiaWQiKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdS5jcmVhdGUoe2NhdGVnb3JpZXM6aS5jYXRlZ29yaWVzRnJvbSh0LGUpLHBhcmVudENhdGVnb3J5Om59KX0pfSxsaXN0OmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIGkuZGVmYXVsdC5nZXRBbmRSZW1vdmUoImNhdGVnb3JpZXNfbGlzdCIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvY2F0ZWdvcmllcy5qc29uIil9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB1LmNyZWF0ZSh7Y2F0ZWdvcmllczpuLmNhdGVnb3JpZXNGcm9tKHQsZSksY2FuX2NyZWF0ZV9jYXRlZ29yeTplLmNhdGVnb3J5X2xpc3QuY2FuX2NyZWF0ZV9jYXRlZ29yeSxjYW5fY3JlYXRlX3RvcGljOmUuY2F0ZWdvcnlfbGlzdC5jYW5fY3JlYXRlX3RvcGljLGRyYWZ0X2tleTplLmNhdGVnb3J5X2xpc3QuZHJhZnRfa2V5LGRyYWZ0OmUuY2F0ZWdvcnlfbGlzdC5kcmFmdCxkcmFmdF9zZXF1ZW5jZTplLmNhdGVnb3J5X2xpc3QuZHJhZnRfc2VxdWVuY2V9KX0pfX0pLGUuZGVmYXVsdD11fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwLWhpc3RvcnkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5kZWZhdWx0KSgiYWN0aW9uIiksbz1zPXthY3Rpb25UaXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJncm91cF9oaXN0b3JpZXMuYWN0aW9ucy4iK2UpfX0scj0iYWN0aW9uVGl0bGUiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJhY3Rpb25UaXRsZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAtaGlzdG9yeSIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJyc3ZwIl0sZnVuY3Rpb24oZSxpLHQsbyxuLHMscixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB3PWwuZGVmYXVsdC5leHRlbmQoKG09KDAsbi5kZWZhdWx0KSgiYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWlucyIpLGY9KDAsbi5kZWZhdWx0KSgiYXV0b21hdGljIiksaD0oMCxuLmRlZmF1bHQpKCJkaXNwbGF5X25hbWUiLCJuYW1lIiksYj0oMCxuLmRlZmF1bHQpKCJmbGFpcl9iZ19jb2xvciIpLGc9KDAsbi5kZWZhdWx0KSgiZmxhaXJfY29sb3IiKSx2PSgwLG4uZGVmYXVsdCkoInZpc2liaWxpdHlfbGV2ZWwiKSx5PSgwLG4ub2JzZXJ2ZXMpKCJpc1ByaXZhdGUiLCJjYW5FdmVyeW9uZU1lbnRpb24iKSxwKF89e3VzZXJfY291bnQ6MCxsaW1pdDpudWxsLG9mZnNldDpudWxsLHJlcXVlc3RfY291bnQ6MCxyZXF1ZXN0ZXJzTGltaXQ6bnVsbCxyZXF1ZXN0ZXJzT2Zmc2V0Om51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe21lbWJlcnM6W10scmVxdWVzdGVyczpbXX0pfSxlbWFpbERvbWFpbnM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5pc0VtcHR5KShlKT8iIjplfSx0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJhdXRvbWF0aWMiOiJjdXN0b20ifSxmaW5kTWVtYmVyczpmdW5jdGlvbihlLGkpe3ZhciBzPXRoaXM7cmV0dXJuKDAsby5pc0VtcHR5KSh0aGlzLm5hbWUpfHwhdGhpcy5jYW5fc2VlX21lbWJlcnM/ZC5Qcm9taXNlLnJlamVjdCgpOihpJiZ0aGlzLnNldFByb3BlcnRpZXMoe2xpbWl0Om51bGwsb2Zmc2V0Om51bGx9KSxlPU9iamVjdC5hc3NpZ24oe29mZnNldDoodGhpcy5vZmZzZXR8fDApKyh0aGlzLmxpbWl0fHwwKX0sZSksdy5sb2FkTWVtYmVycyh0aGlzLm5hbWUsZSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1uZXcgU2V0O2Uub3duZXJzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuYWRkKGUuaWQpfSk7dmFyIG49aT9bXTpzLm1lbWJlcnM7bi5wdXNoT2JqZWN0cyhlLm1lbWJlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLm93bmVyPXQuaGFzKGUuaWQpLGMuZGVmYXVsdC5jcmVhdGUoZSl9KSkscy5zZXRQcm9wZXJ0aWVzKHttZW1iZXJzOm4sdXNlcl9jb3VudDplLm1ldGEudG90YWwsbGltaXQ6ZS5tZXRhLmxpbWl0LG9mZnNldDplLm1ldGEub2Zmc2V0fSl9KSl9LGZpbmRSZXF1ZXN0ZXJzOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcztyZXR1cm4oMCxvLmlzRW1wdHkpKHRoaXMubmFtZSl8fCF0aGlzLmNhbl9zZWVfbWVtYmVycz9kLlByb21pc2UucmVqZWN0KCk6KG4mJnRoaXMuc2V0UHJvcGVydGllcyh7cmVxdWVzdGVyc09mZnNldDpudWxsLHJlcXVlc3RlcnNMaW1pdDpudWxsfSksZT1PYmplY3QuYXNzaWduKHtvZmZzZXQ6KHRoaXMucmVxdWVzdGVyc09mZnNldHx8MCkrKHRoaXMucmVxdWVzdGVyc0xpbWl0fHwwKSxyZXF1ZXN0ZXJzOiEwfSxlKSx3LmxvYWRNZW1iZXJzKHRoaXMubmFtZSxlKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PW4/W106aS5yZXF1ZXN0ZXJzO3QucHVzaE9iamVjdHMoZS5tZW1iZXJzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0LmNyZWF0ZShlKX0pKSxpLnNldFByb3BlcnRpZXMoe3JlcXVlc3RlcnM6dCxyZXF1ZXN0X2NvdW50OmUubWV0YS50b3RhbCxyZXF1ZXN0ZXJzTGltaXQ6ZS5tZXRhLmxpbWl0LHJlcXVlc3RlcnNPZmZzZXQ6ZS5tZXRhLm9mZnNldH0pfSkpfSxyZW1vdmVPd25lcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybigwLHMuYWpheCkoIi9hZG1pbi9ncm91cHMvIit0aGlzLmlkKyIvb3duZXJzLmpzb24iLHt0eXBlOiJERUxFVEUiLGRhdGE6e3VzZXJfaWQ6ZS5pZH19KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmluZE1lbWJlcnMoKX0pfSxyZW1vdmVNZW1iZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLmlkKyIvbWVtYmVycy5qc29uIix7dHlwZToiREVMRVRFIixkYXRhOnt1c2VyX2lkOmUuaWR9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLmZpbmRNZW1iZXJzKHQpfSl9LGFkZE1lbWJlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLmlkKyIvbWVtYmVycy5qc29uIix7dHlwZToiUFVUIixkYXRhOnt1c2VybmFtZXM6ZX19KS50aGVuKGZ1bmN0aW9uKGUpe3Q/bi5fZmlsdGVyTWVtYmVycyhlKTpuLmZpbmRNZW1iZXJzKCl9KX0sYWRkT3duZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4oMCxzLmFqYXgpKCIvYWRtaW4vZ3JvdXBzLyIrdGhpcy5pZCsiL293bmVycy5qc29uIix7dHlwZToiUFVUIixkYXRhOntncm91cDp7dXNlcm5hbWVzOmV9fX0pLnRoZW4oZnVuY3Rpb24oZSl7dD9uLl9maWx0ZXJNZW1iZXJzKGUpOm4uZmluZE1lbWJlcnMoKX0pfSxfZmlsdGVyTWVtYmVyczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5maW5kTWVtYmVycyh7ZmlsdGVyOmUudXNlcm5hbWVzLmpvaW4oIiwiKX0pfSxkaXNwbGF5TmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxmbGFpckJhY2tncm91bmRIZXhDb2xvcjpmdW5jdGlvbihlKXtyZXR1cm4gZT9lLnJlcGxhY2UobmV3IFJlZ0V4cCgiW14wLTlhLWZBLUZdIiwiZyIpLCIiKTpudWxsfSxmbGFpckhleENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZShuZXcgUmVnRXhwKCJbXjAtOWEtZkEtRl0iLCJnIiksIiIpOm51bGx9LGNhbkV2ZXJ5b25lTWVudGlvbjooMCx0LmVxdWFsKSgibWVudGlvbmFibGVfbGV2ZWwiLDk5KSxpc1ByaXZhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIDE8ZX0sX3VwZGF0ZUFsbG93TWVtYmVyc2hpcFJlcXVlc3RzOmZ1bmN0aW9uKCl7IXRoaXMuaXNQcml2YXRlJiZ0aGlzLmNhbkV2ZXJ5b25lTWVudGlvbnx8dGhpcy5zZXQoImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiLCExKX0sYXNKU09OOmZ1bmN0aW9uKCl7dmFyIGU9e25hbWU6dGhpcy5uYW1lLG1lbnRpb25hYmxlX2xldmVsOnRoaXMubWVudGlvbmFibGVfbGV2ZWwsbWVzc2FnZWFibGVfbGV2ZWw6dGhpcy5tZXNzYWdlYWJsZV9sZXZlbCx2aXNpYmlsaXR5X2xldmVsOnRoaXMudmlzaWJpbGl0eV9sZXZlbCxtZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWw6dGhpcy5tZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWwsYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWluczp0aGlzLmVtYWlsRG9tYWlucyxhdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZTohIXRoaXMuYXV0b21hdGljX21lbWJlcnNoaXBfcmV0cm9hY3RpdmUsdGl0bGU6dGhpcy50aXRsZSxwcmltYXJ5X2dyb3VwOiEhdGhpcy5wcmltYXJ5X2dyb3VwLGdyYW50X3RydXN0X2xldmVsOnRoaXMuZ3JhbnRfdHJ1c3RfbGV2ZWwsaW5jb21pbmdfZW1haWw6dGhpcy5pbmNvbWluZ19lbWFpbCxmbGFpcl91cmw6dGhpcy5mbGFpcl91cmwsZmxhaXJfYmdfY29sb3I6dGhpcy5mbGFpckJhY2tncm91bmRIZXhDb2xvcixmbGFpcl9jb2xvcjp0aGlzLmZsYWlySGV4Q29sb3IsYmlvX3Jhdzp0aGlzLmJpb19yYXcscHVibGljX2FkbWlzc2lvbjp0aGlzLnB1YmxpY19hZG1pc3Npb24scHVibGljX2V4aXQ6dGhpcy5wdWJsaWNfZXhpdCxhbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzOnRoaXMuYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0cyxmdWxsX25hbWU6dGhpcy5mdWxsX25hbWUsZGVmYXVsdF9ub3RpZmljYXRpb25fbGV2ZWw6dGhpcy5kZWZhdWx0X25vdGlmaWNhdGlvbl9sZXZlbCxtZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGU6dGhpcy5tZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGUscHVibGlzaF9yZWFkX3N0YXRlOnRoaXMucHVibGlzaF9yZWFkX3N0YXRlfTtyZXR1cm4gdGhpcy5pZHx8KGUudXNlcm5hbWVzPXRoaXMudXNlcm5hbWVzLGUub3duZXJfdXNlcm5hbWVzPXRoaXMub3duZXJVc2VybmFtZXMpLGV9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL2FkbWluL2dyb3VwcyIse3R5cGU6IlBPU1QiLGRhdGE6e2dyb3VwOnRoaXMuYXNKU09OKCl9fSkudGhlbihmdW5jdGlvbihlKXt0LnNldFByb3BlcnRpZXMoe2lkOmUuYmFzaWNfZ3JvdXAuaWQsdXNlcm5hbWVzOm51bGwsb3duZXJVc2VybmFtZXM6bnVsbH0pLHQuZmluZE1lbWJlcnMoKX0pfSxzYXZlOmZ1bmN0aW9uKCl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy8iK3RoaXMuaWQse3R5cGU6IlBVVCIsZGF0YTp7Z3JvdXA6dGhpcy5hc0pTT04oKX19KX0sZGVzdHJveTpmdW5jdGlvbigpe2lmKHRoaXMuaWQpcmV0dXJuKDAscy5hamF4KSgiL2FkbWluL2dyb3Vwcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX0sZmluZExvZ3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5uYW1lKyIvbG9ncy5qc29uIix7ZGF0YTp7b2Zmc2V0OmUsZmlsdGVyczp0fX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUoe2xvZ3M6ZS5sb2dzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYS5kZWZhdWx0LmNyZWF0ZShlKX0pLGFsbF9sb2FkZWQ6ZS5hbGxfbG9hZGVkfSl9KX0sZmluZFBvc3RzOmZ1bmN0aW9uKGUpe3ZhciB0PShlPWV8fHt9KS50eXBlfHwicG9zdHMiLG49e307cmV0dXJuIGUuYmVmb3JlUG9zdElkJiYobi5iZWZvcmVfcG9zdF9pZD1lLmJlZm9yZVBvc3RJZCksZS5jYXRlZ29yeUlkJiYobi5jYXRlZ29yeV9pZD1wYXJzZUludChlLmNhdGVnb3J5SWQsMTApKSwoMCxzLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5uYW1lKyIvIit0KyIuanNvbiIse2RhdGE6bn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXI9Yy5kZWZhdWx0LmNyZWF0ZShlLnVzZXIpLGUudG9waWM9dS5kZWZhdWx0LmNyZWF0ZShlLnRvcGljKSxlLmNhdGVnb3J5PXIuZGVmYXVsdC5maW5kQnlJZChlLmNhdGVnb3J5X2lkKSxpLmRlZmF1bHQuY3JlYXRlKGUpfSl9KX0sc2V0Tm90aWZpY2F0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2V0KCJncm91cF91c2VyLm5vdGlmaWNhdGlvbl9sZXZlbCIsZSksKDAscy5hamF4KSgiL2dyb3Vwcy8iK3RoaXMubmFtZSsiL25vdGlmaWNhdGlvbnMiLHtkYXRhOntub3RpZmljYXRpb25fbGV2ZWw6ZSx1c2VyX2lkOnR9LHR5cGU6IlBPU1QifSl9LHJlcXVlc3RNZW1iZXJzaGlwOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLm5hbWUrIi9yZXF1ZXN0X21lbWJlcnNoaXAiLHt0eXBlOiJQT1NUIixkYXRhOntyZWFzb246ZX19KX19LCJlbWFpbERvbWFpbnMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImVtYWlsRG9tYWlucyIpLF8pLHAoXywidHlwZSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywidHlwZSIpLF8pLHAoXywiZGlzcGxheU5hbWUiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImRpc3BsYXlOYW1lIiksXykscChfLCJmbGFpckJhY2tncm91bmRIZXhDb2xvciIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiZmxhaXJCYWNrZ3JvdW5kSGV4Q29sb3IiKSxfKSxwKF8sImZsYWlySGV4Q29sb3IiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImZsYWlySGV4Q29sb3IiKSxfKSxwKF8sImlzUHJpdmF0ZSIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiaXNQcml2YXRlIiksXykscChfLCJfdXBkYXRlQWxsb3dNZW1iZXJzaGlwUmVxdWVzdHMiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIl91cGRhdGVBbGxvd01lbWJlcnNoaXBSZXF1ZXN0cyIpLF8pLF8pKTt3LnJlb3BlbkNsYXNzKHtmaW5kQWxsOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvc2VhcmNoLmpzb24iLHtkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdy5jcmVhdGUoZSl9KX0pfSxsb2FkTWVtYmVyczpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIitlKyIvbWVtYmVycy5qc29uIix7ZGF0YTp0fSl9LG1lbnRpb25hYmxlOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIitlKyIvbWVudGlvbmFibGUiKX0sbWVzc2FnZWFibGU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy8iK2UrIi9tZXNzYWdlYWJsZSIpfSxjaGVja05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy9jaGVjay1uYW1lIix7ZGF0YTp7Z3JvdXBfbmFtZTplfX0pfX0pLGUuZGVmYXVsdD13fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2xpdmUtcG9zdC1jb3VudHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uLmRlZmF1bHQuZXh0ZW5kKHt9KTtpLnJlb3BlbkNsYXNzKHtmaW5kOmZ1bmN0aW9uKCl7cmV0dXJuKDAsdC5hamF4KSgiL2Fib3V0L2xpdmVfcG9zdF9jb3VudHMuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlKGUpfSl9fSksZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsdCxuLGksbCxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmZpbmRBbGw9ZnVuY3Rpb24oKXtyZXR1cm4gY3x8KGM9W10sby5kZWZhdWx0LmN1cnJlbnRQcm9wKCJhdXRoX3Byb3ZpZGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGMucHVzaE9iamVjdCh1LmNyZWF0ZShlKSl9KSxjLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2V0KCJpc0dvb2dsZSIsImdvb2dsZV9vYXV0aDIiPT09ZS5uYW1lKX0pLGMpfTt2YXIgdT1uLmRlZmF1bHQuZXh0ZW5kKChyKGE9e3RpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGl0bGVfb3ZlcnJpZGV8fEkxOG4udCgibG9naW4uIit0aGlzLm5hbWUrIi50aXRsZSIpfSxwcmV0dHlOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldHR5X25hbWVfb3ZlcnJpZGV8fEkxOG4udCgibG9naW4uIit0aGlzLm5hbWUrIi5uYW1lIil9LG1lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlX292ZXJyaWRlfHxJMThuLnQoImxvZ2luLiIrdGhpcy5uYW1lKyIubWVzc2FnZSIpfSxkb0xvZ2luOmZ1bmN0aW9uKGUpe3ZhciB0PTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOnt9LG49dC5yZWNvbm5lY3QsaT12b2lkIDAhPT1uJiZuLHM9dC5wYXJhbXMsbz12b2lkIDA9PT1zP3t9OnM7aWYodGhpcy5jdXN0b21Mb2dpbilyZXR1cm4gdGhpcy5jdXN0b21Mb2dpbigpLGwuUHJvbWlzZS5yZXNvbHZlKCk7aWYodGhpcy5jdXN0b21fdXJsKXJldHVybiB3aW5kb3cubG9jYXRpb249dGhpcy5jdXN0b21fdXJsLGwuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9RGlzY291cnNlLmdldFVSTCgiL2F1dGgvIit0aGlzLm5hbWUpO2kmJihvLnJlY29ubmVjdD0hMCk7dmFyIGE9T2JqZWN0LmtleXMobyk7cmV0dXJuIDA8YS5sZW5ndGgmJihyKz0iPyIscis9YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG9bZV0pfSkuam9pbigiJiIpKSx1LmJ1aWxkUG9zdEZvcm0ocikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWJtaXQoKX0pfX0sInRpdGxlIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRpdGxlIiksYSkscihhLCJwcmV0dHlOYW1lIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInByZXR0eU5hbWUiKSxhKSxyKGEsIm1lc3NhZ2UiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwibWVzc2FnZSIpLGEpLGEpKTt1LnJlb3BlbkNsYXNzKHtidWlsZFBvc3RGb3JtOmZ1bmN0aW9uKG4pe3JldHVybigwLGkudXBkYXRlQ3NyZlRva2VuKSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7ZS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTpub25lOyIpLGUuc2V0QXR0cmlidXRlKCJtZXRob2QiLCJwb3N0IiksZS5zZXRBdHRyaWJ1dGUoImFjdGlvbiIsbik7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJhdXRoZW50aWNpdHlfdG9rZW4iKSx0LnNldEF0dHJpYnV0ZSgidmFsdWUiLHMuZGVmYXVsdC5jdXJyZW50UHJvcCgiY3NyZlRva2VuIikpLGUuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxlfSl9fSk7dmFyIGM9dm9pZCAwO2UuZGVmYXVsdD11fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LHMscixuLGksbyxhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5leHRyYU5hdkl0ZW1Qcm9wZXJ0aWVzPWZ1bmN0aW9uKGUpe2IuZXh0cmFBcmdzQ2FsbGJhY2tzLnB1c2goZSl9LGUuY3VzdG9tTmF2SXRlbUhyZWY9ZnVuY3Rpb24oZSl7Yi5jdXN0b21OYXZJdGVtSHJlZnMucHVzaChlKX0sZS5hZGROYXZJdGVtPWZ1bmN0aW9uKGUpe2IuZXh0cmFOYXZJdGVtRGVzY3JpcHRvcnMucHVzaChlKX07dmFyIGI9bi5kZWZhdWx0LmV4dGVuZCgoYz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksZD0oMCx0LmRlZmF1bHQpKCJuYW1lIiwiY291bnQiKSxwPSgwLHQuZGVmYXVsdCkoImZpbHRlclR5cGUiLCJjYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyIsInRhZ0lkIiksbT0oMCx0LmRlZmF1bHQpKCJuYW1lIiwiY2F0ZWdvcnkiLCJub1N1YmNhdGVnb3JpZXMiKSxmPSgwLHQuZGVmYXVsdCkoIm5hbWUiLCJjYXRlZ29yeSIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSx1KGg9e3RpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImZpbHRlcnMuIitlLnJlcGxhY2UoIi8iLCIuIikrIi5oZWxwIix7fSl9LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKGUsdCl7dD10fHwwLCJsYXRlc3QiIT09ZXx8YS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtb2JpbGVWaWV3IikmJnZvaWQgMD09PXRoaXMudGFnSWR8fCh0PTApO3ZhciBuPXtjb3VudDp0fSxpPTA9PT10PyIudGl0bGUiOiIudGl0bGVfd2l0aF9jb3VudCI7cmV0dXJuKDAscy5lbW9qaVVuZXNjYXBlKShJMThuLnQoImZpbHRlcnMuIitlLnJlcGxhY2UoIi8iLCIuIikraSxuKSl9LGhyZWY6ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9bnVsbDtpZihiLmN1c3RvbU5hdkl0ZW1IcmVmcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKHM9ZS5jYWxsKHRoaXMsdGhpcykpcmV0dXJuITF9LHRoaXMpLHMpcmV0dXJuIHM7dmFyIG89e2NhdGVnb3J5OnQsbm9TdWJjYXRlZ29yaWVzOm4sdGFnSWQ6aX07cmV0dXJuIGIucGF0aEZvcihlLG8pfSxmaWx0ZXJUeXBlOigwLGkucmVhZHMpKCJuYW1lIiksZmlsdGVyTW9kZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9IiI7cmV0dXJuIHQmJihpKz0iYy8iLGkrPXIuZGVmYXVsdC5zbHVnRm9yKHQpLG4mJihpKz0iL25vbmUiKSxpKz0iL2wvIiksaStlLnJlcGxhY2UoIiAiLCItIil9LGNvdW50OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy50b3BpY1RyYWNraW5nU3RhdGU7aWYobilyZXR1cm4gbi5sb29rdXBDb3VudChlLHQpfX0sInRpdGxlIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJ0aXRsZSIpLGgpLHUoaCwiZGlzcGxheU5hbWUiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImRpc3BsYXlOYW1lIiksaCksdShoLCJocmVmIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJocmVmIiksaCksdShoLCJmaWx0ZXJNb2RlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJmaWx0ZXJNb2RlIiksaCksdShoLCJjb3VudCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiY291bnQiKSxoKSxoKSksZz1iLmV4dGVuZCh7aHJlZjooMCx0LmRlZmF1bHQpKCJocmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hyZWY/dGhpcy5faHJlZjp0aGlzLmhyZWZ9LHNldDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9ocmVmPXR9fSksY291bnQ6MCxjdXN0b21GaWx0ZXI6bnVsbH0pO2IucmVvcGVuQ2xhc3Moe2V4dHJhQXJnc0NhbGxiYWNrczpbXSxjdXN0b21OYXZJdGVtSHJlZnM6W10sZXh0cmFOYXZJdGVtRGVzY3JpcHRvcnM6W10scGF0aEZvcjpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5nZXRVUkwoIiIpLGk9ITEscz0hMTtyZXR1cm4iY2F0ZWdvcmllcyI9PT1lP24rPSIvY2F0ZWdvcmllcyI6KHQudGFnSWQmJmEuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmluY2x1ZGVzKGUpJiYocz0hMCxuKz0iL3RhZ3MiKSx0LmNhdGVnb3J5JiYoaT0hMCxuKz0iL2MvIityLmRlZmF1bHQuc2x1Z0Zvcih0LmNhdGVnb3J5KSsiLyIrdC5jYXRlZ29yeS5pZCx0Lm5vU3ViY2F0ZWdvcmllcyYmKG4rPSIvbm9uZSIpKSxzJiYobis9Ii8iK3QudGFnSWQpLChzfHxpKSYmKG4rPSIvbCIpLG4rPSIvIitlKX0sZnJvbVRleHQ6ZnVuY3Rpb24odCxuKXt2YXIgaT10aGlzLGU9IWwuZGVmYXVsdC5jdXJyZW50KCk7aWYobj1ufHx7fSxlKXt2YXIgcz1hLmRlZmF1bHQuY3VycmVudFByb3AoImFub255bW91c190b3BfbWVudV9pdGVtcyIpO2lmKCFzfHwhcy5pbmNsdWRlcyh0KSlyZXR1cm4gbnVsbH1pZighci5kZWZhdWx0Lmxpc3QoKSYmImNhdGVnb3JpZXMiPT09dClyZXR1cm4gbnVsbDtpZighYS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BfbWVudV9pdGVtcyIpLmluY2x1ZGVzKHQpKXJldHVybiBudWxsO3ZhciBvPXtuYW1lOnQsaGFzSWNvbjoidW5yZWFkIj09PXR9O3JldHVybiBuLmNhdGVnb3J5JiYoby5jYXRlZ29yeT1uLmNhdGVnb3J5KSxuLnRhZ0lkJiYoby50YWdJZD1uLnRhZ0lkKSxuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zJiYoby5wZXJzaXN0ZWRRdWVyeVBhcmFtcz1uLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKSxuLm5vU3ViY2F0ZWdvcmllcyYmKG8ubm9TdWJjYXRlZ29yaWVzPSEwKSxiLmV4dHJhQXJnc0NhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBfLm1lcmdlKG8sZS5jYWxsKGksdCxuKSl9KSxEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6c3RvcmUiKS5jcmVhdGVSZWNvcmQoIm5hdi1pdGVtIixvKX0sYnVpbGRMaXN0OmZ1bmN0aW9uKGkscyl7cz1zfHx7fSxpJiYocy5jYXRlZ29yeT1pKTt2YXIgbz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcF9tZW51LnNwbGl0KCJ8IiksdD0ocy5maWx0ZXJNb2RlfHwiIikuc3BsaXQoIi8iKS5wb3AoKTtvLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQ9PT1lfSl8fG8ucHVzaCh0KSxvPW8ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBiLmZyb21UZXh0KGUscyl9KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhKGkmJjA9PT1lLmdldCgibmFtZSIpLmluZGV4T2YoImNhdGVnb3IiKSl9KTt2YXIgbj17Y2F0ZWdvcnk6cy5jYXRlZ29yeSx0YWdJZDpzLnRhZ0lkLG5vU3ViY2F0ZWdvcmllczpzLm5vU3ViY2F0ZWdvcmllc30sZT1iLmV4dHJhTmF2SXRlbURlc2NyaXB0b3JzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZy5jcmVhdGUoXy5tZXJnZSh7fSxuLGUpKX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5jdXN0b21GaWx0ZXJ8fGUuY3VzdG9tRmlsdGVyKGkscyl9KSxyPSExO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5pbml0JiZlLmluaXQoZSxpLHMpO3ZhciB0PWUuYmVmb3JlO2lmKHQpe2Zvcih2YXIgbj0wLG49MDtuPG8ubGVuZ3RoJiZvW25dLm5hbWUhPT10O24rKyk7by5zcGxpY2UobiwwLGUpfWVsc2Ugby5wdXNoKGUpO2UuY3VzdG9tSHJlZiYmZS5zZXQoImhyZWYiLGUuY3VzdG9tSHJlZihpLHMpKSxlLmZvcmNlQWN0aXZlJiZlLmZvcmNlQWN0aXZlKGkscyk/KGUuYWN0aXZlPSEwLHI9ITApOmUuYWN0aXZlPXZvaWQgMH0pLHImJm8uZm9yRWFjaChmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmFjdGl2ZSYmKGUuYWN0aXZlPSExKX0pLG99fSksZS5kZWZhdWx0PWIsT2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiTmF2SXRlbSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLG8uZGVmYXVsdCkoIkltcG9ydCB0aGUgTmF2SXRlbSBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIERpc2NvdXJzZS5OYXZJdGVtIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksYn19KX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9yZXZpZXdhYmxlLWhpc3RvcnkiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkVESVRFRD1lLlRSQU5TSVRJT05FRF9UTz1lLkNSRUFURUQ9dm9pZCAwO2UuQ1JFQVRFRD0wLGUuVFJBTlNJVElPTkVEX1RPPTEsZS5FRElURUQ9MjtlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y3JlYXRlZDooMCx0LmVxdWFsKSgicmV2aWV3YWJsZV9oaXN0b3J5X3R5cGUiLDApfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcmV2aWV3YWJsZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsInJzdnAiXSxmdW5jdGlvbihlLHQsaSxuLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuREVMRVRFRD1lLklHTk9SRUQ9ZS5SRUpFQ1RFRD1lLkFQUFJPVkVEPWUuUEVORElORz12b2lkIDA7dmFyIGwsdSxjLGQscCxtO2UuUEVORElORz0wLGUuQVBQUk9WRUQ9MSxlLlJFSkVDVEVEPTIsZS5JR05PUkVEPTMsZS5ERUxFVEVEPTQ7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgidHlwZSIsInRvcGljIiksbD1hPXtodW1hblR5cGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iUmV2aWV3YWJsZVF1ZXVlZFBvc3QiIT09ZXx8dHx8KGU9IlJldmlld2FibGVRdWV1ZWRUb3BpYyIpLEkxOG4udCgicmV2aWV3LnR5cGVzLiIrZS51bmRlcnNjb3JlKCkrIi50aXRsZSIse2RlZmF1bHRWYWx1ZToiIn0pfSx1cGRhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZigwPT09T2JqZWN0LmtleXMoZSkubGVuZ3RoKXJldHVybiBvLlByb21pc2UucmVzb2x2ZSgpO3ZhciBuPXRoaXMuc3RvcmUuYWRhcHRlckZvcigicmV2aWV3YWJsZSIpO3JldHVybigwLGkuYWpheCkoIi9yZXZpZXcvIit0aGlzLmlkKyI/dmVyc2lvbj0iK3RoaXMudmVyc2lvbixuLmdldFBheWxvYWQoIlBVVCIse3Jldmlld2FibGU6ZX0pKS50aGVuKGZ1bmN0aW9uKGUpe2UucGF5bG9hZD1PYmplY3QuYXNzaWduKHt9LHQucGF5bG9hZHx8e30sZS5wYXlsb2FkfHx7fSksZS5jYXRlZ29yeV9pZCYmKGUuY2F0ZWdvcnk9cy5kZWZhdWx0LmZpbmRCeUlkKGUuY2F0ZWdvcnlfaWQpLGRlbGV0ZSBlLmNhdGVnb3J5X2lkKSx0LnNldFByb3BlcnRpZXMoZSl9KX19LHU9Imh1bWFuVHlwZSIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImh1bWFuVHlwZSIpLHA9YSxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChsLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHUsbSksbT1udWxsKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL2FyY2hldHlwZSIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1hY3Rpb24tdHlwZSIsImRpc2NvdXJzZS9taXhpbnMvc2luZ2xldG9uIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy90cnVzdC1sZXZlbCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LHMsaSxuLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGc7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB2PWwuZGVmYXVsdC5leHRlbmQoKG09KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX3R5cGVzIiksZj0oMCx0LmRlZmF1bHQpKCJwb3N0X2FjdGlvbl90eXBlcy5bXSIpLGg9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcmllc0J5Q291bnQiLCJjYXRlZ29yaWVzLltdIiksYj0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdIikscChnPXtpc1JlYWRPbmx5OigwLG4uYWxpYXMpKCJpc19yZWFkb25seSIpLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b3BpY0NvdW50RGVzYz1bInRvcGljX2NvdW50OmRlc2MiXX0sbm90aWZpY2F0aW9uTG9va3VwOmZ1bmN0aW9uKHQpe3ZhciBuPVtdO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW3RbZV1dPWV9KSxufSxmbGFnVHlwZXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc3RfYWN0aW9uX3R5cGVzO3JldHVybiBlP2UuZmlsdGVyQnkoImlzX2ZsYWciLCEwKTpbXX0sY2F0ZWdvcmllc0J5Q291bnQ6KDAsbi5zb3J0KSgiY2F0ZWdvcmllcyIsInRvcGljQ291bnREZXNjIiksY29sbGVjdFVzZXJGaWVsZHM6ZnVuY3Rpb24obil7bj1ufHx7fTt2YXIgZT10aGlzLnVzZXJfZmllbGRzO3JldHVybigwLGkuaXNFbXB0eSkoZSk/W106ZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9KHQ9bj9uW2UuaWQudG9TdHJpbmcoKV06bnVsbCl8fCImbWRhc2g7Ii5odG1sU2FmZSgpO3JldHVybntuYW1lOmUubmFtZSx2YWx1ZTp0fX0pfSxzb3J0ZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKGUpe3ZhciBpPVtdLHM9e307cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1wYXJzZUludChlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIiksMTApO3Q/KHNbdF09c1t0XXx8W10sc1t0XS5wdXNoT2JqZWN0KGUpKTppLnB1c2hPYmplY3QoZSl9KSxPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWkuZmluZEJ5KCJpZCIscGFyc2VJbnQoZSwxMCkpLG49aS5pbmRleE9mKHQpOy0xIT09biYmaS5yZXBsYWNlKG4rMSwwLHNbZV0pfSksaX0sYmFzZVVyaTpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuYmFzZVVyaX0sY2F0ZWdvcmllc0xpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zP3RoaXMuY2F0ZWdvcmllczp0aGlzLnNvcnRlZENhdGVnb3JpZXN9LHBvc3RBY3Rpb25UeXBlQnlJZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXQoInBvc3RBY3Rpb25CeUlkTG9va3VwLmFjdGlvbiIrZSl9LHRvcGljRmxhZ1R5cGVCeUlkOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgidG9waWNGbGFnQnlJZExvb2t1cC5hY3Rpb24iK2UpfSxyZW1vdmVDYXRlZ29yeTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNhdGVnb3JpZXMsbj10LmZpbmRCeSgiaWQiLGUpO24mJih0LnJlbW92ZU9iamVjdChuKSxkZWxldGUgdGhpcy5jYXRlZ29yaWVzQnlJZC5jYXRlZ29yeUlkKX0sdXBkYXRlQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jYXRlZ29yaWVzLG49KDAscy5nZXQpKGUsImlkIiksaT10LmZpbmRCeSgiaWQiLG4pO3JldHVybiBudWxsPT09ZS5wZXJtaXNzaW9uJiZkZWxldGUgZS5wZXJtaXNzaW9uLGk/KGkuc2V0UHJvcGVydGllcyhlKSxpKTooZT10aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgiY2F0ZWdvcnkiLGUpLHQucHVzaE9iamVjdChlKSx0aGlzLmNhdGVnb3JpZXNCeUlkW25dPWUpfX0sIm5vdGlmaWNhdGlvbkxvb2t1cCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibm90aWZpY2F0aW9uTG9va3VwIiksZykscChnLCJmbGFnVHlwZXMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImZsYWdUeXBlcyIpLGcpLHAoZywic29ydGVkQ2F0ZWdvcmllcyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywic29ydGVkQ2F0ZWdvcmllcyIpLGcpLHAoZywiYmFzZVVyaSIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJiYXNlVXJpIiksZykscChnLCJjYXRlZ29yaWVzTGlzdCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiY2F0ZWdvcmllc0xpc3QiKSxnKSxnKSk7di5yZW9wZW5DbGFzcyhhLmRlZmF1bHQse2NyZWF0ZUN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikuY3JlYXRlUmVjb3JkKCJzaXRlIixjLmRlZmF1bHQuZ2V0KCJzaXRlIikpfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgbixpPXRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0PWkuc3RvcmU7cmV0dXJuIGkuY2F0ZWdvcmllcyYmKG49e30saS5jYXRlZ29yaWVzQnlJZD17fSxpLmNhdGVnb3JpZXM9aS5jYXRlZ29yaWVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJihuW2UucGFyZW50X2NhdGVnb3J5X2lkXT1uW2UucGFyZW50X2NhdGVnb3J5X2lkXXx8W10sbltlLnBhcmVudF9jYXRlZ29yeV9pZF0ucHVzaChlLmlkKSksaS5jYXRlZ29yaWVzQnlJZFtlLmlkXT10LmNyZWF0ZVJlY29yZCgiY2F0ZWdvcnkiLGUpfSksaS5jYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bltlLmdldCgiaWQiKV07dCYmZS5zZXQoInN1YmNhdGVnb3JpZXMiLHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLmNhdGVnb3JpZXNCeUlkW2VdfSkpLGUuZ2V0KCJwYXJlbnRfY2F0ZWdvcnlfaWQiKSYmZS5zZXQoInBhcmVudENhdGVnb3J5IixpLmNhdGVnb3JpZXNCeUlkW2UuZ2V0KCJwYXJlbnRfY2F0ZWdvcnlfaWQiKV0pfSkpLGkudHJ1c3RfbGV2ZWxzJiYoaS50cnVzdExldmVscz1pLnRydXN0X2xldmVscy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUuZGVmYXVsdC5jcmVhdGUoZSl9KSxkZWxldGUgaS50cnVzdF9sZXZlbHMpLGkucG9zdF9hY3Rpb25fdHlwZXMmJihpLnBvc3RBY3Rpb25CeUlkTG9va3VwPXMuZGVmYXVsdC5jcmVhdGUoKSxpLnBvc3RfYWN0aW9uX3R5cGVzPWkucG9zdF9hY3Rpb25fdHlwZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkucG9zdEFjdGlvbkJ5SWRMb29rdXAuc2V0KCJhY3Rpb24iK2UuaWQsdCksdH0pKSxpLnRvcGljX2ZsYWdfdHlwZXMmJihpLnRvcGljRmxhZ0J5SWRMb29rdXA9cy5kZWZhdWx0LmNyZWF0ZSgpLGkudG9waWNfZmxhZ190eXBlcz1pLnRvcGljX2ZsYWdfdHlwZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkudG9waWNGbGFnQnlJZExvb2t1cC5zZXQoImFjdGlvbiIrZS5pZCx0KSx0fSkpLGkuYXJjaGV0eXBlcyYmKGkuYXJjaGV0eXBlcz1pLmFyY2hldHlwZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNpdGU9aSxvLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGkudXNlcl9maWVsZHMmJihpLnVzZXJfZmllbGRzPWkudXNlcl9maWVsZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGl9fSk7dmFyIHk9ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiU2l0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB5fHwoKDAsZC5kZWZhdWx0KSgiSW1wb3J0IHRoZSBTaXRlIGNsYXNzIGluc3RlYWQgb2YgdXNpbmcgRGlzY291cnNlLlNpdGUiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjYuMCJ9KSx5PSEwKSx2fX0pLGUuZGVmYXVsdD12fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3N0YXRpYy1wYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxzLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89dC5kZWZhdWx0LmV4dGVuZCgpO28ucmVvcGVuQ2xhc3Moe2ZpbmQ6ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBuLlByb21pc2UoZnVuY3Rpb24odCl7dmFyIGUsbj0kKCdub3NjcmlwdFtkYXRhLXBhdGg9Ii8nK2krJyJdJyk7bi5sZW5ndGg/KGU9KGU9bi50ZXh0KCkpLm1hdGNoKC88IS0tIHByZWxvYWQtY29udGVudDogLS0+KCg/Oi58W1xuXHJdKSopPCEtLSA6cHJlbG9hZC1jb250ZW50IC0tPi8pWzFdLHQoby5jcmVhdGUoe3BhdGg6aSxodG1sOmV9KSkpOigwLHMuYWpheCkoIi8iK2krIi5odG1sIix7ZGF0YVR5cGU6Imh0bWwifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdChvLmNyZWF0ZSh7cGF0aDppLGh0bWw6ZX0pKX0pfSl9fSksZS5kZWZhdWx0PW99KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdGFnLWdyb3VwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwZXJtaXNzaW9ucyIpLHI9bz17cGVybWlzc2lvbk5hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fGUuZXZlcnlvbmU9PT1pLmRlZmF1bHQuRlVMTD8icHVibGljIjplLmV2ZXJ5b25lPT09aS5kZWZhdWx0LlJFQURPTkxZPyJ2aXNpYmxlIjoicHJpdmF0ZSJ9fSxhPSJwZXJtaXNzaW9uTmFtZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInBlcm1pc3Npb25OYW1lIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiY291bnQiLCJwbV9jb3VudCIpLG89KDAsdC5kZWZhdWx0KSgiY291bnQiLCJwbV9jb3VudCIpLHI9KDAsdC5kZWZhdWx0KSgiaWQiKSxpKGE9e3RvdGFsQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSxwbU9ubHk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09PWUmJjA8dH0sc2VhcmNoQ29udGV4dDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidGFnIixpZDplLHRhZzp0aGlzLG5hbWU6ZX19fSwidG90YWxDb3VudCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwidG90YWxDb3VudCIpLGEpLGkoYSwicG1Pbmx5Iixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJwbU9ubHkiKSxhKSxpKGEsInNlYXJjaENvbnRleHQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNlYXJjaENvbnRleHQiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdG9waWMtbGlzdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtb3duZXIiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxhLHIsbixpLGwsdSxjLHMsZCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBtKGUsdCl7dmFyIG49e307cmV0dXJuKDAscy5pc0VtcHR5KShlKXx8ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZS5pZF09dC5jcmVhdGUoZSl9KSxufXZhciBmPW4uZGVmYXVsdC5leHRlbmQoe2NhbkxvYWRNb3JlOigwLHQubm90RW1wdHkpKCJtb3JlX3RvcGljc191cmwiKSxmb3JFYWNoTmV3OmZ1bmN0aW9uKGUsdCl7dmFyIG49W107dGhpcy50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbltlLmlkXT0hMH0pLGUuZm9yRWFjaChmdW5jdGlvbihlKXtuW2UuaWRdfHx0KGUpfSl9LHJlZnJlc2hTb3J0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5wYXJhbXN8fHt9O24ucT9uPXtxOm4ucX06KG4ub3JkZXI9ZXx8bi5vcmRlcixuLmFzY2VuZGluZz10KSx0aGlzLnNldCgicGFyYW1zIixuKX0sbG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKHRoaXMubG9hZGluZ01vcmUpcmV0dXJuIGwuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGU9dGhpcy5tb3JlX3RvcGljc191cmw7aWYoZSl7dmFyIHQ9ZS5zcGxpdCgiPyIpLG49cCh0LDIpLHM9blswXSxvPW5bMV07cmV0dXJuIHMubWF0Y2goL1wuanNvbiQvKXx8KHMrPSIuanNvbiIpLGU9cyxvJiYoZSs9Ij8iK28pLHRoaXMuc2V0KCJsb2FkaW5nTW9yZSIsITApLCgwLHIuYWpheCkoe3VybDplfSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0wO2lmKGUpe3ZhciBuPWYudG9waWNzRnJvbShpLnN0b3JlLGUpO3JldHVybiBpLmZvckVhY2hOZXcobixmdW5jdGlvbihlKXtlLnNldCgiaGlnaGxpZ2h0IiwwPT10KyspLGkudG9waWNzLnB1c2hPYmplY3QoZSl9KSxpLnNldFByb3BlcnRpZXMoe2xvYWRpbmdNb3JlOiExLG1vcmVfdG9waWNzX3VybDplLnRvcGljX2xpc3QubW9yZV90b3BpY3NfdXJsfSksYy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BpY0xpc3QiLGkpLGkubW9yZV90b3BpY3NfdXJsfX0pfXJldHVybiBsLlByb21pc2UucmVzb2x2ZSgpfSxsb2FkQmVmb3JlOmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpczt0aGlzLnRvcGljcy5yZW1vdmVPYmplY3RzKHRoaXMudG9waWNzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMDw9dC5pbmRleE9mKGUuaWQpfSkpO3ZhciBlPSIiK0Rpc2NvdXJzZS5nZXRVUkwoIi8iKSt0aGlzLmZpbHRlcisiLmpzb24/dG9waWNfaWRzPSIrdC5qb2luKCIsIik7cmV0dXJuKDAsci5hamF4KSh7dXJsOmUsZGF0YTp0aGlzLnBhcmFtc30pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9MDtpLmZvckVhY2hOZXcoZi50b3BpY3NGcm9tKGkuc3RvcmUsZSksZnVuY3Rpb24oZSl7ZS5zZXQoImhpZ2hsaWdodCIsITApLGkudG9waWNzLmluc2VydEF0KHQsZSksdCsrfSksbiYmYy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BpY0xpc3QiLGkpfSl9fSk7Zi5yZW9wZW5DbGFzcyh7dG9waWNzRnJvbTpmdW5jdGlvbih0LGUsbil7aWYoZSl7dmFyIGk9KG49bnx8e30pLmxpc3RLZXl8fCJ0b3BpY3MiLHM9dS5kZWZhdWx0Lmxpc3QoKSxvPW0oZS51c2VycyxkLmRlZmF1bHQpLHI9bShlLnByaW1hcnlfZ3JvdXBzLGEuZGVmYXVsdCk7cmV0dXJuIGUudG9waWNfbGlzdFtpXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2F0ZWdvcnk9cy5maW5kQnkoImlkIixlLmNhdGVnb3J5X2lkKSxlLnBvc3RlcnMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnVzZXI9b1tlLnVzZXJfaWRdLGUuZXh0cmFDbGFzc2VzPWUuZXh0cmFzLGUucHJpbWFyeV9ncm91cF9pZCYmKGUucHJpbWFyeV9ncm91cD1yW2UucHJpbWFyeV9ncm91cF9pZF0sZS5wcmltYXJ5X2dyb3VwJiYoZS5leHRyYUNsYXNzZXM9KGUuZXh0cmFDbGFzc2VzfHwiIikrIiBncm91cC0iK2UucHJpbWFyeV9ncm91cC5uYW1lKSl9KSxlLnBhcnRpY2lwYW50cyYmZS5wYXJ0aWNpcGFudHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VyPW9bZS51c2VyX2lkXX0pLHQuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZSl9KX19LG11bmdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaW5zZXJ0ZWQ9ZS5pbnNlcnRlZHx8W10sZS5jYW5fY3JlYXRlX3RvcGljPWUudG9waWNfbGlzdC5jYW5fY3JlYXRlX3RvcGljLGUubW9yZV90b3BpY3NfdXJsPWUudG9waWNfbGlzdC5tb3JlX3RvcGljc191cmwsZS5kcmFmdF9rZXk9ZS50b3BpY19saXN0LmRyYWZ0X2tleSxlLmRyYWZ0X3NlcXVlbmNlPWUudG9waWNfbGlzdC5kcmFmdF9zZXF1ZW5jZSxlLmRyYWZ0PWUudG9waWNfbGlzdC5kcmFmdCxlLmZvcl9wZXJpb2Q9ZS50b3BpY19saXN0LmZvcl9wZXJpb2QsZS5sb2FkZWQ9ITAsZS5wZXJfcGFnZT1lLnRvcGljX2xpc3QucGVyX3BhZ2UsZS50b3BpY3M9dGhpcy50b3BpY3NGcm9tKHQsZSksZS50b3BpY19saXN0LnNoYXJlZF9kcmFmdHMmJihlLnNoYXJlZERyYWZ0cz10aGlzLnRvcGljc0Zyb20odCxlLHtsaXN0S2V5OiJzaGFyZWRfZHJhZnRzIn0pKSxlfSxmaW5kOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsaS5nZXRPd25lcikodGhpcykubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6ZSxwYXJhbXM6dH0pfSxoaWRlVW5pZm9ybUNhdGVnb3J5OmZ1bmN0aW9uKGUsdCl7ZS5zZXQoImhpZGVDYXRlZ29yeSIsIWZ1bmN0aW9uKGUsdCl7aWYodCl7aWYodC5oYXNfY2hpbGRyZW4pcmV0dXJuIDE7dmFyIG49ZS5zaGFyZWRfZHJhZnRzX2NhdGVnb3J5X2lkO3JldHVybiBuJiZ0LmlkPT09bj8xOnZvaWQgMH1yZXR1cm4gMX0oZS5zaXRlLHQpKX19KSxlLmRlZmF1bHQ9Zn0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYy10aW1lciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0Il0sZnVuY3Rpb24oZSxyLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dC5kZWZhdWx0LmV4dGVuZCh7fSk7bi5yZW9wZW5DbGFzcyh7dXBkYXRlU3RhdHVzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG89e3RpbWU6dCxzdGF0dXNfdHlwZTppfTtyZXR1cm4gbiYmKG8uYmFzZWRfb25fbGFzdF9wb3N0PW4pLHMmJihvLmNhdGVnb3J5X2lkPXMpLCgwLHIuYWpheCkoe3VybDoiL3QvIitlKyIvdGltZXIiLHR5cGU6IlBPU1QiLGRhdGE6b30pfX0pLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLXRyYWNraW5nLXN0YXRlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9ub3RpZmljYXRpb24tbGV2ZWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwicHJlbG9hZC1zdG9yZSIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtmdW5jdGlvbiBwKGUpe3JldHVybiBudWxsPT09ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXImJigwIT09ZS5ub3RpZmljYXRpb25fbGV2ZWwmJiFlLm5vdGlmaWNhdGlvbl9sZXZlbHx8ZS5ub3RpZmljYXRpb25fbGV2ZWw+PW4uTm90aWZpY2F0aW9uTGV2ZWxzLlRSQUNLSU5HKSYmZihlKX1mdW5jdGlvbiBtKGUpe3JldHVybiBudWxsIT09ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXImJmUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPGUuaGlnaGVzdF9wb3N0X251bWJlciYmZS5ub3RpZmljYXRpb25fbGV2ZWw+PW4uTm90aWZpY2F0aW9uTGV2ZWxzLlRSQUNLSU5HfWZ1bmN0aW9uIGYoZSl7cmV0dXJuIWUuaXNfc2Vlbn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zdGFydFRyYWNraW5nPWZ1bmN0aW9uKGUpe3ZhciB0PW8uZGVmYXVsdC5nZXQoInRvcGljVHJhY2tpbmdTdGF0ZXMiKTtlLmxvYWRTdGF0ZXModCksZS5pbml0aWFsU3RhdGVzTGVuZ3RoPXQmJnQubGVuZ3RoLGUuZXN0YWJsaXNoQ2hhbm5lbHMoKSxvLmRlZmF1bHQucmVtb3ZlKCJ0b3BpY1RyYWNraW5nU3RhdGVzIil9O3ZhciBoPWkuZGVmYXVsdC5leHRlbmQoKHU9KDAscy5vbikoImluaXQiKSxjPSgwLHMuZGVmYXVsdCkoImluY29taW5nQ291bnQiKSxsKGQ9e21lc3NhZ2VDb3VudDowLF9zZXR1cDpmdW5jdGlvbigpe3RoaXMudW5yZWFkU2VxdWVuY2U9W10sdGhpcy5uZXdTZXF1ZW5jZT1bXSx0aGlzLnN0YXRlcz17fX0sZXN0YWJsaXNoQ2hhbm5lbHM6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKG4pe2lmKCJkZWxldGUiPT09bi5tZXNzYWdlX3R5cGUmJihyLnJlbW92ZVRvcGljKG4udG9waWNfaWQpLHIuaW5jcmVtZW50TWVzc2FnZUNvdW50KCkpLFsibmV3X3RvcGljIiwibGF0ZXN0Il0uaW5jbHVkZXMobi5tZXNzYWdlX3R5cGUpKXt2YXIgZT1hLmRlZmF1bHQuY3VycmVudFByb3AoIm11dGVkX2NhdGVnb3J5X2lkcyIpO2lmKGUmJmUuaW5jbHVkZXMobi5wYXlsb2FkLmNhdGVnb3J5X2lkKSlyZXR1cm59aWYoWyJuZXdfdG9waWMiLCJsYXRlc3QiXS5pbmNsdWRlcyhuLm1lc3NhZ2VfdHlwZSkpe3ZhciB0PWEuZGVmYXVsdC5jdXJyZW50UHJvcCgibXV0ZWRfdGFnX2lkcyIpO2lmKGk9bi5wYXlsb2FkLnRvcGljX3RhZ19pZHMsKHM9dCkmJmkmJigiYWx3YXlzIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MucmVtb3ZlX211dGVkX3RhZ3NfZnJvbV9sYXRlc3QmJmkuYW55KGZ1bmN0aW9uKGUpe3JldHVybiBzLmluY2x1ZGVzKGUpfSl8fCJvbmx5X211dGVkIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MucmVtb3ZlX211dGVkX3RhZ3NfZnJvbV9sYXRlc3QmJmkuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIHMuaW5jbHVkZXMoZSl9KSkpcmV0dXJufXZhciBpLHMsbzsibGF0ZXN0Ij09PW4ubWVzc2FnZV90eXBlJiZyLm5vdGlmeShuKSwiZGlzbWlzc19uZXciPT09bi5tZXNzYWdlX3R5cGUmJihPYmplY3Qua2V5cyhyLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yLnN0YXRlc1tlXTtuLnBheWxvYWQuY2F0ZWdvcnlfaWQmJnQuY2F0ZWdvcnlfaWQhPT1wYXJzZUludChuLnBheWxvYWQuY2F0ZWdvcnlfaWQsMCl8fChyLnN0YXRlc1tlXT1PYmplY3QuYXNzaWduKHt9LHQse2lzX3NlZW46ITB9KSl9KSxyLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJzdGF0ZXMiKSxyLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSxbIm5ld190b3BpYyIsInVucmVhZCIsInJlYWQiXS5pbmNsdWRlcyhuLm1lc3NhZ2VfdHlwZSkmJihyLm5vdGlmeShuKSxvPXIuc3RhdGVzWyJ0IituLnRvcGljX2lkXSxfLmlzRXF1YWwobyxuLnBheWxvYWQpfHwoci5zdGF0ZXNbInQiK24udG9waWNfaWRdPW4ucGF5bG9hZCxyLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJzdGF0ZXMiKSxyLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSl9dmFyIHI9dGhpczt0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvbmV3IixlKSx0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvbGF0ZXN0IixlKSx0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvdW5yZWFkLyIrdGhpcy5jdXJyZW50VXNlci5nZXQoImlkIiksZSksdGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL2RlbGV0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ci5zdGF0ZXNbInQiK2UudG9waWNfaWRdO3QmJih0LmRlbGV0ZWQ9ITApLHIuaW5jcmVtZW50TWVzc2FnZUNvdW50KCl9KSx0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvcmVjb3ZlciIsZnVuY3Rpb24oZSl7dmFyIHQ9ci5zdGF0ZXNbInQiK2UudG9waWNfaWRdO3QmJmRlbGV0ZSB0LmRlbGV0ZWQsci5pbmNyZW1lbnRNZXNzYWdlQ291bnQoKX0pfSx1cGRhdGVTZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG47ZSYmdCYmKChuPXRoaXMuc3RhdGVzWyJ0IitlXSkmJighbi5sYXN0X3JlYWRfcG9zdF9udW1iZXJ8fG4ubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPHQpJiYobi5sYXN0X3JlYWRfcG9zdF9udW1iZXI9dCx0aGlzLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSl9LG5vdGlmeTpmdW5jdGlvbihlKXtpZih0aGlzLm5ld0luY29taW5nJiYoIWUucGF5bG9hZHx8InByaXZhdGVfbWVzc2FnZSIhPT1lLnBheWxvYWQuYXJjaGV0eXBlKSl7dmFyIHQsbj10aGlzLmZpbHRlcixpPXRoaXMuZmlsdGVyQ2F0ZWdvcnkscz1lLnBheWxvYWQmJmUucGF5bG9hZC5jYXRlZ29yeV9pZDtpZihpJiZpLmdldCgiaWQiKSE9PXMpe3ZhciBvPXMmJnIuZGVmYXVsdC5maW5kQnlJZChzKTtpZighb3x8by5nZXQoInBhcmVudENhdGVnb3J5LmlkIikhPT1pLmdldCgiaWQiKSlyZXR1cm59WyJhbGwiLCJsYXRlc3QiLCJuZXciXS5pbmNsdWRlcyhuKSYmIm5ld190b3BpYyI9PT1lLm1lc3NhZ2VfdHlwZSYmdGhpcy5hZGRJbmNvbWluZyhlLnRvcGljX2lkKSxbImFsbCIsInVucmVhZCJdLmluY2x1ZGVzKG4pJiYidW5yZWFkIj09PWUubWVzc2FnZV90eXBlJiYoKHQ9dGhpcy5zdGF0ZXNbInQiK2UudG9waWNfaWRdKSYmdC5oaWdoZXN0X3Bvc3RfbnVtYmVyIT09dC5sYXN0X3JlYWRfcG9zdF9udW1iZXJ8fHRoaXMuYWRkSW5jb21pbmcoZS50b3BpY19pZCkpLCJsYXRlc3QiPT09biYmImxhdGVzdCI9PT1lLm1lc3NhZ2VfdHlwZSYmdGhpcy5hZGRJbmNvbWluZyhlLnRvcGljX2lkKSx0aGlzLnNldCgiaW5jb21pbmdDb3VudCIsdGhpcy5uZXdJbmNvbWluZy5sZW5ndGgpfX0sYWRkSW5jb21pbmc6ZnVuY3Rpb24oZSl7LTE9PT10aGlzLm5ld0luY29taW5nLmluZGV4T2YoZSkmJnRoaXMubmV3SW5jb21pbmcucHVzaChlKX0scmVzZXRUcmFja2luZzpmdW5jdGlvbigpe3RoaXMubmV3SW5jb21pbmc9W10sdGhpcy5zZXQoImluY29taW5nQ291bnQiLDApfSx0cmFja0luY29taW5nOmZ1bmN0aW9uKGUpe3RoaXMubmV3SW5jb21pbmc9W107dmFyIHQsbj1lLnNwbGl0KCIvIik7NDw9bi5sZW5ndGg/KGU9bltuLmxlbmd0aC0xXSx0PXIuZGVmYXVsdC5maW5kU2luZ2xlQnlTbHVnKG4uc3BsaWNlKDEsbi5sZW5ndGgtNCkuam9pbigiLyIpKSx0aGlzLnNldCgiZmlsdGVyQ2F0ZWdvcnkiLHQpKTp0aGlzLnNldCgiZmlsdGVyQ2F0ZWdvcnkiLG51bGwpLHRoaXMuc2V0KCJmaWx0ZXIiLGUpLHRoaXMuc2V0KCJpbmNvbWluZ0NvdW50IiwwKX0saGFzSW5jb21pbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZX0scmVtb3ZlVG9waWM6ZnVuY3Rpb24oZSl7ZGVsZXRlIHRoaXMuc3RhdGVzWyJ0IitlXX0sdXBkYXRlVG9waWNzOmZ1bmN0aW9uKGUpe3ZhciBhOygwLHQuaXNFbXB0eSkoZSl8fChhPXRoaXMuc3RhdGVzLGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGkscyxvLHI9YVsidCIrZS5nZXQoImlkIildO3ImJih0PWUuZ2V0KCJsYXN0X3JlYWRfcG9zdF9udW1iZXIiKSxuPWUuZ2V0KCJpc19zZWVuIiksdD09PXIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyJiZuPT09ci5pc19zZWVufHwocz0oaT1lLmdldCgicG9zdHNfY291bnQiKSktci5oaWdoZXN0X3Bvc3RfbnVtYmVyLG89aS1yLmxhc3RfcmVhZF9wb3N0X251bWJlcixzPDAmJihzPTApLHIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHwobz0wKSxvPDAmJihvPTApLGUuc2V0UHJvcGVydGllcyh7aGlnaGVzdF9wb3N0X251bWJlcjpyLmhpZ2hlc3RfcG9zdF9udW1iZXIsbGFzdF9yZWFkX3Bvc3RfbnVtYmVyOnIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyLG5ld19wb3N0czpzLHVucmVhZDpvLGlzX3NlZW46ci5pc19zZWVuLHVuc2Vlbjohci5sYXN0X3JlYWRfcG9zdF9udW1iZXImJmYocil9KSkpfSkpfSxzeW5jOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcyx0PWkuc3RhdGVzO2lmKGUmJmUudG9waWNzKXtmb3IodmFyIHMsbz1lLnRvcGljcy5sZW5ndGgtMTswPD1vO28tLSl7dmFyIHI9dFsidCIrZS50b3BpY3Nbb10uaWRdO3ImJjA8ci5sYXN0X3JlYWRfcG9zdF9udW1iZXImJigibmV3Ij09PW4/ZS50b3BpY3Muc3BsaWNlKG8sMSk6KGUudG9waWNzW29dLnNldCgidW5zZWVuIiwhMSksZS50b3BpY3Nbb10uc2V0KCJkb250X3N5bmMiLCEwKSkpfWUudG9waWNzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9aS5zdGF0ZXNbInQiK2UuaWRdfHx7fTtpZih0LnRvcGljX2lkPWUuaWQsdC5ub3RpZmljYXRpb25fbGV2ZWw9ZS5ub3RpZmljYXRpb25fbGV2ZWwsZS51bnNlZW4pdC5sYXN0X3JlYWRfcG9zdF9udW1iZXI9bnVsbDtlbHNle2lmKCFlLnVucmVhZCYmIWUubmV3X3Bvc3RzKXJldHVybiB2b2lkKGUuZG9udF9zeW5jfHxkZWxldGUgaS5zdGF0ZXNbInQiK2UuaWRdKTt0Lmxhc3RfcmVhZF9wb3N0X251bWJlcj1lLmhpZ2hlc3RfcG9zdF9udW1iZXItKChlLnVucmVhZHx8MCkrKGUubmV3X3Bvc3RzfHwwKSl9dC5oaWdoZXN0X3Bvc3RfbnVtYmVyPWUuaGlnaGVzdF9wb3N0X251bWJlcixlLmNhdGVnb3J5JiYodC5jYXRlZ29yeV9pZD1lLmNhdGVnb3J5LmlkKSxpLnN0YXRlc1sidCIrZS5pZF09dH0pLCJuZXciIT09biYmInVucmVhZCIhPT1ufHxlLm1vcmVfdG9waWNzX3VybHx8KHM9e30sZS50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gc1sidCIrZS5pZF09ITB9KSxPYmplY3Qua2V5cyhpLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDtzW2VdfHwodD1pLnN0YXRlc1tlXSwidW5yZWFkIj09PW4mJm0odCkmJih0Lmxhc3RfcmVhZF9wb3N0X251bWJlcj10LmhpZ2hlc3RfcG9zdF9udW1iZXIpLCJuZXciPT09biYmcCh0KSYmKHQubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPTEpKX0pKSx0aGlzLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpfX0saW5jcmVtZW50TWVzc2FnZUNvdW50OmZ1bmN0aW9uKCl7dGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgibWVzc2FnZUNvdW50Iil9LGdldFN1YkNhdGVnb3J5SWRzOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bZV0sbj1yLmRlZmF1bHQubGlzdCgpLGk9MDtpPHQubGVuZ3RoOysraSlmb3IodmFyIHM9MDtzPG4ubGVuZ3RoOysrcyl0W2ldPT09bltzXS5wYXJlbnRfY2F0ZWdvcnlfaWQmJih0W3QubGVuZ3RoXT1uW3NdLmlkKTtyZXR1cm4gbmV3IFNldCh0KX0sY291bnROZXc6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5nZXRTdWJDYXRlZ29yeUlkcyh0KTtyZXR1cm4gXy5jaGFpbih0aGlzLnN0YXRlcykuZmlsdGVyKHApLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4icHJpdmF0ZV9tZXNzYWdlIiE9PWUuYXJjaGV0eXBlJiYhZS5kZWxldGVkJiYoIXR8fG4uaGFzKGUuY2F0ZWdvcnlfaWQpKX0pLnZhbHVlKCkubGVuZ3RofSxjb3VudFVucmVhZDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLmdldFN1YkNhdGVnb3J5SWRzKHQpO3JldHVybiBfLmNoYWluKHRoaXMuc3RhdGVzKS5maWx0ZXIobSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJwcml2YXRlX21lc3NhZ2UiIT09ZS5hcmNoZXR5cGUmJiFlLmRlbGV0ZWQmJighdHx8bi5oYXMoZS5jYXRlZ29yeV9pZCkpfSkudmFsdWUoKS5sZW5ndGh9LGNvdW50Q2F0ZWdvcnk6ZnVuY3Rpb24odCl7dmFyIG49MDtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXtlLmNhdGVnb3J5X2lkIT09dHx8ZS5kZWxldGVkfHwobis9bnVsbD09PWUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHxlLmxhc3RfcmVhZF9wb3N0X251bWJlcjxlLmhpZ2hlc3RfcG9zdF9udW1iZXI/MTowKX0pLG59LGxvb2t1cENvdW50OmZ1bmN0aW9uKGUsdCl7aWYoImxhdGVzdCI9PT1lKXJldHVybiB0aGlzLmxvb2t1cENvdW50KCJuZXciLHQpK3RoaXMubG9va3VwQ291bnQoInVucmVhZCIsdCk7dmFyIG49dD8oMCxpLmdldCkodCwiaWQiKTpudWxsO3QmJigwLGkuZ2V0KSh0LCJuYW1lIik7cmV0dXJuIm5ldyI9PT1lP3RoaXMuY291bnROZXcobik6InVucmVhZCI9PT1lP3RoaXMuY291bnRVbnJlYWQobik6ZS5zcGxpdCgiLyIpWzFdP3RoaXMuY291bnRDYXRlZ29yeShuKTp2b2lkIDB9LGxvYWRTdGF0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zdGF0ZXM7ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbInQiK2UudG9waWNfaWRdPWV9KX19LCJfc2V0dXAiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9zZXR1cCIpLGQpLGwoZCwiaGFzSW5jb21pbmciLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImhhc0luY29taW5nIiksZCksZCkpO2UuZGVmYXVsdD1ofSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uLXN0YXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoImFjdGlvbl90eXBlIiksYT0oMCx0LmRlZmF1bHQpKCJhY3Rpb25fdHlwZSIpLG8obD17aXNQTTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWkuZGVmYXVsdC5UWVBFUy5tZXNzYWdlc19zZW50fHxlPT09aS5kZWZhdWx0LlRZUEVTLm1lc3NhZ2VzX3JlY2VpdmVkfSxkZXNjcmlwdGlvbjooMCxzLmkxOG4pKCJhY3Rpb25fdHlwZSIsInVzZXJfYWN0aW9uX2dyb3Vwcy4lQCIpLGlzUmVzcG9uc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pLmRlZmF1bHQuVFlQRVMucmVwbGllc3x8ZT09PWkuZGVmYXVsdC5UWVBFUy5xdW90ZXN9fSwiaXNQTSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiaXNQTSIpLGwpLG8obCwiaXNSZXNwb25zZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiaXNSZXNwb25zZSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWRyYWZ0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoImRyYWZ0X3VzZXJuYW1lIiksdT0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZV9sb3dlciIpLGM9KDAsdC5kZWZhdWx0KSgidG9waWNfaWQiKSxkPSgwLHQuZGVmYXVsdCkoImRyYWZ0X2tleSIpLGEocD17ZWRpdGFibGVEcmFmdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PW8uZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0sdXNlclVybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLnVzZXJQYXRoKShlKX0scG9zdFVybDpmdW5jdGlvbihlKXtpZihlKXJldHVybigwLGkucG9zdFVybCkodGhpcy5zbHVnLHRoaXMudG9waWNfaWQsdGhpcy5wb3N0X251bWJlcil9LGRyYWZ0VHlwZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSByLk5FV19UT1BJQ19LRVk6cmV0dXJuIEkxOG4udCgiZHJhZnRzLm5ld190b3BpYyIpO2Nhc2Ugci5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWTpyZXR1cm4gSTE4bi50KCJkcmFmdHMubmV3X3ByaXZhdGVfbWVzc2FnZSIpO2RlZmF1bHQ6cmV0dXJuITF9fX0sImVkaXRhYmxlRHJhZnQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImVkaXRhYmxlRHJhZnQiKSxwKSxhKHAsInVzZXJVcmwiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInVzZXJVcmwiKSxwKSxhKHAsInBvc3RVcmwiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBvc3RVcmwiKSxwKSxhKHAsImRyYWZ0VHlwZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZHJhZnRUeXBlIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItZHJhZnRzLXN0cmVhbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1kcmFmdCIsImRpc2NvdXJzZS9saWIvdGV4dCIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJjb250ZW50Lmxlbmd0aCIsImxvYWRlZCIpLGM9e2xvYWRlZDohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbH0pfSxiYXNlVXJsOigwLGkudXJsKSgiaXRlbXNMb2FkZWQiLCJ1c2VyLnVzZXJuYW1lX2xvd2VyIiwiL2RyYWZ0cy5qc29uP29mZnNldD0lQCZ1c2VybmFtZT0lQCIpLGxvYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbCxzaXRlOmV9KSx0aGlzLmZpbmRJdGVtcygpfSxub0NvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmMD09PWV9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRlbnQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRyYWZ0X2tleSE9PXQuZHJhZnRfa2V5fSk7dGhpcy5zZXRQcm9wZXJ0aWVzKHtjb250ZW50OmUsaXRlbXNMb2FkZWQ6ZS5sZW5ndGh9KX0sZmluZEl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxlPXRoaXMuYmFzZVVybDtyZXR1cm4gdGhpcy5sYXN0TG9hZGVkVXJsPT09ZXx8dGhpcy5sb2FkaW5nP2EuUHJvbWlzZS5yZXNvbHZlKCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKDAsbi5hamF4KShlLHtjYWNoZToiZmFsc2UifSkudGhlbihmdW5jdGlvbihlKXt2YXIgbjtlJiZlLm5vX3Jlc3VsdHNfaGVscCYmaS5zZXQoIm5vQ29udGVudEhlbHAiLGUubm9fcmVzdWx0c19oZWxwKSxlJiZlLmRyYWZ0cyYmKG49RW1iZXIuQSgpLGUuZHJhZnRzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9SlNPTi5wYXJzZShlLmRhdGEpO2UucG9zdF9udW1iZXI9dC5wb3N0SWR8fG51bGwsZS5kcmFmdF9rZXkhPT1sLk5FV19QUklWQVRFX01FU1NBR0VfS0VZJiZlLmRyYWZ0X2tleSE9PWwuTkVXX1RPUElDX0tFWXx8KGUudGl0bGU9dC50aXRsZSksZS50aXRsZT0oMCxyLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRpdGxlKSksZS5jYXRlZ29yeV9pZCYmKGUuY2F0ZWdvcnk9aS5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KCJpZCIsZS5jYXRlZ29yeV9pZCl8fG51bGwpLG4ucHVzaE9iamVjdChvLmRlZmF1bHQuY3JlYXRlKGUpKX0pLGkuY29udGVudC5wdXNoT2JqZWN0cyhuKSxpLnNldFByb3BlcnRpZXMoe2xvYWRlZDohMCxpdGVtc0xvYWRlZDppLml0ZW1zTG9hZGVkK2UuZHJhZnRzLmxlbmd0aH0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLnNldCgibG9hZGluZyIsITEpLGkuc2V0KCJsYXN0TG9hZGVkVXJsIixlKX0pKX19LGQ9YyxwPSJub0NvbnRlbnQiLG09W3VdLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJub0NvbnRlbnQiKSxoPWMsYj17fSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2JbZV09ZltlXX0pLGIuZW51bWVyYWJsZT0hIWIuZW51bWVyYWJsZSxiLmNvbmZpZ3VyYWJsZT0hIWIuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gYnx8Yi5pbml0aWFsaXplcikmJihiLndyaXRhYmxlPSEwKSxiPW0uc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoZCxwLGUpfHxlfSxiKSxoJiZ2b2lkIDAhPT1iLmluaXRpYWxpemVyJiYoYi52YWx1ZT1iLmluaXRpYWxpemVyP2IuaW5pdGlhbGl6ZXIuY2FsbChoKTp2b2lkIDAsYi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWIuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxwLGIpLGI9bnVsbCksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItcG9zdHMtc3RyZWFtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsInJzdnAiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1yLmRlZmF1bHQuZXh0ZW5kKChhPSgwLHQub24pKCJpbml0IiksbD17bG9hZGVkOiExLF9pbml0aWFsaXplOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtpdGVtc0xvYWRlZDowLGNhbkxvYWRNb3JlOiEwLGNvbnRlbnQ6W119KX0sdXJsOigwLG4udXJsKSgidXNlci51c2VybmFtZV9sb3dlciIsImZpbHRlciIsIml0ZW1zTG9hZGVkIiwiL3Bvc3RzLyVALyVAP29mZnNldD0lQCIpLGZpbHRlckJ5OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxvYWRlZCYmdGhpcy5maWx0ZXI9PT1lLmZpbHRlcj9vLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldFByb3BlcnRpZXMoT2JqZWN0LmFzc2lnbih7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbH0sZSkpLHRoaXMuZmluZEl0ZW1zKCkpfSxmaW5kSXRlbXM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmxvYWRpbmd8fCF0aGlzLmNhbkxvYWRNb3JlP28uUHJvbWlzZS5yZWplY3QoKToodGhpcy5zZXQoImxvYWRpbmciLCEwKSwoMCxpLmFqYXgpKHRoaXMudXJsLHtjYWNoZTohMX0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZSYmKHQ9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHMuZGVmYXVsdC5jcmVhdGUoZSl9KSxuLmNvbnRlbnQucHVzaE9iamVjdHModCksbi5zZXRQcm9wZXJ0aWVzKHtsb2FkZWQ6ITAsaXRlbXNMb2FkZWQ6bi5pdGVtc0xvYWRlZCt0Lmxlbmd0aCxjYW5Mb2FkTW9yZTowPHQubGVuZ3RofSkpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsITEpfSkpfX0sdT1sLGM9Il9pbml0aWFsaXplIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2luaXRpYWxpemUiKSxtPWwsZj17fSxPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZbZV09cFtlXX0pLGYuZW51bWVyYWJsZT0hIWYuZW51bWVyYWJsZSxmLmNvbmZpZ3VyYWJsZT0hIWYuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZnx8Zi5pbml0aWFsaXplcikmJihmLndyaXRhYmxlPSEwKSxmPWQuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQodSxjLGUpfHxlfSxmKSxtJiZ2b2lkIDAhPT1mLmluaXRpYWxpemVyJiYoZi52YWx1ZT1mLmluaXRpYWxpemVyP2YuaW5pdGlhbGl6ZXIuY2FsbChtKTp2b2lkIDAsZi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWYuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkodSxjLGYpLGY9bnVsbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItc3RyZWFtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsImRpc2NvdXJzZS9saWIvdGV4dCIsInJzdnAiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgodT0oMCxhLm9uKSgiaW5pdCIpLGM9KDAsYS5kZWZhdWx0KSgiZmlsdGVyIiksZD0oMCxhLmRlZmF1bHQpKCJsb2FkZWQiLCJjb250ZW50LltdIiksbChwPXtsb2FkZWQ6ITEsX2luaXRpYWxpemU6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2l0ZW1zTG9hZGVkOjAsY29udGVudDpbXX0pfSxmaWx0ZXJQYXJhbTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXMuZGVmYXVsdC5UWVBFUy5yZXBsaWVzP1tzLmRlZmF1bHQuVFlQRVMucmVwbGllcyxzLmRlZmF1bHQuVFlQRVMucXVvdGVzXS5qb2luKCIsIik6ZXx8W3MuZGVmYXVsdC5UWVBFUy50b3BpY3Mscy5kZWZhdWx0LlRZUEVTLnBvc3RzXS5qb2luKCIsIil9LGJhc2VVcmw6KDAsbi51cmwpKCJpdGVtc0xvYWRlZCIsInVzZXIudXNlcm5hbWVfbG93ZXIiLCIvdXNlcl9hY3Rpb25zLmpzb24/b2Zmc2V0PSVAJnVzZXJuYW1lPSVAIiksZmlsdGVyQnk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyhPYmplY3QuYXNzaWduKHtpdGVtc0xvYWRlZDowLGNvbnRlbnQ6W10sbGFzdExvYWRlZFVybDpudWxsfSxlKSksdGhpcy5maW5kSXRlbXMoKX0sbm9Db250ZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjA9PT10Lmxlbmd0aH0scmVtb3ZlOmZ1bmN0aW9uKGkpe3RoaXMuY29udGVudC5mb3JFYWNoKGZ1bmN0aW9uKG4pe1sibGlrZXMiLCJzdGFycyIsImVkaXRzIiwiYm9va21hcmtzIl0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLmdldCgiY2hpbGRHcm91cHMuIitlKyIuaXRlbXMiKTt0JiZ0LnJlbW92ZU9iamVjdChpKX0pfSk7dmFyIGU9dGhpcy5jb250ZW50LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5bImxpa2VzIiwic3RhcnMiLCJlZGl0cyIsImJvb2ttYXJrcyJdLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIDA8dC5nZXQoImNoaWxkR3JvdXBzLiIrZSsiLml0ZW1zLmxlbmd0aCIpfSl9KTt0aGlzLnNldFByb3BlcnRpZXMoe2NvbnRlbnQ6ZSxpdGVtc0xvYWRlZDplLmxlbmd0aH0pfSxmaW5kSXRlbXM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGU9dGhpcy5iYXNlVXJsO3JldHVybiB0aGlzLmZpbHRlclBhcmFtJiYoZSs9IiZmaWx0ZXI9Iit0aGlzLmZpbHRlclBhcmFtKSx0aGlzLm5vQ29udGVudEhlbHBLZXkmJihlKz0iJm5vX3Jlc3VsdHNfaGVscF9rZXk9Iit0aGlzLm5vQ29udGVudEhlbHBLZXkpLHRoaXMuYWN0aW5nVXNlcm5hbWUmJihlKz0iJmFjdGluZ191c2VybmFtZT0iK3RoaXMuYWN0aW5nVXNlcm5hbWUpLHRoaXMubGFzdExvYWRlZFVybD09PWV8fHRoaXMubG9hZGluZz9yLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldCgibG9hZGluZyIsITApLCgwLHQuYWpheCkoZSx7Y2FjaGU6ImZhbHNlIn0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZSYmZS5ub19yZXN1bHRzX2hlbHAmJm4uc2V0KCJub0NvbnRlbnRIZWxwIixlLm5vX3Jlc3VsdHNfaGVscCksZSYmZS51c2VyX2FjdGlvbnMmJih0PUVtYmVyLkEoKSxlLnVzZXJfYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGl0bGU9KDAsby5lbW9qaVVuZXNjYXBlKShIYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS50aXRsZSkpLHQucHVzaE9iamVjdChzLmRlZmF1bHQuY3JlYXRlKGUpKX0pLG4uY29udGVudC5wdXNoT2JqZWN0cyhzLmRlZmF1bHQuY29sbGFwc2VTdHJlYW0odCkpLG4uc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6bi5pdGVtc0xvYWRlZCtlLnVzZXJfYWN0aW9ucy5sZW5ndGh9KSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0UHJvcGVydGllcyh7bG9hZGVkOiEwLGxvYWRpbmc6ITEsbGFzdExvYWRlZFVybDplfSl9KSl9fSwiX2luaXRpYWxpemUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIl9pbml0aWFsaXplIikscCksbChwLCJmaWx0ZXJQYXJhbSIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZmlsdGVyUGFyYW0iKSxwKSxsKHAsIm5vQ29udGVudCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibm9Db250ZW50IikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItcG9zdHMtc3RyZWFtIiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iLCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uLXN0YXQiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uIiwiZGlzY291cnNlL21vZGVscy91c2VyLWRyYWZ0cy1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwIiwiZGlzY291cnNlL2xpYi90ZXh0IiwicHJlbG9hZC1zdG9yZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwicnN2cCIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiXSxmdW5jdGlvbihlLHIsdCxpLGwsbixzLG8sYSx1LGMsZCxwLG0sZixoLGIsZyx2LHksdyx4LGssUCxqLFQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TRUNPTkRfRkFDVE9SX01FVEhPRFM9dm9pZCAwO3ZhciBFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsSyxXLFYsRyxZLEosWCxRLFosZWUsdGUsbmUsaWUsc2Usb2UscmUsYWUsbGUsdWUsY2UsZGUscGU9ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07ZnVuY3Rpb24gbWUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIG1vbWVudCgpLmRpZmYoZSwieWVhcnMiKTwtNTAwfWUuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTPXtUT1RQOjEsQkFDS1VQX0NPREU6MixTRUNVUklUWV9LRVk6M307dmFyIGhlPXMuZGVmYXVsdC5leHRlbmQoKEU9KDAsZC5kZWZhdWx0KSgiY2FuX2JlX2RlbGV0ZWQiLCJwb3N0X2NvdW50IiksTz0oMCxkLmRlZmF1bHQpKCksUz0oMCxkLmRlZmF1bHQpKCksQz0oMCxkLmRlZmF1bHQpKCksTT0oMCxkLmRlZmF1bHQpKCJ1c2VybmFtZV9sb3dlciIpLEQ9KDAsZC5kZWZhdWx0KSgidXNlcm5hbWUiLCJuYW1lIiksST0oMCxkLmRlZmF1bHQpKCJwcm9maWxlX2JhY2tncm91bmRfdXBsb2FkX3VybCIpLEw9KDAsZC5kZWZhdWx0KSgpLEE9KDAsZC5kZWZhdWx0KSgpLE49KDAsZC5kZWZhdWx0KSgpLHo9KDAsZC5kZWZhdWx0KSgpLFU9KDAsZC5kZWZhdWx0KSgpLEY9KDAsZC5kZWZhdWx0KSgidXNlcm5hbWUiKSxCPSgwLGQuZGVmYXVsdCkoInRydXN0X2xldmVsIiksUj0oMCxkLmRlZmF1bHQpKCJwcmV2aW91c192aXNpdF9hdCIpLHE9KDAsZC5kZWZhdWx0KSgic3VzcGVuZGVkX3RpbGwiKSxIPSgwLGQuZGVmYXVsdCkoInN1c3BlbmRlZF90aWxsIiksSz0oMCxkLmRlZmF1bHQpKCJzaWxlbmNlZF90aWxsIiksVz0oMCxkLmRlZmF1bHQpKCJzdXNwZW5kZWRfdGlsbCIpLFY9KDAsZC5kZWZhdWx0KSgic2lsZW5jZWRfdGlsbCIpLEc9KDAsZC5kZWZhdWx0KSgiZ3JvdXBzLltdIiksWT0oMCxkLmRlZmF1bHQpKCJmaWx0ZXJlZEdyb3VwcyIsIm51bUdyb3Vwc1RvRGlzcGxheSIpLEo9KDAsZC5kZWZhdWx0KSgiZmlsdGVyZWRHcm91cHMiLCJudW1Hcm91cHNUb0Rpc3BsYXkiKSxYPSgwLGQuZGVmYXVsdCkoInN0YXRzRXhjbHVkaW5nUG1zLkBlYWNoLmNvdW50IiksUT0oMCxkLmRlZmF1bHQpKCJzdGF0cy5AZWFjaC5pc1BNIiksWj0oMCxkLm9ic2VydmVzKSgibXV0ZWRfY2F0ZWdvcnlfaWRzIiksZWU9KDAsZC5vYnNlcnZlcykoInRyYWNrZWRfY2F0ZWdvcnlfaWRzIiksdGU9KDAsZC5vYnNlcnZlcykoIndhdGNoZWRfY2F0ZWdvcnlfaWRzIiksbmU9KDAsZC5vYnNlcnZlcykoIndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yeV9pZHMiKSxpZT0oMCxkLmRlZmF1bHQpKCJjYW5fZGVsZXRlX2FjY291bnQiKSxzZT0oMCxkLmRlZmF1bHQpKCJncm91cHMuQGVhY2gudGl0bGUiLCJiYWRnZXMuW10iKSxvZT0oMCxkLmRlZmF1bHQpKCJ1c2VyX29wdGlvbi50ZXh0X3NpemVfc2VxIiwidXNlcl9vcHRpb24udGV4dF9zaXplIikscmU9KDAsZC5kZWZhdWx0KSgic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIiwic3RhZmYiKSxtZShhZT17aGFzUE1zOigwLHQuZ3QpKCJwcml2YXRlX21lc3NhZ2VzX3N0YXRzLmFsbCIsMCksaGFzU3RhcnRlZFBNczooMCx0Lmd0KSgicHJpdmF0ZV9tZXNzYWdlc19zdGF0cy5taW5lIiwwKSxoYXNVbnJlYWRQTXM6KDAsdC5ndCkoInByaXZhdGVfbWVzc2FnZXNfc3RhdHMudW5yZWFkIiwwKSxyZWRpcmVjdGVkX3RvX3RvcDp7cmVhc29uOm51bGx9LGNhbkJlRGVsZXRlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0PD01fSxzdHJlYW06ZnVuY3Rpb24oKXtyZXR1cm4gby5kZWZhdWx0LmNyZWF0ZSh7dXNlcjp0aGlzfSl9LHBvc3RzU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdC5jcmVhdGUoe3VzZXI6dGhpc30pfSx1c2VyRHJhZnRzU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIGIuZGVmYXVsdC5jcmVhdGUoe3VzZXI6dGhpc30pfSxzdGFmZjooMCxpLmNvbXB1dGVkKSgiYWRtaW4iLCJtb2RlcmF0b3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZG1pbnx8dGhpcy5tb2RlcmF0b3J9LHNldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkbWlufHx0aGlzLm1vZGVyYXRvcn19KSxkZXN0cm95U2Vzc2lvbjpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi9zZXNzaW9uLyIrdGhpcy51c2VybmFtZSx7dHlwZToiREVMRVRFIn0pfSxzZWFyY2hDb250ZXh0OmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJ1c2VyIixpZDplLHVzZXI6dGhpc319LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5hYmxlX25hbWVzJiYhKDAsci5pc0VtcHR5KSh0KT90OmV9LHByb2ZpbGVCYWNrZ3JvdW5kVXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLHIuaXNFbXB0eSkoZSl8fCFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHM/IiIuaHRtbFNhZmUoKTooImJhY2tncm91bmQtaW1hZ2U6IHVybCgiK0Rpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGUpKyIpIikuaHRtbFNhZmUoKX0scGF0aDpmdW5jdGlvbigpe3JldHVybigwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWVfbG93ZXIpfSx1c2VyQXBpS2V5czpmdW5jdGlvbigpe3ZhciBuPXRoaXMsZT10aGlzLnVzZXJfYXBpX2tleXM7aWYoZSlyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9aS5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gdC5yZXZva2U9ZnVuY3Rpb24oKXtuLnJldm9rZUFwaUtleSh0KX0sdC51bmRvUmV2b2tlPWZ1bmN0aW9uKCl7bi51bmRvUmV2b2tlQXBpS2V5KHQpfSx0fSl9LHJldm9rZUFwaUtleTpmdW5jdGlvbihlKXtyZXR1cm4oMCxsLmFqYXgpKCIvdXNlci1hcGkta2V5L3Jldm9rZSIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOmUuZ2V0KCJpZCIpfX0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmV2b2tlZCIsITApfSl9LHVuZG9SZXZva2VBcGlLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgiL3VzZXItYXBpLWtleS91bmRvLXJldm9rZSIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOmUuZ2V0KCJpZCIpfX0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmV2b2tlZCIsITEpfSl9LHBtUGF0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmlkLG49dGhpcy51c2VybmFtZV9sb3dlcixpPWUmJmUuZ2V0KCJkZXRhaWxzIikscz1pJiZpLmdldCgiYWxsb3dlZF91c2VycyIpLG89aSYmaS5nZXQoImFsbG93ZWRfZ3JvdXBzIik7cmV0dXJuIW98fHMmJnMuZmluZEJ5KCJpZCIsdCk/KDAseC51c2VyUGF0aCkobisiL21lc3NhZ2VzIik6byYmb1swXT8oMCx4LnVzZXJQYXRoKShuKyIvbWVzc2FnZXMvZ3JvdXAvIitvWzBdLm5hbWUpOnZvaWQgMH0sYWRtaW5QYXRoOigwLG4udXJsKSgiaWQiLCJ1c2VybmFtZV9sb3dlciIsIi9hZG1pbi91c2Vycy8lQDEvJUAyIiksbXV0ZWRUb3BpY3NQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuImxhdGVzdCI9PT0oMCx3LmRlZmF1bHRIb21lcGFnZSkoKT9EaXNjb3Vyc2UuZ2V0VVJMKCIvP3N0YXRlPW11dGVkIik6RGlzY291cnNlLmdldFVSTCgiL2xhdGVzdD9zdGF0ZT1tdXRlZCIpfSx3YXRjaGluZ1RvcGljc1BhdGg6ZnVuY3Rpb24oKXtyZXR1cm4ibGF0ZXN0Ij09PSgwLHcuZGVmYXVsdEhvbWVwYWdlKSgpP0Rpc2NvdXJzZS5nZXRVUkwoIi8/c3RhdGU9d2F0Y2hpbmciKTpEaXNjb3Vyc2UuZ2V0VVJMKCIvbGF0ZXN0P3N0YXRlPXdhdGNoaW5nIil9LHRyYWNraW5nVG9waWNzUGF0aDpmdW5jdGlvbigpe3JldHVybiJsYXRlc3QiPT09KDAsdy5kZWZhdWx0SG9tZXBhZ2UpKCk/RGlzY291cnNlLmdldFVSTCgiLz9zdGF0ZT10cmFja2luZyIpOkRpc2NvdXJzZS5nZXRVUkwoIi9sYXRlc3Q/c3RhdGU9dHJhY2tpbmciKX0sdXNlcm5hbWVfbG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdHJ1c3RMZXZlbDpmdW5jdGlvbihlKXtyZXR1cm4gVC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0cnVzdExldmVscyIpLmZpbmRCeSgiaWQiLHBhcnNlSW50KGUsMTApKX0saXNCYXNpYzooMCx0LmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDApLGlzTGVhZGVyOigwLHQuZXF1YWwpKCJ0cnVzdF9sZXZlbCIsMyksaXNFbGRlcjooMCx0LmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDQpLGNhbk1hbmFnZVRvcGljOigwLHQub3IpKCJzdGFmZiIsImlzRWxkZXIiKSxwcmV2aW91c1Zpc2l0QXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKGUpfSxzdXNwZW5kZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJm1vbWVudChlKS5pc0FmdGVyKCl9LHN1c3BlbmRlZEZvcmV2ZXI6ZmUsc2lsZW5jZWRGb3JldmVyOmZlLHN1c3BlbmRlZFRpbGxEYXRlOmMubG9uZ0RhdGUsc2lsZW5jZWRUaWxsRGF0ZTpjLmxvbmdEYXRlLGNoYW5nZVVzZXJuYW1lOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL3VzZXJuYW1lIikse3R5cGU6IlBVVCIsZGF0YTp7bmV3X3VzZXJuYW1lOmV9fSl9LGNoYW5nZUVtYWlsOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL2VtYWlsIikse3R5cGU6IlBVVCIsZGF0YTp7ZW1haWw6ZX19KX0sY29weTpmdW5jdGlvbigpe3JldHVybiBoZS5jcmVhdGUodGhpcy5nZXRQcm9wZXJ0aWVzKE9iamVjdC5rZXlzKHRoaXMpKSl9LHNhdmU6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcyxlPVsiYmlvX3JhdyIsIndlYnNpdGUiLCJsb2NhdGlvbiIsIm5hbWUiLCJ0aXRsZSIsImxvY2FsZSIsImN1c3RvbV9maWVsZHMiLCJ1c2VyX2ZpZWxkcyIsIm11dGVkX3VzZXJuYW1lcyIsImlnbm9yZWRfdXNlcm5hbWVzIiwicHJvZmlsZV9iYWNrZ3JvdW5kX3VwbG9hZF91cmwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIsIm11dGVkX3RhZ3MiLCJ0cmFja2VkX3RhZ3MiLCJ3YXRjaGVkX3RhZ3MiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiLCJkYXRlX29mX2JpcnRoIiwicHJpbWFyeV9ncm91cF9pZCJdLHI9dGhpcy5nZXRQcm9wZXJ0aWVzKHM/Xy5pbnRlcnNlY3Rpb24oZSxzKTplKSx0PVsibWFpbGluZ19saXN0X21vZGUiLCJtYWlsaW5nX2xpc3RfbW9kZV9mcmVxdWVuY3kiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZW1haWxfZGlnZXN0cyIsImVtYWlsX2luX3JlcGx5X3RvIiwiZW1haWxfbWVzc2FnZXNfbGV2ZWwiLCJlbWFpbF9sZXZlbCIsImVtYWlsX3ByZXZpb3VzX3JlcGxpZXMiLCJkeW5hbWljX2Zhdmljb24iLCJlbmFibGVfcXVvdGluZyIsImVuYWJsZV9kZWZlciIsImF1dG9tYXRpY2FsbHlfdW5waW5fdG9waWNzIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiLCJuZXdfdG9waWNfZHVyYXRpb25fbWludXRlcyIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciLCJsaWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kiLCJpbmNsdWRlX3RsMF9pbl9kaWdlc3RzIiwidGhlbWVfaWRzIiwiYWxsb3dfcHJpdmF0ZV9tZXNzYWdlcyIsImhvbWVwYWdlX2lkIiwiaGlkZV9wcm9maWxlX2FuZF9wcmVzZW5jZSIsInRleHRfc2l6ZSIsInRpdGxlX2NvdW50X21vZGUiLCJ0aW1lem9uZSJdO3MmJih0PV8uaW50ZXJzZWN0aW9uKHQscykpLHQuZm9yRWFjaChmdW5jdGlvbihlKXtyW2VdPW8uZ2V0KCJ1c2VyX29wdGlvbi4iK2UpfSk7dmFyIGE9e307cmV0dXJuWyJtdXRlZCIsIndhdGNoZWQiLCJ0cmFja2VkIiwid2F0Y2hlZF9maXJzdF9wb3N0Il0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGk7dm9pZCAwIT09cyYmIXMuaW5jbHVkZXMoZSsiX2NhdGVnb3J5X2lkcyIpfHwodD0id2F0Y2hlZF9maXJzdF9wb3N0Ij09PWU/IndhdGNoZWRGaXJzdFBvc3RDYXRlZ29yaWVzIjplKyJDYXRlZ29yaWVzIiwobj1vLmdldCh0KSkmJihpPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgiaWQiKX0pLGFbZSsiX2NhdGVnb3J5X2lkcyJdPWksMD09PW4ubGVuZ3RoJiYoaT1bLTFdKSxyW2UrIl9jYXRlZ29yeV9pZHMiXT1pKSl9KSxbIm11dGVkX3RhZ3MiLCJ0cmFja2VkX3RhZ3MiLCJ3YXRjaGVkX3RhZ3MiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PXMmJiFzLmluY2x1ZGVzKGUpfHwocltlXT1vLmdldChlKT9vLmdldChlKS5qb2luKCIsIik6IiIpfSksdGhpcy5zZXQoImlzU2F2aW5nIiwhMCksKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIuanNvbiIpLHtkYXRhOnIsdHlwZToiUFVUIn0pLnRoZW4oZnVuY3Rpb24oZSl7by5zZXQoImJpb19leGNlcnB0IixlLnVzZXIuYmlvX2V4Y2VycHQpO3ZhciB0PSgwLGkuZ2V0UHJvcGVydGllcykoby51c2VyX29wdGlvbiwiZW5hYmxlX3F1b3RpbmciLCJlbmFibGVfZGVmZXIiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZHluYW1pY19mYXZpY29uIik7aGUuY3VycmVudCgpLnNldFByb3BlcnRpZXModCksby5zZXRQcm9wZXJ0aWVzKGEpfSkuZmluYWxseShmdW5jdGlvbigpe28uc2V0KCJpc1NhdmluZyIsITEpfSl9LGNoYW5nZVBhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5hamF4KSgiL3Nlc3Npb24vZm9yZ290X3Bhc3N3b3JkIix7ZGF0YVR5cGU6Impzb24iLGRhdGE6e2xvZ2luOnRoaXMudXNlcm5hbWV9LHR5cGU6IlBPU1QifSl9LGxvYWRTZWNvbmRGYWN0b3JDb2RlczpmdW5jdGlvbihlKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9ycy5qc29uIix7ZGF0YTp7cGFzc3dvcmQ6ZX0sdHlwZToiUE9TVCJ9KX0scmVxdWVzdFNlY3VyaXR5S2V5Q2hhbGxlbmdlOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5hamF4KSgiL3UvY3JlYXRlX3NlY29uZF9mYWN0b3Jfc2VjdXJpdHlfa2V5Lmpzb24iLHt0eXBlOiJQT1NUIn0pfSxyZWdpc3RlclNlY3VyaXR5S2V5OmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoIi91L3JlZ2lzdGVyX3NlY29uZF9mYWN0b3Jfc2VjdXJpdHlfa2V5Lmpzb24iLHtkYXRhOmUsdHlwZToiUE9TVCJ9KX0sY3JlYXRlU2Vjb25kRmFjdG9yVG90cDpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi91L2NyZWF0ZV9zZWNvbmRfZmFjdG9yX3RvdHAuanNvbiIse3R5cGU6IlBPU1QifSl9LGVuYWJsZVNlY29uZEZhY3RvclRvdHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9lbmFibGVfc2Vjb25kX2ZhY3Rvcl90b3RwLmpzb24iLHtkYXRhOntzZWNvbmRfZmFjdG9yX3Rva2VuOmUsbmFtZTp0fSx0eXBlOiJQT1NUIn0pfSxkaXNhYmxlQWxsU2Vjb25kRmFjdG9yczpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi91L2Rpc2FibGVfc2Vjb25kX2ZhY3Rvci5qc29uIix7dHlwZToiUFVUIn0pfSx1cGRhdGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuKDAsbC5hamF4KSgiL3Uvc2Vjb25kX2ZhY3Rvci5qc29uIix7ZGF0YTp7c2Vjb25kX2ZhY3Rvcl90YXJnZXQ6aSxuYW1lOnQsZGlzYWJsZTpuLGlkOmV9LHR5cGU6IlBVVCJ9KX0sdXBkYXRlU2VjdXJpdHlLZXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGwuYWpheCkoIi91L3NlY3VyaXR5X2tleS5qc29uIix7ZGF0YTp7bmFtZTp0LGRpc2FibGU6bixpZDplfSx0eXBlOiJQVVQifSl9LHRvZ2dsZVNlY29uZEZhY3RvcjpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9yLmpzb24iLHtkYXRhOntzZWNvbmRfZmFjdG9yX3Rva2VuOmUsc2Vjb25kX2ZhY3Rvcl9tZXRob2Q6dCxzZWNvbmRfZmFjdG9yX3RhcmdldDpuLGVuYWJsZTppfSx0eXBlOiJQVVQifSl9LGdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXM6ZnVuY3Rpb24oKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9yc19iYWNrdXAuanNvbiIse3R5cGU6IlBVVCJ9KX0scmV2b2tlQXNzb2NpYXRlZEFjY291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lKyIvcHJlZmVyZW5jZXMvcmV2b2tlLWFjY291bnQiKSx7ZGF0YTp7cHJvdmlkZXJfbmFtZTplfSx0eXBlOiJQT1NUIn0pfSxsb2FkVXNlckFjdGlvbjpmdW5jdGlvbihlKXt2YXIgaT10aGlzLHM9dGhpcy5zdHJlYW07cmV0dXJuKDAsbC5hamF4KSgiL3VzZXJfYWN0aW9ucy8iK2UrIi5qc29uIix7Y2FjaGU6ImZhbHNlIn0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZSYmZS51c2VyX2FjdGlvbil7dmFyIHQ9ZS51c2VyX2FjdGlvbjtpZigoaS5nZXQoInN0cmVhbS5maWx0ZXIiKXx8dC5hY3Rpb25fdHlwZSkhPT10LmFjdGlvbl90eXBlKXJldHVybjtpZighaS5nZXQoInN0cmVhbS5maWx0ZXIiKSYmIWkuaW5BbGxTdHJlYW0odCkpcmV0dXJuO3QudGl0bGU9KDAsdi5lbW9qaVVuZXNjYXBlKShIYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24odC50aXRsZSkpO3ZhciBuPWguZGVmYXVsdC5jb2xsYXBzZVN0cmVhbShbaC5kZWZhdWx0LmNyZWF0ZSh0KV0pO3Muc2V0KCJpdGVtc0xvYWRlZCIscy5nZXQoIml0ZW1zTG9hZGVkIikrMSkscy5nZXQoImNvbnRlbnQiKS5pbnNlcnRBdCgwLG5bMF0pfX0pfSxpbkFsbFN0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gZS5hY3Rpb25fdHlwZT09PWguZGVmYXVsdC5UWVBFUy5wb3N0c3x8ZS5hY3Rpb25fdHlwZT09PWguZGVmYXVsdC5UWVBFUy50b3BpY3N9LG51bUdyb3Vwc1RvRGlzcGxheToyLGZpbHRlcmVkR3JvdXBzOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuZ3JvdXBzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLmF1dG9tYXRpY3x8Im1vZGVyYXRvcnMiPT09ZS5uYW1lfSl9LGRpc3BsYXlHcm91cHM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnNsaWNlKDAsdCk7cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOm59LHNob3dNb3JlR3JvdXBzTGluazpmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aD50fSxzdGF0c0NvdW50Tm9uUE06ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCgwLHIuaXNFbXB0eSkodGhpcy5zdGF0c0V4Y2x1ZGluZ1BtcykpcmV0dXJuIDA7dmFyIG49MDtyZXR1cm4gdGhpcy5zdGF0c0V4Y2x1ZGluZ1Btcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuaW5BbGxTdHJlYW0oZSkmJihuKz1lLmNvdW50KX0pLG59LHN0YXRzRXhjbHVkaW5nUG1zOmZ1bmN0aW9uKCl7cmV0dXJuKDAsci5pc0VtcHR5KSh0aGlzLnN0YXRzKT9bXTp0aGlzLnN0YXRzLnJlamVjdEJ5KCJpc1BNIil9LGZpbmREZXRhaWxzOmZ1bmN0aW9uKG4pe3ZhciBvPXRoaXM7cmV0dXJuIHkuZGVmYXVsdC5nZXRBbmRSZW1vdmUoInVzZXJfIitvLmdldCgidXNlcm5hbWUiKSxmdW5jdGlvbigpe3ZhciBlPW4mJm4uZm9yQ2FyZDtuJiZkZWxldGUgbi5mb3JDYXJkO3ZhciB0PWU/by5nZXQoInVzZXJuYW1lIikrIi9jYXJkLmpzb24iOm8uZ2V0KCJ1c2VybmFtZSIpKyIuanNvbiI7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0KSx7ZGF0YTpufSl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCgwLHIuaXNFbXB0eSkoZS51c2VyLnN0YXRzKXx8KGUudXNlci5zdGF0cz1oZS5ncm91cFN0YXRzKGUudXNlci5zdGF0cy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY291bnQmJihlLmNvdW50PXBhcnNlSW50KGUuY291bnQsMTApKSxmLmRlZmF1bHQuY3JlYXRlKGUpfSkpKSwhKDAsci5pc0VtcHR5KShlLnVzZXIuZ3JvdXBzKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUudXNlci5ncm91cHMubGVuZ3RoO24rKyl7dmFyIGk9Zy5kZWZhdWx0LmNyZWF0ZShlLnVzZXIuZ3JvdXBzW25dKTtpLmdyb3VwX3VzZXI9ZS51c2VyLmdyb3VwX3VzZXJzW25dLHQucHVzaChpKX1lLnVzZXIuZ3JvdXBzPXR9dmFyIHM7cmV0dXJuIGUudXNlci5pbnZpdGVkX2J5JiYoZS51c2VyLmludml0ZWRfYnk9aGUuY3JlYXRlKGUudXNlci5pbnZpdGVkX2J5KSksKDAsci5pc0VtcHR5KShlLnVzZXIuZmVhdHVyZWRfdXNlcl9iYWRnZV9pZHMpfHwocz17fSxtLmRlZmF1bHQuY3JlYXRlRnJvbUpzb24oZSkuZm9yRWFjaChmdW5jdGlvbihlKXtzW2UuZ2V0KCJpZCIpXT1lfSksZS51c2VyLmZlYXR1cmVkX3VzZXJfYmFkZ2VzPWUudXNlci5mZWF0dXJlZF91c2VyX2JhZGdlX2lkcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHNbZV19KSksZS51c2VyLmNhcmRfYmFkZ2UmJihlLnVzZXIuY2FyZF9iYWRnZT1wLmRlZmF1bHQuY3JlYXRlKGUudXNlci5jYXJkX2JhZGdlKSksby5zZXRQcm9wZXJ0aWVzKGUudXNlciksb30pfSxmaW5kU3RhZmZJbmZvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gaGUuY3VycmVudFByb3AoInN0YWZmIik/KDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvc3RhZmYtaW5mby5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKGUpfSk6UC5Qcm9taXNlLnJlc29sdmUobnVsbCl9LHBpY2tBdmF0YXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxsLmFqYXgpKCgwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWVfbG93ZXIrIi9wcmVmZXJlbmNlcy9hdmF0YXIvcGljayIpLHt0eXBlOiJQVVQiLGRhdGE6e3VwbG9hZF9pZDplLHR5cGU6dH19KX0sc2VsZWN0QXZhdGFyOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL2F2YXRhci9zZWxlY3QiKSx7dHlwZToiUFVUIixkYXRhOnt1cmw6ZX19KX0saXNBbGxvd2VkVG9VcGxvYWRBRmlsZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdGFmZnx8MDx0aGlzLnRydXN0X2xldmVsfHwwPERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbIm5ld3VzZXJfbWF4XyIrZSsicyJdfSxjcmVhdGVJbnZpdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGwuYWpheCkoIi9pbnZpdGVzIix7dHlwZToiUE9TVCIsZGF0YTp7ZW1haWw6ZSxncm91cF9uYW1lczp0LGN1c3RvbV9tZXNzYWdlOm59fSl9LGdlbmVyYXRlSW52aXRlTGluazpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsbC5hamF4KSgiL2ludml0ZXMvbGluayIse3R5cGU6IlBPU1QiLGRhdGE6e2VtYWlsOmUsZ3JvdXBfbmFtZXM6dCx0b3BpY19pZDpufX0pfSx1cGRhdGVNdXRlZENhdGVnb3JpZXM6ZnVuY3Rpb24oKXt0aGlzLnNldCgibXV0ZWRDYXRlZ29yaWVzIixrLmRlZmF1bHQuZmluZEJ5SWRzKHRoaXMubXV0ZWRfY2F0ZWdvcnlfaWRzKSl9LHVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRyYWNrZWRDYXRlZ29yaWVzIixrLmRlZmF1bHQuZmluZEJ5SWRzKHRoaXMudHJhY2tlZF9jYXRlZ29yeV9pZHMpKX0sdXBkYXRlV2F0Y2hlZENhdGVnb3JpZXM6ZnVuY3Rpb24oKXt0aGlzLnNldCgid2F0Y2hlZENhdGVnb3JpZXMiLGsuZGVmYXVsdC5maW5kQnlJZHModGhpcy53YXRjaGVkX2NhdGVnb3J5X2lkcykpfSx1cGRhdGVXYXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllczpmdW5jdGlvbigpe3RoaXMuc2V0KCJ3YXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllcyIsay5kZWZhdWx0LmZpbmRCeUlkcyh0aGlzLndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yeV9pZHMpKX0sY2FuRGVsZXRlQWNjb3VudDpmdW5jdGlvbihlKXtyZXR1cm4hRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfc3NvJiZlfSxkZWxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5fZGVsZXRlX2FjY291bnQ/KDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lKyIuanNvbiIpLHt0eXBlOiJERUxFVEUiLGRhdGE6e2NvbnRleHQ6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfX0pOlAuUHJvbWlzZS5yZWplY3QoSTE4bi50KCJ1c2VyLmRlbGV0ZV95b3Vyc2VsZl9ub3RfYWxsb3dlZCIpKX0sdXBkYXRlTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZSkrIi9ub3RpZmljYXRpb25fbGV2ZWwuanNvbiIse3R5cGU6IlBVVCIsZGF0YTp7bm90aWZpY2F0aW9uX2xldmVsOnQsZXhwaXJpbmdfYXQ6ZX19KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9aGUuY3VycmVudCgpO2UmJigibm9ybWFsIj09PXR8fCJtdXRlIj09PXQ/ZS5pZ25vcmVkX3VzZXJzLnJlbW92ZU9iamVjdChuLnVzZXJuYW1lKToiaWdub3JlIj09PXQmJmUuaWdub3JlZF91c2Vycy5hZGRPYmplY3Qobi51c2VybmFtZSkpfSl9LGRpc21pc3NCYW5uZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImRpc21pc3NlZF9iYW5uZXJfa2V5IixlKSwoMCxsLmFqYXgpKCgwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWUrIi5qc29uIikse3R5cGU6IlBVVCIsZGF0YTp7ZGlzbWlzc2VkX2Jhbm5lcl9rZXk6ZX19KX0sY2hlY2tFbWFpbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvZW1haWxzLmpzb24iKSx7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9fSkudGhlbihmdW5jdGlvbihlKXtlJiZ0LnNldFByb3BlcnRpZXMoe2VtYWlsOmUuZW1haWwsc2Vjb25kYXJ5X2VtYWlsczplLnNlY29uZGFyeV9lbWFpbHMsYXNzb2NpYXRlZF9hY2NvdW50czplLmFzc29jaWF0ZWRfYWNjb3VudHN9KX0pfSxzdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIHM9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzZXJ2aWNlOnN0b3JlIik7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvc3VtbWFyeS5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS51c2VyX3N1bW1hcnksbj17fSxpPXt9O3JldHVybiBlLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2UuaWRdPXMuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZSl9KSxwLmRlZmF1bHQuY3JlYXRlRnJvbUpzb24oZSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaVtlLmlkXT1lfSksdC50b3BpY3M9dC50b3BpY19pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfSksdC5yZXBsaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50b3BpYz1uW2UudG9waWNfaWRdLGUudXJsPWUudG9waWMudXJsRm9yUG9zdE51bWJlcihlLnBvc3RfbnVtYmVyKSxlLmNyZWF0ZWRBdD1uZXcgRGF0ZShlLmNyZWF0ZWRfYXQpfSksdC5saW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudG9waWM9bltlLnRvcGljX2lkXSxlLnBvc3RfdXJsPWUudG9waWMudXJsRm9yUG9zdE51bWJlcihlLnBvc3RfbnVtYmVyKX0pLHQuYmFkZ2VzJiYodC5iYWRnZXM9dC5iYWRnZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZS5iYWRnZV9pZF07cmV0dXJuIHQuY291bnQ9ZS5jb3VudCx0fSkpLHQudG9wX2NhdGVnb3JpZXMmJnQudG9wX2NhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnBhcmVudF9jYXRlZ29yeV9pZCYmKGUucGFyZW50Q2F0ZWdvcnk9ay5kZWZhdWx0LmZpbmRCeUlkKGUucGFyZW50X2NhdGVnb3J5X2lkKSl9KSx0fSl9LGNhbk1hbmFnZUdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiFlLmdldCgiYXV0b21hdGljIikmJih0aGlzLmFkbWlufHxlLmdldCgiaXNfZ3JvdXBfb3duZXIiKSl9LGF2YWlsYWJsZVRpdGxlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0aGlzLmdyb3Vwc3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoInRpdGxlIikmJnQucHVzaChlLmdldCgidGl0bGUiKSl9KSwodGhpcy5iYWRnZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZ2V0KCJhbGxvd190aXRsZSIpJiZ0LnB1c2goZS5nZXQoIm5hbWUiKSl9KSxfLnVuaXEodCkuc29ydCgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpFbWJlci5IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZSksaWQ6ZX19KX0sY3VycmVudFRleHRTaXplOmZ1bmN0aW9uKGUsdCl7aWYoJC5jb29raWUoInRleHRfc2l6ZSIpKXt2YXIgbj0kLmNvb2tpZSgidGV4dF9zaXplIikuc3BsaXQoInwiKSxpPXBlKG4sMikscz1pWzBdO2lmKGU8PWlbMV0pcmV0dXJuIHN9cmV0dXJuIHR9LHVwZGF0ZVRleHRTaXplQ29va2llOmZ1bmN0aW9uKGUpe3ZhciB0O2U/KHQ9dGhpcy5nZXQoInVzZXJfb3B0aW9uLnRleHRfc2l6ZV9zZXEiKSwkLmNvb2tpZSgidGV4dF9zaXplIixlKyJ8Iit0LHtwYXRoOiIvIixleHBpcmVzOjk5OTl9KSk6JC5yZW1vdmVDb29raWUoInRleHRfc2l6ZSIse3BhdGg6Ii8iLGV4cGlyZXM6MX0pfSxlbmZvcmNlZFNlY29uZEZhY3RvcjpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5mb3JjZV9zZWNvbmRfZmFjdG9yO3JldHVybiFlJiYoImFsbCI9PT1ufHwic3RhZmYiPT09biYmdCl9fSwiY2FuQmVEZWxldGVkIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiY2FuQmVEZWxldGVkIiksYWUpLG1lKGFlLCJzdHJlYW0iLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzdHJlYW0iKSxhZSksbWUoYWUsInBvc3RzU3RyZWFtIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwicG9zdHNTdHJlYW0iKSxhZSksbWUoYWUsInVzZXJEcmFmdHNTdHJlYW0iLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1c2VyRHJhZnRzU3RyZWFtIiksYWUpLG1lKGFlLCJzZWFyY2hDb250ZXh0IixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic2VhcmNoQ29udGV4dCIpLGFlKSxtZShhZSwiZGlzcGxheU5hbWUiLFtEXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJkaXNwbGF5TmFtZSIpLGFlKSxtZShhZSwicHJvZmlsZUJhY2tncm91bmRVcmwiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJwcm9maWxlQmFja2dyb3VuZFVybCIpLGFlKSxtZShhZSwicGF0aCIsW0xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInBhdGgiKSxhZSksbWUoYWUsInVzZXJBcGlLZXlzIixbQV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXNlckFwaUtleXMiKSxhZSksbWUoYWUsIm11dGVkVG9waWNzUGF0aCIsW05dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsIm11dGVkVG9waWNzUGF0aCIpLGFlKSxtZShhZSwid2F0Y2hpbmdUb3BpY3NQYXRoIixbel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwid2F0Y2hpbmdUb3BpY3NQYXRoIiksYWUpLG1lKGFlLCJ0cmFja2luZ1RvcGljc1BhdGgiLFtVXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ0cmFja2luZ1RvcGljc1BhdGgiKSxhZSksbWUoYWUsInVzZXJuYW1lX2xvd2VyIixbRl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXNlcm5hbWVfbG93ZXIiKSxhZSksbWUoYWUsInRydXN0TGV2ZWwiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ0cnVzdExldmVsIiksYWUpLG1lKGFlLCJwcmV2aW91c1Zpc2l0QXQiLFtSXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJwcmV2aW91c1Zpc2l0QXQiKSxhZSksbWUoYWUsInN1c3BlbmRlZCIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInN1c3BlbmRlZCIpLGFlKSxtZShhZSwic3VzcGVuZGVkRm9yZXZlciIsW0hdLChsZT0obGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic3VzcGVuZGVkRm9yZXZlciIpKT9sZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0pLGFlKSxtZShhZSwic2lsZW5jZWRGb3JldmVyIixbS10sKHVlPSh1ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzaWxlbmNlZEZvcmV2ZXIiKSk/dWUudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB1ZX19KSxhZSksbWUoYWUsInN1c3BlbmRlZFRpbGxEYXRlIixbV10sKGNlPShjZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzdXNwZW5kZWRUaWxsRGF0ZSIpKT9jZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pLGFlKSxtZShhZSwic2lsZW5jZWRUaWxsRGF0ZSIsW1ZdLChkZT0oZGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic2lsZW5jZWRUaWxsRGF0ZSIpKT9kZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGRlfX0pLGFlKSxtZShhZSwiZmlsdGVyZWRHcm91cHMiLFtHXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJmaWx0ZXJlZEdyb3VwcyIpLGFlKSxtZShhZSwiZGlzcGxheUdyb3VwcyIsW1ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImRpc3BsYXlHcm91cHMiKSxhZSksbWUoYWUsInNob3dNb3JlR3JvdXBzTGluayIsW0pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInNob3dNb3JlR3JvdXBzTGluayIpLGFlKSxtZShhZSwic3RhdHNDb3VudE5vblBNIixbWF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic3RhdHNDb3VudE5vblBNIiksYWUpLG1lKGFlLCJzdGF0c0V4Y2x1ZGluZ1BtcyIsW1FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInN0YXRzRXhjbHVkaW5nUG1zIiksYWUpLG1lKGFlLCJ1cGRhdGVNdXRlZENhdGVnb3JpZXMiLFtaXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1cGRhdGVNdXRlZENhdGVnb3JpZXMiKSxhZSksbWUoYWUsInVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzIixbZWVdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzIiksYWUpLG1lKGFlLCJ1cGRhdGVXYXRjaGVkQ2F0ZWdvcmllcyIsW3RlXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1cGRhdGVXYXRjaGVkQ2F0ZWdvcmllcyIpLGFlKSxtZShhZSwidXBkYXRlV2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiLFtuZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXBkYXRlV2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiKSxhZSksbWUoYWUsImNhbkRlbGV0ZUFjY291bnQiLFtpZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiY2FuRGVsZXRlQWNjb3VudCIpLGFlKSxtZShhZSwiYXZhaWxhYmxlVGl0bGVzIixbc2VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImF2YWlsYWJsZVRpdGxlcyIpLGFlKSxtZShhZSwiY3VycmVudFRleHRTaXplIixbb2VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImN1cnJlbnRUZXh0U2l6ZSIpLGFlKSxtZShhZSwiZW5mb3JjZWRTZWNvbmRGYWN0b3IiLFtyZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiZW5mb3JjZWRTZWNvbmRGYWN0b3IiKSxhZSksYWUpKTtoZS5yZW9wZW5DbGFzcyh1LmRlZmF1bHQse2ZpbmRCeVVzZXJuYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGhlLmNyZWF0ZSh7dXNlcm5hbWU6ZX0pLmZpbmREZXRhaWxzKHQpfSxjcmVhdGVDdXJyZW50OmZ1bmN0aW9uKCl7dmFyIGUsdD15LmRlZmF1bHQuZ2V0KCJjdXJyZW50VXNlciIpO3JldHVybiB0JiZ0LnByaW1hcnlfZ3JvdXBfaWQmJigoZT10Lmdyb3Vwcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5wcmltYXJ5X2dyb3VwX2lkfSkpJiYodC5wcmltYXJ5X2dyb3VwX25hbWU9ZS5uYW1lKSksdD9EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6c3RvcmUiKS5jcmVhdGVSZWNvcmQoInVzZXIiLHQpOm51bGx9LHJlc2V0Q3VycmVudDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSxEaXNjb3Vyc2UuY3VycmVudFVzZXI9ZX0sY2hlY2tVc2VybmFtZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSgiY2hlY2tfdXNlcm5hbWUiKSx7ZGF0YTp7dXNlcm5hbWU6ZSxlbWFpbDp0LGZvcl91c2VyX2lkOm59fSl9LGdyb3VwU3RhdHM6ZnVuY3Rpb24oZSl7dmFyIHQ9Zi5kZWZhdWx0LmNyZWF0ZSh7Y291bnQ6MCxhY3Rpb25fdHlwZTpoLmRlZmF1bHQuVFlQRVMucmVwbGllc30pO2UuZmlsdGVyQnkoImlzUmVzcG9uc2UiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb3VudCIsdC5nZXQoImNvdW50IikrZS5nZXQoImNvdW50IikpfSk7dmFyIG49RW1iZXIuQSgpO24ucHVzaE9iamVjdHMoZS5yZWplY3RCeSgiaXNSZXNwb25zZSIpKTt2YXIgaT0wO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmFjdGlvbl90eXBlIT09aC5kZWZhdWx0LlRZUEVTLnRvcGljcyYmZS5hY3Rpb25fdHlwZSE9PWguZGVmYXVsdC5UWVBFUy5wb3N0c3x8KGk9dCsxKX0pLDA8dC5jb3VudCYmbi5pbnNlcnRBdChpLHQpLG59LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSgpLHtkYXRhOntuYW1lOmUuYWNjb3VudE5hbWUsZW1haWw6ZS5hY2NvdW50RW1haWwscGFzc3dvcmQ6ZS5hY2NvdW50UGFzc3dvcmQsdXNlcm5hbWU6ZS5hY2NvdW50VXNlcm5hbWUscGFzc3dvcmRfY29uZmlybWF0aW9uOmUuYWNjb3VudFBhc3N3b3JkQ29uZmlybSxjaGFsbGVuZ2U6ZS5hY2NvdW50Q2hhbGxlbmdlLHVzZXJfZmllbGRzOmUudXNlckZpZWxkcyx0aW1lem9uZTptb21lbnQudHouZ3Vlc3MoKX0sdHlwZToiUE9TVCJ9KX19KTt2YXIgYmU9ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiVXNlciIse2dldDpmdW5jdGlvbigpe3JldHVybiBiZXx8KCgwLGouZGVmYXVsdCkoIkltcG9ydCB0aGUgVXNlciBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIFVzZXIiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjYuMCJ9KSxiZT0hMCksaGV9fSksZS5kZWZhdWx0PWhlfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hYm91dC1wYWdlLXVzZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItaW5mbyIsImRpc2NvdXJzZS9oZWxwZXJzL3VzZXItYXZhdGFyIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3VzZXJzVGVtcGxhdGVzOigwLHIuY29tcHV0ZWQpKCJ1c2Vycy5bXSIsZnVuY3Rpb24oKXtyZXR1cm4odGhpcy51c2Vyc3x8W10pLm1hcChmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5uYW1lJiYoMCxzLm5vcm1hbGl6ZSkoZS51c2VybmFtZSkhPT0oMCxzLm5vcm1hbGl6ZSkoZS5uYW1lKSYmKHQ9ZS5uYW1lKSx7dXNlcm5hbWU6ZS51c2VybmFtZSxuYW1lOnQsdXNlclBhdGg6KDAsbi51c2VyUGF0aCkoZS51c2VybmFtZSksYXZhdGFyOigwLG8ucmVuZGVyQXZhdGFyKShlLHtpbWFnZVNpemU6ImxhcmdlIn0pLHRpdGxlOmUudGl0bGV8fCIiLGZvcm1hdGVkVXNlcm5hbWU6KDAsaS5mb3JtYXRVc2VybmFtZSkoZS51c2VybmFtZSl9fSl9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hY3RpdmF0aW9uLWNvbnRyb2xzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOiJhY3RpdmF0aW9uLWNvbnRyb2xzIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hZGQtY2F0ZWdvcnktdGFnLWNsYXNzZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCxpLm9ic2VydmVzKSgiY2F0ZWdvcnkuZnVsbFNsdWciLCJ0YWdzIikscj1vPXtfc2x1ZzpudWxsLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZWZyZXNoQ2xhc3MoKX0sX3VwZGF0ZUNsYXNzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuO3RoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoZT10aGlzLmdldCgiY2F0ZWdvcnkuZnVsbFNsdWciKSx0PXRoaXMudGFncyx0aGlzLl9yZW1vdmVDbGFzcygpLG49W10sZSYmbi5wdXNoKCJjYXRlZ29yeS0iK2UpLHQmJnQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5wdXNoKCJ0YWctIitlKX0pLDA8bi5sZW5ndGgmJiQoImJvZHkiKS5hZGRDbGFzcyhuLmpvaW4oIiAiKSkpfSxyZWZyZXNoQ2xhc3M6ZnVuY3Rpb24oKXsoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX3VwZGF0ZUNsYXNzKX0sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKCl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQubWF0Y2goL1xiKD86Y2F0ZWdvcnl8dGFnKS1cUysvZyl8fFtdKS5qb2luKCIgIil9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3JlbW92ZUNsYXNzKCl9fSxhPSJyZWZyZXNoQ2xhc3MiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJyZWZyZXNoQ2xhc3MiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdXRoLXRva2VuLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImF1dGgtdG9rZW4tZHJvcGRvd24iXSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJ3cmVuY2giLHNob3dGdWxsVGl0bGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm5be2lkOiJub3RZb3UiLGljb246InVzZXItdGltZXMiLG5hbWU6STE4bi50KCJ1c2VyLmF1dGhfdG9rZW5zLm5vdF95b3UiKSxkZXNjcmlwdGlvbjoiIn0se2lkOiJsb2dPdXQiLGljb246InNpZ24tb3V0LWFsdCIsbmFtZTpJMThuLnQoInVzZXIubG9nX291dCIpLGRlc2NyaXB0aW9uOiIifV19KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJub3RZb3UiOnRoaXMuc2hvd1Rva2VuKHRoaXMudG9rZW4pO2JyZWFrO2Nhc2UibG9nT3V0Ijp0aGlzLnJldm9rZUF1dGhUb2tlbih0aGlzLnRva2VuKX19fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdmF0YXItZmxhaXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5vYnNlcnZlcykoImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIpLG89cz17d2lkZ2V0OiJhdmF0YXItZmxhaXIiLF9yZXJlbmRlcjpmdW5jdGlvbigpe3RoaXMucXVldWVSZXJlbmRlcigpfSxidWlsZEFyZ3M6ZnVuY3Rpb24oKXtyZXR1cm57cHJpbWFyeV9ncm91cF9mbGFpcl91cmw6dGhpcy5mbGFpclVSTCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOnRoaXMuZmxhaXJCZ0NvbG9yLHByaW1hcnlfZ3JvdXBfZmxhaXJfY29sb3I6dGhpcy5mbGFpckNvbG9yLHByaW1hcnlfZ3JvdXBfbmFtZTp0aGlzLmdyb3VwTmFtZX19fSxyPSJfcmVyZW5kZXIiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJfcmVyZW5kZXIiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdmF0YXItdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHM9KDAsdC5kZWZhdWx0KSgidXNlcl9pZCIpLHI9bz17dHlwZToiYXZhdGFyIix0YWdOYW1lOiJzcGFuIixpbWFnZUlzTm90QVNxdWFyZTohMSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7aW1hZ2VJc05vdEFTcXVhcmU6ZS53aWR0aCE9PWUuaGVpZ2h0LHVwbG9hZGVkQXZhdGFyVGVtcGxhdGU6ZS51cmwsdXBsb2FkZWRBdmF0YXJJZDplLmlkfSksdGhpcy5kb25lKCl9LGRhdGE6ZnVuY3Rpb24oZSl7cmV0dXJue3VzZXJfaWQ6ZX19fSxhPSJkYXRhIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZGF0YSIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhY2t1cC1jb2RlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZm9ybWF0dGVkQmFja3VwQ29kZXMiKSxvPSgwLHQuZGVmYXVsdCkoImJhY2t1cENvZGVzIiksaShyPXtjbGFzc05hbWVzOlsiYmFja3VwLWNvZGVzIl0sYmFja3VwQ29kZXM6bnVsbCxjbGljazpmdW5jdGlvbihlKXsiYmFja3VwQ29kZXMiPT09ZS50YXJnZXQuaWQmJnRoaXMuX3NlbGVjdEFsbEJhY2t1cENvZGVzKCl9LGRpZFJlbmRlcjpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiI2JhY2t1cENvZGVzIik7ZSYmKGUuc3R5bGUuaGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KX0sYmFzZTY0QmFja3VwQ29kZTpmdW5jdGlvbihlKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihlLHQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrdCl9KSl9LGZvcm1hdHRlZEJhY2t1cENvZGVzOmZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuam9pbigiXG4iKS50cmltKCk6bnVsbH0sYWN0aW9uczp7Y29weVRvQ2xpcGJvYXJkOmZ1bmN0aW9uKCl7dGhpcy5fc2VsZWN0QWxsQmFja3VwQ29kZXMoKSx0aGlzLmNvcHlCYWNrdXBDb2RlKGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IikpfX0sX3NlbGVjdEFsbEJhY2t1cENvZGVzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYWNrdXBDb2RlcyIpO2UuZm9jdXMoKSxlLnNldFNlbGVjdGlvblJhbmdlKDAsdGhpcy5mb3JtYXR0ZWRCYWNrdXBDb2Rlcy5sZW5ndGgpfX0sImJhc2U2NEJhY2t1cENvZGUiLFtzXSwoYT0oYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImJhc2U2NEJhY2t1cENvZGUiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSksciksaShyLCJmb3JtYXR0ZWRCYWNrdXBDb2RlcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiZm9ybWF0dGVkQmFja3VwQ29kZXMiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhY2t1cC11cGxvYWRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJ1cGxvYWRpbmciLCJ1cGxvYWRQcm9ncmVzcyIpLGw9e3RhZ05hbWU6InNwYW4iLHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT9JMThuLnQoImFkbWluLmJhY2t1cHMudXBsb2FkLnVwbG9hZGluZ19wcm9ncmVzcyIse3Byb2dyZXNzOnR9KTpJMThuLnQoImFkbWluLmJhY2t1cHMudXBsb2FkLmxhYmVsIil9LHZhbGlkYXRlVXBsb2FkZWRGaWxlc09wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57c2tpcFZhbGlkYXRpb246ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKCl7dGhpcy5kb25lKCl9LGNhbGN1bGF0ZVVwbG9hZFVybDpmdW5jdGlvbigpe3JldHVybiIifSx1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBVVCIsZGF0YVR5cGU6InhtbCIsYXV0b1VwbG9hZDohMSxtdWx0aXBhcnQ6ITF9fSxfaW5pdDooMCxyLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIsZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub24oImZpbGV1cGxvYWRhZGQiLGZ1bmN0aW9uKGUsdCl7KDAsaS5hamF4KSgiL2FkbWluL2JhY2t1cHMvdXBsb2FkX3VybCIse2RhdGE6e2ZpbGVuYW1lOnQuZmlsZXNbMF0ubmFtZX19KS50aGVuKGZ1bmN0aW9uKGUpe3QudXJsPWUudXJsLHQuc3VibWl0KCl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX0pfSl9LHU9bCxjPSJ1cGxvYWRCdXR0b25UZXh0IixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXBsb2FkQnV0dG9uVGV4dCIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhZGdlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiYmFkZ2UuZGVzY3JpcHRpb24iKSxvPXt0YWdOYW1lOiJzcGFuIixjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWJhZGdlIiwiYmFkZ2UuYmFkZ2VUeXBlQ2xhc3NOYW1lIiwiYmFkZ2UuZW5hYmxlZDo6ZGlzYWJsZWQiXSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gJCgiPGRpdj4iK2UrIjwvZGl2PiIpLnRleHQoKX0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLWJhZGdlLW5hbWUiLCJ0aXRsZSJdLCJkYXRhLWJhZGdlLW5hbWUiOigwLG4uYWxpYXMpKCJiYWRnZS5uYW1lIil9LHI9byxhPSJ0aXRsZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRpdGxlIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvYmFkZ2UtY2FyZCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdGV4dCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJiYWRnZS51cmwiLCJmaWx0ZXJVc2VyIiwidXNlcm5hbWUiKSxyPSgwLHQuZGVmYXVsdCkoImNvdW50IiwiYmFkZ2UuZ3JhbnRfY291bnQiKSxhPSgwLHQuZGVmYXVsdCkoInNpemUiKSxzKGw9e3NpemU6Im1lZGl1bSIsY2xhc3NOYW1lQmluZGluZ3M6WyI6YmFkZ2UtY2FyZCIsInNpemUiLCJiYWRnZS5zbHVnIl0sdXJsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD9lKyI/dXNlcm5hbWU9IituOmV9LGRpc3BsYXlDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lP3Q6MTxlP2U6dm9pZCAwfSxzdW1tYXJ5OmZ1bmN0aW9uKGUpe2lmKCJsYXJnZSI9PT1lKXt2YXIgdD10aGlzLmdldCgiYmFkZ2UubG9uZ19kZXNjcmlwdGlvbiIpO2lmKCFfLmlzRW1wdHkodCkpcmV0dXJuKDAsaS5lbW9qaVVuZXNjYXBlKSgoMCxpLnNhbml0aXplKSh0KSl9cmV0dXJuKDAsaS5zYW5pdGl6ZSkodGhpcy5nZXQoImJhZGdlLmRlc2NyaXB0aW9uIikpfX0sInVybCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXJsIiksbCkscyhsLCJkaXNwbGF5Q291bnQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImRpc3BsYXlDb3VudCIpLGwpLHMobCwic3VtbWFyeSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwic3VtbWFyeSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvYmFkZ2Utc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHU9RW1iZXIubWFrZUFycmF5O2UuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLG4uZGVmYXVsdCkoInBsYWNlaG9sZGVyS2V5Iikscj0oMCxuLm9ic2VydmVzKSgiYmFkZ2VOYW1lcyIpLGE9KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxzKGw9e3BsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udChlKToiIn0sX3VwZGF0ZTpmdW5jdGlvbigpeyJ0cnVlIj09PXRoaXMuY2FuUmVjZWl2ZVVwZGF0ZXMmJnRoaXMuX2luaXRpYWxpemVBdXRvY29tcGxldGUoe3VwZGF0ZURhdGE6ITB9KX0sX2luaXRpYWxpemVBdXRvY29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIG49dm9pZCAwOyQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikpLmF1dG9jb21wbGV0ZSh7YWxsb3dBbnk6ITEsaXRlbXM6dSh0aGlzLmJhZGdlTmFtZXMpLHNpbmdsZTp0aGlzLnNpbmdsZSx1cGRhdGVEYXRhOiEoIWV8fCFlLnVwZGF0ZURhdGEpJiZlLnVwZGF0ZURhdGEsdGVtcGxhdGU6KDAsaS5maW5kUmF3VGVtcGxhdGUpKCJiYWRnZS1zZWxlY3Rvci1hdXRvY29tcGxldGUiKSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe249ZSx0aGlzLnNldCgiYmFkZ2VOYW1lcyIsZS5qb2luKCIsIikpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lfSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmJhZGdlRmluZGVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4/ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW4uYW55KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dC5uYW1lfSl9KTplfSl9fSl9fSwicGxhY2Vob2xkZXIiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInBsYWNlaG9sZGVyIiksbCkscyhsLCJfdXBkYXRlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfdXBkYXRlIiksbCkscyhsLCJfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2luaXRpYWxpemVBdXRvY29tcGxldGUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhZGdlLXRpdGxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInNlbGVjdGFibGVVc2VyQmFkZ2VzIiwic2VsZWN0ZWRVc2VyQmFkZ2VJZCIpLHI9bz17Y2xhc3NOYW1lczpbImJhZGdlLXRpdGxlIl0sc2F2ZWQ6ITEsc2F2aW5nOiExLHNlbGVjdGVkVXNlckJhZGdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZmluZEJ5KCJpZCIscGFyc2VJbnQodCwxMCkpfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe3NhdmVkOiExLHNhdmluZzohMH0pO3ZhciB0PXRoaXMuc2VsZWN0ZWRVc2VyQmFkZ2VJZHx8MDsoMCxpLmFqYXgpKHRoaXMuY3VycmVudFVzZXIucGF0aCsiL3ByZWZlcmVuY2VzL2JhZGdlX3RpdGxlIix7dHlwZToiUFVUIixkYXRhOnt1c2VyX2JhZGdlX2lkOnR9fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7c2F2ZWQ6ITAsc2F2aW5nOiExfSksZS5jdXJyZW50VXNlci5zZXQoInRpdGxlIixlLmdldCgic2VsZWN0ZWRVc2VyQmFkZ2UuYmFkZ2UubmFtZSIpKX0sZnVuY3Rpb24oKXtib290Ym94LmFsZXJ0KEkxOG4udCgiZ2VuZXJpY19lcnJvciIpKX0pfX19LGE9InNlbGVjdGVkVXNlckJhZGdlIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywic2VsZWN0ZWRVc2VyQmFkZ2UiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInRvcGljTGlzdC5sb2FkZWQiKSxyPSgwLHQub2JzZXJ2ZXMpKCJ0b3BpY0xpc3QuW10iKSxhPSgwLHQuZGVmYXVsdCkoInRvcGljcyIpLHMobD17bG9hZGluZ01vcmU6KDAsbi5hbGlhcykoInRvcGljTGlzdC5sb2FkaW5nTW9yZSIpLGxvYWRpbmc6KDAsbi5ub3QpKCJsb2FkZWQiKSxsb2FkZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljTGlzdDtyZXR1cm4hZXx8ZS5nZXQoImxvYWRlZCIpfSxfdG9waWNMaXN0Q2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuX2luaXRGcm9tVG9waWNMaXN0KHRoaXMudG9waWNMaXN0KX0sX2luaXRGcm9tVG9waWNMaXN0OmZ1bmN0aW9uKGUpe251bGwhPT1lJiYodGhpcy5zZXQoInRvcGljcyIsZS5nZXQoInRvcGljcyIpKSx0aGlzLnJlcmVuZGVyKCkpfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMudG9waWNMaXN0O2UmJnRoaXMuX2luaXRGcm9tVG9waWNMaXN0KGUpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDt2b2lkIDAhPT1lLnVucmVhZF9ieV9ncm91cF9tZW1iZXImJih0PSIvcHJpdmF0ZS1tZXNzYWdlcy91bnJlYWQtaW5kaWNhdG9yLyIrZS5pZCxuLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKHQsZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmluZGljYXRvci10b3BpYy0iK2UudG9waWNfaWQpLmNsYXNzTGlzdDtlLnNob3dfaW5kaWNhdG9yP3QucmVtb3ZlKCJyZWFkIik6dC5hZGQoInJlYWQiKX0pKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0O3ZvaWQgMCE9PWUudW5yZWFkX2J5X2dyb3VwX21lbWJlciYmKHQ9Ii9wcml2YXRlLW1lc3NhZ2VzL3VucmVhZC1pbmRpY2F0b3IvIitlLmlkLG4ubWVzc2FnZUJ1cy51bnN1YnNjcmliZSh0KSl9KX0sc2hvd1VucmVhZEluZGljYXRvcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lLnVucmVhZF9ieV9ncm91cF9tZW1iZXJ9KX0sY2xpY2s6ZnVuY3Rpb24oZSl7aWYodGhpcy5zaXRlLm1vYmlsZVZpZXcpe3ZhciB0PSQoZS50YXJnZXQpO2lmKHQuY2xvc2VzdCgiLnBvc3RzLW1hcCIpLmxlbmd0aCl7dmFyIG49dC5jbG9zZXN0KCJ0ciIpLmF0dHIoImRhdGEtdG9waWMtaWQiKTtpZihuKXtpZigiQSIhPT10LnByb3AoInRhZ05hbWUiKSl7dmFyIGk9dC5maW5kKCJhIik7aWYoaS5sZW5ndGgpdD1pO2Vsc2V7aWYoIShpPXQuY2xvc2VzdCgiYSIpKS5sZW5ndGgpcmV0dXJuITE7dD1pfX12YXIgcz10aGlzLnRvcGljcy5maW5kQnkoImlkIixwYXJzZUludChuLDEwKSk7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtZW50cmFuY2U6c2hvdyIse3RvcGljOnMscG9zaXRpb246dC5vZmZzZXQoKX0pfXJldHVybiExfX19fSwibG9hZGVkIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJsb2FkZWQiKSxsKSxzKGwsIl90b3BpY0xpc3RDaGFuZ2VkIixbcl0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfdG9waWNMaXN0Q2hhbmdlZCIpKT91LnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KSxsKSxzKGwsInNob3dVbnJlYWRJbmRpY2F0b3IiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNob3dVbnJlYWRJbmRpY2F0b3IiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JyZWFkLWNydW1icyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHIsYSxsLHUsYyxkLHAsbSxmPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIGgoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfWZ1bmN0aW9uIGIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcmllcyIpLHI9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkuYW5jZXN0b3JzIiwiZmlsdGVyZWRDYXRlZ29yaWVzIiwibm9TdWJjYXRlZ29yaWVzIiksYT0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeSIpLGw9KDAsaS5kZWZhdWx0KSgicGFyZW50Q2F0ZWdvcmllcyIpLHU9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxjPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiKSxkPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiKSxwPSgwLGkuZGVmYXVsdCkoImZpcnN0Q2F0ZWdvcnkiLCJoaWRlU3ViY2F0ZWdvcmllcyIpLGIobT17Y2xhc3NOYW1lQmluZGluZ3M6WyJoaWRkZW46aGlkZGVuIiwiOmNhdGVnb3J5LWJyZWFkY3J1bWIiXSx0YWdOYW1lOiJvbCIsZmlsdGVyZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc3x8ZS5pZCE9PXQuc2l0ZS51bmNhdGVnb3JpemVkX2NhdGVnb3J5X2lkfSl9LGNhdGVnb3J5QnJlYWRjcnVtYnM6ZnVuY3Rpb24oZSxvLHIpe3ZhciB0PVt2b2lkIDBdLmNvbmNhdChoKGU9ZXx8W10pKSxuPVtdLmNvbmNhdChoKGUpLFt2b2lkIDBdKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm5bZSxuW3RdXX0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD1mKGUsMiksbj10WzBdLGk9dFsxXSxzPW8uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicGFyZW50Q2F0ZWdvcnkuaWQiKT09PShuJiZuLmlkKX0pO3JldHVybntjYXRlZ29yeTppLHBhcmVudENhdGVnb3J5Om4sb3B0aW9uczpzLGlzU3ViY2F0ZWdvcnk6ISFuLG5vU3ViY2F0ZWdvcmllczohaSYmcixoYXNPcHRpb25zOjAhPT1zLmxlbmd0aH19KX0scGFyZW50Q2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5kZWZhdWx0KSgiVGhlIHBhcmVudENhdGVnb3J5IHByb3BlcnR5IG9mIHRoZSBicmVhZC1jcnVtYnMgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQiKSxlJiZlLnBhcmVudENhdGVnb3J5fSxwYXJlbnRDYXRlZ29yaWVzOigwLHQuZmlsdGVyKSgiY2F0ZWdvcmllcyIsZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5kZWZhdWx0KSgiVGhlIHBhcmVudENhdGVnb3JpZXMgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLCEoZS5pZD09PXRoaXMuc2l0ZS5nZXQoInVuY2F0ZWdvcml6ZWRfY2F0ZWdvcnlfaWQiKSYmIXRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzKSYmIWUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpfSkscGFyZW50Q2F0ZWdvcmllc1NvcnRlZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgcGFyZW50Q2F0ZWdvcmllc1NvcnRlZCBwcm9wZXJ0eSBvZiB0aGUgYnJlYWQtY3J1bWJzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIiksdGhpcy5zaXRlU2V0dGluZ3MuZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zP2U6ZS5zb3J0QnkoInRvdGFsVG9waWNDb3VudCIpLnJldmVyc2UoKX0saGlkZGVuOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlldyYmIWV9LGZpcnN0Q2F0ZWdvcnk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgZmlyc3RDYXRlZ29yeSBwcm9wZXJ0eSBvZiB0aGUgYnJlYWQtY3J1bWJzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIiksdHx8ZX0sc2Vjb25kQ2F0ZWdvcnk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgc2Vjb25kQ2F0ZWdvcnkgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLHQmJmV9LGNoaWxkQ2F0ZWdvcmllczpmdW5jdGlvbih0LGUpe3JldHVybigwLHMuZGVmYXVsdCkoIlRoZSBjaGlsZENhdGVnb3JpZXMgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLCFlJiZ0P3RoaXMuY2F0ZWdvcmllcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpPT09dH0pOltdfX0sImZpbHRlcmVkQ2F0ZWdvcmllcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiZmlsdGVyZWRDYXRlZ29yaWVzIiksbSksYihtLCJjYXRlZ29yeUJyZWFkY3J1bWJzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYXRlZ29yeUJyZWFkY3J1bWJzIiksbSksYihtLCJwYXJlbnRDYXRlZ29yeSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwicGFyZW50Q2F0ZWdvcnkiKSxtKSxiKG0sInBhcmVudENhdGVnb3JpZXNTb3J0ZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInBhcmVudENhdGVnb3JpZXNTb3J0ZWQiKSxtKSxiKG0sImhpZGRlbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiaGlkZGVuIiksbSksYihtLCJmaXJzdENhdGVnb3J5IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJmaXJzdENhdGVnb3J5IiksbSksYihtLCJzZWNvbmRDYXRlZ29yeSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwic2Vjb25kQ2F0ZWdvcnkiKSxtKSxiKG0sImNoaWxkQ2F0ZWdvcmllcyIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiY2hpbGRDYXRlZ29yaWVzIiksbSksbSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9idWxrLXNlbGVjdC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImJ1bGstc2VsZWN0LWNvbnRhaW5lciJdLGFjdGlvbnM6e3Nob3dCdWxrQWN0aW9uczpmdW5jdGlvbigpe3ZhciBlPSgwLG4uZGVmYXVsdCkoInRvcGljLWJ1bGstYWN0aW9ucyIse21vZGVsOnt0b3BpY3M6dGhpcy5zZWxlY3RlZCxjYXRlZ29yeTp0aGlzLmNhdGVnb3J5fSx0aXRsZToidG9waWNzLmJ1bGsuYWN0aW9ucyJ9KSx0PXRoaXMuYWN0aW9uO3QmJmUuc2V0KCJyZWZyZXNoQ2xvc3VyZSIsZnVuY3Rpb24oKXtyZXR1cm4gdCgpfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiY2F0ZWdvcmllcy1hbmQtbGF0ZXN0Il19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImNhdGVnb3JpZXMtYW5kLXRvcCJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInRvcGljLnBpbm5lZCIsInRvcGljLmNsb3NlZCIsInRvcGljLmFyY2hpdmVkIiksbz1zPXt0YWdOYW1lOiJsaSIsdG9waWNTdGF0dXNJY29uOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT8idGh1bWJ0YWNrIjp0fHxuPyJsb2NrIjoiZmFyLWZpbGUtYWx0In19LHI9InRvcGljU3RhdHVzSWNvbiIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInRvcGljU3RhdHVzSWNvbiIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtd2l0aC10b3BpY3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcmllcy5bXS51cGxvYWRlZF9sb2dvLnVybCIpLHI9bz17dGFnTmFtZToic2VjdGlvbiIsY2xhc3NOYW1lQmluZGluZ3M6WyI6Y2F0ZWdvcnktYm94ZXMtd2l0aC10b3BpY3MiLCJhbnlMb2dvczp3aXRoLWxvZ29zOm5vLWxvZ29zIl0sYW55TG9nb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYXRlZ29yaWVzLmFueShmdW5jdGlvbihlKXtyZXR1cm4hKDAsbi5pc0VtcHR5KShlLmdldCgidXBsb2FkZWRfbG9nby51cmwiKSl9KX19LGE9ImFueUxvZ29zIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiYW55TG9nb3MiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLWJveGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdLnVwbG9hZGVkX2xvZ28udXJsIikscj0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdLnN1YmNhdGVnb3JpZXMiKSxzKGE9e3RhZ05hbWU6InNlY3Rpb24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiOmNhdGVnb3J5LWJveGVzIiwiYW55TG9nb3M6d2l0aC1sb2dvczpuby1sb2dvcyIsImhhc1N1YmNhdGVnb3JpZXM6d2l0aC1zdWJjYXRlZ29yaWVzIl0sYW55TG9nb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYXRlZ29yaWVzLmFueShmdW5jdGlvbihlKXtyZXR1cm4hKDAsbi5pc0VtcHR5KShlLmdldCgidXBsb2FkZWRfbG9nby51cmwiKSl9KX0saGFzU3ViY2F0ZWdvcmllczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhdGVnb3JpZXMuYW55KGZ1bmN0aW9uKGUpe3JldHVybiEoMCxuLmlzRW1wdHkpKGUuZ2V0KCJzdWJjYXRlZ29yaWVzIikpfSl9fSwiYW55TG9nb3MiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImFueUxvZ29zIiksYSkscyhhLCJoYXNTdWJjYXRlZ29yaWVzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJoYXNTdWJjYXRlZ29yaWVzIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLW9ubHkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy10b3BpYy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKCl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3J5LXRpdGxlLWJlZm9yZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1saW5rIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJoMyJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcnktdW5yZWFkIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJzcGFuIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jZG4taW1nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL3RlbXBsYXRlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJzcmMiKSxyPSgwLHQuZGVmYXVsdCkoIndpZHRoIiwiaGVpZ2h0IikscyhhPXt0YWdOYW1lOiIiLGNkblNyYzpmdW5jdGlvbihlKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTFdpdGhDRE4oZSl9LHN0eWxlOmZ1bmN0aW9uKGUsdCl7aWYoZSYmdClyZXR1cm4oMCxpLmh0bWxTYWZlKSgiLS1hc3BlY3QtcmF0aW86ICIrZS90KyI7Iil9fSwiY2RuU3JjIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJjZG5TcmMiKSxhKSxzKGEsInN0eWxlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJzdHlsZSIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2hvb3NlLW1lc3NhZ2UiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLG4saSxzLHQsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHU9KDAsYS5vYnNlcnZlcykoIm1lc3NhZ2VUaXRsZSIpLGM9KDAsYS5vYnNlcnZlcykoIm1lc3NhZ2VzIiksbChkPXtsb2FkaW5nOm51bGwsbm9SZXN1bHRzOm51bGwsbWVzc2FnZXM6bnVsbCxtZXNzYWdlVGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLG5vUmVzdWx0czohMCxzZWxlY3RlZFRvcGljSWQ6bnVsbH0pLHRoaXMuc2VhcmNoKHRoaXMubWVzc2FnZVRpdGxlKX0sbWVzc2FnZXNDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tZXNzYWdlcztlJiZ0aGlzLnNldCgibm9SZXN1bHRzIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHNlYXJjaDooMCxvLmRlZmF1bHQpKGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmN1cnJlbnRUb3BpY0lkOygwLGkuaXNFbXB0eSkoZSk/dGhpcy5zZXRQcm9wZXJ0aWVzKHttZXNzYWdlczpudWxsLGxvYWRpbmc6ITF9KTooMCxyLnNlYXJjaEZvclRlcm0pKGUse3R5cGVGaWx0ZXI6InByaXZhdGVfbWVzc2FnZXMiLHNlYXJjaEZvcklkOiEwLHJlc3RyaWN0VG9BcmNoZXR5cGU6InByaXZhdGVfbWVzc2FnZSJ9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJmUucG9zdHMmJjA8ZS5wb3N0cy5sZW5ndGg/dC5zZXQoIm1lc3NhZ2VzIixlLnBvc3RzLm1hcEJ5KCJ0b3BpYyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImlkIikhPT1ufSkpOnQuc2V0UHJvcGVydGllcyh7bWVzc2FnZXM6bnVsbCxsb2FkaW5nOiExfSl9KX0sMzAwKSxhY3Rpb25zOntjaG9vc2VNZXNzYWdlOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLG4uZ2V0KShlLCJpZCIpO3JldHVybiB0aGlzLnNldCgic2VsZWN0ZWRUb3BpY0lkIix0KSwoMCxzLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQoIiNjaG9vc2UtbWVzc2FnZS0iK3QpLnByb3AoImNoZWNrZWQiLCJ0cnVlIil9KSwhMX19fSwibWVzc2FnZVRpdGxlQ2hhbmdlZCIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwibWVzc2FnZVRpdGxlQ2hhbmdlZCIpLGQpLGwoZCwibWVzc2FnZXNDaGFuZ2VkIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJtZXNzYWdlc0NoYW5nZWQiKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nob29zZS10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvc2VhcmNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxvLHQsbixpLHIscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHMub2JzZXJ2ZXMpKCJ0b3BpY1RpdGxlIiksdT0oMCxzLmRlZmF1bHQpKCJsYWJlbCIpLGM9KDAscy5vYnNlcnZlcykoInRvcGljcyIpLGEoZD17bG9hZGluZzpudWxsLG5vUmVzdWx0czpudWxsLHRvcGljczpudWxsLHNlbGVjdGVkVG9waWNJZDpudWxsLGN1cnJlbnRUb3BpY0lkOm51bGwsYWRkaXRpb25hbEZpbHRlcnM6bnVsbCx0b3BpY1RpdGxlOm51bGwsbGFiZWw6bnVsbCxsb2FkT25Jbml0OiExLHRvcGljQ2hhbmdlZENhbGxiYWNrOm51bGwsaW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYWRkaXRpb25hbEZpbHRlcnM9dGhpcy5hZGRpdGlvbmFsRmlsdGVyc3x8IiIsdGhpcy50b3BpY1RpdGxlPXRoaXMudG9waWNUaXRsZXx8IiIsdGhpcy5sb2FkT25Jbml0JiYhKDAsby5pc0VtcHR5KSh0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzKSYmKDAsci5zZWFyY2hGb3JUZXJtKSh0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzLHt9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJmUucG9zdHMmJjA8ZS5wb3N0cy5sZW5ndGg/dC5zZXQoInRvcGljcyIsZS5wb3N0cy5tYXBCeSgidG9waWMiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LmN1cnJlbnRUb3BpY0lkfSkpOnQuc2V0UHJvcGVydGllcyh7dG9waWNzOm51bGwsbG9hZGluZzohMX0pfSl9LHRvcGljVGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLG5vUmVzdWx0czohMCxzZWxlY3RlZFRvcGljSWQ6bnVsbH0pLHRoaXMuc2VhcmNoKHRoaXMudG9waWNUaXRsZSl9LGxhYmVsVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gZXx8ImNob29zZV90b3BpYy50aXRsZS5zZWFyY2gifSx0b3BpY3NDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy50b3BpY3MmJnRoaXMuc2V0KCJub1Jlc3VsdHMiLDA9PT10aGlzLnRvcGljcy5sZW5ndGgpLHRoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHNlYXJjaDooMCxpLmRlZmF1bHQpKGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXRoaXM7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fCgoMCxvLmlzRW1wdHkpKGUpJiYoMCxvLmlzRW1wdHkpKHRoaXMuYWRkaXRpb25hbEZpbHRlcnMpP3RoaXMuc2V0UHJvcGVydGllcyh7dG9waWNzOm51bGwsbG9hZGluZzohMX0pOih0PXRoaXMuY3VycmVudFRvcGljSWQsbj1lKyIgIit0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzLGk9e30sKDAsby5pc0VtcHR5KShlKXx8KGkudHlwZUZpbHRlcj0idG9waWMiLGkucmVzdHJpY3RUb0FyY2hldHlwZT0icmVndWxhciIsaS5zZWFyY2hGb3JJZD0hMCksKDAsci5zZWFyY2hGb3JUZXJtKShuLGkpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmZS5wb3N0cyYmMDxlLnBvc3RzLmxlbmd0aD9zLnNldCgidG9waWNzIixlLnBvc3RzLm1hcEJ5KCJ0b3BpYyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pZCE9PXR9KSk6cy5zZXRQcm9wZXJ0aWVzKHt0b3BpY3M6bnVsbCxsb2FkaW5nOiExfSl9KSkpfSwzMDApLGFjdGlvbnM6e2Nob29zZVRvcGljOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJzZWxlY3RlZFRvcGljSWQiLGUuaWQpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hvb3NlLXRvcGljLSIrZS5pZCkuY2hlY2tlZD0hMH0pLHRoaXMudG9waWNDaGFuZ2VkQ2FsbGJhY2smJnRoaXMudG9waWNDaGFuZ2VkQ2FsbGJhY2soZSl9fX0sInRvcGljVGl0bGVDaGFuZ2VkIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ0b3BpY1RpdGxlQ2hhbmdlZCIpLGQpLGEoZCwibGFiZWxUZXh0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJsYWJlbFRleHQiKSxkKSxhKGQsInRvcGljc0NoYW5nZWQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljc0NoYW5nZWQiKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci1jaG9pY2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoImNvbG9yIiwidXNlZENvbG9ycyIpLG89KDAsdC5kZWZhdWx0KSgiaXNVc2VkIikscj0oMCx0LmRlZmF1bHQpKCJjb2xvciIpLGkoYT17dGFnTmFtZToiYnV0dG9uIixhdHRyaWJ1dGVCaW5kaW5nczpbInN0eWxlIiwidGl0bGUiXSxjbGFzc05hbWVCaW5kaW5nczpbIjpjb2xvcnBpY2tlciIsImlzVXNlZDp1c2VkLWNvbG9yOnVudXNlZC1jb2xvciJdLGlzVXNlZDpmdW5jdGlvbihlLHQpe3JldHVybiAwPD0odHx8W10pLmluZGV4T2YoZS50b1VwcGVyQ2FzZSgpKX0sdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJjYXRlZ29yeS5hbHJlYWR5X3VzZWQiKTpudWxsfSxzdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4oImJhY2tncm91bmQtY29sb3I6ICMiK2UrIjsiKS5odG1sU2FmZSgpfSxjbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RDb2xvcih0aGlzLmNvbG9yKX19LCJpc1VzZWQiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImlzVXNlZCIpLGEpLGkoYSwidGl0bGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRpdGxlIiksYSksaShhLCJzdHlsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwic3R5bGUiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbG9yLXBpY2tlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczoiY29sb3JzLWNvbnRhaW5lciIsYWN0aW9uczp7c2VsZWN0Q29sb3I6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInZhbHVlIixlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWFjdGlvbi10aXRsZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGw7ZnVuY3Rpb24gdShlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjLGQscCxtLGYsaCxiPSh1KHI9e30scy5QUklWQVRFX01FU1NBR0UsInRvcGljLnByaXZhdGVfbWVzc2FnZSIpLHUocixzLkNSRUFURV9UT1BJQywidG9waWMuY3JlYXRlX2xvbmciKSx1KHIscy5DUkVBVEVfU0hBUkVEX0RSQUZULCJjb21wb3Nlci5jcmVhdGVfc2hhcmVkX2RyYWZ0IiksdShyLHMuRURJVF9TSEFSRURfRFJBRlQsImNvbXBvc2VyLmVkaXRfc2hhcmVkX2RyYWZ0Iikscik7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5kZWZhdWx0KSgib3B0aW9ucyIsImFjdGlvbiIpLGw9e2NsYXNzTmFtZXM6WyJjb21wb3Nlci1hY3Rpb24tdGl0bGUiXSxvcHRpb25zOigwLHQuYWxpYXMpKCJtb2RlbC5yZXBseU9wdGlvbnMiKSxhY3Rpb246KDAsdC5hbGlhcykoIm1vZGVsLmFjdGlvbiIpLGlzRWRpdGluZzooMCx0LmVxdWFsKSgiYWN0aW9uIixzLkVESVQpLGFjdGlvblRpdGxlOmZ1bmN0aW9uKGUsdCl7aWYoYlt0XSlyZXR1cm4gSTE4bi50KGJbdF0pO3N3aXRjaCh0KXtjYXNlIHMuUkVQTFk6aWYoZS51c2VyQXZhdGFyJiZlLnVzZXJMaW5rKXJldHVybiB0aGlzLl9mb3JtYXRSZXBseVRvVXNlclBvc3QoZS51c2VyQXZhdGFyLGUudXNlckxpbmspO2lmKGUudG9waWNMaW5rKXJldHVybiB0aGlzLl9mb3JtYXRSZXBseVRvVG9waWMoZS50b3BpY0xpbmspO2Nhc2Ugcy5FRElUOmlmKGUudXNlckF2YXRhciYmZS51c2VyTGluayYmZS5wb3N0TGluaylyZXR1cm4gdGhpcy5fZm9ybWF0RWRpdFVzZXJQb3N0KGUudXNlckF2YXRhcixlLnVzZXJMaW5rLGUucG9zdExpbmssZS5vcmlnaW5hbFVzZXIpfX0sX2Zvcm1hdEVkaXRVc2VyUG9zdDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz0nXG4gICAgICA8YSBjbGFzcz0icG9zdC1saW5rIiBocmVmPSInK24uaHJlZisnIj4nK24uYW5jaG9yKyI8L2E+XG4gICAgICAiK2UrJ1xuICAgICAgPHNwYW4gY2xhc3M9InVzZXJuYW1lIj4nK3QuYW5jaG9yKyI8L3NwYW4+XG4gICAgIjtyZXR1cm4gaSYmKHMrPSJcbiAgICAgICAgIisoMCxvLmljb25IVE1MKSgic2hhcmUiLHtjbGFzczoicmVwbHktdG8tZ2x5cGgifSkrIlxuICAgICAgICAiK2kuYXZhdGFyKydcbiAgICAgICAgPHNwYW4gY2xhc3M9Im9yaWdpbmFsLXVzZXJuYW1lIj4nK2kudXNlcm5hbWUrIjwvc3Bhbj5cbiAgICAgICIpLHMuaHRtbFNhZmUoKX0sX2Zvcm1hdFJlcGx5VG9Ub3BpYzpmdW5jdGlvbihlKXtyZXR1cm4oJzxhIGNsYXNzPSJ0b3BpYy1saW5rIiBocmVmPSInK2UuaHJlZisnIiBkYXRhLXRvcGljLWlkPSInK3RoaXMuZ2V0KCJtb2RlbC50b3BpYy5pZCIpKyciPicrZS5hbmNob3IrIjwvYT4iKS5odG1sU2FmZSgpfSxfZm9ybWF0UmVwbHlUb1VzZXJQb3N0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUrKCc8YSBjbGFzcz0idXNlci1saW5rIiBocmVmPSInK3QuaHJlZisnIj4nK3QuYW5jaG9yKyI8L2E+IikpLmh0bWxTYWZlKCl9fSxjPWwsZD0iYWN0aW9uVGl0bGUiLHA9W2FdLG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhY3Rpb25UaXRsZSIpLGY9bCxoPXt9LE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oZSl7aFtlXT1tW2VdfSksaC5lbnVtZXJhYmxlPSEhaC5lbnVtZXJhYmxlLGguY29uZmlndXJhYmxlPSEhaC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBofHxoLmluaXRpYWxpemVyKSYmKGgud3JpdGFibGU9ITApLGg9cC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChjLGQsZSl8fGV9LGgpLGYmJnZvaWQgMCE9PWguaW5pdGlhbGl6ZXImJihoLnZhbHVlPWguaW5pdGlhbGl6ZXI/aC5pbml0aWFsaXplci5jYWxsKGYpOnZvaWQgMCxoLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09aC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGQsaCksaD1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbGliL2FmdGVyLXRyYW5zaXRpb24iLCJkaXNjb3Vyc2UvbGliL3NhZmFyaS1oYWNrcyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3NpdGUtaGVhZGVyIiwiZGlzY291cnNlL21peGlucy9rZXktZW50ZXItZXNjYXBlIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHUsdCxuLGkscyxvLGMscixkKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCxwLG0sZixoO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYj0idG91Y2htb3ZlIG1vdXNlbW92ZSIsZz0idG91Y2hlbmQgbW91c2V1cCI7ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5jbGllbnRZfHxlLnRvdWNoZXMmJmUudG91Y2hlc1swXSYmZS50b3VjaGVzWzBdLmNsaWVudFl9ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChsPSgwLG4uZGVmYXVsdCkoImN1cnJlbnRVc2VyLnByaW1hcnlfZ3JvdXBfbmFtZSIpLHA9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIuY29tcG9zZVN0YXRlIiksbT0oMCxuLm9ic2VydmVzKSgiY29tcG9zZVN0YXRlIiwiY29tcG9zZXIuYWN0aW9uIiwiY29tcG9zZXIuY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIiksZj0oMCxuLm9ic2VydmVzKSgiY29tcG9zZVN0YXRlIiksYShoPXtlbGVtZW50SWQ6InJlcGx5LWNvbnRyb2wiLGNsYXNzTmFtZUJpbmRpbmdzOlsiY29tcG9zZXIuY3JlYXRpbmdQcml2YXRlTWVzc2FnZTpwcml2YXRlLW1lc3NhZ2UiLCJjb21wb3NlU3RhdGUiLCJjb21wb3Nlci5sb2FkaW5nIiwiY29tcG9zZXIuY2FuRWRpdFRpdGxlOmVkaXQtdGl0bGUiLCJjb21wb3Nlci5jcmVhdGVkUG9zdDpjcmVhdGVkLXBvc3QiLCJjb21wb3Nlci5jcmVhdGluZ1RvcGljOnRvcGljIiwiY29tcG9zZXIud2hpc3Blcjpjb21wb3Npbmctd2hpc3BlciIsImNvbXBvc2VyLnNoYXJlZERyYWZ0OmNvbXBvc2luZy1zaGFyZWQtZHJhZnQiLCJzaG93UHJldmlldzpzaG93LXByZXZpZXc6aGlkZS1wcmV2aWV3IiwiY3VycmVudFVzZXJQcmltYXJ5R3JvdXBDbGFzcyJdLGN1cnJlbnRVc2VyUHJpbWFyeUdyb3VwQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJncm91cC0iK2V9LGNvbXBvc2VTdGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZXx8aS5kZWZhdWx0LkNMT1NFRH0sbW92ZVBhbmVsczpmdW5jdGlvbihlKXskKCIjbWFpbi1vdXRsZXQiKS5jc3MoInBhZGRpbmctYm90dG9tIixlfHwiIiksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6cmVzaXplZCIpfSxyZXNpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLHUuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7IWUuZWxlbWVudHx8ZS5pc0Rlc3Ryb3lpbmd8fGUuaXNEZXN0cm95ZWR8fCgwLHUuZGVib3VuY2UpKGUsZS5kZWJvdW5jZU1vdmUsMzAwKX0pfSxkZWJvdW5jZU1vdmU6ZnVuY3Rpb24oKXt2YXIgZT0kKCIjcmVwbHktY29udHJvbDpub3QoLnNhdmluZykiKS5oZWlnaHQoKXx8MDt0aGlzLm1vdmVQYW5lbHMoZSl9LGtleVVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnR5cGVkKCk7dmFyIHQ9bmV3IERhdGU7dGhpcy5fbGFzdEtleVVwPXQsKDAsdS5jYW5jZWwpKHRoaXMuX2xhc3RLZXlUaW1lb3V0KSx0aGlzLl9sYXN0S2V5VGltZW91dD0oMCx1LmxhdGVyKShmdW5jdGlvbigpe3Q9PT1lLl9sYXN0S2V5VXAmJmUuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOmZpbmQtc2ltaWxhciIpfSwxZTMpfSxkaXNhYmxlRnVsbHNjcmVlbjpmdW5jdGlvbigpe3RoaXMuY29tcG9zZVN0YXRlIT09aS5kZWZhdWx0Lk9QRU4mJm8uZGVmYXVsdC5ibHVyJiZvLmRlZmF1bHQuYmx1cigpfSxzZXR1cENvbXBvc2VyUmVzaXplRXZlbnRzOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvLnRyaWdnZXIoImRpdi1yZXNpemluZyIpLG8uYWRkQ2xhc3MoImNsZWFyLXRyYW5zaXRpb25zIik7dmFyIHQ9dihlKSxuPXIrKGEtdCksaT0kKHdpbmRvdykuaGVpZ2h0KCksbj1NYXRoLm1pbihuLGktKDAsYy5oZWFkZXJIZWlnaHQpKCkpO249TWF0aC5tYXgobiwyNDApLHMubW92ZVBhbmVscyhuKSxvLmhlaWdodChuKX1mdW5jdGlvbiBuKCl7aS5vZmYoYixsKSxpLm9mZihnLG4pLG8ucmVtb3ZlQ2xhc3MoImNsZWFyLXRyYW5zaXRpb25zIiksby5mb2N1cygpfXZhciBzPXRoaXMsbz0kKHRoaXMuZWxlbWVudCksZT0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZ3JpcHBpZSIpKSxpPSQoZG9jdW1lbnQpLHI9MCxhPTAsbD1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksKDAsdS50aHJvdHRsZSkocyx0LGUsMjApfS5iaW5kKHRoaXMpO2Uub24oInRvdWNoc3RhcnQgbW91c2Vkb3duIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCkscj1vLmhlaWdodCgpLGE9dihlKSxpLm9uKGIsbCksaS5vbihnLG4pfSksKDAsZC5pT1NXaXRoVmlzdWFsVmlld3BvcnQpKCkmJih0aGlzLnZpZXdwb3J0UmVzaXplKCksd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy52aWV3cG9ydFJlc2l6ZSkpfSx2aWV3cG9ydFJlc2l6ZTpmdW5jdGlvbigpe3ZhciBlPS4wMSp3aW5kb3cudmlzdWFsVmlld3BvcnQuaGVpZ2h0O2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1jb21wb3Nlci12aCIsZSsicHgiKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0dXBDb21wb3NlclJlc2l6ZUV2ZW50cygpO2Z1bmN0aW9uIHQoKXtlLmdldCgiY29tcG9zZXIuY29tcG9zZVN0YXRlIik9PT1pLmRlZmF1bHQuT1BFTiYmZS5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6b3BlbmVkIil9dCgpLCgwLHMuZGVmYXVsdCkoJCh0aGlzLmVsZW1lbnQpLGZ1bmN0aW9uKCl7KDAsdS5ydW4pKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVzaXplKCl9KSx0KCl9KSwoMCxvLmRlZmF1bHQpKCQodGhpcy5lbGVtZW50KSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnJlc2l6ZSIsdGhpcyx0aGlzLnJlc2l6ZSksKDAsZC5pT1NXaXRoVmlzdWFsVmlld3BvcnQpKCkmJndpbmRvdy52aXN1YWxWaWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMudmlld3BvcnRSZXNpemUpfSxjbGljazpmdW5jdGlvbigpe3RoaXMub3BlbklmRHJhZnQoKX19LCJjdXJyZW50VXNlclByaW1hcnlHcm91cENsYXNzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJjdXJyZW50VXNlclByaW1hcnlHcm91cENsYXNzIiksaCksYShoLCJjb21wb3NlU3RhdGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImNvbXBvc2VTdGF0ZSIpLGgpLGEoaCwicmVzaXplIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJyZXNpemUiKSxoKSxhKGgsImRpc2FibGVGdWxsc2NyZWVuIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJkaXNhYmxlRnVsbHNjcmVlbiIpLGgpLGgpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItZWRpdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3VzZXItc2VhcmNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9saW5rLW1lbnRpb25zIiwiZGlzY291cnNlL2xpYi9saW5rLWNhdGVnb3J5LWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi9saW5rLXRhZy1oYXNodGFnIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsInByZXR0eS10ZXh0L29uZWJveGVyIiwicHJldHR5LXRleHQvaW5saW5lLW9uZWJveGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwicHJldHR5LXRleHQvdXBsb2FkLXNob3J0LXVybCIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxyLHQsaSxuLHMsbyxhLGwsYyx1LGQscCxtLGYsaCxiLGcsdix5KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdyx4LGssUCxqLFQsRSxPLFMsQztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRDb21wb3NlclVwbG9hZEhhbmRsZXI9ZnVuY3Rpb24oZSx0KXtELnB1c2goe2V4dGVuc2lvbnM6ZSxtZXRob2Q6dH0pfSxlLmFkZENvbXBvc2VyVXBsb2FkTWFya2Rvd25SZXNvbHZlcj1mdW5jdGlvbihlKXtJLnB1c2goZSl9O3ZhciBNPVsiY29tcG9zZXI6cmVzaXplZCIsImNvbXBvc2VyOnR5cGVkLXJlcGx5Il0sRD1bXTt2YXIgST1bXTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgodz0oMCxuLmRlZmF1bHQpKCJ1cGxvYWRGaWxlbmFtZVBsYWNlaG9sZGVyIikseD0oMCxuLmRlZmF1bHQpKCJjb21wb3Nlci5yZXF1aXJlZENhdGVnb3J5TWlzc2luZyIpLGs9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIucmVxdWlyZWRDYXRlZ29yeU1pc3NpbmciLCJjb21wb3Nlci5yZXBseUxlbmd0aCIpLFA9KDAsbi5vYnNlcnZlcykoImNvbXBvc2VyLnVwbG9hZENhbmNlbGxlZCIpLGo9KDAsbi5vYnNlcnZlcykoImZvY3VzVGFyZ2V0IiksVD0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLEU9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIucmVwbHkiLCJjb21wb3Nlci5yZXBseUxlbmd0aCIsImNvbXBvc2VyLm1pc3NpbmdSZXBseUNoYXJhY3RlcnMiLCJjb21wb3Nlci5taW5pbXVtUG9zdExlbmd0aCIsImxhc3RWYWxpZGF0ZWRBdCIpLE89KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLFM9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLF8oQz17Y2xhc3NOYW1lQmluZGluZ3M6WyJzaG93VG9vbGJhcjp0b29sYmFyLXZpc2libGUiLCI6d21kLWNvbnRyb2xzIl0sdXBsb2FkUHJvZ3Jlc3M6MCxfeGhyOm51bGwsc2hvdWxkQnVpbGRTY3JvbGxNYXA6ITAsc2Nyb2xsTWFwOm51bGwsdXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlcjpudWxsLHVwbG9hZFBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PUkxOG4udCgiY2xpcGJvYXJkIiksbj1lfHx0O3JldHVybiJbIitJMThuLnQoInVwbG9hZGluZ19maWxlbmFtZSIse2ZpbGVuYW1lOm59KSsiXSgpICJ9LHJlcGx5UGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImNvbXBvc2VyLnJlcGx5X3BsYWNlaG9sZGVyX2Nob29zZV9jYXRlZ29yeSI6ImNvbXBvc2VyLiIrKCgwLGIuYXV0aG9yaXplc09uZU9yTW9yZUltYWdlRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZik/InJlcGx5X3BsYWNlaG9sZGVyIjoicmVwbHlfcGxhY2Vob2xkZXJfbm9faW1hZ2VzIil9LHNob3dMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJiJub25lIiE9PXRoaXMuY3VycmVudFVzZXIuZ2V0KCJsaW5rX3Bvc3RpbmdfYWNjZXNzIil9LGRpc2FibGVUZXh0YXJlYTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYwPT09dH0sX2NhbmNlbFVwbG9hZDpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjb21wb3Nlci51cGxvYWRDYW5jZWxsZWQiKSYmKHRoaXMuc2V0KCJjb21wb3Nlci51cGxvYWRDYW5jZWxsZWQiLCExKSx0aGlzLl94aHImJih0aGlzLl94aHIuX3VzZXJDYW5jZWxsZWQ9ITAsdGhpcy5feGhyLmFib3J0KCkpLHRoaXMuX3Jlc2V0VXBsb2FkKCEwKSl9LHNldEZvY3VzOmZ1bmN0aW9uKCl7ImVkaXRvciI9PT10aGlzLmZvY3VzVGFyZ2V0JiYkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYSIpKS5wdXRDdXJzb3JBdEVuZCgpfSxtYXJrZG93bk9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgbz10aGlzO3JldHVybntwcmV2aWV3aW5nOiEwLGZvcm1hdFVzZXJuYW1lOmguZm9ybWF0VXNlcm5hbWUsbG9va3VwQXZhdGFyQnlQb3N0TnVtYmVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49by50b3BpYztpZihuKXt2YXIgaT1uLmdldCgicG9zdFN0cmVhbS5wb3N0cyIpO2lmKGkmJnQ9PT1uLmdldCgiaWQiKSl7dmFyIHM9aS5maW5kQnkoInBvc3RfbnVtYmVyIixlKTtpZihzKXJldHVybigwLGgudGlueUF2YXRhcikocy5nZXQoImF2YXRhcl90ZW1wbGF0ZSIpKX19fSxsb29rdXBQcmltYXJ5VXNlckdyb3VwQnlQb3N0TnVtYmVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49by50b3BpYztpZihuKXt2YXIgaT1uLmdldCgicG9zdFN0cmVhbS5wb3N0cyIpO2lmKGkmJnQ9PT1uLmdldCgiaWQiKSl7dmFyIHM9aS5maW5kQnkoInBvc3RfbnVtYmVyIixlKTtpZihzKXJldHVybiBzLnByaW1hcnlfZ3JvdXBfbmFtZX19fX19LHVzZXJTZWFyY2hUZXJtOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0KCJ0b3BpYy5pZCIpLG49dGhpcy5nZXQoInRvcGljLmNhdGVnb3J5X2lkIil8fHRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeUlkIik7cmV0dXJuKDAsaS5kZWZhdWx0KSh7dGVybTplLHRvcGljSWQ6dCxjYXRlZ29yeUlkOm4saW5jbHVkZUdyb3VwczohMH0pfSxfY29tcG9zZXJFZGl0b3JJbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKSxuPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKSk7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX21lbnRpb25zJiZlLmF1dG9jb21wbGV0ZSh7dGVtcGxhdGU6KDAsbS5maW5kUmF3VGVtcGxhdGUpKCJ1c2VyLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSIpLGRhdGFTb3VyY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHQudXNlclNlYXJjaFRlcm0uY2FsbCh0LGUpfSxrZXk6IkAiLHRyYW5zZm9ybUNvbXBsZXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXJuYW1lfHxlLm5hbWV9LGFmdGVyQ29tcGxldGU6ZnVuY3Rpb24oKXsoMCxyLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBlLmJsdXIoKS5mb2N1cygpfSl9LHRyaWdnZXJSdWxlOmZ1bmN0aW9uKGUpe3JldHVybiEoMCxoLmluQ29kZUJsb2NrKShlLnZhbHVlLCgwLGguY2FyZXRQb3NpdGlvbikoZSkpfX0pLHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKT90aGlzLl9pbml0SW5wdXRQcmV2aWV3U3luYyhlLG4pOmUub24oInNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4oMCxyLnRocm90dGxlKSh0LHQuX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLGUsbiwyMCl9KSx0aGlzLmdldCgiY29tcG9zZXIuY2FuRWRpdFRpdGxlIil8fHRoaXMuY2FwYWJpbGl0aWVzLmlzSU9TJiYhKDAsaC5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpfHwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSkucHV0Q3Vyc29yQXRFbmQoKSx0aGlzLl9iaW5kVXBsb2FkVGFyZ2V0KCksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6d2lsbC1vcGVuIil9LHZhbGlkYXRpb246ZnVuY3Rpb24oZSx0LG4saSxzKXtpZih0aGlzLmdldCgiY29tcG9zZXIucG9zdC5wb3N0X3R5cGUiKSE9PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMuc21hbGxfYWN0aW9uIikpe3ZhciBvLHI9dm9pZCAwO3JldHVybiB0PDE/cj1JMThuLnQoImNvbXBvc2VyLmVycm9yLnBvc3RfbWlzc2luZyIpOjA8biYmKHI9STE4bi50KCJjb21wb3Nlci5lcnJvci5wb3N0X2xlbmd0aCIse21pbjppfSksMCE9PShvPXRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpKSYmMSE9PW98fChyKz0iPGJyLz4iK0kxOG4udCgiY29tcG9zZXIuZXJyb3IudHJ5X2xpa2UiLHtoZWFydDooMCxmLmljb25IVE1MKSgiaGVhcnQiKX0pKSkscj9wLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnIsbGFzdFNob3duQXQ6c30pOnZvaWQgMH19LF9zZXRVcGxvYWRQbGFjZWhvbGRlclNlbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZmlsZW5hbWVQbGFjZWhvbGRlcihlKTt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsdCk7dmFyIG4saSxzLG8scj10LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksYT0iXFxbIitJMThuLnQoInVwbG9hZGluZ19maWxlbmFtZSIse2ZpbGVuYW1lOnIrIig/OlxcKCk/KFswLTldKT8oPzpcXCkpPyJ9KSsiXFxdXFwoXFwpIixsPW5ldyBSZWdFeHAoYSwiZyIpLHU9dGhpcy5nZXQoImNvbXBvc2VyLnJlcGx5IikubWF0Y2gobCk7dSYmKG49dVt1Lmxlbmd0aC0xXSxzPShpPW5ldyBSZWdFeHAoYSkpLmV4ZWMobilbMV0/cGFyc2VJbnQoaS5leGVjKG4pWzFdLDEwKSsxOjEsbz10KyIoIisoZS5vcmRlck5yPXMpKyIpIix0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbykpfSxfc2V0VXBsb2FkUGxhY2Vob2xkZXJEb25lOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcy5fZmlsZW5hbWVQbGFjZWhvbGRlcihlKSxpPW4rIiAoIitlLnRvdGFsKyIpIjt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsaSksZS5vcmRlck5yPyh0PW4rIigiK2Uub3JkZXJOcisiKSIsdGhpcy5zZXQoInVwbG9hZEZpbGVuYW1lUGxhY2Vob2xkZXIiLHQpKTp0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbil9LF9maWxlbmFtZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbGVzWzBdLm5hbWUucmVwbGFjZSgvXHUyMDBCLVx1MjAwRFx1RkVGRl0vZywiIil9LF9yZXNldFVwbG9hZEZpbGVuYW1lUGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbnVsbCl9LF9lbmFibGVBZHZhbmNlZEVkaXRvclByZXZpZXdTeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9hZHZhbmNlZF9lZGl0b3JfcHJldmlld19zeW5jfSxfcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcDpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG91bGRCdWlsZFNjcm9sbE1hcCIsITApfSxfaW5pdElucHV0UHJldmlld1N5bmM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO00uZm9yRWFjaChmdW5jdGlvbihlKXtuLmFwcEV2ZW50cy5vbihlLG4sbi5fcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcCl9KSwoMCxyLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2Uub24oInRvdWNoc3RhcnQgbW91c2VlbnRlciIsZnVuY3Rpb24oKXt0LmlzKCI6dmlzaWJsZSIpJiYodC5vZmYoInNjcm9sbCIpLGUub24oInNjcm9sbCIsZnVuY3Rpb24oKXtuLl9zeW5jU2Nyb2xsKG4uX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLGUsdCl9KSl9KSx0Lm9uKCJ0b3VjaHN0YXJ0IG1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7ZS5vZmYoInNjcm9sbCIpLHQub24oInNjcm9sbCIsZnVuY3Rpb24oKXtuLl9zeW5jU2Nyb2xsKG4uX3N5bmNQcmV2aWV3QW5kRWRpdG9yU2Nyb2xsLGUsdCl9KX0pfSl9LF9zeW5jU2Nyb2xsOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLnNjcm9sbE1hcCYmIXRoaXMuc2hvdWxkQnVpbGRTY3JvbGxNYXB8fCh0aGlzLnNldCgic2Nyb2xsTWFwIix0aGlzLl9idWlsZFNjcm9sbE1hcCh0LG4pKSx0aGlzLnNldCgic2hvdWxkQnVpbGRTY3JvbGxNYXAiLCExKSksKDAsci50aHJvdHRsZSkodGhpcyxlLHQsbix0aGlzLnNjcm9sbE1hcCwyMCl9LF90ZWFyZG93bklucHV0UHJldmlld1N5bmM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO1skKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSksJCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmQtZWRpdG9yLXByZXZpZXctd3JhcHBlciIpKV0uZm9yRWFjaChmdW5jdGlvbihlKXtlLm9mZigibW91c2VlbnRlciB0b3VjaHN0YXJ0IiksZS5vZmYoInNjcm9sbCIpfSksTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuYXBwRXZlbnRzLm9mZihlLHQsdC5fcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcCl9KX0sX2J1aWxkU2Nyb2xsTWFwOmZ1bmN0aW9uKGUsdCl7dmFyIGk9JCgiPGRpdiAvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixoZWlnaHQ6ImF1dG8iLHZpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6ZVswXS5jbGllbnRXaWR0aCwiZm9udC1zaXplIjplLmNzcygiZm9udC1zaXplIiksImZvbnQtZmFtaWx5IjplLmNzcygiZm9udC1mYW1pbHkiKSwibGluZS1oZWlnaHQiOmUuY3NzKCJsaW5lLWhlaWdodCIpLCJ3aGl0ZS1zcGFjZSI6ZS5jc3MoIndoaXRlLXNwYWNlIil9KS5hcHBlbmRUbygiYm9keSIpLG89W10scz0wO2UudmFsKCkuc3BsaXQoIlxuIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuO28ucHVzaChzKSwwPT09ZS5sZW5ndGg/cysrOihpLnRleHQoZSksdD1wYXJzZUZsb2F0KGkuY3NzKCJoZWlnaHQiKSksbj1wYXJzZUZsb2F0KGkuY3NzKCJsaW5lLWhlaWdodCIpKSxzKz1NYXRoLnJvdW5kKHQvbikpfSksby5wdXNoKHMpLGkucmVtb3ZlKCk7Zm9yKHZhciBuPXQub2Zmc2V0KCkudG9wLHI9dC5zY3JvbGxUb3AoKS1uLShlLm9mZnNldCgpLnRvcC1uKSxhPVtdLGw9W10sdT0wO3U8czt1KyspbC5wdXNoKC0xKTthLnB1c2goMCksbFswXT0wLHQuZmluZCgiLnByZXZpZXctc3luYy1saW5lIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLmRhdGEoImxpbmUtbnVtYmVyIikscz1vW2ldOzAhPT1zJiZhLnB1c2gocyksbFtzXT1NYXRoLnJvdW5kKG4ub2Zmc2V0KCkudG9wK3IpfSksYS5wdXNoKHMpLGxbc109dFswXS5zY3JvbGxIZWlnaHQ7Zm9yKHZhciBjLGQscD0wLG09MTttPHM7bSsrKXstMT09PWxbbV0/KGM9YVtwXSxkPWFbcCsxXSxsW21dPSgobFtkXSoobS1jKStsW2NdKihkLW0pKS8oZC1jKSkudG9GaXhlZCgyKSk6cCsrfXJldHVybiBsfSxfc3luY0VkaXRvckFuZFByZXZpZXdTY3JvbGw6ZnVuY3Rpb24oZSx0LG4pe2lmKHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKSl7dmFyIGkscz12b2lkIDAsbz1lLmhlaWdodCgpLHI9ZVswXS5zY3JvbGxIZWlnaHQ7cz1lWzBdLmNsaWVudEhlaWdodDxyJiZvK2Uuc2Nyb2xsVG9wKCkrMTAwPnI/dFswXS5zY3JvbGxIZWlnaHQ6KGk9cGFyc2VGbG9hdChlLmNzcygibGluZS1oZWlnaHQiKSksbltNYXRoLmZsb29yKGUuc2Nyb2xsVG9wKCkvaSldKSx0LnN0b3AoITApLmFuaW1hdGUoe3Njcm9sbFRvcDpzfSwxMDAsImxpbmVhciIpfWVsc2V7aWYoIWUpcmV0dXJuO2lmKDA9PT1lLnNjcm9sbFRvcCgpKXJldHVybiB2b2lkIHQuc2Nyb2xsVG9wKDApO3ZhciBhPWVbMF0uc2Nyb2xsSGVpZ2h0LGw9dFswXS5zY3JvbGxIZWlnaHQ7aWYoZS5oZWlnaHQoKStlLnNjcm9sbFRvcCgpKzEwMD5hKXJldHVybiB2b2lkIHQuc2Nyb2xsVG9wKGwpO3ZhciB1PWUuc2Nyb2xsVG9wKCkqKGwvYSk7dC5zY3JvbGxUb3AoNTArdSl9fSxfc3luY1ByZXZpZXdBbmRFZGl0b3JTY3JvbGw6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHM7bi5sZW5ndGg8MXx8KHM9dm9pZCAwLGk9dC5zY3JvbGxUb3AoKSxzPXQuaGVpZ2h0KCkraSsxMDA+dFswXS5zY3JvbGxIZWlnaHQ/ZVswXS5zY3JvbGxIZWlnaHQ6cGFyc2VGbG9hdChlLmNzcygibGluZS1oZWlnaHQiKSkqbi5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGk8ZX0pLGUuc3RvcCghMCkuYW5pbWF0ZSh7c2Nyb2xsVG9wOnN9LDEwMCwibGluZWFyIikpfSxfcmVuZGVyVW5zZWVuTWVudGlvbnM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzOygwLHMuZmV0Y2hVbnNlZW5NZW50aW9ucykodCx0aGlzLmdldCgiY29tcG9zZXIudG9waWMuaWQiKSkudGhlbihmdW5jdGlvbigpeygwLHMubGlua1NlZW5NZW50aW9ucykoZSxuLnNpdGVTZXR0aW5ncyksbi5fd2Fybk1lbnRpb25lZEdyb3VwcyhlKSxuLl93YXJuQ2Fubm90U2VlTWVudGlvbihlKX0pfSxfcmVuZGVyVW5zZWVuQ2F0ZWdvcnlIYXNodGFnczpmdW5jdGlvbihlLHQpeygwLG8uZmV0Y2hVbnNlZW5DYXRlZ29yeUhhc2h0YWdzKSh0KS50aGVuKGZ1bmN0aW9uKCl7KDAsby5saW5rU2VlbkNhdGVnb3J5SGFzaHRhZ3MpKGUpfSl9LF9yZW5kZXJVbnNlZW5UYWdIYXNodGFnczpmdW5jdGlvbihlLHQpeygwLGEuZmV0Y2hVbnNlZW5UYWdIYXNodGFncykodCkudGhlbihmdW5jdGlvbigpeygwLGEubGlua1NlZW5UYWdIYXNodGFncykoZSl9KX0sX2xvYWRJbmxpbmVPbmVib3hlczpmdW5jdGlvbihlKXsoMCx1LmFwcGx5SW5saW5lT25lYm94ZXMpKGUsZC5hamF4LHtjYXRlZ29yeUlkOnRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeS5pZCIpLHRvcGljSWQ6dGhpcy5nZXQoImNvbXBvc2VyLnRvcGljLmlkIil9KX0sX2xvYWRPbmVib3hlczpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy5nZXQoImNvbXBvc2VyLnBvc3QiKSxpPSExO24mJiFuLmdldCgicmVmcmVzaGVkUG9zdCIpJiYoaT0hMCxuLnNldCgicmVmcmVzaGVkUG9zdCIsITApKSxPYmplY3QudmFsdWVzKGUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeygwLGMubG9hZCkoe2VsZW06ZSxyZWZyZXNoOmksYWpheDpkLmFqYXgsY2F0ZWdvcnlJZDp0LmdldCgiY29tcG9zZXIuY2F0ZWdvcnkuaWQiKSx0b3BpY0lkOnQuZ2V0KCJjb21wb3Nlci50b3BpYy5pZCIpfSl9KX0pfSxfd2Fybk1lbnRpb25lZEdyb3VwczpmdW5jdGlvbihlKXt2YXIgbz10aGlzOygwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIHM9by53YXJuZWRHcm91cE1lbnRpb25zfHxbXTtlLmZpbmQoIi5tZW50aW9uLWdyb3VwLm5vdGlmeSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9bi5kYXRhKCJuYW1lIik7LTE9PT1zLmluZGV4T2YoaSkmJihvLmdyb3Vwc01lbnRpb25lZChbe25hbWU6aSx1c2VyX2NvdW50Om4uZGF0YSgibWVudGlvbmFibGUtdXNlci1jb3VudCIpLG1heF9tZW50aW9uczpuLmRhdGEoIm1heC1tZW50aW9ucyIpfV0pLHMucHVzaChpKSl9KSxvLnNldCgid2FybmVkR3JvdXBNZW50aW9ucyIscyl9KX0sX3dhcm5DYW5ub3RTZWVNZW50aW9uOmZ1bmN0aW9uKHMpe3ZhciBvPXRoaXM7dGhpcy5nZXQoImNvbXBvc2VyLmRyYWZ0S2V5IikhPT1sLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVkmJigwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGk9by53YXJuZWRDYW5ub3RTZWVNZW50aW9uc3x8W107cy5maW5kKCIubWVudGlvbi5jYW5ub3Qtc2VlIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCkuZGF0YSgibmFtZSIpOy0xPT09aS5pbmRleE9mKG4pJiYoMCxyLmxhdGVyKShvLGZ1bmN0aW9uKCl7MDxzLmZpbmQoJy5tZW50aW9uLmNhbm5vdC1zZWVbZGF0YS1uYW1lPSInK24rJyJdJykubGVuZ3RoJiYoby5jYW5ub3RTZWVNZW50aW9uKFt7bmFtZTpufV0pLGkucHVzaChuKSl9LDJlMyl9KSxvLnNldCgid2FybmVkQ2Fubm90U2VlTWVudGlvbnMiLGkpfSl9LF9yZXNldFVwbG9hZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzOygwLHIubmV4dCkoZnVuY3Rpb24oKXswPHQuX3ZhbGlkVXBsb2FkcyYmdC5fdmFsaWRVcGxvYWRzLS0sMD09PXQuX3ZhbGlkVXBsb2FkcyYmdC5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRQcm9ncmVzczowLGlzVXBsb2FkaW5nOiExLGlzQ2FuY2VsbGFibGU6ITF9KSxlJiZ0LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBsYWNlLXRleHQiLHQudXBsb2FkUGxhY2Vob2xkZXIsIiIpLHQuX3Jlc2V0VXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlcigpfSl9LF9iaW5kVXBsb2FkVGFyZ2V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLl91bmJpbmRVcGxvYWRUYXJnZXQoKSx0aGlzLl9wYXN0ZWQ9ITE7dmFyIGU9JCh0aGlzLmVsZW1lbnQpO2UuZmlsZXVwbG9hZCh7dXJsOkRpc2NvdXJzZS5nZXRVUkwoIi91cGxvYWRzLmpzb24/Y2xpZW50X2lkPSIrdGhpcy5tZXNzYWdlQnVzLmNsaWVudElkKSxkYXRhVHlwZToianNvbiIscGFzdGVab25lOmV9KSxlLm9uKCJmaWxldXBsb2FkcGFzdGUiLGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzO2EuX3Bhc3RlZD0hMCwkKCIuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIikmJihuPSh0PSgwLGguY2xpcGJvYXJkRGF0YSkoZSwhMCkpLmNhblVwbG9hZCxpPXQuY2FuUGFzdGVIdG1sLHM9dC50eXBlcyxuJiYhaSYmIXMuaW5jbHVkZXMoInRleHQvcGxhaW4iKXx8ZS5wcmV2ZW50RGVmYXVsdCgpKX0pLGUub24oImZpbGV1cGxvYWRzdWJtaXQiLGZ1bmN0aW9uKGUsbil7dmFyIHQ9YS5zaXRlU2V0dGluZ3Muc2ltdWx0YW5lb3VzX3VwbG9hZHM7aWYoMDx0JiZuLmZpbGVzLmxlbmd0aD50KXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudG9vX21hbnlfZHJhZ2dlZF9hbmRfZHJvcHBlZF9maWxlcyIse21heDp0fSkpLCExO3ZhciBpPUQuZmluZChmdW5jdGlvbihlKXt2YXIgdD1lLmV4dGVuc2lvbnMuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKCJcXC4oIit0KyIpJCIsImkiKS50ZXN0KG4uZmlsZXNbMF0ubmFtZSl9KTtpZigxPT09bi5maWxlcy5sZW5ndGgmJmkmJiFpLm1ldGhvZChuLmZpbGVzWzBdLGEpKXJldHVybiExO3ZhciBzPWEuZ2V0KCJjb21wb3Nlci5wcml2YXRlTWVzc2FnZSIpO24uZm9ybURhdGE9e3R5cGU6ImNvbXBvc2VyIn0scyYmKG4uZm9ybURhdGEuZm9yX3ByaXZhdGVfbWVzc2FnZT0hMCksYS5fcGFzdGVkJiYobi5mb3JtRGF0YS5wYXN0ZWQ9ITApO3ZhciBvPXt1c2VyOmEuY3VycmVudFVzZXIsaXNQcml2YXRlTWVzc2FnZTpzLGFsbG93U3RhZmZUb1VwbG9hZEFueUZpbGVJblBtOmEuc2l0ZVNldHRpbmdzLmFsbG93X3N0YWZmX3RvX3VwbG9hZF9hbnlfZmlsZV9pbl9wbX0scj0oMCxiLnZhbGlkYXRlVXBsb2FkZWRGaWxlcykobi5maWxlcyxvKTtyZXR1cm4gYS5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRQcm9ncmVzczowLGlzVXBsb2FkaW5nOnJ9KSxyfSksZS5vbigiZmlsZXVwbG9hZHByb2dyZXNzYWxsIixmdW5jdGlvbihlLHQpe2Euc2V0KCJ1cGxvYWRQcm9ncmVzcyIscGFyc2VJbnQodC5sb2FkZWQvdC50b3RhbCoxMDAsMTApKX0pLGUub24oImZpbGV1cGxvYWRzZW5kIixmdW5jdGlvbihlLHQpe2EuX3Bhc3RlZD0hMSxhLl92YWxpZFVwbG9hZHMrKyxhLl9zZXRVcGxvYWRQbGFjZWhvbGRlclNlbmQodCksYS5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLGEudXBsb2FkUGxhY2Vob2xkZXIpLHQueGhyJiYxPT09dC5vcmlnaW5hbEZpbGVzLmxlbmd0aCYmKGEuc2V0KCJpc0NhbmNlbGxhYmxlIiwhMCksYS5feGhyPXQueGhyKCkpfSksZS5vbigiZmlsZXVwbG9hZGRvbmUiLGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10LnJlc3VsdDthLl9zZXRVcGxvYWRQbGFjZWhvbGRlckRvbmUodCksYS5feGhyJiZhLl94aHIuX3VzZXJDYW5jZWxsZWQ/YS5fcmVzZXRVcGxvYWQoITApOihuPUkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoaSl8fGV9LCgwLGIuZ2V0VXBsb2FkTWFya2Rvd24pKGkpKSwoMCxnLmNhY2hlU2hvcnRVcGxvYWRVcmwpKGkuc2hvcnRfdXJsLGkpLGEuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsYS51cGxvYWRQbGFjZWhvbGRlci50cmltKCksbiksYS5fcmVzZXRVcGxvYWQoITEpKX0pLGUub24oImZpbGV1cGxvYWRmYWlsIixmdW5jdGlvbihlLHQpe2EuX3NldFVwbG9hZFBsYWNlaG9sZGVyRG9uZSh0KSxhLl9yZXNldFVwbG9hZCghMCk7dmFyIG49YS5feGhyJiZhLl94aHIuX3VzZXJDYW5jZWxsZWQ7YS5feGhyPW51bGwsbnx8KDAsYi5kaXNwbGF5RXJyb3JGb3JVcGxvYWQpKHQpfSksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJiQoIiNyZXBseS1jb250cm9sIC5tb2JpbGUtZmlsZS11cGxvYWQiKS5vbigiY2xpY2sudXBsb2FkZXIiLGZ1bmN0aW9uKCl7JCgiI21vYmlsZS11cGxvYWRlciIpLmNsaWNrKCl9KX0sX3JlZ2lzdGVySW1hZ2VTY2FsZUJ1dHRvbkNsaWNrOmZ1bmN0aW9uKGUpe3ZhciByPXRoaXMsYT0vIVxbKC4qPylcfChcZHsxLDR9eFxkezEsNH0pKCxccypcZHsxLDN9JSk/KC4qPylcXVwoKHVwbG9hZDpcL1wvLio/KVwpKD8hKC4qYCkpL2c7ZS5vZmYoImNsaWNrIiwiLnNjYWxlLWJ0biIpLm9uKCJjbGljayIsIi5zY2FsZS1idG4iLGZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KCQoZS50YXJnZXQpLnBhcmVudCgpLmF0dHIoImRhdGEtaW1hZ2UtaW5kZXgiKSwxMCksbj1lLnRhcmdldC5hdHRyaWJ1dGVzWyJkYXRhLXNjYWxlIl0udmFsdWUsaT1yLmdldCgiY29tcG9zZXIucmVwbHkiKS5tYXRjaChhKTtpZihpKXt2YXIgcz1pW3RdO2lmKCFzKXJldHVybjt2YXIgbz1zLnJlcGxhY2UoYSwiIVskMXwkMiwgIituKyIlJDRdKCQ1KSIpO3IuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsaVt0XSxvLHtyZWdleDphLGluZGV4OnR9KX19KX0sX3VuYmluZFVwbG9hZFRhcmdldDpmdW5jdGlvbigpe3RoaXMuX3ZhbGlkVXBsb2Fkcz0wLCQoIiNyZXBseS1jb250cm9sIC5tb2JpbGUtZmlsZS11cGxvYWQiKS5vZmYoImNsaWNrLnVwbG9hZGVyIiksdGhpcy5tZXNzYWdlQnVzLnVuc3Vic2NyaWJlKCIvdXBsb2Fkcy9jb21wb3NlciIpO3ZhciBlPSQodGhpcy5lbGVtZW50KTt0cnl7ZS5maWxldXBsb2FkKCJkZXN0cm95Iil9Y2F0Y2goZSl7fWUub2ZmKCl9LF9jb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6d2lsbC1jbG9zZSIpLCgwLHIubmV4dCkoZnVuY3Rpb24oKXsoMCxyLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBlLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpjbG9zZWQiKX0sInRlc3QiPT09eS5kZWZhdWx0LmVudmlyb25tZW50PzA6NDAwKX0pLHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKSYmdGhpcy5fdGVhcmRvd25JbnB1dFByZXZpZXdTeW5jKCl9LHNob3dVcGxvYWRTZWxlY3RvcjpmdW5jdGlvbihlKXt0aGlzLnNlbmQoInNob3dVcGxvYWRTZWxlY3RvciIsZSl9LG9uRXhwYW5kUG9wdXBNZW51T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnNlbGVjdGVkO2Uuc2VsZWN0VGV4dCh0LnN0YXJ0LHQuZW5kLXQuc3RhcnQpLHRoaXMuc3RvcmVUb29sYmFyU3RhdGUoZSl9LHNob3dQcmV2aWV3OmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJ0b2dnbGVQcmV2aWV3Iil9LGFjdGlvbnM6e2ltcG9ydFF1b3RlOmZ1bmN0aW9uKGUpe3RoaXMuaW1wb3J0UXVvdGUoZSl9LG9uRXhwYW5kUG9wdXBNZW51T3B0aW9uczpmdW5jdGlvbihlKXt0aGlzLm9uRXhwYW5kUG9wdXBNZW51T3B0aW9ucyhlKX0sdG9nZ2xlUHJldmlldzpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJldmlldygpfSxleHRyYUJ1dHRvbnM6ZnVuY3Rpb24oZSl7ZS5hZGRCdXR0b24oe2lkOiJxdW90ZSIsZ3JvdXA6ImZvbnRTdHlsZXMiLGljb246ImZhci1jb21tZW50IixzZW5kQWN0aW9uOnRoaXMuaW1wb3J0UXVvdGUsdGl0bGU6ImNvbXBvc2VyLnF1b3RlX3Bvc3RfdGl0bGUiLHVuc2hpZnQ6ITB9KSx0aGlzLmFsbG93VXBsb2FkJiZ0aGlzLnVwbG9hZEljb24mJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmZS5hZGRCdXR0b24oe2lkOiJ1cGxvYWQiLGdyb3VwOiJpbnNlcnRpb25zIixpY29uOnRoaXMudXBsb2FkSWNvbix0aXRsZToidXBsb2FkIixzZW5kQWN0aW9uOnRoaXMuc2hvd1VwbG9hZE1vZGFsfSksZS5hZGRCdXR0b24oe2lkOiJvcHRpb25zIixncm91cDoiZXh0cmFzIixpY29uOiJjb2ciLHRpdGxlOiJjb21wb3Nlci5vcHRpb25zIixzZW5kQWN0aW9uOnRoaXMub25FeHBhbmRQb3B1cE1lbnVPcHRpb25zLmJpbmQodGhpcykscG9wdXBNZW51OiEwfSl9LHByZXZpZXdVcGRhdGVkOmZ1bmN0aW9uKGUpe3ZhciB1PXRoaXMsdD0oMCxzLmxpbmtTZWVuTWVudGlvbnMpKGUsdGhpcy5zaXRlU2V0dGluZ3MpO3QubGVuZ3RoJiYoMCxyLmRlYm91bmNlKSh0aGlzLHRoaXMuX3JlbmRlclVuc2Vlbk1lbnRpb25zLGUsdCw0NTApLHRoaXMuX3dhcm5NZW50aW9uZWRHcm91cHMoZSksdGhpcy5fd2FybkNhbm5vdFNlZU1lbnRpb24oZSk7dmFyIG4saT0oMCxvLmxpbmtTZWVuQ2F0ZWdvcnlIYXNodGFncykoZSk7aS5sZW5ndGgmJigwLHIuZGVib3VuY2UpKHRoaXMsdGhpcy5fcmVuZGVyVW5zZWVuQ2F0ZWdvcnlIYXNodGFncyxlLGksNDUwKSwhdGhpcy5zaXRlU2V0dGluZ3MudGFnZ2luZ19lbmFibGVkfHwobj0oMCxhLmxpbmtTZWVuVGFnSGFzaHRhZ3MpKGUpKS5sZW5ndGgmJigwLHIuZGVib3VuY2UpKHRoaXMsdGhpcy5fcmVuZGVyVW5zZWVuVGFnSGFzaHRhZ3MsZSxuLDQ1MCksKDAsci5kZWJvdW5jZSkodGhpcyxmdW5jdGlvbigpe3ZhciByPXt9LGE9e30sbD1lLmZpbmQoImFzaWRlLm9uZWJveCwgYS4iK2MuTE9BRElOR19PTkVCT1hfQ1NTX0NMQVNTKyIsIGEuIit2LklOTElORV9PTkVCT1hfQ1NTX0NMQVNTKS5sZW5ndGg7ZS5maW5kKCJhLm9uZWJveCwgYS4iK3YuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUykuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLnRleHQoKSxzPW4uYXR0cigiY2xhc3MiKT09PXYuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUyxvPXM/YTpyO2w8dS5zaXRlU2V0dGluZ3MubWF4X29uZWJveGVzX3Blcl9wb3N0Pyh2b2lkIDA9PT1vW2ldJiYob1tpXT1bXSxsKyspLG9baV0ucHVzaCh0KSk6dm9pZCAwIT09b1tpXT9vW2ldLnB1c2godCk6cyYmbi5yZW1vdmVDbGFzcyh2LklOTElORV9PTkVCT1hfTE9BRElOR19DU1NfQ0xBU1MpfSksMDxPYmplY3Qua2V5cyhyKS5sZW5ndGgmJnUuX2xvYWRPbmVib3hlcyhyKSwwPE9iamVjdC5rZXlzKGEpLmxlbmd0aCYmdS5fbG9hZElubGluZU9uZWJveGVzKGEpfSw0NTApLCgwLGcucmVzb2x2ZUFsbFNob3J0VXJscykoZC5hamF4LCIuZC1lZGl0b3ItcHJldmlldy13cmFwcGVyIiksdGhpcy5fZW5hYmxlQWR2YW5jZWRFZGl0b3JQcmV2aWV3U3luYygpJiZ0aGlzLl9zeW5jU2Nyb2xsKHRoaXMuX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLCQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKSxlKSx0aGlzLl9yZWdpc3RlckltYWdlU2NhbGVCdXR0b25DbGljayhlKSx0aGlzLnRyaWdnZXIoInByZXZpZXdSZWZyZXNoZWQiLGUpLHRoaXMuYWZ0ZXJSZWZyZXNoKGUpfX19LCJ1cGxvYWRQbGFjZWhvbGRlciIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywidXBsb2FkUGxhY2Vob2xkZXIiKSxDKSxfKEMsInJlcGx5UGxhY2Vob2xkZXIiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInJlcGx5UGxhY2Vob2xkZXIiKSxDKSxfKEMsInNob3dMaW5rIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInNob3dMaW5rIiksQyksXyhDLCJkaXNhYmxlVGV4dGFyZWEiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsImRpc2FibGVUZXh0YXJlYSIpLEMpLF8oQywiX2NhbmNlbFVwbG9hZCIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywiX2NhbmNlbFVwbG9hZCIpLEMpLF8oQywic2V0Rm9jdXMiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInNldEZvY3VzIiksQyksXyhDLCJtYXJrZG93bk9wdGlvbnMiLFtuLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywibWFya2Rvd25PcHRpb25zIiksQyksXyhDLCJfY29tcG9zZXJFZGl0b3JJbml0IixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJfY29tcG9zZXJFZGl0b3JJbml0IiksQyksXyhDLCJ2YWxpZGF0aW9uIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJ2YWxpZGF0aW9uIiksQyksXyhDLCJfdW5iaW5kVXBsb2FkVGFyZ2V0IixbT10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJfdW5iaW5kVXBsb2FkVGFyZ2V0IiksQyksXyhDLCJfY29tcG9zZXJDbG9zZWQiLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsIl9jb21wb3NlckNsb3NlZCIpLEMpLEMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItbWVzc2FnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJtZXNzYWdlLnRlbXBsYXRlTmFtZSIpLHI9bz17Y2xhc3NOYW1lQmluZGluZ3M6WyI6Y29tcG9zZXItcG9wdXAiLCI6aGlkZGVuIiwibWVzc2FnZS5leHRyYUNsYXNzIl0sbGF5b3V0OmZ1bmN0aW9uKGUpe3JldHVybigwLGkuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgidGVtcGxhdGU6Y29tcG9zZXIvIitlKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheT0iYmxvY2sifSxhY3Rpb25zOntjbG9zZU1lc3NhZ2U6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLm1lc3NhZ2UpfX19LGE9ImxheW91dCIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImxheW91dCIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvbGluay1sb29rdXAiXSxmdW5jdGlvbihlLHQsbixpLHMsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbD17fTtlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lQmluZGluZ3M6WyI6Y29tcG9zZXItcG9wdXAtY29udGFpbmVyIiwiaGlkZGVuIl0sY2hlY2tlZE1lc3NhZ2VzOiExLG1lc3NhZ2VzOm51bGwsbWVzc2FnZXNCeVRlbXBsYXRlOm51bGwscXVldWVkRm9yVHlwaW5nOm51bGwsX2xhc3RTaW1pbGFyaXR5U2VhcmNoOm51bGwsX3NpbWlsYXJUb3BpY3NNZXNzYWdlOm51bGwsX3lvdXJzZWxmQ29uZmlybTpudWxsLHNpbWlsYXJUb3BpY3M6bnVsbCxoaWRkZW46KDAsdC5ub3QpKCJjb21wb3Nlci52aWV3T3Blbk9yRnVsbHNjcmVlbiIpLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnR5cGVkLXJlcGx5Iix0aGlzLHRoaXMuX3R5cGVkUmVwbHkpLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5fZmluZE1lc3NhZ2VzKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6ZmluZC1zaW1pbGFyIix0aGlzLHRoaXMuX2ZpbmRTaW1pbGFyKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXItbWVzc2FnZXM6Y2xvc2UiLHRoaXMsdGhpcy5fY2xvc2VUb3ApLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHRoaXMsdGhpcy5fY3JlYXRlKSwoMCxpLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMucmVzZXQpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnR5cGVkLXJlcGx5Iix0aGlzLHRoaXMuX3R5cGVkUmVwbHkpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6b3BlbmVkIix0aGlzLHRoaXMuX2ZpbmRNZXNzYWdlcyksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpmaW5kLXNpbWlsYXIiLHRoaXMsdGhpcy5fZmluZFNpbWlsYXIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXItbWVzc2FnZXM6Y2xvc2UiLHRoaXMsdGhpcy5fY2xvc2VUb3ApLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXItbWVzc2FnZXM6Y3JlYXRlIix0aGlzLHRoaXMuX2NyZWF0ZSl9LF9jbG9zZVRvcDpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVzc2FnZXM7ZS5wb3BPYmplY3QoKSx0aGlzLnNldCgibWVzc2FnZUNvdW50IixlLmdldCgibGVuZ3RoIikpfSxfcmVtb3ZlTWVzc2FnZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLm1lc3NhZ2VzO3QucmVtb3ZlT2JqZWN0KGUpLHRoaXMuc2V0KCJtZXNzYWdlQ291bnQiLHQuZ2V0KCJsZW5ndGgiKSl9LGFjdGlvbnM6e2Nsb3NlTWVzc2FnZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVNZXNzYWdlKGUpfSxoaWRlTWVzc2FnZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVNZXNzYWdlKGUpLHRoaXMubWVzc2FnZXNCeVRlbXBsYXRlW2UuZ2V0KCJ0ZW1wbGF0ZU5hbWUiKV09dm9pZCAwfSxwb3B1cDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMubWVzc2FnZXNCeVRlbXBsYXRlLGk9ZS5nZXQoInRlbXBsYXRlTmFtZSIpO25baV18fCgodD10aGlzLm1lc3NhZ2VzKS5wdXNoT2JqZWN0KGUpLHRoaXMuc2V0KCJtZXNzYWdlQ291bnQiLHQuZ2V0KCJsZW5ndGgiKSksbltpXT1lKX19LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fHRoaXMuc2V0UHJvcGVydGllcyh7bWVzc2FnZXM6W10sbWVzc2FnZXNCeVRlbXBsYXRlOnt9LHF1ZXVlZEZvclR5cGluZzpbXSxjaGVja2VkTWVzc2FnZXM6ITEsc2ltaWxhclRvcGljczpbXX0pfSxfdHlwZWRSZXBseTpmdW5jdGlvbigpe3ZhciBlLHQsbixpPXRoaXM7dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fCghKGU9dGhpcy5jb21wb3NlcikuZ2V0KCJwcml2YXRlTWVzc2FnZSIpfHwwPCh0PWUudGFyZ2V0UmVjaXBpZW50c0FycmF5KS5sZW5ndGgmJnQuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PWkuY3VycmVudFVzZXIuZ2V0KCJ1c2VybmFtZSIpfSkmJihuPXRoaXMuX3lvdXJzZWxmQ29uZmlybXx8ZS5zdG9yZS5jcmVhdGVSZWNvcmQoImNvbXBvc2VyLW1lc3NhZ2UiLHtpZDoieW91cnNlbGZfY29uZmlybSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsdGl0bGU6STE4bi50KCJjb21wb3Nlci55b3Vyc2VsZl9jb25maXJtLnRpdGxlIiksYm9keTpJMThuLnQoImNvbXBvc2VyLnlvdXJzZWxmX2NvbmZpcm0uYm9keSIpfSksdGhpcy5zZW5kKCJwb3B1cCIsbikpLHRoaXMucXVldWVkRm9yVHlwaW5nLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGkuc2VuZCgicG9wdXAiLGUpfSkpfSxfY3JlYXRlOmZ1bmN0aW9uKGUpe3RoaXMucmVzZXQoKSx0aGlzLnNlbmQoInBvcHVwIixuLmRlZmF1bHQuY3JlYXRlKGUpKX0sX2ZpbmRTaW1pbGFyOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvPXRoaXMscj10aGlzLmNvbXBvc2VyO3IuZ2V0KCJjcmVhdGluZ1RvcGljIikmJihlPShyLmdldCgicmVwbHkiKXx8IiIpLnN1YnN0cigwLDIwMCksKHQ9ci5nZXQoInRpdGxlIil8fCIiKS5sZW5ndGg8dGhpcy5zaXRlU2V0dGluZ3MubWluX3RpdGxlX3NpbWlsYXJfbGVuZ3RofHwobj10K2UpIT09dGhpcy5fbGFzdFNpbWlsYXJpdHlTZWFyY2gmJih0aGlzLl9sYXN0U2ltaWxhcml0eVNlYXJjaD1uLGk9dGhpcy5zaW1pbGFyVG9waWNzLHM9dGhpcy5fc2ltaWxhclRvcGljc01lc3NhZ2V8fHIuc3RvcmUuY3JlYXRlUmVjb3JkKCJjb21wb3Nlci1tZXNzYWdlIix7aWQ6InNpbWlsYXJfdG9waWNzIix0ZW1wbGF0ZU5hbWU6InNpbWlsYXItdG9waWNzIixleHRyYUNsYXNzOiJzaW1pbGFyLXRvcGljcyJ9KSx0aGlzLl9zaW1pbGFyVG9waWNzTWVzc2FnZT1zLHIuc3RvcmUuZmluZCgic2ltaWxhci10b3BpYyIse3RpdGxlOnQscmF3OmV9KS50aGVuKGZ1bmN0aW9uKGUpe2kuY2xlYXIoKSxpLnB1c2hPYmplY3RzKGUuZ2V0KCJjb250ZW50IikpLDA8aS5nZXQoImxlbmd0aCIpPyhzLnNldCgic2ltaWxhclRvcGljcyIsaSksby5zZW5kKCJwb3B1cCIscykpOiFzfHxvLmlzRGVzdHJveWVkfHxvLmlzRGVzdHJveWluZ3x8by5zZW5kKCJoaWRlTWVzc2FnZSIscyl9KSkpfSxfZmluZE1lc3NhZ2VzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvLHI9dGhpczt0aGlzLmNoZWNrZWRNZXNzYWdlc3x8KHQ9e2NvbXBvc2VyX2FjdGlvbjooZT10aGlzLmNvbXBvc2VyKS5nZXQoImFjdGlvbiIpfSxuPWUuZ2V0KCJ0b3BpYy5pZCIpLGk9ZS5nZXQoInBvc3QuaWQiKSxuJiYodC50b3BpY19pZD1uKSxpJiYodC5wb3N0X2lkPWkpLHM9IiIrdC5jb21wb3Nlcl9hY3Rpb24rdC50b3BpY19pZCt0LnBvc3RfaWQsbz1mdW5jdGlvbihlKXt2YXIgdDtyLmlzRGVzdHJveWluZ3x8ci5pc0Rlc3Ryb3llZHx8KGUuZXh0cmFzJiZlLmV4dHJhcy5kdXBsaWNhdGVfbG9va3VwJiZyLmFkZExpbmtMb29rdXAobmV3IGEuZGVmYXVsdChlLmV4dHJhcy5kdXBsaWNhdGVfbG9va3VwKSksci5zZXQoImNoZWNrZWRNZXNzYWdlcyIsITApLHQ9ci5xdWV1ZWRGb3JUeXBpbmcsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLndhaXRfZm9yX3R5cGluZz90LmFkZE9iamVjdChlKTpyLnNlbmQoInBvcHVwIixlKX0pKX0sbC5jYWNoZUtleT09PXM/byhsLm1lc3NhZ2VzKTplLnN0b3JlLmZpbmQoImNvbXBvc2VyLW1lc3NhZ2UiLHQpLnRoZW4oZnVuY3Rpb24oZSl7bD17bWVzc2FnZXM6ZSxjYWNoZUtleTpzfSxvKGUpfSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jb21wb3Nlci1zYXZlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1idXR0b24iXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhYmluZGV4OjUsY2xhc3NOYW1lQmluZGluZ3M6WyI6YnRuLXByaW1hcnkiLCI6Y3JlYXRlIiwiZGlzYWJsZVN1Ym1pdDpkaXNhYmxlZCJdLHRpdGxlOiJjb21wb3Nlci50aXRsZSJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItdGl0bGUiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJwcmV0dHktdGV4dC9vbmVib3hlciIsInByZXR0eS10ZXh0L29uZWJveGVyLWNhY2hlIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hZnRlci10cmFuc2l0aW9uIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scixhLGwsdSxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcCxtLGYsaCxiLGc7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChwPSgwLHMuZGVmYXVsdCkoImNvbXBvc2VyLnRpdGxlTGVuZ3RoIiwiY29tcG9zZXIubWlzc2luZ1RpdGxlQ2hhcmFjdGVycyIsImNvbXBvc2VyLm1pbmltdW1UaXRsZUxlbmd0aCIsImxhc3RWYWxpZGF0ZWRBdCIpLG09KDAscy5kZWZhdWx0KSgid2F0Y2hGb3JMaW5rIiksZj0oMCxzLm9ic2VydmVzKSgiY29tcG9zZXIudGl0bGVMZW5ndGgiLCJ3YXRjaEZvckxpbmsiKSxoPSgwLHMub2JzZXJ2ZXMpKCJjb21wb3Nlci5yZXBseUxlbmd0aCIpLGI9KDAscy5kZWZhdWx0KSgiY29tcG9zZXIudGl0bGUiLCJjb21wb3Nlci50aXRsZUxlbmd0aCIpLGQoZz17Y2xhc3NOYW1lczpbInRpdGxlLWlucHV0Il0sd2F0Y2hGb3JMaW5rOigwLHQuYWxpYXMpKCJjb21wb3Nlci5jYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxkaXNhYmxlZDooMCx0Lm9yKSgiY29tcG9zZXIubG9hZGluZyIsImNvbXBvc2VyLmRpc2FibGVUaXRsZUlucHV0IiksZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwidGl0bGUiPT09dGhpcy5mb2N1c1RhcmdldCYmKGU9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSksKDAsbC5kZWZhdWx0KSgkKHRoaXMuZWxlbWVudCkuY2xvc2VzdCgiI3JlcGx5LWNvbnRyb2wiKSxmdW5jdGlvbigpe2UucHV0Q3Vyc29yQXRFbmQoKX0pKSwwPHRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZUxlbmd0aCIpJiYoMCxpLmRlYm91bmNlKSh0aGlzLHRoaXMuX3RpdGxlQ2hhbmdlZCwxMCl9LHZhbGlkYXRpb246ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9dm9pZCAwO2lmKGU8MT9zPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfbWlzc2luZyIpOjA8dD9zPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfdG9vX3Nob3J0Iix7bWluOm59KTplPnRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGgmJihzPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfdG9vX2xvbmciLHttYXg6dGhpcy5zaXRlU2V0dGluZ3MubWF4X3RvcGljX3RpdGxlX2xlbmd0aH0pKSxzKXJldHVybiBjLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnMsbGFzdFNob3duQXQ6aX0pfSx0aXRsZU1heExlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndhdGNoRm9yTGluaz9udWxsOnRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGh9LF90aXRsZUNoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOzA9PT10aGlzLmdldCgiY29tcG9zZXIudGl0bGVMZW5ndGgiKSYmdGhpcy5zZXQoImF1dG9Qb3N0ZWQiLCExKSwhdGhpcy5hdXRvUG9zdGVkJiZ0aGlzLndhdGNoRm9yTGluayYmKCJ0ZXN0Ij09PXUuZGVmYXVsdC5lbnZpcm9ubWVudD8oMCxpLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2NoZWNrRm9yVXJsKCl9KTooMCxpLmRlYm91bmNlKSh0aGlzLHRoaXMuX2NoZWNrRm9yVXJsLDUwMCkpfSxfY2xlYXJGZWF0dXJlZExpbms6ZnVuY3Rpb24oKXt0aGlzLndhdGNoRm9yTGluayYmdGhpcy5ib2R5SXNEZWZhdWx0KCkmJnRoaXMuc2V0KCJjb21wb3Nlci5mZWF0dXJlZExpbmsiLG51bGwpfSxfY2hlY2tGb3JVcmw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCYmdGhpcy5pc0Fic29sdXRlVXJsJiZ0aGlzLmJvZHlJc0RlZmF1bHQoKSl7aWYodGhpcy5nZXQoImNvbXBvc2VyLnRpdGxlIikubWF0Y2gobmV3IFJlZ0V4cCgiXmh0dHBzPzpcXC9cXC8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiaSIpKSlyZXR1cm47dGhpcy5zZXQoImNvbXBvc2VyLmxvYWRpbmciLCEwKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5ocmVmPXRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZSIpO3ZhciBlPSgwLG8ubG9hZCkoe2VsZW06bixyZWZyZXNoOiExLGFqYXg6YS5hamF4LHN5bmNocm9ub3VzOiEwLGNhdGVnb3J5SWQ6dGhpcy5nZXQoImNvbXBvc2VyLmNhdGVnb3J5LmlkIiksdG9waWNJZDp0aGlzLmdldCgiY29tcG9zZXIudG9waWMuaWQiKX0pO2UmJmUudGhlbj9lLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT0oMCxyLmxvb2t1cENhY2hlKSh0LmdldCgiY29tcG9zZXIudGl0bGUiKSk7dC5fdXBkYXRlUG9zdChlfHxuKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgiY29tcG9zZXIubG9hZGluZyIsITEpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKHQuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5wdXRDdXJzb3JBdEVuZCgpfSl9KToodGhpcy5fdXBkYXRlUG9zdChlKSx0aGlzLnNldCgiY29tcG9zZXIubG9hZGluZyIsITEpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKHQuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5wdXRDdXJzb3JBdEVuZCgpfSkpfX0sX3VwZGF0ZVBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpO2UmJih0aGlzLnNldCgiYXV0b1Bvc3RlZCIsITApLHRoaXMuc2V0KCJjb21wb3Nlci5mZWF0dXJlZExpbmsiLHRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZSIpKSxuPTA8KHQ9JChlKSkuZmluZCgiaDMiKS5sZW5ndGg/dC5maW5kKCJoMyIpOnQuZmluZCgiaDQiKSx0aGlzLmNvbXBvc2VyLmFwcGVuZFRleHQodGhpcy5nZXQoImNvbXBvc2VyLnRpdGxlIiksbnVsbCx7YmxvY2s6ITB9KSwwPG4ubGVuZ3RoJiYwPG4udGV4dCgpLmxlbmd0aD90aGlzLmNoYW5nZVRpdGxlKG4udGV4dCgpKTooaT10LmF0dHIoInRpdGxlIil8fHQuZmluZCgiW3RpdGxlXSIpLmF0dHIoInRpdGxlIikpJiYwPGkubGVuZ3RoJiZ0aGlzLmNoYW5nZVRpdGxlKGkpKX0sY2hhbmdlVGl0bGU6ZnVuY3Rpb24oZSl7ZSYmMDxlLmxlbmd0aCYmdGhpcy5zZXQoImNvbXBvc2VyLnRpdGxlIixlLnRyaW0oKSl9LGlzQWJzb2x1dGVVcmw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDx0JiYvXihodHRwcz86KT9cL1wvW1x3XC5cLV0rL2kudGVzdChlKSYmIS9ccy8udGVzdChlKX0sYm9keUlzRGVmYXVsdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJjb21wb3Nlci5yZXBseSIpfHwiIjtyZXR1cm4gMD09PWUubGVuZ3RofHxlPT09KHRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeS50b3BpY190ZW1wbGF0ZSIpfHwiIil9fSwidmFsaWRhdGlvbiIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywidmFsaWRhdGlvbiIpLGcpLGQoZywidGl0bGVNYXhMZW5ndGgiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInRpdGxlTWF4TGVuZ3RoIiksZyksZChnLCJfdGl0bGVDaGFuZ2VkIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJfdGl0bGVDaGFuZ2VkIiksZyksZChnLCJfY2xlYXJGZWF0dXJlZExpbmsiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsIl9jbGVhckZlYXR1cmVkTGluayIpLGcpLGQoZywiaXNBYnNvbHV0ZVVybCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiaXNBYnNvbHV0ZVVybCIpLGcpLGcpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItdG9nZ2xlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJjb21wb3NlU3RhdGUiKSxvPSgwLHQuZGVmYXVsdCkoImNvbXBvc2VTdGF0ZSIpLHI9KDAsdC5kZWZhdWx0KSgiY29tcG9zZVN0YXRlIiksYT0oMCx0LmRlZmF1bHQpKCJjb21wb3NlU3RhdGUiKSxpKGw9e3RhZ05hbWU6IiIsdG9nZ2xlVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuImRyYWZ0Ij09PWV8fCJzYXZpbmciPT09ZT8iY29tcG9zZXIuYWJhbmRvbiI6ImNvbXBvc2VyLmNvbGxhcHNlIn0sZnVsbHNjcmVlblRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiJkcmFmdCI9PT1lPyJjb21wb3Nlci5vcGVuIjoiZnVsbHNjcmVlbiI9PT1lPyJjb21wb3Nlci5leGl0X2Z1bGxzY3JlZW4iOiJjb21wb3Nlci5lbnRlcl9mdWxsc2NyZWVuIn0sdG9nZ2xlSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4iZHJhZnQiPT09ZXx8InNhdmluZyI9PT1lPyJ0aW1lcyI6ImNoZXZyb24tZG93biJ9LGZ1bGxzY3JlZW5JY29uOmZ1bmN0aW9uKGUpe3JldHVybiJkcmFmdCI9PT1lPyJjaGV2cm9uLXVwIjoiZnVsbHNjcmVlbiI9PT1lPyJkaXNjb3Vyc2UtY29tcHJlc3MiOiJkaXNjb3Vyc2UtZXhwYW5kIn19LCJ0b2dnbGVUaXRsZSIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidG9nZ2xlVGl0bGUiKSxsKSxpKGwsImZ1bGxzY3JlZW5UaXRsZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZnVsbHNjcmVlblRpdGxlIiksbCksaShsLCJ0b2dnbGVJY29uIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJ0b2dnbGVJY29uIiksbCksaShsLCJmdWxsc2NyZWVuSWNvbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZnVsbHNjcmVlbkljb24iKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5vYnNlcnZlcykoInVzZXJuYW1lcyIpLHI9KDAsaS5vYnNlcnZlcykoInNob3VsZEhpZGUiKSxhPSgwLGkuZGVmYXVsdCkoInVzZXJuYW1lcyIpLGw9KDAsaS5kZWZhdWx0KSgic3BsaXRVc2VybmFtZXMiLCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHU9KDAsaS5kZWZhdWx0KSgic3BsaXRVc2VybmFtZXMiLCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHMoYz17c2hvd1NlbGVjdG9yOiEwLHNob3VsZEhpZGU6ITEsZGVmYXVsdFVzZXJuYW1lQ291bnQ6MCxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJ1c2VybmFtZXMiPT09dGhpcy5mb2N1c1RhcmdldCYmJCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSkucHV0Q3Vyc29yQXRFbmQoKX0sX2NoZWNrV2lkdGg6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9MCxlPSQodGhpcy5lbGVtZW50KS5maW5kKCIuYWMtd3JhcCIpLHM9ZS53aWR0aCgpO3RoaXMuc2V0KCJkZWZhdWx0VXNlcm5hbWVDb3VudCIsMCksZS5maW5kKCIuaXRlbSIpLnRvQXJyYXkoKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PShpKz0kKGUpLm91dGVyV2lkdGgoITApKTxzO3JldHVybiB0JiZuLmluY3JlbWVudFByb3BlcnR5KCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHR9KSxzPD1pP3RoaXMuc2V0KCJzaG91bGRIaWRlIiwhMCk6dGhpcy5zZXQoInNob3VsZEhpZGUiLCExKX0sX3NldEZvY3VzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PSIjcmVwbHktY29udHJvbCAjcmVwbHktdGl0bGUsICNyZXBseS1jb250cm9sIC5kLWVkaXRvci1pbnB1dCI7dGhpcy5zaG91bGRIaWRlPyQodCkub24oImZvY3VzLmNvbXBvc2VyLXVzZXItc2VsZWN0b3IiLGZ1bmN0aW9uKCl7ZS5zZXQoInNob3dTZWxlY3RvciIsITEpLGUuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlc2l6ZSIpfSk6JCh0KS5vZmYoImZvY3VzLmNvbXBvc2VyLXVzZXItc2VsZWN0b3IiKX0sc3BsaXRVc2VybmFtZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiwiKX0sbGltaXRlZFVzZXJuYW1lczpmdW5jdGlvbihlLHQpe3JldHVybiBlLnNsaWNlKDAsdCkuam9pbigiLCAiKX0saGlkZGVuVXNlcnNDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aC10KyIgIitJMThuLnQoIm1vcmUiKX0sYWN0aW9uczp7dG9nZ2xlU2VsZWN0b3I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzaG93U2VsZWN0b3IiLCEwKSwoMCx0LnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7JChlLmVsZW1lbnQpLmZpbmQoImlucHV0IikuZm9jdXMoKX0pfSx0cmlnZ2VyUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6cmVzaXplIik7dmFyIGU9JCh0aGlzLmVsZW1lbnQpLmZpbmQoIi5hYy13cmFwIik7MTUwPD1lLmhlaWdodCgpJiZlLnNjcm9sbFRvcChlLmhlaWdodCgpKX19fSwiX2NoZWNrV2lkdGgiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9jaGVja1dpZHRoIiksYykscyhjLCJfc2V0Rm9jdXMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9zZXRGb2N1cyIpLGMpLHMoYywic3BsaXRVc2VybmFtZXMiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNwbGl0VXNlcm5hbWVzIiksYykscyhjLCJsaW1pdGVkVXNlcm5hbWVzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJsaW1pdGVkVXNlcm5hbWVzIiksYykscyhjLCJoaWRkZW5Vc2Vyc0NvdW50IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJoaWRkZW5Vc2Vyc0NvdW50IiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jb25jZXJucy9jYXRlZ29yeS1zZWFyY2gtcHJpb3JpdGllcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLnNlYXJjaFByaW9yaXRpZXM9e2lnbm9yZToxLHZlcnlfbG93OjIsbG93OjMsbm9ybWFsOjAsaGlnaDo0LHZlcnlfaGlnaDo1fX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJpc0xvYWRpbmciXSxpc0xvYWRpbmc6ITEsdGl0bGU6STE4bi50KCJjb25kaXRpb25hbF9sb2FkaW5nX3NlY3Rpb24ubG9hZGluZyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nvbm5lY3Rvci1jb250YWluZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29vay10ZXh0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG4sdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIixjb29rZWQ6bnVsbCxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxpLmNvb2tBc3luYykodGhpcy5yYXdUZXh0KS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb29rZWQiLGUpLCgwLG4ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlcXVpcmVNb2R1bGUoInByZXR0eS10ZXh0L3VwbG9hZC1zaG9ydC11cmwiKS5yZXNvbHZlQWxsU2hvcnRVcmxzKHMuYWpheCl9KX0pfX0pO28ucmVvcGVuQ2xhc3Moe3Bvc2l0aW9uYWxQYXJhbXM6WyJyYXdUZXh0Il19KSxlLmRlZmF1bHQ9b30pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY291bnQtaTE4biIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIscmVyZW5kZXJUcmlnZ2VyczpbImNvdW50Iiwic3VmZml4Il0saTE4bkNvdW50Om51bGwsZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJpMThuQ291bnQiLEkxOG4udCh0aGlzLmtleSsodGhpcy5zdWZmaXh8fCIiKSx7Y291bnQ6dGhpcy5jb3VudH0pLmh0bWxTYWZlKCkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jcmVhdGUtYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImNyZWF0ZS1hY2NvdW50Il0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQuY29va2llKCJlbWFpbCIpJiZ0aGlzLnNldCgiZW1haWwiLCQuY29va2llKCJlbWFpbCIpKSwkKHRoaXMuZWxlbWVudCkub24oImtleWRvd24uZGlzY291cnNlLWNyZWF0ZS1hY2NvdW50IixmdW5jdGlvbihlKXtpZighdC5kaXNhYmxlZCYmMTM9PT1lLmtleUNvZGUpcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuYWN0aW9uKCksITF9KSwkKHRoaXMuZWxlbWVudCkub24oImNsaWNrLmRyb3Bkb3duLXVzZXItZmllbGQtbGFiZWwiLCJbZm9yXSIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCksbj0kKCIjIit0LmF0dHIoImZvciIpKTtuLmlzKCIuc2VsZWN0LWtpdCIpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLG4uZmluZCgiLnNlbGVjdC1raXQtaGVhZGVyIikudHJpZ2dlcigiY2xpY2siKSl9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQodGhpcy5lbGVtZW50KS5vZmYoImtleWRvd24uZGlzY291cnNlLWNyZWF0ZS1hY2NvdW50IiksJCh0aGlzLmVsZW1lbnQpLm9mZigiY2xpY2suZHJvcGRvd24tdXNlci1maWVsZC1sYWJlbCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jcmVhdGUtdG9waWMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLGxhYmVsOiJ0b3BpYy5jcmVhdGUifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NyZWF0ZS10b3BpY3Mtbm90aWNlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvbGl2ZS1wb3N0LWNvdW50cyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgpLGE9KDAsdC5kZWZhdWx0KSgiZW5hYmxlZCIsInNob3VsZFNlZSIsInB1YmxpY1RvcGljQ291bnQiLCJwdWJsaWNQb3N0Q291bnQiKSxsPSgwLHQuZGVmYXVsdCkoInB1YmxpY1RvcGljQ291bnQiLCJwdWJsaWNQb3N0Q291bnQiLCJ0b3BpY1RyYWNraW5nU3RhdGUuaW5jb21pbmdDb3VudCIpLHU9KDAsdC5vYnNlcnZlcykoInRvcGljVHJhY2tpbmdTdGF0ZS5pbmNvbWluZ0NvdW50IiksbyhjPXtjbGFzc05hbWVCaW5kaW5nczpbImhpZGRlbjpoaWRkZW4iLCI6Y3JlYXRlLXRvcGljcy1ub3RpY2UiXSxlbmFibGVkOiExLHB1YmxpY1RvcGljQ291bnQ6bnVsbCxwdWJsaWNQb3N0Q291bnQ6bnVsbCxyZXF1aXJlZFRvcGljczo1LHJlcXVpcmVkUG9zdHM6KDAsbi5hbGlhcykoInNpdGVTZXR0aW5ncy50bDFfcmVxdWlyZXNfcmVhZF9wb3N0cyIpLGluaXQ6ZnVuY3Rpb24oKXt2YXIgdCxuO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNob3VsZFNlZSYmKG49dD0wLHRoaXMuc2l0ZS5nZXQoImNhdGVnb3JpZXMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZ2V0KCJyZWFkX3Jlc3RyaWN0ZWQiKXx8KHQrPWUuZ2V0KCJ0b3BpY19jb3VudCIpLG4rPWUuZ2V0KCJwb3N0X2NvdW50IikpfSksKHQ8dGhpcy5yZXF1aXJlZFRvcGljc3x8bjx0aGlzLnJlcXVpcmVkUG9zdHMpJiYodGhpcy5zZXQoImVuYWJsZWQiLCEwKSx0aGlzLmZldGNoTGl2ZVN0YXRzKCkpKX0sc2hvdWxkU2VlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlcjtyZXR1cm4gZSYmZS5nZXQoImFkbWluIikmJnRoaXMuc2l0ZVNldHRpbmdzLnNob3dfY3JlYXRlX3RvcGljc19ub3RpY2UmJiF0aGlzLnNpdGUuZ2V0KCJ3aXphcmRfcmVxdWlyZWQiKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZW5hYmxlZHx8IXRoaXMuc2hvdWxkU2VlfHxudWxsPT10aGlzLnB1YmxpY1RvcGljQ291bnR8fG51bGw9PXRoaXMucHVibGljUG9zdENvdW50fSxtZXNzYWdlOmZ1bmN0aW9uKCl7dmFyIGU9bnVsbCxlPXRoaXMucHVibGljVG9waWNDb3VudDx0aGlzLnJlcXVpcmVkVG9waWNzJiZ0aGlzLnB1YmxpY1Bvc3RDb3VudDx0aGlzLnJlcXVpcmVkUG9zdHM/InRvb19mZXdfdG9waWNzX2FuZF9wb3N0c19ub3RpY2UiOnRoaXMucHVibGljVG9waWNDb3VudDx0aGlzLnJlcXVpcmVkVG9waWNzPyJ0b29fZmV3X3RvcGljc19ub3RpY2UiOiJ0b29fZmV3X3Bvc3RzX25vdGljZSI7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoSTE4bi50KGUse3JlcXVpcmVkVG9waWNzOnRoaXMucmVxdWlyZWRUb3BpY3MscmVxdWlyZWRQb3N0czp0aGlzLnJlcXVpcmVkUG9zdHMsY3VycmVudFRvcGljczp0aGlzLnB1YmxpY1RvcGljQ291bnQsY3VycmVudFBvc3RzOnRoaXMucHVibGljUG9zdENvdW50fSkpfSxmZXRjaExpdmVTdGF0czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbmFibGVkJiZzLmRlZmF1bHQuZmluZCgpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHQuc2V0KCJwdWJsaWNUb3BpY0NvdW50IixlLmdldCgicHVibGljX3RvcGljX2NvdW50IikpLHQuc2V0KCJwdWJsaWNQb3N0Q291bnQiLGUuZ2V0KCJwdWJsaWNfcG9zdF9jb3VudCIpKSx0LnB1YmxpY1RvcGljQ291bnQ+PXQucmVxdWlyZWRUb3BpY3MmJnQucHVibGljUG9zdENvdW50Pj10LnJlcXVpcmVkUG9zdHMmJnQuc2V0KCJlbmFibGVkIiwhMSkpfSl9fSwic2hvdWxkU2VlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJzaG91bGRTZWUiKSxjKSxvKGMsImhpZGRlbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiaGlkZGVuIiksYyksbyhjLCJtZXNzYWdlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJtZXNzYWdlIiksYyksbyhjLCJmZXRjaExpdmVTdGF0cyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZmV0Y2hMaXZlU3RhdHMiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nzdi11cGxvYWRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJ1cGxvYWRpbmciKSxhPSgwLHQuZGVmYXVsdCkoInVwbG9hZGluZyIpLG8obD17dHlwZToiY3N2Iix0YWdOYW1lOiJzcGFuIix1cGxvYWRVcmw6Ii9pbnZpdGVzL3VwbG9hZF9jc3YiLHZhbGlkYXRlVXBsb2FkZWRGaWxlc09wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57Y3N2T25seTohMH19LHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJ1cGxvYWRpbmciKTpJMThuLnQoInVzZXIuaW52aXRlZC5idWxrX2ludml0ZS50ZXh0Iil9LHVwbG9hZEJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhZXx8bnVsbH0sdXBsb2FkRG9uZTpmdW5jdGlvbigpe2Jvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmludml0ZWQuYnVsa19pbnZpdGUuc3VjY2VzcyIpKX0sdXBsb2FkT3B0aW9uczpmdW5jdGlvbigpe3JldHVybnthdXRvVXBsb2FkOiExfX0sX2luaXQ6KDAscy5vbikoImRpZEluc2VydEVsZW1lbnQiLGZ1bmN0aW9uKCl7JCh0aGlzLmVsZW1lbnQpLm9uKCJmaWxldXBsb2FkYWRkIixmdW5jdGlvbihlLHQpe2Jvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuaW52aXRlZC5idWxrX2ludml0ZS5jb25maXJtYXRpb25fbWVzc2FnZSIpLEkxOG4udCgiY2FuY2VsIiksSTE4bi50KCJnb19haGVhZCIpLGZ1bmN0aW9uKGUpe3JldHVybiBlP3Quc3VibWl0KCk6dC5hYm9ydCgpfSl9KX0pfSwidXBsb2FkQnV0dG9uVGV4dCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXBsb2FkQnV0dG9uVGV4dCIpLGwpLG8obCwidXBsb2FkQnV0dG9uRGlzYWJsZWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInVwbG9hZEJ1dHRvbkRpc2FibGVkIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jdXN0b20taHRtbCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9oZWxwZXJzL2N1c3RvbS1odG1sIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dHJpZ2dlckFwcEV2ZW50Om51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLm5hbWUsdD0oMCxuLmdldEN1c3RvbUhUTUwpKGUpO3Q/KHRoaXMuc2V0KCJodG1sIix0KSx0aGlzLnNldCgibGF5b3V0TmFtZSIsImNvbXBvbmVudHMvY3VzdG9tLWh0bWwtY29udGFpbmVyIikpOigwLGkuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgidGVtcGxhdGU6IitlKSYmdGhpcy5zZXQoImxheW91dE5hbWUiLGUpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJ0cnVlIj09PXRoaXMudHJpZ2dlckFwcEV2ZW50JiZ0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJpbnNlcnRlZC1jdXN0b20taHRtbDoiK3RoaXMubmFtZSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwidHJ1ZSI9PT10aGlzLnRyaWdnZXJBcHBFdmVudCYmdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiZGVzdHJveWVkLWN1c3RvbS1odG1sOiIrdGhpcy5uYW1lKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiaWNvbiIsInRyYW5zbGF0ZWRMYWJlbCIpLHI9KDAsaS5kZWZhdWx0KSgidGl0bGUiKSxhPSgwLGkuZGVmYXVsdCkoImxhYmVsIikscChsPXtsYXlvdXROYW1lOiJjb21wb25lbnRzL2QtYnV0dG9uIixmb3JtOm51bGwsdHlwZToiYnV0dG9uIix0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiYnRuTGluazo6YnRuIiwiYnRuTGluayIsIm5vVGV4dCIsImJ0blR5cGUiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImZvcm0iLCJkaXNhYmxlZCIsInRyYW5zbGF0ZWRUaXRsZTp0aXRsZSIsInRyYW5zbGF0ZWRMYWJlbDphcmlhLWxhYmVsIiwidGFiaW5kZXgiLCJ0eXBlIl0sYnRuSWNvbjooMCx0Lm5vdEVtcHR5KSgiaWNvbiIpLGJ0bkxpbms6KDAsdC5lcXVhbCkoImRpc3BsYXkiLCJsaW5rIiksYnRuVHlwZTpmdW5jdGlvbihlLHQpe3JldHVybiBlP3Q/ImJ0bi1pY29uLXRleHQiOiJidG4taWNvbiI6dD8iYnRuLXRleHQiOnZvaWQgMH0sbm9UZXh0OigwLHQuZW1wdHkpKCJ0cmFuc2xhdGVkTGFiZWwiKSx0cmFuc2xhdGVkVGl0bGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVkVGl0bGU/dGhpcy5fdHJhbnNsYXRlZFRpdGxlOnRoaXMudGl0bGU/STE4bi50KHRoaXMudGl0bGUpOnZvaWQgMH0sc2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl90cmFuc2xhdGVkVGl0bGU9ZX19LHRyYW5zbGF0ZWRMYWJlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZWRMYWJlbD90aGlzLl90cmFuc2xhdGVkTGFiZWw6dGhpcy5sYWJlbD9JMThuLnQodGhpcy5sYWJlbCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZWRMYWJlbD1lfX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmFjdGlvbjtyZXR1cm4gZSYmKCJzdHJpbmciPT10eXBlb2YgZT90aGlzLnNlbmRBY3Rpb24oImFjdGlvbiIsdGhpcy5hY3Rpb25QYXJhbSk6Im9iamVjdCI9PT0odm9pZCAwPT09ZT8idW5kZWZpbmVkIjpkKGUpKSYmZS52YWx1ZT9lLnZhbHVlKHRoaXMuYWN0aW9uUGFyYW0pOiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmFjdGlvbiYmZSh0aGlzLmFjdGlvblBhcmFtKSksdGhpcy5ocmVmJiZ0aGlzLmhyZWYubGVuZ3RoJiZzLmRlZmF1bHQucm91dGVUbyh0aGlzLmhyZWYpLCExfX0sImJ0blR5cGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImJ0blR5cGUiKSxsKSxwKGwsInRyYW5zbGF0ZWRUaXRsZSIsW3JdLCh1PSh1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHJhbnNsYXRlZFRpdGxlIikpP3UudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB1fX0pLGwpLHAobCwidHJhbnNsYXRlZExhYmVsIixbYV0sKGM9KGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJ0cmFuc2xhdGVkTGFiZWwiKSk/Yy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kLW1vZGFsLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsibW9kYWwtYm9keSJdLGZpeGVkOiExLGRpc21pc3NhYmxlOiEwLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiI21vZGFsLWFsZXJ0IikuaGlkZSgpO3ZhciBlPSQodGhpcy5lbGVtZW50KS5jbG9zZXN0KCIuZC1tb2RhbC5maXhlZC1tb2RhbCIpO2UubGVuZ3RoJiYodGhpcy5zZXQoImZpeGVkIiwhMCksZS5tb2RhbCgic2hvdyIpKSwoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX2FmdGVyRmlyc3RSZW5kZXIpLHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbC1ib2R5OmZsYXNoIix0aGlzLCJfZmxhc2giKSx0aGlzLmFwcEV2ZW50cy5vbigibW9kYWwtYm9keTpjbGVhckZsYXNoIix0aGlzLCJfY2xlYXJGbGFzaCIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJtb2RhbC1ib2R5OmZsYXNoIix0aGlzLCJfZmxhc2giKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsLWJvZHk6Y2xlYXJGbGFzaCIsdGhpcywiX2NsZWFyRmxhc2giKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbDpib2R5LWRpc21pc3NlZCIpfSxfYWZ0ZXJGaXJzdFJlbmRlcjpmdW5jdGlvbigpeyF0aGlzLnNpdGUubW9iaWxlVmlldyYmImZhbHNlIiE9PXRoaXMuYXV0b0ZvY3VzJiZ0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSYmdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTt2YXIgZSx0LG49dGhpcy5tYXhIZWlnaHQ7IW58fDA8KGU9cGFyc2VGbG9hdChuKS8xMDApJiYodD0kKHdpbmRvdykuaGVpZ2h0KCksJCh0aGlzLmVsZW1lbnQpLmNzcygibWF4LWhlaWdodCIsTWF0aC5mbG9vcihlKnQpKyJweCIpKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbDpib2R5LXNob3duIix0aGlzLmdldFByb3BlcnRpZXMoInRpdGxlIiwicmF3VGl0bGUiLCJmaXhlZCIsInN1YnRpdGxlIiwicmF3U3VidGl0bGUiLCJkaXNtaXNzYWJsZSIpKX0sX2NsZWFyRmxhc2g6ZnVuY3Rpb24oKXskKCIjbW9kYWwtYWxlcnQiKS5oaWRlKCkucmVtb3ZlQ2xhc3MoImFsZXJ0LWVycm9yIiwiYWxlcnQtc3VjY2VzcyIpfSxfZmxhc2g6ZnVuY3Rpb24oZSl7dGhpcy5fY2xlYXJGbGFzaCgpLCQoIiNtb2RhbC1hbGVydCIpLmFkZENsYXNzKCJhbGVydCBhbGVydC0iKyhlLm1lc3NhZ2VDbGFzc3x8InN1Y2Nlc3MiKSkuaHRtbChlLnRleHR8fCIiKS5mYWRlSW4oKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1tb2RhbC1jYW5jZWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1tb2RhbCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSxuLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCx0Lm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLHI9KDAsdC5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHMoYT17Y2xhc3NOYW1lQmluZGluZ3M6WyI6bW9kYWwiLCI6ZC1tb2RhbCIsIm1vZGFsQ2xhc3MiLCJtb2RhbFN0eWxlIiwiaGFzUGFuZWxzIl0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLWtleWJvYXJkIl0sZGlzbWlzc2FibGU6ITAsdGl0bGU6bnVsbCxzdWJ0aXRsZTpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksImlubGluZS1tb2RhbCIhPT10aGlzLm1vZGFsU3R5bGUmJih0aGlzLnNldCgiZWxlbWVudElkIiwiZGlzY291cnNlLW1vZGFsIiksdGhpcy5zZXQoIm1vZGFsU3R5bGUiLCJmaXhlZC1tb2RhbCIpKX0sImRhdGEta2V5Ym9hcmQiOiJmYWxzZSIsc2V0VXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOyQoImh0bWwiKS5vbigia2V5dXAuZGlzY291cnNlLW1vZGFsIixmdW5jdGlvbihlKXswPCQoIiNkaXNjb3Vyc2UtbW9kYWw6dmlzaWJsZSIpLmxlbmd0aCYmKDI3PT09ZS53aGljaCYmdC5kaXNtaXNzYWJsZSYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiAkKCIubW9kYWwtaGVhZGVyIGJ1dHRvbi5tb2RhbC1jbG9zZSIpLmNsaWNrKCl9KSwxMz09PWUud2hpY2gmJnQudHJpZ2dlckNsaWNrT25FbnRlcihlKSYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiAkKCIubW9kYWwtZm9vdGVyIC5idG4tcHJpbWFyeSIpLmNsaWNrKCl9KSl9KSx0aGlzLmFwcEV2ZW50cy5vbigibW9kYWw6Ym9keS1zaG93biIsdGhpcywiX21vZGFsQm9keVNob3duIil9LGNsZWFuVXA6ZnVuY3Rpb24oKXskKCJodG1sIikub2ZmKCJrZXl1cC5kaXNjb3Vyc2UtbW9kYWwiKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsOmJvZHktc2hvd24iLHRoaXMsIl9tb2RhbEJvZHlTaG93biIpfSx0cmlnZ2VyQ2xpY2tPbkVudGVyOmZ1bmN0aW9uKGUpe3JldHVybiEoZS50YXJnZXQuY2xvc2VzdCgiZm9ybSIpfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50JiYiVEVYVEFSRUEiPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSl9LG1vdXNlRG93bjpmdW5jdGlvbihlKXt2YXIgdDshdGhpcy5kaXNtaXNzYWJsZXx8KCh0PSQoZS50YXJnZXQpKS5oYXNDbGFzcygibW9kYWwtbWlkZGxlLWNvbnRhaW5lciIpfHx0Lmhhc0NsYXNzKCJtb2RhbC1vdXRlci1jb250YWluZXIiKSkmJiQoIi5tb2RhbC1oZWFkZXIgYnV0dG9uLm1vZGFsLWNsb3NlIikuY2xpY2soKX0sX21vZGFsQm9keVNob3duOmZ1bmN0aW9uKGUpe3RoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoZS5maXhlZCYmdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGUudGl0bGU/dGhpcy5zZXQoInRpdGxlIixJMThuLnQoZS50aXRsZSkpOmUucmF3VGl0bGUmJnRoaXMuc2V0KCJ0aXRsZSIsZS5yYXdUaXRsZSksZS5zdWJ0aXRsZT90aGlzLnNldCgic3VidGl0bGUiLEkxOG4udChlLnN1YnRpdGxlKSk6ZS5yYXdTdWJ0aXRsZT90aGlzLnNldCgic3VidGl0bGUiLGUucmF3U3VidGl0bGUpOnRoaXMuc2V0KCJzdWJ0aXRsZSIsbnVsbCksImRpc21pc3NhYmxlImluIGU/dGhpcy5zZXQoImRpc21pc3NhYmxlIixlLmRpc21pc3NhYmxlKTp0aGlzLnNldCgiZGlzbWlzc2FibGUiLCEwKSl9fSwic2V0VXAiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNldFVwIiksYSkscyhhLCJjbGVhblVwIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJjbGVhblVwIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kLW5hdmlnYXRpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvbmF2LWl0ZW0iLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LGEsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQsKHI9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxsPSgwLHQuZGVmYXVsdCkoKSx1PSgwLHQuZGVmYXVsdCkoImhhc0RyYWZ0IiksYz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5jYW5fZWRpdCIpLGQ9KDAsdC5kZWZhdWx0KSgiZmlsdGVyVHlwZSIsImNhdGVnb3J5Iiwibm9TdWJjYXRlZ29yaWVzIiksbyhwPXtyb3V0ZXI6KDAsbi5pbmplY3QpKCkscGVyc2lzdGVkUXVlcnlQYXJhbXM6bnVsbCx0YWdOYW1lOiIiLHNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnRoaXMuY3VycmVudFVzZXJ9LGNhdGVnb3JpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKX0sY3JlYXRlVG9waWNMYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gZT8idG9waWMub3Blbl9kcmFmdCI6InRvcGljLmNyZWF0ZSJ9LHNob3dDYXRlZ29yeUVkaXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LG5hdkl0ZW1zOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxzLG89dm9pZCAwLHI9dGhpcy5nZXQoInJvdXRlci5jdXJyZW50Um91dGUucXVlcnlQYXJhbXMiKTtyZXR1cm4gdGhpcy5wZXJzaXN0ZWRRdWVyeVBhcmFtcyYmciYmKGk9T2JqZWN0LmtleXMocikscz1PYmplY3Qua2V5cyh0aGlzLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKSxvPWkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPHMuaW5kZXhPZihlKX0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPXJbdF0sZX0se30pKSxhLmRlZmF1bHQuYnVpbGRMaXN0KHQse2ZpbHRlclR5cGU6ZSxub1N1YmNhdGVnb3JpZXM6bixwZXJzaXN0ZWRRdWVyeVBhcmFtczpvfSl9LGFjdGlvbnM6e2NoYW5nZUNhdGVnb3J5Tm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7dGhpcy5jYXRlZ29yeS5zZXROb3RpZmljYXRpb24oZSl9LHNlbGVjdENhdGVnb3J5QWRtaW5Ecm9wZG93bkFjdGlvbjpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJjcmVhdGUiOnRoaXMuY3JlYXRlQ2F0ZWdvcnkoKTticmVhaztjYXNlInJlb3JkZXIiOnRoaXMucmVvcmRlckNhdGVnb3JpZXMoKX19fX0sInNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnMiKSxwKSxvKHAsImNhdGVnb3JpZXMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhdGVnb3JpZXMiKSxwKSxvKHAsImNyZWF0ZVRvcGljTGFiZWwiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNyZWF0ZVRvcGljTGFiZWwiKSxwKSxvKHAsInNob3dDYXRlZ29yeUVkaXQiLFtjXSwobT0obT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dDYXRlZ29yeUVkaXQiKSk/bS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIG19fSkscCksbyhwLCJuYXZJdGVtcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibmF2SXRlbXMiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Qtc2VjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsLXRvcCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJzZWN0aW9uIixkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMucGFnZUNsYXNzO2UmJiQoImJvZHkiKS5hZGRDbGFzcyhlKyItcGFnZSIpO3ZhciB0PXRoaXMuYm9keUNsYXNzO3QmJiQoImJvZHkiKS5hZGRDbGFzcyh0KSwiZmFsc2UiIT09dGhpcy5zY3JvbGxUb3AmJigwLG4uc2Nyb2xsVG9wKSgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5wYWdlQ2xhc3M7ZSYmJCgiYm9keSIpLnJlbW92ZUNsYXNzKGUrIi1wYWdlIik7dmFyIHQ9dGhpcy5ib2R5Q2xhc3M7dCYmJCgiYm9keSIpLnJlbW92ZUNsYXNzKHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kYXRlLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxpLHQscyxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHIsYSxsLHUsYz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBkKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLG4uZGVmYXVsdCkoInNpdGUubW9iaWxlVmlldyIpLHI9KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxhPSgwLG4ub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxsPSgwLG4uZGVmYXVsdCkoKSxkKHU9e2NsYXNzTmFtZXM6WyJkLWRhdGUtaW5wdXQiXSxkYXRlOm51bGwsX3BpY2tlcjpudWxsLGlucHV0VHlwZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZGF0ZSI6InRleHQifSxfbG9hZERhdGVQaWNrZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiIyIrdGhpcy5jb250YWluZXJJZCk7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5fbG9hZE5hdGl2ZVBpY2tlcihlKTp0aGlzLl9sb2FkUGlrYWRheVBpY2tlcihlKSx0aGlzLmRhdGUmJnRoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLnNldERhdGUodGhpcy5kYXRlLCEwKX0sZGlkVXBkYXRlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9waWNrZXImJiJzdHJpbmciPT10eXBlb2YgZGF0ZSYmKGU9dGhpcy5kYXRlLnNwbGl0KCItIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pLG49KHQ9YyhlLDMpKVswXSxpPXRbMV0scz10WzJdLHRoaXMuX3BpY2tlci5zZXREYXRlKG5ldyBEYXRlKG4saS0xLHMpLCEwKSl9LF9sb2FkUGlrYWRheVBpY2tlcjpmdW5jdGlvbih0KXt2YXIgbj10aGlzOygwLHMuZGVmYXVsdCkoIi9qYXZhc2NyaXB0cy9waWthZGF5LmpzIikudGhlbihmdW5jdGlvbigpeygwLGkubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT17ZmllbGQ6bi5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLXBpY2tlciIpLGNvbnRhaW5lcjp0fHxuLmVsZW1lbnQsYm91bmQ6bnVsbD09PXQsZm9ybWF0OiJMTCIsZmlyc3REYXk6MSxpMThuOntwcmV2aW91c01vbnRoOkkxOG4udCgiZGF0ZXMucHJldmlvdXNfbW9udGgiKSxuZXh0TW9udGg6STE4bi50KCJkYXRlcy5uZXh0X21vbnRoIiksbW9udGhzOm1vbWVudC5tb250aHMoKSx3ZWVrZGF5czptb21lbnQud2Vla2RheXMoKSx3ZWVrZGF5c1Nob3J0Om1vbWVudC53ZWVrZGF5c1Nob3J0KCl9LG9uU2VsZWN0OmZ1bmN0aW9uKGUpe3JldHVybiBuLl9oYW5kbGVTZWxlY3Rpb24oZSl9fTtuLl9waWNrZXI9bmV3IFBpa2FkYXkoT2JqZWN0LmFzc2lnbihlLG4uX29wdHMoKSkpLG4uX3BpY2tlci5zZXREYXRlKG4uZGF0ZSwhMCl9KX0pfSxfbG9hZE5hdGl2ZVBpY2tlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49KGV8fHRoaXMuZWxlbWVudCkucXVlcnlTZWxlY3RvcigiaW5wdXQuZGF0ZS1waWNrZXIiKTtuLm9uY2hhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuX2hhbmRsZVNlbGVjdGlvbihuLnZhbHVlKX0sbi5oaWRlPWZ1bmN0aW9uKCl7fSxuLmRlc3Ryb3k9ZnVuY3Rpb24oKXt9LG4uc2V0RGF0ZT1mdW5jdGlvbihlKXtuLnZhbHVlPWV9LHRoaXMuX3BpY2tlcj1ufSxfaGFuZGxlU2VsZWN0aW9uOmZ1bmN0aW9uKGUpeyF0aGlzLmVsZW1lbnR8fHRoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwodGhpcy5fcGlja2VyJiZ0aGlzLl9waWNrZXIuaGlkZSgpLHRoaXMub25DaGFuZ2UmJnRoaXMub25DaGFuZ2UoZSkpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLmRlc3Ryb3koKSx0aGlzLl9waWNrZXI9bnVsbH0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJkYXRlcy5wbGFjZWhvbGRlciIpfSxfb3B0czpmdW5jdGlvbigpe3JldHVybiBudWxsfSxhY3Rpb25zOntvbklucHV0OmZ1bmN0aW9uKGUpe3RoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLnNldERhdGUoZS50YXJnZXQudmFsdWUsITApfX19LCJpbnB1dFR5cGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsImlucHV0VHlwZSIpLHUpLGQodSwiX2xvYWREYXRlUGlja2VyIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfbG9hZERhdGVQaWNrZXIiKSx1KSxkKHUsIl9kZXN0cm95IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfZGVzdHJveSIpLHUpLGQodSwicGxhY2Vob2xkZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInBsYWNlaG9sZGVyIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kYXRlLXBpY2tlci1mdXR1cmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJjb21wb25lbnRzL2RhdGUtcGlja2VyIixfb3B0czpmdW5jdGlvbigpe3JldHVybntkZWZhdWx0RGF0ZTp0aGlzLmRlZmF1bHREYXRlfHxtb21lbnQoKS5hZGQoMSwiZGF5IikudG9EYXRlKCksc2V0RGVmYXVsdERhdGU6ISF0aGlzLmRlZmF1bHREYXRlLG1pbkRhdGU6dGhpcy5taW5EYXRlfHxtb21lbnQoKS50b0RhdGUoKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXBhc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJjb21wb25lbnRzL2RhdGUtcGlja2VyIixfb3B0czpmdW5jdGlvbigpe3JldHVybntkZWZhdWx0RGF0ZTptb21lbnQodGhpcy5kZWZhdWx0RGF0ZSwiWVlZWS1NTS1ERCIpLnRvRGF0ZSgpfHxuZXcgRGF0ZSxzZXREZWZhdWx0RGF0ZTohIXRoaXMuZGVmYXVsdERhdGUsbWF4RGF0ZTpuZXcgRGF0ZX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxpLHQscyxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZD0iWVlZWS1NTS1ERCI7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsbi5kZWZhdWx0KSgic2l0ZS5tb2JpbGVWaWV3IiksYT0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGw9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHU9KDAsbi5kZWZhdWx0KSgpLG8oYz17Y2xhc3NOYW1lczpbImRhdGUtcGlja2VyLXdyYXBwZXIiXSxfcGlja2VyOm51bGwsdmFsdWU6bnVsbCxpbnB1dFR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImRhdGUiOiJ0ZXh0In0sX2xvYWREYXRlUGlja2VyOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5fbG9hZE5hdGl2ZVBpY2tlcigpOihlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29udGFpbmVySWQpLHRoaXMuX2xvYWRQaWthZGF5UGlja2VyKGUpKX0sX2xvYWRQaWthZGF5UGlja2VyOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7KDAscy5kZWZhdWx0KSgiL2phdmFzY3JpcHRzL3Bpa2FkYXkuanMiKS50aGVuKGZ1bmN0aW9uKCl7KDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlPXtmaWVsZDpuLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGUtcGlja2VyIiksY29udGFpbmVyOnR8fG51bGwsYm91bmQ6bnVsbD09PXQsZm9ybWF0OmQsZmlyc3REYXk6MSxpMThuOntwcmV2aW91c01vbnRoOkkxOG4udCgiZGF0ZXMucHJldmlvdXNfbW9udGgiKSxuZXh0TW9udGg6STE4bi50KCJkYXRlcy5uZXh0X21vbnRoIiksbW9udGhzOm1vbWVudC5tb250aHMoKSx3ZWVrZGF5czptb21lbnQud2Vla2RheXMoKSx3ZWVrZGF5c1Nob3J0Om1vbWVudC53ZWVrZGF5c01pbigpfSxvblNlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4gbi5faGFuZGxlU2VsZWN0aW9uKGUpfX07bi5fcGlja2VyPW5ldyBQaWthZGF5KE9iamVjdC5hc3NpZ24oZSxuLl9vcHRzKCkpKX0pfSl9LF9sb2FkTmF0aXZlUGlja2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dC5kYXRlLXBpY2tlciIpO3Qub25jaGFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gZS5faGFuZGxlU2VsZWN0aW9uKHQudmFsdWUpfSx0LmhpZGU9ZnVuY3Rpb24oKXt9LHQuZGVzdHJveT1mdW5jdGlvbigpe30sdGhpcy5fcGlja2VyPXR9LF9oYW5kbGVTZWxlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQ9bW9tZW50KGUpLmZvcm1hdChkKTshdGhpcy5lbGVtZW50fHx0aGlzLmlzRGVzdHJveWluZ3x8dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5vblNlbGVjdCYmdGhpcy5vblNlbGVjdCh0KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9waWNrZXImJih0aGlzLl9waWNrZXIuZGVzdHJveSgpLHRoaXMuX3BpY2tlcj1udWxsKX0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJkYXRlcy5wbGFjZWhvbGRlciIpfSxfb3B0czpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sImlucHV0VHlwZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiaW5wdXRUeXBlIiksYyksbyhjLCJfbG9hZERhdGVQaWNrZXIiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9sb2FkRGF0ZVBpY2tlciIpLGMpLG8oYywiX2Rlc3Ryb3kiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9kZXN0cm95IiksYyksbyhjLCJwbGFjZWhvbGRlciIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywicGxhY2Vob2xkZXIiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtdGltZS1pbnB1dC1yYW5nZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImQtZGF0ZS10aW1lLWlucHV0LXJhbmdlIl0sZnJvbTpudWxsLHRvOm51bGwsb25DaGFuZ2VUbzpudWxsLG9uQ2hhbmdlRnJvbTpudWxsLGN1cnJlbnRQYW5lbDoiZnJvbSIsc2hvd0Zyb21UaW1lOiEwLHNob3dUb1RpbWU6ITAsZXJyb3I6bnVsbCxmcm9tUGFuZWxBY3RpdmU6KDAsdC5lcXVhbCkoImN1cnJlbnRQYW5lbCIsImZyb20iKSx0b1BhbmVsQWN0aXZlOigwLHQuZXF1YWwpKCJjdXJyZW50UGFuZWwiLCJ0byIpLF92YWxpZDpmdW5jdGlvbihlKXtyZXR1cm4hKGUudG8mJmUuZnJvbSYmZS50bzxlLmZyb20pfHxJMThuLnQoImRhdGVfdGltZV9waWNrZXIuZXJyb3JzLnRvX2JlZm9yZV9mcm9tIil9LGFjdGlvbnM6e19vbkNoYW5nZTpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvO3RoaXMub25DaGFuZ2UmJihuPXtmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfSwoaT17fSlbZS5wcm9wXT10LHM9T2JqZWN0LmFzc2lnbihuLGkpLCEwPT09KG89dGhpcy5fdmFsaWQocykpPyh0aGlzLnNldCgiZXJyb3IiLG51bGwpLHRoaXMub25DaGFuZ2UocykpOnRoaXMuc2V0KCJlcnJvciIsbykpfSxvbkNoYW5nZVBhbmVsOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJjdXJyZW50UGFuZWwiLGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGF0ZS10aW1lLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiZC1kYXRlLXRpbWUtaW5wdXQiXSxkYXRlOm51bGwsc2hvd1RpbWU6ITAsX2hvdXJzOigwLG4uY29tcHV0ZWQpKCJkYXRlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGUmJnRoaXMuc2hvd1RpbWU/dGhpcy5kYXRlLmdldEhvdXJzKCk6bnVsbH0pLF9taW51dGVzOigwLG4uY29tcHV0ZWQpKCJkYXRlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGUmJnRoaXMuc2hvd1RpbWU/dGhpcy5kYXRlLmdldE1pbnV0ZXMoKTpudWxsfSksYWN0aW9uczp7b25DaGFuZ2VUaW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG4saTt0aGlzLm9uQ2hhbmdlJiYodD10aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSxuPXRoaXMuZGF0ZS5nZXRNb250aCgpLGk9dGhpcy5kYXRlLmdldERhdGUoKSx0aGlzLm9uQ2hhbmdlKG5ldyBEYXRlKHQsbixpLGUuaG91cnMsZS5taW51dGVzKSkpfSxvbkNoYW5nZURhdGU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpO3RoaXMub25DaGFuZ2UmJih0PWUuZ2V0RnVsbFllYXIoKSxuPWUuZ2V0TW9udGgoKSxpPWUuZ2V0RGF0ZSgpLHRoaXMub25DaGFuZ2UobmV3IERhdGUodCxuLGksdGhpcy5faG91cnN8fDAsdGhpcy5fbWludXRlc3x8MCkpKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSIsImRpc2NvdXJzZS9saWIvZGVza3RvcC1ub3RpZmljYXRpb25zIiwiZGlzY291cnNlL2xpYi9wdXNoLW5vdGlmaWNhdGlvbnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGg9bmV3IHMuZGVmYXVsdChvLmNvbnRleHQpO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoImlzTm90U3VwcG9ydGVkIiksdT0oMCx0LmRlZmF1bHQpKCJpc05vdFN1cHBvcnRlZCIsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIiksYz0oMCx0LmRlZmF1bHQpKCJpc05vdFN1cHBvcnRlZCIsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIiksZD0oMCx0LmRlZmF1bHQpKCJpc0dyYW50ZWRQZXJtaXNzaW9uIiwibm90aWZpY2F0aW9uc0Rpc2FibGVkIiksYShwPXtjbGFzc05hbWVzOlsiY29udHJvbHMiXSxub3RpZmljYXRpb25zUGVybWlzc2lvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iIjpOb3RpZmljYXRpb24ucGVybWlzc2lvbn0sbm90aWZpY2F0aW9uc0Rpc2FibGVkOntzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGguc2V0SXRlbSgibm90aWZpY2F0aW9ucy1kaXNhYmxlZCIsZSksaC5nZXRJdGVtKCJub3RpZmljYXRpb25zLWRpc2FibGVkIil9LGdldDpmdW5jdGlvbigpe3JldHVybiBoLmdldEl0ZW0oIm5vdGlmaWNhdGlvbnMtZGlzYWJsZWQiKX19LGlzTm90U3VwcG9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXdpbmRvdy5Ob3RpZmljYXRpb259LGlzRGVuaWVkUGVybWlzc2lvbjpmdW5jdGlvbihlLHQpe3JldHVybiFlJiYiZGVuaWVkIj09PXR9LGlzR3JhbnRlZFBlcm1pc3Npb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmImdyYW50ZWQiPT09dH0saXNFbmFibGVkRGVza3RvcDpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmIXR9LGlzRW5hYmxlZFB1c2g6e3NldDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmN1cnJlbnRVc2VyO3JldHVybiEhdCYmKHIua2V5VmFsdWVTdG9yZS5zZXRJdGVtKCgwLHIudXNlclN1YnNjcmlwdGlvbktleSkodCksZSksci5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0oKDAsci51c2VyU3Vic2NyaXB0aW9uS2V5KSh0KSkpfSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRVc2VyO3JldHVybiEhZSYmci5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0oKDAsci51c2VyU3Vic2NyaXB0aW9uS2V5KShlKSl9fSxpc0VuYWJsZWQ6KDAsbi5vcikoImlzRW5hYmxlZERlc2t0b3AiLCJpc0VuYWJsZWRQdXNoIiksaXNQdXNoTm90aWZpY2F0aW9uc1ByZWZlcnJlZDpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zaXRlLm1vYmlsZVZpZXcmJigwLHIuaXNQdXNoTm90aWZpY2F0aW9uc1N1cHBvcnRlZCkodGhpcy5zaXRlLm1vYmlsZVZpZXcpfSxhY3Rpb25zOntyZWNoZWNrUGVybWlzc2lvbjpmdW5jdGlvbigpe3RoaXMubm90aWZ5UHJvcGVydHlDaGFuZ2UoIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIil9LHR1cm5vZmY6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuaXNFbmFibGVkRGVza3RvcCYmKHRoaXMuc2V0KCJub3RpZmljYXRpb25zRGlzYWJsZWQiLCJkaXNhYmxlZCIpLHRoaXMubm90aWZ5UHJvcGVydHlDaGFuZ2UoIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIikpLHRoaXMuaXNFbmFibGVkUHVzaCYmKDAsci51bnN1YnNjcmliZSkodGhpcy5jdXJyZW50VXNlcixmdW5jdGlvbigpe2Uuc2V0KCJpc0VuYWJsZWRQdXNoIiwiIil9KX0sdHVybm9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmlzUHVzaE5vdGlmaWNhdGlvbnNQcmVmZXJyZWQoKT8oMCxyLnN1YnNjcmliZSkoZnVuY3Rpb24oKXtlLnNldCgiaXNFbmFibGVkUHVzaCIsInN1YnNjcmliZWQiKX0sdGhpcy5zaXRlU2V0dGluZ3MudmFwaWRfcHVibGljX2tleV9ieXRlcyk6KHRoaXMuc2V0KCJub3RpZmljYXRpb25zRGlzYWJsZWQiLCIiKSxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oZnVuY3Rpb24oKXsoMCxvLmNvbmZpcm1Ob3RpZmljYXRpb24pKCksZS5ub3RpZnlQcm9wZXJ0eUNoYW5nZSgibm90aWZpY2F0aW9uc1Blcm1pc3Npb24iKX0pKX19fSwibm90aWZpY2F0aW9uc1Blcm1pc3Npb24iLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIikscCksYShwLCJub3RpZmljYXRpb25zRGlzYWJsZWQiLFt0LmRlZmF1bHRdLChtPShtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibm90aWZpY2F0aW9uc0Rpc2FibGVkIikpP20udmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBtfX0pLHApLGEocCwiaXNOb3RTdXBwb3J0ZWQiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaXNOb3RTdXBwb3J0ZWQiKSxwKSxhKHAsImlzRGVuaWVkUGVybWlzc2lvbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaXNEZW5pZWRQZXJtaXNzaW9uIikscCksYShwLCJpc0dyYW50ZWRQZXJtaXNzaW9uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpc0dyYW50ZWRQZXJtaXNzaW9uIikscCksYShwLCJpc0VuYWJsZWREZXNrdG9wIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpc0VuYWJsZWREZXNrdG9wIikscCksYShwLCJpc0VuYWJsZWRQdXNoIixbdC5kZWZhdWx0XSwoZj0oZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImlzRW5hYmxlZFB1c2giKSk/Zi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSkscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToidHIiLGNsYXNzTmFtZUJpbmRpbmdzOlsibWUiXSxtZTooMCxuLnByb3BlcnR5RXF1YWwpKCJpdGVtLnVzZXIuaWQiLCJjdXJyZW50VXNlci5pZCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RpcmVjdG9yeS10b2dnbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZmllbGQiLCJsYWJlbEtleSIpLHI9bz17dGFnTmFtZToidGgiLGNsYXNzTmFtZXM6WyJzb3J0YWJsZSJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGl0bGUiXSxsYWJlbEtleTpudWxsLGNoZXZyb25JY29uOm51bGwsY29sdW1uSWNvbjpudWxsLHRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8ImRpcmVjdG9yeS4iK3RoaXMuZmllbGQsSTE4bi50KHQrIl9sb25nIix7ZGVmYXVsdFZhbHVlOkkxOG4udCh0KX0pfSx0b2dnbGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5vcmRlcj09PXRoaXMuZmllbGQ/dGhpcy5zZXQoImFzYyIsIXRoaXMuYXNjfHxudWxsKTp0aGlzLnNldFByb3BlcnRpZXMoe29yZGVyOnRoaXMuZmllbGQsYXNjOm51bGx9KX0sdG9nZ2xlQ2hldnJvbjpmdW5jdGlvbigpe3ZhciBlO3RoaXMub3JkZXI9PT10aGlzLmZpZWxkPyhlPSgwLGkuaWNvbkhUTUwpKHRoaXMuYXNjPyJjaGV2cm9uLXVwIjoiY2hldnJvbi1kb3duIiksdGhpcy5zZXQoImNoZXZyb25JY29uIiwoIiIrZSkuaHRtbFNhZmUoKSkpOnRoaXMuc2V0KCJjaGV2cm9uSWNvbiIsbnVsbCl9LGNsaWNrOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0aWVzKCl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRvZ2dsZUNoZXZyb24oKX0saW5pdDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmljb24mJihlPSgwLGkuaWNvbkhUTUwpKHRoaXMuaWNvbiksdGhpcy5zZXQoImNvbHVtbkljb24iLCgiIitlKS5odG1sU2FmZSgpKSl9fSxhPSJ0aXRsZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRpdGxlIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzYWJsZWQtaWNvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIsY2xhc3NOYW1lQmluZGluZ3M6WyI6ZmEtc3RhY2siXX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiYmFubmVyLmh0bWwiKSxvPSgwLHQuZGVmYXVsdCkoInVzZXIuZGlzbWlzc2VkX2Jhbm5lcl9rZXkiLCJiYW5uZXIua2V5IiwiaGlkZSIpLGkocj17Y29udGVudDpmdW5jdGlvbihlKXt2YXIgdD0kKCI8ZGl2PiIpO3JldHVybiB0LmFwcGVuZChlKSx0LmZpbmQoIltpZF49J2hlYWRpbmctLSddIikucmVtb3ZlQXR0cigiaWQiKSx0Lmh0bWwoKX0sdmlzaWJsZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9ZXx8dGhpcy5rZXlWYWx1ZVN0b3JlLmdldCgiZGlzbWlzc2VkX2Jhbm5lcl9rZXkiKSx0PXQmJnBhcnNlSW50KHQsMTApLGU9ZSYmcGFyc2VJbnQoZSwxMCksIW4mJnQmJmUhPT10fSxhY3Rpb25zOntkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy51c2VyP3RoaXMudXNlci5kaXNtaXNzQmFubmVyKHRoaXMuZ2V0KCJiYW5uZXIua2V5IikpOih0aGlzLnNldCgidmlzaWJsZSIsITEpLHRoaXMua2V5VmFsdWVTdG9yZS5zZXQoe2tleToiZGlzbWlzc2VkX2Jhbm5lcl9rZXkiLHZhbHVlOnRoaXMuZ2V0KCJiYW5uZXIua2V5Iil9KSl9fX0sImNvbnRlbnQiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImNvbnRlbnQiKSxyKSxpKHIsInZpc2libGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInZpc2libGUiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS1saW5rZWQtdGV4dCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgidGV4dCIpLG89cz17dGFnTmFtZToic3BhbiIsdHJhbnNsYXRlZFRleHQ6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gSTE4bi50KGUpfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4iQSI9PT1lLnRhcmdldC50YWdOYW1lLnRvVXBwZXJDYXNlKCkmJnRoaXMuYWN0aW9uKHRoaXMuYWN0aW9uUGFyYW0pLCExfX0scj0idHJhbnNsYXRlZFRleHQiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ0cmFuc2xhdGVkVGV4dCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS10YWctYm91bmQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJ0YWdSZWNvcmQuaWQiKSxvPSgwLHQuZGVmYXVsdCkoInRhZ1JlY29yZC5pZCIpLGkocj17dGFnTmFtZToiYSIsY2xhc3NOYW1lQmluZGluZ3M6WyI6ZGlzY291cnNlLXRhZyIsInN0eWxlIiwidGFnQ2xhc3MiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImhyZWYiXSx0YWdDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4idGFnLSIrZX0saHJlZjpmdW5jdGlvbihlKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL3RhZy8iK2UpfX0sInRhZ0NsYXNzIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJ0YWdDbGFzcyIpLHIpLGkociwiaHJlZiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaHJlZiIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY291cnNlLXRvcGljIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbWl4aW5zL2FkZC1hcmNoZXR5cGUtY2xhc3MiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIiwiZGlzY291cnNlL21peGlucy9zY3JvbGxpbmciLCJkaXNjb3Vyc2UvbWl4aW5zL21vYmlsZS1zY3JvbGwtZGlyZWN0aW9uIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LHMsbixvLGkscixhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiBmKGUpe3ZhciB0PSQoIiNwb3N0XyIrZSsiIC50b3BpYy1ib2R5Iik7dC5hZGRDbGFzcygiaGlnaGxpZ2h0ZWQiKSx0Lm9uKCJhbmltYXRpb25lbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQucmVtb3ZlQ2xhc3MoImhpZ2hsaWdodGVkIil9KX1lLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsYS5kZWZhdWx0LGwuZGVmYXVsdCwoZD0oMCx1Lm9ic2VydmVzKSgiZW50ZXJlZEF0IikscD0oMCx1Lm9ic2VydmVzKSgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiksYyhtPXt1c2VyRmlsdGVyczooMCx0LmFsaWFzKSgidG9waWMudXNlckZpbHRlcnMiKSxjbGFzc05hbWVCaW5kaW5nczpbIm11bHRpU2VsZWN0IiwidG9waWMuYXJjaGV0eXBlIiwidG9waWMuaXNfd2FybmluZyIsInRvcGljLmNhdGVnb3J5LnJlYWRfcmVzdHJpY3RlZDpyZWFkX3Jlc3RyaWN0ZWQiLCJ0b3BpYy5kZWxldGVkOmRlbGV0ZWQtdG9waWMiLCJ0b3BpYy5jYXRlZ29yeUNsYXNzIiwidG9waWMudGFnQ2xhc3NlcyJdLG1lbnVWaXNpYmxlOiEwLFNIT1JUX1BPU1Q6MTIwMCxwb3N0U3RyZWFtOigwLHQuYWxpYXMpKCJ0b3BpYy5wb3N0U3RyZWFtIiksYXJjaGV0eXBlOigwLHQuYWxpYXMpKCJ0b3BpYy5hcmNoZXR5cGUiKSxkb2NrQXQ6MCxfbGFzdFNob3dUb3BpYzpudWxsLG1vYmlsZVNjcm9sbERpcmVjdGlvbjpudWxsLHBhdXNlSGVhZGVyVG9waWNVcGRhdGU6ITEsX2VudGVyZWRUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmVudGVyZWRBdDt0JiZ0aGlzLmxhc3RFbnRlcmVkQXQhPT10JiYoKHRoaXMuX2xhc3RTaG93VG9waWM9bnVsbCxzLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLHRoaXMuc2V0KCJsYXN0RW50ZXJlZEF0Iix0KSl9LF9oaWdobGlnaHRQb3N0OmZ1bmN0aW9uKGUpeygwLHMuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLG51bGwsZixlKX0sX2hpZGVUb3BpY0luSGVhZGVyOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmhpZGUtdG9waWMiKSx0aGlzLl9sYXN0U2hvd1RvcGljPSExfSxfc2hvd1RvcGljSW5IZWFkZXI6ZnVuY3Rpb24oZSl7dGhpcy5wYXVzZUhlYWRlclRvcGljVXBkYXRlfHwodGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnNob3ctdG9waWMiLGUpLHRoaXMuX2xhc3RTaG93VG9waWM9ITApfSxfdXBkYXRlVG9waWM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKG51bGw9PT1lKXJldHVybiB0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpLHZvaWQodCYmIXRoaXMucGF1c2VIZWFkZXJUb3BpY1VwZGF0ZSYmKHRoaXMucGF1c2VIZWFkZXJUb3BpY1VwZGF0ZT0hMCx0aGlzLl9sYXN0U2hvd1RvcGljPSEwLCgwLHMubGF0ZXIpKGZ1bmN0aW9uKCl7bi5fbGFzdFNob3dUb3BpYz0hMSxuLnBhdXNlSGVhZGVyVG9waWNVcGRhdGU9ITF9LHQpKSk7dmFyIGk9d2luZG93LnBhZ2VZT2Zmc2V0fHwkKCJodG1sIikuc2Nyb2xsVG9wKCk7dGhpcy5fbGFzdFNob3dUb3BpYz10aGlzLnNob3VsZFNob3dUb3BpY0luSGVhZGVyKGUsaSksdGhpcy5fbGFzdFNob3dUb3BpYz90aGlzLl9zaG93VG9waWNJbkhlYWRlcihlKTp0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOiJ0b3BpYy12aWV3In0pLCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLCQodGhpcy5lbGVtZW50KS5vbigiY2xpY2suZGlzY291cnNlLXJlZGlyZWN0IiwiLmNvb2tlZCBhLCBhLnRyYWNrLWxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiByLmRlZmF1bHQudHJhY2tDbGljayhlKX0pLHRoaXMuYXBwRXZlbnRzLm9uKCJkaXNjb3Vyc2U6Zm9jdXMtY2hhbmdlZCIsdGhpcywiZ290Rm9jdXMiKSx0aGlzLmFwcEV2ZW50cy5vbigicG9zdDpoaWdobGlnaHQiLHRoaXMsIl9oaWdobGlnaHRQb3N0IiksdGhpcy5hcHBFdmVudHMub24oImhlYWRlcjp1cGRhdGUtdG9waWMiLHRoaXMsIl91cGRhdGVUb3BpYyIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy51bmJpbmRTY3JvbGxpbmcoInRvcGljLXZpZXciKSwkKHdpbmRvdykudW5iaW5kKCJyZXNpemUuZGlzY291cnNlLW9uLXNjcm9sbCIpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5jb29rZWQgYSwgYS50cmFjay1saW5rIiksdGhpcy5yZXNldEV4YW1pbmVEb2NrQ2FjaGUoKSx0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpLHRoaXMuYXBwRXZlbnRzLm9mZigiZGlzY291cnNlOmZvY3VzLWNoYW5nZWQiLHRoaXMsImdvdEZvY3VzIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0OmhpZ2hsaWdodCIsdGhpcywiX2hpZ2hsaWdodFBvc3QiKSx0aGlzLmFwcEV2ZW50cy5vZmYoImhlYWRlcjp1cGRhdGUtdG9waWMiLHRoaXMsIl91cGRhdGVUb3BpYyIpfSxnb3RGb2N1czpmdW5jdGlvbihlKXtlJiZ0aGlzLnNjcm9sbGVkKCl9LHJlc2V0RXhhbWluZURvY2tDYWNoZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJkb2NrQXQiLDApfSxzaG91bGRTaG93VG9waWNJbkhlYWRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0PnRoaXMuZG9ja0F0JiYoIXRoaXMuc2l0ZS5tb2JpbGVWaWV3fHwiZG93biI9PT10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbil9LHNjcm9sbGVkOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk7dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fCJpbkRPTSIhPT10aGlzLl9zdGF0ZXx8KGU9d2luZG93LnBhZ2VZT2Zmc2V0fHwkKCJodG1sIikuc2Nyb2xsVG9wKCksMCE9PXRoaXMuZG9ja0F0fHwodD0kKCIjdG9waWMtdGl0bGUiKSkmJjE9PT10Lmxlbmd0aCYmdGhpcy5zZXQoImRvY2tBdCIsdC5vZmZzZXQoKS50b3ApLHRoaXMuc2V0KCJoYXNTY3JvbGxlZCIsMDxlKSxuPXRoaXMudG9waWMsKGk9dGhpcy5zaG91bGRTaG93VG9waWNJbkhlYWRlcihuLGUpKSE9PXRoaXMuX2xhc3RTaG93VG9waWMmJihpP3RoaXMuX3Nob3dUb3BpY0luSGVhZGVyKG4pOm8uZGVmYXVsdC5pc0p1bXBTY2hlZHVsZWQoKXx8MT09PShuLmdldCgicG9zdFN0cmVhbS5sb2FkaW5nTmVhclBvc3QiKXx8MSkmJnRoaXMuX2hpZGVUb3BpY0luSGVhZGVyKCkpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLmhhc1Njcm9sbGVkJiYoMCxzLnRocm90dGxlKSh0aGlzLHRoaXMuY2FsY3VsYXRlRGlyZWN0aW9uLGUsMzAwKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzpzY3JvbGxlZCIsZSkpfSx0b2dnbGVNb2JpbGVIZWFkZXJUb3BpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6dXBkYXRlLXRvcGljIiwiZG93biI9PT10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbj90aGlzLnRvcGljOm51bGwpfX0sIl9lbnRlcmVkVG9waWMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIl9lbnRlcmVkVG9waWMiKSxtKSxjKG0sInRvZ2dsZU1vYmlsZUhlYWRlclRvcGljIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJ0b2dnbGVNb2JpbGVIZWFkZXJUb3BpYyIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY292ZXJ5LWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VybC1yZWZyZXNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbD0iY2F0ZWdvcmllcy1saXN0IjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQsKG89KDAsaS5vbikoImRpZEluc2VydEVsZW1lbnQiKSxyPSgwLGkub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxzKGE9e2NsYXNzTmFtZXM6WyJjb250ZW50cyJdLGFkZEJvZHlDbGFzczpmdW5jdGlvbigpeyQoImJvZHkiKS5hZGRDbGFzcyhsKX0scmVtb3ZlQm9keUNsYXNzOmZ1bmN0aW9uKCl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKGwpfX0sImFkZEJvZHlDbGFzcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwiYWRkQm9keUNsYXNzIiksYSkscyhhLCJyZW1vdmVCb2R5Q2xhc3MiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInJlbW92ZUJvZHlDbGFzcyIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY292ZXJ5LXRvcGljcy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2xvYWQtbW9yZSIsImRpc2NvdXJzZS9taXhpbnMvdXJsLXJlZnJlc2giXSxmdW5jdGlvbihlLG4sdCxpLHMsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHA9dC5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQscy5kZWZhdWx0LChhPSgwLGkub24pKCJkaWRJbnNlcnRFbGVtZW50IiksbD0oMCxpLm9ic2VydmVzKSgibW9kZWwiKSx1PSgwLGkub2JzZXJ2ZXMpKCJ0b3BpY1RyYWNraW5nU3RhdGUuc3RhdGVzIiksYz0oMCxpLm9ic2VydmVzKSgiaW5jb21pbmdDb3VudCIpLHIoZD17Y2xhc3NOYW1lczpbImNvbnRlbnRzIl0sZXllbGluZVNlbGVjdG9yOiIudG9waWMtbGlzdC1pdGVtIixfcmVhZGp1c3RTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2Vzc2lvbi5nZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIik7ZSYmMDw9ZT8oMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZSsxKX0pOigwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5sb2FkTW9yZVVubGVzc0Z1bGwpfSxfdXBkYXRlVG9waWNzOmZ1bmN0aW9uKCl7dGhpcy50b3BpY1RyYWNraW5nU3RhdGUudXBkYXRlVG9waWNzKHRoaXMubW9kZWwudG9waWNzKX0sX3VwZGF0ZVRpdGxlOmZ1bmN0aW9uKCl7RGlzY291cnNlLnVwZGF0ZUNvbnRleHRDb3VudCh0aGlzLmluY29taW5nQ291bnQpfSxzYXZlU2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXt0aGlzLnNlc3Npb24uc2V0KCJ0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbiIsJCh3aW5kb3cpLnNjcm9sbFRvcCgpKX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO0Rpc2NvdXJzZS51cGRhdGVDb250ZXh0Q291bnQoMCksdGhpcy5tb2RlbC5sb2FkTW9yZSgpLnRoZW4oZnVuY3Rpb24oZSl7KDAsbi5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB0LnNhdmVTY3JvbGxQb3NpdGlvbigpfSksZT8kKHdpbmRvdykuaGVpZ2h0KCk+PSQoZG9jdW1lbnQpLmhlaWdodCgpJiZ0LnNlbmQoImxvYWRNb3JlIik6dC5leWVsaW5lLmZsdXNoUmVzdCgpfSl9fX0sIl9yZWFkanVzdFNjcm9sbFBvc2l0aW9uIixbYSxsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9yZWFkanVzdFNjcm9sbFBvc2l0aW9uIiksZCkscihkLCJfdXBkYXRlVG9waWNzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJfdXBkYXRlVG9waWNzIiksZCkscihkLCJfdXBkYXRlVGl0bGUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl91cGRhdGVUaXRsZSIpLGQpLGQpKTtlLmRlZmF1bHQ9cH0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1nZW5lcmFsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSx0LG4saSxzLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHMuYnVpbGRDYXRlZ29yeVBhbmVsKSgiZ2VuZXJhbCIsKGw9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkuaWQiLCJjYXRlZ29yeS5jb2xvciIpLHU9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkucGFyZW50X2NhdGVnb3J5X2lkIiwiY2F0ZWdvcnkuY2F0ZWdvcnlOYW1lIiwiY2F0ZWdvcnkuY29sb3IiLCJjYXRlZ29yeS50ZXh0X2NvbG9yIiksYz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5pZCIpLGQ9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkuaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiLCJjYXRlZ29yeS5pZCIpLG8ocD17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmZvcmVncm91bmRDb2xvcnM9WyJGRkZGRkYiLCIwMDAwMDAiXX0sY2FuU2VsZWN0UGFyZW50Q2F0ZWdvcnk6KDAsaS5ub3QpKCJjYXRlZ29yeS5pc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSIpLHVuY2F0ZWdvcml6ZWRTaXRlU2V0dGluZ0xpbms6RGlzY291cnNlLmdldFVSTCgiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvYWxsX3Jlc3VsdHM/ZmlsdGVyPWFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzIiksY3VzdG9taXplVGV4dENvbnRlbnRMaW5rOkRpc2NvdXJzZS5nZXRVUkwoIi9hZG1pbi9jdXN0b21pemUvc2l0ZV90ZXh0cz9xPXVuY2F0ZWdvcml6ZWQiKSxiYWNrZ3JvdW5kQ29sb3JzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKTtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuY2F0ZWdvcnlfY29sb3JzLnNwbGl0KCJ8IikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvVXBwZXJDYXNlKCl9KS5jb25jYXQoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29sb3IudG9VcHBlckNhc2UoKX0pKS51bmlxKCl9LG5vQ2F0ZWdvcnlTdHlsZTpmdW5jdGlvbigpe3JldHVybiJub25lIj09PXRoaXMuc2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlfSx1c2VkQmFja2dyb3VuZENvbG9yczpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnNpdGUuZ2V0KCJjYXRlZ29yaWVzTGlzdCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdCYmbi50b1VwcGVyQ2FzZSgpPT09ZS5jb2xvci50b1VwcGVyQ2FzZSgpP251bGw6ZS5jb2xvci50b1VwcGVyQ2FzZSgpfSx0aGlzKS5jb21wYWN0KCl9LHBhcmVudENhdGVnb3JpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubGV2ZWwrMTxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9jYXRlZ29yeV9uZXN0aW5nfSl9LGNhdGVnb3J5QmFkZ2VQcmV2aWV3OmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPXRoaXMuY2F0ZWdvcnksbz1hLmRlZmF1bHQuY3JlYXRlKHtuYW1lOnQsY29sb3I6bix0ZXh0X2NvbG9yOmkscGFyZW50X2NhdGVnb3J5X2lkOnBhcnNlSW50KGUsMTApLHJlYWRfcmVzdHJpY3RlZDpzLmdldCgicmVhZF9yZXN0cmljdGVkIil9KTtyZXR1cm4oMCxyLmNhdGVnb3J5QmFkZ2VIVE1MKShvLHtsaW5rOiExfSl9LHN1YkNhdGVnb3JpZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT9udWxsOmEuZGVmYXVsdC5saXN0KCkuZmlsdGVyQnkoInBhcmVudF9jYXRlZ29yeV9pZCIsZSl9LHNob3dEZXNjcmlwdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiFlJiZ0fSxhY3Rpb25zOntzaG93Q2F0ZWdvcnlUb3BpYzpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cub3Blbih0aGlzLmdldCgiY2F0ZWdvcnkudG9waWNfdXJsIiksIl9ibGFuayIpLmZvY3VzKCksITF9fX0sImJhY2tncm91bmRDb2xvcnMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiYmFja2dyb3VuZENvbG9ycyIpLHApLG8ocCwibm9DYXRlZ29yeVN0eWxlIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vQ2F0ZWdvcnlTdHlsZSIpLHApLG8ocCwidXNlZEJhY2tncm91bmRDb2xvcnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInVzZWRCYWNrZ3JvdW5kQ29sb3JzIikscCksbyhwLCJwYXJlbnRDYXRlZ29yaWVzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBhcmVudENhdGVnb3JpZXMiKSxwKSxvKHAsImNhdGVnb3J5QmFkZ2VQcmV2aWV3IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjYXRlZ29yeUJhZGdlUHJldmlldyIpLHApLG8ocCwic3ViQ2F0ZWdvcmllcyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic3ViQ2F0ZWdvcmllcyIpLHApLG8ocCwic2hvd0Rlc2NyaXB0aW9uIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93RGVzY3JpcHRpb24iKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktaW1hZ2VzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsbix0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuYnVpbGRDYXRlZ29yeVBhbmVsKSgiaW1hZ2VzIikuZXh0ZW5kKChvPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5LnVwbG9hZGVkX2JhY2tncm91bmQudXJsIikscj0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeS51cGxvYWRlZF9sb2dvLnVybCIpLHMoYT17YmFja2dyb3VuZEltYWdlVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIn0sbG9nb0ltYWdlVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIn0sYWN0aW9uczp7bG9nb1VwbG9hZERvbmU6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0RnJvbVVwbG9hZCgiY2F0ZWdvcnkudXBsb2FkZWRfbG9nbyIsZSl9LGxvZ29VcGxvYWREZWxldGVkOmZ1bmN0aW9uKCl7dGhpcy5fZGVsZXRlVXBsb2FkKCJjYXRlZ29yeS51cGxvYWRlZF9sb2dvIil9LGJhY2tncm91bmRVcGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuX3NldEZyb21VcGxvYWQoImNhdGVnb3J5LnVwbG9hZGVkX2JhY2tncm91bmQiLGUpfSxiYWNrZ3JvdW5kVXBsb2FkRGVsZXRlZDpmdW5jdGlvbigpe3RoaXMuX2RlbGV0ZVVwbG9hZCgiY2F0ZWdvcnkudXBsb2FkZWRfYmFja2dyb3VuZCIpfX0sX2RlbGV0ZVVwbG9hZDpmdW5jdGlvbihlKXt0aGlzLnNldChlLG4uZGVmYXVsdC5jcmVhdGUoe2lkOm51bGwsdXJsOm51bGx9KSl9LF9zZXRGcm9tVXBsb2FkOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZXQoZSxuLmRlZmF1bHQuY3JlYXRlKHt1cmw6dC51cmwsaWQ6dC5pZH0pKX19LCJiYWNrZ3JvdW5kSW1hZ2VVcmwiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImJhY2tncm91bmRJbWFnZVVybCIpLGEpLHMoYSwibG9nb0ltYWdlVXJsIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJsb2dvSW1hZ2VVcmwiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2VjdXJpdHkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktcGFuZWwiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuYnVpbGRDYXRlZ29yeVBhbmVsKSgic2VjdXJpdHkiLChvPSgwLGkub24pKCJpbml0Iikscj0oMCxpLm9uKSgiaW5pdCIpLHMoYT17ZWRpdGluZ1Blcm1pc3Npb25zOiExLHNlbGVjdGVkR3JvdXA6bnVsbCxzZWxlY3RlZFBlcm1pc3Npb246bnVsbCxzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0OiExLGludGVyYWN0ZWRXaXRoRHJvcGRvd25zOiExLF9zZXR1cDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWRHcm91cDp0aGlzLmdldCgiY2F0ZWdvcnkuYXZhaWxhYmxlR3JvdXBzLmZpcnN0T2JqZWN0Iiksc2VsZWN0ZWRQZXJtaXNzaW9uOnRoaXMuZ2V0KCJjYXRlZ29yeS5hdmFpbGFibGVQZXJtaXNzaW9ucy5maXJzdE9iamVjdC5pZCIpfSl9LF9yZWdpc3RlclZhbGlkYXRvcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5yZWdpc3RlclZhbGlkYXRvcihmdW5jdGlvbigpe2lmKCFlLnNob3dQZW5kaW5nR3JvdXBDaGFuZ2VzQWxlcnQmJmUuaW50ZXJhY3RlZFdpdGhEcm9wZG93bnMmJmUuYWN0aXZlVGFiKXJldHVybiBlLnNldCgic2hvd1BlbmRpbmdHcm91cENoYW5nZXNBbGVydCIsITApLCEwfSl9LGFjdGlvbnM6e29uU2VsZWN0R3JvdXA6ZnVuY3Rpb24oZSl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtpbnRlcmFjdGVkV2l0aERyb3Bkb3duczohMCxzZWxlY3RlZEdyb3VwOmV9KX0sb25TZWxlY3RQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7aW50ZXJhY3RlZFdpdGhEcm9wZG93bnM6ITAsc2VsZWN0ZWRQZXJtaXNzaW9uOmV9KX0sZWRpdFBlcm1pc3Npb25zOmZ1bmN0aW9uKCl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5zZXQoImVkaXRpbmdQZXJtaXNzaW9ucyIsITApfSxhZGRQZXJtaXNzaW9uOmZ1bmN0aW9uKGUsdCl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5jYXRlZ29yeS5hZGRQZXJtaXNzaW9uKHtncm91cF9uYW1lOmUrIiIscGVybWlzc2lvbjpuLmRlZmF1bHQuY3JlYXRlKHtpZDpwYXJzZUludCh0LDEwKX0pfSksdGhpcy5zZXRQcm9wZXJ0aWVzKHtzZWxlY3RlZEdyb3VwOnRoaXMuZ2V0KCJjYXRlZ29yeS5hdmFpbGFibGVHcm91cHMuZmlyc3RPYmplY3QiKSxzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0OiExLGludGVyYWN0ZWRXaXRoRHJvcGRvd25zOiExfSl9LHJlbW92ZVBlcm1pc3Npb246ZnVuY3Rpb24oZSl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5jYXRlZ29yeS5yZW1vdmVQZXJtaXNzaW9uKGUpfX19LCJfc2V0dXAiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9zZXR1cCIpLGEpLHMoYSwiX3JlZ2lzdGVyVmFsaWRhdG9yIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJfcmVnaXN0ZXJWYWxpZGF0b3IiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbmNlcm5zL2NhdGVnb3J5LXNlYXJjaC1wcmlvcml0aWVzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRDYXRlZ29yeVNvcnRDcml0ZXJpYT1mdW5jdGlvbihlKXtkLnB1c2goZSl9O3ZhciBhLGwsdT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBjKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBkPVtdO2UuZGVmYXVsdD0oMCxzLmJ1aWxkQ2F0ZWdvcnlQYW5lbCkoInNldHRpbmdzIiwoYT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5pc1BhcmVudCIsImNhdGVnb3J5LnBhcmVudF9jYXRlZ29yeV9pZCIpLGMobD17ZW1haWxJbkVuYWJsZWQ6KDAsaS5zZXR0aW5nKSgiZW1haWxfaW4iKSxzaG93UG9zaXRpb25JbnB1dDooMCxpLnNldHRpbmcpKCJmaXhlZF9jYXRlZ29yeV9wb3NpdGlvbnMiKSxpc1BhcmVudENhdGVnb3J5OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCF0fSxzaG93U3ViY2F0ZWdvcnlMaXN0U3R5bGU6KDAsbi5hbmQpKCJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiLCJpc1BhcmVudENhdGVnb3J5IiksaXNEZWZhdWx0U29ydE9yZGVyOigwLG4uZW1wdHkpKCJjYXRlZ29yeS5zb3J0X29yZGVyIiksYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOkkxOG4udCgiY2F0ZWdvcnkuc3ViY2F0ZWdvcnlfbGlzdF9zdHlsZXMucm93cyIpLHZhbHVlOiJyb3dzIn0se25hbWU6STE4bi50KCJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlcy5yb3dzX3dpdGhfZmVhdHVyZWRfdG9waWNzIiksdmFsdWU6InJvd3Nfd2l0aF9mZWF0dXJlZF90b3BpY3MifSx7bmFtZTpJMThuLnQoImNhdGVnb3J5LnN1YmNhdGVnb3J5X2xpc3Rfc3R5bGVzLmJveGVzIiksdmFsdWU6ImJveGVzIn0se25hbWU6STE4bi50KCJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlcy5ib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljcyIpLHZhbHVlOiJib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljcyJ9XX0sZ3JvdXBGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5maW5kQWxsKHt0ZXJtOmUsaWdub3JlX2F1dG9tYXRpYzohMH0pfSxhdmFpbGFibGVWaWV3czpmdW5jdGlvbigpe3JldHVyblt7bmFtZTpJMThuLnQoImZpbHRlcnMubGF0ZXN0LnRpdGxlIiksdmFsdWU6ImxhdGVzdCJ9LHtuYW1lOkkxOG4udCgiZmlsdGVycy50b3AudGl0bGUiKSx2YWx1ZToidG9wIn1dfSxhdmFpbGFibGVUb3BQZXJpb2RzOmZ1bmN0aW9uKCl7cmV0dXJuWyJhbGwiLCJ5ZWFybHkiLCJxdWFydGVybHkiLCJtb250aGx5Iiwid2Vla2x5IiwiZGFpbHkiXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6STE4bi50KCJmaWx0ZXJzLnRvcC4iK2UrIi50aXRsZSIpLHZhbHVlOmV9fSl9LHNlYXJjaFByaW9yaXRpZXNPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHM9W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKG8uc2VhcmNoUHJpb3JpdGllcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD11KGUsMiksbj10WzBdLGk9dFsxXTtzLnB1c2goe25hbWU6STE4bi50KCJjYXRlZ29yeS5zZWFyY2hfcHJpb3JpdHkub3B0aW9ucy4iK24pLHZhbHVlOml9KX0pLHN9LGF2YWlsYWJsZVNvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuWyJsaWtlcyIsIm9wX2xpa2VzIiwidmlld3MiLCJwb3N0cyIsImFjdGl2aXR5IiwicG9zdGVycyIsImNhdGVnb3J5IiwiY3JlYXRlZCJdLmNvbmNhdChkKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6STE4bi50KCJjYXRlZ29yeS5zb3J0X29wdGlvbnMuIitlKSx2YWx1ZTplfX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5uYW1lLmxvY2FsZUNvbXBhcmUodC5uYW1lKX0pfSxzb3J0QXNjZW5kaW5nT3B0aW9uczpmdW5jdGlvbigpe3JldHVyblt7bmFtZTpJMThuLnQoImNhdGVnb3J5LnNvcnRfYXNjZW5kaW5nIiksdmFsdWU6InRydWUifSx7bmFtZTpJMThuLnQoImNhdGVnb3J5LnNvcnRfZGVzY2VuZGluZyIpLHZhbHVlOiJmYWxzZSJ9XX19LCJpc1BhcmVudENhdGVnb3J5IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJpc1BhcmVudENhdGVnb3J5IiksbCksYyhsLCJhdmFpbGFibGVTdWJjYXRlZ29yeUxpc3RTdHlsZXMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzIiksbCksYyhsLCJhdmFpbGFibGVWaWV3cyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhdmFpbGFibGVWaWV3cyIpLGwpLGMobCwiYXZhaWxhYmxlVG9wUGVyaW9kcyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhdmFpbGFibGVUb3BQZXJpb2RzIiksbCksYyhsLCJzZWFyY2hQcmlvcml0aWVzT3B0aW9ucyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJzZWFyY2hQcmlvcml0aWVzT3B0aW9ucyIpLGwpLGMobCwiYXZhaWxhYmxlU29ydHMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiYXZhaWxhYmxlU29ydHMiKSxsKSxjKGwsInNvcnRBc2NlbmRpbmdPcHRpb25zIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNvcnRBc2NlbmRpbmdPcHRpb25zIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXRhYiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJ0YWIiKSxhPSgwLHQuZGVmYXVsdCkoInRhYiIpLG8obD17dGFnTmFtZToibGkiLGNsYXNzTmFtZUJpbmRpbmdzOlsiYWN0aXZlIiwidGFiQ2xhc3NOYW1lIl0sdGFiQ2xhc3NOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiJlZGl0LWNhdGVnb3J5LSIrZX0sYWN0aXZlOigwLHMucHJvcGVydHlFcXVhbCkoInNlbGVjdGVkVGFiIiwidGFiIiksdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgiY2F0ZWdvcnkuIitlLnJlcGxhY2UoIi0iLCJfIikpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fYWRkVG9Db2xsZWN0aW9uKX0sX2FkZFRvQ29sbGVjdGlvbjpmdW5jdGlvbigpe3RoaXMucGFuZWxzLmFkZE9iamVjdCh0aGlzLnRhYkNsYXNzTmFtZSl9LF9yZXNldE1vZGFsU2Nyb2xsU3RhdGU6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuZWxlbWVudCkucGFyZW50cygiI2Rpc2NvdXJzZS1tb2RhbCIpLmZpbmQoIi5tb2RhbC1ib2R5Iik7MT09PWUubGVuZ3RoJiZlLnNjcm9sbFRvcCgwKX0sYWN0aW9uczp7c2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInNlbGVjdGVkVGFiIix0aGlzLnRhYiksdGhpcy5fcmVzZXRNb2RhbFNjcm9sbFN0YXRlKCl9fX0sInRhYkNsYXNzTmFtZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGFiQ2xhc3NOYW1lIiksbCksbyhsLCJ0aXRsZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGl0bGUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktcGFuZWwiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5idWlsZENhdGVnb3J5UGFuZWwpKCJ0YWdzIix7YWxsb3dlZFRhZ3NFbXB0eTooMCx0LmVtcHR5KSgiY2F0ZWdvcnkuYWxsb3dlZF90YWdzIiksYWxsb3dlZFRhZ0dyb3Vwc0VtcHR5OigwLHQuZW1wdHkpKCJjYXRlZ29yeS5hbGxvd2VkX3RhZ19ncm91cHMiKSxkaXNhYmxlQWxsb3dHbG9iYWxUYWdzOigwLHQuYW5kKSgiYWxsb3dlZFRhZ3NFbXB0eSIsImFsbG93ZWRUYWdHcm91cHNFbXB0eSIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCxuLmJ1aWxkQ2F0ZWdvcnlQYW5lbCkoInRvcGljLXRlbXBsYXRlIiwocz0oMCxpLm9ic2VydmVzKSgiYWN0aXZlVGFiIiksYT1vPXtfYWN0aXZlVGFiQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hY3RpdmVUYWImJigwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKS5mb2N1cygpfSl9fSxsPSJfYWN0aXZlVGFiQ2hhbmdlZCIsdT1bc10scj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIl9hY3RpdmVUYWJDaGFuZ2VkIikpP3IudmFsdWU6dm9pZCAwLGM9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LXRvcGljLXRpbWVyLWZvcm0iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZWRpdC10b3BpYy10aW1lciJdLGZ1bmN0aW9uKGUsaSx0LG4scyxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoKGw9KDAsby5kZWZhdWx0KSgidG9waWNUaW1lci51cGRhdGVUaW1lIiwicHVibGlzaFRvQ2F0ZWdvcnkiLCJ0b3BpY1RpbWVyLmNhdGVnb3J5X2lkIiksdT0oMCxvLmRlZmF1bHQpKCJ0b3BpYy52aXNpYmxlIiksYz0oMCxvLm9uKSgiaW5pdCIpLGQ9KDAsby5vYnNlcnZlcykoInRvcGljVGltZXIiLCJ0b3BpY1RpbWVyLmV4ZWN1dGVfYXQiLCJ0b3BpY1RpbWVyLmR1cmF0aW9uIikscD0oMCxvLm9ic2VydmVzKSgic2VsZWN0aW9uIiksYShtPXtzZWxlY3Rpb246KDAsdC5yZWFkT25seSkoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSxhdXRvT3BlbjooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLk9QRU5fU1RBVFVTX1RZUEUpLGF1dG9DbG9zZTooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLkNMT1NFX1NUQVRVU19UWVBFKSxhdXRvRGVsZXRlOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLHIuREVMRVRFX1NUQVRVU19UWVBFKSxhdXRvQnVtcDooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLkJVTVBfVFlQRSkscHVibGlzaFRvQ2F0ZWdvcnk6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsci5QVUJMSVNIX1RPX0NBVEVHT1JZX1NUQVRVU19UWVBFKSxyZW1pbmRlcjooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLlJFTUlOREVSX1RZUEUpLHNob3dUaW1lT25seTooMCx0Lm9yKSgiYXV0b09wZW4iLCJhdXRvRGVsZXRlIiwicmVtaW5kZXIiLCJhdXRvQnVtcCIpLHNhdmVEaXNhYmxlZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5pc0VtcHR5KShlKXx8dCYmIW59LGV4Y2x1ZGVDYXRlZ29yeUlkOmZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5jYXRlZ29yeV9pZCIpfSxfc2V0VXBkYXRlVGltZTpmdW5jdGlvbigpe3ZhciBlLHQ9bnVsbCxuPXRoaXMuZ2V0KCJ0b3BpY1RpbWVyLmV4ZWN1dGVfYXQiKTtuJiZ0aGlzLmdldCgidG9waWNUaW1lci5iYXNlZF9vbl9sYXN0X3Bvc3QiKT90PXRoaXMuZ2V0KCJ0b3BpY1RpbWVyLmR1cmF0aW9uIik6IW58fChlPW1vbWVudChuKSk+bW9tZW50KCkmJih0PWUuZm9ybWF0KCJZWVlZLU1NLUREIEhIOm1tIikpLHRoaXMuc2V0KCJ0b3BpY1RpbWVyLnVwZGF0ZVRpbWUiLHQpfSxfdXBkYXRlQmFzZWRPbkxhc3RQb3N0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmF1dG9DbG9zZXx8KDAsbi5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2Uuc2V0KCJ0b3BpY1RpbWVyLmJhc2VkX29uX2xhc3RfcG9zdCIsITEpfSl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4uc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmdldCgidG9waWNUaW1lci5zdGF0dXNfdHlwZSIpfHxlLnNldCgidG9waWNUaW1lci5zdGF0dXNfdHlwZSIsZS5nZXQoInRpbWVyVHlwZXMuZmlyc3RPYmplY3QuaWQiKSl9KX0sYWN0aW9uczp7b25DaGFuZ2VUaW1lclR5cGU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiLGUpfX19LCJzYXZlRGlzYWJsZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNhdmVEaXNhYmxlZCIpLG0pLGEobSwiZXhjbHVkZUNhdGVnb3J5SWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImV4Y2x1ZGVDYXRlZ29yeUlkIiksbSksYShtLCJfc2V0VXBkYXRlVGltZSIsW2MsZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0VXBkYXRlVGltZSIpLG0pLGEobSwiX3VwZGF0ZUJhc2VkT25MYXN0UG9zdCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3VwZGF0ZUJhc2VkT25MYXN0UG9zdCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZW1vamktcGlja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJwcmV0dHktdGV4dC9lbW9qaSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsbixpLGEsbCxvLHMsZil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxoLGIsZyx2O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeT1FbWJlci5ydW4sdz1fLmtleXMoKDAsby5leHRlbmRlZEVtb2ppTGlzdCkoKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCh1PSgwLGkub24pKCJpbml0IiksYz0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IiksZD0oMCxpLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLHA9KDAsaS5vbikoImRpZFVwZGF0ZUF0dHJzIiksbT0oMCxpLm9ic2VydmVzKSgiZmlsdGVyIiksaD0oMCxpLm9ic2VydmVzKSgic2VsZWN0ZWREaXZlcnNpdHkiKSxiPSgwLGkub2JzZXJ2ZXMpKCJyZWNlbnRFbW9qaXMiKSxnPSgwLGkub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxyKHY9e2F1dG9tYXRpY1Bvc2l0aW9uaW5nOiEwLGVtb2ppU3RvcmU6KDAsdC5pbmplY3QpKCJlbW9qaS1zdG9yZSIpLGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy4kcGlja2VyLmNzcyh7d2lkdGg6IiIsbGVmdDoiIixib3R0b206IiIsZGlzcGxheToibm9uZSJ9KS5lbXB0eSgpLHRoaXMuJG1vZGFsLnJlbW92ZUNsYXNzKCJmYWRlSW4iKSxjbGVhclRpbWVvdXQodGhpcy5fY2hlY2tUaW1lb3V0KX0sc2hvdzpmdW5jdGlvbigpe3ZhciBlPSgwLGEuZmluZFJhd1RlbXBsYXRlKSgiZW1vamktcGlja2VyIikoe2N1c3RvbUVtb2ppczp3fSk7dGhpcy4kcGlja2VyLmh0bWwoZSksdGhpcy4kZmlsdGVyPXRoaXMuJHBpY2tlci5maW5kKCIuZmlsdGVyIiksdGhpcy4kcmVzdWx0cz10aGlzLiRwaWNrZXIuZmluZCgiLnJlc3VsdHMiKSx0aGlzLiRsaXN0PXRoaXMuJHBpY2tlci5maW5kKCIubGlzdCIpLHRoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWREaXZlcnNpdHk6dGhpcy5lbW9qaVN0b3JlLmRpdmVyc2l0eSxyZWNlbnRFbW9qaXM6dGhpcy5lbW9qaVN0b3JlLmZhdm9yaXRlc30pLHkuc2NoZWR1bGVPbmNlKCJhZnRlclJlbmRlciIsdGhpcyxmdW5jdGlvbigpe3RoaXMuX2JpbmRFdmVudHMoKSx0aGlzLl9sb2FkQ2F0ZWdvcmllc0Vtb2ppcygpLHRoaXMuX3Bvc2l0aW9uUGlja2VyKCksdGhpcy5fc2Nyb2xsVG8oKSx0aGlzLl91cGRhdGVTZWxlY3RlZERpdmVyc2l0eSgpLHRoaXMuX2NoZWNrVmlzaWJsZVNlY3Rpb24oITApLHRoaXMuc2l0ZS5pc01vYmlsZURldmljZSYmIXRoaXMuaXNFZGl0b3JGb2N1c2VkfHwoMCxzLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCl8fHRoaXMuJGZpbHRlci5maW5kKCJpbnB1dFtuYW1lPSdmaWx0ZXInXSIpLmZvY3VzKCl9KX0sX3NldEluaXRpYWxWYWx1ZXM6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1RpbWVvdXQ9bnVsbCx0aGlzLnNjcm9sbFBvc2l0aW9uPTAsdGhpcy4kdmlzaWJsZVNlY3Rpb25zPVtdfSxfdW5iaW5kR2xvYmFsRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMub2ZmKCJlbW9qaS1waWNrZXI6Y2xvc2UiLHRoaXMsIl9jbG9zZUVtb2ppUGlja2VyIil9LF9jbG9zZUVtb2ppUGlja2VyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFjdGl2ZSIsITEpfSxfc2V0dXA6ZnVuY3Rpb24oKXt0aGlzLiRwaWNrZXI9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmVtb2ppLXBpY2tlciIpKSx0aGlzLiRtb2RhbD0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZW1vamktcGlja2VyLW1vZGFsIikpLHRoaXMuYXBwRXZlbnRzLm9uKCJlbW9qaS1waWNrZXI6Y2xvc2UiLHRoaXMsIl9jbG9zZUVtb2ppUGlja2VyIil9LF9zZXRTdGF0ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlP3RoaXMuc2hvdygpOnRoaXMuY2xvc2UoKX0sZmlsdGVyQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuJGZpbHRlci5maW5kKCIuY2xlYXItZmlsdGVyIikudG9nZ2xlKCFfLmlzRW1wdHkodGhpcy5maWx0ZXIpKTt2YXIgZT10aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2U/NDAwOjI1MDt5LmRlYm91bmNlKHRoaXMsdGhpcy5fZmlsdGVyRW1vamlzTGlzdCxlKX0sc2VsZWN0ZWREaXZlcnNpdHlDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmVtb2ppU3RvcmUuZGl2ZXJzaXR5PXRoaXMuc2VsZWN0ZWREaXZlcnNpdHksJC5lYWNoKHRoaXMuJGxpc3QuZmluZCgiLmVtb2ppW2RhdGEtbG9hZGVkPScxJ10uZGl2ZXJzaXR5IiksZnVuY3Rpb24oZSx0KXskKHQpLmNzcygiYmFja2dyb3VuZC1pbWFnZSIsIiIpLnJlbW92ZUF0dHIoImRhdGEtbG9hZGVkIil9KSwiIiE9PXRoaXMuZmlsdGVyJiYkLmVhY2godGhpcy4kcmVzdWx0cy5maW5kKCIuZW1vamkuZGl2ZXJzaXR5IiksZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5fc2V0QnV0dG9uQmFja2dyb3VuZCh0LCEwKX0pLHRoaXMuX3VwZGF0ZVNlbGVjdGVkRGl2ZXJzaXR5KCksdGhpcy5fY2hlY2tWaXNpYmxlU2VjdGlvbighMCl9LF9yZWNlbnRFbW9qaXNDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zY3JvbGxQb3NpdGlvbix0PXRoaXMuJGxpc3QuZmluZCgiLnNlY3Rpb25bZGF0YS1zZWN0aW9uPSdyZWNlbnQnXSIpLG49dC5maW5kKCIuc2VjdGlvbi1ncm91cCIpLGk9dGhpcy4kcGlja2VyLmZpbmQoIi5jYXRlZ29yeS1pY29uIGJ1dHRvbltkYXRhLXNlY3Rpb249J3JlY2VudCddIikucGFyZW50KCkscz0haS5pcygiOnZpc2libGUiKTtfLmlzRW1wdHkodGhpcy5yZWNlbnRFbW9qaXMpPyhpLmhpZGUoKSx0LmNzcygiaGVpZ2h0IiwwKS5oaWRlKCkpOihpLnNob3coKSx0LmNzcygiaGVpZ2h0IiwiYXV0byIpLnNob3coKSk7dmFyIG89dGhpcy5yZWNlbnRFbW9qaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pLHI9KDAsYS5maW5kUmF3VGVtcGxhdGUpKCJlbW9qaS1waWNrZXItcmVjZW50Iikoe3JlY2VudEVtb2ppczpvfSk7bi5odG1sKHIpLHMmJnRoaXMuJGxpc3Quc2Nyb2xsVG9wKGUrdC5vdXRlckhlaWdodCgpKSx0aGlzLl9iaW5kSG92ZXIobil9LF91cGRhdGVTZWxlY3RlZERpdmVyc2l0eTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJHBpY2tlci5maW5kKCIuZGl2ZXJzaXR5LXBpY2tlciIpO2UuZmluZCgiLmRpdmVyc2l0eS1zY2FsZSIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGUuZmluZCgnLmRpdmVyc2l0eS1zY2FsZVtkYXRhLWxldmVsPSInK3RoaXMuc2VsZWN0ZWREaXZlcnNpdHkrJyJdJykuYWRkQ2xhc3MoInNlbGVjdGVkIil9LF9sb2FkQ2F0ZWdvcmllc0Vtb2ppczpmdW5jdGlvbigpe3ZhciBzPXRoaXM7JC5lYWNoKHRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcmllcy1jb2x1bW4gYnV0dG9uLmVtb2ppIiksZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9cy5fY29kZVdpdGhEaXZlcnNpdHkobi5kYXRhKCJ0YWJpY29uIiksITEpO24uY3NzKCJiYWNrZ3JvdW5kLWltYWdlIiwndXJsKCInKygwLGwuZW1vamlVcmxGb3IpKGkpKyciKScpfSl9LF9iaW5kRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fYmluZERpdmVyc2l0eUNsaWNrKCksdGhpcy5fYmluZFNlY3Rpb25zU2Nyb2xsKCksdGhpcy5fYmluZEVtb2ppQ2xpY2sodGhpcy4kbGlzdC5maW5kKCIuc2VjdGlvbi1ncm91cCIpKSx0aGlzLl9iaW5kQ2xlYXJSZWNlbnRFbW9qaXNHcm91cCgpLHRoaXMuX2JpbmRSZXNpemluZygpLHRoaXMuX2JpbmRDYXRlZ29yeUNsaWNrKCksdGhpcy5fYmluZE1vZGFsQ2xpY2soKSx0aGlzLl9iaW5kRmlsdGVySW5wdXQoKSx0aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2V8fHRoaXMuX2JpbmRIb3ZlcigpfSxfYmluZE1vZGFsQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuJG1vZGFsLm9uKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbi5zZXQoImFjdGl2ZSIsITEpfSksJCgiaHRtbCIpLm9uKCJtb3VzZXVwLmVtb2ppLXBpY2tlciIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYoISh0LmNsb3Nlc3QoIi5lbW9qaS1waWNrZXIiKS5sZW5ndGh8fHQuY2xvc2VzdCgiLmVtb2ppLmJ0biIpLmxlbmd0aHx8dC5oYXNDbGFzcygiZ3JpcHBpZSIpKSlyZXR1cm4gbi5zZXQoImFjdGl2ZSIsITEpLCExfSl9LF91bmJpbmRFdmVudHM6ZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub2ZmKCksJCh3aW5kb3cpLm9mZigicmVzaXplIiksY2xlYXJJbnRlcnZhbCh0aGlzLl9yZWZyZXNoSW50ZXJ2YWwpLCQoIiNyZXBseS1jb250cm9sIikub2ZmKCJkaXYtcmVzaXppbmciKSwkKCJodG1sIikub2ZmKCJtb3VzZXVwLmVtb2ppLXBpY2tlciIpfSxfZmlsdGVyRW1vamlzTGlzdDpmdW5jdGlvbigpe3ZhciBlLHQscz10aGlzOyIiPT09dGhpcy5maWx0ZXI/KHRoaXMuJGZpbHRlci5maW5kKCJpbnB1dFtuYW1lPSdmaWx0ZXInXSIpLnZhbCgiIiksdGhpcy4kcmVzdWx0cy5lbXB0eSgpLmhpZGUoKSx0aGlzLiRsaXN0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKSk6KGU9dGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSx0PSgwLG8uZW1vamlTZWFyY2gpKGUse21heFJlc3VsdHM6MzB9KSx0aGlzLiRyZXN1bHRzLmVtcHR5KCkuaHRtbCh0Lm1hcChmdW5jdGlvbihlKXt2YXIgdD0oMCxvLmlzU2tpblRvbmFibGVFbW9qaSkoZSksbj10PyJkaXZlcnNpdHkiOiIiLGk9cy5fY29kZVdpdGhEaXZlcnNpdHkoZSx0KTtyZXR1cm4iPGJ1dHRvbiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIisoMCxsLmVtb2ppVXJsRm9yKShpKSsnXCcpIiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAnK24rJyIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlKyciPjwvYnV0dG9uPid9KSkuc2hvdygpLHRoaXMuX2JpbmRIb3Zlcih0aGlzLiRyZXN1bHRzKSx0aGlzLl9iaW5kRW1vamlDbGljayh0aGlzLiRyZXN1bHRzKSx0aGlzLiRsaXN0LmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpKX0sX2JpbmRGaWx0ZXJJbnB1dDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLiRmaWx0ZXIuZmluZCgiaW5wdXQiKTtlLm9uKCJpbnB1dCIsZnVuY3Rpb24oZSl7dC5zZXQoImZpbHRlciIsZS5jdXJyZW50VGFyZ2V0LnZhbHVlKX0pLHRoaXMuJGZpbHRlci5maW5kKCIuY2xlYXItZmlsdGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBlLnZhbCgiIikuZm9jdXMoKSx0LnNldCgiZmlsdGVyIiwiIiksITF9KX0sX2JpbmRDYXRlZ29yeUNsaWNrOmZ1bmN0aW9uKCl7dmFyIHM9dGhpczt0aGlzLiRwaWNrZXIuZmluZCgiLmNhdGVnb3J5LWljb24iKS5vbigiY2xpY2siLCJidXR0b24uZW1vamkiLGZ1bmN0aW9uKGUpe3Muc2V0KCJmaWx0ZXIiLCIiKSxzLiRyZXN1bHRzLmVtcHR5KCkscy4kbGlzdC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpLmRhdGEoInNlY3Rpb24iKSxuPXMuJGxpc3QuZmluZCgnLnNlY3Rpb25bZGF0YS1zZWN0aW9uPSInK3QrJyJdJyksaT1zLiRsaXN0LnNjcm9sbFRvcCgpKyhuLm9mZnNldCgpLnRvcC1zLiRsaXN0Lm9mZnNldCgpLnRvcCk7cmV0dXJuIHMuX3Njcm9sbFRvKGkpLCExfSl9LF9iaW5kSG92ZXI6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gaShlKXtyZXR1cm4gcy4kcGlja2VyLmZpbmQoIi5mb290ZXIgLmluZm8iKS5odG1sKGV8fCIiKX12YXIgcz10aGlzOyhlfHx0aGlzLiRsaXN0LmZpbmQoIi5zZWN0aW9uLWdyb3VwIikpLm9uKHttb3VzZW92ZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9cy5fY29kZUZvckVtb2ppQnV0dG9uKCQoZS5jdXJyZW50VGFyZ2V0KSksbj0nPGltZyBzcmM9IicrKDAsbC5lbW9qaVVybEZvcikodCkrJyIgY2xhc3M9ImVtb2ppIj4gPHNwYW4+OicrdCsiOjxzcGFuPiI7aShuKX0sbW91c2VsZWF2ZTpmdW5jdGlvbigpe3JldHVybiBpKCl9fSwiYnV0dG9uLmVtb2ppIil9LF9iaW5kUmVzaXppbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOyQod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3kudGhyb3R0bGUoZSxlLl9wb3NpdGlvblBpY2tlciwxNil9KSwkKCIjcmVwbHktY29udHJvbCIpLm9uKCJkaXYtcmVzaXppbmciLGZ1bmN0aW9uKCl7eS50aHJvdHRsZShlLGUuX3Bvc2l0aW9uUGlja2VyLDE2KX0pfSxfYmluZENsZWFyUmVjZW50RW1vamlzR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHBpY2tlci5maW5kKCIuc2VjdGlvbltkYXRhLXNlY3Rpb249J3JlY2VudCddIC5jbGVhci1yZWNlbnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZW1vamlTdG9yZS5mYXZvcml0ZXM9W10sZS5zZXQoInJlY2VudEVtb2ppcyIsW10pLGUuX3Njcm9sbFRvKDApLCExfSl9LF9iaW5kRW1vamlDbGljazpmdW5jdGlvbihlKXtmdW5jdGlvbiBuKGUpe3ZhciB0PXMuX2NvZGVGb3JFbW9qaUJ1dHRvbigkKGUuY3VycmVudFRhcmdldCkpO3JldHVybiAwPT09JChlLmN1cnJlbnRUYXJnZXQpLnBhcmVudHMoIi5zZWN0aW9uW2RhdGEtc2VjdGlvbj0ncmVjZW50J10iKS5sZW5ndGgmJnMuX3RyYWNrRW1vamlVc2FnZSh0KSxzLmVtb2ppU2VsZWN0ZWQodCkscy4kbW9kYWwuaGFzQ2xhc3MoImZhZGVJbiIpJiZzLnNldCgiYWN0aXZlIiwhMSksITF9dmFyIGkscz10aGlzO3RoaXMuc2l0ZS5pc01vYmlsZURldmljZT8oaT10aGlzLGUub2ZmKCJ0b3VjaHN0YXJ0Iikub24oInRvdWNoc3RhcnQiLCJidXR0b24uZW1vamkiLGZ1bmN0aW9uKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KTt0Lm9uKCJ0b3VjaGVuZCIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbi5iaW5kKGkpKGUpLHQub2ZmKCJ0b3VjaGVuZCIpfSksdC5vbigidG91Y2htb3ZlIixmdW5jdGlvbigpe3JldHVybiB0Lm9mZigidG91Y2hlbmQiKX0pfSkpOmUub2ZmKCJjbGljayIpLm9uKCJjbGljayIsImJ1dHRvbi5lbW9qaSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uYmluZChzKShlKX0pfSxfYmluZFNlY3Rpb25zU2Nyb2xsOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3kuZGVib3VuY2UodCx0Ll9jaGVja1Zpc2libGVTZWN0aW9uLDUwKX12YXIgdD10aGlzO3RoaXMuJGxpc3Qub24oInNjcm9sbCIsZSksdGhpcy5fcmVmcmVzaEludGVydmFsPXNldEludGVydmFsKGUsMTAwKX0sX2NoZWNrVmlzaWJsZVNlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM7dGhpcy4kcGlja2VyJiYoKHQ9dGhpcy4kbGlzdC5zY3JvbGxUb3AoKSk9PT10aGlzLnNjcm9sbFBvc2l0aW9uJiYhZXx8KHRoaXMuc2Nyb2xsUG9zaXRpb249dCxuPXRoaXMuJGxpc3QuZmluZCgiLnNlY3Rpb24iKSxpPXRoaXMuJGxpc3QuaW5uZXJIZWlnaHQoKSxzPXZvaWQgMCx0aGlzLiR2aXNpYmxlU2VjdGlvbnM9Xy5maWx0ZXIobixmdW5jdGlvbihlKXt2YXIgdD0kKGUpLG49dC5wb3NpdGlvbigpLnRvcDtyZXR1cm4gMDxuK3QuaGVpZ2h0KCkmJm48aX0pLChzPV8uaXNFbXB0eSh0aGlzLnJlY2VudEVtb2ppcyl8fDAhPT10aGlzLnNjcm9sbFBvc2l0aW9uPyQoXy5sYXN0KHRoaXMuJHZpc2libGVTZWN0aW9ucykpOiQoXy5maXJzdCh0aGlzLiR2aXNpYmxlU2VjdGlvbnMpKSkmJih0aGlzLiRwaWNrZXIuZmluZCgiLmNhdGVnb3J5LWljb24iKS5yZW1vdmVDbGFzcygiY3VycmVudCIpLHRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcnktaWNvbiBidXR0b25bZGF0YS1zZWN0aW9uPSciK3MuZGF0YSgic2VjdGlvbiIpKyInXSIpLnBhcmVudCgpLmFkZENsYXNzKCJjdXJyZW50IiksdGhpcy5fbG9hZFZpc2libGVTZWN0aW9ucygpKSkpfSxfbG9hZFZpc2libGVTZWN0aW9uczpmdW5jdGlvbigpe3ZhciBzLG89dGhpczt0aGlzLiR2aXNpYmxlU2VjdGlvbnMmJihzPXRoaXMuJGxpc3QuaW5uZXJIZWlnaHQoKSx0aGlzLiR2aXNpYmxlU2VjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0kKGUpLmZpbmQoImJ1dHRvbi5lbW9qaVtkYXRhLWxvYWRlZCE9JzEnXSIpOyQuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10Lm9mZnNldFRvcDtpPG8uc2Nyb2xsUG9zaXRpb24rcysyMDAmJmkrMjAwPm8uc2Nyb2xsUG9zaXRpb24mJihuPSQodCksby5fc2V0QnV0dG9uQmFja2dyb3VuZChuKSl9KX0pKX0sX2JpbmREaXZlcnNpdHlDbGljazpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy4kcGlja2VyLmZpbmQoIi5kaXZlcnNpdHktcGlja2VyIC5kaXZlcnNpdHktc2NhbGUiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KTtyZXR1cm4gbi5zZXQoInNlbGVjdGVkRGl2ZXJzaXR5IixwYXJzZUludCh0LmRhdGEoImxldmVsIiksMTApKSwhMX0pfSxfaXNSZXBseUNvbnRyb2xFeHBhbmRlZDpmdW5jdGlvbigpe3JldHVybiAkKHdpbmRvdykuaGVpZ2h0KCktJCgiLmQtaGVhZGVyIikuaGVpZ2h0KCktJCgiI3JlcGx5LWNvbnRyb2wiKS5oZWlnaHQoKTx0aGlzLiRwaWNrZXIuaGVpZ2h0KCktNDh9LF9wb3NpdGlvblBpY2tlcjpmdW5jdGlvbigpe3ZhciBuLGUsdCxpLHMsbyxyLGEsbCx1LGMsZCxwLG09dGhpczt0aGlzLmFjdGl2ZSYmKG49JCh3aW5kb3cpLndpZHRoKCksZT1mdW5jdGlvbihlKXt2YXIgdD17d2lkdGg6TWF0aC5taW4obiw0MDApLTEyLG1hcmdpbkxlZnQ6LU1hdGgubWluKG4sNDAwKS8yKzYsbWFyZ2luVG9wOi0xMzAsbGVmdDoiNTAlIixib3R0b206IiIsdG9wOiI1MCUiLGRpc3BsYXk6ImZsZXgifTttLiRtb2RhbC5hZGRDbGFzcygiZmFkZUluIiksbS4kcGlja2VyLmNzcyhfLm1lcmdlKHQsZSkpfSx0PWZ1bmN0aW9uKGUpe3ZhciB0PXtwb3NpdGlvbjoiZml4ZWQiLHdpZHRoOm48NDg1P24tMTI6NDAwLG1hcmdpbkxlZnQ6IiIsbWFyZ2luVG9wOiIiLHJpZ2h0OiIiLGxlZnQ6IiIsYm90dG9tOjMyLHRvcDoiIixkaXNwbGF5OiJmbGV4In07bS4kbW9kYWwucmVtb3ZlQ2xhc3MoImZhZGVJbiIpLG0uJHBpY2tlci5jc3MoXy5tZXJnZSh0LGUpKX0sInRlc3QiIT09Zi5kZWZhdWx0LmVudmlyb25tZW50JiZ0aGlzLmF1dG9tYXRpY1Bvc2l0aW9uaW5nPyh0aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2U/KGQ9e3dpZHRoOm4sbWFyZ2luTGVmdDowLG1hcmdpblRvcDoiYXV0byIsbGVmdDowLGJvdHRvbToiIix0b3A6MCxkaXNwbGF5OiJmbGV4In0sbS4kbW9kYWwuYWRkQ2xhc3MoImZhZGVJbiIpLG0uJHBpY2tlci5jc3MoXy5tZXJnZShkLGMpKSk6dGhpcy5faXNSZXBseUNvbnRyb2xFeHBhbmRlZCgpPyhpPSQoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKSkuaXMoIjp2aXNpYmxlIikmJmkud2lkdGgoKTw0MDB8fG48NDg1P2UoKTppLmlzKCI6dmlzaWJsZSIpPyhzPSQoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKS5vZmZzZXQoKSxvPSQoIiNyZXBseS1jb250cm9sIikub2Zmc2V0KCksdCh7bGVmdDpzLmxlZnQtby5sZWZ0fSkpOnQoe3JpZ2h0OigkKCIjcmVwbHktY29udHJvbCIpLndpZHRoKCktJCgiLmQtZWRpdG9yLWNvbnRhaW5lciIpLndpZHRoKCkpLzJ9KTpuPDQ4NT9lKCk6KHI9JCgiLmQtZWRpdG9yLWlucHV0Iikub2Zmc2V0KCksYT0kKCIuZC1lZGl0b3IgLmVtb2ppLXBpY2tlciIpLmhlaWdodCgpLGw9JCgiLmQtZWRpdG9yLWlucHV0IikuaGVpZ2h0KCksdT0kKHdpbmRvdykuc2Nyb2xsVG9wKCkrJCh3aW5kb3cpLmhlaWdodCgpLHIudG9wK2wrYTx1P3Qoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnIudG9wK2wsbGVmdDpyLmxlZnR9KTp0KHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotYSxsZWZ0OnIubGVmdH0pKSxwPXRoaXMuJHBpY2tlci53aWR0aCgpLXRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcmllcy1jb2x1bW4iKS53aWR0aCgpLXRoaXMuJHBpY2tlci5maW5kKCIuZGl2ZXJzaXR5LXBpY2tlciIpLndpZHRoKCktMzIsdGhpcy4kcGlja2VyLmZpbmQoIi5pbmZvIikuY3NzKCJtYXgtd2lkdGgiLHApKTp0KCkpfSxfY29kZVdpdGhEaXZlcnNpdHk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmMSE9PXRoaXMuc2VsZWN0ZWREaXZlcnNpdHk/ZSsiOnQiK3RoaXMuc2VsZWN0ZWREaXZlcnNpdHk6ZX0sX3RyYWNrRW1vamlVc2FnZTpmdW5jdGlvbihlKXt0aGlzLmVtb2ppU3RvcmUudHJhY2soZSksdGhpcy5zZXQoInJlY2VudEVtb2ppcyIsdGhpcy5lbW9qaVN0b3JlLmZhdm9yaXRlcy5zbGljZSgwLDExKSl9LF9zY3JvbGxUbzpmdW5jdGlvbihlKXt2YXIgdD12b2lkIDA9PT1lP3RoaXMuc2Nyb2xsUG9zaXRpb246ZTt0aGlzLiRsaXN0LnNjcm9sbFRvcCh0KSwwPT09dCYmdGhpcy4kbGlzdC5zY3JvbGwoKX0sX2NvZGVGb3JFbW9qaUJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLmF0dHIoInRpdGxlIik7cmV0dXJuIHRoaXMuX2NvZGVXaXRoRGl2ZXJzaXR5KHQsZS5oYXNDbGFzcygiZGl2ZXJzaXR5IikpfSxfc2V0QnV0dG9uQmFja2dyb3VuZDpmdW5jdGlvbih0LG4pe3ZhciBpLHM9dGhpczt0JiYoaT0kKHQpLHQ9aVswXSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dmFyIGU9cy5fY29kZVdpdGhEaXZlcnNpdHkoaS5hdHRyKCJ0aXRsZSIpLG58fGkuaGFzQ2xhc3MoImRpdmVyc2l0eSIpKTsibm9uZSIhPT10LnN0eWxlLmJhY2tncm91bmRJbWFnZSYmKHQuc3R5bGUuYmFja2dyb3VuZEltYWdlPSIiKSx0LnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKCInKygwLGwuZW1vamlVcmxGb3IpKGUpKyciKScsaS5hdHRyKCJkYXRhLWxvYWRlZCIsMSl9KSl9fSwiX3NldEluaXRpYWxWYWx1ZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl9zZXRJbml0aWFsVmFsdWVzIiksdikscih2LCJfdW5iaW5kR2xvYmFsRXZlbnRzIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJfdW5iaW5kR2xvYmFsRXZlbnRzIiksdikscih2LCJfc2V0dXAiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl9zZXR1cCIpLHYpLHIodiwiX3NldFN0YXRlIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJfc2V0U3RhdGUiKSx2KSxyKHYsImZpbHRlckNoYW5nZWQiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImZpbHRlckNoYW5nZWQiKSx2KSxyKHYsInNlbGVjdGVkRGl2ZXJzaXR5Q2hhbmdlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iodiwic2VsZWN0ZWREaXZlcnNpdHlDaGFuZ2VkIiksdikscih2LCJfcmVjZW50RW1vamlzQ2hhbmdlZCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiX3JlY2VudEVtb2ppc0NoYW5nZWQiKSx2KSxyKHYsIl91bmJpbmRFdmVudHMiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl91bmJpbmRFdmVudHMiKSx2KSx2KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChvPSgwLGkuZGVmYXVsdCkoImhhc05hbWUiLCJuYW1lIikscj17dHlwZToiZW1vamkiLHVwbG9hZFVybDoiL2FkbWluL2N1c3RvbWl6ZS9lbW9qaXMiLGhhc05hbWU6KDAsdC5ub3RFbXB0eSkoIm5hbWUiKSxhZGREaXNhYmxlZDooMCx0Lm5vdCkoImhhc05hbWUiKSx1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue3NlcXVlbnRpYWxVcGxvYWRzOiEwfX0sZGF0YTpmdW5jdGlvbihlLHQpe3JldHVybiBlP3tuYW1lOnR9Ont9fSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJuYW1lIixudWxsKSx0aGlzLmRvbmUoZSl9fSxhPXIsbD0iZGF0YSIsdT1bb10sYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImRhdGEiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9leHBhbmQtcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheCJdLGZ1bmN0aW9uKGUsdCxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLGV4cGFuZGVkOm51bGwsX2xvYWRpbmc6ITEsYWN0aW9uczp7dG9nZ2xlSXRlbTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5fbG9hZGluZylyZXR1cm4hMTt2YXIgbj10aGlzLml0ZW07aWYodGhpcy5leHBhbmRlZClyZXR1cm4gdGhpcy5zZXQoImV4cGFuZGVkIiwhMSksbi5zZXQoImV4cGFuZGVkRXhjZXJwdCIsbnVsbCksITE7dmFyIGU9bi5nZXQoInRvcGljX2lkIiksaT1uLmdldCgicG9zdF9udW1iZXIiKTtyZXR1cm4gdGhpcy5fbG9hZGluZz0hMCwoMCxzLmFqYXgpKCIvcG9zdHMvYnlfbnVtYmVyLyIrZSsiLyIraSsiLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJleHBhbmRlZCIsITApLG4uc2V0KCJleHBhbmRlZEV4Y2VycHQiLGUuY29va2VkKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5fbG9hZGluZz0hMX0pLCExfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZXhwYW5kaW5nLXRleHQtYXJlYSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2F1dG9zaXplIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1FbWJlci5UZXh0QXJlYS5leHRlbmQoKG89KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxyPSgwLG4ub2JzZXJ2ZXMpKCJ2YWx1ZSIpLGE9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHMobD17X3N0YXJ0V2F0Y2hpbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7JChlLmVsZW1lbnQpLmZvY3VzKCksKDAsaS5kZWZhdWx0KShlLmVsZW1lbnQpfSl9LF91cGRhdGVBdXRvc2l6ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC52YWx1ZT10aGlzLnZhbHVlO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO2UuaW5pdEV2ZW50KCJhdXRvc2l6ZTp1cGRhdGUiLCEwLCExKSx0aGlzLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChlKX0sX2Rpc2FibGVBdXRvc2l6ZTpmdW5jdGlvbigpe2kuZGVmYXVsdC5kZXN0cm95KCQodGhpcy5lbGVtZW50KSl9fSwiX3N0YXJ0V2F0Y2hpbmciLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9zdGFydFdhdGNoaW5nIiksbCkscyhsLCJfdXBkYXRlQXV0b3NpemUiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl91cGRhdGVBdXRvc2l6ZSIpLGwpLHMobCwiX2Rpc2FibGVBdXRvc2l6ZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2Rpc2FibGVBdXRvc2l6ZSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmVhdHVyZWQtdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOmZlYXR1cmVkLXRvcGljIl0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5jbG9zZXN0KCIubGFzdC1wb3N0ZWQtYXQiKS5sZW5ndGgpcmV0dXJuIHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInRvcGljLWVudHJhbmNlOnNob3ciLHt0b3BpYzp0aGlzLnRvcGljLHBvc2l0aW9uOnQub2Zmc2V0KCl9KSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmxhZy1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Bvc3QtYWN0aW9uLXR5cGUiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJmbGFnLm5hbWVfa2V5IiksYT0oMCx0LmRlZmF1bHQpKCJmbGFnLm5hbWUiLCJmbGFnLm5hbWVfa2V5IiwiZmxhZy5pc19jdXN0b21fZmxhZyIsInVzZXJuYW1lIiksbD0oMCx0LmRlZmF1bHQpKCJmbGFnIiwic2VsZWN0ZWRGbGFnIiksdT0oMCx0LmRlZmF1bHQpKCJmbGFnLmRlc2NyaXB0aW9uIiwiZmxhZy5zaG9ydF9kZXNjcmlwdGlvbiIpLGM9KDAsdC5kZWZhdWx0KSgibWVzc2FnZS5sZW5ndGgiKSxkPSgwLHQuZGVmYXVsdCkoIm1lc3NhZ2UubGVuZ3RoIiksbyhwPXtjbGFzc05hbWVzOlsiZmxhZy1hY3Rpb24tdHlwZSJdLGN1c3RvbVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImZsYWdnaW5nLmN1c3RvbV9wbGFjZWhvbGRlcl8iK2UpfSxmb3JtYXR0ZWROYW1lOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiBuP2UucmVwbGFjZSgie3t1c2VybmFtZX19IixpKTpJMThuLnQoImZsYWdnaW5nLmZvcm1hdHRlZF9uYW1lLiIrdCl9LHNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fSxzaG93TWVzc2FnZUlucHV0OigwLG4uYW5kKSgiZmxhZy5pc19jdXN0b21fZmxhZyIsInNlbGVjdGVkIiksc2hvd0Rlc2NyaXB0aW9uOigwLG4ubm90KSgic2hvd01lc3NhZ2VJbnB1dCIpLGlzTm90aWZ5VXNlcjooMCxuLmVxdWFsKSgiZmxhZy5uYW1lX2tleSIsIm5vdGlmeV91c2VyIiksZGVzY3JpcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXc/dDplfSxjdXN0b21NZXNzYWdlTGVuZ3RoQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZTxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1pbl9wZXJzb25hbF9tZXNzYWdlX3Bvc3RfbGVuZ3RoPyJ0b28tc2hvcnQiOiJvayJ9LGN1c3RvbU1lc3NhZ2VMZW5ndGg6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8MCxuPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWluX3BlcnNvbmFsX21lc3NhZ2VfcG9zdF9sZW5ndGg7cmV0dXJuIDA9PT10P0kxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UuYXRfbGVhc3QiLHtjb3VudDpufSk6dDxuP0kxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UubW9yZSIse2NvdW50Om4tdH0pOkkxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UubGVmdCIse2NvdW50OnMuTUFYX01FU1NBR0VfTEVOR1RILXR9KX0sYWN0aW9uczp7Y2hhbmdlUG9zdEFjdGlvblR5cGU6ZnVuY3Rpb24oZSl7dGhpcy5jaGFuZ2VQb3N0QWN0aW9uVHlwZShlKX19fSwiY3VzdG9tUGxhY2Vob2xkZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImN1c3RvbVBsYWNlaG9sZGVyIikscCksbyhwLCJmb3JtYXR0ZWROYW1lIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmb3JtYXR0ZWROYW1lIikscCksbyhwLCJzZWxlY3RlZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2VsZWN0ZWQiKSxwKSxvKHAsImRlc2NyaXB0aW9uIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJkZXNjcmlwdGlvbiIpLHApLG8ocCwiY3VzdG9tTWVzc2FnZUxlbmd0aENsYXNzZXMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIikscCksbyhwLCJjdXN0b21NZXNzYWdlTGVuZ3RoIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjdXN0b21NZXNzYWdlTGVuZ3RoIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9mbGFnLXNlbGVjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLGkub2JzZXJ2ZXMpKCJuYW1lS2V5Iikscj1vPXtfc2VsZWN0UmFkaW86ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT0ncmFkaW8nXSIpLmNoZWNrZWQ9ITE7dmFyIGU9dGhpcy5uYW1lS2V5O2UmJih0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiI3JhZGlvXyIrZSkuY2hlY2tlZD0idHJ1ZSIpfSxzZWxlY3RlZENoYW5nZWQ6ZnVuY3Rpb24oKXsoMCx0Lm5leHQpKHRoaXMsdGhpcy5fc2VsZWN0UmFkaW8pfX0sYT0ic2VsZWN0ZWRDaGFuZ2VkIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywic2VsZWN0ZWRDaGFuZ2VkIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmxhdC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4uZGVmYXVsdCkoInRpdGxlIiksbz1zPXt0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZXM6WyJidG4tZmxhdCJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsiZGlzYWJsZWQiLCJ0cmFuc2xhdGVkVGl0bGU6dGl0bGUiXSx0cmFuc2xhdGVkVGl0bGU6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gSTE4bi50KGUpfSxjbGljazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJzLmFjdGlvbigpfX0scj0idHJhbnNsYXRlZFRpdGxlIixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywidHJhbnNsYXRlZFRpdGxlIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZm9vdGVyLW1lc3NhZ2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJmb290ZXItbWVzc2FnZSJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Zvb3Rlci1uYXYiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlL21peGlucy9tb2JpbGUtc2Nyb2xsLWRpcmVjdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsaW5nIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkPW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LGkuZGVmYXVsdCwobD0oMCxvLm9ic2VydmVzKSgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiksdT0oMCxvLm9ic2VydmVzKSgiY3VycmVudFJvdXRlSW5kZXgiKSxhKGM9e3dpZGdldDoiZm9vdGVyLW5hdiIsbW9iaWxlU2Nyb2xsRGlyZWN0aW9uOm51bGwsc2Nyb2xsRXZlbnREaXNhYmxlZDohMSxjbGFzc05hbWVzOlsiZm9vdGVyLW5hdiIsInZpc2libGUiXSxyb3V0ZUhpc3Rvcnk6W10sY3VycmVudFJvdXRlSW5kZXg6MCxjYW5Hb0JhY2s6ITEsY2FuR29Gb3J3YXJkOiExLGJhY2tGb3J3YXJkQ2xpY2tlZDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3JldHVybntjYW5Hb0JhY2s6dGhpcy5jYW5Hb0JhY2ssY2FuR29Gb3J3YXJkOnRoaXMuY2FuR29Gb3J3YXJkfX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJwYWdlOmNoYW5nZWQiLHRoaXMsIl9yb3V0ZUNoYW5nZWQiKSwoMCxyLmlzQXBwV2VidmlldykoKSYmKHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbDpib2R5LXNob3duIix0aGlzLCJfbW9kYWxPbiIpLHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbDpib2R5LWRpc21pc3NlZCIsdGhpcywiX21vZGFsT2ZmIikpLHRoaXMuY2FwYWJpbGl0aWVzLmlzSXBhZE9TPyQoImJvZHkiKS5hZGRDbGFzcygiZm9vdGVyLW5hdi1pcGFkIik6KHRoaXMuYmluZFNjcm9sbGluZyh7bmFtZToiZm9vdGVyLW5hdiJ9KSwkKHdpbmRvdykub24oInJlc2l6ZS5mb290ZXItbmF2LW9uLXNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5zY3JvbGxlZCgpfSksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOm9wZW5lZCIsdGhpcywiX2NvbXBvc2VyT3BlbmVkIiksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOmNsb3NlZCIsdGhpcywiX2NvbXBvc2VyQ2xvc2VkIikpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJwYWdlOmNoYW5nZWQiLHRoaXMsIl9yb3V0ZUNoYW5nZWQiKSwoMCxyLmlzQXBwV2VidmlldykoKSYmKHRoaXMuYXBwRXZlbnRzLm9mZigibW9kYWw6Ym9keS1zaG93biIsdGhpcywiX21vZGFsT24iKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsOmJvZHktcmVtb3ZlZCIsdGhpcywiX21vZGFsT2ZmIikpLHRoaXMuY2FwYWJpbGl0aWVzLmlzSXBhZE9TPyQoImJvZHkiKS5yZW1vdmVDbGFzcygiZm9vdGVyLW5hdi1pcGFkIik6KHRoaXMudW5iaW5kU2Nyb2xsaW5nKCJmb290ZXItbmF2IiksJCh3aW5kb3cpLnVuYmluZCgicmVzaXplLmZvb3Rlci1uYXYtb24tc2Nyb2xsIiksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsIl9jb21wb3Nlck9wZW5lZCIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6Y2xvc2VkIix0aGlzLCJfY29tcG9zZXJDbG9zZWQiKSl9LHNjcm9sbGVkOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fCJpbkRPTSIhPT10aGlzLl9zdGF0ZXx8dGhpcy5zY3JvbGxFdmVudERpc2FibGVkfHwoZT13aW5kb3cucGFnZVlPZmZzZXR8fCQoImh0bWwiKS5zY3JvbGxUb3AoKSwoMCx0LnRocm90dGxlKSh0aGlzLHRoaXMuY2FsY3VsYXRlRGlyZWN0aW9uLGUsMTUwKSl9LHRvZ2dsZU1vYmlsZUZvb3RlcjpmdW5jdGlvbigpeyQodGhpcy5lbGVtZW50KS50b2dnbGVDbGFzcygidmlzaWJsZSIsbnVsbD09PXRoaXMubW9iaWxlU2Nyb2xsRGlyZWN0aW9uKSwkKCJib2R5IikudG9nZ2xlQ2xhc3MoImZvb3Rlci1uYXYtdmlzaWJsZSIsbnVsbD09PXRoaXMubW9iaWxlU2Nyb2xsRGlyZWN0aW9uKX0sX3JvdXRlQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLmJhY2tGb3J3YXJkQ2xpY2tlZD90aGlzLmJhY2tGb3J3YXJkQ2xpY2tlZD1udWxsOih0aGlzLnJvdXRlSGlzdG9yeS5wdXNoKGUudXJsKSx0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMucm91dGVIaXN0b3J5Lmxlbmd0aCksdGhpcy5xdWV1ZVJlcmVuZGVyKCkpfSxfY29tcG9zZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiwiZG93biIpLHRoaXMuc2V0KCJzY3JvbGxFdmVudERpc2FibGVkIiwhMCl9LF9jb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJtb2JpbGVTY3JvbGxEaXJlY3Rpb24iLG51bGwpLHRoaXMuc2V0KCJzY3JvbGxFdmVudERpc2FibGVkIiwhMSl9LF9tb2RhbE9uOmZ1bmN0aW9uKCl7KDAsci5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoImhlYWRlckJnIiwkKCIubW9kYWwtYmFja2Ryb3AiKS5jc3MoImJhY2tncm91bmQtY29sb3IiKSl9LF9tb2RhbE9mZjpmdW5jdGlvbigpeygwLHIucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJoZWFkZXJCZyIsJCgiLmQtaGVhZGVyIikuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIikpfSxnb0JhY2s6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMuY3VycmVudFJvdXRlSW5kZXgtMSksdGhpcy5iYWNrRm9yd2FyZENsaWNrZWQ9ITAsd2luZG93Lmhpc3RvcnkuYmFjaygpfSxnb0ZvcndhcmQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMuY3VycmVudFJvdXRlSW5kZXgrMSksdGhpcy5iYWNrRm9yd2FyZENsaWNrZWQ9ITAsd2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpfSxzZXRCYWNrRm9yd2FyZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFJvdXRlSW5kZXg7dGhpcy5zZXQoImNhbkdvQmFjayIsISEoMTxlfHxkb2N1bWVudC5yZWZlcnJlcikpLHRoaXMuc2V0KCJjYW5Hb0ZvcndhcmQiLGU8dGhpcy5yb3V0ZUhpc3RvcnkubGVuZ3RoKX19LCJ0b2dnbGVNb2JpbGVGb290ZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRvZ2dsZU1vYmlsZUZvb3RlciIpLGMpLGEoYywic2V0QmFja0ZvcndhcmQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNldEJhY2tGb3J3YXJkIiksYyksYykpO2UuZGVmYXVsdD1kfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9mdXR1cmUtZGF0ZS1pbnB1dCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZWRpdC10b3BpYy10aW1lciJdLGZ1bmN0aW9uKGUsYSx0LG4saSxzLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLHUsYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPSgwLGkub2JzZXJ2ZXMpKCJkYXRlIiwidGltZSIpLHU9KDAsaS5vYnNlcnZlcykoImlzQmFzZWRPbkxhc3RQb3N0IiksYz0oMCxpLmRlZmF1bHQpKCJpbnB1dCIsImlzQmFzZWRPbkxhc3RQb3N0IiksZD0oMCxpLmRlZmF1bHQpKCJpbnB1dCIsImlzQmFzZWRPbkxhc3RQb3N0IikscD0oMCxpLmRlZmF1bHQpKCJzdGF0dXNUeXBlIiwiaW5wdXQiLCJpc0N1c3RvbSIsImRhdGUiLCJ0aW1lIiwid2lsbENsb3NlSW1tZWRpYXRlbHkiLCJjYXRlZ29yeUlkIiksbT0oMCxpLmRlZmF1bHQpKCJpc0Jhc2VkT25MYXN0UG9zdCIsImlucHV0IiwibGFzdFBvc3RlZEF0IiksZj0oMCxpLmRlZmF1bHQpKCJpc0Jhc2VkT25MYXN0UG9zdCIsImxhc3RQb3N0ZWRBdCIpLG8oaD17c2VsZWN0aW9uOm51bGwsZGF0ZTpudWxsLHRpbWU6bnVsbCxpbmNsdWRlRGF0ZVRpbWU6ITAsaXNDdXN0b206KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsInBpY2tfZGF0ZV9hbmRfdGltZSIpLGlzQmFzZWRPbkxhc3RQb3N0OigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJzZXRfYmFzZWRfb25fbGFzdF9wb3N0IiksZGlzcGxheURhdGVBbmRUaW1lUGlja2VyOigwLHQuYW5kKSgiaW5jbHVkZURhdGVUaW1lIiwiaXNDdXN0b20iKSxkaXNwbGF5TGFiZWw6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaW5wdXQmJih0aGlzLmJhc2VkT25MYXN0UG9zdD90aGlzLnNldCgic2VsZWN0aW9uIiwic2V0X2Jhc2VkX29uX2xhc3RfcG9zdCIpOihlPW1vbWVudCh0aGlzLmlucHV0KSx0aGlzLnNldFByb3BlcnRpZXMoe3NlbGVjdGlvbjoicGlja19kYXRlX2FuZF90aW1lIixkYXRlOmUuZm9ybWF0KCJZWVlZLU1NLUREIiksdGltZTplLmZvcm1hdCgiSEg6bW0iKX0pLHRoaXMuX3VwZGF0ZUlucHV0KCkpKX0sdGltZUlucHV0RGlzYWJsZWQ6KDAsdC5lbXB0eSkoImRhdGUiKSxfdXBkYXRlSW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLmRhdGV8fHRoaXMuc2V0KCJ0aW1lIixudWxsKTt2YXIgZT10aGlzLnRpbWU/IiAiK3RoaXMudGltZToiIix0PW1vbWVudCh0aGlzLmRhdGUrZSk7dC5pc1ZhbGlkKCk/dGhpcy5hdHRycy5vbkNoYW5nZUlucHV0JiZ0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQodC5mb3JtYXQocy5GT1JNQVQpKTp0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQmJnRoaXMuYXR0cnMub25DaGFuZ2VJbnB1dChudWxsKX0sX3VwZGF0ZUJhc2VkT25MYXN0UG9zdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJiYXNlZE9uTGFzdFBvc3QiLHRoaXMuaXNCYXNlZE9uTGFzdFBvc3QpfSxkdXJhdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBuPW1vbWVudCgpO3JldHVybiB0P3BhcnNlRmxvYXQoZSk6bW9tZW50KGUpLW59LGV4ZWN1dGVBdDpmdW5jdGlvbihlLHQpe3JldHVybiB0P21vbWVudCgpLmFkZChlLCJob3VycyIpLmZvcm1hdChzLkZPUk1BVCk6ZX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubGFiZWwmJnRoaXMuc2V0KCJkaXNwbGF5TGFiZWwiLEkxOG4udCh0aGlzLmxhYmVsKSl9LHNob3dUb3BpY1N0YXR1c0luZm86ZnVuY3Rpb24oZSx0LG4saSxzLG8scil7cmV0dXJuISghZXx8bykmJigoZSE9PWwuUFVCTElTSF9UT19DQVRFR09SWV9TVEFUVVNfVFlQRXx8ISgwLGEuaXNFbXB0eSkocikpJiYobj9pP21vbWVudChpKyhzPyIgIitzOiIiKSkuaXNBZnRlcihtb21lbnQoKSk6czp0KSl9LHdpbGxDbG9zZUltbWVkaWF0ZWx5OmZ1bmN0aW9uKGUsdCxuKXtpZihlJiZ0KXJldHVybiBtb21lbnQobikuYWRkKHQsImhvdXJzIik8bW9tZW50KCl9LHdpbGxDbG9zZUkxOG46ZnVuY3Rpb24oZSx0KXtpZihlKXt2YXIgbj1NYXRoLnJvdW5kKChuZXcgRGF0ZS1uZXcgRGF0ZSh0KSkvMzZlNSk7cmV0dXJuIEkxOG4udCgidG9waWMuYXV0b19jbG9zZV9pbW1lZGlhdGUiLHtjb3VudDpufSl9fX0sIl91cGRhdGVJbnB1dCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiX3VwZGF0ZUlucHV0IiksaCksbyhoLCJfdXBkYXRlQmFzZWRPbkxhc3RQb3N0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJfdXBkYXRlQmFzZWRPbkxhc3RQb3N0IiksaCksbyhoLCJkdXJhdGlvbiIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiZHVyYXRpb24iKSxoKSxvKGgsImV4ZWN1dGVBdCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiZXhlY3V0ZUF0IiksaCksbyhoLCJzaG93VG9waWNTdGF0dXNJbmZvIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJzaG93VG9waWNTdGF0dXNJbmZvIiksaCksbyhoLCJ3aWxsQ2xvc2VJbW1lZGlhdGVseSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwid2lsbENsb3NlSW1tZWRpYXRlbHkiKSxoKSxvKGgsIndpbGxDbG9zZUkxOG4iLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsIndpbGxDbG9zZUkxOG4iKSxoKSxoKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dlbmVyYXRlZC1pbnZpdGUtbGluayIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5zZWxlY3QoKS5mb2N1cygpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nbG9iYWwtbm90aWNlIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2Uvc2VydmljZXMvbG9ncy1ub3RpY2UiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkR2xvYmFsTm90aWNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O28ucHVzaChhLmNyZWF0ZSh7dGV4dDplLGlkOnQsb3B0aW9uczpufSkpfTt2YXIgbz1bXTt2YXIgcj0iZGlzbWlzc2VkLWdsb2JhbC1ub3RpY2UtdjIiLGE9cy5kZWZhdWx0LmV4dGVuZCh7dGV4dDpudWxsLGlkOm51bGwsb3B0aW9uczpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5vcHRpb25zPXRoaXMuc2V0KCJvcHRpb25zIixPYmplY3QuYXNzaWduKHtkaXNtaXNzYWJsZTohMSxodG1sOm51bGwsbGV2ZWw6ImluZm8iLHBlcnNpc3RlbnREaXNtaXNzOiEwLG9uRGlzbWlzczpudWxsLHZpc2liaWxpdHk6bnVsbCxkaXNtaXNzRHVyYXRpb246bnVsbH0sdGhpcy5vcHRpb25zfHx7fSkpfX0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtsb2dOb3RpY2U6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3NldHVwT2JzZXJ2ZXJzKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl90ZWFyRG93bk9ic2VydmVycygpfSxub3RpY2VzOigwLHMuY29tcHV0ZWQpKCJzaXRlLmlzUmVhZE9ubHkiLCJzaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHMiLCJsb2dOb3RpY2Uue2lkLHRleHQsaGlkZGVufSIsZnVuY3Rpb24oKXt2YXIgZSxzPXRoaXMsdD1bXTtyZXR1cm4iMSI9PT0kLmNvb2tpZSgiZG9zcCIpJiYoJC5yZW1vdmVDb29raWUoImRvc3AiLHtwYXRoOiIvIn0pLHQucHVzaChhLmNyZWF0ZSh7dGV4dDpJMThuLnQoImZvcmNlZF9hbm9ueW1vdXMiKSxpZDoiZm9yY2VkLWFub255bW91cyJ9KSkpLHRoaXMuc2Vzc2lvbiYmdGhpcy5zZXNzaW9uLnNhZmVfbW9kZSYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgic2FmZV9tb2RlLmVuYWJsZWQiKSxpZDoic2FmZS1tb2RlIn0pKSx0aGlzLnNpdGUuaXNSZWFkT25seSYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgicmVhZF9vbmx5X21vZGUuZW5hYmxlZCIpLGlkOiJhbGVydC1yZWFkLW9ubHkifSkpLCJ5ZXMiIT09dGhpcy5zaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHMmJiJub24tc3RhZmYiIT09dGhpcy5zaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHN8fHQucHVzaChhLmNyZWF0ZSh7dGV4dDpJMThuLnQoImVtYWlsc19hcmVfZGlzYWJsZWQiKSxpZDoiYWxlcnQtZW1haWxzLWRpc2FibGVkIn0pKSx0aGlzLnNpdGUud2l6YXJkX3JlcXVpcmVkJiYoZT1JMThuLnQoIndpemFyZF9yZXF1aXJlZCIse3VybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvd2l6YXJkIil9KSx0LnB1c2goYS5jcmVhdGUoe3RleHQ6ZSxpZDoiYWxlcnQtd2l6YXJkIn0pKSksdGhpcy5nZXQoImN1cnJlbnRVc2VyLnN0YWZmIikmJnRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX2VuYWJsZWQmJigwPHRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX21pbl91c2Vycz90LnB1c2goYS5jcmVhdGUoe3RleHQ6STE4bi50KCJib290c3RyYXBfbW9kZV9lbmFibGVkIix7bWluX3VzZXJzOnRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX21pbl91c2Vyc30pLGlkOiJhbGVydC1ib290c3RyYXAtbW9kZSJ9KSk6dC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgiYm9vdHN0cmFwX21vZGVfZGlzYWJsZWQiKSxpZDoiYWxlcnQtYm9vdHN0cmFwLW1vZGUifSkpKSx0aGlzLnNpdGVTZXR0aW5ncy5nbG9iYWxfbm90aWNlJiZ0aGlzLnNpdGVTZXR0aW5ncy5nbG9iYWxfbm90aWNlLmxlbmd0aCYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OnRoaXMuc2l0ZVNldHRpbmdzLmdsb2JhbF9ub3RpY2UsaWQ6ImFsZXJ0LWdsb2JhbC1ub3RpY2UifSkpLHRoaXMubG9nTm90aWNlJiZ0LnB1c2godGhpcy5sb2dOb3RpY2UpLHQuY29uY2F0KG8pLmZpbHRlcihmdW5jdGlvbihlKXtpZihlLm9wdGlvbnMudmlzaWJpbGl0eSlyZXR1cm4gZS5vcHRpb25zLnZpc2liaWxpdHkoZSk7dmFyIHQ9cisiLSIrZS5pZCxuPXMua2V5VmFsdWVTdG9yZS5nZXQodCk7aWYoIW4pcmV0dXJuITA7aWYoIWUub3B0aW9ucy5wZXJzaXN0ZW50RGlzbWlzcylyZXR1cm4hMDtpZihlLm9wdGlvbnMuZGlzbWlzc0R1cmF0aW9uKXt2YXIgaT1tb21lbnQobikuYWRkKGUub3B0aW9ucy5kaXNtaXNzRHVyYXRpb24pO3JldHVybiBtb21lbnQoKS5pc0FmdGVyKGkpfXJldHVybiExfSl9KSxhY3Rpb25zOntkaXNtaXNzTm90aWNlOmZ1bmN0aW9uKGUpe2Uub3B0aW9ucy5vbkRpc21pc3MmJmUub3B0aW9ucy5vbkRpc21pc3MoZSksZS5vcHRpb25zLnBlcnNpc3RlbnREaXNtaXNzJiZ0aGlzLmtleVZhbHVlU3RvcmUuc2V0KHtrZXk6cisiLSIrZS5pZCx2YWx1ZTptb21lbnQoKS50b0lTT1N0cmluZyghMCl9KTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ2xvYmFsLW5vdGljZS0iK2UuaWQpO3QmJih0LnN0eWxlLmRpc3BsYXk9Im5vbmUiKX19LF9zZXR1cE9ic2VydmVyczpmdW5jdGlvbigpe3RoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXI9KDAsdC5iaW5kKSh0aGlzLHRoaXMuX2hhbmRsZUxvZ3NOb3RpY2VVcGRhdGUpLGkuZGVmYXVsdC5jdXJyZW50KCkuYWRkT2JzZXJ2ZXIoImhpZGRlbiIsdGhpcy5fYm91bmRMb2dzTm90aWNlSGFuZGxlciksaS5kZWZhdWx0LmN1cnJlbnQoKS5hZGRPYnNlcnZlcigidGV4dCIsdGhpcy5fYm91bmRMb2dzTm90aWNlSGFuZGxlcil9LF90ZWFyRG93bk9ic2VydmVyczpmdW5jdGlvbigpe3RoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXImJihpLmRlZmF1bHQuY3VycmVudCgpLnJlbW92ZU9ic2VydmVyKCJ0ZXh0Iix0aGlzLl9ib3VuZExvZ3NOb3RpY2VIYW5kbGVyKSxpLmRlZmF1bHQuY3VycmVudCgpLnJlbW92ZU9ic2VydmVyKCJoaWRkZW4iLHRoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXIpLCgwLHQuY2FuY2VsKSh0aGlzLl9ib3VuZExvZ3NOb3RpY2VIYW5kbGVyKSl9LF9oYW5kbGVMb2dzTm90aWNlVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGU9YS5jcmVhdGUoe3RleHQ6aS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtZXNzYWdlIiksaWQ6ImFsZXJ0LWxvZ3Mtbm90aWNlIixvcHRpb25zOntkaXNtaXNzYWJsZTohMCxwZXJzaXN0ZW50RGlzbWlzczohMSx2aXNpYmlsaXR5OmZ1bmN0aW9uKCl7cmV0dXJuIWkuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlkZGVuIil9LG9uRGlzbWlzczpmdW5jdGlvbigpe2kuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlkZGVuIiwhMCksaS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0ZXh0IiwiIil9fX0pO3RoaXMuc2V0KCJsb2dOb3RpY2UiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nb29nbGUtc2VhcmNoIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9e2NsYXNzTmFtZXM6WyJnb29nbGUtc2VhcmNoLWZvcm0iXSxjbGFzc05hbWVCaW5kaW5nczpbImhpZGRlbjpoaWRkZW4iXSxoaWRkZW46KDAsbi5hbGlhcykoInNpdGVTZXR0aW5ncy5sb2dpbl9yZXF1aXJlZCIpLHNpdGVVcmw6ZnVuY3Rpb24oKXtyZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wrIi8vIitsb2NhdGlvbi5ob3N0K0Rpc2NvdXJzZS5nZXRVUkwoIi8iKX19LG89cyxyPSJzaXRlVXJsIixhPVt0LmRlZmF1bHRdLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzaXRlVXJsIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJsaSJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtY2FyZC1jb250ZW50cyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9jYXJkLWNvbnRlbnRzLWJhc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL2NsZWFucy11cCIsImRpc2NvdXJzZS9saWIvdXJsIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCxyLmRlZmF1bHQsKGM9KDAscy5kZWZhdWx0KSgiZ3JvdXAudXNlcl9jb3VudCIsImdyb3VwLm1lbWJlcnMubGVuZ3RoIiksZD0oMCxzLmRlZmF1bHQpKCJncm91cC5uYW1lIikscD0oMCxzLmRlZmF1bHQpKCJncm91cCIpLHUobT17ZWxlbWVudElkOiJncm91cC1jYXJkIix0cmlnZ2VyaW5nTGlua0NsYXNzOiJtZW50aW9uLWdyb3VwIixjbGFzc05hbWVzOlsibm8tYmciLCJncm91cC1jYXJkIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOnNob3ciLCJzaG93QmFkZ2VzIiwiaGFzQ2FyZEJhZGdlSW1hZ2UiLCJpc0ZpeGVkOmZpeGVkIiwiZ3JvdXBDbGFzcyJdLGFsbG93QmFja2dyb3VuZHM6KDAsaS5zZXR0aW5nKSgiYWxsb3dfcHJvZmlsZV9iYWNrZ3JvdW5kcyIpLHNob3dCYWRnZXM6KDAsaS5zZXR0aW5nKSgiZW5hYmxlX2JhZGdlcyIpLHBvc3RTdHJlYW06KDAsdC5hbGlhcykoInRvcGljLnBvc3RTdHJlYW0iKSx2aWV3aW5nVG9waWM6KDAsdC5tYXRjaCkoImN1cnJlbnRQYXRoIiwvXnRvcGljXC4vKSxzaG93TW9yZU1lbWJlcnM6KDAsdC5ndCkoIm1vcmVNZW1iZXJzQ291bnQiLDApLGhhc01lbWJlcnNPcklzTWVtYmVyOigwLHQub3IpKCJncm91cC5tZW1iZXJzIiwiZ3JvdXAuaXNfZ3JvdXBfb3duZXJfZGlzcGxheSIsImdyb3VwLmlzX2dyb3VwX3VzZXIiKSxncm91cDpudWxsLG1vcmVNZW1iZXJzQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSxncm91cENsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJncm91cC1jYXJkLSIrZToiIn0sZ3JvdXBQYXRoOmZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ3JvdXBQYXRoKShlLm5hbWUpfSxfc2hvd0NhbGxiYWNrOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLnN0b3JlLmZpbmQoImdyb3VwIixlKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuLnNldFByb3BlcnRpZXMoe2dyb3VwOmUsdmlzaWJsZTohMH0pLG4uX3Bvc2l0aW9uQ2FyZCh0KSxlLmZsYWlyX3VybHx8ZS5mbGFpcl9iZ19jb2xvcnx8ZS5zZXQoImZsYWlyX3VybCIsImZhLXVzZXJzIiksZS5tZW1iZXJzLmxlbmd0aDwxMD9lLmZpbmRNZW1iZXJzKHtsaW1pdDoxMH0sITApOmwuUHJvbWlzZS5yZXNvbHZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBuLl9jbG9zZSgpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsbnVsbCl9KX0sX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJncm91cCIsbnVsbCl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSxhY3Rpb25zOntjbG9zZTpmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCl9LGNhbmNlbEZpbHRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zdFN0cmVhbTtlLmNhbmNlbEZpbHRlcigpLGUucmVmcmVzaCgpLHRoaXMuX2Nsb3NlKCl9LG1lc3NhZ2VHcm91cDpmdW5jdGlvbigpe3RoaXMuY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyh0aGlzLmdldCgiZ3JvdXAubmFtZSIpKX0sc2hvd0dyb3VwOmZ1bmN0aW9uKGUpe3RoaXMuc2hvd0dyb3VwKGUpLHRoaXMuX2Nsb3NlKCl9LHNob3dVc2VyOmZ1bmN0aW9uKGUpe3RoaXMuc2hvd1VzZXIoZSksdGhpcy5fY2xvc2UoKX19fSwibW9yZU1lbWJlcnNDb3VudCIsW2NdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwibW9yZU1lbWJlcnNDb3VudCIpKT9mLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KSxtKSx1KG0sImdyb3VwQ2xhc3MiLFtkXSwoaD0oaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImdyb3VwQ2xhc3MiKSk/aC52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSksbSksdShtLCJncm91cFBhdGgiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImdyb3VwUGF0aCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtZmxhaXItaW5wdXRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvYWpheCIsIkBlbWJlci90ZW1wbGF0ZSJdLGZ1bmN0aW9uKGUsdCxuLGksbyxzLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxmLGgsYjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHU9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmxhaXJfdXJsIiksYz0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJY29uIiksZD0oMCx0Lm9ic2VydmVzKSgibW9kZWwuZmxhaXJfdXJsIikscD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJY29uIiksbT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJbWFnZSIsIm1vZGVsLmZsYWlyQmFja2dyb3VuZEhleENvbG9yIiwibW9kZWwuZmxhaXJIZXhDb2xvciIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmxhaXJCYWNrZ3JvdW5kSGV4Q29sb3IiKSxoPSgwLHQuZGVmYXVsdCkoImZsYWlyUHJldmlld0ltYWdlIiksbChiPXtjbGFzc05hbWVzOlsiZ3JvdXAtZmxhaXItaW5wdXRzIl0sZGVtb0F2YXRhclVybDpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2F2YXRhci5wbmciKX0sZmxhaXJQcmV2aWV3SWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmL2ZhKHJ8Yj8pLS8udGVzdChlKX0sZmxhaXJQcmV2aWV3SWNvblVybDpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLHMuY29udmVydEljb25DbGFzcykoZSk6IiJ9LF9sb2FkU1ZHSWNvbjpmdW5jdGlvbigpeygwLG4uZGVib3VuY2UpKHRoaXMsdGhpcy5fbG9hZEljb24sMWUzKX0sX2xvYWRJY29uOmZ1bmN0aW9uKCl7dmFyIGU9KDAscy5jb252ZXJ0SWNvbkNsYXNzKSh0aGlzLmdldCgibW9kZWwuZmxhaXJfdXJsIikpLHQ9IiNzdmctc3ByaXRlcyIsbj0iYWpheC1pY29uLWhvbGRlciIsaT10KyIgLiIrbjtlJiYoJCh0KyIgc3ltYm9sIyIrZSkubGVuZ3RofHwoMCxyLmFqYXgpKCIvc3ZnLXNwcml0ZS9zZWFyY2gvIitlKS50aGVuKGZ1bmN0aW9uKGUpezA9PT0kKGkpLmxlbmd0aCYmJCh0KS5hcHBlbmQoJzxkaXYgY2xhc3M9IicrbisnIj4nKSwkKGkpLmh0bWwoIjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nZGlzcGxheTogbm9uZTsnPiIrZSsiPC9zdmc+Iil9KSl9LGZsYWlyUHJldmlld0ltYWdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxmbGFpclByZXZpZXdTdHlsZTpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz0iIjtyZXR1cm4gdCYmKHMrPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIisoMCxvLmVzY2FwZUV4cHJlc3Npb24pKGUpKyIpOyIpLG4mJihzKz0iYmFja2dyb3VuZC1jb2xvcjogIyIrbisiOyIpLGkmJihzKz0iY29sb3I6ICMiK2krIjsiKSwoMCxhLmh0bWxTYWZlKShzKX0sZmxhaXJQcmV2aWV3Q2xhc3NlczpmdW5jdGlvbihlKXtpZihlKXJldHVybiJyb3VuZGVkIn0sZmxhaXJQcmV2aWV3TGFiZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZT8iaW1hZ2UiOiJpY29uIjtyZXR1cm4gSTE4bi50KCJncm91cHMuZmxhaXJfcHJldmlld18iK3QpfX0sImRlbW9BdmF0YXJVcmwiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZGVtb0F2YXRhclVybCIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3SWNvbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3SWNvbiIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3SWNvblVybCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3SWNvblVybCIpLGIpLGwoYiwiX2xvYWRTVkdJY29uIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfbG9hZFNWR0ljb24iKSxiKSxsKGIsImZsYWlyUHJldmlld0ltYWdlIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJmbGFpclByZXZpZXdJbWFnZSIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3U3R5bGUiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImZsYWlyUHJldmlld1N0eWxlIiksYiksbChiLCJmbGFpclByZXZpZXdDbGFzc2VzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJmbGFpclByZXZpZXdDbGFzc2VzIiksYiksbChiLCJmbGFpclByZXZpZXdMYWJlbCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3TGFiZWwiKSxiKSxiKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLWluZGV4LXRvZ2dsZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJ0aCIsY2xhc3NOYW1lczpbInNvcnRhYmxlIl0sY2hldnJvbkljb246bnVsbCx0b2dnbGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5vcmRlcj09PXRoaXMuZmllbGQ/dGhpcy5zZXQoImRlc2MiLCF0aGlzLmRlc2N8fG51bGwpOnRoaXMuc2V0UHJvcGVydGllcyh7b3JkZXI6dGhpcy5maWVsZCxkZXNjOm51bGx9KX0sdG9nZ2xlQ2hldnJvbjpmdW5jdGlvbigpe3ZhciBlO3RoaXMub3JkZXI9PT10aGlzLmZpZWxkPyhlPSgwLG4uaWNvbkhUTUwpKHRoaXMuZGVzYz8iY2hldnJvbi1kb3duIjoiY2hldnJvbi11cCIpLHRoaXMuc2V0KCJjaGV2cm9uSWNvbiIsKCIiK2UpLmh0bWxTYWZlKCkpKTp0aGlzLnNldCgiY2hldnJvbkljb24iLG51bGwpfSxjbGljazpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydGllcygpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b2dnbGVDaGV2cm9uKCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLW1hbmFnZS1sb2dzLWZpbHRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInR5cGUiKSxvPSgwLHQuZGVmYXVsdCkoInZhbHVlIiwidHlwZSIpLGkocj17dGFnTmFtZToiIixsYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLmxvZ3MuIitlKX0sZmlsdGVyVGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiJhY3Rpb24iPT09dD9JMThuLnQoImdyb3VwX2hpc3Rvcmllcy5hY3Rpb25zLiIrZSk6ZX0sYWN0aW9uczp7Y2xlYXJGaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5jbGVhckZpbHRlcihlKX19fSwibGFiZWwiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImxhYmVsIiksciksaShyLCJmaWx0ZXJUZXh0Iixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJmaWx0ZXJUZXh0IikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiIsZXhwYW5kRGV0YWlsczohMSxhY3Rpb25zOnt0b2dnbGVEZXRhaWxzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZXhwYW5kRGV0YWlscyIpfSxmaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImZpbHRlcnMuIitlLmtleSxlLnZhbHVlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJzYXZpbmciKSxyPW89e3NhdmluZzpudWxsLHNhdmluZ1RleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInNhdmUiKX0sYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLm1vZGVsLnNhdmUoKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJzYXZpbmciLCExKX0pfX19LGE9InNhdmluZ1RleHQiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJzYXZpbmdUZXh0IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJncm91cC1tZW1iZXItZHJvcGRvd24iXSxjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIl0sc2VsZWN0S2l0T3B0aW9uczp7aWNvbjoid3JlbmNoIixzaG93RnVsbFRpdGxlOiExfSxjb250ZW50OigwLG4uY29tcHV0ZWQpKCJtZW1iZXIub3duZXIiLGZ1bmN0aW9uKCl7dmFyIGU9W3tpZDoicmVtb3ZlTWVtYmVyIixuYW1lOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMucmVtb3ZlX21lbWJlciIpLGRlc2NyaXB0aW9uOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMucmVtb3ZlX21lbWJlcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InVzZXItdGltZXMifV07cmV0dXJuIHRoaXMuZ2V0KCJjdXJyZW50VXNlci5hZG1pbiIpJiYodGhpcy5tZW1iZXIub3duZXI/ZS5wdXNoKHtpZDoicmVtb3ZlT3duZXIiLG5hbWU6STE4bi50KCJncm91cHMubWVtYmVycy5yZW1vdmVfb3duZXIiKSxkZXNjcmlwdGlvbjpJMThuLnQoImdyb3Vwcy5tZW1iZXJzLnJlbW92ZV9vd25lcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InNoaWVsZC1hbHQifSk6ZS5wdXNoKHtpZDoibWFrZU93bmVyIixuYW1lOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMubWFrZV9vd25lciIpLGRlc2NyaXB0aW9uOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMubWFrZV9vd25lcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InNoaWVsZC1hbHQifSkpLGV9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1tZW1iZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJpdGVtIl0sYWN0aW9uczp7cmVtb3ZlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBY3Rpb24odGhpcy5tZW1iZXIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChyPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnB1YmxpY19hZG1pc3Npb24iLCJ1c2VySXNHcm91cFVzZXIiKSxhPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnB1YmxpY19leGl0IiwidXNlcklzR3JvdXBVc2VyIiksbD0oMCxuLmRlZmF1bHQpKCJtb2RlbC5hbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzIiwidXNlcklzR3JvdXBVc2VyIiksdT0oMCxuLmRlZmF1bHQpKCJtb2RlbC5pc19ncm91cF91c2VyIiksbyhjPXtjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iXSxjYW5Kb2luR3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXR9LGNhbkxlYXZlR3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmdH0sY2FuUmVxdWVzdE1lbWJlcnNoaXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXR9LHVzZXJJc0dyb3VwVXNlcjpmdW5jdGlvbihlKXtyZXR1cm4hIWV9LF9zaG93TG9naW5Nb2RhbDpmdW5jdGlvbigpe3RoaXMuc2hvd0xvZ2luKCksJC5jb29raWUoImRlc3RpbmF0aW9uX3VybCIsd2luZG93LmxvY2F0aW9uLmhyZWYpfSxyZW1vdmVGcm9tR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMubW9kZWwucmVtb3ZlTWVtYmVyKHRoaXMuY3VycmVudFVzZXIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tb2RlbC5zZXQoImlzX2dyb3VwX3VzZXIiLCExKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInVwZGF0aW5nTWVtYmVyc2hpcCIsITEpfSl9LGFjdGlvbnM6e2pvaW5Hcm91cDpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpczt0aGlzLmN1cnJlbnRVc2VyPyh0aGlzLnNldCgidXBkYXRpbmdNZW1iZXJzaGlwIiwhMCksKGU9dGhpcy5tb2RlbCkuYWRkTWVtYmVycyh0aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJpc19ncm91cF91c2VyIiwhMCl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoInVwZGF0aW5nTWVtYmVyc2hpcCIsITEpfSkpOnRoaXMuX3Nob3dMb2dpbk1vZGFsKCl9LGxlYXZlR3JvdXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuc2V0KCJ1cGRhdGluZ01lbWJlcnNoaXAiLCEwKSwhdGhpcy5tb2RlbC5wdWJsaWNfYWRtaXNzaW9uKXJldHVybiBib290Ym94LmNvbmZpcm0oSTE4bi50KCJncm91cHMuY29uZmlybV9sZWF2ZSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/dC5yZW1vdmVGcm9tR3JvdXAoKTp0LnNldCgidXBkYXRpbmdNZW1iZXJzaGlwIiwhMSl9KTt0aGlzLnJlbW92ZUZyb21Hcm91cCgpfSxzaG93UmVxdWVzdE1lbWJlcnNoaXBGb3JtOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VXNlcj8oMCxzLmRlZmF1bHQpKCJyZXF1ZXN0LWdyb3VwLW1lbWJlcnNoaXAtZm9ybSIse21vZGVsOnRoaXMubW9kZWx9KTp0aGlzLl9zaG93TG9naW5Nb2RhbCgpfX19LCJjYW5Kb2luR3JvdXAiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImNhbkpvaW5Hcm91cCIpLGMpLG8oYywiY2FuTGVhdmVHcm91cCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2FuTGVhdmVHcm91cCIpLGMpLG8oYywiY2FuUmVxdWVzdE1lbWJlcnNoaXAiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImNhblJlcXVlc3RNZW1iZXJzaGlwIiksYyksbyhjLCJ1c2VySXNHcm91cFVzZXIiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInVzZXJJc0dyb3VwVXNlciIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbmF2aWdhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInBvc3QudXJsIikscz17cG9zdFVybDpEaXNjb3Vyc2UuZ2V0VVJMfSxyPXMsYT0icG9zdFVybCIsbD1baV0sbz0obz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInBvc3RVcmwiKSk/by52YWx1ZTp2b2lkIDAsdT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gb319LGM9cyxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLXNlbGVjdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIl0sZnVuY3Rpb24oZSxzLHQsbixvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsbi5kZWZhdWx0KSgicGxhY2Vob2xkZXJLZXkiKSxhPSgwLG4ub2JzZXJ2ZXMpKCJncm91cE5hbWVzIiksbD0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGkodT17cGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KGUpOiIifSxfdXBkYXRlOmZ1bmN0aW9uKCl7InRydWUiPT09dGhpcy5jYW5SZWNlaXZlVXBkYXRlcyYmdGhpcy5faW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSh7dXBkYXRlRGF0YTohMH0pfSxfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dm9pZCAwLGk9dGhpcy5ncm91cE5hbWVzOyQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikpLmF1dG9jb21wbGV0ZSh7YWxsb3dBbnk6ITEsaXRlbXM6Xy5pc0FycmF5KGkpP2k6KDAscy5pc0VtcHR5KShpKT9bXTpbaV0sc2luZ2xlOnRoaXMuc2luZ2xlLGZ1bGxXaWR0aFdyYXA6dGhpcy5mdWxsV2lkdGhXcmFwLHVwZGF0ZURhdGE6ISghZXx8IWUudXBkYXRlRGF0YSkmJmUudXBkYXRlRGF0YSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe249ZSx0LnNldCgiZ3JvdXBOYW1lcyIsZS5qb2luKCIsIikpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lfSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiB0Lmdyb3VwRmluZGVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4/ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW4uYW55KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dC5uYW1lfSl9KTplfSl9LHRlbXBsYXRlOigwLG8uZmluZFJhd1RlbXBsYXRlKSgiZ3JvdXAtc2VsZWN0b3ItYXV0b2NvbXBsZXRlIil9KX19LCJwbGFjZWhvbGRlciIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGxhY2Vob2xkZXIiKSx1KSxpKHUsIl91cGRhdGUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsIl91cGRhdGUiKSx1KSxpKHUsIl9pbml0aWFsaXplQXV0b2NvbXBsZXRlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXBzLWZvcm0taW50ZXJhY3Rpb24tZmllbGRzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLmRlZmF1bHQpKCJzaXRlU2V0dGluZ3MuZW1haWxfaW4iLCJtb2RlbC5hdXRvbWF0aWMiLCJjdXJyZW50VXNlci5hZG1pbiIpLG89cz17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnZpc2liaWxpdHlMZXZlbE9wdGlvbnM9W3tuYW1lOkkxOG4udCgiYWRtaW4uZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi52aXNpYmlsaXR5X2xldmVscy5wdWJsaWMiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMubG9nZ2VkX29uX3VzZXJzIiksdmFsdWU6MX0se25hbWU6STE4bi50KCJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnZpc2liaWxpdHlfbGV2ZWxzLm1lbWJlcnMiKSx2YWx1ZToyfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMuc3RhZmYiKSx2YWx1ZTozfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMub3duZXJzIiksdmFsdWU6NH1dLHRoaXMuYWxpYXNMZXZlbE9wdGlvbnM9W3tuYW1lOkkxOG4udCgiZ3JvdXBzLmFsaWFzX2xldmVscy5ub2JvZHkiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMub25seV9hZG1pbnMiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMubW9kc19hbmRfYWRtaW5zIiksdmFsdWU6Mn0se25hbWU6STE4bi50KCJncm91cHMuYWxpYXNfbGV2ZWxzLm1lbWJlcnNfbW9kc19hbmRfYWRtaW5zIiksdmFsdWU6M30se25hbWU6STE4bi50KCJncm91cHMuYWxpYXNfbGV2ZWxzLm93bmVyc19tb2RzX2FuZF9hZG1pbnMiKSx2YWx1ZTo0fSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMuZXZlcnlvbmUiKSx2YWx1ZTo5OX1dfSxzaG93RW1haWxTZXR0aW5nczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJm4mJiF0fX0scj0ic2hvd0VtYWlsU2V0dGluZ3MiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzaG93RW1haWxTZXR0aW5ncyIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3Vwcy1mb3JtLW1lbWJlcnNoaXAtZmllbGRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgibW9kZWwudmlzaWJpbGl0eV9sZXZlbCIsIm1vZGVsLnB1YmxpY19hZG1pc3Npb24iKSxyPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnZpc2liaWxpdHlfbGV2ZWwiLCJtb2RlbC5hbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzIikscyhhPXt0b2tlblNlcGFyYXRvcjoifCIsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRydXN0TGV2ZWxPcHRpb25zPVt7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC50cnVzdF9sZXZlbHNfbm9uZSIpLHZhbHVlOjB9LHtuYW1lOjEsdmFsdWU6MX0se25hbWU6Mix2YWx1ZToyfSx7bmFtZTozLHZhbHVlOjN9LHtuYW1lOjQsdmFsdWU6NH1dfSxncm91cFRydXN0TGV2ZWw6KDAsaS5jb21wdXRlZCkoIm1vZGVsLmdyYW50X3RydXN0X2xldmVsIiwidHJ1c3RMZXZlbE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0KCJncmFudF90cnVzdF9sZXZlbCIpfHx0aGlzLnRydXN0TGV2ZWxPcHRpb25zLmZpcnN0T2JqZWN0LnZhbHVlfSksZGlzYWJsZU1lbWJlcnNoaXBSZXF1ZXN0U2V0dGluZzpmdW5jdGlvbihlLHQpe3JldHVybiBlPXBhcnNlSW50KGUsMTApLHR8fDE8ZX0sZGlzYWJsZVB1YmxpY1NldHRpbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1wYXJzZUludChlLDEwKSx0fHwxPGV9LGVtYWlsRG9tYWluczooMCxpLmNvbXB1dGVkKSgibW9kZWwuZW1haWxEb21haW5zIixmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmVtYWlsRG9tYWlucy5zcGxpdCh0aGlzLnRva2VuU2VwYXJhdG9yKS5maWx0ZXIoQm9vbGVhbil9KSxhY3Rpb25zOntvbkNoYW5nZUVtYWlsRG9tYWluc1NldHRpbmc6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoIm1vZGVsLmF1dG9tYXRpY19tZW1iZXJzaGlwX2VtYWlsX2RvbWFpbnMiLGUuam9pbih0aGlzLnRva2VuU2VwYXJhdG9yKSl9fX0sImRpc2FibGVNZW1iZXJzaGlwUmVxdWVzdFNldHRpbmciLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVNZW1iZXJzaGlwUmVxdWVzdFNldHRpbmciKSxhKSxzKGEsImRpc2FibGVQdWJsaWNTZXR0aW5nIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJkaXNhYmxlUHVibGljU2V0dGluZyIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXBzLWZvcm0tcHJvZmlsZS1maWVsZHMiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKGM9KDAscy5kZWZhdWx0KSgiYmFzaWNOYW1lVmFsaWRhdGlvbiIsInVuaXF1ZU5hbWVWYWxpZGF0aW9uIiksZD0oMCxzLm9ic2VydmVzKSgibmFtZUlucHV0IiksdShwPXtkaXNhYmxlU2F2ZTpudWxsLG5hbWVJbnB1dDpudWxsLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLm5hbWUiKTtlP3RoaXMuc2V0KCJuYW1lSW5wdXQiLGUpOnRoaXMuc2V0KCJkaXNhYmxlU2F2ZSIsITApfSxjYW5FZGl0OigwLG4ubm90KSgibW9kZWwuYXV0b21hdGljIiksbmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8ZX0sX3ZhbGlkYXRlTmFtZTpmdW5jdGlvbigpe2lmKG5hbWU9dGhpcy5uYW1lSW5wdXQsbmFtZSE9PXRoaXMuZ2V0KCJtb2RlbC5uYW1lIikpcmV0dXJuIHZvaWQgMD09PW5hbWU/dGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKCk6IiI9PT1uYW1lPyh0aGlzLnNldCgidW5pcXVlTmFtZVZhbGlkYXRpb24iLG51bGwpLHRoaXMuX2ZhaWxlZElucHV0VmFsaWRhdGlvbihJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcubmFtZS5ibGFuayIpKSk6bmFtZS5sZW5ndGg8dGhpcy5zaXRlU2V0dGluZ3MubWluX3VzZXJuYW1lX2xlbmd0aD90aGlzLl9mYWlsZWRJbnB1dFZhbGlkYXRpb24oSTE4bi50KCJhZG1pbi5ncm91cHMubmV3Lm5hbWUudG9vX3Nob3J0IikpOm5hbWUubGVuZ3RoPnRoaXMuc2l0ZVNldHRpbmdzLm1heF91c2VybmFtZV9sZW5ndGg/dGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKEkxOG4udCgiYWRtaW4uZ3JvdXBzLm5ldy5uYW1lLnRvb19sb25nIikpOih0aGlzLmNoZWNrR3JvdXBOYW1lKCksdGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKEkxOG4udCgiYWRtaW4uZ3JvdXBzLm5ldy5uYW1lLmNoZWNraW5nIikpKX0sY2hlY2tHcm91cE5hbWU6KDAsYS5kZWZhdWx0KShmdW5jdGlvbigpe3ZhciBpPXRoaXM7bmFtZT10aGlzLm5hbWVJbnB1dCwoMCx0LmlzRW1wdHkpKG5hbWUpfHxvLmRlZmF1bHQuY2hlY2tOYW1lKG5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQsbj0idW5pcXVlTmFtZVZhbGlkYXRpb24iO2UuYXZhaWxhYmxlPyhpLnNldChuLGwuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcubmFtZS5hdmFpbGFibGUiKX0pKSxpLnNldCgiZGlzYWJsZVNhdmUiLCExKSxpLnNldCgibW9kZWwubmFtZSIsaS5uYW1lSW5wdXQpKToodD12b2lkIDAsdD1lLmVycm9ycz9lLmVycm9ycy5qb2luKCIgIik6STE4bi50KCJhZG1pbi5ncm91cHMubmV3Lm5hbWUubm90X2F2YWlsYWJsZSIpLGkuc2V0KG4saS5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKHQpKSl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKX0sNTAwKSxfZmFpbGVkSW5wdXRWYWxpZGF0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJkaXNhYmxlU2F2ZSIsITApO3ZhciB0PXtmYWlsZWQ6ITB9O2UmJih0LnJlYXNvbj1lKSx0aGlzLnNldCgiYmFzaWNOYW1lVmFsaWRhdGlvbiIsbC5kZWZhdWx0LmNyZWF0ZSh0KSl9fSwibmFtZVZhbGlkYXRpb24iLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5hbWVWYWxpZGF0aW9uIikscCksdShwLCJfdmFsaWRhdGVOYW1lIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJfdmFsaWRhdGVOYW1lIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cHMtaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5kZWZhdWx0KSgiZ3JvdXAuZnVsbF9uYW1lIiksbz1zPXt0YWdOYW1lOiJzcGFuIixjbGFzc05hbWVzOlsiZ3JvdXAtaW5mby1kZXRhaWxzIl0sc2hvd0Z1bGxOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aH19LHI9InNob3dGdWxsTmFtZSIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInNob3dGdWxsTmFtZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hlYWRlci1leHRyYS1pbmZvIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubmVlZHNTZWNvbmRSb3dJZj1mdW5jdGlvbigpeygwLHQuZGVmYXVsdCkoImBuZWVkc1NlY29uZFJvd0lmYCBpcyBkZXByZWNhdGVkLiBVc2Ugd2lkZ2V0IGhvb2tzIG9uIGBoZWFkZXItc2Vjb25kLXJvd2AiKX19KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hpZGUtbW9kYWwtdHJpZ2dlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKCIuZC1tb2RhbC5maXhlZC1tb2RhbCIpLm1vZGFsKCJoaWRlIikuYWRkQ2xhc3MoImhpZGRlbiIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9oaWdobGlnaHQtdGV4dCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvaGlnaGxpZ2h0LXRleHQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIsX2hpZ2hsaWdodE9uSW5zZXJ0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oaWdobGlnaHQ7KDAsbi5kZWZhdWx0KSgkKHRoaXMuZWxlbWVudCksZSl9Lm9ic2VydmVzKCJoaWdobGlnaHQiKS5vbigiZGlkSW5zZXJ0RWxlbWVudCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hvbmV5cG90LWlucHV0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLHMsbyxyLGEsbCx1O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgobj0oMCx0Lm9uKSgiaW5pdCIpLHM9aT17X2luaXQ6ZnVuY3Rpb24oKXstMTxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpP3RoaXMuc2V0KCJ0eXBlIiwidGV4dCIpOnRoaXMuc2V0KCJ0eXBlIiwicGFzc3dvcmQiKX19LG89Il9pbml0IixyPVtuXSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSwiX2luaXQiKSxsPWksdT17fSxPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3VbZV09YVtlXX0pLHUuZW51bWVyYWJsZT0hIXUuZW51bWVyYWJsZSx1LmNvbmZpZ3VyYWJsZT0hIXUuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gdXx8dS5pbml0aWFsaXplcikmJih1LndyaXRhYmxlPSEwKSx1PXIuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocyxvLGUpfHxlfSx1KSxsJiZ2b2lkIDAhPT11LmluaXRpYWxpemVyJiYodS52YWx1ZT11LmluaXRpYWxpemVyP3UuaW5pdGlhbGl6ZXIuY2FsbChsKTp2b2lkIDAsdS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXUuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHUpLHU9bnVsbCksaSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pZnJhbWVkLWh0bWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImlmcmFtZSIsaHRtbDpudWxsLGNsYXNzTmFtZToiIixjbGFzc05hbWVCaW5kaW5nczpbImh0bWw6aWZyYW1lZC1odG1sIiwiY2xhc3NOYW1lIl0sc2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4iLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2FuZGJveDpzYW5kYm94Il0sZGlkUmVuZGVyOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMuZWxlbWVudC5jb250ZW50V2luZG93LmRvY3VtZW50O2Uub3BlbigidGV4dC9odG1sIiwicmVwbGFjZSIpLGUud3JpdGUodGhpcy5odG1sKSxlLmNsb3NlKCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImRpdiIsaXRlbXM6bnVsbCxhY3Rpb25zOntyZW1vdmVJZ25vcmVkVXNlcjpmdW5jdGlvbihlKXt0aGlzLm9uUmVtb3ZlSWdub3JlZFVzZXIoZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pZ25vcmVkLXVzZXItbGlzdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7aXRlbTpudWxsLGFjdGlvbnM6e3JlbW92ZUlnbm9yZWRVc2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5pdGVtcy5yZW1vdmVPYmplY3QoZSkscy5kZWZhdWx0LmZpbmRCeVVzZXJuYW1lKGUpLnRoZW4oZnVuY3Rpb24oZSl7ZS51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgibm9ybWFsIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgic2F2ZWQiLCEwKX0pfSl9LG5ld0lnbm9yZWRVc2VyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCxpLmRlZmF1bHQpKCJpZ25vcmUtZHVyYXRpb24td2l0aC11c2VybmFtZSIse21vZGVsOnRoaXMubW9kZWx9KS5zZXRQcm9wZXJ0aWVzKHtpZ25vcmVkVXNlcm5hbWU6bnVsbCxvblVzZXJJZ25vcmVkOmZ1bmN0aW9uKGUpe3QuaXRlbXMuYWRkT2JqZWN0KGUpfX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiZGlzY291cnNlL2xpYi9saWdodGJveCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYz0oMCx0LmRlZmF1bHQpKCJpbWFnZVVybCIsInBsYWNlaG9sZGVyVXJsIiksZD0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlclVybCIpLHA9KDAsdC5kZWZhdWx0KSgiaW1hZ2VVcmwiKSxtPSgwLHQuZGVmYXVsdCkoImltYWdlQ0ROVVJMIiksZj0oMCx0LmRlZmF1bHQpKCJpbWFnZVVybCIpLHUoaD17Y2xhc3NOYW1lczpbImltYWdlLXVwbG9hZGVyIl0sbG9hZGluZ0xpZ2h0Ym94OiExLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fYXBwbHlMaWdodGJveCgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9JCgiYS5saWdodGJveCIpO2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLm1hZ25pZmljUG9wdXAmJiQoImEubGlnaHRib3giKS5tYWduaWZpY1BvcHVwKCJjbG9zZSIpfSxzaG93aW5nUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmdH0scGxhY2Vob2xkZXJTdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmlzRW1wdHkpKGUpPyIiLmh0bWxTYWZlKCk6KCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIitlKyIpIikuaHRtbFNhZmUoKX0saW1hZ2VDRE5VUkw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT8iIi5odG1sU2FmZSgpOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGUpfSxiYWNrZ3JvdW5kU3R5bGU6ZnVuY3Rpb24oZSl7cmV0dXJuKCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIitlKyIpIikuaHRtbFNhZmUoKX0saW1hZ2VCYXNlTmFtZTpmdW5jdGlvbihlKXtpZighKDAsbi5pc0VtcHR5KShlKSlyZXR1cm4gZS5zcGxpdCgiLyIpLnNsaWNlKC0xKVswXX0sdmFsaWRhdGVVcGxvYWRlZEZpbGVzT3B0aW9uczpmdW5jdGlvbigpe3JldHVybntpbWFnZXNPbmx5OiEwfX0sdXBsb2FkRG9uZTpmdW5jdGlvbihlKXt0aGlzLnNldFByb3BlcnRpZXMoe2ltYWdlVXJsOmUudXJsLGltYWdlSWQ6ZS5pZCxpbWFnZUZpbGVzaXplOmUuaHVtYW5fZmlsZXNpemUsaW1hZ2VGaWxlbmFtZTplLm9yaWdpbmFsX2ZpbGVuYW1lLGltYWdlV2lkdGg6ZS53aWR0aCxpbWFnZUhlaWdodDplLmhlaWdodH0pLHRoaXMuX2FwcGx5TGlnaHRib3goKSx0aGlzLm9uVXBsb2FkRG9uZSYmdGhpcy5vblVwbG9hZERvbmUoZSl9LF9vcGVuTGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLGkubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJChlLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiYS5saWdodGJveCIpKS5tYWduaWZpY1BvcHVwKCJvcGVuIil9KX0sX2FwcGx5TGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuaW1hZ2VVcmwmJigwLGkubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmRlZmF1bHQpKCQoZS5lbGVtZW50KSl9KX0sYWN0aW9uczp7dG9nZ2xlTGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaW1hZ2VGaWxlbmFtZT90aGlzLl9vcGVuTGlnaHRib3goKToodGhpcy5zZXQoImxvYWRpbmdMaWdodGJveCIsITApLCgwLGEuYWpheCkoIi91cGxvYWRzL2xvb2t1cC1tZXRhZGF0YSIse3R5cGU6IlBPU1QiLGRhdGE6e3VybDp0aGlzLmltYWdlVXJsfX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtpbWFnZUZpbGVuYW1lOmUub3JpZ2luYWxfZmlsZW5hbWUsaW1hZ2VGaWxlc2l6ZTplLmh1bWFuX2ZpbGVzaXplLGltYWdlV2lkdGg6ZS53aWR0aCxpbWFnZUhlaWdodDplLmhlaWdodH0pLHQuX29wZW5MaWdodGJveCgpLHQuc2V0KCJsb2FkaW5nTGlnaHRib3giLCExKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpKX0sdHJhc2g6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2ltYWdlVXJsOm51bGwsaW1hZ2VJZDpudWxsfSksdGhpcy5vblVwbG9hZERlbGV0ZWQmJnRoaXMub25VcGxvYWREZWxldGVkKCl9fX0sInNob3dpbmdQbGFjZWhvbGRlciIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwic2hvd2luZ1BsYWNlaG9sZGVyIiksaCksdShoLCJwbGFjZWhvbGRlclN0eWxlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJwbGFjZWhvbGRlclN0eWxlIiksaCksdShoLCJpbWFnZUNETlVSTCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiaW1hZ2VDRE5VUkwiKSxoKSx1KGgsImJhY2tncm91bmRTdHlsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiYmFja2dyb3VuZFN0eWxlIiksaCksdShoLCJpbWFnZUJhc2VOYW1lIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJpbWFnZUJhc2VOYW1lIiksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pbWFnZXMtdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHM9KDAsdC5kZWZhdWx0KSgidXBsb2FkaW5nIikscj1vPXt0eXBlOiJhdmF0YXIiLHRhZ05hbWU6InNwYW4iLHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJ1cGxvYWRpbmciKTpJMThuLnQoInVwbG9hZCIpfSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuZG9uZShlKX19LGE9InVwbG9hZEJ1dHRvblRleHQiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJ1cGxvYWRCdXR0b25UZXh0IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW5wdXQtdGlwIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOnRpcCIsImdvb2QiLCJiYWQiXSx0aXBJY29uOm51bGwsdGlwUmVhc29uOm51bGwsYmFkOigwLHQuYWxpYXMpKCJ2YWxpZGF0aW9uLmZhaWxlZCIpLGdvb2Q6KDAsdC5ub3QpKCJiYWQiKSx0aXBJY29uSFRNTDpmdW5jdGlvbigpe3JldHVybigiIisoMCxpLmljb25IVE1MKSh0aGlzLmdvb2Q/ImNoZWNrIjoidGltZXMiKSkuaHRtbFNhZmUoKX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMuZ2V0KCJ2YWxpZGF0aW9uLnJlYXNvbiIpO2U/KHRoaXMuc2V0KCJ0aXBJY29uIix0aGlzLnRpcEljb25IVE1MKCkpLHRoaXMuc2V0KCJ0aXBSZWFzb24iLGUpKToodGhpcy5zZXQoInRpcEljb24iLG51bGwpLHRoaXMuc2V0KCJ0aXBSZWFzb24iLG51bGwpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW52aXRlLXBhbmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAiLCJkaXNjb3Vyc2UvbW9kZWxzL2ludml0ZSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL3B3YS11dGlscyJdLGZ1bmN0aW9uKGUsdCxhLG8sbixpLGwscyxyLHUsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHAsbSxmLGgsYixnLHYseSxfLHcseCxrLFAsaixUO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocD0oMCx0LmRlZmF1bHQpKCJpc0FkbWluIiwiZW1haWxPclVzZXJuYW1lIiwiaW52aXRpbmdUb1RvcGljIiwiaXNQcml2YXRlVG9waWMiLCJpbnZpdGVNb2RlbC5ncm91cE5hbWVzLltdIiwiaW52aXRlTW9kZWwuc2F2aW5nIiwiaW52aXRlTW9kZWwuZGV0YWlscy5jYW5faW52aXRlX3RvIiksbT0oMCx0LmRlZmF1bHQpKCJpc0FkbWluIiwiZW1haWxPclVzZXJuYW1lIiwiaW52aXRlTW9kZWwuc2F2aW5nIiwiaXNQcml2YXRlVG9waWMiLCJpbnZpdGVNb2RlbC5ncm91cE5hbWVzLltdIiwiaGFzQ3VzdG9tTWVzc2FnZSIpLGY9KDAsdC5kZWZhdWx0KSgiaW52aXRlTW9kZWwuc2F2aW5nIiksaD0oMCx0LmRlZmF1bHQpKCJpbnZpdGVNb2RlbCIpLGI9KDAsdC5kZWZhdWx0KSgiaW52aXRlTW9kZWwiLCJpbnZpdGVNb2RlbC5kZXRhaWxzLmNhbl9pbnZpdGVfdmlhX2VtYWlsIiksZz0oMCx0LmRlZmF1bHQpKCJpc1BNIiwiY2FuSW52aXRlVmlhRW1haWwiKSx2PSgwLHQuZGVmYXVsdCkoImlzQWRtaW4iLCJpbnZpdGVNb2RlbC5ncm91cF91c2VycyIpLHk9KDAsdC5kZWZhdWx0KSgiaXNHcm91cE93bmVyT3JBZG1pbiIsImVtYWlsT3JVc2VybmFtZSIsImlzUHJpdmF0ZVRvcGljIiwiaXNQTSIsImludml0aW5nVG9Ub3BpYyIsImNhbkludml0ZVZpYUVtYWlsIiksXz0oMCx0LmRlZmF1bHQpKCJlbWFpbE9yVXNlcm5hbWUiKSx3PSgwLHQuZGVmYXVsdCkoImlzUE0iLCJpbnZpdGluZ1RvVG9waWMiLCJlbWFpbE9yVXNlcm5hbWUiLCJpc1ByaXZhdGVUb3BpYyIsImlzQWRtaW4iLCJjYW5JbnZpdGVWaWFFbWFpbCIpLHg9KDAsdC5kZWZhdWx0KSgiaXNQcml2YXRlVG9waWMiKSxrPSgwLHQuZGVmYXVsdCkoImlzUE0iLCJlbWFpbE9yVXNlcm5hbWUiLCJpbnZpdGluZ0V4aXN0aW5nVXNlclRvVG9waWMiKSxQPSgwLHQuZGVmYXVsdCkoImlzUE0iKSxqPSgwLHQuZGVmYXVsdCkoImNhbkludml0ZVZpYUVtYWlsIiksZChUPXt0YWdOYW1lOm51bGwsaW52aXRlTW9kZWw6KDAsbi5hbGlhcykoInBhbmVsLm1vZGVsLmludml0ZU1vZGVsIiksdXNlckludml0ZWRTaG93OigwLG4uYWxpYXMpKCJwYW5lbC5tb2RlbC51c2VySW52aXRlZFNob3ciKSxlbWFpbE9yVXNlcm5hbWU6bnVsbCxoYXNDdXN0b21NZXNzYWdlOiExLGN1c3RvbU1lc3NhZ2U6bnVsbCxpbnZpdGVJY29uOiJlbnZlbG9wZSIsaW52aXRpbmdFeGlzdGluZ1VzZXJUb1RvcGljOiExLGlzQWRtaW46KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLmFkbWluIiksd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVzZXQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4saSxzLG8pe2lmKG8pcmV0dXJuITA7aWYoKDAsYS5pc0VtcHR5KSh0KSlyZXR1cm4hMDt2YXIgcj10LnRyaW0oKTtyZXR1cm4hbiYmISgwLGwuZW1haWxWYWxpZCkocil8fCghKGV8fCFpfHwhKDAsbC5lbWFpbFZhbGlkKShyKSl8fCEhKGkmJigwLGEuaXNFbXB0eSkocykmJigwLGwuZW1haWxWYWxpZCkocikpKX0sZGlzYWJsZWRDb3B5TGluazpmdW5jdGlvbihlLHQsbixpLHMsbyl7aWYobylyZXR1cm4hMDtpZihuKXJldHVybiEwO2lmKCgwLGEuaXNFbXB0eSkodCkpcmV0dXJuITA7dmFyIHI9dC50cmltKCk7cmV0dXJuISgwLGwuZW1haWxWYWxpZCkocil8fCghKGV8fCFpfHwhKDAsbC5lbWFpbFZhbGlkKShyKSl8fCEhKGkmJigwLGEuaXNFbXB0eSkocykmJigwLGwuZW1haWxWYWxpZCkocikpKX0sYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InRvcGljLmludml0aW5nIjoidG9waWMuaW52aXRlX3JlcGx5LmFjdGlvbiJ9LGludml0aW5nVG9Ub3BpYzpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXRoaXMuY3VycmVudFVzZXJ9LGNhbkludml0ZVZpYUVtYWlsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuaW52aXRlTW9kZWw9PT10aGlzLmN1cnJlbnRVc2VyfHx0fSxzaG93Q29weUludml0ZUJ1dHRvbjpmdW5jdGlvbihlLHQpe3JldHVybiB0JiYhZX0sdG9waWNJZDooMCxuLmFsaWFzKSgiaW52aXRlTW9kZWwuaWQiKSxpc1ByaXZhdGVUb3BpYzooMCxuLmFuZCkoImludml0aW5nVG9Ub3BpYyIsImludml0ZU1vZGVsLmNhdGVnb3J5LnJlYWRfcmVzdHJpY3RlZCIpLGlzUE06KDAsbi5lcXVhbCkoImludml0ZU1vZGVsLmFyY2hldHlwZSIsInByaXZhdGVfbWVzc2FnZSIpLGFsbG93RXhpc3RpbmdNZW1iZXJzOigwLG4uYWxpYXMpKCJpbnZpdGluZ1RvVG9waWMiKSxpc0dyb3VwT3duZXJPckFkbWluOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQmJnQuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5vd25lcn0pfSxzaG93R3JvdXBzOmZ1bmN0aW9uKGUsdCxuLGkscyxvKXtyZXR1cm4gZSYmbyYmIWkmJigoMCxsLmVtYWlsVmFsaWQpKHQpfHxufHwhcyl9LHNob3dDb250YWN0UGlja2VyOigwLG8uY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzLmhhc0NvbnRhY3RQaWNrZXJ9KSxzaG93Q3VzdG9tTWVzc2FnZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pbnZpdGVNb2RlbD09PXRoaXMuY3VycmVudFVzZXJ8fCgwLGwuZW1haWxWYWxpZCkoZSl9LGludml0ZUluc3RydWN0aW9uczpmdW5jdGlvbihlLHQsbixpLHMsbyl7cmV0dXJuIG8/ZT9JMThuLnQoInRvcGljLmludml0ZV9wcml2YXRlLmVtYWlsX29yX3VzZXJuYW1lIik6dD9pJiYhcz9JMThuLnQoInRvcGljLmludml0ZV9yZXBseS50b191c2VybmFtZSIpOigwLGEuaXNFbXB0eSkobik/STE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkudG9fdG9waWNfYmxhbmsiKTooMCxsLmVtYWlsVmFsaWQpKG4pPyh0aGlzLnNldCgiaW52aXRlSWNvbiIsImVudmVsb3BlIiksSTE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkudG9fdG9waWNfZW1haWwiKSk6KHRoaXMuc2V0KCJpbnZpdGVJY29uIiwiaGFuZC1wb2ludC1yaWdodCIpLEkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnRvX3RvcGljX3VzZXJuYW1lIikpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnRvX2ZvcnVtIik6STE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkuc3NvX2VuYWJsZWQiKX0sc2hvd0dyb3Vwc0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJyZXF1aXJlZCI6Im9wdGlvbmFsIn0sZ3JvdXBGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHMuZGVmYXVsdC5maW5kQWxsKHt0ZXJtOmUsaWdub3JlX2F1dG9tYXRpYzohMH0pfSxzdWNjZXNzTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFzR3JvdXBzP0kxOG4udCgidG9waWMuaW52aXRlX3ByaXZhdGUuc3VjY2Vzc19ncm91cCIpOmU/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5zdWNjZXNzIik6bj9JMThuLnQoInRvcGljLmludml0ZV9yZXBseS5zdWNjZXNzX2V4aXN0aW5nX2VtYWlsIix7ZW1haWxPclVzZXJuYW1lOnR9KTooMCxsLmVtYWlsVmFsaWQpKHQpP0kxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnN1Y2Nlc3NfZW1haWwiLHtlbWFpbE9yVXNlcm5hbWU6dH0pOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnN1Y2Nlc3NfdXNlcm5hbWUiKX0sZXJyb3JNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udCgidG9waWMuaW52aXRlX3ByaXZhdGUuZXJyb3IiKTpJMThuLnQoInRvcGljLmludml0ZV9yZXBseS5lcnJvciIpfSxwbGFjZWhvbGRlcktleTpmdW5jdGlvbihlKXtyZXR1cm4gZT8idG9waWMuaW52aXRlX3ByaXZhdGUuZW1haWxfb3JfdXNlcm5hbWVfcGxhY2Vob2xkZXIiOiJ0b3BpYy5pbnZpdGVfcmVwbHkudXNlcm5hbWVfcGxhY2Vob2xkZXIifSxjdXN0b21NZXNzYWdlUGxhY2Vob2xkZXI6KDAsdS5pMThuKSgiaW52aXRlLmN1c3RvbV9tZXNzYWdlX3BsYWNlaG9sZGVyIikscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2VtYWlsT3JVc2VybmFtZTpudWxsLGhhc0N1c3RvbU1lc3NhZ2U6ITEsY3VzdG9tTWVzc2FnZTpudWxsLGludml0aW5nRXhpc3RpbmdVc2VyVG9Ub3BpYzohMX0pLHRoaXMuaW52aXRlTW9kZWwuc2V0UHJvcGVydGllcyh7Z3JvdXBOYW1lczpudWxsLGVycm9yOiExLHNhdmluZzohMSxmaW5pc2hlZDohMSxpbnZpdGVMaW5rOm51bGx9KX0sYWN0aW9uczp7Y3JlYXRlSW52aXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5kaXNhYmxlZCl7dmFyIGU9dGhpcy5nZXQoImludml0ZU1vZGVsLmdyb3VwTmFtZXMiKSxuPXRoaXMudXNlckludml0ZWRTaG93LGk9dGhpcy5pbnZpdGVNb2RlbDtpLnNldFByb3BlcnRpZXMoe3NhdmluZzohMCxlcnJvcjohMX0pO3ZhciBzPWZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnM/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIix0LmlzUE0/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5lcnJvciIpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LmVycm9yIikpLGkuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLGVycm9yOiEwfSl9O3JldHVybiB0aGlzLmhhc0dyb3Vwcz90aGlzLmludml0ZU1vZGVsLmNyZWF0ZUdyb3VwSW52aXRlKHRoaXMuZW1haWxPclVzZXJuYW1lLnRyaW0oKSkudGhlbihmdW5jdGlvbihlKXtpLnNldFByb3BlcnRpZXMoe3NhdmluZzohMSxmaW5pc2hlZDohMH0pLHQuZ2V0KCJpbnZpdGVNb2RlbC5kZXRhaWxzLmFsbG93ZWRfZ3JvdXBzIikucHVzaE9iamVjdChvLmRlZmF1bHQuY3JlYXRlKGUuZ3JvdXApKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIil9KS5jYXRjaChzKTp0aGlzLmludml0ZU1vZGVsLmNyZWF0ZUludml0ZSh0aGlzLmVtYWlsT3JVc2VybmFtZS50cmltKCksZSx0aGlzLmN1c3RvbU1lc3NhZ2UpLnRoZW4oZnVuY3Rpb24oZSl7aS5zZXRQcm9wZXJ0aWVzKHtzYXZpbmc6ITEsZmluaXNoZWQ6ITB9KSwhdC5pbnZpdGluZ1RvVG9waWMmJm4/ci5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodC5jdXJyZW50VXNlcixuLmdldCgiZmlsdGVyIikpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHttb2RlbDplLHRvdGFsSW52aXRlczplLmludml0ZXMubGVuZ3RofSl9KTp0LmlzUE0mJmUmJmUudXNlcj8odC5nZXQoImludml0ZU1vZGVsLmRldGFpbHMuYWxsb3dlZF91c2VycyIpLnB1c2hPYmplY3Qoby5kZWZhdWx0LmNyZWF0ZShlLnVzZXIpKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIikpOnQuaW52aXRpbmdUb1RvcGljJiYoMCxsLmVtYWlsVmFsaWQpKHQuZW1haWxPclVzZXJuYW1lLnRyaW0oKSkmJmUmJmUudXNlciYmdC5zZXQoImludml0aW5nRXhpc3RpbmdVc2VyVG9Ub3BpYyIsITApfSkuY2F0Y2gocyl9fSxnZW5lcmF0ZUludml0ZWxpbms6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLmRpc2FibGVkKXt2YXIgZT10aGlzLmdldCgiaW52aXRlTW9kZWwuZ3JvdXBOYW1lcyIpLG49dGhpcy51c2VySW52aXRlZFNob3csaT10aGlzLmludml0ZU1vZGVsO2kuc2V0UHJvcGVydGllcyh7c2F2aW5nOiEwLGVycm9yOiExfSk7dmFyIHM9dm9pZCAwO3JldHVybiB0aGlzLmludml0aW5nVG9Ub3BpYyYmKHM9dGhpcy5nZXQoImludml0ZU1vZGVsLmlkIikpLGkuZ2VuZXJhdGVJbnZpdGVMaW5rKHRoaXMuZW1haWxPclVzZXJuYW1lLnRyaW0oKSxlLHMpLnRoZW4oZnVuY3Rpb24oZSl7aS5zZXRQcm9wZXJ0aWVzKHtzYXZpbmc6ITEsZmluaXNoZWQ6ITAsaW52aXRlTGluazplfSksbiYmci5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodC5jdXJyZW50VXNlcixuLmdldCgiZmlsdGVyIikpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHttb2RlbDplLHRvdGFsSW52aXRlczplLmludml0ZXMubGVuZ3RofSl9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnM/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIix0LmlzUE0/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5lcnJvciIpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LmVycm9yIikpLGkuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLGVycm9yOiEwfSl9KX19LHNob3dDdXN0b21NZXNzYWdlQm94OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiaGFzQ3VzdG9tTWVzc2FnZSIpLHRoaXMuaGFzQ3VzdG9tTWVzc2FnZT90aGlzLmludml0ZU1vZGVsPT09dGhpcy5jdXJyZW50VXNlcj90aGlzLnNldCgiY3VzdG9tTWVzc2FnZSIsSTE4bi50KCJpbnZpdGUuY3VzdG9tX21lc3NhZ2VfdGVtcGxhdGVfZm9ydW0iKSk6dGhpcy5zZXQoImN1c3RvbU1lc3NhZ2UiLEkxOG4udCgiaW52aXRlLmN1c3RvbV9tZXNzYWdlX3RlbXBsYXRlX3RvcGljIikpOnRoaXMuc2V0KCJjdXN0b21NZXNzYWdlIixudWxsKX0sc2VhcmNoQ29udGFjdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsYy5nZXROYXRpdmVDb250YWN0KShbImVtYWlsIl0sITEpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoImVtYWlsT3JVc2VybmFtZSIsZVswXS5lbWFpbFswXSl9KX19fSwiZGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImRpc2FibGVkIiksVCksZChULCJkaXNhYmxlZENvcHlMaW5rIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJkaXNhYmxlZENvcHlMaW5rIiksVCksZChULCJidXR0b25UaXRsZSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiYnV0dG9uVGl0bGUiKSxUKSxkKFQsImludml0aW5nVG9Ub3BpYyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaW52aXRpbmdUb1RvcGljIiksVCksZChULCJjYW5JbnZpdGVWaWFFbWFpbCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuSW52aXRlVmlhRW1haWwiKSxUKSxkKFQsInNob3dDb3B5SW52aXRlQnV0dG9uIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93Q29weUludml0ZUJ1dHRvbiIpLFQpLGQoVCwiaXNHcm91cE93bmVyT3JBZG1pbiIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaXNHcm91cE93bmVyT3JBZG1pbiIpLFQpLGQoVCwic2hvd0dyb3VwcyIsW3ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0dyb3VwcyIpLFQpLGQoVCwic2hvd0N1c3RvbU1lc3NhZ2UiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNob3dDdXN0b21NZXNzYWdlIiksVCksZChULCJpbnZpdGVJbnN0cnVjdGlvbnMiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImludml0ZUluc3RydWN0aW9ucyIpLFQpLGQoVCwic2hvd0dyb3Vwc0NsYXNzIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93R3JvdXBzQ2xhc3MiKSxUKSxkKFQsInN1Y2Nlc3NNZXNzYWdlIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzdWNjZXNzTWVzc2FnZSIpLFQpLGQoVCwiZXJyb3JNZXNzYWdlIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJlcnJvck1lc3NhZ2UiKSxUKSxkKFQsInBsYWNlaG9sZGVyS2V5Iixbal0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJwbGFjZWhvbGRlcktleSIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthdHRyaWJ1dGVCaW5kaW5nczpbInRvcGljLmlkOmRhdGEtdG9waWMtaWQiXSxjbGFzc05hbWVCaW5kaW5nczpbIjpsYXRlc3QtdG9waWMtbGlzdC1pdGVtIiwidG9waWMuYXJjaGl2ZWQiLCJ0b3BpYy52aXNpdGVkIl0sc2hvd0VudHJhbmNlOm4uc2hvd0VudHJhbmNlLG5hdmlnYXRlVG9Ub3BpYzpuLm5hdmlnYXRlVG9Ub3BpYyxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4hMSE9PXRoaXMuc2hvd0VudHJhbmNlKGUpJiZ0aGlzLnVuaGFuZGxlZFJvd0NsaWNrKGUsdGhpcy50b3BpYyl9LHVuaGFuZGxlZFJvd0NsaWNrOmZ1bmN0aW9uKCl7fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9saW5rLXRvLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7c2hvd0lucHV0OiExLGNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5vbkNsaWNrKCksKDAsdC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpeyQoZS5lbGVtZW50KS5maW5kKCJpbnB1dCIpLmZvY3VzKCl9KSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbGlua3MtcmVkaXJlY3QiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2RpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh0aGlzLmVsZW1lbnQpLm9uKCJjbGljay5kaXNjb3Vyc2UtcmVkaXJlY3QiLCJhIixmdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LnRyYWNrQ2xpY2soZSl9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsImEiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbG9hZC1tb3JlIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2luaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImV5ZWxpbmVTZWxlY3RvciIsdGhpcy5zZWxlY3Rvcil9LGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5hY3Rpb24oKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2xvZ2luLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocyhvPXtlbGVtZW50SWQ6ImxvZ2luLWJ1dHRvbnMiLGNsYXNzTmFtZUJpbmRpbmdzOlsiaGlkZGVuIl0saGlkZGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1lJiYhdH0sYnV0dG9uczpmdW5jdGlvbigpe3JldHVybigwLGkuZmluZEFsbCkoKX0sYWN0aW9uczp7ZXh0ZXJuYWxMb2dpbjpmdW5jdGlvbihlKXt0aGlzLmV4dGVybmFsTG9naW4oZSl9fX0sImhpZGRlbiIsWygwLHQuZGVmYXVsdCkoImJ1dHRvbnMubGVuZ3RoIiwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIpXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImhpZGRlbiIpLG8pLHMobywiYnV0dG9ucyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJidXR0b25zIiksbyksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9sb2dpbi1tb2RhbCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSxuLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2RpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0kKCIjaGlkZGVuLWxvZ2luLWZvcm0gaW5wdXRbbmFtZT11c2VybmFtZV0iKS52YWwoKTtlPyh0aGlzLnNldCgibG9naW5OYW1lIixlKSx0aGlzLnNldCgibG9naW5QYXNzd29yZCIsJCgiI2hpZGRlbi1sb2dpbi1mb3JtIGlucHV0W25hbWU9cGFzc3dvcmRdIikudmFsKCkpKTokLmNvb2tpZSgiZW1haWwiKSYmdGhpcy5zZXQoImxvZ2luTmFtZSIsJC5jb29raWUoImVtYWlsIikpLCgwLG4uc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKCIjbG9naW4tYWNjb3VudC1wYXNzd29yZCwgI2xvZ2luLWFjY291bnQtbmFtZSwgI2xvZ2luLXNlY29uZC1mYWN0b3IiKS5rZXlkb3duKGZ1bmN0aW9uKGUpezEzPT09ZS5rZXlDb2RlJiZ0LmFjdGlvbigpfSl9KX0sbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJzY3JlZW5YIixlLnNjcmVlblgpLHRoaXMuc2V0KCJzY3JlZW5ZIixlLnNjcmVlblkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9sb2dpbi1yZXBseS1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2QtYnV0dG9uIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYWJlbDoidG9waWMucmVwbHkudGl0bGUiLGljb246InJlcGx5IixhY3Rpb246InNob3dMb2dpbiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtbGlzdC1pdGVtIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InRyIixjbGFzc05hbWVCaW5kaW5nczpbIjpjYXRlZ29yeS10b3BpYy1saW5rIiwidG9waWMuYXJjaGl2ZWQiLCJ0b3BpYy52aXNpdGVkIl0sY2xpY2s6bi5zaG93RW50cmFuY2V9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9iaWxlLW5hdiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCxpLm9uKSgiaW5pdCIpLHI9KDAsaS5vYnNlcnZlcykoImN1cnJlbnRQYXRoIikscyhhPXtfaW5pdDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZ2V0KCJzaXRlLm1vYmlsZVZpZXciKXx8KGU9dGhpcy5kZXNrdG9wQ2xhc3MpJiYoZT1lLnNwbGl0KCIgIiksdGhpcy5zZXQoImNsYXNzTmFtZXMiLGUpKX0sdGFnTmFtZToidWwiLHNlbGVjdGVkSHRtbDpudWxsLGNsYXNzTmFtZXM6WyJtb2JpbGUtbmF2Il0sY3VycmVudFBhdGhDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgiZXhwYW5kZWQiLCExKSwoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3VwZGF0ZVNlbGVjdGVkSHRtbCgpfSl9LF91cGRhdGVTZWxlY3RlZEh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmFjdGl2ZSIpO2UmJmUuaW5uZXJIVE1MJiZ0aGlzLnNldCgic2VsZWN0ZWRIdG1sIixlLmlubmVySFRNTCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fdXBkYXRlU2VsZWN0ZWRIdG1sKCl9LGFjdGlvbnM6e3RvZ2dsZUV4cGFuZGVkOmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnRvZ2dsZVByb3BlcnR5KCJleHBhbmRlZCIpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtuLmV4cGFuZGVkJiYkKHdpbmRvdykub2ZmKCJjbGljay5tb2JpbGUtbmF2Iikub24oImNsaWNrLm1vYmlsZS1uYXYiLGZ1bmN0aW9uKGUpe3ZhciB0OyFuLmVsZW1lbnR8fG4uaXNEZXN0cm95aW5nfHxuLmlzRGVzdHJveWVkfHwodD1uLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmV4cGFuZGVyIikpJiZlLnRhcmdldCE9PXQmJihuLnNldCgiZXhwYW5kZWQiLCExKSwkKHdpbmRvdykub2ZmKCJjbGljay5tb2JpbGUtbmF2IikpfSl9KX19fSwiX2luaXQiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9pbml0IiksYSkscyhhLCJjdXJyZW50UGF0aENoYW5nZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImN1cnJlbnRQYXRoQ2hhbmdlZCIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9kYWwtcGFuZWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhbmVsOm51bGwscGFuZWxDb21wb25lbnQ6KDAsbi5mbXQpKCJwYW5lbC5pZCIsIiVALXBhbmVsIiksY2xhc3NOYW1lQmluZGluZ3M6WyJwYW5lbC5pZCJdLGNsYXNzTmFtZXM6WyJtb2RhbC1wYW5lbCJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL21vZGFsLXRhYiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkiLGNsYXNzTmFtZXM6WyJtb2RhbC10YWIiXSxwYW5lbDpudWxsLHNlbGVjdGVkUGFuZWw6bnVsbCxwYW5lbHNMZW5ndGg6bnVsbCxjbGFzc05hbWVCaW5kaW5nczpbImlzQWN0aXZlIiwic2luZ2xlVGFiIiwicGFuZWwuaWQiXSxzaW5nbGVUYWI6KDAsdC5lcXVhbCkoInBhbmVsc0xlbmd0aCIsMSksdGl0bGU6KDAsdC5hbGlhcykoInBhbmVsLnRpdGxlIiksaXNBY3RpdmU6KDAsaS5wcm9wZXJ0eUVxdWFsKSgicGFuZWwuaWQiLCJzZWxlY3RlZFBhbmVsLmlkIiksY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLm9uU2VsZWN0UGFuZWwodGhpcy5wYW5lbCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9ob29rcyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsImRpc2NvdXJzZS9saWIvZGlydHkta2V5cyIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLG8sdCxyLG4saSxzLGEsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZFdpZGdldENsZWFuQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtjW2VdPWNbZV18fFtdLGNbZV0ucHVzaCh0KX0sZS5yZXNldFdpZGdldENsZWFuQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Yz17fX07dmFyIHU9ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX0sYz17fTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7X3RyZWU6bnVsbCxfcm9vdE5vZGU6bnVsbCxfdGltZW91dDpudWxsLF93aWRnZXRDbGFzczpudWxsLF9yZW5kZXJDYWxsYmFjazpudWxsLF9jaGlsZEV2ZW50czpudWxsLF9kaXNwYXRjaGVkOm51bGwsZGlydHlLZXlzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLndpZGdldDt0aGlzLnJlZ2lzdGVyPSgwLHMuZ2V0UmVnaXN0ZXIpKHRoaXMpLHRoaXMuX3dpZGdldENsYXNzPSgwLGkucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgid2lkZ2V0OiIrZSksdGhpcy5fd2lkZ2V0Q2xhc3N8fGNvbnNvbGUuZXJyb3IoIkVycm9yOiBDb3VsZCBub3QgZmluZCB3aWRnZXQ6ICIrZSksdGhpcy5fY2hpbGRFdmVudHM9W10sdGhpcy5fY29ubmVjdGVkPVtdLHRoaXMuX2Rpc3BhdGNoZWQ9W10sdGhpcy5kaXJ0eUtleXM9bmV3IGEuZGVmYXVsdChlKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe24uV2lkZ2V0Q2xpY2tIb29rLnNldHVwRG9jdW1lbnRDYWxsYmFjaygpLHRoaXMuX3Jvb3ROb2RlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9yb290Tm9kZSksdGhpcy5fdGltZW91dD0oMCxvLnNjaGVkdWxlT25jZSkoInJlbmRlciIsdGhpcyx0aGlzLnJlcmVuZGVyV2lkZ2V0KX0sd2lsbENsZWFyUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9Y1t0aGlzLndpZGdldF07ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSx0aGlzLl9jb25uZWN0ZWQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5kZXN0cm95KCl9KSx0aGlzLl9jb25uZWN0ZWQubGVuZ3RoPTB9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXRoaXM7dGhpcy5fZGlzcGF0Y2hlZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXUoZSwyKSxuPXRbMF0saT10WzFdO3MuYXBwRXZlbnRzLm9mZihuLHMsaSl9KSwoMCxvLmNhbmNlbCkodGhpcy5fdGltZW91dCl9LGFmdGVyUmVuZGVyOmZ1bmN0aW9uKCl7fSxiZWZvcmVQYXRjaDpmdW5jdGlvbigpe30sYWZ0ZXJQYXRjaDpmdW5jdGlvbigpe30sZXZlbnREaXNwYXRjaGVkOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0oMCxsLmNhbWVsaXplKShlLnJlcGxhY2UoLzovLCItIikpO3RoaXMuZGlydHlLZXlzLmtleURpcnR5KHQse29uUmVmcmVzaDppLHJlZnJlc2hBcmc6bn0pLHRoaXMucXVldWVSZXJlbmRlcigpfSxkaXNwYXRjaDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7dGhpcy5fY2hpbGRFdmVudHMucHVzaCh0KTtmdW5jdGlvbiBlKGUpe3JldHVybiBpLmV2ZW50RGlzcGF0Y2hlZCh0LG4sZSl9dGhpcy5fZGlzcGF0Y2hlZC5wdXNoKFt0LGVdKSx0aGlzLmFwcEV2ZW50cy5vbih0LHRoaXMsZSl9LHF1ZXVlUmVyZW5kZXI6ZnVuY3Rpb24oZSl7ZSYmIXRoaXMuX3JlbmRlckNhbGxiYWNrJiYodGhpcy5fcmVuZGVyQ2FsbGJhY2s9ZSksKDAsby5zY2hlZHVsZU9uY2UpKCJyZW5kZXIiLHRoaXMsdGhpcy5yZXJlbmRlcldpZGdldCl9LGJ1aWxkQXJnczpmdW5jdGlvbigpe30scmVyZW5kZXJXaWRnZXQ6ZnVuY3Rpb24oKXtpZigoMCxvLmNhbmNlbCkodGhpcy5fdGltZW91dCksdGhpcy5fcm9vdE5vZGUpe2lmKCF0aGlzLl93aWRnZXRDbGFzcylyZXR1cm47dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdD10aGlzLmFyZ3N8fHRoaXMuYnVpbGRBcmdzKCksbj17bW9kZWw6dGhpcy5tb2RlbCxkaXJ0eUtleXM6dGhpcy5kaXJ0eUtleXN9LGk9bmV3IHRoaXMuX3dpZGdldENsYXNzKHQsdGhpcy5yZWdpc3RlcixuKTtpLl9yZXJlbmRlcmFibGU9dGhpcyxpLl9lbWJlclZpZXc9dGhpczt2YXIgcz0oMCxyLmRpZmYpKHRoaXMuX3RyZWV8fHRoaXMuX3Jvb3ROb2RlLGkpO3RoaXMuYmVmb3JlUGF0Y2goKSx0aGlzLl9yb290Tm9kZT0oMCxyLnBhdGNoKSh0aGlzLl9yb290Tm9kZSxzKSx0aGlzLmFmdGVyUGF0Y2goKSx0aGlzLl90cmVlPWksdGhpcy5fcmVuZGVyQ2FsbGJhY2smJih0aGlzLl9yZW5kZXJDYWxsYmFjaygpLHRoaXMuX3JlbmRlckNhbGxiYWNrPW51bGwpLHRoaXMuYWZ0ZXJSZW5kZXIoKSx0aGlzLmRpcnR5S2V5cy5yZW5kZXJlZEtleSgiKiIpLHRoaXMucHJvZmlsZVdpZGdldCYmY29uc29sZS5sb2coKG5ldyBEYXRlKS5nZXRUaW1lKCktZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9uYXYtaXRlbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoImxhYmVsIiwiaTE4bkxhYmVsIiwiaWNvbiIpLGE9KDAsdC5kZWZhdWx0KSgicm91dGUiLCJyb3V0ZXIuY3VycmVudFJvdXRlIiksbyhsPXt0YWdOYW1lOiJsaSIsY2xhc3NOYW1lQmluZGluZ3M6WyJhY3RpdmUiXSxyb3V0ZXI6KDAsbi5pbmplY3QpKCksY29udGVudHM6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXR8fEkxOG4udChlKTtyZXR1cm4gbj8oKDAscy5pY29uSFRNTCkobikrIiAiK2kpLmh0bWxTYWZlKCk6aX0sYWN0aXZlOmZ1bmN0aW9uKGUsdCl7aWYoZSl7dmFyIG49dGhpcy5yb3V0ZVBhcmFtO3JldHVybiBuJiZ0P3QucGFyYW1zLmZpbHRlcj09PW46dGhpcy5yb3V0ZXIuaXNBY3RpdmUoZSl9fX0sImNvbnRlbnRzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJjb250ZW50cyIpLGwpLG8obCwiYWN0aXZlIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhY3RpdmUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL25hdmlnYXRpb24tYmFyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYSxsLHUsYz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb31lLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsKGE9KDAsaS5kZWZhdWx0KSgiZmlsdGVyVHlwZSIsIm5hdkl0ZW1zIiksbD0oMCxpLm9ic2VydmVzKSgiZXhwYW5kZWQiKSxkKHU9e3RhZ05hbWU6InVsIixjbGFzc05hbWVCaW5kaW5nczpbIjpuYXYiLCI6bmF2LXBpbGxzIl0sZWxlbWVudElkOiJuYXZpZ2F0aW9uLWJhciIsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgiY29ubmVjdG9ycyIsKDAsby5yZW5kZXJlZENvbm5lY3RvcnNGb3IpKCJleHRyYS1uYXYtaXRlbSIsbnVsbCx0aGlzKSl9LHNlbGVjdGVkTmF2SXRlbTpmdW5jdGlvbih0LGUpe3ZhciBuLGkscz1lLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmFjdGl2ZX0pO3JldHVybihzPXN8fGUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImZpbHRlclR5cGUiKT09PXR9KSl8fChuPXRoaXMuY29ubmVjdG9ycyxpPXRoaXMuY2F0ZWdvcnksbiYmaSYmbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuY29ubmVjdG9yQ2xhc3MmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbm5lY3RvckNsYXNzLnBhdGgmJmMoImZ1bmN0aW9uIj09PWUuY29ubmVjdG9yQ2xhc3MuZGlzcGxheU5hbWUpJiYwPGUuY29ubmVjdG9yQ2xhc3MucGF0aChpKS5pbmRleE9mKHQpJiYocz17ZGlzcGxheU5hbWU6ZS5jb25uZWN0b3JDbGFzcy5kaXNwbGF5TmFtZSgpfSl9KSksc3x8ZVswXX0sY2xvc2VkTmF2OmZ1bmN0aW9uKCl7dGhpcy5leHBhbmRlZHx8dGhpcy5lbnN1cmVEcm9wQ2xvc2VkKCl9LGVuc3VyZURyb3BDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmV4cGFuZGVkfHx0aGlzLnNldCgiZXhwYW5kZWQiLCExKSwkKHdpbmRvdykub2ZmKCJjbGljay5uYXZpZ2F0aW9uLWJhciIpLHMuZGVmYXVsdC5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsdGhpcy5lbnN1cmVEcm9wQ2xvc2VkKX0sYWN0aW9uczp7dG9nZ2xlRHJvcDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoImV4cGFuZGVkIiwhdGhpcy5leHBhbmRlZCksdGhpcy5leHBhbmRlZCYmKHMuZGVmYXVsdC5hcHBFdmVudHMub24oImRvbTpjbGVhbiIsdGhpcyx0aGlzLmVuc3VyZURyb3BDbG9zZWQpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtlLmV4cGFuZGVkJiYoJChlLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRyb3AgYSIpKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZHJvcCIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLCgwLHQubmV4dCkoZnVuY3Rpb24oKXshZS5lbGVtZW50fHxlLmlzRGVzdHJveWluZ3x8ZS5pc0Rlc3Ryb3llZHx8ZS5zZXQoImV4cGFuZGVkIiwhMSl9KSwhMH0pLCQod2luZG93KS5vbigiY2xpY2submF2aWdhdGlvbi1iYXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJleHBhbmRlZCIsITEpLCEwfSkpfSkpfX19LCJzZWxlY3RlZE5hdkl0ZW0iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNlbGVjdGVkTmF2SXRlbSIpLHUpLGQodSwiY2xvc2VkTmF2IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJjbG9zZWROYXYiKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvZmlsdGVyLW1vZGUiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwobz0oMCx0LmRlZmF1bHQpKCJjb250ZW50LmZpbHRlclR5cGUiLCJmaWx0ZXJUeXBlIiwiY29udGVudC5hY3RpdmUiKSxyPSgwLHQuZGVmYXVsdCkoImNvbnRlbnQuY291bnQiKSxzKGE9e3RhZ05hbWU6ImxpIixjbGFzc05hbWVCaW5kaW5nczpbImFjdGl2ZSIsImNvbnRlbnQuaGFzSWNvbjpoYXMtaWNvbiIsImNvbnRlbnQuY2xhc3NOYW1lcyIsImlzSGlkZGVuOmhpZGRlbiJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsiY29udGVudC50aXRsZTp0aXRsZSJdLGhpZGRlbjohMSxyZXJlbmRlclRyaWdnZXJzOlsiY29udGVudC5jb3VudCJdLGFjdGl2ZUNsYXNzOiIiLGhyZWZMaW5rOm51bGwsYWN0aXZlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwIT09bj9uOmU9PT10fSxpc0hpZGRlbjpmdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5hY3RpdmUmJnRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbCYmKCJuZXciPT09dGhpcy5jb250ZW50LmdldCgibmFtZSIpfHwidW5yZWFkIj09PXRoaXMuY29udGVudC5nZXQoIm5hbWUiKSkmJmU8MX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlLG49dGhpcy5jb250ZW50LHQ9bi5nZXQoImhyZWYiKSxpPVtdOyFuLmdldCgiaW5jbHVkZUNhdGVnb3J5SWQiKXx8KGU9dGhpcy5nZXQoImNvbnRlbnQuY2F0ZWdvcnkuaWQiKSkmJmkucHVzaCgiY2F0ZWdvcnlfaWQ9IitlKSxuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zJiZPYmplY3Qua2V5cyhuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW4ucGVyc2lzdGVkUXVlcnlQYXJhbXNbZV07aS5wdXNoKGUrIj0iK3QpfSksaS5sZW5ndGgmJih0Kz0iPyIraS5qb2luKCImIikpLHRoaXMuc2V0KCJocmVmTGluayIsdCksdGhpcy5zZXQoImFjdGl2ZUNsYXNzIix0aGlzLmFjdGl2ZT8iYWN0aXZlIjoiIil9fSwiYWN0aXZlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJhY3RpdmUiKSxhKSxzKGEsImlzSGlkZGVuIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJpc0hpZGRlbiIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWNvbnNlbnQtYmFubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3B1c2gtbm90aWZpY2F0aW9ucyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGw9ImRpc21pc3NlZC1wcm9tcHQiO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoImlzTm90U3VwcG9ydGVkIiwiaXNFbmFibGVkIiwiYmFubmVyRGlzbWlzc2VkIiwiY3VycmVudFVzZXIucmVwbHlfY291bnQiLCJjdXJyZW50VXNlci50b3BpY19jb3VudCIpLHMocj17YmFubmVyRGlzbWlzc2VkOntzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG4ua2V5VmFsdWVTdG9yZS5zZXRJdGVtKGwsZSksbi5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0obCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBuLmtleVZhbHVlU3RvcmUuZ2V0SXRlbShsKX19LHNob3dOb3RpZmljYXRpb25Qcm9tcHRCYW5uZXI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MucHVzaF9ub3RpZmljYXRpb25zX3Byb21wdCYmIWUmJnRoaXMuY3VycmVudFVzZXImJjA8aStzJiYiZGVuaWVkIiE9PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJiYiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbiYmIXQmJiFufSxhY3Rpb25zOnt0dXJub246ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfSxkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfX19LCJiYW5uZXJEaXNtaXNzZWQiLFt0LmRlZmF1bHRdLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiYmFubmVyRGlzbWlzc2VkIikpP2EudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBhfX0pLHIpLHMociwic2hvd05vdGlmaWNhdGlvblByb21wdEJhbm5lciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2hvd05vdGlmaWNhdGlvblByb21wdEJhbm5lciIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbnVtYmVyLWZpZWxkIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBpLHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJudW1iZXIiKSxzPSgwLHQuZGVmYXVsdCkoInBsYWNlaG9sZGVyS2V5IiksbihvPXtjbGFzc05hbWVCaW5kaW5nczpbImludmFsaWQiXSx2YWx1ZTp7Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KGUsMTApO3JldHVybiBpc05hTih0KT8odGhpcy5zZXQoImludmFsaWQiLCEwKSxlKToodGhpcy5zZXQoImludmFsaWQiLCExKSx0aGlzLnNldCgibnVtYmVyIix0KSx0LnRvU3RyaW5nKCkpfX0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KGUpOiIifX0sInZhbHVlIixbaV0sKHI9KHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJ2YWx1ZSIpKT9yLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KSxvKSxuKG8sInBsYWNlaG9sZGVyIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJwbGFjZWhvbGRlciIpLG8pLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcGFzc3dvcmQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NhblRvZ2dsZTohMSxrZXlQcmVzczpmdW5jdGlvbihlKXs2NTw9ZS53aGljaCYmZS53aGljaDw9OTAmJiFlLnNoaWZ0S2V5fHw5Nzw9ZS53aGljaCYmZS53aGljaDw9MTIyJiZlLnNoaWZ0S2V5Pyh0aGlzLnNldCgiY2FuVG9nZ2xlIiwhMCksdGhpcy5zZXQoImNhcHNMb2NrT24iLCEwKSk6KDY1PD1lLndoaWNoJiZlLndoaWNoPD05MCYmZS5zaGlmdEtleXx8OTc8PWUud2hpY2gmJmUud2hpY2g8PTEyMiYmIWUuc2hpZnRLZXkpJiYodGhpcy5zZXQoImNhblRvZ2dsZSIsITApLHRoaXMuc2V0KCJjYXBzTG9ja09uIiwhMSkpfSxrZXlVcDpmdW5jdGlvbihlKXsyMD09PWUud2hpY2gmJnRoaXMuY2FuVG9nZ2xlJiZ0aGlzLnRvZ2dsZVByb3BlcnR5KCJjYXBzTG9ja09uIil9LGZvY3VzT3V0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNhcHNMb2NrT24iLCExKX0sZm9jdXNJbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJjYW5Ub2dnbGUiLCExKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcGx1Z2luLWNvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL2xpYi9wbHVnaW4tY29ubmVjdG9ycyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxmLGgsYixuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkUGx1Z2luT3V0bGV0RGVjb3JhdG9yPWZ1bmN0aW9uKGUsdCl7Y1tlXT1jW2VdfHxbXSxjW2VdLnB1c2godCl9LGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7Yz17fX07dmFyIGksZz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTt2YXIgcyxvLHIsYSxsLHUsYz17fTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz1pPXtpbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5jb25uZWN0b3I7dGhpcy5zZXQoImxheW91dE5hbWUiLGUudGVtcGxhdGVOYW1lKTt2YXIgbj10aGlzLmFyZ3N8fHt9O09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oZSl7KDAsZi5kZWZpbmVQcm9wZXJ0eSkodCxlLCgwLGYuY29tcHV0ZWQpKCJhcmdzIixmdW5jdGlvbigpe3JldHVybih0LmFyZ3N8fHt9KVtlXX0pKX0pO3ZhciBpPXRoaXMuZGVwcmVjYXRlZEFyZ3N8fHt9O09iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7KDAsZi5kZWZpbmVQcm9wZXJ0eSkodCxlLCgwLGYuY29tcHV0ZWQpKCJkZXByZWNhdGVkQXJncyIsZnVuY3Rpb24oKXtyZXR1cm4oMCxoLmRlZmF1bHQpKCJUaGUgIitlKyIgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCwgYnV0IGlzIGJlaW5nIHVzZWQgaW4gIit0LmxheW91dE5hbWUpLCh0LmRlcHJlY2F0ZWRBcmdzfHx7fSlbZV19KSl9KTt2YXIgcz10aGlzLmdldCgiY29ubmVjdG9yLmNvbm5lY3RvckNsYXNzIik7dGhpcy5zZXQoImFjdGlvbnMiLHMuYWN0aW9ucyk7dmFyIG89ITAscj0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHU9T2JqZWN0LmVudHJpZXModGhpcy5hY3Rpb25zKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShvPShsPXUubmV4dCgpKS5kb25lKTtvPSEwKXt2YXIgYz1nKGwudmFsdWUsMiksZD1jWzBdLHA9Y1sxXTt0aGlzLnNldChkLHApfX1jYXRjaChlKXtyPSEwLGE9ZX1maW5hbGx5e3RyeXshbyYmdS5yZXR1cm4mJnUucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGF9fXZhciBtPSgwLGIuYnVpbGRBcmdzV2l0aERlcHJlY2F0aW9ucykobixpKTtzLnNldHVwQ29tcG9uZW50LmNhbGwodGhpcyxtLHRoaXMpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fZGVjb3JhdGVQbHVnaW5PdXRsZXRzKCl9LF9kZWNvcmF0ZVBsdWdpbk91dGxldHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOyhjW3RoaXMuY29ubmVjdG9yLm91dGxldE5hbWVdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZSh0LmVsZW1lbnQsdC5hcmdzKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5nZXQoImNvbm5lY3Rvci5jb25uZWN0b3JDbGFzcyIpLnRlYXJkb3duQ29tcG9uZW50LmNhbGwodGhpcyx0aGlzKX0sc2VuZDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy5nZXQoImNvbm5lY3Rvci5jb25uZWN0b3JDbGFzcyIpLmFjdGlvbnNbZV0sbj1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoMTxuP24tMTowKSxzPTE7czxuO3MrKylpW3MtMV09YXJndW1lbnRzW3NdO3JldHVybiB0P3QuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoaSkpOnRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsW2VdLmNvbmNhdChpKSl9fSxvPSJfZGVjb3JhdGVQbHVnaW5PdXRsZXRzIixyPVtuLmFmdGVyUmVuZGVyXSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSwiX2RlY29yYXRlUGx1Z2luT3V0bGV0cyIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3BsdWdpbi1vdXRsZXQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3BsdWdpbi1jb25uZWN0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InNwYW4iLGNvbm5lY3RvcnM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5ub1RhZ3MmJih0aGlzLnNldCgidGFnTmFtZSIsIiIpLHRoaXMuc2V0KCJjb25uZWN0b3JUYWdOYW1lIiwiIikpLHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZSx0PXRoaXMubmFtZTt0JiYoZT0oMCxuLmJ1aWxkQXJnc1dpdGhEZXByZWNhdGlvbnMpKHRoaXMuYXJnc3x8e30sdGhpcy5kZXByZWNhdGVkQXJnc3x8e30pLHRoaXMuc2V0KCJjb25uZWN0b3JzIiwoMCxuLnJlbmRlcmVkQ29ubmVjdG9yc0ZvcikodCxlLHRoaXMpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3BvcHVwLWlucHV0LXRpcCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAscy5kZWZhdWx0KSgic2hvd25BdCIsInZhbGlkYXRpb24ubGFzdFNob3duQXQiKSxhPSgwLHMub2JzZXJ2ZXMpKCJsYXN0U2hvd25BdCIpLG8obD17Y2xhc3NOYW1lQmluZGluZ3M6WyI6cG9wdXAtdGlwIiwiZ29vZCIsImJhZCIsImxhc3RTaG93bkF0OjpoaWRlIl0sYW5pbWF0ZUF0dHJpYnV0ZTpudWxsLGJvdW5jZVBpeGVsczo2LGJvdW5jZURlbGF5OjEwMCxyZXJlbmRlclRyaWdnZXJzOlsidmFsaWRhdGlvbi5yZWFzb24iXSxjbG9zZUljb246KCIiKygwLGkuaWNvbkhUTUwpKCJ0aW1lcy1jaXJjbGUiKSkuaHRtbFNhZmUoKSx0aXBSZWFzb246bnVsbCxjbGljazpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG93bkF0IixudWxsKSx0aGlzLnNldCgidmFsaWRhdGlvbi5sYXN0U2hvd25BdCIsbnVsbCl9LGJhZDooMCx0LmFsaWFzKSgidmFsaWRhdGlvbi5mYWlsZWQiKSxnb29kOigwLHQubm90KSgiYmFkIiksbGFzdFNob3duQXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dH0sYm91bmNlOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5sYXN0U2hvd25BdCYmKGU9JCh0aGlzLmVsZW1lbnQpLHRoaXMuYW5pbWF0ZUF0dHJpYnV0ZXx8KHRoaXMuYW5pbWF0ZUF0dHJpYnV0ZT0iYXV0byI9PT1lLmNzcygibGVmdCIpPyJyaWdodCI6ImxlZnQiKSwibGVmdCI9PT10aGlzLmFuaW1hdGVBdHRyaWJ1dGU/dGhpcy5ib3VuY2VMZWZ0KGUpOnRoaXMuYm91bmNlUmlnaHQoZSkpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5nZXQoInZhbGlkYXRpb24ucmVhc29uIik7ZT90aGlzLnNldCgidGlwUmVhc29uIiwoIiIrZSkuaHRtbFNhZmUoKSk6dGhpcy5zZXQoInRpcFJlYXNvbiIsbnVsbCl9LGJvdW5jZUxlZnQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDw1O3QrKyllLmFuaW1hdGUoe2xlZnQ6Iis9Iit0aGlzLmJvdW5jZVBpeGVsc30sdGhpcy5ib3VuY2VEZWxheSkuYW5pbWF0ZSh7bGVmdDoiLT0iK3RoaXMuYm91bmNlUGl4ZWxzfSx0aGlzLmJvdW5jZURlbGF5KX0sYm91bmNlUmlnaHQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDw1O3QrKyllLmFuaW1hdGUoe3JpZ2h0OiItPSIrdGhpcy5ib3VuY2VQaXhlbHN9LHRoaXMuYm91bmNlRGVsYXkpLmFuaW1hdGUoe3JpZ2h0OiIrPSIrdGhpcy5ib3VuY2VQaXhlbHN9LHRoaXMuYm91bmNlRGVsYXkpfX0sImxhc3RTaG93bkF0Iixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJsYXN0U2hvd25BdCIpLGwpLG8obCwiYm91bmNlIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJib3VuY2UiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3ByZWZlcmVuY2UtY2hlY2tib3giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoImxhYmVsS2V5Iiksbz1zPXtjbGFzc05hbWVzOlsiY29udHJvbHMiXSxsYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KGUpfSxjaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy53YXJuaW5nfHwhdGhpcy5jaGVja2VkfHwodGhpcy53YXJuaW5nKCksITEpfX0scj0ibGFiZWwiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJsYWJlbCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZTpudWxsLGhyZWY6bnVsbCx0aXRsZTpudWxsLGFyaWFMYWJlbDpudWxsfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGM9ImRpc21pc3NlZC1wd2EtaW5zdGFsbC1iYW5uZXIiO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLGkub24pKCJkaWRJbnNlcnRFbGVtZW50Iikscj0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IiksYT0oMCxpLmRlZmF1bHQpKCJkZWZlcnJlZEluc3RhbGxQcm9tcHRFdmVudCIsImJhbm5lckRpc21pc3NlZCIpLHMobD17ZGVmZXJyZWRJbnN0YWxsUHJvbXB0RXZlbnQ6bnVsbCxfaGFuZGxlSW5zdGFsbFByb21wdEV2ZW50OmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNldCgiZGVmZXJyZWRJbnN0YWxsUHJvbXB0RXZlbnQiLGUpfSxfcmVnaXN0ZXJMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuX3Byb21wdEV2ZW50SGFuZGxlcj0oMCx0LmJpbmQpKHRoaXMsdGhpcy5faGFuZGxlSW5zdGFsbFByb21wdEV2ZW50KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5zdGFsbHByb21wdCIsdGhpcy5fcHJvbXB0RXZlbnRIYW5kbGVyKX0sX3VucmVnaXN0ZXJMaXN0ZW5lcjpmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0Iix0aGlzLl9wcm9tcHRFdmVudEhhbmRsZXIpfSxiYW5uZXJEaXNtaXNzZWQ6e3NldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5rZXlWYWx1ZVN0b3JlLnNldCh7a2V5OmMsdmFsdWU6ZX0pLHRoaXMua2V5VmFsdWVTdG9yZS5nZXQoYyl9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmtleVZhbHVlU3RvcmUuZ2V0KGMpfX0sc2hvd1BXQUluc3RhbGxCYW5uZXI6ZnVuY3Rpb24oKXt2YXIgZT0tMSE9PXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiZGlzY291cnNlX2FwcD0xIik7cmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzLmlzQW5kcm9pZCYmMDx0aGlzLmdldCgiY3VycmVudFVzZXIudHJ1c3RfbGV2ZWwiKSYmdGhpcy5kZWZlcnJlZEluc3RhbGxQcm9tcHRFdmVudCYmIXdpbmRvdy5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKSIpLm1hdGNoZXMmJiFlJiYhdGhpcy5iYW5uZXJEaXNtaXNzZWR9LGFjdGlvbnM6e3R1cm5PbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJiYW5uZXJEaXNtaXNzZWQiLCEwKSx0aGlzLmRlZmVycmVkSW5zdGFsbFByb21wdEV2ZW50LnByb21wdCgpfSxkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfX19LCJfcmVnaXN0ZXJMaXN0ZW5lciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX3JlZ2lzdGVyTGlzdGVuZXIiKSxsKSxzKGwsIl91bnJlZ2lzdGVyTGlzdGVuZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl91bnJlZ2lzdGVyTGlzdGVuZXIiKSxsKSxzKGwsImJhbm5lckRpc21pc3NlZCIsW2kuZGVmYXVsdF0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJiYW5uZXJEaXNtaXNzZWQiKSk/dS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSksbCkscyhsLCJzaG93UFdBSW5zdGFsbEJhbm5lciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwic2hvd1BXQUluc3RhbGxCYW5uZXIiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3F1b3RlLWJ1dHRvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxqLHQscixUKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsicXVvdGUtYnV0dG9uIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlIl0sdmlzaWJsZTohMSxfaXNNb3VzZURvd246ITEsX3Jlc2VsZWN0ZWQ6ITEsX2hpZGVCdXR0b246ZnVuY3Rpb24oKXt0aGlzLnF1b3RlU3RhdGUuY2xlYXIoKSx0aGlzLnNldCgidmlzaWJsZSIsITEpfSxfc2VsZWN0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucXVvdGVTdGF0ZSx0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih0LmlzQ29sbGFwc2VkKXRoaXMudmlzaWJsZSYmdGhpcy5faGlkZUJ1dHRvbigpO2Vsc2V7Zm9yKHZhciBuPXZvaWQgMCxpPXZvaWQgMCxzPTA7czx0LnJhbmdlQ291bnQ7cysrKXt2YXIgbz10LmdldFJhbmdlQXQocyk7aWYoMD09PSQoby5zdGFydENvbnRhaW5lci5wYXJlbnROb2RlKS5jbG9zZXN0KCIuY29va2VkIikubGVuZ3RoKXJldHVybjt2YXIgcj0kKG8uY29tbW9uQW5jZXN0b3JDb250YWluZXIpLG49bnx8byxpPWl8fHIuY2xvc2VzdCgiLmJveGVkLCAucmVwbHkiKS5kYXRhKCJwb3N0LWlkIik7aWYoMD09PXIuY2xvc2VzdCgiLmNvbnRlbnRzIikubGVuZ3RofHwhaSlyZXR1cm4gdm9pZCh0aGlzLnZpc2libGUmJnRoaXMuX2hpZGVCdXR0b24oKSl9Zm9yKHZhciBhPXtyYXc6ITB9LGw9KDAsVC5zZWxlY3RlZEVsZW1lbnQpKCk7bCYmIkFSVElDTEUiIT09bC50YWdOYW1lO2w9bC5wYXJlbnRFbGVtZW50KSJBU0lERSI9PT1sLnRhZ05hbWUmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJxdW90ZSIpJiYoYS51c2VybmFtZT1sLmRhdGFzZXQudXNlcm5hbWV8fGwucXVlcnlTZWxlY3RvcigiLnRpdGxlIikudGV4dENvbnRlbnQudHJpbSgpLnJlcGxhY2UoLzokLywiIiksYS5wb3N0PWwuZGF0YXNldC5wb3N0LGEudG9waWM9bC5kYXRhc2V0LnRvcGljKTt2YXIgdSxjLGQscCxtLGYsaCxiLGcsdix5LF8sdyx4LGssUD0oMCxULnNlbGVjdGVkVGV4dCkoKTtlLnNlbGVjdGVkKGksUCxhKSx0aGlzLnNldCgidmlzaWJsZSIsMDxlLmJ1ZmZlci5sZW5ndGgpLHRoaXMuX3ByZXZTZWxlY3Rpb24hPT1QJiYodGhpcy5fcHJldlNlbGVjdGlvbj1QLHU9dGhpcy5zaXRlLmlzTW9iaWxlRGV2aWNlLGQ9KGM9dGhpcy5jYXBhYmlsaXRpZXMpLmlzSU9TLHA9Yy5pc0FuZHJvaWQsbT1jLmlzU2FmYXJpLGY9Yy5pc09wZXJhLGg9Yy5pc0lFMTEsYj11fHxkfHxwfHxmLGc9bi5jbG9uZVJhbmdlKCksKHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHVmZWZmIikpLGImJmcuY29sbGFwc2UoKSxnLmluc2VydE5vZGUodikseT0kKHYpLF89eS5vZmZzZXQoKSx3PXkucGFyZW50KCkuc2Nyb2xsTGVmdCgpLHg9JCh0aGlzLmVsZW1lbnQpLChrPXYucGFyZW50Tm9kZSkucmVtb3ZlQ2hpbGQodiksaHx8ay5ub3JtYWxpemUoKSxtJiYodGhpcy5fcmVzZWxlY3RlZD0hMCx0LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoZykpLCgwLGouc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9Xy50b3AsdD1fLmxlZnQrTWF0aC5tYXgoMCx3KTtiPyhlPSQod2luZG93KS53aWR0aCgpLXgub3V0ZXJXaWR0aCgpPHQrMTA/ZSs1MDplKzIwLHQ9TWF0aC5taW4odCsxMCwkKHdpbmRvdykud2lkdGgoKS14Lm91dGVyV2lkdGgoKS0xMCkpOmU9ZS14Lm91dGVySGVpZ2h0KCktNSx4Lm9mZnNldCh7dG9wOmUsbGVmdDp0fSl9KSl9fSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuY2FwYWJpbGl0aWVzLG49ZS5pc1dpbnBob25lLGk9ZS5pc0FuZHJvaWQscz1ufHxpPzI1MDoyNSxvPSgwLHIuZGVmYXVsdCkoZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2VsZWN0aW9uQ2hhbmdlZCgpfSxzKTskKGRvY3VtZW50KS5vbigibW91c2Vkb3duLnF1b3RlLWJ1dHRvbiIsZnVuY3Rpb24oZSl7dC5fcHJldlNlbGVjdGlvbj1udWxsLHQuX2lzTW91c2VEb3duPSEwLHQuX3Jlc2VsZWN0ZWQ9ITEsMD09PSQoZS50YXJnZXQpLmNsb3Nlc3QoIi5xdW90ZS1idXR0b24sIC5jcmVhdGUsIC5zaGFyZSwgLnJlcGx5LW5ldyIpLmxlbmd0aCYmdC5faGlkZUJ1dHRvbigpfSkub24oIm1vdXNldXAucXVvdGUtYnV0dG9uIixmdW5jdGlvbigpe3QuX3ByZXZTZWxlY3Rpb249bnVsbCx0Ll9pc01vdXNlRG93bj0hMSxvKCl9KS5vbigic2VsZWN0aW9uY2hhbmdlLnF1b3RlLWJ1dHRvbiIsZnVuY3Rpb24oKXt0Ll9pc01vdXNlRG93bnx8dC5fcmVzZWxlY3RlZHx8bygpfSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9mZigibW91c2Vkb3duLnF1b3RlLWJ1dHRvbiIpLm9mZigibW91c2V1cC5xdW90ZS1idXR0b24iKS5vZmYoInNlbGVjdGlvbmNoYW5nZS5xdW90ZS1idXR0b24iKX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5xdW90ZVN0YXRlLG49dC5wb3N0SWQsaT10LmJ1ZmZlcixzPXQub3B0cztyZXR1cm4gdGhpcy5hdHRycy5zZWxlY3RUZXh0KG4saSxzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2hpZGVCdXR0b24oKX0pLCExfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yYWRpby1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInZhbHVlIiwic2VsZWN0aW9uIiksbz1zPXt0YWdOYW1lOiJpbnB1dCIsdHlwZToicmFkaW8iLGF0dHJpYnV0ZUJpbmRpbmdzOlsibmFtZSIsInR5cGUiLCJ2YWx1ZSIsImNoZWNrZWQ6Y2hlY2tlZCIsImRpc2FibGVkOmRpc2FibGVkIl0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuZWxlbWVudCkudmFsKCk7dGhpcy5vbkNoYW5nZT90aGlzLm9uQ2hhbmdlKGUpOih0aGlzLnNlbGVjdGlvbj09PWUmJnRoaXMuc2V0KCJzZWxlY3Rpb24iLHZvaWQgMCksdGhpcy5zZXQoInNlbGVjdGlvbiIsZSkpfSxjaGVja2VkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fX0scj0iY2hlY2tlZCIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNoZWNrZWQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZWxhdGVkLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgidG9waWMiKSxvPSgwLHQuZGVmYXVsdCkoInRvcGljIiksaShyPXtlbGVtZW50SWQ6InJlbGF0ZWQtbWVzc2FnZXMiLGNsYXNzTmFtZXM6WyJzdWdnZXN0ZWQtdG9waWNzIl0sdGFyZ2V0VXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKGUmJmUuaXNQcml2YXRlTWVzc2FnZSl7dmFyIG49ZS5kZXRhaWxzLmFsbG93ZWRfdXNlcnM7cmV0dXJuIGUucmVsYXRlZE1lc3NhZ2VzJiY1PD1lLnJlbGF0ZWRNZXNzYWdlcy5sZW5ndGgmJjI9PT1uLmxlbmd0aCYmMD09PWUuZGV0YWlscy5hbGxvd2VkX2dyb3Vwcy5sZW5ndGgmJm4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VybmFtZT09PXQuY3VycmVudFVzZXIudXNlcm5hbWV9KT9uLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWUhPT10LmN1cnJlbnRVc2VyLnVzZXJuYW1lfSk6dm9pZCAwfX0sc2VhcmNoTGluazpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvc2VhcmNoP2V4cGFuZGVkPXRydWUmcT0lNDAiK3RoaXMudGFyZ2V0VXNlci51c2VybmFtZSsiJTIwaW4lM0FwZXJzb25hbC1kaXJlY3QiKX0scmVsYXRlZFRpdGxlTGluazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5wbVBhdGgoZSl9fSwidGFyZ2V0VXNlciIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwidGFyZ2V0VXNlciIpLHIpLGkociwic2VhcmNoTGluayIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzZWFyY2hMaW5rIiksciksaShyLCJyZWxhdGVkVGl0bGVMaW5rIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJyZWxhdGVkVGl0bGVMaW5rIikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLWJ1bmRsZWQtYWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLG11bHRpcGxlOigwLHQuZ3QpKCJidW5kbGUuYWN0aW9ucy5sZW5ndGgiLDEpLGZpcnN0OigwLHQuYWxpYXMpKCJidW5kbGUuYWN0aW9ucy5maXJzdE9iamVjdCIpLGFjdGlvbnM6e3BlcmZvcm1CeUlkOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMucGVyZm9ybUFjdGlvbih0aGlzLmdldCgiYnVuZGxlLmFjdGlvbnMiKS5maW5kQnkoImlkIixlKSl9LHBlcmZvcm06ZnVuY3Rpb24oZSl7dGhpcy5hdHRycy5wZXJmb3JtQWN0aW9uKGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1jbGFpbWVkLXRvcGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPW89e3RhZ05hbWU6IiIsZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiJkaXNhYmxlZCIhPT10aGlzLnNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nfSxhY3Rpb25zOnt1bmNsYWltOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczsoMCxzLmFqYXgpKCIvcmV2aWV3YWJsZV9jbGFpbWVkX3RvcGljcy8iK3RoaXMudG9waWNJZCx7bWV0aG9kOiJERUxFVEUifSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJjbGFpbWVkQnkiLG51bGwpfSl9LGNsYWltOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuc3RvcmUuY3JlYXRlUmVjb3JkKCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiKTt0LnNhdmUoe3RvcGljX2lkOnRoaXMudG9waWNJZH0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgiY2xhaW1lZEJ5IixlLmN1cnJlbnRVc2VyKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpfX19LGE9ImVuYWJsZWQiLGw9W3QuZGVmYXVsdF0sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImVuYWJsZWQiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtzaG93VXNlcm5hbWU6KDAsdC5ndGUpKCJpbmRleCIsMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnZhbHVlQ2hhbmdlZCYmdGhpcy52YWx1ZUNoYW5nZWQoe3RhcmdldDp7dmFsdWU6ZX19KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3Jldmlld2FibGUtZmxhZ2dlZC1wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1lZGl0cy1pbmRpY2F0b3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGUucG9zdF91cGRhdGVkX2F0IiksdT0oMCx0LmRlZmF1bHQpKCJyZXZpZXdhYmxlLnBvc3RfdXBkYXRlZF9hdCIpLGEoYz17aGFzRWRpdHM6KDAsbi5ndCkoInJldmlld2FibGUucG9zdF92ZXJzaW9uIiwxKSxoaXN0b3J5Q2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5oaXN0b3J5SGVhdCkodGhpcy5zaXRlU2V0dGluZ3MsbmV3IERhdGUoZSkpfSxlZGl0ZWREYXRlOmZ1bmN0aW9uKGUpe3JldHVybigwLHMubG9uZ0RhdGUpKGUpfSxhY3Rpb25zOntzaG93RWRpdEhpc3Rvcnk6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmdldCgicmV2aWV3YWJsZS5wb3N0X2lkIik7dGhpcy5zdG9yZS5maW5kKCJwb3N0IixuKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PSgwLHIuZGVmYXVsdCkoImhpc3RvcnkiLHttb2RlbDplLG1vZGFsQ2xhc3M6Imhpc3RvcnktbW9kYWwifSk7dC5yZWZyZXNoKG4sImxhdGVzdCIpLHQuc2V0KCJwb3N0IixlKSx0LnNldCgidG9waWNDb250cm9sbGVyIixudWxsKX0pfX19LCJoaXN0b3J5Q2xhc3MiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImhpc3RvcnlDbGFzcyIpLGMpLGEoYywiZWRpdGVkRGF0ZSIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZWRpdGVkRGF0ZSIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1oaXN0b3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2ZpbHRlcmVkSGlzdG9yaWVzOigwLHQuZmlsdGVyQnkpKCJoaXN0b3JpZXMiLCJjcmVhdGVkIiwhMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1pdGVtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvb3B0aW9uYWwtc2VydmljZSIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsIkBlbWJlci9zdHJpbmciLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4sbyxyLGkscyxhLGwsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYyxkLHAsbSxmLGgsYixnPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtmdW5jdGlvbiB2KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB5PXt9O2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGUudHlwZSIpLGQ9KDAsdC5kZWZhdWx0KSgicmV2aWV3YWJsZS50b3BpYyIsInJldmlld2FibGUudG9waWNfaWQiLCJyZXZpZXdhYmxlLnJlbW92ZWRfdG9waWNfaWQiKSxwPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nIiwidG9waWNJZCIpLG09KDAsdC5kZWZhdWx0KSgiY2xhaW1FbmFibGVkIiwic2l0ZVNldHRpbmdzLnJldmlld2FibGVfY2xhaW1pbmciLCJyZXZpZXdhYmxlLmNsYWltZWRfYnkiKSxmPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nIiwicmV2aWV3YWJsZS5jbGFpbWVkX2J5IiksaD0oMCx0LmRlZmF1bHQpKCJyZXZpZXdhYmxlLnR5cGUiKSx2KGI9e2FkbWluVG9vbHM6KDAscy5kZWZhdWx0KSgpLHRhZ05hbWU6IiIsdXBkYXRpbmc6bnVsbCxlZGl0aW5nOiExLF91cGRhdGVzOm51bGwsY3VzdG9tQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGFzaGVyaXplKCl9LHRvcGljSWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiZlLmlkfHx0fHxufSxjbGFpbUVuYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iZGlzYWJsZWQiIT09ZSYmISF0fSxjYW5QZXJmb3JtOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZXx8KG4/bi5pZD09PXRoaXMuY3VycmVudFVzZXIuaWQ6InJlcXVpcmVkIiE9PXQpfSxjbGFpbUhlbHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD90LmlkPT09dGhpcy5jdXJyZW50VXNlci5pZD9JMThuLnQoInJldmlldy5jbGFpbV9oZWxwLmNsYWltZWRfYnlfeW91Iik6STE4bi50KCJyZXZpZXcuY2xhaW1faGVscC5jbGFpbWVkX2J5X290aGVyIix7dXNlcm5hbWU6dC51c2VybmFtZX0pOiJvcHRpb25hbCI9PT1lP0kxOG4udCgicmV2aWV3LmNsYWltX2hlbHAub3B0aW9uYWwiKTpJMThuLnQoInJldmlldy5jbGFpbV9oZWxwLnJlcXVpcmVkIil9LHJldmlld2FibGVDb21wb25lbnQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09eVtlXSlyZXR1cm4geVtlXTt2YXIgdD0oMCxsLmRhc2hlcml6ZSkoZSksbj0iY29tcG9uZW50cy8iK3QsaT1FbWJlci5URU1QTEFURVNbbl18fEVtYmVyLlRFTVBMQVRFU1siamF2YXNjcmlwdHMvIituXTtyZXR1cm4geVtlXT1pP3Q6bnVsbCx5W2VdfSxfcGVyZm9ybUNvbmZpcm1lZDpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9aS5nZXQoInZlcnNpb24iKTtyZXR1cm4gbi5zZXQoInVwZGF0aW5nIiwhMCksKDAsby5hamF4KSgiL3Jldmlldy8iK2kuaWQrIi9wZXJmb3JtLyIrdC5pZCsiP3ZlcnNpb249IitlLHttZXRob2Q6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmV2aWV3YWJsZV9wZXJmb3JtX3Jlc3VsdDtpZih2b2lkIDAhPT10LnJldmlld2FibGVfY291bnQmJm4uY3VycmVudFVzZXIuc2V0KCJyZXZpZXdhYmxlX2NvdW50IixlLnJldmlld2FibGVfY291bnQpLCFuLmF0dHJzLnJlbW92ZSlyZXR1cm4gbi5zdG9yZS5maW5kKCJyZXZpZXdhYmxlIixpLmlkKTtuLmF0dHJzLnJlbW92ZSh0LnJlbW92ZV9yZXZpZXdhYmxlX2lkcyl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJ1cGRhdGluZyIsITEpfSl9dmFyIG49dGhpcyxpPXRoaXMucmV2aWV3YWJsZTtpZih0LmNsaWVudF9hY3Rpb24pe3ZhciBzPXRoaXNbImNsaWVudCIrdC5jbGllbnRfYWN0aW9uLmNsYXNzaWZ5KCldO3JldHVybiBzP3MuY2FsbCh0aGlzLGksZSk6dm9pZCBjb25zb2xlLmVycm9yKCJObyBoYW5kbGVyIGZvciAiK3QuY2xpZW50X2FjdGlvbisiIGZvdW5kIil9cmV0dXJuIGUoKX0sY2xpZW50U3VzcGVuZDpmdW5jdGlvbihlLHQpe3RoaXMuX3BlbmFsaXplKCJzaG93U3VzcGVuZE1vZGFsIixlLHQpfSxjbGllbnRTaWxlbmNlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fcGVuYWxpemUoInNob3dTaWxlbmNlTW9kYWwiLGUsdCl9LF9wZW5hbGl6ZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcy5hZG1pblRvb2xzO2lmKGkpe3ZhciBzPXQuZ2V0KCJ0YXJnZXRfY3JlYXRlZF9ieSIpLG89dC5nZXQoInBvc3RfaWQiKSxyPXQuZ2V0KCJyYXciKTtyZXR1cm4gaVtlXShzLHtwb3N0SWQ6byxwb3N0RWRpdDpyLGJlZm9yZTpufSl9fSxhY3Rpb25zOntleHBsYWluUmV2aWV3YWJsZTpmdW5jdGlvbihlKXsoMCxhLmRlZmF1bHQpKCJleHBsYWluLXJldmlld2FibGUiLHt0aXRsZToicmV2aWV3LmV4cGxhaW4udGl0bGUiLG1vZGVsOmV9KX0sZWRpdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJlZGl0aW5nIiwhMCksdGhpcy5fdXBkYXRlcz17cGF5bG9hZDp7fX19LGNhbmNlbEVkaXQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiZWRpdGluZyIsITEpfSxzYXZlRWRpdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj10aGlzLl91cGRhdGVzO3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07Im9iamVjdCI9PT0odm9pZCAwPT09dD8idW5kZWZpbmVkIjpnKHQpKSYmMD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmZGVsZXRlIG5bZV19KSx0aGlzLnNldCgidXBkYXRpbmciLCEwKSx0aGlzLnJldmlld2FibGUudXBkYXRlKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoImVkaXRpbmciLCExKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInVwZGF0aW5nIiwhMSl9KX0sY2F0ZWdvcnlDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PSh0PWkuZGVmYXVsdC5maW5kQnlJZChlKSl8fGkuZGVmYXVsdC5maW5kVW5jYXRlZ29yaXplZCgpO3RoaXMuX3VwZGF0ZXMuY2F0ZWdvcnlfaWQ9dC5pZH0sdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7KDAsdS5zZXQpKHRoaXMuX3VwZGF0ZXMsZSx0LnRhcmdldC52YWx1ZSl9LHBlcmZvcm06ZnVuY3Rpb24odCl7dmFyIG49dGhpcztpZighdGhpcy51cGRhdGluZyl7dmFyIGU9dC5nZXQoImNvbmZpcm1fbWVzc2FnZSIpO2lmKCFlKXJldHVybiB0aGlzLl9wZXJmb3JtQ29uZmlybWVkKHQpO2Jvb3Rib3guY29uZmlybShlLGZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIG4uX3BlcmZvcm1Db25maXJtZWQodCl9KX19fX0sImN1c3RvbUNsYXNzIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJjdXN0b21DbGFzcyIpLGIpLHYoYiwidG9waWNJZCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwidG9waWNJZCIpLGIpLHYoYiwiY2xhaW1FbmFibGVkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJjbGFpbUVuYWJsZWQiKSxiKSx2KGIsImNhblBlcmZvcm0iLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblBlcmZvcm0iKSxiKSx2KGIsImNsYWltSGVscCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY2xhaW1IZWxwIiksYiksdihiLCJyZXZpZXdhYmxlQ29tcG9uZW50IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJyZXZpZXdhYmxlQ29tcG9uZW50IiksYiksYikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLXF1ZXVlZC1wb3N0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3Nob3dSYXdFbWFpbDpmdW5jdGlvbigpeygwLG4uZGVmYXVsdCkoInJhdy1lbWFpbCIpLnNldCgicmF3RW1haWwiLHRoaXMucmV2aWV3YWJsZS5wYXlsb2FkLnJhd19lbWFpbCl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLXVzZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4uZGVmYXVsdCkoInJldmlld2FibGUudXNlcl9maWVsZHMiKSxvPXM9e3VzZXJGaWVsZHM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2l0ZS5jb2xsZWN0VXNlckZpZWxkcyhlKX19LHI9InVzZXJGaWVsZHMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ1c2VyRmllbGRzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2Nyb2xsLXRyYWNrZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsaW5nIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse2RpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgidHJhY2tlck5hbWUiLCJzY3JvbGwtdHJhY2tlci0iK3RoaXMubmFtZSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOnRoaXMubmFtZX0pfSxkaWRSZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5zZXNzaW9uLmdldCh0aGlzLnRyYWNrZXJOYW1lKTtlJiYwPD1lLnBvc2l0aW9uJiZlLnRhZz09PXRoaXMudGFnJiYoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZS5wb3NpdGlvbisxKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy51bmJpbmRTY3JvbGxpbmcodGhpcy5uYW1lKX0sc2Nyb2xsZWQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXNzaW9uLnNldCh0aGlzLnRyYWNrZXJOYW1lLHtwb3NpdGlvbjokKHdpbmRvdykuc2Nyb2xsVG9wKCksdGFnOnRoaXMudGFnfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3Njcm9sbGluZy1wb3N0LXN0cmVhbSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Qtc3RyZWFtIiwiZGlzY291cnNlL2xpYi9zYWZhcmktaGFja3MiLCJkaXNjb3Vyc2UvbGliL29mZnNldC1jYWxjdWxhdG9yIl0sZnVuY3Rpb24oZSxSLG4sdCxxLEgsSyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7d2lkZ2V0OiJwb3N0LXN0cmVhbSIsX3RvcFZpc2libGU6bnVsbCxfYm90dG9tVmlzaWJsZTpudWxsLF9jdXJyZW50UG9zdDpudWxsLF9jdXJyZW50VmlzaWJsZTpudWxsLF9jdXJyZW50UGVyY2VudDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFByb3BlcnRpZXMoInBvc3RzIiwiY2FuQ3JlYXRlUG9zdCIsIm11bHRpU2VsZWN0IiwiZ2FwcyIsInNlbGVjdGVkUXVlcnkiLCJzZWxlY3RlZFBvc3RzQ291bnQiLCJzZWFyY2hTZXJ2aWNlIiwic2hvd1JlYWRJbmRpY2F0b3IiKX0sYmVmb3JlUGF0Y2g6ZnVuY3Rpb24oKXt2YXIgZT0kKGRvY3VtZW50KTt0aGlzLnByZXZIZWlnaHQ9ZS5oZWlnaHQoKSx0aGlzLnByZXZTY3JvbGxUb3A9ZS5zY3JvbGxUb3AoKX0sYWZ0ZXJQYXRjaDpmdW5jdGlvbigpe3ZhciBlPSQoZG9jdW1lbnQpLHQ9ZS5oZWlnaHQoKSxuPWUuc2Nyb2xsVG9wKCk7dGhpcy5wcmV2SGVpZ2h0PT09dCYmbiE9PXRoaXMucHJldlNjcm9sbFRvcCYmZS5zY3JvbGxUb3AodGhpcy5wcmV2U2Nyb2xsVG9wKX0sc2Nyb2xsZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKCF0aGlzLmlzRGVzdHJveWVkJiYhdGhpcy5pc0Rlc3Ryb3lpbmcmJiEoMCxILmlzV29ya2Fyb3VuZEFjdGl2ZSkoKSl7dmFyIGU9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCgwLDApO2lmKCFlfHwiSUZSQU1FIiE9PWUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXt2YXIgdD0kKHdpbmRvdyksbj13aW5kb3cuaW5uZXJIZWlnaHQ/d2luZG93LmlubmVySGVpZ2h0OnQuaGVpZ2h0KCkscz1NYXRoLnJvdW5kKDUqbiksbz1bXSxyPVtdLGE9dC5zY3JvbGxUb3AoKSxsPSQoIi5wb3N0cy13cmFwcGVyIikub2Zmc2V0KCkudG9wLHU9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm9uc2NyZWVuLXBvc3QsIC5jbG9ha2VkLXBvc3QiKSksYz1mdW5jdGlvbihlLHQsbixpLHMpe2lmKHM8aSlyZXR1cm4gaTtmb3IoO2k8czspe3ZhciBvPU1hdGguZmxvb3IoKGkrcykvMikscj0kKGVbb10pO3Q8ci5vZmZzZXQoKS50b3AtbityLmhlaWdodCgpP3M9by0xOmk9bysxfXJldHVybiBpfSh1LGEtcyxsLDAsdS5sZW5ndGgtMSksZD1hK24scD1kK3MsbT0kKCJib2R5IikuaGVpZ2h0KCk7bTxkJiYoZD1tKSxtPHAmJihwPW0pO2Zvcih2YXIgZj1udWxsLGg9bnVsbCxiPSgwLEsuZGVmYXVsdCkoKSxnPU1hdGguY2VpbChhK2IrNSksdj0hMCx5PWMsXz0wO3k8dS5sZW5ndGg7KXt2YXIgdz11W3ldLHg9JCh3KTtpZigheClicmVhazt2YXIgaz14Lm9mZnNldCgpLnRvcCxQPXgub3V0ZXJIZWlnaHQoITApLGo9TWF0aC5jZWlsKGsrUCksdj12JiZrPGc7aWYocDxrKWJyZWFrO2E8PWomJms8PWQmJm8ucHVzaCh5KSxudWxsPT09ZiYmKGs8PWcmJmc8PWp8fF88PWcmJmc8PWspJiYoaD0oZy1rKS9QLGY9eSksXz1qLHIucHVzaCh5KSx5Kyt9diYmKG51bGw9PT1oJiYoaD0xKSxudWxsPT09ZiYmKGY9eS0xKSk7dmFyIFQsRSxPLFMsQyxNLEQsSSxMLEE9dGhpcy5wb3N0cyxOPWZ1bmN0aW9uKGUpe3JldHVybiBpLnF1ZXVlUmVyZW5kZXIoZSl9O28ubGVuZ3RoPyhUPUEub2JqZWN0QXQob1swXSksdGhpcy5fdG9wVmlzaWJsZSE9PVQmJih0aGlzLl90b3BWaXNpYmxlPVQsRT0kKCJib2R5IiksTz11W29bMF1dLFM9Ty5pZCxDPSQoTykucG9zaXRpb24oKSxNPUM/RS5zY3JvbGxUb3AoKS1DLnRvcDowLHRoaXMudG9wVmlzaWJsZUNoYW5nZWQoe3Bvc3Q6VCxyZWZyZXNoOmZ1bmN0aW9uKCl7TihmdW5jdGlvbigpe3ZhciBlLHQ9JCgiIyIrUykucG9zaXRpb24oKTt0JiZ0LnRvcCYmKGU9dC50b3ArTSwkKCJodG1sLCBib2R5Iikuc2Nyb2xsVG9wKGUpLCgwLFIubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJCgiaHRtbCwgYm9keSIpLnNjcm9sbFRvcChlKX0pKX0pfX0pKSxEPUEub2JqZWN0QXQob1tvLmxlbmd0aC0xXSksdGhpcy5fYm90dG9tVmlzaWJsZSE9PUQmJih0aGlzLl9ib3R0b21WaXNpYmxlPUQsdGhpcy5ib3R0b21WaXNpYmxlQ2hhbmdlZCh7cG9zdDpELHJlZnJlc2g6Tn0pKSwoST10aGlzLl9jdXJyZW50UG9zdCE9PWYpJiYodGhpcy5fY3VycmVudFBvc3Q9ZixMPUEub2JqZWN0QXQoZiksdGhpcy5jdXJyZW50UG9zdENoYW5nZWQoe3Bvc3Q6TH0pKSxudWxsIT09aCYmKGg9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGgpKSwhSSYmdGhpcy5fY3VycmVudFBlcmNlbnQ9PT1ofHwodGhpcy5fY3VycmVudFBlcmNlbnQ9aCx0aGlzLmN1cnJlbnRQb3N0U2Nyb2xsZWQoe3BlcmNlbnQ6aH0pKSkpOih0aGlzLl90b3BWaXNpYmxlPW51bGwsdGhpcy5fYm90dG9tVmlzaWJsZT1udWxsLHRoaXMuX2N1cnJlbnRQb3N0PW51bGwsdGhpcy5fY3VycmVudFBlcmNlbnQ9bnVsbCk7dmFyIHo9W10sVT1bXSxGPXRoaXMuX3ByZXZpb3VzbHlOZWFyYnksQj17fTtyLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9QS5vYmplY3RBdChlKSxuPXQucG9zdF9udW1iZXI7ZGVsZXRlIEZbbl0sLTEhPT1vLmluZGV4T2YoZSkmJih6LnB1c2gobiksdC5yZWFkJiZVLnB1c2gobikpLEJbbl09dCwoMCxxLnVuY2xvYWspKHQsaSl9KSxPYmplY3QudmFsdWVzKEYpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuKDAscS5jbG9haykoZSxpKX0pLHRoaXMuX3ByZXZpb3VzbHlOZWFyYnk9Qix0aGlzLnNjcmVlblRyYWNrLnNldE9uc2NyZWVuKHosVSl9fX0sX3Njcm9sbFRyaWdnZXJlZDpmdW5jdGlvbigpeygwLFIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5zY3JvbGxlZCl9LF9wb3N0ZWQ6ZnVuY3Rpb24odCl7dGhpcy5xdWV1ZVJlcmVuZGVyKGZ1bmN0aW9uKCl7dmFyIGU7dCYmKGU9dC5nZXQoInBvc3RfbnVtYmVyIiksbi5kZWZhdWx0Lmp1bXBUb1Bvc3QoZSx7c2tpcElmT25TY3JlZW46ITB9KSl9KX0sX3JlZnJlc2g6ZnVuY3Rpb24oZSl7ZSYmKGUuaWQ/KHRoaXMuZGlydHlLZXlzLmtleURpcnR5KCJwb3N0LSIrZS5pZCksZS5yZWZyZXNoTGlrZXMmJnRoaXMuZGlydHlLZXlzLmtleURpcnR5KCJwb3N0LW1lbnUtIitlLmlkLHtvblJlZnJlc2g6InJlZnJlc2hMaWtlcyJ9KSxlLnJlZnJlc2hSZWFkZXJzJiZ0aGlzLmRpcnR5S2V5cy5rZXlEaXJ0eSgicG9zdC1tZW51LSIrZS5pZCx7b25SZWZyZXNoOiJyZWZyZXNoUmVhZGVycyJ9KSk6ZS5mb3JjZSYmdGhpcy5kaXJ0eUtleXMuZm9yY2VBbGwoKSksdGhpcy5xdWV1ZVJlcmVuZGVyKCl9LF9kZWJvdW5jZWRTY3JvbGw6ZnVuY3Rpb24oKXsoMCxSLmRlYm91bmNlKSh0aGlzLHRoaXMuX3Njcm9sbFRyaWdnZXJlZCwxMCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmdW5jdGlvbiB0KCl7cmV0dXJuKDAsUi5kZWJvdW5jZSkoZSxlLl9zY3JvbGxUcmlnZ2VyZWQsMTApfXRoaXMuX3ByZXZpb3VzbHlOZWFyYnk9e30sdGhpcy5hcHBFdmVudHMub24oInBvc3Qtc3RyZWFtOnJlZnJlc2giLHRoaXMsIl9kZWJvdW5jZWRTY3JvbGwiKSwkKGRvY3VtZW50KS5iaW5kKCJ0b3VjaG1vdmUucG9zdC1zdHJlYW0iLHQpLCQod2luZG93KS5iaW5kKCJzY3JvbGwucG9zdC1zdHJlYW0iLHQpLHRoaXMuX3Njcm9sbFRyaWdnZXJlZCgpLHRoaXMuYXBwRXZlbnRzLm9uKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHRoaXMsIl9wb3N0ZWQiKSwkKHRoaXMuZWxlbWVudCkub24oIm1vdXNlZW50ZXIucG9zdC1zdHJlYW0iLCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIsZnVuY3Rpb24oZSl7JCgiYnV0dG9uLndpZGdldC1idXR0b24iKS5yZW1vdmVDbGFzcygiZC1ob3ZlciIpLCQoZS50YXJnZXQpLmFkZENsYXNzKCJkLWhvdmVyIil9KSwkKHRoaXMuZWxlbWVudCkub24oIm1vdXNlbGVhdmUucG9zdC1zdHJlYW0iLCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIsZnVuY3Rpb24oKXskKCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJkLWhvdmVyIil9KSx0aGlzLmFwcEV2ZW50cy5vbigicG9zdC1zdHJlYW06cmVmcmVzaCIsdGhpcywiX3JlZnJlc2giKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQoZG9jdW1lbnQpLnVuYmluZCgidG91Y2htb3ZlLnBvc3Qtc3RyZWFtIiksJCh3aW5kb3cpLnVuYmluZCgic2Nyb2xsLnBvc3Qtc3RyZWFtIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix0aGlzLCJfZGVib3VuY2VkU2Nyb2xsIiksJCh0aGlzLmVsZW1lbnQpLm9mZigibW91c2VlbnRlci5wb3N0LXN0cmVhbSIpLCQodGhpcy5lbGVtZW50KS5vZmYoIm1vdXNlbGVhdmUucG9zdC1zdHJlYW0iKSx0aGlzLmFwcEV2ZW50cy5vZmYoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHRoaXMsIl9yZWZyZXNoIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHRoaXMsIl9wb3N0ZWQiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdSxjLGQscCxtLGYsaCxiLGcsdix5LHcseCxrO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUD0vKChbXiIgXHRcblx4MEJcZlxyXSspPygoIlteIl0rIik/KSkvZyxqPS9eKHVzZXI6fEApL2dpLFQ9L14oY2F0ZWdvcnk6fCMpL2dpLEU9L15ncm91cDovZ2ksTz0vXmJhZGdlOi9naSxTPS9eKHRhZ3M/OnwjKD89W2EtejAtOVwtXSs6OnRhZykpL2dpLEM9L14oaW58d2l0aCk6L2dpLE09L15zdGF0dXM6L2dpLEQ9L15taW5fcG9zdF9jb3VudDovZ2ksST0vXihiZWZvcmV8YWZ0ZXIpOi9naSxMPS8oXih0YWdzPzp8Iyg/PVthLXowLTlcLV0rOjp0YWcpKXw6OnRhZ1xzPyQpL2dpLEE9L14oaW58d2l0aCk6KHBvc3RlZHxjcmVhdGVkfHdhdGNoaW5nfHRyYWNraW5nfGJvb2ttYXJrc3xmaXJzdHxwaW5uZWR8dW5waW5uZWR8d2lraXx1bnNlZW58aW1hZ2UpL2dpLE49L15pbjpsaWtlcy9naSx6PS9eaW46dGl0bGUvZ2ksVT0vXmluOnBlcnNvbmFsL2dpLEY9L15pbjpzZWVuL2dpLEI9L14oXCNbYS16QS1aMC05XC06XSspL2dpLFI9L14oY2F0ZWdvcnk6WzAtOV0rKS9naSxxPS9eKGJlZm9yZXxhZnRlcikvZ2ksSD17aW1hZ2VzOiJ3aXRoIn07ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHU9KDAsaS5vYnNlcnZlcykoInNlYXJjaFRlcm0iKSxjPSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLnVzZXJuYW1lIiksZD0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIpLHA9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuZ3JvdXAiKSxtPSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLmJhZGdlIiksZj0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy50YWdzIiwic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIiksaD0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5pbiIpLGI9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5saWtlcyIpLGc9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5wZXJzb25hbCIpLHY9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5zZWVuIikseT0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLnRpdGxlIiksdz0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5zdGF0dXMiKSx4PSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLm1pbl9wb3N0X2NvdW50IiksbChrPXtjbGFzc05hbWVzOlsic2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiXSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5pbk9wdGlvbnNGb3JVc2Vycz1be25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy51bnNlZW4iKSx2YWx1ZToidW5zZWVuIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5wb3N0ZWQiKSx2YWx1ZToicG9zdGVkIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5jcmVhdGVkIiksdmFsdWU6ImNyZWF0ZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLndhdGNoaW5nIiksdmFsdWU6IndhdGNoaW5nIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy50cmFja2luZyIpLHZhbHVlOiJ0cmFja2luZyJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuYm9va21hcmtzIiksdmFsdWU6ImJvb2ttYXJrcyJ9XSx0aGlzLmluT3B0aW9uc0ZvckFsbD1be25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5maXJzdCIpLHZhbHVlOiJmaXJzdCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMucGlubmVkIiksdmFsdWU6InBpbm5lZCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMudW5waW5uZWQiKSx2YWx1ZToidW5waW5uZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLndpa2kiKSx2YWx1ZToid2lraSJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuaW1hZ2VzIiksdmFsdWU6ImltYWdlcyJ9XSx0aGlzLnN0YXR1c09wdGlvbnM9W3tuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnN0YXR1c2VzLm9wZW4iKSx2YWx1ZToib3BlbiJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnN0YXR1c2VzLmNsb3NlZCIpLHZhbHVlOiJjbG9zZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5wdWJsaWMiKSx2YWx1ZToicHVibGljIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuc3RhdHVzZXMuYXJjaGl2ZWQiKSx2YWx1ZToiYXJjaGl2ZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5ub3JlcGxpZXMiKSx2YWx1ZToibm9yZXBsaWVzIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuc3RhdHVzZXMuc2luZ2xlX3VzZXIiKSx2YWx1ZToic2luZ2xlX3VzZXIifV0sdGhpcy5wb3N0VGltZU9wdGlvbnM9W3tuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnBvc3QudGltZS5iZWZvcmUiKSx2YWx1ZToiYmVmb3JlIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQucG9zdC50aW1lLmFmdGVyIiksdmFsdWU6ImFmdGVyIn1dLHRoaXMuX2luaXQoKSwoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBlLl91cGRhdGUoKX0pfSxfdXBkYXRlT3B0aW9uczpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZSgpLCgwLHQuZGVib3VuY2UpKHRoaXMsdGhpcy5fdXBkYXRlLDI1MCl9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzZWFyY2hlZFRlcm1zOnt1c2VybmFtZToiIixjYXRlZ29yeToiIixncm91cDpbXSxiYWRnZTpbXSx0YWdzOltdLGluOiIiLHNwZWNpYWw6e2luOnt0aXRsZTohMSxsaWtlczohMSxwZXJzb25hbDohMSxzZWVuOiExfSxhbGxfdGFnczohMX0sc3RhdHVzOiIiLG1pbl9wb3N0X2NvdW50OiIiLHRpbWU6e3doZW46ImJlZm9yZSIsZGF5czoiIn19LGluT3B0aW9uczp0aGlzLmN1cnJlbnRVc2VyP3RoaXMuaW5PcHRpb25zRm9yVXNlcnMuY29uY2F0KHRoaXMuaW5PcHRpb25zRm9yQWxsKTp0aGlzLmluT3B0aW9uc0ZvckFsbH0pfSxfdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZWFyY2hUZXJtPyh0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlKCJzZWFyY2hlZFRlcm1zLnVzZXJuYW1lIixqKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yQ2F0ZWdvcnkoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yR3JvdXAoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yQmFkZ2UoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yVGFncygpLHRoaXMuc2V0U2VhcmNoZWRUZXJtVmFsdWUoInNlYXJjaGVkVGVybXMuaW4iLEMsQSksdGhpcy5zZXRTZWFyY2hlZFRlcm1TcGVjaWFsSW5WYWx1ZSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLmxpa2VzIixOKSx0aGlzLnNldFNlYXJjaGVkVGVybVNwZWNpYWxJblZhbHVlKCJzZWFyY2hlZFRlcm1zLnNwZWNpYWwuaW4udGl0bGUiLHopLHRoaXMuc2V0U2VhcmNoZWRUZXJtU3BlY2lhbEluVmFsdWUoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5wZXJzb25hbCIsVSksdGhpcy5zZXRTZWFyY2hlZFRlcm1TcGVjaWFsSW5WYWx1ZSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLnNlZW4iLEYpLHRoaXMuc2V0U2VhcmNoZWRUZXJtVmFsdWUoInNlYXJjaGVkVGVybXMuc3RhdHVzIixNKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yUG9zdFRpbWUoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlKCJzZWFyY2hlZFRlcm1zLm1pbl9wb3N0X2NvdW50IixEKSk6dGhpcy5faW5pdCgpfSxmaW5kU2VhcmNoVGVybXM6ZnVuY3Rpb24oKXt2YXIgZT0oMCxzLmVzY2FwZUV4cHJlc3Npb24pKHRoaXMuc2VhcmNoVGVybSk7aWYoIWUpcmV0dXJuW107dmFyIHQ9ZS5tYXRjaChQKTtpZighdClyZXR1cm5bXTt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpezAhPT1lLmxlbmd0aCYmbi5wdXNoKGUpfSksbn0sZmlsdGVyQmxvY2tzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZFNlYXJjaFRlcm1zKCk7aWYoIWUpcmV0dXJuW107dmFyIG49W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXstMSE9PWUuc2VhcmNoKHQpJiZuLnB1c2goZSl9KSxufSxzZXRTZWFyY2hlZFRlcm1WYWx1ZTpmdW5jdGlvbihlLHQsbil7dmFyIGkscz0ocz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PW4/bjpudWxsKXx8dCxvPXRoaXMuZmlsdGVyQmxvY2tzKHMpLHI9dGhpcy5nZXQoZSk7MCE9PW8ubGVuZ3RoP3IhPT0oaT1vWzBdLnJlcGxhY2UodCwiIikpJiZ0aGlzLnNldChlLGkpOnImJjAhPT1yLmxlbmd0aCYmdGhpcy5zZXQoZSwiIil9LHNldFNlYXJjaGVkVGVybVNwZWNpYWxJblZhbHVlOmZ1bmN0aW9uKGUsdCl7MCE9PXRoaXMuZmlsdGVyQmxvY2tzKHQpLmxlbmd0aD8hMCE9PXRoaXMuZ2V0KGUpJiZ0aGlzLnNldChlLCEwKTohMSE9PXRoaXMuZ2V0KGUpJiZ0aGlzLnNldChlLCExKX0sc2V0U2VhcmNoZWRUZXJtVmFsdWVGb3JDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbz10aGlzLmZpbHRlckJsb2NrcyhUKTswIT09by5sZW5ndGg/KGU9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiKSwxPCh0PW9bMF0ucmVwbGFjZShULCIiKS5zcGxpdCgiOiIpKS5sZW5ndGg/KG49YS5kZWZhdWx0LmZpbmRCeVNsdWcodFsxXSx0WzBdKSwoIWUmJm58fGUmJm4mJmUuaWQhPT1uLmlkKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiLG4pKTppc05hTih0KT8oaT1hLmRlZmF1bHQuZmluZFNpbmdsZUJ5U2x1Zyh0WzBdKSwoIWUmJml8fGUmJmkmJmUuaWQhPT1pLmlkKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiLGkpKToocz1hLmRlZmF1bHQuZmluZEJ5SWQodFswXSksKCFlJiZzfHxlJiZzJiZlLmlkIT09cy5pZCkmJnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLmNhdGVnb3J5IixzKSkpOnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLmNhdGVnb3J5IiwiIil9LHNldFNlYXJjaGVkVGVybVZhbHVlRm9yR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuZmlsdGVyQmxvY2tzKEUpLG49dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiKTswIT09dC5sZW5ndGg/KF8uaXNBcnJheShuKT9uWzBdOm4pIT09KGU9dFswXS5yZXBsYWNlKEUsIiIpKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiLDAhPT1lLmxlbmd0aD9bZV06W10pOjAhPT1uLmxlbmd0aCYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiLFtdKX0sc2V0U2VhcmNoZWRUZXJtVmFsdWVGb3JCYWRnZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5maWx0ZXJCbG9ja3MoTyksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIpOzAhPT10Lmxlbmd0aD8oXy5pc0FycmF5KG4pP25bMF06bikhPT0oZT10WzBdLnJlcGxhY2UoTywiIikpJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIsMCE9PWUubGVuZ3RoP1tlXTpbXSk6MCE9PW4ubGVuZ3RoJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIsW10pfSxzZXRTZWFyY2hlZFRlcm1WYWx1ZUZvclRhZ3M6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzO3RoaXMuc2l0ZVNldHRpbmdzLnRhZ2dpbmdfZW5hYmxlZCYmKGU9dGhpcy5maWx0ZXJCbG9ja3MoUyksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50YWdzIiksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIiksMCE9PWUubGVuZ3RoPyhpPW4/IisiOiIsIiwoXy5pc0FycmF5KHQpP3Quam9pbihpKTp0KSE9PShzPWVbMF0ucmVwbGFjZShMLCIiKSkmJnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLnRhZ3MiLDAhPT1zLmxlbmd0aD9zLnNwbGl0KGkpOltdKSk6MCE9PXQubGVuZ3RoJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50YWdzIixbXSkpfSxzZXRTZWFyY2hlZFRlcm1WYWx1ZUZvclBvc3RUaW1lOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvPXRoaXMuZmlsdGVyQmxvY2tzKEkpOzAhPT1vLmxlbmd0aD8oZT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iKSx0PW9bMF0ubWF0Y2gocSlbMF0sbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiKSxpPW9bMF0ucmVwbGFjZShJLCIiKSxzPXt9LGUhPT10JiYoc1sic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iXT10KSxuIT09aSYmKHNbInNlYXJjaGVkVGVybXMudGltZS5kYXlzIl09aSksdGhpcy5zZXRQcm9wZXJ0aWVzKHMpKTp0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiLCIiKX0sdXBkYXRlU2VhcmNoVGVybUZvclVzZXJuYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maWx0ZXJCbG9ja3MoaiksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy51c2VybmFtZSIpLG49dGhpcy5zZWFyY2hUZXJtfHwiIjt0JiYwIT09dC5sZW5ndGg/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCJAIit0KTpuKz0iIEAiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciBlLHQsbixpPXRoaXMuZmlsdGVyQmxvY2tzKFQpLHM9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiKSxvPXRoaXMuc2VhcmNoVGVybXx8IiIscj0wIT09aS5sZW5ndGg/aVswXS5tYXRjaChCKTpudWxsLGE9MCE9PWkubGVuZ3RoP2lbMF0ubWF0Y2goUik6bnVsbDtzPyhlPXMuaWQsdD1zLnNsdWcscy5wYXJlbnRDYXRlZ29yeT8obj1zLnBhcmVudENhdGVnb3J5LnNsdWcscj9vPW8ucmVwbGFjZShyWzBdLCIjIituKyI6Iit0KTphP289by5yZXBsYWNlKGFbMF0sImNhdGVnb3J5OiIrZSk6bys9IiAjIituKyI6Iit0KTpyP289by5yZXBsYWNlKHJbMF0sIiMiK3QpOmE/bz1vLnJlcGxhY2UoYVswXSwiY2F0ZWdvcnk6IitlKTpvKz0iICMiK3QpOihyJiYobz1vLnJlcGxhY2UoclswXSwiIikpLGEmJihvPW8ucmVwbGFjZShhWzBdLCIiKSkpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixvLnRyaW0oKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JHcm91cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEUpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiKSxuPXRoaXMuc2VhcmNoVGVybXx8IiI7dCYmMCE9PXQubGVuZ3RoPygwIT09ZS5sZW5ndGg/bj1uLnJlcGxhY2UoZVswXSwiIGdyb3VwOiIrdCk6bis9IiBncm91cDoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4pKTowIT09ZS5sZW5ndGgmJihuPW4ucmVwbGFjZShlWzBdLCIiKSx0aGlzLnNldCgic2VhcmNoVGVybSIsbi50cmltKCkpKX0sdXBkYXRlU2VhcmNoVGVybUZvckJhZGdlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maWx0ZXJCbG9ja3MoTyksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIpLG49dGhpcy5zZWFyY2hUZXJtfHwiIjt0JiYwIT09dC5sZW5ndGg/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCIgYmFkZ2U6Iit0KTpuKz0iIGJhZGdlOiIrdCx0aGlzLnNldCgic2VhcmNoVGVybSIsbikpOjAhPT1lLmxlbmd0aCYmKG49bi5yZXBsYWNlKGVbMF0sIiIpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixuLnRyaW0oKSkpfSx1cGRhdGVTZWFyY2hUZXJtRm9yVGFnczpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzLmZpbHRlckJsb2NrcyhTKSxpPXRoaXMuZ2V0KCJzZWFyY2hlZFRlcm1zLnRhZ3MiKSxzPXRoaXMuc2VhcmNoVGVybXx8IiIsbz10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIik7aSYmMCE9PWkubGVuZ3RoPyhlPW8/IisiOiIsIix0PWkuam9pbihlKSwwIT09bi5sZW5ndGg/cz1zLnJlcGxhY2UoblswXSwidGFnczoiK3QpOnMrPSIgdGFnczoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSk6MCE9PW4ubGVuZ3RoJiYocz1zLnJlcGxhY2UoblswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JJbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEEpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuaW4iKSxuPSJpbiI7dCBpbiBIJiYobj1IW3RdKTt2YXIgaT10aGlzLnNlYXJjaFRlcm18fCIiO3Q/KDAhPT1lLmxlbmd0aD9pPWkucmVwbGFjZShlWzBdLG4rIjoiK3QpOmkrPSIgIituKyI6Iit0LHRoaXMuc2V0KCJzZWFyY2hUZXJtIixpLnRyaW0oKSkpOjAhPT1lLmxlbmd0aCYmKGk9aS5yZXBsYWNlKGUsIiIpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixpLnRyaW0oKSkpfSx1cGRhdGVJblJlZ2V4OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5maWx0ZXJCbG9ja3MoZSksaT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLiIrdCkscz10aGlzLnNlYXJjaFRlcm18fCIiO2k/MD09PW4ubGVuZ3RoJiYocys9IiBpbjoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSk6MCE9PW4ubGVuZ3RoJiYocz1zLnJlcGxhY2UobiwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5MaWtlczpmdW5jdGlvbigpe3RoaXMudXBkYXRlSW5SZWdleChOLCJsaWtlcyIpfSx1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluUGVyc29uYWw6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoVSwicGVyc29uYWwiKX0sdXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJblNlZW46ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoRiwic2VlbiIpfSx1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluVGl0bGU6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoeiwidGl0bGUiKX0sdXBkYXRlU2VhcmNoVGVybUZvclN0YXR1czpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKE0pLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuc3RhdHVzIiksbj10aGlzLnNlYXJjaFRlcm18fCIiO3Q/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCJzdGF0dXM6Iit0KTpuKz0iIHN0YXR1czoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JQb3N0VGltZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5maWx0ZXJCbG9ja3MoSSksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiKSxpPXRoaXMuc2VhcmNoVGVybXx8IiI7bj8oZT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iKSwwIT09dC5sZW5ndGg/aT1pLnJlcGxhY2UodFswXSxlKyI6IituKTppKz0iICIrZSsiOiIrbix0aGlzLnNldCgic2VhcmNoVGVybSIsaS50cmltKCkpKTowIT09dC5sZW5ndGgmJihpPWkucmVwbGFjZSh0WzBdLCIiKSx0aGlzLnNldCgic2VhcmNoVGVybSIsaS50cmltKCkpKX0sdXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEQpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMubWluX3Bvc3RfY291bnQiKSxuPXRoaXMuc2VhcmNoVGVybXx8IiI7dD8oMCE9PWUubGVuZ3RoP249bi5yZXBsYWNlKGVbMF0sIm1pbl9wb3N0X2NvdW50OiIrdCk6bis9IiBtaW5fcG9zdF9jb3VudDoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LGdyb3VwRmluZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBvLmRlZmF1bHQuZmluZEFsbCh7dGVybTplLGlnbm9yZV9hdXRvbWF0aWM6ITF9KX0sYmFkZ2VGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5maW5kQWxsKHtzZWFyY2g6ZX0pfSxhY3Rpb25zOntvbkNoYW5nZVdoZW5UaW1lOmZ1bmN0aW9uKGUpe2UmJih0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iLGUpLHRoaXMudXBkYXRlU2VhcmNoVGVybUZvclBvc3RUaW1lKCkpfSxvbkNoYW5nZVdoZW5EYXRlOmZ1bmN0aW9uKGUpe2UmJih0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiLG1vbWVudChlKS5mb3JtYXQoIllZWVktTU0tREQiKSksdGhpcy51cGRhdGVTZWFyY2hUZXJtRm9yUG9zdFRpbWUoKSl9LG9uQ2hhbmdlQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7ZT90aGlzLnNldCgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIsYS5kZWZhdWx0LmZpbmRCeUlkKGUpKTp0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIsbnVsbCl9fX0sIl91cGRhdGVPcHRpb25zIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJfdXBkYXRlT3B0aW9ucyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclVzZXJuYW1lIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yVXNlcm5hbWUiKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JDYXRlZ29yeSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvckNhdGVnb3J5IiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yR3JvdXAiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JHcm91cCIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvckJhZGdlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yQmFkZ2UiKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JUYWdzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yVGFncyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvckluIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9ySW4iKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5MaWtlcyIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJbkxpa2VzIiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluUGVyc29uYWwiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5QZXJzb25hbCIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJblNlZW4iLFt2XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5TZWVuIiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluVGl0bGUiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5UaXRsZSIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclN0YXR1cyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvclN0YXR1cyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudCIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudCIpLGspLGspKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2VhcmNoLXRleHQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgic2VhcmNoU2VydmljZS5zZWFyY2hDb250ZXh0RW5hYmxlZCIpLHI9KDAsdC5vbikoImRpZEluc2VydEVsZW1lbnQiKSxzKGE9e2F1dG9jb21wbGV0ZToiZGlzY291cnNlIixwbGFjZWhvbGRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iIjpJMThuLnQoInNlYXJjaC5mdWxsX3BhZ2VfdGl0bGUiKX0sYmVjb21lRm9jdXNlZDpmdW5jdGlvbigpe3ZhciBlPSQodGhpcy5lbGVtZW50KTsoMCxpLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlKShlLHRoaXMuc2l0ZVNldHRpbmdzKSx0aGlzLmhhc0F1dG9mb2N1cyYmKCQod2luZG93KS5zY3JvbGxUb3AoMCksZS5mb2N1cygpKX19LCJwbGFjZWhvbGRlciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwicGxhY2Vob2xkZXIiKSxhKSxzKGEsImJlY29tZUZvY3VzZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImJlY29tZUZvY3VzZWQiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NlY29uZC1mYWN0b3ItZm9ybSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInNlY29uZEZhY3Rvck1ldGhvZCIpLHI9KDAsdC5kZWZhdWx0KSgic2Vjb25kRmFjdG9yTWV0aG9kIiksYT0oMCx0LmRlZmF1bHQpKCJzZWNvbmRGYWN0b3JNZXRob2QiLCJpc0xvZ2luIiksbD0oMCx0LmRlZmF1bHQpKCJiYWNrdXBFbmFibGVkIiwic2Vjb25kRmFjdG9yTWV0aG9kIikscyh1PXtzZWNvbmRGYWN0b3JUaXRsZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQOmNhc2UgaS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfdGl0bGUiKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfYmFja3VwX3RpdGxlIil9fSxzZWNvbmRGYWN0b3JEZXNjcmlwdGlvbjpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfZGVzY3JpcHRpb24iKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlNFQ1VSSVRZX0tFWTpyZXR1cm4gSTE4bi50KCJsb2dpbi5zZWN1cml0eV9rZXlfZGVzY3JpcHRpb24iKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfYmFja3VwX2Rlc2NyaXB0aW9uIil9fSxsaW5rVGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiB0P2U9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyJsb2dpbi5zZWNvbmRfZmFjdG9yX2JhY2t1cCI6ImxvZ2luLnNlY29uZF9mYWN0b3IiOmU9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLnVzZSI6InVzZXIuc2Vjb25kX2ZhY3Rvci51c2UifSxzaG93VG9nZ2xlTWV0aG9kTGluazpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0IT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZfSxhY3Rpb25zOnt0b2dnbGVTZWNvbmRGYWN0b3JNZXRob2Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlY29uZEZhY3Rvck1ldGhvZDt0aGlzLnNldCgic2Vjb25kRmFjdG9yVG9rZW4iLCIiKSxlPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUD90aGlzLnNldCgic2Vjb25kRmFjdG9yTWV0aG9kIixpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5CQUNLVVBfQ09ERSk6dGhpcy5zZXQoInNlY29uZEZhY3Rvck1ldGhvZCIsaS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUCl9fX0sInNlY29uZEZhY3RvclRpdGxlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzZWNvbmRGYWN0b3JUaXRsZSIpLHUpLHModSwic2Vjb25kRmFjdG9yRGVzY3JpcHRpb24iLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNlY29uZEZhY3RvckRlc2NyaXB0aW9uIiksdSkscyh1LCJsaW5rVGV4dCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwibGlua1RleHQiKSx1KSxzKHUsInNob3dUb2dnbGVNZXRob2RMaW5rIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzaG93VG9nZ2xlTWV0aG9kTGluayIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2Vjb25kLWZhY3Rvci1pbnB1dCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJzZWNvbmRGYWN0b3JNZXRob2QiKSxyPSgwLHQuZGVmYXVsdCkoInNlY29uZEZhY3Rvck1ldGhvZCIpLGE9KDAsdC5kZWZhdWx0KSgic2Vjb25kRmFjdG9yTWV0aG9kIikscyhsPXt0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUD8idGVsIjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/InRleHQiOnZvaWQgMH0scGF0dGVybjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFA/IlswLTldezZ9IjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/IlthLXowLTldezE2fSI6dm9pZCAwfSxtYXhsZW5ndGg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyI2IjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/IjMyIjp2b2lkIDB9fSwidHlwZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHlwZSIpLGwpLHMobCwicGF0dGVybiIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwicGF0dGVybiIpLGwpLHMobCwibWF4bGVuZ3RoIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJtYXhsZW5ndGgiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NlY3VyaXR5LWtleS1mb3JtIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3VzZUFub3RoZXJNZXRob2Q6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2hvd1NlY3VyaXR5S2V5IiwhMSksdGhpcy5zZXQoInNob3dTZWNvbmRGYWN0b3IiLCEwKSx0aGlzLnNldCgic2Vjb25kRmFjdG9yTWV0aG9kIixuLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NoYXJlLXBhbmVsIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3NoYXJpbmciXSxmdW5jdGlvbihlLGksdCxvLG4scyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHU9KDAsci5kZWZhdWx0KSgidHlwZSIsInRvcGljLnRpdGxlIiksYz0oMCxyLmRlZmF1bHQpKCJwYW5lbC5tb2RlbC5zaGFyZVVybCIsInRvcGljLnNoYXJlVXJsIiksbChkPXt0YWdOYW1lOm51bGwsdHlwZTooMCx0LmFsaWFzKSgicGFuZWwubW9kZWwudHlwZSIpLHRvcGljOigwLHQuYWxpYXMpKCJwYW5lbC5tb2RlbC50b3BpYyIpLHNvdXJjZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LmFjdGl2ZVNvdXJjZXModGhpcy5zaXRlU2V0dGluZ3Muc2hhcmVfbGlua3MpfSxzaGFyZVRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9KDAscy5lc2NhcGVFeHByZXNzaW9uKSh0KSxJMThuLnQoInNoYXJlLnRvcGljX2h0bWwiLHt0b3BpY1RpdGxlOnR9KX0sc2hhcmVVcmw6ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZih0PWV8fHQsISgwLGkuaXNFbXB0eSkodCkpcmV0dXJuIDA9PT10LmluZGV4T2YoIi8iKSYmKHQ9KG49d2luZG93LmxvY2F0aW9uKS5wcm90b2NvbCsiLy8iK24uaG9zdCt0KSxlbmNvZGVVUkkodCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10aGlzLnNoYXJlVXJsLGk9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnRvcGljLXNoYXJlLXVybCIpKSxzPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BpYy1zaGFyZS11cmwtZm9yLXRvdWNoIGEiKSk7KDAsby5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlO3QuY2FwYWJpbGl0aWVzLnRvdWNoPyhpLnJlbW92ZSgpLHMuYXR0cigiaHJlZiIsbikudGV4dChuKSwoZT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSkuc2VsZWN0Tm9kZShzWzBdKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UoZSkpOihzLnBhcmVudCgpLnJlbW92ZSgpLGkudmFsKG4pLnNlbGVjdCgpLmZvY3VzKCkpfSl9LGFjdGlvbnM6e3NoYXJlOmZ1bmN0aW9uKGUpe2EuZGVmYXVsdC5zaGFyZVNvdXJjZShlLHt1cmw6dGhpcy5zaGFyZVVybCx0aXRsZTp0aGlzLmdldCgidG9waWMudGl0bGUiKX0pfX19LCJzb3VyY2VzIixbci5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNvdXJjZXMiKSxkKSxsKGQsInNoYXJlVGl0bGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNoYXJlVGl0bGUiKSxkKSxsKGQsInNoYXJlVXJsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJzaGFyZVVybCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmUtcG9wdXAiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3NoYXJpbmciLCJkaXNjb3Vyc2UvbGliL3B3YS11dGlscyJdLGZ1bmN0aW9uKGUsbCx1LHQsYSxuLGkscyxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsaS5kZWZhdWx0KSgidHlwZSIsInBvc3ROdW1iZXIiKSxkPSgwLGkuZGVmYXVsdCkoImRhdGUiKSxwPSgwLGkub24pKCJpbml0IiksbyhtPXtlbGVtZW50SWQ6InNoYXJlLWxpbmsiLGNsYXNzTmFtZUJpbmRpbmdzOlsidmlzaWJsZSJdLGxpbms6bnVsbCx2aXNpYmxlOm51bGwsc291cmNlczpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHQuYWN0aXZlU291cmNlcyh0aGlzLnNpdGVTZXR0aW5ncy5zaGFyZV9saW5rcyl9LHNoYXJlVGl0bGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4idG9waWMiIT09ZSYmdD9JMThuLnQoInNoYXJlLnBvc3QiLHtwb3N0TnVtYmVyOnR9KTpJMThuLnQoInNoYXJlLnRvcGljIil9LGRpc3BsYXlEYXRlOmZ1bmN0aW9uKGUpe3JldHVybigwLG4ubG9uZ0RhdGVOb1llYXIpKG5ldyBEYXRlKGUpKX0sX2ZvY3VzVXJsOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk9dGhpcy5saW5rO3RoaXMuY2FwYWJpbGl0aWVzLnRvdWNoPygoZT0kKCIjc2hhcmUtbGluayAuc2hhcmUtZm9yLXRvdWNoIGEiKSkuYXR0cigiaHJlZiIsaSksZS50ZXh0KGkpLCh0PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpKS5zZWxlY3ROb2RlKGVbMF0pLHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZSh0KSk6KChuPSQoIiNzaGFyZS1saW5rIGlucHV0IikpLnZhbChpKSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBuLnNlbGVjdCgpLmZvY3VzKCl9LDE2MCkpfSxfc2hvd1VybDpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvLHI9ZS5vZmZzZXQoKSxhPSQodGhpcy5lbGVtZW50KTsoMCxsLmlzRW1wdHkpKHQpfHwoMD09PXQuaW5kZXhPZigiLyIpJiYodD13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt0KSxuPWEud2lkdGgoKSwoaT1yLmxlZnQtbi8yKTwyNSYmKGk9MjUpLGkrbj4kKHdpbmRvdykud2lkdGgoKSYmKGktPW4vMikscz0kKCIuZC1oZWFkZXIiKSwobz1yLnRvcC0oYS5oZWlnaHQoKSsyMCkpPHMub2Zmc2V0KCkudG9wK3MuaGVpZ2h0KCkmJihvPXIudG9wKzEwKSxhLmNzcyh7dG9wOm8rInB4In0pLHRoaXMuc2l0ZS5tb2JpbGVWaWV3fHxhLmNzcyh7bGVmdDppKyJweCJ9KSx0aGlzLnNldCgibGluayIsdCksdGhpcy5zZXQoInZpc2libGUiLCEwKSwoMCx1LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX2ZvY3VzVXJsKSl9LF9tb3VzZURvd25IYW5kbGVyOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCYmMD09PSQodGhpcy5lbGVtZW50KS5oYXMoZS50YXJnZXQpLmxlbmd0aClyZXR1cm4gdGhpcy5zZW5kKCJjbG9zZSIpLCEwfSxfY2xpY2tIYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodGhpcy5lbGVtZW50JiYhdGhpcy5pc0Rlc3Ryb3lpbmcmJiF0aGlzLmlzRGVzdHJveWVkKXtpZigoMCxhLndhbnRzTmV3V2luZG93KShlKSlyZXR1cm4hMDtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49JChlLmN1cnJlbnRUYXJnZXQpLGk9bi5kYXRhKCJzaGFyZS11cmwiKSxzPW4uZGF0YSgicG9zdC1udW1iZXIiKSxvPW4uY2xvc2VzdCgiYXJ0aWNsZSIpLmRhdGEoInBvc3QtaWQiKSxyPW4uY2hpbGRyZW4oKS5kYXRhKCJ0aW1lIik7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7cG9zdE51bWJlcjpzLGRhdGU6cixwb3N0SWQ6b30pLG4uaGFzQ2xhc3MoInBvc3QtZGF0ZSIpP3RoaXMuX3Nob3dVcmwobixpKTooMCxjLm5hdGl2ZVNoYXJlKSh7dXJsOml9KS50aGVuKG51bGwsZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2hvd1VybChuLGkpfSksITF9fSxfa2V5ZG93bkhhbmRsZXI6ZnVuY3Rpb24oZSl7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fDI3PT09ZS5rZXlDb2RlJiZ0aGlzLnNlbmQoImNsb3NlIil9LF9zaGFyZVVybEhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zaG93VXJsKHQsZSl9LF9zZXR1cEhhbmRsZXJzOmZ1bmN0aW9uKCl7dGhpcy5fYm91bmRNb3VzZURvd25IYW5kbGVyPSgwLHUuYmluZCkodGhpcyx0aGlzLl9tb3VzZURvd25IYW5kbGVyKSx0aGlzLl9ib3VuZENsaWNrSGFuZGxlcj0oMCx1LmJpbmQpKHRoaXMsdGhpcy5fY2xpY2tIYW5kbGVyKSx0aGlzLl9ib3VuZEtleWRvd25IYW5kbGVyPSgwLHUuYmluZCkodGhpcyx0aGlzLl9rZXlkb3duSGFuZGxlcil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiaHRtbCIpLm9uKCJtb3VzZWRvd24ub3V0c2lkZS1zaGFyZS1saW5rIix0aGlzLl9ib3VuZE1vdXNlRG93bkhhbmRsZXIpLm9uKCJjbGljay5kaXNjb3Vyc2Utc2hhcmUtbGluayIsImJ1dHRvbltkYXRhLXNoYXJlLXVybF0sIC5wb3N0LWluZm8gLnBvc3QtZGF0ZVtkYXRhLXNoYXJlLXVybF0iLHRoaXMuX2JvdW5kQ2xpY2tIYW5kbGVyKS5vbigia2V5ZG93bi5zaGFyZS12aWV3Iix0aGlzLl9ib3VuZEtleWRvd25IYW5kbGVyKSx0aGlzLmFwcEV2ZW50cy5vbigic2hhcmU6dXJsIix0aGlzLCJfc2hhcmVVcmxIYW5kbGVyIil9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKCJodG1sIikub2ZmKCJjbGljay5kaXNjb3Vyc2Utc2hhcmUtbGluayIsdGhpcy5fYm91bmRDbGlja0hhbmRsZXIpLm9mZigibW91c2Vkb3duLm91dHNpZGUtc2hhcmUtbGluayIsdGhpcy5fYm91bmRNb3VzZURvd25IYW5kbGVyKS5vZmYoImtleWRvd24uc2hhcmUtdmlldyIsdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlciksdGhpcy5hcHBFdmVudHMub2ZmKCJzaGFyZTp1cmwiLHRoaXMsIl9zaGFyZVVybEhhbmRsZXIiKX0sYWN0aW9uczp7cmVwbHlBc05ld1RvcGljOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSx0PXRoaXMucG9zdElkfHxlLmZpbmRQb3N0SWRGb3JQb3N0TnVtYmVyKDEpLG49ZS5maW5kTG9hZGVkUG9zdCh0KTt0aGlzLnJlcGx5QXNOZXdUb3BpYyhuKSx0aGlzLnNlbmQoImNsb3NlIil9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsaW5rOm51bGwscG9zdE51bWJlcjpudWxsLHBvc3RJZDpudWxsLHZpc2libGU6ITF9KX0sc2hhcmU6ZnVuY3Rpb24oZSl7cy5kZWZhdWx0LnNoYXJlU291cmNlKGUse3VybDp0aGlzLmxpbmssdGl0bGU6dGhpcy5nZXQoInRvcGljLnRpdGxlIil9KX19fSwic291cmNlcyIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzb3VyY2VzIiksbSksbyhtLCJzaGFyZVRpdGxlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzaGFyZVRpdGxlIiksbSksbyhtLCJkaXNwbGF5RGF0ZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiZGlzcGxheURhdGUiKSxtKSxvKG0sIl9zZXR1cEhhbmRsZXJzIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0dXBIYW5kbGVycyIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmUtc291cmNlIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVCaW5kaW5nczpbIjpzb2NpYWwtbGluayJdLGFjdGlvbnM6e3NoYXJlOmZ1bmN0aW9uKGUpe3RoaXMuYWN0aW9uKGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmVkLWRyYWZ0LWNvbnRyb2xzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5kZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIpLG89cz17dGFnTmFtZToiIixwdWJsaXNoaW5nOiExLHZhbGlkQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUhPT10aGlzLnNpdGUuc2hhcmVkX2RyYWZ0c19jYXRlZ29yeV9pZH0sYWN0aW9uczp7dXBkYXRlRGVzdGluYXRpb25DYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50b3BpYy51cGRhdGVEZXN0aW5hdGlvbkNhdGVnb3J5KGUpfSxwdWJsaXNoOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJzaGFyZWRfZHJhZnRzLmNvbmZpcm1fcHVibGlzaCIpLGZ1bmN0aW9uKGUpe3ZhciB0O2UmJihuLnNldCgicHVibGlzaGluZyIsITApLHQ9bi5nZXQoInRvcGljLmRlc3RpbmF0aW9uX2NhdGVnb3J5X2lkIiksbi50b3BpYy5wdWJsaXNoKCkudGhlbihmdW5jdGlvbigpe24uc2V0KCJ0b3BpYy5jYXRlZ29yeV9pZCIsdCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoInB1Ymxpc2hpbmciLCExKX0pKX0pfX19LHI9InZhbGlkQ2F0ZWdvcnkiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ2YWxpZENhdGVnb3J5IiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2lnbnVwLWN0YSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7YWN0aW9uOiJzaG93Q3JlYXRlQWNjb3VudCIsYWN0aW9uczp7bmV2ZXJTaG93OmZ1bmN0aW9uKCl7dGhpcy5rZXlWYWx1ZVN0b3JlLnNldEl0ZW0oImFub24tY3RhLW5ldmVyIiwidCIpLHRoaXMuc2Vzc2lvbi5zZXQoInNob3dTaWdudXBDdGEiLCExKX0saGlkZUZvclNlc3Npb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2Vzc2lvbi5zZXQoImhpZGVTaWdudXBDdGEiLCEwKSx0aGlzLmtleVZhbHVlU3RvcmUuc2V0SXRlbSgiYW5vbi1jdGEtaGlkZGVuIiwobmV3IERhdGUpLmdldFRpbWUoKSksKDAsdC5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXNzaW9uLnNldCgic2hvd1NpZ251cEN0YSIsITEpfSwyZTQpfX0sX3R1cm5PZmZJZkhpZGRlbjooMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IixmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5nZXQoImhpZGVTaWdudXBDdGEiKSYmdGhpcy5zZXNzaW9uLnNldCgic2hvd1NpZ251cEN0YSIsITEpfSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc3VnZ2VzdGVkLXRvcGljcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSx0LHIsbixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8sdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJ0b3BpYyIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSxzPXtlbGVtZW50SWQ6InN1Z2dlc3RlZC10b3BpY3MiLGNsYXNzTmFtZXM6WyJzdWdnZXN0ZWQtdG9waWNzIl0sc3VnZ2VzdGVkVGl0bGVMYWJlbDooMCxyLmNvbXB1dGVkKSgidG9waWMiLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5wbVBhdGgodGhpcy50b3BpYyk7cmV0dXJuIHRoaXMudG9waWMuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikmJmU/InN1Z2dlc3RlZF90b3BpY3MucG1fdGl0bGUiOiJzdWdnZXN0ZWRfdG9waWNzLnRpdGxlIn0pLGJyb3dzZU1vcmVNZXNzYWdlOmZ1bmN0aW9uKGUpe2lmKCFlLmdldCgiaXNQcml2YXRlTWVzc2FnZSIpKXt2YXIgdD17bGF0ZXN0TGluazonPGEgaHJlZj0iJytEaXNjb3Vyc2UuZ2V0VVJMKCIvbGF0ZXN0IikrJyI+JytJMThuLnQoInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyIpKyI8L2E+In0sbj1lLmdldCgiY2F0ZWdvcnkiKTtuJiYoMCxyLmdldCkobiwiaWQiKT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpJiYobj1udWxsKSx0LmNhdExpbms9bj8oMCxhLmNhdGVnb3J5QmFkZ2VIVE1MKShuKTonPGEgaHJlZj0iJytEaXNjb3Vyc2UuZ2V0VVJMKCIvY2F0ZWdvcmllcyIpKyciPicrSTE4bi50KCJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiKSsiPC9hPiI7dmFyIGk9dGhpcy50b3BpY1RyYWNraW5nU3RhdGUuY291bnRVbnJlYWQoKSxzPXRoaXMuY3VycmVudFVzZXI/dGhpcy50b3BpY1RyYWNraW5nU3RhdGUuY291bnROZXcoKTowO2lmKDA8cytpKXt2YXIgbz0wPGkmJjA8cztyZXR1cm4gSTE4bi5tZXNzYWdlRm9ybWF0KCJ0b3BpYy5yZWFkX21vcmVfTUYiLHtCT1RIOm8sVU5SRUFEOmksTkVXOnMsQ0FURUdPUlk6ISFuLGxhdGVzdExpbms6dC5sYXRlc3RMaW5rLGNhdExpbms6dC5jYXRMaW5rLGJhc2VQYXRoOiIifSl9cmV0dXJuIG4/STE4bi50KCJ0b3BpYy5yZWFkX21vcmVfaW5fY2F0ZWdvcnkiLHQpOkkxOG4udCgidG9waWMucmVhZF9tb3JlIix0KX19fSxvPXMsdT0iYnJvd3NlTW9yZU1lc3NhZ2UiLGM9W2ldLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJicm93c2VNb3JlTWVzc2FnZSIpLHA9cyxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHUsbSksbT1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RhZy1kcm9wLWxpbmsiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgidGFnSWQiLCJjYXRlZ29yeSIpLHI9KDAsdC5kZWZhdWx0KSgidGFnSWQiKSxzKGE9e3RhZ05hbWU6ImEiLGNsYXNzTmFtZUJpbmRpbmdzOlsiOnRhZy1iYWRnZS13cmFwcGVyIiwiOmJhZGdlLXdyYXBwZXIiLCI6YnVsbGV0IiwidGFnQ2xhc3MiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImhyZWYiXSxocmVmOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/Ii90YWdzIit0LnVybCsiLyIrZToiL3RhZy8iK2V9LHRhZ0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiJ0YWctIitlfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLGkuZGVmYXVsdC5yb3V0ZVRvKHRoaXMuaHJlZiksITB9fSwiaHJlZiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwiaHJlZiIpLGEpLHMoYSwidGFnQ2xhc3MiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRhZ0NsYXNzIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWctZ3JvdXBzLWZvcm0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2J1ZmZlcmVkLWNvbnRlbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxpLG4scyxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKDAscy5idWZmZXJlZFByb3BlcnR5KSgibW9kZWwiKSwocj0oMCx0LmRlZmF1bHQpKCJidWZmZXJlZC5pc1NhdmluZyIsImJ1ZmZlcmVkLm5hbWUiLCJidWZmZXJlZC50YWdfbmFtZXMiKSxsPWE9e3RhZ05hbWU6IiIsc2F2aW5nRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlfHwoMCxpLmlzRW1wdHkpKHQpfHwoMCxpLmlzRW1wdHkpKG4pfSxhY3Rpb25zOntzZXRQZXJtaXNzaW9uczpmdW5jdGlvbihlKXsicHJpdmF0ZSI9PT1lP3RoaXMuYnVmZmVyZWQuc2V0KCJwZXJtaXNzaW9ucyIse3N0YWZmOm8uZGVmYXVsdC5GVUxMfSk6InZpc2libGUiPT09ZT90aGlzLmJ1ZmZlcmVkLnNldCgicGVybWlzc2lvbnMiLHtzdGFmZjpvLmRlZmF1bHQuRlVMTCxldmVyeW9uZTpvLmRlZmF1bHQuUkVBRE9OTFl9KTp0aGlzLmJ1ZmZlcmVkLnNldCgicGVybWlzc2lvbnMiLHtldmVyeW9uZTpvLmRlZmF1bHQuRlVMTH0pfSxzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuYnVmZmVyZWQuZ2V0UHJvcGVydGllcygibmFtZSIsInRhZ19uYW1lcyIsInBhcmVudF90YWdfbmFtZSIsIm9uZV9wZXJfdG9waWMiLCJwZXJtaXNzaW9ucyIpO3RoaXMubW9kZWwuc2F2ZSh0KS50aGVuKGZ1bmN0aW9uKCl7ZS5jb21taXRCdWZmZXIoKSxlLm9uU2F2ZSYmZS5vblNhdmUoKX0pfSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gYm9vdGJveC5jb25maXJtKEkxOG4udCgidGFnZ2luZy5ncm91cHMuY29uZmlybV9kZWxldGUiKSxJMThuLnQoIm5vX3ZhbHVlIiksSTE4bi50KCJ5ZXNfdmFsdWUiKSxmdW5jdGlvbihlKXtlJiZ0Lm1vZGVsLmRlc3Ryb3lSZWNvcmQoKS50aGVuKGZ1bmN0aW9uKCl7dC5vbkRlc3Ryb3kmJnQub25EZXN0cm95KCl9KX0pfX19LHU9InNhdmluZ0Rpc2FibGVkIixjPVtyXSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwic2F2aW5nRGlzYWJsZWQiKSxwPWEsbT17fSxPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21bZV09ZFtlXX0pLG0uZW51bWVyYWJsZT0hIW0uZW51bWVyYWJsZSxtLmNvbmZpZ3VyYWJsZT0hIW0uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gbXx8bS5pbml0aWFsaXplcikmJihtLndyaXRhYmxlPSEwKSxtPWMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobCx1LGUpfHxlfSxtKSxwJiZ2b2lkIDAhPT1tLmluaXRpYWxpemVyJiYobS52YWx1ZT1tLmluaXRpYWxpemVyP20uaW5pdGlhbGl6ZXIuY2FsbChwKTp2b2lkIDAsbS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW0uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobCx1LG0pLG09bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWctaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLG4saSx0LHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZCgodT0oMCxzLmRlZmF1bHQpKCJ0YWdJbmZvLnRhZ19ncm91cF9uYW1lcyIpLGM9KDAscy5kZWZhdWx0KSgidGFnSW5mby5jYXRlZ29yaWVzIiksZD0oMCxzLmRlZmF1bHQpKCJ0YWdJbmZvLnRhZ19ncm91cF9uYW1lcyIsInRhZ0luZm8uY2F0ZWdvcmllcyIsInRhZ0luZm8uc3lub255bXMiKSxsKHA9e3RhZ05hbWU6IiIsbG9hZGluZzohMSx0YWdJbmZvOm51bGwsbmV3U3lub255bXM6bnVsbCxzaG93RWRpdENvbnRyb2xzOiExLGNhbkFkbWluVGFnOigwLHIucmVhZHMpKCJjdXJyZW50VXNlci5zdGFmZiIpLGVkaXRTeW5vbnltc01vZGU6KDAsci5hbmQpKCJjYW5BZG1pblRhZyIsInNob3dFZGl0Q29udHJvbHMiKSx0YWdHcm91cHNJbmZvOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoInRhZ2dpbmcudGFnX2dyb3Vwc19pbmZvIix7Y291bnQ6ZS5sZW5ndGgsdGFnX2dyb3VwczplLmpvaW4oIiwgIil9KX0sY2F0ZWdvcmllc0luZm86ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgidGFnZ2luZy5jYXRlZ29yeV9yZXN0cmljdGlvbnMiLHtjb3VudDplLmxlbmd0aH0pfSxub3RoaW5nVG9TaG93OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4oMCxhLmlzRW1wdHkpKGUpJiYoMCxhLmlzRW1wdHkpKHQpJiYoMCxhLmlzRW1wdHkpKG4pfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubG9hZFRhZ0luZm8oKX0sbG9hZFRhZ0luZm86ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLmxvYWRpbmcpcmV0dXJuIHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdGhpcy5zdG9yZS5maW5kKCJ0YWctaW5mbyIsdGhpcy50YWcuaWQpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRhZ0luZm8iLGUpLHQuc2V0KCJ0YWdJbmZvLnN5bm9ueW1zIixlLnN5bm9ueW1zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdG9yZS5jcmVhdGVSZWNvcmQoInRhZyIsZSl9KSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0sYWN0aW9uczp7dG9nZ2xlRWRpdENvbnRyb2xzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0VkaXRDb250cm9scyIpfSxyZW5hbWVUYWc6ZnVuY3Rpb24oKXsoMCx0LmRlZmF1bHQpKCJyZW5hbWUtdGFnIix7bW9kZWw6dGhpcy50YWd9KX0sZGVsZXRlVGFnOmZ1bmN0aW9uKCl7dGhpcy5zZW5kQWN0aW9uKCJkZWxldGVBY3Rpb24iLHRoaXMudGFnSW5mbyl9LHVubGlua1N5bm9ueW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCxuLmFqYXgpKCIvdGFnLyIrdGhpcy50YWdJbmZvLm5hbWUrIi9zeW5vbnltcy8iK2UuaWQse3R5cGU6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudGFnSW5mby5zeW5vbnltcy5yZW1vdmVPYmplY3QoZSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0sZGVsZXRlU3lub255bTpmdW5jdGlvbih0KXt2YXIgbj10aGlzO2Jvb3Rib3guY29uZmlybShJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3N5bm9ueW1fY29uZmlybSIse3RhZ19uYW1lOnQudGV4dH0pLGZ1bmN0aW9uKGUpe2UmJnQuZGVzdHJveVJlY29yZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbi50YWdJbmZvLnN5bm9ueW1zLnJlbW92ZU9iamVjdCh0KX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpfSl9LGFkZFN5bm9ueW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJ0YWdnaW5nLmFkZF9zeW5vbnltc19leHBsYW5hdGlvbiIse2NvdW50OnRoaXMubmV3U3lub255bXMubGVuZ3RoLHRhZ19uYW1lOnRoaXMudGFnSW5mby5uYW1lfSksZnVuY3Rpb24oZSl7ZSYmKDAsbi5hamF4KSgiL3RhZy8iK3QudGFnSW5mby5uYW1lKyIvc3lub255bXMiLHt0eXBlOiJQT1NUIixkYXRhOntzeW5vbnltczp0Lm5ld1N5bm9ueW1zfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnNldCgibmV3U3lub255bXMiLG51bGwpLHQubG9hZFRhZ0luZm8oKSk6ZS5mYWlsZWRfdGFncz9ib290Ym94LmFsZXJ0KEkxOG4udCgidGFnZ2luZy5hZGRfc3lub255bXNfZmFpbGVkIix7dGFnX25hbWVzOk9iamVjdC5rZXlzKGUuZmFpbGVkX3RhZ3MpLmpvaW4oIiwgIil9KSk6Ym9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0pfX19LCJ0YWdHcm91cHNJbmZvIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJ0YWdHcm91cHNJbmZvIikscCksbChwLCJjYXRlZ29yaWVzSW5mbyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiY2F0ZWdvcmllc0luZm8iKSxwKSxsKHAsIm5vdGhpbmdUb1Nob3ciLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vdGhpbmdUb1Nob3ciKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RhZy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoInRpdGxlS2V5IiksYT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeUlkIiksbD0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5mdWxsU2x1ZyIpLHU9KDAsdC5kZWZhdWx0KSgidGFnR3JvdXBOYW1lIiksbyhjPXtjbGFzc05hbWVCaW5kaW5nczpbIjp0YWdzLWxpc3QiLCI6dGFnLWxpc3QiLCJjYXRlZ29yeUNsYXNzIiwidGFnR3JvdXBOYW1lQ2xhc3MiXSxpc1ByaXZhdGVNZXNzYWdlOiExLHNvcnRlZFRhZ3M6KDAsbi5zb3J0KSgidGFncyIsInNvcnRQcm9wZXJ0aWVzIiksdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkkxOG4udChlKX0sY2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnMuZGVmYXVsdC5maW5kQnlJZChlKX0sY2F0ZWdvcnlDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmInRhZy1saXN0LSIrZX0sdGFnR3JvdXBOYW1lQ2xhc3M6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oZT1lLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvWyFcIiMkJSYnXChcKVwqXCssXC5cLzo7PD0+XD9cQFxbXFxcXVxeYFx7XHxcfX5dL2csIiIpLnRvTG93ZXJDYXNlKCkpJiYidGFnLWdyb3VwLSIrZX19LCJ0aXRsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywidGl0bGUiKSxjKSxvKGMsImNhdGVnb3J5IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJjYXRlZ29yeSIpLGMpLG8oYywiY2F0ZWdvcnlDbGFzcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2F0ZWdvcnlDbGFzcyIpLGMpLG8oYywidGFnR3JvdXBOYW1lQ2xhc3MiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRhZ0dyb3VwTmFtZUNsYXNzIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWdzLWFkbWluLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0YWdzLWFkbWluLWRyb3Bkb3duIl0sY2xhc3NOYW1lczpbInRhZ3MtYWRtaW4tZHJvcGRvd24iXSxhY3Rpb25zTWFwcGluZzpudWxsLHNlbGVjdEtpdE9wdGlvbnM6e2ljb25zOlsiYmFycyIsImNhcmV0LWRvd24iXSxzaG93RnVsbFRpdGxlOiExfSxjb250ZW50OigwLG4uY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuW3tpZDoibWFuYWdlR3JvdXBzIixuYW1lOkkxOG4udCgidGFnZ2luZy5tYW5hZ2VfZ3JvdXBzIiksZGVzY3JpcHRpb246STE4bi50KCJ0YWdnaW5nLm1hbmFnZV9ncm91cHNfZGVzY3JpcHRpb24iKSxpY29uOiJ3cmVuY2gifSx7aWQ6InVwbG9hZFRhZ3MiLG5hbWU6STE4bi50KCJ0YWdnaW5nLnVwbG9hZCIpLGRlc2NyaXB0aW9uOkkxOG4udCgidGFnZ2luZy51cGxvYWRfZGVzY3JpcHRpb24iKSxpY29uOiJ1cGxvYWQifSx7aWQ6ImRlbGV0ZVVudXNlZFRhZ3MiLG5hbWU6STE4bi50KCJ0YWdnaW5nLmRlbGV0ZV91bnVzZWQiKSxkZXNjcmlwdGlvbjpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3VudXNlZF9kZXNjcmlwdGlvbiIpLGljb246InRyYXNoLWFsdCJ9XX0pLGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aW9uc01hcHBpbmdbZV07dCYmdCgpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGFwLXRpbGUtZ3JpZCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInRhcC10aWxlLWdyaWQiXSxhY3RpdmVUaWxlOm51bGx9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGFwLXRpbGUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJ0YXAtdGlsZSJdLGNsYXNzTmFtZUJpbmRpbmdzOlsiYWN0aXZlIl0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLm9uU2VsZWN0KHRoaXMudGlsZUlkKX0sYWN0aXZlOigwLG4ucHJvcGVydHlFcXVhbCkoImFjdGl2ZVRpbGUiLCJ0aWxlSWQiKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90ZXh0LW92ZXJmbG93IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLG4sdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4ubmV4dCkobnVsbCxmdW5jdGlvbigpe3ZhciBlPSQodC5lbGVtZW50KTtlJiYoZS5maW5kKCJiciIpLnJlcGxhY2VXaXRoKCIgIiksZS5maW5kKCJociIpLnJlbW92ZSgpLGUuZWxsaXBzaXMoKSl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGltZS1pbnB1dCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGksbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiZC10aW1lLWlucHV0Il0saG91cnM6bnVsbCxtaW51dGVzOm51bGwsX2hvdXJzOigwLHQub25lV2F5KSgiaG91cnMiKSxfbWludXRlczooMCx0Lm9uZVdheSkoIm1pbnV0ZXMiKSxpc1NhZmFyaTooMCx0Lm9uZVdheSkoImNhcGFiaWxpdGllcy5pc1NhZmFyaSIpLGlzTW9iaWxlOigwLHQub25lV2F5KSgic2l0ZS5tb2JpbGVWaWV3IiksbmF0aXZlUGlja2VyOigwLHQub3IpKCJpc1NhZmFyaSIsImlzTW9iaWxlIiksYWN0aW9uczp7b25JbnB1dDpmdW5jdGlvbihlLHQpe3ZhciBuO3QucHJldmVudERlZmF1bHQoKSx0aGlzLm9uQ2hhbmdlJiYobj10LnRhcmdldC52YWx1ZSxuPSgwLHMuaXNOdW1lcmljKShuKT9wYXJzZUludChuLDEwKTowLCJob3VycyI9PT1lLnByb3A/KG49TWF0aC5tYXgoMCxNYXRoLm1pbihuLDIzKSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksdGhpcy5fcHJvY2Vzc0hvdXJzQ2hhbmdlKG4pKToobj1NYXRoLm1heCgwLE1hdGgubWluKG4sNTkpKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSx0aGlzLl9wcm9jZXNzTWludXRlc0NoYW5nZShuKSksKDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB0LnRhcmdldC52YWx1ZT1ufSkpfSxvbkZvY3VzSW46ZnVuY3Rpb24oZSx0KXtlJiZ0LnRhcmdldCYmdC50YXJnZXQuc2VsZWN0KCl9LG9uQ2hhbmdlVGltZTpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC52YWx1ZTt0JiZ0aGlzLm9uQ2hhbmdlJiZ0aGlzLm9uQ2hhbmdlKHtob3Vyczp0LnNwbGl0KCI6IilbMF0sbWludXRlczp0LnNwbGl0KCI6IilbMV19KX19LF9wcm9jZXNzSG91cnNDaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5vbkNoYW5nZSh7aG91cnM6ZSxtaW51dGVzOnRoaXMuX21pbnV0ZXN8fCIwMCJ9KX0sX3Byb2Nlc3NNaW51dGVzQ2hhbmdlOmZ1bmN0aW9uKGUpe3RoaXMub25DaGFuZ2Uoe2hvdXJzOnRoaXMuX2hvdXJzfHwiMDAiLG1pbnV0ZXM6ZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3AtcGVyaW9kLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInBlcmlvZCIpLG89cz17Y2xhc3NOYW1lczpbInRvcC10aXRsZS1idXR0b25zIl0scGVyaW9kczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zaXRlLmdldCgicGVyaW9kcyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KX0sYWN0aW9uczp7Y2hhbmdlUGVyaW9kOmZ1bmN0aW9uKGUpe3RoaXMuYWN0aW9uKGUpfX19LHI9InBlcmlvZHMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJwZXJpb2RzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtYWRtaW4tbWVudS1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczoidG9waWMtYWRtaW4tbWVudS1idXR0b24tY29udGFpbmVyIix0YWdOYW1lOiJzcGFuIix3aWRnZXQ6InRvcGljLWFkbWluLW1lbnUtYnV0dG9uIixidWlsZEFyZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0aWVzKCJ0b3BpYyIsImZpeGVkIiwib3BlblVwd2FyZHMiLCJyaWdodFNpZGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtY2F0ZWdvcnkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtZW50cmFuY2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21peGlucy9jbGVhbnMtdXAiXSxmdW5jdGlvbihlLHQsaSxuLHMsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGEsbCx1LGMsZCxwLG0sZixoLGI7ZnVuY3Rpb24gZyhlLHQpe3ZhciBuPW5ldyBEYXRlO3JldHVybiBlLnRvRGF0ZVN0cmluZygpPT09bi50b0RhdGVTdHJpbmcoKT9tb21lbnQoZSkuZm9ybWF0KEkxOG4udCgiZGF0ZXMudGltZSIpKTplLmdldFllYXIoKT09PW4uZ2V0WWVhcigpP21vbWVudChlKS5mb3JtYXQodD9JMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRob3V0X3llYXJfd2l0aF9saW5lYnJlYWsiKTpJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhcl9ub190aW1lIikpOm1vbWVudChlKS5mb3JtYXQodD9JMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXJfd2l0aF9saW5lYnJlYWsiKTpJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXJfd2l0aG91dF90aW1lIikpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKGE9KDAsdC5kZWZhdWx0KSgidG9waWMuY3JlYXRlZF9hdCIpLGw9KDAsdC5kZWZhdWx0KSgidG9waWMuYnVtcGVkX2F0IiksdT0oMCx0LmRlZmF1bHQpKCJjcmVhdGVkRGF0ZSIsImJ1bXBlZERhdGUiKSxjPSgwLHQuZGVmYXVsdCkoImNyZWF0ZWREYXRlIiwic2hvd1RpbWUiKSxkPSgwLHQuZGVmYXVsdCkoImJ1bXBlZERhdGUiLCJzaG93VGltZSIpLHIocD17ZWxlbWVudElkOiJ0b3BpYy1lbnRyYW5jZSIsY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOjpoaWRkZW4iXSxfcG9zaXRpb246bnVsbCx0b3BpYzpudWxsLHZpc2libGU6bnVsbCxjcmVhdGVkRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IERhdGUoZSl9LGJ1bXBlZERhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKGUpfSxzaG93VGltZTpmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldFRpbWUoKS1lLmdldFRpbWUoKTwxNzI4ZTV9LHRvcERhdGU6Zyxib3R0b21EYXRlOmcsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidG9waWMtZW50cmFuY2U6c2hvdyIsdGhpcywiX3Nob3ciKX0sX3NldENTUzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3Bvc2l0aW9uLHQ9JCh0aGlzLmVsZW1lbnQpLG49dC53aWR0aCgpLGk9dC5oZWlnaHQoKTtlLmxlZnQ9cGFyc2VJbnQoZS5sZWZ0LDEwKS1uLzIsZS50b3A9cGFyc2VJbnQoZS50b3AsMTApLWkvMjt2YXIgcz0kKHdpbmRvdykud2lkdGgoKTtlLmxlZnQrbj5zJiYoZS5sZWZ0PXMtbi0xNSksdC5jc3MoZSl9LF9zaG93OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5fcG9zaXRpb249ZS5wb3NpdGlvbix0aGlzLnNldFByb3BlcnRpZXMoe3RvcGljOmUudG9waWMsdmlzaWJsZTohMH0pLCgwLGkuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fc2V0Q1NTKSwkKCJodG1sIikub2ZmKCJtb3VzZWRvd24udG9waWMtZW50cmFuY2UiKS5vbigibW91c2Vkb3duLnRvcGljLWVudHJhbmNlIixmdW5jdGlvbihlKXt2YXIgdD0kKGUudGFyZ2V0KTsidG9waWMtZW50cmFuY2UiIT09dC5wcm9wKCJpZCIpJiYwPT09JChuLmVsZW1lbnQpLmhhcyh0KS5sZW5ndGgmJm4uY2xlYW5VcCgpfSl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3RvcGljOm51bGwsdmlzaWJsZTohMX0pLCQoImh0bWwiKS5vZmYoIm1vdXNlZG93bi50b3BpYy1lbnRyYW5jZSIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vZmYoInRvcGljLWVudHJhbmNlOnNob3ciLHRoaXMsIl9zaG93Iil9LF9qdW1wVG86ZnVuY3Rpb24oZSl7dGhpcy5jbGVhblVwKCkscy5kZWZhdWx0LnJvdXRlVG8oZSl9LGFjdGlvbnM6e2VudGVyVG9wOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvKHRoaXMuZ2V0KCJ0b3BpYy51cmwiKSl9LGVudGVyQm90dG9tOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvKHRoaXMuZ2V0KCJ0b3BpYy5sYXN0UG9zdFVybCIpKX19fSwiY3JlYXRlZERhdGUiLFthXSwobT0obT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNyZWF0ZWREYXRlIikpP20udmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBtfX0pLHApLHIocCwiYnVtcGVkRGF0ZSIsW2xdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiYnVtcGVkRGF0ZSIpKT9mLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KSxwKSxyKHAsInNob3dUaW1lIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93VGltZSIpLHApLHIocCwidG9wRGF0ZSIsW2NdLChoPShoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwidG9wRGF0ZSIpKT9oLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KSxwKSxyKHAsImJvdHRvbURhdGUiLFtkXSwoYj0oYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImJvdHRvbURhdGUiKSk/Yi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSkscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1mb290ZXItYnV0dG9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3JlZ2lzdGVyLXRvcGljLWZvb3Rlci1idXR0b24iXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwLG0sZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoInRvcGljLmlzUHJpdmF0ZU1lc3NhZ2UiKSxhPSgwLHQuZGVmYXVsdCkoImJ1dHRvbnMuW10iKSxsPSgwLHQuZGVmYXVsdCkoImJ1dHRvbnMuW10iLCJ0b3BpYy5hc3NpZ25lZF90b191c2VyIiksdT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIiksYz0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIiksZD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIikscD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIiksbyhtPXtlbGVtZW50SWQ6InRvcGljLWZvb3Rlci1idXR0b25zIixsYXlvdXROYW1lOiJjb21wb25lbnRzL3RvcGljLWZvb3Rlci1idXR0b25zIixjYW5BcmNoaXZlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcGVyc29uYWxfbWVzc2FnZXMmJmV9LGJ1dHRvbnM6KDAscy5nZXRUb3BpY0Zvb3RlckJ1dHRvbnMpKCksaW5saW5lQnV0dG9uczpmdW5jdGlvbihlKXtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuZHJvcGRvd259KX0sZHJvcGRvd25CdXR0b25zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5kcm9wZG93bn0pfSxzaG93Tm90aWZpY2F0aW9uc0J1dHRvbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzfSxjYW5JbnZpdGVUbzooMCxuLmFsaWFzKSgidG9waWMuZGV0YWlscy5jYW5faW52aXRlX3RvIiksY2FuRGVmZXI6KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLmVuYWJsZV9kZWZlciIpLGludml0ZURpc2FibGVkOigwLG4ub3IpKCJ0b3BpYy5hcmNoaXZlZCIsInRvcGljLmNsb3NlZCIsInRvcGljLmRlbGV0ZWQiKSxzaG93RWRpdE9uRm9vdGVyOigwLG4uYW5kKSgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIsInNpdGUuY2FuX3RhZ19wbXMiKSxhcmNoaXZlSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZW52ZWxvcGUiOiJmb2xkZXIifSxhcmNoaXZlVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InRvcGljLm1vdmVfdG9faW5ib3guaGVscCI6InRvcGljLmFyY2hpdmVfbWVzc2FnZS5oZWxwIn0sYXJjaGl2ZUxhYmVsOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0b3BpYy5tb3ZlX3RvX2luYm94LnRpdGxlIjoidG9waWMuYXJjaGl2ZV9tZXNzYWdlLnRpdGxlIn19LCJjYW5BcmNoaXZlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYW5BcmNoaXZlIiksbSksbyhtLCJpbmxpbmVCdXR0b25zIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJpbmxpbmVCdXR0b25zIiksbSksbyhtLCJkcm9wZG93bkJ1dHRvbnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImRyb3Bkb3duQnV0dG9ucyIpLG0pLG8obSwic2hvd05vdGlmaWNhdGlvbnNCdXR0b24iLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dOb3RpZmljYXRpb25zQnV0dG9uIiksbSksbyhtLCJhcmNoaXZlSWNvbiIsW2NdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiYXJjaGl2ZUljb24iKSk/Zi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSksbSksbyhtLCJhcmNoaXZlVGl0bGUiLFtkXSwoaD0oaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImFyY2hpdmVUaXRsZSIpKT9oLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KSxtKSxvKG0sImFyY2hpdmVMYWJlbCIsW3BdLChiPShiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiYXJjaGl2ZUxhYmVsIikpP2IudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBifX0pLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtam9pbi1ncm91cC1ub3RpY2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz0oMCxuLmRlZmF1bHQpKCJtb2RlbC5ncm91cC57ZnVsbF9uYW1lLG5hbWUsYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0c30iKSxvPSgwLG4uZGVmYXVsdCkoIm1vZGVsLmdyb3VwLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiKSxpKHI9e2NsYXNzTmFtZXM6WyJ0b3BpYy1ub3RpY2UiXSxhY2Nlc3NWaWFHcm91cFRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mdWxsX25hbWV8fGUubmFtZSxuPWUuYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0cz8icmVxdWVzdCI6ImpvaW4iO3JldHVybiBJMThuLnQoInRvcGljLmdyb3VwXyIrbix7bmFtZTp0fSl9LGFjY2Vzc1ZpYUdyb3VwQnV0dG9uVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4iZ3JvdXBzLiIrKGU/InJlcXVlc3QiOiJqb2luIil9fSwiYWNjZXNzVmlhR3JvdXBUZXh0Iixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJhY2Nlc3NWaWFHcm91cFRleHQiKSxyKSxpKHIsImFjY2Vzc1ZpYUdyb3VwQnV0dG9uVGV4dCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiYWNjZXNzVmlhR3JvdXBCdXR0b25UZXh0IikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1saXN0LWl0ZW0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaCxiO2Z1bmN0aW9uIGcoZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5oYXNDbGFzcygicG9zdHMtbWFwIil8fDA8dC5wYXJlbnRzKCIucG9zdHMtbWFwIikubGVuZ3RoKXJldHVybiJBIiE9PXQucHJvcCgidGFnTmFtZSIpJiYwPT09KHQ9dC5maW5kKCJhIikpLmxlbmd0aCYmKHQ9dC5lbmQoKSksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtZW50cmFuY2U6c2hvdyIse3RvcGljOnRoaXMudG9waWMscG9zaXRpb246dC5vZmZzZXQoKX0pLCExfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4gdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnVwZGF0ZS10b3BpYyIsZSksby5kZWZhdWx0LnJvdXRlVG8odHx8ZS5nZXQoInVybCIpKSwhMX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93RW50cmFuY2U9ZyxlLm5hdmlnYXRlVG9Ub3BpYz12LGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHQub2JzZXJ2ZXMpKCJ0b3BpYy5waW5uZWQiKSxkPSgwLHQuZGVmYXVsdCkoInRvcGljLmlkIikscD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy51bnJlYWRfYnlfZ3JvdXBfbWVtYmVyIiksbT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy51bnJlYWRfYnlfZ3JvdXBfbWVtYmVyIiksZj0oMCx0LmRlZmF1bHQpKCJ0b3BpYyIsImxhc3RWaXNpdGVkVG9waWMiKSx1KGg9e3RhZ05hbWU6InRyIixjbGFzc05hbWVCaW5kaW5nczpbIjp0b3BpYy1saXN0LWl0ZW0iLCJ1bmJvdW5kQ2xhc3NOYW1lcyIsInRvcGljLnZpc2l0ZWQiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImRhdGEtdG9waWMtaWQiXSwiZGF0YS10b3BpYy1pZCI6KDAsbi5hbGlhcykoInRvcGljLmlkIiksZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyVG9waWNMaXN0SXRlbSgpfSxyZW5kZXJUb3BpY0xpc3RJdGVtOmZ1bmN0aW9uKCl7dmFyIGU9KDAsci5maW5kUmF3VGVtcGxhdGUpKCJsaXN0L3RvcGljLWxpc3QtaXRlbSIpO2UmJnRoaXMuc2V0KCJ0b3BpY0xpc3RJdGVtQ29udGVudHMiLGUodGhpcykuaHRtbFNhZmUoKSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5pbmNsdWRlVW5yZWFkSW5kaWNhdG9yJiZ0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKHRoaXMudW5yZWFkSW5kaWNhdG9yQ2hhbm5lbCxmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5kaWNhdG9yLXRvcGljLSIrZS50b3BpY19pZCkuY2xhc3NMaXN0O2Uuc2hvd19pbmRpY2F0b3I/dC5yZW1vdmUoInJlYWQiKTp0LmFkZCgicmVhZCIpfSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmluY2x1ZGVVbnJlYWRJbmRpY2F0b3ImJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSh0aGlzLnVucmVhZEluZGljYXRvckNoYW5uZWwpfSx1bnJlYWRJbmRpY2F0b3JDaGFubmVsOmZ1bmN0aW9uKGUpe3JldHVybiIvcHJpdmF0ZS1tZXNzYWdlcy91bnJlYWQtaW5kaWNhdG9yLyIrZX0sdW5yZWFkQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IiI6InJlYWQifSxpbmNsdWRlVW5yZWFkSW5kaWNhdG9yOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSxuZXdEb3RUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iIjpJMThuLnQoImZpbHRlcnMubmV3Lmxvd2VyX3RpdGxlIil9LHVuYm91bmRDbGFzc05hbWVzOmZ1bmN0aW9uKHQsZSl7dmFyIG49W107cmV0dXJuIHQuZ2V0KCJjYXRlZ29yeSIpJiZuLnB1c2goImNhdGVnb3J5LSIrdC5nZXQoImNhdGVnb3J5LmZ1bGxTbHVnIikpLHQuZ2V0KCJ0YWdzIikmJnQuZ2V0KCJ0YWdzIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5wdXNoKCJ0YWctIitlKX0pLHQuZ2V0KCJoYXNFeGNlcnB0IikmJm4ucHVzaCgiaGFzLWV4Y2VycHQiKSx0LmdldCgidW5zZWVuIikmJm4ucHVzaCgidW5zZWVuLXRvcGljIiksdC5nZXQoImRpc3BsYXlOZXdQb3N0cyIpJiZuLnB1c2goIm5ldy1wb3N0cyIpLFsibGlrZWQiLCJhcmNoaXZlZCIsImJvb2ttYXJrZWQiLCJwaW5uZWQiLCJjbG9zZWQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuZ2V0KGUpJiZuLnB1c2goZSl9KSx0PT09ZSYmbi5wdXNoKCJsYXN0LXZpc2l0Iiksbi5qb2luKCIgIil9LGhhc0xpa2VzOmZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5nZXQoInRvcGljLmxpa2VfY291bnQiKX0saGFzT3BMaWtlczpmdW5jdGlvbigpe3JldHVybiAwPHRoaXMuZ2V0KCJ0b3BpYy5vcF9saWtlX2NvdW50Iil9LGV4cGFuZFBpbm5lZDpmdW5jdGlvbigpe2lmKCF0aGlzLmdldCgidG9waWMucGlubmVkIikpcmV0dXJuITE7aWYodGhpcy5zaXRlLm1vYmlsZVZpZXcpe2lmKCF0aGlzLnNpdGVTZXR0aW5ncy5zaG93X3Bpbm5lZF9leGNlcnB0X21vYmlsZSlyZXR1cm4hMX1lbHNlIGlmKCF0aGlzLnNpdGVTZXR0aW5ncy5zaG93X3Bpbm5lZF9leGNlcnB0X2Rlc2t0b3ApcmV0dXJuITE7cmV0dXJuISghdGhpcy5leHBhbmRHbG9iYWxseVBpbm5lZHx8IXRoaXMuZ2V0KCJ0b3BpYy5waW5uZWRfZ2xvYmFsbHkiKSl8fCEhdGhpcy5leHBhbmRBbGxQaW5uZWR9LHNob3dFbnRyYW5jZTpnLGNsaWNrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2hvd0VudHJhbmNlKGUpO2lmKCExPT09dClyZXR1cm4gdDt2YXIgbixpPXRoaXMudG9waWMscz0kKGUudGFyZ2V0KTtyZXR1cm4gcy5oYXNDbGFzcygiYnVsay1zZWxlY3QiKSYmKG49dGhpcy5zZWxlY3RlZCxzLmlzKCI6Y2hlY2tlZCIpP24uYWRkT2JqZWN0KGkpOm4ucmVtb3ZlT2JqZWN0KGkpKSxzLmhhc0NsYXNzKCJyYXctdG9waWMtbGluayIpPyEhKDAsYS53YW50c05ld1dpbmRvdykoZSl8fHRoaXMubmF2aWdhdGVUb1RvcGljKGkscy5hdHRyKCJocmVmIikpOjE9PT1zLmNsb3Nlc3QoImEudG9waWMtc3RhdHVzIikubGVuZ3RoPyh0aGlzLnRvcGljLnRvZ2dsZVBpbm5lZEZvclVzZXIoKSwhMSk6dGhpcy51bmhhbmRsZWRSb3dDbGljayhlLGkpfSxhY3Rpb25zOnt0b2dnbGVCb29rbWFyazpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy50b3BpYy50b2dnbGVCb29rbWFyaygpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW5kZXJUb3BpY0xpc3RJdGVtKCl9KX19LHVuaGFuZGxlZFJvd0NsaWNrOmZ1bmN0aW9uKCl7fSxuYXZpZ2F0ZVRvVG9waWM6dixoaWdobGlnaHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOntpc0xhc3RWaWV3ZWRUb3BpYzohMX07KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlOyF0LmVsZW1lbnR8fHQuaXNEZXN0cm95aW5nfHx0LmlzRGVzdHJveWVkfHwoKGU9JCh0LmVsZW1lbnQpKS5hZGRDbGFzcygiaGlnaGxpZ2h0ZWQiKS5hdHRyKCJkYXRhLWlzbGFzdHZpZXdlZHRvcGljIixuLmlzTGFzdFZpZXdlZFRvcGljKSxlLm9uKCJhbmltYXRpb25lbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlQ2xhc3MoImhpZ2hsaWdodGVkIil9KSl9KX0sX2hpZ2hsaWdodElmTmVlZGVkOigwLGwub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5nZXQoImxhc3RUb3BpY0lkVmlld2VkIik9PT10aGlzLmdldCgidG9waWMuaWQiKT8odGhpcy5zZXNzaW9uLnNldCgibGFzdFRvcGljSWRWaWV3ZWQiLG51bGwpLHRoaXMuaGlnaGxpZ2h0KHtpc0xhc3RWaWV3ZWRUb3BpYzohMH0pKTp0aGlzLmdldCgidG9waWMuaGlnaGxpZ2h0IikmJih0aGlzLnNldCgidG9waWMuaGlnaGxpZ2h0IiwhMSksdGhpcy5oaWdobGlnaHQoKSl9KX0sInJlbmRlclRvcGljTGlzdEl0ZW0iLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsInJlbmRlclRvcGljTGlzdEl0ZW0iKSxoKSx1KGgsInVucmVhZEluZGljYXRvckNoYW5uZWwiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsInVucmVhZEluZGljYXRvckNoYW5uZWwiKSxoKSx1KGgsInVucmVhZENsYXNzIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJ1bnJlYWRDbGFzcyIpLGgpLHUoaCwiaW5jbHVkZVVucmVhZEluZGljYXRvciIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiaW5jbHVkZVVucmVhZEluZGljYXRvciIpLGgpLHUoaCwibmV3RG90VGV4dCIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJuZXdEb3RUZXh0IiksaCksdShoLCJ1bmJvdW5kQ2xhc3NOYW1lcyIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwidW5ib3VuZENsYXNzTmFtZXMiKSxoKSx1KGgsImV4cGFuZFBpbm5lZCIsW3QuZGVmYXVsdF0sKGI9KGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJleHBhbmRQaW5uZWQiKSk/Yi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwobD0oMCxzLmRlZmF1bHQpKCJidWxrU2VsZWN0RW5hYmxlZCIpLHU9KDAscy5kZWZhdWx0KSgib3JkZXIiKSxjPSgwLHMuZGVmYXVsdCkoIm9yZGVyIiksZD0oMCxzLm9ic2VydmVzKSgidG9waWNzLltdIikscD0oMCxzLm9ic2VydmVzKSgidG9waWNzIiwib3JkZXIiLCJhc2NlbmRpbmciLCJjYXRlZ29yeSIsInRvcCIpLGEobT17dGFnTmFtZToidGFibGUiLGNsYXNzTmFtZXM6WyJ0b3BpYy1saXN0Il0sc2hvd1RvcGljUG9zdEJhZGdlczohMCxsaXN0VGl0bGU6InRvcGljLnRpdGxlIixmaWx0ZXJlZFRvcGljczooMCx0LmFsaWFzKSgidG9waWNzIiksX2luaXQ6KDAsci5vbikoImluaXQiLGZ1bmN0aW9uKCl7dGhpcy5hZGRPYnNlcnZlcigiaGlkZUNhdGVnb3J5Iix0aGlzLnJlcmVuZGVyKSx0aGlzLmFkZE9ic2VydmVyKCJvcmRlciIsdGhpcy5yZXJlbmRlciksdGhpcy5hZGRPYnNlcnZlcigiYXNjZW5kaW5nIix0aGlzLnJlcmVuZGVyKSx0aGlzLnJlZnJlc2hMYXN0VmlzaXRlZCgpfSksdG9nZ2xlSW5UaXRsZTpmdW5jdGlvbihlKXtyZXR1cm4hZSYmdGhpcy5jYW5CdWxrU2VsZWN0fSxzb3J0YWJsZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5jaGFuZ2VTb3J0fSxza2lwSGVhZGVyOigwLHQucmVhZHMpKCJzaXRlLm1vYmlsZVZpZXciKSxzaG93TGlrZXM6ZnVuY3Rpb24oZSl7cmV0dXJuImxpa2VzIj09PWV9LHNob3dPcExpa2VzOmZ1bmN0aW9uKGUpe3JldHVybiJvcF9saWtlcyI9PT1lfSx0b3BpY3NBZGRlZDpmdW5jdGlvbigpe3RoaXMubGFzdFZpc2l0ZWRUb3BpY3x8dGhpcy5yZWZyZXNoTGFzdFZpc2l0ZWQoKX0sbGFzdFZpc2l0ZWRUb3BpY0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hMYXN0VmlzaXRlZCgpfSxzY3JvbGxlZDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLm9uU2Nyb2xsO2UmJmUuY2FsbCh0aGlzKX0sc2Nyb2xsVG9MYXN0UG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgZTshdGhpcy5zY3JvbGxPbkxvYWR8fChlPXRoaXMuc2Vzc2lvbi5nZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIikpJiYwPD1lJiYoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZSsxKX0pfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2Nyb2xsVG9MYXN0UG9zaXRpb24oKX0sX3VwZGF0ZUxhc3RWaXNpdGVkVG9waWM6ZnVuY3Rpb24oZSx0LG4saSl7aWYodGhpcy5zZXQoImxhc3RWaXNpdGVkVG9waWMiLG51bGwpLHRoaXMuaGlnaGxpZ2h0TGFzdFZpc2l0ZWQmJigiZGVmYXVsdCI9PT10fHwiYWN0aXZpdHkiPT09dCkmJiFpJiZlJiYxIT09ZS5sZW5ndGgmJiFuKXt2YXIgcz10aGlzLmN1cnJlbnRVc2VyO2lmKHMmJnMucHJldmlvdXNfdmlzaXRfYXQpe2Zvcih2YXIgbz12b2lkIDAscj12b2lkIDAsYT1zLmdldCgicHJldmlvdXNWaXNpdEF0IiksbD0wO2VbbF0mJmVbbF0uZ2V0KCJwaW5uZWQiKTspbCsrO2Zvcih2YXIgdT12b2lkIDAsdT1lLmxlbmd0aC0xO2w8PXU7dS0tKXtpZihlW3VdLmdldCgiYnVtcGVkQXQiKT5hKXtvPWVbdV07YnJlYWt9cj1lW3VdfW8mJnImJihyLmdldCgiYnVtcGVkQXQiKT5hfHx0aGlzLnNldCgibGFzdFZpc2l0ZWRUb3BpYyIsbykpfX19LHJlZnJlc2hMYXN0VmlzaXRlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUxhc3RWaXNpdGVkVG9waWModGhpcy50b3BpY3MsdGhpcy5vcmRlcix0aGlzLmFzY2VuZGluZyx0aGlzLnRvcCl9LGNsaWNrOmZ1bmN0aW9uKGkpe2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj0kKGkudGFyZ2V0KS5jbG9zZXN0KGUpOzE9PT1uLmxlbmd0aCYmdC5hcHBseShzLFtuXSl9dmFyIHM9dGhpcztlKCJidXR0b24uYnVsay1zZWxlY3QiLGZ1bmN0aW9uKCl7dGhpcy50b2dnbGVCdWxrU2VsZWN0KCksdGhpcy5yZXJlbmRlcigpfSksZSgiYnV0dG9uLmJ1bGstc2VsZWN0LWFsbCIsZnVuY3Rpb24oKXskKCJpbnB1dC5idWxrLXNlbGVjdDpub3QoOmNoZWNrZWQpIikuY2xpY2soKX0pLGUoImJ1dHRvbi5idWxrLWNsZWFyLWFsbCIsZnVuY3Rpb24oKXskKCJpbnB1dC5idWxrLXNlbGVjdDpjaGVja2VkIikuY2xpY2soKX0pLGUoInRoLnNvcnRhYmxlIixmdW5jdGlvbihlKXt0aGlzLmNoYW5nZVNvcnQoZS5kYXRhKCJzb3J0LW9yZGVyIikpLHRoaXMucmVyZW5kZXIoKX0pfX0sInRvZ2dsZUluVGl0bGUiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInRvZ2dsZUluVGl0bGUiKSxtKSxhKG0sInNvcnRhYmxlIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNvcnRhYmxlIiksbSksYShtLCJzaG93TGlrZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dMaWtlcyIpLG0pLGEobSwic2hvd09wTGlrZXMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dPcExpa2VzIiksbSksYShtLCJ0b3BpY3NBZGRlZCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwidG9waWNzQWRkZWQiKSxtKSxhKG0sImxhc3RWaXNpdGVkVG9waWNDaGFuZ2VkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJsYXN0VmlzaXRlZFRvcGljQ2hhbmdlZCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtbmF2aWdhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9taXhpbnMvcGFuLWV2ZW50cyJdLGZ1bmN0aW9uKGUsdCxvLG4saSxzLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdSxjLGQscCxtLGY7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLGkub2JzZXJ2ZXMpKCJpbmZvLnRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIpLHU9bD17Y29tcG9zZXJPcGVuOm51bGwsaW5mbzpudWxsLGlzUGFubmluZzohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJpbmZvIix0LmRlZmF1bHQuY3JlYXRlKCkpfSxfcGVyZm9ybUNoZWNrU2l6ZTpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyOyF0aGlzLmVsZW1lbnR8fHRoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoKGU9dGhpcy5pbmZvKS5nZXQoInRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIpP2Uuc2V0UHJvcGVydGllcyh7cmVuZGVyVGltZWxpbmU6ITAscmVuZGVyQWRtaW5NZW51QnV0dG9uOiEwfSk6KCh0PSF0aGlzLnNpdGUubW9iaWxlVmlldykmJihuPXdpbmRvdy5pbm5lcldpZHRoLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlcGx5LWNvbnRyb2wiKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aW1lbGluZS1jb250YWluZXIiKSxyPShvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWhlYWRlciIpKSYmby5vZmZzZXRIZWlnaHR8fDAscyYmaSYmKHQ9OTI0PG4mJndpbmRvdy5pbm5lckhlaWdodC1pLm9mZnNldEhlaWdodC1yPnMub2Zmc2V0SGVpZ2h0KSksZS5zZXRQcm9wZXJ0aWVzKHtyZW5kZXJUaW1lbGluZTp0LHJlbmRlckFkbWluTWVudUJ1dHRvbjohdH0pKSl9LF9jaGVja1NpemU6ZnVuY3Rpb24oKXsoMCxvLmRlYm91bmNlKSh0aGlzLHRoaXMuX3BlcmZvcm1DaGVja1NpemUsMzAwLCEwKX0sX3RvcGljU2Nyb2xsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImluZm8ucHJldkV2ZW50IixlKX0sX2V4cGFuZGVkOmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmdldCgiaW5mby50b3BpY1Byb2dyZXNzRXhwYW5kZWQiKT8kKHdpbmRvdykub24oImNsaWNrLmhpZGUtZnVsbHNjcmVlbiIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCksbj10LnBhcmVudHMoKTt0LmlzKCIud2lkZ2V0LWJ1dHRvbiIpfHxuLmlzKCIud2lkZ2V0LWJ1dHRvbiIpfHxuLmlzKCIuZHJvcGRvd24tbWVudSIpfHxuLmlzKCIjZGlzY291cnNlLW1vZGFsIil8fHQuaXMoIiNkaXNjb3Vyc2UtbW9kYWwiKXx8bi5pcygiLm1vZGFsLWZvb3RlciIpfHwhdC5pcygiLnRvcGljLXRpbWVsaW5lIikmJm4uaXMoIiN0b3BpYy1wcm9ncmVzcy13cmFwcGVyIil8fGkuX2NvbGxhcHNlRnVsbHNjcmVlbigpfSk6JCh3aW5kb3cpLm9mZigiY2xpY2suaGlkZS1mdWxsc2NyZWVuIiksdGhpcy5fY2hlY2tTaXplKCl9LGNvbXBvc2VyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNvbXBvc2VyT3BlbiIsITApLHRoaXMuX2NoZWNrU2l6ZSgpfSxjb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJjb21wb3Nlck9wZW4iLCExKSx0aGlzLl9jaGVja1NpemUoKX0sX2NvbGxhcHNlRnVsbHNjcmVlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5nZXQoImluZm8udG9waWNQcm9ncmVzc0V4cGFuZGVkIikmJigkKCIudGltZWxpbmUtZnVsbHNjcmVlbiIpLnJlbW92ZUNsYXNzKCJzaG93IiksKDAsby5sYXRlcikoZnVuY3Rpb24oKXshZS5lbGVtZW50fHxlLmlzRGVzdHJveWluZ3x8ZS5pc0Rlc3Ryb3llZHx8KGUuc2V0KCJpbmZvLnRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIsITEpLGUuX2NoZWNrU2l6ZSgpKX0sNTAwKSl9LGtleWJvYXJkVHJpZ2dlcjpmdW5jdGlvbihlKXsianVtcCI9PT1lLnR5cGUmJigwLHMuZGVmYXVsdCkoImp1bXAtdG8tcG9zdCIse21vZGFsQ2xhc3M6Imp1bXAtdG8tcG9zdC1tb2RhbCJ9KS5zZXRQcm9wZXJ0aWVzKHt0b3BpYzp0aGlzLnRvcGljLGp1bXBUb0luZGV4OnRoaXMuYXR0cnMuanVtcFRvSW5kZXgsanVtcFRvRGF0ZTp0aGlzLmF0dHJzLmp1bXBUb0RhdGV9KX0sX2hhbmRsZVBhbkRvbmU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9JCgiLnRpbWVsaW5lLWNvbnRhaW5lciIpLHM9cGFyc2VJbnQoaS5jc3MoImhlaWdodCIpLDEwKTt0aGlzLl9zaG91bGRQYW5DbG9zZSh0KT9lKz1yLlNXSVBFX1ZFTE9DSVRZOmUtPXIuU1dJUEVfVkVMT0NJVFksaS5jc3MoImJvdHRvbSIsLWUpLHM8ZT90aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4oKTplPD0wP2kuY3NzKCJib3R0b20iLCIiKTooMCxvLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBuLl9oYW5kbGVQYW5Eb25lKGUsdCl9LDIwKX0sX3Nob3VsZFBhbkNsb3NlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmRlbHRhWT5yLlNXSVBFX0RJU1RBTkNFX1RIUkVTSE9MRCYmZS52ZWxvY2l0eVk+LXIuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEfHxlLnZlbG9jaXR5WT5yLlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRH0scGFuU3RhcnQ6ZnVuY3Rpb24oZSl7ZS5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZS5jZW50ZXI7JChkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHQueCx0LnkpKS5wYXJlbnRzKCIudGltZWxpbmUtc2Nyb2xsYXJlYS13cmFwcGVyIikubGVuZ3RoP3RoaXMuaXNQYW5uaW5nPSExOiJ1cCIhPT1lLmRpcmVjdGlvbiYmImRvd24iIT09ZS5kaXJlY3Rpb258fCh0aGlzLmlzUGFubmluZz0hMCl9LHBhbkVuZDpmdW5jdGlvbihlKXt0aGlzLmlzUGFubmluZyYmKGUub3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNQYW5uaW5nPSExLHRoaXMuX2hhbmRsZVBhbkRvbmUoZS5kZWx0YVksZSkpfSxwYW5Nb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuaXNQYW5uaW5nJiYoZS5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCksJCgiLnRpbWVsaW5lLWNvbnRhaW5lciIpLmNzcygiYm90dG9tIixNYXRoLm1pbigwLC1lLmRlbHRhWSkpKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJ0b3BpYzpjdXJyZW50LXBvc3Qtc2Nyb2xsZWQiLHRoaXMsdGhpcy5fdG9waWNTY3JvbGxlZCkub24oInRvcGljOmp1bXAtdG8tcG9zdCIsdGhpcyx0aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4pLm9uKCJ0b3BpYzprZXlib2FyZC10cmlnZ2VyIix0aGlzLHRoaXMua2V5Ym9hcmRUcmlnZ2VyKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS10b3BpYy1uYXZpZ2F0aW9uIixmdW5jdGlvbigpe3JldHVybiBlLl9jaGVja1NpemUoKX0pLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnJlc2l6ZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOmNsb3NlZCIsdGhpcyx0aGlzLmNvbXBvc2VyQ2xvc2VkKSwkKCIjcmVwbHktY29udHJvbCIpLm9uKCJkaXYtcmVzaXplZC5kaXNjb3Vyc2UtdG9waWMtbmF2aWdhdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4gZS5fY2hlY2tTaXplKCl9KSksdGhpcy5fY2hlY2tTaXplKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vZmYoInRvcGljOmN1cnJlbnQtcG9zdC1zY3JvbGxlZCIsdGhpcyx0aGlzLl90b3BpY1Njcm9sbGVkKS5vZmYoInRvcGljOmp1bXAtdG8tcG9zdCIsdGhpcyx0aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4pLm9mZigidG9waWM6a2V5Ym9hcmQtdHJpZ2dlciIsdGhpcyx0aGlzLmtleWJvYXJkVHJpZ2dlciksJCh3aW5kb3cpLm9mZigiY2xpY2suaGlkZS1mdWxsc2NyZWVuIiksdGhpcy5zaXRlLm1vYmlsZVZpZXd8fCgkKHdpbmRvdykub2ZmKCJyZXNpemUuZGlzY291cnNlLXRvcGljLW5hdmlnYXRpb24iKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOm9wZW5lZCIsdGhpcyx0aGlzLmNvbXBvc2VyT3BlbmVkKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnJlc2l6ZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5jb21wb3NlckNsb3NlZCksJCgiI3JlcGx5LWNvbnRyb2wiKS5vZmYoImRpdi1yZXNpemVkLmRpc2NvdXJzZS10b3BpYy1uYXZpZ2F0aW9uIikpfX0sYz0iX2V4cGFuZGVkIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2V4cGFuZGVkIiksbT1sLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtcG9zdC1iYWRnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InNwYW4iLGNsYXNzTmFtZUJpbmRpbmdzOlsiOnRvcGljLXBvc3QtYmFkZ2VzIl0scmVyZW5kZXJUcmlnZ2VyczpbInVybCIsInVucmVhZCIsIm5ld1Bvc3RzIiwidW5zZWVuIl0sbmV3RG90VGV4dDpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoIm5ld0RvdFRleHQiLHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iICI6STE4bi50KCJmaWx0ZXJzLm5ldy5sb3dlcl90aXRsZSIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtcHJvZ3Jlc3MiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHMuZGVmYXVsdCkoInByb2dyZXNzUG9zaXRpb24iKSxhPSgwLHMuZGVmYXVsdCkoInBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50IiwidG9waWMuaGlnaGVzdF9wb3N0X251bWJlciIsInByb2dyZXNzUG9zaXRpb24iKSxsPSgwLHMuZGVmYXVsdCkoInBvc3RTdHJlYW0ubG9hZGVkIiwidG9waWMuY3VycmVudFBvc3QiLCJwb3N0U3RyZWFtLmZpbHRlcmVkUG9zdHNDb3VudCIpLHU9KDAscy5kZWZhdWx0KSgicG9zdFN0cmVhbS5maWx0ZXJlZFBvc3RzQ291bnQiKSxjPSgwLHMuZGVmYXVsdCkoImh1Z2VOdW1iZXJPZlBvc3RzIiwidG9waWMuaGlnaGVzdF9wb3N0X251bWJlciIpLGQ9KDAscy5kZWZhdWx0KSgicHJvZ3Jlc3NQb3NpdGlvbiIsInRvcGljLmxhc3RfcmVhZF9wb3N0X2lkIikscD0oMCxzLm9ic2VydmVzKSgicG9zdFN0cmVhbS5zdHJlYW0uW10iKSxvKG09e2VsZW1lbnRJZDoidG9waWMtcHJvZ3Jlc3Mtd3JhcHBlciIsY2xhc3NOYW1lQmluZGluZ3M6WyJkb2NrZWQiXSxkb2NrZWQ6ITEscHJvZ3Jlc3NQb3NpdGlvbjpudWxsLHBvc3RTdHJlYW06KDAsdC5hbGlhcykoInRvcGljLnBvc3RTdHJlYW0iKSxfc3RyZWFtUGVyY2VudGFnZTpudWxsLGp1bXBUb3BEaXNhYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZTw9M30sanVtcEJvdHRvbURpc2FibGVkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZTw9bnx8dDw9bn0saGlkZVByb2dyZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZXx8IXR8fCF0aGlzLnNpdGUubW9iaWxlVmlldyYmbjwyfSxodWdlTnVtYmVyT2ZQb3N0czpmdW5jdGlvbihlKXtyZXR1cm4gZT49dGhpcy5zaXRlU2V0dGluZ3Muc2hvcnRfcHJvZ3Jlc3NfdGV4dF90aHJlc2hvbGR9LGp1bXBUb0JvdHRvbVRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU/STE4bi50KCJ0b3BpYy5wcm9ncmVzcy5qdW1wX2JvdHRvbV93aXRoX251bWJlciIse3Bvc3RfbnVtYmVyOnR9KTpJMThuLnQoInRvcGljLnByb2dyZXNzLmp1bXBfYm90dG9tIil9LHNob3dCYWNrQnV0dG9uOmZ1bmN0aW9uKGUsdCl7aWYodCl7dmFyIG49dGhpcy5nZXQoInBvc3RTdHJlYW0uc3RyZWFtIiksaT1uLmluZGV4T2YodCl8fDA7cmV0dXJuIGk8bi5sZW5ndGgtMSYmZTxpfX0sX3VwZGF0ZUJhcjpmdW5jdGlvbigpeygwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fdXBkYXRlUHJvZ3Jlc3NCYXIpfSxfdG9waWNTY3JvbGxlZDpmdW5jdGlvbihlKXt0aGlzLmRvY2tlZD8odGhpcy5zZXQoInByb2dyZXNzUG9zaXRpb24iLHRoaXMuZ2V0KCJwb3N0U3RyZWFtLmZpbHRlcmVkUG9zdHNDb3VudCIpKSx0aGlzLl9zdHJlYW1QZXJjZW50YWdlPTEpOih0aGlzLnNldCgicHJvZ3Jlc3NQb3NpdGlvbiIsZS5wb3N0SW5kZXgpLHRoaXMuX3N0cmVhbVBlcmNlbnRhZ2U9ZS5wZXJjZW50KSx0aGlzLl91cGRhdGVCYXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6d2lsbC1vcGVuIix0aGlzLHRoaXMuX2RvY2spLm9uKCJjb21wb3NlcjpyZXNpemVkIix0aGlzLHRoaXMuX2RvY2spLm9uKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5fZG9jaykub24oInRvcGljOnNjcm9sbGVkIix0aGlzLHRoaXMuX2RvY2spLm9uKCJ0b3BpYzpjdXJyZW50LXBvc3Qtc2Nyb2xsZWQiLHRoaXMsdGhpcy5fdG9waWNTY3JvbGxlZCk7dmFyIGU9dGhpcy5wcmV2RXZlbnQ7ZT8oMCxuLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX3RvcGljU2Nyb2xsZWQsZSk6KDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdGhpcyx0aGlzLl91cGRhdGVQcm9ncmVzc0JhciksKDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdGhpcyx0aGlzLl9kb2NrKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6d2lsbC1vcGVuIix0aGlzLHRoaXMuX2RvY2spLm9mZigiY29tcG9zZXI6cmVzaXplZCIsdGhpcyx0aGlzLl9kb2NrKS5vZmYoImNvbXBvc2VyOmNsb3NlZCIsdGhpcyx0aGlzLl9kb2NrKS5vZmYoInRvcGljOnNjcm9sbGVkIix0aGlzLHRoaXMuX2RvY2spLm9mZigidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIix0aGlzLHRoaXMuX3RvcGljU2Nyb2xsZWQpfSxfdXBkYXRlUHJvZ3Jlc3NCYXI6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzLG87dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fChlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BpYy1wcm9ncmVzcyIpKSx0aGlzLl90b3RhbFdpZHRofHwodGhpcy5fdG90YWxXaWR0aD1lWzBdLm9mZnNldFdpZHRoKSx0aGlzLl9zdHJlYW1QZXJjZW50YWdlJiYodD10aGlzLl90b3RhbFdpZHRoLGk9KG49KHRoaXMuX3N0cmVhbVBlcmNlbnRhZ2V8fDApKnQpPT09dD8iMHB4IjoiMXB4IiwwPT09KHM9ZS5maW5kKCIuYmciKSkubGVuZ3RoPyhvPSJib3JkZXItcmlnaHQtd2lkdGg6ICIraSsiOyB3aWR0aDogIituKyJweCIsZS5hcHBlbmQoIjxkaXYgY2xhc3M9J2JnJyBzdHlsZT1cIiIrbysnIj4mbmJzcDs8L2Rpdj4nKSk6cy5jc3MoImJvcmRlci1yaWdodC13aWR0aCIsaSkud2lkdGgobi0yKSkpfSxfZG9jazpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyLGEsbCx1LGMsZCxwPSQodGhpcy5lbGVtZW50KTtwJiYwIT09cC5sZW5ndGgmJihlPSQoImh0bWwiKSx0PXdpbmRvdy5wYWdlWU9mZnNldHx8ZS5zY3JvbGxUb3AoKSxuPXRoaXMuc2l0ZS5tb2JpbGVWaWV3PzA6JCgiI3RvcGljLXByb2dyZXNzIikub3V0ZXJIZWlnaHQoKSxvPShpPSQoIiN0b3BpYy1ib3R0b20iKS5vZmZzZXQoKS50b3ArbiktJCh3aW5kb3cpLmhlaWdodCgpKyhzPSQoIiNyZXBseS1jb250cm9sIikuaGVpZ2h0KCl8fDApPD10LHI9JCgiYm9keSIpLmhlaWdodCgpLWksKGE9JCgiLmZvb3Rlci1uYXYtaXBhZCAuZm9vdGVyLW5hdiIpKSYmMDxhLmxlbmd0aCYmKHIrPWEub3V0ZXJIZWlnaHQoKSksbD1lLmhhc0NsYXNzKCJydGwiKT8ibGVmdCI6InJpZ2h0IiwwPHM/KHU9JCgiLmZvb3Rlci1uYXYtdmlzaWJsZSAuZm9vdGVyLW5hdiIpLGM9JCgiI3JlcGx5LWNvbnRyb2wuZHJhZnQiKSx1Lm91dGVySGVpZ2h0KCkmJmMub3V0ZXJIZWlnaHQoKSYmKHM9Yy5vdXRlckhlaWdodCgpK3Uub3V0ZXJIZWlnaHQoKSkscC5jc3MoImJvdHRvbSIsbz9yOnMpKTpwLmNzcygiYm90dG9tIixvP3I6IiIpLHRoaXMuc2V0KCJkb2NrZWQiLG8pLChkPSQoIiNyZXBseS1jb250cm9sIC5yZXBseS1hcmVhIikpJiYwPGQubGVuZ3RoJiYibGVmdCI9PWw/cC5jc3MobCxkLm9mZnNldCgpLmxlZnQrInB4Iik6cC5jc3MobCwiMWVtIikscC5jc3MoIm1hcmdpbi1ib3R0b20iLCFvJiY0MDxzPyIwcHgiOiIiKSl9LGNsaWNrOmZ1bmN0aW9uKGUpeyQoZS50YXJnZXQpLmNsb3Nlc3QoIiN0b3BpYy1wcm9ncmVzcyIpLmxlbmd0aCYmdGhpcy5zZW5kKCJ0b2dnbGVFeHBhbnNpb24iKX0sYWN0aW9uczp7dG9nZ2xlRXhwYW5zaW9uOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZXhwYW5kZWQiKX0sZ29CYWNrOmZ1bmN0aW9uKCl7dGhpcy5hdHRycy5qdW1wVG9Qb3N0KHRoaXMuZ2V0KCJ0b3BpYy5sYXN0X3JlYWRfcG9zdF9udW1iZXIiKSl9fX0sImp1bXBUb3BEaXNhYmxlZCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwianVtcFRvcERpc2FibGVkIiksbSksbyhtLCJqdW1wQm90dG9tRGlzYWJsZWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImp1bXBCb3R0b21EaXNhYmxlZCIpLG0pLG8obSwiaGlkZVByb2dyZXNzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJoaWRlUHJvZ3Jlc3MiKSxtKSxvKG0sImh1Z2VOdW1iZXJPZlBvc3RzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJodWdlTnVtYmVyT2ZQb3N0cyIpLG0pLG8obSwianVtcFRvQm90dG9tVGl0bGUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImp1bXBUb0JvdHRvbVRpdGxlIiksbSksbyhtLCJzaG93QmFja0J1dHRvbiIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwic2hvd0JhY2tCdXR0b24iKSxtKSxvKG0sIl91cGRhdGVCYXIiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIl91cGRhdGVCYXIiKSxtKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RvcGljLXN0YXR1cyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJkaXNhYmxlQWN0aW9ucyIpLHI9KDAsdC5kZWZhdWx0KSgidG9waWMuY2xvc2VkIiwidG9waWMuYXJjaGl2ZWQiKSxhPSgwLHQuZGVmYXVsdCkoInRvcGljLmlzX3dhcm5pbmciKSxsPSgwLHQuZGVmYXVsdCkoInRvcGljLnBpbm5lZCIpLHU9KDAsdC5kZWZhdWx0KSgidG9waWMudW5waW5uZWQiKSxjPSgwLHQuZGVmYXVsdCkoInRvcGljLmludmlzaWJsZSIpLGkoZD17Y2xhc3NOYW1lczpbInRvcGljLXN0YXR1c2VzIl0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHRoaXMuY2FuQWN0JiYkKGUudGFyZ2V0KS5oYXNDbGFzcygiZC1pY29uLXRodW1idGFjayIpJiYoKHQ9dGhpcy50b3BpYykuZ2V0KCJwaW5uZWQiKT90LmNsZWFyUGluKCk6dC5yZVBpbigpKSwhMX0sY2FuQWN0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiYhZX0sdG9waWNDbG9zZWRBcmNoaXZlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0Pyh0aGlzLl9zZXQoImNsb3NlZEFyY2hpdmVkIiwibG9jayIsImxvY2tlZF9hbmRfYXJjaGl2ZWQiKSx0aGlzLl9yZXNldCgiY2xvc2VkIiksdGhpcy5fcmVzZXQoImFyY2hpdmVkIiksITApOih0aGlzLl9yZXNldCgiY2xvc2VkQXJjaGl2ZWQiKSxlP3RoaXMuX3NldCgiY2xvc2VkIiwibG9jayIsImxvY2tlZCIpOnRoaXMuX3Jlc2V0KCJjbG9zZWQiKSx0P3RoaXMuX3NldCgiYXJjaGl2ZWQiLCJsb2NrIiwiYXJjaGl2ZWQiKTp0aGlzLl9yZXNldCgiYXJjaGl2ZWQiKSwhMSl9LHRvcGljV2FybmluZzpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoIndhcm5pbmciLCJlbnZlbG9wZSIsIndhcm5pbmciKTp0aGlzLl9yZXNldCgid2FybmluZyIpfSx0b3BpY1Bpbm5lZDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoInBpbm5lZCIsInRodW1idGFjayIsInBpbm5lZCIpOnRoaXMuX3Jlc2V0KCJwaW5uZWQiKX0sdG9waWNVbnBpbm5lZDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoInVucGlubmVkIiwidGh1bWJ0YWNrIiwidW5waW5uZWQiLHtjbGFzczoidW5waW5uZWQifSk6dGhpcy5fcmVzZXQoInVucGlubmVkIil9LHRvcGljSW52aXNpYmxlOmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuX3NldCgiaW52aXNpYmxlIiwiZmFyLWV5ZS1zbGFzaCIsInVubGlzdGVkIik6dGhpcy5fcmVzZXQoImludmlzaWJsZSIpfSxfc2V0OmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOm51bGw7cmV0dXJuIHRoaXMuc2V0KGUrIkljb24iLCgwLG8uaWNvbkhUTUwpKCIiK3QscykuaHRtbFNhZmUoKSksdGhpcy5zZXQoZSsiVGl0bGUiLEkxOG4udCgidG9waWNfc3RhdHVzZXMuIituKyIuaGVscCIpKSwhMH0sX3Jlc2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNldChlKyJJY29uIixudWxsKSx0aGlzLnNldChlKyJUaXRsZSIsbnVsbCksITF9fSwiY2FuQWN0Iixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJjYW5BY3QiKSxkKSxpKGQsInRvcGljQ2xvc2VkQXJjaGl2ZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljQ2xvc2VkQXJjaGl2ZWQiKSxkKSxpKGQsInRvcGljV2FybmluZyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwidG9waWNXYXJuaW5nIiksZCksaShkLCJ0b3BpY1Bpbm5lZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwidG9waWNQaW5uZWQiKSxkKSxpKGQsInRvcGljVW5waW5uZWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljVW5waW5uZWQiKSxkKSxpKGQsInRvcGljSW52aXNpYmxlIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ0b3BpY0ludmlzaWJsZSIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGltZWxpbmUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlL21peGlucy9kb2NraW5nIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZnVuY3Rpb24gZCgpe3ZhciBlPXBhcnNlSW50KCQoIiNtYWluLW91dGxldCIpLmNzcygicGFkZGluZy10b3AiKSwxMCkrMyx0PSQoIi5mb290ZXItbmF2LWlwYWQgLmZvb3Rlci1uYXYiKS5oZWlnaHQoKTtyZXR1cm4gdCYmKGUrPXQpLGV9ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMub2JzZXJ2ZXMpKCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIiwibG9hZGluZyIpLGw9KDAscy5vYnNlcnZlcykoInRvcGljLmRldGFpbHMubm90aWZpY2F0aW9uX2xldmVsIikscih1PXthZG1pblRvb2xzOigwLG8uZGVmYXVsdCkoKSx3aWRnZXQ6InRvcGljLXRpbWVsaW5lLWNvbnRhaW5lciIsZG9ja0JvdHRvbTpudWxsLGRvY2tBdDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3ZhciBlPXt0b3BpYzp0aGlzLnRvcGljLG5vdGlmaWNhdGlvbkxldmVsOnRoaXMubm90aWZpY2F0aW9uTGV2ZWwsdG9waWNUcmFja2luZ1N0YXRlOnRoaXMudG9waWNUcmFja2luZ1N0YXRlLGVudGVyZWRJbmRleDp0aGlzLmVudGVyZWRJbmRleCxkb2NrQXQ6dGhpcy5kb2NrQXQsZG9ja0JvdHRvbTp0aGlzLmRvY2tCb3R0b20sbW9iaWxlVmlldzp0aGlzLmdldCgic2l0ZS5tb2JpbGVWaWV3Iil9LHQ9dGhpcy5wcmV2RXZlbnQ7cmV0dXJuIHQmJihlLmVudGVyZWRJbmRleD10LnBvc3RJbmRleC0xKSx0aGlzLmZ1bGxzY3JlZW4/KGUuZnVsbFNjcmVlbj0hMCxlLmFkZFNob3dDbGFzcz10aGlzLmFkZFNob3dDbGFzcyk6ZS50b3A9dGhpcy5kb2NrQXR8fGQoKSxlfSxuZXdQb3N0QWRkZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMucXVldWVSZXJlbmRlcihmdW5jdGlvbigpe3JldHVybiBlLnF1ZXVlRG9ja0NoZWNrKCl9KX0sX3F1ZXVlUmVyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sZG9ja0NoZWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIiNtYWluIikub2Zmc2V0KCksbj10P3QudG9wOjAsaT0kKCIuY29udGFpbmVyLnBvc3RzIikub2Zmc2V0KCkudG9wLW4scz0kKCIjdG9waWMtYm90dG9tIikub2Zmc2V0KCkudG9wLSQoIiNtYWluLW91dGxldCIpLm9mZnNldCgpLnRvcCxvPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIudGltZWxpbmUtY29udGFpbmVyIikscj1vJiZvLm9mZnNldEhlaWdodHx8NDAwLGE9JCgiLnRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIpLm91dGVySGVpZ2h0KCEwKXx8MCxsPXRoaXMuZG9ja0F0LHU9ZCgpK2Uub2Zmc2V0KCksYz11K3I7dGhpcy5kb2NrQm90dG9tPSExLHU8aT90aGlzLmRvY2tBdD1wYXJzZUludChpLDEwKTpzK2E8Yz8odGhpcy5kb2NrQXQ9cGFyc2VJbnQocy1yK2EsMTApLHRoaXMuZG9ja0JvdHRvbT0hMCx0aGlzLmRvY2tBdDwwJiYodGhpcy5kb2NrQXQ9MCkpOih0aGlzLmRvY2tBdD1udWxsLHRoaXMuZmFzdERvY2tBdD1wYXJzZUludChzLXIrYS1uLDEwKSksdGhpcy5kb2NrQXQhPT1sJiZ0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuZnVsbHNjcmVlbiYmIXRoaXMuYWRkU2hvd0NsYXNzJiYoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7ZS5zZXQoImFkZFNob3dDbGFzcyIsITApLGUucXVldWVSZXJlbmRlcigpfSksdGhpcy5kaXNwYXRjaCgidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIiwidGltZWxpbmUtc2Nyb2xsYXJlYSIpLHRoaXMuZGlzcGF0Y2goInRvcGljOnRvZ2dsZS1hY3Rpb25zIiwidG9waWMtYWRtaW4tbWVudS1idXR0b24iKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6cmVzaXplZCIsdGhpcyx0aGlzLnF1ZXVlUmVyZW5kZXIpLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6b3BlbmVkIix0aGlzLHRoaXMucXVldWVSZXJlbmRlciksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpyZXNpemVkIix0aGlzLHRoaXMucXVldWVSZXJlbmRlciksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSl9fSwibmV3UG9zdEFkZGVkIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJuZXdQb3N0QWRkZWQiKSx1KSxyKHUsIl9xdWV1ZVJlcmVuZGVyIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfcXVldWVSZXJlbmRlciIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGltZXItaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsYyxuLGksZCxzLHApeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgic3RhdHVzVHlwZSIpLGE9KDAsdC5kZWZhdWx0KSgiY2FuUmVtb3ZlVGltZXIiLCJyZW1vdmVUb3BpY1RpbWVyIiksbyhsPXtjbGFzc05hbWVzOlsidG9waWMtc3RhdHVzLWluZm8iXSxfZGVsYXllZFJlcmVuZGVyOm51bGwsY2xvY2tJY29uOigiIisoMCxpLmljb25IVE1MKSgiZmFyLWNsb2NrIikpLmh0bWxTYWZlKCksdHJhc2hDYW5JY29uOigiIisoMCxpLmljb25IVE1MKSgidHJhc2gtYWx0IikpLmh0bWxTYWZlKCksdHJhc2hDYW5UaXRsZTpJMThuLnQoInBvc3QuY29udHJvbHMucmVtb3ZlX3RpbWVyIiksdGl0bGU6bnVsbCxub3RpY2U6bnVsbCxzaG93VG9waWNUaW1lcjpudWxsLGNhblJlbW92ZVRpbWVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09cy5SRU1JTkRFUl9UWVBFfHx0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgiY2FuTWFuYWdlVG9waWMiKX0sc2hvd1RyYXNoQ2FuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnR9LHJlbmRlclRvcGljVGltZXI6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzLG8scixhLGwsdT10aGlzOyF0aGlzLmV4ZWN1dGVBdHx8dGhpcy5leGVjdXRlQXQ8bW9tZW50KCk/dGhpcy5zZXQoInNob3dUb3BpY1RpbWVyIixudWxsKTooZT10aGlzLnRvcGljQ2xvc2VkPyJjbG9zZSI6Im9wZW4iLHZvaWQgMCE9PXRoaXMudG9waWNDbG9zZWQmJmU9PT10aGlzLnN0YXR1c1R5cGV8fCh0PW1vbWVudCh0aGlzLmV4ZWN1dGVBdCksMDwoaT0obj1tb21lbnQuZHVyYXRpb24odC1tb21lbnQoKSkpLmFzTWludXRlcygpKT8ocz0xZTMsMjE2MDxpP3M9NDMyZTU6MTQxMDxpP3M9MzZlNTo5MDxpP3M9MThlNToyPGkmJihzPTZlNCksbz10aGlzLmR1cmF0aW9ufHwwLGw9e3RpbWVMZWZ0Om4uaHVtYW5pemUoITApLGR1cmF0aW9uOm1vbWVudC5kdXJhdGlvbihvLCJob3VycyIpLmh1bWFuaXplKCl9LChyPXRoaXMuY2F0ZWdvcnlJZCkmJihhPWQuZGVmYXVsdC5maW5kQnlJZChyKSxsPU9iamVjdC5hc3NpZ24oe2NhdGVnb3J5TmFtZTphLmdldCgic2x1ZyIpLGNhdGVnb3J5VXJsOmEuZ2V0KCJ1cmwiKX0sbCkpLHRoaXMuc2V0UHJvcGVydGllcyh7dGl0bGU6KCIiK21vbWVudCh0aGlzLmV4ZWN1dGVBdCkuZm9ybWF0KCJMTExMIikpLmh0bWxTYWZlKCksbm90aWNlOigiIitJMThuLnQodGhpcy5fbm90aWNlS2V5KCksbCkpLmh0bWxTYWZlKCksc2hvd1RvcGljVGltZXI6ITB9KSwidGVzdCIhPT1wLmRlZmF1bHQuZW52aXJvbm1lbnQmJih0aGlzLl9kZWxheWVkUmVyZW5kZXI9KDAsYy5sYXRlcikoZnVuY3Rpb24oKXt1LnJlbmRlclRvcGljVGltZXIoKX0scykpKTp0aGlzLnNldCgic2hvd1RvcGljVGltZXIiLG51bGwpKSl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbmRlclRvcGljVGltZXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbW92ZVRvcGljVGltZXImJiQodGhpcy5lbGVtZW50KS5vbigiY2xpY2sudG9waWMtdGltZXItcmVtb3ZlIiwiYnV0dG9uIix0aGlzLnJlbW92ZVRvcGljVGltZXIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub2ZmKCJjbGljay50b3BpYy10aW1lci1yZW1vdmUiLHRoaXMucmVtb3ZlVG9waWNUaW1lciksdGhpcy5fZGVsYXllZFJlcmVuZGVyJiYoMCxjLmNhbmNlbCkodGhpcy5fZGVsYXllZFJlcmVuZGVyKX0sX25vdGljZUtleTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdHVzVHlwZTtyZXR1cm4gdGhpcy5iYXNlZE9uTGFzdFBvc3Q/InRvcGljLnN0YXR1c191cGRhdGVfbm90aWNlLmF1dG9fIitlKyJfYmFzZWRfb25fbGFzdF9wb3N0IjoidG9waWMuc3RhdHVzX3VwZGF0ZV9ub3RpY2UuYXV0b18iK2V9fSwiY2FuUmVtb3ZlVGltZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImNhblJlbW92ZVRpbWVyIiksbCksbyhsLCJzaG93VHJhc2hDYW4iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNob3dUcmFzaENhbiIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGl0bGUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2tleS1lbnRlci1lc2NhcGUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2VsZW1lbnRJZDoidG9waWMtdGl0bGUifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RyYWNrLXNlbGVjdGVkIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4ub2JzZXJ2ZXMpKCJzZWxlY3RlZCIpLHI9cz17dGFnTmFtZToic3BhbiIsc2VsZWN0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2VsZWN0ZWQsdD10aGlzLnNlbGVjdGVkTGlzdCxuPXRoaXMuc2VsZWN0ZWRJZDtlP3QuYWRkT2JqZWN0KG4pOnQucmVtb3ZlT2JqZWN0KG4pfX0sYT0ic2VsZWN0aW9uQ2hhbmdlZCIsbD1baV0sbz0obz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInNlbGVjdGlvbkNoYW5nZWQiKSk/by52YWx1ZTp2b2lkIDAsdT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gb319LGM9cyxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItYmFkZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJjb3VudCIpLG89KDAsdC5kZWZhdWx0KSgiYmFkZ2UiLCJ1c2VyIiksaShyPXt0YWdOYW1lOiJzcGFuIixzaG93R3JhbnRDb3VudDpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMTxlfSxiYWRnZVVybDpmdW5jdGlvbigpe3ZhciBlPSIiIT09KGU9dGhpcy5nZXQoInVzZXIudXNlcm5hbWVfbG93ZXIiKXx8IiIpPyI/dXNlcm5hbWU9IitlOiIiO3JldHVybiB0aGlzLmdldCgiYmFkZ2UudXJsIikrZX19LCJzaG93R3JhbnRDb3VudCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2hvd0dyYW50Q291bnQiKSxyKSxpKHIsImJhZGdlVXJsIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJiYWRnZVVybCIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1jYXJkLWNvbnRlbnRzIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbWl4aW5zL2NhcmQtY29udGVudHMtYmFzZSIsImRpc2NvdXJzZS9taXhpbnMvY2xlYW5zLXVwIiwiZGlzY291cnNlL2xpYi9zZXR0aW5ncyIsIkBlbWJlci9hcHBsaWNhdGlvbiJdLGZ1bmN0aW9uKGUsaSx0LHMsbixvLHIsYSxsLHUsYyxkLHAsbSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGYobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGgsYixnLHYseSxfLHcseCxrLFAsaixULEUsTyxTLEMsTTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoYy5kZWZhdWx0LHUuZGVmYXVsdCxkLmRlZmF1bHQsKGg9KDAsby5kZWZhdWx0KSgidXNlci5zdGFmZiIpLGI9KDAsby5kZWZhdWx0KSgidXNlci50cnVzdF9sZXZlbCIpLGc9KDAsby5kZWZhdWx0KSgidXNlci5uYW1lIiksdj0oMCxvLmRlZmF1bHQpKCJ1c2VybmFtZSIpLHk9KDAsby5kZWZhdWx0KSgidXNlcm5hbWUiLCJ0b3BpY1Bvc3RDb3VudCIpLF89KDAsby5kZWZhdWx0KSgidXNlci51c2VyX2ZpZWxkcy5AZWFjaC52YWx1ZSIpLHc9KDAsby5kZWZhdWx0KSgidXNlci50cnVzdF9sZXZlbCIpLHg9KDAsby5kZWZhdWx0KSgidXNlci5iYWRnZV9jb3VudCIsInVzZXIuZmVhdHVyZWRfdXNlcl9iYWRnZXMubGVuZ3RoIiksaz0oMCxvLmRlZmF1bHQpKCJ1c2VyLnRpbWVfcmVhZCIsInVzZXIucmVjZW50X3RpbWVfcmVhZCIpLFA9KDAsby5kZWZhdWx0KSgidXNlci5yZWNlbnRfdGltZV9yZWFkIiksaj0oMCxvLmRlZmF1bHQpKCJzaG93UmVjZW50VGltZVJlYWQiLCJ1c2VyLnRpbWVfcmVhZCIsInJlY2VudFRpbWVSZWFkIiksVD0oMCxvLm9ic2VydmVzKSgidXNlci5jYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIpLGYoRT17ZWxlbWVudElkOiJ1c2VyLWNhcmQiLGNsYXNzTmFtZXM6InVzZXItY2FyZCIsdHJpZ2dlcmluZ0xpbmtDbGFzczoibWVudGlvbiIsY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOnNob3ciLCJzaG93QmFkZ2VzIiwidXNlci5jYXJkX2JhY2tncm91bmQ6Om5vLWJnIiwiaXNGaXhlZDpmaXhlZCIsInVzZXJuYW1lQ2xhc3MiXSxhbGxvd0JhY2tncm91bmRzOigwLGEuc2V0dGluZykoImFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHMiKSxzaG93QmFkZ2VzOigwLGEuc2V0dGluZykoImVuYWJsZV9iYWRnZXMiKSxwb3N0U3RyZWFtOigwLHQuYWxpYXMpKCJ0b3BpYy5wb3N0U3RyZWFtIiksZW5vdWdoUG9zdHNGb3JGaWx0ZXJpbmc6KDAsdC5ndGUpKCJ0b3BpY1Bvc3RDb3VudCIsMiksc2hvd0ZpbHRlcjooMCx0LmFuZCkoInZpZXdpbmdUb3BpYyIsInBvc3RTdHJlYW0uaGFzTm9GaWx0ZXJzIiwiZW5vdWdoUG9zdHNGb3JGaWx0ZXJpbmciKSxzaG93TmFtZTooMCxhLnByb3BlcnR5Tm90RXF1YWwpKCJ1c2VyLm5hbWUiLCJ1c2VyLnVzZXJuYW1lIiksaGFzVXNlckZpbHRlcnM6KDAsdC5ndCkoInBvc3RTdHJlYW0udXNlckZpbHRlcnMubGVuZ3RoIiwwKSxzaG93TW9yZUJhZGdlczooMCx0Lmd0KSgibW9yZUJhZGdlc0NvdW50IiwwKSxzaG93RGVsZXRlOigwLHQuYW5kKSgidmlld2luZ0FkbWluIiwic2hvd05hbWUiLCJ1c2VyLmNhbkJlRGVsZXRlZCIpLGxpbmtXZWJzaXRlOigwLHQubm90KSgidXNlci5pc0Jhc2ljIiksaGFzTG9jYXRpb25PcldlYnNpdGU6KDAsdC5vcikoInVzZXIubG9jYXRpb24iLCJ1c2VyLndlYnNpdGVfbmFtZSIpLGlzU3VzcGVuZGVkT3JIYXNCaW86KDAsdC5vcikoInVzZXIuc3VzcGVuZF9yZWFzb24iLCJ1c2VyLmJpb19jb29rZWQiKSxzaG93Q2hlY2tFbWFpbDooMCx0LmFuZCkoInVzZXIuc3RhZ2VkIiwiY2FuQ2hlY2tFbWFpbHMiKSx1c2VyOm51bGwsdG9waWNQb3N0Q291bnQ6bnVsbCxzaG93RmVhdHVyZWRUb3BpYzooMCx0LmFuZCkoInVzZXIuZmVhdHVyZWRfdG9waWMiLCJzaXRlU2V0dGluZ3MuYWxsb3dfZmVhdHVyZWRfdG9waWNfb25fdXNlcl9wcm9maWxlcyIpLHN0YWZmOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJzdGFmZiI6IiJ9LG5ld1VzZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lPyJuZXctdXNlciI6IiJ9LG5hbWVGaXJzdDpmdW5jdGlvbihlKXtyZXR1cm4oMCxwLnByaW9yaXRpemVOYW1lSW5VeCkoZSx0aGlzLnNpdGVTZXR0aW5ncyl9LHVzZXJuYW1lQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InVzZXItY2FyZC0iK2U6IiJ9LHRvZ2dsZVBvc3RzTGFiZWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSTE4bi50KCJ0b3BpYy5maWx0ZXJfdG8iLHt1c2VybmFtZTplLGNvdW50OnR9KX0scHVibGljVXNlckZpZWxkczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2l0ZS5nZXQoInVzZXJfZmllbGRzIik7aWYoISgwLGkuaXNFbXB0eSkoZSkpe3ZhciBuPXRoaXMuZ2V0KCJ1c2VyLnVzZXJfZmllbGRzIik7cmV0dXJuIGUuZmlsdGVyQnkoInNob3dfb25fdXNlcl9jYXJkIiwhMCkuc29ydEJ5KCJwb3NpdGlvbiIpLm1hcChmdW5jdGlvbihlKXsoMCxzLnNldCkoZSwiZGFzaGVyaXplZF9uYW1lIixlLmdldCgibmFtZSIpLmRhc2hlcml6ZSgpKTt2YXIgdD1uP25bZS5nZXQoImlkIildOm51bGw7cmV0dXJuKDAsaS5pc0VtcHR5KSh0KT9udWxsOnMuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSkuY29tcGFjdCgpfX0scmVtb3ZlTm9Gb2xsb3c6ZnVuY3Rpb24oZSl7cmV0dXJuIDI8ZSYmIXRoaXMuc2l0ZVNldHRpbmdzLnRsM19saW5rc19ub19mb2xsb3d9LG1vcmVCYWRnZXNDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9LHNob3dSZWNlbnRUaW1lUmVhZDpmdW5jdGlvbihlLHQpe3JldHVybiBlIT09dCYmMCE9PXR9LHJlY2VudFRpbWVSZWFkOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuZHVyYXRpb25UaW55KShlKX0sdGltZVJlYWRUb29sdGlwOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT9JMThuLnQoInRpbWVfcmVhZF9yZWNlbnRseV90b29sdGlwIix7dGltZV9yZWFkOigwLGwuZHVyYXRpb25UaW55KSh0KSxyZWNlbnRfdGltZV9yZWFkOm59KTpJMThuLnQoInRpbWVfcmVhZF90b29sdGlwIix7dGltZV9yZWFkOigwLGwuZHVyYXRpb25UaW55KSh0KX0pfSxhZGRCYWNrZ3JvdW5kOmZ1bmN0aW9uKCl7dmFyIGUsdCxuOyF0aGlzLmFsbG93QmFja2dyb3VuZHN8fChlPXRoaXMuZWxlbWVudCkmJih0PXRoaXMuZ2V0KCJ1c2VyLmNhcmRfYmFja2dyb3VuZF91cGxvYWRfdXJsIiksbj0oMCxpLmlzRW1wdHkpKHQpPyIiOiJ1cmwoIitEaXNjb3Vyc2UuZ2V0VVJMV2l0aENETih0KSsiKSIsZS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9bil9LF9zaG93Q2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3RoaXMuX3Bvc2l0aW9uQ2FyZCh0KSx0aGlzLnNldFByb3BlcnRpZXMoe3Zpc2libGU6ITAsbG9hZGluZzohMH0pO3ZhciBpPXtmb3JDYXJkOnRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uZXdfdXNlcl9jYXJkX3JvdXRlLGluY2x1ZGVfcG9zdF9jb3VudF9mb3I6dGhpcy5nZXQoInRvcGljLmlkIil9O3IuZGVmYXVsdC5maW5kQnlVc2VybmFtZShlLGkpLnRoZW4oZnVuY3Rpb24oZSl7ZS50b3BpY19wb3N0X2NvdW50JiZuLnNldCgidG9waWNQb3N0Q291bnQiLGUudG9waWNfcG9zdF9jb3VudFtpLmluY2x1ZGVfcG9zdF9jb3VudF9mb3JdKSxuLnNldFByb3BlcnRpZXMoe3VzZXI6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbi5fY2xvc2UoKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gbi5zZXQoImxvYWRpbmciLG51bGwpfSl9LF9jbG9zZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe3VzZXI6bnVsbCx0b3BpY1Bvc3RDb3VudDpudWxsfSl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSxhY3Rpb25zOntjbG9zZTpmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCl9LGNvbXBvc2VQTTpmdW5jdGlvbihlLHQpe3RoaXMuX2Nsb3NlKCksKDAsbS5nZXRPd25lcikodGhpcykubG9va3VwKCJyb3V0ZXI6bWFpbiIpLnNlbmQoImNvbXBvc2VQcml2YXRlTWVzc2FnZSIsZSx0KX0sY2FuY2VsRmlsdGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wb3N0U3RyZWFtO2UuY2FuY2VsRmlsdGVyKCksZS5yZWZyZXNoKCksdGhpcy5fY2xvc2UoKX0sdG9nZ2xlUG9zdHM6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVBvc3RzKHRoaXMudXNlciksdGhpcy5fY2xvc2UoKX0sZGVsZXRlVXNlcjpmdW5jdGlvbigpe3RoaXMudXNlci5kZWxldGUoKSx0aGlzLl9jbG9zZSgpfSxzaG93VXNlcjpmdW5jdGlvbihlKXt0aGlzLnNob3dVc2VyKGUpLHRoaXMuX2Nsb3NlKCl9LGNoZWNrRW1haWw6ZnVuY3Rpb24oZSl7ZS5jaGVja0VtYWlsKCl9fX0sInN0YWZmIixbaF0sKE89KE89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJzdGFmZiIpKT9PLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gT319KSxFKSxmKEUsIm5ld1VzZXIiLFtiXSwoUz0oUz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsIm5ld1VzZXIiKSk/Uy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSksRSksZihFLCJuYW1lRmlyc3QiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsIm5hbWVGaXJzdCIpLEUpLGYoRSwidXNlcm5hbWVDbGFzcyIsW3ZdLChDPShDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRSwidXNlcm5hbWVDbGFzcyIpKT9DLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KSxFKSxmKEUsInRvZ2dsZVBvc3RzTGFiZWwiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInRvZ2dsZVBvc3RzTGFiZWwiKSxFKSxmKEUsInB1YmxpY1VzZXJGaWVsZHMiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInB1YmxpY1VzZXJGaWVsZHMiKSxFKSxmKEUsInJlbW92ZU5vRm9sbG93Iixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJyZW1vdmVOb0ZvbGxvdyIpLEUpLGYoRSwibW9yZUJhZGdlc0NvdW50IixbeF0sKE09KE09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJtb3JlQmFkZ2VzQ291bnQiKSk/TS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIE19fSksRSksZihFLCJzaG93UmVjZW50VGltZVJlYWQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInNob3dSZWNlbnRUaW1lUmVhZCIpLEUpLGYoRSwicmVjZW50VGltZVJlYWQiLFtQXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInJlY2VudFRpbWVSZWFkIiksRSksZihFLCJ0aW1lUmVhZFRvb2x0aXAiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInRpbWVSZWFkVG9vbHRpcCIpLEUpLGYoRSwiYWRkQmFja2dyb3VuZCIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRSwiYWRkQmFja2dyb3VuZCIpLEUpLEUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1maWVsZCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJmaWVsZC5uYW1lIikscyhyPXtjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWZpZWxkIiwiZmllbGQuZmllbGRfdHlwZSIsImN1c3RvbUZpZWxkQ2xhc3MiXSxsYXlvdXROYW1lOigwLGkuZm10KSgiZmllbGQuZmllbGRfdHlwZSIsImNvbXBvbmVudHMvdXNlci1maWVsZHMvJUAiKSxub25lTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4idXNlcl9maWVsZHMubm9uZSJ9LGN1c3RvbUZpZWxkQ2xhc3M6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oZT1lLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvWyFcIiMkJSYnXChcKVwqXCssXC5cLzo7PD0+XD9cQFxbXFxcXVxeYFx7XHxcfX5dL2csIiIpLnRvTG93ZXJDYXNlKCkpJiYidXNlci1maWVsZC0iK2V9fSwibm9uZUxhYmVsIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsIm5vbmVMYWJlbCIpLHIpLHMociwiY3VzdG9tRmllbGRDbGFzcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiY3VzdG9tRmllbGRDbGFzcyIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1mbGFnLXBlcmNlbnRhZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwZXJjZW50YWdlIiksbz0oMCx0LmRlZmF1bHQpKCJhZ3JlZWQiLCJkaXNhZ3JlZWQiLCJpZ25vcmVkIiksaShyPXt0YWdOYW1lOiIiLHNob3dQZXJjZW50YWdlOmZ1bmN0aW9uKGUpe3JldHVybiAzPD1lLnRvdGFsfSxwZXJjZW50YWdlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1lK3QrbixzPXt0b3RhbDppfTswPGkmJihzLmFncmVlZD1NYXRoLnJvdW5kKGUvaSoxMDApLHMuZGlzYWdyZWVkPU1hdGgucm91bmQodC9pKjEwMCkscy5pZ25vcmVkPU1hdGgucm91bmQobi9pKjEwMCkpO3ZhciBvPU1hdGgubWF4KGUsdCxuKTtyZXR1cm4gbz09PWU/KHMuaWNvbj0idGh1bWJzLXVwIixzLmNsYXNzTmFtZT0iYWdyZWVkIixzLmxhYmVsPXMuYWdyZWVkKyIlIik6bz09PXQ/KHMuaWNvbj0idGh1bWJzLWRvd24iLHMuY2xhc3NOYW1lPSJkaXNhZ3JlZWQiLHMubGFiZWw9cy5kaXNhZ3JlZWQrIiUiKToocy5pY29uPSJleHRlcm5hbC1saW5rLWFsdCIscy5jbGFzc05hbWU9Imlnbm9yZWQiLHMubGFiZWw9cy5pZ25vcmVkKyIlIikscy50aXRsZT1JMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2Uuc3VtbWFyeSIse2FncmVlZDpJMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2UuYWdyZWVkIix7Y291bnQ6cy5hZ3JlZWR9KSxkaXNhZ3JlZWQ6STE4bi50KCJyZXZpZXcudXNlcl9wZXJjZW50YWdlLmRpc2FncmVlZCIse2NvdW50OnMuZGlzYWdyZWVkfSksaWdub3JlZDpJMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2UuaWdub3JlZCIse2NvdW50OnMuaWdub3JlZH0pLGNvdW50Oml9KSxzfX0sInNob3dQZXJjZW50YWdlIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzaG93UGVyY2VudGFnZSIpLHIpLGkociwicGVyY2VudGFnZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwicGVyY2VudGFnZSIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1pbmZvIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXC1cXyBcLl0vZywiIikudG9Mb3dlckNhc2UoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5ub3JtYWxpemU9dSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJ1c2VyLnVzZXJuYW1lIiksYT0oMCx0LmRlZmF1bHQpKCJ1c2VyLm5hbWUiLCJ1c2VyLnVzZXJuYW1lIiksbyhsPXtjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWluZm8iLCJzaXplIl0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLXVzZXJuYW1lIl0sc2l6ZToic21hbGwiLHVzZXJQYXRoOmZ1bmN0aW9uKGUpe3JldHVybigwLHMudXNlclBhdGgpKGUpfSwiZGF0YS11c2VybmFtZSI6KDAsbi5hbGlhcykoInVzZXIudXNlcm5hbWUiKSxoYXNCbG9jazooMCxuLmFsaWFzKSgidGVtcGxhdGUiKSxuYW1lOmZ1bmN0aW9uKGUsdCl7aWYoZSYmdSh0KSE9PXUoZSkpcmV0dXJuIGV9fSwidXNlclBhdGgiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInVzZXJQYXRoIiksbCksbyhsLCJuYW1lIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJuYW1lIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLWxpbmsiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImEiLGF0dHJpYnV0ZUJpbmRpbmdzOlsiaHJlZiIsImRhdGEtdXNlci1jYXJkIl0saHJlZjooMCx0LmFsaWFzKSgidXNlci5wYXRoIiksImRhdGEtdXNlci1jYXJkIjooMCx0LmFsaWFzKSgidXNlci51c2VybmFtZSIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLm9ic2VydmVzKSgibm90aWZpY2F0aW9ucy5sZW5ndGgiLCJub3RpZmljYXRpb25zLkBlYWNoLnJlYWQiKSxvPXM9e3dpZGdldDoidXNlci1ub3RpZmljYXRpb25zLWxhcmdlIixpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXJncz17bm90aWZpY2F0aW9uczp0aGlzLm5vdGlmaWNhdGlvbnN9fSxfdHJpZ2dlclJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX19LHI9Il90cmlnZ2VyUmVmcmVzaCIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIl90cmlnZ2VyUmVmcmVzaCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLCJkaXNjb3Vyc2UvbGliL3VzZXItc2VhcmNoIiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIl0sZnVuY3Rpb24oZSx0LG4saSx2LHkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCxuLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50Iikscj0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGE9KDAsbi5vYnNlcnZlcykoInVzZXJuYW1lcyIpLHMobD17YXV0b2NvcnJlY3Q6ITEsYXV0b2NhcGl0YWxpemU6ITEsbmFtZToidXNlci1zZWxlY3RvciIsY2FuUmVjZWl2ZVVwZGF0ZXM6ITEsc2luZ2xlOiExLGZ1bGxXaWR0aFdyYXA6ITEsaW5pdDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3Bhc3RlPWZ1bmN0aW9uKGUpe3ZhciB0PSIiO2lmKHdpbmRvdy5jbGlwYm9hcmREYXRhJiZ3aW5kb3cuY2xpcGJvYXJkRGF0YS5nZXREYXRhP3Q9d2luZG93LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgiVGV4dCIpOmUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLmdldERhdGEmJih0PWUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIikpLDA8dC5sZW5ndGgpcmV0dXJuIG4uaW1wb3J0VGV4dCh0KSxlLnByZXZlbnREZWZhdWx0KCksITF9fSxkaWRVcGRhdGVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNhblJlY2VpdmVVcGRhdGVzJiZ0aGlzLl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSh7dXBkYXRlRGF0YTohMH0pfSxfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlOmZ1bmN0aW9uKCl7JCh0aGlzLmVsZW1lbnQpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5fcGFzdGUpfSxfY3JlYXRlQXV0b2NvbXBsZXRlSW5zdGFuY2U6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt2YXIgdD1pW2VdO3JldHVybiEwPT09dHx8InRydWUiPT09dH1mdW5jdGlvbiBuKCl7dmFyIGU9cD9bXTpzO3JldHVybiByJiZkJiZlLmNvbmNhdChbci51c2VybmFtZV0pLGUuY29uY2F0KGkuZXhjbHVkZWRVc2VybmFtZXN8fFtdKX12YXIgaT10aGlzLHM9W10sbz1bXSxyPXRoaXMuY3VycmVudFVzZXIsYT10KCJpbmNsdWRlTWVudGlvbmFibGVHcm91cHMiKSxsPXQoImluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwcyIpLHU9dCgiaW5jbHVkZUdyb3VwcyIpLGM9dCgiYWxsb3dlZFVzZXJzIiksZD10KCJleGNsdWRlQ3VycmVudFVzZXIiKSxwPXQoInNpbmdsZSIpLG09dCgiYWxsb3dBbnkiKSxmPXQoImRpc2FibGVkIiksaD10KCJhbGxvd0VtYWlscyIpLGI9dCgiZnVsbFdpZHRoV3JhcCIpO3RoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5fcGFzdGUpO3ZhciBnPXRoaXM7JCh0aGlzLmVsZW1lbnQpLnZhbCh0aGlzLnVzZXJuYW1lcykuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx5LmZpbmRSYXdUZW1wbGF0ZSkoInVzZXItc2VsZWN0b3ItYXV0b2NvbXBsZXRlIiksZGlzYWJsZWQ6ZixzaW5nbGU6cCxhbGxvd0FueTptLHVwZGF0ZURhdGE6ISghZXx8IWUudXBkYXRlRGF0YSkmJmUudXBkYXRlRGF0YSxmdWxsV2lkdGhXcmFwOmIsZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCx2LmRlZmF1bHQpKHt0ZXJtOmUsdG9waWNJZDpnLnRvcGljSWQsZXhjbHVkZTpuKCksaW5jbHVkZUdyb3Vwczp1LGFsbG93ZWRVc2VyczpjLGluY2x1ZGVNZW50aW9uYWJsZUdyb3VwczphLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczpsLGdyb3VwTWVtYmVyc09mOmcuZ3JvdXBNZW1iZXJzT2YsYWxsb3dFbWFpbHM6aH0pfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtpZihlLnVzZXJuYW1lfHxlLm5hbWUpcmV0dXJuIGUudXNlcm5hbWV8fG8ucHVzaChlLm5hbWUpLGUudXNlcm5hbWV8fGUubmFtZTt2YXIgdD1uKCk7cmV0dXJuIGUudXNlcm5hbWVzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4tMT09PXQuaW5kZXhPZihlKX0pfSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe3ZhciB0PSExO2U9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuLTE8by5pbmRleE9mKGUpJiYodD0hMCksZS51c2VybmFtZT9lLnVzZXJuYW1lOmV9KTt2YXIgbj1bXTtBcnJheS5pc0FycmF5KGcudXNlcm5hbWVzKT9uPWcudXNlcm5hbWVzOmcudXNlcm5hbWVzJiYobj1nLnVzZXJuYW1lcy5zcGxpdCgiLCIpKSxnLnNldFByb3BlcnRpZXMoe3VzZXJuYW1lczplLmpvaW4oIiwiKSxoYXNHcm91cHM6dH0pLHM9ZSxnLm9uQ2hhbmdlQ2FsbGJhY2smJmcub25DaGFuZ2VDYWxsYmFjayhuLHMpfSxyZXZlcnNlVHJhbnNmb3JtOmZ1bmN0aW9uKGUpe3JldHVybnt1c2VybmFtZTplfX19KX0saW1wb3J0VGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49W107MDwodGhpcy51c2VybmFtZXN8fCIiKS5sZW5ndGgmJihuPXRoaXMudXNlcm5hbWVzLnNwbGl0KCIsIikpLChlfHwiIikuc3BsaXQoL1ssIFxuXSsvKS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyEoMDwoZT1lLnJlcGxhY2UoL15AKy8sIiIpLnRyaW0oKSkubGVuZ3RoKXx8dC5leGNsdWRlZFVzZXJuYW1lcyYmdC5leGNsdWRlZFVzZXJuYW1lcy5pbmNsdWRlcyhlKXx8bi5wdXNoKGUpfSksdGhpcy5zZXQoInVzZXJuYW1lcyIsbi51bmlxKCkuam9pbigiLCIpKSx0aGlzLmNhblJlY2VpdmVVcGRhdGVzfHx0aGlzLl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSh7dXBkYXRlRGF0YTohMH0pfSxfY2xlYXJJbnB1dDpmdW5jdGlvbigpezE8YXJndW1lbnRzLmxlbmd0aCYmKDAsdC5pc0VtcHR5KSh0aGlzLnVzZXJuYW1lcykmJiQodGhpcy5lbGVtZW50KS5wYXJlbnQoKS5maW5kKCJhIikuY2xpY2soKX19LCJfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlIiksbCkscyhsLCJfY3JlYXRlQXV0b2NvbXBsZXRlSW5zdGFuY2UiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSIpLGwpLHMobCwiX2NsZWFySW5wdXQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jbGVhcklucHV0IiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN0YXQiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJ1c2VyLXN0YXQiXSx0eXBlOiJudW1iZXIiLGlzTnVtYmVyOigwLHQuZXF1YWwpKCJ0eXBlIiwibnVtYmVyIiksaXNEdXJhdGlvbjooMCx0LmVxdWFsKSgidHlwZSIsImR1cmF0aW9uIil9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1zdHJlYW0taXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOnVzZXItc3RyZWFtLWl0ZW0iLCI6aXRlbSIsIml0ZW0uaGlkZGVuIiwiaXRlbS5kZWxldGVkOmRlbGV0ZWQiLCJtb2RlcmF0b3JBY3Rpb24iXSxtb2RlcmF0b3JBY3Rpb246KDAsbi5wcm9wZXJ0eUVxdWFsKSgiaXRlbS5wb3N0X3R5cGUiLCJzaXRlLnBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpLGFjdGlvbkRlc2NyaXB0aW9uOigwLGkuYWN0aW9uRGVzY3JpcHRpb24pKCJpdGVtLmFjdGlvbl9jb2RlIiwiaXRlbS5jcmVhdGVkX2F0IiwiaXRlbS5hY3Rpb25fY29kZV93aG8iKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN0cmVhbSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIiwiZGlzY291cnNlL21vZGVscy9wb3N0IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0Ijt2YXIgcCxtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocD0oMCxjLm9ic2VydmVzKSgic3RyZWFtLnVzZXIuaWQiKSxtPXtfaW5pdGlhbGl6ZTooMCxkLm9uKSgiaW5pdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldCgic3RyZWFtLmZpbHRlciIpO2UmJnRoaXMuc2V0KCJjbGFzc05hbWVzIixbInVzZXItc3RyZWFtIiwiZmlsdGVyLSIrZS50b1N0cmluZygpLnJlcGxhY2UoIiwiLCItIildKX0pLGxvYWRpbmc6ITEsZXllbGluZVNlbGVjdG9yOiIudXNlci1zdHJlYW0gLml0ZW0iLGNsYXNzTmFtZXM6WyJ1c2VyLXN0cmVhbSJdLF9zY3JvbGxUb3BPbk1vZGVsQ2hhbmdlOmZ1bmN0aW9uKCl7KDAsdC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiAkKGRvY3VtZW50KS5zY3JvbGxUb3AoMCl9KX0sX2luc2VydGVkOigwLGQub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOiJ1c2VyLXN0cmVhbS12aWV3In0pLCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLCQodGhpcy5lbGVtZW50KS5vbigiY2xpY2suZGV0YWlscy1kaXNhYmxlZCIsImRldGFpbHMuZGlzYWJsZWQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KSwkKHRoaXMuZWxlbWVudCkub24oImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5leGNlcnB0IGEiLGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQudHJhY2tDbGljayhlKX0pfSksX2Rlc3Ryb3llZDooMCxkLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IixmdW5jdGlvbigpe3RoaXMudW5iaW5kU2Nyb2xsaW5nKCJ1c2VyLXN0cmVhbS12aWV3IiksJCh3aW5kb3cpLnVuYmluZCgicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiKSwkKHRoaXMuZWxlbWVudCkub2ZmKCJjbGljay5kZXRhaWxzLWRpc2FibGVkIiwiZGV0YWlscy5kaXNhYmxlZCIpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5leGNlcnB0IGEiKX0pLGFjdGlvbnM6e3JlbW92ZUJvb2ttYXJrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc3RyZWFtO28uZGVmYXVsdC51cGRhdGVCb29rbWFyayhlLmdldCgicG9zdF9pZCIpLCExKS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmUoZSl9KS5jYXRjaChsLnBvcHVwQWpheEVycm9yKX0scmVzdW1lRHJhZnQ6ZnVuY3Rpb24obil7dmFyIGk9KDAsdS5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7aS5nZXQoIm1vZGVsLnZpZXdPcGVuIikmJmkuY2xvc2UoKSxuLmdldCgicG9zdFVybCIpP3IuZGVmYXVsdC5yb3V0ZVRvKG4uZ2V0KCJwb3N0VXJsIikpOmEuZGVmYXVsdC5nZXQobi5kcmFmdF9rZXkpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kcmFmdHx8bi5kYXRhO3QmJmkub3Blbih7ZHJhZnQ6dCxkcmFmdEtleTpuLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOmUuZHJhZnRfc2VxdWVuY2V9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpeygwLGwucG9wdXBBamF4RXJyb3IpKGUpfSl9LHJlbW92ZURyYWZ0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc3RyZWFtO2EuZGVmYXVsdC5jbGVhcihlLmRyYWZ0X2tleSxlLnNlcXVlbmNlKS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmUoZSl9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxsLnBvcHVwQWpheEVycm9yKShlKX0pfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5sb2FkaW5nfHwodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLnN0cmVhbS5maW5kSXRlbXMoKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoImxvYWRpbmciLCExKSxlLmV5ZWxpbmUuZmx1c2hSZXN0KCl9KSl9fX0saD1tLGI9Il9zY3JvbGxUb3BPbk1vZGVsQ2hhbmdlIixnPVtwXSxmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3Njcm9sbFRvcE9uTW9kZWxDaGFuZ2UiKSk/Zi52YWx1ZTp2b2lkIDAsdj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19LHk9bSxfPXt9LE9iamVjdC5rZXlzKHYpLmZvckVhY2goZnVuY3Rpb24oZSl7X1tlXT12W2VdfSksXy5lbnVtZXJhYmxlPSEhXy5lbnVtZXJhYmxlLF8uY29uZmlndXJhYmxlPSEhXy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBffHxfLmluaXRpYWxpemVyKSYmKF8ud3JpdGFibGU9ITApLF89Zy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChoLGIsZSl8fGV9LF8pLHkmJnZvaWQgMCE9PV8uaW5pdGlhbGl6ZXImJihfLnZhbHVlPV8uaW5pdGlhbGl6ZXI/Xy5pbml0aWFsaXplci5jYWxsKHkpOnZvaWQgMCxfLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Xy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLGIsXyksXz1udWxsKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS1jYXRlZ29yeS1zZWFyY2giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInVzZXIiLCJjYXRlZ29yeSIpLG89cz17dGFnTmFtZToiIixzZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4iQCIrdGhpcy5nZXQoInVzZXIudXNlcm5hbWUiKSsiICMiK3RoaXMuZ2V0KCJjYXRlZ29yeS5zbHVnIil9fSxyPSJzZWFyY2hQYXJhbXMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzZWFyY2hQYXJhbXMiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN1bW1hcnktc2VjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInRvcC1zdWItc2VjdGlvbiJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS10b3BpY3MtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoIml0ZW1zLmxlbmd0aCIpLG89cz17dGFnTmFtZToiIixoYXNNb3JlOmZ1bmN0aW9uKGUpe3JldHVybiA2PD1lfX0scj0iaGFzTW9yZSIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImhhc01vcmUiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3dhdGNoLXJlYWQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2lzLWVsZW1lbnQtaW4tdmlld3BvcnQiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciB0LG49dGhpcy5jdXJyZW50VXNlcjtuJiYoImZhcSIhPT0odD10aGlzLnBhdGgpJiYiZ3VpZGVsaW5lcyIhPT10fHwkKHdpbmRvdykub24oImxvYWQuZmFxIHJlc2l6ZS5mYXEgc2Nyb2xsLmZhcSIsZnVuY3Rpb24oKXshbi5nZXQoInJlYWRfZmFxIikmJigwLGkuZGVmYXVsdCkoJCgiLmNvbnRlbnRzIHAiKS5sYXN0KCkpJiZlLmFjdGlvbigpfSkpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh3aW5kb3cpLm9mZigibG9hZC5mYXEgcmVzaXplLmZhcSBzY3JvbGwuZmFxIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yYXctdmlld3MvbGlzdC9wb3N0LWNvdW50LW9yLWJhZGdlcyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPXtwb3N0Q291bnRzUHJlc2VudDooMCx0Lm9yKSgidG9waWMudW5yZWFkIiwidG9waWMuZGlzcGxheU5ld1Bvc3RzIiksc2hvd0JhZGdlczooMCx0LmFuZCkoInBvc3RCYWRnZXNFbmFibGVkIiwicG9zdENvdW50c1ByZXNlbnQiKSxuZXdEb3RUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iIjpJMThuLnQoImZpbHRlcnMubmV3Lmxvd2VyX3RpdGxlIil9fSxvPXMscj0ibmV3RG90VGV4dCIsYT1baS5kZWZhdWx0XSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywibmV3RG90VGV4dCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yYXctdmlld3MvbGlzdC9wb3N0cy1jb3VudC1jb2x1bW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInRvcGljLmxpa2VfY291bnQiLCJ0b3BpYy5wb3N0c19jb3VudCIpLHI9KDAsdC5kZWZhdWx0KSgidG9waWMucmVwbHlDb3VudCIsInJhdGlvVGV4dCIpLGE9KDAsdC5kZWZhdWx0KSgicmF0aW8iKSxzKGw9e3RhZ05hbWU6InRkIixyYXRpbzpmdW5jdGlvbihlLHQpe3ZhciBuPXBhcnNlRmxvYXQoZSksaT1wYXJzZUZsb2F0KHQpO3JldHVybiBpPDEwPzA6KG58fDApL2l9LHRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEkxOG4ubWVzc2FnZUZvcm1hdCgicG9zdHNfbGlrZXNfTUYiLHtjb3VudDplLHJhdGlvOnR9KS50cmltKCl9LHJhdGlvVGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGVTZXR0aW5ncztyZXR1cm4gZT50LnRvcGljX3Bvc3RfbGlrZV9oZWF0X2hpZ2g/ImhpZ2giOmU+dC50b3BpY19wb3N0X2xpa2VfaGVhdF9tZWRpdW0/Im1lZCI6ZT50LnRvcGljX3Bvc3RfbGlrZV9oZWF0X2xvdz8ibG93IjoiIn0sbGlrZXNIZWF0OigwLGkuZm10KSgicmF0aW9UZXh0IiwiaGVhdG1hcC0lQCIpfSwicmF0aW8iLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInJhdGlvIiksbCkscyhsLCJ0aXRsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGl0bGUiKSxsKSxzKGwsInJhdGlvVGV4dCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwicmF0aW9UZXh0IiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvcmF3LXZpZXdzL2xpc3QvdmlzaXRlZC1saW5lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz1pPXtpc0xhc3RWaXNpdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdFZpc2l0ZWRUb3BpYz09PXRoaXMudG9waWN9fSxyPSJpc0xhc3RWaXNpdGVkIixhPVt0LmRlZmF1bHRdLHM9KHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLCJpc0xhc3RWaXNpdGVkIikpP3MudmFsdWU6dm9pZCAwLGw9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSx1PWksYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCksaSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvcmF3LXZpZXdzL3RvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGkocz17bG9jYWxpemVkTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvcmNlTmFtZT90aGlzLmZvcmNlTmFtZTp0aGlzLm5hbWU/STE4bi50KHRoaXMubmFtZSk6IiJ9LHNvcnRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuImNoZXZyb24tIisodGhpcy5wYXJlbnQuYXNjZW5kaW5nPyJ1cCI6ImRvd24iKX0saXNTb3J0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGFibGUmJnRoaXMucGFyZW50Lm9yZGVyPT09dGhpcy5vcmRlcn0sY2xhc3NOYW1lOmZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMub3JkZXImJmUucHVzaCh0aGlzLm9yZGVyKSx0aGlzLnNvcnRhYmxlJiYoZS5wdXNoKCJzb3J0YWJsZSIpLHRoaXMuaXNTb3J0aW5nJiZlLnB1c2goInNvcnRpbmciKSksdGhpcy5udW1iZXImJmUucHVzaCgibnVtIiksZS5qb2luKCIgIil9fSwibG9jYWxpemVkTmFtZSIsW24uZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJsb2NhbGl6ZWROYW1lIikscyksaShzLCJzb3J0SWNvbiIsW24uZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzb3J0SWNvbiIpLHMpLGkocywiaXNTb3J0aW5nIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImlzU29ydGluZyIpLHMpLGkocywiY2xhc3NOYW1lIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNsYXNzTmFtZSIpLHMpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL3Jhdy12aWV3cy90b3BpYy1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpKHM9e3Nob3dEZWZhdWx0Om51bGwscmVuZGVyRGl2OmZ1bmN0aW9uKGUpe3JldHVybihlfHwwPHRoaXMuc3RhdHVzZXMubGVuZ3RoKSYmIXRoaXMubm9EaXZ9LHN0YXR1c2VzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk9dGhpcyxzPXRoaXMudG9waWMsbz1bXTtzLmdldCgiaXNfd2FybmluZyIpJiZvLnB1c2goe2ljb246ImVudmVsb3BlIixrZXk6Indhcm5pbmcifSkscy5nZXQoImJvb2ttYXJrZWQiKSYmKGU9cy5nZXQoImJvb2ttYXJrZWRfcG9zdF9udW1iZXJzIiksdD1zLmdldCgidXJsIiksbj0iIixlJiYxPGVbMF0/dCs9Ii8iK2VbMF06bj0ib3AtYm9va21hcmsiLG8ucHVzaCh7ZXh0cmFDbGFzc2VzOm4saWNvbjoiYm9va21hcmsiLGtleToiYm9va21hcmtlZCIsaHJlZjp0fSkpLHMuZ2V0KCJjbG9zZWQiKSYmcy5nZXQoImFyY2hpdmVkIik/by5wdXNoKHtpY29uOiJsb2NrIixrZXk6ImxvY2tlZF9hbmRfYXJjaGl2ZWQifSk6cy5nZXQoImNsb3NlZCIpP28ucHVzaCh7aWNvbjoibG9jayIsa2V5OiJsb2NrZWQifSk6cy5nZXQoImFyY2hpdmVkIikmJm8ucHVzaCh7aWNvbjoibG9jayIsa2V5OiJhcmNoaXZlZCJ9KSxzLmdldCgicGlubmVkIikmJm8ucHVzaCh7aWNvbjoidGh1bWJ0YWNrIixrZXk6InBpbm5lZCJ9KSxzLmdldCgidW5waW5uZWQiKSYmby5wdXNoKHtpY29uOiJ0aHVtYnRhY2siLGtleToidW5waW5uZWQifSkscy5nZXQoImludmlzaWJsZSIpJiZvLnB1c2goe2ljb246ImZhci1leWUtc2xhc2giLGtleToidW5saXN0ZWQifSksby5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGl0bGU9STE4bi50KCJ0b3BpY19zdGF0dXNlcy4iK2Uua2V5KyIuaGVscCIpLCFpLmN1cnJlbnRVc2VyfHwicGlubmVkIiE9PWUua2V5JiYidW5waW5uZWQiIT09ZS5rZXk/KGUub3BlblRhZz0ic3BhbiIsZS5jbG9zZVRhZz0ic3BhbiIpOihlLm9wZW5UYWc9ImEgaHJlZiIsZS5jbG9zZVRhZz0iYSIpfSk7dmFyIHI9dGhpcy5kZWZhdWx0SWNvbjtyZXR1cm4gMD09PW8ubGVuZ3RoJiZyJiZ0aGlzLnNldCgic2hvd0RlZmF1bHQiLHIpLG99fSwicmVuZGVyRGl2IixbKDAsdC5kZWZhdWx0KSgiZGVmYXVsdEljb24iKV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJyZW5kZXJEaXYiKSxzKSxpKHMsInN0YXR1c2VzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInN0YXR1c2VzIikscykscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9hcHBsaWNhdGlvbiIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgbD1IYW5kbGViYXJzLlNhZmVTdHJpbmc7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJyYXctZGF0ZSIsZnVuY3Rpb24oZSl7cmV0dXJuKDAsYS5sb25nRGF0ZSkobmV3IERhdGUoZSkpfSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJhZ2Utd2l0aC10b29sdGlwIixmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGwoKDAsYS5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZSkobmV3IERhdGUoZSkse3RpdGxlOiEwfSkpfSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJudW1iZXIiLGZ1bmN0aW9uKGUsdCl7ZT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoZSkpLGlzTmFOKGUpJiYoZT0wKTt2YXIgbj1JMThuLnRvTnVtYmVyKGUse3ByZWNpc2lvbjowfSk7dC5udW1iZXJLZXkmJihuPUkxOG4udCh0Lm51bWJlcktleSx7bnVtYmVyOm4sY291bnQ6cGFyc2VJbnQoZSwxMCl9KSk7dmFyIGk9Im51bWJlciI7dC5jbGFzcyYmKGkrPSIgIit0LmNsYXNzKTt2YXIgcz0iPHNwYW4gY2xhc3M9JyIraSsiJyIsbz0hdC5ub1RpdGxlLHI9KDAsYS5udW1iZXIpKGUpO3JldHVybiByLnRvU3RyaW5nKCkhPT1uLnRvU3RyaW5nKCkmJm8mJihzKz0iIHRpdGxlPSciK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihuKSsiJyIpLG5ldyBsKHMrPSI+IityKyI8L3NwYW4+Iil9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvYm9yZGVyLWNvbG9yIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUpe3JldHVybiJib3JkZXItY29sb3I6ICMiK2V9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLG4sdCxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT8iPGRpdiBjbGFzcz0nYXZhdGFyLXBsYWNlaG9sZGVyJz48L2Rpdj4iOigwLGkuYXZhdGFySW1nKSh7c2l6ZTp0LGF2YXRhclRlbXBsYXRlOmV9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ib3VuZC1hdmF0YXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciJdLGZ1bmN0aW9uKGUsaSxzLHQsbyxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7aWYoKDAscy5pc0VtcHR5KShlKSlyZXR1cm4iPGRpdiBjbGFzcz0nYXZhdGFyLXBsYWNlaG9sZGVyJz48L2Rpdj4iO3ZhciBuPSgwLGkuZ2V0KShlLCJhdmF0YXJfdGVtcGxhdGUiKTtyZXR1cm4oMCxvLmF2YXRhckltZykoKDAsci5hZGRFeHRyYVVzZXJDbGFzc2VzKShlLHtzaXplOnQsYXZhdGFyVGVtcGxhdGU6bn0pKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ib3VuZC1jYXRlZ29yeS1saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKG4uY2F0ZWdvcnlMaW5rSFRNTCl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2JvdW5kLWRhdGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCxuLmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUpe3JldHVybigwLHQuYXV0b1VwZGF0aW5nUmVsYXRpdmVBZ2UpKG5ldyBEYXRlKGUpLHtmb3JtYXQ6Im1lZGl1bSIsdGl0bGU6ITB9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jYXBpdGFsaXplLXN0cmluZyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXtyZXR1cm4gZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktYmFkZ2UiLFsiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihuLGUpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImNhdGVnb3J5LWJhZGdlIixmdW5jdGlvbihlLHQpe3JldHVybigwLG4uY2F0ZWdvcnlMaW5rSFRNTCkoZSx7aGlkZVBhcmVudDp0LmhpZGVQYXJlbnQsYWxsb3dVbmNhdGVnb3JpemVkOnQuYWxsb3dVbmNhdGVnb3JpemVkLGNhdGVnb3J5U3R5bGU6dC5jYXRlZ29yeVN0eWxlLGxpbms6ITF9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jdXN0b20taHRtbCIsWyJleHBvcnRzIiwicHJlbG9hZC1zdG9yZSJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEN1c3RvbUhUTUw9ZnVuY3Rpb24oZSl7dmFyIHQ9c1tlXTtpZih0KXJldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKHQpO3ZhciBuPWkuZGVmYXVsdC5nZXQoImN1c3RvbUhUTUwiKTtpZihuJiZuW2VdJiZuW2VdLmxlbmd0aClyZXR1cm4gbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhuW2VdKX0sZS5jbGVhckhUTUxDYWNoZT1mdW5jdGlvbigpe3M9e319LGUuc2V0Q3VzdG9tSFRNTD1mdW5jdGlvbihlLHQpe3NbZV09dH07dmFyIHM9e319KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rhc2gtaWYtZW1wdHkiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5odG1sSGVscGVyKShmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmlzRW1wdHkpKGUpPyImbWRhc2g7IjplfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rhc2hlcml6ZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudC9oZWxwZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07ZS5kZWZhdWx0PXQuZGVmYXVsdC5oZWxwZXIoZnVuY3Rpb24oZSl7cmV0dXJuKG4oZSwxKVswXXx8IiIpLnJlcGxhY2UoIi4iLCItIikuZGFzaGVyaXplKCl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZGlyLXNwYW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZGlyLXNwYW4iLGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCh0PWV8fCIiKSYmRGlzY291cnNlLlNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uPyc8c3BhbiBkaXI9IicrKCgwLG4uaXNSVEwpKHQpPyJydGwiOiJsdHIiKSsnIj4nK3QrIjwvc3Bhbj4iOnQpO3ZhciB0fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rpc2NvdXJzZS10YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJkaXNjb3Vyc2UtdGFnIixmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCgwLG4uZGVmYXVsdCkoZSx0KSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZGlzY291cnNlLXRhZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZGlzY291cnNlLXRhZ3MiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5kZWZhdWx0KShlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9lZGl0YWJsZS12YWx1ZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQvaGVscGVyIl0sZnVuY3Rpb24oZSxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5mb3JtYXRDdXJyZW5jeT1uO3ZhciByPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIG4oZSl7dmFyIHQ9cihlLDIpLG49dFswXSxpPXRbMV07ImNhdGVnb3J5X2lkIj09PWkmJihpPSJjYXRlZ29yeS5pZCIpO3ZhciBzPSgwLG8uZ2V0KShuLGkpO3JldHVybiBBcnJheS5pc0FycmF5KHMpJiYocz1zLnNsaWNlKDApKSxzfWUuZGVmYXVsdD10LmRlZmF1bHQuaGVscGVyKG4pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mYS1pY29uLW5vZGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmljb25Ob2RlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5yZW5kZXJJY29uKSgibm9kZSIsZSx0KX19KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Zsb2F0IixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJmbG9hdCIsZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSkudG9GaXhlZCgxKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mb3JtYXQtYWdlIixbImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiOygwLGUucmVnaXN0ZXJVbmJvdW5kKSgiZm9ybWF0LWFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGU9bmV3IERhdGUoZSksbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZygoMCx0LmF1dG9VcGRhdGluZ1JlbGF0aXZlQWdlKShlKSl9KSwoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImZvcm1hdC1kdXJhdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsdC5kdXJhdGlvblRpbnkpKGUpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mb3JtYXQtZGF0ZSIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImZvcm1hdC1kYXRlIixmdW5jdGlvbihlLHQpe3ZhciBuLGk9Im1lZGl1bSIscz0hMDtpZih0LmxlYXZlQWdvJiYobj0idHJ1ZSI9PT10LmxlYXZlQWdvKSx0LmZvcm1hdCYmKGk9dC5mb3JtYXQpLHQubm9UaXRsZSYmKHM9ITEpLGUpe3ZhciBvPW5ldyBEYXRlKGUpO3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCgwLHIuYXV0b1VwZGF0aW5nUmVsYXRpdmVBZ2UpKG8se2Zvcm1hdDppLHRpdGxlOnMsbGVhdmVBZ286bn0pKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZm9ybWF0LXVzZXJuYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJmb3JtYXQtdXNlcm5hbWUiLG4uZm9ybWF0VXNlcm5hbWUpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9pY29uLW9yLWltYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSxpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXt2YXIgdD1lLmljb24sbj1lLmltYWdlO3JldHVybigwLGkuaXNFbXB0eSkobik/KDAsaS5pc0VtcHR5KSh0KT8iIjoodD0oMCxzLmNvbnZlcnRJY29uQ2xhc3MpKHQpLCgwLHMuaWNvbkhUTUwpKHQpKToiPGltZyBzcmM9JyIrbisiJz4ifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2lubGluZS1kYXRlIixbImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKG4sZSl7InVzZSBzdHJpY3QiO3ZhciBpPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9OygwLGUucmVnaXN0ZXJIZWxwZXIpKCJpbmxpbmUtZGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9aShlLDEpWzBdO3JldHVybiB0LnZhbHVlJiYodD10LnZhbHVlKCkpLCgwLG4ucmVsYXRpdmVBZ2UpKG5ldyBEYXRlKHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ub2RlIixbImV4cG9ydHMiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIl0sZnVuY3Rpb24oZSxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9bmV3IERhdGUoZSkpLGUpe3ZhciB0PXt0aXRsZTooMCxyLmxvbmdEYXRlKShlKSwiZGF0YS10aW1lIjplLmdldFRpbWUoKSwiZGF0YS1mb3JtYXQiOiJ0aW55In07cmV0dXJuKDAsby5oKSgic3Bhbi5yZWxhdGl2ZS1kYXRlIix7YXR0cmlidXRlczp0fSwoMCxyLnJlbGF0aXZlQWdlKShlKSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRhdGVOb2RlPXQsZS5udW1iZXJOb2RlPWZ1bmN0aW9uKGUsdCl7dD10fHx7fSxlPXBhcnNlSW50KGUsMTApLGlzTmFOKGUpJiYoZT0wKTt2YXIgbj1lLnRvU3RyaW5nKCksaT17fSxzPSgwLHIubnVtYmVyKShlKTtzIT09biYmKGkudGl0bGU9bik7cmV0dXJuKDAsby5oKSgic3Bhbi5udW1iZXIiLHtjbGFzc05hbWU6dC5jbGFzc05hbWUsYXR0cmlidXRlczppfSxzKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBEaXNjb3Vyc2UmJihEaXNjb3Vyc2UuX193aWRnZXRfaGVscGVycy5kYXRlTm9kZT10KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcGVyaW9kLXRpdGxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPXthbGw6ImFsbF90aW1lIix5ZWFybHk6InRoaXNfeWVhciIscXVhcnRlcmx5OiJ0aGlzX3F1YXJ0ZXIiLG1vbnRobHk6InRoaXNfbW9udGgiLGRhaWx5OiJ0b2RheSJ9O2UuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7dmFyIG49STE4bi50KCJmaWx0ZXJzLnRvcC4iKyhvW2VdfHwidGhpc193ZWVrIikpO2lmKHQuaGFzaC5zaG93RGF0ZVJhbmdlKXt2YXIgaT0iIixzPXZvaWQgMCxzPXQuaGFzaC5mdWxsRGF5P21vbWVudCgpLnV0YygpLnN1YnRyYWN0KDEsImRheXMiKTptb21lbnQoKTtzd2l0Y2goZSl7Y2FzZSJ5ZWFybHkiOmk9cy5jbG9uZSgpLnN1YnRyYWN0KDEsInllYXIiKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX3dpdGhfeWVhcl9ub190aW1lIikpKyIgLSAiK3MuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ193aXRoX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlInF1YXJ0ZXJseSI6aT1zLmNsb25lKCkuc3VidHJhY3QoMywibW9udGgiKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKSsiIC0gIitzLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhcl9ub190aW1lIikpO2JyZWFrO2Nhc2Uid2Vla2x5IjppPXMuY2xvbmUoKS5zdWJ0cmFjdCgxLCJ3ZWVrIikuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ19ub195ZWFyX25vX3RpbWUiKSkrIiAtICIrcy5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlIm1vbnRobHkiOmk9cy5jbG9uZSgpLnN1YnRyYWN0KDEsIm1vbnRoIikuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ19ub195ZWFyX25vX3RpbWUiKSkrIiAtICIrcy5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlImRhaWx5IjppPXMuY2xvbmUoKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5mdWxsX25vX3llYXJfbm9fdGltZSIpKX1yZXR1cm4nPHNwYW4gY2xhc3M9ImRhdGUtc2VjdGlvbiI+JytuKyI8L3NwYW4+PHNwYW4gY2xhc3M9J3RvcC1kYXRlLXN0cmluZyc+IitpKyI8L3NwYW4+In1yZXR1cm4gbn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9yYXctcGx1Z2luLW91dGxldCIsWyJkaXNjb3Vyc2UvbGliL3BsdWdpbi1jb25uZWN0b3JzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiXSxmdW5jdGlvbihzLGUpeyJ1c2Ugc3RyaWN0IjtlLmRlZmF1bHQucmVnaXN0ZXJIZWxwZXIoInJhdy1wbHVnaW4tb3V0bGV0IixmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49KDAscy5yYXdDb25uZWN0b3JzRm9yKShlLmhhc2gubmFtZSk7aWYobi5sZW5ndGgpe3ZhciBpPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRlbXBsYXRlKHtjb250ZXh0OnR9KX0pO3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGkuam9pbigiIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9yYXciLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyJdLGZ1bmN0aW9uKGUsZCl7InVzZSBzdHJpY3QiO3ZhciBwPXZvaWQgMDsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoInJhdyIsZnVuY3Rpb24oZSx0KXtlPWUucmVwbGFjZSgiLiIsIi8iKTt2YXIgbixpLHMsbyxyLGEsbCx1PURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLGM9KDAsZC5maW5kUmF3VGVtcGxhdGUpKGUpO3tpZihjKXJldHVybiBuPXRoaXMsaT11LHM9YyxvPWUscj10LChyPWpRdWVyeS5leHRlbmQoe30scikpLnBhcmVudD1yLnBhcmVudHx8bixwPXB8fHtzaXRlU2V0dGluZ3M6aS5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLGN1cnJlbnRVc2VyOmkubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpLHNpdGU6aS5sb29rdXAoInNpdGU6bWFpbiIpLHNlc3Npb246aS5sb29rdXAoInNlc3Npb246bWFpbiIpLHRvcGljVHJhY2tpbmdTdGF0ZTppLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpfSxyLnZpZXd8fChhPSJkaXNjb3Vyc2UvcmF3LXZpZXdzLyIrbywhcmVxdWlyZWpzLmVudHJpZXNbYV18fChsPXJlcXVpcmVqcyhhLG51bGwsbnVsbCwhMCkpJiZsLmRlZmF1bHQmJihyLnZpZXc9bC5kZWZhdWx0LmNyZWF0ZShyLHApKSxyLnZpZXd8fChyPWpRdWVyeS5leHRlbmQoe30scixwKSkpLG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcocyhyKSk7Y29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCByYXcgdGVtcGxhdGU6ICIrZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3JlcGxhY2UtZW1vamkiLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS9saWIvdGV4dCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiOygwLGUucmVnaXN0ZXJVbmJvdW5kKSgicmVwbGFjZS1lbW9qaSIsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsdC5lbW9qaVVuZXNjYXBlKShlKSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcmV2aWV3YWJsZS1oaXN0b3J5LWRlc2NyaXB0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2hlbHBlcnMvcmV2aWV3YWJsZS1zdGF0dXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jldmlld2FibGUtaGlzdG9yeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXtzd2l0Y2goZS5yZXZpZXdhYmxlX2hpc3RvcnlfdHlwZSl7Y2FzZSBpLkVESVRFRDpyZXR1cm4oMCxzLmljb25IVE1MKSgicGVuY2lsLWFsdCIpKyIgIitJMThuLnQoInJldmlldy5oaXN0b3J5LmVkaXRlZCIpO2RlZmF1bHQ6cmV0dXJuKDAsbi5odG1sU3RhdHVzKShlLnN0YXR1cyl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3Jldmlld2FibGUtc3RhdHVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9yZXZpZXdhYmxlIl0sZnVuY3Rpb24oZSx0LGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2Ugcy5QRU5ESU5HOnJldHVybntuYW1lOiJwZW5kaW5nIn07Y2FzZSBzLkFQUFJPVkVEOnJldHVybntpY29uOiJjaGVjayIsbmFtZToiYXBwcm92ZWQifTtjYXNlIHMuUkVKRUNURUQ6cmV0dXJue2ljb246InRpbWVzIixuYW1lOiJyZWplY3RlZCJ9O2Nhc2Ugcy5JR05PUkVEOnJldHVybntpY29uOiJleHRlcm5hbC1saW5rLWFsdCIsbmFtZToiaWdub3JlZCJ9O2Nhc2Ugcy5ERUxFVEVEOnJldHVybntpY29uOiJ0cmFzaC1hbHQiLG5hbWU6ImRlbGV0ZWQifX19KGUpO2lmKHQpe3ZhciBuPXQuaWNvbj8oMCxpLmljb25IVE1MKSh0Lmljb24pOiIiO3JldHVybiJcbiAgICA8c3BhbiBjbGFzcz0nc3RhdHVzJz5cbiAgICAgIDxzcGFuIGNsYXNzPVwiIit0Lm5hbWUrJyI+XG4gICAgICAgICcrbisiXG4gICAgICAgICIrSTE4bi50KCJyZXZpZXcuc3RhdHVzZXMuIit0Lm5hbWUrIi50aXRsZSIpKyJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICJ9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmh0bWxTdGF0dXM9bixlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShuKX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcm91dGUtYWN0aW9uIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0PUVtYmVyLG89dC5BLG49dC5IZWxwZXIsaT10LmFzc2VydCxzPXQuY29tcHV0ZWQscj10LmdldCxhPXQuZ2V0T3duZXIsYz10LnJ1bixkPXQucnVuSW5EZWJ1ZztmdW5jdGlvbiBwKGUsbil7dmFyIHQsaT12b2lkIDAscz1vKG8oKCh0PWUpLl9yb3V0ZXJNaWNyb2xpYnx8dC5yb3V0ZXIpLmN1cnJlbnRSb3V0ZUluZm9zKS5tYXBCeSgiX3JvdXRlIikucmV2ZXJzZSgpKS5maW5kKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWN0aW9uc3x8ZS5fYWN0aW9ucztyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YoaT10W25dKX0pO3JldHVybnthY3Rpb246aSxoYW5kbGVyOnN9fWUuZGVmYXVsdD1uLmV4dGVuZCh7cm91dGVyOnMoZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5sb29rdXAoInJvdXRlcjptYWluIil9KS5yZWFkT25seSgpLGNvbXB1dGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj0odD1lLEFycmF5LmlzQXJyYXkodCk/dDpBcnJheS5mcm9tKHQpKSxhPW5bMF0sbD1uLnNsaWNlKDEpLHU9cih0aGlzLCJyb3V0ZXIiKTtpKCJbZW1iZXItcm91dGUtYWN0aW9uLWhlbHBlcl0gVW5hYmxlIHRvIGxvb2t1cCByb3V0ZXIiLHUpLGQoZnVuY3Rpb24oKXt2YXIgZT1wKHUsYSkuaGFuZGxlcjtpKCJbZW1iZXItcm91dGUtYWN0aW9uLWhlbHBlcl0gVW5hYmxlIHRvIGZpbmQgYWN0aW9uICIrYSxlKX0pO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1wKHUsYSksdD1lLmFjdGlvbixuPWUuaGFuZGxlcixpPWFyZ3VtZW50cy5sZW5ndGgscz1BcnJheShpKSxvPTA7bzxpO28rKylzW29dPWFyZ3VtZW50c1tvXTt2YXIgcj1sLmNvbmNhdChzKTtyZXR1cm4gYy5qb2luLmFwcGx5KGMsW24sdF0uY29uY2F0KGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0ocikpKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3Nob3J0ZW4tdXJsIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJzaG9ydGVuLXVybCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvXC8vZyk7cmV0dXJuIHQmJjM9PT10Lmxlbmd0aCYmKGU9ZS5yZXBsYWNlKC9cLyQvLCIiKSksKGU9KGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSkucmVwbGFjZSgvXnd3d1wuLywiIikpLnN1YnN0cmluZygwLDgwKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90aGVtZS1oZWxwZXJzIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0aGVtZS1pMThuIixmdW5jdGlvbihlLHQsbil7cmV0dXJuIEkxOG4udCgidGhlbWVfdHJhbnNsYXRpb25zLiIrZSsiLiIrdCxuKX0pLCgwLGUucmVnaXN0ZXJVbmJvdW5kKSgidGhlbWUtcHJlZml4IixmdW5jdGlvbihlLHQpe3JldHVybiJ0aGVtZV90cmFuc2xhdGlvbnMuIitlKyIuIit0fSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0aGVtZS1zZXR0aW5nIixmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZGVwcmVjYXRlZCYmKDAsaS5kZWZhdWx0KSgiVGhlIGB7e3RoZW1lU2V0dGluZy5zZXR0aW5nX25hbWV9fWAgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFVzZSBge3t0aGVtZS1zZXR0aW5nICdzZXR0aW5nX25hbWUnfX1gIGluc3RlYWQiLHtzaW5jZToidjIuMi4wLmJldGE4Iixkcm9wRnJvbToidjIuMy4wIn0pLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgic2VydmljZTp0aGVtZS1zZXR0aW5ncyIpLmdldFNldHRpbmcoZSx0KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1mZWF0dXJlZC1saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9yZW5kZXItdG9waWMtZmVhdHVyZWQtbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LnJlZ2lzdGVyVW5ib3VuZCkoInRvcGljLWZlYXR1cmVkLWxpbmsiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5kZWZhdWx0KShlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1saW5rIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0b3BpYy1saW5rIixmdW5jdGlvbihlLHQpe3ZhciBuPWUuZ2V0KCJmYW5jeVRpdGxlIiksaT1lLmxpbmtlZF9wb3N0X251bWJlcj9lLnVybEZvclBvc3ROdW1iZXIoZS5saW5rZWRfcG9zdF9udW1iZXIpOmUuZ2V0KCJsYXN0VW5yZWFkVXJsIikscz1bInRpdGxlIl07dC5jbGFzcyYmdC5jbGFzcy5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHMucHVzaChlKX0pO3ZhciBvPSI8YSBocmVmPSciK2krIidcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSciK3Muam9pbigiICIpKyInXG4gICAgICAgICAgICAgICAgICAgICBkYXRhLXRvcGljLWlkPSciK2UuaWQrIic+IituKyI8L2E+IjtyZXR1cm4gbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhvKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1zdGF0dXMtaWNvbnMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PUVtYmVyLkFycmF5UHJveHkuZXh0ZW5kKHtyZW5kZXI6ZnVuY3Rpb24oaSxzKXtmdW5jdGlvbiB0KGUsdCxuKXtpLmdldChlKSYmcyh0LG4pfWkuZ2V0KCJjbG9zZWQiKSYmaS5nZXQoImFyY2hpdmVkIik/cygibG9jayIsImxvY2tlZF9hbmRfYXJjaGl2ZWQiKToodCgiY2xvc2VkIiwibG9jayIsImxvY2tlZCIpLHQoImFyY2hpdmVkIiwibG9jayIsImFyY2hpdmVkIikpLHRoaXMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfShlKSl9KX19KS5jcmVhdGUoe2NvbnRlbnQ6W1siaXNfd2FybmluZyIsImVudmVsb3BlIiwid2FybmluZyJdLFsicGlubmVkIiwidGh1bWJ0YWNrIiwicGlubmVkIl0sWyJ1bnBpbm5lZCIsInRodW1idGFjayIsInVucGlubmVkIl0sWyJpbnZpc2libGUiLCJmYXItZXllLXNsYXNoIiwidW5saXN0ZWQiXV19KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvdXNlci1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUscyx0LG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSx0KXtpZihlKXt2YXIgbj0oMCxvLmVzY2FwZUV4cHJlc3Npb24pKGUuZ2V0KCJuYW1lIikpLGk9dm9pZCAwO3JldHVybiB0JiZ0Lmhhc2gmJihpPXQuaGFzaC5jdXJyZW50VXNlciksaSYmZS5nZXQoImFkbWluIikmJmkuZ2V0KCJzdGFmZiIpPygwLHMuaWNvbkhUTUwpKCJzaGllbGQtYWx0Iix7bGFiZWw6STE4bi50KCJ1c2VyLmFkbWluIix7dXNlcjpufSl9KTplLmdldCgibW9kZXJhdG9yIik/KDAscy5pY29uSFRNTCkoInNoaWVsZC1hbHQiLHtsYWJlbDpJMThuLnQoInVzZXIubW9kZXJhdG9yIix7dXNlcjpufSl9KTp2b2lkIDB9fSl9KSxFbWJlci5URU1QTEFURVMuYWJvdXQ9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjbSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiXSxbImFib3V0Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGVudHMgY2xlYXJmaXggYm9keS1wYWdlIl0sWzhdLFswLCJcXG5cXG4gICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtcGlsbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tYWJvdXQiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJyb3V0ZSJdLFsiYWN0aXZlIiwiYWJvdXQiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImFib3V0LnNpbXBsZV90aXRsZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImZhcU92ZXJyaWRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1pdGVtLWd1aWRlbGluZXMiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImd1aWRlbGluZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImd1aWRlbGluZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tZmFxIl0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJmYXEiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImZhcSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tZmFxIl0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJmYXEiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImZhcSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaXRlbS10b3MiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInRvcyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidG9zIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaXRlbS1wcml2YWN5Il0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcml2YWN5Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJwcml2YWN5Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC50aXRsZSJdLFtbInRpdGxlIl0sW1syNCxbIm1vZGVsIiwidGl0bGUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiZGVzY3JpcHRpb24iXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWJvdXQtYWZ0ZXItZGVzY3JpcHRpb24iLCJzZWN0aW9uIiwiIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFkbWlucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGFkbWlucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImFib3V0Lm91cl9hZG1pbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syNCxbIm1vZGVsIiwiYWRtaW5zIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCJdLFs4XSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsiYWJvdXQtYWZ0ZXItYWRtaW5zIiwic2VjdGlvbiIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJtb2RlcmF0b3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiYWJvdXQgbW9kZXJhdG9ycyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImFib3V0Lm91cl9tb2RlcmF0b3JzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VycyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syNCxbIm1vZGVsIiwibW9kZXJhdG9ycyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbImFib3V0LWFmdGVyLW1vZGVyYXRvcnMiLCJzZWN0aW9uIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X21vZGVyYXRvcnMiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X21vZGVyYXRvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYWJvdXQgY2F0ZWdvcnktbW9kZXJhdG9ycyBtb2RlcmF0b3JzLSIsWzIzLDEsWyJjYXRlZ29yeSIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbImFib3V0Lm1vZGVyYXRvcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlcnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syMywxLFsibW9kZXJhdG9ycyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IHN0YXRzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1jaGFydC1iYXIiXSxudWxsXSxmYWxzZV0sWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXRzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWJsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMCwiwqAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXQubGFzdF83X2RheXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC5zdGF0Lmxhc3RfMzBfZGF5cyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXQuYWxsX3RpbWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC50b3BpY19jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidG9waWNzXzdfZGF5cyJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIm1vZGVsIiwic3RhdHMiLCJ0b3BpY3NfMzBfZGF5cyJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIm1vZGVsIiwic3RhdHMiLCJ0b3BpY19jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQucG9zdF9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwicG9zdHNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsInBvc3RzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwicG9zdF9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQudXNlcl9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidXNlcnNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsInVzZXJzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidXNlcl9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQuYWN0aXZlX3VzZXJfY291bnQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsImFjdGl2ZV91c2Vyc183X2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwiYWN0aXZlX3VzZXJzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIuKAlCJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQubGlrZV9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwibGlrZXNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsImxpa2VzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwibGlrZV9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjb250YWN0SW5mbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGNvbnRhY3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJhYm91dC5jb250YWN0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsImNvbnRhY3RJbmZvIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWJvdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwic2ltcGxlLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWNjb3VudC1jcmVhdGVkIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJhY2NvdW50LWNyZWF0ZWQifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkL2VkaXQtZW1haWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy1tZXNzYWdlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1lbWFpbC1mb3JtIixudWxsLFtbImVtYWlsIl0sW1syNCxbIm5ld0VtYWlsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWN0aXZhdGlvbi1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlRW1haWwiXSxudWxsXSwibG9naW4uc3VibWl0X25ld19lbWFpbCIsWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjYW5jZWwiXSxudWxsXSwiY2FuY2VsIiwiZWRpdC1jYW5jZWwiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL2VkaXQtZW1haWwifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkL2luZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWMtbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjQsWyJhY2NvdW50Q3JlYXRlZCIsIm1lc3NhZ2UiXV0sdHJ1ZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWNjb3VudENyZWF0ZWQiLCJzaG93X2NvbnRyb2xzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1jb250cm9scyIsbnVsbCxbWyJzZW5kQWN0aXZhdGlvbkVtYWlsIiwiZWRpdEFjdGl2YXRpb25FbWFpbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VuZEFjdGl2YXRpb25FbWFpbCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0QWN0aXZhdGlvbkVtYWlsIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL2luZGV4In19KSxFbWJlci5URU1QTEFURVNbImFjY291bnQtY3JlYXRlZC9yZXNlbnQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy1tZXNzYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5zZW50X2FjdGl2YXRpb25fZW1haWxfYWdhaW4iXSxbWyJjdXJyZW50RW1haWwiXSxbWzI0LFsiZW1haWwiXV1dXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLnNlbnRfYWN0aXZhdGlvbl9lbWFpbF9hZ2Fpbl9nZW5lcmljIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL3Jlc2VudCJ9fSksRW1iZXIuVEVNUExBVEVTLmFwcGxpY2F0aW9uPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLXNpdGUtaGVhZGVyIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwic2l0ZS1oZWFkZXIiLG51bGwsW1siY2FuU2lnblVwIiwic2hvd0NyZWF0ZUFjY291bnQiLCJzaG93TG9naW4iLCJzaG93S2V5Ym9hcmQiLCJ0b2dnbGVNb2JpbGVWaWV3IiwidG9nZ2xlQW5vbnltb3VzIiwibG9nb3V0Il0sW1syNCxbImNhblNpZ25VcCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q3JlYXRlQWNjb3VudCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dLZXlib2FyZFNob3J0Y3V0c0hlbHAiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJ0b2dnbGVNb2JpbGVWaWV3Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsidG9nZ2xlQW5vbnltb3VzIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsibG9nb3V0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImJlbG93LXNpdGUtaGVhZGVyIixbMjgsImhhc2giLG51bGwsW1siY3VycmVudFBhdGgiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsIm1haW4tb3V0bGV0Il0sWzEwLCJjbGFzcyIsIndyYXAiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLW1haW4tY29udGFpbmVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RvcCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjdXN0b20taHRtbCIsbnVsbCxbWyJuYW1lIl0sWyJ0b3AiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjIsIm5vdGlmaWNhdGlvbi1jb25zZW50LWJhbm5lciJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyMiwicHdhLWluc3RhbGwtYmFubmVyIl0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJnbG9iYWwtbm90aWNlIl0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJjcmVhdGUtdG9waWNzLW5vdGljZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9wLW5vdGljZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJjdXJyZW50UGF0aCJdLFtbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsIm91dGxldCIsWyJ1c2VyLWNhcmQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJhYm92ZS1mb290ZXIiLFsyOCwiaGFzaCIsbnVsbCxbWyJzaG93Rm9vdGVyIl0sW1syNCxbInNob3dGb290ZXIiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Rm9vdGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY3VzdG9tLWh0bWwiLG51bGwsW1sibmFtZSIsInRyaWdnZXJBcHBFdmVudCJdLFsiZm9vdGVyIiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImJlbG93LWZvb3RlciIsWzI4LCJoYXNoIixudWxsLFtbInNob3dGb290ZXIiXSxbWzI0LFsic2hvd0Zvb3RlciJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwib3V0bGV0IixbIm1vZGFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjIsInRvcGljLWVudHJhbmNlIl0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsIm91dGxldCIsWyJjb21wb3NlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0Zvb3Rlck5hdiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjIsImZvb3Rlci1uYXYiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJhcHBsaWNhdGlvbiJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImJhZGdlLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8bGk+PGEgaHJlZj4iK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLm5hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjE4fSxlbmQ6e2xpbmU6NCxjb2x1bW46MzN9fX0pKSsiPC9hPjwvbGk+XG4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIjxkaXYgY2xhc3M9J2F1dG9jb21wbGV0ZSBhYy1iYWRnZSc+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uIiwiaW4iLCJvcHRpb25zIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjUsY29sdW1uOjEzfX19KSk/bzoiIikrIiAgPC91bD5cbjwvZGl2PlxuIn0sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFU1siYmFkZ2VzL2luZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJiZyIsImIiXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIl0sWyJiYWRnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBiYWRnZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDEiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1ncm91cHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiYmFkZ2VHcm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWdyb3VwaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjMsMSxbImJhZGdlR3JvdXBpbmciLCJkaXNwbGF5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWdyb3VwLWxpc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJiYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJiYWRnZS1jYXJkIixudWxsLFtbImJhZGdlIiwidXNlcm5hbWUiXSxbWzIzLDIsW11dLFsyNCxbImN1cnJlbnRVc2VyIiwidXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYmFkZ2VzL2luZGV4In19KSxFbWJlci5URU1QTEFURVNbImJhZGdlcy9zaG93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1YiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY29udGFpbmVyIHNob3ctYmFkZ2UgIixbMjQsWyJtb2RlbCIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4gICJdLFs3LCJoMSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImJhZGdlcy5pbmRleCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIC9cXG4gICAgIl0sWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctYmFkZ2UtZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiYmFkZ2UtY2FyZCIsbnVsbCxbWyJiYWRnZSIsInNpemUiLCJjb3VudCJdLFtbMjQsWyJtb2RlbCJdXSwibGFyZ2UiLFsyNCxbInVzZXJCYWRnZXMiLCJncmFudF9jb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJiYWRnZS1ncmFudC1pbmZvICIsWzI4LCJpZiIsW1syNCxbImhpZGRlblNldFRpdGxlIl1dLCIiLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0VGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JhbnQtaW5mby1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLmFsbG93X3RpdGxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsiYnRuLWRlZmF1bHQgcGFkLWxlZnQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVTZXRVc2VyVGl0bGUiXSxudWxsXSwicGVuY2lsLWFsdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm11bHRpcGxlX2dyYW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyYW50LWluZm8taXRlbSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5tdWx0aXBsZV9ncmFudCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0VGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImJhZGdlLXNldC10aXRsZSAiLFsyOCwiaWYiLFtbMjQsWyJoaWRkZW5TZXRUaXRsZSJdXSwiaGlkZGVuIiwiIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiYmFkZ2UtdGl0bGUiLG51bGwsW1sic2VsZWN0YWJsZVVzZXJCYWRnZXMiLCJ1c2VyIl0sW1syNCxbInNlbGVjdGFibGVVc2VyQmFkZ2VzIl1dLFsyNCxbInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgY2xvc2UtYnRuIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlU2V0VXNlclRpdGxlIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyQmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidXNlci1iYWRnZXMgIixbMjQsWyJtb2RlbCIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4iXSxbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuYmFkZ2UtaW5mbyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlcy1ncmFudGVkIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInVzZXJCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIiwic2l6ZSIsImNsYXNzIiwiZGF0ZSJdLFtbMjMsMSxbInVzZXIiXV0sIm1lZGl1bSIsImJhZGdlLWluZm8iLFsyMywxLFsiZ3JhbnRlZF9hdCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JhbnRlZC1vbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLmdyYW50ZWRfb24iXSxbWyJkYXRlIl0sW1syOCwiaW5saW5lLWRhdGUiLFtbMjMsMSxbImdyYW50ZWRfYXQiXV1dLG51bGxdXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsicG9zdF9udW1iZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWxpbmsiXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ0b3BpYyIsInVybCJdXV0sbnVsbF0sIi8iLFsyOCwidW5ib3VuZCIsW1syMywxLFsicG9zdF9udW1iZXIiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjMsMSxbInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiY2FuTG9hZE1vcmUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuU2hvd090aGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiaHJlZiIsWzI5LFtbMjQsWyJtb2RlbCIsInVybCJdXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5vdGhlcnNfY291bnQiXSxbWyJjb3VudCJdLFtbMjQsWyJvdGhlcnNDb3VudCJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsiY2FuTG9hZE1vcmUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJiYWRnZXMvc2hvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJidWxrLXRhZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJ0b3BpY3MuYnVsay4iLFsyNCxbInRpdGxlIl1dXSxudWxsXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbImZpbHRlclBsYWNlaG9sZGVyIiwidGFncyIsImNhdGVnb3J5SWQiXSxbbnVsbCxbMjQsWyJ0YWdzIl1dLFsyNCxbImNhdGVnb3J5SWQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syNCxbImFjdGlvbiJdXSxbMjQsWyJlbXB0eVRhZ3MiXV0sWzI4LCJjb25jYXQiLFsidG9waWNzLmJ1bGsuIixbMjQsWyJsYWJlbCJdXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYnVsay10YWcifX0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJjYXRlZ29yeS1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgPGxpPjxhIGhyZWY+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImNhdGVnb3J5LWxpbmsiXXx8dCYmdFsiY2F0ZWdvcnktbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24iLHtuYW1lOiJjYXRlZ29yeS1saW5rIixoYXNoOntsaW5rOiJmYWxzZSIsYWxsb3dVbmNhdGVnb3JpemVkOiJ0cnVlIn0saGFzaFR5cGVzOntsaW5rOiJTdHJpbmdMaXRlcmFsIixhbGxvd1VuY2F0ZWdvcml6ZWQ6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2xpbms6dCxhbGxvd1VuY2F0ZWdvcml6ZWQ6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjoxOH0sZW5kOntsaW5lOjQsY29sdW1uOjgxfX19KSkrIjwvYT48L2xpPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtY2F0ZWdvcnknPlxuICA8dWw+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbiIsImluIiwib3B0aW9ucyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTo1LGNvbHVtbjoxM319fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siY2F0ZWdvcnktdGFnLWF1dG9jb21wbGV0ZSJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiIgICAgICA8bGk+XG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubW9kZWwiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgyLHMsMCksaW52ZXJzZTplLnByb2dyYW0oNCxzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46OH0sZW5kOntsaW5lOjksY29sdW1uOjE1fX19KSk/bzoiIikrIiAgICAgIDwvbGk+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICA8YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjYXRlZ29yeS1saW5rIl18fHQmJnRbImNhdGVnb3J5LWxpbmsiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLm1vZGVsIix7bmFtZToiY2F0ZWdvcnktbGluayIsaGFzaDp7bGluazoiZmFsc2UiLGFsbG93VW5jYXRlZ29yaXplZDoidHJ1ZSJ9LGhhc2hUeXBlczp7bGluazoiU3RyaW5nTGl0ZXJhbCIsYWxsb3dVbmNhdGVnb3JpemVkOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntsaW5rOnQsYWxsb3dVbmNhdGVnb3JpemVkOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTh9LGVuZDp7bGluZTo2LGNvbHVtbjo4N319fSkpKyI8L2E+XG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICA8YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRhZyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxOH0sZW5kOntsaW5lOjgsY29sdW1uOjM0fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46MzR9LGVuZDp7bGluZTo4LGNvbHVtbjo0OX19fSkpKyIgeCAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLmNvdW50Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjo1Mn0sZW5kOntsaW5lOjgsY29sdW1uOjY4fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0nYXV0b2NvbXBsZXRlIGFjLWNhdGVnb3J5LW9yLXRhZyc+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uIiwiaW4iLCJvcHRpb25zIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjExLGNvbHVtbjoxM319fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYWJvdXQtcGFnZS11c2VycyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidXNlclRlbXBsYXRlIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInVzZXJzVGVtcGxhdGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiZGF0YS11c2VybmFtZSIsWzI5LFtbMjMsMSxbInVzZXJuYW1lIl1dXV1dLFsxMCwiY2xhc3MiLCJ1c2VyLWluZm8gc21hbGwiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1pbWFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVzZXJQYXRoIl1dXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzIzLDEsWyJ1c2VybmFtZSJdXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjMsMSxbImF2YXRhciJdXSx0cnVlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWRldGFpbCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUtbGluZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVzZXJQYXRoIl1dXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzIzLDEsWyJ1c2VybmFtZSJdXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyMywxLFsidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzIzLDEsWyJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFsxLFsyMywxLFsidGl0bGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9hYm91dC1wYWdlLXVzZXJzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYWN0aXZhdGlvbi1jb250cm9scyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNpdGVTZXR0aW5ncyIsIm11c3RfYXBwcm92ZV91c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syNCxbInNlbmRBY3RpdmF0aW9uRW1haWwiXV0sImxvZ2luLnJlc2VuZF90aXRsZSIsImVudmVsb3BlIiwiYnRuLXByaW1hcnkgcmVzZW5kIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syNCxbImVkaXRBY3RpdmF0aW9uRW1haWwiXV0sImxvZ2luLmNoYW5nZV9lbWFpbCIsInBlbmNpbC1hbHQiLCJlZGl0LWVtYWlsIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2FjdGl2YXRpb24tY29udHJvbHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9hY3RpdmF0aW9uLWVtYWlsLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnByb3ZpZGVfbmV3X2VtYWlsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImNsYXNzIl0sW1syNCxbImVtYWlsIl1dLCJhY3RpdmF0ZS1uZXctZW1haWwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYWN0aXZhdGlvbi1lbWFpbC1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYXZhdGFyLXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgYnRuLWljb24tdGV4dCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2F2YXRhci51cGxvYWRfdGl0bGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLWltYWdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1cGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbInVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiVcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFsidXBsb2FkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiaW1hZ2UvKiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImltYWdlSXNOb3RBU3F1YXJlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIuaW1hZ2VfaXNfbm90X2Ffc3F1YXJlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYXZhdGFyLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFja3VwLWNvZGVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwid3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbNywidGV4dGFyZWEiLHRydWVdLFsxMCwiaWQiLCJiYWNrdXBDb2RlcyJdLFsxMCwiY2xhc3MiLCJiYWNrdXAtY29kZXMtYXJlYSJdLFsxMCwicm93cyIsIjEwIl0sWzEwLCJyZWFkb25seSIsIiJdLFs4XSxbMSxbMjIsImZvcm1hdHRlZEJhY2t1cENvZGVzIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29weVRvQ2xpcGJvYXJkIl0sbnVsbF0sImJhY2t1cC1jb2Rlcy1jb3B5LWJ0biIsImNvcHkiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJkb3dubG9hZCIsImJhY2t1cF9jb2Rlcy50eHQiXSxbMTAsImNsYXNzIiwiYnRuIG5vLXRleHQgYnRuLWljb24gYmFja3VwLWNvZGVzLWRvd25sb2FkLWJ0biJdLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzExLCJocmVmIixbMjksWyJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwiLFsyMiwiYmFzZTY0QmFja3VwQ29kZSJdXV1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImRvd25sb2FkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9iYWNrdXAtY29kZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYWNrdXAtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImFkbWluLmJhY2t1cHMudXBsb2FkLnRpdGxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1pY29uIixbInVwbG9hZCJdLG51bGxdLGZhbHNlXSxbMCwiwqAiXSxbMSxbMjIsInVwbG9hZEJ1dHRvblRleHQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiLmd6Il0sWzEwLCJ0eXBlIiwiZmlsZSJdLFs4XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFja3VwLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFkZ2UtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpY29uLW9yLWltYWdlIixbWzI0LFsiYmFkZ2UiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1kaXNwbGF5LW5hbWUiXSxbOF0sWzEsWzI0LFsiYmFkZ2UiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFkZ2UtY2FyZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZGlzcGxheUNvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwidXJsIl1dLFsxMCwiY2xhc3MiLCJncmFudC1jb3VudCJdLFsxMSwidGl0bGUiLFsyOCwiaTE4biIsWyJiYWRnZXMuZ3JhbnRlZCJdLFtbImNvdW50Il0sW1syNCxbImRpc3BsYXlDb3VudCJdXV1dXV0sWzhdLFsxLFsyMiwiZGlzcGxheUNvdW50Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiYmFkZ2UiLCJoYXNfYmFkZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJ1cmwiXV0sWzEwLCJjbGFzcyIsImNoZWNrLWRpc3BsYXkgc3RhdHVzLWNoZWNrZWQiXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtY29udGVudHMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYmFkZ2UtaWNvbiAiLFsyNCxbImJhZGdlIiwiYmFkZ2VUeXBlQ2xhc3NOYW1lIl1dXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwidXJsIl1dLFs4XSxbMSxbMjgsImljb24tb3ItaW1hZ2UiLFtbMjQsWyJiYWRnZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWluZm8iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtaW5mby1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjIsInVybCJdXSxbMTAsImNsYXNzIiwiYmFkZ2UtbGluayJdLFs4XSxbMSxbMjQsWyJiYWRnZSIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1zdW1tYXJ5Il0sWzhdLFsxLFsyMiwic3VtbWFyeSJdLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtY2FyZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2JhZGdlLXNlbGVjdG9yIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJlbWJlci10ZXh0LWZpZWxkIGJhZGdlLW5hbWVzIl0sWzExLCJwbGFjZWhvbGRlciIsWzIyLCJwbGFjZWhvbGRlciJdXSxbMTAsIm5hbWUiLCJiYWRnZXMiXSxbMTAsInR5cGUiLCJ0ZXh0Il0sWzhdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2Utc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYWRnZS10aXRsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJiYWRnZXMuc2VsZWN0X2JhZGdlX2Zvcl90aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJuYW1lUHJvcGVydHkiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsic2VsZWN0ZWRVc2VyQmFkZ2VJZCJdXSwiYmFkZ2UubmFtZSIsWzI0LFsic2VsZWN0YWJsZVVzZXJCYWRnZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzZWxlY3RlZFVzZXJCYWRnZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSxbMjQsWyJzYXZpbmciXV0sWzI4LCJpZiIsW1syNCxbInNhdmluZyJdXSwic2F2aW5nIiwic2F2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtdGl0bGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaGFzSW5jb21pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctbW9yZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwidGFiaW5kZXgiLCIwIl0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gY2xpY2thYmxlIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSxbMjQsWyJzaG93SW5zZXJ0ZWQiXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY291bnQtaTE4biIsbnVsbCxbWyJrZXkiLCJzdWZmaXgiLCJjb3VudCJdLFsidG9waWNfY291bnRfIiwibGF0ZXN0IiwyXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1sic2hvd1Bvc3RlcnMiLCJoaWRlQ2F0ZWdvcnkiLCJ0b3BpY3MiLCJleHBhbmRFeGNlcnB0cyIsImJ1bGtTZWxlY3RFbmFibGVkIiwiY2FuQnVsa1NlbGVjdCIsInNlbGVjdGVkIiwic2tpcEhlYWRlciIsInRhZ3NGb3JVc2VyIiwib25TY3JvbGwiLCJzY3JvbGxPbkxvYWQiXSxbWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsiaGlkZUNhdGVnb3J5Il1dLFsyNCxbInRvcGljcyJdXSxbMjQsWyJleHBhbmRFeGNlcnB0cyJdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyNCxbInNlbGVjdGVkIl1dLFsyNCxbInNraXBIZWFkZXIiXV0sWzI0LFsidGFnc0ZvclVzZXIiXV0sWzI0LFsib25TY3JvbGwiXV0sWzI0LFsic2Nyb2xsT25Mb2FkIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImxvYWRpbmdNb3JlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfdG9waWMubm9uZV9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Jhc2ljLXRvcGljLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9icmVhZC1jcnVtYnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJyZWFkY3J1bWIiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiY2F0ZWdvcnlCcmVhZGNydW1icyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImhhc09wdGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWRyb3AiLG51bGwsW1siY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwib3B0aW9ucyJdLFtbMjMsMSxbImNhdGVnb3J5Il1dLFsyMywxLFsib3B0aW9ucyJdXSxbMjgsImhhc2giLG51bGwsW1sicGFyZW50Q2F0ZWdvcnkiLCJzdWJDYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyIsImF1dG9GaWx0ZXJhYmxlIl0sW1syMywxLFsicGFyZW50Q2F0ZWdvcnkiXV0sWzIzLDEsWyJpc1N1YmNhdGVnb3J5Il1dLFsyMywxLFsibm9TdWJjYXRlZ29yaWVzIl1dLHRydWVdXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInRhZ2dpbmdfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1kcm9wIixudWxsLFtbImN1cnJlbnRDYXRlZ29yeSIsInRhZ0lkIl0sW1syNCxbImNhdGVnb3J5Il1dLFsyNCxbInRhZ0lkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsInRhZ05hbWUiXSxbImJyZWFkLWNydW1icy1yaWdodCIsImxpIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2JyZWFkLWNydW1icyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2J1bGstc2VsZWN0LWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImJ1bGstc2VsZWN0Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0J1bGtBY3Rpb25zIl0sbnVsbF0sIndyZW5jaCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYnVsay1zZWxlY3QtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2FuY2VsLWxpbmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsiY2FuY2VsIixbMjQsWyJyb3V0ZSJdXSxbMjQsWyJhcmdzIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImNhbmNlbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2FuY2VsLWxpbmsifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29sdW1uIGNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjYXRlZ29yaWVzLW9ubHkiLG51bGwsW1siY2F0ZWdvcmllcyJdLFtbMjQsWyJjYXRlZ29yaWVzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29sdW1uIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcmllcy10b3BpYy1saXN0IixudWxsLFtbInRvcGljcyIsImZpbHRlciIsImNsYXNzIl0sW1syNCxbInRvcGljcyJdXSwibGF0ZXN0IiwibGF0ZXN0LXRvcGljLWxpc3QiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbHVtbiBjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcmllcy1vbmx5IixudWxsLFtbImNhdGVnb3JpZXMiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbHVtbiJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3JpZXMtdG9waWMtbGlzdCIsbnVsbCxbWyJ0b3BpY3MiLCJmaWx0ZXIiLCJjbGFzcyJdLFtbMjQsWyJ0b3BpY3MiXV0sInRvcCIsInRvcC10b3BpYy1saXN0Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzI0LFsidG9waWNTdGF0dXNJY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0VW5yZWFkVXJsIl1dXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJ0ZXh0LW92ZXJmbG93IixudWxsLFtbImNsYXNzIiwidGV4dCJdLFsib3ZlcmZsb3ciLFsyNCxbInRvcGljIiwiZmFuY3lUaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcy10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtd2l0aC10b3BpY3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImMiLCJ0b3BpYyJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhdGVnb3J5IGNhdGVnb3J5LWJveCBjYXRlZ29yeS1ib3gtIixbMjgsInVuYm91bmQiLFtbMjMsMSxbInNsdWciXV1dLG51bGxdXV1dLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDEsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaGVhZGluZyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjMsMSxbInVybCJdXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiY2RuLWltZyIsbnVsbCxbWyJzcmMiLCJjbGFzcyIsIndpZHRoIiwiaGVpZ2h0Il0sW1syMywxLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwibG9nbyIsWzIzLDEsWyJ1cGxvYWRlZF9sb2dvIiwid2lkdGgiXV0sWzIzLDEsWyJ1cGxvYWRlZF9sb2dvIiwiaGVpZ2h0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1iZWZvcmUiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWFkX3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsibG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFsxLFsyMywxLFsibmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpY3MiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yaWVzLWJveGVzLXRvcGljIixudWxsLFtbInRvcGljIl0sW1syMywyLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yaWVzLWJveGVzLXdpdGgtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInNjIiwic3ViY2F0ZWdvcnkiLCJzdWJzdWJjYXRlZ29yeSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhdGVnb3J5IGNhdGVnb3J5LWJveCBjYXRlZ29yeS1ib3gtIixbMjgsInVuYm91bmQiLFtbMjMsMSxbInNsdWciXV1dLG51bGxdXV1dLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDEsWyJjb2xvciJdXV0sbnVsbF1dLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDEsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDEsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJkYXRhLXVybCIsWzIzLDEsWyJ1cmwiXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1sb2dvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImNkbi1pbWciLG51bGwsW1sic3JjIiwiY2xhc3MiLCJ3aWR0aCIsImhlaWdodCJdLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV0sImxvZ28iLFsyMywxLFsidXBsb2FkZWRfbG9nbyIsIndpZHRoIl1dLFsyMywxLFsidXBsb2FkZWRfbG9nbyIsImhlaWdodCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaGVhZGluZyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwicGFyZW50LWJveC1saW5rIl0sWzExLCJocmVmIixbMjMsMSxbInVybCJdXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWFkX3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsb2NrIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1vdmVyZmxvdyIsbnVsbCxbWyJjbGFzcyIsInRleHQiXSxbIm92ZXJmbG93IixbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV1dXV0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDMsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDMsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJzdHlsZSIsWzI4LCJib3JkZXItY29sb3IiLFtbMjMsMyxbImNvbG9yIl1dXSxudWxsXV0sWzExLCJjbGFzcyIsWzI5LFsic3ViY2F0ZWdvcnkgd2l0aC1zdWJjYXRlZ29yaWVzICIsWzI4LCJpZiIsW1syMywzLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiaGFzLWxvZ28iLCJuby1sb2dvIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWxpbmsiLG51bGwsW1sidGFnTmFtZSIsImNhdGVnb3J5Il0sWyJoNCIsWzIzLDMsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDMsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsMyxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw0LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsNCxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMyw0LFtdXV0sW1siaGlkZVBhcmVudCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzRdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5Il0sWzExLCJocmVmIixbMjMsMixbInVybCJdXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeS1pbWFnZS1wbGFjZWhvbGRlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjZG4taW1nIixudWxsLFtbInNyYyIsImNsYXNzIiwid2lkdGgiLCJoZWlnaHQiXSxbWzIzLDIsWyJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJsb2dvIixbMjMsMixbInVwbG9hZGVkX2xvZ28iLCJ3aWR0aCJdXSxbMjMsMixbInVwbG9hZGVkX2xvZ28iLCJoZWlnaHQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDIsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInQiLCJzdWJjYXRlZ29yeSIsInN1YmNhdGVnb3J5Iiwic3Vic3ViY2F0ZWdvcnkiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXRlZ29yeS1saXN0ICIsWzI4LCJpZiIsW1syNCxbInNob3dUb3BpY3MiXV0sIndpdGgtdG9waWNzIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5Il0sWzhdLFs3LCJzcGFuIix0cnVlXSxbMTAsImFyaWEtcm9sZSIsImhlYWRpbmciXSxbMTAsImFyaWEtbGV2ZWwiLCIyIl0sWzEwLCJpZCIsImNhdGVnb3JpZXMtb25seS1jYXRlZ29yeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy50b3BpY3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNsYXNzIiwibGF0ZXN0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmxhdGVzdCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywidGJvZHkiLHRydWVdLFsxMCwiYXJpYS1sYWJlbGxlZGJ5IiwiY2F0ZWdvcmllcy1vbmx5LWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTEsImRhdGEtY2F0ZWdvcnktaWQiLFsyMywxLFsiaWQiXV1dLFsxMSwiZGF0YS1ub3RpZmljYXRpb24tbGV2ZWwiLFsyMywxLFsibm90aWZpY2F0aW9uTGV2ZWxTdHJpbmciXV1dLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syMywxLFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXSwiaGFzLWRlc2NyaXB0aW9uIiwibm8tZGVzY3JpcHRpb24iXSxudWxsXSwiICIsWzI4LCJpZiIsW1syMywxLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiaGFzLWxvZ28iLCJuby1sb2dvIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnkiXSxbMTEsInN0eWxlIixbMjgsImJvcmRlci1jb2xvciIsW1syMywxLFsiY29sb3IiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktdGl0bGUtbGluayIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXItc3BhbiIsW1syMywxLFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXV0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbGlzdCBzdWJjYXRlZ29yaWVzLXdpdGgtc3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDQsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDQsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dLCJoYXMtZGVzY3JpcHRpb24iLCJuby1kZXNjcmlwdGlvbiJdLG51bGxdLCIgIixbMjgsImlmIixbWzIzLDQsWyJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJoYXMtbG9nbyIsIm5vLWxvZ28iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeSJdLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDQsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1saW5rIixudWxsLFtbInRhZ05hbWUiLCJjYXRlZ29yeSJdLFsiaDQiLFsyMyw0LFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMyw0LFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktZGVzY3JpcHRpb24gc3ViY2F0ZWdvcnktZGVzY3JpcHRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpci1zcGFuIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syMyw0LFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsNCxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw1LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1iZWZvcmUiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDUsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMyw1LFtdXV0sW1siaGlkZVBhcmVudCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbNV19LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIHN1YmNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpci1zcGFuIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNF19LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzIzLDMsWyJpc011dGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMyxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDMsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXVucmVhZCIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMyxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsInRpdGxlIixbMjMsMSxbInN0YXRUaXRsZSJdXV0sWzhdLFsxLFsyMywxLFsic3RhdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktdW5yZWFkIixudWxsLFtbImNhdGVnb3J5IiwidGFnTmFtZSIsImNsYXNzIl0sW1syMywxLFtdXSwiZGl2IiwidW5yZWFkLW5ldyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYXRlc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJmZWF0dXJlZFRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZmVhdHVyZWQtdG9waWMiLG51bGwsW1sidG9waWMiLCJsYXRlc3RUb3BpY09ubHkiXSxbWzIzLDIsW11dLFsyNCxbImxhdGVzdFRvcGljT25seSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtdG9waWMtbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidCJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhYmxlLWhlYWRpbmciXSxbMTAsImFyaWEtcm9sZSIsImhlYWRpbmciXSxbMTAsImFyaWEtbGV2ZWwiLCIyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbImZpbHRlcnMuIixbMjQsWyJmaWx0ZXIiXV0sIi50aXRsZSJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJsYXRlc3QtdG9waWMtbGlzdC1pdGVtIixudWxsLFtbInRvcGljIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9yZS10b3BpY3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwiZ2V0LXVybCIsW1syOCwiY29uY2F0IixbIi8iLFsyNCxbImZpbHRlciJdXV0sbnVsbF1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgcHVsbC1yaWdodCJdLFs4XSxbMSxbMjgsImkxOG4iLFsibW9yZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibm8tdG9waWNzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsidG9waWNzLm5vbmUuIixbMjQsWyJmaWx0ZXIiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtdG9waWMtbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY2F0ZWdvcmllcy1vbmx5IixudWxsLFtbImNhdGVnb3JpZXMiLCJsYXRlc3RUb3BpY09ubHkiLCJzaG93VG9waWNzIl0sW1syNCxbImNhdGVnb3JpZXMiXV0sWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS1uYW1lLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImNhdGVnb3J5IiwiaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkLWl0ZW0iXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJtYXhsZW5ndGgiXSxbWzI0LFsiY2F0ZWdvcnkiLCJuYW1lIl1dLCJjYXRlZ29yeS5uYW1lX3BsYWNlaG9sZGVyIiwiNTAiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZC1pdGVtIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNsdWciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJtYXhsZW5ndGgiXSxbWzI0LFsiY2F0ZWdvcnkiLCJzbHVnIl1dLCJjYXRlZ29yeS5zbHVnX3BsYWNlaG9sZGVyIiwiMjU1Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LW5hbWUtZmllbGRzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcnktdGl0bGUtYmVmb3JlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsIm5vVGFncyIsImFyZ3MiXSxbImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsdHJ1ZSxbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1iZWZvcmUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1saW5rIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LXRpdGxlLWxpbmsiXSxbMTEsImhyZWYiLFsyNCxbImNhdGVnb3J5IiwidXJsIl1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LXRleHQtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwicmVhZF9yZXN0cmljdGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsb2NrIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbmFtZSJdLFs4XSxbMSxbMjgsImRpci1zcGFuIixbWzI0LFsiY2F0ZWdvcnkiLCJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjZG4taW1nIixudWxsLFtbInNyYyIsImNsYXNzIiwid2lkdGgiLCJoZWlnaHQiXSxbWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJjYXRlZ29yeS1sb2dvIixbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJ3aWR0aCJdXSxbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJoZWlnaHQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LXRpdGxlLWxpbmsifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS11bnJlYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsiY2F0ZWdvcnkiLCJ1bnJlYWRVcmwiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBuZXctcG9zdHMgYmFkZ2Utbm90aWZpY2F0aW9uIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudW5yZWFkX3RvcGljcyJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXV1dXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZmlsdGVycy51bnJlYWQubG93ZXJfdGl0bGVfd2l0aF9jb3VudCJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsiY2F0ZWdvcnkiLCJuZXdVcmwiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBuZXctcG9zdHMgYmFkZ2Utbm90aWZpY2F0aW9uIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMubmV3X3RvcGljcyJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXV1dXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZmlsdGVycy5uZXcubG93ZXJfdGl0bGVfd2l0aF9jb3VudCJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LXVucmVhZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Nkbi1pbWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNyYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksW1syMiwiY2xhc3MiXSwiIGFzcGVjdC1pbWFnZSJdXV0sWzExLCJzdHlsZSIsWzIyLCJzdHlsZSJdXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW1nIix0cnVlXSxbMTEsInNyYyIsWzIyLCJjZG5TcmMiXV0sWzExLCJ3aWR0aCIsWzIyLCJ3aWR0aCJdXSxbMTEsImhlaWdodCIsWzIyLCJoZWlnaHQiXV0sWzhdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Nkbi1pbWcifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jaG9vc2UtbWVzc2FnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsibSJdLCJzdGF0ZW1lbnRzIjpbWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNob29zZS1tZXNzYWdlLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfbWVzc2FnZS50aXRsZS5zZWFyY2giXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImlkIl0sW1syNCxbIm1lc3NhZ2VUaXRsZSJdXSwiY2hvb3NlX21lc3NhZ2UudGl0bGUucGxhY2Vob2xkZXIiLCJjaG9vc2UtbWVzc2FnZS10aXRsZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvYWRpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJub1Jlc3VsdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfbWVzc2FnZS5ub25lX2ZvdW5kIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJtZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGV4aXN0aW5nLW1lc3NhZ2UiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJjaG9vc2UtbWVzc2FnZS0iLFsyOCwidW5ib3VuZCIsW1syMywxLFsiaWQiXV1dLG51bGxdXV1dLFsxMiwibmFtZSIsImNob29zZV9tZXNzYWdlX2lkIl0sWzEyLCJ0eXBlIiwicmFkaW8iXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjaG9vc2VNZXNzYWdlIixbMjMsMSxbXV1dXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJtZXNzYWdlLXRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jaG9vc2UtbWVzc2FnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Nob29zZS10b3BpYyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidCJdLCJzdGF0ZW1lbnRzIjpbWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNob29zZS10b3BpYy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjQsWyJsYWJlbFRleHQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbWzI0LFsidG9waWNUaXRsZSJdXSwiY2hvb3NlX3RvcGljLnRpdGxlLnBsYWNlaG9sZGVyIiwiY2hvb3NlLXRvcGljLXRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9hZGluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm5vUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNob29zZV90b3BpYy5ub25lX2ZvdW5kIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBleGlzdGluZy10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJpbnB1dCIsZmFsc2VdLFsxMiwiaWQiLFsyOSxbImNob29zZS10b3BpYy0iLFsyOCwidW5ib3VuZCIsW1syMywxLFsiaWQiXV1dLG51bGxdXV1dLFsxMiwibmFtZSIsImNob29zZV90b3BpY19pZCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hvb3NlVG9waWMiLFsyMywxLFtdXV1dLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJhdyIsWyJ0b3BpYy1zdGF0dXMiXSxbWyJ0b3BpYyJdLFtbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJ0aXRsZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiYm91bmQtY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLFtbInJlY3Vyc2l2ZSIsImhpZGVQYXJlbnQiXSxbdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2hvb3NlLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29sb3ItaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJjbGFzcyIsInZhbHVlIiwibWF4bGVuZ3RoIl0sWyJoZXgtaW5wdXQiLFsyNCxbImhleFZhbHVlIl1dLCI2Il1dXSxmYWxzZV0sWzAsIiAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJwaWNrZXIiXSxbMTAsInR5cGUiLCJpbnB1dCJdLFs4XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbG9yLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29sb3ItcGlja2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbImNvbG9ycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiY29sb3ItcGlja2VyLWNob2ljZSIsbnVsbCxbWyJjb2xvciIsInVzZWRDb2xvcnMiLCJzZWxlY3RDb2xvciJdLFtbMjMsMSxbXV0sWzI0LFsidXNlZENvbG9ycyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0Q29sb3IiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb2xvci1waWNrZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci1hY3Rpb24tdGl0bGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRWRpdGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNvbXBvc2VyLWFjdGlvbnMiLG51bGwsW1siY29tcG9zZXJNb2RlbCIsInJlcGx5T3B0aW9ucyIsImNhbldoaXNwZXIiLCJvcGVuQ29tcG9zZXIiLCJjbG9zZUNvbXBvc2VyIiwiYWN0aW9uIiwidGFiaW5kZXgiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibW9kZWwiLCJyZXBseU9wdGlvbnMiXV0sWzI0LFsiY2FuV2hpc3BlciJdXSxbMjQsWyJvcGVuQ29tcG9zZXIiXV0sWzI0LFsiY2xvc2VDb21wb3NlciJdXSxbMjQsWyJtb2RlbCIsImFjdGlvbiJdXSxbMjQsWyJ0YWJpbmRleCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJhY3Rpb24tdGl0bGUiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJhY3Rpb25UaXRsZSJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb21wb3Nlci1hY3Rpb24tdGl0bGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidGFiaW5kZXgiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyIiwicHJldmlld1VwZGF0ZWQiLCJtYXJrZG93bk9wdGlvbnMiLCJleHRyYUJ1dHRvbnMiLCJpbXBvcnRRdW90ZSIsInNob3dVcGxvYWRNb2RhbCIsInRvZ2dsZVByZXZpZXciLCJ2YWxpZGF0aW9uIiwibG9hZGluZyIsImZvcmNlUHJldmlldyIsInNob3dMaW5rIiwiY29tcG9zZXJFdmVudHMiLCJvbkV4cGFuZFBvcHVwTWVudU9wdGlvbnMiLCJvblBvcHVwTWVudUFjdGlvbiIsInBvcHVwTWVudU9wdGlvbnMiLCJkaXNhYmxlZCIsIm91dGxldEFyZ3MiXSxbIjQiLFsyNCxbImNvbXBvc2VyIiwicmVwbHkiXV0sWzI0LFsicmVwbHlQbGFjZWhvbGRlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicHJldmlld1VwZGF0ZWQiXSxudWxsXSxbMjQsWyJtYXJrZG93bk9wdGlvbnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4dHJhQnV0dG9ucyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJpbXBvcnRRdW90ZSJdLG51bGxdLFsyNCxbInNob3dVcGxvYWRNb2RhbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUHJldmlldyJdLG51bGxdLFsyNCxbInZhbGlkYXRpb24iXV0sWzI0LFsiY29tcG9zZXIiLCJsb2FkaW5nIl1dLFsyNCxbImZvcmNlUHJldmlldyJdXSxbMjQsWyJzaG93TGluayJdXSx0cnVlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkV4cGFuZFBvcHVwTWVudU9wdGlvbnMiXSxudWxsXSxbMjQsWyJvblBvcHVwTWVudUFjdGlvbiJdXSxbMjQsWyJwb3B1cE1lbnVPcHRpb25zIl1dLFsyNCxbImRpc2FibGVUZXh0YXJlYSJdXSxbMjgsImhhc2giLG51bGwsW1siY29tcG9zZXIiLCJlZGl0b3JUeXBlIl0sW1syNCxbImNvbXBvc2VyIl1dLCJjb21wb3NlciJdXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiaWQiLCJtb2JpbGUtdXBsb2FkZXIiXSxbMTAsIm11bHRpcGxlIiwiIl0sWzEwLCJ0eXBlIiwiZmlsZSJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbXBvc2VyLWVkaXRvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLW1lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJtZXNzYWdlIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbIm1lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY29tcG9zZXItbWVzc2FnZSIsbnVsbCxbWyJtZXNzYWdlIiwiY2xvc2VNZXNzYWdlIl0sW1syMywxLFtdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2xvc2VNZXNzYWdlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29tcG9zZXItbWVzc2FnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci10aXRsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJpZCIsIm1heExlbmd0aCIsInBsYWNlaG9sZGVyS2V5IiwiZGlzYWJsZWQiLCJhdXRvY29tcGxldGUiXSxbWzI0LFsiY29tcG9zZXIiLCJ0aXRsZSJdXSwiMiIsInJlcGx5LXRpdGxlIixbMjQsWyJ0aXRsZU1heExlbmd0aCJdXSxbMjQsWyJjb21wb3NlciIsInRpdGxlUGxhY2Vob2xkZXIiXV0sWzI0LFsiZGlzYWJsZWQiXV0sImRpc2NvdXJzZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb21wb3Nlci10aXRsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLXRvZ2dsZXMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3Nlci1jb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImZsYXQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiJdLFsidG9nZ2xlLXRvb2xiYXIiLCJiYXJzIixbMjQsWyJ0b2dnbGVUb29sYmFyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJmbGF0LWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImljb24iLCJhY3Rpb24iLCJ0aXRsZSJdLFsidG9nZ2xlciIsWzI0LFsidG9nZ2xlSWNvbiJdXSxbMjQsWyJ0b2dnbGVDb21wb3NlciJdXSxbMjQsWyJ0b2dnbGVUaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZmxhdC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIiwidGl0bGUiXSxbInRvZ2dsZS1mdWxsc2NyZWVuIixbMjQsWyJmdWxsc2NyZWVuSWNvbiJdXSxbMjQsWyJ0b2dnbGVGdWxsc2NyZWVuIl1dLFsyNCxbImZ1bGxzY3JlZW5UaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29tcG9zZXItdG9nZ2xlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dTZWxlY3RvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1sidG9waWNJZCIsIm9uQ2hhbmdlQ2FsbGJhY2siLCJpZCIsImluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwcyIsInBsYWNlaG9sZGVyS2V5IiwidGFiaW5kZXgiLCJ1c2VybmFtZXMiLCJoYXNHcm91cHMiLCJhbGxvd0VtYWlscyIsImF1dG9jb21wbGV0ZSJdLFtbMjQsWyJ0b3BpY0lkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0cmlnZ2VyUmVzaXplIl0sbnVsbF0sInByaXZhdGUtbWVzc2FnZS11c2VycyIsInRydWUiLCJjb21wb3Nlci51c2Vyc19wbGFjZWhvbGRlciIsIjEiLFsyNCxbInVzZXJuYW1lcyJdXSxbMjQsWyJoYXNHcm91cHMiXV0sInRydWUiLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVNlbGVjdG9yIl1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy13cmFwIGNvbXBvc2VyLXVzZXItc2VsZWN0b3ItbGltaXRlZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjIsImxpbWl0ZWRVc2VybmFtZXMiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSJdLFs4XSxbMSxbMjIsImhpZGRlblVzZXJzQ291bnQiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb25kaXRpb25hbC1sb2FkaW5nLXNlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJpc0xvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMSxbMjIsInRpdGxlIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJzcGlubmVyICIsWzIyLCJzaXplIl1dXV0sWzhdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY29uZGl0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNwaW5uZXIgIixbMjIsInNpemUiXV1dXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMTQsMV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb29rLXRleHQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwiY29va2VkIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb29rLXRleHQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb3VudC1pMThuIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjIsImkxOG5Db3VudCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY291bnQtaTE4biJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NyZWF0ZS10b3BpYy1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpZCIsImFjdGlvbiIsImljb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCIsImNyZWF0ZS10b3BpYyIsWzI0LFsiYWN0aW9uIl1dLCJwbHVzIixbMjQsWyJkaXNhYmxlZCJdXSxbMjQsWyJsYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NyZWF0ZS10b3BpYy1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jcmVhdGUtdG9waWNzLW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImhpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gYWxlcnQtdG9vLWZldy10b3BpY3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyMiwibWVzc2FnZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NyZWF0ZS10b3BpY3Mtbm90aWNlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY3N2LXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJidG4iXSxbMTEsImRpc2FibGVkIixbMjIsInVwbG9hZEJ1dHRvbkRpc2FibGVkIl1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1cGxvYWQiXSxudWxsXSxmYWxzZV0sWzAsIsKgIl0sWzEsWzIyLCJ1cGxvYWRCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJpbnB1dCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhpZGRlbi11cGxvYWQtZmllbGQiXSxbMTEsImRpc2FibGVkIixbMjIsInVwbG9hZGluZyJdXSxbMTAsImFjY2VwdCIsIi5jc3YiXSxbMTAsInR5cGUiLCJmaWxlIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1cGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Nzdi11cGxvYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2N1c3RvbS1odG1sLWNvbnRhaW5lciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJodG1sIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jdXN0b20taHRtbC1jb250YWluZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kLWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0cmFuc2xhdGVkTGFiZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkLWJ1dHRvbi1sYWJlbCJdLFs4XSxbMSxbMjIsInRyYW5zbGF0ZWRMYWJlbCJdLHRydWVdLFs0LCJpZiIsW1syNCxbImVsbGlwc2lzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCLigKYiXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMTQsMV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZC1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyb3VwIiwiYiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJkLWVkaXRvci10ZXh0YXJlYS13cmFwcGVyICIsWzI4LCJpZiIsW1syNCxbImRpc2FibGVkIl1dLCJkaXNhYmxlZCJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkLWVkaXRvci1idXR0b24tYmFyIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRvb2xiYXIiLCJncm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbImJ1dHRvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJwb3B1cE1lbnUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwidG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMiLG51bGwsW1siY29udGVudCIsIm9uQ2hhbmdlIiwib25FeHBhbmQiLCJjbGFzcyIsIm9wdGlvbnMiXSxbWzI0LFsicG9wdXBNZW51T3B0aW9ucyJdXSxbMjQsWyJvblBvcHVwTWVudUFjdGlvbiJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjMsMixbImFjdGlvbiJdXSxbMjMsMixbXV1dLG51bGxdLFsyMywyLFsiY2xhc3NOYW1lIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJwb3B1cFRpdGxlIiwiaWNvbiJdLFtbMjMsMixbInRpdGxlIl1dLFsyMywyLFsiaWNvbiJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsInR5cGUiLCJhY3Rpb25QYXJhbSIsInRyYW5zbGF0ZWRUaXRsZSIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syMywyLFsiYWN0aW9uIl1dLCJidXR0b24iLFsyMywyLFtdXSxbMjMsMixbInRpdGxlIl1dLFsyMywyLFsibGFiZWwiXV0sWzIzLDIsWyJpY29uIl1dLFsyMywyLFsiY2xhc3NOYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syMywxLFsibGFzdEdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLXNwYWNlciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1siYXV0b2NvbXBsZXRlIiwidGFiaW5kZXgiLCJ2YWx1ZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsImlucHV0Il0sWyJkaXNjb3Vyc2UiLFsyNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLCJkLWVkaXRvci1pbnB1dCIsWzI0LFsicGxhY2Vob2xkZXJUcmFuc2xhdGVkIl1dLFsyNCxbImRpc2FibGVkIl1dLFsyNCxbImNoYW5nZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWZ0ZXItZC1lZGl0b3IiLCIiLFsyNCxbIm91dGxldEFyZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJkLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIgIixbMjgsImlmIixbWzI0LFsiZm9yY2VQcmV2aWV3Il1dLCJmb3JjZS1wcmV2aWV3Il0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLXByZXZpZXciXSxbOF0sWzEsWzIyLCJwcmV2aWV3Il0sdHJ1ZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjbGFzc05hbWVzIiwiYXJncyJdLFsiZWRpdG9yLXByZXZpZXciLCJkLWVkaXRvci1wbHVnaW4iLFsyNCxbIm91dGxldEFyZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsImVtb2ppLXBpY2tlciIsbnVsbCxbWyJhY3RpdmUiLCJpc0VkaXRvckZvY3VzZWQiLCJlbW9qaVNlbGVjdGVkIl0sW1syNCxbImVtb2ppUGlja2VySXNBY3RpdmUiXV0sWzI0LFsiaXNFZGl0b3JGb2N1c2VkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlbW9qaVNlbGVjdGVkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kLWVkaXRvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2QtbW9kYWwtY2FuY2VsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJkLW1vZGFsLWNhbmNlbCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsiY2xvc2UiXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhbmNlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtbW9kYWwtY2FuY2VsIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZC1tb2RhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZXJyb3IiLCJwYW5lbCIsIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtb3V0ZXItY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1taWRkbGUtY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWlubmVyLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWhlYWRlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZGlzbWlzc2FibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyJdLFsidGltZXMiLFsyOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuIGJ0bi1mbGF0IG1vZGFsLWNsb3NlIGNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJwYW5lbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC10YWJzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInBhbmVscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsIm1vZGFsLXRhYiIsbnVsbCxbWyJwYW5lbCIsInBhbmVsc0xlbmd0aCIsInNlbGVjdGVkUGFuZWwiLCJvblNlbGVjdFBhbmVsIl0sW1syMywyLFtdXSxbMjQsWyJwYW5lbHMiLCJsZW5ndGgiXV0sWzI0LFsic2VsZWN0ZWRQYW5lbCJdXSxbMjQsWyJvblNlbGVjdFBhbmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInN1YnRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzIyLCJzdWJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsIm1vZGFsLWFsZXJ0Il0sWzhdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzE0LDNdLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbImVycm9ycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYnV0dG9uIix0cnVlXSxbMTAsImNsYXNzIiwiY2xvc2UiXSxbMTAsImRhdGEtZGlzbWlzcyIsImFsZXJ0Il0sWzhdLFswLCLDlyJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMywxLFtdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtbW9kYWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kLW5hdmlnYXRpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiYnJlYWQtY3J1bWJzIixudWxsLFtbImNhdGVnb3JpZXMiLCJjYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyJdLFtbMjQsWyJjYXRlZ29yaWVzIl1dLFsyNCxbImNhdGVnb3J5Il1dLFsyNCxbIm5vU3ViY2F0ZWdvcmllcyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDYXRlZ29yeUFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY2F0ZWdvcmllcy1hZG1pbi1kcm9wZG93biIsbnVsbCxbWyJvbkNoYW5nZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0Q2F0ZWdvcnlBZG1pbkRyb3Bkb3duQWN0aW9uIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJuYXZpZ2F0aW9uLWJhciIsbnVsbCxbWyJuYXZJdGVtcyIsImZpbHRlck1vZGUiLCJjYXRlZ29yeSJdLFtbMjQsWyJuYXZJdGVtcyJdXSxbMjQsWyJmaWx0ZXJNb2RlIl1dLFsyNCxbImNhdGVnb3J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0NhdGVnb3J5Tm90aWZpY2F0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNhdGVnb3J5LW5vdGlmaWNhdGlvbnMtYnV0dG9uIixudWxsLFtbInZhbHVlIiwiY2F0ZWdvcnkiLCJvbkNoYW5nZSJdLFtbMjQsWyJjYXRlZ29yeSIsIm5vdGlmaWNhdGlvbl9sZXZlbCJdXSxbMjQsWyJjYXRlZ29yeSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlQ2F0ZWdvcnlOb3RpZmljYXRpb25MZXZlbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiYmVmb3JlLWNyZWF0ZS10b3BpYy1idXR0b24iLFsyOCwiaGFzaCIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImNyZWF0ZVRvcGljRGlzYWJsZWQiLCJjcmVhdGVUb3BpY0xhYmVsIl0sW1syNCxbImNhbkNyZWF0ZVRvcGljIl1dLFsyNCxbImNyZWF0ZVRvcGljRGlzYWJsZWQiXV0sWzI0LFsiY3JlYXRlVG9waWNMYWJlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY3JlYXRlLXRvcGljLWJ1dHRvbiIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV0sWzI0LFsiY3JlYXRlVG9waWMiXV0sWzI0LFsiY3JlYXRlVG9waWNEaXNhYmxlZCJdXSxbMjQsWyJjcmVhdGVUb3BpY0xhYmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0NhdGVnb3J5RWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBlZGl0LWNhdGVnb3J5IixbMjQsWyJlZGl0Q2F0ZWdvcnkiXV0sIndyZW5jaCIsImNhdGVnb3J5LmVkaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZC1uYXZpZ2F0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGF0ZS1pbnB1dCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwiaW5wdXQiXSxbWzI0LFsiaW5wdXRUeXBlIl1dLCJkYXRlLXBpY2tlciIsWzI0LFsicGxhY2Vob2xkZXIiXV0sWzI0LFsidmFsdWUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uSW5wdXQiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2RhdGUtaW5wdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXBpY2tlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJwbGFjZWhvbGRlciIsInZhbHVlIl0sW1syNCxbImlucHV0VHlwZSJdXSwiZGF0ZS1waWNrZXIiLFsyNCxbInBsYWNlaG9sZGVyIl1dLFsyNCxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZGF0ZS1waWNrZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQtcmFuZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJ1bCIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWxzICIsWzIyLCJjdXJyZW50UGFuZWwiXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImRhdGVfdGltZV9waWNrZXIuZnJvbSIsImZyb20tcGFuZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVBhbmVsIiwiZnJvbSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImRhdGVfdGltZV9waWNrZXIudG8iLCJ0by1wYW5lbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlUGFuZWwiLCJ0byJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3IiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGVycm9yIl0sWzhdLFsxLFsyMiwiZXJyb3IiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWwgZnJvbSAiLFsyOCwiaWYiLFtbMjQsWyJmcm9tUGFuZWxBY3RpdmUiXV0sInZpc2libGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkYXRlLXRpbWUtaW5wdXQiLG51bGwsW1siZGF0ZSIsIm9uQ2hhbmdlIiwic2hvd1RpbWUiXSxbWzI0LFsiZnJvbSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiX29uQ2hhbmdlIixbMjgsImhhc2giLG51bGwsW1sicHJvcCJdLFsiZnJvbSJdXV1dLG51bGxdLFsyNCxbInNob3dGcm9tVGltZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWwgdG8gIixbMjgsImlmIixbWzI0LFsidG9QYW5lbEFjdGl2ZSJdXSwidmlzaWJsZSJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRhdGUtdGltZS1pbnB1dCIsbnVsbCxbWyJkYXRlIiwib25DaGFuZ2UiLCJzaG93VGltZSJdLFtbMjQsWyJ0byJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiX29uQ2hhbmdlIixbMjgsImhhc2giLG51bGwsW1sicHJvcCJdLFsidG8iXV1dXSxudWxsXSxbMjQsWyJzaG93VG9UaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQtcmFuZ2UifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZGF0ZS1pbnB1dCIsbnVsbCxbWyJkYXRlIiwib25DaGFuZ2UiXSxbWzI0LFsiZGF0ZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25DaGFuZ2VEYXRlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRpbWUtaW5wdXQiLG51bGwsW1siaG91cnMiLCJtaW51dGVzIiwib25DaGFuZ2UiXSxbWzI0LFsiX2hvdXJzIl1dLFsyNCxbIl9taW51dGVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVRpbWUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2RhdGUtdGltZS1pbnB1dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXNOb3RTdXBwb3J0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiY2xhc3MiLCJsYWJlbCIsImRpc2FibGVkIl0sWyJiZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5ub3Rfc3VwcG9ydGVkIiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpc0RlbmllZFBlcm1pc3Npb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiY2xhc3MiLCJsYWJlbCIsImFjdGlvbiIsImRpc2FibGVkIl0sWyJiZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5wZXJtX2RlbmllZF9idG4iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWNoZWNrUGVybWlzc2lvbiJdLG51bGxdLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZGVza3RvcF9ub3RpZmljYXRpb25zLnBlcm1fZGVuaWVkX2V4cGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwibGFiZWwiLCJhY3Rpb24iXSxbImZhci1iZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5kaXNhYmxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybm9mZiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsImxhYmVsIiwiYWN0aW9uIl0sWyJmYXItYmVsbCIsImJ0bi1kZWZhdWx0IiwidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZW5hYmxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybm9uIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2RpcmVjdG9yeS1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbIml0ZW0iLCJ1c2VyIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsImxpa2VzX3JlY2VpdmVkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJsaWtlc19naXZlbiJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJpdGVtIiwidG9waWNfY291bnQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsInBvc3RfY291bnQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsInRvcGljc19lbnRlcmVkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJwb3N0c19yZWFkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJkYXlzX3Zpc2l0ZWQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUaW1lUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpbWUtcmVhZCJdLFs4XSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbIml0ZW0iLCJ0aW1lX3JlYWQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2RpcmVjdG9yeS10b2dnbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaGVhZGVyLWNvbnRlbnRzIl0sWzhdLFsxLFsyMiwiY29sdW1uSWNvbiJdLGZhbHNlXSxbMSxbMjIsInRpdGxlIl0sZmFsc2VdLFsxLFsyMiwiY2hldnJvbkljb24iXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXJlY3RvcnktdG9nZ2xlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzYWJsZWQtaWNvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpY29uIl1dXSxbWyJjbGFzcyJdLFsiZmEtc3RhY2stMXgiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZGlzYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sW1siY2xhc3MiXSxbImZhLXN0YWNrLTJ4Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2FibGVkLWljb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ2aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiYmFubmVyIl0sWzExLCJjbGFzcyIsWzIyLCJvdmVybGF5Il1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJ0aXRsZSJdLFsidGltZXMiLCJkaXNtaXNzIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwiYmFubmVyLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJiYW5uZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsImNvbnRlbnQiXSx0cnVlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiLCJzdGFmZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjQsWyJiYW5uZXIiLCJ1cmwiXV1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJiYW5uZXIuZWRpdCJdLG51bGxdLHRydWVdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzY291cnNlLWxpbmtlZC10ZXh0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjIsInRyYW5zbGF0ZWRUZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2NvdXJzZS1saW5rZWQtdGV4dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Rpc2NvdXJzZS10YWctYm91bmQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyNCxbInRhZ1JlY29yZCIsImlkIl1dLGZhbHNlXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXNjb3Vyc2UtdGFnLWJvdW5kIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzY292ZXJ5LXRvcGljcy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzE0LDEsW1syOCwiaGFzaCIsbnVsbCxbWyJzYXZlU2Nyb2xsUG9zaXRpb24iXSxbWzI0LFsic2F2ZVNjcm9sbFBvc2l0aW9uIl1dXV1dXV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2NvdmVyeS10b3BpY3MtbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktZ2VuZXJhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS51bmNhdGVnb3JpemVkX2dlbmVyYWxfd2FybmluZyJdLFtbInNldHRpbmdMaW5rIiwiY3VzdG9taXplTGluayJdLFtbMjQsWyJ1bmNhdGVnb3JpemVkU2l0ZVNldHRpbmdMaW5rIl1dLFsyNCxbImN1c3RvbWl6ZVRleHRDb250ZW50TGluayJdXV1dXSx0cnVlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcnktbmFtZS1maWVsZHMiLG51bGwsW1siY2F0ZWdvcnkiLCJ0YWdOYW1lIl0sW1syNCxbImNhdGVnb3J5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0UGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucGFyZW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInJvb3ROb25lIiwidmFsdWUiLCJleGNsdWRlQ2F0ZWdvcnlJZCIsImNhdGVnb3JpZXMiLCJhbGxvd1N1YkNhdGVnb3JpZXMiLCJhbGxvd1VuY2F0ZWdvcml6ZWQiLCJvbkNoYW5nZSJdLFt0cnVlLFsyNCxbImNhdGVnb3J5IiwicGFyZW50X2NhdGVnb3J5X2lkIl1dLFsyNCxbImNhdGVnb3J5IiwiaWQiXV0sWzI0LFsicGFyZW50Q2F0ZWdvcmllcyJdXSx0cnVlLGZhbHNlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiY2F0ZWdvcnkiLCJwYXJlbnRfY2F0ZWdvcnlfaWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdWJDYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3JpZXMuc3ViY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic3ViQ2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzIzLDEsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dEZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwiZGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI0LFsiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiJdXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm5vX2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY191cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IGVkaXQtY2F0ZWdvcnktZGVzY3JpcHRpb24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93Q2F0ZWdvcnlUb3BpYyJdLG51bGxdLCJwZW5jaWwtYWx0IiwiY2F0ZWdvcnkuY2hhbmdlX2luX2NhdGVnb3J5X3RvcGljIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm5vQ2F0ZWdvcnlTdHlsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5iYWRnZV9jb2xvcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktY29sb3ItZWRpdG9yIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwiY2F0ZWdvcnlCYWRnZVByZXZpZXciXSx0cnVlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQtcHJlcGVuZCBpbnB1dC1hcHBlbmQiXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogMTBweDsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbG9yLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5iYWNrZ3JvdW5kX2NvbG9yIl0sbnVsbF0sZmFsc2VdLFswLCI6Il0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbG9ycGlja2VyLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYWRkLW9uIl0sWzhdLFswLCIjIl0sWzldLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwibWF4bGVuZ3RoIl0sW1syNCxbImNhdGVnb3J5IiwiY29sb3IiXV0sImNhdGVnb3J5LmNvbG9yX3BsYWNlaG9sZGVyIiwiNiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbG9yLXBpY2tlciIsbnVsbCxbWyJjb2xvcnMiLCJ1c2VkQ29sb3JzIiwidmFsdWUiXSxbWzI0LFsiYmFja2dyb3VuZENvbG9ycyJdXSxbMjQsWyJ1c2VkQmFja2dyb3VuZENvbG9ycyJdXSxbMjQsWyJjYXRlZ29yeSIsImNvbG9yIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0LXByZXBlbmQgaW5wdXQtYXBwZW5kIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJjb2xvci10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkuZm9yZWdyb3VuZF9jb2xvciJdLG51bGxdLGZhbHNlXSxbMCwiOiJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb2xvcnBpY2tlci13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFkZC1vbiJdLFs4XSxbMCwiIyJdLFs5XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsIm1heGxlbmd0aCJdLFtbMjQsWyJjYXRlZ29yeSIsInRleHRfY29sb3IiXV0sImNhdGVnb3J5LmNvbG9yX3BsYWNlaG9sZGVyIiwiNiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbG9yLXBpY2tlciIsbnVsbCxbWyJjb2xvcnMiLCJ2YWx1ZSIsImlkIl0sW1syNCxbImZvcmVncm91bmRDb2xvcnMiXV0sWzI0LFsiY2F0ZWdvcnkiLCJ0ZXh0X2NvbG9yIl1dLCJlZGl0LXRleHQtY29sb3IiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LWdlbmVyYWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LWltYWdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkubG9nbyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsIm9uVXBsb2FkRG9uZSIsIm9uVXBsb2FkRGVsZXRlZCIsInR5cGUiLCJjbGFzcyJdLFtbMjQsWyJsb2dvSW1hZ2VVcmwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ29VcGxvYWREb25lIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ29VcGxvYWREZWxldGVkIl0sbnVsbF0sImNhdGVnb3J5X2xvZ28iLCJuby1yZXBlYXQgY29udGFpbi1pbWFnZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmJhY2tncm91bmRfaW1hZ2UiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiaW1hZ2UtdXBsb2FkZXIiLG51bGwsW1siaW1hZ2VVcmwiLCJvblVwbG9hZERvbmUiLCJvblVwbG9hZERlbGV0ZWQiLCJ0eXBlIl0sW1syNCxbImJhY2tncm91bmRJbWFnZVVybCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYmFja2dyb3VuZFVwbG9hZERvbmUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYmFja2dyb3VuZFVwbG9hZERlbGV0ZWQiXSxudWxsXSwiY2F0ZWdvcnlfYmFja2dyb3VuZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktaW1hZ2VzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJjdXN0b21Db21wb25lbnQiXV1dLFtbInRhYiIsInNlbGVjdGVkVGFiIiwiY2F0ZWdvcnkiXSxbWzI0LFsidGFiIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLFsyNCxbImNhdGVnb3J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2VjdXJpdHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInAiXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwiaXNfc3BlY2lhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsImlzVW5jYXRlZ29yaXplZENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnVuY2F0ZWdvcml6ZWRfc2VjdXJpdHlfd2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNwZWNpYWxfd2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwidW5sZXNzIixbWzI0LFsiY2F0ZWdvcnkiLCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBlcm1pc3Npb24tbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yeSIsInBlcm1pc3Npb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtZ3JvdXAiXSxbOF0sWzEsWzIzLDEsWyJncm91cF9uYW1lIl1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmNhbiJdLG51bGxdLHRydWVdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJwZXJtaXNzaW9uIl0sWzhdLFsxLFsyMywxLFsicGVybWlzc2lvbiIsImRlc2NyaXB0aW9uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImVkaXRpbmdQZXJtaXNzaW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImNsYXNzIiwicmVtb3ZlLXBlcm1pc3Npb24iXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVQZXJtaXNzaW9uIixbMjMsMSxbXV1dXSxbOF0sWzEsWzI4LCJkLWljb24iLFsidGltZXMtY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImVkaXRpbmdQZXJtaXNzaW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsImF2YWlsYWJsZUdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siY2xhc3MiLCJjb250ZW50Iiwib25DaGFuZ2UiLCJ2YWx1ZSIsInZhbHVlUHJvcGVydHkiLCJuYW1lUHJvcGVydHkiXSxbImF2YWlsYWJsZS1ncm91cHMiLFsyNCxbImNhdGVnb3J5IiwiYXZhaWxhYmxlR3JvdXBzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvblNlbGVjdEdyb3VwIl0sbnVsbF0sWzI0LFsic2VsZWN0ZWRHcm91cCJdXSxudWxsLG51bGxdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsIm5hbWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJvbkNoYW5nZSIsInZhbHVlIl0sWyJwZXJtaXNzaW9uLXNlbGVjdG9yIiwiZGVzY3JpcHRpb24iLFsyNCxbImNhdGVnb3J5IiwiYXZhaWxhYmxlUGVybWlzc2lvbnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uU2VsZWN0UGVybWlzc2lvbiJdLG51bGxdLFsyNCxbInNlbGVjdGVkUGVybWlzc2lvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRQZXJtaXNzaW9uIixbMjQsWyJzZWxlY3RlZEdyb3VwIl1dLFsyNCxbInNlbGVjdGVkUGVybWlzc2lvbiJdXV0sbnVsbF0sImJ0bi1wcmltYXJ5IGFkZC1wZXJtaXNzaW9uIiwicGx1cyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwZW5kaW5nLXBlcm1pc3Npb24tY2hhbmdlLWFsZXJ0Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFycm93LWRpdiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucGVuZGluZ19wZXJtaXNzaW9uX2NoYW5nZV9hbGVydCJdLFtbImdyb3VwIl0sW1syNCxbInNlbGVjdGVkR3JvdXAiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImNhdGVnb3J5IiwiaXNfc3BlY2lhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0UGVybWlzc2lvbnMiXSxudWxsXSwiYnRuLWRlZmF1bHQgZWRpdC1wZXJtaXNzaW9uIiwiY2F0ZWdvcnkuZWRpdF9wZXJtaXNzaW9ucyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJjb25uZWN0b3JUYWdOYW1lIiwidGFnTmFtZSJdLFsiY2F0ZWdvcnktY3VzdG9tLXNlY3VyaXR5IixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV0sIiIsInNlY3Rpb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1zZWN1cml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNldHRpbmdzX3NlY3Rpb25zLmdlbmVyYWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UG9zaXRpb25JbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgcG9zaXRpb24tZmllbGRzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktcG9zaXRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnBvc2l0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3MiLCJ0eXBlIl0sW1syNCxbImNhdGVnb3J5IiwicG9zaXRpb24iXV0sImNhdGVnb3J5LXBvc2l0aW9uIiwicG9zaXRpb24taW5wdXQiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaG93UG9zaXRpb25JbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5wb3NpdGlvbl9kaXNhYmxlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFsiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvYmFzaWMiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnBvc2l0aW9uX2Rpc2FibGVkX2NsaWNrIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1udW1iZXItZmVhdHVyZWQtdG9waWNzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsInBhcmVudF9jYXRlZ29yeV9pZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkuc3ViY2F0ZWdvcnlfbnVtX2ZlYXR1cmVkX3RvcGljcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm51bV9mZWF0dXJlZF90b3BpY3MiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSJdLFtbMjQsWyJjYXRlZ29yeSIsIm51bV9mZWF0dXJlZF90b3BpY3MiXV0sImNhdGVnb3J5LW51bWJlci1mZWF0dXJlZC10b3BpY3MiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1zZWFyY2gtcHJpb3JpdHkiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZWFyY2hfcHJpb3JpdHkubGFiZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiaWQiLCJjb250ZW50IiwidmFsdWUiLCJvbkNoYW5nZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1zZWFyY2gtcHJpb3JpdHkiLFsyNCxbInNlYXJjaFByaW9yaXRpZXNPcHRpb25zIl1dLFsyNCxbImNhdGVnb3J5Iiwic2VhcmNoX3ByaW9yaXR5Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiY2F0ZWdvcnkiLCJzZWFyY2hfcHJpb3JpdHkiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiYWxsb3dfYmFkZ2VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmFsbG93X2JhZGdlc19sYWJlbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInRvcGljX2ZlYXR1cmVkX2xpbmtfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGxvd2VkLXRvcGljLWZlYXR1cmVkLWxpbmstY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY2hlY2tib3gtbGFiZWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY19mZWF0dXJlZF9saW5rX2FsbG93ZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnRvcGljX2ZlYXR1cmVkX2xpbmtfYWxsb3dlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJuYXZpZ2F0ZV90b19maXJzdF9wb3N0X2FmdGVyX3JlYWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkubmF2aWdhdGVfdG9fZmlyc3RfcG9zdF9hZnRlcl9yZWFkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiXSxbImNoZWNrYm94IixbMjQsWyJjYXRlZ29yeSIsImFsbF90b3BpY3Nfd2lraSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5hbGxfdG9waWNzX3dpa2kiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNldHRpbmdzX3NlY3Rpb25zLm1vZGVyYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfY2F0ZWdvcnlfZ3JvdXBfcmV2aWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInJldmlld2FibGUtYnktZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnJldmlld2FibGVfYnlfZ3JvdXAiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJncm91cC1zZWxlY3RvciIsbnVsbCxbWyJncm91cEZpbmRlciIsInNpbmdsZSIsImdyb3VwTmFtZXMiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJncm91cEZpbmRlciJdXSwidHJ1ZSIsWzI0LFsiY2F0ZWdvcnkiLCJyZXZpZXdhYmxlX2J5X2dyb3VwX25hbWUiXV0sImNhdGVnb3J5LnJldmlld19ncm91cF9uYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiY3VzdG9tX2ZpZWxkcyIsInJlcXVpcmVfdG9waWNfYXBwcm92YWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucmVxdWlyZV90b3BpY19hcHByb3ZhbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJjdXN0b21fZmllbGRzIiwicmVxdWlyZV9yZXBseV9hcHByb3ZhbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlX3JlcGx5X2FwcHJvdmFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJ0b3BpYy1hdXRvLWNsb3NlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5hdXRvX2Nsb3NlLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSJdLFtbMjQsWyJjYXRlZ29yeSIsImF1dG9fY2xvc2VfaG91cnMiXV0sInRvcGljLWF1dG8tY2xvc2UiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiYXV0b19jbG9zZV9iYXNlZF9vbl9sYXN0X3Bvc3QiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5hdXRvX2Nsb3NlLmJhc2VkX29uX2xhc3RfcG9zdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwidGFnZ2luZ19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCBtaW5pbXVtLXJlcXVpcmVkLXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1taW5pbXVtLXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1pbmltdW1fcmVxdWlyZWRfdGFncyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCIsInR5cGUiLCJtaW4iXSxbWzI0LFsiY2F0ZWdvcnkiLCJtaW5pbXVtX3JlcXVpcmVkX3RhZ3MiXV0sImNhdGVnb3J5LW1pbmltdW0tdGFncyIsIm51bWJlciIsIjAiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1udW1iZXItZGFpbHktYnVtcCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm51bV9hdXRvX2J1bXBfZGFpbHkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCIsInR5cGUiXSxbWzI0LFsiY2F0ZWdvcnkiLCJjdXN0b21fZmllbGRzIiwibnVtX2F1dG9fYnVtcF9kYWlseSJdXSwiY2F0ZWdvcnktbnVtYmVyLWRhaWx5LWJ1bXAiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFs4XSxbMCwiXFxuXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZXR0aW5nc19zZWN0aW9ucy5hcHBlYXJhbmNlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIGRlZmF1bHQtdmlldy1maWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1kZWZhdWx0LXZpZXciXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZWZhdWx0X3ZpZXciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJpZCIsImNvbnRlbnQiLCJ2YWx1ZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1kZWZhdWx0LXZpZXciLFsyNCxbImF2YWlsYWJsZVZpZXdzIl1dLFsyNCxbImNhdGVnb3J5IiwiZGVmYXVsdF92aWV3Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCBkZWZhdWx0LXRvcC1wZXJpb2QtZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktZGVmYXVsdC1wZXJpb2QiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZWZhdWx0X3RvcF9wZXJpb2QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJpZCIsImNvbnRlbnQiLCJ2YWx1ZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1kZWZhdWx0LXBlcmlvZCIsWzI0LFsiYXZhaWxhYmxlVG9wUGVyaW9kcyJdXSxbMjQsWyJjYXRlZ29yeSIsImRlZmF1bHRfdG9wX3BlcmlvZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktc29ydC1vcmRlciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNvcnRfb3JkZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSJdLFsidmFsdWUiLFsyNCxbImF2YWlsYWJsZVNvcnRzIl1dLFsyNCxbImNhdGVnb3J5Iiwic29ydF9vcmRlciJdXSwiY2F0ZWdvcnkuc29ydF9vcHRpb25zLmRlZmF1bHQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImlzRGVmYXVsdFNvcnRPcmRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siY2FzdEJvb2xlYW4iLCJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSJdLFt0cnVlLCJ2YWx1ZSIsWzI0LFsic29ydEFzY2VuZGluZ09wdGlvbnMiXV0sWzI0LFsiY2F0ZWdvcnkiLCJzb3J0X2FzY2VuZGluZyJdXSwiY2F0ZWdvcnkuc29ydF9vcHRpb25zLmRlZmF1bHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImlzUGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgc2hvdy1zdWJjYXRlZ29yeS1saXN0LWZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5Iiwic2hvd19zdWJjYXRlZ29yeV9saXN0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3ViY2F0ZWdvcnlMaXN0U3R5bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgc3ViY2F0ZWdvcnktbGlzdC1zdHlsZS1maWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwic3ViY2F0ZWdvcnktbGlzdC1zdHlsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiaWQiLCJjb250ZW50IiwidmFsdWUiXSxbInZhbHVlIiwic3ViY2F0ZWdvcnktbGlzdC1zdHlsZSIsWzI0LFsiYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzIl1dLFsyNCxbImNhdGVnb3J5Iiwic3ViY2F0ZWdvcnlfbGlzdF9zdHlsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZXR0aW5nc19zZWN0aW9ucy5lbWFpbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImVtYWlsSW5FbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1lbWFpbC1pbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siaWQiLCJjbGFzcyIsInZhbHVlIl0sWyJjYXRlZ29yeS1lbWFpbC1pbiIsImVtYWlsLWluIixbMjQsWyJjYXRlZ29yeSIsImVtYWlsX2luIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiZW1haWxfaW5fYWxsb3dfc3RyYW5nZXJzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbl9hbGxvd19zdHJhbmdlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwibWFpbGluZ2xpc3RfbWlycm9yIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1haWxpbmdsaXN0X21pcnJvciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjYXRlZ29yeS1lbWFpbC1pbiIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5Il0sW1syNCxbImNhdGVnb3J5Il1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJlbWFpbEluRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbl9kaXNhYmxlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFsiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvZW1haWwiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmVtYWlsX2luX2Rpc2FibGVkX2NsaWNrIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwiY29ubmVjdG9yVGFnTmFtZSIsInRhZ05hbWUiXSxbImNhdGVnb3J5LWN1c3RvbS1zZXR0aW5ncyIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5Il0sW1syNCxbImNhdGVnb3J5Il1dXV1dLCIiLCJzZWN0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXRhYiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIixbMjksW1syOCwiaWYiLFtbMjQsWyJhY3RpdmUiXV0sImFjdGl2ZSJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdCJdXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFiIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS10YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1hbGxvd2VkLXRhZ3MiXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnRhZ3NfYWxsb3dlZF90YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbImlkIiwidGFncyIsImV2ZXJ5VGFnIiwiZXhjbHVkZVN5bm9ueW1zIiwidW5saW1pdGVkVGFnQ291bnQiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbImNhdGVnb3J5LWFsbG93ZWQtdGFncyIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd2VkX3RhZ3MiXV0sdHJ1ZSx0cnVlLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJjYXRlZ29yeSIsImFsbG93ZWRfdGFncyJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJQbGFjZWhvbGRlciJdLFsiY2F0ZWdvcnkudGFnc19wbGFjZWhvbGRlciJdXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNhdGVnb3J5LWFsbG93ZWQtdGFnLWdyb3VwcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkudGFnc19hbGxvd2VkX3RhZ19ncm91cHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwidGFnLWdyb3VwLWNob29zZXIiLG51bGwsW1siaWQiLCJ0YWdHcm91cHMiXSxbImNhdGVnb3J5LWFsbG93ZWQtdGFnLWdyb3VwcyIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd2VkX3RhZ19ncm91cHMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ0YWdHcm91cHMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1hbmFnZV90YWdfZ3JvdXBzX2xpbmsiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiLCJpZCIsImRpc2FibGVkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd19nbG9iYWxfdGFncyJdXSwiYWxsb3dfZ2xvYmFsX3RhZ3MiLFsyNCxbImRpc2FibGVBbGxvd0dsb2JhbFRhZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmFsbG93X2dsb2JhbF90YWdzX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS50YWdzX3RhYl9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlZF90YWdfZ3JvdXBfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCB3aXRoLWl0ZW1zIl0sWzhdLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQtaXRlbSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5taW5fdGFnc19mcm9tX3JlcXVpcmVkX2dyb3VwX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSIsIm1pbiJdLFtbMjQsWyJjYXRlZ29yeSIsIm1pbl90YWdzX2Zyb21fcmVxdWlyZWRfZ3JvdXAiXV0sImNhdGVnb3J5LW1pbi10YWdzLWZyb20tZ3JvdXAiLCJudW1iZXIiLCIxIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQtaXRlbSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlZF90YWdfZ3JvdXBfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctZ3JvdXAtY2hvb3NlciIsbnVsbCxbWyJpZCIsInRhZ0dyb3VwcyIsIm9wdGlvbnMiXSxbImNhdGVnb3J5LXJlcXVpcmVkLXRhZy1ncm91cCIsWzI0LFsiY2F0ZWdvcnkiLCJyZXF1aXJlZF90YWdfZ3JvdXBzIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJtYXhpbXVtIiwiZmlsdGVyUGxhY2Vob2xkZXIiXSxbMSwiY2F0ZWdvcnkudGFnX2dyb3VwX3NlbGVjdG9yX3BsYWNlaG9sZGVyIl1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS50b3BpY190ZW1wbGF0ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY190ZW1wbGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LXRvcGljLXRpbWVyLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsIm9uQ2hhbmdlIiwiY29udGVudCIsInZhbHVlIl0sWyJ0aW1lci10eXBlIixbMjQsWyJvbkNoYW5nZVN0YXR1c1R5cGUiXV0sWzI0LFsidGltZXJUeXBlcyJdXSxbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUaW1lT25seSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJpbnB1dCIsImxhYmVsIiwic3RhdHVzVHlwZSIsImluY2x1ZGVXZWVrZW5kIiwiYmFzZWRPbkxhc3RQb3N0Iiwib25DaGFuZ2VJbnB1dCJdLFtbMjgsInJlYWRvbmx5IixbWzI0LFsidG9waWNUaW1lciIsInVwZGF0ZVRpbWUiXV1dLG51bGxdLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLndoZW4iLFsyNCxbInNlbGVjdGlvbiJdXSx0cnVlLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsib25DaGFuZ2VVcGRhdGVUaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicHVibGlzaFRvQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnB1Ymxpc2hfdG8iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsImV4Y2x1ZGVDYXRlZ29yeUlkIiwib25DaGFuZ2UiXSxbWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dLFsyNCxbImV4Y2x1ZGVDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQiLG51bGwsW1siaW5wdXQiLCJsYWJlbCIsInN0YXR1c1R5cGUiLCJpbmNsdWRlV2Vla2VuZCIsImNhdGVnb3J5SWQiLCJiYXNlZE9uTGFzdFBvc3QiLCJvbkNoYW5nZUlucHV0Il0sW1syOCwicmVhZG9ubHkiLFtbMjQsWyJ0b3BpY1RpbWVyIiwidXBkYXRlVGltZSJdXV0sbnVsbF0sInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUud2hlbiIsWzI0LFsic2VsZWN0aW9uIl1dLHRydWUsWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsib25DaGFuZ2VVcGRhdGVUaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiYXV0b0Nsb3NlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImlucHV0IiwibGFiZWwiLCJzdGF0dXNUeXBlIiwiaW5jbHVkZVdlZWtlbmQiLCJiYXNlZE9uTGFzdFBvc3QiLCJsYXN0UG9zdGVkQXQiLCJvbkNoYW5nZUlucHV0Il0sW1syNCxbInRvcGljVGltZXIiLCJ1cGRhdGVUaW1lIl1dLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLndoZW4iLFsyNCxbInNlbGVjdGlvbiJdXSx0cnVlLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsibW9kZWwiLCJsYXN0X3Bvc3RlZF9hdCJdXSxbMjQsWyJvbkNoYW5nZVVwZGF0ZVRpbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC10b3BpYy10aW1lci1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZW1vamktcGlja2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZW1vamktcGlja2VyIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVtb2ppLXBpY2tlci1tb2RhbCJdLFs4XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Vtb2ppLXBpY2tlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sibmFtZSIsInBsYWNlaG9sZGVyS2V5IiwidmFsdWUiXSxbIm5hbWUiLCJhZG1pbi5lbW9qaS5uYW1lIixbMjQsWyJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImxhYmVsIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJidG4gYnRuLXByaW1hcnkgIixbMjgsImlmIixbWzI0LFsiYWRkRGlzYWJsZWQiXV0sImRpc2FibGVkIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1pY29uIixbInBsdXMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmVtb2ppLmFkZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJoaWRkZW4tdXBsb2FkLWZpZWxkIl0sWzExLCJkaXNhYmxlZCIsWzIyLCJhZGREaXNhYmxlZCJdXSxbMTAsImFjY2VwdCIsIi5wbmcsLmdpZiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZXhwYW5kLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIml0ZW0iLCJ0cnVuY2F0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZXhwYW5kZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsImNvbGxhcHNlLWl0ZW0iXSxbMTEsIm9uY2xpY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVJdGVtIl0sbnVsbF1dLFsxMSwidGl0bGUiLFsyOCwiaTE4biIsWyJwb3N0LmV4cGFuZF9jb2xsYXBzZSJdLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNoZXZyb24tdXAiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiaHJlZiIsIiJdLFsxMCwiY2xhc3MiLCJleHBhbmQtaXRlbSJdLFsxMSwib25jbGljayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUl0ZW0iXSxudWxsXV0sWzExLCJ0aXRsZSIsWzI4LCJpMThuIixbInBvc3QuZXhwYW5kX2NvbGxhcHNlIl0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hldnJvbi1kb3duIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZXhwYW5kLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9mZWF0dXJlZC10b3BpYyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJyYXciLFsidG9waWMtc3RhdHVzIl0sW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInRvcGljIiwibGFzdFVucmVhZFVybCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwidW5ib3VuZCIsW1syNCxbInRvcGljIiwiZmFuY3lUaXRsZSJdXV0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbMSxbMjgsInRvcGljLXBvc3QtYmFkZ2VzIixudWxsLFtbIm5ld1Bvc3RzIiwidW5zZWVuIiwidXJsIl0sW1syNCxbInRvcGljIiwidG90YWxVbnJlYWQiXV0sWzI0LFsidG9waWMiLCJ1bnNlZW4iXV0sWzI0LFsidG9waWMiLCJsYXN0VW5yZWFkVXJsIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsYXN0LXVzZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmxhdGVzdF9ieSJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0UG9zdGVyVXJsIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0X3Bvc3RlciIsInVzZXJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJ0b3BpYyIsImxhc3RQb3N0VXJsIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJmb3JtYXQtYWdlIixbWzI0LFsidG9waWMiLCJsYXN0X3Bvc3RlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0UG9zdFVybCJdXV0sbnVsbF1dXV0sWzEwLCJjbGFzcyIsImxhc3QtcG9zdGVkLWF0Il0sWzhdLFsxLFsyOCwiZm9ybWF0LWFnZSIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9mZWF0dXJlZC10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYWctYWN0aW9uLXR5cGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzTm90aWZ5VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsImZvcm1hdHRlZE5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJyYWRpb18iLFsyOCwidW5ib3VuZCIsW1syNCxbImZsYWciLCJuYW1lX2tleSJdXV0sbnVsbF1dXV0sWzEyLCJuYW1lIiwicG9zdF9hY3Rpb25fdHlwZV9pbmRleCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiLFsyNCxbImZsYWciXV1dXSxbOF0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZy1hY3Rpb24tdHlwZS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI0LFsiZmxhZyIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd01lc3NhZ2VJbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sibmFtZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSJdLFsibWVzc2FnZSIsImZsYWctbWVzc2FnZSIsWzI0LFsiY3VzdG9tUGxhY2Vob2xkZXIiXV0sWzI0LFsibWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjdXN0b20tbWVzc2FnZS1sZW5ndGggIixbMjIsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIl1dXV0sWzhdLFsxLFsyMiwiY3VzdG9tTWVzc2FnZUxlbmd0aCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdGFmZkZsYWdzQXZhaWxhYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImZsYWdnaW5nLm5vdGlmeV9zdGFmZiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNvbnRyb2xzICIsWzI0LFsiZmxhZyIsIm5hbWVfa2V5Il1dXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJyYWRpb18iLFsyOCwidW5ib3VuZCIsW1syNCxbImZsYWciLCJuYW1lX2tleSJdXV0sbnVsbF1dXV0sWzEyLCJuYW1lIiwicG9zdF9hY3Rpb25fdHlwZV9pbmRleCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiLFsyNCxbImZsYWciXV1dXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZy1hY3Rpb24tdHlwZS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFs4XSxbMSxbMjIsImZvcm1hdHRlZE5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzIyLCJkZXNjcmlwdGlvbiJdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd01lc3NhZ2VJbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sibmFtZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSJdLFsibWVzc2FnZSIsImZsYWctbWVzc2FnZSIsWzI0LFsiY3VzdG9tUGxhY2Vob2xkZXIiXV0sWzI0LFsibWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjdXN0b20tbWVzc2FnZS1sZW5ndGggIixbMjIsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIl1dXV0sWzhdLFsxLFsyMiwiY3VzdG9tTWVzc2FnZUxlbmd0aCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZmxhZy1hY3Rpb24tdHlwZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYWctc2VsZWN0aW9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIiwiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiZmxhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDIsW1syMywxLFtdXV1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImZsYWdnaW5nLmNhbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9mbGFnLXNlbGVjdGlvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYXQtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZmxhdC1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9mb290ZXItbWVzc2FnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVkdWNhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZWR1Y2F0aW9uIl0sWzhdLFsxLFsyMiwiZWR1Y2F0aW9uIl0sdHJ1ZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm1lc3NhZ2UiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzE0LDFdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Zvb3Rlci1tZXNzYWdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdXR1cmUtZGF0ZS1pbnB1dCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyMiwiZGlzcGxheUxhYmVsIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLG51bGwsW1sibWluaW11bVJlc3VsdHNGb3JTZWFyY2giLCJzdGF0dXNUeXBlIiwidmFsdWUiLCJpbnB1dCIsImluY2x1ZGVEYXRlVGltZSIsImluY2x1ZGVXZWVrZW5kIiwiaW5jbHVkZUZhckZ1dHVyZSIsImluY2x1ZGVNaWRGdXR1cmUiLCJjbGVhcmFibGUiLCJub25lIiwib25DaGFuZ2VJbnB1dCIsIm9uQ2hhbmdlIl0sWy0xLFsyNCxbInN0YXR1c1R5cGUiXV0sWzI4LCJyZWFkb25seSIsW1syNCxbInNlbGVjdGlvbiJdXV0sbnVsbF0sWzI4LCJyZWFkb25seSIsW1syNCxbImlucHV0Il1dXSxudWxsXSxbMjQsWyJpbmNsdWRlRGF0ZVRpbWUiXV0sWzI0LFsiaW5jbHVkZVdlZWtlbmQiXV0sWzI0LFsiaW5jbHVkZUZhckZ1dHVyZSJdXSxbMjQsWyJpbmNsdWRlTWlkRnV0dXJlIl1dLFsyNCxbImNsZWFyYWJsZSJdXSwidG9waWMuYXV0b191cGRhdGVfaW5wdXQubm9uZSIsWzI0LFsib25DaGFuZ2VJbnB1dCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbInNlbGVjdGlvbiJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlEYXRlQW5kVGltZVBpY2tlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjYWxlbmRhci1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZGF0ZS1waWNrZXItZnV0dXJlIixudWxsLFtbInZhbHVlIiwiZGVmYXVsdERhdGUiLCJvblNlbGVjdCJdLFtbMjQsWyJkYXRlIl1dLFsyNCxbImRhdGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJkYXRlIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1jbG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJwbGFjZWhvbGRlciIsInR5cGUiLCJ2YWx1ZSIsImRpc2FibGVkIl0sWyItLTotLSIsInRpbWUiLFsyNCxbInRpbWUiXV0sWzI0LFsidGltZUlucHV0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNCYXNlZE9uTGFzdFBvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUubnVtX29mX2hvdXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiXSxbWzI0LFsiaW5wdXQiXV0sIm51bWJlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIndpbGxDbG9zZUltbWVkaWF0ZWx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwid2FybmluZyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsIndpbGxDbG9zZUkxOG4iXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb3BpY1N0YXR1c0luZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0b3BpYy10aW1lci1pbmZvIixudWxsLFtbInN0YXR1c1R5cGUiLCJleGVjdXRlQXQiLCJiYXNlZE9uTGFzdFBvc3QiLCJkdXJhdGlvbiIsImNhdGVnb3J5SWQiXSxbWzI0LFsic3RhdHVzVHlwZSJdXSxbMjQsWyJleGVjdXRlQXQiXV0sWzI0LFsiYmFzZWRPbkxhc3RQb3N0Il1dLFsyNCxbImR1cmF0aW9uIl1dLFsyNCxbImNhdGVnb3J5SWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZ2VuZXJhdGVkLWludml0ZS1saW5rIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQubGlua19nZW5lcmF0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFs3LCJpbnB1dCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZS1saW5rLWlucHV0Il0sWzEwLCJzdHlsZSIsIndpZHRoOiA3NSUiXSxbMTEsInZhbHVlIixbMjIsImxpbmsiXV0sWzEwLCJ0eXBlIiwidGV4dCJdLFs4XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnZhbGlkX2ZvciJdLFtbImVtYWlsIl0sW1syNCxbImVtYWlsIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dlbmVyYXRlZC1pbnZpdGUtbGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dsb2JhbC1ub3RpY2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIm5vdGljZSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJub3RpY2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImlkIixbMjksWyJnbG9iYWwtbm90aWNlLSIsWzIzLDEsWyJpZCJdXV1dXSxbMTEsImNsYXNzIixbMjksWyJhbGVydCBhbGVydC0iLFsyMywxLFsib3B0aW9ucyIsImxldmVsIl1dLCIgIixbMjMsMSxbImlkIl1dXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJvcHRpb25zIiwiaHRtbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjMsMSxbIm9wdGlvbnMiLCJodG1sIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyMywxLFsidGV4dCJdXSx0cnVlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syMywxLFsib3B0aW9ucyIsImRpc21pc3NhYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1mbGF0IGNsb3NlIiwidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzTm90aWNlIl0sbnVsbF0sWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ2xvYmFsLW5vdGljZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dvb2dsZS1zZWFyY2giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJhY3Rpb24iLCIvL2dvb2dsZS5jb20vc2VhcmNoIl0sWzEwLCJpZCIsImdvb2dsZS1zZWFyY2giXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwibmFtZSIsInEiXSxbMTEsInZhbHVlIixbMjksW1syMiwic2VhcmNoVGVybSJdXV1dLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsIm5hbWUiLCJhc19zaXRlc2VhcmNoIl0sWzExLCJ2YWx1ZSIsWzI5LFtbMjIsInNpdGVVcmwiXV1dXSxbMTAsInR5cGUiLCJoaWRkZW4iXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImJ1dHRvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNlYXJjaF9nb29nbGVfYnV0dG9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ29vZ2xlLXNlYXJjaCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLWFjdGl2aXR5LWZpbHRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImxpbmstdG8iLG51bGwsW1sicXVlcnkiLCJyb3V0ZSJdLFtbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnlfaWQiXSxbWzI0LFsiY2F0ZWdvcnlJZCJdXV1dXSxbMjgsImNvbmNhdCIsWyJncm91cC5hY3Rpdml0eS4iLFsyNCxbImZpbHRlciJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJncm91cHMuIixbMjQsWyJmaWx0ZXIiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLWFjdGl2aXR5LWZpbHRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLWNhcmQtY29udGVudHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInVzZXIiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZpc2libGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtY29udGVudCJdLFs4XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1jYXJkLWF2YXRhciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsWzI5LFtbMjIsImdyb3VwUGF0aCJdXV1dLFsxMiwiY2xhc3MiLCJjYXJkLWh1Z2UtYXZhdGFyIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLWZsYWlyIixudWxsLFtbImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIsImdyb3VwTmFtZSJdLFtbMjQsWyJncm91cCIsImZsYWlyX3VybCJdXSxbMjQsWyJncm91cCIsImZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbImdyb3VwIiwiZmxhaXJfY29sb3IiXV0sWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWVzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLFsyOSxbWzIyLCJncm91cFBhdGgiXV1dXSxbMTIsImNsYXNzIiwiZ3JvdXAtcGFnZS1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbMSxbMjQsWyJncm91cCIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJmdWxsX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtbmFtZSJdLFs4XSxbMSxbMjQsWyJncm91cCIsImZ1bGxfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbMTAsImNsYXNzIiwidXNlcm5hbWUiXSxbOF0sWzEsWzI0LFsiZ3JvdXAiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwidXNlcmNhcmQtY29udHJvbHMgZ3JvdXAtZGV0YWlscy1idXR0b24iXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImdyb3VwLW1lbWJlcnNoaXAtYnV0dG9uIixudWxsLFtbIm1vZGVsIiwic2hvd0xvZ2luIl0sW1syNCxbImdyb3VwIl1dLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImdyb3VwIiwibWVzc2FnZWFibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWVzc2FnZUdyb3VwIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdyb3VwLW1lc3NhZ2UtYnV0dG9uIGlubGluZSIsImVudmVsb3BlIiwiZ3JvdXBzLm1lc3NhZ2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJiaW9fY29va2VkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3cgc2Vjb25kLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmlvIl0sWzhdLFsxLFsyNCxbImdyb3VwIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnNPcklzTWVtYmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3cgdGhpcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtZXRhZGF0YSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy51c2VyX2NvdW50Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyNCxbImdyb3VwIiwidXNlcl9jb3VudCJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJpc19ncm91cF9vd25lcl9kaXNwbGF5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXguaXNfZ3JvdXBfb3duZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImdyb3VwIiwiaXNfZ3JvdXBfdXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmlzX2dyb3VwX3VzZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImdyb3VwIiwibWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IGZvdXJ0aC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1lbWJlcnMgbWV0YWRhdGEiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiZ3JvdXAiLCJtZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJjYXJkLXRpbnktYXZhdGFyIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1VzZXIiLFsyMywxLFtdXV1dLFs4XSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syMywxLFtdXSwidGlueSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93TW9yZU1lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIixbMjksW1syMiwiZ3JvdXBQYXRoIl1dXV0sWzEyLCJjbGFzcyIsIm1vcmUtbWVtYmVycy1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vcmUtbWVtYmVycy1jb3VudCJdLFs4XSxbMCwiKyJdLFsxLFsyMiwibW9yZU1lbWJlcnNDb3VudCJdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJtb3JlIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLWNhcmQtY29udGVudHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1mbGFpci1pbnB1dHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsImZsYWlyX3VybCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmZsYWlyX3VybCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiXSxbImZsYWlyX3VybCIsImlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfdXJsIl1dLCJncm91cHMuZmxhaXJfdXJsX3BsYWNlaG9sZGVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5mbGFpcl91cmxfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsImZsYWlyX2JnX2NvbG9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuZmxhaXJfYmdfY29sb3IiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJmbGFpcl9iZ19jb2xvciIsImdyb3VwLWZsYWlyLWJnLWNvbG9yIGlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfYmdfY29sb3IiXV0sImdyb3Vwcy5mbGFpcl9iZ19jb2xvcl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZsYWlyUHJldmlld0ljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJmbGFpcl9jb2xvciJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmZsYWlyX2NvbG9yIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJmbGFpcl9jb2xvciIsImdyb3VwLWZsYWlyLWNvbG9yIGlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfY29sb3IiXV0sImdyb3Vwcy5mbGFpcl9jb2xvcl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzIyLCJmbGFpclByZXZpZXdMYWJlbCJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1mbGFpci1wcmV2aWV3Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW1nIix0cnVlXSxbMTAsIndpZHRoIiwiNDUiXSxbMTAsImhlaWdodCIsIjQ1Il0sWzExLCJzcmMiLFsyOSxbWzIyLCJkZW1vQXZhdGFyVXJsIl1dXV0sWzEwLCJjbGFzcyIsImF2YXRhciBhY3RvciJdLFs4XSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZsYWlyUHJldmlld0ltYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJhdmF0YXItZmxhaXIgZGVtbyAiLFsyMiwiZmxhaXJQcmV2aWV3Q2xhc3NlcyJdXV1dLFsxMSwic3R5bGUiLFsyMiwiZmxhaXJQcmV2aWV3U3R5bGUiXV0sWzhdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImF2YXRhci1mbGFpciBkZW1vICIsWzIyLCJmbGFpclByZXZpZXdDbGFzc2VzIl1dXV0sWzExLCJzdHlsZSIsWzIyLCJmbGFpclByZXZpZXdTdHlsZSJdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJmbGFpclByZXZpZXdJY29uVXJsIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1mbGFpci1pbnB1dHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1pbmRleC10b2dnbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaGVhZGVyLWNvbnRlbnRzIl0sWzhdLFsxLFsyOCwiaTE4biIsW1syMywwLFsiaTE4bktleSJdXV0sbnVsbF0sZmFsc2VdLFsxLFsyMiwiY2hldnJvbkljb24iXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1pbmRleC10b2dnbGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImFjdGlvblBhcmFtIl0sWyJidG4tZGVmYXVsdCBncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhckZpbHRlciJdLG51bGxdLFsyNCxbInR5cGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbOV0sWzAsIjogIl0sWzEsWzIyLCJmaWx0ZXJUZXh0Il0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFsidGltZXMtY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1hbmFnZS1sb2dzLXJvdyJdLFs4XSxbMCwiXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsImFjdGlvbiJdXSwiYWN0aW9uIl1dXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjQsWyJsb2ciLCJhY3Rpb25UaXRsZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJsb2ciLCJhY3RpbmdfdXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaWx0ZXIiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1sidmFsdWUiLCJrZXkiXSxbWzI0LFsibG9nIiwiYWN0aW5nX3VzZXIiLCJ1c2VybmFtZSJdXSwiYWN0aW5nX3VzZXIiXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyNCxbImxvZyIsImFjdGluZ191c2VyIiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvZyIsInRhcmdldF91c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzI0LFsibG9nIiwidGFyZ2V0X3VzZXIiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsInRhcmdldF91c2VyIiwidXNlcm5hbWUiXV0sInRhcmdldF91c2VyIl1dXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyNCxbImxvZyIsInRhcmdldF91c2VyIiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvZyIsInN1YmplY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsInN1YmplY3QiXV0sInN1YmplY3QiXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI0LFsibG9nIiwic3ViamVjdCJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJsb2ciLCJjcmVhdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1hbmFnZS1sb2dzLWV4cGFuZC1kZXRhaWxzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2ciLCJwcmV2X3ZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZURldGFpbHMiXSxudWxsXSxbMjgsImlmIixbWzI0LFsiZXhwYW5kRGV0YWlscyJdXSwiYW5nbGUtdXAiLCJhbmdsZS1kb3duIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXhwYW5kRGV0YWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3Ryb25nIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UubG9ncy5mcm9tIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiOiAiXSxbNywiY29kZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxvZyIsInByZXZfdmFsdWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnRvIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiOiAiXSxbNywiY29kZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxvZyIsIm5ld192YWx1ZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2Utc2F2ZS1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGJ1dHRvbnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2aW5nIl1dLCJidG4gYnRuLXByaW1hcnkgZ3JvdXAtbWFuYWdlLXNhdmUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAgICJdLFsxLFsyMiwic2F2aW5nVGV4dCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNhdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLW1lbWJlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI0LFsibWVtYmVyIiwiYWRtaW5QYXRoIl1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJtZW1iZXIiXV1dLFtbImltYWdlU2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lbWJlciIsInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJhdXRvbWF0aWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwicmVtb3ZlIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlIl1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYW5Kb2luR3JvdXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCIsImRpc2FibGVkIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqb2luR3JvdXAiXSxudWxsXSwiZ3JvdXAtaW5kZXgtam9pbiIsInVzZXItcGx1cyIsImdyb3Vwcy5qb2luIixbMjQsWyJ1cGRhdGluZ01lbWJlcnNoaXAiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYW5MZWF2ZUdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibGVhdmVHcm91cCJdLG51bGxdLCJidG4tZGFuZ2VyIGdyb3VwLWluZGV4LWxlYXZlIiwidXNlci10aW1lcyIsImdyb3Vwcy5sZWF2ZSIsWzI0LFsidXBkYXRpbmdNZW1iZXJzaGlwIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuUmVxdWVzdE1lbWJlcnNoaXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwiaWNvbiIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93UmVxdWVzdE1lbWJlcnNoaXBGb3JtIl0sbnVsbF0sImdyb3VwLWluZGV4LXJlcXVlc3QiLFsyNCxbImxvYWRpbmciXV0sInVzZXItcGx1cyIsImdyb3Vwcy5yZXF1ZXN0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1uYXZpZ2F0aW9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0YWIiXSwic3RhdGVtZW50cyI6W1s0LCJtb2JpbGUtbmF2IixudWxsLFtbImNsYXNzIiwiZGVza3RvcENsYXNzIiwiY3VycmVudFBhdGgiXSxbImdyb3VwLW5hdiIsIm5hdiBuYXYtcGlsbHMiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImdyb3Vwcy5pbmRleCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmFsbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJncm91cC1kcm9wZG93biIsbnVsbCxbWyJncm91cHMiLCJ2YWx1ZSJdLFtbMjQsWyJncm91cCIsImV4dHJhcyIsInZpc2libGVfZ3JvdXBfbmFtZXMiXV0sWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRhYnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sidGl0bGUiLCJjbGFzcyIsInJvdXRlIiwibW9kZWwiXSxbWzIzLDEsWyJtZXNzYWdlIl1dLFsyMywxLFsibmFtZSJdXSxbMjMsMSxbInJvdXRlIl1dLFsyNCxbImdyb3VwIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImlmIixbWzIzLDEsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzIzLDEsWyJpY29uIl1dXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzIzLDEsWyJtZXNzYWdlIl1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjMsMSxbImNvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY291bnQiXSxbOF0sWzAsIigiXSxbMSxbMjMsMSxbImNvdW50Il1dLGZhbHNlXSxbMCwiKSJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImdyb3VwLXJlcG9ydHMtbmF2LWl0ZW0iLFsyOCwiaGFzaCIsbnVsbCxbWyJncm91cCJdLFtbMjQsWyJncm91cCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLW5hdmlnYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1wb3N0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXggaW5mbyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsicG9zdCIsInVzZXIiLCJ1c2VyVXJsIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInBvc3QiLCJ1c2VyIiwidXNlcm5hbWUiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJhdmF0YXItbGluayJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJwb3N0IiwidXNlciJdXV0sW1siaW1hZ2VTaXplIiwiZXh0cmFDbGFzc2VzIiwiaWdub3JlVGl0bGUiXSxbImxhcmdlIiwiYWN0b3IiLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpbWUiXSxbOF0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInBvc3QiLCJjcmVhdGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZXhwYW5kLXBvc3QiLG51bGwsW1siaXRlbSJdLFtbMjQsWyJwb3N0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3RyZWFtLXRvcGljLWRldGFpbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdHJlYW0tdG9waWMtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwicG9zdFVybCJdXSxbOF0sWzEsWzI0LFsicG9zdCIsInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1wb3N0LWNhdGVnb3J5Il0sWzhdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syNCxbInBvc3QiLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicG9zdCIsInVzZXIiLCJuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibmFtZSJdLFs4XSxbMSxbMjQsWyJwb3N0IiwidXNlciIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs0LCJpZiIsW1syNCxbInBvc3QiLCJ1c2VyIiwidGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiLCAiXSxbMSxbMjQsWyJwb3N0IiwidXNlciIsInRpdGxlIl1dLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiAgXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZXhjZXJwdCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicG9zdCIsImV4cGFuZGVkRXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyNCxbInBvc3QiLCJleHBhbmRlZEV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI0LFsicG9zdCIsImV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1zZWxlY3RvciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtc2VsZWN0b3IiXSxbMTEsInBsYWNlaG9sZGVyIixbMjIsInBsYWNlaG9sZGVyIl1dLFsxMCwibmFtZSIsImdyb3VwcyJdLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1zZWxlY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiLCJhZG1pbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwidmlzaWJsaXR5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnZpc2liaWxpdHlfbGV2ZWxzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbIm5hbWUiLCJ2YWx1ZVByb3BlcnR5IiwidmFsdWUiLCJjb250ZW50IiwiY2FzdEludGVnZXIiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsInZpc2liaWxpdHlfbGV2ZWwiXV0sWzI0LFsidmlzaWJpbGl0eUxldmVsT3B0aW9ucyJdXSx0cnVlLCJncm91cHMtZm9ybS12aXNpYmlsaXR5LWxldmVsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidmlzaWJpbGl0eV9sZXZlbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMuZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInZpc2libGl0eSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi5tZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWxzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbIm5hbWUiLCJ2YWx1ZVByb3BlcnR5IiwidmFsdWUiLCJjb250ZW50IiwiY2FzdEludGVnZXIiLCJjbGFzcyJdLFsiYWxpYXMiLCJ2YWx1ZSIsWzI0LFsibW9kZWwiLCJtZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWwiXV0sWzI0LFsidmlzaWJpbGl0eUxldmVsT3B0aW9ucyJdXSx0cnVlLCJncm91cHMtZm9ybS1tZW1iZXJzLXZpc2liaWxpdHktbGV2ZWwiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24ubWVtYmVyc192aXNpYmlsaXR5X2xldmVscy5kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnBvc3RpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJhbGlhcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsaWFzX2xldmVscy5tZW50aW9uYWJsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sibmFtZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZSIsImNvbnRlbnQiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsIm1lbnRpb25hYmxlX2xldmVsIl1dLFsyNCxbImFsaWFzTGV2ZWxPcHRpb25zIl1dLCJncm91cHMtZm9ybS1tZW50aW9uYWJsZS1sZXZlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsIm1lbnRpb25hYmxlX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJhbGlhcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsaWFzX2xldmVscy5tZXNzYWdlYWJsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sibmFtZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZSIsImNvbnRlbnQiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsIm1lc3NhZ2VhYmxlX2xldmVsIl1dLFsyNCxbImFsaWFzTGV2ZWxPcHRpb25zIl1dLCJncm91cHMtZm9ybS1tZXNzYWdlYWJsZS1sZXZlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsIm1lc3NhZ2VhYmxlX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCIsImNsYXNzIl0sWyJjaGVja2JveCIsWzI0LFsibW9kZWwiLCJwdWJsaXNoX3JlYWRfc3RhdGUiXV0sImdyb3Vwcy1mb3JtLXB1Ymxpc2gtcmVhZC1zdGF0ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24ucHVibGlzaF9yZWFkX3N0YXRlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RW1haWxTZXR0aW5ncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24uZW1haWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImluY29taW5nX2VtYWlsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLmluY29taW5nX2VtYWlsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJpbmNvbWluZ19lbWFpbCIsImlucHV0LXh4bGFyZ2UgZ3JvdXBzLWZvcm0taW5jb21pbmctZW1haWwiLFsyNCxbIm1vZGVsIiwiaW5jb21pbmdfZW1haWwiXV0sImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24uaW5jb21pbmdfZW1haWxfcGxhY2Vob2xkZXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiZ3JvdXAtZW1haWwtaW4iLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi5ub3RpZmljYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm5vdGlmaWNhdGlvbl9sZXZlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJub3RpZmljYXRpb25zLWJ1dHRvbiIsbnVsbCxbWyJ2YWx1ZSIsImNsYXNzIiwib3B0aW9ucyJdLFtbMjQsWyJtb2RlbCIsImRlZmF1bHRfbm90aWZpY2F0aW9uX2xldmVsIl1dLCJncm91cHMtZm9ybS1kZWZhdWx0LW5vdGlmaWNhdGlvbi1sZXZlbCIsWzI4LCJoYXNoIixudWxsLFtbIm5vbmUiLCJpMThuUHJlZml4Il0sWyJzZWxlY3Rfa2l0LmRlZmF1bHRfaGVhZGVyX3RleHQiLCJncm91cHMubm90aWZpY2F0aW9ucyJdXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLW1lbWJlcnNoaXAtZmllbGRzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLmF1dG9tYXRpYyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiYXV0b21hdGljX21lbWJlcnNoaXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLm1lbWJlcnNoaXAuYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWlucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwibGlzdC1zZXR0aW5nIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwiY2hvaWNlcyIsInNldHRpbmdOYW1lIiwibmFtZVByb3BlcnR5IiwidmFsdWVQcm9wZXJ0eSIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsiYXV0b21hdGljX21lbWJlcnNoaXAiLCJncm91cC1mb3JtLWF1dG9tYXRpYy1tZW1iZXJzaGlwLWF1dG9tYXRpYyIsWzI0LFsiZW1haWxEb21haW5zIl1dLFsyNCxbImVtYWlsRG9tYWlucyJdXSwibmFtZSIsbnVsbCxudWxsLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZUVtYWlsRG9tYWluc1NldHRpbmciXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1siYWxsb3dBbnkiXSxbdHJ1ZV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCIsImNsYXNzIl0sWyJjaGVja2JveCIsWzI0LFsibW9kZWwiLCJhdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZSJdXSwiZ3JvdXBzLWZvcm0tYXV0b21hdGljLW1lbWJlcnNoaXAtcmV0cm9hY3RpdmUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5hdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJncm91cHMtZm9ybS1tZW1iZXJzaGlwLWJlbG93LWF1dG9tYXRpYyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5lZmZlY3RzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJncmFudF90cnVzdF9sZXZlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLnRydXN0X2xldmVsc190aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJuYW1lIiwidmFsdWVQcm9wZXJ0eSIsInZhbHVlIiwiY29udGVudCIsImNsYXNzIiwib25DaGFuZ2UiXSxbImdyYW50X3RydXN0X2xldmVsIiwidmFsdWUiLFsyNCxbImdyb3VwVHJ1c3RMZXZlbCJdXSxbMjQsWyJ0cnVzdExldmVsT3B0aW9ucyJdXSwiZ3JvdXBzLWZvcm0tZ3JhbnQtdHJ1c3QtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJncmFudF90cnVzdF9sZXZlbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwiY2xhc3MiXSxbImNoZWNrYm94IixbMjQsWyJtb2RlbCIsInByaW1hcnlfZ3JvdXAiXV0sImdyb3Vwcy1mb3JtLXByaW1hcnktZ3JvdXAiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5wcmltYXJ5X2dyb3VwIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5hY2Nlc3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIiwiZGlzYWJsZWQiXSxbImNoZWNrYm94IiwiZ3JvdXAtZm9ybS1wdWJsaWMtYWRtaXNzaW9uIixbMjQsWyJtb2RlbCIsInB1YmxpY19hZG1pc3Npb24iXV0sWzI0LFsiZGlzYWJsZVB1YmxpY1NldHRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5wdWJsaWNfYWRtaXNzaW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJncm91cC1mb3JtLXB1YmxpYy1leGl0IixbMjQsWyJtb2RlbCIsInB1YmxpY19leGl0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucHVibGljX2V4aXQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIiwiZGlzYWJsZWQiXSxbImNoZWNrYm94IiwiZ3JvdXAtZm9ybS1hbGxvdy1tZW1iZXJzaGlwLXJlcXVlc3RzIixbMjQsWyJtb2RlbCIsImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXV0sWzI0LFsiZGlzYWJsZU1lbWJlcnNoaXBSZXF1ZXN0U2V0dGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJtZW1iZXJzaGlwLXJlcXVlc3QtdGVtcGxhdGUiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJleHBhbmRpbmctdGV4dC1hcmVhIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIl0sWyJtZW1iZXJzaGlwLXJlcXVlc3QtdGVtcGxhdGUiLCJncm91cC1mb3JtLW1lbWJlcnNoaXAtcmVxdWVzdC10ZW1wbGF0ZSBpbnB1dC14eGxhcmdlIixbMjQsWyJtb2RlbCIsIm1lbWJlcnNoaXBfcmVxdWVzdF90ZW1wbGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXBzLWZvcm0tbWVtYmVyc2hpcC1maWVsZHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkVkaXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDAsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsIm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiXSxbIm5hbWUiLCJpbnB1dC14eGxhcmdlIGdyb3VwLWZvcm0tbmFtZSIsWzI0LFsibmFtZUlucHV0Il1dLCJhZG1pbi5ncm91cHMubmFtZV9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbIm5hbWVWYWxpZGF0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJmdWxsX25hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UuZnVsbF9uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSJdLFsiZnVsbF9uYW1lIiwiaW5wdXQteHhsYXJnZSBncm91cC1mb3JtLWZ1bGwtbmFtZSIsWzI0LFsibW9kZWwiLCJmdWxsX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzIzLDAsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMuZGVmYXVsdF90aXRsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwibmFtZSIsImNsYXNzIl0sW1syNCxbIm1vZGVsIiwidGl0bGUiXV0sInRpdGxlIiwiaW5wdXQteHhsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1pbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5kZWZhdWx0X3RpdGxlX2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJiaW8iXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5iaW8iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiLCJjbGFzcyJdLFtbMjQsWyJtb2RlbCIsImJpb19yYXciXV0sImdyb3VwLWZvcm0tYmlvIGlucHV0LXh4bGFyZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZ3JvdXAtZmxhaXItaW5wdXRzIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJncm91cC1lZGl0IixbMjgsImhhc2giLG51bGwsW1siZ3JvdXAiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93RnVsbE5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtaW5mby1uYW1lIl0sWzhdLFsxLFsyNCxbImdyb3VwIiwiZnVsbF9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWluZm8tbmFtZSJdLFs4XSxbMSxbMjQsWyJncm91cCIsImRpc3BsYXlOYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cHMtaW5mbyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpZ25vcmVkLXVzZXItbGlzdC1pdGVtIl0sWzhdLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaWdub3JlZC11c2VyLW5hbWUiXSxbOF0sWzEsWzIyLCJpdGVtIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsicmVtb3ZlLWlnbm9yZWQtdXNlciBuby10ZXh0IGJ0bi1pY29uIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlSWdub3JlZFVzZXIiLFsyNCxbIml0ZW0iXV1dLG51bGxdLCJ0aW1lcyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pZ25vcmVkLXVzZXItbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlnbm9yZWQtbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaWdub3JlZC11c2VyLWxpc3QtaXRlbSIsbnVsbCxbWyJpdGVtIiwib25SZW1vdmVJZ25vcmVkVXNlciJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUlnbm9yZWRVc2VyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX25vX3VzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmlnbm9yZWRfdXNlcnNfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm5ld0lnbm9yZWRVc2VyIl0sbnVsbF0sImJ0bi1kZWZhdWx0IiwicGx1cyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuYWRkX2lnbm9yZWRfdXNlciJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1cGxvYWRlZC1pbWFnZS1wcmV2aWV3IGlucHV0LXh4bGFyZ2UiXSxbMTEsInN0eWxlIixbMjIsImJhY2tncm91bmRTdHlsZSJdXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dpbmdQbGFjZWhvbGRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwbGFjZWhvbGRlci1vdmVybGF5Il0sWzExLCJzdHlsZSIsWzIyLCJwbGFjZWhvbGRlclN0eWxlIl1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbWFnZS11cGxvYWQtY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImJ0biBidG4tZGVmYXVsdCBwYWQtbGVmdCBuby10ZXh0ICIsWzI4LCJpZiIsW1syNCxbInVwbG9hZGluZyJdXSwiZGlzYWJsZWQiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1pbWFnZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiaW1hZ2UvKiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpbWFnZVVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0cmFzaCJdLG51bGxdLCJidG4tZGFuZ2VyIHBhZC1sZWZ0IG5vLXRleHQiLCJmYXItdHJhc2gtYWx0IiwiYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsInRpdGxlIiwidHlwZSIsImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiXSxbImRpc2NvdXJzZS1leHBhbmQiLCJleHBhbmQiLCJidXR0b24iLCJpbWFnZS11cGxvYWRlci1saWdodGJveC1idG4gbm8tdGV4dCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUxpZ2h0Ym94Il0sbnVsbF0sWzI0LFsibG9hZGluZ0xpZ2h0Ym94Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYnRuICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJ1cGxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpbWFnZVVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwibGlnaHRib3giXSxbMTEsImhyZWYiLFsyMiwiaW1hZ2VDRE5VUkwiXV0sWzExLCJ0aXRsZSIsWzIyLCJpbWFnZUZpbGVuYW1lIl1dLFsxMCwicmVsIiwibm9mb2xsb3cgdWdjIG5vb3BlbmVyIl0sWzhdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibWV0YSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZm9ybWF0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMiwiaW1hZ2VXaWR0aCJdLGZhbHNlXSxbMCwieCJdLFsxLFsyMiwiaW1hZ2VIZWlnaHQiXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsImltYWdlRmlsZXNpemUiXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pbWFnZXMtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImFkbWluLnNpdGVfc2V0dGluZ3MudXBsb2FkZWRfaW1hZ2VfbGlzdC51cGxvYWQudGl0bGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLWltYWdlIl0sbnVsbF0sZmFsc2VdLFswLCLCoCJdLFsxLFsyMiwidXBsb2FkQnV0dG9uVGV4dCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJoaWRkZW4tdXBsb2FkLWZpZWxkIl0sWzExLCJkaXNhYmxlZCIsWzIyLCJ1cGxvYWRpbmciXV0sWzEwLCJhY2NlcHQiLCJpbWFnZS8qIl0sWzEwLCJtdWx0aXBsZSIsIiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVwbG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1cGxvYWRfc2VsZWN0b3IudXBsb2FkaW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJ1cGxvYWRQcm9ncmVzcyJdLGZhbHNlXSxbMCwiJSJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvaW1hZ2VzLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvaW5wdXQtdGlwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0aXBSZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJ0aXBJY29uIl0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJ0aXBSZWFzb24iXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lucHV0LXRpcCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ludml0ZS1wYW5lbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaW52aXRlTW9kZWwiLCJlcnJvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLHRydWVdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib2R5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpbnZpdGVNb2RlbCIsImZpbmlzaGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImludml0ZU1vZGVsIiwiaW52aXRlTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJnZW5lcmF0ZWQtaW52aXRlLWxpbmsiLG51bGwsW1sibGluayIsImVtYWlsIl0sW1syNCxbImludml0ZU1vZGVsIiwiaW52aXRlTGluayJdXSxbMjQsWyJlbWFpbE9yVXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1Y2Nlc3MtbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsInN1Y2Nlc3NNZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZS11c2VyLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsImludml0ZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnZpdGUtdXNlci1pbnB1dC13cmFwcGVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJhbGxvd0V4aXN0aW5nTWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJmdWxsV2lkdGhXcmFwIiwic2luZ2xlIiwiYWxsb3dBbnkiLCJleGNsdWRlQ3VycmVudFVzZXIiLCJpbmNsdWRlTWVzc2FnZWFibGVHcm91cHMiLCJoYXNHcm91cHMiLCJ1c2VybmFtZXMiLCJwbGFjZWhvbGRlcktleSIsImFsbG93RW1haWxzIiwiY2xhc3MiLCJhdXRvY29tcGxldGUiXSxbdHJ1ZSx0cnVlLHRydWUsdHJ1ZSxbMjQsWyJpc1BNIl1dLFsyNCxbImhhc0dyb3VwcyJdXSxbMjQsWyJlbWFpbE9yVXNlcm5hbWUiXV0sWzI0LFsicGxhY2Vob2xkZXJLZXkiXV0sdHJ1ZSwiaW52aXRlLXVzZXItaW5wdXQiLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJlbWFpbC1vci11c2VybmFtZS1pbnB1dCIsWzI0LFsiZW1haWxPclVzZXJuYW1lIl1dLCJ0b3BpYy5pbnZpdGVfcmVwbHkuZW1haWxfcGxhY2Vob2xkZXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJpZiIsW1syNCxbInNob3dDb250YWN0UGlja2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyJdLFsiYWRkcmVzcy1ib29rIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoQ29udGFjdCJdLG51bGxdLCJidG4tcHJpbWFyeSBvcGVuLWNvbnRhY3QtcGlja2VyIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dHcm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1hY2Nlc3MtY29udHJvbCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImluc3RydWN0aW9ucyAiLFsyMiwic2hvd0dyb3Vwc0NsYXNzIl1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmF1dG9tYXRpY2FsbHlfYWRkX3RvX2dyb3VwcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJncm91cC1zZWxlY3RvciIsbnVsbCxbWyJmdWxsV2lkdGhXcmFwIiwiZ3JvdXBGaW5kZXIiLCJncm91cE5hbWVzIiwicGxhY2Vob2xkZXJLZXkiXSxbdHJ1ZSxbMjQsWyJncm91cEZpbmRlciJdXSxbMjQsWyJpbnZpdGVNb2RlbCIsImdyb3VwTmFtZXMiXV0sInRvcGljLmludml0ZV9wcml2YXRlLmdyb3VwX25hbWUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0N1c3RvbU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaG93LWN1c3RvbS1tZXNzYWdlLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtbGlua2VkLXRleHQiLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJ0ZXh0Il0sWyJvcHRpb25hbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dDdXN0b21NZXNzYWdlQm94Il0sbnVsbF0sImludml0ZS5jdXN0b21fbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzQ3VzdG9tTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJjdXN0b21NZXNzYWdlIl1dLFsyNCxbImN1c3RvbU1lc3NhZ2VQbGFjZWhvbGRlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImludml0ZU1vZGVsIiwiZmluaXNoZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syNCxbImludml0ZUljb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUludml0ZSJdLG51bGxdLCJidG4tcHJpbWFyeSBzZW5kLWludml0ZSIsWzI0LFsiZGlzYWJsZWQiXV0sWzI0LFsiYnV0dG9uVGl0bGUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Q29weUludml0ZUJ1dHRvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJsaW5rIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZ2VuZXJhdGVJbnZpdGVsaW5rIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdlbmVyYXRlLWludml0ZS1saW5rIixbMjQsWyJkaXNhYmxlZENvcHlMaW5rIl1dLCJ1c2VyLmludml0ZWQuZ2VuZXJhdGVfbGluayJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9pbnZpdGUtcGFuZWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pcC1sb29rdXAiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImEiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9va3VwIl0sbnVsbF0sImdsb2JlIiwiYWRtaW4udXNlci5pcF9sb29rdXAiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvdyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibG9jYXRpb24tYm94Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UgcHVsbC1yaWdodCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImhpZGUiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY29waWVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImxhYmVsIl0sWyJidG4taG92ZXIgcHVsbC1yaWdodCIsImNvcHkiLCJpcF9sb29rdXAuY29waWVkIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29weSJdLG51bGxdLCJwdWxsLXJpZ2h0IG5vLXRleHQiLCJjb3B5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs3LCJoNCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3dlcmVkLWJ5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucG93ZXJlZF9ieSJdLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkbCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiIsImhvc3RuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC5ob3N0bmFtZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJsb2NhdGlvbiIsImhvc3RuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICJdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAubG9jYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiIsImxvY2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksWyJodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP3E9IixbMjgsInVuYm91bmQiLFtbMjQsWyJsb2NhdGlvbiIsImxhdGl0dWRlIl1dXSxudWxsXSwiLCIsWzI4LCJ1bmJvdW5kIixbWzI0LFsibG9jYXRpb24iLCJsb25naXR1ZGUiXV1dLG51bGxdXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyNCxbImxvY2F0aW9uIiwibG9jYXRpb24iXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLmxvY2F0aW9uX25vdF9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibG9jYXRpb24iLCJvcmdhbml6YXRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZHQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLm9yZ2FuaXNhdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJsb2NhdGlvbiIsIm9yZ2FuaXphdGlvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIl0sWyJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgICAgICJdLFs3LCJkdCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAub3RoZXJfYWNjb3VudHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInN0cm9uZyIsdHJ1ZV0sWzhdLFsxLFsyMiwidG90YWxPdGhlcnNXaXRoU2FtZUlQIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsib3RoZXJfYWNjb3VudHMiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsiYnRuLWRhbmdlciBwdWxsLXJpZ2h0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlT3RoZXJBY2NvdW50cyJdLG51bGxdLCJleGNsYW1hdGlvbi10cmlhbmdsZSJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC5kZWxldGVfb3RoZXJfYWNjb3VudHMiXSxbWyJjb3VudCJdLFtbMjQsWyJvdGhlckFjY291bnRzVG9EZWxldGUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJvdGhlckFjY291bnRzTG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm90aGVyX2FjY291bnRzIiwibGVuZ3RoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRkIix0cnVlXSxbMTAsImNsYXNzIiwib3RoZXItYWNjb3VudHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC50cnVzdF9sZXZlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucmVhZF90aW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC50b3BpY3NfZW50ZXJlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucG9zdF9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm90aGVyX2FjY291bnRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsiYWRtaW5Vc2VyIixbMjMsMSxbXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjMsMSxbXV1dLFtbInVzZXJuYW1lUGF0aCIsImltYWdlU2l6ZSJdLFsidXNlci51c2VybmFtZSIsInNtYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIMKgXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjMsMSxbInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjMsMSxbInRydXN0TGV2ZWwiLCJpZCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsidGltZV9yZWFkIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzIzLDEsWyJ0b3BpY3NfZW50ZXJlZCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsicG9zdF9jb3VudCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9pcC1sb29rdXAifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9sYXRlc3QtdG9waWMtbGlzdC1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtcG9zdGVyIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidG9waWMiLCJsYXN0UG9zdGVyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInRvcGljIiwibGFzdFBvc3RlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1yb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhdyIsWyJ0b3BpYy1zdGF0dXMiXSxbWyJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRvcGljLWxpbmsiLFtbMjQsWyJ0b3BpYyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImZlYXR1cmVkX2xpbmsiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidG9waWMtZmVhdHVyZWQtbGluayIsW1syNCxbInRvcGljIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJ0b3BpYy1wb3N0LWJhZGdlcyIsbnVsbCxbWyJuZXdQb3N0cyIsInVuc2VlbiIsInVybCJdLFtbMjQsWyJ0b3BpYyIsInRvdGFsVW5yZWFkIl1dLFsyNCxbInRvcGljIiwidW5zZWVuIl1dLFsyNCxbInRvcGljIiwibGFzdFVucmVhZFVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib3R0b20tcm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzI0LFsidG9waWMiLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFncyIsW1syNCxbInRvcGljIl1dXSxbWyJtb2RlIl0sWyJsaXN0Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1zdGF0cyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJhdyIsWyJsaXN0L3Bvc3RzLWNvdW50LWNvbHVtbiJdLFtbInRvcGljIiwidGFnTmFtZSJdLFtbMjQsWyJ0b3BpYyJdXSwiZGl2Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxhc3QtYWN0aXZpdHkiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syNCxbInRvcGljIiwibGFzdFBvc3RVcmwiXV1dXV0sWzExLCJ0aXRsZSIsWzI5LFtbMjQsWyJ0b3BpYyIsImJ1bXBlZEF0VGl0bGUiXV1dXV0sWzhdLFsxLFsyOCwiZm9ybWF0LWRhdGUiLFtbMjQsWyJ0b3BpYyIsImJ1bXBlZEF0Il1dXSxbWyJmb3JtYXQiLCJub1RpdGxlIl0sWyJ0aW55IiwidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbGF0ZXN0LXRvcGljLWxpc3QtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2xpbmstdG8taW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93SW5wdXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJrZXkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiaTE4biIsW1syNCxbImtleSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbGluay10by1pbnB1dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2xvZ2luLWJ1dHRvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImIiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiYnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYnV0dG9uIixmYWxzZV0sWzEyLCJjbGFzcyIsWzI5LFsiYnRuIGJ0bi1zb2NpYWwgIixbMjMsMSxbIm5hbWUiXV1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSxbMjQsWyJleHRlcm5hbExvZ2luIl1dLFsyMywxLFtdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJpc0dvb2dsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInN2ZyIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZhIGQtaWNvbiBkLWljb24tY3VzdG9tLWdvb2dsZS1vYXV0aDIgc3ZnLWljb24iXSxbMTAsInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJdLFsxMCwieG1sbnM6eGxpbmsiLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iXSxbMTAsInZpZXdCb3giLCIwIDAgNDggNDgiXSxbOF0sWzcsImRlZnMiLHRydWVdLFs4XSxbNywicGF0aCIsdHJ1ZV0sWzEwLCJpZCIsImEiXSxbMTAsImQiLCJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNHoiXSxbOF0sWzldLFs5XSxbNywiY2xpcFBhdGgiLHRydWVdLFsxMCwiaWQiLCJiIl0sWzhdLFs3LCJ1c2UiLHRydWVdLFsxMCwieGxpbms6aHJlZiIsIiNhIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJdLFsxMCwib3ZlcmZsb3ciLCJ2aXNpYmxlIl0sWzhdLFs5XSxbOV0sWzcsInBhdGgiLHRydWVdLFsxMCwiY2xpcC1wYXRoIiwidXJsKCNiKSJdLFsxMCwiZmlsbCIsIiNGQkJDMDUiXSxbMTAsImQiLCJNMCAzN1YxMWwxNyAxM3oiXSxbOF0sWzldLFs3LCJwYXRoIix0cnVlXSxbMTAsImNsaXAtcGF0aCIsInVybCgjYikiXSxbMTAsImZpbGwiLCIjRUE0MzM1Il0sWzEwLCJkIiwiTTAgMTFsMTcgMTMgNy02LjFMNDggMTRWMEgweiJdLFs4XSxbOV0sWzcsInBhdGgiLHRydWVdLFsxMCwiY2xpcC1wYXRoIiwidXJsKCNiKSJdLFsxMCwiZmlsbCIsIiMzNEE4NTMiXSxbMTAsImQiLCJNMCAzN2wzMC0yMyA3LjkgMUw0OCAwdjQ4SDB6Il0sWzhdLFs5XSxbNywicGF0aCIsdHJ1ZV0sWzEwLCJjbGlwLXBhdGgiLCJ1cmwoI2IpIl0sWzEwLCJmaWxsIiwiIzQyODVGNCJdLFsxMCwiZCIsIk00OCA0OEwxNyAyNGwtNC0zIDM1LTEweiJdLFs4XSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsWyJpY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJzaWduLWluLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAiXSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xvZ2luV2l0aEVtYWlsTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJpY29uIiwiY2xhc3MiXSxbWzI0LFsiZW1haWxMb2dpbiJdXSwiZW1haWxfbG9naW4uYnV0dG9uX2xhYmVsIixbMjQsWyJwcm9jZXNzaW5nRW1haWxMaW5rIl1dLCJmYXItZW52ZWxvcGUiLCJsb2dpbi13aXRoLWVtYWlsLWJ1dHRvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9sb2dpbi1idXR0b25zIn19KTtFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWluc2V0Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyYXciLFsidG9waWMtc3RhdHVzIl0sW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0b3BpYy1saW5rIixbWzI0LFsidG9waWMiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy10b3BpYyJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJjb2xkLWFnZS1jbGFzcyIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdXV1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJyYXctZGF0ZSIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImZvcm1hdC1hZ2UiLFtbMjQsWyJ0b3BpYyIsImxhc3RfcG9zdGVkX2F0Il1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm51bSBwb3N0cyJdLFs4XSxbMSxbMjgsInJhdyIsWyJsaXN0L3Bvc3QtY291bnQtb3ItYmFkZ2VzIl0sW1sidG9waWMiLCJwb3N0QmFkZ2VzRW5hYmxlZCJdLFtbMjQsWyJ0b3BpYyJdXSwidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9iaWxlLW5hdiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1sxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9iaWxlLW5hdiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL21vZGFsLWZvb3Rlci1jbG9zZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9kYWwtZm9vdGVyLWNsb3NlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9kYWwtcGFuZWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY29tcG9uZW50IixbWzI0LFsicGFuZWxDb21wb25lbnQiXV1dLFtbInBhbmVsIiwiY2xvc2UiXSxbWzI0LFsicGFuZWwiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9kYWwtcGFuZWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9tb2RhbC10YWIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsW1syNCxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL21vZGFsLXRhYiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL25hdi1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJyb3V0ZVBhcmFtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbWzI0LFsicm91dGUiXV0sWzI0LFsicm91dGVQYXJhbSJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyMiwiY29udGVudHMiXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJvdXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sW1syNCxbInJvdXRlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJjb250ZW50cyJdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFtbMjQsWyJwYXRoIl1dXSxudWxsXV1dXSxbMTAsImRhdGEtYXV0by1yb3V0ZSIsInRydWUiXSxbOF0sWzEsWzIyLCJjb250ZW50cyJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbmF2LWl0ZW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9uYXZpZ2F0aW9uLWJhciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsIm5hdkl0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsibmF2SXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJuYXZpZ2F0aW9uLWl0ZW0iLG51bGwsW1siY29udGVudCIsImZpbHRlck1vZGUiLCJjYXRlZ29yeSJdLFtbMjMsMixbXV0sWzI0LFsiZmlsdGVyTW9kZSJdXSxbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMSxbMjgsImN1c3RvbS1odG1sIixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIl0sWyJleHRyYU5hdkl0ZW0iLCJsaSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNvbm5lY3RvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tY29ubmVjdG9yIixudWxsLFtbImNvbm5lY3RvciIsImNsYXNzIiwidGFnTmFtZSIsImFyZ3MiXSxbWzIzLDEsW11dLFsyMywxLFsiY2xhc3NOYW1lcyJdXSwibGkiLFsyOCwiaGFzaCIsbnVsbCxbWyJjYXRlZ29yeSIsImZpbHRlck1vZGUiXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsiZmlsdGVyTW9kZSJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9uYXZpZ2F0aW9uLWJhciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL25hdmlnYXRpb24taXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJocmVmTGluayJdXSxbMTEsImNsYXNzIixbMjIsImFjdGl2ZUNsYXNzIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzSWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI0LFsiY29udGVudCIsIm5hbWUiXV1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFsxLFsyNCxbImNvbnRlbnQiLCJkaXNwbGF5TmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbmF2aWdhdGlvbi1pdGVtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbm90aWZpY2F0aW9uLWNvbnNlbnQtYmFubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93Tm90aWZpY2F0aW9uUHJvbXB0QmFubmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29uc2VudF9iYW5uZXIgYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuY29uc2VudF9wcm9tcHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJkaXNwbGF5IiwiYWN0aW9uIiwibGFiZWwiXSxbImxpbmsiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0dXJub24iXSxudWxsXSwidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZW5hYmxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgLlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJ0aXRsZSJdLFsidGltZXMiLCJkaXNtaXNzIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwiYmFubmVyLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ub3RpZmljYXRpb24tY29uc2VudC1iYW5uZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9wbHVnaW4tb3V0bGV0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbImNvbm5lY3RvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJwbHVnaW4tY29ubmVjdG9yIixudWxsLFtbImNvbm5lY3RvciIsImFyZ3MiLCJkZXByZWNhdGVkQXJncyIsImNsYXNzIiwidGFnTmFtZSJdLFtbMjMsMSxbXV0sWzI0LFsiYXJncyJdXSxbMjQsWyJkZXByZWNhdGVkQXJncyJdXSxbMjMsMSxbImNsYXNzTmFtZXMiXV0sWzI0LFsiY29ubmVjdG9yVGFnTmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9wbHVnaW4tb3V0bGV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcG9wdXAtaW5wdXQtdGlwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsb3NlIl0sWzhdLFsxLFsyMiwiY2xvc2VJY29uIl0sZmFsc2VdLFs5XSxbMSxbMjIsInRpcFJlYXNvbiJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcG9wdXAtaW5wdXQtdGlwIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcG9wdXAtbWVudSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsW1syNCxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbMTQsMV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcG9wdXAtbWVudSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3ByZWZlcmVuY2UtY2hlY2tib3giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNoZWNrYm94LWxhYmVsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImRpc2FibGVkIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImRpc2FibGVkIl1dLFsyNCxbImNoZWNrZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcHJlZmVyZW5jZS1jaGVja2JveCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaHJlZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjIsImhyZWYiXV0sWzExLCJ0aXRsZSIsWzI4LCJpMThuIixbWzI0LFsidGl0bGUiXV1dLG51bGxdXSxbMTEsImFyaWEtbGFiZWwiLFsyOCwiaTE4biIsW1syNCxbImFyaWFMYWJlbCJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicHJpdmF0ZS1tZXNzYWdlLWdseXBoLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImVudmVsb3BlIl0sW1siY2xhc3MiXSxbInByaXZhdGUtbWVzc2FnZS1nbHlwaCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJwcml2YXRlLW1lc3NhZ2UtZ2x5cGgtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImVudmVsb3BlIl0sW1siY2xhc3MiXSxbInByaXZhdGUtbWVzc2FnZS1nbHlwaCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd1BXQUluc3RhbGxCYW5uZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwd2EtaW5zdGFsbC1iYW5uZXIgYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS1saW5rZWQtdGV4dCIsbnVsbCxbWyJhY3Rpb24iLCJ0cmFuc2xhdGVkVGV4dCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybk9uIl0sbnVsbF0sWzI4LCJpMThuIixbInB3YS5pbnN0YWxsX2Jhbm5lciJdLFtbInRpdGxlIl0sW1syNCxbInNpdGVTZXR0aW5ncyIsInRpdGxlIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyIsInRpdGxlIl0sWyJ0aW1lcyIsImRpc21pc3MiLCJidG4gYnRuLWZsYXQgY2xvc2UiLCJiYW5uZXIuY2xvc2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3F1b3RlLWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsicXVvdGUtbGVmdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicXVvdGUtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInBvc3QucXVvdGVfcmVwbHkiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9xdW90ZS1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZWxhdGVkLW1lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWdnZXN0ZWQtdG9waWNzLXRpdGxlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJyZWxhdGVkX21lc3NhZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpY3MiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJiYXNpYy10b3BpYy1saXN0IixudWxsLFtbImhpZGVDYXRlZ29yeSIsInNob3dQb3N0ZXJzIiwidG9waWNzIl0sWyJ0cnVlIiwidHJ1ZSIsWzI0LFsidG9waWMiLCJyZWxhdGVkTWVzc2FnZXMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRhcmdldFVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwic2VlLWFsbC1wbXMtbWVzc2FnZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmVsYXRlZF9tZXNzYWdlcy5zZWVfYWxsIl0sW1sicGF0aCIsInVzZXJuYW1lIl0sW1syNCxbInNlYXJjaExpbmsiXV0sWzI0LFsidGFyZ2V0VXNlciIsInVzZXJuYW1lIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmVsYXRlZC1tZXNzYWdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtYnVuZGxlZC1hY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm11bHRpcGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZHJvcGRvd24tc2VsZWN0LWJveCIsbnVsbCxbWyJjbGFzcyIsIm5hbWVQcm9wZXJ0eSIsInRpdGxlIiwiY29udGVudCIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsicmV2aWV3YWJsZS1hY3Rpb24tZHJvcGRvd24iLCJsYWJlbCIsWzI0LFsiYnVuZGxlIiwibGFiZWwiXV0sWzI0LFsiYnVuZGxlIiwiYWN0aW9ucyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybUJ5SWQiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sW1syNCxbImJ1bmRsZSIsImljb24iXV0sWzI0LFsicmV2aWV3YWJsZVVwZGF0aW5nIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImljb24iLCJhY3Rpb24iLCJ0cmFuc2xhdGVkTGFiZWwiLCJkaXNhYmxlZCJdLFtbMjgsImNvbmNhdCIsWyJyZXZpZXdhYmxlLWFjdGlvbiAiLFsyOCwiZGFzaGVyaXplIixbWzI0LFsiZmlyc3QiLCJpZCJdXV0sbnVsbF0sIiAiLFsyNCxbImZpcnN0IiwiYnV0dG9uX2NsYXNzIl1dXSxudWxsXSxbMjQsWyJmaXJzdCIsImljb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBlcmZvcm0iLFsyNCxbImZpcnN0Il1dXSxudWxsXSxbMjQsWyJmaXJzdCIsImxhYmVsIl1dLFsyNCxbInJldmlld2FibGVVcGRhdGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWJ1bmRsZWQtYWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1jbGFpbWVkLXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNsYWltZWRCeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtYnkiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJjbGFpbWVkQnkiXV1dLFtbImltYWdlU2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtdXNlcm5hbWUiXSxbOF0sWzEsWzI0LFsiY2xhaW1lZEJ5IiwidXNlcm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwidGl0bGUiXSxbInRpbWVzIiwiYnRuLXNtYWxsIHVuY2xhaW0iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ1bmNsYWltIl0sbnVsbF0sWzI0LFsidW5hc3NpZ25pbmciXV0sInJldmlldy51bmNsYWltLmhlbHAiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwidGl0bGUiLCJhY3Rpb24iXSxbInVzZXItcGx1cyIsImJ0bi1zbWFsbCBjbGFpbSIsInJldmlldy5jbGFpbS50aXRsZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsYWltIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNsYWltZWQtdG9waWMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJwb3N0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VXNlcm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsidXNlcm5hbWUiLCJ1c2VyIixbMjQsWyJwb3N0IiwidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCJAIl0sWzEsWzI0LFsicG9zdCIsInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI0LFsicG9zdCIsImV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lcyJdLFs4XSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJzaWxlbmNlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJiYW4iXSxbWyJ0aXRsZSJdLFsidXNlci5zaWxlbmNlZF90b29sdGlwIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmRlbGV0ZWRfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNyZWF0ZWQtYnktbmFtZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtY3JlYXRlZC1ieSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNyZWF0ZWQtYnkiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiYXZhdGFyIixbWzI0LFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci10cmFzaC1hbHQiXSxbWyJjbGFzcyJdLFsiZGVsZXRlZC11c2VyLWF2YXRhciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNyZWF0ZWQtYnkifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLWNhdGVnb3J5Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJ2YWx1ZSJdXSxbMjQsWyJjYXRlZ29yeUNoYW5nZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLWNhdGVnb3J5In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiLCJjaGFuZ2UiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidmFsdWVDaGFuZ2VkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC1lZGl0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLXRhZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwibWluaS10YWctY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInZhbHVlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10YWdzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiY2hhbmdlIiwiY2xhc3MiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidmFsdWVDaGFuZ2VkIl1dLCJyZXZpZXdhYmxlLWlucHV0LXRleHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0YXJlYSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0ZXh0YXJlYSIsbnVsbCxbWyJ2YWx1ZSIsImNoYW5nZSIsImNsYXNzIl0sW1syNCxbInZhbHVlIl1dLFsyNCxbInZhbHVlQ2hhbmdlZCJdXSwicmV2aWV3YWJsZS1pbnB1dC10ZXh0YXJlYSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLXRleHRhcmVhIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidmFsdWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzIyLCJjbGFzc2VzIl1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyMiwibmFtZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidmFsdWUiXSxbOF0sWzEsWzIyLCJ2YWx1ZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1mbGFnZ2VkLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZ2dlZC1wb3N0LWhlYWRlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtdG9waWMtbGluayIsbnVsbCxbWyJyZXZpZXdhYmxlIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzRWRpdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLFsyOSxbImhhcy1lZGl0cyAiLFsyMiwiaGlzdG9yeUNsYXNzIl1dXV0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsicG9zdC5sYXN0X2VkaXRlZF9vbiJdLG51bGxdLCIgIixbMjIsImVkaXRlZERhdGUiXV1dXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93RWRpdEhpc3RvcnkiXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBlbmNpbC1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieSIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidGFyZ2V0X2NyZWF0ZWRfYnkiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWNvbnRlbnRzIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLXBvc3QtaGVhZGVyIixudWxsLFtbInJldmlld2FibGUiLCJjcmVhdGVkQnkiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sWzI0LFsicmV2aWV3YWJsZSIsInRhcmdldF9jcmVhdGVkX2J5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWJvZHkiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJldmlld2FibGUiLCJibGFua19wb3N0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5kZWxldGVkX3Bvc3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwiY29va2VkIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImFmdGVyLXJldmlld2FibGUtZmxhZ2dlZC1wb3N0LWJvZHkiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJyZXZpZXdhYmxlIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxNCwxXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1mbGFnZ2VkLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWhpc3RvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicmgiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpbHRlcmVkSGlzdG9yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtaGlzdG9yaWVzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY29sc3BhbiIsIjMiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5oaXN0b3J5LnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImZpbHRlcmVkSGlzdG9yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjMsMSxbImNyZWF0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWhpc3RvcnktZGVzY3JpcHRpb24iLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsicnMiLCJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjMsMSxbImNyZWF0ZWRfYnkiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyMywxLFsiY3JlYXRlZF9ieSIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJjcmVhdGVkX2F0Il1dXSxbWyJmb3JtYXQiXSxbIm1lZGl1bSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWhpc3RvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtaXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYnVuZGxlIiwiZiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicmV2aWV3YWJsZS1pdGVtICIsWzIyLCJjdXN0b21DbGFzcyJdXV1dLFsxMSwiZGF0YS1yZXZpZXdhYmxlLWlkIixbMjQsWyJyZXZpZXdhYmxlIiwiaWQiXV1dLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1tZXRhLWRhdGEiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtdHlwZSJdLFs4XSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwiaHVtYW5UeXBlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJldmlld2FibGUiLCJyZXBseV9jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBseS1jb3VudCJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnJlcGxpZXMiXSxbWyJjb3VudCJdLFtbMjQsWyJyZXZpZXdhYmxlIiwicmVwbHlfY291bnQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNyZWF0ZWQtYXQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInJldmlldy5zaG93IixbMjQsWyJyZXZpZXdhYmxlIiwiaWQiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImFnZS13aXRoLXRvb2x0aXAiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0dXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1zdGF0dXMiLFtbMjQsWyJyZXZpZXdhYmxlIiwic3RhdHVzIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJleHBsYWluIl0sWzEyLCJ0aXRsZSIsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLndoeSJdLG51bGxdXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJleHBsYWluUmV2aWV3YWJsZSIsWzI0LFsicmV2aWV3YWJsZSJdXV1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicXVlc3Rpb24tY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1jb250ZW50cyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZWRpdGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXRhYmxlLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsImNyZWF0ZWRfYnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZWRpdGFibGUtY3JlYXRlZC1ieSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSIsImNyZWF0ZWRfYnkiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJyZXZpZXdhYmxlIiwiZWRpdGFibGVfZmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiZWRpdGFibGUtZmllbGQgIixbMjgsImRhc2hlcml6ZSIsW1syMywyLFsiaWQiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjgsImNvbmNhdCIsWyJyZXZpZXdhYmxlLWZpZWxkLSIsWzIzLDIsWyJ0eXBlIl1dXSxudWxsXV0sW1sidGFnTmFtZSIsInZhbHVlIiwidGFnQ2F0ZWdvcnlJZCIsInZhbHVlQ2hhbmdlZCIsImNhdGVnb3J5Q2hhbmdlZCJdLFsiIixbMjgsImVkaXRhYmxlLXZhbHVlIixbWzI0LFsicmV2aWV3YWJsZSJdXSxbMjMsMixbImlkIl1dXSxudWxsXSxbMjQsWyJyZXZpZXdhYmxlIiwiY2F0ZWdvcnkiLCJpZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidmFsdWVDaGFuZ2VkIixbMjMsMixbImlkIl1dXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2F0ZWdvcnlDaGFuZ2VkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImNvbXBvbmVudCIsW1syNCxbInJldmlld2FibGVDb21wb25lbnQiXV1dLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtc2NvcmVzIixudWxsLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNsYWltRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhlbHAiXSxbOF0sWzEsWzIyLCJjbGFpbUhlbHAiXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiLG51bGwsW1sidG9waWNJZCIsImNsYWltZWRCeSJdLFtbMjQsWyJ0b3BpY0lkIl1dLFsyNCxbInJldmlld2FibGUiLCJjbGFpbWVkX2J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuUGVyZm9ybSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlZGl0aW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgcmV2aWV3YWJsZS1hY3Rpb24gc2F2ZS1lZGl0IixbMjQsWyJ1cGRhdGluZyJdXSwiY2hlY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlRWRpdCJdLG51bGxdLCJyZXZpZXcuc2F2ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciByZXZpZXdhYmxlLWFjdGlvbiBjYW5jZWwtZWRpdCIsWzI0LFsidXBkYXRpbmciXV0sInRpbWVzIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsRWRpdCJdLG51bGxdLCJyZXZpZXcuY2FuY2VsIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZSIsImJ1bmRsZWRfYWN0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1idW5kbGVkLWFjdGlvbiIsbnVsbCxbWyJidW5kbGUiLCJwZXJmb3JtQWN0aW9uIiwicmV2aWV3YWJsZVVwZGF0aW5nIl0sW1syMywxLFtdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybSJdLG51bGxdLFsyNCxbInVwZGF0aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY2FuX2VkaXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJpY29uIiwiYWN0aW9uIiwibGFiZWwiXSxbInJldmlld2FibGUtYWN0aW9uIGVkaXQiLFsyNCxbInVwZGF0aW5nIl1dLCJwZW5jaWwtYWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdCJdLG51bGxdLCJyZXZpZXcuZWRpdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtcG9zdC1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXBvc3QtaGVhZGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsiY3JlYXRlZEJ5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInJlcGx5X3RvX3Bvc3RfbnVtYmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI4LCJjb25jYXQiLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWNfdXJsIl1dLCIvIixbMjQsWyJyZXZpZXdhYmxlIiwicmVwbHlfdG9fcG9zdF9udW1iZXIiXV1dLG51bGxdXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1yZXBseS10byJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hhcmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5pbl9yZXBseV90byJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1wb3N0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtcXVldWVkLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwicmV2aWV3YWJsZS10b3BpYy1saW5rIixudWxsLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUtdGV4dCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBsdXMtc3F1YXJlIl0sW1sidGl0bGUiXSxbInJldmlldy5uZXdfdG9waWMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyNCxbInJldmlld2FibGUiLCJwYXlsb2FkIiwidGl0bGUiXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzI0LFsicmV2aWV3YWJsZSIsImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLXRhZ3MiLG51bGwsW1sidGFncyIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ0YWdzIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ2aWFfZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJzaG93LXJhdy1lbWFpbCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dSYXdFbWFpbCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLFtbInRpdGxlIl0sWyJwb3N0LnZpYV9lbWFpbCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieSIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtcG9zdC1oZWFkZXIiLG51bGwsW1sicmV2aWV3YWJsZSIsImNyZWF0ZWRCeSIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSJdXSxbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1ib2R5Il0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvb2stdGV4dCIsW1syNCxbInJldmlld2FibGUiLCJwYXlsb2FkIiwicmF3Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMTQsMV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtcXVldWVkLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwIiwiaW5kZXgiXSwic3RhdGVtZW50cyI6W1s3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwidXNlciJdLFs4XSxbMCwiXFxuIl0sWzQsInVzZXItbGluayIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInJzIiwidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInJzIiwidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyNCxbInJzIiwidXNlciIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsInVzZXItZmxhZy1wZXJjZW50YWdlIixudWxsLFtbImFncmVlZCIsImRpc2FncmVlZCIsImlnbm9yZWQiXSxbWzI0LFsicnMiLCJhZ3JlZV9zdGF0cyIsImFncmVlZCJdXSxbMjQsWyJycyIsImFncmVlX3N0YXRzIiwiZGlzYWdyZWVkIl1dLFsyNCxbInJzIiwiYWdyZWVfc3RhdHMiLCJpZ25vcmVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbInJzIiwic2NvcmVfdHlwZSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyMiwidGl0bGUiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInJzIiwiY3JlYXRlZF9hdCJdXV0sW1siZm9ybWF0Il0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3RhdHVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1zY29yZS1zcGFjZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImFuZ2xlLWRvdWJsZS1yaWdodCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2VkLWJ5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJldmlld2VkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLWxpbmsiLG51bGwsW1sidXNlciJdLFtbMjQsWyJycyIsInJldmlld2VkX2J5Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInJzIiwicmV2aWV3ZWRfYnkiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI0LFsicnMiLCJyZXZpZXdlZF9ieSIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAg4oCUXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1zdGF0dXMiLFtbMjQsWyJycyIsInN0YXR1cyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJzIiwicmV2aWV3ZWRfYnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInJzIiwicmV2aWV3ZWRfYXQiXV1dLFtbImZvcm1hdCJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY29sc3BhbiIsIjQiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmUtcmVhc29uIl0sWzhdLFsxLFsyNCxbInJzIiwicmVhc29uIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJldmlld2FibGVfY29udmVyc2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNvbHNwYW4iLCI3Il0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1jb252ZXJzYXRpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicnMiLCJyZXZpZXdhYmxlX2NvbnZlcnNhdGlvbiIsImNvbnZlcnNhdGlvbl9wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jb252ZXJzYXRpb24tcG9zdCIsbnVsbCxbWyJwb3N0IiwiaW5kZXgiXSxbWzIzLDEsW11dLFsyMywyLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzEsMl19LG51bGxdLFswLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbInJzIiwicmV2aWV3YWJsZV9jb252ZXJzYXRpb24iLCJwZXJtYWxpbmsiXV1dLFsxMCwiY2xhc3MiLCJidG4gYnRuLXNtYWxsIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmNvbnZlcnNhdGlvbi52aWV3X2Z1bGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIn19KSxkZWZpbmUoImRpc2NvdXJzZS90ZW1wbGF0ZXMvY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJycy5zY29yZV90eXBlLnRpdGxlIiwicmV2aWV3YWJsZS50YXJnZXRfY3JlYXRlZF9ieSIpLG89e3RhZ05hbWU6IiIsc2hvd1N0YXR1czooMCxuLmd0KSgicnMuc3RhdHVzIiwwKSx0aXRsZTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0P2UucmVwbGFjZSgie3t1c2VybmFtZX19Iix0LnVzZXJuYW1lKTplfX0scj1vLGE9InRpdGxlIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywidGl0bGUiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtc2NvcmVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJycyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInJldmlld2FibGVfc2NvcmVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmVzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZSIsInJldmlld2FibGVfc2NvcmVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtc2NvcmUiLG51bGwsW1sicnMiLCJyZXZpZXdhYmxlIl0sW1syMywxLFtdXSxbMjQsWyJyZXZpZXdhYmxlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtc2NvcmVzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS10YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0YWdzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsaXN0LXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbNCwiZWFjaCIsW1syNCxbInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtdGFncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtdG9waWMtbGluayJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LXRvcGljIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLXN0YXR1cyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI0LFsicmV2aWV3YWJsZSIsInRhcmdldF91cmwiXV1dLFsxMCwiY2xhc3MiLCJ0aXRsZS10ZXh0Il0sWzhdLFsxLFsyNCxbInJldmlld2FibGUiLCJ0b3BpYyIsInRpdGxlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzI0LFsicmV2aWV3YWJsZSIsImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtdGFncyIsbnVsbCxbWyJ0YWdzIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWNfdGFncyJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNSwxXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlLXRleHQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLmRlbGV0ZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWxzIl0sWyJ0b3BpYyIsWzI4LCJhcnJheSIsWyItIixbMjQsWyJyZXZpZXdhYmxlIiwicmVtb3ZlZF90b3BpY19pZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsicmV2aWV3LnRvcGljcy5vcmlnaW5hbCJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS10b3BpYy1saW5rIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS11c2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIiwiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItaW5mbyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS11c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyB1c2VybmFtZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy51c2VyLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInZhbHVlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwibGlua19hZG1pbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOCwiZ2V0LXVybCIsW1syOCwiY29uY2F0IixbIi9hZG1pbi91c2Vycy8iLFsyNCxbInJldmlld2FibGUiLCJ1c2VyX2lkIl1dLCIvIixbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsInVzZXJuYW1lIl1dXSxudWxsXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWZpZWxkIixudWxsLFtbImNsYXNzZXMiLCJuYW1lIiwidmFsdWUiXSxbInJldmlld2FibGUtdXNlci1kZXRhaWxzIG5hbWUiLFsyOCwiaTE4biIsWyJyZXZpZXcudXNlci5uYW1lIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1maWVsZCIsbnVsbCxbWyJjbGFzc2VzIiwibmFtZSIsInZhbHVlIl0sWyJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyBlbWFpbCIsWzI4LCJpMThuIixbInJldmlldy51c2VyLmVtYWlsIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJlbWFpbCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtZmllbGQiLG51bGwsW1siY2xhc3NlcyIsIm5hbWUiLCJ2YWx1ZSJdLFsicmV2aWV3YWJsZS11c2VyLWRldGFpbHMgYmlvIixbMjgsImkxOG4iLFsicmV2aWV3LnVzZXIuYmlvIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJiaW8iXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyB3ZWJzaXRlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudXNlci53ZWJzaXRlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidmFsdWUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzEwLCJyZWwiLCJub29wZW5lciJdLFs4XSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidXNlckZpZWxkcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWZpZWxkIixudWxsLFtbImNsYXNzZXMiLCJuYW1lIiwidmFsdWUiXSxbInJldmlld2FibGUtdXNlci1kZXRhaWxzIHVzZXItZmllbGQiLFsyMywxLFsibmFtZSJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMTQsMl0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS11c2VyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2NvcmUtdmFsdWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic2NvcmUtdmFsdWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNjb3JlLW51bWJlciJdLFs4XSxbMSxbMjgsImZsb2F0IixbWzI0LFsidmFsdWUiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxhYmVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNjb3JlLXZhbHVlLXR5cGUiXSxbMTEsInRpdGxlIixbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJyZXZpZXcuZXhwbGFpbi4iLFsyNCxbImxhYmVsIl1dLCIudGl0bGUiXSxudWxsXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJyZXZpZXcuZXhwbGFpbi4iLFsyNCxbImxhYmVsIl1dLCIubmFtZSJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwib3AiXSxbOF0sWzAsIisiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Njb3JlLXZhbHVlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbImFkdmFuY2VkLXNlYXJjaC1vcHRpb25zLWFib3ZlIixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoZWRUZXJtcyJdLFtbMjQsWyJzZWFyY2hlZFRlcm1zIl1dXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBhZHZhbmNlZC1zZWFyY2gtcG9zdGVkLWJ5LWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNlYXJjaC1wb3N0ZWQtYnkiXSxbOF0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5wb3N0ZWRfYnkubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwidXNlcm5hbWVzIiwic2luZ2xlIiwiY2FuUmVjZWl2ZVVwZGF0ZXMiLCJjbGFzcyJdLFtmYWxzZSxbMjQsWyJzZWFyY2hlZFRlcm1zIiwidXNlcm5hbWUiXV0sdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNlYXJjaC1pbi1jYXRlZ29yeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmluX2NhdGVnb3J5LmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInNlYXJjaGVkVGVybXMiLCJjYXRlZ29yeSIsImlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZUNhdGVnb3J5Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMiwiIGRpc2FibGUgdGhlc2Ugc3VwZXItYWR2YW5jZWQgc2VhcmNoZXMgZm9yIG5vd1xcbjxkaXYgY2xhc3M9XFwiY29udGFpbmVyXFwiPlxcbiAgPGRpdiBjbGFzcz1cXCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdFxcIj5cXG4gICAgPGxhYmVsIGNsYXNzPVxcImNvbnRyb2wtbGFiZWxcXCIgZm9yPVxcInNlYXJjaC1pbi1ncm91cFxcIj57e2kxOG4gXFwic2VhcmNoLmFkdmFuY2VkLmluX2dyb3VwLmxhYmVsXFwifX08L2xhYmVsPlxcbiAgICA8ZGl2IGNsYXNzPVxcImNvbnRyb2xzXFwiPlxcbiAgICAgIHt7Z3JvdXAtc2VsZWN0b3IgZ3JvdXBGaW5kZXI9Z3JvdXBGaW5kZXIgZ3JvdXBOYW1lcz1zZWFyY2hlZFRlcm1zLmdyb3VwIHNpbmdsZT1cXCJ0cnVlXFwiIGNhblJlY2VpdmVVcGRhdGVzPVxcInRydWVcXCJ9fVxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGRpdiBjbGFzcz1cXCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdFxcIj5cXG4gICAgPGxhYmVsIGNsYXNzPVxcImNvbnRyb2wtbGFiZWxcXCIgZm9yPVxcInNlYXJjaC13aXRoLWJhZGdlXFwiPnt7aTE4biBcXCJzZWFyY2guYWR2YW5jZWQud2l0aF9iYWRnZS5sYWJlbFxcIn19PC9sYWJlbD5cXG4gICAgPGRpdiBjbGFzcz1cXCJjb250cm9sc1xcIj5cXG4gICAgICB7e2JhZGdlLXNlbGVjdG9yIGJhZGdlRmluZGVyPWJhZGdlRmluZGVyIGJhZGdlTmFtZXM9c2VhcmNoZWRUZXJtcy5iYWRnZSBzaW5nbGU9XFwidHJ1ZVxcIiBjYW5SZWNlaXZlVXBkYXRlcz1cXCJ0cnVlXFwifX1cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG4iXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwidGFnZ2luZ19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLXRhZy1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtd2l0aC10YWdzIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQud2l0aF90YWdzLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImFsbG93Q3JlYXRlIiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJldmVyeVRhZyIsInVubGltaXRlZFRhZ0NvdW50Iiwib25DaGFuZ2UiXSxbWzI0LFsic2VhcmNoZWRUZXJtcyIsInRhZ3MiXV0sZmFsc2UsbnVsbCx0cnVlLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzZWFyY2hlZFRlcm1zIiwidGFncyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJhbGwtdGFncyIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJhbGxfdGFncyJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuYWxsX3RhZ3MiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLXRvcGljcy1wb3N0cy1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwdWxsLWxlZnQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtaW4tb3B0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsImluLXRpdGxlIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwic3BlY2lhbCIsImluIiwidGl0bGUiXV1dXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJpbi1saWtlcyIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJpbiIsImxpa2VzIl1dXV1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5saWtlcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjbGFzcyIsImNoZWNrZWQiXSxbImNoZWNrYm94IiwiaW4tcHJpdmF0ZSIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJpbiIsInBlcnNvbmFsIl1dXV1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5wcml2YXRlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJpbi1zZWVuIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwic3BlY2lhbCIsImluIiwic2VlbiJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siaWQiLCJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSIsIm9uQ2hhbmdlIl0sWyJpbiIsInZhbHVlIixbMjQsWyJpbk9wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsImluIl1dLCJ1c2VyLmxvY2FsZS5hbnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsic2VhcmNoZWRUZXJtcyIsImluIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwdWxsLWxlZnQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtc3RhdHVzLW9wdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImlkIiwidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm5vbmUiLCJvbkNoYW5nZSJdLFsic3RhdHVzIiwidmFsdWUiLFsyNCxbInN0YXR1c09wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsInN0YXR1cyJdXSwidXNlci5sb2NhbGUuYW55IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbInNlYXJjaGVkVGVybXMiLCJzdGF0dXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLWRhdGUtY291bnQtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHVsbC1sZWZ0Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwic2VhcmNoLXBvc3QtZGF0ZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLnBvc3QudGltZS5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgZnVsbC1zZWFyY2gtZGF0ZXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImlkIiwidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJwb3N0VGltZSIsInZhbHVlIixbMjQsWyJwb3N0VGltZU9wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsInRpbWUiLCJ3aGVuIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVdoZW5UaW1lIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRhdGUtaW5wdXQiLG51bGwsW1siZGF0ZSIsIm9uQ2hhbmdlIiwiaWQiXSxbWzI0LFsic2VhcmNoZWRUZXJtcyIsInRpbWUiLCJkYXlzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVdoZW5EYXRlIl0sbnVsbF0sInNlYXJjaC1wb3N0LWRhdGUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHVsbC1sZWZ0Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwic2VhcmNoLW1pbi1wb3N0LWNvdW50Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQucG9zdC5jb3VudC5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIiwiY2xhc3MiLCJpZCJdLFsibnVtYmVyIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwibWluX3Bvc3RfY291bnQiXV0sImlucHV0LXNtYWxsIiwic2VhcmNoLW1pbi1wb3N0LWNvdW50Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbImFkdmFuY2VkLXNlYXJjaC1vcHRpb25zLWJlbG93IixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoZWRUZXJtcyJdLFtbMjQsWyJzZWFyY2hlZFRlcm1zIl1dXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwic2Vjb25kLWZhY3RvciJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsInNlY29uZEZhY3RvclRpdGxlIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsib3B0aW9uYWxUZXh0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsIm9wdGlvbmFsVGV4dCJdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInNlY29uZEZhY3RvckRlc2NyaXB0aW9uIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMTQsMV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb2dnbGVNZXRob2RMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwidG9nZ2xlLXNlY29uZC1mYWN0b3ItbWV0aG9kIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlU2Vjb25kRmFjdG9yTWV0aG9kIl1dLFs4XSxbMSxbMjgsImkxOG4iLFtbMjQsWyJsaW5rVGV4dCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWZvcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWlucHV0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwicGF0dGVybiIsIm1heGxlbmd0aCIsImNsYXNzIiwiaWQiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2ZvY3VzIiwicGxhY2Vob2xkZXIiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidHlwZSJdXSxbMjQsWyJwYXR0ZXJuIl1dLFsyNCxbIm1heGxlbmd0aCJdXSwic2Vjb25kLWZhY3Rvci10b2tlbi1pbnB1dCIsWzI0LFsiaW5wdXRJZCJdXSwib2ZmIiwib2ZmIiwiYXV0b2ZvY3VzIixbMjQsWyJwbGFjZWhvbGRlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NlY29uZC1mYWN0b3ItaW5wdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWN1cml0eS1rZXktZm9ybSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInNlY3VyaXR5LWtleSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJpZCIsImxhYmVsIiwidHlwZSIsImNsYXNzIl0sW1syNCxbImFjdGlvbiJdXSwia2V5Iiwic2VjdXJpdHkta2V5LWF1dGhlbnRpY2F0ZS1idXR0b24iLCJsb2dpbi5zZWN1cml0eV9rZXlfYXV0aGVudGljYXRlIiwiYnV0dG9uIiwiYnRuIGJ0bi1sYXJnZSBidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm90aGVyTWV0aG9kQWxsb3dlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwidG9nZ2xlLXNlY29uZC1mYWN0b3ItbWV0aG9kIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidXNlQW5vdGhlck1ldGhvZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnNlY3VyaXR5X2tleV9hbHRlcm5hdGl2ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zZWN1cml0eS1rZXktZm9ybSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3NoYXJlLXBhbmVsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJzb3VyY2UiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJoZWFkZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzEsWzIyLCJzaGFyZVRpdGxlIl0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib2R5Il0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiLCJjbGFzcyJdLFtbMjQsWyJzaGFyZVVybCJdXSwidG9waWMtc2hhcmUtdXJsIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLXNoYXJlLXVybC1mb3ItdG91Y2giXSxbOF0sWzcsImEiLHRydWVdLFs4XSxbOV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzb3VyY2VzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInNvdXJjZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwic2hhcmUtc291cmNlIixudWxsLFtbInNvdXJjZSIsInRpdGxlIiwiYWN0aW9uIl0sW1syMywxLFtdXSxbMjQsWyJ0b3BpYyIsInRpdGxlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaGFyZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZS1wYW5lbCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3NoYXJlLXBvcHVwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJzIl0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJzaGFyZVRpdGxlIl0sdHJ1ZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJkYXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkYXRlIl0sWzhdLFsxLFsyMiwiZGlzcGxheURhdGUiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaGFyZS1mb3ItdG91Y2giXSxbOF0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm92ZXJmbG93LWVsbGlwc2lzIl0sWzhdLFs3LCJhIix0cnVlXSxbOF0sWzldLFs5XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNvdXJjZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic291cmNlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJzaGFyZS1zb3VyY2UiLG51bGwsW1sic291cmNlIiwidGl0bGUiLCJhY3Rpb24iXSxbWzIzLDEsW11dLFsyNCxbIm1vZGVsIiwidGl0bGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNoYXJlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbHQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJkZXRhaWxzIiwiY2FuX3JlcGx5X2FzX25ld190b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LWFzLW5ldy10b3BpYyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJpc1ByaXZhdGVNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwibmV3LXRvcGljIl0sWzEyLCJhcmlhLWxhYmVsIixbMjgsImkxOG4iLFsicG9zdC5yZXBseV9hc19uZXdfcHJpdmF0ZV9tZXNzYWdlIl0sbnVsbF1dLFsxMiwidGl0bGUiLFsyOCwiaTE4biIsWyJwb3N0LnJlcGx5X2FzX25ld19wcml2YXRlX21lc3NhZ2UiXSxudWxsXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlBc05ld1RvcGljIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicGx1cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubmV3X3ByaXZhdGVfbWVzc2FnZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJuZXctdG9waWMiXSxbMTIsImFyaWEtbGFiZWwiLFsyOCwiaTE4biIsWyJwb3N0LnJlcGx5X2FzX25ld190b3BpYyJdLG51bGxdXSxbMTIsInRpdGxlIixbMjgsImkxOG4iLFsicG9zdC5yZXBseV9hc19uZXdfdG9waWMiXSxudWxsXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlBc05ld1RvcGljIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicGx1cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmNyZWF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJhcmlhLWxhYmVsIiwidGl0bGUiXSxbImNsb3NlIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwidGltZXMiLCJzaGFyZS5jbG9zZSIsInNoYXJlLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NoYXJlLXBvcHVwIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2hhcmUtc291cmNlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwidGl0bGUiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsic291cmNlIiwidGl0bGUiXV1dLG51bGxdXV1dLFsxMiwiYXJpYS1sYWJlbCIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJzb3VyY2UiLCJ0aXRsZSJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hhcmUiLFsyNCxbInNvdXJjZSJdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic291cmNlIiwiaWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsic291cmNlIiwiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyNCxbInNvdXJjZSIsImh0bWxJY29uIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZS1zb3VyY2UifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zaGFyZWQtZHJhZnQtY29udHJvbHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaGFyZWQtZHJhZnQtY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInB1Ymxpc2hpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsic2hhcmVkX2RyYWZ0cy5wdWJsaXNoaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaTE4biIsWyJzaGFyZWRfZHJhZnRzLm5vdGljZSJdLFtbImNhdGVnb3J5Il0sW1syNCxbInRvcGljIiwiY2F0ZWdvcnkiLCJuYW1lIl1dXV1dLHRydWVdLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1Ymxpc2gtZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzaGFyZWRfZHJhZnRzLmRlc3RpbmF0aW9uX2NhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsidG9waWMiLCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBkYXRlRGVzdGluYXRpb25DYXRlZ29yeSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWJsaXNoLWZpZWxkIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ2YWxpZENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInB1Ymxpc2giXSxudWxsXSwic2hhcmVkX2RyYWZ0cy5wdWJsaXNoIiwiYnRuLXByaW1hcnkgcHVibGlzaC1zaGFyZWQtZHJhZnQiLCJmYXItY2xpcGJvYXJkIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZWQtZHJhZnQtY29udHJvbHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zaWdudXAtY3RhIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2lnbnVwLWN0YSBhbGVydCBhbGVydC1pbmZvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZXNzaW9uIiwiaGlkZVNpZ251cEN0YSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzaWdudXBfY3RhLmhpZGRlbl9mb3Jfc2Vzc2lvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syOCwiaTE4biIsWyJzaWdudXBfY3RhLmludHJvIl0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syOCwiaTE4biIsWyJzaWdudXBfY3RhLnZhbHVlX3Byb3AiXSxudWxsXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJidXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dDcmVhdGVBY2NvdW50Il0sbnVsbF0sInNpZ251cF9jdGEuc2lnbl91cCIsImNoZWNrIiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJoaWRlRm9yU2Vzc2lvbiJdLG51bGxdLCJzaWdudXBfY3RhLmhpZGVfc2Vzc2lvbiIsIm5vLWljb24iXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJuZXZlclNob3ciXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzaWdudXBfY3RhLmhpZGVfZm9yZXZlciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NpZ251cC1jdGEifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zdWdnZXN0ZWQtdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWdnZXN0ZWQtdG9waWNzLXRpdGxlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syNCxbInN1Z2dlc3RlZFRpdGxlTGFiZWwiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImJhc2ljLXRvcGljLWxpc3QiLG51bGwsW1siaGlkZUNhdGVnb3J5Iiwic2hvd1Bvc3RlcnMiLCJ0b3BpY3MiXSxbInRydWUiLCJ0cnVlIixbMjQsWyJ0b3BpYyIsInN1Z2dlc3RlZFRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJiYXNpYy10b3BpYy1saXN0IixudWxsLFtbInRvcGljcyJdLFtbMjQsWyJ0b3BpYyIsInN1Z2dlc3RlZFRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcblxcbiJdLFs3LCJoMyIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1Z2dlc3RlZC10b3BpY3MtbWVzc2FnZSJdLFs4XSxbMSxbMjIsImJyb3dzZU1vcmVNZXNzYWdlIl0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zdWdnZXN0ZWQtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGFnLWRyb3AtbGluayJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJ0YWdJZCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdGFnLWRyb3AtbGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RhZy1ncm91cHMtZm9ybSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1ncm91cC1jb250ZW50Il0sWzhdLFswLCJcXG4gICJdLFs3LCJoMSIsdHJ1ZV0sWzhdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSJdLFtbMjQsWyJidWZmZXJlZCIsIm5hbWUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC10YWdzLWxpc3QiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMudGFnc19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiZXZlcnlUYWciLCJhbGxvd0NyZWF0ZSIsImZpbHRlclBsYWNlaG9sZGVyIiwidW5saW1pdGVkVGFnQ291bnQiLCJleGNsdWRlU3lub255bXMiXSxbWzI0LFsiYnVmZmVyZWQiLCJ0YWdfbmFtZXMiXV0sdHJ1ZSx0cnVlLCJ0YWdnaW5nLmdyb3Vwcy50YWdzX3BsYWNlaG9sZGVyIix0cnVlLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBhcmVudC10YWctc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5wYXJlbnRfdGFnX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImV2ZXJ5VGFnIiwibWF4aW11bSIsImFsbG93Q3JlYXRlIiwiZXhjbHVkZVN5bm9ueW1zIiwiZmlsdGVyUGxhY2Vob2xkZXIiXSxbWzI0LFsiYnVmZmVyZWQiLCJwYXJlbnRfdGFnX25hbWUiXV0sdHJ1ZSwxLHRydWUsdHJ1ZSwidGFnZ2luZy5ncm91cHMucGFyZW50X3RhZ19wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMucGFyZW50X3RhZ19kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtb25lLXBlci10b3BpYyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwibmFtZSJdLFsiY2hlY2tib3giLFsyNCxbImJ1ZmZlcmVkIiwib25lX3Blcl90b3BpYyJdXSwib25lcGVydG9waWMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuZ3JvdXBzLm9uZV9wZXJfdG9waWNfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtdmlzaWJpbGl0eSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siY2xhc3MiLCJuYW1lIiwidmFsdWUiLCJpZCIsInNlbGVjdGlvbiIsIm9uQ2hhbmdlIl0sWyJ0YWctcGVybWlzc2lvbnMtY2hvaWNlIiwidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInB1YmxpYyIsInB1YmxpYy1wZXJtaXNzaW9uIixbMjQsWyJidWZmZXJlZCIsInBlcm1pc3Npb25OYW1lIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXRQZXJtaXNzaW9ucyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInB1YmxpYy1wZXJtaXNzaW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5ldmVyeW9uZV9jYW5fdXNlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImNsYXNzIiwibmFtZSIsInZhbHVlIiwiaWQiLCJzZWxlY3Rpb24iLCJvbkNoYW5nZSJdLFsidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInRhZy1wZXJtaXNzaW9ucy1jaG9pY2UiLCJ2aXNpYmxlIiwidmlzaWJsZS1wZXJtaXNzaW9uIixbMjQsWyJidWZmZXJlZCIsInBlcm1pc3Npb25OYW1lIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXRQZXJtaXNzaW9ucyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInZpc2libGUtcGVybWlzc2lvbiJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMudXNhYmxlX29ubHlfYnlfc3RhZmYiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siY2xhc3MiLCJuYW1lIiwidmFsdWUiLCJpZCIsInNlbGVjdGlvbiIsIm9uQ2hhbmdlIl0sWyJ0YWctcGVybWlzc2lvbnMtY2hvaWNlIiwidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInByaXZhdGUiLCJwcml2YXRlLXBlcm1pc3Npb24iLFsyNCxbImJ1ZmZlcmVkIiwicGVybWlzc2lvbk5hbWUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNldFBlcm1pc3Npb25zIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFsxMCwiZm9yIiwicHJpdmF0ZS1wZXJtaXNzaW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy52aXNpYmxlX29ubHlfdG9fc3RhZmYiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdLFsyNCxbInNhdmluZ0Rpc2FibGVkIl1dLCJ0YWdnaW5nLmdyb3Vwcy5zYXZlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGFuZ2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVzdHJveSJdLG51bGxdLFsyNCxbImJ1ZmZlcmVkIiwiaXNOZXciXV0sImZhci10cmFzaC1hbHQiLCJ0YWdnaW5nLmdyb3Vwcy5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90YWctZ3JvdXBzLWZvcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90YWctaW5mbyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnIiwiY2F0ZWdvcnkiXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWluZm8iXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInRhZ0luZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syNCxbInRhZ0luZm8iLCJuYW1lIl1dXSxbWyJ0YWdOYW1lIiwic2l6ZSJdLFsiZGl2IiwibGFyZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQWRtaW5UYWciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCIsImlkIl0sWyJidG4tZGVmYXVsdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbmFtZVRhZyJdLG51bGxdLCJwZW5jaWwtYWx0IiwidGFnZ2luZy5yZW5hbWVfdGFnIiwicmVuYW1lLXRhZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJpZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFZGl0Q29udHJvbHMiXSxudWxsXSwiY29nIiwidGFnZ2luZy5lZGl0X3N5bm9ueW1zIiwiZWRpdC1zeW5vbnltcyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkZWxldGVBY3Rpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiaWQiXSxbImJ0bi1kYW5nZXIgZGVsZXRlLXRhZyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVRhZyJdLG51bGxdLCJmYXItdHJhc2gtYWx0IiwidGFnZ2luZy5kZWxldGVfdGFnIiwiZGVsZXRlLXRhZyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctYXNzb2NpYXRpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJbmZvIiwidGFnX2dyb3VwX25hbWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwidGFnR3JvdXBzSW5mbyJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzIyLCJjYXRlZ29yaWVzSW5mbyJdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMixbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm5vdGhpbmdUb1Nob3ciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3J5X3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5jYXRlZ29yeV9yZXN0cmljdGVkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmRlZmF1bHRfaW5mbyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJbmZvIiwic3lub255bXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzeW5vbnltcy1saXN0Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnN5bm9ueW1zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc3lub255bXNfZGVzY3JpcHRpb24iXSxbWyJiYXNlX3RhZ19uYW1lIl0sW1syNCxbInRhZ0luZm8iLCJuYW1lIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWxpc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidGFnSW5mbyIsInN5bm9ueW1zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWJveCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbImlkIl1dXSxbWyJwbU9ubHkiLCJ0YWdOYW1lIl0sW1syMywxLFsicG1Pbmx5Il1dLCJkaXYiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZWRpdFN5bm9ueW1zTW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInVubGluay1zeW5vbnltIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidW5saW5rU3lub255bSIsWzIzLDEsW11dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1bmxpbmsiXSxbWyJ0aXRsZSJdLFsidGFnZ2luZy5yZW1vdmVfc3lub255bSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiZGVsZXRlLXN5bm9ueW0iXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVTeW5vbnltIixbMjMsMSxbXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci10cmFzaC1hbHQiXSxbWyJ0aXRsZSJdLFsidGFnZ2luZy5kZWxldGVfdGFnIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiZWRpdFN5bm9ueW1zTW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJhZGQtc3lub255bXMgZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImFkZC1zeW5vbnltcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5hZGRfc3lub255bXNfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1siaWQiLCJ0YWdzIiwiZXZlcnlUYWciLCJleGNsdWRlU3lub255bXMiLCJleGNsdWRlSGFzU3lub255bXMiLCJ1bmxpbWl0ZWRUYWdDb3VudCJdLFsiYWRkLXN5bm9ueW1zIixbMjQsWyJuZXdTeW5vbnltcyJdXSx0cnVlLHRydWUsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRTeW5vbnltcyJdLG51bGxdLFsyNCxbImFkZFN5bm9ueW1zRGlzYWJsZWQiXV0sInRhZ2dpbmcuYWRkX3N5bm9ueW1zIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvYWRpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RhZy1pbmZvIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGFnLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY2F0ZWdvcnktdGl0bGUtbGluayIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRhZ0dyb3VwTmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsInRhZ0dyb3VwTmFtZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJlYWNoIixbWzI0LFsic29ydGVkVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWJveCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syMywxLFsiaWQiXV1dLFtbImlzUHJpdmF0ZU1lc3NhZ2UiLCJwbU9ubHkiLCJ0YWdzRm9yVXNlciJdLFtbMjQsWyJpc1ByaXZhdGVNZXNzYWdlIl1dLFsyMywxLFsicG1Pbmx5Il1dLFsyNCxbInRhZ3NGb3JVc2VyIl1dXV1dLGZhbHNlXSxbMCwiICJdLFs0LCJpZiIsW1syMywxLFsicG1Pbmx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbInRvdGFsQ291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1jb3VudCJdLFs4XSxbMCwieCAiXSxbMSxbMjMsMSxbInRvdGFsQ291bnQiXV0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90YWctbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RleHQtb3ZlcmZsb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwidGV4dCJdLHRydWVdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90ZXh0LW92ZXJmbG93In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGltZS1pbnB1dCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibmF0aXZlUGlja2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJjbGFzcyIsInR5cGUiLCJ2YWx1ZSIsImNoYW5nZSJdLFsiZmllbGQgdGltZSIsInRpbWUiLFsyOCwiY29uY2F0IixbWzI0LFsiX2hvdXJzIl1dLCI6IixbMjQsWyJfbWludXRlcyJdXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlVGltZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImNsYXNzIiwidHlwZSIsInRpdGxlIiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwibWF4IiwibWluIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsImlucHV0IiwiZm9jdXMtaW4iXSxbImZpZWxkIGhvdXJzIiwibnVtYmVyIiwiSG91cnMiLDIsMiwiMjMiLCIwIiwiMDAiLFsyNCxbIl9ob3VycyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25JbnB1dCIsWzI4LCJoYXNoIixudWxsLFtbInByb3AiXSxbImhvdXJzIl1dXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uRm9jdXNJbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZXBhcmF0b3IiXSxbOF0sWzAsIjoiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImNsYXNzIiwidGl0bGUiLCJ0eXBlIiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwibWF4IiwibWluIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsImlucHV0IiwiZm9jdXMtaW4iXSxbImZpZWxkIG1pbnV0ZXMiLCJNaW51dGVzIiwibnVtYmVyIiwyLDIsIjU5IiwiMCIsIjAwIixbMjQsWyJfbWludXRlcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25JbnB1dCIsWzI4LCJoYXNoIixudWxsLFtbInByb3AiXSxbIm1pbnV0ZXMiXV1dXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25Gb2N1c0luIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90aW1lLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9wLXBlcmlvZC1idXR0b25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInBlcmlvZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiYWN0aW9uUGFyYW0iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdLCJidG4tZGVmYXVsdCIsWzIzLDEsW11dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syMywxLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9wLXBlcmlvZC1idXR0b25zIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtY2F0ZWdvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJ0b3BpYyIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJib3VuZC1jYXRlZ29yeS1saW5rIixbWzI0LFsidG9waWMiLCJjYXRlZ29yeSJdXV0sW1sicmVjdXJzaXZlIiwiaGlkZVBhcmVudCJdLFt0cnVlLHRydWVdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtaGVhZGVyLWV4dHJhIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC10YWdzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWdzIixbWzI0LFsidG9waWMiXV1dLFtbIm1vZGUiLCJ0YWdzIl0sWyJsaXN0IixbMjQsWyJ0b3BpYyIsInRhZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0b3BpY19mZWF0dXJlZF9saW5rX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWZlYXR1cmVkLWxpbmsiLFtbMjQsWyJ0b3BpYyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtY2F0ZWdvcnkiLFsyOCwiaGFzaCIsbnVsbCxbWyJ0b3BpYyIsImNhdGVnb3J5Il0sW1syNCxbInRvcGljIl1dLFsyNCxbInRvcGljIiwiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1jYXRlZ29yeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWVudHJhbmNlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVudGVyVG9wIl0sbnVsbF0sImZ1bGwganVtcC10b3AiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFsic3RlcC1iYWNrd2FyZCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidG9wRGF0ZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlbnRlckJvdHRvbSJdLG51bGxdLCJmdWxsIGp1bXAtYm90dG9tIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyMiwiYm90dG9tRGF0ZSJdLHRydWVdLFswLCIgIl0sWzEsWzI4LCJkLWljb24iLFsic3RlcC1mb3J3YXJkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1lbnRyYW5jZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWZvb3Rlci1idXR0b25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJidXR0b24iXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1mb290ZXItbWFpbi1idXR0b25zIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwidG9waWMtYWRtaW4tbWVudS1idXR0b24iLG51bGwsW1sidG9waWMiLCJvcGVuVXB3YXJkcyIsInRvZ2dsZU11bHRpU2VsZWN0IiwiZGVsZXRlVG9waWMiLCJyZWNvdmVyVG9waWMiLCJ0b2dnbGVGZWF0dXJlZE9uUHJvZmlsZSIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsidG9waWMiXV0sInRydWUiLFsyNCxbInRvZ2dsZU11bHRpU2VsZWN0Il1dLFsyNCxbImRlbGV0ZVRvcGljIl1dLFsyNCxbInJlY292ZXJUb3BpYyJdXSxbMjQsWyJ0b2dnbGVGZWF0dXJlZE9uUHJvZmlsZSJdXSxbMjQsWyJ0b2dnbGVDbG9zZWQiXV0sWzI0LFsidG9nZ2xlQXJjaGl2ZWQiXV0sWzI0LFsidG9nZ2xlVmlzaWJpbGl0eSJdXSxbMjQsWyJzaG93VG9waWNTdGF0dXNVcGRhdGUiXV0sWzI0LFsic2hvd0ZlYXR1cmVUb3BpYyJdXSxbMjQsWyJzaG93Q2hhbmdlVGltZXN0YW1wIl1dLFsyNCxbInJlc2V0QnVtcERhdGUiXV0sWzI0LFsiY29udmVydFRvUHVibGljVG9waWMiXV0sWzI0LFsiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwidG9waWMtZm9vdGVyLW1vYmlsZS1kcm9wZG93biIsbnVsbCxbWyJ0b3BpYyIsImNvbnRlbnQiXSxbWzI0LFsidG9waWMiXV0sWzI0LFsiZHJvcGRvd25CdXR0b25zIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiaW5saW5lQnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWQiLCJjbGFzcyIsImFjdGlvbiIsImljb24iLCJ0cmFuc2xhdGVkTGFiZWwiLCJ0cmFuc2xhdGVkVGl0bGUiLCJkaXNhYmxlZCJdLFtbMjgsImNvbmNhdCIsWyJ0b3BpYy1mb290ZXItYnV0dG9uLSIsWzIzLDEsWyJpZCJdXV0sbnVsbF0sWzI4LCJjb25jYXQiLFsiYnRuLWRlZmF1bHQgdG9waWMtZm9vdGVyLWJ1dHRvbiAiLFsyMywxLFsiY2xhc3NOYW1lcyJdXV0sbnVsbF0sWzIzLDEsWyJhY3Rpb24iXV0sWzIzLDEsWyJpY29uIl1dLFsyMywxLFsibGFiZWwiXV0sWzIzLDEsWyJ0aXRsZSJdXSxbMjMsMSxbImRpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJ0b3BpYy1mb290ZXItbWFpbi1idXR0b25zLWJlZm9yZS1jcmVhdGUiLFsyOCwiaGFzaCIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyJdXV1dXSwiIiwic3BhbiJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImRldGFpbHMiLCJjYW5fY3JlYXRlX3Bvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiIsImxhYmVsIiwidGl0bGUiXSxbImJ0bi1wcmltYXJ5IGNyZWF0ZSIsInJlcGx5IixbMjQsWyJyZXBseVRvUG9zdCJdXSwidG9waWMucmVwbHkudGl0bGUiLCJ0b3BpYy5yZXBseS5oZWxwIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJhZnRlci10b3BpYy1mb290ZXItbWFpbi1idXR0b25zIixbMjgsImhhc2giLG51bGwsW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sIiIsInNwYW4iXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBpbm5lZC1idXR0b24iLG51bGwsW1sicGlubmVkIiwidG9waWMiXSxbWzI0LFsidG9waWMiLCJwaW5uZWQiXV0sWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dOb3RpZmljYXRpb25zQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iLG51bGwsW1sibm90aWZpY2F0aW9uTGV2ZWwiLCJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyIsImRldGFpbHMiLCJub3RpZmljYXRpb25fbGV2ZWwiXV0sWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwidGFnTmFtZSIsImNvbm5lY3RvclRhZ05hbWUiXSxbImFmdGVyLXRvcGljLWZvb3Rlci1idXR0b25zIixbMjgsImhhc2giLG51bGwsW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sIiIsInNwYW4iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9waWMtZm9vdGVyLWJ1dHRvbnMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1qb2luLWdyb3VwLW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJhY2Nlc3NWaWFHcm91cFRleHQiXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI0LFsiYWN0aW9uIl1dLCJidG4tcHJpbWFyeSB0b3BpYy1qb2luLWdyb3VwIiwidXNlci1wbHVzIixbMjQsWyJhY2Nlc3NWaWFHcm91cEJ1dHRvblRleHQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1qb2luLWdyb3VwLW5vdGljZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJ0b3BpY0xpc3RJdGVtQ29udGVudHMiXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRvcGljIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2tpcEhlYWRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwicmF3IixbInRvcGljLWxpc3QtaGVhZGVyIl0sW1siY2FuQnVsa1NlbGVjdCIsInRvZ2dsZUluVGl0bGUiLCJoaWRlQ2F0ZWdvcnkiLCJzaG93UG9zdGVycyIsInNob3dMaWtlcyIsInNob3dPcExpa2VzIiwib3JkZXIiLCJhc2NlbmRpbmciLCJzb3J0YWJsZSIsImxpc3RUaXRsZSIsImJ1bGtTZWxlY3RFbmFibGVkIl0sW1syNCxbImNhbkJ1bGtTZWxlY3QiXV0sWzI0LFsidG9nZ2xlSW5UaXRsZSJdXSxbMjQsWyJoaWRlQ2F0ZWdvcnkiXV0sWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsic2hvd0xpa2VzIl1dLFsyNCxbInNob3dPcExpa2VzIl1dLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzY2VuZGluZyJdXSxbMjQsWyJzb3J0YWJsZSJdXSxbMjQsWyJsaXN0VGl0bGUiXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJiZWZvcmUtdG9waWMtbGlzdC1ib2R5IixbMjgsImhhc2giLG51bGwsW1sidG9waWNzIiwic2VsZWN0ZWQiLCJidWxrU2VsZWN0RW5hYmxlZCIsImxhc3RWaXNpdGVkVG9waWMiLCJkaXNjb3ZlcnlMaXN0IiwiaGlkZUNhdGVnb3J5Il0sW1syNCxbInRvcGljcyJdXSxbMjQsWyJzZWxlY3RlZCJdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJsYXN0VmlzaXRlZFRvcGljIl1dLFsyNCxbImRpc2NvdmVyeUxpc3QiXV0sWzI0LFsiaGlkZUNhdGVnb3J5Il1dXV1dLCIiLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiZmlsdGVyZWRUb3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QtaXRlbSIsbnVsbCxbWyJ0b3BpYyIsImJ1bGtTZWxlY3RFbmFibGVkIiwic2hvd1RvcGljUG9zdEJhZGdlcyIsImhpZGVDYXRlZ29yeSIsInNob3dQb3N0ZXJzIiwic2hvd0xpa2VzIiwic2hvd09wTGlrZXMiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsImxhc3RWaXNpdGVkVG9waWMiLCJzZWxlY3RlZCIsInRhZ3NGb3JVc2VyIl0sW1syMywxLFtdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJzaG93VG9waWNQb3N0QmFkZ2VzIl1dLFsyNCxbImhpZGVDYXRlZ29yeSJdXSxbMjQsWyJzaG93UG9zdGVycyJdXSxbMjQsWyJzaG93TGlrZXMiXV0sWzI0LFsic2hvd09wTGlrZXMiXV0sWzI0LFsiZXhwYW5kR2xvYmFsbHlQaW5uZWQiXV0sWzI0LFsiZXhwYW5kQWxsUGlubmVkIl1dLFsyNCxbImxhc3RWaXNpdGVkVG9waWMiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsidGFnc0ZvclVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC92aXNpdGVkLWxpbmUiXSxbWyJsYXN0VmlzaXRlZFRvcGljIiwidG9waWMiXSxbWzI0LFsibGFzdFZpc2l0ZWRUb3BpYyJdXSxbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1saXN0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtbmF2aWdhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1sxNCwxLFtbMjQsWyJpbmZvIl1dXV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLW5hdmlnYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1wb3N0LWJhZGdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidW5yZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIMKgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsInVybCJdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gdW5yZWFkIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudW5yZWFkX3Bvc3RzIl0sW1siY291bnQiXSxbWzI0LFsidW5yZWFkIl1dXV1dXV1dLFs4XSxbMSxbMjIsInVucmVhZCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm5ld1Bvc3RzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIMKgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsInVybCJdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gbmV3LXBvc3RzIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudG90YWxfdW5yZWFkX3Bvc3RzIl0sW1siY291bnQiXSxbWzI0LFsibmV3UG9zdHMiXV1dXV1dXV0sWzhdLFsxLFsyMiwibmV3UG9zdHMiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgwqAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syMiwidXJsIl1dXV0sWzEwLCJjbGFzcyIsImJhZGdlIGJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJ0b3BpYy5uZXciXSxudWxsXV1dXSxbOF0sWzEsWzIyLCJuZXdEb3RUZXh0Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9waWMtcG9zdC1iYWRnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1wcm9ncmVzcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJoaWRlUHJvZ3Jlc3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0JhY2tCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInByb2dyZXNzLWJhY2stY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsidG9waWMudGltZWxpbmUuYmFjayIsImJ0bi1wcmltYXJ5IHByb2dyZXNzLWJhY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJnb0JhY2siXSxudWxsXSwiYXJyb3ctZG93biJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJuYXYiLHRydWVdLFsxMCwiaWQiLCJ0b3BpYy1wcm9ncmVzcyJdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInRvcGljLnByb2dyZXNzLnRpdGxlIl0sbnVsbF1dXV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsiaGlkZVByb2dyZXNzIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm51bXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjIsInByb2dyZXNzUG9zaXRpb24iXSxmYWxzZV0sWzldLFs3LCJzcGFuIix0cnVlXSxbMTEsImNsYXNzIixbMjksW1syOCwiaWYiLFtbMjQsWyJodWdlTnVtYmVyT2ZQb3N0cyJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiLyJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJoNCIsdHJ1ZV0sWzhdLFsxLFsyNCxbInBvc3RTdHJlYW0iLCJmaWx0ZXJlZFBvc3RzQ291bnQiXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLXByb2dyZXNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtc3RhdHVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3BpY0Nsb3NlZEFyY2hpdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJjbG9zZWRBcmNoaXZlZFRpdGxlIl1dLFs4XSxbMSxbMjIsImNsb3NlZEFyY2hpdmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiY2xvc2VkSWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwiY2xvc2VkVGl0bGUiXV0sWzhdLFsxLFsyMiwiY2xvc2VkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiYXJjaGl2ZWRJY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJhcmNoaXZlZFRpdGxlIl1dLFs4XSxbMSxbMjIsImFyY2hpdmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidG9waWNXYXJuaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJ3YXJuaW5nVGl0bGUiXV0sWzhdLFsxLFsyMiwid2FybmluZ0ljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRvcGljUGlubmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkFjdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwicGlubmVkVGl0bGUiXV0sWzhdLFsxLFsyMiwicGlubmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1zdGF0dXMiXSxbMTEsInRpdGxlIixbMjIsInBpbm5lZFRpdGxlIl1dLFs4XSxbMSxbMjIsInBpbm5lZEljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJ0b3BpY1VucGlubmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkFjdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwidW5waW5uZWRUaXRsZSJdXSxbOF0sWzEsWzIyLCJ1bnBpbm5lZEljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJ1bnBpbm5lZFRpdGxlIl1dLFs4XSxbMSxbMjIsInVucGlubmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRvcGljSW52aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJpbnZpc2libGVUaXRsZSJdXSxbOF0sWzEsWzIyLCJpbnZpc2libGVJY29uIl0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1zdGF0dXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy10aW1lci1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNUaW1lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aW1lci1oZWFkaW5nIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzIyLCJ0aXRsZSJdXV1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzIyLCJjbG9ja0ljb24iXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsIm5vdGljZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RyYXNoQ2FuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYnV0dG9uIix0cnVlXSxbMTAsImNsYXNzIiwiYnRuIHRvcGljLXRpbWVyLXJlbW92ZSBuby10ZXh0Il0sWzExLCJ0aXRsZSIsWzI5LFtbMjIsInRyYXNoQ2FuVGl0bGUiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzIyLCJ0cmFzaENhbkljb24iXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy10aW1lci1pbmZvIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtdGl0bGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZS13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzE0LDFdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInRvcGljLXRpdGxlIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLXRpdGxlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdHJhY2stc2VsZWN0ZWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiXSxbImNoZWNrYm94IixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RyYWNrLXNlbGVjdGVkIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1iYWRnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsImJhZGdlVXJsIl1dXV0sWzhdLFswLCJcXG4iXSxbNCwiYmFkZ2UtYnV0dG9uIixudWxsLFtbImJhZGdlIl0sW1syNCxbImJhZGdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd0dyYW50Q291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY291bnQiXSxbOF0sWzAsIijDl8KgIl0sWzEsWzIyLCJjb3VudCJdLGZhbHNlXSxbMCwiKSJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWJhZGdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1jYXJkLWNvbnRlbnRzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1YiIsInVmIl0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ2aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY2FyZC1hdmF0YXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1hdmF0YXItcGxhY2Vob2xkZXIgYW5pbWF0ZWQtcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXItYW5pbWF0aW9uIl0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbmltYXRlZC1wbGFjZWhvbGRlciBwbGFjZWhvbGRlci1hbmltYXRpb24iXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYW5pbWF0ZWQtcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXItYW5pbWF0aW9uIl0sWzhdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY2FyZC1hdmF0YXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcm9maWxlX2hpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWh1Z2UtYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyIixbWzI0LFsidXNlciJdXSwiaHVnZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsWzI5LFtbMjQsWyJ1c2VyIiwicGF0aCJdXV1dXSxbMTIsImNsYXNzIiwiY2FyZC1odWdlLWF2YXRhciJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIixbMjQsWyJ1c2VyIl1dXV0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyIixbWzI0LFsidXNlciJdXSwiaHVnZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9uYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhci1mbGFpciIsbnVsbCxbWyJmbGFpclVSTCIsImZsYWlyQmdDb2xvciIsImZsYWlyQ29sb3IiLCJncm91cE5hbWUiXSxbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbInVzZXItY2FyZC1hdmF0YXItZmxhaXIiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV0sImRpdiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibmFtZXMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzIyLCJzdGFmZiJdLCIgIixbMjIsIm5ld1VzZXIiXSwiICIsWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSwiZnVsbC1uYW1lIiwidXNlcm5hbWUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcm9maWxlX2hpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUtdXNlcm5hbWUtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV0sWzI0LFsidXNlciIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJ1c2VybmFtZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIixbMjksW1syNCxbInVzZXIiLCJwYXRoIl1dXV1dLFsxMiwiY2xhc3MiLCJ1c2VyLXByb2ZpbGUtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIixbMjQsWyJ1c2VyIl1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lLXVzZXJuYW1lLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV0sWzI0LFsidXNlciIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJ1c2VybmFtZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0dXMiLFtbMjQsWyJ1c2VyIl1dXSxbWyJjdXJyZW50VXNlciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWNhcmQtYWZ0ZXItdXNlcm5hbWUiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIiwic2hvd1VzZXIiXSxbWzI0LFsidXNlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1VzZXIiLFsyNCxbInVzZXIiXV1dLG51bGxdXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm5hbWVGaXJzdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ1c2VyIiwibmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFsxMCwiY2xhc3MiLCJmdWxsLW5hbWUiXSxbOF0sWzEsWzI0LFsidXNlciIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFsxLFsyMiwidXNlcm5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsidXNlciIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjQsWyJ1c2VyIiwidGl0bGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidXNlciIsInN0YWdlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbMTAsImNsYXNzIiwic3RhZ2VkIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN0YWdlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwidGFnTmFtZSJdLFsidXNlci1jYXJkLXBvc3QtbmFtZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV0sImRpdiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyY2FyZC1jb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsImNhbl9zZW5kX3ByaXZhdGVfbWVzc2FnZV90b191c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3NlLXBtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29tcG9zZVBNIixbMjQsWyJ1c2VyIl1dLFsyNCxbInBvc3QiXV1dLG51bGxdLCJlbnZlbG9wZSIsInVzZXIucHJpdmF0ZV9tZXNzYWdlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd0ZpbHRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJ0cmFuc2xhdGVkTGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUG9zdHMiLFsyNCxbInVzZXIiXV1dLG51bGxdLCJmaWx0ZXIiLFsyNCxbInRvZ2dsZVBvc3RzTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImhhc1VzZXJGaWx0ZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsRmlsdGVyIl0sbnVsbF0sInRpbWVzIiwidG9waWMuZmlsdGVycy5jYW5jZWwiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVsZXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVVc2VyIl0sbnVsbF0sWzI0LFsidXNlciJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJhZG1pbi51c2VyLmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWNhcmQtYWRkaXRpb25hbC1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbInVzZXIiLCJjbG9zZSJdLFtbMjQsWyJ1c2VyIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZSJdLG51bGxdXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwicHJvZmlsZV9oaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHJvZmlsZS1oaWRkZW4iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucHJvZmlsZV9oaWRkZW4iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzU3VzcGVuZGVkT3JIYXNCaW8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJzdXNwZW5kX3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbmRlZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3VzcGVuc2lvbi1kYXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VzcGVuZGVkX25vdGljZSJdLFtbImRhdGUiXSxbWzI0LFsidXNlciIsInN1c3BlbmRlZFRpbGxEYXRlIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbnNpb24tcmVhc29uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdXNwZW5zaW9uLXJlYXNvbi10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdXNwZW5kZWRfcmVhc29uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic3VzcGVuc2lvbi1yZWFzb24tZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI0LFsidXNlciIsInN1c3BlbmRfcmVhc29uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInVzZXIiLCJiaW9fZXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmlvIl0sWzhdLFsxLFsyOCwidGV4dC1vdmVyZmxvdyIsbnVsbCxbWyJjbGFzcyIsInRleHQiXSxbIm92ZXJmbG93IixbMjQsWyJ1c2VyIiwiYmlvX2V4Y2VycHQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dGZWF0dXJlZFRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmZlYXR1cmVkX3RvcGljIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbHMiXSxbInRvcGljIixbMjgsImFycmF5IixbWzI0LFsidXNlciIsImZlYXR1cmVkX3RvcGljIiwic2x1ZyJdXSxbMjQsWyJ1c2VyIiwiZmVhdHVyZWRfdG9waWMiLCJpZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjQsWyJ1c2VyIiwiZmVhdHVyZWRfdG9waWMiLCJmYW5jeV90aXRsZSJdXSx0cnVlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNMb2NhdGlvbk9yV2Vic2l0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibG9jYXRpb24tYW5kLXdlYnNpdGUiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxvY2F0aW9uIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbIm1hcC1tYXJrZXItYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjQsWyJ1c2VyIiwibG9jYXRpb24iXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJ3ZWJzaXRlX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ3ZWJzaXRlLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJnbG9iZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibGlua1dlYnNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI0LFsidXNlciIsIndlYnNpdGUiXV1dXV0sWzExLCJyZWwiLFsyOCwidW5sZXNzIixbWzI0LFsicmVtb3ZlTm9Gb2xsb3ciXV0sIm5vZm9sbG93IHVnYyBub29wZW5lciJdLG51bGxdXSxbMTAsInRhcmdldCIsIl9ibGFuayJdLFs4XSxbMSxbMjQsWyJ1c2VyIiwid2Vic2l0ZV9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI0LFsidXNlciIsIndlYnNpdGUiXV1dLFs4XSxbMSxbMjQsWyJ1c2VyIiwid2Vic2l0ZV9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY2FyZC1sb2NhdGlvbi1hbmQtd2Vic2l0ZSIsWzI4LCJoYXNoIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsidXNlciIsInByb2ZpbGVfaGlkZGVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1ldGFkYXRhIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsYXN0X3Bvc3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInVzZXIiLCJsYXN0X3Bvc3RlZF9hdCJdXV0sW1sibGVhdmVBZ28iXSxbInRydWUiXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzEsWzI4LCJpMThuIixbImpvaW5lZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInVzZXIiLCJjcmVhdGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsInRpbWVfcmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzIyLCJ0aW1lUmVhZFRvb2x0aXAiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzEsWzI4LCJpMThuIixbInRpbWVfcmVhZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbInVzZXIiLCJ0aW1lX3JlYWQiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1JlY2VudFRpbWVSZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCIoIl0sWzEsWzI4LCJpMThuIixbInRpbWVfcmVhZF9yZWNlbnRseSJdLFtbInRpbWVfcmVhZCJdLFtbMjQsWyJyZWNlbnRUaW1lUmVhZCJdXV1dXSxmYWxzZV0sWzAsIikiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd0NoZWNrRW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwiZW1haWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJmYXItZW52ZWxvcGUiXSxbWyJ0aXRsZSJdLFsidXNlci5lbWFpbC50aXRsZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwiZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbInVzZXIiLCJlbWFpbCJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoZWNrRW1haWwiXSxudWxsXSxbMjQsWyJ1c2VyIl1dLCJmYXItZW52ZWxvcGUiLCJhZG1pbi51c2Vycy5jaGVja19lbWFpbC50ZXh0IiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1jYXJkLW1ldGFkYXRhIixbMjgsImhhc2giLG51bGwsW1sidXNlciJdLFtbMjQsWyJ1c2VyIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWNhcmQtYWZ0ZXItbWV0YWRhdGEiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInB1YmxpY1VzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1YmxpYy11c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJwdWJsaWNVc2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywyLFsidmFsdWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJwdWJsaWMtdXNlci1maWVsZCAiLFsyMywyLFsiZmllbGQiLCJkYXNoZXJpemVkX25hbWUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItZmllbGQtbmFtZSJdLFs4XSxbMSxbMjMsMixbImZpZWxkIiwibmFtZSJdXSxmYWxzZV0sWzAsIjoiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1maWVsZC12YWx1ZSJdLFs4XSxbMSxbMjMsMixbInZhbHVlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY2FyZC1iZWZvcmUtYmFkZ2VzIixbMjgsImhhc2giLG51bGwsW1sidXNlciJdLFtbMjQsWyJ1c2VyIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0JhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJmZWF0dXJlZF91c2VyX2JhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidXNlciIsImZlYXR1cmVkX3VzZXJfYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWJhZGdlIixudWxsLFtbImJhZGdlIiwidXNlciJdLFtbMjMsMSxbImJhZGdlIl1dLFsyNCxbInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd01vcmVCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vcmUtdXNlci1iYWRnZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInVzZXIuYmFkZ2VzIixbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5tb3JlX2JhZGdlcyJdLFtbImNvdW50Il0sW1syNCxbIm1vcmVCYWRnZXNDb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3VzZXItY2FyZC1jb250ZW50cyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL2NvbmZpcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpZWxkIiwibmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzExLCJmb3IiLFsyOSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsiZmllbGQiLCJuYW1lIl1dLHRydWVdLFswLCIgICAiXSxbNCwiaWYiLFtbMjQsWyJmaWVsZCIsInJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicmVxdWlyZWQiXSxbOF0sWzAsIioiXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwgY2hlY2tib3gtbGFiZWwiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwiY2hlY2tlZCIsInR5cGUiXSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF0sWzI0LFsidmFsdWUiXV0sImNoZWNrYm94Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFswLCIgICAiXSxbNCwidW5sZXNzIixbWzI0LFsiZmllbGQiLCJuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpZWxkIiwicmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXF1aXJlZCJdLFs4XSxbMCwiKiJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1maWVsZHMvY29uZmlybSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL2Ryb3Bkb3duIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzExLCJmb3IiLFsyOSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyNCxbImZpZWxkIiwibmFtZSJdXSx0cnVlXSxbMCwiICJdLFs0LCJpZiIsW1syNCxbImZpZWxkIiwicmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXF1aXJlZCJdLFs4XSxbMCwiKiJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siaWQiLCJjb250ZW50IiwidmFsdWVQcm9wZXJ0eSIsIm5hbWVQcm9wZXJ0eSIsInZhbHVlIiwibm9uZSIsIm9uQ2hhbmdlIl0sW1syOCwiY29uY2F0IixbInVzZXItIixbMjQsWyJlbGVtZW50SWQiXV1dLG51bGxdLFsyNCxbImZpZWxkIiwib3B0aW9ucyJdXSxudWxsLG51bGwsWzI0LFsidmFsdWUiXV0sWzI0LFsibm9uZUxhYmVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidmFsdWUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWZpZWxkcy9kcm9wZG93biJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL3RleHQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTEsImZvciIsWzI5LFtbMjgsImNvbmNhdCIsWyJ1c2VyLSIsWzI0LFsiZWxlbWVudElkIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI0LFsiZmllbGQiLCJuYW1lIl1dLHRydWVdLFswLCIgIl0sWzQsImlmIixbWzI0LFsiZmllbGQiLCJyZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcXVpcmVkIl0sWzhdLFswLCIqIl0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwidmFsdWUiLCJtYXhsZW5ndGgiXSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF0sWzI0LFsidmFsdWUiXV0sWzI0LFsic2l0ZSIsInVzZXJfZmllbGRfbWF4X2xlbmd0aCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWZpZWxkcy90ZXh0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1mbGFnLXBlcmNlbnRhZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dQZXJjZW50YWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZsYWctcGVyY2VudGFnZSJdLFsxMSwidGl0bGUiLFsyNCxbInBlcmNlbnRhZ2UiLCJ0aXRsZSJdXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInBlcmNlbnRhZ2UtbGFiZWwgIixbMjQsWyJwZXJjZW50YWdlIiwiY2xhc3NOYW1lIl1dXV1dLFs4XSxbMSxbMjQsWyJwZXJjZW50YWdlIiwibGFiZWwiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsicGVyY2VudGFnZSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3VzZXItZmxhZy1wZXJjZW50YWdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXJQYXRoIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXIiLCJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzI0LFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJhdmF0YXItZmxhaXIiLG51bGwsW1siZmxhaXJVUkwiLCJmbGFpckJnQ29sb3IiLCJmbGFpckNvbG9yIiwiZ3JvdXBOYW1lIl0sW1syNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX3VybCJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9mbGFpcl9iZ19jb2xvciJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvciJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9uYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWRldGFpbCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibmFtZS1saW5lIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VybmFtZSJdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXJQYXRoIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXIiLCJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiZm9ybWF0LXVzZXJuYW1lIixbWzI0LFsidXNlciIsInVzZXJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibmFtZSJdLFs4XSxbMSxbMjgsInVuYm91bmQiLFtbMjQsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzI0LFsidXNlciIsInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjUsMV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzE0LDFdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWluZm8ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXByb2ZpbGUtYXZhdGFyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWF2YXRhciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syNCxbInVzZXIiXV0sImh1Z2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImF2YXRhci1mbGFpciIsbnVsbCxbWyJmbGFpclVSTCIsImZsYWlyQmdDb2xvciIsImZsYWlyQ29sb3IiLCJncm91cE5hbWUiXSxbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLXByb2ZpbGUtYXZhdGFyLWZsYWlyIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsidXNlciJdXV1dXSwiZGl2Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1wcm9maWxlLWF2YXRhciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItc3RhdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ2YWx1ZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNOdW1iZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsIm51bWJlciIsW1syNCxbInZhbHVlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRHVyYXRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbInZhbHVlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzIyLCJ2YWx1ZSJdLGZhbHNlXSxbMCwiXFxuICAiXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbMCwiXFxuICAiXSxbNCwiaWYiLFtbMjQsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzI0LFsiaWNvbiJdXV0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syNCxbImxhYmVsIl1dXSxbWyJjb3VudCJdLFtbMjQsWyJ2YWx1ZSJdXV1dXSx0cnVlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN0YXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN0cmVhbS1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjaGlsZCIsImdyYW5kQ2hpbGQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCBpbmZvIl0sWzhdLFswLCJcXG4gICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIml0ZW0iLCJ1c2VyVXJsIl1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjQsWyJpdGVtIiwidXNlcm5hbWUiXV1dLFsxMCwiY2xhc3MiLCJhdmF0YXItbGluayJdLFs4XSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXZhdGFyLXdyYXBwZXIiXSxbOF0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIl1dXSxbWyJpbWFnZVNpemUiLCJleHRyYUNsYXNzZXMiLCJpZ25vcmVUaXRsZSJdLFsibGFyZ2UiLCJhY3RvciIsInRydWUiXV1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidGltZSJdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsiaXRlbSIsImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkcmFmdFR5cGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRyYWZ0LXR5cGUiXSxbOF0sWzEsWzI0LFsiaXRlbSIsImRyYWZ0VHlwZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJleHBhbmQtcG9zdCIsbnVsbCxbWyJpdGVtIl0sW1syNCxbIml0ZW0iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0cmVhbS10b3BpYy1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0cmVhbS10b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiLCJkaXNhYmxlQWN0aW9ucyJdLFtbMjQsWyJpdGVtIl1dLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwicG9zdFVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIml0ZW0iLCJwb3N0VXJsIl1dXSxbOF0sWzEsWzI0LFsiaXRlbSIsInRpdGxlIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjQsWyJpdGVtIiwidGl0bGUiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5Il0sWzhdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syNCxbIml0ZW0iLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkZWxldGVkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZWxldGUtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLXRyYXNoLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIiwiZGVsZXRlZF9ieSJdXV0sW1siaW1hZ2VTaXplIiwiZXh0cmFDbGFzc2VzIiwiaWdub3JlVGl0bGUiXSxbInRpbnkiLCJhY3RvciIsInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbIml0ZW0iLCJkZWxldGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItc3RyZWFtLWl0ZW0taGVhZGVyIixbMjgsImhhc2giLG51bGwsW1siaXRlbSJdLFtbMjQsWyJpdGVtIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJhY3Rpb25EZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImV4Y2VycHQiXSxbOF0sWzEsWzIyLCJhY3Rpb25EZXNjcmlwdGlvbiJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImV4Y2VycHQiXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyOSxbWzI0LFsiaXRlbSIsInRvcGljX2lkIl1dXV1dLFsxMSwiZGF0YS1wb3N0LWlkIixbMjksW1syNCxbIml0ZW0iLCJwb3N0X2lkIl1dXV1dLFsxMSwiZGF0YS11c2VyLWlkIixbMjksW1syNCxbIml0ZW0iLCJ1c2VyX2lkIl1dXV1dLFs4XSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwiZXhwYW5kZWRFeGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbIml0ZW0iLCJleHBhbmRlZEV4Y2VycHQiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsiaXRlbSIsImV4Y2VycHQiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpdGVtIiwiY2hpbGRyZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItc3RyZWFtLWl0ZW0tYWN0aW9ucyBjaGlsZC1hY3Rpb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbImljb24iXV1dLFtbImNsYXNzIl0sWyJpY29uIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJpdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMixbInJlbW92YWJsZUJvb2ttYXJrIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IHJlbW92ZS1ib29rbWFyayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsicmVtb3ZlQm9va21hcmsiXV0sWzIzLDIsW11dXSxudWxsXSwidGltZXMiLCJib29rbWFya3MucmVtb3ZlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIzLDIsWyJ1c2VyVXJsIl1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjMsMixbInVzZXJuYW1lIl1dXSxbMTAsImNsYXNzIiwiYXZhdGFyLWxpbmsiXSxbOF0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci13cmFwcGVyIl0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzIzLDIsW11dXSxbWyJpbWFnZVNpemUiLCJleHRyYUNsYXNzZXMiLCJpZ25vcmVUaXRsZSIsImF2YXRhclRlbXBsYXRlUGF0aCJdLFsidGlueSIsImFjdG9yIiwidHJ1ZSIsImFjdGluZ19hdmF0YXJfdGVtcGxhdGUiXV1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzQsImlmIixbWzIzLDIsWyJlZGl0X3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiIOKAlCAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXQtcmVhc29uIl0sWzhdLFsxLFsyMywyLFsiZWRpdF9yZWFzb24iXV0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXRlbSIsImVkaXRhYmxlRHJhZnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItc3RyZWFtLWl0ZW0tZHJhZnQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjQsWyJyZXN1bWVEcmFmdCJdXSxbMjQsWyJpdGVtIl1dLCJwZW5jaWwtYWx0IiwiZHJhZnRzLnJlc3VtZSIsImJ0bi1kZWZhdWx0IHJlc3VtZS1kcmFmdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syNCxbInJlbW92ZURyYWZ0Il1dLFsyNCxbIml0ZW0iXV0sImZhci10cmFzaC1hbHQiLCJkcmFmdHMucmVtb3ZlIiwiYnRuLWRlZmF1bHQgcmVtb3ZlLWRyYWZ0Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN0cmVhbS1pdGVtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1zdHJlYW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsic3RyZWFtIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItc3RyZWFtLWl0ZW0iLG51bGwsW1siaXRlbSIsInJlbW92ZUJvb2ttYXJrIiwicmVzdW1lRHJhZnQiLCJyZW1vdmVEcmFmdCJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUJvb2ttYXJrIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc3VtZURyYWZ0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZURyYWZ0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdHJlYW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJxIl0sW1syNCxbInNlYXJjaFBhcmFtcyJdXV1dXSwiZnVsbC1wYWdlLXNlYXJjaCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyMiwiY291bnQiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgIOKAk1xcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXNlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0cy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJ1c2VyLnN1bW1hcnkuIixbMjQsWyJ0aXRsZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXNlY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtaW5mbyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsiY3JlYXRlZEF0Il1dXSxbWyJmb3JtYXQiLCJub1RpdGxlIl0sWyJ0aW55IiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsaWtlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgIMK3XFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImhlYXJ0Il0sbnVsbF0sZmFsc2VdLFswLCLCoCJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibGlrZS1jb3VudCJdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbImxpa2VzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJ1cmwiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjQsWyJ0b3BpYyIsImZhbmN5VGl0bGUiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWNzLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iLCImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiaXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxNCwyLFtbMjMsMSxbXV1dXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzTW9yZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsibW9yZSIsWzI4LCJjb25jYXQiLFsidXNlckFjdGl2aXR5LiIsWzI0LFsidHlwZSJdXV0sbnVsbF0sWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbInVzZXIuc3VtbWFyeS5tb3JlXyIsWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsidXNlci5zdW1tYXJ5Lm5vXyIsWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWNzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzIyLCJjb3VudENsYXNzIl1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbInVzZXIiLCJjb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXVzZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlcnMtbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidXNlciIsIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ1c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzE0LDIsW1syMywxLFtdXV1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbInVzZXIuc3VtbWFyeS4iLFsyNCxbIm5vbmUiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXVzZXJzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFUy5jb21wb3Nlcj1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJjb21wb3Nlci1ib2R5IixudWxsLFtbImNvbXBvc2VyIiwic2hvd1ByZXZpZXciLCJvcGVuSWZEcmFmdCIsInR5cGVkIiwiY2FuY2VsbGVkIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJzaG93UHJldmlldyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib3BlbklmRHJhZnQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHlwZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsbGVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncmlwcGllIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidmlzaWJsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1tZXNzYWdlcyIsbnVsbCxbWyJjb21wb3NlciIsIm1lc3NhZ2VDb3VudCIsImFkZExpbmtMb29rdXAiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibWVzc2FnZUNvdW50Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRMaW5rTG9va3VwIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInZpZXdPcGVuT3JGdWxsc2NyZWVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInJlcGx5LWFyZWEgIixbMjgsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV0sIndpdGgtdGFncyJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3Nlci1maWVsZHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiY29tcG9zZXItb3BlbiIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LXRvIl0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJ2aWV3RnVsbHNjcmVlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBseS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNvbXBvc2VyLWFjdGlvbi10aXRsZSIsbnVsbCxbWyJtb2RlbCIsIm9wZW5Db21wb3NlciIsImNsb3NlQ29tcG9zZXIiLCJjYW5XaGlzcGVyIiwidGFiaW5kZXgiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9wZW5Db21wb3NlciJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZUNvbXBvc2VyIl0sbnVsbF0sWzI0LFsiY2FuV2hpc3BlciJdXSw4XV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJub1RhZ3MiLCJhcmdzIl0sWyJjb21wb3Nlci1hY3Rpb24tYWZ0ZXIiLHRydWUsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzV2hpc3BlcmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwid2hpc3BlciJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJmYXItZXllLXNsYXNoIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1bmxpc3RUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwid2hpc3BlciJdLFs4XSxbMCwiKCJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci51bmxpc3QiXSxudWxsXSxmYWxzZV0sWzAsIikiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibm9CdW1wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuby1idW1wIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbImFuY2hvciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJsaW5rLXRvLWlucHV0IixudWxsLFtbIm9uQ2xpY2siLCJzaG93SW5wdXQiLCJpY29uIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc3BsYXlFZGl0UmVhc29uIl0sbnVsbF0sWzI0LFsic2hvd0VkaXRSZWFzb24iXV0sImluZm8tY2lyY2xlIiwiZGlzcGxheS1lZGl0LXJlYXNvbiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInRhYmluZGV4IiwiaWQiLCJtYXhsZW5ndGgiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJlZGl0UmVhc29uIl1dLCI3IiwiZWRpdC1yZWFzb24iLCIyNTUiLCJjb21wb3Nlci5lZGl0X3JlYXNvbl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci10b2dnbGVzIixudWxsLFtbImNvbXBvc2VTdGF0ZSIsInRvZ2dsZUNvbXBvc2VyIiwidG9nZ2xlVG9vbGJhciIsInRvZ2dsZUZ1bGxzY3JlZW4iXSxbWzI0LFsibW9kZWwiLCJjb21wb3NlU3RhdGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVUb29sYmFyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZ1bGxzY3JlZW5Db21wb3NlciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJ2aWV3RnVsbHNjcmVlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbkVkaXRUaXRsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlbGVjdG9yIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY29tcG9zZXItdXNlci1zZWxlY3RvciIsbnVsbCxbWyJ0b3BpY0lkIiwidXNlcm5hbWVzIiwiaGFzR3JvdXBzIiwiZm9jdXNUYXJnZXQiLCJjbGFzcyJdLFtbMjQsWyJ0b3BpY01vZGVsIiwiaWQiXV0sWzI0LFsibW9kZWwiLCJ0YXJnZXRSZWNpcGllbnRzIl1dLFsyNCxbIm1vZGVsIiwiaGFzVGFyZ2V0R3JvdXBzIl1dLFsyNCxbImZvY3VzVGFyZ2V0Il1dLCJ1c2Vycy1pbnB1dCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93V2FybmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFkZC13YXJuaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwidGFiaW5kZXgiXSxbImNoZWNrYm94IixbMjQsWyJtb2RlbCIsImlzV2FybmluZyJdXSwiMyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIuYWRkX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidGl0bGUtYW5kLWNhdGVnb3J5ICIsWzI4LCJpZiIsW1syNCxbInNob3dQcmV2aWV3Il1dLCJ3aXRoLXByZXZpZXciXSxudWxsXV1dXSxbOF0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY29tcG9zZXItdGl0bGUiLG51bGwsW1siY29tcG9zZXIiLCJsYXN0VmFsaWRhdGVkQXQiLCJmb2N1c1RhcmdldCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJsYXN0VmFsaWRhdGVkQXQiXV0sWzI0LFsiZm9jdXNUYXJnZXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInNob3dDYXRlZ29yeUNob29zZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJvbkNoYW5nZSIsImlzRGlzYWJsZWQiLCJvcHRpb25zIl0sW1syNCxbIm1vZGVsIiwiY2F0ZWdvcnlJZCJdXSwiMyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXSxbMjQsWyJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJzY29wZWRDYXRlZ29yeUlkIl0sW1syNCxbInNjb3BlZENhdGVnb3J5SWQiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwb3B1cC1pbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJjYXRlZ29yeVZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtaW5pLXRhZy1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJpc0Rpc2FibGVkIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbIm1vZGVsIiwidGFncyJdXSw0LFsyNCxbImRpc2FibGVUYWdzQ2hvb3NlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidGFncyJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJjYXRlZ29yeUlkIiwibWluaW11bSJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5SWQiXV0sWzI0LFsibW9kZWwiLCJtaW5pbXVtUmVxdWlyZWRUYWdzIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInRhZ1ZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjb21wb3Nlci1maWVsZHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1lZGl0b3IiLG51bGwsW1sidG9waWMiLCJjb21wb3NlciIsImxhc3RWYWxpZGF0ZWRBdCIsImNhbldoaXNwZXIiLCJzdG9yZVRvb2xiYXJTdGF0ZSIsIm9uUG9wdXBNZW51QWN0aW9uIiwic2hvd1VwbG9hZE1vZGFsIiwicG9wdXBNZW51T3B0aW9ucyIsImRyYWZ0U3RhdHVzIiwiaXNVcGxvYWRpbmciLCJhbGxvd1VwbG9hZCIsInVwbG9hZEljb24iLCJpc0NhbmNlbGxhYmxlIiwidXBsb2FkUHJvZ3Jlc3MiLCJncm91cHNNZW50aW9uZWQiLCJjYW5ub3RTZWVNZW50aW9uIiwiaW1wb3J0UXVvdGUiLCJ0b2dnbGVQcmV2aWV3Iiwic2hvd1Rvb2xiYXIiLCJhZnRlclJlZnJlc2giLCJmb2N1c1RhcmdldCJdLFtbMjQsWyJ0b3BpYyJdXSxbMjQsWyJtb2RlbCJdXSxbMjQsWyJsYXN0VmFsaWRhdGVkQXQiXV0sWzI0LFsiY2FuV2hpc3BlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic3RvcmVUb29sYmFyU3RhdGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25Qb3B1cE1lbnVBY3Rpb24iXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93VXBsb2FkU2VsZWN0b3IiXSxudWxsXSxbMjQsWyJwb3B1cE1lbnVPcHRpb25zIl1dLFsyNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV0sWzI0LFsiaXNVcGxvYWRpbmciXV0sWzI0LFsiYWxsb3dVcGxvYWQiXV0sWzI0LFsidXBsb2FkSWNvbiJdXSxbMjQsWyJpc0NhbmNlbGxhYmxlIl1dLFsyNCxbInVwbG9hZFByb2dyZXNzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJncm91cHNNZW50aW9uZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2Fubm90U2VlTWVudGlvbiJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJpbXBvcnRRdW90ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVQcmV2aWV3Il0sbnVsbF0sWzI0LFsic2hvd1Rvb2xiYXIiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFmdGVyUmVmcmVzaCJdLG51bGxdLFsyNCxbImZvY3VzVGFyZ2V0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJtaXQtcGFuZWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiY29tcG9zZXItZmllbGRzLWJlbG93IixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2F2ZS1vci1jYW5jZWwiXSxbOF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJtb2RlbCIsInZpZXdGdWxsc2NyZWVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1zYXZlLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJkaXNhYmxlU3VibWl0Il0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2ZUljb24iXV0sWzI0LFsic2F2ZUxhYmVsIl1dLFsyNCxbImRpc2FibGVTdWJtaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImNhbmNlbCJdLFsxMiwidGFiaW5kZXgiLCI2Il0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsiY2FuY2VsIl0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLXRyYXNoLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImNhbmNlbCJdLFsxMiwidGFiaW5kZXgiLCI2Il0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiY2FuY2VsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ3aGlzcGVyT3JVbmxpc3RUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ3aGlzcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJub0J1bXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibm8tYnVtcCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJhbmNob3IiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiaXNVcGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiZmlsZS11cGxvYWRpbmciXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzQ2FuY2VsbGFibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImlkIiwiY2FuY2VsLWZpbGUtdXBsb2FkIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsVXBsb2FkIl1dLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiZHJhZnQtc3RhdHVzIl0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsiaXNVcGxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZHJhZnRTYXZpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNwaW5uZXIgc21hbGwiXSxbOF0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJkcmFmdFNhdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImNoZWNrIl0sW1siY2xhc3MiXSxbInNhdmUtYW5pbWF0aW9uIl1dXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjksW1syNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV1dXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImRyYWZ0Q29uZmxpY3RVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJtb2RlbCIsImRyYWZ0Q29uZmxpY3RVc2VyIl1dXSxbWyJpbWFnZVNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1c2VyLWVkaXQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic3luYy1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImRyYWZ0U3RhdHVzIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImFsbG93VXBsb2FkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYnRuIGJ0bi1kZWZhdWx0IG5vLXRleHQgbW9iaWxlLWZpbGUtdXBsb2FkICIsWzI4LCJpZiIsW1syNCxbImlzVXBsb2FkaW5nIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJ1cGxvYWRJY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgbm8tdGV4dCBtb2JpbGUtcHJldmlldyJdLFsxMiwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImNvbXBvc2VyLnNob3dfcHJldmlldyJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVByZXZpZXciXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJkZXNrdG9wIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UHJldmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVQcmV2aWV3Il0sbnVsbF0sImhpZGUtcHJldmlldyIsImNvbXBvc2VyLmhpZGVfcHJldmlldyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInRvZ2dsZS1wcmV2aWV3Il0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUHJldmlldyJdXSxbOF0sWzEsWzIyLCJ0b2dnbGVUZXh0Il0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2F2aW5nLXRleHQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY3JlYXRlZFBvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci5zYXZlZCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsInBlcm1hbGluayJdLFsxMiwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJjcmVhdGVkUG9zdCIsInVybCJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidmlld05ld1JlcGx5Il1dLFs4XSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIudmlld19uZXdfcG9zdCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIuc2F2aW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJsb2FkaW5nLXNwaW5uZXIiLG51bGwsW1sic2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZHJhZnQtdGV4dCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hhcmUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsImRyYWZ0VGl0bGUiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci5zYXZlZF9kcmFmdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImNvbXBvc2VyLXRvZ2dsZXMiLG51bGwsW1siY29tcG9zZVN0YXRlIiwidG9nZ2xlRnVsbHNjcmVlbiIsInRvZ2dsZUNvbXBvc2VyIiwidG9nZ2xlVG9vbGJhciJdLFtbMjQsWyJtb2RlbCIsImNvbXBvc2VTdGF0ZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib3BlbklmRHJhZnQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVRvb2xiYXIiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb3NlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb3Nlci9jdXN0b20tYm9keSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibWVzc2FnZSIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lc3NhZ2UiLCJ0aXRsZSJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lc3NhZ2UiLCJib2R5Il1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvc2VyL2N1c3RvbS1ib2R5In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvc2VyL2VkdWNhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzEsWzI0LFsibWVzc2FnZSIsImJvZHkiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb3Nlci9lZHVjYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9zZXIvZ3JvdXAtbWVudGlvbmVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJjbG9zZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlTWVzc2FnZSJdXSxbOF0sWzEsWzI4LCJkLWljb24iLFsidGltZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbMSxbMjQsWyJtZXNzYWdlIiwiYm9keSJdXSx0cnVlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvc2VyL2dyb3VwLW1lbnRpb25lZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb3Nlci9zaW1pbGFyLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNvbXBvc2VyLnNpbWlsYXJfdG9waWNzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwibW91bnQtd2lkZ2V0IixudWxsLFtbIndpZGdldCIsImFyZ3MiXSxbInNlYXJjaC1yZXN1bHQtdG9waWMiLFsyOCwiaGFzaCIsbnVsbCxbWyJyZXN1bHRzIl0sW1syNCxbIm1lc3NhZ2UiLCJzaW1pbGFyVG9waWNzIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9zZXIvc2ltaWxhci10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFUy5kaXNjb3Zlcnk9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvckh0bWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJlcnJvckh0bWwiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZGlzY291cnNlLWJhbm5lciIsbnVsbCxbWyJ1c2VyIiwiYmFubmVyIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLFsyNCxbInNpdGUiLCJiYW5uZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwib3V0bGV0IixbIm5hdmlnYXRpb24tYmFyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY29udGFpbmVyIGxpc3QtY29udGFpbmVyICIsWzI4LCJpZiIsW1syNCxbImxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdWxsLXdpZHRoIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJoZWFkZXItbGlzdC1hcmVhIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJvdXRsZXQiLFsiaGVhZGVyLWxpc3QtY29udGFpbmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtd2lkdGgiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImxpc3QtYXJlYSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiZGlzY292ZXJ5LWxpc3QtY29udGFpbmVyLXRvcCIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5IiwibGlzdExvYWRpbmciXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsibG9hZGluZyJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsIm91dGxldCIsWyJsaXN0LWNvbnRhaW5lciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImRpc2NvdmVyeS1iZWxvdyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImRpc2NvdmVyeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJkaXNjb3ZlcnkvY2F0ZWdvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImRpc2NvdmVyeS1jYXRlZ29yaWVzIixudWxsLFtbInJlZnJlc2giXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsiY2F0ZWdvcnlQYWdlU3R5bGUiXV1dLFtbImNhdGVnb3JpZXMiLCJsYXRlc3RUb3BpY09ubHkiLCJ0b3BpY3MiXSxbWzI0LFsibW9kZWwiLCJjYXRlZ29yaWVzIl1dLFsyNCxbImxhdGVzdFRvcGljT25seSJdXSxbMjQsWyJtb2RlbCIsInRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJkaXNjb3ZlcnkvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJkaXNjb3ZlcnkvdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJkaXNjb3ZlcnlUb3BpY0xpc3QiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJlZGlyZWN0ZWRSZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzEsWzIyLCJyZWRpcmVjdGVkUmVhc29uIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzQXRUb3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0Rpc21pc3NSZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iLCJ0aXRsZSIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLXRvcGljcy10b3AiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLW5ldy10b3AiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJjaGVjayIsInRvcGljcy5idWxrLmRpc21pc3NfbmV3Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic2hhcmVkRHJhZnRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidG9waWMtbGlzdCIsbnVsbCxbWyJjbGFzcyIsImxpc3RUaXRsZSIsInRvcCIsImhpZGVDYXRlZ29yeSIsImNhdGVnb3J5IiwidG9waWNzIiwiZGlzY292ZXJ5TGlzdCJdLFsic2hhcmVkLWRyYWZ0cyIsInNoYXJlZF9kcmFmdHMudGl0bGUiLFsyNCxbInRvcCJdXSwidHJ1ZSIsWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsibW9kZWwiLCJzaGFyZWREcmFmdHMiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImJ1bGstc2VsZWN0LWJ1dHRvbiIsbnVsbCxbWyJzZWxlY3RlZCIsImFjdGlvbiIsImNhdGVnb3J5Il0sW1syNCxbInNlbGVjdGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoIl0sbnVsbF0sWzI0LFsiY2F0ZWdvcnkiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiZGlzY292ZXJ5LXRvcGljcy1saXN0IixudWxsLFtbIm1vZGVsIiwicmVmcmVzaCIsImluY29taW5nQ291bnQiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidG9wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1saXN0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJhY3Rpb24iXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQZXJpb2QiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImhhc0luY29taW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJzaG93LW1vcmUgIixbMjgsImlmIixbWzI0LFsiaGFzVG9waWNzIl1dLCJoYXMtdG9waWNzIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gY2xpY2thYmxlIl0sWzEyLCJ0YWJpbmRleCIsIjAiXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93SW5zZXJ0ZWQiXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsInN1ZmZpeCIsImNvdW50Il0sWyJ0b3BpY19jb3VudF8iLFsyNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImZpbHRlciJdXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNUb3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1siaGlnaGxpZ2h0TGFzdFZpc2l0ZWQiLCJ0b3AiLCJzaG93VG9waWNQb3N0QmFkZ2VzIiwic2hvd1Bvc3RlcnMiLCJjYW5CdWxrU2VsZWN0IiwiY2hhbmdlU29ydCIsInRvZ2dsZUJ1bGtTZWxlY3QiLCJoaWRlQ2F0ZWdvcnkiLCJvcmRlciIsImFzY2VuZGluZyIsImJ1bGtTZWxlY3RFbmFibGVkIiwic2VsZWN0ZWQiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsImNhdGVnb3J5IiwidG9waWNzIiwiZGlzY292ZXJ5TGlzdCIsInNjcm9sbE9uTG9hZCIsIm9uU2Nyb2xsIl0sW3RydWUsWzI0LFsidG9wIl1dLFsyNCxbInNob3dUb3BpY1Bvc3RCYWRnZXMiXV0sdHJ1ZSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VTb3J0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUJ1bGtTZWxlY3QiXSxudWxsXSxbMjQsWyJtb2RlbCIsImhpZGVDYXRlZ29yeSJdXSxbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2NlbmRpbmciXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsiZXhwYW5kR2xvYmFsbHlQaW5uZWQiXV0sWzI0LFsiZXhwYW5kQWxsUGlubmVkIl1dLFsyNCxbImNhdGVnb3J5Il1dLFsyNCxbIm1vZGVsIiwidG9waWNzIl1dLHRydWUsdHJ1ZSxbMjMsMSxbInNhdmVTY3JvbGxQb3NpdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxpc3QtYm90dG9tIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWxsTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwidGl0bGUiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgZGlzbWlzcy1yZWFkIiwiZGlzbWlzcy10b3BpY3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImlkIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJkaXNtaXNzLW5ldyIsImNoZWNrIiwidG9waWNzLmJ1bGsuZGlzbWlzc19uZXciXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJmb290ZXItbWVzc2FnZSIsbnVsbCxbWyJlZHVjYXRpb24iLCJtZXNzYWdlIl0sW1syNCxbImZvb3RlckVkdWNhdGlvbiJdXSxbMjQsWyJmb290ZXJNZXNzYWdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibGF0ZXN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMuc3VnZ2VzdF9jcmVhdGVfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiwgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5sYXRlc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJmaWx0ZXJzLnRvcC5vdGhlcl9wZXJpb2RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidG9wLXBlcmlvZC1idXR0b25zIixudWxsLFtbInBlcmlvZCIsImFjdGlvbiJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImRpc2NvdmVyeS90b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siZW1haWwtbG9naW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgZW1haWwtbG9naW4gY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtbGVmdCBjb2wtaW1hZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW1nIix0cnVlXSxbMTEsInNyYyIsWzIyLCJsb2NrSW1hZ2VVcmwiXV0sWzEwLCJjbGFzcyIsInBhc3N3b3JkLXJlc2V0LWltZyJdLFs4XSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLWxlZnQgY29sLWZvcm0iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZXJyb3IiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2xvZ2luIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlY29uZEZhY3RvclJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJzZWN1cml0eS1rZXktZm9ybSIsbnVsbCxbWyJhbGxvd2VkQ3JlZGVudGlhbElkcyIsImNoYWxsZW5nZSIsInNob3dTZWN1cml0eUtleSIsInNob3dTZWNvbmRGYWN0b3IiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJvdGhlck1ldGhvZEFsbG93ZWQiLCJhY3Rpb24iXSxbWzI0LFsibW9kZWwiLCJhbGxvd2VkX2NyZWRlbnRpYWxfaWRzIl1dLFsyNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X2NoYWxsZW5nZSJdXSxbMjQsWyJtb2RlbCIsInNlY3VyaXR5X2tleV9yZXF1aXJlZCJdXSxmYWxzZSxbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsic2Vjb25kRmFjdG9yUmVxdWlyZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInNlY29uZC1mYWN0b3ItZm9ybSIsbnVsbCxbWyJzZWNvbmRGYWN0b3JNZXRob2QiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJtb2RlbCIsImJhY2t1cF9jb2Rlc19lbmFibGVkIl1dLHRydWVdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInNlY29uZC1mYWN0b3ItaW5wdXQiLG51bGwsW1sidmFsdWUiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJiYWNrdXBFbmFibGVkIl0sW1syNCxbInNlY29uZEZhY3RvclRva2VuIl1dLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImVtYWlsX2xvZ2luLmNvbmZpcm1fdGl0bGUiXSxbWyJzaXRlX25hbWUiXSxbWzI0LFsic2l0ZVNldHRpbmdzIiwidGl0bGUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImVtYWlsX2xvZ2luLmxvZ2dpbmdfaW5fYXMiXSxbWyJlbWFpbCJdLFtbMjQsWyJtb2RlbCIsInRva2VuX2VtYWlsIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiIsInR5cGUiLCJjbGFzcyJdLFsiZW1haWxfbG9naW4uY29uZmlybV9idXR0b24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hMb2dpbiJdLG51bGxdLCJzdWJtaXQiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImVtYWlsLWxvZ2luIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZW1vamktcGlja2VyLXJlY2VudCJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgIDxidXR0b24gc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaS5zcmMiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjQwfSxlbmQ6e2xpbmU6Mixjb2x1bW46NTN9fX0pKSsnXCcpIiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppLmNvZGUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjEwNn0sZW5kOntsaW5lOjIsY29sdW1uOjEyMH19fSkpKyciPjwvYnV0dG9uPlxuJ30sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppIiwiaW4iLCJyZWNlbnRFbW9qaXMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Myxjb2x1bW46OX19fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZW1vamktcGlja2VyIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIiAgICAgIDxkaXYgY2xhc3M9J3NlY3Rpb24nIGRhdGEtc2VjdGlvbj0ndW5ncm91cGVkJz5cbiAgICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1oZWFkZXInPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5jdXN0b20iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM0NjcsY29sdW1uOjMwfSxlbmQ6e2xpbmU6MzQ2Nyxjb2x1bW46NjB9fX0pKSsiPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1ncm91cCc+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppIiwiaW4iLCJjdXN0b21FbW9qaXMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDcwLGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0NzIsY29sdW1uOjE5fX19KSk/bzoiIikrIiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgICAgICAgPGJ1dHRvbiBzdHlsZT0iYmFja2dyb3VuZC11cmw6IHVybCgiJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppLnNyYyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ3MSxjb2x1bW46NDh9LGVuZDp7bGluZTozNDcxLGNvbHVtbjo2MX19fSkpKyciKSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaS5jb2RlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDcxLGNvbHVtbjoxMTR9LGVuZDp7bGluZTozNDcxLGNvbHVtbjoxMjh9fX0pKSsnIj48L2J1dHRvbj5cbid9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nPGRpdiBjbGFzcz1cJ2NhdGVnb3JpZXMtY29sdW1uXCc+XG4gIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIucmVjZW50Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo2MX0sZW5kOntsaW5lOjMsY29sdW1uOjkxfX19KSkrJyIgZGF0YS1zZWN0aW9uPSJyZWNlbnQiIGRhdGEtdGFiaWNvbj0ic3RhciI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImdyaW5uaW5nIiBkYXRhLXNlY3Rpb249InNtaWxleXNfJl9lbW90aW9uIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuc21pbGV5c18mX2Vtb3Rpb24iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjgsY29sdW1uOjExOH0sZW5kOntsaW5lOjgsY29sdW1uOjE1OX19fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJ3YXZlIiBkYXRhLXNlY3Rpb249InBlb3BsZV8mX2JvZHkiIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5wZW9wbGVfJl9ib2R5Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMixjb2x1bW46MTEwfSxlbmQ6e2xpbmU6MTIsY29sdW1uOjE0N319fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJldmVyZ3JlZW5fdHJlZSIgZGF0YS1zZWN0aW9uPSJhbmltYWxzXyZfbmF0dXJlIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuYW5pbWFsc18mX25hdHVyZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjEyM30sZW5kOntsaW5lOjE2LGNvbHVtbjoxNjN9fX0pKSsnIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGRpdiBjbGFzcz1cJ2NhdGVnb3J5LWljb25cJz5cbiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIiB0YWJpbmRleD0iLTEiIGRhdGEtdGFiaWNvbj0iaGFtYnVyZ2VyIiBkYXRhLXNlY3Rpb249ImZvb2RfJl9kcmluayIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmZvb2RfJl9kcmluayIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAsY29sdW1uOjExNH0sZW5kOntsaW5lOjIwLGNvbHVtbjoxNTB9fX0pKSsnIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGRpdiBjbGFzcz1cJ2NhdGVnb3J5LWljb25cJz5cbiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIiB0YWJpbmRleD0iLTEiIGRhdGEtdGFiaWNvbj0iYWlycGxhbmUiIGRhdGEtc2VjdGlvbj0idHJhdmVsXyZfcGxhY2VzIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIudHJhdmVsXyZfcGxhY2VzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNCxjb2x1bW46MTE2fSxlbmQ6e2xpbmU6MjQsY29sdW1uOjE1NX19fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJzb2NjZXIiIGRhdGEtc2VjdGlvbj0iYWN0aXZpdGllcyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmFjdGl2aXRpZXMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI4LGNvbHVtbjoxMDl9LGVuZDp7bGluZToyOCxjb2x1bW46MTQzfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImV5ZWdsYXNzZXMiIGRhdGEtc2VjdGlvbj0ib2JqZWN0cyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLm9iamVjdHMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMyLGNvbHVtbjoxMTB9LGVuZDp7bGluZTozMixjb2x1bW46MTQxfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249IndoaXRlX2NoZWNrX21hcmsiIGRhdGEtc2VjdGlvbj0ic3ltYm9scyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnN5bWJvbHMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM2LGNvbHVtbjoxMTZ9LGVuZDp7bGluZTozNixjb2x1bW46MTQ3fX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImNoZWNrZXJlZF9mbGFnIiBkYXRhLXNlY3Rpb249ImZsYWdzIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZmxhZ3MiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQwLGNvbHVtbjoxMTJ9LGVuZDp7bGluZTo0MCxjb2x1bW46MTQxfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuXG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgICA8YnV0dG9uIGRhdGEtdGFiaWNvbj0iZ2ltcCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS1zZWN0aW9uPSJ1bmdyb3VwZWQiIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5jdXN0b20iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ2LGNvbHVtbjoxMDh9LGVuZDp7bGluZTo0Nixjb2x1bW46MTM4fX19KSkrIlwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbjwvZGl2PlxuXG48ZGl2IGNsYXNzPSdtYWluLWNvbHVtbic+XG4gIDxkaXYgY2xhc3M9J2ZpbHRlcic+XG4gICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic2VhcmNoIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUzLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NTMsY29sdW1uOjIzfX19KSkrJ1xuICAgIDxpbnB1dCB0eXBlPVwndGV4dFwnIG5hbWU9ImZpbHRlciIgcGxhY2Vob2xkZXI9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmZpbHRlcl9wbGFjZWhvbGRlciIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NTQsY29sdW1uOjUwfSxlbmQ6e2xpbmU6NTQsY29sdW1uOjkyfX19KSkrJyIgYXV0b2NvbXBsZXRlPSJkaXNjb3Vyc2UiLz5cbiAgICA8YnV0dG9uIGNsYXNzPVwnY2xlYXItZmlsdGVyXCc+XG4gICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0aW1lcyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1Nixjb2x1bW46Nn0sZW5kOntsaW5lOjU2LGNvbHVtbjoyNH19fSkpKyJcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ncmVzdWx0cyc+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0nbGlzdCc+XG4gICAgPGRpdiBjbGFzcz0nc2VjdGlvbicgZGF0YS1zZWN0aW9uPSdyZWNlbnQnPlxuICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1oZWFkZXInPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+IitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIucmVjZW50Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2NSxjb2x1bW46Mjh9LGVuZDp7bGluZTo2NSxjb2x1bW46NTh9fX0pKSsiPC9zcGFuPlxuICAgICAgICA8YSBocmVmPScjJyBjbGFzcz0nY2xlYXItcmVjZW50Jz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0cmFzaC1hbHQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjYsY29sdW1uOjQxfSxlbmQ6e2xpbmU6NjYsY29sdW1uOjYzfX19KSkrIjwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1ncm91cCc+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9J3NlY3Rpb24nIGRhdGEtc2VjdGlvbj0nc21pbGV5c18mX2Vtb3Rpb24nPlxuICAgICAgICA8ZGl2IGNsYXNzPSdzZWN0aW9uLWhlYWRlcic+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnNtaWxleXNfJl9lbW90aW9uIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3NCxjb2x1bW46MzB9LGVuZDp7bGluZTo3NCxjb2x1bW46NzF9fX0pKSsnPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24tZ3JvdXBcJz5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmlubmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21pbGV5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF1Z2hpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3ZWF0X3NtaWxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb2ZsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqb3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsaWdodGx5X3NtaWxpbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXBzaWRlX2Rvd25fZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2luayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmx1c2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imlubm9jZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsaW5nX2ZhY2Vfd2l0aF90aHJlZV9oZWFydHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXJ0X2V5ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXJfc3RydWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWxheGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX2Nsb3NlZF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX3NtaWxpbmdfZXllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieXVtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcmF6eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlX2Nsb3NlZF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb25leV9tb3V0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJodWdzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3dpdGhfaGFuZF9vdmVyX21vdXRoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaHVzaGluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aGlua2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemlwcGVyX21vdXRoX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9yYWlzZWRfZXllYnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmV1dHJhbF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJleHByZXNzaW9ubGVzcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fbW91dGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtaXJrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1bmFtdXNlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icm9sbF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmltYWNpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imx5aW5nX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlbGlldmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW5zaXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbGVlcHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyb29saW5nX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsZWVwaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3dpdGhfdGhlcm1vbWV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5hdXNlYXRlZF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3ZvbWl0aW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmVlemluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3RfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29sZF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b296eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXp6eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJleHBsb2RpbmdfaGVhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY293Ym95X2hhdF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJ0eWluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5nbGFzc2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXJkX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9tb25vY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25mdXNlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29ycmllZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xpZ2h0bHlfZnJvd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJvd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl9tb3V0aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaHVzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhc3RvbmlzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbHVzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwbGVhZGluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcm93bmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5ndWlzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZWFyZnVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2xkX3N3ZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic29iIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JlYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbmZvdW5kZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlcnNldmVyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGlzYXBwb2ludGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2VhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpcmVkX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inlhd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpdW1waCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5ncnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9zeW1ib2xzX292ZXJfbW91dGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtaWxpbmdfaW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNrdWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza3VsbF9hbmRfY3Jvc3Nib25lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9vcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvd25fZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFwYW5lc2Vfb2dyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFwYW5lc2VfZ29ibGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaG9zdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWxpZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWNlX2ludmFkZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvYm90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZXlfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZV9jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpveV9jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXJ0X2V5ZXNfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlya19jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imtpc3NpbmdfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JlYW1fY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcnlpbmdfY2F0X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdXRpbmdfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWVfbm9fZXZpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcl9ub19ldmlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVha19ub19ldmlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb3ZlX2xldHRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3VwaWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdpZnRfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGluZ19oZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRwdWxzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRiZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXZvbHZpbmdfaGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0d29faGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFydF9kZWNvcmF0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWF2eV9oZWFydF9leGNsYW1hdGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJva2VuX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3JhbmdlX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZWVuX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibHVlX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyb3duX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19oZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjEwMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5nZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvb20iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRpenp5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VhdF9kcm9wcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9sZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9tYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BlZWNoX2JhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxlZnRfc3BlZWNoX2J1YmJsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmlnaHRfYW5nZXJfYnViYmxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aG91Z2h0X2JhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inp6eiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3Blb3BsZV8mX2JvZHlcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5wZW9wbGVfJl9ib2R5Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNzksY29sdW1uOjMwfSxlbmQ6e2xpbmU6Mzc5LGNvbHVtbjo2N319fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaXNlZF9iYWNrX29mX2hhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzZWRfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idnVsY2FuX3NhbHV0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2tfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGluY2hpbmdfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9maW5nZXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb3ZlX3lvdV9nZXN0dXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZXRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsbF9tZV9oYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2ludF9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2ludF9yaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9pbnRfdXBfMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvaW50X2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvaW50X3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSIrMSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iLTEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2VwdW5jaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlzdF9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXN0X3JpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbGFwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzZWRfaGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9wZW5faGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhbG1zX3VwX3RvZ2V0aGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoYW5kc2hha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndyaXRpbmdfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmFpbF9jYXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWxmaWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2NsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVjaGFuaWNhbF9hcm0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lY2hhbmljYWxfbGVnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcl93aXRoX2hlYXJpbmdfYWlkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3NlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9vdGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9uZ3VlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaXBzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWJ5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGlsZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhZHVsdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmxvbmRlX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWFyZGVkX3BlcnNvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3JlZF9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9jdXJseV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aGl0ZV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9iYWxkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcmVkX2hhaXJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fY3VybHlfaGFpcmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl93aGl0ZV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2JhbGQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsb25kZV93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkZXJfYWR1bHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9sZGVyX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkZXJfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyb3duaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJvd25pbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdXRpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb3V0aW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19nb29kX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fZ29vZF93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2tfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJva193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlwcGluZ19oYW5kX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlwcGluZ19oYW5kX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzaW5nX2hhbmRfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzaW5nX2hhbmRfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlYWZfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkZWFmX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9mYWNlcGFsbWluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZmFjZXBhbG1pbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zaHJ1Z2dpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3NocnVnZ2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2hlYWx0aF93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2hlYWx0aF93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zdHVkZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9zdHVkZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fdGVhY2hlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fdGVhY2hlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2p1ZGdlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9qdWRnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2Zhcm1lciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZmFybWVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fY29vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fY29vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX21lY2hhbmljIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9tZWNoYW5pYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2ZhY3Rvcnlfd29ya2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9mYWN0b3J5X3dvcmtlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX29mZmljZV93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX29mZmljZV93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zY2llbnRpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3NjaWVudGlzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3RlY2hub2xvZ2lzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fdGVjaG5vbG9naXN0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fc2luZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9zaW5nZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9hcnRpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2FydGlzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3BpbG90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9waWxvdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2FzdHJvbmF1dCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fYXN0cm9uYXV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fZmlyZWZpZ2h0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2ZpcmVmaWdodGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2xpY2VtYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvbGljZXdvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWxlX2RldGVjdGl2ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmVtYWxlX2RldGVjdGl2ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3VhcmRzbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWFyZHN3b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uc3RydWN0aW9uX3dvcmtlcl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbnN0cnVjdGlvbl93b3JrZXJfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByaW5jZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHJpbmNlc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aXRoX3R1cmJhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fd2l0aF90dXJiYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aXRoX2d1YV9waV9tYW8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3dpdGhfaGVhZHNjYXJmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fdHV4ZWRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmlkZV93aXRoX3ZlaWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZWduYW50X3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmVhc3RfZmVlZGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5nZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhbnRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtcnNfY2xhdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1cGVyaGVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3N1cGVyaGVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fc3VwZXJoZXJvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXBlcnZpbGxhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zdXBlcnZpbGxhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3N1cGVydmlsbGFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fbWFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFpcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InZhbXBpcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lcm1haWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lcm1hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnZW5pZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZ2VuaWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InpvbWJpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fem9tYmllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXNzYWdlX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFzc2FnZV93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFpcmN1dF9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhaXJjdXRfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhbGtpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YWxraW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fc3RhbmRpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3N0YW5kaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fa25lZWxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2tuZWVsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3dpdGhfcHJvYmluZ19jYW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fbW90b3JpemVkX3doZWVsY2hhaXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fbWFudWFsX3doZWVsY2hhaXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2luX21hbnVhbF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJydW5uaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icnVubmluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFuY2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fZGFuY2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkYW5jaW5nX3dvbWVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkYW5jaW5nX21lbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2luX3N0ZWFteV9yb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9pbl9zdGVhbXlfcm9vbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2NsaW1iaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9jbGltYmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2ZlbmNpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvcnNlX3JhY2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2tpZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dib2FyZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnb2xmaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29sZmluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VyZmluZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1cmZpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvd2luZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvd2luZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dpbW1pbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2ltbWluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFza2V0YmFsbF9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhc2tldGJhbGxfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndlaWdodF9saWZ0aW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2VpZ2h0X2xpZnRpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJpa2luZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJpa2luZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRhaW5fYmlraW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRhaW5fYmlraW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fY2FydHdoZWVsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9jYXJ0d2hlZWxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lbl93cmVzdGxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWVuX3dyZXN0bGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcGxheWluZ193YXRlcl9wb2xvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fcGxheWluZ19oYW5kYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcGxheWluZ19oYW5kYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2p1Z2dsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9qdWdnbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xlZXBpbmdfYmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW9wbGVfaG9sZGluZ19oYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHdvX3dvbWVuX2hvbGRpbmdfaGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHdvX21lbl9ob2xkaW5nX2hhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVraXNzX21hbl93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY291cGxla2lzc19tYW5fbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVraXNzX3dvbWFuX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVfd2l0aF9oZWFydF93b21hbl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZV93aXRoX2hlYXJ0X21hbl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X21hbl93b21hbl9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2JveV9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fbWFuX2dpcmxfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9naXJsX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fZ2lybF9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fYm95X2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X3dvbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl9naXJsX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X3dvbWFuX2dpcmxfZ2lybCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BlYWtpbmdfaGVhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzdF9pbl9zaWxob3VldHRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidXN0c19pbl9zaWxob3VldHRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb290cHJpbnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnYW5pbWFsc18mX25hdHVyZVwnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1oZWFkZXJcJz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUiPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmFuaW1hbHNfJl9uYXR1cmUiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjkwNixjb2x1bW46MzB9LGVuZDp7bGluZTo5MDYsY29sdW1uOjcwfX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9ua2V5X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmtleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29yaWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Jhbmd1dGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvZzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1aWRlX2RvZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2VydmljZV9kb2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvb2RsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29sZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm94X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2Nvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2F0MiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpZ2VyMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVvcGFyZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9yc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2Vob3JzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pY29ybiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemVicmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdGVyX2J1ZmZhbG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlnMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9hciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlnX25vc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hlZXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyb21lZGFyeV9jYW1lbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxsYW1hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaXJhZmZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbGVwaGFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmhpbm9jZXJvcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlwcG9wb3RhbXVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91c2UyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbXN0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhYmJpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFiYml0MiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hpcG11bmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlZGdlaG9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtvYWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5kYV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG90aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3R0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNrdW5rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrYW5nYXJvbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFkZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXdfcHJpbnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXJrZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoaWNrZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvb3N0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhdGNoaW5nX2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWJ5X2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoYXRjaGVkX2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW5ndWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb3ZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlYWdsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3dsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGFtaW5nbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVhY29jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFycm90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcm9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcm9jb2RpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1cnRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGl6YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmFrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJhZ29uX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyYWdvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F1cm9wb2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRfcmV4Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGFsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hhbGUyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb2xwaGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cm9waWNhbF9maXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibG93ZmlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hhcmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9jdG9wdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnV0dGVyZmx5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9uZXliZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3JpY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BpZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGlkZXJfd2ViIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY29ycGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9zcXVpdG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1pY3JvYmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdXF1ZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZXJyeV9ibG9zc29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvc2V0dGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndpbHRlZF9mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhpYmlzY3VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsb3Nzb20iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1bGlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWVkbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXZlcmdyZWVuX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlY2lkdW91c190cmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWxtX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhY3R1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWFyX29mX3JpY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlcmIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoYW1yb2NrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb3VyX2xlYWZfY2xvdmVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXBsZV9sZWFmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWxsZW5fbGVhZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVhdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnZm9vZF8mX2RyaW5rXCc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWhlYWRlclwnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZSI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZm9vZF8mX2RyaW5rIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMTY5LGNvbHVtbjozMH0sZW5kOntsaW5lOjExNjksY29sdW1uOjY2fX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JhcGVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZWxvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2F0ZXJtZWxvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFuZ2VyaW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZW1vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuYW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwaW5lYXBwbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbmdvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcHBsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlZW5fYXBwbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlYWNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVycmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RyYXdiZXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2l3aV9mcnVpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9tYXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2NvbnV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhdm9jYWRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlZ2dwbGFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG90YXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXJyb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdF9wZXBwZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1Y3VtYmVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWFmeV9ncmVlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJvY2NvbGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhcmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib25pb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2hyb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZWFudXRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVzdG51dCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyb2lzc2FudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFndWV0dGVfYnJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZXR6ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhZ2VsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5jYWtlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2FmZmxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVlc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lYXRfb25fYm9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG91bHRyeV9sZWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1dF9vZl9tZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWNvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtYnVyZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGl6emEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdGRvZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FuZHdpY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhY28iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cnJpdG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0dWZmZWRfZmxhdGJyZWFkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWxhZmVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlZ2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyaWVkX2VnZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hhbGxvd19wYW5fb2ZfZm9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RldyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm93bF93aXRoX3Nwb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9zYWxhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9wY29ybiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnV0dGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYWx0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYW5uZWRfZm9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVudG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJpY2VfY3JhY2tlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmljZV9iYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyaWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFtZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWdoZXR0aSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dlZXRfcG90YXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvZGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXNoaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJpZWRfc2hyaW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXNoX2Nha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vb25fY2FrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFuZ28iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImR1bXBsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb3J0dW5lX2Nvb2tpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFrZW91dF9ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyYWIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvYnN0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNocmltcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3F1aWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im95c3RlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWNlY3JlYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoYXZlZF9pY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImljZV9jcmVhbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG91Z2hudXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvb2tpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlydGhkYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cGNha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hvY29sYXRlX2JhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FuZHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvbGxpcG9wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXN0YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob25leV9wb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhYnlfYm90dGxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWxrX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2ZmZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhbXBhZ25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5lX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2NrdGFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJvcGljYWxfZHJpbmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbGlua2luZ19nbGFzc2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dW1ibGVyX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXBfd2l0aF9zdHJhdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmV2ZXJhZ2VfYm94Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXTDqSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWNlX2N1YmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNob3BzdGlja3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBsYXRlX3dpdGhfY3V0bGVyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9ya19hbmRfa25pZmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob2NobyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW1waG9yYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3RyYXZlbF8mX3BsYWNlc1wnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1oZWFkZXJcJz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUiPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnRyYXZlbF8mX3BsYWNlcyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQyMCxjb2x1bW46MzB9LGVuZDp7bGluZToxNDIwLGNvbHVtbjo2OX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhcnRoX2FmcmljYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWFydGhfYW1lcmljYXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhcnRoX2FzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imdsb2JlX3dpdGhfbWVyaWRpYW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b3JsZF9tYXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphcGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb21wYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbl9zbm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idm9sY2FubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRfZnVqaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtcGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVhY2hfdW1icmVsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlc2VydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGVzZXJ0X2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmF0aW9uYWxfcGFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhZGl1bSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhc3NpY2FsX2J1aWxkaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidWlsZGluZ19jb25zdHJ1Y3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VzZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlcmVsaWN0X2hvdXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG91c2Vfd2l0aF9nYXJkZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9mZmljZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9zdF9vZmZpY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV1cm9wZWFuX3Bvc3Rfb2ZmaWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3NwaXRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG90ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvdmVfaG90ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbnZlbmllbmNlX3N0b3JlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2hvb2wiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlcGFydG1lbnRfc3RvcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY3RvcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphcGFuZXNlX2Nhc3RsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXVyb3BlYW5fY2FzdGxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3ZWRkaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b2t5b190b3dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhdHVlX29mX2xpYmVydHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNodXJjaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9zcXVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoaW5kdV90ZW1wbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN5bmFnb2d1ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpbnRvX3NocmluZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2FhYmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvdW50YWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb2dneSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmlnaHRfd2l0aF9zdGFycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2l0eXNjYXBlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5yaXNlX292ZXJfbW91bnRhaW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5yaXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaXR5X3N1bnNldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2l0eV9zdW5yaXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmlkZ2VfYXRfbmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdHNwcmluZ3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcm91c2VsX2hvcnNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZXJyaXNfd2hlZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbGxlcl9jb2FzdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXJiZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNpcmN1c190ZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdGVhbV9sb2NvbW90aXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlsd2F5X2NhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsbGV0dHJhaW5fc2lkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsbGV0dHJhaW5fZnJvbnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYWluMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWV0cm8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpZ2h0X3JhaWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXRpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbm9yYWlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbl9yYWlsd2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbmNvbWluZ19idXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyb2xsZXlidXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1pbmlidXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFtYnVsYW5jZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlyZV9lbmdpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvbGljZV9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX3BvbGljZV9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRheGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX3RheGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlZF9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX2F1dG9tb2JpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsdWVfY2FyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cnVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0aWN1bGF0ZWRfbG9ycnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYWN0b3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2luZ19jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdG9yY3ljbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdG9yX3Njb290ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbnVhbF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3Rvcml6ZWRfd2hlZWxjaGFpciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXV0b19yaWNrc2hhdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2lja19zY29vdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza2F0ZWJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidXNzdG9wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3RvcndheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFpbHdheV90cmFjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2lsX2RydW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZ1ZWxwdW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb3RhdGluZ19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJhZmZpY19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmVydGljYWxfdHJhZmZpY19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcF9zaWduIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25zdHJ1Y3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFuY2hvciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FpbGJvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbm9lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVlZGJvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhc3Nlbmdlcl9zaGlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW90b3JfYm9hdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWlycGxhbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtYWxsX2FpcnBsYW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGlnaHRfZGVwYXJ0dXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGlnaHRfYXJyaXZhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFyYWNodXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWxpY29wdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXNwZW5zaW9uX3JhaWx3YXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdW50YWluX2NhYmxld2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhZXJpYWxfdHJhbXdheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0aWZpY2lhbF9zYXRlbGxpdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmx5aW5nX3NhdWNlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVsbGhvcF9iZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsdWdnYWdlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VyZ2xhc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdXJnbGFzc19mbG93aW5nX3NhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdGNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbGFybV9jbG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcHdhdGNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aW1lcl9jbG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFudGVscGllY2VfY2xvY2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb2NrMTIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb2NrMTIzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazEzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2syIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazIzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2szIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazMzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazQzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazUzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s2Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazYzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s3Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazczMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s4Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazgzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazkzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxMDMwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazExIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazExMzAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld19tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXhpbmdfY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlyc3RfcXVhcnRlcl9tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXhpbmdfZ2liYm91c19tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmdWxsX21vb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhbmluZ19naWJib3VzX21vb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxhc3RfcXVhcnRlcl9tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YW5pbmdfY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmV3X21vb25fd2l0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJzdF9xdWFydGVyX21vb25fd2l0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRoZXJtb21ldGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5ueSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnVsbF9tb29uX3dpdGhfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VuX3dpdGhfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmluZ2VyX3BsYW5ldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhcjIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWxreV93YXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJ0bHlfc3VubnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkX3dpdGhfbGlnaHRuaW5nX2FuZF9yYWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX3NtYWxsX2Nsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX2xhcmdlX2Nsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX3JhaW5fY2xvdWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkX3dpdGhfcmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvdWRfd2l0aF9zbm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG91ZF93aXRoX2xpZ2h0bmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9ybmFkbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5kX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN5Y2xvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaW5ib3ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3NlZF91bWJyZWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl91bWJyZWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW1icmVsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcmFzb2xfb25fZ3JvdW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6YXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dmbGFrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic25vd21hbl93aXRoX3Nub3ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dtYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbWV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkcm9wbGV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvY2VhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ2FjdGl2aXRpZXNcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5hY3Rpdml0aWVzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxODQ5LGNvbHVtbjozMH0sZW5kOntsaW5lOjE4NDksY29sdW1uOjY0fX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFja19vX2xhbnRlcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNocmlzdG1hc190cmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJld29ya3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJlY3JhY2tlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BhcmtsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhZGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbmZldHRpX2JhbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhbmFiYXRhX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbWJvbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG9sbHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsYWdzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5kX2NoaW1lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyaWNlX3NjZW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfZ2lmdF9lbnZlbG9wZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmliYm9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZW1pbmRlcl9yaWJib24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpY2tldHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVkYWxfbWlsaXRhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyb3BoeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVkYWxfc3BvcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSIxc3RfcGxhY2VfbWVkYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjJuZF9wbGFjZV9tZWRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iM3JkX3BsYWNlX21lZGFsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2NjZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhc2ViYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2Z0YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFza2V0YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idm9sbGV5YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9vdGJhbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ1Z2J5X2Zvb3RiYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZW5uaXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZseWluZ19kaXNjIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcmlja2V0X2JhdF9hbmRfYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmllbGRfaG9ja2V5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpY2VfaG9ja2V5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsYWNyb3NzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGluZ19wb25nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWRtaW50b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJveGluZ19nbG92ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFydGlhbF9hcnRzX3VuaWZvcm0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdvYWxfbmV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnb2xmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpY2Vfc2thdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpc2hpbmdfcG9sZV9hbmRfZmlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGl2aW5nX21hc2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ1bm5pbmdfc2hpcnRfd2l0aF9zYXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza2kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cmxpbmdfc3RvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InlvLXlvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSI4YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3J5c3RhbF9iYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuYXphcl9hbXVsZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZpZGVvX2dhbWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpveXN0aWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG90X21hY2hpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhbWVfZGllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqaWdzYXciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlZGR5X2JlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWRlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaWFtb25kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2x1YnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZXNzX3Bhd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2pva2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWhqb25nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbG93ZXJfcGxheWluZ19jYXJkcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyZm9ybWluZ19hcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmFtZWRfcGljdHVyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aHJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inlhcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIFxuICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb25cJyBkYXRhLXNlY3Rpb249XCdvYmplY3RzXCc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWhlYWRlclwnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZSI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIub2JqZWN0cyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAxNixjb2x1bW46MzB9LGVuZDp7bGluZToyMDE2LGNvbHVtbjo2MX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZWdsYXNzZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhcmtfc3VuZ2xhc3NlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29nZ2xlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFiX2NvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhZmV0eV92ZXN0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZWNrdGllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0c2hpcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImplYW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2FyZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2xvdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2NrcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJlc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtpbW9ubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FyaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib25lX3BpZWNlX3N3aW1zdWl0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmllZnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNob3J0cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlraW5pIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbnNfY2xvdGhlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHVyc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbmRiYWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdWNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaG9wcGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2Nob29sX3NhdGNoZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbnNfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXRobGV0aWNfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlraW5nX2Jvb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsYXRfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlnaF9oZWVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYW5kYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxldF9zaG9lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9vdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuc19oYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRvcGhhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9ydGFyX2JvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaWxsZWRfY2FwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXNjdWVfd29ya2VyX2hlbG1ldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHJheWVyX2JlYWRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaXBzdGljayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVha2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb3VuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG91ZF9zb3VuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG91ZHNwZWFrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lZ2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvc3RhbF9ob3JuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19iZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXNpY2FsX3Njb3JlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXNpY2FsX25vdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVkaW9fbWljcm9waG9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGV2ZWxfc2xpZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb250cm9sX2tub2JzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWNyb3Bob25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFkcGhvbmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWRpbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F4b3Bob25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWl0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2ljYWxfa2V5Ym9hcmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRydW1wZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZpb2xpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuam8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRydW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlwaG9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGhvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlbGVwaG9uZV9yZWNlaXZlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZheCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0dGVyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxlY3RyaWNfcGx1ZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29tcHV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlc2t0b3BfY29tcHV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByaW50ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtleWJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb21wdXRlcl9tb3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJhY2tiYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaW5pZGlzYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmxvcHB5X2Rpc2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkdmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiYWN1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW92aWVfY2FtZXJhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxtX3N0cmlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxtX3Byb2plY3RvciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhcHBlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHYiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbWVyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtZXJhX2ZsYXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aWRlb19jYW1lcmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZocyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWdfcmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmxhc2hsaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaXpha2F5YV9sYW50ZXJuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXlhX2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvc2VkX2Jvb2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9wZW5fYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlZW5fYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmx1ZV9ib29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2VfYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9va3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVib29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWRnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhZ2Vfd2l0aF9jdXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JvbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhZ2VfZmFjaW5nX3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXdzcGFwZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld3NwYXBlcl9yb2xsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib29rbWFya190YWJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib29rbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFiZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmV5YmFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvbGxhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG91bmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmV5X3dpdGhfd2luZ3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyZWRpdF9jYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWNlaXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3VycmVuY3lfZXhjaGFuZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X2RvbGxhcl9zaWduIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbWFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZS1tYWlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmNvbWluZ19lbnZlbG9wZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZW52ZWxvcGVfd2l0aF9hcnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3V0Ym94X3RyYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImluYm94X3RyYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhY2thZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1haWxib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1haWxib3hfY2xvc2VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWlsYm94X3dpdGhfbWFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFpbGJveF93aXRoX25vX21haWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvc3Rib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvdF9ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlbmNpbDIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX25pYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm91bnRhaW5fcGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhaW50YnJ1c2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyYXlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVtbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJpZWZjYXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxlX2ZvbGRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl9maWxlX2ZvbGRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FyZF9pbmRleF9kaXZpZGVycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGF0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsZW5kYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwaXJhbF9ub3RlcGFkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGlyYWxfY2FsZW5kYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcmRfaW5kZXgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYXJ0X3dpdGhfdXB3YXJkc190cmVuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhcnRfd2l0aF9kb3dud2FyZHNfdHJlbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhcl9jaGFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xpcGJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXNocGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb3VuZF9wdXNocGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXBlcmNsaXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcGVyY2xpcHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0cmFpZ2h0X3J1bGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmlhbmd1bGFyX3J1bGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2lzc29ycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FyZF9maWxlX2JveCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlsZV9jYWJpbmV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXN0ZWJhc2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5sb2NrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb2NrX3dpdGhfaW5rX3BlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvc2VkX2xvY2tfd2l0aF9rZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkX2tleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtbWVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJheGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpY2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbW1lcl9hbmRfcGljayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtbWVyX2FuZF93cmVuY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhZ2dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9zd29yZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1biI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm93X2FuZF9hcnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpZWxkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3cmVuY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im51dF9hbmRfYm9sdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGFuY2Vfc2NhbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByb2JpbmdfY2FuZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGluayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhaW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b29sYm94Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWduZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFsZW1iaWMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlc3RfdHViZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGV0cmlfZGlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWNyb3Njb3BlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZWxlc2NvcGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhdGVsbGl0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3lyaW5nZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJvcF9vZl9ibG9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWRoZXNpdmVfYmFuZGFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RldGhvc2NvcGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY291Y2hfYW5kX2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b2lsZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNob3dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0aHR1YiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmF6b3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvdGlvbl9ib3R0bGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhZmV0eV9waW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXNrZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbGxfb2ZfdG9pbGV0X3BhcGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2FwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcG9uZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpcmVfZXh0aW5ndWlzaGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaG9wcGluZ19jYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbW9raW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2ZmaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZ1bmVyYWxfdXJuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3lhaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3N5bWJvbHNcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5zeW1ib2xzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNDkxLGNvbHVtbjozMH0sZW5kOntsaW5lOjI0OTEsY29sdW1uOjYxfX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXRtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXRfbGl0dGVyX2luX2l0c19wbGFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG90YWJsZV93YXRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hlZWxjaGFpciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVucyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tZW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXN0cm9vbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFieV9zeW1ib2wiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndjIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXNzcG9ydF9jb250cm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXN0b21zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWdnYWdlX2NsYWltIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0X2x1Z2dhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Indhcm5pbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoaWxkcmVuX2Nyb3NzaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19lbnRyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fZW50cnlfc2lnbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fYmljeWNsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vX3Ntb2tpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvX25vdF9saXR0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vbi1wb3RhYmxlX3dhdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19wZWRlc3RyaWFucyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fbW9iaWxlX3Bob25lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5kZXJhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhZGlvYWN0aXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaW9oYXphcmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cHBlcl9yaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfcmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2xvd2VyX3JpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19kb3duIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19sb3dlcl9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cHBlcl9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cF9kb3duIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0X3JpZ2h0X2Fycm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0d2FyZHNfYXJyb3dfd2l0aF9ob29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19yaWdodF9ob29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19oZWFkaW5nX3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19oZWFkaW5nX2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93c19jbG9ja3dpc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93c19jb3VudGVyY2xvY2t3aXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBsYWNlX29mX3dvcnNoaXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF0b21fc3ltYm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3Rhcl9vZl9kYXZpZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hlZWxfb2ZfZGhhcm1hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5aW5feWFuZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF0aW5fY3Jvc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9ydGhvZG94X2Nyb3NzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdGFyX2FuZF9jcmVzY2VudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVhY2Vfc3ltYm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZW5vcmFoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaXhfcG9pbnRlZF9zdGFyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGF1cnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnZW1pbmkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmNlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aXJnbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGlicmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNjb3JwaXVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYWdpdHRhcml1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2Fwcmljb3JuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcXVhcml1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlzY2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcGhpdWNodXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR3aXN0ZWRfcmlnaHR3YXJkc19hcnJvd3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlcGVhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmVwZWF0X29uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZm9yd2FyZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFzdF9mb3J3YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXh0X3RyYWNrX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGxheV9vcl9wYXVzZV9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2JhY2t3YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXdpbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZXZpb3VzX3RyYWNrX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfdXBfc21hbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2RvdWJsZV91cCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZG93bl9zbWFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZG91YmxlX2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhdXNlX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcF9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlY29yZF9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNpbmVtYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG93X2JyaWdodG5lc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhpZ2hfYnJpZ2h0bmVzcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2lnbmFsX3N0cmVuZ3RoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aWJyYXRpb25fbW9kZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9iaWxlX3Bob25lX29mZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaW5maW5pdHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlY3ljbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsZXVyX2RlX2xpcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpZGVudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmFtZV9iYWRnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVnaW5uZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndoaXRlX2NoZWNrX21hcmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvdF9ib3hfd2l0aF9jaGVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhdnlfY2hlY2tfbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhdnlfbXVsdGlwbGljYXRpb25feCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmVnYXRpdmVfc3F1YXJlZF9jcm9zc19tYXJrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWF2eV9wbHVzX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X21pbnVzX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X2RpdmlzaW9uX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cmx5X2xvb3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxvb3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcnRfYWx0ZXJuYXRpb25fbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWlnaHRfc3Bva2VkX2FzdGVyaXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlaWdodF9wb2ludGVkX2JsYWNrX3N0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbmdiYW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbnRlcnJvYmFuZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icXVlc3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZXlfcXVlc3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZXlfZXhjbGFtYXRpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV4Y2xhbWF0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXZ5X2Rhc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvcHlyaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmVnaXN0ZXJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imhhc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFzdGVyaXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6ZXJvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR3byI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGhyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvdXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpdmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpeCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2V2ZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuaW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrZXljYXBfdGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXBpdGFsX2FiY2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiY2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjEyMzQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN5bWJvbHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb29sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmZvcm1hdGlvbl9zb3VyY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcmtpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrb2tvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTY3MDgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU2NzA5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1NjMwNyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWRlb2dyYXBoX2FkdmFudGFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTUyNzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU3MTIxIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1Nzk4MSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWNjZXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1NzUzMyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTU0MDgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU3YTdhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25ncmF0dWxhdGlvbnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNlY3JldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTU1YjYiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU2ZTgwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2VfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9jaXJjbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxhcmdlX2JsdWVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicm93bl9jaXJjbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2NpcmNsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2Vfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsdWVfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicm93bl9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2xhcmdlX3NxdWFyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfbGFyZ2Vfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19tZWRpdW1fc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9tZWRpdW1fc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19tZWRpdW1fc21hbGxfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9tZWRpdW1fc21hbGxfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19zbWFsbF9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndoaXRlX3NtYWxsX3NxdWFyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFyZ2Vfb3JhbmdlX2RpYW1vbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxhcmdlX2JsdWVfZGlhbW9uZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21hbGxfb3JhbmdlX2RpYW1vbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtYWxsX2JsdWVfZGlhbW9uZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21hbGxfcmVkX3RyaWFuZ2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWFsbF9yZWRfdHJpYW5nbGVfZG93biI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFkaW9fYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9zcXVhcmVfYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19zcXVhcmVfYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnZmxhZ3NcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5mbGFncyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjkyNixjb2x1bW46MzB9LGVuZDp7bGluZToyOTI2LGNvbHVtbjo1OX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZWNrZXJlZF9mbGFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmlhbmd1bGFyX2ZsYWdfb25fcG9zdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9mbGFncyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmxhY2tfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFpbmJvd19mbGFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwaXJhdGVfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXNjZW5zaW9uX2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5kb3JyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pdGVkX2FyYWJfZW1pcmF0ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFmZ2hhbmlzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbnRpZ3VhX2JhcmJ1ZGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFuZ3VpbGxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbGJhbmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcm1lbmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbmdvbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFudGFyY3RpY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFyZ2VudGluYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW1lcmljYW5fc2Ftb2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF1c3RyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF1c3RyYWxpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ1YmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFsYW5kX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF6ZXJiYWlqYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvc25pYV9oZXJ6ZWdvdmluYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFyYmFkb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbmdsYWRlc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlbGdpdW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cmtpbmFfZmFzbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsZ2FyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhaHJhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cnVuZGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlbmluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9iYXJ0aGVsZW15Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZXJtdWRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicnVuZWkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvbGl2aWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcmliYmVhbl9uZXRoZXJsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJhemlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWhhbWFzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaHV0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdXZldF9pc2xhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdHN3YW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxhcnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxpemUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmFkYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29jb3NfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uZ29fa2luc2hhc2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNlbnRyYWxfYWZyaWNhbl9yZXB1YmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uZ29fYnJhenphdmlsbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3aXR6ZXJsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3RlX2Rpdm9pcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvb2tfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbWVyb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29sb21iaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsaXBwZXJ0b25faXNsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3N0YV9yaWNhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdWJhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXBlX3ZlcmRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXJhY2FvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaHJpc3RtYXNfaXNsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjeXBydXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN6ZWNoX3JlcHVibGljIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGllZ29fZ2FyY2lhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkamlib3V0aSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGVubWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG9taW5pY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvbWluaWNhbl9yZXB1YmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWxnZXJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2V1dGFfYW5kX21lbGlsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVjdWFkb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVzdG9uaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVneXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3ZXN0ZXJuX3NhaGFyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXJpdHJlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV0aGlvcGlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJldSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlubGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlqaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFsa2xhbmRfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWljcm9uZXNpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFyb2VfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhYm9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1ayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlbmFkYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VvcmdpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJlbmNoX2d1aWFuYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3Vlcm5zZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdoYW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaWJyYWx0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZWVubGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2FtYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWluZWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1YWRlbG91cGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVxdWF0b3JpYWxfZ3VpbmVhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX2dlb3JnaWFfc291dGhfc2FuZHdpY2hfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3VhdGVtYWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWFtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWluZWFfYmlzc2F1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndXlhbmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imhvbmdfa29uZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcmRfYW5kX21jX2RvbmFsZF9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob25kdXJhcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3JvYXRpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFpdGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imh1bmdhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmFyeV9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmRvbmVzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyZWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlzcmFlbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaXNsZV9vZl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImluZGlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicml0aXNoX2luZGlhbl9vY2Vhbl90ZXJyaXRvcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyYXEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImljZWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Iml0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqZXJzZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphbWFpY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpvcmRhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ianAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtlbnlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJreXJneXpzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYW1ib2RpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2lyaWJhdGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbW9yb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X2tpdHRzX25ldmlzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3J0aF9rb3JlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imt1d2FpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2F5bWFuX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImthemFraHN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxhb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxlYmFub24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X2x1Y2lhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaWVjaHRlbnN0ZWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcmlfbGFua2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpYmVyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxlc290aG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpdGh1YW5pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibHV4ZW1ib3VyZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF0dmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaWJ5YSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9yb2NjbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9uYWNvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb2xkb3ZhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb250ZW5lZ3JvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9tYXJ0aW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hZGFnYXNjYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hcnNoYWxsX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hY2Vkb25pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFsaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibXlhbm1hciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9uZ29saWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hY2F1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3J0aGVybl9tYXJpYW5hX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hcnRpbmlxdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hdXJpdGFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbnRzZXJyYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbHRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXVyaXRpdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbGRpdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWxhd2kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1leGljbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFsYXlzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vemFtYmlxdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5hbWliaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld19jYWxlZG9uaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5pZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3Jmb2xrX2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmlnZXJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmljYXJhZ3VhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXRoZXJsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9yd2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXBhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmF1cnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5pdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld196ZWFsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5hbWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlcnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyZW5jaF9wb2x5bmVzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcHVhX25ld19ndWluZWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBoaWxpcHBpbmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWtpc3RhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9sYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9waWVycmVfbWlxdWVsb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpdGNhaXJuX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InB1ZXJ0b19yaWNvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWxlc3Rpbmlhbl90ZXJyaXRvcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9ydHVnYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhbGF1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJhZ3VheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icWF0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJldW5pb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbWFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNlcmJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ3YW5kYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F1ZGlfYXJhYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2xvbW9uX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNleWNoZWxsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1ZGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VkZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpbmdhcG9yZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RfaGVsZW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG92ZW5pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3ZhbGJhcmRfYW5kX2phbl9tYXllbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xvdmFraWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpZXJyYV9sZW9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FuX21hcmlubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2VuZWdhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic29tYWxpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VyaW5hbWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX3N1ZGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYW9fdG9tZV9wcmluY2lwZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxfc2FsdmFkb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpbnRfbWFhcnRlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3lyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3YXppbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpc3Rhbl9kYV9jdW5oYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHVya3NfY2FpY29zX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyZW5jaF9zb3V0aGVybl90ZXJyaXRvcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9nbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGhhaWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhamlraXN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRva2VsYXUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpbW9yX2xlc3RlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXJrbWVuaXN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1bmlzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRvbmdhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpbmlkYWRfdG9iYWdvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXZhbHUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhaXdhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFuemFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVrcmFpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVnYW5kYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXNfb3V0bHlpbmdfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pdGVkX25hdGlvbnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1cnVndWF5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1emJla2lzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2YXRpY2FuX2NpdHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X3ZpbmNlbnRfZ3JlbmFkaW5lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmVuZXp1ZWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1c192aXJnaW5faXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmlldG5hbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmFudWF0dSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2FsbGlzX2Z1dHVuYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2Ftb2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imtvc292byI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieWVtZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1heW90dGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX2FmcmljYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemFtYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6aW1iYWJ3ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImN1c3RvbUVtb2ppcy5sZW5ndGgiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDY0LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MzQ3NSxjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0nZm9vdGVyJz5cbiAgICA8ZGl2IGNsYXNzPSdpbmZvJz48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSdkaXZlcnNpdHktcGlja2VyJz5cbiAgICAgIFxuICAgICAgICA8YSBocmVmPScjJyB0aXRsZT1cIiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmRlZmF1bHRfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ4MSxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDgxLGNvbHVtbjo2M319fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIGRlZmF1bHRcJyBkYXRhLWxldmVsPSIxIj5cbiAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjaGVjayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDgyLGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0ODIsY29sdW1uOjI4fX19KSkrIlxuICAgICAgICA8L2E+XG4gICAgICBcbiAgICAgICAgPGEgaHJlZj0nIycgdGl0bGU9XCIiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5saWdodF90b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDg1LGNvbHVtbjoyN30sZW5kOntsaW5lOjM0ODUsY29sdW1uOjYxfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgbGlnaHRcJyBkYXRhLWxldmVsPSIyIj5cbiAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjaGVjayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDg2LGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0ODYsY29sdW1uOjI4fX19KSkrIlxuICAgICAgICA8L2E+XG4gICAgICBcbiAgICAgICAgPGEgaHJlZj0nIycgdGl0bGU9XCIiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5tZWRpdW1fbGlnaHRfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ4OSxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDg5LGNvbHVtbjo2OH19fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIG1lZGl1bS1saWdodFwnIGRhdGEtbGV2ZWw9IjMiPlxuICAgICAgICAgICcrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNoZWNrIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM0OTAsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MzQ5MCxjb2x1bW46Mjh9fX0pKSsiXG4gICAgICAgIDwvYT5cbiAgICAgIFxuICAgICAgICA8YSBocmVmPScjJyB0aXRsZT1cIiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLm1lZGl1bV90b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDkzLGNvbHVtbjoyN30sZW5kOntsaW5lOjM0OTMsY29sdW1uOjYyfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgbWVkaXVtXCcgZGF0YS1sZXZlbD0iNCI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2hlY2siLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5NCxjb2x1bW46MTB9LGVuZDp7bGluZTozNDk0LGNvbHVtbjoyOH19fSkpKyJcbiAgICAgICAgPC9hPlxuICAgICAgXG4gICAgICAgIDxhIGhyZWY9JyMnIHRpdGxlPVwiIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIubWVkaXVtX2RhcmtfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5Nyxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDk3LGNvbHVtbjo2N319fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIG1lZGl1bS1kYXJrXCcgZGF0YS1sZXZlbD0iNSI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2hlY2siLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5OCxjb2x1bW46MTB9LGVuZDp7bGluZTozNDk4LGNvbHVtbjoyOH19fSkpKyJcbiAgICAgICAgPC9hPlxuICAgICAgXG4gICAgICAgIDxhIGhyZWY9JyMnIHRpdGxlPVwiIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZGFya190b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNTAxLGNvbHVtbjoyN30sZW5kOntsaW5lOjM1MDEsY29sdW1uOjYwfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgZGFya1wnIGRhdGEtbGV2ZWw9IjYiPlxuICAgICAgICAgICcrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNoZWNrIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM1MDIsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MzUwMixjb2x1bW46Mjh9fX0pKSsiXG4gICAgICAgIDwvYT5cbiAgICAgIFxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJlbW9qaS1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iICAgICAgPGxpPlxuICAgICAgICA8YSBocmVmPlxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLnNyYyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUucHJvZ3JhbSg0LHMsMCksdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoxMH0sZW5kOntsaW5lOjExLGNvbHVtbjoxN319fSkpP286IiIpKyIgICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICAgIDxpbWcgc3JjPSIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24uc3JjIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3LGNvbHVtbjoyMX0sZW5kOntsaW5lOjcsY29sdW1uOjM1fX19KSkrIiBjbGFzcz0nZW1vamknPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2Vtb2ppLXNob3J0bmFtZSc+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbi5jb2RlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjo0Mn0sZW5kOntsaW5lOjgsY29sdW1uOjU3fX19KSkrIjwvc3Bhbj5cbiJ9LDQ6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbi5sYWJlbCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTAsY29sdW1uOjEyfSxlbmQ6e2xpbmU6MTAsY29sdW1uOjI4fX19KSkrIlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtZW1vamknPlxuICA8dWw+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbiIsImluIiwib3B0aW9ucyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZToxNCxjb2x1bW46MTN9fX0pKT9vOiIiKSsiICA8L3VsPlxuPC9kaXY+XG4ifSx1c2VEYXRhOiEwfSksRW1iZXIuVEVNUExBVEVTLmV4Y2VwdGlvbj1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJ1dHRvbkRhdGEiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVycm9yLXBhZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmFjZSJdLFs4XSxbMCwiOigiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmVhc29uIl0sWzhdLFsxLFsyMiwicmVhc29uIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1cmwiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJlcnJvcnMucHJldl9wYWdlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJyZXF1ZXN0VXJsIl1dLFsxMCwiZGF0YS1hdXRvLXJvdXRlIiwidHJ1ZSJdLFs4XSxbMSxbMjIsInJlcXVlc3RVcmwiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm5ldHdvcmtGaXhlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjaGVjay1jaXJjbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjIsImRlc2MiXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYnV0dG9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJlbmFibGVkQnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syMywxLFsiaWNvbiJdXSxbMjMsMSxbImFjdGlvbiJdXSxbMjMsMSxbImtleSJdXSxbMjMsMSxbImNsYXNzZXMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImV4Y2VwdGlvbiJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImZsYXQtYnV0dG9uIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHtjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIjxidXR0b24gY2xhc3M9J2J0bi1mbGF0ICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MjR9LGVuZDp7bGluZToxLGNvbHVtbjozM319fSkpKyInIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljcy5idWxrLnRvZ2dsZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46NDJ9LGVuZDp7bGluZToxLGNvbHVtbjo3MX19fSkpKyInPlxuICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJpY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoyfSxlbmQ6e2xpbmU6Mixjb2x1bW46MTd9fX0pKSsiXG48L2J1dHRvbj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbImZ1bGwtcGFnZS1zZWFyY2giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInJlc3VsdCIsInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJjbGFzcyJdLFsic2VhcmNoIiwic2VhcmNoLWNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInNjcm9sbC10cmFja2VyIixudWxsLFtbIm5hbWUiLCJ0YWciLCJjbGFzcyJdLFsiZnVsbC1wYWdlLXNlYXJjaCIsWzI0LFsic2VhcmNoVGVybSJdXSwiaGlkZGVuIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC1hZHZhbmNlZCJdLFs4XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWJhciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC10ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiY2xhc3MiLCJlbnRlciIsImhhc0F1dG9mb2N1cyJdLFtbMjQsWyJzZWFyY2hUZXJtIl1dLCJmdWxsLXBhZ2Utc2VhcmNoIHNlYXJjaCBuby1ibHVyIHNlYXJjaC1xdWVyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlYXJjaCJdLG51bGxdLFsyNCxbImhhc0F1dG9mb2N1cyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF0sInNlYXJjaCIsImJ0bi1wcmltYXJ5IHNlYXJjaC1jdGEiLFsyNCxbInNlYXJjaEJ1dHRvbkRpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtbm90aWNlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpbnZhbGlkU2VhcmNoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmcHMtaW52YWxpZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2gudG9vX3Nob3J0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFswLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC1jb250ZXh0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjb250ZXh0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmcHMtc2VhcmNoLWNvbnRleHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwibmFtZSIsImNoZWNrZWQiXSxbImNoZWNrYm94Iiwic2VhcmNoQ29udGV4dCIsWzI0LFsic2VhcmNoQ29udGV4dEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJzZWFyY2hDb250ZXh0RGVzY3JpcHRpb24iXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC10aXRsZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiY3JlYXRlLXRvcGljLWJ1dHRvbiIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImFjdGlvbiJdLFtbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlVG9waWMiLFsyNCxbInNlYXJjaFRlcm0iXV1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkJ1bGtTZWxlY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsInRpdGxlIiwiYWN0aW9uIl0sWyJsaXN0IiwiYnRuLWRlZmF1bHQgYnVsay1zZWxlY3QiLCJ0b3BpY3MuYnVsay50b2dnbGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCdWxrU2VsZWN0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJidWxrLXNlbGVjdC1idXR0b24iLG51bGwsW1sic2VsZWN0ZWQiLCJhY3Rpb24iXSxbWzI0LFsic2VsZWN0ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlYXJjaCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImJ1bGtTZWxlY3RFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZwcy1zZWxlY3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0QWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyQWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmNsZWFyX2FsbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmVzdWx0LWNvdW50Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzIyLCJyZXN1bHRDb3VudExhYmVsIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzb3J0LWJ5Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNvcnRfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJjYXN0SW50ZWdlciIsIm9uQ2hhbmdlIl0sW1syNCxbInNvcnRPcmRlciJdXSxbMjQsWyJzb3J0T3JkZXJzIl1dLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzb3J0T3JkZXIiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJmdWxsLXBhZ2Utc2VhcmNoLWJlbG93LXNlYXJjaC1pbmZvIixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoIl0sW1syNCxbInNlYXJjaFRlcm0iXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2VhcmNoaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLXJlc3VsdHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5mcHMtcmVzdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJwb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZwcy1yZXN1bHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGhvciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMywxLFsidXNlclBhdGgiXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syMywxLFtdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZnBzLXRvcGljIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRyYWNrLXNlbGVjdGVkIixudWxsLFtbInNlbGVjdGVkTGlzdCIsInNlbGVjdGVkSWQiXSxbWzI0LFsic2VsZWN0ZWQiXV0sWzIzLDEsWyJ0b3BpYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiY2xhc3MiLCJzZWFyY2gtbGluayJdLFsxMiwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsMSxbInVybCJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwibG9nQ2xpY2siLFsyMywxLFsidG9waWNfaWQiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiLCJkaXNhYmxlQWN0aW9ucyJdLFtbMjMsMSxbInRvcGljIl1dLHRydWVdXV0sZmFsc2VdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtdGl0bGUiXSxbOF0sWzQsImhpZ2hsaWdodC10ZXh0IixudWxsLFtbImhpZ2hsaWdodCJdLFtbMjQsWyJxIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ0b3BpYyIsImZhbmN5VGl0bGUiXV1dLG51bGxdLHRydWVdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiXV1dLFtbImhpZGVQYXJlbnQiXSxbdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJ0b3BpYyIsInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMixbXV1dLFtbImlzUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsiaXNQcml2YXRlTWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImZ1bGwtcGFnZS1zZWFyY2gtY2F0ZWdvcnkiLFsyOCwiaGFzaCIsbnVsbCxbWyJyZXN1bHQiXSxbWzIzLDEsW11dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJsdXJiIGNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkYXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZm9ybWF0LWFnZSIsW1syMywxLFsiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImJsdXJiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgIC1cXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMSxbImJsdXJiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJoaWdobGlnaHQtdGV4dCIsbnVsbCxbWyJoaWdobGlnaHQiXSxbWzI0LFsiaGlnaGxpZ2h0UXVlcnkiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidW5ib3VuZCIsW1syMywxLFsiYmx1cmIiXV1dLG51bGxdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xpa2VDb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImxpa2VfY291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJsaWtlLWNvdW50Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJsaWtlX2NvdW50Il1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbImhlYXJ0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJoYXNSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlYXJjaEFjdGl2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2gubm9fcmVzdWx0cyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZ3JvdXBlZF9zZWFyY2hfcmVzdWx0IiwiZXJyb3IiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZ3JvdXBlZF9zZWFyY2hfcmVzdWx0IiwiZXJyb3IiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3VnZ2VzdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLXJlc3VsdHMtc3VnZ2VzdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmNhbnRfZmluZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIixbMjQsWyJzZWFyY2hUZXJtIl1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guc3RhcnRfbmV3X3RvcGljIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGVTZXR0aW5ncyIsImxvZ2luX3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLm9yX3NlYXJjaF9nb29nbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5zZWFyY2hfZ29vZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJnb29nbGUtc2VhcmNoIixudWxsLFtbInNlYXJjaFRlcm0iXSxbWzI0LFsic2VhcmNoVGVybSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJncm91cGVkX3NlYXJjaF9yZXN1bHQiLCJtb3JlX2Z1bGxfcGFnZV9yZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzTGFzdFBhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLm1vcmVfcmVzdWx0cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5ub19tb3JlX3Jlc3VsdHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbIm1lZGl1bSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYWR2YW5jZWQtc2lkZWJhciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYmFyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwic2VhcmNoLXRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJjbGFzcyIsImVudGVyIiwiaGFzQXV0b2ZvY3VzIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sImZ1bGwtcGFnZS1zZWFyY2ggc2VhcmNoIG5vLWJsdXIgc2VhcmNoLXF1ZXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF0sWzI0LFsiaGFzQXV0b2ZvY3VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJjbGFzcyIsImRpc2FibGVkIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWFyY2giXSxudWxsXSwic2VhcmNoIiwiYnRuLXByaW1hcnkgc2VhcmNoLWN0YSIsWzI0LFsic2VhcmNoQnV0dG9uRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsic2VhcmNoLWFkdmFuY2VkLXRpdGxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQWR2YW5jZWRTZWFyY2giXSxudWxsXSxbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImNhcmV0LWRvd24iLCJjYXJldC1yaWdodCJdLG51bGxdLCJzZWFyY2guYWR2YW5jZWQudGl0bGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWFkdmFuY2VkLXRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJleHBhbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWFkdmFuY2VkLWZpbHRlcnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC1hZHZhbmNlZC1vcHRpb25zIixudWxsLFtbInNlYXJjaFRlcm0iLCJpc0V4cGFuZGVkIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sWzI0LFsiZXhwYW5kZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYWR2YW5jZWQtZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC1hZHZhbmNlZC1vcHRpb25zIixudWxsLFtbInNlYXJjaFRlcm0iLCJpc0V4cGFuZGVkIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiIsImljb24iLCJjbGFzcyIsImRpc2FibGVkIl0sWyJzdWJtaXQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWFyY2giXSxudWxsXSwic2VhcmNoIiwiYnRuLXByaW1hcnkgc2VhcmNoLWN0YSIsWzI0LFsic2VhcmNoQnV0dG9uRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJmdWxsLXBhZ2Utc2VhcmNoIn19KSxFbWJlci5URU1QTEFURVNbImdyb3VwLWFjdGl2aXR5LXBvc3RzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwb3N0Il0sInN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIudXNlci1zdHJlYW0taXRlbSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1zdHJlYW0iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtcG9zdCIsbnVsbCxbWyJwb3N0IiwiY2xhc3MiXSxbWzIzLDEsW11dLCJ1c2VyLXN0cmVhbS1pdGVtIGl0ZW0iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI0LFsiZW1wdHlUZXh0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwLWFjdGl2aXR5LXBvc3RzIn19KSxFbWJlci5URU1QTEFURVNbImdyb3VwLWFjdGl2aXR5LXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJjbGFzcyIsInNlbGVjdG9yIiwiYWN0aW9uIl0sWyJwYWdpbmF0ZWQtdG9waWNzLWxpc3QiLCIucGFnaW5hdGVkLXRvcGljcy1saXN0IC50b3BpYy1saXN0IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYmFzaWMtdG9waWMtbGlzdCIsbnVsbCxbWyJ0b3BpY0xpc3QiLCJzaG93UG9zdGVycyJdLFtbMjQsWyJtb2RlbCJdXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC1hY3Rpdml0eS10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAtaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIm0iXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVycy1hY3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfbWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJhdXRvY29tcGxldGUiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSxbMjQsWyJmaWx0ZXJQbGFjZWhvbGRlciJdXSwiZGlzY291cnNlIiwiZ3JvdXAtdXNlcm5hbWUtZmlsdGVyIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1lbWJlcnMtbWFuYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwibGFiZWwiLCJjbGFzcyJdLFsicGx1cyIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0FkZE1lbWJlcnNNb2RhbCJdLG51bGxdLCJncm91cHMuYWRkX21lbWJlcnMudGl0bGUiLCJncm91cC1tZW1iZXJzLWFkZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImFjdGlvbiIsImxhYmVsIiwiY2xhc3MiXSxbInBsdXMiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dCdWxrQWRkTW9kYWwiXSxudWxsXSwiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLnRpdGxlIiwiZ3JvdXAtYnVsay1hZGQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgdHIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImdyb3VwLWluZGV4LXRvZ2dsZSIsbnVsbCxbWyJvcmRlciIsImRlc2MiLCJmaWVsZCIsImkxOG5LZXkiXSxbWzI0LFsib3JkZXIiXV0sWzI0LFsiZGVzYyJdXSwidXNlcm5hbWVfbG93ZXIiLCJ1c2VybmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW93bmVyIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWVtYmVycy5vd25lciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJncm91cC1pbmRleC10b2dnbGUiLG51bGwsW1sib3JkZXIiLCJkZXNjIiwiZmllbGQiLCJpMThuS2V5Il0sW1syNCxbIm9yZGVyIl1dLFsyNCxbImRlc2MiXV0sImFkZGVkX2F0IiwiZ3JvdXBzLm1lbWJlcl9hZGRlZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJsYXN0X3Bvc3RlZF9hdCIsImxhc3RfcG9zdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJsYXN0X3NlZW5fYXQiLCJsYXN0X3NlZW4iXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJtZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIiwic2tpcE5hbWUiXSxbWzIzLDEsW11dLFsyNCxbInNraXBOYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1vd25lciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJvd25lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1vd25lci1sYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hpZWxkLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsiYWRkZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixudWxsLFtbInJlbW92ZU1lbWJlciIsIm1ha2VPd25lciIsInJlbW92ZU93bmVyIiwibWVtYmVyIiwiZ3JvdXAiLCJvbkNoYW5nZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlTWVtYmVyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1ha2VPd25lciJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVPd25lciJdLG51bGxdLFsyMywxLFtdXSxbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWN0T25Hcm91cCIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX3NlZV9tZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5lbXB0eS5tZW1iZXJzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1lbWJlcnMuZm9yYmlkZGVuIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC1pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC1yZXF1ZXN0cyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsibSJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQiXSxbOF0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImNsYXNzIl0sW1syNCxbImZpbHRlcklucHV0Il1dLFsyNCxbImZpbHRlclBsYWNlaG9sZGVyIl1dLCJncm91cC11c2VybmFtZS1maWx0ZXIgbm8tYmx1ciJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc1JlcXVlc3RlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgdHIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImdyb3VwLWluZGV4LXRvZ2dsZSIsbnVsbCxbWyJvcmRlciIsImRlc2MiLCJmaWVsZCIsImkxOG5LZXkiXSxbWzI0LFsib3JkZXIiXV0sWzI0LFsiZGVzYyJdXSwidXNlcm5hbWVfbG93ZXIiLCJ1c2VybmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJyZXF1ZXN0ZWRfYXQiLCJncm91cHMubWVtYmVyX3JlcXVlc3RlZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucmVxdWVzdHMucmVhc29uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwicmVxdWVzdGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJhdmF0YXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWluZm8iLG51bGwsW1sidXNlciIsInNraXBOYW1lIl0sW1syMywxLFtdXSxbMjQsWyJza2lwTmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsicmVxdWVzdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsicmVhc29uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInJlcXVlc3RfdW5kb25lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5yZXF1ZXN0cy51bmRvbmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsicmVxdWVzdF9hY2NlcHRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucmVxdWVzdHMuYWNjZXB0ZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVuZG9BY2NlcHRSZXF1ZXN0Il0sbnVsbF0sWzIzLDEsW11dLCJ1bmRvIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsicmVxdWVzdF9kZW5pZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLnJlcXVlc3RzLmRlbmllZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWNjZXB0UmVxdWVzdCJdLG51bGxdLFsyMywxLFtdXSwiZ3JvdXBzLnJlcXVlc3RzLmFjY2VwdCIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVueVJlcXVlc3QiXSxudWxsXSxbMjMsMSxbXV0sImdyb3Vwcy5yZXF1ZXN0cy5kZW55IiwiYnRuLWRhbmdlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuZW1wdHkucmVxdWVzdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwLXJlcXVlc3RzIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZ3JvdXAtc2VsZWN0b3ItYXV0b2NvbXBsZXRlIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgIDxsaT48YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46MTh9LGVuZDp7bGluZTo0LGNvbHVtbjozM319fSkpKyI8L2E+PC9saT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0nYXV0b2NvbXBsZXRlIGFjLWdyb3VwJz5cbiAgPHVsPlxuIisobnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24iLCJpbiIsIm9wdGlvbnMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NSxjb2x1bW46MTN9fX0pKT9vOiIiKSsiICA8L3VsPlxuPC9kaXY+XG4ifSx1c2VEYXRhOiEwfSksRW1iZXIuVEVNUExBVEVTLmdyb3VwPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJiZWZvcmUtZ3JvdXAtY29udGFpbmVyIixbMjgsImhhc2giLG51bGwsW1siZ3JvdXAiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjb250YWluZXIgZ3JvdXAgIixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1kZXRhaWxzLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1pbmZvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZsYWlyX3VybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWF2YXRhci1mbGFpciJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLWZsYWlyIixudWxsLFtbImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIsImdyb3VwTmFtZSJdLFtbMjQsWyJtb2RlbCIsImZsYWlyX3VybCJdXSxbMjQsWyJtb2RlbCIsImZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbIm1vZGVsIiwiZmxhaXJfY29sb3IiXV0sWzI0LFsibW9kZWwiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtaW5mby1uYW1lIl0sWzhdLFsxLFsyMiwiZ3JvdXBOYW1lIl0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZ1bGxfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8tZnVsbC1uYW1lIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibmFtZSJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImJpb19jb29rZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJociIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWJpbyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtZGV0YWlscy1idXR0b24iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJtb2RlbCIsInNob3dMb2dpbiJdLFsiaW5saW5lIixbMjQsWyJtb2RlbCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlHcm91cE1lc3NhZ2VCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWVzc2FnZUdyb3VwIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdyb3VwLW1lc3NhZ2UtYnV0dG9uIGlubGluZSIsImVudmVsb3BlIiwiZ3JvdXBzLm1lc3NhZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwiYWRtaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZXN0cm95Il0sbnVsbF0sWzI0LFsiZGVzdHJveWluZyJdXSwidHJhc2gtYWx0IiwiYnRuLWRhbmdlciIsImFkbWluLmdyb3Vwcy5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50LXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByaW1hcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbmF2aWdhdGlvbiIsbnVsbCxbWyJncm91cCIsImN1cnJlbnRQYXRoIiwidGFicyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJjdXJyZW50UGF0aCJdXSxbMjQsWyJ0YWJzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiZ3JvdXAifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvYWN0aXZpdHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuIl0sWzQsIm1vYmlsZS1uYXYiLG51bGwsW1siY2xhc3MiLCJkZXNrdG9wQ2xhc3MiLCJjdXJyZW50UGF0aCJdLFsiYWN0aXZpdHktbmF2IiwiYWN0aW9uLWxpc3QgYWN0aXZpdHktbGlzdCBuYXYtc3RhY2tlZCIsWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VlX21lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbInBvc3RzIixbMjQsWyJjYXRlZ29yeV9pZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbInRvcGljcyIsWzI0LFsiY2F0ZWdvcnlfaWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfbWVudGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbIm1lbnRpb25zIixbMjQsWyJjYXRlZ29yeV9pZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSJdLFsiZ3JvdXAtYWN0aXZpdHktYm90dG9tIiwiIiwibGkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9hY3Rpdml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhYiJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJhY3Rpdml0eS1uYXYiLCJhY3Rpb24tbGlzdCBhY3Rpdml0eS1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInRhYnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sW1syMywxLFsicm91dGUiXV0sWzI0LFsibW9kZWwiLCJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFtbMjMsMSxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwL21hbmFnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UvaW50ZXJhY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWZvcm0gZm9ybS12ZXJ0aWNhbCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2Utc2F2ZS1idXR0b24iLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvaW50ZXJhY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvbWFuYWdlL2xvZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImxvZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsb2dzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tYW5hZ2UtbG9ncy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLWxvZ3MtZmlsdGVyIixudWxsLFtbImNsZWFyRmlsdGVyIiwidmFsdWUiLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhckZpbHRlciJdLG51bGxdLFsyNCxbImZpbHRlcnMiLCJhY3Rpb24iXV0sImFjdGlvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsImFjdGluZ191c2VyIl1dLCJhY3RpbmdfdXNlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsInRhcmdldF91c2VyIl1dLCJ0YXJnZXRfdXNlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsInN1YmplY3QiXV0sInN1YmplY3QiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5ncm91cC1tYW5hZ2UtbG9ncyAuZ3JvdXAtbWFuYWdlLWxvZ3Mtcm93IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWFuYWdlLWxvZ3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmxvZ3MuYWN0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLmFjdGluZ191c2VyIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnRhcmdldF91c2VyIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnN1YmplY3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmxvZ3Mud2hlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwibG9ncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLWxvZ3Mtcm93IixudWxsLFtbImxvZyIsImZpbHRlcnMiXSxbWzIzLDEsW11dLFsyNCxbImZpbHRlcnMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5lbXB0eS5sb2dzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvbG9ncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UvbWVtYmVyc2hpcCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtZm9ybSBmb3JtLXZlcnRpY2FsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZ3JvdXBzLWZvcm0tbWVtYmVyc2hpcC1maWVsZHMiLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLXNhdmUtYnV0dG9uIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiZ3JvdXAvbWFuYWdlL21lbWJlcnNoaXAifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvbWFuYWdlL3Byb2ZpbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWZvcm0gZm9ybS12ZXJ0aWNhbCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLXByb2ZpbGUtZmllbGRzIixudWxsLFtbIm1vZGVsIiwiZGlzYWJsZVNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiIsbnVsbCxbWyJtb2RlbCIsInNhdmluZyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJzYXZpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvcHJvZmlsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tZXNzYWdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtZXNzYWdlcy1uYXYiLCJuYXYtc3RhY2tlZCBhY3Rpb24tbGlzdCIsWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsiZ3JvdXAubWVzc2FnZXMuaW5ib3giLFsyNCxbIm1vZGVsIiwibmFtZSJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmluYm94Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJncm91cC5tZXNzYWdlcy5hcmNoaXZlIixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5tZXNzYWdlcy5hcmNoaXZlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tZXNzYWdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cHMvaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyb3VwIl0sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyJdLFsiZ3JvdXBzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtaGVhZGVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJuZXciXSxudWxsXSwiYnRuLWRlZmF1bHQgZ3JvdXBzLWhlYWRlci1uZXcgcHVsbC1yaWdodCIsInBsdXMiLCJhZG1pbi5ncm91cHMubmV3LnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1oZWFkZXItZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSwiZ3JvdXBzLmluZGV4LmFsbCIsImdyb3Vwcy1oZWFkZXItZmlsdGVycy1uYW1lIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50IiwiY2xhc3MiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbWzI0LFsidHlwZSJdXSxbMjQsWyJ0eXBlcyJdXSwiZ3JvdXBzLWhlYWRlci1maWx0ZXJzLXR5cGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJjbGVhcmFibGUiLCJub25lIl0sW3RydWUsImdyb3Vwcy5pbmRleC5maWx0ZXIiXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbIm1vZGVsIiwibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5ncm91cHMtYm94ZXMgLmdyb3VwLWJveCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1ib3hlcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIiwibW9kZWwiXSxbImdyb3VwLWJveCIsImdyb3VwLm1lbWJlcnMiLFsyMywxLFsibmFtZSJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWJveC1pbm5lciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8td3JhcHBlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJmbGFpcl91cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWF2YXRhci1mbGFpciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXItZmxhaXIiLG51bGwsW1siZmxhaXJVUkwiLCJmbGFpckJnQ29sb3IiLCJmbGFpckNvbG9yIiwiZ3JvdXBOYW1lIl0sW1syMywxLFsiZmxhaXJfdXJsIl1dLFsyMywxLFsiZmxhaXJfYmdfY29sb3IiXV0sWzIzLDEsWyJmbGFpcl9jb2xvciJdXSxbMjMsMSxbIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImdyb3Vwcy1pbmZvIixudWxsLFtbImdyb3VwIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtdXNlci1jb3VudCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ1c2VyIl0sbnVsbF0sZmFsc2VdLFsxLFsyMywxLFsidXNlcl9jb3VudCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtZGVzY3JpcHRpb24iXSxbOF0sWzEsWzIzLDEsWyJiaW9fZXhjZXJwdCJdXSx0cnVlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzaGlwIl0sWzhdLFswLCJcXG4iXSxbNCwiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLG51bGwsW1sidGFnTmFtZSIsIm1vZGVsIiwic2hvd0xvZ2luIl0sWyIiLFsyMywxLFtdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsiaXNfZ3JvdXBfb3duZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWdyb3VwLW93bmVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJzaGllbGQtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmlzX2dyb3VwX293bmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImlzX2dyb3VwX3VzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWdyb3VwLW1lbWJlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXguaXNfZ3JvdXBfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJwdWJsaWNfYWRtaXNzaW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LnB1YmxpYyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJpc1ByaXZhdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXgucHJpdmF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJhdXRvbWF0aWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5pbmRleC5hdXRvbWF0aWMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImJhbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmNsb3NlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmVtcHR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cHMvaW5kZXgifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXBzL25ldyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiXSxbImdyb3Vwcy1uZXciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgxIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5uZXcudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJociIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1mb3JtIGZvcm0tdmVydGljYWwiXSxbOF0sWzAsIlxcbiJdLFs0LCJncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCIsImRpc2FibGVTYXZlIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInNhdmluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJvd25lci1zZWxlY3RvciJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmFkZF9vd25lcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJ1c2VybmFtZXMiLCJjbGFzcyIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbWzI0LFsibW9kZWwiLCJvd25lclVzZXJuYW1lcyJdXSwiaW5wdXQteHhsYXJnZSIsImdyb3Vwcy5zZWxlY3Rvcl9wbGFjZWhvbGRlciIsIm93bmVyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwibWVtYmVyLXNlbGVjdG9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWVtYmVycy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXNlbGVjdG9yIixudWxsLFtbInVzZXJuYW1lcyIsImNsYXNzIiwicGxhY2Vob2xkZXJLZXkiLCJpZCJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lcyJdXSwiaW5wdXQteHhsYXJnZSIsImdyb3Vwcy5zZWxlY3Rvcl9wbGFjZWhvbGRlciIsIm1lbWJlci1zZWxlY3RvciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cHMtZm9ybS1tZW1iZXJzaGlwLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBidXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSwic3VibWl0IixbMjQsWyJzYXZpbmciXV0sImJ0biBidG4tcHJpbWFyeSBncm91cC1mb3JtLXNhdmUiLCJhZG1pbi5ncm91cHMubmV3LmNyZWF0ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsiZ3JvdXBzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYW5jZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3Vwcy9uZXcifX0pLEVtYmVyLlRFTVBMQVRFU1siaGlkZS1tb2RhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJoaWRlLW1vZGFsLXRyaWdnZXIiXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJoaWRlLW1vZGFsIn19KSxFbWJlci5URU1QTEFURVMuaW52aXRlcz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwib3V0bGV0Il0sZmFsc2VdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJpbnZpdGVzIn19KSxFbWJlci5URU1QTEFURVNbImludml0ZXMvc2hvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBpbnZpdGVzLXNob3cgY2xlYXJmaXgiXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzIyLCJ3ZWxjb21lVGl0bGUiXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0d28tY29sIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbC1pbWFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImltZyIsdHJ1ZV0sWzExLCJzcmMiLFsyMiwiaW52aXRlSW1hZ2VVcmwiXV0sWzhdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb2wtZm9ybSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic3VjY2Vzc01lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyMiwic3VjY2Vzc01lc3NhZ2UiXSx0cnVlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLmludml0ZWRfYnkiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJ1c2VyLWluZm8iLG51bGwsW1sidXNlciJdLFtbMjQsWyJpbnZpdGVkQnkiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyMiwieW91ckVtYWlsTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJleHRlcm5hbEF1dGhzRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLnNvY2lhbF9sb2dpbl9hdmFpbGFibGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0IHVzZXJuYW1lLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VybmFtZS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpZCIsIm5hbWUiLCJtYXhsZW5ndGgiLCJhdXRvY29tcGxldGUiXSxbWzI0LFsiYWNjb3VudFVzZXJuYW1lIl1dLCJuZXctYWNjb3VudC11c2VybmFtZSIsInVzZXJuYW1lIixbMjQsWyJtYXhVc2VybmFtZUxlbmd0aCJdXSwiZGlzY291cnNlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgIMKgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiIsImlkIl0sW1syNCxbInVzZXJuYW1lVmFsaWRhdGlvbiJdXSwidXNlcm5hbWUtdmFsaWRhdGlvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZ1bGxuYW1lUmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCBuYW1lLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLm5hbWVfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpZCIsIm5hbWUiXSxbWzI0LFsiYWNjb3VudE5hbWUiXV0sIm5ldy1hY2NvdW50LW5hbWUiLCJuYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsIm5hbWVJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0IHBhc3N3b3JkLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaW52aXRlcy5wYXNzd29yZF9sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGFzc3dvcmQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwiaWQiLCJjYXBzTG9ja09uIl0sW1syNCxbImFjY291bnRQYXNzd29yZCJdXSwicGFzc3dvcmQiLCJuZXctYWNjb3VudC1wYXNzd29yZCIsWzI0LFsiY2Fwc0xvY2tPbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgIMKgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJwYXNzd29yZFZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyMiwicGFzc3dvcmRJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsiaW52aXRlcy5vcHRpb25hbF9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXBzLWxvY2std2FybmluZyAiLFsyOCwidW5sZXNzIixbWzI0LFsiY2Fwc0xvY2tPbiJdXSwiaW52aXNpYmxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZXhjbGFtYXRpb24tdHJpYW5nbGUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uY2Fwc19sb2NrX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWZpZWxkIixudWxsLFtbImZpZWxkIiwidmFsdWUiXSxbWzIzLDEsWyJmaWVsZCJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInN1Ym1pdCJdLG51bGxdLCJzdWJtaXQiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJpbnZpdGVzLmFjY2VwdF9pbnZpdGUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imludml0ZXMvc2hvdyJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvYWN0aW9uLWxpc3QiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0ncG9zdC1hY3Rpb25zICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzc05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjI1fSxlbmQ6e2xpbmU6Mixjb2x1bW46Mzh9fX0pKSsiJz5cbiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiaWNvbiIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46Mn0sZW5kOntsaW5lOjMsY29sdW1uOjE3fX19KSkrIlxuIisobnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIiwiaW4iLCJwb3N0TnVtYmVycyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjJ9LGVuZDp7bGluZTo2LGNvbHVtbjoxMX19fSkpP286IiIpKyI8L2Rpdj5cbiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgIDxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjEzfSxlbmQ6e2xpbmU6NSxjb2x1bW46MjZ9fX0pKSsiLyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjoyN30sZW5kOntsaW5lOjUsY29sdW1uOjQxfX19KSkrIic+IyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjo0NH0sZW5kOntsaW5lOjUsY29sdW1uOjU4fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdE51bWJlcnMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OCxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC9hY3Rpdml0eS1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPCIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0YWdOYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjoxfSxlbmQ6e2xpbmU6MSxjb2x1bW46MTJ9fX0pKSsnIGNsYXNzPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2xhc3MiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjIwfSxlbmQ6e2xpbmU6MSxjb2x1bW46Mjl9fX0pKSsiICIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjb2xkLWFnZS1jbGFzcyJdfHx0JiZ0WyJjb2xkLWFnZS1jbGFzcyJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5jcmVhdGVkQXQiLHtuYW1lOiJjb2xkLWFnZS1jbGFzcyIsaGFzaDp7Y2xhc3M6IiIsc3RhcnREYXRlOiJ0b3BpYy5idW1wZWRBdCJ9LGhhc2hUeXBlczp7Y2xhc3M6IlN0cmluZ0xpdGVyYWwiLHN0YXJ0RGF0ZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NsYXNzOnQsc3RhcnREYXRlOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MzB9LGVuZDp7bGluZToxLGNvbHVtbjo5OH19fSkpKycgYWN0aXZpdHkiIHRpdGxlPSInKyhudWxsIT0obz1uLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuYnVtcGVkQXRUaXRsZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MTE2fSxlbmQ6e2xpbmU6MSxjb2x1bW46MTQxfX19KSk/bzoiIikrJyI+XG4gIDxhIGNsYXNzPSJwb3N0LWFjdGl2aXR5IiBocmVmPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubGFzdFBvc3RVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjMzfSxlbmQ6e2xpbmU6Mixjb2x1bW46NTR9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXJlbGF0aXZlLWRhdGUifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e25hbWU6dH0sdHlwZXM6W10sY29udGV4dHM6W10sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjMsY29sdW1uOjY2fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtZGF0ZSJdfHx0JiZ0WyJmb3JtYXQtZGF0ZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdCIse25hbWU6ImZvcm1hdC1kYXRlIixoYXNoOntub1RpdGxlOiJ0cnVlIixmb3JtYXQ6InRpbnkifSxoYXNoVHlwZXM6e25vVGl0bGU6IlN0cmluZ0xpdGVyYWwiLGZvcm1hdDoiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bm9UaXRsZTp0LGZvcm1hdDp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjR9LGVuZDp7bGluZTo0LGNvbHVtbjo2NX19fSkpKyI8L2E+XG48LyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0YWdOYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoyfSxlbmQ6e2xpbmU6Nixjb2x1bW46MTN9fX0pKSsiPlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJsaXN0L2NhdGVnb3J5LWNvbHVtbiJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7Y29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8dGQgY2xhc3M9J2NhdGVnb3J5Jz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiY2F0ZWdvcnktbGluayJdfHx0JiZ0WyJjYXRlZ29yeS1saW5rIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhdGVnb3J5Iix7bmFtZToiY2F0ZWdvcnktbGluayIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MjF9LGVuZDp7bGluZToxLGNvbHVtbjo0N319fSkpKyI8L3RkPlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJsaXN0L3Bvc3QtY291bnQtb3ItYmFkZ2VzIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtcG9zdC1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e25ld0RvdFRleHQ6Im5ld0RvdFRleHQiLHVybDoidG9waWMubGFzdFVucmVhZFVybCIsdW5zZWVuOiJ0b3BpYy51bnNlZW4iLG5ld1Bvc3RzOiJ0b3BpYy5kaXNwbGF5TmV3UG9zdHMiLHVucmVhZDoidG9waWMudW5yZWFkIn0saGFzaFR5cGVzOntuZXdEb3RUZXh0OiJQYXRoRXhwcmVzc2lvbiIsdXJsOiJQYXRoRXhwcmVzc2lvbiIsdW5zZWVuOiJQYXRoRXhwcmVzc2lvbiIsbmV3UG9zdHM6IlBhdGhFeHByZXNzaW9uIix1bnJlYWQ6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuZXdEb3RUZXh0OnQsdXJsOnQsdW5zZWVuOnQsbmV3UG9zdHM6dCx1bnJlYWQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZToyLGNvbHVtbjoxNDZ9fX0pKSsiXG4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5wb3N0cy1jb3VudC1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e3RhZ05hbWU6ImRpdiIsdG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0YWdOYW1lOiJTdHJpbmdMaXRlcmFsIix0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RhZ05hbWU6dCx0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46Mn0sZW5kOntsaW5lOjQsY29sdW1uOjYxfX19KSkrIlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnNob3dCYWRnZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLnByb2dyYW0oMyxzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MH0sZW5kOntsaW5lOjUsY29sdW1uOjd9fX0pKT9vOiIifSx1c2VEYXRhOiEwfSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvcG9zdGVycy1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyLm1vcmVDb3VudCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUucHJvZ3JhbSg0LHMsMCksdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjoyfSxlbmQ6e2xpbmU6Nyxjb2x1bW46OX19fSkpP286IiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgIDxhIGNsYXNzPSJwb3N0ZXJzLW1vcmUtY291bnQiPicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIubW9yZUNvdW50Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjozNH0sZW5kOntsaW5lOjQsY29sdW1uOjU0fX19KSkrIjwvYT5cbiJ9LDQ6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgIDxhIGhyZWY9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIudXNlci5wYXRoIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoxM30sZW5kOntsaW5lOjYsY29sdW1uOjMzfX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIudXNlci51c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46NTF9LGVuZDp7bGluZTo2LGNvbHVtbjo3NX19fSkpKyciIGNsYXNzPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyLmV4dHJhQ2xhc3NlcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46ODR9LGVuZDp7bGluZTo2LGNvbHVtbjoxMDd9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5hdmF0YXJ8fHQmJnQuYXZhdGFyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToic21hbGwiLG5hbWVQYXRoOiJ1c2VyLm5hbWUiLHVzZXJuYW1lUGF0aDoidXNlci51c2VybmFtZSIsYXZhdGFyVGVtcGxhdGVQYXRoOiJ1c2VyLmF2YXRhcl90ZW1wbGF0ZSJ9LGhhc2hUeXBlczp7aW1hZ2VTaXplOiJTdHJpbmdMaXRlcmFsIixuYW1lUGF0aDoiU3RyaW5nTGl0ZXJhbCIsdXNlcm5hbWVQYXRoOiJTdHJpbmdMaXRlcmFsIixhdmF0YXJUZW1wbGF0ZVBhdGg6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2ltYWdlU2l6ZTp0LG5hbWVQYXRoOnQsdXNlcm5hbWVQYXRoOnQsYXZhdGFyVGVtcGxhdGVQYXRoOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTA5fSxlbmQ6e2xpbmU6Nixjb2x1bW46MjM2fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRkIGNsYXNzPSdwb3N0ZXJzJz5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyIiwiaW4iLCJwb3N0ZXJzIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Mixjb2x1bW46MH0sZW5kOntsaW5lOjgsY29sdW1uOjl9fX0pKT9vOiIiKSsiPC90ZD5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC9wb3N0cy1jb3VudC1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iPCIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRhZ05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjF9LGVuZDp7bGluZToxLGNvbHVtbjoxN319fSkpKyIgY2xhc3M9J251bSBwb3N0cy1tYXAgcG9zdHMgIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcubGlrZXNIZWF0Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo0NX0sZW5kOntsaW5lOjEsY29sdW1uOjYzfX19KSkrIicgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo3Mn0sZW5kOntsaW5lOjEsY29sdW1uOjg2fX19KSkrIic+XG4gIDxhIGhyZWYgY2xhc3M9J3Bvc3RzLW1hcCBiYWRnZS1wb3N0cyAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5saWtlc0hlYXQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjM5fSxlbmQ6e2xpbmU6Mixjb2x1bW46NTd9fX0pKSsiJz5cbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXJlcGx5LWNvdW50In0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntuYW1lOnR9LHR5cGVzOltdLGNvbnRleHRzOltdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTozLGNvbHVtbjo2Mn19fSkpKyJcbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5udW1iZXJ8fHQmJnQubnVtYmVyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5yZXBseUNvdW50Iix7bmFtZToibnVtYmVyIixoYXNoOntub1RpdGxlOiJ0cnVlIn0saGFzaFR5cGVzOntub1RpdGxlOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntub1RpdGxlOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NH0sZW5kOntsaW5lOjQsY29sdW1uOjQ2fX19KSkrIlxuICA8L2E+XG48LyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRhZ05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjJ9LGVuZDp7bGluZTo2LGNvbHVtbjoxOH19fSkpKyI+XG4ifSx1c2VEYXRhOiEwfSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvdG9waWMtZXhjZXJwdCJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybicgIDxkaXYgY2xhc3M9InRvcGljLWV4Y2VycHQiPlxuICAgICcrKG51bGwhPShvPShuWyJkaXItc3BhbiJdfHx0JiZ0WyJkaXItc3BhbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5lc2NhcGVkRXhjZXJwdCIse25hbWU6ImRpci1zcGFuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6Myxjb2x1bW46Mzl9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5leGNlcnB0VHJ1bmNhdGVkIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NH0sZW5kOntsaW5lOjYsY29sdW1uOjExfX19KSk/bzoiIikrIiAgPC9kaXY+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJyAgICAgIDxhIGhyZWY9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjE1fSxlbmQ6e2xpbmU6NSxjb2x1bW46Mjh9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInJlYWRfbW9yZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46MzB9LGVuZDp7bGluZTo1LGNvbHVtbjo1MH19fSkpKyI8L2E+XG4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmhhc0V4Y2VycHQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OCxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC90b3BpYy1saXN0LWl0ZW0iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICA8dGQgY2xhc3M9ImJ1bGstc2VsZWN0Ij5cbiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJidWxrLXNlbGVjdCI+XG4gIDwvdGQ+XG4nfSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIGUuZXNjYXBlRXhwcmVzc2lvbigoblsidG9waWMtZmVhdHVyZWQtbGluayJdfHx0JiZ0WyJ0b3BpYy1mZWF0dXJlZC1saW5rIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToidG9waWMtZmVhdHVyZWQtbGluayIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAsY29sdW1uOjR9LGVuZDp7bGluZToyMCxjb2x1bW46MzR9fX0pKX0sNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtcG9zdC1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e25ld0RvdFRleHQ6Im5ld0RvdFRleHQiLHVybDoidG9waWMubGFzdFVucmVhZFVybCIsdW5zZWVuOiJ0b3BpYy51bnNlZW4iLG5ld1Bvc3RzOiJ0b3BpYy5kaXNwbGF5TmV3UG9zdHMiLHVucmVhZDoidG9waWMudW5yZWFkIn0saGFzaFR5cGVzOntuZXdEb3RUZXh0OiJQYXRoRXhwcmVzc2lvbiIsdXJsOiJQYXRoRXhwcmVzc2lvbiIsdW5zZWVuOiJQYXRoRXhwcmVzc2lvbiIsbmV3UG9zdHM6IlBhdGhFeHByZXNzaW9uIix1bnJlYWQ6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuZXdEb3RUZXh0OnQsdXJsOnQsdW5zZWVuOnQsbmV3UG9zdHM6dCx1bnJlYWQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI3LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjcsY29sdW1uOjE0OX19fSkpfSw3OmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5pc1Bpbm5lZFVuY2F0ZWdvcml6ZWQiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzIsY29sdW1uOjZ9LGVuZDp7bGluZTozNCxjb2x1bW46MTd9fX0pKT9vOiIifSw4OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImNhdGVnb3J5LWxpbmsiXXx8dCYmdFsiY2F0ZWdvcnktbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5jYXRlZ29yeSIse25hbWU6ImNhdGVnb3J5LWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMzLGNvbHVtbjo4fSxlbmQ6e2xpbmU6MzMsY29sdW1uOjQwfX19KSkrIlxuIn0sMTA6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImxpc3QudG9waWMtZXhjZXJwdCIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0MCxjb2x1bW46NH0sZW5kOntsaW5lOjQwLGNvbHVtbjo0NH19fSkpKyJcbiJ9LDEyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5wb3N0ZXJzLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7cG9zdGVyczoidG9waWMuZmVhdHVyZWRVc2VycyJ9LGhhc2hUeXBlczp7cG9zdGVyczoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3Bvc3RlcnM6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ1LGNvbHVtbjoyfSxlbmQ6e2xpbmU6NDUsY29sdW1uOjU5fX19KSkrIlxuIn0sMTQ6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nICA8dGQgY2xhc3M9Im51bSBsaWtlcyI+XG4nKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoYXNMaWtlcyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDE1LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1Mixjb2x1bW46NH0sZW5kOntsaW5lOjU2LGNvbHVtbjoxMX19fSkpP286IiIpKyIgIDwvdGQ+XG4ifSwxNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuc3VtbWFyeVVybCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NTMsY29sdW1uOjE1fSxlbmQ6e2xpbmU6NTMsY29sdW1uOjM1fX19KSkrIic+XG4gICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLm51bWJlcnx8dCYmdC5udW1iZXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxpa2VfY291bnQiLHtuYW1lOiJudW1iZXIiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjU0LGNvbHVtbjo4fSxlbmQ6e2xpbmU6NTQsY29sdW1uOjM1fX19KSkrIiAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoZWFydCIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1NCxjb2x1bW46MzZ9LGVuZDp7bGluZTo1NCxjb2x1bW46NTR9fX0pKSsiXG4gICAgICA8L2E+XG4ifSwxNzpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybicgIDx0ZCBjbGFzcz0ibnVtIGxpa2VzIj5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImhhc09wTGlrZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjIsY29sdW1uOjR9LGVuZDp7bGluZTo2Nixjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L3RkPlxuIn0sMTg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgPGEgaHJlZj0nIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnN1bW1hcnlVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYzLGNvbHVtbjoxNX0sZW5kOntsaW5lOjYzLGNvbHVtbjozNX19fSkpKyInPlxuICAgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5udW1iZXJ8fHQmJnQubnVtYmVyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5vcF9saWtlX2NvdW50Iix7bmFtZToibnVtYmVyIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2NCxjb2x1bW46OH0sZW5kOntsaW5lOjY0LGNvbHVtbjozOH19fSkpKyIgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiaGVhcnQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjQsY29sdW1uOjM5fSxlbmQ6e2xpbmU6NjQsY29sdW1uOjU3fX19KSkrIlxuICAgICAgPC9hPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybihudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJidWxrU2VsZWN0RW5hYmxlZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjB9LGVuZDp7bGluZTo1LGNvbHVtbjo3fX19KSk/bzoiIikrIlxuPHRkIGNsYXNzPSdtYWluLWxpbmsgY2xlYXJmaXgnIGNvbHNwYW49XCIxXCI+XG4gIDxzcGFuIGNsYXNzPSdsaW5rLXRvcC1saW5lJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXN0YXR1cyJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bmFtZTp0fSx0eXBlczpbXSxjb250ZXh0czpbXSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNixjb2x1bW46NH0sZW5kOntsaW5lOjE2LGNvbHVtbjo1OH19fSkpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1zdGF0dXMiLHtuYW1lOiJyYXciLGhhc2g6e3RvcGljOiJ0b3BpYyJ9LGhhc2hUeXBlczp7dG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOnt0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTcsY29sdW1uOjR9LGVuZDp7bGluZToxNyxjb2x1bW46Mzl9fX0pKStlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWxpbmsiXXx8dCYmdFsidG9waWMtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWxpbmsiLGhhc2g6e2NsYXNzOiJyYXctbGluayByYXctdG9waWMtbGluayJ9LGhhc2hUeXBlczp7Y2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2NsYXNzOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTgsY29sdW1uOjR9LGVuZDp7bGluZToxOCxjb2x1bW46NTd9fX0pKSsobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuZmVhdHVyZWRfbGluayIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjE5LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjEsY29sdW1uOjEyfX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJyYXctcGx1Z2luLW91dGxldCJdfHx0JiZ0WyJyYXctcGx1Z2luLW91dGxldCJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LHtuYW1lOiJyYXctcGx1Z2luLW91dGxldCIsaGFzaDp7bmFtZToidG9waWMtbGlzdC1hZnRlci10aXRsZSJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bmFtZTp0fSx0eXBlczpbXSxjb250ZXh0czpbXSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyMixjb2x1bW46NH0sZW5kOntsaW5lOjIyLGNvbHVtbjo1Nn19fSkpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LnVucmVhZC1pbmRpY2F0b3IiLHtuYW1lOiJyYXciLGhhc2g6e3VucmVhZENsYXNzOiJ1bnJlYWRDbGFzcyIsdG9waWNJZDoidG9waWMuaWQiLGluY2x1ZGVVbnJlYWRJbmRpY2F0b3I6ImluY2x1ZGVVbnJlYWRJbmRpY2F0b3IifSxoYXNoVHlwZXM6e3VucmVhZENsYXNzOiJQYXRoRXhwcmVzc2lvbiIsdG9waWNJZDoiUGF0aEV4cHJlc3Npb24iLGluY2x1ZGVVbnJlYWRJbmRpY2F0b3I6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOnt1bnJlYWRDbGFzczp0LHRvcGljSWQ6dCxpbmNsdWRlVW5yZWFkSW5kaWNhdG9yOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyMyxjb2x1bW46NH0sZW5kOntsaW5lOjI1LGNvbHVtbjo2MX19fSkpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93VG9waWNQb3N0QmFkZ2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjYsY29sdW1uOjR9LGVuZDp7bGluZToyOCxjb2x1bW46MTJ9fX0pKT9vOiIiKSsnICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9ImxpbmstYm90dG9tLWxpbmUiPlxuJysobnVsbCE9KG89bi51bmxlc3MuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImhpZGVDYXRlZ29yeSIse25hbWU6InVubGVzcyIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg3LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozMSxjb2x1bW46NH0sZW5kOntsaW5lOjM1LGNvbHVtbjoxNX19fSkpP286IiIpKyIgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImRpc2NvdXJzZS10YWdzIl18fHQmJnRbImRpc2NvdXJzZS10YWdzIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToiZGlzY291cnNlLXRhZ3MiLGhhc2g6e3RhZ3NGb3JVc2VyOiJ0YWdzRm9yVXNlciIsbW9kZToibGlzdCJ9LGhhc2hUeXBlczp7dGFnc0ZvclVzZXI6IlBhdGhFeHByZXNzaW9uIixtb2RlOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOnt0YWdzRm9yVXNlcjp0LG1vZGU6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNixjb2x1bW46NH0sZW5kOntsaW5lOjM2LGNvbHVtbjo2NH19fSkpKyJcbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LmFjdGlvbi1saXN0Iix7bmFtZToicmF3IixoYXNoOntpY29uOiJoZWFydCIsY2xhc3NOYW1lOiJsaWtlcyIscG9zdE51bWJlcnM6InRvcGljLmxpa2VkX3Bvc3RfbnVtYmVycyIsdG9waWM6InRvcGljIn0saGFzaFR5cGVzOntpY29uOiJTdHJpbmdMaXRlcmFsIixjbGFzc05hbWU6IlN0cmluZ0xpdGVyYWwiLHBvc3ROdW1iZXJzOiJQYXRoRXhwcmVzc2lvbiIsdG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntpY29uOnQsY2xhc3NOYW1lOnQscG9zdE51bWJlcnM6dCx0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzcsY29sdW1uOjR9LGVuZDp7bGluZTozNyxjb2x1bW46MTEwfX19KSkrIlxuICA8L2Rpdj5cbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImV4cGFuZFBpbm5lZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEwLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozOSxjb2x1bW46Mn0sZW5kOntsaW5lOjQxLGNvbHVtbjo5fX19KSk/bzoiIikrIjwvdGQ+XG5cbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dQb3N0ZXJzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjowfSxlbmQ6e2xpbmU6NDYsY29sdW1uOjd9fX0pKT9vOiIiKSsiXG4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LnBvc3RzLWNvdW50LWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0OCxjb2x1bW46MH0sZW5kOntsaW5lOjQ4LGNvbHVtbjo0NX19fSkpKyJcblxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic2hvd0xpa2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTQscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUwLGNvbHVtbjowfSxlbmQ6e2xpbmU6NTgsY29sdW1uOjd9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93T3BMaWtlcyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDE3LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2MCxjb2x1bW46MH0sZW5kOntsaW5lOjY4LGNvbHVtbjo3fX19KSk/bzoiIikrJ1xuPHRkIGNsYXNzPSJudW0gdmlld3MgJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnZpZXdzSGVhdCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NzAsY29sdW1uOjIxfSxlbmQ6e2xpbmU6NzAsY29sdW1uOjQwfX19KSkrJyI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4ubnVtYmVyfHx0JiZ0Lm51bWJlcnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMudmlld3MiLHtuYW1lOiJudW1iZXIiLGhhc2g6e251bWJlcktleToidmlld3NfbG9uZyJ9LGhhc2hUeXBlczp7bnVtYmVyS2V5OiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntudW1iZXJLZXk6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3MCxjb2x1bW46NDJ9LGVuZDp7bGluZTo3MCxjb2x1bW46ODd9fX0pKSsiPC90ZD5cblxuIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5hY3Rpdml0eS1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e3RhZ05hbWU6InRkIixjbGFzczoibnVtIix0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3RhZ05hbWU6IlN0cmluZ0xpdGVyYWwiLGNsYXNzOiJTdHJpbmdMaXRlcmFsIix0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RhZ05hbWU6dCxjbGFzczp0LHRvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3Mixjb2x1bW46MH0sZW5kOntsaW5lOjcyLGNvbHVtbjo2N319fSkpKyJcbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC91bnJlYWQtaW5kaWNhdG9yIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxzcGFuIGNsYXNzPSdiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gdW5yZWFkLWluZGljYXRvciBpbmRpY2F0b3ItdG9waWMtIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljSWQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjc5fSxlbmQ6e2xpbmU6Mixjb2x1bW46OTB9fX0pKSsiICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1bnJlYWRDbGFzcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Mixjb2x1bW46OTF9LGVuZDp7bGluZToyLGNvbHVtbjoxMDZ9fX0pKSsiJyB0aXRsZT0nIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51bnJlYWRfaW5kaWNhdG9yIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoxMTV9LGVuZDp7bGluZToyLGNvbHVtbjoxNDh9fX0pKSsiJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJhc3RlcmlzayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6Myxjb2x1bW46MjZ9fX0pKSsiXG4gIDwvc3Bhbj4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImluY2x1ZGVVbnJlYWRJbmRpY2F0b3IiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6NSxjb2x1bW46OH19fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC92aXNpdGVkLWxpbmUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICA8dHIgY2xhc3M9J3RvcGljLWxpc3QtaXRlbS1zZXBhcmF0b3InPlxuICAgIDx0ZCBjb2xzcGFuPVwiNlwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWNzLm5ld19tZXNzYWdlc19tYXJrZXIiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjh9LGVuZDp7bGluZTo1LGNvbHVtbjo0NX19fSkpKyJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L3RkPlxuICA8L3RyPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmlzTGFzdFZpc2l0ZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OSxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVMubG9hZGluZz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwibG9hZGluZy1zcGlubmVyIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibG9hZGluZyJ9fSksRW1iZXIuVEVNUExBVEVTWyJsb2dpbi1wcmVmZXJlbmNlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9naW4udG9fY29udGludWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJwIix0cnVlXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogMWVtIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5wcmVmZXJlbmNlcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sImxvZ19pbiJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3NzbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZvcmdvdFBhc3N3b3JkIl0sbnVsbF0sImxvZ2luLmZvcmdvdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJsb2dpbi1wcmVmZXJlbmNlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0Il0sInN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaGFzSW5jb21pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctbW9yZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIGNsaWNrYWJsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsic2hvd0luc2VydGVkIl1dXV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvdW50LWkxOG4iLG51bGwsW1sia2V5Iiwic3VmZml4IiwiY291bnQiXSxbInRvcGljX2NvdW50XyIsImxhdGVzdCIsWzI0LFsiaW5jb21pbmdDb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidG9waWMtbGlzdC1pdGVtICIsWzI4LCJpZiIsW1syMywxLFsiYXJjaGl2ZWQiXV0sImFyY2hpdmVkIl0sbnVsbF0sIiAiLFsyOCwiaWYiLFtbMjMsMSxbInZpc2l0ZWQiXV0sInZpc2l0ZWQiXSxudWxsXV1dXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyMywxLFsiaWQiXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibWFpbi1saW5rIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtc3RhdHVzIixudWxsLFtbInRvcGljIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1saW5rIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC91bnJlYWQtaW5kaWNhdG9yIl0sW1siaW5jbHVkZVVucmVhZEluZGljYXRvciIsInRvcGljSWQiLCJ1bnJlYWRDbGFzcyJdLFtbMjQsWyJzaG93VW5yZWFkSW5kaWNhdG9yIl1dLFsyMywxLFsiaWQiXV0sWzI4LCJpZiIsW1syMywxLFsidW5yZWFkX2J5X2dyb3VwX21lbWJlciJdXSwiIiwicmVhZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImhhc0V4Y2VycHQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtZXhjZXJwdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJleGNlcnB0Il1dLHRydWVdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImV4Y2VycHRUcnVuY2F0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzQsInVubGVzcyIsW1syMywxLFsiY2FuQ2xlYXJQaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsMSxbInVybCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZWFkX21vcmUiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImNhbkNsZWFyUGluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMuY2xlYXJfcGluLmhlbHAiXSxudWxsXV1dXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhclBpbiIsWzIzLDEsW11dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5jbGVhcl9waW4udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtcmlnaHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC9wb3N0LWNvdW50LW9yLWJhZGdlcyJdLFtbInRvcGljIiwicG9zdEJhZGdlc0VuYWJsZWQiXSxbWzIzLDEsW11dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWl0ZW0tc3RhdHMgY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFncyIsW1syMywxLFtdXV0sW1sibW9kZSIsInRhZ3NGb3JVc2VyIl0sWyJsaXN0IixbMjQsWyJ0YWdzRm9yVXNlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtcmlnaHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJhdyIsWyJsaXN0L2FjdGl2aXR5LWNvbHVtbiJdLFtbInRvcGljIiwidGFnTmFtZSIsImNsYXNzIl0sW1syMywxLFtdXSwiZGl2IiwibnVtIGFjdGl2aXR5IGxhc3QiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzIzLDEsWyJsYXN0UG9zdFVybCJdXV1dXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJsYXN0X3Bvc3QiXSxudWxsXSwiOiAiLFsyOCwicmF3LWRhdGUiLFtbMjMsMSxbImJ1bXBlZF9hdCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyMywxLFsibGFzdF9wb3N0ZXJfdXNlcm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJoaWRlQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfdG9waWMubm9uZV9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0In19KSxFbWJlci5URU1QTEFURVNbIm1vYmlsZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInN1YmNhdGVnb3J5Iiwic3ViY2F0ZWdvcnkiLCJzdWJzdWJjYXRlZ29yeSIsInQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY2F0ZWdvcnktbGlzdCAiLFsyOCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dLCJ3aXRoLXRvcGljcyJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImRhdGEtY2F0ZWdvcnktaWQiLFsyMywxLFsiaWQiXV1dLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1saXN0LWl0ZW0gY2F0ZWdvcnkiXSxbMTEsInN0eWxlIixbMjgsImJvcmRlci1jb2xvciIsW1syMywxLFsiY29sb3IiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWxpbmsiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzIzLDEsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNvbHNwYW4iLCIzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syMywxLFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtb2JpbGUtY2F0ZWdvcnktdG9waWMiLG51bGwsW1sidG9waWMiXSxbWzIzLDUsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDEsWyJpZCJdXV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5LWxpc3QtaXRlbSBjYXRlZ29yeSJdLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDMsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1saW5rIixudWxsLFtbInRhZ05hbWUiLCJjYXRlZ29yeSJdLFsiaDQiLFsyMywzLFtdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3JpZXMtbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDMsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsMyxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw0LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDQsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzRdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzLWxpc3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjMsMixbImlzTXV0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywyLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzcsImZpZ3VyZSIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsiYWxsX3RpbWVfZGVzYyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMywxLFsidG9waWNzX2FsbF90aW1lIl1dXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywiZmlnY2FwdGlvbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhbGxfdGltZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMSxbInBpY2tNb250aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJmaWd1cmUiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbIm1vbnRoX2Rlc2MiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjMsMSxbInRvcGljc19tb250aCJdXV0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzcsImZpZ2NhcHRpb24iLHRydWVdLFs4XSxbMCwiLyAiXSxbMSxbMjgsImkxOG4iLFsibW9udGgiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsicGlja1dlZWsiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJmaWd1cmUiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbIndlZWtfZGVzYyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMywxLFsidG9waWNzX3dlZWsiXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJmaWdjYXB0aW9uIix0cnVlXSxbOF0sWzAsIi8gIl0sWzEsWzI4LCJpMThuIixbIndlZWsiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9jYXRlZ29yaWVzLW9ubHkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy13aXRoLWZlYXR1cmVkLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjYXRlZ29yaWVzLW9ubHkiLG51bGwsW1siY2F0ZWdvcmllcyIsImxhdGVzdFRvcGljT25seSIsInNob3dUb3BpY3MiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXSxbMjQsWyJsYXRlc3RUb3BpY09ubHkiXV0sInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvZGlyZWN0b3J5LWl0ZW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidXNlci1pbmZvIixudWxsLFtbInVzZXIiXSxbWzI0LFsiaXRlbSIsInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwiaWNvbiJdLFtbMjQsWyJpdGVtIiwibGlrZXNfcmVjZWl2ZWQiXV0sImRpcmVjdG9yeS5saWtlc19yZWNlaXZlZCIsImhlYXJ0Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJpY29uIl0sW1syNCxbIml0ZW0iLCJsaWtlc19naXZlbiJdXSwiZGlyZWN0b3J5Lmxpa2VzX2dpdmVuIiwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJpdGVtIiwidG9waWNfY291bnQiXV0sImRpcmVjdG9yeS50b3BpY19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIml0ZW0iLCJwb3N0X2NvdW50Il1dLCJkaXJlY3RvcnkucG9zdF9jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIml0ZW0iLCJ0b3BpY3NfZW50ZXJlZCJdXSwiZGlyZWN0b3J5LnRvcGljc19lbnRlcmVkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsiaXRlbSIsInBvc3RzX3JlYWQiXV0sImRpcmVjdG9yeS5wb3N0c19yZWFkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsiaXRlbSIsImRheXNfdmlzaXRlZCJdXSwiZGlyZWN0b3J5LmRheXNfdmlzaXRlZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZVJlYWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCIsInR5cGUiXSxbWzI0LFsiaXRlbSIsInRpbWVfcmVhZCJdXSwiZGlyZWN0b3J5LnRpbWVfcmVhZCIsImR1cmF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvY29tcG9uZW50cy9tb2JpbGUtbmF2Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0ZWRIdG1sIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiZXhwYW5kZXIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFeHBhbmRlZCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJzZWxlY3RlZEh0bWwiXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNhcmV0LWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywidWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImRyb3AgIixbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImV4cGFuZGVkIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbMTQsMV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1uYXYifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1iYXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImMiLCJuYXZJdGVtIl0sInN0YXRlbWVudHMiOltbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXZpZ2F0aW9uLXRvZ2dsZSJdLFs4XSxbMCwiXFxuICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJ0b2dnbGUtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZURyb3AiXV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsic2VsZWN0ZWROYXZJdGVtIiwiZGlzcGxheU5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2FyZXQtZG93biJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXhwYW5kZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwiZHJvcCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJuYXZJdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwibmF2aWdhdGlvbi1pdGVtIixudWxsLFtbImNvbnRlbnQiLCJmaWx0ZXJNb2RlIiwiY2F0ZWdvcnkiXSxbWzIzLDIsW11dLFsyNCxbImZpbHRlck1vZGUiXV0sWzI0LFsiY2F0ZWdvcnkiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzQsImVhY2giLFtbMjQsWyJjb25uZWN0b3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwicGx1Z2luLWNvbm5lY3RvciIsbnVsbCxbWyJjb25uZWN0b3IiLCJjbGFzcyIsInRhZ05hbWUiLCJhcmdzIl0sW1syMywxLFtdXSxbMjMsMSxbImNsYXNzTmFtZXMiXV0sImxpIixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiLCJmaWx0ZXJNb2RlIl0sW1syNCxbImNhdGVnb3J5Il1dLFsyNCxbImZpbHRlck1vZGUiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1iYXIifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2Rpc2NvdmVyeS9jYXRlZ29yaWVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZGlzY292ZXJ5LWNhdGVnb3JpZXMiLG51bGwsW1sicmVmcmVzaCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVmcmVzaCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJjYXRlZ29yeVBhZ2VTdHlsZSJdXV0sW1siY2F0ZWdvcmllcyIsImxhdGVzdFRvcGljT25seSIsInRvcGljcyJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3JpZXMiXV0sWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dLFsyNCxbIm1vZGVsIiwidG9waWNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9kaXNjb3ZlcnkvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvZGlzY292ZXJ5L3RvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZGlzY292ZXJ5VG9waWNMaXN0Il0sInN0YXRlbWVudHMiOltbNCwiZGlzY292ZXJ5LXRvcGljcy1saXN0IixudWxsLFtbIm1vZGVsIiwicmVmcmVzaCIsImluY29taW5nQ291bnQiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidG9wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1saXN0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJhY3Rpb24iXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQZXJpb2QiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImhhc0luY29taW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIGNsaWNrYWJsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dJbnNlcnRlZCJdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsInN1ZmZpeCIsImNvdW50Il0sWyJ0b3BpY19jb3VudF8iLFsyNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImZpbHRlciJdXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImhhc1RvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwidG9waWMtbGlzdCIsbnVsbCxbWyJoaWdobGlnaHRMYXN0VmlzaXRlZCIsInNob3dQb3N0ZXJzIiwiaGlkZUNhdGVnb3J5Iiwib3JkZXIiLCJhc2NlbmRpbmciLCJ0b3BpY3MiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsInNjcm9sbE9uTG9hZCIsIm9uU2Nyb2xsIiwiY2F0ZWdvcnkiXSxbdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwiaGlkZUNhdGVnb3J5Il1dLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzY2VuZGluZyJdXSxbMjQsWyJtb2RlbCIsInRvcGljcyJdXSxbMjQsWyJleHBhbmRHbG9iYWxseVBpbm5lZCJdXSxbMjQsWyJleHBhbmRBbGxQaW5uZWQiXV0sdHJ1ZSxbMjMsMSxbInNhdmVTY3JvbGxQb3NpdGlvbiJdXSxbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxpc3QtYm90dG9tIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWxsTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwidGl0bGUiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgZGlzbWlzcy1yZWFkIiwiZGlzbWlzcy10b3BpY3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLW5ldyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2V0TmV3Il0sbnVsbF0sImNoZWNrIiwidG9waWNzLmJ1bGsuZGlzbWlzc19uZXciXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJmb290ZXItbWVzc2FnZSIsbnVsbCxbWyJlZHVjYXRpb24iLCJtZXNzYWdlIl0sW1syNCxbImZvb3RlckVkdWNhdGlvbiJdXSxbMjQsWyJmb290ZXJNZXNzYWdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibGF0ZXN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMuc3VnZ2VzdF9jcmVhdGVfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiwgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5sYXRlc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJmaWx0ZXJzLnRvcC5vdGhlcl9wZXJpb2RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidG9wLXBlcmlvZC1idXR0b25zIixudWxsLFtbInBlcmlvZCIsImFjdGlvbiJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2Rpc2NvdmVyeS90b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2dyb3VwLWluZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1c2VyIl0sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJhdXRvY29tcGxldGUiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSxbMjQsWyJmaWx0ZXJQbGFjZWhvbGRlciJdXSwiZGlzY291cnNlIiwiZ3JvdXAtdXNlcm5hbWUtZmlsdGVyIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1lbWJlcnMtbWFuYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImdyb3VwLW1lbWJlcnMtZHJvcGRvd24iLG51bGwsW1sic2hvd0FkZE1lbWJlcnNNb2RhbCIsInNob3dCdWxrQWRkTW9kYWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0FkZE1lbWJlcnNNb2RhbCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dCdWxrQWRkTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIl0sWyJwbHVzIiwiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIiwiZ3JvdXAtbWVtYmVycy1hZGQiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dBZGRNZW1iZXJzTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgLnVzZXItaW5mbyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwibWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVyIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1pbmZvIixudWxsLFtbInVzZXIiLCJza2lwTmFtZSJdLFtbMjMsMSxbXV0sWzI0LFsic2tpcE5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzQsImlmIixbWzIzLDEsWyJvd25lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3Ryb25nIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtb3duZXItbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5vd25lciJdLG51bGxdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibGFzdF9wb3N0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRleHQiXSxbOF0sWzEsWzI4LCJib3VuZC1kYXRlIixbWzIzLDEsWyJsYXN0X3Bvc3RlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVyLWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhbk1hbmFnZUdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixudWxsLFtbInJlbW92ZU1lbWJlciIsIm1ha2VPd25lciIsInJlbW92ZU93bmVyIiwibWVtYmVyIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVNZW1iZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWFrZU93bmVyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZU93bmVyIl0sbnVsbF0sWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmVtcHR5Lm1lbWJlcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2dyb3VwLWluZGV4In19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibW9iaWxlL2xpc3QvdG9waWMtbGlzdC1pdGVtIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgPGRpdiBjbGFzcz0ncHVsbC1sZWZ0Jz5cbiAgICA8YSBocmVmPVwiIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxhc3RQb3N0VXJsIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjoxM30sZW5kOntsaW5lOjQsY29sdW1uOjM0fX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5sYXN0X3Bvc3Rlcl91c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NTJ9LGVuZDp7bGluZTo0LGNvbHVtbjo4Mn19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmF2YXRhcnx8dCYmdC5hdmF0YXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxhc3RQb3N0ZXIiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToibGFyZ2UifSxoYXNoVHlwZXM6e2ltYWdlU2l6ZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7aW1hZ2VTaXplOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46ODR9LGVuZDp7bGluZTo0LGNvbHVtbjoxMjl9fX0pKSsiPC9hPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0ncmlnaHQnPlxuIn0sMzpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8ZGl2PlxuIn0sNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWZlYXR1cmVkLWxpbmsiXXx8dCYmdFsidG9waWMtZmVhdHVyZWQtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWZlYXR1cmVkLWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIyLGNvbHVtbjoxMH0sZW5kOntsaW5lOjIyLGNvbHVtbjo0MX19fSkpfSw3OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJzxzcGFuIGNsYXNzPSJ0b3BpYy1wb3N0LWJhZGdlcyI+Jm5ic3A7PHNwYW4gY2xhc3M9ImJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiPjwvc3Bhbj48L3NwYW4+J30sOTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC50b3BpYy1leGNlcnB0Iix7bmFtZToicmF3IixoYXNoOnt0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3RvcGljOiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7dG9waWM6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI4LGNvbHVtbjoxMH0sZW5kOntsaW5lOjI4LGNvbHVtbjo1Mn19fSkpfSwxMTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjYXRlZ29yeSc+XG4gICAgICAgICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjYXRlZ29yeS1saW5rIl18fHQmJnRbImNhdGVnb3J5LWxpbmsiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuY2F0ZWdvcnkiLHtuYW1lOiJjYXRlZ29yeS1saW5rIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNyxjb2x1bW46MTR9LGVuZDp7bGluZTozNyxjb2x1bW46NDZ9fX0pKSsiXG4gICAgICAgICAgICA8L2Rpdj5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRkPiIrKG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJleHBhbmRQaW5uZWQiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5wcm9ncmFtKDMscywwKSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZTo5LGNvbHVtbjoyMH19fSkpP286IiIpKyIgICAgICAgIDxkaXYgY2xhc3M9J21haW4tbGluayc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bInJhdy1wbHVnaW4tb3V0bGV0Il18fHQmJnRbInJhdy1wbHVnaW4tb3V0bGV0Il18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30se25hbWU6InJhdy1wbHVnaW4tb3V0bGV0IixoYXNoOntuYW1lOiJ0b3BpYy1saXN0LWJlZm9yZS1zdGF0dXMifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e25hbWU6dH0sdHlwZXM6W10sY29udGV4dHM6W10sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTgsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MTgsY29sdW1uOjY0fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLXN0YXR1cyIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOSxjb2x1bW46MTB9LGVuZDp7bGluZToxOSxjb2x1bW46NDZ9fX0pKStlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWxpbmsiXXx8dCYmdFsidG9waWMtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIwLGNvbHVtbjoxMH0sZW5kOntsaW5lOjIwLGNvbHVtbjozMn19fSkpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5mZWF0dXJlZF9saW5rIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjEsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MjMsY29sdW1uOjE5fX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnVuc2VlbiIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDcscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI0LGNvbHVtbjoxMH0sZW5kOntsaW5lOjI2LGNvbHVtbjoxOX19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJleHBhbmRQaW5uZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg5LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNyxjb2x1bW46MTB9LGVuZDp7bGluZToyOSxjb2x1bW46MTl9fX0pKT9vOiIiKSsiPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9J3B1bGwtcmlnaHQnPlxuICAgICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImxpc3QucG9zdC1jb3VudC1vci1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e3Bvc3RCYWRnZXNFbmFibGVkOiJzaG93VG9waWNQb3N0QmFkZ2VzIix0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3Bvc3RCYWRnZXNFbmFibGVkOiJQYXRoRXhwcmVzc2lvbiIsdG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntwb3N0QmFkZ2VzRW5hYmxlZDp0LHRvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozMixjb2x1bW46MTB9LGVuZDp7bGluZTozMixjb2x1bW46OTV9fX0pKSsnXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BpYy1pdGVtLXN0YXRzIGNsZWFyZml4Ij5cbicrKG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoaWRlQ2F0ZWdvcnkiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM1LGNvbHVtbjoxMH0sZW5kOntsaW5lOjM5LGNvbHVtbjoyMX19fSkpP286IiIpKyIgICAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImRpc2NvdXJzZS10YWdzIl18fHQmJnRbImRpc2NvdXJzZS10YWdzIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToiZGlzY291cnNlLXRhZ3MiLGhhc2g6e21vZGU6Imxpc3QifSxoYXNoVHlwZXM6e21vZGU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e21vZGU6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0MCxjb2x1bW46MTB9LGVuZDp7bGluZTo0MCxjb2x1bW46NDZ9fX0pKSsnXG4gICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1yaWdodCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwnbnVtIGFjdGl2aXR5IGxhc3RcJz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFnZSBhY3Rpdml0eSIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdFRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0Myxjb2x1bW46NDh9LGVuZDp7bGluZTo0Myxjb2x1bW46NzF9fX0pKSsnIj48YVxuICAgICAgICAgICAgICAgICBocmVmPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubGFzdFBvc3RVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjoyM30sZW5kOntsaW5lOjQ0LGNvbHVtbjo0NH19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtZGF0ZSJdfHx0JiZ0WyJmb3JtYXQtZGF0ZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdCIse25hbWU6ImZvcm1hdC1kYXRlIixoYXNoOntub1RpdGxlOiJ0cnVlIixmb3JtYXQ6InRpbnkifSxoYXNoVHlwZXM6e25vVGl0bGU6IlN0cmluZ0xpdGVyYWwiLGZvcm1hdDoiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bm9UaXRsZTp0LGZvcm1hdDp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjo0Nn0sZW5kOntsaW5lOjQ0LGNvbHVtbjoxMDV9fX0pKSsnPC9hPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG48L3RkPlxuJ30sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL21vZGFsL2xvZ2luIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwibG9naW4tbW9kYWwiLG51bGwsW1sic2NyZWVuWCIsInNjcmVlblkiLCJsb2dpbk5hbWUiLCJsb2dpblBhc3N3b3JkIiwic2Vjb25kRmFjdG9yVG9rZW4iLCJhY3Rpb24iXSxbWzI0LFsibGFzdFgiXV0sWzI0LFsibGFzdFkiXV0sWzI0LFsibG9naW5OYW1lIl1dLFsyNCxbImxvZ2luUGFzc3dvcmQiXV0sWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ2luIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWJlZm9yZS1tb2RhbC1ib2R5IiwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsibG9naW4udGl0bGUiLFsyNCxbIm1vZGFsQm9keUNsYXNzZXMiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93TG9naW5CdXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1sic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsInByb2Nlc3NpbmdFbWFpbExpbmsiLCJlbWFpbExvZ2luIiwiZXh0ZXJuYWxMb2dpbiJdLFtbMjQsWyJzaG93TG9naW5XaXRoRW1haWxMaW5rIl1dLFsyNCxbInByb2Nlc3NpbmdFbWFpbExpbmsiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVtYWlsTG9naW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkxvZ2luTG9jYWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImlkIiwibG9naW4tZm9ybSJdLFsxMCwibWV0aG9kIiwicG9zdCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiY3JlZGVudGlhbHMiXSxbMTEsImNsYXNzIixbMjIsImNyZWRlbnRpYWxzQ2xhc3MiXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LW5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXJLZXkiLCJpZCIsImF1dG9jb3JyZWN0IiwiYXV0b2NhcGl0YWxpemUiLCJkaXNhYmxlZCJdLFtbMjQsWyJsb2dpbk5hbWUiXV0sImVtYWlsIiwibG9naW4uZW1haWxfcGxhY2Vob2xkZXIiLCJsb2dpbi1hY2NvdW50LW5hbWUiLCJvZmYiLCJvZmYiLFsyNCxbInNob3dTZWNvbmRGYWN0b3IiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibG9naW4tYWNjb3VudC1wYXNzd29yZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9naW4ucGFzc3dvcmQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsIm1heGxlbmd0aCIsImRpc2FibGVkIl0sW1syNCxbImxvZ2luUGFzc3dvcmQiXV0sInBhc3N3b3JkIiwibG9naW4tYWNjb3VudC1wYXNzd29yZCIsIjIwMCIsWzI0LFsic2hvd1NlY29uZEZhY3RvciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJpZCIsImZvcmdvdC1wYXNzd29yZC1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0ZvcmdvdFBhc3N3b3JkIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwic2Vjb25kLWZhY3Rvci1mb3JtIixudWxsLFtbInNlY29uZEZhY3Rvck1ldGhvZCIsInNlY29uZEZhY3RvclRva2VuIiwiY2xhc3MiLCJiYWNrdXBFbmFibGVkIiwiaXNMb2dpbiJdLFtbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sWzI0LFsic2Vjb25kRmFjdG9yQ2xhc3MiXV0sWzI0LFsiYmFja3VwRW5hYmxlZCJdXSx0cnVlXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd1NlY3VyaXR5S2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJzZWN1cml0eS1rZXktZm9ybSIsbnVsbCxbWyJhbGxvd2VkQ3JlZGVudGlhbElkcyIsImNoYWxsZW5nZSIsInNob3dTZWN1cml0eUtleSIsInNob3dTZWNvbmRGYWN0b3IiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJvdGhlck1ldGhvZEFsbG93ZWQiLCJhY3Rpb24iXSxbWzI0LFsic2VjdXJpdHlLZXlBbGxvd2VkQ3JlZGVudGlhbElkcyJdXSxbMjQsWyJzZWN1cml0eUtleUNoYWxsZW5nZSJdXSxbMjQsWyJzaG93U2VjdXJpdHlLZXkiXV0sWzI0LFsic2hvd1NlY29uZEZhY3RvciJdXSxbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsib3RoZXJNZXRob2RBbGxvd2VkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhdXRoZW50aWNhdGVTZWN1cml0eUtleSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsInNlY29uZC1mYWN0b3ItaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpbnB1dElkIiwic2Vjb25kRmFjdG9yTWV0aG9kIiwiYmFja3VwRW5hYmxlZCJdLFtbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSwibG9naW4tc2Vjb25kLWZhY3RvciIsWzI0LFsic2Vjb25kRmFjdG9yTWV0aG9kIl1dLFsyNCxbImJhY2t1cEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkxvZ2luTG9jYWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNob3dTZWN1cml0eUtleSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImRpc2FibGVkIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ2luIl0sbnVsbF0sInVubG9jayIsWzI0LFsibG9naW5CdXR0b25MYWJlbCJdXSxbMjQsWyJsb2dpbkRpc2FibGVkIl1dLCJidG4tbGFyZ2UgYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dTaWdudXBMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIl0sWyJidG4tbGFyZ2UiLCJuZXctYWNjb3VudC1saW5rIixbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q3JlYXRlQWNjb3VudCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY3JlYXRlX2FjY291bnQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWFmdGVyLW1vZGFsLWZvb3RlciIsIiJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsb2dpbi1hbGVydCJdLFsxMSwiY2xhc3MiLFsyMiwiYWxlcnRDbGFzcyJdXSxbOF0sWzEsWzIyLCJhbGVydCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvbW9kYWwvbG9naW4ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL3VzZXJzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJpdGVtIl0sInN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuZGlyZWN0b3J5IC51c2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlyZWN0b3J5Il0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2Vycy10b3AiLCJkaXYiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCB1c2VyLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwicGVyaW9kLWNob29zZXIiLG51bGwsW1sicGVyaW9kIiwib25DaGFuZ2UiXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsicGVyaW9kIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiY2xhc3MiXSxbWzI0LFsibmFtZUlucHV0Il1dLCJkaXJlY3RvcnkuZmlsdGVyX25hbWUiLCJmaWx0ZXItbmFtZSBuby1ibHVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG90YWwtcm93cyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZGlyZWN0b3J5LnRvdGFsX3Jvd3MiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInRvdGFsUm93cyJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS1pdGVtIixudWxsLFtbInRhZ05hbWUiLCJjbGFzcyIsIml0ZW0iLCJzaG93VGltZVJlYWQiXSxbImRpdiIsInVzZXIiLFsyMywxLFtdXSxbMjQsWyJzaG93VGltZVJlYWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImRpcmVjdG9yeS5ub19yZXN1bHRzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS91c2VycyJ9fSksRW1iZXIuVEVNUExBVEVTLm1vZGFsPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwiLG51bGwsW1sibW9kYWxDbGFzcyIsInRpdGxlIiwic3VidGl0bGUiLCJwYW5lbHMiLCJzZWxlY3RlZFBhbmVsIiwib25TZWxlY3RQYW5lbCIsImNsYXNzIiwiZXJyb3JzIiwiY2xvc2VNb2RhbCJdLFtbMjQsWyJtb2RhbENsYXNzIl1dLFsyNCxbInRpdGxlIl1dLFsyNCxbInN1YnRpdGxlIl1dLFsyNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFBhbmVsIl1dLFsyNCxbIm9uU2VsZWN0UGFuZWwiXV0sImhpZGRlbiIsWzI0LFsiZXJyb3JzIl1dLFsyOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwib3V0bGV0IixbIm1vZGFsQm9keSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2FjdGl2YXRpb24tZWRpdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1lbWFpbC1mb3JtIixudWxsLFtbImVtYWlsIl0sW1syNCxbIm5ld0VtYWlsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImRpc2FibGVkIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUVtYWlsIl0sbnVsbF0sImxvZ2luLnN1Ym1pdF9uZXdfZW1haWwiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdLCJjbG9zZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9hY3RpdmF0aW9uLWVkaXQifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYWN0aXZhdGlvbi1yZXNlbnQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uc2VudF9hY3RpdmF0aW9uX2VtYWlsX2FnYWluIl0sW1siY3VycmVudEVtYWlsIl0sW1syNCxbImN1cnJlbnRFbWFpbCJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwibW9kYWwtZm9vdGVyLWNsb3NlIixudWxsLFtbImNsb3NlTW9kYWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2FjdGl2YXRpb24tcmVzZW50In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2FkZC1wb3N0LW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsicG9zdC5jb250cm9scy5hZGRfcG9zdF9ub3RpY2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMSxbMjgsInRleHRhcmVhIixudWxsLFtbInZhbHVlIl0sW1syNCxbIm5vdGljZSJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXROb3RpY2UiXSxudWxsXSxbMjQsWyJkaXNhYmxlZCJdXSxbMjgsImlmIixbWzI0LFsic2F2aW5nIl1dLCJzYXZpbmciLCJzYXZlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYWRkLXBvc3Qtbm90aWNlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2Fzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sicmF3VGl0bGUiXSxbWzI4LCJpMThuIixbInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5jb25maXJtX21vZGFsX3RpdGxlIl0sW1sicHJvdmlkZXIiXSxbWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsibG9naW4uIixbMjQsWyJtb2RlbCIsInByb3ZpZGVyX25hbWUiXV0sIi5uYW1lIl0sbnVsbF1dLG51bGxdXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJlcnJvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJlcnJvciJdXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFjY291bnRfZGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbmZpcm1fZGVzY3JpcHRpb24uYWNjb3VudF9zcGVjaWZpYyJdLFtbInByb3ZpZGVyIiwiYWNjb3VudF9kZXNjcmlwdGlvbiJdLFtbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJsb2dpbi4iLFsyNCxbIm1vZGVsIiwicHJvdmlkZXJfbmFtZSJdXSwiLm5hbWUiXSxudWxsXV0sbnVsbF0sWzI0LFsibW9kZWwiLCJhY2NvdW50X2Rlc2NyaXB0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbmZpcm1fZGVzY3JpcHRpb24uZ2VuZXJpYyJdLFtbInByb3ZpZGVyIl0sW1syOCwiaTE4biIsW1syOCwiY29uY2F0IixbImxvZ2luLiIsWzI0LFsibW9kZWwiLCJwcm92aWRlcl9uYW1lIl1dLCIubmFtZSJdLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sWyJ1c2VyLmFzc29jaWF0ZWRfYWNjb3VudHMuY29ubmVjdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZpbmlzaENvbm5lY3QiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJwbHVnIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiJdLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNhbmNlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2Fzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYXV0aC10b2tlbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsidXNlci5hdXRoX3Rva2Vucy53YXNfdGhpc195b3UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy53YXNfdGhpc195b3VfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmV4dGVuZGVkX2Rlc2NyaXB0aW9uIl0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy5kZXRhaWxzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJzdHlsZSIsImxpc3Qtc3R5bGUtdHlwZTpub25lIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJmYXItY2xvY2siXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsibW9kZWwiLCJzZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJtYXAtbWFya2VyLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwibG9jYXRpb24iXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJtb2RlbCIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLmJyb3dzZXJfYW5kX2RldmljZSJdLFtbImJyb3dzZXIiLCJkZXZpY2UiXSxbWzI0LFsibW9kZWwiLCJicm93c2VyIl1dLFsyNCxbIm1vZGVsIiwiZGV2aWNlIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJsYXRlc3RfcG9zdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMubGF0ZXN0X3Bvc3QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFeHBhbmRlZCJdXSxbOF0sWzEsWzI4LCJkLWljb24iLFtbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImNhcmV0LXVwIiwiY2FyZXQtZG93biJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImV4cGFuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJibG9ja3F1b3RlIix0cnVlXSxbOF0sWzEsWzI0LFsibGF0ZXN0X3Bvc3QiLCJjb29rZWQiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYmxvY2txdW90ZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxhdGVzdF9wb3N0IiwiZXhjZXJwdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJoaWdobGlnaHRTZWN1cmUiXSxudWxsXSwibG9jayIsInVzZXIuYXV0aF90b2tlbnMuc2VjdXJlX2FjY291bnQiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2F1dGgtdG9rZW4ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYXZhdGFyLXNlbGVjdG9yIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJhdmF0YXIiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidXNlci5jaGFuZ2VfYXZhdGFyLnRpdGxlIiwiYXZhdGFyLXNlbGVjdG9yIl1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInNlbGVjdGFibGVfYXZhdGFyc19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGFibGUtYXZhdGFycyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJzZWxlY3RhYmxlQXZhdGFycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJzZWxlY3RhYmxlLWF2YXRhciJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdEF2YXRhciIsWzIzLDEsW11dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjMsMSxbXV0sImh1Z2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1jaG9pY2UiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJzeXN0ZW0tYXZhdGFyIiwiYXZhdGFyIiwic3lzdGVtIixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzEwLCJmb3IiLCJzeXN0ZW0tYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsInN5c3RlbV9hdmF0YXJfdGVtcGxhdGUiXV0sImxhcmdlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2F2YXRhci5sZXR0ZXJfYmFzZWQiXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXZhdGFyLWNob2ljZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbImdyYXZhdGFyIiwiYXZhdGFyIiwiZ3JhdmF0YXIiLFsyNCxbInNlbGVjdGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsImdyYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsImdyYXZhdGFyX2F2YXRhcl90ZW1wbGF0ZSJdXSwibGFyZ2UiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIuZ3JhdmF0YXIiXSxudWxsXSx0cnVlXSxbMCwiICJdLFsxLFsyNCxbInVzZXIiLCJlbWFpbCJdXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJ0aXRsZSIsImRpc2FibGVkIiwiaWNvbiIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoR3JhdmF0YXIiXSxudWxsXSwidXNlci5jaGFuZ2VfYXZhdGFyLnJlZnJlc2hfZ3JhdmF0YXJfdGl0bGUiLFsyNCxbImdyYXZhdGFyUmVmcmVzaERpc2FibGVkIl1dLCJzeW5jIiwiYnRuLWRlZmF1bHQgYXZhdGFyLXNlbGVjdG9yLXJlZnJlc2gtZ3JhdmF0YXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JhdmF0YXJGYWlsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJlcnJvciJdLFs4XSxbMSxbMjgsIkkxOG4iLFsidXNlci5jaGFuZ2VfYXZhdGFyLmdyYXZhdGFyX2ZhaWxlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJhbGxvd0F2YXRhclVwbG9hZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1jaG9pY2UiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbInVwbG9hZGVkLWF2YXRhciIsImF2YXRhciIsInVwbG9hZGVkIixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInVwbG9hZGVkLWF2YXRhciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV0sImxhcmdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfYXZhdGFyLnVwbG9hZGVkX2F2YXRhciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIudXBsb2FkZWRfYXZhdGFyX2VtcHR5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLXVwbG9hZGVyIixudWxsLFtbInVzZXJfaWQiLCJ1cGxvYWRlZEF2YXRhclRlbXBsYXRlIiwidXBsb2FkZWRBdmF0YXJJZCIsInVwbG9hZGluZyIsImNsYXNzIiwiZG9uZSJdLFtbMjQsWyJ1c2VyIiwiaWQiXV0sWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV0sWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdXBsb2FkX2lkIl1dLFsyNCxbInVwbG9hZGluZyJdXSwiYXZhdGFyLXVwbG9hZGVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBsb2FkQ29tcGxldGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwic2VsZWN0YWJsZV9hdmF0YXJzX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQXZhdGFyU2VsZWN0aW9uIl0sbnVsbF0sImJ0bi1wcmltYXJ5IixbMjQsWyJ1cGxvYWRpbmciXV0sInNhdmUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9hdmF0YXItc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYm9va21hcmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyaWQiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siaWQiXSxbImJvb2ttYXJrLXJlbWluZGVyLW1vZGFsIl1dLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvck1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwibmFtZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicG9zdC5ib29rbWFya3MubmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwibmFtZSIsImNsYXNzIiwiZW50ZXIiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJuYW1lIl1dLCJuYW1lIiwiYm9va21hcmstbmFtZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmVBbmRDbG9zZSJdLG51bGxdLFsyOCwiaTE4biIsWyJwb3N0LmJvb2ttYXJrcy5uYW1lX3BsYWNlaG9sZGVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Qm9va21hcmtSZW1pbmRlckNvbnRyb2xzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNldF9yZW1pbmRlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicG9zdC5ib29rbWFya3Muc2V0X3JlbWluZGVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJIYXNUaW1lem9uZVNldCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidGFwLXRpbGUtZ3JpZCIsbnVsbCxbWyJhY3RpdmVUaWxlIl0sW1syNCxbInNlbGVjdGVkUmVtaW5kZXJUeXBlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidXNpbmdNb2JpbGVEZXZpY2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsyLCIge3t0YXAtdGlsZSBpY29uPVxcImRlc2t0b3BcXCIgdGV4dD0oaTE4biBcXCJib29rbWFya3MucmVtaW5kZXJzLmF0X2Rlc2t0b3BcXCIpIHRpbGVJZD1yZW1pbmRlclR5cGVzLkFUX0RFU0tUT1AgYWN0aXZlVGlsZT1ncmlkLmFjdGl2ZVRpbGUgb25DaGFuZ2U9KGFjdGlvbiBcXCJzZWxlY3RSZW1pbmRlclR5cGVcXCIpfX0gIl0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93TGF0ZXJUb2RheSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJ0YXAtdGlsZSIsbnVsbCxbWyJpY29uIiwidGV4dCIsInRpbGVJZCIsImFjdGl2ZVRpbGUiLCJvbkNoYW5nZSJdLFsiZmFyLW1vb24iLFsyNCxbImxhdGVyVG9kYXlGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIkxBVEVSX1RPREFZIl1dLFsyMywxLFsiYWN0aXZlVGlsZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0UmVtaW5kZXJUeXBlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImJyaWVmY2FzZSIsWzI0LFsibmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkIl1dLFsyNCxbInJlbWluZGVyVHlwZXMiLCJORVhUX0JVU0lORVNTX0RBWSJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1zdW4iLFsyNCxbInRvbW9ycm93Rm9ybWF0dGVkIl1dLFsyNCxbInJlbWluZGVyVHlwZXMiLCJUT01PUlJPVyJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1jbG9jayIsWzI0LFsibmV4dFdlZWtGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIk5FWFRfV0VFSyJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1jYWxlbmRhci1wbHVzIixbMjQsWyJuZXh0TW9udGhGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIk5FWFRfTU9OVEgiXV0sWzIzLDEsWyJhY3RpdmVUaWxlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RSZW1pbmRlclR5cGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMiwiIHt7dGFwLXRpbGUgaWNvbj1cXCJjYWxlbmRhci1hbHRcXCIgdGV4dD0oSTE4biBcXCJib29rbWFya3MucmVtaW5kZXJzLmN1c3RvbVxcIikgdGlsZUlkPXJlbWluZGVyVHlwZXMuQ1VTVE9NIGFjdGl2ZVRpbGU9Z3JpZC5hY3RpdmVUaWxlIG9uQ2hhbmdlPShhY3Rpb24gXFwic2VsZWN0UmVtaW5kZXJUeXBlXFwiKX19ICJdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzEsWzI4LCJpMThuIixbImJvb2ttYXJrcy5ub190aW1lem9uZSJdLFtbImJhc2VQYXRoIl0sW1syNCxbImJhc2VQYXRoIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImJvb2ttYXJrcy5zYXZlIiwiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQW5kQ2xvc2UiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlV2l0aG91dFNhdmluZ0Jvb2ttYXJrIl0sbnVsbF1dXV0sZmFsc2VdLFswLCIgICAgICBcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYm9va21hcmsifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYnVsay1hY3Rpb25zLWJ1dHRvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJ1dHRvbiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ1bGstYnV0dG9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJidXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImljb24iLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjMsMSxbImFjdGlvbiJdXV0sbnVsbF0sWzIzLDEsWyJsYWJlbCJdXSxbMjMsMSxbImljb24iXV0sWzIzLDEsWyJjbGFzcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9idWxrLWFjdGlvbnMtYnV0dG9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9idWxrLWNoYW5nZS1jYXRlZ29yeSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWNzLmJ1bGsuY2hvb3NlX25ld19jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsibmV3Q2F0ZWdvcnlJZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm5ld0NhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUNhdGVnb3J5Il0sbnVsbF0sInRvcGljcy5idWxrLmNoYW5nZV9jYXRlZ29yeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYnVsay1jaGFuZ2UtY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImxldmVsIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbIm5vdGlmaWNhdGlvbkxldmVscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1sidmFsdWUiLCJuYW1lIiwic2VsZWN0aW9uIl0sW1syMywxLFsiaWQiXV0sIm5vdGlmaWNhdGlvbl9sZXZlbCIsWzI0LFsibm90aWZpY2F0aW9uTGV2ZWxJZCJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbNywic3Ryb25nIix0cnVlXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJkZXNjcmlwdGlvbiJdXV0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImRpc2FibGVkIiwiYWN0aW9uIiwibGFiZWwiXSxbWzI0LFsiZGlzYWJsZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZU5vdGlmaWNhdGlvbkxldmVsIl0sbnVsbF0sInRvcGljcy5idWxrLm5vdGlmaWNhdGlvbl9sZXZlbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvY2hhbmdlLW93bmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJjaGFuZ2Utb3duZXJzaGlwIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuY2hhbmdlX293bmVyLmluc3RydWN0aW9ucyJdLFtbImNvdW50Iiwib2xkX3VzZXIiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dLFsyNCxbInNlbGVjdGVkUG9zdHNVc2VybmFtZSJdXV1dXSx0cnVlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJzaW5nbGUiLCJ1c2VybmFtZXMiLCJwbGFjZWhvbGRlcktleSIsImF1dG9jb21wbGV0ZSJdLFsidHJ1ZSIsWzI0LFsibmV3X3VzZXIiXV0sInRvcGljLmNoYW5nZV9vd25lci5wbGFjZWhvbGRlciIsImRpc2NvdXJzZSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlT3duZXJzaGlwT2ZQb3N0cyJdLG51bGxdLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiaWYiLFtbMjQsWyJzYXZpbmciXV0sInNhdmluZyIsInRvcGljLmNoYW5nZV9vd25lci5hY3Rpb24iXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NoYW5nZS1vd25lciJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9jaGFuZ2UtdGltZXN0YW1wIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJjaGFuZ2UtdGltZXN0YW1wIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuY2hhbmdlX3RpbWVzdGFtcC5pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJwIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJhbGVydCBhbGVydC1lcnJvciAiLFsyOCwidW5sZXNzIixbWzI0LFsidmFsaWRUaW1lc3RhbXAiXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5jaGFuZ2VfdGltZXN0YW1wLmludmFsaWRfdGltZXN0YW1wIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkYXRlLXBpY2tlci1wYXN0IixudWxsLFtbInZhbHVlIiwiY29udGFpbmVySWQiLCJvblNlbGVjdCJdLFtbMjgsInJlYWRvbmx5IixbWzI0LFsiZGF0ZSJdXV0sbnVsbF0sImRhdGUtY29udGFpbmVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImRhdGUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSJdLFsidGltZSIsWzI0LFsidGltZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJkYXRlLWNvbnRhaW5lciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIGNoYW5nZS10aW1lc3RhbXAtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsInRyYW5zbGF0ZWRMYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjQsWyJidXR0b25UaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NoYW5nZS10aW1lc3RhbXAifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvY29udmVydC10by1wdWJsaWMtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRvcGljLm1ha2VfcHVibGljLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMubWFrZV9wdWJsaWMuY2hvb3NlX2NhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJwdWJsaWNDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsicHVibGljQ2F0ZWdvcnlJZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWFrZVB1YmxpYyJdLG51bGxdLCJjb21wb3Nlci5tb2RhbF9vayIsWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NvbnZlcnQtdG8tcHVibGljLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2NyZWF0ZS1hY2NvdW50Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIl0sInN0YXRlbWVudHMiOltbNCwiY3JlYXRlLWFjY291bnQiLG51bGwsW1siZW1haWwiLCJkaXNhYmxlZCIsImFjdGlvbiJdLFtbMjQsWyJhY2NvdW50RW1haWwiXV0sWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUFjY291bnQiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJjb21wbGV0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIl0sWyJjcmVhdGUtYWNjb3VudC1iZWZvcmUtbW9kYWwtYm9keSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbImNyZWF0ZV9hY2NvdW50LnRpdGxlIixbMjgsImNvbmNhdCIsW1syOCwiaWYiLFtbMjQsWyJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iXV0sImhhcy1hbHQtYXV0aCJdLG51bGxdLCIgIixbMjgsImlmIixbWzI0LFsidXNlckZpZWxkcyJdXSwiaGFzLXVzZXItZmllbGRzIl0sbnVsbF1dLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJoYXNBdXRoT3B0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1siZXh0ZXJuYWxMb2dpbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDcmVhdGVGb3JtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsb2dpbi1mb3JtIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCBjcmVhdGUtYWNjb3VudC1lbWFpbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtZW1haWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSIsImlkIiwiZGlzYWJsZWQiLCJuYW1lIiwiYXV0b2ZvY3VzIl0sWyJlbWFpbCIsWzI0LFsiYWNjb3VudEVtYWlsIl1dLCJuZXctYWNjb3VudC1lbWFpbCIsWzI0LFsiZW1haWxWYWxpZGF0ZWQiXV0sImVtYWlsIiwiYXV0b2ZvY3VzIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMgY3JlYXRlLWFjY291bnQtZW1haWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiIsImlkIl0sW1syNCxbImVtYWlsVmFsaWRhdGlvbiJdXSwiYWNjb3VudC1lbWFpbC12YWxpZGF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VybmFtZVJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtdXNlcm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcm5hbWUudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwibmFtZSIsIm1heGxlbmd0aCIsImF1dG9jb21wbGV0ZSJdLFtbMjQsWyJhY2NvdW50VXNlcm5hbWUiXV0sIm5ldy1hY2NvdW50LXVzZXJuYW1lIiwidXNlcm5hbWUiLFsyNCxbIm1heFVzZXJuYW1lTGVuZ3RoIl1dLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIiwiaWQiXSxbWzI0LFsidXNlcm5hbWVWYWxpZGF0aW9uIl1dLCJ1c2VybmFtZS12YWxpZGF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZnVsbG5hbWVSZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtbmFtZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5uYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCJdLFtbMjQsWyJhY2NvdW50TmFtZSJdXSwibmV3LWFjY291bnQtbmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJuYW1lVmFsaWRhdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyMiwibmFtZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsIm5vVGFncyIsImFyZ3MiXSxbImNyZWF0ZS1hY2NvdW50LWJlZm9yZS1wYXNzd29yZCIsdHJ1ZSxbMjgsImhhc2giLG51bGwsW1siYWNjb3VudE5hbWUiLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50UGFzc3dvcmQiLCJ1c2VyRmllbGRzIiwiYXV0aE9wdGlvbnMiXSxbWzI0LFsiYWNjb3VudE5hbWUiXV0sWzI0LFsiYWNjb3VudFVzZXJuYW1lIl1dLFsyNCxbImFjY291bnRQYXNzd29yZCJdXSxbMjQsWyJ1c2VyRmllbGRzIl1dLFsyNCxbImF1dGhPcHRpb25zIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicGFzc3dvcmRSZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxhYmVsIl0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJuZXctYWNjb3VudC1wYXNzd29yZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5wYXNzd29yZC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicGFzc3dvcmQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwiaWQiLCJjYXBzTG9ja09uIl0sW1syNCxbImFjY291bnRQYXNzd29yZCJdXSwicGFzc3dvcmQiLCJuZXctYWNjb3VudC1wYXNzd29yZCIsWzI0LFsiY2Fwc0xvY2tPbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iXSxbWzI0LFsicGFzc3dvcmRWYWxpZGF0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzIyLCJwYXNzd29yZEluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY2Fwcy1sb2NrLXdhcm5pbmcgIixbMjgsInVubGVzcyIsW1syNCxbImNhcHNMb2NrT24iXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLmNhcHNfbG9ja193YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJwYXNzd29yZC1jb25maXJtYXRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtcGFzc3dvcmQtY29uZmlybWF0aW9uIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnBhc3N3b3JkX2NvbmZpcm1hdGlvbi50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaG9uZXlwb3QtaW5wdXQiLG51bGwsW1siaWQiLCJhdXRvY29tcGxldGUiLCJ2YWx1ZSJdLFsibmV3LWFjY291bnQtY29uZmlybWF0aW9uIiwibmV3LXBhc3N3b3JkIixbMjQsWyJhY2NvdW50SG9uZXlwb3QiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiaWQiXSxbWzI0LFsiYWNjb3VudENoYWxsZW5nZSJdXSwibmV3LWFjY291bnQtY2hhbGxlbmdlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwibm9UYWdzIiwiYXJncyJdLFsiY3JlYXRlLWFjY291bnQtYWZ0ZXItcGFzc3dvcmQiLHRydWUsWzI4LCJoYXNoIixudWxsLFtbImFjY291bnROYW1lIiwiYWNjb3VudFVzZXJuYW1lIiwiYWNjb3VudFBhc3N3b3JkIiwidXNlckZpZWxkcyJdLFtbMjQsWyJhY2NvdW50TmFtZSJdXSxbMjQsWyJhY2NvdW50VXNlcm5hbWUiXV0sWzI0LFsiYWNjb3VudFBhc3N3b3JkIl1dLFsyNCxbInVzZXJGaWVsZHMiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWZpZWxkIixudWxsLFtbImZpZWxkIiwidmFsdWUiXSxbWzIzLDEsWyJmaWVsZCJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Q3JlYXRlRm9ybSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWxhcmdlIGJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlQWNjb3VudCJdLG51bGxdLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJjcmVhdGVfYWNjb3VudC50aXRsZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiIsInNpemUiXSxbWzI0LFsiZm9ybVN1Ym1pdHRlZCJdXSwic21hbGwiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iXSxbImJ0bi1sYXJnZSIsImxvZ2luLWxpbmsiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJsb2dfaW4iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlzY2xhaW1lciJdLFs4XSxbMSxbMjIsImRpc2NsYWltZXJIdG1sIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSJdLFsiY3JlYXRlLWFjY291bnQtYWZ0ZXItbW9kYWwtZm9vdGVyIiwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9jcmVhdGUtYWNjb3VudCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9kZWxldGUtdG9waWMtZGlzYWxsb3dlZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInBvc3QuY29udHJvbHMuZGVsZXRlX3RvcGljX2Rpc2FsbG93ZWRfbW9kYWwiXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJjbG9zZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9kZWxldGUtdG9waWMtZGlzYWxsb3dlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9kaXNtaXNzLXJlYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCJdLFsidG9waWNzLmJ1bGsuYWxzb19kaXNtaXNzX3RvcGljcyIsWzI0LFsiZGlzbWlzc1RvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsiZGlzbWlzc1JlYWRUb3BpY3MiLFsyNCxbImRpc21pc3NUb3BpY3MiXV1dLG51bGxdLCJjaGVjayIsInRvcGljcy5idWxrLmRpc21pc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZGlzbWlzcy1yZWFkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2VkaXQtY2F0ZWdvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhYiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdiBuYXYtcGlsbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImVkaXQtY2F0ZWdvcnktdGFiIixudWxsLFtbInBhbmVscyIsInNlbGVjdGVkVGFiIiwidGFiIl0sW1syNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFRhYiJdXSwiZ2VuZXJhbCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJlZGl0LWNhdGVnb3J5LXRhYiIsbnVsbCxbWyJwYW5lbHMiLCJzZWxlY3RlZFRhYiIsInRhYiJdLFtbMjQsWyJwYW5lbHMiXV0sWzI0LFsic2VsZWN0ZWRUYWIiXV0sInNlY3VyaXR5Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImVkaXQtY2F0ZWdvcnktdGFiIixudWxsLFtbInBhbmVscyIsInNlbGVjdGVkVGFiIiwidGFiIl0sW1syNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFRhYiJdXSwic2V0dGluZ3MiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJpbWFnZXMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJ0b3BpYy10ZW1wbGF0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJ0YWdzIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsicGFuZWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syMywxLFtdXV0sW1sic2VsZWN0ZWRUYWIiLCJjYXRlZ29yeSIsInJlZ2lzdGVyVmFsaWRhdG9yIl0sW1syNCxbInNlbGVjdGVkVGFiIl1dLFsyNCxbIm1vZGVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWdpc3RlclZhbGlkYXRvciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImlkIiwiY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsImxhYmVsIl0sWyJzYXZlLWNhdGVnb3J5IiwiYnRuLXByaW1hcnkiLFsyNCxbImRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQ2F0ZWdvcnkiXSxudWxsXSxbMjQsWyJzYXZlTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9kZWxldGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciBwdWxsLXJpZ2h0IixbMjQsWyJkZWxldGVEaXNhYmxlZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlQ2F0ZWdvcnkiXSxudWxsXSwiZmFyLXRyYXNoLWFsdCIsImNhdGVnb3J5LmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImlkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlzYWJsZV9pbmZvX3dyYXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJkaXNhYmxlZCIsImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbImRlbGV0ZURpc2FibGVkIl1dLCJidG4tZGVmYXVsdCBkaXNhYmxlLW5vLWhvdmVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlRGVsZXRlVG9vbHRpcCJdLG51bGxdLCJxdWVzdGlvbi1jaXJjbGUiLCJjYXRlZ29yeS5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYW5ub3RfZGVsZXRlX3JlYXNvbiAiLFsyOCwiaWYiLFtbMjQsWyJoaWRkZW5Ub29sdGlwIl1dLCJoaWRkZW4iLCIiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImNhbm5vdF9kZWxldGVfcmVhc29uIl1dLHRydWVdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZWRpdC1jYXRlZ29yeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9lZGl0LXRvcGljLXRpbWVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwiYXV0b0ZvY3VzIl0sWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnRpdGxlIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJwdWJsaWMtdG9waWMtdGltZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJwdWJsaWMtdG9waWMtdGltZXIiLCJ0b3BpYy10aW1lciIsInRydWUiLFsyNCxbImlzUHVibGljIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMudG9waWNfc3RhdHVzX3VwZGF0ZS5wdWJsaWNfdGltZXJfdHlwZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInByaXZhdGUtdG9waWMtdGltZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJwcml2YXRlLXRvcGljLXRpbWVyIiwidG9waWMtdGltZXIiLCJmYWxzZSIsWzI0LFsiaXNQdWJsaWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnByaXZhdGVfdGltZXJfdHlwZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImVkaXQtdG9waWMtdGltZXItZm9ybSIsbnVsbCxbWyJ0b3BpYyIsInRvcGljVGltZXIiLCJ0aW1lclR5cGVzIiwidXBkYXRlVGltZSIsIm9uQ2hhbmdlU3RhdHVzVHlwZSIsIm9uQ2hhbmdlVXBkYXRlVGltZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJ0b3BpY1RpbWVyIl1dLFsyNCxbInNlbGVjdGlvbnMiXV0sWzI0LFsidXBkYXRlVGltZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25DaGFuZ2VTdGF0dXNUeXBlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlVXBkYXRlVGltZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJzYXZlRGlzYWJsZWQiXV0sInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUuc2F2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmVUaW1lciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRvcGljVGltZXIiLCJleGVjdXRlX2F0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJwdWxsLXJpZ2h0IGJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVUaW1lciJdLG51bGxdLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnJlbW92ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9lZGl0LXRvcGljLXRpbWVyIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2V4cGxhaW4tcmV2aWV3YWJsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicyJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyJdLFsiZXhwbGFpbi1yZXZpZXdhYmxlIl1dLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZXhwbGFpbi5mb3JtdWxhIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZXhwbGFpbi5zdWJ0b3RhbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInJldmlld2FibGVFeHBsYW5hdGlvbiIsInNjb3JlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInNjb3JlLXZhbHVlIixudWxsLFtbInZhbHVlIiwidGFnTmFtZSJdLFsiMS4wIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY29yZS12YWx1ZSIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidGFnTmFtZSJdLFtbMjMsMSxbInR5cGVfYm9udXMiXV0sInR5cGVfYm9udXMiLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInNjb3JlLXZhbHVlIixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJ0YWdOYW1lIl0sW1syMywxLFsidGFrZV9hY3Rpb25fYm9udXMiXV0sInRha2VfYWN0aW9uX2JvbnVzIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY29yZS12YWx1ZSIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidGFnTmFtZSJdLFtbMjMsMSxbInRydXN0X2xldmVsX2JvbnVzIl1dLCJ0cnVzdF9sZXZlbF9ib251cyIsIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwic2NvcmUtdmFsdWUiLG51bGwsW1sidmFsdWUiLCJsYWJlbCIsInRhZ05hbWUiXSxbWzIzLDEsWyJ1c2VyX2FjY3VyYWN5X2JvbnVzIl1dLCJ1c2VyX2FjY3VyYWN5X2JvbnVzIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFsxLFsyOCwiZmxvYXQiLFtbMjMsMSxbInNjb3JlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwidG90YWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmV4cGxhaW4udG90YWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFsxLFsyOCwiZmxvYXQiLFtbMjQsWyJyZXZpZXdhYmxlRXhwbGFuYXRpb24iLCJ0b3RhbF9zY29yZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRocmVzaG9sZHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLm1pbl9zY29yZV92aXNpYmlsaXR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1bSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmbG9hdCIsW1syNCxbInJldmlld2FibGVFeHBsYW5hdGlvbiIsIm1pbl9zY29yZV92aXNpYmlsaXR5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLnNjb3JlX3RvX2hpZGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImZsb2F0IixbWzI0LFsicmV2aWV3YWJsZUV4cGxhbmF0aW9uIiwiaGlkZV9wb3N0X3Njb3JlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiY2xvc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZXhwbGFpbi1yZXZpZXdhYmxlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZlYXR1cmUtdG9waWMtb24tcHJvZmlsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyIsImlkIl0sWyJmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUiLCJjaG9vc2luZy10b3BpYyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNob29zZS10b3BpYyIsbnVsbCxbWyJjdXJyZW50VG9waWNJZCIsInNlbGVjdGVkVG9waWNJZCIsImFkZGl0aW9uYWxGaWx0ZXJzIiwibGFiZWwiLCJ0b3BpY0NoYW5nZWRDYWxsYmFjayIsImxvYWRPbkluaXQiXSxbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsImlkIl1dLFsyNCxbIm5ld0ZlYXR1cmVkVG9waWNJZCJdXSwic3RhdHVzOnB1YmxpYyIsInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLnNlYXJjaF9sYWJlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm5ld1RvcGljU2VsZWN0ZWQiXSxudWxsXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSwiYnRuLXByaW1hcnkgc2F2ZS1mZWF0dXJlZC10b3BpYy1vbi1wcm9maWxlIixbMjQsWyJub1RvcGljU2VsZWN0ZWQiXV0sInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLnNhdmUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZlYXR1cmUtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiXSxbImZlYXR1cmUtdG9waWMiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJwaW5uZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmVhdHVyZS1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzYyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwaW5uZWRfZ2xvYmFsbHkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicGlubmVkR2xvYmFsbHlDb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmFscmVhZHlfcGlubmVkX2dsb2JhbGx5Il0sW1siY291bnQiXSxbWzI0LFsicGlubmVkR2xvYmFsbHlDb3VudCJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub3RfcGlubmVkX2dsb2JhbGx5Il0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuZ2xvYmFsX3Bpbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzIyLCJhbHJlYWR5UGlubmVkTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMucGluX25vdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInVuUGluTWVzc2FnZSJdLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVucGluIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUudW5waW4iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1sic2l6ZSIsImNvbmRpdGlvbiJdLFsic21hbGwiLFsyNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzIyLCJhbHJlYWR5UGlubmVkTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLnBpbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsImlzTW9iaWxlRGV2aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJwaW5NZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJjbGFzcyIsImluY2x1ZGVGYXJGdXR1cmUiLCJjbGVhcmFibGUiLCJpbnB1dCIsIm9uQ2hhbmdlSW5wdXQiXSxbInBpbi11bnRpbCIsdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwicGlubmVkSW5DYXRlZ29yeVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRJbkNhdGVnb3J5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIl1dLFsyNCxbInBpbkluQ2F0ZWdvcnlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJwaW5NZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1jbG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJjbGFzcyIsImluY2x1ZGVGYXJGdXR1cmUiLCJjbGVhcmFibGUiLCJpbnB1dCIsIm9uQ2hhbmdlSW5wdXQiXSxbInBpbi11bnRpbCIsdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwicGlubmVkSW5DYXRlZ29yeVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRJbkNhdGVnb3J5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIl1dLFsyNCxbInBpbkluQ2F0ZWdvcnlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJwaW4iXSxudWxsXSwidGh1bWJ0YWNrIiwidG9waWMuZmVhdHVyZS5waW4iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZlYXR1cmUtc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInBpbm5lZEdsb2JhbGx5Q291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuYWxyZWFkeV9waW5uZWRfZ2xvYmFsbHkiXSxbWyJjb3VudCJdLFtbMjQsWyJwaW5uZWRHbG9iYWxseUNvdW50Il1dXV1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub3RfcGlubmVkX2dsb2JhbGx5Il0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmdsb2JhbF9waW5fbm90ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJpc01vYmlsZURldmljZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLnBpbl9nbG9iYWxseSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwid2l0aC12YWxpZGF0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImNsYXNzIiwiaW5jbHVkZUZhckZ1dHVyZSIsImNsZWFyYWJsZSIsImlucHV0Iiwib25DaGFuZ2VJbnB1dCJdLFsicGluLXVudGlsIix0cnVlLHRydWUsWzI0LFsibW9kZWwiLCJwaW5uZWRHbG9iYWxseVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRHbG9iYWxseVVudGlsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIiwic2hvd25BdCJdLFtbMjQsWyJwaW5HbG9iYWxseVZhbGlkYXRpb24iXV0sWzI0LFsicGluR2xvYmFsbHlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMucGluX2dsb2JhbGx5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJmYXItY2xvY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQiLG51bGwsW1siY2xhc3MiLCJpbmNsdWRlRmFyRnV0dXJlIiwiY2xlYXJhYmxlIiwiaW5wdXQiLCJvbkNoYW5nZUlucHV0Il0sWyJwaW4tdW50aWwiLHRydWUsdHJ1ZSxbMjQsWyJtb2RlbCIsInBpbm5lZEdsb2JhbGx5VW50aWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInBpbm5lZEdsb2JhbGx5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkdsb2JhbGx5VmFsaWRhdGlvbiJdXSxbMjQsWyJwaW5HbG9iYWxseVRpcFNob3duQXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBpbkdsb2JhbGx5Il0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUucGluX2dsb2JhbGx5IiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmVhdHVyZS1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiYmFubmVyQ291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuYmFubmVyX2V4aXN0cyJdLG51bGxdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub19iYW5uZXJfZXhpc3RzIl0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmJhbm5lcl9ub3RlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImlzQmFubmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5yZW1vdmVfYmFubmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMubWFrZV9iYW5uZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpc0Jhbm5lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQmFubmVyIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUucmVtb3ZlX2Jhbm5lciIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJtYWtlQmFubmVyIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUubWFrZV9iYW5uZXIiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLW1vZGFsLWNhbmNlbCIsbnVsbCxbWyJjbG9zZSJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9mZWF0dXJlLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZsYWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImYiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiLCJ0aXRsZSJdLFsiZmxhZy1tb2RhbCIsWzI0LFsidGl0bGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZmxhZy1zZWxlY3Rpb24iLG51bGwsW1sibmFtZUtleSIsImZsYWdzIl0sW1syNCxbInNlbGVjdGVkIiwibmFtZV9rZXkiXV0sWzI0LFsiZmxhZ3NBdmFpbGFibGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJmbGFnLWFjdGlvbi10eXBlIixudWxsLFtbImZsYWciLCJtZXNzYWdlIiwiaXNXYXJuaW5nIiwic2VsZWN0ZWRGbGFnIiwidXNlcm5hbWUiLCJzdGFmZkZsYWdzQXZhaWxhYmxlIiwiY2hhbmdlUG9zdEFjdGlvblR5cGUiXSxbWzIzLDEsW11dLFsyNCxbIm1lc3NhZ2UiXV0sWzI0LFsiaXNXYXJuaW5nIl1dLFsyNCxbInNlbGVjdGVkIl1dLFsyNCxbIm1vZGVsIiwidXNlcm5hbWUiXV0sWzI0LFsic3RhZmZGbGFnc0F2YWlsYWJsZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsInRpdGxlIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUZsYWciXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZmxhZ2dpbmcuc3VibWl0X3Rvb2x0aXAiLFsyNCxbInN1Ym1pdEljb24iXV0sWzI0LFsic3VibWl0TGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZW5kV2FybmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUZsYWdBc1dhcm5pbmciXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJmbGFnZ2luZy5vZmZpY2lhbF93YXJuaW5nIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5UYWtlQWN0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwidGl0bGUiLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0YWtlQWN0aW9uIl0sbnVsbF0sWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sImZsYWdnaW5nLnRha2VfYWN0aW9uX3Rvb2x0aXAiLCJnYXZlbCIsImZsYWdnaW5nLnRha2VfYWN0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVsZXRlU3BhbW1lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVNwYW1tZXIiXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJmbGFnZ2luZy5kZWxldGVfc3BhbW1lciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9mbGFnIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZvcmdvdC1wYXNzd29yZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyJdLFsiZm9yZ290LXBhc3N3b3JkLW1vZGFsIl1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm9mZmVySGVscCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzIyLCJvZmZlckhlbHAiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJ1c2VybmFtZS1vci1lbWFpbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmludml0ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiaWQiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIl0sW1syNCxbImFjY291bnRFbWFpbE9yVXNlcm5hbWUiXV0sImxvZ2luLmVtYWlsX3BsYWNlaG9sZGVyIiwidXNlcm5hbWUtb3ItZW1haWwiLCJvZmYiLCJvZmYiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm9mZmVySGVscCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImxhYmVsIiwidHlwZSIsImFjdGlvbiJdLFsiYnRuLWxhcmdlIGJ0bi1wcmltYXJ5IiwiZm9yZ290X3Bhc3N3b3JkLmJ1dHRvbl9vayIsInN1Ym1pdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9rIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiaGVscFNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImxhYmVsIiwiaWNvbiIsImFjdGlvbiJdLFsiYnRuLWxhcmdlIiwiZm9yZ290X3Bhc3N3b3JkLmJ1dHRvbl9oZWxwIiwicXVlc3Rpb24tY2lyY2xlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaGVscCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiLCJkaXNhYmxlZCIsImNsYXNzIiwidHlwZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRQYXNzd29yZCJdLG51bGxdLCJmb3Jnb3RfcGFzc3dvcmQucmVzZXQiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJidG4tcHJpbWFyeSBmb3Jnb3QtcGFzc3dvcmQtcmVzZXQiLCJzdWJtaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZm9yZ290LXBhc3N3b3JkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2dyYW50LWJhZGdlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJncmFudC1iYWRnZSJdXSx7InN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibm9HcmFudGFibGVCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmJhZGdlcy5ub19iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwidmFsdWUiLCJjb250ZW50Iiwibm9uZSIsIm9uQ2hhbmdlIl0sW3RydWUsWzI0LFsic2VsZWN0ZWRCYWRnZUlkIl1dLFsyNCxbImdyYW50YWJsZUJhZGdlcyJdXSwiYmFkZ2VzLm5vbmUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsic2VsZWN0ZWRCYWRnZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJncmFudEJhZGdlIl0sbnVsbF0sImFkbWluLmJhZGdlcy5ncmFudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9ncmFudC1iYWRnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9ncm91cC1hZGQtbWVtYmVycyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS12ZXJ0aWNhbCBncm91cC1hZGQtbWVtYmVycyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuYWRkX21lbWJlcnMudXNlcm5hbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJjbGFzcyIsInVzZXJuYW1lcyIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbImlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwidXNlcm5hbWVzIl1dLCJncm91cHMuc2VsZWN0b3JfcGxhY2Vob2xkZXIiLCJncm91cC1hZGQtbWVtYmVycy11c2VyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwiYWRtaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGdyb3VwLWFkZC1tZW1iZXJzLW1ha2Utb3duZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjbGFzcyIsImNoZWNrZWQiLCJkaXNhYmxlZCJdLFsiY2hlY2tib3giLCJpbmxpbmUiLFsyNCxbInNldEFzT3duZXIiXV0sWzI0LFsiYnVsa0FkZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmFkZF9tZW1iZXJzLmFzX293bmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWRkTWVtYmVycyJdLG51bGxdLCJhZGQgYnRuLXByaW1hcnkiLCJwbHVzIixbMjQsWyJkaXNhYmxlQWRkQnV0dG9uIl1dLCJncm91cHMuYWRkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2dyb3VwLWFkZC1tZW1iZXJzIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2dyb3VwLWJ1bGstYWRkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIl0sWyJhZG1pbi5ncm91cHMuYnVsa19hZGQudGl0bGUiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmVzdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJlc3VsdCIsIm1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1zdWNjZXNzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyNCxbInJlc3VsdCIsIm1lc3NhZ2UiXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXN1bHQiLCJpbnZhbGlkVXNlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLmNvbXBsZXRlX3VzZXJzX25vdF9hZGRlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjQsWyJyZXN1bHQiLCJpbnZhbGlkVXNlcnMiXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjYW5jZWwiXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYW5jZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS12ZXJ0aWNhbCBncm91cC1idWxrLWFkZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMuYnVsa19hZGQucGFzdGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsiaW5wdXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFkZCJdLG51bGxdLCJhZGQgYnRuLXByaW1hcnkiLCJwbHVzIixbMjQsWyJkaXNhYmxlQWRkQnV0dG9uIl1dLCJncm91cHMuYWRkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2dyb3VwLWJ1bGstYWRkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2hpc3RvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInQiLCJ0Il0sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwibWF4SGVpZ2h0Il0sWyJoaXN0b3J5IiwiNzAlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbi1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsImF2YXRhcl90ZW1wbGF0ZSJdXSwic21hbGwiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZGF0ZSJdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJtb2RlbCIsImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZWRpdF9yZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAg4oCUICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZWRpdC1yZWFzb24iXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJlZGl0X3JlYXNvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICDigJQgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsInByZXZpb3VzIiwiYXZhdGFyX3RlbXBsYXRlIl1dLCJzbWFsbCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwidXNlcl9jaGFuZ2VzIiwicHJldmlvdXMiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICDihpIgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsImN1cnJlbnQiLCJhdmF0YXJfdGVtcGxhdGUiXV0sInNtYWxsIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiLCJjdXJyZW50IiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIndpa2lfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgIOKAlCAiXSxbMSxbMjgsImRpc2FibGVkLWljb24iLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sWyJmYXItZWRpdCIsWzI0LFsid2lraURpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwb3N0X3R5cGVfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgIOKAlCAiXSxbMSxbMjgsImRpc2FibGVkLWljb24iLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sWyJzaGllbGQtYWx0IixbMjQsWyJwb3N0VHlwZURpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYXRlZ29yeV9pZF9jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAg4oCUICJdLFsxLFsyMiwicHJldmlvdXNDYXRlZ29yeSJdLHRydWVdLFswLCIg4oaSICJdLFsxLFsyMiwiY3VycmVudENhdGVnb3J5Il0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImRpc3BsYXktbW9kZXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheUlubGluZSJdLG51bGxdLCJmYXItc3F1YXJlIiwicG9zdC5yZXZpc2lvbnMuZGlzcGxheXMuaW5saW5lLmJ1dHRvbiIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLmlubGluZS50aXRsZSIsWzI0LFsiaW5saW5lQ2xhc3MiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJ0aXRsZSIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNwbGF5U2lkZUJ5U2lkZSJdLG51bGxdLCJjb2x1bW5zIiwicG9zdC5yZXZpc2lvbnMuZGlzcGxheXMuc2lkZV9ieV9zaWRlLmJ1dHRvbiIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLnNpZGVfYnlfc2lkZS50aXRsZSIsWzI0LFsic2lkZUJ5U2lkZUNsYXNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsInRpdGxlIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc3BsYXlTaWRlQnlTaWRlTWFya2Rvd24iXSxudWxsXSwiY29sdW1ucyIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLnNpZGVfYnlfc2lkZV9tYXJrZG93bi5idXR0b24iLCJwb3N0LnJldmlzaW9ucy5kaXNwbGF5cy5zaWRlX2J5X3NpZGVfbWFya2Rvd24udGl0bGUiLFsyNCxbInNpZGVCeVNpZGVNYXJrZG93bkNsYXNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbnMiXSxbMTEsImRhdGEtcG9zdC1pZCIsWzI5LFtbMjQsWyJtb2RlbCIsInBvc3RfaWQiXV1dXV0sWzExLCJjbGFzcyIsWzIyLCJoaWRkZW5DbGFzc2VzIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0aXRsZV9jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyMiwidGl0bGVEaWZmIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInVzZXJfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsInByZXZpb3VzIiwiYXZhdGFyX3RlbXBsYXRlIl1dLCJzbWFsbCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwidXNlcl9jaGFuZ2VzIiwicHJldmlvdXMiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICDihpIgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsImN1cnJlbnQiLCJhdmF0YXJfdGVtcGxhdGUiXV0sInNtYWxsIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiLCJjdXJyZW50IiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ3aWtpX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZGlzYWJsZWQtaWNvbiIsbnVsbCxbWyJpY29uIiwiZGlzYWJsZWQiXSxbImZhci1lZGl0IixbMjQsWyJ3aWtpRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwb3N0X3R5cGVfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkaXNhYmxlZC1pY29uIixudWxsLFtbImljb24iLCJkaXNhYmxlZCJdLFsic2hpZWxkLWFsdCIsWzI0LFsicG9zdFR5cGVEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X2lkX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMiwicHJldmlvdXNDYXRlZ29yeSJdLHRydWVdLFswLCIg4oaSICJdLFsxLFsyMiwiY3VycmVudENhdGVnb3J5Il0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInRhZ3NfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5jaGFuZ2VkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInByZXZpb3VzVGFnQ2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syMywyLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAg4oaSXFxuICAgICAgICDCoFxcbiJdLFs0LCJlYWNoIixbWzI0LFsiY3VycmVudFRhZ0NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfbGlua19jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfbGlua19jaGFuZ2VzIiwicHJldmlvdXMiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgIOKGklxcbiAgICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJmZWF0dXJlZF9saW5rX2NoYW5nZXMiLCJjdXJyZW50Il1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsicG9zdC1yZXZpc2lvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJsaW5rcy1yZWRpcmVjdCIsbnVsbCxbWyJjbGFzcyJdLFsicm93Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjIsImJvZHlEaWZmIl0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidG9waWNDb250cm9sbGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwicmV2aXNpb24tY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwidGl0bGUiLCJkaXNhYmxlZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkRmlyc3RWZXJzaW9uIl0sbnVsbF0sImZhc3QtYmFja3dhcmQiLCJwb3N0LnJldmlzaW9ucy5jb250cm9scy5maXJzdCIsWzI0LFsibG9hZEZpcnN0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsInRpdGxlIiwiZGlzYWJsZWQiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZFByZXZpb3VzVmVyc2lvbiJdLG51bGxdLCJiYWNrd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLnByZXZpb3VzIixbMjQsWyJsb2FkUHJldmlvdXNEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbi1udW1iZXJzIl0sWzExLCJjbGFzcyIsWzI5LFtbMjgsInVubGVzcyIsW1syNCxbImRpc3BsYXlSZXZpc2lvbnMiXV0sImludmlzaWJsZSJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iLCJzaXplIl0sW1syNCxbImxvYWRpbmciXV0sInNtYWxsIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzIyLCJyZXZpc2lvbnNUZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwidGl0bGUiLCJkaXNhYmxlZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTmV4dFZlcnNpb24iXSxudWxsXSwiZm9yd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLm5leHQiLFsyNCxbImxvYWROZXh0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsInRpdGxlIiwiZGlzYWJsZWQiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZExhc3RWZXJzaW9uIl0sbnVsbF0sImZhc3QtZm9yd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmxhc3QiLFsyNCxbImxvYWRMYXN0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInJldmlzaW9uLWZvb3Rlci1idXR0b25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkaXNwbGF5RWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0UG9zdCJdLG51bGxdLCJwZW5jaWwtYWx0IiwiYnRuLWRlZmF1bHQiLFsyNCxbImVkaXRCdXR0b25MYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkaXNwbGF5UmV2ZXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmV2ZXJ0VG9WZXJzaW9uIl0sbnVsbF0sInVuZG8iLCJwb3N0LnJldmlzaW9ucy5jb250cm9scy5yZXZlcnQiLCJidG4tZGFuZ2VyIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlIaWRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaGlkZVZlcnNpb24iXSxudWxsXSwiZmFyLWV5ZS1zbGFzaCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmhpZGUiLCJidG4tZGFuZ2VyIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlTaG93Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1ZlcnNpb24iXSxudWxsXSwiZmFyLWV5ZSIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLnNob3ciLCJidG4tZGVmYXVsdCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2hpc3RvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvaWdub3JlLWR1cmF0aW9uLXdpdGgtdXNlcm5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJhdXRvRm9jdXMiXSxbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl90aXRsZSIsImZhbHNlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl91c2VybmFtZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwic2luZ2xlIiwiY2xhc3MiLCJ1c2VybmFtZXMiXSxbdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIixbMjQsWyJpZ25vcmVkVXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImxhYmVsIiwiaW5wdXQiLCJpbmNsdWRlV2Vla2VuZCIsImluY2x1ZGVEYXRlVGltZSIsImluY2x1ZGVNaWRGdXR1cmUiLCJpbmNsdWRlRmFyRnV0dXJlIiwib25DaGFuZ2VJbnB1dCJdLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3doZW4iLFsyOCwicmVhZG9ubHkiLFtbMjQsWyJpZ25vcmVkVW50aWwiXV1dLG51bGxdLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImlnbm9yZWRVbnRpbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJfbm90aWZpY2F0aW9ucy5pZ25vcmVfZHVyYXRpb25fbm90ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIiwiYWN0aW9uIl0sWyJidG4tcHJpbWFyeSIsWzI0LFsic2F2ZURpc2FibGVkIl1dLCJ1c2VyLnVzZXJfbm90aWZpY2F0aW9ucy5pZ25vcmVfZHVyYXRpb25fc2F2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImlnbm9yZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2lnbm9yZS1kdXJhdGlvbi13aXRoLXVzZXJuYW1lIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2lnbm9yZS1kdXJhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImF1dG9Gb2N1cyJdLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpdGxlIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJsYWJlbCIsImlucHV0IiwiaW5jbHVkZVdlZWtlbmQiLCJpbmNsdWRlRGF0ZVRpbWUiLCJpbmNsdWRlTWlkRnV0dXJlIiwiaW5jbHVkZUZhckZ1dHVyZSIsIm9uQ2hhbmdlSW5wdXQiXSxbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl93aGVuIixbMjQsWyJpZ25vcmVkVW50aWwiXV0sdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiaWdub3JlZFVudGlsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJzYXZlRGlzYWJsZWQiXV0sInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl9zYXZlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaWdub3JlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvaWdub3JlLWR1cmF0aW9uIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2luc2VydC1oeXBlcmxpbmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInJlc3VsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJjb21wb3Nlci5saW5rX2RpYWxvZ190aXRsZSIsImluc2VydC1saW5rIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyIsImtleS11cCJdLFtbMjQsWyJsaW5rVXJsIl1dLCJjb21wb3Nlci5saW5rX3VybF9wbGFjZWhvbGRlciIsImxpbmstdXJsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZWFyY2hMb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwibG9hZGluZy1zcGlubmVyIl0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzZWFyY2hSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnRlcm5hbC1saW5rLXJlc3VsdHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic2VhcmNoUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtbGluayJdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVybCJdXV1dXSxbMTEsIm9uY2xpY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsaW5rQ2xpY2siXSxudWxsXV0sWzExLCJkYXRhLXRpdGxlIixbMjksW1syMywxLFsidGl0bGUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtc3RhdHVzIixudWxsLFtbInRvcGljIiwiZGlzYWJsZUFjdGlvbnMiXSxbWzIzLDEsW11dLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syMywxLFsiZmFuY3lfdGl0bGUiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLFtbImhpZGVQYXJlbnQiXSxbdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWdzIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyJdLFtbMjQsWyJsaW5rVGV4dCJdXSwiY29tcG9zZXIubGlua19vcHRpb25hbF90ZXh0IiwibGluay10ZXh0Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLXByaW1hcnkiLCJjb21wb3Nlci5tb2RhbF9vayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9rIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLWRhbmdlciIsImNvbXBvc2VyLm1vZGFsX2NhbmNlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvaW5zZXJ0LWh5cGVybGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9qdW1wLXRvLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRvcGljLnByb2dyZXNzLmp1bXBfcHJvbXB0X2xvbmciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImp1bXAtdG8tcG9zdC1mb3JtIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImp1bXAtdG8tcG9zdC1jb250cm9sIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGV4Il0sWzhdLFswLCIjIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwidHlwZSIsInZhbHVlIiwiaW5zZXJ0LW5ld2xpbmUiXSxbInBvc3QtanVtcCIsIm51bWJlciIsWzI0LFsicG9zdE51bWJlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dC1oaW50LXRleHQgcG9zdC1udW1iZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLnByb2dyZXNzLmp1bXBfcHJvbXB0X29mIl0sW1siY291bnQiXSxbWzI0LFsiZmlsdGVyZWRQb3N0c0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlcGFyYXRvciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5wcm9ncmVzcy5qdW1wX3Byb21wdF9vciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiaHIiLHRydWVdLFsxMCwiY2xhc3MiLCJyaWdodCJdLFs4XSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwianVtcC10by1kYXRlLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQtaGludC10ZXh0IHBvc3QtZGF0ZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMucHJvZ3Jlc3MuanVtcF9wcm9tcHRfdG9fZGF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRhdGUtcGlja2VyIixudWxsLFtbImlkIiwiY2xhc3MiLCJ2YWx1ZSIsImRlZmF1bHREYXRlIl0sWyJwb3N0LWRhdGUiLCJkYXRlLWlucHV0IixbMjQsWyJwb3N0RGF0ZSJdXSwiWVlZWS1NTS1ERCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXAiXSxudWxsXSwiY29tcG9zZXIubW9kYWxfb2siXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2p1bXAtdG8tcG9zdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9rZXlib2FyZC1zaG9ydGN1dHMtaGVscCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJpZCJdLFsia2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLmp1bXBfdG8udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJqdW1wX3RvIiwiaG9tZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImxhdGVzdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsIm5ldyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsInVucmVhZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImNhdGVnb3JpZXMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJ0b3AiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJib29rbWFya3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJwcm9maWxlIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsIm1lc3NhZ2VzIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImRyYWZ0cyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLm5hdmlnYXRpb24udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJuYXZpZ2F0aW9uIiwiYmFjayJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsImp1bXAiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsIm5hdmlnYXRpb24iLCJ1cF9kb3duIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJuYXZpZ2F0aW9uIiwib3BlbiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsIm5leHRfcHJldiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsImdvX3RvX3VucmVhZF9wb3N0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsia2V5Ym9hcmRfc2hvcnRjdXRzX2hlbHAuYXBwbGljYXRpb24udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsImhhbWJ1cmdlcl9tZW51Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsInVzZXJfcHJvZmlsZV9tZW51Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsInNob3dfaW5jb21pbmdfdXBkYXRlZF90b3BpY3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwic2VhcmNoIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsImhlbHAiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwiZGlzbWlzc19uZXdfcG9zdHMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwiZGlzbWlzc190b3BpY3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwibG9nX291dCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLmNvbXBvc2luZy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImNvbXBvc2luZyIsInJldHVybiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiY29tcG9zaW5nIiwiZnVsbHNjcmVlbiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYXBwbGljYXRpb24iLCJjcmVhdGUiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJyZXBseV9hc19uZXdfdG9waWMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJyZXBseV90b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInJlcGx5X3Bvc3QiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJxdW90ZV9wb3N0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsia2V5Ym9hcmRfc2hvcnRjdXRzX2hlbHAuYWN0aW9ucy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJib29rbWFya190b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInBpbl91bnBpbl90b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInNoYXJlX3RvcGljIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwic2hhcmVfcG9zdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsImxpa2UiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJmbGFnIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiYm9va21hcmsiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJlZGl0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiZGVsZXRlIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwibWFya19tdXRlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsIm1hcmtfcmVndWxhciJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsIm1hcmtfdHJhY2tpbmciXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJtYXJrX3dhdGNoaW5nIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiZGVmZXIiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJwcmludCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInRvcGljX2FkbWluX2FjdGlvbnMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwva2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvbG9naW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsb2dpbi1tb2RhbCIsbnVsbCxbWyJzY3JlZW5YIiwic2NyZWVuWSIsImxvZ2luTmFtZSIsImxvZ2luUGFzc3dvcmQiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImFjdGlvbiJdLFtbMjQsWyJsYXN0WCJdXSxbMjQsWyJsYXN0WSJdXSxbMjQsWyJsb2dpbk5hbWUiXV0sWzI0LFsibG9naW5QYXNzd29yZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9naW4iXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSJdLFsibG9naW4tYmVmb3JlLW1vZGFsLWJvZHkiLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJsb2dpbi50aXRsZSIsWzI0LFsibW9kYWxCb2R5Q2xhc3NlcyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5Mb2dpbkxvY2FsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJpZCIsImxvZ2luLWZvcm0iXSxbMTAsIm1ldGhvZCIsInBvc3QiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImNyZWRlbnRpYWxzIl0sWzExLCJjbGFzcyIsWzIyLCJjcmVkZW50aWFsc0NsYXNzIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LW5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImlkIiwiYXV0b2NvcnJlY3QiLCJhdXRvY2FwaXRhbGl6ZSIsImF1dG9mb2N1cyIsImRpc2FibGVkIl0sW1syNCxbImxvZ2luTmFtZSJdXSwibG9naW4uZW1haWxfcGxhY2Vob2xkZXIiLCJsb2dpbi1hY2NvdW50LW5hbWUiLCJvZmYiLCJvZmYiLCJhdXRvZm9jdXMiLFsyNCxbImRpc2FibGVMb2dpbkZpZWxkcyJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LXBhc3N3b3JkIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5wYXNzd29yZCJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJwYXNzd29yZC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsIm1heGxlbmd0aCIsImNhcHNMb2NrT24iLCJkaXNhYmxlZCJdLFtbMjQsWyJsb2dpblBhc3N3b3JkIl1dLCJwYXNzd29yZCIsImxvZ2luLWFjY291bnQtcGFzc3dvcmQiLCIyMDAiLFsyNCxbImNhcHNMb2NrT24iXV0sWzI0LFsiZGlzYWJsZUxvZ2luRmllbGRzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiaWQiLCJmb3Jnb3QtcGFzc3dvcmQtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImZvcmdvdFBhc3N3b3JkIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhcHMtbG9jay13YXJuaW5nICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJjYXBzTG9ja09uIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZXhjbGFtYXRpb24tdHJpYW5nbGUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uY2Fwc19sb2NrX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJzZWNvbmQtZmFjdG9yLWZvcm0iLG51bGwsW1sic2Vjb25kRmFjdG9yTWV0aG9kIiwic2Vjb25kRmFjdG9yVG9rZW4iLCJjbGFzcyIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJzZWNvbmRGYWN0b3JDbGFzcyJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dLHRydWVdXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93U2VjdXJpdHlLZXkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInNlY3VyaXR5LWtleS1mb3JtIixudWxsLFtbImFsbG93ZWRDcmVkZW50aWFsSWRzIiwiY2hhbGxlbmdlIiwic2hvd1NlY3VyaXR5S2V5Iiwic2hvd1NlY29uZEZhY3RvciIsInNlY29uZEZhY3Rvck1ldGhvZCIsIm90aGVyTWV0aG9kQWxsb3dlZCIsImFjdGlvbiJdLFtbMjQsWyJzZWN1cml0eUtleUFsbG93ZWRDcmVkZW50aWFsSWRzIl1dLFsyNCxbInNlY3VyaXR5S2V5Q2hhbGxlbmdlIl1dLFsyNCxbInNob3dTZWN1cml0eUtleSJdXSxbMjQsWyJzaG93U2Vjb25kRmFjdG9yIl1dLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJvdGhlck1ldGhvZEFsbG93ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwic2Vjb25kLWZhY3Rvci1pbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlucHV0SWQiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJiYWNrdXBFbmFibGVkIl0sW1syNCxbInNlY29uZEZhY3RvclRva2VuIl1dLCJsb2dpbi1zZWNvbmQtZmFjdG9yIixbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsiYmFja3VwRW5hYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93TG9naW5CdXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1sic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsInByb2Nlc3NpbmdFbWFpbExpbmsiLCJlbWFpbExvZ2luIiwiZXh0ZXJuYWxMb2dpbiJdLFtbMjQsWyJzaG93TG9naW5XaXRoRW1haWxMaW5rIl1dLFsyNCxbInByb2Nlc3NpbmdFbWFpbExpbmsiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVtYWlsTG9naW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuTG9naW5Mb2NhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2hvd1NlY3VyaXR5S2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWQiLCJmb3JtIiwiaWNvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9naW4iXSxudWxsXSwibG9naW4tYnV0dG9uIiwibG9naW4tZm9ybSIsInVubG9jayIsWzI0LFsibG9naW5CdXR0b25MYWJlbCJdXSxbMjQsWyJsb2dpbkRpc2FibGVkIl1dLCJidG4gYnRuLWxhcmdlIGJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2lnbnVwTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWxhcmdlIiwibmV3LWFjY291bnQtbGluayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUFjY291bnQiXSxudWxsXSwiY3JlYXRlX2FjY291bnQudGl0bGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iLCJzaXplIl0sW1syNCxbInNob3dTcGlubmVyIl1dLCJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWFmdGVyLW1vZGFsLWZvb3RlciIsIiJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsb2dpbi1hbGVydCJdLFsxMSwiY2xhc3MiLFsyMiwiYWxlcnRDbGFzcyJdXSxbOF0sWzEsWzIyLCJhbGVydCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9sb2dpbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9tb3ZlLXRvLXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImlkIl0sWyJjaG9vc2luZy10b3BpYyJdXSx7InN0YXRlbWVudHMiOltbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpc1ByaXZhdGVNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb1BNIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvLWxhYmVsIl0sWzEwLCJmb3IiLCJtb3ZlLXRvLW5ldy1tZXNzYWdlIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbIm1vdmUtdG8tbmV3LW1lc3NhZ2UiLCJtb3ZlLXRvLWVudGl0eSIsIm5ld19tZXNzYWdlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubW92ZV90b19uZXdfbWVzc2FnZS5yYWRpb19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8tbGFiZWwiXSxbMTAsImZvciIsIm1vdmUtdG8tZXhpc3RpbmctbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1leGlzdGluZy1tZXNzYWdlIiwibW92ZS10by1lbnRpdHkiLCJleGlzdGluZ19tZXNzYWdlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fZXhpc3RpbmdfbWVzc2FnZS5yYWRpb19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJuZXdNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UuaW5zdHJ1Y3Rpb25zIl0sW1siY291bnQiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UubWVzc2FnZV90aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImVsZW1lbnRJZCJdLFtbMjQsWyJ0b3BpY05hbWUiXV0sImNvbXBvc2VyLnRpdGxlX3BsYWNlaG9sZGVyIiwic3BsaXQtdG9waWMtbmFtZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5UYWdNZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImZpbHRlcmFibGUiXSxbWzI0LFsidGFncyJdXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXhpc3RpbmdNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX2V4aXN0aW5nX21lc3NhZ2UuaW5zdHJ1Y3Rpb25zIl0sW1siY291bnQiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNob29zZS1tZXNzYWdlIixudWxsLFtbImN1cnJlbnRUb3BpY0lkIiwic2VsZWN0ZWRUb3BpY0lkIl0sW1syNCxbIm1vZGVsIiwiaWQiXV0sWzI0LFsic2VsZWN0ZWRUb3BpY0lkIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubW92ZV90b19uZXdfbWVzc2FnZS5wYXJ0aWNpcGFudHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJ1c2VybmFtZXMiLCJjbGFzcyJdLFtbMjQsWyJwYXJ0aWNpcGFudHMiXV0sInBhcnRpY2lwYW50LXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1uZXctdG9waWMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1uZXctdG9waWMiLCJtb3ZlLXRvLWVudGl0eSIsIm5ld190b3BpYyIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLnNwbGl0X3RvcGljLnJhZGlvX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1leGlzdGluZy10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1leGlzdGluZy10b3BpYyIsIm1vdmUtdG8tZW50aXR5IiwiZXhpc3RpbmdfdG9waWMiLFsyNCxbInNlbGVjdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubWVyZ2VfdG9waWMucmFkaW9fbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNwbGl0VG9QTSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1uZXctbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJtb3ZlLXRvLW5ldy1tZXNzYWdlIiwibW92ZS10by1lbnRpdHkiLCJuZXdfbWVzc2FnZSIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UucmFkaW9fbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImV4aXN0aW5nVG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1lcmdlX3RvcGljLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJmb3JtIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjaG9vc2UtdG9waWMiLG51bGwsW1siY3VycmVudFRvcGljSWQiLCJzZWxlY3RlZFRvcGljSWQiXSxbWzI0LFsibW9kZWwiLCJpZCJdXSxbMjQsWyJzZWxlY3RlZFRvcGljSWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TcGxpdFRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm5ld1RvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLnNwbGl0X3RvcGljLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5zcGxpdF90b3BpYy50b3BpY19uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiZWxlbWVudElkIl0sW1syNCxbInRvcGljTmFtZSJdXSwiY29tcG9zZXIudGl0bGVfcGxhY2Vob2xkZXIiLCJzcGxpdC10b3BpYy1uYW1lIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sW1syNCxbImNhdGVnb3J5SWQiXV0sInNtYWxsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImNhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkFkZFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnRhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJmaWx0ZXJhYmxlIiwiY2F0ZWdvcnlJZCJdLFtbMjQsWyJ0YWdzIl1dLHRydWUsWzI0LFsiY2F0ZWdvcnlJZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNwbGl0VG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibmV3TWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX25ld19tZXNzYWdlLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX25ld19tZXNzYWdlLm1lc3NhZ2VfdGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJlbGVtZW50SWQiXSxbWzI0LFsidG9waWNOYW1lIl1dLCJjb21wb3Nlci50aXRsZV9wbGFjZWhvbGRlciIsInNwbGl0LXRvcGljLW5hbWUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuVGFnTWVzc2FnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnRhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJmaWx0ZXJhYmxlIl0sW1syNCxbInRhZ3MiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJidXR0b25EaXNhYmxlZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybU1vdmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2lnbi1vdXQtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJidXR0b25UaXRsZSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvbW92ZS10by10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9ub3QtYWN0aXZhdGVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLm5vdF9hY3RpdmF0ZWQiXSxbWyJzZW50VG8iXSxbWzI0LFsic2VudFRvIl1dXV1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImFjdGl2YXRpb24tY29udHJvbHMiLG51bGwsW1sic2VuZEFjdGl2YXRpb25FbWFpbCIsImVkaXRBY3RpdmF0aW9uRW1haWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbmRBY3RpdmF0aW9uRW1haWwiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdEFjdGl2YXRpb25FbWFpbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvbm90LWFjdGl2YXRlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9wb3N0LWVucXVldWVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmFwcHJvdmFsLmRlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuYXBwcm92YWwucGVuZGluZ19wb3N0cyJdLFtbImNvdW50Il0sW1syNCxbIm1vZGVsIiwicGVuZGluZ19jb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJyZXZpZXcuYXBwcm92YWwub2siXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvcG9zdC1lbnF1ZXVlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9yYXctZW1haWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyIsIm1heEhlaWdodCJdLFsicmF3X2VtYWlsLnRpdGxlIiwiaW5jb21pbmctZW1haWwtbW9kYWwiLCI4MCUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluY29taW5nLWVtYWlsLXRhYnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheVJhdyJdLG51bGxdLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy5yYXcuYnV0dG9uIiwicG9zdC5yYXdfZW1haWwuZGlzcGxheXMucmF3LnRpdGxlIixbMjgsImlmIixbWzI0LFsic2hvd1Jhd0VtYWlsIl1dLCJhY3RpdmUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRleHRQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheVRleHRQYXJ0Il0sbnVsbF0sInBvc3QucmF3X2VtYWlsLmRpc3BsYXlzLnRleHRfcGFydC5idXR0b24iLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy50ZXh0X3BhcnQudGl0bGUiLFsyOCwiaWYiLFtbMjQsWyJzaG93VGV4dFBhcnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImh0bWxQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheUh0bWxQYXJ0Il0sbnVsbF0sInBvc3QucmF3X2VtYWlsLmRpc3BsYXlzLmh0bWxfcGFydC5idXR0b24iLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy5odG1sX3BhcnQudGl0bGUiLFsyOCwiaWYiLFtbMjQsWyJzaG93SHRtbFBhcnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbmNvbWluZy1lbWFpbC1jb250ZW50Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UmF3RW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmF3RW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0YXJlYSIsbnVsbCxbWyJ2YWx1ZSJdLFtbMjQsWyJyYXdFbWFpbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyYXdfZW1haWwubm90X2F2YWlsYWJsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGV4dFBhcnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsidGV4dFBhcnQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0h0bWxQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImlmcmFtZWQtaHRtbCIsbnVsbCxbWyJodG1sIiwiY2xhc3NOYW1lIl0sW1syNCxbImh0bWxQYXJ0Il1dLCJpbmNvbWluZy1lbWFpbC1odG1sLXBhcnQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvcmF3LWVtYWlsIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3JlbmFtZS10YWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRhZ2dpbmcucmVuYW1lX3RhZyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcucmVuYW1lX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsIm1heGxlbmd0aCJdLFtbMjQsWyJidWZmZXJlZCIsImlkIl1dLFsyNCxbInNpdGVTZXR0aW5ncyIsIm1heF90YWdfbGVuZ3RoIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBlcmZvcm1SZW5hbWUiXSxudWxsXSwidGFnZ2luZy5yZW5hbWVfdGFnIixbMjQsWyJyZW5hbWVEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3JlbmFtZS10YWcifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvcmVvcmRlci1jYXRlZ29yaWVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjYXQiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiLCJ0aXRsZSJdLFsicmVvcmRlci1jYXRlZ29yaWVzIGZ1bGwtaGVpZ2h0LW1vZGFsIiwiY2F0ZWdvcmllcy5yZW9yZGVyLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyYy1zY3JvbGwtYW5jaG9yIl0sWzhdLFs5XSxbMCwiXFxuICAiXSxbNywidGFibGUiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNsYXNzIiwidGgtY2F0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmNhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRoLXBvcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5yZW9yZGVyLnBvc2l0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNhdGVnb3JpZXNPcmRlcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzI5LFtbMjMsMSxbImlkIl1dXV1dLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOCwiY29uY2F0IixbInJlb3JkZXItY2F0ZWdvcmllcy1kZXB0aC0iLFsyMywxLFsiZGVwdGgiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktYmFkZ2UiLFtbMjMsMSxbXV1dLFtbImFsbG93VW5jYXRlZ29yaXplZCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwibnVtYmVyLWZpZWxkIixudWxsLFtbIm51bWJlciIsImNoYW5nZSJdLFtbMjgsInJlYWRvbmx5IixbWzIzLDEsWyJwb3NpdGlvbiJdXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZSIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIl0sWyJidG4tZGVmYXVsdCBuby10ZXh0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibW92ZVVwIl0sbnVsbF0sWzIzLDEsW11dLCJhcnJvdy11cCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImFjdGlvblBhcmFtIiwiaWNvbiJdLFsiYnRuLWRlZmF1bHQgbm8tdGV4dCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1vdmVEb3duIl0sbnVsbF0sWzIzLDEsW11dLCJhcnJvdy1kb3duIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInJjLXNjcm9sbC1ib3R0b20iXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdLCJjYXRlZ29yaWVzLnJlb3JkZXIuc2F2ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9yZW9yZGVyLWNhdGVnb3JpZXMifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvcmVxdWVzdC1ncm91cC1tZW1iZXJzaGlwLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwicmVxdWVzdC1ncm91cC1tZW1iZXJzaGlwLWZvcm0iXSxbOF0sWzAsIlxcbiJdLFs0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sicmF3VGl0bGUiXSxbWzI0LFsidGl0bGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1lbWJlcnNoaXBfcmVxdWVzdC5yZWFzb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJleHBhbmRpbmctdGV4dC1hcmVhIixudWxsLFtbInZhbHVlIl0sW1syNCxbInJlYXNvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImRpc2FibGVTdWJtaXQiXV0sImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3Quc3VibWl0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVxdWVzdE1lbWJlciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3JlcXVlc3QtZ3JvdXAtbWVtYmVyc2hpcC1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItYWRkLXNlY3VyaXR5LWtleSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvck1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmVuYWJsZV9zZWN1cml0eV9rZXlfZGVzY3JpcHRpb24iXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiaWQiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJzZWN1cml0eUtleU5hbWUiXV0sInRlc3QiLCJzZWN1cml0eSBrZXkgbmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsid2ViYXV0aG5VbnN1cHBvcnRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgYWRkLXRvdHAiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWdpc3RlclNlY3VyaXR5S2V5Il0sbnVsbF0sInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkucmVnaXN0ZXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3NlY29uZC1mYWN0b3ItYWRkLXNlY3VyaXR5LWtleSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9zZWNvbmQtZmFjdG9yLWFkZC10b3RwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVycm9yTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFsxLFsyMiwiZXJyb3JNZXNzYWdlIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5lbmFibGVfZGVzY3JpcHRpb24iXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicXItY29kZS1jb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicXItY29kZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJzZWNvbmRGYWN0b3JJbWFnZSJdLHRydWVdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2Vjb25kRmFjdG9yS2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInNlY29uZEZhY3RvcktleSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1NlY29uZEZhY3RvcktleSJdXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5zaG93X2tleV9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIGlucHV0LXByZXBlbmQiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwic2Vjb25kLWZhY3Rvci1pbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlucHV0SWQiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJzZWNvbmRGYWN0b3JOYW1lIl1dLCJzZWNvbmQtZmFjdG9yLW5hbWUiLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5kZWZhdWx0X25hbWUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCBpbnB1dC1wcmVwZW5kIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJzZWNvbmQtZmFjdG9yLWlucHV0IixudWxsLFtbIm1heGxlbmd0aCIsInZhbHVlIiwiaW5wdXRJZCIsInBsYWNlaG9sZGVyIl0sWzYsWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sInNlY29uZC1mYWN0b3ItdG9rZW4iLCIxMjM0NTYiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IGFkZC10b3RwIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZW5hYmxlU2Vjb25kRmFjdG9yIl0sbnVsbF0sImVuYWJsZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zZWNvbmQtZmFjdG9yLWFkZC10b3RwIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItYmFja3VwLWVkaXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJlZmVyZW5jZXMgc29sby1wcmVmZXJlbmNlICBzZWNvbmQtZmFjdG9yLWJhY2t1cC1wcmVmZXJlbmNlcyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZvcm0taG9yaXpvbnRhbCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic3VjY2Vzc01lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1zdWNjZXNzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwic3VjY2Vzc01lc3NhZ2UiXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImVycm9yTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwiZXJyb3JNZXNzYWdlIl0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJiYWNrdXBFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5yZW1haW5pbmdfY29kZXMiXSxbWyJjb3VudCJdLFtbMjQsWyJyZW1haW5pbmdDb2RlcyJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXMiXSxudWxsXSwic3VibWl0IixbMjQsWyJsb2FkaW5nIl1dLFsyNCxbImdlbmVyYXRlQmFja3VwQ29kZUJ0bkxhYmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYmFja3VwRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc2FibGVTZWNvbmRGYWN0b3JCYWNrdXAiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmRpc2FibGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNlY3Rpb24iLG51bGwsW1siaXNMb2FkaW5nIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJiYWNrdXBDb2RlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb2Rlcy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmNvZGVzLmRlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImJhY2t1cC1jb2RlcyIsbnVsbCxbWyJjb3B5QmFja3VwQ29kZSIsImJhY2t1cENvZGVzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb3B5QmFja3VwQ29kZSJdLG51bGxdLFsyNCxbImJhY2t1cENvZGVzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zZWNvbmQtZmFjdG9yLWJhY2t1cC1lZGl0In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItZWRpdC1zZWN1cml0eS1rZXkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIl0sWyJ0ZXh0IixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3RvciBpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5lZGl0X2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVkaXRTZWN1cml0eUtleSJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkuZWRpdCJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzYWJsZVNlY3VyaXR5S2V5Il0sbnVsbF0sImJ0bi1kYW5nZXIiLCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvc2Vjb25kLWZhY3Rvci1lZGl0LXNlY3VyaXR5LWtleSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9zZWNvbmQtZmFjdG9yLWVkaXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIl0sWyJ0ZXh0IixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3RvciBpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmVkaXRfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFNlY29uZEZhY3RvciJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuc2Vjb25kX2ZhY3Rvci5lZGl0Il1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNhYmxlU2Vjb25kRmFjdG9yIl0sbnVsbF0sImJ0bi1kYW5nZXIiLCJ1c2VyLnNlY29uZF9mYWN0b3IuZGlzYWJsZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvc2Vjb25kLWZhY3Rvci1lZGl0In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NoYXJlLWFuZC1pbnZpdGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsIm1vZGFsLXBhbmVsIixudWxsLFtbInBhbmVsIl0sW1syNCxbIm1vZGFsIiwic2VsZWN0ZWRQYW5lbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zaGFyZS1hbmQtaW52aXRlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3RhZy11cGxvYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRhZ2dpbmcudXBsb2FkIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFncy11cGxvYWRlciIsbnVsbCxbWyJyZWZyZXNoIiwiY2xvc2VNb2RhbCJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJyZWZyZXNoIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3RhZy11cGxvYWQifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvdG9waWMtYnVsay1hY3Rpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWNzLmJ1bGsuc2VsZWN0ZWQiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInRvcGljcyIsImxlbmd0aCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJvdXRsZXQiLFsiYnVsa091dGxldCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3RvcGljLWJ1bGstYWN0aW9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC91cGxvYWQtc2VsZWN0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFtbMjQsWyJ0aXRsZSJdXSwidXBsb2FkLXNlbGVjdG9yIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpb3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJuYW1lIiwiaWQiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsidXBsb2FkIiwibG9jYWwiLCJsb2NhbCIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzEwLCJmb3IiLCJsb2NhbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmZyb21fbXlfY29tcHV0ZXIiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiaWQiLCJmaWxlbmFtZS1pbnB1dCJdLFsxMCwibXVsdGlwbGUiLCIiXSxbMTAsInR5cGUiLCJmaWxlIl0sWzhdLFs5XSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMSxbMjIsInRpcCJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpb3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJuYW1lIiwiaWQiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsidXBsb2FkIiwicmVtb3RlIiwicmVtb3RlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInJlbW90ZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmZyb21fdGhlX3dlYiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJlbW90ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXIiXSxbWzI0LFsiaW1hZ2VVcmwiXV0sImh0dHA6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmciXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2NyaXB0aW9uIl0sWzhdLFsxLFsyMiwidGlwIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwiaGludCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FwYWJpbGl0aWVzIiwiY2FuUGFzdGVJbWFnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmhpbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVwbG9hZF9zZWxlY3Rvci5oaW50X2Zvcl9zdXBwb3J0ZWRfYnJvd3NlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBsb2FkIl0sbnVsbF0sImJ0bi1wcmltYXJ5IixbMjQsWyJ1cGxvYWRJY29uIl1dLCJ1cGxvYWQiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3VwbG9hZC1zZWxlY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1siYm9keUNsYXNzIiwiY2xhc3MiXSxbIm5hdmlnYXRpb24tY2F0ZWdvcmllcyIsIm5hdmlnYXRpb24tY29udGFpbmVyIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1uYXZpZ2F0aW9uIixudWxsLFtbImZpbHRlclR5cGUiLCJzaG93Q2F0ZWdvcnlBZG1pbiIsImNyZWF0ZUNhdGVnb3J5IiwicmVvcmRlckNhdGVnb3JpZXMiLCJjYW5DcmVhdGVUb3BpYyIsImhhc0RyYWZ0IiwiY3JlYXRlVG9waWMiXSxbImNhdGVnb3JpZXMiLFsyNCxbInNob3dDYXRlZ29yeUFkbWluIl1dLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZUNhdGVnb3J5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsicmVvcmRlckNhdGVnb3JpZXMiXSxudWxsXSxbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjQsWyJkcmFmdCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJjcmVhdGVUb3BpYyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im5hdmlnYXRpb24vY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJuYXZpZ2F0aW9uL2NhdGVnb3J5Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbImNsYXNzIl0sWyJuYXZpZ2F0aW9uLWNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImFkZC1jYXRlZ29yeS10YWctY2xhc3NlcyIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1oZWFkaW5nIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiY2RuLWltZyIsbnVsbCxbWyJzcmMiLCJjbGFzcyIsIndpZHRoIiwiaGVpZ2h0Il0sW1syNCxbImNhdGVnb3J5IiwidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiY2F0ZWdvcnktbG9nbyIsWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwid2lkdGgiXV0sWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwiaGVpZ2h0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZGlyLXNwYW4iLFtbMjQsWyJjYXRlZ29yeSIsImRlc2NyaXB0aW9uIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1uYXZpZ2F0aW9uIixudWxsLFtbImNhdGVnb3J5IiwiZmlsdGVyTW9kZSIsIm5vU3ViY2F0ZWdvcmllcyIsImNhbkNyZWF0ZVRvcGljIiwiY3JlYXRlVG9waWMiLCJjcmVhdGVUb3BpY0Rpc2FibGVkIiwiaGFzRHJhZnQiLCJlZGl0Q2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsiZmlsdGVyTW9kZSJdXSxbMjQsWyJub1N1YmNhdGVnb3JpZXMiXV0sWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlVG9waWMiXSxudWxsXSxbMjQsWyJjYW5ub3RDcmVhdGVUb3BpY09uQ2F0ZWdvcnkiXV0sWzI0LFsiZHJhZnQiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiZWRpdENhdGVnb3J5IixbMjQsWyJjYXRlZ29yeSJdXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjYXRlZ29yeS1uYXZpZ2F0aW9uIixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im5hdmlnYXRpb24vY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibmF2aWdhdGlvbi9kZWZhdWx0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbImJvZHlDbGFzcyIsImNsYXNzIiwic2Nyb2xsVG9wIl0sWyJuYXZpZ2F0aW9uLXRvcGljcyIsIm5hdmlnYXRpb24tY29udGFpbmVyIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLW5hdmlnYXRpb24iLG51bGwsW1siZmlsdGVyTW9kZSIsImNhbkNyZWF0ZVRvcGljIiwiaGFzRHJhZnQiLCJjcmVhdGVUb3BpYyJdLFtbMjQsWyJmaWx0ZXJNb2RlIl1dLFsyNCxbImNhbkNyZWF0ZVRvcGljIl1dLFsyNCxbImRyYWZ0Il1dLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZVRvcGljIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibmF2aWdhdGlvbi9kZWZhdWx0In19KSxFbWJlci5URU1QTEFURVNbIm91dGxldC1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImNvbm5lY3RvciIsbnVsbCxbWyJ0ZW1wbGF0ZUlkIiwiY2xhc3MiLCJ0YWdOYW1lIl0sW1syOCwidW5ib3VuZCIsW1syNCxbInRlbXBsYXRlSWQiXV1dLG51bGxdLFsyOCwidW5ib3VuZCIsW1syNCxbIm91dGxldENsYXNzZXMiXV1dLG51bGxdLFsyOCwidW5ib3VuZCIsW1syNCxbInRhZ05hbWUiXV1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im91dGxldC1saXN0In19KSxFbWJlci5URU1QTEFURVNbInBhc3N3b3JkLXJlc2V0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIHBhc3N3b3JkLXJlc2V0IGNsZWFyZml4Il0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLWxlZnQgY29sLWltYWdlIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImltZyIsdHJ1ZV0sWzExLCJzcmMiLFsyMiwibG9ja0ltYWdlVXJsIl1dLFsxMCwiY2xhc3MiLCJwYXNzd29yZC1yZXNldC1pbWciXSxbOF0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHVsbC1sZWZ0IGNvbC1mb3JtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdWNjZXNzTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInN1Y2Nlc3NNZXNzYWdlIl0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicmVxdWlyZXNBcHByb3ZhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5ub3RfYXBwcm92ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsicmVkaXJlY3RlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsImJ0biJdLFsxMiwiaHJlZiIsWzI5LFtbMjIsInJlZGlyZWN0SHJlZiJdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImRvbmUiXV0sWzhdLFsxLFsyMiwiY29udGludWVCdXR0b25UZXh0Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZWN1cml0eUtleU9yU2Vjb25kRmFjdG9yUmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNlY3VyaXR5S2V5UmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInNlY3VyaXR5LWtleS1mb3JtIixudWxsLFtbImFsbG93ZWRDcmVkZW50aWFsSWRzIiwiY2hhbGxlbmdlIiwic2hvd1NlY3VyaXR5S2V5Iiwic2hvd1NlY29uZEZhY3RvciIsInNlY29uZEZhY3Rvck1ldGhvZCIsIm90aGVyTWV0aG9kQWxsb3dlZCIsImFjdGlvbiJdLFtbMjQsWyJtb2RlbCIsImFsbG93ZWRfY3JlZGVudGlhbF9pZHMiXV0sWzI0LFsibW9kZWwiLCJzZWN1cml0eV9rZXlfY2hhbGxlbmdlIl1dLFsyNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dLGZhbHNlLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJvdGhlck1ldGhvZEFsbG93ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInNlY29uZC1mYWN0b3ItZm9ybSIsbnVsbCxbWyJzZWNvbmRGYWN0b3JNZXRob2QiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dLGZhbHNlXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzZWNvbmQtZmFjdG9yLWlucHV0IixudWxsLFtbInZhbHVlIiwiaW5wdXRJZCIsInNlY29uZEZhY3Rvck1ldGhvZCIsImJhY2t1cEVuYWJsZWQiXSxbWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sInNlY29uZC1mYWN0b3IiLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJ1bmxlc3MiLFtbMjQsWyJzZWN1cml0eUtleVJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzdWJtaXQiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJzdWJtaXQiLCJzdWJtaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcGFzc3dvcmQuY2hvb3NlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwYXNzd29yZC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsImNhcHNMb2NrT24iLCJhdXRvZm9jdXMiXSxbWzI0LFsiYWNjb3VudFBhc3N3b3JkIl1dLCJwYXNzd29yZCIsIm5ldy1hY2NvdW50LXBhc3N3b3JkIixbMjQsWyJjYXBzTG9ja09uIl1dLCJhdXRvZm9jdXMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgwqAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInBhc3N3b3JkVmFsaWRhdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXBzLWxvY2std2FybmluZyAiLFsyOCwidW5sZXNzIixbWzI0LFsiY2Fwc0xvY2tPbiJdXSwiaW52aXNpYmxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLmNhcHNfbG9ja193YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInN1Ym1pdCJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnNldF9wYXNzd29yZCIsInN1Ym1pdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicGFzc3dvcmQtcmVzZXQifX0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJwb3N0L3Bvc3Rlci1hdmF0YXIiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nPGEgaHJlZj0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInBvc3QudXNlcm5hbWVVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjl9LGVuZDp7bGluZToxLGNvbHVtbjoyOX19fSkpKyciIGNsYXNzTmFtZXM9InRyaWdnZXItdXNlci1jYXJkICcrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzc05hbWVzIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo2MX0sZW5kOntsaW5lOjEsY29sdW1uOjc1fX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0LnVzZXJuYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo5M30sZW5kOntsaW5lOjEsY29sdW1uOjExMH19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmF2YXRhcnx8dCYmdC5hdmF0YXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInBvc3QiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToibGFyZ2UifSxoYXNoVHlwZXM6e2ltYWdlU2l6ZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7aW1hZ2VTaXplOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MTEyfSxlbmQ6e2xpbmU6MSxjb2x1bW46MTQ1fX19KSkrIjwvYT5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbInByZWZlcmVuY2VzLWVtYWlsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJlZmVyZW5jZXMgc29sby1wcmVmZXJlbmNlIl0sWzhdLFswLCJcXG4gICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInN1Y2Nlc3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwuc3VjY2Vzc19zdGFmZiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwuc3VjY2VzcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3NOYW1lcyIsImF1dG9mb2N1cyJdLFtbMjQsWyJuZXdFbWFpbCJdXSwiY2hhbmdlLWVtYWlsIiwiaW5wdXQteHhsYXJnZSIsImF1dG9mb2N1cyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJlbWFpbFZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWtlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwudGFrZW4iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmVtYWlsLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VFbWFpbCJdLG51bGxdLCJzdWJtaXQiLFsyNCxbInNhdmVEaXNhYmxlZCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInNhdmVCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMtZW1haWwifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMtc2Vjb25kLWZhY3RvciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsic2VjdXJpdHlfa2V5IiwidG90cCJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByZWZlcmVuY2VzIHNvbG8tcHJlZmVyZW5jZSBzZWNvbmQtZmFjdG9yIl0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dFbmZvcmNlZE5vdGljZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IuZW5mb3JjZWRfbm90aWNlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlPQXV0aFdhcm5pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3Iub2F1dGhfZW5hYmxlZF93YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnRvdHAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvdHAiXSxudWxsXSwiYnRuLXByaW1hcnkgbmV3LXRvdHAiLFsyNCxbImxvYWRpbmciXV0sInVzZXIuc2Vjb25kX2ZhY3Rvci50b3RwLmFkZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRvdHBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3Rvci1pdGVtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMixbIm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMixbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5kZWZhdWx0X25hbWUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVkaXRTZWNvbmRGYWN0b3IiLFsyMywyLFtdXV0sbnVsbF0sImJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IGVkaXQiLFsyNCxbImxvYWRpbmciXV0sInBlbmNpbC1hbHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlU2VjdXJpdHlLZXkiXSxudWxsXSwiYnRuLXByaW1hcnkgbmV3LXNlY3VyaXR5LWtleSIsWzI0LFsibG9hZGluZyJdXSwidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5hZGQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJzZWN1cml0eV9rZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3Rvci1pdGVtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbIm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmRlZmF1bHRfbmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpc0N1cnJlbnRVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFNlY3VyaXR5S2V5IixbMjMsMSxbXV1dLG51bGxdLCJidG4tZGVmYXVsdCBidG4tc21hbGwgYnRuLWljb24gcGFkLWxlZnQgbm8tdGV4dCBlZGl0IixbMjQsWyJsb2FkaW5nIl1dLCJwZW5jaWwtYWx0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHByZWYtc2Vjb25kLWZhY3Rvci1iYWNrdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5tYW5hZ2UiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInNlY29uZF9mYWN0b3JfcmVtYWluaW5nX2JhY2t1cF9jb2RlcyJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvcl9iYWNrdXAuZW5hYmxlX2xvbmciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiZGlzYWJsZWQiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0U2Vjb25kRmFjdG9yQmFja3VwIl0sbnVsbF0sImJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IGVkaXQgZWRpdC0yZmEtYmFja3VwIixbMjQsWyJsb2FkaW5nIl1dLCJwZW5jaWwtYWx0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5lbmFibGVfcHJlcmVxdWlzaXRlcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInNlY29uZF9mYWN0b3JfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2hvd0VuZm9yY2VkTm90aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmRpc2FibGVfdGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tZGFuZ2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzYWJsZUFsbFNlY29uZEZhY3RvcnMiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJkaXNhYmxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucGFzc3dvcmQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiaWQiLCJ0eXBlIiwiY2xhc3NOYW1lcyIsImF1dG9mb2N1cyJdLFtbMjQsWyJwYXNzd29yZCJdXSwicGFzc3dvcmQiLCJwYXNzd29yZCIsImlucHV0LWxhcmdlIiwiYXV0b2ZvY3VzIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmNvbmZpcm1fcGFzc3dvcmRfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJ0eXBlIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLCJzdWJtaXQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb25maXJtUGFzc3dvcmQiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJjb250aW51ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2hvd0VuZm9yY2VkTm90aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImNhbmNlbC1saW5rIixudWxsLFtbInJvdXRlIiwiYXJncyJdLFsicHJlZmVyZW5jZXMuYWNjb3VudCIsWzI0LFsibW9kZWwiLCJ1c2VybmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogNXB4Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzIyLCJyZXNldFBhc3N3b3JkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJyZXNldFBhc3N3b3JkTG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRQYXNzd29yZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5mb3Jnb3RfcGFzc3dvcmQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMtc2Vjb25kLWZhY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy11c2VybmFtZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByZWZlcmVuY2VzICBzb2xvLXByZWZlcmVuY2UiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV91c2VybmFtZS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3NOYW1lcyIsIm1heGxlbmd0aCIsImF1dG9mb2N1cyIsImluc2VydC1uZXdsaW5lIl0sW1syNCxbIm5ld1VzZXJuYW1lIl1dLCJjaGFuZ2VfdXNlcm5hbWUiLCJpbnB1dC14eGxhcmdlIixbMjQsWyJtYXhMZW5ndGgiXV0sImF1dG9mb2N1cyIsImNoYW5nZVVzZXJuYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyBjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWtlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3VzZXJuYW1lLnRha2VuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwidHlwZSIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVVzZXJuYW1lIl0sbnVsbF0sInN1Ym1pdCIsWzI0LFsic2F2ZURpc2FibGVkIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjIsInNhdmVCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzLXVzZXJuYW1lIn19KSxFbWJlci5URU1QTEFURVMucHJlZmVyZW5jZXM9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyIsImNsYXNzIl0sWyJ1c2VyLXByZWZlcmVuY2VzIiwidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiJdXSx7InN0YXRlbWVudHMiOltbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJwcmVmZXJlbmNlcy1uYXYiLCJwcmVmZXJlbmNlcy1saXN0IGFjdGlvbi1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1hY2NvdW50Il0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMuYWNjb3VudCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuYWNjb3VudCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtcHJvZmlsZSJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLnByb2ZpbGUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIucHJlZmVyZW5jZXNfbmF2LnByb2ZpbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWVtYWlscyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLmVtYWlscyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuZW1haWxzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1ub3RpZmljYXRpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMubm90aWZpY2F0aW9ucyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYubm90aWZpY2F0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJpbmRlbnQgbmF2LWNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcmVmZXJlbmNlcy5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzX25hdi5jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGVudCBuYXYtdXNlcnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcmVmZXJlbmNlcy51c2VycyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYudXNlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGVudCBuYXYtdGFncyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLnRhZ3MiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYudGFncyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaW50ZXJmYWNlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMuaW50ZXJmYWNlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzX25hdi5pbnRlcmZhY2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInVzZXJBcGlLZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtYXBwcyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLmFwcHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuYXBwcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLW5hdiIsImxpIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQgdXNlci1wcmVmZXJlbmNlcyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImFib3ZlLXVzZXItcHJlZmVyZW5jZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLXZlcnRpY2FsIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJwcmVmZXJlbmNlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9hY2NvdW50Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0b2tlbiIsImF1dGhQcm92aWRlciJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi11c2VybmFtZSJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRpYyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2VkaXRfdXNlcm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJyb3V0ZSJdLFsiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IiwicHJlZmVyZW5jZXMudXNlcm5hbWUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBlbmNpbC1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfbWVudGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VybmFtZS5zaG9ydF9pbnN0cnVjdGlvbnMiXSxbWyJ1c2VybmFtZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV1dLHRydWVdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJzc29fb3ZlcnJpZGVzX2F2YXRhciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWF2YXRhciJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImlkIiwicHJvZmlsZS1waWN0dXJlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF2YXRhci50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFswLCIgICAgICAiXSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syNCxbIm1vZGVsIl1dLCJodWdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwiY2xhc3MiLCJpY29uIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dBdmF0YXJTZWxlY3RvciJdLG51bGxdLFsyNCxbIm1vZGVsIl1dLCJidG4tZGVmYXVsdCBwYWQtbGVmdCIsInBlbmNpbC1hbHQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0TmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5hbWUudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9lZGl0X25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiY2xhc3NOYW1lcyIsIm1heGxlbmd0aCJdLFtbMjQsWyJuZXdOYW1lSW5wdXQiXV0sImlucHV0LXh4bGFyZ2UiLCIyNTUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0aWMiXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyMiwibmFtZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGVja0VtYWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWVtYWlsIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5lbWFpbC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRpYyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsImVtYWlsIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2VkaXRfZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIl0sWyJidG4gYnRuLWRlZmF1bHQgYnRuLXNtYWxsIGJ0bi1pY29uIHBhZC1sZWZ0IG5vLXRleHQiLCJwcmVmZXJlbmNlcy5lbWFpbCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJzc29fb3ZlcnJpZGVzX2VtYWlsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuc3NvX292ZXJyaWRlX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImFjdGlvblBhcmFtIiwidGl0bGUiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2hlY2tFbWFpbCJdLG51bGxdLCJidG4tZGVmYXVsdCIsWzI0LFsibW9kZWwiXV0sImFkbWluLnVzZXJzLmNoZWNrX2VtYWlsLnRpdGxlIiwiZmFyLWVudmVsb3BlIiwiYWRtaW4udXNlcnMuY2hlY2tfZW1haWwudGV4dCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGFuZ2VQYXNzd29yZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXBhc3N3b3JkIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucGFzc3dvcmQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBhc3N3b3JkIl1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZW52ZWxvcGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibm9fcGFzc3dvcmQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnNldF9wYXNzd29yZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzIyLCJwYXNzd29yZFByb2dyZXNzIl0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXNlY29uZC1mYWN0b3IiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5zaG9ydF9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHByZWYtc2Vjb25kLWZhY3RvciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIl0sWyJidG4gYnRuLWRlZmF1bHQiLCJwcmVmZXJlbmNlcy5zZWNvbmQtZmFjdG9yIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImxvY2siXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IuZW5hYmxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5VcGRhdGVBc3NvY2lhdGVkQWNjb3VudHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1hc3NvY2lhdGVkLWFjY291bnRzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywidGFibGUiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJhdXRoUHJvdmlkZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywyLFsiYWNjb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJkYXNoZXJpemUiLFtbMjMsMixbIm1ldGhvZCIsIm5hbWUiXV1dLG51bGxdLCIgYWNjb3VudC1jb25uZWN0ZWQiXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywyLFsibWV0aG9kIiwicHJldHR5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjMsMixbImFjY291bnQiLCJkZXNjcmlwdGlvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDIsWyJtZXRob2QiLCJjYW5fcmV2b2tlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsInRpdGxlIiwiY2xhc3MiLCJpY29uIiwiZGlzYWJsZWQiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJldm9rZUFjY291bnQiXSxudWxsXSxbMjMsMixbImFjY291bnQiXV0sInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5yZXZva2UiLCJidG4tZGFuZ2VyIG5vLXRleHQiLCJ0cmFzaC1hbHQiLFsyOCwiZ2V0IixbWzI0LFsicmV2b2tpbmciXV0sWzIzLDIsWyJtZXRob2QiLCJuYW1lIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJkYXNoZXJpemUiLFtbMjMsMixbIm1ldGhvZCIsIm5hbWUiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywyLFsibWV0aG9kIiwicHJldHR5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY29sc3BhbiIsIjIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywyLFsibWV0aG9kIiwiY2FuX2Nvbm5lY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyIsImljb24iLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29ubmVjdEFjY291bnQiXSxudWxsXSxbMjMsMixbIm1ldGhvZCJdXSwidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbm5lY3QiLCJidG4tZGVmYXVsdCIsInBsdWciLFsyNCxbImRpc2FibGVDb25uZWN0QnV0dG9ucyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5ub3RfY29ubmVjdGVkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsInRpdGxlIiwiaWNvbiIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNoZWNrRW1haWwiXSxudWxsXSxbMjQsWyJtb2RlbCJdXSwiYWRtaW4udXNlcnMuY2hlY2tfZW1haWwudGl0bGUiLCJmYXItZW52ZWxvcGUiLCJhZG1pbi51c2Vycy5jaGVja19lbWFpbC50ZXh0Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlbGVjdFRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRpdGxlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwibm9uZSIsIm9uQ2hhbmdlIl0sW1syNCxbIm5ld1RpdGxlSW5wdXQiXV0sWzI0LFsibW9kZWwiLCJhdmFpbGFibGVUaXRsZXMiXV0sInVzZXIudGl0bGUubm9uZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJuZXdUaXRsZUlucHV0Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlbGVjdFByaW1hcnlHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXByaW1hcnktZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaW1hcnlfZ3JvdXAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJub25lIl0sW1syNCxbIm5ld1ByaW1hcnlHcm91cElucHV0Il1dLFsyNCxbIm1vZGVsIiwiZmlsdGVyZWRHcm91cHMiXV0sInVzZXIucHJpbWFyeV9ncm91cC5ub25lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ2hlY2tFbWFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1hdXRoLXRva2VucyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW5zIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImF1dGhUb2tlbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyBhdXRoLXRva2VuIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW4taWNvbiJdLFs4XSxbMSxbMjgsImQtaWNvbiIsW1syMywxLFsiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syMywxLFsiaXNfYWN0aXZlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImF1dGgtdG9rZW4tZHJvcGRvd24iLG51bGwsW1sidG9rZW4iLCJyZXZva2VBdXRoVG9rZW4iLCJzaG93VG9rZW4iXSxbWzIzLDEsW11dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXZva2VBdXRoVG9rZW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1Rva2VuIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhdXRoLXRva2VuLWZpcnN0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW4tZGV2aWNlIl0sWzhdLFsxLFsyMywxLFsiZGV2aWNlIl1dLGZhbHNlXSxbOV0sWzAsIiDigJMgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMuaXAiXSxudWxsXSwiOiAiLFsyMywxLFsiY2xpZW50X2lwIl1dXV1dLFs4XSxbMSxbMjMsMSxbImxvY2F0aW9uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXV0aC10b2tlbi1zZWNvbmQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyMywxLFsiYnJvd3NlciJdXSxmYWxzZV0sWzAsIiB8XFxuIl0sWzQsImlmIixbWzIzLDEsWyJpc19hY3RpdmUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJhY3RpdmUiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMuYWN0aXZlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syMywxLFsic2Vlbl9hdCJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNob3dBbGxBdXRoVG9rZW5zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVNob3dBbGxBdXRoVG9rZW5zIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0FsbEF1dGhUb2tlbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjYXJldC11cCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLnNob3dfZmV3Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNhcmV0LWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy5zaG93X2FsbCJdLFtbImNvdW50Il0sW1syNCxbIm1vZGVsIiwidXNlcl9hdXRoX3Rva2VucyIsImxlbmd0aCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInB1bGwtcmlnaHQgdGV4dC1kYW5nZXIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJyZXZva2VBdXRoVG9rZW4iXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInNpZ24tb3V0LWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLmxvZ19vdXRfYWxsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtYWNjb3VudCIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TYXZlVXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5EZWxldGVBY2NvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGRlbGV0ZS1hY2NvdW50Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImRpc2FibGVkIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZSJdLG51bGxdLFsyNCxbImRlbGV0ZURpc2FibGVkIl1dLCJidG4tZGFuZ2VyIiwiZmFyLXRyYXNoLWFsdCIsInVzZXIuZGVsZXRlX2FjY291bnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2FjY291bnQifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvYXBwcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsia2V5Iiwic2NvcGUiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwidXNlckFwaUtleXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgYXBwcyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmFwcHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsInVzZXJBcGlLZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsiYXBwbGljYXRpb25fbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInJldm9rZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsidW5kb1Jldm9rZUFwaUtleSJdLG51bGxdLFsyMywxLFtdXSwiYnRuIiwidXNlci51bmRvX3Jldm9rZV9hY2Nlc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsicmV2b2tlQXBpS2V5Il0sbnVsbF0sWzIzLDEsW11dLCJidG4iLCJ1c2VyLnJldm9rZV9hY2Nlc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic2NvcGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzIzLDIsW11dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmFwaV9hcHByb3ZlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIiAiXSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjMsMSxbImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hcGlfbGFzdF91c2VkX2F0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiICJdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF91c2VkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtYXBwcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2FwcHMifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvY2F0ZWdvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgY2F0ZWdvcnktbm90aWZpY2F0aW9ucyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNhdGVnb3JpZXNfc2V0dGluZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtd2F0Y2hpbmciXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwic2hvdy10cmFja2luZyJdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJtb2RlbCIsIndhdGNoaW5nVG9waWNzUGF0aCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRyYWNrZWRfdG9waWNzX2xpbmsiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZENhdGVnb3JpZXMiXV0sWzI0LFsic2VsZWN0ZWRDYXRlZ29yaWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ3YXRjaGVkQ2F0ZWdvcmllcyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2NhdGVnb3JpZXNfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgdHJhY2tpbmctY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLXRyYWNraW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIudHJhY2tlZF9jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctdHJhY2tpbmciXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJ0cmFja2luZ1RvcGljc1BhdGgiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RvcGljc19saW5rIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXNlbGVjdG9yIixudWxsLFtbImNhdGVnb3JpZXMiLCJibGFja2xpc3QiLCJvbkNoYW5nZSJdLFtbMjQsWyJtb2RlbCIsInRyYWNrZWRDYXRlZ29yaWVzIl1dLFsyNCxbInNlbGVjdGVkQ2F0ZWdvcmllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidHJhY2tlZENhdGVnb3JpZXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudHJhY2tlZF9jYXRlZ29yaWVzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZC13YXRjaGluZy1maXJzdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiXV0sWzI0LFsic2VsZWN0ZWRDYXRlZ29yaWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ3YXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllcyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2ZpcnN0X3Bvc3RfY2F0ZWdvcmllc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwibXV0ZV9hbGxfY2F0ZWdvcmllc19ieV9kZWZhdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLW11dGVkIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubXV0ZWRfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctdHJhY2tpbmciXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJtdXRlZFRvcGljc1BhdGgiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RvcGljc19saW5rIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwibXV0ZWRDYXRlZ29yaWVzIl1dLFsyNCxbInNlbGVjdGVkQ2F0ZWdvcmllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwibXV0ZWRDYXRlZ29yaWVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImlmIixbWzI0LFsiaGlkZU11dGVkVGFncyJdXSwidXNlci5tdXRlZF9jYXRlZ29yaWVzX2luc3RydWN0aW9ucyIsInVzZXIubXV0ZWRfY2F0ZWdvcmllc19pbnN0cnVjdGlvbnNfZG9udF9oaWRlIl0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLWNhdGVnb3JpZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2F2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubm9fY2F0ZWdvcnlfYWNjZXNzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9lbWFpbHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJkaXNhYmxlX21haWxpbmdfbGlzdF9tb2RlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nLXdyYXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubWFpbGluZ19saXN0X21vZGUud2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtZW1haWwtc2V0dGluZ3MiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5lbWFpbF9zZXR0aW5ncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGNvbnRyb2xzLWRyb3Bkb3duIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInVzZXItZW1haWwtbWVzc2FnZXMtbGV2ZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfbWVzc2FnZXNfbGV2ZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsImlkIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJlbWFpbExldmVsT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfbWVzc2FnZXNfbGV2ZWwiXV0sInVzZXItZW1haWwtbWVzc2FnZXMtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX21lc3NhZ2VzX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbE1lc3NhZ2VzTGV2ZWxBd2F5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyMiwiZW1haWxGcmVxdWVuY3lJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGNvbnRyb2xzLWRyb3Bkb3duIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInVzZXItZW1haWwtbGV2ZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfbGV2ZWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsImlkIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJlbWFpbExldmVsT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfbGV2ZWwiXV0sInVzZXItZW1haWwtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbExldmVsQXdheSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsImVtYWlsRnJlcXVlbmN5SW5zdHJ1Y3Rpb25zIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsWzI0LFsicHJldmlvdXNSZXBsaWVzT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfcHJldmlvdXNfcmVwbGllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJlbWFpbF9wcmV2aW91c19yZXBsaWVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLmVtYWlsX2luX3JlcGx5X3RvIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfaW5fcmVwbHlfdG8iXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1lbWFpbHMtcHJlZi1lbWFpbC1zZXR0aW5ncyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZGlzYWJsZV9kaWdlc3RfZW1haWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtYWN0aXZpdHktc3VtbWFyeSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfYWN0aXZpdHlfc3VtbWFyeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJkaXNhYmxlZCIsImNoZWNrZWQiXSxbInVzZXIuZW1haWxfZGlnZXN0cy50aXRsZSIsWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm1haWxpbmdfbGlzdF9tb2RlIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJlbWFpbF9kaWdlc3RzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX2RpZ2VzdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiZmlsdGVyYWJsZSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsdHJ1ZSxbMjQsWyJkaWdlc3RGcmVxdWVuY2llcyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiZGlzYWJsZWQiLCJjaGVja2VkIl0sWyJ1c2VyLmluY2x1ZGVfdGwwX2luX2RpZ2VzdHMiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZSJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiaW5jbHVkZV90bDBfaW5fZGlnZXN0cyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJkaXNhYmxlX21haWxpbmdfbGlzdF9tb2RlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtbWFpbGluZy1saXN0LW1vZGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1haWxpbmdfbGlzdF9tb2RlLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwicHJlZmVyZW5jZS1jaGVja2JveCIsbnVsbCxbWyJsYWJlbEtleSIsImNoZWNrZWQiXSxbInVzZXIubWFpbGluZ19saXN0X21vZGUuZW5hYmxlZCIsWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm1haWxpbmdfbGlzdF9tb2RlIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubWFpbGluZ19saXN0X21vZGUuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibWFpbGluZ19saXN0X21vZGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZV9mcmVxdWVuY3kiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibWFpbGluZ19saXN0X21vZGVfZnJlcXVlbmN5Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1lbWFpbHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2VtYWlscyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9pbnRlcmZhY2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dUaGVtZVNlbGVjdG9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHRoZW1lIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGhlbWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInVzZXJTZWxlY3RhYmxlVGhlbWVzIl1dLFsyNCxbInRoZW1lSWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJ0aGVtZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RoZW1lU2V0RGVmYXVsdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCJdLFsidXNlci50aGVtZV9kZWZhdWx0X29uX2FsbF9kZXZpY2VzIixbMjQsWyJtYWtlVGhlbWVEZWZhdWx0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgdGV4dC1zaXplIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGV4dF9zaXplLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJ0ZXh0U2l6ZXMiXV0sWzI0LFsidGV4dFNpemUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFRleHRTaXplIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RleHRTZXREZWZhdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLnRleHRfc2l6ZV9kZWZhdWx0X29uX2FsbF9kZXZpY2VzIixbMjQsWyJtYWtlVGV4dFNpemVEZWZhdWx0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJhbGxvd191c2VyX2xvY2FsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWxvY2FsZSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubG9jYWxlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsidmFsdWUiLFsyNCxbImF2YWlsYWJsZUxvY2FsZXMiXV0sWzI0LFsibW9kZWwiLCJsb2NhbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsImxvY2FsZSJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwibm9uZSJdLFt0cnVlLCJ1c2VyLmxvY2FsZS5kZWZhdWx0Il1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5sb2NhbGUuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGhvbWUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5ob21lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjb250ZW50IiwidmFsdWVQcm9wZXJ0eSIsInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsidXNlclNlbGVjdGFibGVIb21lIl1dLCJ2YWx1ZSIsWzI0LFsiaG9tZXBhZ2VJZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJob21lcGFnZV9pZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgb3RoZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5vdGhlcl9zZXR0aW5ncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmV4dGVybmFsX2xpbmtzX2luX25ld190YWIiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIl1dLCJwcmVmLWV4dGVybmFsLWxpbmtzIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmVuYWJsZV9xdW90aW5nIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW5hYmxlX3F1b3RpbmciXV0sInByZWYtZW5hYmxlLXF1b3RpbmciXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuZW5hYmxlX2RlZmVyIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW5hYmxlX2RlZmVyIl1dLCJwcmVmLWRlZmVyLXVuZHJlYWQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJhdXRvbWF0aWNhbGx5X3VucGluX3RvcGljcyJdXSwicHJlZi1hdXRvLXVucGluIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFsxLFsyOCwicHJlZmVyZW5jZS1jaGVja2JveCIsbnVsbCxbWyJsYWJlbEtleSIsImNoZWNrZWQiLCJjbGFzcyJdLFsidXNlci5oaWRlX3Byb2ZpbGVfYW5kX3ByZXNlbmNlIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiaGlkZV9wcm9maWxlX2FuZF9wcmVzZW5jZSJdXSwicHJlZi1oaWRlLXByb2ZpbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNpUGFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmVuYWJsZV9waHlzaWNhbF9rZXlib2FyZCIsWzI0LFsiZGlzYWJsZVNhZmFyaUhhY2tzIl1dLCJwcmVmLXNhZmFyaS1oYWNrcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuZHluYW1pY19mYXZpY29uIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZHluYW1pY19mYXZpY29uIl1dLCJwcmVmLWR5bmFtaWMtZmF2aWNvbiJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biBwcmVmLXBhZ2UtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwidXNlci1lbWFpbC1sZXZlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50aXRsZV9jb3VudF9tb2RlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJjb250ZW50IiwidmFsdWUiLCJpZCIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsWzI0LFsidGl0bGVDb3VudE1vZGVzIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aXRsZV9jb3VudF9tb2RlIl1dLCJ1c2VyLXRpdGxlLWNvdW50LW1vZGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsInRpdGxlX2NvdW50X21vZGUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1pbnRlcmZhY2UiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2ludGVyZmFjZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9ub3RpZmljYXRpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBub3RpZmljYXRpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5vdGlmaWNhdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsInZhbHVlUHJvcGVydHkiLCJjb250ZW50IiwidmFsdWUiLCJvbkNoYW5nZSJdLFsiZHVyYXRpb24iLCJ2YWx1ZSIsWzI0LFsiY29uc2lkZXJOZXdUb3BpY09wdGlvbnMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm5ld190b3BpY19kdXJhdGlvbl9taW51dGVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm5ld190b3BpY19kdXJhdGlvbl9taW51dGVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgY29udHJvbHMtZHJvcGRvd24iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRvX3RyYWNrX3RvcGljcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJhdXRvVHJhY2tEdXJhdGlvbnMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgY29udHJvbHMtZHJvcGRvd24iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5ub3RpZmljYXRpb25fbGV2ZWxfd2hlbl9yZXBseWluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJub3RpZmljYXRpb25MZXZlbHNGb3JSZXBseWluZyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxpa2Vfbm90aWZpY2F0aW9uX2ZyZXF1ZW5jeS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJsaWtlTm90aWZpY2F0aW9uRnJlcXVlbmNpZXMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImxpa2Vfbm90aWZpY2F0aW9uX2ZyZXF1ZW5jeSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJsaWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGRlc2t0b3Atbm90aWZpY2F0aW9ucyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzIyLCJkZXNrdG9wLW5vdGlmaWNhdGlvbi1jb25maWciXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZWFjaF9icm93c2VyX25vdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1kZXNrdG9wLW5vdGlmaWNhdGlvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByaXZhdGUtbWVzc2FnZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLmFsbG93X3ByaXZhdGVfbWVzc2FnZXMiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJhbGxvd19wcml2YXRlX21lc3NhZ2VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtbm90aWZpY2F0aW9ucyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvbm90aWZpY2F0aW9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9wcm9maWxlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1ZiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuQ2hhbmdlQmlvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtYmlvIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYmlvIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgYmlvLWNvbXBvc2VyIGlucHV0LXh4bGFyZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtZWRpdG9yIixudWxsLFtbInZhbHVlIl0sW1syNCxbIm1vZGVsIiwiYmlvX3JhdyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXRpbWV6b25lIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGltZXpvbmUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwidGltZXpvbmUtaW5wdXQiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSIsImNsYXNzIl0sW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aW1lem9uZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aW1lem9uZSJdXV0sbnVsbF1dLG51bGxdLCJpbnB1dC14eGxhcmdlIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1sb2NhdGlvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxvY2F0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSIsImNsYXNzIiwiaWQiXSxbInRleHQiLFsyNCxbIm1vZGVsIiwibG9jYXRpb24iXV0sImlucHV0LXh4bGFyZ2UiLCJlZGl0LWxvY2F0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtd2Vic2l0ZSJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLndlYnNpdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIiwiY2xhc3MiXSxbInRleHQiLFsyNCxbIm1vZGVsIiwid2Vic2l0ZSJdXSwiaW5wdXQteHhsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInVzZXItZmllbGQiLG51bGwsW1siZmllbGQiLCJ2YWx1ZSJdLFtbMjMsMSxbImZpZWxkIl1dLFsyMywxLFsidmFsdWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCJdLFs4XSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsImFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1wcm9maWxlLWJnIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcHJvZmlsZV9iYWNrZ3JvdW5kLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsInR5cGUiXSxbWzI0LFsibW9kZWwiLCJwcm9maWxlX2JhY2tncm91bmRfdXBsb2FkX3VybCJdXSwicHJvZmlsZV9iYWNrZ3JvdW5kIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcHJvZmlsZV9iYWNrZ3JvdW5kLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1wcm9maWxlLWJnIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfY2FyZF9iYWNrZ3JvdW5kLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsInR5cGUiXSxbWzI0LFsibW9kZWwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCJdXSwiY2FyZF9iYWNrZ3JvdW5kIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfY2FyZF9iYWNrZ3JvdW5kLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJhbGxvd19mZWF0dXJlZF90b3BpY19vbl91c2VyX3Byb2ZpbGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5mZWF0dXJlZF90b3BpYyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZlYXR1cmVkLXRvcGljLWxpbmsiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWxzIl0sWyJ0b3BpYyIsWzI4LCJhcnJheSIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJzbHVnIl1dLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJpZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjQsWyJtb2RlbCIsImZlYXR1cmVkX3RvcGljIiwiZmFuY3lfdGl0bGUiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0ZlYXR1cmVkVG9waWNNb2RhbCJdLG51bGxdLCJidG4tZGVmYXVsdCBmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUtYnRuIiwidXNlci5mZWF0dXJlX3RvcGljX29uX3Byb2ZpbGUub3Blbl9zZWFyY2giXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmVhdHVyZWRUb3BpY0Zyb21Qcm9maWxlIl0sbnVsbF0sImJ0bi1kYW5nZXIgY2xlYXItZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlLWJ0biIsInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLmNsZWFyLnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2ZlYXR1cmVkX3RvcGljLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtcHJvZmlsZSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1wcmVmZXJlbmNlcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvcHJvZmlsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy90YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgdGFnLW5vdGlmaWNhdGlvbnMiXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50YWdfc2V0dGluZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtd2F0Y2hpbmciXSxbWyJjbGFzcyJdLFsiaWNvbiB3YXRjaGluZyJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF90YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImJsYWNrbGlzdCIsImZpbHRlclBsYWNlaG9sZGVyIiwiYWxsb3dDcmVhdGUiLCJldmVyeVRhZyIsInVubGltaXRlZFRhZ0NvdW50Il0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZF90YWdzIl1dLFsyNCxbInNlbGVjdGVkVGFncyJdXSwic2VsZWN0X2tpdC5maWx0ZXJfcGxhY2Vob2xkZXIiLGZhbHNlLHRydWUsdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF90YWdzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZC10cmFja2luZyJdLFtbImNsYXNzIl0sWyJpY29uIHRyYWNraW5nIl1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiYmxhY2tsaXN0IiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJhbGxvd0NyZWF0ZSIsImV2ZXJ5VGFnIiwidW5saW1pdGVkVGFnQ291bnQiXSxbWzI0LFsibW9kZWwiLCJ0cmFja2VkX3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RhZ3NfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgdHJhY2tpbmctY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLXdhdGNoaW5nLWZpcnN0Il0sW1siY2xhc3MiXSxbImljb24gd2F0Y2hpbmctZmlyc3QtcG9zdCJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF9maXJzdF9wb3N0X3RhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiYmxhY2tsaXN0IiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJhbGxvd0NyZWF0ZSIsImV2ZXJ5VGFnIiwidW5saW1pdGVkVGFnQ291bnQiXSxbWzI0LFsibW9kZWwiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2ZpcnN0X3Bvc3RfdGFnc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtbXV0ZWQiXSxbWyJjbGFzcyJdLFsiaWNvbiBtdXRlZCJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubXV0ZWRfdGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJibGFja2xpc3QiLCJmaWx0ZXJQbGFjZWhvbGRlciIsImFsbG93Q3JlYXRlIiwiZXZlcnlUYWciLCJ1bmxpbWl0ZWRUYWdDb3VudCJdLFtbMjQsWyJtb2RlbCIsIm11dGVkX3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5tdXRlZF90YWdzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLXRhZ3MiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL3RhZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvdXNlcnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpZ25vcmVkRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCB1c2VyLWlnbm9yZSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyB1c2VyLW5vdGlmaWNhdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaWdub3JlZF91c2VycyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaWdub3JlZC11c2VyLWxpc3QiLG51bGwsW1sibW9kZWwiLCJpdGVtcyIsInNhdmluZyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJtb2RlbCIsImlnbm9yZWRfdXNlcm5hbWVzIl1dLFsyNCxbInNhdmVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCB1c2VyLW11dGUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImQtbXV0ZWQiXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm11dGVkX3VzZXJzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidXNlci1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbIm11dGVkVXNlcm5hbWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZU11dGVkVXNlcm5hbWVzIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbImV4Y2x1ZGVDdXJyZW50VXNlciJdLFt0cnVlXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5tdXRlZF91c2Vyc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1jdXN0b20tY29udHJvbHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHNhdmUtYnV0dG9uIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxNSwidXNlci9wcmVmZXJlbmNlcy9zYXZlLWJ1dHRvbiIsW11dLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOnRydWV9JyxtZXRhOnttb2R1bGVOYW1lOiJwcmVmZXJlbmNlcy91c2VycyJ9fSksRW1iZXIuVEVNUExBVEVTWyJyZXZpZXctaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInIiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1saXN0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIucmV2aWV3YWJsZS1pdGVtIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJyZXZpZXdhYmxlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWl0ZW0iLG51bGwsW1sicmV2aWV3YWJsZSIsInJlbW92ZSJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJyZXZpZXdhYmxlcyIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuby1yZXZpZXciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInJldmlldy5ub25lIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy5zdGF0dXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJvbkNoYW5nZSJdLFtbMjQsWyJmaWx0ZXJTdGF0dXMiXV0sWzI0LFsic3RhdHVzZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJmaWx0ZXJTdGF0dXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZpbHRlcnNFeHBhbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJhYm92ZS1yZXZpZXctZmlsdGVycyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwiYWRkaXRpb25hbEZpbHRlcnMiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsiYWRkaXRpb25hbEZpbHRlcnMiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy50eXBlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJub25lIiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyVHlwZSJdXSxbMjQsWyJhbGxUeXBlcyJdXSwicmV2aWV3LmZpbHRlcnMudHlwZS5hbGwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiZmlsdGVyVHlwZSJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy5wcmlvcml0eS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyUHJpb3JpdHkiXV0sWzI0LFsicHJpb3JpdGllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImZpbHRlclByaW9yaXR5Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJmaWx0ZXItbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5maWx0ZXJzLmNhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sibm9uZSIsInZhbHVlIiwib25DaGFuZ2UiXSxbInJldmlldy5maWx0ZXJzLmFsbF9jYXRlZ29yaWVzIixbMjQsWyJmaWx0ZXJDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiZmlsdGVyQ2F0ZWdvcnlJZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIgdG9waWMtZmlsdGVyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVyZWRfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwidXNlcm5hbWVzIiwiZnVsbFdpZHRoV3JhcCIsInNpbmdsZSIsImNsYXNzIiwiY2FuUmVjZWl2ZVVwZGF0ZXMiXSxbZmFsc2UsWzI0LFsiZmlsdGVyVXNlcm5hbWUiXV0sdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIix0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJmaWx0ZXJUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIgdG9waWMtZmlsdGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInJldmlldy5maWx0ZXJlZF90b3BpYyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1sibGFiZWwiLCJpY29uIiwiYWN0aW9uIl0sWyJyZXZpZXcuc2hvd19hbGxfdG9waWNzIiwidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldFRvcGljIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciBkYXRlLXJhbmdlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZGF0ZS10aW1lLWlucHV0LXJhbmdlIixudWxsLFtbInNob3dGcm9tVGltZSIsInNob3dUb1RpbWUiLCJmcm9tIiwidG8iLCJvbkNoYW5nZSJdLFtmYWxzZSxmYWxzZSxbMjQsWyJmaWx0ZXJGcm9tRGF0ZSJdXSxbMjQsWyJmaWx0ZXJUb0RhdGUiXV0sWzI0LFsic2V0UmFuZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciBzb3J0LW9yZGVyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcub3JkZXJfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyU29ydE9yZGVyIl1dLFsyNCxbInNvcnRPcmRlcnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJmaWx0ZXJTb3J0T3JkZXIiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXJzLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbInN5bmMiLCJyZXZpZXcuZmlsdGVycy5yZWZyZXNoIiwiYnRuLXByaW1hcnkgcmVmcmVzaCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1sibGFiZWwiLCJpY29uIiwiY2xhc3MiLCJhY3Rpb24iXSxbInNob3dfaGVscCIsWzI0LFsidG9nZ2xlRmlsdGVyc0ljb24iXV0sImJ0bi1kZWZhdWx0IGV4cGFuZC1zZWNvbmRhcnktZmlsdGVycyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUZpbHRlcnMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicmV2aWV3LWluZGV4In19KSxFbWJlci5URU1QTEFURVNbInJldmlldy1zZXR0aW5ncyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicnN0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1zZXR0aW5ncyJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnNldHRpbmdzLnByaW9yaXRpZXMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbInNldHRpbmdzIiwicmV2aWV3YWJsZV9zY29yZV90eXBlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXNjb3JlLXR5cGUiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJvbkNoYW5nZSJdLFtbMjMsMSxbInJldmlld2FibGVfcHJpb3JpdHkiXV0sWzI0LFsic2V0dGluZ3MiLCJyZXZpZXdhYmxlX3ByaW9yaXRpZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjMsMSxbInJldmlld2FibGVfcHJpb3JpdHkiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXNjb3JlLXR5cGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiXSxbImNoZWNrIiwicmV2aWV3LnNldHRpbmdzLnNhdmVfY2hhbmdlcyIsImJ0bi1wcmltYXJ5IHNhdmUtc2V0dGluZ3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2F2ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzYXZlZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnNldHRpbmdzLnNhdmVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXctc2V0dGluZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sicmV2aWV3LXNob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwicmV2aWV3YWJsZS1pdGVtIixudWxsLFtbInJldmlld2FibGUiXSxbWzI0LFsicmV2aWV3YWJsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXctc2hvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJyZXZpZXctdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJydCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZVRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXRvcGljcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnRvcGljcy50b3BpYyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy50b3BpY3MucmV2aWV3YWJsZV9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLnJlcG9ydGVkX2J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZVRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21iaW5lZC10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIzLDEsWyJyZWxhdGl2ZV91cmwiXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syMywxLFsiZmFuY3lfdGl0bGUiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtY291bnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjMsMSxbInN0YXRzIiwiY291bnQiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBvcnRlZC1ieSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLnVuaXF1ZV91c2VycyJdLFtbImNvdW50Il0sW1syMywxLFsic3RhdHMiLCJ1bmlxdWVfdXNlcnMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWRldGFpbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtY2xhaW1lZC10b3BpYyIsbnVsbCxbWyJ0b3BpY0lkIiwiY2xhaW1lZEJ5Il0sW1syMywxLFsiaWQiXV0sWzIzLDEsWyJjbGFpbWVkX2J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJxdWVyeSIsInJvdXRlIl0sWyJidG4gYnRuLXByaW1hcnkgYnRuLXNtYWxsIixbMjgsImhhc2giLG51bGwsW1sidG9waWNfaWQiXSxbWzIzLDEsWyJpZCJdXV1dXSwicmV2aWV3LmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsaXN0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLmRldGFpbHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLXJldmlldyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcubm9uZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicmV2aWV3LXRvcGljcyJ9fSksRW1iZXIuVEVNUExBVEVTLnJldmlldz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlIl0sWzhdLFswLCJcXG4gICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdiBuYXYtcGlsbHMgcmV2aWV3YWJsZS10aXRsZSJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwibmF2LWl0ZW0iLG51bGwsW1sicm91dGUiLCJsYWJlbCJdLFsicmV2aWV3LmluZGV4IiwicmV2aWV3LnZpZXdfYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsIm5hdi1pdGVtIixudWxsLFtbInJvdXRlIiwibGFiZWwiXSxbInJldmlldy50b3BpY3MiLCJyZXZpZXcuZ3JvdXBlZF9ieV90b3BpYyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsIm5hdi1pdGVtIixudWxsLFtbInJvdXRlIiwibGFiZWwiLCJpY29uIl0sWyJyZXZpZXcuc2V0dGluZ3MiLCJyZXZpZXcuc2V0dGluZ3MudGl0bGUiLCJ3cmVuY2giXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXcifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0ZWQtcG9zdHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsImNvdW50Il0sWyJ0b3BpYy5tdWx0aV9zZWxlY3QuZGVzY3JpcHRpb24iLFsyNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZWxlY3RBbGwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiY2xhc3MiLCJzZWxlY3QtYWxsIl0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0QWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubXVsdGlfc2VsZWN0LnNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkRlc2VsZWN0QWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJkZXNlbGVjdEFsbCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm11bHRpX3NlbGVjdC5kZXNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkRlbGV0ZVNlbGVjdGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVNlbGVjdGVkIl0sbnVsbF0sImZhci10cmFzaC1hbHQiLCJ0b3BpYy5tdWx0aV9zZWxlY3QuZGVsZXRlIiwiYnRuLWRhbmdlciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuTWVyZ2VUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwicm91dGUtYWN0aW9uIixbIm1vdmVUb1RvcGljIl0sbnVsbF0sInNpZ24tb3V0LWFsdCIsInRvcGljLm1vdmVfdG8uYWN0aW9uIiwiYnRuLXByaW1hcnkgbW92ZS10by10b3BpYyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ2hhbmdlT3duZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjaGFuZ2VPd25lciJdLG51bGxdLCJ1c2VyIiwidG9waWMuY2hhbmdlX293bmVyLmFjdGlvbiIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NZXJnZVBvc3RzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1lcmdlUG9zdHMiXSxudWxsXSwiYXJyb3dzLXYiLCJ0b3BpYy5tZXJnZV9wb3N0cy5hY3Rpb24iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJjYW5jZWwiXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVNdWx0aVNlbGVjdCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm11bHRpX3NlbGVjdC5jYW5jZWwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdGVkLXBvc3RzIn19KSxFbWJlci5URU1QTEFURVMuc3RhdGljPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJib2R5Q2xhc3MiLCJjbGFzcyJdLFtbMjQsWyJib2R5Q2xhc3MiXV0sImNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbNCwid2F0Y2gtcmVhZCIsbnVsbCxbWyJhY3Rpb24iLCJwYXRoIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJtYXJrRmFxUmVhZCJdLG51bGxdLFsyNCxbIm1vZGVsIiwicGF0aCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRlbnRzIGNsZWFyZml4IGJvZHktcGFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLXN0YXRpYyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImh0bWwiXV0sdHJ1ZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dTaWdudXBCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dDcmVhdGVBY2NvdW50Il0sbnVsbF0sImJ0bi1wcmltYXJ5IHNpZ24tdXAtYnV0dG9uIiwic2lnbl91cCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xvZ2luQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGxvZ2luLWJ1dHRvbiIsInVzZXIiLCJsb2dfaW4iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzdGF0aWMifX0pLEVtYmVyLlRFTVBMQVRFU1sidGFnLWdyb3Vwcy1lZGl0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRhZy1ncm91cHMtZm9ybSIsbnVsbCxbWyJtb2RlbCIsIm9uRGVzdHJveSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25EZXN0cm95Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFnLWdyb3Vwcy1lZGl0In19KSxFbWJlci5URU1QTEFURVNbInRhZy1ncm91cHMtaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctZ3JvdXAtY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5hYm91dCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs5XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFnLWdyb3Vwcy1pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJ0YWctZ3JvdXBzLW5ldyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0YWctZ3JvdXBzLWZvcm0iLG51bGwsW1sibW9kZWwiLCJvblNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uU2F2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZy1ncm91cHMtbmV3In19KSxFbWJlci5URU1QTEFURVNbInRhZy1ncm91cHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZ0dyb3VwIl0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIHRhZy1ncm91cHMtY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRlbnQtbGlzdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ0YWdHcm91cHMuZWRpdCIsWzIzLDEsW11dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyMywxLFsibmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMCxbInNpdGVTZXR0aW5ncyIsInRhZ2dpbmdfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJuZXdUYWdHcm91cCJdLG51bGxdLCJwbHVzIiwidGFnZ2luZy5ncm91cHMubmV3Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ0YWctZ3JvdXBzIn19KSxFbWJlci5URU1QTEFURVMudGFncz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIiwidGFnTmFtZSJdLFsidGFncyIsIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sidGFncy9pbmRleCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnR3JvdXAiLCJjYXRlZ29yeSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXSxbMjQsWyJzaXRlIiwiYmFubmVyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5BZG1pblRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidGFncy1hZG1pbi1kcm9wZG93biIsbnVsbCxbWyJhY3Rpb25zTWFwcGluZyJdLFtbMjQsWyJhY3Rpb25zTWFwcGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctc29ydC1vcHRpb25zIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInRhZy1zb3J0LWNvdW50ICIsWzI4LCJpZiIsW1syNCxbInNvcnRlZEJ5Q291bnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNvcnRCeUNvdW50Il1dLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5zb3J0X2J5X2NvdW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInRhZy1zb3J0LW5hbWUgIixbMjgsImlmIixbWzI0LFsic29ydGVkQnlOYW1lIl1dLCJhY3RpdmUiXSxudWxsXV1dXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlJZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc29ydF9ieV9uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiZXh0cmFzIiwiY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1saXN0IixudWxsLFtbInRhZ3MiLCJzb3J0UHJvcGVydGllcyIsImNhdGVnb3J5SWQiXSxbWzIzLDIsWyJ0YWdzIl1dLFsyNCxbInNvcnRQcm9wZXJ0aWVzIl1dLFsyMywyLFsiaWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJleHRyYXMiLCJ0YWdfZ3JvdXBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWxpc3QiLG51bGwsW1sidGFncyIsInNvcnRQcm9wZXJ0aWVzIiwidGFnR3JvdXBOYW1lIl0sW1syMywxLFsidGFncyJdXSxbMjQsWyJzb3J0UHJvcGVydGllcyJdXSxbMjMsMSxbIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWxpc3QiLG51bGwsW1sidGFncyIsInNvcnRQcm9wZXJ0aWVzIiwidGl0bGVLZXkiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsic29ydFByb3BlcnRpZXMiXV0sWzI0LFsib3RoZXJUYWdzVGl0bGVLZXkiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFncy9pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJ0YWdzL3Nob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXSxbMjQsWyJzaXRlIiwiYmFubmVyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJuYXZpZ2F0aW9uLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RhZ0ZpbHRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJicmVhZC1jcnVtYnMiLG51bGwsW1siY2F0ZWdvcmllcyIsImNhdGVnb3J5IiwidGFnSWQiLCJub1N1YmNhdGVnb3JpZXMiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXSxbMjQsWyJjYXRlZ29yeSJdXSxbMjQsWyJ0YWciLCJpZCJdXSxbMjQsWyJub1N1YmNhdGVnb3JpZXMiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsIm5hdmlnYXRpb24tYmFyIixudWxsLFtbIm5hdkl0ZW1zIiwiZmlsdGVyTW9kZSJdLFtbMjQsWyJuYXZJdGVtcyJdXSxbMjQsWyJmaWx0ZXJNb2RlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1zaG93LWhlYWRpbmciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInRhZ3MiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJhbmdsZS1yaWdodCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWctYm91bmQiLG51bGwsW1sidGFnUmVjb3JkIiwic3R5bGUiXSxbWzI0LFsidGFnIl1dLCJzaW1wbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJhZGRpdGlvbmFsVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIiYiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLFtbInN0eWxlIl0sWyJzaW1wbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidGFnTm90aWZpY2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJhZGRpdGlvbmFsVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInRhZy1ub3RpZmljYXRpb25zLWJ1dHRvbiIsbnVsbCxbWyJvbkNoYW5nZSIsInZhbHVlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VUYWdOb3RpZmljYXRpb25MZXZlbCJdLG51bGxdLFsyNCxbInRhZ05vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbl9sZXZlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjcmVhdGUtdG9waWMtYnV0dG9uIixudWxsLFtbImNhbkNyZWF0ZVRvcGljIiwiZGlzYWJsZWQiLCJsYWJlbCIsImFjdGlvbiJdLFtbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjQsWyJjcmVhdGVUb3BpY0Rpc2FibGVkIl1dLFsyNCxbImNyZWF0ZVRvcGljTGFiZWwiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlVG9waWMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb2dnbGVJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImFjdGlvbiIsImlkIl0sWyJ0YWciLCJ0YWdnaW5nLmluZm8iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVJbmZvIl0sbnVsbF0sInNob3ctdGFnLWluZm8iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWluZm8iLG51bGwsW1sidGFnIiwibGlzdCIsImRlbGV0ZUFjdGlvbiJdLFtbMjQsWyJ0YWciXV0sWzI0LFsibGlzdCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVGFnIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImRpc2NvdmVyeS1saXN0LWNvbnRhaW5lci10b3AiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBsaXN0LWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtd2lkdGgiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsaXN0LWFyZWEiXSxbOF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImxpc3QiLCJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImRpc2NvdmVyeS10b3BpY3MtbGlzdCIsbnVsbCxbWyJtb2RlbCIsInJlZnJlc2giXSxbWzI0LFsibGlzdCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVmcmVzaCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiYnVsay1zZWxlY3QtYnV0dG9uIixudWxsLFtbInNlbGVjdGVkIiwiYWN0aW9uIl0sW1syNCxbInNlbGVjdGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1sidG9waWNzIiwiY2FuQnVsa1NlbGVjdCIsInRvZ2dsZUJ1bGtTZWxlY3QiLCJidWxrU2VsZWN0RW5hYmxlZCIsInNlbGVjdGVkIiwic2hvd1Bvc3RlcnMiLCJvcmRlciIsImFzY2VuZGluZyIsImNoYW5nZVNvcnQiXSxbWzI0LFsibGlzdCIsInRvcGljcyJdXSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCdWxrU2VsZWN0Il0sbnVsbF0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sdHJ1ZSxbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2NlbmRpbmciXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVNvcnQiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZm9vdGVyIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdC1ib3R0b20iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjIsImZvb3Rlck1lc3NhZ2UiXSxmYWxzZV0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIi5cXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxpc3QiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZ3Mvc2hvdyJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybihudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93QnVsa1RvZ2dsZSIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTo1LGNvbHVtbjoxM319fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJidWxrU2VsZWN0RW5hYmxlZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDQscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjR9LGVuZDp7bGluZToxMSxjb2x1bW46MTN9fX0pKT9vOiIiKX0sMjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJmbGF0LWJ1dHRvbiIse25hbWU6InJhdyIsaGFzaDp7dGl0bGU6InRvcGljcy5idWxrLnRvZ2dsZSIsaWNvbjoibGlzdCIsY2xhc3M6ImJ1bGstc2VsZWN0In0saGFzaFR5cGVzOnt0aXRsZToiU3RyaW5nTGl0ZXJhbCIsaWNvbjoiU3RyaW5nTGl0ZXJhbCIsY2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e3RpdGxlOnQsaWNvbjp0LGNsYXNzOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjo2fSxlbmQ6e2xpbmU6NCxjb2x1bW46ODZ9fX0pKSsiXG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgIDxzcGFuIGNsYXNzPSdidWxrLXNlbGVjdC10b3BpY3MnPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPSdidG4gYnRuLWRlZmF1bHQgYnVsay1zZWxlY3QtYWxsJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljcy5idWxrLnNlbGVjdF9hbGwiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjgsY29sdW1uOjU2fSxlbmQ6e2xpbmU6OCxjb2x1bW46ODl9fX0pKSsiPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9J2J0biBidG4tZGVmYXVsdCBidWxrLWNsZWFyLWFsbCc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpY3MuYnVsay5jbGVhcl9hbGwiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjU1fSxlbmQ6e2xpbmU6OSxjb2x1bW46ODd9fX0pKSsiPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4ifSw2OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnNvcnRJY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNSxjb2x1bW46NH0sZW5kOntsaW5lOjE1LGNvbHVtbjoyOH19fSkpKyJcbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRoIGRhdGEtc29ydC1vcmRlcj0nIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9yZGVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjoyMX0sZW5kOntsaW5lOjEsY29sdW1uOjMwfX19KSkrIicgY2xhc3M9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmNsYXNzTmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46Mzl9LGVuZDp7bGluZToxLGNvbHVtbjo1N319fSkpKyInPiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhbkJ1bGtTZWxlY3QiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTIsY29sdW1uOjExfX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmxvY2FsaXplZE5hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEzLGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTMsY29sdW1uOjI0fX19KSkrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcuaXNTb3J0aW5nIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQsY29sdW1uOjJ9LGVuZDp7bGluZToxNixjb2x1bW46MTF9fX0pKT9vOiIiKSsiPC90aD5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidG9waWMtbGlzdC1oZWFkZXIiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nICA8dGggY2xhc3M9ImJ1bGstc2VsZWN0Ij5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhbkJ1bGtTZWxlY3QiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgyLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NSxjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L3RoPlxuIn0sMjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJmbGF0LWJ1dHRvbiIse25hbWU6InJhdyIsaGFzaDp7dGl0bGU6InRvcGljcy5idWxrLnRvZ2dsZSIsaWNvbjoibGlzdCIsY2xhc3M6ImJ1bGstc2VsZWN0In0saGFzaFR5cGVzOnt0aXRsZToiU3RyaW5nTGl0ZXJhbCIsaWNvbjoiU3RyaW5nTGl0ZXJhbCIsY2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e3RpdGxlOnQsaWNvbjp0LGNsYXNzOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjo2fSxlbmQ6e2xpbmU6NCxjb2x1bW46ODZ9fX0pKSsiXG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtbGlzdC1oZWFkZXItY29sdW1uIix7bmFtZToicmF3IixoYXNoOntvcmRlcjoicG9zdGVycyJ9LGhhc2hUeXBlczp7b3JkZXI6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e29yZGVyOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMCxjb2x1bW46Mn0sZW5kOntsaW5lOjEwLGNvbHVtbjo1Mn19fSkpKyJcbiJ9LDY6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6Imxpa2VzIixvcmRlcjoibGlrZXMiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNCxjb2x1bW46Mn0sZW5kOntsaW5lOjE0LGNvbHVtbjo5NX19fSkpKyJcbiJ9LDg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6Imxpa2VzIixvcmRlcjoib3BfbGlrZXMiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNyxjb2x1bW46Mn0sZW5kOntsaW5lOjE3LGNvbHVtbjo5OH19fSkpKyJcbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4obnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiYnVsa1NlbGVjdEVuYWJsZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Nyxjb2x1bW46N319fSkpP286IiIpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e2NhbkJ1bGtTZWxlY3Q6ImNhbkJ1bGtTZWxlY3QiLHNob3dCdWxrVG9nZ2xlOiJ0b2dnbGVJblRpdGxlIixidWxrU2VsZWN0RW5hYmxlZDoiYnVsa1NlbGVjdEVuYWJsZWQiLG5hbWU6Imxpc3RUaXRsZSIsb3JkZXI6ImRlZmF1bHQifSxoYXNoVHlwZXM6e2NhbkJ1bGtTZWxlY3Q6IlBhdGhFeHByZXNzaW9uIixzaG93QnVsa1RvZ2dsZToiUGF0aEV4cHJlc3Npb24iLGJ1bGtTZWxlY3RFbmFibGVkOiJQYXRoRXhwcmVzc2lvbiIsbmFtZToiUGF0aEV4cHJlc3Npb24iLG9yZGVyOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntjYW5CdWxrU2VsZWN0OnQsc2hvd0J1bGtUb2dnbGU6dCxidWxrU2VsZWN0RW5hYmxlZDp0LG5hbWU6dCxvcmRlcjp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46MH0sZW5kOntsaW5lOjgsY29sdW1uOjE1OH19fSkpKyJcbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dQb3N0ZXJzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OSxjb2x1bW46MH0sZW5kOntsaW5lOjExLGNvbHVtbjo3fX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7bmFtZToicmVwbGllcyIsb3JkZXI6InBvc3RzIixudW1iZXI6InRydWUiLHNvcnRhYmxlOiJzb3J0YWJsZSJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCIsb3JkZXI6IlN0cmluZ0xpdGVyYWwiLG51bWJlcjoiU3RyaW5nTGl0ZXJhbCIsc29ydGFibGU6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuYW1lOnQsb3JkZXI6dCxudW1iZXI6dCxzb3J0YWJsZTp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTIsY29sdW1uOjB9LGVuZDp7bGluZToxMixjb2x1bW46OTV9fX0pKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93TGlrZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg2LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMyxjb2x1bW46MH0sZW5kOntsaW5lOjE1LGNvbHVtbjo3fX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dPcExpa2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjB9LGVuZDp7bGluZToxOCxjb2x1bW46N319fSkpP286IiIpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6InZpZXdzIixvcmRlcjoidmlld3MiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOSxjb2x1bW46MH0sZW5kOntsaW5lOjE5LGNvbHVtbjo5M319fSkpKyJcbiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7bmFtZToiYWN0aXZpdHkiLG9yZGVyOiJhY3Rpdml0eSIsbnVtYmVyOiJ0cnVlIixzb3J0YWJsZToic29ydGFibGUifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwiLG9yZGVyOiJTdHJpbmdMaXRlcmFsIixudW1iZXI6IlN0cmluZ0xpdGVyYWwiLHNvcnRhYmxlOiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7bmFtZTp0LG9yZGVyOnQsbnVtYmVyOnQsc29ydGFibGU6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIwLGNvbHVtbjowfSxlbmQ6e2xpbmU6MjAsY29sdW1uOjk5fX19KSkrIlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJ0b3BpYy1wb3N0LWJhZGdlcyJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiImbmJzcDs8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXJsIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjoxOX0sZW5kOntsaW5lOjMsY29sdW1uOjI2fX19KSkrIicgY2xhc3M9J2JhZGdlIGJhZGdlLW5vdGlmaWNhdGlvbiB1bnJlYWQnIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnVucmVhZF9wb3N0cyIse25hbWU6ImkxOG4iLGhhc2g6e2NvdW50OiJ1bnJlYWQifSxoYXNoVHlwZXM6e2NvdW50OiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7Y291bnQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjc1fSxlbmQ6e2xpbmU6Myxjb2x1bW46MTE3fX19KSkrIic+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVucmVhZCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46MTE5fSxlbmQ6e2xpbmU6Myxjb2x1bW46MTI5fX19KSkrIjwvYT4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjE5fSxlbmQ6e2xpbmU6Nixjb2x1bW46MjZ9fX0pKSsiJyBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy1wb3N0cycgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMudG90YWxfdW5yZWFkX3Bvc3RzIix7bmFtZToiaTE4biIsaGFzaDp7Y291bnQ6Im5ld1Bvc3RzIn0saGFzaFR5cGVzOntjb3VudDoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NvdW50OnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjo3OH0sZW5kOntsaW5lOjYsY29sdW1uOjEyOH19fSkpKyInPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJuZXdQb3N0cyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTMwfSxlbmQ6e2xpbmU6Nixjb2x1bW46MTQyfX19KSkrIjwvYT4ifSw1OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjE5fSxlbmQ6e2xpbmU6OSxjb2x1bW46MjZ9fX0pKSsiJyBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy10b3BpYycgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubmV3Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo5LGNvbHVtbjo3OH0sZW5kOntsaW5lOjksY29sdW1uOjk4fX19KSkrIic+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm5ld0RvdFRleHQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjEwMH0sZW5kOntsaW5lOjksY29sdW1uOjExNH19fSkpKyI8L2E+In0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8c3BhbiBjbGFzcz0ndG9waWMtcG9zdC1iYWRnZXMnPiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVucmVhZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZTo0LGNvbHVtbjoxMH19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJuZXdQb3N0cyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjJ9LGVuZDp7bGluZTo3LGNvbHVtbjoxMH19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1bnNlZW4iLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg1LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTAsY29sdW1uOjEwfX19KSk/bzoiIikrIjwvc3Bhbj5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidG9waWMtc3RhdHVzIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIjxkaXYgY2xhc3M9J3RvcGljLXN0YXR1c2VzJz5cbiJ9LDM6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmhyZWYiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg0LHMsMCksaW52ZXJzZTplLnByb2dyYW0oNixzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46MH0sZW5kOntsaW5lOjksY29sdW1uOjEwfX19KSk/bzoiIn0sNDpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmhyZWYiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjl9LGVuZDp7bGluZTo2LGNvbHVtbjoyNH19fSkpKyInIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjozM30sZW5kOntsaW5lOjYsY29sdW1uOjQ5fX19KSkrIicgY2xhc3M9J3RvcGljLXN0YXR1cyAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmV4dHJhQ2xhc3NlcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46NzF9LGVuZDp7bGluZTo2LGNvbHVtbjo5NH19fSkpKyInPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cy5pY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjo5Nn0sZW5kOntsaW5lOjYsY29sdW1uOjExOH19fSkpKyI8L2E+In0sNjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cy5vcGVuVGFnIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxfSxlbmQ6e2xpbmU6OCxjb2x1bW46MTl9fX0pKSsiIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoyN30sZW5kOntsaW5lOjgsY29sdW1uOjQzfX19KSkrIicgY2xhc3M9J3RvcGljLXN0YXR1cyc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmljb24iLHtuYW1lOiJkLWljb24iLGhhc2g6e2NsYXNzOiJzdGF0dXMua2V5In0saGFzaFR5cGVzOntjbGFzczoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NsYXNzOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46NjZ9LGVuZDp7bGluZTo4LGNvbHVtbjoxMDV9fX0pKSsiPC8iK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmNsb3NlVGFnIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxMDd9LGVuZDp7bGluZTo4LGNvbHVtbjoxMjZ9fX0pKSsiPiJ9LDg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcuc2hvd0RlZmF1bHQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjExLGNvbHVtbjoyNn0sZW5kOntsaW5lOjExLGNvbHVtbjo1M319fSkpfSwxMDpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8L2Rpdj5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4obnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5yZW5kZXJEaXYiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Myxjb2x1bW46OX19fSkpP286IiIpKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cyIsImluIiwidmlldy5zdGF0dXNlcyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMyxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjB9LGVuZDp7bGluZToxMCxjb2x1bW46MTB9fX0pKT9vOiIiKSsobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5zaG93RGVmYXVsdCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDgscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjExLGNvbHVtbjowfSxlbmQ6e2xpbmU6MTEsY29sdW1uOjYzfX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcucmVuZGVyRGl2Iix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTAscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEyLGNvbHVtbjowfSxlbmQ6e2xpbmU6MTQsY29sdW1uOjl9fX0pKT9vOiIiKX0sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFUy50b3BpYz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInBlbmRpbmciLCJpbmZvIl0sInN0YXRlbWVudHMiOltbNCwiZGlzY291cnNlLXRvcGljIixudWxsLFtbIm11bHRpU2VsZWN0IiwiZW50ZXJlZEF0IiwidG9waWMiLCJoYXNTY3JvbGxlZCJdLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSxbMjQsWyJlbnRlcmVkQXQiXV0sWzI0LFsibW9kZWwiXV0sWzI0LFsiaGFzU2Nyb2xsZWQiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiYWRkLWNhdGVnb3J5LXRhZy1jbGFzc2VzIixudWxsLFtbImNhdGVnb3J5IiwidGFncyJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5Il1dLFsyNCxbIm1vZGVsIiwidGFncyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciIsIm92ZXJsYXkiLCJoaWRlIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLFsyNCxbInNpdGUiLCJiYW5uZXIiXV0sWzI0LFsiaGFzU2Nyb2xsZWQiXV0sWzI0LFsibW9kZWwiLCJlcnJvckxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1NoYXJlZERyYWZ0Q29udHJvbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInNoYXJlZC1kcmFmdC1jb250cm9scyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtcG9zdC1zdHJlYW0iLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicG9zdFN0cmVhbSIsImxvYWRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJmaXJzdFBvc3RQcmVzZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ0b3BpYy10aXRsZSIsbnVsbCxbWyJjYW5jZWxsZWQiLCJzYXZlIiwibW9kZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbEVkaXRpbmdUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hlZEVkaXRpbmdUb3BpYyJdLG51bGxdLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZWRpdGluZ1RvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXQtdG9waWMtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siaWQiLCJ2YWx1ZSIsIm1heGxlbmd0aCIsImF1dG9mb2N1cyJdLFsiZWRpdC10aXRsZSIsWzI0LFsiYnVmZmVyZWQiLCJ0aXRsZSJdXSxbMjQsWyJzaXRlU2V0dGluZ3MiLCJtYXhfdG9waWNfdGl0bGVfbGVuZ3RoIl1dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDYXRlZ29yeUNob29zZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbImNsYXNzIiwidmFsdWUiLCJvbkNoYW5nZSJdLFsic21hbGwiLFsyNCxbImJ1ZmZlcmVkIiwiY2F0ZWdvcnlfaWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvcGljQ2F0ZWdvcnlDaGFuZ2VkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtaW5pLXRhZy1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbImJ1ZmZlcmVkIiwidGFncyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9waWNUYWdzQ2hhbmdlZCJdLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwiY2F0ZWdvcnlJZCIsImZpbHRlcmFibGUiXSxbdHJ1ZSxbMjQsWyJidWZmZXJlZCIsImNhdGVnb3J5X2lkIl1dLHRydWVdXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJlZGl0LXRvcGljIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiLCJidWZmZXJlZCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJidWZmZXJlZCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJlZGl0LWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hlZEVkaXRpbmdUb3BpYyJdLG51bGxdLCJidG4tcHJpbWFyeSBzdWJtaXQtZWRpdCIsImNoZWNrIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbEVkaXRpbmdUb3BpYyJdLG51bGxdLCJidG4tZGVmYXVsdCBjYW5jZWwtZWRpdCIsInRpbWVzIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblJlbW92ZVRvcGljRmVhdHVyZWRMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwicmVtb3ZlLWZlYXR1cmVkLWxpbmsiXSxbMTIsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJjb21wb3Nlci5yZW1vdmVfZmVhdHVyZWRfbGluayJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUZlYXR1cmVkTGluayJdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzLWNpcmNsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzIyLCJmZWF0dXJlZExpbmtEb21haW4iXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImgxIix0cnVlXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJpZCJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJpc193YXJuaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsImVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSIsImhyZWYiLCJ0aXRsZSIsImFyaWFMYWJlbCJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV0sWzI0LFsicG1QYXRoIl1dLCJ0b3BpY19zdGF0dXNlcy5wZXJzb25hbF9tZXNzYWdlLnRpdGxlIiwidXNlci5tZXNzYWdlcy5pbmJveCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGV0YWlscyIsImxvYWRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXN0YXR1cyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJ1cmwiXV1dLG51bGxdXV1dLFsxMiwiY2xhc3MiLCJmYW5jeS10aXRsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb3AiXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJmYW5jeVRpdGxlIl1dLHRydWVdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGV0YWlscyIsImNhbl9lZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImVkaXQtdG9waWMiXSxbMTIsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJlZGl0Il0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFRvcGljIl1dLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLWNhdGVnb3J5IixudWxsLFtbInRvcGljIiwiY2xhc3MiXSxbWzI0LFsibW9kZWwiXV0sInRvcGljLWNhdGVnb3J5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgcG9zdHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNlbGVjdGVkLXBvc3RzICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxNSwic2VsZWN0ZWQtcG9zdHMiLFtdXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwidG9waWMtbmF2aWdhdGlvbiIsbnVsbCxbWyJ0b3BpYyIsImp1bXBUb0RhdGUiLCJqdW1wVG9JbmRleCJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcFRvRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9JbmRleCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJyZW5kZXJUaW1lbGluZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMixbInJlbmRlckFkbWluTWVudUJ1dHRvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiIsbnVsbCxbWyJ0b3BpYyIsImZpeGVkIiwidG9nZ2xlTXVsdGlTZWxlY3QiLCJkZWxldGVUb3BpYyIsInJlY292ZXJUb3BpYyIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsibW9kZWwiXV0sInRydWUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVNdWx0aVNlbGVjdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWNvdmVyVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQ2xvc2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUFyY2hpdmVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVZpc2liaWxpdHkiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93VG9waWNTdGF0dXNVcGRhdGUiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93RmVhdHVyZVRvcGljIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0NoYW5nZVRpbWVzdGFtcCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldEJ1bXBEYXRlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbnZlcnRUb1B1YmxpY1RvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbnZlcnRUb1ByaXZhdGVNZXNzYWdlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtdGltZWxpbmUiLG51bGwsW1sidG9waWMiLCJub3RpZmljYXRpb25MZXZlbCIsInByZXZFdmVudCIsImZ1bGxzY3JlZW4iLCJlbnRlcmVkSW5kZXgiLCJsb2FkaW5nIiwianVtcFRvUG9zdCIsImp1bXBUb3AiLCJqdW1wQm90dG9tIiwianVtcEVuZCIsImp1bXBUb1Bvc3RQcm9tcHQiLCJqdW1wVG9JbmRleCIsInJlcGx5VG9Qb3N0IiwidG9nZ2xlTXVsdGlTZWxlY3QiLCJkZWxldGVUb3BpYyIsInJlY292ZXJUb3BpYyIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibW9kZWwiLCJkZXRhaWxzIiwibm90aWZpY2F0aW9uX2xldmVsIl1dLFsyMywyLFsicHJldkV2ZW50Il1dLFsyMywyLFsidG9waWNQcm9ncmVzc0V4cGFuZGVkIl1dLFsyNCxbImVudGVyZWRJbmRleCJdXSxbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJsb2FkaW5nIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9Qb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb3AiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcEJvdHRvbSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wRW5kIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb1Bvc3RQcm9tcHQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcFRvSW5kZXgiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlUb1Bvc3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlTXVsdGlTZWxlY3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVjb3ZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUNsb3NlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVBcmNoaXZlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVWaXNpYmlsaXR5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd1RvcGljU3RhdHVzVXBkYXRlIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZlYXR1cmVUb3BpYyJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dDaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRCdW1wRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInRvcGljLXByb2dyZXNzIixudWxsLFtbInByZXZFdmVudCIsInRvcGljIiwiZXhwYW5kZWQiLCJqdW1wVG9Qb3N0Il0sW1syMywyLFsicHJldkV2ZW50Il1dLFsyNCxbIm1vZGVsIl1dLFsyMywyLFsidG9waWNQcm9ncmVzc0V4cGFuZGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9Qb3N0Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJiZWZvcmUtdG9waWMtcHJvZ3Jlc3MiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsImp1bXBUb1Bvc3QiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb1Bvc3QiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywyLFsicmVuZGVyQWRtaW5NZW51QnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtYWRtaW4tbWVudS1idXR0b24iLG51bGwsW1sidG9waWMiLCJvcGVuVXB3YXJkcyIsInJpZ2h0U2lkZSIsInRvZ2dsZU11bHRpU2VsZWN0IiwiZGVsZXRlVG9waWMiLCJyZWNvdmVyVG9waWMiLCJ0b2dnbGVDbG9zZWQiLCJ0b2dnbGVBcmNoaXZlZCIsInRvZ2dsZVZpc2liaWxpdHkiLCJzaG93VG9waWNTdGF0dXNVcGRhdGUiLCJzaG93RmVhdHVyZVRvcGljIiwic2hvd0NoYW5nZVRpbWVzdGFtcCIsInJlc2V0QnVtcERhdGUiLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyIsImNvbnZlcnRUb1ByaXZhdGVNZXNzYWdlIl0sW1syNCxbIm1vZGVsIl1dLCJ0cnVlIiwidHJ1ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZU11bHRpU2VsZWN0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlY292ZXJUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVDbG9zZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQXJjaGl2ZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlVmlzaWJpbGl0eSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dUb3BpY1N0YXR1c1VwZGF0ZSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dGZWF0dXJlVG9waWMiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q2hhbmdlVGltZXN0YW1wIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2V0QnVtcERhdGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29udmVydFRvUHVibGljVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1hcmVhIl0sWzEwLCJpZCIsInRvcGljIl0sWzExLCJkYXRhLXRvcGljLWlkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbIm1vZGVsIiwiaWQiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0cy13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwibG9hZGluZ0Fib3ZlIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ0b3BpYy1hYm92ZS1wb3N0cyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwicG9zdFN0cmVhbSIsImxvYWRpbmdGaWx0ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY3JvbGxpbmctcG9zdC1zdHJlYW0iLG51bGwsW1sicG9zdHMiLCJjYW5DcmVhdGVQb3N0IiwibXVsdGlTZWxlY3QiLCJzZWxlY3RlZFBvc3RzQ291bnQiLCJzZWxlY3RlZFF1ZXJ5IiwiZ2FwcyIsInNob3dSZWFkSW5kaWNhdG9yIiwic2hvd0ZsYWdzIiwiZWRpdFBvc3QiLCJzaG93SGlzdG9yeSIsInNob3dMb2dpbiIsInNob3dSYXdFbWFpbCIsImRlbGV0ZVBvc3QiLCJyZWNvdmVyUG9zdCIsImV4cGFuZEhpZGRlbiIsIm5ld1RvcGljQWN0aW9uIiwidG9nZ2xlQm9va21hcmsiLCJ0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlciIsInRvZ2dsZVBvc3RUeXBlIiwicmViYWtlUG9zdCIsImNoYW5nZVBvc3RPd25lciIsImdyYW50QmFkZ2UiLCJhZGROb3RpY2UiLCJyZW1vdmVOb3RpY2UiLCJsb2NrUG9zdCIsInVubG9ja1Bvc3QiLCJ1bmhpZGVQb3N0IiwicmVwbHlUb1Bvc3QiLCJ0b2dnbGVXaWtpIiwidG9nZ2xlU3VtbWFyeSIsInJlbW92ZUFsbG93ZWRVc2VyIiwicmVtb3ZlQWxsb3dlZEdyb3VwIiwidG9wVmlzaWJsZUNoYW5nZWQiLCJjdXJyZW50UG9zdENoYW5nZWQiLCJjdXJyZW50UG9zdFNjcm9sbGVkIiwiYm90dG9tVmlzaWJsZUNoYW5nZWQiLCJ0b2dnbGVQb3N0U2VsZWN0aW9uIiwic2VsZWN0UmVwbGllcyIsInNlbGVjdEJlbG93IiwiZmlsbEdhcEJlZm9yZSIsImZpbGxHYXBBZnRlciIsInNob3dJbnZpdGUiXSxbWzI0LFsicG9zdHNUb1JlbmRlciJdXSxbMjQsWyJtb2RlbCIsImRldGFpbHMiLCJjYW5fY3JlYXRlX3Bvc3QiXV0sWzI0LFsibXVsdGlTZWxlY3QiXV0sWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dLFsyNCxbInNlbGVjdGVkUXVlcnkiXV0sWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwiZ2FwcyJdXSxbMjQsWyJtb2RlbCIsInNob3dfcmVhZF9pbmRpY2F0b3IiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dQb3N0RmxhZ3MiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFBvc3QiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93SGlzdG9yeSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dSYXdFbWFpbCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlY292ZXJQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4cGFuZEhpZGRlbiJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseUFzTmV3VG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQm9va21hcmsiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQm9va21hcmtXaXRoUmVtaW5kZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUG9zdFR5cGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmViYWtlUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQb3N0T3duZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZ3JhbnRCYWRnZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGROb3RpY2UiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlTm90aWNlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvY2tQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVubG9ja1Bvc3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidW5oaWRlUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseVRvUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVXaWtpIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVN1bW1hcnkiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQWxsb3dlZFVzZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQWxsb3dlZEdyb3VwIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvcFZpc2libGVDaGFuZ2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImN1cnJlbnRQb3N0Q2hhbmdlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjdXJyZW50UG9zdFNjcm9sbGVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImJvdHRvbVZpc2libGVDaGFuZ2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVBvc3RTZWxlY3Rpb24iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0UmVwbGllcyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RCZWxvdyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaWxsR2FwQmVmb3JlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZpbGxHYXBBZnRlciJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dJbnZpdGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwibG9hZGluZ0JlbG93Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJ0b3BpYy1ib3R0b20iXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJsb2FkaW5nRmlsdGVyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibG9hZGVkQWxsUG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicGVuZGluZ19wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwZW5kaW5nLXBvc3RzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwicGVuZGluZ19wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtbWV0YS1kYXRhIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtdHlwZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmF3YWl0aW5nX2FwcHJvdmFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY3JlYXRlZC1hdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImFnZS13aXRoLXRvb2x0aXAiLFtbMjMsMSxbImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWNyZWF0ZWQtYnkiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsiY3VycmVudFVzZXIiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1jb250ZW50cyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieS1uYW1lIixudWxsLFtbInVzZXIiLCJ0YWdOYW1lIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1ib2R5Il0sWzhdLFsxLFsyOCwiY29vay10ZXh0IixbWzIzLDEsWyJyYXciXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImljb24iLCJhY3Rpb24iXSxbImJ0bi1kYW5nZXIiLCJyZXZpZXcuZGVsZXRlIiwidHJhc2gtYWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlUGVuZGluZyIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInF1ZXVlZF9wb3N0c19jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJoYXMtcGVuZGluZy1wb3N0cyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNfaGFzX3BlbmRpbmciXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInF1ZXVlZF9wb3N0c19jb3VudCJdXV1dXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJ0b3BpY19pZCIsInR5cGUiLCJzdGF0dXMiXSxbWzI0LFsibW9kZWwiLCJpZCJdXSwiUmV2aWV3YWJsZVF1ZXVlZFBvc3QiLCJwZW5kaW5nIl1dXSwicmV2aWV3Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudmlld19wZW5kaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXRpbWVyLWluZm8iLG51bGwsW1sidG9waWNDbG9zZWQiLCJzdGF0dXNUeXBlIiwiZXhlY3V0ZUF0IiwiZHVyYXRpb24iLCJyZW1vdmVUb3BpY1RpbWVyIl0sW1syNCxbIm1vZGVsIiwiY2xvc2VkIl1dLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsInN0YXR1c190eXBlIl1dLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV0sWzI0LFsibW9kZWwiLCJwcml2YXRlX3RvcGljX3RpbWVyIiwiZHVyYXRpb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZVRvcGljVGltZXIiLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsInN0YXR1c190eXBlIl1dLCJwcml2YXRlX3RvcGljX3RpbWVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXRpbWVyLWluZm8iLG51bGwsW1sidG9waWNDbG9zZWQiLCJzdGF0dXNUeXBlIiwiZXhlY3V0ZUF0IiwiYmFzZWRPbkxhc3RQb3N0IiwiZHVyYXRpb24iLCJjYXRlZ29yeUlkIiwicmVtb3ZlVG9waWNUaW1lciJdLFtbMjQsWyJtb2RlbCIsImNsb3NlZCJdXSxbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwic3RhdHVzX3R5cGUiXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImJhc2VkX29uX2xhc3RfcG9zdCJdXSxbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwiZHVyYXRpb24iXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImNhdGVnb3J5X2lkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVUb3BpY1RpbWVyIixbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwic3RhdHVzX3R5cGUiXV0sInRvcGljX3RpbWVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzZXNzaW9uIiwic2hvd1NpZ251cEN0YSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyMiwic2lnbnVwLWN0YSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtZm9vdGVyLWJ1dHRvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtZm9vdGVyLWJ1dHRvbnMiLG51bGwsW1sidG9waWMiLCJ0b2dnbGVNdWx0aVNlbGVjdCIsImRlbGV0ZVRvcGljIiwicmVjb3ZlclRvcGljIiwidG9nZ2xlQ2xvc2VkIiwidG9nZ2xlQXJjaGl2ZWQiLCJ0b2dnbGVWaXNpYmlsaXR5Iiwic2hvd1RvcGljU3RhdHVzVXBkYXRlIiwic2hvd0ZlYXR1cmVUb3BpYyIsInNob3dDaGFuZ2VUaW1lc3RhbXAiLCJyZXNldEJ1bXBEYXRlIiwiY29udmVydFRvUHVibGljVG9waWMiLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSIsInRvZ2dsZUJvb2ttYXJrIiwic2hvd0ZsYWdUb3BpYyIsInRvZ2dsZUFyY2hpdmVNZXNzYWdlIiwiZWRpdEZpcnN0UG9zdCIsImRlZmVyVG9waWMiLCJyZXBseVRvUG9zdCJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlTXVsdGlTZWxlY3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVjb3ZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUNsb3NlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVBcmNoaXZlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVWaXNpYmlsaXR5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd1RvcGljU3RhdHVzVXBkYXRlIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZlYXR1cmVUb3BpYyJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dDaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRCdW1wRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCb29rbWFyayJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dGbGFnVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdEZpcnN0UG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlcGx5VG9Qb3N0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInRvcGljLWZvb3Rlci1idXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbInJlcGx5IiwiYnRuLXByaW1hcnkgcHVsbC1yaWdodCIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sInRvcGljLnJlcGx5LnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1NlbGVjdGVkUG9zdHNBdEJvdHRvbSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNlbGVjdGVkLXBvc3RzICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMTUsInNlbGVjdGVkLXBvc3RzIixbXV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtc3VnZ2VzdGVkIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbIm1vZGVsIiwicmVsYXRlZE1lc3NhZ2VzIiwibGVuZ3RoIl1dLCJyZWxhdGVkLW1lc3NhZ2VzLXdyYXBwZXIiXSxudWxsXSwiICIsWzI4LCJpZiIsW1syNCxbIm1vZGVsIiwic3VnZ2VzdGVkVG9waWNzIiwibGVuZ3RoIl1dLCJzdWdnZXN0ZWQtdG9waWNzLXdyYXBwZXIiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicmVsYXRlZE1lc3NhZ2VzIiwibGVuZ3RoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJlbGF0ZWQtbWVzc2FnZXMiLG51bGwsW1sidG9waWMiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN1Z2dlc3RlZFRvcGljcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzdWdnZXN0ZWQtdG9waWNzIixudWxsLFtbInRvcGljIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJub0Vycm9yWWV0Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJlcnJvckh0bWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibm90LWZvdW5kIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiZXJyb3JIdG1sIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjQsWyJtb2RlbCIsImVycm9yTWVzc2FnZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm5vUmV0cnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImN1cnJlbnRVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXSwiYnRuLXByaW1hcnkgdG9waWMtcmV0cnkiLCJ1c2VyIiwibG9nX2luIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJldHJ5TG9hZGluZyJdLG51bGxdLCJidG4tcHJpbWFyeSB0b3BpYy1yZXRyeSIsInN5bmMiLCJlcnJvcnMuYnV0dG9ucy5hZ2FpbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsicmV0cnlpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuICAiXSxbMSxbMjgsInNoYXJlLXBvcHVwIixudWxsLFtbInRvcGljIiwicmVwbHlBc05ld1RvcGljIl0sW1syNCxbIm1vZGVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseUFzTmV3VG9waWMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImVtYmVkUXVvdGVCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInF1b3RlLWJ1dHRvbiIsbnVsbCxbWyJxdW90ZVN0YXRlIiwic2VsZWN0VGV4dCJdLFtbMjQsWyJxdW90ZVN0YXRlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RUZXh0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOnRydWV9JyxtZXRhOnttb2R1bGVOYW1lOiJ0b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTLnVua25vd249RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwibW9kZWwiXSx0cnVlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidW5rbm93biJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyLWNhcmQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWNsb2FrIGhpZGRlbiJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItY2FyZC1jb250ZW50cyIsbnVsbCxbWyJjdXJyZW50UGF0aCIsInRvcGljIiwic2hvd1VzZXIiLCJ0b2dnbGVQb3N0cyIsImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dLFsyNCxbInRvcGljIiwibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVBvc3RzIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJncm91cC1jYXJkLWNvbnRlbnRzIixudWxsLFtbImN1cnJlbnRQYXRoIiwidG9waWMiLCJzaG93VXNlciIsInNob3dHcm91cCIsImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dLFsyNCxbInRvcGljIiwibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dHcm91cCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyLWNhcmQifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci1pbnZpdGVkLXNob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImludml0ZSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWludml0ZXMiLCIiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuSW52aXRlVG9Gb3J1bSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbImNsYXNzIiwic2VsZWN0b3IiLCJhY3Rpb24iXSxbInVzZXItY29udGVudCIsIi51c2VyLWludml0ZS1saXN0IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfaW52aXRlX2RldGFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWRtaW4tY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJuYXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYgbmF2LXBpbGxzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJuYXYtaXRlbSIsbnVsbCxbWyJyb3V0ZSIsInJvdXRlUGFyYW0iLCJpMThuTGFiZWwiXSxbInVzZXJJbnZpdGVkLnNob3ciLCJwZW5kaW5nIixbMjQsWyJwZW5kaW5nTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJuYXYtaXRlbSIsbnVsbCxbWyJyb3V0ZSIsInJvdXRlUGFyYW0iLCJpMThuTGFiZWwiXSxbInVzZXJJbnZpdGVkLnNob3ciLCJyZWRlZW1lZCIsWzI0LFsicmVkZWVtZWRMYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLXJpZ2h0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImFjdGlvbiIsImxhYmVsIl0sWyJwbHVzIixbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93SW52aXRlIl0sbnVsbF0sInVzZXIuaW52aXRlZC5jcmVhdGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQnVsa0ludml0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY3N2LXVwbG9hZGVyIixudWxsLFtbInVwbG9hZGluZyJdLFtbMjQsWyJ1cGxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiaHJlZiIsImh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3Qvc2VuZGluZy1idWxrLXVzZXItaW52aXRlcy8xNjQ2OCJdLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzEwLCJzdHlsZSIsImNvbG9yOmJsYWNrOyJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJxdWVzdGlvbi1jaXJjbGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93QnVsa0FjdGlvbkJ1dHRvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmVzY2luZGVkQWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlc2NpbmRlZF9hbGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNjaW5kQWxsIl0sbnVsbF0sInVzZXIuaW52aXRlZC5yZXNjaW5kX2FsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsicmVpbnZpdGVkQWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlaW52aXRlZF9hbGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsic3luYyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlaW52aXRlQWxsIl0sbnVsbF0sInVzZXIuaW52aXRlZC5yZWludml0ZV9hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2VhcmNoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW52aXRlLXNlYXJjaCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJzZWFyY2hUZXJtIl1dLCJ1c2VyLmludml0ZWQuc2VhcmNoIl1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpbnZpdGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidGFibGUgdXNlci1pbnZpdGUtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImludml0ZVJlZGVlbWVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnVzZXIiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlZGVlbWVkX2F0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VlX2ludml0ZV9kZXRhaWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC50b3BpY3NfZW50ZXJlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5wb3N0c19yZWFkX2NvdW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnRpbWVfcmVhZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5kYXlzX3Zpc2l0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNvbHNwYW4iLCIxIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQudXNlciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnNlbnQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiaW52aXRlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjMsMSxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImF2YXRhciIsW1syMywxLFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjMsMSxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjMsMSxbInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZm9ybWF0LWRhdGUiLFtbMjMsMSxbInJlZGVlbWVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfaW52aXRlX2RldGFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJ1c2VyIiwibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjMsMSxbInVzZXIiLCJ0b3BpY3NfZW50ZXJlZCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzIzLDEsWyJ1c2VyIiwicG9zdHNfcmVhZF9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZm9ybWF0LWR1cmF0aW9uIixbWzIzLDEsWyJ1c2VyIiwidGltZV9yZWFkIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5kYXlzX3Zpc2l0ZWQiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ1c2VyIiwiZGF5c192aXNpdGVkIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgL1xcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJ1c2VyLmludml0ZWQuYWNjb3VudF9hZ2VfZGF5cyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsInVuYm91bmQiLFtbMjMsMSxbInVzZXIiLCJkYXlzX3NpbmNlX2NyZWF0ZWQiXV1dLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJlbWFpbCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJ1cGRhdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImV4cGlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLmV4cGlyZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbInJlc2NpbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5yZXNjaW5kZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImxhYmVsIl0sWyJ0aW1lcyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2NpbmQiXSxudWxsXSxbMjMsMSxbXV0sInVzZXIuaW52aXRlZC5yZXNjaW5kIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWludml0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlaW52aXRlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImxhYmVsIl0sWyJzeW5jIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVpbnZpdGUiXSxudWxsXSxbMjMsMSxbXV0sInVzZXIuaW52aXRlZC5yZWludml0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImludml0ZXNMb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1pbnZpdGUtbm9uZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQnVsa0ludml0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLmJ1bGtfaW52aXRlLm5vbmUiXSxudWxsXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5ub25lIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci1pbnZpdGVkLXNob3cifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci1wcml2YXRlLW1lc3NhZ2VzLXRhZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsaXN0LWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy50YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1zb3J0LW9wdGlvbnMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc29ydF9ieSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidGFnLXNvcnQtY291bnQgIixbMjgsImlmIixbWzI0LFsic29ydGVkQnlDb3VudCJdXSwiYWN0aXZlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlDb3VudCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnlfY291bnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJ0YWctc29ydC1uYW1lICIsWzI4LCJpZiIsW1syNCxbInNvcnRlZEJ5TmFtZSJdXSwiYWN0aXZlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlJZCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnlfbmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1saXN0IixudWxsLFtbInRhZ3MiLCJzb3J0UHJvcGVydGllcyIsInRpdGxlS2V5IiwiaXNQcml2YXRlTWVzc2FnZSIsInRhZ3NGb3JVc2VyIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInNvcnRQcm9wZXJ0aWVzIl1dLCJ0YWdnaW5nLmFsbF90YWdzIix0cnVlLFsyNCxbInRhZ3NGb3JVc2VyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidXNlci1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgPGxpPlxuICAgICAgICA8YSBocmVmIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlci5uYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjoyM30sZW5kOntsaW5lOjUsY29sdW1uOjM2fX19KSkrJyI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uYXZhdGFyfHx0JiZ0LmF2YXRhcnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlciIse25hbWU6ImF2YXRhciIsaGFzaDp7aW1hZ2VTaXplOiJ0aW55In0saGFzaFR5cGVzOntpbWFnZVNpemU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2ltYWdlU2l6ZTp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjEwfSxlbmQ6e2xpbmU6Nixjb2x1bW46NDJ9fX0pKSsiXG4gICAgICAgICAgPHNwYW4gY2xhc3M9J3VzZXJuYW1lJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZm9ybWF0LXVzZXJuYW1lIl18fHQmJnRbImZvcm1hdC11c2VybmFtZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1c2VyLnVzZXJuYW1lIix7bmFtZToiZm9ybWF0LXVzZXJuYW1lIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3LGNvbHVtbjozM30sZW5kOntsaW5lOjcsY29sdW1uOjY2fX19KSkrIjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0nbmFtZSc+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVzZXIubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46Mjl9LGVuZDp7bGluZTo4LGNvbHVtbjo0Mn19fSkpKyI8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1haWwiLCJpbiIsIm9wdGlvbnMuZW1haWxzIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg0LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQsY29sdW1uOjZ9LGVuZDp7bGluZToyMSxjb2x1bW46MTV9fX0pKT9vOiIifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJyAgICAgICAgPGxpPlxuICAgICAgICAgIDxhIGhyZWYgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbWFpbC51c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjI1fSxlbmQ6e2xpbmU6MTYsY29sdW1uOjQzfX19KSkrJyI+XG4gICAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbnZlbG9wZSIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNyxjb2x1bW46MTJ9LGVuZDp7bGluZToxNyxjb2x1bW46MzN9fX0pKSsiXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz0ndXNlcm5hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtdXNlcm5hbWUiXXx8dCYmdFsiZm9ybWF0LXVzZXJuYW1lIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtYWlsLnVzZXJuYW1lIix7bmFtZToiZm9ybWF0LXVzZXJuYW1lIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOCxjb2x1bW46MzV9LGVuZDp7bGluZToxOCxjb2x1bW46Njl9fX0pKSsiPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiJ9LDY6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cCIsImluIiwib3B0aW9ucy5ncm91cHMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDcscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNSxjb2x1bW46Nn0sZW5kOntsaW5lOjMzLGNvbHVtbjoxNX19fSkpP286IiJ9LDc6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgICA8bGk+XG4gICAgICAgICAgPGEgaHJlZiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImdyb3VwLmZ1bGxfbmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjcsY29sdW1uOjI1fSxlbmQ6e2xpbmU6MjcsY29sdW1uOjQ0fX19KSkrJyI+XG4gICAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1c2VycyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyOCxjb2x1bW46MTJ9LGVuZDp7bGluZToyOCxjb2x1bW46MzB9fX0pKSsiXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz0ndXNlcm5hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cC5uYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyOSxjb2x1bW46MzV9LGVuZDp7bGluZToyOSxjb2x1bW46NDl9fX0pKSsiPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9J25hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cC5mdWxsX25hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMwLGNvbHVtbjozMX0sZW5kOntsaW5lOjMwLGNvbHVtbjo1MH19fSkpKyI8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtdXNlcic+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlciIsImluIiwib3B0aW9ucy51c2VycyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZToxMSxjb2x1bW46MTN9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb25zLmVtYWlscyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEzLGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjIsY29sdW1uOjExfX19KSk/bzoiIikrIlxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9ucy5ncm91cHMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg2LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNCxjb2x1bW46NH0sZW5kOntsaW5lOjM0LGNvbHVtbjoxMX19fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbInVzZXItdG9waWNzLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsb2FkLW1vcmUiLG51bGwsW1siY2xhc3MiLCJzZWxlY3RvciIsImFjdGlvbiJdLFsicGFnaW5hdGVkLXRvcGljcy1saXN0IiwiLnBhZ2luYXRlZC10b3BpY3MtbGlzdCAudG9waWMtbGlzdCB0ciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImJhc2ljLXRvcGljLWxpc3QiLG51bGwsW1sidG9waWNMaXN0IiwiaGlkZUNhdGVnb3J5Iiwic2hvd1Bvc3RlcnMiLCJidWxrU2VsZWN0RW5hYmxlZCIsInNlbGVjdGVkIiwiaGFzSW5jb21pbmciLCJpbmNvbWluZ0NvdW50Iiwic2hvd0luc2VydGVkIiwidGFnc0ZvclVzZXIiLCJvblNjcm9sbCIsInNjcm9sbE9uTG9hZCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJoaWRlQ2F0ZWdvcnkiXV0sWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsiaGFzSW5jb21pbmciXV0sWzI0LFsiaW5jb21pbmdDb3VudCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0luc2VydGVkIl0sbnVsbF0sWzI0LFsidGFnc0ZvclVzZXIiXV0sWzI0LFsic2F2ZVNjcm9sbFBvc2l0aW9uIl1dLHRydWVdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXItdG9waWNzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFUy51c2VyPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZ3JvdXAiLCJ1ZiJdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWJvdmUtdXNlci1wcm9maWxlIiwiIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjb250YWluZXIgIixbMjgsImlmIixbWzI0LFsidmlld2luZ1NlbGYiXV0sInZpZXdpbmctc2VsZiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJjbGFzcyJdLFsidXNlci1tYWluIl1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4gICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbImNvbGxhcHNlZEluZm8iXV0sImNvbGxhcHNlZC1pbmZvIl0sbnVsbF0sIiBhYm91dCAiLFsyOCwiaWYiLFtbMjQsWyJoYXNQcm9maWxlQmFja2dyb3VuZFVybCJdXSwiaGFzLWJhY2tncm91bmQiLCJuby1iYWNrZ3JvdW5kIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiY29sbGFwc2VkSW5mbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93U3RhZmZDb3VudGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YWZmLWNvdW50ZXJzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm51bWJlcl9vZl9mbGFnc19naXZlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhlbHBmdWwtZmxhZ3MiXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJudW1iZXJfb2ZfZmxhZ3NfZ2l2ZW4iXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5mbGFnc19naXZlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInF1ZXJ5Iiwicm91dGUiXSxbWzI4LCJoYXNoIixudWxsLFtbInVzZXJuYW1lIiwic3RhdHVzIiwidHlwZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLCJhbGwiLCJSZXZpZXdhYmxlRmxhZ2dlZFBvc3QiXV1dLCJyZXZpZXciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJmbGFnZ2VkLXBvc3RzIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5mbGFnZ2VkX3Bvc3RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJudW1iZXJfb2ZfZGVsZXRlZF9wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlci5kZWxldGVkUG9zdHMiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZWxldGVkLXBvc3RzIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX2RlbGV0ZWRfcG9zdHMiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5kZWxldGVkX3Bvc3RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJudW1iZXJfb2Zfc3VzcGVuc2lvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1N1c3BlbnNpb25zIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbnNpb25zIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX3N1c3BlbnNpb25zIl1dLGZhbHNlXSxbOV0sWzEsWzI4LCJpMThuIixbInVzZXIuc3RhZmZfY291bnRlcnMuc3VzcGVuc2lvbnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ3YXJuaW5nc19yZWNlaXZlZF9jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmdzLXJlY2VpdmVkIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwid2FybmluZ3NfcmVjZWl2ZWRfY291bnQiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy53YXJuaW5nc19yZWNlaXZlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS1pbWFnZSJdLFsxMSwic3R5bGUiLFsyNCxbIm1vZGVsIiwicHJvZmlsZUJhY2tncm91bmRVcmwiXV1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHJpbWFyeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidXNlci1wcm9maWxlLWF2YXRhciIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJtb2RlbCJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VuZF9wcml2YXRlX21lc3NhZ2VfdG9fdXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSBjb21wb3NlLXBtIixbMjgsInJvdXRlLWFjdGlvbiIsWyJjb21wb3NlUHJpdmF0ZU1lc3NhZ2UiLFsyNCxbIm1vZGVsIl1dXSxudWxsXSwiZW52ZWxvcGUiLCJ1c2VyLnByaXZhdGVfbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5NdXRlT3JJZ25vcmVVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duIixudWxsLFtbInVzZXIiLCJ2YWx1ZSIsInVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInVzZXJOb3RpZmljYXRpb25MZXZlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBkYXRlTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjQsWyJtb2RlbCIsImFkbWluUGF0aCJdXV0sWzEwLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ3cmVuY2giXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbImFkbWluLnVzZXIuc2hvd19hZG1pbl9wcm9maWxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2VyLXByb2ZpbGUtY29udHJvbHMiLCIiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRXhwYW5kUHJvZmlsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjb2xsYXBzZWRJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4cGFuZFByb2ZpbGUiXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYW5nbGUtZG91YmxlLWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5leHBhbmRfcHJvZmlsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbGxhcHNlUHJvZmlsZSJdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJhbmdsZS1kb3VibGUtdXAiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jb2xsYXBzZV9wcm9maWxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInByaW1hcnktdGV4dHVhbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS1uYW1lcyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSwiZnVsbC1uYW1lIiwidXNlcm5hbWUiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSxbMjQsWyJtb2RlbCIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXSxudWxsXV0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJ1c2VyLXN0YXR1cyIsW1syNCxbIm1vZGVsIl1dXSxbWyJjdXJyZW50VXNlciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsibmFtZUZpcnN0Il1dLCJ1c2VybmFtZSIsImZ1bGwtbmFtZSJdLG51bGxdXV1dLFs4XSxbNCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN0YWdlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YWdlZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFnZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJ0aXRsZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcG9zdC1uYW1lcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RmVhdHVyZWRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZmVhdHVyZWRfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbHMiXSxbInRvcGljIixbMjgsImFycmF5IixbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsInNsdWciXV0sWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsImlkIl1dXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJmYW5jeV90aXRsZSJdXSx0cnVlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJsb2NhdGlvbi1hbmQtd2Vic2l0ZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWxvY2F0aW9uIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbIm1hcC1tYXJrZXItYWx0Il0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJsb2NhdGlvbiJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS13ZWJzaXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImdsb2JlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsaW5rV2Vic2l0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIm1vZGVsIiwid2Vic2l0ZSJdXV0sWzExLCJyZWwiLFsyOCwidW5sZXNzIixbWzI0LFsicmVtb3ZlTm9Gb2xsb3ciXV0sIm5vZm9sbG93IHVnYyBub29wZW5lciJdLG51bGxdXSxbMTAsInRhcmdldCIsIl9ibGFuayJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjQsWyJtb2RlbCIsIndlYnNpdGUiXV1dLFs4XSxbMSxbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWxvY2F0aW9uLWFuZC13ZWJzaXRlIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiaW8iXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic3VzcGVuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbmRlZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN1c3BlbmRlZEZvcmV2ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zdXNwZW5kZWRfcGVybWFuZW50bHkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VzcGVuZGVkX25vdGljZSJdLFtbImRhdGUiXSxbWzI0LFsibW9kZWwiLCJzdXNwZW5kZWRUaWxsRGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJzdXNwZW5kX3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1c3BlbmRlZF9yZWFzb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJzdXNwZW5kX3JlYXNvbiJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpc05vdFN1c3BlbmRlZE9ySXNTdGFmZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicHVibGljVXNlckZpZWxkcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHVibGljLXVzZXItZmllbGRzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInB1YmxpY1VzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJ2YWx1ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJwdWJsaWMtdXNlci1maWVsZCAiLFsyMywyLFsiZmllbGQiLCJkYXNoZXJpemVkX25hbWUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkLW5hbWUiXSxbOF0sWzEsWzIzLDIsWyJmaWVsZCIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiOlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItZmllbGQtdmFsdWUiXSxbOF0sWzEsWzIzLDIsWyJ2YWx1ZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByb2ZpbGUtcHVibGljLWZpZWxkcyIsWzI4LCJoYXNoIixudWxsLFtbInB1YmxpY1VzZXJGaWVsZHMiLCJtb2RlbCJdLFtbMjQsWyJwdWJsaWNVc2VyRmllbGRzIl1dLFsyNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJvZmlsZS1wcmltYXJ5IixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImNvbGxhcHNlZEluZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlY29uZGFyeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkbCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNyZWF0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNyZWF0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFs3LCJkZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syNCxbIm1vZGVsIiwiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3RfcG9zdGVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJtb2RlbCIsImxhc3RfcG9zdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJsYXN0X3NlZW5fYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzcsImRkIix0cnVlXSxbOF0sWzEsWzI4LCJib3VuZC1kYXRlIixbWzI0LFsibW9kZWwiLCJsYXN0X3NlZW5fYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInByb2ZpbGVfdmlld19jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInZpZXdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInByb2ZpbGVfdmlld19jb3VudCJdXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywiZHQiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnZpdGVkLWJ5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWRfYnkiXSxudWxsXSxmYWxzZV0sWzldLFs3LCJkZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZWQtYnkiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlciIsWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5IiwidXNlcm5hbWUiXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwidHJ1c3RfbGV2ZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRydXN0LWxldmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRydXN0X2xldmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0cnVzdC1sZXZlbCJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInRydXN0TGV2ZWwiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGVja0VtYWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkZCIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI0LFsibW9kZWwiLCJlbWFpbCJdXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVtYWlsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImVtYWlsIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjaGVja0VtYWlsIl0sbnVsbF0sWzI0LFsibW9kZWwiXV0sImZhci1lbnZlbG9wZSIsImFkbWluLnVzZXJzLmNoZWNrX2VtYWlsLnRleHQiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGlzcGxheUdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMudGl0bGUiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsImRpc3BsYXlHcm91cHMiLCJsZW5ndGgiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJkaXNwbGF5R3JvdXBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsiZ3JvdXAtbGluayIsImdyb3VwIixbMjMsMSxbIm5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJ1c2VybmFtZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV1dLCJncm91cHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgIC4uLlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5EZWxldGVVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLXJpZ2h0Il0sWzhdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFkbWluRGVsZXRlIl0sbnVsbF0sImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwidXNlci5hZG1pbl9kZWxldGUiLCJidG4tZGFuZ2VyIl1dXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcm9maWxlLXNlY29uZGFyeSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcblxcblxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50LXdyYXBwZXIiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJpbWFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtYWluLW5hdiIsIm5hdiBuYXYtcGlsbHMgdXNlci1uYXYiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwicHJvZmlsZV9oaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXIuc3VtbWFyeSJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRpdGxlIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyLmFjdGl2aXR5X3N0cmVhbSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dOb3RpZmljYXRpb25zVGFiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNvbW1lbnQiXSxbWyJjbGFzcyJdLFsiZ2x5cGgiXV1dLGZhbHNlXSxbMSxbMjgsImkxOG4iLFsidXNlci5ub3RpZmljYXRpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dQcml2YXRlTWVzc2FnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJQcml2YXRlTWVzc2FnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsiZmFyLWVudmVsb3BlIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5JbnZpdGVUb0ZvcnVtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VySW52aXRlZCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsWyJ1c2VyLXBsdXMiXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC50aXRsZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXIuYmFkZ2VzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImNlcnRpZmljYXRlIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJiYWRnZXMudGl0bGUiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbInVzZXItbWFpbi1uYXYiLCIiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fZWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsiY29nIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9hY3Rpdml0eSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJjbGFzcyIsInNjcm9sbFRvcCJdLFsidXNlci1hY3Rpdml0eSIsInVzZXItc2Vjb25kYXJ5LW5hdmlnYXRpb24iLCJmYWxzZSJdXSx7InN0YXRlbWVudHMiOltbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJhY3Rpdml0eS1uYXYiLCJhY3Rpb24tbGlzdCBhY3Rpdml0eS1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyLmZpbHRlcnMuYWxsIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkudG9waWNzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyX2FjdGlvbl9ncm91cHMuNCJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LnJlcGxpZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy41Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwic2hvd0RyYWZ0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmRyYWZ0cyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlcl9hY3Rpb25fZ3JvdXBzLjE1Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5Lmxpa2VzR2l2ZW4iXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4xIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwic2hvd0Jvb2ttYXJrcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmJvb2ttYXJrcyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlcl9hY3Rpb25fZ3JvdXBzLjMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsidXNlci1hY3Rpdml0eS1ib3R0b20iLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhbkRvd25sb2FkUG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItYWRkaXRpb25hbC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXhwb3J0VXNlckFyY2hpdmUiXSxudWxsXSwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRvd25sb2FkX2FyY2hpdmUuYnV0dG9uX3RleHQiLCJkb3dubG9hZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci9hY3Rpdml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL2JhZGdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidWIiXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIiwiY2xhc3MiXSxbInVzZXItYmFkZ2VzIiwidXNlci1jb250ZW50IHVzZXItYmFkZ2VzLWxpc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJzb3J0ZWRCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImJhZGdlLWNhcmQiLG51bGwsW1siYmFkZ2UiLCJjb3VudCIsInVzZXJuYW1lIiwiZmlsdGVyVXNlciJdLFtbMjMsMSxbImJhZGdlIl1dLFsyMywxLFsiY291bnQiXV0sWzI0LFsidXNlcm5hbWUiXV0sInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL2JhZGdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL21lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJncm91cCJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJjbGFzcyIsInBhZ2VDbGFzcyJdLFsidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiIsInVzZXItbWVzc2FnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dOZXdQTSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgbmV3LXByaXZhdGUtbWVzc2FnZSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY29tcG9zZVByaXZhdGVNZXNzYWdlIl0sbnVsbF0sImVudmVsb3BlIiwidXNlci5uZXdfcHJpdmF0ZV9tZXNzYWdlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtZXNzYWdlcy1uYXYiLCJuYXYtc3RhY2tlZCBhY3Rpb24tbGlzdCIsWzI0LFsiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vR2x5cGgiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInVzZXJQcml2YXRlTWVzc2FnZXMuaW5kZXgiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubWVzc2FnZXMuaW5ib3giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibm9HbHlwaCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5zZW50IixbMjQsWyJtb2RlbCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLnNlbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibm9HbHlwaCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5hcmNoaXZlIixbMjQsWyJtb2RlbCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmFyY2hpdmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsidXNlci1tZXNzYWdlcy1uYXYiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImhhc19tZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5ncm91cCIsWzIzLDEsWyJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNhcGl0YWxpemUtc3RyaW5nIixbWzIzLDEsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJhcmNoaXZlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLmdyb3VwQXJjaGl2ZSIsWzIzLDEsWyJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmFyY2hpdmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJwbVRhZ2dpbmdFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJub0dseXBoIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLnRhZ3MiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5tZXNzYWdlcy50YWdzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJhcmNoaXZlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLnRhZ3NTaG93IixbMjQsWyJ0YWdJZCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInRhZ0lkIl0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxpc3QtYWN0aW9ucyJdLFs4XSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dUb2dnbGVCdWxrU2VsZWN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJ0aXRsZSIsImljb24iXSxbImJ0bi1kZWZhdWx0IGJ1bGstc2VsZWN0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQnVsa1NlbGVjdCJdLG51bGxdLCJ1c2VyLm1lc3NhZ2VzLmJ1bGtfc2VsZWN0IiwibGlzdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd05ld1BNIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IG5ldy1wcml2YXRlLW1lc3NhZ2UiLFsyOCwicm91dGUtYWN0aW9uIixbImNvbXBvc2VQcml2YXRlTWVzc2FnZSJdLG51bGxdLCJlbnZlbG9wZSIsInVzZXIubmV3X3ByaXZhdGVfbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQXJjaGl2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBidG4tYXJjaGl2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFyY2hpdmUiXSxudWxsXSwidXNlci5tZXNzYWdlcy5tb3ZlX3RvX2FyY2hpdmUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbk1vdmVUb0luYm94Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IGJ0bi10by1pbmJveCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvSW5ib3giXSxudWxsXSwidXNlci5tZXNzYWdlcy5tb3ZlX3RvX2luYm94Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBidG4tc2VsZWN0LWFsbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdEFsbCJdLG51bGxdLCJ1c2VyLm1lc3NhZ2VzLnNlbGVjdF9hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzR3JvdXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbm90aWZpY2F0aW9ucy1idXR0b24iLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJncm91cCIsImdyb3VwX3VzZXIiLCJub3RpZmljYXRpb25fbGV2ZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUdyb3VwTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvbWVzc2FnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9ub3RpZmljYXRpb25zLWluZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpdGVtIGVycm9yIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZvcmJpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJpMThuIixbImVycm9ycy5yZWFzb25zLmZvcmJpZGRlbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJlcnJvcnMuZGVzYy51bmtub3duIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzTm90aWZpY2F0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsbnVsbCxbWyJub3RpZmljYXRpb25zIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJub3RpZmljYXRpb25zLmVtcHR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL25vdGlmaWNhdGlvbnMtaW5kZXgifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9ub3RpZmljYXRpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyIsImNsYXNzIl0sWyJ1c2VyLW5vdGlmaWNhdGlvbnMiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl1dLHsic3RhdGVtZW50cyI6W1s0LCJtb2JpbGUtbmF2IixudWxsLFtbImNsYXNzIiwiZGVza3RvcENsYXNzIiwiY3VycmVudFBhdGgiXSxbIm5vdGlmaWNhdGlvbnMtbmF2Iiwibm90aWZpY2F0aW9uLWxpc3QgYWN0aW9uLWxpc3QgbmF2LXN0YWNrZWQiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmZpbHRlcnMuYWxsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMucmVzcG9uc2VzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyX2FjdGlvbl9ncm91cHMuNiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLmxpa2VzUmVjZWl2ZWQiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4yIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX21lbnRpb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLm1lbnRpb25zIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy43Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMuZWRpdHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4xMSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWFkZGl0aW9uYWwtY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCIsImljb24iLCJkaXNhYmxlZCJdLFsidXNlci5kaXNtaXNzX25vdGlmaWNhdGlvbnNfdG9vbHRpcCIsImJ0biBidG4tZGVmYXVsdCBkaXNtaXNzLW5vdGlmaWNhdGlvbnMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJ1c2VyLmRpc21pc3Nfbm90aWZpY2F0aW9ucyIsImNoZWNrIixbMjQsWyJhbGxOb3RpZmljYXRpb25zUmVhZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG4iXSxbNCwibG9hZC1tb3JlIixudWxsLFtbImNsYXNzIiwic2VsZWN0b3IiLCJhY3Rpb24iXSxbIm5vdGlmaWNhdGlvbi1oaXN0b3J5IHVzZXItc3RyZWFtIiwiLnVzZXItc3RyZWFtIC5ub3RpZmljYXRpb24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci9ub3RpZmljYXRpb25zIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvcG9zdHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidXNlci1zdHJlYW0iLG51bGwsW1sic3RyZWFtIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvcG9zdHMifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9wcmVmZXJlbmNlcy9fc2F2ZS1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSBzYXZlLXVzZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsibW9kZWwiLCJpc1NhdmluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyMiwic2F2ZUJ1dHRvblRleHQiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNhdmVkLXVzZXIiXSxbOF0sWzEsWzI4LCJpMThuIixbInNhdmVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvcHJlZmVyZW5jZXMvX3NhdmUtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvcHJvZmlsZS1oaWRkZW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWhpZGRlbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5wcm9maWxlX2hpZGRlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3Byb2ZpbGUtaGlkZGVuIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvc3RyZWFtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm5vQ29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsIm5vQ29udGVudEhlbHAiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMSxbMjgsInVzZXItc3RyZWFtIixudWxsLFtbInN0cmVhbSJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3N0cmVhbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL3N1bW1hcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJhZGdlIiwiY2F0ZWdvcnkiLCJ1c2VyIiwidXNlciIsInVzZXIiLCJsaW5rIiwidG9waWMiLCJyZXBseSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLXN1bW1hcnkiLCIiXV0seyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9wLXNlY3Rpb24gc3RhdHMtc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRzLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1bW1hcnkuc3RhdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsibW9kZWwiLCJkYXlzX3Zpc2l0ZWQiXV0sInVzZXIuc3VtbWFyeS5kYXlzX3Zpc2l0ZWQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidHlwZSJdLFtbMjQsWyJ0aW1lUmVhZCJdXSwidXNlci5zdW1tYXJ5LnRpbWVfcmVhZCIsInN0cmluZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dSZWNlbnRUaW1lUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJ0eXBlIl0sW1syNCxbInJlY2VudFRpbWVSZWFkIl1dLCJ1c2VyLnN1bW1hcnkucmVjZW50X3RpbWVfcmVhZCIsInN0cmluZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsibW9kZWwiLCJ0b3BpY3NfZW50ZXJlZCJdXSwidXNlci5zdW1tYXJ5LnRvcGljc19lbnRlcmVkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJtb2RlbCIsInBvc3RzX3JlYWRfY291bnQiXV0sInVzZXIuc3VtbWFyeS5wb3N0c19yZWFkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibGlua2VkLXN0YXQiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkubGlrZXNHaXZlbiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwibGlrZXNfZ2l2ZW4iXV0sImhlYXJ0IiwidXNlci5zdW1tYXJ5Lmxpa2VzX2dpdmVuIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiYm9va21hcmtfY291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibGlua2VkLXN0YXQiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkuYm9va21hcmtzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwiYm9va21hcmtfY291bnQiXV0sInVzZXIuc3VtbWFyeS5ib29rbWFya19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJsaW5rZWQtc3RhdCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJBY3Rpdml0eS50b3BpY3MiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwidG9waWNfY291bnQiXV0sInVzZXIuc3VtbWFyeS50b3BpY19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJsaW5rZWQtc3RhdCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJBY3Rpdml0eS5yZXBsaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJtb2RlbCIsInBvc3RfY291bnQiXV0sInVzZXIuc3VtbWFyeS5wb3N0X2NvdW50Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwibGlrZXNfcmVjZWl2ZWQiXV0sImhlYXJ0IiwidXNlci5zdW1tYXJ5Lmxpa2VzX3JlY2VpdmVkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbInVzZXItc3VtbWFyeS1zdGF0IiwiIiwibGkiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiJdLFs4XSxbMCwiXFxuIl0sWzQsInVzZXItc3VtbWFyeS1zZWN0aW9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbInRvcF9yZXBsaWVzIiwicmVwbGllcy1zZWN0aW9uIHB1bGwtbGVmdCJdXSx7InN0YXRlbWVudHMiOltbNCwidXNlci1zdW1tYXJ5LXRvcGljcy1saXN0IixudWxsLFtbInR5cGUiLCJpdGVtcyIsInVzZXIiXSxbInJlcGxpZXMiLFsyNCxbIm1vZGVsIiwicmVwbGllcyJdXSxbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktdG9waWMiLG51bGwsW1siY3JlYXRlZEF0IiwidG9waWMiLCJsaWtlcyIsInVybCJdLFtbMjMsOCxbImNyZWF0ZWRBdCJdXSxbMjMsOCxbInRvcGljIl1dLFsyMyw4LFsibGlrZV9jb3VudCJdXSxbMjMsOCxbInVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzhdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVzZXItc3VtbWFyeS1zZWN0aW9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbInRvcF90b3BpY3MiLCJ0b3BpY3Mtc2VjdGlvbiBwdWxsLXJpZ2h0Il1dLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLXN1bW1hcnktdG9waWNzLWxpc3QiLG51bGwsW1sidHlwZSIsIml0ZW1zIiwidXNlciJdLFsidG9waWNzIixbMjQsWyJtb2RlbCIsInRvcGljcyJdXSxbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktdG9waWMiLG51bGwsW1siY3JlYXRlZEF0IiwidG9waWMiLCJsaWtlcyIsInVybCJdLFtbMjMsNyxbImNyZWF0ZWRfYXQiXV0sWzIzLDcsW11dLFsyMyw3LFsibGlrZV9jb3VudCJdXSxbMjMsNyxbInVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzddfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1zZWN0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidG9wX2xpbmtzIiwibGlua3Mtc2VjdGlvbiBwdWxsLWxlZnQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsaW5rcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImxpbmtzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRvbWFpbiJdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsNixbInVybCJdXV0sbnVsbF1dXV0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsNixbInRpdGxlIl1dXSxudWxsXV1dXSxbMTEsInJlbCIsWzI5LFtbMjgsInVubGVzcyIsW1syNCxbInVzZXIiLCJyZW1vdmVOb0ZvbGxvdyJdXSwibm9mb2xsb3cgdWdjIG5vb3BlbmVyIl0sbnVsbF1dXV0sWzEwLCJ0YXJnZXQiLCJfYmxhbmsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInNob3J0ZW4tdXJsIixbWzIzLDYsWyJ1cmwiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gY2xpY2tzIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWNfbWFwLmNsaWNrcyJdLFtbImNvdW50Il0sW1syMyw2LFsiY2xpY2tzIl1dXV1dXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMyw2LFsiY2xpY2tzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syMyw2LFsicG9zdF91cmwiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjMsNixbInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNl19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5Lm5vX2xpbmtzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsibW9zdF9yZXBsaWVkX3RvX3VzZXJzIiwic3VtbWFyeS11c2VyLWxpc3QgcmVwbGllZC1zZWN0aW9uIHB1bGwtcmlnaHQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItc3VtbWFyeS11c2Vycy1saXN0IixudWxsLFtbIm5vbmUiLCJ1c2VycyJdLFsibm9fcmVwbGllcyIsWzI0LFsibW9kZWwiLCJtb3N0X3JlcGxpZWRfdG9fdXNlcnMiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInVzZXItc3VtbWFyeS11c2VyIixudWxsLFtbInVzZXIiLCJpY29uIiwiY291bnRDbGFzcyJdLFtbMjMsNSxbXV0sInJlcGx5IiwicmVwbGllcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOls1XX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiBtb3N0LWxpa2VkLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJ1c2VyLXN1bW1hcnktc2VjdGlvbiIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJtb3N0X2xpa2VkX2J5Iiwic3VtbWFyeS11c2VyLWxpc3QgbGlrZWQtYnktc2VjdGlvbiBwdWxsLWxlZnQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItc3VtbWFyeS11c2Vycy1saXN0IixudWxsLFtbIm5vbmUiLCJ1c2VycyJdLFsibm9fbGlrZXMiLFsyNCxbIm1vZGVsIiwibW9zdF9saWtlZF9ieV91c2VycyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwidXNlci1zdW1tYXJ5LXVzZXIiLG51bGwsW1sidXNlciIsImljb24iLCJjb3VudENsYXNzIl0sW1syMyw0LFtdXSwiaGVhcnQiLCJsaWtlcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOls0XX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1c2VyLXN1bW1hcnktc2VjdGlvbiIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJtb3N0X2xpa2VkX3VzZXJzIiwic3VtbWFyeS11c2VyLWxpc3QgbGlrZWQtc2VjdGlvbiBwdWxsLXJpZ2h0Il1dLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLXN1bW1hcnktdXNlcnMtbGlzdCIsbnVsbCxbWyJub25lIiwidXNlcnMiXSxbIm5vX2xpa2VzIixbMjQsWyJtb2RlbCIsIm1vc3RfbGlrZWRfdXNlcnMiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInVzZXItc3VtbWFyeS11c2VyIixudWxsLFtbInVzZXIiLCJpY29uIiwiY291bnRDbGFzcyJdLFtbMjMsMyxbXV0sImhlYXJ0IiwibGlrZXMiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0b3BfY2F0ZWdvcmllcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiB0b3AtY2F0ZWdvcmllcy1zZWN0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidG9wX2NhdGVnb3JpZXMiLCJzdW1tYXJ5LWNhdGVnb3J5LWxpc3QgcHVsbC1sZWZ0Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWxpbmsiXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1jb3VudCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRvcGljcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LWNvdW50Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1bW1hcnkucmVwbGllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsInRvcF9jYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbGluayJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDIsW11dXSxbWyJhbGxvd1VuY2F0ZWdvcml6ZWQiLCJoaWRlUGFyZW50Il0sWyJ0cnVlIixmYWxzZV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1jb3VudCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIixudWxsLFtbInVzZXIiLCJjYXRlZ29yeSIsImNvdW50Il0sW1syNCxbInVzZXIiXV0sWzIzLDIsW11dLFsyMywyLFsidG9waWNfY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwicmVwbHktY291bnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdW1tYXJ5LWNhdGVnb3J5LXNlYXJjaCIsbnVsbCxbWyJ1c2VyIiwiY2F0ZWdvcnkiLCJjb3VudCJdLFtbMjQsWyJ1c2VyIl1dLFsyMywyLFtdXSxbMjMsMixbInBvc3RfY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1zZWN0aW9uIGJhZGdlcy1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0cy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRvcF9iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiYmFkZ2UtY2FyZCIsbnVsbCxbWyJiYWRnZSIsImNvdW50IiwidXNlcm5hbWUiXSxbWzIzLDEsW11dLFsyMywxLFsiY291bnQiXV0sWzI0LFsidXNlciIsInVzZXJuYW1lX2xvd2VyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VtbWFyeS5ub19iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsibW9yZUJhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsibW9yZSIsInVzZXIuYmFkZ2VzIixbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXIuc3VtbWFyeS5tb3JlX2JhZGdlcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3N1bW1hcnkifX0pLEVtYmVyLlRFTVBMQVRFUy51c2Vycz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIl0sWyJ1c2VycyJdXSx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuZGlyZWN0b3J5IHRib2R5IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRpcmVjdG9yeSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2Vycy10b3AiLCJkaXYiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJvbkNoYW5nZSJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJwZXJpb2QiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImNsYXNzIl0sW1syNCxbIm5hbWVJbnB1dCJdXSwiZGlyZWN0b3J5LmZpbHRlcl9uYW1lIiwiZmlsdGVyLW5hbWUgbm8tYmx1ciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImRpcmVjdG9yeS50b3RhbF9yb3dzIl0sW1siY291bnQiXSxbWzI0LFsibW9kZWwiLCJ0b3RhbFJvd3MiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIiwiaWNvbiJdLFsibGlrZXNfcmVjZWl2ZWQiLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXSwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIiwiaWNvbiJdLFsibGlrZXNfZ2l2ZW4iLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXSwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIl0sWyJ0b3BpY19jb3VudCIsWzI0LFsib3JkZXIiXV0sWzI0LFsiYXNjIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIl0sWyJwb3N0X2NvdW50IixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXJlY3RvcnktdG9nZ2xlIixudWxsLFtbImZpZWxkIiwib3JkZXIiLCJhc2MiXSxbInRvcGljc19lbnRlcmVkIixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXJlY3RvcnktdG9nZ2xlIixudWxsLFtbImZpZWxkIiwib3JkZXIiLCJhc2MiXSxbInBvc3RzX3JlYWQiLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS10b2dnbGUiLG51bGwsW1siZmllbGQiLCJvcmRlciIsImFzYyJdLFsiZGF5c192aXNpdGVkIixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZVJlYWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJkaXJlY3RvcnkudGltZV9yZWFkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS1pdGVtIixudWxsLFtbIml0ZW0iLCJzaG93VGltZVJlYWQiXSxbWzIzLDEsW11dLFsyNCxbInNob3dUaW1lUmVhZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbIm1vZGVsIiwibG9hZGluZ01vcmUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZGlyZWN0b3J5Lm5vX3Jlc3VsdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXJzIn19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYWJvdXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7dmFyIG89dGhpcztyZXR1cm4oMCx0LmFqYXgpKCIvYWJvdXQuanNvbiIpLnRoZW4oZnVuY3Rpb24oaSl7dmFyIHQ9W10sbj1bXSxzPW1vbWVudCgpLmxvY2FsZSgiZW4iKS51dGMoKS5zdWJ0cmFjdCgxLCJ5ZWFyIik7aS5hYm91dC5hZG1pbnMuZm9yRWFjaChmdW5jdGlvbihlKXttb21lbnQoZS5sYXN0X3NlZW5fYXQpPnMmJnQucHVzaChlKX0pLGkuYWJvdXQubW9kZXJhdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe21vbWVudChlLmxhc3Rfc2Vlbl9hdCk+cyYmbi5wdXNoKGUpfSksaS5hYm91dC5hZG1pbnM9dCxpLmFib3V0Lm1vZGVyYXRvcnM9bjt2YXIgZT1pLmFib3V0LmNhdGVnb3J5X21vZGVyYXRvcnM7cmV0dXJuIGUmJmUubGVuZ3RoJiZlLmZvckVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj1vLnNpdGUuY2F0ZWdvcmllcy5maW5kQnkoImlkIixlLmNhdGVnb3J5X2lkKTtpLmFib3V0LmNhdGVnb3J5X21vZGVyYXRvcnNbdF0uY2F0ZWdvcnk9bn0pLGkuYWJvdXR9KX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImFib3V0LnNpbXBsZV90aXRsZSIpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYWNjb3VudC1jcmVhdGVkLWVkaXQtZW1haWwiLFsiZXhwb3J0cyIsIkBlbWJlci9yb3V0aW5nL3JvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb250cm9sbGVyRm9yKCJhY2NvdW50LWNyZWF0ZWQiKS5nZXQoImFjY291bnRDcmVhdGVkIik7ZS5zZXQoImFjY291bnRDcmVhdGVkIix0KSxlLnNldCgibmV3RW1haWwiLHQuZW1haWwpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FjY291bnQtY3JlYXRlZC1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlKXtlLnNldCgiYWNjb3VudENyZWF0ZWQiLHRoaXMuY29udHJvbGxlckZvcigiYWNjb3VudC1jcmVhdGVkIikuZ2V0KCJhY2NvdW50Q3JlYXRlZCIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hY2NvdW50LWNyZWF0ZWQtcmVzZW50IixbImV4cG9ydHMiLCJAZW1iZXIvcm91dGluZy9yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUpe2Uuc2V0KCJlbWFpbCIsdGhpcy5jb250cm9sbGVyRm9yKCJhY2NvdW50LWNyZWF0ZWQiKS5nZXQoImFjY291bnRDcmVhdGVkLmVtYWlsIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FjY291bnQtY3JlYXRlZCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlKXtlLnNldCgiYWNjb3VudENyZWF0ZWQiLG4uZGVmYXVsdC5nZXQoImFjY291bnRDcmVhdGVkIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FwcC1yb3V0ZS1tYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJleGNlcHRpb24iLHtwYXRoOiIvZXhjZXB0aW9uIn0pLHRoaXMucm91dGUoImV4Y2VwdGlvbi11bmtub3duIix7cGF0aDoiLzQwNCJ9KSx0aGlzLnJvdXRlKCJhYm91dCIse3BhdGg6Ii9hYm91dCIscmVzZXROYW1lc3BhY2U6ITB9KSx0aGlzLnJvdXRlKCJwb3N0Iix7cGF0aDoiL3AvOmlkIn0pLHRoaXMucm91dGUoInRvcGljIix7cGF0aDoiL3QvOnNsdWcvOmlkIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJmcm9tUGFyYW1zIix7cGF0aDoiLyJ9KSx0aGlzLnJvdXRlKCJmcm9tUGFyYW1zTmVhciIse3BhdGg6Ii86bmVhclBvc3QifSl9KSx0aGlzLnJvdXRlKCJ0b3BpY0J5U2x1Z09ySWQiLHtwYXRoOiIvdC86c2x1Z09ySWQiLHJlc2V0TmFtZXNwYWNlOiEwfSksdGhpcy5yb3V0ZSgiZGlzY292ZXJ5Iix7cGF0aDoiLyIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnJvdXRlKCJ0b3BQYXJlbnRDYXRlZ29yeSIse3BhdGg6Ii9jLzpzbHVnL2wvdG9wIn0pLHRoaXMucm91dGUoInRvcCIpLHRoaXMucm91dGUoInRvcENhdGVnb3J5Tm9uZSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC9ub25lL2wvdG9wIn0pLHRoaXMucm91dGUoInRvcENhdGVnb3J5Iix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL2wvdG9wIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgicGVyaW9kcyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9InRvcCIrZS5jYXBpdGFsaXplKCk7bi5yb3V0ZSh0KyJQYXJlbnRDYXRlZ29yeSIse3BhdGg6Ii9jLzpzbHVnL2wvdG9wLyIrZX0pLG4ucm91dGUodCx7cGF0aDoiL3RvcC8iK2V9KSxuLnJvdXRlKHQrIkNhdGVnb3J5Tm9uZSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC9ub25lL2wvdG9wLyIrZX0pLG4ucm91dGUodCsiQ2F0ZWdvcnkiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbC90b3AvIitlfSl9KSxpLmRlZmF1bHQuY3VycmVudFByb3AoImZpbHRlcnMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe24ucm91dGUoZSsiUGFyZW50Q2F0ZWdvcnkiLHtwYXRoOiIvYy86c2x1Zy9sLyIrZX0pLG4ucm91dGUoZSx7cGF0aDoiLyIrZX0pLG4ucm91dGUoZSsiQ2F0ZWdvcnlOb25lIix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL25vbmUvbC8iK2V9KSxuLnJvdXRlKGUrIkNhdGVnb3J5Iix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL2wvIitlfSl9KSx0aGlzLnJvdXRlKCJjYXRlZ29yaWVzIiksdGhpcy5yb3V0ZSgicGFyZW50Q2F0ZWdvcnkiLHtwYXRoOiIvYy86c2x1ZyJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeVdpdGhJRCIse3BhdGg6Ii9jLzpwYXJlbnRTbHVnLzpzbHVnLzppZCJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeU5vbmUiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbm9uZSJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZCJ9KX0pLHRoaXMucm91dGUoImdyb3VwcyIse3Jlc2V0TmFtZXNwYWNlOiEwLHBhdGg6Ii9nIn0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJuZXciLHtwYXRoOiJjdXN0b20vbmV3In0pfSksdGhpcy5yb3V0ZSgiZ3JvdXAiLHtwYXRoOiIvZy86bmFtZSIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgibWVtYmVycyIpLHRoaXMucm91dGUoInJlcXVlc3RzIiksdGhpcy5yb3V0ZSgiYWN0aXZpdHkiLGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgicG9zdHMiKSx0aGlzLnJvdXRlKCJ0b3BpY3MiKSx0aGlzLnJvdXRlKCJtZW50aW9ucyIpfSksdGhpcy5yb3V0ZSgibWFuYWdlIixmdW5jdGlvbigpe3RoaXMucm91dGUoInByb2ZpbGUiKSx0aGlzLnJvdXRlKCJtZW1iZXJzaGlwIiksdGhpcy5yb3V0ZSgiaW50ZXJhY3Rpb24iKSx0aGlzLnJvdXRlKCJtZW1iZXJzIiksdGhpcy5yb3V0ZSgibG9ncyIpfSksdGhpcy5yb3V0ZSgibWVzc2FnZXMiLGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgiaW5ib3giKSx0aGlzLnJvdXRlKCJhcmNoaXZlIil9KX0pLHRoaXMucm91dGUoInVzZXJzIix7cmVzZXROYW1lc3BhY2U6ITAscGF0aDoiL3UifSksdGhpcy5yb3V0ZSgicGFzc3dvcmQtcmVzZXQiLHtwYXRoOiIvdS9wYXNzd29yZC1yZXNldC86dG9rZW4ifSksdGhpcy5yb3V0ZSgiYWNjb3VudC1jcmVhdGVkIix7cGF0aDoiL3UvYWNjb3VudC1jcmVhdGVkIn0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJyZXNlbnQiKSx0aGlzLnJvdXRlKCJlZGl0LWVtYWlsIil9KSx0aGlzLnJvdXRlKCJ1c2VyIix7cGF0aDoiL3UvOnVzZXJuYW1lIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJwcm9maWxlLWhpZGRlbiIpLHRoaXMucm91dGUoInN1bW1hcnkiKSx0aGlzLnJvdXRlKCJ1c2VyQWN0aXZpdHkiLHtwYXRoOiIvYWN0aXZpdHkiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInRvcGljcyIpLHRoaXMucm91dGUoInJlcGxpZXMiKSx0aGlzLnJvdXRlKCJsaWtlc0dpdmVuIix7cGF0aDoibGlrZXMtZ2l2ZW4ifSksdGhpcy5yb3V0ZSgiYm9va21hcmtzIiksdGhpcy5yb3V0ZSgicGVuZGluZyIpLHRoaXMucm91dGUoImRyYWZ0cyIpfSksdGhpcy5yb3V0ZSgidXNlck5vdGlmaWNhdGlvbnMiLHtwYXRoOiIvbm90aWZpY2F0aW9ucyIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgicmVzcG9uc2VzIiksdGhpcy5yb3V0ZSgibGlrZXNSZWNlaXZlZCIse3BhdGg6Imxpa2VzLXJlY2VpdmVkIn0pLHRoaXMucm91dGUoIm1lbnRpb25zIiksdGhpcy5yb3V0ZSgiZWRpdHMiKX0pLHRoaXMucm91dGUoImJhZGdlcyIpLHRoaXMucm91dGUoImRlbGV0ZWRQb3N0cyIse3BhdGg6Ii9kZWxldGVkLXBvc3RzIn0pLHRoaXMucm91dGUoInVzZXJQcml2YXRlTWVzc2FnZXMiLHtwYXRoOiIvbWVzc2FnZXMiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInNlbnQiKSx0aGlzLnJvdXRlKCJhcmNoaXZlIiksdGhpcy5yb3V0ZSgiZ3JvdXAiLHtwYXRoOiJncm91cC86bmFtZSJ9KSx0aGlzLnJvdXRlKCJncm91cEFyY2hpdmUiLHtwYXRoOiJncm91cC86bmFtZS9hcmNoaXZlIn0pLHRoaXMucm91dGUoInRhZ3MiKSx0aGlzLnJvdXRlKCJ0YWdzU2hvdyIse3BhdGg6InRhZ3MvOmlkIn0pfSksdGhpcy5yb3V0ZSgicHJlZmVyZW5jZXMiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJhY2NvdW50IiksdGhpcy5yb3V0ZSgicHJvZmlsZSIpLHRoaXMucm91dGUoImVtYWlscyIpLHRoaXMucm91dGUoIm5vdGlmaWNhdGlvbnMiKSx0aGlzLnJvdXRlKCJjYXRlZ29yaWVzIiksdGhpcy5yb3V0ZSgidXNlcnMiKSx0aGlzLnJvdXRlKCJ0YWdzIiksdGhpcy5yb3V0ZSgiaW50ZXJmYWNlIiksdGhpcy5yb3V0ZSgiYXBwcyIpLHRoaXMucm91dGUoInVzZXJuYW1lIiksdGhpcy5yb3V0ZSgiZW1haWwiKSx0aGlzLnJvdXRlKCJzZWNvbmQtZmFjdG9yIiksdGhpcy5yb3V0ZSgic2Vjb25kLWZhY3Rvci1iYWNrdXAiKX0pLHRoaXMucm91dGUoInVzZXJJbnZpdGVkIix7cGF0aDoiL2ludml0ZWQiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInNob3ciLHtwYXRoOiIvOmZpbHRlciJ9KX0pfSksdGhpcy5yb3V0ZSgicmV2aWV3Iix7cGF0aDoiL3JldmlldyJ9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgic2hvdyIse3BhdGg6Ii86cmV2aWV3YWJsZV9pZCJ9KSx0aGlzLnJvdXRlKCJpbmRleCIse3BhdGg6Ii8ifSksdGhpcy5yb3V0ZSgidG9waWNzIix7cGF0aDoiL3RvcGljcyJ9KSx0aGlzLnJvdXRlKCJzZXR0aW5ncyIse3BhdGg6Ii9zZXR0aW5ncyJ9KX0pLHRoaXMucm91dGUoInNpZ251cCIse3BhdGg6Ii9zaWdudXAifSksdGhpcy5yb3V0ZSgibG9naW4iLHtwYXRoOiIvbG9naW4ifSksdGhpcy5yb3V0ZSgiZW1haWwtbG9naW4iLHtwYXRoOiIvc2Vzc2lvbi9lbWFpbC1sb2dpbi86dG9rZW4ifSksdGhpcy5yb3V0ZSgiYXNzb2NpYXRlLWFjY291bnQiLHtwYXRoOiIvYXNzb2NpYXRlLzp0b2tlbiJ9KSx0aGlzLnJvdXRlKCJsb2dpbi1wcmVmZXJlbmNlcyIpLHRoaXMucm91dGUoImZvcmdvdC1wYXNzd29yZCIse3BhdGg6Ii9wYXNzd29yZC1yZXNldCJ9KSx0aGlzLnJvdXRlKCJmYXEiLHtwYXRoOiIvZmFxIn0pLHRoaXMucm91dGUoInRvcyIse3BhdGg6Ii90b3MifSksdGhpcy5yb3V0ZSgicHJpdmFjeSIse3BhdGg6Ii9wcml2YWN5In0pLHRoaXMucm91dGUoImd1aWRlbGluZXMiLHtwYXRoOiIvZ3VpZGVsaW5lcyJ9KSx0aGlzLnJvdXRlKCJydWxlcyIse3BhdGg6Ii9ydWxlcyJ9KSx0aGlzLnJvdXRlKCJjb25kdWN0Iix7cGF0aDoiL2NvbmR1Y3QifSksdGhpcy5yb3V0ZSgibmV3LXRvcGljIix7cGF0aDoiL25ldy10b3BpYyJ9KSx0aGlzLnJvdXRlKCJuZXctbWVzc2FnZSIse3BhdGg6Ii9uZXctbWVzc2FnZSJ9KSx0aGlzLnJvdXRlKCJiYWRnZXMiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzppZC86c2x1ZyJ9KX0pLHRoaXMucm91dGUoImZ1bGwtcGFnZS1zZWFyY2giLHtwYXRoOiIvc2VhcmNoIn0pLHRoaXMucm91dGUoInRhZyIse3Jlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5yb3V0ZSgic2hvdyIse3BhdGg6Ii86dGFnX2lkIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dC5yb3V0ZSgic2hvdyIrZS5jYXBpdGFsaXplKCkse3BhdGg6Ii86dGFnX2lkL2wvIitlfSl9KX0pLHRoaXMucm91dGUoInRhZ3MiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMucm91dGUoInNob3dDYXRlZ29yeSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC86dGFnX2lkIn0pLHRoaXMucm91dGUoInNob3dDYXRlZ29yeU5vbmUiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbm9uZS86dGFnX2lkIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dC5yb3V0ZSgic2hvd0NhdGVnb3J5IitlLmNhcGl0YWxpemUoKSx7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkLzp0YWdfaWQvbC8iK2V9KSx0LnJvdXRlKCJzaG93Q2F0ZWdvcnlOb25lIitlLmNhcGl0YWxpemUoKSx7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL25vbmUvOnRhZ19pZC9sLyIrZX0pfSksdGhpcy5yb3V0ZSgiaW50ZXJzZWN0aW9uIix7cGF0aDoiaW50ZXJzZWN0aW9uLzp0YWdfaWQvKmFkZGl0aW9uYWxfdGFncyJ9KSx0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzp0YWdfaWQifSksaS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJmaWx0ZXJzIikuZm9yRWFjaChmdW5jdGlvbihlKXt0LnJvdXRlKCJzaG93IitlLmNhcGl0YWxpemUoKSx7cGF0aDoiLzp0YWdfaWQvbC8iK2V9KX0pfSksdGhpcy5yb3V0ZSgidGFnR3JvdXBzIix7cGF0aDoiL3RhZ19ncm91cHMiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoImVkaXQiLHtwYXRoOiIvOmlkIn0pLHRoaXMucm91dGUoIm5ldyIpfSksdGhpcy5yb3V0ZSgiaW52aXRlcyIse3BhdGg6Ii9pbnZpdGVzIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzp0b2tlbiJ9KX0pfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hcHBsaWNhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2xvZ291dCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9taXhpbnMvb3Blbi1jb21wb3NlciIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbGliL21vYmlsZSIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsLHUsYyxkLHAsbSxmKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaChlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2l0ZS5nZXQoImlzUmVhZE9ubHkiKT9ib290Ym94LmFsZXJ0KHQpOnRoaXNbZV0oKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBiPW4uZGVmYXVsdC5leHRlbmQoYS5kZWZhdWx0LHtzaXRlVGl0bGU6KDAscy5zZXR0aW5nKSgidGl0bGUiKSxzaG9ydFNpdGVEZXNjcmlwdGlvbjooMCxzLnNldHRpbmcpKCJzaG9ydF9zaXRlX2Rlc2NyaXB0aW9uIiksYWN0aW9uczp7dG9nZ2xlQW5vbnltb3VzOmZ1bmN0aW9uKCl7KDAsaS5hamF4KSgoMCxwLnVzZXJQYXRoKSgidG9nZ2xlLWFub24iKSx7bWV0aG9kOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KX0sdG9nZ2xlTW9iaWxlVmlldzpmdW5jdGlvbigpe3UuZGVmYXVsdC50b2dnbGVNb2JpbGVWaWV3KCl9LGxvZ291dDpoKCJfaGFuZGxlTG9nb3V0IixJMThuLnQoInJlYWRfb25seV9tb2RlLmxvZ291dF9kaXNhYmxlZCIpKSxfY29sbGVjdFRpdGxlVG9rZW5zOmZ1bmN0aW9uKGUpe2UucHVzaCh0aGlzLnNpdGVUaXRsZSksd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIT09RGlzY291cnNlLmdldFVSTCgiLyIpJiZ3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUhPT1EaXNjb3Vyc2UuZ2V0VVJMKCIvbG9naW4iKXx8IiI9PT10aGlzLnNob3J0U2l0ZURlc2NyaXB0aW9ufHxlLnB1c2godGhpcy5zaG9ydFNpdGVEZXNjcmlwdGlvbiksRGlzY291cnNlLnNldCgiX2RvY1RpdGxlIixlLmpvaW4oIiAtICIpKX0sd2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInJvdXRlcjptYWluIik7cmV0dXJuKDAsdC5vbmNlKShlLGUudHJpZ2dlciwid2lsbFRyYW5zaXRpb24iKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHBvc3RXYXNFbnF1ZXVlZDpmdW5jdGlvbihlKXsoMCxyLmRlZmF1bHQpKCJwb3N0LWVucXVldWVkIix7bW9kZWw6ZSx0aXRsZToicmV2aWV3LmFwcHJvdmFsLnRpdGxlIn0pfSxjb21wb3NlUHJpdmF0ZU1lc3NhZ2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lP2UuZ2V0KCJ1c2VybmFtZSIpOiIiLGk9dD93aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt0LnVybDpudWxsLHM9dD9JMThuLnQoImNvbXBvc2VyLnJlZmVyZW5jZV90b3BpY190aXRsZSIse3RpdGxlOnQudG9waWMudGl0bGV9KTpudWxsO3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7YWN0aW9uOm0uZGVmYXVsdC5QUklWQVRFX01FU1NBR0UscmVjaXBpZW50czpuLGFyY2hldHlwZUlkOiJwcml2YXRlX21lc3NhZ2UiLGRyYWZ0S2V5Om0uZGVmYXVsdC5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWSxyZXBseTppLHRpdGxlOnN9KX0sZXJyb3I6ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtlLmpxWEhSJiYobj1lLmpxWEhSKTt2YXIgaT1lLmpxWEhSP246ZSxzPXRoaXMuY29udHJvbGxlckZvcigiZXhjZXB0aW9uIiksbz13aW5kb3cuY29uc29sZTtyZXR1cm4gbyYmby5lcnJvciYmby5lcnJvcihpKSxpJiY0MDQ9PT1pLnN0YXR1cz90aGlzLnRyYW5zaXRpb25UbygiZXhjZXB0aW9uLXVua25vd24iKToocy5zZXRQcm9wZXJ0aWVzKHtsYXN0VHJhbnNpdGlvbjp0LHRocm93bjppfSksdGhpcy5pbnRlcm1lZGlhdGVUcmFuc2l0aW9uVG8oImV4Y2VwdGlvbiIpLCEwKX0sc2hvd0xvZ2luOmgoImhhbmRsZVNob3dMb2dpbiIsSTE4bi50KCJyZWFkX29ubHlfbW9kZS5sb2dpbl9kaXNhYmxlZCIpKSxzaG93Q3JlYXRlQWNjb3VudDpoKCJoYW5kbGVTaG93Q3JlYXRlQWNjb3VudCIsSTE4bi50KCJyZWFkX29ubHlfbW9kZS5sb2dpbl9kaXNhYmxlZCIpKSxzaG93Rm9yZ290UGFzc3dvcmQ6ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoImZvcmdvdC1wYXNzd29yZCIpLnNldFByb3BlcnRpZXMoe29mZmVySGVscDpudWxsLGhlbHBTZWVuOiExfSksKDAsci5kZWZhdWx0KSgiZm9yZ290UGFzc3dvcmQiLHt0aXRsZToiZm9yZ290X3Bhc3N3b3JkLnRpdGxlIn0pfSxzaG93Tm90QWN0aXZhdGVkOmZ1bmN0aW9uKGUpeygwLHIuZGVmYXVsdCkoIm5vdC1hY3RpdmF0ZWQiLHt0aXRsZToibG9nX2luIn0pLnNldFByb3BlcnRpZXMoZSl9LHNob3dVcGxvYWRTZWxlY3RvcjpmdW5jdGlvbihlKXsoMCxyLmRlZmF1bHQpKCJ1cGxvYWRTZWxlY3RvciIpLnNldFByb3BlcnRpZXMoe3Rvb2xiYXJFdmVudDplLGltYWdlVXJsOm51bGx9KX0sc2hvd0tleWJvYXJkU2hvcnRjdXRzSGVscDpmdW5jdGlvbigpeygwLHIuZGVmYXVsdCkoImtleWJvYXJkLXNob3J0Y3V0cy1oZWxwIix7dGl0bGU6ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLnRpdGxlIn0pfSxjbG9zZU1vZGFsOmZ1bmN0aW9uKCl7dmFyIGUsdD0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInJvdXRlOmFwcGxpY2F0aW9uIikuY29udHJvbGxlckZvcigibW9kYWwiKSxuPXQuZ2V0KCJuYW1lIik7aWYobil7dmFyIGk9KDAsZC5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOiIrbik7aWYoaSYmaS5iZWZvcmVDbG9zZSYmITE9PT1pLmJlZm9yZUNsb3NlKCkpcmV0dXJufXRoaXMucmVuZGVyKCJoaWRlLW1vZGFsIix7aW50bzoibW9kYWwiLG91dGxldDoibW9kYWxCb2R5In0pLG4mJigoZT0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoImNvbnRyb2xsZXI6IituKSkmJmUub25DbG9zZSYmZS5vbkNsb3NlKCksdC5zZXQoIm5hbWUiLG51bGwpKX0saGlkZU1vZGFsOmZ1bmN0aW9uKCl7JCgiLmQtbW9kYWwuZml4ZWQtbW9kYWwiKS5tb2RhbCgiaGlkZSIpfSxyZW9wZW5Nb2RhbDpmdW5jdGlvbigpeyQoIi5kLW1vZGFsLmZpeGVkLW1vZGFsIikubW9kYWwoInNob3ciKX0sZWRpdENhdGVnb3J5OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7bC5kZWZhdWx0LnJlbG9hZEJ5SWQoZS5nZXQoImlkIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5IixlLmNhdGVnb3J5KTt0LnNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMoKSxuLnNpdGUudXBkYXRlQ2F0ZWdvcnkodCksKDAsci5kZWZhdWx0KSgiZWRpdC1jYXRlZ29yeSIse21vZGVsOnR9KSxuLmNvbnRyb2xsZXJGb3IoImVkaXQtY2F0ZWdvcnkiKS5zZXQoInNlbGVjdGVkVGFiIiwiZ2VuZXJhbCIpfSl9LGNoZWNrRW1haWw6ZnVuY3Rpb24oZSl7ZS5jaGVja0VtYWlsKCl9LGNoYW5nZUJ1bGtUZW1wbGF0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoIm1vZGFsLyIsIiIpLG49KDAsZC5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOiIrdCk7dGhpcy5yZW5kZXIoZSx7aW50bzoibW9kYWwvdG9waWMtYnVsay1hY3Rpb25zIixvdXRsZXQ6ImJ1bGtPdXRsZXQiLGNvbnRyb2xsZXI6bj90OiJ0b3BpYy1idWxrLWFjdGlvbnMifSl9LGNyZWF0ZU5ld1RvcGljVmlhUGFyYW1zOmZ1bmN0aW9uKGUsdCxuLGkpe3RoaXMub3BlbkNvbXBvc2VyV2l0aFRvcGljUGFyYW1zKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLGUsdCxuLGkpfSxjcmVhdGVOZXdNZXNzYWdlVmlhUGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLm9wZW5Db21wb3NlcldpdGhNZXNzYWdlUGFyYW1zKGUsdCxuKX19LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtiLnRyaWdnZXIoImFjdGl2YXRlIil9KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigiYXBwbGljYXRpb24iKSx0aGlzLnJlbmRlcigidXNlci1jYXJkIix7aW50bzoiYXBwbGljYXRpb24iLG91dGxldDoidXNlci1jYXJkIn0pLHRoaXMucmVuZGVyKCJtb2RhbCIse2ludG86ImFwcGxpY2F0aW9uIixvdXRsZXQ6Im1vZGFsIn0pLHRoaXMucmVuZGVyKCJjb21wb3NlciIse2ludG86ImFwcGxpY2F0aW9uIixvdXRsZXQ6ImNvbXBvc2VyIn0pfSxoYW5kbGVTaG93TG9naW46ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXM7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3Nzbz8oZT1lbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSx3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiL3Nlc3Npb24vc3NvP3JldHVybl9wYXRoPSIrZSkpOnRoaXMuX2F1dG9Mb2dpbigibG9naW4iLCJsb2dpbi1tb2RhbCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5jb250cm9sbGVyRm9yKCJsb2dpbiIpLnJlc2V0Rm9ybSgpfSl9LGhhbmRsZVNob3dDcmVhdGVBY2NvdW50OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3Nzbz8oZT1lbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSx3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiL3Nlc3Npb24vc3NvP3JldHVybl9wYXRoPSIrZSkpOnRoaXMuX2F1dG9Mb2dpbigiY3JlYXRlQWNjb3VudCIsImNyZWF0ZS1hY2NvdW50Iil9LF9hdXRvTG9naW46ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPSgwLGMuZmluZEFsbCkoKTt0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfbG9jYWxfbG9naW5zfHwxIT09aS5sZW5ndGg/KCgwLHIuZGVmYXVsdCkoZSksdGhpcy5jb250cm9sbGVyRm9yKCJtb2RhbCIpLnNldCgibW9kYWxDbGFzcyIsdCksbiYmbigpKTp0aGlzLmNvbnRyb2xsZXJGb3IoImxvZ2luIikuc2VuZCgiZXh0ZXJuYWxMb2dpbiIsaVswXSl9LF9oYW5kbGVMb2dvdXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZGVzdHJveVNlc3Npb24oKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuKDAsby5kZWZhdWx0KShlLnNpdGVTZXR0aW5ncyxlLmtleVZhbHVlU3RvcmUpfSl9fSk7Zi5FdmVudFRhcmdldC5taXhpbihiKSxlLmRlZmF1bHQ9Yn0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hc3NvY2lhdGUtYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyYW1zRm9yKCJhc3NvY2lhdGUtYWNjb3VudCIpO3RoaXMucmVwbGFjZVdpdGgoInByZWZlcmVuY2VzLmFjY291bnQiLHRoaXMuY3VycmVudFVzZXIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4oMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5hamF4KSgiL2Fzc29jaWF0ZS8iK2VuY29kZVVSSUNvbXBvbmVudChlLnRva2VuKSsiLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybigwLHMuZGVmYXVsdCkoImFzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0iLHttb2RlbDplfSl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYmFkZ2VzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmdldCgiYmFkZ2VzIik/aS5kZWZhdWx0LmdldEFuZFJlbW92ZSgiYmFkZ2VzIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LmNyZWF0ZUZyb21Kc29uKGUpfSk6bi5kZWZhdWx0LmZpbmRBbGwoe29ubHlMaXN0YWJsZTohMH0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiYmFkZ2VzLnRpdGxlIil9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsITApLCEwfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9iYWRnZXMtc2hvdyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwicHJlbG9hZC1zdG9yZSIsInJzdnAiXSxmdW5jdGlvbihlLHQsYSxuLGksbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6e3VzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYmFkZ2VzL3Nob3ciKS5fc2hvd0Zvb3RlcigpLCEwfX0sc2VyaWFsaXplOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFByb3BlcnRpZXMoImlkIiwic2x1ZyIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gaS5kZWZhdWx0LmdldCgiYmFkZ2UiKT9pLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJiYWRnZSIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5jcmVhdGVGcm9tSnNvbihlKX0pOm4uZGVmYXVsdC5maW5kQnlJZChlLmlkKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT10LnRvLnF1ZXJ5UGFyYW1zJiZ0LnRvLnF1ZXJ5UGFyYW1zLnVzZXJuYW1lLHM9YS5kZWZhdWx0LmZpbmRCeUJhZGdlSWQoZS5nZXQoImlkIikse3VzZXJuYW1lOml9KS50aGVuKGZ1bmN0aW9uKGUpe24udXNlckJhZGdlc0dyYW50PWV9KSxvPXRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXIscj17dXNlckJhZGdlc0dyYW50OnMsdXNlckJhZGdlc0FsbDphLmRlZmF1bHQuZmluZEJ5VXNlcm5hbWUobykudGhlbihmdW5jdGlvbihlKXtuLnVzZXJCYWRnZXNBbGw9ZX0pfTtyZXR1cm4oMCxsLmhhc2gpKHIpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigiYmFkZ2VzLnNob3ciKTtpZihlKXJldHVybiBlLmdldCgibmFtZSIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpLGUuc2V0KCJ1c2VyQmFkZ2VzIix0aGlzLnVzZXJCYWRnZXNHcmFudCksZS5zZXQoInVzZXJCYWRnZXNBbGwiLHRoaXMudXNlckJhZGdlc0FsbCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtYWRtaW4tdXNlci1wb3N0cy1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL3RleHQiXSxmdW5jdGlvbihlLG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4uZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuc2V0KCJpbmRleFN0cmVhbSIsITApLHRoaXMuY29udHJvbGxlckZvcigidXNlci1wb3N0cyIpLl9zaG93Rm9vdGVyKCksITB9fSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJwb3N0c1N0cmVhbSIpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlckJ5KHtmaWx0ZXI6dH0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0LnNldCgiY2FuTG9hZE1vcmUiLDYwPT09dC5nZXQoIml0ZW1zTG9hZGVkIikpLHQuZ2V0KCJjb250ZW50IikuZm9yRWFjaChmdW5jdGlvbihlKXtlLmdldCgidGl0bGUiKSYmZS5zZXQoInRpdGxlIiwoMCxpLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRpdGxlKSkpfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXBvc3RzIikuc2V0KCJtb2RlbCIsdCl9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoInVzZXIvcG9zdHMiLHtpbnRvOiJ1c2VyIn0pfX0pfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9idWlsZC1jYXRlZ29yeS1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXRvcGljLXJvdXRlIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMtbGlzdCIsImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeS1saXN0IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsInJzdnAiXSxmdW5jdGlvbihlLG4scixpLGEsYyxzLGwsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCx1KXtyZXR1cm4gbi5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6aS5xdWVyeVBhcmFtcyxzZXJpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbjtyZXR1cm4gZS5jYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZHx8KCJub25lIj09PWUuaWQ/KHQ9W2UucGFyZW50U2x1ZyxlLnNsdWddLmpvaW4oIi8iKSxuPWwuZGVmYXVsdC5maW5kQnlTbHVnUGF0aFdpdGhJRCh0KSx0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkuY2F0ZWdvcnlOb25lIix7Y2F0ZWdvcnk6bixjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZDp0fSkpOmUuY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQ9W2UucGFyZW50U2x1ZyxlLnNsdWcsZS5pZF0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkuam9pbigiLyIpKSxlfSxtb2RlbDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO2U9dGhpcy5zZXJpYWxpemUoZSk7dmFyIHQ9bC5kZWZhdWx0LmZpbmRCeVNsdWdQYXRoV2l0aElEKGUuY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQpO2lmKCF0KXt2YXIgaT1lLmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkLnNwbGl0KCIvIik7cmV0dXJuIDA8aS5sZW5ndGgmJmlbaS5sZW5ndGgtMV0ubWF0Y2goL15cZCskLykmJmkucG9wKCksbC5kZWZhdWx0LnJlbG9hZEJ5U2x1Z1BhdGgoaS5qb2luKCIvIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5IixlLmNhdGVnb3J5KTtyZXR1cm4gdC5zZXR1cEdyb3Vwc0FuZFBlcm1pc3Npb25zKCksbi5zaXRlLnVwZGF0ZUNhdGVnb3J5KHQpLHtjYXRlZ29yeTp0fX0pfWlmKHQpcmV0dXJue2NhdGVnb3J5OnR9fSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUsdCl7aWYoZSlyZXR1cm4gdGhpcy5fc2V0dXBOYXZpZ2F0aW9uKGUuY2F0ZWdvcnkpLCgwLG8uYWxsKShbdGhpcy5fY3JlYXRlU3ViY2F0ZWdvcnlMaXN0KGUuY2F0ZWdvcnkpLHRoaXMuX3JldHJpZXZlVG9waWNMaXN0KGUuY2F0ZWdvcnksdCldKTt0aGlzLnJlcGxhY2VXaXRoKCIvNDA0Iil9LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4iZGVmYXVsdCI9PT10P2UuZ2V0KCJkZWZhdWx0X3ZpZXciKXx8ImxhdGVzdCI6dH0sX3NldHVwTmF2aWdhdGlvbjpmdW5jdGlvbihlKXt2YXIgdD11JiYhIXUubm9fc3ViY2F0ZWdvcmllcyxuPXRoaXMuZmlsdGVyKGUpLnNwbGl0KCIvIilbMF07dGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3J5Iikuc2V0UHJvcGVydGllcyh7Y2F0ZWdvcnk6ZSxmaWx0ZXJUeXBlOm4sbm9TdWJjYXRlZ29yaWVzOnR9KX0sX2NyZWF0ZVN1YmNhdGVnb3J5TGlzdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9jYXRlZ29yeUxpc3Q9bnVsbCxlLmlzUGFyZW50JiZlLnNob3dfc3ViY2F0ZWdvcnlfbGlzdD9zLmRlZmF1bHQubGlzdEZvclBhcmVudCh0aGlzLnN0b3JlLGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2NhdGVnb3J5TGlzdD1lfSk6by5Qcm9taXNlLnJlc29sdmUoKX0sX3JldHJpZXZlVG9waWNMaXN0OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPSJjLyIrbC5kZWZhdWx0LnNsdWdGb3IodCkrIi8iK3QuaWQrIi9sLyIrdGhpcy5maWx0ZXIodCkscz0oMCxyLmZpbHRlclF1ZXJ5UGFyYW1zKShlLnRvLnF1ZXJ5UGFyYW1zLHUpLG89e2NhY2hlZDp0aGlzLmlzUG9wcGVkU3RhdGUoZSl9O3JldHVybigwLHIuZmluZFRvcGljTGlzdCkodGhpcy5zdG9yZSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZSxpLHMsbykudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYS5kZWZhdWx0LmhpZGVVbmlmb3JtQ2F0ZWdvcnkoZSx0KSxuLnNldCgidG9waWNzIixlKSxlfSl9LHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRNb2RlbC5jYXRlZ29yeSx0PUkxOG4udCgiZmlsdGVycy4iK3RoaXMuZmlsdGVyKGUpLnJlcGxhY2UoIi8iLCIuIikrIi50aXRsZSIpLG49ZS5uYW1lO3JldHVybiBlLnBhcmVudF9jYXRlZ29yeV9pZCYmKG49bC5kZWZhdWx0Lmxpc3QoKS5maW5kQnkoImlkIixlLnBhcmVudF9jYXRlZ29yeV9pZCkubmFtZSsiLyIrbiksSTE4bi50KCJmaWx0ZXJzLndpdGhfY2F0ZWdvcnkiLHtmaWx0ZXI6dCxjYXRlZ29yeTpufSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMudG9waWNzLGk9dC5jYXRlZ29yeSxzPW4uZ2V0KCJjYW5fY3JlYXRlX3RvcGljIiksbz1pLmdldCgicGVybWlzc2lvbiIpPT09Yy5kZWZhdWx0LkZVTEwscj10aGlzLmZpbHRlcihpKTt0aGlzLmNvbnRyb2xsZXJGb3IoIm5hdmlnYXRpb24vY2F0ZWdvcnkiKS5zZXRQcm9wZXJ0aWVzKHtjYW5DcmVhdGVUb3BpY09uQ2F0ZWdvcnk6byxjYW5ub3RDcmVhdGVUb3BpY09uQ2F0ZWdvcnk6IW8sY2FuQ3JlYXRlVG9waWM6c30pO3ZhciBhPXttb2RlbDpuLGNhdGVnb3J5OmkscGVyaW9kOm4uZ2V0KCJmb3JfcGVyaW9kIil8fCgwPHIuaW5kZXhPZigiLyIpP3Iuc3BsaXQoIi8iKVsxXToiIiksc2VsZWN0ZWQ6W10sbm9TdWJjYXRlZ29yaWVzOnUmJiEhdS5ub19zdWJjYXRlZ29yaWVzLGV4cGFuZEFsbFBpbm5lZDohMCxjYW5DcmVhdGVUb3BpYzpzLGNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeTpvfSxsPWkuZ2V0KCJwYXJhbXMiKTtsJiZPYmplY3Qua2V5cyhsKS5sZW5ndGgmJih2b2lkIDAhPT1sLm9yZGVyJiYoYS5vcmRlcj1sLm9yZGVyKSx2b2lkIDAhPT1sLmFzY2VuZGluZyYmKGEuYXNjZW5kaW5nPWwuYXNjZW5kaW5nKSksdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvdG9waWNzIikuc2V0UHJvcGVydGllcyhhKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixpLmdldCgic2VhcmNoQ29udGV4dCIpKSx0aGlzLnNldCgidG9waWNzIixudWxsKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigibmF2aWdhdGlvbi9jYXRlZ29yeSIse291dGxldDoibmF2aWdhdGlvbi1iYXIifSksdGhpcy5fY2F0ZWdvcnlMaXN0JiZ0aGlzLnJlbmRlcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiLHtvdXRsZXQ6ImhlYWRlci1saXN0LWNvbnRhaW5lciIsbW9kZWw6dGhpcy5fY2F0ZWdvcnlMaXN0fSksdGhpcy5yZW5kZXIoImRpc2NvdmVyeS90b3BpY3MiLHtjb250cm9sbGVyOiJkaXNjb3ZlcnkvdG9waWNzIixvdXRsZXQ6Imxpc3QtY29udGFpbmVyIn0pfSxyZXNldENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0JiZlLnNldFByb3BlcnRpZXMoe29yZGVyOiJkZWZhdWx0Iixhc2NlbmRpbmc6ITF9KX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX0sYWN0aW9uczp7ZXJyb3I6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5qcVhIUi5yZXNwb25zZUpTT047dCYmdC5leHRyYXMmJnQuZXh0cmFzLmh0bWw/dGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5zZXQoImVycm9ySHRtbCIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXh0cmFzLmh0bWwpOnRoaXMucmVwbGFjZVdpdGgoImV4Y2VwdGlvbiIpfSxzZXROb3RpZmljYXRpb246ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50TW9kZWwuc2V0Tm90aWZpY2F0aW9uKGUpfSx0cmlnZ2VyUmVmcmVzaDpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgpfX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtZ3JvdXAtbWVzc2FnZXMtcm91dGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdXNlci10b3BpYy1saXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInVzZXIubWVzc2FnZXMuIitlKX0sbW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpLHQ9InRvcGljcy9wcml2YXRlLW1lc3NhZ2VzLWdyb3VwLyIrdGhpcy5jdXJyZW50VXNlci5nZXQoInVzZXJuYW1lX2xvd2VyIikrIi8iK2U7cmV0dXJuIHRoaXMuX2lzQXJjaGl2ZSgpJiYodCs9Ii9hcmNoaXZlIiksdGhpcy5zdG9yZS5maW5kRmlsdGVyZWQoInRvcGljTGlzdCIse2ZpbHRlcjp0fSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0iL3ByaXZhdGUtbWVzc2FnZXMvZ3JvdXAvIit0aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpO3RoaXMuX2lzQXJjaGl2ZSgpJiYoZSs9Ii9hcmNoaXZlIiksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXRvcGljcy1saXN0Iikuc3Vic2NyaWJlKGUpLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnNldFByb3BlcnRpZXMoe2hpZGVDYXRlZ29yeTohMCxzaG93UG9zdGVyczohMH0pfSxfaXNBcmNoaXZlOmZ1bmN0aW9uKCl7cmV0dXJuImFyY2hpdmUiPT09ZX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLXRvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbGliL2NhY2hlZC10b3BpYy1saXN0IiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsaSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gaS5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6by5kZWZhdWx0LlRZUEVTLm1lc3NhZ2VzX3JlY2VpdmVkLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT0iaW5kZXgiPT09dD8iaW5ib3giOnQ7cmV0dXJuW0kxOG4udCgidXNlci5tZXNzYWdlcy4iK2UpLEkxOG4udCgidXNlci5wcml2YXRlX21lc3NhZ2VzIildfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLl9zaG93Rm9vdGVyKCksITB9fSxtb2RlbDpmdW5jdGlvbigpe3ZhciBlPSJ0b3BpY3MvIituKyIvIit0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpLHQ9KDAscy5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLGUpO3JldHVybiB0fHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOmV9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUmJnRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnN1YnNjcmliZSgiL3ByaXZhdGUtbWVzc2FnZXMvIitlKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS5zZXRQcm9wZXJ0aWVzKHtoaWRlQ2F0ZWdvcnk6ITAsc2hvd1Bvc3RlcnM6ITAsY2FuQnVsa1NlbGVjdDohMCx0YWdzRm9yVXNlcjp0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpLHNlbGVjdGVkOltdfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXRQcm9wZXJ0aWVzKHthcmNoaXZlOiExLHBtVmlldzp0LHNob3dUb2dnbGVCdWxrU2VsZWN0OiEwfSksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgiY29udGV4dFR5cGUiLCJwcml2YXRlX21lc3NhZ2VzIil9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS51bnN1YnNjcmliZSgpLHRoaXMuc2VhcmNoU2VydmljZS5zZXQoInNlYXJjaENvbnRleHQiLHRoaXMuY29udHJvbGxlckZvcigidXNlciIpLmdldCgibW9kZWwuc2VhcmNoQ29udGV4dCIpKX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtc3RhdGljLXJvdXRlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvc3RhdGljLXBhZ2UiXSxmdW5jdGlvbihlLG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5maW5kKGUpfSxyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJzdGF0aWMiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJzdGF0aWMiKS5zZXQoIm1vZGVsIix0KX19O3JldHVybiBuLmRlZmF1bHQuZXh0ZW5kKHQpfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9jb25kdWN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJjb25kdWN0Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZGlzY292ZXJ5LWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL21peGlucy9vcGVuLWNvbXBvc2VyIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeS1saXN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJwcmVsb2FkLXN0b3JlIiwiZGlzY291cnNlL2NvbXBvbmVudHMvY29uY2VybnMvY2F0ZWdvcnktc2VhcmNoLXByaW9yaXRpZXMiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxyLHQsbixpLHMsYSxvLGwsdSxjLGQscCxtKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBmPW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LHtyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiLHtvdXRsZXQ6Im5hdmlnYXRpb24tYmFyIn0pLHRoaXMucmVuZGVyKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIse291dGxldDoibGlzdC1jb250YWluZXIifSl9LGZpbmRDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dmFyIGU9IXRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLnNpdGVTZXR0aW5ncy5kZXNrdG9wX2NhdGVnb3J5X3BhZ2Vfc3R5bGU7cmV0dXJuImNhdGVnb3JpZXNfYW5kX2xhdGVzdF90b3BpY3MiPT09ZT90aGlzLl9maW5kQ2F0ZWdvcmllc0FuZFRvcGljcygibGF0ZXN0Iik6ImNhdGVnb3JpZXNfYW5kX3RvcF90b3BpY3MiPT09ZT90aGlzLl9maW5kQ2F0ZWdvcmllc0FuZFRvcGljcygidG9wIik6YS5kZWZhdWx0Lmxpc3QodGhpcy5zdG9yZSl9LG1vZGVsOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5maW5kQ2F0ZWdvcmllcygpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi50b3BpY1RyYWNraW5nU3RhdGU7cmV0dXJuIHQmJih0LnN5bmMoZSwiY2F0ZWdvcmllcyIpLHQudHJhY2tJbmNvbWluZygiY2F0ZWdvcmllcyIpKSxlfSl9LF9maW5kQ2F0ZWdvcmllc0FuZFRvcGljczpmdW5jdGlvbihzKXt2YXIgbz10aGlzO3JldHVybigwLHAuaGFzaCkoe3dyYXBwZWRDYXRlZ29yaWVzTGlzdDpjLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJjYXRlZ29yaWVzX2xpc3QiKSx0b3BpY3NMaXN0OmMuZGVmYXVsdC5nZXRBbmRSZW1vdmUoInRvcGljX2xpc3RfIitzKX0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS53cmFwcGVkQ2F0ZWdvcmllc0xpc3Qsbj1lLnRvcGljc0xpc3QsaT10JiZ0LmNhdGVnb3J5X2xpc3Q7cmV0dXJuIGkmJm4/KG4udG9waWNfbGlzdCYmbi50b3BpY19saXN0LnRvcF90YWdzJiZtLmRlZmF1bHQuY3VycmVudFByb3AoInRvcF90YWdzIixuLnRvcGljX2xpc3QudG9wX3RhZ3MpLHIuZGVmYXVsdC5jcmVhdGUoe2NhdGVnb3JpZXM6YS5kZWZhdWx0LmNhdGVnb3JpZXNGcm9tKG8uc3RvcmUsdCksdG9waWNzOmwuZGVmYXVsdC50b3BpY3NGcm9tKG8uc3RvcmUsbiksY2FuX2NyZWF0ZV9jYXRlZ29yeTppLmNhbl9jcmVhdGVfY2F0ZWdvcnksY2FuX2NyZWF0ZV90b3BpYzppLmNhbl9jcmVhdGVfdG9waWMsZHJhZnRfa2V5OmkuZHJhZnRfa2V5LGRyYWZ0OmkuZHJhZnQsZHJhZnRfc2VxdWVuY2U6aS5kcmFmdF9zZXF1ZW5jZX0pKTooMCx1LmFqYXgpKCIvY2F0ZWdvcmllc19hbmRfIitzKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljX2xpc3QmJmUudG9waWNfbGlzdC50b3BfdGFncyYmbS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BfdGFncyIsZS50b3BpY19saXN0LnRvcF90YWdzKSxyLmRlZmF1bHQuY3JlYXRlKHtjYXRlZ29yaWVzOmEuZGVmYXVsdC5jYXRlZ29yaWVzRnJvbShvLnN0b3JlLGUpLHRvcGljczpsLmRlZmF1bHQudG9waWNzRnJvbShvLnN0b3JlLGUpLGNhbl9jcmVhdGVfY2F0ZWdvcnk6ZS5jYXRlZ29yeV9saXN0LmNhbl9jcmVhdGVfY2F0ZWdvcnksY2FuX2NyZWF0ZV90b3BpYzplLmNhdGVnb3J5X2xpc3QuY2FuX2NyZWF0ZV90b3BpYyxkcmFmdF9rZXk6ZS5jYXRlZ29yeV9saXN0LmRyYWZ0X2tleSxkcmFmdDplLmNhdGVnb3J5X2xpc3QuZHJhZnQsZHJhZnRfc2VxdWVuY2U6ZS5jYXRlZ29yeV9saXN0LmRyYWZ0X3NlcXVlbmNlfSl9KX0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7aWYoImNhdGVnb3JpZXMiIT09KDAsby5kZWZhdWx0SG9tZXBhZ2UpKCkpcmV0dXJuIEkxOG4udCgiZmlsdGVycy5jYXRlZ29yaWVzLnRpdGxlIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0KCJtb2RlbCIsdCksdGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiKS5zZXRQcm9wZXJ0aWVzKHtzaG93Q2F0ZWdvcnlBZG1pbjp0LmdldCgiY2FuX2NyZWF0ZV9jYXRlZ29yeSIpLGNhbkNyZWF0ZVRvcGljOnQuZ2V0KCJjYW5fY3JlYXRlX3RvcGljIil9KX0sYWN0aW9uczp7dHJpZ2dlclJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sY3JlYXRlQ2F0ZWdvcnk6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNpdGUuZ3JvdXBzLHQ9ZS5maW5kQnkoImlkIiwwKS5uYW1lLG49dGhpcy5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5Iix7Y29sb3I6IjAwODhDQyIsdGV4dF9jb2xvcjoiRkZGRkZGIixncm91cF9wZXJtaXNzaW9uczpbe2dyb3VwX25hbWU6dCxwZXJtaXNzaW9uX3R5cGU6MX1dLGF2YWlsYWJsZV9ncm91cHM6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZX0pLGFsbG93X2JhZGdlczohMCx0b3BpY19mZWF0dXJlZF9saW5rX2FsbG93ZWQ6ITAsY3VzdG9tX2ZpZWxkczp7fSxzZWFyY2hfcHJpb3JpdHk6ZC5zZWFyY2hQcmlvcml0aWVzLm5vcm1hbH0pOygwLGkuZGVmYXVsdCkoImVkaXQtY2F0ZWdvcnkiLHttb2RlbDpufSksdGhpcy5jb250cm9sbGVyRm9yKCJlZGl0LWNhdGVnb3J5Iikuc2V0KCJzZWxlY3RlZFRhYiIsImdlbmVyYWwiKX0scmVvcmRlckNhdGVnb3JpZXM6ZnVuY3Rpb24oKXsoMCxpLmRlZmF1bHQpKCJyZW9yZGVyQ2F0ZWdvcmllcyIpfSxjcmVhdGVUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKS5nZXQoIm1vZGVsIik7ZS5kcmFmdD90aGlzLm9wZW5Ub3BpY0RyYWZ0KGUpOnRoaXMub3BlbkNvbXBvc2VyKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKSl9LGRpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHQubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gZS5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsITApfSksITB9fX0pO2UuZGVmYXVsdD1mfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdmVyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL29wZW4tY29tcG9zZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZGlyZWN0SWZMb2dpblJlcXVpcmVkKCl9LGJlZm9yZU1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0LG49cy5kZWZhdWx0LGk9ZS5pbnRlbnQudXJsOyIvIiE9PWkmJiIvbGF0ZXN0IiE9PWkmJiIvY2F0ZWdvcmllcyIhPT1pfHwtMSE9PWUudGFyZ2V0TmFtZS5pbmRleE9mKCJkaXNjb3ZlcnkudG9wIil8fCFuLmN1cnJlbnRQcm9wKCJzaG91bGRfYmVfcmVkaXJlY3RlZF90b190b3AiKXx8KG4uY3VycmVudFByb3AoInNob3VsZF9iZV9yZWRpcmVjdGVkX3RvX3RvcCIsITEpLHQ9bi5jdXJyZW50UHJvcCgicmVkaXJlY3RlZF90b190b3AucGVyaW9kIil8fCJhbGwiLHRoaXMucmVwbGFjZVdpdGgoImRpc2NvdmVyeS50b3AiK3QuY2FwaXRhbGl6ZSgpKSl9LGFjdGlvbnM6e2xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5zZXQoImxvYWRpbmciLCEwKSwhMH0sbG9hZGluZ0NvbXBsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5Iikuc2V0KCJsb2FkaW5nIiwhMSksdGhpcy5zZXNzaW9uLmdldCgidG9waWNMaXN0U2Nyb2xsUG9zaXRpb24iKXx8KDAsaS5zY3JvbGxUb3ApKCksITF9LGRpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5fc2hvd0Zvb3RlcigpLHRoaXMuc2VuZCgibG9hZGluZ0NvbXBsZXRlIiksITF9LGNsZWFyUGluOmZ1bmN0aW9uKGUpe2UuY2xlYXJQaW4oKX0sY3JlYXRlVG9waWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoImRpc2NvdmVyeS90b3BpY3MiKS5nZXQoIm1vZGVsIik7ZS5kcmFmdD90aGlzLm9wZW5Ub3BpY0RyYWZ0KGUpOnRoaXMub3BlbkNvbXBvc2VyKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpKX0sZGlzbWlzc1JlYWRUb3BpY3M6ZnVuY3Rpb24oZSl7dmFyIHQ9ZT8idG9waWNzIjoicG9zdHMiO3RoaXMuc2VuZCgiZGlzbWlzc1JlYWQiLHQpfSxkaXNtaXNzUmVhZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNvbnRyb2xsZXJGb3IoImRpc2NvdmVyeS90b3BpY3MiKTt0LnNlbmQoImRpc21pc3NSZWFkIixlLHtpbmNsdWRlU3ViY2F0ZWdvcmllczohdC5ub1N1YmNhdGVnb3JpZXN9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZW1haWwtbG9naW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJsb2dpbi50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmFqYXgpKCIvc2Vzc2lvbi9lbWFpbC1sb2dpbi8iK2UudG9rZW4rIi5qc29uIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZXhjZXB0aW9uLXVua25vd24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdW5rbm93biJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidW5rbm93biIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2V4Y2VwdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiIifSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZmFxIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJmYXEiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9mb3Jnb3QtcGFzc3dvcmQiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9KDAsaS5kZWZhdWx0KSgicGFzc3dvcmQtcmVzZXQiKTtzLnJlb3Blbih7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuZ2V0KCJsb2dpblJlcXVpcmVkIik7dGhpcy5yZXBsYWNlV2l0aChlPyJsb2dpbiI6ImRpc2NvdmVyeS4iKygwLG4uZGVmYXVsdEhvbWVwYWdlKSgpKS50aGVuKGZ1bmN0aW9uKGUpeygwLHQubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJzaG93Rm9yZ290UGFzc3dvcmQiKX0pfSl9fSksZS5kZWZhdWx0PXN9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZnVsbC1wYWdlLXNlYXJjaCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3BhZ2UtdHJhY2tlciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LHMsbyxyLGEsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6e3E6e30sZXhwYW5kZWQ6ITEsY29udGV4dF9pZDp7fSxjb250ZXh0Ont9LHNraXBfY29udGV4dDp7fX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInNlYXJjaC5yZXN1bHRzX3BhZ2UiLHt0ZXJtOigwLG4uZXNjYXBlRXhwcmVzc2lvbikodGhpcy5jb250cm9sbGVyRm9yKCJmdWxsLXBhZ2Utc2VhcmNoIikuZ2V0KCJzZWFyY2hUZXJtIikpfSl9LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLGEuZ2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIpLG49e3E6ZS5xfTtlLmNvbnRleHRfaWQmJiFuLnNraXBfY29udGV4dCYmKG4uc2VhcmNoX2NvbnRleHQ9e3R5cGU6ZS5jb250ZXh0LGlkOmUuY29udGV4dF9pZH0pO3ZhciBpPSgwLG8uZ2V0U2VhcmNoS2V5KShuKTtyZXR1cm4gdCYmdC5kYXRhLnNlYXJjaEtleT09PWk/KCgwLGEuc2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIse3NlYXJjaEtleTppLG1vZGVsOnQuZGF0YS5tb2RlbH0sNSksdC5kYXRhLm1vZGVsKTpyLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJzZWFyY2giLGZ1bmN0aW9uKCl7cmV0dXJuKDAsby5pc1ZhbGlkU2VhcmNoVGVybSkoZS5xKT8oMCxzLmFqYXgpKCIvc2VhcmNoIix7ZGF0YTpufSk6bnVsbH0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZT9lLmdyb3VwZWRfc2VhcmNoX3Jlc3VsdDp7fSxuPWUmJigwLG8udHJhbnNsYXRlUmVzdWx0cykoZSl8fHtncm91cGVkX3NlYXJjaF9yZXN1bHQ6dH07cmV0dXJuKDAsYS5zZXRUcmFuc2llbnQpKCJsYXN0U2VhcmNoIix7c2VhcmNoS2V5OmksbW9kZWw6bn0sNSksbn0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiZnVsbC1wYWdlLXNlYXJjaCIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLWFjdGl2aXR5LWluZGV4IixbImV4cG9ydHMiLCJAZW1iZXIvcm91dGluZy9yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsRm9yKCJncm91cCIpLmNhbl9zZWVfbWVtYmVycz90aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAuYWN0aXZpdHkucG9zdHMiKTp0aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAuYWN0aXZpdHkubWVudGlvbnMiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS1tZW50aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS1wb3N0cyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5idWlsZEdyb3VwUGFnZSkoIm1lbnRpb25zIil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtYWN0aXZpdHktcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUscyx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihpKXtyZXR1cm4gdC5kZWZhdWx0LmV4dGVuZCh7dHlwZTppLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMuIitpKX0sbW9kZWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxzLmdldCkodC50bywicXVlcnlQYXJhbXMuY2F0ZWdvcnlfaWQiKTtyZXR1cm4gdGhpcy5tb2RlbEZvcigiZ3JvdXAiKS5maW5kUG9zdHMoe3R5cGU6aSxjYXRlZ29yeUlkOm59KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5sZW5ndGg8MjA7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1hY3Rpdml0eS1wb3N0cyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsdHlwZTppLGNhbkxvYWRNb3JlOiFufSksdGhpcy5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsbil9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoImdyb3VwLWFjdGl2aXR5LXBvc3RzIil9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4hMH19fSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVpbGRHcm91cFBhZ2U9bixlLmRlZmF1bHQ9bigicG9zdHMiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS10b3BpY3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMudG9waWNzIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6InRvcGljcy9ncm91cHMvIit0aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtaW5kZXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWVtYmVycy50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5tb2RlbEZvcigiZ3JvdXAiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsIm1lbWJlcnMiKSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsZmlsdGVySW5wdXQ6dGhpcy5fcGFyYW1zLmZpbHRlcn0pLGUuZmluZE1lbWJlcnMoITApfSxhY3Rpb25zOntzaG93QWRkTWVtYmVyc01vZGFsOmZ1bmN0aW9uKCl7KDAsbi5kZWZhdWx0KSgiZ3JvdXAtYWRkLW1lbWJlcnMiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJncm91cCIpfSl9LHNob3dCdWxrQWRkTW9kYWw6ZnVuY3Rpb24oKXsoMCxuLmRlZmF1bHQpKCJncm91cC1idWxrLWFkZCIse21vZGVsOnRoaXMubW9kZWxGb3IoImdyb3VwIil9KX0sZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImdyb3VwLWluZGV4Iikuc2V0KCJmaWx0ZXJJbnB1dCIsdGhpcy5fcGFyYW1zLmZpbHRlciksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1hbmFnZS1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsYmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAubWFuYWdlLnByb2ZpbGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tYW5hZ2UtaW50ZXJhY3Rpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnRpdGxlIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLWxvZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiZ3JvdXBzLm1hbmFnZS5sb2dzLnRpdGxlIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIikuZmluZExvZ3MoKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1tYW5hZ2UtbG9ncyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnR9KX0sYWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoImdyb3VwLW1hbmFnZS1sb2dzIikucmVzZXQoKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLW1lbWJlcnNoaXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLm1lbWJlcnNoaXAudGl0bGUiKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXtlLmdldCgiYXV0b21hdGljIikmJnRoaXMucmVwbGFjZVdpdGgoImdyb3VwLm1hbmFnZS5pbnRlcmFjdGlvbiIsZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLXByb2ZpbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLnByb2ZpbGUudGl0bGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tYW5hZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLnRpdGxlIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50VXNlciYmKHRoaXMuY3VycmVudFVzZXIuYWRtaW4mJmUuZ2V0KCJhdXRvbWF0aWMiKXx8dGhpcy5jdXJyZW50VXNlci5jYW5NYW5hZ2VHcm91cChlKSl8fHRoaXMudHJhbnNpdGlvblRvKCJncm91cC5tZW1iZXJzIixlKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1tYW5hZ2UiKS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0fSksdGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsIm1hbmFnZSIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1lbWJlcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvKCJncm91cC5pbmRleCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1lc3NhZ2VzLWFyY2hpdmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtZ3JvdXAtbWVzc2FnZXMtcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImFyY2hpdmUiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tZXNzYWdlcy1pbmJveCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1ncm91cC1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiaW5ib3giKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tZXNzYWdlcy1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2JlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwLm1lc3NhZ2VzLmluYm94Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWVzc2FnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiZ3JvdXBzLm1lc3NhZ2VzIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZS5nZXQoImlzX2dyb3VwX3VzZXIiKXx8dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbnx8dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwLm1lbWJlcnMiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLXJlcXVlc3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImdyb3Vwcy5yZXF1ZXN0cy50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5tb2RlbEZvcigiZ3JvdXAiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsInJlcXVlc3RzIiksZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LGZpbHRlcklucHV0OnRoaXMuX3BhcmFtcy5maWx0ZXJ9KSxlLmZpbmRSZXF1ZXN0ZXJzKCEwKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5tb2RlbEZvcigiZ3JvdXAiKS5nZXQoIm5hbWUiKV19LG1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN0b3JlLmZpbmQoImdyb3VwIixlLm5hbWUpfSxzZXJpYWxpemU6ZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6ZS5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpfX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXBzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImdyb3Vwcy5pbmRleC50aXRsZSIpfSxxdWVyeVBhcmFtczp7b3JkZXI6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxhc2M6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxmaWx0ZXI6e3JlZnJlc2hNb2RlbDohMH0sdHlwZTp7cmVmcmVzaE1vZGVsOiEwLHJlcGxhY2U6ITB9LHVzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5zdG9yZS5maW5kQWxsKCJncm91cCIsZSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxmaWx0ZXJJbnB1dDp0aGlzLl9wYXJhbXMuZmlsdGVyfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXBzLW5ldyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcudGl0bGUiKX0sbW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0LmNyZWF0ZSh7YXV0b21hdGljOiExLHZpc2liaWxpdHlfbGV2ZWw6MH0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbnx8dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwcyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2d1aWRlbGluZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc3RhdGljLXJvdXRlLWJ1aWxkZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImd1aWRlbGluZXMiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9pbnZpdGVzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwicHJlbG9hZC1zdG9yZSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiaW52aXRlcy5hY2NlcHRfdGl0bGUiKX0sbW9kZWw6ZnVuY3Rpb24odCl7cmV0dXJuIG4uZGVmYXVsdC5nZXQoImludml0ZV9pbmZvIik/bi5kZWZhdWx0LmdldEFuZFJlbW92ZSgiaW52aXRlX2luZm8iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBfLm1lcmdlKHQsZSl9KTp7fX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9sb2dpbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz0oMCxuLmRlZmF1bHQpKCJsb2dpbiIpO3MucmVvcGVuKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkfHx0aGlzLnJlcGxhY2VXaXRoKCIvIisoMCxpLmRlZmF1bHRIb21lcGFnZSkoKSkudGhlbihmdW5jdGlvbihlKXsoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd0xvZ2luIil9KX0pfX0pLGUuZGVmYXVsdD1zfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL25ldy1tZXNzYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL21vZGVscy9ncm91cCJdLGZ1bmN0aW9uKGUscyx0LG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oZSl7dmFyIG49ZS50by5xdWVyeVBhcmFtcyxpPW4uZ3JvdXBuYW1lfHxuLmdyb3VwX25hbWU7dGhpcy5jdXJyZW50VXNlcj90aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkubGF0ZXN0IikudGhlbihmdW5jdGlvbih0KXtuLnVzZXJuYW1lP28uZGVmYXVsdC5maW5kQnlVc2VybmFtZShlbmNvZGVVUklDb21wb25lbnQobi51c2VybmFtZSkpLnRoZW4oZnVuY3Rpb24oZSl7ZS5jYW5fc2VuZF9wcml2YXRlX21lc3NhZ2VfdG9fdXNlcj8oMCxzLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2VuZCgiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyIsZS51c2VybmFtZSxuLnRpdGxlLG4uYm9keSl9KTpib290Ym94LmFsZXJ0KEkxOG4udCgiY29tcG9zZXIuY2FudF9zZW5kX3BtIix7dXNlcm5hbWU6ZS51c2VybmFtZX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJnZW5lcmljX2Vycm9yIikpfSk6aT9yLmRlZmF1bHQubWVzc2FnZWFibGUoaSkudGhlbihmdW5jdGlvbihlKXtlLm1lc3NhZ2VhYmxlPygwLHMubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZW5kKCJjcmVhdGVOZXdNZXNzYWdlVmlhUGFyYW1zIixpLG4udGl0bGUsbi5ib2R5KX0pOmJvb3Rib3guYWxlcnQoSTE4bi50KCJjb21wb3Nlci5jYW50X3NlbmRfcG0iLHt1c2VybmFtZTppfSkpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSl9KTp0LnNlbmQoImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiLG51bGwsbi50aXRsZSxuLmJvZHkpfSk6KCQuY29va2llKCJkZXN0aW5hdGlvbl91cmwiLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0aGlzLnJlcGxhY2VXaXRoKCJsb2dpbiIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9uZXctdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSxpLHQsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24odCl7dmFyIG4sZSxpLHMsbyxyPXRoaXM7dGhpcy5jdXJyZW50VXNlcj8obj1pPXZvaWQgMCx0LnRvLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5X2lkPyhuPXQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnlfaWQsaT1hLmRlZmF1bHQuZmluZEJ5SWQobikpOnQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnkmJihlPXQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnkuc3BsaXQoIi8iKSwoaT0oaT10aGlzLl9nZXRDYXRlZ29yeShlWzBdLGVbMV0sIm5hbWVMb3dlciIpKXx8dGhpcy5fZ2V0Q2F0ZWdvcnkoZVswXSxlWzFdLCJzbHVnIikpJiYobj1pLmlkKSksQm9vbGVhbihpKT8ocz0iZGlzY292ZXJ5LnBhcmVudENhdGVnb3J5IixvPXtjYXRlZ29yeTppLHNsdWc6aS5zbHVnfSxpLnBhcmVudENhdGVnb3J5JiYocz0iZGlzY292ZXJ5LmNhdGVnb3J5IixvPXtjYXRlZ29yeTppLHBhcmVudFNsdWc6aS5wYXJlbnRDYXRlZ29yeS5zbHVnLHNsdWc6aS5zbHVnfSksdGhpcy5yZXBsYWNlV2l0aChzLG8pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3J5IikuY2FuQ3JlYXRlVG9waWMmJnIuX3NlbmRUcmFuc2l0aW9uKGUsdCxuKX0pKTp0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkubGF0ZXN0IikudGhlbihmdW5jdGlvbihlKXtyLmNvbnRyb2xsZXJGb3IoIm5hdmlnYXRpb24vZGVmYXVsdCIpLmNhbkNyZWF0ZVRvcGljJiZyLl9zZW5kVHJhbnNpdGlvbihlLHQpfSkpOigkLmNvb2tpZSgiZGVzdGluYXRpb25fdXJsIix3aW5kb3cubG9jYXRpb24uaHJlZiksdGhpcy5yZXBsYWNlV2l0aCgibG9naW4iKSl9LF9zZW5kVHJhbnNpdGlvbjpmdW5jdGlvbihlLHQsbil7KDAsaS5uZXh0KShmdW5jdGlvbigpe2Uuc2VuZCgiY3JlYXRlTmV3VG9waWNWaWFQYXJhbXMiLHQudG8ucXVlcnlQYXJhbXMudGl0bGUsdC50by5xdWVyeVBhcmFtcy5ib2R5LG4sdC50by5xdWVyeVBhcmFtcy50YWdzKX0pfSxfZ2V0Q2F0ZWdvcnk6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbz12b2lkIDA7cmV0dXJuIHQ/KGk9dGhpcy5zaXRlLmNhdGVnb3JpZXMsKHM9aS5maW5kQnkobixlLnRvTG93ZXJDYXNlKCkpKSYmKG89aS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlW25dPT09dC50b0xvd2VyQ2FzZSgpJiZlLnBhcmVudF9jYXRlZ29yeV9pZD09PXMuaWR9KSkpOm89dGhpcy5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KG4sZS50b0xvd2VyQ2FzZSgpKSxvfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3Bhc3N3b3JkLXJlc2V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImxvZ2luLnJlc2V0X3Bhc3N3b3JkIil9LG1vZGVsOmZ1bmN0aW9uKHQpe2lmKG4uZGVmYXVsdC5nZXQoInBhc3N3b3JkX3Jlc2V0IikpcmV0dXJuIG4uZGVmYXVsdC5nZXRBbmRSZW1vdmUoInBhc3N3b3JkX3Jlc2V0IikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gXy5tZXJnZSh0LGUpfSl9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oMCxpLmFqYXgpKHt1cmw6KDAscy51c2VyUGF0aCkoImNvbmZpcm0tZW1haWwtdG9rZW4vIitlLnRva2VuKyIuanNvbiIpLGRhdGFUeXBlOiJqc29uIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3Bvc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2JlZm9yZU1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLnBhcmFtcztyZXR1cm4oMCxpLmFqYXgpKCIvcC8iK24ucG9zdC5pZCkudGhlbihmdW5jdGlvbihlKXt0LnRyYW5zaXRpb25UbygidG9waWMuZnJvbVBhcmFtc05lYXIiLGUuc2x1ZyxlLmlkLGUuY3VycmVudF9wb3N0X251bWJlcil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1hY2NvdW50IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbEZvcigidXNlciIpO3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfYmFkZ2VzP24uZGVmYXVsdC5maW5kQnlVc2VybmFtZSh0LmdldCgidXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoImJhZGdlcyIsZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYmFkZ2V9KSksdH0pOnR9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2UucmVzZXQoKSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsbmV3TmFtZUlucHV0OnQuZ2V0KCJuYW1lIiksbmV3VGl0bGVJbnB1dDp0LmdldCgidGl0bGUiKSxuZXdQcmltYXJ5R3JvdXBJbnB1dDp0LmdldCgicHJpbWFyeV9ncm91cF9pZCIpfSl9LGFjdGlvbnM6e3Nob3dBdmF0YXJTZWxlY3RvcjpmdW5jdGlvbihlKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJzaG93LWF2YXRhci1zZWxlY3QiLGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1hcHBzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcHJlZmVyZW5jZXMtZW1haWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcih7aW50bzoidXNlciJ9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5yZXNldCgpLGUuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxuZXdFbWFpbDp0LmdldCgiZW1haWwiKX0pfSxkZWFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyKCJwcmVmZXJlbmNlcyIse2ludG86InVzZXIiLGNvbnRyb2xsZXI6InByZWZlcmVuY2VzIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWVtYWlscyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAscmVkaXJlY3Q6ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25UbygicHJlZmVyZW5jZXMuYWNjb3VudCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWludGVyZmFjZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiLCJkaXNjb3Vyc2UvbGliL3RoZW1lLXNlbGVjdG9yIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHRleHRTaXplOnQuZ2V0KCJjdXJyZW50VGV4dFNpemUiKSx0aGVtZUlkOigwLG4uY3VycmVudFRoZW1lSWQpKCksbWFrZVRoZW1lRGVmYXVsdDohdC5nZXQoInVzZXJfb3B0aW9uLnRoZW1lX2lkcyIpfHwoMCxuLmN1cnJlbnRUaGVtZUlkKSgpPT09dC5nZXQoInVzZXJfb3B0aW9uLnRoZW1lX2lkcyIpWzBdLG1ha2VUZXh0U2l6ZURlZmF1bHQ6dC5nZXQoImN1cnJlbnRUZXh0U2l6ZSIpPT09dC5nZXQoInVzZXJfb3B0aW9uLnRleHRfc2l6ZSIpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcHJlZmVyZW5jZXMtbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1wcm9maWxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0LnVzZXJfb3B0aW9uLnRpbWV6b25lfHwoMCxuLnNldCkodCwidXNlcl9vcHRpb24udGltZXpvbmUiLG1vbWVudC50ei5ndWVzcygpKSxlLnNldCgibW9kZWwiLHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLXNlY29uZC1mYWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXIoe2ludG86InVzZXIifSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbih0LGUpe3Quc2V0UHJvcGVydGllcyh7bW9kZWw6ZSxuZXdVc2VybmFtZTplLmdldCgidXNlcm5hbWUiKX0pLHQuc2V0KCJsb2FkaW5nIiwhMCksZS5sb2FkU2Vjb25kRmFjdG9yQ29kZXMoIiIpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcj90LnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9yKTp0LnNldFByb3BlcnRpZXMoe2Vycm9yTWVzc2FnZTpudWxsLGxvYWRlZDohZS5wYXNzd29yZF9yZXF1aXJlZCxkaXJ0eTohIWUucGFzc3dvcmRfcmVxdWlyZWQsdG90cHM6ZS50b3RwcyxzZWN1cml0eV9rZXlzOmUuc2VjdXJpdHlfa2V5c30pfSkuY2F0Y2godC5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9LGFjdGlvbnM6e3dpbGxUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgdD10aGlzLmNvbnRyb2xsZXJGb3IoInByZWZlcmVuY2VzL3NlY29uZC1mYWN0b3IiKSxuPXQuZ2V0KCJjdXJyZW50VXNlciIpLGk9dC5nZXQoInNpdGVTZXR0aW5ncyIpO3JldHVybiEoInByZWZlcmVuY2VzLnNlY29uZC1mYWN0b3IiIT09ZS50YXJnZXROYW1lJiZuJiYhbi5pc19hbm9ueW1vdXMmJiFuLnNlY29uZF9mYWN0b3JfZW5hYmxlZCYmKCJzdGFmZiIhPT1pLmVuZm9yY2Vfc2Vjb25kX2ZhY3Rvcnx8bi5zdGFmZikmJiJubyIhPT1pLmVuZm9yY2Vfc2Vjb25kX2ZhY3Rvcil8fChlLmFib3J0KCksITEpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy10YWdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLXVzZXJuYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIil9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyKHtpbnRvOiJ1c2VyIn0pfSxkZWFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyKCJwcmVmZXJlbmNlcyIse2ludG86InVzZXIiLGNvbnRyb2xsZXI6InByZWZlcmVuY2VzIn0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsbmV3VXNlcm5hbWU6dC5nZXQoInVzZXJuYW1lIil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy11c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcml2YWN5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJwcml2YWN5Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgicmV2aWV3YWJsZSIsZSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXQucmVzdWx0U2V0TWV0YTt2b2lkIDAhPT1uLnJldmlld2FibGVfY291bnQmJnRoaXMuY3VycmVudFVzZXIuc2V0KCJyZXZpZXdhYmxlX2NvdW50IixuLnJldmlld2FibGVfY291bnQpLGUuc2V0UHJvcGVydGllcyh7cmV2aWV3YWJsZXM6dCx0eXBlOm4udHlwZSxmaWx0ZXJUeXBlOm4udHlwZSxmaWx0ZXJTdGF0dXM6bi5zdGF0dXMsZmlsdGVyVG9waWM6bi50b3BpY19pZCxmaWx0ZXJDYXRlZ29yeUlkOm4uY2F0ZWdvcnlfaWQsZmlsdGVyUHJpb3JpdHk6bi5wcmlvcml0eSxyZXZpZXdhYmxlVHlwZXM6bi5yZXZpZXdhYmxlX3R5cGVzLGZpbHRlclVzZXJuYW1lOm4udXNlcm5hbWUsZmlsdGVyRnJvbURhdGU6bi5mcm9tX2RhdGUsZmlsdGVyVG9EYXRlOm4udG9fZGF0ZSxmaWx0ZXJTb3J0T3JkZXI6bi5zb3J0X29yZGVyLGFkZGl0aW9uYWxGaWx0ZXJzOm4uYWRkaXRpb25hbF9maWx0ZXJzfHx7fX0pfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL3Jldmlld2FibGVfY2xhaW1lZCIsZnVuY3Rpb24odCl7dmFyIG4sZT1pLmNvbnRyb2xsZXIucmV2aWV3YWJsZXM7ZSYmKG49dC51c2VyP2kuc3RvcmUuY3JlYXRlUmVjb3JkKCJ1c2VyIix0LnVzZXIpOm51bGwsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QudG9waWNfaWQ9PT1lLnRvcGljLmlkJiZlLnNldCgiY2xhaW1lZF9ieSIsbil9KSl9KX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3Jldmlld2FibGVfY2xhaW1lZCIpfSxhY3Rpb25zOntyZWZyZXNoUm91dGU6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXNldHRpbmdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9yZS5maW5kKCJyZXZpZXdhYmxlLXNldHRpbmdzIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0KCJzZXR0aW5ncyIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgicmV2aWV3YWJsZSIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXRvcGljcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgicmV2aWV3YWJsZS10b3BpYyIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgicmV2aWV3YWJsZVRvcGljcyIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInJldmlldy50aXRsZSIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3J1bGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJydWxlcyIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3NpZ251cCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPSgwLHQuZGVmYXVsdCkoInNpZ251cCIpO2kucmVvcGVuKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5nZXQoImNhblNpZ25VcCIpO3RoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkP3RoaXMucmVwbGFjZVdpdGgoImxvZ2luIikudGhlbihmdW5jdGlvbihlKXt0JiYoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd0NyZWF0ZUFjY291bnQiKX0pfSk6dGhpcy5yZXBsYWNlV2l0aCgiZGlzY292ZXJ5LmxhdGVzdCIpLnRoZW4oZnVuY3Rpb24oZSl7dCYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiBlLnNlbmQoInNob3dDcmVhdGVBY2NvdW50Iil9KX0pfX0pLGUuZGVmYXVsdD1pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMtZWRpdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsbW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgidGFnR3JvdXAiLGUuaWQpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUpe2Uuc2V0KCJzYXZpbmdTdGF0dXMiLG51bGwpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMtbmV3IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMuc2l0ZVNldHRpbmdzLnRhZ2dpbmdfZW5hYmxlZHx8dGhpcy50cmFuc2l0aW9uVG8oInRhZ0dyb3VwcyIpfSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnR3JvdXAiLHtuYW1lOkkxOG4udCgidGFnZ2luZy5ncm91cHMubmV3X25hbWUiKX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgidGFnR3JvdXAiKX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInRhZ2dpbmcuZ3JvdXBzLnRpdGxlIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3RhZyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHttb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRBbGwoInRhZyIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0cmFzJiYoZS5leHRyYXMuY2F0ZWdvcmllcyYmZS5leHRyYXMuY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGFncz1lLnRhZ3MubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuY3JlYXRlKGUpfSl9KSxlLmV4dHJhcy50YWdfZ3JvdXBzJiZlLmV4dHJhcy50YWdfZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50YWdzPWUudGFncy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5jcmVhdGUoZSl9KX0pKSxlfSl9LHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJ0YWdnaW5nLnRhZ3MiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLmluZGV4Iikuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxzb3J0UHJvcGVydGllczp0aGlzLnNpdGVTZXR0aW5ncy50YWdzX3NvcnRfYWxwaGFiZXRpY2FsbHk/WyJpZCJdOlsidG90YWxDb3VudDpkZXNjIiwiaWQiXX0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH0sc2hvd1RhZ0dyb3VwczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zaXRpb25UbygidGFnR3JvdXBzIiksITB9LHJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1pbnRlcnNlY3Rpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1zaG93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy90YWdzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtdG9waWMtcm91dGUiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5LXNvcnRhYmxlIiwiZGlzY291cnNlL21vZGVscy9wZXJtaXNzaW9uLXR5cGUiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSJdLGZ1bmN0aW9uKGUsdCxuLGksdSxzLGMsZCxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCx7bmF2TW9kZToibGF0ZXN0IixxdWVyeVBhcmFtczpzLnF1ZXJ5UGFyYW1zLHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTt0aGlzLnJlbmRlcigidGFncy5zaG93Iix7Y29udHJvbGxlcjplfSl9LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnIix7aWQ6SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUudGFnX2lkKX0pO3JldHVybiBlLmFkZGl0aW9uYWxfdGFncz90aGlzLnNldCgiYWRkaXRpb25hbFRhZ3MiLGUuYWRkaXRpb25hbF90YWdzLnNwbGl0KCIvIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnIix7aWQ6SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUpfSkuaWR9KSk6dGhpcy5zZXQoImFkZGl0aW9uYWxUYWdzIixudWxsKSx0aGlzLnNldCgiZmlsdGVyVHlwZSIsdGhpcy5uYXZNb2RlLnNwbGl0KCIvIilbMF0pLHRoaXMuc2V0KCJjYXRlZ29yeVNsdWdQYXRoV2l0aElEIixlLmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkKSxuJiYibm9uZSIhPT1uLmdldCgiaWQiKSYmdGhpcy5jdXJyZW50VXNlcj90aGlzLnN0b3JlLmZpbmQoInRhZ05vdGlmaWNhdGlvbiIsbi5nZXQoImlkIikudG9Mb3dlckNhc2UoKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoInRhZ05vdGlmaWNhdGlvbiIsZSksbn0pOm59LGFmdGVyTW9kZWw6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTtpLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITAsc2hvd0luZm86ITF9KTt2YXIgcz0oMCx1LmZpbHRlclF1ZXJ5UGFyYW1zKShlLnRvLnF1ZXJ5UGFyYW1zLHt9KSxvPXRoaXMuY2F0ZWdvcnlTbHVnUGF0aFdpdGhJRD9kLmRlZmF1bHQuZmluZEJ5U2x1Z1BhdGhXaXRoSUQodGhpcy5jYXRlZ29yeVNsdWdQYXRoV2l0aElEKTpudWxsLHI9dGhpcy5uYXZNb2RlLGE9dD90LmlkLnRvTG93ZXJDYXNlKCk6Im5vbmUiLGw9dm9pZCAwO3JldHVybiBvPyhvLnNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMoKSx0aGlzLnNldCgiY2F0ZWdvcnkiLG8pLGw9InRhZ3MvYy8iK2QuZGVmYXVsdC5zbHVnRm9yKG8pKyIvIitvLmlkLHRoaXMubm9TdWJjYXRlZ29yaWVzJiYobCs9Ii9ub25lIiksbCs9Ii8iK2ErIi9sLyIrcik6bD10aGlzLmFkZGl0aW9uYWxUYWdzPyh0aGlzLnNldCgiY2F0ZWdvcnkiLG51bGwpLCJ0YWdzL2ludGVyc2VjdGlvbi8iK2ErIi8iK3RoaXMuYWRkaXRpb25hbFRhZ3Muam9pbigiLyIpKToodGhpcy5zZXQoImNhdGVnb3J5IixudWxsKSwidGFnLyIrYSsiL2wvIityKSwoMCx1LmZpbmRUb3BpY0xpc3QpKHRoaXMuc3RvcmUsdGhpcy50b3BpY1RyYWNraW5nU3RhdGUsbCxzLHtjYWNoZWQ6ITB9KS50aGVuKGZ1bmN0aW9uKGUpe2UudG9waWNfbGlzdC50YWdzJiYxPT09ZS50b3BpY19saXN0LnRhZ3MubGVuZ3RoJiZ0LnNldFByb3BlcnRpZXMoe2lkOmUudG9waWNfbGlzdC50YWdzWzBdLm5hbWUsc3RhZmY6ZS50b3BpY19saXN0LnRhZ3NbMF0uc3RhZmZ9KSxpLnNldFByb3BlcnRpZXMoe2xpc3Q6ZSxjYW5DcmVhdGVUb3BpYzplLmdldCgiY2FuX2NyZWF0ZV90b3BpYyIpLGxvYWRpbmc6ITEsY2FuQ3JlYXRlVG9waWNPbkNhdGVnb3J5Om4uZ2V0KCJjYXRlZ29yeS5wZXJtaXNzaW9uIik9PT1jLmRlZmF1bHQuRlVMTCxjYW5DcmVhdGVUb3BpY09uVGFnOiF0LmdldCgic3RhZmYiKXx8bi5nZXQoImN1cnJlbnRVc2VyLnN0YWZmIil9KX0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9STE4bi50KCJmaWx0ZXJzLiIrdGhpcy5uYXZNb2RlLnJlcGxhY2UoIi8iLCIuIikrIi50aXRsZSIpLHQ9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTtyZXR1cm4gdC5nZXQoIm1vZGVsLmlkIik/dGhpcy5jYXRlZ29yeT9JMThuLnQoInRhZ2dpbmcuZmlsdGVycy53aXRoX2NhdGVnb3J5Iix7ZmlsdGVyOmUsdGFnOnQuZ2V0KCJtb2RlbC5pZCIpLGNhdGVnb3J5OnRoaXMuZ2V0KCJjYXRlZ29yeS5uYW1lIil9KTpJMThuLnQoInRhZ2dpbmcuZmlsdGVycy53aXRob3V0X2NhdGVnb3J5Iix7ZmlsdGVyOmUsdGFnOnQuZ2V0KCJtb2RlbC5pZCIpfSk6dGhpcy5jYXRlZ29yeT9JMThuLnQoInRhZ2dpbmcuZmlsdGVycy51bnRhZ2dlZF93aXRoX2NhdGVnb3J5Iix7ZmlsdGVyOmUsY2F0ZWdvcnk6dGhpcy5nZXQoImNhdGVnb3J5Lm5hbWUiKX0pOkkxOG4udCgidGFnZ2luZy5maWx0ZXJzLnVudGFnZ2VkX3dpdGhvdXRfY2F0ZWdvcnkiLHtmaWx0ZXI6ZX0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsdGFnOnQsYWRkaXRpb25hbFRhZ3M6dGhpcy5hZGRpdGlvbmFsVGFncyxjYXRlZ29yeTp0aGlzLmNhdGVnb3J5LGZpbHRlclR5cGU6dGhpcy5maWx0ZXJUeXBlLG5hdk1vZGU6dGhpcy5uYXZNb2RlLHRhZ05vdGlmaWNhdGlvbjp0aGlzLnRhZ05vdGlmaWNhdGlvbixub1N1YmNhdGVnb3JpZXM6dGhpcy5ub1N1YmNhdGVnb3JpZXN9KSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0Iix0LmdldCgic2VhcmNoQ29udGV4dCIpKX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX0sYWN0aW9uczp7aW52YWxpZGF0ZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LHJlbmFtZVRhZzpmdW5jdGlvbihlKXsoMCxpLmRlZmF1bHQpKCJyZW5hbWUtdGFnIix7bW9kZWw6ZX0pfSxjcmVhdGVUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpO3QuZ2V0KCJsaXN0LmRyYWZ0Iik/dGhpcy5vcGVuVG9waWNEcmFmdCh0LmdldCgibGlzdCIpKTp0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7Y2F0ZWdvcnlJZDp0LmdldCgiY2F0ZWdvcnkuaWQiKSxhY3Rpb246bi5kZWZhdWx0LkNSRUFURV9UT1BJQyxkcmFmdEtleTp0LmdldCgibGlzdC5kcmFmdF9rZXkiKSxkcmFmdFNlcXVlbmNlOnQuZ2V0KCJsaXN0LmRyYWZ0X3NlcXVlbmNlIil9KS50aGVuKGZ1bmN0aW9uKCl7dC5nZXQoIm1vZGVsLmlkIikmJmUuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5nZXQoIm1vZGVsIikuc2V0KCJ0YWdzIixfLmNvbXBhY3QoXy5mbGF0dGVuKFt0LmdldCgibW9kZWwuaWQiKSx0LmdldCgiYWRkaXRpb25hbFRhZ3MiKV0pKSl9KX0sZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWJ5LXNsdWctb3ItaWQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2x1Z09ySWQubWF0Y2gobi5JRF9DT05TVFJBSU5UKT97dXJsOiIvdC90b3BpYy8iK2Uuc2x1Z09ySWR9Om4uZGVmYXVsdC5pZEZvclNsdWcoZS5zbHVnT3JJZCl9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oZS51cmwse3JlcGxhY2VVUkw6ITB9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy90b3BpYy1mcm9tLXBhcmFtcy1uZWFyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWZyb20tcGFyYW1zIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHR9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwicnN2cCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCJdLGZ1bmN0aW9uKGUsbyxyLGksdCxzLGEsbixsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1PSExLGM9bnVsbCxkPW51bGwscD10LmRlZmF1bHQuZXh0ZW5kKHtyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZGlyZWN0SWZMb2dpblJlcXVpcmVkKCl9LHF1ZXJ5UGFyYW1zOntmaWx0ZXI6e3JlcGxhY2U6ITB9LHVzZXJuYW1lX2ZpbHRlcnM6e3JlcGxhY2U6ITB9fSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidG9waWMiKTtpZihlKXt2YXIgdD1lLmdldCgidW5pY29kZV90aXRsZSIpfHxlLmdldCgidGl0bGUiKSxuPWUuZ2V0KCJjYXRlZ29yeSIpO2lmKCF0aGlzLnNpdGVTZXR0aW5ncy50b3BpY19wYWdlX3RpdGxlX2luY2x1ZGVzX2NhdGVnb3J5fHwhbnx8bi5nZXQoImlzVW5jYXRlZ29yaXplZENhdGVnb3J5IikmJiJ1bmNhdGVnb3JpemVkIj09PW4uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKSlyZXR1cm4gdDt2YXIgaT1uLmdldCgibmFtZSIpLHM9bi5nZXQoInBhcmVudENhdGVnb3J5Iik7cmV0dXJuIHMmJihpPXMuZ2V0KCJuYW1lIikrIiAvICIraSksW3QsaV19fSxhY3Rpb25zOntzaG93SW52aXRlOmZ1bmN0aW9uKCl7dmFyIGU9dm9pZCAwLGU9dGhpcy5pc1BNPyJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS50aXRsZSI6dGhpcy5pbnZpdGluZ1RvVG9waWM/InRvcGljLmludml0ZV9yZXBseS50aXRsZSI6InVzZXIuaW52aXRlZC5jcmVhdGUiOygwLGwuZGVmYXVsdCkoInNoYXJlLWFuZC1pbnZpdGUiLHttb2RhbENsYXNzOiJzaGFyZS1hbmQtaW52aXRlIixwYW5lbHM6W3tpZDoiaW52aXRlIix0aXRsZTplLG1vZGVsOntpbnZpdGVNb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpfX1dfSl9LHNob3dGbGFnczpmdW5jdGlvbihlKXsoMCxsLmRlZmF1bHQpKCJmbGFnIix7bW9kZWw6ZX0pLnNldFByb3BlcnRpZXMoe2ZsYWdUb3BpYzohMX0pfSxzaG93RmxhZ1RvcGljOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidG9waWMiKTsoMCxsLmRlZmF1bHQpKCJmbGFnIix7bW9kZWw6ZX0pLnNldFByb3BlcnRpZXMoe2ZsYWdUb3BpYzohMH0pfSxzaG93VG9waWNTdGF0dXNVcGRhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ0b3BpYyIpO2UuZ2V0KCJ0b3BpY190aW1lciIpfHxlLnNldCgidG9waWNfdGltZXIiLHt9KSxlLmdldCgicHJpdmF0ZV90b3BpY190aW1lciIpfHxlLnNldCgicHJpdmF0ZV90b3BpY190aW1lciIse30pLCgwLGwuZGVmYXVsdCkoImVkaXQtdG9waWMtdGltZXIiLHttb2RlbDplfSksdGhpcy5jb250cm9sbGVyRm9yKCJtb2RhbCIpLnNldCgibW9kYWxDbGFzcyIsImVkaXQtdG9waWMtdGltZXItbW9kYWwiKX0sc2hvd0NoYW5nZVRpbWVzdGFtcDpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImNoYW5nZS10aW1lc3RhbXAiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJ0b3BpYy5jaGFuZ2VfdGltZXN0YW1wLnRpdGxlIn0pfSxzaG93RmVhdHVyZVRvcGljOmZ1bmN0aW9uKCl7KDAsbC5kZWZhdWx0KSgiZmVhdHVyZVRvcGljIix7bW9kZWw6dGhpcy5tb2RlbEZvcigidG9waWMiKSx0aXRsZToidG9waWMuZmVhdHVyZV90b3BpYy50aXRsZSJ9KSx0aGlzLmNvbnRyb2xsZXJGb3IoIm1vZGFsIikuc2V0KCJtb2RhbENsYXNzIiwiZmVhdHVyZS10b3BpYy1tb2RhbCIpLHRoaXMuY29udHJvbGxlckZvcigiZmVhdHVyZV90b3BpYyIpLnJlc2V0KCl9LHNob3dIaXN0b3J5OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsbC5kZWZhdWx0KSgiaGlzdG9yeSIse21vZGVsOmUsbW9kYWxDbGFzczoiaGlzdG9yeS1tb2RhbCJ9KTtuLnJlZnJlc2goZS5nZXQoImlkIiksdHx8ImxhdGVzdCIpLG4uc2V0KCJwb3N0IixlKSxuLnNldCgidG9waWNDb250cm9sbGVyIix0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikpfSxzaG93R3JhbnRCYWRnZU1vZGFsOmZ1bmN0aW9uKCl7KDAsbC5kZWZhdWx0KSgiZ3JhbnQtYmFkZ2UiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJhZG1pbi5iYWRnZXMuZ3JhbnRfYmFkZ2UifSl9LHNob3dSYXdFbWFpbDpmdW5jdGlvbihlKXsoMCxsLmRlZmF1bHQpKCJyYXctZW1haWwiLHttb2RlbDplfSksdGhpcy5jb250cm9sbGVyRm9yKCJyYXdfZW1haWwiKS5sb2FkUmF3RW1haWwoZS5nZXQoImlkIikpfSxtb3ZlVG9Ub3BpYzpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoIm1vdmUtdG8tdG9waWMiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJ0b3BpYy5tb3ZlX3RvLnRpdGxlIn0pfSxjaGFuZ2VPd25lcjpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImNoYW5nZS1vd25lciIse21vZGVsOnRoaXMubW9kZWxGb3IoInRvcGljIiksdGl0bGU6InRvcGljLmNoYW5nZV9vd25lci50aXRsZSJ9KX0scG9zdENoYW5nZWRSb3V0ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3V8fHAuZGlzYWJsZVJlcGxhY2VTdGF0ZXx8KHQ9dGhpcy5tb2RlbEZvcigidG9waWMiKSkmJmUmJihuPXQuZ2V0KCJ1cmwiKSwxPGUmJihuKz0iLyIrZSksKDAsaS5jYW5jZWwpKGMpLGQ9cGFyc2VJbnQoJChkb2N1bWVudCkuc2Nyb2xsVG9wKCksMTApLGM9KDAsaS5sYXRlcikodGhpcywiX3JlcGxhY2VVbmxlc3NTY3JvbGxpbmciLG4sRW1iZXIuVGVzdD8wOjUwMCkpfSxkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidG9waWMiKS5fc2hvd0Zvb3RlcigpLCEwfSx3aWxsVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksKDAsaS5jYW5jZWwpKGMpLHU9ITB9fSxfcmVwbGFjZVVubGVzc1Njcm9sbGluZzpmdW5jdGlvbihlKXt2YXIgdD1wYXJzZUludCgkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSwxMCk7dCE9PWQ/KGQ9dCxjPSgwLGkubGF0ZXIpKHRoaXMsIl9yZXBsYWNlVW5sZXNzU2Nyb2xsaW5nIixlLDUwMCkpOnMuZGVmYXVsdC5yZXBsYWNlU3RhdGUoZSl9LHNldHVwUGFyYW1zOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInBvc3RTdHJlYW0iKTtuLnNldCgic3VtbWFyeSIsInN1bW1hcnkiPT09KDAsby5nZXQpKHQsImZpbHRlciIpKTt2YXIgaT0oMCxvLmdldCkodCwidXNlcm5hbWVfZmlsdGVycyIpLHM9bi5nZXQoInVzZXJGaWx0ZXJzIik7cmV0dXJuIHMuY2xlYXIoKSwoMCxyLmlzRW1wdHkpKGkpfHwidW5kZWZpbmVkIj09PWl8fHMuYWRkT2JqZWN0cyhpLnNwbGl0KCIsIikpLGV9LG1vZGVsOmZ1bmN0aW9uKGUsdCl7aWYoZS5zbHVnLm1hdGNoKGEuSURfQ09OU1RSQUlOVCkpcmV0dXJuIHQuYWJvcnQoKSx2b2lkIHMuZGVmYXVsdC5yb3V0ZVRvKCIvdC90b3BpYy8iK2Uuc2x1ZysiLyIrZS5pZCx7cmVwbGFjZVVSTDohMH0pO3ZhciBuPXQudG8ucXVlcnlQYXJhbXMsaT10aGlzLm1vZGVsRm9yKCJ0b3BpYyIpO3JldHVybiBpJiZpLmdldCgiaWQiKT09PXBhcnNlSW50KGUuaWQsMTApPyh0aGlzLnNldHVwUGFyYW1zKGksbiksaSk6KGk9dGhpcy5zdG9yZS5jcmVhdGVSZWNvcmQoInRvcGljIixfLm9taXQoZSwidXNlcm5hbWVfZmlsdGVycyIsImZpbHRlciIpKSx0aGlzLnNldHVwUGFyYW1zKGksbikpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx1PSExO3ZhciBlPXRoaXMubW9kZWxGb3IoInRvcGljIik7dGhpcy5zZXNzaW9uLnNldCgibGFzdFRvcGljSWRWaWV3ZWQiLHBhcnNlSW50KGUuZ2V0KCJpZCIpLDEwKSl9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgic2VhcmNoQ29udGV4dCIsbnVsbCksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWNhcmQiKS5zZXQoInZpc2libGUiLCExKTt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIik7ZS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5jYW5jZWxGaWx0ZXIoKSxlLnNldCgibXVsdGlTZWxlY3QiLCExKSx0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikuc2V0KCJ0b3BpYyIsbnVsbCksdGhpcy5zY3JlZW5UcmFjay5zdG9wKCksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmhpZGUtdG9waWMiKSx0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikuc2V0KCJtb2RlbCIsbnVsbCl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dT0hMSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsZWRpdGluZ1RvcGljOiExLGZpcnN0UG9zdEV4cGFuZGVkOiExfSkscC50cmlnZ2VyKCJzZXR1cFRvcGljQ29udHJvbGxlciIsdGhpcyksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgic2VhcmNoQ29udGV4dCIsdC5nZXQoInNlYXJjaENvbnRleHQiKSksZS5zZXQoIm11bHRpU2VsZWN0IiwhMSksZS5nZXQoInF1b3RlU3RhdGUiKS5jbGVhcigpLHRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5zZXQoInRvcGljIix0KSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZS50cmFja0luY29taW5nKCJhbGwiKSx0aGlzLnNjcmVlblRyYWNrLnN0YXJ0KHQuZ2V0KCJpZCIpLGUpLCgwLGkuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7bi5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnVwZGF0ZS10b3BpYyIsdCl9KX19KTtuLkV2ZW50VGFyZ2V0Lm1peGluKHApLGUuZGVmYXVsdD1wfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zdGF0aWMtcm91dGUtYnVpbGRlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgidG9zIil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdW5rbm93biIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4oMCxuLmFqYXgpKCIvNDA0LWJvZHkiLHtkYXRhVHlwZToiaHRtbCJ9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LWJvb2ttYXJrcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmJvb2ttYXJrcyxub0NvbnRlbnRIZWxwS2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2Jvb2ttYXJrcyIsYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktZHJhZnRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VyRHJhZnRzU3RyZWFtIik7cmV0dXJuIGUubG9hZCh0aGlzLnNpdGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfSxyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJ1c2VyX3N0cmVhbSIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuYXBwRXZlbnRzLm9uKCJkcmFmdDpkZXN0cm95ZWQiLHRoaXMsdGhpcy5yZWZyZXNoKX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuYXBwRXZlbnRzLm9mZigiZHJhZnQ6ZGVzdHJveWVkIix0aGlzLHRoaXMucmVmcmVzaCl9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWFjdGl2aXR5IikuX3Nob3dGb290ZXIoKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bnVsbH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktbGlrZXMtZ2l2ZW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3VzZXJBY3Rpb25UeXBlOm4uZGVmYXVsdC5UWVBFUy5saWtlc19naXZlbixub0NvbnRlbnRIZWxwS2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2xpa2VzX2dpdmVuIixhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1wZW5kaW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMucGVuZGluZ30pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktcmVwbGllcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLnBvc3RzLG5vQ29udGVudEhlbHBLZXk6InVzZXJfYWN0aXZpdHkubm9fcmVwbGllcyIsYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktdG9waWNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItdG9waWMtbGlzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLnRvcGljcyxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvY3JlYXRlZC1ieS8iK3RoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIGUuZ2V0KCJwcm9maWxlX2hpZGRlbiIpP3RoaXMucmVwbGFjZVdpdGgoInVzZXIucHJvZmlsZS1oaWRkZW4iKTplfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItYWN0aXZpdHkiKS5zZXQoIm1vZGVsIix0KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWJhZGdlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL3ZpZXdpbmctYWN0aW9uLXR5cGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeVVzZXJuYW1lKHRoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIikse2dyb3VwZWQ6ITB9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy52aWV3aW5nQWN0aW9uVHlwZSgtMSksZS5zZXQoIm1vZGVsIix0KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9iYWRnZXMiLHtpbnRvOiJ1c2VyIn0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1kZWxldGVkLXBvc3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLWFkbWluLXVzZXItcG9zdHMtcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImRlbGV0ZWQiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRVc2VyLHQ9ZSYmZS5nZXQoInVzZXJuYW1lIik9PT10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZSIpPyJ1c2VyQWN0aXZpdHkiOiJ1c2VyLnN1bW1hcnkiO3RoaXMuc2l0ZS5tb2JpbGVWaWV3P3RoaXMucmVwbGFjZVdpdGgodCk6dGhpcy50cmFuc2l0aW9uVG8odCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1pbnZpdGVkLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnJlcGxhY2VXaXRoKCJ1c2VySW52aXRlZC5zaG93IiwicGVuZGluZyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItaW52aXRlZC1zaG93IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvaW52aXRlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gbi5kZWZhdWx0LmZpbmRJbnZpdGVkQ291bnQodGhpcy5tb2RlbEZvcigidXNlciIpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNldCgiaW52aXRlc0NvdW50IixlKX0pLHRoaXMuaW52aXRlRmlsdGVyPWUuZmlsdGVyLG4uZGVmYXVsdC5maW5kSW52aXRlZEJ5KHRoaXMubW9kZWxGb3IoInVzZXIiKSxlLmZpbHRlcil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZS5jYW5fc2VlX2ludml0ZV9kZXRhaWxzfHx0aGlzLnJlcGxhY2VXaXRoKCJ1c2VySW52aXRlZC5zaG93IiwicmVkZWVtZWQiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHVzZXI6dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuZ2V0KCJtb2RlbCIpLGZpbHRlcjp0aGlzLmludml0ZUZpbHRlcixzZWFyY2hUZXJtOiIiLHRvdGFsSW52aXRlczp0Lmludml0ZXMubGVuZ3RoLGludml0ZXNDb3VudDp0aGlzLmludml0ZXNDb3VudH0pfSxhY3Rpb25zOntzaG93SW52aXRlOmZ1bmN0aW9uKCl7KDAsaS5kZWZhdWx0KSgic2hhcmUtYW5kLWludml0ZSIse21vZGFsQ2xhc3M6InNoYXJlLWFuZC1pbnZpdGUiLHBhbmVsczpbe2lkOiJpbnZpdGUiLHRpdGxlOiJ1c2VyLmludml0ZWQuY3JlYXRlIixtb2RlbDp7aW52aXRlTW9kZWw6dGhpcy5jdXJyZW50VXNlcix1c2VySW52aXRlZFNob3c6dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWludml0ZWQtc2hvdyIpfX1dfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucy1lZGl0cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmVkaXRzfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1ub3RpZmljYXRpb25zLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y29udHJvbGxlck5hbWU6InVzZXItbm90aWZpY2F0aW9ucyIscmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9ub3RpZmljYXRpb25zLWluZGV4Iil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZXx8dGhpcy50cmFuc2l0aW9uVG8oInVzZXJOb3RpZmljYXRpb25zLnJlc3BvbnNlcyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucy1saWtlcy1yZWNlaXZlZCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmxpa2VzX3JlY2VpdmVkfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1ub3RpZmljYXRpb25zLW1lbnRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMubWVudGlvbnN9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLW5vdGlmaWNhdGlvbnMtcmVzcG9uc2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMucmVwbGllc30pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL3ZpZXdpbmctYWN0aW9uLXR5cGUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse3JlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoInVzZXIvbm90aWZpY2F0aW9ucyIpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci1ub3RpZmljYXRpb25zIikuX3Nob3dGb290ZXIoKSwhMH19LG1vZGVsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWUiKTtpZih0aGlzLmdldCgiY3VycmVudFVzZXIudXNlcm5hbWUiKT09PWV8fHRoaXMuZ2V0KCJjdXJyZW50VXNlci5hZG1pbiIpKXJldHVybiB0aGlzLnN0b3JlLmZpbmQoIm5vdGlmaWNhdGlvbiIse3VzZXJuYW1lOmV9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSxlLnNldCgidXNlciIsdGhpcy5tb2RlbEZvcigidXNlciIpKSx0aGlzLnZpZXdpbmdBY3Rpb25UeXBlKC0xKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtYXJjaGl2ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1wcml2YXRlLW1lc3NhZ2VzLXJvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJhcmNoaXZlIiwicHJpdmF0ZS1tZXNzYWdlcy1hcmNoaXZlIiwiYXJjaGl2ZSIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy1ncm91cC1hcmNoaXZlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXByaXZhdGUtbWVzc2FnZXMtcm91dGUiLCJkaXNjb3Vyc2UvbGliL2NhY2hlZC10b3BpYy1saXN0Il0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImdyb3VwcyIsInByaXZhdGUtbWVzc2FnZXMtZ3JvdXBzIikuZXh0ZW5kKHtncm91cE5hbWU6bnVsbCx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ncm91cE5hbWU7aWYoZSlyZXR1cm5bZS5jYXBpdGFsaXplKCkrIiAiK0kxOG4udCgidXNlci5tZXNzYWdlcy5hcmNoaXZlIiksSTE4bi50KCJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiKV19LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PSJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy1ncm91cC8iK3RoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIikrIi8iK2UubmFtZSsiL2FyY2hpdmUiLG49KDAsaS5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLHQpO3JldHVybiBufHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOnR9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiZmlsdGVyIikuc3BsaXQoIi8iKSxuPXRbdC5sZW5ndGgtMl07dGhpcy5zZXQoImdyb3VwTmFtZSIsbik7dmFyIGk9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgiZ3JvdXBzIikscz1fLmZpcnN0KGkuZmlsdGVyQnkoIm5hbWUiLG4pKTt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItcHJpdmF0ZS1tZXNzYWdlcyIpLnNldCgiZ3JvdXAiLHMpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5nZXQoImZpbHRlciIpLnNwbGl0KCIvIiksaT1uW24ubGVuZ3RoLTJdO3RoaXMuY29udHJvbGxlckZvcigidXNlci1wcml2YXRlLW1lc3NhZ2VzIikuc2V0KCJncm91cEZpbHRlciIsaSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImFyY2hpdmUiLCEwKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS5zdWJzY3JpYmUoIi9wcml2YXRlLW1lc3NhZ2VzL2dyb3VwLyIraSsiL2FyY2hpdmUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtZ3JvdXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSIsImRpc2NvdXJzZS9saWIvY2FjaGVkLXRvcGljLWxpc3QiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiZ3JvdXBzIiwicHJpdmF0ZS1tZXNzYWdlcy1ncm91cHMiKS5leHRlbmQoe2dyb3VwTmFtZTpudWxsLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdyb3VwTmFtZTtpZihlKXJldHVybltlLmNhcGl0YWxpemUoKSxJMThuLnQoInVzZXIucHJpdmF0ZV9tZXNzYWdlcyIpXX0sbW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9InRvcGljcy9wcml2YXRlLW1lc3NhZ2VzLWdyb3VwLyIrdGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiLyIrZS5uYW1lLG49KDAsaS5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLHQpO3JldHVybiBufHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOnR9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXt2YXIgdD1fLmxhc3QoZS5nZXQoImZpbHRlciIpLnNwbGl0KCIvIikpO3RoaXMuc2V0KCJncm91cE5hbWUiLHQpO3ZhciBuPXRoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoImdyb3VwcyIpLGk9Xy5maXJzdChuLmZpbHRlckJ5KCJuYW1lIix0KSk7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImdyb3VwIixpKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBuPV8ubGFzdCh0LmdldCgiZmlsdGVyIikuc3BsaXQoIi8iKSk7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImdyb3VwRmlsdGVyIixuKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItcHJpdmF0ZS1tZXNzYWdlcyIpLnNldCgiYXJjaGl2ZSIsITEpLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnN1YnNjcmliZSgiL3ByaXZhdGUtbWVzc2FnZXMvZ3JvdXAvIituKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtaW5kZXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiaW5kZXgiLCJwcml2YXRlLW1lc3NhZ2VzIiwiaW5ib3giKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtc2VudCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1wcml2YXRlLW1lc3NhZ2VzLXJvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJzZW50IiwicHJpdmF0ZS1tZXNzYWdlcy1zZW50Iiwic2VudCIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgidGFncyIsInByaXZhdGUtbWVzc2FnZXMtdGFncyIpLmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoInRhZ0lkIixlLmlkKTt2YXIgdD10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy10YWdzLyIrdCsiLyIrZS5pZH0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWVfbG93ZXIiKTtyZXR1cm4oMCxpLmFqYXgpKCIvdGFncy9wZXJzb25hbF9tZXNzYWdlcy8iK2UpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFncy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdC5jcmVhdGUoZSl9KX0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuW0kxOG4udCgidGFnZ2luZy50YWdzIiksSTE4bi50KCJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiKV19LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3RoaXMuY29udHJvbGxlckZvcigidXNlci1wcml2YXRlLW1lc3NhZ2VzLXRhZ3MiKS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHNvcnRQcm9wZXJ0aWVzOnRoaXMuc2l0ZVNldHRpbmdzLnRhZ3Nfc29ydF9hbHBoYWJldGljYWxseT9bImlkIl06WyJjb3VudDpkZXNjIiwiaWQiXSx0YWdzRm9yVXNlcjp0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXRQcm9wZXJ0aWVzKHtzaG93VG9nZ2xlQnVsa1NlbGVjdDohMSxwbVZpZXc6InRhZ3MifSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1wcml2YXRlLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvZHJhZnQiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIl0sZnVuY3Rpb24oZSx0LGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9tZXNzYWdlcyIpfSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKTtlLnNldCgibW9kZWwiLHQpLHRoaXMuY3VycmVudFVzZXImJmkuZGVmYXVsdC5nZXQoIm5ld19wcml2YXRlX21lc3NhZ2UiKS50aGVuKGZ1bmN0aW9uKGUpe2UuZHJhZnQmJm4ub3Blbih7ZHJhZnQ6ZS5kcmFmdCxkcmFmdEtleTpzLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVksaWdub3JlSWZDaGFuZ2VkOiEwLGRyYWZ0U2VxdWVuY2U6ZS5kcmFmdF9zZXF1ZW5jZX0pfSl9LGFjdGlvbnM6e3dpbGxUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXIiKS5zZXQoInBtVmlldyIsbnVsbCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsbW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIGUuZ2V0KCJwcm9maWxlX2hpZGRlbiIpP3RoaXMucmVwbGFjZVdpdGgoInVzZXIucHJvZmlsZS1oaWRkZW4iKTplLnN1bW1hcnkoKX0sYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgiaW5kZXhTdHJlYW0iLCEwKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubW9kZWxGb3IoInVzZXIiKS51c2VybmFtZTtpZihlKXJldHVybltJMThuLnQoInVzZXIucHJvZmlsZSIpLGVdfSxhY3Rpb25zOnt3aWxsVHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgdD0idXNlci5zdW1tYXJ5Ij09PWUudGFyZ2V0TmFtZTtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuc2V0KCJpbmRleFN0cmVhbSIsdCksITB9LHVuZG9SZXZva2VBcGlLZXk6ZnVuY3Rpb24oZSl7ZS51bmRvUmV2b2tlKCl9LHJldm9rZUFwaUtleTpmdW5jdGlvbihlKXtlLnJldm9rZSgpfX0sYmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnNpdGVTZXR0aW5ncy5oaWRlX3VzZXJfcHJvZmlsZXNfZnJvbV9wdWJsaWMmJiF0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkiKX0sbW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJmUudXNlcm5hbWUudG9Mb3dlckNhc2UoKT09PXRoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXI/dGhpcy5jdXJyZW50VXNlcjpuLmRlZmF1bHQuY3JlYXRlKHt1c2VybmFtZTplbmNvZGVVUklDb21wb25lbnQoZS51c2VybmFtZSl9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIHQuZmluZERldGFpbHMoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmluZFN0YWZmSW5mbygpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZS5yZXBsYWNlV2l0aCgiLzQwNCIpfSl9LHNlcmlhbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gZT97dXNlcm5hbWU6KGUudXNlcm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpfTp7fX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0Iix0LnNlYXJjaENvbnRleHQpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgdD10aGlzLm1vZGVsRm9yKCJ1c2VyIik7dGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL3UvIit0LnVzZXJuYW1lX2xvd2VyLGZ1bmN0aW9uKGUpe3JldHVybiB0LmxvYWRVc2VyQWN0aW9uKGUpfSl9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpO3RoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3UvIitlLnVzZXJuYW1lX2xvd2VyKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3F1ZXJ5UGFyYW1zOntwZXJpb2Q6e3JlZnJlc2hNb2RlbDohMH0sb3JkZXI6e3JlZnJlc2hNb2RlbDohMH0sYXNjOntyZWZyZXNoTW9kZWw6ITB9LG5hbWU6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxncm91cDp7cmVmcmVzaE1vZGVsOiEwfSxleGNsdWRlX3VzZXJuYW1lczp7cmVmcmVzaE1vZGVsOiEwfX0scmVmcmVzaFF1ZXJ5V2l0aG91dFRyYW5zaXRpb246ITAsdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImRpcmVjdG9yeS50aXRsZSIpfSxyZXNldENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0JiZlLnNldFByb3BlcnRpZXMoe3BlcmlvZDoid2Vla2x5IixvcmRlcjoibGlrZXNfcmVjZWl2ZWQiLGFzYzpudWxsLG5hbWU6IiIsZ3JvdXA6bnVsbCxleGNsdWRlX3VzZXJuYW1lczpudWxsfSl9LGJlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5zaXRlU2V0dGluZ3MuaGlkZV91c2VyX3Byb2ZpbGVzX2Zyb21fcHVibGljJiYhdGhpcy5jdXJyZW50VXNlciYmdGhpcy5yZXBsYWNlV2l0aCgiZGlzY292ZXJ5Iil9LG1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJhbXM9ZSx0aGlzLnN0b3JlLmZpbmQoImRpcmVjdG9yeUl0ZW0iLGUpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9wYXJhbXM7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHBlcmlvZDpuLnBlcmlvZCxuYW1lSW5wdXQ6bi5uYW1lfSl9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VycyIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvcHJlLWluaXRpYWxpemVycy9keW5hbWljLXJvdXRlLWJ1aWxkZXJzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLWNhdGVnb3J5LXJvdXRlIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC10b3BpYy1yb3V0ZSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiLCJkaXNjb3Vyc2Uvcm91dGVzL3RhZ3Mtc2hvdyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsaSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXthZnRlcjoiaW5qZWN0LWRpc2NvdXJzZS1vYmplY3RzIixuYW1lOiJkeW5hbWljLXJvdXRlLWJ1aWxkZXJzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUsbil7bi5EaXNjb3ZlcnlDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLG4uRGlzY292ZXJ5UGFyZW50Q2F0ZWdvcnlDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxuLkRpc2NvdmVyeUNhdGVnb3J5Tm9uZUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLG4uRGlzY292ZXJ5Q2F0ZWdvcnlXaXRoSURDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxuLkRpc2NvdmVyeUNhdGVnb3J5Um91dGU9KDAsaS5kZWZhdWx0KSgiZGVmYXVsdCIpLG4uRGlzY292ZXJ5UGFyZW50Q2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iiksbi5EaXNjb3ZlcnlDYXRlZ29yeU5vbmVSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iix7bm9fc3ViY2F0ZWdvcmllczohMH0pLG4uRGlzY292ZXJ5Q2F0ZWdvcnlXaXRoSURSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iik7dmFyIHQ9YS5kZWZhdWx0LmN1cnJlbnQoKTt0LmdldCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYXBpdGFsaXplKCk7blsiRGlzY292ZXJ5Iit0KyJDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiQ2F0ZWdvcnlDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiUGFyZW50Q2F0ZWdvcnlDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiQ2F0ZWdvcnlOb25lQ29udHJvbGxlciJdPW8uZGVmYXVsdC5leHRlbmQoKSxuWyJEaXNjb3ZlcnkiK3QrIlJvdXRlIl09KDAscy5kZWZhdWx0KShlKSxuWyJEaXNjb3ZlcnkiK3QrIkNhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKGUpLG5bIkRpc2NvdmVyeSIrdCsiUGFyZW50Q2F0ZWdvcnlSb3V0ZSJdPSgwLGkuZGVmYXVsdCkoZSksblsiRGlzY292ZXJ5Iit0KyJDYXRlZ29yeU5vbmVSb3V0ZSJdPSgwLGkuZGVmYXVsdCkoZSx7bm9fc3ViY2F0ZWdvcmllczohMH0pfSksRGlzY291cnNlLkRpc2NvdmVyeVRvcENvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BQYXJlbnRDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BDYXRlZ29yeU5vbmVDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wUm91dGU9KDAscy5kZWZhdWx0KSgidG9wIix7YWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJzaG91bGRfYmVfcmVkaXJlY3RlZF90b190b3AiLCExKSxsLmRlZmF1bHQuY3VycmVudFByb3AoInJlZGlyZWN0ZWRfdG9fdG9wLnJlYXNvbiIsbnVsbCksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wQ2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJ0b3AiKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wUGFyZW50Q2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJ0b3AiKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wQ2F0ZWdvcnlOb25lUm91dGU9KDAsaS5kZWZhdWx0KSgidG9wIix7bm9fc3ViY2F0ZWdvcmllczohMH0pLHQuZ2V0KCJwZXJpb2RzIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmNhcGl0YWxpemUoKTtuWyJEaXNjb3ZlcnlUb3AiK3QrIkNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJDYXRlZ29yeUNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJQYXJlbnRDYXRlZ29yeUNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJDYXRlZ29yeU5vbmVDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeVRvcCIrdCsiUm91dGUiXT0oMCxzLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIkNhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIlBhcmVudENhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIkNhdGVnb3J5Tm9uZVJvdXRlIl09KDAsaS5kZWZhdWx0KSgidG9wLyIrZSx7bm9fc3ViY2F0ZWdvcmllczohMH0pfSksbi5UYWdzU2hvd0NhdGVnb3J5Um91dGU9ci5kZWZhdWx0LmV4dGVuZCgpLG4uVGFnc1Nob3dDYXRlZ29yeU5vbmVSb3V0ZT1yLmRlZmF1bHQuZXh0ZW5kKHtub1N1YmNhdGVnb3JpZXM6ITB9KSxuLlRhZ3NTaG93UGFyZW50Q2F0ZWdvcnlSb3V0ZT1yLmRlZmF1bHQuZXh0ZW5kKCksbi5UYWdTaG93Um91dGU9ci5kZWZhdWx0LHQuZ2V0KCJmaWx0ZXJzIikuZm9yRWFjaChmdW5jdGlvbihlKXtuWyJUYWdzU2hvdyIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnU2hvdyIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnc1Nob3dDYXRlZ29yeSIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnc1Nob3dOb25lQ2F0ZWdvcnkiK2UuY2FwaXRhbGl6ZSgpKyJSb3V0ZSJdPXIuZGVmYXVsdC5leHRlbmQoe25hdk1vZGU6ZSxub1N1YmNhdGVnb3JpZXM6ITB9KSxuWyJUYWdzU2hvd1BhcmVudENhdGVnb3J5IitlLmNhcGl0YWxpemUoKSsiUm91dGUiXT1yLmRlZmF1bHQuZXh0ZW5kKHtuYXZNb2RlOmV9KX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL2luamVjdC1kaXNjb3Vyc2Utb2JqZWN0cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL21vZGVscy9zZXNzaW9uIiwiZGlzY291cnNlL2xpYi9rZXktdmFsdWUtc3RvcmUiLCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIiwiZGlzY291cnNlL2xpYi9kaXNjb3Vyc2UtbG9jYXRpb24iLCJkaXNjb3Vyc2UiLCJkaXNjb3Vyc2Uvc2VydmljZXMvc2VhcmNoIiwiZGlzY291cnNlL21vZGVscy90b3BpYy10cmFja2luZy1zdGF0ZSIsImRpc2NvdXJzZS9saWIvc2NyZWVuLXRyYWNrIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxjLGQscCxtLGYsaCxiLGcsdix5KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfPVsiY29udHJvbGxlciIsImNvbXBvbmVudCIsInJvdXRlIiwibW9kZWwiLCJhZGFwdGVyIl07ZS5kZWZhdWx0PXtuYW1lOiJpbmplY3QtZGlzY291cnNlLW9iamVjdHMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSx0KXtfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsImFwcEV2ZW50cyIsInNlcnZpY2U6YXBwLWV2ZW50cyIpfSksdC5yZWdpc3Rlcigic3RvcmU6bWFpbiIscC5kZWZhdWx0KSx0Lmhhc1JlZ2lzdHJhdGlvbigic2VydmljZTpzdG9yZSIpfHwodC5yZWdpc3Rlcigic2VydmljZTpzdG9yZSIscC5kZWZhdWx0KSxfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsInN0b3JlIiwic2VydmljZTpzdG9yZSIpfSkpO3ZhciBuPXdpbmRvdy5NZXNzYWdlQnVzO3QucmVnaXN0ZXIoIm1lc3NhZ2UtYnVzOm1haW4iLG4se2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJtZXNzYWdlQnVzIiwibWVzc2FnZS1idXM6bWFpbiIpfSk7dmFyIGk9eS5kZWZhdWx0LmN1cnJlbnQoKTt0LnJlZ2lzdGVyKCJjdXJyZW50LXVzZXI6bWFpbiIsaSx7aW5zdGFudGlhdGU6ITF9KSxmLmRlZmF1bHQuY3VycmVudFVzZXI9aTt2YXIgcz1iLmRlZmF1bHQuY3JlYXRlKHttZXNzYWdlQnVzOm4sY3VycmVudFVzZXI6aX0pO3QucmVnaXN0ZXIoInRvcGljLXRyYWNraW5nLXN0YXRlOm1haW4iLHMse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJ0b3BpY1RyYWNraW5nU3RhdGUiLCJ0b3BpYy10cmFja2luZy1zdGF0ZTptYWluIil9KTt2YXIgbz1mLmRlZmF1bHQuU2l0ZVNldHRpbmdzO3QucmVnaXN0ZXIoInNpdGUtc2V0dGluZ3M6bWFpbiIsbyx7aW5zdGFudGlhdGU6ITF9KSxfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsInNpdGVTZXR0aW5ncyIsInNpdGUtc2V0dGluZ3M6bWFpbiIpfSk7dmFyIHI9di5kZWZhdWx0LmN1cnJlbnQoKTt0LnJlZ2lzdGVyKCJzaXRlOm1haW4iLHIse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJzaXRlIiwic2l0ZTptYWluIil9KSx0LnJlZ2lzdGVyKCJzZWFyY2gtc2VydmljZTptYWluIixoLmRlZmF1bHQpLF8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2VhcmNoU2VydmljZSIsInNlYXJjaC1zZXJ2aWNlOm1haW4iKX0pO3ZhciBhPWMuZGVmYXVsdC5jdXJyZW50KCk7dC5yZWdpc3Rlcigic2Vzc2lvbjptYWluIixhLHtpbnN0YW50aWF0ZTohMX0pLF8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2Vzc2lvbiIsInNlc3Npb246bWFpbiIpfSk7dmFyIGw9bmV3IGcuZGVmYXVsdChzLG8sYSxpKTt0LnJlZ2lzdGVyKCJzY3JlZW4tdHJhY2s6bWFpbiIsbCx7aW5zdGFudGlhdGU6ITF9KSxbImNvbXBvbmVudCIsInJvdXRlIl0uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2NyZWVuVHJhY2siLCJzY3JlZW4tdHJhY2s6bWFpbiIpfSksaSYmWyJjb21wb25lbnQiLCJyb3V0ZSIsImNvbnRyb2xsZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuaW5qZWN0KGUsImN1cnJlbnRVc2VyIiwiY3VycmVudC11c2VyOm1haW4iKX0pLHQucmVnaXN0ZXIoImxvY2F0aW9uOmRpc2NvdXJzZS1sb2NhdGlvbiIsbS5kZWZhdWx0KTt2YXIgdT1uZXcgZC5kZWZhdWx0KCJkaXNjb3Vyc2VfIik7dC5yZWdpc3Rlcigia2V5LXZhbHVlLXN0b3JlOm1haW4iLHUse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJrZXlWYWx1ZVN0b3JlIiwia2V5LXZhbHVlLXN0b3JlOm1haW4iKX0pLCgwLGIuc3RhcnRUcmFja2luZykocyl9fX0pLGRlZmluZSgiZGlzY291cnNlL3ByZS1pbml0aWFsaXplcnMvbWFwLXJvdXRlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL21hcHBpbmctcm91dGVyIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToibWFwLXJvdXRlcyIsYWZ0ZXI6ImluamVjdC1kaXNjb3Vyc2Utb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlLHQpe3QudW5yZWdpc3Rlcigicm91dGVyOm1haW4iKSx0LnJlZ2lzdGVyKCJyb3V0ZXI6bWFpbiIsKDAsaS5tYXBSb3V0ZXMpKCkpO3ZhciBuPW58fEVtYmVyLkFwcGxpY2F0aW9uLnByb3RvdHlwZS5idWlsZEluc3RhbmNlO0VtYmVyLkFwcGxpY2F0aW9uLnByb3RvdHlwZS5idWlsZEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVpbGRSZWdpc3RyeSgpLG4uYXBwbHkodGhpcyl9fX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL3JlZ2lzdGVyLWRvbS10ZW1wbGF0ZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJyZWdpc3Rlci1kaXNjb3Vyc2UtZG9tLXRlbXBsYXRlcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpeyQoJ3NjcmlwdFt0eXBlPSJ0ZXh0L3gtaGFuZGxlYmFycyJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBlPSQodGhpcyksdD1lLmF0dHIoIm5hbWUiKXx8ZS5kYXRhKCJ0ZW1wbGF0ZS1uYW1lIik7d2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZygiV0FSTklORzogeW91IGhhdmUgYSBoYW5kbGViYXJzIHRlbXBsYXRlIG5hbWVkICIrdCsiIHRoaXMgaXMgYW4gdW5zdXBwb3J0ZWQgc2V0dXAsIHByZWNvbXBpbGUgeW91ciB0ZW1wbGF0ZXMiKSxlLnJlbW92ZSgpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL3ByZS1pbml0aWFsaXplcnMvc25pZmYtY2FwYWJpbGl0aWVzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic25pZmYtY2FwYWJpbGl0aWVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT0kKCJodG1sIikscz0xPG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB3aW5kb3csbz17dG91Y2g6c307aS5hZGRDbGFzcyhzPyJ0b3VjaCBkaXNjb3Vyc2UtdG91Y2giOiJuby10b3VjaCBkaXNjb3Vyc2Utbm8tdG91Y2giKSxuYXZpZ2F0b3ImJigobj1uYXZpZ2F0b3IudXNlckFnZW50KSYmKG8uaXNBbmRyb2lkPS0xIT09bi5pbmRleE9mKCJBbmRyb2lkIiksby5pc1dpbnBob25lPS0xIT09bi5pbmRleE9mKCJXaW5kb3dzIFBob25lIiksby5pc09wZXJhPSEhd2luZG93Lm9wZXJhfHwwPD1uLmluZGV4T2YoIiBPUFIvIiksby5pc0ZpcmVmb3g9InVuZGVmaW5lZCIhPXR5cGVvZiBJbnN0YWxsVHJpZ2dlcixvLmlzU2FmYXJpPTA8T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHdpbmRvdy5IVE1MRWxlbWVudCkuaW5kZXhPZigiQ29uc3RydWN0b3IiKXx8IltvYmplY3QgU2FmYXJpUmVtb3RlTm90aWZpY2F0aW9uXSI9PT0oIXdpbmRvdy5zYWZhcml8fHNhZmFyaS5wdXNoTm90aWZpY2F0aW9uKS50b1N0cmluZygpLG8uaXNDaHJvbWU9ISF3aW5kb3cuY2hyb21lJiYhby5pc09wZXJhLG8uaXNJRTExPSEhbi5tYXRjaCgvVHJpZGVudC4qcnZcOjExXC4vKSxvLmNhblBhc3RlSW1hZ2VzPW8uaXNDaHJvbWV8fG8uaXNGaXJlZm94KSxvLmlzSXBhZE9TPS0xIT09bi5pbmRleE9mKCJNYWMgT1MiKSYmIS9pUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmcyxvLmlzSU9TPSgvaVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl8fG8uaXNJcGFkT1MpJiYhd2luZG93Lk1TU3RyZWFtLG8uaGFzQ29udGFjdFBpY2tlcj0iY29udGFjdHMiaW4gbmF2aWdhdG9yJiYiQ29udGFjdHNNYW5hZ2VyImluIHdpbmRvdyxvLmNhblZpYnJhdGU9InZpYnJhdGUiaW4gbmF2aWdhdG9yKSxvLmhpZ2hSZXM9MTI4MDw9d2luZG93LnNjcmVlbi53aWR0aCx0LnJlZ2lzdGVyKCJjYXBhYmlsaXRpZXM6bWFpbiIsbyx7aW5zdGFudGlhdGU6ITF9KSx0LmluamVjdCgidmlldyIsImNhcGFiaWxpdGllcyIsImNhcGFiaWxpdGllczptYWluIiksdC5pbmplY3QoImNvbnRyb2xsZXIiLCJjYXBhYmlsaXRpZXMiLCJjYXBhYmlsaXRpZXM6bWFpbiIpLHQuaW5qZWN0KCJjb21wb25lbnQiLCJjYXBhYmlsaXRpZXMiLCJjYXBhYmlsaXRpZXM6bWFpbiIpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL3N2Zy1zcHJpdGUtZm9udGF3ZXNvbWUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc3ZnLXNwcml0ZS1sb2FkZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzdmctc3ByaXRlLWZvbnRhd2Vzb21lIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7RGlzY291cnNlJiZEaXNjb3Vyc2UuU3ZnU3ByaXRlUGF0aCYmdC5kZWZhdWx0LmxvYWQoRGlzY291cnNlLlN2Z1Nwcml0ZVBhdGgsImZvbnRhd2Vzb21lIil9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9hc3NldC12ZXJzaW9uIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImFzc2V0LXZlcnNpb24iLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD0hMSxuPWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7biYmbi5zdWJzY3JpYmUoIi9nbG9iYWwvYXNzZXQtdmVyc2lvbiIsZnVuY3Rpb24oZSl7RGlzY291cnNlLnNldCgiYXNzZXRWZXJzaW9uIixlKSwhdCYmRGlzY291cnNlLmdldCgicmVxdWlyZXNSZWZyZXNoIikmJigoMCxpLmxhdGVyKShmdW5jdGlvbigpe2Jvb3Rib3guY29uZmlybShJMThuLnQoImFzc2V0c19jaGFuZ2VkX2NvbmZpcm0iKSxmdW5jdGlvbihlKXtlJiZkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKX0pfSw4NjRlNSksdD0hMCl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2F1dGgtY29tcGxldGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiYXV0aC1jb21wbGV0ZSIsYWZ0ZXI6ImluamVjdC1vYmplY3RzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PXZvaWQgMDtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1hdXRoZW50aWNhdGlvbiIpJiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1hdXRoZW50aWNhdGlvbiIpLmRhdGFzZXQuYXV0aGVudGljYXRpb25EYXRhKSx0JiZlLmxvb2t1cCgicm91dGVyOm1haW4iKS5vbmUoImRpZFRyYW5zaXRpb24iLGZ1bmN0aW9uKCl7KDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuYXV0aGVudGljYXRpb25Db21wbGV0ZShKU09OLnBhcnNlKHQpKX0pfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9hdXRvLWxvYWQtbW9kdWxlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMtaGVscGVycyJdLGZ1bmN0aW9uKGUsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUsdCl7T2JqZWN0LmtleXMocmVxdWlyZWpzLmVudHJpZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7L1wvaGVscGVyc1wvLy50ZXN0KGUpJiYhLy10ZXN0Ly50ZXN0KGUpJiZyZXF1aXJlanMoZSxudWxsLG51bGwsITApLC9cL3dpZGdldHNcLy8udGVzdChlKSYmIS8tdGVzdC8udGVzdChlKSYmcmVxdWlyZWpzKGUsbnVsbCxudWxsLCEwKX0pLCgwLG4ucmVnaXN0ZXJIZWxwZXJzKSh0KSwoMCxzLnJlZ2lzdGVyUmF3SGVscGVycykoaS5kZWZhdWx0LEhhbmRsZWJhcnMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmF1dG9Mb2FkTW9kdWxlcz10LGUuZGVmYXVsdD17bmFtZToiYXV0by1sb2FkLW1vZHVsZXMiLGluaXRpYWxpemU6dH19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvYXZhdGFyLXNlbGVjdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJhdmF0YXItc2VsZWN0Iixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0YWJsZUF2YXRhcnNFbmFibGVkPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKS5zZWxlY3RhYmxlX2F2YXRhcnNfZW5hYmxlZCxlLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIikub24oInNob3ctYXZhdGFyLXNlbGVjdCIsdGhpcywiX3Nob3dBdmF0YXJTZWxlY3QiKX0sX3Nob3dBdmF0YXJTZWxlY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hdmF0YXJfdGVtcGxhdGUsbj0idXBsb2FkZWQiO3Q9PT1lLnN5c3RlbV9hdmF0YXJfdGVtcGxhdGU/bj0ic3lzdGVtIjp0PT09ZS5ncmF2YXRhcl9hdmF0YXJfdGVtcGxhdGUmJihuPSJncmF2YXRhciIpO3ZhciBpPSgwLHMuZGVmYXVsdCkoImF2YXRhci1zZWxlY3RvciIpO2kuc2V0UHJvcGVydGllcyh7dXNlcjplLHNlbGVjdGVkOm59KSx0aGlzLnNlbGVjdGFibGVBdmF0YXJzRW5hYmxlZCYmKDAsby5hamF4KSgiL3NpdGUvc2VsZWN0YWJsZS1hdmF0YXJzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBpLnNldCgic2VsZWN0YWJsZUF2YXRhcnMiLGUpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9iYWRnaW5nIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiYmFkZ2luZyIsYWZ0ZXI6Im1lc3NhZ2UtYnVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0OyFuYXZpZ2F0b3Iuc2V0QXBwQmFkZ2V8fCh0PWUubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpKSYmKHRoaXMubm90aWZpY2F0aW9ucz10LnVucmVhZF9ub3RpZmljYXRpb25zK3QudW5yZWFkX3ByaXZhdGVfbWVzc2FnZXMsZS5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLm9uKCJub3RpZmljYXRpb25zOmNoYW5nZWQiLHRoaXMsIl91cGRhdGVCYWRnZSIpKX0sX3VwZGF0ZUJhZGdlOmZ1bmN0aW9uKCl7bmF2aWdhdG9yLnNldEFwcEJhZGdlKHRoaXMubm90aWZpY2F0aW9ucyl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9iYW5uZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJiYW5uZXIiLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1zLmRlZmF1bHQuY3JlYXRlKG8uZGVmYXVsdC5nZXQoImJhbm5lciIpfHx7fSksbj1lLmxvb2t1cCgic2l0ZTptYWluIik7bi5zZXQoImJhbm5lciIsdCk7dmFyIGk9ZS5sb29rdXAoIm1lc3NhZ2UtYnVzOm1haW4iKTtpJiZpLnN1YnNjcmliZSgiL3NpdGUvYmFubmVyIixmdW5jdGlvbihlKXtuLnNldCgiYmFubmVyIixzLmRlZmF1bHQuY3JlYXRlKGV8fHt9KSl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2NsaWNrLWludGVyY2VwdG9yIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJjbGljay1pbnRlcmNlcHRvciIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpeyQoIiNtYWluIikub24oImNsaWNrLmRpc2NvdXJzZSIsImEiLHQuZGVmYXVsdCksJCh3aW5kb3cpLm9uKCJoYXNoY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHQucm91dGVUbyhkb2N1bWVudC5sb2NhdGlvbi5oYXNoKX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvY3NyZi10b2tlbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdD0hMSxuPSQuQ2FsbGJhY2tzKCk7ZS5kZWZhdWx0PXtuYW1lOiJjc3JmLXRva2VuIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciBpPWUubG9va3VwKCJzZXNzaW9uOm1haW4iKTtpLnNldCgiY3NyZlRva2VuIiwkKCJtZXRhW25hbWU9Y3NyZi10b2tlbl0iKS5hdHRyKCJjb250ZW50IikpLHR8fCgkLmFqYXhQcmVmaWx0ZXIobi5maXJlKSx0PSEwKSxuLmFkZChmdW5jdGlvbihlLHQsbil7ZS5jcm9zc0RvbWFpbnx8bi5zZXRSZXF1ZXN0SGVhZGVyKCJYLUNTUkYtVG9rZW4iLGkuZ2V0KCJjc3JmVG9rZW4iKSl9KX0sdGVhcmRvd246ZnVuY3Rpb24oKXtuLmVtcHR5KCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9kLXBvcG92ZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZC1wb3BvdmVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZC1wb3BvdmVyIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2UubG9va3VwKCJyb3V0ZXI6bWFpbiIpLm9uKCJyb3V0ZVdpbGxDaGFuZ2UiLHQuaGlkZVBvcG92ZXIpLCQoIiNtYWluIikub24oImNsaWNrLmQtcG9wb3ZlciBtb3VzZWVudGVyLmQtcG9wb3ZlciIsdC5QT1BPVkVSX1NFTEVDVE9SUyxmdW5jdGlvbihlKXtyZXR1cm4oMCx0LnNob3dQb3BvdmVyKShlKX0pLm9uKCJtb3VzZWxlYXZlLmQtcG9wb3ZlciIsdC5QT1BPVkVSX1NFTEVDVE9SUyxmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmhpZGVQb3BvdmVyKShlKX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvZW1iZXItZXZlbnRzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZW1iZXItZXZlbnRzIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7RW1iZXIuRXZlbnREaXNwYXRjaGVyLnJlb3Blbih7ZXZlbnRzOnt0b3VjaHN0YXJ0OiJ0b3VjaFN0YXJ0Iix0b3VjaGVuZDoidG91Y2hFbmQiLHRvdWNoY2FuY2VsOiJ0b3VjaENhbmNlbCIsa2V5ZG93bjoia2V5RG93biIsa2V5dXA6ImtleVVwIixrZXlwcmVzczoia2V5UHJlc3MiLG1vdXNlZG93bjoibW91c2VEb3duIixtb3VzZXVwOiJtb3VzZVVwIixjb250ZXh0bWVudToiY29udGV4dE1lbnUiLGNsaWNrOiJjbGljayIsZGJsY2xpY2s6ImRvdWJsZUNsaWNrIixmb2N1c2luOiJmb2N1c0luIixmb2N1c291dDoiZm9jdXNPdXQiLG1vdXNlZW50ZXI6Im1vdXNlRW50ZXIiLG1vdXNlbGVhdmU6Im1vdXNlTGVhdmUiLHN1Ym1pdDoic3VibWl0IixpbnB1dDoiaW5wdXQiLGNoYW5nZToiY2hhbmdlIixkcmFnc3RhcnQ6ImRyYWdTdGFydCIsZHJhZzoiZHJhZyIsZHJhZ2VudGVyOiJkcmFnRW50ZXIiLGRyYWdsZWF2ZToiZHJhZ0xlYXZlIixkcmFnb3ZlcjoiZHJhZ092ZXIiLGRyb3A6ImRyb3AiLGRyYWdlbmQ6ImRyYWdFbmQifX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvZW5hYmxlLWVtb2ppIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3BsdWdpbi1hcGkiLCJwcmV0dHktdGV4dC9lbW9qaSIsInByZWxvYWQtc3RvcmUiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZW5hYmxlLWVtb2ppIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2UubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKS5lbmFibGVfZW1vamkmJigoMCx0LndpdGhQbHVnaW5BcGkpKCIwLjEiLGZ1bmN0aW9uKGUpe2Uub25Ub29sYmFyQ3JlYXRlKGZ1bmN0aW9uKGUpe2UuYWRkQnV0dG9uKHtpZDoiZW1vamkiLGdyb3VwOiJleHRyYXMiLGljb246ImZhci1zbWlsZSIsYWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUuY29udGV4dC5zZW5kKCJlbW9qaSIpfSx0aXRsZToiY29tcG9zZXIuZW1vamkifSl9KX0pLChpLmRlZmF1bHQuZ2V0KCJjdXN0b21FbW9qaSIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyRW1vamkpKGUubmFtZSxlLnVybCl9KSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9lbnN1cmUtbWF4LWltYWdlLWRpbWVuc2lvbnMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJlbnN1cmUtaW1hZ2UtZGltZW5zaW9ucyIsYWZ0ZXI6Im1vYmlsZSIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3dpbmRvdyYmKHQ9RGlzY291cnNlLlNpdGVTZXR0aW5ncy5tYXhfaW1hZ2Vfd2lkdGgsbj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9pbWFnZV9oZWlnaHQsZS5sb29rdXAoInNpdGU6bWFpbiIpLm1vYmlsZVZpZXcmJih0PSQod2luZG93KS53aWR0aCgpLTIwKSwkKCc8c3R5bGUgaWQ9ImltYWdlLXNpemluZy1oYWNrIj4jcmVwbHktY29udHJvbCAuZC1lZGl0b3ItcHJldmlldyBpbWc6bm90KC50aHVtYm5haWwpLCAuY29va2VkIGltZzpub3QoLnRodW1ibmFpbCkgeycrKCJtYXgtd2lkdGg6Iit0KyJweDttYXgtaGVpZ2h0OiIrbisicHg7IikrIn08L3N0eWxlPiIpLmFwcGVuZFRvKCJoZWFkIikpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvaW5qZWN0LW9iamVjdHMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe319fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2pxdWVyeS1wbHVnaW5zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2F1dG9jb21wbGV0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImpxdWVyeS1wbHVnaW5zIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7Ym9vdGJveC5hbmltYXRlKCExKSxib290Ym94LmJhY2tkcm9wKCEwKSwkLmZuLmF1dG9jb21wbGV0ZT10LmRlZmF1bHR9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9rZXlib2FyZC1zaG9ydGN1dHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIva2V5Ym9hcmQtc2hvcnRjdXRzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToia2V5Ym9hcmQtc2hvcnRjdXRzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3QuZGVmYXVsdC5iaW5kRXZlbnRzKE1vdXNldHJhcCxlKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2xpdmUtZGV2ZWxvcG1lbnQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi90aGVtZS1zZWxlY3RvciIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxpLHMscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImxpdmUtZGV2ZWxvcG1lbnQiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIG8sdCxuPWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7d2luZG93Lmhpc3RvcnkmJjA9PT13aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIj9wcmV2aWV3X3RoZW1lX2lkPSIpJiYobz1wYXJzZUludCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNsaWNlKDE4KS5zcGxpdCgiJiIpWzBdLDEwKSxpc05hTihvKXx8KCh0PWZ1bmN0aW9uKGUpe3ZhciBzPXdpbmRvdy5oaXN0b3J5W2VdO3dpbmRvdy5oaXN0b3J5W2VdPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaTtyZXR1cm4tMT09PW4uaW5kZXhPZigicHJldmlld190aGVtZV9pZD0iKSYmKGk9LTE9PT1uLmluZGV4T2YoIj8iKT8iPyI6IiYiLG49bitpKyJwcmV2aWV3X3RoZW1lX2lkPSIrbykscy5jYWxsKHdpbmRvdy5oaXN0b3J5LGUsdCxuKX19KSgicmVwbGFjZVN0YXRlIiksdCgicHVzaFN0YXRlIikpKSwkKCJoZWFkZXIuY3VzdG9tIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PSQodGhpcyk7cmV0dXJuIG4uc3Vic2NyaWJlKCIvaGVhZGVyLWNoYW5nZS8iKyQodGhpcykuZGF0YSgiaWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC5odG1sKGUpfSl9KSwiZGV2ZWxvcG1lbnQiPT09RGlzY291cnNlLkVudmlyb25tZW50JiYidGVzdCIhPT1yLmRlZmF1bHQuZW52aXJvbm1lbnQmJih3aW5kb3cuRGlzY291cnNlVVJMPWkuZGVmYXVsdCksbi5zdWJzY3JpYmUoIi9maWxlLWNoYW5nZSIsZnVuY3Rpb24oZSl7SGFuZGxlYmFycy5jb21waWxlJiYhRW1iZXIuVEVNUExBVEVTLmVtcHR5JiYoRW1iZXIuVEVNUExBVEVTLmVtcHR5PUhhbmRsZWJhcnMuY29tcGlsZSgiPGRpdj48L2Rpdj4iKSksZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBpOyJyZWZyZXNoIj09PW4/ZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKCEwKTooaT0oMCxzLmN1cnJlbnRUaGVtZUlkcykoKSwkKCJsaW5rIikuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ7bi5oYXNPd25Qcm9wZXJ0eSgidGhlbWVfaWQiKSYmbi5uZXdfaHJlZj8oZT0kKHRoaXMpLmRhdGEoInRhcmdldCIpLHQ9JCh0aGlzKS5kYXRhKCJ0aGVtZS1pZCIpLC0xPT09aS5pbmRleE9mKG4udGhlbWVfaWQpfHxlIT09bi50YXJnZXR8fHQmJnQhPT1uLnRoZW1lX2lkfHwoMCxzLnJlZnJlc2hDU1MpKHRoaXMsbnVsbCxuLm5ld19ocmVmKSk6dGhpcy5ocmVmLm1hdGNoKG4ubmFtZSkmJihuLmhhc2h8fG4ubmV3X2hyZWYpJiYoMCxzLnJlZnJlc2hDU1MpKHRoaXMsbi5oYXNoLG4ubmV3X2hyZWYpfSkpfSl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2xvY2FsaXphdGlvbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZS5kZWZhdWx0PXtuYW1lOiJsb2NhbGl6YXRpb24iLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaXNWZXJib3NlTG9jYWxpemF0aW9uRW5hYmxlZDpmdW5jdGlvbihlKXtpZihlLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikudmVyYm9zZV9sb2NhbGl6YXRpb24pcmV0dXJuITA7dHJ5e3JldHVybiBzZXNzaW9uU3RvcmFnZSYmc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgidmVyYm9zZV9sb2NhbGl6YXRpb24iKX1jYXRjaChlKXtyZXR1cm4hMX19LGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dGhpcy5pc1ZlcmJvc2VMb2NhbGl6YXRpb25FbmFibGVkKGUpJiZJMThuLmVuYWJsZVZlcmJvc2VMb2NhbGl6YXRpb24oKTt2YXIgbz1JMThuLl9vdmVycmlkZXN8fHt9O09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW9bZV0sbj0oZT1lLnJlcGxhY2UoImFkbWluX2pzIiwianMiKSkuc3BsaXQoIi4iKSxpPUkxOG4udHJhbnNsYXRpb25zW0kxOG4ubG9jYWxlXSxzPTA7czxuLmxlbmd0aC0xO3MrKyluW3NdaW4gaXx8KGlbbltzXV09e30pLGk9aVtuW3NdXTsib2JqZWN0Ij09PSh2b2lkIDA9PT1pPyJ1bmRlZmluZWQiOnIoaSkpJiYoaVtuW24ubGVuZ3RoLTFdXT10KX0pO3ZhciBuPUkxOG4uX21mT3ZlcnJpZGVzfHx7fTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07ZT1lLnJlcGxhY2UoL15bYS16X10qanNcLi8sIiIpLEkxOG4uX2NvbXBpbGVkTUZzW2VdPXR9KSxib290Ym94LmFkZExvY2FsZShJMThuLmN1cnJlbnRMb2NhbGUoKSx7T0s6STE4bi50KCJjb21wb3Nlci5tb2RhbF9vayIpLENBTkNFTDpJMThuLnQoImNvbXBvc2VyLm1vZGFsX2NhbmNlbCIpLENPTkZJUk06STE4bi50KCJjb21wb3Nlci5tb2RhbF9vayIpfSksYm9vdGJveC5zZXRMb2NhbGUoSTE4bi5jdXJyZW50TG9jYWxlKCkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvbG9nb3V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2xvZ291dCJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT0hMTtlLmRlZmF1bHQ9e25hbWU6ImxvZ291dCIsYWZ0ZXI6Im1lc3NhZ2UtYnVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7dCYmdC5zdWJzY3JpYmUoIi9sb2dvdXQiLGZ1bmN0aW9uKCl7aXx8KGk9ITAsYm9vdGJveC5kaWFsb2coSTE4bi50KCJsb2dvdXQiKSx7bGFiZWw6STE4bi50KCJyZWZyZXNoIiksY2FsbGJhY2s6bi5kZWZhdWx0fSx7b25Fc2NhcGU6bi5kZWZhdWx0LGJhY2tkcm9wOiJzdGF0aWMifSkpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9sb2dzLW5vdGljZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3NlcnZpY2VzL2xvZ3Mtbm90aWNlIiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iXSxmdW5jdGlvbihlLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImxvZ3Mtbm90aWNlIixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLG49ZS5sb29rdXAoIm1lc3NhZ2UtYnVzOm1haW4iKSxpPWUubG9va3VwKCJrZXktdmFsdWUtc3RvcmU6bWFpbiIpLHM9ZS5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIik7by5kZWZhdWx0LnJlb3BlbkNsYXNzKHIuZGVmYXVsdCx7Y3JlYXRlQ3VycmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNyZWF0ZSh7bWVzc2FnZUJ1czpuLGtleVZhbHVlU3RvcmU6aSxzaXRlU2V0dGluZ3M6dCxjdXJyZW50VXNlcjpzfSl9fSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9tZXNzYWdlLWJ1cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9wYWdlLXZpc2libGUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG8saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dmFyIG47cmV0dXJuIGUuY29tcGxldGU/KG49ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKGUsdCl7KDAsaS5oYW5kbGVMb2dvZmYpKGUpLG4oZSx0KX0pOmUuY29tcGxldGU9aS5oYW5kbGVMb2dvZmYsJC5hamF4KGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6Im1lc3NhZ2UtYnVzIixhZnRlcjoiaW5qZWN0LW9iamVjdHMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM7RGlzY291cnNlLnRlc3Rpbmd8fCh0PWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIiksbj1lLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSxpPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSx0LmFsd2F5c0xvbmdQb2xsPSJkZXZlbG9wbWVudCI9PT1EaXNjb3Vyc2UuRW52aXJvbm1lbnQsdC5zdG9wKCksaS5sb2dpbl9yZXF1aXJlZCYmIW58fChzPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJihjbGVhckludGVydmFsKHMpLHQuc3RhcnQoKSl9LDUwMCksdC5jYWxsYmFja0ludGVydmFsPWkuYW5vbl9wb2xsaW5nX2ludGVydmFsLHQuYmFja2dyb3VuZENhbGxiYWNrSW50ZXJ2YWw9aS5iYWNrZ3JvdW5kX3BvbGxpbmdfaW50ZXJ2YWwsdC5iYXNlVXJsPWkubG9uZ19wb2xsaW5nX2Jhc2VfdXJsLnJlcGxhY2UoL1wvJC8sIiIpKyIvIiwiLyIhPT10LmJhc2VVcmw/dC5hamF4PWZ1bmN0aW9uKGUpe3JldHVybiBlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmhlYWRlcnNbIlgtU2hhcmVkLVNlc3Npb24tS2V5Il09JCgibWV0YVtuYW1lPXNoYXJlZF9zZXNzaW9uX2tleV0iKS5hdHRyKCJjb250ZW50IiksKDAsby5kZWZhdWx0KSgpJiYoZS5oZWFkZXJzWyJEaXNjb3Vyc2UtVmlzaWJsZSJdPSJ0cnVlIikscihlKX06KHQuYWpheD1mdW5jdGlvbihlKXtyZXR1cm4gZS5oZWFkZXJzPWUuaGVhZGVyc3x8e30sKDAsby5kZWZhdWx0KSgpJiYoZS5oZWFkZXJzWyJEaXNjb3Vyc2UtVmlzaWJsZSJdPSJ0cnVlIikscihlKX0sdC5iYXNlVXJsPURpc2NvdXJzZS5nZXRVUkwoIi8iKSksbiYmKHQuY2FsbGJhY2tJbnRlcnZhbD1pLnBvbGxpbmdfaW50ZXJ2YWwsdC5lbmFibGVMb25nUG9sbGluZz0hMCkpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL21vYmlsZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL21vYmlsZSIsImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6Im1vYmlsZSIsYWZ0ZXI6ImluamVjdC1vYmplY3RzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2kuZGVmYXVsdC5pbml0KCk7dmFyIHQ9ZS5sb29rdXAoInNpdGU6bWFpbiIpO3Quc2V0KCJtb2JpbGVWaWV3IixpLmRlZmF1bHQubW9iaWxlVmlldyksdC5zZXQoImlzTW9iaWxlRGV2aWNlIixpLmRlZmF1bHQuaXNNb2JpbGVEZXZpY2UpLCgwLHMuc2V0UmVzb2x2ZXJPcHRpb24pKCJtb2JpbGVWaWV3IixpLmRlZmF1bHQubW9iaWxlVmlldyksKDAsby5pc0FwcFdlYnZpZXcpKCkmJigwLG4ubGF0ZXIpKGZ1bmN0aW9uKCl7KDAsby5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoImhlYWRlckJnIiwkKCIuZC1oZWFkZXIiKS5jc3MoImJhY2tncm91bmQtY29sb3IiKSl9LDUwMCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9wYWdlLXRyYWNraW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2NsZWFuLWRvbSIsImRpc2NvdXJzZS9saWIvcGFnZS10cmFja2VyIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSxpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InBhZ2UtdHJhY2tpbmciLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmxvb2t1cCgicm91dGVyOm1haW4iKTt0Lm9uKCJyb3V0ZVdpbGxDaGFuZ2UiLG8udmlld1RyYWNraW5nUmVxdWlyZWQpLHQub24oInJvdXRlRGlkQ2hhbmdlIixpLmNsZWFuRE9NKTt2YXIgbj1lLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIik7KDAscy5zdGFydFBhZ2VUcmFja2luZykodCxuKSx2b2lkIDA9PT13aW5kb3cuX2dhcT8odm9pZCAwIT09d2luZG93LmdhJiZuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fHdpbmRvdy5nYSgic2VuZCIsInBhZ2V2aWV3Iix7cGFnZTplLnVybCx0aXRsZTplLnRpdGxlfSl9KSx2b2lkIDAhPT13aW5kb3cuZGF0YUxheWVyJiZuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fCgwLHMuZ29vZ2xlVGFnTWFuYWdlclBhZ2VDaGFuZ2VkKShlKX0pKTpuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fCh3aW5kb3cuX2dhcS5wdXNoKFsiX3NldCIsInRpdGxlIixlLnRpdGxlXSksd2luZG93Ll9nYXEucHVzaChbIl90cmFja1BhZ2V2aWV3IixlLnVybF0pKX0pfSx0ZWFyZG93bjpmdW5jdGlvbigpeygwLHMucmVzZXRQYWdlVHJhY2tpbmcpKCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9wb3N0LWRlY29yYXRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC1zeW50YXgiLCJkaXNjb3Vyc2UvbGliL2xpZ2h0Ym94IiwiZGlzY291cnNlL2xpYi9sYXp5LWxvYWQtaW1hZ2VzIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWFwaSJdLGZ1bmN0aW9uKGUsaSxzLG8scixuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicG9zdC1kZWNvcmF0aW9ucyIsaW5pdGlhbGl6ZTpmdW5jdGlvbih0KXsoMCxuLndpdGhQbHVnaW5BcGkpKCIwLjEiLGZ1bmN0aW9uKG4pe3ZhciBlPXQubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKTtuLmRlY29yYXRlQ29va2VkKGkuZGVmYXVsdCx7aWQ6ImRpc2NvdXJzZS1zeW50YXgtaGlnaGxpZ2h0aW5nIn0pLG4uZGVjb3JhdGVDb29rZWQocy5kZWZhdWx0LHtpZDoiZGlzY291cnNlLWxpZ2h0Ym94In0pLGUuc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbiYmbi5kZWNvcmF0ZUNvb2tlZChyLnNldFRleHREaXJlY3Rpb25zLHtpZDoiZGlzY291cnNlLXRleHQtZGlyZWN0aW9uIn0pLCgwLG8uc2V0dXBMYXp5TG9hZGluZykobiksbi5kZWNvcmF0ZUNvb2tlZChmdW5jdGlvbih0KXt2YXIgZT0kKCJhdWRpbyIsdCk7ZS5sZW5ndGgmJmUub24oInBsYXkiLGZ1bmN0aW9uKCl7dmFyIGU9cGFyc2VJbnQodC5jbG9zZXN0KCJhcnRpY2xlIikuZGF0YSgicG9zdC1pZCIpLDEwKTtlJiZuLnByZXZlbnRDbG9hayhlKX0pfSx7aWQ6ImRpc2NvdXJzZS1hdWRpbyJ9KX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvcmVhZC1vbmx5IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicmVhZC1vbmx5IixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpO24mJih0PWUubG9va3VwKCJzaXRlOm1haW4iKSxuLnN1YnNjcmliZSgiL3NpdGUvcmVhZC1vbmx5IixmdW5jdGlvbihlKXt0LnNldCgiaXNSZWFkT25seSIsZSl9KSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9yZWdpc3Rlci1kaXNjb3Vyc2UtbG9jYXRpb24iLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJyZWdpc3Rlci1kaXNjb3Vyc2UtbG9jYXRpb24iLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9yZWdpc3Rlci1zZXJ2aWNlLXdvcmtlciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InJlZ2lzdGVyLXNlcnZpY2Utd29ya2VyIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGUsdCxhPXRoaXM7KCJodHRwczoiPT09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2x8fCJsb2NhbGhvc3QiPT09bG9jYXRpb24uaG9zdG5hbWUpJiYic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJih0PShlPURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKSkuaXNTYWZhcml8fGUuaXNJT1N8fGUuaXNJcGFkT1MsRGlzY291cnNlLlNlcnZpY2VXb3JrZXJVUkwmJiF0PyhuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hMCxuPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHMsbz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHM9by5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciByPXMudmFsdWU7ci5hY3RpdmUmJiFyLmFjdGl2ZS5zY3JpcHRVUkwuaW5jbHVkZXMoRGlzY291cnNlLlNlcnZpY2VXb3JrZXJVUkwpJiZhLnVucmVnaXN0ZXIocil9fWNhdGNoKGUpe249ITAsaT1lfWZpbmFsbHl7dHJ5eyF0JiZvLnJldHVybiYmby5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgaX19fSksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoRGlzY291cnNlLkJhc2VVcmkrIi8iK0Rpc2NvdXJzZS5TZXJ2aWNlV29ya2VyVVJMKS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmluZm8oIkZhaWxlZCB0byByZWdpc3RlciBTZXJ2aWNlIFdvcmtlcjogIitlKX0pKTpuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hMCxuPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHMsbz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHM9by5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciByPXMudmFsdWU7YS51bnJlZ2lzdGVyKHIpfX1jYXRjaChlKXtuPSEwLGk9ZX1maW5hbGx5e3RyeXshdCYmby5yZXR1cm4mJm8ucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IGl9fX0pKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihlKXtlLnNjb3BlLnN0YXJ0c1dpdGgoRGlzY291cnNlLkJhc2VVcmwpJiZlLnVucmVnaXN0ZXIoKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3JlbGF0aXZlLWFnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicmVsYXRpdmUtYWdlcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuX2ludGVydmFsPXNldEludGVydmFsKGZ1bmN0aW9uKCl7KDAsdC51cGRhdGVSZWxhdGl2ZUFnZSkoJCgiLnJlbGF0aXZlLWRhdGUiKSl9LDZlNCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dGhpcy5faW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKSx0aGlzLl9pbnRlcnZhbD1udWxsKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3NoYXJpbmctc291cmNlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zaGFyaW5nIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic2hhcmluZy1zb3VyY2VzIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7dC5kZWZhdWx0LmFkZFNvdXJjZSh7aWQ6InR3aXR0ZXIiLGljb246ImZhYi10d2l0dGVyLXNxdWFyZSIsZ2VuZXJhdGVVcmw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iaHR0cDovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9IitlbmNvZGVVUklDb21wb25lbnQoZSkrIiZ0ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpfSxzaG91bGRPcGVuSW5Qb3B1cDohMCx0aXRsZTpJMThuLnQoInNoYXJlLnR3aXR0ZXIiKSxwb3B1cEhlaWdodDoyNjV9KSx0LmRlZmF1bHQuYWRkU291cmNlKHtpZDoiZmFjZWJvb2siLGljb246ImZhYi1mYWNlYm9vayIsdGl0bGU6STE4bi50KCJzaGFyZS5mYWNlYm9vayIpLGdlbmVyYXRlVXJsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImh0dHA6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci5waHA/dT0iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiJnQ9IitlbmNvZGVVUklDb21wb25lbnQodCl9LHNob3VsZE9wZW5JblBvcHVwOiEwfSksdC5kZWZhdWx0LmFkZFNvdXJjZSh7aWQ6ImVtYWlsIixpY29uOiJlbnZlbG9wZS1zcXVhcmUiLHRpdGxlOkkxOG4udCgic2hhcmUuZW1haWwiKSxnZW5lcmF0ZVVybDpmdW5jdGlvbihlLHQpe3JldHVybiJtYWlsdG86P3RvPSZzdWJqZWN0PSIrZW5jb2RlVVJJQ29tcG9uZW50KCJbIitEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRpdGxlKyJdICIrdCkrIiZib2R5PSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpfX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvc2hvdy1mb290ZXIiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzaG93LWZvb3RlciIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmxvb2t1cCgicm91dGVyOm1haW4iKSxuPWUubG9va3VwKCJjb250cm9sbGVyOmFwcGxpY2F0aW9uIik7dC5vbigicm91dGVXaWxsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBuLnNldCgic2hvd0Zvb3RlciIsITEpLCEwfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9zaWdudXAtY3RhIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iXSxmdW5jdGlvbihlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5kZWZhdWx0PXtuYW1lOiJzaWdudXAtY3RhIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PWUubG9va3VwKCJzY3JlZW4tdHJhY2s6bWFpbiIpLG49YS5kZWZhdWx0LmN1cnJlbnQoKSxpPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSxzPWUubG9va3VwKCJrZXktdmFsdWUtc3RvcmU6bWFpbiIpLG89ZS5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIik7ZnVuY3Rpb24gcigpe3ZhciBlO24uZ2V0KCJzaG93U2lnbnVwQ3RhIil8fG4uZ2V0KCJoaWRlU2lnbnVwQ3RhIil8fHMuZ2V0KCJhbm9uLWN0YS1uZXZlciIpfHwobmV3IERhdGUpLmdldFRpbWUoKS04NjRlNTxzLmdldEludCgiYW5vbi1jdGEtaGlkZGVuIiwwKXx8cy5nZXRJbnQoImFub24tdG9waWMtdGltZSIpPDEyZTR8fChlPXMuZ2V0KCJhbm9uLXRvcGljLWlkcyIpKSYmKGUuc3BsaXQoIiwiKS5sZW5ndGg8Mnx8bi5zZXQoInNob3dTaWdudXBDdGEiLCEwKSl9dC5rZXlWYWx1ZVN0b3JlPXMsb3x8cy5nZXQoImFub24tY3RhLW5ldmVyIil8fGkuYWxsb3dfbmV3X3JlZ2lzdHJhdGlvbnMmJihpLmludml0ZV9vbmx5fHxpLmxvZ2luX3JlcXVpcmVkfHxpLmVuYWJsZV9zaWdudXBfY3RhJiYodC5yZWdpc3RlckFub25DYWxsYmFjayhyKSxyKCkpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3N0cmlwLW1vYmlsZS1hcHAtdXJsLXBhcmFtcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InN0cmlwLW1vYmlsZS1hcHAtdXJsLXBhcmFtcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3ZhciBlLHQ9d2luZG93LmxvY2F0aW9uLnNlYXJjaDstMSE9PXQuaW5kZXhPZigidXNlcl9hcGlfcHVibGljX2tleSIpJiYodD0wPChlPShlPXQuc3RhcnRzV2l0aCgiPyIpP3Quc3Vic3RyKDEpLnNwbGl0KCImIik6W10pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5zdGFydHNXaXRoKCJ1c2VyX2FwaV9wdWJsaWNfa2V5PSIpJiYhZS5zdGFydHNXaXRoKCJhdXRoX3JlZGlyZWN0PSIpfSkpLmxlbmd0aD8iPyIrZS5qb2luKCImIik6IiIsd2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiIitsb2NhdGlvbi5wYXRobmFtZSt0K2xvY2F0aW9uLmhhc2gpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3N1YnNjcmliZS11c2VyLW5vdGlmaWNhdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2Rlc2t0b3Atbm90aWZpY2F0aW9ucyIsImRpc2NvdXJzZS9saWIvcHVzaC1ub3RpZmljYXRpb25zIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLGgsaSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzdWJzY3JpYmUtdXNlci1ub3RpZmljYXRpb25zIixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZCl7dmFyIHAsdCxlLG09ZC5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIiksbj1kLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpLGY9ZC5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpO20mJihuLnN1YnNjcmliZSgiL3Jldmlld2FibGVfY291bnRzIixmdW5jdGlvbihlKXttLnNldCgicmV2aWV3YWJsZV9jb3VudCIsZS5yZXZpZXdhYmxlX2NvdW50KX0pLG4uc3Vic2NyaWJlKCIvbm90aWZpY2F0aW9uLyIrbS5nZXQoImlkIiksZnVuY3Rpb24oZSl7dmFyIHQ9ZC5sb29rdXAoInNlcnZpY2U6c3RvcmUiKSxuPW0uZ2V0KCJ1bnJlYWRfbm90aWZpY2F0aW9ucyIpLGk9bS5nZXQoInVucmVhZF9wcml2YXRlX21lc3NhZ2VzIik7bS5zZXRQcm9wZXJ0aWVzKHt1bnJlYWRfbm90aWZpY2F0aW9uczplLnVucmVhZF9ub3RpZmljYXRpb25zLHVucmVhZF9wcml2YXRlX21lc3NhZ2VzOmUudW5yZWFkX3ByaXZhdGVfbWVzc2FnZXMscmVhZF9maXJzdF9ub3RpZmljYXRpb246ZS5yZWFkX2ZpcnN0X25vdGlmaWNhdGlvbn0pLG49PT1lLnVucmVhZF9ub3RpZmljYXRpb25zJiZpPT09ZS51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlc3x8KGYudHJpZ2dlcigibm90aWZpY2F0aW9uczpjaGFuZ2VkIikscC5tb2JpbGVWaWV3JiYoMDxlLnVucmVhZF9ub3RpZmljYXRpb25zLW58fDA8ZS51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlcy1pKSYmZi50cmlnZ2VyKCJoZWFkZXI6dXBkYXRlLXRvcGljIixudWxsLDVlMykpO3ZhciBzPXQuZmluZFN0YWxlKCJub3RpZmljYXRpb24iLHt9LHtjYWNoZUtleToicmVjZW50LW5vdGlmaWNhdGlvbnMifSksbz1lLmxhc3Rfbm90aWZpY2F0aW9uJiZlLmxhc3Rfbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbjtpZihzJiZzLmhhc1Jlc3VsdHMmJm8pe3ZhciByLGE9cy5yZXN1bHRzLmdldCgiY29udGVudCIpOy0xPT09Xy5maW5kSW5kZXgoYSx7aWQ6by5pZH0pJiYocj0wLDYhPT1vLm5vdGlmaWNhdGlvbl90eXBlJiYocj0tMT09PShyPV8uZmluZEluZGV4KGEsZnVuY3Rpb24oZSl7cmV0dXJuIDYhPT1lLm5vdGlmaWNhdGlvbl90eXBlfHxlLnJlYWR9KSk/YS5sZW5ndGgtMTpyKSxhLmluc2VydEF0KHIsaC5kZWZhdWx0LmNyZWF0ZShvKSkpO2Zvcih2YXIgbD0wO2w8ZS5yZWNlbnQubGVuZ3RoO2wrKyl7Zm9yKHZhciB1PXZvaWQgMDt1PWFbbF07KXt2YXIgYz1lLnJlY2VudFtsXTtpZih1LmdldCgiaWQiKT09PWNbMF0pe3UuZ2V0KCJyZWFkIikhPT1jWzFdJiZ1LnNldCgicmVhZCIsY1sxXSk7YnJlYWt9YS5yZW1vdmVBdChsKX1pZighdSlicmVha319fSxtLm5vdGlmaWNhdGlvbl9jaGFubmVsX3Bvc2l0aW9uKSxwPWQubG9va3VwKCJzaXRlOm1haW4iKSx0PWQubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSxlPWQubG9va3VwKCJyb3V0ZXI6bWFpbiIpLG4uc3Vic2NyaWJlKCIvY2F0ZWdvcmllcyIsZnVuY3Rpb24oZSl7KGUuY2F0ZWdvcmllc3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHAudXBkYXRlQ2F0ZWdvcnkoZSl9KSwoZS5kZWxldGVkX2NhdGVnb3JpZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBwLnJlbW92ZUNhdGVnb3J5KGUpfSl9KSxuLnN1YnNjcmliZSgiL2NsaWVudF9zZXR0aW5ncyIsZnVuY3Rpb24oZSl7cmV0dXJuKDAsaC5zZXQpKHQsZS5uYW1lLGUudmFsdWUpfSksbi5zdWJzY3JpYmUoIi9yZWZyZXNoX2NsaWVudCIsZnVuY3Rpb24oZSl7cmV0dXJuIERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsZSl9KSwidGVzdCIhPT1vLmRlZmF1bHQuZW52aXJvbm1lbnQmJihuLnN1YnNjcmliZSgoMCxpLmFsZXJ0Q2hhbm5lbCkobSksZnVuY3Rpb24oZSl7cmV0dXJuKDAsaS5vbk5vdGlmaWNhdGlvbikoZSxtKX0pLCgwLGkuaW5pdCkobixmKSwoMCxzLmlzUHVzaE5vdGlmaWNhdGlvbnNFbmFibGVkKShtLHAubW9iaWxlVmlldyk/KCgwLGkuZGlzYWJsZSkoKSwoMCxzLnJlZ2lzdGVyKShtLHAubW9iaWxlVmlldyxlLGYpKTooMCxzLnVuc3Vic2NyaWJlKShtKSkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvdGl0bGUtbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InRpdGxlLW5vdGlmaWNhdGlvbnMiLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXtlLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSYmKHRoaXMuY29udGFpbmVyPWUpLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIikub24oIm5vdGlmaWNhdGlvbnM6Y2hhbmdlZCIsdGhpcywiX3VwZGF0ZVRpdGxlIil9LF91cGRhdGVUaXRsZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5jb250YWluZXIubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpO3QmJihlPXQudW5yZWFkX25vdGlmaWNhdGlvbnMrdC51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlcyxEaXNjb3Vyc2UudXBkYXRlTm90aWZpY2F0aW9uQ291bnQoZSkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvdG9waWMtZm9vdGVyLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToidG9waWMtZm9vdGVyLWJ1dHRvbnMiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXsoMCx0LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKHtpZDoic2hhcmUtYW5kLWludml0ZSIsaWNvbjoibGluayIscHJpb3JpdHk6OTk5LGxhYmVsOiJ0b3BpYy5zaGFyZS50aXRsZSIsdGl0bGU6InRvcGljLnNoYXJlLmhlbHAiLGFjdGlvbjpmdW5jdGlvbigpe3ZhciBlLHQ9W3tpZDoic2hhcmUiLHRpdGxlOiJ0b3BpYy5zaGFyZS5leHRlbmRlZF90aXRsZSIsbW9kZWw6e3RvcGljOnRoaXMudG9waWN9fV07dGhpcy5jYW5JbnZpdGVUbyYmIXRoaXMuaW52aXRlRGlzYWJsZWQmJihlPXZvaWQgMCxlPXRoaXMuaXNQTT8idG9waWMuaW52aXRlX3ByaXZhdGUudGl0bGUiOnRoaXMuaW52aXRpbmdUb1RvcGljPyJ0b3BpYy5pbnZpdGVfcmVwbHkudGl0bGUiOiJ1c2VyLmludml0ZWQuY3JlYXRlIix0LnB1c2goe2lkOiJpbnZpdGUiLHRpdGxlOmUsbW9kZWw6e2ludml0ZU1vZGVsOnRoaXMudG9waWN9fSkpLCgwLG4uZGVmYXVsdCkoInNoYXJlLWFuZC1pbnZpdGUiLHttb2RhbENsYXNzOiJzaGFyZS1hbmQtaW52aXRlIixwYW5lbHM6dH0pfSxkcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlld30sY2xhc3NOYW1lczpbInNoYXJlLWFuZC1pbnZpdGUiXSxkZXBlbmRlbnRLZXlzOlsidG9waWMuc2hhcmVVcmwiLCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIiwiY2FuSW52aXRlVG8iLCJpbnZpdGVEaXNhYmxlZCIsImlzUE0iLCJpbnZpdGluZ1RvVG9waWMiXX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJmbGFnIixpY29uOiJmbGFnIixwcmlvcml0eTo5OTgsbGFiZWw6InRvcGljLmZsYWdfdG9waWMudGl0bGUiLHRpdGxlOiJ0b3BpYy5mbGFnX3RvcGljLmhlbHAiLGFjdGlvbjoic2hvd0ZsYWdUb3BpYyIsZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9LGNsYXNzTmFtZXM6WyJmbGFnLXRvcGljIl0sZGVwZW5kZW50S2V5czpbInRvcGljLmRldGFpbHMuY2FuX2ZsYWdfdG9waWMiLCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIl0sZGlzcGxheWVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5kZXRhaWxzLmNhbl9mbGFnX3RvcGljIikmJiF0aGlzLmdldCgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIpfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2RlcGVuZGVudEtleXM6WyJ0b3BpYy5ib29rbWFya2VkIiwidG9waWMuaXNQcml2YXRlTWVzc2FnZSJdLGlkOiJib29rbWFyayIsaWNvbjoiYm9va21hcmsiLHByaW9yaXR5OjFlMyxjbGFzc05hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/WyJib29rbWFyayIsImJvb2ttYXJrZWQiXTpbImJvb2ttYXJrIl19LGxhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/ImJvb2ttYXJrZWQuY2xlYXJfYm9va21hcmtzIjoiYm9va21hcmtlZC50aXRsZSJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/ImJvb2ttYXJrZWQuaGVscC51bmJvb2ttYXJrIjoiYm9va21hcmtlZC5oZWxwLmJvb2ttYXJrIn0sYWN0aW9uOiJ0b2dnbGVCb29rbWFyayIsZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9LGRpc3BsYXllZDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldCgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIpfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJhcmNoaXZlIixwcmlvcml0eTo5OTYsaWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFyY2hpdmVJY29ufSxsYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFyY2hpdmVMYWJlbH0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcmNoaXZlVGl0bGV9LGFjdGlvbjoidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiLGNsYXNzTmFtZXM6WyJzdGFuZGFyZCIsImFyY2hpdmUtdG9waWMiXSxkZXBlbmRlbnRLZXlzOlsiY2FuQXJjaGl2ZSIsImFyY2hpdmVJY29uIiwiYXJjaGl2ZUxhYmVsIiwiYXJjaGl2ZVRpdGxlIiwidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiXSxkcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlld30sZGlzcGxheWVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuQXJjaGl2ZX19KSwoMCx0LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKHtpZDoiZWRpdC1tZXNzYWdlIixwcmlvcml0eTo3NTAsaWNvbjoicGVuY2lsLWFsdCIsbGFiZWw6InRvcGljLmVkaXRfbWVzc2FnZS50aXRsZSIsdGl0bGU6InRvcGljLmVkaXRfbWVzc2FnZS5oZWxwIixhY3Rpb246ImVkaXRGaXJzdFBvc3QiLGNsYXNzTmFtZXM6WyJlZGl0LW1lc3NhZ2UiXSxkZXBlbmRlbnRLZXlzOlsiZWRpdEZpcnN0UG9zdCIsInNob3dFZGl0T25Gb290ZXIiXSxkaXNwbGF5ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93RWRpdE9uRm9vdGVyfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJkZWZlciIsaWNvbjoiY2lyY2xlIixwcmlvcml0eTozMDAsbGFiZWw6InRvcGljLmRlZmVyLnRpdGxlIix0aXRsZToidG9waWMuZGVmZXIuaGVscCIsYWN0aW9uOiJkZWZlclRvcGljIixkaXNwbGF5ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5EZWZlcn0sZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9fSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy91cmwtcmVkaXJlY3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InVybC1yZWRpcmVjdHMiLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuPWUubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpO2kuZGVmYXVsdC5yZXdyaXRlKC9eXC9jYXRlZ29yeVwvLywiL2MvIiksaS5kZWZhdWx0LnJld3JpdGUoL15cL2dyb3VwXC8vLCIvZ3JvdXBzLyIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC9ncm91cHMkLywiL2ciKSxpLmRlZmF1bHQucmV3cml0ZSgvXlwvZ3JvdXBzXC8vLCIvZy8iKSxpLmRlZmF1bHQucmV3cml0ZSgvXC9wcml2YXRlLW1lc3NhZ2VzXC8kLywiL21lc3NhZ2VzLyIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC91c2VycyQvLCIvdSIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC91c2Vyc1wvLywiL3UvIiksaS5kZWZhdWx0LnJld3JpdGUoL1wvYWRtaW5cL2ZsYWdzLywiL3JldmlldyIpLG4mJih0PW4uZ2V0KCJ1c2VybmFtZSIpLGkuZGVmYXVsdC5yZXdyaXRlKG5ldyBSZWdFeHAoIl4vdS8iK3QrIi8/JCIsImkiKSwiL3UvIit0KyIvYWN0aXZpdHkiKSksaS5kZWZhdWx0LnJld3JpdGUoL15cL3VcLyhbXlwvXSspXC8/JC8sIi91LyQxL3N1bW1hcnkiLHtleGNlcHRpb25zOlsiL3UvYWNjb3VudC1jcmVhdGVkIiwiL3VzZXJzL2FjY291bnQtY3JlYXRlZCIsIi91L3Bhc3N3b3JkLXJlc2V0IiwiL3VzZXJzL3Bhc3N3b3JkLXJlc2V0Il19KX19fSksZGVmaW5lKCJkaXNjb3Vyc2Uvc2VydmljZXMvZW1vamktc3RvcmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIva2V5LXZhbHVlLXN0b3JlIiwiQGVtYmVyL3NlcnZpY2UiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT0iZW1vamlVc2FnZSIscz0iZW1vamlTZWxlY3RlZERpdmVyc2l0eSIsbz0iZGlzY291cnNlX2Vtb2ppc18iO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc3RvcmU9bmV3IHQuZGVmYXVsdChvKSx0aGlzLnN0b3JlLmdldE9iamVjdChpKXx8KHRoaXMuZmF2b3JpdGVzPVtdKX0sZ2V0IGRpdmVyc2l0eSgpe3JldHVybiB0aGlzLnN0b3JlLmdldE9iamVjdChzKXx8MX0sc2V0IGRpdmVyc2l0eShlKXt0aGlzLnN0b3JlLnNldE9iamVjdCh7a2V5OnMsdmFsdWU6ZXx8MX0pfSxnZXQgZmF2b3JpdGVzKCl7cmV0dXJuIHRoaXMuc3RvcmUuZ2V0T2JqZWN0KGkpfHxbXX0sc2V0IGZhdm9yaXRlcyhlKXt0aGlzLnN0b3JlLnNldE9iamVjdCh7a2V5OmksdmFsdWU6ZXx8W119KX0sdHJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKC8oXjopfCg6JCkvZywiIiksbj10aGlzLmZhdm9yaXRlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSk7bi51bnNoaWZ0KHQpLG4ubGVuZ3RoPU1hdGgubWluKG4ubGVuZ3RoLDE1KSx0aGlzLmZhdm9yaXRlcz1ufSxyZXNldDpmdW5jdGlvbigpe3ZhciBlPW5ldyB0LmRlZmF1bHQobyk7ZS5zZXRPYmplY3Qoe2tleTppLHZhbHVlOltdfSksZS5zZXRPYmplY3Qoe2tleTpzLHZhbHVlOjF9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3NlcnZpY2VzL2xvZ3Mtbm90aWNlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHQsbixpLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBmPSJsb2dzLW5vdGljZS10ZXh0IixoPW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5vbikoImluaXQiKSxhPSgwLGkuZGVmYXVsdCkoInRleHQiKSxsPSgwLGkuZGVmYXVsdCkoInRleHQiKSx1PSgwLGkuZGVmYXVsdCkoImN1cnJlbnRVc2VyIiksYz0oMCxpLmRlZmF1bHQpKCJpc0VtcHR5IiwiaXNBZG1pbiIpLGQ9KDAsaS5vYnNlcnZlcykoInRleHQiKSxwPSgwLGkuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5hbGVydF9hZG1pbnNfaWZfZXJyb3JzX3Blcl9ob3VyIiwic2l0ZVNldHRpbmdzLmFsZXJ0X2FkbWluc19pZl9lcnJvcnNfcGVyX21pbnV0ZSIpLHMobT17dGV4dDoiIixfc2V0dXA6ZnVuY3Rpb24oKXt2YXIgZSxvPXRoaXM7dGhpcy5pc0FjdGl2YXRlZCYmKChlPXRoaXMua2V5VmFsdWVTdG9yZS5nZXRJdGVtKGYpKSYmdGhpcy5zZXQoInRleHQiLGUpLHRoaXMubWVzc2FnZUJ1cy5zdWJzY3JpYmUoIi9sb2dzX2Vycm9yX3JhdGVfZXhjZWVkZWQiLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZHVyYXRpb24sbj1lLnJhdGUsaT0wOyJtaW51dGUiPT09dD9pPW8uc2l0ZVNldHRpbmdzLmFsZXJ0X2FkbWluc19pZl9lcnJvcnNfcGVyX21pbnV0ZToiaG91ciI9PT10JiYoaT1vLnNpdGVTZXR0aW5ncy5hbGVydF9hZG1pbnNfaWZfZXJyb3JzX3Blcl9ob3VyKTt2YXIgcz1uPT09aT8icmVhY2hlZCI6ImV4Y2VlZGVkIjtzKz0iXyIrdCsiX01GIixvLnNldCgidGV4dCIsSTE4bi5tZXNzYWdlRm9ybWF0KCJsb2dzX2Vycm9yX3JhdGVfbm90aWNlLiIrcyx7cmVsYXRpdmVBZ2U6KDAsci5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZSkobmV3IERhdGUoMWUzKmUucHVibGlzaF9hdCkpLHJhdGU6bixsaW1pdDppLHVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvbG9ncyIpfSkpfSkpfSxpc0VtcHR5OmZ1bmN0aW9uKGUpe3JldHVybigwLHQuaXNFbXB0eSkoZSl9LG1lc3NhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoZSl9LGlzQWRtaW46ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuYWRtaW59LGhpZGRlbjpmdW5jdGlvbihlLHQpe3JldHVybiF0fHxlfSxfdXBkYXRlS2V5VmFsdWVTdG9yZTpmdW5jdGlvbigpe3RoaXMua2V5VmFsdWVTdG9yZS5zZXRJdGVtKGYsdGhpcy50ZXh0KX0saXNBY3RpdmF0ZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxlfHwwPHR9fSwiX3NldHVwIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0dXAiKSxtKSxzKG0sImlzRW1wdHkiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImlzRW1wdHkiKSxtKSxzKG0sIm1lc3NhZ2UiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIm1lc3NhZ2UiKSxtKSxzKG0sImlzQWRtaW4iLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImlzQWRtaW4iKSxtKSxzKG0sImhpZGRlbiIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiaGlkZGVuIiksbSkscyhtLCJfdXBkYXRlS2V5VmFsdWVTdG9yZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3VwZGF0ZUtleVZhbHVlU3RvcmUiKSxtKSxzKG0sImlzQWN0aXZhdGVkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJpc0FjdGl2YXRlZCIpLG0pLG0pKTtlLmRlZmF1bHQ9aH0pLGRlZmluZSgiZGlzY291cnNlL3NlcnZpY2VzL3NlYXJjaCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsbi5vYnNlcnZlcykoInRlcm0iKSxvPSgwLG4uZGVmYXVsdCkoInNlYXJjaENvbnRleHQiKSxpKHI9e3NlYXJjaENvbnRleHRFbmFibGVkOiExLHNlYXJjaENvbnRleHQ6bnVsbCx0ZXJtOm51bGwsaGlnaGxpZ2h0VGVybTpudWxsLF9zZXRoaWdobGlnaHRUZXJtOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImhpZ2hsaWdodFRlcm0iLHRoaXMudGVybSl9LGNvbnRleHRUeXBlOntnZXQ6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oMCx0LmdldCkoZSwidHlwZSIpfSxzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0kLmV4dGVuZCh7fSx0KTtyZXR1cm4gbi50eXBlPWUsdGhpcy5zZXQoInNlYXJjaENvbnRleHQiLG4pLHRoaXMuZ2V0KCJzZWFyY2hDb250ZXh0LnR5cGUiKX19fSwiX3NldGhpZ2hsaWdodFRlcm0iLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsIl9zZXRoaWdobGlnaHRUZXJtIiksciksaShyLCJjb250ZXh0VHlwZSIsW29dLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiY29udGV4dFR5cGUiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSkscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvc2VydmljZXMvdGhlbWUtc2V0dGluZ3MiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvc2VydmljZSJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR0aW5nczpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc2V0dGluZ3M9e319LHJlZ2lzdGVyU2V0dGluZ3M6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zZXR0aW5nc1tlXT10fSxnZXRTZXR0aW5nOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzW2VdPygwLG4uZ2V0KSh0aGlzLl9zZXR0aW5nc1tlXSx0KTpudWxsfSxnZXRPYmplY3RGb3JUaGVtZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fc2V0dGluZ3NbZV19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2FjdGlvbnMtc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbCx1LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGUpe3JldHVybnt0ZW1wbGF0ZTplLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTplLnVzZXJuYW1lLHBvc3RfdXJsOmUucG9zdF91cmwsdXJsOigwLG4udXNlclBhdGgpKGUudXNlcm5hbWVfbG93ZXIpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hdmF0YXJBdHRzPWMsKDAsdC5jcmVhdGVXaWRnZXQpKCJzbWFsbC11c2VyLWxpc3QiLHt0YWdOYW1lOiJkaXYuY2xlYXJmaXgiLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5saXN0Q2xhc3NOYW1lfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLnVzZXJzO2lmKG4pe3ZhciBpPXRoaXMuY3VycmVudFVzZXI7ZS5hZGRTZWxmJiYhbi5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXJuYW1lPT09aS51c2VybmFtZX0pJiYobj1uLmNvbmNhdChjKGkpKSk7dmFyIHM9bnVsbDtlLmRlc2NyaXB0aW9uJiYocz1JMThuLnQoZS5kZXNjcmlwdGlvbix7Y291bnQ6ZS5jb3VudH0pKTt2YXIgbz12b2lkIDAscj1uLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbz1vfHxlLnBvc3RfdXJsLGwuYXZhdGFyRm9yLmNhbGwodCwic21hbGwiLGUpfSk7byYmKHM9KDAsdS5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6RGlzY291cnNlLmdldFVSTChvKX19LHMpKTt2YXIgYT1bcl07cmV0dXJuIHMmJmEucHVzaChzKSxhfX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoImFjdGlvbi1saW5rIix7dGFnTmFtZToic3Bhbi5hY3Rpb24tbGluayIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPVtdO3JldHVybiBpLnB1c2goZS50ZXh0KSxpLnB1c2goIi4gIiksbi5wdXNoKHZpcnR1YWxEb20uaCgiYSIsaSkpLG59LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc05hbWV9LGNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHRoaXMuYXR0cnMuYWN0aW9uKX19KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJhY3Rpb25zLXN1bW1hcnkiLHt0YWdOYW1lOiJzZWN0aW9uLnBvc3QtYWN0aW9ucyIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbixpPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLHM9RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuYXZhdGFyLG89RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuZGF0ZU5vZGUscj1bXTtyZXR1cm4gci5wdXNoKCJcbiIpLGUuYWN0aW9uc1N1bW1hcnkmJmUuYWN0aW9uc1N1bW1hcnkubGVuZ3RoJiZlLmFjdGlvbnNTdW1tYXJ5LmZvckVhY2goZnVuY3Rpb24oZSl7ci5wdXNoKCIgICAgICAiKTt2YXIgdD1bXTt0LnB1c2goZS5kZXNjcmlwdGlvbiksci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwb3N0LWFjdGlvbiJ9LHQpKSxyLnB1c2goIlxuICAgICAgIik7ci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJjbGVhcmZpeCJ9LFtdKSksci5wdXNoKCJcbiIpfSksZS5kZWxldGVkX2F0JiYoci5wdXNoKCIgICAgICAiKSwobj1bXSkucHVzaCgiXG4gICAgICAgICIpLG4ucHVzaChpKCJmYXItdHJhc2gtYWx0IikpLG4ucHVzaCgiXG4gICAgICAgICIpLG4ucHVzaChzKCJzbWFsbCIse3RlbXBsYXRlOmUuZGVsZXRlZEJ5QXZhdGFyVGVtcGxhdGUsdXNlcm5hbWU6ZS5kZWxldGVkQnlVc2VybmFtZX0pKSxuLnB1c2goIlxuICAgICAgICAiKSxuLnB1c2gobyhlLmRlbGV0ZWRfYXQpKSxuLnB1c2goIlxuICAgICAgIiksci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwb3N0LWFjdGlvbiBkZWxldGVkLXBvc3QifSxuKSksci5wdXNoKCJcbiIpKSxyLnB1c2goIiAgIikscn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvYXZhdGFyLWZsYWlyIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiYXZhdGFyLWZsYWlyIix7dGFnTmFtZToiZGl2LmF2YXRhci1mbGFpciIsaXNJY29uOmZ1bmN0aW9uKGUpe3JldHVybiBlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsJiZlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsLmluY2x1ZGVzKCJmYS0iKX0sdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpbWFyeV9ncm91cF9uYW1lfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9ImF2YXRhci1mbGFpci0iK2UucHJpbWFyeV9ncm91cF9uYW1lKyIgIisoZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yPyJyb3VuZGVkIjoiIik7cmV0dXJuIHRoaXMuaXNJY29uKGUpfHwodCs9IiBhdmF0YXItZmxhaXItaW1hZ2UiKSx0fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7cmV0dXJuIHRoaXMuaXNJY29uKGUpfHwodCs9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgiK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsKSsiKTsgIiksZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yJiYodCs9ImJhY2tncm91bmQtY29sb3I6ICMiK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3IpKyI7ICIpLGUucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvciYmKHQrPSJjb2xvcjogIyIrSGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvcikrIjsgIikse3N0eWxlOnR9fSxodG1sOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNJY29uKGUpKXt2YXIgdD0oMCxuLmNvbnZlcnRJY29uQ2xhc3MpKGUucHJpbWFyeV9ncm91cF9mbGFpcl91cmwpO3JldHVyblsoMCxuLmljb25Ob2RlKSh0KV19cmV0dXJuW119fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2J1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxpLHMsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkJ1dHRvbkNsYXNzPXZvaWQgMDt2YXIgbz1lLkJ1dHRvbkNsYXNzPXt0YWdOYW1lOiJidXR0b24ud2lkZ2V0LWJ1dHRvbi5idG4iLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmF0dHJzLmNsYXNzTmFtZXx8IiIsbj1lLmxhYmVsfHxlLmNvbnRlbnRzO3JldHVybiBufHwodCs9IiBuby10ZXh0IiksZS5pY29uPyh0Kz0iIGJ0bi1pY29uIixuJiYodCs9Ii10ZXh0IikpOm4mJih0Kz0iIGJ0bi10ZXh0IiksdH0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLmF0dHJzLG49e307cmV0dXJuIHQudGl0bGUmJihlPUkxOG4udCh0LnRpdGxlLHQudGl0bGVPcHRpb25zKSxuWyJhcmlhLWxhYmVsIl09ZSxuLnRpdGxlPWUpLHQuZGlzYWJsZWQmJihuLmRpc2FibGVkPSJ0cnVlIiksdC5kYXRhJiZPYmplY3Qua2V5cyh0LmRhdGEpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bImRhdGEtIitlXT10LmRhdGFbZV19KSxufSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49IWUuaWNvblJpZ2h0O3JldHVybiBlLmljb24mJm4mJnQucHVzaCgoMCxpLmljb25Ob2RlKShlLmljb24se2NsYXNzOmUuaWNvbkNsYXNzfSkpLGUubGFiZWwmJnQucHVzaCgoMCxzLmgpKCJzcGFuLmQtYnV0dG9uLWxhYmVsIixJMThuLnQoZS5sYWJlbCxlLmxhYmVsT3B0aW9ucykpKSxlLmNvbnRlbnRzJiZ0LnB1c2goZS5jb250ZW50cyksZS5pY29uJiYhbiYmdC5wdXNoKCgwLGkuaWNvbk5vZGUpKGUuaWNvbix7Y2xhc3M6ZS5pY29uQ2xhc3N9KSksdH0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycztpZighdC5kaXNhYmxlZClyZXR1cm4gJCgiYnV0dG9uLndpZGdldC1idXR0b24iKS5yZW1vdmVDbGFzcygiZC1ob3ZlciIpLmJsdXIoKSx0LnNlY29uZGFyeUFjdGlvbiYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHQuc2Vjb25kYXJ5QWN0aW9uKSx0LnVybD9uLmRlZmF1bHQucm91dGVUbyh0LnVybCk6dC5zZW5kQWN0aW9uRXZlbnQ/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHQuYWN0aW9uLGUpOnRoaXMuc2VuZFdpZGdldEFjdGlvbih0LmFjdGlvbix0LmFjdGlvblBhcmFtKX19O2UuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImJ1dHRvbiIsbyksKDAsdC5jcmVhdGVXaWRnZXQpKCJmbGF0LWJ1dHRvbiIsalF1ZXJ5LmV4dGVuZChvLHt0YWdOYW1lOiJidXR0b24ud2lkZ2V0LWJ1dHRvbi5idG4tZmxhdCJ9KSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2NhdGVnb3J5LWxpbmsiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9KGZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX0ocyx0LmRlZmF1bHQpLHMpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksZS5odG1sPSgwLG4uY2F0ZWdvcnlCYWRnZUhUTUwpKGUuY2F0ZWdvcnksZSksZnVuY3Rpb24oZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6dH0odGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuY2FsbCh0aGlzLGUpKX1lLmRlZmF1bHQ9aX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvY29tcG9uZW50LWNvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvYXBwbGljYXRpb24iXSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShzLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnN0eWxlLmRpc3BsYXk9ImlubGluZS1mbGV4IixlLmNsYXNzTmFtZT0id2lkZ2V0LWNvbXBvbmVudC1jb25uZWN0b3IiLHRoaXMuZWxlbT1lLCgwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5jb25uZWN0Q29tcG9uZW50KSx0aGlzLmVsZW19fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMsaT0hMTtyZXR1cm4gdGhpcy50cmFja2VkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Qub3B0c1tlXSE9PW4ub3B0c1tlXSYmKGk9ITApfSksaT90aGlzLmluaXQoKTpudWxsfX0se2tleToiY29ubmVjdENvbXBvbmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW0sdD10aGlzLm9wdHMsbj10aGlzLndpZGdldCxpPXRoaXMuY29tcG9uZW50TmFtZSxzPW4uX2ZpbmRWaWV3KCksbz1uLnJlZ2lzdGVyLmxvb2t1cEZhY3RvcnkoImNvbXBvbmVudDoiK2kpLmNyZWF0ZSh0KTtyLnNldE93bmVyJiYoMCxyLnNldE93bmVyKShvLCgwLHIuZ2V0T3duZXIpKHMpKSxvLnNlbGVjdEtpdCYmby5kaWRSZWNlaXZlQXR0cnMoKSxzLl9jb25uZWN0ZWQucHVzaChvKSxvLnJlbmRlcmVyLmFwcGVuZFRvKG8sZSl9fV0pLHMpO2Z1bmN0aW9uIHMoZSx0LG4saSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksdGhpcy53aWRnZXQ9ZSx0aGlzLm9wdHM9bix0aGlzLmNvbXBvbmVudE5hbWU9dCx0aGlzLnRyYWNrZWRQcm9wZXJ0aWVzPWl8fFtdfShlLmRlZmF1bHQ9bikucHJvdG90eXBlLnR5cGU9IldpZGdldCJ9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2Nvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiQGVtYmVyL2FwcGxpY2F0aW9uIl0sZnVuY3Rpb24oZSx0LGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShzLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBzPSQoIjxkaXYgY2xhc3M9J3dpZGdldC1jb25uZWN0b3InPjwvZGl2PiIpLGU9c1swXSxvPXRoaXMub3B0cyxyPXRoaXMud2lkZ2V0O3JldHVybigwLHQubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT1yLl9maW5kVmlldygpO28udGVtcGxhdGVOYW1lJiYoMCxhLmRlZmF1bHQpKCJVc2luZyBhICd0ZW1wbGF0ZU5hbWUnIGZvciBhIGNvbm5lY3RvciBpcyBkZXByZWNhdGVkLiBVc2UgJ2NvbXBvbmVudCcgaW5zdGVhZCBbIitvLnRlbXBsYXRlTmFtZSsiXSIpO3ZhciB0LG49bC5nZXRPd25lcj8oMCxsLmdldE93bmVyKShlKTplLmNvbnRhaW5lcixpPXZvaWQgMDtvLmNvbXBvbmVudCYmKGk9ci5yZWdpc3Rlci5sb29rdXBGYWN0b3J5KCJjb21wb25lbnQ6Y29ubmVjdG9yLWNvbnRhaW5lciIpLmNyZWF0ZSh7bGF5b3V0TmFtZToiY29tcG9uZW50cy8iK28uY29tcG9uZW50LG1vZGVsOnIuZmluZEFuY2VzdG9yTW9kZWwoKX0pKSxvLnRlbXBsYXRlTmFtZSYmKHQ9dm9pZCAwLCJtb2RlbCI9PT1vLmNvbnRleHQmJih0PXIuZmluZEFuY2VzdG9yTW9kZWwoKSksaT1FbWJlci5WaWV3LmNyZWF0ZSh7Y29udGFpbmVyOm58fHIucmVnaXN0ZXIsdGVtcGxhdGVOYW1lOm8udGVtcGxhdGVOYW1lLGNvbnRleHQ6dH0pKSxpJiYobC5zZXRPd25lciYmKDAsbC5zZXRPd25lcikoaSwoMCxsLmdldE93bmVyKShlKSksZS5fY29ubmVjdGVkLnB1c2goaSksaS5yZW5kZXJlci5hcHBlbmRUbyhpLHNbMF0pKX0pLGV9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxzKTtmdW5jdGlvbiBzKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksdGhpcy53aWRnZXQ9ZSx0aGlzLm9wdHM9dH0oZS5kZWZhdWx0PW4pLnByb3RvdHlwZS50eXBlPSJXaWRnZXQifSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9jdXN0b20tbm90aWZpY2F0aW9uLWl0ZW0iLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LHMsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwiY3VzdG9tLW5vdGlmaWNhdGlvbi1pdGVtIix7bm90aWZpY2F0aW9uVGl0bGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50aXRsZT9JMThuLnQodC50aXRsZSk6IiJ9LHRleHQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxzLmZvcm1hdFVzZXJuYW1lKSh0LmRpc3BsYXlfdXNlcm5hbWUpLGk9dGhpcy5kZXNjcmlwdGlvbih0KTtyZXR1cm4gSTE4bi50KHQubWVzc2FnZSx7ZGVzY3JpcHRpb246aSx1c2VybmFtZTpufSl9LGljb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxuLmljb25Ob2RlKSgibm90aWZpY2F0aW9uLiIrdC5tZXNzYWdlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZGVjb3JhdG9yLWhlbHBlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvY29ubmVjdG9yIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWNvb2tlZCIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZvKGUucHJvdG90eXBlLHQpLG4mJm8oZSxuKSxlfShhLFt7a2V5OiJhdHRhY2giLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD10fHx0aGlzLndpZGdldC5hdHRycyxuPW58fHRoaXMud2lkZ2V0LnN0YXRlLHRoaXMud2lkZ2V0LmF0dGFjaChlLHQsbil9fSx7a2V5OiJnZXRNb2RlbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuZmluZEFuY2VzdG9yTW9kZWwoKX19LHtrZXk6InJhd0h0bWwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcy5kZWZhdWx0KHtodG1sOmV9KX19LHtrZXk6ImNvb2tlZCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBpLmRlZmF1bHQoe2Nvb2tlZDplfSl9fSx7a2V5OiJjb25uZWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQuZGVmYXVsdCh0aGlzLndpZGdldCxlKX19XSksYSk7ZnVuY3Rpb24gYShlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsYSksdGhpcy53aWRnZXQ9ZSx0aGlzLmF0dHJzPXQsdGhpcy5jYW5Db25uZWN0Q29tcG9uZW50PSEwLHRoaXMuc3RhdGU9bix0aGlzLnJlZ2lzdGVyPWUucmVnaXN0ZXIsdGhpcy5yZWdpc3Rlci5kZXByZWNhdGVDb250YWluZXIodGhpcyl9ci5wcm90b3R5cGUuaD1uLmgsZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3VybCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiXSxmdW5jdGlvbihlLGkscyxjLHQscixkLHAsYSxvLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbT12b2lkIDA7ZS5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbT0oMCx0LmNyZWF0ZVdpZGdldCkoImRlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLHt0YWdOYW1lOiJsaSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiBlLmdldCgicmVhZCIpJiZ0LnB1c2goInJlYWQiKSxlLmlzX3dhcm5pbmcmJnQucHVzaCgiaXMtd2FybmluZyIpLHR9LHVybDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmF0dHJzLG49ZS5iYWRnZV9pZDtpZihuKXt2YXIgaT1lLmJhZGdlX3NsdWc7aT1pfHxlLmJhZGdlX25hbWUucmVwbGFjZSgvW15BLVphLXowLTlfXSsvZywiLSIpLnRvTG93ZXJDYXNlKCk7dmFyIHM9KHM9ZS51c2VybmFtZSk/Ij91c2VybmFtZT0iK3MudG9Mb3dlckNhc2UoKToiIjtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL2JhZGdlcy8iK24rIi8iK2krcyl9dmFyIG89dC50b3BpY19pZDtyZXR1cm4gbz8oMCxhLnBvc3RVcmwpKHQuc2x1ZyxvLHQucG9zdF9udW1iZXIpOmUuZ3JvdXBfaWQ/KDAsci51c2VyUGF0aCkoZS51c2VybmFtZSsiL21lc3NhZ2VzL2dyb3VwLyIrZS5ncm91cF9uYW1lKTp2b2lkIDB9LGRlc2NyaXB0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUuYmFkZ2VfbmFtZTtpZih0KXJldHVybigwLGEuZXNjYXBlRXhwcmVzc2lvbikodCk7aWYodGhpcy5hdHRycy5mYW5jeV90aXRsZSlyZXR1cm4gdGhpcy5hdHRycy50b3BpY19pZD8nPHNwYW4gZGF0YS10b3BpYy1pZD0iJyt0aGlzLmF0dHJzLnRvcGljX2lkKyciPicrdGhpcy5hdHRycy5mYW5jeV90aXRsZSsiPC9zcGFuPiI6dGhpcy5hdHRycy5mYW5jeV90aXRsZTt2YXIgbj1lLnRvcGljX3RpdGxlO3JldHVybigwLGkuaXNFbXB0eSkobik/IiI6KDAsYS5lc2NhcGVFeHByZXNzaW9uKShuKX0sdGV4dDpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLGEuZm9ybWF0VXNlcm5hbWUpKHQuZGlzcGxheV91c2VybmFtZSksaT10aGlzLmRlc2NyaXB0aW9uKHQpO3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMuIitlLHtkZXNjcmlwdGlvbjppLHVzZXJuYW1lOm59KX0saWNvbjpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmljb25Ob2RlKSgibm90aWZpY2F0aW9uLiIrZSl9LG5vdGlmaWNhdGlvblRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udCgibm90aWZpY2F0aW9ucy50aXRsZXMuIitlKToiIn0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vdGlmaWNhdGlvbl90eXBlLG49dGhpcy5zaXRlLmdldCgibm90aWZpY2F0aW9uTG9va3VwIilbdF0saT1lLmRhdGEscz0oMCxwLmVtb2ppVW5lc2NhcGUpKHRoaXMudGV4dChuLGkpKSxvPXRoaXMuaWNvbihuLGkpLHI9dGhpcy5ub3RpZmljYXRpb25UaXRsZShuLGkpLGE9bmV3IGMuZGVmYXVsdCh7aHRtbDoiPGRpdj4iK3MrIjwvZGl2PiJ9KSxsPVtvLGFdLHU9dGhpcy51cmwoaSk7cmV0dXJuIHU/KDAsZC5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6dSx0aXRsZTpyLCJkYXRhLWF1dG8tcm91dGUiOiEwfX0sbCk6bH0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmF0dHJzLnNldCgicmVhZCIsITApO3ZhciBuLGk9dGhpcy5hdHRycy5pZDsoMCxvLnNldFRyYW5zaWVudEhlYWRlcikoIkRpc2NvdXJzZS1DbGVhci1Ob3RpZmljYXRpb25zIixpKSxkb2N1bWVudCYmZG9jdW1lbnQuY29va2llJiYobj1EaXNjb3Vyc2UuQmFzZVVyaXx8Ii8iLGRvY3VtZW50LmNvb2tpZT0iY249IitpKyI7IHBhdGg9IituKyI7IGV4cGlyZXM9RnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBHTVQiKSwoMCxzLndhbnRzTmV3V2luZG93KShlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRFdmVudCgibGlua0NsaWNrZWQiKSxyLmRlZmF1bHQucm91dGVUbyh0aGlzLnVybCh0aGlzLmF0dHJzLmRhdGEpLHthZnRlclJvdXRlQ29tcGxldGU6ZnVuY3Rpb24oKXt0LmF0dHJzLmRhdGEucmV2aXNpb25fbnVtYmVyJiZ0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OnNob3ctcmV2aXNpb24iLHQuYXR0cnMucG9zdF9udW1iZXIsdC5hdHRycy5kYXRhLnJldmlzaW9uX251bWJlcil9fSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kaXNjb3Vyc2UtdGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT0oZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfShzLHQuZGVmYXVsdCkscyk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxzKSxlLmh0bWw9KDAsbi5kZWZhdWx0KShlLnRvcGljLGUpLGZ1bmN0aW9uKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9KHRoaXMsKHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpLmNhbGwodGhpcyxlKSl9ZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2VtYmVkZGVkLXBvc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtY29va2VkIiwiZGlzY291cnNlL3dpZGdldHMvZGVjb3JhdG9yLWhlbHBlciIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLG4saSx0LHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoInBvc3QtbGluay1hcnJvdyIse3RhZ05hbWU6ImRpdi5wb3N0LWxpbmstYXJyb3ciLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saSxzPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLG89W107cmV0dXJuIG8ucHVzaCgiXG4iKSxlLmFib3ZlPyhvLnB1c2goIiAgICAgICIpLChuPVtdKS5wdXNoKCJcbiAgICAgICAgIiksbi5wdXNoKHMoImFycm93LXVwIikpLG4ucHVzaCgiXG4gICAgICAiKSxvLnB1c2godmlydHVhbERvbS5oKCJhIix7Y2xhc3NOYW1lOiJwb3N0LWluZm8gYXJyb3ciLHRpdGxlOkkxOG4udCgidG9waWMuanVtcF9yZXBseV91cCIpfSxuKSkpOihvLnB1c2goIiAgICAgICIpLChpPVtdKS5wdXNoKCJcbiAgICAgICAgIiksaS5wdXNoKHMoImFycm93LWRvd24iKSksaS5wdXNoKCJcbiAgICAgICIpLG8ucHVzaCh2aXJ0dWFsRG9tLmgoImEiLHtjbGFzc05hbWU6InBvc3QtaW5mbyBhcnJvdyIsdGl0bGU6STE4bi50KCJ0b3BpYy5qdW1wX3JlcGx5X2Rvd24iKX0saSkpKSxvLnB1c2goIlxuIiksby5wdXNoKCIgICIpLG99LGNsaWNrOmZ1bmN0aW9uKCl7by5kZWZhdWx0LnJvdXRlVG8odGhpcy5hdHRycy5zaGFyZVVybCl9fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgiZW1iZWRkZWQtcG9zdCIse2J1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJlbWJlZGRlZC1wb3N0LSIrZS5pZH0saHRtbDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmVtYmVkZGVkUG9zdD0hMCxbKDAscy5oKSgiZGl2LnJlcGx5Iix7YXR0cmlidXRlczp7ImRhdGEtcG9zdC1pZCI6ZS5pZH19LFsoMCxzLmgpKCJkaXYucm93IixbdGhpcy5hdHRhY2goInBvc3QtYXZhdGFyIixlKSwoMCxzLmgpKCJkaXYudG9waWMtYm9keSIsWygwLHMuaCkoImRpdi50b3BpYy1tZXRhLWRhdGEiLFt0aGlzLmF0dGFjaCgicG9zdGVyLW5hbWUiLGUpLHRoaXMuYXR0YWNoKCJwb3N0LWxpbmstYXJyb3ciLHthYm92ZTp0LmFib3ZlLHNoYXJlVXJsOmUuc2hhcmVVcmx9KV0pLG5ldyBuLmRlZmF1bHQoZSxuZXcgaS5kZWZhdWx0KHRoaXMpLHRoaXMuY3VycmVudFVzZXIpXSldKV0pXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZW1vamkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlcGxhY2VFbW9qaT1mdW5jdGlvbihlKXt2YXIgdD0oMCxuLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlKSk7cmV0dXJuW25ldyBpLmRlZmF1bHQoe2h0bWw6IjxzcGFuPiIrdCsiPC9zcGFuPiJ9KV19LGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImVtb2ppIix7dGFnTmFtZToiaW1nLmVtb2ppIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9e3NyYzooMCxuLmVtb2ppVXJsRm9yKShlLm5hbWUpLGFsdDoiOiIrZS5uYW1lKyI6In07cmV0dXJuIGUudGl0bGUmJih0LnRpdGxlPWUubmFtZSksdH19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZm9vdGVyLW5hdiIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiZm9vdGVyLW5hdiIse3RhZ05hbWU6ImRpdi5mb290ZXItbmF2LXdpZGdldCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoiZ29CYWNrIixpY29uOiJjaGV2cm9uLWxlZnQiLGNsYXNzTmFtZToiYnRuLWxhcmdlIixkaXNhYmxlZDohZS5jYW5Hb0JhY2t9KSksdC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoiZ29Gb3J3YXJkIixpY29uOiJjaGV2cm9uLXJpZ2h0IixjbGFzc05hbWU6ImJ0bi1sYXJnZSIsZGlzYWJsZWQ6IWUuY2FuR29Gb3J3YXJkfSkpLCgwLG4uaXNBcHBXZWJ2aWV3KSgpJiYodC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoic2hhcmUiLGljb246ImxpbmsiLGNsYXNzTmFtZToiYnRuLWxhcmdlIn0pKSx0LnB1c2godGhpcy5hdHRhY2goImZsYXQtYnV0dG9uIix7YWN0aW9uOiJkaXNtaXNzIixpY29uOiJjaGV2cm9uLWRvd24iLGNsYXNzTmFtZToiYnRuLWxhcmdlIn0pKSksdH0sZGlzbWlzczpmdW5jdGlvbigpeygwLG4ucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJkaXNtaXNzIiwhMCl9LHNoYXJlOmZ1bmN0aW9uKCl7KDAsbi5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoInNoYXJlVXJsIix3aW5kb3cubG9jYXRpb24uaHJlZil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2dsdWUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL2RpcnR5LWtleXMiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCJdLGZ1bmN0aW9uKGUsaSxuLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciB0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmEoZS5wcm90b3R5cGUsdCksbiYmYShlLG4pLGV9KGwsW3trZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9yb290Tm9kZT1lLHRoaXMucXVldWVSZXJlbmRlcigpfX0se2tleToicXVldWVSZXJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl90aW1lb3V0PSgwLGkuc2NoZWR1bGVPbmNlKSgicmVuZGVyIix0aGlzLHRoaXMucmVyZW5kZXJXaWRnZXQpfX0se2tleToicmVyZW5kZXJXaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoKDAsaS5jYW5jZWwpKHRoaXMuX3RpbWVvdXQpLCJ0ZXN0Ij09PXIuZGVmYXVsdC5lbnZpcm9ubWVudCl0cnl7dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlcnZpY2U6c3RvcmUiKX1jYXRjaChlKXtyZXR1cm59dmFyIGU9bmV3IHRoaXMuX3dpZGdldENsYXNzKHRoaXMuYXR0cnMsdGhpcy5yZWdpc3Rlcix7ZGlydHlLZXlzOnRoaXMuZGlydHlLZXlzfSksdD0oMCxuLmRpZmYpKHRoaXMuX3RyZWV8fHRoaXMuX3Jvb3ROb2RlLGUpOyhlLl9yZXJlbmRlcmFibGU9dGhpcykuX3Jvb3ROb2RlPSgwLG4ucGF0Y2gpKHRoaXMuX3Jvb3ROb2RlLHQpLHRoaXMuX3RyZWU9ZX19LHtrZXk6ImNsZWFuVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49W107IWZ1bmN0aW9uIHQoZSl7ZS52bm9kZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpeyJDdXN0b21XaWRnZXQiPT09ZS5jb25zdHJ1Y3Rvci5uYW1lJiYobi5wdXNoKGUpLHQoZSkpfSl9KHRoaXMuX3RyZWUpLG4ucmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVzdHJveSgpfSksKDAsaS5jYW5jZWwpKHRoaXMuX3RpbWVvdXQpfX1dKSxsKTtmdW5jdGlvbiBsKGUsdCxuKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxsKSx0aGlzLl90cmVlPW51bGwsdGhpcy5fcm9vdE5vZGU9bnVsbCx0aGlzLnJlZ2lzdGVyPXQsdGhpcy5hdHRycz1uLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLmRpcnR5S2V5cz1uZXcgby5kZWZhdWx0KGUpLHRoaXMuX3dpZGdldENsYXNzPSgwLHMucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgid2lkZ2V0OiIrZSksdGhpcy5fd2lkZ2V0Q2xhc3N8fGNvbnNvbGUuZXJyb3IoIkVycm9yOiBDb3VsZCBub3QgZmluZCB3aWRnZXQ6ICIrZSl9ZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2dyb3VwLW1lc3NhZ2Utc3VtbWFyeS1ub3RpZmljYXRpb24taXRlbSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJncm91cC1tZXNzYWdlLXN1bW1hcnktbm90aWZpY2F0aW9uLWl0ZW0iLHt0ZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5pbmJveF9jb3VudCxpPXQuZ3JvdXBfbmFtZTtyZXR1cm4gSTE4bi50KCJub3RpZmljYXRpb25zLmdyb3VwX21lc3NhZ2Vfc3VtbWFyeSIse2NvdW50Om4sZ3JvdXBfbmFtZTppfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2hhbWJ1cmdlci1jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSJdLGZ1bmN0aW9uKGUsdCxyLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoImhhbWJ1cmdlci1jYXRlZ29yeSIse3RhZ05hbWU6ImxpLmNhdGVnb3J5LWxpbmsiLGh0bWw6ZnVuY3Rpb24oZSl7ZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJih0aGlzLnRhZ05hbWUrPSIuc3ViY2F0ZWdvcnkiKSx0aGlzLnRhZ05hbWUrPSIuY2F0ZWdvcnktIitvLmRlZmF1bHQuc2x1Z0ZvcihlLCItIik7dmFyIHQsbj1bdGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTplLGFsbG93VW5jYXRlZ29yaXplZDohMH0pXSxpPXBhcnNlSW50KGUuZ2V0KCJ1bnJlYWRUb3BpY3MiKSwxMCkrcGFyc2VJbnQoZS5nZXQoIm5ld1RvcGljcyIpLDEwKTtyZXR1cm4gaSYmbi5wdXNoKCgwLHIuaCkoImEuYmFkZ2UuYmFkZ2Utbm90aWZpY2F0aW9uIix7YXR0cmlidXRlczp7aHJlZjplLmdldCgidXJsIil9fSwoMCxzLm51bWJlcikoaSkpKSx0aGlzLmN1cnJlbnRVc2VyfHwodD12b2lkIDAsdD1lLmdldCgic2hvd19zdWJjYXRlZ29yeV9saXN0Iik/ZS5nZXQoInRvdGFsVG9waWNDb3VudCIpOmUuZ2V0KCJ0b3BpY19jb3VudCIpLG4ucHVzaCgoMCxyLmgpKCJiLnRvcGljcy1jb3VudCIsKDAscy5udW1iZXIpKHQpKSkpLG59fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgiaGFtYnVyZ2VyLWNhdGVnb3JpZXMiLHt0YWdOYW1lOiJ1bC5jYXRlZ29yeS1saW5rcy5jbGVhcmZpeCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49RGlzY291cnNlLmdldFVSTCgiL2NhdGVnb3JpZXMiKSxpPUkxOG4udCgiZmlsdGVycy5jYXRlZ29yaWVzLnRpdGxlIik7MDxlLm1vcmVDb3VudCYmKGk9STE4bi50KCJjYXRlZ29yaWVzLm5fbW9yZSIse2NvdW50OmUubW9yZUNvdW50fSkpO3ZhciBzPVsoMCxyLmgpKCJsaS5oZWFkaW5nIiwoMCxyLmgpKCJhLmQtbGluay5jYXRlZ29yaWVzLWxpbmsiLHthdHRyaWJ1dGVzOntocmVmOm59fSxpKSldLG89ZS5jYXRlZ29yaWVzO2lmKDAhPT1vLmxlbmd0aClyZXR1cm4gcz1zLmNvbmNhdChvLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5hdHRhY2goImhhbWJ1cmdlci1jYXRlZ29yeSIsZSl9KSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2hhbWJ1cmdlci1tZW51IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiXSxmdW5jdGlvbihlLGEsbyxyLG4saSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2Z1bmN0aW9uIHUoZSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLGUpfSgwLG8uY3JlYXRlV2lkZ2V0KSgicHJpb3JpdHktZmFxLWxpbmsiLHt0YWdOYW1lOiJhLmZhcS1wcmlvcml0eS53aWRnZXQtbGluayIsYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybntocmVmOmUuaHJlZn19LGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm5bSTE4bi50KCJmYXEiKSwiICIsKDAsci5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24iLEkxOG4udCgibmV3X2l0ZW0iKSldfSxjbGljazpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNpdGVTZXR0aW5ncy5mYXFfdXJsPT09dGhpcy5hdHRycy5ocmVmPygwLGkuYWpheCkoKDAsbi51c2VyUGF0aCkoInJlYWQtZmFxIikse21ldGhvZDoiUE9TVCJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5jdXJyZW50VXNlci5zZXQoInJlYWRfZmFxIiwhMCksbi5kZWZhdWx0LnJvdXRlVG9UYWcoJChlLnRhcmdldCkuY2xvc2VzdCgiYSIpWzBdKX0pOm4uZGVmYXVsdC5yb3V0ZVRvVGFnKCQoZS50YXJnZXQpLmNsb3Nlc3QoImEiKVswXSl9fSksZS5kZWZhdWx0PSgwLG8uY3JlYXRlV2lkZ2V0KSgiaGFtYnVyZ2VyLW1lbnUiLHt0YWdOYW1lOiJkaXYuaGFtYnVyZ2VyLXBhbmVsIixzZXR0aW5nczp7c2hvd0NhdGVnb3JpZXM6ITAsbWF4V2lkdGg6MzIwLHNob3dGQVE6ITAsc2hvd0Fib3V0OiEwfSxhZG1pbkxpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVt7cm91dGU6ImFkbWluIixjbGFzc05hbWU6ImFkbWluLWxpbmsiLGljb246IndyZW5jaCIsbGFiZWw6ImFkbWluX3RpdGxlIn1dO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmFkbWluJiZlLnB1c2goe2hyZWY6Ii9hZG1pbi9zaXRlX3NldHRpbmdzIixpY29uOiJjb2ciLGxhYmVsOiJhZG1pbi5zaXRlX3NldHRpbmdzLnRpdGxlIixjbGFzc05hbWU6InNldHRpbmdzLWxpbmsifSksZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXR0YWNoKCJsaW5rIixlKX0pfSxsb29rdXBDb3VudDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnJlZ2lzdGVyLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpO3JldHVybiB0P3QubG9va3VwQ291bnQoZSk6MH0sc2hvd1VzZXJEaXJlY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV91c2VyX2RpcmVjdG9yeSYmISh0aGlzLnNpdGVTZXR0aW5ncy5oaWRlX3VzZXJfcHJvZmlsZXNfZnJvbV9wdWJsaWMmJiF0aGlzLmN1cnJlbnRVc2VyKX0sZ2VuZXJhbExpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuc2l0ZVNldHRpbmdzLG49W107bi5wdXNoKHtyb3V0ZToiZGlzY292ZXJ5LmxhdGVzdCIsY2xhc3NOYW1lOiJsYXRlc3QtdG9waWNzLWxpbmsiLGxhYmVsOiJmaWx0ZXJzLmxhdGVzdC50aXRsZSIsdGl0bGU6ImZpbHRlcnMubGF0ZXN0LmhlbHAifSksdGhpcy5jdXJyZW50VXNlciYmKG4ucHVzaCh7cm91dGU6ImRpc2NvdmVyeS5uZXciLGNsYXNzTmFtZToibmV3LXRvcGljcy1saW5rIixsYWJlbENvdW50OiJmaWx0ZXJzLm5ldy50aXRsZV93aXRoX2NvdW50IixsYWJlbDoiZmlsdGVycy5uZXcudGl0bGUiLHRpdGxlOiJmaWx0ZXJzLm5ldy5oZWxwIixjb3VudDp0aGlzLmxvb2t1cENvdW50KCJuZXciKX0pLG4ucHVzaCh7cm91dGU6ImRpc2NvdmVyeS51bnJlYWQiLGNsYXNzTmFtZToidW5yZWFkLXRvcGljcy1saW5rIixsYWJlbENvdW50OiJmaWx0ZXJzLnVucmVhZC50aXRsZV93aXRoX2NvdW50IixsYWJlbDoiZmlsdGVycy51bnJlYWQudGl0bGUiLHRpdGxlOiJmaWx0ZXJzLnVucmVhZC5oZWxwIixjb3VudDp0aGlzLmxvb2t1cENvdW50KCJ1bnJlYWQiKX0pKSx0aGlzLmN1cnJlbnRVc2VyJiYodGhpcy5jdXJyZW50VXNlci5zdGFmZnx8dGhpcy5jdXJyZW50VXNlci5yZXZpZXdhYmxlX2NvdW50KSYmbi5wdXNoKHtyb3V0ZTplLnJldmlld2FibGVfZGVmYXVsdF90b3BpY3M/InJldmlldy50b3BpY3MiOiJyZXZpZXciLGNsYXNzTmFtZToicmV2aWV3IixsYWJlbDoicmV2aWV3LnRpdGxlIixiYWRnZUNvdW50OiJyZXZpZXdhYmxlX2NvdW50IixiYWRnZUNsYXNzOiJyZXZpZXdhYmxlcyJ9KSxuLnB1c2goe3JvdXRlOiJkaXNjb3ZlcnkudG9wIixjbGFzc05hbWU6InRvcC10b3BpY3MtbGluayIsbGFiZWw6ImZpbHRlcnMudG9wLnRpdGxlIix0aXRsZToiZmlsdGVycy50b3AuaGVscCJ9KSxlLmVuYWJsZV9iYWRnZXMmJm4ucHVzaCh7cm91dGU6ImJhZGdlcyIsY2xhc3NOYW1lOiJiYWRnZS1saW5rIixsYWJlbDoiYmFkZ2VzLnRpdGxlIn0pLHRoaXMuc2hvd1VzZXJEaXJlY3RvcnkoKSYmbi5wdXNoKHtyb3V0ZToidXNlcnMiLGNsYXNzTmFtZToidXNlci1kaXJlY3RvcnktbGluayIsbGFiZWw6ImRpcmVjdG9yeS50aXRsZSJ9KSx0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfZ3JvdXBfZGlyZWN0b3J5JiZuLnB1c2goe3JvdXRlOiJncm91cHMiLGNsYXNzTmFtZToiZ3JvdXBzLWxpbmsiLGxhYmVsOiJncm91cHMuaW5kZXgudGl0bGUifSksdGhpcy5zaXRlU2V0dGluZ3MudGFnZ2luZ19lbmFibGVkJiZuLnB1c2goe3JvdXRlOiJ0YWdzIixsYWJlbDoidGFnZ2luZy50YWdzIn0pO3ZhciBpPXUoKDAsby5hcHBseURlY29yYXRvcnMpKHRoaXMsImdlbmVyYWxMaW5rcyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKSk7cmV0dXJuIG4uY29uY2F0KGkpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5hdHRhY2goImxpbmsiLGUpfSl9LGxpc3RDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dmFyIG4sdD10aGlzLGU9dGhpcy5zaXRlU2V0dGluZ3MuaGVhZGVyX2Ryb3Bkb3duX2NhdGVnb3J5X2NvdW50LGk9W107aT10aGlzLmN1cnJlbnRVc2VyPyhuPXRoaXMuc2l0ZS5nZXQoImNhdGVnb3JpZXMiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm90aWZpY2F0aW9uX2xldmVsIT09bC5Ob3RpZmljYXRpb25MZXZlbHMuTVVURUR9KSxpPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUuZ2V0KCJuZXdUb3BpY3MiKXx8MDxlLmdldCgidW5yZWFkVG9waWNzIil9KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0KCJuZXdUb3BpY3MiKSt0LmdldCgidW5yZWFkVG9waWNzIiktKGUuZ2V0KCJuZXdUb3BpY3MiKStlLmdldCgidW5yZWFkVG9waWNzIikpfSksKHRoaXMuY3VycmVudFVzZXIuZ2V0KCJ0b3BfY2F0ZWdvcnlfaWRzIil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXR9KTtlJiYhaS5pbmNsdWRlcyhlKSYmaS5wdXNoKGUpfSksaS5jb25jYXQobi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWkuaW5jbHVkZXMoZSl9KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9waWNfY291bnQtZS50b3BpY19jb3VudH0pKSk6dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0J5Q291bnQiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm90aWZpY2F0aW9uX2xldmVsIT09bC5Ob3RpZmljYXRpb25MZXZlbHMuTVVURUR9KSx0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc3x8KGk9aS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZH0pKTt2YXIgcz1pLmxlbmd0aC1lO3JldHVybiBpPWkuc2xpY2UoMCxlKSx0aGlzLmF0dGFjaCgiaGFtYnVyZ2VyLWNhdGVnb3JpZXMiLHtjYXRlZ29yaWVzOmksbW9yZUNvdW50OnN9KX0sZm9vdGVyTGlua3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9W107dGhpcy5zZXR0aW5ncy5zaG93QWJvdXQmJmkucHVzaCh7cm91dGU6ImFib3V0IixjbGFzc05hbWU6ImFib3V0LWxpbmsiLGxhYmVsOiJhYm91dC5zaW1wbGVfdGl0bGUifSksdGhpcy5zZXR0aW5ncy5zaG93RkFRJiYhZSYmaS5wdXNoKHtocmVmOnQsY2xhc3NOYW1lOiJmYXEtbGluayIsbGFiZWw6ImZhcSJ9KSx0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5jYXBhYmlsaXRpZXMudG91Y2h8fGkucHVzaCh7aHJlZjoiIixhY3Rpb246InNob3dLZXlib2FyZCIsY2xhc3NOYW1lOiJrZXlib2FyZC1zaG9ydGN1dHMtbGluayIsbGFiZWw6ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLnRpdGxlIn0pLCh0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX21vYmlsZV90aGVtZSYmdGhpcy5jYXBhYmlsaXRpZXMudG91Y2gpJiZpLnB1c2goe2FjdGlvbjoidG9nZ2xlTW9iaWxlVmlldyIsY2xhc3NOYW1lOiJtb2JpbGUtdG9nZ2xlLWxpbmsiLGxhYmVsOnRoaXMuc2l0ZS5tb2JpbGVWaWV3PyJkZXNrdG9wX3ZpZXciOiJtb2JpbGVfdmlldyJ9KTt2YXIgcz11KCgwLG8uYXBwbHlEZWNvcmF0b3JzKSh0aGlzLCJmb290ZXJMaW5rcyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKSk7cmV0dXJuIGkuY29uY2F0KHMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goImxpbmsiLGUpfSl9LHBhbmVsQ29udGVudHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5jdXJyZW50VXNlcixuPVtdLGk9dGhpcy5zaXRlU2V0dGluZ3MuZmFxX3VybDtpJiYwIT09aS5sZW5ndGh8fChpPURpc2NvdXJzZS5nZXRVUkwoIi9mYXEiKSk7dmFyIHM9dGhpcy5zZXR0aW5ncy5zaG93RkFRJiZ0aGlzLmN1cnJlbnRVc2VyJiYhdGhpcy5jdXJyZW50VXNlci5yZWFkX2ZhcTtyZXR1cm4gcyYmbi5wdXNoKHRoaXMuYXR0YWNoKCJtZW51LWxpbmtzIix7bmFtZToiZmFxLWxpbmsiLGhlYWRpbmc6ITAsY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gdC5hdHRhY2goInByaW9yaXR5LWZhcS1saW5rIix7aHJlZjppfSl9fSkpLGUmJmUuc3RhZmYmJm4ucHVzaCh0aGlzLmF0dGFjaCgibWVudS1saW5rcyIse25hbWU6ImFkbWluLWxpbmtzIixjb250ZW50czpmdW5jdGlvbigpe3ZhciBlPXUoKDAsby5hcHBseURlY29yYXRvcnMpKHQsImFkbWluLWxpbmtzIix0LmF0dHJzLHQuc3RhdGUpKTtyZXR1cm4gdC5hZG1pbkxpbmtzKCkuY29uY2F0KGUpfX0pKSxuLnB1c2godGhpcy5hdHRhY2goIm1lbnUtbGlua3MiLHtuYW1lOiJnZW5lcmFsLWxpbmtzIixjb250ZW50czpmdW5jdGlvbigpe3JldHVybiB0LmdlbmVyYWxMaW5rcygpfX0pKSx0aGlzLnNldHRpbmdzLnNob3dDYXRlZ29yaWVzJiYobi5wdXNoKHRoaXMubGlzdENhdGVnb3JpZXMoKSksbi5wdXNoKCgwLHIuaCkoImhyLmNhdGVnb3JpZXMtc2VwYXJhdG9yIikpKSxuLnB1c2godGhpcy5hdHRhY2goIm1lbnUtbGlua3MiLHtuYW1lOiJmb290ZXItbGlua3MiLG9taXRSdWxlOiEwLGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZm9vdGVyTGlua3MocyxpKX19KSksbn0saHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuYXR0YWNoKCJtZW51LXBhbmVsIix7Y29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gZS5wYW5lbENvbnRlbnRzKCl9LG1heFdpZHRoOnRoaXMuc2V0dGluZ3MubWF4V2lkdGh9KX0sY2xpY2tPdXRzaWRlTW9iaWxlOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG89dGhpcyxyPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSk7ci5wYXJlbnRzKCIucGFuZWwiKS5sZW5ndGgmJiFyLmhhc0NsYXNzKCJoZWFkZXItY2xvYWsiKT90aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZUhhbWJ1cmdlciIpOih0PSQod2luZG93KS53aWR0aCgpLChuPSQoIi5tZW51LXBhbmVsIikpLmFkZENsYXNzKCJhbmltYXRlIiksaT10aGlzLnNpdGUubW9iaWxlVmlldz8ibGVmdCI6InJpZ2h0IixuLmNzcyhpLC10KSwocz0kKCIuaGVhZGVyLWNsb2FrIikpLmFkZENsYXNzKCJhbmltYXRlIikscy5jc3MoIm9wYWNpdHkiLDApLCgwLGEubGF0ZXIpKGZ1bmN0aW9uKCl7cmV0dXJuIG8uc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlSGFtYnVyZ2VyIil9LDIwMCkpfSxjbGlja091dHNpZGU6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5jbGlja091dHNpZGVNb2JpbGUoZSk6dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVIYW1idXJnZXIiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGJzLWNvbXBpbGVyIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJUZW1wbGF0ZXMgc2hvdWxkIGJlIHByZWNvbXBpbGVkIHNlcnZlciBzaWRlIil9fSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9oZWFkZXItY29udGVudHMiLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0Il0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLWNvbnRlbnRzIix7dGFnTmFtZToiZGl2LmNvbnRlbnRzLmNsZWFyZml4Iix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO24ucHVzaCgiXG4gICAgIiksbi5wdXNoKHRoaXMuYXR0YWNoKCJob21lLWxvZ28iLGUpKSxuLnB1c2goIlxuIiksZS50b3BpYyYmKG4ucHVzaCgiICAgICAgIiksbi5wdXNoKHRoaXMuYXR0YWNoKCJoZWFkZXItdG9waWMtaW5mbyIsZSkpLG4ucHVzaCgiXG4iKSksbi5wdXNoKCIgICAgIik7dmFyIGk9W107cmV0dXJuIGkucHVzaCh0aGlzLmF0dHJzLmNvbnRlbnRzKCkpLG4ucHVzaCh2aXJ0dWFsRG9tLmgoImRpdiIse2NsYXNzTmFtZToicGFuZWwgY2xlYXJmaXgifSxpKSksbi5wdXNoKCJcbiAgIiksbn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGVhZGVyLXRvcGljLWluZm8iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsImRpc2NvdXJzZS9saWIvcmVuZGVyLXRhZ3MiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCJdLGZ1bmN0aW9uKGUsUCxqLFQsdCxFLE8sUyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLCgwLFAuY3JlYXRlV2lkZ2V0KSgidG9waWMtaGVhZGVyLXBhcnRpY2lwYW50Iix7dGFnTmFtZToic3BhbiIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3JldHVybiJ0cmlnZ2VyLSIrZS50eXBlKyItY2FyZCJ9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS51c2VyLG49ZS5ncm91cCxpPXZvaWQgMCxzPXZvaWQgMDtyZXR1cm4idXNlciI9PT1lLnR5cGU/KGk9KDAsby5hdmF0YXJJbWcpKCJ0aW55Iix7dGVtcGxhdGU6dC5hdmF0YXJfdGVtcGxhdGUsdXNlcm5hbWU6dC51c2VybmFtZX0pLHM9dC5nZXQoInBhdGgiKSk6KGk9WygwLFQuaWNvbk5vZGUpKCJ1c2VycyIpXSxzPURpc2NvdXJzZS5nZXRVUkwoIi9nLyIrbi5uYW1lKSxpLnB1c2goKDAsai5oKSgic3BhbiIsbi5uYW1lKSkpLCgwLGouaCkoImEuaWNvbiIse2F0dHJpYnV0ZXM6e2hyZWY6cywiZGF0YS1hdXRvLXJvdXRlIjohMCx0aXRsZTplLnVzZXJuYW1lfX0saSl9LGNsaWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoZS50YXJnZXQpO3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInRvcGljLWhlYWRlcjp0cmlnZ2VyLSIrdGhpcy5hdHRycy50eXBlKyItY2FyZCIsdGhpcy5hdHRycy51c2VybmFtZSx0KSxlLnByZXZlbnREZWZhdWx0KCl9fSksZS5kZWZhdWx0PSgwLFAuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLXRvcGljLWluZm8iLHt0YWdOYW1lOiJkaXYuZXh0cmEtaW5mby13cmFwcGVyIixodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzLHM9ZS50b3BpYyxvPVtdLHI9IXMuZ2V0KCJpc193YXJuaW5nIikmJnMuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIik7IXJ8fChuPXRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIucG1QYXRoKHMpKSYmby5wdXNoKCgwLGouaCkoImEucHJpdmF0ZS1tZXNzYWdlLWdseXBoLXdyYXBwZXIiLHthdHRyaWJ1dGVzOntocmVmOm4sImFyaWEtbGFiZWwiOkkxOG4udCgidXNlci5tZXNzYWdlcy5pbmJveCIpfX0sKDAsVC5pY29uTm9kZSkoImVudmVsb3BlIix7Y2xhc3M6InByaXZhdGUtbWVzc2FnZS1nbHlwaCJ9KSkpO3ZhciBhLGw9cy5nZXQoImRldGFpbHMubG9hZGVkIiksdT1zLmdldCgiZmFuY3lUaXRsZSIpLGM9cy5nZXQoInVybCIpO3UmJmMmJihvLnB1c2godGhpcy5hdHRhY2goInRvcGljLXN0YXR1cyIsZSkpLGE9bmV3IEUuZGVmYXVsdCh7aHRtbDoiPHNwYW4+Iit1KyI8L3NwYW4+In0pLG8ucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2NsYXNzTmFtZToidG9waWMtbGluayIsYWN0aW9uOiJqdW1wVG9Ub3BQb3N0IixocmVmOmMsYXR0cmlidXRlczp7ImRhdGEtdG9waWMtaWQiOnMuZ2V0KCJpZCIpfSxjb250ZW50czpmdW5jdGlvbigpe3JldHVybiBhfX0pKSk7dmFyIGQscCxtLGYsaCxiLGcsdix5LF8sdz1bKDAsai5oKSgiaDEuaGVhZGVyLXRpdGxlIixvKV0seD1zLmdldCgiY2F0ZWdvcnkiKTsobHx8eCkmJigheHx8eC5nZXQoImlzVW5jYXRlZ29yaXplZENhdGVnb3J5IikmJnRoaXMuc2l0ZVNldHRpbmdzLnN1cHByZXNzX3VuY2F0ZWdvcml6ZWRfYmFkZ2V8fChwPVtdLChkPXguZ2V0KCJwYXJlbnRDYXRlZ29yeSIpKSYmcC5wdXNoKHRoaXMuYXR0YWNoKCJjYXRlZ29yeS1saW5rIix7Y2F0ZWdvcnk6ZH0pKSxwLnB1c2godGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTp4fSkpLHcucHVzaCgoMCxqLmgpKCJkaXYuY2F0ZWdvcmllcy13cmFwcGVyIixwKSkpLG09W10sKGY9KDAsTy5kZWZhdWx0KShzKSkmJjA8Zi5sZW5ndGgmJm0ucHVzaChuZXcgRS5kZWZhdWx0KHtodG1sOmZ9KSksciYmKGg9MDxtLmxlbmd0aD81OjEwLGI9W10sdj0oZz1zLmdldCgiZGV0YWlscyIpKS5hbGxvd2VkX3VzZXJzLmxlbmd0aCtnLmFsbG93ZWRfZ3JvdXBzLmxlbmd0aCxnLmFsbG93ZWRfdXNlcnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYi5sZW5ndGg+PWh8fHZvaWQgYi5wdXNoKGkuYXR0YWNoKCJ0b3BpYy1oZWFkZXItcGFydGljaXBhbnQiLHt0eXBlOiJ1c2VyIix1c2VyOmUsdXNlcm5hbWU6ZS51c2VybmFtZX0pKX0pLGcuYWxsb3dlZF9ncm91cHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYi5sZW5ndGg+PWh8fHZvaWQgYi5wdXNoKGkuYXR0YWNoKCJ0b3BpYy1oZWFkZXItcGFydGljaXBhbnQiLHt0eXBlOiJncm91cCIsZ3JvdXA6ZSx1c2VybmFtZTplLm5hbWV9KSl9KSxoPHYmJih5PXYtaCxiLnB1c2godGhpcy5hdHRhY2goImxpbmsiLHtjbGFzc05hbWU6Im1vcmUtcGFydGljaXBhbnRzIixhY3Rpb246Imp1bXBUb1RvcFBvc3QiLGhyZWY6YyxhdHRyaWJ1dGVzOnsiZGF0YS10b3BpYy1pZCI6cy5nZXQoImlkIil9LGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIisiK3l9fSkpKSxtLnB1c2goKDAsai5oKSgiZGl2LnRvcGljLWhlYWRlci1wYXJ0aWNpcGFudHMiLGIpKSksbT1tLmNvbmNhdCgoMCxQLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItdGFncyIsZSx0KSksIXRoaXMuc2l0ZVNldHRpbmdzLnRvcGljX2ZlYXR1cmVkX2xpbmtfZW5hYmxlZHx8KF89KDAsUy50b3BpY0ZlYXR1cmVkTGlua05vZGUpKGUudG9waWMpKSYmbS5wdXNoKF8pLG0ubGVuZ3RoJiZ3LnB1c2goKDAsai5oKSgiZGl2LnRvcGljLWhlYWRlci1leHRyYSIsbSkpKTt2YXIgaz0oMCxqLmgpKCJkaXYudGl0bGUtd3JhcHBlciIsdyk7cmV0dXJuKDAsai5oKSgiZGl2LmV4dHJhLWluZm8iLHtjbGFzc05hbWU6MTx3Lmxlbmd0aD8idHdvLXJvd3MiOiIifSxrKX0sanVtcFRvVG9wUG9zdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMudG9waWM7ZSYmdC5kZWZhdWx0LnJvdXRlVG8oZS5nZXQoImZpcnN0UG9zdFVybCIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGVhZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvc2VhcmNoIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2hlbHBlcnMvdXNlci1hdmF0YXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsbixpLHQscyxyLG8sYSxsLHUsYyxkLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hdHRhY2hBZGRpdGlvbmFsUGFuZWw9ZnVuY3Rpb24oZSx0LG4pe2gucHVzaCh7bmFtZTplLHRvZ2dsZTp0LHRyYW5zZm9ybUF0dHJzOm59KX07dmFyIG09e2J1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtpZihlLmFjdGl2ZSlyZXR1cm4iYWN0aXZlIn0sY2xpY2s6ZnVuY3Rpb24oZSl7KDAsYS53YW50c05ld1dpbmRvdykoZSl8fChlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdHRycy5hY3RpdmV8fHRoaXMuc2VuZFdpZGdldEFjdGlvbih0aGlzLmF0dHJzLmFjdGlvbikpfX07KDAsdC5jcmVhdGVXaWRnZXQpKCJoZWFkZXItbm90aWZpY2F0aW9ucyIse3NldHRpbmdzOnthdmF0YXJTaXplOiJtZWRpdW0ifSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PWUudXNlcixuPXt0ZW1wbGF0ZTp0LmdldCgiYXZhdGFyX3RlbXBsYXRlIiksdXNlcm5hbWU6dC5nZXQoInVzZXJuYW1lIil9O3RoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uYW1lcyYmKG4ubmFtZT10LmdldCgibmFtZSIpKTt2YXIgaT1bKDAsci5hdmF0YXJJbWcpKHRoaXMuc2V0dGluZ3MuYXZhdGFyU2l6ZSwoMCxjLmFkZEV4dHJhVXNlckNsYXNzZXMpKHQsbikpXSxzPXQuZ2V0KCJ1bnJlYWRfbm90aWZpY2F0aW9ucyIpO3MmJmkucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2FjdGlvbjplLmFjdGlvbixjbGFzc05hbWU6ImJhZGdlLW5vdGlmaWNhdGlvbiB1bnJlYWQtbm90aWZpY2F0aW9ucyIscmF3TGFiZWw6cyxvbWl0U3BhbjohMCx0aXRsZToibm90aWZpY2F0aW9ucy50b29sdGlwLnJlZ3VsYXIiLHRpdGxlT3B0aW9uczp7Y291bnQ6c319KSk7dmFyIG89dC5nZXQoInVucmVhZF9wcml2YXRlX21lc3NhZ2VzIik7cmV0dXJuIG8mJih0LmdldCgicmVhZF9maXJzdF9ub3RpZmljYXRpb24iKXx8dC5nZXQoImVuZm9yY2VkU2Vjb25kRmFjdG9yIil8fChpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nIikpLCFlLmFjdGl2ZSYmZS5yaW5nQmFja2Ryb3AmJihpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nLWJhY2tkcm9wLXNwb3RsaWdodCIpKSxpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nLWJhY2tkcm9wIix7fSwoMCxwLmgpKCJoMS5yaW5nLWZpcnN0LW5vdGlmaWNhdGlvbiIse30sSTE4bi50KCJ1c2VyLmZpcnN0X25vdGlmaWNhdGlvbiIpKSkpKSksaS5wdXNoKHRoaXMuYXR0YWNoKCJsaW5rIix7YWN0aW9uOmUuYWN0aW9uLGNsYXNzTmFtZToiYmFkZ2Utbm90aWZpY2F0aW9uIHVucmVhZC1wcml2YXRlLW1lc3NhZ2VzIixyYXdMYWJlbDpvLG9taXRTcGFuOiEwLHRpdGxlOiJub3RpZmljYXRpb25zLnRvb2x0aXAubWVzc2FnZSIsdGl0bGVPcHRpb25zOntjb3VudDpvfX0pKSksaX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItZHJvcGRvd24iLGpRdWVyeS5leHRlbmQoe3RhZ05hbWU6ImxpLmhlYWRlci1kcm9wZG93bi10b2dnbGUuY3VycmVudC11c2VyIixidWlsZElkOmZ1bmN0aW9uKCl7cmV0dXJuImN1cnJlbnQtdXNlciJ9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscC5oKSgiYS5pY29uIix7YXR0cmlidXRlczp7aHJlZjplLnVzZXIuZ2V0KCJwYXRoIiksImRhdGEtYXV0by1yb3V0ZSI6ITB9fSx0aGlzLmF0dGFjaCgiaGVhZGVyLW5vdGlmaWNhdGlvbnMiLGUpKX19LG0pKSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1kcm9wZG93biIsalF1ZXJ5LmV4dGVuZCh7dGFnTmFtZToibGkuaGVhZGVyLWRyb3Bkb3duLXRvZ2dsZSIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1JMThuLnQoZS50aXRsZSksbj1bKDAscy5pY29uTm9kZSkoZS5pY29uKV07cmV0dXJuIGUuY29udGVudHMmJm4ucHVzaChlLmNvbnRlbnRzLmNhbGwodGhpcykpLCgwLHAuaCkoImEuaWNvbi5idG4tZmxhdCIse2F0dHJpYnV0ZXM6e2hyZWY6ZS5ocmVmLCJkYXRhLWF1dG8tcm91dGUiOiEwLHRpdGxlOnQsImFyaWEtbGFiZWwiOnQsaWQ6ZS5pY29uSWR9fSxuKX19LG0pKSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1pY29ucyIse3RhZ05hbWU6InVsLmljb25zLmQtaGVhZGVyLWljb25zIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm57cm9sZToibmF2aWdhdGlvbiJ9fSxodG1sOmZ1bmN0aW9uKGUpe2lmKHRoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkJiYhdGhpcy5jdXJyZW50VXNlcilyZXR1cm5bXTt2YXIgdD10aGlzLmF0dGFjaCgiaGVhZGVyLWRyb3Bkb3duIix7dGl0bGU6ImhhbWJ1cmdlcl9tZW51IixpY29uOiJiYXJzIixpY29uSWQ6InRvZ2dsZS1oYW1idXJnZXItbWVudSIsYWN0aXZlOmUuaGFtYnVyZ2VyVmlzaWJsZSxhY3Rpb246InRvZ2dsZUhhbWJ1cmdlciIsaHJlZjoiIixjb250ZW50czpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFVzZXI7aWYoZSYmZS5yZXZpZXdhYmxlX2NvdW50KXJldHVybigwLHAuaCkoImRpdi5iYWRnZS1ub3RpZmljYXRpb24ucmV2aWV3YWJsZXMiLHthdHRyaWJ1dGVzOnt0aXRsZTpJMThuLnQoIm5vdGlmaWNhdGlvbnMucmV2aWV3YWJsZV9pdGVtcyIpfX0sdGhpcy5jdXJyZW50VXNlci5yZXZpZXdhYmxlX2NvdW50KX19KSxuPVt0aGlzLmF0dGFjaCgiaGVhZGVyLWRyb3Bkb3duIix7dGl0bGU6InNlYXJjaC50aXRsZSIsaWNvbjoic2VhcmNoIixpY29uSWQ6InNlYXJjaC1idXR0b24iLGFjdGlvbjoidG9nZ2xlU2VhcmNoTWVudSIsYWN0aXZlOmUuc2VhcmNoVmlzaWJsZSxocmVmOkRpc2NvdXJzZS5nZXRVUkwoIi9zZWFyY2giKX0pLHRdO3JldHVybiBlLnVzZXImJm4ucHVzaCh0aGlzLmF0dGFjaCgidXNlci1kcm9wZG93biIse2FjdGl2ZTplLnVzZXJWaXNpYmxlLGFjdGlvbjoidG9nZ2xlVXNlck1lbnUiLHJpbmdCYWNrZHJvcDplLnJpbmdCYWNrZHJvcCx1c2VyOmUudXNlcn0pKSxufX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLWJ1dHRvbnMiLHt0YWdOYW1lOiJzcGFuLmhlYWRlci1idXR0b25zIixodG1sOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmN1cnJlbnRVc2VyKXt2YXIgdD1bXTtyZXR1cm4gZS5jYW5TaWduVXAmJiFlLnRvcGljJiZ0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2xhYmVsOiJzaWduX3VwIixjbGFzc05hbWU6ImJ0bi1wcmltYXJ5IGJ0bi1zbWFsbCBzaWduLXVwLWJ1dHRvbiIsYWN0aW9uOiJzaG93Q3JlYXRlQWNjb3VudCJ9KSksdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtsYWJlbDoibG9nX2luIixjbGFzc05hbWU6ImJ0bi1wcmltYXJ5IGJ0bi1zbWFsbCBsb2dpbi1idXR0b24iLGFjdGlvbjoic2hvd0xvZ2luIixpY29uOiJ1c2VyIn0pKSx0fX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1jbG9hayIse3RhZ05hbWU6ImRpdi5oZWFkZXItY2xvYWsiLGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm4iIn0sY2xpY2s6ZnVuY3Rpb24oKXt9LHNjaGVkdWxlUmVyZW5kZXI6ZnVuY3Rpb24oKXt9fSk7dmFyIGY9WyJjYXRlZ29yeSIsInVzZXIiLCJwcml2YXRlX21lc3NhZ2VzIiwidGFnIl0saD1bXTtlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJoZWFkZXIiLHt0YWdOYW1lOiJoZWFkZXIuZC1oZWFkZXIuY2xlYXJmaXgiLGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuImhlYWRlciJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3ZhciBlPXtzZWFyY2hWaXNpYmxlOiExLGhhbWJ1cmdlclZpc2libGU6ITEsdXNlclZpc2libGU6ITEscmluZ0JhY2tkcm9wOiEwfTtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXcmJihlLnNraXBTZWFyY2hDb250ZXh0PSEwKSxlfSxodG1sOmZ1bmN0aW9uKG4saSl7dmFyIHM9dGhpcyxlPXtjb250ZW50czpmdW5jdGlvbigpe3ZhciBlLHQ9W3MuYXR0YWNoKCJoZWFkZXItYnV0dG9ucyIsbikscy5hdHRhY2goImhlYWRlci1pY29ucyIse2hhbWJ1cmdlclZpc2libGU6aS5oYW1idXJnZXJWaXNpYmxlLHVzZXJWaXNpYmxlOmkudXNlclZpc2libGUsc2VhcmNoVmlzaWJsZTppLnNlYXJjaFZpc2libGUscmluZ0JhY2tkcm9wOmkucmluZ0JhY2tkcm9wLGZsYWdDb3VudDpuLmZsYWdDb3VudCx1c2VyOnMuY3VycmVudFVzZXJ9KV07cmV0dXJuIGkuc2VhcmNoVmlzaWJsZT8oZT1zLnNlYXJjaENvbnRleHRUeXBlKCksaS5zZWFyY2hDb250ZXh0VHlwZSE9PWUmJihpLmNvbnRleHRFbmFibGVkPXZvaWQgMCxpLnNlYXJjaENvbnRleHRUeXBlPWUpLHZvaWQgMD09PWkuY29udGV4dEVuYWJsZWQmJmYuaW5jbHVkZXMoZSkmJihpLmNvbnRleHRFbmFibGVkPSEwKSx0LnB1c2gocy5hdHRhY2goInNlYXJjaC1tZW51Iix7Y29udGV4dEVuYWJsZWQ6aS5jb250ZXh0RW5hYmxlZH0pKSk6aS5oYW1idXJnZXJWaXNpYmxlP3QucHVzaChzLmF0dGFjaCgiaGFtYnVyZ2VyLW1lbnUiKSk6aS51c2VyVmlzaWJsZSYmdC5wdXNoKHMuYXR0YWNoKCJ1c2VyLW1lbnUiKSksaC5tYXAoZnVuY3Rpb24oZSl7cy5zdGF0ZVtlLnRvZ2dsZV0mJnQucHVzaChzLmF0dGFjaChlLm5hbWUsZS50cmFuc2Zvcm1BdHRycy5jYWxsKHMsbixpKSkpfSkscy5zaXRlLm1vYmlsZVZpZXcmJnQucHVzaChzLmF0dGFjaCgiaGVhZGVyLWNsb2FrIikpLHR9LG1pbmltaXplZDohIW4udG9waWN9O3JldHVybigwLHAuaCkoImRpdi53cmFwIix0aGlzLmF0dGFjaCgiaGVhZGVyLWNvbnRlbnRzIiwkLmV4dGVuZCh7fSxuLGUpKSl9LHVwZGF0ZUhpZ2hsaWdodDpmdW5jdGlvbigpe3RoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZXx8dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5zZXQoImhpZ2hsaWdodFRlcm0iLCIiKX0sY2xvc2VBbGw6ZnVuY3Rpb24oKXt0aGlzLnN0YXRlLnVzZXJWaXNpYmxlPSExLHRoaXMuc3RhdGUuaGFtYnVyZ2VyVmlzaWJsZT0hMSx0aGlzLnN0YXRlLnNlYXJjaFZpc2libGU9ITEsdGhpcy50b2dnbGVCb2R5U2Nyb2xsaW5nKCExKX0sbGlua0NsaWNrZWRFdmVudDpmdW5jdGlvbihlKXt2YXIgdCxuLGkscz0hMTtlJiYocz1lLnNlYXJjaENvbnRleHRFbmFibGVkLHQ9ZS5zZWFyY2hMb2dJZCxuPWUuc2VhcmNoUmVzdWx0SWQsaT1lLnNlYXJjaFJlc3VsdFR5cGUsdCYmbiYmaSYmKDAsdS5hamF4KSgiL3NlYXJjaC9jbGljayIse3R5cGU6IlBPU1QiLGRhdGE6e3NlYXJjaF9sb2dfaWQ6dCxzZWFyY2hfcmVzdWx0X2lkOm4sc2VhcmNoX3Jlc3VsdF90eXBlOml9fSkpLHN8fHRoaXMuY2xvc2VBbGwoKSx0aGlzLnVwZGF0ZUhpZ2hsaWdodCgpfSx0b2dnbGVTZWFyY2hNZW51OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLnNpdGUubW9iaWxlVmlldyl7dmFyIGU9dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5nZXQoInNlYXJjaENvbnRleHQiKSxuPSIiO3JldHVybiBlJiYobj0iP2NvbnRleHQ9IitlLnR5cGUrIiZjb250ZXh0X2lkPSIrZS5pZCsiJnNraXBfY29udGV4dD0iK3RoaXMuc3RhdGUuc2tpcFNlYXJjaENvbnRleHQpLCJmdWxsLXBhZ2Utc2VhcmNoIj09PXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLmdldCgiX3JvdXRlci5jdXJyZW50UGF0aCIpPygoMCxkLnNjcm9sbFRvcCkoKSwkKCIuZnVsbC1wYWdlLXNlYXJjaCIpLmZvY3VzKCksITEpOm8uZGVmYXVsdC5yb3V0ZVRvKCIvc2VhcmNoIituKX10aGlzLnN0YXRlLnNlYXJjaFZpc2libGU9IXRoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZSx0aGlzLnVwZGF0ZUhpZ2hsaWdodCgpLHRoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZSYmKDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlPSQoIiNzZWFyY2gtdGVybSIpO2UuZm9jdXMoKS5zZWxlY3QoKSwoMCxsLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlKShlLHQuc2l0ZVNldHRpbmdzLHQuYXBwRXZlbnRzLHthcHBlbmRTZWxlY3RvcjoiLm1lbnUtcGFuZWwifSl9KX0sdG9nZ2xlVXNlck1lbnU6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRVc2VyLmdldCgicmVhZF9maXJzdF9ub3RpZmljYXRpb24iKSYmKHRoaXMuc3RhdGUucmluZ0JhY2tkcm9wPSExKSx0aGlzLnN0YXRlLnVzZXJWaXNpYmxlPSF0aGlzLnN0YXRlLnVzZXJWaXNpYmxlLHRoaXMudG9nZ2xlQm9keVNjcm9sbGluZyh0aGlzLnN0YXRlLnVzZXJWaXNpYmxlKX0sdG9nZ2xlSGFtYnVyZ2VyOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5oYW1idXJnZXJWaXNpYmxlPSF0aGlzLnN0YXRlLmhhbWJ1cmdlclZpc2libGUsdGhpcy50b2dnbGVCb2R5U2Nyb2xsaW5nKHRoaXMuc3RhdGUuaGFtYnVyZ2VyVmlzaWJsZSl9LHRvZ2dsZUJvZHlTY3JvbGxpbmc6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJihlP2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLnByZXZlbnREZWZhdWx0LHtwYXNzaXZlOiExfSk6ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMucHJldmVudERlZmF1bHQse3Bhc3NpdmU6ITF9KSl9LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6JCh3aW5kb3cpLmhlaWdodCgpOyghJChlLnRhcmdldCkucGFyZW50cygiLm1lbnUtcGFuZWwiKS5sZW5ndGh8fCQoIi5tZW51LXBhbmVsIC5wYW5lbC1ib2R5LWNvbnRlbnRzIikuaGVpZ2h0KCk8PXQpJiZlLnByZXZlbnREZWZhdWx0KCl9LHRvZ2dsZVBhZ2VTZWFyY2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXRlO2UuY29udGV4dEVuYWJsZWQ9ITE7ZnVuY3Rpb24gdChlKXtyZXR1cm4hIXMubWF0Y2goZSl9dmFyIG4saSxzPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLmdldCgiX3JvdXRlci5jdXJyZW50UGF0aCIpLG89Wy9edG9waWNcLi9dLmFueSh0KSYmIVsvXmRpc2NvdmVyeVwuY2F0ZWdvcmllcy9dLmFueSh0KTtyZXR1cm4gbyYmcy5tYXRjaCgvXnRvcGljXC4vKSYmKGk9KG49dGhpcy5yZWdpc3Rlci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKSkuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLnN0cmVhbS5sZW5ndGgiKXx8MCxvPShuLmdldCgibW9kZWwuY2h1bmtfc2l6ZSIpfHwwKTxpJiYkKCIudG9waWMtcG9zdCAuY29va2VkLCAuc21hbGwtYWN0aW9uOm5vdCgudGltZS1nYXApIikubGVuZ3RoPGkpLGUuc2VhcmNoVmlzaWJsZT8odGhpcy50b2dnbGVTZWFyY2hNZW51KCksbyk6IW98fChlLmNvbnRleHRFbmFibGVkPSEwLHRoaXMudG9nZ2xlU2VhcmNoTWVudSgpLCExKX0sc2VhcmNoTWVudUNvbnRleHRDaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuY29udGV4dFR5cGU9dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5nZXQoImNvbnRleHRUeXBlIiksdGhpcy5zdGF0ZS5jb250ZXh0RW5hYmxlZD1lfSxkb21DbGVhbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGU7KGUuc2VhcmNoVmlzaWJsZXx8ZS5oYW1idXJnZXJWaXNpYmxlfHxlLnVzZXJWaXNpYmxlKSYmdGhpcy5jbG9zZUFsbCgpfSxoZWFkZXJLZXlib2FyZFRyaWdnZXI6ZnVuY3Rpb24oZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJzZWFyY2giOnRoaXMudG9nZ2xlU2VhcmNoTWVudSgpO2JyZWFrO2Nhc2UidXNlciI6dGhpcy50b2dnbGVVc2VyTWVudSgpO2JyZWFrO2Nhc2UiaGFtYnVyZ2VyIjp0aGlzLnRvZ2dsZUhhbWJ1cmdlcigpO2JyZWFrO2Nhc2UicGFnZS1zZWFyY2giOnZhciB0PXRoaXMuc2VhcmNoQ29udGV4dFR5cGUoKTsidG9waWMiPT09dCYmKHRoaXMuc3RhdGUuc2VhcmNoQ29udGV4dFR5cGU9dCksdGhpcy50b2dnbGVQYWdlU2VhcmNoKCl8fChlLmV2ZW50LnByZXZlbnREZWZhdWx0KCksZS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSl9fSxzZWFyY2hDb250ZXh0VHlwZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZWFyY2gtc2VydmljZTptYWluIik7aWYoZSl7dmFyIHQ9ZS5nZXQoInNlYXJjaENvbnRleHQiKTtpZih0KXJldHVybigwLG4uZ2V0KSh0LCJ0eXBlIil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9ob21lLWxvZ28iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi9pbnRlcmNlcHQtY2xpY2siLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxhLGwsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImhvbWUtbG9nbyIse3RhZ05hbWU6ImRpdi50aXRsZSIsc2V0dGluZ3M6e2hyZWY6RGlzY291cnNlLmdldFVSTCgiLyIpfSxocmVmOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZXR0aW5ncy5ocmVmO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2UoKTplfSxsb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbG9nb191cmx8fCIifSxtb2JpbGVMb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbW9iaWxlX2xvZ29fdXJsfHwiIn0sc21hbGxMb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbG9nb19zbWFsbF91cmx8fCIifSxsb2dvOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlU2V0dGluZ3MsdD10aGlzLnNpdGUubW9iaWxlVmlldyxuPXRoaXMubW9iaWxlTG9nb1VybCgpLGk9dCYmMDxuLmxlbmd0aCxzPXRoaXMubG9nb1VybCgpLG89ZS50aXRsZTtpZih0aGlzLmF0dHJzLm1pbmltaXplZCl7dmFyIHI9dGhpcy5zbWFsbExvZ29VcmwoKTtyZXR1cm4gci5sZW5ndGg/KDAsYS5oKSgiaW1nI3NpdGUtbG9nby5sb2dvLXNtYWxsIix7a2V5OiJsb2dvLXNtYWxsIixhdHRyaWJ1dGVzOntzcmM6RGlzY291cnNlLmdldFVSTChyKSx3aWR0aDozNixhbHQ6b319KTooMCxsLmljb25Ob2RlKSgiaG9tZSIpfXJldHVybiBpPygwLGEuaCkoImltZyNzaXRlLWxvZ28ubG9nby1iaWciLHtrZXk6ImxvZ28tbW9iaWxlIixhdHRyaWJ1dGVzOntzcmM6RGlzY291cnNlLmdldFVSTChuKSxhbHQ6b319KTpzLmxlbmd0aD8oMCxhLmgpKCJpbWcjc2l0ZS1sb2dvLmxvZ28tYmlnIix7a2V5OiJsb2dvLWJpZyIsYXR0cmlidXRlczp7c3JjOkRpc2NvdXJzZS5nZXRVUkwocyksYWx0Om99fSk6KDAsYS5oKSgiaDEjc2l0ZS10ZXh0LWxvZ28udGV4dC1sb2dvIix7a2V5OiJsb2dvLXRleHQifSxvKX0saHRtbDpmdW5jdGlvbigpe3JldHVybigwLGEuaCkoImEiLHthdHRyaWJ1dGVzOntocmVmOnRoaXMuaHJlZigpLCJkYXRhLWF1dG8tcm91dGUiOiEwfX0sdGhpcy5sb2dvKCkpfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLndhbnRzTmV3V2luZG93KShlKXx8KGUucHJldmVudERlZmF1bHQoKSxpLmRlZmF1bHQucm91dGVUb1RhZygkKGUudGFyZ2V0KS5jbG9zZXN0KCJhIilbMF0pKSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaG9va3MiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfTtmdW5jdGlvbiBpKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19dmFyIHQ9Il9kaXNjb3Vyc2VfY2xpY2tfd2lkZ2V0IixvPSJfZGlzY291cnNlX2RvdWJsZV9jbGlja193aWRnZXQiLHI9Il9kaXNjb3Vyc2VfY2xpY2tfb3V0c2lkZV93aWRnZXQiLGE9Il9kaXNjb3Vyc2VfbW91c2VfZG93bl9vdXRzaWRlX3dpZGdldCIsbD0iX2Rpc2NvdXJzZV9rZXlfdXBfd2lkZ2V0Iix1PSJfZGlzY291cnNlX2tleV9kb3duX3dpZGdldCIsYz0iX2Rpc2NvdXJzZV9kcmFnX3dpZGdldCIsZD0iX2Rpc2NvdXJzZV9pbnB1dF93aWRnZXQiLHA9Il9kaXNjb3Vyc2VfY2hhbmdlX3dpZGdldCIsbT0iX2Rpc2NvdXJzZV9tb3VzZV9kb3duX3dpZGdldCIsZj0iX2Rpc2NvdXJzZV9tb3VzZV91cF93aWRnZXQiLGg9Il9kaXNjb3Vyc2VfbW91c2VfbW92ZV93aWRnZXQiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gcyhpLFt7a2V5OiJob29rIix2YWx1ZTpmdW5jdGlvbihlKXtuJiZlLnNldEF0dHJpYnV0ZShuLCEwKSxlW3RdPXRoaXMud2lkZ2V0fX0se2tleToidW5ob29rIix2YWx1ZTpmdW5jdGlvbihlKXtuJiZlLnJlbW92ZUF0dHJpYnV0ZShuLCEwKSxlW3RdPW51bGx9fV0pLGk7ZnVuY3Rpb24gaShlKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxpKSx0aGlzLndpZGdldD1lfX12YXIgYj1lLldpZGdldENsaWNrSG9vaz1uKHQpO2UuV2lkZ2V0RG91YmxlQ2xpY2tIb29rPW4obyksZS5XaWRnZXRDbGlja091dHNpZGVIb29rPW4ociwiZGF0YS1jbGljay1vdXRzaWRlIiksZS5XaWRnZXRNb3VzZURvd25PdXRzaWRlSG9vaz1uKGEsImRhdGEtbW91c2UtZG93bi1vdXRzaWRlIiksZS5XaWRnZXRLZXlVcEhvb2s9bihsKSxlLldpZGdldEtleURvd25Ib29rPW4odSksZS5XaWRnZXREcmFnSG9vaz1uKGMpLGUuV2lkZ2V0SW5wdXRIb29rPW4oZCksZS5XaWRnZXRDaGFuZ2VIb29rPW4ocCksZS5XaWRnZXRNb3VzZVVwSG9vaz1uKGYpLGUuV2lkZ2V0TW91c2VEb3duSG9vaz1uKG0pLGUuV2lkZ2V0TW91c2VNb3ZlSG9vaz1uKGgpO2Z1bmN0aW9uIGcoZSx0LG4saSl7dmFyIHM9KDM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOntyZXJlbmRlcjohMH0pLnJlcmVuZGVyLG89dihlLHQpO28mJihzP28ucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXtyZXR1cm4gbihvKX0pOm4obykpfWZ1bmN0aW9uIHYoZSx0KXtmb3IoO2U7KXt2YXIgbj1lW3RdO2lmKG4pcmV0dXJuIG47ZT1lLnBhcmVudE5vZGV9fXZhciB5PSExLF89dm9pZCAwLHc9Im1vdXNlbW92ZS5kaXNjb3Vyc2Utd2lkZ2V0LWRyYWciO2Z1bmN0aW9uIHgoZSl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKCJ3aWRnZXQtZHJhZ2dpbmciKSwkKGRvY3VtZW50KS5vZmYodyksXyYmKF8uZHJhZ0VuZCYmXy5kcmFnRW5kKGUpLF89bnVsbCl9Yi5zZXR1cERvY3VtZW50Q2FsbGJhY2s9ZnVuY3Rpb24oKXt2YXIgbjt5fHwobj12b2lkIDAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldFRvdWNoZXNbMF07dCYmbiYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG4uZHJhZyh0KSl9LHtwYXNzaXZlOiExLGNhcHR1cmU6ITB9KSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duLmRpc2NvdXJjZS13aWRnZXQtZHJhZywgdG91Y2hzdGFydC5kaXNjb3Vyc2Utd2lkZ2V0LWRyYWciLGZ1bmN0aW9uKGUpe3goZSksKG49dihlLnRhcmdldCxjKSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxfPW4sJCgiYm9keSIpLmFkZENsYXNzKCJ3aWRnZXQtZHJhZ2dpbmciKSwkKGRvY3VtZW50KS5vbih3LGZ1bmN0aW9uKGUpe24mJm4uZHJhZyhlKX0pKX0pLCQoZG9jdW1lbnQpLm9uKCJtb3VzZXVwLmRpc2NvdXJzZS13aWRnZXQtZHJhZywgdG91Y2hlbmQuZGlzY291cnNlLXdpZGdldC1kcmFnIixmdW5jdGlvbihlKXtuPW51bGwseChlKX0pLCQoZG9jdW1lbnQpLm9uKCJkYmxjbGljay5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbih0KXtnKHQudGFyZ2V0LG8sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZG91YmxlQ2xpY2sodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJjbGljay5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbihpKXtnKGkudGFyZ2V0LHQsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xpY2soaSl9KTt2YXIgcz1pLnRhcmdldDskKCJbZGF0YS1jbGljay1vdXRzaWRlXSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbjt0LmNvbnRhaW5zKHMpfHx0PT09cyYmImFic29sdXRlIj09PXQuc3R5bGUucG9zaXRpb258fChuPXRbcl0pJiZuLmNsaWNrT3V0c2lkZShpKX0pfSksJChkb2N1bWVudCkub24oIm1vdXNlZG93bi5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbihpKXt2YXIgcz1pLnRhcmdldDskKCJbZGF0YS1tb3VzZS1kb3duLW91dHNpZGVdIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuO3QuY29udGFpbnMocyl8fChuPXRbYV0pJiZuLm1vdXNlRG93bk91dHNpZGUoaSl9KX0pLCQoZG9jdW1lbnQpLm9uKCJrZXl1cC5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbih0KXtnKHQudGFyZ2V0LGwsZnVuY3Rpb24oZSl7cmV0dXJuIGUua2V5VXAodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJrZXlkb3duLmRpc2NvdXJzZS13aWRnZXQiLGZ1bmN0aW9uKHQpe2codC50YXJnZXQsdSxmdW5jdGlvbihlKXtyZXR1cm4gZS5rZXlEb3duKHQpfSl9KSwkKGRvY3VtZW50KS5vbigiaW5wdXQuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxkLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlucHV0KHQpfSx7cmVyZW5kZXI6ITF9KX0pLCQoZG9jdW1lbnQpLm9uKCJjaGFuZ2UuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxwLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYW5nZSh0KX0se3JlcmVuZGVyOiExfSl9KSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duLmRpc2NvdXJzZS13aWRnZXQiLGZ1bmN0aW9uKHQpe2codC50YXJnZXQsbSxmdW5jdGlvbihlKXtlLm1vdXNlRG93bih0KX0pfSksJChkb2N1bWVudCkub24oIm1vdXNldXAuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxmLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vdXNlVXAodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJtb3VzZW1vdmUuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxoLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vdXNlTW92ZSh0KX0pfSkseT0hMCl9fSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9pbnZpdGVlLWFjY2VwdGVkLW5vdGlmaWNhdGlvbi1pdGVtIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJpbnZpdGVlLWFjY2VwdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLG4udXNlclBhdGgpKGUuZGlzcGxheV91c2VybmFtZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2xpa2VkLWNvbnNvbGlkYXRlZC1ub3RpZmljYXRpb24taXRlbSIsWyJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKG4sZSx0LGkscyl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwibGlrZWQtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLHMudXNlclBhdGgpKCh0aGlzLmF0dHJzLnVzZXJuYW1lfHx0aGlzLmN1cnJlbnRVc2VyLnVzZXJuYW1lKSsiL25vdGlmaWNhdGlvbnMvbGlrZXMtcmVjZWl2ZWQ/YWN0aW5nX3VzZXJuYW1lPSIrZS5kaXNwbGF5X3VzZXJuYW1lKX0sZGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7dmFyIHQ9STE4bi50KCJub3RpZmljYXRpb25zLmxpa2VkX2NvbnNvbGlkYXRlZF9kZXNjcmlwdGlvbiIse2NvdW50OnBhcnNlSW50KGUuY291bnQsMTApfSk7cmV0dXJuKDAsbi5pc0VtcHR5KSh0KT8iIjooMCxpLmVzY2FwZUV4cHJlc3Npb24pKHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9saWtlZC1ub3RpZmljYXRpb24taXRlbSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwibGlrZWQtbm90aWZpY2F0aW9uLWl0ZW0iLHt0ZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsci5mb3JtYXRVc2VybmFtZSkodC5kaXNwbGF5X3VzZXJuYW1lKSxpPXRoaXMuZGVzY3JpcHRpb24odCk7aWYoMTx0LmNvdW50KXt2YXIgcz10LmNvdW50LTIsbz0oMCxyLmZvcm1hdFVzZXJuYW1lKSh0LnVzZXJuYW1lMik7cmV0dXJuIDA9PXM/STE4bi50KCJub3RpZmljYXRpb25zLmxpa2VkXzIiLHtkZXNjcmlwdGlvbjppLHVzZXJuYW1lOm4sdXNlcm5hbWUyOm99KTpJMThuLnQoIm5vdGlmaWNhdGlvbnMubGlrZWRfbWFueSIse2Rlc2NyaXB0aW9uOmksdXNlcm5hbWU6bix1c2VybmFtZTI6byxjb3VudDpzfSl9cmV0dXJuIEkxOG4udCgibm90aWZpY2F0aW9ucy5saWtlZCIse2Rlc2NyaXB0aW9uOmksdXNlcm5hbWU6bn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbixyLGEsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5jcmVhdGVXaWRnZXQpKCJsaW5rIix7dGFnTmFtZToiYSIsaHJlZjpmdW5jdGlvbihlKXt2YXIgdD1lLnJvdXRlO2lmKCF0KXJldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGUuaHJlZik7dmFyIG49dGhpcy5yZWdpc3Rlci5sb29rdXAoInJvdXRlcjptYWluIik7aWYobiYmbi5fcm91dGVyTWljcm9saWIpe3ZhciBpPVt0XTtyZXR1cm4gZS5tb2RlbCYmaS5wdXNoKGUubW9kZWwpLERpc2NvdXJzZS5nZXRVUkwobi5fcm91dGVyTWljcm9saWIuZ2VuZXJhdGUuYXBwbHkobi5fcm91dGVyTWljcm9saWIsaSkpfX0sYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnB1c2goIndpZGdldC1saW5rIiksZS5jbGFzc05hbWUmJnQucHVzaChlLmNsYXNzTmFtZSksdH0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe3ZhciBuPXtocmVmOnRoaXMuaHJlZih0KSx0aXRsZTp0LnRpdGxlP0kxOG4udCh0LnRpdGxlLHQudGl0bGVPcHRpb25zKTp0aGlzLmxhYmVsKHQpfTtyZXR1cm4gdC5hdHRyaWJ1dGVzJiZPYmplY3Qua2V5cyh0LmF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV09dC5hdHRyaWJ1dGVzW2VdfSksbn0sbGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGFiZWxDb3VudCYmZS5jb3VudD9JMThuLnQoZS5sYWJlbENvdW50LHtjb3VudDplLmNvdW50fSk6ZS5yYXdMYWJlbHx8KGUubGFiZWw/STE4bi50KGUubGFiZWwpOiIiKX0saHRtbDpmdW5jdGlvbihlKXtpZihlLmNvbnRlbnRzKXJldHVybiBlLmNvbnRlbnRzKCk7dmFyIHQsbj1bXTtlLmljb24mJihuLnB1c2goKDAsci5pY29uTm9kZSkoZS5pY29uKSksbi5wdXNoKCIgIikpLGUuaGlkZUxhYmVsfHwodD10aGlzLmxhYmVsKGUpLGUub21pdFNwYW4/bi5wdXNoKHQpOm4ucHVzaCgoMCxhLmgpKCJzcGFuLmQtbGFiZWwiLHQpKSk7dmFyIGkscyxvPXRoaXMuY3VycmVudFVzZXI7cmV0dXJuIG8mJmUuYmFkZ2VDb3VudCYmKDA8KGk9cGFyc2VJbnQoby5nZXQoZS5iYWRnZUNvdW50KSwxMCkpJiYocz1lLmJhZGdlVGl0bGU/STE4bi50KGUuYmFkZ2VUaXRsZSk6IiIsbi5wdXNoKCIgIiksbi5wdXNoKCgwLGEuaCkoInNwYW4uYmFkZ2Utbm90aWZpY2F0aW9uIix7Y2xhc3NOYW1lOmUuYmFkZ2VDbGFzcyxhdHRyaWJ1dGVzOnt0aXRsZTpzfX0saSkpKSksbn0sY2xpY2s6ZnVuY3Rpb24oZSl7aWYoISgwLHQud2FudHNOZXdXaW5kb3cpKGUpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdHRycy5hY3Rpb24/KGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24odGhpcy5hdHRycy5hY3Rpb24sdGhpcy5hdHRycy5hY3Rpb25QYXJhbSkpOih0aGlzLnNlbmRXaWRnZXRFdmVudCgibGlua0NsaWNrZWQiLHRoaXMuYXR0cnMpLGkuZGVmYXVsdC5yb3V0ZVRvVGFnKCQoZS50YXJnZXQpLmNsb3Nlc3QoImEiKVswXSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9tZW1iZXJzaGlwLXJlcXVlc3QtYWNjZXB0ZWQtbm90aWZpY2F0aW9uLWl0ZW0iLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoMCxlLmNyZWF0ZVdpZGdldEZyb20pKHQuRGVmYXVsdE5vdGlmaWNhdGlvbkl0ZW0sIm1lbWJlcnNoaXAtcmVxdWVzdC1hY2NlcHRlZC1ub3RpZmljYXRpb24taXRlbSIse3VybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmdyb3VwUGF0aCkoZS5ncm91cF9uYW1lKX0sdGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMuIitlLHtncm91cF9uYW1lOnQuZ3JvdXBfbmFtZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9tZW1iZXJzaGlwLXJlcXVlc3QtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJtZW1iZXJzaGlwLXJlcXVlc3QtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbi51c2VyUGF0aCkoKHRoaXMuYXR0cnMudXNlcm5hbWV8fHRoaXMuY3VycmVudFVzZXIudXNlcm5hbWUpKyIvbWVzc2FnZXMiKX0sdGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMubWVtYmVyc2hpcF9yZXF1ZXN0X2NvbnNvbGlkYXRlZCIse2dyb3VwX25hbWU6dC5ncm91cF9uYW1lLGNvdW50OnBhcnNlSW50KHQuY291bnQsMTApfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL21lbnUtcGFuZWwiLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iXSxmdW5jdGlvbihlLHMpeyJ1c2Ugc3RyaWN0IjsoMCxlLmNyZWF0ZVdpZGdldCkoIm1lbnUtbGlua3MiLHtidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5uYW1lJiZlLm5hbWUubGVuZ3RoKXJldHVybiJtZW51LWNvbnRhaW5lci0iK2UubmFtZX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXS5jb25jYXQoZS5jb250ZW50cygpKSxuPXt9O2UuaGVhZGluZyYmKG4uY2xhc3NOYW1lPSJoZWFkZXIiKTt2YXIgaT1bXTtyZXR1cm4gaS5wdXNoKCgwLHMuaCkoInVsLm1lbnUtbGlua3MuY29sdW1uZWQiLHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLHMuaCkoImxpIixuLGUpfSkpKSxpLnB1c2goKDAscy5oKSgiZGl2LmNsZWFyZml4IikpLGUub21pdFJ1bGV8fGkucHVzaCgoMCxzLmgpKCJociIpKSxpfX0pLCgwLGUuY3JlYXRlV2lkZ2V0KSgibWVudS1wYW5lbCIse3RhZ05hbWU6ImRpdi5tZW51LXBhbmVsIix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO24ucHVzaCgiXG4gICAgIik7dmFyIGk9W107aS5wdXNoKCJcbiAgICAgICIpO3ZhciBzPVtdO3JldHVybiBzLnB1c2goIlxuICAgICAgICAiKSxzLnB1c2godGhpcy5hdHRycy5jb250ZW50cygpKSxzLnB1c2goIlxuICAgICAgIiksaS5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwYW5lbC1ib2R5LWNvbnRlbnRzIGNsZWFyZml4In0scykpLGkucHVzaCgiXG4gICAgIiksbi5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwYW5lbC1ib2R5In0saSkpLG4ucHVzaCgiXG4gICIpLG59LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtpZihlLm1heFdpZHRoKXJldHVybnsiZGF0YS1tYXgtd2lkdGgiOmUubWF4V2lkdGh9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWFkbWluLW1lbnUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL3dpZGdldHMvYnV0dG9uIl0sZnVuY3Rpb24oZSx0LGksbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LG4pe2lmKCF0KXJldHVybltdO3ZhciBpLHM9W107cmV0dXJuIHQuc3RhZmYmJnMucHVzaCh7aWNvbjoibGlzdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCIsbGFiZWw6InJldmlldy5tb2RlcmF0aW9uX2hpc3RvcnkiLHVybDoiL3Jldmlldz90b3BpY19pZD0iK2UudG9waWNJZCsiJnN0YXR1cz1hbGwifSksIWUuaXNXaGlzcGVyJiZ0LnN0YWZmJiYoaT17YWN0aW9uOiJ0b2dnbGVQb3N0VHlwZSIsaWNvbjoic2hpZWxkLWFsdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCB0b2dnbGUtcG9zdC10eXBlIn0sZS5pc01vZGVyYXRvckFjdGlvbj9pLmxhYmVsPSJwb3N0LmNvbnRyb2xzLnJldmVydF90b19yZWd1bGFyIjppLmxhYmVsPSJwb3N0LmNvbnRyb2xzLmNvbnZlcnRfdG9fbW9kZXJhdG9yIixzLnB1c2goaSkpLHQuc3RhZmYmJihlLm5vdGljZVR5cGU/cy5wdXNoKHtpY29uOiJ1c2VyLXNoaWVsZCIsbGFiZWw6InBvc3QuY29udHJvbHMucmVtb3ZlX3Bvc3Rfbm90aWNlIixhY3Rpb246InJlbW92ZU5vdGljZSIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCByZW1vdmUtbm90aWNlIn0pOnMucHVzaCh7aWNvbjoidXNlci1zaGllbGQiLGxhYmVsOiJwb3N0LmNvbnRyb2xzLmFkZF9wb3N0X25vdGljZSIsYWN0aW9uOiJhZGROb3RpY2UiLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgYWRkLW5vdGljZSJ9KSksZS5jYW5NYW5hZ2UmJmUuaGlkZGVuJiZzLnB1c2goe2ljb246ImZhci1leWUiLGxhYmVsOiJwb3N0LmNvbnRyb2xzLnVuaGlkZSIsYWN0aW9uOiJ1bmhpZGVQb3N0IixjbGFzc05hbWU6ImJ0bi1kZWZhdWx0IHVuaGlkZS1wb3N0In0pLHQuYWRtaW4mJnMucHVzaCh7aWNvbjoidXNlciIsbGFiZWw6InBvc3QuY29udHJvbHMuY2hhbmdlX293bmVyIixhY3Rpb246ImNoYW5nZVBvc3RPd25lciIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBjaGFuZ2Utb3duZXIifSksdC5zdGFmZiYmKG4uZW5hYmxlX2JhZGdlcyYmcy5wdXNoKHtpY29uOiJjZXJ0aWZpY2F0ZSIsbGFiZWw6InBvc3QuY29udHJvbHMuZ3JhbnRfYmFkZ2UiLGFjdGlvbjoiZ3JhbnRCYWRnZSIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBncmFudC1iYWRnZSJ9KSxlLmxvY2tlZD9zLnB1c2goe2ljb246InVubG9jayIsbGFiZWw6InBvc3QuY29udHJvbHMudW5sb2NrX3Bvc3QiLGFjdGlvbjoidW5sb2NrUG9zdCIsdGl0bGU6InBvc3QuY29udHJvbHMudW5sb2NrX3Bvc3RfZGVzY3JpcHRpb24iLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgdW5sb2NrLXBvc3QifSk6cy5wdXNoKHtpY29uOiJsb2NrIixsYWJlbDoicG9zdC5jb250cm9scy5sb2NrX3Bvc3QiLGFjdGlvbjoibG9ja1Bvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmxvY2tfcG9zdF9kZXNjcmlwdGlvbiIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBsb2NrLXBvc3QifSkpLChlLmNhbk1hbmFnZXx8ZS5jYW5XaWtpKSYmKGUud2lraT9zLnB1c2goe2FjdGlvbjoidG9nZ2xlV2lraSIsbGFiZWw6InBvc3QuY29udHJvbHMudW53aWtpIixpY29uOiJmYXItZWRpdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCB3aWtpIHdpa2llZCJ9KTpzLnB1c2goe2FjdGlvbjoidG9nZ2xlV2lraSIsbGFiZWw6InBvc3QuY29udHJvbHMud2lraSIsaWNvbjoiZmFyLWVkaXQiLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgd2lraSJ9KSksZS5jYW5NYW5hZ2UmJnMucHVzaCh7aWNvbjoiY29nIixsYWJlbDoicG9zdC5jb250cm9scy5yZWJha2UiLGFjdGlvbjoicmViYWtlUG9zdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCByZWJ1aWxkLWh0bWwifSksc31PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5idWlsZE1hbmFnZUJ1dHRvbnM9cywoMCx0LmNyZWF0ZVdpZGdldCkoInBvc3QtYWRtaW4tbWVudS1idXR0b24iLGpRdWVyeS5leHRlbmQobi5CdXR0b25DbGFzcyx7dGFnTmFtZToibGkuYnRuIn0pKSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWFkbWluLW1lbnUiLHt0YWdOYW1lOiJkaXYucG9zdC1hZG1pbi1tZW51LnBvcHVwLW1lbnUiLGh0bWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49W107cmV0dXJuIG4ucHVzaCgoMCxpLmgpKCJoMyIsSTE4bi50KCJhZG1pbl90aXRsZSIpKSkscyh0aGlzLmF0dHJzLHRoaXMuY3VycmVudFVzZXIsdGhpcy5zaXRlU2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5zZWNvbmRhcnlBY3Rpb249ImNsb3NlQWRtaW5NZW51IixuLnB1c2godC5hdHRhY2goInBvc3QtYWRtaW4tbWVudS1idXR0b24iLGUpKX0pLG59LGNsaWNrT3V0c2lkZTpmdW5jdGlvbigpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigiY2xvc2VBZG1pbk1lbnUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1jb29rZWQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvY2xpY2stdHJhY2siLCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsImRpc2NvdXJzZS9saWIvaGlnaGxpZ2h0LXRleHQiXSxmdW5jdGlvbihlLHUsaSxhLGwsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxlLmFkZERlY29yYXRvcj1mdW5jdGlvbihlKXtjLnB1c2goZSl9LGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7Yz1bXX07dmFyIGM9W107dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcyhlLnByb3RvdHlwZSx0KSxuJiZzKGUsbiksZX0obyxbe2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtpZihlLmF0dHJzLmNvb2tlZCE9PXRoaXMuYXR0cnMuY29va2VkfHxlLmF0dHJzLmhpZ2hsaWdodFRlcm0hPT10aGlzLmF0dHJzLmhpZ2hsaWdodFRlcm0pcmV0dXJuIHRoaXMuaW5pdCgpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5fY29tcHV0ZUNvb2tlZCgpO3JldHVybiB0aGlzLl9pbnNlcnRRdW90ZUNvbnRyb2xzKG4pLHRoaXMuX3Nob3dMaW5rQ291bnRzKG4pLHRoaXMuX2ZpeEltYWdlU2l6ZXMobiksdGhpcy5fYXBwbHlTZWFyY2hIaWdobGlnaHQobiksYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKG4sdC5kZWNvcmF0b3JIZWxwZXIpfSksblswXX19LHtrZXk6Il9hcHBseVNlYXJjaEhpZ2hsaWdodCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycy5oaWdobGlnaHRUZXJtO3QmJjI8dC5sZW5ndGg/KHRoaXMuX2hpZ2hsaWdodGVkJiZlLnVuaGlnaGxpZ2h0KCksKDAsbi5kZWZhdWx0KShlLHQse2RlZmF1bHRDbGFzc05hbWU6ITB9KSx0aGlzLl9oaWdobGlnaHRlZD0hMCk6dGhpcy5faGlnaGxpZ2h0ZWQmJihlLnVuaGlnaGxpZ2h0KCksdGhpcy5faGlnaGxpZ2h0ZWQ9ITEpfX0se2tleToiX2ZpeEltYWdlU2l6ZXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciBpPXRoaXMscz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9pbWFnZV93aWR0aCxvPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWF4X2ltYWdlX2hlaWdodCxyPXZvaWQgMDtlLmZpbmQoImltZzpub3QoLmF2YXRhcikiKS5lYWNoKGZ1bmN0aW9uKGUsdCl7cj1yfHwkKHdpbmRvdykud2lkdGgoKS0oaS5hdHRycy5tb2JpbGVWaWV3PzIwOjcwKSxzPHImJihyPXMpO3ZhciBuPXQuaGVpZ2h0L3Qud2lkdGg7dC53aWR0aD5yJiYodC53aWR0aD1yLHQuaGVpZ2h0PXBhcnNlSW50KHIqbiwxMCkpLHQuaGVpZ2h0Pm8mJih0LmhlaWdodD1vLHQud2lkdGg9cGFyc2VJbnQoci9uLDEwKSl9KX19LHtrZXk6Il9zaG93TGlua0NvdW50cyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycy5saW5rQ291bnRzO3QmJnQuZm9yRWFjaChmdW5jdGlvbihyKXshci5jbGlja3N8fHIuY2xpY2tzPDF8fGUuZmluZCgiYVtocmVmXSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbixpPSQodCkscz1pLmF0dHIoImhyZWYiKSxvPXM9PT1yLnVybDtyLmludGVybmFsJiYvXlwvdXBsb2Fkc1wvLy50ZXN0KHIudXJsKSYmKG89MDw9cy5pbmRleE9mKHIudXJsKSksci5pbnRlcm5hbCYmL1w/Ly50ZXN0KHMpJiYobz1zLnNwbGl0KCI/IilbMF09PT1yLnVybCksbyYmKDAsYS5pc1ZhbGlkTGluaykoaSkmJihuPUkxOG4udCgidG9waWNfbWFwLmNsaWNrcyIse2NvdW50OnIuY2xpY2tzfSksaS5hcHBlbmQoIiA8c3BhbiBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIGNsaWNrcycgdGl0bGU9JyIrbisiJz4iKygwLGwubnVtYmVyKShyLmNsaWNrcykrIjwvc3Bhbj4iKSl9KX0pfX0se2tleToiX3RvZ2dsZVF1b3RlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgcz10aGlzO2lmKCF0aGlzLmV4cGFuZGluZyl7dGhpcy5leHBhbmRpbmc9ITAsZS5kYXRhKCJleHBhbmRlZCIsIWUuZGF0YSgiZXhwYW5kZWQiKSk7dmFyIG8scix0LG4sYT1mdW5jdGlvbigpe3JldHVybiBzLmV4cGFuZGluZz0hMX07cmV0dXJuIGUuZGF0YSgiZXhwYW5kZWQiKT8odGhpcy5fdXBkYXRlUXVvdGVFbGVtZW50cyhlLCJjaGV2cm9uLXVwIiksbz0kKCI+IGJsb2NrcXVvdGUiLGUpLGUuZGF0YSgib3JpZ2luYWwtY29udGVudHMiLG8uaHRtbCgpKSxyPW8udGV4dCgpLnRyaW0oKXx8JCgiPiBibG9ja3F1b3RlIix0aGlzLmF0dHJzLmNvb2tlZCkudGV4dCgpLnRyaW0oKSxvLmh0bWwoSTE4bi50KCJsb2FkaW5nIikpLG49dGhpcy5hdHRycy50b3BpY0lkLGUuZGF0YSgidG9waWMiKSYmKG49ZS5kYXRhKCJ0b3BpYyIpKSx0PXBhcnNlSW50KGUuZGF0YSgicG9zdCIpLDEwKSxuPXBhcnNlSW50KG4sMTApLCgwLGkuYWpheCkoIi9wb3N0cy9ieV9udW1iZXIvIituKyIvIit0KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PXMuZGVjb3JhdG9ySGVscGVyLmdldE1vZGVsKCksbj10LnF1b3RlZHx8e307bltlLmlkXT1lLHQuc2V0KCJxdW90ZWQiLG4pO3ZhciBpPSQoIjxkaXYgY2xhc3M9J2V4cGFuZGVkLXF1b3RlJz48L2Rpdj4iKTtpLmRhdGEoInBvc3QtaWQiLGUuaWQpLGkuaHRtbChlLmNvb2tlZCksYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKGkscy5kZWNvcmF0b3JIZWxwZXIpfSksaS5oaWdobGlnaHQocix7Y2FzZVNlbnNpdGl2ZTohMCxlbGVtZW50OiJzcGFuIixjbGFzc05hbWU6ImhpZ2hsaWdodGVkIn0pLG8uc2hvd0h0bWwoaSwiZmFzdCIsYSl9KS5jYXRjaChmdW5jdGlvbihlKXt2YXIgdDtbNDAzLDQwNF0uaW5jbHVkZXMoZS5qcVhIUi5zdGF0dXMpJiYodD00MDM9PT1lLmpxWEhSLnN0YXR1cz8ibG9jayI6ImZhci10cmFzaC1hbHQiLG8uc2hvd0h0bWwoJCgiPGRpdiBjbGFzcz0nZXhwYW5kZWQtcXVvdGUnPiIrKDAsdS5pY29uSFRNTCkodCkrIjwvZGl2PiIpLCJmYXN0IixhKSl9KSk6KHRoaXMuX3VwZGF0ZVF1b3RlRWxlbWVudHMoZSwiY2hldnJvbi1kb3duIiksJCgiYmxvY2txdW90ZSIsZSkuc2hvd0h0bWwoZS5kYXRhKCJvcmlnaW5hbC1jb250ZW50cyIpLCJmYXN0IixhKSksITF9fX0se2tleToiX3VybEZvclBvc3ROdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiAwPGU/dGhpcy5hdHRycy50b3BpY1VybCsiLyIrZTp0aGlzLmF0dHJzLnRvcGljVXJsfX0se2tleToiX3VwZGF0ZVF1b3RlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT0iIixzPUkxOG4udCgicG9zdC5mb2xsb3dfcXVvdGUiKSxvPWUuZGF0YSgicG9zdCIpLHI9ZS5kYXRhKCJ0b3BpYyIpO3ImJnI9PT10aGlzLmF0dHJzLnRvcGljSWQmJm8mJihuPSgwLHUuaWNvbkhUTUwpKCJhcnJvdy11cCIpLGk9IjxhIGhyZWY9JyIrdGhpcy5fdXJsRm9yUG9zdE51bWJlcihvKSsiJyB0aXRsZT0nIitzKyInIGNsYXNzPSdiYWNrJz4iK24rIjwvYT4iKTt2YXIgYSxsPSIiO2UuZGF0YSgiZnVsbCIpfHwobD0oMCx1Lmljb25IVE1MKSh0LHt0aXRsZToicG9zdC5leHBhbmRfY29sbGFwc2UifSksJCgiLnRpdGxlIixlKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKSksdGhpcy5pZ25vcmVkVXNlcnMmJjA8dGhpcy5pZ25vcmVkVXNlcnMubGVuZ3RoJiYwPChhPWUuZmluZCgiLnRpdGxlIikudGV4dCgpLnRyaW0oKS5zbGljZSgwLC0xKSkubGVuZ3RoJiZ0aGlzLmlnbm9yZWRVc2Vycy5pbmNsdWRlcyhhKSYmZS5maW5kKCJwIikucmVtb3ZlKCksJCgiLnF1b3RlLWNvbnRyb2xzIixlKS5odG1sKGwraSl9fSx7a2V5OiJfaW5zZXJ0UXVvdGVDb250cm9scyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHM9dGhpcyx0PWUuZmluZCgiYXNpZGUucXVvdGUiKTswIT09dC5sZW5ndGgmJnQuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuLGk9JCh0KTtpLmRhdGEoInBvc3QiKSYmKHMuX3VwZGF0ZVF1b3RlRWxlbWVudHMoaSwiY2hldnJvbi1kb3duIiksbj0kKCIudGl0bGUiLGkpLGkuZGF0YSgiZnVsbCIpfHxuLmRhdGEoImhhcy1xdW90ZS1jb250cm9scyIpfHwobi5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3JldHVybiEhJChlLnRhcmdldCkuY2xvc2VzdCgiYSIpLmxlbmd0aHx8dm9pZCBzLl90b2dnbGVRdW90ZShpKX0pLG4uZGF0YSgiaGFzLXF1b3RlLWNvbnRyb2xzIiwhMCkpKX0pfX0se2tleToiX2NvbXB1dGVDb29rZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuYXR0cnMuZmlyc3RQb3N0fHx0aGlzLmF0dHJzLmVtYmVkZGVkUG9zdCkmJnRoaXMuaWdub3JlZFVzZXJzJiYwPHRoaXMuaWdub3JlZFVzZXJzLmxlbmd0aCYmdGhpcy5pZ25vcmVkVXNlcnMuaW5jbHVkZXModGhpcy5hdHRycy51c2VybmFtZSk/JCgiPGRpdiBjbGFzcz0nY29va2VkIHBvc3QtaWdub3JlZCc+IitJMThuLnQoInBvc3QuaWdub3JlZCIpKyI8L2Rpdj4iKTokKCI8ZGl2IGNsYXNzPSdjb29rZWQnPiIrdGhpcy5hdHRycy5jb29rZWQrIjwvZGl2PiIpfX1dKSxvKTtmdW5jdGlvbiBvKGUsdCxuKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSx0aGlzLmF0dHJzPWUsdGhpcy5leHBhbmRpbmc9ITEsdGhpcy5faGlnaGxpZ2h0ZWQ9ITEsdGhpcy5kZWNvcmF0b3JIZWxwZXI9dCx0aGlzLmN1cnJlbnRVc2VyPW4sdGhpcy5pZ25vcmVkVXNlcnM9dGhpcy5jdXJyZW50VXNlcj90aGlzLmN1cnJlbnRVc2VyLmlnbm9yZWRfdXNlcnM6bnVsbH0oZS5kZWZhdWx0PXQpLnByb3RvdHlwZS50eXBlPSJXaWRnZXQifSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWVkaXRzLWluZGljYXRvciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsdCxhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoZSx0KXtpZih0KXt2YXIgbj0obmV3IERhdGUpLmdldFRpbWUoKSxpPXQuZ2V0VGltZSgpO3JldHVybiBpPm4tM2U2KmUuaGlzdG9yeV9ob3Vyc19sb3c/ImhlYXRtYXAtaGlnaCI6aT5uLTNlNiplLmhpc3RvcnlfaG91cnNfbWVkaXVtPyJoZWF0bWFwLW1lZCI6aT5uLTNlNiplLmhpc3RvcnlfaG91cnNfaGlnaD8iaGVhdG1hcC1sb3ciOnZvaWQgMH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaGlzdG9yeUhlYXQ9YyxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWVkaXRzLWluZGljYXRvciIse3RhZ05hbWU6ImRpdi5wb3N0LWluZm8uZWRpdHMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9InBlbmNpbC1hbHQiLG49bmV3IERhdGUoZS51cGRhdGVkX2F0KSxpPWModGhpcy5zaXRlU2V0dGluZ3Msbikscz0oMCxsLmxvbmdEYXRlKShuKSxvPXZvaWQgMCxvPWUud2lraT8odD0iZmFyLWVkaXQiLGk9KChpfHwiIikrIiB3aWtpIikudHJpbSgpLDE8ZS52ZXJzaW9uP0kxOG4udCgicG9zdC5sYXN0X2VkaXRlZF9vbiIpKyIgIitzOkkxOG4udCgicG9zdC53aWtpLmFib3V0IikpOkkxOG4udCgicG9zdC5sYXN0X2VkaXRlZF9vbiIpKyIgIitzLHI9WzE8ZS52ZXJzaW9uP2UudmVyc2lvbi0xOiIiLCIgIiwoMCxhLmljb25Ob2RlKSh0KV07cmV0dXJuKDAsdS5oKSgiYSIse2NsYXNzTmFtZTppLGF0dHJpYnV0ZXM6e3RpdGxlOm8saHJlZjoiIyJ9fSxyKX0sY2xpY2s6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXR0cnMud2lraSYmMT09PXRoaXMuYXR0cnMudmVyc2lvbj90aGlzLnNlbmRXaWRnZXRBY3Rpb24oImVkaXRQb3N0Iik6dGhpcy5hdHRycy5jYW5WaWV3RWRpdEhpc3RvcnkmJnRoaXMuc2VuZFdpZGdldEFjdGlvbigic2hvd0hpc3RvcnkiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1nYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWdhcCIse3RhZ05hbWU6ImRpdi5nYXAiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJwb3N0LWdhcC0iK2UucG9zKyItIitlLnBvc3RJZH0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2xvYWRpbmc6ITF9fSxodG1sOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubG9hZGluZz9JMThuLnQoImxvYWRpbmciKTpJMThuLnQoInBvc3QuZ2FwIix7Y291bnQ6ZS5nYXAubGVuZ3RofSl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hdHRycyx0PXRoaXMuc3RhdGU7aWYoIXQubG9hZGluZyl7dC5sb2FkaW5nPSEwO3ZhciBuPXtnYXA6ZS5nYXAscG9zdDp0aGlzLm1vZGVsfTtyZXR1cm4gdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJiZWZvcmUiPT09ZS5wb3M/ImZpbGxHYXBCZWZvcmUiOiJmaWxsR2FwQWZ0ZXIiLG4pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1saW5rcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9lbW9qaSJdLGZ1bmN0aW9uKGUsbix0LGEsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWxpbmtzIix7dGFnTmFtZToiZGl2LnBvc3QtbGlua3MtY29udGFpbmVyIixidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1saW5rcy0iK2UuaWR9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntjb2xsYXBzZWQ6ITB9fSxsaW5rSHRtbDpmdW5jdGlvbihlKXt2YXIgdD0oMCxpLnJlcGxhY2VFbW9qaSkoZS50aXRsZSk7cmV0dXJuIGUuY2xpY2tzJiZ0LnB1c2goKDAsYS5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24uY2xpY2tzIixlLmNsaWNrcy50b1N0cmluZygpKSksKDAsYS5oKSgibGkiLCgwLGEuaCkoImEudHJhY2stbGluayIse2NsYXNzTmFtZToiaW5ib3VuZCIsYXR0cmlidXRlczp7aHJlZjplLnVybH19LFsoMCxuLmljb25Ob2RlKSgibGluayIpLHRdKSl9LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKHRoaXMuYXR0cnMubGlua3MmJjAhPT10aGlzLmF0dHJzLmxpbmtzLmxlbmd0aCl7dmFyIGk9dGhpcy5hdHRycy5saW5rcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVmbGVjdGlvbn0pLnVuaXFCeSgidGl0bGUiKTtpZigwIT09aS5sZW5ndGgpe3ZhciBzPVtdO2lmKGkubGVuZ3RoPD01fHwhdC5jb2xsYXBzZWQpaS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnB1c2gobi5saW5rSHRtbChlKSl9KTtlbHNle2Zvcih2YXIgbz1NYXRoLm1pbig1LGkubGVuZ3RoKSxyPTA7cjxvO3IrKylzLnB1c2godGhpcy5saW5rSHRtbChpW3JdKSk7aS5sZW5ndGg+byYmcy5wdXNoKCgwLGEuaCkoImxpIix0aGlzLmF0dGFjaCgibGluayIse2xhYmVsQ291bnQ6InBvc3RfbGlua3MudGl0bGUiLHRpdGxlOiJwb3N0X2xpbmtzLmFib3V0Iixjb3VudDppLmxlbmd0aC1vLGFjdGlvbjoiZXhwYW5kTGlua3MiLGNsYXNzTmFtZToiZXhwYW5kLWxpbmtzIn0pKSl9cmV0dXJuIHMubGVuZ3RoPygwLGEuaCkoInVsLnBvc3QtbGlua3MiLHMpOnZvaWQgMH19fSxleHBhbmRMaW5rczpmdW5jdGlvbigpe3RoaXMuc3RhdGUuY29sbGFwc2VkPSExfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LW1lbnUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvYWN0aW9ucy1zdW1tYXJ5IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLF8sdyxuLHgsdCxyLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRCdXR0b249ZnVuY3Rpb24oZSx0KXtrW2VdPXR9LGUuYnVpbGRCdXR0b249bztmdW5jdGlvbiBhKGUsdCxuLGkpe2lmKCJ0ZXN0Ij09PXMuZGVmYXVsdC5lbnZpcm9ubWVudClyZXR1cm4oMCxfLnJ1bikodGhpcyxpKTtlLnN0b3AoKS5jc3MoInRleHRJbmRlbnQiLHQpLmFuaW1hdGUoe3RleHRJbmRlbnQ6bn0se2NvbXBsZXRlOmksc3RlcDpmdW5jdGlvbihlKXskKHRoaXMpLmNzcygidHJhbnNmb3JtIiwic2NhbGUoIitlKyIpIikuYWRkQ2xhc3MoImQtbGlrZWQiKS5yZW1vdmVDbGFzcygiZC11bmxpa2VkIil9LGR1cmF0aW9uOjE1MH0sImxpbmVhciIpfXZhciBsPXt9LGs9e307ZnVuY3Rpb24gaShlLHQpe2xbZV09dH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49dC5hdHRycyxpPXQuc3RhdGUscz10LnNpdGVTZXR0aW5ncyxvPXQuc2V0dGluZ3Mscj1sW2VdO2lmKHIpe3ZhciBhPXIobixpLHMsbyk7cmV0dXJuIGEmJiFhLmlkJiYoYS5pZD1lKSxhfX1mdW5jdGlvbiB1KGUpe3ZhciB0PWUubGlrZUNvdW50O2lmKDA8dCl7dmFyIG49ZS5saWtlZD8xPT09dD8icG9zdC5oYXNfbGlrZXNfdGl0bGVfb25seV95b3UiOiJwb3N0Lmhhc19saWtlc190aXRsZV95b3UiOiJwb3N0Lmhhc19saWtlc190aXRsZSIsaT1lLnlvdXJzPyJkLWxpa2VkIjoiIixzPWUueW91cnMsbz1lLnlvdXJzPyJteS1saWtlcyI6InJlZ3VsYXItbGlrZXMiO3JldHVybiBlLnNob3dMaWtlfHwoaT1lLnlvdXJzPyJkLWxpa2VkIjoiZC11bmxpa2VkIixzPSEwKSx7YWN0aW9uOiJ0b2dnbGVXaG9MaWtlZCIsdGl0bGU6bixjbGFzc05hbWU6ImJ1dHRvbi1jb3VudCBsaWtlLWNvdW50IGhpZ2hsaWdodC1hY3Rpb24gIitvLGNvbnRlbnRzOnQsaWNvbjppLGljb25SaWdodDohMCxhZGRDb250YWluZXI6cyx0aXRsZU9wdGlvbnM6e2NvdW50OmUubGlrZWQ/dC0xOnR9fX19ZnVuY3Rpb24gUChlLHQsbil7dmFyIGk9ZS5pbmRleE9mKHQpOy0xIT09aSYmKGVbaV09bil9aSgicmVhZC1jb3VudCIsZnVuY3Rpb24oZSl7aWYoZS5zaG93UmVhZEluZGljYXRvcil7dmFyIHQ9ZS5yZWFkQ291bnQ7aWYoMDx0KXJldHVybnthY3Rpb246InRvZ2dsZVdob1JlYWQiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLnJlYWRfaW5kaWNhdG9yIixjbGFzc05hbWU6ImJ1dHRvbi1jb3VudCByZWFkLWluZGljYXRvciIsY29udGVudHM6dCxpY29uUmlnaHQ6ITAsYWRkQ29udGFpbmVyOiExfX19KSxpKCJyZWFkIixmdW5jdGlvbihlKXt2YXIgdD0wPGUucmVhZENvdW50O2lmKGUuc2hvd1JlYWRJbmRpY2F0b3ImJnQpcmV0dXJue2FjdGlvbjoidG9nZ2xlV2hvUmVhZCIsdGl0bGU6InBvc3QuY29udHJvbHMucmVhZF9pbmRpY2F0b3IiLGljb246ImJvb2stcmVhZGVyIixiZWZvcmU6InJlYWQtY291bnQiLGFkZENvbnRhaW5lcjohMX19KSxpKCJsaWtlLWNvdW50Iix1KSxpKCJsaWtlIixmdW5jdGlvbihlKXtpZighZS5zaG93TGlrZSlyZXR1cm4gdShlKTt2YXIgdD1lLmxpa2VkPyJ0b2dnbGUtbGlrZSBoYXMtbGlrZSBmYWRlLW91dCI6InRvZ2dsZS1saWtlIGxpa2UiLG49e2FjdGlvbjoibGlrZSIsaWNvbjplLmxpa2VkPyJkLWxpa2VkIjoiZC11bmxpa2VkIixjbGFzc05hbWU6dCxiZWZvcmU6Imxpa2UtY291bnQifTtyZXR1cm4gZS5saWtlZCYmIWUuY2FuVG9nZ2xlTGlrZT8obi50aXRsZT0icG9zdC5jb250cm9scy5oYXNfbGlrZWQiLG4uZGlzYWJsZWQ9ITApOm4udGl0bGU9ZS5saWtlZD8icG9zdC5jb250cm9scy51bmRvX2xpa2UiOiJwb3N0LmNvbnRyb2xzLmxpa2UiLG59KSxpKCJmbGFnLWNvdW50IixmdW5jdGlvbihlKXt2YXIgdD0iYnV0dG9uLWNvdW50IjtyZXR1cm4gMDxlLnJldmlld2FibGVTY29yZVBlbmRpbmdDb3VudCYmKHQrPSIgaGFzLXBlbmRpbmciKSx7Y2xhc3NOYW1lOnQsY29udGVudHM6KDAseC5oKSgic3BhbiIsZS5yZXZpZXdhYmxlU2NvcmVDb3VudC50b1N0cmluZygpKSx1cmw6Ii9yZXZpZXcvIitlLnJldmlld2FibGVJZH19KSxpKCJmbGFnIixmdW5jdGlvbihlKXtpZihlLnJldmlld2FibGVJZHx8ZS5jYW5GbGFnJiYhZS5oaWRkZW4pe3ZhciB0PXthY3Rpb246InNob3dGbGFncyIsdGl0bGU6InBvc3QuY29udHJvbHMuZmxhZyIsaWNvbjoiZmxhZyIsY2xhc3NOYW1lOiJjcmVhdGUtZmxhZyJ9O3JldHVybiBlLnJldmlld2FibGVJZCYmKHQuYmVmb3JlPSJmbGFnLWNvdW50IiksdH19KSxpKCJlZGl0IixmdW5jdGlvbihlKXtpZihlLmNhbkVkaXQpcmV0dXJue2FjdGlvbjoiZWRpdFBvc3QiLGNsYXNzTmFtZToiZWRpdCIsdGl0bGU6InBvc3QuY29udHJvbHMuZWRpdCIsaWNvbjoicGVuY2lsLWFsdCIsYWx3YXlzU2hvd1lvdXJzOiEwfX0pLGkoInJlcGx5LXNtYWxsIixmdW5jdGlvbihlKXtpZihlLmNhbkNyZWF0ZVBvc3Qpe3JldHVybnthY3Rpb246InJlcGx5VG9Qb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5yZXBseSIsaWNvbjoicmVwbHkiLGNsYXNzTmFtZToicmVwbHkifX19KSxpKCJ3aWtpLWVkaXQiLGZ1bmN0aW9uKGUpe2lmKGUuY2FuRWRpdCl7dmFyIHQ9e2FjdGlvbjoiZWRpdFBvc3QiLGNsYXNzTmFtZToiZWRpdCBjcmVhdGUiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmVkaXQiLGljb246ImZhci1lZGl0IixhbHdheXNTaG93WW91cnM6ITB9O3JldHVybiBlLm1vYmlsZVZpZXd8fCh0LmxhYmVsPSJwb3N0LmNvbnRyb2xzLmVkaXRfYWN0aW9uIiksdH19KSxpKCJyZXBsaWVzIixmdW5jdGlvbihlLHQsbil7dmFyIGk9ZS5yZXBseUNvdW50O2lmKGkmJigxIT09aXx8IWUucmVwbHlEaXJlY3RseUJlbG93fHwhbi5zdXBwcmVzc19yZXBseV9kaXJlY3RseV9iZWxvdykpcmV0dXJue2FjdGlvbjoidG9nZ2xlUmVwbGllc0JlbG93IixjbGFzc05hbWU6InNob3ctcmVwbGllcyIsaWNvbjp0LnJlcGxpZXNTaG93bj8iY2hldnJvbi11cCI6ImNoZXZyb24tZG93biIsdGl0bGVPcHRpb25zOntjb3VudDppfSx0aXRsZToicG9zdC5oYXNfcmVwbGllcyIsbGFiZWxPcHRpb25zOntjb3VudDppfSxsYWJlbDoicG9zdC5oYXNfcmVwbGllcyIsaWNvblJpZ2h0OiEwfX0pLGkoInNoYXJlIixmdW5jdGlvbihlKXtyZXR1cm57YWN0aW9uOiJzaGFyZSIsY2xhc3NOYW1lOiJzaGFyZSIsdGl0bGU6InBvc3QuY29udHJvbHMuc2hhcmUiLGljb246ImxpbmsiLGRhdGE6eyJzaGFyZS11cmwiOmUuc2hhcmVVcmwsInBvc3QtbnVtYmVyIjplLnBvc3RfbnVtYmVyfX19KSxpKCJyZXBseSIsZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9e2FjdGlvbjoicmVwbHlUb1Bvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLnJlcGx5IixpY29uOiJyZXBseSIsY2xhc3NOYW1lOiJyZXBseSBjcmVhdGUgZmFkZS1vdXQifTtpZihlLmNhbkNyZWF0ZVBvc3QpcmV0dXJuIWkuc2hvd1JlcGx5VGl0bGVPbk1vYmlsZSYmZS5tb2JpbGVWaWV3fHwocy5sYWJlbD0idG9waWMucmVwbHkudGl0bGUiKSxzfSksaSgiYm9va21hcmsiLGZ1bmN0aW9uKGUpe2lmKGUuY2FuQm9va21hcmspe3ZhciB0PSJib29rbWFyayI7cmV0dXJuIGUuYm9va21hcmtlZCYmKHQrPSIgYm9va21hcmtlZCIpLHtpZDplLmJvb2ttYXJrZWQ/InVuYm9va21hcmsiOiJib29rbWFyayIsYWN0aW9uOiJ0b2dnbGVCb29rbWFyayIsdGl0bGU6ZS5ib29rbWFya2VkPyJib29rbWFya3MuY3JlYXRlZCI6ImJvb2ttYXJrcy5ub3RfYm9va21hcmtlZCIsY2xhc3NOYW1lOnQsaWNvbjoiYm9va21hcmsifX19KSxpKCJib29rbWFya1dpdGhSZW1pbmRlciIsZnVuY3Rpb24oZSx0LG4pe2lmKGUuY2FuQm9va21hcmsmJm4uZW5hYmxlX2Jvb2ttYXJrc193aXRoX3JlbWluZGVycyl7dmFyIGk9WyJib29rbWFyayIsIndpdGgtcmVtaW5kZXIiXSxzPSJib29rbWFya3Mubm90X2Jvb2ttYXJrZWQiLG89e307cmV0dXJuIGUuYm9va21hcmtlZFdpdGhSZW1pbmRlciYmKGkucHVzaCgiYm9va21hcmtlZCIpLGUuYm9va21hcmtSZW1pbmRlckF0PyhzPSJib29rbWFya3MuY3JlYXRlZF93aXRoX3JlbWluZGVyIixvPXtkYXRlOm1vbWVudChlLmJvb2ttYXJrUmVtaW5kZXJBdCkudHooRGlzY291cnNlLmN1cnJlbnRVc2VyLnRpbWV6b25lKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX3dpdGhfeWVhciIpKX0pOnM9ImJvb2ttYXJrcy5jcmVhdGVkIikse2lkOmUuYm9va21hcmtlZFdpdGhSZW1pbmRlcj8idW5ib29rbWFyayI6ImJvb2ttYXJrIixhY3Rpb246InRvZ2dsZUJvb2ttYXJrV2l0aFJlbWluZGVyIix0aXRsZTpzLHRpdGxlT3B0aW9uczpvLGNsYXNzTmFtZTppLmpvaW4oIiAiKSxpY29uOmUuYm9va21hcmtSZW1pbmRlckF0PyJkaXNjb3Vyc2UtYm9va21hcmstY2xvY2siOiJib29rbWFyayJ9fX0pLGkoImFkbWluIixmdW5jdGlvbihlKXtpZihlLmNhbk1hbmFnZXx8ZS5jYW5XaWtpKXJldHVybnthY3Rpb246Im9wZW5BZG1pbk1lbnUiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmFkbWluIixjbGFzc05hbWU6InNob3ctcG9zdC1hZG1pbi1tZW51IixpY29uOiJ3cmVuY2gifX0pLGkoImRlbGV0ZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2FuUmVjb3ZlclRvcGljP3tpZDoicmVjb3Zlcl90b3BpYyIsYWN0aW9uOiJyZWNvdmVyUG9zdCIsdGl0bGU6InRvcGljLmFjdGlvbnMucmVjb3ZlciIsaWNvbjoidW5kbyIsY2xhc3NOYW1lOiJyZWNvdmVyIn06ZS5jYW5EZWxldGVUb3BpYz97aWQ6ImRlbGV0ZV90b3BpYyIsYWN0aW9uOiJkZWxldGVQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGVfdG9waWMiLGljb246ImZhci10cmFzaC1hbHQiLGNsYXNzTmFtZToiZGVsZXRlIn06ZS5jYW5SZWNvdmVyP3tpZDoicmVjb3ZlciIsYWN0aW9uOiJyZWNvdmVyUG9zdCIsdGl0bGU6InBvc3QuY29udHJvbHMudW5kZWxldGUiLGljb246InVuZG8iLGNsYXNzTmFtZToicmVjb3ZlciJ9OmUuY2FuRGVsZXRlP3tpZDoiZGVsZXRlIixhY3Rpb246ImRlbGV0ZVBvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmRlbGV0ZSIsaWNvbjoiZmFyLXRyYXNoLWFsdCIsY2xhc3NOYW1lOiJkZWxldGUifTplLnNob3dGbGFnRGVsZXRlP3tpZDoiZGVsZXRlX3RvcGljIixhY3Rpb246InNob3dEZWxldGVUb3BpY01vZGFsIix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGVfdG9waWNfZGlzYWxsb3dlZCIsaWNvbjoiZmFyLXRyYXNoLWFsdCIsY2xhc3NOYW1lOiJkZWxldGUifTp2b2lkIDB9KSxlLmRlZmF1bHQ9KDAsdy5jcmVhdGVXaWRnZXQpKCJwb3N0LW1lbnUiLHt0YWdOYW1lOiJzZWN0aW9uLnBvc3QtbWVudS1hcmVhLmNsZWFyZml4IixzZXR0aW5nczp7Y29sbGFwc2VCdXR0b25zOiEwLGJ1dHRvblR5cGU6ImZsYXQtYnV0dG9uIixzaG93UmVwbHlUaXRsZU9uTW9iaWxlOiExfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57Y29sbGFwc2VkOiEwLGxpa2VkVXNlcnM6W10scmVhZGVyczpbXSxhZG1pblZpc2libGU6ITF9fSxidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1tZW51LSIrZS5pZH0sYXR0YWNoQnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PW8oZSx0aGlzKTtpZih0KXt2YXIgbj10aGlzLmF0dGFjaCh0aGlzLnNldHRpbmdzLmJ1dHRvblR5cGUsdCk7aWYodC5iZWZvcmUpe3ZhciBpPXRoaXMuYXR0YWNoQnV0dG9uKHQuYmVmb3JlKTtyZXR1cm4oMCx4LmgpKCJkaXYuZG91YmxlLWJ1dHRvbiIsW2ksbl0pfXJldHVybiB0LmFkZENvbnRhaW5lcj8oMCx4LmgpKCJkaXYuZG91YmxlLWJ1dHRvbiIsW25dKTpufX0sbWVudUl0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnBvc3RfbWVudS5zcGxpdCgifCIpLmZpbHRlcihCb29sZWFuKX0saHRtbDpmdW5jdGlvbihhLGwpe3ZhciB1PXRoaXMsZT10aGlzLmN1cnJlbnRVc2VyLHQ9dGhpcy5rZXlWYWx1ZVN0b3JlLG49KHRoaXMuc2l0ZVNldHRpbmdzLnBvc3RfbWVudV9oaWRkZW5faXRlbXN8fCIiKS5zcGxpdCgifCIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hYS5ib29rbWFya2VkfHwiYm9va21hcmsiIT09ZX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hYS5ib29rbWFya2VkV2l0aFJlbWluZGVyfHwiYm9va21hcmtXaXRoUmVtaW5kZXIiIT09ZX0pO2UmJnQmJnQuZ2V0SW50KCJsaWtlZFBvc3RJZCIpPT09YS5pZCYmKHQucmVtb3ZlKCJsaWtlZFBvc3RJZCIpLCgwLF8ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gdS5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVMaWtlIil9KSk7dmFyIGkscz1bXSxjPVtdLG89dGhpcy5tZW51SXRlbXMoKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXUuc2l0ZVNldHRpbmdzLmVuYWJsZV9ib29rbWFya3Nfd2l0aF9yZW1pbmRlcnN8fCJib29rbWFyayIhPT1lfSk7YS53aWtpJiZhLmNhbkVkaXQmJihQKG8sImVkaXQiLCJyZXBseS1zbWFsbCIpLFAobywicmVwbHkiLCJ3aWtpLWVkaXQiKSksby5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXUuYXR0YWNoQnV0dG9uKGUsYSk7dCYmKHMucHVzaCh0KSwoYS55b3VycyYmdC5hdHRycyYmdC5hdHRycy5hbHdheXNTaG93WW91cnN8fGEucmV2aWV3YWJsZUlkJiYiZmxhZyI9PT1lfHwtMT09PW4uaW5kZXhPZihlKSkmJmMucHVzaCh0KSl9KSx0aGlzLnNldHRpbmdzLmNvbGxhcHNlQnV0dG9uc3x8KGM9cyksIWwuY29sbGFwc2VkfHxzLmxlbmd0aDw9Yy5sZW5ndGgrMT8oYz1zLGwuY29sbGFwc2VkJiYobC5jb2xsYXBzZWQ9ITEpKTooaT10aGlzLmF0dGFjaCgiZmxhdC1idXR0b24iLHthY3Rpb246InNob3dNb3JlQWN0aW9ucyIsdGl0bGU6InNob3dfbW9yZSIsY2xhc3NOYW1lOiJzaG93LW1vcmUtYWN0aW9ucyIsaWNvbjoiZWxsaXBzaXMtaCJ9KSxjLnNwbGljZShjLmxlbmd0aC0xLDAsaSkpLE9iamVjdC52YWx1ZXMoaykuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lKGEsdS5zdGF0ZSx1LnNpdGVTZXR0aW5ncyk7aWYodCl7dmFyIG49dC5wb3NpdGlvbixpPXQuYmVmb3JlQnV0dG9uLHM9dC5hZnRlckJ1dHRvbjtkZWxldGUgdC5wb3NpdGlvbjt2YXIgbz11LmF0dGFjaCh1LnNldHRpbmdzLmJ1dHRvblR5cGUsdCkscj1bXTtpZihpJiZyLnB1c2goaSh4LmgpKSxyLnB1c2gobykscyYmci5wdXNoKHMoeC5oKSksbz0oMCx4LmgpKCJzcGFuLmV4dHJhLWJ1dHRvbnMiLHIpKXN3aXRjaChuKXtjYXNlImZpcnN0IjpjLnVuc2hpZnQobyk7YnJlYWs7Y2FzZSJzZWNvbmQiOmMuc3BsaWNlKDEsMCxvKTticmVhaztjYXNlInNlY29uZC1sYXN0LWhpZGRlbiI6bC5jb2xsYXBzZWR8fGMuc3BsaWNlKGMubGVuZ3RoLTIsMCxvKTticmVhaztkZWZhdWx0OmMucHVzaChvKX19fX0pO3ZhciByPVtdLGQ9dGhpcy5hdHRhY2hCdXR0b24oInJlcGxpZXMiLGEpO2QmJnIucHVzaChkKTt2YXIgcD0oMCx3LmFwcGx5RGVjb3JhdG9ycykodGhpcywiZXh0cmEtY29udHJvbHMiLGEsbCk7ci5wdXNoKCgwLHguaCkoImRpdi5hY3Rpb25zIixjLmNvbmNhdChwKSkpLGwuYWRtaW5WaXNpYmxlJiZyLnB1c2godGhpcy5hdHRhY2goInBvc3QtYWRtaW4tbWVudSIsYSkpO3ZhciBtLGYsaCxiLGcsdix5PVsoMCx4LmgpKCJuYXYucG9zdC1jb250cm9scy5jbGVhcmZpeCIrKHRoaXMuc3RhdGUuY29sbGFwc2VkPyIuY29sbGFwc2VkIjoiLmV4cGFuZGVkIikscildO3JldHVybiBsLnJlYWRlcnMubGVuZ3RoJiYoZj0wPChtPWwudG90YWxSZWFkZXJzLWwucmVhZGVycy5sZW5ndGgpPyJwb3N0LmFjdGlvbnMucGVvcGxlLnJlYWRfY2FwcGVkIjoicG9zdC5hY3Rpb25zLnBlb3BsZS5yZWFkIixoPTA8bT9tOmwudG90YWxSZWFkZXJzLHkucHVzaCh0aGlzLmF0dGFjaCgic21hbGwtdXNlci1saXN0Iix7dXNlcnM6bC5yZWFkZXJzLGFkZFNlbGY6ITEsbGlzdENsYXNzTmFtZToid2hvLXJlYWQiLGRlc2NyaXB0aW9uOmYsY291bnQ6aH0pKSksbC5saWtlZFVzZXJzLmxlbmd0aCYmKGc9MDwoYj1sLnRvdGFsLWwubGlrZWRVc2Vycy5sZW5ndGgpPyJwb3N0LmFjdGlvbnMucGVvcGxlLmxpa2VfY2FwcGVkIjoicG9zdC5hY3Rpb25zLnBlb3BsZS5saWtlIix2PTA8Yj9iOmwudG90YWwseS5wdXNoKHRoaXMuYXR0YWNoKCJzbWFsbC11c2VyLWxpc3QiLHt1c2VyczpsLmxpa2VkVXNlcnMsYWRkU2VsZjphLmxpa2VkJiYwPT1iLGxpc3RDbGFzc05hbWU6Indoby1saWtlZCIsZGVzY3JpcHRpb246Zyxjb3VudDp2fSkpKSx5fSxvcGVuQWRtaW5NZW51OmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hZG1pblZpc2libGU9ITB9LGNsb3NlQWRtaW5NZW51OmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hZG1pblZpc2libGU9ITF9LHNob3dEZWxldGVUb3BpY01vZGFsOmZ1bmN0aW9uKCl7KDAsdC5kZWZhdWx0KSgiZGVsZXRlLXRvcGljLWRpc2FsbG93ZWQiKX0sc2hvd01vcmVBY3Rpb25zOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zdGF0ZS5jb2xsYXBzZWQ9ITEsKHRoaXMuc3RhdGUubGlrZWRVc2Vycy5sZW5ndGg/ci5Qcm9taXNlLnJlc29sdmUoKTp0aGlzLmdldFdob0xpa2VkKCkpLnRoZW4oZnVuY3Rpb24oKXtpZighZS5zdGF0ZS5yZWFkZXJzLmxlbmd0aCYmZS5hdHRycy5zaG93UmVhZEluZGljYXRvcilyZXR1cm4gZS5nZXRXaG9SZWFkKCl9KX0sbGlrZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmF0dHJzLG49dGhpcy5jdXJyZW50VXNlcixpPXRoaXMua2V5VmFsdWVTdG9yZTtpZighbilyZXR1cm4gaSYmaS5zZXQoe2tleToibGlrZWRQb3N0SWQiLHZhbHVlOmUuaWR9KSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNob3dMb2dpbiIpO2lmKHRoaXMuY2FwYWJpbGl0aWVzLmNhblZpYnJhdGUmJm5hdmlnYXRvci52aWJyYXRlKDUpLGUubGlrZWQpcmV0dXJuIHRoaXMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlTGlrZSIpO3ZhciBzPSQoIltkYXRhLXBvc3QtaWQ9IitlLmlkKyJdIC50b2dnbGUtbGlrZSAuZC1pY29uIik7cy5jbG9zZXN0KCJidXR0b24iKS5hZGRDbGFzcygiaGFzLWxpa2UiKTt2YXIgbz1bMSwxLjVdO3JldHVybiBuZXcgci5Qcm9taXNlKGZ1bmN0aW9uKGUpe2EocyxvWzBdLG9bMV0sZnVuY3Rpb24oKXthKHMsb1sxXSxvWzBdLGZ1bmN0aW9uKCl7dC5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVMaWtlIikudGhlbihmdW5jdGlvbigpe3JldHVybiBlKCl9KX0pfSl9KX0scmVmcmVzaExpa2VzOmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZS5saWtlZFVzZXJzLmxlbmd0aClyZXR1cm4gdGhpcy5nZXRXaG9MaWtlZCgpfSxyZWZyZXNoUmVhZGVyczpmdW5jdGlvbigpe2lmKHRoaXMuc3RhdGUucmVhZGVycy5sZW5ndGgpcmV0dXJuIHRoaXMuZ2V0V2hvUmVhZCgpfSxnZXRXaG9MaWtlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMsdD10aGlzLnN0YXRlO3JldHVybiB0aGlzLnN0b3JlLmZpbmQoInBvc3QtYWN0aW9uLXVzZXIiLHtpZDplLmlkLHBvc3RfYWN0aW9uX3R5cGVfaWQ6Mn0pLnRoZW4oZnVuY3Rpb24oZSl7dC5saWtlZFVzZXJzPWUubWFwKG4uYXZhdGFyQXR0cyksdC50b3RhbD1lLnRvdGFsUm93c30pfSxnZXRXaG9SZWFkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hdHRycyx0PXRoaXMuc3RhdGU7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgicG9zdC1yZWFkZXIiLHtpZDplLmlkfSkudGhlbihmdW5jdGlvbihlKXt0LnJlYWRlcnM9ZS5tYXAobi5hdmF0YXJBdHRzKSx0LnRvdGFsUmVhZGVycz1lLnRvdGFsUm93c30pfSx0b2dnbGVXaG9MaWtlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGU7aWYoIWUubGlrZWRVc2Vycy5sZW5ndGgpcmV0dXJuIHRoaXMuZ2V0V2hvTGlrZWQoKTtlLmxpa2VkVXNlcnM9W119LHRvZ2dsZVdob1JlYWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXRlO2lmKCF0aGlzLnN0YXRlLnJlYWRlcnMubGVuZ3RoKXJldHVybiB0aGlzLmdldFdob1JlYWQoKTtlLnJlYWRlcnM9W119fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtcGxhY2Vob2xkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LXBsYWNlaG9sZGVyIix7dGFnTmFtZToiYXJ0aWNsZS5wbGFjZWhvbGRlciIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtuLnB1c2goIlxuICAgICIpO3ZhciBpPVtdO2kucHVzaCgiXG4gICAgICAiKTt2YXIgcz1bXTtzLnB1c2goIlxuICAgICAgICAiKTtzLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InBsYWNlaG9sZGVyLWF2YXRhciBwbGFjZWhvbGRlci1hbmltYXRpb24ifSxbXSkpLHMucHVzaCgiXG4gICAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InRvcGljLWF2YXRhciJ9LHMpKSxpLnB1c2goIlxuICAgICAgIik7dmFyIG89W107by5wdXNoKCJcbiAgICAgICAgIik7by5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwbGFjZWhvbGRlci10ZXh0IHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJ9LFtdKSksby5wdXNoKCJcbiAgICAgICAgIik7by5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwbGFjZWhvbGRlci10ZXh0IHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJ9LFtdKSksby5wdXNoKCJcbiAgICAgICAgIik7cmV0dXJuIG8ucHVzaCh2aXJ0dWFsRG9tLmgoImRpdiIse2NsYXNzTmFtZToicGxhY2Vob2xkZXItdGV4dCBwbGFjZWhvbGRlci1hbmltYXRpb24ifSxbXSkpLG8ucHVzaCgiXG4gICAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InRvcGljLWJvZHkifSxvKSksaS5wdXNoKCJcbiAgICAiKSxuLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InJvdyJ9LGkpKSxuLnB1c2goIlxuICAiKSxufX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxpLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhlLHQsbil7dmFyIGk9bmV3IERhdGUodCkscz0oMCxsLmF1dG9VcGRhdGluZ1JlbGF0aXZlQWdlKShpLHtmb3JtYXQ6Im1lZGl1bS13aXRoLWFnbyJ9KSxvPSIiO3JldHVybiBuJiYobz0iaW52aXRlZF9ncm91cCI9PT1lfHwicmVtb3ZlZF9ncm91cCI9PT1lPyc8YSBjbGFzcz0ibWVudGlvbi1ncm91cCIgaHJlZj0iL2cvJytuKyciPkAnK24rIjwvYT4iOic8YSBjbGFzcz0ibWVudGlvbiIgaHJlZj0iJysoMCxhLnVzZXJQYXRoKShuKSsnIj5AJytuKyI8L2E+IiksSTE4bi50KCJhY3Rpb25fY29kZXMuIitlLHt3aG86byx3aGVuOnN9KS5odG1sU2FmZSgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFjdGlvbkRlc2NyaXB0aW9uSHRtbD1jLGUuYWN0aW9uRGVzY3JpcHRpb249ZnVuY3Rpb24odCxuLGkpe3JldHVybigwLHUuY29tcHV0ZWQpKHQsbixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KHQpO2lmKGUpcmV0dXJuIGMoZSx0aGlzLmdldChuKSx0aGlzLmdldChpKSl9KX0sZS5hZGRQb3N0U21hbGxBY3Rpb25JY29uPWZ1bmN0aW9uKGUsdCl7ZFtlXT10fTt2YXIgZD17ImNsb3NlZC5lbmFibGVkIjoibG9jayIsImNsb3NlZC5kaXNhYmxlZCI6InVubG9jay1hbHQiLCJhdXRvY2xvc2VkLmVuYWJsZWQiOiJsb2NrIiwiYXV0b2Nsb3NlZC5kaXNhYmxlZCI6InVubG9jay1hbHQiLCJhcmNoaXZlZC5lbmFibGVkIjoiZm9sZGVyIiwiYXJjaGl2ZWQuZGlzYWJsZWQiOiJmb2xkZXItb3BlbiIsInBpbm5lZC5lbmFibGVkIjoidGh1bWJ0YWNrIiwicGlubmVkLmRpc2FibGVkIjoidGh1bWJ0YWNrIHVucGlubmVkIiwicGlubmVkX2dsb2JhbGx5LmVuYWJsZWQiOiJ0aHVtYnRhY2siLCJwaW5uZWRfZ2xvYmFsbHkuZGlzYWJsZWQiOiJ0aHVtYnRhY2sgdW5waW5uZWQiLCJiYW5uZXIuZW5hYmxlZCI6InRodW1idGFjayIsImJhbm5lci5kaXNhYmxlZCI6InRodW1idGFjayB1bnBpbm5lZCIsInZpc2libGUuZW5hYmxlZCI6ImZhci1leWUiLCJ2aXNpYmxlLmRpc2FibGVkIjoiZmFyLWV5ZS1zbGFzaCIsc3BsaXRfdG9waWM6InNpZ24tb3V0LWFsdCIsaW52aXRlZF91c2VyOiJwbHVzLWNpcmNsZSIsaW52aXRlZF9ncm91cDoicGx1cy1jaXJjbGUiLHVzZXJfbGVmdDoibWludXMtY2lyY2xlIixyZW1vdmVkX3VzZXI6Im1pbnVzLWNpcmNsZSIscmVtb3ZlZF9ncm91cDoibWludXMtY2lyY2xlIixwdWJsaWNfdG9waWM6ImNvbW1lbnQiLHByaXZhdGVfdG9waWM6ImVudmVsb3BlIixhdXRvYnVtcGVkOiJoYW5kLXBvaW50LXJpZ2h0In07ZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicG9zdC1zbWFsbC1hY3Rpb24iLHtidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1zbWFsbC1hY3QtIitlLmlkfSx0YWdOYW1lOiJkaXYuc21hbGwtYWN0aW9uLm9uc2NyZWVuLXBvc3QiLGJ1aWxkSWQ6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3RfIitlLnBvc3RfbnVtYmVyfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5kZWxldGVkKXJldHVybiJkZWxldGVkIn0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTtlLmNhbkRlbGV0ZSYmdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6InNtYWxsLWFjdGlvbi1kZWxldGUiLGljb246InRyYXNoLWFsdCIsYWN0aW9uOiJkZWxldGVQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGUifSkpLGUuY2FuRWRpdCYmdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6InNtYWxsLWFjdGlvbi1lZGl0IixpY29uOiJwZW5jaWwtYWx0IixhY3Rpb246ImVkaXRQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5lZGl0In0pKSx0LnB1c2goci5hdmF0YXJGb3IuY2FsbCh0aGlzLCJzbWFsbCIse3RlbXBsYXRlOmUuYXZhdGFyX3RlbXBsYXRlLHVzZXJuYW1lOmUudXNlcm5hbWUsdXJsOmUudXNlcm5hbWVVcmx9KSk7dmFyIG49YyhlLmFjdGlvbkNvZGUsbmV3IERhdGUoZS5jcmVhdGVkX2F0KSxlLmFjdGlvbkNvZGVXaG8pO3JldHVybiB0LnB1c2gobmV3IGkuZGVmYXVsdCh7aHRtbDoiPHA+IituKyI8L3A+In0pKSxlLmNvb2tlZCYmdC5wdXNoKG5ldyBpLmRlZmF1bHQoe2h0bWw6IjxkaXYgY2xhc3M9J2N1c3RvbS1tZXNzYWdlJz4iK2UuY29va2VkKyI8L2Rpdj4ifSkpLFsoMCxvLmgpKCJkaXYudG9waWMtYXZhdGFyIiwoMCxzLmljb25Ob2RlKShkW2UuYWN0aW9uQ29kZV18fCJleGNsYW1hdGlvbiIpKSwoMCxvLmgpKCJkaXYuc21hbGwtYWN0aW9uLWRlc2MiLHQpXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL2xpYi90cmFuc2Zvcm0tcG9zdCIsImRpc2NvdXJzZS9saWIvcG9zdHMtd2l0aC1wbGFjZWhvbGRlcnMiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9tb3VudC13aWRnZXQiXSxmdW5jdGlvbihlLGksdCxiLGcsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBvc3RUcmFuc2Zvcm1DYWxsYmFja3M9dixlLmFkZFBvc3RUcmFuc2Zvcm1DYWxsYmFjaz1mdW5jdGlvbihlKXsocz1zfHxbXSkucHVzaChlKX0sZS5wcmV2ZW50Q2xvYWs9ZnVuY3Rpb24oZSl7cltlXT0hMH0sZS5jbG9haz1mdW5jdGlvbihlLHQpe2lmKCFvfHx5W2UuaWRdfHxyW2UuaWRdKXJldHVybjt2YXIgbj0kKCIjcG9zdF8iK2UucG9zdF9udW1iZXIpLnBhcmVudCgpO3lbZS5pZF09ITAsX1tlLmlkXT1uLm91dGVySGVpZ2h0KCksdC5kaXJ0eUtleXMua2V5RGlydHkoInBvc3QtIitlLmlkKSwoMCxpLmRlYm91bmNlKSh0LCJxdWV1ZVJlcmVuZGVyIiwxZTMpfSxlLnVuY2xvYWs9ZnVuY3Rpb24oZSx0KXtpZighb3x8IXlbZS5pZF0pcmV0dXJuO3lbZS5pZF09bnVsbCx0LmRpcnR5S2V5cy5rZXlEaXJ0eSgicG9zdC0iK2UuaWQpLHQucXVldWVSZXJlbmRlcigpfTt2YXIgcz1udWxsO2Z1bmN0aW9uIHYoZSl7aWYobnVsbCE9PXMpZm9yKHZhciB0PTA7dDxzLmxlbmd0aDt0Kyspc1t0XS5jYWxsKHRoaXMsZSl9dmFyIG89IXdpbmRvdy5pblRlc3RFbnYscj17fSx5PXt9LF89e307KDAsbi5hZGRXaWRnZXRDbGVhbkNhbGxiYWNrKSgicG9zdC1zdHJlYW0iLGZ1bmN0aW9uKCl7eT17fSxfPXt9fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicG9zdC1zdHJlYW0iLHt0YWdOYW1lOiJkaXYucG9zdC1zdHJlYW0iLGh0bWw6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PShlLnBvc3RzfHxbXSkudG9BcnJheSgpLG49W10saT1lLmdhcHMmJmUuZ2Fwcy5iZWZvcmU/ZS5nYXBzLmJlZm9yZTp7fSxzPWUuZ2FwcyYmZS5nYXBzLmFmdGVyP2UuZ2Fwcy5hZnRlcjp7fSxvPXZvaWQgMCxyPXZvaWQgMCxhPXRoaXMuc2l0ZS5tb2JpbGVWaWV3LGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIHUsYyxkLHAsbSxmLGg9dFtsXTtoIGluc3RhbmNlb2YgZy5QbGFjZWhvbGRlcj9uLnB1c2godGhpcy5hdHRhY2goInBvc3QtcGxhY2Vob2xkZXIiKSk6KHU9bDx0Lmxlbmd0aC0xP3RbbCsxXTpudWxsLChjPSgwLGIuZGVmYXVsdCkodGhpcy5jdXJyZW50VXNlcix0aGlzLnNpdGUsaCxvLHUpKS5jYW5DcmVhdGVQb3N0PWUuY2FuQ3JlYXRlUG9zdCxjLm1vYmlsZVZpZXc9YSxjLmNhbk1hbmFnZSYmKGMubXVsdGlTZWxlY3Q9ZS5tdWx0aVNlbGVjdCxlLm11bHRpU2VsZWN0JiYoYy5zZWxlY3RlZD1lLnNlbGVjdGVkUXVlcnkoaCkpKSxlLnNlYXJjaFNlcnZpY2UmJihjLmhpZ2hsaWdodFRlcm09ZS5zZWFyY2hTZXJ2aWNlLmhpZ2hsaWdodFRlcm0pLChkPWlbaC5pZF0pJiZuLnB1c2godGhpcy5hdHRhY2goInBvc3QtZ2FwIix7cG9zOiJiZWZvcmUiLHBvc3RJZDpoLmlkLGdhcDpkfSx7bW9kZWw6aH0pKSxwPW5ldyBEYXRlKGMuY3JlYXRlZF9hdCkuZ2V0VGltZSgpLCFyfHwobT1NYXRoLmZsb29yKChwLXIpLzg2NGU1KSk+dGhpcy5zaXRlU2V0dGluZ3Muc2hvd190aW1lX2dhcF9kYXlzJiZuLnB1c2godGhpcy5hdHRhY2goInRpbWUtZ2FwIix7ZGF5c1NpbmNlOm19KSkscj1wLGMuaGVpZ2h0PV9baC5pZF0sYy5jbG9ha2VkPXlbaC5pZF0sdihjKSxjLmlzU21hbGxBY3Rpb24/bi5wdXNoKHRoaXMuYXR0YWNoKCJwb3N0LXNtYWxsLWFjdGlvbiIsYyx7bW9kZWw6aH0pKTooYy5zaG93UmVhZEluZGljYXRvcj1lLnNob3dSZWFkSW5kaWNhdG9yLG4ucHVzaCh0aGlzLmF0dGFjaCgicG9zdCIsYyx7bW9kZWw6aH0pKSksKGY9c1toLmlkXSkmJm4ucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1nYXAiLHtwb3M6ImFmdGVyIixwb3N0SWQ6aC5pZCxnYXA6Zn0se21vZGVsOmh9KSksbz1oKX1yZXR1cm4gbn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1jb29rZWQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWNvcmF0b3ItaGVscGVyIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UvbGliL3RyYW5zZm9ybS1wb3N0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UvbGliL3NldHRpbmdzIiwicnN2cCJdLGZ1bmN0aW9uKGUscixhLGwsbyx1LG4saSxjLGQscCxtLGYsaCxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZyhlKXt2YXIgdD0oMCxuLnRyYW5zZm9ybUJhc2ljUG9zdCkoZSk7cmV0dXJuKDAsaS5wb3N0VHJhbnNmb3JtQ2FsbGJhY2tzKSh0KSx0fWZ1bmN0aW9uIHMoZSx0KXt2YXIgbj0oMCxtLnRyYW5zbGF0ZVNpemUpKGUpLGk9KDAsbS5hdmF0YXJVcmwpKHQudGVtcGxhdGUsbik7aWYoaSYmMCE9PWkubGVuZ3RoKXt2YXIgcz10Lm5hbWV8fCgwLG0uZm9ybWF0VXNlcm5hbWUpKHQudXNlcm5hbWUpLG89ImF2YXRhciIrKHQuZXh0cmFDbGFzc2VzPyIgIit0LmV4dHJhQ2xhc3NlczoiIikscj17YXR0cmlidXRlczp7YWx0OiIiLHdpZHRoOm4saGVpZ2h0Om4sc3JjOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGkpLHRpdGxlOnN9LGNsYXNzTmFtZTpvfTtyZXR1cm4oMCxjLmgpKCJpbWciLHIpfX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuKDAsYy5oKSgiYSIse2NsYXNzTmFtZToidHJpZ2dlci11c2VyLWNhcmQgIisodC5jbGFzc05hbWV8fCIiKSxhdHRyaWJ1dGVzOntocmVmOnQudXJsLCJkYXRhLXVzZXItY2FyZCI6dC51c2VybmFtZX19LHMoZSx0KSl9ZnVuY3Rpb24geShlLHQpe3JldHVybiBlLnJlcGx5VG9Vc2VybmFtZSYmKCFlLnJlcGx5RGlyZWN0bHlBYm92ZXx8IXQuc3VwcHJlc3NfcmVwbHlfZGlyZWN0bHlfYWJvdmUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmF2YXRhckltZz1zLGUuYXZhdGFyRm9yPXYsZS5hZGRQb3N0Q2xhc3Nlc0NhbGxiYWNrPWZ1bmN0aW9uKGUpeyhfPV98fFtdKS5wdXNoKGUpfSwidW5kZWZpbmVkIiE9dHlwZW9mIERpc2NvdXJzZSYmKERpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmF2YXRhcj12KSwoMCxsLmNyZWF0ZVdpZGdldCkoInNlbGVjdC1wb3N0Iix7dGFnTmFtZToiZGl2LnNlbGVjdC1wb3N0cyIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTshZS5zZWxlY3RlZCYmMTxlLnBvc3RfbnVtYmVyJiYoMDxlLnJlcGx5Q291bnQmJnQucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7bGFiZWw6InRvcGljLm11bHRpX3NlbGVjdC5zZWxlY3RfcmVwbGllcy5sYWJlbCIsdGl0bGU6InRvcGljLm11bHRpX3NlbGVjdC5zZWxlY3RfcmVwbGllcy50aXRsZSIsYWN0aW9uOiJzZWxlY3RSZXBsaWVzIixjbGFzc05hbWU6InNlbGVjdC1yZXBsaWVzIn0pKSx0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2xhYmVsOiJ0b3BpYy5tdWx0aV9zZWxlY3Quc2VsZWN0X2JlbG93LmxhYmVsIix0aXRsZToidG9waWMubXVsdGlfc2VsZWN0LnNlbGVjdF9iZWxvdy50aXRsZSIsYWN0aW9uOiJzZWxlY3RCZWxvdyIsY2xhc3NOYW1lOiJzZWxlY3QtYmVsb3cifSkpKTt2YXIgbj0idG9waWMubXVsdGlfc2VsZWN0LiIrKGUuc2VsZWN0ZWQ/InNlbGVjdGVkIjoic2VsZWN0IikrIl9wb3N0IjtyZXR1cm4gdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtsYWJlbDpuKyIubGFiZWwiLHRpdGxlOm4rIi50aXRsZSIsYWN0aW9uOiJ0b2dnbGVQb3N0U2VsZWN0aW9uIixjbGFzc05hbWU6InNlbGVjdC1wb3N0In0pKSx0fX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgicmVwbHktdG8tdGFiIix7dGFnTmFtZToiYS5yZXBseS10by10YWIiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJyZXBseS10by10YWItIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57bG9hZGluZzohMX19LGh0bWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5sb2FkaW5nP0kxOG4udCgibG9hZGluZyIpOlsoMCx1Lmljb25Ob2RlKSgic2hhcmUiKSwiICIscygic21hbGwiLHt0ZW1wbGF0ZTplLnJlcGx5VG9BdmF0YXJUZW1wbGF0ZSx1c2VybmFtZTplLnJlcGx5VG9Vc2VybmFtZX0pLCIgIiwoMCxjLmgpKCJzcGFuIiwoMCxtLmZvcm1hdFVzZXJuYW1lKShlLnJlcGx5VG9Vc2VybmFtZSkpXX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc3RhdGUubG9hZGluZz0hMCx0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVJlcGx5QWJvdmUiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGUubG9hZGluZz0hMX0pfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgicG9zdC1hdmF0YXItdXNlci1pbmZvIix7dGFnTmFtZToiZGl2LnBvc3QtYXZhdGFyLXVzZXItaW5mbyIsaHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInBvc3Rlci1uYW1lIixlKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtYXZhdGFyIix7dGFnTmFtZToiZGl2LnRvcGljLWF2YXRhciIsc2V0dGluZ3M6e3NpemU6ImxhcmdlIixkaXNwbGF5UG9zdGVyTmFtZTohMX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bZS51c2VyX2lkP3YuY2FsbCh0aGlzLHRoaXMuc2V0dGluZ3Muc2l6ZSx7dGVtcGxhdGU6ZS5hdmF0YXJfdGVtcGxhdGUsdXNlcm5hbWU6ZS51c2VybmFtZSxuYW1lOmUubmFtZSx1cmw6ZS51c2VybmFtZVVybCxjbGFzc05hbWU6Im1haW4tYXZhdGFyIn0pOigwLHUuaWNvbk5vZGUpKCJmYXItdHJhc2gtYWx0Iix7Y2xhc3M6ImRlbGV0ZWQtdXNlci1hdmF0YXIifSldO3JldHVybihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsfHxlLnByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3IpJiZ0LnB1c2godGhpcy5hdHRhY2goImF2YXRhci1mbGFpciIsZSkpLHQucHVzaCgoMCxjLmgpKCJkaXYucG9zdGVyLWF2YXRhci1leHRyYSIpKSx0aGlzLnNldHRpbmdzLmRpc3BsYXlQb3N0ZXJOYW1lJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtYXZhdGFyLXVzZXItaW5mbyIsZSkpLHR9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWxvY2tlZC1pbmRpY2F0b3IiLHt0YWdOYW1lOiJkaXYucG9zdC1pbmZvLnBvc3QtbG9ja2VkIix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLGk9W107cmV0dXJuIGkucHVzaChuKCJsb2NrIikpLGl9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgicG9zdC5sb2NrZWQiKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtZW1haWwtaW5kaWNhdG9yIix7dGFnTmFtZToiZGl2LnBvc3QtaW5mby52aWEtZW1haWwiLHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzQXV0b0dlbmVyYXRlZD9JMThuLnQoInBvc3QudmlhX2F1dG9fZ2VuZXJhdGVkX2VtYWlsIik6STE4bi50KCJwb3N0LnZpYV9lbWFpbCIpfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2FuVmlld1Jhd0VtYWlsPyJyYXctZW1haWwiOm51bGx9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNBdXRvR2VuZXJhdGVkPygwLHUuaWNvbk5vZGUpKCJlbnZlbG9wZSIpOigwLHUuaWNvbk5vZGUpKCJmYXItZW52ZWxvcGUiKX0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmF0dHJzLmNhblZpZXdSYXdFbWFpbCYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzaG93UmF3RW1haWwiKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtbWV0YS1kYXRhIix7dGFnTmFtZToiZGl2LnRvcGljLW1ldGEtZGF0YSIsc2V0dGluZ3M6e2Rpc3BsYXlQb3N0ZXJOYW1lOiEwfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO2UuaXNXaGlzcGVyJiZ0LnB1c2goKDAsYy5oKSgiZGl2LnBvc3QtaW5mby53aGlzcGVyIix7YXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJwb3N0LndoaXNwZXIiKX19LCgwLHUuaWNvbk5vZGUpKCJmYXItZXllLXNsYXNoIikpKTt2YXIgbj1lLndpa2kmJmUubGFzdFdpa2lFZGl0JiZuZXcgRGF0ZShlLmxhc3RXaWtpRWRpdCksaT1uZXcgRGF0ZShlLmNyZWF0ZWRfYXQpLHM9bj8oMCxwLmRhdGVOb2RlKShuKTooMCxwLmRhdGVOb2RlKShpKSxvPXtjbGFzczoicG9zdC1kYXRlIixocmVmOmUuc2hhcmVVcmwsImRhdGEtc2hhcmUtdXJsIjplLnNoYXJlVXJsLCJkYXRhLXBvc3QtbnVtYmVyIjplLnBvc3RfbnVtYmVyfTtuJiYoby5jbGFzcys9IiBsYXN0LXdpa2ktZWRpdCIpLGUudmlhX2VtYWlsJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtZW1haWwtaW5kaWNhdG9yIixlKSksZS5sb2NrZWQmJnQucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1sb2NrZWQtaW5kaWNhdG9yIixlKSksKDE8ZS52ZXJzaW9ufHxlLndpa2kpJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtZWRpdHMtaW5kaWNhdG9yIixlKSksZS5tdWx0aVNlbGVjdCYmdC5wdXNoKHRoaXMuYXR0YWNoKCJzZWxlY3QtcG9zdCIsZSkpLHkoZSx0aGlzLnNpdGVTZXR0aW5ncykmJnQucHVzaCh0aGlzLmF0dGFjaCgicmVwbHktdG8tdGFiIixlKSksdC5wdXNoKCgwLGMuaCkoImRpdi5wb3N0LWluZm8ucG9zdC1kYXRlIiwoMCxjLmgpKCJhIix7YXR0cmlidXRlczpvfSxzKSkpLHQucHVzaCgoMCxjLmgpKCJkaXYucmVhZC1zdGF0ZSIse2NsYXNzTmFtZTplLnJlYWQ/InJlYWQiOm51bGwsYXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJwb3N0LnVucmVhZCIpfX0sKDAsdS5pY29uTm9kZSkoImNpcmNsZSIpKSk7dmFyIHI9W107cmV0dXJuIHRoaXMuc2V0dGluZ3MuZGlzcGxheVBvc3Rlck5hbWUmJnIucHVzaCh0aGlzLmF0dGFjaCgicG9zdGVyLW5hbWUiLGUpKSxyLnB1c2goKDAsYy5oKSgiZGl2LnBvc3QtaW5mb3MiLHQpKSxyfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgiZXhwYW5kLWhpZGRlbiIse3RhZ05hbWU6ImEuZXhwYW5kLWhpZGRlbiIsaHRtbDpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInBvc3Quc2hvd19oaWRkZW4iKX0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImV4cGFuZEhpZGRlbiIpfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgiZXhwYW5kLXBvc3QtYnV0dG9uIix7dGFnTmFtZToiYnV0dG9uLmJ0bi5leHBhbmQtcG9zdCIsYnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuImV4cGFuZC1wb3N0LWJ1dHRvbi0iK2UuaWR9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntsb2FkaW5nRXhwYW5kZWQ6ITF9fSxodG1sOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubG9hZGluZ0V4cGFuZGVkP0kxOG4udCgibG9hZGluZyIpOltJMThuLnQoInBvc3Quc2hvd19mdWxsIiksIi4uLiJdfSxjbGljazpmdW5jdGlvbigpe3RoaXMuc3RhdGUubG9hZGluZ0V4cGFuZGVkPSEwLHRoaXMuc2VuZFdpZGdldEFjdGlvbigiZXhwYW5kRmlyc3RQb3N0Iil9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWNvbnRlbnRzIix7YnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QtY29udGVudHMtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57ZXhwYW5kZWRGaXJzdFBvc3Q6ITEscmVwbGllc0JlbG93OltdfX0sYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVsicmVndWxhciJdO3JldHVybiB0aGlzLnN0YXRlLnJlcGxpZXNTaG93bnx8dC5wdXNoKCJjb250ZW50cyIpLHkoZSx0aGlzLnNpdGVTZXR0aW5ncykmJnQucHVzaCgiYXZvaWQtdGFiIiksdH0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT0oaT1bbmV3IHIuZGVmYXVsdChlLG5ldyBhLmRlZmF1bHQodGhpcyksdGhpcy5jdXJyZW50VXNlcildKS5jb25jYXQoKDAsbC5hcHBseURlY29yYXRvcnMpKHRoaXMsImFmdGVyLWNvb2tlZCIsZSx0KSk7ZS5jb29rZWRfaGlkZGVuJiZpLnB1c2godGhpcy5hdHRhY2goImV4cGFuZC1oaWRkZW4iLGUpKSwhdC5leHBhbmRlZEZpcnN0UG9zdCYmZS5leHBhbmRhYmxlUG9zdCYmaS5wdXNoKHRoaXMuYXR0YWNoKCJleHBhbmQtcG9zdC1idXR0b24iLGUpKTt2YXIgcz17c3RhdGU6e3JlcGxpZXNTaG93bjohIXQucmVwbGllc0JlbG93Lmxlbmd0aH19O2kucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1tZW51IixlLHMpKTt2YXIgbz10LnJlcGxpZXNCZWxvdztyZXR1cm4gby5sZW5ndGgmJmkucHVzaCgoMCxjLmgpKCJzZWN0aW9uLmVtYmVkZGVkLXBvc3RzLmJvdHRvbSIsW28ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmF0dGFjaCgiZW1iZWRkZWQtcG9zdCIsZSx7bW9kZWw6bi5zdG9yZS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpfSl9KSx0aGlzLmF0dGFjaCgiYnV0dG9uIix7dGl0bGU6InBvc3QuY29sbGFwc2UiLGljb246ImNoZXZyb24tdXAiLGFjdGlvbjoidG9nZ2xlUmVwbGllc0JlbG93IixhY3Rpb25QYXJhbToidHJ1ZSIsY2xhc3NOYW1lOiJidG4gY29sbGFwc2UtdXAifSldKSksaX0sX2RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWtpJiZlLmxhc3RXaWtpRWRpdCYmbmV3IERhdGUoZS5sYXN0V2lraUVkaXQpLG49bmV3IERhdGUoZS5jcmVhdGVkX2F0KTtyZXR1cm4gdHx8bn0sdG9nZ2xlUmVwbGllc0JlbG93OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiZmFsc2UiO2lmKHRoaXMuc3RhdGUucmVwbGllc0JlbG93Lmxlbmd0aClyZXR1cm4gdGhpcy5zdGF0ZS5yZXBsaWVzQmVsb3c9W10sdm9pZCgidHJ1ZSI9PT1uJiZkLmRlZmF1bHQucm91dGVUbyh0aGlzLmF0dHJzLnRvcGljVXJsKyIvIit0aGlzLmF0dHJzLnBvc3RfbnVtYmVyKSk7dmFyIGk9dGhpcy5maW5kQW5jZXN0b3JNb2RlbCgpLHM9aT9pLmdldCgidG9waWMudXJsIik6bnVsbDtyZXR1cm4gdGhpcy5zdG9yZS5maW5kKCJwb3N0LXJlcGx5Iix7cG9zdElkOnRoaXMuYXR0cnMuaWR9KS50aGVuKGZ1bmN0aW9uKGUpe3Quc3RhdGUucmVwbGllc0JlbG93PWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNoYXJlVXJsPXMrIi8iK2UucG9zdF9udW1iZXIsZyhlKX0pfSl9LGV4cGFuZEZpcnN0UG9zdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZmluZEFuY2VzdG9yTW9kZWwoKS5leHBhbmQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGUuZXhwYW5kZWRGaXJzdFBvc3Q9ITB9KX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3Qtbm90aWNlIix7dGFnTmFtZToiZGl2LnBvc3Qtbm90aWNlIixidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9W2Uubm90aWNlVHlwZS5yZXBsYWNlKC9fL2csIi0iKV07cmV0dXJuIG5ldyBEYXRlLW5ldyBEYXRlKGUuY3JlYXRlZF9hdCk+ODY0ZTUqdGhpcy5zaXRlU2V0dGluZ3Mub2xkX3Bvc3Rfbm90aWNlX2RheXMmJnQucHVzaCgib2xkIiksdH0saHRtbDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMuc2l0ZVNldHRpbmdzLmRpc3BsYXlfbmFtZV9vbl9wb3N0cyYmKDAsaC5wcmlvcml0aXplTmFtZUluVXgpKGUubmFtZSk/ZS5uYW1lOmUudXNlcm5hbWUsaT12b2lkIDAscz12b2lkIDA7cmV0dXJuImN1c3RvbSI9PT1lLm5vdGljZVR5cGU/KHM9InVzZXItc2hpZWxkIixpPW5ldyBvLmRlZmF1bHQoe2h0bWw6IjxkaXY+IitlLm5vdGljZU1lc3NhZ2UrIjwvZGl2PiJ9KSk6Im5ld191c2VyIj09PWUubm90aWNlVHlwZT8ocz0iaGFuZHMtaGVscGluZyIsaT0oMCxjLmgpKCJwIixJMThuLnQoInBvc3Qubm90aWNlLm5ld191c2VyIix7dXNlcjpufSkpKToicmV0dXJuaW5nX3VzZXIiPT09ZS5ub3RpY2VUeXBlJiYocz0iZmFyLXNtaWxlIix0PShuZXcgRGF0ZS1uZXcgRGF0ZShlLm5vdGljZVRpbWUpKS8xZTMsaT0oMCxjLmgpKCJwIixJMThuLnQoInBvc3Qubm90aWNlLnJldHVybmluZ191c2VyIix7dXNlcjpuLHRpbWU6KDAsZi5yZWxhdGl2ZUFnZU1lZGl1bVNwYW4pKHQsITApfSkpKSxbKDAsdS5pY29uTm9kZSkocyksaV19fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWJvZHkiLHt0YWdOYW1lOiJkaXYudG9waWMtYm9keS5jbGVhcmZpeCIsaHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuYXR0YWNoKCJwb3N0LWNvbnRlbnRzIixlKSxpPVt0aGlzLmF0dGFjaCgicG9zdC1tZXRhLWRhdGEiLGUpXTtyZXR1cm4oaT1pLmNvbmNhdCgoMCxsLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItbWV0YS1kYXRhIixlLHQpKSkucHVzaChuKSxpLnB1c2godGhpcy5hdHRhY2goImFjdGlvbnMtc3VtbWFyeSIsZSkpLGkucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1saW5rcyIsZSkpLGUuc2hvd1RvcGljTWFwJiZpLnB1c2godGhpcy5hdHRhY2goInRvcGljLW1hcCIsZSkpLGl9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWFydGljbGUiLHt0YWdOYW1lOiJhcnRpY2xlLmJveGVkLm9uc2NyZWVuLXBvc3QiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJwb3N0LWFydGljbGUtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57cmVwbGllc0Fib3ZlOltdfX0sYnVpbGRJZDpmdW5jdGlvbihlKXtyZXR1cm4icG9zdF8iK2UucG9zdF9udW1iZXJ9LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gZS52aWFfZW1haWwmJnQucHVzaCgidmlhLWVtYWlsIiksZS5pc0F1dG9HZW5lcmF0ZWQmJnQucHVzaCgiaXMtYXV0by1nZW5lcmF0ZWQiKSx0fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJueyJkYXRhLXBvc3QtaWQiOmUuaWQsImRhdGEtdG9waWMtaWQiOmUudG9waWNJZCwiZGF0YS11c2VyLWlkIjplLnVzZXJfaWR9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzLHM9WygwLGMuaCkoImEudGFiTG9jIix7YXR0cmlidXRlczp7aHJlZjoiIiwiYXJpYS1oaWRkZW4iOiEwfX0pXTtyZXR1cm4gdC5yZXBsaWVzQWJvdmUubGVuZ3RoJiYobj10LnJlcGxpZXNBYm92ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkuYXR0YWNoKCJlbWJlZGRlZC1wb3N0IixlLHttb2RlbDppLnN0b3JlLmNyZWF0ZVJlY29yZCgicG9zdCIsZSksc3RhdGU6e2Fib3ZlOiEwfX0pfSkscy5wdXNoKCgwLGMuaCkoImRpdi5yb3ciLCgwLGMuaCkoInNlY3Rpb24uZW1iZWRkZWQtcG9zdHMudG9wLnRvcGljLWJvZHkub2Zmc2V0MiIsW3RoaXMuYXR0YWNoKCJidXR0b24iLHt0aXRsZToicG9zdC5jb2xsYXBzZSIsaWNvbjoiY2hldnJvbi1kb3duIixhY3Rpb246InRvZ2dsZVJlcGx5QWJvdmUiLGFjdGlvblBhcmFtOiJ0cnVlIixjbGFzc05hbWU6ImJ0biBjb2xsYXBzZS1kb3duIn0pLG5dKSkpKSxlLm5vdGljZVR5cGUmJnMucHVzaCgoMCxjLmgpKCJkaXYucm93IixbdGhpcy5hdHRhY2goInBvc3Qtbm90aWNlIixlKV0pKSxzLnB1c2goKDAsYy5oKSgiZGl2LnJvdyIsW3RoaXMuYXR0YWNoKCJwb3N0LWF2YXRhciIsZSksdGhpcy5hdHRhY2goInBvc3QtYm9keSIsZSldKSksc30sX2dldFRvcGljVXJsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maW5kQW5jZXN0b3JNb2RlbCgpO3JldHVybiBlP2UuZ2V0KCJ0b3BpYy51cmwiKTpudWxsfSx0b2dnbGVSZXBseUFib3ZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiZmFsc2UiLGk9dGhpcy5hdHRycy5yZXBseV90b19wb3N0X251bWJlcjtpZih0aGlzLmF0dHJzLm1vYmlsZVZpZXcpe3ZhciBzPXRoaXMuX2dldFRvcGljVXJsKCk7cmV0dXJuIHMmJmQuZGVmYXVsdC5yb3V0ZVRvKHMrIi8iK2kpLGIuUHJvbWlzZS5yZXNvbHZlKCl9aWYodGhpcy5zdGF0ZS5yZXBsaWVzQWJvdmUubGVuZ3RoKXJldHVybiB0aGlzLnN0YXRlLnJlcGxpZXNBYm92ZT1bXSwidHJ1ZSI9PT1uJiZkLmRlZmF1bHQucm91dGVUbyh0aGlzLmF0dHJzLnRvcGljVXJsKyIvIit0aGlzLmF0dHJzLnBvc3RfbnVtYmVyKSxiLlByb21pc2UucmVzb2x2ZSgpO3ZhciBvPXRoaXMuX2dldFRvcGljVXJsKCk7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgicG9zdC1yZXBseS1oaXN0b3J5Iix7cG9zdElkOnRoaXMuYXR0cnMuaWR9KS50aGVuKGZ1bmN0aW9uKGUpe3Quc3RhdGUucmVwbGllc0Fib3ZlPWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNoYXJlVXJsPW8rIi8iK2UucG9zdF9udW1iZXIsZyhlKX0pfSl9fSk7dmFyIF89bnVsbDtlLmRlZmF1bHQ9KDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0Iix7YnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QtIitlLmlkfSxzaGFkb3dUcmVlOiEwLGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5oZWlnaHQ/e3N0eWxlOiJtaW4taGVpZ2h0OiAiK2UuaGVpZ2h0KyJweCJ9OnZvaWQgMH0sYnVpbGRJZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5jbG9ha2VkPyJwb3N0XyIrZS5wb3N0X251bWJlcjp2b2lkIDB9LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtpZihlLmNsb2FrZWQpcmV0dXJuImNsb2FrZWQtcG9zdCI7dmFyIHQ9WyJ0b3BpYy1wb3N0IiwiY2xlYXJmaXgiXTtpZigtMSE9PWUuaWQmJiFlLmlzU2F2aW5nfHx0LnB1c2goInN0YWdlZCIpLGUuc2VsZWN0ZWQmJnQucHVzaCgic2VsZWN0ZWQiKSxlLnRvcGljT3duZXImJnQucHVzaCgidG9waWMtb3duZXIiKSxlLmhpZGRlbiYmdC5wdXNoKCJwb3N0LWhpZGRlbiIpLGUuZGVsZXRlZCYmdC5wdXNoKCJkZWxldGVkIiksZS5wcmltYXJ5X2dyb3VwX25hbWUmJnQucHVzaCgiZ3JvdXAtIitlLnByaW1hcnlfZ3JvdXBfbmFtZSksZS53aWtpJiZ0LnB1c2goIndpa2kiKSxlLmlzV2hpc3BlciYmdC5wdXNoKCJ3aGlzcGVyIiksZS5pc01vZGVyYXRvckFjdGlvbnx8ZS5pc1dhcm5pbmcmJmUuZmlyc3RQb3N0P3QucHVzaCgibW9kZXJhdG9yIik6dC5wdXNoKCJyZWd1bGFyIiksXylmb3IodmFyIG49MDtuPF8ubGVuZ3RoO24rKyl7dmFyIGk9X1tuXS5jYWxsKHRoaXMsZSk7aSYmdC5wdXNoLmFwcGx5KHQsaSl9cmV0dXJuIHR9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xvYWtlZD8iIjp0aGlzLmF0dGFjaCgicG9zdC1hcnRpY2xlIixlKX0sdG9nZ2xlTGlrZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLm1vZGVsLGk9bi5nZXQoImxpa2VBY3Rpb24iKTtpZihpJiZpLmdldCgiY2FuVG9nZ2xlIikpcmV0dXJuIGkudG9nZ2xlUHJvbWlzZShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcEV2ZW50cy50cmlnZ2VyKCJwYWdlOmxpa2UtdG9nZ2xlZCIsbixpKSx0Ll93YXJuSWZDbG9zZShlKX0pfSxfd2FybklmQ2xvc2U6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHMsbztlJiZlLmFjdGVkJiYobj0odD10aGlzLmtleVZhbHVlU3RvcmUpLmdldCgibGFzdFdhcm5lZExpa2VzIiksaT0obmV3IERhdGUpLmdldFRpbWUoKS04NjRlNSxuJiZwYXJzZUludChuLDEwKT5pfHwocz1lLnJlbWFpbmluZyxvPWUubWF4LHM9PT1NYXRoLmNlaWwoLjEqbykmJihib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5mZXdfbGlrZXNfbGVmdCIpKSx0LnNldCh7a2V5OiJsYXN0V2FybmVkTGlrZXMiLHZhbHVlOihuZXcgRGF0ZSkuZ2V0VGltZSgpfSkpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Rlci1uYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9zZXR0aW5ncyJdLGZ1bmN0aW9uKGUsdCxkLHAsbixtKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGlzYWJsZU5hbWVTdXBwcmVzc2lvbj1mdW5jdGlvbigpe2Y9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fTt2YXIgZj1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcc1wuXy1dL2csIiIpfTsoMCxkLmNyZWF0ZVdpZGdldCkoInBvc3Rlci1uYW1lLXRpdGxlIix7dGFnTmFtZToic3Bhbi51c2VyLXRpdGxlIixodG1sOmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS50aXRsZTtyZXR1cm4gZS5wcmltYXJ5R3JvdXBOYW1lJiYodD1EaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iK2UucHJpbWFyeUdyb3VwTmFtZSksbj0oMCxwLmgpKCJhLnVzZXItZ3JvdXAiLHtjbGFzc05hbWU6ZS5leHRyYUNsYXNzZXMsYXR0cmlidXRlczp7aHJlZjp0LCJkYXRhLWdyb3VwLWNhcmQiOmUucHJpbWFyeUdyb3VwTmFtZX19LGUudGl0bGUpKSxufX0pLGUuZGVmYXVsdD0oMCxkLmNyZWF0ZVdpZGdldCkoInBvc3Rlci1uYW1lIix7dGFnTmFtZToiZGl2Lm5hbWVzLnRyaWdnZXItdXNlci1jYXJkIixzZXR0aW5nczp7c2hvd05hbWVBbmRHcm91cDohMCxzaG93R2x5cGg6ITB9LHBvc3RlckdseXBoOmZ1bmN0aW9uKGUpe2lmKGUubW9kZXJhdG9yKXJldHVybigwLHQuaWNvbk5vZGUpKCJzaGllbGQtYWx0Iix7dGl0bGU6STE4bi50KCJ1c2VyLm1vZGVyYXRvcl90b29sdGlwIil9KX0sdXNlckxpbms6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxwLmgpKCJhIix7YXR0cmlidXRlczp7aHJlZjplLnVzZXJuYW1lVXJsLCJkYXRhLXVzZXItY2FyZCI6ZS51c2VybmFtZX19LCgwLG4uZm9ybWF0VXNlcm5hbWUpKHQpKX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1lLnVzZXJuYW1lLG49ZS5uYW1lLGk9dGhpcy5zaXRlU2V0dGluZ3MuZGlzcGxheV9uYW1lX29uX3Bvc3RzJiYoMCxtLnByaW9yaXRpemVOYW1lSW5VeCkobix0aGlzLnNpdGVTZXR0aW5ncykscz1pP1siZmlyc3QiLCJmdWxsLW5hbWUiXTpbImZpcnN0IiwidXNlcm5hbWUiXTtlLnN0YWZmJiZzLnB1c2goInN0YWZmIiksZS5hZG1pbiYmcy5wdXNoKCJhZG1pbiIpLGUubW9kZXJhdG9yJiZzLnB1c2goIm1vZGVyYXRvciIpLGUubmV3X3VzZXImJnMucHVzaCgibmV3LXVzZXIiKTt2YXIgbz0oMCxkLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItbmFtZSIsZSx0aGlzLnN0YXRlKXx8W10scj1lLnByaW1hcnlfZ3JvdXBfbmFtZTtyJiZyLmxlbmd0aCYmcy5wdXNoKHIpO3ZhciBhLGw9W3RoaXMudXNlckxpbmsoZSxpP246dCldOyF0aGlzLnNldHRpbmdzLnNob3dHbHlwaHx8KGE9dGhpcy5wb3N0ZXJHbHlwaChlKSkmJmwucHVzaChhKSxsPWwuY29uY2F0KG8pO3ZhciB1PVsoMCxwLmgpKCJzcGFuIix7Y2xhc3NOYW1lOnMuam9pbigiICIpfSxsKV07aWYoIXRoaXMuc2V0dGluZ3Muc2hvd05hbWVBbmRHcm91cClyZXR1cm4gdTtuJiZ0aGlzLnNpdGVTZXR0aW5ncy5kaXNwbGF5X25hbWVfb25fcG9zdHMmJmYobikhPT1mKHQpJiZ1LnB1c2goKDAscC5oKSgic3Bhbi5zZWNvbmQuIisoaT8idXNlcm5hbWUiOiJmdWxsLW5hbWUiKSxbdGhpcy51c2VyTGluayhlLGk/dDpuKV0uY29uY2F0KG8pKSk7dmFyIGM9ZS51c2VyX3RpdGxlO3JldHVybiBjJiZjLmxlbmd0aCYmdS5wdXNoKHRoaXMuYXR0YWNoKCJwb3N0ZXItbmFtZS10aXRsZSIse3RpdGxlOmMscHJpbWFyeUdyb3VwTmFtZTpyfSkpLHV9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3ByaXZhdGUtbWVzc2FnZS1tYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QiXSxmdW5jdGlvbihlLHIsdCxhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1yZW1vdmUtZ3JvdXAtbGluayIse3RhZ05hbWU6ImEucmVtb3ZlLWludml0ZWQubm8tdGV4dC5idG4taWNvbi5idG4iLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGUsaT1bXTtyZXR1cm4gaS5wdXNoKG4oInRpbWVzIikpLGl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJwcml2YXRlX21lc3NhZ2VfaW5mby5yZW1vdmVfYWxsb3dlZF9ncm91cCIse25hbWU6dGhpcy5hdHRycy5uYW1lfSksZnVuY3Rpb24oZSl7ZSYmdC5zZW5kV2lkZ2V0QWN0aW9uKCJyZW1vdmVBbGxvd2VkR3JvdXAiLHQuYXR0cnMpfSl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1tYXAtdXNlci1ncm91cCIse3RhZ05hbWU6ImRpdi51c2VyLmdyb3VwIix0cmFuc2Zvcm06ZnVuY3Rpb24oZSl7cmV0dXJue2hyZWY6RGlzY291cnNlLmdldFVSTCgiL2cvIitlLmdyb3VwLm5hbWUpfX0sdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1EaXNjb3Vyc2UuX193aWRnZXRfaGVscGVycy5pY29uTm9kZSxpPVtdO2kucHVzaCgiXG4gICAgIik7dmFyIHM9W107cy5wdXNoKCJcbiAgICAgICIpLHMucHVzaChuKCJ1c2VycyIpKSxzLnB1c2goIlxuICAgICAgIik7dmFyIG89W107cmV0dXJuIG8ucHVzaChlLmdyb3VwLm5hbWUpLHMucHVzaCh2aXJ0dWFsRG9tLmgoInNwYW4iLHtjbGFzc05hbWU6Imdyb3VwLW5hbWUifSxvKSkscy5wdXNoKCJcbiAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJhIix7aHJlZjp0aGlzLnRyYW5zZm9ybWVkLmhyZWYsY2xhc3NOYW1lOiJncm91cC1saW5rIn0scykpLGkucHVzaCgiXG4iKSxlLmlzRWRpdGluZyYmZS5jYW5SZW1vdmVBbGxvd2VkVXNlcnMmJihpLnB1c2goIiAgICAgICAgIiksaS5wdXNoKHRoaXMuYXR0YWNoKCJwbS1yZW1vdmUtZ3JvdXAtbGluayIsZS5ncm91cCkpLGkucHVzaCgiXG4iKSksaS5wdXNoKCIgICIpLGl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1yZW1vdmUtbGluayIse3RhZ05hbWU6ImEucmVtb3ZlLWludml0ZWQubm8tdGV4dC5idG4taWNvbi5idG4iLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGUsaT1bXTtyZXR1cm4gaS5wdXNoKG4oInRpbWVzIikpLGl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuYXR0cnMuaXNDdXJyZW50VXNlcj8ibGVhdmVfbWVzc2FnZSI6InJlbW92ZV9hbGxvd2VkX3VzZXIiO2Jvb3Rib3guY29uZmlybShJMThuLnQoInByaXZhdGVfbWVzc2FnZV9pbmZvLiIrZSx7bmFtZTp0aGlzLmF0dHJzLnVzZXIudXNlcm5hbWV9KSxmdW5jdGlvbihlKXtlJiZ0LnNlbmRXaWRnZXRBY3Rpb24oInJlbW92ZUFsbG93ZWRVc2VyIix0LmF0dHJzLnVzZXIpfSl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1tYXAtdXNlciIse3RhZ05hbWU6ImRpdi51c2VyIixodG1sOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT1lLnVzZXIscz0oMCxhLmgpKCJzcGFuLnVzZXJuYW1lIixpLnVzZXJuYW1lKSxvPVt0aGlzLnNpdGUmJnRoaXMuc2l0ZS5tb2JpbGVWaWV3Pyh0PSgwLGwuYXZhdGFySW1nKSgidGlueSIse3RlbXBsYXRlOmkuYXZhdGFyX3RlbXBsYXRlLHVzZXJuYW1lOmkudXNlcm5hbWV9KSwoMCxhLmgpKCJhIix7YXR0cmlidXRlczp7aHJlZjppLmdldCgicGF0aCIpfX0sW3Qsc10pKToobj0oMCxsLmF2YXRhckZvcikoInRpbnkiLHt0ZW1wbGF0ZTppLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTppLnVzZXJuYW1lfSksKDAsYS5oKSgiYSIse2F0dHJpYnV0ZXM6e2NsYXNzOiJ1c2VyLWxpbmsiLGhyZWY6aS5nZXQoInBhdGgiKX19LFtuLHNdKSldLHI9ZS5jYW5SZW1vdmVTZWxmSWQ9PT1pLmdldCgiaWQiKTtyZXR1cm4gZS5pc0VkaXRpbmcmJihlLmNhblJlbW92ZUFsbG93ZWRVc2Vyc3x8cikmJm8ucHVzaCh0aGlzLmF0dGFjaCgicG0tcmVtb3ZlLWxpbmsiLHt1c2VyOmksaXNDdXJyZW50VXNlcjpyfSkpLG99fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicHJpdmF0ZS1tZXNzYWdlLW1hcCIse3RhZ05hbWU6InNlY3Rpb24uaW5mb3JtYXRpb24ucHJpdmF0ZS1tZXNzYWdlLW1hcCIsYnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInByaXZhdGUtbWVzc2FnZS1tYXAtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57aXNFZGl0aW5nOiExfX0saHRtbDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLGU9W107dC5hbGxvd2VkR3JvdXBzLmxlbmd0aCYmZS5wdXNoKHQuYWxsb3dlZEdyb3Vwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uYXR0YWNoKCJwbS1tYXAtdXNlci1ncm91cCIse2dyb3VwOmUsY2FuUmVtb3ZlQWxsb3dlZFVzZXJzOnQuY2FuUmVtb3ZlQWxsb3dlZFVzZXJzLGlzRWRpdGluZzpuLnN0YXRlLmlzRWRpdGluZ30pfSkpLHQuYWxsb3dlZFVzZXJzLmxlbmd0aCYmZS5wdXNoKHQuYWxsb3dlZFVzZXJzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goInBtLW1hcC11c2VyIix7dXNlcjplLGNhblJlbW92ZUFsbG93ZWRVc2Vyczp0LmNhblJlbW92ZUFsbG93ZWRVc2VycyxjYW5SZW1vdmVTZWxmSWQ6dC5jYW5SZW1vdmVTZWxmSWQsaXNFZGl0aW5nOm4uc3RhdGUuaXNFZGl0aW5nfSl9KSk7dmFyIGk9IiI7IXRoaXMuc3RhdGUuaXNFZGl0aW5nJiZ0aGlzLnNpdGUubW9iaWxlVmlldyYmNDwoMCxyLm1ha2VBcnJheSkoZVswXSkubGVuZ3RoJiYoaT0iLmhpZGUtbmFtZXMiKTt2YXIgcz1bKDAsYS5oKSgiZGl2LnBhcnRpY2lwYW50cyIraSxlKV0sbz1bXTtyZXR1cm4odC5jYW5JbnZpdGV8fHQuY2FuUmVtb3ZlQWxsb3dlZFVzZXJzfHx0LmNhblJlbW92ZVNlbGZJZCkmJm8ucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7YWN0aW9uOiJ0b2dnbGVFZGl0aW5nIixsYWJlbDoicHJpdmF0ZV9tZXNzYWdlX2luZm8uZWRpdCIsY2xhc3NOYW1lOiJidG4gYnRuLWRlZmF1bHQgYWRkLXJlbW92ZS1wYXJ0aWNpcGFudC1idG4ifSkpLHQuY2FuSW52aXRlJiZ0aGlzLnN0YXRlLmlzRWRpdGluZyYmby5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHthY3Rpb246InNob3dJbnZpdGUiLGljb246InBsdXMiLGNsYXNzTmFtZToiYnRuLm5vLXRleHQuYnRuLWljb24ifSkpLG8ubGVuZ3RoJiZzLnB1c2goKDAsYS5oKSgiZGl2LmNvbnRyb2xzIixvKSksc30sdG9nZ2xlRWRpdGluZzpmdW5jdGlvbigpe3RoaXMuc3RhdGUuaXNFZGl0aW5nPSF0aGlzLnN0YXRlLmlzRWRpdGluZ319KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLWJvb2ttYXJrcyIsWyJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsdCxuLHMsaSxvKXsidXNlIHN0cmljdCI7KDAsaS5jcmVhdGVXaWRnZXRGcm9tKSh0LmRlZmF1bHQsInF1aWNrLWFjY2Vzcy1ib29rbWFya3MiLHtidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJxdWljay1hY2Nlc3MtYm9va21hcmtzIn0saGFzTW9yZTpmdW5jdGlvbigpe3JldHVybiEwfSxzaG93QWxsSHJlZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJzLnBhdGgrIi9hY3Rpdml0eS9ib29rbWFya3MifSxlbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuKDAsZS5oKSgibGkucmVhZCIsdGhpcy5zdGF0ZS5lbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtVGV4dCl9LGZpbmROZXdJdGVtczpmdW5jdGlvbigpe3ZhciBpPXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL3VzZXJfYWN0aW9ucy5qc29uIix7Y2FjaGU6ImZhbHNlIixkYXRhOnt1c2VybmFtZTp0aGlzLmN1cnJlbnRVc2VyLnVzZXJuYW1lLGZpbHRlcjpuLmRlZmF1bHQuVFlQRVMuYm9va21hcmtzLGxpbWl0OnRoaXMuZXN0aW1hdGVJdGVtTGltaXQoKSxub19yZXN1bHRzX2hlbHBfa2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2Jvb2ttYXJrcyJ9fSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1lLnVzZXJfYWN0aW9ucyxuPWUubm9fcmVzdWx0c19oZWxwO3JldHVybiBpLnN0YXRlLmVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1UZXh0PW4sdH0pfSxpdGVtSHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy1pdGVtIix7aWNvbjoiYm9va21hcmsiLGhyZWY6KDAsby5wb3N0VXJsKShlLnNsdWcsZS50b3BpY19pZCxlLnBvc3RfbnVtYmVyKSxjb250ZW50OmUudGl0bGUsdXNlcm5hbWU6ZS51c2VybmFtZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtaXRlbSIsWyJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihvLHIsZSx0LGEsbCl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgicXVpY2stYWNjZXNzLWl0ZW0iLHt0YWdOYW1lOiJsaSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiBlLmNsYXNzTmFtZSYmdC5wdXNoKGUuY2xhc3NOYW1lKSx2b2lkIDAhPT1lLnJlYWQmJiFlLnJlYWR8fHQucHVzaCgicmVhZCIpLHR9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmhyZWYsaT1lLmljb24scz10aGlzLl9jb250ZW50SHRtbCgpO3JldHVybiFufHwodD1uLm1hdGNoKC9cL3RcLy4qP1wvKFxkKykvKSkmJnRbMV0mJihzPSc8c3BhbiBkYXRhLXRvcGljLWlkPSInKyh0PSgwLGwuZXNjYXBlRXhwcmVzc2lvbikodFsxXSkpKyciPicrcysiPC9zcGFuPiIpLCgwLG8uaCkoImEiLHthdHRyaWJ1dGVzOntocmVmOm59fSxbKDAsYS5pY29uTm9kZSkoaSksbmV3IHIuZGVmYXVsdCh7aHRtbDoiPGRpdj4iK3RoaXMuX3VzZXJuYW1lSHRtbCgpK3MrIjwvZGl2PiJ9KV0pfSxjbGljazpmdW5jdGlvbihlKXtpZih0aGlzLmF0dHJzLnJlYWQ9ITAsdGhpcy5hdHRycy5hY3Rpb24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24odGhpcy5hdHRycy5hY3Rpb24sdGhpcy5hdHRycy5hY3Rpb25QYXJhbSl9LF9jb250ZW50SHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMuZXNjYXBlZENvbnRlbnR8fCgwLGwuZXNjYXBlRXhwcmVzc2lvbikodGhpcy5hdHRycy5jb250ZW50KTtyZXR1cm4oMCx0LmVtb2ppVW5lc2NhcGUpKGUpfSxfdXNlcm5hbWVIdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cnMudXNlcm5hbWU/IjxzcGFuPiIrdGhpcy5hdHRycy51c2VybmFtZSsiPC9zcGFuPiAiOiI8c3Bhbj48L3NwYW4+In19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLW1lc3NhZ2VzIixbImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3ZhciB0PWUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHwwLG49TWF0aC5taW4odCsxLGUuaGlnaGVzdF9wb3N0X251bWJlcik7cmV0dXJue2VzY2FwZWRDb250ZW50OmUuZmFuY3lfdGl0bGUsaHJlZjooMCxpLnBvc3RVcmwpKGUuc2x1ZyxlLmlkLG4pLGljb246Im5vdGlmaWNhdGlvbi5wcml2YXRlX21lc3NhZ2UiLHJlYWQ6ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXI+PWUuaGlnaGVzdF9wb3N0X251bWJlcix1c2VybmFtZTplLmxhc3RfcG9zdGVyX3VzZXJuYW1lfX0oMCx0LmNyZWF0ZVdpZGdldEZyb20pKGUuZGVmYXVsdCwicXVpY2stYWNjZXNzLW1lc3NhZ2VzIix7YnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4icXVpY2stYWNjZXNzLW1lc3NhZ2VzIn0sZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbUtleToiY2hvb3NlX3RvcGljLm5vbmVfZm91bmQiLGhhc01vcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRycy5wYXRoKyIvbWVzc2FnZXMifSxmaW5kTmV3SXRlbXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy8iK3RoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljX2xpc3QudG9waWNzLm1hcChuKS5zbGljZSgwLHQuZXN0aW1hdGVJdGVtTGltaXQoKSl9KX0saXRlbUh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYXR0YWNoKCJxdWljay1hY2Nlc3MtaXRlbSIsZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1ub3RpZmljYXRpb25zIixbImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsdC5jcmVhdGVXaWRnZXRGcm9tKShuLmRlZmF1bHQsInF1aWNrLWFjY2Vzcy1ub3RpZmljYXRpb25zIix7YnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4icXVpY2stYWNjZXNzLW5vdGlmaWNhdGlvbnMifSxlbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtS2V5OiJub3RpZmljYXRpb25zLmVtcHR5IixtYXJrUmVhZFJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4oMCxlLmFqYXgpKCIvbm90aWZpY2F0aW9ucy9tYXJrLXJlYWQiLHttZXRob2Q6IlBVVCJ9KX0sbmV3SXRlbXNMb2FkZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRVc2VyLmVuZm9yY2VkU2Vjb25kRmFjdG9yfHx0aGlzLmN1cnJlbnRVc2VyLnNldCgidW5yZWFkX25vdGlmaWNhdGlvbnMiLDApfSxpdGVtSHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUubm90aWZpY2F0aW9uTG9va3VwW2Uubm90aWZpY2F0aW9uX3R5cGVdO3JldHVybiB0aGlzLmF0dGFjaCh0LmRhc2hlcml6ZSgpKyItbm90aWZpY2F0aW9uLWl0ZW0iLGUse30se2ZhbGxiYWNrV2lkZ2V0TmFtZToiZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSJ9KX0sZmluZE5ld0l0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbmRTdGFsZUl0ZW1zSW5TdG9yZSgpLnJlZnJlc2goKX0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRycy5wYXRoKyIvbm90aWZpY2F0aW9ucyJ9LGhhc1VucmVhZDpmdW5jdGlvbigpe3JldHVybiAwPHRoaXMuZ2V0SXRlbXMoKS5maWx0ZXJCeSgicmVhZCIsITEpLmxlbmd0aH0sX2ZpbmRTdGFsZUl0ZW1zSW5TdG9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRTdGFsZSgibm90aWZpY2F0aW9uIix7cmVjZW50OiEwLHNpbGVudDp0aGlzLmN1cnJlbnRVc2VyLmVuZm9yY2VkU2Vjb25kRmFjdG9yLGxpbWl0OnRoaXMuZXN0aW1hdGVJdGVtTGltaXQoKX0se2NhY2hlS2V5OiJyZWNlbnQtbm90aWZpY2F0aW9ucyJ9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLXBhbmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9jb21wb25lbnRzL3NpdGUtaGVhZGVyIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLHMsaSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD0oMCxuLmNyZWF0ZVdpZGdldCkoInF1aWNrLWFjY2Vzcy1wYW5lbCIse3RhZ05hbWU6ImRpdi5xdWljay1hY2Nlc3MtcGFuZWwiLGVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1LZXk6IiIsYnVpbGRLZXk6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcignQ2Fubm90IGF0dGFjaCBhYnN0cmFjdCB3aWRnZXQgInF1aWNrLWFjY2Vzcy1wYW5lbCIuJyl9LG1hcmtSZWFkUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBvLlByb21pc2UucmVzb2x2ZSgpfSxoYXNVbnJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4iIn0saGFzTW9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEl0ZW1zKCkubGVuZ3RoPj10aGlzLmVzdGltYXRlSXRlbUxpbWl0KCl9LGZpbmROZXdJdGVtczpmdW5jdGlvbigpe3JldHVybiBvLlByb21pc2UucmVzb2x2ZShbXSl9LG5ld0l0ZW1zTG9hZGVkOmZ1bmN0aW9uKCl7fSxpdGVtSHRtbDpmdW5jdGlvbigpe30sZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1LZXk/KDAscy5oKSgibGkucmVhZCIsSTE4bi50KHRoaXMuZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbUtleSkpOiIifSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57aXRlbXM6W10sbG9hZGluZzohMSxsb2FkZWQ6ITF9fSxtYXJrUmVhZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMubWFya1JlYWRSZXF1ZXN0KCkudGhlbihmdW5jdGlvbigpe2UucmVmcmVzaE5vdGlmaWNhdGlvbnMoZS5zdGF0ZSl9KX0sZXN0aW1hdGVJdGVtTGltaXQ6ZnVuY3Rpb24oKXt2YXIgZT1NYXRoLnJvdW5kKCgkKHdpbmRvdykuaGVpZ2h0KCktKDAsaS5oZWFkZXJIZWlnaHQpKCktMTAwKS81MCk7cmV0dXJuIGU8NT9lPTU6NDA8ZSYmKGU9NDApLGV9LHJlZnJlc2hOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5sb2FkaW5nfHwoMD09PXRoaXMuZ2V0SXRlbXMoKS5sZW5ndGgmJihlLmxvYWRpbmc9ITApLHRoaXMuZmluZE5ld0l0ZW1zKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRJdGVtcyhlKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0SXRlbXMoW10pfSkuZmluYWxseShmdW5jdGlvbigpe2UubG9hZGluZz0hMSxlLmxvYWRlZD0hMCx0Lm5ld0l0ZW1zTG9hZGVkKCksdC5zZW5kV2lkZ2V0QWN0aW9uKCJpdGVtc0xvYWRlZCIse2hhc1VucmVhZDp0Lmhhc1VucmVhZCgpLG1hcmtSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya1JlYWQoKX19KSx0LnNjaGVkdWxlUmVyZW5kZXIoKX0pKX0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYodC5sb2FkZWR8fHRoaXMucmVmcmVzaE5vdGlmaWNhdGlvbnModCksdC5sb2FkaW5nKXJldHVyblsoMCxzLmgpKCJkaXYuc3Bpbm5lci1jb250YWluZXIiLCgwLHMuaCkoImRpdi5zcGlubmVyIikpXTt2YXIgaT10aGlzLmdldEl0ZW1zKCkubGVuZ3RoP3RoaXMuZ2V0SXRlbXMoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uaXRlbUh0bWwoZSl9KTpbdGhpcy5lbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtKCldO3JldHVybiB0aGlzLmhhc01vcmUoKSYmaS5wdXNoKCgwLHMuaCkoImxpLnJlYWQubGFzdC5zaG93LWFsbCIsdGhpcy5hdHRhY2goImxpbmsiLHt0aXRsZToidmlld19hbGwiLGljb246ImNoZXZyb24tZG93biIsaHJlZjp0aGlzLnNob3dBbGxIcmVmKCl9KSkpLFsoMCxzLmgpKCJ1bCIsaSldfSxnZXRJdGVtczpmdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHQuY3VycmVudFByb3AodGhpcy5rZXkrIi1pdGVtcyIpfHxbXX0sc2V0SXRlbXM6ZnVuY3Rpb24oZSl7dC5kZWZhdWx0LmN1cnJlbnRQcm9wKHRoaXMua2V5KyItaXRlbXMiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtcHJvZmlsZSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtcGFuZWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoMCx0LmNyZWF0ZVdpZGdldEZyb20pKGUuZGVmYXVsdCwicXVpY2stYWNjZXNzLXByb2ZpbGUiLHtidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJxdWljay1hY2Nlc3MtcHJvZmlsZSJ9LGhhc01vcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZmluZE5ld0l0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIG4uUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2dldEl0ZW1zKCkpfSxpdGVtSHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy1pdGVtIixlKX0sX2dldEl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZ2V0RGVmYXVsdEl0ZW1zKCk7cmV0dXJuIHRoaXMuX3Nob3dUb2dnbGVBbm9ueW1vdXNCdXR0b24oKSYmZS5wdXNoKHRoaXMuX3RvZ2dsZUFub255bW91c0J1dHRvbigpKSx0aGlzLmF0dHJzLnNob3dMb2dvdXRCdXR0b24mJmUucHVzaCh0aGlzLl9sb2dPdXRCdXR0b24oKSksZX0sX2dldERlZmF1bHRJdGVtczpmdW5jdGlvbigpe3ZhciBlPVt7aWNvbjoidXNlciIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9zdW1tYXJ5Iixjb250ZW50OkkxOG4udCgidXNlci5zdW1tYXJ5LnRpdGxlIil9LHtpY29uOiJzdHJlYW0iLGhyZWY6dGhpcy5hdHRycy5wYXRoKyIvYWN0aXZpdHkiLGNvbnRlbnQ6STE4bi50KCJ1c2VyLmFjdGl2aXR5X3N0cmVhbSIpfV07cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmZS5wdXNoKHtpY29uOiJlbnZlbG9wZSIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9tZXNzYWdlcyIsY29udGVudDpJMThuLnQoInVzZXIucHJpdmF0ZV9tZXNzYWdlcyIpfSksZS5wdXNoKHtpY29uOiJwZW5jaWwtYWx0IixocmVmOnRoaXMuYXR0cnMucGF0aCsiL2FjdGl2aXR5L2RyYWZ0cyIsY29udGVudDpJMThuLnQoInVzZXJfYWN0aW9uX2dyb3Vwcy4xNSIpfSx7aWNvbjoiY29nIixocmVmOnRoaXMuYXR0cnMucGF0aCsiL3ByZWZlcmVuY2VzIixjb250ZW50OkkxOG4udCgidXNlci5wcmVmZXJlbmNlcyIpfSksZX0sX3RvZ2dsZUFub255bW91c0J1dHRvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmlzX2Fub255bW91cz97YWN0aW9uOiJ0b2dnbGVBbm9ueW1vdXMiLGNsYXNzTmFtZToiZGlzYWJsZS1hbm9ueW1vdXMiLGNvbnRlbnQ6STE4bi50KCJzd2l0Y2hfZnJvbV9hbm9uIiksaWNvbjoiYmFuIn06e2FjdGlvbjoidG9nZ2xlQW5vbnltb3VzIixjbGFzc05hbWU6ImVuYWJsZS1hbm9ueW1vdXMiLGNvbnRlbnQ6STE4bi50KCJzd2l0Y2hfdG9fYW5vbiIpLGljb246InVzZXItc2VjcmV0In19LF9sb2dPdXRCdXR0b246ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOiJsb2dvdXQiLGNsYXNzTmFtZToibG9nb3V0Iixjb250ZW50OkkxOG4udCgidXNlci5sb2dfb3V0IiksaWNvbjoic2lnbi1vdXQtYWx0In19LF9zaG93VG9nZ2xlQW5vbnltb3VzQnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X2Fub255bW91c19wb3N0aW5nJiZ0aGlzLmN1cnJlbnRVc2VyLnRydXN0X2xldmVsPj10aGlzLnNpdGVTZXR0aW5ncy5hbm9ueW1vdXNfcG9zdGluZ19taW5fdHJ1c3RfbGV2ZWx8fHRoaXMuY3VycmVudFVzZXIuaXNfYW5vbnltb3VzfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX0obixbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuaHRtbCk7cmV0dXJuIHRoaXMuZGVjb3JhdGUoZSksZVswXX19LHtrZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoZS5odG1sIT09dGhpcy5odG1sKXJldHVybiB0aGlzLmluaXQoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxuKTtmdW5jdGlvbiBuKGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMuaHRtbD1lLmh0bWx9KGUuZGVmYXVsdD10KS5wcm90b3R5cGUudHlwZT0iV2lkZ2V0IiwidW5kZWZpbmVkIiE9dHlwZW9mIERpc2NvdXJzZSYmKERpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLnJhd0h0bWw9dCl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3NlYXJjaC1tZW51LWNvbnRyb2xzIixbIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0Il0sZnVuY3Rpb24ocyxvLHIsZSl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgic2VhcmNoLXRlcm0iLHt0YWdOYW1lOiJpbnB1dCIsYnVpbGRJZDpmdW5jdGlvbigpe3JldHVybiJzZWFyY2gtdGVybSJ9LGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuInNlYXJjaC10ZXJtIn0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2FmdGVyQXV0b2NvbXBsZXRlOiExfX0sc2VhcmNoQXV0b2NvbXBsZXRlQWZ0ZXJDb21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGU9ITB9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZXx8IiIsYXV0b2NvbXBsZXRlOiJkaXNjb3Vyc2UiLHBsYWNlaG9sZGVyOmUuY29udGV4dEVuYWJsZWQ/IiI6STE4bi50KCJzZWFyY2gudGl0bGUiKX19LGtleVVwOmZ1bmN0aW9uKGUpe2lmKDEzPT09ZS53aGljaCl7aWYoIXRoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGUpcmV0dXJuIHRoaXMuc2VuZFdpZGdldEFjdGlvbigiZnVsbFNlYXJjaCIpO3RoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGU9ITF9dmFyIHQ9dGhpcy5hdHRycy52YWx1ZSxuPSQoIiMiK3RoaXMuYnVpbGRJZCgpKS52YWwoKTtuIT09dCYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzZWFyY2hUZXJtQ2hhbmdlZCIsbil9fSksKDAsZS5jcmVhdGVXaWRnZXQpKCJzZWFyY2gtY29udGV4dCIse3RhZ05hbWU6ImRpdi5zZWFyY2gtY29udGV4dCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZWFyY2gtc2VydmljZTptYWluIikuZ2V0KCJzZWFyY2hDb250ZXh0IiksaT1bXTtyZXR1cm4gbiYmKHQ9KDAsby5zZWFyY2hDb250ZXh0RGVzY3JpcHRpb24pKCgwLHMuZ2V0KShuLCJ0eXBlIiksKDAscy5nZXQpKG4sInVzZXIudXNlcm5hbWUiKXx8KDAscy5nZXQpKG4sImNhdGVnb3J5Lm5hbWUiKXx8KDAscy5nZXQpKG4sInRhZy5pZCIpKSxpLnB1c2goKDAsci5oKSgibGFiZWwiLFsoMCxyLmgpKCJpbnB1dCIse3R5cGU6ImNoZWNrYm94IixjaGVja2VkOmUuY29udGV4dEVuYWJsZWR9KSwiICIsdF0pKSksZS5jb250ZXh0RW5hYmxlZHx8aS5wdXNoKHRoaXMuYXR0YWNoKCJsaW5rIix7aHJlZjplLnVybCxsYWJlbDoic2hvd19oZWxwIixjbGFzc05hbWU6InNob3ctaGVscCJ9KSksaS5wdXNoKCgwLHIuaCkoImRpdi5jbGVhcmZpeCIpKSxpfSxjbGljazpmdW5jdGlvbigpe3ZhciBlPSQoIi5zZWFyY2gtY29udGV4dCBpbnB1dCIpLmlzKCI6Y2hlY2tlZCIpO2UhPT10aGlzLmF0dHJzLmNvbnRleHRFbmFibGVkJiZ0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNlYXJjaENvbnRleHRDaGFuZ2VkIixlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvc2VhcmNoLW1lbnUtcmVzdWx0cyIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC10ZXh0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciXSxmdW5jdGlvbihpLHMsbix0LG0sbyxyLGEsbCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmdShlLnByb3RvdHlwZSx0KSxuJiZ1KGUsbiksZX07ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBjPShmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9KGQsbi5kZWZhdWx0KSxlKGQsW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKGUsdGhpcy50ZXJtKX19XSksZCk7ZnVuY3Rpb24gZChlLHQpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGQpO3ZhciBuPWZ1bmN0aW9uKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9KHRoaXMsKGQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZCkpLmNhbGwodGhpcyx7aHRtbDoiPHNwYW4+IitlKyI8L3NwYW4+In0pKTtyZXR1cm4gbi50ZXJtPXQsbn1mdW5jdGlvbiBwKGUpe3ZhciBzPWUudHlwZSxvPWUubGlua0ZpZWxkLHI9ZS5idWlsZGVyO3JldHVybigwLHQuY3JlYXRlV2lkZ2V0KSgic2VhcmNoLXJlc3VsdC0iK3Mse3RhZ05hbWU6InVsLmxpc3QiLGh0bWw6ZnVuY3Rpb24obil7dmFyIGk9dGhpcztyZXR1cm4gbi5yZXN1bHRzLm1hcChmdW5jdGlvbihlKXt2YXIgdD12b2lkIDAsdD0idG9waWMiPT09cz9lLnRvcGljX2lkOmUuaWQ7cmV0dXJuKDAsbS5oKSgibGkuaXRlbSIsaS5hdHRhY2goImxpbmsiLHtocmVmOmVbb10sY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gci5jYWxsKGksZSxuLnRlcm0pfSxjbGFzc05hbWU6InNlYXJjaC1saW5rIixzZWFyY2hSZXN1bHRJZDp0LHNlYXJjaFJlc3VsdFR5cGU6cyxzZWFyY2hDb250ZXh0RW5hYmxlZDpuLnNlYXJjaENvbnRleHRFbmFibGVkLHNlYXJjaExvZ0lkOm4uc2VhcmNoTG9nSWR9KSl9KX19KX1mdW5jdGlvbiBmKGUsdCxuKXt2YXIgaT1bdF07cmV0dXJuIHRoaXMuc2l0ZS5tb2JpbGVWaWV3fHxpLnB1c2goKDAsbS5oKSgic3Bhbi5ibHVyYiIsWygwLHMuZGF0ZU5vZGUpKGUuY3JlYXRlZF9hdCksKDAsbS5oKSgic3BhbiIsIiAtICIpLG5ldyBjKGUuYmx1cmIsbildKSksaX1wKHt0eXBlOiJ0YWciLGxpbmtGaWVsZDoidXJsIixidWlsZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLHIuZXNjYXBlRXhwcmVzc2lvbikoZS5pZCk7cmV0dXJuIG5ldyBuLmRlZmF1bHQoe2h0bWw6KDAsbC5kZWZhdWx0KSh0LHt0YWdOYW1lOiJzcGFuIn0pfSl9fSkscCh7dHlwZToiY2F0ZWdvcnkiLGxpbmtGaWVsZDoidXJsIixidWlsZGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmF0dGFjaCgiY2F0ZWdvcnktbGluayIse2NhdGVnb3J5OmUsbGluazohMX0pfX0pLHAoe3R5cGU6Imdyb3VwIixsaW5rRmllbGQ6InVybCIsYnVpbGRlcjpmdW5jdGlvbihlKXt2YXIgdD0oMCxyLmVzY2FwZUV4cHJlc3Npb24pKGUuZnVsbE5hbWUpLG49KDAsci5lc2NhcGVFeHByZXNzaW9uKShlLm5hbWUpLGk9WygwLG0uaCkoInNwYW4ubmFtZSIsdHx8bildO3QmJmkucHVzaCgoMCxtLmgpKCJzcGFuLnNsdWciLG4pKTt2YXIgcz1bZS5mbGFpclVybD90aGlzLmF0dGFjaCgiYXZhdGFyLWZsYWlyIix7cHJpbWFyeV9ncm91cF9mbGFpcl91cmw6ZS5mbGFpclVybCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOmUuZmxhaXJCZ0NvbG9yLHByaW1hcnlfZ3JvdXBfZmxhaXJfY29sb3I6ZS5mbGFpckNvbG9yLHByaW1hcnlfZ3JvdXBfbmFtZTpufSk6KDAsYS5pY29uTm9kZSkoInVzZXJzIiksKDAsbS5oKSgiZGl2Lmdyb3VwLW5hbWVzIixpKV07cmV0dXJuKDAsbS5oKSgiZGl2Lmdyb3VwLXJlc3VsdCIscyl9fSkscCh7dHlwZToidXNlciIsbGlua0ZpZWxkOiJwYXRoIixidWlsZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO2UubmFtZSYmdC5wdXNoKCgwLG0uaCkoInNwYW4ubmFtZSIsZS5uYW1lKSksdC5wdXNoKCgwLG0uaCkoInNwYW4udXNlcm5hbWUiLCgwLHIuZm9ybWF0VXNlcm5hbWUpKGUudXNlcm5hbWUpKSk7dmFyIG49WygwLGkuYXZhdGFySW1nKSgic21hbGwiLHt0ZW1wbGF0ZTplLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTplLnVzZXJuYW1lfSksKDAsbS5oKSgiZGl2LnVzZXItdGl0bGVzIix0KV07cmV0dXJuKDAsbS5oKSgiZGl2LnVzZXItcmVzdWx0IixuKX19KSxwKHt0eXBlOiJ0b3BpYyIsbGlua0ZpZWxkOiJ1cmwiLGJ1aWxkZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnRvcGljLGk9W3RoaXMuYXR0YWNoKCJ0b3BpYy1zdGF0dXMiLHt0b3BpYzpuLGRpc2FibGVBY3Rpb25zOiEwfSksKDAsbS5oKSgic3Bhbi50b3BpYy10aXRsZSIsbmV3IGMobi5mYW5jeVRpdGxlLHQpKV0scz1bdGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTpuLmNhdGVnb3J5LGxpbms6ITF9KV07RGlzY291cnNlLlNpdGVTZXR0aW5ncy50YWdnaW5nX2VuYWJsZWQmJnMucHVzaCh0aGlzLmF0dGFjaCgiZGlzY291cnNlLXRhZ3MiLHt0b3BpYzpuLHRhZ05hbWU6InNwYW4ifSkpO3ZhciBvPSgwLG0uaCkoInNwYW4udG9waWMiLFsoMCxtLmgpKCJkaXYuZmlyc3QtbGluZSIsaSksKDAsbS5oKSgiZGl2LnNlY29uZC1saW5lIixzKV0pO3JldHVybiBmLmNhbGwodGhpcyxlLG8sdCl9fSkscCh7dHlwZToicG9zdCIsbGlua0ZpZWxkOiJ1cmwiLGJ1aWxkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZi5jYWxsKHRoaXMsZSxJMThuLnQoInNlYXJjaC5wb3N0X2Zvcm1hdCIsZSksdCl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJzZWFyY2gtbWVudS1yZXN1bHRzIix7dGFnTmFtZToiZGl2LnJlc3VsdHMiLGh0bWw6ZnVuY3Rpb24obyl7dmFyIHI9dGhpcztpZihvLmludmFsaWRUZXJtKXJldHVybigwLG0uaCkoImRpdi5uby1yZXN1bHRzIixJMThuLnQoInNlYXJjaC50b29fc2hvcnQiKSk7aWYoby5ub1Jlc3VsdHMpcmV0dXJuKDAsbS5oKSgiZGl2Lm5vLXJlc3VsdHMiLEkxOG4udCgic2VhcmNoLm5vX3Jlc3VsdHMiKSk7ZnVuY3Rpb24gYShlKXt2YXIgdD1bXSxuPXtjbGFzc05hbWU6ImZpbHRlciIsY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bSTE4bi50KCJtb3JlIiksIi4uLiJdfX07aWYoZS5tb3JlVXJsP3QucHVzaChyLmF0dGFjaCgibGluayIsJC5leHRlbmQobix7aHJlZjplLm1vcmVVcmx9KSkpOmUubW9yZSYmdC5wdXNoKHIuYXR0YWNoKCJsaW5rIiwkLmV4dGVuZChuLHthY3Rpb246Im1vcmVPZlR5cGUiLGFjdGlvblBhcmFtOmUudHlwZSxjbGFzc05hbWU6ImZpbHRlciBmaWx0ZXItdHlwZSJ9KSkpLHQubGVuZ3RoKXJldHVybiB0fXZhciBlPW8ucmVzdWx0cy5yZXN1bHRUeXBlc3x8W10sbD1bXSx1PVtdLGM9W10sZD1bXSxwPVtdO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGkscz1bci5hdHRhY2goZS5jb21wb25lbnROYW1lLHtzZWFyY2hDb250ZXh0RW5hYmxlZDpvLnNlYXJjaENvbnRleHRFbmFibGVkLHNlYXJjaExvZ0lkOm8ucmVzdWx0cy5ncm91cGVkX3NlYXJjaF9yZXN1bHQuc2VhcmNoX2xvZ19pZCxyZXN1bHRzOmUucmVzdWx0cyx0ZXJtOm8udGVybX0pXTshWyJ0b3BpYyJdLmluY2x1ZGVzKGUudHlwZSl8fCh0PWEoZSkpJiZzLnB1c2goKDAsbS5oKSgiZGl2LnNob3ctbW9yZSIsdCkpLG49ZSxpPSgwLG0uaCkoImRpdi4iK2UuY29tcG9uZW50TmFtZSxzKSxbInRvcGljIl0uaW5jbHVkZXMobi50eXBlKSYmbC5wdXNoKGkpLFsidXNlciIsImdyb3VwIl0uaW5jbHVkZXMobi50eXBlKSYmKHUucHVzaChpKSxkLnB1c2goYShuKSkpLFsiY2F0ZWdvcnkiLCJ0YWciXS5pbmNsdWRlcyhuLnR5cGUpJiYoYy5wdXNoKGkpLHAucHVzaChhKG4pKSl9KTt2YXIgdCxuLGk9W107cmV0dXJuIGwubGVuZ3RoJiZpLnB1c2goKDAsbS5oKSgiZGl2Lm1haW4tcmVzdWx0cyIsbCkpLCh1Lmxlbmd0aHx8Yy5sZW5ndGgpJiYoKHQ9W10pLnB1c2godSksdC5wdXNoKGQpLHUubGVuZ3RoJiZjLmxlbmd0aCYmdC5wdXNoKCgwLG0uaCkoImRpdi5zZXBhcmF0b3IiKSksdC5wdXNoKGMpLHQucHVzaChwKSxuPSgwLG0uaCkoImRpdi5zZWNvbmRhcnktcmVzdWx0cyIsdCksaS5wdXNoKG4pKSxpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9zZWFyY2gtbWVudSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSxhLHQscixsLG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaW5pdFNlYXJjaERhdGE9bzt2YXIgYz17fTtmdW5jdGlvbiBvKCl7Yy5sb2FkaW5nPSExLGMucmVzdWx0cz17fSxjLm5vUmVzdWx0cz0hMSxjLnRlcm09dm9pZCAwLGMudHlwZUZpbHRlcj1udWxsLGMuaW52YWxpZFRlcm09ITEsYy50b3BpY0lkPW51bGx9bygpO3ZhciB1PXtfYWN0aXZlU2VhcmNoOm51bGwsX2NhbmNlbFNlYXJjaDpudWxsLGNhbmNlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fYWN0aXZlU2VhcmNoJiZ0aGlzLl9hY3RpdmVTZWFyY2guYWJvcnQoKSx0aGlzLl9jYW5jZWxTZWFyY2g9ITAsKDAsdC5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5fY2FuY2VsU2VhcmNoPSExfSw0MDApfSxwZXJmb3JtOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxzLG89dGhpczt0aGlzLl9jYW5jZWxTZWFyY2g/dGhpcy5fY2FuY2VsU2VhcmNoPW51bGw6KHRoaXMuX2FjdGl2ZVNlYXJjaCYmKHRoaXMuX2FjdGl2ZVNlYXJjaC5hYm9ydCgpLHRoaXMuX2FjdGl2ZVNlYXJjaD1udWxsKSxlPWMudGVybSxuPWMudHlwZUZpbHRlcixpPWMuY29udGV4dEVuYWJsZWQ/dC5zZWFyY2hDb250ZXh0KCk6bnVsbCxzPXQuZnVsbFNlYXJjaFVybCgpLCgwLGwuaXNWYWxpZFNlYXJjaFRlcm0pKGUpPyhjLmludmFsaWRUZXJtPSExLHRoaXMuX2FjdGl2ZVNlYXJjaD0oMCxsLnNlYXJjaEZvclRlcm0pKGUse3R5cGVGaWx0ZXI6bixzZWFyY2hDb250ZXh0OmksZnVsbFNlYXJjaFVybDpzfSksdGhpcy5fYWN0aXZlU2VhcmNoLnRoZW4oZnVuY3Rpb24oZSl7Yy5ub1Jlc3VsdHM9MD09PWUucmVzdWx0VHlwZXMubGVuZ3RoLGUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0JiYoYy50ZXJtPWUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LnRlcm0pLGMucmVzdWx0cz1lLGkmJiJ0b3BpYyI9PT1pLnR5cGU/KHQuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHtmb3JjZTohMH0pLGMudG9waWNJZD1pLmlkKTpjLnRvcGljSWQ9bnVsbH0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtjLmxvYWRpbmc9ITEsdC5zY2hlZHVsZVJlcmVuZGVyKCksby5fYWN0aXZlU2VhcmNoPW51bGx9KSk6KGMubm9SZXN1bHRzPSEwLGMucmVzdWx0cz1bXSxjLmxvYWRpbmc9ITEsYy5pbnZhbGlkVGVybT0hMCx0LnNjaGVkdWxlUmVyZW5kZXIoKSkpfX07ZS5kZWZhdWx0PSgwLG4uY3JlYXRlV2lkZ2V0KSgic2VhcmNoLW1lbnUiLHt0YWdOYW1lOiJkaXYuc2VhcmNoLW1lbnUiLHNlYXJjaERhdGE6YyxmdWxsU2VhcmNoVXJsOmZ1bmN0aW9uKGUpe3ZhciB0LG49Yy5jb250ZXh0RW5hYmxlZCxpPW4/dGhpcy5zZWFyY2hDb250ZXh0KCk6bnVsbCxzPWk/KDAsYS5nZXQpKGksInR5cGUiKTpudWxsLG89Ii9zZWFyY2giLHI9W107cmV0dXJuIGMudGVybSYmKHQ9IiIsdCs9InE9IitlbmNvZGVVUklDb21wb25lbnQoYy50ZXJtKSxuJiZpJiYodGhpcy5jdXJyZW50VXNlciYmaS5pZC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk9PT10aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWVfbG93ZXIiKSYmInByaXZhdGVfbWVzc2FnZXMiPT09cz90Kz0iIGluOnBlcnNvbmFsIjp0Kz1lbmNvZGVVUklDb21wb25lbnQoIiAiK3MrIjoiK2kuaWQpKSx0JiZyLnB1c2godCkpLGUmJmUuZXhwYW5kZWQmJnIucHVzaCgiZXhwYW5kZWQ9dHJ1ZSIpLDA8ci5sZW5ndGgmJihvPW8rIj8iK3Iuam9pbigiJiIpKSxEaXNjb3Vyc2UuZ2V0VVJMKG8pfSxwYW5lbENvbnRlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9Yy5jb250ZXh0RW5hYmxlZCx0PVt0aGlzLmF0dGFjaCgic2VhcmNoLXRlcm0iLHt2YWx1ZTpjLnRlcm0sY29udGV4dEVuYWJsZWQ6ZX0pXTtjLnRlcm0mJmMubG9hZGluZyYmdC5wdXNoKCgwLGkuaCkoImRpdi5zZWFyY2hpbmciLCgwLGkuaCkoImRpdi5zcGlubmVyIikpKTt2YXIgbj1bKDAsaS5oKSgiZGl2LnNlYXJjaC1pbnB1dCIsdCksdGhpcy5hdHRhY2goInNlYXJjaC1jb250ZXh0Iix7Y29udGV4dEVuYWJsZWQ6ZSx1cmw6dGhpcy5mdWxsU2VhcmNoVXJsKHtleHBhbmRlZDohMH0pfSldO3JldHVybiBjLnRlcm0mJiFjLmxvYWRpbmcmJm4ucHVzaCh0aGlzLmF0dGFjaCgic2VhcmNoLW1lbnUtcmVzdWx0cyIse3Rlcm06Yy50ZXJtLG5vUmVzdWx0czpjLm5vUmVzdWx0cyxyZXN1bHRzOmMucmVzdWx0cyxpbnZhbGlkVGVybTpjLmludmFsaWRUZXJtLHNlYXJjaENvbnRleHRFbmFibGVkOmMuY29udGV4dEVuYWJsZWR9KSksbn0sc2VhcmNoU2VydmljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWFyY2hTZXJ2aWNlfHwodGhpcy5fc2VhcmNoU2VydmljZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgic2VhcmNoLXNlcnZpY2U6bWFpbiIpKSx0aGlzLl9zZWFyY2hTZXJ2aWNlfSxzZWFyY2hDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlYXJjaENvbnRleHR8fCh0aGlzLl9zZWFyY2hDb250ZXh0PXRoaXMuc2VhcmNoU2VydmljZSgpLmdldCgic2VhcmNoQ29udGV4dCIpKSx0aGlzLl9zZWFyY2hDb250ZXh0fSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLnNlYXJjaENvbnRleHQoKTtyZXR1cm4oYy5jb250ZXh0RW5hYmxlZCE9PWUuY29udGV4dEVuYWJsZWR8fG4mJiJ0b3BpYyI9PT1uLnR5cGUmJm51bGwhPT1jLnRvcGljSWQmJmMudG9waWNJZCE9PW4uaWQpJiZjLnRlcm0mJnRoaXMudHJpZ2dlclNlYXJjaCgpLGMuY29udGV4dEVuYWJsZWQ9ZS5jb250ZXh0RW5hYmxlZCx0aGlzLmF0dGFjaCgibWVudS1wYW5lbCIse21heFdpZHRoOjUwMCxjb250ZW50czpmdW5jdGlvbigpe3JldHVybiB0LnBhbmVsQ29udGVudHMoKX19KX0sbW91c2VEb3duT3V0c2lkZTpmdW5jdGlvbigpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlU2VhcmNoTWVudSIpfSxrZXlEb3duOmZ1bmN0aW9uKGUpe2lmKDI3PT09ZS53aGljaClyZXR1cm4gdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVTZWFyY2hNZW51IiksZS5wcmV2ZW50RGVmYXVsdCgpLCExO2lmKCFjLmxvYWRpbmcmJiFjLm5vUmVzdWx0cyl7aWYoNjU9PT1lLndoaWNoKXt2YXIgdD0kKCJoZWFkZXIgLnJlc3VsdHMgLnNlYXJjaC1saW5rOmZvY3VzIik7aWYoMT09PXQubGVuZ3RoJiYxPT09JCgiI3JlcGx5LWNvbnRyb2wub3BlbiIpLmxlbmd0aClyZXR1cm4gdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLHRbMF0uaHJlZix7ZW5zdXJlU3BhY2U6ITB9KSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InNlYXJjaCJ9KSxlLnByZXZlbnREZWZhdWx0KCksJCgiI3JlcGx5LWNvbnRyb2wub3BlbiB0ZXh0YXJlYSIpLmZvY3VzKCksITF9dmFyIG49Mzg9PT1lLndoaWNoLGk9NDA9PT1lLndoaWNoO2lmKG58fGkpe3ZhciBzPSQoImhlYWRlciAucGFuZWwtYm9keSAqOmZvY3VzIilbMF07aWYoIXMpcmV0dXJuO3ZhciBvPSQoImhlYWRlciAucGFuZWwtYm9keSAucmVzdWx0cyBhIikscj0kKCJoZWFkZXIgLnBhbmVsLWJvZHkgLnJlc3VsdHMgLnNlYXJjaC1saW5rIiksYT12b2lkIDAsbD12b2lkIDA7by5lYWNoKGZ1bmN0aW9uKGUsdCl7JCh0KS5oYXNDbGFzcygic2VhcmNoLWxpbmsiKSYmKGE9dCksdD09PXMmJihsPWEpfSk7dmFyIHU9LTE7cmV0dXJuIGwmJih1PXIuaW5kZXgobCkpLC0xPT09dSYmaT8kKCJoZWFkZXIgLnBhbmVsLWJvZHkgLnNlYXJjaC1saW5rOmZpcnN0IikuZm9jdXMoKTowPT09dSYmbj8kKCJoZWFkZXIgLnBhbmVsLWJvZHkgaW5wdXQ6Zmlyc3QiKS5mb2N1cygpOi0xPHUmJjA8PSh1Kz1pPzE6LTEpJiZ1PHIubGVuZ3RoJiYkKHJbdV0pLmZvY3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpLCExfX19LHRyaWdnZXJTZWFyY2g6ZnVuY3Rpb24oKXtjLm5vUmVzdWx0cz0hMSx0aGlzLnNlYXJjaFNlcnZpY2UoKS5zZXQoImhpZ2hsaWdodFRlcm0iLGMudGVybSksYy5sb2FkaW5nPSEwLCgwLHQuZGVib3VuY2UpKHUsdS5wZXJmb3JtLHRoaXMsNDAwKX0sbW9yZU9mVHlwZTpmdW5jdGlvbihlKXtjLnR5cGVGaWx0ZXI9ZSx0aGlzLnRyaWdnZXJTZWFyY2goKX0sc2VhcmNoQ29udGV4dENoYW5nZWQ6ZnVuY3Rpb24oZSl7Yy50eXBlRmlsdGVyPW51bGwsdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzZWFyY2hNZW51Q29udGV4dENoYW5nZWQiLGUpLGMuY29udGV4dEVuYWJsZWQ9ZSx0aGlzLnRyaWdnZXJTZWFyY2goKX0sc2VhcmNoVGVybUNoYW5nZWQ6ZnVuY3Rpb24oZSl7Yy50eXBlRmlsdGVyPW51bGwsYy50ZXJtPWUsdGhpcy50cmlnZ2VyU2VhcmNoKCl9LGZ1bGxTZWFyY2g6ZnVuY3Rpb24oKXt2YXIgZTsoMCxsLmlzVmFsaWRTZWFyY2hUZXJtKShjLnRlcm0pJiYoYy5yZXN1bHRzPVtdLGMubG9hZGluZz0hMSx1LmNhbmNlbCgpLChlPXRoaXMuZnVsbFNlYXJjaFVybCgpKSYmKHRoaXMuc2VuZFdpZGdldEV2ZW50KCJsaW5rQ2xpY2tlZCIpLHMuZGVmYXVsdC5yb3V0ZVRvKGUpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3RpbWUtZ2FwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInRpbWUtZ2FwIix7dGFnTmFtZToiZGl2LnRpbWUtZ2FwLnNtYWxsLWFjdGlvbiIsaHRtbDpmdW5jdGlvbihlKXtyZXR1cm5bKDAsbi5oKSgiZGl2LnRvcGljLWF2YXRhciIsIiIpLCgwLG4uaCkoImRpdi5zbWFsbC1hY3Rpb24tZGVzYy50aW1lZ2FwIixmdW5jdGlvbihlKXt2YXIgdD1lLmRheXNTaW5jZTtpZih0PDMwKXJldHVybiBJMThuLnQoImRhdGVzLmxhdGVyLnhfZGF5cyIse2NvdW50OnR9KTtpZih0PDM2NSl7dmFyIG49TWF0aC5yb3VuZCh0LzMwKTtyZXR1cm4gSTE4bi50KCJkYXRlcy5sYXRlci54X21vbnRocyIse2NvdW50Om59KX12YXIgaT1NYXRoLnJvdW5kKHQvMzY1KTtyZXR1cm4gSTE4bi50KCJkYXRlcy5sYXRlci54X3llYXJzIix7Y291bnQ6aX0pfShlKSldfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy90b2dnbGUtdG9waWMtc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTsoMCxuLmNyZWF0ZVdpZGdldCkoInRvZ2dsZS1zdW1tYXJ5LWRlc2NyaXB0aW9uIix7ZGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7aWYoZS50b3BpY1N1bW1hcnlFbmFibGVkKXJldHVybiBJMThuLnQoInN1bW1hcnkuZW5hYmxlZF9kZXNjcmlwdGlvbiIpO2lmKGUudG9waWNXb3JkQ291bnQmJjA8dGhpcy5zaXRlU2V0dGluZ3MucmVhZF90aW1lX3dvcmRfY291bnQpe3ZhciB0PU1hdGguY2VpbChNYXRoLm1heChlLnRvcGljV29yZENvdW50L3RoaXMuc2l0ZVNldHRpbmdzLnJlYWRfdGltZV93b3JkX2NvdW50LDQqZS50b3BpY1Bvc3RzQ291bnQvNjApKTtyZXR1cm4gSTE4bi50KCJzdW1tYXJ5LmRlc2NyaXB0aW9uX3RpbWUiLHtyZXBseUNvdW50OmUudG9waWNSZXBseUNvdW50LHJlYWRpbmdUaW1lOnR9KX1yZXR1cm4gSTE4bi50KCJzdW1tYXJ5LmRlc2NyaXB0aW9uIix7cmVwbHlDb3VudDplLnRvcGljUmVwbHlDb3VudH0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdC5kZWZhdWx0KHtodG1sOiI8cD4iK3RoaXMuZGVzY3JpcHRpb24oZSkrIjwvcD4ifSl9fSksZS5kZWZhdWx0PSgwLG4uY3JlYXRlV2lkZ2V0KSgidG9nZ2xlLXRvcGljLXN1bW1hcnkiLHt0YWdOYW1lOiJzZWN0aW9uLmluZm9ybWF0aW9uLnRvZ2dsZS1zdW1tYXJ5IixodG1sOmZ1bmN0aW9uKGUpe3JldHVyblt0aGlzLmF0dGFjaCgidG9nZ2xlLXN1bW1hcnktZGVzY3JpcHRpb24iLGUpLHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBidG4tcHJpbWFyeSIsbGFiZWw6ZS50b3BpY1N1bW1hcnlFbmFibGVkPyJzdW1tYXJ5LmRpc2FibGUiOiJzdW1tYXJ5LmVuYWJsZSIsYWN0aW9uOiJ0b2dnbGVTdW1tYXJ5In0pXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvdG9waWMtYWRtaW4tbWVudSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iXSxmdW5jdGlvbihlLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCxpLmNyZWF0ZVdpZGdldCkoImFkbWluLW1lbnUtYnV0dG9uIix7aHRtbDpmdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7cmV0dXJuIGUuYnV0dG9uQ2xhc3MmJih0PWUuYnV0dG9uQ2xhc3MpLCgwLHMuaCkoImxpIix7Y2xhc3NOYW1lOmUuY2xhc3NOYW1lfSx0aGlzLmF0dGFjaCgiYnV0dG9uIix7Y2xhc3NOYW1lOnQsYWN0aW9uOmUuYWN0aW9uLHVybDplLnVybCxpY29uOmUuaWNvbixsYWJlbDplLmZ1bGxMYWJlbHx8InRvcGljLiIrZS5sYWJlbCxzZWNvbmRhcnlBY3Rpb246ImhpZGVBZG1pbk1lbnUifSkpfX0pLCgwLGkuY3JlYXRlV2lkZ2V0KSgidG9waWMtYWRtaW4tbWVudS1idXR0b24iLHt0YWdOYW1lOiJzcGFuIixidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntleHBhbmRlZDohMSxwb3NpdGlvbjpudWxsfX0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9dGhpcy5hdHRhY2goInRvcGljLWFkbWluLW1lbnUiLHtwb3NpdGlvbjp0LnBvc2l0aW9uLGZpeGVkOmUuZml4ZWQsdG9waWM6ZS50b3BpYyxvcGVuVXB3YXJkczplLm9wZW5VcHdhcmRzLHJpZ2h0U2lkZTohdGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUucmlnaHRTaWRlLGFjdGlvbkJ1dHRvbnM6W119KTtyZXR1cm4haS5hdHRycy5hY3Rpb25CdXR0b25zLmxlbmd0aHx8ZS5yaWdodFNpZGUmJnQuZXhwYW5kZWQmJiF0aGlzLnNpdGUubW9iaWxlVmlld3x8bi5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6ImJ0bi1kZWZhdWx0IHRvZ2dsZS1hZG1pbi1tZW51IisoZS5maXhlZD8iIHNob3ctdG9waWMtYWRtaW4iOiIiKSsoZS5hZGRLZXlib2FyZFRhcmdldENsYXNzPyIga2V5Ym9hcmQtdGFyZ2V0LWFkbWluLW1lbnUiOiIiKSx0aXRsZToidG9waWNfYWRtaW5fbWVudSIsaWNvbjoid3JlbmNoIixhY3Rpb246InNob3dBZG1pbk1lbnUiLHNlbmRBY3Rpb25FdmVudDohMH0pKSx0LmV4cGFuZGVkJiZuLnB1c2goaSksbn0saGlkZUFkbWluTWVudTpmdW5jdGlvbigpe3RoaXMuc3RhdGUuZXhwYW5kZWQ9ITEsdGhpcy5zdGF0ZS5wb3NpdGlvbj1udWxsLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiYhdGhpcy5hdHRycy5yaWdodFNpZGUmJiQoIi5oZWFkZXItY2xvYWsiKS5jc3MoImRpc3BsYXkiLCIiKX0sc2hvd0FkbWluTWVudTpmdW5jdGlvbihlKXt0aGlzLnN0YXRlLmV4cGFuZGVkPSEwO3ZhciB0PXZvaWQgMCxuPSh0PXZvaWQgMD09PWU/JCgiLmtleWJvYXJkLXRhcmdldC1hZG1pbi1tZW51Iik6JChlLnRhcmdldCkuY2xvc2VzdCgiYnV0dG9uIikpLnBvc2l0aW9uKCksaT0kKCJodG1sIikuaGFzQ2xhc3MoInJ0bCIpO24ubGVmdCxuLm91dGVySGVpZ2h0PXQub3V0ZXJIZWlnaHQoKSxpJiYobi5sZWZ0LT0yMTctdC5vdXRlcldpZHRoKCkpLHRoaXMuYXR0cnMuZml4ZWQmJihuLmxlZnQrPXQud2lkdGgoKS0yMDMpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiYhdGhpcy5hdHRycy5yaWdodFNpZGUmJiQoIi5oZWFkZXItY2xvYWsiKS5jc3MoImRpc3BsYXkiLCJibG9jayIpLHRoaXMuc3RhdGUucG9zaXRpb249bn0sdG9waWNUb2dnbGVBY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5leHBhbmRlZD90aGlzLmhpZGVBZG1pbk1lbnUoKTp0aGlzLnNob3dBZG1pbk1lbnUoKX19KSxlLmRlZmF1bHQ9KDAsaS5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1hZG1pbi1tZW51Iix7dGFnTmFtZToiZGl2LnBvcHVwLW1lbnUudG9waWMtYWRtaW4tcG9wdXAtbWVudSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe2lmKGUucmlnaHRTaWRlKXJldHVybiJyaWdodC1zaWRlIn0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRvcGljLG49dC5nZXQoImRldGFpbHMiKSxpPXQuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikscz10LmdldCgicGlubmVkX2F0Iil8fHQuZ2V0KCJpc0Jhbm5lciIpLG89dC5nZXQoInZpc2libGUiKTt0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgiY2FuTWFuYWdlVG9waWMiKSYmKHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLW11bHRpLXNlbGVjdCIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InRvZ2dsZU11bHRpU2VsZWN0IixpY29uOiJ0YXNrcyIsbGFiZWw6ImFjdGlvbnMubXVsdGlfc2VsZWN0In0pLG4uZ2V0KCJjYW5fZGVsZXRlIikmJnRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLWRlbGV0ZSIsYnV0dG9uQ2xhc3M6ImJ0bi1kYW5nZXIiLGFjdGlvbjoiZGVsZXRlVG9waWMiLGljb246ImZhci10cmFzaC1hbHQiLGxhYmVsOiJhY3Rpb25zLmRlbGV0ZSJ9KSx0LmdldCgiZGVsZXRlZCIpJiZuLmdldCgiY2FuX3JlY292ZXIiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tcmVjb3ZlciIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InJlY292ZXJUb3BpYyIsaWNvbjoidW5kbyIsbGFiZWw6ImFjdGlvbnMucmVjb3ZlciJ9KSx0LmdldCgiY2xvc2VkIik/dGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tb3BlbiIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InRvZ2dsZUNsb3NlZCIsaWNvbjoidW5sb2NrIixsYWJlbDoiYWN0aW9ucy5vcGVuIn0pOnRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLWNsb3NlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoidG9nZ2xlQ2xvc2VkIixpY29uOiJsb2NrIixsYWJlbDoiYWN0aW9ucy5jbG9zZSJ9KSx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1zdGF0dXMtdXBkYXRlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoic2hvd1RvcGljU3RhdHVzVXBkYXRlIixpY29uOiJmYXItY2xvY2siLGxhYmVsOiJhY3Rpb25zLnRpbWVkX3VwZGF0ZSJ9KSxpfHwhdC5nZXQoInZpc2libGUiKSYmIXN8fHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLXBpbiIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InNob3dGZWF0dXJlVG9waWMiLGljb246InRodW1idGFjayIsbGFiZWw6cz8iYWN0aW9ucy51bnBpbiI6ImFjdGlvbnMucGluIn0pLHRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpJiZ0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1jaGFuZ2UtdGltZXN0YW1wIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoic2hvd0NoYW5nZVRpbWVzdGFtcCIsaWNvbjoiY2FsZW5kYXItYWx0IixsYWJlbDoiY2hhbmdlX3RpbWVzdGFtcC50aXRsZSJ9KSx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1yZXNldC1idW1wLWRhdGUiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsYWN0aW9uOiJyZXNldEJ1bXBEYXRlIixpY29uOiJhbmNob3IiLGxhYmVsOiJhY3Rpb25zLnJlc2V0X2J1bXBfZGF0ZSJ9KSxpfHx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1hcmNoaXZlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoidG9nZ2xlQXJjaGl2ZWQiLGljb246ImZvbGRlciIsbGFiZWw6dC5nZXQoImFyY2hpdmVkIik/ImFjdGlvbnMudW5hcmNoaXZlIjoiYWN0aW9ucy5hcmNoaXZlIn0pLHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLXZpc2libGUiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsYWN0aW9uOiJ0b2dnbGVWaXNpYmlsaXR5IixpY29uOm8/ImZhci1leWUtc2xhc2giOiJmYXItZXllIixsYWJlbDpvPyJhY3Rpb25zLmludmlzaWJsZSI6ImFjdGlvbnMudmlzaWJsZSJ9KSxuLmdldCgiY2FuX2NvbnZlcnRfdG9waWMiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tY29udmVydCIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246aT8iY29udmVydFRvUHVibGljVG9waWMiOiJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSIsaWNvbjppPyJjb21tZW50IjoiZW52ZWxvcGUiLGxhYmVsOmk/ImFjdGlvbnMubWFrZV9wdWJsaWMiOiJhY3Rpb25zLm1ha2VfcHJpdmF0ZSJ9KSx0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2ljb246Imxpc3QiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsZnVsbExhYmVsOiJyZXZpZXcubW9kZXJhdGlvbl9oaXN0b3J5Iix1cmw6Ii9yZXZpZXc/dG9waWNfaWQ9Iit0LmlkKyImc3RhdHVzPWFsbCJ9KSl9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXt2YXIgdD1lLnBvc2l0aW9uLG49dC50b3AsaT10LmxlZnQscz10Lm91dGVySGVpZ2h0LG89ZS5maXhlZHx8dGhpcy5zaXRlLm1vYmlsZVZpZXc/ImZpeGVkIjoiYWJzb2x1dGUiO2lmKCFlLnJpZ2h0U2lkZSl7aWYoZS5vcGVuVXB3YXJkcyl7dmFyIHI9JChkb2N1bWVudCkuaGVpZ2h0KCksYT0kKCIjbWFpbiIpLmhlaWdodCgpLGw9ci1uLTcwLSQoIiNtYWluIikub2Zmc2V0KCkudG9wO3JldHVybiBhPHImJihsPWwtKHItYSktcyksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJihpPWw9MCkse3N0eWxlOiJwb3NpdGlvbjogIitvKyI7IGJvdHRvbTogIitsKyJweDsgbGVmdDogIitpKyJweDsifX1yZXR1cm57c3R5bGU6InBvc2l0aW9uOiAiK28rIjsgdG9wOiAiK24rInB4OyBsZWZ0OiAiK2krInB4OyJ9fX0sYWRkQWN0aW9uQnV0dG9uOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMuYWN0aW9uQnV0dG9ucy5wdXNoKGUpfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0oMCxpLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWRtaW5NZW51QnV0dG9ucyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKTtyZXR1cm5bKDAscy5oKSgiZGl2LmhlYWRlciIsWygwLHMuaCkoImgzIixJMThuLnQoInRvcGljLmFjdGlvbnMudGl0bGUiKSksKDAscy5oKSgiZGl2Iix0aGlzLmF0dGFjaCgiYnV0dG9uIix7YWN0aW9uOiJjbGlja091dHNpZGUiLGljb246InRpbWVzIixjbGFzc05hbWU6ImNsb3NlLWJ1dHRvbiJ9KSldKSwoMCxzLmgpKCJ1bCIsZS5hY3Rpb25CdXR0b25zLmNvbmNhdChuKS5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmF0dGFjaCgiYWRtaW4tbWVudS1idXR0b24iLGUpfSkpXX0sY2xpY2tPdXRzaWRlOmZ1bmN0aW9uKCl7dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJoaWRlQWRtaW5NZW51Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3RvcGljLW1hcCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS93aWRnZXRzL2Vtb2ppIl0sZnVuY3Rpb24oZSx0LGwscyxvLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZnVuY3Rpb24gdSh0LGUpe3ZhciBuPXRoaXM7aWYoZSlyZXR1cm4gdD10fHxbXSxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goInRvcGljLXBhcnRpY2lwYW50IixlLHtzdGF0ZTp7dG9nZ2xlZDp0LmluY2x1ZGVzKGUudXNlcm5hbWUpfX0pfSl9KDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1tYXAtc2hvdy1saW5rcyIse3RhZ05hbWU6ImRpdi5saW5rLXN1bW1hcnkiLGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm4oMCxsLmgpKCJzcGFuIix0aGlzLmF0dGFjaCgiYnV0dG9uIix7dGl0bGU6InRvcGljX21hcC5saW5rc19zaG93biIsaWNvbjoiY2hldnJvbi1kb3duIixhY3Rpb246InNob3dMaW5rcyIsY2xhc3NOYW1lOiJidG4ifSkpfSxzaG93TGlua3M6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNob3dBbGxMaW5rcyIpfX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidG9waWMtcGFydGljaXBhbnQiLHtidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5wcmltYXJ5X2dyb3VwX25hbWUpcmV0dXJuImdyb3VwLSIrZS5wcmltYXJ5X2dyb3VwX25hbWV9LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bKDAscy5hdmF0YXJJbWcpKCJtZWRpdW0iLHt1c2VybmFtZTplLnVzZXJuYW1lLHRlbXBsYXRlOmUuYXZhdGFyX3RlbXBsYXRlLG5hbWU6ZS5uYW1lfSldO3JldHVybiAyPGUucG9zdF9jb3VudCYmbi5wdXNoKCgwLGwuaCkoInNwYW4ucG9zdC1jb3VudCIsZS5wb3N0X2NvdW50LnRvU3RyaW5nKCkpKSwoZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX3VybHx8ZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yKSYmbi5wdXNoKHRoaXMuYXR0YWNoKCJhdmF0YXItZmxhaXIiLGUpKSwoMCxsLmgpKCJhLnBvc3Rlci50cmlnZ2VyLXVzZXItY2FyZCIse2NsYXNzTmFtZTp0LnRvZ2dsZWQ/InRvZ2dsZWQiOm51bGwsYXR0cmlidXRlczp7dGl0bGU6ZS51c2VybmFtZSwiZGF0YS11c2VyLWNhcmQiOmUudXNlcm5hbWV9fSxuKX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoInRvcGljLW1hcC1zdW1tYXJ5Iix7dGFnTmFtZToic2VjdGlvbi5tYXAiLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlLHQpe2lmKHQuY29sbGFwc2VkKXJldHVybiJtYXAtY29sbGFwc2VkIn0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuLGk9W107cmV0dXJuIGkucHVzaCgoMCxsLmgpKCJsaSIsWygwLGwuaCkoImg0Iix7YXR0cmlidXRlczp7cm9sZToicHJlc2VudGF0aW9uIn19LEkxOG4udCgiY3JlYXRlZF9sb3dlcmNhc2UiKSksKDAsbC5oKSgiZGl2LnRvcGljLW1hcC1wb3N0LmNyZWF0ZWQtYXQiLFsoMCxzLmF2YXRhckZvcikoInRpbnkiLHt1c2VybmFtZTplLmNyZWF0ZWRCeVVzZXJuYW1lLHRlbXBsYXRlOmUuY3JlYXRlZEJ5QXZhdGFyVGVtcGxhdGUsbmFtZTplLmNyZWF0ZWRCeU5hbWV9KSwoMCxvLmRhdGVOb2RlKShlLnRvcGljQ3JlYXRlZEF0KV0pXSkpLGkucHVzaCgoMCxsLmgpKCJsaSIsKDAsbC5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6ZS5sYXN0UG9zdFVybH19LFsoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoImxhc3RfcmVwbHlfbG93ZXJjYXNlIikpLCgwLGwuaCkoImRpdi50b3BpYy1tYXAtcG9zdC5sYXN0LXJlcGx5IixbKDAscy5hdmF0YXJGb3IpKCJ0aW55Iix7dXNlcm5hbWU6ZS5sYXN0UG9zdFVzZXJuYW1lLHRlbXBsYXRlOmUubGFzdFBvc3RBdmF0YXJUZW1wbGF0ZSxuYW1lOmUubGFzdFBvc3ROYW1lfSksKDAsby5kYXRlTm9kZSkoZS5sYXN0UG9zdEF0KV0pXSkpKSxpLnB1c2goKDAsbC5oKSgibGkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNSZXBseUNvdW50KSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoInJlcGxpZXNfbG93ZXJjYXNlIix7Y291bnQ6ZS50b3BpY1JlcGx5Q291bnR9KS50b1N0cmluZygpKV0pKSxpLnB1c2goKDAsbC5oKSgibGkuc2Vjb25kYXJ5IixbKDAsby5udW1iZXJOb2RlKShlLnRvcGljVmlld3Mse2NsYXNzTmFtZTplLnRvcGljVmlld3NIZWF0fSksKDAsbC5oKSgiaDQiLHthdHRyaWJ1dGVzOntyb2xlOiJwcmVzZW50YXRpb24ifX0sSTE4bi50KCJ2aWV3c19sb3dlcmNhc2UiLHtjb3VudDplLnRvcGljVmlld3N9KS50b1N0cmluZygpKV0pKSwwPGUucGFydGljaXBhbnRDb3VudCYmaS5wdXNoKCgwLGwuaCkoImxpLnNlY29uZGFyeSIsWygwLG8ubnVtYmVyTm9kZSkoZS5wYXJ0aWNpcGFudENvdW50KSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoInVzZXJzX2xvd2VyY2FzZSIse2NvdW50OmUucGFydGljaXBhbnRDb3VudH0pLnRvU3RyaW5nKCkpXSkpLGUudG9waWNMaWtlQ291bnQmJmkucHVzaCgoMCxsLmgpKCJsaS5zZWNvbmRhcnkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNMaWtlQ291bnQpLCgwLGwuaCkoImg0Iix7YXR0cmlidXRlczp7cm9sZToicHJlc2VudGF0aW9uIn19LEkxOG4udCgibGlrZXNfbG93ZXJjYXNlIix7Y291bnQ6ZS50b3BpY0xpa2VDb3VudH0pLnRvU3RyaW5nKCkpXSkpLDA8ZS50b3BpY0xpbmtMZW5ndGgmJmkucHVzaCgoMCxsLmgpKCJsaS5zZWNvbmRhcnkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNMaW5rTGVuZ3RoKSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoImxpbmtzX2xvd2VyY2FzZSIse2NvdW50OmUudG9waWNMaW5rTGVuZ3RofSkudG9TdHJpbmcoKSldKSksdC5jb2xsYXBzZWQmJjI8ZS50b3BpY1Bvc3RzQ291bnQmJmUucGFydGljaXBhbnRzJiYwPGUucGFydGljaXBhbnRzLmxlbmd0aCYmKG49dS5jYWxsKHRoaXMsZS51c2VyRmlsdGVycyxlLnBhcnRpY2lwYW50cy5zbGljZSgwLDMpKSxpLnB1c2goKDAsbC5oKSgibGkuYXZhdGFycyIsbikpKSxbKDAsbC5oKSgibmF2LmJ1dHRvbnMiLHRoaXMuYXR0YWNoKCJidXR0b24iLHt0aXRsZToidG9waWMudG9nZ2xlX2luZm9ybWF0aW9uIixpY29uOnQuY29sbGFwc2VkPyJjaGV2cm9uLWRvd24iOiJjaGV2cm9uLXVwIixhY3Rpb246InRvZ2dsZU1hcCIsY2xhc3NOYW1lOiJidG4ifSkpLCgwLGwuaCkoInVsLmNsZWFyZml4IixpKV19fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1tYXAtbGluayIse3RhZ05hbWU6ImEudG9waWMtbGluay50cmFjay1saW5rIixidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5hdHRhY2htZW50KXJldHVybiJhdHRhY2htZW50In0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybntocmVmOmUudXJsLHRhcmdldDoiX2JsYW5rIiwiZGF0YS11c2VyLWlkIjplLnVzZXJfaWQsImRhdGEtaWdub3JlLXBvc3QtaWQiOiJ0cnVlIix0aXRsZTplLnVybCxyZWw6Im5vZm9sbG93IHVnYyBub29wZW5lciJ9fSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PWUudGl0bGV8fGUudXJsO3JldHVybiA4NTx0Lmxlbmd0aCYmKHQ9dC5zdWJzdHIoMCw4NSkudHJpbSgpKyIuLi4iKSxlLnRpdGxlPygwLG4ucmVwbGFjZUVtb2ppKSh0KTp0fX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidG9waWMtbWFwLWV4cGFuZGVkIix7dGFnTmFtZToic2VjdGlvbi50b3BpYy1tYXAtZXhwYW5kZWQiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJ0b3BpYy1tYXAtZXhwYW5kZWQtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57YWxsTGlua3NTaG93bjohMX19LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLG49dm9pZCAwO2UucGFydGljaXBhbnRzJiYwPGUucGFydGljaXBhbnRzLmxlbmd0aCYmKG49KDAsbC5oKSgic2VjdGlvbi5hdmF0YXJzLmNsZWFyZml4IixbKDAsbC5oKSgiaDMiLEkxOG4udCgidG9waWNfbWFwLnBhcnRpY2lwYW50c190aXRsZSIpKSx1LmNhbGwodGhpcyxlLnVzZXJGaWx0ZXJzLGUucGFydGljaXBhbnRzKV0pKTt2YXIgcyxvLHIsYT1bbl07cmV0dXJuIGUudG9waWNMaW5rcyYmKHM9KHQuYWxsTGlua3NTaG93bj9lLnRvcGljTGlua3M6ZS50b3BpY0xpbmtzLnNsaWNlKDAsNSkpLm1hcChmdW5jdGlvbihlKXt2YXIgdCxuPSIiO3JldHVybiBlLnRpdGxlJiZlLnRpdGxlLmxlbmd0aCYmKCh0PWUucm9vdF9kb21haW4pJiZ0Lmxlbmd0aCYmKG49KDAsbC5oKSgic3Bhbi5kb21haW4iLHQpKSksKDAsbC5oKSgidHIiLFsoMCxsLmgpKCJ0ZCIsKDAsbC5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24uY2xpY2tzIix7YXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJ0b3BpY19tYXAuY2xpY2tzIix7Y291bnQ6ZS5jbGlja3N9KX19LGUuY2xpY2tzLnRvU3RyaW5nKCkpKSwoMCxsLmgpKCJ0ZCIsW2kuYXR0YWNoKCJ0b3BpYy1tYXAtbGluayIsZSksIiAiLG5dKV0pfSksbz1bKDAsbC5oKSgiaDMiLEkxOG4udCgidG9waWNfbWFwLmxpbmtzX3RpdGxlIikpLCgwLGwuaCkoInRhYmxlLnRvcGljLWxpbmtzIixzKV0sIXQuYWxsTGlua3NTaG93biYmcy5sZW5ndGg8ZS50b3BpY0xpbmtzLmxlbmd0aCYmby5wdXNoKHRoaXMuYXR0YWNoKCJ0b3BpYy1tYXAtc2hvdy1saW5rcyIpKSxyPSgwLGwuaCkoInNlY3Rpb24ubGlua3MiLG8pLGEucHVzaChyKSksYX0sc2hvd0FsbExpbmtzOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hbGxMaW5rc1Nob3duPSEwfX0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInRvcGljLW1hcCIse3RhZ05hbWU6ImRpdi50b3BpYy1tYXAiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJ0b3BpYy1tYXAtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJue2NvbGxhcHNlZDohZS5oYXNUb3BpY1N1bW1hcnl9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG49W3RoaXMuYXR0YWNoKCJ0b3BpYy1tYXAtc3VtbWFyeSIsZSx7c3RhdGU6dH0pXTtyZXR1cm4gdC5jb2xsYXBzZWR8fG4ucHVzaCh0aGlzLmF0dGFjaCgidG9waWMtbWFwLWV4cGFuZGVkIixlKSksZS5oYXNUb3BpY1N1bW1hcnkmJm4ucHVzaCh0aGlzLmF0dGFjaCgidG9nZ2xlLXRvcGljLXN1bW1hcnkiLGUpKSxlLnNob3dQTU1hcCYmbi5wdXNoKHRoaXMuYXR0YWNoKCJwcml2YXRlLW1lc3NhZ2UtbWFwIixlKSksbn0sdG9nZ2xlTWFwOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5jb2xsYXBzZWQ9IXRoaXMuc3RhdGUuY29sbGFwc2VkfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy90b3BpYy1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1zdGF0dXMtaWNvbnMiXSxmdW5jdGlvbihlLHQsYSxsLHUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1zdGF0dXMiLHt0YWdOYW1lOiJkaXYudG9waWMtc3RhdHVzZXMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b3BpYyxvPXRoaXMuY3VycmVudFVzZXImJiFlLmRpc2FibGVBY3Rpb25zLHI9W107cmV0dXJuIG4uZGVmYXVsdC5yZW5kZXIodCxmdW5jdGlvbihlLHQpe3ZhciBuPSJ1bnBpbm5lZCI9PT10P3tjbGFzczoidW5waW5uZWQifTpudWxsLGk9KDAsYS5pY29uTm9kZSkoZSxuKSxzPXt0aXRsZTooMCx1LmVzY2FwZUV4cHJlc3Npb24pKEkxOG4udCgidG9waWNfc3RhdHVzZXMuIit0KyIuaGVscCIpKX07ci5wdXNoKCgwLGwuaCkoKG8/ImEiOiJzcGFuIikrIi50b3BpYy1zdGF0dXMiLHMsaSkpfSkscn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvdG9waWMtdGltZWxpbmUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvY29tcG9uZW50LWNvbm5lY3RvciIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsImRpc2NvdXJzZS9saWIvcmVuZGVyLXRhZ3MiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIl0sZnVuY3Rpb24oZSx0LG4scix2LHksaSx3LHgsayl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz0xNzAsbz0zMDA7ZnVuY3Rpb24gZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXBseS1jb250cm9sIikub2Zmc2V0SGVpZ2h0fHwwLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmQtaGVhZGVyIilbMF0ub2Zmc2V0SGVpZ2h0fHwwLG49KHdpbmRvdy5pbm5lckhlaWdodC1lLXQpLzI7cmV0dXJuIE1hdGgubWF4KHMsTWF0aC5taW4obixvKSl9ZnVuY3Rpb24gZihlLHQsbil7dmFyIGk9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT10P3Q6MCxzPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09bj9uOjE7cmV0dXJuIE1hdGgubWF4KE1hdGgubWluKGUscyksaSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZS5hdHRhY2goImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuLXByaW1hcnkgYnRuLXNtYWxsIGJhY2stYnV0dG9uIixsYWJlbDoidG9waWMudGltZWxpbmUuYmFjayIsdGl0bGU6InRvcGljLnRpbWVsaW5lLmJhY2tfZGVzY3JpcHRpb24iLGFjdGlvbjoiZ29CYWNrIn0pfWZ1bmN0aW9uIFAoZSl7dmFyIHQ9ZS5nZXRGdWxsWWVhcigpPT09KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpPyJsb25nX25vX3llYXJfbm9fdGltZSI6InRpbWVsaW5lX2RhdGUiO3JldHVybiBtb21lbnQoZSkuZm9ybWF0KEkxOG4udCgiZGF0ZXMuIit0KSl9KDAsbi5jcmVhdGVXaWRnZXQpKCJ0aW1lbGluZS1sYXN0LXJlYWQiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtbGFzdC1yZWFkIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZCgpLTEwO3JldHVybntzdHlsZToiaGVpZ2h0OiAyMHB4OyB0b3A6ICIrKGUudG9wPnQ/dDplLnRvcCkrInB4In19LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9WygwLGkuaWNvbk5vZGUpKCJtaW51cyIse2NsYXNzOiJwcm9ncmVzcyJ9KV07cmV0dXJuIGUuc2hvd0J1dHRvbiYmdC5wdXNoKGEodGhpcykpLHR9fSksKDAsbi5jcmVhdGVXaWRnZXQpKCJ0aW1lbGluZS1zY3JvbGxlciIse3RhZ05hbWU6ImRpdi50aW1lbGluZS1zY3JvbGxlciIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idGltZWxpbmUtc2Nyb2xsZXIifSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57ZHJhZ2dpbmc6ITF9fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm57c3R5bGU6ImhlaWdodDogNTBweCJ9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jdXJyZW50LGk9ZS50b3RhbCxzPWUuZGF0ZSxvPVsoMCx2LmgpKCJkaXYudGltZWxpbmUtcmVwbGllcyIsSTE4bi50KCJ0b3BpYy50aW1lbGluZS5yZXBsaWVzX3Nob3J0Iix7Y3VycmVudDpuLHRvdGFsOml9KSldO3MmJm8ucHVzaCgoMCx2LmgpKCJkaXYudGltZWxpbmUtYWdvIixQKHMpKSksZS5zaG93RG9ja2VkQnV0dG9uJiYhdC5kcmFnZ2luZyYmby5wdXNoKGEodGhpcykpO3ZhciByPVsoMCx2LmgpKCJkaXYudGltZWxpbmUtaGFuZGxlIiksKDAsdi5oKSgiZGl2LnRpbWVsaW5lLXNjcm9sbGVyLWNvbnRlbnQiLG8pXTtyZXR1cm4gZS5mdWxsU2NyZWVuJiYocj1bclsxXSxyWzBdXSkscn0sZHJhZzpmdW5jdGlvbihlKXt0aGlzLnN0YXRlLmRyYWdnaW5nPSEwLHRoaXMuc2VuZFdpZGdldEFjdGlvbigidXBkYXRlUGVyY2VudGFnZSIsZS5wYWdlWSl9LGRyYWdFbmQ6ZnVuY3Rpb24oZSl7dGhpcy5zdGF0ZS5kcmFnZ2luZz0hMSwkKGUudGFyZ2V0KS5pcygiYnV0dG9uIik/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJnb0JhY2siKTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImNvbW1pdCIpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtcGFkZGluZyIse3RhZ05hbWU6ImRpdi50aW1lbGluZS1wYWRkaW5nIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJue3N0eWxlOiJoZWlnaHQ6ICIrZS5oZWlnaHQrInB4In19LGNsaWNrOmZ1bmN0aW9uKGUpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigidXBkYXRlUGVyY2VudGFnZSIsZS5wYWdlWSksdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJjb21taXQiKX19KSwoMCxuLmNyZWF0ZVdpZGdldCkoInRpbWVsaW5lLXNjcm9sbGFyZWEiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtc2Nyb2xsYXJlYSIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idGltZWxpbmUtc2Nyb2xsYXJlYSJ9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbigpe3JldHVybntzdHlsZToiaGVpZ2h0OiAiK2QoKSsicHgifX0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKGUpe3JldHVybntwZXJjZW50YWdlOnRoaXMuX3BlcmNlbnRGb3IoZS50b3BpYyxlLmVudGVyZWRJbmRleCsxKSxzY3JvbGxlZFBvc3Q6MX19LHBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLmF0dHJzLG49dGhpcy5zdGF0ZS5wZXJjZW50YWdlLGk9dC50b3BpYyxzPWkuZ2V0KCJwb3N0U3RyZWFtIiksbz1zLmdldCgiZmlsdGVyZWRQb3N0c0NvdW50Iikscj1mKE1hdGguZmxvb3IobypuKSwwLG8pKzEsYT1mKHIsMSxvKSxsPXMuY2xvc2VzdERheXNBZ29Gb3IoYSksdT12b2lkIDA7dm9pZCAwPT09bD8oZT1zLmdldCgicG9zdHMiKS5maW5kQnkoImlkIixzLmdldCgic3RyZWFtIilbYV0pKSYmKHU9bmV3IERhdGUoZS5nZXQoImNyZWF0ZWRfYXQiKSkpOm51bGwhPT1sPyh1PW5ldyBEYXRlKS5zZXREYXRlKHUuZ2V0RGF0ZSgpLWx8fDApOnU9bnVsbDt2YXIgYyxkPXtjdXJyZW50OmEsc2Nyb2xsUG9zaXRpb246cix0b3RhbDpvLGRhdGU6dSxsYXN0UmVhZDpudWxsLGxhc3RSZWFkUGVyY2VudGFnZTpudWxsfSxwPWkubGFzdF9yZWFkX3Bvc3RfaWQsbT1pLmxhc3RfcmVhZF9wb3N0X251bWJlcjtyZXR1cm4gcCYmbSYmKGM9cy5nZXQoInN0cmVhbSIpLmluZGV4T2YocCkrMSxkLmxhc3RSZWFkPWMsZC5sYXN0UmVhZFBlcmNlbnRhZ2U9dGhpcy5fcGVyY2VudEZvcihpLGMpKSx0aGlzLnN0YXRlLnBvc2l0aW9uIT09ZC5zY3JvbGxQb3NpdGlvbiYmKHRoaXMuc3RhdGUucG9zaXRpb249ZC5zY3JvbGxQb3NpdGlvbix0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInVwZGF0ZVBvc2l0aW9uIixhKSksZH0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMucG9zaXRpb24oKTt0LnNjcm9sbGVkUG9zdD1uLmN1cnJlbnQ7dmFyIGk9dC5wZXJjZW50YWdlO2lmKG51bGwhPT1pKXt2YXIgcyxvPShkKCktNTApKmkscj1kKCktby01MCxhPSExLGw9MzxuLmxhc3RSZWFkJiYzPE1hdGguYWJzKG4ubGFzdFJlYWQtbi5jdXJyZW50KSYmMTxNYXRoLmFicyhuLmxhc3RSZWFkLW4udG90YWwpJiZuLmxhc3RSZWFkJiZuLmxhc3RSZWFkIT09bi50b3RhbDtsJiYoYT01MCtvLTU8KHM9TWF0aC5yb3VuZChuLmxhc3RSZWFkUGVyY2VudGFnZSpkKCkpKXx8cysyNTxvKTt2YXIgdSxjPVt0aGlzLmF0dGFjaCgidGltZWxpbmUtcGFkZGluZyIse2hlaWdodDpvfSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXNjcm9sbGVyIixfLm1lcmdlKG4se3Nob3dEb2NrZWRCdXR0b246IWUubW9iaWxlVmlldyYmbCYmIWEsZnVsbFNjcmVlbjplLmZ1bGxTY3JlZW59KSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXBhZGRpbmciLHtoZWlnaHQ6cn0pXTtyZXR1cm4gbCYmKHU9TWF0aC5yb3VuZChuLmxhc3RSZWFkUGVyY2VudGFnZSpkKCkpLGMucHVzaCh0aGlzLmF0dGFjaCgidGltZWxpbmUtbGFzdC1yZWFkIix7dG9wOnUsbGFzdFJlYWQ6bi5sYXN0UmVhZCxzaG93QnV0dG9uOmF9KSkpLGN9fSx1cGRhdGVQZXJjZW50YWdlOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIi50aW1lbGluZS1zY3JvbGxhcmVhIiksbj10Lm9mZnNldCgpLnRvcCxpPWYocGFyc2VGbG9hdChlLW4pL3QuaGVpZ2h0KCkpO3RoaXMuc3RhdGUucGVyY2VudGFnZT1pfSxjb21taXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uKCk7dGhpcy5zdGF0ZS5zY3JvbGxlZFBvc3Q9ZS5jdXJyZW50LGUuY3VycmVudD09PWUuc2Nyb2xsUG9zaXRpb24/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJqdW1wVG9JbmRleCIsZS5jdXJyZW50KTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImp1bXBFbmQiKX0sdG9waWNDdXJyZW50UG9zdFNjcm9sbGVkOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUucGVyY2VudGFnZT1lLnBlcmNlbnR9LF9wZXJjZW50Rm9yOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50Iik7cmV0dXJuIGYocGFyc2VGbG9hdCh0LTEpL24pfSxnb0JhY2s6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImp1bXBUb0luZGV4Iix0aGlzLnBvc2l0aW9uKCkubGFzdFJlYWQpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidG9waWMtdGltZWxpbmUtY29udGFpbmVyIix7dGFnTmFtZToiZGl2LnRpbWVsaW5lLWNvbnRhaW5lciIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe2lmKGUuZnVsbFNjcmVlbilyZXR1cm4gZS5hZGRTaG93Q2xhc3M/InRpbWVsaW5lLWZ1bGxzY3JlZW4gc2hvdyI6InRpbWVsaW5lLWZ1bGxzY3JlZW4iO2lmKGUuZG9ja0F0KXt2YXIgdD1bInRpbWVsaW5lLWRvY2tlZCJdO3JldHVybiBlLmRvY2tCb3R0b20mJnQucHVzaCgidGltZWxpbmUtZG9ja2VkLWJvdHRvbSIpLHQuam9pbigiICIpfX0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe2lmKGUudG9wKXJldHVybntzdHlsZToidG9wOiAiK2UudG9wKyJweCJ9fSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmF0dGFjaCgidG9waWMtdGltZWxpbmUiLGUpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtY29udHJvbHMiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtY29udHJvbHMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1lLmZ1bGxTY3JlZW4saT1lLmN1cnJlbnRVc2VyLHM9ZS50b3BpYztyZXR1cm4hbiYmaSYmdC5wdXNoKHRoaXMuYXR0YWNoKCJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiIse3RvcGljOnMsYWRkS2V5Ym9hcmRUYXJnZXRDbGFzczohMH0pKSx0fX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtZm9vdGVyLWNvbnRyb2xzIix7dGFnTmFtZToiZGl2LnRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXSxuPWUuY3VycmVudFVzZXIsaT1lLmZ1bGxTY3JlZW4scz1lLnRvcGljLG89ZS5ub3RpZmljYXRpb25MZXZlbDtyZXR1cm4gbiYmIWkmJnMuZ2V0KCJkZXRhaWxzLmNhbl9jcmVhdGVfcG9zdCIpJiZ0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuLWRlZmF1bHQgY3JlYXRlIixpY29uOiJyZXBseSIsdGl0bGU6InRvcGljLnJlcGx5LmhlbHAiLGFjdGlvbjoicmVwbHlUb1Bvc3QifSkpLGkmJnQucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJqdW1wLXRvLXBvc3QiLHRpdGxlOiJ0b3BpYy5wcm9ncmVzcy5qdW1wX3Byb21wdF9sb25nIixsYWJlbDoidG9waWMucHJvZ3Jlc3MuanVtcF9wcm9tcHQiLGFjdGlvbjoianVtcFRvUG9zdFByb21wdCJ9KSksbiYmdC5wdXNoKG5ldyByLmRlZmF1bHQodGhpcywidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iLHtub3RpZmljYXRpb25MZXZlbDpvLHRvcGljOnMsc2hvd0Z1bGxUaXRsZTohMSxhcHBlbmRSZWFzb246ITEscGxhY2VtZW50OiJib3R0b20tZW5kIn0sWyJub3RpZmljYXRpb25MZXZlbCJdKSksdH19KSxlLmRlZmF1bHQ9KDAsbi5jcmVhdGVXaWRnZXQpKCJ0b3BpYy10aW1lbGluZSIse3RhZ05hbWU6ImRpdi50b3BpYy10aW1lbGluZSIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idG9waWMtdGltZWxpbmUtYXJlYSJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjpudWxsLGV4Y2VycHQ6bnVsbH19LHVwZGF0ZVBvc2l0aW9uOmZ1bmN0aW9uKG4pe3ZhciBlLGk9dGhpczt0aGlzLmF0dHJzLmZ1bGxTY3JlZW4mJih0aGlzLnN0YXRlLnBvc2l0aW9uPW4sdGhpcy5zdGF0ZS5leGNlcnB0PSIiLGU9dGhpcy5hdHRycy50b3BpYy5nZXQoInBvc3RTdHJlYW0iKSwoMCx0LmxhdGVyKShmdW5jdGlvbigpeyFpLnN0YXRlLnBvc2l0aW9uIT09biYmZS5leGNlcnB0KG4tMSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtlJiZpLnN0YXRlLnBvc2l0aW9uPT09biYmKHQ9IiIsZS51c2VybmFtZSYmKHQ9IjxzcGFuIGNsYXNzPSd1c2VybmFtZSc+IitlLnVzZXJuYW1lKyI6PC9zcGFuPiAiKSxpLnN0YXRlLmV4Y2VycHQ9dCtlLmV4Y2VycHQsaS5zY2hlZHVsZVJlcmVuZGVyKCkpfSl9LDUwKSl9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b3BpYyxuPW5ldyBEYXRlKHQuY3JlYXRlZF9hdCksaT1lLnRvcGljLmdldCgicG9zdFN0cmVhbS5zdHJlYW0iKSxzPXRoaXMuY3VycmVudFVzZXIsbz10aGlzLnNpdGVTZXR0aW5ncyxyPW8udGFnZ2luZ19lbmFibGVkLGE9by50b3BpY19mZWF0dXJlZF9saW5rX2VuYWJsZWQ7ZS5jdXJyZW50VXNlcj1zO3ZhciBsLHUsYyxkLHAsbSxmPVtdO2UuZnVsbFNjcmVlbiYmKGw9IiIsZS5tb2JpbGVWaWV3JiYobD1uZXcgdy5kZWZhdWx0KHtodG1sOiI8c3Bhbj4iK3QuZ2V0KCJmYW5jeVRpdGxlIikrIjwvc3Bhbj4ifSkpLHU9WygwLHYuaCkoImgyIix0aGlzLmF0dGFjaCgibGluayIse2NvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGNsYXNzTmFtZToiZmFuY3ktdGl0bGUiLGFjdGlvbjoianVtcFRvcCJ9KSldLGM9W10sdC5nZXQoImlzUHJpdmF0ZU1lc3NhZ2UiKXx8KHQuY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnkmJmMucHVzaCh0aGlzLmF0dGFjaCgiY2F0ZWdvcnktbGluayIse2NhdGVnb3J5OnQuY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnl9KSksYy5wdXNoKHRoaXMuYXR0YWNoKCJjYXRlZ29yeS1saW5rIix7Y2F0ZWdvcnk6dC5jYXRlZ29yeX0pKSksKChkPXImJnQudGFncyYmMDx0LnRhZ3MubGVuZ3RoKXx8YSkmJihwPVtdLGQmJihtPW5ldyB3LmRlZmF1bHQoe2h0bWw6KDAseC5kZWZhdWx0KSh0LHttb2RlOiJsaXN0In0pfSkscC5wdXNoKCgwLHYuaCkoImRpdi5saXN0LXRhZ3MiLG0pKSksYSYmcC5wdXNoKG5ldyB3LmRlZmF1bHQoe2h0bWw6KDAsay5kZWZhdWx0KSh0KX0pKSxjLnB1c2goKDAsdi5oKSgiZGl2LnRvcGljLWhlYWRlci1leHRyYSIscCkpKSwwPGMubGVuZ3RoJiZ1LnB1c2goKDAsdi5oKSgiZGl2LnRvcGljLWNhdGVnb3J5IixjKSksdGhpcy5zdGF0ZS5leGNlcnB0JiZ1LnB1c2gobmV3IHcuZGVmYXVsdCh7aHRtbDoiPGRpdiBjbGFzcz0ncG9zdC1leGNlcnB0Jz4iK3RoaXMuc3RhdGUuZXhjZXJwdCsiPC9kaXY+In0pKSxmLnB1c2goKDAsdi5oKSgiZGl2LnRpdGxlIix1KSkpLGYucHVzaCh0aGlzLmF0dGFjaCgidGltZWxpbmUtY29udHJvbHMiLGUpKTt2YXIgaD1pLmxlbmd0aDtpZigwIT09aCYmaDwzJiYkKCIjdG9waWMiKS5oZWlnaHQoKS8kKHdpbmRvdykuaGVpZ2h0KCk8MilyZXR1cm4gZjt2YXIgYj0oMCx5LnJlbGF0aXZlQWdlKShuZXcgRGF0ZSh0Lmxhc3RfcG9zdGVkX2F0KSx7YWRkQWdvOiEwLGRlZmF1bHRGb3JtYXQ6UH0pLGc9WygwLHYuaCkoImRpdi50aW1lbGluZS1kYXRlLXdyYXBwZXIiLHRoaXMuYXR0YWNoKCJsaW5rIix7Y2xhc3NOYW1lOiJzdGFydC1kYXRlIixyYXdMYWJlbDpQKG4pLGFjdGlvbjoianVtcFRvcCJ9KSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXNjcm9sbGFyZWEiLGUpLCgwLHYuaCkoImRpdi50aW1lbGluZS1kYXRlLXdyYXBwZXIiLHRoaXMuYXR0YWNoKCJsaW5rIix7Y2xhc3NOYW1lOiJub3ctZGF0ZSIscmF3TGFiZWw6YixhY3Rpb246Imp1bXBCb3R0b20ifSkpXTtyZXR1cm4gZi5wdXNoKCgwLHYuaCkoImRpdi50aW1lbGluZS1zY3JvbGxhcmVhLXdyYXBwZXIiLGcpKSxmLnB1c2godGhpcy5hdHRhY2goInRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIsZSkpLGZ9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3VzZXItbWVudSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxyLHQsaSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVXNlck1lbnVHbHlwaD1mdW5jdGlvbihlKXsoYz1jfHxbXSkucHVzaChlKX07dmFyIHM9InF1aWNrQWNjZXNzIixvPSJib29rbWFya3MiLGE9Im1lc3NhZ2VzIixsPSJub3RpZmljYXRpb25zIix1PSJwcm9maWxlIixjPXZvaWQgMDsoMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItbWVudS1saW5rcyIse3RhZ05hbWU6ImRpdi5tZW51LWxpbmtzLWhlYWRlciIscHJvZmlsZUxpbms6ZnVuY3Rpb24oKXt2YXIgZT17YWN0aW9uOnMsYWN0aW9uUGFyYW06dSxyb3V0ZToidXNlciIsbW9kZWw6dGhpcy5jdXJyZW50VXNlcixjbGFzc05hbWU6InVzZXItYWN0aXZpdHktbGluayIsaWNvbjoidXNlciIscmF3TGFiZWw6KDAsbi5mb3JtYXRVc2VybmFtZSkodGhpcy5jdXJyZW50VXNlci51c2VybmFtZSl9O3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmlzX2Fub255bW91cyYmKGUubGFiZWw9InVzZXIucHJvZmlsZSIsZS5yYXdMYWJlbD1udWxsKSxlfSxub3RpZmljYXRpb25zR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57bGFiZWw6InVzZXIubm90aWZpY2F0aW9ucyIsY2xhc3NOYW1lOiJ1c2VyLW5vdGlmaWNhdGlvbnMtbGluayIsaWNvbjoiYmVsbCIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9ub3RpZmljYXRpb25zIixhY3Rpb246cyxhY3Rpb25QYXJhbTpsfX0sYm9va21hcmtzR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOnMsYWN0aW9uUGFyYW06byxsYWJlbDoidXNlci5ib29rbWFya3MiLGNsYXNzTmFtZToidXNlci1ib29rbWFya3MtbGluayIsaWNvbjoiYm9va21hcmsiLGhyZWY6dGhpcy5hdHRycy5wYXRoKyIvYWN0aXZpdHkvYm9va21hcmtzIn19LG1lc3NhZ2VzR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOnMsYWN0aW9uUGFyYW06YSxsYWJlbDoidXNlci5wcml2YXRlX21lc3NhZ2VzIixjbGFzc05hbWU6InVzZXItcG1zLWxpbmsiLGljb246ImVudmVsb3BlIixocmVmOnRoaXMuYXR0cnMucGF0aCsiL21lc3NhZ2VzIn19LGxpbmtIdG1sOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzQWN0aXZlKGUpJiYoZT10aGlzLm1hcmtBc0FjdGl2ZShlKSksdGhpcy5hdHRhY2goImxpbmsiLGUpfSxnbHlwaEh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXNBY3RpdmUoZSkmJihlPXRoaXMubWFya0FzQWN0aXZlKGUpKSx0aGlzLmF0dGFjaCgibGluayIsJC5leHRlbmQoZSx7aGlkZUxhYmVsOiEwfSkpfSxodG1sOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVt0aGlzLnByb2ZpbGVMaW5rKCldLG49W107cmV0dXJuIGMmJmMuZm9yRWFjaChmdW5jdGlvbihlKXsiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZSh0KSksZSYmbi5wdXNoKGUpfSksbi5wdXNoKHRoaXMubm90aWZpY2F0aW9uc0dseXBoKCkpLG4ucHVzaCh0aGlzLmJvb2ttYXJrc0dseXBoKCkpLCh0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcGVyc29uYWxfbWVzc2FnZXN8fHRoaXMuY3VycmVudFVzZXIuc3RhZmYpJiZuLnB1c2godGhpcy5tZXNzYWdlc0dseXBoKCkpLCgwLGkuaCkoInVsLm1lbnUtbGlua3Mtcm93IixbZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsaS5oKSgibGkudXNlciIsdC5saW5rSHRtbChlKSl9KSwoMCxpLmgpKCJsaS5nbHlwaHMiLG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdseXBoSHRtbChlKX0pKV0pfSxtYXJrQXNBY3RpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWN0aW9uPW51bGwsZS5hY3Rpb25QYXJhbT1udWxsLGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lKz0iIGFjdGl2ZSI6ZS5jbGFzc05hbWU9ImFjdGl2ZSIsZX0saXNBY3RpdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hY3Rpb24sbj1lLmFjdGlvblBhcmFtO3JldHVybiB0PT09cyYmbj09PXRoaXMuYXR0cnMuY3VycmVudFF1aWNrQWNjZXNzfX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidXNlci1tZW51LWRpc21pc3MtbGluayIse3RhZ05hbWU6ImRpdi5kaXNtaXNzLWxpbmsiLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49W107bi5wdXNoKCJcbiAgICAiKTt2YXIgaT1bXTtpLnB1c2goIlxuICAgICAgIik7dmFyIHM9W107cmV0dXJuIHMucHVzaCgiXG4gICAgICAgICIpLHMucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2FjdGlvbjoiZGlzbWlzc05vdGlmaWNhdGlvbnMiLGNsYXNzTmFtZToiZGlzbWlzcyIsdGFiaW5kZXg6IjAiLGljb246ImNoZWNrIixsYWJlbDoidXNlci5kaXNtaXNzIix0aXRsZToidXNlci5kaXNtaXNzX25vdGlmaWNhdGlvbnNfdG9vbHRpcCJ9KSkscy5wdXNoKCJcbiAgICAgICIpLGkucHVzaCh2aXJ0dWFsRG9tLmgoImxpIixzKSksaS5wdXNoKCJcbiAgICAiKSxuLnB1c2godmlydHVhbERvbS5oKCJ1bCIse2NsYXNzTmFtZToibWVudS1saW5rcyJ9LGkpKSxuLnB1c2goIlxuICAiKSxufX0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItbWVudSIse3RhZ05hbWU6ImRpdi51c2VyLW1lbnUiLGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuInVzZXItbWVudSJ9LHNldHRpbmdzOnttYXhXaWR0aDozMjAsc2hvd0xvZ291dEJ1dHRvbjohMH0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnRRdWlja0FjY2VzczpsLGhhc1VucmVhZDohMSxtYXJrVW5yZWFkOm51bGx9fSxwYW5lbENvbnRlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlci5nZXQoInBhdGgiKSx0PXRoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzLG49W3RoaXMuYXR0YWNoKCJ1c2VyLW1lbnUtbGlua3MiLHtwYXRoOmUsY3VycmVudFF1aWNrQWNjZXNzOnR9KSx0aGlzLnF1aWNrQWNjZXNzUGFuZWwoZSldO3JldHVybiB0aGlzLnN0YXRlLmhhc1VucmVhZCYmKG4ucHVzaCgoMCxpLmgpKCJoci5ib3R0b20tYXJlYSIpKSxuLnB1c2godGhpcy5hdHRhY2goInVzZXItbWVudS1kaXNtaXNzLWxpbmsiKSkpLG59LGRpc21pc3NOb3RpZmljYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUubWFya1JlYWQoKX0saXRlbXNMb2FkZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5oYXNVbnJlYWQsbj1lLm1hcmtSZWFkO3RoaXMuc3RhdGUuaGFzVW5yZWFkPXQsdGhpcy5zdGF0ZS5tYXJrUmVhZD1ufSxodG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5hdHRhY2goIm1lbnUtcGFuZWwiLHttYXhXaWR0aDp0aGlzLnNldHRpbmdzLm1heFdpZHRoLGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIGUucGFuZWxDb250ZW50cygpfX0pfSxjbGlja091dHNpZGVNb2JpbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcyxvPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSk7by5wYXJlbnRzKCIucGFuZWwiKS5sZW5ndGgmJiFvLmhhc0NsYXNzKCJoZWFkZXItY2xvYWsiKT90aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVVzZXJNZW51Iik6KHQ9JCh3aW5kb3cpLndpZHRoKCksKG49JCgiLm1lbnUtcGFuZWwiKSkuYWRkQ2xhc3MoImFuaW1hdGUiKSxuLmNzcygicmlnaHQiLC10KSwoaT0kKCIuaGVhZGVyLWNsb2FrIikpLmFkZENsYXNzKCJhbmltYXRlIiksaS5jc3MoIm9wYWNpdHkiLDApLCgwLHIubGF0ZXIpKGZ1bmN0aW9uKCl7cmV0dXJuIHMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlVXNlck1lbnUiKX0sMjAwKSl9LGNsaWNrT3V0c2lkZTpmdW5jdGlvbihlKXt0aGlzLnNpdGUubW9iaWxlVmlldz90aGlzLmNsaWNrT3V0c2lkZU1vYmlsZShlKTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVVzZXJNZW51Iil9LHF1aWNrQWNjZXNzOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzIT09ZSYmKHRoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzPWUpfSxxdWlja0FjY2Vzc1BhbmVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2V0dGluZ3Muc2hvd0xvZ291dEJ1dHRvbjtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy0iK3RoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzLHtwYXRoOmUsc2hvd0xvZ291dEJ1dHRvbjp0fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3VzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvaGVscGVycy9ub2RlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoImxhcmdlLW5vdGlmaWNhdGlvbi1pdGVtIix7YnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVsiaXRlbSIsIm5vdGlmaWNhdGlvbiIsImxhcmdlLW5vdGlmaWNhdGlvbiJdO3JldHVybiBlLmdldCgicmVhZCIpfHx0LnB1c2goInVucmVhZCIpLHR9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zaXRlLm5vdGlmaWNhdGlvbkxvb2t1cFtlLm5vdGlmaWNhdGlvbl90eXBlXTtyZXR1cm5bdGhpcy5hdHRhY2godC5kYXNoZXJpemUoKSsiLW5vdGlmaWNhdGlvbi1pdGVtIixlLHt9LHtmYWxsYmFja1dpZGdldE5hbWU6ImRlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0ifSksKDAsbi5oKSgic3Bhbi50aW1lIiwoMCxpLmRhdGVOb2RlKShlLmNyZWF0ZWRfYXQpKV19fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgidXNlci1ub3RpZmljYXRpb25zLWxhcmdlIix7aHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49ZS5ub3RpZmljYXRpb25zLGk9bi5maW5kQXJncy51c2VybmFtZTtyZXR1cm4gbi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWU9aSx0LmF0dGFjaCgibGFyZ2Utbm90aWZpY2F0aW9uLWl0ZW0iLGUpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvaG9va3MiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL2RlY29yYXRvci1oZWxwZXIiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxjLGQscixhLGwsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLGUucXVlcnlSZWdpc3RyeT1mdW5jdGlvbihlKXtyZXR1cm4gb1tlXX0sZS5kZWNvcmF0ZVdpZGdldD1mdW5jdGlvbihlLHQpe21bZV09bVtlXXx8W10sbVtlXS5wdXNoKHQpfSxlLmFwcGx5RGVjb3JhdG9ycz1mLGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7T2JqZWN0LmtleXMobSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZGVsZXRlIG1bZV19KX0sZS5jaGFuZ2VTZXR0aW5nPWZ1bmN0aW9uKGUsdCxuKXtoW2VdPWhbZV18fHt9LGhbZV1bdF09bn0sZS5jcmVhdGVXaWRnZXRGcm9tPW4sZS5jcmVhdGVXaWRnZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihzLGUsdCl9LGUucmVvcGVuV2lkZ2V0PWZ1bmN0aW9uKGUsYSl7dmFyIHQ9b1tlXTtpZighdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgZmluZCB3aWRnZXQgIitlKyIgaW4gcmVnaXN0cnkiKTthLnRlbXBsYXRlJiYoYS5odG1sPWEudGVtcGxhdGUpO3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciByPXQucHJvdG90eXBlW29dO3IgaW5zdGFuY2VvZiBGdW5jdGlvbj90LnByb3RvdHlwZVtvXT1mdW5jdGlvbigpe3ZhciBpPXRoaXMsZT1PYmplY3QuY3JlYXRlKHRoaXMpO2UuX3N1cGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gci5hcHBseShpLHQpfTtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPUFycmF5KHQpLHM9MDtzPHQ7cysrKW5bc109YXJndW1lbnRzW3NdO3JldHVybiBhW29dLmFwcGx5KGUsbil9OnQucHJvdG90eXBlW29dPWFbb119KSx0fTt2YXIgdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fWZ1bmN0aW9uIHAoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX12YXIgbz17fTt2YXIgbT17fTtmdW5jdGlvbiBmKGUsdCxuLGkpe3ZhciBzPW1bZS5uYW1lKyI6Iit0XXx8W107aWYocy5sZW5ndGgpe3ZhciBvPW5ldyByLmRlZmF1bHQoZSxuLGkpO3JldHVybiBzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZShvKX0pfXJldHVybltdfXZhciBoPXt9O2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPShmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9KHMsZSkscyk7ZnVuY3Rpb24gcygpe3JldHVybiBwKHRoaXMscyksZnVuY3Rpb24oZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6dH0odGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1yZXR1cm4gdCYmKG9bdF09aSksbi5uYW1lPXQsbi50ZW1wbGF0ZSYmKG4uaHRtbD1uLnRlbXBsYXRlKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpLnByb3RvdHlwZVtlXT1uW2VdfSksaX12YXIgcz0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShiLFt7a2V5OiJ0cmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSx7a2V5OiJkZWZhdWx0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmdldCkodGhpcyxlKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5kaXJ0eUtleXM7aWYoZSYmZS5rZXkmJmUua2V5PT09dGhpcy5rZXk/dGhpcy5zdGF0ZT1lLnN0YXRlOnRoaXMuc3RhdGU9dGhpcy5kZWZhdWx0U3RhdGUodGhpcy5hdHRycyx0aGlzLnN0YXRlKSx0aGlzLm1lcmdlU3RhdGUmJih0aGlzLnN0YXRlPV8ubWVyZ2UodGhpcy5zdGF0ZSx0aGlzLm1lcmdlU3RhdGUpKSxlKXt2YXIgbj10Lm9wdGlvbnNGb3IoZS5rZXkpO2lmKGUuc2hhZG93VHJlZSYmKHRoaXMuc2hhZG93VHJlZT0hMCwhbi5kaXJ0eSYmIXQuYWxsRGlydHkoKSkpcmV0dXJuIGUudm5vZGU7ZS5rZXkmJnQucmVuZGVyZWRLZXkoZS5rZXkpO3ZhciBpPW4ub25SZWZyZXNoO2kmJnRoaXMuc2VuZFdpZGdldEFjdGlvbihpLG4ucmVmcmVzaEFyZyl9cmV0dXJuIHRoaXMuZHJhdyhkLmgsdGhpcy5hdHRycyx0aGlzLnN0YXRlKX19LHtrZXk6Il9maW5kQW5jZXN0b3JXaXRoUHJvcGVydHkiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzO3Q7KXtpZih0W2VdKXJldHVybiB0O3Q9dC5wYXJlbnRXaWRnZXR9fX0se2tleToiX2ZpbmRWaWV3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ZpbmRBbmNlc3RvcldpdGhQcm9wZXJ0eSgiX2VtYmVyVmlldyIpO2lmKGUpcmV0dXJuIGUuX2VtYmVyVmlld319LHtrZXk6Imxvb2t1cFdpZGdldENsYXNzIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1vW2VdO3JldHVybiB0fHwodGhpcy5yZWdpc3Rlcj8odD10aGlzLnJlZ2lzdGVyLmxvb2t1cEZhY3RvcnkoIndpZGdldDoiK2UpKSYmdC5jbGFzcz90LmNsYXNzOm51bGw6KGNvbnNvbGUuZXJyb3IoImNvdWxkbid0IGZpbmQgcmVnaXN0ZXIiKSxudWxsKSl9fSx7a2V5OiJhdHRhY2giLHZhbHVlOmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOnt9LG89dGhpcy5sb29rdXBXaWRnZXRDbGFzcyhlKTtpZighbyYmcy5mYWxsYmFja1dpZGdldE5hbWUmJihvPXRoaXMubG9va3VwV2lkZ2V0Q2xhc3Mocy5mYWxsYmFja1dpZGdldE5hbWUpKSxvKXt2YXIgcj1uZXcgbyh0LHRoaXMucmVnaXN0ZXIsbik7cmV0dXJuIHIucGFyZW50V2lkZ2V0PXRoaXMsci5kaXJ0eUtleXM9dGhpcy5kaXJ0eUtleXMscn10aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgIitlKyIgb3IgZmFsbGJhY2sgIitzLmZhbGxiYWNrV2lkZ2V0TmFtZSl9fSx7a2V5OiJzY2hlZHVsZVJlcmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzO2U7KXtlLnNoYWRvd1RyZWUmJnRoaXMuZGlydHlLZXlzLmtleURpcnR5KGUua2V5KTt2YXIgdD1lLl9yZXJlbmRlcmFibGU7aWYodClyZXR1cm4gdC5xdWV1ZVJlcmVuZGVyKCk7ZT1lLnBhcmVudFdpZGdldH19fSx7a2V5OiJfc2VuZENvbXBvbmVudEFjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDAsaT10aGlzLl9maW5kVmlldygpO2lmKGkpe3ZhciBzLG89aS5nZXQoZSk7aWYoIW8pcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKGUrIiBub3QgZm91bmQiKTsic3RyaW5nIj09dHlwZW9mIG8/KGlbb10odCksbj1hLlByb21pc2UucmVzb2x2ZSgpKToocz1pLmdldCgidGFyZ2V0Iil8fGksKG49by5jYWxsKHMsdCkpJiZuLnRoZW58fChuPWEuUHJvbWlzZS5yZXNvbHZlKG4pKSl9cmV0dXJuIHRoaXMucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfX0se2tleToiZmluZEFuY2VzdG9yTW9kZWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZmluZEFuY2VzdG9yV2l0aFByb3BlcnR5KCJtb2RlbCIpO2lmKGUpcmV0dXJuIGUubW9kZWx9fSx7a2V5OiJyZXJlbmRlclJlc3VsdCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnNjaGVkdWxlUmVyZW5kZXIoKTt2YXIgbj1lKCk7cmV0dXJuIG4mJm4udGhlbj9uLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2hlZHVsZVJlcmVuZGVyKCl9KTpufX0se2tleToic2VuZFdpZGdldEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1lKyJFdmVudCI7cmV0dXJuIHRoaXMucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXt2YXIgZT1uLl9maW5kQW5jZXN0b3JXaXRoUHJvcGVydHkoaSk7aWYoZSlyZXR1cm4gZVtpXSh0KX0pfX0se2tleToic2VuZFdpZGdldEFjdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCxuKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLnJlcmVuZGVyUmVzdWx0KGZ1bmN0aW9uKCl7dmFyIGU9aS5fZmluZEFuY2VzdG9yV2l0aFByb3BlcnR5KHQpO3JldHVybiBlP2VbdF0uY2FsbChlLG4pOmkuX3NlbmRDb21wb25lbnRBY3Rpb24odCxufHxpLmZpbmRBbmNlc3Rvck1vZGVsKCkpfSl9fSx7a2V5OiJodG1sIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxzLG89e307dGhpcy5idWlsZENsYXNzZXMmJihpPXRoaXMuYnVpbGRDbGFzc2VzKHQsbil8fFtdLEFycmF5LmlzQXJyYXkoaSl8fChpPVtpXSksKHM9Zih0aGlzLCJjbGFzc05hbWVzIix0LG4pKSYmcy5sZW5ndGgmJihpPWkuY29uY2F0KHMpKSxpLmxlbmd0aCYmKG8uY2xhc3NOYW1lPWkuam9pbigiICIpKSksdGhpcy5idWlsZElkJiYoby5pZD10aGlzLmJ1aWxkSWQodCkpLHRoaXMuYnVpbGRBdHRyaWJ1dGVzJiYoby5hdHRyaWJ1dGVzPXRoaXMuYnVpbGRBdHRyaWJ1dGVzKHQpKSx0aGlzLmtleVVwJiYob1sid2lkZ2V0LWtleS11cCJdPW5ldyBjLldpZGdldEtleVVwSG9vayh0aGlzKSksdGhpcy5rZXlEb3duJiYob1sid2lkZ2V0LWtleS1kb3duIl09bmV3IGMuV2lkZ2V0S2V5RG93bkhvb2sodGhpcykpLHRoaXMuY2xpY2tPdXRzaWRlJiYob1sid2lkZ2V0LWNsaWNrLW91dHNpZGUiXT1uZXcgYy5XaWRnZXRDbGlja091dHNpZGVIb29rKHRoaXMpKSx0aGlzLmNsaWNrJiYob1sid2lkZ2V0LWNsaWNrIl09bmV3IGMuV2lkZ2V0Q2xpY2tIb29rKHRoaXMpKSx0aGlzLmRvdWJsZUNsaWNrJiYob1sid2lkZ2V0LWRvdWJsZS1jbGljayJdPW5ldyBjLldpZGdldERvdWJsZUNsaWNrSG9vayh0aGlzKSksdGhpcy5tb3VzZURvd25PdXRzaWRlJiYob1sid2lkZ2V0LW1vdXNlLWRvd24tb3V0c2lkZSJdPW5ldyBjLldpZGdldE1vdXNlRG93bk91dHNpZGVIb29rKHRoaXMpKSx0aGlzLmRyYWcmJihvWyJ3aWRnZXQtZHJhZyJdPW5ldyBjLldpZGdldERyYWdIb29rKHRoaXMpKSx0aGlzLmlucHV0JiYob1sid2lkZ2V0LWlucHV0Il09bmV3IGMuV2lkZ2V0SW5wdXRIb29rKHRoaXMpKSx0aGlzLmNoYW5nZSYmKG9bIndpZGdldC1jaGFuZ2UiXT1uZXcgYy5XaWRnZXRDaGFuZ2VIb29rKHRoaXMpKSx0aGlzLm1vdXNlRG93biYmKG9bIndpZGdldC1tb3VzZS1kb3duIl09bmV3IGMuV2lkZ2V0TW91c2VEb3duSG9vayh0aGlzKSksdGhpcy5tb3VzZVVwJiYob1sid2lkZ2V0LW1vdXNlLXVwIl09bmV3IGMuV2lkZ2V0TW91c2VVcEhvb2sodGhpcykpLHRoaXMubW91c2VNb3ZlJiYob1sid2lkZ2V0LW1vdXNlLW1vdmUiXT1uZXcgYy5XaWRnZXRNb3VzZU1vdmVIb29rKHRoaXMpKTt2YXIgcj1vLmF0dHJpYnV0ZXN8fHt9O28uYXR0cmlidXRlcz1yLHRoaXMudGl0bGUmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy50aXRsZT9yLnRpdGxlPXRoaXMudGl0bGUodCxuKTpyLnRpdGxlPUkxOG4udCh0aGlzLnRpdGxlKSksdGhpcy50cmFuc2Zvcm1lZD10aGlzLnRyYW5zZm9ybSh0aGlzLmF0dHJzLHRoaXMuc3RhdGUpO3ZhciBhLGwsdT10aGlzLmh0bWwodCxuKTtyZXR1cm4gdGhpcy5uYW1lJiYoYT1mKHRoaXMsImJlZm9yZSIsdCxuKXx8W10sbD1mKHRoaXMsImFmdGVyIix0LG4pfHxbXSx1PWEuY29uY2F0KHUpLmNvbmNhdChsKSksKDAsZC5oKSh0aGlzLnRhZ05hbWV8fCJkaXYiLG8sdSl9fV0pLGIpO2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciBpLHM9dGhpcztpZihwKHRoaXMsYiksbj1ufHx7fSx0aGlzLmF0dHJzPWV8fHt9LHRoaXMubWVyZ2VTdGF0ZT1uLnN0YXRlLHRoaXMubW9kZWw9bi5tb2RlbCx0aGlzLnJlZ2lzdGVyPXQsdGhpcy5kaXJ0eUtleXM9bi5kaXJ0eUtleXMsdC5kZXByZWNhdGVDb250YWluZXIodGhpcyksdGhpcy5rZXk9dGhpcy5idWlsZEtleT90aGlzLmJ1aWxkS2V5KGUpOm51bGwsdGhpcy5zaXRlPXQubG9va3VwKCJzaXRlOm1haW4iKSx0aGlzLnNpdGVTZXR0aW5ncz10Lmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIiksdGhpcy5jdXJyZW50VXNlcj10Lmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSx0aGlzLmNhcGFiaWxpdGllcz10Lmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKSx0aGlzLnN0b3JlPXQubG9va3VwKCJzZXJ2aWNlOnN0b3JlIiksdGhpcy5hcHBFdmVudHM9dC5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLHRoaXMua2V5VmFsdWVTdG9yZT10Lmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSx0aGlzLmluaXQodGhpcy5hdHRycyksImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudHx8InRlc3QiPT09bC5kZWZhdWx0LmVudmlyb25tZW50KXt2YXIgbz10aGlzLmRlZmF1bHRTdGF0ZShlKTtpZigib2JqZWN0IiE9PSh2b2lkIDA9PT1vPyJ1bmRlZmluZWQiOnUobykpKXRocm93IG5ldyBFcnJvcigiZGVmYXVsdFN0YXRlIG11c3QgcmV0dXJuIGFuIG9iamVjdCIpO2lmKDA8T2JqZWN0LmtleXMobykubGVuZ3RoJiYhdGhpcy5rZXkpdGhyb3cgbmV3IEVycm9yKCJ5b3UgbmVlZCBhIGtleSB3aGVuIHVzaW5nIHN0YXRlIGluICIrdGhpcy5uYW1lKX0hdGhpcy5uYW1lfHwoaT1oW3RoaXMubmFtZV0pJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnNldHRpbmdzW2VdPWlbZV19KX0oZS5kZWZhdWx0PXMpLnByb3RvdHlwZS50eXBlPSJUaHVuayJ9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9L2Fzc2V0cy9hcHBsaWNhdGlvbi05YWQxNWJmOThjOGU3MzRiODQyN2UxMzQ3YzE3ZGQ5NmJiN2ZiZDk5ZmFlZjI0ZTg2NDZhYTc1YmQzYTVkNmExLmpzLm1hcA==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.1340000017080456,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2574.158000003081,
          "receive": 19226.141999999527,
          "_blocked_queueing": 0.1340000017080456
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 39
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2759.485999995377,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000403"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:44 GMT"
            },
            {
              "name": "Content-Length",
              "value": "1127"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2133,
            "mimeType": "application/javascript",
            "text": "!function(e,i){var t=function(e){var t,i=e.createElement(\"details\");if(!(\"open\"in i))return!1;var n,s=e.body||(n=e.documentElement,t=!0,n.insertBefore(e.createElement(\"body\"),n.firstElementChild||n.firstChild));i.innerHTML=\"<summary>a</summary>b\",i.style.display=\"block\",s.appendChild(i);var o=i.offsetHeight;return i.open=!0,o=o!==i.offsetHeight,s.removeChild(i),t&&s.parentNode.removeChild(s),o}(e);function n(e){e.toggleClass(\"open\")}i.fn.details=function(){return t?this:this.each(function(){var t=i(this),e=i(\"summary\",t).first();e.prop(\"tabIndex\",0),e.on(\"keydown\",function(e){if(32===e.keyCode||13===e.keyCode)return n(t),!1}),e.on(\"click\",function(){e.focus(),n(t)})})}}(document,jQuery),define(\"discourse/plugins/discourse-details/initializers/apply-details\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,t){\"use strict\";function i(e){e.decorateCooked(function(e){return $(\"details\",e).details()},{id:\"discourse-details\"}),e.addToolbarPopupMenuOptionsCallback(function(){return{action:\"insertDetails\",icon:\"caret-right\",label:\"details.title\"}}),e.modifyClass(\"controller:composer\",{actions:{insertDetails:function(){this.toolbarEvent.applySurround('\\n[details=\"'+I18n.t(\"composer.details_title\")+'\"]\\n',\"\\n[/details]\\n\",\"details_text\",{multiline:!1})}}})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"apply-details\",initialize:function(){(0,t.withPluginApi)(\"0.8.7\",i)}}}),define(\"discourse/plugins/discourse-details/lib/discourse-markdown/details\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.setup=function(e){e.whiteList([\"summary\",\"summary[title]\",\"details\",\"details[open]\",\"details.elided\"]),e.registerPlugin(function(e){e.block.bbcode.ruler.push(\"details\",t)})};var t={tag:\"details\",before:function(e,t){var i=t.attrs;e.push(\"bbcode_open\",\"details\",1),e.push(\"bbcode_open\",\"summary\",1),e.push(\"text\",\"\",0).content=i._default||\"\",e.push(\"bbcode_close\",\"summary\",-1)},after:function(e){e.push(\"bbcode_close\",\"details\",-1)}}});\n//# sourceMappingURL=/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.13800000306218863,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2759.1449999890756,
          "receive": 0.20300000323913991,
          "_blocked_queueing": 0.13800000306218863
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 42
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2762.2209999826737,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000241"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:44 GMT"
            },
            {
              "name": "Content-Length",
              "value": "539"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 770,
            "mimeType": "application/javascript",
            "text": "define(\"discourse/plugins/discourse-internet-explorer/initializers/discourse-internet-explorer\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,i){\"use strict\";function n(e){e.container.lookup(\"site-settings:main\").discourse_internet_explorer_deprecation_warning&&e.container.lookup(\"capabilities:main\").isIE11&&e.addGlobalNotice(I18n.t(\"discourse_internet_explorer.deprecation_warning\"),\"deprecate-internet-explorer\",{dismissable:!0,dismissDuration:moment.duration(1,\"week\")})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"discourse-internet-explorer\",initialize:function(){(0,i.withPluginApi)(\"0.8.37\",n)}}});\n//# sourceMappingURL=/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11600000255182386,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2761.869999995153,
          "receive": 0.23499998496845365,
          "_blocked_queueing": 0.11500000255182385
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 45
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2966.002999979537,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000340"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:45 GMT"
            },
            {
              "name": "Content-Length",
              "value": "6978"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 25632,
            "mimeType": "application/javascript",
            "text": "!function(p){var v='\\n    <span>\\n      <svg class=\"fa d-icon d-icon-globe-americas svg-icon\" xmlns=\"http://www.w3.org/2000/svg\">\\n        <use xlink:href=\"#globe-americas\"></use>\\n      </svg>\\n      <span class=\"relative-time\"></span>\\n    </span>\\n  ',g=\"\\n    <div class='preview'>\\n      <span class='timezone'></span>\\n      <span class='date-time'></span>\\n    </div>\\n  \";function h(e,t){var n=1<arguments.length&&void 0!==t?t:{};clearTimeout(this.timeout);var a,o,r=moment().utc(),i=n.time?n.date+\" \"+n.time:n.date,s=void 0,s=n.time?n.displayedTimezone||moment.tz.guess():n.displayedTimezone||n.timezone||moment.tz.guess(),l=void 0;(l=n.timezone?(a=i,o=n.timezone,moment.tz(a,o).utc()):moment.utc(i))<r&&(n.recurring?l=function(e,t){var n=t.recurring,a=t.timezone,o=n.split(\".\"),r=parseInt(o[0],10),i=o[1],s=moment().diff(e,i),l=Math.ceil(s+r),m=moment(e.format()).isDST(),c=moment(e).add(l,i),u=moment(c.format()).isDST(),d=moment.tz({month:0,day:1},a||\"Etc/UTC\").utcOffset(),f=moment.tz({month:5,day:1},a||\"Etc/UTC\").utcOffset();!m&&u&&c.add(-f+d,\"minutes\");m&&!u&&c.add(f-d,\"minutes\");return c}(l,n):e.addClass(\"past\"));var m=l.tz(s),c=function(t,n,a){var o=[],r=moment.tz.guess(),e=a.timezones.filter(function(e){return!y(e,r)&&!y(e,a.timezone)});o.push({timezone:r,current:!0,dateTime:a.time?moment(t).tz(r).format(\"LLL\"):w(t,r)}),a.timezone&&n===r&&a.timezone!==n&&!y(n,a.timezone)&&e.unshift(a.timezone);Array.from(new Set(e.filter(Boolean))).forEach(function(e){y(e,n)||(y(e,r)&&(e=r),o.push({timezone:e,dateTime:a.time?moment(t).tz(e).format(\"LLL\"):w(t,e)}))}),o.length||o.push({timezone:\"Etc/UTC\",dateTime:a.time?moment(t).tz(\"Etc/UTC\").format(\"LLL\"):w(t,\"Etc/UTC\")});return _.uniq(o,\"timezone\")}(m.clone(),s,n),u=c.map(function(e){var t=b(e.timezone);return e.dateTime.match(/TZ/)?e.dateTime.replace(/TZ/,t):t+\" \"+e.dateTime}).join(\", \"),d=c.map(function(e){var t=p(g);return e.current&&t.addClass(\"current\"),t.find(\".timezone\").text(b(e.timezone)),t.find(\".date-time\").text(e.dateTime),t[0].outerHTML}).join(\"\"),f=function(e,t,n){if(n.countdown){var a=e.diff(moment());return a<0?I18n.t(\"discourse_local_dates.relative_dates.countdown.passed\"):moment.duration(a).humanize()}var o=y(t,moment.tz.guess()),r=e.isBetween(moment().subtract(2,\"days\"),moment().add(1,\"days\").endOf(\"day\"));e=n.calendar&&r?o?n.time?e.calendar(null,T(n.time)):e.calendar(null,T(null)):(e=(e=e.format(n.format)).replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\":n.time?(e=e.format(n.format),n.displayedTimezone&&!o?(e=e.replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\":e.replace(\"TZ\",z(t).join(\": \"))):(e=e.format(n.format),o?e.replace(\"TZ\",b(t)):(e=e.replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\");return e}(m,s,n);e.html(v).attr(\"aria-label\",u).attr(\"data-html-tooltip\",'<div class=\"locale-dates-previews\">'+d+\"</div>\").addClass(\"cooked-date\").find(\".relative-time\").text(f),this.timeout=setTimeout(function(){return h(e,n)},6e4)}function z(e){return e.replace(\"_\",\" \").replace(\"Etc/\",\"\").split(\"/\")}function b(e){var t=z(e);return t[1]||t[0]}function t(e,t){var n=I18n.t(\"discourse_local_dates.relative_dates.\"+t,{time:\"LT\"});return e?n.split(\"LT\").map(function(e){return\"[\"+e+\"]\"}).join(\"LT\"):\"[\"+n.replace(\" LT\",\"\")+\"]\"}function T(e){return{sameDay:t(e,\"today\"),nextDay:t(e,\"tomorrow\"),lastDay:t(e,\"yesterday\"),sameElse:\"L\"}}function y(e,t){return!!(!e&&!t||e&&t)&&(!(!e.includes(t)&&!t.includes(e))||moment.tz(e).utcOffset()===moment.tz(t).utcOffset())}function w(e,t){var n=moment(e).tz(t);return[n.format(\"LLL\"),\"→\",n.add(24,\"hours\").format(\"LLL\")].join(\" \")}p.fn.applyLocalDates=function(){return this.each(function(){var e=p(this),t={};t.time=e.attr(\"data-time\"),t.date=e.attr(\"data-date\"),t.recurring=e.attr(\"data-recurring\"),t.timezones=(e.attr(\"data-timezones\")||Discourse.SiteSettings.discourse_local_dates_default_timezones||\"Etc/UTC\").split(\"|\"),t.timezone=e.attr(\"data-timezone\"),t.calendar=\"on\"===(e.attr(\"data-calendar\")||\"on\"),t.displayedTimezone=e.attr(\"data-displayed-timezone\"),t.format=e.attr(\"data-format\")||(t.time?\"LLL\":\"LL\"),t.countdown=e.attr(\"data-countdown\"),h(e,t)})}}(jQuery),define(\"discourse/plugins/discourse-local-dates/discourse/components/discourse-local-dates-create-form\",[\"exports\",\"@ember/utils\",\"@ember/runloop\",\"@ember/component\",\"discourse/lib/computed\",\"discourse/lib/load-script\",\"discourse-common/utils/decorators\",\"discourse/lib/text\",\"discourse/lib/debounce\"],function(e,n,a,t,o,r,i,s,l){\"use strict\";function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(n,a,e,t,o){var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,(\"value\"in r||r.initializer)&&(r.writable=!0),r=e.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},r),o&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(o):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(n,a,r),r=null),r}var u,d,f,p,v,g,h,z,_,b,T,y,w,D,k,L;Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=t.default.extend((u=(0,i.observes)(\"markup\"),d=(0,i.default)(\"date\",\"toDate\",\"toTime\"),f=(0,i.default)(\"computedConfig\",\"isRange\"),p=(0,i.default)(\"date\",\"time\",\"isRange\",\"options.{format,timezone}\"),v=(0,i.default)(\"toDate\",\"toTime\",\"isRange\",\"options.{timezone,format}\"),g=(0,i.default)(\"recurring\",\"timezones\",\"timezone\",\"format\"),h=(0,i.default)(\"fromConfig.{date}\",\"toConfig.{date}\",\"options.{recurring,timezones,timezone,format}\"),z=(0,i.default)(\"currentUserTimezone\"),_=(0,i.default)(\"formats\"),b=(0,i.default)(\"advancedMode\"),T=(0,i.default)(\"computedConfig.{from,to,options}\",\"options\",\"isValid\",\"isRange\"),y=(0,i.default)(\"fromConfig.dateTime\"),w=(0,i.default)(\"toConfig.dateTime\",\"toSelected\"),m(L={timeFormat:\"HH:mm:ss\",dateFormat:\"YYYY-MM-DD\",dateTimeFormat:\"YYYY-MM-DD HH:mm:ss\",date:null,toDate:null,time:null,toTime:null,format:null,formats:null,recurring:null,advancedMode:!1,isValid:!0,timezone:null,fromSelected:null,fromFilled:Ember.computed.notEmpty(\"date\"),toSelected:null,toFilled:Ember.computed.notEmpty(\"toDate\"),init:function(){this._super.apply(this,arguments),this._picker=null,this.setProperties({timezones:[],formats:(this.siteSettings.discourse_local_dates_default_formats||\"\").split(\"|\").filter(function(e){return e}),timezone:moment.tz.guess(),date:moment().format(this.dateFormat)})},didInsertElement:function(){var t=this;this._super.apply(this,arguments),this._setupPicker().then(function(e){t._picker=e,t.send(\"focusFrom\")})},_renderPreview:(0,l.default)(function(){var t=this,e=this.markup;e&&(0,s.cookAsync)(e).then(function(e){t.set(\"currentPreview\",e),(0,a.schedule)(\"afterRender\",function(){return t.$(\".preview .discourse-local-date\").applyLocalDates()})})},250),isRange:function(e,t,n){return e&&(t||n)}},\"isValid\",function(e,t){var n=e.from;if(!e.from.dateTime||!e.from.dateTime.isValid())return!1;if(t){var a=e.to;if(!a.dateTime||!a.dateTime.isValid()||a.dateTime.diff(n.dateTime)<0)return!1}return!0}),m(L,\"fromConfig\",function(e,t,n,a){var o=3<arguments.length&&void 0!==a?a:{},r=!t,i=void 0,i=r?moment.tz(e,o.timezone):moment.tz(e+\" \"+t,o.timezone);r||(t=i.format(this.timeFormat));var s=o.format;return r&&this.formats.includes(s)&&(s=\"LL\"),Ember.Object.create({date:i.format(this.dateFormat),time:t,dateTime:i,format:s,range:!!n&&\"start\"})}),m(L,\"toConfig\",function(e,t,n,a){var o=3<arguments.length&&void 0!==a?a:{},r=!t;t&&!e&&(e=moment().format(this.dateFormat));var i=void 0,i=r?moment.tz(e,o.timezone).endOf(\"day\"):moment.tz(e+\" \"+t,o.timezone);r||(t=i.format(this.timeFormat));var s=o.format;return r&&this.formats.includes(s)&&(s=\"LL\"),Ember.Object.create({date:i.format(this.dateFormat),time:t,dateTime:i,format:s,range:!!n&&\"end\"})}),m(L,\"options\",function(e,t,n,a){return Ember.Object.create({recurring:e,timezones:t,timezone:n,format:a})}),m(L,\"computedConfig\",function(e,t,n){return Ember.Object.create({from:e,to:t,options:n})}),m(L,\"currentUserTimezone\",function(){return moment.tz.guess()}),m(L,\"allTimezones\",function(){return moment.tz.names()}),m(L,\"timezoneIsDifferentFromUserTimezone\",(0,o.propertyNotEqual)(\"currentUserTimezone\",\"options.timezone\")),m(L,\"formatedCurrentUserTimezone\",function(e){return e.replace(\"_\",\" \").replace(\"Etc/\",\"\").split(\"/\")}),m(L,\"previewedFormats\",function(e){return e.map(function(e){return{format:e,preview:moment().format(e)}})}),m(L,\"recurringOptions\",function(){var e=\"discourse_local_dates.create.form.recurring\";return[{name:I18n.t(e+\".every_day\"),id:\"1.days\"},{name:I18n.t(e+\".every_week\"),id:\"1.weeks\"},{name:I18n.t(e+\".every_two_weeks\"),id:\"2.weeks\"},{name:I18n.t(e+\".every_month\"),id:\"1.months\"},{name:I18n.t(e+\".every_two_months\"),id:\"2.months\"},{name:I18n.t(e+\".every_three_months\"),id:\"3.months\"},{name:I18n.t(e+\".every_six_months\"),id:\"6.months\"},{name:I18n.t(e+\".every_year\"),id:\"1.years\"}]}),m(L,\"_generateDateMarkup\",function(e,t,n){var a=\"[date=\"+e.date;return e.time&&(a+=\" time=\"+e.time),e.format&&e.format.length&&(a+=' format=\"'+e.format+'\"'),t.timezone&&(a+=' timezone=\"'+t.timezone+'\"'),t.timezones&&t.timezones.length&&(a+=' timezones=\"'+t.timezones.join(\"|\")+'\"'),t.recurring&&!n&&(a+=' recurring=\"'+t.recurring+'\"'),a+=\"]\"}),m(L,\"toggleModeBtnLabel\",function(e){return e?\"discourse_local_dates.create.form.simple_mode\":\"discourse_local_dates.create.form.advanced_mode\"}),m(L,\"markup\",function(e,t,n,a){var o=void 0;return n&&e.from&&(o=this._generateDateMarkup(e.from,t,a),e.to&&e.to.range&&(o+=\" → \",o+=this._generateDateMarkup(e.to,t,a))),o}),m(L,\"formattedFrom\",function(e){return e.format(\"LLLL\")}),m(L,\"formattedTo\",function(e,t){var n=t?\"&nbsp;\":I18n.t(\"discourse_local_dates.create.form.until\");return e.isValid()?e.format(\"LLLL\"):n}),m(L,\"actions\",{setTime:function(e){this._setTimeIfValid(e.target.value,\"time\")},setToTime:function(e){this._setTimeIfValid(e.target.value,\"toTime\")},eraseToDateTime:function(){this.setProperties({toDate:null,toTime:null}),this._setPickerDate(null)},focusFrom:function(){this.setProperties({fromSelected:!0,toSelected:!1}),this._setPickerDate(this.get(\"fromConfig.date\")),this._setPickerMinDate(null)},focusTo:function(){this.setProperties({toSelected:!0,fromSelected:!1}),this._setPickerDate(this.get(\"toConfig.date\")),this._setPickerMinDate(this.get(\"fromConfig.date\"))},advancedMode:function(){this.toggleProperty(\"advancedMode\")},save:function(){var e=this.markup;e&&(this._closeModal(),this.toolbarEvent.addText(e))},cancel:function(){this._closeModal()}}),m(L,\"_setTimeIfValid\",function(e,t){(0,n.isEmpty)(e)?this.set(t,null):/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/.test(e)&&this.set(t,e)}),m(L,\"_setupPicker\",function(){var n=this;return new Ember.RSVP.Promise(function(t){(0,r.default)(\"/javascripts/pikaday.js\").then(function(){var e={field:n.$(\".fake-input\")[0],container:n.$(\"#picker-container-\"+n.elementId)[0],bound:!1,format:\"YYYY-MM-DD\",reposition:!1,firstDay:1,setDefaultDate:!0,keyboardInput:!1,i18n:{previousMonth:I18n.t(\"dates.previous_month\"),nextMonth:I18n.t(\"dates.next_month\"),months:moment.months(),weekdays:moment.weekdays(),weekdaysShort:moment.weekdaysMin()},onSelect:function(e){var t=moment(e).format(\"YYYY-MM-DD\");n.fromSelected&&n.set(\"date\",t),n.toSelected&&n.set(\"toDate\",t)}};t(new Pikaday(e))})})}),m(L,\"_setPickerMinDate\",function(e){var t=this;e&&!moment(e,this.dateFormat).isValid()&&(e=null),(0,a.schedule)(\"afterRender\",function(){t._picker.setMinDate(moment(e,t.dateFormat).toDate())})}),m(L,\"_setPickerDate\",function(e){var t=this;e&&!moment(e,this.dateFormat).isValid()&&(e=null),(0,a.schedule)(\"afterRender\",function(){t._picker.setDate(moment.utc(e),!0)})}),m(L,\"_closeModal\",function(){Discourse.__container__.lookup(\"controller:composer\").send(\"closeModal\")}),c(D=L,\"_renderPreview\",[u],(k=(k=Object.getOwnPropertyDescriptor(D,\"_renderPreview\"))?k.value:void 0,{enumerable:!0,configurable:!0,writable:!0,initializer:function(){return k}}),D),c(D,\"isRange\",[d],Object.getOwnPropertyDescriptor(D,\"isRange\"),D),c(D,\"isValid\",[f],Object.getOwnPropertyDescriptor(D,\"isValid\"),D),c(D,\"fromConfig\",[p],Object.getOwnPropertyDescriptor(D,\"fromConfig\"),D),c(D,\"toConfig\",[v],Object.getOwnPropertyDescriptor(D,\"toConfig\"),D),c(D,\"options\",[g],Object.getOwnPropertyDescriptor(D,\"options\"),D),c(D,\"computedConfig\",[h],Object.getOwnPropertyDescriptor(D,\"computedConfig\"),D),c(D,\"currentUserTimezone\",[i.default],Object.getOwnPropertyDescriptor(D,\"currentUserTimezone\"),D),c(D,\"allTimezones\",[i.default],Object.getOwnPropertyDescriptor(D,\"allTimezones\"),D),c(D,\"formatedCurrentUserTimezone\",[z],Object.getOwnPropertyDescriptor(D,\"formatedCurrentUserTimezone\"),D),c(D,\"previewedFormats\",[_],Object.getOwnPropertyDescriptor(D,\"previewedFormats\"),D),c(D,\"recurringOptions\",[i.default],Object.getOwnPropertyDescriptor(D,\"recurringOptions\"),D),c(D,\"toggleModeBtnLabel\",[b],Object.getOwnPropertyDescriptor(D,\"toggleModeBtnLabel\"),D),c(D,\"markup\",[T],Object.getOwnPropertyDescriptor(D,\"markup\"),D),c(D,\"formattedFrom\",[y],Object.getOwnPropertyDescriptor(D,\"formattedFrom\"),D),c(D,\"formattedTo\",[w],Object.getOwnPropertyDescriptor(D,\"formattedTo\"),D),D))}),Ember.TEMPLATES[\"javascripts/components/discourse-local-dates-create-form\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"previewedFormat\"],\"statements\":[[4,\"d-modal-body\",null,[[\"title\",\"class\",\"style\"],[\"discourse_local_dates.title\",\"discourse-local-dates-create-modal\",\"overflow: auto\"]],{\"statements\":[[0,\"\\\\n  \"],[7,\"div\",true],[10,\"class\",\"form\"],[8],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isValid\"]]],null,{\"statements\":[[0,\"      \"],[7,\"div\",true],[10,\"class\",\"validation-error alert alert-error\"],[8],[0,\"\\\\n        \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.invalid_date\"],null],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},{\"statements\":[[4,\"if\",[[24,[\"timezoneIsDifferentFromUserTimezone\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"preview alert alert-info\"],[8],[0,\"\\\\n          \"],[7,\"b\",true],[8],[1,[22,\"formatedCurrentUserTimezone\"],false],[0,\" \"],[9],[1,[22,\"currentPreview\"],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]}],[0,\"\\\\n    \"],[1,[22,\"computeDate\"],false],[0,\"\\\\n\\\\n    \"],[7,\"div\",true],[10,\"class\",\"date-time-configuration\"],[8],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"inputs-panel\"],[8],[0,\"\\\\n        \"],[7,\"div\",true],[11,\"class\",[29,[\"date-time-control from \",[28,\"if\",[[24,[\"fromSelected\"]],\"is-selected\"],null],\" \",[28,\"if\",[[24,[\"fromFilled\"]],\"is-filled\"],null]]]],[8],[0,\"\\\\n          \"],[1,[28,\"d-icon\",[\"calendar-alt\"],null],false],[0,\"\\\\n          \"],[1,[28,\"d-button\",null,[[\"action\",\"translatedLabel\",\"class\"],[[28,\"action\",[[23,0,[]],\"focusFrom\"],null],[24,[\"formattedFrom\"]],\"date-time\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[11,\"class\",[29,[\"date-time-control to \",[28,\"if\",[[24,[\"toSelected\"]],\"is-selected\"],null],\" \",[28,\"if\",[[24,[\"toFilled\"]],\"is-filled\"],null]]]],[8],[0,\"\\\\n          \"],[1,[28,\"d-icon\",[\"calendar-alt\"],null],false],[0,\"\\\\n          \"],[1,[28,\"d-button\",null,[[\"action\",\"translatedLabel\",\"class\"],[[28,\"action\",[[23,0,[]],\"focusTo\"],null],[24,[\"formattedTo\"]],\"date-time\"]]],false],[0,\"\\\\n\"],[4,\"if\",[[24,[\"toFilled\"]]],null,{\"statements\":[[0,\"            \"],[1,[28,\"d-button\",null,[[\"icon\",\"action\",\"class\"],[\"times\",[28,\"action\",[[23,0,[]],\"eraseToDateTime\"],null],\"delete-to-date\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"        \"],[9],[0,\"\\\\n\\\\n\"],[4,\"unless\",[[24,[\"site\",\"mobileView\"]]],null,{\"statements\":[[0,\"          \"],[1,[28,\"timezone-input\",null,[[\"options\",\"value\",\"onChange\"],[[28,\"hash\",null,[[\"icon\"],[\"globe\"]]],[24,[\"timezone\"]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"timezone\"]]],null]],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"picker-panel\"],[8],[0,\"\\\\n        \"],[1,[28,\"input\",null,[[\"class\"],[\"fake-input\"]]],false],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"date-picker\"],[11,\"id\",[29,[\"picker-container-\",[22,\"elementId\"]]]],[8],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"fromSelected\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"time-pickers\"],[8],[0,\"\\\\n            \"],[1,[28,\"d-icon\",[\"far-clock\"],null],false],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"maxlength\",\"placeholder\",\"input\",\"type\",\"value\",\"class\"],[5,\"hh:mm\",[28,\"action\",[[23,0,[]],\"setTime\"],null],\"time\",[28,\"unbound\",[[24,[\"time\"]]],null],\"time-picker\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"if\",[[24,[\"toSelected\"]]],null,{\"statements\":[[4,\"if\",[[24,[\"toDate\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"time-pickers\"],[8],[0,\"\\\\n            \"],[1,[28,\"d-icon\",[\"far-clock\"],null],false],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"maxlength\",\"placeholder\",\"input\",\"type\",\"value\",\"class\"],[5,\"hh:mm\",[28,\"action\",[[23,0,[]],\"setToTime\"],null],\"time\",[28,\"unbound\",[[24,[\"toTime\"]]],null],\"time-picker\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]},null],[0,\"      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"site\",\"mobileView\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"timezone-input\",null,[[\"value\",\"options\",\"onChange\"],[[24,[\"timezone\"]],[28,\"hash\",null,[[\"icon\"],[\"globe\"]]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"timezone\"]]],null]],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"    \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"advancedMode\"]]],null,{\"statements\":[[0,\"      \"],[7,\"div\",true],[10,\"class\",\"advanced-options\"],[8],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isRange\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"control-group recurrence\"],[8],[0,\"\\\\n            \"],[7,\"label\",true],[10,\"class\",\"control-label\"],[8],[0,\"\\\\n              \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.recurring_title\"],null],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n            \"],[7,\"p\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.recurring_description\"],null],true],[9],[0,\"\\\\n            \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n              \"],[1,[28,\"combo-box\",null,[[\"content\",\"class\",\"value\",\"onChange\",\"none\"],[[24,[\"recurringOptions\"]],\"recurrence-input\",[24,[\"recurring\"]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"recurring\"]]],null]],null],\"discourse_local_dates.create.form.recurring_none\"]]],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group format\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.format_title\"],null],false],[9],[0,\"\\\\n          \"],[7,\"p\",true],[8],[0,\"\\\\n            \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.format_description\"],null],false],[0,\"\\\\n            \"],[7,\"a\",true],[10,\"target\",\"_blank\"],[10,\"rel\",\"noopener\"],[10,\"href\",\"https://momentjs.com/docs/#/parsing/string-format/\"],[8],[0,\"\\\\n              \"],[1,[28,\"d-icon\",[\"question-circle\"],null],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n          \"],[9],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n            \"],[1,[28,\"text-field\",null,[[\"value\",\"class\"],[[24,[\"format\"]],\"format-input\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group\"],[8],[0,\"\\\\n          \"],[7,\"ul\",true],[10,\"class\",\"formats\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"previewedFormats\"]]],null,{\"statements\":[[0,\"              \"],[7,\"li\",true],[10,\"class\",\"format\"],[8],[0,\"\\\\n                \"],[7,\"a\",false],[12,\"class\",\"moment-format\"],[12,\"href\",\"\"],[3,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"format\"]]],null],[23,1,[\"format\"]]]],[8],[0,\"\\\\n                  \"],[1,[23,1,[\"format\"]],false],[0,\"\\\\n                \"],[9],[0,\"\\\\n                \"],[7,\"span\",true],[10,\"class\",\"previewed-format\"],[8],[0,\"\\\\n                  \"],[1,[23,1,[\"preview\"]],false],[0,\"\\\\n                \"],[9],[0,\"\\\\n              \"],[9],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group timezones\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.timezones_title\"],null],false],[9],[0,\"\\\\n          \"],[7,\"p\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.timezones_description\"],null],false],[9],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n            \"],[1,[28,\"multi-select\",null,[[\"valueProperty\",\"nameProperty\",\"class\",\"allowAny\",\"maximum\",\"content\",\"value\"],[null,null,\"timezones-input\",false,5,[24,[\"allTimezones\"]],[24,[\"timezones\"]]]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n      \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[7,\"div\",true],[10,\"class\",\"modal-footer discourse-local-dates-create-modal-footer\"],[8],[0,\"\\\\n\"],[4,\"if\",[[24,[\"isValid\"]]],null,{\"statements\":[[0,\"    \"],[1,[28,\"d-button\",null,[[\"class\",\"action\",\"label\"],[\"btn-primary\",[28,\"action\",[[23,0,[]],\"save\"],null],\"discourse_local_dates.create.form.insert\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n  \"],[7,\"a\",false],[12,\"class\",\"cancel-action\"],[12,\"href\",\"\"],[3,\"action\",[[23,0,[]],\"cancel\"]],[8],[0,\"\\\\n    \"],[1,[28,\"i18n\",[\"cancel\"],null],false],[0,\"\\\\n  \"],[9],[0,\"\\\\n\\\\n  \"],[1,[28,\"d-button\",null,[[\"class\",\"action\",\"icon\",\"label\"],[\"btn-default advanced-mode-btn\",[28,\"action\",[[23,0,[]],\"advancedMode\"],null],\"cog\",[24,[\"toggleModeBtnLabel\"]]]]],false],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/discourse-local-dates-create-form\"}}),Ember.TEMPLATES[\"javascripts/modal/discourse-local-dates-create-modal\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"discourse-local-dates-create-form\",null,[[\"config\",\"toolbarEvent\"],[[24,[\"config\"]],[24,[\"toolbarEvent\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/modal/discourse-local-dates-create-modal\"}}),define(\"discourse/plugins/discourse-local-dates/initializers/discourse-local-dates\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse/lib/show-modal\"],function(e,t,n){\"use strict\";function a(e){e.decorateCooked(function(e){$(\".discourse-local-date\",e).applyLocalDates()},{id:\"discourse-local-date\"}),e.onToolbarCreate(function(t){t.addButton({title:\"discourse_local_dates.title\",id:\"local-dates\",group:\"extras\",icon:\"calendar-alt\",sendAction:function(e){return t.context.send(\"insertDiscourseLocalDate\",e)}})}),e.modifyClass(\"component:d-editor\",{actions:{insertDiscourseLocalDate:function(e){(0,n.default)(\"discourse-local-dates-create-modal\").setProperties({toolbarEvent:e})}}})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"discourse-local-dates\",initialize:function(e){e.lookup(\"site-settings:main\").discourse_local_dates_enabled&&(0,t.withPluginApi)(\"0.8.8\",a)}}}),define(\"discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates\",[\"exports\",\"pretty-text/engines/discourse-markdown/bbcode-block\"],function(e,c){\"use strict\";function n(e,t,n){var a,o,r,i=void 0,s={date:null,time:null,timezone:null,format:null,timezones:null,displayedTimezone:null,countdown:null},l=t[1].replace(/„|“/g,'\"'),m=(0,c.parseBBCodeTag)(\"[date date\"+l+\"]\",0,l.length+11);s.date=m.attrs.date,s.format=m.attrs.format,s.calendar=m.attrs.calendar,s.time=m.attrs.time,s.timezone=m.attrs.timezone,s.recurring=m.attrs.recurring,s.timezones=m.attrs.timezones,s.displayedTimezone=m.attrs.displayedTimezone,s.countdown=m.attrs.countdown,(i=new n.Token(\"span_open\",\"span\",1)).attrs=[[\"data-date\",n.md.utils.escapeHtml(s.date)]],s.date.match(/\\d{4}-\\d{2}-\\d{2}/)&&(!s.time||s.time.match(/\\d{2}:\\d{2}(?::\\d{2})?/))?(a=s.date,s.time&&(i.attrs.push([\"data-time\",n.md.utils.escapeHtml(s.time)]),a=a+\" \"+s.time),moment(a).isValid()?(i.attrs.push([\"class\",\"discourse-local-date\"]),s.format&&i.attrs.push([\"data-format\",n.md.utils.escapeHtml(s.format)]),s.countdown&&i.attrs.push([\"data-countdown\",n.md.utils.escapeHtml(s.countdown)]),s.calendar&&i.attrs.push([\"data-calendar\",n.md.utils.escapeHtml(s.calendar)]),s.displayedTimezone&&moment.tz.names().includes(s.displayedTimezone)&&i.attrs.push([\"data-displayed-timezone\",n.md.utils.escapeHtml(s.displayedTimezone)]),s.timezones&&(o=s.timezones.split(\"|\").filter(function(e){return moment.tz.names().includes(e)}),i.attrs.push([\"data-timezones\",n.md.utils.escapeHtml(o.join(\"|\"))])),a=s.timezone&&moment.tz.names().includes(s.timezone)?(i.attrs.push([\"data-timezone\",n.md.utils.escapeHtml(s.timezone)]),moment.tz(a,s.timezone)):moment.utc(a),s.recurring&&i.attrs.push([\"data-recurring\",n.md.utils.escapeHtml(s.recurring)]),e.push(i),r=a.tz(\"Etc/UTC\").format(n.md.options.discourse.datesEmailFormat||moment.defaultFormat),i.attrs.push([\"data-email-preview\",r+\" UTC\"]),u(e,n,a.utc().format(s.format))):u(e,n,moment.invalid().format())):u(e,n,moment.invalid().format())}function u(e,t,n){var a=void 0;(a=new t.Token(\"text\",\"\",0)).content=n,e.push(a),a=new t.Token(\"span_close\",\"span\",-1),e.push(a)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.setup=function(e){e.whiteList([\"span.discourse-local-date\",\"span[data-*]\",\"span[aria-label]\"]),e.registerOptions(function(e,t){e.datesEmailFormat=t.discourse_local_dates_email_format,e.features[\"discourse-local-dates\"]=!!t.discourse_local_dates_enabled}),e.registerPlugin(function(e){var t={matcher:/\\[date(=.+?)\\]/,onMatch:n};e.core.textPostProcess.ruler.push(\"discourse-local-dates\",t)})}});\n//# sourceMappingURL=/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.10199999087490141,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2964.906000008341,
          "receive": 0.994999980321154,
          "_blocked_queueing": 0.10199999087490141
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 48
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.620Z",
        "time": 2966.197000001557,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000402"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:45 GMT"
            },
            {
              "name": "Content-Length",
              "value": "710"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1077,
            "mimeType": "application/javascript",
            "text": "define(\"discourse/plugins/discourse-narrative-bot/initializers/new-user-narrative\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,t){\"use strict\";function i(e){var t=e.container.lookup(\"message-bus:main\"),i=e.getCurrentUser(),r=e.container.lookup(\"service:app-events\");e.modifyClass(\"component:site-header\",{didInsertElement:function(){this._super.apply(this,arguments),this.dispatch(\"header:search-context-trigger\",\"header\")}}),e.attachWidgetAction(\"header\",\"headerSearchContextTrigger\",function(){this.site.mobileView?this.state.skipSearchContext=!1:(this.state.contextEnabled=!0,this.state.searchContextType=\"topic\")}),t&&i&&t.subscribe(\"/new_user_narrative/tutorial_search\",function(){r.trigger(\"header:search-context-trigger\")})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"new-user-narratve\",initialize:function(e){e.lookup(\"site-settings:main\").discourse_narrative_bot_enabled&&(0,t.withPluginApi)(\"0.8.7\",i)}}});\n//# sourceMappingURL=/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.155999994603917,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2965.429000003496,
          "receive": 0.6120000034570694,
          "_blocked_queueing": 0.155999994603917
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 51
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 3187.5319999817293,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000463"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:46 GMT"
            },
            {
              "name": "Content-Length",
              "value": "2245"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 8990,
            "mimeType": "application/javascript",
            "text": "define(\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\",[\"exports\",\"@ember/runloop\",\"@ember/component\",\"discourse/lib/ajax\",\"discourse-common/utils/decorators\"],function(e,t,s,r,n){\"use strict\";function i(t,r,e,s,n){var i={};return Object.keys(s).forEach(function(e){i[e]=s[e]}),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,(\"value\"in i||i.initializer)&&(i.writable=!0),i=e.slice().reverse().reduce(function(e,s){return s(t,r,e)||e},i),n&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(n):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(t,r,i),i=null),i}var a,c,o,l,u,p,d;Object.defineProperty(e,\"__esModule\",{value:!0}),e.bufferTime=e.keepAliveDuration=void 0;e.keepAliveDuration=1e4,e.bufferTime=3e3;e.default=s.default.extend((a=(0,n.on)(\"didInsertElement\"),c=(0,n.observes)(\"action\",\"post.id\",\"topic.id\"),o=(0,n.observes)(\"reply\",\"title\"),l=(0,n.on)(\"willDestroyElement\"),u=(0,n.observes)(\"currentState\"),p=(0,n.default)(\"presenceUsers\",\"currentUser.id\"),i(d={action:null,post:null,topic:null,reply:null,title:null,previousState:null,currentState:null,presenceUsers:null,channel:null,composerOpened:function(){this._lastPublish=new Date,(0,t.once)(this,\"updateState\")},composerStateChanged:function(){(0,t.once)(this,\"updateState\")},typing:function(){1e4<new Date-this._lastPublish&&this.publish({current:this.currentState})},composerClosing:function(){this.publish({previous:this.currentState}),(0,t.cancel)(this._pingTimer),(0,t.cancel)(this._clearTimer)},updateState:function(){var e=null,s=this.action;\"reply\"!==s&&\"edit\"!==s||(e={action:s},\"reply\"===s&&(e.topic_id=this.get(\"topic.id\")),\"edit\"===s&&(e.post_id=this.get(\"post.id\"))),this.set(\"previousState\",this.currentState),this.set(\"currentState\",e)},currentStateChanged:function(){var s=this;this.channel&&(this.messageBus.unsubscribe(this.channel),this.set(\"channel\",null)),this.clear(),[\"reply\",\"edit\"].includes(this.action)&&this.publish({response_needed:!0,previous:this.previousState,current:this.currentState}).then(function(e){s.isDestroyed||(s.set(\"presenceUsers\",e.users),s.set(\"channel\",e.messagebus_channel),e.messagebus_channel&&s.messageBus.subscribe(e.messagebus_channel,function(e){s.isDestroyed||s.set(\"presenceUsers\",e.users),s._clearTimer=(0,t.debounce)(s,\"clear\",13e3)},e.messagebus_id))})},clear:function(){this.isDestroyed||this.set(\"presenceUsers\",[])},publish:function(e){return this._lastPublish=new Date,this.currentUser.hide_profile_and_presence?Ember.RSVP.Promise.resolve():(0,r.ajax)(\"/presence/publish\",{type:\"POST\",data:e})},users:function(e,s){return(e||[]).filter(function(e){return e.id!==s})},isReply:Ember.computed.equal(\"action\",\"reply\"),shouldDisplay:Ember.computed.gt(\"users.length\",0)},\"composerOpened\",[a],Object.getOwnPropertyDescriptor(d,\"composerOpened\"),d),i(d,\"composerStateChanged\",[c],Object.getOwnPropertyDescriptor(d,\"composerStateChanged\"),d),i(d,\"typing\",[o],Object.getOwnPropertyDescriptor(d,\"typing\"),d),i(d,\"composerClosing\",[l],Object.getOwnPropertyDescriptor(d,\"composerClosing\"),d),i(d,\"currentStateChanged\",[u],Object.getOwnPropertyDescriptor(d,\"currentStateChanged\"),d),i(d,\"users\",[p],Object.getOwnPropertyDescriptor(d,\"users\"),d),d))}),define(\"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\",[\"exports\",\"@ember/runloop\",\"@ember/component\",\"discourse-common/utils/decorators\",\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\"],function(e,t,s,r,n){\"use strict\";function i(t,r,e,s,n){var i={};return Object.keys(s).forEach(function(e){i[e]=s[e]}),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,(\"value\"in i||i.initializer)&&(i.writable=!0),i=e.slice().reverse().reduce(function(e,s){return s(t,r,e)||e},i),n&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(n):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(t,r,i),i=null),i}var a,c,o,l,u;Object.defineProperty(e,\"__esModule\",{value:!0});e.default=s.default.extend((a=(0,r.on)(\"didInsertElement\"),c=(0,r.on)(\"willDestroyElement\"),o=(0,r.default)(\"topicId\"),l=(0,r.default)(\"presenceUsers\",\"currentUser.{id,ignored_users}\"),i(u={topicId:null,presenceUsers:null,clear:function(){this.isDestroyed||this.set(\"presenceUsers\",[])},_inserted:function(){var s=this;this.clear(),this.messageBus.subscribe(this.channel,function(e){s.isDestroyed||s.set(\"presenceUsers\",e.users),s._clearTimer=(0,t.debounce)(s,\"clear\",n.keepAliveDuration+n.bufferTime)},-2)},_destroyed:function(){(0,t.cancel)(this._clearTimer),this.messageBus.unsubscribe(this.channel)},channel:function(e){return\"/presence/topic/\"+e},users:function(e,s){var t=s.ignored_users||[];return(e||[]).filter(function(e){return e.id!==s.id&&!t.includes(e.username)})},shouldDisplay:Ember.computed.gt(\"users.length\",0)},\"_inserted\",[a],Object.getOwnPropertyDescriptor(u,\"_inserted\"),u),i(u,\"_destroyed\",[c],Object.getOwnPropertyDescriptor(u,\"_destroyed\"),u),i(u,\"channel\",[o],Object.getOwnPropertyDescriptor(u,\"channel\"),u),i(u,\"users\",[l],Object.getOwnPropertyDescriptor(u,\"users\"),u),u))}),Ember.TEMPLATES[\"javascripts/components/composer-presence-display\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"user\"],\"statements\":[[4,\"if\",[[24,[\"shouldDisplay\"]]],null,{\"statements\":[[0,\"  \"],[7,\"div\",true],[10,\"class\",\"presence-users\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"presence-avatars\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"users\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"avatar\",[[23,1,[]]],[[\"avatarTemplatePath\",\"usernamePath\",\"imageSize\"],[\"avatar_template\",\"username\",\"small\"]]],false],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"    \"],[9],[0,\"\\\\n    \"],[7,\"span\",true],[10,\"class\",\"presence-text\"],[8],[0,\"\\\\n      \"],[7,\"span\",true],[10,\"class\",\"description\"],[8],[0,\"\\\\n\"],[4,\"if\",[[24,[\"isReply\"]]],null,{\"statements\":[[1,[28,\"i18n\",[\"presence.replying\"],null],false]],\"parameters\":[]},{\"statements\":[[1,[28,\"i18n\",[\"presence.editing\"],null],false]],\"parameters\":[]}],[9],[9],[7,\"span\",true],[10,\"class\",\"wave\"],[8],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/composer-presence-display\"}}),Ember.TEMPLATES[\"javascripts/components/topic-presence-display\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"user\"],\"statements\":[[4,\"if\",[[24,[\"shouldDisplay\"]]],null,{\"statements\":[[0,\"  \"],[7,\"div\",true],[10,\"class\",\"presence-users\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"presence-avatars\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"users\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"avatar\",[[23,1,[]]],[[\"avatarTemplatePath\",\"usernamePath\",\"imageSize\"],[\"avatar_template\",\"username\",\"small\"]]],false],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"    \"],[9],[0,\"\\\\n    \"],[7,\"span\",true],[10,\"class\",\"presence-text\"],[8],[0,\"\\\\n      \"],[7,\"span\",true],[10,\"class\",\"description\"],[8],[1,[28,\"i18n\",[\"presence.replying_to_topic\"],[[\"count\"],[[24,[\"users\",\"length\"]]]]],false],[9],[7,\"span\",true],[10,\"class\",\"wave\"],[8],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/topic-presence-display\"}}),Ember.TEMPLATES[\"javascripts/connectors/composer-fields/presence\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"composer-presence-display\",null,[[\"action\",\"post\",\"topic\",\"reply\",\"title\"],[[24,[\"model\",\"action\"]],[24,[\"model\",\"post\"]],[24,[\"model\",\"topic\"]],[24,[\"model\",\"reply\"]],[24,[\"model\",\"title\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/connectors/composer-fields/presence\"}}),define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/composer-fields/presence\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,s){return s.siteSettings.presence_enabled}}}),Ember.TEMPLATES[\"javascripts/connectors/topic-above-footer-buttons/presence\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"topic-presence-display\",null,[[\"topicId\"],[[24,[\"model\",\"id\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/connectors/topic-above-footer-buttons/presence\"}}),define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/topic-above-footer-buttons/presence\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,s){return s.siteSettings.presence_enabled}}});\n//# sourceMappingURL=/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11499999493733049,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 3186.181000004919,
          "receive": 1.2359999818727374,
          "_blocked_queueing": 0.11399999493733048
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 54
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 3187.72300001001,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000398"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:46 GMT"
            },
            {
              "name": "Content-Length",
              "value": "3281"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 10796,
            "mimeType": "application/javascript",
            "text": "Ember.TEMPLATES[\"javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"if\",[[24,[\"siteSettings\",\"solved_enabled\"]]],null,{\"statements\":[[0,\"  \"],[1,[28,\"combo-box\",null,[[\"class\",\"content\",\"value\",\"valueAttribute\",\"onSelect\"],[\"solved-status-filter\",[24,[\"statuses\"]],[24,[\"status\"]],\"value\",[28,\"action\",[[23,0,[]],\"changeStatus\"],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter\"}}),define(\"discourse/plugins/discourse-solved/discourse/connectors/bread-crumbs-right/solved-status-filter\",[\"exports\",\"discourse/lib/url\"],function(e,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,t){if(t.siteSettings.show_filter_by_solved_status){if(t.siteSettings.allow_solved_on_all_topics)return!0;var s=Discourse.__container__.lookup(\"controller:navigation/category\");return s&&s.get(\"category.enable_accepted_answers\")}return!1},setupComponent:function(e,t){var s=[\"all\",\"solved\",\"unsolved\"].map(function(e){return{name:I18n.t(\"solved.topic_status_filter.\"+e),value:e}});t.set(\"statuses\",s);var a=window.location.search;a.match(/solved=yes/)?t.set(\"status\",\"solved\"):a.match(/solved=no/)?t.set(\"status\",\"unsolved\"):t.set(\"status\",\"all\")},actions:{changeStatus:function(e){var t=window.location,s=t.search,a=(a=s.startsWith(\"?\")?s.substr(1).split(\"&\"):[]).filter(function(e){return!e.startsWith(\"solved=\")});e&&\"all\"!==e&&(e=\"solved\"===e?\"yes\":\"no\",a.push(\"solved=\"+e)),s=0<a.length?\"?\"+a.join(\"&\"):\"\",o.default.routeTo(\"\"+t.pathname+s+t.hash)}}}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/category-custom-settings/solved-settings\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"unless\",[[24,[\"siteSettings\",\"allow_solved_on_all_topics\"]]],null,{\"statements\":[[0,\"  \"],[7,\"h3\",true],[8],[1,[28,\"i18n\",[\"solved.title\"],null],false],[9],[0,\"\\\\n  \"],[7,\"section\",true],[10,\"class\",\"field\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"enable-accepted-answer\"],[8],[0,\"\\\\n      \"],[7,\"label\",true],[10,\"class\",\"checkbox-label\"],[8],[0,\"\\\\n        \"],[1,[28,\"input\",null,[[\"type\",\"checked\",\"change\"],[\"checkbox\",[28,\"readonly\",[[24,[\"category\",\"enable_accepted_answers\"]]],null],[28,\"action\",[[23,0,[]],\"onChangeSetting\"],[[\"value\"],[\"target.checked\"]]]]]],false],[0,\"\\\\n        \"],[1,[28,\"i18n\",[\"solved.allow_accepted_answers\"],null],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/category-custom-settings/solved-settings\"}}),define(\"discourse/plugins/discourse-solved/discourse/connectors/category-custom-settings/solved-settings\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={actions:{onChangeSetting:function(e){this.set(\"category.custom_fields.enable_accepted_answers\",e?\"true\":\"false\")}}}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/topic-after-cooked/solved-panel\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"if\",[[24,[\"topic\",\"accepted_answer\"]]],null,{\"statements\":[[7,\"p\",true],[10,\"class\",\"solved\"],[8],[0,\"\\\\n\"],[1,[24,[\"topic\",\"acceptedAnswerHtml\"]],true],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/topic-after-cooked/solved-panel\"}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/user-activity-bottom/solved-list\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"link-to\",null,[[\"route\"],[\"userActivity.solved\"]],{\"statements\":[[0,\"  \"],[1,[28,\"d-icon\",[\"check-square\"],null],false],[0,\" \"],[1,[28,\"i18n\",[\"solved.title\"],null],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/user-activity-bottom/solved-list\"}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/user-summary-stat/solved-count\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"link-to\",null,[[\"route\"],[\"userActivity.solved\"]],{\"statements\":[[0,\"  \"],[1,[28,\"user-stat\",null,[[\"value\",\"label\",\"icon\"],[[24,[\"model\",\"solved_count\"]],\"solved.solution_summary\",\"check-square\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/user-summary-stat/solved-count\"}}),define(\"discourse/plugins/discourse-solved/discourse/initializers/extend-for-solved-button\",[\"exports\",\"discourse/models/topic\",\"discourse/models/user\",\"discourse/raw-views/topic-status\",\"discourse/helpers/topic-status-icons\",\"discourse/lib/ajax-error\",\"discourse/lib/plugin-api\",\"discourse/lib/ajax\",\"discourse/widgets/post-cooked\",\"discourse/lib/utilities\",\"discourse-common/lib/icon-library\",\"discourse/components/search-advanced-options\"],function(e,t,s,a,o,n,c,r,i,l,u,d){\"use strict\";function p(e){var c=e.getCurrentUser();o.default.addObject([\"has_accepted_answer\",\"far-check-square\",\"solved\"]),e.includePostAttributes(\"can_accept_answer\",\"can_unaccept_answer\",\"accepted_answer\"),e.addDiscoveryQueryParam&&e.addDiscoveryQueryParam(\"solved\",{replace:!0,refreshModel:!0}),e.addPostMenuButton(\"solved\",function(e){var t=e.can_accept_answer,s=e.can_unaccept_answer,a=e.accepted_answer,o=c&&c.id===e.topicCreatedById,n=a||!t||o?\"first\":\"second-last-hidden\";return t?{action:\"acceptAnswer\",icon:\"far-check-square\",className:\"unaccepted\",title:\"solved.accept_answer\",label:\"solved.solution\",position:n}:s&&a?{action:\"unacceptAnswer\",icon:\"check-square\",title:s?\"solved.unaccept_answer\":\"solved.accepted_answer\",className:\"accepted fade-out\",position:n,label:\"solved.solution\"}:!t&&a?{className:\"hidden\",disabled:\"true\",position:n,beforeButton:function(e){return e(\"span.accepted-text\",{title:I18n.t(\"solved.accepted_description\")},[e(\"span\",(0,u.iconNode)(\"check\")),e(\"span.accepted-label\",I18n.t(\"solved.solution\"))])}}:void 0}),e.decorateWidget(\"post-contents:after-cooked\",function(e){if(1===e.attrs.post_number){var t=e.getModel();if(t){var s=t.topic;if(s.accepted_answer){var a=!!s.accepted_answer.excerpt,o=\"\\n            <aside class='quote accepted-answer' data-post=\\\"\"+s.get(\"accepted_answer\").post_number+'\" data-topic=\"'+s.id+\"\\\">\\n              <div class='title'>\\n                \"+s.acceptedAnswerHtml+' <div class=\"quote-controls\"></div>\\n              </div>\\n              <blockquote>\\n                '+s.accepted_answer.excerpt+\"\\n              </blockquote>\\n            </aside>\",n=\"\\n            <aside class='quote accepted-answer'>\\n              <div class='title title-only'>\\n                \"+s.acceptedAnswerHtml+\"\\n              </div>\\n            </aside>\",c=new i.default({cooked:a?o:n},e);return e.rawHtml(c.init())}}}}),e.attachWidgetAction(\"post\",\"acceptAnswer\",function(){var e,t,s=this,a=this.model,o=a.get(\"topic.postStream.posts\").filter(function(e){return 1===e.post_number||e.accepted_answer});(t=(e=a).topic).get(\"postStream.posts\").forEach(function(e){1<e.get(\"post_number\")&&e.setProperties({accepted_answer:!1,can_accept_answer:!0,can_unaccept_answer:!1})}),e.setProperties({can_unaccept_answer:!0,can_accept_answer:!1,accepted_answer:!0}),t.set(\"accepted_answer\",{username:e.username,post_number:e.post_number,excerpt:e.cooked}),(0,r.ajax)(\"/solution/accept\",{type:\"POST\",data:{id:e.id}}).catch(n.popupAjaxError),o.forEach(function(e){return s.appEvents.trigger(\"post-stream:refresh\",{id:e.id})})}),e.attachWidgetAction(\"post\",\"unacceptAnswer\",function(){var e,t,s=this.model,a=s.get(\"topic.postStream.posts\").find(function(e){return 1===e.post_number});(e=s).can_unaccept_answer&&(t=e.topic,e.setProperties({can_accept_answer:!0,can_unaccept_answer:!1,accepted_answer:!1}),t.set(\"accepted_answer\",void 0),(0,r.ajax)(\"/solution/unaccept\",{type:\"POST\",data:{id:e.id}}).catch(n.popupAjaxError)),this.appEvents.trigger(\"post-stream:refresh\",{id:a.id})}),e.registerConnectorClass&&(e.registerConnectorClass(\"user-activity-bottom\",\"solved-list\",{shouldRender:function(e,t){return t.siteSettings.solved_enabled}}),e.registerConnectorClass(\"user-summary-stat\",\"solved-count\",{shouldRender:function(e,t){return t.siteSettings.solved_enabled&&0<e.model.solved_count},setupComponent:function(){this.set(\"classNames\",[\"linked-stat\"])}}))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"extend-for-solved-button\",initialize:function(){t.default.reopen({acceptedAnswerHtml:Ember.computed(\"accepted_answer\",\"id\",function(){var e=this.get(\"accepted_answer.username\"),t=this.get(\"accepted_answer.post_number\");return e&&t?I18n.t(\"solved.accepted_html\",{icon:(0,u.iconHTML)(\"check-square\",{class:\"accepted\"}),username_lower:e.toLowerCase(),username:(0,l.formatUsername)(e),post_path:this.url+\"/\"+t,post_number:t,user_path:s.default.create({username:e}).path}):\"\"})}),a.default.reopen({statuses:Ember.computed(function(){var e=this._super.apply(this,arguments);return this.topic.has_accepted_answer?e.push({openTag:\"span\",closeTag:\"span\",title:I18n.t(\"topic_statuses.solved.help\"),icon:\"far-check-square\"}):this.topic.can_have_answer&&this.siteSettings.solved_enabled&&this.siteSettings.empty_box_on_unsolved&&e.push({openTag:\"span\",closeTag:\"span\",title:I18n.t(\"solved.has_no_accepted_answer\"),icon:\"far-square\"}),e})}),d.default.reopen({didInsertElement:function(){this._super(),this.statusOptions.push({name:I18n.t(\"search.advanced.statuses.solved\"),value:\"solved\"})}}),(0,c.withPluginApi)(\"0.1\",p),(0,c.withPluginApi)(\"0.8.10\",function(e){e.replaceIcon(\"notification.solved.accepted_notification\",\"check-square\")})}}}),define(\"discourse/plugins/discourse-solved/discourse/pre-initializers/extend-category-for-solved\",[\"exports\",\"discourse/models/category\"],function(e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"extend-category-for-solved\",before:\"inject-discourse-objects\",initialize:function(){t.default.reopen({enable_accepted_answers:Ember.computed(\"custom_fields.enable_accepted_answers\",{get:function(e){return\"true\"===Ember.get(this.custom_fields,e)}})})}}}),define(\"discourse/plugins/discourse-solved/discourse/routes/user-activity-solved\",[\"exports\",\"discourse/routes/user-activity-stream\"],function(e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=t.default.extend({userActionType:15,noContentHelpKey:\"solved.no_solutions\"})}),define(\"discourse/plugins/discourse-solved/discourse/solved-route-map\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={resource:\"user.userActivity\",map:function(){this.route(\"solved\")}}});\n//# sourceMappingURL=/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11799998867698014,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 3186.9720000034904,
          "receive": 0.6330000178422779,
          "_blocked_queueing": 0.11699998867698014
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 57
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 3390.056000003824,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000541"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:47 GMT"
            },
            {
              "name": "Content-Length",
              "value": "1947"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3813,
            "mimeType": "application/javascript",
            "text": "!function(y){\"use strict\";y.fn.lazyYT=function(a){var h=y.extend({default_ratio:\"16:9\",callback:null,container_class:\"lazyYT-container\"},a);return this.each(function(){var t,l,e,a,i,s,u,c,d,o,n,p,r=y(this).addClass(h.container_class);l=h,i=(t=r).data(\"width\"),s=t.data(\"height\"),u=t.data(\"ratio\")?t.data(\"ratio\"):l.default_ratio,c=t.data(\"youtube-id\"),d=t.data(\"youtube-title\"),o=[],n=t.data(\"parameters\")||\"\",u=u.split(\":\"),p=\"number\"==typeof i&&\"number\"==typeof s?(t.width(i),s+\"px\"):\"number\"==typeof i?(t.width(i),i*u[1]/u[0]+\"px\"):(0===(i=t.width())&&(i=t.parent().width()),u[1]/u[0]*100+\"%\"),o.push('<div class=\"ytp-thumbnail\">'),o.push('<div class=\"ytp-large-play-button\"'),i<=640&&o.push(' style=\"transform: scale(0.563888888888889);\"'),o.push(\">\"),o.push(\"<svg>\"),o.push('<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#1F1F1F\" class=\"ytp-large-play-button-svg\" d=\"M84.15,26.4v6.35c0,2.833-0.15,5.967-0.45,9.4c-0.133,1.7-0.267,3.117-0.4,4.25l-0.15,0.95c-0.167,0.767-0.367,1.517-0.6,2.25c-0.667,2.367-1.533,4.083-2.6,5.15c-1.367,1.4-2.967,2.383-4.8,2.95c-0.633,0.2-1.316,0.333-2.05,0.4c-0.767,0.1-1.3,0.167-1.6,0.2c-4.9,0.367-11.283,0.617-19.15,0.75c-2.434,0.034-4.883,0.067-7.35,0.1h-2.95C38.417,59.117,34.5,59.067,30.3,59c-8.433-0.167-14.05-0.383-16.85-0.65c-0.067-0.033-0.667-0.117-1.8-0.25c-0.9-0.133-1.683-0.283-2.35-0.45c-2.066-0.533-3.783-1.5-5.15-2.9c-1.033-1.067-1.9-2.783-2.6-5.15C1.317,48.867,1.133,48.117,1,47.35L0.8,46.4c-0.133-1.133-0.267-2.55-0.4-4.25C0.133,38.717,0,35.583,0,32.75V26.4c0-2.833,0.133-5.95,0.4-9.35l0.4-4.25c0.167-0.966,0.417-2.05,0.75-3.25c0.7-2.333,1.567-4.033,2.6-5.1c1.367-1.434,2.967-2.434,4.8-3c0.633-0.167,1.333-0.3,2.1-0.4c0.4-0.066,0.917-0.133,1.55-0.2c4.9-0.333,11.283-0.567,19.15-0.7C35.65,0.05,39.083,0,42.05,0L45,0.05c2.467,0,4.933,0.034,7.4,0.1c7.833,0.133,14.2,0.367,19.1,0.7c0.3,0.033,0.833,0.1,1.6,0.2c0.733,0.1,1.417,0.233,2.05,0.4c1.833,0.566,3.434,1.566,4.8,3c1.066,1.066,1.933,2.767,2.6,5.1c0.367,1.2,0.617,2.284,0.75,3.25l0.4,4.25C84,20.45,84.15,23.567,84.15,26.4z M33.3,41.4L56,29.6L33.3,17.75V41.4z\"></path>'),o.push('<polygon fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#FFFFFF\" points=\"33.3,41.4 33.3,17.75 56,29.6\"></polygon>'),o.push(\"</svg>\"),o.push(\"</div>\"),o.push(\"</div>\"),o.push('<div class=\"html5-info-bar\">'),o.push('<div class=\"html5-title\">'),o.push('<div class=\"html5-title-text-wrapper\">'),o.push('<a class=\"html5-title-text\" target=\"_blank\" tabindex=\"3100\" href=\"https://www.youtube.com/watch?v=',c,'\">'),null==d||\"\"===d?o.push(\"youtube.com/watch?v=\"+c):o.push(d),o.push(\"</a>\"),o.push(\"</div>\"),o.push(\"</div>\"),o.push(\"</div>\"),t.css({\"padding-bottom\":p}).html(o.join(\"\")),a=640<i?\"maxresdefault.jpg\":480<i?\"sddefault.jpg\":320<i?\"hqdefault.jpg\":120<i?\"mqdefault.jpg\":0===i?\"hqdefault.jpg\":\"default.jpg\",e=t.find(\".ytp-thumbnail\").css({\"background-image\":[\"url(//img.youtube.com/vi/\",c,\"/\",a,\")\"].join(\"\")}).addClass(\"lazyYT-image-loaded\").on(\"click\",function(a){a.preventDefault(),!t.hasClass(\"lazyYT-video-loaded\")&&e.hasClass(\"lazyYT-image-loaded\")&&t.html('<iframe src=\"//www.youtube.com/embed/'+c+\"?autoplay=1&\"+n+'\" frameborder=\"0\" allowfullscreen></iframe>').addClass(\"lazyYT-video-loaded\"),l.onPlay&&l.onPlay(a,t)})})}}(jQuery),define(\"discourse/plugins/lazy-yt/initializers/lazyYT\",[\"exports\",\"discourse/lib/plugin-api\"],function(a,t){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0}),a.default={name:\"apply-lazyYT\",initialize:function(){(0,t.withPluginApi)(\"0.1\",function(e){e.decorateCooked(function(a){0!==$(\".lazyYT\",a).length&&$(\".lazyYT\",a).lazyYT({onPlay:function(a,t){var l=parseInt(t.closest(\"article\").data(\"post-id\"),10);l&&e.preventCloak(l)}})},{id:\"discourse-lazyyt\"})})}}});\n//# sourceMappingURL=/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.09899998952075839,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 3389.2159999890027,
          "receive": 0.7410000253003091,
          "_blocked_queueing": 0.09799998952075839
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 60
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 3389.517999981763,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000597"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:48 GMT"
            },
            {
              "name": "Content-Length",
              "value": "12253"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 42086,
            "mimeType": "application/javascript",
            "text": "define(\"discourse/plugins/poll/controllers/poll-ui-builder\",[\"exports\",\"@ember/controller\",\"discourse-common/utils/decorators\",\"@ember/object\"],function(t,e,l,o){\"use strict\";function s(l,o,t,e,s){var n={};return Object.keys(e).forEach(function(t){n[t]=e[t]}),n.enumerable=!!n.enumerable,n.configurable=!!n.configurable,(\"value\"in n||n.initializer)&&(n.writable=!0),n=t.slice().reverse().reduce(function(t,e){return e(l,o,t)||t},n),s&&void 0!==n.initializer&&(n.value=n.initializer?n.initializer.call(s):void 0,n.initializer=void 0),void 0===n.initializer&&(Object.defineProperty(l,o,n),n=null),n}var n,i,r,a,u,p,c,d,h,f,m,g,b,v,y,x,O,w,P;Object.defineProperty(t,\"__esModule\",{value:!0}),t.PIE_CHART_TYPE=t.BAR_CHART_TYPE=void 0;var C=t.BAR_CHART_TYPE=\"bar\",M=t.PIE_CHART_TYPE=\"pie\";t.default=e.default.extend((n=(0,l.default)(\"regularPollType\",\"numberPollType\",\"multiplePollType\"),i=(0,l.default)(\"chartType\",\"pollType\",\"numberPollType\"),r=(0,l.default)(\"alwaysPollResult\",\"votePollResult\",\"closedPollResult\",\"staffPollResult\"),a=(0,l.default)(\"site.groups\"),u=(0,l.default)(\"pollType\",\"regularPollType\"),p=(0,l.default)(\"pollType\",\"pollOptionsCount\",\"multiplePollType\"),c=(0,l.default)(\"pollType\",\"numberPollType\"),d=(0,l.default)(\"isRegular\"),h=(0,l.default)(\"pollOptions\"),f=(0,l.observes)(\"pollType\",\"pollOptionsCount\"),m=(0,l.default)(\"isRegular\",\"isMultiple\",\"isNumber\",\"pollOptionsCount\"),g=(0,l.default)(\"isRegular\",\"isMultiple\",\"isNumber\",\"pollOptionsCount\",\"pollMin\",\"pollStep\"),b=(0,l.default)(\"isNumber\",\"pollMax\"),v=(0,l.default)(\"isNumber\",\"showMinMax\",\"pollType\",\"pollResult\",\"publicPoll\",\"pollOptions\",\"pollMin\",\"pollMax\",\"pollStep\",\"pollGroups\",\"autoClose\",\"chartType\",\"date\",\"time\"),y=(0,l.default)(\"pollOptionsCount\",\"isRegular\",\"isMultiple\",\"isNumber\",\"pollMin\",\"pollMax\"),x=(0,l.default)(\"pollMin\",\"pollMax\"),O=(0,l.default)(\"pollStep\"),w=(0,l.default)(\"disableInsert\"),s(P={regularPollType:\"regular\",numberPollType:\"number\",multiplePollType:\"multiple\",alwaysPollResult:\"always\",votePollResult:\"on_vote\",closedPollResult:\"on_close\",staffPollResult:\"staff_only\",pollChartTypes:[{name:C.capitalize(),value:C},{name:M.capitalize(),value:M}],pollType:null,pollResult:null,init:function(){this._super.apply(this,arguments),this._setupPoll()},pollTypes:function(t,e,l){return[{name:I18n.t(\"poll.ui_builder.poll_type.regular\"),value:t},{name:I18n.t(\"poll.ui_builder.poll_type.number\"),value:e},{name:I18n.t(\"poll.ui_builder.poll_type.multiple\"),value:l}]},isPie:function(t,e,l){return e!==l&&t===M},pollResults:function(t,e,l,o){var s=[{name:I18n.t(\"poll.ui_builder.poll_result.always\"),value:t},{name:I18n.t(\"poll.ui_builder.poll_result.vote\"),value:e},{name:I18n.t(\"poll.ui_builder.poll_result.closed\"),value:l}];return this.get(\"currentUser.staff\")&&s.push({name:I18n.t(\"poll.ui_builder.poll_result.staff\"),value:o}),s},siteGroups:function(t){return t.map(function(t){if(0!==t.id)return{name:t.name,value:t.name}}).filter(Boolean)},isRegular:function(t,e){return t===e},isMultiple:function(t,e,l){return t===l&&0<e},isNumber:function(t,e){return t===e},showMinMax:function(t){return!t},pollOptionsCount:function(t){if(0===t.length)return 0;var e=0;return t.split(\"\\n\").forEach(function(t){0!==t.length&&(e+=1)}),e},_setPollMax:function(){var t=this.isMultiple,e=this.isNumber;(t||e)&&(t?this.set(\"pollMax\",this.pollOptionsCount):e&&this.set(\"pollMax\",this.siteSettings.poll_maximum_options))},pollMinOptions:function(t,e,l,o){if(!t)return e?this._comboboxOptions(1,o+1):l?this._comboboxOptions(1,this.siteSettings.poll_maximum_options+1):void 0},pollMaxOptions:function(t,e,l,o,s,n){if(!t){var i=parseInt(s,10)||1;if(e)return this._comboboxOptions(i+1,o+1);if(l){var r=parseInt(n,10);return r<1&&(r=1),this._comboboxOptions(i+1,i+this.siteSettings.poll_maximum_options*r)}}},pollStepOptions:function(t,e){if(t)return this._comboboxOptions(1,(parseInt(e,10)||1)+1)},pollOutput:function(t,e,l,o,s,n,i,r,a,u,p,c,d,h){var f=\"[poll\",m=\"\",g=this.toolbarEvent.getText().match(/\\[poll(\\s+name=[^\\s\\]]+)*.*\\]/gim);g&&(f+=\" name=poll\"+(g.length+1));var b,v=a;return v<1&&(v=1),l&&(f+=\" type=\"+l),o&&(f+=\" results=\"+o),i&&e&&(f+=\" min=\"+i),r&&(f+=\" max=\"+r),t&&(f+=\" step=\"+v),s&&(f+=\" public=true\"),c&&\"number\"!==l&&(f+=\" chartType=\"+c),u&&(f+=\" groups=\"+u),!p||(b=moment(d+\" \"+h,\"YYYY-MM-DD HH:mm\").toISOString())&&(f+=\" close=\"+b),m+=(f+=\"]\")+\"\\n\",0<n.length&&!t&&n.split(\"\\n\").forEach(function(t){0!==t.length&&(m+=\"* \"+t+\"\\n\")}),m+=\"[/poll]\\n\"},disableInsert:function(t,e,l,o,s,n){return e&&t<1||l&&t<s&&n<=s||!o&&t<1},minMaxValueValidation:function(t,e){var l={ok:!0};return e<=t&&(l={failed:!0,reason:I18n.t(\"poll.ui_builder.help.invalid_values\")}),o.default.create(l)},minStepValueValidation:function(t){var e={ok:!0};return t<1&&(e={failed:!0,reason:I18n.t(\"poll.ui_builder.help.min_step_value\")}),o.default.create(e)},minNumOfOptionsValidation:function(t){var e={ok:!0};return t&&(e={failed:!0,reason:I18n.t(\"poll.ui_builder.help.options_count\")}),o.default.create(e)},_comboboxOptions:function(t,e){return _.range(t,e).map(function(t){return{value:t,name:t}})},_setupPoll:function(){this.setProperties({pollType:this.get(\"pollTypes.firstObject.value\"),publicPoll:!1,pollOptions:\"\",pollMin:1,pollMax:null,pollStep:1,autoClose:!1,chartType:C,pollGroups:null,date:moment().add(1,\"day\").format(\"YYYY-MM-DD\"),time:moment().add(1,\"hour\").format(\"HH:mm\")})},actions:{insertPoll:function(){this.toolbarEvent.addText(this.pollOutput),this.send(\"closeModal\"),this._setupPoll()}}},\"pollTypes\",[n],Object.getOwnPropertyDescriptor(P,\"pollTypes\"),P),s(P,\"isPie\",[i],Object.getOwnPropertyDescriptor(P,\"isPie\"),P),s(P,\"pollResults\",[r],Object.getOwnPropertyDescriptor(P,\"pollResults\"),P),s(P,\"siteGroups\",[a],Object.getOwnPropertyDescriptor(P,\"siteGroups\"),P),s(P,\"isRegular\",[u],Object.getOwnPropertyDescriptor(P,\"isRegular\"),P),s(P,\"isMultiple\",[p],Object.getOwnPropertyDescriptor(P,\"isMultiple\"),P),s(P,\"isNumber\",[c],Object.getOwnPropertyDescriptor(P,\"isNumber\"),P),s(P,\"showMinMax\",[d],Object.getOwnPropertyDescriptor(P,\"showMinMax\"),P),s(P,\"pollOptionsCount\",[h],Object.getOwnPropertyDescriptor(P,\"pollOptionsCount\"),P),s(P,\"_setPollMax\",[f],Object.getOwnPropertyDescriptor(P,\"_setPollMax\"),P),s(P,\"pollMinOptions\",[m],Object.getOwnPropertyDescriptor(P,\"pollMinOptions\"),P),s(P,\"pollMaxOptions\",[g],Object.getOwnPropertyDescriptor(P,\"pollMaxOptions\"),P),s(P,\"pollStepOptions\",[b],Object.getOwnPropertyDescriptor(P,\"pollStepOptions\"),P),s(P,\"pollOutput\",[v],Object.getOwnPropertyDescriptor(P,\"pollOutput\"),P),s(P,\"disableInsert\",[y],Object.getOwnPropertyDescriptor(P,\"disableInsert\"),P),s(P,\"minMaxValueValidation\",[x],Object.getOwnPropertyDescriptor(P,\"minMaxValueValidation\"),P),s(P,\"minStepValueValidation\",[O],Object.getOwnPropertyDescriptor(P,\"minStepValueValidation\"),P),s(P,\"minNumOfOptionsValidation\",[w],Object.getOwnPropertyDescriptor(P,\"minNumOfOptionsValidation\"),P),P))}),Ember.TEMPLATES[\"javascripts/modal/poll-ui-builder\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"d-modal-body\",null,[[\"title\",\"class\"],[\"poll.ui_builder.title\",\"poll-ui-builder\"]],{\"statements\":[[0,\"  \"],[7,\"form\",true],[10,\"class\",\"poll-ui-builder-form form-horizontal\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"options\"],[8],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_type.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"valueProperty\",\"class\",\"onChange\"],[[24,[\"pollTypes\"]],[24,[\"pollType\"]],\"value\",\"poll-type\",[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"pollType\"]]],null]],null]]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_result.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"class\",\"valueProperty\"],[[24,[\"pollResults\"]],[24,[\"pollResult\"]],\"poll-result\",\"value\"]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_groups.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"options\",\"valueAttribute\"],[[24,[\"siteGroups\"]],[24,[\"pollGroups\"]],[28,\"hash\",null,[[\"clearable\"],[true]]],\"value\"]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"unless\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_chart_type.label\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"combo-box\",null,[[\"class\",\"content\",\"value\",\"valueAttribute\"],[\"poll-chart-type\",[24,[\"pollChartTypes\"]],[24,[\"chartType\"]],\"value\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"if\",[[24,[\"showMinMax\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.min\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"class\"],[\"number\",[24,[\"pollMin\"]],\"value\",\"poll-options-min\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minMaxValueValidation\"]]]]],false],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.max\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"class\"],[\"number\",[24,[\"pollMax\"]],\"value\",\"poll-options-max\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n            \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.step\"],null],false],[9],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"min\",\"class\"],[\"number\",[24,[\"pollStep\"]],\"value\",\"1\",\"poll-options-step\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n          \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minStepValueValidation\"]]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-textarea\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_options.label\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"textarea\",null,[[\"value\",\"autocomplete\"],[[24,[\"pollOptions\"]],\"discourse\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minNumOfOptionsValidation\"]]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isPie\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-checkbox\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"type\",\"checked\"],[\"checkbox\",[24,[\"publicPoll\"]]]]],false],[0,\"\\\\n            \"],[1,[28,\"i18n\",[\"poll.ui_builder.poll_public.label\"],null],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-checkbox\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[8],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"checked\"],[\"checkbox\",[24,[\"autoClose\"]]]]],false],[0,\"\\\\n          \"],[1,[28,\"i18n\",[\"poll.ui_builder.automatic_close.label\"],null],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"autoClose\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-date\"],[8],[0,\"\\\\n          \"],[1,[28,\"date-picker-future\",null,[[\"value\",\"containerId\"],[[24,[\"date\"]],\"date-container\"]]],false],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\"],[\"time\",[24,[\"time\"]]]]],false],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"id\",\"date-container\"],[8],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"    \"],[9],[0,\"\\\\n\\\\n    \"],[7,\"div\",true],[10,\"class\",\"d-editor-preview\"],[8],[0,\"\\\\n      \"],[1,[28,\"cook-text\",[[23,0,[\"pollOutput\"]]],null],false],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[7,\"div\",true],[10,\"class\",\"modal-footer\"],[8],[0,\"\\\\n  \"],[1,[28,\"d-button\",null,[[\"action\",\"icon\",\"class\",\"label\",\"disabled\"],[[28,\"action\",[[23,0,[]],\"insertPoll\"],null],\"chart-bar\",\"btn-primary\",\"poll.ui_builder.insert\",[24,[\"disableInsert\"]]]]],false],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/modal/poll-ui-builder\"}}),define(\"discourse/plugins/poll/initializers/add-poll-ui-builder\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse-common/utils/decorators\",\"discourse/lib/show-modal\"],function(t,e,u,p){\"use strict\";function l(t){var e,l,o,s,n,i,r,a;t.modifyClass(\"controller:composer\",(e=(0,u.default)(\"siteSettings.poll_enabled\",\"siteSettings.poll_minimum_trust_level_to_create\",\"model.topic.pm_with_non_human_user\"),o=l={canBuildPoll:function(t,e,l){return t&&(l||this.currentUser&&(this.currentUser.staff||this.currentUser.trust_level>=e))},actions:{showPollBuilder:function(){(0,p.default)(\"poll-ui-builder\").set(\"toolbarEvent\",this.toolbarEvent)}}},s=\"canBuildPoll\",n=[e],i=Object.getOwnPropertyDescriptor(l,\"canBuildPoll\"),r=l,a={},Object.keys(i).forEach(function(t){a[t]=i[t]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,(\"value\"in a||a.initializer)&&(a.writable=!0),a=n.slice().reverse().reduce(function(t,e){return e(o,s,t)||t},a),r&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(r):void 0,a.initializer=void 0),void 0===a.initializer&&(Object.defineProperty(o,s,a),a=null),l)),t.addToolbarPopupMenuOptionsCallback(function(){return{action:\"showPollBuilder\",icon:\"chart-bar\",label:\"poll.ui_builder.title\",condition:\"canBuildPoll\"}})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"add-poll-ui-builder\",initialize:function(){(0,e.withPluginApi)(\"0.8.7\",l)}}}),define(\"discourse/plugins/poll/initializers/extend-for-poll\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse-common/utils/decorators\",\"discourse-common/lib/get-owner\",\"discourse/widgets/glue\"],function(t,e,p,c,g){\"use strict\";function l(h){var t,e,f=(0,c.getRegister)(h);h.modifyClass(\"controller:topic\",{subscribe:function(){var l=this;this._super.apply(this,arguments),this.messageBus.subscribe(\"/polls/\"+this.get(\"model.id\"),function(t){var e=l.get(\"model.postStream\").findLoadedPost(t.post_id);e&&e.set(\"polls\",t.polls)})},unsubscribe:function(){this.messageBus.unsubscribe(\"/polls/*\"),this._super.apply(this,arguments)}});var l,o,s,n,i,r,m=[],a=null;function u(){m.forEach(function(t){return t.queueRerender()})}h.modifyClass(\"model:post\",(t=(0,p.observes)(\"polls\"),l=e={_polls:null,pollsObject:null,pollsChanged:function(){var e=this,t=this.polls;t&&(this._polls=this._polls||{},t.forEach(function(t){e._polls[t.name]?e._polls[t.name].setProperties(t):e._polls[t.name]=Ember.Object.create(t)}),this.set(\"pollsObject\",this._polls),u())}},o=\"pollsChanged\",s=[t],n=Object.getOwnPropertyDescriptor(e,\"pollsChanged\"),i=e,r={},Object.keys(n).forEach(function(t){r[t]=n[t]}),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,(\"value\"in r||r.initializer)&&(r.writable=!0),r=s.slice().reverse().reduce(function(t,e){return e(l,o,t)||t},r),i&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(i):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(l,o,r),r=null),e)),h.includePostAttributes(\"polls\",\"polls_votes\"),h.decorateCooked(function(t,e){var p,c,d,l=$(\".poll\",t);l.length&&e&&(p=e.getModel(),h.preventCloak(p.id),p.pollsChanged(),c=p.pollsObject||{},d=p.polls_votes||{},a=a||setInterval(u,3e4),l.each(function(t,e){var l,o,s,n=$(e),i=n.data(\"poll-name\"),r=c[i],a=d[i]||[],u=n.parent(\".expanded-quote\").data(\"post-id\");!u||(l=p.quoted[u])&&(p=Ember.Object.create(l),r=Ember.Object.create(l.polls.find(function(t){return t.name===i})),a=(a=l.polls_votes||{})[i]||[]),r&&(o={id:i+\"-\"+p.id,post:p,poll:r,vote:a,groupableUserFields:(h.container.lookup(\"site-settings:main\").poll_groupable_user_fields||\"\").split(\"|\").filter(Boolean)},(s=new g.default(\"discourse-poll\",f,o)).appendTo(e),m.push(s))}))},{onlyStream:!0,id:\"discourse-poll\"}),h.cleanupStream(function(){a&&(clearInterval(a),a=null),m.forEach(function(t){return t.cleanUp()}),m=[]})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"extend-for-poll\",initialize:function(){(0,e.withPluginApi)(\"0.8.7\",l)}}}),define(\"discourse/plugins/poll/lib/chart-colors\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getColors=function(t,e){var l=void 0;switch(e=e||\"cool\"){case\"cool\":l={0:[255,255,255],25:[220,237,200],50:[66,179,213],75:[26,39,62],100:[0,0,0]};break;case\"warm\":l={0:[255,255,255],25:[254,235,101],50:[228,82,27],75:[77,52,47],100:[0,0,0]}}for(var o=Object.keys(l),s=[],n=void 0,i=void 0,r=0;r<t;r++){n=(r+1)*(100/(t+1));for(var a=void 0,u=i=i||0;u<o.length;u++){if(!o[u+1]){a=u-1;break}if(n>=o[u]&&n<o[u+1]){a=u;break}}for(var p=(n-o[a])/(o[a+1]-o[a]),c=[],d=0;d<3;d++)c.push(Math.round(l[o[a]][d]-(l[o[a]][d]-l[o[a+1]][d])*p));s.push(\"rgb(\"+c.toString()+\")\"),i=a}return s}}),define(\"discourse/plugins/poll/lib/discourse-markdown/poll\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.setup=function(t){t.whiteList([\"div.poll\",\"div.poll-info\",\"div.poll-container\",\"div.poll-buttons\",\"div[data-*]\",\"span.info-number\",\"span.info-text\",\"span.info-label\",\"a.button.cast-votes\",\"a.button.toggle-results\",\"li[data-*]\"]),function(t){t.registerOptions(function(t,e){t.features.poll=!!e.poll_enabled,t.pollMaximumOptions=e.poll_maximum_options}),t.registerPlugin(function(t){t.block.bbcode.ruler.push(\"poll\",e)})}(t)};var m=\"data-poll-\",g=[\"close\",\"max\",\"min\",\"name\",\"order\",\"public\",\"results\",\"chartType\",\"groups\",\"status\",\"step\",\"type\"];function b(t,e,l){var o=t.indexOf(e),s=t[o].level;for(t.splice.apply(t,[o,1].concat(function(t){if(Array.isArray(t)){for(var e=0,l=Array(t.length);e<t.length;e++)l[e]=t[e];return l}return Array.from(t)}(l))),l[0].map=e.map;o<t.length;o++){var n=t[o].nesting;n<0&&s--,t[o].level=s,0<n&&s++}}function v(t,e){t.push(\"text\",\"\",0).content=\"[/\"+e+\"]\"}var e={tag:\"poll\",before:function(t,e,l){var o=t.push(\"text\",\"\",0);o.content=l,o.bbcode_attrs=e.attrs,o.bbcode_type=\"poll_open\"},after:function(t,e,l){var o=function(t,e){for(var l=t.length-1,o=[],s=[];t[l]!==e;l--){if(0===l)return;var n=t[l];if(0===n.level&&\"ol\"!==n.tag&&\"ul\"!==n.tag)return;if(1===n.level&&1===n.nesting){if(\"li\"!==n.tag)return;o.push([n,s.reverse().join(\" \")])}1===n.level&&1===n.nesting&&\"li\"===n.tag?s=[]:\"text\"!==n.type&&\"inline\"!==n.type||s.push(n.content)}return o.reverse()}(t.tokens,e);if(!o)return v(t,l);var s=e.bbcode_attrs,n=[[\"class\",\"poll\"]];s.status||n.push([m+\"status\",\"open\"]),g.forEach(function(t){s[t]&&n.push([m+t,s[t]])}),s.name||n.push([m+\"name\",\"poll\"]);var i=parseInt(s.min,10),r=parseInt(s.max,10),a=parseInt(s.step,10);a<1&&(a=1);var u=[],p=new t.Token(\"poll_open\",\"div\",1);if(p.block=!0,p.attrs=n,u.push(p),(p=new t.Token(\"poll_open\",\"div\",1)).block=!0,u.push(p),(p=new t.Token(\"poll_open\",\"div\",1)).attrs=[[\"class\",\"poll-container\"]],u.push(p),\"number\"===s.type){if(isNaN(i)&&(i=1),isNaN(r)&&(r=t.md.options.discourse.pollMaximumOptions),isNaN(a)&&(a=1),0<o.length)return v(t,l);p=new t.Token(\"bullet_list_open\",\"ul\",1),u.push(p);for(var c=i;c<=r;c+=a)p=new t.Token(\"list_item_open\",\"li\",1),o.push([p,String(c)]),u.push(p),(p=new t.Token(\"text\",\"\",0)).content=String(c),u.push(p),p=new t.Token(\"list_item_close\",\"li\",-1),u.push(p);p=new t.Token(\"bullet_item_close\",\"\",-1),u.push(p)}for(var d=0;d<o.length;d++){p=o[d][0];var h=o[d][1];p.attrs=p.attrs||[];var f=function(t){for(var e=0;e<t.length;e++)t[e]=function(t){for(var e=\"\",l=0;l<4;l++)e+=y[t>>8*l+4&15]+y[t>>8*l&15];return e}(t[e]);return t.join(\"\")}(function(t){/[\\x80-\\xFF]/.test(t)&&(t=unescape(encodeURI(t)));var e,l=t.length,o=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)_(o,function(t){var e,l=[];for(e=0;e<64;e+=4)l[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return l}(t.substring(e-64,e)));t=t.substring(e-64);var s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)s[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(s[e>>2]|=128<<(e%4<<3),55<e)for(_(o,s),e=0;e<16;e++)s[e]=0;return s[14]=8*l,_(o,s),o}(JSON.stringify([h])));p.attrs.push([m+\"option-id\",f])}b(t.tokens,e,u),t.level=t.tokens[t.tokens.length-1].level,t.push(\"poll_close\",\"div\",-1),(p=t.push(\"poll_open\",\"div\",1)).attrs=[[\"class\",\"poll-info\"]],t.push(\"paragraph_open\",\"p\",1),(p=t.push(\"span_open\",\"span\",1)).block=!1,p.attrs=[[\"class\",\"info-number\"]],(p=t.push(\"text\",\"\",0)).content=\"0\",t.push(\"span_close\",\"span\",-1),(p=t.push(\"span_open\",\"span\",1)).block=!1,p.attrs=[[\"class\",\"info-label\"]],(p=t.push(\"text\",\"\",0)).content=I18n.t(\"poll.voters\",{count:0}),t.push(\"span_close\",\"span\",-1),t.push(\"paragraph_close\",\"p\",-1),t.push(\"poll_close\",\"div\",-1),t.push(\"poll_close\",\"div\",-1),t.push(\"poll_close\",\"div\",-1)}};function _(t,e){var l=i(l=t[0],n=t[1],s=t[2],o=t[3],e[0],7,-680876936),o=i(o,l,n,s,e[1],12,-389564586),s=i(s,o,l,n,e[2],17,606105819),n=i(n,s,o,l,e[3],22,-1044525330);l=i(l,n,s,o,e[4],7,-176418897),o=i(o,l,n,s,e[5],12,1200080426),s=i(s,o,l,n,e[6],17,-1473231341),n=i(n,s,o,l,e[7],22,-45705983),l=i(l,n,s,o,e[8],7,1770035416),o=i(o,l,n,s,e[9],12,-1958414417),s=i(s,o,l,n,e[10],17,-42063),n=i(n,s,o,l,e[11],22,-1990404162),l=i(l,n,s,o,e[12],7,1804603682),o=i(o,l,n,s,e[13],12,-40341101),s=i(s,o,l,n,e[14],17,-1502002290),l=a(l,n=i(n,s,o,l,e[15],22,1236535329),s,o,e[1],5,-165796510),o=a(o,l,n,s,e[6],9,-1069501632),s=a(s,o,l,n,e[11],14,643717713),n=a(n,s,o,l,e[0],20,-373897302),l=a(l,n,s,o,e[5],5,-701558691),o=a(o,l,n,s,e[10],9,38016083),s=a(s,o,l,n,e[15],14,-660478335),n=a(n,s,o,l,e[4],20,-405537848),l=a(l,n,s,o,e[9],5,568446438),o=a(o,l,n,s,e[14],9,-1019803690),s=a(s,o,l,n,e[3],14,-187363961),n=a(n,s,o,l,e[8],20,1163531501),l=a(l,n,s,o,e[13],5,-1444681467),o=a(o,l,n,s,e[2],9,-51403784),s=a(s,o,l,n,e[7],14,1735328473),l=u(l,n=a(n,s,o,l,e[12],20,-1926607734),s,o,e[5],4,-378558),o=u(o,l,n,s,e[8],11,-2022574463),s=u(s,o,l,n,e[11],16,1839030562),n=u(n,s,o,l,e[14],23,-35309556),l=u(l,n,s,o,e[1],4,-1530992060),o=u(o,l,n,s,e[4],11,1272893353),s=u(s,o,l,n,e[7],16,-155497632),n=u(n,s,o,l,e[10],23,-1094730640),l=u(l,n,s,o,e[13],4,681279174),o=u(o,l,n,s,e[0],11,-358537222),s=u(s,o,l,n,e[3],16,-722521979),n=u(n,s,o,l,e[6],23,76029189),l=u(l,n,s,o,e[9],4,-640364487),o=u(o,l,n,s,e[12],11,-421815835),s=u(s,o,l,n,e[15],16,530742520),l=p(l,n=u(n,s,o,l,e[2],23,-995338651),s,o,e[0],6,-198630844),o=p(o,l,n,s,e[7],10,1126891415),s=p(s,o,l,n,e[14],15,-1416354905),n=p(n,s,o,l,e[5],21,-57434055),l=p(l,n,s,o,e[12],6,1700485571),o=p(o,l,n,s,e[3],10,-1894986606),s=p(s,o,l,n,e[10],15,-1051523),n=p(n,s,o,l,e[1],21,-2054922799),l=p(l,n,s,o,e[8],6,1873313359),o=p(o,l,n,s,e[15],10,-30611744),s=p(s,o,l,n,e[6],15,-1560198380),n=p(n,s,o,l,e[13],21,1309151649),l=p(l,n,s,o,e[4],6,-145523070),o=p(o,l,n,s,e[11],10,-1120210379),s=p(s,o,l,n,e[2],15,718787259),n=p(n,s,o,l,e[9],21,-343485551),t[0]=c(l,t[0]),t[1]=c(n,t[1]),t[2]=c(s,t[2]),t[3]=c(o,t[3])}function r(t,e,l,o,s,n){return e=c(c(e,t),c(o,n)),c(e<<s|e>>>32-s,l)}function i(t,e,l,o,s,n,i){return r(e&l|~e&o,t,e,s,n,i)}function a(t,e,l,o,s,n,i){return r(e&o|l&~o,t,e,s,n,i)}function u(t,e,l,o,s,n,i){return r(e^l^o,t,e,s,n,i)}function p(t,e,l,o,s,n,i){return r(l^(e|~o),t,e,s,n,i)}var y=\"0123456789abcdef\".split(\"\");function c(t,e){return t+e&4294967295}}),define(\"discourse/plugins/poll/lib/even-round\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(t){for(var e=t.map(function(t){return t%1}),l=Math.ceil(e.reduce(function(t,e){return t+e})),o=0,s=e.length;o<l&&o<s;o++){for(var n=0,i=0,r=0;r<e.length;r++)e[r]>n&&(n=e[i=r]);if(++t[i],e[i]=0,100===t.map(function(t){return Math.floor(t)}).reduce(function(t,e){return t+e}))break}return t.map(function(t){return Math.floor(t)})}}),define(\"discourse/plugins/poll/widgets/discourse-poll\",[\"exports\",\"discourse/widgets/widget\",\"virtual-dom\",\"discourse-common/lib/icon-library\",\"discourse/widgets/raw-html\",\"discourse/lib/ajax\",\"discourse/lib/ajax-error\",\"discourse/plugins/poll/lib/even-round\",\"discourse/widgets/post\",\"discourse/lib/round\",\"discourse/lib/formatter\",\"discourse/lib/load-script\",\"../lib/chart-colors\",\"@ember/string\",\"../controllers/poll-ui-builder\"],function(t,e,c,s,v,i,r,d,o,a,y,l,u,n,p){\"use strict\";function h(t){var e=$(\"<span>\"+t.html+\"</span>\");return e.find(\".discourse-local-date\").each(function(t,e){$(e).applyLocalDates()}),new v.default({html:\"<span>\"+e.html()+\"</span>\"})}function x(t){return new v.default({html:'<span class=\"info-text\">'+t+\"</span>\"})}function f(t){return(0,i.ajax)(\"/polls/voters.json\",{data:t}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_fetching_voters\"))})}function m(t,e){var l=e&&e.groups&&e.groups.split(\",\").map(function(t){return t.toLowerCase()});if(!l)return 1;var o=t&&t.groups&&t.groups.map(function(t){return t.name.toLowerCase()});return o&&l.some(function(t){return o.includes(t)})}function g(t){var e=document.querySelector(\"#poll-results-chart-\"+t);e&&e.parentNode.removeChild(e)}function b(t,o,e){var l=2<arguments.length&&void 0!==e?e:{},s=\"aspectRatio\"in l?l.aspectRatio:2.2,n=o.map(function(t){return e=t,(new DOMParser).parseFromString(e,\"text/html\").body.textContent||\"\";var e});return{type:p.PIE_CHART_TYPE,data:{datasets:[{data:t,backgroundColor:(0,u.getColors)(t.length)}],labels:n},options:{responsive:!0,aspectRatio:s,animation:{duration:0},legend:{display:!1},legendCallback:function(t){for(var e=\"\",l=0;l<o.length;l++)e+='<div class=\"legend\"><span class=\"swatch\" style=\"background-color:\\n            '+t.data.datasets[0].backgroundColor[l]+'\"></span>'+o[l]+\"</div>\";return e}}}}Object.defineProperty(t,\"__esModule\",{value:!0}),(0,e.createWidget)(\"discourse-poll-option\",{tagName:\"li\",buildAttributes:function(t){return{\"data-poll-option-id\":t.option.id}},html:function(t){var e=[],l=t.option,o=t.vote.includes(l.id);return t.isMultiple?e.push((0,s.iconNode)(o?\"far-check-square\":\"far-square\")):e.push((0,s.iconNode)(o?\"circle\":\"far-circle\")),e.push(\" \"),e.push(h(l)),e},click:function(t){0===$(t.target).closest(\"a\").length&&this.sendWidgetAction(\"toggleOption\",this.attrs.option)}}),(0,e.createWidget)(\"discourse-poll-load-more\",{tagName:\"div.poll-voters-toggle-expand\",buildKey:function(t){return\"load-more-\"+t.optionId},defaultState:function(){return{loading:!1}},html:function(t,e){return e.loading?(0,c.h)(\"div.spinner.small\"):(0,c.h)(\"a\",(0,s.iconNode)(\"chevron-down\"))},click:function(){var t=this.state;if(!t.loading)return t.loading=!0,this.sendWidgetAction(\"loadMore\").finally(function(){return t.loading=!1})}}),(0,e.createWidget)(\"discourse-poll-voters\",{tagName:\"ul.poll-voters-list\",buildKey:function(t){return\"poll-voters-\"+t.optionId},defaultState:function(){return{loaded:\"new\",voters:[],page:1}},fetchVoters:function(){var o=this,s=this.attrs,n=this.state;if(\"loading\"!==n.loaded)return n.loaded=\"loading\",f({post_id:s.postId,poll_name:s.pollName,option_id:s.optionId,page:n.page}).then(function(t){n.loaded=\"loaded\",n.page+=1;var e=\"number\"===s.pollType?t.voters:t.voters[s.optionId],l=new Set(n.voters.map(function(t){return t.username}));e.forEach(function(t){l.has(t.username)||(l.add(t.username),n.voters.push(t))}),o.scheduleRerender()})},loadMore:function(){return this.fetchVoters()},html:function(t,e){t.voters&&\"new\"===e.loaded&&(e.voters=t.voters);var l=e.voters.map(function(t){return(0,c.h)(\"li\",[(0,o.avatarFor)(\"tiny\",{username:t.username,template:t.avatar_template}),\" \"])});return e.voters.length<t.totalVotes&&l.push(this.attach(\"discourse-poll-load-more\",t)),(0,c.h)(\"div.poll-voters\",l)}}),(0,e.createWidget)(\"discourse-poll-standard-results\",{tagName:\"ul.results\",buildKey:function(t){return\"poll-standard-results-\"+t.id},defaultState:function(){return{loaded:!1}},fetchVoters:function(){var e=this,t=this.attrs,l=this.state;return f({post_id:t.post.id,poll_name:t.poll.get(\"name\")}).then(function(t){l.voters=t.voters,e.scheduleRerender()})},html:function(n,i){var r=this,a=n.poll,t=a.get(\"options\");if(t){var e=a.get(\"voters\"),u=a.get(\"public\"),l=_.clone(t).sort(function(t,e){return!(t.votes<e.votes)&&(t.votes!==e.votes||t.html<e.html)?-1:1});u&&!i.loaded&&(i.voters=a.get(\"preloaded_voters\"),i.loaded=!0);var o=0===e?Array(l.length).fill(0):l.map(function(t){return 100*t.votes/e}),p=n.isMultiple?o.map(Math.floor):(0,d.default)(o);return l.map(function(t,e){var l=[],o=p[e].toString(),s=(n.vote||[]).includes(t.id);return l.push((0,c.h)(\"div.option\",(0,c.h)(\"p\",[(0,c.h)(\"span.percentage\",o+\"%\"),h(t)]))),l.push((0,c.h)(\"div.bar-back\",(0,c.h)(\"div.bar\",{attributes:{style:\"width:\"+o+\"%\"}}))),u&&l.push(r.attach(\"discourse-poll-voters\",{postId:n.post.id,optionId:t.id,pollName:a.get(\"name\"),totalVotes:t.votes,voters:i.voters&&i.voters[t.id]||[]})),(0,c.h)(\"li\",{className:s?\"chosen\":\"\"},l)})}}}),(0,e.createWidget)(\"discourse-poll-number-results\",{buildKey:function(t){return\"poll-number-results-\"+t.id},defaultState:function(){return{loaded:!1}},fetchVoters:function(){var e=this,t=this.attrs,l=this.state;return f({post_id:t.post.id,poll_name:t.poll.get(\"name\")}).then(function(t){l.voters=t.voters,e.scheduleRerender()})},html:function(t,e){var l=t.poll,o=l.get(\"options\").reduce(function(t,e){return t+parseInt(e.html,10)*parseInt(e.votes,10)},0),s=l.get(\"voters\"),n=0===s?0:(0,a.default)(o/s,-2),i=I18n.t(\"poll.average_rating\",{average:n}),r=[(0,c.h)(\"div.poll-results-number-rating\",new v.default({html:\"<span>\"+i+\"</span>\"}))];return l.get(\"public\")&&(e.loaded||(e.voters=l.get(\"preloaded_voters\"),e.loaded=!0),r.push(this.attach(\"discourse-poll-voters\",{totalVotes:l.get(\"voters\"),voters:e.voters||[],postId:t.post.id,pollName:l.get(\"name\"),pollType:l.get(\"type\")}))),r}}),(0,e.createWidget)(\"discourse-poll-container\",{tagName:\"div.poll-container\",html:function(e){var l=this,t=e.poll,o=t.get(\"options\");if(e.showResults){var s=\"number\"===t.get(\"type\")?\"number\":\"standard\",n=\"number\"==s||e.poll.chart_type!==p.PIE_CHART_TYPE?\"discourse-poll-\"+s+\"-results\":\"discourse-poll-pie-chart\";return this.attach(n,e)}if(o){var i=[];return m(this.currentUser,t)||i.push((0,c.h)(\"div.alert.alert-danger\",I18n.t(\"poll.results.groups.title\",{groups:t.groups}))),i.push((0,c.h)(\"ul\",o.map(function(t){return l.attach(\"discourse-poll-option\",{option:t,isMultiple:e.isMultiple,vote:e.vote})}))),i}}}),(0,e.createWidget)(\"discourse-poll-info\",{tagName:\"div.poll-info\",multipleHelpText:function(t,e,l){if(0<e)if(t===e){if(1<t)return I18n.t(\"poll.multiple.help.x_options\",{count:t})}else{if(1<t)return e<l?I18n.t(\"poll.multiple.help.between_min_and_max_options\",{min:t,max:e}):I18n.t(\"poll.multiple.help.at_least_min_options\",{count:t});if(e<=l)return I18n.t(\"poll.multiple.help.up_to_max_options\",{count:e})}},html:function(t){var e,l,o=t.poll,s=o.get(\"voters\"),n=[(0,c.h)(\"p\",[(0,c.h)(\"span.info-number\",s.toString()),(0,c.h)(\"span.info-label\",I18n.t(\"poll.voters\",{count:s}))])];return t.isMultiple&&(t.showResults||t.isClosed?(e=o.get(\"options\").reduce(function(t,e){return t+parseInt(e.votes,10)},0),n.push((0,c.h)(\"p\",[(0,c.h)(\"span.info-number\",e.toString()),(0,c.h)(\"span.info-label\",I18n.t(\"poll.total_votes\",{count:e}))]))):(l=this.multipleHelpText(t.min,t.max,o.get(\"options.length\")))&&n.push(x(l))),t.isClosed||t.showResults||!o.public||\"staff_only\"===o.results||n.push(x(I18n.t(\"poll.public.title\"))),n}}),(0,e.createWidget)(\"discourse-poll-grouped-pies\",{tagName:\"div.poll-grouped-pies\",buildAttributes:function(t){return{id:\"poll-results-grouped-pie-charts-\"+t.id}},html:function(u){var t=Object.assign({},u.groupableUserFields),l=\"field-select-\"+u.id;u.groupedBy=u.groupedBy||t[0];var e=[],o=this.attach(\"button\",{className:\"btn-default poll-group-by-toggle\",label:\"poll.ungroup-results.label\",title:\"poll.ungroup-results.title\",icon:\"far-eye-slash\",action:\"toggleGroupedPieCharts\"}),s=(0,c.h)(\"select#\"+l+\".poll-group-by-selector\",{value:u.groupBy},u.groupableUserFields.map(function(t){return(0,c.h)(\"option\",{value:t},((e=t.split(\"_\").filter(Boolean))[0]=(0,n.classify)(e[0]),e.join(\" \")));var e}));return e.push((0,c.h)(\"div.poll-grouped-pies-controls\",[o,s])),(0,i.ajax)(\"/polls/grouped_poll_results.json\",{data:{post_id:u.post.id,poll_name:u.poll.name,user_field_name:u.groupedBy}}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_fetching_voters\"))}).then(function(r){var t=document.getElementById(l);if(t){t.value=u.groupedBy;for(var a=document.getElementById(\"poll-results-grouped-pie-charts-\"+u.id),e=0;e<r.grouped_results.length;e++)!function(t){var e,l,o,s=b(r.grouped_results[t].options.mapBy(\"votes\"),r.grouped_results[t].options.mapBy(\"html\"),{aspectRatio:1.2}),n=\"pie-\"+u.id+\"-\"+t,i=document.querySelector(\"#\"+n);i?Chart.helpers.each(Chart.instances,function(t){t.chart.canvas.id===n&&i.$chartjs&&(t.destroy(),new Chart(i.getContext(\"2d\"),s))}):((e=document.createElement(\"div\")).classList.add(\"poll-grouped-pie-container\"),(l=document.createElement(\"label\")).classList.add(\"poll-pie-label\"),l.textContent=r.grouped_results[t].group,(o=document.createElement(\"canvas\")).classList.add(\"poll-grouped-pie-\"+u.id),o.id=n,e.appendChild(l),e.appendChild(o),a.appendChild(e),new Chart(o.getContext(\"2d\"),s))}(e)}}),e},click:function(t){var e=$(t.target).closest(\"select\");e.length&&this.sendWidgetAction(\"refreshCharts\",e[0].value)}}),(0,e.createWidget)(\"discourse-poll-pie-canvas\",{tagName:\"canvas.poll-results-canvas\",init:function(o){(0,l.default)(\"/javascripts/Chart.min.js\").then(function(){var t=b(o.poll.options.mapBy(\"votes\"),o.poll.options.mapBy(\"html\")),e=document.getElementById(\"poll-results-chart-\"+o.id),l=new Chart(e.getContext(\"2d\"),t);document.getElementById(\"poll-results-legend-\"+o.id).innerHTML=l.generateLegend()})},buildAttributes:function(t){return{id:\"poll-results-chart-\"+t.id}}}),(0,e.createWidget)(\"discourse-poll-pie-chart\",{tagName:\"div.poll-results-chart\",html:function(t){var e=[];if(!t.showResults)return g(t.id),e;var l=void 0,o=void 0;return t.groupResults&&0<t.groupableUserFields.length?(o=this.attach(\"discourse-poll-grouped-pies\",t),g(t.id)):(t.groupableUserFields.length&&(l=this.attach(\"button\",{className:\"btn-default poll-group-by-toggle\",label:\"poll.group-results.label\",title:\"poll.group-results.title\",icon:\"far-eye\",action:\"toggleGroupedPieCharts\"})),o=this.attach(\"discourse-poll-pie-canvas\",t)),e.push(l),e.push(o),e.push((0,c.h)(\"div#poll-results-legend-\"+t.id+\".pie-chart-legends\")),e}}),(0,e.createWidget)(\"discourse-poll-buttons\",{tagName:\"div.poll-buttons\",html:function(t){var e,l,o,s,n,i,r=[],a=t.poll,u=t.post,p=u.get(\"topic.archived\"),c=t.isClosed,d=\"staff_only\"===a.results,h=this.currentUser&&this.currentUser.staff,f=this.currentUser&&this.currentUser.admin,m=this.siteSettings.data_explorer_enabled,g=!d&&(c||p),b=this.siteSettings.poll_export_data_explorer_query_id;return t.isMultiple&&!g&&(e=!t.canCastVotes,r.push(this.attach(\"button\",{className:\"cast-votes \"+(e?\"btn-default\":\"btn-primary\"),label:\"poll.cast-votes.label\",title:\"poll.cast-votes.title\",disabled:e,action:\"castVotes\"})),r.push(\" \")),t.showResults||g?r.push(this.attach(\"button\",{className:\"btn-default toggle-results\",label:\"poll.hide-results.label\",title:\"poll.hide-results.title\",icon:\"far-eye-slash\",disabled:g,action:\"toggleResults\"})):\"on_vote\"!==a.get(\"results\")||t.hasVoted?\"on_close\"!==a.get(\"results\")||c?\"staff_only\"!==a.results||h?r.push(this.attach(\"button\",{className:\"btn-default toggle-results\",label:\"poll.show-results.label\",title:\"poll.show-results.title\",icon:\"far-eye\",disabled:0===a.get(\"voters\"),action:\"toggleResults\"})):r.push(x(I18n.t(\"poll.results.staff.title\"))):r.push(x(I18n.t(\"poll.results.closed.title\"))):r.push(x(I18n.t(\"poll.results.vote.title\"))),f&&m&&0<a.voters&&b&&r.push(this.attach(\"button\",{className:\"btn btn-default export-results\",label:\"poll.export-results.label\",title:\"poll.export-results.title\",icon:\"download\",disabled:0===a.voters,action:\"exportResults\"})),!a.get(\"close\")||(l=moment.utc(a.get(\"close\"))).isValid()&&(o=l.format(\"LLL\"),n=void 0,n=t.isAutomaticallyClosed?(s=(0,y.relativeAge)(l.toDate(),{addAgo:!0}),I18n.t(\"poll.automatic_close.age\",{age:s})):(i=moment().to(l.local(),!0),I18n.t(\"poll.automatic_close.closes_in\",{timeLeft:i})),r.push(new v.default({html:'<span class=\"info-text\" title=\"'+o+'\">'+n+\"</span>\"}))),!this.currentUser||this.currentUser.get(\"id\")!==u.get(\"user_id\")&&!h||p||(c?t.isAutomaticallyClosed||r.push(this.attach(\"button\",{className:\"btn-default toggle-status\",label:\"poll.open.label\",title:\"poll.open.title\",icon:\"unlock-alt\",action:\"toggleStatus\"})):r.push(this.attach(\"button\",{className:\"toggle-status btn-danger\",label:\"poll.close.label\",title:\"poll.close.title\",icon:\"lock\",action:\"toggleStatus\"}))),r}}),t.default=(0,e.createWidget)(\"discourse-poll\",{tagName:\"div\",buildKey:function(t){return\"poll-\"+t.id},buildAttributes:function(t){var e=\"poll\";return t.poll.chart_type===p.PIE_CHART_TYPE&&(e+=\" pie\"),{class:e,\"data-poll-name\":t.poll.get(\"name\"),\"data-poll-type\":t.poll.get(\"type\")}},defaultState:function(t){var e=t.post,l=t.poll,o=\"staff_only\"===t.poll.results;return{loading:!1,showResults:e.get(\"topic.archived\")&&!o||this.isClosed()&&!o||\"on_close\"!==l.results&&this.hasVoted()&&!o}},html:function(t,e){var l=\"staff_only\"===t.poll.results,o=e.showResults||t.post.get(\"topic.archived\")&&!l||this.isClosed()&&!l,s=jQuery.extend({},t,{canCastVotes:this.canCastVotes(),hasVoted:this.hasVoted(),isAutomaticallyClosed:this.isAutomaticallyClosed(),isClosed:this.isClosed(),isMultiple:this.isMultiple(),max:this.max(),min:this.min(),showResults:o});return(0,c.h)(\"div\",[this.attach(\"discourse-poll-container\",s),this.attach(\"discourse-poll-info\",s),this.attach(\"discourse-poll-buttons\",s)])},min:function(){var t=parseInt(this.attrs.poll.get(\"min\"),10);return(isNaN(t)||t<0)&&(t=0),t},max:function(){var t=parseInt(this.attrs.poll.get(\"max\"),10),e=this.attrs.poll.get(\"options.length\");return(isNaN(t)||e<t)&&(t=e),t},isAutomaticallyClosed:function(){var t=this.attrs.poll;return t.get(\"close\")&&moment.utc(t.get(\"close\"))<=moment()},isClosed:function(){return\"closed\"===this.attrs.poll.get(\"status\")||this.isAutomaticallyClosed()},isMultiple:function(){return\"multiple\"===this.attrs.poll.get(\"type\")},hasVoted:function(){var t=this.attrs.vote;return t&&0<t.length},canCastVotes:function(){var t=this.state,e=this.attrs;if(this.isClosed()||t.showResults||t.loading)return!1;var l=e.vote.length;return this.isMultiple()?l>=this.min()&&l<=this.max():0<l},toggleStatus:function(){var l=this,o=this.state,t=this.attrs,s=t.post,n=t.poll;this.isAutomaticallyClosed()||bootbox.confirm(I18n.t(this.isClosed()?\"poll.open.confirm\":\"poll.close.confirm\"),I18n.t(\"no_value\"),I18n.t(\"yes_value\"),function(t){var e;t&&(o.loading=!0,e=l.isClosed()?\"open\":\"closed\",(0,i.ajax)(\"/polls/toggle_status\",{type:\"PUT\",data:{post_id:s.get(\"id\"),poll_name:n.get(\"name\"),status:e}}).then(function(){n.set(\"status\",e),\"on_close\"===n.get(\"results\")&&(o.showResults=\"closed\"==e),l.scheduleRerender()}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_toggling_status\"))}).finally(function(){o.loading=!1}))})},toggleResults:function(){this.state.showResults=!this.state.showResults},exportResults:function(){var o=this.attrs,t=this.siteSettings.poll_export_data_explorer_query_id;(0,i.ajax)(\"/admin/plugins/explorer/queries/\"+t+\"/run.csv\",{type:\"POST\",data:{params:JSON.stringify({poll_name:o.poll.name,post_id:o.post.id.toString()}),explain:!1,limit:1e6,download:1}}).then(function(t){var e=document.createElement(\"a\"),l=new Blob([t],{type:\"text/csv;charset=utf-8;\"});e.href=URL.createObjectURL(l),e.setAttribute(\"download\",\"poll-export-\"+o.poll.name+\"-\"+o.post.id+\".csv\"),e.click(),e.remove()}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_exporting_results\"))})},showLogin:function(){this.register.lookup(\"route:application\").send(\"showLogin\")},_toggleOption:function(t){var e=this.attrs.vote,l=e.indexOf(t.id);-1!==l?e.splice(l,1):e.push(t.id)},toggleOption:function(t){var e=this,l=this.attrs;if(!this.isClosed()){if(!this.currentUser)return this.showLogin();if(m(this.currentUser,this.attrs.poll)){var o=l.vote;return this.isMultiple()||(o.length=0),this._toggleOption(t),this.isMultiple()?void 0:this.castVotes().catch(function(){return e._toggleOption(t)})}}},castVotes:function(){var l=this;if(this.canCastVotes()){if(!this.currentUser)return this.showLogin();var o=this.attrs,s=this.state;return s.loading=!0,(0,i.ajax)(\"/polls/vote\",{type:\"PUT\",data:{post_id:o.post.id,poll_name:o.poll.get(\"name\"),options:o.vote}}).then(function(t){var e=t.poll;o.poll.setProperties(e),\"on_close\"!==o.poll.get(\"results\")&&(s.showResults=!0),\"staff_only\"===o.poll.results&&(l.currentUser&&l.currentUser.get(\"staff\")?s.showResults=!0:s.showResults=!1)}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_casting_votes\"))}).finally(function(){s.loading=!1})}},toggleGroupedPieCharts:function(){this.attrs.groupResults=!this.attrs.groupResults},refreshCharts:function(t){var e=document.getElementById(\"poll-results-grouped-pie-charts-\"+this.attrs.id);Array.from(e.getElementsByClassName(\"poll-grouped-pie-container\")).forEach(function(t){e.removeChild(t)}),this.attrs.groupedBy=t}})});\n//# sourceMappingURL=/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.09599999578110874,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 3388.4219999966917,
          "receive": 0.9999999892897904,
          "_blocked_queueing": 0.09499999578110874
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 63
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 3803.1800000171643,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 722,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:15 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000351"
            },
            {
              "name": "Content-Length",
              "value": "154985"
            }
          ],
          "cookies": [],
          "content": {
            "size": 560957,
            "mimeType": "application/javascript",
            "compression": 405972,
            "text": "var define,requirejs;Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},window.ENV={},window.EmberENV=window.EmberENV||{},window.EmberENV.FORCE_JQUERY=!0,function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(T,e){\"use strict\";function m(e){return null!=e&&e===e.window}var t=[],C=T.document,r=Object.getPrototypeOf,s=t.slice,v=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,g=n.hasOwnProperty,a=g.toString,l=a.call(Object),y={},b=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType},c={type:!0,src:!0,nonce:!0,noModule:!0};function _(e,t,n){var r,i,o=(n=n||C).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var h=\"3.4.1\",R=function(e,t){return new R.fn.init(e,t)},f=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!b(e)&&!m(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}R.fn=R.prototype={jquery:h,constructor:R,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=R.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return R.each(this,e)},map:function(n){return this.pushStack(R.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},R.extend=R.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||b(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(R.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||R.isPlainObject(n)?n:{},i=!1,a[t]=R.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},R.extend({expando:\"jQuery\"+(h+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==o.call(e))&&(!(t=r(e))||\"function\"==typeof(n=g.call(t,\"constructor\")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){_(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(p(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?\"\":(e+\"\").replace(f,\"\")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?R.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!=a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return v.apply([],a)},guid:1,support:y}),\"function\"==typeof Symbol&&(R.fn[Symbol.iterator]=t[Symbol.iterator]),R.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var d=function(n){function h(e,t,n){var r=\"0x\"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(65536+r):String.fromCharCode(r>>10|55296,1023&r|56320)}function i(){E()}var e,p,_,o,a,d,f,m,w,u,l,E,T,s,C,v,c,g,y,R=\"sizzle\"+ +new Date,b=n.document,k=0,r=0,x=ue(),A=ue(),O=ue(),S=ue(),N=function(e,t){return e===t&&(l=!0),0},P={}.hasOwnProperty,t=[],L=t.pop,M=t.push,j=t.push,D=t.slice,I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},F=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",B=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",U=\"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",z=\"\\\\[\"+B+\"*(\"+U+\")(?:\"+B+\"*([*^$|!~]?=)\"+B+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+U+\"))|)\"+B+\"*\\\\]\",q=\":(\"+U+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+z+\")*)|.*)\\\\)|)\",H=new RegExp(B+\"+\",\"g\"),V=new RegExp(\"^\"+B+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+B+\"+$\",\"g\"),W=new RegExp(\"^\"+B+\"*,\"+B+\"*\"),Y=new RegExp(\"^\"+B+\"*([>+~]|\"+B+\")\"+B+\"*\"),G=new RegExp(B+\"|>\"),Q=new RegExp(q),K=new RegExp(\"^\"+U+\"$\"),$={ID:new RegExp(\"^#(\"+U+\")\"),CLASS:new RegExp(\"^\\\\.(\"+U+\")\"),TAG:new RegExp(\"^(\"+U+\"|[*])\"),ATTR:new RegExp(\"^\"+z),PSEUDO:new RegExp(\"^\"+q),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+B+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+B+\"*(?:([+-]|)\"+B+\"*(\\\\d+)|))\"+B+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+F+\")$\",\"i\"),needsContext:new RegExp(\"^\"+B+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+B+\"*((?:-\\\\d)?\\\\d*)\"+B+\"*\\\\)|)(?=[^-]|$)\",\"i\")},X=/HTML$/i,J=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,ee=/^[^{]+\\{\\s*\\[native \\w/,te=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ne=/[+~]/,re=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+B+\"?|(\"+B+\")|.)\",\"ig\"),ie=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,oe=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},ae=ye(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{j.apply(t=D.call(b.childNodes),b.childNodes),t[b.childNodes.length].nodeType}catch(e){j={apply:t.length?function(e,t){M.apply(e,D.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,h=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&((e?e.ownerDocument||e:b)!==T&&E(e),e=e||T,C)){if(11!==f&&(u=te.exec(t)))if(i=u[1]){if(9===f){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(h&&(a=h.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return j.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return j.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!S[t+\" \"]&&(!v||!v.test(t))&&(1!==f||\"object\"!==e.nodeName.toLowerCase())){if(c=t,h=e,1===f&&G.test(t)){for((s=e.getAttribute(\"id\"))?s=s.replace(ie,oe):e.setAttribute(\"id\",s=R),o=(l=d(t)).length;o--;)l[o]=\"#\"+s+\" \"+ge(l[o]);c=l.join(\",\"),h=ne.test(t)&&me(e.parentNode)||e}try{return j.apply(n,h.querySelectorAll(c)),n}catch(e){S(t,!0)}finally{s===R&&e.removeAttribute(\"id\")}}}return m(t.replace(V,\"$1\"),e,n,r)}function ue(){var n=[];function r(e,t){return n.push(e+\" \")>_.cacheLength&&delete r[n.shift()],r[e+\" \"]=t}return r}function le(e){return e[R]=!0,e}function ce(e){var t=T.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function he(e,t){for(var n=e.split(\"|\"),r=n.length;r--;)_.attrHandle[n[r]]=t}function fe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function de(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!X.test(t||n&&n.nodeName||\"HTML\")},E=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:b;return r!==T&&9===r.nodeType&&r.documentElement&&(s=(T=r).documentElement,C=!a(T),b!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",i,!1):n.attachEvent&&n.attachEvent(\"onunload\",i)),p.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=ce(function(e){return s.appendChild(e).id=R,!T.getElementsByName||!T.getElementsByName(R).length}),p.getById?(_.filter.ID=function(e){var t=e.replace(re,h);return function(e){return e.getAttribute(\"id\")===t}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(_.filter.ID=function(e){var n=e.replace(re,h);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),_.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},_.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&C)return t.getElementsByClassName(e)},c=[],v=[],(p.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){s.appendChild(e).innerHTML=\"<a id='\"+R+\"'></a><select id='\"+R+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+B+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+B+\"*(?:value|\"+F+\")\"),e.querySelectorAll(\"[id~=\"+R+\"-]\").length||v.push(\"~=\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+R+\"+*\").length||v.push(\".#.+[+~]\")}),ce(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=T.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+B+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(p.matchesSelector=ee.test(g=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=g.call(e,\"*\"),g.call(e,\"[s!='']:x\"),c.push(\"!=\",q)}),v=v.length&&new RegExp(v.join(\"|\")),c=c.length&&new RegExp(c.join(\"|\")),t=ee.test(s.compareDocumentPosition),y=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===b&&y(b,e)?-1:t===T||t.ownerDocument===b&&y(b,t)?1:u?I(u,e)-I(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?I(u,e)-I(u,t):0;if(i===o)return fe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?fe(a[r],s[r]):a[r]===b?-1:s[r]===b?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&E(e),p.matchesSelector&&C&&!S[t+\" \"]&&(!c||!c.test(t))&&(!v||!v.test(t)))try{var n=g.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0<se(t,T,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==T&&E(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==T&&E(e);var n=_.attrHandle[t.toLowerCase()],r=n&&P.call(_.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:p.attributes||!C?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+\"\").replace(ie,oe)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!p.detectDuplicates,u=!p.sortStable&&e.slice(0),e.sort(N),l){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(_=se.selectors={cacheLength:50,createPseudo:le,match:$,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,h),e[3]=(e[3]||e[4]||e[5]||\"\").replace(re,h),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return $.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&Q.test(n)&&(t=d(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,h).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=x[e+\" \"];return t||(t=new RegExp(\"(^|\"+B+\")\"+e+\"(\"+B+\"|$)\"))&&x(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(H,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(d,e,t,m,v){var g=\"nth\"!==d.slice(0,3),y=\"last\"!==d.slice(-4),b=\"of-type\"===e;return 1===m&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=g!=y?\"nextSibling\":\"previousSibling\",c=e.parentNode,h=b&&e.nodeName.toLowerCase(),f=!n&&!b,p=!1;if(c){if(g){for(;l;){for(a=e;a=a[l];)if(b?a.nodeName.toLowerCase()===h:1===a.nodeType)return!1;u=l=\"only\"===d&&!u&&\"nextSibling\"}return!0}if(u=[y?c.firstChild:c.lastChild],y&&f){for(p=(s=(r=(i=(o=(a=c)[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];a=++s&&a&&a[l]||(p=s=0)||u.pop();)if(1===a.nodeType&&++p&&a===e){i[d]=[k,s,p];break}}else if(f&&(p=s=(r=(i=(o=(a=e)[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]||[])[0]===k&&r[1]),!1===p)for(;(a=++s&&a&&a[l]||(p=s=0)||u.pop())&&((b?a.nodeName.toLowerCase()!==h:1!==a.nodeType)||!++p||(f&&((i=(o=a[R]||(a[R]={}))[a.uniqueID]||(o[a.uniqueID]={}))[d]=[k,p]),a!==e)););return(p-=v)===m||p%m==0&&0<=p/m}}},PSEUDO:function(e,o){var t,a=_.pseudos[e]||_.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return a[R]?a(o):1<a.length?(t=[e,e,\"\",o],_.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){for(var n,r=a(e,o),i=r.length;i--;)e[n=I(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(V,\"$1\"));return s[R]?le(function(e,t,n,r){for(var i,o=s(e,null,r,[]),a=e.length;a--;)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(re,h),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return K.test(n||\"\")||se.error(\"unsupported lang: \"+n),n=n.replace(re,h).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===s},focus:function(e){return e===T.activeElement&&(!T.hasFocus||T.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:de(function(){return[0]}),last:de(function(e,t){return[t-1]}),eq:de(function(e,t,n){return[n<0?n+t:n]}),even:de(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:de(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:de(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:de(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=_.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[e]=function(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}(e);for(e in{submit:!0,reset:!0})_.pseudos[e]=function(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}(e);function ve(){}function ge(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function ye(s,e,t){var u=e.dir,l=e.next,c=l||u,h=t&&\"parentNode\"===c,f=r++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||h)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,f];if(n){for(;e=e[u];)if((1===e.nodeType||h)&&s(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||h)if(i=(o=e[R]||(e[R]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===f)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function be(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function _e(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function we(p,d,m,v,g,e){return v&&!v[R]&&(v=we(v)),g&&!g[R]&&(g=we(g,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(d||\"*\",n.nodeType?[n]:n,[]),h=!p||!e&&d?c:_e(c,s,p,n,r),f=m?g||(e?p:l||v)?[]:t:h;if(m&&m(h,f,n,r),v)for(i=_e(f,u),v(i,[],n,r),o=i.length;o--;)(a=i[o])&&(f[u[o]]=!(h[u[o]]=a));if(e){if(g||p){if(g){for(i=[],o=f.length;o--;)(a=f[o])&&i.push(h[o]=a);g(null,f=[],i,r)}for(o=f.length;o--;)(a=f[o])&&-1<(i=g?I(e,a):s[o])&&(e[i]=!(t[i]=a))}}else f=_e(f===t?f.splice(l,f.length):f),g?g(null,t,f,r):j.apply(t,f)})}function Ee(v,g){function e(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],h=[],f=w,p=e||b&&_.find.TAG(\"*\",i),d=k+=null==f?1:Math.random()||.1,m=p.length;for(i&&(w=t===T||t||i);l!==m&&null!=(o=p[l]);l++){if(b&&o){for(a=0,t||o.ownerDocument===T||(E(o),n=!C);s=v[a++];)if(s(o,t||T,n)){r.push(o);break}i&&(k=d)}y&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,y&&l!==u){for(a=0;s=g[a++];)s(c,h,t,n);if(e){if(0<u)for(;l--;)c[l]||h[l]||(h[l]=L.call(r));h=_e(h)}j.apply(r,h),i&&!e&&0<h.length&&1<u+g.length&&se.uniqueSort(r)}return i&&(k=d,w=f),c}var y=0<g.length,b=0<v.length;return y?le(e):e}return ve.prototype=_.filters=_.pseudos,_.setFilters=new ve,d=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=A[e+\" \"];if(l)return t?0:l.slice(0);for(a=e,s=[],u=_.preFilter;a;){for(o in n&&!(r=W.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=Y.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(V,\" \")}),a=a.slice(n.length)),_.filter)!(r=$[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):A(e,s).slice(0)},f=se.compile=function(e,t){var n,r=[],i=[],o=O[e+\" \"];if(!o){for(n=(t=t||d(e)).length;n--;)(o=function e(t){for(var i,n,r,o=t.length,a=_.relative[t[0].type],s=a||_.relative[\" \"],u=a?1:0,l=ye(function(e){return e===i},s,!0),c=ye(function(e){return-1<I(i,e)},s,!0),h=[function(e,t,n){var r=!a&&(n||t!==w)||((i=t).nodeType?l:c)(e,t,n);return i=null,r}];u<o;u++)if(n=_.relative[t[u].type])h=[ye(be(h),n)];else{if((n=_.filter[t[u].type].apply(null,t[u].matches))[R]){for(r=++u;r<o&&!_.relative[t[r].type];r++);return we(1<u&&be(h),1<u&&ge(t.slice(0,u-1).concat({value:\" \"===t[u-2].type?\"*\":\"\"})).replace(V,\"$1\"),n,u<r&&e(t.slice(u,r)),r<o&&e(t=t.slice(r)),r<o&&ge(t))}h.push(n)}return be(h)}(t[n]))[R]?r.push(o):i.push(o);(o=O(e,Ee(i,r))).selector=e}return o},m=se.select=function(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&d(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&C&&_.relative[o[1].type]){if(!(t=(_.find.ID(a.matches[0].replace(re,h),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=$.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((u=_.find[s])&&(r=u(a.matches[0].replace(re,h),ne.test(o[0].type)&&me(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&ge(o)))return j.apply(n,r),n;break}}return(l||f(e,c))(r,t,!C,n,!t||ne.test(e)&&me(t.parentNode)||t),n},p.sortStable=R.split(\"\").sort(N).join(\"\")===R,p.detectDuplicates=!!l,E(),p.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(T.createElement(\"fieldset\"))}),ce(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||he(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),p.attributes&&ce(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||he(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||he(F,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(T);R.find=d,R.expr=d.selectors,R.expr[\":\"]=R.expr.pseudos,R.uniqueSort=R.unique=d.uniqueSort,R.text=d.getText,R.isXMLDoc=d.isXML,R.contains=d.contains,R.escapeSelector=d.escape;function E(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&R(e).is(n))break;r.push(e)}return r}function k(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}var x=R.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var O=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function S(e,n,r){return b(n)?R.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?R.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?R.grep(e,function(e){return-1<i.call(n,e)!==r}):R.filter(n,e,r)}R.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?R.find.matchesSelector(r,e)?[r]:[]:R.find.matches(e,R.grep(t,function(e){return 1===e.nodeType}))},R.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(R(e).filter(function(){for(t=0;t<r;t++)if(R.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)R.find(e,i[t],n);return 1<r?R.uniqueSort(n):n},filter:function(e){return this.pushStack(S(this,e||[],!1))},not:function(e){return this.pushStack(S(this,e||[],!0))},is:function(e){return!!S(this,\"string\"==typeof e&&x.test(e)?R(e):e||[],!1).length}});var N,P=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(R.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||N,\"string\"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(R):R.makeArray(e,this);if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:P.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof R?t[0]:t,R.merge(this,R.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),O.test(r[1])&&R.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=R.fn,N=R(C);var L=/^(?:parents|prev(?:Until|All))/,M={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}R.fn.extend({has:function(e){var t=R(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(R.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&R(e);if(!x.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&R.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?R.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?i.call(R(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(R.uniqueSort(R.merge(this.get(),R(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),R.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return E(e,\"parentNode\")},parentsUntil:function(e,t,n){return E(e,\"parentNode\",n)},next:function(e){return j(e,\"nextSibling\")},prev:function(e){return j(e,\"previousSibling\")},nextAll:function(e){return E(e,\"nextSibling\")},prevAll:function(e){return E(e,\"previousSibling\")},nextUntil:function(e,t,n){return E(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return E(e,\"previousSibling\",n)},siblings:function(e){return k((e.parentNode||{}).firstChild,e)},children:function(e){return k(e.firstChild)},contents:function(e){return void 0!==e.contentDocument?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),R.merge([],e.childNodes))}},function(r,i){R.fn[r]=function(e,t){var n=R.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=R.filter(t,n)),1<this.length&&(M[r]||R.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\\x20\\t\\r\\n\\f]+/g;function I(e){return e}function F(e){throw e}function B(e,t,n,r){var i;try{e&&b(i=e.promise)?i.call(e).done(t).fail(n):e&&b(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}R.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},R.each(e.match(D)||[],function(e,t){n[t]=!0}),n):R.extend({},r);function i(){for(s=s||r.once,a=o=!0;l.length;c=-1)for(t=l.shift();++c<u.length;)!1===u[c].apply(t[0],t[1])&&r.stopOnFalse&&(c=u.length,t=!1);r.memory||(t=!1),o=!1,s&&(u=t?[]:\"\")}var o,t,a,s,u=[],l=[],c=-1,h={add:function(){return u&&(t&&!o&&(c=u.length-1,l.push(t)),function n(e){R.each(e,function(e,t){b(t)?r.unique&&h.has(t)||u.push(t):t&&t.length&&\"string\"!==w(t)&&n(t)})}(arguments),t&&!o&&i()),this},remove:function(){return R.each(arguments,function(e,t){for(var n;-1<(n=R.inArray(t,u,n));)u.splice(n,1),n<=c&&c--}),this},has:function(e){return e?-1<R.inArray(e,u):0<u.length},empty:function(){return u=u&&[],this},disable:function(){return s=l=[],u=t=\"\",this},disabled:function(){return!u},lock:function(){return s=l=[],t||o||(u=t=\"\"),this},locked:function(){return!!s},fireWith:function(e,t){return s||(t=[e,(t=t||[]).slice?t.slice():t],l.push(t),o||i()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!a}};return h},R.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",R.Callbacks(\"memory\"),R.Callbacks(\"memory\"),2],[\"resolve\",\"done\",R.Callbacks(\"once memory\"),R.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",R.Callbacks(\"once memory\"),R.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return a.then(null,e)},pipe:function(){var i=arguments;return R.Deferred(function(r){R.each(o,function(e,t){var n=b(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&b(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){function e(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,b(t)?s?t.call(e,l(u,o,I,s),l(u,o,F,s)):(u++,t.call(e,l(u,o,I,s),l(u,o,F,s),l(u,o,I,o.notifyWith))):(a!==I&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}}var n=this,r=arguments,t=s?e:function(){try{e()}catch(e){R.Deferred.exceptionHook&&R.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==F&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(R.Deferred.getStackHook&&(t.stackTrace=R.Deferred.getStackHook()),T.setTimeout(t))}}return R.Deferred(function(e){o[0][3].add(l(0,e,b(r)?r:I,e.notifyWith)),o[1][3].add(l(0,e,b(t)?t:I)),o[2][3].add(l(0,e,b(n)?n:F))}).promise()},promise:function(e){return null!=e?R.extend(e,a):a}},s={};return R.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){function t(t){return function(e){i[t]=this,o[t]=1<arguments.length?s.call(arguments):e,--n||a.resolveWith(i,o)}}var n=arguments.length,r=n,i=Array(r),o=s.call(arguments),a=R.Deferred();if(n<=1&&(B(e,a.done(t(r)).resolve,a.reject,!n),\"pending\"===a.state()||b(o[r]&&o[r].then)))return a.then();for(;r--;)B(o[r],t(r),a.reject);return a.promise()}});var U=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;R.Deferred.exceptionHook=function(e,t){T.console&&T.console.warn&&e&&U.test(e.name)&&T.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},R.readyException=function(e){T.setTimeout(function(){throw e})};var z=R.Deferred();function q(){C.removeEventListener(\"DOMContentLoaded\",q),T.removeEventListener(\"load\",q),R.ready()}R.fn.ready=function(e){return z.then(e).catch(function(e){R.readyException(e)}),this},R.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--R.readyWait:R.isReady)||(R.isReady=!0)!==e&&0<--R.readyWait||z.resolveWith(C,[R])}}),R.ready.then=z.then,\"complete\"===C.readyState||\"loading\"!==C.readyState&&!C.documentElement.doScroll?T.setTimeout(R.ready):(C.addEventListener(\"DOMContentLoaded\",q),T.addEventListener(\"load\",q));var H=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===w(n))for(s in i=!0,n)H(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,b(r)||(a=!0),l&&(t=a?(t.call(e,r),null):(l=t,function(e,t,n){return l.call(R(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},V=/^-ms-/,W=/-([a-z])/g;function Y(e,t){return t.toUpperCase()}function G(e){return e.replace(V,\"ms-\").replace(W,Y)}function Q(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType}function K(){this.expando=R.expando+K.uid++}K.uid=1,K.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Q(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(D)||[]).length;for(;n--;)delete r[t[n]]}void 0!==t&&!R.isEmptyObject(r)||(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!R.isEmptyObject(t)}};var $=new K,X=new K,J=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(Z,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:J.test(i)?JSON.parse(i):i)}catch(e){}X.set(e,t,n)}else n=void 0;return n}R.extend({hasData:function(e){return X.hasData(e)||$.hasData(e)},data:function(e,t,n){return X.access(e,t,n)},removeData:function(e,t){X.remove(e,t)},_data:function(e,t,n){return $.access(e,t,n)},_removeData:function(e,t){$.remove(e,t)}}),R.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0!==n)return\"object\"==typeof n?this.each(function(){X.set(this,n)}):H(this,function(e){var t;return o&&void 0===e?void 0!==(t=X.get(o,n))||void 0!==(t=ee(o,n))?t:void 0:void this.each(function(){X.set(this,n,e)})},null,e,1<arguments.length,null,!0);if(this.length&&(i=X.get(o),1===o.nodeType&&!$.get(o,\"hasDataAttrs\"))){for(t=a.length;t--;)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=G(r.slice(5)),ee(o,r,i[r]));$.set(o,\"hasDataAttrs\",!0)}return i},removeData:function(e){return this.each(function(){X.remove(this,e)})}}),R.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=$.get(e,t),n&&(!r||Array.isArray(n)?r=$.access(e,t,R.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=R.queue(e,t),r=n.length,i=n.shift(),o=R._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){R.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return $.get(e,n)||$.access(e,n,{empty:R.Callbacks(\"once memory\").add(function(){$.remove(e,[t+\"queue\",n])})})}}),R.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?R.queue(this[0],t):void 0===n?this:this.each(function(){var e=R.queue(this,t,n);R._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&R.dequeue(this,t)})},dequeue:function(e){return this.each(function(){R.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){function n(){--i||o.resolveWith(a,[a])}var r,i=1,o=R.Deferred(),a=this,s=this.length;for(\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";s--;)(r=$.get(a[s],e+\"queueHooks\"))&&r.empty&&(i++,r.empty.add(n));return n(),o.promise(t)}});var te=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,ne=new RegExp(\"^(?:([+-])=|)(\"+te+\")([a-z%]*)$\",\"i\"),re=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ie=C.documentElement,oe=function(e){return R.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return R.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});function se(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i}var ue=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&oe(e)&&\"none\"===R.css(e,\"display\")};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return R.css(e,t,\"\")},u=s(),l=n&&n[3]||(R.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(R.cssNumber[t]||\"px\"!==l&&+u)&&ne.exec(R.css(e,t));if(c&&c[3]!==l){for(u/=2,l=l||c[3],c=+u||1;a--;)R.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,R.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function he(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,h=e.length;c<h;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=$.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ue(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=R.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ce[s]=u)))):\"none\"!==n&&(l[c]=\"none\",$.set(r,\"display\",n)));for(c=0;c<h;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}R.fn.extend({show:function(){return he(this,!0)},hide:function(){return he(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ue(this)?R(this).show():R(this).hide()})}});var fe=/^(?:checkbox|radio)$/i,pe=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,de=/^$|^module$|\\/(?:java|ecma)script/i,me={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function ve(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[];return void 0===t||t&&A(e,t)?R.merge([e],n):n}function ge(e,t){for(var n=0,r=e.length;n<r;n++)$.set(e[n],\"globalEval\",!t||$.get(t[n],\"globalEval\"))}me.optgroup=me.option,me.tbody=me.tfoot=me.colgroup=me.caption=me.thead,me.th=me.td;var ye,be,_e=/<|&#?\\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,h=t.createDocumentFragment(),f=[],p=0,d=e.length;p<d;p++)if((o=e[p])||0===o)if(\"object\"===w(o))R.merge(f,o.nodeType?[o]:o);else if(_e.test(o)){for(a=a||h.appendChild(t.createElement(\"div\")),s=(pe.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=me[s]||me._default,a.innerHTML=u[1]+R.htmlPrefilter(o)+u[2],c=u[0];c--;)a=a.lastChild;R.merge(f,a.childNodes),(a=h.firstChild).textContent=\"\"}else f.push(t.createTextNode(o));for(h.textContent=\"\",p=0;o=f[p++];)if(r&&-1<R.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(h.appendChild(o),\"script\"),l&&ge(a),n)for(c=0;o=a[c++];)de.test(o.type||\"\")&&n.push(o);return h}ye=C.createDocumentFragment().appendChild(C.createElement(\"div\")),(be=C.createElement(\"input\")).setAttribute(\"type\",\"radio\"),be.setAttribute(\"checked\",\"checked\"),be.setAttribute(\"name\",\"t\"),ye.appendChild(be),y.checkClone=ye.cloneNode(!0).cloneNode(!0).lastChild.checked,ye.innerHTML=\"<textarea>x</textarea>\",y.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var Ee=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\\.(.+)|)/;function Re(){return!0}function ke(){return!1}function xe(e,t){return e===function(){try{return C.activeElement}catch(e){}}()==(\"focus\"===t)}function Ae(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return R().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=R.guid++)),e.each(function(){R.event.add(this,t,i,r,n)})}function Oe(e,i,o){o?($.set(e,i,!1),R.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=$.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(R.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),$.set(this,i,r),t=o(this,i),this[i](),r!==(n=$.get(this,i))||t?$.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&($.set(this,i,{value:R.event.trigger(R.extend(r[0],R.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===$.get(e,i)&&R.event.add(e,i,Re)}R.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,h,f,p,d,m,v=$.get(t);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&R.find.matchesSelector(ie,i),n.guid||(n.guid=R.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return void 0!==R&&R.event.triggered!==e.type?R.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(D)||[\"\"]).length;l--;)p=m=(s=Ce.exec(e[l])||[])[1],d=(s[2]||\"\").split(\".\").sort(),p&&(h=R.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,h=R.event.special[p]||{},c=R.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&R.expr.match.needsContext.test(i),namespace:d.join(\".\")},o),(f=u[p])||((f=u[p]=[]).delegateCount=0,h.setup&&!1!==h.setup.call(t,r,d,a)||t.addEventListener&&t.addEventListener(p,a)),h.add&&(h.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,c):f.push(c),R.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,h,f,p,d,m,v=$.hasData(e)&&$.get(e);if(v&&(u=v.events)){for(l=(t=(t||\"\").match(D)||[\"\"]).length;l--;)if(p=m=(s=Ce.exec(t[l])||[])[1],d=(s[2]||\"\").split(\".\").sort(),p){for(h=R.event.special[p]||{},f=u[p=(r?h.delegateType:h.bindType)||p]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+d.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=f.length;o--;)c=f[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,h.remove&&h.remove.call(e,c));a&&!f.length&&(h.teardown&&!1!==h.teardown.call(e,d,v.handle)||R.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)R.event.remove(e,p+t[l],n,r,!0);R.isEmptyObject(u)&&$.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=R.event.fix(e),u=new Array(arguments.length),l=($.get(this,\"events\")||{})[s.type]||[],c=R.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){for(a=R.event.handlers.call(this,s,l),t=0;(i=a[t++])&&!s.isPropagationStopped();)for(s.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((R.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?-1<R(i,this).index(l):R.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(R.Event.prototype,t,{enumerable:!0,configurable:!0,get:b(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[R.expando]?e:new R.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return fe.test(t.type)&&t.click&&A(t,\"input\")&&Oe(t,\"click\",Re),!1},trigger:function(e){var t=this||e;return fe.test(t.type)&&t.click&&A(t,\"input\")&&Oe(t,\"click\"),!0},_default:function(e){var t=e.target;return fe.test(t.type)&&t.click&&A(t,\"input\")&&$.get(t,\"click\")||A(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},R.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},R.Event=function(e,t){if(!(this instanceof R.Event))return new R.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Re:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&R.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[R.expando]=!0},R.Event.prototype={constructor:R.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Re,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Re,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Re,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},R.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Ee.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},R.event.addProp),R.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){R.event.special[e]={setup:function(){return Oe(this,e,xe),!1},trigger:function(){return Oe(this,e),!0},delegateType:t}}),R.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){R.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||R.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),R.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,R(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"!=typeof e)return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){R.event.remove(this,e,n,t)});for(i in e)this.off(i,t,e[i]);return this}});var Se=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Ne=/<script|<style|<link/i,Pe=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Le=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Me(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&R(e).children(\"tbody\")[0]||e}function je(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function De(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Ie(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if($.hasData(e)&&(o=$.access(e),a=$.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)R.event.add(t,i,l[i][n]);X.hasData(e)&&(s=X.access(e),u=R.extend({},s),X.set(t,u))}}function Fe(n,r,i,o){r=v.apply([],r);var e,t,a,s,u,l,c=0,h=n.length,f=h-1,p=r[0],d=b(p);if(d||1<h&&\"string\"==typeof p&&!y.checkClone&&Pe.test(p))return n.each(function(e){var t=n.eq(e);d&&(r[0]=p.call(this,e,t.html())),Fe(t,r,i,o)});if(h&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=R.map(ve(e,\"script\"),je)).length;c<h;c++)u=e,c!==f&&(u=R.clone(u,!0,!0),s&&R.merge(a,ve(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,R.map(a,De),c=0;c<s;c++)u=a[c],de.test(u.type||\"\")&&!$.access(u,\"globalEval\")&&R.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?R._evalUrl&&!u.noModule&&R._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")}):_(u.textContent.replace(Le,\"\"),u,l))}return n}function Be(e,t,n){for(var r,i=t?R.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||R.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ge(ve(r,\"script\")),r.parentNode.removeChild(r));return e}R.extend({htmlPrefilter:function(e){return e.replace(Se,\"<$1></$2>\")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),h=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||R.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],\"input\"===(l=u.nodeName.toLowerCase())&&fe.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Ie(o[r],a[r]);else Ie(e,c);return 0<(a=ve(c,\"script\")).length&&ge(a,!h&&ve(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=R.event.special,o=0;void 0!==(n=e[o]);o++)if(Q(n)){if(t=n[$.expando]){if(t.events)for(r in t.events)i[r]?R.event.remove(n,r):R.removeEvent(n,r,t.handle);n[$.expando]=void 0}n[X.expando]&&(n[X.expando]=void 0)}}}),R.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return H(this,function(e){return void 0===e?R.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Fe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)})},prepend:function(){return Fe(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Me(this,e)).insertBefore(e,t.firstChild)})},before:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Fe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(R.cleanData(ve(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return R.clone(this,e,t)})},html:function(e){return H(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ne.test(e)&&!me[(pe.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=R.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(R.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Fe(this,arguments,function(e){var t=this.parentNode;R.inArray(this,n)<0&&(R.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),R.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){R.fn[e]=function(e){for(var t,n=[],r=R(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),R(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Ue,ze,qe,He,Ve,We,Ye,Ge=new RegExp(\"^(\"+te+\")(?!px)[a-z%]+$\",\"i\"),Qe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=T),t.getComputedStyle(e)},Ke=new RegExp(re.join(\"|\"),\"i\");function $e(){var e;Ye&&(We.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",Ye.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",ie.appendChild(We).appendChild(Ye),e=T.getComputedStyle(Ye),Ue=\"1%\"!==e.top,Ve=12===Xe(e.marginLeft),Ye.style.right=\"60%\",He=36===Xe(e.right),ze=36===Xe(e.width),Ye.style.position=\"absolute\",qe=12===Xe(Ye.offsetWidth/3),ie.removeChild(We),Ye=null)}function Xe(e){return Math.round(parseFloat(e))}function Je(e,t,n){var r,i,o,a,s=e.style;return(n=n||Qe(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=R.style(e,t)),!y.pixelBoxStyles()&&Ge.test(a)&&Ke.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}We=C.createElement(\"div\"),(Ye=C.createElement(\"div\")).style&&(Ye.style.backgroundClip=\"content-box\",Ye.cloneNode(!0).style.backgroundClip=\"\",y.clearCloneStyle=\"content-box\"===Ye.style.backgroundClip,R.extend(y,{boxSizingReliable:function(){return $e(),ze},pixelBoxStyles:function(){return $e(),He},pixelPosition:function(){return $e(),Ue},reliableMarginLeft:function(){return $e(),Ve},scrollboxSize:function(){return $e(),qe}}));var et=[\"Webkit\",\"Moz\",\"ms\"],tt=C.createElement(\"div\").style,nt={};function rt(e){var t=R.cssProps[e]||nt[e];return t||(e in tt?e:nt[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=et.length;n--;)if((e=et[n]+t)in tt)return e}(e)||e)}var it=/^(none|table(?!-c[ea]).+)/,ot=/^--/,at={position:\"absolute\",visibility:\"hidden\",display:\"block\"},st={letterSpacing:\"0\",fontWeight:\"400\"};function ut(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function lt(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=R.css(e,n+re[a],!0,i)),r?(\"content\"===n&&(u-=R.css(e,\"padding\"+re[a],!0,i)),\"margin\"!==n&&(u-=R.css(e,\"border\"+re[a]+\"Width\",!0,i))):(u+=R.css(e,\"padding\"+re[a],!0,i),\"padding\"!==n?u+=R.css(e,\"border\"+re[a]+\"Width\",!0,i):s+=R.css(e,\"border\"+re[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function ct(e,t,n){var r=Qe(e),i=(!y.boxSizingReliable()||n)&&\"border-box\"===R.css(e,\"boxSizing\",!1,r),o=i,a=Je(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Ge.test(a)){if(!n)return a;a=\"auto\"}return(!y.boxSizingReliable()&&i||\"auto\"===a||!parseFloat(a)&&\"inline\"===R.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===R.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function ht(e,t,n,r,i){return new ht.prototype.init(e,t,n,r,i)}R.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=ot.test(t),l=e.style;if(u||(t=rt(s)),a=R.cssHooks[t]||R.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(R.cssNumber[s]?\"\":\"px\")),y.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return ot.test(t)||(t=rt(s)),(a=R.cssHooks[t]||R.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Je(e,t,r)),\"normal\"===i&&t in st&&(i=st[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),R.each([\"height\",\"width\"],function(e,u){R.cssHooks[u]={get:function(e,t,n){if(t)return!it.test(R.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,u,n):se(e,at,function(){return ct(e,u,n)})},set:function(e,t,n){var r,i=Qe(e),o=!y.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===R.css(e,\"boxSizing\",!1,i),s=n?lt(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-lt(e,u,\"border\",!1,i)-.5)),s&&(r=ne.exec(t))&&\"px\"!==(r[3]||\"px\")&&(e.style[u]=t,t=R.css(e,u)),ut(0,t,s)}}}),R.cssHooks.marginLeft=Ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Je(e,\"marginLeft\"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),R.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){R.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(R.cssHooks[i+o].set=ut)}),R.fn.extend({css:function(e,t){return H(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Qe(e),i=t.length;a<i;a++)o[t[a]]=R.css(e,t[a],!1,r);return o}return void 0!==n?R.style(e,t,n):R.css(e,t)},e,t,1<arguments.length)}}),(R.Tween=ht).prototype={constructor:ht,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||R.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(R.cssNumber[n]?\"\":\"px\")},cur:function(){var e=ht.propHooks[this.prop];return e&&e.get?e.get(this):ht.propHooks._default.get(this)},run:function(e){var t,n=ht.propHooks[this.prop];return this.options.duration?this.pos=t=R.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ht.propHooks._default.set(this),this}},ht.prototype.init.prototype=ht.prototype,ht.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=R.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){R.fx.step[e.prop]?R.fx.step[e.prop](e):1!==e.elem.nodeType||!R.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:R.style(e.elem,e.prop,e.now+e.unit)}}},ht.propHooks.scrollTop=ht.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},R.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},R.fx=ht.prototype.init,R.fx.step={};var ft,pt,dt,mt,vt=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function yt(){pt&&(!1===C.hidden&&T.requestAnimationFrame?T.requestAnimationFrame(yt):T.setTimeout(yt,R.fx.interval),R.fx.tick())}function bt(){return T.setTimeout(function(){ft=void 0}),ft=Date.now()}function _t(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=re[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function wt(e,t,n){for(var r,i=(Et.tweeners[t]||[]).concat(Et.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function Et(o,e,t){var n,a,r=0,i=Et.prefilters.length,s=R.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=ft||bt(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:R.extend({},e),opts:R.extend(!0,{specialEasing:{},easing:R.easing._default},t),originalProperties:e,originalOptions:t,startTime:ft||bt(),duration:t.duration,tweens:[],createTween:function(e,t){var n=R.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=G(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=R.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=Et.prefilters[r].call(l,o,c,l.opts))return b(n.stop)&&(R._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return R.map(c,wt,l),b(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),R.fx.timer(R.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}R.Animation=R.extend(Et,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){for(var n,r=0,i=(e=b(e)?(t=e,[\"*\"]):e.match(D)).length;r<i;r++)n=e[r],Et.tweeners[n]=Et.tweeners[n]||[],Et.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,h=\"width\"in t||\"height\"in t,f=this,p={},d=e.style,m=e.nodeType&&ue(e),v=$.get(e,\"fxshow\");for(r in n.queue||(null==(a=R._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,R.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],vt.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(m?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;m=!0}p[r]=v&&v[r]||R.style(e,r)}if((u=!R.isEmptyObject(t))||!R.isEmptyObject(p))for(r in h&&1===e.nodeType&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],null==(l=v&&v.display)&&(l=$.get(e,\"display\")),\"none\"===(c=R.css(e,\"display\"))&&(l?c=l:(he([e],!0),l=e.style.display||l,c=R.css(e,\"display\"),he([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===R.css(e,\"float\")&&(u||(f.done(function(){d.display=l}),null==l&&(c=d.display,l=\"none\"===c?\"\":c)),d.display=\"inline-block\")),n.overflow&&(d.overflow=\"hidden\",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]})),u=!1,p)u||(v?\"hidden\"in v&&(m=v.hidden):v=$.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!m),m&&he([e],!0),f.done(function(){for(r in m||he([e]),$.remove(e,\"fxshow\"),p)R.style(e,r,p[r])})),u=wt(m?v[r]:0,r,f),r in v||(v[r]=u.start,m&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?Et.prefilters.unshift(e):Et.prefilters.push(e)}}),R.speed=function(e,t,n){var r=e&&\"object\"==typeof e?R.extend({},e):{complete:n||!n&&t||b(e)&&e,duration:e,easing:n&&t||t&&!b(t)&&t};return R.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in R.fx.speeds?r.duration=R.fx.speeds[r.duration]:r.duration=R.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){b(r.old)&&r.old.call(this),r.queue&&R.dequeue(this,r.queue)},r},R.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ue).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){function i(){var e=Et(this,R.extend({},t),a);(o||$.get(this,\"finish\"))&&e.stop(!0)}var o=R.isEmptyObject(t),a=R.speed(e,n,r);return i.finish=i,o||!1===a.queue?this.each(i):this.queue(a.queue,i)},stop:function(i,e,o){function a(e){var t=e.stop;delete e.stop,t(o)}return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=R.timers,r=$.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&gt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||R.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=$.get(this),n=t[a+\"queue\"],r=t[a+\"queueHooks\"],i=R.timers,o=n?n.length:0;for(t.finish=!0,R.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),R.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=R.fn[r];R.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(_t(r,!0),e,t,n)}}),R.each({slideDown:_t(\"show\"),slideUp:_t(\"hide\"),slideToggle:_t(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){R.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),R.timers=[],R.fx.tick=function(){var e,t=0,n=R.timers;for(ft=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||R.fx.stop(),ft=void 0},R.fx.timer=function(e){R.timers.push(e),R.fx.start()},R.fx.interval=13,R.fx.start=function(){pt||(pt=!0,yt())},R.fx.stop=function(){pt=null},R.fx.speeds={slow:600,fast:200,_default:400},R.fn.delay=function(r,e){return r=R.fx&&R.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=T.setTimeout(e,r);t.stop=function(){T.clearTimeout(n)}})},dt=C.createElement(\"input\"),mt=C.createElement(\"select\").appendChild(C.createElement(\"option\")),dt.type=\"checkbox\",y.checkOn=\"\"!==dt.value,y.optSelected=mt.selected,(dt=C.createElement(\"input\")).value=\"t\",dt.type=\"radio\",y.radioValue=\"t\"===dt.value;var Tt,Ct=R.expr.attrHandle;R.fn.extend({attr:function(e,t){return H(this,R.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){R.removeAttr(this,e)})}}),R.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?R.prop(e,t,n):(1===o&&R.isXMLDoc(e)||(i=R.attrHooks[t.toLowerCase()]||(R.expr.match.bool.test(t)?Tt:void 0)),void 0!==n?null===n?void R.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):!(i&&\"get\"in i&&null!==(r=i.get(e,t)))&&null==(r=R.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),Tt={set:function(e,t,n){return!1===t?R.removeAttr(e,n):e.setAttribute(n,n),n}},R.each(R.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=Ct[t]||R.find.attr;Ct[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=Ct[o],Ct[o]=r,r=null!=a(e,t,n)?o:null,Ct[o]=i),r}});var Rt=/^(?:input|select|textarea|button)$/i,kt=/^(?:a|area)$/i;function xt(e){return(e.match(D)||[]).join(\" \")}function At(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function Ot(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(D)||[]}R.fn.extend({prop:function(e,t){return H(this,R.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[R.propFix[e]||e]})}}),R.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&R.isXMLDoc(e)||(t=R.propFix[t]||t,i=R.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=R.find.attr(e,\"tabindex\");return t?parseInt(t,10):Rt.test(e.nodeName)||kt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),y.optSelected||(R.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),R.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){R.propFix[this.toLowerCase()]=this}),R.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(b(t))return this.each(function(e){R(this).addClass(t.call(this,e,At(this)))});if((e=Ot(t)).length)for(;n=this[u++];)if(i=At(n),r=1===n.nodeType&&\" \"+xt(i)+\" \"){for(a=0;o=e[a++];)r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=xt(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(b(t))return this.each(function(e){R(this).removeClass(t.call(this,e,At(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((e=Ot(t)).length)for(;n=this[u++];)if(i=At(n),r=1===n.nodeType&&\" \"+xt(i)+\" \"){for(a=0;o=e[a++];)for(;-1<r.indexOf(\" \"+o+\" \");)r=r.replace(\" \"+o+\" \",\" \");i!==(s=xt(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(i,t){var o=typeof i,a=\"string\"==o||Array.isArray(i);return\"boolean\"==typeof t&&a?t?this.addClass(i):this.removeClass(i):b(i)?this.each(function(e){R(this).toggleClass(i.call(this,e,At(this),t),t)}):this.each(function(){var e,t,n,r;if(a)for(t=0,n=R(this),r=Ot(i);e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else void 0!==i&&\"boolean\"!=o||((e=At(this))&&$.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",!e&&!1!==i&&$.get(this,\"__className__\")||\"\"))})},hasClass:function(e){for(var t,n=0,r=\" \"+e+\" \";t=this[n++];)if(1===t.nodeType&&-1<(\" \"+xt(At(t))+\" \").indexOf(r))return!0;return!1}});var St=/\\r/g;R.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=b(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,R(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=R.map(t,function(e){return null==e?\"\":e+\"\"})),(r=R.valHooks[this.type]||R.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=R.valHooks[t.type]||R.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(St,\"\"):null==e?\"\":e:void 0}}),R.extend({valHooks:{option:{get:function(e){var t=R.find.attr(e,\"value\");return null!=t?t:xt(R.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o=\"select-one\"===e.type,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u<s;u++)if(((n=r[u]).selected||u===i)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,\"optgroup\"))){if(t=R(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=R.makeArray(t),a=i.length;a--;)((r=i[a]).selected=-1<R.inArray(R.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),R.each([\"radio\",\"checkbox\"],function(){R.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<R.inArray(R(e).val(),t)}},y.checkOn||(R.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),y.focusin=\"onfocusin\"in T;function Nt(e){e.stopPropagation()}var Pt=/^(?:focusinfocus|focusoutblur)$/;R.extend(R.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,h=[n||C],f=g.call(e,\"type\")?e.type:e,p=g.call(e,\"namespace\")?e.namespace.split(\".\"):[],d=c=o=n=n||C;if(3!==n.nodeType&&8!==n.nodeType&&!Pt.test(f+R.event.triggered)&&(-1<f.indexOf(\".\")&&(f=(p=f.split(\".\")).shift(),p.sort()),s=f.indexOf(\":\")<0&&\"on\"+f,(e=e[R.expando]?e:new R.Event(f,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=p.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:R.makeArray(t,[e]),l=R.event.special[f]||{},r||!l.trigger||!1!==l.trigger.apply(n,t))){if(!r&&!l.noBubble&&!m(n)){for(a=l.delegateType||f,Pt.test(a+f)||(d=d.parentNode);d;d=d.parentNode)h.push(d),o=d;o===(n.ownerDocument||C)&&h.push(o.defaultView||o.parentWindow||T)}for(i=0;(d=h[i++])&&!e.isPropagationStopped();)c=d,e.type=1<i?a:l.bindType||f,(u=($.get(d,\"events\")||{})[e.type]&&$.get(d,\"handle\"))&&u.apply(d,t),(u=s&&d[s])&&u.apply&&Q(d)&&(e.result=u.apply(d,t),!1===e.result&&e.preventDefault());return e.type=f,r||e.isDefaultPrevented()||l._default&&!1!==l._default.apply(h.pop(),t)||!Q(n)||s&&b(n[f])&&!m(n)&&((o=n[s])&&(n[s]=null),R.event.triggered=f,e.isPropagationStopped()&&c.addEventListener(f,Nt),n[f](),e.isPropagationStopped()&&c.removeEventListener(f,Nt),R.event.triggered=void 0,o&&(n[s]=o)),e.result}},simulate:function(e,t,n){var r=R.extend(new R.Event,n,{type:e,isSimulated:!0});R.event.trigger(r,null,t)}}),R.fn.extend({trigger:function(e,t){return this.each(function(){R.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return R.event.trigger(e,t,n,!0)}}),y.focusin||R.each({focus:\"focusin\",blur:\"focusout\"},function(n,r){function i(e){R.event.simulate(r,e.target,R.event.fix(e))}R.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=$.access(e,r);t||e.addEventListener(n,i,!0),$.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=$.access(e,r)-1;t?$.access(e,r,t):(e.removeEventListener(n,i,!0),$.remove(e,r))}}});var Lt=T.location,Mt=Date.now(),jt=/\\?/;R.parseXML=function(e){var t;if(!e||\"string\"!=typeof e)return null;try{t=(new T.DOMParser).parseFromString(e,\"text/xml\")}catch(e){t=void 0}return t&&!t.getElementsByTagName(\"parsererror\").length||R.error(\"Invalid XML: \"+e),t};var Dt=/\\[\\]$/,It=/\\r?\\n/g,Ft=/^(?:submit|button|image|reset|file)$/i,Bt=/^(?:input|select|textarea|keygen)/i;R.param=function(e,t){function n(e,t){var n=b(t)?t():t;i[i.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)}var r,i=[];if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!R.isPlainObject(e))R.each(e,function(){n(this.name,this.value)});else for(r in e)!function n(r,e,i,o){var t;if(Array.isArray(e))R.each(e,function(e,t){i||Dt.test(r)?o(r,t):n(r+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,i,o)});else if(i||\"object\"!==w(e))o(r,e);else for(t in e)n(r+\"[\"+t+\"]\",e[t],i,o)}(r,e[r],t,n);return i.join(\"&\")},R.fn.extend({serialize:function(){return R.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=R.prop(this,\"elements\");return e?R.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!R(this).is(\":disabled\")&&Bt.test(this.nodeName)&&!Ft.test(e)&&(this.checked||!fe.test(e))}).map(function(e,t){var n=R(this).val();return null==n?null:Array.isArray(n)?R.map(n,function(e){return{name:t.name,value:e.replace(It,\"\\r\\n\")}}):{name:t.name,value:n.replace(It,\"\\r\\n\")}}).get()}});var Ut=/%20/g,zt=/#.*$/,qt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Vt=/^(?:GET|HEAD)$/,Wt=/^\\/\\//,Yt={},Gt={},Qt=\"*/\".concat(\"*\"),Kt=C.createElement(\"a\");function $t(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(D)||[];if(b(t))for(;n=i[r++];)\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Xt(t,i,o,a){var s={},u=t===Gt;function l(e){var r;return s[e]=!0,R.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Jt(e,t){var n,r,i=R.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r=r||{})[n]=t[n]);return r&&R.extend(!0,e,r),e}Kt.href=Lt.href,R.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Lt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Lt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Qt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":R.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Jt(Jt(e,R.ajaxSettings),t):Jt(R.ajaxSettings,e)},ajaxPrefilter:$t(Yt),ajaxTransport:$t(Gt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,h,f,n,p,r,d,m,i,o,v=R.ajaxSetup({},t),g=v.context||v,y=v.context&&(g.nodeType||g.jquery)?R(g):R.event,b=R.Deferred(),_=R.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",E={readyState:0,getResponseHeader:function(e){var t;if(d){if(!n)for(n={};t=Ht.exec(f);)n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2]);t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return d?f:null},setRequestHeader:function(e,t){return null==d&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==d&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(d)E.always(e[E.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(b.promise(E),v.url=((e||v.url||Lt.href)+\"\").replace(Wt,Lt.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(D)||[\"\"],null==v.crossDomain){r=C.createElement(\"a\");try{r.href=v.url,r.href,v.crossDomain=Kt.protocol+\"//\"+Kt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=R.param(v.data,v.traditional)),Xt(Yt,v,t,E),d)return E;for(i in(m=R.event&&v.global)&&0==R.active++&&R.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Vt.test(v.type),h=v.url.replace(zt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Ut,\"+\")):(o=v.url.slice(h.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(h+=(jt.test(h)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(h=h.replace(qt,\"$1\"),o=(jt.test(h)?\"&\":\"?\")+\"_=\"+Mt+++o),v.url=h+o),v.ifModified&&(R.lastModified[h]&&E.setRequestHeader(\"If-Modified-Since\",R.lastModified[h]),R.etag[h]&&E.setRequestHeader(\"If-None-Match\",R.etag[h])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&E.setRequestHeader(\"Content-Type\",v.contentType),E.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+Qt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)E.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(g,E,v)||d))return E.abort();if(u=\"abort\",_.add(v.complete),E.done(v.success),E.fail(v.error),c=Xt(Gt,v,t,E)){if(E.readyState=1,m&&y.trigger(\"ajaxSend\",[E,v]),d)return E;v.async&&0<v.timeout&&(p=T.setTimeout(function(){E.abort(\"timeout\")},v.timeout));try{d=!1,c.send(a,l)}catch(e){if(d)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;d||(d=!0,p&&T.clearTimeout(p),c=void 0,f=r||\"\",E.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;\"*\"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a=a||i}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,E,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,E,i),i?(v.ifModified&&((u=E.getResponseHeader(\"Last-Modified\"))&&(R.lastModified[h]=u),(u=E.getResponseHeader(\"etag\"))&&(R.etag[h]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),E.status=e,E.statusText=(t||l)+\"\",i?b.resolveWith(g,[o,l,E]):b.rejectWith(g,[E,l,a]),E.statusCode(w),w=void 0,m&&y.trigger(i?\"ajaxSuccess\":\"ajaxError\",[E,v,i?o:a]),_.fireWith(g,[E,l]),m&&(y.trigger(\"ajaxComplete\",[E,v]),--R.active||R.event.trigger(\"ajaxStop\")))}return E},getJSON:function(e,t,n){return R.get(e,t,n,\"json\")},getScript:function(e,t){return R.get(e,void 0,t,\"script\")}}),R.each([\"get\",\"post\"],function(e,i){R[i]=function(e,t,n,r){return b(t)&&(r=r||n,n=t,t=void 0),R.ajax(R.extend({url:e,type:i,dataType:r,data:t,success:n},R.isPlainObject(e)&&e))}}),R._evalUrl=function(e,t){return R.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){R.globalEval(e,t)}})},R.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=R(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return b(n)?this.each(function(e){R(this).wrapInner(n.call(this,e))}):this.each(function(){var e=R(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=b(t);return this.each(function(e){R(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){R(this).replaceWith(this.childNodes)}),this}}),R.expr.pseudos.hidden=function(e){return!R.expr.pseudos.visible(e)},R.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},R.ajaxSettings.xhr=function(){try{return new T.XMLHttpRequest}catch(e){}};var Zt={0:200,1223:204},en=R.ajaxSettings.xhr();y.cors=!!en&&\"withCredentials\"in en,y.ajax=en=!!en,R.ajaxTransport(function(i){var o,a;if(y.cors||en&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Zt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&T.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),R.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),R.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return R.globalEval(e),e}}}),R.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),R.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=R(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var tn,nn=[],rn=/(=)\\?(?=&|$)|\\?\\?/;R.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=nn.pop()||R.expando+\"_\"+Mt++;return this[e]=!0,e}}),R.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(rn.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&rn.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(rn,\"$1\"+r):!1!==e.jsonp&&(e.url+=(jt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||R.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?R(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,nn.push(r)),o&&b(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((tn=C.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===tn.childNodes.length),R.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=O.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&R(o).remove(),R.merge([],i.childNodes)));var r,i,o},R.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=xt(e.slice(s)),e=e.slice(0,s)),b(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&R.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?R(\"<div>\").append(R.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},R.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){R.fn[t]=function(e){return this.on(t,e)}}),R.expr.pseudos.animated=function(t){return R.grep(R.timers,function(e){return t===e.elem}).length},R.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=R.css(e,\"position\"),c=R(e),h={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=R.css(e,\"top\"),u=R.css(e,\"left\"),i=(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(u)||0),b(t)&&(t=t.call(e,n,R.extend({},s))),null!=t.top&&(h.top=t.top-s.top+a),null!=t.left&&(h.left=t.left-s.left+i),\"using\"in t?t.using.call(e,h):c.css(h)}},R.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){R.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===R.css(r,\"position\"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&\"static\"===R.css(e,\"position\");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=R(e).offset()).top+=R.css(e,\"borderTopWidth\",!0),i.left+=R.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-R.css(r,\"marginTop\",!0),left:t.left-i.left-R.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&\"static\"===R.css(e,\"position\");)e=e.offsetParent;return e||ie})}}),R.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;R.fn[t]=function(e){return H(this,function(e,t,n){var r;return m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[i]:e[t]:void(r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),R.each([\"top\",\"left\"],function(e,n){R.cssHooks[n]=Ze(y.pixelPosition,function(e,t){if(t)return t=Je(e,n),Ge.test(t)?R(e).position()[n]+\"px\":t})}),R.each({Height:\"height\",Width:\"width\"},function(a,s){R.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){R.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return H(this,function(e,t,n){var r;return m(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?R.css(e,t,i):R.style(e,t,n,i)},s,n?e:void 0,n)}})}),R.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){R.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),R.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),R.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),R.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),b(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||R.guid++,i},R.holdReady=function(e){e?R.readyWait++:R.ready(!0)},R.isArray=Array.isArray,R.parseJSON=JSON.parse,R.nodeName=A,R.isFunction=b,R.isWindow=m,R.camelCase=G,R.type=w,R.now=Date.now,R.isNumeric=function(e){var t=R.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return R});var on=T.jQuery,an=T.$;return R.noConflict=function(e){return T.$===R&&(T.$=an),e&&T.jQuery===R&&(T.jQuery=on),R},e||(T.jQuery=T.$=R),R}),function(){var e,f,t;mainContext=this,function(){function l(e,t){var n=e,r=(r=c[n])||c[n+=\"/index\"],i=h[n];if(void 0!==i)return i;i=h[n]={},r||function(e,t){throw t?new Error(\"Could not find module \"+e+\" required by: \"+t):new Error(\"Could not find module \"+e)}(e,t);for(var o=r.deps,a=r.callback,s=new Array(o.length),u=0;u<o.length;u++)\"exports\"===o[u]?s[u]=i:\"require\"===o[u]?s[u]=f:s[u]=l(o[u],n);return a.apply(this,s),i}var c,h;\"undefined\"==typeof window&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process)||(t=this.Ember=this.Ember||{}),void 0===t&&(t={}),void 0===t.__loader?(c=Object.create(null),h=Object.create(null),e=function(e,t,n){var r={};n?(r.deps=t,r.callback=n):(r.deps=[],r.callback=t),c[e]=r},((f=function(e){return l(e,null)}).default=f).has=function(e){return Boolean(c[e])||Boolean(c[e+\"/index\"])},f._eak_seen=c,t.__loader={define:e,require:f,registry:c}):(e=t.__loader.define,f=t.__loader.require)}(),e(\"@ember/-internals/browser-environment\",[\"exports\"],function(e){\"use strict\";e.hasDOM=e.isFirefox=e.isChrome=e.userAgent=e.history=e.location=e.window=void 0;var t=\"object\"==typeof self&&null!==self&&self.Object===Object&&\"undefined\"!=typeof Window&&self.constructor===Window&&\"object\"==typeof document&&null!==document&&self.document===document&&\"object\"==typeof location&&null!==location&&self.location===location&&\"object\"==typeof history&&null!==history&&self.history===history&&\"object\"==typeof navigator&&null!==navigator&&self.navigator===navigator&&\"string\"==typeof navigator.userAgent,n=(e.hasDOM=t)?self:null;e.window=n;var r=t?self.location:null;e.location=r;var i=t?self.history:null;e.history=i;var o=t?self.navigator.userAgent:\"Lynx (textmode)\";e.userAgent=o;var a=t&&(Boolean(n.chrome)&&!n.opera);e.isChrome=a;var s=t&&\"undefined\"!=typeof InstallTrigger;e.isFirefox=s}),e(\"@ember/-internals/console/index\",[\"exports\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,t,n){\"use strict\";e.default=void 0;var r;n.LOGGER&&(r={log:function(){var e;return(e=console).log.apply(e,arguments)},warn:function(){var e;return(e=console).warn.apply(e,arguments)},error:function(){var e;return(e=console).error.apply(e,arguments)},info:function(){var e;return(e=console).info.apply(e,arguments)},debug:function(){var e,t;return console.debug?(t=console).debug.apply(t,arguments):(e=console).info.apply(e,arguments)},assert:function(){var e;return(e=console).assert.apply(e,arguments)}}),e.default=r}),e(\"@ember/-internals/container\",[\"exports\",\"@ember/-internals/owner\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/polyfills\"],function(e,a,s,t,u){\"use strict\";e.privatize=function(e){var t=e[0],n=y[t];if(n)return n;var r=t.split(\":\"),i=r[0],o=r[1];return y[t]=(0,s.intern)(i+\":\"+o+\"-\"+b)},e.FACTORY_FOR=e.Container=e.Registry=void 0;var n=function(){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.registry=e,this.owner=t.owner||null,this.cache=(0,s.dictionary)(t.cache||null),this.factoryManagerCache=(0,s.dictionary)(t.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}var t=e.prototype;return t.lookup=function(e,t){return h(this,this.registry.normalize(e),t)},t.destroy=function(){i(this),this.isDestroying=!0},t.finalizeDestroy=function(){o(this),this.isDestroyed=!0},t.reset=function(e){var t,n,r;this.isDestroyed||(void 0===e?(i(this),o(this)):(n=(t=this).registry.normalize(e),r=t.cache[n],delete t.factoryManagerCache[n],r&&(delete t.cache[n],r.destroy&&r.destroy())))},t.ownerInjection=function(){var e={};return e[a.OWNER]=this.owner,e},t.factoryFor=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=this.registry.normalize(e);if(!n.source&&!n.namespace||(r=this.registry.expandLocalLookup(e,n)))return f(this,r,e)},e}();function l(e,t){return!1!==e.registry.getOption(t,\"singleton\")}function c(e,t){return!1!==e.registry.getOption(t,\"instantiate\")}function h(e,t,n){var r=2<arguments.length&&void 0!==n?n:{},i=t;if(!r.source&&!r.namespace||(i=e.registry.expandLocalLookup(t,r))){if(!1!==r.singleton){var o=e.cache[i];if(void 0!==o)return o}return function(e,t,n,r){var i=f(e,t,n);if(void 0===i)return;if(function(e,t,n){var r=n.instantiate;return!1!==n.singleton&&!1!==r&&l(e,t)&&c(e,t)}(e,n,r))return e.cache[t]=i.create();if(function(e,t,n){var r=n.instantiate,i=n.singleton;return!1!==r&&(!1!==i||l(e,t))&&c(e,t)}(e,n,r))return i.create();if(function(e,t,n){var r=n.instantiate;return!1!==n.singleton&&!r&&l(e,t)&&!c(e,t)}(e,n,r)||function(e,t,n){var r=n.instantiate,i=n.singleton;return!(!1!==r||!1!==i&&l(e,t)||c(e,t))}(e,n,r))return i.class;throw new Error(\"Could not create factory\")}(e,i,t,r)}}function f(e,t,n){var r=e.factoryManagerCache[t];if(void 0!==r)return r;var i=e.registry.resolve(t);if(void 0!==i){0;var o=new v(e,i,n,t);return e.factoryManagerCache[t]=o}}function p(e,t,n){var r=n.injections;void 0===r&&(r=n.injections={});for(var i=0;i<t.length;i++){var o=t[i],a=o.property,s=o.specifier,u=o.source;r[a]=u?h(e,s,{source:u}):h(e,s),n.isDynamic||(n.isDynamic=!l(e,s))}}function d(e,t){var n,r,i,o,a=e.registry,s=t.split(\":\")[0],u=a.getTypeInjections(s),l=a.getInjections(t);return n=e,i=l,o={injections:void 0,isDynamic:!1},void 0!==(r=u)&&p(n,r,o),void 0!==i&&p(n,i,o),o}function i(e){for(var t=e.cache,n=Object.keys(t),r=0;r<n.length;r++){var i=t[n[r]];i.destroy&&i.destroy()}}function o(e){e.cache=(0,s.dictionary)(null),e.factoryManagerCache=(0,s.dictionary)(null)}e.Container=n;var m=new WeakMap;e.FACTORY_FOR=m;var v=function(){function e(e,t,n,r){this.container=e,this.owner=e.owner,this.class=t,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0,m.set(this,this)}var t=e.prototype;return t.toString=function(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString},t.create=function(e){var t,n,r=this.injections;void 0===r&&(r=n=(t=d(this.container,this.normalizedName)).injections,t.isDynamic||(this.injections=n));var i=r;if(void 0!==e&&(i=(0,u.assign)({},r,e)),!this.class.create)throw new Error(\"Failed to create an instance of '\"+this.normalizedName+\"'. Most likely an improperly defined class or an invalid module export.\");\"function\"==typeof this.class._initFactory?this.class._initFactory(this):(void 0!==e&&void 0!==i||(i=(0,u.assign)({},i)),(0,a.setOwner)(i,this.owner));var o=this.class.create(i);return m.set(o,this),o},e}(),r=/^[^:]+:[^:]+$/,g=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.fallback=e.fallback||null,this.resolver=e.resolver||null,this.registrations=(0,s.dictionary)(e.registrations||null),this._typeInjections=(0,s.dictionary)(null),this._injections=(0,s.dictionary)(null),this._localLookupCache=Object.create(null),this._normalizeCache=(0,s.dictionary)(null),this._resolveCache=(0,s.dictionary)(null),this._failSet=new Set,this._options=(0,s.dictionary)(null),this._typeOptions=(0,s.dictionary)(null)}var t=e.prototype;return t.container=function(e){return new n(this,e)},t.register=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:{},i=this.normalize(e);this._failSet.delete(i),this.registrations[i]=t,this._options[i]=r},t.unregister=function(e){var t=this.normalize(e);this._localLookupCache=Object.create(null),delete this.registrations[t],delete this._resolveCache[t],delete this._options[t],this._failSet.delete(t)},t.resolve=function(e,t){var n,r=function(e,t,n){var r=t;if(void 0!==n&&(n.source||n.namespace)&&!(r=e.expandLocalLookup(t,n)))return;var i,o=e._resolveCache[r];if(void 0!==o)return o;if(e._failSet.has(r))return;e.resolver&&(i=e.resolver.resolve(r));void 0===i&&(i=e.registrations[r]);void 0===i?e._failSet.add(r):e._resolveCache[r]=i;return i}(this,this.normalize(e),t);return void 0===r&&null!==this.fallback&&(r=(n=this.fallback).resolve.apply(n,arguments)),r},t.describe=function(e){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(e):null!==this.fallback?this.fallback.describe(e):e},t.normalizeFullName=function(e){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(e):null!==this.fallback?this.fallback.normalizeFullName(e):e},t.normalize=function(e){return this._normalizeCache[e]||(this._normalizeCache[e]=this.normalizeFullName(e))},t.makeToString=function(e,t){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(e,t):null!==this.fallback?this.fallback.makeToString(e,t):e.toString()},t.has=function(e,t){if(!this.isValidFullName(e))return!1;var n,r,i,o,a=t&&t.source&&this.normalize(t.source),s=t&&t.namespace||void 0;return r=(n=this).normalize(e),i=a,o=s,void 0!==n.resolve(r,{source:i,namespace:o})},t.optionsForType=function(e,t){this._typeOptions[e]=t},t.getOptionsForType=function(e){var t=this._typeOptions[e];return void 0===t&&null!==this.fallback&&(t=this.fallback.getOptionsForType(e)),t},t.options=function(e,t){var n=this.normalize(e);this._options[n]=t},t.getOptions=function(e){var t=this.normalize(e),n=this._options[t];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(e)),n},t.getOption=function(e,t){var n=this._options[e];if(void 0!==n&&void 0!==n[t])return n[t];var r=e.split(\":\")[0];return(n=this._typeOptions[r])&&void 0!==n[t]?n[t]:null!==this.fallback?this.fallback.getOption(e,t):void 0},t.typeInjection=function(e,t,n){n.split(\":\")[0];(this._typeInjections[e]||(this._typeInjections[e]=[])).push({property:t,specifier:n})},t.injection=function(e,t,n){var r=this.normalize(n);if(-1===e.indexOf(\":\"))return this.typeInjection(e,t,r);var i=this.normalize(e);(this._injections[i]||(this._injections[i]=[])).push({property:t,specifier:r})},t.knownForType=function(e){for(var t,n,r=(0,s.dictionary)(null),i=Object.keys(this.registrations),o=0;o<i.length;o++){var a=i[o];a.split(\":\")[0]===e&&(r[a]=!0)}return null!==this.fallback&&(t=this.fallback.knownForType(e)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(e)),(0,u.assign)({},t,r,n)},t.isValidFullName=function(e){return r.test(e)},t.getInjections=function(e){var t,n=this._injections[e];return null===this.fallback||void 0!==(t=this.fallback.getInjections(e))&&(n=void 0===n?t:n.concat(t)),n},t.getTypeInjections=function(e){var t,n=this._typeInjections[e];return null===this.fallback||void 0!==(t=this.fallback.getTypeInjections(e))&&(n=void 0===n?t:n.concat(t)),n},t.expandLocalLookup=function(e,t){if(null!==this.resolver&&this.resolver.expandLocalLookup){var n=this.normalize(e),r=this.normalize(t.source);return function(e,t,n,r){var i=e._localLookupCache,o=i[t];o=o||(i[t]=Object.create(null));var a=r||n,s=o[a];if(void 0!==s)return s;var u=e.resolver.expandLocalLookup(t,n,r);return o[a]=u}(this,n,r,t.namespace)}return null!==this.fallback?this.fallback.expandLocalLookup(e,t):null},e}();e.Registry=g;var y=(0,s.dictionary)(null),b=(\"\"+Math.random()+Date.now()).replace(\".\",\"\")}),e(\"@ember/-internals/environment\",[\"exports\",\"@ember/deprecated-features\"],function(e,c){\"use strict\";function t(e){return e&&e.Object===Object?e:void 0}e.getLookup=function(){return o.lookup},e.setLookup=function(e){o.lookup=e},e.getENV=function(){return h},e.ENV=e.context=e.global=void 0;var n,r=t((n=\"object\"==typeof global&&global)&&void 0===n.nodeType?n:void 0)||t(\"object\"==typeof self&&self)||t(\"object\"==typeof window&&window)||\"undefined\"!=typeof mainContext&&mainContext||new Function(\"return this\")();e.global=r;var i,o=void 0===(i=r.Ember)?{imports:r,exports:r,lookup:r}:{imports:i.imports||r,exports:i.exports||r,lookup:i.lookup||r};e.context=o;var h={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!0,Function:!0,String:!0},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_APPLICATION_TEMPLATE_WRAPPER:!0,_TEMPLATE_ONLY_GLIMMER_COMPONENTS:!1,_JQUERY_INTEGRATION:!0,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,EMBER_LOAD_HOOKS:{},FEATURES:{}};e.ENV=h,function(e){if(\"object\"==typeof e&&null!==e){for(var t in e){var n;e.hasOwnProperty(t)&&\"EXTEND_PROTOTYPES\"!==t&&\"EMBER_LOAD_HOOKS\"!==t&&(!0===(n=h[t])?h[t]=!1!==e[t]:!1===n&&(h[t]=!0===e[t]))}var r,i=e.EXTEND_PROTOTYPES;void 0!==i&&(\"object\"==typeof i&&null!==i?(h.EXTEND_PROTOTYPES.String=!1!==i.String,c.FUNCTION_PROTOTYPE_EXTENSIONS&&(h.EXTEND_PROTOTYPES.Function=!1!==i.Function),h.EXTEND_PROTOTYPES.Array=!1!==i.Array):(r=!1!==i,h.EXTEND_PROTOTYPES.String=r,c.FUNCTION_PROTOTYPE_EXTENSIONS&&(h.EXTEND_PROTOTYPES.Function=r),h.EXTEND_PROTOTYPES.Array=r));var o,a=e.EMBER_LOAD_HOOKS;if(\"object\"==typeof a&&null!==a)for(var s in a){a.hasOwnProperty(s)&&(o=a[s],Array.isArray(o)&&(h.EMBER_LOAD_HOOKS[s]=o.filter(function(e){return\"function\"==typeof e})))}var u=e.FEATURES;if(\"object\"==typeof u&&null!==u)for(var l in u)u.hasOwnProperty(l)&&(h.FEATURES[l]=!0===u[l])}}(r.EmberENV||r.ENV)}),e(\"@ember/-internals/error-handling/index\",[\"exports\"],function(e){\"use strict\";var t;e.getOnerror=function(){return t},e.setOnerror=function(e){t=e},e.getDispatchOverride=function(){return n},e.setDispatchOverride=function(e){n=e},e.onErrorTarget=void 0;var n,r={get onerror(){return t}};e.onErrorTarget=r}),e(\"@ember/-internals/extension-support/index\",[\"exports\",\"@ember/-internals/extension-support/lib/data_adapter\",\"@ember/-internals/extension-support/lib/container_debug_adapter\"],function(e,t,n){\"use strict\";Object.defineProperty(e,\"DataAdapter\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"ContainerDebugAdapter\",{enumerable:!0,get:function(){return n.default}})}),e(\"@ember/-internals/extension-support/lib/container_debug_adapter\",[\"exports\",\"@ember/string\",\"@ember/-internals/runtime\"],function(e,o,a){\"use strict\";e.default=void 0;var t=a.Object.extend({resolver:null,canCatalogEntriesByType:function(e){return\"model\"!==e&&\"template\"!==e},catalogEntriesByType:function(e){var t=(0,a.A)(a.Namespace.NAMESPACES),r=(0,a.A)(),i=new RegExp((0,o.classify)(e)+\"$\");return t.forEach(function(e){for(var t in e){var n;e.hasOwnProperty(t)&&i.test(t)&&(n=e[t],\"class\"===(0,a.typeOf)(n)&&r.push((0,o.dasherize)(t.replace(i,\"\"))))}}),r}});e.default=t}),e(\"@ember/-internals/extension-support/lib/data_adapter\",[\"exports\",\"@ember/-internals/owner\",\"@ember/runloop\",\"@ember/-internals/metal\",\"@ember/string\",\"@ember/-internals/runtime\"],function(e,n,s,f,o,p){\"use strict\";e.default=void 0;var t=p.Object.extend({init:function(){this._super.apply(this,arguments),this.releaseMethods=(0,p.A)()},containerDebugAdapter:void 0,attributeLimit:3,acceptsModelName:!0,releaseMethods:(0,p.A)(),getFilters:function(){return(0,p.A)()},watchModelTypes:function(e,r){var i=this,t=this.getModelTypes(),o=(0,p.A)();e(t.map(function(e){var t=e.klass,n=i.wrapModelType(t,e.name);return o.push(i.observeModelType(e.name,r)),n}));var n=function(){o.forEach(function(e){return e()}),i.releaseMethods.removeObject(n)};return this.releaseMethods.pushObject(n),n},_nameToClass:function(e){var t;return\"string\"==typeof e&&(e=(t=(0,n.getOwner)(this).factoryFor(\"model:\"+e))&&t.class),e},watchRecords:function(e,s,t,u){var n,l=this,c=(0,p.A)(),r=this._nameToClass(e),i=this.getRecords(r,e);function h(e){t([e])}var o=i.map(function(e){return c.push(l.observeRecord(e,h)),l.wrapRecord(e)}),a={didChange:function(e,t,n,r){for(var i=t;i<t+r;i++){var o=(0,f.objectAt)(e,i),a=l.wrapRecord(o);c.push(l.observeRecord(o,h)),s([a])}n&&u(t,n)},willChange:function(){return this}};return(0,f.addArrayObserver)(i,this,a),n=function(){c.forEach(function(e){return e()}),(0,f.removeArrayObserver)(i,l,a),l.releaseMethods.removeObject(n)},s(o),this.releaseMethods.pushObject(n),n},willDestroy:function(){this._super.apply(this,arguments),this.releaseMethods.forEach(function(e){return e()})},detect:function(){return!1},columnsForType:function(){return(0,p.A)()},observeModelType:function(e,t){var n=this,r=this._nameToClass(e),i=this.getRecords(r,e);function o(){t([this.wrapModelType(r,e)])}var a={didChange:function(e,t,n,r){(0<n||0<r)&&(0,s.scheduleOnce)(\"actions\",this,o)},willChange:function(){return this}};(0,f.addArrayObserver)(i,this,a);return function(){return(0,f.removeArrayObserver)(i,n,a)}},wrapModelType:function(e,t){var n=this.getRecords(e,t);return{name:t,count:(0,f.get)(n,\"length\"),columns:this.columnsForType(e),object:e}},getModelTypes:function(){var t=this,e=this.get(\"containerDebugAdapter\"),n=e.canCatalogEntriesByType(\"model\")?e.catalogEntriesByType(\"model\"):this._getObjectsOnNamespaces();return n=(0,p.A)(n).map(function(e){return{klass:t._nameToClass(e),name:e}}),n=(0,p.A)(n).filter(function(e){return t.detect(e.klass)}),(0,p.A)(n)},_getObjectsOnNamespaces:function(){var r=this,e=(0,p.A)(p.Namespace.NAMESPACES),i=(0,p.A)();return e.forEach(function(e){for(var t in e){var n;e.hasOwnProperty(t)&&r.detect(e[t])&&(n=(0,o.dasherize)(t),i.push(n))}}),i},getRecords:function(){return(0,p.A)()},wrapRecord:function(e){var t={object:e};return t.columnValues=this.getRecordColumnValues(e),t.searchKeywords=this.getRecordKeywords(e),t.filterValues=this.getRecordFilterValues(e),t.color=this.getRecordColor(e),t},getRecordColumnValues:function(){return{}},getRecordKeywords:function(){return(0,p.A)()},getRecordFilterValues:function(){return{}},getRecordColor:function(){return null},observeRecord:function(){return function(){}}});e.default=t}),e(\"@ember/-internals/glimmer\",[\"exports\",\"node-module\",\"ember-babel\",\"@ember/polyfills\",\"@ember/-internals/owner\",\"@glimmer/opcode-compiler\",\"@ember/-internals/runtime\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@glimmer/reference\",\"@ember/-internals/metal\",\"@ember/debug\",\"@glimmer/runtime\",\"@glimmer/util\",\"@ember/-internals/views\",\"@ember/-internals/browser-environment\",\"@ember/instrumentation\",\"@ember/service\",\"@ember/-internals/environment\",\"@ember/string\",\"@glimmer/wire-format\",\"@ember/-internals/container\",\"rsvp\",\"@glimmer/node\",\"@ember/-internals/routing\",\"@ember/deprecated-features\"],function(e,r,s,c,a,i,o,m,l,h,f,t,p,d,v,u,g,n,y,b,_,w,E,T,C,R){\"use strict\";function k(){var e=D([\"component:-default\"]);return k=function(){return e},e}function x(){var e=D([\"template-compiler:main\"]);return x=function(){return e},e}function A(){var e=D([\"template-compiler:main\"]);return A=function(){return e},e}function O(){var e=D([\"template-compiler:main\"]);return O=function(){return e},e}function S(){var e=D([\"template:components/-default\"]);return S=function(){return e},e}function N(){var e=D([\"template:-root\"]);return N=function(){return e},e}function P(){var e=D([\"template:-root\"]);return P=function(){return e},e}function L(){var e=D([\"component:-default\"]);return L=function(){return e},e}function M(){var e=D([\"template:components/-default\"]);return M=function(){return e},e}function j(){var e=D([\"template:components/-default\"]);return j=function(){return e},e}function D(e,t){return t=t||e.slice(0),e.raw=t,e}var I;function F(e){return new B((0,i.templateFactory)(e))}e.template=F,e.helper=V,e.escapeExpression=function(e){if(\"string\"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return\"\";if(!e)return String(e);e=String(e)}return rt.test(e)?e.replace(it,ot):e},e.htmlSafe=at,e.isHTMLSafe=st,e._resetRenderers=function(){Gt.length=0},e.renderSettled=function(){null===$t&&($t=E.default.defer(),(0,l.getCurrentRunLoop)()||l.backburner.schedule(\"actions\",null,Kt));return $t.promise},e.getTemplate=function(e){if(tn.hasOwnProperty(e))return tn[e]},e.setTemplate=function(e,t){return tn[e]=t},e.hasTemplate=function(e){return tn.hasOwnProperty(e)},e.getTemplates=function(){return tn},e.setTemplates=function(e){tn=e},e.setupEngineRegistry=function(e){e.register(\"view:-outlet\",Lr),e.register(\"template:-outlet\",Nr),e.injection(\"view:-outlet\",\"template\",\"template:-outlet\"),e.injection(\"service:-dom-changes\",\"document\",\"service:-document\"),e.injection(\"service:-dom-tree-construction\",\"document\",\"service:-document\"),e.register((0,w.privatize)(S()),Or),e.register(\"service:-glimmer-environment\",ct),e.register((0,w.privatize)(O()),Ar),e.injection((0,w.privatize)(A()),\"environment\",\"-environment:main\"),e.injection(\"template\",\"compiler\",(0,w.privatize)(x())),e.optionsForType(\"helper\",{instantiate:!1}),e.register(\"helper:loc\",dn),e.register(\"component:-text-field\",Te),e.register(\"component:-checkbox\",we),e.register(\"component:link-to\",Se),e.register(\"component:input\",pn),e.register(\"template:components/input\",Sr),e.register(\"component:textarea\",Ce);y.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS||e.register((0,w.privatize)(k()),be)},e.setupApplicationRegistry=function(e){e.injection(\"service:-glimmer-environment\",\"appendOperations\",\"service:-dom-tree-construction\"),e.injection(\"renderer\",\"env\",\"service:-glimmer-environment\"),e.register(\"service:-dom-builder\",{create:function(e){switch(e.bootOptions._renderMode){case\"serialize\":return T.serializeBuilder.bind(null);case\"rehydrate\":return p.rehydrationBuilder.bind(null);default:return p.clientBuilder.bind(null)}}}),e.injection(\"service:-dom-builder\",\"bootOptions\",\"-environment:main\"),e.injection(\"renderer\",\"builder\",\"service:-dom-builder\"),e.register((0,w.privatize)(P()),U),e.injection(\"renderer\",\"rootTemplate\",(0,w.privatize)(N())),e.register(\"renderer:-dom\",en),e.register(\"renderer:-inert\",Zt),u.hasDOM&&e.injection(\"service:-glimmer-environment\",\"updateOperations\",\"service:-dom-changes\");e.register(\"service:-dom-changes\",{create:function(e){var t=e.document;return new p.DOMChanges(t)}}),e.register(\"service:-dom-tree-construction\",{create:function(e){var t=e.document;return new(u.hasDOM?p.DOMTreeConstruction:T.NodeDOMTreeConstruction)(t)}})},e._registerMacros=function(e){Er.push(e)},e.iterableFor=Me,e.capabilities=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};var n=!0;0;return{asyncLifeCycleCallbacks:Boolean(t.asyncLifecycleCallbacks),destructor:Boolean(t.destructor),updateHook:n}},e.setComponentManager=function(t,e){var n;n=R.COMPONENT_MANAGER_STRING_LOOKUP&&\"string\"==typeof t?function(e){return e.lookup(\"component-manager:\"+t)}:t;return hn({factory:n,internal:!1,type:\"component\"},e)},e.getComponentManager=function(e){var t=fn(e);return t&&!t.internal&&\"component\"===t.type?t.factory:void 0},e.setModifierManager=function(e,t){return hn({factory:e,internal:!1,type:\"modifier\"},t)},e.getModifierManager=Tr,e.modifierCapabilties=function(e,t){return{}},Object.defineProperty(e,\"DOMChanges\",{enumerable:!0,get:function(){return p.DOMChanges}}),Object.defineProperty(e,\"DOMTreeConstruction\",{enumerable:!0,get:function(){return p.DOMTreeConstruction}}),Object.defineProperty(e,\"isSerializationFirstNode\",{enumerable:!0,get:function(){return p.isSerializationFirstNode}}),Object.defineProperty(e,\"NodeDOMTreeConstruction\",{enumerable:!0,get:function(){return T.NodeDOMTreeConstruction}}),e.OutletView=e.DebugStack=e.INVOKE=e.UpdatableReference=e.AbstractComponentManager=e._experimentalMacros=e.InteractiveRenderer=e.InertRenderer=e.Renderer=e.SafeString=e.Environment=e.Helper=e.ROOT_REF=e.Component=e.LinkComponent=e.TextArea=e.TextField=e.Checkbox=e.RootTemplate=void 0;var B=function(){function e(e){this.factory=e,this.id=e.id,this.meta=e.meta}return e.prototype.create=function(e){var t=(0,a.getOwner)(e);return this.factory.create(e.compiler,{owner:t})},e}(),U=F({id:\"hjhxUoru\",block:'{\"symbols\":[],\"statements\":[[1,[28,\"component\",[[23,0,[]]],null],false]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/root.hbs\"}});e.RootTemplate=U;var z=(0,m.symbol)(\"RECOMPUTE_TAG\");var q=o.FrameworkObject.extend({init:function(){this._super.apply(this,arguments),this[z]=h.DirtyableTag.create()},recompute:function(){var e=this;(0,l.join)(function(){return e[z].inner.dirty()})}});(e.Helper=q).isHelperFactory=!0,(0,o.setFrameworkClass)(q);var H=function(){function e(e){this.compute=e,this.isHelperFactory=!0}return e.prototype.create=function(){return{compute:this.compute}},e}();function V(e){return new H(e)}function W(e){return(0,o.isArray)(e)?0!==e.length:Boolean(e)}var Y=(0,m.symbol)(\"UPDATE\"),G=(0,m.symbol)(\"INVOKE\");e.INVOKE=G;var Q=(0,m.symbol)(\"ACTION\"),K=function(){function e(){}return e.prototype.get=function(e){return J.create(this,e)},e}(),$=function(t){function e(){var e=t.call(this)||this;return e.lastRevision=null,e.lastValue=null,e}return(0,s.inheritsLoose)(e,t),e.prototype.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue;return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},e}(K),X=function(n){function e(e){var t=n.call(this,e)||this;return t.children=Object.create(null),t}return(0,s.inheritsLoose)(e,n),e.create=function(e){return fe(e)},e.prototype.get=function(e){var t=this.children[e];return void 0===t&&(t=this.children[e]=new Z(this.inner,e)),t},e}(h.ConstReference);var J=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e,t){return(0,h.isConst)(e)?function(e,t){{if(le(e))return new Z(e,t);if(ce(e))return new ae(e[t]);if(he())return p.UNDEFINED_REFERENCE;throw(0,d.unreachable)()}}(e.value(),t):new ee(e,t)},t.prototype.get=function(e){return new ee(this,e)},t}($),Z=function(r){function e(e,t){var n=r.call(this)||this;return n.parentValue=e,n.propertyKey=t,n.propertyTag=h.UpdatableTag.create((0,f.tagForProperty)(e,t)),n.tag=n.propertyTag,n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.compute=function(){var e=this.parentValue,t=this.propertyKey,n=(0,f.get)(e,t);return n},t[Y]=function(e){(0,f.set)(this.parentValue,this.propertyKey,e)},e}(J),ee=function(o){function e(e,t){var n=o.call(this)||this;n.parentReference=e,n.propertyKey=t;var r=e.tag,i=n.propertyTag=h.UpdatableTag.create(h.CONSTANT_TAG);return n.tag=(0,h.combine)([r,i]),n}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.compute=function(){var e=this.parentReference,t=this.propertyTag,n=this.propertyKey,r=e.value(),i=typeof r;if(\"string\"==i&&\"length\"===n)return r.length;if(\"object\"==i&&null!==r||\"function\"==i){var o=r,a=(0,f.get)(o,n);return t.inner.update((0,f.tagForProperty)(o,n)),a}},t[Y]=function(e){(0,f.set)(this.parentReference.value(),this.propertyKey,e)},e}(J),te=function(n){function e(e){var t=n.call(this)||this;return t.tag=h.DirtyableTag.create(),t._value=e,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.value=function(){return this._value},t.update=function(e){e!==this._value&&(this.tag.inner.dirty(),this._value=e)},e}(K);e.UpdatableReference=te;var ne=function(n){function r(e){var t=n.call(this,e)||this;return t.objectTag=h.UpdatableTag.create(h.CONSTANT_TAG),t.tag=(0,h.combine)([e.tag,t.objectTag]),t}return(0,s.inheritsLoose)(r,n),r.create=function(e){if((0,h.isConst)(e)){var t=e.value();if(!(0,m.isProxy)(t))return p.PrimitiveReference.create(W(t))}return new r(e)},r.prototype.toBool=function(e){return(0,m.isProxy)(e)?(this.objectTag.inner.update((0,f.tagForProperty)(e,\"isTruthy\")),Boolean((0,f.get)(e,\"isTruthy\"))):(this.objectTag.inner.update((0,f.tagFor)(e)),W(e))},r}(p.ConditionalReference),re=function(r){function a(e,t){var n=r.call(this)||this;return n.helper=e,n.args=t,n.tag=t.tag,n}return(0,s.inheritsLoose)(a,r),a.create=function(e,t){if((0,h.isConst)(t)){var n=t.positional,r=t.named,i=n.value(),o=r.value();return fe(e(i,o))}return new a(e,t)},a.prototype.compute=function(){var e=this.helper,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value();return e(i,o)},a}($),ie=function(r){function n(e,t){var n=r.call(this)||this;return n.instance=e,n.args=t,n.tag=(0,h.combine)([e[z],t.tag]),n}return(0,s.inheritsLoose)(n,r),n.create=function(e,t){return new n(e,t)},n.prototype.compute=function(){var e=this.instance,t=this.args,n=t.positional,r=t.named,i=n.value(),o=r.value();return e.compute(i,o)},n}($),oe=function(r){function e(e,t){var n=r.call(this)||this;return n.helper=e,n.args=t,n.tag=t.tag,n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){return(0,this.helper)(this.args)},e}($),ae=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return fe(e,!1)},t.prototype.get=function(e){return fe(this.inner[e],!1)},t}(h.ConstReference),se=function(n){function e(e){var t=n.call(this)||this;return t.inner=e,t.tag=e.tag,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.compute=function(){return this.inner.value()},t.get=function(e){return this.inner.get(e)},(0,s.createClass)(e,[{key:G,get:function(){return this.inner[G]}}]),e}($);function ue(e,t){for(var n=e,r=0;r<t.length;r++)n=n.get(t[r]);return n}function le(e){return null!==e&&\"object\"==typeof e}function ce(e){return\"function\"==typeof e}function he(){return 1}function fe(e,t){return le(e)?new(!(1<arguments.length&&void 0!==t)||t?X:ae)(e):ce(e)?new ae(e):p.PrimitiveReference.create(e)}var pe=(0,m.symbol)(\"DIRTY_TAG\"),de=(0,m.symbol)(\"ARGS\"),me=(0,m.symbol)(\"ROOT_REF\");e.ROOT_REF=me;var ve=(0,m.symbol)(\"IS_DISPATCHING_ATTRS\"),ge=(0,m.symbol)(\"HAS_BLOCK\"),ye=(0,m.symbol)(\"BOUNDS\"),be=v.CoreView.extend(v.ChildViewsSupport,v.ViewStateSupport,v.ClassNamesSupport,o.TargetActionSupport,v.ActionSupport,v.ViewMixin,((I={isComponent:!0,init:function(){this._super.apply(this,arguments),this[ve]=!1,this[pe]=h.DirtyableTag.create(),this[me]=new X(this),this[ye]=null},rerender:function(){this[pe].inner.dirty(),this._super()}})[f.PROPERTY_DID_CHANGE]=function(e){var t,n;this[ve]||void 0!==(n=void 0!==(t=this[de])?t[e]:void 0)&&void 0!==n[Y]&&n[Y]((0,f.get)(this,e))},I.getAttr=function(e){return this.get(e)},I.readDOMAttr=function(e){var t=(0,v.getViewElement)(this),n=t,r=n.namespaceURI===p.SVG_NAMESPACE,i=(0,p.normalizeProperty)(n,e),o=i.type,a=i.normalized;return r||\"attr\"===o?n.getAttribute(a):n[a]},I.didReceiveAttrs=function(){},I.didRender=function(){},I.willRender=function(){},I.didUpdateAttrs=function(){},I.willUpdate=function(){},I.didUpdate=function(){},I));(e.Component=be).toString=function(){return\"@ember/component\"},be.reopenClass({isComponentFactory:!0,positionalParams:[]}),(0,o.setFrameworkClass)(be);var _e=F({id:\"hvtsz7RF\",block:'{\"symbols\":[],\"statements\":[],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/empty.hbs\"}}),we=be.extend({layout:_e,classNames:[\"ember-checkbox\"],tagName:\"input\",attributeBindings:[\"type\",\"checked\",\"indeterminate\",\"disabled\",\"tabindex\",\"name\",\"autofocus\",\"required\",\"form\"],type:\"checkbox\",disabled:!1,indeterminate:!1,didInsertElement:function(){this._super.apply(this,arguments),this.element.indeterminate=Boolean(this.indeterminate)},change:function(){(0,f.set)(this,\"checked\",this.element.checked)}});(e.Checkbox=we).toString=function(){return\"@ember/component/checkbox\"};var Ee=u.hasDOM?Object.create(null):null;var Te=be.extend(v.TextSupport,{layout:_e,classNames:[\"ember-text-field\"],tagName:\"input\",attributeBindings:[\"accept\",\"autocomplete\",\"autosave\",\"dir\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"inputmode\",\"lang\",\"list\",\"type\",\"max\",\"min\",\"multiple\",\"name\",\"pattern\",\"size\",\"step\",\"value\",\"width\"],value:\"\",type:(0,f.computed)({get:function(){return\"text\"},set:function(e,t){var n=\"text\";return function(e){if(!u.hasDOM)return Boolean(e);if(e in Ee)return Ee[e];var t=document.createElement(\"input\");try{t.type=e}catch(e){}return Ee[e]=t.type===e}(t)&&(n=t),n}}),size:null,pattern:null,min:null,max:null});(e.TextField=Te).toString=function(){return\"@ember/component/text-field\"};var Ce=be.extend(v.TextSupport,{classNames:[\"ember-text-area\"],layout:_e,tagName:\"textarea\",attributeBindings:[\"rows\",\"cols\",\"name\",\"selectionEnd\",\"selectionStart\",\"autocomplete\",\"wrap\",\"lang\",\"dir\",\"value\"],rows:null,cols:null});(e.TextArea=Ce).toString=function(){return\"@ember/component/text-area\"};var Re,ke=F({id:\"giTNx+op\",block:'{\"symbols\":[\"&default\"],\"statements\":[[4,\"if\",[[25,1]],null,{\"statements\":[[14,1]],\"parameters\":[]},{\"statements\":[[1,[23,0,[\"linkTitle\"]],false]],\"parameters\":[]}]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs\"}}),xe=Object.freeze({toString:function(){return\"UNDEFINED\"}}),Ae=Object.freeze({});(Re=be.extend({layout:ke,tagName:\"a\",route:xe,model:xe,models:xe,query:xe,\"current-when\":null,title:null,rel:null,tabindex:null,target:null,activeClass:\"active\",loadingClass:\"loading\",disabledClass:\"disabled\",replace:!1,attributeBindings:[\"href\",\"title\",\"rel\",\"tabindex\",\"target\"],classNameBindings:[\"active\",\"loading\",\"disabled\",\"transitioningIn\",\"transitioningOut\"],eventName:\"click\",init:function(){this._super.apply(this,arguments);var e=this.eventName;this.on(e,this,this._invoke)},_routing:(0,n.inject)(\"-routing\"),_currentRoute:(0,f.alias)(\"_routing.currentRouteName\"),_currentRouterState:(0,f.alias)(\"_routing.currentState\"),_targetRouterState:(0,f.alias)(\"_routing.targetState\"),_route:(0,f.computed)(\"route\",\"_currentRouterState\",function(){var e=this.route;return e===xe?this._currentRoute:e}),_models:(0,f.computed)(\"model\",\"models\",function(){var e=this.model,t=this.models;return e!==xe?[e]:t!==xe?t:[]}),_query:(0,f.computed)(\"query\",function(){var e=this.query;return e===xe?Ae:(0,c.assign)({},e)}),disabled:(0,f.computed)({get:function(e){return!1},set:function(e,t){return!!(this._isDisabled=t)&&this.disabledClass}}),active:(0,f.computed)(\"activeClass\",\"_active\",function(){return!!this._active&&this.activeClass}),_active:(0,f.computed)(\"_currentRouterState\",\"_route\",\"_models\",\"_query\",\"loading\",\"current-when\",function(){var e=this._currentRouterState;return!!e&&this._isActive(e)}),willBeActive:(0,f.computed)(\"_currentRouterState\",\"_targetRouterState\",\"_route\",\"_models\",\"_query\",\"loading\",\"current-when\",function(){var e=this._currentRouterState,t=this._targetRouterState;if(e!==t)return this._isActive(t)}),_isActive:function(e){if(this.loading)return!1;if(\"boolean\"==typeof(n=this[\"current-when\"]))return n;for(var t=Boolean(n),n=t?n.split(\" \"):[this._route],r=this._models,i=this._query,o=this._routing,a=0;a<n.length;a++)if(o.isActiveForRoute(r,i,n[a],e,t))return!0;return!1},transitioningIn:(0,f.computed)(\"_active\",\"willBeActive\",function(){return!0===this.willBeActive&&!this._active&&\"ember-transitioning-in\"}),transitioningOut:(0,f.computed)(\"_active\",\"willBeActive\",function(){return!(!1!==this.willBeActive||!this._active)&&\"ember-transitioning-out\"}),_invoke:function(e){if(!(0,v.isSimpleClick)(e))return!0;var t=this.bubbles,n=this.preventDefault,r=this.element.target,i=!r||\"_self\"===r;if(!1!==n&&i&&e.preventDefault(),!1===t&&e.stopPropagation(),this._isDisabled)return!1;if(this.loading)return!1;if(!i)return!1;var o=this._route,a=this._models,s=this._query,u=this.replace,l={queryParams:s,routeName:o};return(0,g.flaggedInstrument)(\"interaction.link-to\",l,this._generateTransition(l,o,a,s,u)),!1},_generateTransition:function(e,t,n,r,i){var o=this._routing;return function(){e.transition=o.transitionTo(t,n,r,i)}},href:(0,f.computed)(\"_currentRouterState\",\"_route\",\"_models\",\"_query\",\"tagName\",\"loading\",\"loadingHref\",function(){if(\"a\"===this.tagName){if(this.loading)return this.loadingHref;var e=this._route,t=this._models,n=this._query,r=this._routing;return r.generateURL(e,t,n)}}),loading:(0,f.computed)(\"_route\",\"_modelsAreLoaded\",\"loadingClass\",function(){var e=this._route;if(!this._modelsAreLoaded||null==e)return this.loadingClass}),_modelsAreLoaded:(0,f.computed)(\"_models\",function(){for(var e=this._models,t=0;t<e.length;t++){var n=e[t];if(null==n)return!1}return!0}),loadingHref:\"#\",didReceiveAttrs:function(){var e=this.disabledWhen;void 0!==e&&this.set(\"disabled\",e);var t,n,r,i=this.params;i&&0!==i.length?(i=i.slice(),this[ge]||this.set(\"linkTitle\",i.shift()),(t=i[i.length-1])&&t.isQueryParams?this.set(\"query\",i.pop().values):this.set(\"query\",xe),0===i.length?this.set(\"route\",xe):this.set(\"route\",i.shift()),this.set(\"model\",xe),this.set(\"models\",i)):0<(n=this._models).length&&(\"object\"==typeof(r=n[n.length-1])&&null!==r&&r.isQueryParams&&(this.query=r.values,n.pop()))}})).toString=function(){return\"@ember/routing/link-component\"},Re.reopenClass({positionalParams:\"params\"});var Oe,Se=Re;e.LinkComponent=Se;var Ne=Oe;e.DebugStack=Ne;var Pe=(0,m.symbol)(\"EACH_IN\"),Le=function(){function e(e){this.inner=e,this.tag=e.tag,this[Pe]=!0}var t=e.prototype;return t.value=function(){return this.inner.value()},t.get=function(e){return this.inner.get(e)},e}();function Me(e,t){return null!==(n=e)&&\"object\"==typeof n&&n[Pe]?new He(e,t||\"@key\"):new Ve(e,t||\"@identity\");var n}var je=function(){function e(e,t){this.length=e,this.keyFor=t,this.position=0}var t=e.prototype;return t.isEmpty=function(){return!1},t.memoFor=function(e){return e},t.next=function(){var e=this.length,t=this.keyFor,n=this.position;if(e<=n)return null;var r=this.valueFor(n),i=this.memoFor(n),o=t(r,i,n);return this.position++,{key:o,value:r,memo:i}},e}(),De=function(i){function e(e,t,n){var r=i.call(this,t,n)||this;return r.array=e,r}return(0,s.inheritsLoose)(e,i),e.from=function(e,t){var n=e.length;return 0===n?qe:new this(e,n,t)},e.fromForEachable=function(e,t){var n=[];return e.forEach(function(e){return n.push(e)}),this.from(n,t)},e.prototype.valueFor=function(e){return this.array[e]},e}(je),Ie=function(i){function e(e,t,n){var r=i.call(this,t,n)||this;return r.array=e,r}return(0,s.inheritsLoose)(e,i),e.from=function(e,t){var n=e.length;return 0===n?qe:new this(e,n,t)},e.prototype.valueFor=function(e){return(0,f.objectAt)(this.array,e)},e}(je),Fe=function(o){function e(e,t,n,r){var i=o.call(this,n,r)||this;return i.keys=e,i.values=t,i}(0,s.inheritsLoose)(e,o),e.fromIndexable=function(e,t){var n=Object.keys(e),r=n.length;if(0===r)return qe;for(var i=[],o=0;o<r;o++)i.push((0,f.get)(e,n[o]));return new this(n,i,r,t)},e.fromForEachable=function(e,t){var n=arguments,r=[],i=[],o=0,a=!1;return e.forEach(function(e,t){(a=a||2<=n.length)&&r.push(t),i.push(e),o++}),0===o?qe:a?new this(r,i,o,t):new De(i,o,t)};var t=e.prototype;return t.valueFor=function(e){return this.values[e]},t.memoFor=function(e){return this.keys[e]},e}(je),Be=function(){function e(e,t,n){this.iterable=e,this.result=t,this.keyFor=n,this.position=0}e.from=function(e,t){var n=e[Symbol.iterator](),r=n.next(),i=r.value;return r.done?qe:new(Array.isArray(i)&&2===i.length?this:Ue)(n,r,t)};var t=e.prototype;return t.isEmpty=function(){return!1},t.next=function(){var e=this.iterable,t=this.result,n=this.position,r=this.keyFor;if(t.done)return null;var i=this.valueFor(t,n),o=this.memoFor(t,n),a=r(i,o,n);return this.position++,this.result=e.next(),{key:a,value:i,memo:o}},e}(),Ue=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.valueFor=function(e){return e.value},n.memoFor=function(e,t){return t},t}(Be),ze=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.valueFor=function(e){return e.value[1]},n.memoFor=function(e){return e.value[0]},t}(Be),qe={isEmpty:function(){return!0},next:function(){return null}},He=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=h.UpdatableTag.create(h.CONSTANT_TAG),this.tag=(0,h.combine)([e.tag,this.valueTag])}var t=e.prototype;return t.iterate=function(){var e,t=this.ref,n=this.valueTag,r=t.value(),i=(0,f.tagFor)(r);return(0,m.isProxy)(r)&&(r=(0,o._contentFor)(r)),n.inner.update(i),null===(e=r)||\"object\"!=typeof e&&\"function\"!=typeof e?qe:Array.isArray(r)||(0,m.isEmberArray)(r)?Fe.fromIndexable(r,this.keyFor(!0)):m.HAS_NATIVE_SYMBOL&&Ye(r)?ze.from(r,this.keyFor()):We(r)?Fe.fromForEachable(r,this.keyFor()):Fe.fromIndexable(r,this.keyFor(!0))},t.valueReferenceFor=function(e){return new te(e.value)},t.updateValueReference=function(e,t){e.update(t.value)},t.memoReferenceFor=function(e){return new te(e.memo)},t.updateMemoReference=function(e,t){e.update(t.memo)},t.keyFor=function(e){var t=0<arguments.length&&void 0!==e&&e,n=this.keyPath;switch(n){case\"@key\":return t?Qe:Je(Ke);case\"@index\":return Ge;case\"@identity\":return Je($e);default:return Je(Xe(n))}},e}(),Ve=function(){function e(e,t){this.ref=e,this.keyPath=t,this.valueTag=h.UpdatableTag.create(h.CONSTANT_TAG),this.tag=(0,h.combine)([e.tag,this.valueTag])}var t=e.prototype;return t.iterate=function(){var e=this.ref,t=this.valueTag,n=e.value();if(t.inner.update((0,f.tagForProperty)(n,\"[]\")),null===n||\"object\"!=typeof n)return qe;var r=this.keyFor();return Array.isArray(n)?De.from(n,r):(0,m.isEmberArray)(n)?Ie.from(n,r):m.HAS_NATIVE_SYMBOL&&Ye(n)?Ue.from(n,r):We(n)?De.fromForEachable(n,r):qe},t.valueReferenceFor=function(e){return new te(e.value)},t.updateValueReference=function(e,t){e.update(t.value)},t.memoReferenceFor=function(e){return new te(e.memo)},t.updateMemoReference=function(e,t){e.update(t.memo)},t.keyFor=function(){var e=this.keyPath;switch(e){case\"@index\":return Ge;case\"@identity\":return Je($e);default:return Je(Xe(e))}},e}();function We(e){return\"function\"==typeof e.forEach}function Ye(e){return\"function\"==typeof e[Symbol.iterator]}function Ge(e,t,n){return String(n)}function Qe(e,t){return t}function Ke(e,t){return $e(t)}function $e(e){switch(typeof e){case\"string\":return e;case\"number\":return String(e);default:return(0,m.guidFor)(e)}}function Xe(t){return function(e){return String((0,f.get)(e,t))}}function Je(o){var a={};return function(e,t,n){var r=o(e,t,n),i=a[r];return void 0===i?(a[r]=0,r):(a[r]=++i,r+\"be277757-bbbe-4620-9fcb-213ef433cca2\"+i)}}var Ze=function(){function e(e){this.string=e}var t=e.prototype;return t.toString=function(){return\"\"+this.string},t.toHTML=function(){return this.toString()},e}();e.SafeString=Ze;var et,tt,nt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\",\"=\":\"&#x3D;\"},rt=/[&<>\"'`=]/,it=/[&<>\"'`=]/g;function ot(e){return nt[e]}function at(e){return null==e?e=\"\":\"string\"!=typeof e&&(e=String(e)),new Ze(e)}function st(e){return null!==e&&\"object\"==typeof e&&\"function\"==typeof e.toHTML}function ut(e){return(tt=tt||document.createElement(\"a\")).href=e,tt.protocol}function lt(e){var t=null;return\"string\"==typeof e&&(t=et.parse(e).protocol),null===t?\":\":t}var ct=function(n){function e(e){var t=n.call(this,e)||this;return t.inTransaction=!1,t.owner=e[a.OWNER],t.isInteractive=t.owner.lookup(\"-environment:main\").isInteractive,t.destroyedComponents=[],function(e){var t;if(u.hasDOM&&(t=ut.call(e,\"foobar:baz\")),\"foobar:\"===t)e.protocolForURL=ut;else if(\"object\"==typeof URL)et=URL,e.protocolForURL=lt;else{if(\"function\"!=typeof r.require)throw new Error(\"Could not find valid URL parsing mechanism for URL Sanitization\");et=(0,r.require)(\"url\"),e.protocolForURL=lt}}((0,s.assertThisInitialized)(t)),t}(0,s.inheritsLoose)(e,n),e.create=function(e){return new this(e)};var t=e.prototype;return t.protocolForURL=function(e){return e},t.lookupComponent=function(e,t){return(0,v.lookupComponent)(t.owner,e,t)},t.toConditionalReference=function(e){return ne.create(e)},t.iterableFor=Me,t.scheduleInstallModifier=function(e,t){this.isInteractive&&n.prototype.scheduleInstallModifier.call(this,e,t)},t.scheduleUpdateModifier=function(e,t){this.isInteractive&&n.prototype.scheduleUpdateModifier.call(this,e,t)},t.didDestroy=function(e){e.destroy()},t.begin=function(){this.inTransaction=!0,n.prototype.begin.call(this)},t.commit=function(){var e=this.destroyedComponents;this.destroyedComponents=[];for(var t=0;t<e.length;t++)e[t].destroy();try{n.prototype.commit.call(this)}finally{this.inTransaction=!1}},e}(p.Environment);e.Environment=ct;var ht=function(){function e(){this.debugStack=void 0}var t=e.prototype;return t.prepareArgs=function(){return null},t.didCreateElement=function(){},t.didRenderLayout=function(){},t.didCreate=function(){},t.update=function(){},t.didUpdateLayout=function(){},t.didUpdate=function(){},e}();function ft(e){return{object:e.name+\":\"+e.outlet}}e.AbstractComponentManager=ht;function pt(e,t){var n=1<arguments.length&&void 0!==t?t:vt;this.state=e,this.manager=n}var dt={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!1,createInstance:!0},mt=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.create=function(e,t,n,r){r.outletState=t.ref;var i=t.controller;return{self:void 0===i?p.UNDEFINED_REFERENCE:new X(i),finalize:(0,g._instrumentStart)(\"render.outlet\",ft,t)}},n.getLayout=function(e){var t=e.template.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return dt},n.getSelf=function(e){return e.self},n.getTag=function(){return h.CONSTANT_TAG},n.didRenderLayout=function(e){e.finalize()},n.getDestructor=function(){return null},t}(ht),vt=new mt;function gt(){}var yt=function(){function e(e,t,n,r,i){this.environment=e,this.component=t,this.args=n,this.finalizer=r,this.hasWrappedElement=i,this.classRef=null,this.classRef=null,this.argsRevision=null===n?0:n.tag.value()}var t=e.prototype;return t.destroy=function(){var e,t=this.component,n=this.environment;n.isInteractive&&(t.trigger(\"willDestroyElement\"),t.trigger(\"willClearRender\"),(e=(0,v.getViewElement)(t))&&((0,v.clearElementView)(e),(0,v.clearViewElement)(t))),n.destroyedComponents.push(t)},t.finalize=function(){(0,this.finalizer)(),this.finalizer=gt},e}();function bt(e,t){return e[me].get(t)}function _t(e,t){return\"attrs\"===t[0]&&(t.shift(),1===t.length)?bt(e,t[0]):ue(e[me],t)}function wt(e){if(null!==e){var t=e[0],n=e[1],r=null===t?-1:t.indexOf(\"class\");if(-1!==r){var i=n[r];if(!Array.isArray(i))return;var o,a,s=i[0];s!==_.Ops.Get&&s!==_.Ops.MaybeLocal||(a=(o=i[i.length-1])[o.length-1],n[r]=[_.Ops.Helper,\"-class\",[i,a],null])}}}var Et=function(e){var t=e.indexOf(\":\");if(-1===t)return[e,e,!0];var n=e.substring(0,t),r=e.substring(t+1);return[n,r,!1]},Tt=function(e,t,n,r){var i=n[0],o=n[1];n[2];if(\"id\"===o){var a=(0,f.get)(t,i);return null==a&&(a=t.elementId),a=p.PrimitiveReference.create(a),void r.setAttribute(\"id\",a,!0,null)}var s=-1<i.indexOf(\".\"),u=s?_t(t,i.split(\".\")):bt(t,i);\"style\"===o&&(u=new kt(u,bt(t,\"isVisible\"))),r.setAttribute(o,u,!1,null)},Ct=\"display: none;\",Rt=at(Ct),kt=function(r){function e(e,t){var n=r.call(this)||this;return n.inner=e,n.isVisible=t,n.tag=(0,h.combine)([e.tag,t.tag]),n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.inner.value();if(!1!==this.isVisible.value())return e;if(e){var t=e+\" \"+Ct;return st(e)?at(t):t}return Rt},e}(h.CachedReference),xt={install:function(e,t,n){n.setAttribute(\"style\",(0,h.map)(bt(t,\"isVisible\"),this.mapStyleValue),!1,null)},mapStyleValue:function(e){return!1===e?Rt:null}},At=function(e,t,n,r){var i,o,a,s,u=n.split(\":\"),l=u[0],c=u[1],h=u[2];\"\"===l?r.setAttribute(\"class\",p.PrimitiveReference.create(c),!0,null):(o=(i=-1<l.indexOf(\".\"))?l.split(\".\"):[],a=i?_t(t,o):bt(t,l),s=void 0===c?new Ot(a,i?o[o.length-1]:l):new St(a,c,h),r.setAttribute(\"class\",s,!1,null))},Ot=function(r){function e(e,t){var n=r.call(this)||this;return n.inner=e,n.path=t,n.tag=e.tag,n.inner=e,n.path=t,n.dasherizedPath=null,n}return(0,s.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.inner.value();if(!0!==e)return e||0===e?String(e):null;var t=this.path;return this.dasherizedPath||(this.dasherizedPath=(0,b.dasherize)(t))},e}(h.CachedReference),St=function(i){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,r=i.call(this)||this;return r.inner=e,r.truthy=t,r.falsy=n,r.tag=e.tag,r}return(0,s.inheritsLoose)(e,i),e.prototype.compute=function(){var e=this.inner,t=this.truthy,n=this.falsy;return e.value()?t:n},e}(h.CachedReference);function Nt(e){var t=e.names,n=e.value(),r=Object.create(null),i=Object.create(null);r[de]=i;for(var o=0;o<t.length;o++){var a=t[o],s=e.get(a),u=n[a];\"function\"==typeof u&&u[Q]?n[a]=u:s[Y]&&(n[a]=new Lt(s,u)),i[a]=s,r[a]=u}return r.attrs=n,r}var Pt=(0,m.symbol)(\"REF\"),Lt=function(){function e(e,t){this[v.MUTABLE_CELL]=!0,this[Pt]=e,this.value=t}return e.prototype.update=function(e){this[Pt][Y](e)},e}();var Mt=(0,w.privatize)(j()),jt=[];(0,t.debugFreeze)(jt);var Dt=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getLayout=function(e){return{handle:e.handle,symbolTable:e.symbolTable}},n.templateFor=function(e,t){var n=e.layout,r=e.layoutName,i=(0,a.getOwner)(e);if(void 0!==n)return\"function\"==typeof n.create?t.createTemplate(n,(0,a.getOwner)(e)):n;if(r){var o=i.lookup(\"template:\"+r);if(o)return o}return i.lookup(Mt)},n.getDynamicLayout=function(e,t){var n=e.component,r=this.templateFor(n,t).asWrappedLayout();return{handle:r.compile(),symbolTable:r.symbolTable}},n.getTagName=function(e){var t=e.component;return e.hasWrappedElement?t&&t.tagName||\"div\":null},n.getCapabilities=function(e){return e.capabilities},n.prepareArgs=function(e,t){if(t.named.has(\"__ARGS__\")){var n=t.named.get(\"__ARGS__\").value(),r={positional:jt,named:(0,c.assign)({},t.named.capture().map,n)};return r}var i=e.ComponentClass.class.positionalParams;if(null==i||0===t.positional.length)return null;if(\"string\"==typeof i){var o={};o[i]=t.positional.capture(),s=o,(0,c.assign)(s,t.named.capture().map)}else{if(!(Array.isArray(i)&&0<i.length))return null;var a=Math.min(i.length,t.positional.length),s={};(0,c.assign)(s,t.named.capture().map);for(var u=0;u<a;u++){var l=i[u];s[l]=t.positional.at(u)}}return{positional:d.EMPTY_ARRAY,named:s}},n.create=function(e,t,n,r,i,o){var a,s=r.view,u=t.ComponentClass,l=n.named.capture(),c=Nt(l);a=c,n.named.has(\"id\")&&(a.elementId=a.id),c.parentView=s,c[ge]=o,c._target=i.value(),t.template&&(c.layout=t.template);var h=u.create(c),f=(0,g._instrumentStart)(\"render.component\",It,h);r.view=h,null!=s&&(0,v.addChildView)(s,h),h.trigger(\"didReceiveAttrs\");var p=\"\"!==h.tagName;p||(e.isInteractive&&h.trigger(\"willRender\"),h._transitionTo(\"hasElement\"),e.isInteractive&&h.trigger(\"willInsertElement\"));var d=new yt(e,h,l,f,p);return n.named.has(\"class\")&&(d.classRef=n.named.get(\"class\")),e.isInteractive&&p&&h.trigger(\"willRender\"),d},n.getSelf=function(e){return e.component[me]},n.didCreateElement=function(e,t,n){var r=e.component,i=e.classRef,o=e.environment;(0,v.setViewElement)(r,t),(0,v.setElementView)(t,r);var a,s,u=r.attributeBindings,l=r.classNames,c=r.classNameBindings;u&&u.length?function(e,t,n,r){for(var i,o=[],a=t.length-1;-1!==a;){var s=t[a],u=Et(s),l=u[1];-1===o.indexOf(l)&&(o.push(l),Tt(e,n,u,r)),a--}-1===o.indexOf(\"id\")&&(i=n.elementId?n.elementId:(0,m.guidFor)(n),r.setAttribute(\"id\",p.PrimitiveReference.create(i),!1,null)),-1===o.indexOf(\"style\")&&xt.install(e,n,r)}(t,u,r,n):(a=r.elementId?r.elementId:(0,m.guidFor)(r),n.setAttribute(\"id\",p.PrimitiveReference.create(a),!1,null),xt.install(t,r,n)),i&&(s=new Ot(i,i.propertyKey),n.setAttribute(\"class\",s,!1,null)),l&&l.length&&l.forEach(function(e){n.setAttribute(\"class\",p.PrimitiveReference.create(e),!1,null)}),c&&c.length&&c.forEach(function(e){At(t,r,e,n)}),n.setAttribute(\"class\",p.PrimitiveReference.create(\"ember-view\"),!1,null),\"ariaRole\"in r&&n.setAttribute(\"role\",bt(r,\"ariaRole\"),!1,null),r._transitionTo(\"hasElement\"),o.isInteractive&&r.trigger(\"willInsertElement\")},n.didRenderLayout=function(e,t){e.component[ye]=t,e.finalize()},n.getTag=function(e){var t=e.args,n=e.component;return t?(0,h.combine)([t.tag,n[pe]]):n[pe]},n.didCreate=function(e){var t=e.component;e.environment.isInteractive&&(t._transitionTo(\"inDOM\"),t.trigger(\"didInsertElement\"),t.trigger(\"didRender\"))},n.update=function(e){var t,n=e.component,r=e.args,i=e.argsRevision,o=e.environment;e.finalizer=(0,g._instrumentStart)(\"render.component\",Ft,n),r&&!r.tag.validate(i)&&(t=Nt(r),e.argsRevision=r.tag.value(),n[ve]=!0,n.setProperties(t),n[ve]=!1,n.trigger(\"didUpdateAttrs\"),n.trigger(\"didReceiveAttrs\")),o.isInteractive&&(n.trigger(\"willUpdate\"),n.trigger(\"willRender\"))},n.didUpdateLayout=function(e){e.finalize()},n.didUpdate=function(e){var t=e.component;e.environment.isInteractive&&(t.trigger(\"didUpdate\"),t.trigger(\"didRender\"))},n.getDestructor=function(e){return e},t}(ht);function It(e){return e.instrumentDetails({initialRender:!0})}function Ft(e){return e.instrumentDetails({initialRender:!1})}function Bt(e,t,n,r,i){this.name=e,this.ComponentClass=t,this.handle=n,this.manager=zt;var o=r&&r.asLayout(),a=o?o.symbolTable:void 0;this.symbolTable=a,this.template=r,this.args=i,this.state={name:e,ComponentClass:t,handle:n,template:r,capabilities:Ut,symbolTable:a}}var Ut={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},zt=new Dt,qt=function(n){function e(e){var t=n.call(this)||this;return t.component=e,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.getLayout=function(e,t){var n=this.templateFor(this.component,t).asWrappedLayout();return{handle:n.compile(),symbolTable:n.symbolTable}},t.create=function(e,t,n,r){var i=this.component;var o=(0,g._instrumentStart)(\"render.component\",It,i),a=\"\"!==(r.view=i).tagName;return a||(e.isInteractive&&i.trigger(\"willRender\"),i._transitionTo(\"hasElement\"),e.isInteractive&&i.trigger(\"willInsertElement\")),new yt(e,i,null,o,a)},e}(Dt),Ht={dynamicLayout:!1,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},Vt=function(){function e(e){this.component=e;var t=new qt(e);this.manager=t;var n=w.FACTORY_FOR.get(e);this.state={name:n.fullName.slice(10),capabilities:Ht,ComponentClass:n,handle:null}}return e.prototype.getTag=function(e){return e.component[pe]},e}(),Wt=function(){function e(e,t){this.view=e,this.outletState=t}var t=e.prototype;return t.child=function(){return new e(this.view,this.outletState)},t.get=function(){return this.outletState},t.set=function(e,t){return this.outletState=t},e}(),Yt=function(){function e(e,o,a,s,u,l,c){var h=this;this.id=(0,v.getViewId)(e),this.env=o,this.root=e,this.result=void 0,this.shouldReflush=!1,this.destroyed=!1;var f=this.options={alwaysRevalidate:!1};this.render=function(){for(var e,t=a.asLayout(),n=t.compile(),r=(0,p.renderMain)(t.compiler.program,o,s,l,c(o,{element:u,nextSibling:null}),n);!(e=r.next()).done;);var i=h.result=e.value;h.render=function(){return i.rerender(f)}}}var t=e.prototype;return t.isFor=function(e){return this.root===e},t.destroy=function(){var e=this.result,t=this.env;if(this.destroyed=!0,this.env=void 0,this.root=null,this.result=void 0,this.render=void 0,e){var n=!t.inTransaction;n&&t.begin();try{e.destroy()}finally{n&&t.commit()}}},e}(),Gt=[];function Qt(e){var t=Gt.indexOf(e);Gt.splice(t,1)}function Kt(){}var $t=null;var Xt=0;l.backburner.on(\"begin\",function(){for(var e=0;e<Gt.length;e++)Gt[e]._scheduleRevalidate()}),l.backburner.on(\"end\",function(){for(var e,t=0;t<Gt.length;t++)if(!Gt[t]._isValid()){if(Xt>y.ENV._RERENDER_LOOP_LIMIT)throw Xt=0,Gt[t].destroy(),new Error(\"infinite rendering invalidation detected\");return Xt++,l.backburner.join(null,Kt)}Xt=0,null!==$t&&(e=$t.resolve,$t=null,l.backburner.join(null,e))});var Jt=function(){function e(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]&&arguments[3],i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:p.clientBuilder;this._env=e,this._rootTemplate=t,this._viewRegistry=n,this._destinedForDOM=r,this._destroyed=!1,this._roots=[],this._lastRevision=-1,this._isRenderingRoots=!1,this._removedRoots=[],this._builder=i}var t=e.prototype;return t.appendOutletView=function(e,t){var n=function(e){if(y.ENV._APPLICATION_TEMPLATE_WRAPPER){var r=(0,c.assign)({},dt,{dynamicTag:!0,elementHook:!0}),t=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getTagName=function(){return\"div\"},n.getLayout=function(e){var t=e.template.asWrappedLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return r},n.didCreateElement=function(e,t){t.setAttribute(\"class\",\"ember-view\"),t.setAttribute(\"id\",(0,m.guidFor)(e))},t}(mt));return new pt(e.state,t)}return new pt(e.state)}(e);this._appendDefinition(e,(0,p.curry)(n),t)},t.appendTo=function(e,t){var n=new Vt(e);this._appendDefinition(e,(0,p.curry)(n),t)},t._appendDefinition=function(e,t,n){var r=new ae(t),i=new Wt(null,p.UNDEFINED_REFERENCE),o=new Yt(e,this._env,this._rootTemplate,r,n,i,this._builder);this._renderRoot(o)},t.rerender=function(){this._scheduleRevalidate()},t.register=function(e){var t=(0,v.getViewId)(e);this._viewRegistry[t]=e},t.unregister=function(e){delete this._viewRegistry[(0,v.getViewId)(e)]},t.remove=function(e){e._transitionTo(\"destroying\"),this.cleanupRootFor(e),this._destinedForDOM&&e.trigger(\"didDestroyElement\")},t.cleanupRootFor=function(e){if(!this._destroyed)for(var t=this._roots,n=this._roots.length;n--;){var r=t[n];r.isFor(e)&&(r.destroy(),t.splice(n,1))}},t.destroy=function(){this._destroyed||(this._destroyed=!0,this._clearAllRoots())},t.getBounds=function(e){var t=e[ye];return{parentElement:t.parentElement(),firstNode:t.firstNode(),lastNode:t.lastNode()}},t.createElement=function(e){return this._env.getAppendOperations().createElement(e)},t._renderRoot=function(e){var t,n=this._roots;n.push(e),1===n.length&&(t=this,Gt.push(t)),this._renderRootsTransaction()},t._renderRoots=function(){var e,t=this._roots,n=this._env,r=this._removedRoots,i=!1;do{n.begin();try{e=t.length,i=!1;for(var o=0;o<t.length;o++){var a,s=t[o];s.destroyed?r.push(s):(a=s.shouldReflush,e<=o&&!a||(s.options.alwaysRevalidate=a,a=s.shouldReflush=(0,f.runInTransaction)(s,\"render\"),i=i||a))}this._lastRevision=h.CURRENT_TAG.value()}finally{n.commit()}}while(i||t.length>e);for(;r.length;){var u=r.pop(),l=t.indexOf(u);t.splice(l,1)}0===this._roots.length&&Qt(this)},t._renderRootsTransaction=function(){if(!this._isRenderingRoots){var e=!(this._isRenderingRoots=!0);try{this._renderRoots(),e=!0}finally{e||(this._lastRevision=h.CURRENT_TAG.value(),!0===this._env.inTransaction&&this._env.commit()),this._isRenderingRoots=!1}}},t._clearAllRoots=function(){for(var e=this._roots,t=0;t<e.length;t++){e[t].destroy()}this._removedRoots.length=0,this._roots=[],e.length&&Qt(this)},t._scheduleRevalidate=function(){l.backburner.scheduleOnce(\"render\",this,this._revalidate)},t._isValid=function(){return this._destroyed||0===this._roots.length||h.CURRENT_TAG.validate(this._lastRevision)},t._revalidate=function(){this._isValid()||this._renderRootsTransaction()},e}(),Zt=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!1,e.builder)},t.prototype.getElement=function(){throw new Error(\"Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).\")},t}(e.Renderer=Jt);e.InertRenderer=Zt;var en=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new this(e.env,e.rootTemplate,e._viewRegistry,!0,e.builder)},t.prototype.getElement=function(e){return(0,v.getViewElement)(e)},t}(Jt);e.InteractiveRenderer=en;var tn={};function nn(e,t,n){this.manager=e,this.state={ComponentClass:t,layout:n}}var rn=function(n){function e(e){var t=n.call(this)||this;return t.owner=e,t}return(0,s.inheritsLoose)(e,n),e.prototype.getLayout=function(e){var t=e.layout.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},e}(ht),on={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!0,createInstance:!0},an=[];(0,t.debugFreeze)(an);var sn,un=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getCapabilities=function(){return on},n.prepareArgs=function(e,t){var n=t.named.capture().map;return{positional:an,named:{__ARGS__:new X(n),type:t.named.get(\"type\")}}},n.create=function(e,t,n,r,i){var o=t.ComponentClass,a=n.named.get(\"type\"),s=o.create({caller:i.value(),type:a.value()});return{type:a,instance:s}},n.getSelf=function(e){var t=e.instance;return new X(t)},n.getTag=function(){return h.CONSTANT_TAG},n.update=function(e){var t=e.type,n=e.instance;(0,f.set)(n,\"type\",t.value())},n.getDestructor=function(e){return e.instance},t}(rn),ln=new WeakMap,cn=Object.getPrototypeOf;function hn(e,t){return ln.set(t,e),t}function fn(e){for(var t=e;null!=t;){if(ln.has(t))return ln.get(t);t=cn(t)}return null}hn({factory:function(e){return new un(e)},internal:!0,type:\"component\"},sn=o.Object.extend({isCheckbox:(0,f.computed)(\"type\",function(){return\"checkbox\"===this.type})})),sn.toString=function(){return\"@ember/component/input\"};var pn=sn,dn=V(function(e){return b.loc.apply(null,e)}),mn=function(){function e(e){this.resolver=e}var t=e.prototype;return t.getCapabilities=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state;return n.getCapabilities(r)},t.getLayout=function(e){var t=this.resolver.resolve(e),n=t.manager,r=t.state;if(n.getCapabilities(r).dynamicLayout)return null;var i=n.getLayout(r,this.resolver);return{compile:function(){return i.handle},symbolTable:i.symbolTable}},t.lookupHelper=function(e,t){return this.resolver.lookupHelper(e,t)},t.lookupModifier=function(e,t){return this.resolver.lookupModifier(e,t)},t.lookupComponentDefinition=function(e,t){return this.resolver.lookupComponentHandle(e,t)},t.lookupPartial=function(e,t){return this.resolver.lookupPartial(e,t)},e}(),vn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0};function gn(e){return e.capabilities.asyncLifeCycleCallbacks}function yn(e){return e.capabilities.destructor}function bn(e,t,n,r){this.name=e,this.ComponentClass=t,this.delegate=n,this.template=r,this.manager=En;var i=r.asLayout().symbolTable;this.symbolTable=i,this.state={name:e,ComponentClass:t,template:r,symbolTable:i,delegate:n}}function _n(e){this.state=e,this.manager=Rn}function wn(e,t){return t.positional.at(0)}var En=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.create=function(e,t,n){var r=t.delegate,i=n.capture(),o={},a=i.value(),s=r.createComponent(t.ComponentClass.class,a);return new Tn(r,s,i,o)},n.update=function(e){var t=e.delegate,n=e.component,r=e.args,i=(e.namedArgsProxy,r.value());t.updateComponent(n,i)},n.didCreate=function(e){var t=e.delegate,n=e.component;gn(t)&&t.didCreateComponent(n)},n.didUpdate=function(e){var t=e.delegate,n=e.component;gn(t)&&t.didUpdateComponent(n)},n.getContext=function(e){var t=e.delegate,n=e.component;t.getContext(n)},n.getSelf=function(e){var t=e.delegate,n=e.component;return X.create(t.getContext(n))},n.getDestructor=function(e){return yn(e.delegate)?e:null},n.getCapabilities=function(e){var t=e.delegate;return(0,c.assign)({},vn,{updateHook:t.capabilities.updateHook})},n.getTag=function(e){return e.args.tag},n.didRenderLayout=function(){},n.getLayout=function(e){return{handle:e.template.asLayout().compile(),symbolTable:e.symbolTable}},t}(ht)),Tn=function(){function e(e,t,n,r){this.delegate=e,this.component=t,this.args=n,this.namedArgsProxy=r}return e.prototype.destroy=function(){var e=this.delegate,t=this.component;yn(e)&&e.destroyComponent(t)},e}(),Cn={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0},Rn=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getLayout=function(e){var t=e.asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return Cn},n.create=function(){return null},n.getSelf=function(){return p.NULL_REFERENCE},n.getTag=function(){return h.CONSTANT_TAG},n.getDestructor=function(){return null},t}(ht));function kn(e){var t=e.positional,n=t.at(0),r=t.length,i=n.value();return!0===i?1<r?(0,b.dasherize)(t.at(1).value()):null:!1===i?2<r?(0,b.dasherize)(t.at(2).value()):null:i}function xn(e){return\"checkbox\"===e.positional.at(0).value()?\"-checkbox\":\"-text-field\"}function An(e){var t=e.positional,n=t.at(0).value().split(\".\"),r=n[n.length-1],i=t.at(1).value();return!0===i?(0,b.dasherize)(r):i||0===i?String(i):\"\"}function On(e){return e}function Sn(e,t,n,i){var o,a,r;return\"function\"==typeof n[G]?a=(o=n)[G]:\"string\"==(r=typeof n)?a=(o=t).actions&&t.actions[n]:\"function\"==r&&(o=e,a=n),function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r={target:o,args:t,label:\"@glimmer/closure-action\"};return(0,g.flaggedInstrument)(\"interaction.ember-action\",r,function(){return l.join.apply(void 0,[o,a].concat(i(t)))})}}var Nn=function(e){return null==(t=e)||\"function\"!=typeof t.toString?\"\":String(e);var t};function Pn(e){return e.positional.value().map(Nn).join(\"\")}var Ln=null;function Mn(e){var a=e.positional,s=a.at(0);return function(){for(var e=a.value(),t=e[0],n=e.slice(1),r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return\"function\"==typeof s[G]?s[G].apply(s,n.concat(i)):t.call.apply(t,[Ln].concat(n,i))}}function jn(e,t){var n=null==t||\"\"===t?p.NULL_REFERENCE:\"string\"==typeof t&&-1<t.indexOf(\".\")?ue(e,t.split(\".\")):e.get(t);return n}var Dn=function(i){function n(e,t){var n=i.call(this)||this;n.sourceReference=e,n.pathReference=t,n.lastPath=null,n.innerReference=p.NULL_REFERENCE;var r=n.innerTag=h.UpdatableTag.create(h.CONSTANT_TAG);return n.tag=(0,h.combine)([e.tag,t.tag,r]),n}(0,s.inheritsLoose)(n,i),n.create=function(e,t){return(0,h.isConst)(t)?jn(e,t.value()):new n(e,t)};var e=n.prototype;return e.compute=function(){var e=this.lastPath,t=this.innerReference,n=this.innerTag,r=this.pathReference.value();return r!==e&&(t=jn(this.sourceReference,r),n.inner.update(t.tag),this.innerReference=t,this.lastPath=r),t.value()},e[Y]=function(e){(0,f.set)(this.sourceReference.value(),this.pathReference.value(),e)},n}($);var In=function(i){function o(e,t,n){var r=i.call(this)||this;return r.branchTag=h.UpdatableTag.create(h.CONSTANT_TAG),r.tag=(0,h.combine)([e.tag,r.branchTag]),r.cond=e,r.truthy=t,r.falsy=n,r}return(0,s.inheritsLoose)(o,i),o.create=function(e,t,n){var r=ne.create(e);return(0,h.isConst)(r)?r.value()?t:n:new o(r,t,n)},o.prototype.compute=function(){var e=this.cond.value()?this.truthy:this.falsy;return this.branchTag.inner.update(e.tag),e.value()},o}($);function Fn(e){var t,n=e.positional;(t=console).log.apply(t,n.value())}var Bn=(0,m.symbol)(\"MUT\"),Un=(0,m.symbol)(\"SOURCE\");function zn(e){e.positional;var t=e.named;return new C.QueryParams((0,c.assign)({},t.value()))}var qn=[\"alt\",\"shift\",\"meta\",\"ctrl\"],Hn=/^click|mouse|touch/;v.ActionManager.registeredActions;var Vn=function(e){var t=e.actionId;return v.ActionManager.registeredActions[t]=e,t},Wn=function(e){var t=e.actionId;delete v.ActionManager.registeredActions[t]},Yn=function(){function e(e,t,n,r,i,o,a,s,u){this.element=e,this.actionId=t,this.actionName=n,this.actionArgs=r,this.namedArgs=i,this.positional=o,this.implicitTarget=a,this.dom=s,this.eventName=this.getEventName(),this.tag=u}var t=e.prototype;return t.getEventName=function(){return this.namedArgs.get(\"on\").value()||\"click\"},t.getActionArgs=function(){for(var e=new Array(this.actionArgs.length),t=0;t<this.actionArgs.length;t++)e[t]=this.actionArgs[t].value();return e},t.getTarget=function(){var e=this.implicitTarget,t=this.namedArgs,n=t.has(\"target\")?t.get(\"target\").value():e.value();return n},t.handler=function(e){var n=this,r=this.actionName,t=this.namedArgs,i=t.get(\"bubbles\"),o=t.get(\"preventDefault\"),a=t.get(\"allowedKeys\"),s=this.getTarget(),u=!1!==i.value();return!function(e,t){if(null==t){if(Hn.test(e.type))return(0,v.isSimpleClick)(e);t=\"\"}if(0<=t.indexOf(\"any\"))return 1;for(var n=0;n<qn.length;n++)if(e[qn[n]+\"Key\"]&&-1===t.indexOf(qn[n]))return;return 1}(e,a.value())||(!1!==o.value()&&e.preventDefault(),u||e.stopPropagation(),(0,l.join)(function(){var e=n.getActionArgs(),t={args:e,target:s,name:null};\"function\"!=typeof r[G]?\"function\"!=typeof r?(t.name=r,s.send?(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){s.send.apply(s,[r].concat(e))}):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){s[r].apply(s,e)})):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){r.apply(s,e)}):(0,g.flaggedInstrument)(\"interaction.ember-action\",t,function(){r[G].apply(r,e)})}),u)},t.destroy=function(){Wn(this)},e}(),Gn=function(){function e(){}var t=e.prototype;return t.create=function(e,t,n,r,i){var o,a,s,u=n.capture(),l=u.named,c=u.positional,h=u.tag;1<c.length&&(a=c.at(0),o=(s=c.at(1))[G]?s:(s.propertyKey,s.value()));for(var f=[],p=2;p<c.length;p++)f.push(c.at(p));var d=(0,m.uuid)();return new Yn(e,d,o,f,l,c,a,i,h)},t.install=function(e){var t=e.dom,n=e.element,r=e.actionId;Vn(e),t.setAttribute(n,\"data-ember-action\",\"\"),t.setAttribute(n,\"data-ember-action-\"+r,r)},t.update=function(e){var t=e.positional.at(1);t[G]||(e.actionName=t.value()),e.eventName=e.getEventName()},t.getTag=function(e){return e.tag},t.getDestructor=function(e){return e},e}();function Qn(e,t,n,r){this.name=e,this.ModifierClass=t,this.delegate=n,this.state={ModifierClass:t,name:e,delegate:n},this.manager=r?Jn:Zn}var Kn=function(){function e(e,t,n,r){this.element=e,this.delegate=t,this.modifier=n,this.args=r}return e.prototype.destroy=function(){var e=this.delegate,t=this.modifier,n=this.args;e.destroyModifier(t,n.value())},e}(),$n=function(){function e(){}var t=e.prototype;return t.create=function(e,t,n){var r=n.capture(),i=t.delegate.createModifier(t.ModifierClass,r.value());return new Kn(e,t.delegate,i,r)},t.getTag=function(e){return e.args.tag},t.install=function(e){var t=e.element,n=e.args,r=e.delegate,i=e.modifier;r.installModifier(i,t,n.value())},t.update=function(e){var t=e.args,n=e.delegate,r=e.modifier;n.updateModifier(r,t.value())},t.getDestructor=function(e){return e},e}(),Xn=function(){function e(){}var t=e.prototype;return t.create=function(){return null},t.getTag=function(){return h.CONSTANT_TAG},t.install=function(){},t.update=function(){},t.getDestructor=function(){return null},e}(),Jn=new $n,Zn=new Xn,er=null,tr=function(){try{var e,t=document.createElement(\"div\"),n=0;return t.addEventListener(\"click\",function(){return n++},{once:!0}),\"function\"==typeof Event?e=new Event(\"click\"):(e=document.createEvent(\"Event\")).initEvent(\"click\",!0,!0),t.dispatchEvent(e),t.dispatchEvent(e),1===n}catch(e){return!1}}(),nr=function(){function e(e,t){this.shouldUpdate=!0,this.element=e,this.args=t,this.tag=t.tag}var t=e.prototype;return t.updateFromArgs=function(){var t,e=this.args,n=e.named.value(),r=n.once,i=n.passive,o=n.capture;r!==this.once&&(this.once=r,this.shouldUpdate=!0),i!==this.passive&&(this.passive=i,this.shouldUpdate=!0),o!==this.capture&&(this.capture=o,this.shouldUpdate=!0),r||i||o?t=this.options={once:r,passive:i,capture:o}:this.options=void 0;var a=e.positional.at(0).value();a!==this.eventName&&(this.eventName=a,this.shouldUpdate=!0);var s=e.positional.at(1).value();s!==this.userProvidedCallback&&(this.userProvidedCallback=s,this.shouldUpdate=!0);var u,l=!1===tr&&r||!1;this.shouldUpdate&&(l?u=this.callback=function(e){return!tr&&r&&or(this,a,u,t),s.call(er,e)}:this.callback=s)},t.destroy=function(){or(this.element,this.eventName,this.callback,this.options)},e}(),rr=0,ir=0;function or(e,t,n,r){ir++,tr?e.removeEventListener(t,n,r):void 0!==r&&r.capture?e.removeEventListener(t,n,!0):e.removeEventListener(t,n)}function ar(e,t,n,r){rr++,tr?e.addEventListener(t,n,r):void 0!==r&&r.capture?e.addEventListener(t,n,!0):e.addEventListener(t,n)}var sr=function(){function e(e){this.SUPPORTS_EVENT_OPTIONS=tr,this.isInteractive=e}var t=e.prototype;return t.create=function(e,t,n){if(!this.isInteractive)return null;var r=n.capture();return new nr(e,r)},t.getTag=function(e){return null===e?h.CONSTANT_TAG:e.tag},t.install=function(e){null!==e&&(e.updateFromArgs(),ar(e.element,e.eventName,e.callback,e.options),e.shouldUpdate=!1)},t.update=function(e){var t,n,r,i;null!==e&&(t=e.element,n=e.eventName,r=e.callback,i=e.options,e.updateFromArgs(),e.shouldUpdate&&(or(t,n,r,i),ar(e.element,e.eventName,e.callback,e.options),e.shouldUpdate=!1))},t.getDestructor=function(e){return e},(0,s.createClass)(e,[{key:\"counters\",get:function(){return{adds:rr,removes:ir}}}]),e}();function ur(e){return null===e?null:[e[0].map(function(e){return\"@\"+e}),e[1]]}function lr(e,t,n,r,i){return null!==n&&(null!==e?(i.compileParams(e),i.invokeStaticBlock(n,e.length)):i.invokeStatic(n)),!0}function cr(e,t){this.manager=fr,this.state={name:e,modelRef:t}}var hr={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0},fr=new(function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.getDynamicLayout=function(e){var t=e.engine.lookup(\"template:application\").asLayout();return{handle:t.compile(),symbolTable:t.symbolTable}},n.getCapabilities=function(){return hr},n.create=function(e,t){var n=e.owner.buildChildEngineInstance(t.name);n.boot();var r,i,o,a=n.factoryFor(\"controller:application\")||(0,C.generateControllerFactory)(n,\"application\"),s=t.modelRef;return void 0===s?{engine:n,controller:o=a.create(),self:new X(o),tag:h.CONSTANT_TAG}:(r=s.value(),i=s.tag.value(),{engine:n,controller:o=a.create({model:r}),self:new X(o),tag:s.tag,modelRef:s,modelRev:i})},n.getSelf=function(e){return e.self},n.getTag=function(e){return e.tag},n.getDestructor=function(e){return e.engine},n.didRenderLayout=function(){0},n.update=function(e){var t,n=e.controller,r=e.modelRef,i=e.modelRev;r.tag.validate(i)||(t=r.value(),e.modelRev=r.tag.value(),n.set(\"model\",t))},t}(ht));function pr(e,t,n,r){var i=[_.Ops.Helper,\"-mount\",t||[],n];return r.dynamicComponent(i,null,[],null,!1,null,null),!0}var dr=function(){function e(e,t,n){this.tag=e.tag,this.nameRef=e,this.modelRef=n,this.env=t,this._lastName=null,this._lastDef=null}var t=e.prototype;return t.value=function(){var e=this.env,t=this.nameRef,n=this.modelRef,r=t.value();return\"string\"==typeof r?this._lastName===r?this._lastDef:e.owner.hasRegistration(\"engine:\"+r)?(this._lastName=r,this._lastDef=(0,p.curry)(new cr(r,n)),this._lastDef):null:(this._lastDef=null,this._lastName=null)},t.get=function(){return p.UNDEFINED_REFERENCE},e}(),mr=function(){function e(e){this.outletState=e,this.tag=h.DirtyableTag.create()}var t=e.prototype;return t.get=function(e){return new gr(this,e)},t.value=function(){return this.outletState},t.update=function(e){this.outletState.outlets.main=e,this.tag.inner.dirty()},e}(),vr=function(){function e(e,t){this.parentStateRef=e,this.outletNameRef=t,this.tag=(0,h.combine)([e.tag,t.tag])}var t=e.prototype;return t.value=function(){var e=this.parentStateRef.value(),t=void 0===e?void 0:e.outlets;return void 0===t?void 0:t[this.outletNameRef.value()]},t.get=function(e){return new gr(this,e)},e}(),gr=function(){function t(e,t){this.parent=e,this.key=t,this.tag=e.tag}var e=t.prototype;return e.get=function(e){return new t(this,e)},e.value=function(){var e=this.parent.value();return e&&e[this.key]},t}();function yr(e,t,n,r){var i=[_.Ops.Helper,\"-outlet\",t||[],n];return r.dynamicComponent(i,null,[],null,!1,null,null),!0}var br=function(){function e(e){this.outletRef=e,this.definition=null,this.lastState=null,this.tag=e.tag}var t=e.prototype;return t.value=function(){var e,t,n=function(e){var t=e.value();if(void 0===t)return null;var n=t.render;if(void 0===n)return null;var r=n.template;return void 0===r?null:{ref:e,name:n.name,outlet:n.outlet,template:r,controller:n.controller}}(this.outletRef);if(e=n,t=this.lastState,null!==e?null!==t&&e.template===t.template&&e.controller===t.controller:null===t)return this.definition;var r=null;return null!==(this.lastState=n)&&(r=(0,p.curry)(new pt(n))),this.definition=r},t.get=function(){return p.UNDEFINED_REFERENCE},e}();function _r(e,t,n,r){var i=r.compiler.resolver.lookupComponentDefinition(e,r.referrer);return null!==i&&(r.component.static(i,[null===t?[]:t,ur(n),null,null]),!0)}function wr(e,t,n,r,i,o){var a=o.compiler.resolver.lookupComponentDefinition(e,o.referrer);return null!==a&&(wt(n),o.component.static(a,[t,ur(n),r,i]),!0)}var Er=[];function Tr(e){var t=fn(e);return t&&!t.internal&&\"modifier\"===t.type?t.factory:void 0}function Cr(e){return{object:\"component:\"+e}}function Rr(e,t){return{source:void 0!==e?\"template:\"+e:void 0,namespace:t}}e._experimentalMacros=Er;var kr={if:function(e,t){var n=t.positional;return In.create(n.at(0),n.at(1),n.at(2))},action:function(e,t){var n=t.named,r=t.positional.capture().references,i=r[0],o=r[1],a=r.slice(2),s=o.propertyKey,u=n.has(\"target\")?n.get(\"target\"):i,l=function(n,t){var r,i;0<t.length&&(r=function(e){return t.map(function(e){return e.value()}).concat(e)});n&&(i=function(e){var t=n.value();return t&&0<e.length&&(e[0]=(0,f.get)(e[0],t)),e});return r&&i?function(e){return i(r(e))}:r||i||On}(n.has(\"value\")&&n.get(\"value\"),a),c=\"function\"==typeof o[G]?Sn(o,o,o[G],l):(0,h.isConst)(u)&&(0,h.isConst)(o)?Sn(i.value(),u.value(),o.value(),l):function(e,t,n,r,i){0;return function(){return Sn(e,t.value(),n.value(),r).apply(void 0,arguments)}}(i.value(),u,o,l,s);return c[Q]=!0,new ae(c)},array:function(e,t){return t.positional.capture()},concat:function(e,t){return new oe(Pn,t.capture())},get:function(e,t){return Dn.create(t.positional.at(0),t.positional.at(1))},hash:function(e,t){return t.named.capture()},log:function(e,t){return new oe(Fn,t.capture())},mut:function(e,t){var n,r=t.positional.at(0);if((n=r)&&n[Bn])return r;var i=Object.create(r);return i[Un]=r,i[G]=r[Y],i[Bn]=!0,i},\"query-params\":function(e,t){return new oe(zn,t.capture())},readonly:function(e,t){var n,r=(n=t.positional.at(0))[Un]||n;return new se(r)},unbound:function(e,t){return ae.create(t.positional.at(0).value())},unless:function(e,t){var n=t.positional;return In.create(n.at(0),n.at(2),n.at(1))},\"-class\":function(e,t){return new oe(kn,t.capture())},\"-each-in\":function(e,t){return new Le(t.positional.at(0))},\"-input-type\":function(e,t){return new oe(xn,t.capture())},\"-normalize-class\":function(e,t){return new oe(An,t.capture())},\"-get-dynamic-var\":p.getDynamicVar,\"-mount\":function(e,t){var n=e.env,r=t.positional.at(0),i=t.named.has(\"model\")?t.named.get(\"model\"):void 0;return new dr(r,n,i)},\"-outlet\":function(e,t){var n=e.dynamicScope(),r=0===t.positional.length?new h.ConstReference(\"main\"):t.positional.at(0);return new br(new vr(n.outletState,r))},\"-assert-implicit-component-helper-argument\":wn,fn:void 0};kr.fn=function(e,t){return new oe(Mn,t.capture())};var xr=function(){function e(e){this.handles=[void 0],this.objToHandle=new WeakMap,this.builtInHelpers=kr,this.templateCache=new Map,this.componentDefinitionCache=new Map,this.customManagerCache=new Map,this.templateCacheHits=0,this.templateCacheMisses=0,this.componentDefinitionCount=0,this.helperDefinitionCount=0;var t=new i.Macros;!function(e){var t=e.inlines,n=e.blocks;t.add(\"outlet\",yr),t.add(\"mount\",pr),t.addMissing(_r),n.add(\"let\",lr),n.addMissing(wr);for(var r=0;r<Er.length;r++){(0,Er[r])(n,t)}}(t),this.compiler=new i.LazyCompiler(new mn(this),this,t),this.isInteractive=e,this.builtInModifiers={action:{manager:new Gn,state:null}},this.builtInModifiers.on={manager:new sr(e),state:null}}var t=e.prototype;return t.lookupComponentDefinition=function(e,t){var n=this.lookupComponentHandle(e,t);return null===n?null:this.resolve(n)},t.lookupComponentHandle=function(e,t){var n=this.handles.length,r=this.handle(this._lookupComponentDefinition(e,t));return n===r&&this.componentDefinitionCount++,r},t.resolve=function(e){return this.handles[e]},t.lookupHelper=function(e,t){var n=this.handles.length,r=this._lookupHelper(e,t);if(null===r)return null;var i=this.handle(r);return n===i&&this.helperDefinitionCount++,i},t.lookupModifier=function(e,t){return this.handle(this._lookupModifier(e,t))},t.lookupPartial=function(e,t){var n=this._lookupPartial(e,t);return this.handle(n)},t.createTemplate=function(e,t){var n,r,i=this.templateCache.get(t);return void 0===i?(i=new Map,this.templateCache.set(t,i)):n=i.get(e),void 0===n?(r={compiler:this.compiler},(0,a.setOwner)(r,t),n=e.create(r),i.set(e,n),this.templateCacheMisses++):this.templateCacheHits++,n},t.handle=function(e){if(null==e)return null;var t=this.objToHandle.get(e);return void 0===t&&(t=this.handles.push(e)-1,this.objToHandle.set(e,t)),t},t._lookupHelper=function(e,t){var n=this.builtInHelpers[e];if(void 0!==n)return n;var r,i=t.owner,o=e,a=Rr(t.moduleName,void 0),s=i.factoryFor(\"helper:\"+o,a)||i.factoryFor(\"helper:\"+o);return\"object\"==typeof(r=s)&&null!==r&&r.class&&r.class.isHelperFactory?function(e,t){var n=s.create();return void 0===n.destroy?re.create(n.compute,t.capture()):(e.newDestroyable(n),ie.create(n,t.capture()))}:null},t._lookupPartial=function(e,t){var n=(0,v.lookupPartial)(e,t.owner);if(n)return new i.PartialDefinition(e,n);throw new Error(e+\" is not a partial\")},t._lookupModifier=function(e,t){var n=this.builtInModifiers[e];if(void 0===n){var r=t.owner,i=r.factoryFor(\"modifier:\"+e);if(void 0!==i){var o=Tr(i.class)(r);return new Qn(e,i,o,this.isInteractive)}}return n},t._parseNameForNamespace=function(e){var t=e,n=void 0,r=e.indexOf(\"::\");return-1!==r&&(t=e.slice(r+2),n=e.slice(0,r)),{name:t,namespace:n}},t._lookupComponentDefinition=function(e,t){var n=t.moduleName,r=t.owner,i=e,o=void 0,a=(0,v.lookupComponent)(r,i,Rr(n,o)),s=a.layout,u=a.component,l=void 0===u?s:u;if(void 0===l)return null;var c=this.componentDefinitionCache.get(l);if(void 0!==c)return c;var h,f,p=(0,g._instrumentStart)(\"render.getComponentDefinition\",Cr,i),d=null;return void 0!==s&&void 0===u&&y.ENV._TEMPLATE_ONLY_GLIMMER_COMPONENTS&&(d=new _n(s)),void 0===u||void 0===u.class||(h=fn(u.class))&&\"component\"===h.type&&(f=h.factory,d=h.internal?new nn(f(r),u.class,s):new bn(i,u,f(r),s||r.lookup((0,w.privatize)(M())))),null===d&&(d=new Bt(i,u||r.factoryFor((0,w.privatize)(L())),null,s)),p(),this.componentDefinitionCache.set(l,d),d},t._lookupComponentManager=function(e,t){if(this.customManagerCache.has(t))return this.customManagerCache.get(t);var n=e.lookup(\"component-manager:\"+t);return this.customManagerCache.set(t,n),n},e}(),Ar={create:function(e){var t=e.environment;return new xr(t.isInteractive).compiler}},Or=F({id:\"chfQcH83\",block:'{\"symbols\":[\"&default\"],\"statements\":[[14,1]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/component.hbs\"}}),Sr=F({id:\"NWZzLSII\",block:'{\"symbols\":[\"Checkbox\",\"TextField\",\"@__ARGS__\",\"&attrs\"],\"statements\":[[4,\"let\",[[28,\"component\",[\"-checkbox\"],null],[28,\"component\",[\"-text-field\"],null]],null,{\"statements\":[[4,\"if\",[[23,0,[\"isCheckbox\"]]],null,{\"statements\":[[6,[23,1,[]],[[13,4]],[[\"@target\",\"@__ARGS__\"],[[23,0,[\"caller\"]],[23,3,[]]]]]],\"parameters\":[]},{\"statements\":[[6,[23,2,[]],[[13,4]],[[\"@target\",\"@__ARGS__\"],[[23,0,[\"caller\"]],[23,3,[]]]]]],\"parameters\":[]}]],\"parameters\":[1,2]},null]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/input.hbs\"}}),Nr=F({id:\"ffAL6HDl\",block:'{\"symbols\":[],\"statements\":[[1,[22,\"outlet\"],false]],\"hasEval\":false}',meta:{moduleName:\"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs\"}}),Pr=\"-top-level\",Lr=function(){function i(e,t,n,r){this._environment=e,this.renderer=t,this.owner=n,this.template=r;var i=this.ref=new mr({outlets:{main:void 0},render:{owner:n,into:void 0,outlet:\"main\",name:Pr,controller:void 0,template:r}});this.state={ref:i,name:Pr,outlet:\"main\",template:r,controller:void 0}}i.extend=function(n){return function(t){function e(){return t.apply(this,arguments)||this}return(0,s.inheritsLoose)(e,t),e.create=function(e){return e?t.create.call(this,(0,c.assign)({},n,e)):t.create.call(this,n)},e}(i)},i.reopenClass=function(e){(0,c.assign)(this,e)},i.create=function(e){var t=e._environment,n=e.renderer,r=e.template;return new i(t,n,e[a.OWNER],r)};var e=i.prototype;return e.appendTo=function(e){var t=this._environment.hasDOM&&\"string\"==typeof e?document.querySelector(e):e;(0,l.schedule)(\"render\",this.renderer,\"appendOutletView\",this,t)},e.rerender=function(){},e.setOutletState=function(e){this.ref.update(e)},e.destroy=function(){},i}();e.OutletView=Lr}),e(\"@ember/-internals/meta/index\",[\"exports\",\"@ember/-internals/meta/lib/meta\"],function(e,t){\"use strict\";Object.defineProperty(e,\"counters\",{enumerable:!0,get:function(){return t.counters}}),Object.defineProperty(e,\"deleteMeta\",{enumerable:!0,get:function(){return t.deleteMeta}}),Object.defineProperty(e,\"Meta\",{enumerable:!0,get:function(){return t.Meta}}),Object.defineProperty(e,\"meta\",{enumerable:!0,get:function(){return t.meta}}),Object.defineProperty(e,\"peekMeta\",{enumerable:!0,get:function(){return t.peekMeta}}),Object.defineProperty(e,\"setMeta\",{enumerable:!0,get:function(){return t.setMeta}}),Object.defineProperty(e,\"UNDEFINED\",{enumerable:!0,get:function(){return t.UNDEFINED}})}),e(\"@ember/-internals/meta/lib/meta\",[\"exports\",\"ember-babel\",\"@ember/-internals/utils\",\"@ember/debug\"],function(e,n,t,r){\"use strict\";e.setMeta=h,e.peekMeta=f,e.deleteMeta=function(e){0;var t=f(e);null!==t&&t.destroy()},e.counters=e.meta=e.Meta=e.UNDEFINED=void 0;var i,o=Object.prototype;e.counters=i;var a=(0,t.symbol)(\"undefined\");e.UNDEFINED=a;var s=1,u=function(){function e(e){this._listenersVersion=1,this._inheritedEnd=-1,this._flattenedVersion=0,this._parent=void 0,this._descriptors=void 0,this._watching=void 0,this._mixins=void 0,this._deps=void 0,this._chainWatchers=void 0,this._chains=void 0,this._tag=void 0,this._tags=void 0,this._flags=0,this.source=e,this.proto=void 0===e.constructor?void 0:e.constructor.prototype,this._listeners=void 0}var t=e.prototype;return t.setInitializing=function(){this._flags|=8},t.unsetInitializing=function(){this._flags^=8},t.isInitializing=function(){return this._hasFlag(8)},t.isPrototypeMeta=function(e){return this.proto===this.source&&this.source===e},t.destroy=function(){var e;this.isMetaDestroyed()||(this.setMetaDestroyed(),void 0!==(e=this.readableChains())&&e.destroy())},t.isSourceDestroying=function(){return this._hasFlag(1)},t.setSourceDestroying=function(){this._flags|=1},t.isSourceDestroyed=function(){return this._hasFlag(2)},t.setSourceDestroyed=function(){this._flags|=2},t.isMetaDestroyed=function(){return this._hasFlag(4)},t.setMetaDestroyed=function(){this._flags|=4},t._hasFlag=function(e){return(this._flags&e)===e},t._getOrCreateOwnMap=function(e){return this[e]||(this[e]=Object.create(null))},t._getOrCreateOwnSet=function(e){return this[e]||(this[e]=new Set)},t._findInherited1=function(e){for(var t=this;null!==t;){var n=t[e];if(void 0!==n)return n;t=t.parent}},t._findInherited2=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r){var i=r[t];if(void 0!==i)return i}n=n.parent}},t._findInherited3=function(e,t,n){for(var r=this;null!==r;){var i=r[e];if(void 0!==i){var o=i[t];if(void 0!==o){var a=o[n];if(void 0!==a)return a}}r=r.parent}},t._findInheritedMap=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r){var i=r.get(t);if(void 0!==i)return i}n=n.parent}},t._hasInInheritedSet=function(e,t){for(var n=this;null!==n;){var r=n[e];if(void 0!==r&&r.has(t))return!0;n=n.parent}return!1},t.writeDeps=function(e,t,n){var r=this._getOrCreateOwnMap(\"_deps\"),i=r[e];void 0===i&&(i=r[e]=Object.create(null)),i[t]=n},t.peekDeps=function(e,t){var n=this._findInherited3(\"_deps\",e,t);return void 0===n?0:n},t.hasDeps=function(e){return void 0!==this._findInherited2(\"_deps\",e)},t.forEachInDeps=function(e,t){for(var n,r=this;null!==r;){var i=r._deps;if(void 0!==i){var o=i[e];if(void 0!==o)for(var a in n=void 0===n?new Set:n,o)n.has(a)||(n.add(a),0<o[a]&&t(a))}r=r.parent}},t.writableTags=function(){return this._getOrCreateOwnMap(\"_tags\")},t.readableTags=function(){return this._tags},t.writableTag=function(e){var t=this._tag;return void 0===t&&(t=this._tag=e(this.source)),t},t.readableTag=function(){return this._tag},t.writableLazyChainsFor=function(e){var t=this._getOrCreateOwnMap(\"_lazyChains\");return e in t||(t[e]=[]),t[e]},t.readableLazyChainsFor=function(e){var t=this._lazyChains;if(void 0!==t)return t[e]},t.writableChainWatchers=function(e){var t=this._chainWatchers;return void 0===t&&(t=this._chainWatchers=e(this.source)),t},t.readableChainWatchers=function(){return this._chainWatchers},t.writableChains=function(e){var t,n=this._chains;return void 0===n&&(this._chains=n=e(this.source),null!==(t=this.parent)&&t.writableChains(e).copyTo(n)),n},t.readableChains=function(){return this._findInherited1(\"_chains\")},t.writeWatching=function(e,t){this._getOrCreateOwnMap(\"_watching\")[e]=t},t.peekWatching=function(e){var t=this._findInherited2(\"_watching\",e);return void 0===t?0:t},t.addMixin=function(e){this._getOrCreateOwnSet(\"_mixins\").add(e)},t.hasMixin=function(e){return this._hasInInheritedSet(\"_mixins\",e)},t.forEachMixins=function(t){for(var n,e=this;null!==e;){var r=e._mixins;void 0!==r&&(n=void 0===n?new Set:n,r.forEach(function(e){n.has(e)||(n.add(e),t(e))})),e=e.parent}},t.writeDescriptors=function(e,t){(this._descriptors||(this._descriptors=new Map)).set(e,t)},t.peekDescriptors=function(e){var t=this._findInheritedMap(\"_descriptors\",e);return t===a?void 0:t},t.removeDescriptors=function(e){this.writeDescriptors(e,a)},t.forEachDescriptors=function(n){for(var r,e=this;null!==e;){var t=e._descriptors;void 0!==t&&(r=void 0===r?new Set:r,t.forEach(function(e,t){r.has(t)||(r.add(t),e!==a&&n(t,e))})),e=e.parent}},t.addToListeners=function(e,t,n,r,i){this.pushListener(e,t,n,r?1:0,i)},t.removeFromListeners=function(e,t,n){this.pushListener(e,t,n,2)},t.pushListener=function(e,t,n,r,i){var o,a=4<arguments.length&&void 0!==i&&i,s=this.writableListeners(),u=d(s,e,t,n);-1!==u&&u<this._inheritedEnd&&(s.splice(u,1),this._inheritedEnd--,u=-1),-1===u?s.push({event:e,target:t,method:n,kind:r,sync:a}):(o=s[u],2===r&&2!==o.kind?s.splice(u,1):(o.kind=r,o.sync=a))},t.writableListeners=function(){return this._flattenedVersion!==s||this.source!==this.proto&&-1!==this._inheritedEnd||s++,-1===this._inheritedEnd&&(this._inheritedEnd=0,this._listeners=[]),this._listeners},t.flattenedListeners=function(){if(0,this._flattenedVersion<s){0;var e=this.parent;if(null!==e){var t=e.flattenedListeners();if(void 0!==t)if(void 0===this._listeners)this._listeners=t;else{var n=this._listeners;0<this._inheritedEnd&&(n.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(var r=0;r<t.length;r++){var i=t[r];-1===d(n,i.event,i.target,i.method)&&(n.unshift(i),this._inheritedEnd++)}}}this._flattenedVersion=s}return this._listeners},t.matchingListeners=function(e){var t,n=this.flattenedListeners();if(0,void 0!==n)for(var r=0;r<n.length;r++){var i=n[r];i.event!==e||0!==i.kind&&1!==i.kind||(void 0===t&&(t=[]),t.push(i.target,i.method,1===i.kind))}return t},t.observerEvents=function(){var e,t=this.flattenedListeners();if(0,void 0!==t)for(var n=0;n<t.length;n++){var r=t[n];0!==r.kind&&1!==r.kind||-1===r.event.indexOf(\":change\")||(void 0===e&&(e=[]),e.push(r))}return e},(0,n.createClass)(e,[{key:\"parent\",get:function(){var e,t=this._parent;return void 0===t&&(e=l(this.source),this._parent=t=null===e||e===o?null:p(e)),t}}]),e}();e.Meta=u;var l=Object.getPrototypeOf,c=new WeakMap;function h(e,t){c.set(e,t)}function f(e){var t=c.get(e);if(void 0!==t)return t;for(var n=l(e);null!==n;){if(0,void 0!==(t=c.get(n)))return t.proto!==n&&(t.proto=n),t;n=l(n)}return null}var p=function(e){var t=f(e);if(null!==t&&t.source===e)return t;var n=new u(e);return h(e,n),n};function d(e,t,n,r){for(var i=e.length-1;0<=i;i--){var o=e[i];if(o.event===t&&o.target===n&&o.method===r)return i}return-1}e.meta=p}),e(\"@ember/-internals/metal\",[\"exports\",\"ember-babel\",\"@ember/polyfills\",\"@ember/-internals/meta\",\"@ember/debug\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@glimmer/reference\",\"@ember/-internals/environment\",\"@ember/error\",\"ember/version\",\"@ember/deprecated-features\",\"@ember/-internals/owner\"],function(e,r,f,p,t,d,s,m,c,u,n,h,v){\"use strict\";e.computed=it,e.isComputed=function(e,t){return Boolean(b(e,t))},e.getCacheFor=l,e.getCachedValueFor=o,e.peekCacheFor=y,e.alias=function(e){return Ue(new ut(e),st)},e.deprecateProperty=function(e,t,n,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,set:function(e){et(this,n,e)},get:function(){return Ke(this,n)}})},e._getPath=$e,e.get=Ke,e.getWithDefault=function(e,t,n){var r=Ke(e,t);return void 0!==r?r:n},e.set=et,e.trySet=function(e,t,n){return et(e,t,n,!0)},e.objectAt=fe,e.replace=function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:he;Array.isArray(e)?de(e,t,n,r):e.replace(t,n,r)},e.replaceInNativeArray=de,e.addArrayObserver=function(e,t,n){return me(e,t,n,L,!1)},e.removeArrayObserver=function(e,t,n){return me(e,t,n,M,!0)},e.arrayContentWillChange=le,e.arrayContentDidChange=ce,e.eachProxyFor=ve,e.eachProxyArrayWillChange=se,e.eachProxyArrayDidChange=ue,e.addListener=L,e.hasListeners=function(e,t){var n=(0,p.peekMeta)(e);if(null===n)return!1;var r=n.matchingListeners(t);return void 0!==r&&0<r.length},e.on=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.pop(),i=t;return(0,d.setListeners)(r,i),r},e.removeListener=M,e.sendEvent=j,e.isNone=function(e){return null==e},e.isEmpty=ht,e.isBlank=ft,e.isPresent=function(e){return!ft(e)},e.beginPropertyChanges=ee,e.changeProperties=ne,e.endPropertyChanges=te,e.notifyPropertyChange=$,e.overrideChains=Z,e.defineProperty=re,e.isElementDescriptor=je,e.nativeDescDecorator=Fe,e.descriptorForDecorator=_,e.descriptorForProperty=b,e.isClassicDecorator=w,e.setClassicDecorator=E,e.watchKey=ie,e.unwatchKey=oe,e.finishChains=function(e){var t=e.readableChainWatchers();void 0!==t&&t.revalidateAll();void 0!==e.readableChains()&&e.writableChains(Te)},e.removeChainWatcher=Re,e.getChainTagsForKey=Xe,e.watchPath=Se,e.unwatchPath=Ne,e.isWatching=function(e,t){return 0<Le(e,t)},e.unwatch=Me,e.watch=Pe,e.watcherCount=Le,e.getProperties=function(e,t){var n={},r=arguments,i=1;2===arguments.length&&Array.isArray(t)&&(i=0,r=arguments[1]);for(;i<r.length;i++)n[r[i]]=Ke(e,r[i]);return n},e.setProperties=function(r,i){return null!==i&&\"object\"==typeof i&&ne(function(){for(var e,t=Object.keys(i),n=0;n<t.length;n++)e=t[n],et(r,e,i[e])}),i},e.expandProperties=Ze,e.addObserver=B,e.activateObserver=z,e.removeObserver=U,e.flushAsyncObservers=function(){if(q===m.CURRENT_TAG.value())return;q=m.CURRENT_TAG.value(),F.forEach(function(e,n){var t=(0,p.peekMeta)(n);t&&(t.isSourceDestroying()||t.isMetaDestroyed())?F.delete(n):e.forEach(function(e,t){e.tag.validate(e.lastRevision)||(0,s.schedule)(\"actions\",function(){try{j(n,t,[n,e.path])}finally{e.tag=Xe(n,e.path),e.lastRevision=e.tag.value()}})})})},e.mixin=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Dt(e,n),e},e.observer=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i,o,a=t.pop();o=\"function\"==typeof a?(r=a,i=t,!c.ENV._DEFAULT_ASYNC_OBSERVERS):(r=a.fn,i=a.dependentKeys,a.sync);for(var s=[],u=function(e){return s.push(e)},l=0;l<i.length;++l)Ze(i[l],u);return(0,d.setObservers)(r,{paths:s,sync:o}),r},e.applyMixin=Dt,e.inject=function(n){for(var e=arguments.length,t=new Array(1<e?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];var i,o,a=je(t),s=a?void 0:t[0];a||t[1];{}function u(e){var t=(0,v.getOwner)(this)||this.container;return t.lookup(n+\":\"+(s||e),{source:i,namespace:o})}0;var l=it({get:u,set:function(e,t){re(this,e,null,t)}});return a?l(t[0],t[1],t[2]):l},e.tagForProperty=O,e.tagFor=S,e.markObjectAsDirty=N,e.consume=Ye,e.tracked=qe,e.track=We,e.addNamespace=function(e){gt.unprocessedNamespaces=!0,bt.push(e)},e.classToString=Ct,e.findNamespace=function(e){vt||Tt();return _t[e]},e.findNamespaces=wt,e.processNamespace=Et,e.processAllNamespaces=Tt,e.removeNamespace=function(e){var t=(0,d.getName)(e);delete _t[t],bt.splice(bt.indexOf(e),1),t in c.context.lookup&&e===c.context.lookup[t]&&(c.context.lookup[t]=void 0)},e.isNamespaceSearchDisabled=function(){return vt},e.setNamespaceSearchDisabled=function(e){vt=Boolean(e)},e.NAMESPACES_BY_ID=e.NAMESPACES=e.Tracker=e.assertNotRendered=e.didRender=e.runInTransaction=e.update=e.UNKNOWN_PROPERTY_TAG=e.DEBUG_INJECTION_FUNCTIONS=e.aliasMethod=e.Mixin=e.Libraries=e.libraries=e.ChainNode=e.PROPERTY_DID_CHANGE=e.PROXY_CONTENT=e.ComputedProperty=e._globalsComputed=void 0;var g,i=new WeakMap;function l(e){var t=i.get(e);return void 0===t&&(t=new Map,i.set(e,t)),t}function o(e,t){var n=i.get(e);if(void 0!==n)return n.get(t)}function y(e){return i.get(e)}var a=new WeakMap;function b(e,t,n){var r=void 0===n?(0,p.peekMeta)(e):n;if(null!==r)return r.peekDescriptors(t)}function _(e){return a.get(e)}function w(e){return null!=e&&a.has(e)}function E(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];a.set(e,t)}var T=new d.Cache(1e3,function(e){return e.indexOf(\".\")});function C(e){return\"string\"==typeof e&&-1!==T.get(e)}var R,k,x=(0,d.symbol)(\"UNKNOWN_PROPERTY_TAG\");function A(){return m.DirtyableTag.create()}function O(e,t,n){var r=typeof e;if(\"function\"!=r&&(\"object\"!=r||null===e))return m.CONSTANT_TAG;var i=void 0===n?(0,p.meta)(e):n;if(0,(0,d.isProxy)(e))return S(e,i);var o=i.writableTags(),a=o[t];return a||(o[t]=A())}function S(e,t){if(\"object\"==typeof e&&null!==e){var n=void 0===t?(0,p.meta)(e):t;if(!n.isMetaDestroyed())return n.writableTag(A)}return m.CONSTANT_TAG}function N(e,t,n){var r=void 0===n?(0,p.meta)(e):n,i=r.readableTag();void 0!==i&&((0,d.isProxy)(e)?i.inner.first.inner.dirty():i.inner.dirty());var o=r.readableTags(),a=void 0!==o?o[t]:void 0;void 0!==a&&R(a),void 0===i&&void 0===a||s.backburner.ensureInstance()}e.UNKNOWN_PROPERTY_TAG=x,e.update=k,R=function(e){e.inner.dirty()};var P=\":change\";function L(e,t,n,r,i){var o=!(5<arguments.length&&void 0!==arguments[5])||arguments[5];r||\"function\"!=typeof n||(r=n,n=null),(0,p.meta)(e).addToListeners(t,n,r,!0===i,o)}function M(e,t,n,r){var i,o=\"object\"==typeof n?(i=n,r):(i=null,n);(0,p.meta)(e).removeFromListeners(t,i,o)}function j(e,t,n,r,i){var o;if(void 0===r&&(r=\"object\"==typeof(o=void 0===i?(0,p.peekMeta)(e):i)&&null!==o?o.matchingListeners(t):void 0),void 0===r||0===r.length)return!1;for(var a=r.length-3;0<=a;a-=3){var s=r[a],u=r[a+1],l=r[a+2];u&&(l&&M(e,t,s,u),s=s||e,\"string\"==typeof u&&(u=s[u]),u.apply(s,n))}return!0}var D=!c.ENV._DEFAULT_ASYNC_OBSERVERS,I=new Map,F=new Map;function B(e,t,n,r){var i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:D,o=t+P;L(e,o,n,r,!1,i),Pe(e,t)}function U(e,t,n,r){var i=t+P;Me(e,t),M(e,i,n,r)}function z(e,t){var n,r,i,o,a=(n=e,(r=!0===(2<arguments.length&&void 0!==arguments[2]&&arguments[2])?I:F).has(n)||r.set(n,new Map),r.get(n));a.has(t)?a.get(t).count++:(o=Xe(e,i=t.split(\":\")[0]),a.set(t,{count:1,path:i,tag:o,lastRevision:o.value(),suspended:!1}))}var q=0;var H,V,W,Y=function(){function e(){this.added=new Map,this.queue=[]}var t=e.prototype;return t.add=function(e,t,n){var r=this.added.get(e);void 0===r&&(r=new Set,this.added.set(e,r)),r.has(t)||(this.queue.push(e,t,n),r.add(t))},t.flush=function(){var e=this.queue;this.added.clear(),this.queue=[];for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];n.isDestroying||n.isDestroyed||j(n,i,[n,r])}},e}();e.runInTransaction=H,e.didRender=V,e.assertNotRendered=W,e.runInTransaction=H=function(e,t){return e[t](),!1};var G=(0,d.symbol)(\"PROPERTY_DID_CHANGE\");e.PROPERTY_DID_CHANGE=G;var Q=new Y,K=0;function $(e,t,n){var r,i,o,a=void 0===n?(0,p.peekMeta)(e):n;null!==a&&(a.isInitializing()||a.isPrototypeMeta(e))||(void 0!==(r=b(e,t,a))&&\"function\"==typeof r.didChange&&r.didChange(e,t),null!==a&&0<a.peekWatching(t)&&(function(e,t,n){if(n.isSourceDestroying()||!n.hasDeps(t))return;var r=J;r&&(J=!1);(function(t,n,e,r,i){var o,a=r.get(n);void 0===a&&(a=new Set,r.set(n,a));if(a.has(e))return;i.forEachInDeps(e,function(e){void 0!==(o=b(n,e,i))&&o._suspended===n||t(n,e,i)})})($,e,t,X,n),r&&(X.clear(),J=!0)}(e,t,a),i=t,void 0!==(o=a.readableChainWatchers())&&o.notify(i,!0,$),function(e,t,n){if(n.isSourceDestroying())return;var r=t+P;0<K?Q.add(e,t,r):j(e,r,[e,t])}(e,t,a)),null!==a&&N(e,t,a),G in e&&e[G](t))}var X=new Map,J=!0;function Z(e,t,n){var r=n.readableChainWatchers();void 0!==r&&r.revalidate(t)}function ee(){K++}function te(){--K<=0&&Q.flush()}function ne(e){ee();try{e()}finally{te()}}function re(e,t,n,r,i){void 0===i&&(i=(0,p.meta)(e));var o=0<i.peekWatching(t),a=b(e,t,i),s=void 0!==a;s&&a.teardown(e,t,i);var u,l,c=!0;e===Array.prototype&&(c=!1),w(n)?(u=n(e,t,void 0,i),Object.defineProperty(e,t,u),l=n):null==n?(l=r,s||!1===c?Object.defineProperty(e,t,{configurable:!0,enumerable:c,writable:!0,value:l}):e[t]=r):(l=n,Object.defineProperty(e,t,n)),o&&Z(0,t,i),\"function\"==typeof e.didDefineProperty&&e.didDefineProperty(e,t,l)}function ie(e,t,n){var r,i=void 0===n?(0,p.meta)(e):n,o=i.peekWatching(t);i.writeWatching(t,o+1),0===o&&(void 0!==(r=b(e,t,i))&&void 0!==r.willWatch&&r.willWatch(e,t,i),\"function\"==typeof e.willWatchProperty&&e.willWatchProperty(t))}function oe(e,t,n){var r,i,o=void 0===n?(0,p.peekMeta)(e):n;null===o||o.isSourceDestroyed()||(1===(r=o.peekWatching(t))?(o.writeWatching(t,0),void 0!==(i=b(e,t,o))&&void 0!==i.didUnwatch&&i.didUnwatch(e,t,o),\"function\"==typeof e.didUnwatchProperty&&e.didUnwatchProperty(t)):1<r&&o.writeWatching(t,r-1))}var ae=new WeakMap;function se(e,t,n,r){var i=ae.get(e);void 0!==i&&i.arrayWillChange(e,t,n,r)}function ue(e,t,n,r){var i=ae.get(e);void 0!==i&&i.arrayDidChange(e,t,n,r)}function le(e,t,n,r){return void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),se(e,t,n,r),j(e,\"@array:before\",[e,t,n,r]),e}function ce(e,t,n,r){void 0===t?(t=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));var i=(0,p.peekMeta)(e);(r<0||n<0||r-n!=0)&&$(e,\"length\",i),$(e,\"[]\",i),ue(e,t,n,r),j(e,\"@array:change\",[e,t,n,r]);var o,a,s,u=y(e);return void 0!==u&&(o=-1===n?0:n,a=e.length-((-1===r?0:r)-o),s=t<0?a+t:t,u.has(\"firstObject\")&&0===s&&$(e,\"firstObject\",i),u.has(\"lastObject\")&&a-1<s+o&&$(e,\"lastObject\",i)),e}var he=Object.freeze([]);function fe(e,t){return Array.isArray(e)?e[t]:e.objectAt(t)}var pe=6e4;function de(e,t,n,r){if(le(e,t,n,r.length),r.length<=pe)e.splice.apply(e,[t,n].concat(r));else{e.splice(t,n);for(var i=0;i<r.length;i+=pe){var o=r.slice(i,i+pe);e.splice.apply(e,[t+i,0].concat(o))}}ce(e,t,n,r.length)}function me(e,t,n,r,i){var o=n&&n.willChange||\"arrayWillChange\",a=n&&n.didChange||\"arrayDidChange\",s=Ke(e,\"hasArrayObservers\");return r(e,\"@array:before\",t,o),r(e,\"@array:change\",t,a),s===i&&$(e,\"hasArrayObservers\"),e}function ve(e){var t=ae.get(e);return void 0===t&&(t=new ge(e),ae.set(e,t)),t}var ge=function(){function e(e){this._content=e,(this._keys=void 0,p.meta)(this)}var t=e.prototype;return t.arrayWillChange=function(e,t,n){var r=this._keys;if(r){var i=0<n?t+n:-1;if(0<i)for(var o in r)be(e,o,this,t,i)}},t.arrayDidChange=function(e,t,n,r){var i=this._keys;if(i){var o=0<r?t+r:-1,a=(0,p.peekMeta)(this);for(var s in i)0<o&&ye(e,s,this,t,o),$(this,s,a)}},t.willWatchProperty=function(e){this.beginObservingContentKey(e)},t.didUnwatchProperty=function(e){this.stopObservingContentKey(e)},t.beginObservingContentKey=function(e){var t,n=this._keys;void 0===n&&(n=this._keys=Object.create(null)),n[e]?n[e]++:(n[e]=1,ye(t=this._content,e,this,0,t.length))},t.stopObservingContentKey=function(e){var t,n=this._keys;void 0!==n&&0<n[e]&&--n[e]<=0&&be(t=this._content,e,this,0,t.length)},t.contentKeyDidChange=function(e,t){$(this,t)},e}();function ye(e,t,n,r,i){for(;--i>=r;){var o=fe(e,i);o&&B(o,t,n,\"contentKeyDidChange\")}}function be(e,t,n,r,i){for(;--i>=r;){var o=fe(e,i);o&&U(o,t,n,\"contentKeyDidChange\")}}function _e(e){return\"object\"==typeof e&&null!==e}var we=function(){function e(){this.chains=Object.create(null)}var t=e.prototype;return t.add=function(e,t){var n=this.chains[e];void 0===n?this.chains[e]=[t]:n.push(t)},t.remove=function(e,t){var n=this.chains[e];if(void 0!==n)for(var r=0;r<n.length;r++)if(n[r]===t){n.splice(r,1);break}},t.has=function(e,t){var n=this.chains[e];if(void 0!==n)for(var r=0;r<n.length;r++)if(n[r]===t)return!0;return!1},t.revalidateAll=function(){for(var e in this.chains)this.notify(e,!0,void 0)},t.revalidate=function(e){this.notify(e,!0,void 0)},t.notify=function(e,t,n){var r=this.chains[e];if(void 0!==r&&0!==r.length){var i=void 0;void 0!==n&&(i=[]);for(var o=0;o<r.length;o++)r[o].notify(t,i);if(void 0!==n)for(var a=0;a<i.length;a+=2){n(i[a],i[a+1])}}},e}();function Ee(){return new we}function Te(e){return new Oe(null,null,e)}function Ce(e,t,n){var r=(0,p.meta)(e);r.writableChainWatchers(Ee).add(t,n),ie(e,t,r)}function Re(e,t,n,r){var i;_e(e)&&(null===(i=void 0===r?(0,p.peekMeta)(e):r)||i.isSourceDestroying()||i.isMetaDestroyed()||void 0===i.readableChainWatchers()||((i=(0,p.meta)(e)).readableChainWatchers().remove(t,n),oe(e,t,i)))}var ke=[];function xe(e){e.isWatching&&(Re(e.object,e.key,e),e.isWatching=!1)}function Ae(e){var t=e.chains;if(void 0!==t)for(var n in t)void 0!==t[n]&&ke.push(t[n])}var Oe=function(){function i(e,t,n){var r;this.paths=void 0,this.isWatching=!1,this.chains=void 0,this.object=void 0,this.count=0,this.parent=e,this.key=t,this.content=n,!(this.isWatching=null!==e)||_e(r=e.value())&&Ce(this.object=r,t,this)}var e=i.prototype;return e.value=function(){var e;return void 0===this.content&&this.isWatching&&(e=this.parent.value(),this.content=function(e,t){if(!_e(e))return;var n=(0,p.peekMeta)(e);if(null!==n&&n.proto===e)return;return\"@each\"===t?ve(e):(function(e,t,n){var r=b(e,t,n);return void 0===r||!1!==r._volatile}(e,t,n)?Ke:o)(e,t)}(e,this.key)),this.content},e.destroy=function(){(null===this.parent?function(e){for(Ae(e);0<ke.length;){var t=ke.pop();Ae(t),xe(t)}}:xe)(this)},e.copyTo=function(e){var t,n=this.paths;if(void 0!==n)for(t in n)0<n[t]&&e.add(t)},e.add=function(e){var t=this.paths||(this.paths={});t[e]=(t[e]||0)+1;var n=e.split(\".\");this.chain(n.shift(),n)},e.remove=function(e){var t,n=this.paths;void 0!==n&&(0<n[e]&&n[e]--,t=e.split(\".\"),this.unchain(t.shift(),t))},e.chain=function(e,t){var n=this.chains;void 0===n&&(n=this.chains=Object.create(null));var r=n[e];void 0===r&&(r=n[e]=new i(this,e,void 0)),r.count++,0<t.length&&r.chain(t.shift(),t)},e.unchain=function(e,t){var n=this.chains,r=n[e];0<t.length&&r.unchain(t.shift(),t),r.count--,r.count<=0&&(n[r.key]=void 0,r.destroy())},e.notify=function(e,t){var n;e&&this.isWatching&&((n=this.parent.value())!==this.object&&(Re(this.object,this.key,this),_e(n)?Ce(this.object=n,this.key,this):this.object=void 0),this.content=void 0);var r,i=this.chains;if(void 0!==i)for(var o in i)void 0!==(r=i[o])&&r.notify(e,t);void 0!==t&&null!==this.parent&&this.parent.populateAffected(this.key,1,t)},e.populateAffected=function(e,t,n){this.key&&(e=this.key+\".\"+e),null!==this.parent?this.parent.populateAffected(e,t+1,n):1<t&&n.push(this.value(),e)},i}();function Se(e,t,n){var r=void 0===n?(0,p.meta)(e):n,i=r.peekWatching(t);r.writeWatching(t,i+1),0===i&&r.writableChains(Te).add(t)}function Ne(e,t,n){var r,i=void 0===n?(0,p.peekMeta)(e):n;null===i||0<(r=i.peekWatching(t))&&(i.writeWatching(t,r-1),1===r&&i.writableChains(Te).remove(t))}function Pe(e,t,n){(C(t)?Se:ie)(e,t,n)}function Le(e,t){var n=(0,p.peekMeta)(e);return null!==n&&n.peekWatching(t)||0}function Me(e,t,n){(C(t)?Ne:oe)(e,t,n)}function je(e){var t=e[0],n=e[1],r=e[2];return 3===e.length&&(\"function\"==typeof t||\"object\"==typeof t&&null!==t)&&\"string\"==typeof n&&(\"object\"==typeof r&&null!==r&&\"enumerable\"in r&&\"configurable\"in r||void 0===r)}function De(e,t,n,r){var i=e._dependentKeys;if(null!=i)for(var o=0;o<i.length;o++){var a=i[o];r.writeDeps(a,n,r.peekDeps(a,n)+1),Pe(t,a,r)}}function Ie(e,t,n,r){var i=e._dependentKeys;if(null!=i)for(var o=0;o<i.length;o++){var a=i[o];r.writeDeps(a,n,r.peekDeps(a,n)-1),Me(t,a,r)}}function Fe(e){function t(){return e}return E(t),t}e.ChainNode=Oe;var Be=function(){function e(){this.enumerable=!0,this.configurable=!0,this._dependentKeys=void 0,this._meta=void 0}var t=e.prototype;return t.setup=function(e,t,n,r){r.writeDescriptors(t,this)},t.teardown=function(e,t,n){n.removeDescriptors(t)},e}();function Ue(l,e){function t(e,t,n,r,i){var o=3===arguments.length?(0,p.meta)(e):r;l.setup(e,t,n,o);var a,s,u={enumerable:l.enumerable,configurable:l.configurable,get:(a=t,s=l,function(){return s.get(this,a)})};return u}return E(t,l),Object.setPrototypeOf(t,e.prototype),t}var ze=function(){function e(){this.tags=new Set,this.last=null}var t=e.prototype;return t.add=function(e){this.tags.add(e),this.last=e},t.combine=function(){if(0===this.tags.size)return m.CONSTANT_TAG;if(1===this.tags.size)return this.last;var t=[];return this.tags.forEach(function(e){return t.push(e)}),(0,m.combine)(t)},(0,r.createClass)(e,[{key:\"size\",get:function(){return this.tags.size}}]),e}();function qe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if(je(t))return He(t);function r(e,t,n,r,i){return He([e,t,{initializer:o||function(){return a}}])}var i=t[0],o=i?i.initializer:void 0,a=i?i.value:void 0;return E(r),r}function He(e){e[0];var n=e[1],t=e[2],r=t?t.initializer:void 0,i=new WeakMap,o=\"function\"==typeof r;return{enumerable:!0,configurable:!0,get:function(){var e,t=O(this,n);return Ve&&Ve.add(t),o&&!i.has(this)?(e=r.call(this),i.set(this,e)):e=i.get(this),(Array.isArray(e)||(0,d.isEmberArray)(e))&&k(t,O(e,\"[]\")),e},set:function(e){N(this,n),i.set(this,e),null!==Ge&&Ge()}}}e.Tracker=ze;var Ve=null;function We(e){var t=Ve,n=new ze;Ve=n;try{e()}finally{Ve=t}return n.combine()}function Ye(e){null!==Ve&&Ve.add(e)}var Ge=null,Qe=(0,d.symbol)(\"PROXY_CONTENT\");function Ke(e,t){var n,r=typeof e,i=\"object\"==r,o=i||\"function\"==r;if(C(t))return o?$e(e,t):void 0;if(o){0;var a=b(e,t);if(void 0!==a)return a.get(e,t);n=e[t]}else n=e[t];return void 0!==n||!i||t in e||\"function\"!=typeof e.unknownProperty?n:e.unknownProperty(t)}function $e(e,t){for(var n=e,r=\"string\"==typeof t?t.split(\".\"):t,i=0;i<r.length;i++){if(null==n||n.isDestroyed)return;n=Ke(n,r[i])}return n}function Xe(e,t){for(var n,r,i=[],o=e,a=t.split(\".\");0<a.length;){if(\"@each\"===(n=a.shift())&&0<a.length){n=a.shift();var s=o.map(function(e){return O(e,n)});i.push.apply(i,s.concat([O(o,\"[]\")]));break}var u=O(o,n);if(i.push(u),void 0===(r=b(o,n)))o=n in o||\"function\"!=typeof o.unknownProperty?o[n]:o.unknownProperty(n);else{var l=g(o,n);if(u.validate(l))\"string\"==typeof r.altKey?We(function(){o=Ke(o,r.altKey)}):o=y(o).get(n);else if(0<a.length){var c=m.UpdatableTag.create(m.CONSTANT_TAG);(0,p.meta)(o).writableLazyChainsFor(n).push([a.join(\".\"),c]),i.push(c);break}}var h=typeof o;if(null===o||\"object\"!=h&&\"function\"!=h)break}return(0,m.combine)(i)}e.PROXY_CONTENT=Qe;var Je=/\\.@each$/;function Ze(e,t){var n=e.indexOf(\"{\");n<0?t(e.replace(Je,\".[]\")):function e(t,n,r,i){var o,a,s=n.indexOf(\"}\"),u=0;var l=n.substring(r+1,s).split(\",\");var c=n.substring(s+1);t+=n.substring(0,r);a=l.length;for(;u<a;)(o=c.indexOf(\"{\"))<0?i((t+l[u++]+c).replace(Je,\".[]\")):e(t+l[u++],c,o,i)}(\"\",e,n,t)}function et(e,t,n,r){if(!e.isDestroyed){if(C(t))return function(e,t,n,r){var i=t.split(\".\"),o=i.pop();var a=$e(e,i);{if(null!=a)return et(a,o,n);if(!r)throw new u.default('Property set failed: object in path \"'+i.join(\".\")+'\" could not be found.')}}(e,t,n,r);var i,o=(0,p.peekMeta)(e),a=b(e,t,o);return void 0!==a?(a.set(e,t,n),n):(void 0!==(i=e[t])||\"object\"!=typeof e||t in e||\"function\"!=typeof e.setUnknownProperty?i!==(e[t]=n)&&$(e,t,o):e.setUnknownProperty(t,n),n)}}function tt(){}var nt=function(a){function e(e){var t=a.call(this)||this;t._volatile=!1,t._readOnly=!1,t._suspended=void 0,t._hasConfig=!1,t._getter=void 0,t._setter=void 0;var n,r,i=e[e.length-1];return(\"function\"==typeof i||null!==i&&\"object\"==typeof i)&&(t._hasConfig=!0,\"function\"==typeof(n=e.pop())?t._getter=n:(r=n,t._getter=r.get||tt,t._setter=r.set)),0<e.length&&t._property.apply(t,e),t}(0,r.inheritsLoose)(e,a);var t=e.prototype;return t.setup=function(e,t,n,r){var i,o;a.prototype.setup.call(this,e,t,n,r),!1===this._hasConfig&&(i=n.get,o=n.set,void 0!==i&&(this._getter=i),void 0!==o&&(this._setter=function(e,t){var n=o.call(this,t);return void 0!==i&&void 0===n?i.call(this):n}))},t.volatile=function(){this._volatile=!0},t.readOnly=function(){this._readOnly=!0},t.property=function(){this._property.apply(this,arguments)},t._property=function(){var t=[];function e(e){t.push(e)}for(var n=0;n<arguments.length;n++)Ze(n<0||arguments.length<=n?void 0:arguments[n],e);this._dependentKeys=t},t.didChange=function(e,t){var n,r;this._volatile||this._suspended===e||(null===(n=(0,p.peekMeta)(e))||n.source!==e||void 0!==(r=y(e))&&r.delete(t)&&Ie(this,e,t,n))},t.get=function(e,t){if(this._volatile)return this._getter.call(e,t);var n,r=l(e);if(0,r.has(t))return r.get(t);n=this._getter.call(e,t),r.set(t,n);var i=(0,p.meta)(e),o=i.readableChainWatchers();return void 0!==o&&o.revalidate(t),De(this,e,t,i),n},t.set=function(e,t,n){return this._readOnly&&this._throwReadOnlyError(e,t),this._setter?this._volatile?this.volatileSet(e,t,n):this.setWithSuspend(e,t,n):this.clobberSet(e,t,n)},t._throwReadOnlyError=function(e,t){throw new u.default('Cannot set read-only property \"'+t+'\" on object: '+(0,d.inspect)(e))},t.clobberSet=function(e,t,n){return re(e,t,null,o(e,t)),et(e,t,n),n},t.volatileSet=function(e,t,n){return this._setter.call(e,t,n)},t.setWithSuspend=function(e,t,n){var r=this._suspended;this._suspended=e;try{return this._set(e,t,n)}finally{this._suspended=r}},t._set=function(e,t,n){var r=l(e),i=r.has(t),o=r.get(t),a=this._setter.call(e,t,n,o);if(i&&o===a)return a;var s=(0,p.meta)(e);return i||De(this,e,t,s),r.set(t,a),$(e,t,s),a},t.teardown=function(e,t,n){var r;this._volatile||void 0!==(r=y(e))&&r.delete(t)&&Ie(this,e,t,n),a.prototype.teardown.call(this,e,t,n)},e}(Be);e.ComputedProperty=nt;var rt=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.readOnly=function(){return _(this).readOnly(),this},n.volatile=function(){return _(this).volatile(),this},n.property=function(){var e;return(e=_(this)).property.apply(e,arguments),this},n.meta=function(e){var t=_(this);return 0===arguments.length?t._meta||{}:(t._meta=e,this)},(0,r.createClass)(t,[{key:\"_getter\",get:function(){return _(this)._getter}},{key:\"enumerable\",set:function(e){_(this).enumerable=e}}]),t}((0,r.wrapNativeSuper)(Function));function it(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return je(t)?Ue(new nt([]),rt)(t[0],t[1],t[2]):Ue(new nt(t),rt)}var ot=it.bind(null);e._globalsComputed=ot;var at=Object.freeze({});var st=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.readOnly=function(){return _(this).readOnly(),this},n.oneWay=function(){return _(this).oneWay(),this},n.meta=function(e){var t=_(this);if(0===arguments.length)return t._meta||{};t._meta=e},t}((0,r.wrapNativeSuper)(Function)),ut=function(i){function e(e){var t=i.call(this)||this;return t.altKey=e,t._dependentKeys=[e],t}(0,r.inheritsLoose)(e,i);var t=e.prototype;return t.setup=function(e,t,n,r){i.prototype.setup.call(this,e,t,n,r),0<r.peekWatching(t)&&this.consume(e,t,r)},t.teardown=function(e,t,n){this.unconsume(e,t,n),i.prototype.teardown.call(this,e,t,n)},t.willWatch=function(e,t,n){this.consume(e,t,n)},t.get=function(e,t){var n=Ke(e,this.altKey);return this.consume(e,t,(0,p.meta)(e)),n},t.unconsume=function(e,t,n){var r=o(e,t)===at;(r||0<n.peekWatching(t))&&Ie(this,e,t,n),r&&l(e).delete(t)},t.consume=function(e,t,n){var r=l(e);r.get(t)!==at&&(r.set(t,at),De(this,e,t,n))},t.set=function(e,t,n){return et(e,this.altKey,n)},t.readOnly=function(){this.set=lt},t.oneWay=function(){this.set=ct},e}(Be);function lt(e,t){throw new u.default(\"Cannot set read-only property '\"+t+\"' on object: \"+(0,d.inspect)(e))}function ct(e,t,n){return re(e,t,null),et(e,t,n)}function ht(e){var t=null==e;if(t)return t;if(\"number\"==typeof e.size)return!e.size;var n=typeof e;if(\"object\"==n){var r=Ke(e,\"size\");if(\"number\"==typeof r)return!r}if(\"number\"==typeof e.length&&\"function\"!=n)return!e.length;if(\"object\"==n){var i=Ke(e,\"length\");if(\"number\"==typeof i)return!i}return!1}function ft(e){return ht(e)||\"string\"==typeof e&&!1===/\\S/.test(e)}var pt=function(){function e(){this._registry=[],this._coreLibIndex=0}var t=e.prototype;return t._getLibraryByName=function(e){for(var t=this._registry,n=t.length,r=0;r<n;r++)if(t[r].name===e)return t[r]},t.register=function(e,t,n){var r=this._registry.length;this._getLibraryByName(e)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:e,version:t}))},t.registerCoreLibrary=function(e,t){this.register(e,t,!0)},t.deRegister=function(e){var t,n=this._getLibraryByName(e);n&&(t=this._registry.indexOf(n),this._registry.splice(t,1))},e}(),dt=new(e.Libraries=pt);(e.libraries=dt).registerCoreLibrary(\"Ember\",n.default);var mt=Object.prototype.hasOwnProperty,vt=!1,gt={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(e){this._set++,this._unprocessedNamespaces=e}},yt=!1,bt=[];e.NAMESPACES=bt;var _t=Object.create(null);function wt(){if(gt.unprocessedNamespaces)for(var e,t=c.context.lookup,n=Object.keys(t),r=0;r<n.length;r++){var i,o=n[r];65<=(e=o.charCodeAt(0))&&e<=90&&((i=function(e,t){try{var n=e[t];return(null!==n&&\"object\"==typeof n||\"function\"==typeof n)&&n.isNamespace&&n}catch(e){}}(t,o))&&(0,d.setName)(i,o))}}function Et(e){!function e(t,n,r){var i=t.length;var o=t.join(\".\");_t[o]=n;(0,d.setName)(n,o);for(var a in n)if(mt.call(n,a)){var s=n[a];if(t[i]=a,s&&s.toString===Ct&&void 0===(0,d.getName)(s))(0,d.setName)(s,t.join(\".\"));else if(s&&s.isNamespace){if(r.has(s))continue;r.add(s),e(t,s,r)}}t.length=i}([e.toString()],e,new Set)}function Tt(){var e=gt.unprocessedNamespaces;if(e&&(wt(),gt.unprocessedNamespaces=!1),e||yt){for(var t=bt,n=0;n<t.length;n++)Et(t[n]);yt=!1}}function Ct(){var e=(0,d.getName)(this);return void 0!==e||(e=function(e){var t;if(!vt){if(Tt(),void 0!==(t=(0,d.getName)(e)))return t;var n=e;do{if((n=Object.getPrototypeOf(n))===Function.prototype||n===Object.prototype)break;if(void 0!==(t=(0,d.getName)(e))){t=\"(subclass of \"+t+\")\";break}}while(void 0===t)}return t||\"(unknown)\"}(this),(0,d.setName)(this,e)),e}e.NAMESPACES_BY_ID=_t;var Rt=Array.prototype.concat;Array.isArray;function kt(e){return\"function\"==typeof e&&!1!==e.isMethod&&e!==Boolean&&e!==Object&&e!==Number&&e!==Array&&e!==Date&&e!==String}function xt(e){return\"function\"==typeof e.get||\"function\"==typeof e.set}var At,Ot={};function St(e,t,n,r){var i=n[e]||r[e];return t[e]&&(i=i?Rt.call(i,t[e]):t[e]),i}function Nt(e,t,n,r,i){if(void 0!==i[t])return n;var o=r[t];return void 0===o&&void 0===b(e,t)&&(o=e[t]),\"function\"==typeof o?(0,d.wrap)(n,o):n}function Pt(e,t,n,r,i,o,a,s){var u,l,c,h;w(n)?(i[t]=function(e,t,n,r,i,o){var a,s=_(n);if(!(s instanceof nt)||void 0===s._getter)return n;if(void 0===r[t]&&(a=_(i[t])),void 0===(a=a||b(o,t,e))||!(a instanceof nt))return n;var u=(0,d.wrap)(s._getter,a._getter),l=a._setter?s._setter?(0,d.wrap)(s._setter,a._setter):a._setter:s._setter;if(u===s._getter&&l===s._setter)return n;var c=Object.create(s);return c._getter=u,c._setter=l,Ue(c,nt)}(r,t,n,o,i,e),o[t]=void 0):(a&&0<=a.indexOf(t)||\"concatenatedProperties\"===t||\"mergedProperties\"===t?(u=e,c=n,h=o[l=t]||u[l],n=(0,d.makeArray)(h).concat((0,d.makeArray)(c))):s&&-1<s.indexOf(t)?n=function(e,t,n,r){var i=r[t]||e[t];if(!i)return n;var o,a=(0,f.assign)({},i),s=!1;for(var u in n){n.hasOwnProperty(u)&&(kt(o=n[u])?(s=!0,a[u]=Nt(e,u,o,i,{})):a[u]=o)}return s&&(a._super=d.ROOT),a}(e,t,n,o):kt(n)&&(n=Nt(e,t,n,o,i)),i[t]=void 0,o[t]=n)}function Lt(e,t,n,r,i,o){var a,s,u,l,c;function h(e){delete n[e],delete r[e]}for(var f,p,d=0;d<e.length;d++)if(a=e[d],f=t,(s=(p=a)instanceof Ut?f.hasMixin(p)?Ot:(f.addMixin(p),p.properties):p)!==Ot)if(s){for(u in i.willMergeMixin&&i.willMergeMixin(s),l=St(\"concatenatedProperties\",s,r,i),c=St(\"mergedProperties\",s,r,i),s)s.hasOwnProperty(u)&&(o.push(u),Pt(i,u,s[u],t,n,r,l,c));s.hasOwnProperty(\"toString\")&&(i.toString=s.toString)}else a.mixins&&(Lt(a.mixins,t,n,r,i,o),a._without&&a._without.forEach(h))}function Mt(e,t,n,r){var i=(0,d.getObservers)(n),o=(0,d.getListeners)(n);if(void 0!==i)for(var a=r?B:U,s=0;s<i.paths.length;s++)a(e,i.paths[s],null,t,i.sync);if(void 0!==o)for(var u=r?L:M,l=0;l<o.length;l++)u(e,o[l],null,t)}function jt(e,t,n,r){\"function\"==typeof n&&Mt(e,t,n,!1),\"function\"==typeof r&&Mt(e,t,r,!0)}function Dt(e,t){var n,r={},i={},o=(0,p.meta)(e),a=[];e._super=d.ROOT,Lt(t,o,r,i,e,a);for(var s=0;s<a.length;s++)if(\"constructor\"!==(n=a[s])&&i.hasOwnProperty(n)){if(l=r[n],c=i[n],h.ALIAS_METHOD)for(;c&&c instanceof It;)var u=At(e,c,r,i),l=u.desc,c=u.value;void 0===l&&void 0===c||(void 0!==b(e,n)?jt(e,n,null,c):jt(e,n,e[n],c),re(e,n,l,c,o))}return e}h.ALIAS_METHOD&&(At=function(e,t,n,r){var i,o=t.methodName,a=n[o],s=r[o];return void 0!==a||void 0!==s||(s=void 0!==(i=b(e,o))?void(a=i):(a=void 0,e[o])),{desc:a,value:s}});var It,Ft,Bt,Ut=function(){function i(e,t){this.properties=function(n){if(void 0!==n){var r=(0,d.getOwnPropertyDescriptors)(n),e=Object.keys(r);if(e.some(function(e){return xt(r[e])})){var i={};return e.forEach(function(e){var t=r[e];xt(t)?i[e]=Fe(t):i[e]=n[e]}),i}}return n}(t),this.mixins=zt(e),this.ownerConstructor=void 0,this._without=void 0}i.create=function(){yt=!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new this(t,void 0)},i.mixins=function(e){var t=(0,p.peekMeta)(e),n=[];return null===t||t.forEachMixins(function(e){e.properties||n.push(e)}),n};var e=i.prototype;return e.reopen=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(0!==n.length)return this.properties?(e=new i(void 0,this.properties),this.properties=void 0,this.mixins=[e]):this.mixins||(this.mixins=[]),this.mixins=this.mixins.concat(zt(n)),this},e.apply=function(e){return Dt(e,[this])},e.applyPartial=function(e){return Dt(e,[this])},e.detect=function(e){if(\"object\"!=typeof e||null===e)return!1;if(e instanceof i)return function t(e,n){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new Set;if(r.has(e))return!1;r.add(e);if(e===n)return!0;var i=e.mixins;if(i)return i.some(function(e){return t(e,n,r)});return!1}(e,this);var t=(0,p.peekMeta)(e);return null!==t&&t.hasMixin(this)},e.without=function(){for(var e=new i([this]),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e._without=n,e},e.keys=function(){return function t(e){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new Set;var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new Set;if(r.has(e))return;r.add(e);if(e.properties)for(var i=Object.keys(e.properties),o=0;o<i.length;o++)n.add(i[o]);else e.mixins&&e.mixins.forEach(function(e){return t(e,n,r)});return n}(this)},e.toString=function(){return\"(unknown mixin)\"},i}();function zt(e){var t=e&&e.length||0,n=void 0;if(0<t){n=new Array(t);for(var r=0;r<t;r++){var i=e[r];n[r]=i instanceof Ut?i:new Ut(void 0,i)}}return n}(e.Mixin=Ut).prototype.toString=Ct,h.ALIAS_METHOD&&(It=function(e){this.methodName=e}),e.aliasMethod=Ft,h.ALIAS_METHOD&&(e.aliasMethod=Ft=function(e){return new It(e)}),e.DEBUG_INJECTION_FUNCTIONS=Bt}),e(\"@ember/-internals/owner/index\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";e.getOwner=function(e){return e[n]},e.setOwner=function(e,t){e[n]=t};var n=(e.OWNER=void 0,t.symbol)(\"OWNER\");e.OWNER=n}),e(\"@ember/-internals/routing/index\",[\"exports\",\"@ember/-internals/routing/lib/ext/controller\",\"@ember/-internals/routing/lib/location/api\",\"@ember/-internals/routing/lib/location/none_location\",\"@ember/-internals/routing/lib/location/hash_location\",\"@ember/-internals/routing/lib/location/history_location\",\"@ember/-internals/routing/lib/location/auto_location\",\"@ember/-internals/routing/lib/system/generate_controller\",\"@ember/-internals/routing/lib/system/controller_for\",\"@ember/-internals/routing/lib/system/dsl\",\"@ember/-internals/routing/lib/system/router\",\"@ember/-internals/routing/lib/system/route\",\"@ember/-internals/routing/lib/system/query_params\",\"@ember/-internals/routing/lib/services/routing\",\"@ember/-internals/routing/lib/services/router\",\"@ember/-internals/routing/lib/system/cache\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";Object.defineProperty(e,\"Location\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,\"NoneLocation\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"HashLocation\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"HistoryLocation\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"AutoLocation\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"generateController\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"generateControllerFactory\",{enumerable:!0,get:function(){return s.generateControllerFactory}}),Object.defineProperty(e,\"controllerFor\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"RouterDSL\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"Router\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"Route\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"QueryParams\",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,\"RoutingService\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"RouterService\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"BucketCache\",{enumerable:!0,get:function(){return m.default}})}),e(\"@ember/-internals/routing/lib/ext/controller\",[\"exports\",\"@ember/-internals/metal\",\"@ember/controller/lib/controller_mixin\",\"@ember/-internals/routing/lib/utils\"],function(e,o,t,a){\"use strict\";e.default=void 0,t.default.reopen({concatenatedProperties:[\"queryParams\"],queryParams:null,_qpDelegate:null,_qpChanged:function(e,t){var n=t.indexOf(\".[]\"),r=-1===n?t:t.slice(0,n);(0,e._qpDelegate)(r,(0,o.get)(e,r))},transitionToRoute:function(){for(var e=(0,o.get)(this,\"target\"),t=e.transitionToRoute||e.transitionTo,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.apply(e,(0,a.prefixRouteNameArg)(this,r))},replaceRoute:function(){for(var e=(0,o.get)(this,\"target\"),t=e.replaceRoute||e.replaceWith,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t.apply(e,(0,a.prefixRouteNameArg)(this,r))}});var n=t.default;e.default=n}),e(\"@ember/-internals/routing/lib/location/api\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=void 0;var n={create:function(e){var t=e&&e.implementation,n=this.implementations[t];return n.create.apply(n,arguments)},implementations:{}};e.default=n}),e(\"@ember/-internals/routing/lib/location/auto_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/browser-environment\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,t,i,o,n,a,s,f){\"use strict\";e.getHistoryPath=p,e.getHashPath=d,e.default=void 0;var u=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"auto\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.detect=function(){var e=this.rootURL,t=function(e){var t=e.location,n=e.userAgent,r=e.history,i=e.documentMode,o=e.global,a=e.rootURL,s=\"none\",u=!1,l=(0,f.getFullPath)(t);{var c,h;(0,f.supportsHistory)(n,r)?(c=p(a,t),l===c?s=\"history\":\"/#\"===l.substr(0,2)?(r.replaceState({path:c},\"\",c),s=\"history\"):(u=!0,(0,f.replacePath)(t,c))):(0,f.supportsHashChange)(i,o)&&(h=d(a,t),l===h||\"/\"===l&&\"/#/\"===h?s=\"hash\":(u=!0,(0,f.replacePath)(t,h)))}if(u)return!1;return s}({location:this.location,history:this.history,userAgent:this.userAgent,rootURL:e,documentMode:this.documentMode,global:this.global});!1===t&&((0,i.set)(this,\"cancelRouterSetup\",!0),t=\"none\");var n=(0,o.getOwner)(this).lookup(\"location:\"+t);(0,i.set)(n,\"rootURL\",e),(0,i.set)(this,\"concreteImplementation\",n)},n.willDestroy=function(){var e=this.concreteImplementation;e&&e.destroy()},e}(n.Object);function l(i){return function(){for(var e=this.concreteImplementation,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(0,a.tryInvoke)(e,i,n)}}function p(e,t){var n,r,i=(0,f.getPath)(t),o=(0,f.getHash)(t),a=(0,f.getQuery)(t);i.indexOf(e);return\"#/\"===o.substr(0,2)?(n=(r=o.substr(1).split(\"#\")).shift(),\"/\"===i.charAt(i.length-1)&&(n=n.substr(1)),i+=n+a,r.length&&(i+=\"#\"+r.join(\"#\"))):i+=a+o,i}function d(e,t){var n=e,r=p(e,t).substr(e.length);return\"\"!==r&&(\"/\"!==r[0]&&(r=\"/\"+r),n+=\"#\"+r),n}(e.default=u).reopen({rootURL:\"/\",initState:l(\"initState\"),getURL:l(\"getURL\"),setURL:l(\"setURL\"),replaceURL:l(\"replaceURL\"),onUpdateURL:l(\"onUpdateURL\"),formatURL:l(\"formatURL\"),location:t.location,history:t.history,global:t.window,userAgent:t.userAgent,cancelRouterSetup:!1})}),e(\"@ember/-internals/routing/lib/location/hash_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/runloop\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,i,t,o,a){\"use strict\";e.default=void 0;var n=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"hash\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.init=function(){(0,i.set)(this,\"location\",this._location||window.location),this._hashchangeHandler=void 0},n.getHash=function(){return(0,a.getHash)(this.location)},n.getURL=function(){var e=this.getHash().substr(1),t=e;return\"/\"!==t[0]&&(t=\"/\",e&&(t+=\"#\"+e)),t},n.setURL=function(e){this.location.hash=e,(0,i.set)(this,\"lastSetURL\",e)},n.replaceURL=function(e){this.location.replace(\"#\"+e),(0,i.set)(this,\"lastSetURL\",e)},n.onUpdateURL=function(t){this._removeEventListener(),this._hashchangeHandler=(0,o.bind)(this,function(){var e=this.getURL();this.lastSetURL!==e&&((0,i.set)(this,\"lastSetURL\",null),t(e))}),window.addEventListener(\"hashchange\",this._hashchangeHandler)},n.formatURL=function(e){return\"#\"+e},n.willDestroy=function(){this._removeEventListener()},n._removeEventListener=function(){this._hashchangeHandler&&window.removeEventListener(\"hashchange\",this._hashchangeHandler)},e}(t.Object);e.default=n}),e(\"@ember/-internals/routing/lib/location/history_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/-internals/routing/lib/location/util\"],function(e,r,i,t,o){\"use strict\";e.default=void 0;var a=!1;function s(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})}var n=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"history\",e.rootURL=\"/\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.getHash=function(){return(0,o.getHash)(this.location)},n.init=function(){this._super.apply(this,arguments);var e=document.querySelector(\"base\"),t=\"\";e&&(t=e.getAttribute(\"href\")),(0,i.set)(this,\"baseURL\",t),(0,i.set)(this,\"location\",this.location||window.location),this._popstateHandler=void 0},n.initState=function(){var e=this.history||window.history;(0,i.set)(this,\"history\",e),e&&\"state\"in e&&(this.supportsHistory=!0);var t=this.getState(),n=this.formatURL(this.getURL());t&&t.path===n?this._previousURL=this.getURL():this.replaceState(n)},n.getURL=function(){var e=this.location,t=this.rootURL,n=this.baseURL,r=e.pathname,t=t.replace(/\\/$/,\"\"),n=n.replace(/\\/$/,\"\"),i=r.replace(new RegExp(\"^\"+n+\"(?=/|$)\"),\"\").replace(new RegExp(\"^\"+t+\"(?=/|$)\"),\"\").replace(/\\/\\//g,\"/\");return i+=(e.search||\"\")+this.getHash()},n.setURL=function(e){var t=this.getState();e=this.formatURL(e),t&&t.path===e||this.pushState(e)},n.replaceURL=function(e){var t=this.getState();e=this.formatURL(e),t&&t.path===e||this.replaceState(e)},n.getState=function(){return this.supportsHistory?this.history.state:this._historyState},n.pushState=function(e){var t={path:e,uuid:s()};this.history.pushState(t,null,e),this._historyState=t,this._previousURL=this.getURL()},n.replaceState=function(e){var t={path:e,uuid:s()};this.history.replaceState(t,null,e),this._historyState=t,this._previousURL=this.getURL()},n.onUpdateURL=function(e){var t=this;this._removeEventListener(),this._popstateHandler=function(){!a&&(a=!0,t.getURL()===t._previousURL)||e(t.getURL())},window.addEventListener(\"popstate\",this._popstateHandler)},n.formatURL=function(e){var t=this.rootURL,n=this.baseURL;return\"\"!==e?(t=t.replace(/\\/$/,\"\"),n=n.replace(/\\/$/,\"\")):\"/\"===n[0]&&\"/\"===t[0]&&(n=n.replace(/\\/$/,\"\")),n+t+e},n.willDestroy=function(){this._removeEventListener()},n._removeEventListener=function(){this._popstateHandler&&window.removeEventListener(\"popstate\",this._popstateHandler)},e}(t.Object);e.default=n}),e(\"@ember/-internals/routing/lib/location/none_location\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/debug\"],function(e,r,i,t,n){\"use strict\";e.default=void 0;var o=function(t){function e(){var e=t.apply(this,arguments)||this;return e.implementation=\"none\",e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.detect=function(){this.rootURL},n.getURL=function(){var e=this.path,t=(t=this.rootURL).replace(/\\/$/,\"\");return e.replace(new RegExp(\"^\"+t+\"(?=/|$)\"),\"\")},n.setURL=function(e){(0,i.set)(this,\"path\",e)},n.onUpdateURL=function(e){this.updateCallback=e},n.handleURL=function(e){(0,i.set)(this,\"path\",e),this.updateCallback(e)},n.formatURL=function(e){var t=this.rootURL;return\"\"!==e&&(t=t.replace(/\\/$/,\"\")),t+e},e}(t.Object);(e.default=o).reopen({path:\"\",rootURL:\"/\"})}),e(\"@ember/-internals/routing/lib/location/util\",[\"exports\"],function(e){\"use strict\";function t(e){var t=e.pathname;return\"/\"!==t[0]&&(t=\"/\"+t),t}function n(e){return e.search}function r(e){return void 0!==e.hash?e.hash.substr(0):\"\"}function i(e){var t=e.origin;return t||(t=e.protocol+\"//\"+e.hostname,e.port&&(t+=\":\"+e.port)),t}e.getPath=t,e.getQuery=n,e.getHash=r,e.getFullPath=function(e){return t(e)+n(e)+r(e)},e.getOrigin=i,e.supportsHashChange=function(e,t){return t&&\"onhashchange\"in t&&(void 0===e||7<e)},e.supportsHistory=function(e,t){return(-1===e.indexOf(\"Android 2.\")&&-1===e.indexOf(\"Android 4.0\")||-1===e.indexOf(\"Mobile Safari\")||-1!==e.indexOf(\"Chrome\")||-1!==e.indexOf(\"Windows Phone\"))&&Boolean(t&&\"pushState\"in t)},e.replacePath=function(e,t){e.replace(i(e)+t)}}),e(\"@ember/-internals/routing/lib/services/router\",[\"exports\",\"ember-babel\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/object/computed\",\"@ember/service\",\"@ember/-internals/routing/lib/utils\"],function(e,r,t,n,i,o,u){\"use strict\";function a(e,t){return\"/\"===t?e:e.substr(t.length,e.length)}e.default=void 0;var s=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){var t=this;e.prototype.init.apply(this,arguments),this._router.on(\"routeWillChange\",function(e){t.trigger(\"routeWillChange\",e)}),this._router.on(\"routeDidChange\",function(e){t.trigger(\"routeDidChange\",e)})},n.transitionTo=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((0,u.resemblesURL)(t[0]))return this._router._doURLTransition(\"transitionTo\",t[0]);var r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams,s=this._router._doTransition(i,o,a,!0);return s._keepDefaultQueryParamValues=!0,s},n.replaceWith=function(){return this.transitionTo.apply(this,arguments).method(\"replace\")},n.urlFor=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return(t=this._router).generate.apply(t,[e].concat(r))},n.isActive=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=(0,u.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams,s=this._router._routerMicrolib;return!!s.isActiveIntent(i,o)&&(!(0<Object.keys(a).length)||(this._router._prepareQueryParams(i,o,a,!0),(0,u.shallowEqual)(a,s.state.queryParams)))},n.recognize=function(e){var t=a(e,this.rootURL);return this._router._routerMicrolib.recognize(t)},n.recognizeAndLoad=function(e){var t=a(e,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(t)},t}(o.default);(e.default=s).reopen(t.Evented,{currentRouteName:(0,i.readOnly)(\"_router.currentRouteName\"),currentURL:(0,i.readOnly)(\"_router.currentURL\"),location:(0,i.readOnly)(\"_router.location\"),rootURL:(0,i.readOnly)(\"_router.rootURL\"),currentRoute:(0,i.readOnly)(\"_router.currentRoute\")})}),e(\"@ember/-internals/routing/lib/services/routing\",[\"exports\",\"ember-babel\",\"@ember/object/computed\",\"@ember/polyfills\",\"@ember/service\"],function(e,r,t,o,n){\"use strict\";e.default=void 0;var i=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.hasRoute=function(e){return this.router.hasRoute(e)},n.transitionTo=function(e,t,n,r){var i=this.router._doTransition(e,t,n);return r&&i.method(\"replace\"),i},n.normalizeQueryParams=function(e,t,n){this.router._prepareQueryParams(e,t,n)},n.generateURL=function(e,t,n){var r=this.router;if(r._routerMicrolib){var i={};return n&&((0,o.assign)(i,n),this.normalizeQueryParams(e,t,i)),r.generate.apply(r,[e].concat(t,[{queryParams:i}]))}},n.isActiveForRoute=function(e,t,n,r,i){var o=this.router._routerMicrolib.recognizer.handlersFor(n),a=o[o.length-1].handler,s=function(e,t){for(var n=0,r=0;r<t.length&&(n+=t[r].names.length,t[r].handler!==e);r++);return n}(n,o);return e.length>s&&(n=a),r.isActiveIntent(n,e,t,!i)},t}(n.default);(e.default=i).reopen({targetState:(0,t.readOnly)(\"router.targetState\"),currentState:(0,t.readOnly)(\"router.currentState\"),currentRouteName:(0,t.readOnly)(\"router.currentRouteName\"),currentPath:(0,t.readOnly)(\"router.currentPath\")})}),e(\"@ember/-internals/routing/lib/system/cache\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=function(){function e(){this.cache=new Map}var t=e.prototype;return t.has=function(e){return this.cache.has(e)},t.stash=function(e,t,n){var r=this.cache.get(e);void 0===r&&(r=new Map,this.cache.set(e,r)),r.set(t,n)},t.lookup=function(e,t,n){if(!this.has(e))return n;var r=this.cache.get(e);return r.has(t)?r.get(t):n},e}();e.default=t}),e(\"@ember/-internals/routing/lib/system/controller_for\",[\"exports\"],function(e){\"use strict\";e.default=function(e,t,n){return e.lookup(\"controller:\"+t,n)}}),e(\"@ember/-internals/routing/lib/system/dsl\",[\"exports\",\"@ember/debug\",\"@ember/polyfills\"],function(e,t,y){\"use strict\";e.default=void 0;var b=0;function s(e){return\"function\"==typeof e}var n=function(){function g(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,t=1<arguments.length?arguments[1]:void 0;this.explicitIndex=!1,this.parent=e,this.enableLoadingSubstates=Boolean(t&&t.enableLoadingSubstates),this.matches=[],this.options=t}var e=g.prototype;return e.route=function(e,t,n){var r,i,o=null,a=\"/_unused_dummy_error_path_route_\"+e+\"/:error\";s(t)?(r={},o=t):s(n)?(r=t,o=n):r=t||{},this.enableLoadingSubstates&&(w(this,e+\"_loading\",{resetNamespace:r.resetNamespace}),w(this,e+\"_error\",{resetNamespace:r.resetNamespace,path:a})),o?(w(i=new g(_(this,e,r.resetNamespace),this.options),\"loading\"),w(i,\"error\",{path:a}),o.call(i),w(this,e,r,i.generate())):w(this,e,r)},e.push=function(e,t,n,r){var i=t.split(\".\");if(this.options.engineInfo){var o=t.slice(this.options.engineInfo.fullName.length+1),a=(0,y.assign)({localFullName:o},this.options.engineInfo);r&&(a.serializeMethod=r),this.options.addRouteForEngine(t,a)}else if(r)throw new Error(\"Defining a route serializer on route '\"+t+\"' outside an Engine is not allowed.\");\"\"!==e&&\"/\"!==e&&\"index\"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(e,t,n)},e.generate=function(){var n=this.matches;return this.explicitIndex||this.route(\"index\",{path:\"/\"}),function(e){for(var t=0;t<n.length;t+=3)e(n[t]).to(n[t+1],n[t+2])}},e.mount=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=this.options.resolveRouteMap(e),i=e;n.as&&(i=n.as);var o,a=_(this,i,n.resetNamespace),s={name:e,instanceId:b++,mountPoint:a,fullName:a},u=n.path;\"string\"!=typeof u&&(u=\"/\"+i);var l,c,h,f=\"/_unused_dummy_error_path_route_\"+i+\"/:error\";r&&(l=!1,(c=this.options.engineInfo)&&(l=!0,this.options.engineInfo=s),w(h=new g(a,(0,y.assign)({engineInfo:s},this.options)),\"loading\"),w(h,\"error\",{path:f}),r.class.call(h),o=h.generate(),l&&(this.options.engineInfo=c));var p,d,m,v=(0,y.assign)({localFullName:\"application\"},s);this.enableLoadingSubstates&&(p=i+\"_loading\",d=\"application_loading\",m=(0,y.assign)({localFullName:d},s),w(this,p,{resetNamespace:n.resetNamespace}),this.options.addRouteForEngine(p,m),p=i+\"_error\",d=\"application_error\",m=(0,y.assign)({localFullName:d},s),w(this,p,{resetNamespace:n.resetNamespace,path:f}),this.options.addRouteForEngine(p,m)),this.options.addRouteForEngine(a,v),this.push(u,a,o)},g}();function _(e,t,n){return\"application\"!==e.parent&&!0!==n?e.parent+\".\"+t:t}function w(e,t,n,r){var i=2<arguments.length&&void 0!==n?n:{},o=3<arguments.length?r:void 0,a=_(e,t,i.resetNamespace);\"string\"!=typeof i.path&&(i.path=\"/\"+t),e.push(i.path,a,o,i.serialize)}e.default=n}),e(\"@ember/-internals/routing/lib/system/engines\",[],function(){}),e(\"@ember/-internals/routing/lib/system/generate_controller\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,t,n){\"use strict\";function i(e,t){var n=(n=e.factoryFor(\"controller:basic\").class).extend({toString:function(){return\"(generated \"+t+\" controller)\"}}),r=\"controller:\"+t;return e.register(r,n),e.factoryFor(r)}e.generateControllerFactory=i,e.default=function(e,t){i(e,t);var n=\"controller:\"+t,r=e.lookup(n);0;return r}}),e(\"@ember/-internals/routing/lib/system/query_params\",[\"exports\"],function(e){\"use strict\";e.default=void 0;e.default=function(e){var t=0<arguments.length&&void 0!==e?e:null;this.isQueryParams=!0,this.values=t}}),e(\"@ember/-internals/routing/lib/system/route-info\",[],function(){}),e(\"@ember/-internals/routing/lib/system/route\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\",\"@ember/runloop\",\"@ember/string\",\"router_js\",\"@ember/-internals/routing/lib/utils\",\"@ember/-internals/routing/lib/system/generate_controller\"],function(e,w,r,E,T,C,a,t,s,n,g,R,k){\"use strict\";e.defaultSerialize=i,e.hasDefaultSerialize=function(e){return e.serialize===i},e.default=e.ROUTER_EVENT_DEPRECATIONS=e.ROUTE_CONNECTIONS=void 0;var u=new WeakMap;function i(e,t){if(!(t.length<1)&&e){var n,r={};return 1===t.length?(n=t[0])in e?r[n]=(0,E.get)(e,n):/_id$/.test(n)&&(r[n]=(0,E.get)(e,\"id\")):r=(0,E.getProperties)(e,t),r}}e.ROUTE_CONNECTIONS=u;var o,l=function(t){function e(){var e=t.apply(this,arguments)||this;return e.context={},e}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n._setRouteName=function(e){this.routeName=e,this.fullRouteName=c((0,T.getOwner)(this),e)},n._stashNames=function(e,t){if(!this._names){var n=this._names=e._names;n.length||(n=(e=t)&&e._names||[]);for(var r=(0,E.get)(this,\"_qp.qps\"),i=new Array(n.length),o=0;o<n.length;++o)i[o]=e.name+\".\"+n[o];for(var a=0;a<r.length;++a){var s=r[a];\"model\"===s.scope&&(s.parts=i)}}},n._activeQPChanged=function(e,t){this._router._activeQPChanged(e.scopedPropertyName,t)},n._updatingQPChanged=function(e){this._router._updatingQPChanged(e.urlKey)},n.paramsFor=function(e){var t=(0,T.getOwner)(this).lookup(\"route:\"+e);if(!t)return{};var n=this._router._routerMicrolib.activeTransition,r=n?n[g.STATE_SYMBOL]:this._router._routerMicrolib.state,i=t.fullRouteName,o=(0,w.assign)({},r.params[i]),a=p(t,r);return Object.keys(a).reduce(function(e,t){return e[t]=a[t],e},o)},n.serializeQueryParamKey=function(e){return e},n.serializeQueryParam=function(e,t,n){return this._router._serializeQueryParam(e,n)},n.deserializeQueryParam=function(e,t,n){return this._router._deserializeQueryParam(e,n)},n._optionsForQueryParam=function(e){return(0,E.get)(this,\"queryParams.\"+e.urlKey)||(0,E.get)(this,\"queryParams.\"+e.prop)||{}},n.resetController=function(){return this},n.exit=function(){this.deactivate(),this.trigger(\"deactivate\"),this.teardownViews()},n._internalReset=function(e,t){var n=this.controller;n._qpDelegate=(0,E.get)(this,\"_qp.states.inactive\"),this.resetController(n,e,t)},n.enter=function(){u.set(this,[]),this.activate(),this.trigger(\"activate\")},n.deactivate=function(){},n.activate=function(){},n.transitionTo=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=this._router).transitionTo.apply(e,(0,R.prefixRouteNameArg)(this,n))},n.intermediateTransitionTo=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=(0,R.prefixRouteNameArg)(this,n),o=i[0],a=i.slice(1);(e=this._router).intermediateTransitionTo.apply(e,[o].concat(a))},n.refresh=function(){return this._router._routerMicrolib.refresh(this)},n.replaceWith=function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=this._router).replaceWith.apply(e,(0,R.prefixRouteNameArg)(this,n))},n.setup=function(e,t){var n,r,i,o=this.controllerName||this.routeName,a=this.controllerFor(o,!0),s=a||this.generateController(o);this.controller||(r=void 0!==(n=(0,E.get)(this,\"_qp\"))?(0,E.get)(n,\"propertyNames\"):[],i=s,r.forEach(function(e){i.addObserver(e+\".[]\",i,i._qpChanged)}),this.controller=s);var u,l,c,h=(0,E.get)(this,\"_qp\"),f=h.states;s._qpDelegate=f.allowOverrides,t&&((0,R.stashParamNames)(this._router,t[g.STATE_SYMBOL].routeInfos),u=this._bucketCache,l=t[g.PARAMS_SYMBOL],h.propertyNames.forEach(function(e){var t=h.map[e];t.values=l;var n=(0,R.calculateCacheKey)(t.route.fullRouteName,t.parts,t.values),r=u.lookup(n,e,t.undecoratedDefaultValue);(0,E.set)(s,e,r)}),c=p(this,t[g.STATE_SYMBOL]),(0,E.setProperties)(s,c)),this.setupController(s,e,t),this._environment.options.shouldRender&&this.renderTemplate(s,e)},n._qpChanged=function(e,t,n){var r,i;n&&(r=this._bucketCache,i=(0,R.calculateCacheKey)(n.route.fullRouteName,n.parts,n.values),r.stash(i,e,t))},n.beforeModel=function(){},n.afterModel=function(){},n.redirect=function(){},n.contextDidChange=function(){this.currentModel=this.context},n.model=function(e,t){var n,r,i,o,a=(0,E.get)(this,\"_qp.map\");for(var s in e){\"queryParams\"===s||a&&s in a||(null!==(o=s.match(/^(.*)_id$/))&&(n=o[1],i=e[s]),r=!0)}return n?this.findModel(n,i):r?(0,w.assign)({},e):t.resolveIndex<1?void 0:t[g.STATE_SYMBOL].routeInfos[t.resolveIndex-1].context},n.deserialize=function(e,t){return this.model(this._paramsFor(this.routeName,e),t)},n.findModel=function(){var e;return(e=(0,E.get)(this,\"store\")).find.apply(e,arguments)},n.setupController=function(e,t){e&&void 0!==t&&(0,E.set)(e,\"model\",t)},n.controllerFor=function(e){var t=(0,T.getOwner)(this),n=t.lookup(\"route:\"+e);return n&&n.controllerName&&(e=n.controllerName),t.lookup(\"controller:\"+e)},n.generateController=function(e){var t=(0,T.getOwner)(this);return(0,k.default)(t,e)},n.modelFor=function(e){var t=(0,T.getOwner)(this),n=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0,r=t.routable&&void 0!==n?c(t,e):e,i=t.lookup(\"route:\"+r);if(null!=n){var o=i&&i.routeName||r;if(n.resolvedModels.hasOwnProperty(o))return n.resolvedModels[o]}return i&&i.currentModel},n.renderTemplate=function(){this.render()},n.render=function(e,t){var n,r=0===arguments.length;r||(\"object\"!=typeof e||t?n=e:(n=this.templateName||this.routeName,t=e));var i=function(e,t,n,r){var i,o,a,s,u,l,c=(0,T.getOwner)(e);r&&(a=r.into&&r.into.replace(/\\//g,\".\"),s=r.outlet,u=r.controller,l=r.model);s=s||\"main\",o=t?(i=e.routeName,e.templateName||i):(i=n.replace(/\\//g,\".\"),i);u=u||(t?e.controllerName||c.lookup(\"controller:\"+i):c.lookup(\"controller:\"+i)||e.controllerName||e.routeName);{var h;\"string\"==typeof u&&(h=u,u=c.lookup(\"controller:\"+h))}l&&u.set(\"model\",l);var f,p=c.lookup(\"template:\"+o);a&&(f=m(e))&&a===f.routeName&&(a=void 0);var d={owner:c,into:a,outlet:s,name:i,controller:u,template:p||e._topLevelViewTemplate};{}return d}(this,r,n,t);u.get(this).push(i),(0,s.once)(this._router,\"_setOutlets\")},n.disconnectOutlet=function(e){var t,n;e&&(\"string\"==typeof e?t=e:(t=e.outlet,n=e.parentView?e.parentView.replace(/\\//g,\".\"):void 0)),t=t||\"main\",this._disconnectOutlet(t,n);for(var r=this._router._routerMicrolib.currentRouteInfos,i=0;i<r.length;i++)r[i].route._disconnectOutlet(t,n)},n._disconnectOutlet=function(e,t){var n=m(this);n&&t===n.routeName&&(t=void 0);for(var r=u.get(this),i=0;i<r.length;i++){var o=r[i];o.outlet===e&&o.into===t&&(r[i]={owner:o.owner,into:o.into,outlet:o.outlet,name:o.name,controller:void 0,template:void 0},(0,s.once)(this._router,\"_setOutlets\"))}u.set(this,r)},n.willDestroy=function(){this.teardownViews()},n.teardownViews=function(){var e=u.get(this);void 0!==e&&0<e.length&&(u.set(this,[]),(0,s.once)(this._router,\"_setOutlets\"))},n.buildRouteInfoMetadata=function(){},e}(C.Object);function m(e){var t=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;if(!t)return;for(var r=0;r<t.length;r++)if(t[r].route===e)return t[r+n];return}(e,e._router._routerMicrolib.state.routeInfos,-1);return t&&t.route}function p(e,t){t.queryParamsFor=t.queryParamsFor||{};var n=e.fullRouteName;if(t.queryParamsFor[n])return t.queryParamsFor[n];for(var r,i,o=(r=e._router,(i=t).fullQueryParams||(i.fullQueryParams={},(0,w.assign)(i.fullQueryParams,i.queryParams),r._deserializeQueryParams(i.routeInfos,i.fullQueryParams)),i.fullQueryParams),a=t.queryParamsFor[n]={},s=(0,E.get)(e,\"_qp.qps\"),u=0;u<s.length;++u){var l=s[u],c=l.prop in o;a[l.prop]=c?o[l.prop]:x(l.defaultValue)}return a}function x(e){return Array.isArray(e)?(0,C.A)(e.slice()):e}function c(e,t){if(e.routable){var n=e.mountPoint;return\"application\"===t?n:n+\".\"+t}return t}l.reopenClass({isRouteFactory:!0}),l.prototype.serialize=i,l.reopen(C.ActionHandler,C.Evented,{mergedProperties:[\"queryParams\"],queryParams:{},templateName:null,_names:null,controllerName:null,store:(0,E.computed)({get:function(){var r=(0,T.getOwner)(this);this.routeName,(0,E.get)(this,\"_router.namespace\");return{find:function(e,t){var n=r.factoryFor(\"model:\"+e);if(n)return(n=n.class).find(t)}}},set:function(e,t){(0,E.defineProperty)(this,e,null,t)}}),_qp:(0,E.computed)(function(){var e,t,r=this,n=this.controllerName||this.routeName,i=(0,T.getOwner)(this),o=i.lookup(\"controller:\"+n),a=(0,E.get)(this,\"queryParams\"),s=0<Object.keys(a).length;o?(e=(0,E.get)(o,\"queryParams\")||{},t=function(e,t){var n,r,i={},o={defaultValue:!0,type:!0,scope:!0,as:!0};for(var a in e){e.hasOwnProperty(a)&&(n={},(0,w.assign)(n,e[a],t[a]),i[a]=n,o[a]=!0)}for(var s in t){t.hasOwnProperty(s)&&!o[s]&&(r={},(0,w.assign)(r,t[s],e[s]),i[s]=r)}return i}((0,R.normalizeControllerQueryParams)(e),a)):s&&(o=(0,k.default)(i,n),t=a);var u,l,c,h,f,p,d,m,v,g=[],y={},b=[];for(var _ in t){t.hasOwnProperty(_)&&\"unknownProperty\"!==_&&\"_super\"!==_&&(c=\"controller\"===(l=(u=t[_]).scope||\"model\")?[]:void 0,h=u.as||this.serializeQueryParamKey(_),f=x(f=(0,E.get)(o,_)),p=u.type||(0,C.typeOf)(f),d=this.serializeQueryParam(f,h,p),m=n+\":\"+_,v={undecoratedDefaultValue:(0,E.get)(o,_),defaultValue:f,serializedDefaultValue:d,serializedValue:d,type:p,urlKey:h,prop:_,scopedPropertyName:m,controllerName:n,route:this,parts:c,values:null,scope:l},y[_]=y[h]=y[m]=v,g.push(v),b.push(_))}return{qps:g,map:y,propertyNames:b,states:{inactive:function(e,t){var n=y[e];r._qpChanged(e,t,n)},active:function(e,t){var n=y[e];return r._qpChanged(e,t,n),r._activeQPChanged(n,t)},allowOverrides:function(e,t){var n=y[e];return r._qpChanged(e,t,n),r._updatingQPChanged(n)}}}}),send:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(this._router&&this._router._routerMicrolib||!(0,a.isTesting)()){(e=this._router).send.apply(e,n)}else{var i=n.shift(),o=this.actions[i];if(o)return o.apply(this,n)}},actions:{queryParamsDidChange:function(e,t,n){for(var r=(0,E.get)(this,\"_qp\").map,i=Object.keys(e).concat(Object.keys(n)),o=0;o<i.length;++o){var a=r[i[o]];if(a&&(0,E.get)(this._optionsForQueryParam(a),\"refreshModel\")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange:function(e,t,n){if(\"application\"!==this.fullRouteName)return!0;if(n){var r,i=n[g.STATE_SYMBOL].routeInfos,o=this._router,a=o._queryParamsFor(i),s=o._qpUpdates;(0,R.stashParamNames)(o,i);for(var u=0;u<a.qps.length;++u){var l,c,h=a.qps[u],f=h.route,p=f.controller,d=h.urlKey in e&&h.urlKey,m=void 0,v=void 0;s.has(h.urlKey)?(m=(0,E.get)(p,h.prop),v=f.serializeQueryParam(m,h.urlKey,h.type)):d?void 0!==(v=e[d])&&(m=f.deserializeQueryParam(v,h.urlKey,h.type)):(v=h.serializedDefaultValue,m=x(h.defaultValue)),p._qpDelegate=(0,E.get)(f,\"_qp.states.inactive\"),v!==h.serializedValue&&(n.queryParamsOnly&&!1!==r&&(l=f._optionsForQueryParam(h),(c=(0,E.get)(l,\"replace\"))?r=!0:!1===c&&(r=!1)),(0,E.set)(p,h.prop,m)),h.serializedValue=v,h.serializedDefaultValue===v&&!n._keepDefaultQueryParamValues||t.push({value:v,visible:!0,key:d||h.urlKey})}r&&n.method(\"replace\"),a.qps.forEach(function(e){var t=(0,E.get)(e.route,\"_qp\");e.route.controller._qpDelegate=(0,E.get)(t,\"states.active\")}),o._qpUpdates.clear()}}}}),e.ROUTER_EVENT_DEPRECATIONS=o,t.ROUTER_EVENTS&&(e.ROUTER_EVENT_DEPRECATIONS=o={on:function(e){this._super.apply(this,arguments)}},l.reopen(o,{_paramsFor:function(e,t){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(e):t}})),(0,C.setFrameworkClass)(l),e.default=l}),e(\"@ember/-internals/routing/lib/system/router\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\",\"@ember/error\",\"@ember/polyfills\",\"@ember/runloop\",\"@ember/-internals/routing/lib/location/api\",\"@ember/-internals/routing/lib/utils\",\"@ember/-internals/routing/lib/system/dsl\",\"@ember/-internals/routing/lib/system/route\",\"@ember/-internals/routing/lib/system/router_state\",\"router_js\"],function(e,o,p,d,a,t,c,l,f,h,s,m,i,v,r,g){\"use strict\";function n(e){A(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange(\"url\"),this.set(\"currentState\",this.targetState),(0,h.once)(this,this.trigger,\"didTransition\")}function u(e,t,n){(0,h.once)(this,this.trigger,\"willTransition\",n)}function y(){return this}e.triggerEvent=k,e.default=void 0;var b=Array.prototype.slice,_=function(t){function e(){var e=t.apply(this,arguments)||this;return e.currentURL=null,e.currentRouteName=null,e.currentPath=null,e.currentRoute=null,e._qpCache=Object.create(null),e._qpUpdates=new Set,e._handledErrors=new Set,e._engineInstances=Object.create(null),e._engineInfoByRoute=Object.create(null),e.currentState=null,e.targetState=null,e._resetQueuedQueryParameterChanges(),e}(0,o.inheritsLoose)(e,t);var n=e.prototype;return n._initRouterJs=function(){var r=(0,p.get)(this,\"location\"),s=this,u=(0,d.getOwner)(this),l=Object.create(null),e=function(e){function t(){return e.apply(this,arguments)||this}(0,o.inheritsLoose)(t,e);var n=t.prototype;return n.getRoute=function(e){var t=e,n=u,r=s._engineInfoByRoute[t];r&&(n=s._getEngineInstance(r),t=r.localFullName);var i,o=\"route:\"+t,a=n.lookup(o);if(l[e])return a;if(l[e]=!0,a||(i=n.factoryFor(\"route:basic\").class,n.register(o,i.extend()),a=n.lookup(o)),a._setRouteName(t),r&&!(0,v.hasDefaultSerialize)(a))throw new Error(\"Defining a custom serialize method on an Engine route is not supported.\");return a},n.getSerializer=function(e){var t=s._engineInfoByRoute[e];if(t)return t.serializeMethod||v.defaultSerialize},n.updateURL=function(e){(0,h.once)(function(){r.setURL(e),(0,p.set)(s,\"currentURL\",e)})},n.didTransition=function(e){c.ROUTER_EVENTS&&s.didTransition,s.didTransition(e)},n.willTransition=function(e,t,n){c.ROUTER_EVENTS&&s.willTransition,s.willTransition(e,t,n)},n.triggerEvent=function(e,t,n,r){return k.bind(s)(e,t,n,r)},n.routeWillChange=function(e){s.trigger(\"routeWillChange\",e)},n.routeDidChange=function(e){s.set(\"currentRoute\",e.to),(0,h.once)(function(){s.trigger(\"routeDidChange\",e)})},n.transitionDidError=function(e,t){return e.wasAborted||t.isAborted?(0,g.logAbort)(t):(t.trigger(!1,\"error\",e.error,t,e.route),s._isErrorHandled(e.error)?(t.rollback(),this.routeDidChange(t)):t.abort(),e.error)},n._triggerWillChangeContext=function(){return s},n._triggerWillLeave=function(){return s},n.replaceURL=function(e){r.replaceURL?(0,h.once)(function(){r.replaceURL(e),(0,p.set)(s,\"currentURL\",e)}):this.updateURL(e)},t}(g.default),t=this._routerMicrolib=new e,n=this.constructor.dslCallbacks||[y],i=this._buildDSL();i.route(\"application\",{path:\"/\",resetNamespace:!0,overrideNameAssertion:!0},function(){for(var e=0;e<n.length;e++)n[e].call(this)}),t.map(i.generate())},n._buildDSL=function(){var e=this._hasModuleBasedResolver(),n=this,t=(0,d.getOwner)(this),r={enableLoadingSubstates:e,resolveRouteMap:function(e){return t.factoryFor(\"route-map:\"+e)},addRouteForEngine:function(e,t){n._engineInfoByRoute[e]||(n._engineInfoByRoute[e]=t)}};return new i.default(null,r)},n._resetQueuedQueryParameterChanges=function(){this._queuedQPChanges={}},n._hasModuleBasedResolver=function(){var e=(0,d.getOwner)(this);if(!e)return!1;var t=(0,p.get)(e,\"application.__registry__.resolver.moduleBasedResolver\");return Boolean(t)},n.startRouting=function(){var e=(0,p.get)(this,\"initialURL\");if(this.setupRouter()){void 0===e&&(e=(0,p.get)(this,\"location\").getURL());var t=this.handleURL(e);if(t&&t.error)throw t.error}},n.setupRouter=function(){var t=this;this._setupLocation();var e=(0,p.get)(this,\"location\");return!(0,p.get)(e,\"cancelRouterSetup\")&&(this._initRouterJs(),e.onUpdateURL(function(e){t.handleURL(e)}),!0)},n._setOutlets=function(){if(!this.isDestroying&&!this.isDestroyed){var e,t,n=this._routerMicrolib.currentRouteInfos,r=null;if(n){for(var i,o,a,s,u=0;u<n.length;u++){e=n[u].route;for(var l=v.ROUTE_CONNECTIONS.get(e),c=void 0,h=0;h<l.length;h++){var f=function(e,t,n){var r,i={render:n,outlets:Object.create(null),wasUsed:!1};r=n.into?N(e,n.into):t;r?(0,p.set)(r.outlets,n.outlet,i):e=i;return{liveRoutes:e,ownState:i}}(r,t,l[h]),r=f.liveRoutes;f.ownState.render.name!==e.routeName&&\"main\"!==f.ownState.render.outlet||(c=f.ownState)}0===l.length&&(i=t,c=N(r,(o=e).routeName)||(i.outlets.main={render:{name:o.routeName,outlet:\"main\"},outlets:{}},i)),t=c}r&&(this._toplevelView?this._toplevelView.setOutletState(r):(s=(a=(0,d.getOwner)(this)).factoryFor(\"view:-outlet\"),this._toplevelView=s.create(),this._toplevelView.setOutletState(r),a.lookup(\"-application-instance:main\").didCreateRootView(this._toplevelView)))}}},n.handleURL=function(e){var t=e.split(/#(.+)?/)[0];return this._doURLTransition(\"handleURL\",t)},n._doURLTransition=function(e,t){var n=this._routerMicrolib[e](t||\"/\");return O(n,this),n},n.transitionTo=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((0,m.resemblesURL)(t[0]))return this._doURLTransition(\"transitionTo\",t[0]);var r=(0,m.extractRouteArgs)(t),i=r.routeName,o=r.models,a=r.queryParams;return this._doTransition(i,o,a)},n.intermediateTransitionTo=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this._routerMicrolib).intermediateTransitionTo.apply(t,[e].concat(r)),A(this)},n.replaceWith=function(){return this.transitionTo.apply(this,arguments).method(\"replace\")},n.generate=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var o=(t=this._routerMicrolib).generate.apply(t,[e].concat(r));return this.location.formatURL(o)},n.isActive=function(e){return this._routerMicrolib.isActive(e)},n.isActiveIntent=function(e,t,n){return this.currentState.isActiveIntent(e,t,n)},n.send=function(e){for(var t,n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this._routerMicrolib).trigger.apply(t,[e].concat(r))},n.hasRoute=function(e){return this._routerMicrolib.hasRoute(e)},n.reset=function(){this._routerMicrolib&&this._routerMicrolib.reset()},n.willDestroy=function(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),this._super.apply(this,arguments),this.reset();var e=this._engineInstances;for(var t in e)for(var n in e[t])(0,h.run)(e[t][n],\"destroy\")},n._activeQPChanged=function(e,t){this._queuedQPChanges[e]=t,(0,h.once)(this,this._fireQueryParamTransition)},n._updatingQPChanged=function(e){this._qpUpdates.add(e)},n._fireQueryParamTransition=function(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()},n._setupLocation=function(){var e,t,n=this.location,r=this.rootURL,i=(0,d.getOwner)(this);\"string\"==typeof n&&i&&(n=void 0!==(e=i.lookup(\"location:\"+n))?(0,p.set)(this,\"location\",e):(t={implementation:n},(0,p.set)(this,\"location\",s.default.create(t)))),null!==n&&\"object\"==typeof n&&(r&&(0,p.set)(n,\"rootURL\",r),\"function\"==typeof n.detect&&n.detect(),\"function\"==typeof n.initState&&n.initState())},n._serializeQueryParams=function(e,r){var i=this;S(this,e,r,function(e,t,n){if(n)delete r[e],r[n.urlKey]=n.route.serializeQueryParam(t,n.urlKey,n.type);else{if(void 0===t)return;r[e]=i._serializeQueryParam(t,(0,a.typeOf)(t))}})},n._serializeQueryParam=function(e,t){return null==e?e:\"array\"===t?JSON.stringify(e):\"\"+e},n._deserializeQueryParams=function(e,r){S(this,e,r,function(e,t,n){n&&(delete r[e],r[n.prop]=n.route.deserializeQueryParam(t,n.urlKey,n.type))})},n._deserializeQueryParam=function(e,t){return null==e?e:\"boolean\"===t?\"true\"===e:\"number\"===t?Number(e).valueOf():\"array\"===t?(0,a.A)(JSON.parse(e)):e},n._pruneDefaultQueryParamValues=function(e,t){var n=this._queryParamsFor(e);for(var r in t){var i=n.map[r];i&&i.serializedDefaultValue===t[r]&&delete t[r]}},n._doTransition=function(e,t,n,r){var i,o=e||(0,m.getActiveTargetName)(this._routerMicrolib),a={};this._processActiveTransitionQueryParams(o,t,a,n),(0,f.assign)(a,n),this._prepareQueryParams(o,t,a,Boolean(r));var s=(i=this._routerMicrolib).transitionTo.apply(i,[o].concat(t,[{queryParams:a}]));return O(s,this),s},n._processActiveTransitionQueryParams=function(e,t,n,r){if(this._routerMicrolib.activeTransition){var i={},o=this._qpUpdates,a=this._routerMicrolib.activeTransition[g.QUERY_PARAMS_SYMBOL];for(var s in a)o.has(s)||(i[s]=a[s]);this._fullyScopeQueryParams(e,t,r),this._fullyScopeQueryParams(e,t,i),(0,f.assign)(n,i)}},n._prepareQueryParams=function(e,t,n,r){var i=x(this,e,t);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)},n._getQPMeta=function(e){var t=e.route;return t&&(0,p.get)(t,\"_qp\")},n._queryParamsFor=function(e){var t=e.length,n=e[t-1].name,r=this._qpCache[n];if(void 0!==r)return r;for(var i,o,a=!0,s={},u=[],l=0;l<t;++l)if(i=this._getQPMeta(e[l])){for(var c=0;c<i.qps.length;c++)o=i.qps[c],u.push(o);(0,f.assign)(s,i.map)}else a=!1;var h={qps:u,map:s};return a&&(this._qpCache[n]=h),h},n._fullyScopeQueryParams=function(e,t,n){for(var r,i=x(this,e,t).routeInfos,o=0,a=i.length;o<a;++o)if(r=this._getQPMeta(i[o]))for(var s=void 0,u=void 0,l=0,c=r.qps.length;l<c;++l)(u=(s=r.qps[l]).prop in n&&s.prop||s.scopedPropertyName in n&&s.scopedPropertyName||s.urlKey in n&&s.urlKey)&&u!==s.scopedPropertyName&&(n[s.scopedPropertyName]=n[u],delete n[u])},n._hydrateUnsuppliedQueryParams=function(e,t){for(var n,r=e.routeInfos,i=this._bucketCache,o=0;o<r.length;++o)if(n=this._getQPMeta(r[o]))for(var a=0,s=n.qps.length;a<s;++a){var u,l,c=n.qps[a];(l=c.prop in t&&c.prop||c.scopedPropertyName in t&&c.scopedPropertyName||c.urlKey in t&&c.urlKey)?l!==c.scopedPropertyName&&(t[c.scopedPropertyName]=t[l],delete t[l]):(u=(0,m.calculateCacheKey)(c.route.fullRouteName,c.parts,e.params),t[c.scopedPropertyName]=i.lookup(u,c.prop,c.defaultValue))}},n._scheduleLoadingEvent=function(e,t){this._cancelSlowTransitionTimer(),this._slowTransitionTimer=(0,h.scheduleOnce)(\"routerTransitions\",this,\"_handleSlowTransition\",e,t)},n._handleSlowTransition=function(e,t){var n;this._routerMicrolib.activeTransition&&(n=new r.default(this,this._routerMicrolib,this._routerMicrolib.activeTransition[g.STATE_SYMBOL]),this.set(\"targetState\",n),e.trigger(!0,\"loading\",e,t))},n._cancelSlowTransitionTimer=function(){this._slowTransitionTimer&&(0,h.cancel)(this._slowTransitionTimer),this._slowTransitionTimer=null},n._markErrorAsHandled=function(e){this._handledErrors.add(e)},n._isErrorHandled=function(e){return this._handledErrors.has(e)},n._clearHandledError=function(e){this._handledErrors.delete(e)},n._getEngineInstance=function(e){var t=e.name,n=e.instanceId,r=e.mountPoint,i=this._engineInstances;i[t]||(i[t]=Object.create(null));var o=i[t][n];return o||((o=(0,d.getOwner)(this).buildChildEngineInstance(t,{routable:!0,mountPoint:r})).boot(),i[t][n]=o),o},e}(a.Object);function w(e,t){for(var n=e.length-1;0<=n;--n){var r=e[n],i=r.route;if(void 0!==i&&!0!==t(i,r))return}}var E={willResolveModel:function(e,t,n){this._scheduleLoadingEvent(t,n)},error:function(e,i,t){var o=this,a=e[e.length-1];w(e,function(e,t){if(t!==a){var n=C(e,\"error\");if(n)return o._markErrorAsHandled(i),o.intermediateTransitionTo(n,i),!1}var r=T(e,\"error\");return!r||(o._markErrorAsHandled(i),o.intermediateTransitionTo(r,i),!1)}),function(e,t){var n,r,i=[];r=e&&\"object\"==typeof e&&\"object\"==typeof e.errorThrown?e.errorThrown:e;t&&i.push(t);r&&(r.message&&i.push(r.message),r.stack&&i.push(r.stack),\"string\"==typeof r&&i.push(r));(n=console).error.apply(n,i)}(i,\"Error while processing route: \"+t.targetName)},loading:function(e,i){var o=this,a=e[e.length-1];w(e,function(e,t){if(t!==a){var n=C(e,\"loading\");if(n)return o.intermediateTransitionTo(n),!1}var r=T(e,\"loading\");return r?(o.intermediateTransitionTo(r),!1):i.pivotHandler!==e})}};function T(e,t){var n=(0,d.getOwner)(e),r=e.routeName,i=e.fullRouteName+\"_\"+t;return R(n,e._router,r+\"_\"+t,i)?i:\"\"}function C(e,t){var n=(0,d.getOwner)(e),r=e.routeName,i=e.fullRouteName,o=\"application\"===i?t:i+\".\"+t;return R(n,e._router,\"application\"===r?t:r+\".\"+t,o)?o:\"\"}function R(e,t,n,r){var i=t.hasRoute(r),o=e.hasRegistration(\"template:\"+n)||e.hasRegistration(\"route:\"+n);return i&&o}function k(e,t,n,r){if(!e){if(t)return;throw new l.default(\"Can't trigger action '\"+n+\"' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call `.send()` on the `Transition` object passed to the `model/beforeModel/afterModel` hooks.\")}for(var i,o,a=!1,s=e.length-1;0<=s;s--)if(o=(i=e[s].route)&&i.actions&&i.actions[n]){if(!0!==o.apply(i,r))return void(\"error\"===n&&i._router._markErrorAsHandled(r[0]));a=!0}var u=E[n];if(u)u.apply(this,[e].concat(r));else if(!a&&!t)throw new l.default(\"Nothing handled the action '\"+n+\"'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.\")}function x(e,t,n){for(var r=e._routerMicrolib.applyIntent(t,n),i=r.routeInfos,o=r.params,a=0;a<i.length;++a){var s=i[a];s.isResolved?o[s.name]=s.params:o[s.name]=s.serialize(s.context)}return r}function A(e){var t,n,r,i,o=e._routerMicrolib.currentRouteInfos;0!==o.length&&(t=_._routePath(o),n=o[o.length-1].name,r=e.get(\"location\").getURL(),(0,p.set)(e,\"currentPath\",t),(0,p.set)(e,\"currentRouteName\",n),(0,p.set)(e,\"currentURL\",r),(i=(0,d.getOwner)(e).lookup(\"controller:application\"))&&c.APP_CTRL_ROUTER_PROPS&&(\"currentPath\"in i||Object.defineProperty(i,\"currentPath\",{get:function(){return(0,p.get)(e,\"currentPath\")}}),(0,p.notifyPropertyChange)(i,\"currentPath\"),\"currentRouteName\"in i||Object.defineProperty(i,\"currentRouteName\",{get:function(){return(0,p.get)(e,\"currentRouteName\")}}),(0,p.notifyPropertyChange)(i,\"currentRouteName\")))}function O(e,t){var n=new r.default(t,t._routerMicrolib,e[g.STATE_SYMBOL]);t.currentState||t.set(\"currentState\",n),t.set(\"targetState\",n),e.promise=e.catch(function(e){if(!t._isErrorHandled(e))throw e;t._clearHandledError(e)},\"Transition Error\")}function S(e,t,n,r){var i=e._queryParamsFor(t);for(var o in n){n.hasOwnProperty(o)&&r(o,n[o],i.map[o])}}function N(e,t){if(e)for(var n=[e];0<n.length;){var r=n.shift();if(r.render.name===t)return r;var i=r.outlets;for(var o in i)n.push(i[o])}}_.reopenClass({map:function(e){return this.dslCallbacks||(this.dslCallbacks=[],this.reopenClass({dslCallbacks:this.dslCallbacks})),this.dslCallbacks.push(e),this},_routePath:function(e){var t,n,r=[];for(var i=1;i<e.length;i++){for(t=e[i].name.split(\".\"),n=b.call(r);n.length&&!function(e,t){for(var n=0;n<e.length;++n)if(e[n]!==t[n])return;return 1}(n,t);)n.shift();r.push.apply(r,t.slice(n.length))}return r.join(\".\")}}),_.reopen(a.Evented,{didTransition:n,willTransition:u,rootURL:\"/\",location:\"hash\",url:(0,p.computed)(function(){return(0,p.get)(this,\"location\").getURL()})}),c.ROUTER_EVENTS&&_.reopen(v.ROUTER_EVENT_DEPRECATIONS),e.default=_}),e(\"@ember/-internals/routing/lib/system/router_state\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/routing/lib/utils\"],function(e,a,s){\"use strict\";e.default=void 0;var t=function(){function e(e,t,n){this.emberRouter=e,this.router=t,this.routerJsState=n}return e.prototype.isActiveIntent=function(e,t,n,r){var i=this.routerJsState;if(!this.router.isActiveIntent(e,t,void 0,i))return!1;if(r&&0<Object.keys(n).length){var o=(0,a.assign)({},n);return this.emberRouter._prepareQueryParams(e,t,o),(0,s.shallowEqual)(o,i.queryParams)}return!0},e}();e.default=t}),e(\"@ember/-internals/routing/lib/system/transition\",[],function(){}),e(\"@ember/-internals/routing/lib/utils\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/owner\",\"@ember/error\",\"@ember/polyfills\",\"router_js\"],function(e,l,o,a,s,n){\"use strict\";e.extractRouteArgs=function(e){var t,n=(e=e.slice())[e.length-1];t=n&&n.hasOwnProperty(\"queryParams\")?e.pop().queryParams:{};return{routeName:e.shift(),models:e,queryParams:t}},e.getActiveTargetName=function(e){var t=e.activeTransition?e.activeTransition[n.STATE_SYMBOL].routeInfos:e.state.routeInfos;return t[t.length-1].name},e.stashParamNames=function(e,t){if(t._namesStashed)return;for(var n,r=t[t.length-1].name,i=e._routerMicrolib.recognizer.handlersFor(r),o=0;o<t.length;++o){var a=t[o],s=i[o].names;s.length&&(n=a),a._names=s,a.route._stashNames(a,n)}t._namesStashed=!0},e.calculateCacheKey=function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],n=2<arguments.length?arguments[2]:void 0,r=\"\",i=0;i<t.length;++i){var o,a=t[i],s=function(e,t){for(var n=e.split(\".\"),r=\"\",i=0;i<n.length;i++){var o=n.slice(0,i+1).join(\".\");if(0!==t.indexOf(o))break;r=o}return r}(e,a),u=void 0;n&&(u=s&&s in n?(o=0===a.indexOf(s)?a.substr(s.length+1):a,(0,l.get)(n[s],o)):(0,l.get)(n,a)),r+=\"::\"+a+\":\"+u}return e+r.replace(c,\"-\")},e.normalizeControllerQueryParams=function(e){for(var t={},n=0;n<e.length;++n)!function(e,t){var n,r=e;\"string\"==typeof r&&((n={})[r]={as:null},r=n);for(var i in r){if(!r.hasOwnProperty(i))return;var o=r[i];\"string\"==typeof o&&(o={as:o}),n=t[i]||{as:null,scope:\"model\"},(0,s.assign)(n,o),t[i]=n}}(e[n],t);return t},e.resemblesURL=u,e.prefixRouteNameArg=function(e,t){var n=t[0],r=(0,o.getOwner)(e),i=r.mountPoint;if(r.routable&&\"string\"==typeof n){if(u(n))throw new a.default(\"Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.\");n=i+\".\"+n,t[0]=n}return t},e.shallowEqual=function(e,t){var n,r=0,i=0;for(n in e)if(e.hasOwnProperty(n)){if(e[n]!==t[n])return!1;r++}for(n in t)t.hasOwnProperty(n)&&i++;return r===i};var c=/\\./g;function u(e){return\"string\"==typeof e&&(\"\"===e||\"/\"===e[0])}}),e(\"@ember/-internals/runtime/index\",[\"exports\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/registry_proxy\",\"@ember/-internals/runtime/lib/mixins/container_proxy\",\"@ember/-internals/runtime/lib/copy\",\"@ember/-internals/runtime/lib/compare\",\"@ember/-internals/runtime/lib/is-equal\",\"@ember/-internals/runtime/lib/mixins/array\",\"@ember/-internals/runtime/lib/mixins/comparable\",\"@ember/-internals/runtime/lib/system/namespace\",\"@ember/-internals/runtime/lib/system/array_proxy\",\"@ember/-internals/runtime/lib/system/object_proxy\",\"@ember/-internals/runtime/lib/system/core_object\",\"@ember/-internals/runtime/lib/mixins/action_handler\",\"@ember/-internals/runtime/lib/mixins/copyable\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/runtime/lib/mixins/-proxy\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",\"@ember/-internals/runtime/lib/mixins/target_action_support\",\"@ember/-internals/runtime/lib/mixins/evented\",\"@ember/-internals/runtime/lib/mixins/promise_proxy\",\"@ember/-internals/runtime/lib/ext/rsvp\",\"@ember/-internals/runtime/lib/type-of\",\"@ember/-internals/runtime/lib/ext/function\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m,v,g,y,b,_,w,E,T,C){\"use strict\";Object.defineProperty(e,\"Object\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"FrameworkObject\",{enumerable:!0,get:function(){return t.FrameworkObject}}),Object.defineProperty(e,\"RegistryProxyMixin\",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,\"ContainerProxyMixin\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"copy\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"compare\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"isEqual\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"Array\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"NativeArray\",{enumerable:!0,get:function(){return s.NativeArray}}),Object.defineProperty(e,\"A\",{enumerable:!0,get:function(){return s.A}}),Object.defineProperty(e,\"MutableArray\",{enumerable:!0,get:function(){return s.MutableArray}}),Object.defineProperty(e,\"removeAt\",{enumerable:!0,get:function(){return s.removeAt}}),Object.defineProperty(e,\"uniqBy\",{enumerable:!0,get:function(){return s.uniqBy}}),Object.defineProperty(e,\"isArray\",{enumerable:!0,get:function(){return s.isArray}}),Object.defineProperty(e,\"Comparable\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"Namespace\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"ArrayProxy\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"ObjectProxy\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"CoreObject\",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,\"setFrameworkClass\",{enumerable:!0,get:function(){return f.setFrameworkClass}}),Object.defineProperty(e,\"ActionHandler\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"Copyable\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"Enumerable\",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(e,\"_ProxyMixin\",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,\"_contentFor\",{enumerable:!0,get:function(){return v.contentFor}}),Object.defineProperty(e,\"Observable\",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(e,\"MutableEnumerable\",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,\"TargetActionSupport\",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,\"Evented\",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,\"PromiseProxyMixin\",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,\"RSVP\",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(e,\"onerrorDefault\",{enumerable:!0,get:function(){return E.onerrorDefault}}),Object.defineProperty(e,\"typeOf\",{enumerable:!0,get:function(){return T.typeOf}})}),e(\"@ember/-internals/runtime/lib/compare\",[\"exports\",\"@ember/-internals/runtime/lib/type-of\",\"@ember/-internals/runtime/lib/mixins/comparable\"],function(e,h,f){\"use strict\";e.default=function e(t,n){if(t===n)return 0;var r=(0,h.typeOf)(t);var i=(0,h.typeOf)(n);if(\"instance\"===r&&f.default.detect(t)&&t.constructor.compare)return t.constructor.compare(t,n);if(\"instance\"===i&&f.default.detect(n)&&n.constructor.compare)return-1*n.constructor.compare(n,t);var o=d(p[r],p[i]);if(0!==o)return o;switch(r){case\"boolean\":case\"number\":return d(t,n);case\"string\":return d(t.localeCompare(n),0);case\"array\":for(var a=t.length,s=n.length,u=Math.min(a,s),l=0;l<u;l++){var c=e(t[l],n[l]);if(0!==c)return c}return d(a,s);case\"instance\":return f.default.detect(t)?t.compare(t,n):0;case\"date\":return d(t.getTime(),n.getTime());default:return 0}};var p={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10};function d(e,t){var n=e-t;return(0<n)-(n<0)}}),e(\"@ember/-internals/runtime/lib/copy\",[\"exports\",\"@ember/debug\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/copyable\"],function(e,t,n,u){\"use strict\";e.default=function(e,t){return\"object\"==typeof e&&null!==e?Array.isArray(e)||!u.default.detect(e)?function e(t,n,r,i){if(\"object\"!=typeof t||null===t)return t;var o,a;if(n&&0<=(a=r.indexOf(t)))return i[a];n&&r.push(t);if(Array.isArray(t)){if(o=t.slice(),n)for(i.push(o),a=o.length;0<=--a;)o[a]=e(o[a],n,r,i)}else if(u.default.detect(t))o=t.copy(n,r,i),n&&i.push(o);else if(t instanceof Date)o=new Date(t.getTime()),n&&i.push(o);else{var s;for(s in o={},n&&i.push(o),t)Object.prototype.hasOwnProperty.call(t,s)&&\"__\"!==s.substring(0,2)&&(o[s]=n?e(t[s],n,r,i):t[s])}return o}(e,t,t?[]:null,t?[]:null):e.copy(t):e}}),e(\"@ember/-internals/runtime/lib/ext/function\",[\"@ember/-internals/environment\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,t,n,r){\"use strict\";r.FUNCTION_PROTOTYPE_EXTENSIONS&&e.ENV.EXTEND_PROTOTYPES.Function&&Object.defineProperties(Function.prototype,{property:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.computed.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}},observes:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.observer.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}},on:{configurable:!0,enumerable:!1,writable:!0,value:function(){return t.on.apply(void 0,Array.prototype.slice.call(arguments).concat([this]))}}})}),e(\"@ember/-internals/runtime/lib/ext/rsvp\",[\"exports\",\"rsvp\",\"@ember/runloop\",\"@ember/-internals/error-handling\",\"@ember/debug\"],function(e,t,n,r,i){\"use strict\";function o(e){var t=function(e){if(!e)return;if(e.errorThrown)return function(e){var t=e.errorThrown;\"string\"==typeof t&&(t=new Error(t));return Object.defineProperty(t,\"__reason_with_error_thrown__\",{value:e,enumerable:!1}),t}(e);return\"UnrecognizedURLError\"!==e.name&&\"TransitionAborted\"!==e.name?e:void 0}(e);if(t){var n=(0,r.getDispatchOverride)();if(!n)throw t;n(t)}}e.onerrorDefault=o,e.default=void 0,t.configure(\"async\",function(e,t){n.backburner.schedule(\"actions\",null,e,t)}),t.configure(\"after\",function(e){n.backburner.schedule(n._rsvpErrorQueue,null,e)}),t.on(\"error\",o),e.default=t}),e(\"@ember/-internals/runtime/lib/is-equal\",[\"exports\"],function(e){\"use strict\";e.default=function(e,t){if(e&&\"function\"==typeof e.isEqual)return e.isEqual(t);if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();return e===t}}),e(\"@ember/-internals/runtime/lib/mixins/-proxy\",[\"exports\",\"@glimmer/reference\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/debug\"],function(e,t,i,o,n,r){\"use strict\";var a;function s(e,t){var n=(0,o.get)(e,\"content\"),r=(void 0===t?(0,i.meta)(e):t).readableTag();return void 0!==r&&r.inner.second.inner.update((0,o.tagFor)(n)),n}e.contentFor=s,e.default=void 0;var u=o.Mixin.create(((a={content:null,init:function(){this._super.apply(this,arguments),(0,n.setProxy)(this),(0,i.meta)(this).writableTag(function(){return(0,t.combine)([t.DirtyableTag.create(),t.UpdatableTag.create(t.CONSTANT_TAG)])})},willDestroy:function(){this.set(\"content\",null),this._super.apply(this,arguments)},isTruthy:(0,o.computed)(\"content\",function(){return Boolean((0,o.get)(this,\"content\"))}),willWatchProperty:function(e){var t=\"content.\"+e;(0,o.addObserver)(this,t,null,\"_contentPropertyDidChange\")},didUnwatchProperty:function(e){var t=\"content.\"+e;(0,o.removeObserver)(this,t,null,\"_contentPropertyDidChange\")},_contentPropertyDidChange:function(e,t){var n=t.slice(8);n in this||(0,o.notifyPropertyChange)(this,n)}})[o.UNKNOWN_PROPERTY_TAG]=function(e){return(0,o.getChainTagsForKey)(this,\"content.\"+e)},a.unknownProperty=function(e){var t=s(this);if(t)return(0,o.get)(t,e)},a.setUnknownProperty=function(e,t){var n=(0,i.meta)(this);if(n.isInitializing()||n.isPrototypeMeta(this))return(0,o.defineProperty)(this,e,null,t),t;var r=s(this,n);return(0,o.set)(r,e,t)},a));e.default=u}),e(\"@ember/-internals/runtime/lib/mixins/action_handler\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,o,t){\"use strict\";e.default=void 0;var n=o.Mixin.create({mergedProperties:[\"actions\"],send:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(this.actions&&this.actions[e]&&!(!0===this.actions[e].apply(this,n)))return;var i=(0,o.get)(this,\"target\");i&&i.send.apply(i,arguments)}});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/array\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/debug\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/runtime/lib/compare\",\"@ember/-internals/environment\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",\"@ember/-internals/runtime/lib/type-of\"],function(e,u,o,t,n,l,r,i,a,s){\"use strict\";var c;e.uniqBy=p,e.removeAt=_,e.isArray=E,e.default=e.MutableArray=e.NativeArray=e.A=void 0;var h=Object.freeze([]),f=function(e){return e};function p(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:f,n=A(),r=new Set,i=\"function\"==typeof t?t:function(e){return(0,u.get)(e,t)};return e.forEach(function(e){var t=i(e);r.has(t)||(r.add(t),n.push(e))}),n}function d(t,n){return 2===arguments.length?function(e){return n===(0,u.get)(e,t)}:function(e){return Boolean((0,u.get)(e,t))}}function m(e,t,n){for(var r=e.length,i=n;i<r;i++){if(t((0,u.objectAt)(e,i),i,e))return i}return-1}function v(e,t,n){var r=m(e,t.bind(n),0);return-1===r?void 0:(0,u.objectAt)(e,r)}function g(e,t,n){return-1!==m(e,t.bind(n),0)}function y(e,t,n){var r=t.bind(n);return-1===m(e,function(e,t,n){return!r(e,t,n)},0)}function b(e,t,n,r){var i=2<arguments.length&&void 0!==n?n:0,o=3<arguments.length?r:void 0,a=e.length;return i<0&&(i+=a),m(e,o&&t!=t?function(e){return e!=e}:function(e){return e===t},i)}function _(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1;return(0,u.replace)(e,t,n,h),e}function w(e,t,n){return(0,u.replace)(e,t,0,[n]),n}function E(e){var t=e;if(!t||t.setInterval)return!1;if(Array.isArray(t)||R.detect(t))return!0;var n=(0,s.typeOf)(t);if(\"array\"===n)return!0;var r=t.length;return\"number\"==typeof r&&r==r&&\"object\"===n}function T(){var e=u.computed.apply(void 0,arguments);return e.enumerable=!1,e}function C(t){return this.map(function(e){return(0,u.get)(e,t)})}var R=u.Mixin.create(n.default,((c={})[o.EMBER_ARRAY]=!0,c.objectsAt=function(e){var t=this;return e.map(function(e){return(0,u.objectAt)(t,e)})},c[\"[]\"]=T({get:function(){return this},set:function(e,t){return this.replace(0,this.length,t),this}}),c.firstObject=T(function(){return(0,u.objectAt)(this,0)}).readOnly(),c.lastObject=T(function(){return(0,u.objectAt)(this,this.length-1)}).readOnly(),c.slice=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=1<arguments.length?arguments[1]:void 0,n=A(),r=this.length;for(e<0&&(e=r+e),void 0===t||r<t?t=r:t<0&&(t=r+t);e<t;)n[n.length]=(0,u.objectAt)(this,e++);return n},c.indexOf=function(e,t){return b(this,e,t,!1)},c.lastIndexOf=function(e,t){var n=this.length;(void 0===t||n<=t)&&(t=n-1),t<0&&(t+=n);for(var r=t;0<=r;r--)if((0,u.objectAt)(this,r)===e)return r;return-1},c.addArrayObserver=function(e,t){return(0,u.addArrayObserver)(this,e,t)},c.removeArrayObserver=function(e,t){return(0,u.removeArrayObserver)(this,e,t)},c.hasArrayObservers=T(function(){return(0,u.hasListeners)(this,\"@array:change\")||(0,u.hasListeners)(this,\"@array:before\")}),c.arrayContentWillChange=function(e,t,n){return(0,u.arrayContentWillChange)(this,e,t,n)},c.arrayContentDidChange=function(e,t,n){return(0,u.arrayContentDidChange)(this,e,t,n)},c.forEach=function(e){for(var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,n=this.length,r=0;r<n;r++){var i=this.objectAt(r);e.call(t,i,r,this)}return this},c.getEach=C,c.setEach=function(t,n){return this.forEach(function(e){return(0,u.set)(e,t,n)})},c.map=function(r){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=A();return this.forEach(function(e,t,n){return o[t]=r.call(i,e,t,n)}),o},c.mapBy=C,c.filter=function(r){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=A();return this.forEach(function(e,t,n){r.call(i,e,t,n)&&o.push(e)}),o},c.reject=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return this.filter(function(){return!e.apply(t,arguments)})},c.filterBy=function(){return this.filter(d.apply(void 0,arguments))},c.rejectBy=function(){return this.reject(d.apply(void 0,arguments))},c.find=function(e){return v(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.findBy=function(){return v(this,d.apply(void 0,arguments))},c.every=function(e){return y(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.isEvery=function(){return y(this,d.apply(void 0,arguments))},c.any=function(e){return g(this,e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:null)},c.isAny=function(){return g(this,d.apply(void 0,arguments))},c.reduce=function(n,e){var r=e;return this.forEach(function(e,t){r=n(r,e,t,this)},this),r},c.invoke=function(t){for(var e=arguments.length,n=new Array(1<e?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=A();return this.forEach(function(e){return i.push((0,o.tryInvoke)(e,t,n))}),i},c.toArray=function(){return this.map(function(e){return e})},c.compact=function(){return this.filter(function(e){return null!=e})},c.includes=function(e,t){return-1!==b(this,e,t,!0)},c.sortBy=function(){var s=arguments;return this.toArray().sort(function(e,t){for(var n=0;n<s.length;n++){var r=s[n],i=(0,u.get)(e,r),o=(0,u.get)(t,r),a=(0,l.default)(i,o);if(a)return a}return 0})},c.uniq=function(){return p(this)},c.uniqBy=function(e){return p(this,e)},c.without=function(t){if(!this.includes(t))return this;var e=t==t?function(e){return e!==t}:function(e){return e==e};return this.filter(e)},c)),k=u.Mixin.create(R,a.default,{clear:function(){var e=this.length;return 0===e||this.replace(0,e,h),this},insertAt:function(e,t){return w(this,e,t),this},removeAt:function(e,t){return _(this,e,t)},pushObject:function(e){return w(this,this.length,e)},pushObjects:function(e){return this.replace(this.length,0,e),this},popObject:function(){var e=this.length;if(0===e)return null;var t=(0,u.objectAt)(this,e-1);return this.removeAt(e-1,1),t},shiftObject:function(){if(0===this.length)return null;var e=(0,u.objectAt)(this,0);return this.removeAt(0),e},unshiftObject:function(e){return w(this,0,e)},unshiftObjects:function(e){return this.replace(0,0,e),this},reverseObjects:function(){var e=this.length;if(0===e)return this;var t=this.toArray().reverse();return this.replace(0,e,t),this},setObjects:function(e){if(0===e.length)return this.clear();var t=this.length;return this.replace(0,t,e),this},removeObject:function(e){for(var t=this.length||0;0<=--t;){(0,u.objectAt)(this,t)===e&&this.removeAt(t)}return this},removeObjects:function(e){(0,u.beginPropertyChanges)();for(var t=e.length-1;0<=t;t--)this.removeObject(e[t]);return(0,u.endPropertyChanges)(),this},addObject:function(e){return this.includes(e)||this.pushObject(e),this},addObjects:function(e){var t=this;return(0,u.beginPropertyChanges)(),e.forEach(function(e){return t.addObject(e)}),(0,u.endPropertyChanges)(),this}});e.MutableArray=k;var x=u.Mixin.create(k,i.default,{objectAt:function(e){return this[e]},replace:function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:h;return(0,u.replaceInNativeArray)(this,e,t,n),this}});e.NativeArray=x;var A,O=[\"length\"];x.keys().forEach(function(e){Array.prototype[e]&&O.push(e)}),e.NativeArray=x=x.without.apply(x,O),e.A=A,r.ENV.EXTEND_PROTOTYPES.Array?(x.apply(Array.prototype),e.A=A=function(e){return e||[]}):e.A=A=function(e){return e=e||[],R.detect(e)?e:x.apply(e)},e.default=R}),e(\"@ember/-internals/runtime/lib/mixins/comparable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({compare:null});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/container_proxy\",[\"exports\",\"@ember/runloop\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r={__container__:null,ownerInjection:function(){return this.__container__.ownerInjection()},lookup:function(e,t){return this.__container__.lookup(e,t)},destroy:function(){var e=this.__container__;e&&(0,t.join)(function(){e.destroy(),(0,t.schedule)(\"destroy\",e,\"finalizeDestroy\")}),this._super()},factoryFor:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return this.__container__.factoryFor(e,t)}},i=n.Mixin.create(r);e.default=i}),e(\"@ember/-internals/runtime/lib/mixins/copyable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({copy:null});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/enumerable\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create();e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/evented\",[\"exports\",\"@ember/-internals/metal\"],function(e,i){\"use strict\";e.default=void 0;var t=i.Mixin.create({on:function(e,t,n){return(0,i.addListener)(this,e,t,n),this},one:function(e,t,n){return(0,i.addListener)(this,e,t,n,!0),this},trigger:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];(0,i.sendEvent)(this,e,n)},off:function(e,t,n){return(0,i.removeListener)(this,e,t,n),this},has:function(e){return(0,i.hasListeners)(this,e)}});e.default=t}),e(\"@ember/-internals/runtime/lib/mixins/mutable_enumerable\",[\"exports\",\"@ember/-internals/runtime/lib/mixins/enumerable\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r=n.Mixin.create(t.default);e.default=r}),e(\"@ember/-internals/runtime/lib/mixins/observable\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,r,t){\"use strict\";e.default=void 0;var n=r.Mixin.create({get:function(e){return(0,r.get)(this,e)},getProperties:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.getProperties.apply(void 0,[this].concat(t))},set:function(e,t){return(0,r.set)(this,e,t)},setProperties:function(e){return(0,r.setProperties)(this,e)},beginPropertyChanges:function(){return(0,r.beginPropertyChanges)(),this},endPropertyChanges:function(){return(0,r.endPropertyChanges)(),this},notifyPropertyChange:function(e){return(0,r.notifyPropertyChange)(this,e),this},addObserver:function(e,t,n){return(0,r.addObserver)(this,e,t,n),this},removeObserver:function(e,t,n){return(0,r.removeObserver)(this,e,t,n),this},hasObserverFor:function(e){return(0,r.hasListeners)(this,e+\":change\")},getWithDefault:function(e,t){return(0,r.getWithDefault)(this,e,t)},incrementProperty:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;return(0,r.set)(this,e,(parseFloat((0,r.get)(this,e))||0)+t)},decrementProperty:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;return(0,r.set)(this,e,((0,r.get)(this,e)||0)-t)},toggleProperty:function(e){return(0,r.set)(this,e,!(0,r.get)(this,e))},cacheFor:function(e){return(0,r.getCachedValueFor)(this,e)}});e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/promise_proxy\",[\"exports\",\"@ember/-internals/metal\",\"@ember/error\"],function(e,i,t){\"use strict\";e.default=void 0;var n=i.Mixin.create({reason:null,isPending:(0,i.computed)(\"isSettled\",function(){return!(0,i.get)(this,\"isSettled\")}).readOnly(),isSettled:(0,i.computed)(\"isRejected\",\"isFulfilled\",function(){return(0,i.get)(this,\"isRejected\")||(0,i.get)(this,\"isFulfilled\")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:(0,i.computed)({get:function(){throw new t.default(\"PromiseProxy's promise must be set\")},set:function(e,t){return n=this,r=t,(0,i.setProperties)(n,{isFulfilled:!1,isRejected:!1}),r.then(function(e){return n.isDestroyed||n.isDestroying||(0,i.setProperties)(n,{content:e,isFulfilled:!0}),e},function(e){throw n.isDestroyed||n.isDestroying||(0,i.setProperties)(n,{reason:e,isRejected:!0}),e},\"Ember: PromiseProxy\");var n,r}}),then:r(\"then\"),catch:r(\"catch\"),finally:r(\"finally\")});function r(t){return function(){var e=(0,i.get)(this,\"promise\");return e[t].apply(e,arguments)}}e.default=n}),e(\"@ember/-internals/runtime/lib/mixins/registry_proxy\",[\"exports\",\"@ember/debug\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.default=void 0;var r=n.Mixin.create({__registry__:null,resolveRegistration:function(e,t){return this.__registry__.resolve(e,t)},register:i(\"register\"),unregister:i(\"unregister\"),hasRegistration:i(\"has\"),registeredOption:i(\"getOption\"),registerOptions:i(\"options\"),registeredOptions:i(\"getOptions\"),registerOptionsForType:i(\"optionsForType\"),registeredOptionsForType:i(\"getOptionsForType\"),inject:i(\"injection\")});function i(t){return function(){var e;return(e=this.__registry__)[t].apply(e,arguments)}}e.default=r}),e(\"@ember/-internals/runtime/lib/mixins/target_action_support\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,i,o,t){\"use strict\";e.default=void 0;var n=o.Mixin.create({target:null,action:null,actionContext:null,actionContextObject:(0,o.computed)(\"actionContext\",function(){var e=(0,o.get)(this,\"actionContext\");if(\"string\"!=typeof e)return e;var t=(0,o.get)(this,e);return void 0===t&&(t=(0,o.get)(i.context.lookup,e)),t}),triggerAction:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.action,n=e.target,r=e.actionContext,t=t||(0,o.get)(this,\"action\"),n=n||function(e){var t=(0,o.get)(e,\"target\");if(t){if(\"string\"!=typeof t)return t;var n=(0,o.get)(e,t);return void 0===n&&(n=(0,o.get)(i.context.lookup,t)),n}if(e._target)return e._target;return null}(this);if((void 0===r&&(r=(0,o.get)(this,\"actionContextObject\")||this),n&&t)&&!1!==(n.send?n.send.apply(n,[t].concat(r)):n[t].apply(n,[].concat(r))))return!0;return!1}});e.default=n}),e(\"@ember/-internals/runtime/lib/system/array_proxy\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/array\",\"@ember/debug\"],function(e,r,o,t,n,i){\"use strict\";e.default=void 0;var a,s={willChange:\"_arrangedContentArrayWillChange\",didChange:\"_arrangedContentArrayDidChange\"},u=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){e.prototype.init.apply(this,arguments),this._objectsDirtyIndex=0,this._objects=null,this._lengthDirty=!0,this._length=0,this._arrangedContent=null,this._addArrangedContentArrayObsever()},n.willDestroy=function(){this._removeArrangedContentArrayObsever()},n.objectAtContent=function(e){return(0,o.objectAt)((0,o.get)(this,\"arrangedContent\"),e)},n.replace=function(e,t,n){this.replaceContent(e,t,n)},n.replaceContent=function(e,t,n){(0,o.get)(this,\"content\").replace(e,t,n)},n.objectAt=function(e){if(0,null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){var t=(0,o.get)(this,\"arrangedContent\");if(t)for(var n=this._objects.length=(0,o.get)(t,\"length\"),r=this._objectsDirtyIndex;r<n;r++)this._objects[r]=this.objectAtContent(r);else this._objects.length=0;this._objectsDirtyIndex=-1}return this._objects[e]},n[o.PROPERTY_DID_CHANGE]=function(e){\"arrangedContent\"===e?this._updateArrangedContentArray():\"content\"===e&&this._invalidate()},n._updateArrangedContentArray=function(){var e=null===this._objects?0:this._objects.length,t=(0,o.get)(this,\"arrangedContent\"),n=t?(0,o.get)(t,\"length\"):0;this._removeArrangedContentArrayObsever(),this.arrayContentWillChange(0,e,n),this._invalidate(),this.arrayContentDidChange(0,e,n),this._addArrangedContentArrayObsever()},n._addArrangedContentArrayObsever=function(){var e=(0,o.get)(this,\"arrangedContent\");e&&!e.isDestroyed&&((0,o.addArrayObserver)(e,this,s),this._arrangedContent=e)},n._removeArrangedContentArrayObsever=function(){this._arrangedContent&&(0,o.removeArrayObserver)(this._arrangedContent,this,s)},n._arrangedContentArrayWillChange=function(){},n._arrangedContentArrayDidChange=function(e,t,n,r){this.arrayContentWillChange(t,n,r);var i=t;i<0&&(i+=(0,o.get)(this._arrangedContent,\"length\")+n-r),(-1===this._objectsDirtyIndex||this._objectsDirtyIndex>i)&&(this._objectsDirtyIndex=i),this._lengthDirty=!0,this.arrayContentDidChange(t,n,r)},n._invalidate=function(){this._objectsDirtyIndex=0,this._lengthDirty=!0},(0,r.createClass)(t,[{key:\"length\",get:function(){var e;return this._lengthDirty&&(e=(0,o.get)(this,\"arrangedContent\"),this._length=e?(0,o.get)(e,\"length\"):0,this._lengthDirty=!1),this._length},set:function(e){var t,n,r=this.length-e;0!==r&&(r<0&&(t=new Array(-r),r=0),(n=(0,o.get)(this,\"content\"))&&((0,o.replace)(n,e,r,t),this._invalidate()))}}]),t}(t.default);(e.default=u).reopen(n.MutableArray,{arrangedContent:(0,o.alias)(\"content\"),_revalidate:a})}),e(\"@ember/-internals/runtime/lib/system/core_object\",[\"exports\",\"ember-babel\",\"@ember/-internals/container\",\"@ember/-internals/owner\",\"@ember/polyfills\",\"@ember/-internals/utils\",\"@ember/runloop\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/mixins/action_handler\",\"@ember/debug\"],function(e,n,r,o,d,m,i,v,g,t,a){\"use strict\";e.setFrameworkClass=function(e){e[f]=!0},e.default=void 0;var s=g.Mixin.prototype.reopen,u=new d._WeakSet,l=new WeakMap,c=new WeakMap,h=void 0,f=(0,m.symbol)(\"FRAMEWORK_CLASS\");function p(e,t){var n=(0,v.meta)(e);if(void 0!==t)for(var r=e.concatenatedProperties,i=e.mergedProperties,o=void 0!==r&&0<r.length,a=void 0!==i&&0<i.length,s=Object.keys(t),u=0;u<s.length;u++){var l,c=s[u],h=t[c],f=(0,g.descriptorForProperty)(e,c,n),p=void 0!==f;p||(l=e[c],o&&-1<r.indexOf(c)&&(h=l?(0,m.makeArray)(l).concat(h):(0,m.makeArray)(h)),a&&-1<i.indexOf(c)&&(h=(0,d.assign)({},l,h))),p?f.set(e,c,h):\"function\"!=typeof e.setUnknownProperty||c in e?e[c]=h:e.setUnknownProperty(c,h)}e.init(t),n.unsetInitializing(),(0,g.finishChains)(n),(0,g.sendEvent)(e,\"init\",void 0,void 0,void 0,n)}var y=function(){function e(e){var t=l.get(this.constructor);void 0!==t&&(l.delete(this.constructor),r.FACTORY_FOR.set(this,t)),this.constructor.proto();var n=this;(0,v.meta)(n).setInitializing()}e._initFactory=function(e){l.set(this,e)};var t=e.prototype;return t.reopen=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,g.applyMixin)(this,t),this},t.init=function(){},t.destroy=function(){var e=(0,v.peekMeta)(this);if(!e.isSourceDestroying())return e.setSourceDestroying(),(0,i.schedule)(\"actions\",this,this.willDestroy),(0,i.schedule)(\"destroy\",this,this._scheduledDestroy,e),this},t.willDestroy=function(){},t._scheduledDestroy=function(e){e.isSourceDestroyed()||((0,v.deleteMeta)(this),e.setSourceDestroyed())},t.toString=function(){var e=\"function\"==typeof this.toStringExtension?\":\"+this.toStringExtension():\"\";return\"<\"+((0,m.getName)(this)||r.FACTORY_FOR.get(this)||this.constructor.toString())+\":\"+(0,m.guidFor)(this)+e+\">\"},e.extend=function(){var e=function(e){function t(){return e.apply(this,arguments)||this}return(0,n.inheritsLoose)(t,e),t}(this);return s.apply(e.PrototypeMixin,arguments),e},e.create=function(e,t){var n,r,i=this[f]?(void 0!==(n=l.get(this))?r=n.owner:void 0!==e&&(r=(0,o.getOwner)(e)),void 0===r&&(r=h),new this(r)):new this;return p(i,void 0===t?e:function(){for(var e=this.concatenatedProperties,t=this.mergedProperties,n=void 0!==e&&0<e.length,r=void 0!==t&&0<t.length,i={},o=0;o<arguments.length;o++)for(var a=o<0||arguments.length<=o?void 0:arguments[o],s=Object.keys(a),u=0,l=s.length;u<l;u++){var c,h,f=s[u],p=a[f];n&&-1<e.indexOf(f)&&(c=i[f],p=c?(0,m.makeArray)(c).concat(p):(0,m.makeArray)(p)),r&&-1<t.indexOf(f)&&(h=i[f],p=(0,d.assign)({},h,p)),i[f]=p}return i}.apply(this,arguments)),i},e.reopen=function(){return this.willReopen(),s.apply(this.PrototypeMixin,arguments),this},e.willReopen=function(){var e=this.prototype;u.has(e)&&(u.delete(e),c.has(this)&&c.set(this,g.Mixin.create(this.PrototypeMixin)))},e.reopenClass=function(){return(0,g.applyMixin)(this,arguments),this},e.detect=function(e){if(\"function\"!=typeof e)return!1;for(;e;){if(e===this)return!0;e=e.superclass}return!1},e.detectInstance=function(e){return e instanceof this},e.metaForProperty=function(e){var t=this.proto(),n=(0,g.descriptorForProperty)(t,e);return n._meta||{}},e.eachComputedProperty=function(r,e){var i=1<arguments.length&&void 0!==e?e:this;this.proto();var o={};(0,v.meta)(this.prototype).forEachDescriptors(function(e,t){var n;t.enumerable&&(n=t._meta||o,r.call(i,e,n))})},e.proto=function(){var e,t=this.prototype;return u.has(t)||(u.add(t),(e=this.superclass)&&e.proto(),c.has(this)&&this.PrototypeMixin.apply(t)),t},(0,n.createClass)(e,[{key:\"isDestroyed\",get:function(){return(0,v.peekMeta)(this).isSourceDestroyed()},set:function(e){}},{key:\"isDestroying\",get:function(){return(0,v.peekMeta)(this).isSourceDestroying()},set:function(e){}}],[{key:\"PrototypeMixin\",get:function(){var e=c.get(this);return void 0===e&&((e=g.Mixin.create()).ownerConstructor=this,c.set(this,e)),e}},{key:\"superclass\",get:function(){var e=Object.getPrototypeOf(this);return e!==Function.prototype?e:void 0}}]),e}();y.toString=g.classToString,(0,m.setName)(y,\"Ember.CoreObject\"),y.isClass=!0,y.isMethod=!1,e.default=y}),e(\"@ember/-internals/runtime/lib/system/namespace\",[\"exports\",\"ember-babel\",\"@ember/-internals/metal\",\"@ember/-internals/utils\",\"@ember/-internals/runtime/lib/system/object\"],function(e,r,i,o,t){\"use strict\";e.default=void 0;var n=function(e){function t(){return e.apply(this,arguments)||this}(0,r.inheritsLoose)(t,e);var n=t.prototype;return n.init=function(){(0,i.addNamespace)(this)},n.toString=function(){var e=(0,i.get)(this,\"name\")||(0,i.get)(this,\"modulePrefix\");return e||((0,i.findNamespaces)(),void 0===(e=(0,o.getName)(this))&&(e=(0,o.guidFor)(this),(0,o.setName)(this,e)),e)},n.nameClasses=function(){(0,i.processNamespace)(this)},n.destroy=function(){(0,i.removeNamespace)(this),e.prototype.destroy.call(this)},t}(t.default);(e.default=n).prototype.isNamespace=!0,n.NAMESPACES=i.NAMESPACES,n.NAMESPACES_BY_ID=i.NAMESPACES_BY_ID,n.processAll=i.processAllNamespaces,n.byName=i.findNamespace}),e(\"@ember/-internals/runtime/lib/system/object\",[\"exports\",\"ember-babel\",\"@ember/-internals/container\",\"@ember/-internals/owner\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/-internals/runtime/lib/system/core_object\",\"@ember/-internals/runtime/lib/mixins/observable\",\"@ember/debug\"],function(e,r,i,o,t,n,a,s,u){\"use strict\";var l,c=(e.FrameworkObject=e.default=void 0,t.symbol)(\"OVERRIDE_OWNER\"),h=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.inheritsLoose)(t,e),(0,r.createClass)(t,[{key:\"_debugContainerKey\",get:function(){var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.fullName}},{key:o.OWNER,get:function(){if(this[c])return this[c];var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.owner},set:function(e){this[c]=e}}]),t}(a.default);e.default=h,(0,t.setName)(h,\"Ember.Object\"),s.default.apply(h.prototype),e.FrameworkObject=l,e.FrameworkObject=l=function(n){function e(e){var t=n.call(this)||this;return(0,o.setOwner)((0,r.assertThisInitialized)(t),e),t}return(0,r.inheritsLoose)(e,n),(0,r.createClass)(e,[{key:\"_debugContainerKey\",get:function(){var e=i.FACTORY_FOR.get(this);return void 0!==e&&e.fullName}}]),e}(a.default),s.default.apply(l.prototype)}),e(\"@ember/-internals/runtime/lib/system/object_proxy\",[\"exports\",\"ember-babel\",\"@ember/-internals/runtime/lib/system/object\",\"@ember/-internals/runtime/lib/mixins/-proxy\"],function(e,n,t,r){\"use strict\";e.default=void 0;var i=function(e){function t(){return e.apply(this,arguments)||this}return(0,n.inheritsLoose)(t,e),t}(t.default);(e.default=i).PrototypeMixin.reopen(r.default)}),e(\"@ember/-internals/runtime/lib/type-of\",[\"exports\",\"@ember/-internals/runtime/lib/system/core_object\"],function(e,n){\"use strict\";e.typeOf=function(e){if(null===e)return\"null\";if(void 0===e)return\"undefined\";var t=r[i.call(e)]||\"object\";\"function\"===t?n.default.detect(e)&&(t=\"class\"):\"object\"===t&&(e instanceof Error?t=\"error\":e instanceof n.default?t=\"instance\":e instanceof Date&&(t=\"date\"));return t};var r={\"[object Boolean]\":\"boolean\",\"[object Number]\":\"number\",\"[object String]\":\"string\",\"[object Function]\":\"function\",\"[object Array]\":\"array\",\"[object Date]\":\"date\",\"[object RegExp]\":\"regexp\",\"[object Object]\":\"object\",\"[object FileList]\":\"filelist\"},i=Object.prototype.toString}),e(\"@ember/-internals/utils\",[\"exports\",\"@ember/polyfills\",\"@ember/debug\"],function(e,i,t){\"use strict\";function n(e){var t={};for(var n in t[e]=1,t)if(n===e)return n;return e}function r(e){return null!==e&&(\"object\"==typeof e||\"function\"==typeof e)}e.symbol=p,e.isInternalSymbol=function(e){return-1!==f.indexOf(e)},e.dictionary=function(e){var t=Object.create(e);return t._dict=null,delete t._dict,t},e.uuid=a,e.generateGuid=function(e){var t=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:s)+a();r(e)&&u.set(e,t);return t},e.guidFor=function(e){var t;{var n;r(e)?void 0===(t=u.get(e))&&(t=s+a(),u.set(e,t)):void 0===(t=l.get(e))&&(t=\"string\"==(n=typeof e)?\"st\"+a():\"number\"==n?\"nu\"+a():\"symbol\"==n?\"sy\"+a():\"(\"+e+\")\",l.set(e,t))}return t},e.intern=n,e.wrap=function(e,t){return b(e)?k.has(t)||!b(t)?x(e,t):x(e,x(t,y)):e},e.getObservers=E,e.getListeners=R,e.setObservers=w,e.setListeners=C,e.inspect=function(e){return\"number\"!=typeof e||2!==arguments.length?D(e,0):this},e.lookupDescriptor=function(e,t){var n=e;do{var r=Object.getOwnPropertyDescriptor(n,t);if(void 0!==r)return r;n=Object.getPrototypeOf(n)}while(null!==n);return null},e.canInvoke=I,e.tryInvoke=function(e,t,n){if(I(e,t)){return e[t].apply(e,n)}},e.makeArray=function(e){return null!=e?F(e)?e:[e]:[]},e.getName=function(e){return B.get(e)},e.setName=function(e,t){r(e)&&B.set(e,t)},e.toString=function e(t){if(\"string\"==typeof t)return t;if(null===t)return\"null\";if(void 0===t)return\"undefined\";if(Array.isArray(t)){for(var n=\"\",r=0;r<t.length;r++)0<r&&(n+=\",\"),null!=t[r]&&(n+=e(t[r]));return n}if(\"function\"==typeof t.toString)return t.toString();return U.call(t)},e.isProxy=function(e){if(r(e))return H.has(e);return!1},e.setProxy=function(e){r(e)&&H.add(e)},e.isEmberArray=function(e){return e&&e[Q]},e.setWithMandatorySetter=e.teardownMandatorySetter=e.setupMandatorySetter=e.EMBER_ARRAY=e.Cache=e.HAS_NATIVE_PROXY=e.HAS_NATIVE_SYMBOL=e.ROOT=e.checkHasSuper=e.GUID_KEY=e.getOwnPropertyDescriptors=void 0;var o=0;function a(){return++o}var s=\"ember\",u=new WeakMap,l=new Map,c=n(\"__ember\"+Date.now());e.GUID_KEY=c;var h,f=[];function p(e){var t=n(\"__\"+e+(c+Math.floor(Math.random()*Date.now()))+\"__\");return f.push(t),t}h=void 0!==Object.getOwnPropertyDescriptors?Object.getOwnPropertyDescriptors:function(t){var n={};return Object.keys(t).forEach(function(e){n[e]=Object.getOwnPropertyDescriptor(t,e)}),n},e.getOwnPropertyDescriptors=h;var d=/\\.(_super|call\\(this|apply\\(this)/,m=Function.prototype.toString,v=-1<m.call(function(){return this}).indexOf(\"return this\")?function(e){return d.test(m.call(e))}:function(){return!0};e.checkHasSuper=v;var g=new WeakMap,y=Object.freeze(function(){});function b(e){var t=g.get(e);return void 0===t&&(t=v(e),g.set(e,t)),t}e.ROOT=y,g.set(y,!1);var _=new WeakMap;function w(e,t){_.set(e,t)}function E(e){return _.get(e)}var T=new WeakMap;function C(e,t){t&&T.set(e,t)}function R(e){return T.get(e)}var k=new i._WeakSet;function x(n,r){function e(){var e=this._super;this._super=r;var t=n.apply(this,arguments);return this._super=e,t}return k.add(e),w(e,E(n)),C(e,R(n)),e}var A=Object.prototype.toString,O=Function.prototype.toString,S=Array.isArray,N=Object.keys,P=JSON.stringify,L=100,M=4,j=/^[\\w$]+$/;function D(e,t,n){var r=!1;switch(typeof e){case\"undefined\":return\"undefined\";case\"object\":if(null===e)return\"null\";if(S(e)){r=!0;break}if(e.toString===A||void 0===e.toString)break;return e.toString();case\"function\":return e.toString===O?e.name?\"[Function:\"+e.name+\"]\":\"[Function]\":e.toString();case\"string\":return P(e);case\"symbol\":case\"boolean\":case\"number\":default:return e.toString()}if(void 0===n)n=new i._WeakSet;else if(n.has(e))return\"[Circular]\";return n.add(e),(r?function(e,t,n){if(M<t)return\"[Array]\";for(var r=\"[\",i=0;i<e.length;i++){if(r+=0===i?\" \":\", \",L<=i){r+=\"... \"+(e.length-L)+\" more items\";break}r+=D(e[i],t,n)}return r+=\" ]\"}:function(e,t,n){if(M<t)return\"[Object]\";for(var r=\"{\",i=N(e),o=0;o<i.length;o++){if(r+=0===o?\" \":\", \",L<=o){r+=\"... \"+(i.length-L)+\" more keys\";break}var a=i[o];r+=function(e){return j.test(e)?e:P(e)}(a)+\": \"+D(e[a],t,n)}return r+=\" }\"})(e,t+1,n)}function I(e,t){return null!=e&&\"function\"==typeof e[t]}var F=Array.isArray;var B=new WeakMap;var U=Object.prototype.toString;var z=\"function\"==typeof Symbol&&\"[object Symbol]\"===Object.prototype.toString.call(Symbol());e.HAS_NATIVE_SYMBOL=z;var q=\"function\"==typeof Proxy;e.HAS_NATIVE_PROXY=q;var H=new i._WeakSet;var V=function(){function e(e,t,n){this.limit=e,this.func=t,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}var t=e.prototype;return t.get=function(e){return this.store.has(e)?(this.hits++,this.store.get(e)):(this.misses++,this.set(e,this.func(e)))},t.set=function(e,t){return this.limit>this.size&&(this.size++,this.store.set(e,t)),t},t.purge=function(){this.store.clear(),this.size=0,this.hits=0,this.misses=0},e}();e.Cache=V;var W,Y,G,Q=p(\"EMBER_ARRAY\");e.EMBER_ARRAY=Q,e.setupMandatorySetter=W,e.teardownMandatorySetter=Y,e.setWithMandatorySetter=G}),e(\"@ember/-internals/views/index\",[\"exports\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/-internals/views/lib/system/utils\",\"@ember/-internals/views/lib/system/event_dispatcher\",\"@ember/-internals/views/lib/component_lookup\",\"@ember/-internals/views/lib/mixins/text_support\",\"@ember/-internals/views/lib/views/core_view\",\"@ember/-internals/views/lib/mixins/class_names_support\",\"@ember/-internals/views/lib/mixins/child_views_support\",\"@ember/-internals/views/lib/mixins/view_state_support\",\"@ember/-internals/views/lib/mixins/view_support\",\"@ember/-internals/views/lib/mixins/action_support\",\"@ember/-internals/views/lib/compat/attrs\",\"@ember/-internals/views/lib/system/lookup_partial\",\"@ember/-internals/views/lib/utils/lookup-component\",\"@ember/-internals/views/lib/system/action_manager\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";Object.defineProperty(e,\"jQuery\",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,\"jQueryDisabled\",{enumerable:!0,get:function(){return t.jQueryDisabled}}),Object.defineProperty(e,\"addChildView\",{enumerable:!0,get:function(){return n.addChildView}}),Object.defineProperty(e,\"isSimpleClick\",{enumerable:!0,get:function(){return n.isSimpleClick}}),Object.defineProperty(e,\"getViewBounds\",{enumerable:!0,get:function(){return n.getViewBounds}}),Object.defineProperty(e,\"getViewClientRects\",{enumerable:!0,get:function(){return n.getViewClientRects}}),Object.defineProperty(e,\"getViewBoundingClientRect\",{enumerable:!0,get:function(){return n.getViewBoundingClientRect}}),Object.defineProperty(e,\"getRootViews\",{enumerable:!0,get:function(){return n.getRootViews}}),Object.defineProperty(e,\"getChildViews\",{enumerable:!0,get:function(){return n.getChildViews}}),Object.defineProperty(e,\"getViewId\",{enumerable:!0,get:function(){return n.getViewId}}),Object.defineProperty(e,\"getElementView\",{enumerable:!0,get:function(){return n.getElementView}}),Object.defineProperty(e,\"getViewElement\",{enumerable:!0,get:function(){return n.getViewElement}}),Object.defineProperty(e,\"setElementView\",{enumerable:!0,get:function(){return n.setElementView}}),Object.defineProperty(e,\"setViewElement\",{enumerable:!0,get:function(){return n.setViewElement}}),Object.defineProperty(e,\"clearElementView\",{enumerable:!0,get:function(){return n.clearElementView}}),Object.defineProperty(e,\"clearViewElement\",{enumerable:!0,get:function(){return n.clearViewElement}}),Object.defineProperty(e,\"constructStyleDeprecationMessage\",{enumerable:!0,get:function(){return n.constructStyleDeprecationMessage}}),Object.defineProperty(e,\"EventDispatcher\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"ComponentLookup\",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,\"TextSupport\",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,\"CoreView\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,\"ClassNamesSupport\",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,\"ChildViewsSupport\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,\"ViewStateSupport\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,\"ViewMixin\",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,\"ActionSupport\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,\"MUTABLE_CELL\",{enumerable:!0,get:function(){return f.MUTABLE_CELL}}),Object.defineProperty(e,\"lookupPartial\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,\"hasPartial\",{enumerable:!0,get:function(){return p.hasPartial}}),Object.defineProperty(e,\"lookupComponent\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,\"ActionManager\",{enumerable:!0,get:function(){return m.default}})}),e(\"@ember/-internals/views/lib/compat/attrs\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";var n=(e.MUTABLE_CELL=void 0,t.symbol)(\"MUTABLE_CELL\");e.MUTABLE_CELL=n}),e(\"@ember/-internals/views/lib/compat/fallback-view-registry\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";var n=(e.default=void 0,t.dictionary)(null);e.default=n}),e(\"@ember/-internals/views/lib/component_lookup\",[\"exports\",\"@ember/-internals/runtime\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Object.extend({componentFor:function(e,t,n){var r=\"component:\"+e;return t.factoryFor(r,n)},layoutFor:function(e,t,n){var r=\"template:components/\"+e;return t.lookup(r,n)}});e.default=n}),e(\"@ember/-internals/views/lib/mixins/action_support\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/-internals/views/lib/compat/attrs\",\"@ember/deprecated-features\"],function(e,t,a,n,r,i){\"use strict\";e.default=void 0;var o,s={send:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=this.actions&&this.actions[e];if(i&&!(!0===i.apply(this,n)))return;var o=(0,a.get)(this,\"target\");o&&o.send.apply(o,arguments)}};i.SEND_ACTION&&(o=function(e,t){return t&&t[r.MUTABLE_CELL]&&(t=t.value),t},s.sendAction=function(e){var t;if(void 0===e&&(e=\"action\"),t=(0,a.get)(this,\"attrs.\"+e)||(0,a.get)(this,e),void 0!==(t=o(this,t))){for(var n=arguments.length,r=new Array(1<n?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];\"function\"==typeof t?t.apply(void 0,r):this.triggerAction({action:t,actionContext:r})}});var u=a.Mixin.create(s);e.default=u}),e(\"@ember/-internals/views/lib/mixins/child_views_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/views/lib/system/utils\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.Mixin.create({childViews:(0,t.nativeDescDecorator)({configurable:!1,enumerable:!1,get:function(){return(0,n.getChildViews)(this)}}),appendChild:function(e){(0,n.addChildView)(this,e)}});e.default=r}),e(\"@ember/-internals/views/lib/mixins/class_names_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,t,n){\"use strict\";e.default=void 0;var r=Object.freeze([]),i=t.Mixin.create({concatenatedProperties:[\"classNames\",\"classNameBindings\"],init:function(){this._super.apply(this,arguments)},classNames:r,classNameBindings:r});e.default=i}),e(\"@ember/-internals/views/lib/mixins/text_support\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/deprecated-features\"],function(e,o,t,n,a){\"use strict\";e.default=void 0;var r={13:\"insertNewline\",27:\"cancel\"},i=o.Mixin.create(t.TargetActionSupport,{value:\"\",attributeBindings:[\"autocapitalize\",\"autocorrect\",\"autofocus\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"placeholder\",\"readonly\",\"required\",\"selectionDirection\",\"spellcheck\",\"tabindex\",\"title\"],placeholder:null,disabled:!1,maxlength:null,init:function(){this._super.apply(this,arguments),this.on(\"paste\",this,this._elementValueDidChange),this.on(\"cut\",this,this._elementValueDidChange),this.on(\"input\",this,this._elementValueDidChange)},bubbles:!1,interpretKeyEvents:function(e){var t=r[e.keyCode];if(this._elementValueDidChange(),t)return this[t](e)},_elementValueDidChange:function(){(0,o.set)(this,\"value\",this.element.value)},change:function(e){this._elementValueDidChange(e)},insertNewline:function(e){s(\"enter\",this,e),s(\"insert-newline\",this,e)},cancel:function(e){s(\"escape-press\",this,e)},focusIn:function(e){s(\"focus-in\",this,e)},focusOut:function(e){this._elementValueDidChange(e),s(\"focus-out\",this,e)},keyPress:function(e){s(\"key-press\",this,e)},keyUp:function(e){this.interpretKeyEvents(e),s(\"key-up\",this,e)},keyDown:function(e){s(\"key-down\",this,e)}});function s(e,t,n){var r=(0,o.get)(t,\"attrs.\"+e)||(0,o.get)(t,e),i=(0,o.get)(t,\"value\");a.SEND_ACTION&&\"string\"==typeof r?t.triggerAction({action:r,actionContext:[i,n]}):\"function\"==typeof r&&r(i,n),r&&!(0,o.get)(t,\"bubbles\")&&n.stopPropagation()}e.default=i}),e(\"@ember/-internals/views/lib/mixins/view_state_support\",[\"exports\",\"@ember/-internals/metal\"],function(e,t){\"use strict\";e.default=void 0;var n=t.Mixin.create({_transitionTo:function(e){var t=this._currentState,n=this._currentState=this._states[e];this._state=e,t&&t.exit&&t.exit(this),n.enter&&n.enter(this)}});e.default=n}),e(\"@ember/-internals/views/lib/mixins/view_support\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/-internals/browser-environment\",\"@ember/-internals/views/lib/system/utils\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/deprecated-features\"],function(e,t,r,n,i,o,a,s){\"use strict\";function u(){return this}var l={concatenatedProperties:[\"attributeBindings\"],nearestOfType:function(t){for(var e=this.parentView,n=t instanceof r.Mixin?function(e){return t.detect(e)}:function(e){return t.detect(e.constructor)};e;){if(n(e))return e;e=e.parentView}},nearestWithProperty:function(e){for(var t=this.parentView;t;){if(e in t)return t;t=t.parentView}},rerender:function(){return this._currentState.rerender(this)},element:(e.default=void 0,r.nativeDescDecorator)({configurable:!1,enumerable:!1,get:function(){return this.renderer.getElement(this)}}),appendTo:function(e){var t=i.hasDOM&&\"string\"==typeof e?document.querySelector(e):e;return this.renderer.appendTo(this,t),this},append:function(){return this.appendTo(document.body)},elementId:null,willInsertElement:u,didInsertElement:u,willClearRender:u,destroy:function(){this._super.apply(this,arguments),this._currentState.destroy(this)},willDestroyElement:u,didDestroyElement:u,parentViewDidChange:u,tagName:null,init:function(){this._super.apply(this,arguments),this.elementId||\"\"===this.tagName||(this.elementId=(0,t.guidFor)(this))},handleEvent:function(e,t){return this._currentState.handleEvent(this,e,t)}};s.JQUERY_INTEGRATION&&(l.$=function(e){if(this.element)return e?(0,a.default)(e,this.element):(0,a.default)(this.element)});var c=r.Mixin.create(l);e.default=c}),e(\"@ember/-internals/views/lib/system/action_manager\",[\"exports\"],function(e){\"use strict\";function t(){}(e.default=t).registeredActions={}}),e(\"@ember/-internals/views/lib/system/event_dispatcher\",[\"exports\",\"@ember/-internals/owner\",\"@ember/polyfills\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\",\"@ember/-internals/views\",\"@ember/-internals/views/lib/system/jquery\",\"@ember/-internals/views/lib/system/action_manager\",\"@ember/-internals/views/lib/system/jquery_event_deprecation\",\"@ember/-internals/views/lib/system/utils\",\"@ember/deprecated-features\"],function(e,t,a,n,s,r,l,c,f,p,d,m){\"use strict\";e.default=void 0;var u=\"ember-application\",h=\".\"+u,v={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},i=r.Object.extend({events:{touchstart:\"touchStart\",touchmove:\"touchMove\",touchend:\"touchEnd\",touchcancel:\"touchCancel\",keydown:\"keyDown\",keyup:\"keyUp\",keypress:\"keyPress\",mousedown:\"mouseDown\",mouseup:\"mouseUp\",contextmenu:\"contextMenu\",click:\"click\",dblclick:\"doubleClick\",mousemove:\"mouseMove\",focusin:\"focusIn\",focusout:\"focusOut\",mouseenter:\"mouseEnter\",mouseleave:\"mouseLeave\",submit:\"submit\",input:\"input\",change:\"change\",dragstart:\"dragStart\",drag:\"drag\",dragenter:\"dragEnter\",dragleave:\"dragLeave\",dragover:\"dragOver\",drop:\"drop\",dragend:\"dragEnd\"},rootElement:\"body\",init:function(){this._super(),this._eventHandlers=Object.create(null)},setup:function(e,t){var n=this._finalEvents=(0,a.assign)({},(0,s.get)(this,\"events\"),e);null!=t&&(0,s.set)(this,\"rootElement\",t);var r,i=(0,s.get)(this,\"rootElement\");if(!m.JQUERY_INTEGRATION||c.jQueryDisabled)(r=\"string\"!=typeof i?i:document.querySelector(i)).classList.add(u);else if((r=(0,c.default)(i)).addClass(u),!r.is(h))throw new TypeError(\"Unable to add '\"+u+\"' class to root element (\"+(r.selector||r[0].tagName)+\"). Make sure you set rootElement to the body or an element in the body.\");for(var o in n)n.hasOwnProperty(o)&&this.setupHandler(r,o,n[o])},setupHandler:function(e,t,h){var r,i,n,o,a,s,u;null!==h&&(!m.JQUERY_INTEGRATION||c.jQueryDisabled?(r=function(e,t){var n=(0,l.getElementView)(e),r=!0;return n&&(r=n.handleEvent(h,t)),r},i=function(e,t){var n=e.getAttribute(\"data-ember-action\"),r=f.default.registeredActions[n];if(\"\"===n)for(var i=e.attributes,o=i.length,r=[],a=0;a<o;a++){var s=i.item(a);0===s.name.indexOf(\"data-ember-action-\")&&(r=r.concat(f.default.registeredActions[s.value]))}if(r){for(var u=!0,l=0;l<r.length;l++){var c=r[l];c&&c.eventName===h&&(u=c.handler(t)&&u)}return u}},void 0!==v[t]?(n=v[t],o=t,a=function(e,t){var n=document.createEvent(\"MouseEvent\");return n.initMouseEvent(e,!1,!1,t.view,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget),Object.defineProperty(n,\"target\",{value:t.target,enumerable:!0}),n},s=this._eventHandlers[n]=function(e){for(var t=e.target,n=e.relatedTarget;t&&1===t.nodeType&&(null===n||n!==t&&!(0,d.contains)(t,n));)(0,l.getElementView)(t)?r(t,a(o,e)):t.hasAttribute(\"data-ember-action\")&&i(t,a(o,e)),t=t.parentNode},e.addEventListener(n,s)):(u=this._eventHandlers[t]=function(e){var t=e.target;do{if((0,l.getElementView)(t)){if(!1===r(t,e)){e.preventDefault(),e.stopPropagation();break}if(!0===e.cancelBubble)break}else if(\"function\"==typeof t.hasAttribute&&t.hasAttribute(\"data-ember-action\")&&!1===i(t,e))break;t=t.parentNode}while(t&&1===t.nodeType)},e.addEventListener(t,u))):(e.on(t+\".ember\",\".ember-view\",function(e){var t=(0,l.getElementView)(this),n=!0;return t&&(n=t.handleEvent(h,(0,p.default)(e))),n}),e.on(t+\".ember\",\"[data-ember-action]\",function(e){var t=e.currentTarget.attributes,n=[];e=(0,p.default)(e);for(var r=0;r<t.length;r++){var i,o=t.item(r);-1===o.name.lastIndexOf(\"data-ember-action-\",0)||(i=f.default.registeredActions[o.value])&&i.eventName===h&&-1===n.indexOf(i)&&(i.handler(e),n.push(i))}})))},destroy:function(){var e=(0,s.get)(this,\"rootElement\"),t=e.nodeType?e:document.querySelector(e);if(t){if(!m.JQUERY_INTEGRATION||c.jQueryDisabled)for(var n in this._eventHandlers)t.removeEventListener(n,this._eventHandlers[n]);else(0,c.default)(e).off(\".ember\",\"**\");return t.classList.remove(u),this._super.apply(this,arguments)}},toString:function(){return\"(EventDispatcher)\"}});e.default=i}),e(\"@ember/-internals/views/lib/system/jquery\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\",\"@ember/deprecated-features\"],function(e,t,n,r){\"use strict\";var i;e.default=e.jQueryDisabled=void 0;var o=!r.JQUERY_INTEGRATION||!1===t.ENV._JQUERY_INTEGRATION;e.jQueryDisabled=o,r.JQUERY_INTEGRATION&&n.hasDOM&&(i=t.context.imports.jQuery,!o&&i?i.event.addProp?i.event.addProp(\"dataTransfer\"):[\"dragstart\",\"drag\",\"dragenter\",\"dragleave\",\"dragover\",\"drop\",\"dragend\"].forEach(function(e){i.event.fixHooks[e]={props:[\"dataTransfer\"]}}):e.jQueryDisabled=o=!0);var a=o?void 0:i;e.default=a}),e(\"@ember/-internals/views/lib/system/jquery_event_deprecation\",[\"exports\",\"@ember/debug\",\"@ember/-internals/environment\",\"@ember/-internals/utils\",\"@ember/deprecated-features\"],function(e,t,n,r,i){\"use strict\";e.default=function(e){{}return e}}),e(\"@ember/-internals/views/lib/system/lookup_partial\",[\"exports\",\"@ember/debug\",\"@ember/error\"],function(e,r,i){\"use strict\";function o(e){var t=e.split(\"/\"),n=t[t.length-1];return t[t.length-1]=\"_\"+n,t.join(\"/\")}e.default=function(e,t){if(null==e)return;var n=function(e,t,n){if(!n)return;if(false&&!(n.indexOf(\".\")===-1)&&(0,r.assert)(\"templateNames are not allowed to contain periods: \"+n,n.indexOf(\".\")===-1),e)return e.lookup(\"template:\"+t)||e.lookup(\"template:\"+n);throw new i.default(\"Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA\")}(t,o(e),e);return n},e.hasPartial=function(e,t){if(t)return t.hasRegistration(\"template:\"+o(e))||t.hasRegistration(\"template:\"+e);throw new i.default(\"Container was not found when looking up a views template. This is most likely due to manually instantiating an Ember.View. See: http://git.io/EKPpnA\")}}),e(\"@ember/-internals/views/lib/system/utils\",[\"exports\",\"@ember/-internals/owner\",\"@ember/-internals/utils\"],function(e,n,t){\"use strict\";function r(e){return\"\"!==e.tagName&&e.elementId?e.elementId:(0,t.guidFor)(e)}e.isSimpleClick=function(e){var t=e.shiftKey||e.metaKey||e.altKey||e.ctrlKey,n=1<e.which;return!t&&!n},e.constructStyleDeprecationMessage=function(e){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes. Style affected: \"'+e+'\"'},e.getRootViews=function(e){var n=e.lookup(\"-view-registry:main\"),r=[];return Object.keys(n).forEach(function(e){var t=n[e];null===t.parentView&&r.push(t)}),r},e.getViewId=r,e.getElementView=function(e){return i.get(e)||null},e.getViewElement=function(e){return o.get(e)||null},e.setElementView=function(e,t){i.set(e,t)},e.setViewElement=function(e,t){o.set(e,t)},e.clearElementView=function(e){i.delete(e)},e.clearViewElement=function(e){o.delete(e)},e.getChildViews=function(e){var t=(0,n.getOwner)(e).lookup(\"-view-registry:main\");return u(e,t)},e.initChildViews=s,e.addChildView=function(e,t){var n=a.get(e);void 0===n&&(n=s(e));n.add(r(t))},e.collectChildViews=u,e.getViewBounds=l,e.getViewRange=c,e.getViewClientRects=function(e){return c(e).getClientRects()},e.getViewBoundingClientRect=function(e){return c(e).getBoundingClientRect()},e.matches=function(e,t){return h.call(e,t)},e.contains=function(e,t){if(void 0!==e.contains)return e.contains(t);for(;t=t.parentNode;)if(t===e)return!0;return!1},e.elMatches=void 0;var i=new WeakMap,o=new WeakMap;var a=new WeakMap;function s(e){var t=new Set;return a.set(e,t),t}function u(e,n){var r=[],t=a.get(e);return void 0!==t&&t.forEach(function(e){var t=n[e];!t||t.isDestroying||t.isDestroyed||r.push(t)}),r}function l(e){return e.renderer.getBounds(e)}function c(e){var t=l(e),n=document.createRange();return n.setStartBefore(t.firstNode),n.setEndAfter(t.lastNode),n}var h=\"undefined\"!=typeof Element&&(Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector);e.elMatches=h}),e(\"@ember/-internals/views/lib/utils/lookup-component\",[\"exports\"],function(e){\"use strict\";function o(e,t,n,r){var i=e.componentFor(n,t,r);return{layout:e.layoutFor(n,t,r),component:i}}e.default=function(e,t,n){var r=e.lookup(\"component-lookup:main\");if(n&&(n.source||n.namespace)){var i=o(r,e,t,n);if(i.component||i.layout)return i}return o(r,e,t)}}),e(\"@ember/-internals/views/lib/views/core_view\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/views/lib/views/states\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.FrameworkObject.extend(t.Evented,t.ActionHandler,{isView:!0,_states:n.default,init:function(){if(this._super.apply(this,arguments),this._state=\"preRender\",this._currentState=this._states.preRender,!this.renderer)throw new Error(\"Cannot instantiate a component without a renderer. Please ensure that you are creating \"+this+\" with a proper container/registry.\")},parentView:null,instrumentDetails:function(e){return e.object=this.toString(),e.containerKey=this._debugContainerKey,e.view=this,e},trigger:function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this._super.apply(this,arguments);var i=this[e];if(\"function\"==typeof i)return i.apply(this,n)},has:function(e){return\"function\"==typeof this[e]||this._super(e)}});r.reopenClass({isViewFactory:!0});e.default=r}),e(\"@ember/-internals/views/lib/views/states\",[\"exports\",\"@ember/-internals/views/lib/views/states/pre_render\",\"@ember/-internals/views/lib/views/states/has_element\",\"@ember/-internals/views/lib/views/states/in_dom\",\"@ember/-internals/views/lib/views/states/destroying\"],function(e,t,n,r,i){\"use strict\";e.default=void 0;var o=Object.freeze({preRender:t.default,inDOM:r.default,hasElement:n.default,destroying:i.default});e.default=o}),e(\"@ember/-internals/views/lib/views/states/default\",[\"exports\",\"@ember/error\"],function(e,t){\"use strict\";e.default=void 0;var n={appendChild:function(){throw new t.default(\"You can't use appendChild outside of the rendering process\")},handleEvent:function(){return!0},rerender:function(){},destroy:function(){}},r=Object.freeze(n);e.default=r}),e(\"@ember/-internals/views/lib/views/states/destroying\",[\"exports\",\"@ember/polyfills\",\"@ember/error\",\"@ember/-internals/views/lib/views/states/default\"],function(e,t,n,r){\"use strict\";var i=(e.default=void 0,t.assign)({},r.default,{appendChild:function(){throw new n.default(\"You can't call appendChild on a view being destroyed\")},rerender:function(){throw new n.default(\"You can't call rerender on a view being destroyed\")}}),o=Object.freeze(i);e.default=o}),e(\"@ember/-internals/views/lib/views/states/has_element\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/views/lib/views/states/default\",\"@ember/runloop\",\"@ember/instrumentation\"],function(e,t,n,r,i){\"use strict\";var o=(e.default=void 0,t.assign)({},n.default,{rerender:function(e){e.renderer.rerender(e)},destroy:function(e){e.renderer.remove(e)},handleEvent:function(e,t,n){return!e.has(t)||(0,i.flaggedInstrument)(\"interaction.\"+t,{event:n,view:e},function(){return(0,r.join)(e,e.trigger,t,n)})}}),a=Object.freeze(o);e.default=a}),e(\"@ember/-internals/views/lib/views/states/in_dom\",[\"exports\",\"@ember/-internals/utils\",\"@ember/polyfills\",\"@ember/error\",\"@ember/-internals/views/lib/views/states/has_element\"],function(e,t,n,r,i){\"use strict\";var o=(e.default=void 0,n.assign)({},i.default,{enter:function(e){e.renderer.register(e)},exit:function(e){e.renderer.unregister(e)}}),a=Object.freeze(o);e.default=a}),e(\"@ember/-internals/views/lib/views/states/pre_render\",[\"exports\",\"@ember/-internals/views/lib/views/states/default\",\"@ember/polyfills\"],function(e,t,n){\"use strict\";var r=(e.default=void 0,n.assign)({},t.default),i=Object.freeze(r);e.default=i}),e(\"@ember/application/globals-resolver\",[\"exports\",\"ember-babel\",\"@ember/-internals/utils\",\"@ember/-internals/metal\",\"@ember/debug\",\"@ember/string\",\"@ember/-internals/runtime\",\"@ember/application/lib/validate-type\",\"@ember/-internals/glimmer\"],function(e,r,u,h,t,f,n,i,o){\"use strict\";e.default=void 0;var a=function(t){function e(){return t.apply(this,arguments)||this}(0,r.inheritsLoose)(e,t),e.create=function(e){return t.create.call(this,e)};var n=e.prototype;return n.init=function(){this._parseNameCache=(0,u.dictionary)(null)},n.normalize=function(e){var t=e.split(\":\"),n=t[0],r=t[1];return\"template\"===n?e:n+\":\"+r.replace(/(\\.|_|-)./g,function(e){return e.charAt(1).toUpperCase()})},n.resolve=function(e){var t,n=this.parseName(e),r=n.resolveMethodName;return this[r]&&(t=this[r](n)),(t=t||this.resolveOther(n))&&(0,i.default)(t,n),t},n.parseName=function(e){return this._parseNameCache[e]||(this._parseNameCache[e]=this._parseName(e))},n._parseName=function(e){var t,n,r=e.split(\":\"),i=r[0],o=r[1],a=o,s=(0,h.get)(this,\"namespace\"),u=a.lastIndexOf(\"/\"),l=-1!==u?a.slice(0,u):null;\"template\"!==i&&-1!==u&&(a=(t=a.split(\"/\"))[t.length-1],n=(0,f.capitalize)(t.slice(0,-1).join(\".\")),s=(0,h.findNamespace)(n));var c=\"main\"===o?\"Main\":(0,f.classify)(i);if(!a||!i)throw new TypeError(\"Invalid fullName: `\"+e+\"`, must be of the form `type:name` \");return{fullName:e,type:i,fullNameWithoutType:o,dirname:l,name:a,root:s,resolveMethodName:\"resolve\"+c}},n.lookupDescription=function(e){var t,n=this.parseName(e);return\"template\"===n.type?\"template at \"+n.fullNameWithoutType.replace(/\\./g,\"/\"):(t=n.root+\".\"+(0,f.classify)(n.name).replace(/\\./g,\"\"),\"model\"!==n.type&&(t+=(0,f.classify)(n.type)),t)},n.makeToString=function(e){return e.toString()},n.useRouterNaming=function(e){\"basic\"===e.name?e.name=\"\":e.name=e.name.replace(/\\./g,\"_\")},n.resolveTemplate=function(e){var t=e.fullNameWithoutType.replace(/\\./g,\"/\");return(0,o.getTemplate)(t)||(0,o.getTemplate)((0,f.decamelize)(t))},n.resolveView=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveController=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveRoute=function(e){return this.useRouterNaming(e),this.resolveOther(e)},n.resolveModel=function(e){var t=(0,f.classify)(e.name);return(0,h.get)(e.root,t)},n.resolveHelper=function(e){return this.resolveOther(e)},n.resolveOther=function(e){var t=(0,f.classify)(e.name)+(0,f.classify)(e.type);return(0,h.get)(e.root,t)},n.resolveMain=function(e){var t=(0,f.classify)(e.type);return(0,h.get)(e.root,t)},n.knownForType=function(e){for(var t=(0,h.get)(this,\"namespace\"),n=(0,f.classify)(e),r=new RegExp(n+\"$\"),i=(0,u.dictionary)(null),o=Object.keys(t),a=0;a<o.length;a++){var s=o[a];r.test(s)&&(i[this.translateToContainerFullname(e,s)]=!0)}return i},n.translateToContainerFullname=function(e,t){var n=(0,f.classify)(e),r=t.slice(0,-1*n.length);return e+\":\"+(0,f.dasherize)(r)},e}(n.Object);e.default=a}),e(\"@ember/application/index\",[\"exports\",\"@ember/-internals/owner\",\"@ember/application/lib/lazy_load\",\"@ember/application/lib/application\"],function(e,t,n,r){\"use strict\";Object.defineProperty(e,\"getOwner\",{enumerable:!0,get:function(){return t.getOwner}}),Object.defineProperty(e,\"setOwner\",{enumerable:!0,get:function(){return t.setOwner}}),Object.defineProperty(e,\"onLoad\",{enumerable:!0,get:function(){return n.onLoad}}),Object.defineProperty(e,\"runLoadHooks\",{enumerable:!0,get:function(){return n.runLoadHooks}}),Object.defineProperty(e,\"_loaded\",{enumerable:!0,get:function(){return n._loaded}}),Object.defineProperty(e,\"default\",{enumerable:!0,get:function(){return r.default}})}),e(\"@ember/application/instance\",[\"exports\",\"@ember/polyfills\",\"@ember/-internals/metal\",\"@ember/-internals/browser-environment\",\"@ember/-internals/views\",\"@ember/engine/instance\",\"@ember/-internals/glimmer\"],function(e,i,s,t,n,r,u){\"use strict\";e.default=void 0;var o=r.default.extend({application:null,customEvents:null,rootElement:null,init:function(){this._super.apply(this,arguments),this.application._watchInstance(this),this.register(\"-application-instance:main\",this,{instantiate:!1})},_bootSync:function(e){return this._booted||(e=new a(e),this.setupRegistry(e),e.rootElement?this.rootElement=e.rootElement:this.rootElement=this.application.rootElement,e.location&&(0,s.set)(this.router,\"location\",e.location),this.application.runInstanceInitializers(this),e.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this},setupRegistry:function(e){this.constructor.setupRegistry(this.__registry__,e)},router:(0,s.computed)(function(){return this.lookup(\"router:main\")}).readOnly(),didCreateRootView:function(e){e.appendTo(this.rootElement)},startRouting:function(){this.router.startRouting(),this._didSetupRouter=!0},setupRouter:function(){this._didSetupRouter||(this._didSetupRouter=!0,this.router.setupRouter())},handleURL:function(e){return this.setupRouter(),this.router.handleURL(e)},setupEventDispatcher:function(){var e=this.lookup(\"event_dispatcher:main\"),t=(0,s.get)(this.application,\"customEvents\"),n=(0,s.get)(this,\"customEvents\"),r=(0,i.assign)({},t,n);return e.setup(r,this.rootElement),e},getURL:function(){return this.router.url},visit:function(e){var t=this;this.setupRouter();function n(){return r.options.shouldRender?(0,u.renderSettled)().then(function(){return t}):t}var r=this.__container__.lookup(\"-environment:main\"),i=this.router,o=function(e){if(e.error)throw e.error;if(\"TransitionAborted\"===e.name&&i._routerMicrolib.activeTransition)return i._routerMicrolib.activeTransition.then(n,o);throw\"TransitionAborted\"===e.name?new Error(e.message):e},a=(0,s.get)(i,\"location\");return a.setURL(e),i.handleURL(a.getURL()).then(n,o)},willDestroy:function(){this._super.apply(this,arguments),this.application._unwatchInstance(this)}});o.reopenClass({setupRegistry:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};t.toEnvironment||(t=new a(t)),e.register(\"-environment:main\",t.toEnvironment(),{instantiate:!1}),e.register(\"service:-document\",t.document,{instantiate:!1}),this._super(e,t)}});var a=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.jQuery=n.jQuery,this.isInteractive=t.hasDOM,this._renderMode=e._renderMode,void 0!==e.isBrowser?this.isBrowser=Boolean(e.isBrowser):this.isBrowser=t.hasDOM,this.isBrowser||(this.jQuery=null,this.isInteractive=!1,this.location=\"none\"),void 0!==e.shouldRender?this.shouldRender=Boolean(e.shouldRender):this.shouldRender=!0,this.shouldRender||(this.jQuery=null,this.isInteractive=!1),e.document?this.document=e.document:this.document=\"undefined\"!=typeof document?document:null,e.rootElement&&(this.rootElement=e.rootElement),void 0!==e.location&&(this.location=e.location),void 0!==e.jQuery&&(this.jQuery=e.jQuery),void 0!==e.isInteractive&&(this.isInteractive=Boolean(e.isInteractive))}return e.prototype.toEnvironment=function(){var e=(0,i.assign)({},t);return e.hasDOM=this.isBrowser,e.isInteractive=this.isInteractive,e._renderMode=this._renderMode,e.options=this,e},e}();e.default=o}),e(\"@ember/application/lib/application\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\",\"@ember/debug\",\"@ember/runloop\",\"@ember/-internals/metal\",\"@ember/application/lib/lazy_load\",\"@ember/-internals/runtime\",\"@ember/-internals/views\",\"@ember/-internals/routing\",\"@ember/application/instance\",\"@ember/engine\",\"@ember/-internals/container\",\"@ember/-internals/glimmer\",\"@ember/deprecated-features\"],function(e,n,t,r,i,o,a,s,u,l,c,h,f,p,d,m){\"use strict\";function v(){var e=function(e,t){t=t||e.slice(0);return e.raw=t,e}([\"-bucket-cache:main\"]);return v=function(){return e},e}e.default=void 0;var g=!1,y=f.default.extend({rootElement:\"body\",eventDispatcher:null,customEvents:null,autoboot:!0,_globalsMode:!0,_applicationInstances:null,init:function(){this._super.apply(this,arguments),this.$||(this.$=l.jQuery),g||(g=!0,m.JQUERY_INTEGRATION&&r.hasDOM&&!l.jQueryDisabled&&a.libraries.registerCoreLibrary(\"jQuery\",(0,l.jQuery)().jquery)),this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=this._globalsMode=Boolean(this.autoboot),this._globalsMode&&this._prepareForGlobalsMode(),this.autoboot&&this.waitForDOMReady()},buildInstance:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return e.base=this,e.application=this,h.default.create(e)},_watchInstance:function(e){this._applicationInstances.add(e)},_unwatchInstance:function(e){return this._applicationInstances.delete(e)},_prepareForGlobalsMode:function(){this.Router=(this.Router||c.Router).extend(),this._buildDeprecatedInstance()},_buildDeprecatedInstance:function(){var e=this.buildInstance();this.__deprecatedInstance__=e,this.__container__=e.__container__},waitForDOMReady:function(){!this.$||this.$.isReady?(0,o.schedule)(\"actions\",this,\"domReady\"):this.$().ready((0,o.bind)(this,\"domReady\"))},domReady:function(){this.isDestroyed||this._bootSync()},deferReadiness:function(){this._readinessDeferrals++},advanceReadiness:function(){this._readinessDeferrals--,0===this._readinessDeferrals&&(0,o.once)(this,this.didBecomeReady)},boot:function(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(e){}return this._bootPromise},_bootSync:function(){if(!this._booted){var t=this._bootResolver=u.RSVP.defer();this._bootPromise=t.promise;try{this.runInitializers(),(0,s.runLoadHooks)(\"application\",this),this.advanceReadiness()}catch(e){throw t.reject(e),e}}},reset:function(){var e=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,(this._booted=!1,o.join)(this,function(){(0,o.run)(e,\"destroy\"),this._buildDeprecatedInstance(),(0,o.schedule)(\"actions\",this,\"_bootSync\")})},didBecomeReady:function(){try{var e;(0,i.isTesting)()||((0,a.processAllNamespaces)(),(0,a.setNamespaceSearchDisabled)(!0)),this.autoboot&&((e=this._globalsMode?this.__deprecatedInstance__:this.buildInstance())._bootSync(),this.ready(),e.startRouting()),this._bootResolver.resolve(this),this._booted=!0}catch(e){throw this._bootResolver.reject(e),e}},ready:function(){return this},willDestroy:function(){this._super.apply(this,arguments),(0,a.setNamespaceSearchDisabled)(!1),this._booted=!1,this._bootPromise=null,this._bootResolver=null,s._loaded.application===this&&(s._loaded.application=void 0),this._applicationInstances.size&&(this._applicationInstances.forEach(function(e){return e.destroy()}),this._applicationInstances.clear())},visit:function(e,n){var r=this;return this.boot().then(function(){var t=r.buildInstance();return t.boot(n).then(function(){return t.visit(e)}).catch(function(e){throw(0,o.run)(t,\"destroy\"),e})})}});y.reopenClass({buildRegistry:function(){var e,t=this._super.apply(this,arguments);return(e=t).register(\"router:main\",c.Router.extend()),e.register(\"-view-registry:main\",{create:function(){return(0,n.dictionary)(null)}}),e.register(\"route:basic\",c.Route),e.register(\"event_dispatcher:main\",l.EventDispatcher),e.injection(\"router:main\",\"namespace\",\"application:main\"),e.register(\"location:auto\",c.AutoLocation),e.register(\"location:hash\",c.HashLocation),e.register(\"location:history\",c.HistoryLocation),e.register(\"location:none\",c.NoneLocation),e.register((0,p.privatize)(v()),{create:function(){return new c.BucketCache}}),e.register(\"service:router\",c.RouterService),e.injection(\"service:router\",\"_router\",\"router:main\"),(0,d.setupApplicationRegistry)(t),t}}),e.default=y}),e(\"@ember/application/lib/lazy_load\",[\"exports\",\"@ember/-internals/environment\",\"@ember/-internals/browser-environment\"],function(e,t,r){\"use strict\";e.onLoad=function(e,t){var n=o[e];i[e]=i[e]||[],i[e].push(t),n&&t(n)},e.runLoadHooks=function(e,t){{var n;o[e]=t,r.window&&\"function\"==typeof CustomEvent&&(n=new CustomEvent(e,{detail:t,name:e}),r.window.dispatchEvent(n))}i[e]&&i[e].forEach(function(e){return e(t)})},e._loaded=void 0;var i=t.ENV.EMBER_LOAD_HOOKS||{},o={};e._loaded=o}),e(\"@ember/application/lib/validate-type\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=function(e,t){var n=r[t.type];if(!n)return;n[1],n[2]};var r={route:[\"assert\",\"isRouteFactory\",\"Ember.Route\"],component:[\"deprecate\",\"isComponentFactory\",\"Ember.Component\"],view:[\"deprecate\",\"isViewFactory\",\"Ember.View\"],service:[\"deprecate\",\"isServiceFactory\",\"Ember.Service\"]}}),e(\"@ember/canary-features/index\",[\"exports\",\"@ember/-internals/environment\",\"@ember/polyfills\"],function(e,n,t){\"use strict\";var r={EMBER_LIBRARIES_ISREGISTERED:!(e.isEnabled=function(e){var t=i[e];return!0===t||!1===t?t:!!n.ENV.ENABLE_OPTIONAL_FEATURES}),EMBER_IMPROVED_INSTRUMENTATION:!1,EMBER_MODULE_UNIFICATION:!1,EMBER_METAL_TRACKED_PROPERTIES:!1,EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES:!(e.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT=e.EMBER_GLIMMER_ON_MODIFIER=e.EMBER_CUSTOM_COMPONENT_ARG_PROXY=e.EMBER_GLIMMER_FN_HELPER=e.EMBER_NATIVE_DECORATOR_SUPPORT=e.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS=e.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES=e.EMBER_METAL_TRACKED_PROPERTIES=e.EMBER_MODULE_UNIFICATION=e.EMBER_IMPROVED_INSTRUMENTATION=e.EMBER_LIBRARIES_ISREGISTERED=e.FEATURES=e.DEFAULT_FEATURES=void 0),EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS:!0,EMBER_NATIVE_DECORATOR_SUPPORT:!0,EMBER_GLIMMER_FN_HELPER:!0,EMBER_CUSTOM_COMPONENT_ARG_PROXY:!1,EMBER_GLIMMER_ON_MODIFIER:!0,EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT:!0};e.DEFAULT_FEATURES=r;var i=(0,t.assign)(r,n.ENV.FEATURES);function o(e){return!(!n.ENV.ENABLE_OPTIONAL_FEATURES||null!==e)||e}var a=o((e.FEATURES=i).EMBER_LIBRARIES_ISREGISTERED);e.EMBER_LIBRARIES_ISREGISTERED=a;var s=o(i.EMBER_IMPROVED_INSTRUMENTATION);e.EMBER_IMPROVED_INSTRUMENTATION=s;var u=o(i.EMBER_MODULE_UNIFICATION);e.EMBER_MODULE_UNIFICATION=u;var l=o(i.EMBER_METAL_TRACKED_PROPERTIES);e.EMBER_METAL_TRACKED_PROPERTIES=l;var c=o(i.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES);e.EMBER_GLIMMER_FORWARD_MODIFIERS_WITH_SPLATTRIBUTES=c;var h=o(i.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS);e.EMBER_GLIMMER_ANGLE_BRACKET_BUILT_INS=h;var f=o(i.EMBER_NATIVE_DECORATOR_SUPPORT);e.EMBER_NATIVE_DECORATOR_SUPPORT=f;var p=o(i.EMBER_GLIMMER_FN_HELPER);e.EMBER_GLIMMER_FN_HELPER=p;var d=o(i.EMBER_CUSTOM_COMPONENT_ARG_PROXY);e.EMBER_CUSTOM_COMPONENT_ARG_PROXY=d;var m=o(i.EMBER_GLIMMER_ON_MODIFIER);e.EMBER_GLIMMER_ON_MODIFIER=m;var v=o(i.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT);e.EMBER_FRAMEWORK_OBJECT_OWNER_ARGUMENT=v}),e(\"@ember/controller/index\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/metal\",\"@ember/controller/lib/controller_mixin\"],function(e,t,n,r){\"use strict\";e.inject=function(){return n.inject.apply(void 0,[\"controller\"].concat(Array.prototype.slice.call(arguments)))},e.default=void 0;var i=t.FrameworkObject.extend(r.default);(0,t.setFrameworkClass)(i),e.default=i}),e(\"@ember/controller/lib/controller_mixin\",[\"exports\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\"],function(e,t,n){\"use strict\";e.default=void 0;var r=t.Mixin.create(n.ActionHandler,{isController:!0,target:null,store:null,model:null});e.default=r}),e(\"@ember/debug/index\",[\"exports\",\"@ember/-internals/browser-environment\",\"@ember/error\",\"@ember/debug/lib/deprecate\",\"@ember/debug/lib/testing\",\"@ember/debug/lib/warn\"],function(e,t,n,r,i,o){\"use strict\";Object.defineProperty(e,\"registerDeprecationHandler\",{enumerable:!0,get:function(){return r.registerHandler}}),Object.defineProperty(e,\"isTesting\",{enumerable:!0,get:function(){return i.isTesting}}),Object.defineProperty(e,\"setTesting\",{enumerable:!0,get:function(){return i.setTesting}}),Object.defineProperty(e,\"registerWarnHandler\",{enumerable:!0,get:function(){return o.registerHandler}}),e._warnIfUsingStrippedFeatureFlags=e.getDebugFunction=e.setDebugFunction=e.deprecateFunc=e.runInDebug=e.debugFreeze=e.debugSeal=e.deprecate=e.debug=e.warn=e.info=e.assert=void 0;function a(){}var s=a;e.assert=s;var u=a;e.info=u;var l=a;e.warn=l;var c=a;e.debug=c;var h=a;e.deprecate=h;var f=a;e.debugSeal=f;var p=a;e.debugFreeze=p;var d=a;e.runInDebug=d;var m=a;e.setDebugFunction=m;var v=a;e.getDebugFunction=v;var g=function(){return arguments[arguments.length-1]};e.deprecateFunc=g,e._warnIfUsingStrippedFeatureFlags=void 0}),e(\"@ember/debug/lib/deprecate\",[\"exports\",\"@ember/-internals/environment\",\"@ember/debug/index\",\"@ember/debug/lib/handlers\"],function(e,t,n,r){\"use strict\";e.missingOptionsUntilDeprecation=e.missingOptionsIdDeprecation=e.missingOptionsDeprecation=e.registerHandler=e.default=void 0;var i,o,a,s=function(){};e.registerHandler=s,e.missingOptionsDeprecation=i,e.missingOptionsIdDeprecation=o,e.missingOptionsUntilDeprecation=a;var u=function(){};e.default=u}),e(\"@ember/debug/lib/handlers\",[\"exports\"],function(e){\"use strict\";e.invoke=e.registerHandler=e.HANDLERS=void 0;var t={};e.HANDLERS=t;var n=function(){};e.registerHandler=n;var r=function(){};e.invoke=r}),e(\"@ember/debug/lib/testing\",[\"exports\"],function(e){\"use strict\";e.isTesting=function(){return t};var t=!(e.setTesting=function(e){t=Boolean(e)})}),e(\"@ember/debug/lib/warn\",[\"exports\",\"@ember/debug/index\",\"@ember/debug/lib/handlers\"],function(e,t,n){\"use strict\";e.missingOptionsDeprecation=e.missingOptionsIdDeprecation=e.registerHandler=e.default=void 0;var r=function(){};e.registerHandler=r;var i,o,a=function(){};e.missingOptionsDeprecation=i,e.missingOptionsIdDeprecation=o,e.default=a}),e(\"@ember/deprecated-features/index\",[\"exports\"],function(e){\"use strict\";e.FUNCTION_PROTOTYPE_EXTENSIONS=e.APP_CTRL_ROUTER_PROPS=e.ALIAS_METHOD=e.JQUERY_INTEGRATION=e.COMPONENT_MANAGER_STRING_LOOKUP=e.ROUTER_EVENTS=e.MERGE=e.LOGGER=e.EMBER_EXTEND_PROTOTYPES=e.SEND_ACTION=void 0;e.SEND_ACTION=!0;e.EMBER_EXTEND_PROTOTYPES=!0;e.LOGGER=!0;e.MERGE=!0;e.ROUTER_EVENTS=!0;e.COMPONENT_MANAGER_STRING_LOOKUP=!0;e.JQUERY_INTEGRATION=!0;e.ALIAS_METHOD=!0;e.APP_CTRL_ROUTER_PROPS=!0;e.FUNCTION_PROTOTYPE_EXTENSIONS=!0}),e(\"@ember/engine/index\",[\"exports\",\"@ember/engine/lib/engine-parent\",\"@ember/-internals/utils\",\"@ember/controller\",\"@ember/-internals/runtime\",\"@ember/-internals/container\",\"dag-map\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/application/globals-resolver\",\"@ember/engine/instance\",\"@ember/-internals/routing\",\"@ember/-internals/extension-support\",\"@ember/-internals/views\",\"@ember/-internals/glimmer\"],function(e,t,n,a,r,s,u,i,l,c,o,h,f,p,d){\"use strict\";function m(){var e=g([\"-bucket-cache:main\"]);return m=function(){return e},e}function v(){var e=g([\"-bucket-cache:main\"]);return v=function(){return e},e}function g(e,t){return t=t||e.slice(0),e.raw=t,e}Object.defineProperty(e,\"getEngineParent\",{enumerable:!0,get:function(){return t.getEngineParent}}),Object.defineProperty(e,\"setEngineParent\",{enumerable:!0,get:function(){return t.setEngineParent}}),e.default=void 0;var y=r.Namespace.extend(r.RegistryProxyMixin,{init:function(){this._super.apply(this,arguments),this.buildRegistry()},_initializersRan:!1,ensureInitializers:function(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)},buildInstance:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return this.ensureInitializers(),e.base=this,o.default.create(e)},buildRegistry:function(){return this.__registry__=this.constructor.buildRegistry(this)},initializer:function(e){this.constructor.initializer(e)},instanceInitializer:function(e){this.constructor.instanceInitializer(e)},runInitializers:function(){var n=this;this._runInitializer(\"initializers\",function(e,t){t.initialize(n)})},runInstanceInitializers:function(n){this._runInitializer(\"instanceInitializers\",function(e,t){t.initialize(n)})},_runInitializer:function(e,t){for(var n,r=(0,l.get)(this.constructor,e),i=function(e){var t=[];for(var n in e)t.push(n);return t}(r),o=new u.default,a=0;a<i.length;a++)n=r[i[a]],o.add(n.name,n,n.before,n.after);o.topsort(t)}});function b(n){return function(e){var t;void 0!==this.superclass[n]&&this.superclass[n]===this[n]&&((t={})[n]=Object.create(this[n]),this.reopenClass(t)),this[n][e.name]=e}}y.reopenClass({initializers:Object.create(null),instanceInitializers:Object.create(null),initializer:b(\"initializers\"),instanceInitializer:b(\"instanceInitializers\"),buildRegistry:function(e){var t,n,r,i,o=new s.Registry({resolver:(t=e,n=(0,l.get)(t,\"Resolver\")||c.default,r={namespace:t},n.create(r))});return o.set=l.set,o.register(\"application:main\",e,{instantiate:!1}),(i=o).optionsForType(\"component\",{singleton:!1}),i.optionsForType(\"view\",{singleton:!1}),i.register(\"controller:basic\",a.default,{instantiate:!1}),i.injection(\"view\",\"_viewRegistry\",\"-view-registry:main\"),i.injection(\"renderer\",\"_viewRegistry\",\"-view-registry:main\"),i.injection(\"route\",\"_topLevelViewTemplate\",\"template:-outlet\"),i.injection(\"view:-outlet\",\"namespace\",\"application:main\"),i.injection(\"controller\",\"target\",\"router:main\"),i.injection(\"controller\",\"namespace\",\"application:main\"),i.injection(\"router\",\"_bucketCache\",(0,s.privatize)(v())),i.injection(\"route\",\"_bucketCache\",(0,s.privatize)(m())),i.injection(\"route\",\"_router\",\"router:main\"),i.register(\"service:-routing\",h.RoutingService),i.injection(\"service:-routing\",\"router\",\"router:main\"),i.register(\"resolver-for-debugging:main\",i.resolver,{instantiate:!1}),i.injection(\"container-debug-adapter:main\",\"resolver\",\"resolver-for-debugging:main\"),i.injection(\"data-adapter:main\",\"containerDebugAdapter\",\"container-debug-adapter:main\"),i.register(\"container-debug-adapter:main\",f.ContainerDebugAdapter),i.register(\"component-lookup:main\",p.ComponentLookup),(0,d.setupEngineRegistry)(o),o},resolver:null,Resolver:null}),e.default=y}),e(\"@ember/engine/instance\",[\"exports\",\"@ember/-internals/utils\",\"@ember/-internals/runtime\",\"@ember/debug\",\"@ember/error\",\"@ember/-internals/container\",\"@ember/engine/lib/engine-parent\"],function(e,n,r,t,i,o,a){\"use strict\";function s(){var e=l([\"template-compiler:main\"]);return s=function(){return e},e}function u(){var e=l([\"-bucket-cache:main\"]);return u=function(){return e},e}function l(e,t){return t=t||e.slice(0),e.raw=t,e}e.default=void 0;var c=r.Object.extend(r.RegistryProxyMixin,r.ContainerProxyMixin,{base:null,init:function(){this._super.apply(this,arguments),(0,n.guidFor)(this);var e=this.base;e||(e=this.application,this.base=e);var t=this.__registry__=new o.Registry({fallback:e.__registry__});this.__container__=t.container({owner:this}),this._booted=!1},boot:function(t){var n=this;return this._bootPromise||(this._bootPromise=new r.RSVP.Promise(function(e){return e(n._bootSync(t))})),this._bootPromise},_bootSync:function(e){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(e),this.base.runInstanceInitializers(this),this._booted=!0),this},setupRegistry:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.__container__.lookup(\"-environment:main\");this.constructor.setupRegistry(this.__registry__,e)},unregister:function(e){this.__container__.reset(e),this._super.apply(this,arguments)},buildChildEngineInstance:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=this.lookup(\"engine:\"+e);if(!n)throw new i.default(\"You attempted to mount the engine '\"+e+\"', but it is not registered with its parent.\");var r=n.buildInstance(t);return(0,a.setEngineParent)(r,this),r},cloneParentDependencies:function(){var t=this,n=(0,a.getEngineParent)(this);[\"route:basic\",\"service:-routing\",\"service:-glimmer-environment\"].forEach(function(e){return t.register(e,n.resolveRegistration(e))});var e=n.lookup(\"-environment:main\");this.register(\"-environment:main\",e,{instantiate:!1});var r=[\"router:main\",(0,o.privatize)(u()),\"-view-registry:main\",\"renderer:-\"+(e.isInteractive?\"dom\":\"inert\"),\"service:-document\",(0,o.privatize)(s())];e.isInteractive&&r.push(\"event_dispatcher:main\"),r.forEach(function(e){return t.register(e,n.lookup(e),{instantiate:!1})}),this.inject(\"view\",\"_environment\",\"-environment:main\"),this.inject(\"route\",\"_environment\",\"-environment:main\")}});c.reopenClass({setupRegistry:function(e,t){t&&(e.injection(\"view\",\"_environment\",\"-environment:main\"),e.injection(\"route\",\"_environment\",\"-environment:main\"),t.isInteractive?(e.injection(\"view\",\"renderer\",\"renderer:-dom\"),e.injection(\"component\",\"renderer\",\"renderer:-dom\")):(e.injection(\"view\",\"renderer\",\"renderer:-inert\"),e.injection(\"component\",\"renderer\",\"renderer:-inert\")))}});e.default=c}),e(\"@ember/engine/lib/engine-parent\",[\"exports\",\"@ember/-internals/utils\"],function(e,t){\"use strict\";e.getEngineParent=function(e){return e[n]},e.setEngineParent=function(e,t){e[n]=t};var n=(0,t.symbol)(\"ENGINE_PARENT\")}),e(\"@ember/error/index\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=Error;e.default=t}),e(\"@ember/instrumentation/index\",[\"exports\",\"@ember/-internals/environment\"],function(e,h){\"use strict\";e.instrument=i,e._instrumentStart=l,e.subscribe=function(e,t){for(var n,r=e.split(\".\"),i=[],o=0;o<r.length;o++)\"*\"===(n=r[o])?i.push(\"[^\\\\.]*\"):i.push(n);var a=i.join(\"\\\\.\");a+=\"(\\\\..*)?\";var s={pattern:e,regex:new RegExp(\"^\"+a+\"$\"),object:t};return f.push(s),p={},s},e.unsubscribe=function(e){for(var t=0,n=0;n<f.length;n++)f[n]===e&&(t=n);f.splice(t,1),p={}},e.reset=function(){f.length=0,p={}},e.flaggedInstrument=e.subscribers=void 0;var f=[];e.subscribers=f;var p={};var t,n,r,d=(t=\"undefined\"!=typeof window&&window.performance||{},(n=t.now||t.mozNow||t.webkitNow||t.msNow||t.oNow)?n.bind(t):Date.now);function i(e,t,n,r){var i,o,a=arguments.length<=3&&\"function\"==typeof t?(o=t,n):(i=t,o=n,r);if(0===f.length)return o.call(a);var s=i||{},u=l(e,function(){return s});return u===m?o.call(a):function(e,t,n,r){try{return e.call(r)}catch(e){throw n.exception=e}finally{t()}}(o,u,s,a)}function m(){}function l(r,e,t){if(0===f.length)return m;var i=p[r];if(0===(i=i||function(e){for(var t,n=[],r=0;r<f.length;r++)(t=f[r]).regex.test(e)&&n.push(t.object);return p[e]=n}(r)).length)return m;var o,a=e(t),s=h.ENV.STRUCTURED_PROFILE;s&&(o=r+\": \"+a.object,console.time(o));for(var u=[],n=d(),l=0;l<i.length;l++){var c=i[l];u.push(c.before(r,n,a))}return function(){for(var e=d(),t=0;t<i.length;t++){var n=i[t];\"function\"==typeof n.after&&n.after(r,e,a,u[t])}s&&console.timeEnd(o)}}e.flaggedInstrument=r,e.flaggedInstrument=r=function(e,t,n){return n()}}),e(\"@ember/modifier/index\",[\"exports\",\"@ember/-internals/glimmer\"],function(e,t){\"use strict\";Object.defineProperty(e,\"setModifierManager\",{enumerable:!0,get:function(){return t.setModifierManager}}),Object.defineProperty(e,\"capabilties\",{enumerable:!0,get:function(){return t.modifierCapabilties}})}),e(\"@ember/object/compat\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,a,t){\"use strict\";e.dependentKeyCompat=n;var s=function(e,i,t){var o=t.get;return void 0!==o&&(t.get=function(){var e,t=this,n=(0,a.tagForProperty)(this,i),r=(0,a.track)(function(){e=o.call(t)});return(0,a.update)(n,r),(0,a.consume)(r),e}),t};function n(e,t,o){if((0,a.isElementDescriptor)([e,t,o]))return s(e,t,o);o=e;function n(e,t,n,r,i){return s(e,t,o)}return(0,a.setClassicDecorator)(n),n}(0,a.setClassicDecorator)(n)}),e(\"@ember/object/computed\",[\"exports\",\"@ember/object/lib/computed/computed_macros\",\"@ember/object/lib/computed/reduce_computed_macros\"],function(e,t,n){\"use strict\";Object.defineProperty(e,\"empty\",{enumerable:!0,get:function(){return t.empty}}),Object.defineProperty(e,\"notEmpty\",{enumerable:!0,get:function(){return t.notEmpty}}),Object.defineProperty(e,\"none\",{enumerable:!0,get:function(){return t.none}}),Object.defineProperty(e,\"not\",{enumerable:!0,get:function(){return t.not}}),Object.defineProperty(e,\"bool\",{enumerable:!0,get:function(){return t.bool}}),Object.defineProperty(e,\"match\",{enumerable:!0,get:function(){return t.match}}),Object.defineProperty(e,\"equal\",{enumerable:!0,get:function(){return t.equal}}),Object.defineProperty(e,\"gt\",{enumerable:!0,get:function(){return t.gt}}),Object.defineProperty(e,\"gte\",{enumerable:!0,get:function(){return t.gte}}),Object.defineProperty(e,\"lt\",{enumerable:!0,get:function(){return t.lt}}),Object.defineProperty(e,\"lte\",{enumerable:!0,get:function(){return t.lte}}),Object.defineProperty(e,\"oneWay\",{enumerable:!0,get:function(){return t.oneWay}}),Object.defineProperty(e,\"readOnly\",{enumerable:!0,get:function(){return t.readOnly}}),Object.defineProperty(e,\"deprecatingAlias\",{enumerable:!0,get:function(){return t.deprecatingAlias}}),Object.defineProperty(e,\"and\",{enumerable:!0,get:function(){return t.and}}),Object.defineProperty(e,\"or\",{enumerable:!0,get:function(){return t.or}}),Object.defineProperty(e,\"sum\",{enumerable:!0,get:function(){return n.sum}}),Object.defineProperty(e,\"min\",{enumerable:!0,get:function(){return n.min}}),Object.defineProperty(e,\"max\",{enumerable:!0,get:function(){return n.max}}),Object.defineProperty(e,\"map\",{enumerable:!0,get:function(){return n.map}}),Object.defineProperty(e,\"sort\",{enumerable:!0,get:function(){return n.sort}}),Object.defineProperty(e,\"setDiff\",{enumerable:!0,get:function(){return n.setDiff}}),Object.defineProperty(e,\"mapBy\",{enumerable:!0,get:function(){return n.mapBy}}),Object.defineProperty(e,\"filter\",{enumerable:!0,get:function(){return n.filter}}),Object.defineProperty(e,\"filterBy\",{enumerable:!0,get:function(){return n.filterBy}}),Object.defineProperty(e,\"uniq\",{enumerable:!0,get:function(){return n.uniq}}),Object.defineProperty(e,\"uniqBy\",{enumerable:!0,get:function(){return n.uniqBy}}),Object.defineProperty(e,\"union\",{enumerable:!0,get:function(){return n.union}}),Object.defineProperty(e,\"intersect\",{enumerable:!0,get:function(){return n.intersect}}),Object.defineProperty(e,\"collect\",{enumerable:!0,get:function(){return n.collect}})}),e(\"@ember/object/index\",[\"exports\",\"@ember/debug\",\"@ember/polyfills\",\"@ember/-internals/metal\"],function(e,t,i,a){\"use strict\";var n;e.action=void 0,e.action=n;function s(e,t,n){var r;return void 0!==e.constructor&&\"function\"==typeof e.constructor.proto&&e.constructor.proto(),e.hasOwnProperty(\"actions\")||(r=e.actions,e.actions=r?(0,i.assign)({},r):{}),e.actions[t]=n,{get:function(){var e=o.get(this);void 0===e&&(e=new Map,o.set(this,e));var t=e.get(n);return void 0===t&&(t=n.bind(this),e.set(n,t)),t}}}var o=new WeakMap;e.action=n=function(e,t,n){var o;if((0,a.isElementDescriptor)([e,t,n]))return o=n.value,s(e,t,o);o=e;function r(e,t,n,r,i){return s(e,t,o)}return(0,a.setClassicDecorator)(r),r},(0,a.setClassicDecorator)(n)}),e(\"@ember/object/lib/computed/computed_macros\",[\"exports\",\"@ember/-internals/metal\",\"@ember/debug\"],function(e,o,t){\"use strict\";function n(e,i){return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=function(e){var t=[];function n(e){t.push(e)}for(var r=0;r<e.length;r++){var i=e[r];(0,o.expandProperties)(i,n)}return t}(t);return o.computed.apply(void 0,r.concat([function(){for(var e=r.length-1,t=0;t<e;t++){var n=(0,o.get)(this,r[t]);if(!i(n))return n}return(0,o.get)(this,r[e])}]))}}e.empty=function(e){return(0,o.computed)(e+\".length\",function(){return(0,o.isEmpty)((0,o.get)(this,e))})},e.notEmpty=function(e){return(0,o.computed)(e+\".length\",function(){return!(0,o.isEmpty)((0,o.get)(this,e))})},e.none=function(e){return(0,o.computed)(e,function(){return(0,o.isNone)((0,o.get)(this,e))})},e.not=function(e){return(0,o.computed)(e,function(){return!(0,o.get)(this,e)})},e.bool=function(e){return(0,o.computed)(e,function(){return Boolean((0,o.get)(this,e))})},e.match=function(t,n){return(0,o.computed)(t,function(){var e=(0,o.get)(this,t);return n.test(e)})},e.equal=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)===t})},e.gt=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)>t})},e.gte=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)>=t})},e.lt=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)<t})},e.lte=function(e,t){return(0,o.computed)(e,function(){return(0,o.get)(this,e)<=t})},e.oneWay=function(e){return(0,o.alias)(e).oneWay()},e.readOnly=function(e){return(0,o.alias)(e).readOnly()},e.deprecatingAlias=function(n,e){return(0,o.computed)(n,{get:function(e){return(0,o.get)(this,n)},set:function(e,t){return(0,o.set)(this,n,t),t}})},e.or=e.and=void 0;var r=n(0,function(e){return e});e.and=r;var i=n(0,function(e){return!e});e.or=i}),e(\"@ember/object/lib/computed/reduce_computed_macros\",[\"exports\",\"@ember/debug\",\"@ember/-internals/metal\",\"@ember/-internals/runtime\"],function(e,t,p,d){\"use strict\";function n(t,n,r){return(0,p.computed)(t+\".[]\",function(){var e=(0,p.get)(this,t);return null===e||\"object\"!=typeof e?r:e.reduce(n,r,this)}).readOnly()}function i(e,t,n){var r;return/@each/.test(e)?r=e.replace(/\\.@each.*$/,\"\"):(r=e,e+=\".[]\"),p.computed.apply(void 0,[e].concat(t,[function(){var e=(0,p.get)(this,r);return(0,d.isArray)(e)?(0,d.A)(n.call(this,e)):(0,d.A)()}])).readOnly()}function r(e,t){var n=e.map(function(e){return e+\".[]\"});return p.computed.apply(void 0,n.concat([function(){return(0,d.A)(t.call(this,e))}])).readOnly()}function o(e,t,n){return void 0===n&&\"function\"==typeof t&&(n=t,t=[]),i(e,t,function(e){return e.map(n,this)})}function a(e,t,n){return void 0===n&&\"function\"==typeof t&&(n=t,t=[]),i(e,t,function(e){return e.filter(n,this)})}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(e){var n=this,r=(0,d.A)(),i=new Set;return e.forEach(function(e){var t=(0,p.get)(n,e);(0,d.isArray)(t)&&t.forEach(function(e){i.has(e)||(i.add(e),r.push(e))})}),r})}function m(e){return e.map(function(e){var t=e.split(\":\");return[t[0],t[1]||\"asc\"]})}function v(e,s){return(0,d.A)(e.slice().sort(function(e,t){for(var n=0;n<s.length;n++){var r=s[n],i=r[0],o=r[1],a=(0,d.compare)((0,p.get)(e,i),(0,p.get)(t,i));if(0!==a)return\"desc\"===o?-1*a:a}return 0}))}e.sum=function(e){return n(e,function(e,t){return e+t},0)},e.max=function(e){return n(e,function(e,t){return Math.max(e,t)},-1/0)},e.min=function(e){return n(e,function(e,t){return Math.min(e,t)},1/0)},e.map=o,e.mapBy=function(e,t){return o(e+\".@each.\"+t,function(e){return(0,p.get)(e,t)})},e.filter=a,e.filterBy=function(e,t,n){var r;r=2===arguments.length?function(e){return(0,p.get)(e,t)}:function(e){return(0,p.get)(e,t)===n};return a(e+\".@each.\"+t,r)},e.uniq=s,e.uniqBy=function(t,n){return(0,p.computed)(t+\".[]\",function(){var e=(0,p.get)(this,t);return(0,d.isArray)(e)?(0,d.uniqBy)(e,n):(0,d.A)()}).readOnly()},e.intersect=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(e){var n=this,o=e.map(function(e){var t=(0,p.get)(n,e);return(0,d.isArray)(t)?t:[]}),t=o.pop().filter(function(e){for(var t=0;t<o.length;t++){for(var n=!1,r=o[t],i=0;i<r.length;i++)if(r[i]===e){n=!0;break}if(!1===n)return!1}return!0});return(0,d.A)(t)})},e.setDiff=function(n,r){return(0,p.computed)(n+\".[]\",r+\".[]\",function(){var e=this.get(n),t=this.get(r);return(0,d.isArray)(e)?(0,d.isArray)(t)?e.filter(function(e){return-1===t.indexOf(e)}):(0,d.A)(e):(0,d.A)()}).readOnly()},e.collect=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r(t,function(){var n=this,e=t.map(function(e){var t=(0,p.get)(n,e);return void 0===t?null:t});return(0,d.A)(e)})},e.sort=function(e,t,n){{}void 0!==n||Array.isArray(t)||(n=t,t=[]);return\"function\"==typeof n?function(e,t,r){return i(e,t,function(e){var n=this;return e.slice().sort(function(e,t){return r.call(n,e,t)})})}(e,t,n):function(l,c){var h=new WeakMap,f=new WeakMap;{return(0,p.computed)(c+\".[]\",function(e){var r=this,t=(0,p.get)(this,c),n=h.get(this);f.has(this)||f.set(this,function(){(0,p.notifyPropertyChange)(this,e)});var i=f.get(this);void 0!==n&&n.forEach(function(e){return(0,p.removeObserver)(r,e,i)});var o,a=\"@this\"===l,s=m(t),n=0===s.length?(o=a?\"[]\":l+\".[]\",(0,p.addObserver)(this,o,i),[o]):s.map(function(e){var t=e[0],n=a?\"@each.\"+t:l+\".@each.\"+t;return(0,p.addObserver)(r,n,i),n});h.set(this,n);var u=a?this:(0,p.get)(this,l);return(0,d.isArray)(u)?0===s.length?(0,d.A)(u.slice()):v(u,s):(0,d.A)()}).readOnly()}}(e,n)},e.union=void 0,e.union=s}),e(\"@ember/polyfills/index\",[\"exports\",\"@ember/deprecated-features\",\"@ember/polyfills/lib/merge\",\"@ember/polyfills/lib/assign\",\"@ember/polyfills/lib/weak_set\"],function(e,t,n,r,i){\"use strict\";Object.defineProperty(e,\"assign\",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,\"assignPolyfill\",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(e,\"_WeakSet\",{enumerable:!0,get:function(){return i.default}}),e.merge=void 0;var o=t.MERGE?n.default:void 0;e.merge=o}),e(\"@ember/polyfills/lib/assign\",[\"exports\"],function(e){\"use strict\";function t(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n)for(var r=Object.keys(n),i=0;i<r.length;i++){var o=r[i];e[o]=n[o]}}return e}e.assign=t,e.default=void 0;var n=Object.assign||t;e.default=n}),e(\"@ember/polyfills/lib/merge\",[\"exports\",\"@ember/debug\"],function(e,t){\"use strict\";e.default=function(e,t){if(null===t||\"object\"!=typeof t)return e;for(var n,r=Object.keys(t),i=0;i<r.length;i++)n=r[i],e[n]=t[n];return e}}),e(\"@ember/polyfills/lib/weak_set\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=\"function\"==typeof WeakSet?WeakSet:function(){function e(){this._map=new WeakMap}var t=e.prototype;return t.add=function(e){return this._map.set(e,!0),this},t.delete=function(e){return this._map.delete(e)},t.has=function(e){return this._map.has(e)},e}();e.default=t}),e(\"@ember/runloop/index\",[\"exports\",\"@ember/debug\",\"@ember/-internals/error-handling\",\"@ember/-internals/metal\",\"backburner\"],function(e,t,n,r,i){\"use strict\";e.getCurrentRunLoop=function(){return a},e.run=c,e.join=f,e.begin=function(){l.begin()},e.end=function(){l.end()},e.schedule=function(){return l.schedule.apply(l,arguments)},e.hasScheduledTimers=function(){return l.hasTimers()},e.cancelTimers=function(){l.cancelTimers()},e.later=function(){return l.later.apply(l,arguments)},e.once=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.unshift(\"actions\"),l.scheduleOnce.apply(l,t)},e.scheduleOnce=function(){return l.scheduleOnce.apply(l,arguments)},e.next=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.push(1),l.later.apply(l,t)},e.cancel=function(e){return l.cancel(e)},e.debounce=function(){return l.debounce.apply(l,arguments)},e.throttle=function(){return l.throttle.apply(l,arguments)},e.bind=e._globalsRun=e.backburner=e.queues=e._rsvpErrorQueue=void 0;var o,a=null;var s=(\"\"+Math.random()+Date.now()).replace(\".\",\"\"),u=[\"actions\",\"routerTransitions\",\"render\",\"afterRender\",\"destroy\",e._rsvpErrorQueue=s];e.queues=u;var l=new i.default(u,{defaultQueue:\"actions\",onBegin:function(e){a=e},onEnd:function(e,t){a=t},onErrorTarget:n.onErrorTarget,onErrorMethod:\"onerror\",flush:o});function c(){return l.run.apply(l,arguments)}e.backburner=l;var h=c.bind(null);function f(){return l.join.apply(l,arguments)}e._globalsRun=h;e.bind=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f.apply(void 0,r.concat(t))}}}),e(\"@ember/service/index\",[\"exports\",\"@ember/-internals/runtime\",\"@ember/-internals/metal\"],function(e,t,n){\"use strict\";e.inject=function(){return n.inject.apply(void 0,[\"service\"].concat(Array.prototype.slice.call(arguments)))},e.default=void 0;var r=t.FrameworkObject.extend();r.reopenClass({isServiceFactory:!0}),(0,t.setFrameworkClass)(r),e.default=r}),e(\"@ember/string/index\",[\"exports\",\"@ember/string/lib/string_registry\",\"@ember/-internals/environment\",\"@ember/-internals/utils\"],function(e,n,t,r){\"use strict\";e.loc=_,e.w=w,e.decamelize=E,e.dasherize=T,e.camelize=C,e.classify=R,e.underscore=k,e.capitalize=x,Object.defineProperty(e,\"_getStrings\",{enumerable:!0,get:function(){return n.getStrings}}),Object.defineProperty(e,\"_setStrings\",{enumerable:!0,get:function(){return n.setStrings}});var i=/[ _]/g,o=new r.Cache(1e3,function(e){return E(e).replace(i,\"-\")}),a=/(\\-|\\_|\\.|\\s)+(.)?/g,s=/(^|\\/)([A-Z])/g,u=new r.Cache(1e3,function(e){return e.replace(a,function(e,t,n){return n?n.toUpperCase():\"\"}).replace(s,function(e){return e.toLowerCase()})}),l=/^(\\-|_)+(.)?/,c=/(.)(\\-|\\_|\\.|\\s)+(.)?/g,h=/(^|\\/|\\.)([a-z])/g,f=new r.Cache(1e3,function(e){for(var t=function(e,t,n){return n?\"_\"+n.toUpperCase():\"\"},n=function(e,t,n,r){return t+(r?r.toUpperCase():\"\")},r=e.split(\"/\"),i=0;i<r.length;i++)r[i]=r[i].replace(l,t).replace(c,n);return r.join(\"/\").replace(h,function(e){return e.toUpperCase()})}),p=/([a-z\\d])([A-Z]+)/g,d=/\\-|\\s+/g,m=new r.Cache(1e3,function(e){return e.replace(p,\"$1_$2\").replace(d,\"_\").toLowerCase()}),v=/(^|\\/)([a-z\\u00C0-\\u024F])/g,g=new r.Cache(1e3,function(e){return e.replace(v,function(e){return e.toUpperCase()})}),y=/([a-z\\d])([A-Z])/g,b=new r.Cache(1e3,function(e){return e.replace(y,\"$1_$2\").toLowerCase()});function _(e,t){return(!Array.isArray(t)||2<arguments.length)&&(t=Array.prototype.slice.call(arguments,1)),e=(0,n.getString)(e)||e,i=t,o=0,e.replace(/%@([0-9]+)?/g,function(e,t){var n=t?parseInt(t,10)-1:o++,r=n<i.length?i[n]:void 0;return\"string\"==typeof r?r:null===r?\"(null)\":void 0===r?\"\":String(r)});var i,o}function w(e){return e.split(/\\s+/)}function E(e){return b.get(e)}function T(e){return o.get(e)}function C(e){return u.get(e)}function R(e){return f.get(e)}function k(e){return m.get(e)}function x(e){return g.get(e)}t.ENV.EXTEND_PROTOTYPES.String&&Object.defineProperties(String.prototype,{w:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return w(this)}},loc:{configurable:!0,enumerable:!1,writeable:!0,value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return _(this,t)}},camelize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return C(this)}},decamelize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return E(this)}},dasherize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return T(this)}},underscore:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return k(this)}},classify:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return R(this)}},capitalize:{configurable:!0,enumerable:!1,writeable:!0,value:function(){return x(this)}}})}),e(\"@ember/string/lib/string_registry\",[\"exports\"],function(e){\"use strict\";e.setStrings=function(e){t=e},e.getStrings=function(){return t},e.getString=function(e){return t[e]};var t={}}),e(\"@glimmer/encoder\",[\"exports\"],function(e){\"use strict\";e.InstructionEncoder=void 0;var t=function(){function e(e){this.buffer=e,this.typePos=0,this.size=0}var t=e.prototype;return t.encode=function(e,t){if(255<e)throw new Error(\"Opcode type over 8-bits. Got \"+e+\".\");this.buffer.push(e|t|arguments.length-2<<8),this.typePos=this.buffer.length-1;for(var n=2;n<arguments.length;n++){var r=arguments[n];if(\"number\"==typeof r&&4294967295<r)throw new Error(\"Operand over 32-bits. Got \"+r+\".\");this.buffer.push(r)}this.size=this.buffer.length},t.patch=function(e,t){if(-1!==this.buffer[e+1])throw new Error(\"Trying to patch operand in populated slot instead of a reserved slot.\");this.buffer[e+1]=t},t.patchWith=function(e,t,n){if(-1!==this.buffer[e+1])throw new Error(\"Trying to patch operand in populated slot instead of a reserved slot.\");this.buffer[e+1]=t,this.buffer[e+2]=n},e}();e.InstructionEncoder=t}),e(\"@glimmer/low-level\",[\"exports\"],function(e){\"use strict\";e.Stack=e.Storage=void 0;var t=function(){function e(){this.array=[],this.next=0}var t=e.prototype;return t.add=function(e){var t,n=this.next,r=this.array;return n===r.length?this.next++:(t=r[n],this.next=t),this.array[n]=e,n},t.deref=function(e){return this.array[e]},t.drop=function(e){this.array[e]=this.next,this.next=e},e}();e.Storage=t;var n=function(){function n(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this.vec=e}var e=n.prototype;return e.clone=function(){return new n(this.vec.slice())},e.sliceFrom=function(e){return new n(this.vec.slice(e))},e.slice=function(e,t){return new n(this.vec.slice(e,t))},e.copy=function(e,t){this.vec[t]=this.vec[e]},e.writeRaw=function(e,t){this.vec[e]=t},e.getRaw=function(e){return this.vec[e]},e.reset=function(){this.vec.length=0},e.len=function(){return this.vec.length},n}();e.Stack=n}),e(\"@glimmer/node\",[\"exports\",\"ember-babel\",\"@glimmer/runtime\"],function(e,r,i){\"use strict\";e.serializeBuilder=function(e,t){return n.forInitialRender(e,t)},e.NodeDOMTreeConstruction=void 0;var t=function(t){function e(e){return t.call(this,e)||this}(0,r.inheritsLoose)(e,t);var n=e.prototype;return n.setupUselessElement=function(){},n.createElement=function(e){return this.document.createElement(e)},n.setAttribute=function(e,t,n){e.setAttribute(t,n)},e}(i.DOMTreeConstruction);e.NodeDOMTreeConstruction=t;var n=function(a){function e(){var e=a.apply(this,arguments)||this;return e.serializeBlockDepth=0,e}(0,r.inheritsLoose)(e,a);var t=e.prototype;return t.__openBlock=function(){var e=this.serializeBlockDepth++;this.__appendComment(\"%+b:\"+e+\"%\"),a.prototype.__openBlock.call(this)},t.__closeBlock=function(){a.prototype.__closeBlock.call(this),this.__appendComment(\"%-b:\"+--this.serializeBlockDepth+\"%\")},t.__appendHTML=function(e){var t,n=this.__appendComment(\"%glmr%\");\"TABLE\"!==this.element.tagName||-1<(t=e.indexOf(\"<\"))&&\"tr\"===e.slice(t+1,t+3)&&(e=\"<tbody>\"+e+\"</tbody>\"),\"\"===e?this.__appendComment(\"% %\"):a.prototype.__appendHTML.call(this,e);var r=this.__appendComment(\"%glmr%\");return new i.ConcreteBounds(this.element,n,r)},t.__appendText=function(e){var t,n,r,i=(n=(t=this).element,null===(r=t.nextSibling)?n.lastChild:r.previousSibling);return\"\"===e?this.__appendComment(\"% %\"):(i&&3===i.nodeType&&this.__appendComment(\"%|%\"),a.prototype.__appendText.call(this,e))},t.closeElement=function(){return!0===this.element.needsExtraClose&&(this.element.needsExtraClose=!1,a.prototype.closeElement.call(this)),a.prototype.closeElement.call(this)},t.openElement=function(e){return\"tr\"===e&&\"TBODY\"!==this.element.tagName&&(this.openElement(\"tbody\"),this.constructing.needsExtraClose=!0,this.flushElement(null)),a.prototype.openElement.call(this,e)},t.pushRemoteElement=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:null,i=this.dom,o=i.createElement(\"script\");o.setAttribute(\"glmr\",t),i.insertBefore(e,o,r),a.prototype.pushRemoteElement.call(this,e,t,r)},e}(i.NewElementBuilder)}),e(\"@glimmer/opcode-compiler\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"@glimmer/util\",\"@glimmer/vm\",\"@glimmer/wire-format\",\"@glimmer/encoder\",\"@glimmer/program\"],function(e,n,i,E,T,t,o,a){\"use strict\";e.compile=y,e.templateFactory=function(e){var r,t=e.id,i=e.meta,o=e.block,a=t||\"client-\"+L++;return{id:a,meta:i,create:function(e,t){var n=t?(0,E.assign)({},t,i):i;return r=r||JSON.parse(o),new M(e,{id:a,block:r,referrer:n})}}},e.debug=function(r,i,e){for(var t=arguments.length,o=new Array(3<t?t-3:0),n=3;n<t;n++)o[n-3]=arguments[n];var a=null;throw(0,E.unreachable)(\"Missing Opcode Metadata for \"+e);var s=(0,E.dict)();return a.ops.forEach(function(e,t){var n=o[t];switch(e.type){case\"to\":s[e.name]=r+n;break;case\"i32\":case\"symbol\":case\"block\":s[e.name]=n;break;case\"handle\":s[e.name]=i.resolveHandle(n);break;case\"str\":s[e.name]=i.getString(n);break;case\"option-str\":s[e.name]=n?i.getString(n):null;break;case\"str-array\":s[e.name]=i.getStringArray(n);break;case\"array\":s[e.name]=i.getArray(n);break;case\"bool\":s[e.name]=!!n;break;case\"primitive\":s[e.name]=function(e,t){var n=e>>3;switch(7&e){case 0:return n;case 1:return t.getNumber(n);case 2:return t.getString(n);case 3:switch(n){case 0:return!1;case 1:return!0;case 2:return null;case 3:return}case 4:case 5:return t.getNumber(n);default:throw(0,E.unreachable)()}}(n,i);break;case\"register\":s[e.name]=T.Register[n];break;case\"serializable\":s[e.name]=i.getSerializable(n);break;case\"lazy-constant\":s[e.name]=i.getOther(n)}}),[a.name,s]},e.debugSlice=function(e,t,n){},e.logOpcode=function(e,t){var n=e;{var r;t&&(r=Object.keys(t).map(function(e){return\" \"+e+\"=\"+void t[e]}).join(\"\"),n+=r)}return\"(\"+n+\")\"},e.PLACEHOLDER_HANDLE=e.WrappedBuilder=e.PartialDefinition=e.StdOpcodeBuilder=e.OpcodeBuilder=e.EagerOpcodeBuilder=e.LazyOpcodeBuilder=e.CompilableProgram=e.CompilableBlock=e.debugCompiler=e.AbstractCompiler=e.LazyCompiler=e.Macros=e.ATTRS_BLOCK=void 0;var s,r;e.PLACEHOLDER_HANDLE=-1,(r=s=s||{})[r.OpenComponentElement=0]=\"OpenComponentElement\",r[r.DidCreateElement=1]=\"DidCreateElement\",r[r.DidRenderLayout=2]=\"DidRenderLayout\",r[r.Debugger=3]=\"Debugger\";var l=t.Ops,C=\"&attrs\";e.ATTRS_BLOCK=C;var u,c,h=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;this.offset=e,this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.compile=function(e,t){var n=e[this.offset],r=this.names[n];(0,this.funcs[r])(e,t)},e}();function f(e,t,n){var r=e[1],i=e[2],o=e[3];n.expr(i),o?n.componentAttr(r,o,t):n.componentAttr(r,null,t)}function p(e,t,n){var r=e[1],i=e[2],o=e[3];n.expr(i),o?n.dynamicAttr(r,o,t):n.dynamicAttr(r,null,t)}e.Macros=function(){var e=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new d,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new m;return e.add(\"if\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #if requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){i.invokeStaticBlock(n)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add(\"unless\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #unless requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.toBoolean(),1},ifTrue:function(){r&&i.invokeStaticBlock(r)},ifFalse:function(){i.invokeStaticBlock(n)}})}),e.add(\"with\",function(e,t,n,r,i){if(!e||1!==e.length)throw new Error(\"SYNTAX ERROR: #with requires a single argument\");i.replayableIf({args:function(){return i.expr(e[0]),i.dup(),i.toBoolean(),2},ifTrue:function(){i.invokeStaticBlock(n,1)},ifFalse:function(){r&&i.invokeStaticBlock(r)}})}),e.add(\"each\",function(e,t,n,r,i){i.replayable({args:function(){return t&&\"key\"===t[0][0]?i.expr(t[1][0]):i.pushPrimitiveReference(null),i.expr(e[0]),2},body:function(){i.putIterator(),i.jumpUnless(\"ELSE\"),i.pushFrame(),i.dup(T.Register.fp,1),i.returnTo(\"ITER\"),i.enterList(\"BODY\"),i.label(\"ITER\"),i.iterate(\"BREAK\"),i.label(\"BODY\"),i.invokeStaticBlock(n,2),i.pop(2),i.jump(\"FINALLY\"),i.label(\"BREAK\"),i.exitList(),i.popFrame(),i.jump(\"FINALLY\"),i.label(\"ELSE\"),r&&i.invokeStaticBlock(r)}})}),e.add(\"in-element\",function(i,o,e,t,a){if(!i||1!==i.length)throw new Error(\"SYNTAX ERROR: #in-element requires a single argument\");a.replayableIf({args:function(){for(var e=o[0],t=o[1],n=0;n<e.length;n++){var r=e[n];if(\"nextSibling\"!==r&&\"guid\"!==r)throw new Error(\"SYNTAX ERROR: #in-element does not take a `\"+e[0]+\"` option\");a.expr(t[n])}return a.expr(i[0]),a.dup(),4},ifTrue:function(){a.pushRemoteElement(),a.invokeStaticBlock(e),a.popRemoteElement()}})}),e.add(\"-with-dynamic-vars\",function(e,t,n,r,i){var o,a;t?(o=t[0],a=t[1],i.compileParams(a),i.pushDynamicScope(),i.bindDynamicScope(o),i.invokeStaticBlock(n),i.popDynamicScope()):i.invokeStaticBlock(n)}),e.add(\"component\",function(e,t,n,r,i){if(\"string\"==typeof e[0]&&i.staticComponentHelper(e[0],t,n))return;var o=e[0],a=e.slice(1);i.dynamicComponent(o,null,a,t,!0,n,r)}),t.add(\"component\",function(e,t,n,r){var i=t&&t[0];if(\"string\"==typeof i&&r.staticComponentHelper(i,n,null))return!0;var o=t[0],a=t.slice(1);return r.dynamicComponent(o,null,a,n,!0,null,null),!0}),{blocks:e,inlines:t}}(),t=e.blocks,n=e.inlines;this.blocks=t,this.inlines=n};var d=function(){function e(){this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.addMissing=function(e){this.missing=e},t.compile=function(e,t,n,r,i,o){var a=this.names[e];void 0===a?(0,this.missing)(e,t,n,r,i,o):(0,this.funcs[a])(t,n,r,i,o)},e}(),m=function(){function e(){this.names=(0,E.dict)(),this.funcs=[]}var t=e.prototype;return t.add=function(e,t){this.funcs.push(t),this.names[e]=this.funcs.length-1},t.addMissing=function(e){this.missing=e},t.compile=function(e,t){var n,r,i,o=e[1];if(!Array.isArray(o))return[\"expr\",o];if(o[0]===l.Helper)n=o[1],r=o[2],i=o[3];else{if(o[0]!==l.Unknown)return[\"expr\",o];n=o[1],r=i=null}var a=this.names[n];if(void 0===a&&this.missing){var s=(0,this.missing)(n,r,i,t);return!1===s?[\"expr\",o]:s}if(void 0===a)return[\"expr\",o];var u=(0,this.funcs[a])(n,r,i,t);return!1===u?[\"expr\",o]:u},e}();var v=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;this.compiled=-1;var e=this.layout.block.statements;return this.compiled=this.compiler.add(e,this.layout)},(0,i.createClass)(e,[{key:\"symbolTable\",get:function(){return this.layout.block}}]),e}();e.CompilableProgram=v;var g=function(){function e(e,t){this.compiler=e,this.parsed=t,this.compiled=null}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;this.compiled=-1;var e=this.parsed,t=e.block.statements,n=e.containingLayout;return this.compiled=this.compiler.add(t,n)},(0,i.createClass)(e,[{key:\"symbolTable\",get:function(){return this.parsed.block}}]),e}();function y(e,t,n){for(var r=function(){if(u)return u;var e=u=new h;e.add(l.Text,function(e,t){t.text(e[1])}),e.add(l.Comment,function(e,t){t.comment(e[1])}),e.add(l.CloseElement,function(e,t){t.closeElement()}),e.add(l.FlushElement,function(e,t){t.flushElement()}),e.add(l.Modifier,function(e,t){var n=t.referrer,r=e[1],i=e[2],o=e[3],a=t.compiler.resolveModifier(r,n);if(null===a)throw new Error(\"Compile Error \"+r+\" is not a modifier: Helpers may not be used in the element form.\");t.modifier(a,i,o)}),e.add(l.StaticAttr,function(e,t){var n=e[1],r=e[2],i=e[3];t.staticAttr(n,i,r)}),e.add(l.DynamicAttr,function(e,t){p(e,!1,t)}),e.add(l.ComponentAttr,function(e,t){f(e,!1,t)}),e.add(l.TrustingAttr,function(e,t){p(e,!0,t)}),e.add(l.TrustingComponentAttr,function(e,t){f(e,!0,t)}),e.add(l.OpenElement,function(e,t){var n=e[1];e[2]||t.putComponentOperations(),t.openPrimitiveElement(n)}),e.add(l.DynamicComponent,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=t.template(o),s=null;0<r.length&&(s=t.inlineBlock({statements:r,parameters:E.EMPTY_ARRAY})),t.dynamicComponent(n,s,null,i,!1,a,null)}),e.add(l.Component,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=t.referrer,s=t.compiler.resolveLayoutForTag(n,a),u=s.handle,l=s.capabilities,c=s.compilable;if(null===u||null===l)throw new Error(\"Compile Error: Cannot find component \"+n);var h=null;0<r.length&&(h=t.inlineBlock({statements:r,parameters:E.EMPTY_ARRAY}));var f=t.template(o);c?(t.pushComponentDefinition(u),t.invokeStaticComponent(l,c,h,null,i,!1,f&&f)):(t.pushComponentDefinition(u),t.invokeComponent(l,h,null,i,!1,f&&f))}),e.add(l.Partial,function(e,t){var n=e[1],r=e[2],i=t.referrer;t.replayableIf({args:function(){return t.expr(n),t.dup(),2},ifTrue:function(){t.invokePartial(i,t.evalSymbols(),r),t.popScope(),t.popFrame()}})}),e.add(l.Yield,function(e,t){var n=e[1],r=e[2];t.yield(n,r)}),e.add(l.AttrSplat,function(e,t){var n=e[1];t.yield(n,[])}),e.add(l.Debugger,function(e,t){var n=e[1];t.debugger(t.evalSymbols(),n)}),e.add(l.ClientSideStatement,function(e,t){n.compile(e,t)}),e.add(l.Append,function(e,t){var n=e[1],r=e[2];!0!==(t.compileInline(e)||n)&&t.guardedAppend(n,r)}),e.add(l.Block,function(e,t){var n=e[1],r=e[2],i=e[3],o=e[4],a=e[5],s=t.template(o),u=t.template(a),l=s&&s,c=u&&u;t.compileBlock(n,r,i,l,c)});var n=new h(1);return n.add(s.OpenComponentElement,function(e,t){t.putComponentOperations(),t.openPrimitiveElement(e[2])}),n.add(s.DidCreateElement,function(e,t){t.didCreateElement(T.Register.s0)}),n.add(s.Debugger,function(){}),n.add(s.DidRenderLayout,function(e,t){t.didRenderLayout(T.Register.s0)}),e}(),i=0;i<e.length;i++)r.compile(e[i],t);return t.commit()}e.CompilableBlock=g;var b=function(){function t(e,t,n){this.main=e,this.trustingGuardedAppend=t,this.cautiousGuardedAppend=n}return t.compile=function(e){return new t(this.std(e,function(e){return e.main()}),this.std(e,function(e){return e.stdAppend(!0)}),this.std(e,function(e){return e.stdAppend(!1)}))},t.std=function(e,t){return x.build(e,t)},t.prototype.getAppend=function(e){return e?this.trustingGuardedAppend:this.cautiousGuardedAppend},t}(),_=function(){function e(e,t,n){this.macros=e,this.program=t,this.resolver=n,this.initialize()}var t=e.prototype;return t.initialize=function(){this.stdLib=b.compile(this)},t.compileInline=function(e,t){return this.macros.inlines.compile(e,t)},t.compileBlock=function(e,t,n,r,i,o){this.macros.blocks.compile(e,t,n,r,i,o)},t.add=function(e,t){return y(e,this.builderFor(t))},t.commit=function(e,t){for(var n=this.program.heap,r=n.malloc(),i=0;i<t.length;i++){var o=t[i];\"function\"==typeof o?n.pushPlaceholder(o):n.push(o)}return n.finishMalloc(r,e),r},t.resolveLayoutForTag=function(e,t){var n=this.resolver.lookupComponentDefinition(e,t);return null===n?{handle:null,capabilities:null,compilable:null}:this.resolveLayoutForHandle(n)},t.resolveLayoutForHandle=function(e){var t=this.resolver,n=t.getCapabilities(e),r=null;return n.dynamicLayout||(r=t.getLayout(e)),{handle:e,capabilities:n,compilable:r}},t.resolveModifier=function(e,t){return this.resolver.lookupModifier(e,t)},t.resolveHelper=function(e,t){return this.resolver.lookupHelper(e,t)},(0,i.createClass)(e,[{key:\"constants\",get:function(){return this.program.constants}}]),e}();e.AbstractCompiler=_,e.debugCompiler=void 0;var w=function(){function e(e,t){this.compiler=e,this.layout=t,this.compiled=null;var n=t.block,r=n.symbols.slice(),i=r.indexOf(C);this.attrsBlockNumber=-1===i?r.push(C):i+1,this.symbolTable={hasEval:n.hasEval,symbols:r}}return e.prototype.compile=function(){if(null!==this.compiled)return this.compiled;var e,t=this.compiler,n=this.layout,r=t.builderFor(n);r.startLabels(),r.fetch(T.Register.s1),r.getComponentTagName(T.Register.s0),r.primitiveReference(),r.dup(),r.load(T.Register.s1),r.jumpUnless(\"BODY\"),r.fetch(T.Register.s1),r.putComponentOperations(),r.openDynamicElement(),r.didCreateElement(T.Register.s0),r.yield(this.attrsBlockNumber,[]),r.flushElement(),r.label(\"BODY\"),r.invokeStaticBlock(new g(t,{block:{statements:(e=n).block.statements,parameters:E.EMPTY_ARRAY},containingLayout:e})),r.fetch(T.Register.s1),r.jumpUnless(\"END\"),r.closeElement(),r.label(\"END\"),r.load(T.Register.s1),r.stopLabels();var i=r.commit();return this.compiled=i},e}();e.WrappedBuilder=w;var R=function(){function e(e){this.builder=e}return e.prototype.static=function(e,t){var n,r,i,o=t[0],a=t[1],s=t[2],u=t[3],l=this.builder;null!==e&&(r=(n=l.compiler.resolveLayoutForHandle(e)).capabilities,(i=n.compilable)?(l.pushComponentDefinition(e),l.invokeStaticComponent(r,i,null,o,a,!1,s,u)):(l.pushComponentDefinition(e),l.invokeComponent(r,null,o,a,!1,s,u)))},e}(),k=function(){function e(){this.labels=(0,E.dict)(),this.targets=[]}var t=e.prototype;return t.label=function(e,t){this.labels[e]=t},t.target=function(e,t){this.targets.push({at:e,target:t})},t.patch=function(e){for(var t=this.targets,n=this.labels,r=0;r<t.length;r++){var i=t[r],o=i.at,a=n[i.target]-o;e.patch(o,a)}},e}(),x=function(){function r(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;this.size=t,this.encoder=new o.InstructionEncoder([]),this.labelsStack=new E.Stack,this.compiler=e}r.build=function(e,t){var n=new r(e);return t(n),n.commit()};var e=r.prototype;return e.push=function(e,t,n,r){switch(arguments.length){case 1:return this.encoder.encode(e,0);case 2:return this.encoder.encode(e,0,t);case 3:return this.encoder.encode(e,0,t,n);default:return this.encoder.encode(e,0,t,n,r)}},e.pushMachine=function(e,t,n,r){switch(arguments.length){case 1:return this.encoder.encode(e,1024);case 2:return this.encoder.encode(e,1024,t);case 3:return this.encoder.encode(e,1024,t,n);default:return this.encoder.encode(e,1024,t,n,r)}},e.commit=function(){return this.pushMachine(24),this.compiler.commit(this.size,this.encoder.buffer)},e.reserve=function(e){this.encoder.encode(e,0,-1)},e.reserveWithOperand=function(e,t){this.encoder.encode(e,0,-1,t)},e.reserveMachine=function(e){this.encoder.encode(e,1024,-1)},e.main=function(){this.push(68,T.Register.s0),this.invokePreparedComponent(!1,!1,!0)},e.appendHTML=function(){this.push(28)},e.appendSafeHTML=function(){this.push(29)},e.appendDocumentFragment=function(){this.push(30)},e.appendNode=function(){this.push(31)},e.appendText=function(){this.push(32)},e.beginComponentTransaction=function(){this.push(91)},e.commitComponentTransaction=function(){this.push(92)},e.pushDynamicScope=function(){this.push(44)},e.popDynamicScope=function(){this.push(45)},e.pushRemoteElement=function(){this.push(41)},e.popRemoteElement=function(){this.push(42)},e.pushRootScope=function(e,t){this.push(20,e,t?1:0)},e.pushVirtualRootScope=function(e){this.push(21,e)},e.pushChildScope=function(){this.push(22)},e.popScope=function(){this.push(23)},e.prepareArgs=function(e){this.push(79,e)},e.createComponent=function(e,t){var n=0|t;this.push(81,n,e)},e.registerComponentDestructor=function(e){this.push(82,e)},e.putComponentOperations=function(){this.push(83)},e.getComponentSelf=function(e){this.push(84,e)},e.getComponentTagName=function(e){this.push(85,e)},e.getComponentLayout=function(e){this.push(86,e)},e.setupForEval=function(e){this.push(87,e)},e.invokeComponentLayout=function(e){this.push(90,e)},e.didCreateElement=function(e){this.push(93,e)},e.didRenderLayout=function(e){this.push(94,e)},e.pushFrame=function(){this.pushMachine(57)},e.popFrame=function(){this.pushMachine(58)},e.pushSmallFrame=function(){this.pushMachine(59)},e.popSmallFrame=function(){this.pushMachine(60)},e.invokeVirtual=function(){this.pushMachine(49)},e.invokeYield=function(){this.push(51)},e.toBoolean=function(){this.push(63)},e.invokePreparedComponent=function(e,t,n,r){var i=3<arguments.length&&void 0!==r?r:null;this.beginComponentTransaction(),this.pushDynamicScope(),this.createComponent(T.Register.s0,e),i&&i(),this.registerComponentDestructor(T.Register.s0),this.getComponentSelf(T.Register.s0),this.pushVirtualRootScope(T.Register.s0),this.setVariable(0),this.setupForEval(T.Register.s0),n&&this.setNamedVariables(T.Register.s0),t&&this.setBlocks(T.Register.s0),this.pop(),this.invokeComponentLayout(T.Register.s0),this.didRenderLayout(T.Register.s0),this.popFrame(),this.popScope(),this.popDynamicScope(),this.commitComponentTransaction()},e.compileInline=function(e){return this.compiler.compileInline(e,this)},e.compileBlock=function(e,t,n,r,i){this.compiler.compileBlock(e,t,n,r,i,this)},e.label=function(e){this.labels.label(e,this.nextPos)},e.startLabels=function(){this.labelsStack.push(new k)},e.stopLabels=function(){this.labelsStack.pop().patch(this.encoder)},e.pushCurriedComponent=function(){this.push(74)},e.pushDynamicComponentInstance=function(){this.push(73)},e.openDynamicElement=function(){this.push(34)},e.flushElement=function(){this.push(38)},e.closeElement=function(){this.push(39)},e.putIterator=function(){this.push(66)},e.enterList=function(e){this.reserve(64),this.labels.target(this.pos,e)},e.exitList=function(){this.push(65)},e.iterate=function(e){this.reserve(67),this.labels.target(this.pos,e)},e.setNamedVariables=function(e){this.push(2,e)},e.setBlocks=function(e){this.push(3,e)},e.setVariable=function(e){this.push(4,e)},e.setBlock=function(e){this.push(5,e)},e.getVariable=function(e){this.push(6,e)},e.getBlock=function(e){this.push(8,e)},e.hasBlock=function(e){this.push(9,e)},e.concat=function(e){this.push(11,e)},e.load=function(e){this.push(18,e)},e.fetch=function(e){this.push(19,e)},e.dup=function(e,t){var n=0<arguments.length&&void 0!==e?e:T.Register.sp,r=1<arguments.length&&void 0!==t?t:0;return this.push(16,n,r)},e.pop=function(e){var t=0<arguments.length&&void 0!==e?e:1;return this.push(17,t)},e.returnTo=function(e){this.reserveMachine(25),this.labels.target(this.pos,e)},e.primitiveReference=function(){this.push(14)},e.reifyU32=function(){this.push(15)},e.enter=function(e){this.push(61,e)},e.exit=function(){this.push(62)},e.return=function(){this.pushMachine(24)},e.jump=function(e){this.reserveMachine(52),this.labels.target(this.pos,e)},e.jumpIf=function(e){this.reserve(53),this.labels.target(this.pos,e)},e.jumpUnless=function(e){this.reserve(54),this.labels.target(this.pos,e)},e.jumpEq=function(e,t){this.reserveWithOperand(55,e),this.labels.target(this.pos,t)},e.assertSame=function(){this.push(56)},e.pushEmptyArgs=function(){this.push(77)},e.switch=function(e,t){var n=this,r=[],i=0;t(function(e,t){r.push({match:e,callback:t,label:\"CLAUSE\"+i++})}),this.enter(2),this.assertSame(),this.reifyU32(),this.startLabels(),r.slice(0,-1).forEach(function(e){return n.jumpEq(e.match,e.label)});for(var o=r.length-1;0<=o;o--){var a=r[o];this.label(a.label),this.pop(2),a.callback(),0!==o&&this.jump(\"END\")}this.label(\"END\"),this.stopLabels(),this.exit()},e.stdAppend=function(t){var n=this;this.switch(this.contentType(),function(e){e(1,function(){t?(n.assertSame(),n.appendHTML()):n.appendText()}),e(0,function(){n.pushCurriedComponent(),n.pushDynamicComponentInstance(),n.invokeBareComponent()}),e(3,function(){n.assertSame(),n.appendSafeHTML()}),e(4,function(){n.assertSame(),n.appendDocumentFragment()}),e(5,function(){n.assertSame(),n.appendNode()})})},e.populateLayout=function(e){this.push(89,e)},e.invokeBareComponent=function(){var e=this;this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0),this.pushFrame(),this.pushEmptyArgs(),this.prepareArgs(T.Register.s0),this.invokePreparedComponent(!1,!1,!0,function(){e.getComponentLayout(T.Register.s0),e.populateLayout(T.Register.s0)}),this.load(T.Register.s0)},e.isComponent=function(){this.push(69)},e.contentType=function(){this.push(70)},e.pushBlockScope=function(){this.push(47)},(0,i.createClass)(r,[{key:\"pos\",get:function(){return this.encoder.typePos}},{key:\"nextPos\",get:function(){return this.encoder.size}},{key:\"labels\",get:function(){return this.labelsStack.current}}]),r}(),A=function(r){function e(e,t){var n=r.call(this,e,t?t.block.symbols.length:0)||this;return n.containingLayout=t,n.component=new R((0,i.assertThisInitialized)(n)),n.expressionCompiler=function(){if(c)return c;var e=c=new h;return e.add(l.Unknown,function(e,t){var n=t.compiler,r=t.referrer,i=t.containingLayout.asPartial,o=e[1],a=n.resolveHelper(o,r);null!==a?t.helper(a,null,null):i?t.resolveMaybeLocal(o):(t.getVariable(0),t.getProperty(o))}),e.add(l.Concat,function(e,t){for(var n=e[1],r=0;r<n.length;r++)t.expr(n[r]);t.concat(n.length)}),e.add(l.Helper,function(e,t){var n=t.compiler,r=t.referrer,i=e[1],o=e[2],a=e[3];if(\"component\"!==i){var s=n.resolveHelper(i,r);if(null===s)throw new Error(\"Compile Error: \"+i+\" is not a helper\");t.helper(s,o,a)}else{var u=o[0],l=o.slice(1);t.curryComponent(u,l,a,!0)}}),e.add(l.Get,function(e,t){var n=e[1],r=e[2];t.getVariable(n);for(var i=0;i<r.length;i++)t.getProperty(r[i])}),e.add(l.MaybeLocal,function(e,t){var n,r=e[1];t.containingLayout.asPartial?(n=r[0],r=r.slice(1),t.resolveMaybeLocal(n)):t.getVariable(0);for(var i=0;i<r.length;i++)t.getProperty(r[i])}),e.add(l.Undefined,function(e,t){return t.pushPrimitiveReference(void 0)}),e.add(l.HasBlock,function(e,t){t.hasBlock(e[1])}),e.add(l.HasBlockParams,function(e,t){t.hasBlockParams(e[1])}),e}(),n.constants=e.constants,n.stdLib=e.stdLib,n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.expr=function(e){Array.isArray(e)?this.expressionCompiler.compile(e,this):this.pushPrimitiveReference(e)},t.pushArgs=function(e,t){var n=this.constants.stringArray(e);this.push(76,n,t)},t.pushYieldableBlock=function(e){this.pushSymbolTable(e&&e.symbolTable),this.pushBlockScope(),this.pushBlock(e)},t.curryComponent=function(e,t,n,r){var i=this.containingLayout.referrer;this.pushFrame(),this.compileArgs(t,n,null,r),this.push(80),this.expr(e),this.push(71,this.constants.serializable(i)),this.popFrame(),this.fetch(T.Register.v0)},t.pushSymbolTable=function(e){var t;e?(t=this.constants.serializable(e),this.push(48,t)):this.primitive(null)},t.invokeComponent=function(e,t,n,r,i,o,a,s){var u=this,l=6<arguments.length&&void 0!==a?a:null,c=7<arguments.length?s:void 0;this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0),this.pushFrame();var h=!!(o||l||t),f=!0===e||e.prepareArgs||!(!r||0===r[0].length),p={main:o,else:l,attrs:t};this.compileArgs(n,r,p,i),this.prepareArgs(T.Register.s0),this.invokePreparedComponent(null!==o,h,f,function(){c?(u.pushSymbolTable(c.symbolTable),u.pushLayout(c),u.resolveLayout()):u.getComponentLayout(T.Register.s0),u.populateLayout(T.Register.s0)}),this.load(T.Register.s0)},t.invokeStaticComponent=function(e,t,n,r,i,o,a,s){var u=7<arguments.length&&void 0!==s?s:null,l=t.symbolTable;if(l.hasEval||e.prepareArgs)this.invokeComponent(e,n,r,i,o,a,u,t);else{this.fetch(T.Register.s0),this.dup(T.Register.sp,1),this.load(T.Register.s0);var c=l.symbols;e.createArgs&&(this.pushFrame(),this.compileArgs(r,i,null,o)),this.beginComponentTransaction(),e.dynamicScope&&this.pushDynamicScope(),e.createInstance&&this.createComponent(T.Register.s0,null!==a),e.createArgs&&this.popFrame(),this.pushFrame(),this.registerComponentDestructor(T.Register.s0);var h=[];this.getComponentSelf(T.Register.s0),h.push({symbol:0,isBlock:!1});for(var f=0;f<c.length;f++){var p=c[f];switch(p.charAt(0)){case\"&\":var d=null;if(\"&default\"===p)d=a;else if(\"&inverse\"===p)d=u;else{if(p!==C)throw(0,E.unreachable)();d=n}d?this.pushYieldableBlock(d):this.pushYieldableBlock(null),h.push({symbol:f+1,isBlock:!0});break;case\"@\":if(!i)break;var m=i[0],v=i[1],g=p;o&&(g=p.slice(1));var y=m.indexOf(g);-1!==y&&(this.expr(v[y]),h.push({symbol:f+1,isBlock:!1}))}}this.pushRootScope(c.length+1,!!(a||u||n));for(var b=h.length-1;0<=b;b--){var _=h[b],w=_.symbol;_.isBlock?this.setBlock(w):this.setVariable(w)}this.invokeStatic(t),e.createInstance&&this.didRenderLayout(T.Register.s0),this.popFrame(),this.popScope(),e.dynamicScope&&this.popDynamicScope(),this.commitComponentTransaction(),this.load(T.Register.s0)}},t.dynamicComponent=function(e,t,n,r,i,o,a){var s=this,u=6<arguments.length&&void 0!==a?a:null;this.replayable({args:function(){return s.expr(e),s.dup(),2},body:function(){s.jumpUnless(\"ELSE\"),s.resolveDynamicComponent(s.containingLayout.referrer),s.pushDynamicComponentInstance(),s.invokeComponent(!0,t,n,r,i,o,u),s.label(\"ELSE\")}})},t.yield=function(e,t){this.compileArgs(t,null,null,!1),this.getBlock(e),this.resolveBlock(),this.invokeYield(),this.popScope(),this.popFrame()},t.guardedAppend=function(e,t){this.pushFrame(),this.expr(e),this.pushMachine(50,this.stdLib.getAppend(t)),this.popFrame()},t.invokeStaticBlock=function(e,t){var n=1<arguments.length&&void 0!==t?t:0,r=e.symbolTable.parameters,i=r.length,o=Math.min(n,i);if(this.pushFrame(),o){this.pushChildScope();for(var a=0;a<o;a++)this.dup(T.Register.fp,n-a),this.setVariable(r[a])}this.pushBlock(e),this.resolveBlock(),this.invokeVirtual(),o&&this.popScope(),this.popFrame()},t.string=function(e){return this.constants.string(e)},t.names=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t[n]=this.constants.string(r)}return this.constants.array(t)},t.symbols=function(e){return this.constants.array(e)},t.primitive=function(e){var t,n=0;switch(typeof e){case\"number\":e%1==0?-1<e?t=e:(t=this.constants.number(e),n=4):(t=this.constants.number(e),n=1);break;case\"string\":t=this.string(e),n=2;break;case\"boolean\":t=0|e,n=3;break;case\"object\":t=2,n=3;break;case\"undefined\":n=t=3;break;default:throw new Error(\"Invalid primitive passed to pushPrimitive\")}var r=this.sizeImmediate(t<<3|n,t);this.push(13,r)},t.sizeImmediate=function(e,t){return 4294967295<=e||e<0?this.constants.number(t)<<3|5:e},t.pushPrimitiveReference=function(e){this.primitive(e),this.primitiveReference()},t.pushComponentDefinition=function(e){this.push(72,this.constants.handle(e))},t.resolveDynamicComponent=function(e){this.push(75,this.constants.serializable(e))},t.staticComponentHelper=function(e,t,n){var r=this.compiler.resolveLayoutForTag(e,this.referrer),i=r.handle,o=r.capabilities,a=r.compilable;if(null!==i&&null!==o&&a){if(t)for(var s=0;s<t.length;s+=2)t[s][0]=\"@\"+t[s][0];return this.pushComponentDefinition(i),this.invokeStaticComponent(o,a,null,null,t,!1,n&&n),!0}return!1},t.invokePartial=function(e,t,n){var r=this.constants.serializable(e),i=this.constants.stringArray(t),o=this.constants.array(n);this.push(95,r,i,o)},t.resolveMaybeLocal=function(e){this.push(96,this.string(e))},t.debugger=function(e,t){this.push(97,this.constants.stringArray(e),this.constants.array(t))},t.text=function(e){this.push(26,this.constants.string(e))},t.openPrimitiveElement=function(e){this.push(33,this.constants.string(e))},t.modifier=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(40,this.constants.handle(e)),this.popFrame()},t.comment=function(e){var t=this.constants.string(e);this.push(27,t)},t.dynamicAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0;this.push(36,r,!0===n?1:0,i)},t.componentAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0;this.push(37,r,!0===n?1:0,i)},t.staticAttr=function(e,t,n){var r=this.constants.string(e),i=t?this.constants.string(t):0,o=this.constants.string(n);this.push(35,r,o,i)},t.hasBlockParams=function(e){this.getBlock(e),this.resolveBlock(),this.push(10)},t.getProperty=function(e){this.push(7,this.string(e))},t.helper=function(e,t,n){this.pushFrame(),this.compileArgs(t,n,null,!0),this.push(1,this.constants.handle(e)),this.popFrame(),this.fetch(T.Register.v0)},t.bindDynamicScope=function(e){this.push(43,this.names(e))},t.replayable=function(e){var t=e.args,n=e.body;this.startLabels(),this.pushFrame(),this.returnTo(\"ENDINITIAL\");var r=t();this.enter(r),n(),this.label(\"FINALLY\"),this.exit(),this.return(),this.label(\"ENDINITIAL\"),this.popFrame(),this.stopLabels()},t.replayableIf=function(e){var t=this,n=e.args,r=e.ifTrue,i=e.ifFalse;this.replayable({args:n,body:function(){t.jumpUnless(\"ELSE\"),r(),t.jump(\"FINALLY\"),t.label(\"ELSE\"),i&&i()}})},t.inlineBlock=function(e){return new g(this.compiler,{block:e,containingLayout:this.containingLayout})},t.evalSymbols=function(){var e=this.containingLayout.block;return e.hasEval?e.symbols:null},t.compileParams=function(e){if(!e)return 0;for(var t=0;t<e.length;t++)this.expr(e[t]);return e.length},t.compileArgs=function(e,t,n,r){n&&(this.pushYieldableBlock(n.main),this.pushYieldableBlock(n.else),this.pushYieldableBlock(n.attrs));var i=this.compileParams(e)<<4;r&&(i|=8),n&&(i|=7);var o=E.EMPTY_ARRAY;if(t){o=t[0];for(var a=t[1],s=0;s<a.length;s++)this.expr(a[s])}this.pushArgs(o,i)},t.template=function(e){return e?this.inlineBlock(e):null},(0,i.createClass)(e,[{key:\"referrer\",get:function(){return this.containingLayout&&this.containingLayout.referrer}}]),e}(e.StdOpcodeBuilder=x),O=function(e){function t(){return e.apply(this,arguments)||this}(0,i.inheritsLoose)(t,e);var n=t.prototype;return n.pushBlock=function(e){e?this.pushOther(e):this.primitive(null)},n.resolveBlock=function(){this.push(46)},n.pushLayout=function(e){e?this.pushOther(e):this.primitive(null)},n.resolveLayout=function(){this.push(46)},n.invokeStatic=function(e){this.pushOther(e),this.push(46),this.pushMachine(49)},n.pushOther=function(e){this.push(12,this.other(e))},n.other=function(e){return this.constants.other(e)},t}(e.OpcodeBuilder=A);e.LazyOpcodeBuilder=O;var S=function(e){function t(){return e.apply(this,arguments)||this}(0,i.inheritsLoose)(t,e);var n=t.prototype;return n.pushBlock=function(e){var t=e?e.compile():null;this.primitive(t)},n.resolveBlock=function(){},n.pushLayout=function(e){e?this.primitive(e.compile()):this.primitive(null)},n.resolveLayout=function(){},n.invokeStatic=function(e){var t=e.compile();-1===t?this.pushMachine(50,function(){return e.compile()}):this.pushMachine(50,t)},t}(A);e.EagerOpcodeBuilder=S;var N=function(o){function e(e,t,n){var r=new a.LazyConstants(t),i=new a.Program(r);return o.call(this,n,i,e)||this}return(0,i.inheritsLoose)(e,o),e.prototype.builderFor=function(e){return new O(this,e)},e}(_);e.LazyCompiler=N;var P=function(){function e(e,t){this.name=e,this.template=t}return e.prototype.getPartial=function(){var e=this.template.asPartial(),t=e.compile();return{symbolTable:e.symbolTable,handle:t}},e}();e.PartialDefinition=P;var L=0;var M=function(){function e(e,t){this.compiler=e,this.parsedLayout=t,this.layout=null,this.partial=null,this.wrappedLayout=null;var n=t.block;this.symbols=n.symbols,this.hasEval=n.hasEval,this.referrer=t.referrer,this.id=t.id||\"client-\"+L++}var t=e.prototype;return t.asLayout=function(){return this.layout?this.layout:this.layout=new v(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!1}))},t.asPartial=function(){return this.partial?this.partial:this.layout=new v(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!0}))},t.asWrappedLayout=function(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new w(this.compiler,(0,n.assign)({},this.parsedLayout,{asPartial:!1}))},e}()}),e(\"@glimmer/program\",[\"exports\",\"ember-babel\",\"@glimmer/util\"],function(e,i,t){\"use strict\";e.Opcode=e.Program=e.RuntimeProgram=e.WriteOnlyProgram=e.Heap=e.LazyConstants=e.Constants=e.RuntimeConstants=e.WriteOnlyConstants=e.WELL_KNOWN_EMPTY_ARRAY_POSITION=void 0;var o={};e.WELL_KNOWN_EMPTY_ARRAY_POSITION=0;var n=Object.freeze([]),r=function(){function e(){this.strings=[],this.arrays=[n],this.tables=[],this.handles=[],this.resolved=[],this.numbers=[]}var t=e.prototype;return t.string=function(e){var t=this.strings.indexOf(e);return-1<t?t:this.strings.push(e)-1},t.stringArray=function(e){for(var t=new Array(e.length),n=0;n<e.length;n++)t[n]=this.string(e[n]);return this.array(t)},t.array=function(e){if(0===e.length)return 0;var t=this.arrays.indexOf(e);return-1<t?t:this.arrays.push(e)-1},t.handle=function(e){var t=this.handles.indexOf(e);return-1<t?t:(this.resolved.push(o),this.handles.push(e)-1)},t.serializable=function(e){var t=JSON.stringify(e),n=this.strings.indexOf(t);return-1<n?n:this.strings.push(t)-1},t.number=function(e){var t=this.numbers.indexOf(e);return-1<t?t:this.numbers.push(e)-1},t.toPool=function(){return{strings:this.strings,arrays:this.arrays,handles:this.handles,numbers:this.numbers}},e}();e.WriteOnlyConstants=r;var a=function(){function e(e,t){this.resolver=e,this.strings=t.strings,this.arrays=t.arrays,this.handles=t.handles,this.resolved=this.handles.map(function(){return o}),this.numbers=t.numbers}var t=e.prototype;return t.getString=function(e){return this.strings[e]},t.getNumber=function(e){return this.numbers[e]},t.getStringArray=function(e){for(var t=this.getArray(e),n=new Array(t.length),r=0;r<t.length;r++){var i=t[r];n[r]=this.getString(i)}return n},t.getArray=function(e){return this.arrays[e]},t.resolveHandle=function(e){var t,n=this.resolved[e];return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},t.getSerializable=function(e){return JSON.parse(this.strings[e])},e}();e.RuntimeConstants=a;var s=function(r){function e(e,t){var n=r.call(this)||this;return n.resolver=e,t&&(n.strings=t.strings,n.arrays=t.arrays,n.handles=t.handles,n.resolved=n.handles.map(function(){return o}),n.numbers=t.numbers),n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.getNumber=function(e){return this.numbers[e]},t.getString=function(e){return this.strings[e]},t.getStringArray=function(e){for(var t=this.getArray(e),n=new Array(t.length),r=0;r<t.length;r++){var i=t[r];n[r]=this.getString(i)}return n},t.getArray=function(e){return this.arrays[e]},t.resolveHandle=function(e){var t,n=this.resolved[e];return n===o&&(t=this.handles[e],n=this.resolved[e]=this.resolver.resolve(t)),n},t.getSerializable=function(e){return JSON.parse(this.strings[e])},e}(r),u=function(t){function e(){var e=t.apply(this,arguments)||this;return e.others=[],e.serializables=[],e}(0,i.inheritsLoose)(e,t);var n=e.prototype;return n.serializable=function(e){var t=this.serializables.indexOf(e);return-1<t?t:this.serializables.push(e)-1},n.getSerializable=function(e){return this.serializables[e]},n.getOther=function(e){return this.others[e-1]},n.other=function(e){return this.others.push(e)},e}(e.Constants=s);e.LazyConstants=u;var l=function(){function e(e){this.heap=e,this.offset=0}return(0,i.createClass)(e,[{key:\"size\",get:function(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}},{key:\"isMachine\",get:function(){return 1024&this.heap.getbyaddr(this.offset)}},{key:\"type\",get:function(){return 255&this.heap.getbyaddr(this.offset)}},{key:\"op1\",get:function(){return this.heap.getbyaddr(this.offset+1)}},{key:\"op2\",get:function(){return this.heap.getbyaddr(this.offset+2)}},{key:\"op3\",get:function(){return this.heap.getbyaddr(this.offset+3)}}]),e}();e.Opcode=l;var c=1048576,h=function(){function e(e){var t,n,r;this.placeholders=[],this.offset=0,this.handle=0,this.capacity=c,e?(t=e.buffer,n=e.table,r=e.handle,this.heap=new Uint32Array(t),this.table=n,this.offset=this.heap.length,this.handle=r,this.capacity=0):(this.heap=new Uint32Array(c),this.table=[])}var t=e.prototype;return t.push=function(e){this.sizeCheck(),this.heap[this.offset++]=e},t.sizeCheck=function(){var e;0===this.capacity&&(e=m(this.heap,0,this.offset),this.heap=new Uint32Array(e.length+c),this.heap.set(e,0),this.capacity=c),this.capacity--},t.getbyaddr=function(e){return this.heap[e]},t.setbyaddr=function(e,t){this.heap[e]=t},t.malloc=function(){this.table.push(this.offset,0,0);var e=this.handle;return this.handle+=3,e},t.finishMalloc=function(e,t){this.table[e+1]=0|t<<2},t.size=function(){return this.offset},t.getaddr=function(e){return this.table[e]},t.gethandle=function(e){this.table.push(e,3,0);var t=this.handle;return this.handle+=3,t},t.sizeof=function(){return-1},t.scopesizeof=function(e){return this.table[e+1]>>2},t.free=function(e){var t=this.table[e+1];this.table[e+1]=t|1<<30},t.pushPlaceholder=function(e){this.sizeCheck();var t=this.offset++;this.heap[t]=2147483647,this.placeholders.push([t,e])},t.patchPlaceholders=function(){for(var e=this.placeholders,t=0;t<e.length;t++){var n=e[t],r=n[0],i=n[1];this.setbyaddr(r,i())}},t.capture=function(e){var t=0<arguments.length&&void 0!==e?e:this.offset;this.patchPlaceholders();var n=m(this.heap,0,t).buffer;return{handle:this.handle,table:this.table,buffer:n}},e}();e.Heap=h;var f=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new r,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:new h;this.constants=e,this.heap=t,this._opcode=new l(this.heap)}return e.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},e}();e.WriteOnlyProgram=f;var p=function(){function i(e,t){this.constants=e,this.heap=t,this._opcode=new l(this.heap)}return i.hydrate=function(e,t,n){var r=new h(e);return new i(new a(n,t),r)},i.prototype.opcode=function(e){return this._opcode.offset=e,this._opcode},i}();e.RuntimeProgram=p;var d=function(e){function t(){return e.apply(this,arguments)||this}return(0,i.inheritsLoose)(t,e),t}(f);function m(e,t,n){if(void 0!==e.slice)return e.slice(t,n);for(var r=new Uint32Array(n);t<n;t++)r[t]=e[t];return r}e.Program=d}),e(\"@glimmer/reference\",[\"exports\",\"ember-babel\",\"@glimmer/util\"],function(e,i,n){\"use strict\";e.isConst=function(e){return e.tag===u},e.isConstTag=function(e){return e===u},e.bump=function(){h++},e.combineTagged=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n].tag;if(i===l)return l;i!==u&&t.push(i)}return p(t)},e.combineSlice=function(e){var t=[],n=e.head();for(;null!==n;){var r=n.tag;if(r===l)return l;r!==u&&t.push(r),n=e.nextNode(n)}return p(t)},e.combine=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i=e[n];if(i===l)return l;i!==u&&t.push(i)}return p(t)},e.map=function(e,t){return new b(e,t)},e.isModified=function(e){return e!==w},e.ReferenceCache=e.CachedReference=e.UpdatableTag=e.CachedTag=e.DirtyableTag=e.CURRENT_TAG=e.VOLATILE_TAG=e.CONSTANT_TAG=e.TagWrapper=e.RevisionTag=e.VOLATILE=e.INITIAL=e.CONSTANT=e.IteratorSynchronizer=e.ReferenceIterator=e.IterationArtifacts=e.ListItem=e.ConstReference=void 0;e.CONSTANT=0;e.INITIAL=1;e.VOLATILE=NaN;var t=function(){function e(){}return e.prototype.validate=function(e){return this.value()===e},e}();(e.RevisionTag=t).id=0;var r=[],o=[],a=function(){function e(e,t){this.type=e,this.inner=t}var t=e.prototype;return t.value=function(){return(0,r[this.type])(this.inner)},t.validate=function(e){return(0,o[this.type])(this.inner,e)},e}();function s(e){var t=r.length;r.push(function(e){return e.value()}),o.push(function(e,t){return e.validate(t)}),e.id=t}e.TagWrapper=a,r.push(function(){return 0}),o.push(function(e,t){return 0===t});var u=new a(0,null);e.CONSTANT_TAG=u,r.push(function(){return NaN}),o.push(function(e,t){return NaN===t});var l=new a(1,null);e.VOLATILE_TAG=l,r.push(function(){return h}),o.push(function(e,t){return t===h});var c=new a(2,null);e.CURRENT_TAG=c;var h=1;var f=function(n){function r(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:h,t=n.call(this)||this;return t.revision=e,t}(0,i.inheritsLoose)(r,n),r.create=function(e){var t=0<arguments.length&&void 0!==e?e:h;return new a(this.id,new r(t))};var e=r.prototype;return e.value=function(){return this.revision},e.dirty=function(){this.revision=++h},r}(t);function p(e){switch(e.length){case 0:return u;case 1:return e[0];case 2:return m.create(e[0],e[1]);default:return v.create(e)}}s(e.DirtyableTag=f);var d=function(t){function e(){var e=t.apply(this,arguments)||this;return e.lastChecked=null,e.lastValue=null,e}(0,i.inheritsLoose)(e,t);var n=e.prototype;return n.value=function(){return this.lastChecked!==h&&(this.lastChecked=h,this.lastValue=this.compute()),this.lastValue},n.invalidate=function(){this.lastChecked=null},e}(t),m=function(r){function n(e,t){var n=r.call(this)||this;return n.first=e,n.second=t,n}return(0,i.inheritsLoose)(n,r),n.create=function(e,t){return new a(this.id,new n(e,t))},n.prototype.compute=function(){return Math.max(this.first.value(),this.second.value())},n}(e.CachedTag=d);s(m);var v=function(n){function t(e){var t=n.call(this)||this;return t.tags=e,t}return(0,i.inheritsLoose)(t,n),t.create=function(e){return new a(this.id,new t(e))},t.prototype.compute=function(){for(var e=this.tags,t=-1,n=0;n<e.length;n++)var r=e[n].value(),t=Math.max(r,t);return t},t}(d);s(v);var g=function(n){function t(e){var t=n.call(this)||this;return t.tag=e,t.lastUpdated=1,t}(0,i.inheritsLoose)(t,n),t.create=function(e){return new a(this.id,new t(e))};var e=t.prototype;return e.compute=function(){return Math.max(this.lastUpdated,this.tag.value())},e.update=function(e){e!==this.tag&&(this.tag=e,this.lastUpdated=h,this.invalidate())},t}(d);s(e.UpdatableTag=g);var y=function(){function e(){this.lastRevision=null,this.lastValue=null}var t=e.prototype;return t.value=function(){var e=this.tag,t=this.lastRevision,n=this.lastValue;return null!==t&&e.validate(t)||(n=this.lastValue=this.compute(),this.lastRevision=e.value()),n},t.invalidate=function(){this.lastRevision=null},e}(),b=function(r){function e(e,t){var n=r.call(this)||this;return n.tag=e.tag,n.reference=e,n.mapper=t,n}return(0,i.inheritsLoose)(e,r),e.prototype.compute=function(){var e=this.reference;return(0,this.mapper)(e.value())},e}(e.CachedReference=y);var _=function(){function e(e){this.lastValue=null,this.lastRevision=null,this.initialized=!1,this.tag=e.tag,this.reference=e}var t=e.prototype;return t.peek=function(){return this.initialized?this.lastValue:this.initialize()},t.revalidate=function(){if(!this.initialized)return this.initialize();var e=this.reference,t=this.lastRevision,n=e.tag;if(n.validate(t))return w;this.lastRevision=n.value();var r=this.lastValue,i=e.value();return i===r?w:this.lastValue=i},t.initialize=function(){var e=this.reference,t=this.lastValue=e.value();return this.lastRevision=e.tag.value(),this.initialized=!0,t},e}();e.ReferenceCache=_;var w=\"adb3b78e-3d22-4e4b-877a-6317c2c5c145\";var E=function(){function e(e){this.inner=e,this.tag=u}return e.prototype.value=function(){return this.inner},e}();e.ConstReference=E;var T=function(r){function e(e,t){var n=r.call(this,e.valueReferenceFor(t))||this;return n.retained=!1,n.seen=!1,n.key=t.key,n.iterable=e,n.memo=e.memoReferenceFor(t),n}(0,i.inheritsLoose)(e,r);var t=e.prototype;return t.update=function(e){this.retained=!0,this.iterable.updateValueReference(this.value,e),this.iterable.updateMemoReference(this.memo,e)},t.shouldRemove=function(){return!this.retained},t.reset=function(){this.retained=!1,this.seen=!1},e}(n.ListNode);e.ListItem=T;var C=function(){function e(e){this.iterator=null,this.map=(0,n.dict)(),this.list=new n.LinkedList,this.tag=e.tag,this.iterable=e}var t=e.prototype;return t.isEmpty=function(){return(this.iterator=this.iterable.iterate()).isEmpty()},t.iterate=function(){var e=null===this.iterator?this.iterable.iterate():this.iterator;return this.iterator=null,e},t.has=function(e){return!!this.map[e]},t.get=function(e){return this.map[e]},t.wasSeen=function(e){var t=this.map[e];return void 0!==t&&t.seen},t.append=function(e){var t=this.map,n=this.list,r=this.iterable,i=t[e.key]=new T(r,e);return n.append(i),i},t.insertBefore=function(e,t){var n=this.map,r=this.list,i=this.iterable,o=n[e.key]=new T(i,e);return o.retained=!0,r.insertBefore(o,t),o},t.move=function(e,t){var n=this.list;e.retained=!0,n.remove(e),n.insertBefore(e,t)},t.remove=function(e){this.list.remove(e),delete this.map[e.key]},t.nextNode=function(e){return this.list.nextNode(e)},t.head=function(){return this.list.head()},e}();e.IterationArtifacts=C;var R,k,x=function(){function e(e){this.iterator=null;var t=new C(e);this.artifacts=t}return e.prototype.next=function(){var e=this.artifacts,t=(this.iterator=this.iterator||e.iterate()).next();return null===t?null:e.append(t)},e}();e.ReferenceIterator=x,(k=R=R||{})[k.Append=0]=\"Append\",k[k.Prune=1]=\"Prune\",k[k.Done=2]=\"Done\";var A=function(){function e(e){var t=e.target,n=e.artifacts;this.target=t,this.artifacts=n,this.iterator=n.iterate(),this.current=n.head()}var t=e.prototype;return t.sync=function(){for(var e=R.Append;;)switch(e){case R.Append:e=this.nextAppend();break;case R.Prune:e=this.nextPrune();break;case R.Done:return void this.nextDone()}},t.advanceToKey=function(e){for(var t=this.current,n=this.artifacts,r=t;null!==r&&r.key!==e;)r.seen=!0,r=n.nextNode(r);null!==r&&(this.current=n.nextNode(r))},t.nextAppend=function(){var e=this.iterator,t=this.current,n=this.artifacts,r=e.next();if(null===r)return this.startPrune();var i=r.key;return null!==t&&t.key===i?this.nextRetain(r):n.has(i)?this.nextMove(r):this.nextInsert(r),R.Append},t.nextRetain=function(e){var t=this.artifacts,n=this.current;n.update(e),this.current=t.nextNode(n),this.target.retain(e.key,n.value,n.memo)},t.nextMove=function(e){var t=this.current,n=this.artifacts,r=this.target,i=e.key,o=n.get(e.key);o.update(e),n.wasSeen(e.key)?(n.move(o,t),r.move(o.key,o.value,o.memo,t?t.key:null)):this.advanceToKey(i)},t.nextInsert=function(e){var t=this.artifacts,n=this.target,r=this.current,i=t.insertBefore(e,r);n.insert(i.key,i.value,i.memo,r?r.key:null)},t.startPrune=function(){return this.current=this.artifacts.head(),R.Prune},t.nextPrune=function(){var e=this.artifacts,t=this.target,n=this.current;if(null===n)return R.Done;var r=n;return this.current=e.nextNode(r),r.shouldRemove()?(e.remove(r),t.delete(r.key)):r.reset(),R.Prune},t.nextDone=function(){this.target.done()},e}();e.IteratorSynchronizer=A}),e(\"@glimmer/runtime\",[\"exports\",\"ember-babel\",\"@glimmer/util\",\"@glimmer/reference\",\"@glimmer/vm\",\"@glimmer/low-level\"],function(e,s,f,d,p,n){\"use strict\";e.renderMain=function(e,t,n,r,i,o){var a=ft.initial(e,t,n,r,i,o);return new pt(a)},e.renderComponent=function(e,t,n,r,i){var o,a=5<arguments.length&&void 0!==arguments[5]?arguments[5]:{},s=ft.empty(e,t,n,r),u=s.constants.resolver,l=M(u,i,null),c=l.manager,h=l.state;{if(!U(I(c.getCapabilities(h))))throw new Error(\"Cannot invoke components with dynamic layouts as a root component.\");o=c.getLayout(h,u)}var f=Object.keys(a).map(function(e){return[e,a[e]]}),p=[\"main\",\"else\",\"attrs\"],d=f.map(function(e){return\"@\"+e[0]});s.pushFrame();for(var m=0;m<3*p.length;m++)s.stack.push(null);return s.stack.push(null),f.forEach(function(e){var t=e[1];s.stack.push(t)}),s.args.setup(s.stack,d,p,0,!1),s.stack.push(s.args),s.stack.push(o),s.stack.push(l),new pt(s)},e.setDebuggerCallback=function(e){W=e},e.resetDebuggerCallback=function(){W=V},e.getDynamicVar=function(e,t){var n=e.dynamicScope(),r=t.positional.at(0);return new dt(n,r)},e.isCurriedComponentDefinition=R,e.curry=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;return new y(e,t)},e.isWhitespace=function(e){return ie.test(e)},e.normalizeProperty=we,e.clientBuilder=function(e,t){return Ue.forInitialRender(e,t)},e.rehydrationBuilder=function(e,t){return yt.forInitialRender(e,t)},e.isSerializationFirstNode=vt,e.capabilityFlagsFrom=I,e.hasCapability=F,e.Cursor=e.ConcreteBounds=e.SERIALIZATION_FIRST_NODE_STRING=e.RehydrateBuilder=e.NewElementBuilder=e.DOMTreeConstruction=e.IDOMChanges=e.SVG_NAMESPACE=e.DOMChanges=e.CurriedComponentDefinition=e.MINIMAL_CAPABILITIES=e.DEFAULT_CAPABILITIES=e.DefaultEnvironment=e.Environment=e.Scope=e.EMPTY_ARGS=e.DynamicAttribute=e.SimpleDynamicAttribute=e.RenderResult=e.UpdatingVM=e.LowLevelVM=e.ConditionalReference=e.PrimitiveReference=e.UNDEFINED_REFERENCE=e.NULL_REFERENCE=void 0;var o=new(function(){function e(){this.evaluateOpcode=(0,f.fillNulls)(98).slice()}var t=e.prototype;return t.add=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:\"syscall\";this.evaluateOpcode[e]={syscall:\"syscall\"===r,evaluate:t}},t.debugBefore=function(){return{sp:void 0,state:void 0}},t.debugAfter=function(e,t,n,r){r.sp,r.state},t.evaluate=function(e,t,n){var r=this.evaluateOpcode[n];r.syscall?r.evaluate(e,t):r.evaluate(e.inner,t)},e}()),t=function(t){function e(){var e=t.apply(this,arguments)||this;return e.next=null,e.prev=null,e}return(0,s.inheritsLoose)(e,t),e}(function(){(0,f.initializeGuid)(this)}),i=function(t){function e(e){return t.call(this,e)||this}return(0,s.inheritsLoose)(e,t),e.create=function(e){return void 0===e?l:null===e?u:!0===e?c:!1===e?h:new(\"number\"==typeof e?a:r)(e)},e.prototype.get=function(){return l},e}(d.ConstReference),r=function(n){function e(){var e=n.apply(this,arguments)||this;return e.lengthReference=null,e}return(0,s.inheritsLoose)(e,n),e.prototype.get=function(e){if(\"length\"!==e)return n.prototype.get.call(this,e);var t=this.lengthReference;return null===t&&(t=this.lengthReference=new a(this.inner.length)),t},e}(e.PrimitiveReference=i),a=function(t){function e(e){return t.call(this,e)||this}return(0,s.inheritsLoose)(e,t),e}(i),l=new a(void 0);e.UNDEFINED_REFERENCE=l;var u=new a(null);e.NULL_REFERENCE=u;var c=new a(!0),h=new a(!1),m=function(){function e(e){this.inner=e,this.tag=e.tag}var t=e.prototype;return t.value=function(){return this.toBool(this.inner.value())},t.toBool=function(e){return!!e},e}();e.ConditionalReference=m;var v=function(n){function e(e){var t=n.call(this)||this;return t.parts=e,t.tag=(0,d.combineTagged)(e),t}return(0,s.inheritsLoose)(e,n),e.prototype.compute=function(){for(var e,t=new Array,n=0;n<this.parts.length;n++){var r=this.parts[n].value();null!=r&&(t[n]=\"function\"==typeof(e=r).toString?String(e):\"\")}return 0<t.length?t.join(\"\"):null},e}(d.CachedReference);o.add(1,function(e,t){var n=t.op1,r=e.stack,i=e.constants.resolveHandle(n)(e,r.pop());e.loadValue(p.Register.v0,i)}),o.add(6,function(e,t){var n=t.op1,r=e.referenceForSymbol(n);e.stack.push(r)}),o.add(4,function(e,t){var n=t.op1,r=e.stack.pop();e.scope().bindSymbol(n,r)}),o.add(5,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=e.stack.pop(),a=o?[r,i,o]:null;e.scope().bindBlock(n,a)}),o.add(96,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.scope().getPartialMap()[r];void 0===i&&(i=e.getSelf().get(r)),e.stack.push(i)}),o.add(20,function(e,t){var n=t.op1,r=t.op2;e.pushRootScope(n,!!r)}),o.add(7,function(e,t){var n=t.op1,r=e.constants.getString(n),i=e.stack.pop();e.stack.push(i.get(r))}),o.add(8,function(e,t){var n=t.op1,r=e.stack,i=e.scope().getBlock(n);i?(r.push(i[2]),r.push(i[1]),r.push(i[0])):(r.push(null),r.push(null),r.push(null))}),o.add(9,function(e,t){var n=t.op1,r=!!e.scope().getBlock(n);e.stack.push(r?c:h)}),o.add(10,function(e){e.stack.pop(),e.stack.pop();var t=e.stack.pop(),n=t&&t.parameters.length;e.stack.push(n?c:h)}),o.add(11,function(e,t){for(var n=t.op1,r=new Array(n),i=n;0<i;i--){r[i-1]=e.stack.pop()}e.stack.push(new v(r))});var g=\"CURRIED COMPONENT DEFINITION [id=6f00feb9-a0ef-4547-99ea-ac328f80acea]\";function R(e){return!(!e||!e[g])}var y=function(){function e(e,t){this.inner=e,this.args=t,this[g]=!0}return e.prototype.unwrap=function(e){e.realloc(this.offset);for(var t=this;;){var n=t.args,r=t.inner;if(n&&(e.positional.prepend(n.positional),e.named.merge(n.named)),!R(r))return r;t=r}},(0,s.createClass)(e,[{key:\"offset\",get:function(){var e=this.inner,t=this.args,n=t?t.positional.length:0;return R(e)?n+e.offset:n}}]),e}();function b(e){return _(e)?\"\":String(e)}function _(e){return null==e||\"function\"!=typeof e.toString}function w(e){return\"object\"==typeof e&&null!==e&&\"function\"==typeof e.toHTML}function E(e){return\"object\"==typeof e&&null!==e&&\"number\"==typeof e.nodeType}function T(e){return\"string\"==typeof e}e.CurriedComponentDefinition=y;var C=function(i){function e(e,t,n){var r=i.call(this)||this;return r.node=e,r.reference=t,r.lastValue=n,r.type=\"dynamic-text\",r.tag=t.tag,r.lastRevision=r.tag.value(),r}(0,s.inheritsLoose)(e,i);var t=e.prototype;return t.evaluate=function(){var e=this.reference,t=this.tag;t.validate(this.lastRevision)||(this.lastRevision=t.value(),this.update(e.value()))},t.update=function(e){var t,n=this.lastValue;e===n||(t=_(e)?\"\":T(e)?e:String(e))!==n&&(this.node.nodeValue=this.lastValue=t)},e}(t),k=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.create=function(e){return new t(e)},t.prototype.toBool=R,t}(m),x=function(){function e(e){this.inner=e,this.tag=e.tag}return e.prototype.value=function(){var e,t,n,r=this.inner.value();return T(n=r)||_(n)||\"boolean\"==typeof n||\"number\"==typeof n?1:(t=r)&&t[g]?0:w(r)?3:E(e=r)&&11===e.nodeType?4:E(r)?5:1},e}();o.add(28,function(e){var t=e.stack.pop().value(),n=_(t)?\"\":String(t);e.elements().appendDynamicHTML(n)}),o.add(29,function(e){var t=e.stack.pop().value().toHTML(),n=_(t)?\"\":t;e.elements().appendDynamicHTML(n)}),o.add(32,function(e){var t=e.stack.pop(),n=t.value(),r=_(n)?\"\":String(n),i=e.elements().appendDynamicText(r);(0,d.isConst)(t)||e.updateWith(new C(i,t,r))}),o.add(30,function(e){var t=e.stack.pop().value();e.elements().appendDynamicFragment(t)}),o.add(31,function(e){var t=e.stack.pop().value();e.elements().appendDynamicNode(t)}),o.add(22,function(e){return e.pushChildScope()}),o.add(23,function(e){return e.popScope()}),o.add(44,function(e){return e.pushDynamicScope()}),o.add(45,function(e){return e.popDynamicScope()}),o.add(12,function(e,t){var n=t.op1;e.stack.push(e.constants.getOther(n))}),o.add(13,function(e,t){var n=t.op1,r=e.stack,i=n>>3;switch(7&n){case 0:r.push(i);break;case 1:r.push(e.constants.getNumber(i));break;case 2:r.push(e.constants.getString(i));break;case 3:r.pushEncodedImmediate(n);break;case 4:case 5:r.push(e.constants.getNumber(i))}}),o.add(14,function(e){var t=e.stack;t.push(i.create(t.pop()))}),o.add(15,function(e){var t=e.stack;t.push(t.peek().value())}),o.add(16,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(n)-r;e.stack.dup(i)}),o.add(17,function(e,t){var n=t.op1;e.stack.pop(n)}),o.add(18,function(e,t){var n=t.op1;e.load(n)}),o.add(19,function(e,t){var n=t.op1;e.fetch(n)}),o.add(43,function(e,t){var n=t.op1,r=e.constants.getArray(n);e.bindDynamicScope(r)}),o.add(61,function(e,t){var n=t.op1;e.enter(n)}),o.add(62,function(e){e.exit()}),o.add(48,function(e,t){var n=t.op1;e.stack.push(e.constants.getSerializable(n))}),o.add(47,function(e){e.stack.push(e.scope())}),o.add(46,function(e){var t=e.stack,n=t.pop();n?t.push(n.compile()):t.pushNull()}),o.add(51,function(e){var t=e.stack,n=t.pop(),r=t.pop(),i=t.pop(),o=t.pop();if(null===i)return e.pushFrame(),void e.pushScope(r);var a=r,s=i.parameters,u=s.length;if(0<u){a=a.child();for(var l=0;l<u;l++)a.bindSymbol(s[l],o.at(l))}e.pushFrame(),e.pushScope(a),e.call(n)}),o.add(53,function(e,t){var n,r=t.op1,i=e.stack.pop();(0,d.isConst)(i)?i.value()&&e.goto(r):((n=new d.ReferenceCache(i)).peek()&&e.goto(r),e.updateWith(new A(n)))}),o.add(54,function(e,t){var n,r=t.op1,i=e.stack.pop();(0,d.isConst)(i)?i.value()||e.goto(r):((n=new d.ReferenceCache(i)).peek()||e.goto(r),e.updateWith(new A(n)))}),o.add(55,function(e,t){var n=t.op1,r=t.op2;e.stack.peek()===r&&e.goto(n)}),o.add(56,function(e){var t=e.stack.peek();(0,d.isConst)(t)||e.updateWith(A.initialize(new d.ReferenceCache(t)))}),o.add(63,function(e){var t=e.env,n=e.stack;n.push(t.toConditionalReference(n.pop()))});var A=function(n){function r(e){var t=n.call(this)||this;return t.type=\"assert\",t.tag=e.tag,t.cache=e,t}return(0,s.inheritsLoose)(r,n),r.initialize=function(e){var t=new r(e);return e.peek(),t},r.prototype.evaluate=function(e){var t=this.cache;(0,d.isModified)(t.revalidate())&&e.throw()},r}(t),O=function(r){function e(e,t){var n=r.call(this)||this;return n.target=t,n.type=\"jump-if-not-modified\",n.tag=e,n.lastRevision=e.value(),n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.evaluate=function(e){var t=this.tag,n=this.target,r=this.lastRevision;!e.alwaysRevalidate&&t.validate(r)&&e.goto(n)},t.didModify=function(){this.lastRevision=this.tag.value()},e}(t),S=function(n){function e(e){var t=n.call(this)||this;return t.target=e,t.type=\"did-modify\",t.tag=d.CONSTANT_TAG,t}return(0,s.inheritsLoose)(e,n),e.prototype.evaluate=function(){this.target.didModify()},e}(t),N=function(){function e(e){this.tag=d.CONSTANT_TAG,this.type=\"label\",this.label=null,this.prev=null,(this.next=null,f.initializeGuid)(this),this.label=e}var t=e.prototype;return t.evaluate=function(){},t.inspect=function(){return this.label+\" [\"+this._guid+\"]\"},e}();o.add(26,function(e,t){var n=t.op1;e.elements().appendText(e.constants.getString(n))}),o.add(27,function(e,t){var n=t.op1;e.elements().appendComment(e.constants.getString(n))}),o.add(33,function(e,t){var n=t.op1;e.elements().openElement(e.constants.getString(n))}),o.add(34,function(e){var t=e.stack.pop().value();e.elements().openElement(t)}),o.add(41,function(e){var t,n,r,i,o=e.stack.pop(),a=e.stack.pop(),s=e.stack.pop().value();(0,d.isConst)(o)?n=o.value():(n=(t=new d.ReferenceCache(o)).peek(),e.updateWith(new A(t))),(0,d.isConst)(a)?i=a.value():(i=(r=new d.ReferenceCache(a)).peek(),e.updateWith(new A(r))),e.elements().pushRemoteElement(n,s,i)}),o.add(42,function(e){e.elements().popRemoteElement()}),o.add(38,function(e){var t=e.fetchValue(p.Register.t0),n=null;t&&(n=t.flush(e),e.loadValue(p.Register.t0,null)),e.elements().flushElement(n)}),o.add(39,function(i){var e=i.elements().closeElement();e&&e.forEach(function(e){var t=e[0],n=e[1];i.env.scheduleInstallModifier(n,t);var r=t.getDestructor(n);r&&i.newDestroyable(r)})}),o.add(40,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=r.state,a=e.stack.pop(),s=e.elements(),u=s.constructing,l=s.updateOperations,c=e.dynamicScope(),h=i.create(u,o,a,c,l);e.fetchValue(p.Register.t0).addModifier(i,h);var f=i.getTag(h);(0,d.isConstTag)(f)||e.updateWith(new P(f,i,h))});var P=function(i){function e(e,t,n){var r=i.call(this)||this;return r.tag=e,r.manager=t,r.modifier=n,r.type=\"update-modifier\",r.lastUpdated=e.value(),r}return(0,s.inheritsLoose)(e,i),e.prototype.evaluate=function(e){var t=this.manager,n=this.modifier,r=this.tag,i=this.lastUpdated;r.validate(i)||(e.env.scheduleUpdateModifier(n,t),this.lastUpdated=r.value())},e}(t);o.add(35,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.constants.getString(r),s=i?e.constants.getString(i):null;e.elements().setStaticAttribute(o,a,s)}),o.add(36,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.stack.pop(),s=a.value(),u=i?e.constants.getString(i):null,l=e.elements().setDynamicAttribute(o,s,!!r,u);(0,d.isConst)(a)||e.updateWith(new L(a,l))});var L=function(r){function e(e,t){var n=r.call(this)||this;return n.reference=e,n.attribute=t,n.type=\"patch-element\",n.tag=e.tag,n.lastRevision=n.tag.value(),n}return(0,s.inheritsLoose)(e,r),e.prototype.evaluate=function(e){var t=this.attribute,n=this.reference,r=this.tag;r.validate(this.lastRevision)||(this.lastRevision=r.value(),t.update(n.value(),e.env))},e}(t);function M(e,t,n){return e.lookupComponentDefinition(t,n)}var j=function(){function e(e,t,n,r){this.inner=e,this.resolver=t,this.meta=n,this.args=r,this.tag=e.tag,this.lastValue=null,this.lastDefinition=null}var t=e.prototype;return t.value=function(){var e=this.inner,t=this.lastValue,n=e.value();if(n===t)return this.lastDefinition;var r=null;return R(n)?r=n:\"string\"==typeof n&&n&&(r=M(this.resolver,n,this.meta)),r=this.curry(r),this.lastValue=n,this.lastDefinition=r},t.get=function(){return l},t.curry=function(e){var t=this.args;return!t&&R(e)?e:e?new y(e,t):null},e}(),D=function(){function e(e){this.list=e,this.tag=(0,d.combineTagged)(e),this.list=e}return e.prototype.value=function(){for(var e=[],t=this.list,n=0;n<t.length;n++){var r=b(t[n].value());r&&e.push(r)}return 0===e.length?null:e.join(\" \")},e}();function I(e){return 0|(e.dynamicLayout?1:0)|(e.dynamicTag?2:0)|(e.prepareArgs?4:0)|(e.createArgs?8:0)|(e.attributeHook?16:0)|(e.elementHook?32:0)|(e.dynamicScope?64:0)|(e.createCaller?128:0)|(e.updateHook?256:0)|(e.createInstance?512:0)}function F(e,t){return!!(e&t)}o.add(69,function(e){var t=e.stack,n=t.pop();t.push(k.create(n))}),o.add(70,function(e){var t=e.stack,n=t.peek();t.push(new x(n))}),o.add(71,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),a=e.constants.getSerializable(n),s=e.constants.resolver;e.loadValue(p.Register.v0,new j(i,s,a,o))}),o.add(72,function(e,t){var n=t.op1,r=e.constants.resolveHandle(n),i=r.manager,o=I(i.getCapabilities(r.state)),a={definition:r,manager:i,capabilities:o,state:null,handle:null,table:null,lookup:null};e.stack.push(a)}),o.add(75,function(e,t){var n=t.op1,r=e.stack,i=r.pop().value(),o=e.constants.getSerializable(n);if(e.loadValue(p.Register.t1,null),\"string\"==typeof i)var a=M(e.constants.resolver,i,o);else{if(!R(i))throw(0,f.unreachable)();a=i}r.push(a)}),o.add(73,function(e){var t,n,r=e.stack,i=r.pop();R(i)?n=t=null:t=I((n=i.manager).getCapabilities(i.state)),r.push({definition:i,capabilities:t,manager:n,state:null,handle:null,table:null})}),o.add(74,function(e,t){(0,s.objectDestructuringEmpty)(t);var n=e.stack,r=n.pop().value();if(!R(r))throw(0,f.unreachable)();n.push(r)}),o.add(76,function(e,t){var n=t.op1,r=t.op2,i=e.stack,o=e.constants.getStringArray(n),a=r>>4,s=8&r,u=[];4&r&&u.push(\"main\"),2&r&&u.push(\"else\"),1&r&&u.push(\"attrs\"),e.args.setup(i,o,u,a,!!s),i.push(e.args)}),o.add(77,function(e){var t=e.stack;t.push(e.args.empty(t))}),o.add(80,function(e){var t=e.stack,n=t.pop().capture();t.push(n)}),o.add(79,function(e,t){var n,r,i,o,a,s,u=t.op1,l=e.stack,c=e.fetchValue(u),h=l.pop(),f=c.definition;R(f)&&(r=f,i=h,o=(n=c).definition=r.unwrap(i),a=o.manager,s=o.state,n.manager=a,n.capabilities=I(a.getCapabilities(s)),f=o);var p=f.manager,d=f.state;if(!0==!!(4&c.capabilities)){var m=h.blocks.values,v=h.blocks.names,g=p.prepareArgs(d,h);if(g){h.clear();for(var y=0;y<m.length;y++)l.push(m[y]);for(var b=g.positional,_=g.named,w=b.length,E=0;E<w;E++)l.push(b[E]);for(var T=Object.keys(_),C=0;C<T.length;C++)l.push(_[T[C]]);h.setup(l,T,v,w,!0)}l.push(h)}else l.push(h)}),o.add(81,function(e,t){var n=t.op1,r=t.op2,i=e.fetchValue(r),o=i.definition,a=i.manager,s=i.capabilities=I(a.getCapabilities(o.state)),u=null;s&64&&(u=e.dynamicScope());var l=1&n,c=null;s&8&&(c=e.stack.peek());var h=null;s&128&&(h=e.getSelf());var f=a.create(e.env,o.state,c,u,h,!!l);i.state=f;var p=a.getTag(f);s&256&&!(0,d.isConstTag)(p)&&e.updateWith(new q(p,f,a,u))}),o.add(82,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,a=i.getDestructor(o);a&&e.newDestroyable(a)}),o.add(91,function(e){e.beginCacheGroup(),e.elements().pushSimpleBlock()}),o.add(83,function(e){e.loadValue(p.Register.t0,new B)}),o.add(37,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants.getString(n),a=e.stack.pop(),s=i?e.constants.getString(i):null;e.fetchValue(p.Register.t0).setAttribute(o,a,!!r,s)});var B=function(){function e(){this.attributes=(0,f.dict)(),this.classes=[],this.modifiers=[]}var t=e.prototype;return t.setAttribute=function(e,t,n,r){var i={value:t,namespace:r,trusting:n};\"class\"===e&&this.classes.push(t),this.attributes[e]=i},t.addModifier=function(e,t){this.modifiers.push([e,t])},t.flush=function(e){for(var t in this.attributes){var n,r=this.attributes[t],i=r.value,o=r.namespace,a=r.trusting;\"class\"===t&&(i=new D(this.classes)),\"type\"!==t&&(n=e.elements().setDynamicAttribute(t,i.value(),a,o),(0,d.isConst)(i)||e.updateWith(new L(i,n)))}var s,u;return\"type\"in this.attributes&&(i=(s=this.attributes.type).value,o=s.namespace,a=s.trusting,u=e.elements().setDynamicAttribute(\"type\",i.value(),a,o),(0,d.isConst)(i)||e.updateWith(new L(i,u))),this.modifiers},e}();function U(e){return!1==!!(1&e)}function z(e,t,n,r,i){var o=n.table.symbols.indexOf(e),a=r.get(t);-1!==o&&i.scope().bindBlock(o+1,a),n.lookup&&(n.lookup[e]=a)}o.add(93,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager,s=e.fetchValue(p.Register.t0);a.didCreateElement(o,e.elements().expectConstructing(\"DidCreateElementOpcode#evaluate\"),s)}),o.add(84,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager;e.stack.push(a.getSelf(o))}),o.add(85,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.definition,o=r.state,a=i.manager;e.stack.push(a.getTagName(o))}),o.add(86,function(e,t){var n,r=t.op1,i=e.fetchValue(r),o=i.manager,a=i.definition,s=e.constants.resolver,u=e.stack,l=i.state,c=i.capabilities,h=a.state;if(U(c))n=o.getLayout(h,s);else{if(1!=!!(1&c))throw(0,f.unreachable)();n=o.getDynamicLayout(l,s)}u.push(n.symbolTable),u.push(n.handle)}),o.add(68,function(e,t){var n=t.op1,r=e.stack.pop(),i=e.stack.pop(),o=r.manager,a=I(o.getCapabilities(r.state)),s={definition:r,manager:o,capabilities:a,state:null,handle:i.handle,table:i.symbolTable,lookup:null};e.loadValue(n,s)}),o.add(89,function(e,t){var n=t.op1,r=e.stack,i=r.pop(),o=r.pop(),a=e.fetchValue(n);a.handle=i,a.table=o}),o.add(21,function(e,t){var n=t.op1,r=e.fetchValue(n).table.symbols;e.pushRootScope(r.length+1,!0)}),o.add(87,function(e,t){var n,r=t.op1,i=e.fetchValue(r);i.table.hasEval&&(n=i.lookup=(0,f.dict)(),e.scope().bindEvalScope(n))}),o.add(2,function(e,t){for(var n=t.op1,r=e.fetchValue(n),i=e.scope(),o=e.stack.peek(),a=o.named.atNames,s=a.length-1;0<=s;s--){var u=a[s],l=r.table.symbols.indexOf(a[s]),c=o.named.get(u,!1);-1!==l&&i.bindSymbol(l+1,c),r.lookup&&(r.lookup[u]=c)}}),o.add(3,function(e,t){var n=t.op1,r=e.fetchValue(n),i=e.stack.peek().blocks;z(\"&attrs\",\"attrs\",r,i,e),z(\"&inverse\",\"else\",r,i,e),z(\"&default\",\"main\",r,i,e)}),o.add(90,function(e,t){var n=t.op1,r=e.fetchValue(n);e.call(r.handle)}),o.add(94,function(e,t){var n=t.op1,r=e.fetchValue(n),i=r.manager,o=r.state,a=e.elements().popBlock();i.didRenderLayout(o,a),e.env.didCreate(o,i),e.updateWith(new H(i,o,a))}),o.add(92,function(e){e.commitCacheGroup()});var q=function(o){function e(e,t,n,r){var i=o.call(this)||this;return i.tag=e,i.component=t,i.manager=n,i.dynamicScope=r,i.type=\"update-component\",i}return(0,s.inheritsLoose)(e,o),e.prototype.evaluate=function(){var e=this.component,t=this.manager,n=this.dynamicScope;t.update(e,n)},e}(t),H=function(i){function e(e,t,n){var r=i.call(this)||this;return r.manager=e,r.component=t,r.bounds=n,r.type=\"did-update-layout\",r.tag=d.CONSTANT_TAG,r}return(0,s.inheritsLoose)(e,i),e.prototype.evaluate=function(e){var t=this.manager,n=this.component,r=this.bounds;t.didUpdateLayout(n,r),e.env.didUpdate(n,t)},e}(t);function V(e,t){console.info(\"Use `context`, and `get(<path>)` to debug this template.\"),t(\"this\")}var W=V;var Y=function(){function e(e,t,n){this.scope=e,this.locals=(0,f.dict)();for(var r=0;r<n.length;r++){var i=n[r],o=t[i-1],a=e.getSymbol(i);this.locals[o]=a}}return e.prototype.get=function(e){var t,n=this.scope,r=this.locals,i=e.split(\".\"),o=e.split(\".\"),a=o[0],s=o.slice(1),u=n.getEvalScope();return\"this\"===a?t=n.getSelf():r[a]?t=r[a]:0===a.indexOf(\"@\")&&u[a]?t=u[a]:(t=this.scope.getSelf(),s=i),s.reduce(function(e,t){return e.get(t)},t)},e}();o.add(97,function(e,t){var n=t.op1,r=t.op2,i=e.constants.getStringArray(n),o=e.constants.getArray(r),a=new Y(e.scope(),i,o);W(e.getSelf().value(),function(e){return a.get(e).value()})}),o.add(95,function(e,t){var n=t.op1,r=t.op2,i=t.op3,o=e.constants,a=e.constants.resolver,s=e.stack.pop().value(),u=o.getSerializable(n),l=o.getStringArray(r),c=o.getArray(i),h=a.lookupPartial(s,u),f=a.resolve(h).getPartial(),p=f.symbolTable,d=f.handle,m=p.symbols,v=e.scope(),g=e.pushRootScope(m.length,!1),y=v.getEvalScope();g.bindCallerScope(v.getCallerScope()),g.bindEvalScope(y),g.bindSelf(v.getSelf());for(var b=Object.create(v.getPartialMap()),_=0;_<c.length;_++){var w=c[_],E=l[w-1],T=v.getSymbol(w);b[E]=T}if(y)for(var C=0;C<m.length;C++){var R=C+1,k=y[m[C]];void 0!==k&&g.bind(R,k)}g.bindPartialMap(b),e.pushFrame(),e.call(d)});var G=function(){function e(e){this.tag=e.tag,this.artifacts=e}return e.prototype.value=function(){return!this.artifacts.isEmpty()},e}();o.add(66,function(e){var t=e.stack,n=t.pop(),r=t.pop(),i=e.env.iterableFor(n,r.value()),o=new d.ReferenceIterator(i);t.push(o),t.push(new G(o.artifacts))}),o.add(64,function(e,t){var n=t.op1;e.enterList(n)}),o.add(65,function(e){e.exitList()}),o.add(67,function(e,t){var n,r=t.op1,i=e.stack.peek().next();i?(n=e.iterate(i.memo,i.value),e.enterItem(i.key,n)):e.goto(r)});function Q(e,t){this.element=e,this.nextSibling=t}e.Cursor=Q;var K=function(){function e(e,t,n){this.parentNode=e,this.first=t,this.last=n}var t=e.prototype;return t.parentElement=function(){return this.parentNode},t.firstNode=function(){return this.first},t.lastNode=function(){return this.last},e}();e.ConcreteBounds=K;var $=function(){function e(e,t){this.parentNode=e,this.node=t}var t=e.prototype;return t.parentElement=function(){return this.parentNode},t.firstNode=function(){return this.node},t.lastNode=function(){return this.node},e}();function X(e,t){for(var n=e.parentElement(),r=e.firstNode(),i=e.lastNode(),o=r;;){var a=o.nextSibling;if(n.insertBefore(o,t),o===i)return a;o=a}}function J(e){for(var t=e.parentElement(),n=e.firstNode(),r=e.lastNode(),i=n;;){var o=i.nextSibling;if(t.removeChild(i),i===r)return o;i=o}}function Z(e,t,i){if(!e)return t;if(!function(e,t){var n=e.createElementNS(t,\"svg\");try{n.insertAdjacentHTML(\"beforeend\",\"<circle></circle>\")}catch(e){}finally{return 1===n.childNodes.length&&n.firstChild.namespaceURI===te?!1:!0}}(e,i))return t;var o=e.createElement(\"div\");return function(r){function e(){return r.apply(this,arguments)||this}return(0,s.inheritsLoose)(e,r),e.prototype.insertHTMLBefore=function(e,t,n){return\"\"===n||e.namespaceURI!==i?r.prototype.insertHTMLBefore.call(this,e,t,n):function(e,t,n,r){var i;{var o,a;i=\"FOREIGNOBJECT\"===e.tagName.toUpperCase()?(o=\"<svg><foreignObject>\"+n+\"</foreignObject></svg>\",t.innerHTML=o,t.firstChild.firstChild):(a=\"<svg>\"+n+\"</svg>\",t.innerHTML=a,t.firstChild)}return function(e,t,n){var r=e.firstChild,i=r,o=r;for(;o;){var a=o.nextSibling;t.insertBefore(o,n),i=o,o=a}return new K(t,r,i)}(i,e,r)}(e,o,n,t)},e}(t)}function ee(e,t){return e?((n=e.createElement(\"div\")).innerHTML=\"first\",n.insertAdjacentHTML(\"beforeend\",\"second\"),2===n.childNodes.length?t:function(a){function e(e){var t=a.call(this,e)||this;return t.uselessComment=e.createComment(\"\"),t}return(0,s.inheritsLoose)(e,a),e.prototype.insertHTMLBefore=function(e,t,n){if(\"\"===n)return a.prototype.insertHTMLBefore.call(this,e,t,n);var r=!1,i=t?t.previousSibling:e.lastChild;i&&i instanceof Text&&(r=!0,e.insertBefore(this.uselessComment,t));var o=a.prototype.insertHTMLBefore.call(this,e,t,n);return r&&e.removeChild(this.uselessComment),o},e}(t)):t;var n}var te=\"http://www.w3.org/2000/svg\";e.SVG_NAMESPACE=te;var ne={foreignObject:1,desc:1,title:1},re=Object.create(null);[\"b\",\"big\",\"blockquote\",\"body\",\"br\",\"center\",\"code\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"hr\",\"i\",\"img\",\"li\",\"listing\",\"main\",\"meta\",\"nobr\",\"ol\",\"p\",\"pre\",\"ruby\",\"s\",\"small\",\"span\",\"strong\",\"strike\",\"sub\",\"sup\",\"table\",\"tt\",\"u\",\"ul\",\"var\"].forEach(function(e){return re[e]=1});var ie=/[\\t-\\r \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,oe=\"undefined\"==typeof document?null:document;var ae,se=function(){function e(e){this.document=e,this.setupUselessElement()}var t=e.prototype;return t.setupUselessElement=function(){this.uselessElement=this.document.createElement(\"div\")},t.createElement=function(e,t){var n,r=t?(n=t.namespaceURI===te||\"svg\"===e,ne[t.tagName]):(n=\"svg\"===e,!1);if(!n||r)return this.document.createElement(e);if(re[e])throw new Error(\"Cannot create a \"+e+\" inside an SVG context\");return this.document.createElementNS(te,e)},t.insertBefore=function(e,t,n){e.insertBefore(t,n)},t.insertHTMLBefore=function(e,t,n){if(\"\"===n){var r=this.createComment(\"\");return e.insertBefore(r,t),new K(e,r,r)}var i,o,a=t?t.previousSibling:e.lastChild;null===t?(e.insertAdjacentHTML(\"beforeend\",n),i=e.lastChild):t instanceof HTMLElement?(t.insertAdjacentHTML(\"beforebegin\",n),i=t.previousSibling):(o=this.uselessElement,e.insertBefore(o,t),o.insertAdjacentHTML(\"beforebegin\",n),i=o.previousSibling,e.removeChild(o));var s=a?a.nextSibling:e.firstChild;return new K(e,s,i)},t.createTextNode=function(e){return this.document.createTextNode(e)},t.createComment=function(e){return this.document.createComment(e)},e}();!function(e){var t=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.createElementNS=function(e,t){return this.document.createElementNS(e,t)},n.setAttribute=function(e,t,n,r){var i=3<arguments.length&&void 0!==r?r:null;i?e.setAttributeNS(i,t,n):e.setAttribute(t,n)},t}(se);e.TreeConstruction=t;var n=ee(oe,n=t);n=Z(oe,n,te),e.DOMTreeConstruction=n}(ae=ae||{});var ue=function(n){function e(e){var t=n.call(this,e)||this;return t.document=e,t.namespace=null,t}(0,s.inheritsLoose)(e,n);var t=e.prototype;return t.setAttribute=function(e,t,n){e.setAttribute(t,n)},t.removeAttribute=function(e,t){e.removeAttribute(t)},t.insertAfter=function(e,t,n){this.insertBefore(e,t,n.nextSibling)},e}(se);e.IDOMChanges=ue;var le=ee(oe,le=ue);le=Z(oe,le,te),e.DOMChanges=le;var ce=ae.DOMTreeConstruction;e.DOMTreeConstruction=ce;var he=[\"javascript:\",\"vbscript:\"],fe=[\"A\",\"BODY\",\"LINK\",\"IMG\",\"IFRAME\",\"BASE\",\"FORM\"],pe=[\"EMBED\"],de=[\"href\",\"src\",\"background\",\"action\"],me=[\"src\"];function ve(e,t){return-1!==e.indexOf(t)}function ge(e,t){return(null===e||ve(fe,e))&&ve(de,t)}function ye(e,t){return null!==e&&(ve(pe,e)&&ve(me,t))}function be(e,t){return ge(e,t)||ye(e,t)}function _e(e,t,n,r){var i=null;if(null==r)return r;if(w(r))return r.toHTML();i=t?t.tagName.toUpperCase():null;var o=b(r);if(ge(i,n)){var a=e.protocolForURL(o);if(ve(he,a))return\"unsafe:\"+o}return ye(i,n)?\"unsafe:\"+o:o}function we(e,t){var n,r,i,o,a,s;return t in e?(i=t,n=\"prop\"):i=(r=t.toLowerCase())in e?(n=\"prop\",r):(n=\"attr\",t),\"prop\"===n&&(\"style\"===i.toLowerCase()||(o=e.tagName,a=i,(s=Ee[o.toUpperCase()])&&s[a.toLowerCase()]))&&(n=\"attr\"),{normalized:i,type:n}}var Ee={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},BUTTON:{form:!0}};function Te(e,t,n){var r=e.tagName,i={element:e,name:t,namespace:n};if(e.namespaceURI===te)return Ce(r,t,i);var o=we(e,t),a=o.type,s=o.normalized;return(\"attr\"===a?Ce:function(e,t,n){if(be(e,t))return new Ae(t,n);if(function(e,t){return(\"INPUT\"===e||\"TEXTAREA\"===e)&&\"value\"===t}(e,t))return new Se(t,n);if(\"OPTION\"===e&&\"selected\"===t)return new Ne(t,n);return new xe(t,n)})(r,s,i)}function Ce(e,t,n){return new(be(e,t)?Oe:ke)(n)}function Re(e){this.attribute=e}var ke=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){var n,r,i,o=Pe(t);null!==o&&(r=(n=this.attribute).name,i=n.namespace,e.__setAttribute(r,o,i))},n.update=function(e){var t=Pe(e),n=this.attribute,r=n.element,i=n.name;null===t?r.removeAttribute(i):r.setAttribute(i,t)},t}(e.DynamicAttribute=Re);e.SimpleDynamicAttribute=ke;var xe=function(r){function e(e,t){var n=r.call(this,t)||this;return n.normalizedName=e,n}(0,s.inheritsLoose)(e,r);var t=e.prototype;return t.set=function(e,t){null!=t&&(this.value=t,e.__setProperty(this.normalizedName,t))},t.update=function(e){var t=this.attribute.element;this.value!==e&&null==(t[this.normalizedName]=this.value=e)&&this.removeAttribute()},t.removeAttribute=function(){var e=this.attribute,t=e.element,n=e.namespace;n?t.removeAttributeNS(n,this.normalizedName):t.removeAttribute(this.normalizedName)},e}(Re),Ae=function(o){function e(){return o.apply(this,arguments)||this}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.set=function(e,t,n){var r=this.attribute,i=_e(n,r.element,r.name,t);o.prototype.set.call(this,e,i,n)},t.update=function(e,t){var n=this.attribute,r=_e(t,n.element,n.name,e);o.prototype.update.call(this,r,t)},e}(xe),Oe=function(o){function e(){return o.apply(this,arguments)||this}(0,s.inheritsLoose)(e,o);var t=e.prototype;return t.set=function(e,t,n){var r=this.attribute,i=_e(n,r.element,r.name,t);o.prototype.set.call(this,e,i,n)},t.update=function(e,t){var n=this.attribute,r=_e(t,n.element,n.name,e);o.prototype.update.call(this,r,t)},e}(ke),Se=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){e.__setProperty(\"value\",b(t))},n.update=function(e){var t=this.attribute.element,n=t.value,r=b(e);n!==r&&(t.value=r)},t}(xe),Ne=function(e){function t(){return e.apply(this,arguments)||this}(0,s.inheritsLoose)(t,e);var n=t.prototype;return n.set=function(e,t){null!=t&&!1!==t&&e.__setProperty(\"selected\",!0)},n.update=function(e){var t=this.attribute.element;t.selected=!!e},t}(xe);function Pe(e){return!1===e||null==e||void 0===e.toString?null:!0===e?\"\":\"function\"==typeof e?null:String(e)}var Le=function(){function o(e,t,n,r){this.slots=e,this.callerScope=t,this.evalScope=n,this.partialMap=r}o.root=function(e,t){for(var n=1<arguments.length&&void 0!==t?t:0,r=new Array(n+1),i=0;i<=n;i++)r[i]=l;return new o(r,null,null,null).init({self:e})},o.sized=function(e){for(var t=0<arguments.length&&void 0!==e?e:0,n=new Array(t+1),r=0;r<=t;r++)n[r]=l;return new o(n,null,null,null)};var e=o.prototype;return e.init=function(e){var t=e.self;return this.slots[0]=t,this},e.getSelf=function(){return this.get(0)},e.getSymbol=function(e){return this.get(e)},e.getBlock=function(e){var t=this.get(e);return t===l?null:t},e.getEvalScope=function(){return this.evalScope},e.getPartialMap=function(){return this.partialMap},e.bind=function(e,t){this.set(e,t)},e.bindSelf=function(e){this.set(0,e)},e.bindSymbol=function(e,t){this.set(e,t)},e.bindBlock=function(e,t){this.set(e,t)},e.bindEvalScope=function(e){this.evalScope=e},e.bindPartialMap=function(e){this.partialMap=e},e.bindCallerScope=function(e){this.callerScope=e},e.getCallerScope=function(){return this.callerScope},e.child=function(){return new o(this.slots.slice(),this.callerScope,this.evalScope,this.partialMap)},e.get=function(e){if(e>=this.slots.length)throw new RangeError(\"BUG: cannot get $\"+e+\" from scope; length=\"+this.slots.length);return this.slots[e]},e.set=function(e,t){if(e>=this.slots.length)throw new RangeError(\"BUG: cannot get $\"+e+\" from scope; length=\"+this.slots.length);this.slots[e]=t},o}();e.Scope=Le;var Me=function(){function e(){this.scheduledInstallManagers=[],this.scheduledInstallModifiers=[],this.scheduledUpdateModifierManagers=[],this.scheduledUpdateModifiers=[],this.createdComponents=[],this.createdManagers=[],this.updatedComponents=[],this.updatedManagers=[],this.destructors=[]}var t=e.prototype;return t.didCreate=function(e,t){this.createdComponents.push(e),this.createdManagers.push(t)},t.didUpdate=function(e,t){this.updatedComponents.push(e),this.updatedManagers.push(t)},t.scheduleInstallModifier=function(e,t){this.scheduledInstallModifiers.push(e),this.scheduledInstallManagers.push(t)},t.scheduleUpdateModifier=function(e,t){this.scheduledUpdateModifiers.push(e),this.scheduledUpdateModifierManagers.push(t)},t.didDestroy=function(e){this.destructors.push(e)},t.commit=function(){for(var e=this.createdComponents,t=this.createdManagers,n=0;n<e.length;n++){var r=e[n];t[n].didCreate(r)}for(var i=this.updatedComponents,o=this.updatedManagers,a=0;a<i.length;a++){var s=i[a];o[a].didUpdate(s)}for(var u=this.destructors,l=0;l<u.length;l++)u[l].destroy();for(var c=this.scheduledInstallManagers,h=this.scheduledInstallModifiers,f=0;f<c.length;f++){var p=h[f];c[f].install(p)}for(var d=this.scheduledUpdateModifierManagers,m=this.scheduledUpdateModifiers,v=0;v<d.length;v++){var g=m[v];d[v].update(g)}},e}(),je=function(){function e(e){var t=e.appendOperations,n=e.updateOperations;this._transaction=null,this.appendOperations=t,this.updateOperations=n}var t=e.prototype;return t.toConditionalReference=function(e){return new m(e)},t.getAppendOperations=function(){return this.appendOperations},t.getDOM=function(){return this.updateOperations},t.begin=function(){this._transaction=new Me},t.didCreate=function(e,t){this.transaction.didCreate(e,t)},t.didUpdate=function(e,t){this.transaction.didUpdate(e,t)},t.scheduleInstallModifier=function(e,t){this.transaction.scheduleInstallModifier(e,t)},t.scheduleUpdateModifier=function(e,t){this.transaction.scheduleUpdateModifier(e,t)},t.didDestroy=function(e){this.transaction.didDestroy(e)},t.commit=function(){var e=this.transaction;this._transaction=null,e.commit()},t.attributeFor=function(e,t,n,r){return Te(e,t,3<arguments.length&&void 0!==r?r:null)},(0,s.createClass)(e,[{key:\"transaction\",get:function(){return this._transaction}}]),e}(),De=function(n){function e(e){var t;return e||(t=window.document,e={appendOperations:new ce(t),updateOperations:new ue(t)}),n.call(this,e)||this}return(0,s.inheritsLoose)(e,n),e}(e.Environment=je);e.DefaultEnvironment=De;var Ie=function(){function e(e,t,n,r){var i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:-1,o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:-1;this.stack=e,this.heap=t,this.program=n,this.externs=r,this.pc=i,this.ra=o,this.currentOpSize=0}var t=e.prototype;return t.pushFrame=function(){this.stack.push(this.ra),this.stack.push(this.stack.fp),this.stack.fp=this.stack.sp-1},t.popFrame=function(){this.stack.sp=this.stack.fp-1,this.ra=this.stack.get(0),this.stack.fp=this.stack.get(1)},t.pushSmallFrame=function(){this.stack.push(this.ra)},t.popSmallFrame=function(){this.ra=this.stack.popSmi()},t.goto=function(e){var t=this.pc+e-this.currentOpSize;this.pc=t},t.call=function(e){this.ra=this.pc,this.pc=this.heap.getaddr(e)},t.returnTo=function(e){var t=this.pc+e-this.currentOpSize;this.ra=t},t.return=function(){this.pc=this.ra},t.nextStatement=function(){var e=this.pc,t=this.program;if(-1===e)return null;var n=this.program.opcode(e).size,r=this.currentOpSize=n;return this.pc+=r,t.opcode(e)},t.evaluateOuter=function(e,t){this.evaluateInner(e,t)},t.evaluateInner=function(e,t){e.isMachine?this.evaluateMachine(e):this.evaluateSyscall(e,t)},t.evaluateMachine=function(e){switch(e.type){case 57:return this.pushFrame();case 58:return this.popFrame();case 59:return this.pushSmallFrame();case 60:return this.popSmallFrame();case 50:return this.call(e.op1);case 49:return this.call(this.stack.popSmi());case 52:return this.goto(e.op1);case 24:return this.return();case 25:return this.returnTo(e.op1)}},t.evaluateSyscall=function(e,t){o.evaluate(t,e,e.type)},e}(),Fe=function(){function e(e){this.node=e}return e.prototype.firstNode=function(){return this.node},e}(),Be=function(){function e(e){this.node=e}return e.prototype.lastNode=function(){return this.node},e}(),Ue=function(){function e(e,t,n){this.constructing=null,this.operations=null,this.cursorStack=new f.Stack,this.modifierStack=new f.Stack,this.blockStack=new f.Stack,this.pushElement(t,n),this.env=e,this.dom=e.getAppendOperations(),this.updateOperations=e.getDOM()}e.forInitialRender=function(e,t){var n=new this(e,t.element,t.nextSibling);return n.pushSimpleBlock(),n},e.resume=function(e,t,n){var r=new this(e,t.parentElement(),n);return r.pushSimpleBlock(),r.pushBlockTracker(t),r};var t=e.prototype;return t.expectConstructing=function(){return this.constructing},t.block=function(){return this.blockStack.current},t.popElement=function(){this.cursorStack.pop(),this.cursorStack.current},t.pushSimpleBlock=function(){return this.pushBlockTracker(new ze(this.element))},t.pushUpdatableBlock=function(){return this.pushBlockTracker(new He(this.element))},t.pushBlockList=function(e){return this.pushBlockTracker(new Ve(this.element,e))},t.pushBlockTracker=function(e,t){var n=1<arguments.length&&void 0!==t&&t,r=this.blockStack.current;return null!==r&&(r.newDestroyable(e),n||r.didAppendBounds(e)),this.__openBlock(),this.blockStack.push(e),e},t.popBlock=function(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()},t.__openBlock=function(){},t.__closeBlock=function(){},t.openElement=function(e){var t=this.__openElement(e);return this.constructing=t},t.__openElement=function(e){return this.dom.createElement(e,this.element)},t.flushElement=function(e){var t=this.element,n=this.constructing;this.__flushElement(t,n),this.constructing=null,this.operations=null,this.pushModifiers(e),this.pushElement(n,null),this.didOpenElement(n)},t.__flushElement=function(e,t){this.dom.insertBefore(e,t,this.nextSibling)},t.closeElement=function(){return this.willCloseElement(),this.popElement(),this.popModifiers()},t.pushRemoteElement=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:null;this.__pushRemoteElement(e,t,r)},t.__pushRemoteElement=function(e,t,n){this.pushElement(e,n);var r=new qe(e);this.pushBlockTracker(r,!0)},t.popRemoteElement=function(){this.popBlock(),this.popElement()},t.pushElement=function(e,t){this.cursorStack.push(new Q(e,t))},t.pushModifiers=function(e){this.modifierStack.push(e)},t.popModifiers=function(){return this.modifierStack.pop()},t.didAddDestroyable=function(e){this.block().newDestroyable(e)},t.didAppendBounds=function(e){return this.block().didAppendBounds(e),e},t.didAppendNode=function(e){return this.block().didAppendNode(e),e},t.didOpenElement=function(e){return this.block().openElement(e),e},t.willCloseElement=function(){this.block().closeElement()},t.appendText=function(e){return this.didAppendNode(this.__appendText(e))},t.__appendText=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createTextNode(e);return t.insertBefore(n,i,r),i},t.__appendNode=function(e){return this.dom.insertBefore(this.element,e,this.nextSibling),e},t.__appendFragment=function(e){var t=e.firstChild;if(t){var n=new K(this.element,t,e.lastChild);return this.dom.insertBefore(this.element,e,this.nextSibling),n}return new $(this.element,this.__appendComment(\"\"))},t.__appendHTML=function(e){return this.dom.insertHTMLBefore(this.element,this.nextSibling,e)},t.appendDynamicHTML=function(e){var t=this.trustedContent(e);this.didAppendBounds(t)},t.appendDynamicText=function(e){var t=this.untrustedContent(e);return this.didAppendNode(t),t},t.appendDynamicFragment=function(e){var t=this.__appendFragment(e);this.didAppendBounds(t)},t.appendDynamicNode=function(e){var t=this.__appendNode(e),n=new $(this.element,t);this.didAppendBounds(n)},t.trustedContent=function(e){return this.__appendHTML(e)},t.untrustedContent=function(e){return this.__appendText(e)},t.appendComment=function(e){return this.didAppendNode(this.__appendComment(e))},t.__appendComment=function(e){var t=this.dom,n=this.element,r=this.nextSibling,i=t.createComment(e);return t.insertBefore(n,i,r),i},t.__setAttribute=function(e,t,n){this.dom.setAttribute(this.constructing,e,t,n)},t.__setProperty=function(e,t){this.constructing[e]=t},t.setStaticAttribute=function(e,t,n){this.__setAttribute(e,t,n)},t.setDynamicAttribute=function(e,t,n,r){var i=this.constructing,o=this.env.attributeFor(i,e,n,r);return o.set(this,t,this.env),o},(0,s.createClass)(e,[{key:\"element\",get:function(){return this.cursorStack.current.element}},{key:\"nextSibling\",get:function(){return this.cursorStack.current.nextSibling}}]),e}();e.NewElementBuilder=Ue;var ze=function(){function e(e){this.parent=e,this.first=null,this.last=null,this.destroyables=null,this.nesting=0}var t=e.prototype;return t.destroy=function(){var e=this.destroyables;if(e&&e.length)for(var t=0;t<e.length;t++)e[t].destroy()},t.parentElement=function(){return this.parent},t.firstNode=function(){return this.first.firstNode()},t.lastNode=function(){return this.last.lastNode()},t.openElement=function(e){this.didAppendNode(e),this.nesting++},t.closeElement=function(){this.nesting--},t.didAppendNode=function(e){0===this.nesting&&(this.first||(this.first=new Fe(e)),this.last=new Be(e))},t.didAppendBounds=function(e){0===this.nesting&&(this.first||(this.first=e),this.last=e)},t.newDestroyable=function(e){this.destroyables=this.destroyables||[],this.destroyables.push(e)},t.finalize=function(e){null===this.first&&e.appendComment(\"\")},e}(),qe=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.prototype.destroy=function(){e.prototype.destroy.call(this),J(this)},t}(ze),He=function(e){function t(){return e.apply(this,arguments)||this}return(0,s.inheritsLoose)(t,e),t.prototype.reset=function(e){var t=this.destroyables;if(t&&t.length)for(var n=0;n<t.length;n++)e.didDestroy(t[n]);var r=J(this);return this.first=null,this.last=null,this.destroyables=null,this.nesting=0,r},t}(ze),Ve=function(){function e(e,t){this.parent=e,this.boundList=t,this.parent=e,this.boundList=t}var t=e.prototype;return t.destroy=function(){this.boundList.forEachNode(function(e){return e.destroy()})},t.parentElement=function(){return this.parent},t.firstNode=function(){return this.boundList.head().firstNode()},t.lastNode=function(){return this.boundList.tail().lastNode()},t.openElement=function(){},t.closeElement=function(){},t.didAppendNode=function(){},t.didAppendBounds=function(){},t.newDestroyable=function(){},t.finalize=function(){},e}();var We=268435455,Ye=function(){function r(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:new n.Stack,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[];this.inner=e,this.js=t}var e=r.prototype;return e.slice=function(e,t){var n=\"number\"==typeof e&&\"number\"==typeof t?this.inner.slice(e,t):\"number\"==typeof e&&void 0===t?this.inner.sliceFrom(e):this.inner.clone();return new r(n,this.js.slice(e,t))},e.sliceInner=function(e,t){for(var n=[],r=e;r<t;r++)n.push(this.get(r));return n},e.copy=function(e,t){this.inner.copy(e,t)},e.write=function(e,t){var n;!function(e){var t=typeof e;if(null==e)return!0;switch(t){case\"boolean\":case\"undefined\":return!0;case\"number\":if(e%1!=0)return!1;var n=Math.abs(e);return We<n?!1:!0;default:return!1}}(t)?(n=this.js.length,this.js.push(t),this.inner.writeRaw(e,~n)):this.inner.writeRaw(e,function(e){switch(typeof e){case\"number\":return function(e){{if(e<0){var t=Math.abs(e);if(We<t)throw new Error(\"not smi\");return Math.abs(e)<<3|4}if(We<e)throw new Error(\"not smi\");return e<<3|0}}(e);case\"boolean\":return e?11:3;case\"object\":return 19;case\"undefined\":return 27;default:throw(0,f.unreachable)()}}(t))},e.writeRaw=function(e,t){this.inner.writeRaw(e,t)},e.get=function(e){var t=this.inner.getRaw(e);return t<0?this.js[~t]:function(e){switch(e){case 3:return!1;case 11:return!0;case 19:return null;case 27:return;default:return function(e){switch(7&e){case 0:return e>>3;case 4:return-(e>>3);default:throw(0,f.unreachable)()}}(e)}}(t)},e.reset=function(){this.inner.reset(),this.js.length=0},(0,s.createClass)(r,[{key:\"length\",get:function(){return this.inner.len()}}]),r}(),Ge=function(){function e(e,t,n){this.stack=e,this.fp=t,this.sp=n}e.empty=function(){return new this(new Ye,0,-1)},e.restore=function(e){for(var t=new Ye,n=0;n<e.length;n++)t.write(n,e[n]);return new this(t,0,e.length-1)};var t=e.prototype;return t.push=function(e){this.stack.write(++this.sp,e)},t.pushEncodedImmediate=function(e){this.stack.writeRaw(++this.sp,e)},t.pushNull=function(){this.stack.write(++this.sp,null)},t.dup=function(e){var t=0<arguments.length&&void 0!==e?e:this.sp;this.stack.copy(t,++this.sp)},t.copy=function(e,t){this.stack.copy(e,t)},t.pop=function(e){var t=0<arguments.length&&void 0!==e?e:1,n=this.stack.get(this.sp);return this.sp-=t,n},t.popSmi=function(){return this.stack.get(this.sp--)},t.peek=function(e){var t=0<arguments.length&&void 0!==e?e:0;return this.stack.get(this.sp-t)},t.get=function(e,t){var n=1<arguments.length&&void 0!==t?t:this.fp;return this.stack.get(n+e)},t.set=function(e,t,n){var r=2<arguments.length&&void 0!==n?n:this.fp;this.stack.write(r+t,e)},t.slice=function(e,t){return this.stack.slice(e,t)},t.sliceArray=function(e,t){return this.stack.sliceInner(e,t)},t.capture=function(e){var t=this.sp+1,n=t-e;return this.stack.sliceInner(n,t)},t.reset=function(){this.stack.reset()},t.toArray=function(){return this.stack.sliceInner(this.fp,this.sp+1)},e}();var Qe=function(){function e(e,t,n){var r=n.alwaysRevalidate,i=void 0!==r&&r;this.frameStack=new f.Stack,this.env=e,this.constants=t.constants,this.dom=e.getDOM(),this.alwaysRevalidate=i}var t=e.prototype;return t.execute=function(e,t){var n=this.frameStack;for(this.try(e,t);!n.isEmpty();){var r=this.frame.nextStatement();null!==r?r.evaluate(this):this.frameStack.pop()}},t.goto=function(e){this.frame.goto(e)},t.try=function(e,t){this.frameStack.push(new Ze(e,t))},t.throw=function(){this.frame.handleException(),this.frameStack.pop()},(0,s.createClass)(e,[{key:\"frame\",get:function(){return this.frameStack.current}}]),e}();e.UpdatingVM=Qe;var Ke=function(a){function e(e,t,n,r,i){var o=a.call(this)||this;return o.start=e,o.state=t,o.runtime=n,o.type=\"block\",o.next=null,o.prev=null,o.children=i,o.bounds=r,o}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.parentElement=function(){return this.bounds.parentElement()},t.firstNode=function(){return this.bounds.firstNode()},t.lastNode=function(){return this.bounds.lastNode()},t.evaluate=function(e){e.try(this.children,null)},t.destroy=function(){this.bounds.destroy()},t.didDestroy=function(){this.runtime.env.didDestroy(this.bounds)},e}(t),$e=function(a){function e(e,t,n,r,i){var o=a.call(this,e,t,n,r,i)||this;return o.type=\"try\",o.tag=o._tag=d.UpdatableTag.create(d.CONSTANT_TAG),o}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.didInitializeChildren=function(){this._tag.inner.update((0,d.combineSlice)(this.children))},t.evaluate=function(e){e.try(this.children,this)},t.handleException=function(){var t=this,n=this.state,e=this.bounds,r=this.children,i=this.start,o=this.prev,a=this.next,s=this.runtime;r.clear();var u=Ue.resume(s.env,e,e.reset(s.env)),l=ft.resume(n,s,u),c=new f.LinkedList;l.execute(i,function(e){e.stack=Ge.restore(n.stack),e.updatingOpcodeStack.push(c),e.updateWith(t),e.updatingOpcodeStack.push(r)}),this.prev=o,this.next=a},e}(Ke),Xe=function(){function e(e,t){this.opcode=e,this.marker=t,this.didInsert=!1,this.didDelete=!1,this.map=e.map,this.updating=e.children}var t=e.prototype;return t.insert=function(t,n,r,e){var i=this.map,o=this.opcode,a=this.updating,s=null,u=null,s=\"string\"==typeof e?(u=i[e]).bounds.firstNode():this.marker,l=o.vmForInsertion(s),c=null,h=o.start;l.execute(h,function(e){i[t]=c=e.iterate(r,n),e.updatingOpcodeStack.push(new f.LinkedList),e.updateWith(c),e.updatingOpcodeStack.push(c.children)}),a.insertBefore(c,u),this.didInsert=!0},t.retain=function(){},t.move=function(e,t,n,r){var i=this.map,o=this.updating,a=i[e],s=i[r]||null;X(a,\"string\"==typeof r?s.firstNode():this.marker),o.remove(a),o.insertBefore(a,s)},t.delete=function(e){var t=this.map,n=t[e];n.didDestroy(),J(n),this.updating.remove(n),delete t[e],this.didDelete=!0},t.done=function(){this.opcode.didInitializeChildren(this.didInsert||this.didDelete)},e}(),Je=function(u){function e(e,t,n,r,i,o){var a=u.call(this,e,t,n,r,i)||this;a.type=\"list-block\",a.map=(0,f.dict)(),a.lastIterated=d.INITIAL,a.artifacts=o;var s=a._tag=d.UpdatableTag.create(d.CONSTANT_TAG);return a.tag=(0,d.combine)([o.tag,s]),a}(0,s.inheritsLoose)(e,u);var t=e.prototype;return t.didInitializeChildren=function(e){var t=!(0<arguments.length&&void 0!==e)||e;this.lastIterated=this.artifacts.tag.value(),t&&this._tag.inner.update((0,d.combineSlice)(this.children))},t.evaluate=function(e){var t,n,r,i,o=this.artifacts,a=this.lastIterated;o.tag.validate(a)||(t=this.bounds,r=(n=e.dom).createComment(\"\"),n.insertAfter(t.parentElement(),r,t.lastNode()),i=new Xe(this,r),new d.IteratorSynchronizer({target:i,artifacts:o}).sync(),this.parentElement().removeChild(r)),u.prototype.evaluate.call(this,e)},t.vmForInsertion=function(e){var t=this.bounds,n=this.state,r=this.runtime,i=Ue.forInitialRender(r.env,{element:t.parentElement(),nextSibling:e});return ft.resume(n,r,i)},e}(Ke),Ze=function(){function e(e,t){this.ops=e,this.exceptionHandler=t,this.current=e.head()}var t=e.prototype;return t.goto=function(e){this.current=e},t.nextStatement=function(){var e=this.current,t=this.ops;return e&&(this.current=t.nextNode(e)),e},t.handleException=function(){this.exceptionHandler&&this.exceptionHandler.handleException()},e}(),et=function(){function e(e,t,n,r){this.env=e,this.program=t,this.updating=n,this.bounds=r}var t=e.prototype;return t.rerender=function(e){var t=(0<arguments.length&&void 0!==e?e:{alwaysRevalidate:!1}).alwaysRevalidate,n=void 0!==t&&t,r=this.env,i=this.program,o=this.updating;new Qe(r,i,{alwaysRevalidate:n}).execute(o,this)},t.parentElement=function(){return this.bounds.parentElement()},t.firstNode=function(){return this.bounds.firstNode()},t.lastNode=function(){return this.bounds.lastNode()},t.handleException=function(){throw\"this should never happen\"},t.destroy=function(){this.bounds.destroy(),J(this.bounds)},e}();e.RenderResult=et;var tt=function(){function e(){this.stack=null,this.positional=new rt,this.named=new ot,this.blocks=new st}var t=e.prototype;return t.empty=function(e){var t=e.sp+1;return this.named.empty(e,t),this.positional.empty(e,t),this.blocks.empty(e,t),this},t.setup=function(e,t,n,r,i){this.stack=e;var o=this.named,a=t.length,s=e.sp-a+1;o.setup(e,s,a,t,i);var u=s-r;this.positional.setup(e,u,r);var l=this.blocks,c=n.length,h=u-3*c;l.setup(e,h,c,n)},t.at=function(e){return this.positional.at(e)},t.realloc=function(e){var t=this.stack;if(0<e&&null!==t){for(var n=this.positional,r=this.named,i=n.base+e,o=n.length+r.length-1;0<=o;o--)t.copy(o+n.base,o+i);n.base+=e,r.base+=e,t.sp+=e}},t.capture=function(){var e=0===this.positional.length?ct:this.positional.capture(),t=0===this.named.length?lt:this.named.capture();return new nt(this.tag,e,t,this.length)},t.clear=function(){var e=this.stack,t=this.length;0<t&&null!==e&&e.pop(t)},(0,s.createClass)(e,[{key:\"tag\",get:function(){return(0,d.combineTagged)([this.positional,this.named])}},{key:\"base\",get:function(){return this.blocks.base}},{key:\"length\",get:function(){return this.positional.length+this.named.length+3*this.blocks.length}}]),e}(),nt=function(){function e(e,t,n,r){this.tag=e,this.positional=t,this.named=n,this.length=r}return e.prototype.value=function(){return{named:this.named.value(),positional:this.positional.value()}},e}(),rt=function(){function e(){this.base=0,this.length=0,this.stack=null,this._tag=null,this._references=null}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._tag=d.CONSTANT_TAG,this._references=f.EMPTY_ARRAY},t.setup=function(e,t,n){this.stack=e,this.base=t,0===(this.length=n)?(this._tag=d.CONSTANT_TAG,this._references=f.EMPTY_ARRAY):(this._tag=null,this._references=null)},t.at=function(e){var t=this.base,n=this.length,r=this.stack;return e<0||n<=e?l:r.get(e,t)},t.capture=function(){return new it(this.tag,this.references)},t.prepend=function(e){var t=e.length;if(0<t){var n=this.base,r=this.length,i=this.stack;this.base=n-=t,this.length=r+t;for(var o=0;o<t;o++)i.set(e.at(o),o,n);this._tag=null,this._references=null}},(0,s.createClass)(e,[{key:\"tag\",get:function(){return this._tag||(this._tag=(0,d.combineTagged)(this.references))}},{key:\"references\",get:function(){var e,t,n,r=this._references;return r||(e=this.stack,t=this.base,n=this.length,r=this._references=e.sliceArray(t,t+n)),r}}]),e}(),it=function(){function e(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:t.length;this.tag=e,this.references=t,this.length=n}e.empty=function(){return new e(d.CONSTANT_TAG,f.EMPTY_ARRAY,0)};var t=e.prototype;return t.at=function(e){return this.references[e]},t.value=function(){return this.references.map(this.valueOf)},t.get=function(e){var t=this.references,n=this.length;if(\"length\"===e)return i.create(n);var r=parseInt(e,10);return r<0||n<=r?l:t[r]},t.valueOf=function(e){return e.value()},e}(),ot=function(){function e(){this.base=0,this.length=0,this._references=null,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.base=t,this.length=0,this._references=f.EMPTY_ARRAY,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY},t.setup=function(e,t,n,r,i){this.stack=e,this.base=t,0===(this.length=n)?(this._references=f.EMPTY_ARRAY,this._names=f.EMPTY_ARRAY,this._atNames=f.EMPTY_ARRAY):(this._references=null,i?(this._names=r,this._atNames=null):(this._names=null,this._atNames=r))},t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e,t){var n=!(1<arguments.length&&void 0!==t)||t,r=this.base,i=this.stack,o=(n?this.names:this.atNames).indexOf(e);return-1===o?l:i.get(o,r)},t.capture=function(){return new at(this.tag,this.names,this.references)},t.merge=function(e){var t=e.length;if(0<t){var n=this.names,r=this.length,i=this.stack,o=e.names;Object.isFrozen(n)&&0===n.length&&(n=[]);for(var a=0;a<t;a++){var s=o[a];-1===n.indexOf(s)&&(r=n.push(s),i.push(e.references[a]))}this.length=r,this._references=null,this._names=n,this._atNames=null}},t.toSyntheticName=function(e){return e.slice(1)},t.toAtName=function(e){return\"@\"+e},(0,s.createClass)(e,[{key:\"tag\",get:function(){return(0,d.combineTagged)(this.references)}},{key:\"names\",get:function(){return this._names||(this._names=this._atNames.map(this.toSyntheticName))}},{key:\"atNames\",get:function(){return this._atNames||(this._atNames=this._names.map(this.toAtName))}},{key:\"references\",get:function(){var e,t,n,r=this._references;return r||(e=this.base,t=this.length,n=this.stack,r=this._references=n.sliceArray(e,e+t)),r}}]),e}(),at=function(){function e(e,t,n){this.tag=e,this.names=t,this.references=n,this.length=t.length,this._map=null}var t=e.prototype;return t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.names,n=this.references,r=t.indexOf(e);return-1===r?l:n[r]},t.value=function(){for(var e=this.names,t=this.references,n=(0,f.dict)(),r=0;r<e.length;r++){n[e[r]]=t[r].value()}return n},(0,s.createClass)(e,[{key:\"map\",get:function(){if(!(n=this._map))for(var e=this.names,t=this.references,n=this._map=(0,f.dict)(),r=0;r<e.length;r++){n[e[r]]=t[r]}return n}}]),e}(),st=function(){function e(){this.internalValues=null,this.internalTag=null,this.names=f.EMPTY_ARRAY,this.length=0,this.base=0}var t=e.prototype;return t.empty=function(e,t){this.stack=e,this.names=f.EMPTY_ARRAY,this.base=t,this.length=0,this.internalTag=d.CONSTANT_TAG,this.internalValues=f.EMPTY_ARRAY},t.setup=function(e,t,n,r){this.stack=e,this.names=r,this.base=t,0===(this.length=n)?(this.internalTag=d.CONSTANT_TAG,this.internalValues=f.EMPTY_ARRAY):(this.internalTag=null,this.internalValues=null)},t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.base,n=this.stack,r=this.names,i=r.indexOf(e);if(-1===r.indexOf(e))return null;var o=n.get(3*i,t),a=n.get(3*i+1,t),s=n.get(3*i+2,t);return null===s?null:[s,a,o]},t.capture=function(){return new ut(this.names,this.values)},(0,s.createClass)(e,[{key:\"values\",get:function(){var e,t,n,r=this.internalValues;return r||(e=this.base,t=this.length,n=this.stack,r=this.internalValues=n.sliceArray(e,e+3*t)),r}}]),e}(),ut=function(){function e(e,t){this.names=e,this.values=t,this.length=e.length}var t=e.prototype;return t.has=function(e){return-1!==this.names.indexOf(e)},t.get=function(e){var t=this.names.indexOf(e);return-1===t?null:[this.values[3*t+2],this.values[3*t+1],this.values[3*t]]},e}(),lt=new at(d.CONSTANT_TAG,f.EMPTY_ARRAY,f.EMPTY_ARRAY),ct=new it(d.CONSTANT_TAG,f.EMPTY_ARRAY),ht=new nt(d.CONSTANT_TAG,ct,lt,0);e.EMPTY_ARGS=ht;var ft=function(){function u(e,t,n,r){var i=this;this.runtime=e,this.elementStack=r,this.dynamicScopeStack=new f.Stack,this.scopeStack=new f.Stack,this.updatingOpcodeStack=new f.Stack,this.cacheGroups=new f.Stack,this.listBlockStack=new f.Stack,this.s0=null,this.s1=null,this.t0=null,this.t1=null,this.v0=null,this.heap=this.program.heap,this.constants=this.program.constants,this.elementStack=r,this.scopeStack.push(t),this.dynamicScopeStack.push(n),this.args=new tt,this.inner=new Ie(Ge.empty(),this.heap,e.program,{debugBefore:function(e){return o.debugBefore(i,e,e.type)},debugAfter:function(e,t){o.debugAfter(i,e,e.type,t)}})}var e=u.prototype;return e.fetch=function(e){this.stack.push(this[p.Register[e]])},e.load=function(e){this[p.Register[e]]=this.stack.pop()},e.fetchValue=function(e){return this[p.Register[e]]},e.loadValue=function(e,t){this[p.Register[e]]=t},e.pushFrame=function(){this.inner.pushFrame()},e.popFrame=function(){this.inner.popFrame()},e.goto=function(e){this.inner.goto(e)},e.call=function(e){this.inner.call(e)},e.returnTo=function(e){this.inner.returnTo(e)},e.return=function(){this.inner.return()},u.initial=function(e,t,n,r,i,o){var a=e.heap.scopesizeof(o),s=new u({program:e,env:t},Le.root(n,a),r,i);return s.pc=s.heap.getaddr(o),s.updatingOpcodeStack.push(new f.LinkedList),s},u.empty=function(e,t,n,r){var i={get:function(){return l},set:function(){return l},child:function(){return i}},o=new u({program:e,env:t},Le.root(l,0),i,n);return o.updatingOpcodeStack.push(new f.LinkedList),o.pc=o.heap.getaddr(r),o},u.resume=function(e,t,n){return new u(t,e.scope,e.dynamicScope,n)},e.capture=function(e){return{dynamicScope:this.dynamicScope(),scope:this.scope(),stack:this.stack.capture(e)}},e.beginCacheGroup=function(){this.cacheGroups.push(this.updating().tail())},e.commitCacheGroup=function(){var e=new N(\"END\"),t=this.updating(),n=this.cacheGroups.pop(),r=n?t.nextNode(n):t.head(),i=t.tail(),o=(0,d.combineSlice)(new f.ListSlice(r,i)),a=new O(o,e);t.insertBefore(a,r),t.append(new S(a)),t.append(e)},e.enter=function(e){var t=new f.LinkedList,n=this.capture(e),r=this.elements().pushUpdatableBlock(),i=new $e(this.heap.gethandle(this.pc),n,this.runtime,r,t);this.didEnter(i)},e.iterate=function(e,t){var n=this.stack;n.push(t),n.push(e);var r=this.capture(2),i=this.elements().pushUpdatableBlock();return new $e(this.heap.gethandle(this.pc),r,this.runtime,i,new f.LinkedList)},e.enterItem=function(e,t){this.listBlock().map[e]=t,this.didEnter(t)},e.enterList=function(e){var t=new f.LinkedList,n=this.capture(0),r=this.elements().pushBlockList(t),i=this.stack.peek().artifacts,o=this.pc+e-this.currentOpSize,a=this.heap.gethandle(o),s=new Je(a,n,this.runtime,r,t,i);this.listBlockStack.push(s),this.didEnter(s)},e.didEnter=function(e){this.updateWith(e),this.updatingOpcodeStack.push(e.children)},e.exit=function(){this.elements().popBlock(),this.updatingOpcodeStack.pop(),this.updating().tail().didInitializeChildren()},e.exitList=function(){this.exit(),this.listBlockStack.pop()},e.updateWith=function(e){this.updating().append(e)},e.listBlock=function(){return this.listBlockStack.current},e.updating=function(){return this.updatingOpcodeStack.current},e.elements=function(){return this.elementStack},e.scope=function(){return this.scopeStack.current},e.dynamicScope=function(){return this.dynamicScopeStack.current},e.pushChildScope=function(){this.scopeStack.push(this.scope().child())},e.pushDynamicScope=function(){var e=this.dynamicScope().child();return this.dynamicScopeStack.push(e),e},e.pushRootScope=function(e,t){var n=Le.sized(e);return t&&n.bindCallerScope(this.scope()),this.scopeStack.push(n),n},e.pushScope=function(e){this.scopeStack.push(e)},e.popScope=function(){this.scopeStack.pop()},e.popDynamicScope=function(){this.dynamicScopeStack.pop()},e.newDestroyable=function(e){this.elements().didAddDestroyable(e)},e.getSelf=function(){return this.scope().getSelf()},e.referenceForSymbol=function(e){return this.scope().getSymbol(e)},e.execute=function(e,t){var n;for(this.pc=this.heap.getaddr(e),t&&t(this);!(n=this.next()).done;);return n.value},e.next=function(){var e=this.env,t=this.program,n=this.updatingOpcodeStack,r=this.elementStack,i=this.inner.nextStatement(),o=null!==i?(this.inner.evaluateOuter(i,this),{done:!1,value:null}):(this.stack.reset(),{done:!0,value:new et(e,t,n.pop(),r.popBlock())});return o},e.bindDynamicScope=function(e){for(var t=this.dynamicScope(),n=e.length-1;0<=n;n--){var r=this.constants.getString(e[n]);t.set(r,this.stack.pop())}},(0,s.createClass)(u,[{key:\"stack\",get:function(){return this.inner.stack},set:function(e){this.inner.stack=e}},{key:\"currentOpSize\",set:function(e){this.inner.currentOpSize=e},get:function(){return this.inner.currentOpSize}},{key:\"pc\",get:function(){return this.inner.pc},set:function(e){this.inner.pc=e}},{key:\"ra\",get:function(){return this.inner.ra},set:function(e){this.inner.ra=e}},{key:\"fp\",get:function(){return this.stack.fp},set:function(e){this.stack.fp=e}},{key:\"sp\",get:function(){return this.stack.sp},set:function(e){this.stack.sp=e}},{key:\"program\",get:function(){return this.runtime.program}},{key:\"env\",get:function(){return this.runtime.env}}]),u}();e.LowLevelVM=ft;var pt=function(){function e(e){this.vm=e}return e.prototype.next=function(){return this.vm.next()},e}();var dt=function(){function e(e,t){this.scope=e,this.nameRef=t;var n=this.varTag=d.UpdatableTag.create(d.CONSTANT_TAG);this.tag=(0,d.combine)([t.tag,n])}var t=e.prototype;return t.value=function(){return this.getVar().value()},t.get=function(e){return this.getVar().get(e)},t.getVar=function(){var e=String(this.nameRef.value()),t=this.scope.get(e);return this.varTag.inner.update(t.tag),t},e}();e.DEFAULT_CAPABILITIES={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!1,elementHook:!1,dynamicScope:!0,createCaller:!1,updateHook:!0,createInstance:!0};e.MINIMAL_CAPABILITIES={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,dynamicScope:!1,createCaller:!1,updateHook:!1,createInstance:!1};var mt=\"%+b:0%\";function vt(e){return e.nodeValue===mt}e.SERIALIZATION_FIRST_NODE_STRING=mt;var gt=function(i){function e(e,t,n){var r=i.call(this,e,t)||this;return r.startingBlockDepth=n,r.candidate=null,r.injectedOmittedNode=!1,r.openBlockDepth=n-1,r}return(0,s.inheritsLoose)(e,i),e}(Q),yt=function(a){function e(e,t,n){var r=a.call(this,e,t,n)||this;if(r.unmatchedAttributes=null,r.blockDepth=0,n)throw new Error(\"Rehydration with nextSibling not supported\");for(var i=r.currentCursor.element.firstChild;!(null===i||bt(i)&&vt(i));)i=i.nextSibling;return r.candidate=i,r}(0,s.inheritsLoose)(e,a);var t=e.prototype;return t.pushElement=function(e,t){var n=this.blockDepth,r=new gt(e,t,void 0===n?0:n),i=this.currentCursor;i&&i.candidate&&(r.candidate=e.firstChild,i.candidate=e.nextSibling),this.cursorStack.push(r)},t.clearMismatch=function(e){var t=e,n=this.currentCursor;if(null!==n){var r=n.openBlockDepth;if(r>=n.startingBlockDepth)for(;t&&(!bt(t)||_t(t)!==r);)t=this.remove(t);else for(;null!==t;)t=this.remove(t);n.nextSibling=t,n.candidate=null}},t.__openBlock=function(){var e,t,n,r=this.currentCursor;null!==r&&(e=this.blockDepth,this.blockDepth++,null!==(t=r.candidate)&&(bt(t)&&((n=t.nodeValue.match(/^%\\+b:(\\d+)%$/))&&n[1]?Number(n[1]):null)===e?(r.candidate=this.remove(t),r.openBlockDepth=e):this.clearMismatch(t)))},t.__closeBlock=function(){var e,t,n=this.currentCursor;null!==n&&(e=n.openBlockDepth,this.blockDepth--,null!==(t=n.candidate)&&(bt(t)&&_t(t)===e?(n.candidate=this.remove(t),n.openBlockDepth--):this.clearMismatch(t)),n.openBlockDepth===this.blockDepth&&(n.candidate=this.remove(n.nextSibling),n.openBlockDepth--))},t.__appendNode=function(e){var t=this.candidate;return t||a.prototype.__appendNode.call(this,e)},t.__appendHTML=function(e){var t=this.markerBounds();if(t){var n=t.firstNode(),r=t.lastNode(),i=new K(this.element,n.nextSibling,r.previousSibling),o=this.remove(n);return this.remove(r),null!==o&&Tt(o)&&(this.candidate=this.remove(o),null!==this.candidate&&this.clearMismatch(this.candidate)),i}return a.prototype.__appendHTML.call(this,e)},t.remove=function(e){var t=e.parentNode,n=e.nextSibling;return t.removeChild(e),n},t.markerBounds=function(){var e=this.candidate;if(e&&Et(e)){for(var t=e,n=t.nextSibling;n&&!Et(n);)n=n.nextSibling;return new K(this.element,t,n)}return null},t.__appendText=function(e){var t,n=this.candidate;if(n){if(3===n.nodeType)return n.nodeValue!==e&&(n.nodeValue=e),this.candidate=n.nextSibling,n;if(n&&(8===(t=n).nodeType&&\"%|%\"===t.nodeValue||Tt(n)))return this.candidate=n.nextSibling,this.remove(n),this.__appendText(e);if(Tt(n)){var r=this.remove(n);this.candidate=r;var i=this.dom.createTextNode(e);return this.dom.insertBefore(this.element,i,r),i}return this.clearMismatch(n),a.prototype.__appendText.call(this,e)}return a.prototype.__appendText.call(this,e)},t.__appendComment=function(e){var t=this.candidate;return t&&bt(t)?(t.nodeValue!==e&&(t.nodeValue=e),this.candidate=t.nextSibling,t):(t&&this.clearMismatch(t),a.prototype.__appendComment.call(this,e))},t.__openElement=function(e){var t,n,r=this.candidate;if(r&&wt(r)&&(n=e,(t=r).namespaceURI!==te?t.tagName===n.toUpperCase():t.tagName===n))return this.unmatchedAttributes=[].slice.call(r.attributes),r;if(r){if(wt(r)&&\"TBODY\"===r.tagName)return this.pushElement(r,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(e);this.clearMismatch(r)}return a.prototype.__openElement.call(this,e)},t.__setAttribute=function(e,t,n){var r=this.unmatchedAttributes;if(r){var i=Ct(r,e);if(i)return i.value!==t&&(i.value=t),void r.splice(r.indexOf(i),1)}return a.prototype.__setAttribute.call(this,e,t,n)},t.__setProperty=function(e,t){var n=this.unmatchedAttributes;if(n){var r=Ct(n,e);if(r)return r.value!==t&&(r.value=t),void n.splice(n.indexOf(r),1)}return a.prototype.__setProperty.call(this,e,t)},t.__flushElement=function(e,t){var n=this.unmatchedAttributes;if(n){for(var r=0;r<n.length;r++)this.constructing.removeAttribute(n[r].name);this.unmatchedAttributes=null}else a.prototype.__flushElement.call(this,e,t)},t.willCloseElement=function(){var e=this.candidate,t=this.currentCursor;null!==e&&this.clearMismatch(e),t&&t.injectedOmittedNode&&this.popElement(),a.prototype.willCloseElement.call(this)},t.getMarker=function(e,t){var n=e.querySelector('script[glmr=\"'+t+'\"]');if(n)return n;throw new Error(\"Cannot find serialized cursor for `in-element`\")},t.__pushRemoteElement=function(e,t,n){var r,i,o,a=2<arguments.length&&void 0!==n?n:null,s=this.getMarker(e,t);s.parentNode===e&&(i=(r=this.currentCursor).candidate,this.pushElement(e,a),r.candidate=i,this.candidate=this.remove(s),o=new qe(e),this.pushBlockTracker(o,!0))},t.didAppendBounds=function(e){var t;return a.prototype.didAppendBounds.call(this,e),this.candidate&&(t=e.lastNode(),this.candidate=t&&t.nextSibling),e},(0,s.createClass)(e,[{key:\"currentCursor\",get:function(){return this.cursorStack.current}},{key:\"candidate\",get:function(){return this.currentCursor?this.currentCursor.candidate:null},set:function(e){this.currentCursor.candidate=e}}]),e}(Ue);function bt(e){return 8===e.nodeType}function _t(e){var t=e.nodeValue.match(/^%\\-b:(\\d+)%$/);return t&&t[1]?Number(t[1]):null}function wt(e){return 1===e.nodeType}function Et(e){return 8===e.nodeType&&\"%glmr%\"===e.nodeValue}function Tt(e){return 8===e.nodeType&&\"% %\"===e.nodeValue}function Ct(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.name===t)return r}}e.RehydrateBuilder=yt}),e(\"@glimmer/util\",[\"exports\",\"ember-babel\"],function(e,n){\"use strict\";e.assert=function(e,t){if(!e)throw new Error(t||\"assertion failure\")},e.assign=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(null!==n&&\"object\"==typeof n)for(var r=a(n),i=0;i<r.length;i++){var o=r[i];e[o]=n[o]}}return e},e.fillNulls=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=null;return t},e.ensureGuid=i,e.initializeGuid=r,e.dict=o,e.unwrap=function(e){if(null==e)throw new Error(\"Expected value to be present\");return e},e.expect=function(e,t){if(null==e)throw new Error(t);return e},e.unreachable=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:\"unreachable\";return new Error(e)},e.EMPTY_ARRAY=e.ListSlice=e.ListNode=e.LinkedList=e.EMPTY_SLICE=e.DictSet=e.Stack=void 0;var a=Object.keys;var t=0;function r(e){return e._guid=++t}function i(e){return e._guid||r(e)}function o(){return Object.create(null)}var s=function(){function e(){this.dict=o()}var t=e.prototype;return t.add=function(e){return\"string\"==typeof e?this.dict[e]=e:this.dict[i(e)]=e,this},t.delete=function(e){\"string\"==typeof e?delete this.dict[e]:e._guid&&delete this.dict[e._guid]},e}();e.DictSet=s;var u=function(){function e(){this.stack=[],this.current=null}var t=e.prototype;return t.push=function(e){this.current=e,this.stack.push(e)},t.pop=function(){var e=this.stack.pop(),t=this.stack.length;return this.current=0===t?null:this.stack[t-1],void 0===e?null:e},t.isEmpty=function(){return 0===this.stack.length},(0,n.createClass)(e,[{key:\"size\",get:function(){return this.stack.length}}]),e}();e.Stack=u;e.ListNode=function(e){this.next=null,this.prev=null,this.value=e};var l=function(){function e(){this.clear()}var t=e.prototype;return t.head=function(){return this._head},t.tail=function(){return this._tail},t.clear=function(){this._head=this._tail=null},t.toArray=function(){var t=[];return this.forEachNode(function(e){return t.push(e)}),t},t.nextNode=function(e){return e.next},t.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=t.next},t.insertBefore=function(e,t){var n=1<arguments.length&&void 0!==t?t:null;return null===n?this.append(e):(n.prev?n.prev.next=e:this._head=e,e.prev=n.prev,(e.next=n).prev=e)},t.append=function(e){var t=this._tail;return t?((t.next=e).prev=t,e.next=null):this._head=e,this._tail=e},t.remove=function(e){return e.prev?e.prev.next=e.next:this._head=e.next,e.next?e.next.prev=e.prev:this._tail=e.prev,e},e}();e.LinkedList=l;var c=function(){function e(e,t){this._head=e,this._tail=t}var t=e.prototype;return t.forEachNode=function(e){for(var t=this._head;null!==t;)e(t),t=this.nextNode(t)},t.head=function(){return this._head},t.tail=function(){return this._tail},t.toArray=function(){var t=[];return this.forEachNode(function(e){return t.push(e)}),t},t.nextNode=function(e){return e===this._tail?null:e.next},e}(),h=new(e.ListSlice=c)(null,null);e.EMPTY_SLICE=h;var f=Object.freeze([]);e.EMPTY_ARRAY=f}),e(\"@glimmer/vm\",[\"exports\"],function(e){\"use strict\";var t,n;e.Register=void 0,e.Register=t,(n=t||(e.Register=t={}))[n.pc=0]=\"pc\",n[n.ra=1]=\"ra\",n[n.fp=2]=\"fp\",n[n.sp=3]=\"sp\",n[n.s0=4]=\"s0\",n[n.s1=5]=\"s1\",n[n.t0=6]=\"t0\",n[n.t1=7]=\"t1\",n[n.v0=8]=\"v0\"}),e(\"@glimmer/wire-format\",[\"exports\"],function(e){\"use strict\";var t,n;function r(t){return function(e){return Array.isArray(e)&&e[0]===t}}e.is=r,e.isAttribute=function(e){return e[0]===t.StaticAttr||e[0]===t.DynamicAttr||e[0]===t.ComponentAttr||e[0]===t.TrustingAttr||e[0]===t.TrustingComponentAttr||e[0]===t.AttrSplat||e[0]===t.Modifier},e.isArgument=function(e){return e[0]===t.StaticArg||e[0]===t.DynamicArg},e.isMaybeLocal=e.isGet=e.isFlushElement=e.Ops=void 0,e.Ops=t,(n=t||(e.Ops=t={}))[n.Text=0]=\"Text\",n[n.Append=1]=\"Append\",n[n.Comment=2]=\"Comment\",n[n.Modifier=3]=\"Modifier\",n[n.Block=4]=\"Block\",n[n.Component=5]=\"Component\",n[n.DynamicComponent=6]=\"DynamicComponent\",n[n.OpenElement=7]=\"OpenElement\",n[n.FlushElement=8]=\"FlushElement\",n[n.CloseElement=9]=\"CloseElement\",n[n.StaticAttr=10]=\"StaticAttr\",n[n.DynamicAttr=11]=\"DynamicAttr\",n[n.ComponentAttr=12]=\"ComponentAttr\",n[n.AttrSplat=13]=\"AttrSplat\",n[n.Yield=14]=\"Yield\",n[n.Partial=15]=\"Partial\",n[n.DynamicArg=16]=\"DynamicArg\",n[n.StaticArg=17]=\"StaticArg\",n[n.TrustingAttr=18]=\"TrustingAttr\",n[n.TrustingComponentAttr=19]=\"TrustingComponentAttr\",n[n.Debugger=20]=\"Debugger\",n[n.ClientSideStatement=21]=\"ClientSideStatement\",n[n.Unknown=22]=\"Unknown\",n[n.Get=23]=\"Get\",n[n.MaybeLocal=24]=\"MaybeLocal\",n[n.HasBlock=25]=\"HasBlock\",n[n.HasBlockParams=26]=\"HasBlockParams\",n[n.Undefined=27]=\"Undefined\",n[n.Helper=28]=\"Helper\",n[n.Concat=29]=\"Concat\",n[n.ClientSideExpression=30]=\"ClientSideExpression\";var i=r(t.FlushElement);e.isFlushElement=i;var o=r(t.Get);e.isGet=o;var a=r(t.MaybeLocal);e.isMaybeLocal=a}),e(\"backburner\",[\"exports\",\"ember-babel\"],function(e,n){\"use strict\";e.buildPlatform=a,e.default=void 0;var o=setTimeout,r=function(){};function i(e){if(\"function\"==typeof Promise){var t=Promise.resolve();return function(){return t.then(e)}}if(\"function\"!=typeof MutationObserver)return function(){return o(e,0)};var n=0,r=new MutationObserver(e),i=document.createTextNode(\"\");return r.observe(i,{characterData:!0}),function(){return n=++n%2,i.data=\"\"+n,n}}function a(e){var t=r;return{setTimeout:function(e,t){return setTimeout(e,t)},clearTimeout:function(e){return clearTimeout(e)},now:function(){return Date.now()},next:i(e),clearNext:t}}var s=/\\d+/;function u(e){var t=typeof e;return\"number\"==t&&e==e||\"string\"==t&&s.test(e)}function l(e){return e.onError||e.onErrorTarget&&e.onErrorTarget[e.onErrorMethod]}function c(e,t,n){for(var r=-1,i=0,o=n.length;i<o;i+=4)if(n[i]===e&&n[i+1]===t){r=i;break}return r}function d(e,t,n){for(var r=-1,i=2,o=n.length;i<o;i+=6)if(n[i]===e&&n[i+1]===t){r=i-2;break}return r}function h(e,t,n){for(var r=2<arguments.length&&void 0!==n?n:0,i=[],o=0;o<e.length;o+=t){var a=e[o+3+r],s={target:e[o+0+r],method:e[o+1+r],args:e[o+2+r],stack:void 0!==a&&\"stack\"in a?a.stack:\"\"};i.push(s)}return i}function m(e,t){for(var n,r,i=0,o=t.length-6;i<o;)e>=t[n=i+(r=(o-i)/6)-r%6]?i=6+n:o=n;return e>=t[i]?i+6:i}var f=function(){function e(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=e,this.options=t,this.globalOptions=n}var t=e.prototype;return t.stackFor=function(e){if(e<this._queue.length){var t=this._queue[3*e+4];return t?t.stack:null}},t.flush=function(e){var t,n=this.options,r=n.before,i=n.after;this.targetQueues.clear(),0===this._queueBeingFlushed.length&&(this._queueBeingFlushed=this._queue,this._queue=[]),void 0!==r&&r();var o=this._queueBeingFlushed;if(0<o.length)for(var a=l(this.globalOptions),s=a?this.invokeWithOnError:this.invoke,u=this.index;u<o.length;u+=4)if(this.index+=4,null!==(t=o[u+1])&&s(o[u],t,o[u+2],a,o[u+3]),this.index!==this._queueBeingFlushed.length&&this.globalOptions.mustYield&&this.globalOptions.mustYield())return 1;void 0!==i&&i(),this._queueBeingFlushed.length=0,this.index=0,!1!==e&&0<this._queue.length&&this.flush(!0)},t.hasWork=function(){return 0<this._queueBeingFlushed.length||0<this._queue.length},t.cancel=function(e){var t=e.target,n=e.method,r=this._queue,i=this.targetQueues.get(t);void 0!==i&&i.delete(n);var o=c(t,n,r);return-1<o?(r.splice(o,4),!0):-1<(o=c(t,n,r=this._queueBeingFlushed))&&!(r[o+1]=null)},t.push=function(e,t,n,r){return this._queue.push(e,t,n,r),{queue:this,target:e,method:t}},t.pushUnique=function(e,t,n,r){var i=this.targetQueues.get(e);void 0===i&&(i=new Map,this.targetQueues.set(e,i));var o,a,s=i.get(t);return void 0===s?(o=this._queue.push(e,t,n,r)-4,i.set(t,o)):((a=this._queue)[s+2]=n,a[s+3]=r),{queue:this,target:e,method:t}},t._getDebugInfo=function(e){if(e)return h(this._queue,4)},t.invoke=function(e,t,n){void 0===n?t.call(e):t.apply(e,n)},t.invokeWithOnError=function(e,t,n,r,i){try{void 0===n?t.call(e):t.apply(e,n)}catch(e){r(e,i)}},e}(),p=function(){function e(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],n=1<arguments.length?arguments[1]:void 0;this.queues={},this.queueNameIndex=0,(this.queueNames=e).reduce(function(e,t){return e[t]=new f(t,n[t],n),e},this.queues)}var t=e.prototype;return t.schedule=function(e,t,n,r,i,o){var a=this.queues[e];if(void 0===a)throw new Error(\"You attempted to schedule an action in a queue (\"+e+\") that doesn't exist\");if(null==n)throw new Error(\"You attempted to schedule an action in a queue (\"+e+\") for a method that doesn't exist\");return this.queueNameIndex=0,i?a.pushUnique(t,n,r,o):a.push(t,n,r,o)},t.flush=function(e){for(var t,n,r=0<arguments.length&&void 0!==e&&e,i=this.queueNames.length;this.queueNameIndex<i;)if(n=this.queueNames[this.queueNameIndex],!1===(t=this.queues[n]).hasWork()){if(this.queueNameIndex++,r&&this.queueNameIndex<i)return 1}else if(1===t.flush(!1))return 1},t._getDebugInfo=function(e){if(e){for(var t,n,r={},i=this.queueNames.length,o=0;o<i;)n=this.queueNames[o],t=this.queues[n],r[n]=t._getDebugInfo(e),o++;return r}},e}();function v(e){for(var t=e(),n=t.next();!1===n.done;)n.value(),n=t.next()}function g(){}var y=Object.freeze([]);function b(){var e,t,n=arguments.length;if(0!==n)if(1===n)t=null,e=arguments[0];else{var r=2,i=arguments[0],o=arguments[1],a=typeof o;if(\"function\"==a?(t=i,e=o):null!==i&&\"string\"==a&&o in i?e=(t=i)[o]:\"function\"==typeof i&&(r=1,t=null,e=i),r<n)for(var s=n-r,u=new Array(s),l=0;l<s;l++)u[l]=arguments[l+r]}return[t,e,u]}function _(){var e,t,n,r,i,o;return 2===arguments.length?(i=arguments[0],t=arguments[1],r=null):(r=(n=b.apply(void 0,arguments))[0],i=n[1],void 0===(o=n[2])?t=0:u(t=o.pop())||(e=!0===t,t=o.pop())),[r,i,o,t=parseInt(t,10),e]}var w=0,E=0,T=0,C=0,R=0,k=0,x=0,A=0,O=0,S=0,N=0,P=0,L=0,M=0,j=0,D=0,I=0,F=0,B=0,U=0,z=0,t=function(){function e(e,t){var n=this;this.DEBUG=!1,this.currentInstance=null,this.instanceStack=[],this._eventCallbacks={end:[],begin:[]},this._timerTimeoutId=null,this._timers=[],this._autorun=!1,this._autorunStack=null,this.queueNames=e,this.options=t||{},\"string\"==typeof this.options.defaultQueue?this._defaultQueue=this.options.defaultQueue:this._defaultQueue=this.queueNames[0],this._onBegin=this.options.onBegin||g,this._onEnd=this.options.onEnd||g,this._boundRunExpiredTimers=this._runExpiredTimers.bind(this),this._boundAutorunEnd=function(){B++,!1!==n._autorun&&(n._autorun=!1,n._autorunStack=null,n._end(!0))};var r=this.options._buildPlatform||a;this._platform=r(this._boundAutorunEnd)}var t=e.prototype;return t.begin=function(){E++;var e,t=this.options,n=this.currentInstance;return!1!==this._autorun?(e=n,this._cancelAutorun()):(null!==n&&(z++,this.instanceStack.push(n)),U++,e=this.currentInstance=new p(this.queueNames,t),C++,this._trigger(\"begin\",e,n)),this._onBegin(e,n),e},t.end=function(){T++,this._end(!1)},t.on=function(e,t){if(\"function\"!=typeof t)throw new TypeError(\"Callback must be a function\");var n=this._eventCallbacks[e];if(void 0===n)throw new TypeError(\"Cannot on() event \"+e+\" because it does not exist\");n.push(t)},t.off=function(e,t){var n=this._eventCallbacks[e];if(!e||void 0===n)throw new TypeError(\"Cannot off() event \"+e+\" because it does not exist\");var r=!1;if(t)for(var i=0;i<n.length;i++)n[i]===t&&(r=!0,n.splice(i,1),i--);if(!r)throw new TypeError(\"Cannot off() callback that does not exist\")},t.run=function(){R++;var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2];return this._run(t,n,r)},t.join=function(){k++;var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2];return this._join(t,n,r)},t.defer=function(e,t,n){x++;for(var r=arguments.length,i=new Array(3<r?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.schedule.apply(this,[e,t,n].concat(i))},t.schedule=function(e){A++;for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=b.apply(void 0,n),o=i[0],a=i[1],s=i[2],u=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,o,a,s,!1,u)},t.scheduleIterable=function(e,t){O++;var n=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,null,v,[t],!1,n)},t.deferOnce=function(e,t,n){S++;for(var r=arguments.length,i=new Array(3<r?r-3:0),o=3;o<r;o++)i[o-3]=arguments[o];return this.scheduleOnce.apply(this,[e,t,n].concat(i))},t.scheduleOnce=function(e){N++;for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=b.apply(void 0,n),o=i[0],a=i[1],s=i[2],u=this.DEBUG?new Error:void 0;return this._ensureInstance().schedule(e,o,a,s,!0,u)},t.setTimeout=function(){return P++,this.later.apply(this,arguments)},t.later=function(){L++;var e=function(){var e=b.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=0,o=void 0!==r?r.length:0;return 0<o&&u(r[o-1])&&(i=parseInt(r.pop(),10)),[t,n,r,i]}.apply(void 0,arguments),t=e[0],n=e[1],r=e[2],i=e[3];return this._later(t,n,r,i)},t.throttle=function(){M++;var e,t,n=_.apply(void 0,arguments),r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],u=void 0===s||s,l=d(r,i,this._timers);return-1===l?(e=this._later(r,i,u?y:o,a),u&&this._join(r,i,o)):(e=this._timers[l+1],t=l+4,this._timers[t]!==y&&(this._timers[t]=o)),e},t.debounce=function(){j++;var e,t,n,r,i,o=_.apply(void 0,arguments),a=o[0],s=o[1],u=o[2],l=o[3],c=o[4],h=void 0!==c&&c,f=this._timers,p=d(a,s,f);return-1===p?(e=this._later(a,s,h?y:u,l),h&&this._join(a,s,u)):(t=this._platform.now()+l,f[n=p+4]===y&&(u=y),e=f[p+1],p+6===(r=m(t,f))?(f[p]=t,f[n]=u):(i=this._timers[p+5],this._timers.splice(r,0,t,e,a,s,u,i),this._timers.splice(p,6)),0===p&&this._reinstallTimerTimeout()),e},t.cancelTimers=function(){D++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()},t.hasTimers=function(){return 0<this._timers.length||this._autorun},t.cancel=function(e){if(I++,null==e)return!1;var t=typeof e;return\"number\"==t?this._cancelLaterTimer(e):!(\"object\"!=t||!e.queue||!e.method)&&e.queue.cancel(e)},t.ensureInstance=function(){this._ensureInstance()},t.getDebugInfo=function(){var t=this;if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:h(this._timers,6,2),instanceStack:[this.currentInstance].concat(this.instanceStack).map(function(e){return e&&e._getDebugInfo(t.DEBUG)})}},t._end=function(e){var t=this.currentInstance,n=null;if(null===t)throw new Error(\"end called without begin\");var r,i,o=!1;try{r=t.flush(e)}finally{o||(o=!0,1===r?(i=this.queueNames[t.queueNameIndex],this._scheduleAutorun(i)):(this.currentInstance=null,0<this.instanceStack.length&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger(\"end\",t,n),this._onEnd(t,n)))}},t._join=function(e,t,n){return null===this.currentInstance?this._run(e,t,n):void 0===e&&void 0===n?t():t.apply(e,n)},t._run=function(e,t,n){var r=l(this.options);if(this.begin(),r)try{return t.apply(e,n)}catch(e){r(e)}finally{this.end()}else try{return t.apply(e,n)}finally{this.end()}},t._cancelAutorun=function(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)},t._later=function(e,t,n,r){var i,o=this.DEBUG?new Error:void 0,a=this._platform.now()+r,s=w++;return 0===this._timers.length?(this._timers.push(a,s,e,t,n,o),this._installTimerTimeout()):(i=m(a,this._timers),this._timers.splice(i,0,a,s,e,t,n,o),this._reinstallTimerTimeout()),s},t._cancelLaterTimer=function(e){for(var t=1;t<this._timers.length;t+=6)if(this._timers[t]===e)return this._timers.splice(t-1,6),1===t&&this._reinstallTimerTimeout(),!0;return!1},t._trigger=function(e,t,n){var r=this._eventCallbacks[e];if(void 0!==r)for(var i=0;i<r.length;i++)r[i](t,n)},t._runExpiredTimers=function(){this._timerTimeoutId=null,0<this._timers.length&&(this.begin(),this._scheduleExpiredTimers(),this.end())},t._scheduleExpiredTimers=function(){for(var e=this._timers,t=0,n=e.length,r=this._defaultQueue,i=this._platform.now();t<n;t+=6){if(i<e[t])break;var o,a,s,u=e[t+4];u!==y&&(o=e[t+2],a=e[t+3],s=e[t+5],this.currentInstance.schedule(r,o,a,u,!1,s))}e.splice(0,t),this._installTimerTimeout()},t._reinstallTimerTimeout=function(){this._clearTimerTimeout(),this._installTimerTimeout()},t._clearTimerTimeout=function(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)},t._installTimerTimeout=function(){var e,t,n;0!==this._timers.length&&(e=this._timers[0],t=this._platform.now(),n=Math.max(0,e-t),this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n))},t._ensureInstance=function(){var e=this.currentInstance;return null===e&&(this._autorunStack=this.DEBUG?new Error:void 0,e=this.begin(),this._scheduleAutorun(this.queueNames[0])),e},t._scheduleAutorun=function(e){F++;var t=this._platform.next,n=this.options.flush;n?n(e,t):t(),this._autorun=!0},(0,n.createClass)(e,[{key:\"counters\",get:function(){return{begin:E,end:T,events:{begin:C,end:0},autoruns:{created:F,completed:B},run:R,join:k,defer:x,schedule:A,scheduleIterable:O,deferOnce:S,scheduleOnce:N,setTimeout:P,later:L,throttle:M,debounce:j,cancelTimers:D,cancel:I,loops:{total:U,nested:z}}}},{key:\"defaultQueue\",get:function(){return this._defaultQueue}}]),e}();t.Queue=f,t.buildPlatform=a,t.buildNext=i,e.default=t}),e(\"dag-map\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=(n.prototype.add=function(e,t,n,r){if(!e)throw new Error(\"argument `key` is required\");var i=this._vertices,o=i.add(e);if(o.val=t,n)if(\"string\"==typeof n)i.addEdge(o,i.add(n));else for(var a=0;a<n.length;a++)i.addEdge(o,i.add(n[a]));if(r)if(\"string\"==typeof r)i.addEdge(i.add(r),o);else for(a=0;a<r.length;a++)i.addEdge(i.add(r[a]),o)},n.prototype.addEdges=function(e,t,n,r){this.add(e,t,n,r)},n.prototype.each=function(e){this._vertices.walk(e)},n.prototype.topsort=function(e){this.each(e)},n);function n(){this._vertices=new r}e.default=t;var r=(i.prototype.add=function(e){if(!e)throw new Error(\"missing key\");for(var t,n=0|this.length,r=0;r<n;r++)if((t=this[r]).key===e)return t;return this.length=1+n,this[n]={idx:n,key:e,val:void 0,out:!1,flag:!1,length:0}},i.prototype.addEdge=function(e,t){this.check(e,t.key);for(var n=0|t.length,r=0;r<n;r++)if(t[r]===e.idx)return;t.length=1+n,t[n]=e.idx,e.out=!0},i.prototype.walk=function(e){this.reset();for(var t=0;t<this.length;t++){var n=this[t];n.out||this.visit(n,\"\")}this.each(this.result,e)},i.prototype.check=function(e,t){if(e.key===t)throw new Error(\"cycle detected: \"+t+\" <- \"+t);if(0!==e.length){for(var n=0;n<e.length;n++)if(this[e[n]].key===t)throw new Error(\"cycle detected: \"+t+\" <- \"+e.key+\" <- \"+t);if(this.reset(),this.visit(e,t),0<this.path.length){var r=\"cycle detected: \"+t;throw this.each(this.path,function(e){r+=\" <- \"+e}),new Error(r)}}},i.prototype.reset=function(){this.stack.length=0,this.path.length=0;for(var e=this.result.length=0,t=this.length;e<t;e++)this[e].flag=!1},i.prototype.visit=function(e,t){var n=this.stack,r=this.path,i=this.result;for(n.push(e.idx);n.length;){var o=0|n.pop();if(0<=o){var a=this[o];if(a.flag)continue;if(a.flag=!0,r.push(o),t===a.key)break;n.push(~o),this.pushIncoming(a)}else r.pop(),i.push(~o)}},i.prototype.pushIncoming=function(e){for(var t=this.stack,n=e.length-1;0<=n;n--){var r=e[n];this[r].flag||t.push(r)}},i.prototype.each=function(e,t){for(var n=0,r=e.length;n<r;n++){var i=this[e[n]];t(i.key,i.val)}},i);function i(){this.length=0,this.stack=new o,this.path=new o,this.result=new o}var o=(a.prototype.push=function(e){this[this.length++]=0|e},a.prototype.pop=function(){return 0|this[--this.length]},a);function a(){this.length=0}}),e(\"ember-babel\",[\"exports\"],function(e){\"use strict\";e.wrapNativeSuper=function(e){if(r.has(e))return r.get(e);function t(){}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),r.set(e,t),n(t,e)},e.classCallCheck=function(e,t){0},e.inheritsLoose=function(e,t){0;e.prototype=Object.create(null===t?null:t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),null!==t&&n(e,t)},e.taggedTemplateLiteralLoose=function(e,t){t=t||e.slice(0);return e.raw=t,e},e.createClass=function(e,t,n){null!=t&&i(e.prototype,t);null!=n&&i(e,n);return e},e.assertThisInitialized=o,e.possibleConstructorReturn=function(e,t){if(\"object\"==typeof t&&null!==t||\"function\"==typeof t)return t;return o(e)},e.objectDestructuringEmpty=function(e){0};var n=Object.setPrototypeOf,r=new Map;function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e){return e}}),e(\"ember/index\",[\"exports\",\"require\",\"@ember/-internals/environment\",\"node-module\",\"@ember/-internals/utils\",\"@ember/-internals/container\",\"@ember/instrumentation\",\"@ember/-internals/meta\",\"@ember/-internals/metal\",\"@ember/canary-features\",\"@ember/debug\",\"backburner\",\"@ember/-internals/console\",\"@ember/controller\",\"@ember/controller/lib/controller_mixin\",\"@ember/string\",\"@ember/service\",\"@ember/object\",\"@ember/object/compat\",\"@ember/object/computed\",\"@ember/-internals/runtime\",\"@ember/-internals/glimmer\",\"ember/version\",\"@ember/-internals/views\",\"@ember/-internals/routing\",\"@ember/-internals/extension-support\",\"@ember/error\",\"@ember/runloop\",\"@ember/-internals/error-handling\",\"@ember/-internals/owner\",\"@ember/application\",\"@ember/application/globals-resolver\",\"@ember/application/instance\",\"@ember/engine\",\"@ember/engine/instance\",\"@ember/polyfills\",\"@ember/deprecated-features\"],function(e,t,n,r,i,o,a,s,u,l,c,h,f,p,d,m,v,g,y,b,_,w,E,T,C,R,k,x,A,O,S,N,P,L,M,j,D){\"use strict\";e.default=void 0;var I=\"object\"==typeof n.context.imports.Ember&&n.context.imports.Ember||{};I.isNamespace=!0,I.toString=function(){return\"Ember\"},Object.defineProperty(I,\"ENV\",{get:n.getENV,enumerable:!1}),Object.defineProperty(I,\"lookup\",{get:n.getLookup,set:n.setLookup,enumerable:!1}),D.EMBER_EXTEND_PROTOTYPES&&Object.defineProperty(I,\"EXTEND_PROTOTYPES\",{enumerable:!1,get:function(){return n.ENV.EXTEND_PROTOTYPES}}),I.getOwner=O.getOwner,I.setOwner=O.setOwner,I.Application=S.default,I.DefaultResolver=I.Resolver=N.default,I.ApplicationInstance=P.default,I.Engine=L.default,I.EngineInstance=M.default,I.assign=j.assign,I.merge=j.merge,I.generateGuid=i.generateGuid,I.GUID_KEY=i.GUID_KEY,I.guidFor=i.guidFor,I.inspect=i.inspect,I.makeArray=i.makeArray,I.canInvoke=i.canInvoke,I.tryInvoke=i.tryInvoke,I.wrap=i.wrap,I.uuid=i.uuid,I.Container=o.Container,I.Registry=o.Registry,I.assert=c.assert,I.warn=c.warn,I.debug=c.debug,I.deprecate=c.deprecate,I.deprecateFunc=c.deprecateFunc,I.runInDebug=c.runInDebug,I.Error=k.default,I.Debug={registerDeprecationHandler:c.registerDeprecationHandler,registerWarnHandler:c.registerWarnHandler,isComputed:u.isComputed},I.instrument=a.instrument,I.subscribe=a.subscribe,I.Instrumentation={instrument:a.instrument,subscribe:a.subscribe,unsubscribe:a.unsubscribe,reset:a.reset},I.run=x._globalsRun,I.run.backburner=x.backburner,I.run.begin=x.begin,I.run.bind=x.bind,I.run.cancel=x.cancel,I.run.debounce=x.debounce,I.run.end=x.end,I.run.hasScheduledTimers=x.hasScheduledTimers,I.run.join=x.join,I.run.later=x.later,I.run.next=x.next,I.run.once=x.once,I.run.schedule=x.schedule,I.run.scheduleOnce=x.scheduleOnce,I.run.throttle=x.throttle,I.run.cancelTimers=x.cancelTimers,Object.defineProperty(I.run,\"currentRunLoop\",{get:x.getCurrentRunLoop,enumerable:!1});var F,B=u._globalsComputed;I.computed=B,I._descriptor=u.nativeDescDecorator,I._tracked=u.tracked,B.alias=u.alias,I.cacheFor=u.getCachedValueFor,I.ComputedProperty=u.ComputedProperty,Object.defineProperty(I,\"_setComputedDecorator\",{get:function(){return u.setClassicDecorator}}),I._setClassicDecorator=u.setClassicDecorator,I.meta=s.meta,I.get=u.get,I.getWithDefault=u.getWithDefault,I._getPath=u._getPath,I.set=u.set,I.trySet=u.trySet,I.FEATURES=(0,j.assign)({isEnabled:l.isEnabled},l.FEATURES),I._Cache=i.Cache,I.on=u.on,I.addListener=u.addListener,I.removeListener=u.removeListener,I.sendEvent=u.sendEvent,I.hasListeners=u.hasListeners,I.isNone=u.isNone,I.isEmpty=u.isEmpty,I.isBlank=u.isBlank,I.isPresent=u.isPresent,I.notifyPropertyChange=u.notifyPropertyChange,I.overrideChains=u.overrideChains,I.beginPropertyChanges=u.beginPropertyChanges,I.endPropertyChanges=u.endPropertyChanges,I.changeProperties=u.changeProperties,I.platform={defineProperty:!0,hasPropertyAccessors:!0},I.defineProperty=u.defineProperty,I.watchKey=u.watchKey,I.unwatchKey=u.unwatchKey,I.removeChainWatcher=u.removeChainWatcher,I._ChainNode=u.ChainNode,I.finishChains=u.finishChains,I.watchPath=u.watchPath,I.unwatchPath=u.unwatchPath,I.watch=u.watch,I.isWatching=u.isWatching,I.unwatch=u.unwatch,I.destroy=s.deleteMeta,I.libraries=u.libraries,I.getProperties=u.getProperties,I.setProperties=u.setProperties,I.expandProperties=u.expandProperties,I.addObserver=u.addObserver,I.removeObserver=u.removeObserver,I.aliasMethod=u.aliasMethod,I.observer=u.observer,I.mixin=u.mixin,I.Mixin=u.Mixin,Object.defineProperty(I,\"onerror\",{get:A.getOnerror,set:A.setOnerror,enumerable:!1}),Object.defineProperty(I,\"testing\",{get:c.isTesting,set:c.setTesting,enumerable:!1}),I._Backburner=h.default,D.LOGGER&&(I.Logger=f.default),I.A=_.A,I.String={loc:m.loc,w:m.w,dasherize:m.dasherize,decamelize:m.decamelize,camelize:m.camelize,classify:m.classify,underscore:m.underscore,capitalize:m.capitalize},I.Object=_.Object,I._RegistryProxyMixin=_.RegistryProxyMixin,I._ContainerProxyMixin=_.ContainerProxyMixin,I.compare=_.compare,I.copy=_.copy,I.isEqual=_.isEqual,I._setFrameworkClass=_.setFrameworkClass,I.inject=function(){},I.inject.service=v.inject,I.inject.controller=p.inject,I.Array=_.Array,I.Comparable=_.Comparable,I.Enumerable=_.Enumerable,I.ArrayProxy=_.ArrayProxy,I.ObjectProxy=_.ObjectProxy,I.ActionHandler=_.ActionHandler,I.CoreObject=_.CoreObject,I.NativeArray=_.NativeArray,I.Copyable=_.Copyable,I.MutableEnumerable=_.MutableEnumerable,I.MutableArray=_.MutableArray,I.TargetActionSupport=_.TargetActionSupport,I.Evented=_.Evented,I.PromiseProxyMixin=_.PromiseProxyMixin,I.Observable=_.Observable,I.typeOf=_.typeOf,I.isArray=_.isArray,I.Object=_.Object,I.onLoad=S.onLoad,I.runLoadHooks=S.runLoadHooks,I.Controller=p.default,I.ControllerMixin=d.default,I.Service=v.default,I._ProxyMixin=_._ProxyMixin,I.RSVP=_.RSVP,I.Namespace=_.Namespace,I._action=g.action,I._dependentKeyCompat=y.dependentKeyCompat,B.empty=b.empty,B.notEmpty=b.notEmpty,B.none=b.none,B.not=b.not,B.bool=b.bool,B.match=b.match,B.equal=b.equal,B.gt=b.gt,B.gte=b.gte,B.lt=b.lt,B.lte=b.lte,B.oneWay=b.oneWay,B.reads=b.oneWay,B.readOnly=b.readOnly,B.deprecatingAlias=b.deprecatingAlias,B.and=b.and,B.or=b.or,B.sum=b.sum,B.min=b.min,B.max=b.max,B.map=b.map,B.sort=b.sort,B.setDiff=b.setDiff,B.mapBy=b.mapBy,B.filter=b.filter,B.filterBy=b.filterBy,B.uniq=b.uniq,B.uniqBy=b.uniqBy,B.union=b.union,B.intersect=b.intersect,B.collect=b.collect,Object.defineProperty(I,\"STRINGS\",{configurable:!1,get:m._getStrings,set:m._setStrings}),Object.defineProperty(I,\"BOOTED\",{configurable:!1,enumerable:!1,get:u.isNamespaceSearchDisabled,set:u.setNamespaceSearchDisabled}),I.Component=w.Component,w.Helper.helper=w.helper,I.Helper=w.Helper,I.Checkbox=w.Checkbox,I.TextField=w.TextField,I.TextArea=w.TextArea,I.LinkComponent=w.LinkComponent,I._setComponentManager=w.setComponentManager,I._componentManagerCapabilities=w.capabilities,I._setModifierManager=w.setModifierManager,I._modifierManagerCapabilties=w.modifierCapabilties,I.Handlebars={template:w.template,Utils:{escapeExpression:w.escapeExpression}},I.HTMLBars={template:w.template},n.ENV.EXTEND_PROTOTYPES.String&&(String.prototype.htmlSafe=function(){return(0,w.htmlSafe)(this)}),I.String.htmlSafe=w.htmlSafe,I.String.isHTMLSafe=w.isHTMLSafe,Object.defineProperty(I,\"TEMPLATES\",{get:w.getTemplates,set:w.setTemplates,configurable:!1,enumerable:!1}),I.VERSION=E.default,D.JQUERY_INTEGRATION&&!T.jQueryDisabled&&Object.defineProperty(I,\"$\",{get:function(){return T.jQuery},configurable:!0,enumerable:!0}),I.ViewUtils={isSimpleClick:T.isSimpleClick,getElementView:T.getElementView,getViewElement:T.getViewElement,getViewBounds:T.getViewBounds,getViewClientRects:T.getViewClientRects,getViewBoundingClientRect:T.getViewBoundingClientRect,getRootViews:T.getRootViews,getChildViews:T.getChildViews,isSerializationFirstNode:w.isSerializationFirstNode},I.TextSupport=T.TextSupport,I.ComponentLookup=T.ComponentLookup,I.EventDispatcher=T.EventDispatcher,I.Location=C.Location,I.AutoLocation=C.AutoLocation,I.HashLocation=C.HashLocation,I.HistoryLocation=C.HistoryLocation,I.NoneLocation=C.NoneLocation,I.controllerFor=C.controllerFor,I.generateControllerFactory=C.generateControllerFactory,I.generateController=C.generateController,I.RouterDSL=C.RouterDSL,I.Router=C.Router,I.Route=C.Route,(0,S.runLoadHooks)(\"Ember.Application\",S.default),I.DataAdapter=R.DataAdapter,I.ContainerDebugAdapter=R.ContainerDebugAdapter,(0,t.has)(\"ember-template-compiler\")&&(0,t.default)(\"ember-template-compiler\"),(0,t.has)(\"ember-testing\")&&(F=(0,t.default)(\"ember-testing\"),I.Test=F.Test,I.Test.Adapter=F.Adapter,I.Test.QUnitAdapter=F.QUnitAdapter,I.setupForTesting=F.setupForTesting),(0,S.runLoadHooks)(\"Ember\"),e.default=I,r.IS_NODE?r.module.exports=I:n.context.exports.Ember=n.context.exports.Em=I}),e(\"ember/version\",[\"exports\"],function(e){\"use strict\";e.default=void 0;e.default=\"3.12.2\"}),e(\"node-module\",[\"exports\"],function(e){var t=\"object\"==typeof module&&\"function\"==typeof module.require;t?(e.require=module.require,e.module=module):(e.require=null,e.module=null),e.IS_NODE=t}),e(\"route-recognizer\",[\"exports\"],function(e){\"use strict\";e.default=void 0;var t=Object.create;function n(){var e=t(null);return e.__=void 0,delete e.__,e}var a=function(e,t,n){this.path=e,this.matcher=t,this.delegate=n};a.prototype.to=function(e,t){var n=this.delegate;if(n&&n.willAddRoute&&(e=n.willAddRoute(this.matcher.target,e)),this.matcher.add(this.path,e),t){if(0===t.length)throw new Error(\"You must have an argument in the function passed to `to`\");this.matcher.addChild(this.path,e,t,this.delegate)}};function s(e){this.routes=n(),this.children=n(),this.target=e}function u(r,i,o){return function(e,t){var n=r+e;if(!t)return new a(n,i,o);t(u(n,i,o))}}function c(e,t,n,r){for(var i=t.routes,o=Object.keys(i),a=0;a<o.length;a++){var s=o[a],u=e.slice();!function(e,t,n){for(var r=0,i=0;i<e.length;i++)r+=e[i].path.length;var o={path:t=t.substr(r),handler:n};e.push(o)}(u,s,i[s]);var l=t.children[s];l?c(u,l,n,r):n.call(r,u)}}s.prototype.add=function(e,t){this.routes[e]=t},s.prototype.addChild=function(e,t,n,r){var i=new s(t),o=u(e,this.children[e]=i,r);r&&r.contextEntered&&r.contextEntered(t,o),n(o)};function d(e){return e.split(\"/\").map(v).join(\"/\")}var r=/%|\\//g;function v(e){return e.length<3||-1===e.indexOf(\"%\")?e:decodeURIComponent(e).replace(r,encodeURIComponent)}var i=/%(?:2(?:4|6|B|C)|3(?:B|D|A)|40)/g;function o(e){return encodeURIComponent(e).replace(i,decodeURIComponent)}var l=/(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)/g,h=Array.isArray,f=Object.prototype.hasOwnProperty;function p(e,t){if(\"object\"!=typeof e||null===e)throw new Error(\"You must pass an object as the second argument to `generate`.\");if(!f.call(e,t))throw new Error(\"You must provide param `\"+t+\"` to `generate`.\");var n=e[t],r=\"string\"==typeof n?n:\"\"+n;if(0===r.length)throw new Error(\"You must provide a param `\"+t+\"`.\");return r}var g=[];g[0]=function(e,t){for(var n=t,r=e.value,i=0;i<r.length;i++)var o=r.charCodeAt(i),n=n.put(o,!1,!1);return n},g[1]=function(e,t){return t.put(47,!0,!0)},g[2]=function(e,t){return t.put(-1,!1,!0)},g[4]=function(e,t){return t};var y=[];y[0]=function(e){return e.value.replace(l,\"\\\\$1\")},y[1]=function(){return\"([^/]+)\"},y[2]=function(){return\"(.+)\"},y[4]=function(){return\"\"};var m=[];m[0]=function(e){return e.value},m[1]=function(e,t){var n=p(t,e.value);return k.ENCODE_AND_DECODE_PATH_SEGMENTS?o(n):n},m[2]=function(e,t){return p(t,e.value)},m[4]=function(){return\"\"};var b=Object.freeze({}),_=Object.freeze([]);function w(e,t,n){return e.char===t&&e.negate===n}function E(e,t,n,r,i){this.states=e,this.id=t,this.char=n,this.negate=r,this.nextStates=i?t:null,this.pattern=\"\",this._regex=void 0,this.handlers=void 0,this.types=void 0}function T(e,t){return e.negate?e.char!==t&&-1!==e.char:e.char===t||-1===e.char}E.prototype.regex=function(){return this._regex||(this._regex=new RegExp(this.pattern)),this._regex},E.prototype.get=function(e,t){var n=this.nextStates;if(null!==n)if(h(n))for(var r=0;r<n.length;r++){var i=this.states[n[r]];if(w(i,e,t))return i}else{var o=this.states[n];if(w(o,e,t))return o}},E.prototype.put=function(e,t,n){if(i=this.get(e,t))return i;var r=this.states,i=new E(r,r.length,e,t,n);return r[r.length]=i,null==this.nextStates?this.nextStates=i.id:h(this.nextStates)?this.nextStates.push(i.id):this.nextStates=[this.nextStates,i.id],i},E.prototype.match=function(e){var t=this.nextStates;if(!t)return[];var n=[];if(h(t))for(var r=0;r<t.length;r++){var i=this.states[t[r]];T(i,e)&&n.push(i)}else{var o=this.states[t];T(o,e)&&n.push(o)}return n};function C(e){this.length=0,this.queryParams=e||{}}function R(e){var t;e=e.replace(/\\+/gm,\"%20\");try{t=decodeURIComponent(e)}catch(e){t=\"\"}return t}C.prototype.splice=Array.prototype.splice,C.prototype.slice=Array.prototype.slice,C.prototype.push=Array.prototype.push;var k=function(){this.names=n();var e=[],t=new E(e,0,-1,!0,!1);e[0]=t,this.states=e,this.rootState=t};k.prototype.add=function(e,t){for(var n,r=this.rootState,i=\"^\",o=[0,0,0],a=new Array(e.length),s=[],u=!0,l=0,c=0;c<e.length;c++){for(var h=e[c],f=function(e,t,n){0<t.length&&47===t.charCodeAt(0)&&(t=t.substr(1));for(var r=t.split(\"/\"),i=void 0,o=void 0,a=0;a<r.length;a++){var s,u=r[a],l=0;12&(s=2<<(l=\"\"===u?4:58===u.charCodeAt(0)?1:42===u.charCodeAt(0)?2:0))&&(u=u.slice(1),(i=i||[]).push(u),(o=o||[]).push(0!=(4&s))),14&s&&n[l]++,e.push({type:l,value:v(u)})}return{names:i||_,shouldDecodes:o||_}}(s,h.path,o),p=f.names,d=f.shouldDecodes;l<s.length;l++){var m=s[l];4!==m.type&&(u=!1,r=r.put(47,!1,!1),i+=\"/\",r=g[m.type](m,r),i+=y[m.type](m))}a[c]={handler:h.handler,names:p,shouldDecodes:d}}u&&(r=r.put(47,!1,!1),i+=\"/\"),r.handlers=a,r.pattern=i+\"$\",r.types=o,\"object\"==typeof t&&null!==t&&t.as&&(n=t.as),n&&(this.names[n]={segments:s,handlers:a})},k.prototype.handlersFor=function(e){var t=this.names[e];if(!t)throw new Error(\"There is no route named \"+e);for(var n=new Array(t.handlers.length),r=0;r<t.handlers.length;r++){var i=t.handlers[r];n[r]=i}return n},k.prototype.hasRoute=function(e){return!!this.names[e]},k.prototype.generate=function(e,t){var n=this.names[e],r=\"\";if(!n)throw new Error(\"There is no route named \"+e);for(var i=n.segments,o=0;o<i.length;o++){var a=i[o];4!==a.type&&(r+=\"/\",r+=m[a.type](a,t))}return\"/\"!==r.charAt(0)&&(r=\"/\"+r),t&&t.queryParams&&(r+=this.generateQueryString(t.queryParams)),r},k.prototype.generateQueryString=function(e){var t=[],n=Object.keys(e);n.sort();for(var r=0;r<n.length;r++){var i=n[r],o=e[i];if(null!=o){var a=encodeURIComponent(i);if(h(o))for(var s=0;s<o.length;s++){var u=i+\"[]=\"+encodeURIComponent(o[s]);t.push(u)}else a+=\"=\"+encodeURIComponent(o),t.push(a)}}return 0===t.length?\"\":\"?\"+t.join(\"&\")},k.prototype.parseQueryString=function(e){for(var t=e.split(\"&\"),n={},r=0;r<t.length;r++){var i=t[r].split(\"=\"),o=R(i[0]),a=o.length,s=!1,u=void 0,u=1===i.length?\"true\":(2<a&&\"[]\"===o.slice(a-2)&&(s=!0,n[o=o.slice(0,a-2)]||(n[o]=[])),i[1]?R(i[1]):\"\");s?n[o].push(u):n[o]=u}return n},k.prototype.recognize=function(e){var t,n=[this.rootState],r={},i=!1,o=e.indexOf(\"#\");-1!==o&&(e=e.substr(0,o));var a,s=e.indexOf(\"?\");-1!==s&&(a=e.substr(s+1,e.length),e=e.substr(0,s),r=this.parseQueryString(a)),\"/\"!==e.charAt(0)&&(e=\"/\"+e);var u=e;k.ENCODE_AND_DECODE_PATH_SEGMENTS?e=d(e):(e=decodeURI(e),u=decodeURI(u));var l=e.length;1<l&&\"/\"===e.charAt(l-1)&&(e=e.substr(0,l-1),u=u.substr(0,u.length-1),i=!0);for(var c=0;c<e.length&&(n=function(e,t){for(var n=[],r=0,i=e.length;r<i;r++)var o=e[r],n=n.concat(o.match(t));return n}(n,e.charCodeAt(c))).length;c++);for(var h=[],f=0;f<n.length;f++)n[f].handlers&&h.push(n[f]);n=h.sort(function(e,t){var n=e.types||[0,0,0],r=n[0],i=n[1],o=n[2],a=t.types||[0,0,0],s=a[0],u=a[1],l=a[2];if(o!==l)return o-l;if(o){if(r!==s)return s-r;if(i!==u)return u-i}return i!==u?i-u:r!==s?s-r:0});var p=h[0];return p&&p.handlers&&(i&&p.pattern&&\"(.+)$\"===p.pattern.slice(-5)&&(u+=\"/\"),t=function(e,t,n){var r=e.handlers,i=e.regex();if(!i||!r)throw new Error(\"state not initialized\");var o=t.match(i),a=1,s=new C(n);s.length=r.length;for(var u=0;u<r.length;u++){var l=r[u],c=l.names,h=l.shouldDecodes,f=b,p=!1;if(c!==_&&h!==_)for(var d=0;d<c.length;d++){p=!0;var m=c[d],v=o&&o[a++];f===b&&(f={}),k.ENCODE_AND_DECODE_PATH_SEGMENTS&&h[d]?f[m]=v&&decodeURIComponent(v):f[m]=v}s[u]={handler:l.handler,params:f,isDynamic:p}}return s}(p,u,r)),t},k.VERSION=\"0.3.4\",k.ENCODE_AND_DECODE_PATH_SEGMENTS=!0,k.Normalizer={normalizeSegment:v,normalizePath:d,encodePathSegment:o},k.prototype.map=function(e,t){var n=new s;e(u(\"\",n,this.delegate)),c([],n,function(e){t?t(this,e):this.add(e)},this)},e.default=k}),e(\"router_js\",[\"exports\",\"@ember/polyfills\",\"ember-babel\",\"rsvp\",\"route-recognizer\"],function(e,f,n,l,r){\"use strict\";e.logAbort=a,e.InternalRouteInfo=e.TransitionError=e.TransitionState=e.QUERY_PARAMS_SYMBOL=e.PARAMS_SYMBOL=e.STATE_SYMBOL=e.InternalTransition=e.default=void 0;var s=(i.prototype=Object.create(Error.prototype)).constructor=i;function i(e){var t=Error.call(this,e);this.name=\"TransitionAborted\",this.message=e||\"TransitionAborted\",Error.captureStackTrace?Error.captureStackTrace(this,i):this.stack=t.stack}var o=Array.prototype.slice,c=Object.prototype.hasOwnProperty;function v(e,t){for(var n in t)c.call(t,n)&&(e[n]=t[n])}function h(e){var t,n,r=e&&e.length;if(r&&0<r){var i=e[r-1];if((n=i)&&c.call(n,\"queryParams\"))return t=i.queryParams,[o.call(e,0,r-1),t]}return[e,null]}function p(e){for(var t in e){var n=e[t];if(\"number\"==typeof n)e[t]=\"\"+n;else if(Array.isArray(n))for(var r=0,i=n.length;r<i;r++)n[r]=\"\"+n[r]}}function d(e){if(e.log){for(var t,n,r,i=arguments.length,o=new Array(1<i?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];2===o.length?(t=o[0],n=o[1],e.log(\"Transition #\"+t+\": \"+n)):(r=o[0],e.log(r))}}function m(e){return\"string\"==typeof e||e instanceof String||\"number\"==typeof e||e instanceof Number}function u(e,t){for(var n=0,r=e.length;n<r&&!1!==t(e[n]);n++);}function g(e,t){var n,r={all:{},changed:{},removed:{}};v(r.all,t);var i=!1;for(n in p(e),p(t),e)c.call(e,n)&&(c.call(t,n)||(i=!0,r.removed[n]=e[n]));for(n in t)if(c.call(t,n)){var o=e[n],a=t[n];if(y(o)&&y(a))if(o.length!==a.length)r.changed[n]=t[n],i=!0;else for(var s=0,u=o.length;s<u;s++)o[s]!==a[s]&&(r.changed[n]=t[n],i=!0);else e[n]!==t[n]&&(r.changed[n]=t[n],i=!0)}return i?r:void 0}function y(e){return Array.isArray(e)}function b(e){return\"Router: \"+e}var _=\"__STATE__-2619860001345920-3322w3\";e.STATE_SYMBOL=_;var w=\"__PARAMS__-261986232992830203-23323\";e.PARAMS_SYMBOL=w;var E=\"__QPS__-2619863929824844-32323\";e.QUERY_PARAMS_SYMBOL=E;var T=function(){function t(e,t,n){var r=this,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:void 0,o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:void 0;if(this.from=null,this.to=void 0,this.isAborted=!1,this.isActive=!0,this.urlMethod=\"update\",this.resolveIndex=0,this.queryParamsOnly=!1,this.isTransition=!0,this.isCausedByAbortingTransition=!1,this.isCausedByInitialTransition=!1,this.isCausedByAbortingReplaceTransition=!1,this._visibleQueryParams={},this[_]=n||e.state,this.intent=t,this.router=e,this.data=t&&t.data||{},this.resolvedModels={},this[E]={},this.promise=void 0,this.error=void 0,this[w]={},this.routeInfos=[],this.targetName=void 0,this.pivotHandler=void 0,this.sequence=-1,i)return this.promise=l.Promise.reject(i),void(this.error=i);if(this.isCausedByAbortingTransition=!!o,this.isCausedByInitialTransition=!!o&&(o.isCausedByInitialTransition||0===o.sequence),this.isCausedByAbortingReplaceTransition=!!o&&\"replace\"===o.urlMethod&&(!o.isCausedByAbortingTransition||o.isCausedByAbortingReplaceTransition),n){this[w]=n.params,this[E]=n.queryParams,this.routeInfos=n.routeInfos;var a=n.routeInfos.length;a&&(this.targetName=n.routeInfos[a-1].name);for(var s=0;s<a;++s){var u=n.routeInfos[s];if(!u.isResolved)break;this.pivotHandler=u.route}this.sequence=e.currentSequence++,this.promise=n.resolve(function(){return r.isAborted?l.Promise.reject(!1,b(\"Transition aborted - reject\")):l.Promise.resolve(!0)},this).catch(function(e){return l.Promise.reject(r.router.transitionDidError(e,r))},b(\"Handle Abort\"))}else this.promise=l.Promise.resolve(this[_]),this[w]={}}var e=t.prototype;return e.then=function(e,t,n){return this.promise.then(e,t,n)},e.catch=function(e,t){return this.promise.catch(e,t)},e.finally=function(e,t){return this.promise.finally(e,t)},e.abort=function(){this.rollback();var e=new t(this.router,void 0,void 0,void 0);return e.to=this.from,e.from=this.from,e.isAborted=!0,this.router.routeWillChange(e),this.router.routeDidChange(e),this},e.rollback=function(){this.isAborted||(d(this.router,this.sequence,this.targetName+\": transition was aborted\"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)},e.redirect=function(e){this.rollback(),this.router.routeWillChange(e)},e.retry=function(){this.abort();var e=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&e.method(this.urlMethod),e},e.method=function(e){return this.urlMethod=e,this},e.send=function(e,t,n,r,i){var o=0<arguments.length&&void 0!==e&&e,a=1<arguments.length?t:void 0,s=2<arguments.length?n:void 0,u=3<arguments.length?r:void 0,l=4<arguments.length?i:void 0;this.trigger(o,a,s,u,l)},e.trigger=function(e,t){var n=0<arguments.length&&void 0!==e&&e,r=1<arguments.length?t:void 0;\"string\"==typeof n&&(r=n,n=!1);for(var i=arguments.length,o=new Array(2<i?i-2:0),a=2;a<i;a++)o[a-2]=arguments[a];this.router.triggerEvent(this[_].routeInfos.slice(0,this.resolveIndex+1),n,r,o)},e.followRedirects=function(){var t=this.router;return this.promise.catch(function(e){return t.activeTransition?t.activeTransition.followRedirects():l.Promise.reject(e)})},e.toString=function(){return\"Transition (sequence \"+this.sequence+\")\"},e.log=function(e){d(this.router,this.sequence,e)},t}();function a(e){return d(e.router,e.sequence,\"detected abort.\"),new s}function C(e){return\"object\"==typeof e&&e instanceof T&&e.isTransition}e.InternalTransition=T;var R=new WeakMap;function k(l,e,t){var c=1<arguments.length&&void 0!==e?e:{},h=2<arguments.length&&void 0!==t&&t;return l.map(function(e,t){var n=e.name,r=e.params,i=e.paramNames,o=e.context,a=e.route;if(R.has(e)&&h){var s=x(function(e,t){var n={get metadata(){return A(e)}};if(Object.isFrozen(t)||t.hasOwnProperty(\"metadata\"))return Object.freeze((0,f.assign)({},t,n));return(0,f.assign)(t,n)}(a,R.get(e)),o);return R.set(e,s),s}var u={find:function(e,t){var n,r=[];3===e.length&&(r=l.map(function(e){return R.get(e)}));for(var i=0;l.length>i;i++)if(n=R.get(l[i]),e.call(t,n,i,r))return n},get name(){return n},get paramNames(){return i},get metadata(){return A(e.route)},get parent(){var e=l[t-1];return void 0===e?null:R.get(e)},get child(){var e=l[t+1];return void 0===e?null:R.get(e)},get localName(){var e=this.name.split(\".\");return e[e.length-1]},get params(){return r},get queryParams(){return c}};return h&&(u=x(u,o)),R.set(e,u),u})}function x(e,t){var n={get attributes(){return t}};return Object.isFrozen(e)||e.hasOwnProperty(\"attributes\")?Object.freeze((0,f.assign)({},e,n)):(0,f.assign)(e,n)}function A(e){return null!=e&&void 0!==e.buildRouteInfoMetadata?e.buildRouteInfoMetadata():null}var t=function(){function e(e,t,n,r){this._routePromise=void 0,this._route=null,this.params={},this.isResolved=!1,this.name=t,this.paramNames=n,this.router=e,r&&this._processRoute(r)}var t=e.prototype;return t.getModel=function(){return l.Promise.resolve(this.context)},t.serialize=function(){return this.params||{}},t.resolve=function(t,n){var r=this;return l.Promise.resolve(this.routePromise).then(function(e){return r.checkForAbort(t,e)}).then(function(){return r.runBeforeModelHook(n)}).then(function(){return r.checkForAbort(t,null)}).then(function(){return r.getModel(n)}).then(function(e){return r.checkForAbort(t,e)}).then(function(e){return r.runAfterModelHook(n,e)}).then(function(e){return r.becomeResolved(n,e)})},t.becomeResolved=function(e,t){var n,r=this.serialize(t);e&&(this.stashResolvedModel(e,t),e[w]=e[w]||{},e[w][this.name]=r);var i=t===this.context;(\"context\"in this||!i)&&(n=t);var o=R.get(this),a=new O(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==o&&R.set(a,o),a},t.shouldSupercede=function(e){if(!e)return!0;var t=e.context===this.context;return e.name!==this.name||\"context\"in this&&!t||this.hasOwnProperty(\"params\")&&!function(e,t){if(!e!=!t)return!1;if(!e)return!0;for(var n in e)if(e.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}(this.params,e.params)},t.log=function(e,t){e.log&&e.log(this.name+\": \"+t)},t.updateRoute=function(e){return e._internalName=this.name,this.route=e},t.runBeforeModelHook=function(e){var t;return e.trigger&&e.trigger(!0,\"willResolveModel\",e,this.route),this.route&&void 0!==this.route.beforeModel&&(t=this.route.beforeModel(e)),C(t)&&(t=null),l.Promise.resolve(t)},t.runAfterModelHook=function(e,t){var n,r,i=this.name;return this.stashResolvedModel(e,t),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(t,e)),n=C(r=n)?null:r,l.Promise.resolve(n).then(function(){return e.resolvedModels[i]})},t.checkForAbort=function(e,t){return l.Promise.resolve(e()).then(function(){return t},null)},t.stashResolvedModel=function(e,t){e.resolvedModels=e.resolvedModels||{},e.resolvedModels[this.name]=t},t.fetchRoute=function(){var e=this.router.getRoute(this.name);return this._processRoute(e)},t._processRoute=function(e){var t,n=this;return this.routePromise=l.Promise.resolve(e),null!==(t=e)&&\"object\"==typeof t&&\"function\"==typeof t.then?(this.routePromise=this.routePromise.then(function(e){return n.updateRoute(e)}),this.route=void 0):e?this.updateRoute(e):void 0},(0,n.createClass)(e,[{key:\"route\",get:function(){return null!==this._route?this._route:this.fetchRoute()},set:function(e){this._route=e}},{key:\"routePromise\",get:function(){return this._routePromise||this.fetchRoute(),this._routePromise},set:function(e){this._routePromise=e}}]),e}(),O=function(s){function e(e,t,n,r,i,o){var a=s.call(this,e,t,n,i)||this;return a.params=r,a.isResolved=!0,a.context=o,a}return(0,n.inheritsLoose)(e,s),e.prototype.resolve=function(e,t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),l.Promise.resolve(this)},e}(e.InternalRouteInfo=t),S=function(a){function e(e,t,n,r,i){var o=a.call(this,e,t,n,i)||this;return o.params={},o.params=r,o}return(0,n.inheritsLoose)(e,a),e.prototype.getModel=function(e){var t=this.params;e&&e[E]&&(v(t={},this.params),t.queryParams=e[E]);var n=this.route,r=void 0;return n.deserialize?r=n.deserialize(t,e):n.model&&(r=n.model(t,e)),r&&C(r)&&(r=void 0),l.Promise.resolve(r)},e}(t),N=function(o){function e(e,t,n,r){var i=o.call(this,e,t,n)||this;return i.context=r,i.serializer=i.router.getSerializer(t),i}(0,n.inheritsLoose)(e,o);var t=e.prototype;return t.getModel=function(e){return void 0!==this.router.log&&this.router.log(this.name+\": resolving provided model\"),o.prototype.getModel.call(this,e)},t.serialize=function(e){var t=this.paramNames,n=this.context,r={};if(m(e=e||n))return r[t[0]]=e,r;if(this.serializer)return this.serializer.call(null,e,t);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(e,t);if(1===t.length){var i=t[0];return/_id$/.test(i)?r[i]=e.id:r[i]=e,r}},e}(t);function P(e,t){var n=1<arguments.length&&void 0!==t?t:{};this.router=e,this.data=n}var L=function(){function e(){this.routeInfos=[],this.queryParams={},this.params={}}var t=e.prototype;return t.promiseLabel=function(e){var t=\"\";return u(this.routeInfos,function(e){return\"\"!==t&&(t+=\".\"),t+=e.name,!0}),b(\"'\"+t+\"': \"+e)},t.resolve=function(e,r){var t=this.params;u(this.routeInfos,function(e){return t[e.name]=e.params||{},!0}),r.resolveIndex=0;var i=this,o=!1;return l.Promise.resolve(null,this.promiseLabel(\"Start transition\")).then(s,null,this.promiseLabel(\"Resolve route\")).catch(function(e){var t=i.routeInfos,n=r.resolveIndex>=t.length?t.length-1:r.resolveIndex;return l.Promise.reject(new M(e,i.routeInfos[n].route,o,i))},this.promiseLabel(\"Handle error\"));function a(){return l.Promise.resolve(e(),i.promiseLabel(\"Check if should continue\")).catch(function(e){return o=!0,l.Promise.reject(e)},i.promiseLabel(\"Handle abort\"))}function n(e){var t,n=i.routeInfos[r.resolveIndex].isResolved;return i.routeInfos[r.resolveIndex++]=e,n||void 0!==(t=e.route)&&t.redirect&&t.redirect(e.context,r),a().then(s,null,i.promiseLabel(\"Resolve route\"))}function s(){return r.resolveIndex===i.routeInfos.length?i:i.routeInfos[r.resolveIndex].resolve(a,r).then(n,null,i.promiseLabel(\"Proceed\"))}},e}();e.TransitionState=L;var M=function(e,t,n,r){this.error=e,this.route=t,this.wasAborted=n,this.state=r};e.TransitionError=M;var j=function(s){function e(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:[],i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:{},o=5<arguments.length?arguments[5]:void 0,a=s.call(this,e,o)||this;return a.preTransitionState=void 0,a.name=t,a.pivotHandler=n,a.contexts=r,a.queryParams=i,a}(0,n.inheritsLoose)(e,s);var t=e.prototype;return t.applyToState=function(e,t){var n=h([this.name].concat(this.contexts))[0],r=this.router.recognizer.handlersFor(n[0]),i=r[r.length-1].handler;return this.applyToHandlers(e,r,i,t,!1)},t.applyToHandlers=function(e,t,n,r,i){var o,a,s=new L,u=this.contexts.slice(0),l=t.length;if(this.pivotHandler)for(o=0,a=t.length;o<a;++o)if(t[o].handler===this.pivotHandler._internalName){l=o;break}for(o=t.length-1;0<=o;--o){var c,h=t[o],f=h.handler,p=e.routeInfos[o],d=null,d=!(0<h.names.length)||l<=o?this.createParamHandlerInfo(f,h.names,u,p):this.getHandlerInfoForDynamicSegment(f,h.names,u,p,n,o);i&&(d=d.becomeResolved(null,d.context),c=p&&p.context,0<h.names.length&&void 0!==p.context&&d.context===c&&(d.params=p&&p.params),d.context=c);var m=p;(l<=o||d.shouldSupercede(p))&&(l=Math.min(o,l),m=d),r&&!i&&(m=m.becomeResolved(null,m.context)),s.routeInfos.unshift(m)}if(0<u.length)throw new Error(\"More context objects were passed than there are dynamic segments for the route: \"+n);return r||this.invalidateChildren(s.routeInfos,l),v(s.queryParams,this.queryParams||{}),s},t.invalidateChildren=function(e,t){for(var n,r,i,o,a,s=t,u=e.length;s<u;++s){e[s].isResolved&&(r=(n=e[s]).name,i=n.params,o=n.route,a=n.paramNames,e[s]=new S(this.router,r,a,i,o))}},t.getHandlerInfoForDynamicSegment=function(e,t,n,r,i,o){if(0<n.length){if(m(s=n[n.length-1]))return this.createParamHandlerInfo(e,t,n,r);n.pop()}else{if(r&&r.name===e)return r;if(!this.preTransitionState)return r;var a=this.preTransitionState.routeInfos[o],s=a&&a.context}return new N(this.router,e,t,s)},t.createParamHandlerInfo=function(e,t,n,r){for(var i={},o=t.length,a=[];o--;){var s=r&&e===r.name&&r.params||{},u=n[n.length-1],l=t[o];m(u)?i[l]=\"\"+n.pop():s.hasOwnProperty(l)?i[l]=s[l]:a.push(l)}if(0<a.length)throw new Error(\"You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route \"+e+\". Missing params: \"+a);return new S(this.router,e,t,i)},e}(P),D=(I.prototype=Object.create(Error.prototype)).constructor=I;function I(e){var t=Error.call(this,e);this.name=\"UnrecognizedURLError\",this.message=e||\"UnrecognizedURL\",Error.captureStackTrace?Error.captureStackTrace(this,I):this.stack=t.stack}var F=function(i){function e(e,t,n){var r=i.call(this,e,n)||this;return r.url=t,r.preTransitionState=void 0,r}return(0,n.inheritsLoose)(e,i),e.prototype.applyToState=function(e){var t,n,r=new L,i=this.router.recognizer.recognize(this.url);if(!i)throw new D(this.url);var o=!1,a=this.url;function s(e){if(e&&e.inaccessibleByURL)throw new D(a);return e}for(t=0,n=i.length;t<n;++t){var u=i[t],l=u.handler,c=[];this.router.recognizer.hasRoute(l)&&(c=this.router.recognizer.handlersFor(l)[t].names);var h=new S(this.router,l,c,u.params),f=h.route;f?s(f):h.routePromise=h.routePromise.then(s);var p=e.routeInfos[t];o||h.shouldSupercede(p)?(o=!0,r.routeInfos[t]=h):r.routeInfos[t]=p}return v(r.queryParams,i.queryParams),r},e}(P),B=function(){function e(e){this._lastQueryParams={},this.state=void 0,this.oldState=void 0,this.activeTransition=void 0,this.currentRouteInfos=void 0,this._changedQueryParams=void 0,this.currentSequence=0,this.log=e,this.recognizer=new r.default,this.reset()}var t=e.prototype;return t.map=function(e){this.recognizer.map(e,function(e,t){for(var n=t.length-1,r=!0;0<=n&&r;--n){var i=t[n],o=i.handler;e.add(t,{as:o}),r=\"/\"===i.path||\"\"===i.path||\".index\"===o.slice(-6)}})},t.hasRoute=function(e){return this.recognizer.hasRoute(e)},t.queryParamsTransition=function(e,t,n,r){var i=this;if(this.fireQueryParamDidChange(r,e),!t&&this.activeTransition)return this.activeTransition;var o=new T(this,void 0,void 0);return o.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,o),o[E]=r.queryParams,this.toReadOnlyInfos(o,r),this.routeWillChange(o),o.promise=o.promise.then(function(e){return i._updateURL(o,n),i.didTransition(i.currentRouteInfos),i.toInfos(o,r.routeInfos,!0),i.routeDidChange(o),e},null,b(\"Transition complete\")),o},t.transitionByIntent=function(t,e){try{return this.getTransitionByIntent(t,e)}catch(e){return new T(this,t,void 0,e,void 0)}},t.recognize=function(e){var t=new F(this,e),n=this.generateNewState(t);if(null===n)return n;var r=k(n.routeInfos,n.queryParams);return r[r.length-1]},t.recognizeAndLoad=function(e){var t=new F(this,e),n=this.generateNewState(t);if(null===n)return l.Promise.reject(\"URL \"+e+\" was not recognized\");var r=new T(this,t,n,void 0);return r.then(function(){var e=k(n.routeInfos,r[E],!0);return e[e.length-1]})},t.generateNewState=function(e){try{return e.applyToState(this.state,!1)}catch(e){return null}},t.getTransitionByIntent=function(e,t){var n,r=this,i=!!this.activeTransition,o=i?this.activeTransition[_]:this.state,a=e.applyToState(o,t),s=g(o.queryParams,a.queryParams);if(U(a.routeInfos,o.routeInfos)){if(s){var u=this.queryParamsTransition(s,i,o,a);return u.queryParamsOnly=!0,u}return this.activeTransition||new T(this,void 0,void 0)}if(t){var l=new T(this,void 0,void 0);return this.toReadOnlyInfos(l,a),this.setupContexts(a),this.routeWillChange(l),this.activeTransition}return n=new T(this,e,a,void 0,this.activeTransition),function(e,t){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;++n){if(e[n].name!==t[n].name)return!1;if(!function(e,t){{if(!e&&!t)return!0;if(!e&&t||e&&!t)return!1}var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0,o=n.length;i<o;++i){var a=n[i];if(e[a]!==t[a])return!1}return!0}(e[n].params,t[n].params))return!1}return!0}(a.routeInfos,o.routeInfos)&&(n.queryParamsOnly=!0),this.toReadOnlyInfos(n,a),this.activeTransition&&this.activeTransition.redirect(n),(this.activeTransition=n).promise=n.promise.then(function(e){return r.finalizeTransition(n,e)},null,b(\"Settle transition promise when transition is finalized\")),i||this.notifyExistingHandlers(a,n),this.fireQueryParamDidChange(a,s),n},t.doTransition=function(e,t,n){var r,i,o=1<arguments.length&&void 0!==t?t:[],a=2<arguments.length&&void 0!==n&&n,s=o[o.length-1],u={};return void 0!==s&&s.hasOwnProperty(\"queryParams\")&&(u=o.pop().queryParams),i=void 0===e?(d(this,\"Updating query params\"),r=this.state.routeInfos,new j(this,r[r.length-1].name,void 0,[],u)):\"/\"===e.charAt(0)?(d(this,\"Attempting URL transition to \"+e),new F(this,e)):(d(this,\"Attempting transition to \"+e),new j(this,e,void 0,o,u)),this.transitionByIntent(i,a)},t.finalizeTransition=function(t,e){try{d(t.router,t.sequence,\"Resolved all models on destination route; finalizing transition.\");var n=e.routeInfos;return(this.setupContexts(e,t),t.isAborted)?(this.state.routeInfos=this.currentRouteInfos,l.Promise.reject(a(t))):(this._updateURL(t,e),t.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,\"didTransition\",[]),this.didTransition(this.currentRouteInfos),this.toInfos(t,e.routeInfos,!0),this.routeDidChange(t),d(this,t.sequence,\"TRANSITION COMPLETE.\"),n[n.length-1].route)}catch(e){var r;throw e instanceof s||(r=t[_].routeInfos,t.trigger(!0,\"error\",e,t,r[r.length-1].route),t.abort()),e}},t.setupContexts=function(e,t){for(var n,r=this.partitionRoutes(this.state,e),i=0,o=r.exited.length;i<o;i++)delete(n=r.exited[i].route).context,void 0!==n&&(void 0!==n._internalReset&&n._internalReset(!0,t),void 0!==n.exit&&n.exit(t));var a=this.oldState=this.state;this.state=e;var s=this.currentRouteInfos=r.unchanged.slice();try{for(i=0,o=r.reset.length;i<o;i++)void 0!==(n=r.reset[i].route)&&void 0!==n._internalReset&&n._internalReset(!1,t);for(i=0,o=r.updatedContext.length;i<o;i++)this.routeEnteredOrUpdated(s,r.updatedContext[i],!1,t);for(i=0,o=r.entered.length;i<o;i++)this.routeEnteredOrUpdated(s,r.entered[i],!0,t)}catch(e){throw this.state=a,this.currentRouteInfos=a.routeInfos,e}this.state.queryParams=this.finalizeQueryParamChange(s,e.queryParams,t)},t.fireQueryParamDidChange=function(e,t){t&&(this._changedQueryParams=t.all,this.triggerEvent(e.routeInfos,!0,\"queryParamsDidChange\",[t.changed,t.all,t.removed]),this._changedQueryParams=void 0)},t.routeEnteredOrUpdated=function(t,n,r,i){var e=n.route,o=n.context;function a(e){if(r&&void 0!==e.enter&&e.enter(i),i&&i.isAborted)throw new s;if(e.context=o,void 0!==e.contextDidChange&&e.contextDidChange(),void 0!==e.setup&&e.setup(o,i),i&&i.isAborted)throw new s;return t.push(n),e}return void 0===e?n.routePromise=n.routePromise.then(a):a(e),!0},t.partitionRoutes=function(e,t){for(var n,r=e.routeInfos,i=t.routeInfos,o={updatedContext:[],exited:[],entered:[],unchanged:[],reset:[]},a=!1,s=0,u=i.length;s<u;s++){var l=r[s],c=i[s];l&&l.route===c.route||(n=!0),n?(o.entered.push(c),l&&o.exited.unshift(l)):a||l.context!==c.context?(a=!0,o.updatedContext.push(c)):o.unchanged.push(l)}for(s=i.length,u=r.length;s<u;s++)o.exited.unshift(r[s]);return o.reset=o.updatedContext.slice(),o.reset.reverse(),o},t._updateURL=function(e,t){var n=e.urlMethod;if(n){for(var r,i,o,a,s,u=t.routeInfos,l=u[u.length-1].name,c={},h=u.length-1;0<=h;--h){var f=u[h];v(c,f.params),f.route.inaccessibleByURL&&(n=null)}n&&(c.queryParams=e._visibleQueryParams||t.queryParams,r=this.recognizer.generate(l,c),i=e.isCausedByInitialTransition,o=\"replace\"===n&&!e.isCausedByAbortingTransition,a=e.queryParamsOnly&&\"replace\"===n,s=\"replace\"===n&&e.isCausedByAbortingReplaceTransition,i||o||a||s?this.replaceURL(r):this.updateURL(r))}},t.finalizeQueryParamChange=function(e,t,n){for(var r in t)t.hasOwnProperty(r)&&null===t[r]&&delete t[r];var i=[];this.triggerEvent(e,!0,\"finalizeQueryParamChange\",[t,i,n]),n&&(n._visibleQueryParams={});for(var o={},a=0,s=i.length;a<s;++a){var u=i[a];o[u.key]=u.value,n&&!1!==u.visible&&(n._visibleQueryParams[u.key]=u.value)}return o},t.toReadOnlyInfos=function(e,t){var n=this.state.routeInfos;this.fromInfos(e,n),this.toInfos(e,t.routeInfos),this._lastQueryParams=t.queryParams},t.fromInfos=function(e,t){var n;void 0!==e&&0<t.length&&(n=k(t,(0,f.assign)({},this._lastQueryParams),!0),e.from=n[n.length-1]||null)},t.toInfos=function(e,t){var n,r=2<arguments.length&&void 0!==arguments[2]&&arguments[2];void 0!==e&&0<t.length&&(n=k(t,(0,f.assign)({},e[E]),r),e.to=n[n.length-1]||null)},t.notifyExistingHandlers=function(e,t){for(var n,r,i=this.state.routeInfos,o=i.length,a=0;a<o&&(n=i[a],(r=e.routeInfos[a])&&n.name===r.name);a++)r.isResolved;this.triggerEvent(i,!0,\"willTransition\",[t]),this.routeWillChange(t),this.willTransition(i,e.routeInfos,t)},t.reset=function(){this.state&&u(this.state.routeInfos.slice().reverse(),function(e){var t=e.route;return void 0!==t&&void 0!==t.exit&&t.exit(),!0}),this.oldState=void 0,this.state=new L,this.currentRouteInfos=void 0},t.handleURL=function(e){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),this.doTransition(e).method(null)},t.transitionTo=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return\"object\"==typeof e?(n.push(e),this.doTransition(void 0,n,!1)):this.doTransition(e,n)},t.intermediateTransitionTo=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return this.doTransition(e,n,!0)},t.refresh=function(e){var t=this.activeTransition,n=t?t[_]:this.state,r=n.routeInfos;void 0===e&&(e=r[0].route),d(this,\"Starting a refresh transition\");var i=r[r.length-1].name,o=new j(this,i,e,[],this._changedQueryParams||n.queryParams),a=this.transitionByIntent(o,!1);return t&&\"replace\"===t.urlMethod&&a.method(t.urlMethod),a},t.replaceWith=function(e){return this.doTransition(e).method(\"replace\")},t.generate=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var i=h(n),o=i[0],a=i[1],s=new j(this,e,void 0,o).applyToState(this.state,!1),u={},l=0,c=s.routeInfos.length;l<c;++l){v(u,s.routeInfos[l].serialize())}return u.queryParams=a,this.recognizer.generate(e,u)},t.applyIntent=function(e,t){var n=new j(this,e,void 0,t),r=this.activeTransition&&this.activeTransition[_]||this.state;return n.applyToState(r,!1)},t.isActiveIntent=function(e,t,n,r){var i=r||this.state,o=i.routeInfos;if(!o.length)return!1;for(var a=o[o.length-1].name,s=this.recognizer.handlersFor(a),u=0,l=s.length;u<l&&o[u].name!==e;++u);if(u===s.length)return!1;var c=new L;c.routeInfos=o.slice(0,u+1),s=s.slice(0,u+1);var h=U(new j(this,a,void 0,t).applyToHandlers(c,s,a,!0,!0).routeInfos,c.routeInfos);if(!n||!h)return h;var f={};v(f,n);var p=i.queryParams;for(var d in p)p.hasOwnProperty(d)&&f.hasOwnProperty(d)&&(f[d]=p[d]);return h&&!g(f,n)},t.isActive=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=h(n);return this.isActiveIntent(e,i[0],i[1])},t.trigger=function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.triggerEvent(this.currentRouteInfos,!1,e,n)},e}();function U(e,t){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;++n)if(e[n]!==t[n])return!1;return!0}e.default=B}),e(\"rsvp\",[\"exports\",\"node-module\",\"ember-babel\"],function(e,t,o){\"use strict\";function a(e){return e._promiseCallbacks||(e._promiseCallbacks={})}e.asap=$,e.all=N,e.allSettled=L,e.race=M,e.hash=D,e.hashSettled=F,e.rethrow=B,e.defer=U,e.denodeify=O,e.configure=r,e.on=de,e.off=me,e.resolve=H,e.reject=V,e.map=q,e.filter=G,e.async=e.EventTarget=e.Promise=e.cast=e.default=void 0;var n={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e._promiseCallbacks=void 0,e},on:function(e,t){if(\"function\"!=typeof t)throw new TypeError(\"Callback must be a function\");var n=a(this),r=n[e];-1===(r=r||(n[e]=[])).indexOf(t)&&r.push(t)},off:function(e,t){var n,r,i=a(this);t?-1!==(r=(n=i[e]).indexOf(t))&&n.splice(r,1):i[e]=[]},trigger:function(e,t,n){var r=a(this)[e];if(r)for(var i=0;i<r.length;i++)(0,r[i])(t,n)}};e.EventTarget=n;var s={instrument:!1};function r(e,t){if(2!==arguments.length)return s[e];s[e]=t}n.mixin(s);var i=[];function u(e,t,n){1===i.push({name:e,payload:{key:t._guidKey,id:t._id,eventName:e,detail:t._result,childId:n&&n._id,label:t._label,timeStamp:Date.now(),error:s[\"instrument-with-stack\"]?new Error(t._label):null}})&&setTimeout(function(){for(var e=0;e<i.length;e++){var t=i[e],n=t.payload;n.guid=n.key+n.id,n.childGuid=n.key+n.childId,n.error&&(n.stack=n.error.stack),s.trigger(t.name,t.payload)}i.length=0},50)}function l(e,t){if(e&&\"object\"==typeof e&&e.constructor===this)return e;var n=new this(p,t);return v(n,e),n}function p(){}var c=void 0,h=1,f=2;function d(e,r,i){s.async(function(t){var n=!1,e=function(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}(i,r,function(e){n||(n=!0,(r===e?y:v)(t,e))},function(e){n||(n=!0,b(t,e))},t._label);!n&&e&&(n=!0,b(t,e))},e)}function m(e,t,n){var r,i;t.constructor===e.constructor&&n===T&&e.constructor.resolve===l?(r=e,(i=t)._state===h?y(r,i._result):i._state===f?(i._onError=null,b(r,i._result)):_(i,void 0,function(e){(i===e?y:v)(r,e)},function(e){return b(r,e)})):\"function\"==typeof n?d(e,t,n):y(e,t)}function v(t,e){if(t===e)y(t,e);else if(i=typeof(r=e),null===r||\"object\"!=i&&\"function\"!=i)y(t,e);else{var n;try{n=e.then}catch(e){return void b(t,e)}m(t,e,n)}var r,i}function g(e){e._onError&&e._onError(e._result),w(e)}function y(e,t){e._state===c&&(e._result=t,e._state=h,0===e._subscribers.length?s.instrument&&u(\"fulfilled\",e):s.async(w,e))}function b(e,t){e._state===c&&(e._state=f,e._result=t,s.async(g,e))}function _(e,t,n,r){var i=e._subscribers,o=i.length;e._onError=null,i[o]=t,i[o+h]=n,i[o+f]=r,0===o&&e._state&&s.async(w,e)}function w(e){var t=e._subscribers,n=e._state;if(s.instrument&&u(n===h?\"fulfilled\":\"rejected\",e),0!==t.length){for(var r,i,o=e._result,a=0;a<t.length;a+=3)r=t[a],i=t[a+n],r?E(n,r,i,o):i(o);e._subscribers.length=0}}function E(e,t,n,r){var i,o,a=\"function\"==typeof n,s=!0;if(a)try{i=n(r)}catch(e){s=!1,o=e}else i=r;t._state!==c||(i===t?b(t,new TypeError(\"A promises callback cannot return that same promise.\")):!1===s?b(t,o):a?v(t,i):e===h?y(t,i):e===f&&b(t,i))}function T(e,t,n){var r=this._state;if(r===h&&!e||r===f&&!t)return s.instrument&&u(\"chained\",this,this),this;this._onError=null;var i,o=new this.constructor(p,n),a=this._result;return s.instrument&&u(\"chained\",this,o),r===c?_(this,o,e,t):(i=r===h?e:t,s.async(function(){return E(r,o,i,a)})),o}var C=function(){function e(e,t,n,r){this._instanceConstructor=e,this.promise=new e(p,r),this._abortOnReject=n,this._isUsingOwnPromise=e===A,this._isUsingOwnResolve=e.resolve===l,this._init.apply(this,arguments)}var t=e.prototype;return t._init=function(e,t){var n=t.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(t)},t._enumerate=function(e){for(var t=this.length,n=this.promise,r=0;n._state===c&&r<t;r++)this._eachEntry(e[r],r,!0);this._checkFullfillment()},t._checkFullfillment=function(){var e;0===this._remaining&&(e=this._result,y(this.promise,e),this._result=null)},t._settleMaybeThenable=function(t,e,n){var r=this._instanceConstructor;if(this._isUsingOwnResolve){var i,o,a,s=!0;try{i=t.then}catch(e){s=!1,o=e}i===T&&t._state!==c?(t._onError=null,this._settledAt(t._state,e,t._result,n)):\"function\"!=typeof i?this._settledAt(h,e,t,n):this._isUsingOwnPromise?(a=new r(p),!1===s?b(a,o):(m(a,t,i),this._willSettleAt(a,e,n))):this._willSettleAt(new r(function(e){return e(t)}),e,n)}else this._willSettleAt(r.resolve(t),e,n)},t._eachEntry=function(e,t,n){null!==e&&\"object\"==typeof e?this._settleMaybeThenable(e,t,n):this._setResultAt(h,t,e,n)},t._settledAt=function(e,t,n,r){var i=this.promise;i._state===c&&(this._abortOnReject&&e===f?b(i,n):(this._setResultAt(e,t,n,r),this._checkFullfillment()))},t._setResultAt=function(e,t,n){this._remaining--,this._result[t]=n},t._willSettleAt=function(e,t,n){var r=this;_(e,void 0,function(e){return r._settledAt(h,t,e,n)},function(e){return r._settledAt(f,t,e,n)})},e}();function R(e,t,n){this._remaining--,this._result[t]=e===h?{state:\"fulfilled\",value:n}:{state:\"rejected\",reason:n}}var k=\"rsvp_\"+Date.now()+\"-\",x=0;var A=function(){function n(e,t){this._id=x++,this._label=t,this._state=void 0,this._result=void 0,this._subscribers=[],s.instrument&&u(\"created\",this),p!==e&&(\"function\"!=typeof e&&function(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}(),this instanceof n?function(t,e){var n=!1;try{e(function(e){n||(n=!0,v(t,e))},function(e){n||(n=!0,b(t,e))})}catch(e){b(t,e)}}(this,e):function(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}())}var e=n.prototype;return e._onError=function(e){var t=this;s.after(function(){t._onError&&s.trigger(\"error\",e,t._label)})},e.catch=function(e,t){return this.then(void 0,e,t)},e.finally=function(t){var n=this.constructor;return\"function\"==typeof t?this.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})}):this.then(t,t)},n}();function O(h,f){function e(){for(var e=arguments.length,t=new Array(e+1),n=!1,r=0;r<e;++r){var i=arguments[r];if(!n){if(null!==i&&\"object\"==typeof i)if(i.constructor===A)n=!0;else try{n=i.then}catch(e){var o=new A(p);return b(o,e),o}else n=!1;n&&!0!==n&&(i=function(n,r){return{then:function(e,t){return n.call(r,e,t)}}}(n,i))}t[r]=i}var a,s,u,l,c=new A(p);return t[e]=function(e,t){e?b(c,e):void 0===f?v(c,t):!0===f?v(c,function(e){for(var t=e.length,n=new Array(t-1),r=1;r<t;r++)n[r-1]=e[r];return n}(arguments)):Array.isArray(f)?v(c,function(e,t){for(var n={},r=e.length,i=new Array(r),o=0;o<r;o++)i[o]=e[o];for(var a=0;a<t.length;a++){n[t[a]]=i[a+1]}return n}(arguments,f)):v(c,t)},n?(a=c,s=t,u=h,l=this,A.all(s).then(function(e){return S(a,e,u,l)})):S(c,t,h,this)}return e.__proto__=h,e}function S(t,e,n,r){try{n.apply(r,e)}catch(e){b(t,e)}return t}function N(e,t){return A.all(e,t)}(e.Promise=A).cast=l,A.all=function(e,t){return Array.isArray(e)?new C(this,e,!0,t).promise:this.reject(new TypeError(\"Promise.all must be called with an array\"),t)},A.race=function(e,t){var n=new this(p,t);if(!Array.isArray(e))return b(n,new TypeError(\"Promise.race must be called with an array\")),n;for(var r=0;n._state===c&&r<e.length;r++)_(this.resolve(e[r]),void 0,function(e){return v(n,e)},function(e){return b(n,e)});return n},A.resolve=l,A.reject=function(e,t){var n=new this(p,t);return b(n,e),n},A.prototype._guidKey=k,A.prototype.then=T;var P=function(r){function e(e,t,n){return r.call(this,e,t,!1,n)||this}return(0,o.inheritsLoose)(e,r),e}(C);function L(e,t){return Array.isArray(e)?new P(A,e,t).promise:A.reject(new TypeError(\"Promise.allSettled must be called with an array\"),t)}function M(e,t){return A.race(e,t)}P.prototype._setResultAt=R;var j=function(i){function e(e,t){var n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2],r=3<arguments.length?arguments[3]:void 0;return i.call(this,e,t,n,r)||this}(0,o.inheritsLoose)(e,i);var t=e.prototype;return t._init=function(e,t){this._result={},this._enumerate(t)},t._enumerate=function(e){var t,n,r=Object.keys(e),i=r.length,o=this.promise;this._remaining=i;for(var a=0;o._state===c&&a<i;a++)n=e[t=r[a]],this._eachEntry(n,t,!0);this._checkFullfillment()},e}(C);function D(e,t){return A.resolve(e,t).then(function(e){if(null===e||\"object\"!=typeof e)throw new TypeError(\"Promise.hash must be called with an object\");return new j(A,e,t).promise})}var I=function(r){function e(e,t,n){return r.call(this,e,t,!1,n)||this}return(0,o.inheritsLoose)(e,r),e}(j);function F(e,t){return A.resolve(e,t).then(function(e){if(null===e||\"object\"!=typeof e)throw new TypeError(\"hashSettled must be called with an object\");return new I(A,e,!1,t).promise})}function B(e){throw setTimeout(function(){throw e}),e}function U(e){var n={resolve:void 0,reject:void 0};return n.promise=new A(function(e,t){n.resolve=e,n.reject=t},e),n}I.prototype._setResultAt=R;var z=function(i){function e(e,t,n,r){return i.call(this,e,t,!0,r,n)||this}(0,o.inheritsLoose)(e,i);var t=e.prototype;return t._init=function(e,t,n,r,i){var o=t.length||0;this.length=o,this._remaining=o,this._result=new Array(o),this._mapFn=i,this._enumerate(t)},t._setResultAt=function(e,t,n,r){if(r)try{this._eachEntry(this._mapFn(n,t),t,!1)}catch(e){this._settledAt(f,t,e,!1)}else this._remaining--,this._result[t]=n},e}(C);function q(e,t,n){return\"function\"!=typeof t?A.reject(new TypeError(\"map expects a function as a second argument\"),n):A.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError(\"map must be called with an array\");return new z(A,e,t,n).promise})}function H(e,t){return A.resolve(e,t)}function V(e,t){return A.reject(e,t)}var W={},Y=function(e){function t(){return e.apply(this,arguments)||this}(0,o.inheritsLoose)(t,e);var n=t.prototype;return n._checkFullfillment=function(){var e;0===this._remaining&&null!==this._result&&(e=this._result.filter(function(e){return e!==W}),y(this.promise,e),this._result=null)},n._setResultAt=function(e,t,n,r){if(r){this._result[t]=n;var i,o=!0;try{i=this._mapFn(n,t)}catch(e){o=!1,this._settledAt(f,t,e,!1)}o&&this._eachEntry(i,t,!1)}else this._remaining--,n||(this._result[t]=W)},t}(z);function G(e,t,n){return\"function\"!=typeof t?A.reject(new TypeError(\"filter expects function as a second argument\"),n):A.resolve(e,n).then(function(e){if(!Array.isArray(e))throw new TypeError(\"filter must be called with an array\");return new Y(A,e,t,n).promise})}var Q,K=0;function $(e,t){ce[K]=e,ce[K+1]=t,2===(K+=2)&&re()}var X=\"undefined\"!=typeof window?window:void 0,J=X||{},Z=J.MutationObserver||J.WebKitMutationObserver,ee=\"undefined\"==typeof self&&\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process),te=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel;function ne(){return function(){return setTimeout(he,1)}}var re,ie,oe,ae,se,ue,le,ce=new Array(1e3);function he(){for(var e=0;e<K;e+=2){(0,ce[e])(ce[e+1]),ce[e]=void 0,ce[e+1]=void 0}K=0}re=ee?(ue=process.nextTick,le=process.versions.node.match(/^(?:(\\d+)\\.)?(?:(\\d+)\\.)?(\\*|\\d+)$/),Array.isArray(le)&&\"0\"===le[1]&&\"10\"===le[2]&&(ue=setImmediate),function(){return ue(he)}):Z?(oe=0,ae=new Z(he),se=document.createTextNode(\"\"),ae.observe(se,{characterData:!0}),function(){return se.data=oe=++oe%2}):te?((ie=new MessageChannel).port1.onmessage=he,function(){return ie.port2.postMessage(0)}):(void 0===X&&\"function\"==typeof t.require?function(){try{var e=Function(\"return this\")().require(\"vertx\");return void 0!==(Q=e.runOnLoop||e.runOnContext)?function(){Q(he)}:ne()}catch(e){return ne()}}:ne)(),s.async=$,s.after=function(e){return setTimeout(e,0)};var fe=H;e.cast=fe;function pe(e,t){return s.async(e,t)}function de(){s.on.apply(s,arguments)}function me(){s.off.apply(s,arguments)}if(e.async=pe,\"undefined\"!=typeof window&&\"object\"==typeof window.__PROMISE_INSTRUMENTATION__){var ve=window.__PROMISE_INSTRUMENTATION__;for(var ge in r(\"instrument\",!0),ve)ve.hasOwnProperty(ge)&&de(ge,ve[ge])}var ye={asap:$,cast:fe,Promise:A,EventTarget:n,all:N,allSettled:L,race:M,hash:D,hashSettled:F,rethrow:B,defer:U,denodeify:O,configure:r,on:de,off:me,resolve:H,reject:V,map:q,async:pe,filter:G};e.default=ye}),f(\"ember\")}(),function(){var r,c={},i={\"ember-addons/ember-computed-decorators\":\"discourse-common/utils/decorators\"};\"undefined\"!=typeof Ember&&(c={jquery:{default:$},\"@ember/array\":{default:Ember.Array,A:Ember.A},\"@ember/array/proxy\":{default:Ember.ArrayProxy},\"@ember/component\":{default:Ember.Component,TextArea:Ember.TextArea,TextField:Ember.TextField},\"@ember/controller\":{default:Ember.Controller,inject:Ember.inject.controller},\"@ember/debug\":{warn:Ember.warn},\"@ember/object\":{action:Ember._action,default:Ember.Object,get:Ember.get,getProperties:Ember.getProperties,guidFor:Ember.guidFor,set:Ember.set,setProperties:Ember.setProperties,computed:Ember.computed,defineProperty:Ember.defineProperty},\"@ember/object/computed\":{alias:Ember.computed.alias,and:Ember.computed.and,bool:Ember.computed.bool,collect:Ember.computed.collect,deprecatingAlias:Ember.computed.deprecatingAlias,empty:Ember.computed.empty,equal:Ember.computed.equal,filter:Ember.computed.filter,filterBy:Ember.computed.filterBy,gt:Ember.computed.gt,gte:Ember.computed.gte,intersect:Ember.computed.intersect,lt:Ember.computed.lt,lte:Ember.computed.lte,map:Ember.computed.map,mapBy:Ember.computed.mapBy,match:Ember.computed.match,max:Ember.computed.max,min:Ember.computed.min,none:Ember.computed.none,not:Ember.computed.not,notEmpty:Ember.computed.notEmpty,oneWay:Ember.computed.oneWay,or:Ember.computed.or,readOnly:Ember.computed.readOnly,reads:Ember.computed.reads,setDiff:Ember.computed.setDiff,sort:Ember.computed.sort,sum:Ember.computed.sum,union:Ember.computed.union,uniq:Ember.computed.uniq,uniqBy:Ember.computed.uniqBy},\"@ember/object/mixin\":{default:Ember.Mixin},\"@ember/object/proxy\":{default:Ember.ObjectProxy},\"@ember/object/evented\":{default:Ember.Evented,on:Ember.on},\"@ember/routing/route\":{default:Ember.Route},\"@ember/routing/router\":{default:Ember.Router},\"@ember/runloop\":{bind:Ember.run.bind,cancel:Ember.run.cancel,debounce:Ember.testing?Ember.run:Ember.run.debounce,later:Ember.run.later,next:Ember.run.next,once:Ember.run.once,run:Ember.run,schedule:Ember.run.schedule,scheduleOnce:Ember.run.scheduleOnce,throttle:Ember.run.throttle},\"@ember/service\":{default:Ember.Service,inject:Ember.inject.service},\"@ember/utils\":{isPresent:Ember.isPresent,isBlank:Ember.isBlank,isEmpty:Ember.isEmpty,isNone:Ember.isNone},rsvp:{default:Ember.RSVP,EventTarget:Ember.RSVP.EventTarget,Promise:Ember.RSVP.Promise,hash:Ember.RSVP.hash,all:Ember.RSVP.all},\"@ember/string\":{dasherize:Ember.String.dasherize,classify:Ember.String.classify,underscore:Ember.String.underscore,camelize:Ember.String.camelize},\"@ember/template\":{htmlSafe:Ember.String.htmlSafe},\"@ember/application\":{default:Ember.Application,setOwner:Ember.setOwner,getOwner:Ember.getOwner},\"@ember/component/helper\":{default:Ember.Helper},\"@ember/error\":{default:Ember.error},\"@ember/object/internals\":{guidFor:Ember.guidFor}}),r=Array.isArray?Array.isArray:function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};var h={},a={},o=0;var s=[\"require\",\"exports\",\"module\"];function u(e,t,n,r){this.id=o++,this.name=e,this.deps=!t.length&&n.length?s:t,this.exports=r||{},this.callback=n,this.state=void 0,this._require=void 0}function l(e){this.name=e}function f(e,t,n){for(var r,i=e.deps,o=i.length,a=new Array(o),s={},u=0,l=o;u<l;u++)\"exports\"===(r=i[u])?s.exports=a[u]=n:\"require\"===r?a[u]=e.makeRequire():\"module\"===r?(e.exports=n,s=a[u]=e):a[u]=function(e,t){\"discourse/models/input-validation\"===(e=p(e))&&(console.log(\"input-validation has been removed and should be replaced with `@ember/object`\"),e=\"@ember/object\");if(c[e]||h[e])return requirejs(e);throw new Error(\"Could not find module `\"+e+\"` imported from `\"+t+\"`\")}(d(r,t),t);return{deps:a,module:s}}function p(e){var t,n,r=i[e];return r?(n=\"[DEPRECATION] `\"+e+\"` is deprecated.\",(t=r)&&(n+=\" Please use `\"+t+\"` instead.\"),console.warn(n),r):e}function d(e,t){if(\".\"!==e.charAt(0))return e;for(var n=e.split(\"/\"),r=t.split(\"/\").slice(0,-1),i=0,o=n.length;i<o;i++){var a=n[i];if(\"..\"===a){if(0===r.length)throw new Error(\"Cannot access parent module of root\");r.pop()}else{if(\".\"===a)continue;r.push(a)}}return r.join(\"/\")}u.prototype.makeRequire=function(){var t=p(this.name);return this._require||(this._require=function(e){return requirejs(d(e,t))})},(define=function(e,t,n){arguments.length<2&&function(e){throw new Error(\"an unsupported module was defined, expected `define(name, deps, module)` instead got: `\"+e+\"` arguments to define`\")}(arguments.length),r(t)||(n=t,t=[]),h[e]=new u(e,t,n)}).petal={},define.alias=function(e){return new l(e)},requirejs=require=function(e){if(e=p(e),c[e])return c[e];var t,n,r=h[e];if(r&&r.callback instanceof l&&(r=h[r.callback.name]),r||function(e){throw new Error(\"Could not find module \"+e)}(e),!1!==r.state&&a.hasOwnProperty(e))return a[e];var i,o=!1;return a[e]={},function(e,t){try{e()}finally{t()}}(function(){t=f(r,e,a[e]),n=r.callback.apply(this,t.deps),o=!0},function(){o||(r.state=!1)}),null===(i=void 0===n&&t.module.exports?t.module.exports:a[e]=n)||\"object\"!=typeof i&&\"function\"!=typeof i||void 0!==i.default||(i.default=i),a[e]=i},(window.requireModule=requirejs).entries=requirejs._eak_seen=h,requirejs.clear=function(){requirejs.entries=requirejs._eak_seen=h={},a={}}}(),define(\"ember\",[\"exports\"],function(e){console.warn([\"Deprecation notice:\",\"Use specific `@ember/*` imports instead of `ember`\",\"(deprecated since Discourse 2.4.0)\",\"(removal in Discourse 2.5.0)\"].join(\" \")),e.default=Ember});\n//# sourceMappingURL=/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js.map"
          },
          "redirectURL": "",
          "headersSize": 195,
          "bodySize": 154985,
          "_transferSize": 155180
        },
        "cache": {},
        "timings": {
          "blocked": 1243.1240000210778,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.0749999999998181,
          "wait": 184.8830000065659,
          "receive": 2375.0979999895208,
          "_blocked_queueing": 7.9070000210776925
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739952"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.621Z",
        "time": 1461.9459999958053,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 723,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:49:59 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000482"
            },
            {
              "name": "Content-Length",
              "value": "468"
            }
          ],
          "cookies": [],
          "content": {
            "size": 678,
            "mimeType": "application/javascript",
            "compression": 210,
            "text": "define(\"preload-store\",[\"exports\",\"rsvp\"],function(t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={data:{},store:function(t,e){this.data[t]=e},getAndRemove:function(t,r){if(this.data[t]){var e=n.Promise.resolve(this.data[t]);return delete this.data[t],e}return r?new n.Promise(function(e,n){var t=r();t&&t.then?t.then(function(t){return e(t)}).catch(function(t){return n(t)}):e(t)}):n.Promise.resolve(null)},get:function(t){return this.data[t]},remove:function(t){this.data[t]&&delete this.data[t]},reset:function(){this.data={}}}});\n//# sourceMappingURL=/assets/preload-store-d32dcf974dddcac742f8a7a6aa7fcd686185920b201029d0ecb2b85527ef9034.js.map"
          },
          "redirectURL": "",
          "headersSize": 192,
          "bodySize": 468,
          "_transferSize": 660
        },
        "cache": {},
        "timings": {
          "blocked": 1270.3810000007245,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.07300000000009277,
          "wait": 190.75200000649875,
          "receive": 0.7399999885819852,
          "_blocked_queueing": 7.503000000724569
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 2562.651000014739,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 716,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:49:51 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000467"
            },
            {
              "name": "Content-Length",
              "value": "59934"
            }
          ],
          "cookies": [],
          "content": {
            "size": 176747,
            "mimeType": "application/javascript",
            "compression": 116813,
            "text": "var Markdown;!function(){var a=null;window.Logster||(window.Logster={enabled:!0}),window.onerror=function(e,t,n,r,o){var i;a&&new Date-a<6e4||Logster.enabled&&(a=new Date,i={message:e,url:t,line:n,column:r,window_location:window.location&&window.location+\"\"},o&&o.stack&&(i.stacktrace=o.stack),$.ajax(\"/logs/report_js_error\",{data:i,type:\"POST\",cache:!1}))}}(),function(){window.jQuery;window.Discourse={},Discourse.SiteSettings={}}(),function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.Handlebars=t():e.Handlebars=t()}(this,function(){return o={},n.m=r=[function(e,t,n){\"use strict\";var r=n(1).default,o=n(2).default;t.__esModule=!0;var i=r(n(3)),a=o(n(32)),s=o(n(5)),u=r(n(4)),c=r(n(33)),l=o(n(38));function f(){var t=new i.HandlebarsEnvironment;return u.extend(t,i),t.SafeString=a.default,t.Exception=s.default,t.Utils=u,t.escapeExpression=u.escapeExpression,t.VM=c,t.template=function(e){return c.template(e,t)},t}var p=f();p.create=f,l.default(p),p.default=p,t.default=p,e.exports=t.default},function(e,t){\"use strict\";t.default=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},t.__esModule=!0},function(e,t){\"use strict\";t.default=function(e){return e&&e.__esModule?e:{default:e}},t.__esModule=!0},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.HandlebarsEnvironment=l;var o=n(4),i=r(n(5)),a=n(9),s=n(29),u=r(n(31));t.VERSION=\"4.5.3\";t.COMPILER_REVISION=8;t.LAST_COMPATIBLE_COMPILER_REVISION=7;t.REVISION_CHANGES={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\"== 1.x.x\",5:\"== 2.0.0-alpha.x\",6:\">= 2.0.0-beta.1\",7:\">= 4.0.0 <4.3.0\",8:\">= 4.3.0\"};var c=\"[object Object]\";function l(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},a.registerDefaultHelpers(this),s.registerDefaultDecorators(this)}l.prototype={constructor:l,logger:u.default,log:u.default.log,registerHelper:function(e,t){if(o.toString.call(e)===c){if(t)throw new i.default(\"Arg not supported with multiple helpers\");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(o.toString.call(e)===c)o.extend(this.partials,e);else{if(void 0===t)throw new i.default('Attempting to register a partial called \"'+e+'\" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(o.toString.call(e)===c){if(t)throw new i.default(\"Arg not supported with multiple decorators\");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]}};var f=u.default.log;t.log=f,t.createFrame=o.createFrame,t.logger=u.default},function(e,t){\"use strict\";t.__esModule=!0,t.extend=a,t.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},t.escapeExpression=function(e){if(\"string\"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return\"\";if(!e)return e+\"\";e=\"\"+e}return o.test(e)?e.replace(r,i):e},t.isEmpty=function(e){return!e&&0!==e||!(!c(e)||0!==e.length)},t.createFrame=function(e){var t=a({},e);return t._parent=e,t},t.blockParams=function(e,t){return e.path=t,e},t.appendContextPath=function(e,t){return(e?e+\".\":\"\")+t};var n={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\",\"=\":\"&#x3D;\"},r=/[&<>\"'`=]/g,o=/[&<>\"'`=]/;function i(e){return n[e]}function a(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString;t.toString=s;var u=function(e){return\"function\"==typeof e};u(/x/)&&(t.isFunction=u=function(e){return\"function\"==typeof e&&\"[object Function]\"===s.call(e)}),t.isFunction=u;var c=Array.isArray||function(e){return!(!e||\"object\"!=typeof e)&&\"[object Array]\"===s.call(e)};t.isArray=c},function(e,t,n){\"use strict\";var c=n(6).default;t.__esModule=!0;var l=[\"description\",\"fileName\",\"lineNumber\",\"endLineNumber\",\"message\",\"name\",\"number\",\"stack\"];function f(e,t){var n=t&&t.loc,r=void 0,o=void 0,i=void 0,a=void 0;n&&(r=n.start.line,o=n.end.line,i=n.start.column,a=n.end.column,e+=\" - \"+r+\":\"+i);for(var s=Error.prototype.constructor.call(this,e),u=0;u<l.length;u++)this[l[u]]=s[l[u]];Error.captureStackTrace&&Error.captureStackTrace(this,f);try{n&&(this.lineNumber=r,this.endLineNumber=o,c?(Object.defineProperty(this,\"column\",{value:i,enumerable:!0}),Object.defineProperty(this,\"endColumn\",{value:a,enumerable:!0})):(this.column=i,this.endColumn=a))}catch(e){}}f.prototype=new Error,t.default=f,e.exports=t.default},function(e,t,n){e.exports={default:n(7),__esModule:!0}},function(e,t,n){var r=n(8);e.exports=function(e,t,n){return r.setDesc(e,t,n)}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.registerDefaultHelpers=function(e){o.default(e),i.default(e),a.default(e),s.default(e),u.default(e),c.default(e),l.default(e)},t.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var o=r(n(10)),i=r(n(11)),a=r(n(24)),s=r(n(25)),u=r(n(26)),c=r(n(27)),l=r(n(28))},function(e,t,n){\"use strict\";t.__esModule=!0;var a=n(4);t.default=function(i){i.registerHelper(\"blockHelperMissing\",function(e,t){var n,r=t.inverse,o=t.fn;return!0===e?o(this):!1===e||null==e?r(this):a.isArray(e)?0<e.length?(t.ids&&(t.ids=[t.name]),i.helpers.each(e,t)):r(this):(t.data&&t.ids&&((n=a.createFrame(t.data)).contextPath=a.appendContextPath(t.data.contextPath,t.name),t={data:n}),o(e,t))})},e.exports=t.default},function(t,n,r){(function(h){\"use strict\";var v=r(12).default,e=r(2).default;n.__esModule=!0;var g=r(4),m=e(r(5));n.default=function(e){e.registerHelper(\"each\",function(r,e){if(!e)throw new m.default(\"Must pass iterator to #each\");var t,o=e.fn,n=e.inverse,i=0,a=\"\",s=void 0,u=void 0;function c(e,t,n){s&&(s.key=e,s.index=t,s.first=0===t,s.last=!!n,u&&(s.contextPath=u+e)),a+=o(r[e],{data:s,blockParams:g.blockParams([r[e],e],[u+e,null])})}if(e.data&&e.ids&&(u=g.appendContextPath(e.data.contextPath,e.ids[0])+\".\"),g.isFunction(r)&&(r=r.call(this)),e.data&&(s=g.createFrame(e.data)),r&&\"object\"==typeof r)if(g.isArray(r))for(var l=r.length;i<l;i++)i in r&&c(i,i,i===r.length-1);else if(h.Symbol&&r[h.Symbol.iterator]){for(var f=[],p=r[h.Symbol.iterator](),d=p.next();!d.done;d=p.next())f.push(d.value);for(l=(r=f).length;i<l;i++)c(i,i,i===r.length-1)}else t=void 0,v(r).forEach(function(e){void 0!==t&&c(t,i-1),t=e,i++}),void 0!==t&&c(t,i-1,!0);return 0===i&&(a=n(this)),a})},t.exports=n.default}).call(n,function(){return this}())},function(e,t,n){e.exports={default:n(13),__esModule:!0}},function(e,t,n){n(14),e.exports=n(20).Object.keys},function(e,t,n){var r=n(15);n(17)(\"keys\",function(t){return function(e){return t(r(e))}})},function(e,t,n){var r=n(16);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports=function(e){if(null==e)throw TypeError(\"Can't call method on  \"+e);return e}},function(e,t,n){var o=n(18),i=n(20),a=n(23);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],r={};r[e]=t(n),o(o.S+o.F*a(function(){n(1)}),\"Object\",r)}},function(e,t,n){var h=n(19),v=n(20),g=n(21),m=\"prototype\",y=function(e,t,n){var r,o,i,a=e&y.F,s=e&y.G,u=e&y.S,c=e&y.P,l=e&y.B,f=e&y.W,p=s?v:v[t]||(v[t]={}),d=s?h:u?h[t]:(h[t]||{})[m];for(r in s&&(n=t),n)(o=!a&&d&&r in d)&&r in p||(i=o?d[r]:n[r],p[r]=s&&\"function\"!=typeof d[r]?n[r]:l&&o?g(i,h):f&&d[r]==i?function(t){function e(e){return this instanceof t?new t(e):t(e)}return e[m]=t[m],e}(i):c&&\"function\"==typeof i?g(Function.call,i):i,c&&((p[m]||(p[m]={}))[r]=i))};y.F=1,y.G=2,y.S=4,y.P=8,y.B=16,y.W=32,e.exports=y},function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(e,t){var n=e.exports={version:\"1.2.6\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var i=n(22);e.exports=function(r,o,e){if(i(r),void 0===o)return r;switch(e){case 1:return function(e){return r.call(o,e)};case 2:return function(e,t){return r.call(o,e,t)};case 3:return function(e,t,n){return r.call(o,e,t,n)}}return function(){return r.apply(o,arguments)}}},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=r(n(5));t.default=function(e){e.registerHelper(\"helperMissing\",function(){if(1!==arguments.length)throw new o.default('Missing helper: \"'+arguments[arguments.length-1].name+'\"')})},e.exports=t.default},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=n(4),i=r(n(5));t.default=function(n){n.registerHelper(\"if\",function(e,t){if(2!=arguments.length)throw new i.default(\"#if requires exactly one argument\");return o.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||o.isEmpty(e)?t.inverse(this):t.fn(this)}),n.registerHelper(\"unless\",function(e,t){if(2!=arguments.length)throw new i.default(\"#unless requires exactly one argument\");return n.helpers.if.call(this,e,{fn:t.inverse,inverse:t.fn,hash:t.hash})})},e.exports=t.default},function(e,t){\"use strict\";t.__esModule=!0,t.default=function(o){o.registerHelper(\"log\",function(){for(var e=[void 0],t=arguments[arguments.length-1],n=0;n<arguments.length-1;n++)e.push(arguments[n]);var r=1;null!=t.hash.level?r=t.hash.level:t.data&&null!=t.data.level&&(r=t.data.level),e[0]=r,o.log.apply(o,e)})},e.exports=t.default},function(e,t){\"use strict\";t.__esModule=!0;var n=/^(constructor|__defineGetter__|__defineSetter__|__lookupGetter__|__proto__)$/;t.dangerousPropertyRegex=n,t.default=function(e){e.registerHelper(\"lookup\",function(e,t){return e?!n.test(String(t))||Object.prototype.propertyIsEnumerable.call(e,t)?e[t]:void 0:e})}},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0;var o=n(4),i=r(n(5));t.default=function(e){e.registerHelper(\"with\",function(e,t){if(2!=arguments.length)throw new i.default(\"#with requires exactly one argument\");o.isFunction(e)&&(e=e.call(this));var n=t.fn;if(o.isEmpty(e))return t.inverse(this);var r=t.data;return t.data&&t.ids&&((r=o.createFrame(t.data)).contextPath=o.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:r,blockParams:o.blockParams([e],[r&&r.contextPath])})})},e.exports=t.default},function(e,t,n){\"use strict\";var r=n(2).default;t.__esModule=!0,t.registerDefaultDecorators=function(e){o.default(e)};var o=r(n(30))},function(e,t,n){\"use strict\";t.__esModule=!0;var s=n(4);t.default=function(e){e.registerDecorator(\"inline\",function(o,i,a,e){var t=o;return i.partials||(i.partials={},t=function(e,t){var n=a.partials;a.partials=s.extend({},n,i.partials);var r=o(e,t);return a.partials=n,r}),i.partials[e.args[0]]=e.fn,t})},e.exports=t.default},function(e,t,n){\"use strict\";t.__esModule=!0;var r=n(4),i={methodMap:[\"debug\",\"info\",\"warn\",\"error\"],level:\"info\",lookupLevel:function(e){var t;return\"string\"==typeof e&&(e=0<=(t=r.indexOf(i.methodMap,e.toLowerCase()))?t:parseInt(e,10)),e},log:function(e){if(e=i.lookupLevel(e),\"undefined\"!=typeof console&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];console[t]||(t=\"log\");for(var n=arguments.length,r=Array(1<n?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];console[t].apply(console,r)}}};t.default=i,e.exports=t.default},function(e,t){\"use strict\";function n(e){this.string=e}t.__esModule=!0,n.prototype.toString=n.prototype.toHTML=function(){return\"\"+this.string},t.default=n,e.exports=t.default},function(e,t,n){\"use strict\";var r=n(34).default,o=n(1).default,i=n(2).default;t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=p.COMPILER_REVISION;if(t>=p.LAST_COMPATIBLE_COMPILER_REVISION&&t<=p.COMPILER_REVISION)return;{if(t<p.LAST_COMPATIBLE_COMPILER_REVISION){var r=p.REVISION_CHANGES[n],o=p.REVISION_CHANGES[t];throw new f.default(\"Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (\"+r+\") or downgrade your runtime to an older version (\"+o+\").\")}throw new f.default(\"Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (\"+e[1]+\").\")}},t.template=function(u,c){if(!c)throw new f.default(\"No environment passed to template\");if(!u||!u.main)throw new f.default(\"Unknown template object: \"+typeof u);u.main.decorator=u.main_d,c.VM.checkRevision(u.compiler);var n=u.compiler&&7===u.compiler[0];var a={strict:function(e,t,n){if(!(e&&t in e))throw new f.default('\"'+t+'\" not defined in '+e,{loc:n});return e[t]},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return\"function\"==typeof e?e.call(t):e},escapeExpression:l.escapeExpression,invokePartial:function(e,t,n){n.hash&&(t=l.extend({},t,n.hash),n.ids&&(n.ids[0]=!0)),e=c.VM.resolvePartial.call(this,e,t,n);var r=l.extend({},n,{hooks:this.hooks}),o=c.VM.invokePartial.call(this,e,t,r);if(null==o&&c.compile&&(n.partials[n.name]=c.compile(e,u.compilerOptions,c),o=n.partials[n.name](t,r)),null==o)throw new f.default(\"The partial \"+n.name+\" could not be compiled when running in runtime-only mode\");if(n.indent){for(var i=o.split(\"\\n\"),a=0,s=i.length;a<s&&(i[a]||a+1!==s);a++)i[a]=n.indent+i[a];o=i.join(\"\\n\")}return o},fn:function(e){var t=u[e];return t.decorator=u[e+\"_d\"],t},programs:[],program:function(e,t,n,r,o){var i=this.programs[e],a=this.fn(e);return i=t||o||r||n?h(this,e,a,t,n,r,o):i||(this.programs[e]=h(this,e,a))},data:function(e,t){for(;e&&t--;)e=e._parent;return e},nullContext:r({}),noop:c.VM.noop,compilerInfo:u.compiler};function s(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=t.data;s._setup(t),!t.partial&&u.useData&&(n=function(e,t){t&&\"root\"in t||((t=t?p.createFrame(t):{}).root=e);return t}(e,n));var r=void 0,o=u.useBlockParams?[]:void 0;function i(e){return\"\"+u.main(a,e,a.helpers,a.partials,n,o,r)}return u.useDepths&&(r=t.depths?e!=t.depths[0]?[e].concat(t.depths):t.depths:[e]),(i=v(u.main,i,a,t.depths||[],n,o))(e,t)}return s.isTop=!0,s._setup=function(e){var t;e.partial?(a.helpers=e.helpers,a.partials=e.partials,a.decorators=e.decorators,a.hooks=e.hooks):(a.helpers=l.extend({},c.helpers,e.helpers),u.usePartial&&(a.partials=l.extend({},c.partials,e.partials)),(u.usePartial||u.useDecorators)&&(a.decorators=l.extend({},c.decorators,e.decorators)),a.hooks={},t=e.allowCallsToHelperMissing||n,d.moveHelperToHooks(a,\"helperMissing\",t),d.moveHelperToHooks(a,\"blockHelperMissing\",t))},s._child=function(e,t,n,r){if(u.useBlockParams&&!n)throw new f.default(\"must pass block params\");if(u.useDepths&&!r)throw new f.default(\"must pass parent depths\");return h(a,e,u[e],t,0,n,r)},s},t.wrapProgram=h,t.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e=\"@partial-block\"===n.name?n.data[\"partial-block\"]:n.partials[n.name];return e},t.invokePartial=function(e,t,n){var o=n.data&&n.data[\"partial-block\"];n.partial=!0,n.ids&&(n.data.contextPath=n.ids[0]||n.data.contextPath);var i=void 0;n.fn&&n.fn!==a&&function(){n.data=p.createFrame(n.data);var r=n.fn;i=n.data[\"partial-block\"]=function(e,t){var n=arguments.length<=1||void 0===t?{}:t;return n.data=p.createFrame(n.data),n.data[\"partial-block\"]=o,r(e,n)},r.partials&&(n.partials=l.extend({},n.partials,r.partials))}();void 0===e&&i&&(e=i);{if(void 0===e)throw new f.default(\"The partial \"+n.name+\" could not be found\");if(e instanceof Function)return e(t,n)}},t.noop=a;var l=o(n(4)),f=i(n(5)),p=n(3),d=n(9);function h(r,e,o,i,t,a,s){function n(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=s;return!s||e==s[0]||e===r.nullContext&&null===s[0]||(n=[e].concat(s)),o(r,e,r.helpers,r.partials,t.data||i,a&&[t.blockParams].concat(a),n)}return(n=v(o,n,r,s,i,a)).program=e,n.depth=s?s.length:0,n.blockParams=t||0,n}function a(){return\"\"}function v(e,t,n,r,o,i){var a;return e.decorator&&(a={},t=e.decorator(t,a,n,r&&r[0],o,i,r),l.extend(t,a)),t}},function(e,t,n){e.exports={default:n(35),__esModule:!0}},function(e,t,n){n(36),e.exports=n(20).Object.seal},function(e,t,n){var r=n(37);n(17)(\"seal\",function(t){return function(e){return t&&r(e)?t(e):e}})},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t){(function(r){\"use strict\";t.__esModule=!0,t.default=function(e){var t=void 0!==r?r:window,n=t.Handlebars;e.noConflict=function(){return t.Handlebars===e&&(t.Handlebars=n),e}},e.exports=t.default}).call(t,function(){return this}())}],n.c=o,n.p=\"\",n(0);function n(e){if(o[e])return o[e].exports;var t=o[e]={exports:{},id:e,loaded:!1};return r[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}var r,o}),function(){var n;\"undefined\"!=typeof I18n&&(n=I18n.toHumanSize,I18n.toHumanSize=function(e,t){return(t=t||{}).format=I18n.t(\"number.human.storage_units.format\"),n.apply(this,[e,t])},\"w\"in String.prototype&&(String.prototype.i18n=function(e){return I18n.t(String(this),e)}))}(),function(e,o,a){\"use strict\";e.MessageBus;var d,r,h,i,s,v=!1,t=function(){return\"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx\".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})}(),u=[],g=0,n=!1,c=[],m=0,y=e.jQuery;!function(){for(var e=[\"\",\"webkit\",\"ms\",\"moz\"],t=0;t<e.length;t++){var n=e[t],r=n+(\"\"===n?\"hidden\":\"Hidden\");o[r]!==a&&(s=r)}}();function l(){return s!==a?o[s]:!o.hasFocus}function f(e){var t=!1;if(!e)return!1;for(var n=0;n<e.length;n++)for(var r=e[n],t=!0,o=0;o<u.length;o++){var i=u[o];if(i.channel===r.channel){i.last_id=r.message_id;try{i.func(r.data,r.global_id,r.message_id)}catch(e){console.log&&console.log(\"MESSAGE BUS FAIL: callback \"+i.channel+\" caused exception \"+e.stack)}}\"/__status\"===r.channel&&r.data[i.channel]!==a&&(i.last_id=r.data[i.channel])}return t}function _(e){if(g=0,!n)return f(e);if(e)for(var t=0;t<e.length;t++)c.push(e[t]);return!1}var b,w=function(){try{return localStorage.setItem(\"mbTestLocalStorage\",Date.now()),localStorage.removeItem(\"mbTestLocalStorage\"),!0}catch(e){return!1}}(),x=null===(new XMLHttpRequest).onprogress,k=function(){return E.alwaysLongPoll||!l()},O=0,j=0,p=function(t,i){if(!v){var o,n=!1,a=!1,s=!1;b=new Date,j+=1,i.__seq=j;var e=k()&&E.enableLongPolling,r=e&&E.enableChunkedEncoding&&x;0<m&&(m--,r=!1);var u={\"X-SILENCE-LOGGER\":\"true\"};for(var c in E.headers)u[c]=E.headers[c];r||(u[\"Dont-Chunk\"]=\"true\");var l=r?\"text\":\"json\",f=function(e,t){var n=\"\\r\\n|\\r\\n\",r=e.indexOf(n,t);if(-1===r)return t;var o=(o=e.substring(t,r)).replace(/\\r\\n\\|\\|\\r\\n/g,n);try{_(JSON.parse(o))}catch(e){console.log&&(console.log(\"FAILED TO PARSE CHUNKED REPLY\"),console.log(i))}return f(e,r+n.length)},p=function(){E.longPoll&&(E.longPoll.abort(),m=30)};if(!E.ajax)throw new Error(\"Either jQuery or the ajax adapter must be loaded\");return w&&localStorage.setItem(\"__mbLastAjax\",Date.now()),v=!0,E.ajax({url:E.baseUrl+\"message-bus/\"+E.clientId+\"/poll\"+(e?\"\":\"?dlp=t\"),data:i,cache:!1,async:!0,dataType:l,type:\"POST\",headers:u,messageBus:{chunked:r,onProgressListener:function(e){var t=0,n=setTimeout(p,3e3);return e.onprogress=function(){clearTimeout(n),\"application/json; charset=utf-8\"===e.getResponseHeader(\"Content-Type\")?r=!1:t=f(e.responseText,t)}}},xhr:function(){var e=y.ajaxSettings.xhr();return r&&this.messageBus.onProgressListener(e),e},success:function(e){r||(\"string\"==typeof e&&(e=JSON.parse(e)),n=_(e))},error:function(e,t,n){var r;429===e.status?((r=(r=parseInt(e.getResponseHeader&&e.getResponseHeader(\"Retry-After\"))||0)||0)<15&&(r=15),o=r,s=!0):\"abort\"===t?a=!0:(g+=1,O+=1)},complete:function(){var e;v=!1;try{s?e=Math.max(E.minPollInterval,1e3*o):n||a?e=E.minPollInterval:(e=E.callbackInterval,2<g?e*=g:k()||(e=E.backgroundCallbackInterval),e>E.maxPollInterval&&(e=E.maxPollInterval),(e-=new Date-b)<100&&(e=100))}catch(e){console.log&&e.message&&console.log(\"MESSAGE BUS FAIL: \"+e.message)}h&&(clearTimeout(h),h=null),d&&(h=setTimeout(function(){h=null,t()},e)),E.longPoll=null}})}},E={minHiddenPollInterval:1500,enableChunkedEncoding:!0,enableLongPolling:!0,callbackInterval:15e3,backgroundCallbackInterval:6e4,minPollInterval:100,maxPollInterval:18e4,callbacks:u,clientId:t,alwaysLongPoll:!1,baseUrl:\"/\",headers:{},ajax:y&&y.ajax,noConflict:function(){return e.MessageBus=e.MessageBus.previousMessageBus,this},diagnostics:function(){console.log(\"Stopped: \"+r+\" Started: \"+d),console.log(\"Current callbacks\"),console.log(u),console.log(\"Total ajax calls: \"+j+\" Recent failure count: \"+g+\" Total failures: \"+O),console.log(\"Last ajax call: \"+(new Date-b)/1e3+\" seconds ago\")},pause:function(){n=!0},resume:function(){n=!1,f(c),c=[]},stop:function(){d=!(r=!0),i&&(clearTimeout(i),i=null),E.longPoll&&E.longPoll.abort()},start:function(){var n;d||(r=!(d=!0),n=function(){var e;if(!r)if(0===u.length||function(){if(w&&l()){var e=parseInt(localStorage.getItem(\"__mbLastAjax\"),10),t=Date.now()-e;return 0<=t&&t<E.minHiddenPollInterval}return!1}())i=i||setTimeout(function(){i=null,n()},parseInt(500+500*Math.random()));else{e={};for(var t=0;t<u.length;t++)e[u[t].channel]=u[t].last_id;E.longPoll||(E.longPoll=p(n,e))}},o.addEventListener&&\"hidden\"in o&&(E.visibilityEvent=e.document.addEventListener(\"visibilitychange\",function(){o.hidden||E.longPoll||!h||(clearTimeout(h),clearTimeout(i),h=i=null,n())})),n())},status:function(){if(n)return\"paused\";if(d)return\"started\";if(r)return\"stopped\";throw\"Cannot determine current status\"},subscribe:function(e,t,n){if(d||r||E.start(),\"number\"!=typeof n&&(n=-1),\"string\"!=typeof e)throw\"Channel name must be a string!\";return u.push({channel:e,func:t,last_id:n}),E.longPoll&&E.longPoll.abort(),t},unsubscribe:function(e,t){var n;-1!==e.indexOf(\"*\",e.length-1)&&(e=e.substr(0,e.length-1),n=!0);for(var r=!1,o=u.length-1;0<=o;o--){var i=u[o],a=n?i.channel.substr(0,e.length)!==e:i.channel!==e;!a&&t&&i.func!==t&&(a=!0),a||(u.splice(o,1),r=!0)}return r&&E.longPoll&&E.longPoll.abort(),r}};e.MessageBus=E}(window,document),function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(jQuery)}(function(l){var o,n=0,s=Array.prototype.slice;l.cleanData=(o=l.cleanData,function(e){for(var t,n,r=0;null!=(n=e[r]);r++)try{(t=l._data(n,\"events\"))&&t.remove&&l(n).triggerHandler(\"remove\")}catch(e){}o(e)}),l.widget=function(e,n,t){var r,o,i,a,s={},u=e.split(\".\")[0];return e=e.split(\".\")[1],r=u+\"-\"+e,t||(t=n,n=l.Widget),l.expr[\":\"][r.toLowerCase()]=function(e){return!!l.data(e,r)},l[u]=l[u]||{},o=l[u][e],i=l[u][e]=function(e,t){if(!this._createWidget)return new i(e,t);arguments.length&&this._createWidget(e,t)},l.extend(i,o,{version:t.version,_proto:l.extend({},t),_childConstructors:[]}),(a=new n).options=l.widget.extend({},a.options),l.each(t,function(t,r){function o(){return n.prototype[t].apply(this,arguments)}function i(e){return n.prototype[t].apply(this,e)}l.isFunction(r)?s[t]=function(){var e,t=this._super,n=this._superApply;return this._super=o,this._superApply=i,e=r.apply(this,arguments),this._super=t,this._superApply=n,e}:s[t]=r}),i.prototype=l.widget.extend(a,{widgetEventPrefix:o&&a.widgetEventPrefix||e},s,{constructor:i,namespace:u,widgetName:e,widgetFullName:r}),o?(l.each(o._childConstructors,function(e,t){var n=t.prototype;l.widget(n.namespace+\".\"+n.widgetName,i,t._proto)}),delete o._childConstructors):n._childConstructors.push(i),l.widget.bridge(e,i),i},l.widget.extend=function(e){for(var t,n,r=s.call(arguments,1),o=0,i=r.length;o<i;o++)for(t in r[o])n=r[o][t],r[o].hasOwnProperty(t)&&void 0!==n&&(l.isPlainObject(n)?e[t]=l.isPlainObject(e[t])?l.widget.extend({},e[t],n):l.widget.extend({},n):e[t]=n);return e},l.widget.bridge=function(i,t){var a=t.prototype.widgetFullName||i;l.fn[i]=function(n){var e=\"string\"==typeof n,r=s.call(arguments,1),o=this;return n=!e&&r.length?l.widget.extend.apply(null,[n].concat(r)):n,e?this.each(function(){var e,t=l.data(this,a);return\"instance\"===n?(o=t,!1):t?l.isFunction(t[n])&&\"_\"!==n.charAt(0)?(e=t[n].apply(t,r))!==t&&void 0!==e?(o=e&&e.jquery?o.pushStack(e.get()):e,!1):void 0:l.error(\"no such method '\"+n+\"' for \"+i+\" widget instance\"):l.error(\"cannot call methods on \"+i+\" prior to initialization; attempted to call method '\"+n+\"'\")}):this.each(function(){var e=l.data(this,a);e?(e.option(n||{}),e._init&&e._init()):l.data(this,a,new t(n,this))}),o}},l.Widget=function(){},l.Widget._childConstructors=[],l.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",defaultElement:\"<div>\",options:{disabled:!1,create:null},_createWidget:function(e,t){t=l(t||this.defaultElement||this)[0],this.element=l(t),this.uuid=n++,this.eventNamespace=\".\"+this.widgetName+this.uuid,this.options=l.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=l(),this.hoverable=l(),this.focusable=l(),t!==this&&(l.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=l(t.style?t.ownerDocument:t.document||t),this.window=l(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger(\"create\",null,this._getCreateEventData()),this._init()},_getCreateOptions:l.noop,_getCreateEventData:l.noop,_create:l.noop,_init:l.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(l.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr(\"aria-disabled\").removeClass(this.widgetFullName+\"-disabled ui-state-disabled\"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass(\"ui-state-hover\"),this.focusable.removeClass(\"ui-state-focus\")},_destroy:l.noop,widget:function(){return this.element},option:function(e,t){var n,r,o,i=e;if(0===arguments.length)return l.widget.extend({},this.options);if(\"string\"==typeof e)if(i={},e=(n=e.split(\".\")).shift(),n.length){for(r=i[e]=l.widget.extend({},this.options[e]),o=0;o<n.length-1;o++)r[n[o]]=r[n[o]]||{},r=r[n[o]];if(e=n.pop(),1===arguments.length)return void 0===r[e]?null:r[e];r[e]=t}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];i[e]=t}return this._setOptions(i),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,\"disabled\"===e&&(this.widget().toggleClass(this.widgetFullName+\"-disabled\",!!t),t&&(this.hoverable.removeClass(\"ui-state-hover\"),this.focusable.removeClass(\"ui-state-focus\"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(a,s,e){var u,c=this;\"boolean\"!=typeof a&&(e=s,s=a,a=!1),e?(s=u=l(s),this.bindings=this.bindings.add(s)):(e=s,s=this.element,u=this.widget()),l.each(e,function(e,t){function n(){if(a||!0!==c.options.disabled&&!l(this).hasClass(\"ui-state-disabled\"))return(\"string\"==typeof t?c[t]:t).apply(c,arguments)}\"string\"!=typeof t&&(n.guid=t.guid=t.guid||n.guid||l.guid++);var r=e.match(/^([\\w:-]*)\\s*(.*)$/),o=r[1]+c.eventNamespace,i=r[2];i?u.delegate(i,o,n):s.bind(o,n)})},_off:function(e,t){t=(t||\"\").split(\" \").join(this.eventNamespace+\" \")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){var n=this;return setTimeout(function(){return(\"string\"==typeof e?n[e]:e).apply(n,arguments)},t||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){l(e.currentTarget).addClass(\"ui-state-hover\")},mouseleave:function(e){l(e.currentTarget).removeClass(\"ui-state-hover\")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){l(e.currentTarget).addClass(\"ui-state-focus\")},focusout:function(e){l(e.currentTarget).removeClass(\"ui-state-focus\")}})},_trigger:function(e,t,n){var r,o,i=this.options[e];if(n=n||{},(t=l.Event(t)).type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),t.target=this.element[0],o=t.originalEvent)for(r in o)r in t||(t[r]=o[r]);return this.element.trigger(t,n),!(l.isFunction(i)&&!1===i.apply(this.element[0],[t].concat(n))||t.isDefaultPrevented())}},l.each({show:\"fadeIn\",hide:\"fadeOut\"},function(i,a){l.Widget.prototype[\"_\"+i]=function(t,e,n){\"string\"==typeof e&&(e={effect:e});var r,o=e?!0!==e&&\"number\"!=typeof e&&e.effect||a:i;\"number\"==typeof(e=e||{})&&(e={duration:e}),r=!l.isEmptyObject(e),e.complete=n,e.delay&&t.delay(e.delay),r&&l.effects&&l.effects.effect[o]?t[i](e):o!==i&&t[o]?t[o](e.duration,e.easing,n):t.queue(function(e){l(this)[i](),n&&n.call(t[0]),e()})}});l.widget}),Markdown=\"object\"==typeof exports&&\"function\"==typeof require?exports:{},function(){function t(e){return e}function n(e){return!1}function e(){}e.prototype={chain:function(e,n){var r=this[e];if(!r)throw new Error(\"unknown hook \"+e);this[e]=r===t?n:function(e){var t=Array.prototype.slice.call(arguments,0);return t[0]=r.apply(null,t),n.apply(null,t)}},set:function(e,t){if(!this[e])throw new Error(\"unknown hook \"+e);this[e]=t},addNoop:function(e){this[e]=t},addFalse:function(e){this[e]=n}},Markdown.HookCollection=e}();var bootbox=window.bootbox||function(y,_){var n=\"en\",r=\"en\",b=!0,w=\"static\",x=\"javascript:;\",k=\"\",c={},l={},O={setLocale:function(e){for(var t in o)if(t==e)return void(n=e);throw new Error(\"Invalid locale: \"+e)},addLocale:function(e,t){for(var n in void 0===o[e]&&(o[e]={}),t)o[e][n]=t[n]},setIcons:function(e){\"object\"==typeof(l=e)&&null!==l||(l={})},setBtnClasses:function(e){\"object\"==typeof(c=e)&&null!==c||(c={})},alert:function(){var e=\"\",t=f(\"OK\"),n=null;switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?n=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],n=arguments[2];break;default:throw new Error(\"Incorrect number of arguments: expected 1-3\")}return O.dialog(e,{label:t,icon:l.OK,class:c.OK,callback:n},{onEscape:n||!0})},confirm:function(){var e=\"\",t=f(\"CANCEL\"),n=f(\"CONFIRM\"),r=null;switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?r=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],\"function\"==typeof arguments[2]?r=arguments[2]:n=arguments[2];break;case 4:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3];break;default:throw new Error(\"Incorrect number of arguments: expected 1-4\")}function o(){if(\"function\"==typeof r)return r(!1)}return O.dialog(e,[{label:t,icon:l.CANCEL,class:c.CANCEL,callback:o},{label:n,icon:l.CONFIRM,class:c.CONFIRM,callback:function(){if(\"function\"==typeof r)return r(!0)}}],{onEscape:o})},prompt:function(){var e=\"\",t=f(\"CANCEL\"),n=f(\"CONFIRM\"),r=null,o=\"\";switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"function\"==typeof arguments[1]?r=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],\"function\"==typeof arguments[2]?r=arguments[2]:n=arguments[2];break;case 4:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3];break;case 5:e=arguments[0],t=arguments[1],n=arguments[2],r=arguments[3],o=arguments[4];break;default:throw new Error(\"Incorrect number of arguments: expected 1-5\")}var i=e,a=_(\"<form></form>\");a.append(\"<input class='input-block-level' autocomplete=off type=text value='\"+o+\"' />\");function s(){if(\"function\"==typeof r)return r(null)}var u=O.dialog(a,[{label:t,icon:l.CANCEL,class:c.CANCEL,callback:s},{label:n,icon:l.CONFIRM,class:c.CONFIRM,callback:function(){if(\"function\"==typeof r)return r(a.find(\"input[type=text]\").val())}}],{header:i,show:!1,onEscape:s});return u.on(\"shown\",function(){a.find(\"input[type=text]\").focus(),a.on(\"submit\",function(e){e.preventDefault(),u.find(\".btn-primary\").click()})}),u.modal(\"show\"),u},dialog:function(e,i,t){var n=\"\",a=[];t=t||{},void 0===i?i=[]:void 0===i.length&&(i=[i]);for(var r=i.length;r--;){var o=null,s=\"btn-default\",u=\"\",c=null;if(void 0===i[r].label&&void 0===i[r].class&&void 0===i[r].callback){var l=0,f=null;for(var p in i[r])if(f=p,1<++l)break;1==l&&\"function\"==typeof i[r][p]&&(i[r].label=f,i[r].callback=i[r][p])}\"function\"==typeof i[r].callback&&(c=i[r].callback),i[r].class?s=i[r].class:r==i.length-1&&i.length<=2&&(s=\"btn-primary\"),!0!==i[r].link&&(s=\"btn \"+s),o=i[r].label?i[r].label:\"Option \"+(r+1),i[r].icon&&(u=\"<i class='\"+i[r].icon+\"'></i> \"),n=n+\"<a data-handler='\"+r+\"' class='\"+s+\"' href='\"+(i[r].href?i[r].href:x)+\"'>\"+u+o+\"</a>\",a[r]=c}var d,h=[\"<div class='bootbox modal' tabindex='-1' style='overflow:hidden;'>\"];t.header&&(d=\"\",void 0!==t.headerCloseButton&&!t.headerCloseButton||(d=\"<a href='\"+x+\"' class='close'>&times;</a>\"),h.push(\"<div class='modal-header'>\"+d+\"<h3>\"+t.header+\"</h3></div>\")),h.push(\"<div class='modal-body'></div>\"),n&&h.push(\"<div class='modal-footer'>\"+n+\"</div>\"),h.push(\"</div>\");var v=_(h.join(\"\\n\"));(void 0===t.animate?b:t.animate)&&v.addClass(\"fade\");var g=void 0===t.classes?k:t.classes;function m(){var e=null;\"function\"==typeof t.onEscape&&(e=t.onEscape()),!1!==e&&v.modal(\"hide\")}return g&&v.addClass(g),v.find(\".modal-body\").html(e),v.on(\"keyup.dismiss.modal\",function(e){27===e.which&&!1!==t.onEscape&&m()}),v.on(\"click\",\"a.close\",function(e){e.preventDefault(),m()}),v.on(\"shown.bs.modal\",function(){v.find(\"a.btn-primary:first\").focus()}),v.on(\"hidden.bs.modal\",function(){v.remove()}),v.on(\"click\",\".modal-footer a\",function(r){var o=this;Ember.run(function(){var e=_(o).data(\"handler\"),t=a[e],n=null;void 0!==e&&void 0!==i[e].href||(r.preventDefault(),\"function\"==typeof t&&(n=t(r)),!1!==n&&v.modal(\"hide\"))})}),(O.$body||_(\"body\")).append(v),v.modal({backdrop:void 0===t.backdrop?w:t.backdrop,keyboard:!1,show:!1}),v.on(\"show\",function(e){_(y).off(\"focusin.modal\")}),void 0!==t.show&&!0!==t.show||v.modal(\"show\"),v},modal:function(){var e,t,n,r={onEscape:null,keyboard:!0,backdrop:w};switch(arguments.length){case 1:e=arguments[0];break;case 2:e=arguments[0],\"object\"==typeof arguments[1]?n=arguments[1]:t=arguments[1];break;case 3:e=arguments[0],t=arguments[1],n=arguments[2];break;default:throw new Error(\"Incorrect number of arguments: expected 1-3\")}return r.header=t,n=\"object\"==typeof n?_.extend(r,n):r,O.dialog(e,[],n)},hideAll:function(){_(\".bootbox\").modal(\"hide\")},animate:function(e){b=e},backdrop:function(e){w=e},classes:function(e){k=e}},o={br:{OK:\"OK\",CANCEL:\"Cancelar\",CONFIRM:\"Sim\"},da:{OK:\"OK\",CANCEL:\"Annuller\",CONFIRM:\"Accepter\"},de:{OK:\"OK\",CANCEL:\"Abbrechen\",CONFIRM:\"Akzeptieren\"},en:{OK:\"OK\",CANCEL:\"Cancel\",CONFIRM:\"OK\"},es:{OK:\"OK\",CANCEL:\"Cancelar\",CONFIRM:\"Aceptar\"},fr:{OK:\"OK\",CANCEL:\"Annuler\",CONFIRM:\"D'accord\"},it:{OK:\"OK\",CANCEL:\"Annulla\",CONFIRM:\"Conferma\"},nl:{OK:\"OK\",CANCEL:\"Annuleren\",CONFIRM:\"Accepteren\"},pl:{OK:\"OK\",CANCEL:\"Anuluj\",CONFIRM:\"Potwierdź\"},ru:{OK:\"OK\",CANCEL:\"Отмена\",CONFIRM:\"Применить\"},zh_CN:{OK:\"OK\",CANCEL:\"取消\",CONFIRM:\"确认\"},zh_TW:{OK:\"OK\",CANCEL:\"取消\",CONFIRM:\"確認\"}};function f(e,t){return void 0===t&&(t=n),\"string\"==typeof o[t][e]?o[t][e]:t!=r?f(e,r):e}return O}(document,window.jQuery);window.bootbox=bootbox,function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).Popper={})}(this,function(e){\"use strict\";function C(e){var t=e.getBoundingClientRect();return{width:t.width,height:t.height,top:t.top,right:t.right,bottom:t.bottom,left:t.left,x:t.left,y:t.top}}function k(e){if(\"[object Window]\"===e.toString())return e;var t=e.ownerDocument;return t?t.defaultView:window}function c(e){var t=k(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function T(e){return e instanceof k(e).Element}function l(e){return e instanceof k(e).HTMLElement}function f(e){return e?(e.nodeName||\"\").toLowerCase():null}function I(e){return(T(e)?e.ownerDocument:e.document).documentElement}function p(e){return C(I(e)).left+c(e).scrollLeft}function g(e,t,n){var r;void 0===n&&(n=!1);var o,i,a=C(e),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return n||(\"body\"!==f(t)&&(s=(o=t)!==k(o)&&l(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:c(o)),l(t)?((u=C(t)).x+=t.clientLeft,u.y+=t.clientTop):(r=I(t))&&(u.x=p(r))),{x:a.left+s.scrollLeft-u.x,y:a.top+s.scrollTop-u.y,width:a.width,height:a.height}}function Z(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function a(e){return\"html\"===f(e)?e:e.parentNode||e.host||document.ownerDocument||document.documentElement}function m(e){return k(e).getComputedStyle(e)}function y(e,t){void 0===t&&(t=[]);var n=function e(t){if(0<=[\"html\",\"body\",\"#document\"].indexOf(f(t)))return t.ownerDocument.body;if(l(t)){var n=m(t),r=n.overflow,o=n.overflowX,i=n.overflowY;if(/auto|scroll|overlay|hidden/.test(r+i+o))return t}return e(a(t))}(e),r=\"body\"===f(n),o=r?k(n):n,i=t.concat(o);return r?i:i.concat(y(a(o)))}var n=function(){return void 0!==window.InstallTrigger};function r(e){var t;return!l(e)||!(t=e.offsetParent)||n()&&\"fixed\"===m(t).position?null:t}function O(e){for(var t=k(e),n=r(e);n&&0<=[\"table\",\"td\",\"th\"].indexOf(f(n));)n=r(n);return(!n||\"body\"!==f(n)||\"static\"!==m(n).position)&&n||t}var J=\"top\",Y=\"bottom\",ee=\"right\",te=\"left\",S=\"auto\",P=[J,Y,ee,te],ne=\"start\",d=\"end\",A=\"clippingParents\",R=\"viewport\",N=\"popper\",D=\"reference\",M=P.reduce(function(e,t){return e.concat([t+\"-\"+ne,t+\"-\"+d])},[]),u=[].concat(P,[S]).reduce(function(e,t){return e.concat([t,t+\"-\"+ne,t+\"-\"+d])},[]),_=[\"beforeRead\",\"read\",\"afterRead\",\"beforeMain\",\"main\",\"afterMain\",\"beforeWrite\",\"write\",\"afterWrite\"];function b(e){var r=new Map,o=new Set,t=[];return e.forEach(function(e){r.set(e.name,e)}),e.forEach(function(e){o.has(e.name)||!function n(e){o.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){var t;o.has(e)||(t=r.get(e))&&n(t)}),t.push(e)}(e)}),t}function w(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return[].concat(n).reduce(function(e,t){return e.replace(/%s/,t)},e)}var x='Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s',j='Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available',E=[\"name\",\"enabled\",\"phase\",\"fn\",\"effect\",\"requires\",\"options\"];function F(e,n){var r=new Set;return e.filter(function(e){var t=n(e);if(!r.has(t))return r.add(t),!0})}function re(e){return e.split(\"-\")[0]}var L=\"Popper: Invalid reference or popper argument provided to Popper, they must be either a valid DOM element, virtual element, or a jQuery-wrapped DOM element.\",o={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function H(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&\"function\"==typeof e.getBoundingClientRect)})}function t(e){void 0===e&&(e={});var t=e.defaultModifiers,h=void 0===t?[]:t,n=e.defaultOptions,v=void 0===n?o:n;return function(s,u,t){void 0===t&&(t=v);var n,r,l={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},o,{},v),modifiersData:{},elements:{reference:s,popper:u},attributes:{},styles:{}},c=[],f=!1,p={state:l,setOptions:function(e){d(),l.options=Object.assign({},v,{},l.options,{},e),l.scrollParents={reference:T(s)?y(s):[],popper:y(u)};var t,n,r=(t=[].concat(l.options.modifiers.filter(function(t){return!h.find(function(e){return e.name===t.name})}),h.map(function(t){return Object.assign({},t,{},l.options.modifiers.find(function(e){return e.name===t.name}))})),n=b(t),_.reduce(function(e,t){return e.concat(n.filter(function(e){return e.phase===t}))},[])),o=F([].concat(r,l.options.modifiers),function(e){return e.name});(i=o).forEach(function(n){Object.keys(n).forEach(function(e){switch(e){case\"name\":\"string\"!=typeof n.name&&console.error(w(x,String(n.name),'\"name\"','\"string\"','\"'+String(n.name)+'\"'));break;case\"enabled\":\"boolean\"!=typeof n.enabled&&console.error(w(x,n.name,'\"enabled\"','\"boolean\"','\"'+String(n.enabled)+'\"'));case\"phase\":_.indexOf(n.phase)<0&&console.error(w(x,n.name,'\"phase\"',\"either \"+_.join(\", \"),'\"'+String(n.phase)+'\"'));break;case\"fn\":\"function\"!=typeof n.fn&&console.error(w(x,n.name,'\"fn\"','\"function\"','\"'+String(n.fn)+'\"'));break;case\"effect\":\"function\"!=typeof n.effect&&console.error(w(x,n.name,'\"effect\"','\"function\"','\"'+String(n.fn)+'\"'));break;case\"requires\":Array.isArray(n.requires)||console.error(w(x,n.name,'\"requires\"','\"array\"','\"'+String(n.requires)+'\"'));break;case\"requiresIfExists\":Array.isArray(n.requiresIfExists)||console.error(w(x,n.name,'\"requiresIfExists\"','\"array\"','\"'+String(n.requiresIfExists)+'\"'));break;case\"options\":case\"data\":break;default:console.error('PopperJS: an invalid property has been provided to the \"'+n.name+'\" modifier, valid properties are '+E.map(function(e){return'\"'+e+'\"'}).join(\", \")+'; but \"'+e+'\" was provided.')}n.requires&&n.requires.forEach(function(t){null==i.find(function(e){return e.name===t})&&console.error(w(j,String(n.name),t,t))})})}),re(l.options.placement)===S&&(r.find(function(e){return\"flip\"===e.name})||console.error(['Popper: \"auto\" placements require the \"flip\" modifier be',\"present and enabled to work.\"].join(\" \")));var i,a=m(u);return[a.marginTop,a.marginRight,a.marginBottom,a.marginLeft].some(function(e){return parseFloat(e)})&&console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding',\"between the popper and its reference element or boundary.\",\"To replicate margin, use the `offset` modifier, as well as\",\"the `padding` option in the `preventOverflow` and `flip`\",\"modifiers.\"].join(\" \")),l.orderedModifiers=r.filter(function(e){return e.enabled}),l.orderedModifiers.forEach(function(e){var t,n=e.name,r=e.options,o=void 0===r?{}:r,i=e.effect;\"function\"==typeof i&&(t=i({state:l,name:n,instance:p,options:o}),c.push(t||function(){}))}),p.update()},forceUpdate:function(){if(!f){var e=l.elements,t=e.reference,n=e.popper;if(H(t,n)){l.rects={reference:g(t,O(n),\"fixed\"===l.options.strategy),popper:Z(n)},l.reset=!1,l.placement=l.options.placement,l.orderedModifiers.forEach(function(e){return l.modifiersData[e.name]=Object.assign({},e.data)});for(var r,o,i,a,s,u=0,c=0;c<l.orderedModifiers.length;c++){if(100<(u+=1)){console.error(\"Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.\");break}!0!==l.reset?(o=(r=l.orderedModifiers[c]).fn,a=void 0===(i=r.options)?{}:i,s=r.name,\"function\"==typeof o&&(l=o({state:l,options:a,name:s,instance:p})||l)):(l.reset=!1,c=-1)}}else console.error(L)}},update:(n=function(){return new Promise(function(e){p.forceUpdate(),e(l)})},function(){return r=r||new Promise(function(e){Promise.resolve().then(function(){r=void 0,e(n())})})}),destroy:function(){d(),f=!0}};if(!H(s,u))return console.error(L),p;function d(){c.forEach(function(e){return e()}),c=[]}return p.setOptions(t).then(function(e){!f&&t.onFirstUpdate&&t.onFirstUpdate(e)}),p}}var h={passive:!0};function oe(e){return e.split(\"-\")[1]}function ie(e){return 0<=[\"top\",\"bottom\"].indexOf(e)?\"x\":\"y\"}function q(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?re(o):null,a=o?oe(o):null,s=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(i){case J:t={x:s,y:n.y-r.height};break;case Y:t={x:s,y:n.y+n.height};break;case ee:t={x:n.x+n.width,y:u};break;case te:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var c=i?ie(i):null;if(null!=c){var l=\"y\"===c?\"height\":\"width\";switch(a){case ne:t[c]=Math.floor(t[c])-Math.floor(n[l]/2-r[l]/2);break;case d:t[c]=Math.floor(t[c])+Math.ceil(n[l]/2-r[l]/2)}}return t}var B={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function v(e){var t,n,r,o,i,a,s=e.popper,u=e.popperRect,c=e.placement,l=e.offsets,f=e.position,p=e.gpuAcceleration,d=e.adaptive,h=(r=(n=l).x,o=n.y,i=window.devicePixelRatio||1,{x:Math.round(r*i)/i||0,y:Math.round(o*i)/i||0}),v=h.x,g=h.y,m=l.hasOwnProperty(\"x\"),y=l.hasOwnProperty(\"y\"),_=te,b=J;d&&((a=O(s))===k(s)&&(a=I(s)),c===J&&(b=Y,g-=a.clientHeight-u.height,g*=p?1:-1),c===te&&(_=ee,v-=a.clientWidth-u.width,v*=p?1:-1));var w,x=Object.assign({position:f},d&&B);return p?Object.assign({},x,((w={})[b]=y?\"0\":\"\",w[_]=m?\"0\":\"\",w.transform=(window.devicePixelRatio||1)<2?\"translate(\"+v+\"px, \"+g+\"px)\":\"translate3d(\"+v+\"px, \"+g+\"px, 0)\",w)):Object.assign({},x,((t={})[b]=y?g+\"px\":\"\",t[_]=m?v+\"px\":\"\",t.transform=\"\",t))}var i={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function $(e){return e.replace(/left|right|bottom|top/g,function(e){return i[e]})}var s={start:\"end\",end:\"start\"};function U(e){return e.replace(/start|end/g,function(e){return s[e]})}function z(e){return parseFloat(e)||0}function W(e){var t,n,r=k(e),o={top:z((n=l(t=e)?m(t):{}).borderTopWidth),right:z(n.borderRightWidth),bottom:z(n.borderBottomWidth),left:z(n.borderLeftWidth)},i=\"html\"===f(e),a=p(e),s=e.clientWidth+o.right,u=e.clientHeight+o.bottom;return i&&50<r.innerHeight-e.clientHeight&&(u=r.innerHeight-o.bottom),{top:i?0:e.clientTop,right:e.clientLeft>o.left?o.right:i?r.innerWidth-s-a:e.offsetWidth-s,bottom:i?r.innerHeight-u:e.offsetHeight-u,left:i?a:e.clientLeft}}function V(e,t){var n=Boolean(t.getRootNode&&t.getRootNode().host);if(e.contains(t))return!0;if(n){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function K(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function X(e,t){return t===R?K({width:(a=k(e)).innerWidth,height:a.innerHeight,x:0,y:0}):l(t)?C(t):K((n=I(e),r=k(n),o=c(n),(i=g(I(n),r)).height=Math.max(i.height,r.innerHeight),i.width=Math.max(i.width,r.innerWidth),i.x=-o.scrollLeft,i.y=-o.scrollTop,i));var n,r,o,i,a}function Q(o,e,t){var n,r,i,a=\"clippingParents\"===e?(r=y(n=o),T(i=0<=[\"absolute\",\"fixed\"].indexOf(m(n).position)&&l(n)?O(n):n)?r.filter(function(e){return T(e)&&V(e,i)}):[]):[].concat(e),s=[].concat(a,[t]),u=s[0],c=s.reduce(function(e,t){var n=X(o,t),r=W(l(t)?t:I(o));return e.top=Math.max(n.top+r.top,e.top),e.right=Math.min(n.right-r.right,e.right),e.bottom=Math.min(n.bottom-r.bottom,e.bottom),e.left=Math.max(n.left+r.left,e.left),e},X(o,u));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}function ae(){return{top:0,right:0,bottom:0,left:0}}function G(e){return Object.assign({},ae(),{},e)}function se(n,e){return e.reduce(function(e,t){return e[t]=n,e},{})}function ue(e,t){void 0===t&&(t={});var r,n=t.placement,o=void 0===n?e.placement:n,i=t.boundary,a=void 0===i?A:i,s=t.rootBoundary,u=void 0===s?R:s,c=t.elementContext,l=void 0===c?N:c,f=t.altBoundary,p=void 0!==f&&f,d=t.padding,h=void 0===d?0:d,v=G(\"number\"!=typeof h?h:se(h,P)),g=l===N?D:N,m=e.elements.reference,y=e.rects.popper,_=e.elements[p?g:l],b=Q(T(_)?_:I(e.elements.popper),a,u),w=C(m),x=q({reference:w,element:y,strategy:\"absolute\",placement:o}),k=K(Object.assign({},y,{},x)),O=l===N?k:w,j={top:b.top-O.top+v.top,bottom:O.bottom-b.bottom+v.bottom,left:b.left-O.left+v.left,right:O.right-b.right+v.right},E=e.modifiersData.offset;return l===N&&E&&(r=E[o],Object.keys(j).forEach(function(e){var t=0<=[ee,Y].indexOf(e)?1:-1,n=0<=[J,Y].indexOf(e)?\"y\":\"x\";j[e]+=r[n]*t})),j}function ce(e,t,n){return Math.max(e,Math.min(t,n))}function le(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function fe(t){return[J,ee,Y,te].some(function(e){return 0<=t[e]})}var pe=[{name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=void 0===o||o,a=r.resize,s=void 0===a||a,u=k(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach(function(e){e.addEventListener(\"scroll\",n.update,h)}),s&&u.addEventListener(\"resize\",n.update,h),function(){i&&c.forEach(function(e){e.removeEventListener(\"scroll\",n.update,h)}),s&&u.removeEventListener(\"resize\",n.update,h)}},data:{}},{name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=q({reference:t.rects.reference,element:t.rects.popper,strategy:\"absolute\",placement:t.placement})},data:{}},{name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i;a&&parseFloat(m(t.elements.popper).transitionDuration)&&console.warn(['Popper: The \"computeStyles\" modifier\\'s `adaptive` option must be',\"disabled if CSS transitions are applied to the popper element.\"].join(\" \"));var s={placement:re(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o};t.styles.popper=Object.assign({},t.styles.popper,{},v(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a}))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,{},v(Object.assign({},s,{offsets:t.modifiersData.arrow,position:\"absolute\",adaptive:!1})))),t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-placement\":t.placement})},data:{}},{name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(e){var o=e.state;Object.keys(o.elements).forEach(function(e){var t=o.styles[e]||{},n=o.attributes[e]||{},r=o.elements[e];l(r)&&f(r)&&(Object.assign(r.style,t),Object.keys(n).forEach(function(e){var t=n[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?\"\":t)}))})},effect:function(e){var i=e.state,a={position:\"absolute\",left:\"0\",top:\"0\",margin:\"0\"};return Object.assign(i.elements.popper.style,a),function(){Object.keys(i.elements).forEach(function(e){var t=i.elements[e],n=Object.keys(i.styles.hasOwnProperty(e)?Object.assign({},i.styles[e]):a),r=i.attributes[e]||{},o=n.reduce(function(e,t){var n;return Object.assign({},e,((n={})[String(t)]=\"\",n))},{});l(t)&&f(t)&&(Object.assign(t.style,o),Object.keys(r).forEach(function(e){return t.removeAttribute(e)}))})}},requires:[\"computeStyles\"]},{name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(e){var l=e.state,t=e.options,n=e.name,r=t.offset,f=void 0===r?[0,0]:r,o=u.reduce(function(e,t){var n,r,o,i,a,s,u,c;return e[t]=(n=t,r=l.rects,o=f,i=re(n),a=0<=[te,J].indexOf(i)?-1:1,s=\"function\"==typeof o?o(Object.assign({},r,{placement:n})):o,u=(u=s[0])||0,c=((c=s[1])||0)*a,0<=[te,ee].indexOf(i)?{x:c,y:u}:{x:u,y:c}),e},{}),i=o[l.placement],a=i.x,s=i.y;l.modifiersData.popperOffsets.x+=a,l.modifiersData.popperOffsets.y+=s,l.modifiersData[n]=o}},{name:\"flip\",enabled:!0,phase:\"main\",fn:function(e){var n=e.state,t=e.options,r=e.name;if(!n.modifiersData[r]._skip){for(var o=t.fallbackPlacements,i=t.padding,a=t.boundary,s=t.rootBoundary,u=t.flipVariations,c=void 0===u||u,l=n.options.placement,f=re(l),p=o||(f===l||!c?[$(l)]:function(e){if(re(e)===S)return[];var t=$(e);return[U(e),t,U(t)]}(l)),d=F([l].concat(p).reduce(function(e,t){return re(t)===S?e.concat(function(n,e){void 0===e&&(e={});var t=e.placement,r=e.boundary,o=e.rootBoundary,i=e.padding,a=e.flipVariations,s=oe(t),u=(s?a?M:M.filter(function(e){return oe(e)===s}):P).reduce(function(e,t){return e[t]=ue(n,{placement:t,boundary:r,rootBoundary:o,padding:i})[re(t)],e},{});return Object.keys(u).sort(function(e,t){return u[e]-u[t]})}(n,{placement:t,boundary:a,rootBoundary:s,padding:i,flipVariations:c})):e.concat(t)},[]),function(e){return e}),h=n.rects.reference,v=n.rects.popper,g=new Map,m=!0,y=d[0],_=0;_<d.length;_++){var b=d[_],w=re(b),x=oe(b)===ne,k=0<=[J,Y].indexOf(w),O=k?\"width\":\"height\",j=ue(n,{placement:b,boundary:a,rootBoundary:s,padding:i}),E=k?x?ee:te:x?Y:J;h[O]>v[O]&&(E=$(E));var C=$(E),T=[j[w]<=0,j[E]<=0,j[C]<=0];if(T.every(function(e){return e})){y=b,m=!1;break}g.set(b,T)}if(m)for(var I=c?3:1;0<I;I--){if(\"break\"===function(n){var e=d.find(function(e){var t=g.get(e);if(t)return t.slice(0,n).every(function(e){return e})});if(e)return y=e,\"break\"}(I))break}n.placement!==y&&(n.modifiersData[r]._skip=!0,n.placement=y,n.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}},{name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(e){var t,n,r,o,i,a,s,u,c,l,f,p,d,h,v,g,m,y,_,b,w,x,k,O,j,E=e.state,C=e.options,T=e.name,I=C.mainAxis,S=void 0===I||I,P=C.altAxis,A=void 0!==P&&P,R=C.boundary,N=C.rootBoundary,D=C.padding,M=C.tether,F=void 0===M||M,L=C.tetherOffset,H=void 0===L?0:L,q=ue(E,{boundary:R,rootBoundary:N,padding:D}),B=re(E.placement),$=oe(E.placement),U=!$,z=ie(B),W=\"x\"===z?\"y\":\"x\",V=E.modifiersData.popperOffsets,K=E.rects.reference,X=E.rects.popper,Q=\"function\"==typeof H?H(Object.assign({},E.rects,{placement:E.placement})):H,G={x:0,y:0};S&&(t=\"y\"===z?J:te,n=\"y\"===z?Y:ee,r=\"y\"===z?\"height\":\"width\",o=V[z],i=V[z]+q[t],a=V[z]-q[n],s=F?-X[r]/2:0,u=$===ne?K[r]:X[r],c=$===ne?-X[r]:-K[r],l=E.elements.arrow,f=F&&l?Z(l):{width:0,height:0},d=(p=E.modifiersData[\"arrow#persistent\"]?E.modifiersData[\"arrow#persistent\"].padding:ae())[t],h=p[n],v=ce(0,Math.abs(K[r]-f[r]),f[r]),g=U?K[r]/2-s-v-d-Q:u-v-d-Q,m=U?-K[r]/2+s+v+h+Q:c+v+h+Q,y=E.modifiersData.offset?E.modifiersData.offset[E.placement][z]:0,_=E.modifiersData.popperOffsets[z]+g-y,b=E.modifiersData.popperOffsets[z]+m-y,w=ce(F?Math.min(i,_):i,o,F?Math.max(a,b):a),E.modifiersData.popperOffsets[z]=w,G[z]=w-o),A&&(x=\"x\"===z?J:te,k=\"x\"===z?Y:ee,j=ce((O=V[W])+q[x],O,O-q[k]),E.modifiersData.popperOffsets[W]=j,G[W]=j-O),E.modifiersData[T]=G},requiresIfExists:[\"offset\"]},{name:\"arrow\",enabled:!0,phase:\"main\",fn:function(e){var t,n,r,o,i,a,s,u=e.state,c=e.name,l=u.elements.arrow,f=u.modifiersData.popperOffsets,p=re(u.placement),d=ie(p),h=0<=[te,ee].indexOf(p)?\"height\":\"width\";l&&(n=u.modifiersData[c+\"#persistent\"].padding,r=Z(l),o=\"y\"===d?J:te,i=\"y\"===d?Y:ee,a=(u.rects.reference[h]+u.rects.reference[d]-f[d]-u.rects.popper[h])/2-(f[d]-u.rects.reference[d])/2,s=ce(n[o],u.rects.popper[h]/2-r[h]/2+a,u.rects.popper[h]-r[h]-n[i]),u.modifiersData[c]=((t={})[d]=s,t))},effect:function(e){var t=e.state,n=e.options,r=e.name,o=n.element,i=void 0===o?\"[data-popper-arrow]\":o,a=n.padding,s=void 0===a?0:a;\"string\"==typeof i&&!(i=t.elements.popper.querySelector(i))||(V(t.elements.popper,i)?(t.elements.arrow=i,t.modifiersData[r+\"#persistent\"]={padding:G(\"number\"!=typeof s?s:se(s,P))}):console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper',\"element.\"].join(\" \")))},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]},{name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=ue(t,{elementContext:\"reference\"}),s=ue(t,{altBoundary:!0}),u=le(a,r),c=le(s,o,i),l=fe(u),f=fe(c);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{\"data-popper-reference-hidden\":l,\"data-popper-escaped\":f})}}],de=t({defaultModifiers:pe});e.createPopper=de,e.defaultModifiers=pe,e.popperGenerator=t,Object.defineProperty(e,\"__esModule\",{value:!0})}),function(a){\"use strict\";function i(e,t){this.options=t,this.$body=a(document.body),this.$element=a(e),this.$dialog=this.$element.find(\".modal-dialog\"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=\".navbar-fixed-top, .navbar-fixed-bottom\",this.options.remote&&this.$element.find(\".modal-content\").load(this.options.remote,a.proxy(function(){this.$element.trigger(\"loaded.bs.modal\")},this))}function s(r,o){return this.each(function(){var e=a(this),t=e.data(\"bs.modal\"),n=a.extend({},i.DEFAULTS,e.data(),\"object\"==typeof r&&r);t||e.data(\"bs.modal\",t=new i(this,n)),\"string\"==typeof r?t[r](o):n.show&&t.show(o)})}i.VERSION=\"3.4.1\",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(e){return this.isShown?this.hide():this.show(e)},i.prototype.show=function(n){var r=this,e=a.Event(\"show.bs.modal\",{relatedTarget:n});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass(\"modal-open\"),this.escape(),this.resize(),this.$element.on(\"click.dismiss.bs.modal\",'[data-dismiss=\"modal\"]',a.proxy(this.hide,this)),this.$dialog.on(\"mousedown.dismiss.bs.modal\",function(){r.$element.one(\"mouseup.dismiss.bs.modal\",function(e){a(e.target).is(r.$element)&&(r.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&r.$element.hasClass(\"fade\");r.$element.parent().length||r.$element.appendTo(r.$body),r.$element.show().scrollTop(0),r.adjustDialog(),e&&r.$element[0].offsetWidth,r.$element.addClass(\"in\"),r.enforceFocus();var t=a.Event(\"shown.bs.modal\",{relatedTarget:n});e?r.$dialog.one(\"bsTransitionEnd\",function(){r.$element.trigger(\"focus\").trigger(t)}).emulateTransitionEnd(i.TRANSITION_DURATION):r.$element.trigger(\"focus\").trigger(t)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=a.Event(\"hide.bs.modal\"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off(\"focusin.bs.modal\"),this.$element.removeClass(\"in\").off(\"click.dismiss.bs.modal\").off(\"mouseup.dismiss.bs.modal\"),this.$dialog.off(\"mousedown.dismiss.bs.modal\"),a.support.transition&&this.$element.hasClass(\"fade\")?this.$element.one(\"bsTransitionEnd\",a.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){a(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\",a.proxy(function(e){document===e.target||this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger(\"focus\")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(\"keydown.dismiss.bs.modal\",a.proxy(function(e){27==e.which&&this.hide()},this)):this.isShown||this.$element.off(\"keydown.dismiss.bs.modal\")},i.prototype.resize=function(){this.isShown?a(window).on(\"resize.bs.modal\",a.proxy(this.handleUpdate,this)):a(window).off(\"resize.bs.modal\")},i.prototype.hideModal=function(){var e=this;this.$element.hide(),this.backdrop(function(){e.$body.removeClass(\"modal-open\"),e.resetAdjustments(),e.resetScrollbar(),e.$element.trigger(\"hidden.bs.modal\")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var t,n=this,r=this.$element.hasClass(\"fade\")?\"fade\":\"\";if(this.isShown&&this.options.backdrop){var o=a.support.transition&&r;if(this.$backdrop=a(document.createElement(\"div\")).addClass(\"modal-backdrop \"+r).appendTo(this.$body),this.$element.on(\"click.dismiss.bs.modal\",a.proxy(function(e){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:e.target===e.currentTarget&&(\"static\"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass(\"in\"),!e)return;o?this.$backdrop.one(\"bsTransitionEnd\",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else{!this.isShown&&this.$backdrop?(this.$backdrop.removeClass(\"in\"),t=function(){n.removeBackdrop(),e&&e()},a.support.transition&&this.$element.hasClass(\"fade\")?this.$backdrop.one(\"bsTransitionEnd\",t).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):t()):e&&e()}},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var e=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:\"\",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:\"\"})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:\"\",paddingRight:\"\"})},i.prototype.checkScrollbar=function(){var e,t=window.innerWidth;t||(t=(e=document.documentElement.getBoundingClientRect()).right-Math.abs(e.left)),this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var e=parseInt(this.$body.css(\"padding-right\")||0,10);this.originalBodyPad=document.body.style.paddingRight||\"\";var o=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css(\"padding-right\",e+o),a(this.fixedContent).each(function(e,t){var n=t.style.paddingRight,r=a(t).css(\"padding-right\");a(t).data(\"padding-right\",n).css(\"padding-right\",parseFloat(r)+o+\"px\")}))},i.prototype.resetScrollbar=function(){this.$body.css(\"padding-right\",this.originalBodyPad),a(this.fixedContent).each(function(e,t){var n=a(t).data(\"padding-right\");a(t).removeData(\"padding-right\"),t.style.paddingRight=n||\"\"})},i.prototype.measureScrollbar=function(){var e=document.createElement(\"div\");e.className=\"modal-scrollbar-measure\",this.$body.append(e);var t=e.offsetWidth-e.clientWidth;return this.$body[0].removeChild(e),t};var e=a.fn.modal;a.fn.modal=s,a.fn.modal.Constructor=i,a.fn.modal.noConflict=function(){return a.fn.modal=e,this},a(document).on(\"click.bs.modal.data-api\",'[data-toggle=\"modal\"]',function(e){var t=a(this),n=t.attr(\"href\"),r=t.attr(\"data-target\")||n&&n.replace(/.*(?=#[^\\s]+$)/,\"\"),o=a(document).find(r),i=o.data(\"bs.modal\")?\"toggle\":a.extend({remote:!/#/.test(n)&&n},o.data(),t.data());t.is(\"a\")&&e.preventDefault(),o.one(\"show.bs.modal\",function(e){e.isDefaultPrevented()||o.one(\"hidden.bs.modal\",function(){t.is(\":visible\")&&t.trigger(\"focus\")})}),s.call(o,i,this)})}(jQuery);var clone=null;$.fn.caret=function(e){var t,n,r,o;return(t=e||this[0]).selectionStart?t.selectionStart:document.selection?(t.focus(),(n=document.selection.createRange())?(r=(o=t.createTextRange()).duplicate(),o.moveToBookmark(n.getBookmark()),r.setEndPoint(\"EndToStart\",o),r.text.length):0):0},$.fn.caretPosition=function(e){var t,n,o,r,i,a,s,u,c,l,f,p,d,h;clone&&clone.remove(),$(\"#pos span\"),d=$(this),i=function(e){return p.getPropertyValue(e)},p=function(e){return e.currentStyle?e.currentStyle:document.defaultView.getComputedStyle(e,\"\")}(d[0]),c=(clone=$(\"<div><p></p></div>\").appendTo(\"body\")).find(\"p\");var v=$(\"html\").hasClass(\"rtl\");clone.css({border:\"1px solid black\",padding:i(\"padding\"),resize:i(\"resize\"),\"max-height\":d.height()+\"px\",\"overflow-y\":\"auto\",\"word-wrap\":\"break-word\",position:\"absolute\",left:v?\"auto\":\"-7000px\",right:v?\"-7000px\":\"auto\"}),c.css({margin:0,padding:0,\"word-wrap\":\"break-word\",\"letter-spacing\":i(\"letter-spacing\"),\"font-family\":i(\"font-family\"),\"font-size\":i(\"font-size\"),\"line-height\":i(\"line-height\")}),clone.width(d.width()),clone.height(d.height()),f=e&&(e.pos||0===e.pos)?e.pos:$.caret(d[0]),h=d.val().replace(\"\\r\",\"\"),e&&e.key&&(h=h.substring(0,f)+e.key+h.substring(f)),a=!1,\"\\n\"===h[n=(t=f)-1]&&\"\\n\"===h[t]&&(a=!0),o=function(e){var t=e.replace(/</g,\"&lt;\");return(t=(t=t.replace(/>/g,\"&gt;\")).replace(/[ ]/g,\"&#x200b;&nbsp;&#x200b;\")).replace(/\\n/g,\"<br />\")},u=function(e,t,n){var r=h.substring(e,e+1);return\"\\n\"===r?\"<br>\":\"<span class='\"+t+\"' style='background-color:\"+n+\"; margin:0; padding: 0'>\"+o(r)+\"</span>\"},r=\"\",0<=n&&(r+=o(h.substring(0,f-1))+u(n,\"before\",\"#d0ffff\"),a&&(r+=u(0,\"post-before\",\"#d0ffff\"))),0<=t&&(r+=u(t,\"after\",\"#ffd0ff\"),t-1<h.length&&(r+=o(h.substring(t+1)))),c.html(r),clone.scrollTop(d.scrollTop()),f=(s=c.find(\"span:first\")).offset(),s.hasClass(\"before\")&&(f.left=f.left+s.width()),l=c.offset();var g={left:f.left-l.left,top:f.top-l.top-clone.scrollTop()};return clone.remove(),g},function(){function e(e){this.icon=e,this.opacity=.4,this.canvas=document.createElement(\"canvas\"),this.font=\"Helvetica, Arial, sans-serif\"}e.prototype.set=function(t){var n=this,r=document.createElement(\"img\");n.canvas.getContext&&(r.crossOrigin=\"anonymous\",r.onload=function(){var e;!function(e,t,n,r,o){var i,a,s,u,c,l,f,p=document.getElementsByTagName(\"head\")[0],d=document.querySelector(\"link[rel=icon]\"),h=document.createElement(\"link\");i=r.width/16,a=11*i,c=11*(u=i),f=2*(l=i),e.height=e.width=r.width,(s=e.getContext(\"2d\")).font=\"bold \"+a+\"px \"+n,o&&(s.globalAlpha=t);s.drawImage(r,0,0),s.globalAlpha=1,s.shadowColor=\"#FFF\",s.shadowBlur=f,s.shadowOffsetX=0,s.shadowOffsetY=0,s.fillStyle=\"#FFF\",s.fillText(o,u,c),s.fillText(o,u+l,c),s.fillText(o,u,c+l),s.fillText(o,u+l,c+l),s.fillStyle=\"#000\",s.fillText(o,u+l/2,c+l/2),h.rel=\"icon\",h.href=e.toDataURL(\"image/png\"),d&&p.removeChild(d);p.appendChild(h)}(n.canvas,n.opacity,n.font,r,(e=t,e=Math.round(e),isNaN(e)||e<1?\"\":e<10?\" \"+e:99<e?\"99\":e))},r.src=this.icon)},this.Favcount=e}.call(this),function(){Favcount.VERSION=\"1.5.1\"}.call(this),function(a,t){var n,r=a([]),o=a.resize=a.extend(a.resize,{}),s=\"setTimeout\",i=\"resize\",u=i+\"-special-event\",c=\"delay\",l=\"throttleWindow\";o[c]=250,o[l]=!0,a.event.special[i]={setup:function(){if(!o[l]&&this[s])return!1;var e=a(this);r=r.add(e),a.data(this,u,{w:e.width(),h:e.height()}),1===r.length&&function e(){n=t[s](function(){r.each(function(){var e=a(this),t=e.width(),n=e.height(),r=a.data(this,u);t===r.w&&n===r.h||e.trigger(i,[r.w=t,r.h=n])}),e()},o[c])}()},teardown:function(){if(!o[l]&&this[s])return!1;var e=a(this);r=r.not(e),e.removeData(u),r.length||clearTimeout(n)},add:function(e){if(!o[l]&&this[s])return!1;var i;function t(e,t,n){var r=a(this),o=a.data(this,u);o.w=void 0!==t?t:r.width(),o.h=void 0!==n?n:r.height(),i.apply(this,arguments)}if(a.isFunction(e))return i=e,t;i=e.handler,e.handler=t}}}(jQuery,this),function(e,t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):\"object\"==typeof exports?module.exports=t(require(\"jquery\")):t(e.jQuery)}(this,function(c,l){var f,n={},t=n.toString,p=/^([\\-+])=\\s*(\\d+\\.?\\d*)/,e=[{re:/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,space:\"hsla\",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],d=c.Color=function(e,t,n,r){return new c.Color.fn.parse(e,t,n,r)},h={rgba:{props:{red:{idx:0,type:\"byte\"},green:{idx:1,type:\"byte\"},blue:{idx:2,type:\"byte\"}}},hsla:{props:{hue:{idx:0,type:\"degrees\"},saturation:{idx:1,type:\"percent\"},lightness:{idx:2,type:\"percent\"}}}},v={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},g=c.each;function m(e){return null==e?e+\"\":\"object\"==typeof e?n[t.call(e)]||\"object\":typeof e}function y(e,t,n){var r=v[t.type]||{};return null==e?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),r.mod?(e+r.mod)%r.mod:Math.min(r.max,Math.max(0,e)))}function s(a){var s=d(),u=s._rgba=[];return a=a.toLowerCase(),g(e,function(e,t){var n,r=t.re.exec(a),o=r&&t.parse(r),i=t.space||\"rgba\";if(o)return n=s[i](o),s[h[i].cache]=n[h[i].cache],u=s._rgba=n._rgba,!1}),u.length?(\"0,0,0,0\"===u.join()&&c.extend(u,f.transparent),s):f[a]}function u(e,t,n){return 6*(n=(n+1)%1)<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}g(h,function(e,t){t.cache=\"_\"+e,t.props.alpha={idx:3,type:\"percent\",def:1}}),c.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()}),d.fn=c.extend(d.prototype,{parse:function(o,e,t,n){if(o===l)return this._rgba=[null,null,null,null],this;(o.jquery||o.nodeType)&&(o=c(o).css(e),e=l);var i=this,r=m(o),a=this._rgba=[];return e!==l&&(o=[o,e,t,n],r=\"array\"),\"string\"===r?this.parse(s(o)||f._default):\"array\"===r?(g(h.rgba.props,function(e,t){a[t.idx]=y(o[t.idx],t)}),this):\"object\"===r?(g(h,o instanceof d?function(e,t){o[t.cache]&&(i[t.cache]=o[t.cache].slice())}:function(e,n){var r=n.cache;g(n.props,function(e,t){if(!i[r]&&n.to){if(\"alpha\"===e||null==o[e])return;i[r]=n.to(i._rgba)}i[r][t.idx]=y(o[e],t,!0)}),i[r]&&c.inArray(null,i[r].slice(0,3))<0&&(null==i[r][3]&&(i[r][3]=1),n.from&&(i._rgba=n.from(i[r])))}),this):void 0},is:function(e){var o=d(e),i=!0,a=this;return g(h,function(e,t){var n,r=o[t.cache];return r&&(n=a[t.cache]||t.to&&t.to(a._rgba)||[],g(t.props,function(e,t){if(null!=r[t.idx])return i=r[t.idx]===n[t.idx]})),i}),i},_space:function(){var n=[],r=this;return g(h,function(e,t){r[t.cache]&&n.push(e)}),n.pop()},transition:function(e,a){var t=(c=d(e))._space(),n=h[t],r=0===this.alpha()?d(\"transparent\"):this,s=r[n.cache]||n.to(r._rgba),u=s.slice(),c=c[n.cache];return g(n.props,function(e,t){var n=t.idx,r=s[n],o=c[n],i=v[t.type]||{};null!==o&&(null===r?u[n]=o:(i.mod&&(i.mod/2<o-r?r+=i.mod:i.mod/2<r-o&&(r-=i.mod)),u[n]=y((o-r)*a+r,t)))}),this[t](u)},blend:function(e){if(1===this._rgba[3])return this;var t=this._rgba.slice(),n=t.pop(),r=d(e)._rgba;return d(c.map(t,function(e,t){return(1-n)*r[t]+n*e}))},toRgbaString:function(){var e=\"rgba(\",t=c.map(this._rgba,function(e,t){return null!=e?e:2<t?1:0});return 1===t[3]&&(t.pop(),e=\"rgb(\"),e+t.join()+\")\"},toHslaString:function(){var e=\"hsla(\",t=c.map(this.hsla(),function(e,t){return null==e&&(e=2<t?1:0),t&&t<3&&(e=Math.round(100*e)+\"%\"),e});return 1===t[3]&&(t.pop(),e=\"hsl(\"),e+t.join()+\")\"},toHexString:function(e){var t=this._rgba.slice(),n=t.pop();return e&&t.push(~~(255*n)),\"#\"+c.map(t,function(e){return(\"0\"+(e||0).toString(16)).substr(-2)}).join(\"\")},toString:function(){return 0===this._rgba[3]?\"transparent\":this.toRgbaString()}}),d.fn.parse.prototype=d.fn,h.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,o=e[3],i=Math.max(t,n,r),a=Math.min(t,n,r),s=i-a,u=i+a,c=.5*u,l=a===i?0:t===i?60*(n-r)/s+360:n===i?60*(r-t)/s+120:60*(t-n)/s+240,f=0==s?0:c<=.5?s/u:s/(2-u);return[Math.round(l)%360,f,c,null==o?1:o]},h.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],o=e[3],i=r<=.5?r*(1+n):r+n-r*n,a=2*r-i;return[Math.round(255*u(a,i,t+1/3)),Math.round(255*u(a,i,t)),Math.round(255*u(a,i,t-1/3)),o]},g(h,function(u,e){var n=e.props,a=e.cache,s=e.to,c=e.from;d.fn[u]=function(e){if(s&&!this[a]&&(this[a]=s(this._rgba)),e===l)return this[a].slice();var t,r=m(e),o=\"array\"===r||\"object\"===r?e:arguments,i=this[a].slice();return g(n,function(e,t){var n=o[\"object\"===r?e:t.idx];null==n&&(n=i[t.idx]),i[t.idx]=y(n,t)}),c?((t=d(c(i)))[a]=i,t):d(i)},g(n,function(a,s){d.fn[a]||(d.fn[a]=function(e){var t,n=m(e),r=\"alpha\"===a?this._hsla?\"hsla\":\"rgba\":u,o=this[r](),i=o[s.idx];return\"undefined\"===n?i:(\"function\"===n&&(n=m(e=e.call(this,i))),null==e&&s.empty?this:(\"string\"===n&&(t=p.exec(e))&&(e=i+parseFloat(t[2])*(\"+\"===t[1]?1:-1)),o[s.idx]=e,this[r](o)))})})}),d.hook=function(e){var t=e.split(\" \");g(t,function(e,r){c.cssHooks[r]={set:function(e,t){var n;\"transparent\"===t||\"string\"===m(t)&&!(n=s(t))||(t=(t=d(n||t)).toRgbaString()),e.style[r]=t}},c.fx.step[r]=function(e){e.colorInit||(e.start=d(e.elem,r),e.end=d(e.end),e.colorInit=!0),c.cssHooks[r].set(e.elem,e.start.transition(e.end,e.pos))}})},d.hook(\"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\"),c.cssHooks.borderColor={expand:function(n){var r={};return g([\"Top\",\"Right\",\"Bottom\",\"Left\"],function(e,t){r[\"border\"+t+\"Color\"]=n}),r}},f=c.Color.names={aqua:\"#00ffff\",black:\"#000000\",blue:\"#0000ff\",fuchsia:\"#ff00ff\",gray:\"#808080\",green:\"#008000\",lime:\"#00ff00\",maroon:\"#800000\",navy:\"#000080\",olive:\"#808000\",purple:\"#800080\",red:\"#ff0000\",silver:\"#c0c0c0\",teal:\"#008080\",white:\"#ffffff\",yellow:\"#ffff00\",transparent:[null,null,null,0],_default:\"#ffffff\"}}),function(e){\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(jQuery)}(function(h){var r=/\\+/g;function v(e){return m.raw?e:encodeURIComponent(e)}function g(e,t){var n=m.raw?e:function(e){0===e.indexOf('\"')&&(e=e.slice(1,-1).replace(/\\\\\"/g,'\"').replace(/\\\\\\\\/g,\"\\\\\"));try{return e=decodeURIComponent(e.replace(r,\" \")),m.json?JSON.parse(e):e}catch(e){}}(e);return h.isFunction(t)?t(n):n}var m=h.cookie=function(e,t,n){var r,o,i;if(void 0!==t&&!h.isFunction(t))return\"number\"==typeof(n=h.extend({},m.defaults,n)).expires&&(r=n.expires,(o=n.expires=new Date).setTime(+o+864e5*r)),document.cookie=[v(e),\"=\",(i=t,v(m.json?JSON.stringify(i):String(i))),n.expires?\"; expires=\"+n.expires.toUTCString():\"\",n.path?\"; path=\"+n.path:\"\",n.domain?\"; domain=\"+n.domain:\"\",n.secure?\"; secure\":\"\"].join(\"\");for(var a,s=e?void 0:{},u=document.cookie?document.cookie.split(\"; \"):[],c=0,l=u.length;c<l;c++){var f=u[c].split(\"=\"),p=(a=f.shift(),m.raw?a:decodeURIComponent(a)),d=f.join(\"=\");if(e&&e===p){s=g(d,t);break}e||void 0===(d=g(d))||(s[p]=d)}return s};m.defaults={},h.removeCookie=function(e,t){return void 0!==h.cookie(e)&&(h.cookie(e,\"\",h.extend({},t,{expires:-1})),!h.cookie(e))}}),function(e){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\",\"jquery.ui.widget\"],e):\"object\"==typeof exports?e(require(\"jquery\"),require(\"./vendor/jquery.ui.widget\")):e(window.jQuery)}(function(m){\"use strict\";function e(n){var r=\"dragover\"===n;return function(e){e.dataTransfer=e.originalEvent&&e.originalEvent.dataTransfer;var t=e.dataTransfer;t&&-1!==m.inArray(\"Files\",t.types)&&!1!==this._trigger(n,m.Event(n,{delegatedEvent:e}))&&(e.preventDefault(),r&&(t.dropEffect=\"copy\"))}}m.support.fileInput=!(new RegExp(\"(Android (1\\\\.[0156]|2\\\\.[01]))|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))\").test(window.navigator.userAgent)||m('<input type=\"file\">').prop(\"disabled\")),m.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),m.support.xhrFormDataFileUpload=!!window.FormData,m.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),m.widget(\"blueimp.fileupload\",{options:{dropZone:m(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:\"Uploaded bytes exceed file size\"},i18n:function(n,e){return n=this.messages[n]||n.toString(),e&&m.each(e,function(e,t){n=n.replace(\"{\"+e+\"}\",t)}),n},formData:function(e){return e.serializeArray()},add:function(e,t){if(e.isDefaultPrevented())return!1;(t.autoUpload||!1!==t.autoUpload&&m(this).fileupload(\"option\",\"autoUpload\"))&&t.process().done(function(){t.submit()})},processData:!1,contentType:!1,cache:!1},_specialOptions:[\"fileInput\",\"dropZone\",\"pasteZone\",\"multipart\",\"forceIframeTransport\"],_blobSlice:m.support.blobSlice&&function(){return(this.slice||this.webkitSlice||this.mozSlice).apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(e,t,n){var r=e-this.timestamp;return this.bitrate&&n&&!(n<r)||(this.bitrate=(t-this.loaded)*(1e3/r)*8,this.loaded=t,this.timestamp=e),this.bitrate}},_isXHRUpload:function(e){return!e.forceIframeTransport&&(!e.multipart&&m.support.xhrFileUpload||m.support.xhrFormDataFileUpload)},_getFormData:function(e){var n;return\"function\"===m.type(e.formData)?e.formData(e.form):m.isArray(e.formData)?e.formData:\"object\"===m.type(e.formData)?(n=[],m.each(e.formData,function(e,t){n.push({name:e,value:t})}),n):[]},_getTotal:function(e){var n=0;return m.each(e,function(e,t){n+=t.size||1}),n},_initProgressObject:function(e){var t={loaded:0,total:0,bitrate:0};e._progress?m.extend(e._progress,t):e._progress=t},_initResponseObject:function(e){var t;if(e._response)for(t in e._response)e._response.hasOwnProperty(t)&&delete e._response[t];else e._response={}},_onProgress:function(e,t){if(e.lengthComputable){var n,r=Date.now?Date.now():(new Date).getTime();if(t._time&&t.progressInterval&&r-t._time<t.progressInterval&&e.loaded!==e.total)return;t._time=r,n=Math.floor(e.loaded/e.total*(t.chunkSize||t._progress.total))+(t.uploadedBytes||0),this._progress.loaded+=n-t._progress.loaded,this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,t.bitrateInterval),t._progress.loaded=t.loaded=n,t._progress.bitrate=t.bitrate=t._bitrateTimer.getBitrate(r,n,t.bitrateInterval),this._trigger(\"progress\",m.Event(\"progress\",{delegatedEvent:e}),t),this._trigger(\"progressall\",m.Event(\"progressall\",{delegatedEvent:e}),this._progress)}},_initProgressListener:function(n){var r=this,e=n.xhr?n.xhr():m.ajaxSettings.xhr();e.upload&&(m(e.upload).bind(\"progress\",function(e){var t=e.originalEvent;e.lengthComputable=t.lengthComputable,e.loaded=t.loaded,e.total=t.total,r._onProgress(e,n)}),n.xhr=function(){return e})},_isInstanceOf:function(e,t){return Object.prototype.toString.call(t)===\"[object \"+e+\"]\"},_initXHRData:function(n){var r,o=this,e=n.files[0],t=n.multipart||!m.support.xhrFileUpload,i=\"array\"===m.type(n.paramName)?n.paramName[0]:n.paramName;n.headers=m.extend({},n.headers),n.contentRange&&(n.headers[\"Content-Range\"]=n.contentRange),t&&!n.blob&&this._isInstanceOf(\"File\",e)||(n.headers[\"Content-Disposition\"]='attachment; filename=\"'+encodeURI(e.name)+'\"'),t?m.support.xhrFormDataFileUpload&&(n.postMessage?(r=this._getFormData(n),n.blob?r.push({name:i,value:n.blob}):m.each(n.files,function(e,t){r.push({name:\"array\"===m.type(n.paramName)&&n.paramName[e]||i,value:t})})):(o._isInstanceOf(\"FormData\",n.formData)?r=n.formData:(r=new FormData,m.each(this._getFormData(n),function(e,t){r.append(t.name,t.value)})),n.blob?r.append(i,n.blob,e.name):m.each(n.files,function(e,t){(o._isInstanceOf(\"File\",t)||o._isInstanceOf(\"Blob\",t))&&r.append(\"array\"===m.type(n.paramName)&&n.paramName[e]||i,t,t.uploadName||t.name)})),n.data=r):(n.contentType=e.type||\"application/octet-stream\",n.data=n.blob||e),n.blob=null},_initIframeSettings:function(e){var t=m(\"<a></a>\").prop(\"href\",e.url).prop(\"host\");e.dataType=\"iframe \"+(e.dataType||\"\"),e.formData=this._getFormData(e),e.redirect&&t&&t!==location.host&&e.formData.push({name:e.redirectParamName||\"redirect\",value:e.redirect})},_initDataSettings:function(e){this._isXHRUpload(e)?(this._chunkedUpload(e,!0)||(e.data||this._initXHRData(e),this._initProgressListener(e)),e.postMessage&&(e.dataType=\"postmessage \"+(e.dataType||\"\"))):this._initIframeSettings(e)},_getParamName:function(e){var t=m(e.fileInput),r=e.paramName;return r?m.isArray(r)||(r=[r]):(r=[],t.each(function(){for(var e=m(this),t=e.prop(\"name\")||\"files[]\",n=(e.prop(\"files\")||[1]).length;n;)r.push(t),--n}),r.length||(r=[t.prop(\"name\")||\"files[]\"])),r},_initFormSettings:function(e){e.form&&e.form.length||(e.form=m(e.fileInput.prop(\"form\")),e.form.length||(e.form=m(this.options.fileInput.prop(\"form\")))),e.paramName=this._getParamName(e),e.url||(e.url=e.form.prop(\"action\")||location.href),e.type=(e.type||\"string\"===m.type(e.form.prop(\"method\"))&&e.form.prop(\"method\")||\"\").toUpperCase(),\"POST\"!==e.type&&\"PUT\"!==e.type&&\"PATCH\"!==e.type&&(e.type=\"POST\"),e.formAcceptCharset||(e.formAcceptCharset=e.form.attr(\"accept-charset\"))},_getAJAXSettings:function(e){var t=m.extend({},this.options,e);return this._initFormSettings(t),this._initDataSettings(t),t},_getDeferredState:function(e){return e.state?e.state():e.isResolved()?\"resolved\":e.isRejected()?\"rejected\":\"pending\"},_enhancePromise:function(e){return e.success=e.done,e.error=e.fail,e.complete=e.always,e},_getXHRPromise:function(e,t,n){var r=m.Deferred(),o=r.promise();return t=t||this.options.context||o,!0===e?r.resolveWith(t,n):!1===e&&r.rejectWith(t,n),o.abort=r.promise,this._enhancePromise(o)},_addConvenienceMethods:function(e,n){function r(e){return m.Deferred().resolveWith(o,e).promise()}var o=this;n.process=function(e,t){return(e||t)&&(n._processQueue=this._processQueue=(this._processQueue||r([this])).pipe(function(){return n.errorThrown?m.Deferred().rejectWith(o,[n]).promise():r(arguments)}).pipe(e,t)),this._processQueue||r([this])},n.submit=function(){return\"pending\"!==this.state()&&(n.jqXHR=this.jqXHR=!1!==o._trigger(\"submit\",m.Event(\"submit\",{delegatedEvent:e}),this)&&o._onSend(e,this)),this.jqXHR||o._getXHRPromise()},n.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown=\"abort\",o._trigger(\"fail\",null,this),o._getXHRPromise(!1))},n.state=function(){return this.jqXHR?o._getDeferredState(this.jqXHR):this._processQueue?o._getDeferredState(this._processQueue):void 0},n.processing=function(){return!this.jqXHR&&this._processQueue&&\"pending\"===o._getDeferredState(this._processQueue)},n.progress=function(){return this._progress},n.response=function(){return this._response}},_getUploadedBytes:function(e){var t=e.getResponseHeader(\"Range\"),n=t&&t.split(\"-\"),r=n&&1<n.length&&parseInt(n[1],10);return r&&r+1},_chunkedUpload:function(i,e){i.uploadedBytes=i.uploadedBytes||0;var t,a,s=this,n=i.files[0],u=n.size,c=i.uploadedBytes,l=i.maxChunkSize||u,f=this._blobSlice,p=m.Deferred(),r=p.promise();return!(!(this._isXHRUpload(i)&&f&&(c||l<u))||i.data)&&(!!e||(u<=c?(n.error=i.i18n(\"uploadedBytes\"),this._getXHRPromise(!1,i.context,[null,\"error\",n.error])):(a=function(){var r=m.extend({},i),o=r._progress.loaded;r.blob=f.call(n,c,c+l,n.type),r.chunkSize=r.blob.size,r.contentRange=\"bytes \"+c+\"-\"+(c+r.chunkSize-1)+\"/\"+u,s._initXHRData(r),s._initProgressListener(r),t=(!1!==s._trigger(\"chunksend\",null,r)&&m.ajax(r)||s._getXHRPromise(!1,r.context)).done(function(e,t,n){c=s._getUploadedBytes(n)||c+r.chunkSize,o+r.chunkSize-r._progress.loaded&&s._onProgress(m.Event(\"progress\",{lengthComputable:!0,loaded:c-r.uploadedBytes,total:c-r.uploadedBytes}),r),i.uploadedBytes=r.uploadedBytes=c,r.result=e,r.textStatus=t,r.jqXHR=n,s._trigger(\"chunkdone\",null,r),s._trigger(\"chunkalways\",null,r),c<u?a():p.resolveWith(r.context,[e,t,n])}).fail(function(e,t,n){r.jqXHR=e,r.textStatus=t,r.errorThrown=n,s._trigger(\"chunkfail\",null,r),s._trigger(\"chunkalways\",null,r),p.rejectWith(r.context,[e,t,n])})},this._enhancePromise(r),r.abort=function(){return t.abort()},a(),r)))},_beforeSend:function(e,t){0===this._active&&(this._trigger(\"start\"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(t),this._initProgressObject(t),t._progress.loaded=t.loaded=t.uploadedBytes||0,t._progress.total=t.total=this._getTotal(t.files)||1,t._progress.bitrate=t.bitrate=0,this._active+=1,this._progress.loaded+=t.loaded,this._progress.total+=t.total},_onDone:function(e,t,n,r){var o=r._progress.total,i=r._response;r._progress.loaded<o&&this._onProgress(m.Event(\"progress\",{lengthComputable:!0,loaded:o,total:o}),r),i.result=r.result=e,i.textStatus=r.textStatus=t,i.jqXHR=r.jqXHR=n,this._trigger(\"done\",null,r)},_onFail:function(e,t,n,r){var o=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total),o.jqXHR=r.jqXHR=e,o.textStatus=r.textStatus=t,o.errorThrown=r.errorThrown=n,this._trigger(\"fail\",null,r)},_onAlways:function(e,t,n,r){this._trigger(\"always\",null,r)},_onSend:function(e,t){t.submit||this._addConvenienceMethods(e,t);function n(){return s._sending+=1,u._bitrateTimer=new s._BitrateTimer,r=r||((o||!1===s._trigger(\"send\",m.Event(\"send\",{delegatedEvent:e}),u))&&s._getXHRPromise(!1,u.context,o)||s._chunkedUpload(u)||m.ajax(u)).done(function(e,t,n){s._onDone(e,t,n,u)}).fail(function(e,t,n){s._onFail(e,t,n,u)}).always(function(e,t,n){if(s._onAlways(e,t,n,u),--s._sending,--s._active,u.limitConcurrentUploads&&u.limitConcurrentUploads>s._sending)for(var r=s._slots.shift();r;){if(\"pending\"===s._getDeferredState(r)){r.resolve();break}r=s._slots.shift()}0===s._active&&s._trigger(\"stop\")})}var r,o,i,a,s=this,u=s._getAJAXSettings(t);return this._beforeSend(e,u),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?((a=1<this.options.limitConcurrentUploads?(i=m.Deferred(),this._slots.push(i),i.pipe(n)):(this._sequence=this._sequence.pipe(n,n),this._sequence)).abort=function(){return o=[void 0,\"abort\",\"abort\"],r?r.abort():(i&&i.rejectWith(u.context,o),n())},this._enhancePromise(a)):n()},_onAdd:function(r,o){var i,e,a,t,s=this,u=!0,n=m.extend({},this.options,o),c=o.files,l=c.length,f=n.limitMultiFileUploads,p=n.limitMultiFileUploadSize,d=n.limitMultiFileUploadSizeOverhead,h=0,v=this._getParamName(n),g=0;if(!p||l&&void 0!==c[0].size||(p=void 0),(n.singleFileUploads||f||p)&&this._isXHRUpload(n))if(n.singleFileUploads||p||!f)if(!n.singleFileUploads&&p)for(a=[],i=[],t=0;t<l;t+=1)h+=c[t].size+d,(t+1===l||h+c[t+1].size+d>p||f&&f<=t+1-g)&&(a.push(c.slice(g,t+1)),(e=v.slice(g,t+1)).length||(e=v),i.push(e),g=t+1,h=0);else i=v;else for(a=[],i=[],t=0;t<l;t+=f)a.push(c.slice(t,t+f)),(e=v.slice(t,t+f)).length||(e=v),i.push(e);else a=[c],i=[v];return o.originalFiles=c,m.each(a||c,function(e,t){var n=m.extend({},o);return n.files=a?t:[t],n.paramName=i[e],s._initResponseObject(n),s._initProgressObject(n),s._addConvenienceMethods(r,n),u=s._trigger(\"add\",m.Event(\"add\",{delegatedEvent:r}),n)}),u},_replaceFileInput:function(e){var n=e.fileInput,r=n.clone(!0);e.fileInputClone=r,m(\"<form></form>\").append(r)[0].reset(),n.after(r).detach(),m.cleanData(n.unbind(\"remove\")),this.options.fileInput=this.options.fileInput.map(function(e,t){return t===n[0]?r[0]:t}),n[0]===this.element[0]&&(this.element=r)},_handleFileTreeEntry:function(n,r){function o(e){e&&!e.entry&&(e.entry=n),a.resolve([e])}var e,i=this,a=m.Deferred(),s=function(){e.readEntries(function(e){var t;e.length?(u=u.concat(e),s()):(t=u,i._handleFileTreeEntries(t,r+n.name+\"/\").done(function(e){a.resolve(e)}).fail(o))},o)},u=[];return r=r||\"\",n.isFile?n._file?(n._file.relativePath=r,a.resolve(n._file)):n.file(function(e){e.relativePath=r,a.resolve(e)},o):n.isDirectory?(e=n.createReader(),s()):a.resolve([]),a.promise()},_handleFileTreeEntries:function(e,t){var n=this;return m.when.apply(m,m.map(e,function(e){return n._handleFileTreeEntry(e,t)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(e){var t=(e=e||{}).items;return t&&t.length&&(t[0].webkitGetAsEntry||t[0].getAsEntry)?this._handleFileTreeEntries(m.map(t,function(e){var t;return e.webkitGetAsEntry?((t=e.webkitGetAsEntry())&&(t._file=e.getAsFile()),t):e.getAsEntry()})):m.Deferred().resolve(m.makeArray(e.files)).promise()},_getSingleFileInputFiles:function(e){var t,n,r=(e=m(e)).prop(\"webkitEntries\")||e.prop(\"entries\");if(r&&r.length)return this._handleFileTreeEntries(r);if((t=m.makeArray(e.prop(\"files\"))).length)void 0===t[0].name&&t[0].fileName&&m.each(t,function(e,t){t.name=t.fileName,t.size=t.fileSize});else{if(!(n=e.prop(\"value\")))return m.Deferred().resolve([]).promise();t=[{name:n.replace(/^.*\\\\/,\"\")}]}return m.Deferred().resolve(t).promise()},_getFileInputFiles:function(e){return e instanceof m&&1!==e.length?m.when.apply(m,m.map(e,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(e)},_onChange:function(t){var n=this,r={fileInput:m(t.target),form:m(t.target.form)};this._getFileInputFiles(r.fileInput).always(function(e){r.files=e,n.options.replaceFileInput&&n._replaceFileInput(r),!1!==n._trigger(\"change\",m.Event(\"change\",{delegatedEvent:t}),r)&&n._onAdd(t,r)})},_onPaste:function(e){var t=e.originalEvent&&e.originalEvent.clipboardData&&e.originalEvent.clipboardData.items,r={files:[]};t&&t.length&&(m.each(t,function(e,t){var n=t.getAsFile&&t.getAsFile();n&&r.files.push(n)}),!1!==this._trigger(\"paste\",m.Event(\"paste\",{delegatedEvent:e}),r)&&this._onAdd(e,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var n=this,e=t.dataTransfer,r={};e&&e.files&&e.files.length&&(t.preventDefault(),this._getDroppedFiles(e).always(function(e){r.files=e,!1!==n._trigger(\"drop\",m.Event(\"drop\",{delegatedEvent:t}),r)&&n._onAdd(t,r)}))},_onDragOver:e(\"dragover\"),_onDragEnter:e(\"dragenter\"),_onDragLeave:e(\"dragleave\"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),m.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,\"dragenter dragleave dragover drop\"),this._off(this.options.pasteZone,\"paste\"),this._off(this.options.fileInput,\"change\")},_setOption:function(e,t){var n=-1!==m.inArray(e,this._specialOptions);n&&this._destroyEventHandlers(),this._super(e,t),n&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var e=this.options;void 0===e.fileInput?e.fileInput=this.element.is('input[type=\"file\"]')?this.element:this.element.find('input[type=\"file\"]'):e.fileInput instanceof m||(e.fileInput=m(e.fileInput)),e.dropZone instanceof m||(e.dropZone=m(e.dropZone)),e.pasteZone instanceof m||(e.pasteZone=m(e.pasteZone))},_getRegExp:function(e){var t=e.split(\"/\"),n=t.pop();return t.shift(),new RegExp(t.join(\"/\"),n)},_isRegExpOption:function(e,t){return\"url\"!==e&&\"string\"===m.type(t)&&/^\\/.*\\/[igm]{0,3}$/.test(t)},_initDataAttributes:function(){var r=this,o=this.options,i=m(this.element[0].cloneNode(!1)),e=i.data();i.remove(),m.each(e,function(e,t){var n=\"data-\"+e.replace(/([a-z])([A-Z])/g,\"$1-$2\").toLowerCase();i.attr(n)&&(r._isRegExpOption(e,t)&&(t=r._getRegExp(t)),o[e]=t)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var n=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(e){t.files=e,n._onAdd(null,t)}):(t.files=m.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var n,r,o=this,i=m.Deferred(),e=i.promise();return e.abort=function(){return r=!0,n?n.abort():(i.reject(null,\"abort\",\"abort\"),e)},this._getFileInputFiles(t.fileInput).always(function(e){r||(e.length?(t.files=e,(n=o._onSend(null,t)).then(function(e,t,n){i.resolve(e,t,n)},function(e,t,n){i.reject(e,t,n)})):i.reject())}),this._enhancePromise(e)}if(t.files=m.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})}),function(e){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],e):\"object\"==typeof exports?e(require(\"jquery\")):e(window.jQuery)}(function(u){\"use strict\";var r=0;u.ajaxTransport(\"iframe\",function(o){if(o.async){var i,a,t,s=o.initialIframeSrc||\"javascript:false;\";return{send:function(e,n){(i=u('<form style=\"display:none;\"></form>')).attr(\"accept-charset\",o.formAcceptCharset),t=/\\?/.test(o.url)?\"&\":\"?\",\"DELETE\"===o.type?(o.url=o.url+t+\"_method=DELETE\",o.type=\"POST\"):\"PUT\"===o.type?(o.url=o.url+t+\"_method=PUT\",o.type=\"POST\"):\"PATCH\"===o.type&&(o.url=o.url+t+\"_method=PATCH\",o.type=\"POST\"),a=u('<iframe src=\"'+s+'\" name=\"iframe-transport-'+(r+=1)+'\"></iframe>').bind(\"load\",function(){var r,t=u.isArray(o.paramName)?o.paramName:[o.paramName];a.unbind(\"load\").bind(\"load\",function(){var t;try{if(!(t=a.contents()).length||!t[0].firstChild)throw new Error}catch(e){t=void 0}n(200,\"success\",{iframe:t}),u('<iframe src=\"'+s+'\"></iframe>').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop(\"target\",a.prop(\"name\")).prop(\"action\",o.url).prop(\"method\",o.type),o.formData&&u.each(o.formData,function(e,t){u('<input type=\"hidden\"/>').prop(\"name\",t.name).val(t.value).appendTo(i)}),o.fileInput&&o.fileInput.length&&\"POST\"===o.type&&(r=o.fileInput.clone(),o.fileInput.after(function(e){return r[e]}),o.paramName&&o.fileInput.each(function(e){u(this).prop(\"name\",t[e]||o.paramName)}),i.append(o.fileInput).prop(\"enctype\",\"multipart/form-data\").prop(\"encoding\",\"multipart/form-data\"),o.fileInput.removeAttr(\"form\")),i.submit(),r&&r.length&&o.fileInput.each(function(e,t){var n=u(r[e]);u(t).prop(\"name\",n.prop(\"name\")).attr(\"form\",n.attr(\"form\")),n.replaceWith(t)})}),i.append(a).appendTo(document.body)},abort:function(){a&&a.unbind(\"load\").prop(\"src\",s),i&&i.remove()}}}}),u.ajaxSetup({converters:{\"iframe text\":function(e){return e&&u(e[0].body).text()},\"iframe json\":function(e){return e&&u.parseJSON(u(e[0].body).text())},\"iframe html\":function(e){return e&&u(e[0].body).html()},\"iframe xml\":function(e){var t=e&&e[0];return t&&u.isXMLDoc(t)?t:u.parseXML(t.XMLDocument&&t.XMLDocument.xml||u(t.body).html())},\"iframe script\":function(e){return e&&u.globalEval(u(e[0].body).text())}}})}),function(t){jQuery.fn.putCursorAtEnd=function(){return this.each(function(){var e;t(this).focus(),this.setSelectionRange?(e=2*t(this).val().length,this.setSelectionRange(e,e)):t(this).val(t(this).val()),this.scrollTop=999999})}}(jQuery),function(c){var a=new Array,s=new Array;c.fn.doAutosize=function(e){var t,n,r,o=c(this).data(\"minwidth\"),i=c(this).data(\"maxwidth\"),a=\"\",s=c(this),u=c(\"#\"+c(this).data(\"tester_id\"));a!==(a=s.val())&&(t=a.replace(/&/g,\"&amp;\").replace(/\\s/g,\" \").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\"),u.html(t),((r=(n=u.width())+e.comfortZone>=o?n+e.comfortZone:o)<s.width()&&o<=r||o<r&&r<i)&&s.width(r))},c.fn.resetAutosize=function(e){var t=c(this).data(\"minwidth\")||e.minInputWidth||c(this).width(),n=c(this).data(\"maxwidth\")||e.maxInputWidth||c(this).closest(\".tagsinput\").width()-e.inputPadding,r=c(this),o=c(\"<tester/>\").css({position:\"absolute\",top:-9999,left:-9999,width:\"auto\",fontSize:r.css(\"fontSize\"),fontFamily:r.css(\"fontFamily\"),fontWeight:r.css(\"fontWeight\"),letterSpacing:r.css(\"letterSpacing\"),whiteSpace:\"nowrap\"}),i=c(this).attr(\"id\")+\"_autosize_tester\";0<!c(\"#\"+i).length&&(o.attr(\"id\",i),o.appendTo(\"body\")),r.data(\"minwidth\",t),r.data(\"maxwidth\",n),r.data(\"tester_id\",i),r.css(\"width\",t)},c.fn.addTag=function(o,i){return i=jQuery.extend({focus:!1,callback:!0},i),this.each(function(){var e,t,n=c(this).attr(\"id\"),r=c(this).val().split(a[n]);\"\"==r[0]&&(r=new Array),o=jQuery.trim(o),i.unique?1==(e=c(this).tagExist(o))&&c(\"#\"+n+\"_tag\").addClass(\"not_valid\"):e=!1,\"\"!=o&&1!=e&&(c(\"<span>\").addClass(\"tag\").append(c(\"<span>\").text(o).append(\"&nbsp;&nbsp;\"),c(\"<a>\",{href:\"#\",title:\"Removing tag\",text:\"x\"}).click(function(){return c(\"#\"+n).removeTag(escape(o))})).insertBefore(\"#\"+n+\"_addTag\"),r.push(o),c(\"#\"+n+\"_tag\").val(\"\"),i.focus?c(\"#\"+n+\"_tag\").focus():c(\"#\"+n+\"_tag\").blur(),c.fn.tagsInput.updateTagsField(this,r),i.callback&&s[n]&&s[n].onAddTag&&s[n].onAddTag.call(this,o),s[n]&&s[n].onChange&&(t=r.length,s[n].onChange.call(this,c(this),r[t-1])))}),!1},c.fn.removeTag=function(n){return n=unescape(n),this.each(function(){var e=c(this).attr(\"id\"),t=c(this).val().split(a[e]);for(c(\"#\"+e+\"_tagsinput .tag\").remove(),str=\"\",i=0;i<t.length;i++)t[i]!=n&&(str=str+a[e]+t[i]);c.fn.tagsInput.importTags(this,str),s[e]&&s[e].onRemoveTag&&s[e].onRemoveTag.call(this,n)}),!1},c.fn.tagExist=function(e){var t=c(this).attr(\"id\"),n=c(this).val().split(a[t]);return 0<=jQuery.inArray(e,n)},c.fn.importTags=function(e){var t=c(this).attr(\"id\");c(\"#\"+t+\"_tagsinput .tag\").remove(),c.fn.tagsInput.importTags(this,e)},c.fn.tagsInput=function(e){var o=jQuery.extend({interactive:!0,defaultText:\"add a tag\",minChars:0,width:\"300px\",height:\"100px\",autocomplete:{selectFirst:!1},hide:!0,delimiter:\",\",unique:!0,removeWithBackspace:!0,placeholderColor:\"#666666\",autosize:!0,comfortZone:20,inputPadding:12},e),n=0;return this.each(function(){if(void 0===c(this).attr(\"data-tagsinput-init\")){c(this).attr(\"data-tagsinput-init\",!0),o.hide&&c(this).hide();var r=c(this).attr(\"id\");r&&!a[c(this).attr(\"id\")]||(r=c(this).attr(\"id\",\"tags\"+(new Date).getTime()+n++).attr(\"id\"));var e=jQuery.extend({pid:r,real_input:\"#\"+r,holder:\"#\"+r+\"_tagsinput\",input_wrapper:\"#\"+r+\"_addTag\",fake_input:\"#\"+r+\"_tag\"},o);a[r]=e.delimiter,(o.onAddTag||o.onRemoveTag||o.onChange)&&(s[r]=new Array,s[r].onAddTag=o.onAddTag,s[r].onRemoveTag=o.onRemoveTag,s[r].onChange=o.onChange);var t='<div id=\"'+r+'_tagsinput\" class=\"tagsinput\"><div id=\"'+r+'_addTag\">';if(o.interactive&&(t=t+'<input id=\"'+r+'_tag\" value=\"\" data-default=\"'+o.defaultText+'\" />'),c(t+='</div><div class=\"tags_clear\"></div></div>').insertAfter(this),c(e.holder).css(\"width\",o.width),c(e.holder).css(\"min-height\",o.height),c(e.holder).css(\"height\",o.height),\"\"!=c(e.real_input).val()&&c.fn.tagsInput.importTags(c(e.real_input),c(e.real_input).val()),o.interactive){if(c(e.fake_input).val(c(e.fake_input).attr(\"data-default\")),c(e.fake_input).css(\"color\",o.placeholderColor),c(e.fake_input).resetAutosize(o),c(e.holder).bind(\"click\",e,function(e){c(e.data.fake_input).focus()}),c(e.fake_input).bind(\"focus\",e,function(e){c(e.data.fake_input).val()==c(e.data.fake_input).attr(\"data-default\")&&c(e.data.fake_input).val(\"\"),c(e.data.fake_input).css(\"color\",\"#000000\")}),null!=o.autocomplete_url){for(attrname in autocomplete_options={source:o.autocomplete_url},o.autocomplete)autocomplete_options[attrname]=o.autocomplete[attrname];void 0!==jQuery.Autocompleter?(c(e.fake_input).autocomplete(o.autocomplete_url,o.autocomplete),c(e.fake_input).bind(\"result\",e,function(e,t,n){t&&c(\"#\"+r).addTag(t[0]+\"\",{focus:!0,unique:o.unique})})):void 0!==jQuery.ui.autocomplete&&(c(e.fake_input).autocomplete(autocomplete_options),c(e.fake_input).bind(\"autocompleteselect\",e,function(e,t){return c(e.data.real_input).addTag(t.item.value,{focus:!0,unique:o.unique}),!1}))}else c(e.fake_input).bind(\"blur\",e,function(e){var t=c(this).attr(\"data-default\");return\"\"!=c(e.data.fake_input).val()&&c(e.data.fake_input).val()!=t?e.data.minChars<=c(e.data.fake_input).val().length&&(!e.data.maxChars||e.data.maxChars>=c(e.data.fake_input).val().length)&&c(e.data.real_input).addTag(c(e.data.fake_input).val(),{focus:!0,unique:o.unique}):(c(e.data.fake_input).val(c(e.data.fake_input).attr(\"data-default\")),c(e.data.fake_input).css(\"color\",o.placeholderColor)),!1});c(e.fake_input).bind(\"keypress\",e,function(e){return u(e)?(e.preventDefault(),e.data.minChars<=c(e.data.fake_input).val().length&&(!e.data.maxChars||e.data.maxChars>=c(e.data.fake_input).val().length)&&c(e.data.real_input).addTag(c(e.data.fake_input).val(),{focus:!0,unique:o.unique}),c(e.data.fake_input).resetAutosize(o),!1):void(e.data.autosize&&c(e.data.fake_input).doAutosize(o))}),e.removeWithBackspace&&c(e.fake_input).bind(\"keydown\",function(e){var t,n;8==e.keyCode&&\"\"==c(this).val()&&(e.preventDefault(),n=c(this).closest(\".tagsinput\").find(\".tag:last\").text(),t=c(this).attr(\"id\").replace(/_tag$/,\"\"),n=n.replace(/[\\s]+x$/,\"\"),c(\"#\"+t).removeTag(escape(n)),c(this).trigger(\"focus\"))}),c(e.fake_input).blur(),e.unique&&c(e.fake_input).keydown(function(e){8!=e.keyCode&&!String.fromCharCode(e.which).match(/\\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)||c(this).removeClass(\"not_valid\")})}}}),this},c.fn.tagsInput.updateTagsField=function(e,t){var n=c(e).attr(\"id\");c(e).val(t.join(a[n]))},c.fn.tagsInput.importTags=function(e,t){c(e).val(\"\");var n=c(e).attr(\"id\"),r=t.split(a[n]);for(i=0;i<r.length;i++)c(e).addTag(r[i],{focus:!1,callback:!1});s[n]&&s[n].onChange&&s[n].onChange.call(e,e,r[i])};var u=function(n){var r=!1;return 13==n.which||(\"string\"==typeof n.data.delimiter?n.which==n.data.delimiter.charCodeAt(0)&&(r=!0):c.each(n.data.delimiter,function(e,t){n.which==t.charCodeAt(0)&&(r=!0)}),r)}}(jQuery),function(a){var s,u=a();a.fn.sortable=function(i){var e=String(i);return i=a.extend({connectWith:!1},i),this.each(function(){var n,r,t,o;/^enable|disable|destroy$/.test(e)?(t=a(this).children(a(this).data(\"items\")).attr(\"draggable\",\"enable\"==e),\"destroy\"==e&&t.add(this).removeData(\"connectWith items\").off(\"dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s\")):(t=a(this).children(i.items),o=a(\"<\"+(/^ul|ol$/i.test(this.tagName)?\"li\":\"div\")+' class=\"sortable-placeholder\">'),t.find(i.handle).mousedown(function(){n=!0}).mouseup(function(){n=!1}),a(this).data(\"items\",i.items),u=u.add(o),i.connectWith&&a(i.connectWith).add(this).data(\"connectWith\",i.connectWith),t.attr(\"draggable\",\"true\").on(\"dragstart.h5s\",function(e){if(i.handle&&!n)return!1;n=!1;var t=e.originalEvent.dataTransfer;t.effectAllowed=\"move\",t.setData(\"Text\",\"dummy\"),r=(s=a(this)).addClass(\"sortable-dragging\").index()}).on(\"dragend.h5s\",function(){s&&(s.removeClass(\"sortable-dragging\").show(),u.detach(),r!=s.index()&&s.parent().trigger(\"sortupdate\",{item:s}),s=null)}).not(\"a[href], img\").on(\"selectstart.h5s\",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,o]).on(\"dragover.h5s dragenter.h5s drop.h5s\",function(e){return!t.is(s)&&i.connectWith!==a(s).parent().data(\"connectWith\")||(\"drop\"==e.type?(e.stopPropagation(),u.filter(\":visible\").after(s),s.trigger(\"dragend.h5s\")):(e.preventDefault(),e.originalEvent.dataTransfer.dropEffect=\"move\",t.is(this)?(i.forcePlaceholderSize&&o.height(s.outerHeight()),s.hide(),a(this)[o.index()<a(this).index()?\"after\":\"before\"](o),u.not(o).detach()):u.is(this)||a(this).children(i.items).length||(u.detach(),a(this).append(o))),!1)}))})}}(jQuery),function(){var E,d=200,y=\"Expected a function\",r=\"__lodash_hash_undefined__\",C=\"__lodash_placeholder__\",k=1,O=2,j=4,b=1,m=2,T=1,I=2,S=4,P=8,e=16,A=32,R=64,t=128,n=512,o=1/0,i=9007199254740991,a=17976931348623157e292,s=NaN,u=4294967295,N=[[\"ary\",t],[\"bind\",T],[\"bindKey\",I],[\"curry\",P],[\"curryRight\",e],[\"flip\",n],[\"partial\",A],[\"partialRight\",R],[\"rearg\",256]],D=\"[object Arguments]\",_=\"[object Array]\",c=\"[object AsyncFunction]\",M=\"[object Boolean]\",F=\"[object Date]\",w=\"[object Error]\",L=\"[object Function]\",H=\"[object GeneratorFunction]\",q=\"[object Map]\",B=\"[object Number]\",l=\"[object Null]\",$=\"[object Object]\",f=\"[object Promise]\",p=\"[object Proxy]\",U=\"[object RegExp]\",z=\"[object Set]\",W=\"[object String]\",V=\"[object Symbol]\",h=\"[object Undefined]\",v=\"[object WeakMap]\",K=\"[object ArrayBuffer]\",X=\"[object DataView]\",Q=\"[object Float32Array]\",G=\"[object Float64Array]\",Z=\"[object Int8Array]\",J=\"[object Int16Array]\",Y=\"[object Int32Array]\",ee=\"[object Uint8Array]\",te=\"[object Uint8ClampedArray]\",ne=\"[object Uint16Array]\",re=\"[object Uint32Array]\",g=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,x=/^\\w*$/,oe=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,ie=/^\\s+|\\s+$/g,ae=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,se=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ue=/,? & /,ce=/\\\\(\\\\)?/g,le=/\\w*$/,fe=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,de=/^\\[object .+?Constructor\\]$/,he=/^0o[0-7]+$/i,ve=/^(?:0|[1-9]\\d*)$/,ge=\"\\\\ud800-\\\\udfff\",me=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",ye=\"\\\\ufe0e\\\\ufe0f\",_e=\"[\"+ge+\"]\",be=\"[\"+me+\"]\",we=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",xe=\"[^\"+ge+\"]\",ke=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Oe=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",je=\"\\\\u200d\",Ee=\"(?:\"+be+\"|\"+we+\")\"+\"?\",Ce=\"[\"+ye+\"]?\",Te=Ce+Ee+(\"(?:\"+je+\"(?:\"+[xe,ke,Oe].join(\"|\")+\")\"+Ce+Ee+\")*\"),Ie=\"(?:\"+[xe+be+\"?\",be,ke,Oe,_e].join(\"|\")+\")\",Se=RegExp(we+\"(?=\"+we+\")|\"+Ie+Te,\"g\"),Pe=RegExp(\"[\"+je+ge+me+ye+\"]\"),Ae={};Ae[Q]=Ae[G]=Ae[Z]=Ae[J]=Ae[Y]=Ae[ee]=Ae[te]=Ae[ne]=Ae[re]=!0,Ae[D]=Ae[_]=Ae[K]=Ae[M]=Ae[X]=Ae[F]=Ae[w]=Ae[L]=Ae[q]=Ae[B]=Ae[$]=Ae[U]=Ae[z]=Ae[W]=Ae[v]=!1;var Re={};Re[D]=Re[_]=Re[K]=Re[X]=Re[M]=Re[F]=Re[Q]=Re[G]=Re[Z]=Re[J]=Re[Y]=Re[q]=Re[B]=Re[$]=Re[U]=Re[z]=Re[W]=Re[V]=Re[ee]=Re[te]=Re[ne]=Re[re]=!0,Re[w]=Re[L]=Re[v]=!1;var Ne=parseInt,De=\"object\"==typeof global&&global&&global.Object===Object&&global,Me=\"object\"==typeof self&&self&&self.Object===Object&&self,Fe=De||Me||Function(\"return this\")(),Le=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,He=Le&&\"object\"==typeof module&&module&&!module.nodeType&&module,qe=He&&He.exports===Le,Be=qe&&De.process,$e=function(){try{var e=He&&He.require&&He.require(\"util\").types;return e?e:Be&&Be.binding&&Be.binding(\"util\")}catch(e){}}(),Ue=$e&&$e.isMap,ze=$e&&$e.isSet,We=$e&&$e.isTypedArray;function Ve(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Ke(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o<i;){var a=e[o];t(r,a,n(a),e)}return r}function Xe(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Qe(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Ge(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}function Ze(e,t){var n,r,o;return!!(null==e?0:e.length)&&(n=e,o=0,-1<((r=t)==r?function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}(n,r,o):nt(n,rt,o)))}function Je(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}function Ye(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}function et(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}function tt(e,t,n,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function nt(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}function rt(e){return e!=e}function ot(e,r,o,i,t){return t(e,function(e,t,n){o=i?(i=!1,e):r(o,e,t,n)}),o}function it(t){return function(e){return t(e)}}function at(e,t){return e.has(t)}function st(e){var n=-1,r=Array(e.size);return e.forEach(function(e,t){r[++n]=[t,e]}),r}function ut(t,n){return function(e){return t(n(e))}}function ct(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function lt(e){return t=e,Pe.test(t)?e.match(Se)||[]:e.split(\"\");var t}var ft,pt=Array.prototype,dt=Function.prototype,ht=Object.prototype,vt=Fe[\"__core-js_shared__\"],gt=dt.toString,mt=ht.hasOwnProperty,yt=(ft=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+ft:\"\",_t=ht.toString,bt=gt.call(Object),wt=RegExp(\"^\"+gt.call(mt).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),xt=qe?Fe.Buffer:E,kt=Fe.Symbol,Ot=Fe.Uint8Array,jt=xt?xt.allocUnsafe:E,Et=ut(Object.getPrototypeOf,Object),Ct=Object.create,Tt=ht.propertyIsEnumerable,It=pt.splice,St=kt?kt.isConcatSpreadable:E,Pt=kt?kt.iterator:E,At=kt?kt.toStringTag:E,Rt=function(){try{var e=xr(Object,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}(),Nt=Math.ceil,Dt=Object.getOwnPropertySymbols,Mt=xt?xt.isBuffer:E,Ft=ut(Object.keys,Object),Lt=Math.max,Ht=Math.min,qt=Date.now,Bt=pt.reverse,$t=xr(Fe,\"DataView\"),Ut=xr(Fe,\"Map\"),zt=xr(Fe,\"Promise\"),Wt=xr(Fe,\"Set\"),Vt=xr(Fe,\"WeakMap\"),Kt=xr(Object,\"create\"),Xt=Vt&&new Vt,Qt={},Gt=zr($t),Zt=zr(Ut),Jt=zr(zt),Yt=zr(Wt),en=zr(Vt),tn=kt?kt.prototype:E,nn=tn?tn.valueOf:E,rn=tn?tn.toString:E;function on(e){if(Oo(e)&&!mo(e)&&!(e instanceof ln)){if(e instanceof cn)return e;if(mt.call(e,\"__wrapped__\"))return Wr(e)}return new cn(e)}var an=function(e){if(!ko(e))return{};if(Ct)return Ct(e);sn.prototype=e;var t=new sn;return sn.prototype=E,t};function sn(){}function un(){}function cn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=E}function ln(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=u,this.__views__=[]}function fn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function pn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function dn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function hn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new dn;++t<n;)this.add(e[t])}function vn(e){var t=this.__data__=new pn(e);this.size=t.size}function gn(e,t){var n=mo(e),r=!n&&go(e),o=!n&&!r&&bo(e),i=!n&&!r&&!o&&So(e),a=n||r||o||i,s=a?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],u=s.length;for(var c in e)!t&&!mt.call(e,c)||a&&(\"length\"==c||o&&(\"offset\"==c||\"parent\"==c)||i&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||Tr(c,u))||s.push(c);return s}function mn(e,t,n){(n===E||vo(e[t],n))&&(n!==E||t in e)||wn(e,t,n)}function yn(e,t,n){var r=e[t];mt.call(e,t)&&vo(r,n)&&(n!==E||t in e)||wn(e,t,n)}function _n(e,t){for(var n=e.length;n--;)if(vo(e[n][0],t))return n;return-1}function bn(e,r,o,i){return jn(e,function(e,t,n){r(i,e,o(e),n)}),i}function wn(e,t,n){\"__proto__\"==t&&Rt?Rt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function xn(n,r,o,e,t,i){var a,s=r&k,u=r&O,c=r&j;if(o&&(a=t?o(n,e,t,i):o(n)),a!==E)return a;if(!ko(n))return n;var l,f,p,d,h,v,g,m,y=mo(n);if(y){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&\"string\"==typeof e[0]&&mt.call(e,\"index\")&&(n.index=e.index,n.input=e.input);return n}(n),!s)return ur(n,a)}else{var _=jr(n),b=_==L||_==H;if(bo(n))return ir(n,s);if(_==$||_==D||b&&!t){if(a=u||b?{}:Er(n),!s)return u?(m=h=n,v=(g=a)&&cr(m,$o(m),g),cr(h,Or(h),v)):(d=l=n,f=(p=a)&&cr(d,Bo(d),p),cr(l,kr(l),f))}else{if(!Re[_])return t?n:{};a=function(e,t,n){var r=e.constructor;switch(t){case K:return ar(e);case M:case F:return new r(+e);case X:return function(e,t){var n=t?ar(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case Q:case G:case Z:case J:case Y:case ee:case te:case ne:case re:return sr(e,n);case q:return new r;case B:case W:return new r(e);case U:return function(e){var t=new e.constructor(e.source,le.exec(e));return t.lastIndex=e.lastIndex,t}(e);case z:return new r;case V:return function(e){return nn?Object(nn.call(e)):{}}(e)}}(n,_,s)}}var w=(i=i||new vn).get(n);if(w)return w;i.set(n,a),Co(n)?n.forEach(function(e){a.add(xn(e,r,o,e,n,i))}):jo(n)&&n.forEach(function(e,t){a.set(t,xn(e,r,o,t,n,i))});var x=y?E:(c?u?yr:mr:u?$o:Bo)(n);return Xe(x||n,function(e,t){x&&(e=n[t=e]),yn(a,t,xn(e,r,o,t,n,i))}),a}(on.prototype=un.prototype).constructor=on,(cn.prototype=an(un.prototype)).constructor=cn,(ln.prototype=an(un.prototype)).constructor=ln,fn.prototype.clear=function(){this.__data__=Kt?Kt(null):{},this.size=0},fn.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},fn.prototype.get=function(e){var t=this.__data__;if(Kt){var n=t[e];return n===r?E:n}return mt.call(t,e)?t[e]:E},fn.prototype.has=function(e){var t=this.__data__;return Kt?t[e]!==E:mt.call(t,e)},fn.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Kt&&t===E?r:t,this},pn.prototype.clear=function(){this.__data__=[],this.size=0},pn.prototype.delete=function(e){var t=this.__data__,n=_n(t,e);return!(n<0)&&(n==t.length-1?t.pop():It.call(t,n,1),--this.size,!0)},pn.prototype.get=function(e){var t=this.__data__,n=_n(t,e);return n<0?E:t[n][1]},pn.prototype.has=function(e){return-1<_n(this.__data__,e)},pn.prototype.set=function(e,t){var n=this.__data__,r=_n(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},dn.prototype.clear=function(){this.size=0,this.__data__={hash:new fn,map:new(Ut||pn),string:new fn}},dn.prototype.delete=function(e){var t=wr(this,e).delete(e);return this.size-=t?1:0,t},dn.prototype.get=function(e){return wr(this,e).get(e)},dn.prototype.has=function(e){return wr(this,e).has(e)},dn.prototype.set=function(e,t){var n=wr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},hn.prototype.add=hn.prototype.push=function(e){return this.__data__.set(e,r),this},hn.prototype.has=function(e){return this.__data__.has(e)},vn.prototype.clear=function(){this.__data__=new pn,this.size=0},vn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},vn.prototype.get=function(e){return this.__data__.get(e)},vn.prototype.has=function(e){return this.__data__.has(e)},vn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof pn){var r=n.__data__;if(!Ut||r.length<d-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new dn(r)}return n.set(e,t),this.size=n.size,this};var kn,On,jn=(kn=An,function(e,t){if(null==e)return e;if(!yo(e))return kn(e,t);for(var n=e.length,r=On?n:-1,o=Object(e);(On?r--:++r<n)&&!1!==t(o[r],r,o););return e});function En(e,r){var o=!0;return jn(e,function(e,t,n){return o=!!r(e,t,n)}),o}function Cn(e,t,n){for(var r=-1,o=e.length;++r<o;){var i,a,s=e[r],u=t(s);null!=u&&(i===E?u==u&&!Io(u):n(u,i))&&(i=u,a=s)}return a}function Tn(e,r){var o=[];return jn(e,function(e,t,n){r(e,t,n)&&o.push(e)}),o}function In(e,t,n,r,o){var i=-1,a=e.length;for(n=n||Cr,o=o||[];++i<a;){var s=e[i];0<t&&n(s)?1<t?In(s,t-1,n,r,o):et(o,s):r||(o[o.length]=s)}return o}var Sn,Pn=function(e,t,n){for(var r=-1,o=Object(e),i=n(e),a=i.length;a--;){var s=i[Sn?a:++r];if(!1===t(o[s],s,o))break}return e};function An(e,t){return e&&Pn(e,t,Bo)}function Rn(t,e){return Ge(e,function(e){return wo(t[e])})}function Nn(e,t){for(var n=0,r=(t=or(t,e)).length;null!=e&&n<r;)e=e[Ur(t[n++])];return n&&n==r?e:E}function Dn(e,t,n){var r=t(e);return mo(e)?r:et(r,n(e))}function Mn(e){return null==e?e===E?h:l:At&&At in Object(e)?function(e){var t=mt.call(e,At),n=e[At];try{e[At]=E;var r=!0}catch(e){}var o=_t.call(e);r&&(t?e[At]=n:delete e[At]);return o}(e):(t=e,_t.call(t));var t}function Fn(e,t){return t<e}function Ln(e,t){return null!=e&&t in Object(e)}function Hn(e,t,n){var r=null==(e=Dr(e,t=or(t,e)))?e:e[Ur(Gr(t))];return null==r?E:Ve(r,e,n)}function qn(e){return Oo(e)&&Mn(e)==D}function Bn(e,t,n,r,o){return e===t||(null==e||null==t||!Oo(e)&&!Oo(t)?e!=e&&t!=t:function(e,t,n,r,o,i){var a=mo(e),s=mo(t),u=a?_:jr(e),c=s?_:jr(t),l=(u=u==D?$:u)==$,f=(c=c==D?$:c)==$,p=u==c;if(p&&bo(e)){if(!bo(t))return!1;l=!(a=!0)}if(p&&!l)return i=i||new vn,a||So(e)?vr(e,t,n,r,o,i):function(e,t,n,r,o,i,a){switch(n){case X:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case K:return e.byteLength==t.byteLength&&i(new Ot(e),new Ot(t))?!0:!1;case M:case F:case B:return vo(+e,+t);case w:return e.name==t.name&&e.message==t.message;case U:case W:return e==t+\"\";case q:var s=st;case z:var u=r&b;if(s=s||ct,e.size!=t.size&&!u)return!1;var c=a.get(e);if(c)return c==t;r|=m,a.set(e,t);var l=vr(s(e),s(t),r,o,i,a);return a.delete(e),l;case V:if(nn)return nn.call(e)==nn.call(t)}return!1}(e,t,u,n,r,o,i);if(!(n&b)){var d=l&&mt.call(e,\"__wrapped__\"),h=f&&mt.call(t,\"__wrapped__\");if(d||h){var v=d?e.value():e,g=h?t.value():t;return i=i||new vn,o(v,g,n,r,i)}}return p&&(i=i||new vn,function(e,t,n,r,o,i){var a=n&b,s=mr(e),u=s.length,c=mr(t).length;if(u!=c&&!a)return!1;var l=u;for(;l--;){var f=s[l];if(!(a?f in t:mt.call(t,f)))return!1}var p=i.get(e);if(p&&i.get(t))return p==t;var d=!0;i.set(e,t),i.set(t,e);var h=a;for(;++l<u;){f=s[l];var v,g=e[f],m=t[f];if(r&&(v=a?r(m,g,f,t,e,i):r(g,m,f,e,t,i)),!(v===E?g===m||o(g,m,n,r,i):v)){d=!1;break}h=h||\"constructor\"==f}{var y,_;d&&!h&&(y=e.constructor,_=t.constructor,y!=_&&\"constructor\"in e&&\"constructor\"in t&&!(\"function\"==typeof y&&y instanceof y&&\"function\"==typeof _&&_ instanceof _)&&(d=!1))}return i.delete(e),i.delete(t),d}(e,t,n,r,o,i))}(e,t,n,r,Bn,o))}function $n(e){return ko(e)&&!(yt&&yt in e)&&(wo(e)?wt:de).test(zr(e))}function Un(e){return\"function\"==typeof e?e:null==e?Xo:\"object\"==typeof e?mo(e)?function(n,r){if(Sr(n)&&Ar(r))return Rr(Ur(n),r);return function(e){var t=Lo(e,n);return t===E&&t===r?Ho(e,n):Bn(r,t,b|m)}}(e[0],e[1]):function(t){var n=function(e){var t=Bo(e),n=t.length;for(;n--;){var r=t[n],o=e[r];t[n]=[r,o,Ar(o)]}return t}(t);if(1==n.length&&n[0][2])return Rr(n[0][0],n[0][1]);return function(e){return e===t||function(e,t,n,r){var o=n.length,i=o,a=!r;if(null==e)return!i;for(e=Object(e);o--;){var s=n[o];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++o<i;){var u=(s=n[o])[0],c=e[u],l=s[1];if(a&&s[2]){if(c===E&&!(u in e))return!1}else{var f,p=new vn;if(r&&(f=r(c,l,u,e,t,p)),!(f===E?Bn(l,c,b|m,r,p):f))return!1}}return!0}(e,t,n)}}(e):Jo(e)}function zn(e){if(!Pr(e))return Ft(e);var t=[];for(var n in Object(e))mt.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}function Wn(e){if(!ko(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Pr(e),n=[];for(var r in e)(\"constructor\"!=r||!t&&mt.call(e,r))&&n.push(r);return n}function Vn(e,t){return e<t}function Kn(e,r){var o=-1,i=yo(e)?Array(e.length):[];return jn(e,function(e,t,n){i[++o]=r(e,t,n)}),i}function Xn(r,o,i,a,s){r!==o&&Pn(o,function(e,t){var n;s=s||new vn,ko(e)?function(e,t,n,r,o,i,a){var s=Mr(e,n),u=Mr(t,n),c=a.get(u);if(c)return mn(e,n,c);var l=i?i(s,u,n+\"\",e,t,a):E,f=l===E;{var p,d,h;f&&(p=mo(u),d=!p&&bo(u),h=!p&&!d&&So(u),l=u,p||d||h?l=mo(s)?s:_o(s)?ur(s):d?ir(u,!(f=!1)):h?sr(u,!(f=!1)):[]:Eo(u)||go(u)?go(l=s)?l=Do(s):ko(s)&&!wo(s)||(l=Er(u)):f=!1)}f&&(a.set(u,l),o(l,u,r,i,a),a.delete(u));mn(e,n,l)}(r,o,t,i,Xn,a,s):((n=a?a(Mr(r,t),e,t+\"\",r,o,s):E)===E&&(n=e),mn(r,t,n))},$o)}function Qn(e,r,n){var o=-1;return r=Ye(r.length?r:[Xo],it(br())),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(Kn(e,function(t,e,n){return{criteria:Ye(r,function(e){return e(t)}),index:++o,value:t}}),function(e,t){return function(e,t,n){var r=-1,o=e.criteria,i=t.criteria,a=o.length,s=n.length;for(;++r<a;){var u=function(e,t){if(e!==t){var n=e!==E,r=null===e,o=e==e,i=Io(e),a=t!==E,s=null===t,u=t==t,c=Io(t);if(!s&&!c&&!i&&t<e||i&&a&&u&&!s&&!c||r&&a&&u||!n&&u||!o)return 1;if(!r&&!i&&!c&&e<t||c&&n&&o&&!r&&!i||s&&n&&o||!a&&o||!u)return-1}return 0}(o[r],i[r]);if(u){if(s<=r)return u;var c=n[r];return u*(\"desc\"==c?-1:1)}}return e.index-t.index}(e,t,n)})}function Gn(n,e){return function(e,t,n){var r=-1,o=t.length,i={};for(;++r<o;){var a=t[r],s=Nn(e,a);n(s,a)&&function(e,t,n,r){if(!ko(e))return;t=or(t,e);var o=-1,i=t.length,a=i-1,s=e;for(;null!=s&&++o<i;){var u,c=Ur(t[o]),l=n;o!=a&&(u=s[c],(l=r?r(u,c,s):E)===E&&(l=ko(u)?u:Tr(t[o+1])?[]:{})),yn(s,c,l),s=s[c]}}(i,or(a,e),s)}return i}(n,e,function(e,t){return Ho(n,t)})}function Zn(e,t){return Lr(Nr(e,t,Xo),e+\"\")}var Jn=Xt?function(e,t){return Xt.set(e,t),e}:Xo,Yn=Rt?function(e,t){return Rt(e,\"toString\",{configurable:!0,enumerable:!1,value:Ko(t),writable:!0})}:Xo;function er(e){if(\"string\"==typeof e)return e;if(mo(e))return Ye(e,er)+\"\";if(Io(e))return rn?rn.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-o?\"-0\":t}function tr(e,t,n){var r=-1,o=Ze,i=e.length,a=!0,s=[],u=s;if(n)a=!1,o=Je;else if(d<=i){var c=t?null:dr(e);if(c)return ct(c);a=!1,o=at,u=new hn}else u=t?[]:s;e:for(;++r<i;){var l=e[r],f=t?t(l):l,l=n||0!==l?l:0;if(a&&f==f){for(var p=u.length;p--;)if(u[p]===f)continue e;t&&u.push(f),s.push(l)}else o(u,f,n)||(u!==s&&u.push(f),s.push(l))}return s}function nr(e,t){var n=e;return n instanceof ln&&(n=n.value()),tt(t,function(e,t){return t.func.apply(t.thisArg,et([e],t.args))},n)}function rr(e){return _o(e)?e:[]}function or(e,t){return mo(e)?e:Sr(e,t)?[e]:$r(Mo(e))}function ir(e,t){if(t)return e.slice();var n=e.length,r=jt?jt(n):new e.constructor(n);return e.copy(r),r}function ar(e){var t=new e.constructor(e.byteLength);return new Ot(t).set(new Ot(e)),t}function sr(e,t){var n=t?ar(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ur(e,t){var n=-1,r=e.length;for(t=t||Array(r);++n<r;)t[n]=e[n];return t}function cr(e,t,n,r){var o=!n;n=n||{};for(var i=-1,a=t.length;++i<a;){var s=t[i],u=r?r(n[s],e[s],s,n,e):E;u===E&&(u=e[s]),(o?wn:yn)(n,s,u)}return n}function lr(s){return Zn(function(e,t){var n=-1,r=t.length,o=1<r?t[r-1]:E,i=2<r?t[2]:E,o=3<s.length&&\"function\"==typeof o?(r--,o):E;for(i&&Ir(t[0],t[1],i)&&(o=r<3?E:o,r=1),e=Object(e);++n<r;){var a=t[n];a&&s(e,a,n,o)}return e})}function fr(r){return function(){var e=arguments;switch(e.length){case 0:return new r;case 1:return new r(e[0]);case 2:return new r(e[0],e[1]);case 3:return new r(e[0],e[1],e[2]);case 4:return new r(e[0],e[1],e[2],e[3]);case 5:return new r(e[0],e[1],e[2],e[3],e[4]);case 6:return new r(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new r(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var t=an(r.prototype),n=r.apply(t,e);return ko(n)?n:t}}function pr(l,f,p,d,h,v,g,m,y,_){var b=f&t,w=f&T,x=f&I,k=f&(P|e),O=f&n,j=x?E:fr(l);return function e(){for(var t,n,r,o=arguments.length,i=Array(o),a=o;a--;)i[a]=arguments[a];if(k&&(r=e,n=function(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}(i,t=(mt.call(on,\"placeholder\")?on:r).placeholder)),d&&(i=function(e,t,n,r){for(var o=-1,i=e.length,a=n.length,s=-1,u=t.length,c=Lt(i-a,0),l=Array(u+c),f=!r;++s<u;)l[s]=t[s];for(;++o<a;)(f||o<i)&&(l[n[o]]=e[o]);for(;c--;)l[s++]=e[o++];return l}(i,d,h,k)),v&&(i=function(e,t,n,r){for(var o=-1,i=e.length,a=-1,s=n.length,u=-1,c=t.length,l=Lt(i-s,0),f=Array(l+c),p=!r;++o<l;)f[o]=e[o];for(var d=o;++u<c;)f[d+u]=t[u];for(;++a<s;)(p||o<i)&&(f[d+n[a]]=e[o++]);return f}(i,v,g,k)),o-=n,k&&o<_){var s=function(e,t){for(var n=-1,r=e.length,o=0,i=[];++n<r;){var a=e[n];a!==t&&a!==C||(e[n]=C,i[o++]=n)}return i}(i,t);return function(e,t,n,r,o,i,a,s,u,c){var l=t&P;t|=l?A:R,(t&=~(l?R:A))&S||(t&=~(T|I));var f=[e,t,o,l?i:E,l?a:E,l?E:i,l?E:a,s,u,c],p=n.apply(E,f);return function(e){var t=function(e){for(var t=e.name+\"\",n=Qt[t],r=mt.call(Qt,t)?n.length:0;r--;){var o=n[r],i=o.func;if(null==i||i==e)return o.name}return t}(e),n=on[t];if(\"function\"==typeof n&&t in ln.prototype){if(e===n)return 1;var r=_r(n);return r&&e===r[0]}}(e)&&Fr(p,f),p.placeholder=r,function(e,t,n){var r=t+\"\";return Lr(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(1<n?\"& \":\"\")+t[r],t=t.join(2<n?\", \":\" \"),e.replace(ae,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}(r,function(n,r){return Xe(N,function(e){var t=\"_.\"+e[0];r&e[1]&&!Ze(n,t)&&n.push(t)}),n.sort()}(function(e){var t=e.match(se);return t?t[1].split(ue):[]}(r),n)))}(p,e,t)}(l,f,pr,e.placeholder,p,i,s,m,y,_-o)}var u=w?p:this,c=x?u[l]:l,o=i.length;return m?i=function(e,t){for(var n=e.length,r=Ht(t.length,n),o=ur(e);r--;){var i=t[r];e[r]=Tr(i,n)?o[i]:E}return e}(i,m):O&&1<o&&i.reverse(),b&&y<o&&(i.length=y),this&&this!==Fe&&this instanceof e&&(c=j||fr(c)),c.apply(u,i)}}var dr=Wt&&1/ct(new Wt([,-0]))[1]==o?function(e){return new Wt(e)}:Zo;function hr(e){return Eo(e)?E:e}function vr(e,t,n,r,o,i){var a=n&b,s=e.length,u=t.length;if(s!=u&&!(a&&s<u))return!1;var c=i.get(e);if(c&&i.get(t))return c==t;var l=-1,f=!0,p=n&m?new hn:E;for(i.set(e,t),i.set(t,e);++l<s;){var d,h=e[l],v=t[l];if(r&&(d=a?r(v,h,l,t,e,i):r(h,v,l,e,t,i)),d!==E){if(d)continue;f=!1;break}if(p){if(!function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return 1}(t,function(e,t){return!at(p,t)&&(h===e||o(h,e,n,r,i))&&p.push(t)})){f=!1;break}}else if(h!==v&&!o(h,v,n,r,i)){f=!1;break}}return i.delete(e),i.delete(t),f}function gr(e){return Lr(Nr(e,E,Kr),e+\"\")}function mr(e){return Dn(e,Bo,kr)}function yr(e){return Dn(e,$o,Or)}var _r=Xt?function(e){return Xt.get(e)}:Zo;function br(e,t){var n=(n=on.iteratee||Qo)===Qo?Un:n;return arguments.length?n(e,t):n}function wr(e,t){var n,r,o=e.__data__;return(\"string\"==(r=typeof(n=t))||\"number\"==r||\"symbol\"==r||\"boolean\"==r?\"__proto__\"!==n:null===n)?o[\"string\"==typeof t?\"string\":\"hash\"]:o.map}function xr(e,t){var n,r,o=(r=t,null==(n=e)?E:n[r]);return $n(o)?o:E}var kr=Dt?function(t){return null==t?[]:(t=Object(t),Ge(Dt(t),function(e){return Tt.call(t,e)}))}:ni,Or=Dt?function(e){for(var t=[];e;)et(t,kr(e)),e=Et(e);return t}:ni,jr=Mn;function Er(e){return\"function\"!=typeof e.constructor||Pr(e)?{}:an(Et(e))}function Cr(e){return mo(e)||go(e)||!!(St&&e&&e[St])}function Tr(e,t){var n=typeof e;return!!(t=null==t?i:t)&&(\"number\"==n||\"symbol\"!=n&&ve.test(e))&&-1<e&&e%1==0&&e<t}function Ir(e,t,n){if(ko(n)){var r=typeof t;return(\"number\"==r?yo(n)&&Tr(t,n.length):\"string\"==r&&t in n)&&vo(n[t],e)}}function Sr(e,t){if(!mo(e)){var n=typeof e;return\"number\"==n||\"symbol\"==n||\"boolean\"==n||null==e||Io(e)||(x.test(e)||!g.test(e)||null!=t&&e in Object(t))}}function Pr(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||ht)}function Ar(e){return e==e&&!ko(e)}function Rr(t,n){return function(e){return null!=e&&(e[t]===n&&(n!==E||t in Object(e)))}}function Nr(i,a,s){return a=Lt(a===E?i.length-1:a,0),function(){for(var e=arguments,t=-1,n=Lt(e.length-a,0),r=Array(n);++t<n;)r[t]=e[a+t];t=-1;for(var o=Array(a+1);++t<a;)o[t]=e[t];return o[a]=s(r),Ve(i,this,o)}}function Dr(e,t){return t.length<2?e:Nn(e,function(e,t,n){var r=-1,o=e.length;t<0&&(t=o<-t?0:o+t),(n=o<n?o:n)<0&&(n+=o),o=n<t?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}(t,0,-1))}function Mr(e,t){if((\"constructor\"!==t||\"function\"!=typeof e[t])&&\"__proto__\"!=t)return e[t]}($t&&jr(new $t(new ArrayBuffer(1)))!=X||Ut&&jr(new Ut)!=q||zt&&jr(zt.resolve())!=f||Wt&&jr(new Wt)!=z||Vt&&jr(new Vt)!=v)&&(jr=function(e){var t=Mn(e),n=t==$?e.constructor:E,r=n?zr(n):\"\";if(r)switch(r){case Gt:return X;case Zt:return q;case Jt:return f;case Yt:return z;case en:return v}return t});var Fr=Hr(Jn),Lr=Hr(Yn);function Hr(n){var r=0,o=0;return function(){var e=qt(),t=16-(e-o);if(o=e,0<t){if(800<=++r)return arguments[0]}else r=0;return n.apply(E,arguments)}}var qr,Br,$r=(Br=(qr=po(function(e){var o=[];return 46===e.charCodeAt(0)&&o.push(\"\"),e.replace(oe,function(e,t,n,r){o.push(n?r.replace(ce,\"$1\"):t||e)}),o},function(e){return 500===Br.size&&Br.clear(),e})).cache,qr);function Ur(e){if(\"string\"==typeof e||Io(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-o?\"-0\":t}function zr(e){if(null!=e){try{return gt.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}function Wr(e){if(e instanceof ln)return e.clone();var t=new cn(e.__wrapped__,e.__chain__);return t.__actions__=ur(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function Vr(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:Ro(n);return o<0&&(o=Lt(r+o,0)),nt(e,br(t,3),o)}function Kr(e){return(null==e?0:e.length)?In(e,1):[]}function Xr(e){return e&&e.length?e[0]:E}var Qr=Zn(function(e){var t=Ye(e,rr);return t.length&&t[0]===e[0]?function(e,t,n){for(var r=n?Je:Ze,o=e[0].length,i=e.length,a=i,s=Array(i),u=1/0,c=[];a--;){var l=e[a];a&&t&&(l=Ye(l,it(t))),u=Ht(l.length,u),s[a]=!n&&(t||120<=o&&120<=l.length)?new hn(a&&l):E}l=e[0];var f=-1,p=s[0];e:for(;++f<o&&c.length<u;){var d=l[f],h=t?t(d):d,d=n||0!==d?d:0;if(!(p?at(p,h):r(c,h,n))){for(a=i;--a;){var v=s[a];if(!(v?at(v,h):r(e[a],h,n)))continue e}p&&p.push(h),c.push(d)}}return c}(t):[]});function Gr(e){var t=null==e?0:e.length;return t?e[t-1]:E}function Zr(e){return null==e?e:Bt.call(e)}var Jr=Zn(function(e){return tr(In(e,1,_o,!0))});var Yr=Zn(function(e,t){return _o(e)?function(e,t,n,r){var o=-1,i=Ze,a=!0,s=e.length,u=[],c=t.length;if(!s)return u;n&&(t=Ye(t,it(n))),r?(i=Je,a=!1):t.length>=d&&(i=at,a=!1,t=new hn(t));e:for(;++o<s;){var l=e[o],f=null==n?l:n(l),l=r||0!==l?l:0;if(a&&f==f){for(var p=c;p--;)if(t[p]===f)continue e;u.push(l)}else i(t,f,r)||u.push(l)}return u}(e,t):[]});function eo(e){var t=on(e);return t.__chain__=!0,t}function to(e,t){return t(e)}gr(function(t){function e(e){return function(e,t){for(var n=-1,r=t.length,o=Array(r),i=null==e;++n<r;)o[n]=i?E:Lo(e,t[n]);return o}(e,t)}var n=t.length,r=n?t[0]:0,o=this.__wrapped__;return!(1<n||this.__actions__.length)&&o instanceof ln&&Tr(r)?((o=o.slice(r,+r+(n?1:0))).__actions__.push({func:to,args:[e],thisArg:E}),new cn(o,this.__chain__).thru(function(e){return n&&!e.length&&e.push(E),e})):this.thru(e)});var no,ro=(no=Vr,function(e,t,n){var r,o=Object(e);yo(e)||(r=br(t,3),e=Bo(e),t=function(e){return r(o[e],e,o)});var i=no(e,t,n);return-1<i?o[r?e[i]:i]:E});function oo(e,t){return(mo(e)?Xe:jn)(e,br(t,3))}var io,ao,so=(io=function(e,t,n){mt.call(e,n)?e[n].push(t):wn(e,n,[t])},function(e,t){var n=mo(e)?Ke:bn,r=ao?ao():{};return n(e,io,br(t,2),r)});var uo=Zn(function(e,t){if(null==e)return[];var n=t.length;return 1<n&&Ir(e,t[0],t[1])?t=[]:2<n&&Ir(t[0],t[1],t[2])&&(t=[t[0]]),Qn(e,In(t,1),[])}),co=function(){return Fe.Date.now()};function lo(r,o,e){var i,a,s,u,c,l,f=0,p=!1,d=!1,t=!0;if(\"function\"!=typeof r)throw new TypeError(y);function h(e){var t=i,n=a;return i=a=E,f=e,u=r.apply(n,t)}function v(e){var t=e-l;return l===E||o<=t||t<0||d&&s<=e-f}function g(){var e,t,n=co();if(v(n))return m(n);c=setTimeout(g,(t=o-((e=n)-l),d?Ht(t,s-(e-f)):t))}function m(e){return c=E,t&&i?h(e):(i=a=E,u)}function n(){var e,t=co(),n=v(t);if(i=arguments,a=this,l=t,n){if(c===E)return f=e=l,c=setTimeout(g,o),p?h(e):u;if(d)return clearTimeout(c),c=setTimeout(g,o),h(l)}return c===E&&(c=setTimeout(g,o)),u}return o=No(o)||0,ko(e)&&(p=!!e.leading,s=(d=\"maxWait\"in e)?Lt(No(e.maxWait)||0,o):s,t=\"trailing\"in e?!!e.trailing:t),n.cancel=function(){c!==E&&clearTimeout(c),f=0,i=l=a=c=E},n.flush=function(){return c===E?u:m(co())},n}var fo=Zn(function(e,t,n){return function(e,t,n){if(\"function\"!=typeof e)throw new TypeError(y);return setTimeout(function(){e.apply(E,n)},t)}(e,No(t)||0,n)});function po(o,i){if(\"function\"!=typeof o||null!=i&&\"function\"!=typeof i)throw new TypeError(y);var a=function(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);var r=o.apply(this,e);return a.cache=n.set(t,r)||n,r};return a.cache=new(po.Cache||dn),a}function ho(t){if(\"function\"!=typeof t)throw new TypeError(y);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function vo(e,t){return e===t||e!=e&&t!=t}po.Cache=dn;var go=qn(function(){return arguments}())?qn:function(e){return Oo(e)&&mt.call(e,\"callee\")&&!Tt.call(e,\"callee\")},mo=Array.isArray;function yo(e){return null!=e&&xo(e.length)&&!wo(e)}function _o(e){return Oo(e)&&yo(e)}var bo=Mt||ri;function wo(e){if(!ko(e))return!1;var t=Mn(e);return t==L||t==H||t==c||t==p}function xo(e){return\"number\"==typeof e&&-1<e&&e%1==0&&e<=i}function ko(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function Oo(e){return null!=e&&\"object\"==typeof e}var jo=Ue?it(Ue):function(e){return Oo(e)&&jr(e)==q};function Eo(e){if(!Oo(e)||Mn(e)!=$)return!1;var t=Et(e);if(null===t)return!0;var n=mt.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&gt.call(n)==bt}var Co=ze?it(ze):function(e){return Oo(e)&&jr(e)==z};function To(e){return\"string\"==typeof e||!mo(e)&&Oo(e)&&Mn(e)==W}function Io(e){return\"symbol\"==typeof e||Oo(e)&&Mn(e)==V}var So=We?it(We):function(e){return Oo(e)&&xo(e.length)&&!!Ae[Mn(e)]};function Po(e){if(!e)return[];if(yo(e))return(To(e)?lt:ur)(e);if(Pt&&e[Pt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Pt]());var t=jr(e);return(t==q?st:t==z?ct:Vo)(e)}function Ao(e){return e?(e=No(e))!==o&&e!==-o?e==e?e:0:(e<0?-1:1)*a:0===e?e:0}function Ro(e){var t=Ao(e),n=t%1;return t==t?n?t-n:t:0}function No(e){if(\"number\"==typeof e)return e;if(Io(e))return s;var t;if(ko(e)&&(e=ko(t=\"function\"==typeof e.valueOf?e.valueOf():e)?t+\"\":t),\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(ie,\"\");var n=pe.test(e);return n||he.test(e)?Ne(e.slice(2),n?2:8):fe.test(e)?s:+e}function Do(e){return cr(e,$o(e))}function Mo(e){return null==e?\"\":er(e)}var Fo=lr(function(e,t){cr(t,$o(t),e)});function Lo(e,t,n){var r=null==e?E:Nn(e,t);return r===E?n:r}function Ho(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=or(t,e)).length,i=!1;++r<o;){var a=Ur(t[r]);if(!(i=null!=e&&n(e,a)))break;e=e[a]}return i||++r!=o?i:!!(o=null==e?0:e.length)&&xo(o)&&Tr(a,o)&&(mo(e)||go(e))}(e,t,Ln)}var qo=Zn(Hn);function Bo(e){return(yo(e)?gn:zn)(e)}function $o(e){return yo(e)?gn(e,!0):Wn(e)}var Uo=lr(function(e,t,n){Xn(e,t,n)}),zo=gr(function(t,e){var n={};if(null==t)return n;var r=!1;e=Ye(e,function(e){return e=or(e,t),r=r||1<e.length,e}),cr(t,yr(t),n),r&&(n=xn(n,k|O|j,hr));for(var o,i,a=e.length;a--;)o=n,i=e[a],null==(o=Dr(o,i=or(i,o)))||delete o[Ur(Gr(i))];return n}),Wo=gr(function(e,t){return null==e?{}:Gn(e,t)});function Vo(e){return null==e?[]:Ye(Bo(t=e),function(e){return t[e]});var t}function Ko(e){return function(){return e}}function Xo(e){return e}function Qo(e){return Un(\"function\"==typeof e?e:xn(e,k))}function Go(r,t,e){var n=Bo(t),o=Rn(t,n);null!=e||ko(t)&&(o.length||!n.length)||(e=t,t=r,r=this,o=Rn(t,Bo(t)));var i=!(ko(e)&&\"chain\"in e&&!e.chain),a=wo(r);return Xe(o,function(e){var n=t[e];r[e]=n,a&&(r.prototype[e]=function(){var e=this.__chain__;if(i||e){var t=r(this.__wrapped__);return(t.__actions__=ur(this.__actions__)).push({func:n,args:arguments,thisArg:r}),t.__chain__=e,t}return n.apply(r,et([this.value()],arguments))})}),r}function Zo(){}function Jo(e){return Sr(e)?(n=Ur(e),function(e){return null==e?E:e[n]}):(t=e,function(e){return Nn(e,t)});var t,n}function Yo(e,t,n){return n&&\"number\"!=typeof n&&Ir(e,t,n)&&(t=n=E),e=Ao(e),t===E?(t=e,e=0):t=Ao(t),function(e,t,n,r){for(var o=-1,i=Lt(Nt((t-e)/(n||1)),0),a=Array(i);i--;)a[r?i:++o]=e,e+=n;return a}(e,t,n=n===E?e<t?1:-1:Ao(n),ei)}var ei,ti;function ni(){return[]}function ri(){return!1}on.assignIn=Fo,on.chain=eo,on.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,o=[];++t<n;){var i=e[t];i&&(o[r++]=i)}return o},on.constant=Ko,on.debounce=lo,on.delay=fo,on.filter=function(e,t){return(mo(e)?Ge:Tn)(e,br(t,3))},on.flatten=Kr,on.groupBy=so,on.intersection=Qr,on.iteratee=Qo,on.keys=Bo,on.keysIn=$o,on.map=function(e,t){return(mo(e)?Ye:Kn)(e,br(t,3))},on.memoize=po,on.merge=Uo,on.mixin=Go,on.negate=ho,on.omit=zo,on.pick=Wo,on.property=Jo,on.range=Yo,on.reject=function(e,t){return(mo(e)?Ge:Tn)(e,ho(br(t,3)))},on.reverse=Zr,on.sortBy=uo,on.tap=function(e,t){return t(e),e},on.throttle=function(e,t,n){var r=!0,o=!0;if(\"function\"!=typeof e)throw new TypeError(y);return ko(n)&&(r=\"leading\"in n?!!n.leading:r,o=\"trailing\"in n?!!n.trailing:o),lo(e,t,{leading:r,maxWait:t,trailing:o})},on.thru=to,on.toArray=Po,on.toPlainObject=Do,on.union=Jr,on.uniq=function(e){return e&&e.length?tr(e):[]},on.values=Vo,on.without=Yr,on.extend=Fo,Go(on,on),on.clone=function(e){return xn(e,j)},on.eq=vo,on.every=function(e,t,n){var r=mo(e)?Qe:En;return n&&Ir(e,t,n)&&(t=E),r(e,br(t,3))},on.find=ro,on.findIndex=Vr,on.forEach=oo,on.get=Lo,on.hasIn=Ho,on.head=Xr,on.identity=Xo,on.invoke=qo,on.isArguments=go,on.isArray=mo,on.isArrayLike=yo,on.isArrayLikeObject=_o,on.isBuffer=bo,on.isEmpty=function(e){if(null==e)return!0;if(yo(e)&&(mo(e)||\"string\"==typeof e||\"function\"==typeof e.splice||bo(e)||So(e)||go(e)))return!e.length;var t=jr(e);if(t==q||t==z)return!e.size;if(Pr(e))return!zn(e).length;for(var n in e)if(mt.call(e,n))return!1;return!0},on.isEqual=function(e,t){return Bn(e,t)},on.isFunction=wo,on.isLength=xo,on.isMap=jo,on.isObject=ko,on.isObjectLike=Oo,on.isPlainObject=Eo,on.isSet=Co,on.isString=To,on.isSymbol=Io,on.isTypedArray=So,on.last=Gr,on.max=function(e){return e&&e.length?Cn(e,Xo,Fn):E},on.min=function(e){return e&&e.length?Cn(e,Xo,Vn):E},on.stubArray=ni,on.stubFalse=ri,on.noop=Zo,on.now=co,on.reduce=function(e,t,n){var r=mo(e)?tt:ot,o=arguments.length<3;return r(e,br(t,4),n,o,jn)},on.toFinite=Ao,on.toInteger=Ro,on.toNumber=No,on.toString=Mo,on.each=oo,on.first=Xr,Go(on,(ti={},An(on,function(e,t){mt.call(on.prototype,t)||(ti[t]=e)}),ti),{chain:!1}),on.VERSION=\"4.17.15\",Xe([\"drop\",\"take\"],function(n,r){ln.prototype[n]=function(e){e=e===E?1:Lt(Ro(e),0);var t=this.__filtered__&&!r?new ln(this):this.clone();return t.__filtered__?t.__takeCount__=Ht(e,t.__takeCount__):t.__views__.push({size:Ht(e,u),type:n+(t.__dir__<0?\"Right\":\"\")}),t},ln.prototype[n+\"Right\"]=function(e){return this.reverse()[n](e).reverse()}}),Xe([\"filter\",\"map\",\"takeWhile\"],function(e,t){var n=t+1,r=1==n||3==n;ln.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:br(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Xe([\"head\",\"last\"],function(e,t){var n=\"take\"+(t?\"Right\":\"\");ln.prototype[e]=function(){return this[n](1).value()[0]}}),Xe([\"initial\",\"tail\"],function(e,t){var n=\"drop\"+(t?\"\":\"Right\");ln.prototype[e]=function(){return this.__filtered__?new ln(this):this[n](1)}}),ln.prototype.compact=function(){return this.filter(Xo)},ln.prototype.find=function(e){return this.filter(e).head()},ln.prototype.findLast=function(e){return this.reverse().find(e)},ln.prototype.invokeMap=Zn(function(t,n){return\"function\"==typeof t?new ln(this):this.map(function(e){return Hn(e,t,n)})}),ln.prototype.reject=function(e){return this.filter(ho(br(e)))},ln.prototype.slice=function(e,t){e=Ro(e);var n=this;return n.__filtered__&&(0<e||t<0)?new ln(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==E&&(n=(t=Ro(t))<0?n.dropRight(-t):n.take(t-e)),n)},ln.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},ln.prototype.toArray=function(){return this.take(u)},An(ln.prototype,function(f,e){var p=/^(?:filter|find|map|reject)|While$/.test(e),d=/^(?:head|last)$/.test(e),h=on[d?\"take\"+(\"last\"==e?\"Right\":\"\"):e],v=d||/^find/.test(e);h&&(on.prototype[e]=function(){function e(e){var t=h.apply(on,et([e],n));return d&&a?t[0]:t}var t=this.__wrapped__,n=d?[1]:arguments,r=t instanceof ln,o=n[0],i=r||mo(t);i&&p&&\"function\"==typeof o&&1!=o.length&&(r=i=!1);var a=this.__chain__,s=!!this.__actions__.length,u=v&&!a,c=r&&!s;if(v||!i)return u&&c?f.apply(this,n):(l=this.thru(e),u?d?l.value()[0]:l.value():l);t=c?t:new ln(this);var l=f.apply(t,n);return l.__actions__.push({func:to,args:[e],thisArg:E}),new cn(l,a)})}),Xe([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(e){var n=pt[e],r=/^(?:push|sort|unshift)$/.test(e)?\"tap\":\"thru\",o=/^(?:pop|shift)$/.test(e);on.prototype[e]=function(){var t=arguments;if(!o||this.__chain__)return this[r](function(e){return n.apply(mo(e)?e:[],t)});var e=this.value();return n.apply(mo(e)?e:[],t)}}),An(ln.prototype,function(e,t){var n,r=on[t];r&&(n=r.name+\"\",mt.call(Qt,n)||(Qt[n]=[]),Qt[n].push({name:t,func:r}))}),Qt[pr(E,I).name]=[{name:\"wrapper\",func:E}],ln.prototype.clone=function(){var e=new ln(this.__wrapped__);return e.__actions__=ur(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=ur(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=ur(this.__views__),e},ln.prototype.reverse=function(){var e;return this.__filtered__?((e=new ln(this)).__dir__=-1,e.__filtered__=!0):(e=this.clone()).__dir__*=-1,e},ln.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=mo(e),r=t<0,o=n?e.length:0,i=function(e,t,n){var r=-1,o=n.length;for(;++r<o;){var i=n[r],a=i.size;switch(i.type){case\"drop\":e+=a;break;case\"dropRight\":t-=a;break;case\"take\":t=Ht(t,e+a);break;case\"takeRight\":e=Lt(e,t-a)}}return{start:e,end:t}}(0,o,this.__views__),a=i.start,s=i.end,u=s-a,c=r?s:a-1,l=this.__iteratees__,f=l.length,p=0,d=Ht(u,this.__takeCount__);if(!n||!r&&o==u&&d==u)return nr(e,this.__actions__);var h=[];e:for(;u--&&p<d;){for(var v=-1,g=e[c+=t];++v<f;){var m=l[v],y=m.iteratee,_=m.type,b=y(g);if(2==_)g=b;else if(!b){if(1==_)continue e;break e}}h[p++]=g}return h},on.prototype.chain=function(){return eo(this)},on.prototype.commit=function(){return new cn(this.value(),this.__chain__)},on.prototype.next=function(){this.__values__===E&&(this.__values__=Po(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?E:this.__values__[this.__index__++]}},on.prototype.plant=function(e){for(var t,n=this;n instanceof un;){var r=Wr(n);r.__index__=0,r.__values__=E,t?o.__wrapped__=r:t=r;var o=r,n=n.__wrapped__}return o.__wrapped__=e,t},on.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof ln){var t=e;return this.__actions__.length&&(t=new ln(this)),(t=t.reverse()).__actions__.push({func:to,args:[Zr],thisArg:E}),new cn(t,this.__chain__)}return this.thru(Zr)},on.prototype.toJSON=on.prototype.valueOf=on.prototype.value=function(){return nr(this.__wrapped__,this.__actions__)},on.prototype.first=on.prototype.head,Pt&&(on.prototype[Pt]=function(){return this}),\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd?(Fe._=on,define(function(){return on})):He?((He.exports=on)._=on,Le._=on):Fe._=on}.call(this),function(e,r){if(e){for(var o,i={8:\"backspace\",9:\"tab\",13:\"enter\",16:\"shift\",17:\"ctrl\",18:\"alt\",20:\"capslock\",27:\"esc\",32:\"space\",33:\"pageup\",34:\"pagedown\",35:\"end\",36:\"home\",37:\"left\",38:\"up\",39:\"right\",40:\"down\",45:\"ins\",46:\"del\",91:\"meta\",93:\"meta\",224:\"meta\"},n={106:\"*\",107:\"+\",109:\"-\",110:\".\",111:\"/\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"},s={\"~\":\"`\",\"!\":\"1\",\"@\":\"2\",\"#\":\"3\",$:\"4\",\"%\":\"5\",\"^\":\"6\",\"&\":\"7\",\"*\":\"8\",\"(\":\"9\",\")\":\"0\",_:\"-\",\"+\":\"=\",\":\":\";\",'\"':\"'\",\"<\":\",\",\">\":\".\",\"?\":\"/\",\"|\":\"\\\\\"},u={option:\"alt\",command:\"meta\",return:\"enter\",escape:\"esc\",plus:\"+\",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?\"meta\":\"ctrl\"},t=1;t<20;++t)i[111+t]=\"f\"+t;for(t=0;t<=9;++t)i[t+96]=t.toString();w.prototype.bind=function(e,t,n){return e=e instanceof Array?e:[e],this._bindMultiple.call(this,e,t,n),this},w.prototype.unbind=function(e,t){return this.bind.call(this,e,function(){},t)},w.prototype.trigger=function(e,t){return this._directMap[e+\":\"+t]&&this._directMap[e+\":\"+t]({},e),this},w.prototype.reset=function(){return this._callbacks={},this._directMap={},this},w.prototype.stopCallback=function(e,t){var n;return!(-1<(\" \"+t.className+\" \").indexOf(\" mousetrap \"))&&(!function e(t,n){return null!==t&&t!==r&&(t===n||e(t.parentNode,n))}(t,this.target)&&(\"composedPath\"in e&&\"function\"==typeof e.composedPath&&((n=e.composedPath()[0])!==e.target&&(t=n)),\"INPUT\"==t.tagName||\"SELECT\"==t.tagName||\"TEXTAREA\"==t.tagName||t.isContentEditable))},w.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)},w.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(i[t]=e[t]);o=null},(w.init=function(){var t=w(r);for(var e in t)\"_\"!==e.charAt(0)&&(w[e]=function(e){return function(){return t[e].apply(t,arguments)}}(e))})(),e.Mousetrap=w,\"undefined\"!=typeof module&&module.exports&&(module.exports=w),\"function\"==typeof define&&define.amd&&define(function(){return w})}function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent(\"on\"+t,n)}function y(e){if(\"keypress\"!=e.type)return i[e.which]?i[e.which]:n[e.which]?n[e.which]:String.fromCharCode(e.which).toLowerCase();var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}function _(e){return\"shift\"==e||\"ctrl\"==e||\"alt\"==e||\"meta\"==e}function c(e,t,n){return\"keypress\"==(n=n||(function(){if(!o)for(var e in o={},i)95<e&&e<112||i.hasOwnProperty(e)&&(o[i[e]]=e);return o}()[e]?\"keydown\":\"keypress\"))&&t.length&&(n=\"keydown\"),n}function b(e,t){for(var n,r,o=[],i=\"+\"===(r=e)?[\"+\"]:(r=r.replace(/\\+{2}/g,\"+plus\")).split(\"+\"),a=0;a<i.length;++a)n=i[a],u[n]&&(n=u[n]),t&&\"keypress\"!=t&&s[n]&&(n=s[n],o.push(\"shift\")),_(n)&&o.push(n);return{key:n,modifiers:o,action:t=c(n,o,t)}}function w(e){var h=this;if(e=e||r,!(h instanceof w))return new w(e);h.target=e,h._callbacks={},h._directMap={};var u,v={},c=!1,l=!1,f=!1;function p(e){e=e||{};var t,n=!1;for(t in v)e[t]?n=!0:v[t]=0;n||(f=!1)}function d(e,t,n,r,o,i){var a,s,u,c=[],l=n.type;if(!h._callbacks[e])return[];for(\"keyup\"==l&&_(e)&&(t=[e]),a=0;a<h._callbacks[e].length;++a){var f,p,d=h._callbacks[e][a];!r&&d.seq&&v[d.seq]!=d.level||l==d.action&&((\"keypress\"!=l||n.metaKey||n.altKey||n.ctrlKey)&&(s=t,u=d.modifiers,s.sort().join(\",\")!==u.sort().join(\",\"))||(f=!r&&d.combo==o,p=r&&d.seq==r&&d.level==i,(f||p)&&h._callbacks[e].splice(a,1),c.push(d)))}return c}function g(e,t,n,r){var o,i;h.stopCallback(t,t.target||t.srcElement,n,r)||!1===e(t,n)&&((i=t).preventDefault?i.preventDefault():i.returnValue=!1,(o=t).stopPropagation?o.stopPropagation():o.cancelBubble=!0)}function t(e){\"number\"!=typeof e.which&&(e.which=e.keyCode);var t,n,r=y(e);r&&(\"keyup\"!=e.type||c!==r?h.handleKey(r,(n=[],(t=e).shiftKey&&n.push(\"shift\"),t.altKey&&n.push(\"alt\"),t.ctrlKey&&n.push(\"ctrl\"),t.metaKey&&n.push(\"meta\"),n),e):c=!1)}function s(t,e,n,r){function o(e){return function(){f=e,++v[t],clearTimeout(u),u=setTimeout(p,1e3)}}function i(e){g(n,e,t),\"keyup\"!==r&&(c=y(e)),setTimeout(p,10)}for(var a=v[t]=0;a<e.length;++a){var s=a+1===e.length?i:o(r||b(e[a+1]).action);m(e[a],s,r,t,a)}}function m(e,t,n,r,o){h._directMap[e+\":\"+n]=t;var i,a=(e=e.replace(/\\s+/g,\" \")).split(\" \");1<a.length?s(e,a,t,n):(i=b(e,n),h._callbacks[i.key]=h._callbacks[i.key]||[],d(i.key,i.modifiers,{type:i.action},r,e,o),h._callbacks[i.key][r?\"unshift\":\"push\"]({callback:t,modifiers:i.modifiers,action:i.action,seq:r,level:o,combo:e}))}h._handleKey=function(e,t,n){for(var r=d(e,t,n),o={},i=0,a=!1,s=0;s<r.length;++s)r[s].seq&&(i=Math.max(i,r[s].level));for(s=0;s<r.length;++s)if(r[s].seq){if(r[s].level!=i)continue;a=!0,o[r[s].seq]=1,g(r[s].callback,n,r[s].combo,r[s].seq)}else a||g(r[s].callback,n,r[s].combo);var u=\"keypress\"==n.type&&l;n.type!=f||_(e)||u||p(o),l=a&&\"keydown\"==n.type},h._bindMultiple=function(e,t,n){for(var r=0;r<e.length;++r)m(e[r],t,n)},a(e,\"keypress\",t),a(e,\"keydown\",t),a(e,\"keyup\",t)}}(\"undefined\"!=typeof window?window:null,\"undefined\"!=typeof window?document:null),function(e){var o={},i=e.prototype.stopCallback;e.prototype.stopCallback=function(e,t,n,r){return!!this.paused||!o[n]&&!o[r]&&i.call(this,e,t,n)},e.prototype.bindGlobal=function(e,t,n){if(this.bind(e,t,n),e instanceof Array)for(var r=0;r<e.length;r++)o[e[r]]=!0;else o[e]=!0},e.init()}(Mousetrap),function(e){\"use strict\";var n,t,r,o={},i=\"undefined\"!=typeof window?window:{},a=i.MutationObserver||i.WebKitMutationObserver;\"undefined\"!=typeof process&&\"[object process]\"==={}.toString.call(process)?o.async=function(e,t){process.nextTick(function(){e.call(t)})}:a?(n=[],t=new a(function(){var e=n.slice();n=[],e.forEach(function(e){var t=e[0],n=e[1];t.call(n)})}),r=document.createElement(\"div\"),t.observe(r,{attributes:!0}),window.addEventListener(\"unload\",function(){t.disconnect(),t=null}),o.async=function(e,t){n.push([e,t]),r.setAttribute(\"drainQueue\",\"drainQueue\")}):o.async=function(e,t){setTimeout(function(){e.call(t)},1)};function c(e,t){for(var n in this.type=e,t)t.hasOwnProperty(n)&&(this[n]=t[n])}function s(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n][0]===t)return n;return-1}function l(e){return e._promiseCallbacks||(e._promiseCallbacks={})}function u(){this.on(\"promise:resolved\",function(e){this.trigger(\"success\",{detail:e.detail})},this),this.on(\"promise:failed\",function(e){this.trigger(\"error\",{detail:e.detail})},this)}function f(){}function p(e,t,n,r){var o,i,a,s,u=\"function\"==typeof n;if(u)try{o=n(r.detail),a=!0}catch(e){s=!0,i=e}else o=r.detail,a=!0;o&&\"function\"==typeof o.then?o.then(function(e){t.resolve(e)},function(e){t.reject(e)}):u&&a?t.resolve(o):s?t.reject(i):t[e](o)}var d={mixin:function(e){return e.on=this.on,e.off=this.off,e.trigger=this.trigger,e},on:function(e,t,n){var r,o,i=l(this);for(e=e.split(/\\s+/),n=n||this;o=e.shift();)r=(r=i[o])||(i[o]=[]),-1===s(r,t)&&r.push([t,n])},off:function(e,t){var n,r,o,i=l(this);for(e=e.split(/\\s+/);r=e.shift();)t?(n=i[r],-1!==(o=s(n,t))&&n.splice(o,1)):i[r]=[]},trigger:function(e,t){var n,r,o,i,a;if(n=l(this)[e])for(var s=0,u=n.length;s<u;s++)o=(r=n[s])[0],i=r[1],\"object\"!=typeof t&&(t={detail:t}),a=new c(e,t),o.call(i,a)}};u.prototype={then:function(t,n){var r=new u;return this.isResolved&&o.async(function(){p(\"resolve\",r,t,{detail:this.resolvedValue})},this),this.isRejected&&o.async(function(){p(\"reject\",r,n,{detail:this.rejectedValue})},this),this.on(\"promise:resolved\",function(e){p(\"resolve\",r,t,e)}),this.on(\"promise:failed\",function(e){p(\"reject\",r,n,e)}),r},resolve:function(e){var t,n;t=this,n=e,o.async(function(){t.trigger(\"promise:resolved\",{detail:n}),t.isResolved=!0,t.resolvedValue=n}),this.resolve=f,this.reject=f},reject:function(e){var t,n;t=this,n=e,o.async(function(){t.trigger(\"promise:failed\",{detail:n}),t.isRejected=!0,t.rejectedValue=n}),this.resolve=f,this.reject=f}},d.mixin(u.prototype),e.Promise=u,e.Event=c,e.EventTarget=d,e.all=function(e){var n=[],r=new u,o=e.length;0===o&&r.resolve([]);for(var i=function(e,t){n[e]=t,0==--o&&r.resolve(n)},t=function(e){r.reject(e)},a=0;a<o;a++)e[a].then(function(t){return function(e){i(t,e)}}(a),t);return r},e.configure=function(e,t){o[e]=t}}(window.RSVP={}),function(s){s.fn.showHtml=function(o,i,a){return this.each(function(){var e=s(this),t={width:this.style.width,height:this.style.height},n={width:e.width()+\"px\",height:e.height()+\"px\"};e.html(o);var r={width:e.width()+\"px\",height:e.height()+\"px\"};e.css(n).animate(r,i,function(){e.css(t),s.isFunction(a)&&a()})})}}(jQuery),function(e){\"use strict\";var t=e.Ember,i=t.get,r=t.set,o=t.Mixin.create({buffer:null,hasBufferedChanges:!1,unknownProperty:function(e){var t=this.buffer;return t&&t.hasOwnProperty(e)?t[e]:this._super(e)},setUnknownProperty:function(e,t){this.buffer||(this.buffer={});var n=this.buffer,r=this.get(\"content\"),o=r&&i(r,e);if((n.hasOwnProperty(e)?n[e]:o)!==t)return o===t?(delete n[e],function(e){var t;for(t in e)if(e.hasOwnProperty(t))return;return 1}(n)&&this.set(\"hasBufferedChanges\",!1)):(n[e]=t,this.set(\"hasBufferedChanges\",!0)),this.notifyPropertyChange(e),t},applyBufferedChanges:function(){var e,t=this.buffer,n=this.get(\"content\");for(e in t)t.hasOwnProperty(e)&&r(n,e,t[e]);this.buffer={},this.set(\"hasBufferedChanges\",!1)},discardBufferedChanges:function(){var e,t=this.buffer;this.get(\"content\");for(e in t)t.hasOwnProperty(e)&&(delete t[e],this.notifyPropertyChange(e));this.set(\"hasBufferedChanges\",!1)}});\"undefined\"!=typeof module&&module.exports?module.exports=o:\"function\"==typeof define&&define.amd?define(\"buffered-proxy\",function(e,t,n){return o}):e.BufferedProxy=o}(this),function(c){var s,u={},l=!1,f={ellipsis:\"...\",setTitle:\"never\",live:!1};function p(e,r){var o=(e.data(\"jqae\")||{}).wrapperElement;o||(o=e.wrapInner(\"<div/>\").find(\">div\")).css({margin:0,padding:0,border:0});var t=o.data(\"jqae\"),n=(t=t||{}).originalContent;n?o=t.originalContent.clone(!0).data(\"jqae\",{originalContent:n}).replaceAll(o):o.data(\"jqae\",{originalContent:o.clone(!0)}),e.data(\"jqae\",{wrapperElement:o,containerWidth:e.width(),containerHeight:e.height()});var i=e.height(),a=(parseInt(e.css(\"padding-top\"),10)||0)+(parseInt(e.css(\"border-top-width\"),10)||0)-(o.offset().top-e.offset().top),s=!1,u=o;r.selector&&(u=c(o.find(r.selector).get().reverse())),u.each(function(){var e=c(this),t=e.text(),n=!1;if(o.innerHeight()-e.innerHeight()>i+a)e.remove();else if(h(e),e.contents().length){for(s&&(d(e).get(0).nodeValue+=r.ellipsis,s=!1);o.innerHeight()>i+a;){if(!(n=function(e){var t=d(e);if(t.length){var n=t.get(0).nodeValue,r=n.lastIndexOf(\" \");return-1<r?(n=c.trim(n.substring(0,r)),t.get(0).nodeValue=n):t.get(0).nodeValue=\"\",!0}return!1}(e))){s=!0,e.remove();break}if(h(e),!e.contents().length){s=!0,e.remove();break}d(e).get(0).nodeValue+=r.ellipsis}\"onEllipsis\"==r.setTitle&&n||\"always\"==r.setTitle?e.attr(\"title\",t):\"never\"!=r.setTitle&&e.removeAttr(\"title\")}})}function d(e){if(e.contents().length){var t=(n=e.contents()).eq(n.length-1);return t.filter(o).length?t:d(t)}var n;return e.append(\"\"),(n=e.contents()).eq(n.length-1)}function h(e){if(e.contents().length){var t=e.contents(),n=t.eq(t.length-1);if(n.filter(o).length){var r=n.get(0).nodeValue;return\"\"==(r=c.trim(r))&&(n.remove(),1)}for(;h(n););return!n.contents().length&&(n.remove(),1)}}function o(){return 3===this.nodeType}c.fn.ellipsis=function(e,t){var n,r,o,i,a=c(this);return\"string\"!=typeof e&&(t=e,e=void 0),(n=c.extend({},f,t)).selector=e,a.each(function(){p(c(this),n)}),n.live?(o=a.selector,i=n,u[o]=i,s=s||window.setInterval(function(){!function(){if(!l){for(var n in l=!0,u)c(n).each(function(){var e=c(this),t=e.data(\"jqae\");t.containerWidth==e.width()&&t.containerHeight==e.height()||p(e,u[n])});l=!1}}()},200)):(r=a.selector,u[r]&&(delete u[r],u.length||s&&(window.clearInterval(s),s=void 0))),this}}(jQuery),function(e){var t;\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):(\"undefined\"!=typeof window?t=window:\"undefined\"!=typeof global?t=global:\"undefined\"!=typeof self&&(t=self),t.virtualDom=e())}(function(){return function i(a,s,u){function c(n,e){if(!s[n]){if(!a[n]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(n,!0);if(l)return l(n,!0);var r=new Error(\"Cannot find module '\"+n+\"'\");throw r.code=\"MODULE_NOT_FOUND\",r}var o=s[n]={exports:{}};a[n][0].call(o.exports,function(e){var t=a[n][1][e];return c(t||e)},o,o.exports,i,a,s,u)}return s[n].exports}for(var l=\"function\"==typeof require&&require,e=0;e<u.length;e++)c(u[e]);return c}({1:[function(e,t,n){var r=e(\"./vdom/create-element.js\");t.exports=r},{\"./vdom/create-element.js\":15}],2:[function(e,t,n){var r=e(\"./vtree/diff.js\");t.exports=r},{\"./vtree/diff.js\":35}],3:[function(e,t,n){var r=e(\"./virtual-hyperscript/index.js\");t.exports=r},{\"./virtual-hyperscript/index.js\":22}],4:[function(e,t,n){var r=e(\"./diff.js\"),o=e(\"./patch.js\"),i=e(\"./h.js\"),a=e(\"./create-element.js\"),s=e(\"./vnode/vnode.js\"),u=e(\"./vnode/vtext.js\");t.exports={diff:r,patch:o,h:i,create:a,VNode:s,VText:u}},{\"./create-element.js\":1,\"./diff.js\":2,\"./h.js\":3,\"./patch.js\":13,\"./vnode/vnode.js\":31,\"./vnode/vtext.js\":33}],5:[function(e,t,n){var l,f,p;t.exports=(f=String.prototype.split,p=/()??/.exec(\"\")[1]===l,function(e,t,n){if(\"[object RegExp]\"!==Object.prototype.toString.call(t))return f.call(e,t,n);var r,o,i,a,s=[],u=(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.extended?\"x\":\"\")+(t.sticky?\"y\":\"\"),c=0,t=new RegExp(t.source,u+\"g\");for(e+=\"\",p||(r=new RegExp(\"^\"+t.source+\"$(?!\\\\s)\",u)),n=n===l?-1>>>0:n>>>0;(o=t.exec(e))&&!(c<(i=o.index+o[0].length)&&(s.push(e.slice(c,o.index)),!p&&1<o.length&&o[0].replace(r,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===l&&(o[e]=l)}),1<o.length&&o.index<e.length&&Array.prototype.push.apply(s,o.slice(1)),a=o[0].length,c=i,s.length>=n));)t.lastIndex===o.index&&t.lastIndex++;return c===e.length?!a&&t.test(\"\")||s.push(\"\"):s.push(e.slice(c)),s.length>n?s.slice(0,n):s})},{}],6:[function(e,t,n){},{}],7:[function(e,t,n){\"use strict\";e(\"individual/one-version\")(\"ev-store\",\"7\");var r=\"__EV_STORE_KEY@7\";t.exports=function(e){var t=e[r];t=t||(e[r]={});return t}},{\"individual/one-version\":9}],8:[function(e,t,n){(function(e){\"use strict\";var n=\"undefined\"!=typeof window?window:void 0!==e?e:{};t.exports=function(e,t){if(e in n)return n[e];return n[e]=t}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],9:[function(e,t,n){\"use strict\";var i=e(\"./index.js\");t.exports=function(e,t,n){var r=\"__INDIVIDUAL_ONE_VERSION_\"+e,o=i(r+\"_ENFORCE_SINGLETON\",t);if(o===t)return i(r,n);throw new Error(\"Can only have one copy of \"+e+\".\\nYou already have version \"+o+\" installed.\\nThis means you cannot install version \"+t)}},{\"./index.js\":8}],10:[function(o,i,e){(function(e){var t,n=void 0!==e?e:\"undefined\"!=typeof window?window:{},r=o(\"min-document\");\"undefined\"!=typeof document?i.exports=document:(t=(t=n[\"__GLOBAL_DOCUMENT_CACHE@4\"])||(n[\"__GLOBAL_DOCUMENT_CACHE@4\"]=r),i.exports=t)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"min-document\":6}],11:[function(e,t,n){\"use strict\";t.exports=function(e){return\"object\"==typeof e&&null!==e}},{}],12:[function(e,t,n){var r=Array.isArray,o=Object.prototype.toString;t.exports=r||function(e){return\"[object Array]\"===o.call(e)}},{}],13:[function(e,t,n){var r=e(\"./vdom/patch.js\");t.exports=r},{\"./vdom/patch.js\":18}],14:[function(e,t,n){var l=e(\"is-object\"),s=e(\"../vnode/is-vhook.js\");function i(e,t,n,r){if(r){var o=r[t];if(s(o))o.unhook&&o.unhook(e,t,n);else if(\"attributes\"===t)for(var i in o)e.removeAttribute(i);else if(\"style\"===t)for(var a in o)e.style[a]=\"\";else e[t]=\"string\"==typeof o?\"\":null}}function f(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}t.exports=function(e,t,n){for(var r in t){var o=t[r];void 0===o?i(e,r,o,n):s(o)?(i(e,r,o,n),o.hook&&o.hook(e,r,n?n[r]:void 0)):l(o)?function(e,t,n,r){var o=t?t[n]:void 0;if(\"attributes\"===n){for(var i in r){var a=r[i];void 0===a?e.removeAttribute(i):e.setAttribute(i,a)}return}if(o&&l(o)&&f(o)!==f(r))return e[n]=r;l(e[n])||(e[n]={});var s=\"style\"===n?\"\":void 0;for(var u in r){var c=r[u];e[n][u]=void 0===c?s:c}}(e,n,r,o):e[r]=o}}},{\"../vnode/is-vhook.js\":26,\"is-object\":11}],15:[function(e,t,n){var l=e(\"global/document\"),f=e(\"./apply-properties\"),p=e(\"../vnode/is-vnode.js\"),d=e(\"../vnode/is-vtext.js\"),h=e(\"../vnode/is-widget.js\"),v=e(\"../vnode/handle-thunk.js\");t.exports=function e(t,n){var r=n&&n.document||l;var o=n?n.warn:null;t=v(t).a;{if(h(t))return t.init();if(d(t))return r.createTextNode(t.text);if(!p(t))return o&&o(\"Item is not a valid virtual dom node\",t),null}var i=null===t.namespace?r.createElement(t.tagName):r.createElementNS(t.namespace,t.tagName);var a=t.properties;f(i,a);var s=t.children;for(var u=0;u<s.length;u++){var c=e(s[u],n);c&&i.appendChild(c)}return i}},{\"../vnode/handle-thunk.js\":24,\"../vnode/is-vnode.js\":27,\"../vnode/is-vtext.js\":28,\"../vnode/is-widget.js\":29,\"./apply-properties\":14,\"global/document\":10}],16:[function(e,t,n){var f={};function p(e,t,n){if(0!==e.length)for(var r,o,i=0,a=e.length-1;i<=a;){if(o=e[r=(a+i)/2>>0],i===a)return t<=o&&o<=n;if(o<t)i=1+r;else{if(!(n<o))return 1;a=r-1}}}function o(e,t){return t<e?1:-1}t.exports=function(e,t,n,r){return n&&0!==n.length?(n.sort(o),function e(t,n,r,o,i){o=o||{};if(t){p(r,i,i)&&(o[i]=t);var a=n.children;if(a)for(var s=t.childNodes,u=0;u<n.children.length;u++){i+=1;var c=a[u]||f,l=i+(c.count||0);p(r,i,l)&&e(s[u],c,r,o,i),i=l}}return o}(e,t,n,r,0)):{}}},{}],17:[function(e,t,n){var a=e(\"./apply-properties\"),r=e(\"../vnode/is-widget.js\"),s=e(\"../vnode/vpatch.js\"),u=e(\"./update-widget\");function c(e,t){\"function\"==typeof t.destroy&&r(t)&&t.destroy(e)}t.exports=function(e,t,n){var r=e.type,o=e.vNode,i=e.patch;switch(r){case s.REMOVE:return function(e,t){var n=e.parentNode;n&&n.removeChild(e);return c(e,t),null}(t,o);case s.INSERT:return function(e,t,n){var r=n.render(t,n);e&&e.appendChild(r);return e}(t,i,n);case s.VTEXT:return function(e,t,n){var r;{var o;3===e.nodeType?(e.replaceData(0,e.length,t.text),r=e):(o=e.parentNode,r=n.render(t,n),o&&r!==e&&o.replaceChild(r,e))}return r}(t,i,n);case s.WIDGET:return function(e,t,n,r){var o,i=u(t,n);o=i?n.update(t,e)||e:r.render(n,r);var a=e.parentNode;a&&o!==e&&a.replaceChild(o,e);i||c(e,t);return o}(t,o,i,n);case s.VNODE:return function(e,t,n){var r=e.parentNode,o=n.render(t,n);r&&o!==e&&r.replaceChild(o,e);return o}(t,i,n);case s.ORDER:return function(e,t){for(var n,r,o,i=e.childNodes,a={},s=0;s<t.removes.length;s++)r=t.removes[s],n=i[r.from],r.key&&(a[r.key]=n),e.removeChild(n);for(var u=i.length,c=0;c<t.inserts.length;c++)o=t.inserts[c],n=a[o.key],e.insertBefore(n,o.to>=u++?null:i[o.to])}(t,i),t;case s.PROPS:return a(t,i,o.properties),t;case s.THUNK:return function(e,t){e&&t&&e!==t&&e.parentNode&&e.parentNode.replaceChild(t,e);return t}(t,n.patch(t,i,n));default:return t}}},{\"../vnode/is-widget.js\":29,\"../vnode/vpatch.js\":32,\"./apply-properties\":14,\"./update-widget\":19}],18:[function(e,t,n){var u=e(\"global/document\"),c=e(\"x-is-array\"),o=e(\"./create-element\"),l=e(\"./dom-index\"),f=e(\"./patch-op\");function i(e,t,n){var r=function(e){var t=[];for(var n in e)\"a\"!==n&&t.push(Number(n));return t}(t);if(0===r.length)return e;var o=l(e,t.a,r),i=e.ownerDocument;n.document||i===u||(n.document=i);for(var a=0;a<r.length;a++){var s=r[a];e=function(e,t,n,r){if(!t)return e;var o;if(c(n))for(var i=0;i<n.length;i++)o=f(n[i],t,r),t===e&&(e=o);else o=f(n,t,r),t===e&&(e=o);return e}(e,o[s],t[s],n)}return e}t.exports=function e(t,n,r){r=r||{};r.patch=r.patch&&r.patch!==e?r.patch:i;r.render=r.render||o;return r.patch(t,n,r)}},{\"./create-element\":15,\"./dom-index\":16,\"./patch-op\":17,\"global/document\":10,\"x-is-array\":12}],19:[function(e,t,n){var r=e(\"../vnode/is-widget.js\");t.exports=function(e,t){if(r(e)&&r(t))return\"name\"in e&&\"name\"in t?e.id===t.id:e.init===t.init;return!1}},{\"../vnode/is-widget.js\":29}],20:[function(e,t,n){\"use strict\";var r=e(\"ev-store\");function o(e){if(!(this instanceof o))return new o(e);this.value=e}(t.exports=o).prototype.hook=function(e,t){r(e)[t.substr(3)]=this.value},o.prototype.unhook=function(e,t){r(e)[t.substr(3)]=void 0}},{\"ev-store\":7}],21:[function(e,t,n){\"use strict\";function r(e){if(!(this instanceof r))return new r(e);this.value=e}(t.exports=r).prototype.hook=function(e,t){e[t]!==this.value&&(e[t]=this.value)}},{}],22:[function(e,t,n){\"use strict\";var u=e(\"x-is-array\"),c=e(\"../vnode/vnode.js\"),l=e(\"../vnode/vtext.js\"),r=e(\"../vnode/is-vnode\"),o=e(\"../vnode/is-vtext\"),i=e(\"../vnode/is-widget\"),f=e(\"../vnode/is-vhook\"),a=e(\"../vnode/is-thunk\"),p=e(\"./parse-tag.js\"),d=e(\"./hooks/soft-set-hook.js\"),h=e(\"./hooks/ev-hook.js\");function v(e){return r(e)||o(e)||i(e)||a(e)}function g(e){var t=new Error;return t.type=\"virtual-hyperscript.unexpected.virtual-element\",t.message=\"Unexpected virtual child passed to h().\\nExpected a VNode / Vthunk / VWidget / string but:\\ngot:\\n\"+s(e.foreignObject)+\".\\nThe parent vnode is:\\n\"+s(e.parentVnode),t.foreignObject=e.foreignObject,t.parentVnode=e.parentVnode,t}function s(t){try{return JSON.stringify(t,null,\"    \")}catch(e){return String(t)}}t.exports=function(e,t,n){var r,o,i,a,s=[];!n&&function(e){return\"string\"==typeof e||u(e)||v(e)}(t)&&(n=t,o={});r=p(e,o=o||t||{}),o.hasOwnProperty(\"key\")&&(i=o.key,o.key=void 0);o.hasOwnProperty(\"namespace\")&&(a=o.namespace,o.namespace=void 0);\"INPUT\"!==r||a||!o.hasOwnProperty(\"value\")||void 0===o.value||f(o.value)||(o.value=d(o.value));(function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];if(f(n))continue;\"ev-\"===t.substr(0,3)&&(e[t]=h(n))}})(o),null!=n&&function e(t,n,r,o){if(\"string\"==typeof t)n.push(new l(t));else if(\"number\"==typeof t)n.push(new l(String(t)));else if(v(t))n.push(t);else{if(!u(t)){if(null==t)return;throw g({foreignObject:t,parentVnode:{tagName:r,properties:o}})}for(var i=0;i<t.length;i++)e(t[i],n,r,o)}}(n,s,r,o);return new c(r,o,s,i,a)}},{\"../vnode/is-thunk\":25,\"../vnode/is-vhook\":26,\"../vnode/is-vnode\":27,\"../vnode/is-vtext\":28,\"../vnode/is-widget\":29,\"../vnode/vnode.js\":31,\"../vnode/vtext.js\":33,\"./hooks/ev-hook.js\":20,\"./hooks/soft-set-hook.js\":21,\"./parse-tag.js\":23,\"x-is-array\":12}],23:[function(e,t,n){\"use strict\";var c=e(\"browser-split\"),l=/([\\.#]?[a-zA-Z0-9\\u007F-\\uFFFF_:-]+)/,f=/^\\.|#/;t.exports=function(e,t){if(!e)return\"DIV\";var n,r,o,i,a=!t.hasOwnProperty(\"id\"),s=c(e,l),u=null;f.test(s[1])&&(u=\"DIV\");for(i=0;i<s.length;i++)(r=s[i])&&(o=r.charAt(0),u?\".\"===o?(n=n||[]).push(r.substring(1,r.length)):\"#\"===o&&a&&(t.id=r.substring(1,r.length)):u=r);n&&(t.className&&n.push(t.className),t.className=n.join(\" \"));return t.namespace?u:u.toUpperCase()}},{\"browser-split\":5}],24:[function(e,t,n){var r=e(\"./is-vnode\"),o=e(\"./is-vtext\"),i=e(\"./is-widget\"),a=e(\"./is-thunk\");function s(e,t){var n=(n=e.vnode)||(e.vnode=e.render(t));if(!(r(n)||o(n)||i(n)))throw new Error(\"thunk did not return a valid node\");return n}t.exports=function(e,t){var n=e,r=t;a(t)&&(r=s(t,e));a(e)&&(n=s(e,null));return{a:n,b:r}}},{\"./is-thunk\":25,\"./is-vnode\":27,\"./is-vtext\":28,\"./is-widget\":29}],25:[function(e,t,n){t.exports=function(e){return e&&\"Thunk\"===e.type}},{}],26:[function(e,t,n){t.exports=function(e){return e&&(\"function\"==typeof e.hook&&!e.hasOwnProperty(\"hook\")||\"function\"==typeof e.unhook&&!e.hasOwnProperty(\"unhook\"))}},{}],27:[function(e,t,n){var r=e(\"./version\");t.exports=function(e){return e&&\"VirtualNode\"===e.type&&e.version===r}},{\"./version\":30}],28:[function(e,t,n){var r=e(\"./version\");t.exports=function(e){return e&&\"VirtualText\"===e.type&&e.version===r}},{\"./version\":30}],29:[function(e,t,n){t.exports=function(e){return e&&\"Widget\"===e.type}},{}],30:[function(e,t,n){t.exports=\"2\"},{}],31:[function(e,t,n){var r=e(\"./version\"),v=e(\"./is-vnode\"),g=e(\"./is-widget\"),m=e(\"./is-thunk\"),y=e(\"./is-vhook\");t.exports=o;var _={},b=[];function o(e,t,n,r,o){this.tagName=e,this.properties=t||_,this.children=n||b,this.key=null!=r?String(r):void 0,this.namespace=\"string\"==typeof o?o:null;var i,a,s=n&&n.length||0,u=0,c=!1,l=!1,f=!1;for(var p in t){t.hasOwnProperty(p)&&(a=t[p],y(a)&&a.unhook&&((i=i||{})[p]=a))}for(var d=0;d<s;d++){var h=n[d];v(h)?(u+=h.count||0,!c&&h.hasWidgets&&(c=!0),!l&&h.hasThunks&&(l=!0),f||!h.hooks&&!h.descendantHooks||(f=!0)):!c&&g(h)?\"function\"==typeof h.destroy&&(c=!0):!l&&m(h)&&(l=!0)}this.count=s+u,this.hasWidgets=c,this.hasThunks=l,this.hooks=i,this.descendantHooks=f}o.prototype.version=r,o.prototype.type=\"VirtualNode\"},{\"./is-thunk\":25,\"./is-vhook\":26,\"./is-vnode\":27,\"./is-widget\":29,\"./version\":30}],32:[function(e,t,n){var r=e(\"./version\");function o(e,t,n){this.type=Number(e),this.vNode=t,this.patch=n}o.NONE=0,o.VTEXT=1,o.VNODE=2,o.WIDGET=3,o.PROPS=4,o.ORDER=5,o.INSERT=6,o.REMOVE=7,o.THUNK=8,(t.exports=o).prototype.version=r,o.prototype.type=\"VirtualPatch\"},{\"./version\":30}],33:[function(e,t,n){var r=e(\"./version\");function o(e){this.text=String(e)}(t.exports=o).prototype.version=r,o.prototype.type=\"VirtualText\"},{\"./version\":30}],34:[function(e,t,n){var c=e(\"is-object\"),l=e(\"../vnode/is-vhook\");function f(e){return Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__?e.__proto__:e.constructor?e.constructor.prototype:void 0}t.exports=function e(t,n){var r;for(var o in t){o in n||((r=r||{})[o]=void 0);var i,a=t[o],s=n[o];a!==s&&(!c(a)||!c(s)||f(s)!==f(a)||l(s)?(r=r||{})[o]=s:(i=e(a,s))&&((r=r||{})[o]=i))}for(var u in n)u in t||((r=r||{})[u]=n[u]);return r}},{\"../vnode/is-vhook\":26,\"is-object\":11}],35:[function(e,t,n){var r=e(\"x-is-array\"),h=e(\"../vnode/vpatch\"),v=e(\"../vnode/is-vnode\"),s=e(\"../vnode/is-vtext\"),u=e(\"../vnode/is-widget\"),c=e(\"../vnode/is-thunk\"),a=e(\"../vnode/handle-thunk\"),l=e(\"./diff-props\");function f(e,t){var n={a:e};return g(e,t,n,0),n}function g(e,t,n,r){var o,i,a;e!==t&&(o=n[r],i=!1,c(e)||c(t)?d(e,t,n,r):null==t?(u(e)||(p(e,n,r),o=n[r]),o=y(o,new h(h.REMOVE,e,t))):v(t)?v(e)&&e.tagName===t.tagName&&e.namespace===t.namespace&&e.key===t.key?((a=l(e.properties,t.properties))&&(o=y(o,new h(h.PROPS,e,a))),o=function(e,t,n,r,o){for(var i=e.children,a=function(e,t){var n=j(t),r=n.keys,o=n.free;if(o.length===t.length)return{children:t,moves:null};var i=j(e),a=i.keys;if(i.free.length===e.length)return{children:t,moves:null};for(var s,u=[],c=0,l=o.length,f=0,p=0;p<e.length;p++){var d=e[p];d.key?r.hasOwnProperty(d.key)?(s=r[d.key],u.push(t[s])):(s=p-f++,u.push(null)):c<l?(s=o[c++],u.push(t[s])):(s=p-f++,u.push(null))}for(var h=c>=o.length?t.length:o[c],v=0;v<t.length;v++){var g=t[v];g.key?a.hasOwnProperty(g.key)||u.push(g):h<=v&&u.push(g)}for(var m,y=u.slice(),_=0,b=[],w=[],x=0;x<t.length;){var k=t[x];for(m=y[_];null===m&&y.length;)b.push(O(y,_,null)),m=y[_];m&&m.key===k.key?(_++,x++):k.key?(m&&m.key&&r[m.key]!==x+1?(b.push(O(y,_,m.key)),(m=y[_])&&m.key===k.key?_++:w.push({key:k.key,to:x})):w.push({key:k.key,to:x}),x++):m&&m.key&&b.push(O(y,_,m.key))}for(;_<y.length;)m=y[_],b.push(O(y,_,m&&m.key));return b.length!==f||w.length?{children:u,moves:{removes:b,inserts:w}}:{children:u,moves:null}}(i,t.children),s=a.children,u=i.length,c=s.length,l=c<u?u:c,f=0;f<l;f++){var p=i[f],d=s[f];o+=1,p?g(p,d,n,o):d&&(r=y(r,new h(h.INSERT,null,d))),v(p)&&p.count&&(o+=p.count)}a.moves&&(r=y(r,new h(h.ORDER,e,a.moves)));return r}(e,t,n,o,r)):(o=y(o,new h(h.VNODE,e,t)),i=!0):s(t)?s(e)?e.text!==t.text&&(o=y(o,new h(h.VTEXT,e,t))):(o=y(o,new h(h.VTEXT,e,t)),i=!0):u(t)&&(u(e)||(i=!0),o=y(o,new h(h.WIDGET,e,t))),o&&(n[r]=o),i&&p(e,n,r))}function p(e,t,n){!function e(t,n,r){if(v(t)){if(t.hooks&&(n[r]=y(n[r],new h(h.PROPS,t,m(t.hooks)))),t.descendantHooks||t.hasThunks)for(var o=t.children,i=o.length,a=0;a<i;a++){var s=o[a];e(s,n,r+=1),v(s)&&s.count&&(r+=s.count)}}else c(t)&&d(t,null,n,r)}(e,t,n),function e(t,n,r){if(u(t))\"function\"==typeof t.destroy&&(n[r]=y(n[r],new h(h.REMOVE,t,null)));else if(v(t)&&(t.hasWidgets||t.hasThunks))for(var o=t.children,i=o.length,a=0;a<i;a++){var s=o[a];e(s,n,r+=1),v(s)&&s.count&&(r+=s.count)}else c(t)&&d(t,null,n,r)}(e,t,n)}function d(e,t,n,r){var o=a(e,t),i=f(o.a,o.b);!function(e){for(var t in e)if(\"a\"!==t)return!0;return!1}(i)||(n[r]=new h(h.THUNK,null,i))}function m(e){var t={};for(var n in e)t[n]=void 0;return t}function O(e,t,n){return e.splice(t,1),{from:t,key:n}}function j(e){for(var t={},n=[],r=e.length,o=0;o<r;o++){var i=e[o];i.key?t[i.key]=o:n.push(o)}return{keys:t,free:n}}function y(e,t){return e?(r(e)?e.push(t):e=[e,t],e):t}t.exports=f},{\"../vnode/handle-thunk\":24,\"../vnode/is-thunk\":25,\"../vnode/is-vnode\":27,\"../vnode/is-vtext\":28,\"../vnode/is-widget\":29,\"../vnode/vpatch\":32,\"./diff-props\":34,\"x-is-array\":12}]},{},[4])(4)}),define(\"virtual-dom\",[],function(){return virtualDom}),jQuery.extend({highlight:function(e,t,n,r){if(3===e.nodeType){var o=e.data.match(t);if(o){var i=document.createElement(n||\"span\");i.className=r||\"highlight\";var a=e.splitText(o.index);a.splitText(o[0].length);var s=a.cloneNode(!0);return i.appendChild(s),a.parentNode.replaceChild(i,a),1}}else if(1===e.nodeType&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&(e.tagName!==n.toUpperCase()||e.className!==r))for(var u=0;u<e.childNodes.length;u++)u+=jQuery.highlight(e.childNodes[u],t,n,r);return 0}}),jQuery.fn.unhighlight=function(e){var t={className:\"highlight-strong\",element:\"span\"};return jQuery.extend(t,e),this.find(t.element+\".\"+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this),e.normalize()}).end()},jQuery.fn.highlight=function(e,t){var n={className:\"highlight-strong\",element:\"span\",caseSensitive:!1,wordsOnly:!1};if(jQuery.extend(n,t),e.constructor===String&&(e=[e]),e=jQuery.grep(e,function(e){return\"\"!==e}),0===(e=jQuery.map(e,function(e){return e.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\")})).length)return this;var r=n.caseSensitive?\"\":\"i\",o=\"(\"+e.join(\"|\")+\")\";n.wordsOnly&&(o=\"\\\\b\"+o+\"\\\\b\");var i=new RegExp(o,r);return this.each(function(){jQuery.highlight(this,i,n.element,n.className)})},function(v,g){\"use strict\";var t;function c(e){this.time=e.time,this.target=e.target,this.rootBounds=e.rootBounds,this.boundingClientRect=e.boundingClientRect,this.intersectionRect=e.intersectionRect||i(),this.isIntersecting=!!e.intersectionRect;var t=this.boundingClientRect,n=t.width*t.height,r=this.intersectionRect,o=r.width*r.height;this.intersectionRatio=n?Number((o/n).toFixed(4)):this.isIntersecting?1:0}function e(e,t){var n,r,o,i=t||{};if(\"function\"!=typeof e)throw new Error(\"callback must be a function\");if(i.root&&1!=i.root.nodeType)throw new Error(\"root must be an Element\");this._checkForIntersections=(n=this._checkForIntersections.bind(this),r=this.THROTTLE_TIMEOUT,o=null,function(){o=o||setTimeout(function(){n(),o=null},r)}),this._callback=e,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(i.rootMargin),this.thresholds=this._initThresholds(i.threshold),this.root=i.root||null,this.rootMargin=this._rootMarginValues.map(function(e){return e.value+e.unit}).join(\" \")}function n(e,t,n,r){\"function\"==typeof e.addEventListener?e.addEventListener(t,n,r||!1):\"function\"==typeof e.attachEvent&&e.attachEvent(\"on\"+t,n)}function r(e,t,n,r){\"function\"==typeof e.removeEventListener?e.removeEventListener(t,n,r||!1):\"function\"==typeof e.detatchEvent&&e.detatchEvent(\"on\"+t,n)}function m(e){var t;try{t=e.getBoundingClientRect()}catch(e){}return t?(t.width&&t.height||(t={top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.right-t.left,height:t.bottom-t.top}),t):i()}function i(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function o(e,t){for(var n=t;n;){if(n==e)return!0;n=y(n)}return!1}function y(e){var t=e.parentNode;return t&&11==t.nodeType&&t.host?t.host:t}\"IntersectionObserver\"in v&&\"IntersectionObserverEntry\"in v&&\"intersectionRatio\"in v.IntersectionObserverEntry.prototype?\"isIntersecting\"in v.IntersectionObserverEntry.prototype||Object.defineProperty(v.IntersectionObserverEntry.prototype,\"isIntersecting\",{get:function(){return 0<this.intersectionRatio}}):(t=[],e.prototype.THROTTLE_TIMEOUT=100,e.prototype.POLL_INTERVAL=null,e.prototype.USE_MUTATION_OBSERVER=!0,e.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error(\"target must be an Element\");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},e.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},e.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},e.prototype.takeRecords=function(){var e=this._queuedEntries.slice();return this._queuedEntries=[],e},e.prototype._initThresholds=function(e){var t=e||[0];return Array.isArray(t)||(t=[t]),t.sort().filter(function(e,t,n){if(\"number\"!=typeof e||isNaN(e)||e<0||1<e)throw new Error(\"threshold must be a number between 0 and 1 inclusively\");return e!==n[t-1]})},e.prototype._parseRootMargin=function(e){var t=(e||\"0px\").split(/\\s+/).map(function(e){var t=/^(-?\\d*\\.?\\d+)(px|%)$/.exec(e);if(!t)throw new Error(\"rootMargin must be specified in pixels or percent\");return{value:parseFloat(t[1]),unit:t[2]}});return t[1]=t[1]||t[0],t[2]=t[2]||t[0],t[3]=t[3]||t[1],t},e.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(n(v,\"resize\",this._checkForIntersections,!0),n(g,\"scroll\",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&\"MutationObserver\"in v&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(g,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},e.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,r(v,\"resize\",this._checkForIntersections,!0),r(g,\"scroll\",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},e.prototype._checkForIntersections=function(){var s=this._rootIsInDom(),u=s?this._getRootRect():i();this._observationTargets.forEach(function(e){var t=e.element,n=m(t),r=this._rootContainsTarget(t),o=e.entry,i=s&&r&&this._computeTargetAndRootIntersection(t,u),a=e.entry=new c({time:v.performance&&performance.now&&performance.now(),target:t,boundingClientRect:n,rootBounds:u,intersectionRect:i});o?s&&r?this._hasCrossedThreshold(o,a)&&this._queuedEntries.push(a):o&&o.isIntersecting&&this._queuedEntries.push(a):this._queuedEntries.push(a)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},e.prototype._computeTargetAndRootIntersection=function(e,t){if(\"none\"!=v.getComputedStyle(e).display){for(var n,r,o,i,a,s,u,c,l=m(e),f=y(e),p=!1;!p;){var d=null,h=1==f.nodeType?v.getComputedStyle(f):{};if(\"none\"==h.display)return;if(f==this.root||f==g?(p=!0,d=t):f!=g.body&&f!=g.documentElement&&\"visible\"!=h.overflow&&(d=m(f)),d&&(n=d,r=l,0,o=Math.max(n.top,r.top),i=Math.min(n.bottom,r.bottom),a=Math.max(n.left,r.left),s=Math.min(n.right,r.right),c=i-o,!(l=0<=(u=s-a)&&0<=c&&{top:o,bottom:i,left:a,right:s,width:u,height:c})))break;f=y(f)}return l}},e.prototype._getRootRect=function(){var e,t,n;return n=this.root?m(this.root):(e=g.documentElement,t=g.body,{top:0,left:0,right:e.clientWidth||t.clientWidth,width:e.clientWidth||t.clientWidth,bottom:e.clientHeight||t.clientHeight,height:e.clientHeight||t.clientHeight}),this._expandRectByRootMargin(n)},e.prototype._expandRectByRootMargin=function(n){var e=this._rootMarginValues.map(function(e,t){return\"px\"==e.unit?e.value:e.value*(t%2?n.width:n.height)/100}),t={top:n.top-e[0],right:n.right+e[1],bottom:n.bottom+e[2],left:n.left-e[3]};return t.width=t.right-t.left,t.height=t.bottom-t.top,t},e.prototype._hasCrossedThreshold=function(e,t){var n=e&&e.isIntersecting?e.intersectionRatio||0:-1,r=t.isIntersecting?t.intersectionRatio||0:-1;if(n!==r)for(var o=0;o<this.thresholds.length;o++){var i=this.thresholds[o];if(i==n||i==r||i<n!=i<r)return!0}},e.prototype._rootIsInDom=function(){return!this.root||o(g,this.root)},e.prototype._rootContainsTarget=function(e){return o(this.root||g,e)},e.prototype._registerInstance=function(){t.indexOf(this)<0&&t.push(this)},e.prototype._unregisterInstance=function(){var e=t.indexOf(this);-1!=e&&t.splice(e,1)},v.IntersectionObserver=e,v.IntersectionObserverEntry=c)}(window,document);\n//# sourceMappingURL=/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js.map"
          },
          "redirectURL": "",
          "headersSize": 194,
          "bodySize": 59934,
          "_transferSize": 60128
        },
        "cache": {},
        "timings": {
          "blocked": 1269.9280000015274,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05199999999990723,
          "wait": 387.5719999881369,
          "receive": 905.0990000250749,
          "_blocked_queueing": 7.140000001527369
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 2537.3899999831337,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/pretty-text-bundle-4f549e77d756fbae66272979201bc36623aa867d5d67139590288a5e4154a7af.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 728,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:18 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000312"
            },
            {
              "name": "Content-Length",
              "value": "42976"
            }
          ],
          "cookies": [],
          "content": {
            "size": 134131,
            "mimeType": "application/javascript",
            "compression": 91155,
            "text": "ZGVmaW5lKCJwcmV0dHktdGV4dC9wcmV0dHktdGV4dCIsWyJleHBvcnRzIiwicHJldHR5LXRleHQvZW5naW5lcy9kaXNjb3Vyc2UtbWFya2Rvd24taXQiXSxmdW5jdGlvbihlLHgpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUsYSl7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciB0PWFbbl07dC5lbnVtZXJhYmxlPXQuZW51bWVyYWJsZXx8ITEsdC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHQmJih0LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LmtleSx0KX19ZnVuY3Rpb24gYShlKXt2YXIgYT1lLnNpdGVTZXR0aW5ncyxuPWUuZ2V0VVJMLHQ9ZS5sb29rdXBBdmF0YXIsbz1lLmxvb2t1cFByaW1hcnlVc2VyR3JvdXAsaT1lLmdldFRvcGljSW5mbyxyPWUudG9waWNJZCxzPWUuY2F0ZWdvcnlIYXNodGFnTG9va3VwLGw9ZS51c2VySWQsYz1lLmdldEN1cnJlbnRVc2VyLG09ZS5jdXJyZW50VXNlcix1PWUubG9va3VwQXZhdGFyQnlQb3N0TnVtYmVyLGc9ZS5sb29rdXBQcmltYXJ5VXNlckdyb3VwQnlQb3N0TnVtYmVyLGQ9ZS5mb3JtYXRVc2VybmFtZSxoPWUuZW1vamlVbmljb2RlUmVwbGFjZXIscD1lLmxvb2t1cFVwbG9hZFVybHMsdz1lLnByZXZpZXdpbmcsZj1lLmxpbmtpZnksYj1lLmNlbnNvcmVkUmVnZXhwLGs9ZS5kaXNhYmxlRW1vamlzLHk9eyJib2xkLWl0YWxpY3MiOiEwLCJhdXRvLWxpbmsiOiEwLG1lbnRpb25zOiEwLGJiY29kZTohMCxxdW90ZTohMCxodG1sOiEwLCJjYXRlZ29yeS1oYXNodGFnIjohMCxvbmVib3g6ITAsbGlua2lmeTohMSE9PWYsbmV3bGluZTohYS50cmFkaXRpb25hbF9tYXJrZG93bl9saW5lYnJlYWtzfTtlLmZlYXR1cmVzJiYoeT1fLm1lcmdlKHksZS5mZWF0dXJlcykpO3ZhciB2PXtzYW5pdGl6ZTohMCxnZXRVUkw6bixmZWF0dXJlczp5LGxvb2t1cEF2YXRhcjp0LGxvb2t1cFByaW1hcnlVc2VyR3JvdXA6byxnZXRUb3BpY0luZm86aSx0b3BpY0lkOnIsY2F0ZWdvcnlIYXNodGFnTG9va3VwOnMsdXNlcklkOmwsZ2V0Q3VycmVudFVzZXI6YyxjdXJyZW50VXNlcjptLGxvb2t1cEF2YXRhckJ5UG9zdE51bWJlcjp1LGxvb2t1cFByaW1hcnlVc2VyR3JvdXBCeVBvc3ROdW1iZXI6Zyxmb3JtYXRVc2VybmFtZTpkLGVtb2ppVW5pY29kZVJlcGxhY2VyOmgsbG9va3VwVXBsb2FkVXJsczpwLGNlbnNvcmVkUmVnZXhwOmIsYWxsb3dlZEhyZWZTY2hlbWVzOmEuYWxsb3dlZF9ocmVmX3NjaGVtZXM/YS5hbGxvd2VkX2hyZWZfc2NoZW1lcy5zcGxpdCgifCIpOm51bGwsYWxsb3dlZElmcmFtZXM6YS5hbGxvd2VkX2lmcmFtZXM/YS5hbGxvd2VkX2lmcmFtZXMuc3BsaXQoInwiKTpbXSxtYXJrZG93bkl0OiEwLGluamVjdExpbmVOdW1iZXJzVG9QcmV2aWV3OmEuZW5hYmxlX2FkdmFuY2VkX2VkaXRvcl9wcmV2aWV3X3N5bmMscHJldmlld2luZzp3LGRpc2FibGVFbW9qaXM6a307cmV0dXJuKDAseC5zZXR1cCkodixhLGUpLHZ9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsZS5yZWdpc3Rlck9wdGlvbj1mdW5jdGlvbigpe30sZS5idWlsZE9wdGlvbnM9YTt2YXIgbj0oZnVuY3Rpb24oZSxhLG4pe3JldHVybiBhJiZ0KGUucHJvdG90eXBlLGEpLG4mJnQoZSxuKSxlfShvLFt7a2V5OiJkaXNhYmxlU2FuaXRpemVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMub3B0cy5zYW5pdGl6ZXI9dGhpcy5vcHRzLmRpc2NvdXJzZS5zYW5pdGl6ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fX0se2tleToiY29vayIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjAhPT1lLmxlbmd0aCYmKDAseC5jb29rKShlLHRoaXMub3B0cyl8fCIifX0se2tleToic2FuaXRpemUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdHMuc2FuaXRpemVyKGUpLnRyaW0oKX19XSksbyk7ZnVuY3Rpb24gbyhlKXshZnVuY3Rpb24oZSxhKXtpZighKGUgaW5zdGFuY2VvZiBhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSxlPWV8fGEoe3NpdGVTZXR0aW5nczp7fX0pLHRoaXMub3B0cz1lfWUuZGVmYXVsdD1ufSksZGVmaW5lKCJwcmV0dHktdGV4dC9ndWlkIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3ZhciBuPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2Uubm93JiYobis9cGVyZm9ybWFuY2Uubm93KCkpLCJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZyxmdW5jdGlvbihlKXt2YXIgYT0obisxNipNYXRoLnJhbmRvbSgpKSUxNnwwO3JldHVybiBuPU1hdGguZmxvb3Iobi8xNiksKCJ4Ij09PWU/YTozJmF8OCkudG9TdHJpbmcoMTYpfSl9fSksZGVmaW5lKCJwcmV0dHktdGV4dC9jZW5zb3JlZC13b3JkcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSxpKXtpZihlKXt2YXIgYT1uZXcgUmVnRXhwKGUsImlnIik7cmV0dXJuIGk9aXx8IiYjOTYzMjsiLGZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZShhLGZ1bmN0aW9uKGUpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTxhP2EtMTowKSx0PTE7dDxhO3QrKyluW3QtMV09YXJndW1lbnRzW3RdO3ZhciBvPW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9KTtyZXR1cm4gZS5yZXBsYWNlKG8sbmV3IEFycmF5KG8ubGVuZ3RoKzEpLmpvaW4oaSkpfSl9fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY2Vuc29yRm49dCxlLmNlbnNvcj1mdW5jdGlvbihlLGEsbil7cmV0dXJuIHQoYSxuKShlKX19KSxkZWZpbmUoInByZXR0eS10ZXh0L2Vtb2ppL2RhdGEiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5lbW9qaXM9WyJncmlubmluZyIsImdyaW1hY2luZyIsImdyaW4iLCJqb3kiLCJyb2ZsIiwic21pbGV5Iiwic21pbGUiLCJzd2VhdF9zbWlsZSIsImxhdWdoaW5nIiwiaW5ub2NlbnQiLCJ3aW5rIiwiYmx1c2giLCJzbGlnaHRseV9zbWlsaW5nX2ZhY2UiLCJ1cHNpZGVfZG93bl9mYWNlIiwicmVsYXhlZCIsInl1bSIsInJlbGlldmVkIiwiaGVhcnRfZXllcyIsImtpc3NpbmdfaGVhcnQiLCJraXNzaW5nIiwia2lzc2luZ19zbWlsaW5nX2V5ZXMiLCJraXNzaW5nX2Nsb3NlZF9leWVzIiwic3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZSIsInN0dWNrX291dF90b25ndWVfY2xvc2VkX2V5ZXMiLCJzdHVja19vdXRfdG9uZ3VlIiwibW9uZXlfbW91dGhfZmFjZSIsIm5lcmRfZmFjZSIsInN1bmdsYXNzZXMiLCJjbG93bl9mYWNlIiwiY293Ym95X2hhdF9mYWNlIiwiaHVncyIsInNtaXJrIiwibm9fbW91dGgiLCJuZXV0cmFsX2ZhY2UiLCJleHByZXNzaW9ubGVzcyIsInVuYW11c2VkIiwicm9sbF9leWVzIiwidGhpbmtpbmciLCJseWluZ19mYWNlIiwiZmx1c2hlZCIsImRpc2FwcG9pbnRlZCIsIndvcnJpZWQiLCJhbmdyeSIsInJhZ2UiLCJwZW5zaXZlIiwiY29uZnVzZWQiLCJzbGlnaHRseV9mcm93bmluZ19mYWNlIiwiZnJvd25pbmdfZmFjZSIsInBlcnNldmVyZSIsImNvbmZvdW5kZWQiLCJ0aXJlZF9mYWNlIiwid2VhcnkiLCJ0cml1bXBoIiwib3Blbl9tb3V0aCIsInNjcmVhbSIsImZlYXJmdWwiLCJjb2xkX3N3ZWF0IiwiaHVzaGVkIiwiZnJvd25pbmciLCJhbmd1aXNoZWQiLCJjcnkiLCJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiLCJkcm9vbGluZ19mYWNlIiwic2xlZXB5Iiwic3dlYXQiLCJzb2IiLCJkaXp6eV9mYWNlIiwiYXN0b25pc2hlZCIsInppcHBlcl9tb3V0aF9mYWNlIiwibmF1c2VhdGVkX2ZhY2UiLCJzbmVlemluZ19mYWNlIiwibWFzayIsImZhY2Vfd2l0aF90aGVybW9tZXRlciIsImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiLCJzbGVlcGluZyIsInp6eiIsInBvb3AiLCJzbWlsaW5nX2ltcCIsImltcCIsImphcGFuZXNlX29ncmUiLCJqYXBhbmVzZV9nb2JsaW4iLCJza3VsbCIsImdob3N0IiwiYWxpZW4iLCJyb2JvdCIsInNtaWxleV9jYXQiLCJzbWlsZV9jYXQiLCJqb3lfY2F0IiwiaGVhcnRfZXllc19jYXQiLCJzbWlya19jYXQiLCJraXNzaW5nX2NhdCIsInNjcmVhbV9jYXQiLCJjcnlpbmdfY2F0X2ZhY2UiLCJwb3V0aW5nX2NhdCIsInJhaXNlZF9oYW5kcyIsImNsYXAiLCJ3YXZlIiwiY2FsbF9tZV9oYW5kIiwiKzEiLCItMSIsImZhY2VwdW5jaCIsImZpc3QiLCJmaXN0X2xlZnQiLCJmaXN0X3JpZ2h0IiwidiIsIm9rX2hhbmQiLCJyYWlzZWRfaGFuZCIsInJhaXNlZF9iYWNrX29mX2hhbmQiLCJvcGVuX2hhbmRzIiwibXVzY2xlIiwicHJheSIsImhhbmRzaGFrZSIsInBvaW50X3VwIiwicG9pbnRfdXBfMiIsInBvaW50X2Rvd24iLCJwb2ludF9sZWZ0IiwicG9pbnRfcmlnaHQiLCJmdSIsInJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkIiwibWV0YWwiLCJjcm9zc2VkX2ZpbmdlcnMiLCJ2dWxjYW5fc2FsdXRlIiwid3JpdGluZ19oYW5kIiwic2VsZmllIiwibmFpbF9jYXJlIiwibGlwcyIsInRvbmd1ZSIsImVhciIsIm5vc2UiLCJleWUiLCJleWVzIiwiYnVzdF9pbl9zaWxob3VldHRlIiwiYnVzdHNfaW5fc2lsaG91ZXR0ZSIsInNwZWFraW5nX2hlYWQiLCJiYWJ5IiwiYm95IiwiZ2lybCIsIm1hbiIsIndvbWFuIiwiYmxvbmRlX3dvbWFuIiwiYmxvbmRlX21hbiIsIm9sZGVyX21hbiIsIm9sZGVyX3dvbWFuIiwibWFuX3dpdGhfZ3VhX3BpX21hbyIsIndvbWFuX3dpdGhfdHVyYmFuIiwibWFuX3dpdGhfdHVyYmFuIiwicG9saWNld29tYW4iLCJwb2xpY2VtYW4iLCJjb25zdHJ1Y3Rpb25fd29ya2VyX3dvbWFuIiwiY29uc3RydWN0aW9uX3dvcmtlcl9tYW4iLCJndWFyZHN3b21hbiIsImd1YXJkc21hbiIsImZlbWFsZV9kZXRlY3RpdmUiLCJtYWxlX2RldGVjdGl2ZSIsIndvbWFuX2hlYWx0aF93b3JrZXIiLCJtYW5faGVhbHRoX3dvcmtlciIsIndvbWFuX2Zhcm1lciIsIm1hbl9mYXJtZXIiLCJ3b21hbl9jb29rIiwibWFuX2Nvb2siLCJ3b21hbl9zdHVkZW50IiwibWFuX3N0dWRlbnQiLCJ3b21hbl9zaW5nZXIiLCJtYW5fc2luZ2VyIiwid29tYW5fdGVhY2hlciIsIm1hbl90ZWFjaGVyIiwid29tYW5fZmFjdG9yeV93b3JrZXIiLCJtYW5fZmFjdG9yeV93b3JrZXIiLCJ3b21hbl90ZWNobm9sb2dpc3QiLCJtYW5fdGVjaG5vbG9naXN0Iiwid29tYW5fb2ZmaWNlX3dvcmtlciIsIm1hbl9vZmZpY2Vfd29ya2VyIiwid29tYW5fbWVjaGFuaWMiLCJtYW5fbWVjaGFuaWMiLCJ3b21hbl9zY2llbnRpc3QiLCJtYW5fc2NpZW50aXN0Iiwid29tYW5fYXJ0aXN0IiwibWFuX2FydGlzdCIsIndvbWFuX2ZpcmVmaWdodGVyIiwibWFuX2ZpcmVmaWdodGVyIiwid29tYW5fcGlsb3QiLCJtYW5fcGlsb3QiLCJ3b21hbl9hc3Ryb25hdXQiLCJtYW5fYXN0cm9uYXV0Iiwid29tYW5fanVkZ2UiLCJtYW5fanVkZ2UiLCJtcnNfY2xhdXMiLCJzYW50YSIsImFuZ2VsIiwicHJlZ25hbnRfd29tYW4iLCJwcmluY2VzcyIsInByaW5jZSIsImJyaWRlX3dpdGhfdmVpbCIsIm1hbl9pbl90dXhlZG8iLCJydW5uaW5nX3dvbWFuIiwicnVubmluZ19tYW4iLCJ3YWxraW5nX3dvbWFuIiwid2Fsa2luZ19tYW4iLCJkYW5jZXIiLCJtYW5fZGFuY2luZyIsImRhbmNpbmdfd29tZW4iLCJkYW5jaW5nX21lbiIsImNvdXBsZSIsInR3b19tZW5faG9sZGluZ19oYW5kcyIsInR3b193b21lbl9ob2xkaW5nX2hhbmRzIiwiYm93aW5nX3dvbWFuIiwiYm93aW5nX21hbiIsIm1hbl9mYWNlcGFsbWluZyIsIndvbWFuX2ZhY2VwYWxtaW5nIiwid29tYW5fc2hydWdnaW5nIiwibWFuX3NocnVnZ2luZyIsInRpcHBpbmdfaGFuZF93b21hbiIsInRpcHBpbmdfaGFuZF9tYW4iLCJub19nb29kX3dvbWFuIiwibm9fZ29vZF9tYW4iLCJva193b21hbiIsIm9rX21hbiIsInJhaXNpbmdfaGFuZF93b21hbiIsInJhaXNpbmdfaGFuZF9tYW4iLCJwb3V0aW5nX3dvbWFuIiwicG91dGluZ19tYW4iLCJmcm93bmluZ193b21hbiIsImZyb3duaW5nX21hbiIsImhhaXJjdXRfd29tYW4iLCJoYWlyY3V0X21hbiIsIm1hc3NhZ2Vfd29tYW4iLCJtYXNzYWdlX21hbiIsImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX21hbiIsImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIiwiY291cGxlX3dpdGhfaGVhcnRfbWFuX21hbiIsImNvdXBsZWtpc3NfbWFuX3dvbWFuIiwiY291cGxla2lzc193b21hbl93b21hbiIsImNvdXBsZWtpc3NfbWFuX21hbiIsImZhbWlseV9tYW5fd29tYW5fYm95IiwiZmFtaWx5X21hbl93b21hbl9naXJsIiwiZmFtaWx5X21hbl93b21hbl9naXJsX2JveSIsImZhbWlseV9tYW5fd29tYW5fYm95X2JveSIsImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsIiwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveSIsImZhbWlseV93b21hbl93b21hbl9naXJsIiwiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95IiwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3kiLCJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9naXJsIiwiZmFtaWx5X21hbl9tYW5fYm95IiwiZmFtaWx5X21hbl9tYW5fZ2lybCIsImZhbWlseV9tYW5fbWFuX2dpcmxfYm95IiwiZmFtaWx5X21hbl9tYW5fYm95X2JveSIsImZhbWlseV9tYW5fbWFuX2dpcmxfZ2lybCIsImZhbWlseV93b21hbl9ib3kiLCJmYW1pbHlfd29tYW5fZ2lybCIsImZhbWlseV93b21hbl9naXJsX2JveSIsImZhbWlseV93b21hbl9ib3lfYm95IiwiZmFtaWx5X3dvbWFuX2dpcmxfZ2lybCIsImZhbWlseV9tYW5fYm95IiwiZmFtaWx5X21hbl9naXJsIiwiZmFtaWx5X21hbl9naXJsX2JveSIsImZhbWlseV9tYW5fYm95X2JveSIsImZhbWlseV9tYW5fZ2lybF9naXJsIiwid29tYW5zX2Nsb3RoZXMiLCJ0c2hpcnQiLCJqZWFucyIsIm5lY2t0aWUiLCJkcmVzcyIsImJpa2luaSIsImtpbW9ubyIsImxpcHN0aWNrIiwia2lzcyIsImZvb3RwcmludHMiLCJoaWdoX2hlZWwiLCJzYW5kYWwiLCJib290IiwibWFuc19zaG9lIiwiYXRobGV0aWNfc2hvZSIsIndvbWFuc19oYXQiLCJ0b3BoYXQiLCJyZXNjdWVfd29ya2VyX2hlbG1ldCIsIm1vcnRhcl9ib2FyZCIsImNyb3duIiwic2Nob29sX3NhdGNoZWwiLCJwb3VjaCIsInB1cnNlIiwiaGFuZGJhZyIsImJyaWVmY2FzZSIsImV5ZWdsYXNzZXMiLCJkYXJrX3N1bmdsYXNzZXMiLCJyaW5nIiwiY2xvc2VkX3VtYnJlbGxhIiwiZG9nIiwiY2F0IiwibW91c2UiLCJoYW1zdGVyIiwicmFiYml0IiwiZm94X2ZhY2UiLCJiZWFyIiwicGFuZGFfZmFjZSIsImtvYWxhIiwidGlnZXIiLCJsaW9uIiwiY293IiwicGlnIiwicGlnX25vc2UiLCJmcm9nIiwic3F1aWQiLCJvY3RvcHVzIiwic2hyaW1wIiwibW9ua2V5X2ZhY2UiLCJnb3JpbGxhIiwic2VlX25vX2V2aWwiLCJoZWFyX25vX2V2aWwiLCJzcGVha19ub19ldmlsIiwibW9ua2V5IiwiY2hpY2tlbiIsInBlbmd1aW4iLCJiaXJkIiwiYmFieV9jaGljayIsImhhdGNoaW5nX2NoaWNrIiwiaGF0Y2hlZF9jaGljayIsImR1Y2siLCJlYWdsZSIsIm93bCIsImJhdCIsIndvbGYiLCJib2FyIiwiaG9yc2UiLCJ1bmljb3JuIiwiaG9uZXliZWUiLCJidWciLCJidXR0ZXJmbHkiLCJzbmFpbCIsImJlZXRsZSIsImFudCIsInNwaWRlciIsInNjb3JwaW9uIiwiY3JhYiIsInNuYWtlIiwibGl6YXJkIiwidHVydGxlIiwidHJvcGljYWxfZmlzaCIsImZpc2giLCJibG93ZmlzaCIsImRvbHBoaW4iLCJzaGFyayIsIndoYWxlIiwid2hhbGUyIiwiY3JvY29kaWxlIiwibGVvcGFyZCIsInRpZ2VyMiIsIndhdGVyX2J1ZmZhbG8iLCJveCIsImNvdzIiLCJkZWVyIiwiZHJvbWVkYXJ5X2NhbWVsIiwiY2FtZWwiLCJlbGVwaGFudCIsInJoaW5vY2Vyb3MiLCJnb2F0IiwicmFtIiwic2hlZXAiLCJyYWNlaG9yc2UiLCJwaWcyIiwicmF0IiwibW91c2UyIiwicm9vc3RlciIsInR1cmtleSIsImRvdmUiLCJkb2cyIiwicG9vZGxlIiwiY2F0MiIsInJhYmJpdDIiLCJjaGlwbXVuayIsInBhd19wcmludHMiLCJkcmFnb24iLCJkcmFnb25fZmFjZSIsImNhY3R1cyIsImNocmlzdG1hc190cmVlIiwiZXZlcmdyZWVuX3RyZWUiLCJkZWNpZHVvdXNfdHJlZSIsInBhbG1fdHJlZSIsInNlZWRsaW5nIiwiaGVyYiIsInNoYW1yb2NrIiwiZm91cl9sZWFmX2Nsb3ZlciIsImJhbWJvbyIsInRhbmFiYXRhX3RyZWUiLCJsZWF2ZXMiLCJmYWxsZW5fbGVhZiIsIm1hcGxlX2xlYWYiLCJlYXJfb2ZfcmljZSIsImhpYmlzY3VzIiwic3VuZmxvd2VyIiwicm9zZSIsIndpbHRlZF9mbG93ZXIiLCJ0dWxpcCIsImJsb3Nzb20iLCJjaGVycnlfYmxvc3NvbSIsImJvdXF1ZXQiLCJtdXNocm9vbSIsImNoZXN0bnV0IiwiamFja19vX2xhbnRlcm4iLCJzaGVsbCIsInNwaWRlcl93ZWIiLCJlYXJ0aF9hbWVyaWNhcyIsImVhcnRoX2FmcmljYSIsImVhcnRoX2FzaWEiLCJmdWxsX21vb24iLCJ3YW5pbmdfZ2liYm91c19tb29uIiwibGFzdF9xdWFydGVyX21vb24iLCJ3YW5pbmdfY3Jlc2NlbnRfbW9vbiIsIm5ld19tb29uIiwid2F4aW5nX2NyZXNjZW50X21vb24iLCJmaXJzdF9xdWFydGVyX21vb24iLCJ3YXhpbmdfZ2liYm91c19tb29uIiwibmV3X21vb25fd2l0aF9mYWNlIiwiZnVsbF9tb29uX3dpdGhfZmFjZSIsImZpcnN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCJzdW5fd2l0aF9mYWNlIiwiY3Jlc2NlbnRfbW9vbiIsInN0YXIiLCJzdGFyMiIsImRpenp5Iiwic3BhcmtsZXMiLCJjb21ldCIsInN1bm55Iiwic3VuX2JlaGluZF9zbWFsbF9jbG91ZCIsInBhcnRseV9zdW5ueSIsInN1bl9iZWhpbmRfbGFyZ2VfY2xvdWQiLCJzdW5fYmVoaW5kX3JhaW5fY2xvdWQiLCJjbG91ZCIsImNsb3VkX3dpdGhfcmFpbiIsImNsb3VkX3dpdGhfbGlnaHRuaW5nX2FuZF9yYWluIiwiY2xvdWRfd2l0aF9saWdodG5pbmciLCJ6YXAiLCJmaXJlIiwiYm9vbSIsInNub3dmbGFrZSIsImNsb3VkX3dpdGhfc25vdyIsInNub3dtYW4iLCJzbm93bWFuX3dpdGhfc25vdyIsIndpbmRfZmFjZSIsImRhc2giLCJ0b3JuYWRvIiwiZm9nIiwib3Blbl91bWJyZWxsYSIsInVtYnJlbGxhIiwiZHJvcGxldCIsInN3ZWF0X2Ryb3BzIiwib2NlYW4iLCJncmVlbl9hcHBsZSIsImFwcGxlIiwicGVhciIsInRhbmdlcmluZSIsImxlbW9uIiwiYmFuYW5hIiwid2F0ZXJtZWxvbiIsImdyYXBlcyIsInN0cmF3YmVycnkiLCJtZWxvbiIsImNoZXJyaWVzIiwicGVhY2giLCJwaW5lYXBwbGUiLCJraXdpX2ZydWl0IiwiYXZvY2FkbyIsInRvbWF0byIsImVnZ3BsYW50IiwiY3VjdW1iZXIiLCJjYXJyb3QiLCJob3RfcGVwcGVyIiwicG90YXRvIiwiY29ybiIsInN3ZWV0X3BvdGF0byIsInBlYW51dHMiLCJob25leV9wb3QiLCJjcm9pc3NhbnQiLCJicmVhZCIsImJhZ3VldHRlX2JyZWFkIiwiY2hlZXNlIiwiZWdnIiwiYmFjb24iLCJwYW5jYWtlcyIsInBvdWx0cnlfbGVnIiwibWVhdF9vbl9ib25lIiwiZnJpZWRfc2hyaW1wIiwiZnJpZWRfZWdnIiwiaGFtYnVyZ2VyIiwiZnJpZXMiLCJzdHVmZmVkX2ZsYXRicmVhZCIsImhvdGRvZyIsInBpenphIiwic3BhZ2hldHRpIiwidGFjbyIsImJ1cnJpdG8iLCJncmVlbl9zYWxhZCIsInNoYWxsb3dfcGFuX29mX2Zvb2QiLCJyYW1lbiIsInN0ZXciLCJmaXNoX2Nha2UiLCJzdXNoaSIsImJlbnRvIiwiY3VycnkiLCJyaWNlX2JhbGwiLCJyaWNlIiwicmljZV9jcmFja2VyIiwib2RlbiIsImRhbmdvIiwic2hhdmVkX2ljZSIsImljZV9jcmVhbSIsImljZWNyZWFtIiwiY2FrZSIsImJpcnRoZGF5IiwiY3VzdGFyZCIsImNhbmR5IiwibG9sbGlwb3AiLCJjaG9jb2xhdGVfYmFyIiwicG9wY29ybiIsImRvdWdobnV0IiwiY29va2llIiwibWlsa19nbGFzcyIsImJlZXIiLCJiZWVycyIsImNsaW5raW5nX2dsYXNzZXMiLCJ3aW5lX2dsYXNzIiwidHVtYmxlcl9nbGFzcyIsImNvY2t0YWlsIiwidHJvcGljYWxfZHJpbmsiLCJjaGFtcGFnbmUiLCJzYWtlIiwidGVhIiwiY29mZmVlIiwiYmFieV9ib3R0bGUiLCJzcG9vbiIsImZvcmtfYW5kX2tuaWZlIiwicGxhdGVfd2l0aF9jdXRsZXJ5Iiwic29jY2VyIiwiYmFza2V0YmFsbCIsImZvb3RiYWxsIiwiYmFzZWJhbGwiLCJ0ZW5uaXMiLCJ2b2xsZXliYWxsIiwicnVnYnlfZm9vdGJhbGwiLCI4YmFsbCIsImdvbGYiLCJnb2xmaW5nX3dvbWFuIiwiZ29sZmluZ19tYW4iLCJwaW5nX3BvbmciLCJiYWRtaW50b24iLCJnb2FsX25ldCIsImljZV9ob2NrZXkiLCJmaWVsZF9ob2NrZXkiLCJjcmlja2V0X2JhdF9hbmRfYmFsbCIsInNraSIsInNraWVyIiwic25vd2JvYXJkZXIiLCJwZXJzb25fZmVuY2luZyIsIndvbWVuX3dyZXN0bGluZyIsIm1lbl93cmVzdGxpbmciLCJ3b21hbl9jYXJ0d2hlZWxpbmciLCJtYW5fY2FydHdoZWVsaW5nIiwid29tYW5fcGxheWluZ19oYW5kYmFsbCIsIm1hbl9wbGF5aW5nX2hhbmRiYWxsIiwiaWNlX3NrYXRlIiwiYm93X2FuZF9hcnJvdyIsImZpc2hpbmdfcG9sZV9hbmRfZmlzaCIsImJveGluZ19nbG92ZSIsIm1hcnRpYWxfYXJ0c191bmlmb3JtIiwicm93aW5nX3dvbWFuIiwicm93aW5nX21hbiIsInN3aW1taW5nX3dvbWFuIiwic3dpbW1pbmdfbWFuIiwid29tYW5fcGxheWluZ193YXRlcl9wb2xvIiwibWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyIsInN1cmZpbmdfd29tYW4iLCJzdXJmaW5nX21hbiIsImJhdGgiLCJiYXNrZXRiYWxsX3dvbWFuIiwiYmFza2V0YmFsbF9tYW4iLCJ3ZWlnaHRfbGlmdGluZ193b21hbiIsIndlaWdodF9saWZ0aW5nX21hbiIsImJpa2luZ193b21hbiIsImJpa2luZ19tYW4iLCJtb3VudGFpbl9iaWtpbmdfd29tYW4iLCJtb3VudGFpbl9iaWtpbmdfbWFuIiwiaG9yc2VfcmFjaW5nIiwiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIiwidHJvcGh5IiwicnVubmluZ19zaGlydF93aXRoX3Nhc2giLCJtZWRhbF9zcG9ydHMiLCJtZWRhbF9taWxpdGFyeSIsIjFzdF9wbGFjZV9tZWRhbCIsIjJuZF9wbGFjZV9tZWRhbCIsIjNyZF9wbGFjZV9tZWRhbCIsInJlbWluZGVyX3JpYmJvbiIsInJvc2V0dGUiLCJ0aWNrZXQiLCJ0aWNrZXRzIiwicGVyZm9ybWluZ19hcnRzIiwiYXJ0IiwiY2lyY3VzX3RlbnQiLCJ3b21hbl9qdWdnbGluZyIsIm1hbl9qdWdnbGluZyIsIm1pY3JvcGhvbmUiLCJoZWFkcGhvbmVzIiwibXVzaWNhbF9zY29yZSIsIm11c2ljYWxfa2V5Ym9hcmQiLCJkcnVtIiwic2F4b3Bob25lIiwidHJ1bXBldCIsImd1aXRhciIsInZpb2xpbiIsImNsYXBwZXIiLCJ2aWRlb19nYW1lIiwic3BhY2VfaW52YWRlciIsImRhcnQiLCJnYW1lX2RpZSIsInNsb3RfbWFjaGluZSIsImJvd2xpbmciLCJyZWRfY2FyIiwidGF4aSIsImJsdWVfY2FyIiwiYnVzIiwidHJvbGxleWJ1cyIsInJhY2luZ19jYXIiLCJwb2xpY2VfY2FyIiwiYW1idWxhbmNlIiwiZmlyZV9lbmdpbmUiLCJtaW5pYnVzIiwidHJ1Y2siLCJhcnRpY3VsYXRlZF9sb3JyeSIsInRyYWN0b3IiLCJraWNrX3Njb290ZXIiLCJtb3RvcmN5Y2xlIiwiYmlrZSIsIm1vdG9yX3Njb290ZXIiLCJyb3RhdGluZ19saWdodCIsIm9uY29taW5nX3BvbGljZV9jYXIiLCJvbmNvbWluZ19idXMiLCJvbmNvbWluZ19hdXRvbW9iaWxlIiwib25jb21pbmdfdGF4aSIsImFlcmlhbF90cmFtd2F5IiwibW91bnRhaW5fY2FibGV3YXkiLCJzdXNwZW5zaW9uX3JhaWx3YXkiLCJyYWlsd2F5X2NhciIsInRyYWluIiwibW9ub3JhaWwiLCJidWxsZXR0cmFpbl9zaWRlIiwiYnVsbGV0dHJhaW5fZnJvbnQiLCJsaWdodF9yYWlsIiwibW91bnRhaW5fcmFpbHdheSIsInN0ZWFtX2xvY29tb3RpdmUiLCJ0cmFpbjIiLCJtZXRybyIsInRyYW0iLCJzdGF0aW9uIiwiaGVsaWNvcHRlciIsInNtYWxsX2FpcnBsYW5lIiwiYWlycGxhbmUiLCJmbGlnaHRfZGVwYXJ0dXJlIiwiZmxpZ2h0X2Fycml2YWwiLCJzYWlsYm9hdCIsIm1vdG9yX2JvYXQiLCJzcGVlZGJvYXQiLCJmZXJyeSIsInBhc3Nlbmdlcl9zaGlwIiwicm9ja2V0IiwiYXJ0aWZpY2lhbF9zYXRlbGxpdGUiLCJzZWF0IiwiY2Fub2UiLCJhbmNob3IiLCJjb25zdHJ1Y3Rpb24iLCJmdWVscHVtcCIsImJ1c3N0b3AiLCJ2ZXJ0aWNhbF90cmFmZmljX2xpZ2h0IiwidHJhZmZpY19saWdodCIsImNoZWNrZXJlZF9mbGFnIiwic2hpcCIsImZlcnJpc193aGVlbCIsInJvbGxlcl9jb2FzdGVyIiwiY2Fyb3VzZWxfaG9yc2UiLCJidWlsZGluZ19jb25zdHJ1Y3Rpb24iLCJmb2dneSIsInRva3lvX3Rvd2VyIiwiZmFjdG9yeSIsImZvdW50YWluIiwicmljZV9zY2VuZSIsIm1vdW50YWluIiwibW91bnRhaW5fc25vdyIsIm1vdW50X2Z1amkiLCJ2b2xjYW5vIiwiamFwYW4iLCJjYW1waW5nIiwidGVudCIsIm5hdGlvbmFsX3BhcmsiLCJtb3RvcndheSIsInJhaWx3YXlfdHJhY2siLCJzdW5yaXNlIiwic3VucmlzZV9vdmVyX21vdW50YWlucyIsImRlc2VydCIsImJlYWNoX3VtYnJlbGxhIiwiZGVzZXJ0X2lzbGFuZCIsImNpdHlfc3VucmlzZSIsImNpdHlfc3Vuc2V0IiwiY2l0eXNjYXBlIiwibmlnaHRfd2l0aF9zdGFycyIsImJyaWRnZV9hdF9uaWdodCIsIm1pbGt5X3dheSIsInN0YXJzIiwic3BhcmtsZXIiLCJmaXJld29ya3MiLCJyYWluYm93IiwiaG91c2VzIiwiZXVyb3BlYW5fY2FzdGxlIiwiamFwYW5lc2VfY2FzdGxlIiwic3RhZGl1bSIsInN0YXR1ZV9vZl9saWJlcnR5IiwiaG91c2UiLCJob3VzZV93aXRoX2dhcmRlbiIsImRlcmVsaWN0X2hvdXNlIiwib2ZmaWNlIiwiZGVwYXJ0bWVudF9zdG9yZSIsInBvc3Rfb2ZmaWNlIiwiZXVyb3BlYW5fcG9zdF9vZmZpY2UiLCJob3NwaXRhbCIsImJhbmsiLCJob3RlbCIsImNvbnZlbmllbmNlX3N0b3JlIiwic2Nob29sIiwibG92ZV9ob3RlbCIsIndlZGRpbmciLCJjbGFzc2ljYWxfYnVpbGRpbmciLCJjaHVyY2giLCJtb3NxdWUiLCJzeW5hZ29ndWUiLCJrYWFiYSIsInNoaW50b19zaHJpbmUiLCJ3YXRjaCIsImlwaG9uZSIsImNhbGxpbmciLCJjb21wdXRlciIsImtleWJvYXJkIiwiZGVza3RvcF9jb21wdXRlciIsInByaW50ZXIiLCJjb21wdXRlcl9tb3VzZSIsInRyYWNrYmFsbCIsImpveXN0aWNrIiwiY2xhbXAiLCJtaW5pZGlzYyIsImZsb3BweV9kaXNrIiwiY2QiLCJkdmQiLCJ2aHMiLCJjYW1lcmEiLCJjYW1lcmFfZmxhc2giLCJ2aWRlb19jYW1lcmEiLCJtb3ZpZV9jYW1lcmEiLCJmaWxtX3Byb2plY3RvciIsImZpbG1fc3RyaXAiLCJ0ZWxlcGhvbmVfcmVjZWl2ZXIiLCJwaG9uZSIsInBhZ2VyIiwiZmF4IiwidHYiLCJyYWRpbyIsInN0dWRpb19taWNyb3Bob25lIiwibGV2ZWxfc2xpZGVyIiwiY29udHJvbF9rbm9icyIsInN0b3B3YXRjaCIsInRpbWVyX2Nsb2NrIiwiYWxhcm1fY2xvY2siLCJtYW50ZWxwaWVjZV9jbG9jayIsImhvdXJnbGFzc19mbG93aW5nX3NhbmQiLCJob3VyZ2xhc3MiLCJzYXRlbGxpdGUiLCJiYXR0ZXJ5IiwiZWxlY3RyaWNfcGx1ZyIsImJ1bGIiLCJmbGFzaGxpZ2h0IiwiY2FuZGxlIiwid2FzdGViYXNrZXQiLCJvaWxfZHJ1bSIsIm1vbmV5X3dpdGhfd2luZ3MiLCJkb2xsYXIiLCJ5ZW4iLCJldXJvIiwicG91bmQiLCJtb25leWJhZyIsImNyZWRpdF9jYXJkIiwiZ2VtIiwiYmFsYW5jZV9zY2FsZSIsIndyZW5jaCIsImhhbW1lciIsImhhbW1lcl9hbmRfcGljayIsImhhbW1lcl9hbmRfd3JlbmNoIiwicGljayIsIm51dF9hbmRfYm9sdCIsImdlYXIiLCJjaGFpbnMiLCJndW4iLCJib21iIiwiaG9jaG8iLCJkYWdnZXIiLCJjcm9zc2VkX3N3b3JkcyIsInNoaWVsZCIsInNtb2tpbmciLCJza3VsbF9hbmRfY3Jvc3Nib25lcyIsImNvZmZpbiIsImZ1bmVyYWxfdXJuIiwiYW1waG9yYSIsImNyeXN0YWxfYmFsbCIsInByYXllcl9iZWFkcyIsImJhcmJlciIsImFsZW1iaWMiLCJ0ZWxlc2NvcGUiLCJtaWNyb3Njb3BlIiwiaG9sZSIsInBpbGwiLCJzeXJpbmdlIiwidGhlcm1vbWV0ZXIiLCJsYWJlbCIsImJvb2ttYXJrIiwidG9pbGV0Iiwic2hvd2VyIiwiYmF0aHR1YiIsImtleSIsIm9sZF9rZXkiLCJjb3VjaF9hbmRfbGFtcCIsInNsZWVwaW5nX2JlZCIsImJlZCIsImRvb3IiLCJiZWxsaG9wX2JlbGwiLCJmcmFtZWRfcGljdHVyZSIsIndvcmxkX21hcCIsInBhcmFzb2xfb25fZ3JvdW5kIiwibW95YWkiLCJzaG9wcGluZyIsInNob3BwaW5nX2NhcnQiLCJiYWxsb29uIiwiZmxhZ3MiLCJyaWJib24iLCJnaWZ0IiwiY29uZmV0dGlfYmFsbCIsInRhZGEiLCJkb2xscyIsIndpbmRfY2hpbWUiLCJjcm9zc2VkX2ZsYWdzIiwiaXpha2F5YV9sYW50ZXJuIiwiZW1haWwiLCJlbnZlbG9wZV93aXRoX2Fycm93IiwiaW5jb21pbmdfZW52ZWxvcGUiLCJlLW1haWwiLCJsb3ZlX2xldHRlciIsInBvc3Rib3giLCJtYWlsYm94X2Nsb3NlZCIsIm1haWxib3giLCJtYWlsYm94X3dpdGhfbWFpbCIsIm1haWxib3hfd2l0aF9ub19tYWlsIiwicGFja2FnZSIsInBvc3RhbF9ob3JuIiwiaW5ib3hfdHJheSIsIm91dGJveF90cmF5Iiwic2Nyb2xsIiwicGFnZV93aXRoX2N1cmwiLCJib29rbWFya190YWJzIiwiYmFyX2NoYXJ0IiwiY2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kIiwiY2hhcnRfd2l0aF9kb3dud2FyZHNfdHJlbmQiLCJwYWdlX2ZhY2luZ191cCIsImRhdGUiLCJjYWxlbmRhciIsInNwaXJhbF9jYWxlbmRhciIsImNhcmRfaW5kZXgiLCJjYXJkX2ZpbGVfYm94IiwiYmFsbG90X2JveCIsImZpbGVfY2FiaW5ldCIsImNsaXBib2FyZCIsInNwaXJhbF9ub3RlcGFkIiwiZmlsZV9mb2xkZXIiLCJvcGVuX2ZpbGVfZm9sZGVyIiwiY2FyZF9pbmRleF9kaXZpZGVycyIsIm5ld3NwYXBlcl9yb2xsIiwibmV3c3BhcGVyIiwibm90ZWJvb2siLCJjbG9zZWRfYm9vayIsImdyZWVuX2Jvb2siLCJibHVlX2Jvb2siLCJvcmFuZ2VfYm9vayIsIm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlciIsImxlZGdlciIsImJvb2tzIiwib3Blbl9ib29rIiwibGluayIsInBhcGVyY2xpcCIsInBhcGVyY2xpcHMiLCJzY2lzc29ycyIsInRyaWFuZ3VsYXJfcnVsZXIiLCJzdHJhaWdodF9ydWxlciIsInB1c2hwaW4iLCJyb3VuZF9wdXNocGluIiwidHJpYW5ndWxhcl9mbGFnX29uX3Bvc3QiLCJ3aGl0ZV9mbGFnIiwiYmxhY2tfZmxhZyIsInJhaW5ib3dfZmxhZyIsImNsb3NlZF9sb2NrX3dpdGhfa2V5IiwibG9jayIsInVubG9jayIsImxvY2tfd2l0aF9pbmtfcGVuIiwicGVuIiwiZm91bnRhaW5fcGVuIiwiYmxhY2tfbmliIiwibWVtbyIsInBlbmNpbDIiLCJjcmF5b24iLCJwYWludGJydXNoIiwibWFnIiwibWFnX3JpZ2h0IiwiaGVhcnQiLCJ5ZWxsb3dfaGVhcnQiLCJncmVlbl9oZWFydCIsImJsdWVfaGVhcnQiLCJwdXJwbGVfaGVhcnQiLCJibGFja19oZWFydCIsImJyb2tlbl9oZWFydCIsImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uIiwidHdvX2hlYXJ0cyIsInJldm9sdmluZ19oZWFydHMiLCJoZWFydGJlYXQiLCJoZWFydHB1bHNlIiwic3BhcmtsaW5nX2hlYXJ0IiwiY3VwaWQiLCJnaWZ0X2hlYXJ0IiwiaGVhcnRfZGVjb3JhdGlvbiIsInBlYWNlX3N5bWJvbCIsImxhdGluX2Nyb3NzIiwic3Rhcl9hbmRfY3Jlc2NlbnQiLCJvbSIsIndoZWVsX29mX2RoYXJtYSIsInN0YXJfb2ZfZGF2aWQiLCJzaXhfcG9pbnRlZF9zdGFyIiwibWVub3JhaCIsInlpbl95YW5nIiwib3J0aG9kb3hfY3Jvc3MiLCJwbGFjZV9vZl93b3JzaGlwIiwib3BoaXVjaHVzIiwiYXJpZXMiLCJ0YXVydXMiLCJnZW1pbmkiLCJjYW5jZXIiLCJsZW8iLCJ2aXJnbyIsImxpYnJhIiwic2NvcnBpdXMiLCJzYWdpdHRhcml1cyIsImNhcHJpY29ybiIsImFxdWFyaXVzIiwicGlzY2VzIiwiaWQiLCJhdG9tX3N5bWJvbCIsInU3YTdhIiwidTUyNzIiLCJyYWRpb2FjdGl2ZSIsImJpb2hhemFyZCIsIm1vYmlsZV9waG9uZV9vZmYiLCJ2aWJyYXRpb25fbW9kZSIsInU2NzA5IiwidTcxMjEiLCJ1NzUzMyIsInU1NWI2IiwidTY3MDgiLCJlaWdodF9wb2ludGVkX2JsYWNrX3N0YXIiLCJ2cyIsImFjY2VwdCIsIndoaXRlX2Zsb3dlciIsImlkZW9ncmFwaF9hZHZhbnRhZ2UiLCJzZWNyZXQiLCJjb25ncmF0dWxhdGlvbnMiLCJ1NTQwOCIsInU2ZTgwIiwidTc5ODEiLCJhIiwiYiIsImFiIiwiY2wiLCJvMiIsInNvcyIsIm5vX2VudHJ5IiwibmFtZV9iYWRnZSIsIm5vX2VudHJ5X3NpZ24iLCJ4IiwibyIsInN0b3Bfc2lnbiIsImFuZ2VyIiwiaG90c3ByaW5ncyIsIm5vX3BlZGVzdHJpYW5zIiwiZG9fbm90X2xpdHRlciIsIm5vX2JpY3ljbGVzIiwibm9uLXBvdGFibGVfd2F0ZXIiLCJ1bmRlcmFnZSIsIm5vX21vYmlsZV9waG9uZXMiLCJleGNsYW1hdGlvbiIsImdyZXlfZXhjbGFtYXRpb24iLCJxdWVzdGlvbiIsImdyZXlfcXVlc3Rpb24iLCJiYW5nYmFuZyIsImludGVycm9iYW5nIiwiMTAwIiwibG93X2JyaWdodG5lc3MiLCJoaWdoX2JyaWdodG5lc3MiLCJ0cmlkZW50IiwiZmxldXJfZGVfbGlzIiwicGFydF9hbHRlcm5hdGlvbl9tYXJrIiwid2FybmluZyIsImNoaWxkcmVuX2Nyb3NzaW5nIiwiYmVnaW5uZXIiLCJyZWN5Y2xlIiwidTYzMDciLCJjaGFydCIsInNwYXJrbGUiLCJlaWdodF9zcG9rZWRfYXN0ZXJpc2siLCJuZWdhdGl2ZV9zcXVhcmVkX2Nyb3NzX21hcmsiLCJ3aGl0ZV9jaGVja19tYXJrIiwiZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSIsImN5Y2xvbmUiLCJsb29wIiwiZ2xvYmVfd2l0aF9tZXJpZGlhbnMiLCJtIiwiYXRtIiwic2EiLCJwYXNzcG9ydF9jb250cm9sIiwiY3VzdG9tcyIsImJhZ2dhZ2VfY2xhaW0iLCJsZWZ0X2x1Z2dhZ2UiLCJ3aGVlbGNoYWlyIiwibm9fc21va2luZyIsIndjIiwicGFya2luZyIsInBvdGFibGVfd2F0ZXIiLCJtZW5zIiwid29tZW5zIiwiYmFieV9zeW1ib2wiLCJyZXN0cm9vbSIsInB1dF9saXR0ZXJfaW5faXRzX3BsYWNlIiwiY2luZW1hIiwic2lnbmFsX3N0cmVuZ3RoIiwia29rbyIsIm5nIiwib2siLCJ1cCIsImNvb2wiLCJuZXciLCJmcmVlIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImtleWNhcF90ZW4iLCJhc3RlcmlzayIsIjEyMzQiLCJhcnJvd19mb3J3YXJkIiwicGF1c2VfYnV0dG9uIiwibmV4dF90cmFja19idXR0b24iLCJzdG9wX2J1dHRvbiIsInJlY29yZF9idXR0b24iLCJwbGF5X29yX3BhdXNlX2J1dHRvbiIsInByZXZpb3VzX3RyYWNrX2J1dHRvbiIsImZhc3RfZm9yd2FyZCIsInJld2luZCIsInR3aXN0ZWRfcmlnaHR3YXJkc19hcnJvd3MiLCJyZXBlYXQiLCJyZXBlYXRfb25lIiwiYXJyb3dfYmFja3dhcmQiLCJhcnJvd191cF9zbWFsbCIsImFycm93X2Rvd25fc21hbGwiLCJhcnJvd19kb3VibGVfdXAiLCJhcnJvd19kb3VibGVfZG93biIsImFycm93X3JpZ2h0IiwiYXJyb3dfbGVmdCIsImFycm93X3VwIiwiYXJyb3dfZG93biIsImFycm93X3VwcGVyX3JpZ2h0IiwiYXJyb3dfbG93ZXJfcmlnaHQiLCJhcnJvd19sb3dlcl9sZWZ0IiwiYXJyb3dfdXBwZXJfbGVmdCIsImFycm93X3VwX2Rvd24iLCJsZWZ0X3JpZ2h0X2Fycm93IiwiYXJyb3dzX2NvdW50ZXJjbG9ja3dpc2UiLCJhcnJvd19yaWdodF9ob29rIiwibGVmdHdhcmRzX2Fycm93X3dpdGhfaG9vayIsImFycm93X2hlYWRpbmdfdXAiLCJhcnJvd19oZWFkaW5nX2Rvd24iLCJoYXNoIiwiaW5mb3JtYXRpb25fc291cmNlIiwiYWJjIiwiYWJjZCIsImNhcGl0YWxfYWJjZCIsInN5bWJvbHMiLCJtdXNpY2FsX25vdGUiLCJub3RlcyIsIndhdnlfZGFzaCIsImN1cmx5X2xvb3AiLCJoZWF2eV9jaGVja19tYXJrIiwiYXJyb3dzX2Nsb2Nrd2lzZSIsImhlYXZ5X3BsdXNfc2lnbiIsImhlYXZ5X21pbnVzX3NpZ24iLCJoZWF2eV9kaXZpc2lvbl9zaWduIiwiaGVhdnlfbXVsdGlwbGljYXRpb25feCIsImhlYXZ5X2RvbGxhcl9zaWduIiwiY3VycmVuY3lfZXhjaGFuZ2UiLCJjb3B5cmlnaHQiLCJyZWdpc3RlcmVkIiwidG0iLCJlbmQiLCJiYWNrIiwib24iLCJ0b3AiLCJzb29uIiwiYmFsbG90X2JveF93aXRoX2NoZWNrIiwicmFkaW9fYnV0dG9uIiwid2hpdGVfY2lyY2xlIiwiYmxhY2tfY2lyY2xlIiwicmVkX2NpcmNsZSIsImxhcmdlX2JsdWVfY2lyY2xlIiwic21hbGxfb3JhbmdlX2RpYW1vbmQiLCJzbWFsbF9ibHVlX2RpYW1vbmQiLCJsYXJnZV9vcmFuZ2VfZGlhbW9uZCIsImxhcmdlX2JsdWVfZGlhbW9uZCIsInNtYWxsX3JlZF90cmlhbmdsZSIsImJsYWNrX3NtYWxsX3NxdWFyZSIsIndoaXRlX3NtYWxsX3NxdWFyZSIsImJsYWNrX2xhcmdlX3NxdWFyZSIsIndoaXRlX2xhcmdlX3NxdWFyZSIsInNtYWxsX3JlZF90cmlhbmdsZV9kb3duIiwiYmxhY2tfbWVkaXVtX3NxdWFyZSIsIndoaXRlX21lZGl1bV9zcXVhcmUiLCJibGFja19tZWRpdW1fc21hbGxfc3F1YXJlIiwid2hpdGVfbWVkaXVtX3NtYWxsX3NxdWFyZSIsImJsYWNrX3NxdWFyZV9idXR0b24iLCJ3aGl0ZV9zcXVhcmVfYnV0dG9uIiwic3BlYWtlciIsInNvdW5kIiwibG91ZF9zb3VuZCIsIm11dGUiLCJtZWdhIiwibG91ZHNwZWFrZXIiLCJiZWxsIiwibm9fYmVsbCIsImJsYWNrX2pva2VyIiwibWFoam9uZyIsInNwYWRlcyIsImNsdWJzIiwiaGVhcnRzIiwiZGlhbW9uZHMiLCJmbG93ZXJfcGxheWluZ19jYXJkcyIsInRob3VnaHRfYmFsbG9vbiIsInJpZ2h0X2FuZ2VyX2J1YmJsZSIsInNwZWVjaF9iYWxsb29uIiwibGVmdF9zcGVlY2hfYnViYmxlIiwiY2xvY2sxIiwiY2xvY2syIiwiY2xvY2szIiwiY2xvY2s0IiwiY2xvY2s1IiwiY2xvY2s2IiwiY2xvY2s3IiwiY2xvY2s4IiwiY2xvY2s5IiwiY2xvY2sxMCIsImNsb2NrMTEiLCJjbG9jazEyIiwiY2xvY2sxMzAiLCJjbG9jazIzMCIsImNsb2NrMzMwIiwiY2xvY2s0MzAiLCJjbG9jazUzMCIsImNsb2NrNjMwIiwiY2xvY2s3MzAiLCJjbG9jazgzMCIsImNsb2NrOTMwIiwiY2xvY2sxMDMwIiwiY2xvY2sxMTMwIiwiY2xvY2sxMjMwIiwiYWZnaGFuaXN0YW4iLCJhbGFuZF9pc2xhbmRzIiwiYWxiYW5pYSIsImFsZ2VyaWEiLCJhbWVyaWNhbl9zYW1vYSIsImFuZG9ycmEiLCJhbmdvbGEiLCJhbmd1aWxsYSIsImFudGFyY3RpY2EiLCJhbnRpZ3VhX2JhcmJ1ZGEiLCJhcmdlbnRpbmEiLCJhcm1lbmlhIiwiYXJ1YmEiLCJhdXN0cmFsaWEiLCJhdXN0cmlhIiwiYXplcmJhaWphbiIsImJhaGFtYXMiLCJiYWhyYWluIiwiYmFuZ2xhZGVzaCIsImJhcmJhZG9zIiwiYmVsYXJ1cyIsImJlbGdpdW0iLCJiZWxpemUiLCJiZW5pbiIsImJlcm11ZGEiLCJiaHV0YW4iLCJib2xpdmlhIiwiY2FyaWJiZWFuX25ldGhlcmxhbmRzIiwiYm9zbmlhX2hlcnplZ292aW5hIiwiYm90c3dhbmEiLCJicmF6aWwiLCJicml0aXNoX2luZGlhbl9vY2Vhbl90ZXJyaXRvcnkiLCJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIiwiYnJ1bmVpIiwiYnVsZ2FyaWEiLCJidXJraW5hX2Zhc28iLCJidXJ1bmRpIiwiY2FwZV92ZXJkZSIsImNhbWJvZGlhIiwiY2FtZXJvb24iLCJjYW5hZGEiLCJjYW5hcnlfaXNsYW5kcyIsImNheW1hbl9pc2xhbmRzIiwiY2VudHJhbF9hZnJpY2FuX3JlcHVibGljIiwiY2hhZCIsImNoaWxlIiwiY24iLCJjaHJpc3RtYXNfaXNsYW5kIiwiY29jb3NfaXNsYW5kcyIsImNvbG9tYmlhIiwiY29tb3JvcyIsImNvbmdvX2JyYXp6YXZpbGxlIiwiY29uZ29fa2luc2hhc2EiLCJjb29rX2lzbGFuZHMiLCJjb3N0YV9yaWNhIiwiY3JvYXRpYSIsImN1YmEiLCJjdXJhY2FvIiwiY3lwcnVzIiwiY3plY2hfcmVwdWJsaWMiLCJkZW5tYXJrIiwiZGppYm91dGkiLCJkb21pbmljYSIsImRvbWluaWNhbl9yZXB1YmxpYyIsImVjdWFkb3IiLCJlZ3lwdCIsImVsX3NhbHZhZG9yIiwiZXF1YXRvcmlhbF9ndWluZWEiLCJlcml0cmVhIiwiZXN0b25pYSIsImV0aGlvcGlhIiwiZXUiLCJmYWxrbGFuZF9pc2xhbmRzIiwiZmFyb2VfaXNsYW5kcyIsImZpamkiLCJmaW5sYW5kIiwiZnIiLCJmcmVuY2hfZ3VpYW5hIiwiZnJlbmNoX3BvbHluZXNpYSIsImZyZW5jaF9zb3V0aGVybl90ZXJyaXRvcmllcyIsImdhYm9uIiwiZ2FtYmlhIiwiZ2VvcmdpYSIsImRlIiwiZ2hhbmEiLCJnaWJyYWx0YXIiLCJncmVlY2UiLCJncmVlbmxhbmQiLCJncmVuYWRhIiwiZ3VhZGVsb3VwZSIsImd1YW0iLCJndWF0ZW1hbGEiLCJndWVybnNleSIsImd1aW5lYSIsImd1aW5lYV9iaXNzYXUiLCJndXlhbmEiLCJoYWl0aSIsImhvbmR1cmFzIiwiaG9uZ19rb25nIiwiaHVuZ2FyeSIsImljZWxhbmQiLCJpbmRpYSIsImluZG9uZXNpYSIsImlyYW4iLCJpcmFxIiwiaXJlbGFuZCIsImlzbGVfb2ZfbWFuIiwiaXNyYWVsIiwiaXQiLCJjb3RlX2Rpdm9pcmUiLCJqYW1haWNhIiwianAiLCJqZXJzZXkiLCJqb3JkYW4iLCJrYXpha2hzdGFuIiwia2VueWEiLCJraXJpYmF0aSIsImtvc292byIsImt1d2FpdCIsImt5cmd5enN0YW4iLCJsYW9zIiwibGF0dmlhIiwibGViYW5vbiIsImxlc290aG8iLCJsaWJlcmlhIiwibGlieWEiLCJsaWVjaHRlbnN0ZWluIiwibGl0aHVhbmlhIiwibHV4ZW1ib3VyZyIsIm1hY2F1IiwibWFjZWRvbmlhIiwibWFkYWdhc2NhciIsIm1hbGF3aSIsIm1hbGF5c2lhIiwibWFsZGl2ZXMiLCJtYWxpIiwibWFsdGEiLCJtYXJzaGFsbF9pc2xhbmRzIiwibWFydGluaXF1ZSIsIm1hdXJpdGFuaWEiLCJtYXVyaXRpdXMiLCJtYXlvdHRlIiwibWV4aWNvIiwibWljcm9uZXNpYSIsIm1vbGRvdmEiLCJtb25hY28iLCJtb25nb2xpYSIsIm1vbnRlbmVncm8iLCJtb250c2VycmF0IiwibW9yb2NjbyIsIm1vemFtYmlxdWUiLCJteWFubWFyIiwibmFtaWJpYSIsIm5hdXJ1IiwibmVwYWwiLCJuZXRoZXJsYW5kcyIsIm5ld19jYWxlZG9uaWEiLCJuZXdfemVhbGFuZCIsIm5pY2FyYWd1YSIsIm5pZ2VyIiwibmlnZXJpYSIsIm5pdWUiLCJub3Jmb2xrX2lzbGFuZCIsIm5vcnRoZXJuX21hcmlhbmFfaXNsYW5kcyIsIm5vcnRoX2tvcmVhIiwibm9yd2F5Iiwib21hbiIsInBha2lzdGFuIiwicGFsYXUiLCJwYWxlc3Rpbmlhbl90ZXJyaXRvcmllcyIsInBhbmFtYSIsInBhcHVhX25ld19ndWluZWEiLCJwYXJhZ3VheSIsInBlcnUiLCJwaGlsaXBwaW5lcyIsInBpdGNhaXJuX2lzbGFuZHMiLCJwb2xhbmQiLCJwb3J0dWdhbCIsInB1ZXJ0b19yaWNvIiwicWF0YXIiLCJyZXVuaW9uIiwicm9tYW5pYSIsInJ1IiwicndhbmRhIiwic3RfYmFydGhlbGVteSIsInN0X2hlbGVuYSIsInN0X2tpdHRzX25ldmlzIiwic3RfbHVjaWEiLCJzdF9waWVycmVfbWlxdWVsb24iLCJzdF92aW5jZW50X2dyZW5hZGluZXMiLCJzYW1vYSIsInNhbl9tYXJpbm8iLCJzYW9fdG9tZV9wcmluY2lwZSIsInNhdWRpX2FyYWJpYSIsInNlbmVnYWwiLCJzZXJiaWEiLCJzZXljaGVsbGVzIiwic2llcnJhX2xlb25lIiwic2luZ2Fwb3JlIiwic2ludF9tYWFydGVuIiwic2xvdmFraWEiLCJzbG92ZW5pYSIsInNvbG9tb25faXNsYW5kcyIsInNvbWFsaWEiLCJzb3V0aF9hZnJpY2EiLCJzb3V0aF9nZW9yZ2lhX3NvdXRoX3NhbmR3aWNoX2lzbGFuZHMiLCJrciIsInNvdXRoX3N1ZGFuIiwiZXMiLCJzcmlfbGFua2EiLCJzdWRhbiIsInN1cmluYW1lIiwic3dhemlsYW5kIiwic3dlZGVuIiwic3dpdHplcmxhbmQiLCJzeXJpYSIsInRhaXdhbiIsInRhamlraXN0YW4iLCJ0YW56YW5pYSIsInRoYWlsYW5kIiwidGltb3JfbGVzdGUiLCJ0b2dvIiwidG9rZWxhdSIsInRvbmdhIiwidHJpbmlkYWRfdG9iYWdvIiwidHVuaXNpYSIsInRyIiwidHVya21lbmlzdGFuIiwidHVya3NfY2FpY29zX2lzbGFuZHMiLCJ0dXZhbHUiLCJ1Z2FuZGEiLCJ1a3JhaW5lIiwidW5pdGVkX2FyYWJfZW1pcmF0ZXMiLCJ1ayIsInVzIiwidXNfdmlyZ2luX2lzbGFuZHMiLCJ1cnVndWF5IiwidXpiZWtpc3RhbiIsInZhbnVhdHUiLCJ2YXRpY2FuX2NpdHkiLCJ2ZW5lenVlbGEiLCJ2aWV0bmFtIiwid2FsbGlzX2Z1dHVuYSIsIndlc3Rlcm5fc2FoYXJhIiwieWVtZW4iLCJ6YW1iaWEiLCJ6aW1iYWJ3ZSIsInN0YXJfc3RydWNrIiwiZmFjZV93aXRoX3JhaXNlZF9leWVicm93IiwiZXhwbG9kaW5nX2hlYWQiLCJjcmF6eV9mYWNlIiwiZmFjZV93aXRoX3N5bWJvbHNfb3Zlcl9tb3V0aCIsImZhY2Vfdm9taXRpbmciLCJzaHVzaGluZ19mYWNlIiwiZmFjZV93aXRoX2hhbmRfb3Zlcl9tb3V0aCIsImZhY2Vfd2l0aF9tb25vY2xlIiwiY2hpbGQiLCJhZHVsdCIsIm9sZGVyX2FkdWx0Iiwid29tYW5fd2l0aF9oZWFkc2NhcmYiLCJiZWFyZGVkX3BlcnNvbiIsImJyZWFzdF9mZWVkaW5nIiwibWFnZSIsIndvbWFuX21hZ2UiLCJmYWlyeSIsInZhbXBpcmUiLCJtZXJtYWlkIiwibWVybWFuIiwiZWxmIiwiZ2VuaWUiLCJ3b21hbl9nZW5pZSIsInpvbWJpZSIsIndvbWFuX3pvbWJpZSIsInBlcnNvbl9pbl9zdGVhbXlfcm9vbSIsIndvbWFuX2luX3N0ZWFteV9yb29tIiwicGVyc29uX2NsaW1iaW5nIiwid29tYW5fY2xpbWJpbmciLCJwZXJzb25faW5fbG90dXNfcG9zaXRpb24iLCJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiIsImxvdmVfeW91X2dlc3R1cmUiLCJwYWxtc191cF90b2dldGhlciIsImJyYWluIiwib3JhbmdlX2hlYXJ0Iiwic2NhcmYiLCJnbG92ZXMiLCJjb2F0Iiwic29ja3MiLCJiaWxsZWRfY2FwIiwiemVicmEiLCJnaXJhZmZlIiwiaGVkZ2Vob2ciLCJzYXVyb3BvZCIsInRfcmV4IiwiY3JpY2tldCIsImNvY29udXQiLCJicm9jY29saSIsInByZXR6ZWwiLCJjdXRfb2ZfbWVhdCIsInNhbmR3aWNoIiwiYm93bF93aXRoX3Nwb29uIiwiY2FubmVkX2Zvb2QiLCJkdW1wbGluZyIsImZvcnR1bmVfY29va2llIiwidGFrZW91dF9ib3giLCJwaWUiLCJjdXBfd2l0aF9zdHJhdyIsImNob3BzdGlja3MiLCJmbHlpbmdfc2F1Y2VyIiwic2xlZCIsImN1cmxpbmdfc3RvbmUiLCJzdmFsYmFyZF9hbmRfamFuX21heWVuIiwic3RfbWFydGluIiwidXNfb3V0bHlpbmdfaXNsYW5kcyIsInRyaXN0YW5fZGFfY3VuaGEiLCJoZWFyZF9hbmRfbWNfZG9uYWxkX2lzbGFuZHMiLCJjZXV0YV9hbmRfbWVsaWxsYSIsImRpZWdvX2dhcmNpYSIsImFzY2Vuc2lvbl9pc2xhbmQiLCJib3V2ZXRfaXNsYW5kIiwiY2xpcHBlcnRvbl9pc2xhbmQiLCJ1bml0ZWRfbmF0aW9ucyIsInNtaWxpbmdfZmFjZV93aXRoX3RocmVlX2hlYXJ0cyIsImhvdF9mYWNlIiwiY29sZF9mYWNlIiwicGFydHlpbmdfZmFjZSIsIndvb3p5X2ZhY2UiLCJwbGVhZGluZ19mYWNlIiwibWFuX3JlZF9oYWlyZWQiLCJtYW5fY3VybHlfaGFpcmVkIiwibWFuX3doaXRlX2hhaXJlZCIsIm1hbl9iYWxkIiwid29tYW5fcmVkX2hhaXJlZCIsIndvbWFuX2N1cmx5X2hhaXJlZCIsIndvbWFuX3doaXRlX2hhaXJlZCIsIndvbWFuX2JhbGQiLCJzdXBlcmhlcm8iLCJtYW5fc3VwZXJoZXJvIiwid29tYW5fc3VwZXJoZXJvIiwic3VwZXJ2aWxsYWluIiwid29tYW5fc3VwZXJ2aWxsYWluIiwibWFuX3N1cGVydmlsbGFpbiIsImxlZyIsImZvb3QiLCJib25lIiwidG9vdGgiLCJnb2dnbGVzIiwibGFiX2NvYXQiLCJoaWtpbmdfYm9vdCIsImZsYXRfc2hvZSIsInJhY2Nvb24iLCJsbGFtYSIsImhpcHBvcG90YW11cyIsImthbmdhcm9vIiwiYmFkZ2VyIiwic3dhbiIsInBlYWNvY2siLCJwYXJyb3QiLCJsb2JzdGVyIiwibW9zcXVpdG8iLCJtaWNyb2JlIiwibWFuZ28iLCJsZWFmeV9ncmVlbiIsImJhZ2VsIiwic2FsdCIsIm1vb25fY2FrZSIsImN1cGNha2UiLCJjb21wYXNzIiwiYnJpY2siLCJza2F0ZWJvYXJkIiwibHVnZ2FnZSIsImZpcmVjcmFja2VyIiwicmVkX2dpZnRfZW52ZWxvcGUiLCJzb2Z0YmFsbCIsImZseWluZ19kaXNjIiwibGFjcm9zc2UiLCJuYXphcl9hbXVsZXQiLCJqaWdzYXciLCJ0ZWRkeV9iZWFyIiwiY2hlc3NfcGF3biIsInRocmVhZCIsInlhcm4iLCJhYmFjdXMiLCJyZWNlaXB0IiwidG9vbGJveCIsIm1hZ25ldCIsInRlc3RfdHViZSIsInBldHJpX2Rpc2giLCJkbmEiLCJsb3Rpb25fYm90dGxlIiwic2FmZXR5X3BpbiIsImJyb29tIiwiYmFza2V0Iiwicm9sbF9vZl90b2lsZXRfcGFwZXIiLCJzb2FwIiwic3BvbmdlIiwiZmlyZV9leHRpbmd1aXNoZXIiLCJpbmZpbml0eSIsInBpcmF0ZV9mbGFnIiwid2FmZmxlIiwib3R0ZXIiLCJzbG90aCIsImljZV9jdWJlIiwicmluZ2VyX3BsYW5ldCIsImZsYW1pbmdvIiwieWF3bmluZ19mYWNlIiwicGluY2hpbmdfaGFuZCIsInNlcnZpY2VfZG9nIiwib3Jhbmd1dGFuIiwiYXV0b19yaWNrc2hhdyIsInBhcmFjaHV0ZSIsInlvLXlvIiwia2l0ZSIsImJyb3duX3NxdWFyZSIsInB1cnBsZV9zcXVhcmUiLCJibHVlX3NxdWFyZSIsImdyZWVuX3NxdWFyZSIsInllbGxvd19zcXVhcmUiLCJvcmFuZ2Vfc3F1YXJlIiwicmVkX3NxdWFyZSIsImJyb3duX2NpcmNsZSIsInB1cnBsZV9jaXJjbGUiLCJncmVlbl9jaXJjbGUiLCJ5ZWxsb3dfY2lyY2xlIiwib3JhbmdlX2NpcmNsZSIsInJhem9yIiwiY2hhaXIiLCJzdGV0aG9zY29wZSIsImFkaGVzaXZlX2JhbmRhZ2UiLCJkcm9wX29mX2Jsb29kIiwicHJvYmluZ19jYW5lIiwiYXhlIiwiZGl5YV9sYW1wIiwiYmFuam8iLCJiYWxsZXRfc2hvZXMiLCJzaG9ydHMiLCJicmllZnMiLCJvbmVfcGllY2Vfc3dpbXN1aXQiLCJzYXJpIiwic2FmZXR5X3Zlc3QiLCJkaXZpbmdfbWFzayIsIm1vdG9yaXplZF93aGVlbGNoYWlyIiwibWFudWFsX3doZWVsY2hhaXIiLCJoaW5kdV90ZW1wbGUiLCJtYXTDqSIsImJldmVyYWdlX2JveCIsIm95c3RlciIsImJ1dHRlciIsImZhbGFmZWwiLCJvbmlvbiIsImdhcmxpYyIsInNrdW5rIiwiZ3VpZGVfZG9nIiwicGVvcGxlX2hvbGRpbmdfaGFuZHMiLCJ3b21hbl9pbl9tYW51YWxfd2hlZWxjaGFpciIsIm1hbl9pbl9tYW51YWxfd2hlZWxjaGFpciIsIndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwibWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwid29tYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCJ3b21hbl9rbmVlbGluZyIsIm1hbl9rbmVlbGluZyIsIm1hbl9zdGFuZGluZyIsIndvbWFuX3N0YW5kaW5nIiwiZGVhZl93b21hbiIsImRlYWZfbWFuIiwiaGVhcl93aXRoX2hlYXJpbmdfYWlkIiwibWVjaGFuaWNhbF9sZWciLCJtZWNoYW5pY2FsX2FybSIsIndoaXRlX2hlYXJ0IiwiYnJvd25faGVhcnQiLCJ0cmFuc2dlbmRlcl9mbGFnIl0sZS50b25hYmxlRW1vamlzPVsicmFpc2VkX2hhbmRzIiwiY2xhcCIsIndhdmUiLCJjYWxsX21lX2hhbmQiLCIrMSIsIi0xIiwiZmFjZXB1bmNoIiwiZmlzdCIsImZpc3RfbGVmdCIsImZpc3RfcmlnaHQiLCJ2Iiwib2tfaGFuZCIsInJhaXNlZF9oYW5kIiwicmFpc2VkX2JhY2tfb2ZfaGFuZCIsIm9wZW5faGFuZHMiLCJtdXNjbGUiLCJwcmF5IiwicG9pbnRfdXAiLCJwb2ludF91cF8yIiwicG9pbnRfZG93biIsInBvaW50X2xlZnQiLCJwb2ludF9yaWdodCIsImZ1IiwicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQiLCJtZXRhbCIsImNyb3NzZWRfZmluZ2VycyIsInZ1bGNhbl9zYWx1dGUiLCJ3cml0aW5nX2hhbmQiLCJzZWxmaWUiLCJuYWlsX2NhcmUiLCJlYXIiLCJub3NlIiwiYmFieSIsImJveSIsImdpcmwiLCJtYW4iLCJ3b21hbiIsImJsb25kZV93b21hbiIsImJsb25kZV9tYW4iLCJvbGRlcl9tYW4iLCJvbGRlcl93b21hbiIsIm1hbl93aXRoX2d1YV9waV9tYW8iLCJ3b21hbl93aXRoX3R1cmJhbiIsIm1hbl93aXRoX3R1cmJhbiIsInBvbGljZXdvbWFuIiwicG9saWNlbWFuIiwiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbiIsImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuIiwiZ3VhcmRzd29tYW4iLCJndWFyZHNtYW4iLCJtYWxlX2RldGVjdGl2ZSIsIndvbWFuX2hlYWx0aF93b3JrZXIiLCJtYW5faGVhbHRoX3dvcmtlciIsIndvbWFuX2Zhcm1lciIsIm1hbl9mYXJtZXIiLCJ3b21hbl9jb29rIiwibWFuX2Nvb2siLCJ3b21hbl9zdHVkZW50IiwibWFuX3N0dWRlbnQiLCJ3b21hbl9zaW5nZXIiLCJtYW5fc2luZ2VyIiwid29tYW5fdGVhY2hlciIsIm1hbl90ZWFjaGVyIiwid29tYW5fZmFjdG9yeV93b3JrZXIiLCJtYW5fZmFjdG9yeV93b3JrZXIiLCJ3b21hbl90ZWNobm9sb2dpc3QiLCJtYW5fdGVjaG5vbG9naXN0Iiwid29tYW5fb2ZmaWNlX3dvcmtlciIsIm1hbl9vZmZpY2Vfd29ya2VyIiwid29tYW5fbWVjaGFuaWMiLCJtYW5fbWVjaGFuaWMiLCJ3b21hbl9zY2llbnRpc3QiLCJtYW5fc2NpZW50aXN0Iiwid29tYW5fYXJ0aXN0IiwibWFuX2FydGlzdCIsIndvbWFuX2ZpcmVmaWdodGVyIiwibWFuX2ZpcmVmaWdodGVyIiwid29tYW5fcGlsb3QiLCJtYW5fcGlsb3QiLCJ3b21hbl9hc3Ryb25hdXQiLCJtYW5fYXN0cm9uYXV0Iiwid29tYW5fanVkZ2UiLCJtYW5fanVkZ2UiLCJtcnNfY2xhdXMiLCJzYW50YSIsImFuZ2VsIiwicHJlZ25hbnRfd29tYW4iLCJwcmluY2VzcyIsInByaW5jZSIsImJyaWRlX3dpdGhfdmVpbCIsIm1hbl9pbl90dXhlZG8iLCJydW5uaW5nX3dvbWFuIiwicnVubmluZ19tYW4iLCJ3YWxraW5nX3dvbWFuIiwid2Fsa2luZ19tYW4iLCJkYW5jZXIiLCJtYW5fZGFuY2luZyIsImJvd2luZ193b21hbiIsImJvd2luZ19tYW4iLCJtYW5fZmFjZXBhbG1pbmciLCJ3b21hbl9mYWNlcGFsbWluZyIsIndvbWFuX3NocnVnZ2luZyIsIm1hbl9zaHJ1Z2dpbmciLCJ0aXBwaW5nX2hhbmRfd29tYW4iLCJ0aXBwaW5nX2hhbmRfbWFuIiwibm9fZ29vZF93b21hbiIsIm5vX2dvb2RfbWFuIiwib2tfd29tYW4iLCJva19tYW4iLCJyYWlzaW5nX2hhbmRfd29tYW4iLCJyYWlzaW5nX2hhbmRfbWFuIiwicG91dGluZ193b21hbiIsInBvdXRpbmdfbWFuIiwiZnJvd25pbmdfd29tYW4iLCJmcm93bmluZ19tYW4iLCJoYWlyY3V0X3dvbWFuIiwiaGFpcmN1dF9tYW4iLCJtYXNzYWdlX3dvbWFuIiwibWFzc2FnZV9tYW4iLCJnb2xmaW5nX21hbiIsInNub3dib2FyZGVyIiwid29tYW5fY2FydHdoZWVsaW5nIiwibWFuX2NhcnR3aGVlbGluZyIsIndvbWFuX3BsYXlpbmdfaGFuZGJhbGwiLCJtYW5fcGxheWluZ19oYW5kYmFsbCIsInJvd2luZ193b21hbiIsInJvd2luZ19tYW4iLCJzd2ltbWluZ193b21hbiIsInN3aW1taW5nX21hbiIsIndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyIsIm1hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCJzdXJmaW5nX3dvbWFuIiwic3VyZmluZ19tYW4iLCJiYXRoIiwiYmFza2V0YmFsbF9tYW4iLCJ3ZWlnaHRfbGlmdGluZ19tYW4iLCJiaWtpbmdfd29tYW4iLCJiaWtpbmdfbWFuIiwibW91bnRhaW5fYmlraW5nX3dvbWFuIiwibW91bnRhaW5fYmlraW5nX21hbiIsImhvcnNlX3JhY2luZyIsImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZyIsIndvbWFuX2p1Z2dsaW5nIiwibWFuX2p1Z2dsaW5nIiwic2xlZXBpbmdfYmVkIiwiY2hpbGQiLCJhZHVsdCIsIm9sZGVyX2FkdWx0Iiwid29tYW5fd2l0aF9oZWFkc2NhcmYiLCJiZWFyZGVkX3BlcnNvbiIsImJyZWFzdF9mZWVkaW5nIiwibWFnZSIsIndvbWFuX21hZ2UiLCJmYWlyeSIsInZhbXBpcmUiLCJtZXJtYWlkIiwibWVybWFuIiwiZWxmIiwicGVyc29uX2luX3N0ZWFteV9yb29tIiwid29tYW5faW5fc3RlYW15X3Jvb20iLCJwZXJzb25fY2xpbWJpbmciLCJ3b21hbl9jbGltYmluZyIsInBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbiIsIndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uIiwibG92ZV95b3VfZ2VzdHVyZSIsInBhbG1zX3VwX3RvZ2V0aGVyIl0sZS5hbGlhc2VzPXtyaWdodF9hbmdlcl9idWJibGU6WyJhbmdlcl9yaWdodCJdLGJhbGxvdF9ib3g6WyJiYWxsb3RfYm94X3dpdGhfYmFsbG90Il0sYmFza2V0YmFsbF9tYW46WyJiYXNrZXRiYWxsX3BsYXllciIsInBlcnNvbl93aXRoX2JhbGwiXSxiZWFjaF91bWJyZWxsYTpbInVtYnJlbGxhX29uX2dyb3VuZCIsImJlYWNoIiwiYmVhY2hfd2l0aF91bWJyZWxsYSJdLHBhcmFzb2xfb25fZ3JvdW5kOlsidW1icmVsbGFfb25fZ3JvdW5kIl0sYmVsbGhvcF9iZWxsOlsiYmVsbGhvcCJdLGJpb2hhemFyZDpbImJpb2hhemFyZF9zaWduIl0sYm93X2FuZF9hcnJvdzpbImFyY2hlcnkiXSxzcGlyYWxfY2FsZW5kYXI6WyJjYWxlbmRhcl9zcGlyYWwiLCJzcGlyYWxfY2FsZW5kYXJfcGFkIl0sY2FyZF9maWxlX2JveDpbImNhcmRfYm94Il0sY2hhbXBhZ25lOlsiYm90dGxlX3dpdGhfcG9wcGluZ19jb3JrIl0sY2hlZXNlOlsiY2hlZXNlX3dlZGdlIl0sY2l0eV9zdW5zZXQ6WyJjaXR5X2R1c2siXSxjb3VjaF9hbmRfbGFtcDpbImNvdWNoIl0sY3JheW9uOlsibG93ZXJfbGVmdF9jcmF5b24iXSxjcmlja2V0X2JhdF9hbmRfYmFsbDpbImNyaWNrZXRfYmF0X2JhbGwiXSxsYXRpbl9jcm9zczpbImNyb3NzIl0sZGFnZ2VyOlsiZGFnZ2VyX2tuaWZlIl0sZGVza3RvcF9jb21wdXRlcjpbImRlc2t0b3AiXSxjYXJkX2luZGV4X2RpdmlkZXJzOlsiZGl2aWRlcnMiXSxkb3ZlOlsiZG92ZV9vZl9wZWFjZSJdLGZvb3RwcmludHM6WyJmZWV0Il0sZmlyZTpbImZsYW1lIl0sYmxhY2tfZmxhZzpbImZsYWdfYmxhY2siLCJ3YXZpbmdfYmxhY2tfZmxhZyJdLGNuOlsiZmxhZ19jbiJdLGRlOlsiZmxhZ19kZSJdLGVzOlsiZmxhZ19lcyJdLGZyOlsiZmxhZ19mciJdLHVrOlsiZ2IiLCJmbGFnX2diIl0saXQ6WyJmbGFnX2l0Il0sanA6WyJmbGFnX2pwIl0sa3I6WyJmbGFnX2tyIl0scnU6WyJmbGFnX3J1Il0sdXM6WyJmbGFnX3VzIl0sd2hpdGVfZmxhZzpbImZsYWdfd2hpdGUiLCJ3YXZpbmdfd2hpdGVfZmxhZyJdLHBsYXRlX3dpdGhfY3V0bGVyeTpbImZvcmtfa25pZmVfcGxhdGUiLCJmb3JrX2FuZF9rbmlmZV93aXRoX3BsYXRlIl0sZnJhbWVkX3BpY3R1cmU6WyJmcmFtZV9waG90byIsImZyYW1lX3dpdGhfcGljdHVyZSJdLGhhbW1lcl9hbmRfcGljazpbImhhbW1lcl9waWNrIl0saGVhdnlfaGVhcnRfZXhjbGFtYXRpb246WyJoZWFydF9leGNsYW1hdGlvbiIsImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uX21hcmtfb3JuYW1lbnQiXSxob3VzZXM6WyJob21lcyIsImhvdXNlX2J1aWxkaW5ncyJdLGhvdGRvZzpbImhvdF9kb2ciXSxkZXJlbGljdF9ob3VzZTpbImhvdXNlX2FiYW5kb25lZCIsImRlcmVsaWN0X2hvdXNlX2J1aWxkaW5nIl0sZGVzZXJ0X2lzbGFuZDpbImlzbGFuZCJdLG9sZF9rZXk6WyJrZXkyIl0sbGF1Z2hpbmc6WyJzYXRpc2ZpZWQiXSxidXNpbmVzc19zdWl0X2xldml0YXRpbmc6WyJsZXZpdGF0ZSIsIm1hbl9pbl9idXNpbmVzc19zdWl0X2xldml0YXRpbmciXSx3ZWlnaHRfbGlmdGluZ19tYW46WyJsaWZ0ZXIiLCJ3ZWlnaHRfbGlmdGVyIl0sbWVkYWxfc3BvcnRzOlsibWVkYWwiLCJzcG9ydHNfbWVkYWwiXSxtZXRhbDpbInNpZ25fb2ZfdGhlX2hvcm5zIl0sZnU6WyJtaWRkbGVfZmluZ2VyIiwicmV2ZXJzZWRfaGFuZF93aXRoX21pZGRsZV9maW5nZXJfZXh0ZW5kZWQiXSxtb3RvcmN5Y2xlOlsicmFjaW5nX21vdG9yY3ljbGUiXSxtb3VudGFpbl9zbm93Olsic25vd19jYXBwZWRfbW91bnRhaW4iXSxuZXdzcGFwZXJfcm9sbDpbIm5ld3NwYXBlcjIiLCJyb2xsZWRfdXBfbmV3c3BhcGVyIl0sc3BpcmFsX25vdGVwYWQ6WyJub3RlcGFkX3NwaXJhbCIsInNwaXJhbF9ub3RlX3BhZCJdLG9pbF9kcnVtOlsib2lsIl0sb2xkZXJfd29tYW46WyJncmFuZG1hIl0scGFpbnRicnVzaDpbImxvd2VyX2xlZnRfcGFpbnRicnVzaCJdLHBhcGVyY2xpcHM6WyJsaW5rZWRfcGFwZXJjbGlwcyJdLHBhdXNlX2J1dHRvbjpbImRvdWJsZV92ZXJ0aWNhbF9iYXIiXSxwZWFjZV9zeW1ib2w6WyJwZWFjZSJdLGZvdW50YWluX3BlbjpbInBlbl9mb3VudGFpbiIsImxvd2VyX2xlZnRfZm91bnRhaW5fcGVuIl0scGluZ19wb25nOlsidGFibGVfdGVubmlzIl0scGxhY2Vfb2Zfd29yc2hpcDpbIndvcnNoaXBfc3ltYm9sIl0scG9vcDpbInNoaXQiLCJoYW5rZXkiLCJwb28iXSxyYWRpb2FjdGl2ZTpbInJhZGlvYWN0aXZlX3NpZ24iXSxyYWlsd2F5X3RyYWNrOlsicmFpbHJvYWRfdHJhY2siXSxyb2JvdDpbInJvYm90X2ZhY2UiXSxza3VsbDpbInNrZWxldG9uIl0sc2t1bGxfYW5kX2Nyb3NzYm9uZXM6WyJza3VsbF9jcm9zc2JvbmVzIl0sc3BlYWtpbmdfaGVhZDpbInNwZWFraW5nX2hlYWRfaW5fc2lsaG91ZXR0ZSJdLG1hbGVfZGV0ZWN0aXZlOlsic3B5Iiwic2xldXRoX29yX3NweSJdLHRoaW5raW5nOlsidGhpbmtpbmdfZmFjZSJdLCItMSI6WyJ0aHVtYnNkb3duIl0sIisxIjpbInRodW1ic3VwIl0sY2xvdWRfd2l0aF9saWdodG5pbmdfYW5kX3JhaW46WyJ0aHVuZGVyX2Nsb3VkX3JhaW4iLCJ0aHVuZGVyX2Nsb3VkX2FuZF9yYWluIl0sdGlja2V0czpbImFkbWlzc2lvbl90aWNrZXRzIl0sbmV4dF90cmFja19idXR0b246WyJ0cmFja19uZXh0IiwibmV4dF90cmFjayJdLHByZXZpb3VzX3RyYWNrX2J1dHRvbjpbInRyYWNrX3ByZXZpb3VzIiwicHJldmlvdXNfdHJhY2siXSx1bmljb3JuOlsidW5pY29ybl9mYWNlIl0sZnVuZXJhbF91cm46WyJ1cm4iXSxzdW5fYmVoaW5kX2xhcmdlX2Nsb3VkOlsid2hpdGVfc3VuX2Nsb3VkIiwid2hpdGVfc3VuX2JlaGluZF9jbG91ZCJdLHN1bl9iZWhpbmRfcmFpbl9jbG91ZDpbIndoaXRlX3N1bl9yYWluX2Nsb3VkIiwid2hpdGVfc3VuX2JlaGluZF9jbG91ZF93aXRoX3JhaW4iXSxwYXJ0bHlfc3Vubnk6WyJ3aGl0ZV9zdW5fc21hbGxfY2xvdWQiLCJ3aGl0ZV9zdW5fd2l0aF9zbWFsbF9jbG91ZCJdLG9wZW5fdW1icmVsbGE6WyJ1bWJyZWxsYTIiXSxoYW1tZXJfYW5kX3dyZW5jaDpbInRvb2xzIl0sZmFjZV93aXRoX3RoZXJtb21ldGVyOlsidGhlcm1vbWV0ZXJfZmFjZSJdLHRpbWVyX2Nsb2NrOlsidGltZXIiXSxrZXljYXBfdGVuOlsidGVuIl0sbWVtbzpbInBlbmNpbCJdLHJlc2N1ZV93b3JrZXJfaGVsbWV0OlsiaGVsbWV0X3dpdGhfY3Jvc3MiLCJoZWxtZXRfd2l0aF93aGl0ZV9jcm9zcyJdLHNsaWdodGx5X3NtaWxpbmdfZmFjZTpbInNsaWdodGx5X3NtaWxpbmciLCJzbGlnaHRfc21pbGUiXSxjb25zdHJ1Y3Rpb25fd29ya2VyX21hbjpbImNvbnN0cnVjdGlvbl93b3JrZXIiXSx1cHNpZGVfZG93bl9mYWNlOlsidXBzaWRlX2Rvd24iXSxtb25leV9tb3V0aF9mYWNlOlsibW9uZXlfbW91dGgiXSxuZXJkX2ZhY2U6WyJuZXJkIl0saHVnczpbImh1Z2dpbmciLCJodWdnaW5nX2ZhY2UiXSxyb2xsX2V5ZXM6WyJyb2xsaW5nX2V5ZXMiLCJmYWNlX3dpdGhfcm9sbGluZ19leWVzIl0sc2xpZ2h0bHlfZnJvd25pbmdfZmFjZTpbInNsaWdodF9mcm93biJdLGZyb3duaW5nX2ZhY2U6WyJmcm93bmluZzIiLCJ3aGl0ZV9mcm93bmluZ19mYWNlIl0semlwcGVyX21vdXRoX2ZhY2U6WyJ6aXBwZXJfbW91dGgiXSxmYWNlX3dpdGhfaGVhZF9iYW5kYWdlOlsiaGVhZF9iYW5kYWdlIl0scmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQ6WyJoYW5kX3NwbGF5ZWQiXSxyYWlzZWRfaGFuZDpbImhhbmQiXSx2dWxjYW5fc2FsdXRlOlsidnVsY2FuIiwicmFpc2VkX2hhbmRfd2l0aF9wYXJ0X2JldHdlZW5fbWlkZGxlX2FuZF9yaW5nX2ZpbmdlcnMiXSxwb2xpY2VtYW46WyJjb3AiXSxydW5uaW5nX21hbjpbInJ1bm5lciJdLHdhbGtpbmdfbWFuOlsid2Fsa2luZyJdLGJvd2luZ19tYW46WyJib3ciXSxub19nb29kX3dvbWFuOlsibm9fZ29vZCJdLHJhaXNpbmdfaGFuZF93b21hbjpbInJhaXNpbmdfaGFuZCJdLHBvdXRpbmdfd29tYW46WyJwZXJzb25fd2l0aF9wb3V0aW5nX2ZhY2UiXSxmcm93bmluZ193b21hbjpbInBlcnNvbl9mcm93bmluZyJdLGhhaXJjdXRfd29tYW46WyJoYWlyY3V0Il0sbWFzc2FnZV93b21hbjpbIm1hc3NhZ2UiXSx0c2hpcnQ6WyJzaGlydCJdLGJpa2luZ19tYW46WyJiaWN5Y2xpc3QiXSxtb3VudGFpbl9iaWtpbmdfbWFuOlsibW91bnRhaW5fYmljeWNsaXN0Il0scGFzc2VuZ2VyX3NoaXA6WyJjcnVpc2Vfc2hpcCJdLG1vdG9yX2JvYXQ6WyJtb3RvcmJvYXQiLCJib2F0Il0sZmxpZ2h0X2Fycml2YWw6WyJhaXJwbGFuZV9hcnJpdmluZyJdLGZsaWdodF9kZXBhcnR1cmU6WyJhaXJwbGFuZV9kZXBhcnR1cmUiXSxzbWFsbF9haXJwbGFuZTpbImFpcnBsYW5lX3NtYWxsIl0scmFjaW5nX2NhcjpbInJhY2VfY2FyIl0sZmFtaWx5X21hbl93b21hbl9ib3lfYm95OlsiZmFtaWx5X21hbl93b21hbl9ib3lzIl0sZmFtaWx5X21hbl93b21hbl9naXJsX2dpcmw6WyJmYW1pbHlfbWFuX3dvbWFuX2dpcmxzIl0sZmFtaWx5X3dvbWFuX3dvbWFuX2JveTpbImZhbWlseV93b21lbl9ib3kiXSxmYW1pbHlfd29tYW5fd29tYW5fZ2lybDpbImZhbWlseV93b21lbl9naXJsIl0sZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95OlsiZmFtaWx5X3dvbWVuX2dpcmxfYm95Il0sZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3k6WyJmYW1pbHlfd29tZW5fYm95cyJdLGZhbWlseV93b21hbl93b21hbl9naXJsX2dpcmw6WyJmYW1pbHlfd29tZW5fZ2lybHMiXSxmYW1pbHlfbWFuX21hbl9ib3k6WyJmYW1pbHlfbWVuX2JveSJdLGZhbWlseV9tYW5fbWFuX2dpcmw6WyJmYW1pbHlfbWVuX2dpcmwiXSxmYW1pbHlfbWFuX21hbl9naXJsX2JveTpbImZhbWlseV9tZW5fZ2lybF9ib3kiXSxmYW1pbHlfbWFuX21hbl9ib3lfYm95OlsiZmFtaWx5X21lbl9ib3lzIl0sZmFtaWx5X21hbl9tYW5fZ2lybF9naXJsOlsiZmFtaWx5X21lbl9naXJscyJdLGNsb3VkX3dpdGhfbGlnaHRuaW5nOlsiY2xvdWRfbGlnaHRuaW5nIl0sdG9ybmFkbzpbImNsb3VkX3Rvcm5hZG8iLCJjbG91ZF93aXRoX3Rvcm5hZG8iXSxjbG91ZF93aXRoX3JhaW46WyJjbG91ZF9yYWluIl0sY2xvdWRfd2l0aF9zbm93OlsiY2xvdWRfc25vdyJdLGFzdGVyaXNrOlsia2V5Y2FwX3N0YXIiXSxzdHVkaW9fbWljcm9waG9uZTpbIm1pY3JvcGhvbmUyIl0sbWVkYWxfbWlsaXRhcnk6WyJtaWxpdGFyeV9tZWRhbCJdLGNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuOlsiZmVtYWxlX2NvdXBsZV93aXRoX2hlYXJ0Il0sY291cGxlX3dpdGhfaGVhcnRfbWFuX21hbjpbIm1hbGVfY291cGxlX3dpdGhfaGVhcnQiXSxjb3VwbGVraXNzX3dvbWFuX3dvbWFuOlsiZmVtYWxlX2NvdXBsZWtpc3MiXSxjb3VwbGVraXNzX21hbl9tYW46WyJtYWxlX2NvdXBsZWtpc3MiXSxob25leWJlZTpbImJlZSJdLGxpb246WyJsaW9uX2ZhY2UiXSxhcnRpZmljaWFsX3NhdGVsbGl0ZTpbInNhdGVsbGl0ZV9vcmJpdGFsIl0sY29tcHV0ZXJfbW91c2U6WyJtb3VzZV90aHJlZV9idXR0b24iLCJ0aHJlZV9idXR0b25fbW91c2UiXSxob2NobzpbImtuaWZlIl0sc3dpbW1pbmdfbWFuOlsic3dpbW1lciJdLHdpbmRfZmFjZTpbIndpbmRfYmxvd2luZ19mYWNlIl0sZ29sZmluZ19tYW46WyJnb2xmZXIiXSxmYWNlcHVuY2g6WyJwdW5jaCJdLGJ1aWxkaW5nX2NvbnN0cnVjdGlvbjpbImNvbnN0cnVjdGlvbl9zaXRlIl0sZmFtaWx5X21hbl93b21hbl9naXJsX2JveTpbImZhbWlseSJdLGljZV9ob2NrZXk6WyJob2NrZXkiXSxzbm93bWFuX3dpdGhfc25vdzpbInNub3dtYW4yIl0scGxheV9vcl9wYXVzZV9idXR0b246WyJwbGF5X3BhdXNlIl0sZmlsbV9wcm9qZWN0b3I6WyJwcm9qZWN0b3IiXSxzaG9wcGluZzpbInNob3BwaW5nX2JhZ3MiXSxvcGVuX2Jvb2s6WyJib29rIl0sbmF0aW9uYWxfcGFyazpbInBhcmsiXSx3b3JsZF9tYXA6WyJtYXAiXSxwZW46WyJwZW5fYmFsbHBvaW50IiwibG93ZXJfbGVmdF9iYWxscG9pbnRfcGVuIl0sZW1haWw6WyJlbnZlbG9wZSIsImUtbWFpbCJdLHBob25lOlsidGVsZXBob25lIl0sYXRvbV9zeW1ib2w6WyJhdG9tIl0sbWFudGVscGllY2VfY2xvY2s6WyJjbG9jayJdLGNhbWVyYV9mbGFzaDpbImNhbWVyYV93aXRoX2ZsYXNoIl0sZmlsbV9zdHJpcDpbImZpbG1fZnJhbWVzIl0sYmFsYW5jZV9zY2FsZTpbInNjYWxlcyJdLHN1cmZpbmdfbWFuOlsic3VyZmVyIl0sY291cGxla2lzc19tYW5fd29tYW46WyJjb3VwbGVraXNzIl0sY291cGxlX3dpdGhfaGVhcnRfd29tYW5fbWFuOlsiY291cGxlX3dpdGhfaGVhcnQiXSxjbGFtcDpbImNvbXByZXNzaW9uIl0sZGFuY2luZ193b21lbjpbImRhbmNlcnMiXSxibG9uZGVfbWFuOlsicGVyc29uX3dpdGhfYmxvbmRfaGFpciJdLHNsZWVwaW5nX2JlZDpbInNsZWVwaW5nX2FjY29tbW9kYXRpb24iXSxvbTpbIm9tX3N5bWJvbCJdLHRpcHBpbmdfaGFuZF93b21hbjpbImluZm9ybWF0aW9uX2Rlc2tfcGVyc29uIl0scm93aW5nX21hbjpbInJvd2JvYXQiXSxuZXdfbW9vbjpbIm1vb24iXSxvbmNvbWluZ19hdXRvbW9iaWxlOlsiY2FyIiwiYXV0b21vYmlsZSJdLGZsZXVyX2RlX2xpczpbImZsZXVyLWRlLWxpcyJdLGZhY2Vfdm9taXRpbmc6WyJwdWtlIl19LGUuc2VhcmNoQWxpYXNlcz17c2FkOlsiZnJvd25pbmdfZmFjZSIsInNsaWdodGx5X2Zyb3duaW5nX2ZhY2UiLCJzb2IiLCJjcnlpbmdfY2F0X2ZhY2UiLCJjcnkiXSxjcnk6WyJzb2IiXX0sZS50cmFuc2xhdGlvbnM9eyI6KSI6InNsaWdodF9zbWlsZSIsIjotKSI6InNsaWdodF9zbWlsZSIsIl5fXiI6InNsaWdodF9zbWlsZSIsIl5fX14iOiJzbGlnaHRfc21pbGUiLCI6KCI6ImZyb3duaW5nIiwiOi0oIjoiZnJvd25pbmciLCI7KSI6IndpbmsiLCI7LSkiOiJ3aW5rIiwiOicoIjoiY3J5IiwiOictKCI6ImNyeSIsIjotJygiOiJjcnkiLCI6cCI6InN0dWNrX291dF90b25ndWUiLCI6UCI6InN0dWNrX291dF90b25ndWUiLCI6LVAiOiJzdHVja19vdXRfdG9uZ3VlIiwiOk8iOiJvcGVuX21vdXRoIiwiOi1PIjoib3Blbl9tb3V0aCIsIjpEIjoic21pbGV5IiwiOi1EIjoic21pbGV5IiwiOnwiOiJleHByZXNzaW9ubGVzcyIsIjotfCI6ImV4cHJlc3Npb25sZXNzIiwiOi8iOiJjb25mdXNlZCIsIjgtKSI6InN1bmdsYXNzZXMiLCI7UCI6InN0dWNrX291dF90b25ndWVfd2lua2luZ19leWUiLCI7LVAiOiJzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllIiwiOiQiOiJibHVzaCIsIjotJCI6ImJsdXNoIn0sZS5yZXBsYWNlbWVudHM9eyLwn5iAIjoiZ3Jpbm5pbmciLCLwn5isIjoiZ3JpbWFjaW5nIiwi8J+YgSI6ImdyaW4iLCLwn5iCIjoiam95Iiwi8J+koyI6InJvZmwiLCLwn5iDIjoic21pbGV5Iiwi8J+YhCI6InNtaWxlIiwi8J+YhSI6InN3ZWF0X3NtaWxlIiwi8J+YhiI6ImxhdWdoaW5nIiwi8J+YhyI6Imlubm9jZW50Iiwi8J+YiSI6IndpbmsiLCLwn5iKIjoiYmx1c2giLCLwn5mCIjoic2xpZ2h0bHlfc21pbGluZ19mYWNlIiwi8J+ZgyI6InVwc2lkZV9kb3duX2ZhY2UiLCLimLoiOiJzbGlnaHRfc21pbGUiLCLwn5iLIjoieXVtIiwi8J+YjCI6InJlbGlldmVkIiwi8J+YjSI6ImhlYXJ0X2V5ZXMiLCLwn5iYIjoia2lzc2luZ19oZWFydCIsIvCfmJciOiJraXNzaW5nIiwi8J+YmSI6Imtpc3Npbmdfc21pbGluZ19leWVzIiwi8J+YmiI6Imtpc3NpbmdfY2xvc2VkX2V5ZXMiLCLwn5icIjoic3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZSIsIvCfmJ0iOiJzdHVja19vdXRfdG9uZ3VlX2Nsb3NlZF9leWVzIiwi8J+YmyI6InN0dWNrX291dF90b25ndWUiLCLwn6SRIjoibW9uZXlfbW91dGhfZmFjZSIsIvCfpJMiOiJuZXJkX2ZhY2UiLCLwn5iOIjoic3VuZ2xhc3NlcyIsIvCfpKEiOiJjbG93bl9mYWNlIiwi8J+koCI6ImNvd2JveV9oYXRfZmFjZSIsIvCfpJciOiJodWdzIiwi8J+YjyI6InNtaXJrIiwi8J+YtiI6Im5vX21vdXRoIiwi8J+YkCI6Im5ldXRyYWxfZmFjZSIsIvCfmJEiOiJleHByZXNzaW9ubGVzcyIsIvCfmJIiOiJ1bmFtdXNlZCIsIvCfmYQiOiJyb2xsX2V5ZXMiLCLwn6SUIjoidGhpbmtpbmciLCLwn6SlIjoibHlpbmdfZmFjZSIsIvCfmLMiOiJmbHVzaGVkIiwi8J+YniI6ImRpc2FwcG9pbnRlZCIsIvCfmJ8iOiJ3b3JyaWVkIiwi8J+YoCI6ImFuZ3J5Iiwi8J+YoSI6InJhZ2UiLCLwn5iUIjoicGVuc2l2ZSIsIvCfmJUiOiJjb25mdXNlZCIsIvCfmYEiOiJzbGlnaHRseV9mcm93bmluZ19mYWNlIiwi4pi5IjoiZnJvd25pbmciLCLwn5ijIjoicGVyc2V2ZXJlIiwi8J+YliI6ImNvbmZvdW5kZWQiLCLwn5irIjoidGlyZWRfZmFjZSIsIvCfmKkiOiJ3ZWFyeSIsIvCfmKQiOiJ0cml1bXBoIiwi8J+YriI6Im9wZW5fbW91dGgiLCLwn5ixIjoic2NyZWFtIiwi8J+YqCI6ImZlYXJmdWwiLCLwn5iwIjoiY29sZF9zd2VhdCIsIvCfmK8iOiJodXNoZWQiLCLwn5imIjoiZnJvd25pbmciLCLwn5inIjoiYW5ndWlzaGVkIiwi8J+YoiI6ImNyeSIsIvCfmKUiOiJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiLCLwn6SkIjoiZHJvb2xpbmdfZmFjZSIsIvCfmKoiOiJzbGVlcHkiLCLwn5iTIjoic3dlYXQiLCLwn5itIjoic29iIiwi8J+YtSI6ImRpenp5X2ZhY2UiLCLwn5iyIjoiYXN0b25pc2hlZCIsIvCfpJAiOiJ6aXBwZXJfbW91dGhfZmFjZSIsIvCfpKIiOiJuYXVzZWF0ZWRfZmFjZSIsIvCfpKciOiJzbmVlemluZ19mYWNlIiwi8J+YtyI6Im1hc2siLCLwn6SSIjoiZmFjZV93aXRoX3RoZXJtb21ldGVyIiwi8J+klSI6ImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiLCLwn5i0Ijoic2xlZXBpbmciLCLwn5KkIjoienp6Iiwi8J+SqSI6InBvb3AiLCLwn5iIIjoic21pbGluZ19pbXAiLCLwn5G/IjoiaW1wIiwi8J+RuSI6ImphcGFuZXNlX29ncmUiLCLwn5G6IjoiamFwYW5lc2VfZ29ibGluIiwi8J+SgCI6InNrdWxsIiwi8J+RuyI6Imdob3N0Iiwi8J+RvSI6ImFsaWVuIiwi8J+kliI6InJvYm90Iiwi8J+YuiI6InNtaWxleV9jYXQiLCLwn5i4Ijoic21pbGVfY2F0Iiwi8J+YuSI6ImpveV9jYXQiLCLwn5i7IjoiaGVhcnRfZXllc19jYXQiLCLwn5i8Ijoic21pcmtfY2F0Iiwi8J+YvSI6Imtpc3NpbmdfY2F0Iiwi8J+ZgCI6InNjcmVhbV9jYXQiLCLwn5i/IjoiY3J5aW5nX2NhdF9mYWNlIiwi8J+YviI6InBvdXRpbmdfY2F0Iiwi8J+ZjCI6InJhaXNlZF9oYW5kcyIsIvCfmYzwn4+7IjoicmFpc2VkX2hhbmRzOnQyIiwi8J+ZjPCfj7wiOiJyYWlzZWRfaGFuZHM6dDMiLCLwn5mM8J+PvSI6InJhaXNlZF9oYW5kczp0NCIsIvCfmYzwn4++IjoicmFpc2VkX2hhbmRzOnQ1Iiwi8J+ZjPCfj78iOiJyYWlzZWRfaGFuZHM6dDYiLCLwn5GPIjoiY2xhcCIsIvCfkY/wn4+7IjoiY2xhcDp0MiIsIvCfkY/wn4+8IjoiY2xhcDp0MyIsIvCfkY/wn4+9IjoiY2xhcDp0NCIsIvCfkY/wn4++IjoiY2xhcDp0NSIsIvCfkY/wn4+/IjoiY2xhcDp0NiIsIvCfkYsiOiJ3YXZlIiwi8J+Ri/Cfj7siOiJ3YXZlOnQyIiwi8J+Ri/Cfj7wiOiJ3YXZlOnQzIiwi8J+Ri/Cfj70iOiJ3YXZlOnQ0Iiwi8J+Ri/Cfj74iOiJ3YXZlOnQ1Iiwi8J+Ri/Cfj78iOiJ3YXZlOnQ2Iiwi8J+kmSI6ImNhbGxfbWVfaGFuZCIsIvCfpJnwn4+7IjoiY2FsbF9tZV9oYW5kOnQyIiwi8J+kmfCfj7wiOiJjYWxsX21lX2hhbmQ6dDMiLCLwn6SZ8J+PvSI6ImNhbGxfbWVfaGFuZDp0NCIsIvCfpJnwn4++IjoiY2FsbF9tZV9oYW5kOnQ1Iiwi8J+kmfCfj78iOiJjYWxsX21lX2hhbmQ6dDYiLCLwn5GNIjoiKzEiLCLwn5GN8J+PuyI6IisxOnQyIiwi8J+RjfCfj7wiOiIrMTp0MyIsIvCfkY3wn4+9IjoiKzE6dDQiLCLwn5GN8J+PviI6IisxOnQ1Iiwi8J+RjfCfj78iOiIrMTp0NiIsIvCfkY4iOiItMSIsIvCfkY7wn4+7IjoiLTE6dDIiLCLwn5GO8J+PvCI6Ii0xOnQzIiwi8J+RjvCfj70iOiItMTp0NCIsIvCfkY7wn4++IjoiLTE6dDUiLCLwn5GO8J+PvyI6Ii0xOnQ2Iiwi8J+RiiI6ImZhY2VwdW5jaCIsIvCfkYrwn4+7IjoiZmFjZXB1bmNoOnQyIiwi8J+RivCfj7wiOiJmYWNlcHVuY2g6dDMiLCLwn5GK8J+PvSI6ImZhY2VwdW5jaDp0NCIsIvCfkYrwn4++IjoiZmFjZXB1bmNoOnQ1Iiwi8J+RivCfj78iOiJmYWNlcHVuY2g6dDYiLCLinIoiOiJmaXN0Iiwi4pyK8J+PuyI6ImZpc3Q6dDIiLCLinIrwn4+8IjoiZmlzdDp0MyIsIuKcivCfj70iOiJmaXN0OnQ0Iiwi4pyK8J+PviI6ImZpc3Q6dDUiLCLinIrwn4+/IjoiZmlzdDp0NiIsIvCfpJsiOiJmaXN0X2xlZnQiLCLwn6Sb8J+PuyI6ImZpc3RfbGVmdDp0MiIsIvCfpJvwn4+8IjoiZmlzdF9sZWZ0OnQzIiwi8J+km/Cfj70iOiJmaXN0X2xlZnQ6dDQiLCLwn6Sb8J+PviI6ImZpc3RfbGVmdDp0NSIsIvCfpJvwn4+/IjoiZmlzdF9sZWZ0OnQ2Iiwi8J+knCI6ImZpc3RfcmlnaHQiLCLwn6Sc8J+PuyI6ImZpc3RfcmlnaHQ6dDIiLCLwn6Sc8J+PvCI6ImZpc3RfcmlnaHQ6dDMiLCLwn6Sc8J+PvSI6ImZpc3RfcmlnaHQ6dDQiLCLwn6Sc8J+PviI6ImZpc3RfcmlnaHQ6dDUiLCLwn6Sc8J+PvyI6ImZpc3RfcmlnaHQ6dDYiLCLinIwiOiJ2Iiwi4pyM8J+PuyI6InY6dDIiLCLinIzwn4+8Ijoidjp0MyIsIuKcjPCfj70iOiJ2OnQ0Iiwi4pyM8J+PviI6InY6dDUiLCLinIzwn4+/Ijoidjp0NiIsIvCfkYwiOiJva19oYW5kIiwi8J+RjPCfj7siOiJva19oYW5kOnQyIiwi8J+RjPCfj7wiOiJva19oYW5kOnQzIiwi8J+RjPCfj70iOiJva19oYW5kOnQ0Iiwi8J+RjPCfj74iOiJva19oYW5kOnQ1Iiwi8J+RjPCfj78iOiJva19oYW5kOnQ2Iiwi4pyLIjoicmFpc2VkX2hhbmQiLCLinIvwn4+7IjoicmFpc2VkX2hhbmQ6dDIiLCLinIvwn4+8IjoicmFpc2VkX2hhbmQ6dDMiLCLinIvwn4+9IjoicmFpc2VkX2hhbmQ6dDQiLCLinIvwn4++IjoicmFpc2VkX2hhbmQ6dDUiLCLinIvwn4+/IjoicmFpc2VkX2hhbmQ6dDYiLCLwn6SaIjoicmFpc2VkX2JhY2tfb2ZfaGFuZCIsIvCfpJrwn4+7IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0MiIsIvCfpJrwn4+8IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0MyIsIvCfpJrwn4+9IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NCIsIvCfpJrwn4++IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NSIsIvCfpJrwn4+/IjoicmFpc2VkX2JhY2tfb2ZfaGFuZDp0NiIsIvCfkZAiOiJvcGVuX2hhbmRzIiwi8J+RkPCfj7siOiJvcGVuX2hhbmRzOnQyIiwi8J+RkPCfj7wiOiJvcGVuX2hhbmRzOnQzIiwi8J+RkPCfj70iOiJvcGVuX2hhbmRzOnQ0Iiwi8J+RkPCfj74iOiJvcGVuX2hhbmRzOnQ1Iiwi8J+RkPCfj78iOiJvcGVuX2hhbmRzOnQ2Iiwi8J+SqiI6Im11c2NsZSIsIvCfkqrwn4+7IjoibXVzY2xlOnQyIiwi8J+SqvCfj7wiOiJtdXNjbGU6dDMiLCLwn5Kq8J+PvSI6Im11c2NsZTp0NCIsIvCfkqrwn4++IjoibXVzY2xlOnQ1Iiwi8J+SqvCfj78iOiJtdXNjbGU6dDYiLCLwn5mPIjoicHJheSIsIvCfmY/wn4+7IjoicHJheTp0MiIsIvCfmY/wn4+8IjoicHJheTp0MyIsIvCfmY/wn4+9IjoicHJheTp0NCIsIvCfmY/wn4++IjoicHJheTp0NSIsIvCfmY/wn4+/IjoicHJheTp0NiIsIvCfpJ0iOiJoYW5kc2hha2UiLCLimJ0iOiJwb2ludF91cCIsIuKYnfCfj7siOiJwb2ludF91cDp0MiIsIuKYnfCfj7wiOiJwb2ludF91cDp0MyIsIuKYnfCfj70iOiJwb2ludF91cDp0NCIsIuKYnfCfj74iOiJwb2ludF91cDp0NSIsIuKYnfCfj78iOiJwb2ludF91cDp0NiIsIvCfkYYiOiJwb2ludF91cF8yIiwi8J+RhvCfj7siOiJwb2ludF91cF8yOnQyIiwi8J+RhvCfj7wiOiJwb2ludF91cF8yOnQzIiwi8J+RhvCfj70iOiJwb2ludF91cF8yOnQ0Iiwi8J+RhvCfj74iOiJwb2ludF91cF8yOnQ1Iiwi8J+RhvCfj78iOiJwb2ludF91cF8yOnQ2Iiwi8J+RhyI6InBvaW50X2Rvd24iLCLwn5GH8J+PuyI6InBvaW50X2Rvd246dDIiLCLwn5GH8J+PvCI6InBvaW50X2Rvd246dDMiLCLwn5GH8J+PvSI6InBvaW50X2Rvd246dDQiLCLwn5GH8J+PviI6InBvaW50X2Rvd246dDUiLCLwn5GH8J+PvyI6InBvaW50X2Rvd246dDYiLCLwn5GIIjoicG9pbnRfbGVmdCIsIvCfkYjwn4+7IjoicG9pbnRfbGVmdDp0MiIsIvCfkYjwn4+8IjoicG9pbnRfbGVmdDp0MyIsIvCfkYjwn4+9IjoicG9pbnRfbGVmdDp0NCIsIvCfkYjwn4++IjoicG9pbnRfbGVmdDp0NSIsIvCfkYjwn4+/IjoicG9pbnRfbGVmdDp0NiIsIvCfkYkiOiJwb2ludF9yaWdodCIsIvCfkYnwn4+7IjoicG9pbnRfcmlnaHQ6dDIiLCLwn5GJ8J+PvCI6InBvaW50X3JpZ2h0OnQzIiwi8J+RifCfj70iOiJwb2ludF9yaWdodDp0NCIsIvCfkYnwn4++IjoicG9pbnRfcmlnaHQ6dDUiLCLwn5GJ8J+PvyI6InBvaW50X3JpZ2h0OnQ2Iiwi8J+WlSI6ImZ1Iiwi8J+WlfCfj7siOiJmdTp0MiIsIvCflpXwn4+8IjoiZnU6dDMiLCLwn5aV8J+PvSI6ImZ1OnQ0Iiwi8J+WlfCfj74iOiJmdTp0NSIsIvCflpXwn4+/IjoiZnU6dDYiLCLwn5aQIjoicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQiLCLwn5aQ8J+PuyI6InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkOnQyIiwi8J+WkPCfj7wiOiJyYWlzZWRfaGFuZF93aXRoX2ZpbmdlcnNfc3BsYXllZDp0MyIsIvCflpDwn4+9IjoicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWQ6dDQiLCLwn5aQ8J+PviI6InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkOnQ1Iiwi8J+WkPCfj78iOiJyYWlzZWRfaGFuZF93aXRoX2ZpbmdlcnNfc3BsYXllZDp0NiIsIvCfpJgiOiJtZXRhbCIsIvCfpJjwn4+7IjoibWV0YWw6dDIiLCLwn6SY8J+PvCI6Im1ldGFsOnQzIiwi8J+kmPCfj70iOiJtZXRhbDp0NCIsIvCfpJjwn4++IjoibWV0YWw6dDUiLCLwn6SY8J+PvyI6Im1ldGFsOnQ2Iiwi8J+kniI6ImNyb3NzZWRfZmluZ2VycyIsIvCfpJ7wn4+7IjoiY3Jvc3NlZF9maW5nZXJzOnQyIiwi8J+knvCfj7wiOiJjcm9zc2VkX2ZpbmdlcnM6dDMiLCLwn6Se8J+PvSI6ImNyb3NzZWRfZmluZ2Vyczp0NCIsIvCfpJ7wn4++IjoiY3Jvc3NlZF9maW5nZXJzOnQ1Iiwi8J+knvCfj78iOiJjcm9zc2VkX2ZpbmdlcnM6dDYiLCLwn5aWIjoidnVsY2FuX3NhbHV0ZSIsIvCflpbwn4+7IjoidnVsY2FuX3NhbHV0ZTp0MiIsIvCflpbwn4+8IjoidnVsY2FuX3NhbHV0ZTp0MyIsIvCflpbwn4+9IjoidnVsY2FuX3NhbHV0ZTp0NCIsIvCflpbwn4++IjoidnVsY2FuX3NhbHV0ZTp0NSIsIvCflpbwn4+/IjoidnVsY2FuX3NhbHV0ZTp0NiIsIuKcjSI6IndyaXRpbmdfaGFuZCIsIuKcjfCfj7siOiJ3cml0aW5nX2hhbmQ6dDIiLCLinI3wn4+8Ijoid3JpdGluZ19oYW5kOnQzIiwi4pyN8J+PvSI6IndyaXRpbmdfaGFuZDp0NCIsIuKcjfCfj74iOiJ3cml0aW5nX2hhbmQ6dDUiLCLinI3wn4+/Ijoid3JpdGluZ19oYW5kOnQ2Iiwi8J+ksyI6InNlbGZpZSIsIvCfpLPwn4+7Ijoic2VsZmllOnQyIiwi8J+ks/Cfj7wiOiJzZWxmaWU6dDMiLCLwn6Sz8J+PvSI6InNlbGZpZTp0NCIsIvCfpLPwn4++Ijoic2VsZmllOnQ1Iiwi8J+ks/Cfj78iOiJzZWxmaWU6dDYiLCLwn5KFIjoibmFpbF9jYXJlIiwi8J+ShfCfj7siOiJuYWlsX2NhcmU6dDIiLCLwn5KF8J+PvCI6Im5haWxfY2FyZTp0MyIsIvCfkoXwn4+9IjoibmFpbF9jYXJlOnQ0Iiwi8J+ShfCfj74iOiJuYWlsX2NhcmU6dDUiLCLwn5KF8J+PvyI6Im5haWxfY2FyZTp0NiIsIvCfkYQiOiJsaXBzIiwi8J+RhSI6InRvbmd1ZSIsIvCfkYIiOiJlYXIiLCLwn5GC8J+PuyI6ImVhcjp0MiIsIvCfkYLwn4+8IjoiZWFyOnQzIiwi8J+RgvCfj70iOiJlYXI6dDQiLCLwn5GC8J+PviI6ImVhcjp0NSIsIvCfkYLwn4+/IjoiZWFyOnQ2Iiwi8J+RgyI6Im5vc2UiLCLwn5GD8J+PuyI6Im5vc2U6dDIiLCLwn5GD8J+PvCI6Im5vc2U6dDMiLCLwn5GD8J+PvSI6Im5vc2U6dDQiLCLwn5GD8J+PviI6Im5vc2U6dDUiLCLwn5GD8J+PvyI6Im5vc2U6dDYiLCLwn5GBIjoiZXllIiwi8J+RgCI6ImV5ZXMiLCLwn5GkIjoiYnVzdF9pbl9zaWxob3VldHRlIiwi8J+RpSI6ImJ1c3RzX2luX3NpbGhvdWV0dGUiLCLwn5ejIjoic3BlYWtpbmdfaGVhZCIsIvCfkbYiOiJiYWJ5Iiwi8J+RtvCfj7siOiJiYWJ5OnQyIiwi8J+RtvCfj7wiOiJiYWJ5OnQzIiwi8J+RtvCfj70iOiJiYWJ5OnQ0Iiwi8J+RtvCfj74iOiJiYWJ5OnQ1Iiwi8J+RtvCfj78iOiJiYWJ5OnQ2Iiwi8J+RpiI6ImJveSIsIvCfkabwn4+7IjoiYm95OnQyIiwi8J+RpvCfj7wiOiJib3k6dDMiLCLwn5Gm8J+PvSI6ImJveTp0NCIsIvCfkabwn4++IjoiYm95OnQ1Iiwi8J+RpvCfj78iOiJib3k6dDYiLCLwn5GnIjoiZ2lybCIsIvCfkafwn4+7IjoiZ2lybDp0MiIsIvCfkafwn4+8IjoiZ2lybDp0MyIsIvCfkafwn4+9IjoiZ2lybDp0NCIsIvCfkafwn4++IjoiZ2lybDp0NSIsIvCfkafwn4+/IjoiZ2lybDp0NiIsIvCfkagiOiJtYW4iLCLwn5Go8J+PuyI6Im1hbjp0MiIsIvCfkajwn4+8IjoibWFuOnQzIiwi8J+RqPCfj70iOiJtYW46dDQiLCLwn5Go8J+PviI6Im1hbjp0NSIsIvCfkajwn4+/IjoibWFuOnQ2Iiwi8J+RqSI6IndvbWFuIiwi8J+RqfCfj7siOiJ3b21hbjp0MiIsIvCfkanwn4+8Ijoid29tYW46dDMiLCLwn5Gp8J+PvSI6IndvbWFuOnQ0Iiwi8J+RqfCfj74iOiJ3b21hbjp0NSIsIvCfkanwn4+/Ijoid29tYW46dDYiLCLwn5Gx4oCN4pmA77iPIjoiYmxvbmRlX3dvbWFuIiwi8J+RsfCfj7vigI3imYDvuI8iOiJibG9uZGVfd29tYW46dDIiLCLwn5Gx8J+PvOKAjeKZgO+4jyI6ImJsb25kZV93b21hbjp0MyIsIvCfkbHwn4+94oCN4pmA77iPIjoiYmxvbmRlX3dvbWFuOnQ0Iiwi8J+RsfCfj77igI3imYDvuI8iOiJibG9uZGVfd29tYW46dDUiLCLwn5Gx8J+Pv+KAjeKZgO+4jyI6ImJsb25kZV93b21hbjp0NiIsIvCfkbEiOiJibG9uZGVfbWFuIiwi8J+RsfCfj7siOiJibG9uZGVfbWFuOnQyIiwi8J+RsfCfj7wiOiJibG9uZGVfbWFuOnQzIiwi8J+RsfCfj70iOiJibG9uZGVfbWFuOnQ0Iiwi8J+RsfCfj74iOiJibG9uZGVfbWFuOnQ1Iiwi8J+RsfCfj78iOiJibG9uZGVfbWFuOnQ2Iiwi8J+RtCI6Im9sZGVyX21hbiIsIvCfkbTwn4+7Ijoib2xkZXJfbWFuOnQyIiwi8J+RtPCfj7wiOiJvbGRlcl9tYW46dDMiLCLwn5G08J+PvSI6Im9sZGVyX21hbjp0NCIsIvCfkbTwn4++Ijoib2xkZXJfbWFuOnQ1Iiwi8J+RtPCfj78iOiJvbGRlcl9tYW46dDYiLCLwn5G1Ijoib2xkZXJfd29tYW4iLCLwn5G18J+PuyI6Im9sZGVyX3dvbWFuOnQyIiwi8J+RtfCfj7wiOiJvbGRlcl93b21hbjp0MyIsIvCfkbXwn4+9Ijoib2xkZXJfd29tYW46dDQiLCLwn5G18J+PviI6Im9sZGVyX3dvbWFuOnQ1Iiwi8J+RtfCfj78iOiJvbGRlcl93b21hbjp0NiIsIvCfkbIiOiJtYW5fd2l0aF9ndWFfcGlfbWFvIiwi8J+RsvCfj7siOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQyIiwi8J+RsvCfj7wiOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQzIiwi8J+RsvCfj70iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ0Iiwi8J+RsvCfj74iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ1Iiwi8J+RsvCfj78iOiJtYW5fd2l0aF9ndWFfcGlfbWFvOnQ2Iiwi8J+Rs+KAjeKZgO+4jyI6IndvbWFuX3dpdGhfdHVyYmFuIiwi8J+Rs/Cfj7vigI3imYDvuI8iOiJ3b21hbl93aXRoX3R1cmJhbjp0MiIsIvCfkbPwn4+84oCN4pmA77iPIjoid29tYW5fd2l0aF90dXJiYW46dDMiLCLwn5Gz8J+PveKAjeKZgO+4jyI6IndvbWFuX3dpdGhfdHVyYmFuOnQ0Iiwi8J+Rs/Cfj77igI3imYDvuI8iOiJ3b21hbl93aXRoX3R1cmJhbjp0NSIsIvCfkbPwn4+/4oCN4pmA77iPIjoid29tYW5fd2l0aF90dXJiYW46dDYiLCLwn5GzIjoibWFuX3dpdGhfdHVyYmFuIiwi8J+Rs/Cfj7siOiJtYW5fd2l0aF90dXJiYW46dDIiLCLwn5Gz8J+PvCI6Im1hbl93aXRoX3R1cmJhbjp0MyIsIvCfkbPwn4+9IjoibWFuX3dpdGhfdHVyYmFuOnQ0Iiwi8J+Rs/Cfj74iOiJtYW5fd2l0aF90dXJiYW46dDUiLCLwn5Gz8J+PvyI6Im1hbl93aXRoX3R1cmJhbjp0NiIsIvCfka7igI3imYDvuI8iOiJwb2xpY2V3b21hbiIsIvCfka7wn4+74oCN4pmA77iPIjoicG9saWNld29tYW46dDIiLCLwn5Gu8J+PvOKAjeKZgO+4jyI6InBvbGljZXdvbWFuOnQzIiwi8J+RrvCfj73igI3imYDvuI8iOiJwb2xpY2V3b21hbjp0NCIsIvCfka7wn4++4oCN4pmA77iPIjoicG9saWNld29tYW46dDUiLCLwn5Gu8J+Pv+KAjeKZgO+4jyI6InBvbGljZXdvbWFuOnQ2Iiwi8J+RriI6InBvbGljZW1hbiIsIvCfka7wn4+7IjoicG9saWNlbWFuOnQyIiwi8J+RrvCfj7wiOiJwb2xpY2VtYW46dDMiLCLwn5Gu8J+PvSI6InBvbGljZW1hbjp0NCIsIvCfka7wn4++IjoicG9saWNlbWFuOnQ1Iiwi8J+RrvCfj78iOiJwb2xpY2VtYW46dDYiLCLwn5G34oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbiIsIvCfkbfwn4+74oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0MiIsIvCfkbfwn4+84oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0MyIsIvCfkbfwn4+94oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NCIsIvCfkbfwn4++4oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NSIsIvCfkbfwn4+/4oCN4pmA77iPIjoiY29uc3RydWN0aW9uX3dvcmtlcl93b21hbjp0NiIsIvCfkbciOiJjb25zdHJ1Y3Rpb25fd29ya2VyX21hbiIsIvCfkbfwn4+7IjoiY29uc3RydWN0aW9uX3dvcmtlcl9tYW46dDIiLCLwn5G38J+PvCI6ImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuOnQzIiwi8J+Rt/Cfj70iOiJjb25zdHJ1Y3Rpb25fd29ya2VyX21hbjp0NCIsIvCfkbfwn4++IjoiY29uc3RydWN0aW9uX3dvcmtlcl9tYW46dDUiLCLwn5G38J+PvyI6ImNvbnN0cnVjdGlvbl93b3JrZXJfbWFuOnQ2Iiwi8J+SguKAjeKZgO+4jyI6Imd1YXJkc3dvbWFuIiwi8J+SgvCfj7vigI3imYDvuI8iOiJndWFyZHN3b21hbjp0MiIsIvCfkoLwn4+84oCN4pmA77iPIjoiZ3VhcmRzd29tYW46dDMiLCLwn5KC8J+PveKAjeKZgO+4jyI6Imd1YXJkc3dvbWFuOnQ0Iiwi8J+SgvCfj77igI3imYDvuI8iOiJndWFyZHN3b21hbjp0NSIsIvCfkoLwn4+/4oCN4pmA77iPIjoiZ3VhcmRzd29tYW46dDYiLCLwn5KCIjoiZ3VhcmRzbWFuIiwi8J+SgvCfj7siOiJndWFyZHNtYW46dDIiLCLwn5KC8J+PvCI6Imd1YXJkc21hbjp0MyIsIvCfkoLwn4+9IjoiZ3VhcmRzbWFuOnQ0Iiwi8J+SgvCfj74iOiJndWFyZHNtYW46dDUiLCLwn5KC8J+PvyI6Imd1YXJkc21hbjp0NiIsIvCflbXvuI/igI3imYAiOiJmZW1hbGVfZGV0ZWN0aXZlIiwi8J+VtSI6Im1hbGVfZGV0ZWN0aXZlIiwi8J+VtfCfj7siOiJtYWxlX2RldGVjdGl2ZTp0MiIsIvCflbXwn4+8IjoibWFsZV9kZXRlY3RpdmU6dDMiLCLwn5W18J+PvSI6Im1hbGVfZGV0ZWN0aXZlOnQ0Iiwi8J+VtfCfj74iOiJtYWxlX2RldGVjdGl2ZTp0NSIsIvCflbXwn4+/IjoibWFsZV9kZXRlY3RpdmU6dDYiLCLwn5Gp4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlciIsIvCfkanwn4+74oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0MiIsIvCfkanwn4+84oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0MyIsIvCfkanwn4+94oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NCIsIvCfkanwn4++4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NSIsIvCfkanwn4+/4oCN4pqV77iPIjoid29tYW5faGVhbHRoX3dvcmtlcjp0NiIsIvCfkajigI3impXvuI8iOiJtYW5faGVhbHRoX3dvcmtlciIsIvCfkajwn4+74oCN4pqV77iPIjoibWFuX2hlYWx0aF93b3JrZXI6dDIiLCLwn5Go8J+PvOKAjeKale+4jyI6Im1hbl9oZWFsdGhfd29ya2VyOnQzIiwi8J+RqPCfj73igI3impXvuI8iOiJtYW5faGVhbHRoX3dvcmtlcjp0NCIsIvCfkajwn4++4oCN4pqV77iPIjoibWFuX2hlYWx0aF93b3JrZXI6dDUiLCLwn5Go8J+Pv+KAjeKale+4jyI6Im1hbl9oZWFsdGhfd29ya2VyOnQ2Iiwi8J+RqeKAjfCfjL4iOiJ3b21hbl9mYXJtZXIiLCLwn5Gp8J+Pu+KAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDIiLCLwn5Gp8J+PvOKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDMiLCLwn5Gp8J+PveKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDQiLCLwn5Gp8J+PvuKAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfjL4iOiJ3b21hbl9mYXJtZXI6dDYiLCLwn5Go4oCN8J+MviI6Im1hbl9mYXJtZXIiLCLwn5Go8J+Pu+KAjfCfjL4iOiJtYW5fZmFybWVyOnQyIiwi8J+RqPCfj7zigI3wn4y+IjoibWFuX2Zhcm1lcjp0MyIsIvCfkajwn4+94oCN8J+MviI6Im1hbl9mYXJtZXI6dDQiLCLwn5Go8J+PvuKAjfCfjL4iOiJtYW5fZmFybWVyOnQ1Iiwi8J+RqPCfj7/igI3wn4y+IjoibWFuX2Zhcm1lcjp0NiIsIvCfkanigI3wn42zIjoid29tYW5fY29vayIsIvCfkanwn4+74oCN8J+NsyI6IndvbWFuX2Nvb2s6dDIiLCLwn5Gp8J+PvOKAjfCfjbMiOiJ3b21hbl9jb29rOnQzIiwi8J+RqfCfj73igI3wn42zIjoid29tYW5fY29vazp0NCIsIvCfkanwn4++4oCN8J+NsyI6IndvbWFuX2Nvb2s6dDUiLCLwn5Gp8J+Pv+KAjfCfjbMiOiJ3b21hbl9jb29rOnQ2Iiwi8J+RqOKAjfCfjbMiOiJtYW5fY29vayIsIvCfkajwn4+74oCN8J+NsyI6Im1hbl9jb29rOnQyIiwi8J+RqPCfj7zigI3wn42zIjoibWFuX2Nvb2s6dDMiLCLwn5Go8J+PveKAjfCfjbMiOiJtYW5fY29vazp0NCIsIvCfkajwn4++4oCN8J+NsyI6Im1hbl9jb29rOnQ1Iiwi8J+RqPCfj7/igI3wn42zIjoibWFuX2Nvb2s6dDYiLCLwn5Gp4oCN8J+OkyI6IndvbWFuX3N0dWRlbnQiLCLwn5Gp8J+Pu+KAjfCfjpMiOiJ3b21hbl9zdHVkZW50OnQyIiwi8J+RqfCfj7zigI3wn46TIjoid29tYW5fc3R1ZGVudDp0MyIsIvCfkanwn4+94oCN8J+OkyI6IndvbWFuX3N0dWRlbnQ6dDQiLCLwn5Gp8J+PvuKAjfCfjpMiOiJ3b21hbl9zdHVkZW50OnQ1Iiwi8J+RqfCfj7/igI3wn46TIjoid29tYW5fc3R1ZGVudDp0NiIsIvCfkajigI3wn46TIjoibWFuX3N0dWRlbnQiLCLwn5Go8J+Pu+KAjfCfjpMiOiJtYW5fc3R1ZGVudDp0MiIsIvCfkajwn4+84oCN8J+OkyI6Im1hbl9zdHVkZW50OnQzIiwi8J+RqPCfj73igI3wn46TIjoibWFuX3N0dWRlbnQ6dDQiLCLwn5Go8J+PvuKAjfCfjpMiOiJtYW5fc3R1ZGVudDp0NSIsIvCfkajwn4+/4oCN8J+OkyI6Im1hbl9zdHVkZW50OnQ2Iiwi8J+RqeKAjfCfjqQiOiJ3b21hbl9zaW5nZXIiLCLwn5Gp8J+Pu+KAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDIiLCLwn5Gp8J+PvOKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDMiLCLwn5Gp8J+PveKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDQiLCLwn5Gp8J+PvuKAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfjqQiOiJ3b21hbl9zaW5nZXI6dDYiLCLwn5Go4oCN8J+OpCI6Im1hbl9zaW5nZXIiLCLwn5Go8J+Pu+KAjfCfjqQiOiJtYW5fc2luZ2VyOnQyIiwi8J+RqPCfj7zigI3wn46kIjoibWFuX3Npbmdlcjp0MyIsIvCfkajwn4+94oCN8J+OpCI6Im1hbl9zaW5nZXI6dDQiLCLwn5Go8J+PvuKAjfCfjqQiOiJtYW5fc2luZ2VyOnQ1Iiwi8J+RqPCfj7/igI3wn46kIjoibWFuX3Npbmdlcjp0NiIsIvCfkanigI3wn4+rIjoid29tYW5fdGVhY2hlciIsIvCfkanwn4+74oCN8J+PqyI6IndvbWFuX3RlYWNoZXI6dDIiLCLwn5Gp8J+PvOKAjfCfj6siOiJ3b21hbl90ZWFjaGVyOnQzIiwi8J+RqfCfj73igI3wn4+rIjoid29tYW5fdGVhY2hlcjp0NCIsIvCfkanwn4++4oCN8J+PqyI6IndvbWFuX3RlYWNoZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfj6siOiJ3b21hbl90ZWFjaGVyOnQ2Iiwi8J+RqOKAjfCfj6siOiJtYW5fdGVhY2hlciIsIvCfkajwn4+74oCN8J+PqyI6Im1hbl90ZWFjaGVyOnQyIiwi8J+RqPCfj7zigI3wn4+rIjoibWFuX3RlYWNoZXI6dDMiLCLwn5Go8J+PveKAjfCfj6siOiJtYW5fdGVhY2hlcjp0NCIsIvCfkajwn4++4oCN8J+PqyI6Im1hbl90ZWFjaGVyOnQ1Iiwi8J+RqPCfj7/igI3wn4+rIjoibWFuX3RlYWNoZXI6dDYiLCLwn5Gp4oCN8J+PrSI6IndvbWFuX2ZhY3Rvcnlfd29ya2VyIiwi8J+RqfCfj7vigI3wn4+tIjoid29tYW5fZmFjdG9yeV93b3JrZXI6dDIiLCLwn5Gp8J+PvOKAjfCfj60iOiJ3b21hbl9mYWN0b3J5X3dvcmtlcjp0MyIsIvCfkanwn4+94oCN8J+PrSI6IndvbWFuX2ZhY3Rvcnlfd29ya2VyOnQ0Iiwi8J+RqfCfj77igI3wn4+tIjoid29tYW5fZmFjdG9yeV93b3JrZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfj60iOiJ3b21hbl9mYWN0b3J5X3dvcmtlcjp0NiIsIvCfkajigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyIiwi8J+RqPCfj7vigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQyIiwi8J+RqPCfj7zigI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQzIiwi8J+RqPCfj73igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ0Iiwi8J+RqPCfj77igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ1Iiwi8J+RqPCfj7/igI3wn4+tIjoibWFuX2ZhY3Rvcnlfd29ya2VyOnQ2Iiwi8J+RqeKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3QiLCLwn5Gp8J+Pu+KAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDIiLCLwn5Gp8J+PvOKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDMiLCLwn5Gp8J+PveKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDQiLCLwn5Gp8J+PvuKAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDUiLCLwn5Gp8J+Pv+KAjfCfkrsiOiJ3b21hbl90ZWNobm9sb2dpc3Q6dDYiLCLwn5Go4oCN8J+SuyI6Im1hbl90ZWNobm9sb2dpc3QiLCLwn5Go8J+Pu+KAjfCfkrsiOiJtYW5fdGVjaG5vbG9naXN0OnQyIiwi8J+RqPCfj7zigI3wn5K7IjoibWFuX3RlY2hub2xvZ2lzdDp0MyIsIvCfkajwn4+94oCN8J+SuyI6Im1hbl90ZWNobm9sb2dpc3Q6dDQiLCLwn5Go8J+PvuKAjfCfkrsiOiJtYW5fdGVjaG5vbG9naXN0OnQ1Iiwi8J+RqPCfj7/igI3wn5K7IjoibWFuX3RlY2hub2xvZ2lzdDp0NiIsIvCfkanigI3wn5K8Ijoid29tYW5fb2ZmaWNlX3dvcmtlciIsIvCfkanwn4+74oCN8J+SvCI6IndvbWFuX29mZmljZV93b3JrZXI6dDIiLCLwn5Gp8J+PvOKAjfCfkrwiOiJ3b21hbl9vZmZpY2Vfd29ya2VyOnQzIiwi8J+RqfCfj73igI3wn5K8Ijoid29tYW5fb2ZmaWNlX3dvcmtlcjp0NCIsIvCfkanwn4++4oCN8J+SvCI6IndvbWFuX29mZmljZV93b3JrZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfkrwiOiJ3b21hbl9vZmZpY2Vfd29ya2VyOnQ2Iiwi8J+RqOKAjfCfkrwiOiJtYW5fb2ZmaWNlX3dvcmtlciIsIvCfkajwn4+74oCN8J+SvCI6Im1hbl9vZmZpY2Vfd29ya2VyOnQyIiwi8J+RqPCfj7zigI3wn5K8IjoibWFuX29mZmljZV93b3JrZXI6dDMiLCLwn5Go8J+PveKAjfCfkrwiOiJtYW5fb2ZmaWNlX3dvcmtlcjp0NCIsIvCfkajwn4++4oCN8J+SvCI6Im1hbl9vZmZpY2Vfd29ya2VyOnQ1Iiwi8J+RqPCfj7/igI3wn5K8IjoibWFuX29mZmljZV93b3JrZXI6dDYiLCLwn5Gp4oCN8J+UpyI6IndvbWFuX21lY2hhbmljIiwi8J+RqfCfj7vigI3wn5SnIjoid29tYW5fbWVjaGFuaWM6dDIiLCLwn5Gp8J+PvOKAjfCflKciOiJ3b21hbl9tZWNoYW5pYzp0MyIsIvCfkanwn4+94oCN8J+UpyI6IndvbWFuX21lY2hhbmljOnQ0Iiwi8J+RqfCfj77igI3wn5SnIjoid29tYW5fbWVjaGFuaWM6dDUiLCLwn5Gp8J+Pv+KAjfCflKciOiJ3b21hbl9tZWNoYW5pYzp0NiIsIvCfkajigI3wn5SnIjoibWFuX21lY2hhbmljIiwi8J+RqPCfj7vigI3wn5SnIjoibWFuX21lY2hhbmljOnQyIiwi8J+RqPCfj7zigI3wn5SnIjoibWFuX21lY2hhbmljOnQzIiwi8J+RqPCfj73igI3wn5SnIjoibWFuX21lY2hhbmljOnQ0Iiwi8J+RqPCfj77igI3wn5SnIjoibWFuX21lY2hhbmljOnQ1Iiwi8J+RqPCfj7/igI3wn5SnIjoibWFuX21lY2hhbmljOnQ2Iiwi8J+RqeKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3QiLCLwn5Gp8J+Pu+KAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDIiLCLwn5Gp8J+PvOKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDMiLCLwn5Gp8J+PveKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDQiLCLwn5Gp8J+PvuKAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDUiLCLwn5Gp8J+Pv+KAjfCflKwiOiJ3b21hbl9zY2llbnRpc3Q6dDYiLCLwn5Go4oCN8J+UrCI6Im1hbl9zY2llbnRpc3QiLCLwn5Go8J+Pu+KAjfCflKwiOiJtYW5fc2NpZW50aXN0OnQyIiwi8J+RqPCfj7zigI3wn5SsIjoibWFuX3NjaWVudGlzdDp0MyIsIvCfkajwn4+94oCN8J+UrCI6Im1hbl9zY2llbnRpc3Q6dDQiLCLwn5Go8J+PvuKAjfCflKwiOiJtYW5fc2NpZW50aXN0OnQ1Iiwi8J+RqPCfj7/igI3wn5SsIjoibWFuX3NjaWVudGlzdDp0NiIsIvCfkanigI3wn46oIjoid29tYW5fYXJ0aXN0Iiwi8J+RqfCfj7vigI3wn46oIjoid29tYW5fYXJ0aXN0OnQyIiwi8J+RqfCfj7zigI3wn46oIjoid29tYW5fYXJ0aXN0OnQzIiwi8J+RqfCfj73igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ0Iiwi8J+RqfCfj77igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ1Iiwi8J+RqfCfj7/igI3wn46oIjoid29tYW5fYXJ0aXN0OnQ2Iiwi8J+RqOKAjfCfjqgiOiJtYW5fYXJ0aXN0Iiwi8J+RqPCfj7vigI3wn46oIjoibWFuX2FydGlzdDp0MiIsIvCfkajwn4+84oCN8J+OqCI6Im1hbl9hcnRpc3Q6dDMiLCLwn5Go8J+PveKAjfCfjqgiOiJtYW5fYXJ0aXN0OnQ0Iiwi8J+RqPCfj77igI3wn46oIjoibWFuX2FydGlzdDp0NSIsIvCfkajwn4+/4oCN8J+OqCI6Im1hbl9hcnRpc3Q6dDYiLCLwn5Gp4oCN8J+akiI6IndvbWFuX2ZpcmVmaWdodGVyIiwi8J+RqfCfj7vigI3wn5qSIjoid29tYW5fZmlyZWZpZ2h0ZXI6dDIiLCLwn5Gp8J+PvOKAjfCfmpIiOiJ3b21hbl9maXJlZmlnaHRlcjp0MyIsIvCfkanwn4+94oCN8J+akiI6IndvbWFuX2ZpcmVmaWdodGVyOnQ0Iiwi8J+RqfCfj77igI3wn5qSIjoid29tYW5fZmlyZWZpZ2h0ZXI6dDUiLCLwn5Gp8J+Pv+KAjfCfmpIiOiJ3b21hbl9maXJlZmlnaHRlcjp0NiIsIvCfkajigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyIiwi8J+RqPCfj7vigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQyIiwi8J+RqPCfj7zigI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQzIiwi8J+RqPCfj73igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ0Iiwi8J+RqPCfj77igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ1Iiwi8J+RqPCfj7/igI3wn5qSIjoibWFuX2ZpcmVmaWdodGVyOnQ2Iiwi8J+RqeKAjeKciO+4jyI6IndvbWFuX3BpbG90Iiwi8J+RqfCfj7vigI3inIjvuI8iOiJ3b21hbl9waWxvdDp0MiIsIvCfkanwn4+84oCN4pyI77iPIjoid29tYW5fcGlsb3Q6dDMiLCLwn5Gp8J+PveKAjeKciO+4jyI6IndvbWFuX3BpbG90OnQ0Iiwi8J+RqfCfj77igI3inIjvuI8iOiJ3b21hbl9waWxvdDp0NSIsIvCfkanwn4+/4oCN4pyI77iPIjoid29tYW5fcGlsb3Q6dDYiLCLwn5Go4oCN4pyI77iPIjoibWFuX3BpbG90Iiwi8J+RqPCfj7vigI3inIjvuI8iOiJtYW5fcGlsb3Q6dDIiLCLwn5Go8J+PvOKAjeKciO+4jyI6Im1hbl9waWxvdDp0MyIsIvCfkajwn4+94oCN4pyI77iPIjoibWFuX3BpbG90OnQ0Iiwi8J+RqPCfj77igI3inIjvuI8iOiJtYW5fcGlsb3Q6dDUiLCLwn5Go8J+Pv+KAjeKciO+4jyI6Im1hbl9waWxvdDp0NiIsIvCfkanigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0Iiwi8J+RqfCfj7vigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQyIiwi8J+RqfCfj7zigI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQzIiwi8J+RqfCfj73igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ0Iiwi8J+RqfCfj77igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ1Iiwi8J+RqfCfj7/igI3wn5qAIjoid29tYW5fYXN0cm9uYXV0OnQ2Iiwi8J+RqOKAjfCfmoAiOiJtYW5fYXN0cm9uYXV0Iiwi8J+RqPCfj7vigI3wn5qAIjoibWFuX2FzdHJvbmF1dDp0MiIsIvCfkajwn4+84oCN8J+agCI6Im1hbl9hc3Ryb25hdXQ6dDMiLCLwn5Go8J+PveKAjfCfmoAiOiJtYW5fYXN0cm9uYXV0OnQ0Iiwi8J+RqPCfj77igI3wn5qAIjoibWFuX2FzdHJvbmF1dDp0NSIsIvCfkajwn4+/4oCN8J+agCI6Im1hbl9hc3Ryb25hdXQ6dDYiLCLwn5Gp4oCN4pqW77iPIjoid29tYW5fanVkZ2UiLCLwn5Gp8J+Pu+KAjeKalu+4jyI6IndvbWFuX2p1ZGdlOnQyIiwi8J+RqfCfj7zigI3impbvuI8iOiJ3b21hbl9qdWRnZTp0MyIsIvCfkanwn4+94oCN4pqW77iPIjoid29tYW5fanVkZ2U6dDQiLCLwn5Gp8J+PvuKAjeKalu+4jyI6IndvbWFuX2p1ZGdlOnQ1Iiwi8J+RqfCfj7/igI3impbvuI8iOiJ3b21hbl9qdWRnZTp0NiIsIvCfkajigI3impbvuI8iOiJtYW5fanVkZ2UiLCLwn5Go8J+Pu+KAjeKalu+4jyI6Im1hbl9qdWRnZTp0MiIsIvCfkajwn4+84oCN4pqW77iPIjoibWFuX2p1ZGdlOnQzIiwi8J+RqPCfj73igI3impbvuI8iOiJtYW5fanVkZ2U6dDQiLCLwn5Go8J+PvuKAjeKalu+4jyI6Im1hbl9qdWRnZTp0NSIsIvCfkajwn4+/4oCN4pqW77iPIjoibWFuX2p1ZGdlOnQ2Iiwi8J+ktiI6Im1yc19jbGF1cyIsIvCfpLbwn4+7IjoibXJzX2NsYXVzOnQyIiwi8J+ktvCfj7wiOiJtcnNfY2xhdXM6dDMiLCLwn6S28J+PvSI6Im1yc19jbGF1czp0NCIsIvCfpLbwn4++IjoibXJzX2NsYXVzOnQ1Iiwi8J+ktvCfj78iOiJtcnNfY2xhdXM6dDYiLCLwn46FIjoic2FudGEiLCLwn46F8J+PuyI6InNhbnRhOnQyIiwi8J+OhfCfj7wiOiJzYW50YTp0MyIsIvCfjoXwn4+9Ijoic2FudGE6dDQiLCLwn46F8J+PviI6InNhbnRhOnQ1Iiwi8J+OhfCfj78iOiJzYW50YTp0NiIsIvCfkbwiOiJhbmdlbCIsIvCfkbzwn4+7IjoiYW5nZWw6dDIiLCLwn5G88J+PvCI6ImFuZ2VsOnQzIiwi8J+RvPCfj70iOiJhbmdlbDp0NCIsIvCfkbzwn4++IjoiYW5nZWw6dDUiLCLwn5G88J+PvyI6ImFuZ2VsOnQ2Iiwi8J+ksCI6InByZWduYW50X3dvbWFuIiwi8J+ksPCfj7siOiJwcmVnbmFudF93b21hbjp0MiIsIvCfpLDwn4+8IjoicHJlZ25hbnRfd29tYW46dDMiLCLwn6Sw8J+PvSI6InByZWduYW50X3dvbWFuOnQ0Iiwi8J+ksPCfj74iOiJwcmVnbmFudF93b21hbjp0NSIsIvCfpLDwn4+/IjoicHJlZ25hbnRfd29tYW46dDYiLCLwn5G4IjoicHJpbmNlc3MiLCLwn5G48J+PuyI6InByaW5jZXNzOnQyIiwi8J+RuPCfj7wiOiJwcmluY2Vzczp0MyIsIvCfkbjwn4+9IjoicHJpbmNlc3M6dDQiLCLwn5G48J+PviI6InByaW5jZXNzOnQ1Iiwi8J+RuPCfj78iOiJwcmluY2Vzczp0NiIsIvCfpLQiOiJwcmluY2UiLCLwn6S08J+PuyI6InByaW5jZTp0MiIsIvCfpLTwn4+8IjoicHJpbmNlOnQzIiwi8J+ktPCfj70iOiJwcmluY2U6dDQiLCLwn6S08J+PviI6InByaW5jZTp0NSIsIvCfpLTwn4+/IjoicHJpbmNlOnQ2Iiwi8J+RsCI6ImJyaWRlX3dpdGhfdmVpbCIsIvCfkbDwn4+7IjoiYnJpZGVfd2l0aF92ZWlsOnQyIiwi8J+RsPCfj7wiOiJicmlkZV93aXRoX3ZlaWw6dDMiLCLwn5Gw8J+PvSI6ImJyaWRlX3dpdGhfdmVpbDp0NCIsIvCfkbDwn4++IjoiYnJpZGVfd2l0aF92ZWlsOnQ1Iiwi8J+RsPCfj78iOiJicmlkZV93aXRoX3ZlaWw6dDYiLCLwn6S1IjoibWFuX2luX3R1eGVkbyIsIvCfpLXwn4+7IjoibWFuX2luX3R1eGVkbzp0MiIsIvCfpLXwn4+8IjoibWFuX2luX3R1eGVkbzp0MyIsIvCfpLXwn4+9IjoibWFuX2luX3R1eGVkbzp0NCIsIvCfpLXwn4++IjoibWFuX2luX3R1eGVkbzp0NSIsIvCfpLXwn4+/IjoibWFuX2luX3R1eGVkbzp0NiIsIvCfj4PigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuIiwi8J+Pg/Cfj7vigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQyIiwi8J+Pg/Cfj7zigI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQzIiwi8J+Pg/Cfj73igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ0Iiwi8J+Pg/Cfj77igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ1Iiwi8J+Pg/Cfj7/igI3imYDvuI8iOiJydW5uaW5nX3dvbWFuOnQ2Iiwi8J+PgyI6InJ1bm5pbmdfbWFuIiwi8J+Pg/Cfj7siOiJydW5uaW5nX21hbjp0MiIsIvCfj4Pwn4+8IjoicnVubmluZ19tYW46dDMiLCLwn4+D8J+PvSI6InJ1bm5pbmdfbWFuOnQ0Iiwi8J+Pg/Cfj74iOiJydW5uaW5nX21hbjp0NSIsIvCfj4Pwn4+/IjoicnVubmluZ19tYW46dDYiLCLwn5q24oCN4pmA77iPIjoid2Fsa2luZ193b21hbiIsIvCfmrbwn4+74oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0MiIsIvCfmrbwn4+84oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0MyIsIvCfmrbwn4+94oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NCIsIvCfmrbwn4++4oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NSIsIvCfmrbwn4+/4oCN4pmA77iPIjoid2Fsa2luZ193b21hbjp0NiIsIvCfmrYiOiJ3YWxraW5nX21hbiIsIvCfmrbwn4+7Ijoid2Fsa2luZ19tYW46dDIiLCLwn5q28J+PvCI6IndhbGtpbmdfbWFuOnQzIiwi8J+atvCfj70iOiJ3YWxraW5nX21hbjp0NCIsIvCfmrbwn4++Ijoid2Fsa2luZ19tYW46dDUiLCLwn5q28J+PvyI6IndhbGtpbmdfbWFuOnQ2Iiwi8J+SgyI6ImRhbmNlciIsIvCfkoPwn4+7IjoiZGFuY2VyOnQyIiwi8J+Sg/Cfj7wiOiJkYW5jZXI6dDMiLCLwn5KD8J+PvSI6ImRhbmNlcjp0NCIsIvCfkoPwn4++IjoiZGFuY2VyOnQ1Iiwi8J+Sg/Cfj78iOiJkYW5jZXI6dDYiLCLwn5W6IjoibWFuX2RhbmNpbmciLCLwn5W68J+PuyI6Im1hbl9kYW5jaW5nOnQyIiwi8J+VuvCfj7wiOiJtYW5fZGFuY2luZzp0MyIsIvCflbrwn4+9IjoibWFuX2RhbmNpbmc6dDQiLCLwn5W68J+PviI6Im1hbl9kYW5jaW5nOnQ1Iiwi8J+VuvCfj78iOiJtYW5fZGFuY2luZzp0NiIsIvCfka8iOiJkYW5jaW5nX3dvbWVuIiwi8J+Rr+KAjeKZgiI6ImRhbmNpbmdfbWVuIiwi8J+RqyI6ImNvdXBsZSIsIvCfkawiOiJ0d29fbWVuX2hvbGRpbmdfaGFuZHMiLCLwn5GtIjoidHdvX3dvbWVuX2hvbGRpbmdfaGFuZHMiLCLwn5mH4oCN4pmA77iPIjoiYm93aW5nX3dvbWFuIiwi8J+Zh/Cfj7vigI3imYDvuI8iOiJib3dpbmdfd29tYW46dDIiLCLwn5mH8J+PvOKAjeKZgO+4jyI6ImJvd2luZ193b21hbjp0MyIsIvCfmYfwn4+94oCN4pmA77iPIjoiYm93aW5nX3dvbWFuOnQ0Iiwi8J+Zh/Cfj77igI3imYDvuI8iOiJib3dpbmdfd29tYW46dDUiLCLwn5mH8J+Pv+KAjeKZgO+4jyI6ImJvd2luZ193b21hbjp0NiIsIvCfmYciOiJib3dpbmdfbWFuIiwi8J+Zh/Cfj7siOiJib3dpbmdfbWFuOnQyIiwi8J+Zh/Cfj7wiOiJib3dpbmdfbWFuOnQzIiwi8J+Zh/Cfj70iOiJib3dpbmdfbWFuOnQ0Iiwi8J+Zh/Cfj74iOiJib3dpbmdfbWFuOnQ1Iiwi8J+Zh/Cfj78iOiJib3dpbmdfbWFuOnQ2Iiwi8J+kpuKAjeKZgu+4jyI6Im1hbl9mYWNlcGFsbWluZyIsIvCfpKbwn4+74oCN4pmC77iPIjoibWFuX2ZhY2VwYWxtaW5nOnQyIiwi8J+kpvCfj7zigI3imYLvuI8iOiJtYW5fZmFjZXBhbG1pbmc6dDMiLCLwn6Sm8J+PveKAjeKZgu+4jyI6Im1hbl9mYWNlcGFsbWluZzp0NCIsIvCfpKbwn4++4oCN4pmC77iPIjoibWFuX2ZhY2VwYWxtaW5nOnQ1Iiwi8J+kpvCfj7/igI3imYLvuI8iOiJtYW5fZmFjZXBhbG1pbmc6dDYiLCLwn6Sm4oCN4pmA77iPIjoid29tYW5fZmFjZXBhbG1pbmciLCLwn6Sm8J+Pu+KAjeKZgO+4jyI6IndvbWFuX2ZhY2VwYWxtaW5nOnQyIiwi8J+kpvCfj7zigI3imYDvuI8iOiJ3b21hbl9mYWNlcGFsbWluZzp0MyIsIvCfpKbwn4+94oCN4pmA77iPIjoid29tYW5fZmFjZXBhbG1pbmc6dDQiLCLwn6Sm8J+PvuKAjeKZgO+4jyI6IndvbWFuX2ZhY2VwYWxtaW5nOnQ1Iiwi8J+kpvCfj7/igI3imYDvuI8iOiJ3b21hbl9mYWNlcGFsbWluZzp0NiIsIvCfpLfigI3imYDvuI8iOiJ3b21hbl9zaHJ1Z2dpbmciLCLwn6S38J+Pu+KAjeKZgO+4jyI6IndvbWFuX3NocnVnZ2luZzp0MiIsIvCfpLfwn4+84oCN4pmA77iPIjoid29tYW5fc2hydWdnaW5nOnQzIiwi8J+kt/Cfj73igI3imYDvuI8iOiJ3b21hbl9zaHJ1Z2dpbmc6dDQiLCLwn6S38J+PvuKAjeKZgO+4jyI6IndvbWFuX3NocnVnZ2luZzp0NSIsIvCfpLfwn4+/4oCN4pmA77iPIjoid29tYW5fc2hydWdnaW5nOnQ2Iiwi8J+kt+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmciLCLwn6S38J+Pu+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDIiLCLwn6S38J+PvOKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDMiLCLwn6S38J+PveKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDQiLCLwn6S38J+PvuKAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDUiLCLwn6S38J+Pv+KAjeKZgu+4jyI6Im1hbl9zaHJ1Z2dpbmc6dDYiLCLwn5KB4oCN4pmA77iPIjoidGlwcGluZ19oYW5kX3dvbWFuIiwi8J+SgfCfj7vigI3imYDvuI8iOiJ0aXBwaW5nX2hhbmRfd29tYW46dDIiLCLwn5KB8J+PvOKAjeKZgO+4jyI6InRpcHBpbmdfaGFuZF93b21hbjp0MyIsIvCfkoHwn4+94oCN4pmA77iPIjoidGlwcGluZ19oYW5kX3dvbWFuOnQ0Iiwi8J+SgfCfj77igI3imYDvuI8iOiJ0aXBwaW5nX2hhbmRfd29tYW46dDUiLCLwn5KB8J+Pv+KAjeKZgO+4jyI6InRpcHBpbmdfaGFuZF93b21hbjp0NiIsIvCfkoHigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuIiwi8J+SgfCfj7vigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQyIiwi8J+SgfCfj7zigI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQzIiwi8J+SgfCfj73igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ0Iiwi8J+SgfCfj77igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ1Iiwi8J+SgfCfj7/igI3imYLvuI8iOiJ0aXBwaW5nX2hhbmRfbWFuOnQ2Iiwi8J+ZheKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW4iLCLwn5mF8J+Pu+KAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDIiLCLwn5mF8J+PvOKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDMiLCLwn5mF8J+PveKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDQiLCLwn5mF8J+PvuKAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDUiLCLwn5mF8J+Pv+KAjeKZgO+4jyI6Im5vX2dvb2Rfd29tYW46dDYiLCLwn5mF4oCN4pmC77iPIjoibm9fZ29vZF9tYW4iLCLwn5mF8J+Pu+KAjeKZgu+4jyI6Im5vX2dvb2RfbWFuOnQyIiwi8J+ZhfCfj7zigI3imYLvuI8iOiJub19nb29kX21hbjp0MyIsIvCfmYXwn4+94oCN4pmC77iPIjoibm9fZ29vZF9tYW46dDQiLCLwn5mF8J+PvuKAjeKZgu+4jyI6Im5vX2dvb2RfbWFuOnQ1Iiwi8J+ZhfCfj7/igI3imYLvuI8iOiJub19nb29kX21hbjp0NiIsIvCfmYbigI3imYDvuI8iOiJva193b21hbiIsIvCfmYbwn4+74oCN4pmA77iPIjoib2tfd29tYW46dDIiLCLwn5mG8J+PvOKAjeKZgO+4jyI6Im9rX3dvbWFuOnQzIiwi8J+ZhvCfj73igI3imYDvuI8iOiJva193b21hbjp0NCIsIvCfmYbwn4++4oCN4pmA77iPIjoib2tfd29tYW46dDUiLCLwn5mG8J+Pv+KAjeKZgO+4jyI6Im9rX3dvbWFuOnQ2Iiwi8J+ZhuKAjeKZgu+4jyI6Im9rX21hbiIsIvCfmYbwn4+74oCN4pmC77iPIjoib2tfbWFuOnQyIiwi8J+ZhvCfj7zigI3imYLvuI8iOiJva19tYW46dDMiLCLwn5mG8J+PveKAjeKZgu+4jyI6Im9rX21hbjp0NCIsIvCfmYbwn4++4oCN4pmC77iPIjoib2tfbWFuOnQ1Iiwi8J+ZhvCfj7/igI3imYLvuI8iOiJva19tYW46dDYiLCLwn5mL4oCN4pmA77iPIjoicmFpc2luZ19oYW5kX3dvbWFuIiwi8J+Zi/Cfj7vigI3imYDvuI8iOiJyYWlzaW5nX2hhbmRfd29tYW46dDIiLCLwn5mL8J+PvOKAjeKZgO+4jyI6InJhaXNpbmdfaGFuZF93b21hbjp0MyIsIvCfmYvwn4+94oCN4pmA77iPIjoicmFpc2luZ19oYW5kX3dvbWFuOnQ0Iiwi8J+Zi/Cfj77igI3imYDvuI8iOiJyYWlzaW5nX2hhbmRfd29tYW46dDUiLCLwn5mL8J+Pv+KAjeKZgO+4jyI6InJhaXNpbmdfaGFuZF93b21hbjp0NiIsIvCfmYvigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuIiwi8J+Zi/Cfj7vigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQyIiwi8J+Zi/Cfj7zigI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQzIiwi8J+Zi/Cfj73igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ0Iiwi8J+Zi/Cfj77igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ1Iiwi8J+Zi/Cfj7/igI3imYLvuI8iOiJyYWlzaW5nX2hhbmRfbWFuOnQ2Iiwi8J+ZjuKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW4iLCLwn5mO8J+Pu+KAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDIiLCLwn5mO8J+PvOKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDMiLCLwn5mO8J+PveKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDQiLCLwn5mO8J+PvuKAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDUiLCLwn5mO8J+Pv+KAjeKZgO+4jyI6InBvdXRpbmdfd29tYW46dDYiLCLwn5mO4oCN4pmC77iPIjoicG91dGluZ19tYW4iLCLwn5mO8J+Pu+KAjeKZgu+4jyI6InBvdXRpbmdfbWFuOnQyIiwi8J+ZjvCfj7zigI3imYLvuI8iOiJwb3V0aW5nX21hbjp0MyIsIvCfmY7wn4+94oCN4pmC77iPIjoicG91dGluZ19tYW46dDQiLCLwn5mO8J+PvuKAjeKZgu+4jyI6InBvdXRpbmdfbWFuOnQ1Iiwi8J+ZjvCfj7/igI3imYLvuI8iOiJwb3V0aW5nX21hbjp0NiIsIvCfmY3igI3imYDvuI8iOiJmcm93bmluZ193b21hbiIsIvCfmY3wn4+74oCN4pmA77iPIjoiZnJvd25pbmdfd29tYW46dDIiLCLwn5mN8J+PvOKAjeKZgO+4jyI6ImZyb3duaW5nX3dvbWFuOnQzIiwi8J+ZjfCfj73igI3imYDvuI8iOiJmcm93bmluZ193b21hbjp0NCIsIvCfmY3wn4++4oCN4pmA77iPIjoiZnJvd25pbmdfd29tYW46dDUiLCLwn5mN8J+Pv+KAjeKZgO+4jyI6ImZyb3duaW5nX3dvbWFuOnQ2Iiwi8J+ZjeKAjeKZgu+4jyI6ImZyb3duaW5nX21hbiIsIvCfmY3wn4+74oCN4pmC77iPIjoiZnJvd25pbmdfbWFuOnQyIiwi8J+ZjfCfj7zigI3imYLvuI8iOiJmcm93bmluZ19tYW46dDMiLCLwn5mN8J+PveKAjeKZgu+4jyI6ImZyb3duaW5nX21hbjp0NCIsIvCfmY3wn4++4oCN4pmC77iPIjoiZnJvd25pbmdfbWFuOnQ1Iiwi8J+ZjfCfj7/igI3imYLvuI8iOiJmcm93bmluZ19tYW46dDYiLCLwn5KH4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbiIsIvCfkofwn4+74oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0MiIsIvCfkofwn4+84oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0MyIsIvCfkofwn4+94oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NCIsIvCfkofwn4++4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NSIsIvCfkofwn4+/4oCN4pmA77iPIjoiaGFpcmN1dF93b21hbjp0NiIsIvCfkofigI3imYLvuI8iOiJoYWlyY3V0X21hbiIsIvCfkofwn4+74oCN4pmC77iPIjoiaGFpcmN1dF9tYW46dDIiLCLwn5KH8J+PvOKAjeKZgu+4jyI6ImhhaXJjdXRfbWFuOnQzIiwi8J+Sh/Cfj73igI3imYLvuI8iOiJoYWlyY3V0X21hbjp0NCIsIvCfkofwn4++4oCN4pmC77iPIjoiaGFpcmN1dF9tYW46dDUiLCLwn5KH8J+Pv+KAjeKZgu+4jyI6ImhhaXJjdXRfbWFuOnQ2Iiwi8J+ShuKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW4iLCLwn5KG8J+Pu+KAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDIiLCLwn5KG8J+PvOKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDMiLCLwn5KG8J+PveKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDQiLCLwn5KG8J+PvuKAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDUiLCLwn5KG8J+Pv+KAjeKZgO+4jyI6Im1hc3NhZ2Vfd29tYW46dDYiLCLwn5KG4oCN4pmC77iPIjoibWFzc2FnZV9tYW4iLCLwn5KG8J+Pu+KAjeKZgu+4jyI6Im1hc3NhZ2VfbWFuOnQyIiwi8J+ShvCfj7zigI3imYLvuI8iOiJtYXNzYWdlX21hbjp0MyIsIvCfkobwn4+94oCN4pmC77iPIjoibWFzc2FnZV9tYW46dDQiLCLwn5KG8J+PvuKAjeKZgu+4jyI6Im1hc3NhZ2VfbWFuOnQ1Iiwi8J+ShvCfj7/igI3imYLvuI8iOiJtYXNzYWdlX21hbjp0NiIsIvCfkpEiOiJjb3VwbGVfd2l0aF9oZWFydF93b21hbl9tYW4iLCLwn5Gp4oCN4p2k77iP4oCN8J+RqSI6ImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIiwi8J+RqOKAjeKdpO+4j+KAjfCfkagiOiJjb3VwbGVfd2l0aF9oZWFydF9tYW5fbWFuIiwi8J+SjyI6ImNvdXBsZWtpc3NfbWFuX3dvbWFuIiwi8J+RqeKAjeKdpO+4j+KAjfCfkovigI3wn5GpIjoiY291cGxla2lzc193b21hbl93b21hbiIsIvCfkajigI3inaTvuI/igI3wn5KL4oCN8J+RqCI6ImNvdXBsZWtpc3NfbWFuX21hbiIsIvCfkaoiOiJmYW1pbHlfbWFuX3dvbWFuX2JveSIsIvCfkajigI3wn5Gp4oCN8J+RpyI6ImZhbWlseV9tYW5fd29tYW5fZ2lybCIsIvCfkajigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiOiJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfYm95Iiwi8J+RqOKAjfCfkanigI3wn5Gm4oCN8J+RpiI6ImZhbWlseV9tYW5fd29tYW5fYm95X2JveSIsIvCfkajigI3wn5Gp4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfZ2lybCIsIvCfkanigI3wn5Gp4oCN8J+RpiI6ImZhbWlseV93b21hbl93b21hbl9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkaciOiJmYW1pbHlfd29tYW5fd29tYW5fZ2lybCIsIvCfkanigI3wn5Gp4oCN8J+Rp+KAjfCfkaYiOiJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkabigI3wn5GmIjoiZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3kiLCLwn5Gp4oCN8J+RqeKAjfCfkafigI3wn5GnIjoiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfZ2lybCIsIvCfkajigI3wn5Go4oCN8J+RpiI6ImZhbWlseV9tYW5fbWFuX2JveSIsIvCfkajigI3wn5Go4oCN8J+RpyI6ImZhbWlseV9tYW5fbWFuX2dpcmwiLCLwn5Go4oCN8J+RqOKAjfCfkafigI3wn5GmIjoiZmFtaWx5X21hbl9tYW5fZ2lybF9ib3kiLCLwn5Go4oCN8J+RqOKAjfCfkabigI3wn5GmIjoiZmFtaWx5X21hbl9tYW5fYm95X2JveSIsIvCfkajigI3wn5Go4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfbWFuX21hbl9naXJsX2dpcmwiLCLwn5Gp4oCN8J+RpiI6ImZhbWlseV93b21hbl9ib3kiLCLwn5Gp4oCN8J+RpyI6ImZhbWlseV93b21hbl9naXJsIiwi8J+RqeKAjfCfkafigI3wn5GmIjoiZmFtaWx5X3dvbWFuX2dpcmxfYm95Iiwi8J+RqeKAjfCfkabigI3wn5GmIjoiZmFtaWx5X3dvbWFuX2JveV9ib3kiLCLwn5Gp4oCN8J+Rp+KAjfCfkaciOiJmYW1pbHlfd29tYW5fZ2lybF9naXJsIiwi8J+RqOKAjfCfkaYiOiJmYW1pbHlfbWFuX2JveSIsIvCfkajigI3wn5GnIjoiZmFtaWx5X21hbl9naXJsIiwi8J+RqOKAjfCfkafigI3wn5GmIjoiZmFtaWx5X21hbl9naXJsX2JveSIsIvCfkajigI3wn5Gm4oCN8J+RpiI6ImZhbWlseV9tYW5fYm95X2JveSIsIvCfkajigI3wn5Gn4oCN8J+RpyI6ImZhbWlseV9tYW5fZ2lybF9naXJsIiwi8J+RmiI6IndvbWFuc19jbG90aGVzIiwi8J+RlSI6InRzaGlydCIsIvCfkZYiOiJqZWFucyIsIvCfkZQiOiJuZWNrdGllIiwi8J+RlyI6ImRyZXNzIiwi8J+RmSI6ImJpa2luaSIsIvCfkZgiOiJraW1vbm8iLCLwn5KEIjoibGlwc3RpY2siLCLwn5KLIjoia2lzcyIsIvCfkaMiOiJmb290cHJpbnRzIiwi8J+RoCI6ImhpZ2hfaGVlbCIsIvCfkaEiOiJzYW5kYWwiLCLwn5GiIjoiYm9vdCIsIvCfkZ4iOiJtYW5zX3Nob2UiLCLwn5GfIjoiYXRobGV0aWNfc2hvZSIsIvCfkZIiOiJ3b21hbnNfaGF0Iiwi8J+OqSI6InRvcGhhdCIsIuKbkSI6InJlc2N1ZV93b3JrZXJfaGVsbWV0Iiwi8J+OkyI6Im1vcnRhcl9ib2FyZCIsIvCfkZEiOiJjcm93biIsIvCfjpIiOiJzY2hvb2xfc2F0Y2hlbCIsIvCfkZ0iOiJwb3VjaCIsIvCfkZsiOiJwdXJzZSIsIvCfkZwiOiJoYW5kYmFnIiwi8J+SvCI6ImJyaWVmY2FzZSIsIvCfkZMiOiJleWVnbGFzc2VzIiwi8J+VtiI6ImRhcmtfc3VuZ2xhc3NlcyIsIvCfko0iOiJyaW5nIiwi8J+MgiI6ImNsb3NlZF91bWJyZWxsYSIsIvCfkLYiOiJkb2ciLCLwn5CxIjoiY2F0Iiwi8J+QrSI6Im1vdXNlIiwi8J+QuSI6ImhhbXN0ZXIiLCLwn5CwIjoicmFiYml0Iiwi8J+miiI6ImZveF9mYWNlIiwi8J+QuyI6ImJlYXIiLCLwn5C8IjoicGFuZGFfZmFjZSIsIvCfkKgiOiJrb2FsYSIsIvCfkK8iOiJ0aWdlciIsIvCfpoEiOiJsaW9uIiwi8J+QriI6ImNvdyIsIvCfkLciOiJwaWciLCLwn5C9IjoicGlnX25vc2UiLCLwn5C4IjoiZnJvZyIsIvCfppEiOiJzcXVpZCIsIvCfkJkiOiJvY3RvcHVzIiwi8J+mkCI6InNocmltcCIsIvCfkLUiOiJtb25rZXlfZmFjZSIsIvCfpo0iOiJnb3JpbGxhIiwi8J+ZiCI6InNlZV9ub19ldmlsIiwi8J+ZiSI6ImhlYXJfbm9fZXZpbCIsIvCfmYoiOiJzcGVha19ub19ldmlsIiwi8J+QkiI6Im1vbmtleSIsIvCfkJQiOiJjaGlja2VuIiwi8J+QpyI6InBlbmd1aW4iLCLwn5CmIjoiYmlyZCIsIvCfkKQiOiJiYWJ5X2NoaWNrIiwi8J+QoyI6ImhhdGNoaW5nX2NoaWNrIiwi8J+QpSI6ImhhdGNoZWRfY2hpY2siLCLwn6aGIjoiZHVjayIsIvCfpoUiOiJlYWdsZSIsIvCfpokiOiJvd2wiLCLwn6aHIjoiYmF0Iiwi8J+QuiI6IndvbGYiLCLwn5CXIjoiYm9hciIsIvCfkLQiOiJob3JzZSIsIvCfpoQiOiJ1bmljb3JuIiwi8J+QnSI6ImhvbmV5YmVlIiwi8J+QmyI6ImJ1ZyIsIvCfposiOiJidXR0ZXJmbHkiLCLwn5CMIjoic25haWwiLCLwn5CeIjoiYmVldGxlIiwi8J+QnCI6ImFudCIsIvCflbciOiJzcGlkZXIiLCLwn6aCIjoic2NvcnBpb24iLCLwn6aAIjoiY3JhYiIsIvCfkI0iOiJzbmFrZSIsIvCfpo4iOiJsaXphcmQiLCLwn5CiIjoidHVydGxlIiwi8J+QoCI6InRyb3BpY2FsX2Zpc2giLCLwn5CfIjoiZmlzaCIsIvCfkKEiOiJibG93ZmlzaCIsIvCfkKwiOiJkb2xwaGluIiwi8J+miCI6InNoYXJrIiwi8J+QsyI6IndoYWxlIiwi8J+QiyI6IndoYWxlMiIsIvCfkIoiOiJjcm9jb2RpbGUiLCLwn5CGIjoibGVvcGFyZCIsIvCfkIUiOiJ0aWdlcjIiLCLwn5CDIjoid2F0ZXJfYnVmZmFsbyIsIvCfkIIiOiJveCIsIvCfkIQiOiJjb3cyIiwi8J+mjCI6ImRlZXIiLCLwn5CqIjoiZHJvbWVkYXJ5X2NhbWVsIiwi8J+QqyI6ImNhbWVsIiwi8J+QmCI6ImVsZXBoYW50Iiwi8J+mjyI6InJoaW5vY2Vyb3MiLCLwn5CQIjoiZ29hdCIsIvCfkI8iOiJyYW0iLCLwn5CRIjoic2hlZXAiLCLwn5COIjoicmFjZWhvcnNlIiwi8J+QliI6InBpZzIiLCLwn5CAIjoicmF0Iiwi8J+QgSI6Im1vdXNlMiIsIvCfkJMiOiJyb29zdGVyIiwi8J+mgyI6InR1cmtleSIsIvCflYoiOiJkb3ZlIiwi8J+QlSI6ImRvZzIiLCLwn5CpIjoicG9vZGxlIiwi8J+QiCI6ImNhdDIiLCLwn5CHIjoicmFiYml0MiIsIvCfkL8iOiJjaGlwbXVuayIsIvCfkL4iOiJwYXdfcHJpbnRzIiwi8J+QiSI6ImRyYWdvbiIsIvCfkLIiOiJkcmFnb25fZmFjZSIsIvCfjLUiOiJjYWN0dXMiLCLwn46EIjoiY2hyaXN0bWFzX3RyZWUiLCLwn4yyIjoiZXZlcmdyZWVuX3RyZWUiLCLwn4yzIjoiZGVjaWR1b3VzX3RyZWUiLCLwn4y0IjoicGFsbV90cmVlIiwi8J+MsSI6InNlZWRsaW5nIiwi8J+MvyI6ImhlcmIiLCLimJgiOiJzaGFtcm9jayIsIvCfjYAiOiJmb3VyX2xlYWZfY2xvdmVyIiwi8J+OjSI6ImJhbWJvbyIsIvCfjosiOiJ0YW5hYmF0YV90cmVlIiwi8J+NgyI6ImxlYXZlcyIsIvCfjYIiOiJmYWxsZW5fbGVhZiIsIvCfjYEiOiJtYXBsZV9sZWFmIiwi8J+MviI6ImVhcl9vZl9yaWNlIiwi8J+MuiI6ImhpYmlzY3VzIiwi8J+MuyI6InN1bmZsb3dlciIsIvCfjLkiOiJyb3NlIiwi8J+lgCI6IndpbHRlZF9mbG93ZXIiLCLwn4y3IjoidHVsaXAiLCLwn4y8IjoiYmxvc3NvbSIsIvCfjLgiOiJjaGVycnlfYmxvc3NvbSIsIvCfkpAiOiJib3VxdWV0Iiwi8J+NhCI6Im11c2hyb29tIiwi8J+MsCI6ImNoZXN0bnV0Iiwi8J+OgyI6ImphY2tfb19sYW50ZXJuIiwi8J+QmiI6InNoZWxsIiwi8J+VuCI6InNwaWRlcl93ZWIiLCLwn4yOIjoiZWFydGhfYW1lcmljYXMiLCLwn4yNIjoiZWFydGhfYWZyaWNhIiwi8J+MjyI6ImVhcnRoX2FzaWEiLCLwn4yVIjoiZnVsbF9tb29uIiwi8J+MliI6IndhbmluZ19naWJib3VzX21vb24iLCLwn4yXIjoibGFzdF9xdWFydGVyX21vb24iLCLwn4yYIjoid2FuaW5nX2NyZXNjZW50X21vb24iLCLwn4yRIjoibmV3X21vb24iLCLwn4ySIjoid2F4aW5nX2NyZXNjZW50X21vb24iLCLwn4yTIjoiZmlyc3RfcXVhcnRlcl9tb29uIiwi8J+MlCI6IndheGluZ19naWJib3VzX21vb24iLCLwn4yaIjoibmV3X21vb25fd2l0aF9mYWNlIiwi8J+MnSI6ImZ1bGxfbW9vbl93aXRoX2ZhY2UiLCLwn4ybIjoiZmlyc3RfcXVhcnRlcl9tb29uX3dpdGhfZmFjZSIsIvCfjJwiOiJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiLCLwn4yeIjoic3VuX3dpdGhfZmFjZSIsIvCfjJkiOiJjcmVzY2VudF9tb29uIiwi4q2QIjoic3RhciIsIvCfjJ8iOiJzdGFyMiIsIvCfkqsiOiJkaXp6eSIsIuKcqCI6InNwYXJrbGVzIiwi4piEIjoiY29tZXQiLCLimIAiOiJzdW5ueSIsIvCfjKQiOiJzdW5fYmVoaW5kX3NtYWxsX2Nsb3VkIiwi4puFIjoicGFydGx5X3N1bm55Iiwi8J+MpSI6InN1bl9iZWhpbmRfbGFyZ2VfY2xvdWQiLCLwn4ymIjoic3VuX2JlaGluZF9yYWluX2Nsb3VkIiwi4piBIjoiY2xvdWQiLCLwn4ynIjoiY2xvdWRfd2l0aF9yYWluIiwi4puIIjoiY2xvdWRfd2l0aF9saWdodG5pbmdfYW5kX3JhaW4iLCLwn4ypIjoiY2xvdWRfd2l0aF9saWdodG5pbmciLCLimqEiOiJ6YXAiLCLwn5SlIjoiZmlyZSIsIvCfkqUiOiJib29tIiwi4p2EIjoic25vd2ZsYWtlIiwi8J+MqCI6ImNsb3VkX3dpdGhfc25vdyIsIuKbhCI6InNub3dtYW4iLCLimIMiOiJzbm93bWFuX3dpdGhfc25vdyIsIvCfjKwiOiJ3aW5kX2ZhY2UiLCLwn5KoIjoiZGFzaCIsIvCfjKoiOiJ0b3JuYWRvIiwi8J+MqyI6ImZvZyIsIuKYgiI6Im9wZW5fdW1icmVsbGEiLCLimJQiOiJ1bWJyZWxsYSIsIvCfkqciOiJkcm9wbGV0Iiwi8J+SpiI6InN3ZWF0X2Ryb3BzIiwi8J+MiiI6Im9jZWFuIiwi8J+NjyI6ImdyZWVuX2FwcGxlIiwi8J+NjiI6ImFwcGxlIiwi8J+NkCI6InBlYXIiLCLwn42KIjoidGFuZ2VyaW5lIiwi8J+NiyI6ImxlbW9uIiwi8J+NjCI6ImJhbmFuYSIsIvCfjYkiOiJ3YXRlcm1lbG9uIiwi8J+NhyI6ImdyYXBlcyIsIvCfjZMiOiJzdHJhd2JlcnJ5Iiwi8J+NiCI6Im1lbG9uIiwi8J+NkiI6ImNoZXJyaWVzIiwi8J+NkSI6InBlYWNoIiwi8J+NjSI6InBpbmVhcHBsZSIsIvCfpZ0iOiJraXdpX2ZydWl0Iiwi8J+lkSI6ImF2b2NhZG8iLCLwn42FIjoidG9tYXRvIiwi8J+NhiI6ImVnZ3BsYW50Iiwi8J+lkiI6ImN1Y3VtYmVyIiwi8J+llSI6ImNhcnJvdCIsIvCfjLYiOiJob3RfcGVwcGVyIiwi8J+llCI6InBvdGF0byIsIvCfjL0iOiJjb3JuIiwi8J+NoCI6InN3ZWV0X3BvdGF0byIsIvCfpZwiOiJwZWFudXRzIiwi8J+NryI6ImhvbmV5X3BvdCIsIvCfpZAiOiJjcm9pc3NhbnQiLCLwn42eIjoiYnJlYWQiLCLwn6WWIjoiYmFndWV0dGVfYnJlYWQiLCLwn6eAIjoiY2hlZXNlIiwi8J+lmiI6ImVnZyIsIvCfpZMiOiJiYWNvbiIsIvCfpZ4iOiJwYW5jYWtlcyIsIvCfjZciOiJwb3VsdHJ5X2xlZyIsIvCfjZYiOiJtZWF0X29uX2JvbmUiLCLwn42kIjoiZnJpZWRfc2hyaW1wIiwi8J+NsyI6ImZyaWVkX2VnZyIsIvCfjZQiOiJoYW1idXJnZXIiLCLwn42fIjoiZnJpZXMiLCLwn6WZIjoic3R1ZmZlZF9mbGF0YnJlYWQiLCLwn4ytIjoiaG90ZG9nIiwi8J+NlSI6InBpenphIiwi8J+NnSI6InNwYWdoZXR0aSIsIvCfjK4iOiJ0YWNvIiwi8J+MryI6ImJ1cnJpdG8iLCLwn6WXIjoiZ3JlZW5fc2FsYWQiLCLwn6WYIjoic2hhbGxvd19wYW5fb2ZfZm9vZCIsIvCfjZwiOiJyYW1lbiIsIvCfjbIiOiJzdGV3Iiwi8J+NpSI6ImZpc2hfY2FrZSIsIvCfjaMiOiJzdXNoaSIsIvCfjbEiOiJiZW50byIsIvCfjZsiOiJjdXJyeSIsIvCfjZkiOiJyaWNlX2JhbGwiLCLwn42aIjoicmljZSIsIvCfjZgiOiJyaWNlX2NyYWNrZXIiLCLwn42iIjoib2RlbiIsIvCfjaEiOiJkYW5nbyIsIvCfjaciOiJzaGF2ZWRfaWNlIiwi8J+NqCI6ImljZV9jcmVhbSIsIvCfjaYiOiJpY2VjcmVhbSIsIvCfjbAiOiJjYWtlIiwi8J+OgiI6ImJpcnRoZGF5Iiwi8J+NriI6ImN1c3RhcmQiLCLwn42sIjoiY2FuZHkiLCLwn42tIjoibG9sbGlwb3AiLCLwn42rIjoiY2hvY29sYXRlX2JhciIsIvCfjb8iOiJwb3Bjb3JuIiwi8J+NqSI6ImRvdWdobnV0Iiwi8J+NqiI6ImNvb2tpZSIsIvCfpZsiOiJtaWxrX2dsYXNzIiwi8J+NuiI6ImJlZXIiLCLwn427IjoiYmVlcnMiLCLwn6WCIjoiY2xpbmtpbmdfZ2xhc3NlcyIsIvCfjbciOiJ3aW5lX2dsYXNzIiwi8J+lgyI6InR1bWJsZXJfZ2xhc3MiLCLwn424IjoiY29ja3RhaWwiLCLwn425IjoidHJvcGljYWxfZHJpbmsiLCLwn42+IjoiY2hhbXBhZ25lIiwi8J+NtiI6InNha2UiLCLwn421IjoidGVhIiwi4piVIjoiY29mZmVlIiwi8J+NvCI6ImJhYnlfYm90dGxlIiwi8J+lhCI6InNwb29uIiwi8J+NtCI6ImZvcmtfYW5kX2tuaWZlIiwi8J+NvSI6InBsYXRlX3dpdGhfY3V0bGVyeSIsIuKavSI6InNvY2NlciIsIvCfj4AiOiJiYXNrZXRiYWxsIiwi8J+PiCI6ImZvb3RiYWxsIiwi4pq+IjoiYmFzZWJhbGwiLCLwn46+IjoidGVubmlzIiwi8J+PkCI6InZvbGxleWJhbGwiLCLwn4+JIjoicnVnYnlfZm9vdGJhbGwiLCLwn46xIjoiOGJhbGwiLCLim7MiOiJnb2xmIiwi8J+PjO+4j+KAjeKZgCI6ImdvbGZpbmdfd29tYW4iLCLwn4+MIjoiZ29sZmluZ19tYW4iLCLwn4+M8J+PuyI6ImdvbGZpbmdfbWFuOnQyIiwi8J+PjPCfj7wiOiJnb2xmaW5nX21hbjp0MyIsIvCfj4zwn4+9IjoiZ29sZmluZ19tYW46dDQiLCLwn4+M8J+PviI6ImdvbGZpbmdfbWFuOnQ1Iiwi8J+PjPCfj78iOiJnb2xmaW5nX21hbjp0NiIsIvCfj5MiOiJwaW5nX3BvbmciLCLwn4+4IjoiYmFkbWludG9uIiwi8J+lhSI6ImdvYWxfbmV0Iiwi8J+PkiI6ImljZV9ob2NrZXkiLCLwn4+RIjoiZmllbGRfaG9ja2V5Iiwi8J+PjyI6ImNyaWNrZXRfYmF0X2FuZF9iYWxsIiwi8J+OvyI6InNraSIsIuKbtyI6InNraWVyIiwi8J+PgiI6InNub3dib2FyZGVyIiwi8J+PgvCfj7siOiJzbm93Ym9hcmRlcjp0MiIsIvCfj4Lwn4+8Ijoic25vd2JvYXJkZXI6dDMiLCLwn4+C8J+PvSI6InNub3dib2FyZGVyOnQ0Iiwi8J+PgvCfj74iOiJzbm93Ym9hcmRlcjp0NSIsIvCfj4Lwn4+/Ijoic25vd2JvYXJkZXI6dDYiLCLwn6S6IjoicGVyc29uX2ZlbmNpbmciLCLwn6S84oCN4pmAIjoid29tZW5fd3Jlc3RsaW5nIiwi8J+kvOKAjeKZgiI6Im1lbl93cmVzdGxpbmciLCLwn6S44oCN4pmA77iPIjoid29tYW5fY2FydHdoZWVsaW5nIiwi8J+kuPCfj7vigI3imYDvuI8iOiJ3b21hbl9jYXJ0d2hlZWxpbmc6dDIiLCLwn6S48J+PvOKAjeKZgO+4jyI6IndvbWFuX2NhcnR3aGVlbGluZzp0MyIsIvCfpLjwn4+94oCN4pmA77iPIjoid29tYW5fY2FydHdoZWVsaW5nOnQ0Iiwi8J+kuPCfj77igI3imYDvuI8iOiJ3b21hbl9jYXJ0d2hlZWxpbmc6dDUiLCLwn6S48J+Pv+KAjeKZgO+4jyI6IndvbWFuX2NhcnR3aGVlbGluZzp0NiIsIvCfpLjigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nIiwi8J+kuPCfj7vigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQyIiwi8J+kuPCfj7zigI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQzIiwi8J+kuPCfj73igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ0Iiwi8J+kuPCfj77igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ1Iiwi8J+kuPCfj7/igI3imYLvuI8iOiJtYW5fY2FydHdoZWVsaW5nOnQ2Iiwi8J+kvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGwiLCLwn6S+8J+Pu+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDIiLCLwn6S+8J+PvOKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDMiLCLwn6S+8J+PveKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDQiLCLwn6S+8J+PvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDUiLCLwn6S+8J+Pv+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfaGFuZGJhbGw6dDYiLCLwn6S+4oCN4pmC77iPIjoibWFuX3BsYXlpbmdfaGFuZGJhbGwiLCLwn6S+8J+Pu+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX2hhbmRiYWxsOnQyIiwi8J+kvvCfj7zigI3imYLvuI8iOiJtYW5fcGxheWluZ19oYW5kYmFsbDp0MyIsIvCfpL7wn4+94oCN4pmC77iPIjoibWFuX3BsYXlpbmdfaGFuZGJhbGw6dDQiLCLwn6S+8J+PvuKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX2hhbmRiYWxsOnQ1Iiwi8J+kvvCfj7/igI3imYLvuI8iOiJtYW5fcGxheWluZ19oYW5kYmFsbDp0NiIsIuKbuCI6ImljZV9za2F0ZSIsIvCfj7kiOiJib3dfYW5kX2Fycm93Iiwi8J+OoyI6ImZpc2hpbmdfcG9sZV9hbmRfZmlzaCIsIvCfpYoiOiJib3hpbmdfZ2xvdmUiLCLwn6WLIjoibWFydGlhbF9hcnRzX3VuaWZvcm0iLCLwn5qj4oCN4pmA77iPIjoicm93aW5nX3dvbWFuIiwi8J+ao/Cfj7vigI3imYDvuI8iOiJyb3dpbmdfd29tYW46dDIiLCLwn5qj8J+PvOKAjeKZgO+4jyI6InJvd2luZ193b21hbjp0MyIsIvCfmqPwn4+94oCN4pmA77iPIjoicm93aW5nX3dvbWFuOnQ0Iiwi8J+ao/Cfj77igI3imYDvuI8iOiJyb3dpbmdfd29tYW46dDUiLCLwn5qj8J+Pv+KAjeKZgO+4jyI6InJvd2luZ193b21hbjp0NiIsIvCfmqMiOiJyb3dpbmdfbWFuIiwi8J+ao/Cfj7siOiJyb3dpbmdfbWFuOnQyIiwi8J+ao/Cfj7wiOiJyb3dpbmdfbWFuOnQzIiwi8J+ao/Cfj70iOiJyb3dpbmdfbWFuOnQ0Iiwi8J+ao/Cfj74iOiJyb3dpbmdfbWFuOnQ1Iiwi8J+ao/Cfj78iOiJyb3dpbmdfbWFuOnQ2Iiwi8J+PiuKAjeKZgO+4jyI6InN3aW1taW5nX3dvbWFuIiwi8J+PivCfj7vigI3imYDvuI8iOiJzd2ltbWluZ193b21hbjp0MiIsIvCfj4rwn4+84oCN4pmA77iPIjoic3dpbW1pbmdfd29tYW46dDMiLCLwn4+K8J+PveKAjeKZgO+4jyI6InN3aW1taW5nX3dvbWFuOnQ0Iiwi8J+PivCfj77igI3imYDvuI8iOiJzd2ltbWluZ193b21hbjp0NSIsIvCfj4rwn4+/4oCN4pmA77iPIjoic3dpbW1pbmdfd29tYW46dDYiLCLwn4+KIjoic3dpbW1pbmdfbWFuIiwi8J+PivCfj7siOiJzd2ltbWluZ19tYW46dDIiLCLwn4+K8J+PvCI6InN3aW1taW5nX21hbjp0MyIsIvCfj4rwn4+9Ijoic3dpbW1pbmdfbWFuOnQ0Iiwi8J+PivCfj74iOiJzd2ltbWluZ19tYW46dDUiLCLwn4+K8J+PvyI6InN3aW1taW5nX21hbjp0NiIsIvCfpL3igI3imYDvuI8iOiJ3b21hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCLwn6S98J+Pu+KAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbzp0MiIsIvCfpL3wn4+84oCN4pmA77iPIjoid29tYW5fcGxheWluZ193YXRlcl9wb2xvOnQzIiwi8J+kvfCfj73igI3imYDvuI8iOiJ3b21hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDQiLCLwn6S98J+PvuKAjeKZgO+4jyI6IndvbWFuX3BsYXlpbmdfd2F0ZXJfcG9sbzp0NSIsIvCfpL3wn4+/4oCN4pmA77iPIjoid29tYW5fcGxheWluZ193YXRlcl9wb2xvOnQ2Iiwi8J+kveKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG8iLCLwn6S98J+Pu+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDIiLCLwn6S98J+PvOKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDMiLCLwn6S98J+PveKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDQiLCLwn6S98J+PvuKAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDUiLCLwn6S98J+Pv+KAjeKZgu+4jyI6Im1hbl9wbGF5aW5nX3dhdGVyX3BvbG86dDYiLCLwn4+E4oCN4pmA77iPIjoic3VyZmluZ193b21hbiIsIvCfj4Twn4+74oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0MiIsIvCfj4Twn4+84oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0MyIsIvCfj4Twn4+94oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NCIsIvCfj4Twn4++4oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NSIsIvCfj4Twn4+/4oCN4pmA77iPIjoic3VyZmluZ193b21hbjp0NiIsIvCfj4QiOiJzdXJmaW5nX21hbiIsIvCfj4Twn4+7Ijoic3VyZmluZ19tYW46dDIiLCLwn4+E8J+PvCI6InN1cmZpbmdfbWFuOnQzIiwi8J+PhPCfj70iOiJzdXJmaW5nX21hbjp0NCIsIvCfj4Twn4++Ijoic3VyZmluZ19tYW46dDUiLCLwn4+E8J+PvyI6InN1cmZpbmdfbWFuOnQ2Iiwi8J+bgCI6ImJhdGgiLCLwn5uA8J+PuyI6ImJhdGg6dDIiLCLwn5uA8J+PvCI6ImJhdGg6dDMiLCLwn5uA8J+PvSI6ImJhdGg6dDQiLCLwn5uA8J+PviI6ImJhdGg6dDUiLCLwn5uA8J+PvyI6ImJhdGg6dDYiLCLim7nvuI/igI3imYAiOiJiYXNrZXRiYWxsX3dvbWFuIiwi4pu5IjoiYmFza2V0YmFsbF9tYW4iLCLim7nwn4+7IjoiYmFza2V0YmFsbF9tYW46dDIiLCLim7nwn4+8IjoiYmFza2V0YmFsbF9tYW46dDMiLCLim7nwn4+9IjoiYmFza2V0YmFsbF9tYW46dDQiLCLim7nwn4++IjoiYmFza2V0YmFsbF9tYW46dDUiLCLim7nwn4+/IjoiYmFza2V0YmFsbF9tYW46dDYiLCLwn4+L77iP4oCN4pmAIjoid2VpZ2h0X2xpZnRpbmdfd29tYW4iLCLwn4+LIjoid2VpZ2h0X2xpZnRpbmdfbWFuIiwi8J+Pi/Cfj7siOiJ3ZWlnaHRfbGlmdGluZ19tYW46dDIiLCLwn4+L8J+PvCI6IndlaWdodF9saWZ0aW5nX21hbjp0MyIsIvCfj4vwn4+9Ijoid2VpZ2h0X2xpZnRpbmdfbWFuOnQ0Iiwi8J+Pi/Cfj74iOiJ3ZWlnaHRfbGlmdGluZ19tYW46dDUiLCLwn4+L8J+PvyI6IndlaWdodF9saWZ0aW5nX21hbjp0NiIsIvCfmrTigI3imYDvuI8iOiJiaWtpbmdfd29tYW4iLCLwn5q08J+Pu+KAjeKZgO+4jyI6ImJpa2luZ193b21hbjp0MiIsIvCfmrTwn4+84oCN4pmA77iPIjoiYmlraW5nX3dvbWFuOnQzIiwi8J+atPCfj73igI3imYDvuI8iOiJiaWtpbmdfd29tYW46dDQiLCLwn5q08J+PvuKAjeKZgO+4jyI6ImJpa2luZ193b21hbjp0NSIsIvCfmrTwn4+/4oCN4pmA77iPIjoiYmlraW5nX3dvbWFuOnQ2Iiwi8J+atCI6ImJpa2luZ19tYW4iLCLwn5q08J+PuyI6ImJpa2luZ19tYW46dDIiLCLwn5q08J+PvCI6ImJpa2luZ19tYW46dDMiLCLwn5q08J+PvSI6ImJpa2luZ19tYW46dDQiLCLwn5q08J+PviI6ImJpa2luZ19tYW46dDUiLCLwn5q08J+PvyI6ImJpa2luZ19tYW46dDYiLCLwn5q14oCN4pmA77iPIjoibW91bnRhaW5fYmlraW5nX3dvbWFuIiwi8J+atfCfj7vigI3imYDvuI8iOiJtb3VudGFpbl9iaWtpbmdfd29tYW46dDIiLCLwn5q18J+PvOKAjeKZgO+4jyI6Im1vdW50YWluX2Jpa2luZ193b21hbjp0MyIsIvCfmrXwn4+94oCN4pmA77iPIjoibW91bnRhaW5fYmlraW5nX3dvbWFuOnQ0Iiwi8J+atfCfj77igI3imYDvuI8iOiJtb3VudGFpbl9iaWtpbmdfd29tYW46dDUiLCLwn5q18J+Pv+KAjeKZgO+4jyI6Im1vdW50YWluX2Jpa2luZ193b21hbjp0NiIsIvCfmrUiOiJtb3VudGFpbl9iaWtpbmdfbWFuIiwi8J+atfCfj7siOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQyIiwi8J+atfCfj7wiOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQzIiwi8J+atfCfj70iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ0Iiwi8J+atfCfj74iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ1Iiwi8J+atfCfj78iOiJtb3VudGFpbl9iaWtpbmdfbWFuOnQ2Iiwi8J+PhyI6ImhvcnNlX3JhY2luZyIsIvCfj4fwn4+7IjoiaG9yc2VfcmFjaW5nOnQyIiwi8J+Ph/Cfj7wiOiJob3JzZV9yYWNpbmc6dDMiLCLwn4+H8J+PvSI6ImhvcnNlX3JhY2luZzp0NCIsIvCfj4fwn4++IjoiaG9yc2VfcmFjaW5nOnQ1Iiwi8J+Ph/Cfj78iOiJob3JzZV9yYWNpbmc6dDYiLCLwn5W0IjoiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIiwi8J+VtPCfj7siOiJidXNpbmVzc19zdWl0X2xldml0YXRpbmc6dDIiLCLwn5W08J+PvCI6ImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZzp0MyIsIvCflbTwn4+9IjoiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nOnQ0Iiwi8J+VtPCfj74iOiJidXNpbmVzc19zdWl0X2xldml0YXRpbmc6dDUiLCLwn5W08J+PvyI6ImJ1c2luZXNzX3N1aXRfbGV2aXRhdGluZzp0NiIsIvCfj4YiOiJ0cm9waHkiLCLwn469IjoicnVubmluZ19zaGlydF93aXRoX3Nhc2giLCLwn4+FIjoibWVkYWxfc3BvcnRzIiwi8J+OliI6Im1lZGFsX21pbGl0YXJ5Iiwi8J+lhyI6IjFzdF9wbGFjZV9tZWRhbCIsIvCfpYgiOiIybmRfcGxhY2VfbWVkYWwiLCLwn6WJIjoiM3JkX3BsYWNlX21lZGFsIiwi8J+OlyI6InJlbWluZGVyX3JpYmJvbiIsIvCfj7UiOiJyb3NldHRlIiwi8J+OqyI6InRpY2tldCIsIvCfjp8iOiJ0aWNrZXRzIiwi8J+OrSI6InBlcmZvcm1pbmdfYXJ0cyIsIvCfjqgiOiJhcnQiLCLwn46qIjoiY2lyY3VzX3RlbnQiLCLwn6S54oCN4pmA77iPIjoid29tYW5fanVnZ2xpbmciLCLwn6S58J+Pu+KAjeKZgO+4jyI6IndvbWFuX2p1Z2dsaW5nOnQyIiwi8J+kufCfj7zigI3imYDvuI8iOiJ3b21hbl9qdWdnbGluZzp0MyIsIvCfpLnwn4+94oCN4pmA77iPIjoid29tYW5fanVnZ2xpbmc6dDQiLCLwn6S58J+PvuKAjeKZgO+4jyI6IndvbWFuX2p1Z2dsaW5nOnQ1Iiwi8J+kufCfj7/igI3imYDvuI8iOiJ3b21hbl9qdWdnbGluZzp0NiIsIvCfpLnigI3imYLvuI8iOiJtYW5fanVnZ2xpbmciLCLwn6S58J+Pu+KAjeKZgu+4jyI6Im1hbl9qdWdnbGluZzp0MiIsIvCfpLnwn4+84oCN4pmC77iPIjoibWFuX2p1Z2dsaW5nOnQzIiwi8J+kufCfj73igI3imYLvuI8iOiJtYW5fanVnZ2xpbmc6dDQiLCLwn6S58J+PvuKAjeKZgu+4jyI6Im1hbl9qdWdnbGluZzp0NSIsIvCfpLnwn4+/4oCN4pmC77iPIjoibWFuX2p1Z2dsaW5nOnQ2Iiwi8J+OpCI6Im1pY3JvcGhvbmUiLCLwn46nIjoiaGVhZHBob25lcyIsIvCfjrwiOiJtdXNpY2FsX3Njb3JlIiwi8J+OuSI6Im11c2ljYWxfa2V5Ym9hcmQiLCLwn6WBIjoiZHJ1bSIsIvCfjrciOiJzYXhvcGhvbmUiLCLwn466IjoidHJ1bXBldCIsIvCfjrgiOiJndWl0YXIiLCLwn467IjoidmlvbGluIiwi8J+OrCI6ImNsYXBwZXIiLCLwn46uIjoidmlkZW9fZ2FtZSIsIvCfkb4iOiJzcGFjZV9pbnZhZGVyIiwi8J+OryI6ImRhcnQiLCLwn46yIjoiZ2FtZV9kaWUiLCLwn46wIjoic2xvdF9tYWNoaW5lIiwi8J+OsyI6ImJvd2xpbmciLCLwn5qXIjoicmVkX2NhciIsIvCfmpUiOiJ0YXhpIiwi8J+amSI6ImJsdWVfY2FyIiwi8J+ajCI6ImJ1cyIsIvCfmo4iOiJ0cm9sbGV5YnVzIiwi8J+PjiI6InJhY2luZ19jYXIiLCLwn5qTIjoicG9saWNlX2NhciIsIvCfmpEiOiJhbWJ1bGFuY2UiLCLwn5qSIjoiZmlyZV9lbmdpbmUiLCLwn5qQIjoibWluaWJ1cyIsIvCfmpoiOiJ0cnVjayIsIvCfmpsiOiJhcnRpY3VsYXRlZF9sb3JyeSIsIvCfmpwiOiJ0cmFjdG9yIiwi8J+btCI6ImtpY2tfc2Nvb3RlciIsIvCfj40iOiJtb3RvcmN5Y2xlIiwi8J+asiI6ImJpa2UiLCLwn5u1IjoibW90b3Jfc2Nvb3RlciIsIvCfmqgiOiJyb3RhdGluZ19saWdodCIsIvCfmpQiOiJvbmNvbWluZ19wb2xpY2VfY2FyIiwi8J+ajSI6Im9uY29taW5nX2J1cyIsIvCfmpgiOiJvbmNvbWluZ19hdXRvbW9iaWxlIiwi8J+aliI6Im9uY29taW5nX3RheGkiLCLwn5qhIjoiYWVyaWFsX3RyYW13YXkiLCLwn5qgIjoibW91bnRhaW5fY2FibGV3YXkiLCLwn5qfIjoic3VzcGVuc2lvbl9yYWlsd2F5Iiwi8J+agyI6InJhaWx3YXlfY2FyIiwi8J+aiyI6InRyYWluIiwi8J+anSI6Im1vbm9yYWlsIiwi8J+ahCI6ImJ1bGxldHRyYWluX3NpZGUiLCLwn5qFIjoiYnVsbGV0dHJhaW5fZnJvbnQiLCLwn5qIIjoibGlnaHRfcmFpbCIsIvCfmp4iOiJtb3VudGFpbl9yYWlsd2F5Iiwi8J+agiI6InN0ZWFtX2xvY29tb3RpdmUiLCLwn5qGIjoidHJhaW4yIiwi8J+ahyI6Im1ldHJvIiwi8J+aiiI6InRyYW0iLCLwn5qJIjoic3RhdGlvbiIsIvCfmoEiOiJoZWxpY29wdGVyIiwi8J+bqSI6InNtYWxsX2FpcnBsYW5lIiwi4pyIIjoiYWlycGxhbmUiLCLwn5urIjoiZmxpZ2h0X2RlcGFydHVyZSIsIvCfm6wiOiJmbGlnaHRfYXJyaXZhbCIsIuKbtSI6InNhaWxib2F0Iiwi8J+bpSI6Im1vdG9yX2JvYXQiLCLwn5qkIjoic3BlZWRib2F0Iiwi4pu0IjoiZmVycnkiLCLwn5uzIjoicGFzc2VuZ2VyX3NoaXAiLCLwn5qAIjoicm9ja2V0Iiwi8J+bsCI6ImFydGlmaWNpYWxfc2F0ZWxsaXRlIiwi8J+SuiI6InNlYXQiLCLwn5u2IjoiY2Fub2UiLCLimpMiOiJhbmNob3IiLCLwn5qnIjoiY29uc3RydWN0aW9uIiwi4pu9IjoiZnVlbHB1bXAiLCLwn5qPIjoiYnVzc3RvcCIsIvCfmqYiOiJ2ZXJ0aWNhbF90cmFmZmljX2xpZ2h0Iiwi8J+apSI6InRyYWZmaWNfbGlnaHQiLCLwn4+BIjoiY2hlY2tlcmVkX2ZsYWciLCLwn5qiIjoic2hpcCIsIvCfjqEiOiJmZXJyaXNfd2hlZWwiLCLwn46iIjoicm9sbGVyX2NvYXN0ZXIiLCLwn46gIjoiY2Fyb3VzZWxfaG9yc2UiLCLwn4+XIjoiYnVpbGRpbmdfY29uc3RydWN0aW9uIiwi8J+MgSI6ImZvZ2d5Iiwi8J+XvCI6InRva3lvX3Rvd2VyIiwi8J+PrSI6ImZhY3RvcnkiLCLim7IiOiJmb3VudGFpbiIsIvCfjpEiOiJyaWNlX3NjZW5lIiwi4puwIjoibW91bnRhaW4iLCLwn4+UIjoibW91bnRhaW5fc25vdyIsIvCfl7siOiJtb3VudF9mdWppIiwi8J+MiyI6InZvbGNhbm8iLCLwn5e+IjoiamFwYW4iLCLwn4+VIjoiY2FtcGluZyIsIuKbuiI6InRlbnQiLCLwn4+eIjoibmF0aW9uYWxfcGFyayIsIvCfm6MiOiJtb3RvcndheSIsIvCfm6QiOiJyYWlsd2F5X3RyYWNrIiwi8J+MhSI6InN1bnJpc2UiLCLwn4yEIjoic3VucmlzZV9vdmVyX21vdW50YWlucyIsIvCfj5wiOiJkZXNlcnQiLCLwn4+WIjoiYmVhY2hfdW1icmVsbGEiLCLwn4+dIjoiZGVzZXJ0X2lzbGFuZCIsIvCfjIciOiJjaXR5X3N1bnJpc2UiLCLwn4yGIjoiY2l0eV9zdW5zZXQiLCLwn4+ZIjoiY2l0eXNjYXBlIiwi8J+MgyI6Im5pZ2h0X3dpdGhfc3RhcnMiLCLwn4yJIjoiYnJpZGdlX2F0X25pZ2h0Iiwi8J+MjCI6Im1pbGt5X3dheSIsIvCfjKAiOiJzdGFycyIsIvCfjociOiJzcGFya2xlciIsIvCfjoYiOiJmaXJld29ya3MiLCLwn4yIIjoicmFpbmJvdyIsIvCfj5giOiJob3VzZXMiLCLwn4+wIjoiZXVyb3BlYW5fY2FzdGxlIiwi8J+PryI6ImphcGFuZXNlX2Nhc3RsZSIsIvCfj58iOiJzdGFkaXVtIiwi8J+XvSI6InN0YXR1ZV9vZl9saWJlcnR5Iiwi8J+PoCI6ImhvdXNlIiwi8J+PoSI6ImhvdXNlX3dpdGhfZ2FyZGVuIiwi8J+PmiI6ImRlcmVsaWN0X2hvdXNlIiwi8J+PoiI6Im9mZmljZSIsIvCfj6wiOiJkZXBhcnRtZW50X3N0b3JlIiwi8J+PoyI6InBvc3Rfb2ZmaWNlIiwi8J+PpCI6ImV1cm9wZWFuX3Bvc3Rfb2ZmaWNlIiwi8J+PpSI6Imhvc3BpdGFsIiwi8J+PpiI6ImJhbmsiLCLwn4+oIjoiaG90ZWwiLCLwn4+qIjoiY29udmVuaWVuY2Vfc3RvcmUiLCLwn4+rIjoic2Nob29sIiwi8J+PqSI6ImxvdmVfaG90ZWwiLCLwn5KSIjoid2VkZGluZyIsIvCfj5siOiJjbGFzc2ljYWxfYnVpbGRpbmciLCLim6oiOiJjaHVyY2giLCLwn5WMIjoibW9zcXVlIiwi8J+VjSI6InN5bmFnb2d1ZSIsIvCflYsiOiJrYWFiYSIsIuKbqSI6InNoaW50b19zaHJpbmUiLCLijJoiOiJ3YXRjaCIsIvCfk7EiOiJpcGhvbmUiLCLwn5OyIjoiY2FsbGluZyIsIvCfkrsiOiJjb21wdXRlciIsIuKMqCI6ImtleWJvYXJkIiwi8J+WpSI6ImRlc2t0b3BfY29tcHV0ZXIiLCLwn5aoIjoicHJpbnRlciIsIvCflrEiOiJjb21wdXRlcl9tb3VzZSIsIvCflrIiOiJ0cmFja2JhbGwiLCLwn5W5Ijoiam95c3RpY2siLCLwn5ecIjoiY2xhbXAiLCLwn5K9IjoibWluaWRpc2MiLCLwn5K+IjoiZmxvcHB5X2Rpc2siLCLwn5K/IjoiY2QiLCLwn5OAIjoiZHZkIiwi8J+TvCI6InZocyIsIvCfk7ciOiJjYW1lcmEiLCLwn5O4IjoiY2FtZXJhX2ZsYXNoIiwi8J+TuSI6InZpZGVvX2NhbWVyYSIsIvCfjqUiOiJtb3ZpZV9jYW1lcmEiLCLwn5O9IjoiZmlsbV9wcm9qZWN0b3IiLCLwn46eIjoiZmlsbV9zdHJpcCIsIvCfk54iOiJ0ZWxlcGhvbmVfcmVjZWl2ZXIiLCLimI4iOiJwaG9uZSIsIvCfk58iOiJwYWdlciIsIvCfk6AiOiJmYXgiLCLwn5O6IjoidHYiLCLwn5O7IjoicmFkaW8iLCLwn46ZIjoic3R1ZGlvX21pY3JvcGhvbmUiLCLwn46aIjoibGV2ZWxfc2xpZGVyIiwi8J+OmyI6ImNvbnRyb2xfa25vYnMiLCLij7EiOiJzdG9wd2F0Y2giLCLij7IiOiJ0aW1lcl9jbG9jayIsIuKPsCI6ImFsYXJtX2Nsb2NrIiwi8J+VsCI6Im1hbnRlbHBpZWNlX2Nsb2NrIiwi4o+zIjoiaG91cmdsYXNzX2Zsb3dpbmdfc2FuZCIsIuKMmyI6ImhvdXJnbGFzcyIsIvCfk6EiOiJzYXRlbGxpdGUiLCLwn5SLIjoiYmF0dGVyeSIsIvCflIwiOiJlbGVjdHJpY19wbHVnIiwi8J+SoSI6ImJ1bGIiLCLwn5SmIjoiZmxhc2hsaWdodCIsIvCfla8iOiJjYW5kbGUiLCLwn5eRIjoid2FzdGViYXNrZXQiLCLwn5uiIjoib2lsX2RydW0iLCLwn5K4IjoibW9uZXlfd2l0aF93aW5ncyIsIvCfkrUiOiJkb2xsYXIiLCLwn5K0IjoieWVuIiwi8J+StiI6ImV1cm8iLCLwn5K3IjoicG91bmQiLCLwn5KwIjoibW9uZXliYWciLCLwn5KzIjoiY3JlZGl0X2NhcmQiLCLwn5KOIjoiZ2VtIiwi4pqWIjoiYmFsYW5jZV9zY2FsZSIsIvCflKciOiJ3cmVuY2giLCLwn5SoIjoiaGFtbWVyIiwi4pqSIjoiaGFtbWVyX2FuZF9waWNrIiwi8J+boCI6ImhhbW1lcl9hbmRfd3JlbmNoIiwi4puPIjoicGljayIsIvCflKkiOiJudXRfYW5kX2JvbHQiLCLimpkiOiJnZWFyIiwi4puTIjoiY2hhaW5zIiwi8J+UqyI6Imd1biIsIvCfkqMiOiJib21iIiwi8J+UqiI6ImhvY2hvIiwi8J+XoSI6ImRhZ2dlciIsIuKalCI6ImNyb3NzZWRfc3dvcmRzIiwi8J+boSI6InNoaWVsZCIsIvCfmqwiOiJzbW9raW5nIiwi4pigIjoic2t1bGxfYW5kX2Nyb3NzYm9uZXMiLCLimrAiOiJjb2ZmaW4iLCLimrEiOiJmdW5lcmFsX3VybiIsIvCfj7oiOiJhbXBob3JhIiwi8J+UriI6ImNyeXN0YWxfYmFsbCIsIvCfk78iOiJwcmF5ZXJfYmVhZHMiLCLwn5KIIjoiYmFyYmVyIiwi4pqXIjoiYWxlbWJpYyIsIvCflK0iOiJ0ZWxlc2NvcGUiLCLwn5SsIjoibWljcm9zY29wZSIsIvCflbMiOiJob2xlIiwi8J+SiiI6InBpbGwiLCLwn5KJIjoic3lyaW5nZSIsIvCfjKEiOiJ0aGVybW9tZXRlciIsIvCfj7ciOiJsYWJlbCIsIvCflJYiOiJib29rbWFyayIsIvCfmr0iOiJ0b2lsZXQiLCLwn5q/Ijoic2hvd2VyIiwi8J+bgSI6ImJhdGh0dWIiLCLwn5SRIjoia2V5Iiwi8J+XnSI6Im9sZF9rZXkiLCLwn5uLIjoiY291Y2hfYW5kX2xhbXAiLCLwn5uMIjoic2xlZXBpbmdfYmVkIiwi8J+bjPCfj7siOiJzbGVlcGluZ19iZWQ6dDIiLCLwn5uM8J+PvCI6InNsZWVwaW5nX2JlZDp0MyIsIvCfm4zwn4+9Ijoic2xlZXBpbmdfYmVkOnQ0Iiwi8J+bjPCfj74iOiJzbGVlcGluZ19iZWQ6dDUiLCLwn5uM8J+PvyI6InNsZWVwaW5nX2JlZDp0NiIsIvCfm48iOiJiZWQiLCLwn5qqIjoiZG9vciIsIvCfm44iOiJiZWxsaG9wX2JlbGwiLCLwn5a8IjoiZnJhbWVkX3BpY3R1cmUiLCLwn5e6Ijoid29ybGRfbWFwIiwi4puxIjoicGFyYXNvbF9vbl9ncm91bmQiLCLwn5e/IjoibW95YWkiLCLwn5uNIjoic2hvcHBpbmciLCLwn5uSIjoic2hvcHBpbmdfY2FydCIsIvCfjogiOiJiYWxsb29uIiwi8J+OjyI6ImZsYWdzIiwi8J+OgCI6InJpYmJvbiIsIvCfjoEiOiJnaWZ0Iiwi8J+OiiI6ImNvbmZldHRpX2JhbGwiLCLwn46JIjoidGFkYSIsIvCfjo4iOiJkb2xscyIsIvCfjpAiOiJ3aW5kX2NoaW1lIiwi8J+OjCI6ImNyb3NzZWRfZmxhZ3MiLCLwn4+uIjoiaXpha2F5YV9sYW50ZXJuIiwi4pyJIjoiZW1haWwiLCLwn5OpIjoiZW52ZWxvcGVfd2l0aF9hcnJvdyIsIvCfk6giOiJpbmNvbWluZ19lbnZlbG9wZSIsIvCfk6ciOiJlLW1haWwiLCLwn5KMIjoibG92ZV9sZXR0ZXIiLCLwn5OuIjoicG9zdGJveCIsIvCfk6oiOiJtYWlsYm94X2Nsb3NlZCIsIvCfk6siOiJtYWlsYm94Iiwi8J+TrCI6Im1haWxib3hfd2l0aF9tYWlsIiwi8J+TrSI6Im1haWxib3hfd2l0aF9ub19tYWlsIiwi8J+TpiI6InBhY2thZ2UiLCLwn5OvIjoicG9zdGFsX2hvcm4iLCLwn5OlIjoiaW5ib3hfdHJheSIsIvCfk6QiOiJvdXRib3hfdHJheSIsIvCfk5wiOiJzY3JvbGwiLCLwn5ODIjoicGFnZV93aXRoX2N1cmwiLCLwn5ORIjoiYm9va21hcmtfdGFicyIsIvCfk4oiOiJiYXJfY2hhcnQiLCLwn5OIIjoiY2hhcnRfd2l0aF91cHdhcmRzX3RyZW5kIiwi8J+TiSI6ImNoYXJ0X3dpdGhfZG93bndhcmRzX3RyZW5kIiwi8J+ThCI6InBhZ2VfZmFjaW5nX3VwIiwi8J+ThSI6ImRhdGUiLCLwn5OGIjoiY2FsZW5kYXIiLCLwn5eTIjoic3BpcmFsX2NhbGVuZGFyIiwi8J+ThyI6ImNhcmRfaW5kZXgiLCLwn5eDIjoiY2FyZF9maWxlX2JveCIsIvCfl7MiOiJiYWxsb3RfYm94Iiwi8J+XhCI6ImZpbGVfY2FiaW5ldCIsIvCfk4siOiJjbGlwYm9hcmQiLCLwn5eSIjoic3BpcmFsX25vdGVwYWQiLCLwn5OBIjoiZmlsZV9mb2xkZXIiLCLwn5OCIjoib3Blbl9maWxlX2ZvbGRlciIsIvCfl4IiOiJjYXJkX2luZGV4X2RpdmlkZXJzIiwi8J+XniI6Im5ld3NwYXBlcl9yb2xsIiwi8J+TsCI6Im5ld3NwYXBlciIsIvCfk5MiOiJub3RlYm9vayIsIvCfk5UiOiJjbG9zZWRfYm9vayIsIvCfk5ciOiJncmVlbl9ib29rIiwi8J+TmCI6ImJsdWVfYm9vayIsIvCfk5kiOiJvcmFuZ2VfYm9vayIsIvCfk5QiOiJub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXIiLCLwn5OSIjoibGVkZ2VyIiwi8J+TmiI6ImJvb2tzIiwi8J+TliI6Im9wZW5fYm9vayIsIvCflJciOiJsaW5rIiwi8J+TjiI6InBhcGVyY2xpcCIsIvCflociOiJwYXBlcmNsaXBzIiwi4pyCIjoic2Npc3NvcnMiLCLwn5OQIjoidHJpYW5ndWxhcl9ydWxlciIsIvCfk48iOiJzdHJhaWdodF9ydWxlciIsIvCfk4wiOiJwdXNocGluIiwi8J+TjSI6InJvdW5kX3B1c2hwaW4iLCLwn5qpIjoidHJpYW5ndWxhcl9mbGFnX29uX3Bvc3QiLCLwn4+zIjoid2hpdGVfZmxhZyIsIvCfj7QiOiJibGFja19mbGFnIiwi8J+Ps++4j+KAjfCfjIgiOiJyYWluYm93X2ZsYWciLCLwn5SQIjoiY2xvc2VkX2xvY2tfd2l0aF9rZXkiLCLwn5SSIjoibG9jayIsIvCflJMiOiJ1bmxvY2siLCLwn5SPIjoibG9ja193aXRoX2lua19wZW4iLCLwn5aKIjoicGVuIiwi8J+WiyI6ImZvdW50YWluX3BlbiIsIuKckiI6ImJsYWNrX25pYiIsIvCfk50iOiJtZW1vIiwi4pyPIjoicGVuY2lsMiIsIvCflo0iOiJjcmF5b24iLCLwn5aMIjoicGFpbnRicnVzaCIsIvCflI0iOiJtYWciLCLwn5SOIjoibWFnX3JpZ2h0Iiwi4p2kIjoiaGVhcnQiLCLwn5KbIjoieWVsbG93X2hlYXJ0Iiwi8J+SmiI6ImdyZWVuX2hlYXJ0Iiwi8J+SmSI6ImJsdWVfaGVhcnQiLCLwn5KcIjoicHVycGxlX2hlYXJ0Iiwi8J+WpCI6ImJsYWNrX2hlYXJ0Iiwi8J+SlCI6ImJyb2tlbl9oZWFydCIsIuKdoyI6ImhlYXZ5X2hlYXJ0X2V4Y2xhbWF0aW9uIiwi8J+SlSI6InR3b19oZWFydHMiLCLwn5KeIjoicmV2b2x2aW5nX2hlYXJ0cyIsIvCfkpMiOiJoZWFydGJlYXQiLCLwn5KXIjoiaGVhcnRwdWxzZSIsIvCfkpYiOiJzcGFya2xpbmdfaGVhcnQiLCLwn5KYIjoiY3VwaWQiLCLwn5KdIjoiZ2lmdF9oZWFydCIsIvCfkp8iOiJoZWFydF9kZWNvcmF0aW9uIiwi4piuIjoicGVhY2Vfc3ltYm9sIiwi4pydIjoibGF0aW5fY3Jvc3MiLCLimKoiOiJzdGFyX2FuZF9jcmVzY2VudCIsIvCflYkiOiJvbSIsIuKYuCI6IndoZWVsX29mX2RoYXJtYSIsIuKcoSI6InN0YXJfb2ZfZGF2aWQiLCLwn5SvIjoic2l4X3BvaW50ZWRfc3RhciIsIvCflY4iOiJtZW5vcmFoIiwi4pivIjoieWluX3lhbmciLCLimKYiOiJvcnRob2RveF9jcm9zcyIsIvCfm5AiOiJwbGFjZV9vZl93b3JzaGlwIiwi4puOIjoib3BoaXVjaHVzIiwi4pmIIjoiYXJpZXMiLCLimYkiOiJ0YXVydXMiLCLimYoiOiJnZW1pbmkiLCLimYsiOiJjYW5jZXIiLCLimYwiOiJsZW8iLCLimY0iOiJ2aXJnbyIsIuKZjiI6ImxpYnJhIiwi4pmPIjoic2NvcnBpdXMiLCLimZAiOiJzYWdpdHRhcml1cyIsIuKZkSI6ImNhcHJpY29ybiIsIuKZkiI6ImFxdWFyaXVzIiwi4pmTIjoicGlzY2VzIiwi8J+GlCI6ImlkIiwi4pqbIjoiYXRvbV9zeW1ib2wiLCLwn4izIjoidTdhN2EiLCLwn4i5IjoidTUyNzIiLCLimKIiOiJyYWRpb2FjdGl2ZSIsIuKYoyI6ImJpb2hhemFyZCIsIvCfk7QiOiJtb2JpbGVfcGhvbmVfb2ZmIiwi8J+TsyI6InZpYnJhdGlvbl9tb2RlIiwi8J+ItiI6InU2NzA5Iiwi8J+ImiI6InU3MTIxIiwi8J+IuCI6InU3NTMzIiwi8J+IuiI6InU1NWI2Iiwi8J+ItyI6InU2NzA4Iiwi4py0IjoiZWlnaHRfcG9pbnRlZF9ibGFja19zdGFyIiwi8J+GmiI6InZzIiwi8J+JkSI6ImFjY2VwdCIsIvCfkq4iOiJ3aGl0ZV9mbG93ZXIiLCLwn4mQIjoiaWRlb2dyYXBoX2FkdmFudGFnZSIsIuOKmSI6InNlY3JldCIsIuOKlyI6ImNvbmdyYXR1bGF0aW9ucyIsIvCfiLQiOiJ1NTQwOCIsIvCfiLUiOiJ1NmU4MCIsIvCfiLIiOiJ1Nzk4MSIsIvCfhbAiOiJhIiwi8J+FsSI6ImIiLCLwn4aOIjoiYWIiLCLwn4aRIjoiY2wiLCLwn4W+IjoibzIiLCLwn4aYIjoic29zIiwi4puUIjoibm9fZW50cnkiLCLwn5ObIjoibmFtZV9iYWRnZSIsIvCfmqsiOiJub19lbnRyeV9zaWduIiwi4p2MIjoieCIsIuKtlSI6Im8iLCLwn5uRIjoic3RvcF9zaWduIiwi8J+SoiI6ImFuZ2VyIiwi4pmoIjoiaG90c3ByaW5ncyIsIvCfmrciOiJub19wZWRlc3RyaWFucyIsIvCfmq8iOiJkb19ub3RfbGl0dGVyIiwi8J+asyI6Im5vX2JpY3ljbGVzIiwi8J+asSI6Im5vbi1wb3RhYmxlX3dhdGVyIiwi8J+UniI6InVuZGVyYWdlIiwi8J+TtSI6Im5vX21vYmlsZV9waG9uZXMiLCLinZciOiJleGNsYW1hdGlvbiIsIuKdlSI6ImdyZXlfZXhjbGFtYXRpb24iLCLinZMiOiJxdWVzdGlvbiIsIuKdlCI6ImdyZXlfcXVlc3Rpb24iLCLigLwiOiJiYW5nYmFuZyIsIuKBiSI6ImludGVycm9iYW5nIiwi8J+SryI6IjEwMCIsIvCflIUiOiJsb3dfYnJpZ2h0bmVzcyIsIvCflIYiOiJoaWdoX2JyaWdodG5lc3MiLCLwn5SxIjoidHJpZGVudCIsIuKanCI6ImZsZXVyX2RlX2xpcyIsIuOAvSI6InBhcnRfYWx0ZXJuYXRpb25fbWFyayIsIuKaoCI6Indhcm5pbmciLCLwn5q4IjoiY2hpbGRyZW5fY3Jvc3NpbmciLCLwn5SwIjoiYmVnaW5uZXIiLCLimbsiOiJyZWN5Y2xlIiwi8J+IryI6InU2MzA3Iiwi8J+SuSI6ImNoYXJ0Iiwi4p2HIjoic3BhcmtsZSIsIuKcsyI6ImVpZ2h0X3Nwb2tlZF9hc3RlcmlzayIsIuKdjiI6Im5lZ2F0aXZlX3NxdWFyZWRfY3Jvc3NfbWFyayIsIuKchSI6IndoaXRlX2NoZWNrX21hcmsiLCLwn5KgIjoiZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSIsIvCfjIAiOiJjeWNsb25lIiwi4p6/IjoibG9vcCIsIvCfjJAiOiJnbG9iZV93aXRoX21lcmlkaWFucyIsIuKTgiI6Im0iLCLwn4+nIjoiYXRtIiwi8J+IgiI6InNhIiwi8J+bgiI6InBhc3Nwb3J0X2NvbnRyb2wiLCLwn5uDIjoiY3VzdG9tcyIsIvCfm4QiOiJiYWdnYWdlX2NsYWltIiwi8J+bhSI6ImxlZnRfbHVnZ2FnZSIsIuKZvyI6IndoZWVsY2hhaXIiLCLwn5qtIjoibm9fc21va2luZyIsIvCfmr4iOiJ3YyIsIvCfhb8iOiJwYXJraW5nIiwi8J+asCI6InBvdGFibGVfd2F0ZXIiLCLwn5q5IjoibWVucyIsIvCfmroiOiJ3b21lbnMiLCLwn5q8IjoiYmFieV9zeW1ib2wiLCLwn5q7IjoicmVzdHJvb20iLCLwn5quIjoicHV0X2xpdHRlcl9pbl9pdHNfcGxhY2UiLCLwn46mIjoiY2luZW1hIiwi8J+TtiI6InNpZ25hbF9zdHJlbmd0aCIsIvCfiIEiOiJrb2tvIiwi8J+GliI6Im5nIiwi8J+GlyI6Im9rIiwi8J+GmSI6InVwIiwi8J+GkiI6ImNvb2wiLCLwn4aVIjoibmV3Iiwi8J+GkyI6ImZyZWUiLCIw77iP4oOjIjoiemVybyIsIjHvuI/ig6MiOiJvbmUiLCIy77iP4oOjIjoidHdvIiwiM++4j+KDoyI6InRocmVlIiwiNO+4j+KDoyI6ImZvdXIiLCI177iP4oOjIjoiZml2ZSIsIjbvuI/ig6MiOiJzaXgiLCI377iP4oOjIjoic2V2ZW4iLCI477iP4oOjIjoiZWlnaHQiLCI577iP4oOjIjoibmluZSIsIvCflJ8iOiJrZXljYXBfdGVuIiwiKu+4j+KDoyI6ImFzdGVyaXNrIiwi8J+UoiI6IjEyMzQiLCLilrYiOiJhcnJvd19mb3J3YXJkIiwi4o+4IjoicGF1c2VfYnV0dG9uIiwi4o+tIjoibmV4dF90cmFja19idXR0b24iLCLij7kiOiJzdG9wX2J1dHRvbiIsIuKPuiI6InJlY29yZF9idXR0b24iLCLij68iOiJwbGF5X29yX3BhdXNlX2J1dHRvbiIsIuKPriI6InByZXZpb3VzX3RyYWNrX2J1dHRvbiIsIuKPqSI6ImZhc3RfZm9yd2FyZCIsIuKPqiI6InJld2luZCIsIvCflIAiOiJ0d2lzdGVkX3JpZ2h0d2FyZHNfYXJyb3dzIiwi8J+UgSI6InJlcGVhdCIsIvCflIIiOiJyZXBlYXRfb25lIiwi4peAIjoiYXJyb3dfYmFja3dhcmQiLCLwn5S8IjoiYXJyb3dfdXBfc21hbGwiLCLwn5S9IjoiYXJyb3dfZG93bl9zbWFsbCIsIuKPqyI6ImFycm93X2RvdWJsZV91cCIsIuKPrCI6ImFycm93X2RvdWJsZV9kb3duIiwi4p6hIjoiYXJyb3dfcmlnaHQiLCLirIUiOiJhcnJvd19sZWZ0Iiwi4qyGIjoiYXJyb3dfdXAiLCLirIciOiJhcnJvd19kb3duIiwi4oaXIjoiYXJyb3dfdXBwZXJfcmlnaHQiLCLihpgiOiJhcnJvd19sb3dlcl9yaWdodCIsIuKGmSI6ImFycm93X2xvd2VyX2xlZnQiLCLihpYiOiJhcnJvd191cHBlcl9sZWZ0Iiwi4oaVIjoiYXJyb3dfdXBfZG93biIsIvCflIQiOiJhcnJvd3NfY291bnRlcmNsb2Nrd2lzZSIsIuKGqiI6ImFycm93X3JpZ2h0X2hvb2siLCLihqkiOiJsZWZ0d2FyZHNfYXJyb3dfd2l0aF9ob29rIiwi4qS0IjoiYXJyb3dfaGVhZGluZ191cCIsIuKktSI6ImFycm93X2hlYWRpbmdfZG93biIsIiPvuI/ig6MiOiJoYXNoIiwi4oS5IjoiaW5mb3JtYXRpb25fc291cmNlIiwi8J+UpCI6ImFiYyIsIvCflKEiOiJhYmNkIiwi8J+UoCI6ImNhcGl0YWxfYWJjZCIsIvCflKMiOiJzeW1ib2xzIiwi8J+OtSI6Im11c2ljYWxfbm90ZSIsIvCfjrYiOiJub3RlcyIsIuOAsCI6IndhdnlfZGFzaCIsIuKesCI6ImN1cmx5X2xvb3AiLCLinJQiOiJoZWF2eV9jaGVja19tYXJrIiwi8J+UgyI6ImFycm93c19jbG9ja3dpc2UiLCLinpUiOiJoZWF2eV9wbHVzX3NpZ24iLCLinpYiOiJoZWF2eV9taW51c19zaWduIiwi4p6XIjoiaGVhdnlfZGl2aXNpb25fc2lnbiIsIuKcliI6ImhlYXZ5X211bHRpcGxpY2F0aW9uX3giLCLwn5KyIjoiaGVhdnlfZG9sbGFyX3NpZ24iLCLwn5KxIjoiY3VycmVuY3lfZXhjaGFuZ2UiLCLwn5SaIjoiZW5kIiwi8J+UmSI6ImJhY2siLCLwn5SbIjoib24iLCLwn5SdIjoidG9wIiwi8J+UnCI6InNvb24iLCLimJEiOiJiYWxsb3RfYm94X3dpdGhfY2hlY2siLCLwn5SYIjoicmFkaW9fYnV0dG9uIiwi4pqqIjoid2hpdGVfY2lyY2xlIiwi4pqrIjoiYmxhY2tfY2lyY2xlIiwi8J+UtCI6InJlZF9jaXJjbGUiLCLwn5S1IjoibGFyZ2VfYmx1ZV9jaXJjbGUiLCLwn5S4Ijoic21hbGxfb3JhbmdlX2RpYW1vbmQiLCLwn5S5Ijoic21hbGxfYmx1ZV9kaWFtb25kIiwi8J+UtiI6ImxhcmdlX29yYW5nZV9kaWFtb25kIiwi8J+UtyI6ImxhcmdlX2JsdWVfZGlhbW9uZCIsIvCflLoiOiJzbWFsbF9yZWRfdHJpYW5nbGUiLCLilqoiOiJibGFja19zbWFsbF9zcXVhcmUiLCLilqsiOiJ3aGl0ZV9zbWFsbF9zcXVhcmUiLCLirJsiOiJibGFja19sYXJnZV9zcXVhcmUiLCLirJwiOiJ3aGl0ZV9sYXJnZV9zcXVhcmUiLCLwn5S7Ijoic21hbGxfcmVkX3RyaWFuZ2xlX2Rvd24iLCLil7wiOiJibGFja19tZWRpdW1fc3F1YXJlIiwi4pe7Ijoid2hpdGVfbWVkaXVtX3NxdWFyZSIsIuKXviI6ImJsYWNrX21lZGl1bV9zbWFsbF9zcXVhcmUiLCLil70iOiJ3aGl0ZV9tZWRpdW1fc21hbGxfc3F1YXJlIiwi8J+UsiI6ImJsYWNrX3NxdWFyZV9idXR0b24iLCLwn5SzIjoid2hpdGVfc3F1YXJlX2J1dHRvbiIsIvCflIgiOiJzcGVha2VyIiwi8J+UiSI6InNvdW5kIiwi8J+UiiI6ImxvdWRfc291bmQiLCLwn5SHIjoibXV0ZSIsIvCfk6MiOiJtZWdhIiwi8J+ToiI6ImxvdWRzcGVha2VyIiwi8J+UlCI6ImJlbGwiLCLwn5SVIjoibm9fYmVsbCIsIvCfg48iOiJibGFja19qb2tlciIsIvCfgIQiOiJtYWhqb25nIiwi4pmgIjoic3BhZGVzIiwi4pmjIjoiY2x1YnMiLCLimaUiOiJoZWFydCIsIuKZpiI6ImRpYW1vbmRzIiwi8J+OtCI6ImZsb3dlcl9wbGF5aW5nX2NhcmRzIiwi8J+SrSI6InRob3VnaHRfYmFsbG9vbiIsIvCfl68iOiJyaWdodF9hbmdlcl9idWJibGUiLCLwn5KsIjoic3BlZWNoX2JhbGxvb24iLCLwn5eoIjoibGVmdF9zcGVlY2hfYnViYmxlIiwi8J+VkCI6ImNsb2NrMSIsIvCflZEiOiJjbG9jazIiLCLwn5WSIjoiY2xvY2szIiwi8J+VkyI6ImNsb2NrNCIsIvCflZQiOiJjbG9jazUiLCLwn5WVIjoiY2xvY2s2Iiwi8J+VliI6ImNsb2NrNyIsIvCflZciOiJjbG9jazgiLCLwn5WYIjoiY2xvY2s5Iiwi8J+VmSI6ImNsb2NrMTAiLCLwn5WaIjoiY2xvY2sxMSIsIvCflZsiOiJjbG9jazEyIiwi8J+VnCI6ImNsb2NrMTMwIiwi8J+VnSI6ImNsb2NrMjMwIiwi8J+VniI6ImNsb2NrMzMwIiwi8J+VnyI6ImNsb2NrNDMwIiwi8J+VoCI6ImNsb2NrNTMwIiwi8J+VoSI6ImNsb2NrNjMwIiwi8J+VoiI6ImNsb2NrNzMwIiwi8J+VoyI6ImNsb2NrODMwIiwi8J+VpCI6ImNsb2NrOTMwIiwi8J+VpSI6ImNsb2NrMTAzMCIsIvCflaYiOiJjbG9jazExMzAiLCLwn5WnIjoiY2xvY2sxMjMwIiwi8J+HpvCfh6siOiJhZmdoYW5pc3RhbiIsIvCfh6bwn4e9IjoiYWxhbmRfaXNsYW5kcyIsIvCfh6bwn4exIjoiYWxiYW5pYSIsIvCfh6nwn4e/IjoiYWxnZXJpYSIsIvCfh6bwn4e4IjoiYW1lcmljYW5fc2Ftb2EiLCLwn4em8J+HqSI6ImFuZG9ycmEiLCLwn4em8J+HtCI6ImFuZ29sYSIsIvCfh6bwn4euIjoiYW5ndWlsbGEiLCLwn4em8J+HtiI6ImFudGFyY3RpY2EiLCLwn4em8J+HrCI6ImFudGlndWFfYmFyYnVkYSIsIvCfh6bwn4e3IjoiYXJnZW50aW5hIiwi8J+HpvCfh7IiOiJhcm1lbmlhIiwi8J+HpvCfh7wiOiJhcnViYSIsIvCfh6bwn4e6IjoiYXVzdHJhbGlhIiwi8J+HpvCfh7kiOiJhdXN0cmlhIiwi8J+HpvCfh78iOiJhemVyYmFpamFuIiwi8J+Hp/Cfh7giOiJiYWhhbWFzIiwi8J+Hp/Cfh60iOiJiYWhyYWluIiwi8J+Hp/Cfh6kiOiJiYW5nbGFkZXNoIiwi8J+Hp/Cfh6ciOiJiYXJiYWRvcyIsIvCfh6fwn4e+IjoiYmVsYXJ1cyIsIvCfh6fwn4eqIjoiYmVsZ2l1bSIsIvCfh6fwn4e/IjoiYmVsaXplIiwi8J+Hp/Cfh68iOiJiZW5pbiIsIvCfh6fwn4eyIjoiYmVybXVkYSIsIvCfh6fwn4e5IjoiYmh1dGFuIiwi8J+Hp/Cfh7QiOiJib2xpdmlhIiwi8J+Hp/Cfh7YiOiJjYXJpYmJlYW5fbmV0aGVybGFuZHMiLCLwn4en8J+HpiI6ImJvc25pYV9oZXJ6ZWdvdmluYSIsIvCfh6fwn4e8IjoiYm90c3dhbmEiLCLwn4en8J+HtyI6ImJyYXppbCIsIvCfh67wn4e0IjoiYnJpdGlzaF9pbmRpYW5fb2NlYW5fdGVycml0b3J5Iiwi8J+Hu/Cfh6wiOiJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIiwi8J+Hp/Cfh7MiOiJicnVuZWkiLCLwn4en8J+HrCI6ImJ1bGdhcmlhIiwi8J+Hp/Cfh6siOiJidXJraW5hX2Zhc28iLCLwn4en8J+HriI6ImJ1cnVuZGkiLCLwn4eo8J+HuyI6ImNhcGVfdmVyZGUiLCLwn4ew8J+HrSI6ImNhbWJvZGlhIiwi8J+HqPCfh7IiOiJjYW1lcm9vbiIsIvCfh6jwn4emIjoiY2FuYWRhIiwi8J+HrvCfh6giOiJjYW5hcnlfaXNsYW5kcyIsIvCfh7Dwn4e+IjoiY2F5bWFuX2lzbGFuZHMiLCLwn4eo8J+HqyI6ImNlbnRyYWxfYWZyaWNhbl9yZXB1YmxpYyIsIvCfh7nwn4epIjoiY2hhZCIsIvCfh6jwn4exIjoiY2hpbGUiLCLwn4eo8J+HsyI6ImNuIiwi8J+HqPCfh70iOiJjaHJpc3RtYXNfaXNsYW5kIiwi8J+HqPCfh6giOiJjb2Nvc19pc2xhbmRzIiwi8J+HqPCfh7QiOiJjb2xvbWJpYSIsIvCfh7Dwn4eyIjoiY29tb3JvcyIsIvCfh6jwn4esIjoiY29uZ29fYnJhenphdmlsbGUiLCLwn4eo8J+HqSI6ImNvbmdvX2tpbnNoYXNhIiwi8J+HqPCfh7AiOiJjb29rX2lzbGFuZHMiLCLwn4eo8J+HtyI6ImNvc3RhX3JpY2EiLCLwn4et8J+HtyI6ImNyb2F0aWEiLCLwn4eo8J+HuiI6ImN1YmEiLCLwn4eo8J+HvCI6ImN1cmFjYW8iLCLwn4eo8J+HviI6ImN5cHJ1cyIsIvCfh6jwn4e/IjoiY3plY2hfcmVwdWJsaWMiLCLwn4ep8J+HsCI6ImRlbm1hcmsiLCLwn4ep8J+HryI6ImRqaWJvdXRpIiwi8J+HqfCfh7IiOiJkb21pbmljYSIsIvCfh6nwn4e0IjoiZG9taW5pY2FuX3JlcHVibGljIiwi8J+HqvCfh6giOiJlY3VhZG9yIiwi8J+HqvCfh6wiOiJlZ3lwdCIsIvCfh7jwn4e7IjoiZWxfc2FsdmFkb3IiLCLwn4es8J+HtiI6ImVxdWF0b3JpYWxfZ3VpbmVhIiwi8J+HqvCfh7ciOiJlcml0cmVhIiwi8J+HqvCfh6oiOiJlc3RvbmlhIiwi8J+HqvCfh7kiOiJldGhpb3BpYSIsIvCfh6rwn4e6IjoiZXUiLCLwn4er8J+HsCI6ImZhbGtsYW5kX2lzbGFuZHMiLCLwn4er8J+HtCI6ImZhcm9lX2lzbGFuZHMiLCLwn4er8J+HryI6ImZpamkiLCLwn4er8J+HriI6ImZpbmxhbmQiLCLwn4er8J+HtyI6ImZyIiwi8J+HrPCfh6siOiJmcmVuY2hfZ3VpYW5hIiwi8J+HtfCfh6siOiJmcmVuY2hfcG9seW5lc2lhIiwi8J+HufCfh6siOiJmcmVuY2hfc291dGhlcm5fdGVycml0b3JpZXMiLCLwn4es8J+HpiI6ImdhYm9uIiwi8J+HrPCfh7IiOiJnYW1iaWEiLCLwn4es8J+HqiI6Imdlb3JnaWEiLCLwn4ep8J+HqiI6ImRlIiwi8J+HrPCfh60iOiJnaGFuYSIsIvCfh6zwn4euIjoiZ2licmFsdGFyIiwi8J+HrPCfh7ciOiJncmVlY2UiLCLwn4es8J+HsSI6ImdyZWVubGFuZCIsIvCfh6zwn4epIjoiZ3JlbmFkYSIsIvCfh6zwn4e1IjoiZ3VhZGVsb3VwZSIsIvCfh6zwn4e6IjoiZ3VhbSIsIvCfh6zwn4e5IjoiZ3VhdGVtYWxhIiwi8J+HrPCfh6wiOiJndWVybnNleSIsIvCfh6zwn4ezIjoiZ3VpbmVhIiwi8J+HrPCfh7wiOiJndWluZWFfYmlzc2F1Iiwi8J+HrPCfh74iOiJndXlhbmEiLCLwn4et8J+HuSI6ImhhaXRpIiwi8J+HrfCfh7MiOiJob25kdXJhcyIsIvCfh63wn4ewIjoiaG9uZ19rb25nIiwi8J+HrfCfh7oiOiJodW5nYXJ5Iiwi8J+HrvCfh7giOiJpY2VsYW5kIiwi8J+HrvCfh7MiOiJpbmRpYSIsIvCfh67wn4epIjoiaW5kb25lc2lhIiwi8J+HrvCfh7ciOiJpcmFuIiwi8J+HrvCfh7YiOiJpcmFxIiwi8J+HrvCfh6oiOiJpcmVsYW5kIiwi8J+HrvCfh7IiOiJpc2xlX29mX21hbiIsIvCfh67wn4exIjoiaXNyYWVsIiwi8J+HrvCfh7kiOiJpdCIsIvCfh6jwn4euIjoiY290ZV9kaXZvaXJlIiwi8J+Hr/Cfh7IiOiJqYW1haWNhIiwi8J+Hr/Cfh7UiOiJqcCIsIvCfh6/wn4eqIjoiamVyc2V5Iiwi8J+Hr/Cfh7QiOiJqb3JkYW4iLCLwn4ew8J+HvyI6ImthemFraHN0YW4iLCLwn4ew8J+HqiI6ImtlbnlhIiwi8J+HsPCfh64iOiJraXJpYmF0aSIsIvCfh73wn4ewIjoia29zb3ZvIiwi8J+HsPCfh7wiOiJrdXdhaXQiLCLwn4ew8J+HrCI6Imt5cmd5enN0YW4iLCLwn4ex8J+HpiI6Imxhb3MiLCLwn4ex8J+HuyI6ImxhdHZpYSIsIvCfh7Hwn4enIjoibGViYW5vbiIsIvCfh7Hwn4e4IjoibGVzb3RobyIsIvCfh7Hwn4e3IjoibGliZXJpYSIsIvCfh7Hwn4e+IjoibGlieWEiLCLwn4ex8J+HriI6ImxpZWNodGVuc3RlaW4iLCLwn4ex8J+HuSI6ImxpdGh1YW5pYSIsIvCfh7Hwn4e6IjoibHV4ZW1ib3VyZyIsIvCfh7Lwn4e0IjoibWFjYXUiLCLwn4ey8J+HsCI6Im1hY2Vkb25pYSIsIvCfh7Lwn4esIjoibWFkYWdhc2NhciIsIvCfh7Lwn4e8IjoibWFsYXdpIiwi8J+HsvCfh74iOiJtYWxheXNpYSIsIvCfh7Lwn4e7IjoibWFsZGl2ZXMiLCLwn4ey8J+HsSI6Im1hbGkiLCLwn4ey8J+HuSI6Im1hbHRhIiwi8J+HsvCfh60iOiJtYXJzaGFsbF9pc2xhbmRzIiwi8J+HsvCfh7YiOiJtYXJ0aW5pcXVlIiwi8J+HsvCfh7ciOiJtYXVyaXRhbmlhIiwi8J+HsvCfh7oiOiJtYXVyaXRpdXMiLCLwn4e+8J+HuSI6Im1heW90dGUiLCLwn4ey8J+HvSI6Im1leGljbyIsIvCfh6vwn4eyIjoibWljcm9uZXNpYSIsIvCfh7Lwn4epIjoibW9sZG92YSIsIvCfh7Lwn4eoIjoibW9uYWNvIiwi8J+HsvCfh7MiOiJtb25nb2xpYSIsIvCfh7Lwn4eqIjoibW9udGVuZWdybyIsIvCfh7Lwn4e4IjoibW9udHNlcnJhdCIsIvCfh7Lwn4emIjoibW9yb2NjbyIsIvCfh7Lwn4e/IjoibW96YW1iaXF1ZSIsIvCfh7Lwn4eyIjoibXlhbm1hciIsIvCfh7Pwn4emIjoibmFtaWJpYSIsIvCfh7Pwn4e3IjoibmF1cnUiLCLwn4ez8J+HtSI6Im5lcGFsIiwi8J+Hs/Cfh7EiOiJuZXRoZXJsYW5kcyIsIvCfh7Pwn4eoIjoibmV3X2NhbGVkb25pYSIsIvCfh7Pwn4e/IjoibmV3X3plYWxhbmQiLCLwn4ez8J+HriI6Im5pY2FyYWd1YSIsIvCfh7Pwn4eqIjoibmlnZXIiLCLwn4ez8J+HrCI6Im5pZ2VyaWEiLCLwn4ez8J+HuiI6Im5pdWUiLCLwn4ez8J+HqyI6Im5vcmZvbGtfaXNsYW5kIiwi8J+HsvCfh7UiOiJub3J0aGVybl9tYXJpYW5hX2lzbGFuZHMiLCLwn4ew8J+HtSI6Im5vcnRoX2tvcmVhIiwi8J+Hs/Cfh7QiOiJub3J3YXkiLCLwn4e08J+HsiI6Im9tYW4iLCLwn4e18J+HsCI6InBha2lzdGFuIiwi8J+HtfCfh7wiOiJwYWxhdSIsIvCfh7Xwn4e4IjoicGFsZXN0aW5pYW5fdGVycml0b3JpZXMiLCLwn4e18J+HpiI6InBhbmFtYSIsIvCfh7Xwn4esIjoicGFwdWFfbmV3X2d1aW5lYSIsIvCfh7Xwn4e+IjoicGFyYWd1YXkiLCLwn4e18J+HqiI6InBlcnUiLCLwn4e18J+HrSI6InBoaWxpcHBpbmVzIiwi8J+HtfCfh7MiOiJwaXRjYWlybl9pc2xhbmRzIiwi8J+HtfCfh7EiOiJwb2xhbmQiLCLwn4e18J+HuSI6InBvcnR1Z2FsIiwi8J+HtfCfh7ciOiJwdWVydG9fcmljbyIsIvCfh7bwn4emIjoicWF0YXIiLCLwn4e38J+HqiI6InJldW5pb24iLCLwn4e38J+HtCI6InJvbWFuaWEiLCLwn4e38J+HuiI6InJ1Iiwi8J+Ht/Cfh7wiOiJyd2FuZGEiLCLwn4en8J+HsSI6InN0X2JhcnRoZWxlbXkiLCLwn4e48J+HrSI6InN0X2hlbGVuYSIsIvCfh7Dwn4ezIjoic3Rfa2l0dHNfbmV2aXMiLCLwn4ex8J+HqCI6InN0X2x1Y2lhIiwi8J+HtfCfh7IiOiJzdF9waWVycmVfbWlxdWVsb24iLCLwn4e78J+HqCI6InN0X3ZpbmNlbnRfZ3JlbmFkaW5lcyIsIvCfh7zwn4e4Ijoic2Ftb2EiLCLwn4e48J+HsiI6InNhbl9tYXJpbm8iLCLwn4e48J+HuSI6InNhb190b21lX3ByaW5jaXBlIiwi8J+HuPCfh6YiOiJzYXVkaV9hcmFiaWEiLCLwn4e48J+HsyI6InNlbmVnYWwiLCLwn4e38J+HuCI6InNlcmJpYSIsIvCfh7jwn4eoIjoic2V5Y2hlbGxlcyIsIvCfh7jwn4exIjoic2llcnJhX2xlb25lIiwi8J+HuPCfh6wiOiJzaW5nYXBvcmUiLCLwn4e48J+HvSI6InNpbnRfbWFhcnRlbiIsIvCfh7jwn4ewIjoic2xvdmFraWEiLCLwn4e48J+HriI6InNsb3ZlbmlhIiwi8J+HuPCfh6ciOiJzb2xvbW9uX2lzbGFuZHMiLCLwn4e48J+HtCI6InNvbWFsaWEiLCLwn4e/8J+HpiI6InNvdXRoX2FmcmljYSIsIvCfh6zwn4e4Ijoic291dGhfZ2VvcmdpYV9zb3V0aF9zYW5kd2ljaF9pc2xhbmRzIiwi8J+HsPCfh7ciOiJrciIsIvCfh7jwn4e4Ijoic291dGhfc3VkYW4iLCLwn4eq8J+HuCI6ImVzIiwi8J+HsfCfh7AiOiJzcmlfbGFua2EiLCLwn4e48J+HqSI6InN1ZGFuIiwi8J+HuPCfh7ciOiJzdXJpbmFtZSIsIvCfh7jwn4e/Ijoic3dhemlsYW5kIiwi8J+HuPCfh6oiOiJzd2VkZW4iLCLwn4eo8J+HrSI6InN3aXR6ZXJsYW5kIiwi8J+HuPCfh74iOiJzeXJpYSIsIvCfh7nwn4e8IjoidGFpd2FuIiwi8J+HufCfh68iOiJ0YWppa2lzdGFuIiwi8J+HufCfh78iOiJ0YW56YW5pYSIsIvCfh7nwn4etIjoidGhhaWxhbmQiLCLwn4e58J+HsSI6InRpbW9yX2xlc3RlIiwi8J+HufCfh6wiOiJ0b2dvIiwi8J+HufCfh7AiOiJ0b2tlbGF1Iiwi8J+HufCfh7QiOiJ0b25nYSIsIvCfh7nwn4e5IjoidHJpbmlkYWRfdG9iYWdvIiwi8J+HufCfh7MiOiJ0dW5pc2lhIiwi8J+HufCfh7ciOiJ0ciIsIvCfh7nwn4eyIjoidHVya21lbmlzdGFuIiwi8J+HufCfh6giOiJ0dXJrc19jYWljb3NfaXNsYW5kcyIsIvCfh7nwn4e7IjoidHV2YWx1Iiwi8J+HuvCfh6wiOiJ1Z2FuZGEiLCLwn4e68J+HpiI6InVrcmFpbmUiLCLwn4em8J+HqiI6InVuaXRlZF9hcmFiX2VtaXJhdGVzIiwi8J+HrPCfh6ciOiJ1ayIsIvCfh7rwn4e4IjoidXMiLCLwn4e78J+HriI6InVzX3Zpcmdpbl9pc2xhbmRzIiwi8J+HuvCfh74iOiJ1cnVndWF5Iiwi8J+HuvCfh78iOiJ1emJla2lzdGFuIiwi8J+Hu/Cfh7oiOiJ2YW51YXR1Iiwi8J+Hu/Cfh6YiOiJ2YXRpY2FuX2NpdHkiLCLwn4e78J+HqiI6InZlbmV6dWVsYSIsIvCfh7vwn4ezIjoidmlldG5hbSIsIvCfh7zwn4erIjoid2FsbGlzX2Z1dHVuYSIsIvCfh6rwn4etIjoid2VzdGVybl9zYWhhcmEiLCLwn4e+8J+HqiI6InllbWVuIiwi8J+Hv/Cfh7IiOiJ6YW1iaWEiLCLwn4e/8J+HvCI6InppbWJhYndlIiwi8J+kqSI6InN0YXJfc3RydWNrIiwi8J+kqCI6ImZhY2Vfd2l0aF9yYWlzZWRfZXllYnJvdyIsIvCfpK8iOiJleHBsb2RpbmdfaGVhZCIsIvCfpKoiOiJjcmF6eV9mYWNlIiwi8J+krCI6ImZhY2Vfd2l0aF9zeW1ib2xzX292ZXJfbW91dGgiLCLwn6SuIjoiZmFjZV92b21pdGluZyIsIvCfpKsiOiJzaHVzaGluZ19mYWNlIiwi8J+krSI6ImZhY2Vfd2l0aF9oYW5kX292ZXJfbW91dGgiLCLwn6eQIjoiZmFjZV93aXRoX21vbm9jbGUiLCLwn6eSIjoiY2hpbGQiLCLwn6eS8J+PuyI6ImNoaWxkOnQyIiwi8J+nkvCfj7wiOiJjaGlsZDp0MyIsIvCfp5Lwn4+9IjoiY2hpbGQ6dDQiLCLwn6eS8J+PviI6ImNoaWxkOnQ1Iiwi8J+nkvCfj78iOiJjaGlsZDp0NiIsIvCfp5EiOiJhZHVsdCIsIvCfp5Hwn4+7IjoiYWR1bHQ6dDIiLCLwn6eR8J+PvCI6ImFkdWx0OnQzIiwi8J+nkfCfj70iOiJhZHVsdDp0NCIsIvCfp5Hwn4++IjoiYWR1bHQ6dDUiLCLwn6eR8J+PvyI6ImFkdWx0OnQ2Iiwi8J+nkyI6Im9sZGVyX2FkdWx0Iiwi8J+nk/Cfj7siOiJvbGRlcl9hZHVsdDp0MiIsIvCfp5Pwn4+8Ijoib2xkZXJfYWR1bHQ6dDMiLCLwn6eT8J+PvSI6Im9sZGVyX2FkdWx0OnQ0Iiwi8J+nk/Cfj74iOiJvbGRlcl9hZHVsdDp0NSIsIvCfp5Pwn4+/Ijoib2xkZXJfYWR1bHQ6dDYiLCLwn6eVIjoid29tYW5fd2l0aF9oZWFkc2NhcmYiLCLwn6eV8J+PuyI6IndvbWFuX3dpdGhfaGVhZHNjYXJmOnQyIiwi8J+nlfCfj7wiOiJ3b21hbl93aXRoX2hlYWRzY2FyZjp0MyIsIvCfp5Xwn4+9Ijoid29tYW5fd2l0aF9oZWFkc2NhcmY6dDQiLCLwn6eV8J+PviI6IndvbWFuX3dpdGhfaGVhZHNjYXJmOnQ1Iiwi8J+nlfCfj78iOiJ3b21hbl93aXRoX2hlYWRzY2FyZjp0NiIsIvCfp5QiOiJiZWFyZGVkX3BlcnNvbiIsIvCfp5Twn4+7IjoiYmVhcmRlZF9wZXJzb246dDIiLCLwn6eU8J+PvCI6ImJlYXJkZWRfcGVyc29uOnQzIiwi8J+nlPCfj70iOiJiZWFyZGVkX3BlcnNvbjp0NCIsIvCfp5Twn4++IjoiYmVhcmRlZF9wZXJzb246dDUiLCLwn6eU8J+PvyI6ImJlYXJkZWRfcGVyc29uOnQ2Iiwi8J+ksSI6ImJyZWFzdF9mZWVkaW5nIiwi8J+ksfCfj7siOiJicmVhc3RfZmVlZGluZzp0MiIsIvCfpLHwn4+8IjoiYnJlYXN0X2ZlZWRpbmc6dDMiLCLwn6Sx8J+PvSI6ImJyZWFzdF9mZWVkaW5nOnQ0Iiwi8J+ksfCfj74iOiJicmVhc3RfZmVlZGluZzp0NSIsIvCfpLHwn4+/IjoiYnJlYXN0X2ZlZWRpbmc6dDYiLCLwn6eZIjoibWFnZSIsIvCfp5nwn4+7IjoibWFnZTp0MiIsIvCfp5nwn4+8IjoibWFnZTp0MyIsIvCfp5nwn4+9IjoibWFnZTp0NCIsIvCfp5nwn4++IjoibWFnZTp0NSIsIvCfp5nwn4+/IjoibWFnZTp0NiIsIvCfp5nigI3imYDvuI8iOiJ3b21hbl9tYWdlIiwi8J+nmfCfj7vigI3imYDvuI8iOiJ3b21hbl9tYWdlOnQyIiwi8J+nmfCfj7zigI3imYDvuI8iOiJ3b21hbl9tYWdlOnQzIiwi8J+nmfCfj73igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ0Iiwi8J+nmfCfj77igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ1Iiwi8J+nmfCfj7/igI3imYDvuI8iOiJ3b21hbl9tYWdlOnQ2Iiwi8J+nmiI6ImZhaXJ5Iiwi8J+nmvCfj7siOiJmYWlyeTp0MiIsIvCfp5rwn4+8IjoiZmFpcnk6dDMiLCLwn6ea8J+PvSI6ImZhaXJ5OnQ0Iiwi8J+nmvCfj74iOiJmYWlyeTp0NSIsIvCfp5rwn4+/IjoiZmFpcnk6dDYiLCLwn6ebIjoidmFtcGlyZSIsIvCfp5vwn4+7IjoidmFtcGlyZTp0MiIsIvCfp5vwn4+8IjoidmFtcGlyZTp0MyIsIvCfp5vwn4+9IjoidmFtcGlyZTp0NCIsIvCfp5vwn4++IjoidmFtcGlyZTp0NSIsIvCfp5vwn4+/IjoidmFtcGlyZTp0NiIsIvCfp5wiOiJtZXJtYWlkIiwi8J+nnPCfj7siOiJtZXJtYWlkOnQyIiwi8J+nnPCfj7wiOiJtZXJtYWlkOnQzIiwi8J+nnPCfj70iOiJtZXJtYWlkOnQ0Iiwi8J+nnPCfj74iOiJtZXJtYWlkOnQ1Iiwi8J+nnPCfj78iOiJtZXJtYWlkOnQ2Iiwi8J+nnOKAjeKZgu+4jyI6Im1lcm1hbiIsIvCfp5zwn4+74oCN4pmC77iPIjoibWVybWFuOnQyIiwi8J+nnPCfj7zigI3imYLvuI8iOiJtZXJtYW46dDMiLCLwn6ec8J+PveKAjeKZgu+4jyI6Im1lcm1hbjp0NCIsIvCfp5zwn4++4oCN4pmC77iPIjoibWVybWFuOnQ1Iiwi8J+nnPCfj7/igI3imYLvuI8iOiJtZXJtYW46dDYiLCLwn6edIjoiZWxmIiwi8J+nnfCfj7siOiJlbGY6dDIiLCLwn6ed8J+PvCI6ImVsZjp0MyIsIvCfp53wn4+9IjoiZWxmOnQ0Iiwi8J+nnfCfj74iOiJlbGY6dDUiLCLwn6ed8J+PvyI6ImVsZjp0NiIsIvCfp54iOiJnZW5pZSIsIvCfp57igI3imYAiOiJ3b21hbl9nZW5pZSIsIvCfp58iOiJ6b21iaWUiLCLwn6ef4oCN4pmAIjoid29tYW5fem9tYmllIiwi8J+nliI6InBlcnNvbl9pbl9zdGVhbXlfcm9vbSIsIvCfp5bwn4+7IjoicGVyc29uX2luX3N0ZWFteV9yb29tOnQyIiwi8J+nlvCfj7wiOiJwZXJzb25faW5fc3RlYW15X3Jvb206dDMiLCLwn6eW8J+PvSI6InBlcnNvbl9pbl9zdGVhbXlfcm9vbTp0NCIsIvCfp5bwn4++IjoicGVyc29uX2luX3N0ZWFteV9yb29tOnQ1Iiwi8J+nlvCfj78iOiJwZXJzb25faW5fc3RlYW15X3Jvb206dDYiLCLwn6eW4oCN4pmA77iPIjoid29tYW5faW5fc3RlYW15X3Jvb20iLCLwn6eW8J+Pu+KAjeKZgO+4jyI6IndvbWFuX2luX3N0ZWFteV9yb29tOnQyIiwi8J+nlvCfj7zigI3imYDvuI8iOiJ3b21hbl9pbl9zdGVhbXlfcm9vbTp0MyIsIvCfp5bwn4+94oCN4pmA77iPIjoid29tYW5faW5fc3RlYW15X3Jvb206dDQiLCLwn6eW8J+PvuKAjeKZgO+4jyI6IndvbWFuX2luX3N0ZWFteV9yb29tOnQ1Iiwi8J+nlvCfj7/igI3imYDvuI8iOiJ3b21hbl9pbl9zdGVhbXlfcm9vbTp0NiIsIvCfp5ciOiJwZXJzb25fY2xpbWJpbmciLCLwn6eX8J+PuyI6InBlcnNvbl9jbGltYmluZzp0MiIsIvCfp5fwn4+8IjoicGVyc29uX2NsaW1iaW5nOnQzIiwi8J+nl/Cfj70iOiJwZXJzb25fY2xpbWJpbmc6dDQiLCLwn6eX8J+PviI6InBlcnNvbl9jbGltYmluZzp0NSIsIvCfp5fwn4+/IjoicGVyc29uX2NsaW1iaW5nOnQ2Iiwi8J+nl+KAjeKZgO+4jyI6IndvbWFuX2NsaW1iaW5nIiwi8J+nl/Cfj7vigI3imYDvuI8iOiJ3b21hbl9jbGltYmluZzp0MiIsIvCfp5fwn4+84oCN4pmA77iPIjoid29tYW5fY2xpbWJpbmc6dDMiLCLwn6eX8J+PveKAjeKZgO+4jyI6IndvbWFuX2NsaW1iaW5nOnQ0Iiwi8J+nl/Cfj77igI3imYDvuI8iOiJ3b21hbl9jbGltYmluZzp0NSIsIvCfp5fwn4+/4oCN4pmA77iPIjoid29tYW5fY2xpbWJpbmc6dDYiLCLwn6eYIjoicGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uIiwi8J+nmPCfj7siOiJwZXJzb25faW5fbG90dXNfcG9zaXRpb246dDIiLCLwn6eY8J+PvCI6InBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbjp0MyIsIvCfp5jwn4+9IjoicGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uOnQ0Iiwi8J+nmPCfj74iOiJwZXJzb25faW5fbG90dXNfcG9zaXRpb246dDUiLCLwn6eY8J+PvyI6InBlcnNvbl9pbl9sb3R1c19wb3NpdGlvbjp0NiIsIvCfp5jigI3imYDvuI8iOiJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiIsIvCfp5jwn4+74oCN4pmA77iPIjoid29tYW5faW5fbG90dXNfcG9zaXRpb246dDIiLCLwn6eY8J+PvOKAjeKZgO+4jyI6IndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uOnQzIiwi8J+nmPCfj73igI3imYDvuI8iOiJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbjp0NCIsIvCfp5jwn4++4oCN4pmA77iPIjoid29tYW5faW5fbG90dXNfcG9zaXRpb246dDUiLCLwn6eY8J+Pv+KAjeKZgO+4jyI6IndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uOnQ2Iiwi8J+knyI6ImxvdmVfeW91X2dlc3R1cmUiLCLwn6Sf8J+PuyI6ImxvdmVfeW91X2dlc3R1cmU6dDIiLCLwn6Sf8J+PvCI6ImxvdmVfeW91X2dlc3R1cmU6dDMiLCLwn6Sf8J+PvSI6ImxvdmVfeW91X2dlc3R1cmU6dDQiLCLwn6Sf8J+PviI6ImxvdmVfeW91X2dlc3R1cmU6dDUiLCLwn6Sf8J+PvyI6ImxvdmVfeW91X2dlc3R1cmU6dDYiLCLwn6SyIjoicGFsbXNfdXBfdG9nZXRoZXIiLCLwn6Sy8J+PuyI6InBhbG1zX3VwX3RvZ2V0aGVyOnQyIiwi8J+ksvCfj7wiOiJwYWxtc191cF90b2dldGhlcjp0MyIsIvCfpLLwn4+9IjoicGFsbXNfdXBfdG9nZXRoZXI6dDQiLCLwn6Sy8J+PviI6InBhbG1zX3VwX3RvZ2V0aGVyOnQ1Iiwi8J+ksvCfj78iOiJwYWxtc191cF90b2dldGhlcjp0NiIsIvCfp6AiOiJicmFpbiIsIvCfp6EiOiJvcmFuZ2VfaGVhcnQiLCLwn6ejIjoic2NhcmYiLCLwn6ekIjoiZ2xvdmVzIiwi8J+npSI6ImNvYXQiLCLwn6emIjoic29ja3MiLCLwn6eiIjoiYmlsbGVkX2NhcCIsIvCfppMiOiJ6ZWJyYSIsIvCfppIiOiJnaXJhZmZlIiwi8J+mlCI6ImhlZGdlaG9nIiwi8J+mlSI6InNhdXJvcG9kIiwi8J+mliI6InRfcmV4Iiwi8J+mlyI6ImNyaWNrZXQiLCLwn6WlIjoiY29jb251dCIsIvCfpaYiOiJicm9jY29saSIsIvCfpagiOiJwcmV0emVsIiwi8J+lqSI6ImN1dF9vZl9tZWF0Iiwi8J+lqiI6InNhbmR3aWNoIiwi8J+loyI6ImJvd2xfd2l0aF9zcG9vbiIsIvCfpasiOiJjYW5uZWRfZm9vZCIsIvCfpZ8iOiJkdW1wbGluZyIsIvCfpaAiOiJmb3J0dW5lX2Nvb2tpZSIsIvCfpaEiOiJ0YWtlb3V0X2JveCIsIvCfpaciOiJwaWUiLCLwn6WkIjoiY3VwX3dpdGhfc3RyYXciLCLwn6WiIjoiY2hvcHN0aWNrcyIsIvCfm7giOiJmbHlpbmdfc2F1Y2VyIiwi8J+btyI6InNsZWQiLCLwn6WMIjoiY3VybGluZ19zdG9uZSIsIvCfh7jwn4evIjoic3ZhbGJhcmRfYW5kX2phbl9tYXllbiIsIvCfh7Lwn4erIjoic3RfbWFydGluIiwi8J+HuvCfh7IiOiJ1c19vdXRseWluZ19pc2xhbmRzIiwi8J+HufCfh6YiOiJ0cmlzdGFuX2RhX2N1bmhhIiwi8J+HrfCfh7IiOiJoZWFyZF9hbmRfbWNfZG9uYWxkX2lzbGFuZHMiLCLwn4eq8J+HpiI6ImNldXRhX2FuZF9tZWxpbGxhIiwi8J+HqfCfh6wiOiJkaWVnb19nYXJjaWEiLCLwn4em8J+HqCI6ImFzY2Vuc2lvbl9pc2xhbmQiLCLwn4en8J+HuyI6ImJvdXZldF9pc2xhbmQiLCLwn4eo8J+HtSI6ImNsaXBwZXJ0b25faXNsYW5kIiwi8J+HuvCfh7MiOiJ1bml0ZWRfbmF0aW9ucyIsIvCfpbAiOiJzbWlsaW5nX2ZhY2Vfd2l0aF90aHJlZV9oZWFydHMiLCLwn6W1IjoiaG90X2ZhY2UiLCLwn6W2IjoiY29sZF9mYWNlIiwi8J+lsyI6InBhcnR5aW5nX2ZhY2UiLCLwn6W0Ijoid29venlfZmFjZSIsIvCfpboiOiJwbGVhZGluZ19mYWNlIiwi8J+RqOKAjfCfprAiOiJtYW5fcmVkX2hhaXJlZCIsIvCfkajigI3wn6axIjoibWFuX2N1cmx5X2hhaXJlZCIsIvCfkajigI3wn6azIjoibWFuX3doaXRlX2hhaXJlZCIsIvCfkajigI3wn6ayIjoibWFuX2JhbGQiLCLwn5Gp4oCN8J+msCI6IndvbWFuX3JlZF9oYWlyZWQiLCLwn5Gp4oCN8J+msSI6IndvbWFuX2N1cmx5X2hhaXJlZCIsIvCfkanigI3wn6azIjoid29tYW5fd2hpdGVfaGFpcmVkIiwi8J+RqeKAjfCfprIiOiJ3b21hbl9iYWxkIiwi8J+muCI6InN1cGVyaGVybyIsIvCfprjigI3imYIiOiJtYW5fc3VwZXJoZXJvIiwi8J+muOKAjeKZgCI6IndvbWFuX3N1cGVyaGVybyIsIvCfprkiOiJzdXBlcnZpbGxhaW4iLCLwn6a54oCN4pmAIjoid29tYW5fc3VwZXJ2aWxsYWluIiwi8J+mueKAjeKZgiI6Im1hbl9zdXBlcnZpbGxhaW4iLCLwn6a1IjoibGVnIiwi8J+mtiI6ImZvb3QiLCLwn6a0IjoiYm9uZSIsIvCfprciOiJ0b290aCIsIvCfpb0iOiJnb2dnbGVzIiwi8J+lvCI6ImxhYl9jb2F0Iiwi8J+lviI6Imhpa2luZ19ib290Iiwi8J+lvyI6ImZsYXRfc2hvZSIsIvCfpp0iOiJyYWNjb29uIiwi8J+mmSI6ImxsYW1hIiwi8J+mmyI6ImhpcHBvcG90YW11cyIsIvCfppgiOiJrYW5nYXJvbyIsIvCfpqEiOiJiYWRnZXIiLCLwn6aiIjoic3dhbiIsIvCfppoiOiJwZWFjb2NrIiwi8J+mnCI6InBhcnJvdCIsIvCfpp4iOiJsb2JzdGVyIiwi8J+mnyI6Im1vc3F1aXRvIiwi8J+moCI6Im1pY3JvYmUiLCLwn6WtIjoibWFuZ28iLCLwn6WsIjoibGVhZnlfZ3JlZW4iLCLwn6WvIjoiYmFnZWwiLCLwn6eCIjoic2FsdCIsIvCfpa4iOiJtb29uX2Nha2UiLCLwn6eBIjoiY3VwY2FrZSIsIvCfp60iOiJjb21wYXNzIiwi8J+nsSI6ImJyaWNrIiwi8J+buSI6InNrYXRlYm9hcmQiLCLwn6ezIjoibHVnZ2FnZSIsIvCfp6giOiJmaXJlY3JhY2tlciIsIvCfp6ciOiJyZWRfZ2lmdF9lbnZlbG9wZSIsIvCfpY4iOiJzb2Z0YmFsbCIsIvCfpY8iOiJmbHlpbmdfZGlzYyIsIvCfpY0iOiJsYWNyb3NzZSIsIvCfp78iOiJuYXphcl9hbXVsZXQiLCLwn6epIjoiamlnc2F3Iiwi8J+nuCI6InRlZGR5X2JlYXIiLCLimZ8iOiJjaGVzc19wYXduIiwi8J+ntSI6InRocmVhZCIsIvCfp7YiOiJ5YXJuIiwi8J+nriI6ImFiYWN1cyIsIvCfp74iOiJyZWNlaXB0Iiwi8J+nsCI6InRvb2xib3giLCLwn6eyIjoibWFnbmV0Iiwi8J+nqiI6InRlc3RfdHViZSIsIvCfp6siOiJwZXRyaV9kaXNoIiwi8J+nrCI6ImRuYSIsIvCfp7QiOiJsb3Rpb25fYm90dGxlIiwi8J+ntyI6InNhZmV0eV9waW4iLCLwn6e5IjoiYnJvb20iLCLwn6e6IjoiYmFza2V0Iiwi8J+nuyI6InJvbGxfb2ZfdG9pbGV0X3BhcGVyIiwi8J+nvCI6InNvYXAiLCLwn6e9Ijoic3BvbmdlIiwi8J+nryI6ImZpcmVfZXh0aW5ndWlzaGVyIiwi4pm+IjoiaW5maW5pdHkiLCLwn4+04oCN4pigIjoicGlyYXRlX2ZsYWciLCLwn6eHIjoid2FmZmxlIiwi8J+mpiI6Im90dGVyIiwi8J+mpSI6InNsb3RoIiwi8J+niiI6ImljZV9jdWJlIiwi8J+qkCI6InJpbmdlcl9wbGFuZXQiLCLwn6apIjoiZmxhbWluZ28iLCLwn6WxIjoieWF3bmluZ19mYWNlIiwi8J+kjyI6InBpbmNoaW5nX2hhbmQiLCLwn5CV4oCN8J+muiI6InNlcnZpY2VfZG9nIiwi8J+mpyI6Im9yYW5ndXRhbiIsIvCfm7oiOiJhdXRvX3JpY2tzaGF3Iiwi8J+qgiI6InBhcmFjaHV0ZSIsIvCfqoAiOiJ5by15byIsIvCfqoEiOiJraXRlIiwi8J+fqyI6ImJyb3duX3NxdWFyZSIsIvCfn6oiOiJwdXJwbGVfc3F1YXJlIiwi8J+fpiI6ImJsdWVfc3F1YXJlIiwi8J+fqSI6ImdyZWVuX3NxdWFyZSIsIvCfn6giOiJ5ZWxsb3dfc3F1YXJlIiwi8J+fpyI6Im9yYW5nZV9zcXVhcmUiLCLwn5+lIjoicmVkX3NxdWFyZSIsIvCfn6QiOiJicm93bl9jaXJjbGUiLCLwn5+jIjoicHVycGxlX2NpcmNsZSIsIvCfn6IiOiJncmVlbl9jaXJjbGUiLCLwn5+hIjoieWVsbG93X2NpcmNsZSIsIvCfn6AiOiJvcmFuZ2VfY2lyY2xlIiwi8J+qkiI6InJhem9yIiwi8J+qkSI6ImNoYWlyIiwi8J+puiI6InN0ZXRob3Njb3BlIiwi8J+puSI6ImFkaGVzaXZlX2JhbmRhZ2UiLCLwn6m4IjoiZHJvcF9vZl9ibG9vZCIsIvCfpq8iOiJwcm9iaW5nX2NhbmUiLCLwn6qTIjoiYXhlIiwi8J+qlCI6ImRpeWFfbGFtcCIsIvCfqpUiOiJiYW5qbyIsIvCfqbAiOiJiYWxsZXRfc2hvZXMiLCLwn6mzIjoic2hvcnRzIiwi8J+psiI6ImJyaWVmcyIsIvCfqbEiOiJvbmVfcGllY2Vfc3dpbXN1aXQiLCLwn6W7Ijoic2FyaSIsIvCfproiOiJzYWZldHlfdmVzdCIsIvCfpL8iOiJkaXZpbmdfbWFzayIsIvCfprwiOiJtb3Rvcml6ZWRfd2hlZWxjaGFpciIsIvCfpr0iOiJtYW51YWxfd2hlZWxjaGFpciIsIvCfm5UiOiJoaW5kdV90ZW1wbGUiLCLwn6eJIjoibWF0w6kiLCLwn6eDIjoiYmV2ZXJhZ2VfYm94Iiwi8J+mqiI6Im95c3RlciIsIvCfp4giOiJidXR0ZXIiLCLwn6eGIjoiZmFsYWZlbCIsIvCfp4UiOiJvbmlvbiIsIvCfp4QiOiJnYXJsaWMiLCLwn6aoIjoic2t1bmsiLCLwn6auIjoiZ3VpZGVfZG9nIiwi8J+nkeKAjfCfpJ3igI3wn6eRIjoicGVvcGxlX2hvbGRpbmdfaGFuZHMiLCLwn5Gp4oCN8J+mvSI6IndvbWFuX2luX21hbnVhbF93aGVlbGNoYWlyIiwi8J+RqOKAjfCfpr0iOiJtYW5faW5fbWFudWFsX3doZWVsY2hhaXIiLCLwn5Gp4oCN8J+mvCI6IndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIiwi8J+RqOKAjfCfprwiOiJtYW5faW5fbW90b3JpemVkX3doZWVsY2hhaXIiLCLwn5Gp4oCN8J+mryI6IndvbWFuX3dpdGhfcHJvYmluZ19jYW5lIiwi8J+RqOKAjfCfpq8iOiJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiLCLwn6eO4oCN4pmAIjoid29tYW5fa25lZWxpbmciLCLwn6eO4oCN4pmCIjoibWFuX2tuZWVsaW5nIiwi8J+njeKAjeKZgiI6Im1hbl9zdGFuZGluZyIsIvCfp43igI3imYAiOiJ3b21hbl9zdGFuZGluZyIsIvCfp4/igI3imYAiOiJkZWFmX3dvbWFuIiwi8J+nj+KAjeKZgiI6ImRlYWZfbWFuIiwi8J+muyI6ImhlYXJfd2l0aF9oZWFyaW5nX2FpZCIsIvCfpr8iOiJtZWNoYW5pY2FsX2xlZyIsIvCfpr4iOiJtZWNoYW5pY2FsX2FybSIsIvCfpI0iOiJ3aGl0ZV9oZWFydCIsIvCfpI4iOiJicm93bl9oZWFydCIsIvCfj7PvuI/igI3imqciOiJ0cmFuc2dlbmRlcl9mbGFnIiwi4pi7Ijoic2xpZ2h0X3NtaWxlIiwi4pmhIjoiaGVhcnQifX0pLGRlZmluZSgicHJldHR5LXRleHQvZW1vamkvdmVyc2lvbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLklNQUdFX1ZFUlNJT049IjkifSksZGVmaW5lKCJwcmV0dHktdGV4dC9lbW9qaSIsWyJleHBvcnRzIiwicHJldHR5LXRleHQvZW1vamkvZGF0YSIsInByZXR0eS10ZXh0L2Vtb2ppL3ZlcnNpb24iXSxmdW5jdGlvbihlLHUsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlZ2lzdGVyRW1vamk9ZnVuY3Rpb24oZSxhKXtlPWUudG9Mb3dlckNhc2UoKSxjW2VdPWF9LGUuZXh0ZW5kZWRFbW9qaUxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gY30sZS5idWlsZFJlcGxhY2VtZW50c0xpc3Q9YSxlLnBlcmZvcm1FbW9qaVVuZXNjYXBlPWZ1bmN0aW9uKGwsYyl7aWYoIWwpcmV0dXJuO3ZhciBtPWMuaW5saW5lRW1vamksZT1yKG0pO3JldHVybiBsLnJlcGxhY2UoZSxmdW5jdGlvbihlLGEpe3ZhciBuPWMuZW5hYmxlRW1vamlTaG9ydGN1dHMmJiEhdS50cmFuc2xhdGlvbnNbZV0sdD0hIXUucmVwbGFjZW1lbnRzW2VdLG89dm9pZCAwLG89bj91LnRyYW5zbGF0aW9uc1tlXTp0P3UucmVwbGFjZW1lbnRzW2VdOmUuc2xpY2UoMSxlLmxlbmd0aC0xKSxpPWUubGFzdEluZGV4T2YoIjoiKT09PWUubGVuZ3RoLTEscj1wKG8sYyksXz1oKG8sYyk/ImVtb2ppIGVtb2ppLWN1c3RvbSI6ImVtb2ppIixzPShufHxpfHx0KSYmZChsLGEsbSk7cmV0dXJuIHImJnM/IjxpbWcgc3JjPSciK3IrIicgIisoYy5za2lwVGl0bGU/IiI6InRpdGxlPSciK28rIiciKSsiIGFsdD0nIitvKyInIGNsYXNzPSciK18rIic+IjplfSl9LGUucGVyZm9ybUVtb2ppRXNjYXBlPWZ1bmN0aW9uKG4sdCl7dmFyIG89dC5pbmxpbmVFbW9qaSxlPXIobyk7cmV0dXJuIG4ucmVwbGFjZShlLGZ1bmN0aW9uKGUsYSl7aWYoZChuLGEsbykpe2lmKHUudHJhbnNsYXRpb25zW2VdKXJldHVybiB0LmVtb2ppU2hvcnRjdXRzPyI6Iit1LnRyYW5zbGF0aW9uc1tlXSsiOiI6ZTtpZih1LnJlcGxhY2VtZW50c1tlXSlyZXR1cm4iOiIrdS5yZXBsYWNlbWVudHNbZV0rIjoifXJldHVybiBlfSl9LGUuaXNDdXN0b21FbW9qaT1oLGUuYnVpbGRFbW9qaVVybD1wLGUuZW1vamlFeGlzdHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLCEhKGMuaGFzT3duUHJvcGVydHkoZSl8fG0uaGFzT3duUHJvcGVydHkoZSl8fGcuaGFzT3duUHJvcGVydHkoZSkpfSxlLmVtb2ppU2VhcmNoPWZ1bmN0aW9uKGUsYSl7dmFyIG49YSYmYS5tYXhSZXN1bHRzfHwtMTtpZigwPT09bilyZXR1cm5bXTt3PXd8fF8udW5pb24oXy5rZXlzKG0pLF8ua2V5cyhjKSxfLmtleXMoZykpLnNvcnQoKTt2YXIgdD1bXTtmdW5jdGlvbiBvKGUpe3ZhciBhPWdbZV18fGU7LTE9PT10LmluZGV4T2YoYSkmJnQucHVzaChhKX1mb3IodmFyIGk9MDtpPHcubGVuZ3RoO2krKyl7dmFyIHI9d1tpXTswPT09ci5pbmRleE9mKGUpJiZvKHIpfXUuc2VhcmNoQWxpYXNlc1tlXSYmdC5wdXNoLmFwcGx5KHQsdS5zZWFyY2hBbGlhc2VzW2VdKTtmb3IodmFyIHM9MDtzPHcubGVuZ3RoO3MrKyl7dmFyIGw9d1tzXTswPGwuaW5kZXhPZihlKSYmbyhsKX1yZXR1cm4tMT09PW4/dDp0LnNsaWNlKDAsbil9LGUuaXNTa2luVG9uYWJsZUVtb2ppPWZ1bmN0aW9uKGUpe3ZhciBhPV8uY29tcGFjdChlLnNwbGl0KCI6IikpWzBdO2lmKGEpcmV0dXJuLTEhPT11LnRvbmFibGVFbW9qaXMuaW5kZXhPZihhKTtyZXR1cm4hMX07dmFyIGM9e307dmFyIG09e307ZnVuY3Rpb24gYShlKXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuc29ydCgpLnJldmVyc2UoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4iXFx1IitlLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDQsIjAiKX0pLmpvaW4oIiIpfSkuam9pbigifCIpfXZhciBuPXZvaWQgMCx0PXt9O2Z1bmN0aW9uIGkoKXtyZXR1cm4gdm9pZCAwPT09biYmKG49YSh1LnJlcGxhY2VtZW50cykpLG59ZnVuY3Rpb24gcihlKXt2YXIgYTtyZXR1cm4gdm9pZCAwPT09dFtlXSYmKGE9ZT8ifDpbXlxcczpdKyg/Ojp0XFxkKT86PyI6InxcXEI6W15cXHM6XSsoPzo6dFxcZCk/Oj9cXEIiLHRbZV09bmV3IFJlZ0V4cChpKCkrYSwiZyIpKSx0W2VdfXUuZW1vamlzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG1bZV09ITB9KTt2YXIgZz17fTtmdW5jdGlvbiBkKGUsYSxuKXtpZihuKXJldHVybiEwO3ZhciB0PWUuc2xpY2UoMCxhLShuPzE6MCkpO3JldHVybiAwPT09dC5sZW5ndGh8fC8oPzpcc3xbPi4sXC8jISQlXiYqOzp7fT1cLV9gfigpXSkkLy50ZXN0KHQpfHxuZXcgUmVnRXhwKCIoPzoiK2koKSsiKSQiKS50ZXN0KHQpfWZ1bmN0aW9uIGgoZSxhKXtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksISFjLmhhc093blByb3BlcnR5KGUpfHwhIShhJiZhLmN1c3RvbUVtb2ppJiZhLmN1c3RvbUVtb2ppLmhhc093blByb3BlcnR5KGUpKX1mdW5jdGlvbiBwKGUsYSl7dmFyIG49dm9pZCAwO2U9U3RyaW5nKGUpLnRvTG93ZXJDYXNlKCksYy5oYXNPd25Qcm9wZXJ0eShlKSYmKG49Y1tlXSksYSYmYS5jdXN0b21FbW9qaSYmYS5jdXN0b21FbW9qaVtlXSYmKG49YS5jdXN0b21FbW9qaVtlXSk7dmFyIHQ9ZS5tYXRjaCgvKFteOl0rKTo/Lyk7cmV0dXJuIHQmJiFuJiYobS5oYXNPd25Qcm9wZXJ0eSh0WzFdKXx8Zy5oYXNPd25Qcm9wZXJ0eSh0WzFdKSkmJihuPWEuZ2V0VVJMKCIvaW1hZ2VzL2Vtb2ppLyIrYS5lbW9qaVNldCsiLyIrZS5yZXBsYWNlKC86dC8sIi8iKSsiLnBuZyIpKSxuPW4mJm4rIj92PSIrby5JTUFHRV9WRVJTSU9OfU9iamVjdC5rZXlzKHUuYWxpYXNlcykuZm9yRWFjaChmdW5jdGlvbihhKXt1LmFsaWFzZXNbYV0uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZ1tlXT1hfSl9KTt2YXIgdz12b2lkIDB9KSxkZWZpbmUoInByZXR0eS10ZXh0L2VuZ2luZXMvZGlzY291cnNlLW1hcmtkb3duLWl0IixbImV4cG9ydHMiLCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJwcmV0dHktdGV4dC9ndWlkIl0sZnVuY3Rpb24oZSxyLF8saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkFUVEFDSE1FTlRfQ1NTX0NMQVNTPXZvaWQgMCxlLmV4dHJhY3REYXRhQXR0cmlidXRlPXosZS5zZXR1cD1mdW5jdGlvbihvLGEsbil7aWYoby5zZXR1cClyZXR1cm47az1rfHxyZXF1aXJlanMoInByZXR0eS10ZXh0L2VuZ2luZXMvZGlzY291cnNlLW1hcmtkb3duL2hlbHBlcnMiKSxvLm1hcmtkb3duSXQ9ITA7dmFyIGw9W10sYz1bXSxtPXtmOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSx1PS9kaXNjb3Vyc2UtbWFya2Rvd25cL3xtYXJrZG93bi1pdFwvLyxnPVtdLGQ9W107T2JqZWN0LmtleXMocmVxdWlyZS5fZWFrX3NlZW4pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGEsbix0LG8saSxyLF8sczshdS50ZXN0KGUpfHwoYT1yZXF1aXJlanMoZSkpJiZhLnNldHVwJiYobj1lLnNwbGl0KCIvIikucmV2ZXJzZSgpWzBdLGcucHVzaChuKSxhLnNldHVwKCh0PW4sbz1sLGk9YyxyPW0sXz1kLChzPXttYXJrZG93bkl0OiEwfSkud2hpdGVMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBfLnB1c2goW3QsZV0pfSxzLnJlZ2lzdGVySW5saW5lPWgodCwicmVnaXN0ZXJJbmxpbmUiKSxzLnJlcGxhY2VCbG9jaz1oKHQsInJlcGxhY2VCbG9jayIpLHMuYWRkUHJlUHJvY2Vzc29yPWgodCwiYWRkUHJlUHJvY2Vzc29yIikscy5pbmxpbmVSZXBsYWNlPWgodCwiaW5saW5lUmVwbGFjZSIpLHMucG9zdFByb2Nlc3NUYWc9aCh0LCJwb3N0UHJvY2Vzc1RhZyIpLHMuaW5saW5lUmVnZXhwPWgodCwiaW5saW5lUmVnZXhwIikscy5pbmxpbmVCZXR3ZWVuPWgodCwiaW5saW5lQmV0d2VlbiIpLHMucG9zdFByb2Nlc3NUZXh0PWgodCwicG9zdFByb2Nlc3NUZXh0Iikscy5vblBhcnNlTm9kZT1oKHQsIm9uUGFyc2VOb2RlIikscy5yZWdpc3RlckJsb2NrPWgodCwicmVnaXN0ZXJCbG9jayIpLHMuZ2V0T3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiByLmYoKX0scy5yZWdpc3Rlck9wdGlvbnM9ZnVuY3Rpb24oZSl7by5wdXNoKFt0LGVdKX0scy5yZWdpc3RlclBsdWdpbj1mdW5jdGlvbihlKXtpLnB1c2goW3QsZV0pfSxzKSkpfSksT2JqZWN0LmVudHJpZXMobi53aGl0ZUxpc3RlZHx8e30pLmZvckVhY2goZnVuY3Rpb24oZSl7ZC5wdXNoKGUpfSksbC5mb3JFYWNoKGZ1bmN0aW9uKGUpeygwLHMoZSwyKVsxXSkobyxhLG4pfSksZy5mb3JFYWNoKGZ1bmN0aW9uKGUpe28uZmVhdHVyZXMuaGFzT3duUHJvcGVydHkoZSl8fChvLmZlYXR1cmVzW2VdPSEwKX0pO3ZhciB0PXt9O09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXT1vW2VdLGRlbGV0ZSBvW2VdfSksdC5oZWxwZXJzPXt0ZXh0UmVwbGFjZTprLnRleHRSZXBsYWNlfSxvLmRpc2NvdXJzZT10LG0uZj1mdW5jdGlvbigpe3JldHVybiBvLmRpc2NvdXJzZX0sby5kaXNjb3Vyc2UubGltaXRlZFNpdGVTZXR0aW5ncz17c2VjdXJlTWVkaWE6YS5zZWN1cmVfbWVkaWF9LG8uZW5naW5lPXdpbmRvdy5tYXJrZG93bml0KHtkaXNjb3Vyc2U6by5kaXNjb3Vyc2UsaHRtbDohMCxicmVha3M6by5kaXNjb3Vyc2UuZmVhdHVyZXMubmV3bGluZSx4aHRtbE91dDohMSxsaW5raWZ5OmEuZW5hYmxlX21hcmtkb3duX2xpbmtpZnksdHlwb2dyYXBoZXI6YS5lbmFibGVfbWFya2Rvd25fdHlwb2dyYXBoZXJ9KTt2YXIgZT1hLm1hcmtkb3duX3R5cG9ncmFwaGVyX3F1b3RhdGlvbl9tYXJrcztlJiYoby5lbmdpbmUub3B0aW9ucy5xdW90ZXM9ZS5zcGxpdCgifCIpKTt7dmFyIGk7by5lbmdpbmUubGlua2lmeS50bGRzKChhLm1hcmtkb3duX2xpbmtpZnlfdGxkc3x8IiIpLnNwbGl0KCJ8IikpLGZ1bmN0aW9uKGUpe2UudXRpbHMubGliLm1kdXJsLmRlY29kZS5kZWZhdWx0Q2hhcnM9IjsvPzpAJj0rJCwjICJ9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmh0bWxfcmF3PXd9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmltYWdlPWZ9KG8uZW5naW5lKSxmdW5jdGlvbihlKXtlLnJlbmRlcmVyLnJ1bGVzLmxpbmtfb3Blbj1ifShvLmVuZ2luZSksZnVuY3Rpb24oZSl7ZS5ibG9jay5iYmNvZGU9e3J1bGVyOm5ldyBwfX0oby5lbmdpbmUpLGZ1bmN0aW9uKGUpe2UuaW5saW5lLmJiY29kZT17cnVsZXI6bmV3IHB9fShvLmVuZ2luZSksZnVuY3Rpb24oZSl7dmFyIGE9cmVxdWlyZWpzKCJwcmV0dHktdGV4dC9lbmdpbmVzL2Rpc2NvdXJzZS1tYXJrZG93bi90ZXh0LXBvc3QtcHJvY2VzcyIpLlRleHRQb3N0UHJvY2Vzc1J1bGVyO2UuY29yZS50ZXh0UG9zdFByb2Nlc3M9e3J1bGVyOm5ldyBhfX0oby5lbmdpbmUpLGMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYT1zKGUsMiksbj1hWzBdLHQ9YVsxXTtvLmRpc2NvdXJzZS5mZWF0dXJlc1tuXSYmby5lbmdpbmUudXNlKHQpfSksby5tYXJrZG93bkl0PSEwLG8uc2V0dXA9ITAsby5kaXNjb3Vyc2Uuc2FuaXRpemVyJiZvLnNhbml0aXplcnx8KGk9bmV3IHIuZGVmYXVsdChvLmRpc2NvdXJzZSksZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBhPXMoZSwyKSxuPWFbMF0sdD1hWzFdO2kud2hpdGVMaXN0RmVhdHVyZShuLHQpfSksby5zYW5pdGl6ZXI9by5kaXNjb3Vyc2Uuc2FuaXRpemVyPW8uZGlzY291cnNlLnNhbml0aXplP2Z1bmN0aW9uKGUpe3JldHVybigwLF8uc2FuaXRpemUpKGUsaSl9OmZ1bmN0aW9uKGUpe3JldHVybiBlfSl9fSxlLmNvb2s9ZnVuY3Rpb24oZSxhKXt2YXIgbj17fTthLmRpc2NvdXJzZS5ob2lzdGVkPW47dmFyIHQ9YS5lbmdpbmUucmVuZGVyKGUpLG89YS5kaXNjb3Vyc2Uuc2FuaXRpemVyKHQpLnRyaW0oKSxpPU9iamVjdC5rZXlzKG4pO2lmKGkubGVuZ3RoKWZvcih2YXIgcj0hMCxfPWZ1bmN0aW9uKGUpe289by5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLGZ1bmN0aW9uKCl7cmV0dXJuIHI9ITAsbltlXX0pfTtyOylyPSExLGkuZm9yRWFjaChfKTtyZXR1cm4gZGVsZXRlIGEuZGlzY291cnNlLmhvaXN0ZWQsb307dmFyIHM9ZnVuY3Rpb24oZSxhKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsYSl7dmFyIG49W10sdD0hMCxvPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHIsXz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHI9Xy5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCFhfHxuLmxlbmd0aCE9PWEpO3Q9ITApO31jYXRjaChlKXtvPSEwLGk9ZX1maW5hbGx5e3RyeXshdCYmXy5yZXR1cm4mJl8ucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiBufShlLGEpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07dmFyIGE9ZnVuY3Rpb24oZSxhLG4pe3JldHVybiBhJiZ0KGUucHJvdG90eXBlLGEpLG4mJnQoZSxuKSxlfTtmdW5jdGlvbiB0KGUsYSl7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciB0PWFbbl07dC5lbnVtZXJhYmxlPXQuZW51bWVyYWJsZXx8ITEsdC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHQmJih0LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LmtleSx0KX19dmFyIG09ZS5BVFRBQ0hNRU5UX0NTU19DTEFTUz0iYXR0YWNobWVudCI7ZnVuY3Rpb24gaChlLGEpe3JldHVybiBmdW5jdGlvbigpe3dpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZyhlKyI6ICIrYSsiIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgdGhlIG5ldyBtYXJrZG93biBpdCBBUElzIil9fXZhciBwPShhKG4sW3trZXk6ImdldFJ1bGVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJ1bGVzfX0se2tleToiZ2V0UnVsZUZvclRhZyIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5lbnN1cmVDYWNoZSgpLHRoaXMuY2FjaGUuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHRoaXMuY2FjaGVbZV19fSx7a2V5OiJlbnN1cmVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5jYWNoZSl7dGhpcy5jYWNoZT17fTtmb3IodmFyIGU9dGhpcy5ydWxlcy5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIGE9dGhpcy5ydWxlc1tlXTt0aGlzLmNhY2hlW2EucnVsZS50YWddPWF9fX19LHtrZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKGUsYSl7dGhpcy5ydWxlcy5wdXNoKHtuYW1lOmUscnVsZTphfSksdGhpcy5jYWNoZT1udWxsfX1dKSxuKTtmdW5jdGlvbiBuKCl7IWZ1bmN0aW9uKGUsYSl7aWYoIShlIGluc3RhbmNlb2YgYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5ydWxlcz1bXX1mdW5jdGlvbiB3KGUsYSxuKXt2YXIgdD1lW2FdLmNvbnRlbnQ7aWYodCYmMDx0Lmxlbmd0aCl7dmFyIG89KDAsaS5kZWZhdWx0KSgpO3JldHVybiBuLmRpc2NvdXJzZS5ob2lzdGVkW29dPWVbYV0uY29udGVudCxvfXJldHVybiIifWZ1bmN0aW9uIHooZSl7dmFyIGE9ZS5pbmRleE9mKCI9Iik7aWYoLTE9PT1hKXJldHVybiBudWxsO3ZhciBuPSgiZGF0YS0iK2Uuc3Vic3RyKDAsYSkpLnRvTG93ZXJDYXNlKCk7cmV0dXJuL15bQS1aYS16XStbXHdcLVw6XC5dKiQvLnRlc3Qobik/W24sZS5zdWJzdHIoYSsxKV06bnVsbH12YXIgUz0vXihbMS05XStbMC05XSopeChbMS05XStbMC05XSopKFxzKixccyooeD8pKFsxLTldWzAtOV17MCwyfT8pKFsleF0/KSk/JC87ZnVuY3Rpb24gZihlLGEsbix0LG8pe3ZhciBpLHIsXyxzLGwsYyxtLHUsZz1lW2FdLGQ9by5yZW5kZXJJbmxpbmVBc1RleHQoZy5jaGlsZHJlbixuLHQpLnNwbGl0KCJ8IiksaD1bXSxwPXtzZWN1cmVNZWRpYTpuLmRpc2NvdXJzZS5saW1pdGVkU2l0ZVNldHRpbmdzLnNlY3VyZU1lZGlhfTtpZigidmlkZW8iPT09ZFsxXSlyZXR1cm4gYz1wLG09KGw9ZykuYXR0ckdldCgic3JjIiksdT1sLmF0dHJHZXQoImRhdGEtb3JpZy1zcmMiKSwnPGRpdiBjbGFzcz0idmlkZW8tY29udGFpbmVyIj5cbiAgICA8dmlkZW8gd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgcHJlbG9hZD0iJysoYy5zZWN1cmVNZWRpYT8ibm9uZSI6Im1ldGFkYXRhIikrJyIgY29udHJvbHM+XG4gICAgICA8c291cmNlIHNyYz0iJyttKyciICcrKG51bGwhPT11PydkYXRhLW9yaWctc3JjPSInK3UrJyInOiIiKSsnPlxuICAgICAgPGEgaHJlZj0iJyttKyciPicrbSsiPC9hPlxuICAgIDwvdmlkZW8+XG4gIDwvZGl2PiI7aWYoImF1ZGlvIj09PWRbMV0pcmV0dXJuIHI9cCxfPShpPWcpLmF0dHJHZXQoInNyYyIpLHM9aS5hdHRyR2V0KCJkYXRhLW9yaWctc3JjIiksJzxhdWRpbyBwcmVsb2FkPSInKyhyLnNlY3VyZU1lZGlhPyJub25lIjoibWV0YWRhdGEiKSsnIiBjb250cm9scz5cbiAgICA8c291cmNlIHNyYz0iJytfKyciICcrKG51bGwhPT1zPydkYXRhLW9yaWctc3JjPSInK3MrJyInOiIiKSsnPlxuICAgIDxhIGhyZWY9IicrXysnIj4nK18rIjwvYT5cbiAgPC9hdWRpbz4iO2Zvcih2YXIgdyxmLGIsayx5LHYseCxqPTA7ajxkLmxlbmd0aDsrK2opeyh3PWRbal0ubWF0Y2goUykpJiZ3WzFdJiZ3WzJdPyhrPXdbMV0seT13WzJdLHdbNV0mJndbNl0mJiIlIj09PXdbNl0mJihiPXBhcnNlRmxvYXQod1s1XSkvMTAwLGs9cGFyc2VJbnQoaypiLDEwKSx5PXBhcnNlSW50KHkqYiwxMCkpLHdbNV0mJndbNl0mJiJ4Ij09PXdbNl0mJih2PXBhcnNlRmxvYXQod1s1XSkvayxrPXBhcnNlSW50KHdbNV0sMTApLHk9cGFyc2VJbnQoeSp2LDEwKSksd1s1XSYmd1s0XSYmIngiPT09d1s0XSYmIXdbNl0mJih4PXBhcnNlRmxvYXQod1s1XSkveSx5PXBhcnNlSW50KHdbNV0sMTApLGs9cGFyc2VJbnQoayp4LDEwKSksLTE9PT1nLmF0dHJJbmRleCgid2lkdGgiKSYmZy5hdHRycy5wdXNoKFsid2lkdGgiLGtdKSwtMT09PWcuYXR0ckluZGV4KCJoZWlnaHQiKSYmZy5hdHRycy5wdXNoKFsiaGVpZ2h0Iix5XSksbi5kaXNjb3Vyc2UucHJldmlld2luZyYmIngiIT09d1s2XSYmIngiIT09d1s0XSYmZy5hdHRycy5wdXNoKFsiY2xhc3MiLCJyZXNpemFibGUiXSkpOihmPXooZFtqXSkpP2cuYXR0cnMucHVzaChmKTpoLnB1c2goZFtqXSl9cmV0dXJuIGcuYXR0cnNbZy5hdHRySW5kZXgoImFsdCIpXVsxXT1oLmpvaW4oInwiKSxvLnJlbmRlclRva2VuKGUsYSxuKX1mdW5jdGlvbiBiKGUsYSxuLHQsbyl7Zm9yKHZhciBpLHI9ZVthXSxfPWVbYSsxXSxzPV8uY29udGVudC5zcGxpdCgifCIpLGw9W10sYz0wO2M8cy5sZW5ndGg7KytjKXNbY109PT1tP3IuYXR0cnMudW5zaGlmdChbImNsYXNzIixzW2NdXSk6KGk9eihzW2NdKSk/ci5hdHRycy5wdXNoKGkpOmwucHVzaChzW2NdKTtyZXR1cm4gMDxsLmxlbmd0aCYmKF8uY29udGVudD1sLmpvaW4oInwiKSksby5yZW5kZXJUb2tlbihlLGEsbil9dmFyIGs9dm9pZCAwfSksZnVuY3Rpb24gaShyLF8scyl7ZnVuY3Rpb24gbChuLGUpe2lmKCFfW25dKXtpZighcltuXSl7dmFyIGE9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWUmJmEpcmV0dXJuIGEobiwhMCk7aWYoYylyZXR1cm4gYyhuLCEwKTt2YXIgdD1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIituKyInIik7dGhyb3cgdC5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIix0fXZhciBvPV9bbl09e2V4cG9ydHM6e319O3Jbbl1bMF0uY2FsbChvLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIGE9cltuXVsxXVtlXTtyZXR1cm4gbChhfHxlKX0sbyxvLmV4cG9ydHMsaSxyLF8scyl9cmV0dXJuIF9bbl0uZXhwb3J0c31mb3IodmFyIGM9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsZT0wO2U8cy5sZW5ndGg7ZSsrKWwoc1tlXSk7cmV0dXJuIGx9KHsxOltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiY3NzZmlsdGVyIikuRmlsdGVyQ1NTLG09ZSgiLi91dGlsIik7ZnVuY3Rpb24gbygpe3JldHVybnthOlsidGFyZ2V0IiwiaHJlZiIsInRpdGxlIl0sYWJicjpbInRpdGxlIl0sYWRkcmVzczpbXSxhcmVhOlsic2hhcGUiLCJjb29yZHMiLCJocmVmIiwiYWx0Il0sYXJ0aWNsZTpbXSxhc2lkZTpbXSxhdWRpbzpbImF1dG9wbGF5IiwiY29udHJvbHMiLCJsb29wIiwicHJlbG9hZCIsInNyYyJdLGI6W10sYmRpOlsiZGlyIl0sYmRvOlsiZGlyIl0sYmlnOltdLGJsb2NrcXVvdGU6WyJjaXRlIl0sYnI6W10sY2FwdGlvbjpbXSxjZW50ZXI6W10sY2l0ZTpbXSxjb2RlOltdLGNvbDpbImFsaWduIiwidmFsaWduIiwic3BhbiIsIndpZHRoIl0sY29sZ3JvdXA6WyJhbGlnbiIsInZhbGlnbiIsInNwYW4iLCJ3aWR0aCJdLGRkOltdLGRlbDpbImRhdGV0aW1lIl0sZGV0YWlsczpbIm9wZW4iXSxkaXY6W10sZGw6W10sZHQ6W10sZW06W10sZm9udDpbImNvbG9yIiwic2l6ZSIsImZhY2UiXSxmb290ZXI6W10saDE6W10saDI6W10saDM6W10saDQ6W10saDU6W10saDY6W10saGVhZGVyOltdLGhyOltdLGk6W10saW1nOlsic3JjIiwiYWx0IiwidGl0bGUiLCJ3aWR0aCIsImhlaWdodCJdLGluczpbImRhdGV0aW1lIl0sbGk6W10sbWFyazpbXSxuYXY6W10sb2w6W10scDpbXSxwcmU6W10sczpbXSxzZWN0aW9uOltdLHNtYWxsOltdLHNwYW46W10sc3ViOltdLHN1cDpbXSxzdHJvbmc6W10sdGFibGU6WyJ3aWR0aCIsImJvcmRlciIsImFsaWduIiwidmFsaWduIl0sdGJvZHk6WyJhbGlnbiIsInZhbGlnbiJdLHRkOlsid2lkdGgiLCJyb3dzcGFuIiwiY29sc3BhbiIsImFsaWduIiwidmFsaWduIl0sdGZvb3Q6WyJhbGlnbiIsInZhbGlnbiJdLHRoOlsid2lkdGgiLCJyb3dzcGFuIiwiY29sc3BhbiIsImFsaWduIiwidmFsaWduIl0sdGhlYWQ6WyJhbGlnbiIsInZhbGlnbiJdLHRyOlsicm93c3BhbiIsImFsaWduIiwidmFsaWduIl0sdHQ6W10sdTpbXSx1bDpbXSx2aWRlbzpbImF1dG9wbGF5IiwiY29udHJvbHMiLCJsb29wIiwicHJlbG9hZCIsInNyYyIsImhlaWdodCIsIndpZHRoIl19fXZhciBpPW5ldyB0O2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUucmVwbGFjZShfLCImbHQ7IikucmVwbGFjZShzLCImZ3Q7Iil9dmFyIF89LzwvZyxzPS8+L2csbD0vIi9nLGM9LyZxdW90Oy9nLHU9LyYjKFthLXpBLVowLTldKik7Py9naW0sZz0vJmNvbG9uOz8vZ2ltLGQ9LyZuZXdsaW5lOz8vZ2ltLGg9LygoalxzKmFccyp2XHMqYXx2XHMqYnxsXHMqaVxzKnZccyplKVxzKnNccypjXHMqclxzKmlccypwXHMqdFxzKnxtXHMqb1xzKmNccypoXHMqYSlcOi9naSxwPS9lXHMqeFxzKnBccypyXHMqZVxzKnNccypzXHMqaVxzKm9ccypuXHMqXCguKi9naSx3PS91XHMqclxzKmxccypcKC4qL2dpO2Z1bmN0aW9uIGYoZSl7cmV0dXJuIGUucmVwbGFjZShsLCImcXVvdDsiKX1mdW5jdGlvbiBiKGUpe3JldHVybiBlLnJlcGxhY2UoYywnIicpfWZ1bmN0aW9uIGsoZSl7cmV0dXJuIGUucmVwbGFjZSh1LGZ1bmN0aW9uKGUsYSl7cmV0dXJuIngiPT09YVswXXx8IlgiPT09YVswXT9TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGEuc3Vic3RyKDEpLDE2KSk6U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhLDEwKSl9KX1mdW5jdGlvbiB5KGUpe3JldHVybiBlLnJlcGxhY2UoZywiOiIpLnJlcGxhY2UoZCwiICIpfWZ1bmN0aW9uIHYoZSl7Zm9yKHZhciBhPSIiLG49MCx0PWUubGVuZ3RoO248dDtuKyspYSs9ZS5jaGFyQ29kZUF0KG4pPDMyPyIgIjplLmNoYXJBdChuKTtyZXR1cm4gbS50cmltKGEpfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIGU9dihlPXkoZT1rKGU9YihlKSkpKX1mdW5jdGlvbiBqKGUpe3JldHVybiBlPXIoZT1mKGUpKX12YXIgej0vPCEtLVtcc1xTXSo/LS0+L2c7bi53aGl0ZUxpc3Q9bygpLG4uZ2V0RGVmYXVsdFdoaXRlTGlzdD1vLG4ub25UYWc9ZnVuY3Rpb24oZSxhLG4pe30sbi5vbklnbm9yZVRhZz1mdW5jdGlvbihlLGEsbil7fSxuLm9uVGFnQXR0cj1mdW5jdGlvbihlLGEsbil7fSxuLm9uSWdub3JlVGFnQXR0cj1mdW5jdGlvbihlLGEsbil7fSxuLnNhZmVBdHRyVmFsdWU9ZnVuY3Rpb24oZSxhLG4sdCl7aWYodD10fHxpLG49eChuKSwiaHJlZiI9PT1hfHwic3JjIj09PWEpe2lmKCIjIj09PShuPW0udHJpbShuKSkpcmV0dXJuIiMiO2lmKCJodHRwOi8vIiE9PW4uc3Vic3RyKDAsNykmJiJodHRwczovLyIhPT1uLnN1YnN0cigwLDgpJiYibWFpbHRvOiIhPT1uLnN1YnN0cigwLDcpJiYiIyIhPT1uWzBdJiYiLyIhPT1uWzBdKXJldHVybiIifWVsc2UgaWYoImJhY2tncm91bmQiPT09YSl7aWYoaC5sYXN0SW5kZXg9MCxoLnRlc3QobikpcmV0dXJuIiJ9ZWxzZSBpZigic3R5bGUiPT09YSl7aWYocC5sYXN0SW5kZXg9MCxwLnRlc3QobikpcmV0dXJuIiI7aWYody5sYXN0SW5kZXg9MCx3LnRlc3QobikmJihoLmxhc3RJbmRleD0wLGgudGVzdChuKSkpcmV0dXJuIiI7bj10LnByb2Nlc3Mobil9cmV0dXJuIG49aihuKX0sbi5lc2NhcGVIdG1sPXIsbi5lc2NhcGVRdW90ZT1mLG4udW5lc2NhcGVRdW90ZT1iLG4uZXNjYXBlSHRtbEVudGl0aWVzPWssbi5lc2NhcGVEYW5nZXJIdG1sNUVudGl0aWVzPXksbi5jbGVhck5vblByaW50YWJsZUNoYXJhY3Rlcj12LG4uZnJpZW5kbHlBdHRyVmFsdWU9eCxuLmVzY2FwZUF0dHJWYWx1ZT1qLG4ub25JZ25vcmVUYWdTdHJpcEFsbD1mdW5jdGlvbigpe3JldHVybiIifSxuLlN0cmlwVGFnQm9keT1mdW5jdGlvbihyLF8peyJmdW5jdGlvbiIhPXR5cGVvZiBfJiYoXz1mdW5jdGlvbigpe30pO3ZhciBzPSFBcnJheS5pc0FycmF5KHIpLGw9W10sYz0hMTtyZXR1cm57b25JZ25vcmVUYWc6ZnVuY3Rpb24oZSxhLG4pe2lmKGk9ZSxzfHwtMSE9PW0uaW5kZXhPZihyLGkpKXtpZihuLmlzQ2xvc2luZyl7dmFyIHQ9IlsvcmVtb3ZlZF0iLG89bi5wb3NpdGlvbit0Lmxlbmd0aDtyZXR1cm4gbC5wdXNoKFshMSE9PWM/YzpuLnBvc2l0aW9uLG9dKSxjPSExLHR9cmV0dXJuIGM9Y3x8bi5wb3NpdGlvbiwiW3JlbW92ZWRdIn1yZXR1cm4gXyhlLGEsbik7dmFyIGl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgbj0iIix0PTA7cmV0dXJuIG0uZm9yRWFjaChsLGZ1bmN0aW9uKGUpe24rPWEuc2xpY2UodCxlWzBdKSx0PWVbMV19KSxuKz1hLnNsaWNlKHQpfX19LG4uc3RyaXBDb21tZW50VGFnPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoeiwiIil9LG4uc3RyaXBCbGFua0NoYXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiIpLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgYT1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDEyNyE9PWEmJighKGE8PTMxKXx8KDEwPT09YXx8MTM9PT1hKSl9KS5qb2luKCIiKX0sbi5jc3NGaWx0ZXI9aX0seyIuL3V0aWwiOjQsY3NzZmlsdGVyOjh9XSwyOltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL3BhcnNlciIpLGk9ZSgiLi94c3MiKTtmb3IodmFyIHIgaW4obj1hLmV4cG9ydHM9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gbmV3IGkoYSkucHJvY2VzcyhlKX0pLkZpbHRlclhTUz1pLHQpbltyXT10W3JdO2Zvcih2YXIgciBpbiBvKW5bcl09b1tyXTsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5maWx0ZXJYU1M9YS5leHBvcnRzKX0seyIuL2RlZmF1bHQiOjEsIi4vcGFyc2VyIjozLCIuL3hzcyI6NX1dLDM6W2Z1bmN0aW9uKGUsYSxuKXt2YXIgZD1lKCIuL3V0aWwiKTt2YXIgYz0vW15hLXpBLVowLTlfOlwuXC1dL2dpbTtmdW5jdGlvbiBtKGUpe3JldHVybiciJz09PShhPWUpWzBdJiYnIic9PT1hW2EubGVuZ3RoLTFdfHwiJyI9PT1hWzBdJiYiJyI9PT1hW2EubGVuZ3RoLTFdP2Uuc3Vic3RyKDEsZS5sZW5ndGgtMik6ZTt2YXIgYX1uLnBhcnNlVGFnPWZ1bmN0aW9uKGUsYSxuKXtmb3IodmFyIHQsbyxpLHI9IiIsXz0wLHM9ITEsbD0hMSxjPTAsbT1lLmxlbmd0aCx1PSIiLGM9MDtjPG07YysrKXt2YXIgZz1lLmNoYXJBdChjKTtpZighMT09PXMpe2lmKCI8Ij09PWcpe3M9Yztjb250aW51ZX19ZWxzZSBpZighMT09PWwpe2lmKCI8Ij09PWcpe3IrPW4oZS5zbGljZShfLGMpKSxfPXM9Yztjb250aW51ZX1pZigiPiI9PT1nKXtyKz1uKGUuc2xpY2UoXyxzKSksdT1lLnNsaWNlKHMsYysxKSxvPXZvaWQgMCxpPSh0PXUpLmluZGV4T2YoIiAiKSxvPS0xPT09aT90LnNsaWNlKDEsLTEpOnQuc2xpY2UoMSxpKzEpLCIvIj09PShvPWQudHJpbShvKS50b0xvd2VyQ2FzZSgpKS5zbGljZSgwLDEpJiYobz1vLnNsaWNlKDEpKSwiLyI9PT1vLnNsaWNlKC0xKSYmKG89by5zbGljZSgwLC0xKSkscis9YShzLHIubGVuZ3RoLG8sdSwiPC8iPT09dS5zbGljZSgwLDIpKSxfPWMrMSxzPSExO2NvbnRpbnVlfWlmKCgnIic9PT1nfHwiJyI9PT1nKSYmIj0iPT09ZS5jaGFyQXQoYy0xKSl7bD1nO2NvbnRpbnVlfX1lbHNlIGlmKGc9PT1sKXtsPSExO2NvbnRpbnVlfX1yZXR1cm4gXzxlLmxlbmd0aCYmKHIrPW4oZS5zdWJzdHIoXykpKSxyfSxuLnBhcnNlQXR0cj1mdW5jdGlvbihlLHQpe3ZhciBhPTAsbz1bXSxuPSExLGk9ZS5sZW5ndGg7ZnVuY3Rpb24gcihlLGEpe3ZhciBuOyhlPShlPWQudHJpbShlKSkucmVwbGFjZShjLCIiKS50b0xvd2VyQ2FzZSgpKS5sZW5ndGg8MXx8KG49dChlLGF8fCIiKSkmJm8ucHVzaChuKX1mb3IodmFyIF89MDtfPGk7XysrKXt2YXIgcyxsPWUuY2hhckF0KF8pO2lmKCExIT09bnx8Ij0iIT09bClpZighMT09PW58fF8hPT1hfHwnIichPT1sJiYiJyIhPT1sfHwiPSIhPT1lLmNoYXJBdChfLTEpKXtpZigiICI9PT1sKXtpZighMT09PW4pe2lmKC0xPT09KHM9ZnVuY3Rpb24oZSxhKXtmb3IoO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbj1lW2FdO2lmKCIgIiE9PW4pcmV0dXJuIj0iPT09bj9hOi0xfX0oZSxfKSkpe3IoZC50cmltKGUuc2xpY2UoYSxfKSkpLG49ITEsYT1fKzE7Y29udGludWV9Xz1zLTE7Y29udGludWV9aWYoLTEhPT0ocz1mdW5jdGlvbihlLGEpe2Zvcig7MDxhO2EtLSl7dmFyIG49ZVthXTtpZigiICIhPT1uKXJldHVybiI9Ij09PW4/YTotMX19KGUsXy0xKSkpY29udGludWU7cihuLG0oZC50cmltKGUuc2xpY2UoYSxfKSkpKSxuPSExLGE9XysxfX1lbHNle2lmKC0xPT09KHM9ZS5pbmRleE9mKGwsXysxKSkpYnJlYWs7cihuLGQudHJpbShlLnNsaWNlKGErMSxzKSkpLG49ITEsYT0oXz1zKSsxfWVsc2Ugbj1lLnNsaWNlKGEsXyksYT1fKzF9cmV0dXJuIGE8ZS5sZW5ndGgmJighMT09PW4/cihlLnNsaWNlKGEpKTpyKG4sbShkLnRyaW0oZS5zbGljZShhKSkpKSksZC50cmltKG8uam9pbigiICIpKX19LHsiLi91dGlsIjo0fV0sNDpbZnVuY3Rpb24oZSxhLG4pe2EuZXhwb3J0cz17aW5kZXhPZjpmdW5jdGlvbihlLGEpe3ZhciBuLHQ7aWYoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpcmV0dXJuIGUuaW5kZXhPZihhKTtmb3Iobj0wLHQ9ZS5sZW5ndGg7bjx0O24rKylpZihlW25dPT09YSlyZXR1cm4gbjtyZXR1cm4tMX0sZm9yRWFjaDpmdW5jdGlvbihlLGEsbil7dmFyIHQsbztpZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaClyZXR1cm4gZS5mb3JFYWNoKGEsbik7Zm9yKHQ9MCxvPWUubGVuZ3RoO3Q8bzt0KyspYS5jYWxsKG4sZVt0XSx0LGUpfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC8oXlxzKil8KFxzKiQpL2csIiIpfX19LHt9XSw1OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiY3NzZmlsdGVyIikuRmlsdGVyQ1NTLG89ZSgiLi9kZWZhdWx0IiksaT1lKCIuL3BhcnNlciIpLHI9aS5wYXJzZVRhZyxmPWkucGFyc2VBdHRyLGI9ZSgiLi91dGlsIik7ZnVuY3Rpb24gayhlKXtyZXR1cm4gbnVsbD09ZX1mdW5jdGlvbiBfKGUpeyhlPWV8fHt9KS5zdHJpcElnbm9yZVRhZyYmKGUub25JZ25vcmVUYWcmJmNvbnNvbGUuZXJyb3IoJ05vdGVzOiBjYW5ub3QgdXNlIHRoZXNlIHR3byBvcHRpb25zICJzdHJpcElnbm9yZVRhZyIgYW5kICJvbklnbm9yZVRhZyIgYXQgdGhlIHNhbWUgdGltZScpLGUub25JZ25vcmVUYWc9by5vbklnbm9yZVRhZ1N0cmlwQWxsKSxlLndoaXRlTGlzdD1lLndoaXRlTGlzdHx8by53aGl0ZUxpc3QsZS5vblRhZz1lLm9uVGFnfHxvLm9uVGFnLGUub25UYWdBdHRyPWUub25UYWdBdHRyfHxvLm9uVGFnQXR0cixlLm9uSWdub3JlVGFnPWUub25JZ25vcmVUYWd8fG8ub25JZ25vcmVUYWcsZS5vbklnbm9yZVRhZ0F0dHI9ZS5vbklnbm9yZVRhZ0F0dHJ8fG8ub25JZ25vcmVUYWdBdHRyLGUuc2FmZUF0dHJWYWx1ZT1lLnNhZmVBdHRyVmFsdWV8fG8uc2FmZUF0dHJWYWx1ZSxlLmVzY2FwZUh0bWw9ZS5lc2NhcGVIdG1sfHxvLmVzY2FwZUh0bWwsZS5jc3M9ZS5jc3N8fHt9LHRoaXMub3B0aW9ucz1lLHRoaXMuY3NzRmlsdGVyPW5ldyB0KGUuY3NzKX1fLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKGUpe2lmKCEoZT0oZT1lfHwiIikudG9TdHJpbmcoKSkpcmV0dXJuIiI7dmFyIGE9dGhpcy5vcHRpb25zLGM9YS53aGl0ZUxpc3QsbT1hLm9uVGFnLHU9YS5vbklnbm9yZVRhZyxnPWEub25UYWdBdHRyLGQ9YS5vbklnbm9yZVRhZ0F0dHIsaD1hLnNhZmVBdHRyVmFsdWUscD1hLmVzY2FwZUh0bWwsdz10aGlzLmNzc0ZpbHRlcjthLnN0cmlwQmxhbmtDaGFyJiYoZT1vLnN0cmlwQmxhbmtDaGFyKGUpKSxhLmFsbG93Q29tbWVudFRhZ3x8KGU9by5zdHJpcENvbW1lbnRUYWcoZSkpO3ZhciBuPSExO2Euc3RyaXBJZ25vcmVUYWdCb2R5JiYodT0obj1vLlN0cmlwVGFnQm9keShhLnN0cmlwSWdub3JlVGFnQm9keSx1KSkub25JZ25vcmVUYWcpO3ZhciB0PXIoZSxmdW5jdGlvbihlLGEsbyxuLHQpe3ZhciBpPXtzb3VyY2VQb3NpdGlvbjplLHBvc2l0aW9uOmEsaXNDbG9zaW5nOnQsaXNXaGl0ZTpvIGluIGN9LHI9bShvLG4saSk7aWYoIWsocikpcmV0dXJuIHI7aWYoaS5pc1doaXRlKXtpZihpLmlzQ2xvc2luZylyZXR1cm4iPC8iK28rIj4iO3ZhciBfPWZ1bmN0aW9uKGUpe3ZhciBhPWUuaW5kZXhPZigiICIpO2lmKC0xPT09YSlyZXR1cm57aHRtbDoiIixjbG9zaW5nOiIvIj09PWVbZS5sZW5ndGgtMl19O3ZhciBuPSIvIj09PShlPWIudHJpbShlLnNsaWNlKGErMSwtMSkpKVtlLmxlbmd0aC0xXTtyZXR1cm4gbiYmKGU9Yi50cmltKGUuc2xpY2UoMCwtMSkpKSx7aHRtbDplLGNsb3Npbmc6bn19KG4pLHM9Y1tvXSxsPWYoXy5odG1sLGZ1bmN0aW9uKGUsYSl7dmFyIG49LTEhPT1iLmluZGV4T2YocyxlKSx0PWcobyxlLGEsbik7cmV0dXJuIGsodCk/bj8oYT1oKG8sZSxhLHcpKT9lKyc9IicrYSsnIic6ZTprKHQ9ZChvLGUsYSxuKSk/dm9pZCAwOnQ6dH0pLG49IjwiK287cmV0dXJuIGwmJihuKz0iICIrbCksXy5jbG9zaW5nJiYobis9IiAvIiksbis9Ij4ifXJldHVybiBrKHI9dShvLG4saSkpP3Aobik6cn0scCk7cmV0dXJuIG4mJih0PW4ucmVtb3ZlKHQpKSx0fSxhLmV4cG9ydHM9X30seyIuL2RlZmF1bHQiOjEsIi4vcGFyc2VyIjozLCIuL3V0aWwiOjQsY3NzZmlsdGVyOjh9XSw2OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL3BhcnNlciIpO2UoIi4vdXRpbCIpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIG51bGw9PWV9ZnVuY3Rpb24gaShlKXsoZT1lfHx7fSkud2hpdGVMaXN0PWUud2hpdGVMaXN0fHx0LndoaXRlTGlzdCxlLm9uQXR0cj1lLm9uQXR0cnx8dC5vbkF0dHIsZS5vbklnbm9yZUF0dHI9ZS5vbklnbm9yZUF0dHJ8fHQub25JZ25vcmVBdHRyLHRoaXMub3B0aW9ucz1lfWkucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24oZSl7aWYoIShlPShlPWV8fCIiKS50b1N0cmluZygpKSlyZXR1cm4iIjt2YXIgYT10aGlzLm9wdGlvbnMsbD1hLndoaXRlTGlzdCxjPWEub25BdHRyLG09YS5vbklnbm9yZUF0dHI7cmV0dXJuIG8oZSxmdW5jdGlvbihlLGEsbix0LG8pe3ZhciBpPWxbbl0scj0hMTshMD09PWk/cj1pOiJmdW5jdGlvbiI9PXR5cGVvZiBpP3I9aSh0KTppIGluc3RhbmNlb2YgUmVnRXhwJiYocj1pLnRlc3QodCkpLCEwIT09ciYmKHI9ITEpO3ZhciBfLHM9e3Bvc2l0aW9uOmEsc291cmNlUG9zaXRpb246ZSxzb3VyY2U6byxpc1doaXRlOnJ9O3JldHVybiByP3UoXz1jKG4sdCxzKSk/bisiOiIrdDpfOnUoXz1tKG4sdCxzKSk/dm9pZCAwOl99KX0sYS5leHBvcnRzPWl9LHsiLi9kZWZhdWx0Ijo3LCIuL3BhcnNlciI6OSwiLi91dGlsIjoxMH1dLDc6W2Z1bmN0aW9uKGUsYSxuKXtmdW5jdGlvbiB0KCl7dmFyIGU9eyJhbGlnbi1jb250ZW50IjohMSwiYWxpZ24taXRlbXMiOiExLCJhbGlnbi1zZWxmIjohMSwiYWxpZ25tZW50LWFkanVzdCI6ITEsImFsaWdubWVudC1iYXNlbGluZSI6ITEsYWxsOiExLCJhbmNob3ItcG9pbnQiOiExLGFuaW1hdGlvbjohMSwiYW5pbWF0aW9uLWRlbGF5IjohMSwiYW5pbWF0aW9uLWRpcmVjdGlvbiI6ITEsImFuaW1hdGlvbi1kdXJhdGlvbiI6ITEsImFuaW1hdGlvbi1maWxsLW1vZGUiOiExLCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50IjohMSwiYW5pbWF0aW9uLW5hbWUiOiExLCJhbmltYXRpb24tcGxheS1zdGF0ZSI6ITEsImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24iOiExLGF6aW11dGg6ITEsImJhY2tmYWNlLXZpc2liaWxpdHkiOiExLGJhY2tncm91bmQ6ITAsImJhY2tncm91bmQtYXR0YWNobWVudCI6ITAsImJhY2tncm91bmQtY2xpcCI6ITAsImJhY2tncm91bmQtY29sb3IiOiEwLCJiYWNrZ3JvdW5kLWltYWdlIjohMCwiYmFja2dyb3VuZC1vcmlnaW4iOiEwLCJiYWNrZ3JvdW5kLXBvc2l0aW9uIjohMCwiYmFja2dyb3VuZC1yZXBlYXQiOiEwLCJiYWNrZ3JvdW5kLXNpemUiOiEwLCJiYXNlbGluZS1zaGlmdCI6ITEsYmluZGluZzohMSxibGVlZDohMSwiYm9va21hcmstbGFiZWwiOiExLCJib29rbWFyay1sZXZlbCI6ITEsImJvb2ttYXJrLXN0YXRlIjohMSxib3JkZXI6ITAsImJvcmRlci1ib3R0b20iOiEwLCJib3JkZXItYm90dG9tLWNvbG9yIjohMCwiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyI6ITAsImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIjohMCwiYm9yZGVyLWJvdHRvbS1zdHlsZSI6ITAsImJvcmRlci1ib3R0b20td2lkdGgiOiEwLCJib3JkZXItY29sbGFwc2UiOiEwLCJib3JkZXItY29sb3IiOiEwLCJib3JkZXItaW1hZ2UiOiEwLCJib3JkZXItaW1hZ2Utb3V0c2V0IjohMCwiYm9yZGVyLWltYWdlLXJlcGVhdCI6ITAsImJvcmRlci1pbWFnZS1zbGljZSI6ITAsImJvcmRlci1pbWFnZS1zb3VyY2UiOiEwLCJib3JkZXItaW1hZ2Utd2lkdGgiOiEwLCJib3JkZXItbGVmdCI6ITAsImJvcmRlci1sZWZ0LWNvbG9yIjohMCwiYm9yZGVyLWxlZnQtc3R5bGUiOiEwLCJib3JkZXItbGVmdC13aWR0aCI6ITAsImJvcmRlci1yYWRpdXMiOiEwLCJib3JkZXItcmlnaHQiOiEwLCJib3JkZXItcmlnaHQtY29sb3IiOiEwLCJib3JkZXItcmlnaHQtc3R5bGUiOiEwLCJib3JkZXItcmlnaHQtd2lkdGgiOiEwLCJib3JkZXItc3BhY2luZyI6ITAsImJvcmRlci1zdHlsZSI6ITAsImJvcmRlci10b3AiOiEwLCJib3JkZXItdG9wLWNvbG9yIjohMCwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyI6ITAsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIjohMCwiYm9yZGVyLXRvcC1zdHlsZSI6ITAsImJvcmRlci10b3Atd2lkdGgiOiEwLCJib3JkZXItd2lkdGgiOiEwLGJvdHRvbTohMSwiYm94LWRlY29yYXRpb24tYnJlYWsiOiEwLCJib3gtc2hhZG93IjohMCwiYm94LXNpemluZyI6ITAsImJveC1zbmFwIjohMCwiYm94LXN1cHByZXNzIjohMCwiYnJlYWstYWZ0ZXIiOiEwLCJicmVhay1iZWZvcmUiOiEwLCJicmVhay1pbnNpZGUiOiEwLCJjYXB0aW9uLXNpZGUiOiExLGNoYWluczohMSxjbGVhcjohMCxjbGlwOiExLCJjbGlwLXBhdGgiOiExLCJjbGlwLXJ1bGUiOiExLGNvbG9yOiEwLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiOiEwLCJjb2x1bW4tY291bnQiOiExLCJjb2x1bW4tZmlsbCI6ITEsImNvbHVtbi1nYXAiOiExLCJjb2x1bW4tcnVsZSI6ITEsImNvbHVtbi1ydWxlLWNvbG9yIjohMSwiY29sdW1uLXJ1bGUtc3R5bGUiOiExLCJjb2x1bW4tcnVsZS13aWR0aCI6ITEsImNvbHVtbi1zcGFuIjohMSwiY29sdW1uLXdpZHRoIjohMSxjb2x1bW5zOiExLGNvbnRhaW46ITEsY29udGVudDohMSwiY291bnRlci1pbmNyZW1lbnQiOiExLCJjb3VudGVyLXJlc2V0IjohMSwiY291bnRlci1zZXQiOiExLGNyb3A6ITEsY3VlOiExLCJjdWUtYWZ0ZXIiOiExLCJjdWUtYmVmb3JlIjohMSxjdXJzb3I6ITEsZGlyZWN0aW9uOiExLGRpc3BsYXk6ITAsImRpc3BsYXktaW5zaWRlIjohMCwiZGlzcGxheS1saXN0IjohMCwiZGlzcGxheS1vdXRzaWRlIjohMCwiZG9taW5hbnQtYmFzZWxpbmUiOiExLGVsZXZhdGlvbjohMSwiZW1wdHktY2VsbHMiOiExLGZpbHRlcjohMSxmbGV4OiExLCJmbGV4LWJhc2lzIjohMSwiZmxleC1kaXJlY3Rpb24iOiExLCJmbGV4LWZsb3ciOiExLCJmbGV4LWdyb3ciOiExLCJmbGV4LXNocmluayI6ITEsImZsZXgtd3JhcCI6ITEsZmxvYXQ6ITEsImZsb2F0LW9mZnNldCI6ITEsImZsb29kLWNvbG9yIjohMSwiZmxvb2Qtb3BhY2l0eSI6ITEsImZsb3ctZnJvbSI6ITEsImZsb3ctaW50byI6ITEsZm9udDohMCwiZm9udC1mYW1pbHkiOiEwLCJmb250LWZlYXR1cmUtc2V0dGluZ3MiOiEwLCJmb250LWtlcm5pbmciOiEwLCJmb250LWxhbmd1YWdlLW92ZXJyaWRlIjohMCwiZm9udC1zaXplIjohMCwiZm9udC1zaXplLWFkanVzdCI6ITAsImZvbnQtc3RyZXRjaCI6ITAsImZvbnQtc3R5bGUiOiEwLCJmb250LXN5bnRoZXNpcyI6ITAsImZvbnQtdmFyaWFudCI6ITAsImZvbnQtdmFyaWFudC1hbHRlcm5hdGVzIjohMCwiZm9udC12YXJpYW50LWNhcHMiOiEwLCJmb250LXZhcmlhbnQtZWFzdC1hc2lhbiI6ITAsImZvbnQtdmFyaWFudC1saWdhdHVyZXMiOiEwLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6ITAsImZvbnQtdmFyaWFudC1wb3NpdGlvbiI6ITAsImZvbnQtd2VpZ2h0IjohMCxncmlkOiExLCJncmlkLWFyZWEiOiExLCJncmlkLWF1dG8tY29sdW1ucyI6ITEsImdyaWQtYXV0by1mbG93IjohMSwiZ3JpZC1hdXRvLXJvd3MiOiExLCJncmlkLWNvbHVtbiI6ITEsImdyaWQtY29sdW1uLWVuZCI6ITEsImdyaWQtY29sdW1uLXN0YXJ0IjohMSwiZ3JpZC1yb3ciOiExLCJncmlkLXJvdy1lbmQiOiExLCJncmlkLXJvdy1zdGFydCI6ITEsImdyaWQtdGVtcGxhdGUiOiExLCJncmlkLXRlbXBsYXRlLWFyZWFzIjohMSwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIjohMSwiZ3JpZC10ZW1wbGF0ZS1yb3dzIjohMSwiaGFuZ2luZy1wdW5jdHVhdGlvbiI6ITEsaGVpZ2h0OiEwLGh5cGhlbnM6ITEsaWNvbjohMSwiaW1hZ2Utb3JpZW50YXRpb24iOiExLCJpbWFnZS1yZXNvbHV0aW9uIjohMSwiaW1lLW1vZGUiOiExLCJpbml0aWFsLWxldHRlcnMiOiExLCJpbmxpbmUtYm94LWFsaWduIjohMSwianVzdGlmeS1jb250ZW50IjohMSwianVzdGlmeS1pdGVtcyI6ITEsImp1c3RpZnktc2VsZiI6ITEsbGVmdDohMSwibGV0dGVyLXNwYWNpbmciOiEwLCJsaWdodGluZy1jb2xvciI6ITAsImxpbmUtYm94LWNvbnRhaW4iOiExLCJsaW5lLWJyZWFrIjohMSwibGluZS1ncmlkIjohMSwibGluZS1oZWlnaHQiOiExLCJsaW5lLXNuYXAiOiExLCJsaW5lLXN0YWNraW5nIjohMSwibGluZS1zdGFja2luZy1ydWJ5IjohMSwibGluZS1zdGFja2luZy1zaGlmdCI6ITEsImxpbmUtc3RhY2tpbmctc3RyYXRlZ3kiOiExLCJsaXN0LXN0eWxlIjohMCwibGlzdC1zdHlsZS1pbWFnZSI6ITAsImxpc3Qtc3R5bGUtcG9zaXRpb24iOiEwLCJsaXN0LXN0eWxlLXR5cGUiOiEwLG1hcmdpbjohMCwibWFyZ2luLWJvdHRvbSI6ITAsIm1hcmdpbi1sZWZ0IjohMCwibWFyZ2luLXJpZ2h0IjohMCwibWFyZ2luLXRvcCI6ITAsIm1hcmtlci1vZmZzZXQiOiExLCJtYXJrZXItc2lkZSI6ITEsbWFya3M6ITEsbWFzazohMSwibWFzay1ib3giOiExLCJtYXNrLWJveC1vdXRzZXQiOiExLCJtYXNrLWJveC1yZXBlYXQiOiExLCJtYXNrLWJveC1zbGljZSI6ITEsIm1hc2stYm94LXNvdXJjZSI6ITEsIm1hc2stYm94LXdpZHRoIjohMSwibWFzay1jbGlwIjohMSwibWFzay1pbWFnZSI6ITEsIm1hc2stb3JpZ2luIjohMSwibWFzay1wb3NpdGlvbiI6ITEsIm1hc2stcmVwZWF0IjohMSwibWFzay1zaXplIjohMSwibWFzay1zb3VyY2UtdHlwZSI6ITEsIm1hc2stdHlwZSI6ITEsIm1heC1oZWlnaHQiOiEwLCJtYXgtbGluZXMiOiExLCJtYXgtd2lkdGgiOiEwLCJtaW4taGVpZ2h0IjohMCwibWluLXdpZHRoIjohMCwibW92ZS10byI6ITEsIm5hdi1kb3duIjohMSwibmF2LWluZGV4IjohMSwibmF2LWxlZnQiOiExLCJuYXYtcmlnaHQiOiExLCJuYXYtdXAiOiExLCJvYmplY3QtZml0IjohMSwib2JqZWN0LXBvc2l0aW9uIjohMSxvcGFjaXR5OiExLG9yZGVyOiExLG9ycGhhbnM6ITEsb3V0bGluZTohMSwib3V0bGluZS1jb2xvciI6ITEsIm91dGxpbmUtb2Zmc2V0IjohMSwib3V0bGluZS1zdHlsZSI6ITEsIm91dGxpbmUtd2lkdGgiOiExLG92ZXJmbG93OiExLCJvdmVyZmxvdy13cmFwIjohMSwib3ZlcmZsb3cteCI6ITEsIm92ZXJmbG93LXkiOiExLHBhZGRpbmc6ITAsInBhZGRpbmctYm90dG9tIjohMCwicGFkZGluZy1sZWZ0IjohMCwicGFkZGluZy1yaWdodCI6ITAsInBhZGRpbmctdG9wIjohMCxwYWdlOiExLCJwYWdlLWJyZWFrLWFmdGVyIjohMSwicGFnZS1icmVhay1iZWZvcmUiOiExLCJwYWdlLWJyZWFrLWluc2lkZSI6ITEsInBhZ2UtcG9saWN5IjohMSxwYXVzZTohMSwicGF1c2UtYWZ0ZXIiOiExLCJwYXVzZS1iZWZvcmUiOiExLHBlcnNwZWN0aXZlOiExLCJwZXJzcGVjdGl2ZS1vcmlnaW4iOiExLHBpdGNoOiExLCJwaXRjaC1yYW5nZSI6ITEsInBsYXktZHVyaW5nIjohMSxwb3NpdGlvbjohMSwicHJlc2VudGF0aW9uLWxldmVsIjohMSxxdW90ZXM6ITEsInJlZ2lvbi1mcmFnbWVudCI6ITEscmVzaXplOiExLHJlc3Q6ITEsInJlc3QtYWZ0ZXIiOiExLCJyZXN0LWJlZm9yZSI6ITEscmljaG5lc3M6ITEscmlnaHQ6ITEscm90YXRpb246ITEsInJvdGF0aW9uLXBvaW50IjohMSwicnVieS1hbGlnbiI6ITEsInJ1YnktbWVyZ2UiOiExLCJydWJ5LXBvc2l0aW9uIjohMSwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIjohMSwic2hhcGUtb3V0c2lkZSI6ITEsInNoYXBlLW1hcmdpbiI6ITEsc2l6ZTohMSxzcGVhazohMSwic3BlYWstYXMiOiExLCJzcGVhay1oZWFkZXIiOiExLCJzcGVhay1udW1lcmFsIjohMSwic3BlYWstcHVuY3R1YXRpb24iOiExLCJzcGVlY2gtcmF0ZSI6ITEsc3RyZXNzOiExLCJzdHJpbmctc2V0IjohMSwidGFiLXNpemUiOiExLCJ0YWJsZS1sYXlvdXQiOiExLCJ0ZXh0LWFsaWduIjohMCwidGV4dC1hbGlnbi1sYXN0IjohMCwidGV4dC1jb21iaW5lLXVwcmlnaHQiOiEwLCJ0ZXh0LWRlY29yYXRpb24iOiEwLCJ0ZXh0LWRlY29yYXRpb24tY29sb3IiOiEwLCJ0ZXh0LWRlY29yYXRpb24tbGluZSI6ITAsInRleHQtZGVjb3JhdGlvbi1za2lwIjohMCwidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjohMCwidGV4dC1lbXBoYXNpcyI6ITAsInRleHQtZW1waGFzaXMtY29sb3IiOiEwLCJ0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIjohMCwidGV4dC1lbXBoYXNpcy1zdHlsZSI6ITAsInRleHQtaGVpZ2h0IjohMCwidGV4dC1pbmRlbnQiOiEwLCJ0ZXh0LWp1c3RpZnkiOiEwLCJ0ZXh0LW9yaWVudGF0aW9uIjohMCwidGV4dC1vdmVyZmxvdyI6ITAsInRleHQtc2hhZG93IjohMCwidGV4dC1zcGFjZS1jb2xsYXBzZSI6ITAsInRleHQtdHJhbnNmb3JtIjohMCwidGV4dC11bmRlcmxpbmUtcG9zaXRpb24iOiEwLCJ0ZXh0LXdyYXAiOiEwLHRvcDohMSx0cmFuc2Zvcm06ITEsInRyYW5zZm9ybS1vcmlnaW4iOiExLCJ0cmFuc2Zvcm0tc3R5bGUiOiExLHRyYW5zaXRpb246ITEsInRyYW5zaXRpb24tZGVsYXkiOiExLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIjohMSwidHJhbnNpdGlvbi1wcm9wZXJ0eSI6ITEsInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIjohMSwidW5pY29kZS1iaWRpIjohMSwidmVydGljYWwtYWxpZ24iOiExLHZpc2liaWxpdHk6ITEsInZvaWNlLWJhbGFuY2UiOiExLCJ2b2ljZS1kdXJhdGlvbiI6ITEsInZvaWNlLWZhbWlseSI6ITEsInZvaWNlLXBpdGNoIjohMSwidm9pY2UtcmFuZ2UiOiExLCJ2b2ljZS1yYXRlIjohMSwidm9pY2Utc3RyZXNzIjohMSwidm9pY2Utdm9sdW1lIjohMSx2b2x1bWU6ITEsIndoaXRlLXNwYWNlIjohMSx3aWRvd3M6ITEsd2lkdGg6ITAsIndpbGwtY2hhbmdlIjohMSwid29yZC1icmVhayI6ITAsIndvcmQtc3BhY2luZyI6ITAsIndvcmQtd3JhcCI6ITAsIndyYXAtZmxvdyI6ITEsIndyYXAtdGhyb3VnaCI6ITEsIndyaXRpbmctbW9kZSI6ITEsInotaW5kZXgiOiExfTtyZXR1cm4gZX1uLndoaXRlTGlzdD10KCksbi5nZXREZWZhdWx0V2hpdGVMaXN0PXQsbi5vbkF0dHI9ZnVuY3Rpb24oZSxhLG4pe30sbi5vbklnbm9yZUF0dHI9ZnVuY3Rpb24oZSxhLG4pe319LHt9XSw4OltmdW5jdGlvbihlLGEsbil7dmFyIHQ9ZSgiLi9kZWZhdWx0Iiksbz1lKCIuL2NzcyIpO2Zvcih2YXIgaSBpbihuPWEuZXhwb3J0cz1mdW5jdGlvbihlLGEpe3JldHVybiBuZXcgbyhhKS5wcm9jZXNzKGUpfSkuRmlsdGVyQ1NTPW8sdCluW2ldPXRbaV07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuZmlsdGVyQ1NTPWEuZXhwb3J0cyl9LHsiLi9jc3MiOjYsIi4vZGVmYXVsdCI6N31dLDk6W2Z1bmN0aW9uKGUsYSxuKXt2YXIgbT1lKCIuL3V0aWwiKTthLmV4cG9ydHM9ZnVuY3Rpb24oaSxyKXsiOyIhPT0oaT1tLnRyaW1SaWdodChpKSlbaS5sZW5ndGgtMV0mJihpKz0iOyIpO3ZhciBlPWkubGVuZ3RoLF89ITEscz0wLGw9MCxjPSIiO2Z1bmN0aW9uIGEoKXt2YXIgZSxhLG4sdCxvO198fC0xIT09KGE9KGU9bS50cmltKGkuc2xpY2UocyxsKSkpLmluZGV4T2YoIjoiKSkmJihuPW0udHJpbShlLnNsaWNlKDAsYSkpLHQ9bS50cmltKGUuc2xpY2UoYSsxKSksIW58fChvPXIocyxjLmxlbmd0aCxuLHQsZSkpJiYoYys9bysiOyAiKSkscz1sKzF9Zm9yKDtsPGU7bCsrKXt2YXIgbj1pW2xdO2lmKCIvIj09PW4mJiIqIj09PWlbbCsxXSl7dmFyIHQ9aS5pbmRleE9mKCIqLyIsbCsyKTtpZigtMT09PXQpYnJlYWs7cz0obD10KzEpKzEsXz0hMX1lbHNlIigiPT09bj9fPSEwOiIpIj09PW4/Xz0hMToiOyI9PT1uP198fGEoKToiXG4iPT09biYmYSgpfXJldHVybiBtLnRyaW0oYyl9fSx7Ii4vdXRpbCI6MTB9XSwxMDpbZnVuY3Rpb24oZSxhLG4pe2EuZXhwb3J0cz17aW5kZXhPZjpmdW5jdGlvbihlLGEpe3ZhciBuLHQ7aWYoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpcmV0dXJuIGUuaW5kZXhPZihhKTtmb3Iobj0wLHQ9ZS5sZW5ndGg7bjx0O24rKylpZihlW25dPT09YSlyZXR1cm4gbjtyZXR1cm4tMX0sZm9yRWFjaDpmdW5jdGlvbihlLGEsbil7dmFyIHQsbztpZihBcnJheS5wcm90b3R5cGUuZm9yRWFjaClyZXR1cm4gZS5mb3JFYWNoKGEsbik7Zm9yKHQ9MCxvPWUubGVuZ3RoO3Q8bzt0KyspYS5jYWxsKG4sZVt0XSx0LGUpfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC8oXlxzKil8KFxzKiQpL2csIiIpfSx0cmltUmlnaHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbVJpZ2h0P2UudHJpbVJpZ2h0KCk6ZS5yZXBsYWNlKC8oXHMqJCkvZywiIil9fX0se31dfSx7fSxbMl0pLGRlZmluZSgicHJldHR5LXRleHQveHNzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD13aW5kb3cuZmlsdGVyWFNTfSksZGVmaW5lKCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyJdLGZ1bmN0aW9uKGUsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkRFRkFVTFRfTElTVD1lLmRlZmF1bHQ9dm9pZCAwO3ZhciB1PWZ1bmN0aW9uKGUsYSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLGEpe3ZhciBuPVtdLHQ9ITAsbz0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciByLF89ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShyPV8ubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhYXx8bi5sZW5ndGghPT1hKTt0PSEwKTt9Y2F0Y2goZSl7bz0hMCxpPWV9ZmluYWxseXt0cnl7IXQmJl8ucmV0dXJuJiZfLnJldHVybigpfWZpbmFsbHl7aWYobyl0aHJvdyBpfX1yZXR1cm4gbn0oZSxhKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIHQoZSxhKXtmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKyl7dmFyIHQ9YVtuXTt0LmVudW1lcmFibGU9dC5lbnVtZXJhYmxlfHwhMSx0LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdCYmKHQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQua2V5LHQpfX12YXIgZz0vKFteXFtdKykoXFsoW149XSspKD0oLiopKT9cXSk/LyxuPShmdW5jdGlvbihlLGEsbil7cmV0dXJuIGEmJnQoZS5wcm90b3R5cGUsYSksbiYmdChlLG4pLGV9KG8sW3trZXk6IndoaXRlTGlzdEZlYXR1cmUiLHZhbHVlOmZ1bmN0aW9uKGUsYSl7dGhpcy5fcmF3RmVhdHVyZXMucHVzaChbZSxhXSl9fSx7a2V5OiJkaXNhYmxlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9lbmFibGVkW2VdPSExLHRoaXMuX2NhY2hlPW51bGx9fSx7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuX2VuYWJsZWRbZV09ITAsdGhpcy5fY2FjaGU9bnVsbH19LHtrZXk6Il9idWlsZENhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBvPXRoaXMsYz17fSxtPXt9LGk9W107dGhpcy5fcmF3RmVhdHVyZXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYT11KGUsMiksbj1hWzBdLHQ9YVsxXTtvLl9lbmFibGVkW25dJiYodC5jdXN0b20/aS5wdXNoKHQuY3VzdG9tKTooInN0cmluZyI9PXR5cGVvZiB0JiYodD1bdF0pLCh0fHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgYSxuLHQsbyxpLHIsXz1lLnNwbGl0KCIuIikscz1fLnNoaWZ0KCksbD1nLmV4ZWMocyk7bCYmKG49KGE9dShsLDYpKVsxXSx0PWFbM10sbz1hWzVdLGNbbl09W10saT1tW25dPW1bbl18fHt9LDA8Xy5sZW5ndGgmJihpLmNsYXNzPShpLmNsYXNzfHxbXSkuY29uY2F0KF8pKSx0JiYocj1pW3RdPWlbdF18fFtdLG8/ci5wdXNoKG8pOmlbdF09WyIqIl0pKX0pKSl9KSx0aGlzLl9jYWNoZT17Y3VzdG9tOmksd2hpdGVMaXN0Ont0YWdMaXN0OmMsYXR0ckxpc3Q6bX19fX0se2tleToiX2Vuc3VyZUNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2NhY2hlfHx0aGlzLl9idWlsZENhY2hlKCl9fSx7a2V5OiJnZXRXaGl0ZUxpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Vuc3VyZUNhY2hlKCksdGhpcy5fY2FjaGUud2hpdGVMaXN0fX0se2tleToiZ2V0Q3VzdG9tIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbnN1cmVDYWNoZSgpLHRoaXMuX2NhY2hlLmN1c3RvbX19LHtrZXk6ImdldEFsbG93ZWRIcmVmU2NoZW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWxsb3dlZEhyZWZTY2hlbWVzfX0se2tleToiZ2V0QWxsb3dlZElmcmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FsbG93ZWRJZnJhbWVzfX1dKSxvKTtmdW5jdGlvbiBvKGEpe3ZhciBuPXRoaXM7IWZ1bmN0aW9uKGUsYSl7aWYoIShlIGluc3RhbmNlb2YgYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbyksdGhpcy5fZW5hYmxlZD17ZGVmYXVsdDohMH0sdGhpcy5fYWxsb3dlZEhyZWZTY2hlbWVzPWEmJmEuYWxsb3dlZEhyZWZTY2hlbWVzfHxbXSx0aGlzLl9hbGxvd2VkSWZyYW1lcz1hJiZhLmFsbG93ZWRJZnJhbWVzfHxbXSx0aGlzLl9yYXdGZWF0dXJlcz1bWyJkZWZhdWx0IixpXV0sdGhpcy5fY2FjaGU9bnVsbCxhJiZhLmZlYXR1cmVzJiZPYmplY3Qua2V5cyhhLmZlYXR1cmVzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2EuZmVhdHVyZXNbZV0mJihuLl9lbmFibGVkW2VdPSEwKX0pfWUuZGVmYXVsdD1uO3ZhciBpPWUuREVGQVVMVF9MSVNUPVsiYS5hdHRhY2htZW50IiwiYS5oYXNodGFnIiwiYS5tZW50aW9uIiwiYS5tZW50aW9uLWdyb3VwIiwiYS5vbmVib3giLCJhLiIrYS5JTkxJTkVfT05FQk9YX0NTU19DTEFTUywiYS4iK2EuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUywiYVtkYXRhLWJiY29kZV0iLCJhW25hbWVdIiwiYVtyZWw9bm9mb2xsb3ddIiwiYVtyZWw9dWdjXSIsImFbdGFyZ2V0PV9ibGFua10iLCJhW3RpdGxlXSIsImFiYnJbdGl0bGVdIiwiYXNpZGUucXVvdGUiLCJhc2lkZVtkYXRhLSpdIiwiYXVkaW8iLCJhdWRpb1tjb250cm9sc10iLCJhdWRpb1twcmVsb2FkXSIsImIiLCJiaWciLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkaXYiLCJkaXYucXVvdGUtY29udHJvbHMiLCJkaXYudGl0bGUiLCJkaXZbYWxpZ25dIiwiZGl2W2xhbmddIiwiZGl2W2RhdGEtKl0iLCJkaXZbZGlyXSIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImlmcmFtZSIsImlmcmFtZVtmcmFtZWJvcmRlcl0iLCJpZnJhbWVbaGVpZ2h0XSIsImlmcmFtZVttYXJnaW5oZWlnaHRdIiwiaWZyYW1lW21hcmdpbndpZHRoXSIsImlmcmFtZVt3aWR0aF0iLCJpZnJhbWVbYWxsb3dmdWxsc2NyZWVuXSIsImltZ1thbHRdIiwiaW1nW2hlaWdodF0iLCJpbWdbdGl0bGVdIiwiaW1nW3dpZHRoXSIsImlucyIsImtiZCIsImxpIiwib2wiLCJvbFtzdGFydF0iLCJwIiwicFtsYW5nXSIsInByZSIsInMiLCJzbWFsbCIsInNwYW5bbGFuZ10iLCJzcGFuLmV4Y2VycHQiLCJkaXYuZXhjZXJwdCIsImRpdi52aWRlby1jb250YWluZXIiLCJzcGFuLmhhc2h0YWciLCJzcGFuLm1lbnRpb24iLCJzdHJpa2UiLCJzdHJvbmciLCJzdWIiLCJzdXAiLCJzb3VyY2Vbc3JjXSIsInNvdXJjZVtkYXRhLW9yaWctc3JjXSIsInNvdXJjZVt0eXBlXSIsInRyYWNrIiwidHJhY2tbZGVmYXVsdF0iLCJ0cmFja1tsYWJlbF0iLCJ0cmFja1traW5kXSIsInRyYWNrW3NyY10iLCJ0cmFja1tzcmNsYW5nXSIsInVsIiwidmlkZW8iLCJ2aWRlb1tjb250cm9sc10iLCJ2aWRlb1tjb250cm9sc2xpc3RdIiwidmlkZW9bY3Jvc3NvcmlnaW5dIiwidmlkZW9baGVpZ2h0XSIsInZpZGVvW3Bvc3Rlcl0iLCJ2aWRlb1t3aWR0aF0iLCJ2aWRlb1tjb250cm9sc10iLCJ2aWRlb1twcmVsb2FkXSIsInJ1YnkiLCJydWJ5W2xhbmddIiwicmIiLCJyYltsYW5nXSIsInJwIiwicnQiLCJydFtsYW5nXSJdfSksZGVmaW5lKCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L3hzcyJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG0oZSxhKXtyZXR1cm4gYT9lKyc9Iicrbi5kZWZhdWx0LmVzY2FwZUF0dHJWYWx1ZShhKSsnIic6ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5lc2NhcGU9ZnVuY3Rpb24oZSl7e2lmKG51bGw9PT1lKXJldHVybiIiO2lmKCFlKXJldHVybiBlKyIifXJldHVybiBlPSIiK2Usby50ZXN0KGUpP2UucmVwbGFjZSh0LGkpOmV9LGUuaHJlZkFsbG93ZWQ9dSxlLnNhbml0aXplPWZ1bmN0aW9uKGUsXyl7aWYoIWUpcmV0dXJuIiI7ZT1lLnJlcGxhY2UoLzwoW15BLVphLXpcL1whXXwkKS9nLCImbHQ7JDEiKTt2YXIgcz1fLmdldFdoaXRlTGlzdCgpLGE9Xy5nZXRBbGxvd2VkSHJlZlNjaGVtZXMoKSxsPV8uZ2V0QWxsb3dlZElmcmFtZXMoKSxjPW51bGw7YSYmMDxhLmxlbmd0aCYmKGM9W25ldyBSZWdFeHAoIl4oIithLmpvaW4oInwiKSsiKTovL1tcXHdcXC5cXC1dKyIsImkiKV0sYS5pbmNsdWRlcygidGVsIikmJmMucHVzaChuZXcgUmVnRXhwKCJedGVsOi8vXFwrP1tcXHdcXC5cXC1dKyIsImkiKSkpO3JldHVybigwLG4uZGVmYXVsdCkoZSx7d2hpdGVMaXN0OnMudGFnTGlzdCxzdHJpcElnbm9yZVRhZzohMCxzdHJpcElnbm9yZVRhZ0JvZHk6WyJzY3JpcHQiLCJ0YWJsZSJdLG9uSWdub3JlVGFnQXR0cjpmdW5jdGlvbihlLGEsbil7dmFyIHQ9cy5hdHRyTGlzdFtlXTtpZih0KXt2YXIgbz10W2FdO2lmKG8mJigtMSE9PW8uaW5kZXhPZigiKiIpfHwtMSE9PW8uaW5kZXhPZihuKSl8fDA9PT1hLmluZGV4T2YoImRhdGEtIikmJnRbImRhdGEtKiJdfHwiYSI9PT1lJiYiaHJlZiI9PT1hJiZ1KG4sYyl8fCJpbWciPT09ZSYmInNyYyI9PT1hJiYoL15kYXRhOmltYWdlLiokL2kudGVzdChuKXx8dShuLGMpKXx8ImlmcmFtZSI9PT1lJiYic3JjIj09PWEmJmwuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gMD09PW4udG9Mb3dlckNhc2UoKS5pbmRleE9mKChlfHwiIikudG9Mb3dlckNhc2UoKSl9KSlyZXR1cm4gbShhLG4pO2lmKCJpZnJhbWUiPT09ZSYmInNyYyI9PT1hKXJldHVybiItU1RSSVAtIjtpZigtMSE9PVsiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2Il0uaW5kZXhPZihlKSYmbi5tYXRjaCgvXmhlYWRpbmdcLVwtW2EtekEtWjAtOVwtXF9dKyQvKSlyZXR1cm4gbShhLG4pO2Zvcih2YXIgaT1fLmdldEN1c3RvbSgpLHI9MDtyPGkubGVuZ3RoO3IrKyl7aWYoKDAsaVtyXSkoZSxhLG4pKXJldHVybiBtKGEsbil9fX19KS5yZXBsYWNlKC9cW3JlbW92ZWRcXS9nLCIiKS5yZXBsYWNlKC9cPGlmcmFtZVtePl0rXC1TVFJJUFwtW14+XSo+W148XSo8XC9pZnJhbWU+L2csIiIpLnJlcGxhY2UoLyYoPyFbI1x3XSs7KS9nLCImYW1wOyIpLnJlcGxhY2UoLyYjMzk7L2csIiciKS5yZXBsYWNlKC8gXC8+L2csIj4iKX07dmFyIGE9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImI3gyNzsiLCJgIjoiJiN4NjA7In0sdD0vWyY8PiInYF0vZyxvPS9bJjw+IidgXS87ZnVuY3Rpb24gaShlKXtyZXR1cm4gYVtlXX1mdW5jdGlvbiB1KGUsYSl7aWYoZT1lLnJlcGxhY2UoLycvZywiJTI3IiksL14oaHR0cHM/Oik/XC9cL1tcd1wuXC1dKy9pLnRlc3QoZSkpcmV0dXJuIGU7aWYoL15cL1tcd1wuXC1dKy9pLnRlc3QoZSkpcmV0dXJuIGU7aWYoL14jW1x3XC5cLV0rL2kudGVzdChlKSlyZXR1cm4gZTtpZigvXm1haWx0bzpbXHdcLlwtQF0rL2kudGVzdChlKSlyZXR1cm4gZTtpZihhJiYwPGEubGVuZ3RoKWZvcih2YXIgbj0wO248YS5sZW5ndGg7bisrKWlmKGFbbl0udGVzdChlKSlyZXR1cm4gZX19KSxkZWZpbmUoInByZXR0eS10ZXh0L29uZWJveGVyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsInByZXR0eS10ZXh0L29uZWJveGVyLWNhY2hlIl0sZnVuY3Rpb24oZSx1LGcpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5MT0FESU5HX09ORUJPWF9DU1NfQ0xBU1M9dm9pZCAwLGUucmVzZXRDYWNoZT1mdW5jdGlvbigpe2guY2xlYXIoKSwoMCxnLnJlc2V0TG9jYWxDYWNoZSkoKSwoMCxnLnJlc2V0RmFpbGVkQ2FjaGUpKCl9LGUubG9hZD1mdW5jdGlvbihlKXt2YXIgYT1lLmVsZW0sbj1lLnJlZnJlc2gsdD12b2lkIDA9PT1ufHxuLG89ZS5hamF4LGk9ZS5zeW5jaHJvbm91cyxyPXZvaWQgMCE9PWkmJmksXz1lLmNhdGVnb3J5SWQscz1lLnRvcGljSWQsbD0kKGEpO2lmKGwuZGF0YSgib25lYm94LWxvYWRlZCIpKXJldHVybjtpZihsLmhhc0NsYXNzKHApKXJldHVybjt2YXIgYz1hLmhyZWY7aWYoIXQpe3ZhciBtPWcubG9jYWxDYWNoZVsoMCxnLm5vcm1hbGl6ZSkoYyldO2lmKG0pcmV0dXJuIG0ucHJvcCgib3V0ZXJIVE1MIik7aWYoZy5mYWlsZWRDYWNoZVsoMCxnLm5vcm1hbGl6ZSkoYyldKXJldHVybn17aWYobC5hZGRDbGFzcyhwKSxoLnB1c2goe3VybDpjLHJlZnJlc2g6dCwkZWxlbTpsLGNhdGVnb3J5SWQ6Xyx0b3BpY0lkOnN9KSxyKXJldHVybiB3KG8pO2Q9ZHx8KDAsdS5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gdyhvKX0sMTUwKX19O3ZhciBkPXZvaWQgMCxoPVtdLHA9ZS5MT0FESU5HX09ORUJPWF9DU1NfQ0xBU1M9ImxvYWRpbmctb25lYm94IjtmdW5jdGlvbiBsKGUpeyQoZSkuYWRkQ2xhc3MoInNpemUtcmVzb2x2ZWQiKSwwPGUud2lkdGgmJmUud2lkdGg9PT1lLmhlaWdodCYmJChlKS5hZGRDbGFzcygib25lYm94LWF2YXRhciIpfWZ1bmN0aW9uIHcoZSl7aWYoMCE9PWgubGVuZ3RoKXt2YXIgYT0xNTAsbj0hMCx0PWguc2hpZnQoKSxpPXQudXJsLG89dC5yZWZyZXNoLHI9dC4kZWxlbSxfPXQuY2F0ZWdvcnlJZCxzPXQudG9waWNJZDtyZXR1cm4gZSgiL29uZWJveCIse2RhdGFUeXBlOiJodG1sIixkYXRhOnt1cmw6aSxyZWZyZXNoOm8sY2F0ZWdvcnlfaWQ6Xyx0b3BpY19pZDpzfSxjYWNoZTohMH0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIGEsbix0LG89JChlKTsoMCxnLnNldExvY2FsQ2FjaGUpKCgwLGcubm9ybWFsaXplKShpKSxvKSxyLnJlcGxhY2VXaXRoKG8pLGE9bywoMCxnLm5vcm1hbGl6ZSkoaSksYS5oYXNDbGFzcygid2hpdGVsaXN0ZWRnZW5lcmljIikmJihuPWEuZmluZCgiLm9uZWJveC1ib2R5IGltZy50aHVtYm5haWwiKSx0PW5bMF0sMSE9PW4ubGVuZ3RofHxuLmhhc0NsYXNzKCJzaXplLXJlc29sdmVkIil8fCh0LmNvbXBsZXRlP2wodCk6bi5vbigibG9hZC5vbmVib3giLGZ1bmN0aW9uKCl7bCh0KSxuLm9mZigibG9hZC5vbmVib3giKX0pKSl9LGZ1bmN0aW9uKGUpe2UmJmUuanFYSFImJjQyOT09PWUuanFYSFIuc3RhdHVzPyhuPSEoYT0yZTMpLGgudW5zaGlmdCh7dXJsOmkscmVmcmVzaDpvLCRlbGVtOnIsY2F0ZWdvcnlJZDpfLHRvcGljSWQ6c30pKTooMCxnLnNldEZhaWxlZENhY2hlKSgoMCxnLm5vcm1hbGl6ZSkoaSksITApfSkuZmluYWxseShmdW5jdGlvbigpe2Q9KDAsdS5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gdyhlKX0sYSksbiYmKHIucmVtb3ZlQ2xhc3MocCksci5kYXRhKCJvbmVib3gtbG9hZGVkIikpfSl9ZD1udWxsfX0pLGRlZmluZSgicHJldHR5LXRleHQvb25lYm94ZXItY2FjaGUiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNldExvY2FsQ2FjaGU9ZnVuY3Rpb24oKXtlLmxvY2FsQ2FjaGU9bj17fX0sZS5yZXNldEZhaWxlZENhY2hlPWZ1bmN0aW9uKCl7ZS5mYWlsZWRDYWNoZT10PXt9fSxlLnNldExvY2FsQ2FjaGU9ZnVuY3Rpb24oZSxhKXtuW2VdPWF9LGUuc2V0RmFpbGVkQ2FjaGU9ZnVuY3Rpb24oZSxhKXt0W2VdPWF9LGUubm9ybWFsaXplPW8sZS5sb29rdXBDYWNoZT1mdW5jdGlvbihlKXt2YXIgYT1uW28oZSldO3JldHVybiBhJiZhLnByb3AoIm91dGVySFRNTCIpfTt2YXIgbj1lLmxvY2FsQ2FjaGU9e30sdD1lLmZhaWxlZENhY2hlPXt9O2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUucmVwbGFjZSgvXC8kLywiIil9fSksZGVmaW5lKCJwcmV0dHktdGV4dC9jb250ZXh0L2lubGluZS1vbmVib3gtY3NzLWNsYXNzZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5JTkxJTkVfT05FQk9YX0xPQURJTkdfQ1NTX0NMQVNTPSJpbmxpbmUtb25lYm94LWxvYWRpbmciLGUuSU5MSU5FX09ORUJPWF9DU1NfQ0xBU1M9ImlubGluZS1vbmVib3gifSksZGVmaW5lKCJwcmV0dHktdGV4dC9pbmxpbmUtb25lYm94ZXIiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFwcGx5SW5saW5lT25lYm94ZXM9ZnVuY3Rpb24obixlLGEpe3JldHVybiBhPWF8fHt9LE9iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT17fX0pLGUoIi9pbmxpbmUtb25lYm94Iix7ZGF0YTp7dXJsczpPYmplY3Qua2V5cyhuKSxjYXRlZ29yeV9pZDphLmNhdGVnb3J5SWQsdG9waWNfaWQ6YS50b3BpY0lkfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZVsiaW5saW5lLW9uZWJveGVzIl0uZm9yRWFjaChmdW5jdGlvbihhKXthLnRpdGxlJiYob1thLnVybF09YSwoblthLnVybF18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyQoZSkudGV4dChhLnRpdGxlKS5hZGRDbGFzcyh0LklOTElORV9PTkVCT1hfQ1NTX0NMQVNTKS5yZW1vdmVDbGFzcyh0LklOTElORV9PTkVCT1hfTE9BRElOR19DU1NfQ0xBU1MpfSkpfSl9KX0sZS5jYWNoZWRJbmxpbmVPbmVib3g9ZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV19LGUuYXBwbHlDYWNoZWRJbmxpbmVPbmVib3g9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gb1tlXT1hfSxlLmRlbGV0ZUNhY2hlZElubGluZU9uZWJveD1mdW5jdGlvbihlKXtyZXR1cm4gZGVsZXRlIG9bZV19O3ZhciBvPXt9fSksZGVmaW5lKCJwcmV0dHktdGV4dC91cGxvYWQtc2hvcnQtdXJsIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIi4vZW5naW5lcy9kaXNjb3Vyc2UtbWFya2Rvd24taXQiXSxmdW5jdGlvbihlLG8sbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxvb2t1cENhY2hlZFVwbG9hZFVybD1pLGUubG9va3VwVW5jYWNoZWRVcGxvYWRVcmxzPXMsZS5jYWNoZVNob3J0VXBsb2FkVXJsPWwsZS5yZXNldENhY2hlPWZ1bmN0aW9uKCl7dD17fX0sZS5yZXNvbHZlQWxsU2hvcnRVcmxzPWZ1bmN0aW9uKG4pe3ZhciBlPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLGE9ImltZ1tkYXRhLW9yaWctc3JjXSwgYVtkYXRhLW9yaWctaHJlZl0sIHNvdXJjZVtkYXRhLW9yaWctc3JjXSIsdD0kKGV8fGRvY3VtZW50KS5maW5kKGEpO2lmKDA8dC5sZW5ndGgmJihtKHQpLDA8KHQ9JChlfHxkb2N1bWVudCkuZmluZChhKSkubGVuZ3RoKSlyZXR1cm4oMCxvLmRlYm91bmNlKShudWxsLGZ1bmN0aW9uKCl7cmV0dXJuIGE9bixzKChlPXQpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGE9JChlKTtyZXR1cm4gYS5kYXRhKCJvcmlnLXNyYyIpfHxhLmRhdGEoIm9yaWctaHJlZiIpfSksYSkudGhlbihmdW5jdGlvbigpe3JldHVybiBtKGUpfSk7dmFyIGUsYX0sNDUwLCEwKX07dmFyIHQ9e307ZnVuY3Rpb24gaShlKXtyZXR1cm4gdFtlXXx8e319dmFyIHI9Im1pc3NpbmciO2Z1bmN0aW9uIHMoYSxlKXtpZigwIT09KGE9Xy5jb21wYWN0KGEpKS5sZW5ndGgpcmV0dXJuIGUoIi91cGxvYWRzL2xvb2t1cC11cmxzIix7bWV0aG9kOiJQT1NUIixkYXRhOntzaG9ydF91cmxzOmF9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2woZS5zaG9ydF91cmwse3VybDplLnVybCxzaG9ydF9wYXRoOmUuc2hvcnRfcGF0aH0pfSksYS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBsKGUse3VybDppKGUpLnVybHx8cixzaG9ydF9wYXRoOmkoZSkuc2hvcnRfcGF0aHx8cn0pfSksZX0pfWZ1bmN0aW9uIGwoZSxhKXt0W2VdPWF9ZnVuY3Rpb24gYyhlLGEsbil7dmFyIHQ9aShlLmRhdGEoYSkpLG89Im9yaWctaHJlZiI9PT1hP3Quc2hvcnRfcGF0aDp0LnVybDtvJiYoZS5yZW1vdmVBdHRyKCJkYXRhLSIrYSksbyE9PXImJm4obykpfWZ1bmN0aW9uIG0oZSl7ZS5lYWNoKGZ1bmN0aW9uKGUsYSl7dmFyIG89JChhKTtzd2l0Y2goYS50YWdOYW1lKXtjYXNlIkEiOmMobywib3JpZy1ocmVmIixmdW5jdGlvbihlKXtvLmF0dHIoImhyZWYiLGUpO3ZhciBhPW8udGV4dCgpLnNwbGl0KCJ8Iik7YVsxXT09PW4uQVRUQUNITUVOVF9DU1NfQ0xBU1MmJihvLmFkZENsYXNzKG4uQVRUQUNITUVOVF9DU1NfQ0xBU1MpLG8udGV4dChhWzBdKSl9KTticmVhaztjYXNlIklNRyI6YyhvLCJvcmlnLXNyYyIsZnVuY3Rpb24oZSl7by5hdHRyKCJzcmMiLGUpfSk7YnJlYWs7Y2FzZSJTT1VSQ0UiOmMobywib3JpZy1zcmMiLGZ1bmN0aW9uKGUpe3ZhciBhO28uYXR0cigic3JjIixlKSxlLnN0YXJ0c1dpdGgoIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCkmJihhPW5ldyBSZWdFeHAoIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCwiZyIpLGU9ZS5yZXBsYWNlKGEsIiIpKTt2YXIgbj13aW5kb3cubG9jYXRpb24ub3JpZ2luK2U7by5hdHRyKCJzcmMiLG4pO3ZhciB0PW8ucGFyZW50KCk7dFswXS5sb2FkKCksdC5maW5kKCJhIikuYXR0cigiaHJlZiIsbikudGV4dChuKX0pfX0pfX0pOwovLyMgc291cmNlTWFwcGluZ1VSTD0vYXNzZXRzL3ByZXR0eS10ZXh0LWJ1bmRsZS00ZjU0OWU3N2Q3NTZmYmFlNjYyNzI5NzkyMDFiYzM2NjIzYWE4NjdkNWQ2NzEzOTU5MDI4OGE1ZTQxNTRhN2FmLmpzLm1hcA==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 194,
          "bodySize": 42976,
          "_transferSize": 43170
        },
        "cache": {},
        "timings": {
          "blocked": 1461.1489999992884,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.08200000000010732,
          "wait": 376.106000005193,
          "receive": 700.0529999786522,
          "_blocked_queueing": 6.8109999992884696
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 21796.52599999099,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 721,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:51:11 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000441"
            },
            {
              "name": "Content-Length",
              "value": "447347"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2412472,
            "mimeType": "application/javascript",
            "compression": 1965125,
            "text": "ZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvZXh0cmFjdC12YWx1ZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlLmluaXRpYWxpemVyJiZlLmluaXRpYWxpemVyKCl9fSksZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvaGFuZGxlLWRlc2NyaXB0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCIuL2V4dHJhY3QtdmFsdWUiXSxmdW5jdGlvbihlLGEsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpbXTtyZXR1cm57ZW51bWVyYWJsZTppLmVudW1lcmFibGUsY29uZmlndXJhYmxlOmkuY29uZmlndXJhYmxlLHdyaXRlYWJsZTppLndyaXRlYWJsZSxpbml0aWFsaXplcjpmdW5jdGlvbigpe3ZhciBlPXZvaWQgMDtpZighaS53cml0YWJsZSl0aHJvdyBuZXcgRXJyb3IoImVtYmVyLWNvbXB1dGVkLWRlY29yYXRvcnMgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7dmFyIHQscyxvLG49KDAsbC5kZWZhdWx0KShpKSxlPSJvYmplY3QiPT09KHZvaWQgMD09PW4/InVuZGVmaW5lZCI6dShuKSk/KHQ9e30sbi5nZXQmJih0LmdldD1kKHIsbi5nZXQpKSxuLnNldCYmKHQuc2V0PShzPXIsbz1uLnNldCxzPXMubWFwKGMpLGZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxpPXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ2V0KShuLGUpfSk7cmV0dXJuIGkudW5zaGlmdCh0KSxvLmFwcGx5KHRoaXMsaSl9KSksdCk6ZChyLG4pO3JldHVybiBhLmNvbXB1dGVkLmFwcGx5KG51bGwsci5jb25jYXQoZSkpfX19O3ZhciB1PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtmdW5jdGlvbiBjKGUpe2Zvcih2YXIgdD1lLnNwbGl0KCIuIiksbj12b2lkIDAsbj0wO248dC5sZW5ndGgmJigiQGVhY2giIT09dFtuXSYmIltdIiE9PXRbbl0mJi0xPT09dFtuXS5pbmRleE9mKCJ7IikpO24rKyk7cmV0dXJuIHQuc2xpY2UoMCxuKS5qb2luKCIuIil9ZnVuY3Rpb24gZChuLGkpe3JldHVybiBuPW4ubWFwKGMpLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ2V0KSh0LGUpfSk7cmV0dXJuIGkuYXBwbHkodGhpcyxlKX19fSksZGVmaW5lKCJlbWJlci1hZGRvbnMvdXRpbHMvaXMtZGVzY3JpcHRvciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6dChlKSkmJiJ3cml0YWJsZSJpbiBlJiYiZW51bWVyYWJsZSJpbiBlJiYiY29uZmlndXJhYmxlImluIGV9O3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtlbnZpcm9ubWVudDpFbWJlci50ZXN0aW5nPyJ0ZXN0IjoiZGV2ZWxvcG1lbnQifX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL2JvdW5kLWkxOG4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSx0KXtyZXR1cm4gSTE4bi50KGUsdC5oYXNoKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvY29tcG9uZW50LWZvci1jb2xsZWN0aW9uIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJjb21wb25lbnQtZm9yLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbihlKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvY29tcG9uZW50LWZvci1yb3ciLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImNvbXBvbmVudC1mb3Itcm93IixmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9kaWZ5Q29tcG9uZW50Rm9yUm93KGUsdCl9KX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL2QtaWNvbiIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJkLWljb24iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5yZW5kZXJJY29uKSgic3RyaW5nIixlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2hlbHBlcnMvZmEtaWNvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlLHQpe3JldHVybigwLG4ucmVuZGVySWNvbikoInN0cmluZyIsZSx0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pY29uSFRNTD1zLCgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZmEtaWNvbiIsZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxpLmRlZmF1bHQpKCJVc2UgYHt7ZC1pY29ufX1gIGluc3RlYWQgb2YgYHt7ZmEtaWNvbn19IiksbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhzKGUsdCkpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vaGVscGVycy9nZXQtdXJsIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtdXJsIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJnZXQtdXJsIixmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmRlZmF1bHQpKGUpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vaGVscGVycy9pMThuIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJpMThuIixmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoZSx0KX0pLCgwLGUucmVnaXN0ZXJVbmJvdW5kKSgiaTE4bi15ZXMtbm8iLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIEkxOG4udChlPyJ5ZXNfdmFsdWUiOiJub192YWx1ZSIsdCl9KX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9oZWxwZXJzL3BvcHVsYXItdGhlbWVzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuUE9QVUxBUl9USEVNRVM9W3tuYW1lOiJHcmFjZWZ1bCIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZ3JhY2VmdWwiLHByZXZpZXc6Imh0dHBzOi8vdGhlbWUtY3JlYXRvci5kaXNjb3Vyc2Uub3JnL3RoZW1lL2F3ZXNvbWVyb2JvdC9ncmFjZWZ1bCIsZGVzY3JpcHRpb246IkEgbGlnaHQgYW5kIGdyYWNlZnVsIHRoZW1lIGZvciBEaXNjb3Vyc2UuIixtZXRhX3VybDoiaHR0cHM6Ly9tZXRhLmRpc2NvdXJzZS5vcmcvdC9hLWdyYWNlZnVsLXRoZW1lLWZvci1kaXNjb3Vyc2UvOTMwNDAifSx7bmFtZToiTWF0ZXJpYWwgRGVzaWduIFRoZW1lIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9tYXRlcmlhbC1kZXNpZ24tc3RvY2stdGhlbWUiLHByZXZpZXc6Imh0dHBzOi8vbmV3bWF0ZXJpYWwudHJ5ZGlzY291cnNlLmNvbSIsZGVzY3JpcHRpb246Ikluc3BpcmVkIGJ5IE1hdGVyaWFsIERlc2lnbiwgdGhpcyB0aGVtZSBjb21lcyB3aXRoIHNldmVyYWwgY29sb3IgcGFsZXR0ZXMgKGluY2wuIGEgZGFyayBvbmUpLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvbWF0ZXJpYWwtZGVzaWduLXN0b2NrLXRoZW1lLzQ3MTQyIn0se25hbWU6Ik1pbmltYSIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvbWluaW1hIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvbWluaW1hIixkZXNjcmlwdGlvbjoiQSBtaW5pbWFsIHRoZW1lIHdpdGggcmVkdWNlZCBVSSBlbGVtZW50cyBhbmQgZm9jdXMgb24gdGV4dC4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L21pbmltYS1hLW1pbmltYWwtdGhlbWUtZm9yLWRpc2NvdXJzZS8xMDgxNzgifSx7bmFtZToiU2FtJ3MgU2ltcGxlIFRoZW1lIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2Utc2ltcGxlLXRoZW1lIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9zYW0vc2ltcGxlIixkZXNjcmlwdGlvbjoiU2ltcGxpZmllZCBmcm9udCBwYWdlIGRlc2lnbiB3aXRoIGNsYXNzaWMgY29sb3JzIGFuZCB0eXBvZ3JhcGh5LiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3Qvc2Ftcy1wZXJzb25hbC1taW5pbWFsLXRvcGljLWxpc3QtZGVzaWduLzIzNTUyIn0se25hbWU6IlZpbmNlbnQiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS12aW5jZW50LXRoZW1lIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvdmluY2VudCIsZGVzY3JpcHRpb246IkFuIGVsZWdhbnQgZGFyayB0aGVtZSB3aXRoIGEgZmV3IGNvbG9yIHBhbGV0dGVzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZGlzY291cnNlLXZpbmNlbnQtdGhlbWUvNzY2NjIifSx7bmFtZToiQnJhbmQgSGVhZGVyIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2UtYnJhbmQtaGVhZGVyIixkZXNjcmlwdGlvbjoiQWRkIGFuIGV4dHJhIHRvcCBoZWFkZXIgd2l0aCB5b3VyIGxvZ28sIG5hdmlnYXRpb24gbGlua3MgYW5kIHNvY2lhbCBpY29ucy4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2JyYW5kLWhlYWRlci10aGVtZS1jb21wb25lbnQvNzc5NzciLGNvbXBvbmVudDohMH0se25hbWU6IkN1c3RvbSBIZWFkZXIgTGlua3MiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1jdXN0b20taGVhZGVyLWxpbmtzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9Kb2hhbmkvY3VzdG9tLWhlYWRlci1saW5rcyIsZGVzY3JpcHRpb246IkVhc2lseSBhZGQgY3VzdG9tIHRleHQtYmFzZWQgbGlua3MgdG8gdGhlIGhlYWRlci4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2N1c3RvbS1oZWFkZXItbGlua3MvOTA1ODgiLGNvbXBvbmVudDohMH0se25hbWU6IkNhdGVnb3J5IEJhbm5lcnMiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1jYXRlZ29yeS1iYW5uZXJzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9hd2Vzb21lcm9ib3QvZGlzY291cnNlLWNhdGVnb3J5LWJhbm5lcnMiLGRlc2NyaXB0aW9uOiJTaG93IGJhbm5lcnMgb24gY2F0ZWdvcnkgcGFnZXMgdXNpbmcgeW91ciBleGlzdGluZyBjYXRlZ29yeSBkZXRhaWxzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZGlzY291cnNlLWNhdGVnb3J5LWJhbm5lcnMvODYyNDEiLGNvbXBvbmVudDohMH0se25hbWU6IkthbmJhbiBCb2FyZCIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZGlzY291cnNlLWthbmJhbi10aGVtZSIscHJldmlldzoiaHR0cHM6Ly90aGVtZS1jcmVhdG9yLmRpc2NvdXJzZS5vcmcvdGhlbWUvZGF2aWQva2FuYmFuIixkZXNjcmlwdGlvbjoiRGlzcGxheSBhbmQgb3JnYW5pemUgdG9waWNzIHVzaW5nIGEgS2FuYmFuIGJvYXJkIGludGVyZmFjZS4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2thbmJhbi1ib2FyZC10aGVtZS1jb21wb25lbnQvMTE4MTY0Iixjb21wb25lbnQ6ITB9LHtuYW1lOiJIYW1idXJnZXIgVGhlbWUgU2VsZWN0b3IiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL2Rpc2NvdXJzZS1oYW1idXJnZXItdGhlbWUtc2VsZWN0b3IiLGRlc2NyaXB0aW9uOiJEaXNwbGF5cyBhIHRoZW1lIHNlbGVjdG9yIGluIHRoZSBoYW1idXJnZXIgbWVudSBwcm92aWRlZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHVzZXItc2VsZWN0YWJsZSB0aGVtZS4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2hhbWJ1cmdlci10aGVtZS1zZWxlY3Rvci82MTIxMCIsY29tcG9uZW50OiEwfSx7bmFtZToiSGVhZGVyIFN1Ym1lbnVzIix2YWx1ZToiaHR0cHM6Ly9naXRodWIuY29tL2Rpc2NvdXJzZS9kaXNjb3Vyc2UtaGVhZGVyLXN1Ym1lbnVzIixwcmV2aWV3OiJodHRwczovL3RoZW1lLWNyZWF0b3IuZGlzY291cnNlLm9yZy90aGVtZS9Kb2hhbmkvaGVhZGVyLXN1Ym1lbnVzIixkZXNjcmlwdGlvbjoiTGV0cyB5b3UgYnVpbGQgYSBoZWFkZXIgbWVudSB3aXRoIHN1Ym1lbnVzIChkcm9wZG93bnMpLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvaGVhZGVyLXN1Ym1lbnVzLzk0NTg0Iixjb21wb25lbnQ6ITB9LHtuYW1lOiJBbHRlcm5hdGl2ZSBMb2dvcyIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvZGlzY291cnNlLWFsdC1sb2dvIixkZXNjcmlwdGlvbjoiQWRkIGFsdGVybmF0aXZlIGxvZ29zIGZvciBkYXJrIC8gbGlnaHQgdGhlbWVzLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvYWx0ZXJuYXRpdmUtbG9nby1mb3ItZGFyay10aGVtZXMvODg1MDIiLGNvbXBvbmVudDohMH0se25hbWU6IkF1dG9tYXRpYyBUYWJsZSBvZiBDb250ZW50cyIsdmFsdWU6Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3Vyc2UvRGlzY29UT0MiLGRlc2NyaXB0aW9uOiJHZW5lcmF0ZXMgYW4gaW50ZXJhY3RpdmUgdGFibGUgb2YgY29udGVudHMgb24gdGhlIHNpZGViYXIgb2YgeW91ciB0b3BpYyB3aXRoIGEgc2ltcGxlIGNsaWNrIGluIHRoZSBjb21wb3Nlci4iLG1ldGFfdXJsOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZy90L2Rpc2NvdG9jLWF1dG9tYXRpYy10YWJsZS1vZi1jb250ZW50cy8xMTExNDMiLGNvbXBvbmVudDohMH0se25hbWU6IkVhc3kgUmVzcG9uc2l2ZSBGb290ZXIiLHZhbHVlOiJodHRwczovL2dpdGh1Yi5jb20vZGlzY291cnNlL0Rpc2NvdXJzZS1lYXN5LWZvb3RlciIscHJldmlldzoiaHR0cHM6Ly90aGVtZS1jcmVhdG9yLmRpc2NvdXJzZS5vcmcvdGhlbWUvSm9oYW5pL2Vhc3ktZm9vdGVyIixkZXNjcmlwdGlvbjoiQWRkIGEgZnVsbHkgcmVzcG9uc2l2ZSBmb290ZXIgd2l0aG91dCB3cml0aW5nIGFueSBIVE1MLiIsbWV0YV91cmw6Imh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3QvZWFzeS1yZXNwb25zaXZlLWZvb3Rlci85NTgxOCIsY29tcG9uZW50OiEwfV19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2F0dHJpYnV0ZS1ob29rIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXJldHVybiBuZXcgbihlLHQpO3RoaXMubmFtZXNwYWNlPWUsdGhpcy52YWx1ZT10fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKGUsdCxuKXtuJiYiQXR0cmlidXRlSG9vayI9PT1uLnR5cGUmJm4udmFsdWU9PT10aGlzLnZhbHVlJiZuLm5hbWVzcGFjZT09PXRoaXMubmFtZXNwYWNlfHxlLnNldEF0dHJpYnV0ZU5TKHRoaXMubmFtZXNwYWNlLHQsdGhpcy52YWx1ZSl9LG4ucHJvdG90eXBlLnVuaG9vaz1mdW5jdGlvbihlLHQsbil7dmFyIGkscztuJiYiQXR0cmlidXRlSG9vayI9PT1uLnR5cGUmJm4ubmFtZXNwYWNlPT09dGhpcy5uYW1lc3BhY2V8fChzPS0xPChpPXQuaW5kZXhPZigiOiIpKT90LnN1YnN0cihpKzEpOnQsZS5yZW1vdmVBdHRyaWJ1dGVOUyh0aGlzLm5hbWVzcGFjZSxzKSl9LG4ucHJvdG90eXBlLnR5cGU9IkF0dHJpYnV0ZUhvb2siLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307ZT1bIkRlcHJlY2F0aW9uIG5vdGljZToiLGVdLHQuc2luY2UmJmUucHVzaCgiKGRlcHJlY2F0ZWQgc2luY2UgRGlzY291cnNlICIrdC5zaW5jZSsiKSIpO3QuZHJvcEZyb20mJmUucHVzaCgiKHJlbW92YWwgaW4gRGlzY291cnNlICIrdC5kcm9wRnJvbSsiKSIpO2lmKGU9ZS5qb2luKCIgIiksdC5yYWlzZUVycm9yKXRocm93IGU7Y29uc29sZS53YXJuKGUpfX0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gRW1iZXIuZ2V0T3duZXI/RW1iZXIuZ2V0T3duZXIoZSl8fERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fOmUuY29udGFpbmVyfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldE93bmVyPXMsZS5nZXRSZWdpc3Rlcj1mdW5jdGlvbihlKXt2YXIgdD1zKGUpLG49e2xvb2t1cDpmdW5jdGlvbigpe3JldHVybiB0Lmxvb2t1cC5hcHBseSh0LGFyZ3VtZW50cyl9LGxvb2t1cEZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gdC5mYWN0b3J5Rm9yP3QuZmFjdG9yeUZvci5hcHBseSh0LGFyZ3VtZW50cyk6dC5fbG9va3VwRmFjdG9yeT90Ll9sb29rdXBGYWN0b3J5LmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9LGRlcHJlY2F0ZUNvbnRhaW5lcjpmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiY29udGFpbmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5kZWZhdWx0KSgiVXNlIGB0aGlzLnJlZ2lzdGVyYCBvciBgZ2V0T3duZXJgIGluc3RlYWQgb2YgYHRoaXMuY29udGFpbmVyYCIpLG59fSl9fTtyZXR1cm4gbn19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2dldC11cmwiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBlO249bnx8KCQoJ21ldGFbbmFtZT0iZGlzY291cnNlLWJhc2UtdXJpIl0nKS5hdHRyKCJjb250ZW50Iil8fCIiKTtpZigiLyIhPT1lJiYhL15cL1teXC9dLy50ZXN0KGUpKXJldHVybiBlO3ZhciB0PWUuaW5kZXhPZihuKTtpZigwPD10JiZ0PDMpcmV0dXJuIGU7Ii8iIT09ZVswXSYmKGU9Ii8iK2UpO3JldHVybiBuK2V9O3ZhciBuPXZvaWQgMH0pLGRlZmluZSgiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQvaGVscGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiXSxmdW5jdGlvbihlLHMsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFrZUFycmF5PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lP0FycmF5LmlzQXJyYXkoZSk/ZTpbZV06W119LGUuaHRtbEhlbHBlcj1mdW5jdGlvbihpKXtyZXR1cm4gbi5kZWZhdWx0LmhlbHBlcihmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQ9MTx0Lmxlbmd0aD90WzBdLmNvbmNhdCh7aGFzaDp0W3QubGVuZ3RoLTFdfSk6dCxuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGkuYXBwbHkodGhpcyx0KXx8IiIpfSl9LGUucmVnaXN0ZXJIZWxwZXI9ZnVuY3Rpb24oZSx0KXtpW2VdPW4uZGVmYXVsdC5oZWxwZXIodCl9LGUuZmluZEhlbHBlcj1mdW5jdGlvbihlKXtyZXR1cm4gaVtlXXx8aVtlLmRhc2hlcml6ZSgpXX0sZS5yZWdpc3RlckhlbHBlcnM9ZnVuY3Rpb24odCl7T2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihlKXt0LnJlZ2lzdGVyKCJoZWxwZXI6IitlLGlbZV0se3NpbmdsZXRvbjohMX0pfSl9LGUucmVnaXN0ZXJVbmJvdW5kPWZ1bmN0aW9uKGUscil7aVtlXT1uLmRlZmF1bHQuZXh0ZW5kKHtjb21wdXRlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuYXBwbHkodm9pZCAwLGZ1bmN0aW9uKGUpe3tpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9fShlKS5jb25jYXQoW3RdKSl9fSksdC5kZWZhdWx0LnJlZ2lzdGVySGVscGVyKGUsZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KGUpLG49MDtuPGU7bisrKXRbbl09YXJndW1lbnRzW25dO2Zvcih2YXIgaT10LnBvcCgpLHM9dCxvPTA7bzxzLmxlbmd0aDtvKyspIWkudHlwZXN8fCJJRCIhPT1pLnR5cGVzW29dJiYiUGF0aEV4cHJlc3Npb24iIT09aS50eXBlc1tvXXx8KHNbb109YSh0aGlzLHNbb10saSkpO3JldHVybiByLmNhbGwuYXBwbHkocixbdGhpc10uY29uY2F0KHMsW2Z1bmN0aW9uKG4saSl7dmFyIHM9e30sbz1pLmhhc2g7byYmKGkuaGFzaFR5cGVzP09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9aS5oYXNoVHlwZXNbZV07IlNUUklORyI9PT10fHwiU3RyaW5nTGl0ZXJhbCI9PT10fHwiU3ViRXhwcmVzc2lvbiI9PT10P3NbZV09b1tlXToiSUQiIT09dCYmIlBhdGhFeHByZXNzaW9uIiE9PXR8fChzW2VdPWEobixvW2VdLGkpKX0pOnM9byk7cmV0dXJuIHN9KHRoaXMsaSldKSl9KX07dmFyIGk9e307ZnVuY3Rpb24gYShlLHQsbil7aWYobi50eXBlcyYmbi5kYXRhLnZpZXcpe3ZhciBpPW4uZGF0YS52aWV3O3JldHVybiBpLmdldFN0cmVhbT9pLmdldFN0cmVhbSh0KS52YWx1ZSgpOmkuZ2V0QXR0cih0KX1yZXR1cm4oMCxzLmdldCkoZSx0KX19KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsWyJleHBvcnRzIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9hdHRyaWJ1dGUtaG9vayIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLG8scixhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVwbGFjZUljb249ZnVuY3Rpb24oZSx0KXtjW2VdPXR9LGUucmVuZGVySWNvbj1uLGUuaWNvbkhUTUw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbigic3RyaW5nIixlLHQpfSxlLmljb25Ob2RlPXQsZS5jb252ZXJ0SWNvbkNsYXNzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoImZhciBmYS0iLCJmYXItIikucmVwbGFjZSgiZmFiIGZhLSIsImZhYi0iKS5yZXBsYWNlKCJmYXMgZmEtIiwiIikucmVwbGFjZSgiZmEtIiwiIikudHJpbSgpfSxlLnJlZ2lzdGVySWNvblJlbmRlcmVyPWk7dmFyIGw9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix1PVtdLGM9eyJkLXRyYWNraW5nIjoiYmVsbCIsImQtbXV0ZWQiOiJkaXNjb3Vyc2UtYmVsbC1zbGFzaCIsImQtcmVndWxhciI6ImZhci1iZWxsIiwiZC13YXRjaGluZyI6ImRpc2NvdXJzZS1iZWxsLWV4Y2xhbWF0aW9uIiwiZC13YXRjaGluZy1maXJzdCI6ImRpc2NvdXJzZS1iZWxsLW9uZSIsImQtZHJvcC1leHBhbmRlZCI6ImNhcmV0LWRvd24iLCJkLWRyb3AtY29sbGFwc2VkIjoiY2FyZXQtcmlnaHQiLCJkLXVubGlrZWQiOiJmYXItaGVhcnQiLCJkLWxpa2VkIjoiaGVhcnQiLCJub3RpZmljYXRpb24ubWVudGlvbmVkIjoiYXQiLCJub3RpZmljYXRpb24uZ3JvdXBfbWVudGlvbmVkIjoiYXQiLCJub3RpZmljYXRpb24ucXVvdGVkIjoicXVvdGUtcmlnaHQiLCJub3RpZmljYXRpb24ucmVwbGllZCI6InJlcGx5Iiwibm90aWZpY2F0aW9uLnBvc3RlZCI6InJlcGx5Iiwibm90aWZpY2F0aW9uLmVkaXRlZCI6InBlbmNpbC1hbHQiLCJub3RpZmljYXRpb24ubGlrZWQiOiJoZWFydCIsIm5vdGlmaWNhdGlvbi5saWtlZF8yIjoiaGVhcnQiLCJub3RpZmljYXRpb24ubGlrZWRfbWFueSI6ImhlYXJ0Iiwibm90aWZpY2F0aW9uLmxpa2VkX2NvbnNvbGlkYXRlZCI6ImhlYXJ0Iiwibm90aWZpY2F0aW9uLnByaXZhdGVfbWVzc2FnZSI6ImZhci1lbnZlbG9wZSIsIm5vdGlmaWNhdGlvbi5pbnZpdGVkX3RvX3ByaXZhdGVfbWVzc2FnZSI6ImZhci1lbnZlbG9wZSIsIm5vdGlmaWNhdGlvbi5pbnZpdGVkX3RvX3RvcGljIjoiaGFuZC1wb2ludC1yaWdodCIsIm5vdGlmaWNhdGlvbi5pbnZpdGVlX2FjY2VwdGVkIjoidXNlciIsIm5vdGlmaWNhdGlvbi5tb3ZlZF9wb3N0Ijoic2lnbi1vdXQtYWx0Iiwibm90aWZpY2F0aW9uLmxpbmtlZCI6ImxpbmsiLCJub3RpZmljYXRpb24uZ3JhbnRlZF9iYWRnZSI6ImNlcnRpZmljYXRlIiwibm90aWZpY2F0aW9uLnRvcGljX3JlbWluZGVyIjoiZmFyLWNsb2NrIiwibm90aWZpY2F0aW9uLndhdGNoaW5nX2ZpcnN0X3Bvc3QiOiJkaXNjb3Vyc2UtYmVsbC1vbmUiLCJub3RpZmljYXRpb24uZ3JvdXBfbWVzc2FnZV9zdW1tYXJ5IjoidXNlcnMiLCJub3RpZmljYXRpb24ucG9zdF9hcHByb3ZlZCI6ImNoZWNrIiwibm90aWZpY2F0aW9uLm1lbWJlcnNoaXBfcmVxdWVzdF9hY2NlcHRlZCI6InVzZXItcGx1cyIsIm5vdGlmaWNhdGlvbi5tZW1iZXJzaGlwX3JlcXVlc3RfY29uc29saWRhdGVkIjoidXNlcnMifSxkPXsiNTAwcHgiOiJmYWItNTAwcHgiLCJhZGRyZXNzLWJvb2stbyI6ImZhci1hZGRyZXNzLWJvb2siLCJhZGRyZXNzLWNhcmQtbyI6ImZhci1hZGRyZXNzLWNhcmQiLGFkbjoiZmFiLWFkbiIsYW1hem9uOiJmYWItYW1hem9uIixhbmRyb2lkOiJmYWItYW5kcm9pZCIsYW5nZWxsaXN0OiJmYWItYW5nZWxsaXN0IixhcHBsZToiZmFiLWFwcGxlIiwiYXJlYS1jaGFydCI6ImNoYXJ0LWFyZWEiLCJhcnJvdy1jaXJjbGUtby1kb3duIjoiZmFyLWFycm93LWFsdC1jaXJjbGUtZG93biIsImFycm93LWNpcmNsZS1vLWxlZnQiOiJmYXItYXJyb3ctYWx0LWNpcmNsZS1sZWZ0IiwiYXJyb3ctY2lyY2xlLW8tcmlnaHQiOiJmYXItYXJyb3ctYWx0LWNpcmNsZS1yaWdodCIsImFycm93LWNpcmNsZS1vLXVwIjoiZmFyLWFycm93LWFsdC1jaXJjbGUtdXAiLGFycm93czoiYXJyb3dzLWFsdCIsImFycm93cy1hbHQiOiJleHBhbmQtYXJyb3dzLWFsdCIsImFycm93cy1oIjoiYXJyb3dzLWFsdC1oIiwiYXJyb3dzLXYiOiJhcnJvd3MtYWx0LXYiLCJhc2wtaW50ZXJwcmV0aW5nIjoiYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmciLGF1dG9tb2JpbGU6ImNhciIsYmFuZGNhbXA6ImZhYi1iYW5kY2FtcCIsYmFuazoidW5pdmVyc2l0eSIsImJhci1jaGFydCI6ImZhci1jaGFydC1iYXIiLCJiYXItY2hhcnQtbyI6ImZhci1jaGFydC1iYXIiLGJhdGh0dWI6ImJhdGgiLGJhdHRlcnk6ImJhdHRlcnktZnVsbCIsImJhdHRlcnktMCI6ImJhdHRlcnktZW1wdHkiLCJiYXR0ZXJ5LTEiOiJiYXR0ZXJ5LXF1YXJ0ZXIiLCJiYXR0ZXJ5LTIiOiJiYXR0ZXJ5LWhhbGYiLCJiYXR0ZXJ5LTMiOiJiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzIiwiYmF0dGVyeS00IjoiYmF0dGVyeS1mdWxsIixiZWhhbmNlOiJmYWItYmVoYW5jZSIsImJlaGFuY2Utc3F1YXJlIjoiZmFiLWJlaGFuY2Utc3F1YXJlIiwiYmVsbC1vIjoiZmFyLWJlbGwiLCJiZWxsLXNsYXNoLW8iOiJmYXItYmVsbC1zbGFzaCIsYml0YnVja2V0OiJmYWItYml0YnVja2V0IiwiYml0YnVja2V0LXNxdWFyZSI6ImZhYi1iaXRidWNrZXQiLGJpdGNvaW46ImZhYi1idGMiLCJibGFjay10aWUiOiJmYWItYmxhY2stdGllIixibHVldG9vdGg6ImZhYi1ibHVldG9vdGgiLCJibHVldG9vdGgtYiI6ImZhYi1ibHVldG9vdGgtYiIsImJvb2ttYXJrLW8iOiJmYXItYm9va21hcmsiLGJ0YzoiZmFiLWJ0YyIsImJ1aWxkaW5nLW8iOiJmYXItYnVpbGRpbmciLGJ1eXNlbGxhZHM6ImZhYi1idXlzZWxsYWRzIixjYWI6InRheGkiLGNhbGVuZGFyOiJjYWxlbmRhci1hbHQiLCJjYWxlbmRhci1jaGVjay1vIjoiZmFyLWNhbGVuZGFyLWNoZWNrIiwiY2FsZW5kYXItbWludXMtbyI6ImZhci1jYWxlbmRhci1taW51cyIsImNhbGVuZGFyLW8iOiJmYXItY2FsZW5kYXIiLCJjYWxlbmRhci1wbHVzLW8iOiJmYXItY2FsZW5kYXItcGx1cyIsImNhbGVuZGFyLXRpbWVzLW8iOiJmYXItY2FsZW5kYXItdGltZXMiLCJjYXJldC1zcXVhcmUtby1kb3duIjoiZmFyLWNhcmV0LXNxdWFyZS1kb3duIiwiY2FyZXQtc3F1YXJlLW8tbGVmdCI6ImZhci1jYXJldC1zcXVhcmUtbGVmdCIsImNhcmV0LXNxdWFyZS1vLXJpZ2h0IjoiZmFyLWNhcmV0LXNxdWFyZS1yaWdodCIsImNhcmV0LXNxdWFyZS1vLXVwIjoiZmFyLWNhcmV0LXNxdWFyZS11cCIsY2M6ImZhci1jbG9zZWQtY2FwdGlvbmluZyIsImNjLWFtZXgiOiJmYWItY2MtYW1leCIsImNjLWRpbmVycy1jbHViIjoiZmFiLWNjLWRpbmVycy1jbHViIiwiY2MtZGlzY292ZXIiOiJmYWItY2MtZGlzY292ZXIiLCJjYy1qY2IiOiJmYWItY2MtamNiIiwiY2MtbWFzdGVyY2FyZCI6ImZhYi1jYy1tYXN0ZXJjYXJkIiwiY2MtcGF5cGFsIjoiZmFiLWNjLXBheXBhbCIsImNjLXN0cmlwZSI6ImZhYi1jYy1zdHJpcGUiLCJjYy12aXNhIjoiZmFiLWNjLXZpc2EiLGNoYWluOiJsaW5rIiwiY2hhaW4tYnJva2VuIjoidW5saW5rIiwiY2hlY2stY2lyY2xlLW8iOiJmYXItY2hlY2stY2lyY2xlIiwiY2hlY2stc3F1YXJlLW8iOiJmYXItY2hlY2stc3F1YXJlIixjaHJvbWU6ImZhYi1jaHJvbWUiLCJjaXJjbGUtbyI6ImZhci1jaXJjbGUiLCJjaXJjbGUtby1ub3RjaCI6ImNpcmNsZS1ub3RjaCIsImNpcmNsZS10aGluIjoiZmFyLWNpcmNsZSIsY2xpcGJvYXJkOiJmYXItY2xpcGJvYXJkIiwiY2xvY2stbyI6ImZhci1jbG9jayIsY2xvbmU6ImZhci1jbG9uZSIsY2xvc2U6InRpbWVzIiwiY2xvdWQtZG93bmxvYWQiOiJjbG91ZC1kb3dubG9hZC1hbHQiLCJjbG91ZC11cGxvYWQiOiJjbG91ZC11cGxvYWQtYWx0Iixjbnk6Inllbi1zaWduIiwiY29kZS1mb3JrIjoiY29kZS1icmFuY2giLGNvZGVwZW46ImZhYi1jb2RlcGVuIixjb2RpZXBpZToiZmFiLWNvZGllcGllIiwiY29tbWVudC1vIjoiZmFyLWNvbW1lbnQiLGNvbW1lbnRpbmc6ImZhci1jb21tZW50LWRvdHMiLCJjb21tZW50aW5nLW8iOiJmYXItY29tbWVudC1kb3RzIiwiY29tbWVudHMtbyI6ImZhci1jb21tZW50cyIsY29tcGFzczoiZmFyLWNvbXBhc3MiLGNvbm5lY3RkZXZlbG9wOiJmYWItY29ubmVjdGRldmVsb3AiLGNvbnRhbzoiZmFiLWNvbnRhbyIsY29weXJpZ2h0OiJmYXItY29weXJpZ2h0IiwiY3JlYXRpdmUtY29tbW9ucyI6ImZhYi1jcmVhdGl2ZS1jb21tb25zIiwiY3JlZGl0LWNhcmQiOiJmYXItY3JlZGl0LWNhcmQiLCJjcmVkaXQtY2FyZC1hbHQiOiJjcmVkaXQtY2FyZCIsY3NzMzoiZmFiLWNzczMiLGN1dGxlcnk6InV0ZW5zaWxzIixkYXNoYm9hcmQ6InRhY2hvbWV0ZXItYWx0IixkYXNoY3ViZToiZmFiLWRhc2hjdWJlIixkZWFmbmVzczoiZGVhZiIsZGVkZW50OiJvdXRkZW50IixkZWxpY2lvdXM6ImZhYi1kZWxpY2lvdXMiLGRldmlhbnRhcnQ6ImZhYi1kZXZpYW50YXJ0IixkaWFtb25kOiJmYXItZ2VtIixkaWdnOiJmYWItZGlnZyIsZGlzY29yZDoiZmFiLWRpc2NvcmQiLGRvbGxhcjoiZG9sbGFyLXNpZ24iLCJkb3QtY2lyY2xlLW8iOiJmYXItZG90LWNpcmNsZSIsZHJpYmJibGU6ImZhYi1kcmliYmJsZSIsImRyaXZlcnMtbGljZW5zZSI6ImlkLWNhcmQiLCJkcml2ZXJzLWxpY2Vuc2UtbyI6ImZhci1pZC1jYXJkIixkcm9wYm94OiJmYWItZHJvcGJveCIsZHJ1cGFsOiJmYWItZHJ1cGFsIixlZGdlOiJmYWItZWRnZSIsZWVyY2FzdDoiZmFiLXNlbGxjYXN0IixlbXBpcmU6ImZhYi1lbXBpcmUiLCJlbnZlbG9wZS1vIjoiZmFyLWVudmVsb3BlIiwiZW52ZWxvcGUtb3Blbi1vIjoiZmFyLWVudmVsb3BlLW9wZW4iLGVudmlyYToiZmFiLWVudmlyYSIsZXRzeToiZmFiLWV0c3kiLGV1cjoiZXVyby1zaWduIixldXJvOiJldXJvLXNpZ24iLGV4Y2hhbmdlOiJleGNoYW5nZS1hbHQiLGV4cGVkaXRlZHNzbDoiZmFiLWV4cGVkaXRlZHNzbCIsImV4dGVybmFsLWxpbmsiOiJleHRlcm5hbC1saW5rLWFsdCIsImV4dGVybmFsLWxpbmstc3F1YXJlIjoiZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0IixleWU6ImZhci1leWUiLCJleWUtc2xhc2giOiJmYXItZXllLXNsYXNoIixleWVkcm9wcGVyOiJleWUtZHJvcHBlciIsZmE6ImZhYi1mb250LWF3ZXNvbWUiLGZhY2Vib29rOiJmYWItZmFjZWJvb2stZiIsImZhY2Vib29rLWYiOiJmYWItZmFjZWJvb2stZiIsImZhY2Vib29rLW9mZmljaWFsIjoiZmFiLWZhY2Vib29rIiwiZmFjZWJvb2stc3F1YXJlIjoiZmFiLWZhY2Vib29rLXNxdWFyZSIsZmVlZDoicnNzIiwiZmlsZS1hcmNoaXZlLW8iOiJmYXItZmlsZS1hcmNoaXZlIiwiZmlsZS1hdWRpby1vIjoiZmFyLWZpbGUtYXVkaW8iLCJmaWxlLWNvZGUtbyI6ImZhci1maWxlLWNvZGUiLCJmaWxlLWV4Y2VsLW8iOiJmYXItZmlsZS1leGNlbCIsImZpbGUtaW1hZ2UtbyI6ImZhci1maWxlLWltYWdlIiwiZmlsZS1tb3ZpZS1vIjoiZmFyLWZpbGUtdmlkZW8iLCJmaWxlLW8iOiJmYXItZmlsZSIsImZpbGUtcGRmLW8iOiJmYXItZmlsZS1wZGYiLCJmaWxlLXBob3RvLW8iOiJmYXItZmlsZS1pbWFnZSIsImZpbGUtcGljdHVyZS1vIjoiZmFyLWZpbGUtaW1hZ2UiLCJmaWxlLXBvd2VycG9pbnQtbyI6ImZhci1maWxlLXBvd2VycG9pbnQiLCJmaWxlLXNvdW5kLW8iOiJmYXItZmlsZS1hdWRpbyIsImZpbGUtdGV4dCI6ImZpbGUtYWx0IiwiZmlsZS10ZXh0LW8iOiJmYXItZmlsZS1hbHQiLCJmaWxlLXZpZGVvLW8iOiJmYXItZmlsZS12aWRlbyIsImZpbGUtd29yZC1vIjoiZmFyLWZpbGUtd29yZCIsImZpbGUtemlwLW8iOiJmYXItZmlsZS1hcmNoaXZlIiwiZmlsZXMtbyI6ImZhci1jb3B5IixmaXJlZm94OiJmYWItZmlyZWZveCIsImZpcnN0LW9yZGVyIjoiZmFiLWZpcnN0LW9yZGVyIiwiZmxhZy1vIjoiZmFyLWZsYWciLGZsYXNoOiJib2x0IixmbGlja3I6ImZhYi1mbGlja3IiLCJmbG9wcHktbyI6ImZhci1zYXZlIiwiZm9sZGVyLW8iOiJmYXItZm9sZGVyIiwiZm9sZGVyLW9wZW4tbyI6ImZhci1mb2xkZXItb3BlbiIsImZvbnQtYXdlc29tZSI6ImZhYi1mb250LWF3ZXNvbWUiLGZvbnRpY29uczoiZmFiLWZvbnRpY29ucyIsImZvcnQtYXdlc29tZSI6ImZhYi1mb3J0LWF3ZXNvbWUiLGZvcnVtYmVlOiJmYWItZm9ydW1iZWUiLGZvdXJzcXVhcmU6ImZhYi1mb3Vyc3F1YXJlIiwiZnJlZS1jb2RlLWNhbXAiOiJmYWItZnJlZS1jb2RlLWNhbXAiLCJmcm93bi1vIjoiZmFyLWZyb3duIiwiZnV0Ym9sLW8iOiJmYXItZnV0Ym9sIixnYnA6InBvdW5kLXNpZ24iLGdlOiJmYWItZW1waXJlIixnZWFyOiJjb2ciLGdlYXJzOiJjb2dzIiwiZ2V0LXBvY2tldCI6ImZhYi1nZXQtcG9ja2V0IixnZzoiZmFiLWdnIiwiZ2ctY2lyY2xlIjoiZmFiLWdnLWNpcmNsZSIsZ2l0OiJmYWItZ2l0IiwiZ2l0LXNxdWFyZSI6ImZhYi1naXQtc3F1YXJlIixnaXRodWI6ImZhYi1naXRodWIiLCJnaXRodWItYWx0IjoiZmFiLWdpdGh1Yi1hbHQiLCJnaXRodWItc3F1YXJlIjoiZmFiLWdpdGh1Yi1zcXVhcmUiLGdpdGxhYjoiZmFiLWdpdGxhYiIsZ2l0dGlwOiJmYWItZ3JhdGlwYXkiLGdsYXNzOiJnbGFzcy1tYXJ0aW5pIixnbGlkZToiZmFiLWdsaWRlIiwiZ2xpZGUtZyI6ImZhYi1nbGlkZS1nIixnb29nbGU6ImZhYi1nb29nbGUiLCJnb29nbGUtcGx1cyI6ImZhYi1nb29nbGUtcGx1cy1nIiwiZ29vZ2xlLXBsdXMtY2lyY2xlIjoiZmFiLWdvb2dsZS1wbHVzIiwiZ29vZ2xlLXBsdXMtb2ZmaWNpYWwiOiJmYWItZ29vZ2xlLXBsdXMiLCJnb29nbGUtcGx1cy1zcXVhcmUiOiJmYWItZ29vZ2xlLXBsdXMtc3F1YXJlIiwiZ29vZ2xlLXdhbGxldCI6ImZhYi1nb29nbGUtd2FsbGV0IixncmF0aXBheToiZmFiLWdyYXRpcGF5IixncmF2OiJmYWItZ3JhdiIsZ3JvdXA6InVzZXJzIiwiaGFja2VyLW5ld3MiOiJmYWItaGFja2VyLW5ld3MiLCJoYW5kLWdyYWItbyI6ImZhci1oYW5kLXJvY2siLCJoYW5kLWxpemFyZC1vIjoiZmFyLWhhbmQtbGl6YXJkIiwiaGFuZC1vLWRvd24iOiJmYXItaGFuZC1wb2ludC1kb3duIiwiaGFuZC1vLWxlZnQiOiJmYXItaGFuZC1wb2ludC1sZWZ0IiwiaGFuZC1vLXJpZ2h0IjoiZmFyLWhhbmQtcG9pbnQtcmlnaHQiLCJoYW5kLW8tdXAiOiJmYXItaGFuZC1wb2ludC11cCIsImhhbmQtcGFwZXItbyI6ImZhci1oYW5kLXBhcGVyIiwiaGFuZC1wZWFjZS1vIjoiZmFyLWhhbmQtcGVhY2UiLCJoYW5kLXBvaW50ZXItbyI6ImZhci1oYW5kLXBvaW50ZXIiLCJoYW5kLXJvY2stbyI6ImZhci1oYW5kLXJvY2siLCJoYW5kLXNjaXNzb3JzLW8iOiJmYXItaGFuZC1zY2lzc29ycyIsImhhbmQtc3BvY2stbyI6ImZhci1oYW5kLXNwb2NrIiwiaGFuZC1zdG9wLW8iOiJmYXItaGFuZC1wYXBlciIsImhhbmRzaGFrZS1vIjoiZmFyLWhhbmRzaGFrZSIsImhhcmQtb2YtaGVhcmluZyI6ImRlYWYiLCJoZGQtbyI6ImZhci1oZGQiLGhlYWRlcjoiaGVhZGluZyIsImhlYXJ0LW8iOiJmYXItaGVhcnQiLCJob3NwaXRhbC1vIjoiZmFyLWhvc3BpdGFsIixob3RlbDoiYmVkIiwiaG91cmdsYXNzLTEiOiJob3VyZ2xhc3Mtc3RhcnQiLCJob3VyZ2xhc3MtMiI6ImhvdXJnbGFzcy1oYWxmIiwiaG91cmdsYXNzLTMiOiJob3VyZ2xhc3MtZW5kIiwiaG91cmdsYXNzLW8iOiJmYXItaG91cmdsYXNzIixob3V6ejoiZmFiLWhvdXp6IixodG1sNToiZmFiLWh0bWw1IiwiaWQtY2FyZC1vIjoiZmFyLWlkLWNhcmQiLGlsczoic2hla2VsLXNpZ24iLGltYWdlOiJmYXItaW1hZ2UiLGltZGI6ImZhYi1pbWRiIixpbnI6InJ1cGVlLXNpZ24iLGluc3RhZ3JhbToiZmFiLWluc3RhZ3JhbSIsaW5zdGl0dXRpb246InVuaXZlcnNpdHkiLCJpbnRlcm5ldC1leHBsb3JlciI6ImZhYi1pbnRlcm5ldC1leHBsb3JlciIsaW50ZXJzZXg6InRyYW5zZ2VuZGVyIixpb3hob3N0OiJmYWItaW94aG9zdCIsam9vbWxhOiJmYWItam9vbWxhIixqcHk6Inllbi1zaWduIixqc2ZpZGRsZToiZmFiLWpzZmlkZGxlIiwia2V5Ym9hcmQtbyI6ImZhci1rZXlib2FyZCIsa3J3OiJ3b24tc2lnbiIsbGFzdGZtOiJmYWItbGFzdGZtIiwibGFzdGZtLXNxdWFyZSI6ImZhYi1sYXN0Zm0tc3F1YXJlIixsZWFucHViOiJmYWItbGVhbnB1YiIsbGVnYWw6ImdhdmVsIiwibGVtb24tbyI6ImZhci1sZW1vbiIsImxldmVsLWRvd24iOiJsZXZlbC1kb3duLWFsdCIsImxldmVsLXVwIjoibGV2ZWwtdXAtYWx0IiwibGlmZS1ib3V5IjoiZmFyLWxpZmUtcmluZyIsImxpZmUtYnVveSI6ImZhci1saWZlLXJpbmciLCJsaWZlLXJpbmciOiJmYXItbGlmZS1yaW5nIiwibGlmZS1zYXZlciI6ImZhci1saWZlLXJpbmciLCJsaWdodGJ1bGItbyI6ImZhci1saWdodGJ1bGIiLCJsaW5lLWNoYXJ0IjoiY2hhcnQtbGluZSIsbGlua2VkaW46ImZhYi1saW5rZWRpbi1pbiIsImxpbmtlZGluLXNxdWFyZSI6ImZhYi1saW5rZWRpbiIsbGlub2RlOiJmYWItbGlub2RlIixsaW51eDoiZmFiLWxpbnV4IiwibGlzdC1hbHQiOiJmYXItbGlzdC1hbHQiLCJsb25nLWFycm93LWRvd24iOiJsb25nLWFycm93LWFsdC1kb3duIiwibG9uZy1hcnJvdy1sZWZ0IjoibG9uZy1hcnJvdy1hbHQtbGVmdCIsImxvbmctYXJyb3ctcmlnaHQiOiJsb25nLWFycm93LWFsdC1yaWdodCIsImxvbmctYXJyb3ctdXAiOiJsb25nLWFycm93LWFsdC11cCIsIm1haWwtZm9yd2FyZCI6InNoYXJlIiwibWFpbC1yZXBseSI6InJlcGx5IiwibWFpbC1yZXBseS1hbGwiOiJyZXBseS1hbGwiLCJtYXAtbWFya2VyIjoibWFwLW1hcmtlci1hbHQiLCJtYXAtbyI6ImZhci1tYXAiLG1heGNkbjoiZmFiLW1heGNkbiIsbWVhbnBhdGg6ImZhYi1mb250LWF3ZXNvbWUiLG1lZGl1bToiZmFiLW1lZGl1bSIsbWVldHVwOiJmYWItbWVldHVwIiwibWVoLW8iOiJmYXItbWVoIiwibWludXMtc3F1YXJlLW8iOiJmYXItbWludXMtc3F1YXJlIixtaXhjbG91ZDoiZmFiLW1peGNsb3VkIixtb2JpbGU6Im1vYmlsZS1hbHQiLCJtb2JpbGUtcGhvbmUiOiJtb2JpbGUtYWx0Iixtb2R4OiJmYWItbW9keCIsbW9uZXk6ImZhci1tb25leS1iaWxsLWFsdCIsIm1vb24tbyI6ImZhci1tb29uIiwibW9ydGFyLWJvYXJkIjoiZ3JhZHVhdGlvbi1jYXAiLG5hdmljb246ImJhcnMiLCJuZXdzcGFwZXItbyI6ImZhci1uZXdzcGFwZXIiLCJvYmplY3QtZ3JvdXAiOiJmYXItb2JqZWN0LWdyb3VwIiwib2JqZWN0LXVuZ3JvdXAiOiJmYXItb2JqZWN0LXVuZ3JvdXAiLG9kbm9rbGFzc25pa2k6ImZhYi1vZG5va2xhc3NuaWtpIiwib2Rub2tsYXNzbmlraS1zcXVhcmUiOiJmYWItb2Rub2tsYXNzbmlraS1zcXVhcmUiLG9wZW5jYXJ0OiJmYWItb3BlbmNhcnQiLG9wZW5pZDoiZmFiLW9wZW5pZCIsb3BlcmE6ImZhYi1vcGVyYSIsIm9wdGluLW1vbnN0ZXIiOiJmYWItb3B0aW4tbW9uc3RlciIscGFnZWxpbmVzOiJmYWItcGFnZWxpbmVzIiwicGFwZXItcGxhbmUtbyI6ImZhci1wYXBlci1wbGFuZSIscGFzdGU6ImZhci1jbGlwYm9hcmQiLHBhdHJlb246ImZhYi1wYXRyZW9uIiwicGF1c2UtY2lyY2xlLW8iOiJmYXItcGF1c2UtY2lyY2xlIixwYXlwYWw6ImZhYi1wYXlwYWwiLHBlbmNpbDoicGVuY2lsLWFsdCIsInBlbmNpbC1zcXVhcmUiOiJwZW4tc3F1YXJlIiwicGVuY2lsLXNxdWFyZS1vIjoiZmFyLWVkaXQiLHBob3RvOiJmYXItaW1hZ2UiLCJwaWN0dXJlLW8iOiJmYXItaW1hZ2UiLCJwaWUtY2hhcnQiOiJjaGFydC1waWUiLCJwaWVkLXBpcGVyIjoiZmFiLXBpZWQtcGlwZXIiLCJwaWVkLXBpcGVyLWFsdCI6ImZhYi1waWVkLXBpcGVyLWFsdCIsInBpZWQtcGlwZXItcHAiOiJmYWItcGllZC1waXBlci1wcCIscGludGVyZXN0OiJmYWItcGludGVyZXN0IiwicGludGVyZXN0LXAiOiJmYWItcGludGVyZXN0LXAiLCJwaW50ZXJlc3Qtc3F1YXJlIjoiZmFiLXBpbnRlcmVzdC1zcXVhcmUiLCJwbGF5LWNpcmNsZS1vIjoiZmFyLXBsYXktY2lyY2xlIiwicGx1cy1zcXVhcmUtbyI6ImZhci1wbHVzLXNxdWFyZSIsInByb2R1Y3QtaHVudCI6ImZhYi1wcm9kdWN0LWh1bnQiLHFxOiJmYWItcXEiLCJxdWVzdGlvbi1jaXJjbGUtbyI6ImZhci1xdWVzdGlvbi1jaXJjbGUiLHF1b3JhOiJmYWItcXVvcmEiLHJhOiJmYWItcmViZWwiLHJhdmVscnk6ImZhYi1yYXZlbHJ5IixyZWJlbDoiZmFiLXJlYmVsIixyZWRkaXQ6ImZhYi1yZWRkaXQiLCJyZWRkaXQtYWxpZW4iOiJmYWItcmVkZGl0LWFsaWVuIiwicmVkZGl0LXNxdWFyZSI6ImZhYi1yZWRkaXQtc3F1YXJlIixyZWZyZXNoOiJzeW5jIixyZWdpc3RlcmVkOiJmYXItcmVnaXN0ZXJlZCIscmVtb3ZlOiJ0aW1lcyIscmVucmVuOiJmYWItcmVucmVuIixyZW9yZGVyOiJiYXJzIixyZXBlYXQ6InJlZG8iLHJlc2lzdGFuY2U6ImZhYi1yZWJlbCIscm1iOiJ5ZW4tc2lnbiIsInJvdGF0ZS1sZWZ0IjoidW5kbyIsInJvdGF0ZS1yaWdodCI6InJlZG8iLHJvdWJsZToicnVibGUtc2lnbiIscnViOiJydWJsZS1zaWduIixydWJsZToicnVibGUtc2lnbiIscnVwZWU6InJ1cGVlLXNpZ24iLHMxNToiYmF0aCIsc2FmYXJpOiJmYWItc2FmYXJpIixzY2lzc29yczoiY3V0IixzY3JpYmQ6ImZhYi1zY3JpYmQiLHNlbGxzeToiZmFiLXNlbGxzeSIsc2VuZDoicGFwZXItcGxhbmUiLCJzZW5kLW8iOiJmYXItcGFwZXItcGxhbmUiLCJzaGFyZS1zcXVhcmUtbyI6ImZhci1zaGFyZS1zcXVhcmUiLHNoZWtlbDoic2hla2VsLXNpZ24iLHNoZXFlbDoic2hla2VsLXNpZ24iLHNoaWVsZDoic2hpZWxkLWFsdCIsc2hpcnRzaW5idWxrOiJmYWItc2hpcnRzaW5idWxrIiwic2lnbi1pbiI6InNpZ24taW4tYWx0Iiwic2lnbi1vdXQiOiJzaWduLW91dC1hbHQiLHNpZ25pbmc6InNpZ24tbGFuZ3VhZ2UiLHNpbXBseWJ1aWx0OiJmYWItc2ltcGx5YnVpbHQiLHNreWF0bGFzOiJmYWItc2t5YXRsYXMiLHNreXBlOiJmYWItc2t5cGUiLHNsYWNrOiJmYWItc2xhY2siLHNsaWRlcnM6InNsaWRlcnMtaCIsc2xpZGVzaGFyZToiZmFiLXNsaWRlc2hhcmUiLCJzbWlsZS1vIjoiZmFyLXNtaWxlIixzbmFwY2hhdDoiZmFiLXNuYXBjaGF0Iiwic25hcGNoYXQtZ2hvc3QiOiJmYWItc25hcGNoYXQtZ2hvc3QiLCJzbmFwY2hhdC1zcXVhcmUiOiJmYWItc25hcGNoYXQtc3F1YXJlIiwic25vd2ZsYWtlLW8iOiJmYXItc25vd2ZsYWtlIiwic29jY2VyLWJhbGwtbyI6ImZhci1mdXRib2wiLCJzb3J0LWFscGhhLWFzYyI6InNvcnQtYWxwaGEtZG93biIsInNvcnQtYWxwaGEtZGVzYyI6InNvcnQtYWxwaGEtdXAiLCJzb3J0LWFtb3VudC1hc2MiOiJzb3J0LWFtb3VudC1kb3duIiwic29ydC1hbW91bnQtZGVzYyI6InNvcnQtYW1vdW50LXVwIiwic29ydC1hc2MiOiJzb3J0LXVwIiwic29ydC1kZXNjIjoic29ydC1kb3duIiwic29ydC1udW1lcmljLWFzYyI6InNvcnQtbnVtZXJpYy1kb3duIiwic29ydC1udW1lcmljLWRlc2MiOiJzb3J0LW51bWVyaWMtdXAiLHNvdW5kY2xvdWQ6ImZhYi1zb3VuZGNsb3VkIixzcG9vbjoidXRlbnNpbC1zcG9vbiIsc3BvdGlmeToiZmFiLXNwb3RpZnkiLCJzcXVhcmUtbyI6ImZhci1zcXVhcmUiLCJzdGFjay1leGNoYW5nZSI6ImZhYi1zdGFjay1leGNoYW5nZSIsInN0YWNrLW92ZXJmbG93IjoiZmFiLXN0YWNrLW92ZXJmbG93Iiwic3Rhci1oYWxmLWVtcHR5IjoiZmFyLXN0YXItaGFsZiIsInN0YXItaGFsZi1mdWxsIjoiZmFyLXN0YXItaGFsZiIsInN0YXItaGFsZi1vIjoiZmFyLXN0YXItaGFsZiIsInN0YXItbyI6ImZhci1zdGFyIixzdGVhbToiZmFiLXN0ZWFtIiwic3RlYW0tc3F1YXJlIjoiZmFiLXN0ZWFtLXNxdWFyZSIsInN0aWNreS1ub3RlLW8iOiJmYXItc3RpY2t5LW5vdGUiLCJzdG9wLWNpcmNsZS1vIjoiZmFyLXN0b3AtY2lyY2xlIixzdHVtYmxldXBvbjoiZmFiLXN0dW1ibGV1cG9uIiwic3R1bWJsZXVwb24tY2lyY2xlIjoiZmFiLXN0dW1ibGV1cG9uLWNpcmNsZSIsInN1bi1vIjoiZmFyLXN1biIsc3VwZXJwb3dlcnM6ImZhYi1zdXBlcnBvd2VycyIsc3VwcG9ydDoiZmFyLWxpZmUtcmluZyIsdGFibGV0OiJ0YWJsZXQtYWx0Iix0YWNob21ldGVyOiJ0YWNob21ldGVyLWFsdCIsdGVsZWdyYW06ImZhYi10ZWxlZ3JhbSIsdGVsZXZpc2lvbjoidHYiLCJ0ZW5jZW50LXdlaWJvIjoiZmFiLXRlbmNlbnQtd2VpYm8iLHRoZW1laXNsZToiZmFiLXRoZW1laXNsZSIsdGhlcm1vbWV0ZXI6InRoZXJtb21ldGVyLWZ1bGwiLCJ0aGVybW9tZXRlci0wIjoidGhlcm1vbWV0ZXItZW1wdHkiLCJ0aGVybW9tZXRlci0xIjoidGhlcm1vbWV0ZXItcXVhcnRlciIsInRoZXJtb21ldGVyLTIiOiJ0aGVybW9tZXRlci1oYWxmIiwidGhlcm1vbWV0ZXItMyI6InRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIiwidGhlcm1vbWV0ZXItNCI6InRoZXJtb21ldGVyLWZ1bGwiLCJ0aHVtYi10YWNrIjoidGh1bWJ0YWNrIiwidGh1bWJzLW8tZG93biI6ImZhci10aHVtYnMtZG93biIsInRodW1icy1vLXVwIjoiZmFyLXRodW1icy11cCIsdGlja2V0OiJ0aWNrZXQtYWx0IiwidGltZXMtY2lyY2xlLW8iOiJmYXItdGltZXMtY2lyY2xlIiwidGltZXMtcmVjdGFuZ2xlIjoid2luZG93LWNsb3NlIiwidGltZXMtcmVjdGFuZ2xlLW8iOiJmYXItd2luZG93LWNsb3NlIiwidG9nZ2xlLWRvd24iOiJmYXItY2FyZXQtc3F1YXJlLWRvd24iLCJ0b2dnbGUtbGVmdCI6ImZhci1jYXJldC1zcXVhcmUtbGVmdCIsInRvZ2dsZS1yaWdodCI6ImZhci1jYXJldC1zcXVhcmUtcmlnaHQiLCJ0b2dnbGUtdXAiOiJmYXItY2FyZXQtc3F1YXJlLXVwIix0cmFzaDoidHJhc2gtYWx0IiwidHJhc2gtbyI6ImZhci10cmFzaC1hbHQiLHRyZWxsbzoiZmFiLXRyZWxsbyIsdHJpcGFkdmlzb3I6ImZhYi10cmlwYWR2aXNvciIsdHJ5OiJsaXJhLXNpZ24iLHR1bWJscjoiZmFiLXR1bWJsciIsInR1bWJsci1zcXVhcmUiOiJmYWItdHVtYmxyLXNxdWFyZSIsInR1cmtpc2gtbGlyYSI6ImxpcmEtc2lnbiIsdHdpdGNoOiJmYWItdHdpdGNoIix0d2l0dGVyOiJmYWItdHdpdHRlciIsInR3aXR0ZXItc3F1YXJlIjoiZmFiLXR3aXR0ZXItc3F1YXJlIix1bnNvcnRlZDoic29ydCIsdXNiOiJmYWItdXNiIix1c2Q6ImRvbGxhci1zaWduIiwidXNlci1jaXJjbGUtbyI6ImZhci11c2VyLWNpcmNsZSIsInVzZXItbyI6ImZhci11c2VyIix2Y2FyZDoiYWRkcmVzcy1jYXJkIiwidmNhcmQtbyI6ImZhci1hZGRyZXNzLWNhcmQiLHZpYWNvaW46ImZhYi12aWFjb2luIix2aWFkZW86ImZhYi12aWFkZW8iLCJ2aWFkZW8tc3F1YXJlIjoiZmFiLXZpYWRlby1zcXVhcmUiLCJ2aWRlby1jYW1lcmEiOiJ2aWRlbyIsdmltZW86ImZhYi12aW1lby12IiwidmltZW8tc3F1YXJlIjoiZmFiLXZpbWVvLXNxdWFyZSIsdmluZToiZmFiLXZpbmUiLHZrOiJmYWItdmsiLHZrb250YWt0ZToiZmFiLXZrIiwidm9sdW1lLWNvbnRyb2wtcGhvbmUiOiJwaG9uZS12b2x1bWUiLHdhcm5pbmc6ImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIix3ZWNoYXQ6ImZhYi13ZWl4aW4iLHdlaWJvOiJmYWItd2VpYm8iLHdlaXhpbjoiZmFiLXdlaXhpbiIsd2hhdHNhcHA6ImZhYi13aGF0c2FwcCIsIndoZWVsY2hhaXItYWx0IjoiZmFiLWFjY2Vzc2libGUtaWNvbiIsIndpa2lwZWRpYS13IjoiZmFiLXdpa2lwZWRpYS13Iiwid2luZG93LWNsb3NlLW8iOiJmYXItd2luZG93LWNsb3NlIiwid2luZG93LW1heGltaXplIjoiZmFyLXdpbmRvdy1tYXhpbWl6ZSIsIndpbmRvdy1yZXN0b3JlIjoiZmFyLXdpbmRvdy1yZXN0b3JlIix3aW5kb3dzOiJmYWItd2luZG93cyIsd29uOiJ3b24tc2lnbiIsd29yZHByZXNzOiJmYWItd29yZHByZXNzIix3cGJlZ2lubmVyOiJmYWItd3BiZWdpbm5lciIsd3BleHBsb3JlcjoiZmFiLXdwZXhwbG9yZXIiLHdwZm9ybXM6ImZhYi13cGZvcm1zIix4aW5nOiJmYWIteGluZyIsInhpbmctc3F1YXJlIjoiZmFiLXhpbmctc3F1YXJlIiwieS1jb21iaW5hdG9yIjoiZmFiLXktY29tYmluYXRvciIsInktY29tYmluYXRvci1zcXVhcmUiOiJmYWItaGFja2VyLW5ld3MiLHlhaG9vOiJmYWIteWFob28iLHljOiJmYWIteS1jb21iaW5hdG9yIiwieWMtc3F1YXJlIjoiZmFiLWhhY2tlci1uZXdzIix5ZWxwOiJmYWIteWVscCIseWVuOiJ5ZW4tc2lnbiIseW9hc3Q6ImZhYi15b2FzdCIseW91dHViZToiZmFiLXlvdXR1YmUiLCJ5b3V0dWJlLXBsYXkiOiJmYWIteW91dHViZSIsInlvdXR1YmUtc3F1YXJlIjoiZmFiLXlvdXR1YmUtc3F1YXJlIn07ZnVuY3Rpb24gbihlLHQsbil7Zm9yKHZhciBpPTA7aTx1Lmxlbmd0aDtpKyspe3ZhciBzPXVbaV1bZV07aWYocyl7dmFyIG89cyh7aWQ6dCxyZXBsYWNlbWVudElkOmNbdF19LG58fHt9KTtpZihvKXJldHVybiBvfX19ZnVuY3Rpb24gdChlLHQpe3JldHVybiBuKCJub2RlIixlLHQpfWZ1bmN0aW9uIGkoZSl7dS51bnNoaWZ0KGUpfWZ1bmN0aW9uIHAoZSx0KXt2YXIgbj0iZmEgZC1pY29uIGQtaWNvbi0iKyhlLnJlcGxhY2VtZW50SWQmJi0xPGUuaWQuaW5kZXhPZigibm90aWZpY2F0aW9uLiIpP2UucmVwbGFjZW1lbnRJZDplLmlkKSsiIHN2Zy1pY29uIjtyZXR1cm4gdCYmdC5jbGFzcyYmKG4rPSIgIit0LmNsYXNzKSxufSJ1bmRlZmluZWQiIT10eXBlb2YgRGlzY291cnNlJiYoRGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGU9dCk7dmFyIG09W107ZnVuY3Rpb24gZihlKXt2YXIgdCxuLGkscyxvPWUucmVwbGFjZW1lbnRJZHx8ZS5pZHx8IiI7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkobykmJihuPWRbdD1vXSwoMCxhLmRlZmF1bHQpKCdQbGVhc2UgcmVwbGFjZSBhbGwgb2NjdXJyZW5jZXMgb2YgIicrdCsnIiIgd2l0aCAiJytuKyciLiBGb250QXdlc29tZSA0LjcgaWNvbiBuYW1lcyBhcmUgbm93IGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLicpLERpc2NvdXJzZS50ZXN0aW5nfHxtLmluY2x1ZGVzKHQpfHwoaT17bWVzc2FnZTonRkEgaWNvbiBkZXByZWNhdGlvbjogcmVwbGFjZSAiJyt0KyciIiB3aXRoICInK24rJyIuJyxzdGFja3RyYWNlOkVycm9yKCkuc3RhY2t9LEVtYmVyLiQuYWpheChEaXNjb3Vyc2UuQmFzZVVyaSsiL2xvZ3MvcmVwb3J0X2pzX2Vycm9yIix7ZGF0YTppLHR5cGU6IlBPU1QiLGNhY2hlOiExfSksbS5wdXNoKHQpKSxvPWRbb10pLG89by5yZXBsYWNlKCIgdW5waW5uZWQiLCIiKSxzPW8sInVuZGVmaW5lZCIhPXR5cGVvZiBEaXNjb3Vyc2UmJiJkZXZlbG9wbWVudCI9PT1EaXNjb3Vyc2UuRW52aXJvbm1lbnQmJiFEaXNjb3Vyc2UuZGlzYWJsZU1pc3NpbmdJY29uV2FybmluZyYmRGlzY291cnNlLlN2Z0ljb25MaXN0JiYtMT09PURpc2NvdXJzZS5TdmdJY29uTGlzdC5pbmRleE9mKHMpJiZjb25zb2xlLndhcm4oJ1RoZSBpY29uICInK3MrJyIgaXMgbWlzc2luZyBmcm9tIHRoZSBTVkcgc3Vic2V0LicpLG99aSh7bmFtZToiZm9udC1hd2Vzb21lIixzdHJpbmc6ZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGUpLGk9IjxzdmcgY2xhc3M9JyIrcChlLHQpKyIgc3ZnLXN0cmluZyciO3JldHVybiB0LmxhYmVsJiYoaSs9IiBhcmlhLWhpZGRlbj0ndHJ1ZSciKSxpKz0nIHhtbG5zPSInK2wrJyI+PHVzZSB4bGluazpocmVmPSIjJytuKyciIC8+PC9zdmc+Jyx0LmxhYmVsJiYoaSs9IjxzcGFuIGNsYXNzPSdzci1vbmx5Jz4iK3QubGFiZWwrIjwvc3Bhbj4iKSx0LnRpdGxlJiYoaT0nPHNwYW4gY2xhc3M9InN2Zy1pY29uLXRpdGxlIiB0aXRsZT1cJycrSTE4bi50KHQudGl0bGUpLnJlcGxhY2UoLycvZywiJiMzOTsiKSsiJz4iK2krIjwvc3Bhbj4iKSx0LnRyYW5zbGF0ZWR0aXRsZSYmKGk9JzxzcGFuIGNsYXNzPSJzdmctaWNvbi10aXRsZSIgdGl0bGU9XCcnK3QudHJhbnNsYXRlZHRpdGxlLnJlcGxhY2UoLycvZywiJiMzOTsiKSsiJz4iK2krIjwvc3Bhbj4iKSxpfSxub2RlOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZihlKSxpPXAoZSx0KSsiIHN2Zy1ub2RlIixzPSgwLG8uaCkoInN2ZyIse2F0dHJpYnV0ZXM6e2NsYXNzOmksImFyaWEtaGlkZGVuIjohMH0sbmFtZXNwYWNlOmx9LFsoMCxvLmgpKCJ1c2UiLHsieGxpbms6aHJlZiI6KDAsci5kZWZhdWx0KSgiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsIiMiK24pLG5hbWVzcGFjZTpsfSldKTtyZXR1cm4gdC50aXRsZT8oMCxvLmgpKCJzcGFuIix7dGl0bGU6dC50aXRsZSxhdHRyaWJ1dGVzOntjbGFzczoic3ZnLWljb24tdGl0bGUifX0sW3NdKTpzfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycy1oZWxwZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVnaXN0ZXJSYXdIZWxwZXJzPWZ1bmN0aW9uKGksZSl7aS5oZWxwZXJzfHwoaS5oZWxwZXJzPU9iamVjdC5jcmVhdGUoZS5oZWxwZXJzKSk7ZnVuY3Rpb24gdChlKXt2YXIgbj1pLmhlbHBlcnNbZV07aS5oZWxwZXJzW2VdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uYXBwbHkodGhpcyxbaS5oZWxwZXJzLmdldChlLHQpLHRdKX19aS5oZWxwZXJzLmdldD1mdW5jdGlvbihlLHQpe2lmKGUmJnQuY29udGV4dHMpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gZTt2YXIgbj10LmNvbnRleHRzWzBdLGk9bltlXTtyZXR1cm4gMD09PWUudG9TdHJpbmcoKS5pbmRleE9mKCJjb250cm9sbGVyLiIpJiYoZT1lLnNsaWNlKGUuaW5kZXhPZigiLiIpKzEpKSx2b2lkIDA9PT1pPygwLGwuZ2V0KShuLGUpOml9fSxpLnJlZ2lzdGVySGVscGVyKCJlYWNoIixmdW5jdGlvbihlLHQsbixpKXtmb3IodmFyIHM9KDAsbC5nZXQpKHRoaXMsbiksbz1bXSxyPU9iamVjdC5jcmVhdGUodGhpcyksYT0wO2E8cy5sZW5ndGg7YSsrKXJbZV09c1thXSxvLnB1c2goaS5mbihyKSk7cmV0dXJuIG8uam9pbigiIil9KTt2YXIgbj1pLmhlbHBlcnMuaWY7aS5oZWxwZXJzLnVubGVzcz1mdW5jdGlvbihlLHQpe3JldHVybiBuLmFwcGx5KHRoaXMsW2kuaGVscGVycy5nZXQoZSx0KSx7Zm46dC5pbnZlcnNlLGludmVyc2U6dC5mbixoYXNoOnQuaGFzaH1dKX0sdCgiaWYiKSx0KCJ3aXRoIil9fSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRlbXBsYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHIudGVtcGxhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLnByZWNvbXBpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gci5wcmVjb21waWxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZS5jb21waWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHIuY29tcGlsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciByPUhhbmRsZWJhcnMuY3JlYXRlKCk7ZnVuY3Rpb24gbihlLHQpe3ZhciBuPXt0eXBlOiJQYXRoRXhwcmVzc2lvbiIsZGF0YTohMSxkZXB0aDplLnBhdGguZGVwdGgsbG9jOmUucGF0aC5sb2N9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZV09dFtlXX0pLG59ZnVuY3Rpb24gYShlKXt2YXIgdD1uZXcgSGFuZGxlYmFycy5WaXNpdG9yO3QubXV0YXRpbmc9ITAsdC5NdXN0YWNoZVN0YXRlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJhbXMubGVuZ3RofHxlLmhhc2h8fChlLnBhcmFtc1swXT1lLnBhdGgsZS5wYXRoPW4oZSx7cGFydHM6WyJnZXQiXSxvcmlnaW5hbDoiZ2V0IixzdHJpY3Q6ITAsZmFsc3k6ITB9KSksSGFuZGxlYmFycy5WaXNpdG9yLnByb3RvdHlwZS5NdXN0YWNoZVN0YXRlbWVudC5jYWxsKHRoaXMsZSl9LHQuQmxvY2tTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImVhY2giPT09ZS5wYXRoLm9yaWdpbmFsJiYxPT09ZS5wYXJhbXMubGVuZ3RoJiYodD1lLnByb2dyYW0uYmxvY2tQYXJhbXNbMF0sZS5wYXJhbXM9W24oZSx7b3JpZ2luYWw6dH0pLHt0eXBlOiJDb21tZW50U3RhdGVtZW50Iix2YWx1ZToiaW4ifSxlLnBhcmFtc1swXV0sZGVsZXRlIGUucHJvZ3JhbS5ibG9ja1BhcmFtcyksSGFuZGxlYmFycy5WaXNpdG9yLnByb3RvdHlwZS5CbG9ja1N0YXRlbWVudC5jYWxsKHRoaXMsZSl9LHQuYWNjZXB0KGUpfUhhbmRsZWJhcnMuQ29tcGlsZXImJihyLkNvbXBpbGVyPWZ1bmN0aW9uKCl7fSxyLkNvbXBpbGVyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhhbmRsZWJhcnMuQ29tcGlsZXIucHJvdG90eXBlKSxyLkNvbXBpbGVyLnByb3RvdHlwZS5jb21waWxlcj1yLkNvbXBpbGVyLHIuSmF2YVNjcmlwdENvbXBpbGVyPWZ1bmN0aW9uKCl7fSxyLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShIYW5kbGViYXJzLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGUpLHIuSmF2YVNjcmlwdENvbXBpbGVyLnByb3RvdHlwZS5jb21waWxlcj1yLkphdmFTY3JpcHRDb21waWxlcixyLkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGUubmFtZXNwYWNlPSJSYXdIYW5kbGViYXJzIixyLnByZWNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj1IYW5kbGViYXJzLnBhcnNlKGUpO2Eobik7dmFyIGk9e2tub3duSGVscGVyczp7Z2V0OiEwfSxkYXRhOiEwLHN0cmluZ1BhcmFtczohMH07dD12b2lkIDA9PT10fHx0O3ZhciBzPShuZXcgci5Db21waWxlcikuY29tcGlsZShuLGkpO3JldHVybihuZXcgci5KYXZhU2NyaXB0Q29tcGlsZXIpLmNvbXBpbGUocyxpLHZvaWQgMCx0KX0sci5jb21waWxlPWZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMucGFyc2UoZSk7YSh0KTt2YXIgbj17ZGF0YTohMCxzdHJpbmdQYXJhbXM6ITB9LGk9KG5ldyByLkNvbXBpbGVyKS5jb21waWxlKHQsbikscz0obmV3IHIuSmF2YVNjcmlwdENvbXBpbGVyKS5jb21waWxlKGksbix2b2lkIDAsITApLG89ci50ZW1wbGF0ZShzKTtyZXR1cm4gby5pc01ldGhvZD0hMSxvfSksZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vbWl4aW5zL2ZvY3VzLWV2ZW50IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuY3JlYXRlKHtyZWFkeTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9vbkNoYW5nZUhhbmRsZXI9KDAsdC5iaW5kKSh0aGlzLHRoaXMuX29uQ2hhbmdlKSxEaXNjb3Vyc2Uuc2V0KCJoYXNGb2N1cyIsITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMuX29uQ2hhbmdlSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVzdW1lIix0aGlzLl9vbkNoYW5nZUhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZyZWV6ZSIsdGhpcy5fb25DaGFuZ2VIYW5kbGVyKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsdGhpcy5fb25DaGFuZ2VIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXN1bWUiLHRoaXMuX29uQ2hhbmdlSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZnJlZXplIix0aGlzLl9vbkNoYW5nZUhhbmRsZXIpLHRoaXMuX29uQ2hhbmdlSGFuZGxlcj1udWxsfSxfb25DaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT0oMCxuLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpOyJoaWRkZW4iPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP0Rpc2NvdXJzZS5oYXNGb2N1cyYmKERpc2NvdXJzZS5zZXQoImhhc0ZvY3VzIiwhMSksZS50cmlnZ2VyKCJkaXNjb3Vyc2U6Zm9jdXMtY2hhbmdlZCIsITEpKTpEaXNjb3Vyc2UuaGFzRm9jdXN8fChEaXNjb3Vyc2Uuc2V0KCJoYXNGb2N1cyIsITApLGUudHJpZ2dlcigiZGlzY291cnNlOmZvY3VzLWNoYW5nZWQiLCEwKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHQscyxvLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXRSZXNvbHZlck9wdGlvbj1mdW5jdGlvbihlLHQpe25bZV09dH0sZS5nZXRSZXNvbHZlck9wdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gbltlXX0sZS5idWlsZFJlc29sdmVyPWZ1bmN0aW9uKHIpe3JldHVybiBFbWJlci5EZWZhdWx0UmVzb2x2ZXIuZXh0ZW5kKHtwYXJzZU5hbWU6aSxyZXNvbHZlUm91dGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXIrIi9yb3V0ZXIiO3JldHVybiByZXF1aXJlanMuZW50cmllc1t0XT9yZXF1aXJlanModCxudWxsLG51bGwsITApLmRlZmF1bHQ6dGhpcy5fc3VwZXIoZSl9LG5vcm1hbGl6ZTpmdW5jdGlvbihlKXtpZigiYXBwLWV2ZW50czptYWluIj09PWUpcmV0dXJuKDAsby5kZWZhdWx0KSgiYGFwcC1ldmVudHM6bWFpbmAgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBgc2VydmljZTphcHAtZXZlbnRzYCIse3NpbmNlOiIyLjQuMCJ9KSwic2VydmljZTphcHAtZXZlbnRzIjt2YXIgdD1lLnNwbGl0KCI6Iik7aWYoMTx0Lmxlbmd0aCl7dmFyIG49cisiLyIrdFswXSsicy8iLGk9ImFkbWluLyIrdFswXSsicy8iO3RbMV09dFsxXS5yZXBsYWNlKCIudGVtcGxhdGVzIiwiIikucmVwbGFjZSgiL3RlbXBsYXRlcyIsIiIpO3ZhciBzPSgwLGEuZGFzaGVyaXplKSh0WzFdLnJlcGxhY2UoL1wuL2csIi8iKSk7aWYocmVxdWlyZWpzLmVudHJpZXNbbitzXXx8cmVxdWlyZWpzLmVudHJpZXNbaStzXSlyZXR1cm4gdFswXSsiOiIrcztpZihzPSgwLGEuZGFzaGVyaXplKSh0WzFdLnJlcGxhY2UoL1wuL2csIi0iKSkscmVxdWlyZWpzLmVudHJpZXNbbitzXXx8cmVxdWlyZWpzLmVudHJpZXNbaStzXSlyZXR1cm4gdFswXSsiOiIrc31yZXR1cm4gdGhpcy5fc3VwZXIoZSl9LGN1c3RvbVJlc29sdmU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnR5cGUrInMvIitlLmZ1bGxOYW1lV2l0aG91dFR5cGUsaT0oMCxhLmRhc2hlcml6ZSkobikscz1PYmplY3Qua2V5cyhyZXF1aXJlanMuZW50cmllcykuZmluZChmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuaW5kZXhPZihuLGUubGVuZ3RoLW4ubGVuZ3RoKXx8LTEhPT1lLmluZGV4T2YoaSxlLmxlbmd0aC1pLmxlbmd0aCl9KTtyZXR1cm4gcyYmKHQ9cmVxdWlyZWpzKHMsbnVsbCxudWxsLCEwKSkmJnQuZGVmYXVsdCYmKHQ9dC5kZWZhdWx0KSx0fSxyZXNvbHZlV2lkZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlQWRhcHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZU1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlVmlldzpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZUhlbHBlcjpmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmZpbmRIZWxwZXIpKGUuZnVsbE5hbWVXaXRob3V0VHlwZSl8fHRoaXMuY3VzdG9tUmVzb2x2ZShlKXx8dGhpcy5fc3VwZXIoZSl9LHJlc29sdmVDb250cm9sbGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlQ29tcG9uZW50OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1c3RvbVJlc29sdmUoZSl8fHRoaXMuX3N1cGVyKGUpfSxyZXNvbHZlU2VydmljZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXN0b21SZXNvbHZlKGUpfHx0aGlzLl9zdXBlcihlKX0scmVzb2x2ZVJvdXRlOmZ1bmN0aW9uKGUpe3JldHVybiJiYXNpYyI9PT1lLmZ1bGxOYW1lV2l0aG91dFR5cGU/cmVxdWlyZWpzKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsbnVsbCxudWxsLCEwKS5kZWZhdWx0OnRoaXMuY3VzdG9tUmVzb2x2ZShlKXx8dGhpcy5fc3VwZXIoZSl9LGZpbmRMb2FkaW5nVGVtcGxhdGU6ZnVuY3Rpb24oZSl7aWYoZS5mdWxsTmFtZVdpdGhvdXRUeXBlLm1hdGNoKC9sb2FkaW5nJC8pKXJldHVybiBFbWJlci5URU1QTEFURVMubG9hZGluZ30sZmluZENvbm5lY3RvclRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5yZXBsYWNlKCJjb21wb25lbnRzLyIsIiIpO2lmKDA9PT10LmluZGV4T2YoImNvbm5lY3RvcnMiKSlyZXR1cm4gRW1iZXIuVEVNUExBVEVTWyJqYXZhc2NyaXB0cy8iK3RdfSxyZXNvbHZlVGVtcGxhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmluZFBsdWdpbk1vYmlsZVRlbXBsYXRlKGUpfHx0aGlzLmZpbmRQbHVnaW5UZW1wbGF0ZShlKXx8dGhpcy5maW5kTW9iaWxlVGVtcGxhdGUoZSl8fHRoaXMuZmluZFRlbXBsYXRlKGUpfHx0aGlzLmZpbmRMb2FkaW5nVGVtcGxhdGUoZSl8fHRoaXMuZmluZENvbm5lY3RvclRlbXBsYXRlKGUpfHxFbWJlci5URU1QTEFURVMubm90X2ZvdW5kfSxmaW5kUGx1Z2luVGVtcGxhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wYXJzZU5hbWUoZS5mdWxsTmFtZS5yZXBsYWNlKCJ0ZW1wbGF0ZToiLCJ0ZW1wbGF0ZTpqYXZhc2NyaXB0cy8iKSk7cmV0dXJuIHRoaXMuZmluZFRlbXBsYXRlKHQpfSxmaW5kUGx1Z2luTW9iaWxlVGVtcGxhdGU6ZnVuY3Rpb24oZSl7aWYobi5tb2JpbGVWaWV3KXt2YXIgdD10aGlzLnBhcnNlTmFtZShlLmZ1bGxOYW1lLnJlcGxhY2UoInRlbXBsYXRlOiIsInRlbXBsYXRlOmphdmFzY3JpcHRzL21vYmlsZS8iKSk7cmV0dXJuIHRoaXMuZmluZFRlbXBsYXRlKHQpfX0sZmluZE1vYmlsZVRlbXBsYXRlOmZ1bmN0aW9uKGUpe2lmKG4ubW9iaWxlVmlldyl7dmFyIHQ9dGhpcy5wYXJzZU5hbWUoZS5mdWxsTmFtZS5yZXBsYWNlKCJ0ZW1wbGF0ZToiLCJ0ZW1wbGF0ZTptb2JpbGUvIikpO3JldHVybiB0aGlzLmZpbmRUZW1wbGF0ZSh0KX19LGZpbmRUZW1wbGF0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmZ1bGxOYW1lV2l0aG91dFR5cGUsbj10LnJlcGxhY2UoL1wuL2csIi8iKSxpPXQuZGVjYW1lbGl6ZSgpLHM9aS5yZXBsYWNlKC9cLi9nLCItIikucmVwbGFjZSgvXF8vZywiLSIpLG89RW1iZXIuVEVNUExBVEVTO3JldHVybiB0aGlzLl9zdXBlcihlKXx8b1tuXXx8b1t0XXx8b1t0LnJlcGxhY2UoL1wucmF3JC8sIiIpXXx8b1tzXXx8b1tpLnJlcGxhY2UoL1wuLywiLyIpXXx8b1tpLnJlcGxhY2UoL1xfLywiLyIpXXx8b1tyKyIvdGVtcGxhdGVzLyIrdF18fHRoaXMuZmluZEFkbWluVGVtcGxhdGUoZSl8fHRoaXMuZmluZFVuZGVyc2NvcmVkVGVtcGxhdGUoZSl9LGZpbmRVbmRlcnNjb3JlZFRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5kZWNhbWVsaXplKCkucmVwbGFjZSgvXC0vZywiXyIpO3JldHVybiBFbWJlci5URU1QTEFURVNbdF19LGZpbmRBZG1pblRlbXBsYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZnVsbE5hbWVXaXRob3V0VHlwZS5kZWNhbWVsaXplKCk7aWYoMD09PXQuaW5kZXhPZigiY29tcG9uZW50cyIpKXt2YXIgbj0iYWRtaW4vdGVtcGxhdGVzLyIrdCxpPUVtYmVyLlRFTVBMQVRFU1siamF2YXNjcmlwdHMvIituXXx8RW1iZXIuVEVNUExBVEVTW25dO2lmKGkpcmV0dXJuIGl9aWYoImphdmFzY3JpcHRzL2FkbWluIj09PXQpcmV0dXJuIEVtYmVyLlRFTVBMQVRFU1siYWRtaW4vdGVtcGxhdGVzL2FkbWluIl07aWYoMD09PXQuaW5kZXhPZigiYWRtaW4iKXx8MD09PXQuaW5kZXhPZigiamF2YXNjcmlwdHMvYWRtaW4iKSl7dmFyIHM9KHQ9KHQ9KHQ9dC5yZXBsYWNlKC9eYWRtaW5cXy8sImFkbWluL3RlbXBsYXRlcy8iKSkucmVwbGFjZSgvXmFkbWluXC4vLCJhZG1pbi90ZW1wbGF0ZXMvIikpLnJlcGxhY2UoL1wuL2csIl8iKSkucmVwbGFjZSgvXy9nLCItIik7cmV0dXJuIEVtYmVyLlRFTVBMQVRFU1t0XXx8RW1iZXIuVEVNUExBVEVTW3NdfHxFbWJlci5URU1QTEFURVNbcy5yZXBsYWNlKCJhZG1pbi0iLCJhZG1pbi8iKV19fX0pfTt2YXIgbj17fTtmdW5jdGlvbiBpKGUpe3ZhciB0PWUuc3BsaXQoIjoiKSxuPXRbMF0saT10WzFdO3JldHVybntmdWxsTmFtZTplLHR5cGU6bixmdWxsTmFtZVdpdGhvdXRUeXBlOmksbmFtZTppLHJvb3Q6KDAscy5nZXQpKHRoaXMsIm5hbWVzcGFjZSIpLHJlc29sdmVNZXRob2ROYW1lOiJyZXNvbHZlIisoMCxhLmNsYXNzaWZ5KShuKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLFsiZXhwb3J0cyIsImVtYmVyLWFkZG9ucy91dGlscy9oYW5kbGUtZGVzY3JpcHRvciIsImVtYmVyLWFkZG9ucy91dGlscy9pcy1kZXNjcmlwdG9yIiwiZW1iZXItYWRkb25zL3V0aWxzL2V4dHJhY3QtdmFsdWUiLCJAZW1iZXIvcnVubG9vcCIsImVtYmVyLWFkZG9ucy9kZWNvcmF0b3ItYWxpYXMiLCJlbWJlci1hZGRvbnMvbWFjcm8tYWxpYXMiXSxmdW5jdGlvbihlLGkscyxvLHIsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudW5pcT1lLnVuaW9uPWUuc3VtPWUuc29ydD1lLnNldERpZmY9ZS5yZWFkcz1lLm9yPWUub25lV2F5PWUubm90RW1wdHk9ZS5ub3Q9ZS5ub25lPWUubWluPWUubWF4PWUubWF0Y2g9ZS5tYXBCeT1lLm1hcD1lLmx0ZT1lLmx0PWUuZ3RlPWUuZ3Q9ZS5maWx0ZXJCeT1lLmZpbHRlcj1lLmVxdWFsPWUuZW1wdHk9ZS5jb2xsZWN0PWUuYm9vbD1lLmFuZD1lLmFsaWFzPWUub2JzZXJ2ZXM9ZS5vbj12b2lkIDAsZS5kZWZhdWx0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oMCxzLmRlZmF1bHQpKHRbdC5sZW5ndGgtMV0pP2kuZGVmYXVsdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKTpmdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHQuYXBwbHkodm9pZCAwLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykuY29uY2F0KFt0XSkpfX0sZS5hZnRlclJlbmRlcj1mdW5jdGlvbihlLHQsbil7dmFyIGk9bi52YWx1ZTtuLnZhbHVlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50czsoMCxyLm5leHQpKGZ1bmN0aW9uKCl7KDAsci5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2lmKGUuZWxlbWVudCYmIWUuaXNEZXN0cm95aW5nJiYhZS5pc0Rlc3Ryb3llZClyZXR1cm4gaS5hcHBseShlLHQpfSl9KX19LGUucmVhZE9ubHk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybnt3cml0YWJsZTohMSxlbnVtZXJhYmxlOm4uZW51bWVyYWJsZSxjb25maWd1cmFibGU6bi5jb25maWd1cmFibGUsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmRlZmF1bHQpKG4pLnJlYWRPbmx5KCl9fX07ZS5vbj0oMCx0LmRlZmF1bHQpKEVtYmVyLm9uLCJDYW4gbm90IGBvbmAgd2l0aG91dCBldmVudCBuYW1lcyIpLGUub2JzZXJ2ZXM9KDAsdC5kZWZhdWx0KShFbWJlci5vYnNlcnZlciwiQ2FuIG5vdCBgb2JzZXJ2ZWAgd2l0aG91dCBwcm9wZXJ0eSBuYW1lcyIpLGUuYWxpYXM9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5hbGlhcyksZS5hbmQ9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5hbmQpLGUuYm9vbD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmJvb2wpLGUuY29sbGVjdD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmNvbGxlY3QpLGUuZW1wdHk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5lbXB0eSksZS5lcXVhbD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmVxdWFsKSxlLmZpbHRlcj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmZpbHRlciksZS5maWx0ZXJCeT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLmZpbHRlckJ5KSxlLmd0PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQuZ3QpLGUuZ3RlPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQuZ3RlKSxlLmx0PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubHQpLGUubHRlPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubHRlKSxlLm1hcD0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1hcCksZS5tYXBCeT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1hcEJ5KSxlLm1hdGNoPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubWF0Y2gpLGUubWF4PSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubWF4KSxlLm1pbj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLm1pbiksZS5ub25lPSgwLG4uZGVmYXVsdCkoRW1iZXIuY29tcHV0ZWQubm9uZSksZS5ub3Q9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5ub3QpLGUubm90RW1wdHk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5ub3RFbXB0eSksZS5vbmVXYXk9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5vbmVXYXkpLGUub3I9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5vciksZS5yZWFkcz0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnJlYWRzKSxlLnNldERpZmY9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5zZXREaWZmKSxlLnNvcnQ9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC5zb3J0KSxlLnN1bT0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnN1bSksZS51bmlvbj0oMCxuLmRlZmF1bHQpKEVtYmVyLmNvbXB1dGVkLnVuaW9uKSxlLnVuaXE9KDAsbi5kZWZhdWx0KShFbWJlci5jb21wdXRlZC51bmlxKX0pLGRlZmluZSgiZW1iZXItYWRkb25zL2RlY29yYXRvci1hbGlhcyIsWyJleHBvcnRzIiwiLi91dGlscy9leHRyYWN0LXZhbHVlIl0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihzLG4pe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoZSksdD0wO3Q8ZTt0KyspaVt0XT1hcmd1bWVudHNbdF07aWYoMD09PWkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybntlbnVtZXJhYmxlOm4uZW51bWVyYWJsZSxjb25maWd1cmFibGU6bi5jb25maWd1cmFibGUsd3JpdGFibGU6bi53cml0YWJsZSxpbml0aWFsaXplcjpmdW5jdGlvbigpe3ZhciBlPSgwLG8uZGVmYXVsdCkobik7cmV0dXJuIHMuYXBwbHkobnVsbCxpLmNvbmNhdChlKSl9fX19fX0pLGRlZmluZSgiZW1iZXItYWRkb25zL21hY3JvLWFsaWFzIixbImV4cG9ydHMiLCIuL3V0aWxzL2lzLWRlc2NyaXB0b3IiXSxmdW5jdGlvbihlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUsdCxuLGkpe3ZhciBzPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTpbXTtyZXR1cm57ZW51bWVyYWJsZTpuLmVudW1lcmFibGUsY29uZmlndXJhYmxlOm4uY29uZmlndXJhYmxlLHdyaXRhYmxlOm4ud3JpdGFibGUsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaS5hcHBseSh2b2lkIDAsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfShzKSl9fX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoZSksdD0wO3Q8ZTt0KyspaVt0XT1hcmd1bWVudHNbdF07cmV0dXJuKDAsbi5kZWZhdWx0KShpW2kubGVuZ3RoLTFdKT9vLmFwcGx5KHZvaWQgMCxpLmNvbmNhdChbc10pKTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8oZSx0LG4scyxpKX19fX0pLGRlZmluZSgiZW1iZXItYWRkb25zL2ZtdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10O2lmKCFfLmlzQXJyYXkobil8fDI8YXJndW1lbnRzLmxlbmd0aCl7bj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtmb3IodmFyIGk9MSxzPWFyZ3VtZW50cy5sZW5ndGg7aTxzO2krKyluW2ktMV09YXJndW1lbnRzW2ldfXZhciBvPTA7cmV0dXJuIGUucmVwbGFjZSgvJUAoWzAtOV0rKT8vZyxmdW5jdGlvbihlLHQpe3JldHVybiB0PXQ/cGFyc2VJbnQodCwxMCktMTpvKyssInN0cmluZyI9PXR5cGVvZihlPW5bdF0pP2U6bnVsbD09PWU/IihudWxsKSI6dm9pZCAwPT09ZT8iIjoiIitlfSl9fSksdm9pZCAwPT09UmVnRXhwLnByb3RvdHlwZS5mbGFncyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKCkubWF0Y2goL1tnaW1zdXldKiQvKVswXX19KSxTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0fHwoU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydD1mdW5jdGlvbihlLHQpe3JldHVybiBlPj49MCx0PVN0cmluZyh2b2lkIDAhPT10P3Q6IiAiKSx0aGlzLmxlbmd0aD49ZT9TdHJpbmcodGhpcyk6KChlLT10aGlzLmxlbmd0aCk+dC5sZW5ndGgmJih0Kz10LnJlcGVhdChlL3QubGVuZ3RoKSksdC5zbGljZSgwLGUpK1N0cmluZyh0aGlzKSl9KSxTdHJpbmcucHJvdG90eXBlLnBhZEVuZHx8KFN0cmluZy5wcm90b3R5cGUucGFkRW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj0wLHQ9U3RyaW5nKHZvaWQgMCE9PXQ/dDoiICIpLHRoaXMubGVuZ3RoPmU/U3RyaW5nKHRoaXMpOigoZS09dGhpcy5sZW5ndGgpPnQubGVuZ3RoJiYodCs9dC5yZXBlYXQoZS90Lmxlbmd0aCkpLFN0cmluZyh0aGlzKSt0LnNsaWNlKDAsZSkpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvYWRtaW4tZ3JvdXAtc2VsZWN0b3IiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiYWRtaW4tZ3JvdXAtc2VsZWN0b3IiXSxjbGFzc05hbWVzOlsiYWRtaW4tZ3JvdXAtc2VsZWN0b3IiXSxzZWxlY3RLaXRPcHRpb25zOnthbGxvd0FueTohMX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3JpZXMtYWRtaW4tZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImNhdGVnb3JpZXMtYWRtaW4tZHJvcGRvd24iXSxjbGFzc05hbWVzOlsiY2F0ZWdvcmllcy1hZG1pbi1kcm9wZG93biJdLGZpeGVkQ2F0ZW9yeVBvc2l0aW9uczooMCxpLnNldHRpbmcpKCJmaXhlZF9jYXRlZ29yeV9wb3NpdGlvbnMiKSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJiYXJzIixzaG93RnVsbFRpdGxlOiExLGF1dG9GaWx0ZXJhYmxlOiExLGZpbHRlcmFibGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT1be2lkOiJjcmVhdGUiLG5hbWU6STE4bi50KCJjYXRlZ29yeS5jcmVhdGUiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNhdGVnb3J5LmNyZWF0ZV9sb25nIiksaWNvbjoicGx1cyJ9XTtyZXR1cm4gdGhpcy5maXhlZENhdGVvcnlQb3NpdGlvbnMmJmUucHVzaCh7aWQ6InJlb3JkZXIiLG5hbWU6STE4bi50KCJjYXRlZ29yaWVzLnJlb3JkZXIudGl0bGUiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNhdGVnb3JpZXMucmVvcmRlci50aXRsZV9sb25nIiksaWNvbjoicmFuZG9tIn0pLGV9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktY2hvb3NlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCIsImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLHIsaSxzLG8sYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjYXRlZ29yeS1jaG9vc2VyIl0sY2xhc3NOYW1lczpbImNhdGVnb3J5LWNob29zZXIiXSxhbGxvd1VuY2F0ZWdvcml6ZWRUb3BpY3M6KDAsYS5zZXR0aW5nKSgiYWxsb3dfdW5jYXRlZ29yaXplZF90b3BpY3MiKSxmaXhlZENhdGVnb3J5UG9zaXRpb25zT25DcmVhdGU6KDAsYS5zZXR0aW5nKSgiZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zX29uX2NyZWF0ZSIpLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsYWxsb3dVbmNhdGVnb3JpemVkOiExLGFsbG93U3ViQ2F0ZWdvcmllczohMCxwZXJtaXNzaW9uVHlwZTpuLmRlZmF1bHQuRlVMTCxleGNsdWRlQ2F0ZWdvcnlJZDpudWxsLHNjb3BlZENhdGVnb3J5SWQ6bnVsbH0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuImNhdGVnb3J5LXJvdyJ9LG1vZGlmeU5vU2VsZWN0aW9uOmZ1bmN0aW9uKCl7aWYoKDAsby5pc05vbmUpKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZSkpcmV0dXJuIHRoaXMuYWxsb3dVbmNhdGVnb3JpemVkVG9waWNzfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZD9yLmRlZmF1bHQuZmluZFVuY2F0ZWdvcml6ZWQoKTp0aGlzLmRlZmF1bHRJdGVtKG51bGwsSTE4bi50KCJjYXRlZ29yeS5jaG9vc2UiKS5odG1sU2FmZSgpKTt2YXIgZT0ic3RyaW5nIj09dHlwZW9mIHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZTtyZXR1cm4gdGhpcy5kZWZhdWx0SXRlbShudWxsLEkxOG4udChlP3RoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubm9uZToiY2F0ZWdvcnkubm9uZSIpLmh0bWxTYWZlKCkpfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lmhhc1NlbGVjdGlvbiYmKHQ9ci5kZWZhdWx0LmZpbmRCeUlkKHRoaXMudmFsdWUpLCgwLHMuc2V0KShlLCJsYWJlbCIsKDAsaS5jYXRlZ29yeUJhZGdlSFRNTCkodCx7bGluazohMSxoaWRlUGFyZW50OiEhdC5wYXJlbnRfY2F0ZWdvcnlfaWQsYWxsb3dVbmNhdGVnb3JpemVkOiEwLHJlY3Vyc2l2ZTohMH0pLmh0bWxTYWZlKCkpKSxlfSxzZWFyY2g6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcztyZXR1cm4gcz90aGlzLmNvbnRlbnQuZmlsdGVyKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5maW5kQnlJZChvLmdldFZhbHVlKGUpKSxuPW8uZ2V0TmFtZShlKTtpZih0JiZ0LnBhcmVudENhdGVnb3J5KXt2YXIgaT1vLmdldE5hbWUodC5wYXJlbnRDYXRlZ29yeSk7cmV0dXJuIG8uX21hdGNoQ2F0ZWdvcnkocyxuKXx8by5fbWF0Y2hDYXRlZ29yeShzLGkpfXJldHVybiBvLl9tYXRjaENhdGVnb3J5KHMsbil9KTp0aGlzLmNvbnRlbnR9LGNvbnRlbnQ6KDAscy5jb21wdXRlZCkoInNlbGVjdEtpdC57ZmlsdGVyLG9wdGlvbnMuc2NvcGVkQ2F0ZWdvcnlJZH0iLGZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc2VsZWN0S2l0LmZpbHRlciYmdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkP3RoaXMuY2F0ZWdvcmllc0J5U2NvcGUodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkKTp0aGlzLmNhdGVnb3JpZXNCeVNjb3BlKCl9KSxjYXRlZ29yaWVzQnlTY29wZTpmdW5jdGlvbihlKXt2YXIgdCxpPXRoaXMscz0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZTpudWxsLG49dGhpcy5maXhlZENhdGVnb3J5UG9zaXRpb25zT25DcmVhdGU/ci5kZWZhdWx0Lmxpc3QoKTpyLmRlZmF1bHQubGlzdEJ5QWN0aXZpdHkoKTtzJiYodD1yLmRlZmF1bHQuZmluZEJ5SWQocykscz10LnBhcmVudF9jYXRlZ29yeV9pZHx8dC5pZCk7dmFyIG89dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5leGNsdWRlQ2F0ZWdvcnlJZDtyZXR1cm4gbi5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9aS5nZXRWYWx1ZShlKTtpZihzJiZ0IT09cyYmZS5wYXJlbnRfY2F0ZWdvcnlfaWQhPT1zKXJldHVybiExO2lmKCExPT09aS5zZWxlY3RLaXQub3B0aW9ucy5hbGxvd1N1YkNhdGVnb3JpZXMmJmUucGFyZW50Q2F0ZWdvcnkpcmV0dXJuITE7aWYoITE9PT1pLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZCYmZS5pc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeXx8bz09PXQpcmV0dXJuITE7dmFyIG49aS5zZWxlY3RLaXQub3B0aW9ucy5wZXJtaXNzaW9uVHlwZTtyZXR1cm4hbnx8bj09PWUucGVybWlzc2lvbn0pfSxfbWF0Y2hDYXRlZ29yeTpmdW5jdGlvbihlLHQpe3JldHVybi0xPHRoaXMuX25vcm1hbGl6ZSh0KS5pbmRleE9mKGUpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5BTExfQ0FURUdPUklFU19JRD1lLk5PX0NBVEVHT1JJRVNfSUQ9dm9pZCAwO3ZhciBhPWUuTk9fQ0FURUdPUklFU19JRD0ibm8tY2F0ZWdvcmllcyIsbD1lLkFMTF9DQVRFR09SSUVTX0lEPSJhbGwtY2F0ZWdvcmllcyI7ZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktZHJvcCJdLGNsYXNzTmFtZUJpbmRpbmdzOlsiY2F0ZWdvcnlTdHlsZSJdLGNsYXNzTmFtZXM6WyJjYXRlZ29yeS1kcm9wIl0sdmFsdWU6KDAsdC5yZWFkT25seSkoImNhdGVnb3J5LmlkIiksY29udGVudDooMCx0LnJlYWRPbmx5KSgiY2F0ZWdvcmllc1dpdGhTaG9ydGN1dHMuW10iKSx0YWdOYW1lOiJsaSIsY2F0ZWdvcnlTdHlsZTooMCx0LnJlYWRPbmx5KSgic2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlIiksbm9DYXRlZ29yaWVzTGFiZWw6STE4bi50KCJjYXRlZ29yaWVzLm5vX3N1YmNhdGVnb3J5Iiksc2VsZWN0S2l0T3B0aW9uczp7ZmlsdGVyYWJsZTohMCxub25lOiJjYXRlZ29yeS5hbGwiLGNhcmV0RG93bkljb246ImNhcmV0LXJpZ2h0IixjYXJldFVwSWNvbjoiY2FyZXQtZG93biIsZnVsbFdpZHRoT25Nb2JpbGU6ITAsbm9TdWJjYXRlZ29yaWVzOiExLHN1YkNhdGVnb3J5OiExLGNsZWFyYWJsZTohMSxoaWRlUGFyZW50Q2F0ZWdvcnk6ImhpZGVQYXJlbnRDYXRlZ29yeSIsYWxsb3dVbmNhdGVnb3JpemVkOiEwLGNvdW50U3ViY2F0ZWdvcmllczohMSxhdXRvSW5zZXJ0Tm9uZUl0ZW06ITEsZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246ImRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uIixoZWFkZXJDb21wb25lbnQ6ImNhdGVnb3J5LWRyb3AvY2F0ZWdvcnktZHJvcC1oZWFkZXIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4iY2F0ZWdvcnktcm93In0sZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpfHwwPHRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpKX0pLGhpZGVQYXJlbnRDYXRlZ29yeTooMCxuLmNvbXB1dGVkKShmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuc3ViQ2F0ZWdvcnl8fCExfSksY2F0ZWdvcmllc1dpdGhTaG9ydGN1dHM6KDAsbi5jb21wdXRlZCkoImNhdGVnb3JpZXMuW10iLCJ2YWx1ZSIsInNlbGVjdEtpdC5vcHRpb25zLntzdWJDYXRlZ29yeSxub1N1YmNhdGVnb3JpZXN9IixmdW5jdGlvbigpe3ZhciBlPVtdOyh0aGlzLnZhbHVlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLm5vU3ViY2F0ZWdvcmllcyYmdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeSkmJmUucHVzaCh7aWQ6bCxuYW1lOnRoaXMuYWxsQ2F0ZWdvcmllc0xhYmVsfSksIXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuc3ViQ2F0ZWdvcnl8fCF0aGlzLnZhbHVlJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLm5vU3ViY2F0ZWdvcmllc3x8ZS5wdXNoKHtpZDphLG5hbWU6dGhpcy5ub0NhdGVnb3JpZXNMYWJlbH0pO3ZhciB0PXRoaXMuX2ZpbHRlclVuY2F0ZWdvcml6ZWQodGhpcy5jYXRlZ29yaWVzfHxbXSk7cmV0dXJuIGUuY29uY2F0KHQpfSksbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ub1N1YmNhdGVnb3JpZXM/dGhpcy5kZWZhdWx0SXRlbShhLHRoaXMubm9DYXRlZ29yaWVzTGFiZWwpOnRoaXMuZGVmYXVsdEl0ZW0obCx0aGlzLmFsbENhdGVnb3JpZXNMYWJlbCl9LG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy52YWx1ZSYmKHQ9by5kZWZhdWx0LmZpbmRCeUlkKHRoaXMudmFsdWUpLGUudGl0bGU9dC50aXRsZSxlLmxhYmVsPSgwLHIuY2F0ZWdvcnlCYWRnZUhUTUwpKHQse2xpbms6ITEsYWxsb3dVbmNhdGVnb3JpemVkOnRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dVbmNhdGVnb3JpemVkLGhpZGVQYXJlbnQ6ITB9KS5odG1sU2FmZSgpKSxlfSxwYXJlbnRDYXRlZ29yeU5hbWU6KDAsdC5yZWFkT25seSkoInNlbGVjdEtpdC5vcHRpb25zLnBhcmVudENhdGVnb3J5Lm5hbWUiKSxwYXJlbnRDYXRlZ29yeVVybDooMCx0LnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMucGFyZW50Q2F0ZWdvcnkudXJsIiksYWxsQ2F0ZWdvcmllc0xhYmVsOigwLG4uY29tcHV0ZWQpKCJwYXJlbnRDYXRlZ29yeU5hbWUiLCJzZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zdWJDYXRlZ29yeT9JMThuLnQoImNhdGVnb3JpZXMuYWxsX3N1YmNhdGVnb3JpZXMiLHtjYXRlZ29yeU5hbWU6dGhpcy5wYXJlbnRDYXRlZ29yeU5hbWV9KTpJMThuLnQoImNhdGVnb3JpZXMuYWxsIil9KSxhbGxDYXRlZ29yaWVzVXJsOigwLG4uY29tcHV0ZWQpKCJwYXJlbnRDYXRlZ29yeVVybCIsInNlbGVjdEtpdC5vcHRpb25zLnN1YkNhdGVnb3J5IixmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuc3ViQ2F0ZWdvcnkmJnRoaXMucGFyZW50Q2F0ZWdvcnlVcmx8fCIvIil9KSxub0NhdGVnb3JpZXNVcmw6KDAsbi5jb21wdXRlZCkoInBhcmVudENhdGVnb3J5VXJsIixmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKHRoaXMucGFyZW50Q2F0ZWdvcnlVcmwrIi9ub25lIil9KSxzZWFyY2g6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9RGlzY291cnNlLkNhdGVnb3J5LnNlYXJjaChlKTtyZXR1cm4gdD10aGlzLl9maWx0ZXJVbmNhdGVnb3JpemVkKHQpLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJiF0LnBhcmVudF9jYXRlZ29yeV9pZD8xOiFlLnBhcmVudF9jYXRlZ29yeV9pZCYmdC5wYXJlbnRfY2F0ZWdvcnlfaWQ/LTE6MH0pfXJldHVybiB0aGlzLl9maWx0ZXJVbmNhdGVnb3JpemVkKHRoaXMuY29udGVudCl9LGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT12b2lkIDA7cmV0dXJuIGk9ZT09PWw/dGhpcy5hbGxDYXRlZ29yaWVzVXJsOmU9PT1hP3RoaXMubm9DYXRlZ29yaWVzVXJsOih0PXBhcnNlSW50KGUsMTApLG49by5kZWZhdWx0LmZpbmRCeUlkKHQpLCIvYy8iK0Rpc2NvdXJzZS5DYXRlZ29yeS5zbHVnRm9yKG4pKSxzLmRlZmF1bHQucm91dGVUb1VybChpKSwhMX19LF9maWx0ZXJVbmNhdGVnb3JpemVkOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93VW5jYXRlZ29yaXplZHx8KGU9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZH0pKSxlfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcC9jYXRlZ29yeS1kcm9wLWhlYWRlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHI9KDAscy5kZWZhdWx0KSgic2VsZWN0ZWRDb250ZW50LmNvbG9yIiksYT0oMCxzLmRlZmF1bHQpKCJzZWxlY3RlZENvbnRlbnQudGV4dF9jb2xvciIpLGw9KDAscy5kZWZhdWx0KSgic2VsZWN0ZWRDb250ZW50IiwiY2F0ZWdvcnlCYWNrZ3JvdW5kQ29sb3IiLCJjYXRlZ29yeVRleHRDb2xvciIpLG8odT17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jYXRlZ29yeS1kcm9wL2NhdGVnb3J5LWRyb3AtaGVhZGVyIixjbGFzc05hbWVzOlsiY2F0ZWdvcnktZHJvcC1oZWFkZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImNhdGVnb3J5U3R5bGVDbGFzcyJdLGNhdGVnb3J5U3R5bGVDbGFzczooMCx0LnJlYWRPbmx5KSgic2l0ZS5jYXRlZ29yeV9zdHlsZSIpLGNhdGVnb3J5QmFja2dyb3VuZENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiI2U5ZTllOSJ9LGNhdGVnb3J5VGV4dENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIzMzMyJ9LGNhdGVnb3J5U3R5bGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuc2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlO2lmKCJidWxsZXQiIT09aSYmZSYmKHR8fG4pKXt2YXIgcz0iIjtyZXR1cm4gdCYmImJveCI9PT1pJiYocys9ImJvcmRlci1jb2xvcjogIyIrdCsiOyBiYWNrZ3JvdW5kLWNvbG9yOiAjIit0KyI7IixuJiYocys9ImNvbG9yOiAjIituKyI7IikpLHMuaHRtbFNhZmUoKX19LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7ZS5jYXRlZ29yeVN0eWxlJiYoZS5lbGVtZW50LnNldEF0dHJpYnV0ZSgic3R5bGUiLGUuY2F0ZWdvcnlTdHlsZSksZS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jYXJldC1pY29uIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsZS5jYXRlZ29yeVN0eWxlKSl9KX19LCJjYXRlZ29yeUJhY2tncm91bmRDb2xvciIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlCYWNrZ3JvdW5kQ29sb3IiKSx1KSxvKHUsImNhdGVnb3J5VGV4dENvbG9yIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJjYXRlZ29yeVRleHRDb2xvciIpLHUpLG8odSwiY2F0ZWdvcnlTdHlsZSIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlTdHlsZSIpLHUpLHUpKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3J5LW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktbm90aWZpY2F0aW9ucy1idXR0b24iXSxjbGFzc05hbWVzOlsiY2F0ZWdvcnktbm90aWZpY2F0aW9ucy1idXR0b24iXSxpc0hpZGRlbjooMCx0Lm9yKSgiY2F0ZWdvcnkuZGVsZXRlZCIpLHNlbGVjdEtpdE9wdGlvbnM6e2kxOG5QcmVmaXg6ImkxOG5QcmVmaXgiLHNob3dGdWxsVGl0bGU6ITF9LGkxOG5QcmVmaXg6ImNhdGVnb3J5Lm5vdGlmaWNhdGlvbnMifSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9jYXRlZ29yeS1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93IixjbGFzc05hbWVzOlsiY2F0ZWdvcnktcm93Il0saGlkZVBhcmVudENhdGVnb3J5OigwLHQuYm9vbCkoInNlbGVjdEtpdC5vcHRpb25zLmhpZGVQYXJlbnRDYXRlZ29yeSIpLGFsbG93VW5jYXRlZ29yaXplZDooMCx0LmJvb2wpKCJzZWxlY3RLaXQub3B0aW9ucy5hbGxvd1VuY2F0ZWdvcml6ZWQiKSxjYXRlZ29yeUxpbms6KDAsdC5ib29sKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2F0ZWdvcnlMaW5rIiksY291bnRTdWJjYXRlZ29yaWVzOigwLHQuYm9vbCkoInNlbGVjdEtpdC5vcHRpb25zLmNvdW50U3ViY2F0ZWdvcmllcyIpLGFsbG93VW5jYXRlZ29yaXplZFRvcGljczooMCxhLnNldHRpbmcpKCJhbGxvd191bmNhdGVnb3JpemVkX3RvcGljcyIpLGRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uOigwLHIuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy5kaXNwbGF5Q2F0ZWdvcnlEZXNjcmlwdGlvbiIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLmRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uO3JldHVybiEhKDAsby5pc05vbmUpKGUpfHxlfSksdGl0bGU6KDAsci5jb21wdXRlZCkoImRlc2NyaXB0aW9uVGV4dCIsImRlc2NyaXB0aW9uIiwiY2F0ZWdvcnlOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9uVGV4dHx8dGhpcy5kZXNjcmlwdGlvbnx8dGhpcy5jYXRlZ29yeU5hbWV9KSxjYXRlZ29yeU5hbWU6KDAsdC5yZWFkcykoImNhdGVnb3J5Lm5hbWUiKSxjYXRlZ29yeURlc2NyaXB0aW9uOigwLHQucmVhZHMpKCJjYXRlZ29yeS5kZXNjcmlwdGlvbiIpLGNhdGVnb3J5RGVzY3JpcHRpb25UZXh0OigwLHQucmVhZHMpKCJjYXRlZ29yeS5kZXNjcmlwdGlvbl90ZXh0IiksY2F0ZWdvcnk6KDAsci5jb21wdXRlZCkoInJvd1ZhbHVlIiwicm93TmFtZSIsZnVuY3Rpb24oKXtpZighKDAsby5pc0VtcHR5KSh0aGlzLnJvd1ZhbHVlKSlyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeUlkKHBhcnNlSW50KHRoaXMucm93VmFsdWUsMTApKTt2YXIgZT1pLmRlZmF1bHQuZmluZFVuY2F0ZWdvcml6ZWQoKTtyZXR1cm4gZSYmZS5uYW1lPT09dGhpcy5yb3dOYW1lP2U6dm9pZCAwfSksYmFkZ2VGb3JDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmNhdGVnb3J5QmFkZ2VIVE1MKSh0aGlzLmNhdGVnb3J5LHtsaW5rOnRoaXMuY2F0ZWdvcnlMaW5rLGFsbG93VW5jYXRlZ29yaXplZDp0aGlzLmFsbG93VW5jYXRlZ29yaXplZFRvcGljc3x8dGhpcy5hbGxvd1VuY2F0ZWdvcml6ZWQsaGlkZVBhcmVudDohIXRoaXMucGFyZW50Q2F0ZWdvcnksdG9waWNDb3VudDp0aGlzLnRvcGljQ291bnR9KS5odG1sU2FmZSgpfSksYmFkZ2VGb3JQYXJlbnRDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgicGFyZW50Q2F0ZWdvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5jYXRlZ29yeUJhZGdlSFRNTCkodGhpcy5wYXJlbnRDYXRlZ29yeSx7bGluazp0aGlzLmNhdGVnb3J5TGluayxhbGxvd1VuY2F0ZWdvcml6ZWQ6dGhpcy5hbGxvd1VuY2F0ZWdvcml6ZWRUb3BpY3N8fHRoaXMuYWxsb3dVbmNhdGVnb3JpemVkLHJlY3Vyc2l2ZTohMH0pLmh0bWxTYWZlKCl9KSxwYXJlbnRDYXRlZ29yeTooMCxyLmNvbXB1dGVkKSgicGFyZW50Q2F0ZWdvcnlJZCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeUlkKHRoaXMucGFyZW50Q2F0ZWdvcnlJZCl9KSxoYXNQYXJlbnRDYXRlZ29yeTooMCx0LmJvb2wpKCJwYXJlbnRDYXRlZ29yeUlkIikscGFyZW50Q2F0ZWdvcnlJZDooMCx0LnJlYWRzKSgiY2F0ZWdvcnkucGFyZW50X2NhdGVnb3J5X2lkIiksY2F0ZWdvcnlUb3RhbFRvcGljQ291bnQ6KDAsdC5yZWFkcykoImNhdGVnb3J5LnRvdGFsVG9waWNDb3VudCIpLGNhdGVnb3J5VG9waWNDb3VudDooMCx0LnJlYWRzKSgiY2F0ZWdvcnkudG9waWNfY291bnQiKSx0b3BpY0NvdW50OigwLHIuY29tcHV0ZWQpKCJjYXRlZ29yeVRvdGFsVG9waWNDb3VudCIsImNhdGVnb3J5VG9waWNDb3VudCIsImNvdW50U3ViY2F0ZWdvcmllcyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb3VudFN1YmNhdGVnb3JpZXM/dGhpcy5jYXRlZ29yeVRvdGFsVG9waWNDb3VudDp0aGlzLmNhdGVnb3J5VG9waWNDb3VudH0pLHNob3VsZERpc3BsYXlEZXNjcmlwdGlvbjooMCxyLmNvbXB1dGVkKSgiZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb24iLCJjYXRlZ29yeURlc2NyaXB0aW9uIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlDYXRlZ29yeURlc2NyaXB0aW9uJiZ0aGlzLmNhdGVnb3J5RGVzY3JpcHRpb24mJiJudWxsIiE9PXRoaXMuY2F0ZWdvcnlEZXNjcmlwdGlvbn0pLGRlc2NyaXB0aW9uVGV4dDooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnlEZXNjcmlwdGlvblRleHQiLGZ1bmN0aW9uKCl7aWYodGhpcy5jYXRlZ29yeURlc2NyaXB0aW9uVGV4dClyZXR1cm4gdGhpcy5fZm9ybWF0RGVzY3JpcHRpb24odGhpcy5jYXRlZ29yeURlc2NyaXB0aW9uVGV4dCl9KSxkZXNjcmlwdGlvbjooMCxyLmNvbXB1dGVkKSgiY2F0ZWdvcnlEZXNjcmlwdGlvbiIsZnVuY3Rpb24oKXtpZih0aGlzLmNhdGVnb3J5RGVzY3JpcHRpb24pcmV0dXJuIHRoaXMuX2Zvcm1hdERlc2NyaXB0aW9uKHRoaXMuY2F0ZWdvcnlEZXNjcmlwdGlvbil9KSxfZm9ybWF0RGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3Vic3RyKDAsMjAwKSsoMjAwPGUubGVuZ3RoPyImaGVsbGlwOyI6IiIpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSxzLHQsaSxuLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsiY2F0ZWdvcnktc2VsZWN0b3IiXSxjbGFzc05hbWVzOlsiY2F0ZWdvcnktc2VsZWN0b3IiXSxjYXRlZ29yaWVzOm51bGwsYmxhY2tsaXN0Om51bGwsc2VsZWN0S2l0T3B0aW9uczp7ZmlsdGVyYWJsZTohMCxhbGxvd0FueTohMSxhbGxvd1VuY2F0ZWdvcml6ZWQ6ImFsbG93VW5jYXRlZ29yaXplZCIsZGlzcGxheUNhdGVnb3J5RGVzY3JpcHRpb246ITEsc2VsZWN0ZWROYW1lQ29tcG9uZW50OiJtdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkifSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuY2F0ZWdvcmllc3x8dGhpcy5zZXQoImNhdGVnb3JpZXMiLFtdKSx0aGlzLmJsYWNrbGlzdHx8dGhpcy5zZXQoImJsYWNrbGlzdCIsW10pfSxjb250ZW50OigwLHMuY29tcHV0ZWQpKCJjYXRlZ29yaWVzLltdIiwiYmxhY2tsaXN0LltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj0oMCxpLm1ha2VBcnJheSkodGhpcy5ibGFja2xpc3QpO3JldHVybiBvLmRlZmF1bHQubGlzdCgpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdC5jYXRlZ29yaWVzLmluY2x1ZGVzKGUpfHwhbi5pbmNsdWRlcyhlKX0pfSksdmFsdWU6KDAsdC5tYXBCeSkoImNhdGVnb3JpZXMiLCJpZCIpLGZpbHRlckNvbXB1dGVkQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1uZXcgUmVnRXhwKHQsImkiKTtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG4uX25vcm1hbGl6ZSgoMCxzLmdldCkoZSwibmFtZSIpKS5tYXRjaChpKX0pfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRycy5vbkNoYW5nZShlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5kZWZhdWx0LmZpbmRCeUlkKGUpfSkuZmlsdGVyKEJvb2xlYW4pKSwhMX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9jb2xvci1wYWxldHRlcyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb2xvci1wYWxldHRlcyJdLGNsYXNzTmFtZXM6WyJjb2xvci1wYWxldHRlcyJdLG1vZGlmeUNvbXBvbmVudEZvclJvdzpmdW5jdGlvbigpe3JldHVybiJjb2xvci1wYWxldHRlcy9jb2xvci1wYWxldHRlcy1yb3cifX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZXMvY29sb3ItcGFsZXR0ZXMtcm93IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJjb2xvci1wYWxldHRlcy1yb3ciXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2NvbG9yLXBhbGV0dGVzL2NvbG9yLXBhbGV0dGVzLXJvdyIscGFsZXR0ZXM6KDAsaS5jb21wdXRlZCkoIml0ZW0uY29sb3JzLltdIixmdW5jdGlvbigpe3JldHVybih0aGlzLml0ZW0uY29sb3JzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiIjIisoMCx0LmVzY2FwZUV4cHJlc3Npb24pKGUuaGV4KX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4nPHNwYW4gY2xhc3M9InBhbGV0dGUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOicrZSsnIj48L3NwYW4+J30pLmpvaW4oIiIpLmh0bWxTYWZlKCl9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2luZ2xlLXNlbGVjdCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb21iby1ib3giXSxjbGFzc05hbWVzOlsiY29tYm9ib3giLCJjb21iby1ib3giXSxzZWxlY3RLaXRPcHRpb25zOntjYXJldFVwSWNvbjoiY2FyZXQtdXAiLGNhcmV0RG93bkljb246ImNhcmV0LWRvd24iLGF1dG9GaWx0ZXJhYmxlOiJhdXRvRmlsdGVyYWJsZSIsY2xlYXJhYmxlOiExLGhlYWRlckNvbXBvbmVudDoiY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIifSxhdXRvRmlsdGVyYWJsZTpuLmNvbXB1dGVkLmd0ZSgiY29udGVudC5sZW5ndGgiLDEwKX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIixjbGFzc05hbWVzOlsiY29tYm8tYm94LWhlYWRlciJdLGNsZWFyYWJsZTooMCx0LnJlYWRzKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2xlYXJhYmxlIiksY2FyZXRVcEljb246KDAsdC5yZWFkcykoInNlbGVjdEtpdC5vcHRpb25zLmNhcmV0VXBJY29uIiksY2FyZXREb3duSWNvbjooMCx0LnJlYWRzKSgic2VsZWN0S2l0Lm9wdGlvbnMuY2FyZXREb3duSWNvbiIpLHNob3VsZERpc3BsYXlDbGVhcmFibGVCdXR0b246KDAsdC5hbmQpKCJjbGVhcmFibGUiLCJ2YWx1ZSIpLGNhcmV0SWNvbjooMCxpLmNvbXB1dGVkKSgic2VsZWN0S2l0LmlzRXhwYW5kZWQiLCJjYXJldFVwSWNvbiIsImNhcmV0RG93bkljb24iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5jYXJldFVwSWNvbjp0aGlzLmNhcmV0RG93bkljb259KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tcG9zZXItYWN0aW9ucyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3giLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlL21vZGVscy9kcmFmdCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvc3RyaW5nIiwiQGVtYmVyL3V0aWxzIl0sZnVuY3Rpb24oZSx0LG8saSxuLHMscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLl9jbGVhclNuYXBzaG90cz1mdW5jdGlvbigpe2w9YT1udWxsfTt2YXIgYT1udWxsLGw9bnVsbDtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJjb21wb3Nlci1hY3Rpb25zIl0sY2xhc3NOYW1lczpbImNvbXBvc2VyLWFjdGlvbnMiXSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJzaGFyZSIsZmlsdGVyYWJsZTohMSxzaG93RnVsbFRpdGxlOiExfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksIXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljIil8fGEmJnRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLmlkIik9PT1hLmlkfHwoYT10aGlzLmdldCgiY29tcG9zZXJNb2RlbC50b3BpYyIpLGw9dGhpcy5nZXQoImNvbXBvc2VyTW9kZWwucG9zdCIpKSwhdGhpcy5nZXQoImNvbXBvc2VyTW9kZWwucG9zdCIpfHxsJiZ0aGlzLmdldCgiY29tcG9zZXJNb2RlbC5wb3N0LmlkIik9PT1sLmlkfHwobD10aGlzLmdldCgiY29tcG9zZXJNb2RlbC5wb3N0IikpLCgwLHIuaXNFbXB0eSkodGhpcy5jb250ZW50KSYmdGhpcy5zZXQoInNlbGVjdEtpdC5pc0hpZGRlbiIsITApfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm57fX0sY29udGVudDooMCxuLmNvbXB1dGVkKShmdW5jdGlvbigpe3ZhciBlPVtdO3RoaXMuYWN0aW9uIT09by5DUkVBVEVfVE9QSUMmJnRoaXMuYWN0aW9uIT09by5DUkVBVEVfU0hBUkVEX0RSQUZUJiZhJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYy5sYWJlbCIpLGRlc2NyaXB0aW9uOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5yZXBseV9hc19uZXdfdG9waWMuZGVzYyIpLGljb246InBsdXMiLGlkOiJyZXBseV9hc19uZXdfdG9waWMifSksKHRoaXMuYWN0aW9uIT09by5SRVBMWSYmbHx8dGhpcy5hY3Rpb249PT1vLlJFUExZJiZsJiYoIXRoaXMucmVwbHlPcHRpb25zLnVzZXJBdmF0YXJ8fCF0aGlzLnJlcGx5T3B0aW9ucy51c2VyTGluaykpJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3Bvc3QubGFiZWwiLHtwb3N0TnVtYmVyOmwucG9zdF9udW1iZXIscG9zdFVzZXJuYW1lOmwudXNlcm5hbWV9KSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfdG9fcG9zdC5kZXNjIiksaWNvbjoic2hhcmUiLGlkOiJyZXBseV90b19wb3N0In0pLHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmdGhpcy5hY3Rpb24hPT1vLlBSSVZBVEVfTUVTU0FHRSYmZS5wdXNoKHtuYW1lOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5yZXBseV9hc19wcml2YXRlX21lc3NhZ2UubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfYXNfcHJpdmF0ZV9tZXNzYWdlLmRlc2MiKSxpY29uOiJlbnZlbG9wZSIsaWQ6InJlcGx5X2FzX3ByaXZhdGVfbWVzc2FnZSJ9KSwodGhpcy5hY3Rpb24hPT1vLlJFUExZJiZhfHx0aGlzLmFjdGlvbj09PW8uUkVQTFkmJmEmJnRoaXMucmVwbHlPcHRpb25zLnVzZXJBdmF0YXImJnRoaXMucmVwbHlPcHRpb25zLnVzZXJMaW5rJiZ0aGlzLnJlcGx5T3B0aW9ucy50b3BpY0xpbmspJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3RvcGljLmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X3RvX3RvcGljLmRlc2MiKSxpY29uOiJzaGFyZSIsaWQ6InJlcGx5X3RvX3RvcGljIn0pLHRoaXMuY2FuV2hpc3BlciYmKCFsfHxsJiZsLnBvc3RfdHlwZSE9PXRoaXMuc2l0ZS5wb3N0X3R5cGVzLndoaXNwZXIpJiZlLnB1c2goe25hbWU6STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnRvZ2dsZV93aGlzcGVyLmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnRvZ2dsZV93aGlzcGVyLmRlc2MiKSxpY29uOiJmYXItZXllLXNsYXNoIixpZDoidG9nZ2xlX3doaXNwZXIifSk7dmFyIHQ9ITE7dGhpcy5hY3Rpb249PT1vLkNSRUFURV9TSEFSRURfRFJBRlQmJih0PSEwKSx0aGlzLmFjdGlvbj09PW8uQ1JFQVRFX1RPUElDJiYodGhpcy5zaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQmJmUucHVzaCh7bmFtZTpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMuc2hhcmVkX2RyYWZ0LmxhYmVsIiksZGVzY3JpcHRpb246STE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnNoYXJlZF9kcmFmdC5kZXNjIiksaWNvbjoiZmFyLWNsaXBib2FyZCIsaWQ6InNoYXJlZF9kcmFmdCJ9KSwwPT09ZS5sZW5ndGgmJih0PSEwKSksdCYmZS5wdXNoKHtuYW1lOkkxOG4udCgiY29tcG9zZXIuY29tcG9zZXJfYWN0aW9ucy5jcmVhdGVfdG9waWMubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMucmVwbHlfYXNfbmV3X3RvcGljLmRlc2MiKSxpY29uOiJzaGFyZSIsaWQ6ImNyZWF0ZV90b3BpYyJ9KTt2YXIgbj10aGlzLmdldCgiY3VycmVudFVzZXIuc3RhZmYiKXx8ND09PXRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpO3JldHVybiB0aGlzLmFjdGlvbj09PW8uUkVQTFkmJm4mJmUucHVzaCh7bmFtZTpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMudG9nZ2xlX3RvcGljX2J1bXAubGFiZWwiKSxkZXNjcmlwdGlvbjpJMThuLnQoImNvbXBvc2VyLmNvbXBvc2VyX2FjdGlvbnMudG9nZ2xlX3RvcGljX2J1bXAuZGVzYyIpLGljb246ImFuY2hvciIsaWQ6InRvZ2dsZV90b3BpY19idW1wIn0pLGV9KSxfcmVwbHlGcm9tRXhpc3Rpbmc6ZnVuY3Rpb24oZSx0LG4pe3RoaXMuY2xvc2VDb21wb3NlcigpLHRoaXMub3BlbkNvbXBvc2VyKGUsdCxuKX0sX29wZW5Db21wb3NlcjpmdW5jdGlvbihlKXt0aGlzLmNsb3NlQ29tcG9zZXIoKSx0aGlzLm9wZW5Db21wb3NlcihlKX0sdG9nZ2xlV2hpc3BlclNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7dC50b2dnbGVQcm9wZXJ0eSgid2hpc3BlciIpfSx0b2dnbGVUb3BpY0J1bXBTZWxlY3RlZDpmdW5jdGlvbihlLHQpe3QudG9nZ2xlUHJvcGVydHkoIm5vQnVtcCIpfSxyZXBseVRvVG9waWNTZWxlY3RlZDpmdW5jdGlvbihlKXtlLmFjdGlvbj1vLlJFUExZLGUudG9waWM9YSxlLnNraXBEcmFmdENoZWNrPSEwLHRoaXMuX29wZW5Db21wb3NlcihlKX0scmVwbHlUb1Bvc3RTZWxlY3RlZDpmdW5jdGlvbihlKXtlLmFjdGlvbj1vLlJFUExZLGUucG9zdD1sLGUuc2tpcERyYWZ0Q2hlY2s9ITAsdGhpcy5fb3BlbkNvbXBvc2VyKGUpfSxyZXBseUFzTmV3VG9waWNTZWxlY3RlZDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO2kuZGVmYXVsdC5nZXQoIm5ld190b3BpYyIpLnRoZW4oZnVuY3Rpb24oZSl7ZS5kcmFmdD9ib290Ym94LmNvbmZpcm0oSTE4bi50KCJjb21wb3Nlci5jb21wb3Nlcl9hY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYy5jb25maXJtIiksZnVuY3Rpb24oZSl7ZSYmbi5fcmVwbHlBc05ld1RvcGljU2VsZWN0KHQpfSk6bi5fcmVwbHlBc05ld1RvcGljU2VsZWN0KHQpfSl9LF9yZXBseUFzTmV3VG9waWNTZWxlY3Q6ZnVuY3Rpb24oZSl7ZS5hY3Rpb249by5DUkVBVEVfVE9QSUMsZS5jYXRlZ29yeUlkPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLmNhdGVnb3J5LmlkIiksZS5kaXNhYmxlU2NvcGVkQ2F0ZWdvcnk9ITAsZS5za2lwRHJhZnRDaGVjaz0hMCx0aGlzLl9yZXBseUZyb21FeGlzdGluZyhlLGwsYSl9LHJlcGx5QXNQcml2YXRlTWVzc2FnZVNlbGVjdGVkOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXZvaWQgMDtsJiYhbC5nZXQoInlvdXJzIik/KHQ9bC5nZXQoInVzZXJuYW1lIikpJiYocz10KTp0aGlzLmdldCgiY29tcG9zZXJNb2RlbC50b3BpYyIpJiYoIShuPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRvcGljLnBvc3RTdHJlYW0iKSkuZ2V0KCJmaXJzdFBvc3RQcmVzZW50Iil8fChpPW4uZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpKSYmIWkuZ2V0KCJ5b3VycyIpJiZpLmdldCgidXNlcm5hbWUiKSYmKHM9aS5nZXQoInVzZXJuYW1lIikpKSxlLmFjdGlvbj1vLlBSSVZBVEVfTUVTU0FHRSxlLnVzZXJuYW1lcz1zLGUuYXJjaGV0eXBlSWQ9InByaXZhdGVfbWVzc2FnZSIsZS5za2lwRHJhZnRDaGVjaz0hMCx0aGlzLl9yZXBseUZyb21FeGlzdGluZyhlLGwsYSl9LF9zd2l0Y2hDcmVhdGU6ZnVuY3Rpb24oZSx0KXtlLmFjdGlvbj10LGUuY2F0ZWdvcnlJZD10aGlzLmdldCgiY29tcG9zZXJNb2RlbC5jYXRlZ29yeUlkIiksZS50b3BpY1RpdGxlPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRpdGxlIiksZS50YWdzPXRoaXMuZ2V0KCJjb21wb3Nlck1vZGVsLnRhZ3MiKSxlLnNraXBEcmFmdENoZWNrPSEwLHRoaXMuX29wZW5Db21wb3NlcihlKX0sY3JlYXRlVG9waWNTZWxlY3RlZDpmdW5jdGlvbihlKXt0aGlzLl9zd2l0Y2hDcmVhdGUoZSxvLkNSRUFURV9UT1BJQyl9LHNoYXJlZERyYWZ0U2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fc3dpdGNoQ3JlYXRlKGUsby5DUkVBVEVfU0hBUkVEX0RSQUZUKX0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jYW1lbGl6ZSkoZSkrIlNlbGVjdGVkIjt0aGlzW3RdP3RoaXNbdF0odGhpcy5jb21wb3Nlck1vZGVsLmdldFByb3BlcnRpZXMoImRyYWZ0S2V5IiwiZHJhZnRTZXF1ZW5jZSIsInJlcGx5IiwiZGlzYWJsZVNjb3BlZENhdGVnb3J5IiksdGhpcy5jb21wb3Nlck1vZGVsKTpjb25zb2xlLmVycm9yKCJObyBtZXRob2QgJyIrdCsiJyBmb3VuZCIpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2NyZWF0ZS1jb2xvci1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY3JlYXRlLWNvbG9yLXJvdyIsY2xhc3NOYW1lczpbImNyZWF0ZS1jb2xvci1yb3ciXSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxpLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9KDAsbi5lc2NhcGVFeHByZXNzaW9uKSh0LnJvd1ZhbHVlKTt0LmVsZW1lbnQuc3R5bGUuYm9yZGVyTGVmdENvbG9yPSIjIitlfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2luZ2xlLXNlbGVjdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJkcm9wZG93bi1zZWxlY3QtYm94Il0sY2xhc3NOYW1lczpbImRyb3Bkb3duLXNlbGVjdC1ib3giXSxzZWxlY3RLaXRPcHRpb25zOnthdXRvRmlsdGVyYWJsZTohMSxmaWx0ZXJhYmxlOiExLHNob3dGdWxsVGl0bGU6ITAsaGVhZGVyQ29tcG9uZW50OiJkcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIn0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuImRyb3Bkb3duLXNlbGVjdC1ib3gvZHJvcGRvd24tc2VsZWN0LWJveC1yb3cifX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciIsY2xhc3NOYW1lczpbImJ0bi1kZWZhdWx0IiwiZHJvcGRvd24tc2VsZWN0LWJveC1oZWFkZXIiXSx0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiYnRuQ2xhc3NOYW1lIl0sc2hvd0Z1bGxUaXRsZTooMCxpLnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMuc2hvd0Z1bGxUaXRsZSIpLGF0dHJpYnV0ZUJpbmRpbmdzOlsiYnV0dG9uVHlwZTp0eXBlIl0sYnV0dG9uVHlwZToiYnV0dG9uIixidG5DbGFzc05hbWU6KDAsbi5jb21wdXRlZCkoInNob3dGdWxsVGl0bGUiLGZ1bmN0aW9uKCl7cmV0dXJuImJ0biAiKyh0aGlzLnNob3dGdWxsVGl0bGU/ImJ0bi1pY29uLXRleHQiOiJuby10ZXh0IGJ0bi1pY29uIil9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsY2xhc3NOYW1lczpbImRyb3Bkb3duLXNlbGVjdC1ib3gtcm93Il0sZGVzY3JpcHRpb246KDAsdC5yZWFkT25seSkoIml0ZW0uZGVzY3JpcHRpb24iKX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3V0aWxzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveCIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL21peGluIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkZPUk1BVD1lLlRJTUVGUkFNRVM9dm9pZCAwLGUudGltZWZyYW1lRGV0YWlscz1mdW5jdGlvbihlKXtjfHwoYz17fSx1LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGNbZS5pZF09ZX0pKTtyZXR1cm4gY1tlXX07dmFyIGE9e2VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sd2hlbjpmdW5jdGlvbigpe3JldHVybiBudWxsfSxpY29uOiJicmllZmNhc2UiLGRpc3BsYXlXaGVuOiEwfTtmdW5jdGlvbiBsKGUpe3JldHVybiBqUXVlcnkuZXh0ZW5kKHt9LGEsZSl9dmFyIHU9ZS5USU1FRlJBTUVTPVtsKHtpZDoibGF0ZXJfdG9kYXkiLGZvcm1hdDoiaCBhIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmNhblNjaGVkdWxlVG9kYXl9LHdoZW46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaG91cigxOCkubWludXRlKDApfSxpY29uOiJmYXItbW9vbiJ9KSxsKHtpZDoidG9tb3Jyb3ciLGZvcm1hdDoiZGRkLCBoIGEiLHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMSwiZGF5IikuaG91cih0KS5taW51dGUoMCl9LGljb246ImZhci1zdW4ifSksbCh7aWQ6ImxhdGVyX3RoaXNfd2VlayIsZm9ybWF0OiJkZGQsIGggYSIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4hZS5jYW5TY2hlZHVsZVRvZGF5JiZlLmRheTw0fSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDIsImRheSIpLmhvdXIodCkubWludXRlKDApfX0pLGwoe2lkOiJ0aGlzX3dlZWtlbmQiLGZvcm1hdDoiZGRkLCBoIGEiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGF5PDUmJmUuaW5jbHVkZVdlZWtlbmR9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5kYXkoNikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJlZCJ9KSxsKHtpZDoibmV4dF93ZWVrIixmb3JtYXQ6ImRkZCwgaCBhIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiA3IT09ZS5kYXl9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMSwid2VlayIpLmRheSgxKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJ0d29fd2Vla3MiLGZvcm1hdDoiTU1NIEQiLHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMiwid2VlayIpLmhvdXIodCkubWludXRlKDApfSxpY29uOiJicmllZmNhc2UifSksbCh7aWQ6Im5leHRfbW9udGgiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm93LmRhdGUoKSE9PW1vbWVudCgpLmVuZE9mKCJtb250aCIpLmRhdGUoKX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCgxLCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoidHdvX21vbnRocyIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlTWlkRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDIsIm1vbnRoIikuc3RhcnRPZigibW9udGgiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJ0aHJlZV9tb250aHMiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZU1pZEZ1dHVyZX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCgzLCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoiZm91cl9tb250aHMiLGZvcm1hdDoiTU1NIEQiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZU1pZEZ1dHVyZX0sd2hlbjpmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZCg0LCJtb250aCIpLnN0YXJ0T2YoIm1vbnRoIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImJyaWVmY2FzZSJ9KSxsKHtpZDoic2l4X21vbnRocyIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlRmFyRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDYsIm1vbnRoIikuc3RhcnRPZigibW9udGgiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJvbmVfeWVhciIsZm9ybWF0OiJNTU0gRCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlRmFyRnV0dXJlfSx3aGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYWRkKDEsInllYXIiKS5zdGFydE9mKCJkYXkiKS5ob3VyKHQpLm1pbnV0ZSgwKX0saWNvbjoiYnJpZWZjYXNlIn0pLGwoe2lkOiJmb3JldmVyIixlbmFibGVkOmZ1bmN0aW9uKGUpe3JldHVybiBlLmluY2x1ZGVGYXJGdXR1cmV9LHdoZW46ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQoMWUzLCJ5ZWFyIikuaG91cih0KS5taW51dGUoMCl9LGljb246ImdhdmVsIixkaXNwbGF5V2hlbjohMX0pLGwoe2lkOiJwaWNrX2RhdGVfYW5kX3RpbWUiLGVuYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5jbHVkZURhdGVUaW1lfSxpY29uOiJmYXItY2FsZW5kYXItcGx1cyJ9KSxsKHtpZDoic2V0X2Jhc2VkX29uX2xhc3RfcG9zdCIsZW5hYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlQmFzZWRPbkxhc3RQb3N0fSxpY29uOiJmYXItY2xvY2sifSldLGM9bnVsbDtlLkZPUk1BVD0iWVlZWS1NTS1ERCBISDptbVoiO2UuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKHIuZGVmYXVsdCx7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3RvciJdLGNsYXNzTmFtZXM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3RvciJdLGlzQ3VzdG9tOigwLG4uZXF1YWwpKCJ2YWx1ZSIsInBpY2tfZGF0ZV9hbmRfdGltZSIpLGlzQmFzZWRPbkxhc3RQb3N0OigwLG4uZXF1YWwpKCJ2YWx1ZSIsInNldF9iYXNlZF9vbl9sYXN0X3Bvc3QiKSxzZWxlY3RLaXRPcHRpb25zOnthdXRvSW5zZXJ0Tm9uZUl0ZW06ITEsaGVhZGVyQ29tcG9uZW50OiJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1oZWFkZXIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4iZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3Itcm93In0sY29udGVudDooMCx0LmNvbXB1dGVkKShmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1tb21lbnQoKSxuPXtub3c6ZSxkYXk6ZS5kYXkoKSxpbmNsdWRlV2Vla2VuZDp0aGlzLmluY2x1ZGVXZWVrZW5kLGluY2x1ZGVNaWRGdXR1cmU6dGhpcy5pbmNsdWRlTWlkRnV0dXJlfHwhMCxpbmNsdWRlRmFyRnV0dXJlOnRoaXMuaW5jbHVkZUZhckZ1dHVyZSxpbmNsdWRlRGF0ZVRpbWU6dGhpcy5pbmNsdWRlRGF0ZVRpbWUsaW5jbHVkZUJhc2VkT25MYXN0UG9zdDp0aGlzLnN0YXR1c1R5cGU9PT1vLkNMT1NFX1NUQVRVU19UWVBFLGNhblNjaGVkdWxlVG9kYXk6NjwyNC1lLmhvdXIoKX07cmV0dXJuIHUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVuYWJsZWQobil9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUuaWQsbmFtZTpJMThuLnQoInRvcGljLmF1dG9fdXBkYXRlX2lucHV0LiIrZS5pZCksZGF0ZXRpbWU6dC5fY29tcHV0ZURhdGV0aW1lRm9yVmFsdWUoZS5pZCksaWNvbnM6dC5fY29tcHV0ZUljb25zRm9yVmFsdWUoZS5pZCl9fSl9KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgdDsicGlja19kYXRlX2FuZF90aW1lIj09PWUmJnRoaXMuaXNCYXNlZE9uTGFzdFBvc3R8fCh0PXRoaXMuX3VwZGF0ZUF0KGUpLnRpbWUpJiYhKDAsaS5pc0VtcHR5KShlKSYmdGhpcy5hdHRycy5vbkNoYW5nZUlucHV0JiZ0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQodC5sb2NhbGUoImVuIikuZm9ybWF0KCJZWVlZLU1NLUREIEhIOm1tWiIpKSx0aGlzLmF0dHJzLm9uQ2hhbmdlJiZ0aGlzLmF0dHJzLm9uQ2hhbmdlKGUpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciIsY2xhc3NOYW1lczoiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3ItaGVhZGVyIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3Itcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci9mdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1yb3ciLGNsYXNzTmFtZXM6WyJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1yb3ciXX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IvbWl4aW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci91dGlscyJdLGZ1bmN0aW9uKGUsbixpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X2NvbXB1dGVJY29uc0ZvclZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3VwZGF0ZUF0KGUpLmljb247cmV0dXJuIHQ/dC5zcGxpdCgiLCIpOltdfSxfY29tcHV0ZURhdGV0aW1lRm9yVmFsdWU6ZnVuY3Rpb24oZSl7aWYoKDAscy5pc05vbmUpKGUpKXJldHVybiBudWxsO3ZhciB0PXRoaXMuX3VwZGF0ZUF0KGUpLnRpbWU7aWYodCl7dmFyIG49KDAsaS50aW1lZnJhbWVEZXRhaWxzKShlKTtpZihuLmRpc3BsYXlXaGVufHwodD1udWxsKSx0JiZuLmZvcm1hdClyZXR1cm4gdC5mb3JtYXQobi5mb3JtYXQpfXJldHVybiB0fSxfdXBkYXRlQXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAsaS50aW1lZnJhbWVEZXRhaWxzKShlKTtyZXR1cm4gdD97dGltZTp0LndoZW4obW9tZW50KCksdGhpcy5zdGF0dXNUeXBlIT09bi5DTE9TRV9TVEFUVVNfVFlQRT84OjE4KSxpY29uOnQuaWNvbn06e3RpbWU6bW9tZW50KCl9fX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZ3JvdXAtZHJvcGRvd24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImdyb3VwLWRyb3Bkb3duIl0sY2xhc3NOYW1lczpbImdyb3VwLWRyb3Bkb3duIl0sY29udGVudDooMCx0LnJlYWRzKSgiZ3JvdXBzV2l0aFNob3J0Y3V0IiksdGFnTmFtZToibGkiLHZhbHVlUHJvcGVydHk6bnVsbCxuYW1lUHJvcGVydHk6bnVsbCxoYXNNYW55R3JvdXBzOigwLHQuZ3RlKSgiY29udGVudC5sZW5ndGgiLDEwKSxlbmFibGVHcm91cERpcmVjdG9yeTooMCxvLnNldHRpbmcpKCJlbmFibGVfZ3JvdXBfZGlyZWN0b3J5Iiksc2VsZWN0S2l0T3B0aW9uczp7Y2FyZXREb3duSWNvbjoiY2FyZXQtcmlnaHQiLGNhcmV0VXBJY29uOiJjYXJldC1kb3duIixmaWx0ZXJhYmxlOiJoYXNNYW55R3JvdXBzIn0sZ3JvdXBzV2l0aFNob3J0Y3V0OigwLHMuY29tcHV0ZWQpKCJncm91cHMuW10iLGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuKHRoaXMuZW5hYmxlR3JvdXBEaXJlY3Rvcnl8fHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpKSYmZS5wdXNoKEkxOG4udCgiZ3JvdXBzLmluZGV4LmFsbCIpLnRvTG93ZXJDYXNlKCkpLGUuY29uY2F0KHRoaXMuZ3JvdXBzKX0pLGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpeyh0aGlzLmdyb3Vwc3x8W10pLmluY2x1ZGVzKGUpP2kuZGVmYXVsdC5yb3V0ZVRvVXJsKCIvZy8iK2UpOmkuZGVmYXVsdC5yb3V0ZVRvVXJsKCIvZyIpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2dyb3VwLW1lbWJlcnMtZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPXtjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVycy1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e2ljb246ImJhcnMiLHNob3dGdWxsVGl0bGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT1be2lkOiJzaG93QWRkTWVtYmVyc01vZGFsIixuYW1lOkkxOG4udCgiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIiksaWNvbjoidXNlci1wbHVzIn1dO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmFkbWluJiZlLnB1c2goe2lkOiJzaG93QnVsa0FkZE1vZGFsIixuYW1lOkkxOG4udCgiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLnRpdGxlIiksaWNvbjoidXNlcnMifSksZX0pLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMmJnRoaXMuYXR0cnNbZV0mJnRoaXMuYXR0cnNbZV0oKX19LHM9aSxvPSJvbkNoYW5nZSIscj1bbi5hY3Rpb25dLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLCJvbkNoYW5nZSIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ncm91cC1ub3RpZmljYXRpb25zLWJ1dHRvbiIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbImdyb3VwLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbImdyb3VwLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sc2VsZWN0S2l0T3B0aW9uczp7aTE4blByZWZpeDoiaTE4blByZWZpeCJ9LGkxOG5QcmVmaXg6Imdyb3Vwcy5ub3RpZmljYXRpb25zIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvaWNvbi1waWNrZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJpY29uLXBpY2tlciJdLGNsYXNzTmFtZXM6WyJpY29uLXBpY2tlciJdLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2FjaGVkSWNvbnNMaXN0PW51bGwsImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudCYmKERpc2NvdXJzZS5kaXNhYmxlTWlzc2luZ0ljb25XYXJuaW5nPSEwKX0sY29udGVudDooMCxuLmNvbXB1dGVkKSgidmFsdWUuW10iLGZ1bmN0aW9uKCl7cmV0dXJuKDAscy5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLm1hcCh0aGlzLl9wcm9jZXNzSWNvbil9KSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOiIiO3JldHVybiIiPT09biYmdGhpcy5fY2FjaGVkSWNvbnNMaXN0JiZ0aGlzLl9jYWNoZWRJY29uc0xpc3QubGVuZ3RoP3RoaXMuX2NhY2hlZEljb25zTGlzdDooMCxpLmFqYXgpKCIvc3ZnLXNwcml0ZS9waWNrZXItc2VhcmNoIix7ZGF0YTp7ZmlsdGVyOm59fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZT1lLm1hcCh0Ll9wcm9jZXNzSWNvbiksIiI9PT1uJiYodC5fY2FjaGVkSWNvbnNMaXN0PWUpLGV9KX0sX3Byb2Nlc3NJY29uOmZ1bmN0aW9uKGUpe3ZhciB0PSJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6cihlKSk/ZS5pZDplLG49KDAsby5jb252ZXJ0SWNvbkNsYXNzKSh0KSxpPSIjc3ZnLXNwcml0ZXMiLHM9ImFqYXgtaWNvbi1ob2xkZXIiO3JldHVybiJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6cihlKSkmJigwPT09JChpKyIgLiIrcykubGVuZ3RoJiYkKGkpLmFwcGVuZCgnPGRpdiBjbGFzcz0iJytzKyJcIiBzdHlsZT0nZGlzcGxheTogbm9uZTsnPjwvZGl2PiIpLCQoaSsiIHN5bWJvbCMiK24pLmxlbmd0aHx8JChpKyIgLiIrcykuYXBwZW5kKCI8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+IitlLnN5bWJvbCsiPC9zdmc+IikpLHtpZDp0LG5hbWU6dCxpY29uOm59fSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXskKCIjc3ZnLXNwcml0ZXMgLmFqYXgtaWNvbi1ob2xkZXIiKS5yZW1vdmUoKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2FjaGVkSWNvbnNMaXN0PW51bGwsImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudCYmZGVsZXRlIERpc2NvdXJzZS5kaXNhYmxlTWlzc2luZ0ljb25XYXJuaW5nfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlLHQpezE9PT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLm1heGltdW0mJihlPWUubGVuZ3RoP2VbMF06bnVsbCx0PXQubGVuZ3RoP3RbMF06bnVsbCksdGhpcy5hdHRycy5vbkNoYW5nZSYmdGhpcy5hdHRycy5vbkNoYW5nZShlLHQpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL2xpc3Qtc2V0dGluZyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsibGlzdC1zZXR0aW5nIl0sY2xhc3NOYW1lczpbImxpc3Qtc2V0dGluZyJdLGNob2ljZXM6bnVsbCxuYW1lUHJvcGVydHk6bnVsbCx2YWx1ZVByb3BlcnR5Om51bGwsY29udGVudDooMCxzLnJlYWRPbmx5KSgiY2hvaWNlcyIpLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsc2VsZWN0ZWROYW1lQ29tcG9uZW50OiJzZWxlY3RlZE5hbWVDb21wb25lbnQifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oZSl7aWYoZT09PW4uTUFJTl9DT0xMRUNUSU9OJiZ0aGlzLnNldHRpbmdOYW1lJiYtMTx0aGlzLnNldHRpbmdOYW1lLmluZGV4T2YoImNvbG9yIikpcmV0dXJuImNyZWF0ZS1jb2xvci1yb3cifSxzZWxlY3RlZE5hbWVDb21wb25lbnQ6KDAsaS5jb21wdXRlZCkoInNldHRpbmdOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdOYW1lJiYtMTx0aGlzLnNldHRpbmdOYW1lLmluZGV4T2YoImNvbG9yIik/InNlbGVjdGVkLWNvbG9yIjoic2VsZWN0ZWQtbmFtZSJ9KSxkZXNlbGVjdDpmdW5jdGlvbihlKXt0aGlzLm9uQ2hhbmdlQ2hvaWNlcyYmdGhpcy5vbkNoYW5nZUNob2ljZXMoW10uY29uY2F0KHIobmV3IFNldChbZV0uY29uY2F0KHIoKDAsby5tYWtlQXJyYXkpKHRoaXMuY2hvaWNlcykpKSkpKSksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbWluaS10YWctY2hvb3NlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9jb21iby1ib3giLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQiXSxmdW5jdGlvbihlLHQsbixpLHIscyxvLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHU9Ik1JTklfVEFHX0NIT09TRVJfU0VMRUNURURfVEFHUyI7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtoZWFkZXJDb21wb25lbnQ6Im1pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiLHBsdWdpbkFwaUlkZW50aWZpZXJzOlsibWluaS10YWctY2hvb3NlciJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2VsZWN0S2l0Lm9wdGlvbnMuY2F0ZWdvcnlJZDpjYXRlZ29yeS1pZCJdLGNsYXNzTmFtZXM6WyJtaW5pLXRhZy1jaG9vc2VyIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJub1RhZ3MiXSxub1RhZ3M6KDAsdC5lbXB0eSkoInZhbHVlIiksbWF4VGFnU2VhcmNoUmVzdWx0czooMCxvLnNldHRpbmcpKCJtYXhfdGFnX3NlYXJjaF9yZXN1bHRzIiksbWF4VGFnc1BlclRvcGljOigwLG8uc2V0dGluZykoIm1heF90YWdzX3Blcl90b3BpYyIpLGhpZ2hsaWdodGVkVGFnOm51bGwsc2luZ2xlU2VsZWN0OiExLGNvbGxlY3Rpb25zOigwLHMuY29tcHV0ZWQpKCJtYWluQ29sbGVjdGlvbi5bXSIsImVycm9yc0NvbGxlY3Rpb24uW10iLCJoaWdobGlnaHRlZFRhZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksc2VsZWN0S2l0T3B0aW9uczp7ZnVsbFdpZHRoT25Nb2JpbGU6ITAsZmlsdGVyYWJsZTohMCxjYXJldERvd25JY29uOiJjYXJldEljb24iLGNhcmV0VXBJY29uOiJjYXJldEljb24iLHRlcm1NYXRjaGVzRm9yYmlkZGVuOiExLGNhdGVnb3J5SWQ6bnVsbCxldmVyeVRhZzohMSxub25lOiJ0YWdnaW5nLmNob29zZV9mb3JfdG9waWMiLGNsb3NlT25DaGFuZ2U6ITEsbWF4aW11bToibWF4aW11bVNlbGVjdGVkVGFncyIsYXV0b0luc2VydE5vbmVJdGVtOiExfSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSh0KT09PXRoaXMuc2VsZWN0S2l0LmZpbHRlcj8ic2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyI6InRhZy1yb3cifSxtb2RpZnlDb21wb25lbnRGb3JDb2xsZWN0aW9uOmZ1bmN0aW9uKGUpe2lmKGU9PT11KXJldHVybiJtaW5pLXRhZy1jaG9vc2VyL3NlbGVjdGVkLWNvbGxlY3Rpb24ifSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09dSlyZXR1cm57c2VsZWN0ZWRUYWdzOnRoaXMudmFsdWUsaGlnaGxpZ2h0ZWRUYWc6dGhpcy5oaWdobGlnaHRlZFRhZ319LGFsbG93QW55VGFnOigwLHQub3IpKCJhbGxvd0NyZWF0ZSIsInNpdGUuY2FuX2NyZWF0ZV90YWciKSxtYXhpbXVtU2VsZWN0ZWRUYWdzOigwLHMuY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMub3B0aW9ucy5saW1pdHx8dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtfHx0aGlzLm1heFRhZ3NQZXJUb3BpYywxMCl9KSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaW5zZXJ0QWZ0ZXJDb2xsZWN0aW9uKGEuRVJST1JTX0NPTExFQ1RJT04sdSl9LGNhcmV0SWNvbjooMCxzLmNvbXB1dGVkKSgidmFsdWUuW10iLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtO3JldHVybiBlJiYoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubGVuZ3RoPj1wYXJzZUludChlLDEwKT9udWxsOiJwbHVzIn0pLG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdCxuLGk9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5taW5pbXVtO3JldHVybiBpJiYoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubGVuZ3RoPHBhcnNlSW50KGksMTApPyh0PXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubWluaW11bUxhYmVsfHwic2VsZWN0X2tpdC5taW5fY29udGVudF9ub3RfcmVhY2hlZCIsbj1JMThuLnQodCx7Y291bnQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5taW5pbXVtfSksZS50aXRsZT1lLm5hbWU9ZS5sYWJlbD1uKTooZS5uYW1lPWUudmFsdWU9KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmpvaW4oIiwiKSxlLnRpdGxlPWUubGFiZWw9KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmpvaW4oIiwgIiksMzI8ZS5sYWJlbC5sZW5ndGgmJihlLmxhYmVsPWUubGFiZWwuc2xpY2UoMCwzMikrIi4uLiIpKSxlfSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9e3E6ZXx8IiIsbGltaXQ6dGhpcy5tYXhUYWdTZWFyY2hSZXN1bHRzLGNhdGVnb3J5SWQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5jYXRlZ29yeUlkfTtyZXR1cm4gdGhpcy52YWx1ZSYmKHQuc2VsZWN0ZWRfdGFncz10aGlzLnZhbHVlLnNsaWNlKDAsMTAwKSksdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ldmVyeVRhZ3x8KHQuZmlsdGVyRm9ySW5wdXQ9ITApLHRoaXMuc2VhcmNoVGFncygiL3RhZ3MvZmlsdGVyL3NlYXJjaCIsdCx0aGlzLl90cmFuc2Zvcm1Kc29uKX0sX3RyYW5zZm9ybUpzb246ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnJlc3VsdHM7cmV0dXJuIHQuc2V0UHJvcGVydGllcyh7dGVybU1hdGNoZXNGb3JiaWRkZW46ISFlLmZvcmJpZGRlbix0ZXJtTWF0Y2hFcnJvck1lc3NhZ2U6ZS5mb3JiaWRkZW5fbWVzc2FnZX0pLHQuZ2V0KCJzaXRlU2V0dGluZ3MudGFnc19zb3J0X2FscGhhYmV0aWNhbGx5IikmJihuPW4uc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLnRleHQubG9jYWxlQ29tcGFyZSh0LnRleHQpfSkpLG49bi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISgwLHIubWFrZUFycmF5KSh0LnRhZ3MpLmluY2x1ZGVzKGUuaWQpfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLnRleHQsbmFtZTplLnRleHQsY291bnQ6ZS5jb3VudH19KX0sc2VsZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMuX3Jlc2V0KCksdGhpcy52YWxpZGF0ZVNlbGVjdChlKSYmKHQ9W10uY29uY2F0KGwobmV3IFNldCgoMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuY29uY2F0KGUpKSkpLHRoaXMuc2VsZWN0S2l0LmNoYW5nZSh0LHQpKX0sZGVzZWxlY3Q6ZnVuY3Rpb24oZSl7dGhpcy5fcmVzZXQoKTt2YXIgdD1bXS5jb25jYXQobChuZXcgU2V0KCgwLHIubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5yZW1vdmVPYmplY3QoZSkpKSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHQsdCl9LF9yZXNldDpmdW5jdGlvbigpe3RoaXMuY2xlYXJFcnJvcnMoKSx0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG51bGwpfSxfb25LZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG89KDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpO3JldHVybiA4PT09ZS5rZXlDb2RlP3RoaXMuX29uQmFja3NwYWNlKHRoaXMudmFsdWUsdGhpcy5oaWdobGlnaHRlZFRhZyk6Mzc9PT1lLmtleUNvZGU/dGhpcy5oaWdobGlnaHRlZFRhZz8odD1vLmluZGV4T2YodGhpcy5oaWdobGlnaHRlZFRhZyksbj1vW3QtMV0/b1t0LTFdOm8ubGFzdE9iamVjdCx0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG4pKTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG8ubGFzdE9iamVjdCk6Mzk9PT1lLmtleUNvZGU/dGhpcy5oaWdobGlnaHRlZFRhZz8oaT1vLmluZGV4T2YodGhpcy5oaWdobGlnaHRlZFRhZykscz1vW2krMV0/b1tpKzFdOm8uZmlyc3RPYmplY3QsdGhpcy5zZXQoImhpZ2hsaWdodGVkVGFnIixzKSk6dGhpcy5zZXQoImhpZ2hsaWdodGVkVGFnIixvLmZpcnN0T2JqZWN0KTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLG51bGwpLCEwfSxfb25CYWNrc3BhY2U6ZnVuY3Rpb24oZSx0KXtlJiZlLmxlbmd0aCYmKHQ/dGhpcy5kZXNlbGVjdCh0KTp0aGlzLnNldCgiaGlnaGxpZ2h0ZWRUYWciLGUubGFzdE9iamVjdCkpfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9taW5pLXRhZy1jaG9vc2VyLWhlYWRlciIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NvbWJvLWJveC9jb21iby1ib3gtaGVhZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiLGNsYXNzTmFtZXM6WyJtaW5pLXRhZy1jaG9vc2VyLWhlYWRlciJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9taW5pLXRhZy1jaG9vc2VyL3NlbGVjdGVkLWNvbGxlY3Rpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9zZWxlY3RlZC1jb2xsZWN0aW9uIixjbGFzc05hbWVzOlsibWluaS10YWctY2hvb3Nlci1zZWxlY3RlZC1jb2xsZWN0aW9uIiwic2VsZWN0ZWQtdGFncyJdLGlzVmlzaWJsZTooMCxpLm5vdEVtcHR5KSgic2VsZWN0ZWRUYWdzLltdIiksc2VsZWN0ZWRUYWdzOigwLGkucmVhZHMpKCJjb2xsZWN0aW9uLmNvbnRlbnQuc2VsZWN0ZWRUYWdzLltdIiksaGlnaGxpZ2h0ZWRUYWc6KDAsaS5yZWFkcykoImNvbGxlY3Rpb24uY29udGVudC5oaWdobGlnaHRlZFRhZyIpLHRhZ3M6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkVGFncy5bXSIsImhpZ2hsaWdodGVkVGFnIiwic2VsZWN0S2l0LmZpbHRlciIsZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCF0aGlzLnNlbGVjdGVkVGFncylyZXR1cm5bXTt2YXIgZT10aGlzLnNlbGVjdGVkVGFncztyZXR1cm4gMjA8PWUubGVuZ3RoJiZ0aGlzLnNlbGVjdEtpdC5maWx0ZXI/ZT1lLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMDw9ZS5pbmRleE9mKG4uc2VsZWN0S2l0LmZpbHRlcil9KToyMDw9ZS5sZW5ndGgmJihlPWUuc2xpY2UoMCwyMCkpLGU9ZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9WyJzZWxlY3RlZC10YWciXTtyZXR1cm4gZT09PW4uaGlnaGxpZ2h0ZWRUYWcmJnQucHVzaCgiaXMtaGlnaGxpZ2h0ZWQiKSx7dmFsdWU6ZSxjbGFzc05hbWVzOnQuam9pbigiICIpfX0pfSksYWN0aW9uczp7ZGVzZWxlY3RUYWc6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LmRlc2VsZWN0KGUpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJtdWx0aS1zZWxlY3QiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdCIsY2xhc3NOYW1lczpbIm11bHRpLXNlbGVjdCJdLG11bHRpU2VsZWN0OiEwLHNlbGVjdEtpdE9wdGlvbnM6e25vbmU6InNlbGVjdF9raXQuZGVmYXVsdF9oZWFkZXJfdGV4dCIsY2xlYXJhYmxlOiEwLGZpbHRlcmFibGU6ITAsZmlsdGVySWNvbjpudWxsLGNsZWFyT25DbGljazohMCxjbG9zZU9uQ2hhbmdlOiExLGF1dG9JbnNlcnROb25lSXRlbTohMSxoZWFkZXJDb21wb25lbnQ6Im11bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtaGVhZGVyIixmaWx0ZXJDb21wb25lbnQ6Im11bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZmlsdGVyIn0sc2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3N1cGVyKGUpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hKDAscy5tYWtlQXJyYXkpKHQuc2VsZWN0ZWRDb250ZW50KS5pbmNsdWRlcyhlKX0pfSxkZXNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3RoaXMuY2xlYXJFcnJvcnMoKTt2YXIgZT10aGlzLnNlbGVjdGVkQ29udGVudC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZ2V0VmFsdWUodCkhPT1uLmdldFZhbHVlKGUpfSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHRoaXMudmFsdWVQcm9wZXJ0eT9lLm1hcEJ5KHRoaXMudmFsdWVQcm9wZXJ0eSk6ZSxlKX0sc2VsZWN0OmZ1bmN0aW9uKGUsdCl7aWYoKDAsby5pc1ByZXNlbnQpKGUpKXtpZih0aGlzLmZpbmRWYWx1ZSh0aGlzLm1haW5Db2xsZWN0aW9uLHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHk/dDplKSYmIXRoaXMudmFsaWRhdGVTZWxlY3QodCkpcmV0dXJuO3ZhciBuPSgwLHMubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5jb25jYXQoKDAscy5tYWtlQXJyYXkpKGUpKSxpPSgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0KSk7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKG4saS5sZW5ndGg/aTooMCxzLm1ha2VBcnJheSkodGhpcy5kZWZhdWx0SXRlbShlLGUpKSl9ZWxzZXtpZighdGhpcy52YWxpZGF0ZVNlbGVjdCh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCkpcmV0dXJuO3RoaXMuc2VsZWN0S2l0LmNoYW5nZSgoMCxzLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0aGlzLmdldFZhbHVlKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSkpLCgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkuY29uY2F0KCgwLHMubWFrZUFycmF5KSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCkpKX19LHNlbGVjdGVkQ29udGVudDooMCxpLmNvbXB1dGVkKSgidmFsdWUuW10iLCJjb250ZW50LltdIixmdW5jdGlvbigpe3ZhciBuPXRoaXMsZT0oMCxzLm1ha2VBcnJheSkodGhpcy52YWx1ZSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLnNlbGVjdEtpdC5vcHRpb25zLmNhc3RJbnRlZ2VyJiZuLl9pc051bWVyaWMoZSk/TnVtYmVyKGUpOmV9KTtpZihlLmxlbmd0aCl7dmFyIGk9W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDtuLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5Pyh0PSgwLHMubWFrZUFycmF5KShuLmNvbnRlbnQpLmZpbmRCeShuLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5LGUpKSYmaS5wdXNoKHQpOigwLHMubWFrZUFycmF5KShuLmNvbnRlbnQpLmluY2x1ZGVzKGUpJiZpLnB1c2goZSl9KSx0aGlzLnNlbGVjdEtpdC5tb2RpZnlTZWxlY3Rpb24oaXx8W10pfXJldHVybiB0aGlzLnNlbGVjdEtpdC5ub25lSXRlbX0pLF9vbktleWRvd246ZnVuY3Rpb24oZSl7dmFyIHQsbixpO3JldHVybiA4PT09ZS5rZXlDb2RlPyhlLnN0b3BQcm9wYWdhdGlvbigpLCh0PXRoaXMuZ2V0RmlsdGVySW5wdXQoKSkmJjE8PSF0LnZhbHVlLmxlbmd0aCYmKCEobj10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlbGVjdC1raXQtaGVhZGVyIC5jaG9pY2Uuc2VsZWN0LWtpdC1zZWxlY3RlZC1uYW1lIikpLmxlbmd0aHx8KGk9bltuLmxlbmd0aC0xXSkmJihpLmNsYXNzTGlzdC5jb250YWlucygiaXMtaGlnaGxpZ2h0ZWQiKT90aGlzLmRlc2VsZWN0KHRoaXMuc2VsZWN0ZWRDb250ZW50Lmxhc3RPYmplY3QpOmkuY2xhc3NMaXN0LmFkZCgiaXMtaGlnaGxpZ2h0ZWQiKSkpKTp0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlbGVjdC1raXQtaGVhZGVyIC5jaG9pY2Uuc2VsZWN0LWtpdC1zZWxlY3RlZC1uYW1lIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1oaWdobGlnaHRlZCIpfSksITB9LGhhbmRsZURlcHJlY2F0aW9uczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9kZXByZWNhdGVWYWx1ZXMoKX0sX2RlcHJlY2F0ZVZhbHVlczpmdW5jdGlvbigpe3RoaXMudmFsdWVzJiYhdGhpcy52YWx1ZSYmKCgwLHQuZGVmYXVsdCkoIlRoZSBgdmFsdWVzYCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGZvciBtdWx0aS1zZWxlY3QuIFVzZSBgdmFsdWVgIGluc3RlYWQiLHtzaW5jZToidjIuNC4wIn0pLHRoaXMuc2V0KCJ2YWx1ZSIsdGhpcy52YWx1ZXMpKX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtZmlsdGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9RW1iZXIuaXNFbXB0eTtlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlciIsInNlbGVjdEtpdC5oYXNTZWxlY3Rpb24iKSxvPXM9e2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciIsY2xhc3NOYW1lczpbIm11bHRpLXNlbGVjdC1maWx0ZXIiXSxjb21wdXRlZFBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fGQoZSk/IiI6STE4bi50KGUpfX0scj0iY29tcHV0ZWRQbGFjZWhvbGRlciIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNvbXB1dGVkUGxhY2Vob2xkZXIiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsibXVsdGktc2VsZWN0LWhlYWRlciJdLGxheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1oZWFkZXIiLHNlbGVjdGVkTmFtZXM6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkQ29udGVudCIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5hbWUoZSl9KX0pLHNlbGVjdGVkVmFsdWU6KDAsbi5jb21wdXRlZCkoInNlbGVjdGVkQ29udGVudCIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkubWFrZUFycmF5KSh0aGlzLnNlbGVjdGVkQ29udGVudCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5hbWUoZSkhPT10LmdldE5hbWUodC5zZWxlY3RLaXQubm9uZUl0ZW0pP3QuZ2V0VmFsdWUoZSk6bnVsbH0pLmZpbHRlcihCb29sZWFuKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3RlZC1uYW1lIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsic2VsZWN0ZWQtY2F0ZWdvcnkiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdC9zZWxlY3RlZC1jYXRlZ29yeSIsYmFkZ2U6KDAsaS5jb21wdXRlZCkoIml0ZW0iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5jYXRlZ29yeUJhZGdlSFRNTCkodGhpcy5pdGVtLHthbGxvd1VuY2F0ZWdvcml6ZWQ6ITAsbGluazohMX0pLmh0bWxTYWZlKCl9KX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L3NlbGVjdGVkLWNvbG9yIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgibmFtZSIpLG89cz17Y2xhc3NOYW1lczpbInNlbGVjdC1raXQtc2VsZWN0ZWQtY29sb3IiXSxmb290ZXJDb250ZW50OmZ1bmN0aW9uKGUpe3JldHVybignPHNwYW4gY2xhc3M9ImNvbG9yLXByZXZpZXciIHN0eWxlPSJiYWNrZ3JvdW5kOiMnK2UrJyI+PC9zcGFuPicpLmh0bWxTYWZlKCl9fSxyPSJmb290ZXJDb250ZW50IixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiZm9vdGVyQ29udGVudCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ub25lLWNhdGVnb3J5LXJvdyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2NhdGVnb3J5LXJvdyIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxyPW89e2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93IixjbGFzc05hbWVzOiJub25lIGNhdGVnb3J5LXJvdyIsYmFkZ2VGb3JDYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmNhdGVnb3J5QmFkZ2VIVE1MKShlLHtsaW5rOnRoaXMuY2F0ZWdvcnlMaW5rLGFsbG93VW5jYXRlZ29yaXplZDohMCxoaWRlUGFyZW50OiEwfSkuaHRtbFNhZmUoKX19LGE9ImJhZGdlRm9yQ2F0ZWdvcnkiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJiYWRnZUZvckNhdGVnb3J5IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsImRpc2NvdXJzZS9saWIvbm90aWZpY2F0aW9uLWxldmVscyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY29udGVudDpuLmFsbExldmVscyxuYW1lUHJvcGVydHk6ImtleSIsc2VsZWN0S2l0T3B0aW9uczp7YXV0b0ZpbHRlcmFibGU6ITEsZmlsdGVyYWJsZTohMSxpMThuUHJlZml4OiIiLGkxOG5Qb3N0Zml4OiIifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4ibm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24tcm93In0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe2U9ZXx8e307dmFyIHQ9dGhpcy5zZWxlY3RLaXQub3B0aW9ucyxuPXQuaTE4blByZWZpeCxpPXQuaTE4blBvc3RmaXg7cmV0dXJuKDAscy5zZXRQcm9wZXJ0aWVzKShlLHtsYWJlbDpJMThuLnQobisiLiIrdGhpcy5idXR0b25Gb3JWYWx1ZS5rZXkraSsiLnRpdGxlIiksaWNvbjp0aGlzLmJ1dHRvbkZvclZhbHVlLmljb259KSxlfSxidXR0b25Gb3JWYWx1ZTooMCxzLmNvbXB1dGVkKSgidmFsdWUiLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5idXR0b25EZXRhaWxzKSh0aGlzLnZhbHVlKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9ub3RpZmljYXRpb25zLWJ1dHRvbi9ub3RpZmljYXRpb25zLWJ1dHRvbi1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0Iiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3gvZHJvcGRvd24tc2VsZWN0LWJveC1yb3ciLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbIm5vdGlmaWNhdGlvbnMtYnV0dG9uLXJvdyJdLGkxOG5QcmVmaXg6KDAsdC5yZWFkT25seSkoInNlbGVjdEtpdC5vcHRpb25zLmkxOG5QcmVmaXgiKSxpMThuUG9zdGZpeDooMCx0LnJlYWRPbmx5KSgic2VsZWN0S2l0Lm9wdGlvbnMuaTE4blBvc3RmaXgiKSxsYWJlbDooMCxuLmNvbXB1dGVkKSgiX3N0YXJ0IixmdW5jdGlvbigpe3JldHVybigwLHMuZXNjYXBlRXhwcmVzc2lvbikoSTE4bi50KHRoaXMuX3N0YXJ0KyIudGl0bGUiKSl9KSx0aXRsZTooMCx0LnJlYWRPbmx5KSgibGFiZWwiKSxpY29uczooMCxuLmNvbXB1dGVkKSgidGl0bGUiLCJpdGVtLmljb24iLGZ1bmN0aW9uKCl7cmV0dXJuWygwLHMuZXNjYXBlRXhwcmVzc2lvbikodGhpcy5pdGVtLmljb24pXX0pLGRlc2NyaXB0aW9uOigwLG4uY29tcHV0ZWQpKCJfc3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZSYmdGhpcy5zaXRlLm1vYmlsZVZpZXc/bnVsbDooMCxzLmVzY2FwZUV4cHJlc3Npb24pKEkxOG4udCh0aGlzLl9zdGFydCsiLmRlc2NyaXB0aW9uIikpfSksX3N0YXJ0OigwLG4uY29tcHV0ZWQpKCJpMThuUHJlZml4IiwiaTE4blBvc3RmaXgiLCJyb3dOYW1lIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmkxOG5QcmVmaXgrIi4iK3RoaXMucm93TmFtZSt0aGlzLmkxOG5Qb3N0Zml4fSl9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3BlcmlvZC1jaG9vc2VyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL2Ryb3Bkb3duLXNlbGVjdC1ib3giXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInBlcmlvZC1jaG9vc2VyIl0sY29udGVudDooMCx0Lm9uZVdheSkoInNpdGUucGVyaW9kcyIpLHZhbHVlOigwLHQucmVhZE9ubHkpKCJwZXJpb2QiKSxpc1Zpc2libGU6KDAsdC5yZWFkT25seSkoInNob3dQZXJpb2RzIiksdmFsdWVQcm9wZXJ0eTpudWxsLG5hbWVQcm9wZXJ0eTpudWxsLG1vZGlmeUNvbXBvbmVudEZvclJvdzpmdW5jdGlvbigpe3JldHVybiJwZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3cifSxzZWxlY3RLaXRPcHRpb25zOntmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExLGZ1bGxEYXk6ImZ1bGxEYXkiLGhlYWRlckNvbXBvbmVudDoicGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItaGVhZGVyIn0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5hY3Rpb24/dGhpcy5hY3Rpb24oZSk6dGhpcy5hdHRycy5vbkNoYW5nZSYmdGhpcy5hdHRycy5vbkNoYW5nZShlKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLmRlZmF1bHQpKCJzZWxlY3RLaXQuaXNFeHBhbmRlZCIpLG89cz17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiLGNsYXNzTmFtZXM6WyJwZXJpb2QtY2hvb3Nlci1oZWFkZXIiXSxjYXJldEljb246ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImNhcmV0LXVwIjoiY2FyZXQtZG93biJ9fSxyPSJjYXJldEljb24iLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJjYXJldEljb24iKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgicm93TmFtZSIpLG89cz17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3ciLGNsYXNzTmFtZXM6WyJwZXJpb2QtY2hvb3Nlci1yb3ciXSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJmaWx0ZXJzLnRvcC4iKyhlfHwidGhpc193ZWVrIikpLnRpdGxlfX0scj0idGl0bGUiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ0aXRsZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsbi5kZWZhdWx0KSgidG9waWMucGlubmVkX2dsb2JhbGx5IiwicGlubmVkIiksbz0oMCxuLmRlZmF1bHQpKCJwaW5uZWQiLCJ0b3BpYy5kZWxldGVkIiwidG9waWMudW5waW5uZWQiKSxpKHI9e3BsdWdpbkFwaUlkZW50aWZpZXJzOlsicGlubmVkLWJ1dHRvbiJdLGRlc2NyaXB0aW9uS2V5OiJoZWxwIixjbGFzc05hbWVzOiJwaW5uZWQtYnV0dG9uIixjbGFzc05hbWVCaW5kaW5nczpbImlzSGlkZGVuIl0sbGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIixyZWFzb25UZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49InRvcGljX3N0YXR1c2VzLiIrKHQ/InBpbm5lZCIrKGU/Il9nbG9iYWxseSI6IiIpOiJ1bnBpbm5lZCIpKyIuaGVscCI7cmV0dXJuIEkxOG4udChuKX0saXNIaWRkZW46ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0fHwhZSYmIW59fSwicmVhc29uVGV4dCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwicmVhc29uVGV4dCIpLHIpLGkociwiaXNIaWRkZW4iLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImlzSGlkZGVuIikscikscikpfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvcGlubmVkLW9wdGlvbnMiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxzLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9InVucGlubmVkIjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT17cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJwaW5uZWQtb3B0aW9ucyJdLGNsYXNzTmFtZXM6WyJwaW5uZWQtb3B0aW9ucyJdLG1vZGlmeVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldCgidG9waWMucGlubmVkX2dsb2JhbGx5Iiksbj10aGlzLnZhbHVlPyJwaW5uZWQiKyh0PyJfZ2xvYmFsbHkiOiIiKTpkLGk9STE4bi50KCJ0b3BpY19zdGF0dXNlcy4iK24rIi50aXRsZSIpO3JldHVybiBlLmxhYmVsPSgiPHNwYW4+IitpKyI8L3NwYW4+IisoMCxzLmljb25IVE1MKSgiY2FyZXQtZG93biIpKS5odG1sU2FmZSgpLGUudGl0bGU9aSxlLm5hbWU9bixlLmljb249InRodW1idGFjayIrKG49PWQ/IiB1bnBpbm5lZCI6IiIpLGV9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljLnBpbm5lZF9nbG9iYWxseT8iX2dsb2JhbGx5IjoiIjtyZXR1cm5be2lkOiJwaW5uZWQiLG5hbWU6STE4bi50KCJ0b3BpY19zdGF0dXNlcy5waW5uZWQiK2UrIi50aXRsZSIpLGRlc2NyaXB0aW9uOnRoaXMuc2l0ZS5tb2JpbGVWaWV3P251bGw6STE4bi50KCJ0b3BpY19zdGF0dXNlcy5waW5uZWQiK2UrIi5oZWxwIiksaWNvbjoidGh1bWJ0YWNrIn0se2lkOmQsbmFtZTpJMThuLnQoInRvcGljX3N0YXR1c2VzLnVucGlubmVkLnRpdGxlIiksaWNvbjoidGh1bWJ0YWNrIHVucGlubmVkIixkZXNjcmlwdGlvbjp0aGlzLnNpdGUubW9iaWxlVmlldz9udWxsOkkxOG4udCgidG9waWNfc3RhdHVzZXMudW5waW5uZWQuaGVscCIpfV19KSxvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO3JldHVybiBlPT09ZD90LmNsZWFyUGluKCk6dC5yZVBpbigpfX0sbz1pLHI9Im9uQ2hhbmdlIixhPVtuLmFjdGlvbl0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9uQ2hhbmdlIiksdT1pLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLGkpKX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlYXJjaC1hZHZhbmNlZC1jYXRlZ29yeS1jaG9vc2VyIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY2F0ZWdvcnktY2hvb3NlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciJdLGNsYXNzTmFtZXM6WyJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciJdLHNlbGVjdEtpdE9wdGlvbnM6e2FsbG93VW5jYXRlZ29yaXplZDohMCxjbGVhcmFibGU6ITAsbm9uZToiY2F0ZWdvcnkuYWxsIixkaXNwbGF5Q2F0ZWdvcnlEZXNjcmlwdGlvbjohMSxwZXJtaXNzaW9uVHlwZTpudWxsfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIiwic2VsZWN0LWtpdC9taXhpbnMvcGx1Z2luLWFwaSIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsInJzdnAiXSxmdW5jdGlvbihlLHUsdCxuLHIsaSxzLG8sYSxsLGMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5FUlJPUlNfQ09MTEVDVElPTj1lLk1BSU5fQ09MTEVDVElPTj12b2lkIDA7dmFyIGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHA9KGUuTUFJTl9DT0xMRUNUSU9OPSJNQUlOX0NPTExFQ1RJT04iLGUuRVJST1JTX0NPTExFQ1RJT049IkVSUk9SU19DT0xMRUNUSU9OIiksbT1PYmplY3QuZnJlZXplKHt9KSxmPW8uZGVmYXVsdC5jcmVhdGUoe21lcmdlZFByb3BlcnRpZXM6WyJzZWxlY3RLaXRPcHRpb25zIl0sc2VsZWN0S2l0T3B0aW9uczptfSk7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoZixzLmRlZmF1bHQsaS5kZWZhdWx0LHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInNlbGVjdC1raXQiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQiLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0Il0sY2xhc3NOYW1lQmluZGluZ3M6WyJzZWxlY3RLaXQuaXNMb2FkaW5nOmlzLWxvYWRpbmciLCJzZWxlY3RLaXQuaXNFeHBhbmRlZDppcy1leHBhbmRlZCIsInNlbGVjdEtpdC5pc0Rpc2FibGVkOmlzLWRpc2FibGVkIiwic2VsZWN0S2l0LmlzSGlkZGVuOmlzLWhpZGRlbiIsInNlbGVjdEtpdC5oYXNTZWxlY3Rpb246aGFzLXNlbGVjdGlvbiJdLHRhYmluZGV4OjAsY29udGVudDpudWxsLHZhbHVlOm51bGwsc2VsZWN0S2l0Om51bGwsbWFpbkNvbGxlY3Rpb246bnVsbCxlcnJvcnNDb2xsZWN0aW9uOm51bGwsb3B0aW9uczpudWxsLHZhbHVlUHJvcGVydHk6ImlkIixuYW1lUHJvcGVydHk6Im5hbWUiLHNpbmdsZVNlbGVjdDohMSxtdWx0aVNlbGVjdDohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3NlYXJjaFByb21pc2U9bnVsbCx0aGlzLnNldCgiZXJyb3JzQ29sbGVjdGlvbiIsW10pLHRoaXMuX2NvbGxlY3Rpb25zPVtwLCJNQUlOX0NPTExFQ1RJT04iXSx0aGlzLm9wdGlvbnN8fHRoaXMuc2V0KCJvcHRpb25zIix1LmRlZmF1bHQuY3JlYXRlKHt9KSksdGhpcy5oYW5kbGVEZXByZWNhdGlvbnMoKSx0aGlzLnNldCgic2VsZWN0S2l0Iix1LmRlZmF1bHQuY3JlYXRlKHt1bmlxdWVJRDpFbWJlci5ndWlkRm9yKHRoaXMpLHZhbHVlUHJvcGVydHk6dGhpcy52YWx1ZVByb3BlcnR5LG5hbWVQcm9wZXJ0eTp0aGlzLm5hbWVQcm9wZXJ0eSxvcHRpb25zOnUuZGVmYXVsdC5jcmVhdGUoKSxpc0xvYWRpbmc6ITEsaXNIaWRkZW46ITEsaXNFeHBhbmRlZDohMSxpc0ZpbHRlckV4cGFuZGVkOiExLGhhc1NlbGVjdGlvbjohMSxoYXNOb0NvbnRlbnQ6ITAsaGlnaGxpZ2h0ZWQ6bnVsbCxub25lSXRlbTpudWxsLG5ld0l0ZW06bnVsbCxmaWx0ZXI6bnVsbCxtb2RpZnlDb250ZW50OigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlDb250ZW50V3JhcHBlciksbW9kaWZ5U2VsZWN0aW9uOigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlTZWxlY3Rpb25XcmFwcGVyKSxtb2RpZnlDb21wb25lbnRGb3JSb3c6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX21vZGlmeUNvbXBvbmVudEZvclJvd1dyYXBwZXIpLG1vZGlmeUNvbnRlbnRGb3JDb2xsZWN0aW9uOigwLGwuYmluZCkodGhpcyx0aGlzLl9tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbldyYXBwZXIpLG1vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb246KDAsbC5iaW5kKSh0aGlzLHRoaXMuX21vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb25XcmFwcGVyKSx0b2dnbGU6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX3RvZ2dsZSksY2xvc2U6KDAsbC5iaW5kKSh0aGlzLHRoaXMuX2Nsb3NlKSxvcGVuOigwLGwuYmluZCkodGhpcyx0aGlzLl9vcGVuKSxoaWdobGlnaHROZXh0OigwLGwuYmluZCkodGhpcyx0aGlzLl9oaWdobGlnaHROZXh0KSxoaWdobGlnaHRQcmV2aW91czooMCxsLmJpbmQpKHRoaXMsdGhpcy5faGlnaGxpZ2h0UHJldmlvdXMpLGNoYW5nZTooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25DaGFuZ2VXcmFwcGVyKSxzZWxlY3Q6KDAsbC5iaW5kKSh0aGlzLHRoaXMuc2VsZWN0KSxkZXNlbGVjdDooMCxsLmJpbmQpKHRoaXMsdGhpcy5kZXNlbGVjdCksb25PcGVuOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbk9wZW5XcmFwcGVyKSxvbkNsb3NlOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbkNsb3NlV3JhcHBlciksb25JbnB1dDooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25JbnB1dCksb25DbGVhclNlbGVjdGlvbjooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25DbGVhclNlbGVjdGlvbiksb25Ib3ZlcjooMCxsLmJpbmQpKHRoaXMsdGhpcy5fb25Ib3Zlciksb25LZXlkb3duOigwLGwuYmluZCkodGhpcyx0aGlzLl9vbktleWRvd25XcmFwcGVyKX0pKX0sX21vZGlmeUNvbXBvbmVudEZvclJvd1dyYXBwZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tb2RpZnlDb21wb25lbnRGb3JSb3coZSx0KXx8InNlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3cifSxtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXt9LF9tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbldyYXBwZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbihlKTtpZighdClzd2l0Y2goZSl7Y2FzZSBwOnQ9dGhpcy5lcnJvcnNDb2xsZWN0aW9uO2JyZWFrO2RlZmF1bHQ6dD10aGlzLm1haW5Db2xsZWN0aW9ufXJldHVybiB0fSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbigpe30sX21vZGlmeUNvbXBvbmVudEZvckNvbGxlY3Rpb25XcmFwcGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbihlKTtpZighdClzd2l0Y2goZSl7Y2FzZSBwOnQ9InNlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iO2JyZWFrO2RlZmF1bHQ6dD0ic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWNvbGxlY3Rpb24ifXJldHVybiB0fSxtb2RpZnlDb21wb25lbnRGb3JDb2xsZWN0aW9uOmZ1bmN0aW9uKCl7fSxkaWRVcGRhdGVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgic2VsZWN0S2l0LmlzRGlzYWJsZWQiLHRoaXMuaXNEaXNhYmxlZHx8ITEpLHRoaXMuaGFuZGxlRGVwcmVjYXRpb25zKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5wb3BwZXImJih0aGlzLnBvcHBlci5kZXN0cm95KCksdGhpcy5wb3BwZXI9bnVsbCl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBpPXt9O09iamVjdC5rZXlzKHRoaXMuc2VsZWN0S2l0T3B0aW9ucykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLnNlbGVjdEtpdE9wdGlvbnNbZV07aWYoImNvbXBvbmVudEZvclJvdyIhPT1lJiYiY29udGVudEZvckNvbGxlY3Rpb24iIT09ZSYmImNvbXBvbmVudEZvckNvbGxlY3Rpb24iIT09ZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0LmluZGV4T2YoIi4iKTwwJiZ0IGluIG4paWYoImZ1bmN0aW9uIiE9dHlwZW9mKDAsdS5nZXQpKG4sdCkpcmV0dXJuIHZvaWQoaVtlXT0oMCx1LmdldCkobix0KSk7aVtlXT10fWVsc2UgaVtlXT0ic3RyaW5nIj09dHlwZW9mIHQ/ZnVuY3Rpb24oKXtyZXR1cm4gdH06KDAsbC5iaW5kKShuLHQpfSksdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5zZXRQcm9wZXJ0aWVzKE9iamVjdC5hc3NpZ24oaSx0aGlzLm9wdGlvbnN8fHt9KSksdGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aGFzU2VsZWN0aW9uOiEoMCxhLmlzRW1wdHkpKHRoaXMudmFsdWUpLG5vbmVJdGVtOnRoaXMuX21vZGlmeU5vU2VsZWN0aW9uV3JhcHBlcigpLG5ld0l0ZW06bnVsbH0pLHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQmJih0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKHRoaXMuc2VsZWN0S2l0LmZpbHRlcikpLHRoaXMuY29tcHV0ZUNvbnRlbnQmJih0aGlzLl9kZXByZWNhdGVkKCJUaGUgYGNvbXB1dGVDb250ZW50KClgIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgcGFzcyBhIGBjb250ZW50YCBhdHRyaWJ1dGUgb3IgZGVmaW5lIGEgYGNvbnRlbnRgIGNvbXB1dGVkIHByb3BlcnR5IGluIHlvdXIgY29tcG9uZW50LiIpLHRoaXMuc2V0KCJjb250ZW50Iix0aGlzLmNvbXB1dGVDb250ZW50KCkpKX0sc2VsZWN0S2l0T3B0aW9uczp7c2hvd0Z1bGxUaXRsZTohMCxub25lOm51bGwsdHJhbnNsYXRlZE5vbmU6bnVsbCxmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiJhdXRvRmlsdGVyYWJsZSIsZmlsdGVySWNvbjoic2VhcmNoIixmaWx0ZXJQbGFjZWhvbGRlcjoiZmlsdGVyUGxhY2Vob2xkZXIiLHRyYW5zbGF0ZWRmaWx0ZXJQbGFjZWhvbGRlcjpudWxsLGljb246bnVsbCxpY29uczpudWxsLG1heGltdW06bnVsbCxtYXhpbXVtTGFiZWw6bnVsbCxtaW5pbXVtOm51bGwsbWluaW11bUxhYmVsOm51bGwsYXV0b0luc2VydE5vbmVJdGVtOiEwLGNsZWFyT25DbGljazohMSxjbG9zZU9uQ2hhbmdlOiEwLGxpbWl0TWF0Y2hlczpudWxsLHBsYWNlbWVudDoiYm90dG9tLXN0YXJ0IixmaWx0ZXJDb21wb25lbnQ6InNlbGVjdC1raXQvc2VsZWN0LWtpdC1maWx0ZXIiLHNlbGVjdGVkTmFtZUNvbXBvbmVudDoic2VsZWN0ZWQtbmFtZSIsY2FzdEludGVnZXI6ITF9LGF1dG9GaWx0ZXJhYmxlOigwLHUuY29tcHV0ZWQpKCJjb250ZW50LltdIiwic2VsZWN0S2l0LmZpbHRlciIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuZmlsdGVyJiZ0aGlzLm9wdGlvbnMuYXV0b0ZpbHRlcmFibGUmJjE1PHRoaXMuY29udGVudC5sZW5ndGh9KSxmaWx0ZXJQbGFjZWhvbGRlcjooMCx1LmNvbXB1dGVkKSgib3B0aW9ucy5hbGxvd0FueSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLmFsbG93QW55PyJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlcl93aXRoX2FueSI6InNlbGVjdF9raXQuZmlsdGVyX3BsYWNlaG9sZGVyIn0pLGNvbGxlY3Rpb25zOigwLHUuY29tcHV0ZWQpKCJzZWxlY3RlZENvbnRlbnQuW10iLCJtYWluQ29sbGVjdGlvbi5bXSIsImVycm9yc0NvbGxlY3Rpb24uW10iLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fY29sbGVjdGlvbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZGVudGlmaWVyOmUsY29udGVudDp0LnNlbGVjdEtpdC5tb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbihlKX19KX0pLGNyZWF0ZUNvbnRlbnRGcm9tSW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHZhbGlkYXRlQ3JlYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jbGVhckVycm9ycygpLDA8ZS5sZW5ndGgmJnQmJiF0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRWYWx1ZShlKX0pLmluY2x1ZGVzKGUpJiYhKDAsci5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLmluY2x1ZGVzKGUpfSx2YWxpZGF0ZVNlbGVjdDpmdW5jdGlvbigpe3RoaXMuY2xlYXJFcnJvcnMoKTt2YXIgZT0oMCxyLm1ha2VBcnJheSkodGhpcy52YWx1ZSksdD10aGlzLnNlbGVjdEtpdC5vcHRpb25zLm1heGltdW07aWYodCYmZS5sZW5ndGg+PXQpe3ZhciBuPXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMubWF4aW11bUxhYmVsfHwic2VsZWN0X2tpdC5tYXhfY29udGVudF9yZWFjaGVkIjtyZXR1cm4gdGhpcy5hZGRFcnJvcihJMThuLnQobix7Y291bnQ6dH0pKSwhMX1yZXR1cm4hMH0sYWRkRXJyb3I6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmVycm9yc0NvbGxlY3Rpb24ucHVzaE9iamVjdChlKSx0aGlzLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXtyZXR1cm4gdC5wb3BwZXImJnQucG9wcGVyLnVwZGF0ZSgpfSl9LGNsZWFyRXJyb3JzOmZ1bmN0aW9uKCl7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuc2V0KCJlcnJvcnNDb2xsZWN0aW9uIixbXSl9LHByZXBlbmRDb2xsZWN0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuX2NvbGxlY3Rpb25zLnVuc2hpZnQoZSl9LGFwcGVuZENvbGxlY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy5fY29sbGVjdGlvbnMucHVzaChlKX0saW5zZXJ0Q29sbGVjdGlvbkF0SW5kZXg6ZnVuY3Rpb24oZSx0KXt0aGlzLl9jb2xsZWN0aW9ucy5pbnNlcnRBdCh0LGUpfSxpbnNlcnRCZWZvcmVDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fY29sbGVjdGlvbnMuaW5kZXhPZihlKTt0aGlzLmluc2VydENvbGxlY3Rpb25BdEluZGV4KHQsbi0xKX0saW5zZXJ0QWZ0ZXJDb2xsZWN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fY29sbGVjdGlvbnMuaW5kZXhPZihlKTt0aGlzLmluc2VydENvbGxlY3Rpb25BdEluZGV4KHQsbisxKX0sX29uSW5wdXQ6ZnVuY3Rpb24oZSl7dGhpcy5wb3BwZXImJnRoaXMucG9wcGVyLnVwZGF0ZSgpLHRoaXMuX3NlYXJjaFByb21pc2UmJigwLGwuY2FuY2VsKSh0aGlzLl9zZWFyY2hQcm9taXNlKSwoMCxzLmFwcGx5T25JbnB1dFBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KSYmKDAsbC5kZWJvdW5jZSkodGhpcyx0aGlzLl9kZWJvdW5jZWRJbnB1dCxlLnRhcmdldC52YWx1ZSwyMDApfSxfZGVib3VuY2VkSW5wdXQ6ZnVuY3Rpb24oZSl7dGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7ZmlsdGVyOmUsaXNMb2FkaW5nOiEwfSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKGUpfSxfb25DaGFuZ2VXcmFwcGVyOmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5zZWxlY3RLaXQuc2V0KCJmaWx0ZXIiLG51bGwpLG5ldyBjLlByb21pc2UoZnVuY3Rpb24oZSl7aS5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eXx8aS5zZWxlY3RLaXQubm9uZUl0ZW0hPT10fHwodD1udWxsLG49W10pLHQ9KDAsci5tYWtlQXJyYXkpKHQpLG49KDAsci5tYWtlQXJyYXkpKG4pLGkubXVsdGlTZWxlY3QmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09aS5uZXdJdGVtJiZlIT09aS5ub25lSXRlbSYmbnVsbCE9PWkuZ2V0VmFsdWUoZSl9KSwxPT09aS5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtJiYodD10LnNsaWNlKDAsMSksbj1uLnNsaWNlKDAsMSkpKSxpLnNpbmdsZVNlbGVjdCYmKHQ9KDAsYS5pc1ByZXNlbnQpKHQuZmlyc3RPYmplY3QpP3QuZmlyc3RPYmplY3Q6bnVsbCxuPSgwLGEuaXNQcmVzZW50KShuLmZpcnN0T2JqZWN0KT9uLmZpcnN0T2JqZWN0Om51bGwpLGkuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25DaGFuZ2UiLHQsbiksZShuKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLmlzRGVzdHJveWluZ3x8aS5pc0Rlc3Ryb3llZHx8KGkuc2VsZWN0S2l0Lm9wdGlvbnMuY2xvc2VPbkNoYW5nZSYmaS5zZWxlY3RLaXQuY2xvc2UoKSxpLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXtpLl9mb2N1c0ZpbHRlcigpLGkucG9wcGVyJiZpLnBvcHBlci51cGRhdGUoKX0pKX0pfSxfbW9kaWZ5Q29udGVudFdyYXBwZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dGhpcy5tb2RpZnlDb250ZW50KGUpLCgwLHMuYXBwbHlDb250ZW50UGx1Z2luQXBpQ2FsbGJhY2tzKSh0aGlzLnBsdWdpbkFwaUlkZW50aWZpZXJzLGUsdGhpcy5zZWxlY3RLaXQpfSxtb2RpZnlDb250ZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlfSxfbW9kaWZ5Tm9TZWxlY3Rpb25XcmFwcGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RpZnlOb1NlbGVjdGlvbigpO3JldHVybigwLHMuYXBwbHlNb2RpZnlOb1NlbGVjdGlvblBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KX0sbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtpZih0aGlzLnNlbGVjdEtpdC5vcHRpb25zLnRyYW5zbGF0ZWROb25lKXJldHVybiB0aGlzLmRlZmF1bHRJdGVtKG51bGwsdGhpcy5zZWxlY3RLaXQub3B0aW9ucy50cmFuc2xhdGVkTm9uZSk7dmFyIGU9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5ub25lO2lmKCgwLGEuaXNOb25lKShlKSYmIXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnkpcmV0dXJuIG51bGw7aWYoKDAsYS5pc05vbmUpKGUpJiZ0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiYhdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZClyZXR1cm4gdGhpcy5kZWZhdWx0SXRlbShudWxsLEkxOG4udCgic2VsZWN0X2tpdC5maWx0ZXJfcGxhY2Vob2xkZXJfd2l0aF9hbnkiKSk7dmFyIHQ9dm9pZCAwO3N3aXRjaCh2b2lkIDA9PT1lPyJ1bmRlZmluZWQiOmQoZSkpe2Nhc2Uic3RyaW5nIjp0PXRoaXMuZGVmYXVsdEl0ZW0obnVsbCxJMThuLnQoZSkpO2JyZWFrO2RlZmF1bHQ6dD1lfXJldHVybiB0fSxfbW9kaWZ5U2VsZWN0aW9uV3JhcHBlcjpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFwcGx5SGVhZGVyQ29udGVudFBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyxlLHRoaXMuc2VsZWN0S2l0KSx0aGlzLm1vZGlmeVNlbGVjdGlvbihlKX0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxfb25LZXlkb3duV3JhcHBlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fYm91bmRhcnlBY3Rpb25IYW5kbGVyKCJvbktleWRvd24iLGUpfSxfb25Ib3ZlcjpmdW5jdGlvbihlLHQpeygwLGwudGhyb3R0bGUpKHRoaXMsdGhpcy5faGlnaGxpZ2h0LHQsMjUsITApfSxfaGlnaGxpZ2h0OmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LnNldCgiaGlnaGxpZ2h0ZWQiLGUpfSxfYm91bmRhcnlBY3Rpb25IYW5kbGVyOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCl7Zm9yKHZhciB0LG49ITAsaT0iXyIrZSxzPSgwLHUuZ2V0KSh0aGlzLGkpLG89YXJndW1lbnRzLmxlbmd0aCxyPUFycmF5KDE8bz9vLTE6MCksYT0xO2E8bzthKyspclthLTFdPWFyZ3VtZW50c1thXTtzJiYobj1zLmNhbGwuYXBwbHkocyxbdGhpc10uY29uY2F0KHIpKSksdGhpcy5hY3Rpb25zJiYodD0oMCx1LmdldCkodGhpcy5hY3Rpb25zLGUpLG4mJnQmJihuPXQuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpKSk7dmFyIGw9KDAsdS5nZXQpKHRoaXMsZSk7cmV0dXJuIG4mJmwmJihuPWwuY2FsbC5hcHBseShsLFt0aGlzXS5jb25jYXQocikpKSxufX0sZGVzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXJyb3JzKCksdGhpcy5zZWxlY3RLaXQuY2hhbmdlKG51bGwsbnVsbCl9LHNlYXJjaDpmdW5jdGlvbihuKXt2YXIgaT10aGlzLGU9dGhpcy5jb250ZW50fHxbXTtyZXR1cm4gbiYmKG49dGhpcy5fbm9ybWFsaXplKG4pLGU9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9aS5fbm9ybWFsaXplKGkuZ2V0TmFtZShlKSk7cmV0dXJuIHQmJi0xPHQuaW5kZXhPZihuKX0pKSxlfSxfc2VhcmNoV3JhcHBlcjpmdW5jdGlvbihpKXt2YXIgcz10aGlzO3RoaXMuY2xlYXJFcnJvcnMoKSx0aGlzLnNldFByb3BlcnRpZXMoe21haW5Db2xsZWN0aW9uOltdLCJzZWxlY3RLaXQuaXNMb2FkaW5nIjohMH0pLHRoaXMuX3NhZmVBZnRlclJlbmRlcihmdW5jdGlvbigpe3JldHVybiBzLnBvcHBlciYmcy5wb3BwZXIudXBkYXRlKCl9KTt2YXIgbz1bXTtyZXR1cm4gYy5Qcm9taXNlLnJlc29sdmUodGhpcy5zZWFyY2goaSkpLnRoZW4oZnVuY3Rpb24oZSl7bz1vLmNvbmNhdCgoMCxyLm1ha2VBcnJheSkoZSkpLG89cy5zZWxlY3RLaXQubW9kaWZ5Q29udGVudChvKS5maWx0ZXIoQm9vbGVhbiksbz1zLnNlbGVjdEtpdC52YWx1ZVByb3BlcnR5P28udW5pcUJ5KHMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHkpOm8udW5pcSgpLHMuc2VsZWN0S2l0Lm9wdGlvbnMubGltaXRNYXRjaGVzJiYobz1vLnNsaWNlKDAscy5zZWxlY3RLaXQub3B0aW9ucy5saW1pdE1hdGNoZXMpKTt2YXIgdD1zLnNlbGVjdEtpdC5ub25lSXRlbTtzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiZpJiZzLmdldE5hbWUodCkhPT1pJiYoaT1zLmNyZWF0ZUNvbnRlbnRGcm9tSW5wdXQoaSkscy52YWxpZGF0ZUNyZWF0ZShpLG8pJiYocy5zZWxlY3RLaXQuc2V0KCJuZXdJdGVtIixzLmRlZmF1bHRJdGVtKGksaSkpLG8udW5zaGlmdChzLnNlbGVjdEtpdC5uZXdJdGVtKSkpO3ZhciBuPSgwLGEuaXNFbXB0eSkobyk7cy5zZWxlY3RLaXQuaGFzU2VsZWN0aW9uJiZ0JiZzLnNlbGVjdEtpdC5vcHRpb25zLmF1dG9JbnNlcnROb25lSXRlbSYmby51bnNoaWZ0KHQpLHMuc2V0KCJtYWluQ29sbGVjdGlvbiIsbykscy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aGlnaGxpZ2h0ZWQ6cy5zaW5nbGVTZWxlY3QmJnMudmFsdWU/cy5pdGVtRm9yVmFsdWUocy52YWx1ZSxzLm1haW5Db2xsZWN0aW9uKTpzLm1haW5Db2xsZWN0aW9uLmZpcnN0T2JqZWN0LGlzTG9hZGluZzohMSxoYXNOb0NvbnRlbnQ6bn0pLHMuX3NhZmVBZnRlclJlbmRlcihmdW5jdGlvbigpe3MucG9wcGVyJiZzLnBvcHBlci51cGRhdGUoKSxzLl9mb2N1c0ZpbHRlcigpfSl9KX0sX3NhZmVBZnRlclJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzOygwLGwubmV4dCkoZnVuY3Rpb24oKXsoMCxsLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7IXQuZWxlbWVudHx8dC5pc0Rlc3Ryb3llZHx8dC5pc0Rlc3Ryb3lpbmd8fGUoKX0pfSl9LF9zY3JvbGxUb1JvdzpmdW5jdGlvbihlKXt2YXIgdCxuLGk9dGhpcy5nZXRWYWx1ZShlKSxzPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0LWtpdC1yb3dbZGF0YS12YWx1ZT0iJytpKyciXScpO3MmJihuPSh0PSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3Qta2l0LWNvbGxlY3Rpb24iKSkpLnBvc2l0aW9uKCkudG9wLHQuc2Nyb2xsVG9wKHQuc2Nyb2xsVG9wKCkrJChzKS5wb3NpdGlvbigpLnRvcC1uKSl9LF9oaWdobGlnaHROZXh0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tYWluQ29sbGVjdGlvbi5pbmRleE9mKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSx0PWUsdD1lPHRoaXMubWFpbkNvbGxlY3Rpb24ubGVuZ3RoLTE/ZSsxOjAsbj10aGlzLm1haW5Db2xsZWN0aW9uLm9iamVjdEF0KHQpO24mJih0aGlzLl9zY3JvbGxUb1JvdyhuKSx0aGlzLnNldCgic2VsZWN0S2l0LmhpZ2hsaWdodGVkIixuKSl9LF9oaWdobGlnaHRQcmV2aW91czpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWFpbkNvbGxlY3Rpb24uaW5kZXhPZih0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdD1lLG49dGhpcy5tYWluQ29sbGVjdGlvbi5sZW5ndGgsdD0wPGU/ZS0xOm4tMSxpPXRoaXMubWFpbkNvbGxlY3Rpb24ub2JqZWN0QXQodCk7aSYmKHRoaXMuX3Njcm9sbFRvUm93KGkpLHRoaXMuc2V0KCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLGkpKX0sc2VsZWN0OmZ1bmN0aW9uKGUsdCl7aWYoKDAsYS5pc1ByZXNlbnQpKGUpKXtpZih0aGlzLmZpbmRWYWx1ZSh0aGlzLm1haW5Db2xsZWN0aW9uLHQpJiYhdGhpcy52YWxpZGF0ZVNlbGVjdCh0KSlyZXR1cm47dGhpcy5zZWxlY3RLaXQuY2hhbmdlKGUsdHx8dGhpcy5kZWZhdWx0SXRlbShlLGUpKX1lbHNle2lmKCF0aGlzLnZhbGlkYXRlU2VsZWN0KHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSlyZXR1cm47dGhpcy5zZWxlY3RLaXQuY2hhbmdlKHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKX19LF9vbkNsZWFyU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RLaXQuY2hhbmdlKG51bGwsbnVsbCl9LF9vbk9wZW5XcmFwcGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25PcGVuIik7cmV0dXJuKDAscy5hcHBseU9uT3BlblBsdWdpbkFwaUNhbGxiYWNrcykodGhpcy5wbHVnaW5BcGlJZGVudGlmaWVycyx0aGlzLnNlbGVjdEtpdCxlKX0sX29uQ2xvc2VXcmFwcGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2ZvY3VzRmlsdGVyKHRoaXMubXVsdGlTZWxlY3QpLHRoaXMuc2V0KCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLG51bGwpO3RoaXMuX2JvdW5kYXJ5QWN0aW9uSGFuZGxlcigib25DbG9zZSIpO3JldHVybigwLHMuYXBwbHlPbkNsb3NlUGx1Z2luQXBpQ2FsbGJhY2tzKSh0aGlzLnBsdWdpbkFwaUlkZW50aWZpZXJzLHRoaXMuc2VsZWN0S2l0LGUpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5fY2xvc2UoZSk6dGhpcy5fb3BlbihlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQmJih0aGlzLmNsZWFyRXJyb3JzKCksdGhpcy5zZWxlY3RLaXQub25DbG9zZShlKSYmdGhpcy5zZWxlY3RLaXQuc2V0UHJvcGVydGllcyh7aXNFeHBhbmRlZDohMSxmaWx0ZXI6bnVsbH0pKX0sX29wZW46ZnVuY3Rpb24oZSl7dmFyIHQsbixpLG89dGhpczt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkfHwodGhpcy5jbGVhckVycm9ycygpLHRoaXMuc2VsZWN0S2l0Lm9uT3BlbihlKSYmKHRoaXMucG9wcGVyfHwodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1oZWFkZXJdIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5XSIpLHRoaXMuc2l0ZSYmIXRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZuLm9mZnNldFdpZHRoPHQub2Zmc2V0V2lkdGgmJihuLnN0eWxlLm1pbldpZHRoPXQub2Zmc2V0V2lkdGgrInB4IiksaT0kKHRoaXMuZWxlbWVudCkucGFyZW50cygiI2Rpc2NvdXJzZS1tb2RhbCIpLmxlbmd0aCx0aGlzLnNpdGUmJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmaSYmKG4uc3R5bGUud2lkdGg9dC5vZmZzZXRXaWR0aCsicHgiKSx0aGlzLnBvcHBlcj1Qb3BwZXIuY3JlYXRlUG9wcGVyKHQsbix7ZXZlbnRzRW5hYmxlZDohMSxzdHJhdGVneTppPyJmaXhlZCI6ImFic29sdXRlIixwbGFjZW1lbnQ6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5wbGFjZW1lbnQsbW9kaWZpZXJzOlt7bmFtZToicG9zaXRpb25XcmFwcGVyIixwaGFzZToiYWZ0ZXJXcml0ZSIsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdCxuLGkscz1vLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnNlbGVjdC1raXQtd3JhcHBlciIpO3MmJih0PW8uZWxlbWVudC5vZmZzZXRIZWlnaHQsKG49by5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3Qta2l0LWJvZHkiKSkmJih0Kz1uLm9mZnNldEhlaWdodCksKGk9ZS5zdGF0ZS5lbGVtZW50cy5wb3BwZXIpJiYidG9wLXN0YXJ0Ij09PWkuZ2V0QXR0cmlidXRlKCJkYXRhLXBvcHBlci1wbGFjZW1lbnQiKT8oby5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImlzLXVuZGVyIiksby5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLWFib3ZlIikpOihvLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWJvdmUiKSxvLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtdW5kZXIiKSkscy5zdHlsZS53aWR0aD1vLmVsZW1lbnQub2Zmc2V0V2lkdGgrInB4IixzLnN0eWxlLmhlaWdodD10KyJweCIpfX1dfSkpLHRoaXMuc2VsZWN0S2l0LnNldFByb3BlcnRpZXMoe2lzRXhwYW5kZWQ6ITAsaXNGaWx0ZXJFeHBhbmRlZDp0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmZpbHRlcmFibGV8fHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnl9KSx0aGlzLl9zZWFyY2hQcm9taXNlJiYoMCxsLmNhbmNlbCkodGhpcy5fc2VhcmNoUHJvbWlzZSksdGhpcy5fc2VhcmNoUHJvbWlzZT10aGlzLl9zZWFyY2hXcmFwcGVyKCksdGhpcy5fc2FmZUFmdGVyUmVuZGVyKGZ1bmN0aW9uKCl7by5fZm9jdXNGaWx0ZXIoKSxvLnBvcHBlciYmby5wb3BwZXIudXBkYXRlKCl9KSkpfSxfZm9jdXNGaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZSYmZTt0aGlzLl9zYWZlQWZ0ZXJSZW5kZXIoZnVuY3Rpb24oKXt2YXIgZSx0PW4uZ2V0RmlsdGVySW5wdXQoKTshaSYmdD90LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSk6KGU9bi5nZXRIZWFkZXIoKSkmJmUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pfSxnZXRGaWx0ZXJJbnB1dDpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1maWx0ZXJdIGlucHV0Iil9LGdldEhlYWRlcjpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1oZWFkZXJdIil9LGhhbmRsZURlcHJlY2F0aW9uczpmdW5jdGlvbigpe3RoaXMuX2RlcHJlY2F0ZVZhbHVlQXR0cmlidXRlKCksdGhpcy5fZGVwcmVjYXRlTXV0YXRpb25zKCksdGhpcy5fZGVwcmVjYXRlT3B0aW9ucygpfSxfZGVwcmVjYXRlZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1kaXNjb3Vyc2Utc2V0dXAiKTt0JiYiZGV2ZWxvcG1lbnQiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtZW52aXJvbm1lbnQiKSYmKDAsbi5kZWZhdWx0KShlLHtzaW5jZToidjIuNC4wIn0pfSxfZGVwcmVjYXRlVmFsdWVBdHRyaWJ1dGU6ZnVuY3Rpb24oKXshdGhpcy52YWx1ZUF0dHJpYnV0ZSYmbnVsbCE9PXRoaXMudmFsdWVBdHRyaWJ1dGV8fCh0aGlzLl9kZXByZWNhdGVkKCJUaGUgYHZhbHVlQXR0cmlidXRlYCBpcyBkZXByZWNhdGVkLiBVc2UgYHZhbHVlUHJvcGVydHlgIGluc3RlYWQiKSx0aGlzLnNldCgidmFsdWVQcm9wZXJ0eSIsdGhpcy52YWx1ZUF0dHJpYnV0ZSkpfSxfZGVwcmVjYXRlTXV0YXRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zfHx7fSx0aGlzLmF0dHJzPXRoaXMuYXR0cnN8fHt9LHRoaXMuYXR0cnMub25DaGFuZ2V8fHRoaXMuYWN0aW9ucy5vbkNoYW5nZXx8KHRoaXMuX2RlcHJlY2F0ZWQoIkltcGxpY2l0IG11dGF0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYG9uQ2hhbmdlYCBoYW5kbGVyIiksdGhpcy5hY3Rpb25zLm9uQ2hhbmdlPXRoaXMuYXR0cnMub25TZWxlY3R8fHRoaXMuYWN0aW9ucy5vblNlbGVjdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJ2YWx1ZSIsZSl9KX0sX2RlcHJlY2F0ZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9e2hlYWRlckljb246Imljb24iLG9uRXhwYW5kOiJvbk9wZW4iLG9uQ29sbGFwc2U6Im9uQ2xvc2UiLGFsbG93QW55OiJvcHRpb25zLmFsbG93QW55IixhbGxvd0NyZWF0ZToib3B0aW9ucy5hbGxvd0FueSIsZmlsdGVyYWJsZToib3B0aW9ucy5maWx0ZXJhYmxlIixleGNsdWRlQ2F0ZWdvcnlJZDoib3B0aW9ucy5leGNsdWRlQ2F0ZWdvcnlJZCIsc2NvcGVkQ2F0ZWdvcnlJZDoib3B0aW9ucy5zY29wZWRDYXRlZ29yeUlkIixhbGxvd1VuY2F0ZWdvcml6ZWQ6Im9wdGlvbnMuYWxsb3dVbmNhdGVnb3JpemVkIixub25lOiJvcHRpb25zLm5vbmUiLHJvb3ROb25lOiJvcHRpb25zLm5vbmUiLGlzRGlzYWJsZWQ6Im9wdGlvbnMuaXNEaXNhYmxlZCIscm9vdE5vbmVMYWJlbDoib3B0aW9ucy5ub25lIixzaG93RnVsbFRpdGxlOiJvcHRpb25zLnNob3dGdWxsVGl0bGUiLHRpdGxlOiJvcHRpb25zLnRyYW5zbGF0ZWROb25lIixtYXhpbXVtOiJvcHRpb25zLm1heGltdW0iLG1pbmltdW06Im9wdGlvbnMubWluaW11bSIsaTE4blBvc3RmaXg6Im9wdGlvbnMuaTE4blBvc3RmaXgiLGkxOG5QcmVmaXg6Im9wdGlvbnMuaTE4blByZWZpeCIsY2FzdEludGVnZXI6Im9wdGlvbnMuY2FzdEludGVnZXIifTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZV07bi5nZXQoZSkmJiFuLmdldCh0KSYmKG4uX2RlcHJlY2F0ZWQoIlRoZSBgIitlKyJgIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkLiBVc2UgYCIrdCsiYCBpbnN0ZWFkIiksbi5zZXQodCxuLmdldChlKSkpfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L2Vycm9ycy1jb2xsZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0LWVycm9ycy1jb2xsZWN0aW9uIl0sdGFnTmFtZToidWwiLGlzVmlzaWJsZTooMCxuLm5vdEVtcHR5KSgiY29sbGVjdGlvbi5jb250ZW50Iil9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1ib2R5IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtYm9keSIsY2xhc3NOYW1lczpbInNlbGVjdC1raXQtYm9keSJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2VsZWN0S2l0SWQ6ZGF0YS1zZWxlY3Qta2l0LWlkIl0sc2VsZWN0S2l0SWQ6KDAsbi5jb21wdXRlZCkoInNlbGVjdEtpdC51bmlxdWVJRCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5In0pLHJvb3RFdmVudFR5cGU6ImNsaWNrIixpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaGFuZGxlUm9vdE1vdXNlRG93bkhhbmRsZXI9KDAsaS5iaW5kKSh0aGlzLHRoaXMuaGFuZGxlUm9vdE1vdXNlRG93bil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLnJvb3RFdmVudFR5cGUsdGhpcy5oYW5kbGVSb290TW91c2VEb3duSGFuZGxlciwhMCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMucm9vdEV2ZW50VHlwZSx0aGlzLmhhbmRsZVJvb3RNb3VzZURvd25IYW5kbGVyLCEwKX0saGFuZGxlUm9vdE1vdXNlRG93bjpmdW5jdGlvbihlKXt2YXIgdDt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkJiYoKHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtc2VsZWN0LWtpdC1pZD0iK3RoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItaGVhZGVyXSIpKSYmdC5jb250YWlucyhlLnRhcmdldCl8fHRoaXMuZWxlbWVudC5jb250YWlucyhlLnRhcmdldCl8fHRoaXMuc2VsZWN0S2l0LmNsb3NlKGUpKX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1jb2xsZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1jb2xsZWN0aW9uIixjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1jb2xsZWN0aW9uIl0sdGFnTmFtZToidWwiLGlzVmlzaWJsZTooMCxuLm5vdEVtcHR5KSgiY29sbGVjdGlvbiIpfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtY3JlYXRlLXJvdyIsWyJleHBvcnRzIiwic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyIsY2xhc3NOYW1lczoiY3JlYXRlIn0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwic2VsZWN0LWtpdC9taXhpbnMvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7dmFyIGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLG4uZGVmYXVsdCkoInNlbGVjdEtpdC5vcHRpb25zLmZpbHRlclBsYWNlaG9sZGVyIiwic2VsZWN0S2l0Lm9wdGlvbnMudHJhbnNsYXRlZGZpbHRlclBsYWNlaG9sZGVyIiksbD17bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtZmlsdGVyIixjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1maWx0ZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImlzRXhwYW5kZWQ6aXMtZXhwYW5kZWQiXSxhdHRyaWJ1dGVCaW5kaW5nczpbInNlbGVjdEtpdElkOmRhdGEtc2VsZWN0LWtpdC1pZCJdLHNlbGVjdEtpdElkOigwLHMuY29tcHV0ZWQpKCJzZWxlY3RLaXQudW5pcXVlSUQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItZmlsdGVyIn0pLGlzSGlkZGVuOigwLHMuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy57ZmlsdGVyYWJsZSxhbGxvd0FueSxhdXRvRmlsdGVyYWJsZX0iLCJjb250ZW50LltdIixmdW5jdGlvbigpe3JldHVybiF0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmZpbHRlcmFibGUmJiF0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55JiYhdGhpcy5zZWxlY3RLaXQub3B0aW9ucy5hdXRvRmlsdGVyYWJsZX0pLGlzRXhwYW5kZWQ6KDAsby5ub3QpKCJpc0hpZGRlbiIpLHBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsaS5pc0VtcHR5KShlKT90fHwiIjpJMThuLnQoZSl9LGFjdGlvbnM6e29uSW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm9uSW5wdXQoZSksITB9LG9uS2V5ZG93bjpmdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMuc2VsZWN0S2l0Lm9uS2V5ZG93bihlKSYmKDM3PT09ZS5rZXlDb2RlfHwzOT09PWUua2V5Q29kZXx8KDM4PT09ZS5rZXlDb2RlPyh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRQcmV2aW91cygpLCExKTo0MD09PWUua2V5Q29kZT8odGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0TmV4dCgpLCExKToyNz09PWUua2V5Q29kZT8odGhpcy5zZWxlY3RLaXQuY2xvc2UoZSksITEpOjEzPT09ZS5rZXlDb2RlJiZ0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZD8odGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSwhMSk6MTMhPT1lLmtleUNvZGV8fHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkPzk9PT1lLmtleUNvZGU/KHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkJiZ0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkJiZ0aGlzLnNlbGVjdEtpdC5zZWxlY3QodGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHZvaWQgdGhpcy5zZWxlY3RLaXQuY2xvc2UoZSkpOnZvaWQgMDoodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKSwhMSkpKX19fSx1PWwsYz0icGxhY2Vob2xkZXIiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJwbGFjZWhvbGRlciIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbXBvbmVudCIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtldmVudFR5cGU6ImNsaWNrIixjbGljazpmdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYhdGhpcy5pc0Rlc3Ryb3llZCYmdGhpcy5zZWxlY3RLaXQmJiF0aGlzLnNlbGVjdEtpdC5pc0Rpc2FibGVkJiYiY2xpY2siPT09dGhpcy5ldmVudFR5cGUmJjA9PT1lLmJ1dHRvbilyZXR1cm4gdGhpcy5zZWxlY3RLaXQudG9nZ2xlKGUpLCExfSxjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1oZWFkZXIiXSxjbGFzc05hbWVCaW5kaW5nczpbImlzRm9jdXNlZCJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGFiaW5kZXgiLCJhcmlhT3duczphcmlhLW93bnMiLCJhcmlhSGFzUG9wdXA6YXJpYS1oYXNwb3B1cCIsImFyaWFJc0V4cGFuZGVkOmFyaWEtZXhwYW5kZWQiLCJzZWxlY3RLaXRJZDpkYXRhLXNlbGVjdC1raXQtaWQiLCJyb2xlQnV0dG9uOnJvbGUiLCJzZWxlY3RlZFZhbHVlOmRhdGEtdmFsdWUiLCJzZWxlY3RlZE5hbWVzOmRhdGEtbmFtZSIsInNlcmlhbGl6ZWROYW1lczp0aXRsZSJdLHNlbGVjdGVkVmFsdWU6KDAsdC5jb21wdXRlZCkoInZhbHVlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlPT09dGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5ub25lSXRlbSk/bnVsbDooMCxvLm1ha2VBcnJheSkodGhpcy52YWx1ZSkuam9pbigiLCIpfSksc2VsZWN0ZWROYW1lczooMCx0LmNvbXB1dGVkKSgic2VsZWN0ZWRDb250ZW50LltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsby5tYWtlQXJyYXkpKHRoaXMuc2VsZWN0ZWRDb250ZW50KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0TmFtZShlKX0pLmpvaW4oIiwiKX0pLGljb25zOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQub3B0aW9ucy57aWNvbixpY29uc30iLGZ1bmN0aW9uKCl7dmFyIGU9KDAsby5tYWtlQXJyYXkpKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuaWNvbiksdD0oMCxvLm1ha2VBcnJheSkodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5pY29ucyk7cmV0dXJuIGUuY29uY2F0KHQpLmZpbHRlcihCb29sZWFuKX0pLHNlbGVjdEtpdElkOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQudW5pcXVlSUQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnVuaXF1ZUlEKyItaGVhZGVyIn0pLGFyaWFJc0V4cGFuZGVkOigwLHQuY29tcHV0ZWQpKCJzZWxlY3RLaXQuaXNFeHBhbmRlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZD8idHJ1ZSI6ImZhbHNlIn0pLGFyaWFIYXNQb3B1cDohMCxhcmlhT3duczooMCx0LmNvbXB1dGVkKSgic2VsZWN0S2l0LnVuaXF1ZUlEIixmdW5jdGlvbigpe3JldHVybiJbZGF0YS1zZWxlY3Qta2l0LWlkPSIrdGhpcy5zZWxlY3RLaXQudW5pcXVlSUQrIi1ib2R5XSJ9KSxyb2xlQnV0dG9uOiJidXR0b24iLHRhYmluZGV4OjAsa2V5VXA6ZnVuY3Rpb24oZSl7MzI9PT1lLmtleUNvZGUmJmUucHJldmVudERlZmF1bHQoKX0sa2V5RG93bjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKCF0aGlzLnNlbGVjdEtpdC5pc0Rpc2FibGVkKXtpZighdGhpcy5zZWxlY3RLaXQub25LZXlkb3duKGUpKXJldHVybiExO3ZhciBuPWUuc2hpZnRLZXkmJjE2PT09ZS5rZXlDb2RlO2lmKCFlLm1ldGFLZXkmJiFuKWlmKDEzPT09ZS5rZXlDb2RlKWlmKHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQpe2lmKHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKXJldHVybiB0aGlzLnNlbGVjdEtpdC5zZWxlY3QodGhpcy5nZXRWYWx1ZSh0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCksdGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLCExfWVsc2UgdGhpcy5zZWxlY3RLaXQuY2xvc2UoZSk7ZWxzZXtpZigzOD09PWUua2V5Q29kZSlyZXR1cm4gdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZD90aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRQcmV2aW91cygpOnRoaXMuc2VsZWN0S2l0Lm9wZW4oZSksITE7aWYoNDA9PT1lLmtleUNvZGUpcmV0dXJuIHRoaXMuc2VsZWN0S2l0LmlzRXhwYW5kZWQ/dGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0TmV4dCgpOnRoaXMuc2VsZWN0S2l0Lm9wZW4oZSksITE7aWYoMzc9PT1lLmtleUNvZGV8fDM5PT09ZS5rZXlDb2RlKXJldHVybiEwO2lmKDMyPT09ZS5rZXlDb2RlKWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdEtpdC50b2dnbGUoZSk7ZWxzZSBpZigyNz09PWUua2V5Q29kZSl0aGlzLnNlbGVjdEtpdC5jbG9zZShlKTtlbHNlIGlmKDg9PT1lLmtleUNvZGUpdGhpcy5fZm9jdXNGaWx0ZXJJbnB1dCgpO2Vsc2UgaWYoOT09PWUua2V5Q29kZSl0aGlzLnNlbGVjdEtpdC5oaWdobGlnaHRlZCYmdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZCYmdGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpLHRoaXMuc2VsZWN0S2l0LmhpZ2hsaWdodGVkKSx0aGlzLnNlbGVjdEtpdC5jbG9zZShlKTtlbHNle2lmKCEodGhpcy5zZWxlY3RLaXQub3B0aW9ucy5maWx0ZXJhYmxlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmF1dG9GaWx0ZXJhYmxlfHx0aGlzLnNlbGVjdEtpdC5vcHRpb25zLmFsbG93QW55KSlyZXR1cm4hdGhpcy5zZWxlY3RLaXQuaXNFeHBhbmRlZDt0aGlzLnNlbGVjdEtpdC5pc0V4cGFuZGVkP3RoaXMuX2ZvY3VzRmlsdGVySW5wdXQoKToodGhpcy5zZWxlY3RLaXQub3BlbihlKSwoMCxzLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHQuX2ZvY3VzRmlsdGVySW5wdXQoKX0pKX19fX0sX2ZvY3VzRmlsdGVySW5wdXQ6ZnVuY3Rpb24oKXt2YXIgZSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXNlbGVjdC1raXQtaWQ9Iit0aGlzLnNlbGVjdEtpdC51bmlxdWVJRCsiLWZpbHRlcl0iKTt0JiYodC5zdHlsZS5kaXNwbGF5PSJmbGV4IiwoZT10LnF1ZXJ5U2VsZWN0b3IoIi5maWx0ZXItaW5wdXQiKSkmJmUuZm9jdXMoKSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtbm9uZS1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciLGNsYXNzTmFtZXM6Im5vbmUifSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0L2ludGVybmFscyIsInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciLGNsYXNzTmFtZXM6WyJzZWxlY3Qta2l0LXJvdyJdLHRhZ05hbWU6ImxpIix0YWJJbmRleDotMSxhdHRyaWJ1dGVCaW5kaW5nczpbInRhYkluZGV4IiwidGl0bGUiLCJyb3dWYWx1ZTpkYXRhLXZhbHVlIiwicm93TmFtZTpkYXRhLW5hbWUiLCJhcmlhTGFiZWw6YXJpYS1sYWJlbCIsImd1aWQ6ZGF0YS1ndWlkIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJpc0hpZ2hsaWdodGVkIiwiaXNTZWxlY3RlZCIsImlzTm9uZSIsImlzTm9uZTpub25lIiwiaXRlbS5jbGFzc05hbWVzIl0saXNOb25lOigwLG4uY29tcHV0ZWQpKCJyb3dWYWx1ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb3dWYWx1ZT09PXRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQubm9uZUl0ZW0pfSksZ3VpZDooMCxuLmNvbXB1dGVkKSgiaXRlbSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmd1aWRGb3IpKHRoaXMuaXRlbSl9KSxhcmlhTGFiZWw6KDAsbi5jb21wdXRlZCkoIml0ZW0uYXJpYUxhYmVsIiwidGl0bGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkodGhpcy5pdGVtLCJhcmlhTGFiZWwiKXx8dGhpcy50aXRsZX0pLHRpdGxlOigwLG4uY29tcHV0ZWQpKCJpdGVtLnRpdGxlIiwicm93TmFtZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sInRpdGxlIil8fHRoaXMucm93TmFtZX0pLGxhYmVsOigwLG4uY29tcHV0ZWQpKCJpdGVtLmxhYmVsIiwidGl0bGUiLCJyb3dOYW1lIixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0UHJvcGVydHkodGhpcy5pdGVtLCJsYWJlbCIpfHx0aGlzLnRpdGxlfHx0aGlzLnJvd05hbWU7cmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuYWxsb3dBbnkmJnRoaXMucm93VmFsdWU9PT10aGlzLnNlbGVjdEtpdC5maWx0ZXImJnRoaXMuZ2V0TmFtZSh0aGlzLnNlbGVjdEtpdC5ub25lSXRlbSkhPT10aGlzLnJvd05hbWUmJnRoaXMuZ2V0TmFtZSh0aGlzLnNlbGVjdEtpdC5uZXdJdGVtKT09PXRoaXMucm93TmFtZT9JMThuLnQoInNlbGVjdF9raXQuY3JlYXRlIix7Y29udGVudDplfSk6ZX0pLGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe3Jvd05hbWU6dGhpcy5nZXROYW1lKHRoaXMuaXRlbSkscm93VmFsdWU6dGhpcy5nZXRWYWx1ZSh0aGlzLml0ZW0pfSl9LGljb25zOigwLG4uY29tcHV0ZWQpKCJpdGVtLntpY29uLGljb25zfSIsZnVuY3Rpb24oKXt2YXIgZT0oMCxpLm1ha2VBcnJheSkodGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sImljb24iKSksdD0oMCxpLm1ha2VBcnJheSkodGhpcy5nZXRQcm9wZXJ0eSh0aGlzLml0ZW0sImljb25zIikpO3JldHVybiBlLmNvbmNhdCh0KS5maWx0ZXIoQm9vbGVhbil9KSxoaWdobGlnaHRlZFZhbHVlOigwLG4uY29tcHV0ZWQpKCJzZWxlY3RLaXQuaGlnaGxpZ2h0ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodGhpcy5zZWxlY3RLaXQuaGlnaGxpZ2h0ZWQpfSksaXNIaWdobGlnaHRlZDooMCxuLmNvbXB1dGVkKSgicm93VmFsdWUiLCJoaWdobGlnaHRlZFZhbHVlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvd1ZhbHVlPT09dGhpcy5oaWdobGlnaHRlZFZhbHVlfSksaXNTZWxlY3RlZDooMCxuLmNvbXB1dGVkKSgicm93VmFsdWUiLCJ2YWx1ZSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb3dWYWx1ZT09PXRoaXMudmFsdWV9KSxtb3VzZUVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEZXN0cm95aW5nJiZ0aGlzLmlzRGVzdHJveWVkfHx0aGlzLnNlbGVjdEtpdC5vbkhvdmVyKHRoaXMucm93VmFsdWUsdGhpcy5pdGVtKSwhMX0sY2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RLaXQuc2VsZWN0KHRoaXMucm93VmFsdWUsdGhpcy5pdGVtKSwhMX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtaGVhZGVyIiwic2VsZWN0LWtpdC9taXhpbnMvdXRpbHMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciIsY2xhc3NOYW1lczpbInNpbmdsZS1zZWxlY3QtaGVhZGVyIl19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3NlbGVjdGVkLWNvbG9yIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiQGVtYmVyL3J1bmxvb3AiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsic2VsZWN0LWtpdC1zZWxlY3RlZC1jb2xvciJdLGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT0oMCxuLmVzY2FwZUV4cHJlc3Npb24pKHQubmFtZSk7dC5lbGVtZW50LnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yPSIjIitlfSl9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3RlZC1uYW1lIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJzZWxlY3Qta2l0L21peGlucy91dGlscyJdLGZ1bmN0aW9uKGUsbix0LGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQse2xheW91dE5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0ZWQtbmFtZSIsY2xhc3NOYW1lczpbInNlbGVjdC1raXQtc2VsZWN0ZWQtbmFtZSIsInNlbGVjdGVkLW5hbWUiLCJjaG9pY2UiXSxuYW1lOm51bGwsdmFsdWU6bnVsbCx0YWJpbmRleDowLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGl0bGUiLCJ2YWx1ZTpkYXRhLXZhbHVlIiwibmFtZTpkYXRhLW5hbWUiXSxjbGljazpmdW5jdGlvbigpe2lmKHRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuY2xlYXJPbkNsaWNrKXJldHVybiB0aGlzLnNlbGVjdEtpdC5kZXNlbGVjdCh0aGlzLml0ZW0pLCExfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXRQcm9wZXJ0aWVzKHtuYW1lOnRoaXMuZ2V0TmFtZSh0aGlzLml0ZW0pLHZhbHVlOnRoaXMuaXRlbT09PXRoaXMuc2VsZWN0S2l0Lm5vbmVJdGVtP251bGw6dGhpcy5nZXRWYWx1ZSh0aGlzLml0ZW0pfSl9LGFyaWFMYWJlbDooMCxuLmNvbXB1dGVkKSgiaXRlbSIsInNhbml0aXplZFRpdGxlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zYWZlUHJvcGVydHkoImFyaWFMYWJlbCIsdGhpcy5pdGVtKXx8dGhpcy5zYW5pdGl6ZWRUaXRsZX0pLHNhbml0aXplZFRpdGxlOigwLG4uY29tcHV0ZWQpKCJ0aXRsZSIsZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMudGl0bGUpLnJlcGxhY2UoIiZoZWxsaXA7IiwiIil9KSx0aXRsZTooMCxuLmNvbXB1dGVkKSgiaXRlbSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2FmZVByb3BlcnR5KCJ0aXRsZSIsdGhpcy5pdGVtKXx8dGhpcy5uYW1lfHwiIn0pLGxhYmVsOigwLG4uY29tcHV0ZWQpKCJ0aXRsZSIsIm5hbWUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NhZmVQcm9wZXJ0eSgibGFiZWwiLHRoaXMuaXRlbSl8fHRoaXMudGl0bGV8fHRoaXMubmFtZX0pLGljb25zOigwLG4uY29tcHV0ZWQpKCJpdGVtLntpY29uLGljb25zfSIsZnVuY3Rpb24oKXt2YXIgZT0oMCxpLm1ha2VBcnJheSkodGhpcy5fc2FmZVByb3BlcnR5KCJpY29uIix0aGlzLml0ZW0pKSx0PSgwLGkubWFrZUFycmF5KSh0aGlzLl9zYWZlUHJvcGVydHkoImljb25zIix0aGlzLml0ZW0pKTtyZXR1cm4gZS5jb25jYXQodCkuZmlsdGVyKEJvb2xlYW4pfSksX3NhZmVQcm9wZXJ0eTpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLG4uZ2V0KSh0LGUpOm51bGx9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy9zaW5nbGUtc2VsZWN0IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInNpbmdsZS1zZWxlY3QiXSxsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3QiLGNsYXNzTmFtZXM6WyJzaW5nbGUtc2VsZWN0Il0sc2luZ2xlU2VsZWN0OiEwLHNlbGVjdEtpdE9wdGlvbnM6e2hlYWRlckNvbXBvbmVudDoic2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciJ9LHNlbGVjdGVkQ29udGVudDooMCxuLmNvbXB1dGVkKSgidmFsdWUiLCJjb250ZW50LltdIixmdW5jdGlvbigpe2lmKCgwLGkuaXNFbXB0eSkodGhpcy52YWx1ZSkpcmV0dXJuIHRoaXMuc2VsZWN0S2l0Lm5vbmVJdGVtO3ZhciBlPXZvaWQgMCx0PXRoaXMuc2VsZWN0S2l0Lm9wdGlvbnMuY2FzdEludGVnZXImJnRoaXMuX2lzTnVtZXJpYyh0aGlzLnZhbHVlKT9OdW1iZXIodGhpcy52YWx1ZSk6dGhpcy52YWx1ZTtyZXR1cm4gdGhpcy5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eT8oZT0odGhpcy5jb250ZW50fHxbXSkuZmluZEJ5KHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHksdCksdGhpcy5zZWxlY3RLaXQubW9kaWZ5U2VsZWN0aW9uKGV8fHRoaXMuZGVmYXVsdEl0ZW0odCx0KSkpOnRoaXMuc2VsZWN0S2l0Lm1vZGlmeVNlbGVjdGlvbigodGhpcy5jb250ZW50fHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pKX0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctY2hvb3Nlci1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1jaG9vc2VyLXJvdyIsY2xhc3NOYW1lczpbInRhZy1jaG9vc2VyLXJvdyJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctY2hvb3NlciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidGFnLWNob29zZXIiXSxjbGFzc05hbWVzOlsidGFnLWNob29zZXIiXSxzZWxlY3RLaXRPcHRpb25zOntmaWx0ZXJhYmxlOiEwLGZpbHRlclBsYWNlaG9sZGVyOiJ0YWdnaW5nLmNob29zZV9mb3JfdG9waWMiLGxpbWl0Om51bGwsYWxsb3dBbnk6ImNhbkNyZWF0ZVRhZyIsbWF4aW11bToibWF4aW11bVRhZ0NvdW50In0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuInRhZy1jaG9vc2VyLXJvdyJ9LGJsYWNrbGlzdDpudWxsLGF0dHJpYnV0ZUJpbmRpbmdzOlsiY2F0ZWdvcnlJZCJdLGV4Y2x1ZGVTeW5vbnltczohMSxleGNsdWRlSGFzU3lub255bXM6ITEsY2FuQ3JlYXRlVGFnOigwLHQuY29tcHV0ZWQpKCJzaXRlLmNhbl9jcmVhdGVfdGFnIiwiYWxsb3dDcmVhdGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWxsb3dDcmVhdGV8fHRoaXMuc2l0ZS5jYW5fY3JlYXRlX3RhZ30pLG1heGltdW1UYWdDb3VudDooMCx0LmNvbXB1dGVkKSgic2l0ZVNldHRpbmdzLm1heF90YWdzX3Blcl90b3BpYyIsInVubGltaXRlZFRhZ0NvdW50IixmdW5jdGlvbigpe3JldHVybiB0aGlzLnVubGltaXRlZFRhZ0NvdW50P251bGw6cGFyc2VJbnQodGhpcy5vcHRpb25zLmxpbWl0fHx0aGlzLm9wdGlvbnMubWF4aW11bXx8dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5tYXhfdGFnc19wZXJfdG9waWMiKSwxMCl9KSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0UHJvcGVydGllcyh7YmxhY2tsaXN0OnRoaXMuYmxhY2tsaXN0fHxbXSx0ZXJtTWF0Y2hlc0ZvcmJpZGRlbjohMSx0ZXJtTWF0Y2hFcnJvck1lc3NhZ2U6bnVsbH0pfSx2YWx1ZTooMCx0LmNvbXB1dGVkKSgidGFncy5bXSIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLm1ha2VBcnJheSkodGhpcy50YWdzKS51bmlxKCl9KSxjb250ZW50OigwLHQuY29tcHV0ZWQpKCJ0YWdzLltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAscy5tYWtlQXJyYXkpKHRoaXMudGFncykudW5pcSgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0SXRlbShlLGUpfSl9KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnNldCgidGFncyIsZSl9fSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5tYWtlQXJyYXkpKHRoaXMudGFncykuZmlsdGVyKEJvb2xlYW4pLG49e3E6ZSxsaW1pdDp0aGlzLmdldCgic2l0ZVNldHRpbmdzLm1heF90YWdfc2VhcmNoX3Jlc3VsdHMiKSxjYXRlZ29yeUlkOnRoaXMuY2F0ZWdvcnlJZH07cmV0dXJuKHQubGVuZ3RofHx0aGlzLmJsYWNrbGlzdC5sZW5ndGgpJiYobi5zZWxlY3RlZF90YWdzPXQuY29uY2F0KHRoaXMuYmxhY2tsaXN0KS51bmlxKCkuc2xpY2UoMCwxMDApKSx0aGlzLmV2ZXJ5VGFnfHwobi5maWx0ZXJGb3JJbnB1dD0hMCksdGhpcy5leGNsdWRlU3lub255bXMmJihuLmV4Y2x1ZGVTeW5vbnltcz0hMCksdGhpcy5leGNsdWRlSGFzU3lub255bXMmJihuLmV4Y2x1ZGVIYXNTeW5vbnltcz0hMCksdGhpcy5zZWFyY2hUYWdzKCIvdGFncy9maWx0ZXIvc2VhcmNoIixuLHRoaXMuX3RyYW5zZm9ybUpzb24pfSxfdHJhbnNmb3JtSnNvbjpmdW5jdGlvbih0LGUpe3ZhciBuPWUucmVzdWx0cztyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHt0ZXJtTWF0Y2hlc0ZvcmJpZGRlbjohIWUuZm9yYmlkZGVuLHRlcm1NYXRjaEVycm9yTWVzc2FnZTplLmZvcmJpZGRlbl9tZXNzYWdlfSksdC5ibGFja2xpc3QmJihuPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmJsYWNrbGlzdC5pbmNsdWRlcyhlLmlkKX0pKSx0LmdldCgic2l0ZVNldHRpbmdzLnRhZ3Nfc29ydF9hbHBoYWJldGljYWxseSIpJiYobj1uLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pZD50LmlkfSkpLG4udW5pcUJ5KCJ0ZXh0IikubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLnRleHQsbmFtZTplLnRleHQsY291bnQ6ZS5jb3VudH19KX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1kcm9wIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiZGlzY291cnNlL2xpYi91cmwiLCJzZWxlY3Qta2l0L21peGlucy90YWdzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTk9ORV9UQUdfSUQ9ZS5BTExfVEFHU19JRD1lLk5PX1RBR19JRD12b2lkIDA7dmFyIGM9ZS5OT19UQUdfSUQ9Im5vLXRhZ3MiLGQ9ZS5BTExfVEFHU19JRD0iYWxsLXRhZ3MiLHA9ZS5OT05FX1RBR19JRD0ibm9uZSI7ZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRhZy1kcm9wIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJjYXRlZ29yeVN0eWxlIiwidGFnQ2xhc3MiXSxjbGFzc05hbWVzOlsidGFnLWRyb3AiXSx2YWx1ZTooMCx0LnJlYWRPbmx5KSgidGFnSWQiKSx0YWdOYW1lOiJsaSIsY3VycmVudENhdGVnb3J5OigwLHQub3IpKCJzZWNvbmRDYXRlZ29yeSIsImZpcnN0Q2F0ZWdvcnkiKSxzaG93RmlsdGVyQnlUYWc6KDAsbi5zZXR0aW5nKSgic2hvd19maWx0ZXJfYnlfdGFnIiksY2F0ZWdvcnlTdHlsZTooMCxuLnNldHRpbmcpKCJjYXRlZ29yeV9zdHlsZSIpLG1heFRhZ1NlYXJjaFJlc3VsdHM6KDAsbi5zZXR0aW5nKSgibWF4X3RhZ19zZWFyY2hfcmVzdWx0cyIpLHNvcnRUYWdzQWxwaGFiZXRpY2FsbHk6KDAsbi5zZXR0aW5nKSgidGFnc19zb3J0X2FscGhhYmV0aWNhbGx5IiksaXNWaXNpYmxlOigwLGEuY29tcHV0ZWQpKCJzaG93RmlsdGVyQnlUYWciLCJjb250ZW50LltdIixmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuc2hvd0ZpbHRlckJ5VGFnfHwoMCxsLmlzRW1wdHkpKHRoaXMuY29udGVudCkpfSksc2VsZWN0S2l0T3B0aW9uczp7YWxsb3dBbnk6ITEsY2FyZXREb3duSWNvbjoiY2FyZXQtcmlnaHQiLGNhcmV0VXBJY29uOiJjYXJldC1kb3duIixmdWxsV2lkdGhPbk1vYmlsZTohMCxmaWx0ZXJhYmxlOiEwLGhlYWRlckNvbXBvbmVudDoidGFnLWRyb3AvdGFnLWRyb3AtaGVhZGVyIixhdXRvSW5zZXJ0Tm9uZUl0ZW06ITF9LG5vVGFnc1NlbGVjdGVkOigwLHQuZXF1YWwpKCJ0YWdJZCIscCksZmlsdGVyYWJsZTooMCx0Lmd0ZSkoImNvbnRlbnQubGVuZ3RoIiwxNSksbW9kaWZ5Tm9TZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub1RhZ3NTZWxlY3RlZD90aGlzLmRlZmF1bHRJdGVtKGMsdGhpcy5ub1RhZ3NMYWJlbCk6dGhpcy5kZWZhdWx0SXRlbShkLHRoaXMuYWxsVGFnc0xhYmVsKX0sbW9kaWZ5U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRhZ0lkJiYoZT10aGlzLm5vVGFnc1NlbGVjdGVkP3RoaXMuZGVmYXVsdEl0ZW0oYyx0aGlzLm5vVGFnc0xhYmVsKTp0aGlzLmRlZmF1bHRJdGVtKHRoaXMudGFnSWQsdGhpcy50YWdJZCkpLGV9LHRhZ0NsYXNzOigwLGEuY29tcHV0ZWQpKCJ0YWdJZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWdJZD8idGFnLSIrdGhpcy50YWdJZDoidGFnX2FsbCJ9KSxjdXJyZW50Q2F0ZWdvcnlVcmw6KDAsdC5yZWFkT25seSkoImN1cnJlbnRDYXRlZ29yeS51cmwiKSxhbGxUYWdzVXJsOigwLGEuY29tcHV0ZWQpKCJmaXJzdENhdGVnb3J5Iiwic2Vjb25kQ2F0ZWdvcnkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudENhdGVnb3J5P0Rpc2NvdXJzZS5nZXRVUkwodGhpcy5jdXJyZW50Q2F0ZWdvcnlVcmwrIj9hbGxUYWdzPTEiKTpEaXNjb3Vyc2UuZ2V0VVJMKCIvIil9KSxub1RhZ3NVcmw6KDAsYS5jb21wdXRlZCkoImZpcnN0Q2F0ZWdvcnkiLCJzZWNvbmRDYXRlZ29yeSIsZnVuY3Rpb24oKXt2YXIgZT0iL3RhZ3MiO3JldHVybiB0aGlzLmN1cnJlbnRDYXRlZ29yeSYmKGUrPSIvYy8iK2kuZGVmYXVsdC5zbHVnRm9yKHRoaXMuY3VycmVudENhdGVnb3J5KSsiLyIrdGhpcy5jdXJyZW50Q2F0ZWdvcnkuaWQpLERpc2NvdXJzZS5nZXRVUkwoZSsiLyIrcCl9KSxhbGxUYWdzTGFiZWw6KDAsbi5pMThuKSgidGFnZ2luZy5zZWxlY3Rvcl9hbGxfdGFncyIpLG5vVGFnc0xhYmVsOigwLG4uaTE4bikoInRhZ2dpbmcuc2VsZWN0b3Jfbm9fdGFncyIpLHNob3J0Y3V0czooMCxhLmNvbXB1dGVkKSgidGFnSWQiLGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMudGFnSWQhPT1wJiZlLnB1c2goe2lkOmMsbmFtZTp0aGlzLm5vVGFnc0xhYmVsfSksdGhpcy50YWdJZCYmZS5wdXNoKHtpZDpkLG5hbWU6dGhpcy5hbGxUYWdzTGFiZWx9KSxlfSksdG9wVGFnczooMCxhLmNvbXB1dGVkKSgiZmlyc3RDYXRlZ29yeSIsInNlY29uZENhdGVnb3J5Iiwic2l0ZS5jYXRlZ29yeV90b3BfdGFncy5bXSIsInNpdGUudG9wX3RhZ3MuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudENhdGVnb3J5JiZ0aGlzLnNpdGUuY2F0ZWdvcnlfdG9wX3RhZ3M/dGhpcy5zaXRlLmNhdGVnb3J5X3RvcF90YWdzOnRoaXMuc2l0ZS50b3BfdGFnc30pLGNvbnRlbnQ6KDAsYS5jb21wdXRlZCkoInRvcFRhZ3MuW10iLCJzaG9ydGN1dHMuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydFRhZ3NBbHBoYWJldGljYWxseSYmdGhpcy50b3BUYWdzP3RoaXMuc2hvcnRjdXRzLmNvbmNhdCh0aGlzLnRvcFRhZ3Muc29ydCgpKTp0aGlzLnNob3J0Y3V0cy5jb25jYXQoKDAsdS5tYWtlQXJyYXkpKHRoaXMudG9wVGFncykpfSksc2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoZSl7dmFyIG49e3E6ZSxsaW1pdDp0aGlzLm1heFRhZ1NlYXJjaFJlc3VsdHN9O3JldHVybiB0aGlzLnNlYXJjaFRhZ3MoIi90YWdzL2ZpbHRlci9zZWFyY2giLG4sdGhpcy5fdHJhbnNmb3JtSnNvbil9cmV0dXJuKHRoaXMuY29udGVudHx8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZCYmZS5uYW1lP2U6dC5kZWZhdWx0SXRlbShlLGUpfSl9LF90cmFuc2Zvcm1Kc29uOmZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUucmVzdWx0cy5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQ+dC5pZH0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD1uLmRlZmF1bHRJdGVtKGUuaWQsZS50ZXh0KTtyZXR1cm4gdC50YXJnZXRUYWdJZD1lLnRhcmdldF90YWd8fGUuaWQsdC5jb3VudD1lLmNvdW50LHQucG1Db3VudD1lLnBtX2NvdW50LHR9KX0sYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDA7c3dpdGNoKGUpe2Nhc2UgZDpuPXRoaXMuYWxsVGFnc1VybDticmVhaztjYXNlIGM6bj10aGlzLm5vVGFnc1VybDticmVhaztkZWZhdWx0Om49dGhpcy5jdXJyZW50Q2F0ZWdvcnk/Ii90YWdzL2MvIitpLmRlZmF1bHQuc2x1Z0Zvcih0aGlzLmN1cnJlbnRDYXRlZ29yeSkrIi8iK3RoaXMuY3VycmVudENhdGVnb3J5LmlkOiIvdGFnIix0JiZ0LnRhcmdldFRhZ0lkP24rPSIvIit0LnRhcmdldFRhZ0lkLnRvTG93ZXJDYXNlKCk6bis9Ii8iK2UudG9Mb3dlckNhc2UoKX1vLmRlZmF1bHQucm91dGVUbyhEaXNjb3Vyc2UuZ2V0VVJMKG4pKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9jb21iby1ib3gvY29tYm8tYm94LWhlYWRlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIiLGNsYXNzTmFtZXM6InRhZy1kcm9wLWhlYWRlciJ9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1ncm91cC1jaG9vc2VyIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbXVsdGktc2VsZWN0Iiwic2VsZWN0LWtpdC9taXhpbnMvdGFncyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0YWctZ3JvdXAtY2hvb3NlciJdLGNsYXNzTmFtZXM6WyJ0YWctZ3JvdXAtY2hvb3NlciIsInRhZy1jaG9vc2VyIl0sc2VsZWN0S2l0T3B0aW9uczp7YWxsb3dBbnk6ITEsZmlsdGVyYWJsZTohMCxmaWx0ZXJQbGFjZWhvbGRlcjoiY2F0ZWdvcnkudGFnX2dyb3Vwc19wbGFjZWhvbGRlciIsbGltaXQ6bnVsbH0sbW9kaWZ5Q29tcG9uZW50Rm9yUm93OmZ1bmN0aW9uKCl7cmV0dXJuInRhZy1jaG9vc2VyLXJvdyJ9LHZhbHVlOigwLHMuY29tcHV0ZWQpKCJ0YWdHcm91cHMuW10iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5tYWtlQXJyYXkpKHRoaXMudGFnR3JvdXBzKS51bmlxKCl9KSxjb250ZW50OigwLHMuY29tcHV0ZWQpKCJ0YWdHcm91cHMuW10iLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4oMCxpLm1ha2VBcnJheSkodGhpcy50YWdHcm91cHMpLnVuaXEoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdEl0ZW0oZSxlKX0pfSksYWN0aW9uczp7b25DaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRhZ0dyb3VwcyIsZSl9fSxzZWFyY2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXtxOmUsbGltaXQ6dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5tYXhfdGFnX3NlYXJjaF9yZXN1bHRzIil9O3JldHVybiB0aGlzLnNlYXJjaFRhZ3MoIi90YWdfZ3JvdXBzL2ZpbHRlci9zZWFyY2giLG4sdGhpcy5fdHJhbnNmb3JtSnNvbikudGhlbihmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aClyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISgwLGkubWFrZUFycmF5KSh0LnRhZ0dyb3VwcykuaW5jbHVkZXModC5nZXRWYWx1ZShlKSl9KX0pfSxfdHJhbnNmb3JtSnNvbjpmdW5jdGlvbihlLHQpe3JldHVybiB0LnJlc3VsdHMuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLmlkPnQuaWR9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUudGV4dCxuYW1lOmUudGV4dCxjb3VudDplLmNvdW50fX0pfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdGFnLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24iXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidGFnLW5vdGlmaWNhdGlvbnMtYnV0dG9uIl0sY2xhc3NOYW1lczpbInRhZy1ub3RpZmljYXRpb25zLWJ1dHRvbiJdLHNlbGVjdEtpdE9wdGlvbnM6e3Nob3dGdWxsVGl0bGU6ITEsaTE4blByZWZpeDoiaTE4blByZWZpeCJ9LGkxOG5QcmVmaXg6InRhZ2dpbmcubm90aWZpY2F0aW9ucyJ9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RhZy1yb3ciLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtcm93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1yb3ciLGNsYXNzTmFtZXM6WyJ0YWctcm93Il19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RpbWV6b25lLWlucHV0IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRpbWV6b25lLWlucHV0Il0sY2xhc3NOYW1lczpbInRpbWV6b25lLWlucHV0Il0sbmFtZVByb3BlcnR5Om51bGwsdmFsdWVQcm9wZXJ0eTpudWxsLHNlbGVjdEtpdE9wdGlvbnM6e2ZpbHRlcmFibGU6ITAsYWxsb3dBbnk6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm4iZW4iIT09bW9tZW50LmxvY2FsZSgpJiYiZnVuY3Rpb24iPT10eXBlb2YgbW9tZW50LnR6LmxvY2FsaXplZE5hbWVzP21vbWVudC50ei5sb2NhbGl6ZWROYW1lcygpLm1hcEJ5KCJ2YWx1ZSIpOm1vbWVudC50ei5uYW1lcygpfSl9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3Rvb2xiYXItcG9wdXAtbWVudS1vcHRpb25zIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj0iSEVBRElOR19DT0xMRUNUSU9OIjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucyJdLGNsYXNzTmFtZXM6WyJ0b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucyJdLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5wcmVwZW5kQ29sbGVjdGlvbihuKX0sc2VsZWN0S2l0T3B0aW9uczp7c2hvd0Z1bGxUaXRsZTohMSxmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExfSxtb2RpZnlDb250ZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09bilyZXR1cm57dGl0bGU6dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5wb3B1cFRpdGxlfX0sbW9kaWZ5Q29tcG9uZW50Rm9yQ29sbGVjdGlvbjpmdW5jdGlvbihlKXtpZihlPT09bilyZXR1cm4idG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJ9LG1vZGlmeUNvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuY29uZGl0aW9uKXJldHVybntpY29uOmUuaWNvbixuYW1lOkkxOG4udChlLmxhYmVsKSxpZDplLmFjdGlvbn19KS5maWx0ZXIoQm9vbGVhbil9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJoMyIsbGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIixjbGFzc05hbWVzOlsidG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJdLGhlYWRpbmc6KDAsbi5yZWFkcykoImNvbGxlY3Rpb24uY29udGVudC50aXRsZSIpfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy90b3BpYy1mb290ZXItbW9iaWxlLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvY29tYm8tYm94Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwbHVnaW5BcGlJZGVudGlmaWVyczpbInRvcGljLWZvb3Rlci1tb2JpbGUtZHJvcGRvd24iXSxjbGFzc05hbWVzOlsidG9waWMtZm9vdGVyLW1vYmlsZS1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e25vbmU6InRvcGljLmNvbnRyb2xzIixmaWx0ZXJhYmxlOiExLGF1dG9GaWx0ZXJhYmxlOiExfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlLHQpe3QuYWN0aW9uJiZ0LmFjdGlvbigpfX19KX0pLGRlZmluZSgic2VsZWN0LWtpdC9jb21wb25lbnRzL3RvcGljLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RvcGljLW5vdGlmaWNhdGlvbnMtYnV0dG9uIixjbGFzc05hbWVzOlsidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iXSxhcHBlbmRSZWFzb246ITAsc2hvd0Z1bGxUaXRsZTohMCxwbGFjZW1lbnQ6ImJvdHRvbS1zdGFydCIsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIsdGhpcywiX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIsdGhpcywiX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiKX0sX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7aWYoZS5ldmVudCl7dmFyIHQ9ZS5ldmVudC50YXJnZXQucXVlcnlTZWxlY3RvcigiI3RvcGljIik7aWYodCYmdC5kYXRhc2V0LnRvcGljSWQpe3ZhciBuPXBhcnNlSW50KHQuZGF0YXNldC50b3BpY0lkLDEwKTtpZihuJiZuIT09dGhpcy50b3BpYy5pZClyZXR1cm59fWUuaWQhPT10aGlzLm5vdGlmaWNhdGlvbkxldmVsJiZ0aGlzLnRvcGljLmRldGFpbHMudXBkYXRlTm90aWZpY2F0aW9ucyhlLmlkKX0sYWN0aW9uczp7Y2hhbmdlVG9waWNOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbihlLHQpe3RoaXMuX2NoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwodCl9fX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24iLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0b3BpYy1ub3RpZmljYXRpb25zLW9wdGlvbnMiXSxjbGFzc05hbWVzOlsidG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIl0sY29udGVudDpuLnRvcGljTGV2ZWxzLHNlbGVjdEtpdE9wdGlvbnM6e2kxOG5QcmVmaXg6ImkxOG5QcmVmaXgiLGkxOG5Qb3N0Zml4OiJpMThuUG9zdGZpeCJ9LGkxOG5QcmVmaXg6InRvcGljLm5vdGlmaWNhdGlvbnMiLGkxOG5Qb3N0Zml4OigwLGkuY29tcHV0ZWQpKCJ0b3BpYy5hcmNoZXR5cGUiLGZ1bmN0aW9uKCl7cmV0dXJuInByaXZhdGVfbWVzc2FnZSI9PT10aGlzLnRvcGljLmFyY2hldHlwZT8iX3BtIjoiIn0pfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy91c2VyLWNob29zZXIiLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91c2VyLXNlYXJjaCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbixvLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BsdWdpbkFwaUlkZW50aWZpZXJzOlsidXNlci1jaG9vc2VyIl0sY2xhc3NOYW1lczpbInVzZXItY2hvb3NlciJdLHZhbHVlUHJvcGVydHk6InVzZXJuYW1lIixtb2RpZnlDb21wb25lbnRGb3JSb3c6ZnVuY3Rpb24oKXtyZXR1cm4idXNlci1jaG9vc2VyL3VzZXItcm93In0sc2VsZWN0S2l0T3B0aW9uczp7dG9waWNJZDp2b2lkIDAsY2F0ZWdvcnlJZDp2b2lkIDAsaW5jbHVkZUdyb3VwczohMSxhbGxvd2VkVXNlcnM6ITEsaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzOiExLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczohMSxhbGxvd0VtYWlsczohMSxncm91cE1lbWJlcnNPZjp2b2lkIDB9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoInZhbHVlLltdIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsaS5tYWtlQXJyYXkpKHRoaXMudmFsdWUpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0SXRlbShlLGUpfSl9KSxleGNsdWRlZFVzZXJzOigwLG4uY29tcHV0ZWQpKCJ2YWx1ZSIsImN1cnJlbnRVc2VyIiwic2VsZWN0S2l0Lm9wdGlvbnMue2V4Y2x1ZGVDdXJyZW50VXNlcixleGNsdWRlZFVzZXJuYW1lc30iLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdEtpdC5vcHRpb25zLHQ9KDAsaS5tYWtlQXJyYXkpKHRoaXMudmFsdWUpO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiZlLmV4Y2x1ZGVDdXJyZW50VXNlciYmKHQ9dC5jb25jYXQoW3RoaXMuY3VycmVudFVzZXIudXNlcm5hbWVdKSksdC5jb25jYXQoZS5leGNsdWRlZFVzZXJuYW1lc3x8W10pfX0pLHNlYXJjaDpmdW5jdGlvbihlKXt2YXIgdD0odD0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiIil8fCIiLG49dGhpcy5zZWxlY3RLaXQub3B0aW9ucyxpPSgwLG8uc2tpcFNlYXJjaCkodCxuLmFsbG93RW1haWxzKSxzPSgwLG8uZWFnZXJDb21wbGV0ZVNlYXJjaCkodCxuLnRvcGljSWR8fG4uY2F0ZWdvcnlJZCk7aWYoIWkmJigiIiE9PXR8fHMpKXJldHVybigwLG8uZGVmYXVsdCkoe3Rlcm06dCx0b3BpY0lkOm4udG9waWNJZCxjYXRlZ29yeUlkOm4uY2F0ZWdvcnlJZCxleGNsdWRlOnRoaXMuZXhjbHVkZWRVc2VycyxpbmNsdWRlR3JvdXBzOm4uaW5jbHVkZUdyb3VwcyxhbGxvd2VkVXNlcnM6bi5hbGxvd2VkVXNlcnMsaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzOm4uaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczpuLmluY2x1ZGVNZXNzYWdlYWJsZUdyb3Vwcyxncm91cE1lbWJlcnNPZjpuLmdyb3VwTWVtYmVyc09mLGFsbG93RW1haWxzOm4uYWxsb3dFbWFpbHN9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gZX0pfX0pfSksZGVmaW5lKCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvdXNlci1jaG9vc2VyL3VzZXItcm93IixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bGF5b3V0TmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy91c2VyLWNob29zZXIvdXNlci1yb3ciLGNsYXNzTmFtZXM6WyJ1c2VyLXJvdyJdfSl9KSxkZWZpbmUoInNlbGVjdC1raXQvY29tcG9uZW50cy91c2VyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24iLFsiZXhwb3J0cyIsInNlbGVjdC1raXQvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInVzZXItbm90aWZpY2F0aW9ucyIsInVzZXItbm90aWZpY2F0aW9ucy1kcm9wZG93biJdLHNlbGVjdEtpdE9wdGlvbnM6e2hlYWRlckljb246InVzZXJOb3RpZmljYXRpb25pY29uIn0sdXNlck5vdGlmaWNhdGlvbmljb246KDAscy5jb21wdXRlZCkoIm1haW5Db2xsZWN0aW9uLltdIiwidmFsdWUiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5tYWluQ29sbGVjdGlvbiYmdGhpcy5tYWluQ29sbGVjdGlvbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC52YWx1ZX0pLmljb259KSxjb250ZW50OigwLHMuY29tcHV0ZWQpKGZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGUucHVzaCh7aWNvbjoidXNlciIsaWQ6ImNoYW5nZVRvTm9ybWFsIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm5vcm1hbF9vcHRpb25fdGl0bGUiKSxuYW1lOkkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMubm9ybWFsX29wdGlvbiIpfSksZS5wdXNoKHtpY29uOiJ0aW1lcy1jaXJjbGUiLGlkOiJjaGFuZ2VUb011dGVkIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm11dGVfb3B0aW9uX3RpdGxlIiksbmFtZTpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLm11dGVfb3B0aW9uIil9KSx0aGlzLmdldCgidXNlci5jYW5faWdub3JlX3VzZXIiKSYmZS5wdXNoKHtpY29uOiJmYXItZXllLXNsYXNoIixpZDoiY2hhbmdlVG9JZ25vcmVkIixkZXNjcmlwdGlvbjpJMThuLnQoInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9vcHRpb25fdGl0bGUiKSxuYW1lOkkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX29wdGlvbiIpfSksZX0pLGNoYW5nZVRvTm9ybWFsOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgibm9ybWFsIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9LGNoYW5nZVRvTXV0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsKCJtdXRlIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9LGNoYW5nZVRvSWdub3JlZDpmdW5jdGlvbigpeygwLGkuZGVmYXVsdCkoImlnbm9yZS1kdXJhdGlvbiIse21vZGVsOnRoaXMudXNlcn0pfSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzW2VdKCksdGhpcy5zZXQoInZhbHVlIixlKX19fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvbWl4aW5zL3BsdWdpbi1hcGkiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0LG4sbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFwcGx5Q29udGVudFBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQscyl7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsoYVtlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD0oMCxvLm1ha2VBcnJheSkoZShzLHQpKS5jb25jYXQodCl9KSwocltlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD10LmNvbmNhdCgoMCxvLm1ha2VBcnJheSkoZShzLHQpKSl9KTt2YXIgaT1sW2VdfHxbXTtpLmxlbmd0aCYmKHQ9dC5maWx0ZXIoZnVuY3Rpb24odCl7dmFyIG49ITA7cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihlKXtuPWUocyx0KX0pLG59KSksKGNbZV18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Q9ZShzLHQpfSl9KSx0fSxlLmFwcGx5SGVhZGVyQ29udGVudFBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsocFtlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD1lKG4sdCl9KX0pLHR9LGUuYXBwbHlNb2RpZnlOb1NlbGVjdGlvblBsdWdpbkFwaUNhbGxiYWNrcz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXsoZltlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7dD1lKG4sdCl9KX0pLHR9LGUuYXBwbHlDb2xsZWN0aW9uSGVhZGVyQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhiW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXt0PWUobix0KX0pfSksdH0sZS5hcHBseU9uU2VsZWN0UGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7KHZbZV18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKG4sdCl9KX0pfSxlLmFwcGx5T25PcGVuUGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhfW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKHQsbil9KX0pLGl9LGUuYXBwbHlPbkNsb3NlUGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyh4W2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKHQsbil9KX0pLGl9LGUuYXBwbHlPbklucHV0UGx1Z2luQXBpQ2FsbGJhY2tzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0hMDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhQW2VdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaT1lKG4sdCl9KX0pLGl9LGUubW9kaWZ5U2VsZWN0S2l0PWZ1bmN0aW9uIHQobil7cmV0dXJue2FwcGVuZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkobixmdW5jdGlvbigpe3JldHVybiBlfSksdChuKX0scHJlcGVuZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHMobixmdW5jdGlvbigpe3JldHVybiBlfSksdChuKX0sZmlsdGVyQ29udGVudDpmdW5jdGlvbihlKXtyZXR1cm4gdShuLGUpLHQobil9LG1vZGlmeUNvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGQobixlKSx0KG4pfSxtb2RpZnlIZWFkZXJDb21wdXRlZENvbnRlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG0obixlKSx0KG4pfSxtb2RpZnlTZWxlY3Rpb246ZnVuY3Rpb24oZSl7cmV0dXJuIG0obixlKSx0KG4pfSxtb2RpZnlOb1NlbGVjdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gaChuLGUpLHQobil9LG1vZGlmeUNvbGxlY3Rpb25IZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGcobixlKSx0KG4pfSxvblNlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4geShuLGUpLHQobil9LG9uQ2xvc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGsobixlKSx0KG4pfSxvbk9wZW46ZnVuY3Rpb24oZSl7cmV0dXJuIHcobixlKSx0KG4pfSxvbklucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBqKG4sZSksdChuKX19fSxlLmNsZWFyQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7cj17fSxhPXt9LGw9e30sZj17fSxjPXt9LHA9e30sYj17fSx2PXt9LHg9e30sXz17fSxQPXt9fTt2YXIgcj17fTtmdW5jdGlvbiBpKGUsdCl7KDAsbi5pc05vbmUpKHJbZV0pJiYocltlXT1bXSkscltlXS5wdXNoKHQpfXZhciBhPXt9O2Z1bmN0aW9uIHMoZSx0KXsoMCxuLmlzTm9uZSkoYVtlXSkmJihhW2VdPVtdKSxhW2VdLnB1c2godCl9dmFyIGw9e307ZnVuY3Rpb24gdShlLHQpeygwLG4uaXNOb25lKShsW2VdKSYmKGxbZV09W10pLGxbZV0ucHVzaCh0KX12YXIgYz17fTtmdW5jdGlvbiBkKGUsdCl7KDAsbi5pc05vbmUpKGNbZV0pJiYoY1tlXT1bXSksY1tlXS5wdXNoKHQpfXZhciBwPXt9O2Z1bmN0aW9uIG0oZSx0KXsoMCxuLmlzTm9uZSkocFtlXSkmJihwW2VdPVtdKSxwW2VdLnB1c2godCl9dmFyIGY9e307ZnVuY3Rpb24gaChlLHQpeygwLG4uaXNOb25lKShmW2VdKSYmKGZbZV09W10pLGZbZV0ucHVzaCh0KX12YXIgYj17fTtmdW5jdGlvbiBnKGUsdCl7KDAsbi5pc05vbmUpKGJbZV0pJiYoYltlXT1bXSksYltlXS5wdXNoKHQpfXZhciB2PXt9O2Z1bmN0aW9uIHkoZSx0KXsoMCxuLmlzTm9uZSkodltlXSkmJih2W2VdPVtdKSx2W2VdLnB1c2godCl9dmFyIF89e307ZnVuY3Rpb24gdyhlLHQpeygwLG4uaXNOb25lKShfW2VdKSYmKF9bZV09W10pLF9bZV0ucHVzaCh0KX12YXIgeD17fTtmdW5jdGlvbiBrKGUsdCl7KDAsbi5pc05vbmUpKHhbZV0pJiYoeFtlXT1bXSkseFtlXS5wdXNoKHQpfXZhciBQPXt9O2Z1bmN0aW9uIGooZSx0KXsoMCxuLmlzTm9uZSkoUFtlXSkmJihQW2VdPVtdKSxQW2VdLnB1c2godCl9dmFyIFQ9T2JqZWN0LmZyZWV6ZShbXSk7ZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe2NvbmNhdGVuYXRlZFByb3BlcnRpZXM6WyJwbHVnaW5BcGlJZGVudGlmaWVycyJdLHBsdWdpbkFwaUlkZW50aWZpZXJzOlR9KX0pLGRlZmluZSgic2VsZWN0LWtpdC9taXhpbnMvdGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiQGVtYmVyL3V0aWxzIl0sZnVuY3Rpb24oZSx0LHMsbyxuLGwsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSh7c2VhcmNoVGFnczpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcztyZXR1cm4oMCxzLmFqYXgpKERpc2NvdXJzZS5nZXRVUkwoZSkse3F1aWV0TWlsbGlzOjIwMCxjYWNoZTohMCxkYXRhVHlwZToianNvbiIsZGF0YTp0fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbihpLGUpfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcil9LHNlbGVjdEtpdE9wdGlvbnM6e2FsbG93QW55OiJhbGxvd0FueVRhZyJ9LGFsbG93QW55VGFnOigwLHQucmVhZHMpKCJzaXRlLmNhbl9jcmVhdGVfdGFnIiksdmFsaWRhdGVDcmVhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9dGhpcy5zZWxlY3RLaXQub3B0aW9ucy5tYXhpbXVtO2lmKGkmJigwLGwubWFrZUFycmF5KSh0aGlzLnZhbHVlKS5sZW5ndGg+PXBhcnNlSW50KGksMTApKXJldHVybiB0aGlzLmFkZEVycm9yKEkxOG4udCgic2VsZWN0X2tpdC5tYXhfY29udGVudF9yZWFjaGVkIix7Y291bnQ6dGhpcy5zZWxlY3RLaXQubGltaXR9KSksITE7dmFyIHM9bmV3IFJlZ0V4cCh0aGlzLnNpdGUudGFnc19maWx0ZXJfcmVnZXhwLCJnIik7aWYoZT1lLnJlcGxhY2UocywiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksdGhpcy50ZXJtTWF0Y2hlc0ZvcmJpZGRlbilyZXR1cm4hMTtpZighZS5sZW5ndGh8fHRoaXMuZ2V0KCJzaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgiKTxlLmxlbmd0aClyZXR1cm4gdGhpcy5hZGRFcnJvcihJMThuLnQoInNlbGVjdF9raXQuaW52YWxpZF9zZWxlY3Rpb25fbGVuZ3RoIix7Y291bnQ6IlsxIC0gIit0aGlzLmdldCgic2l0ZVNldHRpbmdzLm1heF90YWdfbGVuZ3RoIikrIl0ifSkpLCExO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKDAsdS5pc0VtcHR5KShlKT92b2lkIDA6ZS50b0xvd2VyQ2FzZSgpfXZhciByPXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBvKG4uZ2V0VmFsdWUoZSkpfSkuZmlsdGVyKEJvb2xlYW4pLmluY2x1ZGVzKGUpLGE9KHRoaXMudmFsdWV8fFtdKS5tYXAobykuZmlsdGVyKEJvb2xlYW4pLmluY2x1ZGVzKGUpO3JldHVybiFyJiYhYX0sY3JlYXRlQ29udGVudEZyb21JbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZT1lLnRyaW0oKS5yZXBsYWNlKC9ccysvZywiLSIpLnJlcGxhY2UoL1tcL1w/I1xbXF1AIVwkJidcKFwpXCpcKyw7PVwuJVxcYF5cc3xce1x9Ijw+XSsvZywiIikuc3Vic3RyaW5nKDAsdGhpcy5zaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgpLHRoaXMuc2l0ZVNldHRpbmdzLmZvcmNlX2xvd2VyY2FzZV90YWdzJiYoZT1lLnRvTG93ZXJDYXNlKCkpLGV9fSl9KSxkZWZpbmUoInNlbGVjdC1raXQvbWl4aW5zL3V0aWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuY3JlYXRlKHtkZWZhdWx0SXRlbTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHkpe3ZhciBuPXt9O3JldHVybiBuW3RoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHldPWUsblt0aGlzLnNlbGVjdEtpdC5uYW1lUHJvcGVydHldPXQsbn1yZXR1cm4gdHx8ZX0saXRlbUZvclZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2VsZWN0S2l0LnZhbHVlUHJvcGVydHk/dC5maW5kQnkodGhpcy5zZWxlY3RLaXQudmFsdWVQcm9wZXJ0eSxlKTplfSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihlLHQsbil7dmFyIGk9KDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09bj9uOntkZWZpbmVkT25seTohMH0pLmRlZmluZWRPbmx5O2lmKGUmJiJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHM9KDAsby5nZXQpKGUsdCk7aWYocylyZXR1cm4gc31yZXR1cm4gdD0oMCxvLmdldCkodGhpcy5zZWxlY3RLaXQsdCksIWV8fCF0JiZpP251bGw6dD8ic3RyaW5nIj09dHlwZW9mIHQ/KDAsby5nZXQpKGUsdCk6dChlKTplfSxnZXRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShlLCJ2YWx1ZVByb3BlcnR5Iix7ZGVmaW5lZE9ubHk6ITF9KX0sZ2V0TmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShlLCJuYW1lUHJvcGVydHkiLHtkZWZpbmVkT25seTohMX0pfSxmaW5kVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9KDAsby5nZXQpKHRoaXMuc2VsZWN0S2l0LCJ2YWx1ZVByb3BlcnR5Iik7aWYoaSl7aWYoInN0cmluZyI9PXR5cGVvZiBpKXJldHVybiBlLmZpbmRCeShpLHRoaXMuZ2V0VmFsdWUodCkpO3ZhciBzPXRoaXMuZ2V0VmFsdWUodCk7cmV0dXJuIGUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRWYWx1ZShlKT09PXN9KX1pZigtMTxlLmluZGV4T2YodCkpcmV0dXJuIHR9LF9pc051bWVyaWM6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoZSkpJiZpc0Zpbml0ZShlKX0sX25vcm1hbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mKGU9ZS50b0xvd2VyQ2FzZSgpKS5ub3JtYWxpemUmJihlPWUubm9ybWFsaXplKCJORkQiKS5yZXBsYWNlKC9bXHUwMzAwLVx1MDM2Zl0vZywiIikpLGV9fSl9KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktZHJvcC9jYXRlZ29yeS1kcm9wLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiLCJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV0sWzI0LFsic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiY2FyZXRJY29uIl1dXSxbWyJjbGFzcyJdLFsiY2FyZXQtaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jYXRlZ29yeS1kcm9wL2NhdGVnb3J5LWRyb3AtaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktc3RhdHVzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNQYXJlbnRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaGlkZVBhcmVudENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwiYmFkZ2VGb3JQYXJlbnRDYXRlZ29yeSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjIsImJhZGdlRm9yQ2F0ZWdvcnkiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5RGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktZGVzYyJdLFs4XSxbMSxbMjgsImRpci1zcGFuIixbWzI0LFsiZGVzY3JpcHRpb24iXV1dLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJsYWJlbCJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY2F0ZWdvcnktcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY29sb3ItcGFsZXR0ZXMvY29sb3ItcGFsZXR0ZXMtcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwiY29sb3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwYWxldHRlcyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyMiwicGFsZXR0ZXMiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jb2xvci1wYWxldHRlcy9jb2xvci1wYWxldHRlcy1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jb21iby1ib3gvY29tYm8tYm94LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIl0sWyJidG4tY2xlYXIiLCJ0aW1lcyIsWzI0LFsic2VsZWN0S2l0Iiwib25DbGVhclNlbGVjdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvY29tYm8tYm94L2NvbWJvLWJveC1oZWFkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jcmVhdGUtY29sb3Itcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9jcmVhdGUtY29sb3Itcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Iiwic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdLFtbMjQsWyJ0YWJpbmRleCJdXSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiXV0sWzI0LFsic2VsZWN0S2l0Il1dLFsyNCxbInNob3VsZERpc3BsYXlDbGVhcmFibGVCdXR0b24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9kcm9wZG93bi1zZWxlY3QtYm94L2Ryb3Bkb3duLXNlbGVjdC1ib3gtaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImljb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzZWxlY3Rpb24taW5kaWNhdG9yIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLFtbInRyYW5zbGF0ZWR0aXRsZSJdLFtbMjgsImRhc2hlcml6ZSIsW1syNCxbInRpdGxlIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGV4dHMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyMiwibGFiZWwiXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyMiwiZGVzY3JpcHRpb24iXSx0cnVlXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveC9kcm9wZG93bi1zZWxlY3QtYm94LXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWljb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzQsImVhY2giLFtbMjQsWyJpY29ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiXSxbWzI0LFsidGFiaW5kZXgiXV0sWzI0LFsic2VsZWN0ZWRDb250ZW50Il1dLFsyNCxbInNlbGVjdEtpdCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNlbGVjdGVkQ29udGVudCIsImRhdGV0aW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3ItZGF0ZXRpbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiLCJkYXRldGltZSJdXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJjYXJldEljb24iXV1dLFtbImNsYXNzIl0sWyJjYXJldC1pY29uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaWNvbiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXRlbSIsImljb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdXR1cmUtZGF0ZS1pbnB1dC1zZWxlY3Rvci1pY29ucyJdLFs4XSxbMCwiXFxuICAgICJdLFs0LCJlYWNoIixbWzI0LFsiaXRlbSIsImljb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkYXRldGltZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLWRhdGV0aW1lIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsiaXRlbSIsImRhdGV0aW1lIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yL2Z1dHVyZS1kYXRlLWlucHV0LXNlbGVjdG9yLXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvbWluaS10YWctY2hvb3Nlci1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY29tcG9uZW50IixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsInNlbGVjdGVkTmFtZUNvbXBvbmVudCJdXV0sW1sidGFiaW5kZXgiLCJpdGVtIiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9taW5pLXRhZy1jaG9vc2VyLWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL21pbmktdGFnLWNob29zZXIvc2VsZWN0ZWQtY29sbGVjdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbInRyYW5zbGF0ZWRUaXRsZSIsImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIl0sW1syMywxLFsidmFsdWUiXV0sInRpbWVzIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVzZWxlY3RUYWciXSxudWxsXSxbMjMsMSxbInZhbHVlIl1dLFsyMywxLFsiY2xhc3NOYW1lcyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFnIixbWzIzLDEsWyJ2YWx1ZSJdXV0sW1sibm9IcmVmIl0sW3RydWVdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbWluaS10YWctY2hvb3Nlci9zZWxlY3RlZC1jb2xsZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjb2xsZWN0aW9uIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiaGVhZGVyQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsInZhbHVlIiwic2VsZWN0ZWRDb250ZW50Iiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiLG51bGwsW1sic2VsZWN0S2l0Il0sW1syNCxbInNlbGVjdEtpdCJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJzZWxlY3RLaXQiLCJpc0xvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0S2l0IiwiZmlsdGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlbGVjdEtpdCIsImhhc05vQ29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VsZWN0X2tpdC5ub19jb250ZW50Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiY29sbGVjdGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjgsImNvbXBvbmVudC1mb3ItY29sbGVjdGlvbiIsW1syMywxLFsiaWRlbnRpZmllciJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dLG51bGxdXSxbWyJjb2xsZWN0aW9uIiwic2VsZWN0S2l0IiwidmFsdWUiXSxbWzIzLDEsW11dLFsyNCxbInNlbGVjdEtpdCJdXSxbMjQsWyJ2YWx1ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJpcy1sb2FkaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWxlY3Qta2l0LXdyYXBwZXIiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNob2ljZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic2VsZWN0ZWRDb250ZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiXSxbWzI0LFsidGFiaW5kZXgiXV0sWzIzLDEsW11dLFsyNCxbInNlbGVjdEtpdCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2hvaWNlIGlucHV0LXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmaWx0ZXJDb21wb25lbnQiXV1dLFtbInNlbGVjdEtpdCJdLFtbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL211bHRpLXNlbGVjdC9zZWxlY3RlZC1jYXRlZ29yeSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJvZHkiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJiYWRnZSJdLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9tdWx0aS1zZWxlY3Qvc2VsZWN0ZWQtY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGVkLW5hbWUiXSxbMTEsInRpdGxlIixbMjIsInRpdGxlIl1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syNCxbInZhbHVlIl1dXSxbWyJzaG93RGF0ZVJhbmdlIiwiZnVsbERheSJdLFt0cnVlLFsyNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmdWxsRGF5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImNhcmV0SWNvbiJdXV0sW1siY2xhc3MiXSxbImNhcmV0LWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItaGVhZGVyIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGVyaW9kLWNob29zZXIvcGVyaW9kLWNob29zZXItcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGlvbi1pbmRpY2F0b3IiXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBlcmlvZC10aXRsZSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syNCxbInJvd1ZhbHVlIl1dXSxbWyJzaG93RGF0ZVJhbmdlIiwiZnVsbERheSJdLFt0cnVlLFsyNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmdWxsRGF5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9wZXJpb2QtY2hvb3Nlci9wZXJpb2QtY2hvb3Nlci1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9waW5uZWQtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInBpbm5lZC1vcHRpb25zIixudWxsLFtbInZhbHVlIiwidG9waWMiXSxbWzI0LFsicGlubmVkIl1dLFsyNCxbInRvcGljIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJyZWFzb24iXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJyZWFzb25UZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvcGlubmVkLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvZXJyb3JzLWNvbGxlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNvbGxlY3Rpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9uIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdC1raXQtZXJyb3IiXSxbOF0sWzEsWzIzLDEsW11dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L2Vycm9ycy1jb2xsZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzZWxlY3RLaXQiLCJpc0V4cGFuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtY29sbGVjdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9uIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syOCwiY29tcG9uZW50LWZvci1yb3ciLFtbMjQsWyJjb2xsZWN0aW9uIiwiaWRlbnRpZmllciJdXSxbMjMsMSxbXV0sWzI0LFsic2VsZWN0S2l0Il1dXSxudWxsXV0sW1siaXRlbSIsInZhbHVlIiwic2VsZWN0S2l0Il0sW1syMywxLFtdXSxbMjQsWyJ2YWx1ZSJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWNvbGxlY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zZWxlY3Qta2l0L3NlbGVjdC1raXQtZmlsdGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0YWJpbmRleCIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJhdXRvY29tcGxldGUiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwic3BlbGxjaGVjayIsInZhbHVlIiwiaW5wdXQiLCJrZXlEb3duIl0sWy0xLCJmaWx0ZXItaW5wdXQiLFsyNCxbInBsYWNlaG9sZGVyIl1dLCJvZmYiLCJvZmYiLCJvZmYiLGZhbHNlLFsyOCwicmVhZG9ubHkiLFtbMjQsWyJzZWxlY3RLaXQiLCJmaWx0ZXIiXV1dLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbklucHV0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uS2V5ZG93biJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsImZpbHRlckljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJmaWx0ZXJJY29uIl1dXSxbWyJjbGFzcyJdLFsiZmlsdGVyLWljb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LWZpbHRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2VsZWN0LWtpdC1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImljb24iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbXV1dLFtbInRyYW5zbGF0ZWR0aXRsZSJdLFtbMjgsImRhc2hlcml6ZSIsW1syNCxbInRpdGxlIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zZWxlY3Qta2l0LXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdC1raXQvc2luZ2xlLXNlbGVjdC1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImljb24iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiaWNvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbMSxbMjgsImQtaWNvbiIsW1syMywxLFtdXV0sbnVsbF0sZmFsc2VdLFswLCIgIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG5cXG4iXSxbMSxbMjgsImNvbXBvbmVudCIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJzZWxlY3RlZE5hbWVDb21wb25lbnQiXV1dLFtbInRhYmluZGV4IiwiaXRlbSIsInNlbGVjdEtpdCJdLFtbMjQsWyJ0YWJpbmRleCJdXSxbMjQsWyJzZWxlY3RlZENvbnRlbnQiXV0sWzI0LFsic2VsZWN0S2l0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvc2VsZWN0LWtpdC9zaW5nbGUtc2VsZWN0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdGVkLW5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlbGVjdEtpdCIsIm9wdGlvbnMiLCJzaG93RnVsbFRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIml0ZW0iLCJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpdGVtIiwiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjIsImxhYmVsIl0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2VsZWN0S2l0Iiwib3B0aW9ucyIsImNsZWFyT25DbGljayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiIsImFjdGlvblBhcmFtIl0sWyJidG4tY2xlYXIiLCJ0aW1lcyIsWzI0LFsic2VsZWN0S2l0IiwiZGVzZWxlY3QiXV0sWzI0LFsiaXRlbSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJpdGVtIiwiaWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiaXRlbSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NlbGVjdGVkLW5hbWUifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy9zaW5nbGUtc2VsZWN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjb2xsZWN0aW9uIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsiaXNIaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiaGVhZGVyQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsInZhbHVlIiwic2VsZWN0ZWRDb250ZW50Iiwic2VsZWN0S2l0Il0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwic2VsZWN0LWtpdC9zZWxlY3Qta2l0LWJvZHkiLG51bGwsW1sic2VsZWN0S2l0Il0sW1syNCxbInNlbGVjdEtpdCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwiZmlsdGVyQ29tcG9uZW50Il1dXSxbWyJzZWxlY3RLaXQiXSxbWzI0LFsic2VsZWN0S2l0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNlbGVjdEtpdCIsImlzTG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzZWxlY3RLaXQiLCJmaWx0ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0S2l0IiwiaGFzTm9Db250ZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibm8tY29udGVudCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWxlY3Rfa2l0Lm5vX2NvbnRlbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjb2xsZWN0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syOCwiY29tcG9uZW50LWZvci1jb2xsZWN0aW9uIixbWzIzLDEsWyJpZGVudGlmaWVyIl1dLFsyNCxbInNlbGVjdEtpdCJdXV0sbnVsbF1dLFtbImNvbGxlY3Rpb24iLCJzZWxlY3RLaXQiLCJ2YWx1ZSJdLFtbMjMsMSxbXV0sWzI0LFsic2VsZWN0S2l0Il1dLFsyNCxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWxvYWRpbmciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIl0sWyJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdC1raXQtd3JhcHBlciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3QifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctY2hvb3Nlci1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syNCxbInJvd1ZhbHVlIl1dXSxbWyJjb3VudCIsIm5vSHJlZiJdLFtbMjQsWyJpdGVtIiwiY291bnQiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1jaG9vc2VyLXJvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3RhZy1kcm9wL3RhZy1kcm9wLWhlYWRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJzZWxlY3RLaXQiLCJvcHRpb25zIiwic2VsZWN0ZWROYW1lQ29tcG9uZW50Il1dXSxbWyJ0YWJpbmRleCIsIml0ZW0iLCJzZWxlY3RLaXQiLCJzaG91bGREaXNwbGF5Q2xlYXJhYmxlQnV0dG9uIl0sW1syNCxbInRhYmluZGV4Il1dLFsyNCxbInNlbGVjdGVkQ29udGVudCJdXSxbMjQsWyJzZWxlY3RLaXQiXV0sWzI0LFsic2hvdWxkRGlzcGxheUNsZWFyYWJsZUJ1dHRvbiJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsiY2FyZXRJY29uIl1dXSxbWyJjbGFzcyJdLFsiY2FyZXQtaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctZHJvcC90YWctZHJvcC1oZWFkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctcm93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjQsWyJyb3dWYWx1ZSJdXV0sW1sibm9IcmVmIiwiY291bnQiXSxbdHJ1ZSxbMjQsWyJpdGVtIiwiY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90YWctcm93In19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMvdG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMtaGVhZGluZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJoZWFkaW5nIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy90b29sYmFyLXBvcHVwLW1lbnUtb3B0aW9ucy1oZWFkaW5nIn19KSxFbWJlci5URU1QTEFURVNbInNlbGVjdC1raXQvdGVtcGxhdGVzL2NvbXBvbmVudHMvdG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidG9waWMtbm90aWZpY2F0aW9ucy1vcHRpb25zIixudWxsLFtbInZhbHVlIiwidG9waWMiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbWzI0LFsibm90aWZpY2F0aW9uTGV2ZWwiXV0sWzI0LFsidG9waWMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVRvcGljTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1sic2hvd0Z1bGxUaXRsZSIsInBsYWNlbWVudCJdLFtbMjQsWyJzaG93RnVsbFRpdGxlIl1dLFsyNCxbInBsYWNlbWVudCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImFwcGVuZFJlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlYXNvbiJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyNCxbInRvcGljIiwiZGV0YWlscyIsIm5vdGlmaWNhdGlvblJlYXNvblRleHQiXV0sdHJ1ZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToic2VsZWN0LWtpdC90ZW1wbGF0ZXMvY29tcG9uZW50cy90b3BpYy1ub3RpZmljYXRpb25zLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLXJvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIl1dXSxbWyJpbWFnZVNpemUiXSxbInRpbnkiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VybmFtZSJdLFs4XSxbMSxbMjgsImZvcm1hdC11c2VybmFtZSIsW1syNCxbIml0ZW0iLCJ1c2VybmFtZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyNCxbIml0ZW0iLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzZWxlY3Qta2l0L3RlbXBsYXRlcy9jb21wb25lbnRzL3VzZXItY2hvb3Nlci91c2VyLXJvdyJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9taXhpbnMvZm9jdXMtZXZlbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG09W10sZj1FbWJlci5BcHBsaWNhdGlvbi5leHRlbmQocy5kZWZhdWx0LChhPSgwLG4ub2JzZXJ2ZXMpKCJfZG9jVGl0bGUiLCJoYXNGb2N1cyIsImNvbnRleHRDb3VudCIsIm5vdGlmaWNhdGlvbkNvdW50IiksbD0oMCxuLmRlZmF1bHQpKCJjb250ZXh0Q291bnQiLCJub3RpZmljYXRpb25Db3VudCIpLHU9KDAsbi5vYnNlcnZlcykoImNvbnRleHRDb3VudCIsIm5vdGlmaWNhdGlvbkNvdW50IiksYz0oMCxuLm9ic2VydmVzKSgiaGFzRm9jdXMiKSxkPSgwLG4uZGVmYXVsdCkoImN1cnJlbnRBc3NldFZlcnNpb24iLCJkZXNpcmVkQXNzZXRWZXJzaW9uIikscihwPXtyb290RWxlbWVudDoiI21haW4iLF9kb2NUaXRsZTpkb2N1bWVudC50aXRsZSxSQVdfVEVNUExBVEVTOnt9LF9fd2lkZ2V0X2hlbHBlcnM6e30sY3VzdG9tRXZlbnRzOntwYXN0ZToicGFzdGUifSxyZXNldDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxNb3VzZXRyYXAucmVzZXQoKX0sZ2V0VVJMOmZ1bmN0aW9uKGUpe3JldHVybiBlJiYoIi8iPT09ZXx8L15cL1teXC9dLy50ZXN0KGUpKT8oIi8iIT09ZVswXSYmKGU9Ii8iK2UpLGUuc3RhcnRzV2l0aChmLkJhc2VVcmkpP2U6Zi5CYXNlVXJpK2UpOmV9LGdldFVSTFdpdGhDRE46ZnVuY3Rpb24oZSl7cmV0dXJuIGU9Zi5nZXRVUkwoZSksZi5DRE4mJi9eXC9bXlwvXS8udGVzdChlKT9lPWYuQ0ROK2U6Zi5TM0NETiYmKGU9ZS5yZXBsYWNlKGYuUzNCYXNlVXJsLGYuUzNDRE4pKSxlfSxSZXNvbHZlcjooMCx0LmJ1aWxkUmVzb2x2ZXIpKCJkaXNjb3Vyc2UiKSxfdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZG9jVGl0bGV8fGYuU2l0ZVNldHRpbmdzLnRpdGxlOyQoInRpdGxlIikudGV4dCgpIT09ZSYmJCgidGl0bGUiKS50ZXh0KGUpO3ZhciB0PXRoaXMuZGlzcGxheUNvdW50LG49dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5keW5hbWljX2Zhdmljb247MDx0JiYhbiYmKGU9IigiK3QrIikgIitlKSxkb2N1bWVudC50aXRsZT1lfSxkaXNwbGF5Q291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmIm5vdGlmaWNhdGlvbnMiPT09dGhpcy5jdXJyZW50VXNlci5nZXQoInRpdGxlX2NvdW50X21vZGUiKT90aGlzLm5vdGlmaWNhdGlvbkNvdW50OnRoaXMuY29udGV4dENvdW50fSxmYXZpY29uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlLHQ7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5nZXQoImR5bmFtaWNfZmF2aWNvbiIpJiYoZT1mLlNpdGVTZXR0aW5ncy5zaXRlX2Zhdmljb25fdXJsLC9eaHR0cC8udGVzdChlKSYmKGU9Zi5nZXRVUkwoIi9mYXZpY29uL3Byb3hpZWQ/IitlbmNvZGVVUklDb21wb25lbnQoZSkpKSx0PXRoaXMuZGlzcGxheUNvdW50LG5ldyB3aW5kb3cuRmF2Y291bnQoZSkuc2V0KHQpKX0sdXBkYXRlQ29udGV4dENvdW50OmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJjb250ZXh0Q291bnQiLGUpfSx1cGRhdGVOb3RpZmljYXRpb25Db3VudDpmdW5jdGlvbihlKXt0aGlzLmhhc0ZvY3VzfHx0aGlzLnNldCgibm90aWZpY2F0aW9uQ291bnQiLGUpfSxpbmNyZW1lbnRCYWNrZ3JvdW5kQ29udGV4dENvdW50OmZ1bmN0aW9uKCl7dGhpcy5oYXNGb2N1c3x8KHRoaXMuc2V0KCJiYWNrZ3JvdW5kTm90aWZ5IiwhMCksdGhpcy5zZXQoImNvbnRleHRDb3VudCIsKHRoaXMuY29udGV4dENvdW50fHwwKSsxKSl9LHJlc2V0Q291bnRzOmZ1bmN0aW9uKCl7dGhpcy5oYXNGb2N1cyYmdGhpcy5iYWNrZ3JvdW5kTm90aWZ5JiZ0aGlzLnNldCgiY29udGV4dENvdW50IiwwKSx0aGlzLnNldCgiYmFja2dyb3VuZE5vdGlmeSIsITEpLHRoaXMuaGFzRm9jdXMmJnRoaXMuc2V0KCJub3RpZmljYXRpb25Db3VudCIsMCl9LGF1dGhlbnRpY2F0aW9uQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGYuX19jb250YWluZXJfXy5sb29rdXAoImNvbnRyb2xsZXI6bG9naW4iKS5hdXRoZW50aWNhdGlvbkNvbXBsZXRlKGUpfSxzdGFydDpmdW5jdGlvbigpeyQoIm5vc2NyaXB0IikucmVtb3ZlKCksT2JqZWN0LmtleXMocmVxdWlyZWpzLl9lYWtfc2VlbikuZm9yRWFjaChmdW5jdGlvbihlKXtpZigvXC9wcmVcLWluaXRpYWxpemVyc1wvLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYW4gaW5pdGlhbGl6ZXIuIik7dmFyIG49dC5kZWZhdWx0LGk9bi5pbml0aWFsaXplO24uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2kuY2FsbCh0aGlzLGYuX19jb250YWluZXJfXyxmKX0sZi5pbml0aWFsaXplcihuKX19KSxPYmplY3Qua2V5cyhyZXF1aXJlanMuX2Vha19zZWVuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKC9cL2luaXRpYWxpemVyc1wvLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYW4gaW5pdGlhbGl6ZXIuIik7dmFyIG49dC5kZWZhdWx0LGk9bi5pbml0aWFsaXplO24uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe2kuY2FsbCh0aGlzLGYuX19jb250YWluZXJfXyxmKX0sZi5pbnN0YW5jZUluaXRpYWxpemVyKG4pfX0pO3ZhciB0PXJlcXVpcmVqcygiZGlzY291cnNlL2xpYi9wbHVnaW4tYXBpIikud2l0aFBsdWdpbkFwaSxuPTA7bS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2YuaW5zdGFuY2VJbml0aWFsaXplcih7bmFtZToiX2Rpc2NvdXJzZV9wbHVnaW5fIisgKytuLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3QoZS52ZXJzaW9uLGUuY29kZSl9fSl9KX0scmVxdWlyZXNSZWZyZXNoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQmJmUhPT10fSxfcmVnaXN0ZXJQbHVnaW5Db2RlOmZ1bmN0aW9uKGUsdCl7bS5wdXNoKHt2ZXJzaW9uOmUsY29kZTp0fSl9LGFzc2V0VmVyc2lvbjooMCxpLmNvbXB1dGVkKSh7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudEFzc2V0VmVyc2lvbn0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQmJih0aGlzLmN1cnJlbnRBc3NldFZlcnNpb24/dGhpcy5zZXQoImRlc2lyZWRBc3NldFZlcnNpb24iLHQpOnRoaXMuc2V0KCJjdXJyZW50QXNzZXRWZXJzaW9uIix0KSksdGhpcy5jdXJyZW50QXNzZXRWZXJzaW9ufX0pfSwiX3RpdGxlQ2hhbmdlZCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX3RpdGxlQ2hhbmdlZCIpLHApLHIocCwiZGlzcGxheUNvdW50IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJkaXNwbGF5Q291bnQiKSxwKSxyKHAsImZhdmljb25DaGFuZ2VkIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmYXZpY29uQ2hhbmdlZCIpLHApLHIocCwicmVzZXRDb3VudHMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlc2V0Q291bnRzIikscCkscihwLCJyZXF1aXJlc1JlZnJlc2giLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlcXVpcmVzUmVmcmVzaCIpLHApLHApKS5jcmVhdGUoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwiTW9kZWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmRlZmF1bHQpKCJVc2UgYW4gYEBlbWJlci9vYmplY3RgIGluc3RlYWQgb2YgRGlzY291cnNlLk1vZGVsIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksaS5kZWZhdWx0fX0pLGUuZGVmYXVsdD1mfSksd2luZG93LkRpc2NvdXJzZT1yZXF1aXJlanMoImRpc2NvdXJzZSIpLmRlZmF1bHQsZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXt0cnl7dmFyIHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9Lzxjb2RlW14+XSo+KFtcc1xTXSo/KTxcL2NvZGU+L2dpLG49ZSxpPXQuZXhlYyhuKSxzPVtdO2Zvcig7aTspe3ZhciBvPSJESVNDT1VSU0VfUExBQ0VIT0xERVJfIisocy5sZW5ndGgrMSkscj1pWzFdO3I9JCgiPGRpdiAvPiIpLmh0bWwocikudGV4dCgpLnJlcGxhY2UoL15cbi8sIiIpLnJlcGxhY2UoL1xuJC8sIiIpLHMucHVzaChbbyxyXSksZT1lLnJlcGxhY2UoaVswXSwiPGNvZGU+IitvKyI8L2NvZGU+IiksaT10LmV4ZWMobil9cmV0dXJue2VsZW1lbnRzOmZ1bmN0aW9uIGUodCl7aWYoIiN0ZXh0IiE9PXQubm9kZU5hbWUmJnZvaWQgMCE9PXQubGVuZ3RoKXtmb3IodmFyIG49W10saT0wO2k8dC5sZW5ndGg7KytpKSIjY29tbWVudCIhPT10W2ldLm5vZGVOYW1lJiZuLnB1c2goZSh0W2ldKSk7cmV0dXJuIG59dmFyIHM9e25hbWU6dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGRhdGE6dC5kYXRhLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319O2lmKCIjdGV4dCI9PT10Lm5vZGVOYW1lKXJldHVybiBzO2Zvcih2YXIgbz0wO288dC5jaGlsZE5vZGVzLmxlbmd0aDsrK28pIiNjb21tZW50IiE9PXQuY2hpbGROb2Rlc1tvXS5ub2RlTmFtZSYmcy5jaGlsZHJlbi5wdXNoKGUodC5jaGlsZE5vZGVzW29dKSk7Zm9yKHZhciByPTA7cjx0LmF0dHJpYnV0ZXMubGVuZ3RoOysrcilzLmF0dHJpYnV0ZXNbdC5hdHRyaWJ1dGVzW3JdLm5hbWVdPXQuYXR0cmlidXRlc1tyXS52YWx1ZTtyZXR1cm4gc30oJC5wYXJzZUhUTUwoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvPGJvZHlbXj5dKj4oW1xzXFNdKj8pPFwvYm9keT4vKTtlPShlPXQ/dFsxXTplKS5yZXBsYWNlKC9ccnxcbnwmbmJzcDsvZywiICIpO3ZhciBuPXZvaWQgMDtmb3IoO249ZS5tYXRjaCgvPFteXHM+XStbXj5dKj5cc3syLH08W15ccz5dK1tePl0qPi8pOyllPWUucmVwbGFjZShuWzBdLG5bMF0ucmVwbGFjZSgvPlxzezIsfTwvLCI+IDwiKSk7cmV0dXJuIGU9ZS5yZXBsYWNlKC88IVxbaWYgIT9cUypdPlteIV0qPCFcW2VuZGlmXT4vZywiIil9KGUpKSkscGxhY2Vob2xkZXJzOnN9fShlKSxuPXQuZWxlbWVudHMsaT10LnBsYWNlaG9sZGVycyxzPWgucGFyc2UobikudHJpbSgpO3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7dD10LnJlcGxhY2UoZVswXSxlWzFdKX0pLHR9KHM9KHM9cy5yZXBsYWNlKC9ePGI+LywiIikucmVwbGFjZSgvPFwvYj4kLywiIikudHJpbSgpKS5yZXBsYWNlKC9cbiArL2csIlxuIikucmVwbGFjZSgvICtcbi9nLCJcbiIpLnJlcGxhY2UoLyB7Mix9L2csIiAiKS5yZXBsYWNlKC9cbnszLH0vZywiXG5cbiIpLnJlcGxhY2UoL1x0L2csIiAgIiksaSl9Y2F0Y2goZSl7cmV0dXJuIiJ9fTtmdW5jdGlvbiByKGUsdCxuKXtudWxsPT09ZSYmKGU9RnVuY3Rpb24ucHJvdG90eXBlKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYodm9pZCAwPT09aSl7dmFyIHM9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09cz92b2lkIDA6cihzLHQsbil9aWYoInZhbHVlImluIGkpcmV0dXJuIGkudmFsdWU7dmFyIG89aS5nZXQ7cmV0dXJuIHZvaWQgMCE9PW8/by5jYWxsKG4pOnZvaWQgMH1mdW5jdGlvbiBhKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24gbChlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9ZnVuY3Rpb24gbyhlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gdShlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfXZhciBjPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX07ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxzKy8sIiIpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvXHMrJC8sIiIpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuKGUucmVwbGFjZSgvXFxcfC8sIiIpLm1hdGNoKC9cfC9nKXx8W10pLmxlbmd0aH12YXIgbT1bIk1zb0xpc3RQYXJhZ3JhcGhDeFNwRmlyc3QiLCJNc29MaXN0UGFyYWdyYXBoQ3hTcE1pZGRsZSIsIk1zb0xpc3RQYXJhZ3JhcGhDeFNwTGFzdCJdLG49ZS5UYWc9KGMoZixbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybih0aGlzLnByZWZpeHx8dGhpcy5zdWZmaXgpJiYoZT1bdGhpcy5wcmVmaXgsZSx0aGlzLnN1ZmZpeF0uam9pbigiIikpLHRoaXMuaW5saW5lJiYoZT0iICIrZSsiICIpLGV9fSx7a2V5OiJ0b01hcmtkb3duIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC5pbm5lck1hcmtkb3duKCk7cmV0dXJuIGUmJmUudHJpbSgpP3RoaXMuZGVjb3JhdGUoZSk6ZX19XSxbe2tleToiYmxvY2tzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiYWRkcmVzcyIsImFydGljbGUiLCJkZCIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJtYWluIiwibmF2IiwicCIsInByZSIsInNlY3Rpb24iXX19LHtrZXk6ImhlYWRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2Il19fSx7a2V5OiJlbXBoYXNlcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bWyJiIiwiKioiXSxbInN0cm9uZyIsIioqIl0sWyJpIiwiKiJdLFsiZW0iLCIqIl0sWyJzIiwifn4iXSxbInN0cmlrZSIsIn5+Il1dfX0se2tleToic2xpY2VzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblsiZHQiLCJkZCIsInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdfX0se2tleToidHJpbW1hYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybltdLmNvbmNhdChvKGYuYmxvY2tzKCkpLG8oZi5oZWFkaW5ncygpKSxvKGYuc2xpY2VzKCkpLFsiYXNpZGUiLCJsaSIsInRkIiwidGgiLCJiciIsImhyIiwiYmxvY2txdW90ZSIsInRhYmxlIiwib2wiLCJ0ciIsInVsIl0pfX0se2tleToid2hpdGVsaXN0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bImlucyIsImRlbCIsInNtYWxsIiwiYmlnIiwia2JkIiwicnVieSIsInJ0IiwicmIiLCJycCJdfX0se2tleToiYmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQsbixpKXtyZXR1cm4gbChzLGYpLGMocyxbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZWxlbWVudC5wYXJlbnQ7cmV0dXJuInAiPT09dGhpcy5uYW1lJiZ0JiYibGkiPT09dC5uYW1lJiYodGhpcy5nYXA9IiIpLCIiK3RoaXMuZ2FwK3RoaXMucHJlZml4K2UrdGhpcy5zdWZmaXgrdGhpcy5nYXB9fV0pLHM7ZnVuY3Rpb24gcygpe3UodGhpcyxzKTt2YXIgZT1hKHRoaXMsKHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpLmNhbGwodGhpcyx0LG4saSkpO3JldHVybiBlLmdhcD0iXG5cbiIsZX19fSx7a2V5OiJhc2lkZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChvLGYuYmxvY2soImFzaWRlIikpLGMobyxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXtpZighL1xicXVvdGVcYi8udGVzdCh0aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5jbGFzcykpcmV0dXJuIHIoby5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yoby5wcm90b3R5cGUpLCJ0b01hcmtkb3duIix0aGlzKS5jYWxsKHRoaXMpO3ZhciBlPXRoaXMuZWxlbWVudC5jaGlsZHJlbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiJibG9ja3F1b3RlIj09PWUubmFtZX0pO2lmKCFlKXJldHVybiByKG8ucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8ucHJvdG90eXBlKSwidG9NYXJrZG93biIsdGhpcykuY2FsbCh0aGlzKTt2YXIgdD1oLnBhcnNlKFtlXSx0aGlzLmVsZW1lbnQpfHwiIjtpZigwPT09KHQ9dC50cmltKCkucmVwbGFjZSgvXj4vZywiIikpLmxlbmd0aClyZXR1cm4iIjt2YXIgbj10aGlzLmVsZW1lbnQuYXR0cmlidXRlc1siZGF0YS11c2VybmFtZSJdLGk9dGhpcy5lbGVtZW50LmF0dHJpYnV0ZXNbImRhdGEtcG9zdCJdLHM9dGhpcy5lbGVtZW50LmF0dHJpYnV0ZXNbImRhdGEtdG9waWMiXTtyZXR1cm4iXG5cbiIrKG4mJmkmJnM/J1txdW90ZT0iJytuKyIsIHBvc3Q6IitpKyIsIHRvcGljOiIrcysnIl0nOiJbcXVvdGVdIikrIlxuIit0KyJcblsvcXVvdGVdXG5cbiJ9fV0pLG87ZnVuY3Rpb24gbygpe3JldHVybiB1KHRoaXMsbyksYSh0aGlzLChvLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG8pKS5jYWxsKHRoaXMpKX19fSx7a2V5OiJoZWFkaW5nIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLmNvbmNhdChvKEFycmF5KHQpKSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIiMifSkuam9pbigiIikrIiAiO3JldHVybiBmLmJsb2NrKGUsbiwiIil9fSx7a2V5OiJlbXBoYXNpcyIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbChuLGYpLGMobixbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2UuaW5jbHVkZXMoIlxuIikmJih0aGlzLnByZWZpeD0iPCIrdGhpcy5uYW1lKyI+Iix0aGlzLnN1ZmZpeD0iPC8iK3RoaXMubmFtZSsiPiIpO3ZhciB0PWUubWF0Y2goL15ccy8pfHxbIiJdO3JldHVybiB0aGlzLnByZWZpeD10WzBdK3RoaXMucHJlZml4LHQ9ZS5tYXRjaCgvXHMkLyl8fFsiIl0sdGhpcy5zdWZmaXg9dGhpcy5zdWZmaXgrdFswXSxyKG4ucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4ucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlLnRyaW0oKSl9fV0pLG47ZnVuY3Rpb24gbigpe3JldHVybiB1KHRoaXMsbiksYSh0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMsZSx0LHQsITApKX19fSx7a2V5OiJ3aGl0ZWxpc3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBsKHQsZiksdDtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxhKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcyxlLCI8IitlKyI+IiwiPC8iK2UrIj4iKSl9fX0se2tleToicmVwbGFjZSIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbChpLGYpLGMoaSxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0fX1dKSxpO2Z1bmN0aW9uIGkoKXt1KHRoaXMsaSk7dmFyIGU9YSh0aGlzLChpLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpKS5jYWxsKHRoaXMsdCwiIiwiIikpO3JldHVybiBlLnRleHQ9bixlfX19LHtrZXk6InNwYW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGwodCxmKSxjKHQsW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4iYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIGNsaWNrcyI9PT10aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5jbGFzcz8iIjpyKHQucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlKX19XSksdDtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxhKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcywic3BhbiIpKX19fSx7a2V5OiJsaW5rIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKGUsZiksYyhlLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLmVsZW1lbnQsaT1uLmF0dHJpYnV0ZXM7aWYoL15tZW50aW9uLy50ZXN0KGkuY2xhc3MpJiYiQCI9PT1lWzBdKXJldHVybiBlO2lmKCJoYXNodGFnIj09PWkuY2xhc3MmJiIjIj09PWVbMF0pcmV0dXJuIGU7aWYoWyJsaWdodGJveCIsImQtbGF6eWxvYWQiXS5pbmNsdWRlcyhpLmNsYXNzKSYmKHQ9ImltZyIsKG4uY2hpbGRyZW58fFtdKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSkpKXt2YXIgcz1pLmhyZWYsbz0obi5jaGlsZHJlbnx8W10pLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuImltZyI9PT1lLm5hbWV9KS5hdHRyaWJ1dGVzWyJkYXRhLWJhc2U2Mi1zaGExIl07cmV0dXJuIG8mJihzPSJ1cGxvYWQ6Ly8iK28pLCIhWyIrKGU9aS50aXRsZXx8IiIpKyJdKCIrcysiKSJ9cmV0dXJuIGkuaHJlZiYmZSE9PWkuaHJlZj8iWyIrKGU9ZS5yZXBsYWNlKC9cbnsyLH0vZywiXG4iKSkrIl0oIitpLmhyZWYrIikiOmV9fV0pLGU7ZnVuY3Rpb24gZSgpe3JldHVybiB1KHRoaXMsZSksYSh0aGlzLChlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKS5jYWxsKHRoaXMsImEiLCIiLCIiLCEwKSl9fX0se2tleToiaW1hZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGwoZSxmKSxjKGUsW3trZXk6InRvTWFya2Rvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LHQ9ZS5hdHRyaWJ1dGVzLG49ZS5wYXJlbnQmJmUucGFyZW50LmF0dHJpYnV0ZXN8fHt9LGk9dC5zcmN8fG4uc3JjLHM9dFsiZGF0YS1iYXNlNjItc2hhMSJdO3MmJihpPSJ1cGxvYWQ6Ly8iK3MpO3ZhciBvPXQuY2xhc3N8fG4uY2xhc3M7aWYobyYmby5pbmNsdWRlcygiZW1vamkiKSlyZXR1cm4gdC50aXRsZXx8bi50aXRsZTtpZihpKXt2YXIgcj10LmFsdHx8bi5hbHR8fCIiLGE9dC53aWR0aHx8bi53aWR0aCxsPXQuaGVpZ2h0fHxuLmhlaWdodCx1PXQudGl0bGU7cmV0dXJuIGEmJmwmJihyPXIrKHRoaXMuZWxlbWVudC5wYXJlbnROYW1lcy5pbmNsdWRlcygidGFibGUiKT8iXFx8IjoifCIpK2ErIngiK2wpLCIhWyIrcisiXSgiK2krKHU/JyAiJyt1KyciJzoiIikrIikifXJldHVybiIifX1dKSxlO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdSh0aGlzLGUpLGEodGhpcywoZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSkuY2FsbCh0aGlzLCJpbWciLCIiLCIiLCEwKSl9fX0se2tleToic2xpY2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGwobixmKSxjKG4sW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm5leHR8fCh0aGlzLnN1ZmZpeD0iIiksIiIrZSt0aGlzLnN1ZmZpeH19XSksbjtmdW5jdGlvbiBuKCl7cmV0dXJuIHUodGhpcyxuKSxhKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxlLCIiLHQpKX19fSx7a2V5OiJjZWxsIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbCh0LGYpLGModCxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQuaW5uZXJNYXJrZG93bigpLnRyaW0oKTtpZihlLmluY2x1ZGVzKCJcbiIpKWZvcih2YXIgdD10aGlzLmVsZW1lbnQ7dD10LnBhcmVudDspaWYoInRhYmxlIj09PXQubmFtZSl7dC50YWcoKS5pbnZhbGlkKCk7YnJlYWt9cmV0dXJuIHRoaXMuZGVjb3JhdGUoZSl9fV0pLHQ7ZnVuY3Rpb24gdCgpe3JldHVybiB1KHRoaXMsdCksYSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsZSwifCIpKX19fSx7a2V5OiJsaSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChzLGYuc2xpY2UoImxpIiwiXG4iKSksYyhzLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbGVtZW50LmZpbHRlclBhcmVudE5hbWVzKFsib2wiLCJ1bCJdKS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4iXHQifSkuam9pbigiIiksbj10aGlzLmVsZW1lbnQuYXR0cmlidXRlcztpZihtLmluY2x1ZGVzKG4uY2xhc3MpKXRyeXt2YXIgaT1wYXJzZUludChuLnN0eWxlLm1hdGNoKC9sZXZlbC4vKVswXS5yZXBsYWNlKCJsZXZlbCIsIiIpLDEwKSx0PUFycmF5KGkpLmpvaW4oIlx0IikrdH1maW5hbGx5eyJNc29MaXN0UGFyYWdyYXBoQ3hTcEZpcnN0Ij09PW4uY2xhc3M/dD0iXG5cbiIrdDoiTXNvTGlzdFBhcmFncmFwaEN4U3BMYXN0Ij09PW4uY2xhc3MmJihlKz0iXG4iKX1yZXR1cm4gcihzLnByb3RvdHlwZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzLnByb3RvdHlwZSksImRlY29yYXRlIix0aGlzKS5jYWxsKHRoaXMsdCsiKiAiK2QoZSkpfX1dKSxzO2Z1bmN0aW9uIHMoKXtyZXR1cm4gdSh0aGlzLHMpLGEodGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fSx7a2V5OiJjb2RlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKHQsZiksYyh0LFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5wYXJlbnROYW1lcy5pbmNsdWRlcygicHJlIik/KHRoaXMucHJlZml4PSJcblxuYGBgXG4iLHRoaXMuc3VmZml4PSJcbmBgYFxuXG4iKTp0aGlzLmlubGluZT0hMCxlPSQoIjx0ZXh0YXJlYSAvPiIpLmh0bWwoZSkudGV4dCgpLHIodC5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLGUpfX1dKSx0O2Z1bmN0aW9uIHQoKXtyZXR1cm4gdSh0aGlzLHQpLGEodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzLCJjb2RlIiwiYCIsImAiKSl9fX0se2tleToiYmxvY2txdW90ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbCh0LGYpLGModCxbe2tleToiZGVjb3JhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlPWUudHJpbSgpLnJlcGxhY2UoL1xuezIsfT4vZywiXG4+IikucmVwbGFjZSgvXG4vZywiXG4+ICIpLHIodC5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodC5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLGUpfX1dKSx0O2Z1bmN0aW9uIHQoKXtyZXR1cm4gdSh0aGlzLHQpLGEodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzLCJibG9ja3F1b3RlIiwiXG4+ICIsIlxuIikpfX19LHtrZXk6InRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKHMsZi5ibG9jaygidGFibGUiKSksYyhzLFt7a2V5OiJpbnZhbGlkIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaXNWYWxpZD0hMSx0aGlzLmVsZW1lbnQucGFyZW50TmFtZXMuaW5jbHVkZXMoInRhYmxlIikpZm9yKHZhciBlPXRoaXMuZWxlbWVudDtlPWUucGFyZW50OylpZigidGFibGUiPT09ZS5uYW1lKXtlLnRhZygpLmludmFsaWQoKTticmVha319fSx7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQsbj0oZT1yKHMucHJvdG90eXBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMucHJvdG90eXBlKSwiZGVjb3JhdGUiLHRoaXMpLmNhbGwodGhpcyxlKS5yZXBsYWNlKC9cfFxuezIsfVx8L2csInxcbnwiKSkudHJpbSgpLnNwbGl0KCJcbiIpLGk9cChuWzBdKTtyZXR1cm4gdGhpcy5pc1ZhbGlkPXRoaXMuaXNWYWxpZCYmMTxuLmxlbmd0aCYmMjxpJiZuLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlJiZwKHQpPD1pfSksdGhpcy5pc1ZhbGlkPyh0PVtdLmNvbmNhdChvKEFycmF5KGktMSkpKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4ifCAtLS0gIn0pLmpvaW4oIiIpKyJ8XG4iLGU9ZS5yZXBsYWNlKCJ8XG4iLCJ8XG4iK3QpKTooZT1lLnJlcGxhY2UoL1x8L2csIiAiKSx0aGlzLmludmFsaWQoKSksZX19XSkscztmdW5jdGlvbiBzKCl7dSh0aGlzLHMpO3ZhciBlPWEodGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuY2FsbCh0aGlzKSk7cmV0dXJuIGUuaXNWYWxpZD0hMCxlfX19LHtrZXk6Imxpc3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBsKGksZi5ibG9jayhlKSksYyhpLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIsbj10aGlzLmVsZW1lbnQucGFyZW50O3JldHVybiBuJiYidWwiPT09bi5uYW1lJiYodGhpcy5nYXA9IiIsdGhpcy5zdWZmaXg9IlxuIiksdGhpcy5lbGVtZW50LmZpbHRlclBhcmVudE5hbWVzKFsibGkiXSkubGVuZ3RoJiYodGhpcy5nYXA9IiIsdD0iXG4iKSx0K3IoaS5wcm90b3R5cGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaS5wcm90b3R5cGUpLCJkZWNvcmF0ZSIsdGhpcykuY2FsbCh0aGlzLHMoZSkpfX1dKSxpO2Z1bmN0aW9uIGkoKXtyZXR1cm4gdSh0aGlzLGkpLGEodGhpcywoaS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fSx7a2V5OiJvbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbChpLGYubGlzdCgib2wiKSksYyhpLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PShlPSJcbiIrZSkubWF0Y2goL1xuXHQqXCovKVswXSxuPXBhcnNlSW50KHRoaXMuZWxlbWVudC5hdHRyaWJ1dGVzLnN0YXJ0fHwxLDEwKTtlLmluY2x1ZGVzKHQpO24rKyllPWUucmVwbGFjZSh0LHQucmVwbGFjZSgiKiIsbisiLiIpKTtyZXR1cm4gcihpLnByb3RvdHlwZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpLnByb3RvdHlwZSksImRlY29yYXRlIix0aGlzKS5jYWxsKHRoaXMsZS5zbGljZSgxKSl9fV0pLGk7ZnVuY3Rpb24gaSgpe3JldHVybiB1KHRoaXMsaSksYSh0aGlzLChpLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX19LHtrZXk6InRyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBsKGUsZi5zbGljZSgidHIiLCJ8XG4iKSksYyhlLFt7a2V5OiJkZWNvcmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWxlbWVudC5uZXh0fHwodGhpcy5zdWZmaXg9InwiKSwiIitlK3RoaXMuc3VmZml4fX1dKSxlO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdSh0aGlzLGUpLGEodGhpcywoZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19fV0pLGYpO2Z1bmN0aW9uIGYoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiLGk9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTt1KHRoaXMsZiksdGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9dCx0aGlzLnN1ZmZpeD1uLHRoaXMuaW5saW5lPWl9dmFyIGg9KGMoYixbe2tleToidGFnIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uZXcoW10uY29uY2F0KG8obi5ibG9ja3MoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uYmxvY2soZSl9KSksbyhuLmhlYWRpbmdzKCkubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uaGVhZGluZyhlLHQrMSl9KSksbyhuLnNsaWNlcygpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5zbGljZShlLCJcbiIpfSkpLG8obi5lbXBoYXNlcygpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5lbXBoYXNpcyhlWzBdLGVbMV0pfSkpLG8obi53aGl0ZWxpc3RzKCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLndoaXRlbGlzdChlKX0pKSxbbi5hc2lkZSgpLG4uY2VsbCgidGQiKSxuLmNlbGwoInRoIiksbi5yZXBsYWNlKCJiciIsIlxuIiksbi5yZXBsYWNlKCJociIsIlxuLS0tXG4iKSxuLnJlcGxhY2UoImhlYWQiLCIiKSxuLmxpKCksbi5saW5rKCksbi5pbWFnZSgpLG4uY29kZSgpLG4uYmxvY2txdW90ZSgpLG4udGFibGUoKSxuLnRyKCksbi5vbCgpLG4ubGlzdCgidWwiKSxuLnNwYW4oKV0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4obmV3IGUpLm5hbWU9PT10Lm5hbWV9KVswXXx8bik7cmV0dXJuIGUuZWxlbWVudD10aGlzLGV9fSx7a2V5OiJpbm5lck1hcmtkb3duIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBiLnBhcnNlQ2hpbGRyZW4odGhpcyl9fSx7a2V5OiJsZWZ0VHJpbW1hYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZpb3VzJiZuLnRyaW1tYWJsZSgpLmluY2x1ZGVzKHRoaXMucHJldmlvdXMubmFtZSl9fSx7a2V5OiJyaWdodFRyaW1tYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0JiZuLnRyaW1tYWJsZSgpLmluY2x1ZGVzKHRoaXMubmV4dC5uYW1lKX19LHtrZXk6InRleHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5kYXRhfHwiIjtyZXR1cm4gdGhpcy5sZWZ0VHJpbW1hYmxlKCkmJihlPWQoZSkpLHRoaXMucmlnaHRUcmltbWFibGUoKSYmKGU9cyhlKSksZT1lLnJlcGxhY2UoL1sgXHRdKy9nLCIgIiksZX19LHtrZXk6InRvTWFya2Rvd24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIiN0ZXh0Ij09PXRoaXMubmFtZT90aGlzLnRleHQoKTp0aGlzLnRhZygpLnRvTWFya2Rvd24oKX19LHtrZXk6ImZpbHRlclBhcmVudE5hbWVzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wYXJlbnROYW1lcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5jbHVkZXMoZSl9KX19XSxbe2tleToidG9NYXJrZG93biIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIG5ldyBiKGUsdCxuLGkpLnRvTWFya2Rvd24oKX19LHtrZXk6InBhcnNlQ2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBiLnBhcnNlKGUuY2hpbGRyZW4sZSl9fSx7a2V5OiJwYXJzZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDpudWxsO2lmKGUpe2Zvcih2YXIgaT1bXSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBvPTA9PT1zP251bGw6ZVtzLTFdLHI9cz09PWUubGVuZ3RoP251bGw6ZVtzKzFdO2kucHVzaChiLnRvTWFya2Rvd24oZVtzXSxuLG8scikpfXJldHVybiBpLmpvaW4oIiIpfXJldHVybiIifX1dKSxiKTtmdW5jdGlvbiBiKGUsdCxuLGkpe3UodGhpcyxiKSx0aGlzLm5hbWU9ZS5uYW1lLHRoaXMuZGF0YT1lLmRhdGEsdGhpcy5jaGlsZHJlbj1lLmNoaWxkcmVuLHRoaXMuYXR0cmlidXRlcz1lLmF0dHJpYnV0ZXMsdCYmKHRoaXMucGFyZW50PXQsdGhpcy5wYXJlbnROYW1lcz10LnBhcmVudE5hbWVzLnNsaWNlKCksdGhpcy5wYXJlbnROYW1lcy5wdXNoKHQubmFtZSkpLHRoaXMucGFyZW50TmFtZXM9dGhpcy5wYXJlbnROYW1lc3x8W10sdGhpcy5wcmV2aW91cz1uLHRoaXMubmV4dD1pLCJwIj09PXRoaXMubmFtZSYmbS5pbmNsdWRlcyh0aGlzLmF0dHJpYnV0ZXMuY2xhc3MpJiYodGhpcy5uYW1lPSJsaSIsdGhpcy5wYXJlbnROYW1lcy5wdXNoKCJ1bCIpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIixbImV4cG9ydHMiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIl0sZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS50cmFuc2xhdGVTaXplPXIsZS5lc2NhcGVFeHByZXNzaW9uPWEsZS5mb3JtYXRVc2VybmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlfHwiIil9LGUucmVwbGFjZUZvcm1hdHRlcj1mdW5jdGlvbihlKXtpPWV9LGUuYXZhdGFyVXJsPWwsZS5nZXRSYXdTaXplPXMsZS5hdmF0YXJJbWc9dSxlLnRpbnlBdmF0YXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdShfLm1lcmdlKHthdmF0YXJUZW1wbGF0ZTplLHNpemU6InRpbnkifSx0KSl9LGUucG9zdFVybD1mdW5jdGlvbihlLHQsbil7dmFyIGk9RGlzY291cnNlLmdldFVSTCgiL3QvIik7aSs9ZT9lKyIvIjoidG9waWMvIjtpKz10LDE8biYmKGkrPSIvIituKTtyZXR1cm4gaX0sZS5lbWFpbFZhbGlkPWZ1bmN0aW9uKGUpe3JldHVybi9eW2EtekEtWjAtOSEjJCUmJyorXC89P1xeX2B7fH1+XC1dKyg/OlwuW2EtekEtWjAtOSEjJCUmJ1wqK1wvPT9cXl9ge3x9flwtXSspKkAoPzpbYS16QS1aMC05XSg/OlthLXpBLVowLTlcLV0qW2EtekEtWjAtOV0pP1wuKStbYS16QS1aMC05XSg/OlthLXpBLVowLTlcLV0qW2EtekEtWjAtOV0pPyQvLnRlc3QoZSl9LGUuZXh0cmFjdERvbWFpbkZyb21Vcmw9ZnVuY3Rpb24oZSl7ZT0tMTxlLmluZGV4T2YoIjovLyIpP2Uuc3BsaXQoIi8iKVsyXTplLnNwbGl0KCIvIilbMF07cmV0dXJuIGUuc3BsaXQoIjoiKVswXX0sZS5zZWxlY3RlZFRleHQ9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoZS5pc0NvbGxhcHNlZClyZXR1cm4iIjtmb3IodmFyIHQ9JCgiPGRpdj4iKSxuPTA7bjxlLnJhbmdlQ291bnQ7bisrKXt2YXIgaT1lLmdldFJhbmdlQXQobikscz0kKGkuY29tbW9uQW5jZXN0b3JDb250YWluZXIpLmZpbmQoIi5wb3N0LW1lbnUtYXJlYSIpWzBdO3MmJmkuc2V0RW5kQmVmb3JlKHMpLHQuYXBwZW5kKGkuY2xvbmVDb250ZW50cygpKX1yZXR1cm4oMCxvLmRlZmF1bHQpKHQuaHRtbCgpKX0sZS5zZWxlY3RlZEVsZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoMDxlLnJhbmdlQ291bnQpcmV0dXJuIGUuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50fSxlLmNhcmV0Um93Q29sPWZ1bmN0aW9uKGUpe3ZhciB0PWMoZSksbj1lLnZhbHVlLnNsaWNlKDAsdCkuc3BsaXQoIlxuIiksaT1uLmxlbmd0aCxzPXQtbi5zcGxpY2UoMCxpLTEpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlK3QubGVuZ3RoKzF9LDApO3JldHVybntyb3dOdW06aSxjb2xOdW06c319LGUuY2FyZXRQb3NpdGlvbj1jLGUuc2V0Q2FyZXRQb3NpdGlvbj1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKGUuc2V0U2VsZWN0aW9uUmFuZ2UpcmV0dXJuIGUuZm9jdXMoKSx2b2lkIGUuc2V0U2VsZWN0aW9uUmFuZ2UodCx0KTtpZihlLmNyZWF0ZVRleHRSYW5nZSlyZXR1cm4obj1lLmNyZWF0ZVRleHRSYW5nZSgpKS5jb2xsYXBzZSghMCksbi5tb3ZlRW5kKCJjaGFyYWN0ZXIiLHQpLG4ubW92ZVN0YXJ0KCJjaGFyYWN0ZXIiLHQpLG4uc2VsZWN0KCl9LGUuZGVmYXVsdEhvbWVwYWdlPWZ1bmN0aW9uKCl7dmFyIGU9bnVsbCx0PV8uZmlyc3QoJChuKSk7dCYmKGU9dC5jb250ZW50KTtlPWV8fERpc2NvdXJzZS5TaXRlU2V0dGluZ3MudG9wX21lbnUuc3BsaXQoInwiKVswXS5zcGxpdCgiLCIpWzBdO3JldHVybiBlfSxlLnNldERlZmF1bHRIb21lcGFnZT1mdW5jdGlvbihlKXt2YXIgdD1fLmZpcnN0KCQobikpO3QmJih0LmNvbnRlbnQ9ZSl9LGUuZGV0ZXJtaW5lUG9zdFJlcGxhY2VTZWxlY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZWxlY3Rpb24sbj1lLm5lZWRsZSxpPWUucmVwbGFjZW1lbnQscz1pLmVuZC1pLnN0YXJ0LShuLmVuZC1uLnN0YXJ0KTtyZXR1cm4gdC5lbmQ8PW4uc3RhcnQ/e3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfTp0LnN0YXJ0PD1uLnN0YXJ0P3QuZW5kPG4uZW5kP3tzdGFydDp0LnN0YXJ0LGVuZDpuLnN0YXJ0fTp7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmQrc306dC5zdGFydDxuLmVuZD90LmVuZDw9bi5lbmQ/e3N0YXJ0OmkuZW5kLGVuZDppLmVuZH06e3N0YXJ0OmkuZW5kLGVuZDp0LmVuZCtzfTp7c3RhcnQ6dC5zdGFydCtzLGVuZDp0LmVuZCtzfX0sZS5pc0FwcGxlRGV2aWNlPWQsZS5pT1NXaXRoVmlzdWFsVmlld3BvcnQ9bSxlLmlzaVBhZD1mdW5jdGlvbigpe3ZvaWQgMD09PXAmJihwPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQYWQvZykmJiFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9UcmlkZW50L2cpKTtyZXR1cm4gcH0sZS5zYWZhcmlIYWNrc0Rpc2FibGVkPWZ1bmN0aW9uKCl7aWYobSgpKXJldHVybiExO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJzYWZhcmktaGFja3MtZGlzYWJsZWQiKSx0PSExO251bGwhPT1lJiYodD0idHJ1ZSI9PT1lKTtyZXR1cm4gdH0sZS5jbGlwYm9hcmREYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jbGlwYm9hcmREYXRhfHxlLm9yaWdpbmFsRXZlbnQuY2xpcGJvYXJkRGF0YXx8ZS5kZWxlZ2F0ZWRFdmVudC5vcmlnaW5hbEV2ZW50LmNsaXBib2FyZERhdGEsaT1mKG4udHlwZXMpLHM9ZihuLmZpbGVzKTtpLmluY2x1ZGVzKCJGaWxlcyIpJiYwPT09cy5sZW5ndGgmJihzPWYobi5pdGVtcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJmaWxlIj09PWUua2luZH0pKTt2YXIgbz0odD1zJiZ0JiZpLmluY2x1ZGVzKCJGaWxlcyIpKSYmcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZS5tYXRjaCgiXmltYWdlLyIpfSlbMF0scj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9yaWNoX3RleHRfcGFzdGUmJmkuaW5jbHVkZXMoInRleHQvaHRtbCIpJiYhbztyZXR1cm57Y2xpcGJvYXJkOm4sdHlwZXM6aSxjYW5VcGxvYWQ6dCxjYW5QYXN0ZUh0bWw6cn19LGUudG9OdW1iZXI9aCxlLmlzTnVtZXJpYz1mdW5jdGlvbihlKXtyZXR1cm4haXNOYU4oaChlKSkmJmlzRmluaXRlKGUpfSxlLmZpbGxNaXNzaW5nRGF0ZXM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1tb21lbnQodCwiWVlZWS1NTS1ERCIpLHM9bW9tZW50KG4sIllZWVktTU0tREQiKS5kaWZmKGksImRheXMiKSxvPWkscj0wO3I8PXM7cisrKXt2YXIgYT1lW3JdP21vbWVudChlW3JdLngsIllZWVktTU0tREQiKTpudWxsOzAhPT1yfHxhJiYhYS5pc0FmdGVyKGkpP2EmJiFhLmlzQWZ0ZXIobW9tZW50KG8pKXx8ZS5zcGxpY2UociwwLHt4Om8seTowfSk6ZS5zcGxpY2UociwwLHt4OmkuZm9ybWF0KCJZWVlZLU1NLUREIikseTowfSksbz1tb21lbnQobykuYWRkKDEsImRheSIpLmZvcm1hdCgiWVlZWS1NTS1ERCIpfXJldHVybiBlfSxlLmFyZUNvb2tpZXNFbmFibGVkPWZ1bmN0aW9uKCl7dHJ5e2RvY3VtZW50LmNvb2tpZT0iY29va2lldGVzdD0xIjt2YXIgZT0tMSE9PWRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJjb29raWV0ZXN0PSIpO3JldHVybiBkb2N1bWVudC5jb29raWU9ImNvb2tpZXRlc3Q9MTsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVCIsZX1jYXRjaChlKXtyZXR1cm4hMX19LGUuaXNpT1NQV0E9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoIihkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpIikubWF0Y2hlcyYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQYWR8aVBob25lfGlQb2QpL2cpfSxlLmlzQXBwV2Vidmlldz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT13aW5kb3cuUmVhY3ROYXRpdmVXZWJWaWV3fSxlLnBvc3RSTldlYnZpZXdNZXNzYWdlPWZ1bmN0aW9uKGUsdCl7dm9pZCAwIT09d2luZG93LlJlYWN0TmF0aXZlV2ViVmlldyYmd2luZG93LlJlYWN0TmF0aXZlV2ViVmlldy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShmdW5jdGlvbihlLHQsbil7dCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW47cmV0dXJuIGV9KHt9LGUsdCkpKX0sZS5yZXNjdWVUaGVtZUVycm9yPWZ1bmN0aW9uKGUsdCxuKXtjb25zb2xlLmVycm9yKCciJytlKyciIGVycm9yOicsdCksZnVuY3Rpb24oZSx0KXt2YXIgbj17bWVzc2FnZTplKyIgdGhlbWUvY29tcG9uZW50IGlzIHRocm93aW5nIGVycm9ycyIsc3RhY2t0cmFjZTp0LnN0YWNrfTtFbWJlci4kLmFqYXgoRGlzY291cnNlLkJhc2VVcmkrIi9sb2dzL3JlcG9ydF9qc19lcnJvciIse2RhdGE6bix0eXBlOiJQT1NUIixjYWNoZTohMX0pfShlLHQpO3ZhciBpPW4uZ2V0Q3VycmVudFVzZXIoKTtpZighaXx8IWkuYWRtaW4pcmV0dXJuO3ZhciBzPURpc2NvdXJzZS5CYXNlVXJpKyIvYWRtaW4vY3VzdG9taXplL3RoZW1lcyIsbz1JMThuLnQoInRoZW1lcy5icm9rZW5fdGhlbWVfYWxlcnQiLHt0aGVtZTplLHBhdGg6JzxhIGhyZWY9IicrcysnIj4nK3MrIjwvYT4ifSkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTGlzdC5hZGQoImJyb2tlbi10aGVtZS1hbGVydCIpLHIuaW5uZXJIVE1MPSLimqDvuI8gIitvLGRvY3VtZW50LmJvZHkucHJlcGVuZChyKX0sZS5pbkNvZGVCbG9jaz1mdW5jdGlvbihlLHQpe3ZhciBuPSExLGk9dm9pZCAwO2Zvcig7bnVsbCE9PShpPWIuZXhlYyhlKSk7KXt2YXIgcz1pLmluZGV4LG89aS5pbmRleCtpWzBdLmxlbmd0aDtzPD10JiZ0PD1vJiYobj0hMCl9cmV0dXJuIG59O3ZhciBuPSJtZXRhW25hbWU9ZGlzY291cnNlX2N1cnJlbnRfaG9tZXBhZ2VdIjtmdW5jdGlvbiByKGUpe3N3aXRjaChlKXtjYXNlInRpbnkiOnJldHVybiAyMDtjYXNlInNtYWxsIjpyZXR1cm4gMjU7Y2FzZSJtZWRpdW0iOnJldHVybiAzMjtjYXNlImxhcmdlIjpyZXR1cm4gNDU7Y2FzZSJleHRyYV9sYXJnZSI6cmV0dXJuIDYwO2Nhc2UiaHVnZSI6cmV0dXJuIDEyMH1yZXR1cm4gZX1mdW5jdGlvbiBhKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSGFuZGxlYmFycy5TYWZlU3RyaW5nP2UudG9TdHJpbmcoKTooMCx0LmVzY2FwZSkoZSl9dmFyIGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIGwoZSx0KXtpZighZSlyZXR1cm4iIjt2YXIgbj1zKHIodCkpO3JldHVybiBlLnJlcGxhY2UoL1x7c2l6ZVx9L2csbil9ZnVuY3Rpb24gcyhlKXt2YXIgdD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtyZXR1cm4gZSpNYXRoLm1pbigzLE1hdGgubWF4KDEsTWF0aC5yb3VuZCh0KSkpfWZ1bmN0aW9uIHUoZSx0KXt0PXR8fERpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROO3ZhciBuPXIoZS5zaXplKSxpPWwoZS5hdmF0YXJUZW1wbGF0ZSxuKTtpZighaXx8MD09PWkubGVuZ3RoKXJldHVybiIiO3ZhciBzPSJhdmF0YXIiKyhlLmV4dHJhQ2xhc3Nlcz8iICIrZS5leHRyYUNsYXNzZXM6IiIpLG89ZS50aXRsZT8iIHRpdGxlPSciK2EoZS50aXRsZXx8IiIpKyInIjoiIjtyZXR1cm4iPGltZyBhbHQ9Jycgd2lkdGg9JyIrbisiJyBoZWlnaHQ9JyIrbisiJyBzcmM9JyIrdChpKSsiJyBjbGFzcz0nIitzKyInIitvKyI+In1mdW5jdGlvbiBjKGUpe3ZhciB0LG4saTtyZXR1cm4gZS5zZWxlY3Rpb25TdGFydD9lLnNlbGVjdGlvblN0YXJ0OmRvY3VtZW50LnNlbGVjdGlvbj8oZS5mb2N1cygpLCh0PWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpKT8obj0oaT1lLmNyZWF0ZVRleHRSYW5nZSgpKS5kdXBsaWNhdGUoKSxpLm1vdmVUb0Jvb2ttYXJrKHQuZ2V0Qm9va21hcmsoKSksbi5zZXRFbmRQb2ludCgiRW5kVG9TdGFydCIsaSksbi50ZXh0Lmxlbmd0aCk6MCk6MH1mdW5jdGlvbiBkKCl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKS5pc0lPUyYmIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1RyaWRlbnQvZyl9dmFyIHA9dm9pZCAwO2Z1bmN0aW9uIG0oKXtyZXR1cm4gZCgpJiZ2b2lkIDAhPT13aW5kb3cudmlzdWFsVmlld3BvcnR9dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8W10sQXJyYXkuaXNBcnJheShlKT9lOkFycmF5LmZyb20oZSl9O2Z1bmN0aW9uIGgoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP2U6cGFyc2VGbG9hdChlKX12YXIgYj0vXiggICAgfFx0KS4qfGBbXmBdK2B8XmBgYFteXSo/XmBgYHxcW2NvZGVcXVteXSo/XFtcL2NvZGVcXS9nbTtlLmRlZmF1bHQ9e319KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGFnZS12aXNpYmxlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10PyFkb2N1bWVudFt0XTpkb2N1bWVudCYmZG9jdW1lbnQuaGFzRm9jdXN9O3ZhciB0PXZvaWQgMCE9PWRvY3VtZW50LmhpZGRlbj8iaGlkZGVuIjp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4/IndlYmtpdEhpZGRlbiI6dm9pZCAwfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xvZ291dCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL21vZGVscy9sb2dpbi1tZXRob2QiXSxmdW5jdGlvbihlLHIsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt7dmFyIG47ZSYmdHx8KG49RGlzY291cnNlLl9fY29udGFpbmVyX18sZT1lfHxuLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIiksdD10fHxuLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSl9dC5hYmFuZG9uTG9jYWwoKTt2YXIgaT1lLmxvZ291dF9yZWRpcmVjdDtpZighKDAsci5pc0VtcHR5KShpKSlyZXR1cm4gdm9pZCh3aW5kb3cubG9jYXRpb24uaHJlZj1pKTt2YXIgcz1lLmVuYWJsZV9zc28sbz0hZS5lbmFibGVfbG9jYWxfbG9naW5zJiYxPT09KDAsYS5maW5kQWxsKSgpLmxlbmd0aDtpZihlLmxvZ2luX3JlcXVpcmVkJiYoc3x8bykpcmV0dXJuIHZvaWQod2luZG93LmxvY2F0aW9uLmhyZWY9RGlzY291cnNlLmdldFVSTCgiL2xvZ2luIikpO3dpbmRvdy5sb2NhdGlvbi5ocmVmPURpc2NvdXJzZS5nZXRVUkwoIi8iKX19KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvc2luZ2xldG9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXQuZGVmYXVsdC5jcmVhdGUoe2N1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3VycmVudHx8KHRoaXMuX2N1cnJlbnQ9dGhpcy5jcmVhdGVDdXJyZW50KCkpLHRoaXMuX2N1cnJlbnR9LGNyZWF0ZUN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jcmVhdGUoe30pfSxjdXJyZW50UHJvcDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY3VycmVudCgpO2lmKG4pcmV0dXJuIHZvaWQgMCE9PXQ/KG4uc2V0KGUsdCksdCk6bi5nZXQoZSl9LHJlc2V0Q3VycmVudDpmdW5jdGlvbihlKXt0aGlzLl9jdXJyZW50PWV9fSk7ZS5kZWZhdWx0PW59KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4scyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uLmRlZmF1bHQuZXh0ZW5kKHtpc05ldzooMCx0LmVxdWFsKSgiX19zdGF0ZSIsIm5ldyIpLGlzQ3JlYXRlZDooMCx0LmVxdWFsKSgiX19zdGF0ZSIsImNyZWF0ZWQiKSxpc1NhdmluZzohMSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt9LGFmdGVyVXBkYXRlOmZ1bmN0aW9uKCl7fSx1cGRhdGU6ZnVuY3Rpb24obil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5pc1NhdmluZz9zLlByb21pc2UucmVqZWN0KCk6KG49bnx8dGhpcy51cGRhdGVQcm9wZXJ0aWVzKCksdGhpcy5zZXQoImlzU2F2aW5nIiwhMCksdGhpcy5zdG9yZS51cGRhdGUodGhpcy5fX3R5cGUsdGhpcy5pZCxuKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWkuX19tdW5nZShlLnBheWxvYWR8fGUucmVzcG9uc2VKc29uKTtyZXR1cm4iT0siPT09dC5zdWNjZXNzJiYoRW1iZXIud2FybigiQW4gdXBkYXRlIGNhbGwgc2hvdWxkIHJldHVybiB0aGUgdXBkYXRlZCBhdHRyaWJ1dGVzIix7aWQ6ImRpc2NvdXJzZS5yZXN0LW1vZGVsLnVwZGF0ZS1hdHRyaWJ1dGVzIn0pLGU9biksaS5zZXRQcm9wZXJ0aWVzKHQpLGkuYWZ0ZXJVcGRhdGUoZSksZS50YXJnZXQ9aSxlfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBpLnNldCgiaXNTYXZpbmciLCExKX0pKX0sX3NhdmVOZXc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLmlzU2F2aW5nKXJldHVybiBzLlByb21pc2UucmVqZWN0KCk7ZT1lfHx0aGlzLmNyZWF0ZVByb3BlcnRpZXMoKSx0aGlzLmJlZm9yZUNyZWF0ZShlKTt2YXIgbj10aGlzLnN0b3JlLmFkYXB0ZXJGb3IodGhpcy5fX3R5cGUpO3JldHVybiB0aGlzLnNldCgiaXNTYXZpbmciLCEwKSxuLmNyZWF0ZVJlY29yZCh0aGlzLnN0b3JlLHRoaXMuX190eXBlLGUpLnRoZW4oZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJSZWNlaXZlZCBubyBkYXRhIGJhY2sgZnJvbSBjcmVhdGVSZWNvcmQiKTtyZXR1cm4gZS5wYXlsb2FkJiYodC5zZXRQcm9wZXJ0aWVzKHQuX19tdW5nZShlLnBheWxvYWQpKSx0LnNldCgiX19zdGF0ZSIsImNyZWF0ZWQiKSksZS50YXJnZXQ9dCxlfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgiaXNTYXZpbmciLCExKX0pfSxjcmVhdGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJZb3UgbXVzdCBvdmVyd3JpdGUgYGNyZWF0ZVByb3BlcnRpZXMoKWAgYmVmb3JlIHNhdmluZyBhIHJlY29yZCIpfSxzYXZlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzTmV3P3RoaXMuX3NhdmVOZXcoZSk6dGhpcy51cGRhdGUoZSl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9yZS5kZXN0cm95UmVjb3JkKHRoaXMuX190eXBlLHRoaXMpfX0pO2kucmVvcGVuQ2xhc3Moe211bmdlOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxjcmVhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKGU9ZXx8e30pLnN0b3JlfHwodD1EaXNjb3Vyc2UuX19jb250YWluZXJfXyxlLnN0b3JlPXQubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikpLGUuX19tdW5nZT10aGlzLm11bmdlLHRoaXMuX3N1cGVyKHRoaXMubXVuZ2UoZSxlLnN0b3JlKSl9fSksZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImhpZ2hlc3RTZWVuQnlUb3BpYyIse30pfX0pO3MucmVvcGVuQ2xhc3Mobi5kZWZhdWx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRGlzY291cnNlLCJTZXNzaW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5kZWZhdWx0KSgiSW1wb3J0IHRoZSBTZXNzaW9uIG9iamVjdCBpbnN0ZWFkIG9mIHVzaW5nIERpc2NvdXJzZS5TZXNzaW9uIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksc319KSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hamF4IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvcGFnZS12aXNpYmxlIiwiZGlzY291cnNlL2xpYi9sb2dvdXQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxhLHQsbixsLHMsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNldFRyYW5zaWVudEhlYWRlcj1mdW5jdGlvbihlLHQpe2Q9e2tleTplLHZhbHVlOnR9fSxlLnZpZXdUcmFja2luZ1JlcXVpcmVkPWZ1bmN0aW9uKCl7Yz0hMH0sZS5oYW5kbGVMb2dvZmY9cCxlLnVwZGF0ZUNzcmZUb2tlbj1tLGUuYWpheD1vO3ZhciBjPSExLGQ9bnVsbCxpPSExO2Z1bmN0aW9uIHAoZSl7ZSYmZS5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUxvZ2dlZC1PdXQiKSYmIWkmJihpPSEwLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpLnN0b3AoKSxib290Ym94LmRpYWxvZyhJMThuLnQoImxvZ291dCIpLHtsYWJlbDpJMThuLnQoInJlZnJlc2giKSxjYWxsYmFjazpuLmRlZmF1bHR9LHtvbkVzY2FwZTpmdW5jdGlvbigpe3JldHVybigwLG4uZGVmYXVsdCkoKX0sYmFja2Ryb3A6InN0YXRpYyJ9KSl9ZnVuY3Rpb24gbSgpe3JldHVybiBvKCIvc2Vzc2lvbi9jc3JmIikudGhlbihmdW5jdGlvbihlKXtsLmRlZmF1bHQuY3VycmVudFByb3AoImNzcmZUb2tlbiIsZS5jc3JmKX0pfWZ1bmN0aW9uIG8oKXt2YXIgbz12b2lkIDAscj12b2lkIDAsbj12b2lkIDA7ZnVuY3Rpb24gaShzLGkpe3IuaGVhZGVycz1yLmhlYWRlcnN8fHt9LERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSYmKHIuaGVhZGVyc1siRGlzY291cnNlLUxvZ2dlZC1JbiJdPSJ0cnVlIiksZCYmKHIuaGVhZGVyc1tkLmtleV09ZC52YWx1ZSxkPW51bGwpLCFjfHxyLnR5cGUmJiJHRVQiIT09ci50eXBlfHwoYz0hMSxyLmhlYWRlcnNbIkRpc2NvdXJzZS1UcmFjay1WaWV3Il09InRydWUiKSwoMCx0LmRlZmF1bHQpKCkmJihyLmhlYWRlcnNbIkRpc2NvdXJzZS1WaXNpYmxlIl09InRydWUiKSxyLnN1Y2Nlc3M9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpOyhpPWUpJiZpLmdldFJlc3BvbnNlSGVhZGVyJiZpLmdldFJlc3BvbnNlSGVhZGVyKCJEaXNjb3Vyc2UtWGhyLVJlZGlyZWN0IikmJih3aW5kb3cubG9jYXRpb24ucmVwbGFjZShpLnJlc3BvbnNlVGV4dCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpKSxwKG4pLCgwLGEucnVuKShmdW5jdGlvbigpe3UuZGVmYXVsdC5jdXJyZW50UHJvcCgiaXNSZWFkT25seSIsISghbnx8IW4uZ2V0UmVzcG9uc2VIZWFkZXIoIkRpc2NvdXJzZS1SZWFkb25seSIpKSl9KSxyLnJldHVyblhIUiYmKGU9e3Jlc3VsdDplLHhocjpufSksKDAsYS5ydW4pKG51bGwscyxlKX0sci5lcnJvcj1mdW5jdGlvbihlLHQsbil7aWYoMCE9PWUucmVhZHlTdGF0ZSl7aWYocChlKSw0MDM9PT1lLnN0YXR1cyYmJ1siQkFEIENTUkYiXSc9PT1lLnJlc3BvbnNlVGV4dCYmbC5kZWZhdWx0LmN1cnJlbnQoKS5zZXQoImNzcmZUb2tlbiIsbnVsbCksMjAwPT09ZS5zdGF0dXMpcmV0dXJuIHIuc3VjY2VzcyhlKTtlLmpxVGV4dFN0YXR1cz10LGUucmVxdWVzdGVkVXJsPW8sKDAsYS5ydW4pKG51bGwsaSx7anFYSFI6ZSx0ZXh0U3RhdHVzOnQsZXJyb3JUaHJvd246bn0pfX0sci50eXBlfHwoci50eXBlPSJHRVQiKSxyLmRhdGFUeXBlfHwiR0VUIiE9PXIudHlwZS50b1VwcGVyQ2FzZSgpfHwoci5kYXRhVHlwZT0ianNvbiIpLCJzY3JpcHQiPT09ci5kYXRhVHlwZSYmKHIuaGVhZGVyc1siRGlzY291cnNlLVNjcmlwdCJdPSEwKSwiR0VUIj09PXIudHlwZSYmITAhPT1yLmNhY2hlJiYoci5jYWNoZT0hMCksbj0kLmFqYXgoRGlzY291cnNlLmdldFVSTChvKSxyKX0xPT09YXJndW1lbnRzLmxlbmd0aD8ic3RyaW5nIj09dHlwZW9mIGFyZ3VtZW50c1swXT8obz1hcmd1bWVudHNbMF0scj17fSk6KG89KHI9YXJndW1lbnRzWzBdKS51cmwsZGVsZXRlIHIudXJsKToyPT09YXJndW1lbnRzLmxlbmd0aCYmKG89YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdKTt2YXIgZT12b2lkIDA7cmV0dXJuKGU9ci50eXBlJiYiR0VUIiE9PXIudHlwZS50b1VwcGVyQ2FzZSgpJiZvIT09RGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpJiYhbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjc3JmVG9rZW4iKT9uZXcgcy5Qcm9taXNlKGZ1bmN0aW9uKGUsdCl7bj1tKCkudGhlbihmdW5jdGlvbigpe2koZSx0KX0pfSk6bmV3IHMuUHJvbWlzZShpKSkuYWJvcnQ9ZnVuY3Rpb24oKXtuJiZuLmFib3J0KCl9LGV9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RleHQiLFsiZXhwb3J0cyIsInByZXR0eS10ZXh0L3ByZXR0eS10ZXh0IiwicHJldHR5LXRleHQvZW1vamkiLCJwcmV0dHktdGV4dC93aGl0ZS1saXN0ZXIiLCJwcmV0dHktdGV4dC9zYW5pdGl6ZXIiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJyc3ZwIl0sZnVuY3Rpb24oZSxzLGksbixvLHQscixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChlLHQpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGModCkuY29vayhlKSl9ZnVuY3Rpb24gdSgpe3JldHVybiBEaXNjb3Vyc2UuTWFya2Rvd25JdFVSTD8oMCx0LmRlZmF1bHQpKERpc2NvdXJzZS5NYXJrZG93bkl0VVJMKS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfSk6YS5Qcm9taXNlLnJlc29sdmUoKX1mdW5jdGlvbiBjKGUpe3JldHVybiBuZXcgcy5kZWZhdWx0KCh0PWUsbj1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLGk9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzaXRlOm1haW4iKSx0PV8ubWVyZ2Uoe2dldFVSTDpEaXNjb3Vyc2UuZ2V0VVJMV2l0aENETixjdXJyZW50VXNlcjpEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIiksY2Vuc29yZWRSZWdleHA6aS5jZW5zb3JlZF9yZWdleHAsc2l0ZVNldHRpbmdzOm4sZm9ybWF0VXNlcm5hbWU6ci5mb3JtYXRVc2VybmFtZX0sdCksKDAscy5idWlsZE9wdGlvbnMpKHQpKSk7dmFyIHQsbixpfWZ1bmN0aW9uIGQoKXtpZihEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9lbW9qaSlyZXR1cm57Z2V0VVJMOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROLGVtb2ppU2V0OkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW1vamlfc2V0LGVuYWJsZUVtb2ppU2hvcnRjdXRzOkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5hYmxlX2Vtb2ppX3Nob3J0Y3V0cyxpbmxpbmVFbW9qaTpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9pbmxpbmVfZW1vamlfdHJhbnNsYXRpb259fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNvb2s9bCxlLmNvb2tBc3luYz1mdW5jdGlvbihlLHQpe3JldHVybiB1KCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsKGUsdCl9KX0sZS5zYW5pdGl6ZT1mdW5jdGlvbihlLHQpe3JldHVybigwLG8uc2FuaXRpemUpKGUsbmV3IG4uZGVmYXVsdCh0KSl9LGUuc2FuaXRpemVBc3luYz1mdW5jdGlvbihlLHQpe3JldHVybihuZXcgdSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjKHQpLnNhbml0aXplKGUpfSl9LGUuZW1vamlVbmVzY2FwZT1mdW5jdGlvbihlLHQpe3ZhciBuPWQoKTtyZXR1cm4gbj8oMCxpLnBlcmZvcm1FbW9qaVVuZXNjYXBlKShlLE9iamVjdC5hc3NpZ24obix0fHx7fSkpOmV9LGUuZW1vamlVcmxGb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZCgpO2lmKHQpcmV0dXJuKDAsaS5idWlsZEVtb2ppVXJsKShlLHQpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9oYXNoIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaGFzaFN0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gdH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbG9hZC1zY3JpcHQiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCJdLGZ1bmN0aW9uKGUsYyxkLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5sb2FkQ1NTPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUse2NzczohMH0pfSxlLmRlZmF1bHQ9dDt2YXIgbT17fSxmPXt9O2Z1bmN0aW9uIHQobCx1KXtyZXR1cm4iZGVmZXIvaHRtbC1zYW5pdGl6ZXItYnVuZGxlIj09PWw/cC5Qcm9taXNlLnJlc29sdmUoKToobD0odT11fHx7fSkuY3NzP0Rpc2NvdXJzZS5nZXRVUkwobCk6RGlzY291cnNlLmdldFVSTFdpdGhDRE4obCksJCgic2NyaXB0IikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJzcmMiKTtuJiZuIT09bCYmIWZbbl0mJihtW25dPSEwKX0pLG5ldyBwLlByb21pc2UoZnVuY3Rpb24odCl7aWYobVtsXSlyZXR1cm4gdCgpO2lmKGZbbF0pcmV0dXJuIGZbbF0udGhlbih0KTt2YXIgbj12b2lkIDA7ZltsXT1uZXcgcC5Qcm9taXNlKGZ1bmN0aW9uKGUpe249ZX0pLGZbbF0udGhlbihmdW5jdGlvbigpe2RlbGV0ZSBmW2xdfSk7ZnVuY3Rpb24gZShlKXt1JiZ1LmNzcyYmJCgiaGVhZCIpLmFwcGVuZCgiPHN0eWxlPiIrZSsiPC9zdHlsZT4iKSxuKCksdCgpLG1bbF09ITB9dmFyIGkscyxvLHIsYTt1LmNzcz8oMCxkLmFqYXgpKHt1cmw6bCxkYXRhVHlwZToidGV4dCIsY2FjaGU6ITB9KS50aGVuKGUpOihpPWwscz1lLG89ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSxyPSExLChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKS5zcmM9aSxFbWJlci5UZXN0JiZFbWJlci5UZXN0LnJlZ2lzdGVyV2FpdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSxhLm9ubG9hZD1hLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLHQpe3I9ITAsIXQmJmEucmVhZHlTdGF0ZSYmImxvYWRlZCIhPT1hLnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPT1hLnJlYWR5U3RhdGV8fChhPWEub25sb2FkPWEub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsdHx8KDAsYy5ydW4pKG51bGwscykpfSxvLmFwcGVuZENoaWxkKGEpKX0pKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbm90aWZpY2F0aW9uLWxldmVscyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmJ1dHRvbkRldGFpbHM9cjt2YXIgdD0wLG49MSxpPTIscz0zLG89NDtlLk5vdGlmaWNhdGlvbkxldmVscz17V0FUQ0hJTkdfRklSU1RfUE9TVDpvLFdBVENISU5HOnMsVFJBQ0tJTkc6aSxSRUdVTEFSOm4sTVVURUQ6dH07ZnVuY3Rpb24gcihlKXtzd2l0Y2goZSl7Y2FzZSBvOnJldHVybntpZDpvLGtleToid2F0Y2hpbmdfZmlyc3RfcG9zdCIsaWNvbjoiZC13YXRjaGluZy1maXJzdCJ9O2Nhc2UgczpyZXR1cm57aWQ6cyxrZXk6IndhdGNoaW5nIixpY29uOiJkLXdhdGNoaW5nIn07Y2FzZSBpOnJldHVybntpZDppLGtleToidHJhY2tpbmciLGljb246ImQtdHJhY2tpbmcifTtjYXNlIHQ6cmV0dXJue2lkOnQsa2V5OiJtdXRlZCIsaWNvbjoiZC1tdXRlZCJ9O2RlZmF1bHQ6cmV0dXJue2lkOm4sa2V5OiJyZWd1bGFyIixpY29uOiJkLXJlZ3VsYXIifX19dmFyIGE9ZS5hbGxMZXZlbHM9W3MsaSxvLG4sdF0ubWFwKHIpO2UudG9waWNMZXZlbHM9YS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT1vfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9zZXJ2aWNlcy9hcHAtZXZlbnRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiQGVtYmVyL3NlcnZpY2UiXSxmdW5jdGlvbihlLHIsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChFbWJlci5FdmVudGVkLHtfZXZlbnRzOnt9LG9uOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvLHIsYTtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGg/KHQ9KGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSlbMF0sbj1lWzFdLGk9e30sdGhpcy5fZXZlbnRzW3RdPXRoaXMuX2V2ZW50c1t0XXx8W10sdGhpcy5fZXZlbnRzW3RdLnB1c2goe3RhcmdldDppLGZuOm59KSx0aGlzLl9zdXBlcih0LGksbikpOjM9PT1hcmd1bWVudHMubGVuZ3RoJiYobz0ocz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKVswXSxyPXNbMV0sYT1zWzJdLHRoaXMuX2V2ZW50c1tvXT10aGlzLl9ldmVudHNbb118fFtdLHRoaXMuX2V2ZW50c1tvXS5wdXNoKHt0YXJnZXQ6cixmbjphfSksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0aGlzfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMscz1lLG89bjtyZXR1cm4gdGhpcy5fZXZlbnRzW3NdJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/KCgwLHIuZGVmYXVsdCkoIlJlbW92aW5nIGFsbCBldmVudCBsaXN0ZW5lcnMgYXQgb25jZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgcmVtb3ZlIGVhY2ggbGlzdGVuZXIgaW5kaXZpZHVhbGx5LiIpLHRoaXMuX2V2ZW50c1tzXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kuX3N1cGVyKHMsZS50YXJnZXQsZS5mbil9KSxkZWxldGUgdGhpcy5fZXZlbnRzW3NdKTozPT09YXJndW1lbnRzLmxlbmd0aCYmKHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9ldmVudHNbc109dGhpcy5fZXZlbnRzW3NdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5mbiE9PW99KSwwPT09dGhpcy5fZXZlbnRzW3NdLmxlbmd0aCYmZGVsZXRlIHRoaXMuX2V2ZW50c1tzXSkpLHRoaXN9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKCl7dmFyIGU9JCgiaGVhZGVyLmQtaGVhZGVyIik7cmV0dXJuKGUub3V0ZXJIZWlnaHQoITApfHwwKStlLnBvc2l0aW9uKCkudG9wfWZ1bmN0aW9uIHQoKXt2YXIgZT1sKCk7aWYoJCgiaHRtbCIpLmhhc0NsYXNzKCJtb2JpbGUtdmlldyIpKXJldHVybiBlO3ZhciB0PSQod2luZG93KSxuPXQuaGVpZ2h0KCksaT0kKGRvY3VtZW50KS5oZWlnaHQoKSxzPSQoIiN0b3BpYy1ib3R0b20iKS5vZmZzZXQoKS50b3A7aWYoczxpLW4pcmV0dXJuIGU7dmFyIG89dC5zY3JvbGxUb3AoKStuLXM7aWYoMDxvKXt2YXIgcj1pLXMsYT0obi1yKSpvL3I7cmV0dXJuIE1hdGgubWF4KGUsYSl9cmV0dXJuIGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2Nyb2xsVG9wRm9yPWZ1bmN0aW9uKGUpe3JldHVybiBlLXQoKX0sZS5taW5pbXVtT2Zmc2V0PWwsZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbG9jay1vbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9vZmZzZXQtY2FsY3VsYXRvciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0ic2Nyb2xsLmxvY2stb24gdG91Y2htb3ZlLmxvY2stb24gbW91c2Vkb3duLmxvY2stb24gd2hlZWwubG9jay1vbiBET01Nb3VzZVNjcm9sbC5sb2NrLW9uIG1vdXNld2hlZWwubG9jay1vbiBrZXl1cC5sb2NrLW9uIixhPVsibW91c2Vkb3duIiwibW91c2V3aGVlbCIsInRvdWNobW92ZSIsIndoZWVsIl07ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIE1hdGguYWJzKHQtbik8ZX12YXIgcz0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShvLFt7a2V5OiJlbGVtZW50VG9wIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPSQodGhpcy5zZWxlY3Rvcik7aWYoZS5sZW5ndGgmJmUub2Zmc2V0JiZlLm9mZnNldCgpKXJldHVybiBlLm9mZnNldCgpLnRvcC0oMCx0Lm1pbmltdW1PZmZzZXQpKCl9fSx7a2V5OiJjbGVhckxvY2siLHZhbHVlOmZ1bmN0aW9uKGUpeyQoImJvZHksIGh0bWwiKS5vZmYobiksY2xlYXJJbnRlcnZhbChlKSx0aGlzLm9wdGlvbnMuZmluaXNoZWQmJnRoaXMub3B0aW9ucy5maW5pc2hlZCgpfX0se2tleToibG9jayIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLHM9KG5ldyBEYXRlKS5nZXRUaW1lKCksbz10aGlzLmVsZW1lbnRUb3AoKTtvJiYkKHdpbmRvdykuc2Nyb2xsVG9wKG8pO3ZhciByPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9aS5lbGVtZW50VG9wKCk7aWYob3x8ZSl7dmFyIHQ9TWF0aC5tYXgoMCxlKSxuPSQod2luZG93KS5zY3JvbGxUb3AoKTtyZXR1cm4gdm9pZCAwPT09dHx8aXNOYU4odCk/aS5jbGVhckxvY2socik6KGwoNCx0LG8pJiZsKDQsbix0KXx8KCQod2luZG93KS5zY3JvbGxUb3AodCksbz10KSwxZTM8KG5ldyBEYXRlKS5nZXRUaW1lKCktcz9pLmNsZWFyTG9jayhyKTp2b2lkIDApfX0sNTApOyQoImJvZHksIGh0bWwiKS5vZmYobikub24obixmdW5jdGlvbihlKXsoMDxlLndoaWNofHxhLmluY2x1ZGVzKGUudHlwZSkpJiZpLmNsZWFyTG9jayhyKX0pfX1dKSxvKTtmdW5jdGlvbiBvKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbyksdGhpcy5zZWxlY3Rvcj1lLHRoaXMub3B0aW9ucz10fHx7fX1lLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi91cmwiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLCJkaXNjb3Vyc2UvbGliL2xvY2stb24iLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdSx0LHAsbSxmLGksYyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJld3JpdGVQYXRoPWcsZS5jbGVhclJld3JpdGVzPWZ1bmN0aW9uKCl7cy5sZW5ndGg9MH0sZS51c2VyUGF0aD12LGUuZ3JvdXBQYXRoPWZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGU/Ii9nLyIrZToiL2ciKX0sZS5qdW1wVG9FbGVtZW50PXk7dmFyIHM9W10sZD0vXC90XC8oW15cL10rKVwvKFxkKylcLz8oXGQrKT8vO2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uPWUsITB9dmFyIGI9Wy9eXC9hc3NldHNcLy8sL15cL3VwbG9hZHNcLy8sL15cL3N0eWxlc2hlZXRzXC8vLC9eXC9zaXRlX2N1c3RvbWl6YXRpb25zXC8vLC9eXC9yYXdcLy8sL15cL3Bvc3RzXC9cZCtcL3Jhdy8sL15cL3Jhd1wvXGQrLywvXlwvd2l6YXJkLywvXC5yc3MkLywvXC5qc29uJC8sL15cL2FkbWluXC91cGdyYWRlJC8sL15cL2xvZ3MoJHxcLykvLC9eXC9hZG1pblwvbG9nc1wvd2F0Y2hlZF93b3Jkc1wvYWN0aW9uXC9bXlwvXStcL2Rvd25sb2FkJC9dO2Z1bmN0aW9uIGcodCl7dmFyIGU9dC5zcGxpdCgiPyIpLG49ZVswXTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhlLm9wdHMuZXhjZXB0aW9uc3x8W10pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSl9KXx8KG49bi5yZXBsYWNlKGUucmVnZXhwLGUucmVwbGFjZW1lbnQpKX0pLDE8ZS5sZW5ndGgmJihuKz0iPyIrZVsxXSksbn1mdW5jdGlvbiB2KGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGU/Ii91LyIrZToiL3UiKX12YXIgbj0hMTtmdW5jdGlvbiB5KGUpe3ZhciB0O258fCgwLHUuaXNFbXB0eSkoZSl8fCh0PSIjIitlKyIsIGFbbmFtZT0iK2UrIl0iLG49ITAsKDAscC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe25ldyBmLmRlZmF1bHQodCx7ZmluaXNoZWQ6ZnVuY3Rpb24oKXtuPSExfX0pLmxvY2soKX0pKX12YXIgXz0hMSx3PXQuZGVmYXVsdC5leHRlbmQoe2lzSnVtcFNjaGVkdWxlZDpmdW5jdGlvbigpe3JldHVybiBffHxufSxqdW1wVG9Qb3N0OmZ1bmN0aW9uKHUsYyl7Yz1jfHx7fTt2YXIgZD0iI3Bvc3RfIit1O189MTx1LCgwLHAuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT12b2lkIDAsdD12b2lkIDA7aWYoYy5qdW1wRW5kKXt2YXIgbj0kKGQpLGk9bi5oZWlnaHQoKTtpZigkKHdpbmRvdykuaGVpZ2h0KCktKDAsbS5kZWZhdWx0KSgpPGkpcmV0dXJuICQod2luZG93KS5zY3JvbGxUb3Aobi5vZmZzZXQoKS50b3ArKGktaS8xMCkpLHZvaWQoXz0hMSl9aWYoMT09PXUmJiFjLmFuY2hvcilyZXR1cm4gJCh3aW5kb3cpLnNjcm9sbFRvcCgwKSx2b2lkKF89ITEpO2MuYW5jaG9yJiYoZT1jLmFuY2hvcix0PSQoZSkpLHQmJjAhPT10Lmxlbmd0aHx8KGU9ZCx0PSQoZSkpO3ZhciBzPW5ldyBmLmRlZmF1bHQoZSx7ZmluaXNoZWQ6ZnVuY3Rpb24oKXtfPSExfX0pO2lmKDA8dC5sZW5ndGgmJmMmJmMuc2tpcElmT25TY3JlZW4pe3ZhciBvPXMuZWxlbWVudFRvcCgpLHI9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGE9JCh3aW5kb3cpLmhlaWdodCgpLSgwLG0uZGVmYXVsdCkoKSxsPXQuaGVpZ2h0KCk7aWYocjxvJiZvK2w8cithKXJldHVybiB2b2lkKF89ITEpfXMubG9jaygpLHMuZWxlbWVudFRvcCgpPDEmJihfPSExKX0pfSxyZXBsYWNlU3RhdGU6ZnVuY3Rpb24odCl7d2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlJiZ3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUhPT10JiYoMCxwLm5leHQpKGZ1bmN0aW9uKCl7dmFyIGU9dy5nZXQoInJvdXRlci5sb2NhdGlvbiIpO2UmJmUucmVwbGFjZVVSTCYmZS5yZXBsYWNlVVJMKHQpfSl9LHJvdXRlVG9UYWc6ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuaHJlZikmJihlLmhvc3QmJmUuaG9zdCE9PWRvY3VtZW50LmxvY2F0aW9uLmhvc3Q/KGRvY3VtZW50LmxvY2F0aW9uPWUuaHJlZiwhMSk6dGhpcy5yb3V0ZVRvKGUuaHJlZikpfSxyb3V0ZVRvOmZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhKDAsdS5pc0VtcHR5KSh0KSl7aWYoRGlzY291cnNlLmdldCgicmVxdWlyZXNSZWZyZXNoIikpcmV0dXJuIGgoRGlzY291cnNlLmdldFVSTCh0KSk7dmFyIG49dC5yZXBsYWNlKC8oaHR0cHM/XDopP1wvXC9bXlwvXSsvLCIiKSxpPURpc2NvdXJzZS5CYXNlVXJpO2lmKCF3LmlzSW50ZXJuYWwodCkpcmV0dXJuIGgodCk7aWYoIWIuc29tZShmdW5jdGlvbihlKXtpZihuLm1hdGNoKGUpKXJldHVybiBoKHQpfSkpe3ZhciBzPS9eIyguKykkLy5leGVjKHQpO2lmKHMpcmV0dXJuIHkoc1sxXSksdGhpcy5yZXBsYWNlU3RhdGUodCk7dmFyIG8scj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsYT1pKyIvbXkvIjtpZigwPT09KHQ9dC5yZXBsYWNlKC8oaHR0cHM/XDopP1wvXC9bXlwvXSsvLCIiKSkuaW5kZXhPZihhKSl7dmFyIGw9Yy5kZWZhdWx0LmN1cnJlbnQoKTtpZighbClyZXR1cm4gaCgiLzQwNCIpO3Q9dC5yZXBsYWNlKGEsdihsLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiLyIpKX1pZigwPT09dC5pbmRleE9mKCIvIikmJihvPSh2b2lkIDA9PT1pPyIvIjppKS5yZXBsYWNlKC9cLyQvLCIiKSx0PXQucmVwbGFjZShvLCIiKSksdD1nKHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmFmdGVyUm91dGVDb21wbGV0ZSYmKDAscC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixlLmFmdGVyUm91dGVDb21wbGV0ZSksIXRoaXMubmF2aWdhdGVkVG9Qb3N0KHIsdCxlKSYmKHI9PT10JiZ0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ1cmw6cmVmcmVzaCIpLCF0aGlzLm5hdmlnYXRlZFRvSG9tZShyLHQsZSkpKXJldHVybiIiPT09dCYmKHQ9Ii8iKSx0aGlzLmhhbmRsZVVSTCh0LGUpfX19LHJvdXRlVG9Vcmw6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDp7fTt0aGlzLnJvdXRlVG8oRGlzY291cnNlLmdldFVSTChlKSxuKX0scmV3cml0ZTpmdW5jdGlvbihlLHQsbil7cy5wdXNoKHtyZWdleHA6ZSxyZXBsYWNlbWVudDp0LG9wdHM6bnx8e319KX0scmVkaXJlY3RUbzpmdW5jdGlvbihlKXt3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTChlKX0saXNJbnRlcm5hbDpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aCl7aWYoMD09PWUuaW5kZXhPZigiLy8iKSYmKGU9Imh0dHA6IitlKSwwPT09ZS5pbmRleE9mKCIjIikpcmV0dXJuITA7aWYoMD09PWUuaW5kZXhPZigiLyIpKXJldHVybiEwO2lmKDA9PT1lLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITA7aWYoMD09PWUucmVwbGFjZSgvXmh0dHAvLCJodHRwcyIpLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITA7aWYoMD09PWUucmVwbGFjZSgvXmh0dHBzLywiaHR0cCIpLmluZGV4T2YodGhpcy5vcmlnaW4oKSkpcmV0dXJuITB9cmV0dXJuITF9LG5hdmlnYXRlZFRvUG9zdDpmdW5jdGlvbihlLGkscyl7dmFyIG89dGhpcyx0PWQuZXhlYyhpKSxuPXQ/dFsyXTpudWxsO2lmKG4pe3ZhciByPWQuZXhlYyhlKTtpZigocj9yWzJdOm51bGwpPT09bil7dy5yZXBsYWNlU3RhdGUoaSk7dmFyIGE9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJjb250cm9sbGVyOnRvcGljIiksbD17fSx1PWEuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7cmV0dXJuIHRbM10mJihsLm5lYXJQb3N0PXRbM10pLGkubWF0Y2goL2xhc3QkLykmJihsLm5lYXJQb3N0PWEuZ2V0KCJtb2RlbC5oaWdoZXN0X3Bvc3RfbnVtYmVyIikpLGwuY2FuY2VsU3VtbWFyeT0hMCx1LnJlZnJlc2gobCkudGhlbihmdW5jdGlvbigpe3ZhciBlPXUuY2xvc2VzdFBvc3ROdW1iZXJGb3IobC5uZWFyUG9zdHx8MSk7YS5zZXRQcm9wZXJ0aWVzKHsibW9kZWwuY3VycmVudFBvc3QiOmUsZW50ZXJlZEF0OihuZXcgRGF0ZSkuZ2V0VGltZSgpLnRvU3RyaW5nKCl9KSxvLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OmhpZ2hsaWdodCIsZSk7dmFyIHQ9e3NraXBJZk9uU2NyZWVuOnMuc2tpcElmT25TY3JlZW4sanVtcEVuZDpzLmp1bXBFbmR9LG49LyMuKyQvLmV4ZWMoaSk7biYmKHQuYW5jaG9yPW5bMF0pLG8uanVtcFRvUG9zdChlLHQpfSksITB9fXJldHVybiExfSxuYXZpZ2F0ZWRUb0hvbWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxpLmRlZmF1bHRIb21lcGFnZSkoKTtyZXR1cm4hKCF3aW5kb3cuaGlzdG9yeXx8IXdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZXx8Ii8iIT09dCYmdCE9PSIvIitufHwiLyIhPT1lJiZlIT09Ii8iK24pJiYodGhpcy5hcHBFdmVudHMudHJpZ2dlcigidXJsOnJlZnJlc2giKSwhMCl9LG9yaWdpbjpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luKygiLyI9PT1EaXNjb3Vyc2UuQmFzZVVyaT8iIjpEaXNjb3Vyc2UuQmFzZVVyaSl9LGdldCByb3V0ZXIoKXtyZXR1cm4gRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJyb3V0ZXI6bWFpbiIpfSxnZXQgYXBwRXZlbnRzKCl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIil9LGNvbnRyb2xsZXJGb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY29udHJvbGxlcjoiK2UpfSxoYW5kbGVVUkw6ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXRoaXMucm91dGVyO3QucmVwbGFjZVVSTCYmdGhpcy5yZXBsYWNlU3RhdGUoZSk7dmFyIGk9ZS5zcGxpdCgiIyIpLHM9dm9pZCAwOzI9PT1pLmxlbmd0aCYmKGU9aVswXSxzPWlbMV0pO3ZhciBvPXZvaWQgMDsobz0iLyI9PT1lfHwiLz8iPT09ZS5zdWJzdHJpbmcoMCwyKT8obi5fcm91dGVyTWljcm9saWIudXBkYXRlVVJMKGUpLG4uaGFuZGxlVVJMKGUpKTpuLnRyYW5zaXRpb25UbyhlKSkuX2Rpc2NvdXJzZV9pbnRlcmNlcHRlZD0hMCwoby5wcm9taXNlfHxvKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHkocyl9KX19KS5jcmVhdGUoKTtlLmRlZmF1bHQ9d30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiXSxmdW5jdGlvbihlLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe2UuYXBwbHkoaSxzKX12YXIgaT12b2lkIDAscz12b2lkIDA7cmV0dXJuIGZ1bmN0aW9uKCl7aT10aGlzLHM9YXJndW1lbnRzLCgwLG8uZGVib3VuY2UpKG51bGwsbix0KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3F1b3RlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17UkVHRVhQOi9cW3F1b3RlPShbXlxdXSopXF0oKD86W1xzXFNdKD8hXFtxdW90ZT1bXlxdXSpcXSkpKj8pXFtcL3F1b3RlXF0vaW0sYnVpbGQ6ZnVuY3Rpb24oZSx0LG4pe2lmKCFlKXJldHVybiIiO249bnx8e307dmFyIGk9KHQ9dHx8IiIpLnJlcGxhY2UodGhpcy5SRUdFWFAsIiIpLnRyaW0oKTtpZigwPT09aS5sZW5ndGgpcmV0dXJuIiI7dmFyIHM9JCgiPGRpdi8+IikuaHRtbChlLmdldCgiY29va2VkIikpLnRleHQoKS5yZXBsYWNlKC9cVy9nLCIiKT09PXQucmVwbGFjZSgvXFcvZywiIiksbz1bbi51c2VybmFtZXx8ZS51c2VybmFtZSwicG9zdDoiKyhuLnBvc3R8fGUucG9zdF9udW1iZXIpLCJ0b3BpYzoiKyhuLnRvcGljfHxlLnRvcGljX2lkKV07cmV0dXJuKChuPW58fHt9KS5mdWxsfHxzKSYmby5wdXNoKCJmdWxsOnRydWUiKSwnW3F1b3RlPSInK28uam9pbigiLCAiKSsnIl1cbicrKG4ucmF3P3Q6aSkrIlxuWy9xdW90ZV1cblxuIn19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT12b2lkIDA7dHJ5e2k9bG9jYWxTdG9yYWdlLCJ0cnVlIj09PWxvY2FsU3RvcmFnZS5kaXNhYmxlTG9jYWxTdG9yYWdlP2k9bnVsbDppLnNhZmVMb2NhbFN0b3JhZ2U9ITB9Y2F0Y2goZSl7aT1udWxsfWZ1bmN0aW9uIHQoZSl7dGhpcy5jb250ZXh0PWV9KHQucHJvdG90eXBlPXthYmFuZG9uTG9jYWw6ZnVuY3Rpb24oKXtpZihpKXtmb3IodmFyIGU9aS5sZW5ndGgtMTswPD1lOyl7dmFyIHQ9aS5rZXkoZSk7dC5zdWJzdHJpbmcoMCx0aGlzLmNvbnRleHQubGVuZ3RoKT09PXRoaXMuY29udGV4dCYmaS5yZW1vdmVJdGVtKHQpLGUtLX1yZXR1cm4hMH19LHJlbW92ZTpmdW5jdGlvbihlKXtpZihpKXJldHVybiBpLnJlbW92ZUl0ZW0odGhpcy5jb250ZXh0K2UpfSxzZXQ6ZnVuY3Rpb24oZSl7aWYoIWkpcmV0dXJuITE7aVt0aGlzLmNvbnRleHQrZS5rZXldPWUudmFsdWV9LHNldE9iamVjdDpmdW5jdGlvbihlKXt0aGlzLnNldCh7a2V5OmUua2V5LHZhbHVlOkpTT04uc3RyaW5naWZ5KGUudmFsdWUpfSl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4gaT9pW3RoaXMuY29udGV4dCtlXTpudWxsfSxnZXRJbnQ6ZnVuY3Rpb24oZSx0KXtpZih0PXR8fDAsIWkpcmV0dXJuIHQ7dmFyIG49cGFyc2VJbnQodGhpcy5nZXQoZSksMTApO3JldHVybiBpc0Zpbml0ZShuKT9uOnR9LGdldE9iamVjdDpmdW5jdGlvbihlKXtpZighaSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UoaVt0aGlzLmNvbnRleHQrZV0pfWNhdGNoKGUpe319fSkuZ2V0SXRlbT10LnByb3RvdHlwZS5nZXQsdC5wcm90b3R5cGUucmVtb3ZlSXRlbT10LnByb3RvdHlwZS5yZW1vdmUsdC5wcm90b3R5cGUuc2V0SXRlbT1mdW5jdGlvbihlLHQpe3RoaXMuc2V0KHtrZXk6ZSx2YWx1ZTp0fSl9LGUuZGVmYXVsdD10fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIixbImV4cG9ydHMiLCJlbWJlci1hZGRvbnMvZm10Il0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucHJvcGVydHlFcXVhbD1mdW5jdGlvbihlLHQpe3JldHVybiBFbWJlci5jb21wdXRlZChlLHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoZSk9PT10aGlzLmdldCh0KX0pfSxlLnByb3BlcnR5Tm90RXF1YWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRW1iZXIuY29tcHV0ZWQoZSx0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KGUpIT09dGhpcy5nZXQodCl9KX0sZS5wcm9wZXJ0eUdyZWF0ZXJUaGFuPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEVtYmVyLmNvbXB1dGVkKGUsdCxmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldChlKT50aGlzLmdldCh0KX0pfSxlLnByb3BlcnR5TGVzc1RoYW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gRW1iZXIuY29tcHV0ZWQoZSx0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KGUpPHRoaXMuZ2V0KHQpfSl9LGUuaTE4bj1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxpPTA7aTx0O2krKyluW2ldPWFyZ3VtZW50c1tpXTt2YXIgcz1uLnBvcCgpO3JldHVybihlPUVtYmVyKS5jb21wdXRlZC5hcHBseShlLG4uY29uY2F0KFtmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIEkxOG4udChvLmRlZmF1bHQuYXBwbHkodm9pZCAwLFtzXS5jb25jYXQocihuLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXQoZSl9KSkpKSl9XSkpfSxlLmZtdD1mdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxpPTA7aTx0O2krKyluW2ldPWFyZ3VtZW50c1tpXTt2YXIgcz1uLnBvcCgpO3JldHVybihlPUVtYmVyKS5jb21wdXRlZC5hcHBseShlLG4uY29uY2F0KFtmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIG8uZGVmYXVsdC5hcHBseSh2b2lkIDAsW3NdLmNvbmNhdChyKG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldChlKX0pKSkpfV0pKX0sZS51cmw9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkodCksaT0wO2k8dDtpKyspbltpXT1hcmd1bWVudHNbaV07dmFyIHM9bi5wb3AoKTtyZXR1cm4oZT1FbWJlcikuY29tcHV0ZWQuYXBwbHkoZSxuLmNvbmNhdChbZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKG8uZGVmYXVsdC5hcHBseSh2b2lkIDAsW3NdLmNvbmNhdChyKG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldChlKX0pKSkpKX1dKSl9LGUuZW5kV2l0aD1mdW5jdGlvbigpe3ZhciBlLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGk9bi5wb3AoKTtyZXR1cm4oZT1FbWJlcikuY29tcHV0ZWQuYXBwbHkoZSxyKG4pLmNvbmNhdChbZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXQoZSl9KS5ldmVyeShmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aC1pLmxlbmd0aCxuPWUubGFzdEluZGV4T2YoaSk7cmV0dXJuLTEhPT1uJiZuPT09dH0pfV0pKX0sZS5zZXR0aW5nPWZ1bmN0aW9uKGUpe3JldHVybiBFbWJlci5jb21wdXRlZChmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzW2VdfSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5tZWRpdW0uZGF0ZV95ZWFyIikpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoSTE4bi50KCJkYXRlcy50aW55LmRhdGVfbW9udGgiKSl9ZnVuY3Rpb24gdShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bjtyZXR1cm4oZS5nZXRGdWxsWWVhcigpPT09KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpP2w6dCkoZSl9ZnVuY3Rpb24gbihlKXtyZXR1cm4gbW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLnRpbnkuZGF0ZV95ZWFyIikpfWZ1bmN0aW9uIGMoZSl7aWYoZSlyZXR1cm4gbW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfd2l0aF95ZWFyIikpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIEkxOG4udCgiZGF0ZXMud3JhcF9hZ28iLHtkYXRlOmV9KX1mdW5jdGlvbiBpKGUsaSl7ZnVuY3Rpb24gdChlLHQpe3ZhciBuPUkxOG4udCgiZGF0ZXMudGlueS4iK2UsdCk7cmV0dXJuIGkmJmkuYWRkQWdvP2Qobik6bn12YXIgbj1NYXRoLnJvdW5kKChuZXcgRGF0ZS1lKS8xZTMpLHM9TWF0aC5yb3VuZChuLzYwKSxvPXM8MT8xOnMscj12b2lkIDA7c3dpdGNoKCEwKXtjYXNlIDA8PW8mJm88PTQ0OnI9dCgieF9taW51dGVzIix7Y291bnQ6b30pO2JyZWFrO2Nhc2UgNDU8PW8mJm88PTg5OnI9dCgiYWJvdXRfeF9ob3VycyIse2NvdW50OjF9KTticmVhaztjYXNlIDkwPD1vJiZvPD0xNDA5OnI9dCgiYWJvdXRfeF9ob3VycyIse2NvdW50Ok1hdGgucm91bmQoby82MCl9KTticmVhaztjYXNlIDA9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnJlbGF0aXZlX2RhdGVfZHVyYXRpb24mJm88PTUyNTU5OTpyPWwoZSk7YnJlYWs7Y2FzZSAxNDEwPD1vJiZvPD0yNTE5OnI9dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9byYmbzw9MTQ0MCooRGlzY291cnNlLlNpdGVTZXR0aW5ncy5yZWxhdGl2ZV9kYXRlX2R1cmF0aW9ufHwxNCk6cj10KCJ4X2RheXMiLHtjb3VudDpNYXRoLnJvdW5kKG8vMTQ0MCl9KTticmVhaztkZWZhdWx0OnI9KGkuZGVmYXVsdEZvcm1hdHx8dSkoZSl9cmV0dXJuIHJ9ZnVuY3Rpb24gcChlLG4pe2Z1bmN0aW9uIHQoZSx0KXtyZXR1cm4gSTE4bi50KCJkYXRlcy5tZWRpdW0iKyhuPyJfd2l0aF9hZ28iOiIiKSsiLiIrZSx0KX12YXIgaT12b2lkIDAscz1NYXRoLnJvdW5kKGUvNjApO3N3aXRjaCghMCl7Y2FzZSAxPD1zJiZzPD01NTppPXQoInhfbWludXRlcyIse2NvdW50OnN9KTticmVhaztjYXNlIDU2PD1zJiZzPD04OTppPXQoInhfaG91cnMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSA5MDw9cyYmczw9MTQwOTppPXQoInhfaG91cnMiLHtjb3VudDpNYXRoLnJvdW5kKHMvNjApfSk7YnJlYWs7Y2FzZSAxNDEwPD1zJiZzPD0yNTE5Omk9dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9cyYmczw9MTI5NTk5Omk9dCgieF9kYXlzIix7Y291bnQ6TWF0aC5yb3VuZCgocy03MjApLzE0NDApfSk7YnJlYWs7Y2FzZSAxMjk2MDA8PXMmJnM8PTUyNTU5OTppPXQoInhfbW9udGhzIix7Y291bnQ6TWF0aC5yb3VuZChzLzQzMjAwKX0pO2JyZWFrO2RlZmF1bHQ6aT10KCJ4X3llYXJzIix7Y291bnQ6TWF0aC5yb3VuZChzLzUyNTYwMCl9KX1yZXR1cm4gaXx8IiZtZGFzaDsifWZ1bmN0aW9uIHMoZSx0KXt2YXIgbj0hMSE9PXQud3JhcEluU3BhbixpPXQubGVhdmVBZ28scz1NYXRoLnJvdW5kKChuZXcgRGF0ZS1lKS8xZTMpO2lmKCFlKXJldHVybiImbWRhc2g7Ijt2YXIgbz1jKGUpLHI9IiIscj1zPDYwP0kxOG4udCgibm93Iik6NDMyZTM8cz91KGUsYSk6cChzLGkpO3JldHVybiBuPyI8c3BhbiBjbGFzcz0nZGF0ZScgdGl0bGU9JyIrbysiJz4iK3IrIjwvc3Bhbj4iOnJ9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPSh0PXR8fHt9KS5mb3JtYXR8fCJ0aW55IjtyZXR1cm4idGlueSI9PT1uP2koZSx0KToibWVkaXVtIj09PW4/cyhlLHQpOiJtZWRpdW0td2l0aC1hZ28iPT09bj9zKGUsXy5leHRlbmQodCx7Zm9ybWF0OiJtZWRpdW0iLGxlYXZlQWdvOiEwfSkpOiJVTktOT1dOIEZPUk1BVCJ9ZnVuY3Rpb24gcihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/SlNPTi5wYXJzZShlKTplfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNob3J0RGF0ZT1hLGUuc21hcnRTaG9ydERhdGU9dSxlLnRpbnlEYXRlWWVhcj1uLGUudG9UaXRsZUNhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXHdcUyovZyxmdW5jdGlvbihlKXtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpfSl9LGUubG9uZ0RhdGU9YyxlLmxvbmdEYXRlTm9ZZWFyPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybjtyZXR1cm4obmV3IERhdGUpLmdldEZ1bGxZZWFyKCkhPT1lLmdldEZ1bGxZZWFyKCk/bW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXIiKSk6bW9tZW50KGUpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRob3V0X3llYXIiKSl9LGUudXBkYXRlUmVsYXRpdmVBZ2U9ZnVuY3Rpb24oZSl7ZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9JCh0aGlzKTtlLmh0bWwobyhuZXcgRGF0ZShlLmRhdGEoInRpbWUiKSkse2Zvcm1hdDplLmRhdGEoImZvcm1hdCIpLHdyYXBJblNwYW46ITF9KSl9KX0sZS5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZT1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiIiO2lmKCtlPT0rbmV3IERhdGUoMCkpcmV0dXJuIiI7dmFyIG49KHQ9dHx8e30pLmZvcm1hdHx8InRpbnkiLGk9IiI7Im1lZGl1bSI9PT1uJiYoaT0iIGRhdGUiLHQubGVhdmVBZ28mJihuPSJtZWRpdW0td2l0aC1hZ28iKSx0LndyYXBJblNwYW49ITEpO3ZhciBzPW8oZSx0KTsidGlueSI9PT1uJiZmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXRjaCgvJ1tcZF17Mn0kLyl9KHMpJiYoaSs9IiB3aXRoLXllYXIiKTt0LnRpdGxlJiYoaSs9IicgdGl0bGU9JyIrYyhlKSk7cmV0dXJuIjxzcGFuIGNsYXNzPSdyZWxhdGl2ZS1kYXRlIitpKyInIGRhdGEtdGltZT0nIitlLmdldFRpbWUoKSsiJyBkYXRhLWZvcm1hdD0nIituKyInPiIrcysiPC9zcGFuPiJ9LGUuZHVyYXRpb25UaW55PWZ1bmN0aW9uKGUsaSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXJldHVybiImbWRhc2g7IjtmdW5jdGlvbiB0KGUsdCl7dmFyIG49STE4bi50KCJkYXRlcy50aW55LiIrZSx0KTtyZXR1cm4gaSYmaS5hZGRBZ28/ZChuKTpufXZhciBuPU1hdGgucm91bmQoZS82MCkscz1uPDE/MTpuLG89dm9pZCAwO3N3aXRjaCghMCl7Y2FzZSBlPD01OTpvPXQoImxlc3NfdGhhbl94X21pbnV0ZXMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSAwPD1zJiZzPD00NDpvPXQoInhfbWludXRlcyIse2NvdW50OnN9KTticmVhaztjYXNlIDQ1PD1zJiZzPD04OTpvPXQoImFib3V0X3hfaG91cnMiLHtjb3VudDoxfSk7YnJlYWs7Y2FzZSA5MDw9cyYmczw9MTQwOTpvPXQoImFib3V0X3hfaG91cnMiLHtjb3VudDpNYXRoLnJvdW5kKHMvNjApfSk7YnJlYWs7Y2FzZSAxNDEwPD1zJiZzPD0yNTE5Om89dCgieF9kYXlzIix7Y291bnQ6MX0pO2JyZWFrO2Nhc2UgMjUyMDw9cyYmczw9MTI5NTk5Om89dCgieF9kYXlzIix7Y291bnQ6TWF0aC5yb3VuZChzLzE0NDApfSk7YnJlYWs7Y2FzZSAxMjk2MDA8PXMmJnM8PTUyNTU5OTpvPXQoInhfbW9udGhzIix7Y291bnQ6TWF0aC5yb3VuZChzLzQzMjAwKX0pO2JyZWFrO2RlZmF1bHQ6dmFyIHI9cy81MjU2MDAsYT1yJTE7bz1hPC4yNT90KCJhYm91dF94X3llYXJzIix7Y291bnQ6TWF0aC5mbG9vcihyKX0pOmE8Ljc1P3QoIm92ZXJfeF95ZWFycyIse2NvdW50Ok1hdGguZmxvb3Iocil9KTp0KCJhbG1vc3RfeF95ZWFycyIse2NvdW50Ok1hdGguZmxvb3IocikrMX0pfXJldHVybiBvfSxlLnJlbGF0aXZlQWdlTWVkaXVtU3Bhbj1wLGUucmVsYXRpdmVBZ2U9byxlLm51bWJlcj1mdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7ZT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoZSkpLGlzTmFOKGUpJiYoZT0wKTt7aWYoOTk5OTk5PGUpcmV0dXJuIHQ9STE4bi50b051bWJlcihlLzFlNix7cHJlY2lzaW9uOjF9KSxJMThuLnQoIm51bWJlci5zaG9ydC5taWxsaW9ucyIse251bWJlcjp0fSk7aWYoOTk5OTk8ZSlyZXR1cm4gdD1JMThuLnRvTnVtYmVyKE1hdGguZmxvb3IoZS8xZTMpLHtwcmVjaXNpb246MH0pLEkxOG4udCgibnVtYmVyLnNob3J0LnRob3VzYW5kcyIse251bWJlcjp0fSk7aWYoOTk5PGUpcmV0dXJuIHQ9STE4bi50b051bWJlcihlLzFlMyx7cHJlY2lzaW9uOjF9KSxJMThuLnQoIm51bWJlci5zaG9ydC50aG91c2FuZHMiLHtudW1iZXI6dH0pfXJldHVybiBlLnRvU3RyaW5nKCl9LGUuZW5zdXJlSlNPTj1yLGUucGxhaW5KU09OPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSksbj0iIjtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtuKz1lKyI6ICIrdFtlXSsiXG4ifSksbn0sZS5wcmV0dHlKU09OPWZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShyKGUpLG51bGwsMil9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaXNSVEw9cixlLmlzTFRSPWZ1bmN0aW9uKGUpe3JldHVybiBzLnRlc3QoZSl9LGUuc2V0VGV4dERpcmVjdGlvbnM9ZnVuY3Rpb24oZSl7ZS5maW5kKCIqIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLnRleHQoKTtpJiYocihpKT9uLmF0dHIoImRpciIsInJ0bCIpOm4uYXR0cigiZGlyIiwibHRyIikpfSl9LGUuc2l0ZURpcj1mdW5jdGlvbigpe289b3x8KCQoImh0bWwiKS5oYXNDbGFzcygicnRsIik/InJ0bCI6Imx0ciIpO3JldHVybiBvfTt2YXIgdD0iQS1aYS16w4Atw5bDmC3DtsO4Lcq4zIAt1pDgoIAt4b+/4rCALe+snO+3vi3vua/vu70t77+/IixuPSLWkS3fv++snS3vt73vubAt77u8IixpPW5ldyBSZWdFeHAoIl5bXiIrdCsiXSpbIituKyJdIikscz1uZXcgUmVnRXhwKCJeW14iK24rIl0qWyIrdCsiXSIpLG89dm9pZCAwO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGkudGVzdChlKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZXllbGluZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jb25maWd1cmVFeWVsaW5lPXM7dmFyIGk9dm9pZCAwLGQ9dm9pZCAwO2Z1bmN0aW9uIHMoZSl7ZD1lPyhpPWUuc2tpcFVwZGF0ZSxlLnJvb3RFbGVtZW50KTooaT0idGVzdCI9PT10LmRlZmF1bHQuZW52aXJvbm1lbnQsbnVsbCl9cygpO2Z1bmN0aW9uIG8oZSl7dGhpcy5zZWxlY3Rvcj1lfW8ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7aWYoIWkpe3ZhciBhPWQ/JChkKS5zY3JvbGxUb3AoKTokKHdpbmRvdykuc2Nyb2xsVG9wKCksZT1kPyQoZCkuaGVpZ2h0KCk6JCh3aW5kb3cpLmhlaWdodCgpLGw9YStlLHU9JCh0aGlzLnNlbGVjdG9yKSx0PWQ/dS5sYXN0KCkucG9zaXRpb24oKTp1Lmxhc3QoKS5vZmZzZXQoKSxjPSExO3JldHVybiB0JiYoYz10LnRvcDw9bCYmdC50b3A+PWEpLHUuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1kP24ucG9zaXRpb24oKS50b3A6bi5vZmZzZXQoKS50b3Ascz1pK24uaGVpZ2h0KCksbz0hMTtyZXR1cm4hbi5pcygiOnZpc2libGUiKXx8KGk8PWwmJmE8PWkmJihvPSEwKSxpPD1hJiZsPD1zJiYobz0hMCksYyYmYTw9cyYmKG89ITApLCFvfHwoYz8oMD09PWUmJnIudHJpZ2dlcigic2F3VG9wIix7ZGV0YWlsOm59KSxlPT09dS5sZW5ndGgtMT9yLnRyaWdnZXIoInNhd0JvdHRvbSIse2RldGFpbDpufSk6dm9pZCAwKTooci50cmlnZ2VyKCJzYXciLHtkZXRhaWw6bn0pLDA9PT1lJiZyLnRyaWdnZXIoInNhd1RvcCIse2RldGFpbDpufSksITEpKSl9KX19LG8ucHJvdG90eXBlLmZsdXNoUmVzdD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7InRlc3QiIT09dC5kZWZhdWx0LmVudmlyb25tZW50JiYkKHRoaXMuc2VsZWN0b3IpLmVhY2goZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi50cmlnZ2VyKCJzYXciLHtkZXRhaWw6JCh0KX0pfSl9LG4uRXZlbnRUYXJnZXQubWl4aW4oby5wcm90b3R5cGUpLGUuZGVmYXVsdD1vfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLFsiZXhwb3J0cyIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj1EaXNjb3Vyc2UuX19jb250YWluZXJfXyxpPW4ubG9va3VwKCJyb3V0ZTphcHBsaWNhdGlvbiIpLHM9aS5jb250cm9sbGVyRm9yKCJtb2RhbCIpO3Muc2V0KCJtb2RhbENsYXNzIix0Lm1vZGFsQ2xhc3MpO3ZhciBvPXQuYWRtaW4/Im1vZGFscy8iK2U6ZTtzLnNldCgibmFtZSIsbyk7dmFyIHI9bi5sb29rdXAoImNvbnRyb2xsZXI6IitvKSxhPXQudGVtcGxhdGVOYW1lfHwoMCxwLmRhc2hlcml6ZSkoZSksbD17aW50bzoibW9kYWwiLG91dGxldDoibW9kYWxCb2R5In07cj9sLmNvbnRyb2xsZXI9bzoobC5jb250cm9sbGVyPSJiYXNpYy1tb2RhbC1ib2R5IixyPW4ubG9va3VwKCJjb250cm9sbGVyOiIrbC5jb250cm9sbGVyKSksdC5hZGRNb2RhbEJvZHlWaWV3JiYobC52aWV3PSJtb2RhbC1ib2R5Iik7dmFyIHU9Im1vZGFsLyIrYSxjPXQuYWRtaW4/ImFkbWluL3RlbXBsYXRlcy8iK3U6dTtpLnJlbmRlcihjLGwpLHQudGl0bGUmJnMuc2V0KCJ0aXRsZSIsSTE4bi50KHQudGl0bGUpKSx0LnBhbmVscz8ocy5zZXRQcm9wZXJ0aWVzKHtwYW5lbHM6dC5wYW5lbHMsc2VsZWN0ZWRQYW5lbDp0LnBhbmVsc1swXX0pLHIuYWN0aW9ucy5vblNlbGVjdFBhbmVsJiZzLnNldCgib25TZWxlY3RQYW5lbCIsci5hY3Rpb25zLm9uU2VsZWN0UGFuZWwpLHMuc2V0KCJtb2RhbENsYXNzIixzLmdldCgibW9kYWxDbGFzcyIpKyIgaGFzLXRhYnMiKSk6cy5zZXRQcm9wZXJ0aWVzKHtwYW5lbHM6W10sc2VsZWN0ZWRQYW5lbDpudWxsfSksci5zZXQoIm1vZGFsIixzKTt2YXIgZD10Lm1vZGVsO3JldHVybiBkJiZyLnNldCgibW9kZWwiLGQpLHIub25TaG93JiZyLm9uU2hvdygpLHIuc2V0KCJmbGFzaE1lc3NhZ2UiLG51bGwpLHJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbGluZyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiQGVtYmVyL29iamVjdC9taXhpbiJdLGZ1bmN0aW9uKGUscyxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TY3JvbGxpbmdET01NZXRob2RzPXZvaWQgMDt2YXIgcj17YmluZE9uU2Nyb2xsOmZ1bmN0aW9uKGUsdCl7dD10fHwiZGVmYXVsdCIsJChkb2N1bWVudCkuYmluZCgidG91Y2htb3ZlLmRpc2NvdXJzZS0iK3QsZSksJCh3aW5kb3cpLmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtIit0LGUpfSx1bmJpbmRPblNjcm9sbDpmdW5jdGlvbihlKXtlPWV8fCJkZWZhdWx0IiwkKHdpbmRvdykudW5iaW5kKCJzY3JvbGwuZGlzY291cnNlLSIrZSksJChkb2N1bWVudCkudW5iaW5kKCJ0b3VjaG1vdmUuZGlzY291cnNlLSIrZSl9LHNjcmVlbk5vdEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gJCh3aW5kb3cpLmhlaWdodCgpPiQoIiNtYWluIikuaGVpZ2h0KCl9fSxuPXQuZGVmYXVsdC5jcmVhdGUoe2JpbmRTY3JvbGxpbmc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztlPWV8fHtkZWJvdW5jZToxMDB9O3ZhciBuPURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgicm91dGVyOm1haW4iKS5fcm91dGVyTWljcm9saWIsaT1mdW5jdGlvbigpe2lmKCFuLmFjdGl2ZVRyYW5zaXRpb24pcmV0dXJuKDAscy5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdCwic2Nyb2xsZWQiKX07ZS5kZWJvdW5jZSYmKGk9KDAsby5kZWZhdWx0KShpLGUuZGVib3VuY2UpKSxyLmJpbmRPblNjcm9sbChpLGUubmFtZSl9LHNjcmVlbk5vdEZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm4gci5zY3JlZW5Ob3RGdWxsKCl9LHVuYmluZFNjcm9sbGluZzpmdW5jdGlvbihlKXtyLnVuYmluZE9uU2Nyb2xsKGUpfX0pO2UuU2Nyb2xsaW5nRE9NTWV0aG9kcz1yLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7ZSBpbnN0YW5jZW9mIEVycm9yJiZjb25zb2xlLmVycm9yKGUuc3RhY2spLCJzdHJpbmciPT10eXBlb2YgZSYmY29uc29sZS5lcnJvcihlKSxlLmpxWEhSJiYoZT1lLmpxWEhSKTt2YXIgbj12b2lkIDAsaT12b2lkIDA7aWYoZS5yZXNwb25zZUpTT04mJihpPWUucmVzcG9uc2VKU09OKSwhaSYmZS5yZXNwb25zZVRleHQpdHJ5e2k9JC5wYXJzZUpTT04oZS5yZXNwb25zZVRleHQpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZS5zdGFjayl9cmV0dXJuIGkmJihpLmVycm9ycyYmMDxpLmVycm9ycy5sZW5ndGg/bj1pLmVycm9ycy5qb2luKCI8YnI+Iik6aS5lcnJvcj9uPWkuZXJyb3I6aS5tZXNzYWdlP249aS5tZXNzYWdlOmkuZmFpbGVkJiYobj1pLmZhaWxlZCkpLG58fGUuc3RhdHVzJiY0MDA8PWUuc3RhdHVzJiYobj1lLnN0YXR1cysiICIrZS5zdGF0dXNUZXh0KSxufHx0fHxJMThuLnQoImdlbmVyaWNfZXJyb3IiKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5leHRyYWN0RXJyb3I9bixlLnRocm93QWpheEVycm9yPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt0aHJvdyB0JiZ0KGUpLG4oZSl9fSxlLnBvcHVwQWpheEVycm9yPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX2Rpc2NvdXJzZV9kaXNwbGF5ZWQpcmV0dXJuO3Rocm93IGJvb3Rib3guYWxlcnQobihlKSksZS5fZGlzY291cnNlX2Rpc3BsYXllZD0hMCxlfX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9yZXN1bHQtc2V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuQXJyYXlQcm94eS5leHRlbmQoKG49KDAsdC5kZWZhdWx0KSgidG90YWxSb3dzIiwibGVuZ3RoIiksbz1zPXtsb2FkaW5nOiExLGxvYWRpbmdNb3JlOiExLHRvdGFsUm93czowLHJlZnJlc2hpbmc6ITEsY29udGVudDpudWxsLGxvYWRNb3JlVXJsOm51bGwscmVmcmVzaFVybDpudWxsLGZpbmRBcmdzOm51bGwsc3RvcmU6bnVsbCxfX3R5cGU6bnVsbCxyZXN1bHRTZXRNZXRhOm51bGwsY2FuTG9hZE1vcmU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdDxlfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmxvYWRNb3JlVXJsO2lmKHQpe3ZhciBuPXRoaXMudG90YWxSb3dzO3JldHVybiB0aGlzLmxlbmd0aDxuJiYhdGhpcy5sb2FkaW5nTW9yZT8odGhpcy5zZXQoImxvYWRpbmdNb3JlIiwhMCksdGhpcy5zdG9yZS5hcHBlbmRSZXN1bHRzKHRoaXMsdGhpcy5fX3R5cGUsdCkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgibG9hZGluZ01vcmUiLCExKX0pKTppLlByb21pc2UucmVzb2x2ZSgpfX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMucmVmcmVzaGluZyl7dmFyIHQ9dGhpcy5yZWZyZXNoVXJsO2lmKHQpcmV0dXJuIHRoaXMuc2V0KCJyZWZyZXNoaW5nIiwhMCksdGhpcy5zdG9yZS5yZWZyZXNoUmVzdWx0cyh0aGlzLHRoaXMuX190eXBlLHQpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInJlZnJlc2hpbmciLCExKX0pfX19LHI9ImNhbkxvYWRNb3JlIixhPVtuXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiY2FuTG9hZE1vcmUiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9yZXN1bHQtc2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiQGVtYmVyL3N0cmluZyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJyc3ZwIl0sZnVuY3Rpb24oZSx1LHQscixjLG4sZCxwLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5mbHVzaE1hcD12b2lkIDA7dmFyIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGE9dm9pZCAwO2Z1bmN0aW9uIG8oKXthPXt9fWZ1bmN0aW9uIGwoZSx0LG4pe3QmJihhW2VdPWFbZV18fHt9LGFbZV1bdF09bil9ZnVuY3Rpb24gbShlLHQpe3ZhciBuPWFbZV07biYmZGVsZXRlIG5bdF19bygpLGUuZGVmYXVsdD11LmRlZmF1bHQuZXh0ZW5kKHtfcGx1cmFsczp7Y2F0ZWdvcnk6ImNhdGVnb3JpZXMiLCJwb3N0LXJlcGx5IjoicG9zdC1yZXBsaWVzIiwicG9zdC1yZXBseS1oaXN0b3J5IjoicG9zdF9yZXBseV9oaXN0b3JpZXMiLHJldmlld2FibGVfaGlzdG9yeToicmV2aWV3YWJsZV9oaXN0b3JpZXMifSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVnaXN0ZXI9dGhpcy5yZWdpc3Rlcnx8KDAsbi5nZXRSZWdpc3RlcikodGhpcyl9LHBsdXJhbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGx1cmFsc1tlXXx8ZSsicyJ9LGFkZFBsdXJhbGl6YXRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9wbHVyYWxzW2VdPXR9LGZpbmRBbGw6ZnVuY3Rpb24oaSxlKXt2YXIgdD10aGlzLHM9dGhpcy5hZGFwdGVyRm9yKGkpLG89dGhpcztyZXR1cm4gcy5maW5kQWxsKHRoaXMsaSxlKS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPXQuX3Jlc3VsdFNldChpLG4pO3JldHVybiBzLmFmdGVyRmluZEFsbCYmKGU9cy5hZnRlckZpbmRBbGwoZSx7bG9va3VwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uX2xvb2t1cFN1YlR5cGUoZSxpLHQsbil9fSkpLGV9KX0sZmluZEZpbHRlcmVkOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5hZGFwdGVyRm9yKHQpLmZpbmQodGhpcyx0LGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4uX2J1aWxkKHQsZSl9KX0sX2h5ZHJhdGVGaW5kUmVzdWx0czpmdW5jdGlvbihlLHQsbil7aWYoIm9iamVjdCI9PT0odm9pZCAwPT09bj8idW5kZWZpbmVkIjpzKG4pKSlyZXR1cm4gdGhpcy5fcmVzdWx0U2V0KHQsZSxuKTt2YXIgaT10aGlzLmFkYXB0ZXJGb3IodCkuYXBpTmFtZUZvcih0KTtyZXR1cm4gdGhpcy5faHlkcmF0ZSh0LGVbKDAsZC51bmRlcnNjb3JlKShpKV0sZSl9LGZpbmRTdGFsZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcyxzPXRoaXMuYWRhcHRlckZvcihlKS5maW5kU3RhbGUodGhpcyxlLHQsbik7cmV0dXJue2hhc1Jlc3VsdHM6dm9pZCAwIT09cyxyZXN1bHRzOnMscmVmcmVzaDpmdW5jdGlvbigpe3JldHVybiBpLmZpbmQoZSx0LG4pfX19LGZpbmQ6ZnVuY3Rpb24oaSxzLG8pe3ZhciByPXRoaXMsYT10aGlzLmFkYXB0ZXJGb3IoaSk7cmV0dXJuIGEuZmluZCh0aGlzLGkscyxvKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0LG49ci5faHlkcmF0ZUZpbmRSZXN1bHRzKGUsaSxzLG8pO3JldHVybiBlLmV4dHJhcyYmbi5zZXQoImV4dHJhcyIsZS5leHRyYXMpLGEuY2FjaGUmJih0PWEuZmluZFN0YWxlKHIsaSxzLG8pLG49ci5fdXBkYXRlU3RhbGUodCxuKSxhLmNhY2hlRmluZChyLGkscyxvLG4pKSxufSl9LF91cGRhdGVTdGFsZTpmdW5jdGlvbihuLGUpe3JldHVybiBuJiZlLnNldCgiY29udGVudCIsZS5nZXQoImNvbnRlbnQiKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9bi5jb250ZW50LmZpbmRCeSgiaWQiLGUuZ2V0KCJpZCIpKTtyZXR1cm4gdD90LnNldFByb3BlcnRpZXMoZSk6dD1lLHR9KSksZX0scmVmcmVzaFJlc3VsdHM6ZnVuY3Rpb24oaSxzLGUpe3ZhciBvPXRoaXMscj10aGlzLmFkYXB0ZXJGb3Iocyk7cmV0dXJuKDAsdC5hamF4KShlKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPSgwLGQudW5kZXJzY29yZSkoby5wbHVyYWxpemUoci5hcGlOYW1lRm9yKHMpKSksbj10W2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5faHlkcmF0ZShzLGUsdCl9KTtpLnNldCgiY29udGVudCIsbil9KX0sYXBwZW5kUmVzdWx0czpmdW5jdGlvbihyLGEsZSl7dmFyIGw9dGhpcyx1PXRoaXMuYWRhcHRlckZvcihhKTtyZXR1cm4oMCx0LmFqYXgpKGUpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9KDAsZC51bmRlcnNjb3JlKShsLnBsdXJhbGl6ZSh1LmFwaU5hbWVGb3IoYSkpKSxuPXQubWV0YXx8dCxpPW5bInRvdGFsX3Jvd3NfIitlXXx8ci5nZXQoInRvdGFsUm93cyIpLHM9blsibG9hZF9tb3JlXyIrZV0sbz10W2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbC5faHlkcmF0ZShhLGUsdCl9KTtyLnNldFByb3BlcnRpZXMoe3RvdGFsUm93czppLGxvYWRNb3JlVXJsOnN9KSxyLmdldCgiY29udGVudCIpLnB1c2hPYmplY3RzKG8pLHIuZ2V0KCJsZW5ndGgiKT49aSYmci5zZXQoImxvYWRNb3JlVXJsIixudWxsKX0pfSx1cGRhdGU6ZnVuY3Rpb24obixpLGUpe3JldHVybiB0aGlzLmFkYXB0ZXJGb3IobikudXBkYXRlKHRoaXMsbixpLGUsZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGUmJmVbbl0mJmVbbl0uaWQmJih0PWZ1bmN0aW9uKGUsdCl7dmFyIG49YVtlXTtpZihuKXt2YXIgaT1uW3RdO3JldHVybiBkZWxldGUgblt0XSxpfX0obixpKSxsKG4sZVtuXS5pZCx0KSksZX0pfSxjcmVhdGVSZWNvcmQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkuaWQ/dGhpcy5faHlkcmF0ZShlLHQpOnRoaXMuX2J1aWxkKGUsdCl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXQoImlzTmV3Iik/KG0odCxuLmdldCgiaWQiKSksaS5Qcm9taXNlLnJlc29sdmUoITApKTp0aGlzLmFkYXB0ZXJGb3IodCkuZGVzdHJveVJlY29yZCh0aGlzLHQsbikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbSh0LG4uZ2V0KCJpZCIpKSxlfSl9LF9yZXN1bHRTZXQ6ZnVuY3Rpb24odCxuLGUpe3ZhciBpPXRoaXMscz10aGlzLmFkYXB0ZXJGb3IodCksbz0oMCxkLnVuZGVyc2NvcmUpKHRoaXMucGx1cmFsaXplKHMuYXBpTmFtZUZvcih0KSkpO2lmKG5bb10pe3ZhciByPW5bb10ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLl9oeWRyYXRlKHQsZSxuKX0pLGE9bi5tZXRhfHxuLGw9e2NvbnRlbnQ6cixmaW5kQXJnczplLHRvdGFsUm93czphWyJ0b3RhbF9yb3dzXyIrb118fHIubGVuZ3RoLGxvYWRNb3JlVXJsOmFbImxvYWRfbW9yZV8iK29dLHJlZnJlc2hVcmw6YVsicmVmcmVzaF8iK29dLHJlc3VsdFNldE1ldGE6bi5tZXRhLHN0b3JlOnRoaXMsX190eXBlOnR9O3JldHVybiBuLmV4dHJhcyYmKGwuZXh0cmFzPW4uZXh0cmFzKSxjLmRlZmF1bHQuY3JlYXRlKGwpfWNvbnNvbGUuZXJyb3IoIkpTT04gcmVzcG9uc2UgaXMgbWlzc2luZyBgIitvKyJgIGtleSIsbil9LF9idWlsZDpmdW5jdGlvbihlLHQpe3Quc3RvcmU9dGhpcyx0Ll9fdHlwZT1lLHQuX19zdGF0ZT10LmlkPyJjcmVhdGVkIjoibmV3Iix0LnRvcGljVHJhY2tpbmdTdGF0ZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpLHQua2V5VmFsdWVTdG9yZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSx0LnNpdGVTZXR0aW5ncz10aGlzLnJlZ2lzdGVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIik7dmFyIG49KHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgibW9kZWw6IitlKXx8ci5kZWZhdWx0KS5jcmVhdGUodCk7cmV0dXJuIGwoZSx0LmlkLG4pLG59LGFkYXB0ZXJGb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucmVnaXN0ZXIubG9va3VwKCJhZGFwdGVyOiIrZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwKCJhZGFwdGVyOnJlc3QiKX0sX2xvb2t1cFN1YlR5cGU6ZnVuY3Rpb24oZSx0LG4saSl7aWYoImNhdGVnb3J5Ij09PWUmJiJ0b3BpYyIhPT10KXJldHVybiBwLmRlZmF1bHQuZmluZEJ5SWQobik7aS5tZXRhJiZpLm1ldGEudHlwZXMmJihlPWkubWV0YS50eXBlc1tlXXx8ZSk7dmFyIHM9dGhpcy5wbHVyYWxpemUoZSksbz1pW3RoaXMucGx1cmFsaXplKGUpXTtpZihvKXt2YXIgcj0iX19oYXNoZWRfIitzLGE9aVtyXTthfHwoYT17fSxvLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlLmlkXT1lfSksaVtyXT1hKTt2YXIgbD1hW25dO2lmKGwpe3ZhciB1PXRoaXMuX2h5ZHJhdGUoZSxsLGkpO3JldHVybiBhW25dPXV9fX0sX2h5ZHJhdGVFbWJlZGRlZDpmdW5jdGlvbihvLHIsYSl7dmFyIGw9dGhpcztPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPS8oLispXF9pZChzPykkLy5leGVjKGUpO3MmJih0PXNbMV0sc1syXT8obj1yW2VdLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbC5fbG9va3VwU3ViVHlwZSh0LG8sZSxhKX0pLHJbbC5wbHVyYWxpemUodCldPW58fFtdLGRlbGV0ZSByW2VdKTooaT1sLl9sb29rdXBTdWJUeXBlKHQsbyxyW2VdLGEpKT8oclt0XT1pLGRlbGV0ZSByW2VdKTooMCx1LnNldCkocix0LG51bGwpKX0pfSxfaHlkcmF0ZTpmdW5jdGlvbihlLHQsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCBoeWRyYXRlICIrZSsiIG9mIGBudWxsYCIpO3ZhciBpPXQuaWQ7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCBoeWRyYXRlICIrZSsiIHdpdGhvdXQgYW4gYGlkYCIpOyIxIj09PShuPW58fHQpLl9fcmVzdF9zZXJpYWxpemVyJiZ0aGlzLl9oeWRyYXRlRW1iZWRkZWQoZSx0LG4pO3ZhciBzPWZ1bmN0aW9uKGUsdCl7dmFyIG49YVtlXTtpZihuKXJldHVybiBuW3RdfShlLGkpO2lmKHM9PT10KXJldHVybiBzO2lmKHMpe2RlbGV0ZSB0LmlkO3ZhciBvPXRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgibW9kZWw6IitlKTtyZXR1cm4gbyYmby5jbGFzcyYmKG89by5jbGFzcyksbz1vfHxyLmRlZmF1bHQscy5zZXRQcm9wZXJ0aWVzKG8ubXVuZ2UodCkpLHQuaWQ9aSxzfXJldHVybiB0aGlzLl9idWlsZChlLHQpfX0pLGUuZmx1c2hNYXA9b30pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9hY3Rpb24tc3VtbWFyeSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxpLG4scyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2FuVG9nZ2xlOigwLHQub3IpKCJjYW5fdW5kbyIsImNhbl9hY3QiKSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2FjdGVkOiExLGNvdW50OnRoaXMuY291bnQtMSxjYW5fYWN0OiEwLGNhbl91bmRvOiExfSl9LHRvZ2dsZVByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWN0ZWQ/dGhpcy51bmRvKGUpOnRoaXMuYWN0KGUpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWN0ZWQ/KHRoaXMudW5kbyhlKSwhMSk6KHRoaXMuYWN0KGUpLCEwKX0sYWN0OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gZT1lfHx7fSx0aGlzLnNldFByb3BlcnRpZXMoe2FjdGVkOiEwLGNvdW50OnRoaXMuY291bnQrMSxjYW5fYWN0OiExLGNhbl91bmRvOiEwfSksKDAsaS5hamF4KSgiL3Bvc3RfYWN0aW9ucyIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOnRoaXMuZmxhZ1RvcGljP3RoaXMuZ2V0KCJmbGFnVG9waWMuaWQiKTp0LmdldCgiaWQiKSxwb3N0X2FjdGlvbl90eXBlX2lkOnRoaXMuaWQsbWVzc2FnZTplLm1lc3NhZ2UsaXNfd2FybmluZzplLmlzV2FybmluZyx0YWtlX2FjdGlvbjplLnRha2VBY3Rpb24sZmxhZ190b3BpYzohIXRoaXMuZmxhZ1RvcGljfSxyZXR1cm5YSFI6ITB9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuLmZsYWdUb3BpY3x8dC51cGRhdGVBY3Rpb25zU3VtbWFyeShlLnJlc3VsdCkse2FjdGVkOiEwLHJlbWFpbmluZzpwYXJzZUludChlLnhoci5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUFjdGlvbnMtUmVtYWluaW5nIil8fDAsMTApLG1heDpwYXJzZUludChlLnhoci5nZXRSZXNwb25zZUhlYWRlcigiRGlzY291cnNlLUFjdGlvbnMtTWF4Iil8fDAsMTApfX0pLmNhdGNoKGZ1bmN0aW9uKGUpeygwLHMucG9wdXBBamF4RXJyb3IpKGUpLG4ucmVtb3ZlQWN0aW9uKHQpfSl9LHVuZG86ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmVtb3ZlQWN0aW9uKHQpLCgwLGkuYWpheCkoIi9wb3N0X2FjdGlvbnMvIit0LmdldCgiaWQiKSx7dHlwZToiREVMRVRFIixkYXRhOntwb3N0X2FjdGlvbl90eXBlX2lkOnRoaXMuaWR9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC51cGRhdGVBY3Rpb25zU3VtbWFyeShlKSx7YWN0ZWQ6ITF9fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbyxyLGEsbCx1LGMsZD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoImlkIiksbz1zPXtkZXNjcmlwdGlvbjpmdW5jdGlvbihlKXt2YXIgdD0iIjtzd2l0Y2goZSl7Y2FzZSAxOnQ9ImZ1bGwiO2JyZWFrO2Nhc2UgMjp0PSJjcmVhdGVfcG9zdCI7YnJlYWs7Y2FzZSAzOnQ9InJlYWRvbmx5In1yZXR1cm4gSTE4bi50KCJwZXJtaXNzaW9uX3R5cGVzLiIrdCl9fSxyPSJkZXNjcmlwdGlvbiIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImRlc2NyaXB0aW9uIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKTtkLkZVTEw9MSxkLkNSRUFURV9QT1NUPTIsZC5SRUFET05MWT0zLGUuZGVmYXVsdD1kfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9wZXJtaXNzaW9uLXR5cGUiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSx0LGEsbixpLHMsbyxyLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaCxiLGcsdix5LHcseCxrLFAsaixULEUsTyxTLEMsTSxEO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgSSxMPWkuZGVmYXVsdC5leHRlbmQoKGM9KDAsdC5vbikoImluaXQiKSxkPSgwLHQub24pKCJpbml0IikscD0oMCx0LmRlZmF1bHQpKCJpZCIpLG09KDAsdC5kZWZhdWx0KSgicGFyZW50Q2F0ZWdvcnkuYW5jZXN0b3JzIiksZj0oMCx0LmRlZmF1bHQpKCJwYXJlbnRDYXRlZ29yeS5sZXZlbCIpLGg9KDAsdC5kZWZhdWx0KSgic3ViY2F0ZWdvcmllcyIpLGI9KDAsdC5kZWZhdWx0KSgic3ViY2F0ZWdvcmllcyIpLGc9KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX2xldmVsIiksdj0oMCx0LmRlZmF1bHQpKCJub3RpZmljYXRpb25fbGV2ZWwiKSx5PSgwLHQuZGVmYXVsdCkoIm5hbWUiKSx3PSgwLHQuZGVmYXVsdCkoIm5hbWUiKSx4PSgwLHQuZGVmYXVsdCkoInVybCIpLGs9KDAsdC5kZWZhdWx0KSgidXJsIiksUD0oMCx0LmRlZmF1bHQpKCJjb2xvciIsInRleHRfY29sb3IiKSxqPSgwLHQuZGVmYXVsdCkoInRvcGljX2NvdW50IiksVD0oMCx0LmRlZmF1bHQpKCJ0b3BpY19jb3VudCIsInN1YmNhdGVnb3JpZXMuW10iKSxFPSgwLHQuZGVmYXVsdCkoInRvcGljcyIpLE89KDAsdC5kZWZhdWx0KSgidG9waWNzIiksUz0oMCx0LmRlZmF1bHQpKCJpZCIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSxDPSgwLHQuZGVmYXVsdCkoImlkIiwidG9waWNUcmFja2luZ1N0YXRlLm1lc3NhZ2VDb3VudCIpLE09KDAsdC5kZWZhdWx0KSgiaWQiKSx1KEQ9e3Blcm1pc3Npb25zOm51bGwsc2V0dXBHcm91cHNBbmRQZXJtaXNzaW9uczpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5hdmFpbGFibGVfZ3JvdXBzO3QmJih0aGlzLnNldCgiYXZhaWxhYmxlR3JvdXBzIix0KSwoZT10aGlzLmdyb3VwX3Blcm1pc3Npb25zKSYmdGhpcy5zZXQoInBlcm1pc3Npb25zIixlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5yZW1vdmVPYmplY3QoZS5ncm91cF9uYW1lKSx7Z3JvdXBfbmFtZTplLmdyb3VwX25hbWUscGVybWlzc2lvbjpzLmRlZmF1bHQuY3JlYXRlKHtpZDplLnBlcm1pc3Npb25fdHlwZX0pfX0pKSl9LHNldHVwUmVxdWlyZWRUYWdHcm91cHM6ZnVuY3Rpb24oKXt0aGlzLnJlcXVpcmVkX3RhZ19ncm91cF9uYW1lJiZ0aGlzLnNldCgicmVxdWlyZWRfdGFnX2dyb3VwcyIsW3RoaXMucmVxdWlyZWRfdGFnX2dyb3VwX25hbWVdKX0sYXZhaWxhYmxlUGVybWlzc2lvbnM6ZnVuY3Rpb24oKXtyZXR1cm5bcy5kZWZhdWx0LmNyZWF0ZSh7aWQ6cy5kZWZhdWx0LkZVTEx9KSxzLmRlZmF1bHQuY3JlYXRlKHtpZDpzLmRlZmF1bHQuQ1JFQVRFX1BPU1R9KSxzLmRlZmF1bHQuY3JlYXRlKHtpZDpzLmRlZmF1bHQuUkVBRE9OTFl9KV19LHNlYXJjaENvbnRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6ImNhdGVnb3J5IixpZDplLGNhdGVnb3J5OnRoaXN9fSxhbmNlc3RvcnM6ZnVuY3Rpb24oZSl7cmV0dXJuW10uY29uY2F0KGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0oZXx8W10pLFt0aGlzXSl9LGxldmVsOmZ1bmN0aW9uKGUpe3JldHVybihlfHwtMSkrMX0saXNQYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZS5sZW5ndGh9LGlzR3JhbmRQYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWJjYXRlZ29yaWVzJiYwPGUuc3ViY2F0ZWdvcmllcy5sZW5ndGh9KX0saXNNdXRlZDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PW8uTm90aWZpY2F0aW9uTGV2ZWxzLk1VVEVEfSxub3RpZmljYXRpb25MZXZlbFN0cmluZzpmdW5jdGlvbih0KXt2YXIgZT1PYmplY3Qua2V5cyhvLk5vdGlmaWNhdGlvbkxldmVscykuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gby5Ob3RpZmljYXRpb25MZXZlbHNbZV09PT10fSk7aWYoZSlyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfSx1cmw6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL2MvIitMLnNsdWdGb3IodGhpcykrIi8iK3RoaXMuaWQpfSxmdWxsU2x1ZzpmdW5jdGlvbigpe3JldHVybiBMLnNsdWdGb3IodGhpcykucmVwbGFjZSgvXC8vZywiLSIpfSxuYW1lTG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdW5yZWFkVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlKyIvbC91bnJlYWQifSxuZXdVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrIi9sL25ldyJ9LHN0eWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImJhY2tncm91bmQtY29sb3I6ICMiK2UrIjsgY29sb3I6ICMiK3R9LG1vcmVUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+KHRoaXMubnVtX2ZlYXR1cmVkX3RvcGljc3x8Mil9LHRvdGFsVG9waWNDb3VudDpmdW5jdGlvbih0LGUpe3JldHVybiBlJiZlLmZvckVhY2goZnVuY3Rpb24oZSl7dCs9ZS50b3BpY19jb3VudH0pLHR9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmlkLHQ9ZT8iL2NhdGVnb3JpZXMvIitlOiIvY2F0ZWdvcmllcyI7cmV0dXJuKDAsbi5hamF4KSh0LHtkYXRhOntuYW1lOnRoaXMubmFtZSxzbHVnOnRoaXMuc2x1Zyxjb2xvcjp0aGlzLmNvbG9yLHRleHRfY29sb3I6dGhpcy50ZXh0X2NvbG9yLHNlY3VyZTp0aGlzLnNlY3VyZSxwZXJtaXNzaW9uczp0aGlzLl9wZXJtaXNzaW9uc0ZvclVwZGF0ZSgpLGF1dG9fY2xvc2VfaG91cnM6dGhpcy5hdXRvX2Nsb3NlX2hvdXJzLGF1dG9fY2xvc2VfYmFzZWRfb25fbGFzdF9wb3N0OnRoaXMuZ2V0KCJhdXRvX2Nsb3NlX2Jhc2VkX29uX2xhc3RfcG9zdCIpLHBvc2l0aW9uOnRoaXMucG9zaXRpb24sZW1haWxfaW46dGhpcy5lbWFpbF9pbixlbWFpbF9pbl9hbGxvd19zdHJhbmdlcnM6dGhpcy5lbWFpbF9pbl9hbGxvd19zdHJhbmdlcnMsbWFpbGluZ2xpc3RfbWlycm9yOnRoaXMubWFpbGluZ2xpc3RfbWlycm9yLHBhcmVudF9jYXRlZ29yeV9pZDp0aGlzLnBhcmVudF9jYXRlZ29yeV9pZCx1cGxvYWRlZF9sb2dvX2lkOnRoaXMuZ2V0KCJ1cGxvYWRlZF9sb2dvLmlkIiksdXBsb2FkZWRfYmFja2dyb3VuZF9pZDp0aGlzLmdldCgidXBsb2FkZWRfYmFja2dyb3VuZC5pZCIpLGFsbG93X2JhZGdlczp0aGlzLmFsbG93X2JhZGdlcyxjdXN0b21fZmllbGRzOnRoaXMuY3VzdG9tX2ZpZWxkcyx0b3BpY190ZW1wbGF0ZTp0aGlzLnRvcGljX3RlbXBsYXRlLGFsbF90b3BpY3Nfd2lraTp0aGlzLmFsbF90b3BpY3Nfd2lraSxhbGxvd2VkX3RhZ3M6dGhpcy5hbGxvd2VkX3RhZ3MsYWxsb3dlZF90YWdfZ3JvdXBzOnRoaXMuYWxsb3dlZF90YWdfZ3JvdXBzLGFsbG93X2dsb2JhbF90YWdzOnRoaXMuYWxsb3dfZ2xvYmFsX3RhZ3MscmVxdWlyZWRfdGFnX2dyb3VwX25hbWU6dGhpcy5yZXF1aXJlZF90YWdfZ3JvdXBzP3RoaXMucmVxdWlyZWRfdGFnX2dyb3Vwc1swXTpudWxsLG1pbl90YWdzX2Zyb21fcmVxdWlyZWRfZ3JvdXA6dGhpcy5taW5fdGFnc19mcm9tX3JlcXVpcmVkX2dyb3VwLHNvcnRfb3JkZXI6dGhpcy5zb3J0X29yZGVyLHNvcnRfYXNjZW5kaW5nOnRoaXMuc29ydF9hc2NlbmRpbmcsdG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkOnRoaXMudG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkLHNob3dfc3ViY2F0ZWdvcnlfbGlzdDp0aGlzLnNob3dfc3ViY2F0ZWdvcnlfbGlzdCxudW1fZmVhdHVyZWRfdG9waWNzOnRoaXMubnVtX2ZlYXR1cmVkX3RvcGljcyxkZWZhdWx0X3ZpZXc6dGhpcy5kZWZhdWx0X3ZpZXcsc3ViY2F0ZWdvcnlfbGlzdF9zdHlsZTp0aGlzLnN1YmNhdGVnb3J5X2xpc3Rfc3R5bGUsZGVmYXVsdF90b3BfcGVyaW9kOnRoaXMuZGVmYXVsdF90b3BfcGVyaW9kLG1pbmltdW1fcmVxdWlyZWRfdGFnczp0aGlzLm1pbmltdW1fcmVxdWlyZWRfdGFncyxuYXZpZ2F0ZV90b19maXJzdF9wb3N0X2FmdGVyX3JlYWQ6dGhpcy5nZXQoIm5hdmlnYXRlX3RvX2ZpcnN0X3Bvc3RfYWZ0ZXJfcmVhZCIpLHNlYXJjaF9wcmlvcml0eTp0aGlzLnNlYXJjaF9wcmlvcml0eSxyZXZpZXdhYmxlX2J5X2dyb3VwX25hbWU6dGhpcy5yZXZpZXdhYmxlX2J5X2dyb3VwX25hbWV9LHR5cGU6ZT8iUFVUIjoiUE9TVCJ9KX0sX3Blcm1pc3Npb25zRm9yVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wZXJtaXNzaW9ucyx0PXt9O3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHRbZS5ncm91cF9uYW1lXT1lLnBlcm1pc3Npb24uaWR9KSx0fSxkZXN0cm95OmZ1bmN0aW9uKCl7cmV0dXJuKDAsbi5hamF4KSgiL2NhdGVnb3JpZXMvIisodGhpcy5pZHx8dGhpcy5zbHVnKSx7dHlwZToiREVMRVRFIn0pfSxhZGRQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMucGVybWlzc2lvbnMuYWRkT2JqZWN0KGUpLHRoaXMuYXZhaWxhYmxlR3JvdXBzLnJlbW92ZU9iamVjdChlLmdyb3VwX25hbWUpfSxyZW1vdmVQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMucGVybWlzc2lvbnMucmVtb3ZlT2JqZWN0KGUpLHRoaXMuYXZhaWxhYmxlR3JvdXBzLmFkZE9iamVjdChlLmdyb3VwX25hbWUpfSxsYXRlc3RUb3BpYzpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aClyZXR1cm4gZVswXX0sZmVhdHVyZWRUb3BpY3M6ZnVuY3Rpb24oZSl7aWYoZSYmZS5sZW5ndGgpcmV0dXJuIGUuc2xpY2UoMCx0aGlzLm51bV9mZWF0dXJlZF90b3BpY3N8fDIpfSx1bnJlYWRUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9waWNUcmFja2luZ1N0YXRlLmNvdW50VW5yZWFkKGUpfSxuZXdUb3BpY3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9waWNUcmFja2luZ1N0YXRlLmNvdW50TmV3KGUpfSxzZXROb3RpZmljYXRpb246ZnVuY3Rpb24oZSl7dGhpcy5zZXQoIm5vdGlmaWNhdGlvbl9sZXZlbCIsZSk7dmFyIHQ9Ii9jYXRlZ29yeS8iK3RoaXMuaWQrIi9ub3RpZmljYXRpb25zIjtyZXR1cm4oMCxuLmFqYXgpKHQse2RhdGE6e25vdGlmaWNhdGlvbl9sZXZlbDplfSx0eXBlOiJQT1NUIn0pfSxpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpfX0sInNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsInNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMiKSxEKSx1KEQsInNldHVwUmVxdWlyZWRUYWdHcm91cHMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsInNldHVwUmVxdWlyZWRUYWdHcm91cHMiKSxEKSx1KEQsImF2YWlsYWJsZVBlcm1pc3Npb25zIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImF2YWlsYWJsZVBlcm1pc3Npb25zIiksRCksdShELCJzZWFyY2hDb250ZXh0IixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJzZWFyY2hDb250ZXh0IiksRCksdShELCJhbmNlc3RvcnMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImFuY2VzdG9ycyIpLEQpLHUoRCwibGV2ZWwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImxldmVsIiksRCksdShELCJpc1BhcmVudCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwiaXNQYXJlbnQiKSxEKSx1KEQsImlzR3JhbmRQYXJlbnQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImlzR3JhbmRQYXJlbnQiKSxEKSx1KEQsImlzTXV0ZWQiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImlzTXV0ZWQiKSxEKSx1KEQsIm5vdGlmaWNhdGlvbkxldmVsU3RyaW5nIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJub3RpZmljYXRpb25MZXZlbFN0cmluZyIpLEQpLHUoRCwidXJsIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1cmwiKSxEKSx1KEQsImZ1bGxTbHVnIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsImZ1bGxTbHVnIiksRCksdShELCJuYW1lTG93ZXIiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsIm5hbWVMb3dlciIpLEQpLHUoRCwidW5yZWFkVXJsIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1bnJlYWRVcmwiKSxEKSx1KEQsIm5ld1VybCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibmV3VXJsIiksRCksdShELCJzdHlsZSIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwic3R5bGUiKSxEKSx1KEQsIm1vcmVUb3BpY3MiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQsIm1vcmVUb3BpY3MiKSxEKSx1KEQsInRvdGFsVG9waWNDb3VudCIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwidG90YWxUb3BpY0NvdW50IiksRCksdShELCJsYXRlc3RUb3BpYyIsW0VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibGF0ZXN0VG9waWMiKSxEKSx1KEQsImZlYXR1cmVkVG9waWNzIixbT10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJmZWF0dXJlZFRvcGljcyIpLEQpLHUoRCwidW5yZWFkVG9waWNzIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJ1bnJlYWRUb3BpY3MiKSxEKSx1KEQsIm5ld1RvcGljcyIsW0NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwibmV3VG9waWNzIiksRCksdShELCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSIsW01dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRCwiaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiKSxEKSxEKSk7TC5yZW9wZW5DbGFzcyh7ZmluZFVuY2F0ZWdvcml6ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gST1JfHxMLmxpc3QoKS5maW5kQnkoImlkIixsLmRlZmF1bHQuY3VycmVudFByb3AoInVuY2F0ZWdvcml6ZWRfY2F0ZWdvcnlfaWQiKSl9LHNsdWdGb3I6ZnVuY3Rpb24oZSx0KXt2YXIgbj0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PXQ/dDoiLyI7aWYoIWUpcmV0dXJuIiI7dmFyIGk9KDAsYS5nZXQpKGUsInBhcmVudENhdGVnb3J5Iikscz0iIjtpJiYocz1MLnNsdWdGb3IoaSkrbik7dmFyIG89KDAsYS5nZXQpKGUsImlkIikscj0oMCxhLmdldCkoZSwic2x1ZyIpO3JldHVybiByJiYwIT09ci50cmltKCkubGVuZ3RoP3MrcjoiIitzK28rIi1jYXRlZ29yeSJ9LGxpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjYXRlZ29yaWVzTGlzdCIpfSxsaXN0QnlBY3Rpdml0eTpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHQuY3VycmVudFByb3AoInNvcnRlZENhdGVnb3JpZXMiKX0sX2lkTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIGwuZGVmYXVsdC5jdXJyZW50UHJvcCgiY2F0ZWdvcmllc0J5SWQiKX0sZmluZFNpbmdsZUJ5U2x1ZzpmdW5jdGlvbih0KXtyZXR1cm4iZW5jb2RlZCIhPT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNsdWdfZ2VuZXJhdGlvbl9tZXRob2Q/TC5saXN0KCkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gTC5zbHVnRm9yKGUpPT09dH0pOkwubGlzdCgpLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIEwuc2x1Z0ZvcihlKT09PWVuY29kZVVSSSh0KX0pfSxmaW5kQnlJZDpmdW5jdGlvbihlKXtpZihlKXJldHVybiBMLl9pZE1hcCgpW2VdfSxmaW5kQnlJZHM6ZnVuY3Rpb24oZSl7dmFyIG49W107cmV0dXJuKDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOltdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PUwuZmluZEJ5SWQoZSk7dCYmbi5wdXNoKHQpfSksbn0sZmluZEJ5U2x1Z0FuZFBhcmVudDpmdW5jdGlvbih0LG4pe3JldHVybiJlbmNvZGVkIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2x1Z19nZW5lcmF0aW9uX21ldGhvZCYmKHQ9ZW5jb2RlVVJJKHQpKSxMLmxpc3QoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNsdWc9PT10JiYoZS5wYXJlbnRDYXRlZ29yeXx8bnVsbCk9PT1ufSl9LGZpbmRCeVNsdWdQYXRoOmZ1bmN0aW9uKGUpe3ZhciB0PW51bGwsbj0hMCxpPSExLHM9dm9pZCAwO3RyeXtmb3IodmFyIG8scj1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KG89ci5uZXh0KCkpLmRvbmUpO249ITApe3ZhciBhPW8udmFsdWU7aWYoISh0PXRoaXMuZmluZEJ5U2x1Z0FuZFBhcmVudChhLHQpKSlyZXR1cm4gbnVsbH19Y2F0Y2goZSl7aT0hMCxzPWV9ZmluYWxseXt0cnl7IW4mJnIucmV0dXJuJiZyLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBzfX1yZXR1cm4gdH0sZmluZEJ5U2x1Z1BhdGhXaXRoSUQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKTsiZW5jb2RlZCI9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNsdWdfZ2VuZXJhdGlvbl9tZXRob2QmJih0PXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBkZWNvZGVVUkkoZSl9KSk7dmFyIG4saSxzPW51bGw7cmV0dXJuIDA8dC5sZW5ndGgmJnRbdC5sZW5ndGgtMV0ubWF0Y2goL15cZCskLyk/KG49cGFyc2VJbnQodC5wb3AoKSwxMCkscz1MLmZpbmRCeUlkKG4pKTohKHM9TC5maW5kQnlTbHVnUGF0aCh0KSkmJjA8dC5sZW5ndGgmJnRbdC5sZW5ndGgtMV0ubWF0Y2goL15cZCstY2F0ZWdvcnkvKSYmKGk9cGFyc2VJbnQodC5wb3AoKSwxMCkscz1MLmZpbmRCeUlkKGkpKSxzfSxmaW5kQnlTbHVnOmZ1bmN0aW9uKHQsbil7dmFyIGU9TC5saXN0KCksaT12b2lkIDA7aWYobil7dmFyIHM9TC5maW5kU2luZ2xlQnlTbHVnKG4pO2lmKHMpe2lmKCJub25lIj09PXQpcmV0dXJuIHM7aT1lLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpPT09cyYmKCJlbmNvZGVkIiE9PURpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2x1Z19nZW5lcmF0aW9uX21ldGhvZCYmTC5zbHVnRm9yKGUpPT09bisiLyIrdHx8ImVuY29kZWQiPT09RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zbHVnX2dlbmVyYXRpb25fbWV0aG9kJiZMLnNsdWdGb3IoZSk9PT1lbmNvZGVVUkkobikrIi8iK2VuY29kZVVSSSh0KSl9KX19ZWxzZSBpZigoaT1MLmZpbmRTaW5nbGVCeVNsdWcodCkpJiZpLmdldCgicGFyZW50Q2F0ZWdvcnkiKSlyZXR1cm47cmV0dXJuIGk9aXx8ZS5maW5kQnkoImlkIixwYXJzZUludCh0LDEwKSl9LHJlbG9hZEJ5SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5hamF4KSgiL2MvIitlKyIvc2hvdy5qc29uIil9LHJlbG9hZEJ5U2x1ZzpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLG4uYWpheCkoIi9jLyIrdCsiLyIrZSsiL2ZpbmRfYnlfc2x1Zy5qc29uIik6KDAsbi5hamF4KSgiL2MvIitlKyIvZmluZF9ieV9zbHVnLmpzb24iKX0scmVsb2FkQnlTbHVnUGF0aDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmFqYXgpKCIvYy8iK2UrIi9maW5kX2J5X3NsdWcuanNvbiIpfSxzZWFyY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbj01O2lmKHQpe2lmKDA9PT10LmxpbWl0KXJldHVybltdO3QubGltaXQmJihuPXQubGltaXQpfXZhciBpPSIiPT09ZSxzPWU7aXx8KGU9KHM9ZT1lLnRvTG93ZXJDYXNlKCkpLnJlcGxhY2UoLy0vZywiICIpKTtmb3IodmFyIG89TC5saXN0QnlBY3Rpdml0eSgpLHI9by5sZW5ndGgsYT1bXSxsPWZ1bmN0aW9uKCl7cmV0dXJuIGEubGVuZ3RoPT09bn0sdT0wO3U8ciYmIWwoKTt1Kyspe3ZhciBjPW9bdV07KCFpfHxjLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikpJiYoaXx8MCE9PWMuZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpJiYwIT09Yy5nZXQoInNsdWciKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocykpfHxhLnB1c2goYyl9aWYoIWwoKSlmb3IodT0wO3U8ciYmIWwoKTt1Kyspe3ZhciBkPW9bdV07IWkmJigwPGQuZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpfHwwPGQuZ2V0KCJzbHVnIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKHMpKSYmLTE9PT1hLmluZGV4T2YoZCkmJmEucHVzaChkKX1yZXR1cm4gXy5zb3J0QnkoYSxmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoInJlYWRfcmVzdHJpY3RlZCIpfSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiQ2F0ZWdvcnkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmRlZmF1bHQpKCJJbXBvcnQgdGhlIENhdGVnb3J5IGNsYXNzIGluc3RlYWQgb2YgdXNpbmcgRGlzY291cnNlLkNhdGVnb3J5Iix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksTH19KSxlLmRlZmF1bHQ9TH0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiIsImRpc2NvdXJzZS9tb2RlbHMvYWN0aW9uLXN1bW1hcnkiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJwcmV0dHktdGV4dC9jZW5zb3JlZC13b3JkcyIsImRpc2NvdXJzZS9saWIvdGV4dCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxsLHQsdSxuLGkscyxvLHIsYSxjLGQscCxtLGYsaCxiLGcsdix5LHcpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB4KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBrLFAsaixULEUsTyxTLEMsTSxELEksTCxBLE4seixVLEYsQixSLHEsSCwkLEssVyxWLEcsWSxKLFgsUSxaLGVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLklEX0NPTlNUUkFJTlQ9dm9pZCAwLGUubG9hZFRvcGljVmlldz1mdW5jdGlvbih0LGUpe3ZhciBuPV8ubWVyZ2Uoe30sZSksaT0iIitEaXNjb3Vyc2UuZ2V0VVJMKCIvdC8iKSt0LmlkLHM9KG4ubmVhclBvc3Q/aSsiLyIrbi5uZWFyUG9zdDppKSsiLmpzb24iO3JldHVybiBkZWxldGUgbi5uZWFyUG9zdCxkZWxldGUgbi5fX3R5cGUsZGVsZXRlIG4uc3RvcmUsbS5kZWZhdWx0LmdldEFuZFJlbW92ZSgidG9waWNfIit0LmlkLGZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5hamF4KShzLHtkYXRhOm59KX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQudXBkYXRlRnJvbUpzb24oZSksZX0pfSxlLm1vdmVQb3N0cz1mdW5jdGlvbihlLHQpe3JldHVybigwLHUuYWpheCkoIi90LyIrZSsiL21vdmUtcG9zdHMiLHt0eXBlOiJQT1NUIixkYXRhOnR9KS50aGVuKG5lKX0sZS5tZXJnZVRvcGljPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdS5hamF4KSgiL3QvIitlKyIvbWVyZ2UtdG9waWMiLHt0eXBlOiJQT1NUIixkYXRhOnR9KS50aGVuKG5lKX07ZS5JRF9DT05TVFJBSU5UPS9eXGQrJC87dmFyIHRlPWkuZGVmYXVsdC5leHRlbmQoKGs9KDAsaC5kZWZhdWx0KSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwiaGlnaGVzdF9wb3N0X251bWJlciIpLFA9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5maXJzdE9iamVjdCIpLGo9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5bXSIpLFQ9KDAsaC5kZWZhdWx0KSgicG9zdGVycy5bXSIsInBhcnRpY2lwYW50cy5bXSIsImFsbG93ZWRfdXNlcl9jb3VudCIpLEU9KDAsaC5kZWZhdWx0KSgiZmFuY3lfdGl0bGUiKSxPPSgwLGguZGVmYXVsdCkoImJ1bXBlZF9hdCIsImNyZWF0ZWRBdCIpLFM9KDAsaC5kZWZhdWx0KSgiYnVtcGVkQXQiLCJjcmVhdGVkQXQiKSxDPSgwLGguZGVmYXVsdCkoImNyZWF0ZWRfYXQiKSxNPSgwLGguZGVmYXVsdCkoInRhZ3MiKSxEPSgwLGguZGVmYXVsdCkoInJlbGF0ZWRfbWVzc2FnZXMiKSxJPSgwLGguZGVmYXVsdCkoInN1Z2dlc3RlZF90b3BpY3MiKSxMPSgwLGguZGVmYXVsdCkoInBvc3RzX2NvdW50IiksQT0oMCxoLmRlZmF1bHQpKCJpZCIpLE49KDAsaC5vbikoImluaXQiKSx6PSgwLGgub2JzZXJ2ZXMpKCJjYXRlZ29yeV9pZCIpLFU9KDAsaC5vYnNlcnZlcykoImNhdGVnb3J5TmFtZSIpLEY9KDAsaC5kZWZhdWx0KSgidGFncyIpLEI9KDAsaC5kZWZhdWx0KSgidXJsIiksUj0oMCxoLmRlZmF1bHQpKCJpZCIsInNsdWciKSxxPSgwLGguZGVmYXVsdCkoIm5ld19wb3N0cyIsInVucmVhZCIpLEg9KDAsaC5kZWZhdWx0KSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwidXJsIiksJD0oMCxoLmRlZmF1bHQpKCJsYXN0X3JlYWRfcG9zdF9udW1iZXIiLCJoaWdoZXN0X3Bvc3RfbnVtYmVyIiwidXJsIiksSz0oMCxoLmRlZmF1bHQpKCJoaWdoZXN0X3Bvc3RfbnVtYmVyIiwidXJsIiksVz0oMCxoLmRlZmF1bHQpKCJ1cmwiKSxWPSgwLGguZGVmYXVsdCkoInVybCIpLEc9KDAsaC5kZWZhdWx0KSgibGFzdF9wb3N0ZXIudXNlcm5hbWUiKSxZPSgwLGguZGVmYXVsdCkoIm5ld19wb3N0cyIsImlkIiksSj0oMCxoLmRlZmF1bHQpKCJ2aWV3cyIpLFg9KDAsaC5kZWZhdWx0KSgiYXJjaGV0eXBlIiksUT0oMCxoLmRlZmF1bHQpKCJleGNlcnB0IiksWj0oMCxoLmRlZmF1bHQpKCJleGNlcnB0IikseChlZT17bWVzc2FnZTpudWxsLGVycm9yTG9hZGluZzohMSx2aXNpdGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ8PWV9LGNyZWF0b3I6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUudXNlcn0sbGFzdFBvc3RlcjpmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMDtyZXR1cm4gZSYmMDxlLmxlbmd0aCYmKG49KHQ9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0cmFzJiYwPD1lLmV4dHJhcy5pbmRleE9mKCJsYXRlc3QiKX0pWzBdKSYmdC51c2VyKSxufHx0aGlzLmNyZWF0b3J9LGZlYXR1cmVkVXNlcnM6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbyxyPWUsYT1yLmxlbmd0aDtyZXR1cm4gdGhpcy5pc1ByaXZhdGVNZXNzYWdlJiZ0JiZhPDUmJihpPTAsMTxhJiYoKHM9clthLTFdKS5leHRyYXMmJnMuZXh0cmFzLmluY2x1ZGVzKCJsYXRlc3QiKSYmKGk9MSkpLG89ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlciYmZS51c2VyLmlkfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSksdC5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiFvLmluY2x1ZGVzKGUudXNlcl9pZCkmJihyLnNwbGljZShyLmxlbmd0aC1pLDAsZSksNT09PXIubGVuZ3RoKX0pKSx0aGlzLmlzUHJpdmF0ZU1lc3NhZ2UmJjU8biYmKHIuc3BsaWNlKDMsMSksci5wdXNoKHttb3JlQ291bnQ6IisiKyhuLTUrMSl9KSkscn0sZmFuY3lUaXRsZTpmdW5jdGlvbihlKXt2YXIgdD0oMCxkLmNlbnNvcikoKDAscC5lbW9qaVVuZXNjYXBlKShlKXx8IiIseS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjZW5zb3JlZF9yZWdleHAiKSk7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbj8nPHNwYW4gZGlyPSInKygoMCxyLmlzUlRMKShlKT8icnRsIjoibHRyIikrJyI+Jyt0KyI8L3NwYW4+Ijp0fSxidW1wZWRBdDpmdW5jdGlvbihlLHQpe3JldHVybiBlP25ldyBEYXRlKGUpOnR9LGJ1bXBlZEF0VGl0bGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1JMThuLnQoImZpcnN0X3Bvc3QiKSxpPUkxOG4udCgibGFzdF9wb3N0Iik7cmV0dXJuIG4rIjogIisoMCxvLmxvbmdEYXRlKSh0KSsiXG4iK2krIjogIisoMCxvLmxvbmdEYXRlKShlKX0sY3JlYXRlZEF0OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRGF0ZShlKX0scG9zdFN0cmVhbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgicG9zdFN0cmVhbSIse2lkOnRoaXMuaWQsdG9waWM6dGhpc30pfSx2aXNpYmxlTGlzdFRhZ3M6ZnVuY3Rpb24oZSl7aWYoIWV8fCFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnN1cHByZXNzX292ZXJsYXBwaW5nX3RhZ3NfaW5fbGlzdClyZXR1cm4gZTt2YXIgdD10aGlzLnRpdGxlLG49W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXstMT09PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGUpJiZuLnB1c2goZSl9KSxufSxyZWxhdGVkTWVzc2FnZXM6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9dGhpcy5zdG9yZTtyZXR1cm4gdGhpcy5zZXQoInJlbGF0ZWRfbWVzc2FnZXMiLGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNyZWF0ZVJlY29yZCgidG9waWMiLGUpfSkpfX0sc3VnZ2VzdGVkVG9waWNzOmZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PXRoaXMuc3RvcmU7cmV0dXJuIHRoaXMuc2V0KCJzdWdnZXN0ZWRfdG9waWNzIixlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5jcmVhdGVSZWNvcmQoInRvcGljIixlKX0pKX19LHJlcGx5Q291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUtMX0sZGV0YWlsczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidG9waWNEZXRhaWxzIix7aWQ6dGhpcy5pZCx0b3BpYzp0aGlzfSl9LGludmlzaWJsZTooMCx0Lm5vdCkoInZpc2libGUiKSxkZWxldGVkOigwLHQubm90RW1wdHkpKCJkZWxldGVkX2F0Iiksc2VhcmNoQ29udGV4dDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidG9waWMiLGlkOmV9fSxfY2F0ZWdvcnlJZENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY2F0ZWdvcnkiLGIuZGVmYXVsdC5maW5kQnlJZCh0aGlzLmNhdGVnb3J5X2lkKSl9LF9jYXRlZ29yeU5hbWVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jYXRlZ29yeU5hbWUsdD12b2lkIDA7ZSYmKHQ9dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllcyIpLmZpbmRCeSgibmFtZSIsZSkpLHRoaXMuc2V0KCJjYXRlZ29yeSIsdCl9LGNhdGVnb3J5Q2xhc3M6KDAscy5mbXQpKCJjYXRlZ29yeS5mdWxsU2x1ZyIsImNhdGVnb3J5LSVAIiksdGFnQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuInRhZy0iK2V9KS5qb2luKCIgIil9LHNoYXJlVXJsOmZ1bmN0aW9uKGUpe3ZhciB0PXcuZGVmYXVsdC5jdXJyZW50KCk7cmV0dXJuIGUrKHQ/Ij91PSIrdC5nZXQoInVzZXJuYW1lX2xvd2VyIik6IiIpfSxwcmludFVybDooMCxzLmZtdCkoInVybCIsIiVAL3ByaW50IiksdXJsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT0odD10fHwiIikudHJpbSgpLmxlbmd0aCYmKHQ9InRvcGljIiksIiIrRGlzY291cnNlLmdldFVSTCgiL3QvIikrdCsiLyIrZX0sdXJsRm9yUG9zdE51bWJlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnVybDtyZXR1cm4gZSYmMDxlJiYodCs9Ii8iK2UpLHR9LHRvdGFsVW5yZWFkOmZ1bmN0aW9uKGUsdCl7dmFyIG49KHR8fDApKyhlfHwwKTtyZXR1cm4gMDxuP246bnVsbH0sbGFzdFJlYWRVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudXJsRm9yUG9zdE51bWJlcihlKX0sbGFzdFVucmVhZFVybDpmdW5jdGlvbihlLHQpe3JldHVybiB0PD1lJiZ0aGlzLmdldCgiY2F0ZWdvcnkubmF2aWdhdGVfdG9fZmlyc3RfcG9zdF9hZnRlcl9yZWFkIik/dGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpOnRoaXMudXJsRm9yUG9zdE51bWJlcihlKzEpfSxsYXN0UG9zdFVybDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKGUpfSxmaXJzdFBvc3RVcmw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpfSxzdW1tYXJ5VXJsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oYXNfc3VtbWFyeT8iP2ZpbHRlcj1zdW1tYXJ5IjoiIjtyZXR1cm4gdGhpcy51cmxGb3JQb3N0TnVtYmVyKDEpK2V9LGxhc3RQb3N0ZXJVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZi51c2VyUGF0aCkoZSl9LGRpc3BsYXlOZXdQb3N0czpmdW5jdGlvbihlLHQpe3ZhciBuPWcuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlnaGVzdFNlZW5CeVRvcGljIilbdF07aWYobil7dmFyIGk9bi10aGlzLmxhc3RfcmVhZF9wb3N0X251bWJlcjtpZigwPGkpe3ZhciBzPWUtaTtyZXR1cm4gczwwJiYocz0wKSxzfX1yZXR1cm4gZX0sdmlld3NIZWF0OmZ1bmN0aW9uKGUpe3JldHVybiBlPj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcGljX3ZpZXdzX2hlYXRfaGlnaD8iaGVhdG1hcC1oaWdoIjplPj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcGljX3ZpZXdzX2hlYXRfbWVkaXVtPyJoZWF0bWFwLW1lZCI6ZT49RGlzY291cnNlLlNpdGVTZXR0aW5ncy50b3BpY192aWV3c19oZWF0X2xvdz8iaGVhdG1hcC1sb3ciOm51bGx9LGFyY2hldHlwZU9iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4geS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJhcmNoZXR5cGVzIikuZmluZEJ5KCJpZCIsZSl9LGlzUHJpdmF0ZU1lc3NhZ2U6KDAsdC5lcXVhbCkoImFyY2hldHlwZSIsInByaXZhdGVfbWVzc2FnZSIpLGlzQmFubmVyOigwLHQuZXF1YWwpKCJhcmNoZXR5cGUiLCJiYW5uZXIiKSx0b2dnbGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9nZ2xlUHJvcGVydHkoZSksdGhpcy5zYXZlU3RhdHVzKGUsISF0aGlzLmdldChlKSl9LHNhdmVTdGF0dXM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJjbG9zZWQiPT09ZSYmdGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgicG9zdHNfY291bnQiKSwoMCx1LmFqYXgpKHRoaXMudXJsKyIvc3RhdHVzIix7dHlwZToiUFVUIixkYXRhOntzdGF0dXM6ZSxlbmFibGVkOiEhdCx1bnRpbDpufX0pfSxtYWtlQmFubmVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9tYWtlLWJhbm5lciIse3R5cGU6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJhcmNoZXR5cGUiLCJiYW5uZXIiKX0pfSxyZW1vdmVCYW5uZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3JlbW92ZS1iYW5uZXIiLHt0eXBlOiJQVVQifSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgiYXJjaGV0eXBlIiwicmVndWxhciIpfSl9LHRvZ2dsZUJvb2ttYXJrOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZih0aGlzLmJvb2ttYXJraW5nKXJldHVybiB2LlByb21pc2UucmVzb2x2ZSgpO3RoaXMuc2V0KCJib29rbWFya2luZyIsITApO2Z1bmN0aW9uIGkoKXtyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK24uaWQrdCx7dHlwZToiUFVUIn0pLnRoZW4oZnVuY3Rpb24oKXtpZihuLnRvZ2dsZVByb3BlcnR5KCJib29rbWFya2VkIiksciYmbylyZXR1cm4gby5zZXQoImJvb2ttYXJrZWQiLCEwKSxuLnNpdGVTZXR0aW5ncy5lbmFibGVfYm9va21hcmtzX3dpdGhfcmVtaW5kZXJzJiZvLnNldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiwhMCksW28uaWRdO2lmKHJ8fCFzKXJldHVybltdO3ZhciB0PVtdO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoImJvb2ttYXJrZWQiKSYmKGUuc2V0KCJib29rbWFya2VkIiwhMSksdC5wdXNoKGUuaWQpKSxuLnNpdGVTZXR0aW5ncy5lbmFibGVfYm9va21hcmtzX3dpdGhfcmVtaW5kZXJzJiZlLmdldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIikmJihlLnNldCgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiwhMSksdC5wdXNoKGUuaWQpKX0pLHR9KS5jYXRjaChjLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJib29rbWFya2luZyIsITEpfSl9dmFyIGU9dGhpcy5wb3N0U3RyZWFtLHM9KDAsbC5nZXQpKGUsInBvc3RzIiksbz1zJiZzWzBdJiYxPT09c1swXS5nZXQoInBvc3RfbnVtYmVyIikmJnNbMF0scj0hdGhpcy5ib29rbWFya2VkLHQ9cj8iL2Jvb2ttYXJrIjoiL3JlbW92ZV9ib29rbWFya3MiLGE9W107cmV0dXJuIXImJnMmJnMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4oZS5nZXQoImJvb2ttYXJrZWQiKXx8ZS5nZXQoImJvb2ttYXJrZWRfd2l0aF9yZW1pbmRlciIpKSYmYS5wdXNoKGUpfSksbmV3IHYuUHJvbWlzZShmdW5jdGlvbih0KXsxPGEubGVuZ3RoP2Jvb3Rib3guY29uZmlybShJMThuLnQoImJvb2ttYXJrcy5jb25maXJtX2NsZWFyIiksSTE4bi50KCJub192YWx1ZSIpLEkxOG4udCgieWVzX3ZhbHVlIiksZnVuY3Rpb24oZSl7cmV0dXJuIGU/aSgpLnRoZW4odCk6dCgpfSk6aSgpLnRoZW4odCl9KX0sY3JlYXRlR3JvdXBJbnZpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvaW52aXRlLWdyb3VwIix7dHlwZToiUE9TVCIsZGF0YTp7Z3JvdXA6ZX19KX0sY3JlYXRlSW52aXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4oMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9pbnZpdGUiLHt0eXBlOiJQT1NUIixkYXRhOnt1c2VyOmUsZ3JvdXBfbmFtZXM6dCxjdXN0b21fbWVzc2FnZTpufX0pfSxnZW5lcmF0ZUludml0ZUxpbms6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLHUuYWpheCkoIi9pbnZpdGVzL2xpbmsiLHt0eXBlOiJQT1NUIixkYXRhOntlbWFpbDplLGdyb3VwX25hbWVzOnQsdG9waWNfaWQ6bn19KX0sZGVzdHJveTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCx7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9LHR5cGU6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5zZXRQcm9wZXJ0aWVzKHtkZWxldGVkX2F0Om5ldyBEYXRlLGRlbGV0ZWRfYnk6ZSwiZGV0YWlscy5jYW5fZGVsZXRlIjohMSwiZGV0YWlscy5jYW5fcmVjb3ZlciI6ITB9KX0pLmNhdGNoKGMucG9wdXBBamF4RXJyb3IpfSxyZWNvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCwiZGV0YWlscy5jYW5fZGVsZXRlIjohMCwiZGV0YWlscy5jYW5fcmVjb3ZlciI6ITF9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9yZWNvdmVyIix7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9LHR5cGU6IlBVVCJ9KX0sdXBkYXRlRnJvbUpzb246ZnVuY3Rpb24odCl7dmFyIG49dGhpcyxlPU9iamVjdC5rZXlzKHQpO3Qudmlld19oaWRkZW58fCh0aGlzLmRldGFpbHMudXBkYXRlRnJvbUpzb24odC5kZXRhaWxzKSxlLnJlbW92ZU9iamVjdHMoWyJkZXRhaWxzIiwicG9zdF9zdHJlYW0iXSkpLGUuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5zZXQoZSx0W2VdKX0pfSxyZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCx7dHlwZToiR0VUIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQudXBkYXRlRnJvbUpzb24oZSl9KX0saXNQaW5uZWRVbmNhdGVnb3JpemVkOigwLHQuYW5kKSgicGlubmVkIiwiY2F0ZWdvcnkuaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiKSxjbGVhclBpbjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwaW5uZWQ6ITEsdW5waW5uZWQ6ITB9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9jbGVhci1waW4iLHt0eXBlOiJQVVQifSkudGhlbihudWxsLGZ1bmN0aW9uKCl7ZS5zZXRQcm9wZXJ0aWVzKHtwaW5uZWQ6ITAsdW5waW5uZWQ6ITF9KX0pfSx0b2dnbGVQaW5uZWRGb3JVc2VyOmZ1bmN0aW9uKCl7dGhpcy5waW5uZWQ/dGhpcy5jbGVhclBpbigpOnRoaXMucmVQaW4oKX0scmVQaW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7cGlubmVkOiEwLHVucGlubmVkOiExfSksKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvcmUtcGluIix7dHlwZToiUFVUIn0pLnRoZW4obnVsbCxmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7cGlubmVkOiEwLHVucGlubmVkOiExfSl9KX0sZXNjYXBlZEV4Y2VycHQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscC5lbW9qaVVuZXNjYXBlKShlKX0saGFzRXhjZXJwdDooMCx0Lm5vdEVtcHR5KSgiZXhjZXJwdCIpLGV4Y2VycHRUcnVuY2F0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiImaGVsbGlwOyI9PT1lLnN1YnN0cihlLmxlbmd0aC04LDgpfSxyZWFkTGFzdFBvc3Q6KDAscy5wcm9wZXJ0eUVxdWFsKSgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIiwiaGlnaGVzdF9wb3N0X251bWJlciIpLGNhbkNsZWFyUGluOigwLHQuYW5kKSgicGlubmVkIiwicmVhZExhc3RQb3N0IiksY2FuRWRpdFRhZ3M6KDAsdC5vcikoImRldGFpbHMuY2FuX2VkaXQiLCJkZXRhaWxzLmNhbl9lZGl0X3RhZ3MiKSxhcmNoaXZlTWVzc2FnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImFyY2hpdmluZyIsITApO3ZhciBlPSgwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL2FyY2hpdmUtbWVzc2FnZSIse3R5cGU6IlBVVCJ9KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMCksZSYmZS5ncm91cF9uYW1lJiZ0LnNldCgiaW5ib3hHcm91cE5hbWUiLGUuZ3JvdXBfbmFtZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJhcmNoaXZpbmciLCExKX0pLGV9LG1vdmVUb0luYm94OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldCgiYXJjaGl2aW5nIiwhMCk7dmFyIGU9KDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvbW92ZS10by1pbmJveCIse3R5cGU6IlBVVCJ9KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMSksZSYmZS5ncm91cF9uYW1lJiZ0LnNldCgiaW5ib3hHcm91cE5hbWUiLGUuZ3JvdXBfbmFtZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJhcmNoaXZpbmciLCExKX0pLGV9LHB1Ymxpc2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3B1Ymxpc2giLHt0eXBlOiJQVVQiLGRhdGE6dGhpcy5nZXRQcm9wZXJ0aWVzKCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgiZGVzdGluYXRpb25fY2F0ZWdvcnlfaWQiLG51bGwpfSkuY2F0Y2goYy5wb3B1cEFqYXhFcnJvcil9LHVwZGF0ZURlc3RpbmF0aW9uQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIsZSksKDAsdS5hamF4KSgiL3QvIit0aGlzLmlkKyIvc2hhcmVkLWRyYWZ0Iix7bWV0aG9kOiJQVVQiLGRhdGE6e2NhdGVnb3J5X2lkOmV9fSl9LGNvbnZlcnRUb3BpYzpmdW5jdGlvbihlLHQpe3ZhciBuPXt0eXBlOiJQVVQifTtyZXR1cm4gdCYmdC5jYXRlZ29yeUlkJiYobi5kYXRhPXtjYXRlZ29yeV9pZDp0LmNhdGVnb3J5SWR9KSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi9jb252ZXJ0LXRvcGljLyIrZSxuKX0scmVzZXRCdW1wRGF0ZTpmdW5jdGlvbigpe3JldHVybigwLHUuYWpheCkoIi90LyIrdGhpcy5pZCsiL3Jlc2V0LWJ1bXAtZGF0ZSIse3R5cGU6IlBVVCJ9KS5jYXRjaChjLnBvcHVwQWpheEVycm9yKX0sdXBkYXRlVGFnczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMCE9PWUubGVuZ3RofHwoZT1bIiJdKSwoMCx1LmFqYXgpKCIvdC8iK3RoaXMuaWQrIi90YWdzIix7dHlwZToiUFVUIixkYXRhOnt0YWdzOmV9fSl9fSwidmlzaXRlZCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInZpc2l0ZWQiKSxlZSkseChlZSwiY3JlYXRvciIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImNyZWF0b3IiKSxlZSkseChlZSwibGFzdFBvc3RlciIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImxhc3RQb3N0ZXIiKSxlZSkseChlZSwiZmVhdHVyZWRVc2VycyIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImZlYXR1cmVkVXNlcnMiKSxlZSkseChlZSwiZmFuY3lUaXRsZSIsW0VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImZhbmN5VGl0bGUiKSxlZSkseChlZSwiYnVtcGVkQXQiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJidW1wZWRBdCIpLGVlKSx4KGVlLCJidW1wZWRBdFRpdGxlIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiYnVtcGVkQXRUaXRsZSIpLGVlKSx4KGVlLCJjcmVhdGVkQXQiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJjcmVhdGVkQXQiKSxlZSkseChlZSwicG9zdFN0cmVhbSIsW2guZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicG9zdFN0cmVhbSIpLGVlKSx4KGVlLCJ2aXNpYmxlTGlzdFRhZ3MiLFtNXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ2aXNpYmxlTGlzdFRhZ3MiKSxlZSkseChlZSwicmVsYXRlZE1lc3NhZ2VzIixbRF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicmVsYXRlZE1lc3NhZ2VzIiksZWUpLHgoZWUsInN1Z2dlc3RlZFRvcGljcyIsW0ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInN1Z2dlc3RlZFRvcGljcyIpLGVlKSx4KGVlLCJyZXBseUNvdW50IixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwicmVwbHlDb3VudCIpLGVlKSx4KGVlLCJkZXRhaWxzIixbaC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJkZXRhaWxzIiksZWUpLHgoZWUsInNlYXJjaENvbnRleHQiLFtBXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzZWFyY2hDb250ZXh0IiksZWUpLHgoZWUsIl9jYXRlZ29yeUlkQ2hhbmdlZCIsW04sel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiX2NhdGVnb3J5SWRDaGFuZ2VkIiksZWUpLHgoZWUsIl9jYXRlZ29yeU5hbWVDaGFuZ2VkIixbVV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiX2NhdGVnb3J5TmFtZUNoYW5nZWQiKSxlZSkseChlZSwidGFnQ2xhc3NlcyIsW0ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsInRhZ0NsYXNzZXMiKSxlZSkseChlZSwic2hhcmVVcmwiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzaGFyZVVybCIpLGVlKSx4KGVlLCJ1cmwiLFtSXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ1cmwiKSxlZSkseChlZSwidG90YWxVbnJlYWQiLFtxXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ0b3RhbFVucmVhZCIpLGVlKSx4KGVlLCJsYXN0UmVhZFVybCIsW0hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImxhc3RSZWFkVXJsIiksZWUpLHgoZWUsImxhc3RVbnJlYWRVcmwiLFskXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJsYXN0VW5yZWFkVXJsIiksZWUpLHgoZWUsImxhc3RQb3N0VXJsIixbS10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwibGFzdFBvc3RVcmwiKSxlZSkseChlZSwiZmlyc3RQb3N0VXJsIixbV10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiZmlyc3RQb3N0VXJsIiksZWUpLHgoZWUsInN1bW1hcnlVcmwiLFtWXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJzdW1tYXJ5VXJsIiksZWUpLHgoZWUsImxhc3RQb3N0ZXJVcmwiLFtHXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJsYXN0UG9zdGVyVXJsIiksZWUpLHgoZWUsImRpc3BsYXlOZXdQb3N0cyIsW1ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImRpc3BsYXlOZXdQb3N0cyIpLGVlKSx4KGVlLCJ2aWV3c0hlYXQiLFtKXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVlLCJ2aWV3c0hlYXQiKSxlZSkseChlZSwiYXJjaGV0eXBlT2JqZWN0IixbWF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiYXJjaGV0eXBlT2JqZWN0IiksZWUpLHgoZWUsImVzY2FwZWRFeGNlcnB0IixbUV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlZSwiZXNjYXBlZEV4Y2VycHQiKSxlZSkseChlZSwiZXhjZXJwdFRydW5jYXRlZCIsW1pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWUsImV4Y2VycHRUcnVuY2F0ZWQiKSxlZSksZWUpKTtmdW5jdGlvbiBuZShlKXtpZihlLnN1Y2Nlc3MpcmV0dXJuKDAsbi5mbHVzaE1hcCkoKSxlO3Rocm93IG5ldyBFcnJvcigiZXJyb3IgbW92aW5nIHBvc3RzIHRvcGljIil9dGUucmVvcGVuQ2xhc3Moe05vdGlmaWNhdGlvbkxldmVsOntXQVRDSElORzozLFRSQUNLSU5HOjIsUkVHVUxBUjoxLE1VVEVEOjB9LGNyZWF0ZUFjdGlvblN1bW1hcnk6ZnVuY3Rpb24obil7dmFyIGk7bi5hY3Rpb25zX3N1bW1hcnkmJihpPWwuZGVmYXVsdC5jcmVhdGUoKSxuLmFjdGlvbnNfc3VtbWFyeT1uLmFjdGlvbnNfc3VtbWFyeS5tYXAoZnVuY3Rpb24oZSl7ZS5wb3N0PW4sZS5hY3Rpb25UeXBlPXkuZGVmYXVsdC5jdXJyZW50KCkucG9zdEFjdGlvblR5cGVCeUlkKGUuaWQpO3ZhciB0PWEuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkuc2V0KGUuYWN0aW9uVHlwZS5nZXQoIm5hbWVfa2V5IiksdCksdH0pLG4uc2V0KCJhY3Rpb25CeU5hbWUiLGkpKX0sdXBkYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMCE9PW4uY2F0ZWdvcnlJZCYmKG4uY2F0ZWdvcnlfaWQ9bi5jYXRlZ29yeUlkLGRlbGV0ZSBuLmNhdGVnb3J5SWQpLHQuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikmJmRlbGV0ZSBuLmNhdGVnb3J5X2lkLCgwLHUuYWpheCkodC5nZXQoInVybCIpLHt0eXBlOiJQVVQiLGRhdGE6SlNPTi5zdHJpbmdpZnkobiksY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkudGhlbihmdW5jdGlvbihlKXtuLnRpdGxlPWUuYmFzaWNfdG9waWMudGl0bGUsbi5mYW5jeV90aXRsZT1lLmJhc2ljX3RvcGljLmZhbmN5X3RpdGxlLHQuc2V0UHJvcGVydGllcyhuKX0pfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuY3JlYXRlQWN0aW9uU3VtbWFyeShlKSxlfSxmaW5kOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLmdldFVSTCgiL3QvIikrZTt0Lm5lYXJQb3N0JiYobis9Ii8iK3QubmVhclBvc3QpO3ZhciBpPXt9O3JldHVybiB0LnBvc3RzQWZ0ZXImJihpLnBvc3RzX2FmdGVyPXQucG9zdHNBZnRlciksdC5wb3N0c0JlZm9yZSYmKGkucG9zdHNfYmVmb3JlPXQucG9zdHNCZWZvcmUpLHQudHJhY2tWaXNpdCYmKGkudHJhY2tfdmlzaXQ9ITApLHQudXNlckZpbHRlcnMmJjA8dC51c2VyRmlsdGVycy5sZW5ndGgmJihpLnVzZXJuYW1lX2ZpbHRlcnM9W10sdC51c2VyRmlsdGVycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kudXNlcm5hbWVfZmlsdGVycy5wdXNoKGUpfSkpLCEwPT09dC5zdW1tYXJ5JiYoaS5zdW1tYXJ5PSEwKSwoMCx1LmFqYXgpKG4rIi5qc29uIix7ZGF0YTppfSl9LGNoYW5nZU93bmVyczpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLHUuYWpheCkoIi90LyIrZSsiL2NoYW5nZS1vd25lciIse3R5cGU6IlBPU1QiLGRhdGE6dH0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3VjY2Vzcz9lOnZvaWQgbi5yZWplY3QobmV3IEVycm9yKCJlcnJvciBjaGFuZ2luZyBvd25lcnNoaXAgb2YgcG9zdHMiKSl9KTtyZXR1cm4gbn0sY2hhbmdlVGltZXN0YW1wOmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsdS5hamF4KSgiL3QvIitlKyIvY2hhbmdlLXRpbWVzdGFtcCIse3R5cGU6IlBVVCIsZGF0YTp7dGltZXN0YW1wOnR9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWNjZXNzP2U6dm9pZCBuLnJlamVjdChuZXcgRXJyb3IoImVycm9yIHVwZGF0aW5nIHRpbWVzdGFtcCBvZiB0b3BpYyIpKX0pO3JldHVybiBufSxidWxrT3BlcmF0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsdS5hamF4KSgiL3RvcGljcy9idWxrIix7dHlwZToiUFVUIixkYXRhOnt0b3BpY19pZHM6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJpZCIpfSksb3BlcmF0aW9uOnR9fSl9LGJ1bGtPcGVyYXRpb25CeUZpbHRlcjpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz17ZmlsdGVyOmUsb3BlcmF0aW9uOnR9O3JldHVybiBpJiZpLmluY2x1ZGVTdWJjYXRlZ29yaWVzJiYocy5pbmNsdWRlX3N1YmNhdGVnb3JpZXM9ITApLG4mJihzLmNhdGVnb3J5X2lkPW4pLCgwLHUuYWpheCkoIi90b3BpY3MvYnVsayIse3R5cGU6IlBVVCIsZGF0YTpzfSl9LHJlc2V0TmV3OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZT97Y2F0ZWdvcnlfaWQ6ZS5pZCxpbmNsdWRlX3N1YmNhdGVnb3JpZXM6dH06e307cmV0dXJuKDAsdS5hamF4KSgiL3RvcGljcy9yZXNldC1uZXciLHt0eXBlOiJQVVQiLGRhdGE6bn0pfSxpZEZvclNsdWc6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdS5hamF4KSgiL3QvaWRfZm9yLyIrZSl9fSksZS5kZWZhdWx0PXRlfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxzLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dC5kZWZhdWx0LmV4dGVuZCgpO24ucmVvcGVuQ2xhc3Moe2NsZWFyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5hamF4KSgiL2RyYWZ0Lmpzb24iLHt0eXBlOiJERUxFVEUiLGRhdGE6e2RyYWZ0X2tleTplLHNlcXVlbmNlOnR9fSl9LGdldDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvZHJhZnQuanNvbiIse2RhdGE6e2RyYWZ0X2tleTplfSxkYXRhVHlwZToianNvbiJ9KX0sZ2V0TG9jYWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0sc2F2ZTpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gbj0ic3RyaW5nIj09dHlwZW9mIG4/bjpKU09OLnN0cmluZ2lmeShuKSwoMCxzLmFqYXgpKCIvZHJhZnQuanNvbiIse3R5cGU6IlBPU1QiLGRhdGE6e2RyYWZ0X2tleTplLHNlcXVlbmNlOnQsZGF0YTpuLG93bmVyOml9fSl9fSksZS5kZWZhdWx0PW59KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9xdW90ZSIsImRpc2NvdXJzZS9tb2RlbHMvZHJhZnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCJdLGZ1bmN0aW9uKGUscix0LGEscCxuLGMsbSxsLGkscyx1LG8sZCxmLGgsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGcobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHYseSx3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsJCxLLFcsVixHLFksSjtmdW5jdGlvbiBYKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TQVZFX0lDT05TPWUuU0FWRV9MQUJFTFM9ZS5ORVdfVE9QSUNfS0VZPWUuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVk9ZS5FRElUPWUuUkVQTFk9ZS5QUklWQVRFX01FU1NBR0U9ZS5FRElUX1NIQVJFRF9EUkFGVD1lLkNSRUFURV9TSEFSRURfRFJBRlQ9ZS5DUkVBVEVfVE9QSUM9dm9pZCAwO3ZhciBRPWUuQ1JFQVRFX1RPUElDPSJjcmVhdGVUb3BpYyIsWj1lLkNSRUFURV9TSEFSRURfRFJBRlQ9ImNyZWF0ZVNoYXJlZERyYWZ0IixlZT1lLkVESVRfU0hBUkVEX0RSQUZUPSJlZGl0U2hhcmVkRHJhZnQiLHRlPWUuUFJJVkFURV9NRVNTQUdFPSJwcml2YXRlTWVzc2FnZSIsbmU9ZS5SRVBMWT0icmVwbHkiLGllPWUuRURJVD0iZWRpdCI7ZS5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWT0ibmV3X3ByaXZhdGVfbWVzc2FnZSIsZS5ORVdfVE9QSUNfS0VZPSJuZXdfdG9waWMiO2Z1bmN0aW9uIHNlKGUpe3JldHVybiBlPT09aWV8fGU9PT1lZX12YXIgb2U9ImNsb3NlZCIscmU9InNhdmluZyIsYWU9Im9wZW4iLGxlPSJmdWxsc2NyZWVuIix1ZT17cmF3OiJyZXBseSIsdGl0bGU6InRpdGxlIix1bmxpc3RfdG9waWM6InVubGlzdFRvcGljIixjYXRlZ29yeToiY2F0ZWdvcnlJZCIsdG9waWNfaWQ6InRvcGljLmlkIixpc193YXJuaW5nOiJpc1dhcm5pbmciLHdoaXNwZXI6IndoaXNwZXIiLGFyY2hldHlwZToiYXJjaGV0eXBlSWQiLHRhcmdldF9yZWNpcGllbnRzOiJ0YXJnZXRSZWNpcGllbnRzIix0eXBpbmdfZHVyYXRpb25fbXNlY3M6InR5cGluZ1RpbWUiLGNvbXBvc2VyX29wZW5fZHVyYXRpb25fbXNlY3M6ImNvbXBvc2VyVGltZSIsdGFnczoidGFncyIsZmVhdHVyZWRfbGluazoiZmVhdHVyZWRMaW5rIixzaGFyZWRfZHJhZnQ6InNoYXJlZERyYWZ0Iixub19idW1wOiJub0J1bXAiLGRyYWZ0X2tleToiZHJhZnRLZXkifSxjZT17dGl0bGU6InRvcGljLnRpdGxlIixjYXRlZ29yeUlkOiJ0b3BpYy5jYXRlZ29yeS5pZCIsdGFnczoidG9waWMudGFncyIsZmVhdHVyZWRMaW5rOiJ0b3BpYy5mZWF0dXJlZF9saW5rIn0sZGU9e3JlcGx5OiJyZXBseSIsYWN0aW9uOiJhY3Rpb24iLHRpdGxlOiJ0aXRsZSIsY2F0ZWdvcnlJZDoiY2F0ZWdvcnlJZCIsYXJjaGV0eXBlSWQ6ImFyY2hldHlwZUlkIix3aGlzcGVyOiJ3aGlzcGVyIixtZXRhRGF0YToibWV0YURhdGEiLGNvbXBvc2VyVGltZToiY29tcG9zZXJUaW1lIix0eXBpbmdUaW1lOiJ0eXBpbmdUaW1lIixwb3N0SWQ6InBvc3QuaWQiLHVzZXJuYW1lczoidGFyZ2V0VXNlcm5hbWVzIixyZWNpcGllbnRzOiJ0YXJnZXRSZWNpcGllbnRzIn0scGU9e30sbWU9KGUuU0FWRV9MQUJFTFM9KFgodj17fSxpZSwiY29tcG9zZXIuc2F2ZV9lZGl0IiksWCh2LG5lLCJjb21wb3Nlci5yZXBseSIpLFgodixRLCJjb21wb3Nlci5jcmVhdGVfdG9waWMiKSxYKHYsdGUsImNvbXBvc2VyLmNyZWF0ZV9wbSIpLFgodixaLCJjb21wb3Nlci5jcmVhdGVfc2hhcmVkX2RyYWZ0IiksWCh2LGVlLCJjb21wb3Nlci5zYXZlX2VkaXQiKSx2KSxlLlNBVkVfSUNPTlM9KFgoeT17fSxpZSwicGVuY2lsLWFsdCIpLFgoeSxlZSwiZmFyLWNsaXBib2FyZCIpLFgoeSxuZSwicmVwbHkiKSxYKHksUSwicGx1cyIpLFgoeSx0ZSwiZW52ZWxvcGUiKSxYKHksWiwiZmFyLWNsaXBib2FyZCIpLHkpLG4uZGVmYXVsdC5leHRlbmQoKHc9KDAscy5kZWZhdWx0KSgiY2F0ZWdvcnlJZCIpLHg9KDAscy5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxrPSgwLHMuZGVmYXVsdCkoImVkaXRpbmdQb3N0IiwidG9waWMuZGV0YWlscy5jYW5fZWRpdCIpLFA9KDAscy5kZWZhdWx0KSgicHJpdmF0ZU1lc3NhZ2UiLCJhcmNoZXR5cGUuaGFzT3B0aW9ucyIpLGo9KDAscy5kZWZhdWx0KSgiY3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsInRvcGljIiksVD0oMCxzLmRlZmF1bHQpKCJhY3Rpb24iKSxFPSgwLHMub2JzZXJ2ZXMpKCJjb21wb3NlU3RhdGUiKSxPPSgwLHMuZGVmYXVsdCkoImFyY2hldHlwZUlkIiksUz0oMCxzLm9ic2VydmVzKSgiYXJjaGV0eXBlIiksQz0oMCxzLmRlZmF1bHQpKCJjYW5FZGl0VGl0bGUiLCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwiY2F0ZWdvcnlJZCIpLE09KDAscy5kZWZhdWx0KSgiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIiksRD0oMCxzLmRlZmF1bHQpKCJhY3Rpb24iLCJwb3N0IiwidG9waWMiLCJ0b3BpYy50aXRsZSIpLEk9KDAscy5kZWZhdWx0KSgidGFyZ2V0UmVjaXBpZW50cyIpLEw9KDAscy5kZWZhdWx0KSgidGFyZ2V0UmVjaXBpZW50cyIpLEE9KDAscy5kZWZhdWx0KSgibG9hZGluZyIsImNhbkVkaXRUaXRsZSIsInRpdGxlTGVuZ3RoIiwidGFyZ2V0UmVjaXBpZW50cyIsInRhcmdldFJlY2lwaWVudHNBcnJheSIsInJlcGx5TGVuZ3RoIiwiY2F0ZWdvcnlJZCIsIm1pc3NpbmdSZXBseUNoYXJhY3RlcnMiLCJ0YWdzIiwidG9waWNGaXJzdFBvc3QiLCJtaW5pbXVtUmVxdWlyZWRUYWdzIiwiaXNTdGFmZlVzZXIiKSxOPSgwLHMuZGVmYXVsdCkoImNhbkNhdGVnb3JpemUiLCJjYXRlZ29yeUlkIiksej0oMCxzLmRlZmF1bHQpKCJtaW5pbXVtVGl0bGVMZW5ndGgiLCJ0aXRsZUxlbmd0aCIsInBvc3Quc3RhdGljX2RvYyIpLFU9KDAscy5kZWZhdWx0KSgibWV0YURhdGEiKSxGPSgwLHMuZGVmYXVsdCkoIm1pbmltdW1UaXRsZUxlbmd0aCIsInRpdGxlTGVuZ3RoIiksQj0oMCxzLmRlZmF1bHQpKCJwcml2YXRlTWVzc2FnZSIpLFI9KDAscy5kZWZhdWx0KSgibWluaW11bVBvc3RMZW5ndGgiLCJyZXBseUxlbmd0aCIsImNhbkVkaXRUb3BpY0ZlYXR1cmVkTGluayIpLHE9KDAscy5kZWZhdWx0KSgicHJpdmF0ZU1lc3NhZ2UiLCJ0b3BpY0ZpcnN0UG9zdCIsInRvcGljLnBtX3dpdGhfbm9uX2h1bWFuX3VzZXIiKSxIPSgwLHMuZGVmYXVsdCkoInRpdGxlIiksJD0oMCxzLmRlZmF1bHQpKCJyZXBseSIpLEs9KDAscy5vbikoImluaXQiKSxXPSgwLHMub2JzZXJ2ZXMpKCJ0aXRsZSIsInJlcGx5IiksZyhWPXtfY2F0ZWdvcnlJZDpudWxsLHVubGlzdFRvcGljOiExLG5vQnVtcDohMSxkcmFmdFNhdmluZzohMSxkcmFmdFNhdmVkOiExLGFyY2hldHlwZXM6KDAsdC5yZWFkcykoInNpdGUuYXJjaGV0eXBlcyIpLHNoYXJlZERyYWZ0OigwLHQuZXF1YWwpKCJhY3Rpb24iLFopLGNhdGVnb3J5SWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYXRlZ29yeUlkfSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fY2F0ZWdvcnlJZDtyZXR1cm4oMCxyLmlzRW1wdHkpKGUpJiYoZT1udWxsKSx0IT09KHRoaXMuX2NhdGVnb3J5SWQ9ZSkmJnRoaXMuYXBwbHlUb3BpY1RlbXBsYXRlKHQsZSksZX19LGNhdGVnb3J5OmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGUpOm51bGx9LG1pbmltdW1SZXF1aXJlZFRhZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZS5taW5pbXVtX3JlcXVpcmVkX3RhZ3M/ZS5taW5pbXVtX3JlcXVpcmVkX3RhZ3M6bnVsbH0sY3JlYXRpbmdUb3BpYzooMCx0LmVxdWFsKSgiYWN0aW9uIixRKSxjcmVhdGluZ1NoYXJlZERyYWZ0OigwLHQuZXF1YWwpKCJhY3Rpb24iLFopLGNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2U6KDAsdC5lcXVhbCkoImFjdGlvbiIsdGUpLG5vdENyZWF0aW5nUHJpdmF0ZU1lc3NhZ2U6KDAsdC5ub3QpKCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiksbm90UHJpdmF0ZU1lc3NhZ2U6KDAsdC5ub3QpKCJwcml2YXRlTWVzc2FnZSIpLGRpc2FibGVUaXRsZUlucHV0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxzaG93Q2F0ZWdvcnlDaG9vc2VyOmZ1bmN0aW9uKGUsdCl7dmFyIG49MTx0aGlzLnNpdGUuY2F0ZWdvcmllcy5sZW5ndGg7cmV0dXJuIWUmJih0fHxuKX0scHJpdmF0ZU1lc3NhZ2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dCYmInByaXZhdGVfbWVzc2FnZSI9PT10LmFyY2hldHlwZX0sdG9waWNGaXJzdFBvc3Q6KDAsdC5vcikoImNyZWF0aW5nVG9waWMiLCJlZGl0aW5nRmlyc3RQb3N0IiksZWRpdGluZ1Bvc3Q6c2UscmVwbHlpbmdUb1RvcGljOigwLHQuZXF1YWwpKCJhY3Rpb24iLG5lKSx2aWV3T3BlbjooMCx0LmVxdWFsKSgiY29tcG9zZVN0YXRlIixhZSksdmlld0RyYWZ0OigwLHQuZXF1YWwpKCJjb21wb3NlU3RhdGUiLCJkcmFmdCIpLHZpZXdGdWxsc2NyZWVuOigwLHQuZXF1YWwpKCJjb21wb3NlU3RhdGUiLGxlKSx2aWV3T3Blbk9yRnVsbHNjcmVlbjooMCx0Lm9yKSgidmlld09wZW4iLCJ2aWV3RnVsbHNjcmVlbiIpLGNvbXBvc2VTdGF0ZUNoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuY29tcG9zZXJPcGVuZWQsbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJodG1sIik7dGhpcy5jb21wb3NlU3RhdGU9PT1sZT9uLmNsYXNzTGlzdC5hZGQoImZ1bGxzY3JlZW4tY29tcG9zZXIiKTpuLmNsYXNzTGlzdC5yZW1vdmUoImZ1bGxzY3JlZW4tY29tcG9zZXIiKSx0aGlzLmNvbXBvc2VTdGF0ZT09PWFlP3RoaXMuc2V0KCJjb21wb3Nlck9wZW5lZCIsdHx8bmV3IERhdGUpOih0JiYoZT10aGlzLmNvbXBvc2VyVG90YWxPcGVuZWR8fDAsdGhpcy5zZXQoImNvbXBvc2VyVG90YWxPcGVuZWQiLGUrKG5ldyBEYXRlLXQpKSksdGhpcy5zZXQoImNvbXBvc2VyT3BlbmVkIixudWxsKSl9LGNvbXBvc2VyVGltZTp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb21wb3NlclRvdGFsT3BlbmVkfHwwLHQ9dGhpcy5jb21wb3Nlck9wZW5lZDtyZXR1cm4gdCYmKGUrPW5ldyBEYXRlLXQpLGV9fSxhcmNoZXR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYXJjaGV0eXBlcy5maW5kQnkoImlkIixlKX0sYXJjaGV0eXBlQ2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldCgibWV0YURhdGEiLGEuZGVmYXVsdC5jcmVhdGUoKSl9LHR5cGluZzpmdW5jdGlvbigpeygwLHAudGhyb3R0bGUpKHRoaXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzLnR5cGluZ1RpbWV8fDA7dGhpcy5zZXQoInR5cGluZ1RpbWUiLGUrMTAwKX0sMTAwLCExKX0sZWRpdGluZ0ZpcnN0UG9zdDooMCx0LmFuZCkoImVkaXRpbmdQb3N0IiwicG9zdC5maXJzdFBvc3QiKSxjYW5FZGl0VGl0bGU6KDAsdC5vcikoImNyZWF0aW5nVG9waWMiLCJjcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwiZWRpdGluZ0ZpcnN0UG9zdCIsImNyZWF0aW5nU2hhcmVkRHJhZnQiKSxjYW5DYXRlZ29yaXplOigwLHQuYW5kKSgiY2FuRWRpdFRpdGxlIiwibm90Q3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsIm5vdFByaXZhdGVNZXNzYWdlIiksY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rOmZ1bmN0aW9uKGUsdCxuKXtpZighdGhpcy5zaXRlU2V0dGluZ3MudG9waWNfZmVhdHVyZWRfbGlua19lbmFibGVkfHwhZXx8dClyZXR1cm4hMTt2YXIgaT10aGlzLnNpdGUudG9waWNfZmVhdHVyZWRfbGlua19hbGxvd2VkX2NhdGVnb3J5X2lkcztyZXR1cm4hKG58fCFpfHwtMT09PWkuaW5kZXhPZih0aGlzLnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCkmJnRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzKXx8KHZvaWQgMD09PWl8fCFpLmxlbmd0aHx8LTEhPT1pLmluZGV4T2YobikpfSx0aXRsZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJjb21wb3Nlci50aXRsZV9vcl9saW5rX3BsYWNlaG9sZGVyIjoiY29tcG9zZXIudGl0bGVfcGxhY2Vob2xkZXIifSxyZXBseU9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHMsbyxyLGE9e3VzZXJMaW5rOm51bGwsdG9waWNMaW5rOm51bGwscG9zdExpbms6bnVsbCx1c2VyQXZhdGFyOm51bGwsb3JpZ2luYWxVc2VyOm51bGx9O3JldHVybiBuJiYoYS50b3BpY0xpbms9e2hyZWY6bi51cmwsYW5jaG9yOm4uZmFuY3lfdGl0bGV8fCgwLHUuZXNjYXBlRXhwcmVzc2lvbikoaSl9KSx0JiYoYS5sYWJlbD1JMThuLnQoInBvc3QuIitlKSxhLnVzZXJBdmF0YXI9KDAsdS50aW55QXZhdGFyKSh0LmF2YXRhcl90ZW1wbGF0ZSksdGhpcy5zaXRlLm1vYmlsZVZpZXd8fChzPXQuZ2V0KCJyZXBseV90b191c2VyLnVzZXJuYW1lIiksbz10LmdldCgicmVwbHlfdG9fdXNlci5hdmF0YXJfdGVtcGxhdGUiKSxzJiZvJiZzZShlKSYmKGEub3JpZ2luYWxVc2VyPXt1c2VybmFtZTpzLGF2YXRhcjooMCx1LnRpbnlBdmF0YXIpKG8pfSkpKSxuJiZ0JiYocj10LnBvc3RfbnVtYmVyLGEucG9zdExpbms9e2hyZWY6bi51cmwrIi8iK3IsYW5jaG9yOkkxOG4udCgicG9zdC5wb3N0X251bWJlciIse251bWJlcjpyfSl9LGEudXNlckxpbms9e2hyZWY6bi51cmwrIi8iK3IsYW5jaG9yOnQudXNlcm5hbWV9KSxhfSx0YXJnZXRVc2VybmFtZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYi5kZWZhdWx0KSgiYHRhcmdldFVzZXJuYW1lc2AgaXMgZGVwcmVjYXRlZCwgdXNlIGB0YXJnZXRSZWNpcGllbnRzYCBpbnN0ZWFkLiIpLGV9LHRhcmdldFJlY2lwaWVudHNBcnJheTpmdW5jdGlvbihlKXt2YXIgdD1lP2Uuc3BsaXQoIiwiKTpbXSxuPW5ldyBTZXQodGhpcy5zaXRlLmdyb3Vwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZX0pKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uaGFzKGUpP3t0eXBlOiJncm91cCIsbmFtZTplfTooMCx1LmVtYWlsVmFsaWQpKGUpP3t0eXBlOiJlbWFpbCIsbmFtZTplfTp7dHlwZToidXNlciIsbmFtZTplfX0pfSxjYW50U3VibWl0UG9zdDpmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCx1LGMsZCl7aWYoZSlyZXR1cm4hMDtpZih0JiYhdGhpcy50aXRsZUxlbmd0aFZhbGlkKXJldHVybiEwO2lmKDA8YSlyZXR1cm4hMDtpZih0aGlzLnNpdGUuY2FuX3RhZ190b3BpY3MmJiFkJiZ1JiZjJiYobHx8W10pLmxlbmd0aDxjKXJldHVybiEwO2lmKHUpe3ZhciBwPXRoaXMuY2F0ZWdvcnk7aWYocCYmcC50b3BpY190ZW1wbGF0ZSYmdGhpcy5yZXBseS50cmltKCk9PT1wLnRvcGljX3RlbXBsYXRlLnRyaW0oKSlyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoImNvbXBvc2VyLmVycm9yLnRvcGljX3RlbXBsYXRlX25vdF9tb2RpZmllZCIpKSwhMH1yZXR1cm4gdGhpcy5wcml2YXRlTWVzc2FnZT9pJiYwPT09cy5sZW5ndGg6dGhpcy5yZXF1aXJlZENhdGVnb3J5TWlzc2luZ30scmVxdWlyZWRDYXRlZ29yeU1pc3Npbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXQmJiF0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc30sdGl0bGVMZW5ndGhWYWxpZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuISEodGhpcy51c2VyLmFkbWluJiZuJiYwPHQpfHwhKHQ8ZSkmJnQ8PXRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGh9LGhhc01ldGFEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiEhZSYmKDAsci5pc0VtcHR5KShFbWJlci5rZXlzKGUpKX0scmVwbHlEaXJ0eTooMCxvLnByb3BlcnR5Tm90RXF1YWwpKCJyZXBseSIsIm9yaWdpbmFsVGV4dCIpLHRpdGxlRGlydHk6KDAsby5wcm9wZXJ0eU5vdEVxdWFsKSgidGl0bGUiLCJvcmlnaW5hbFRpdGxlIiksbWlzc2luZ1RpdGxlQ2hhcmFjdGVyczpmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9LG1pbmltdW1UaXRsZUxlbmd0aDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLnNpdGVTZXR0aW5ncy5taW5fcGVyc29uYWxfbWVzc2FnZV90aXRsZV9sZW5ndGg6dGhpcy5zaXRlU2V0dGluZ3MubWluX3RvcGljX3RpdGxlX2xlbmd0aH0sbWlzc2luZ1JlcGx5Q2hhcmFjdGVyczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuZ2V0KCJwb3N0LnBvc3RfdHlwZSIpPT09dGhpcy5zaXRlLmdldCgicG9zdF90eXBlcy5zbWFsbF9hY3Rpb24iKXx8biYmdGhpcy5mZWF0dXJlZExpbms/MDplLXR9LG1pbmltdW1Qb3N0TGVuZ3RoOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj8xOmU/dGhpcy5zaXRlU2V0dGluZ3MubWluX3BlcnNvbmFsX21lc3NhZ2VfcG9zdF9sZW5ndGg6dD90aGlzLnNpdGVTZXR0aW5ncy5taW5fZmlyc3RfcG9zdF9sZW5ndGg6dGhpcy5zaXRlU2V0dGluZ3MubWluX3Bvc3RfbGVuZ3RofSx0aXRsZUxlbmd0aDpmdW5jdGlvbihlKXtyZXR1cm4oZT1lfHwiIikucmVwbGFjZSgvXHMrL2dpbSwiICIpLnRyaW0oKS5sZW5ndGh9LHJlcGx5TGVuZ3RoOmZ1bmN0aW9uKGUpe2lmKDFlNDwoZT1lfHwiIikubGVuZ3RoKXJldHVybiBlLmxlbmd0aDtmb3IoO2wuZGVmYXVsdC5SRUdFWFAudGVzdChlKTspe3ZhciB0PW5ldyBSZWdFeHAobC5kZWZhdWx0LlJFR0VYUC5zb3VyY2UsImltZyIpO2U9ZS5yZXBsYWNlKHQsIiIpfWZvcih2YXIgbj0wLGk9ITAscz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbz1lLmNoYXJDb2RlQXQocykscj0hMTtpZig4MTkyPD1vJiZvPD04MjAyKXI9ITA7ZWxzZSBzd2l0Y2gobyl7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMTM6Y2FzZSAzMjpjYXNlIDE2MDpjYXNlIDU3NjA6Y2FzZSA4MjM5OmNhc2UgODI4NzpjYXNlIDEyMjg4OnI9ITB9cj9pfHwobisrLGk9ITApOihuKyssaT0hMSl9cmV0dXJuIDA8biYmaSYmbi0tLG59LF9zZXR1cENvbXBvc2VyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFyY2hldHlwZUlkIix0aGlzLnNpdGUuZGVmYXVsdF9hcmNoZXR5cGUpfSxhcHBlbmRUZXh0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLnJlcGx5fHwiIjt0PSJudW1iZXIiPT10eXBlb2YgdD90OmkubGVuZ3RoO3ZhciBzPWkuc2xpY2UoMCx0KXx8IiIsbz1pLnNsaWNlKHQpfHwiIixyPXZvaWQgMCxhPXZvaWQgMDtpZihuJiZuLmJsb2NrKXtpZigiIiE9PXMudHJpbSgpKWZvcihyPXMucmVwbGFjZSgvXHIvZywiIiksYT0wO2E8MjthKyspIlxuIiE9PXJbci5sZW5ndGgtMS1hXSYmKHMrPSJcbiIsdCsrKTtpZigiIiE9PW8udHJpbSgpKWZvcihyPW8ucmVwbGFjZSgvXHIvZywiIiksYT0wO2E8MjthKyspIlxuIiE9PXJbYV0mJihvPSJcbiIrbyl9cmV0dXJuIG4mJm4uc3BhY2UmJigwPHMubGVuZ3RoJiYhc1tzLmxlbmd0aC0xXS5tYXRjaCgvXHMvKSYmKHMrPSIgIiksMDxvLmxlbmd0aCYmIW9bMF0ubWF0Y2goL1xzLykmJihvPSIgIitvKSksdGhpcy5zZXQoInJlcGx5IixzK2Urbykscy5sZW5ndGgrZS5sZW5ndGh9LHByZXBlbmRUZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5yZXBseXx8IiI7dCYmdC5uZXdfbGluZSYmMDxuLmxlbmd0aCYmKGU9ZS50cmltKCkrIlxuXG4iKSx0aGlzLnNldCgicmVwbHkiLGUrbil9LGFwcGx5VG9waWNUZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuLGksczt0aGlzLmFjdGlvbj09PVEmJihuPXRoaXMucmVwbHksIWV8fChpPXRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGUpKSYmaS50b3BpY190ZW1wbGF0ZT09PW4mJihuPSIiKSwhKDAsci5pc0VtcHR5KShuKXx8KHM9dGhpcy5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KCJpZCIsdCkpJiZ0aGlzLnNldCgicmVwbHkiLHMudG9waWNfdGVtcGxhdGV8fCIiKSl9LG9wZW46ZnVuY3Rpb24odCl7dmFyIG49dGhpczt0PXR8fHt9LHRoaXMuc2V0KCJsb2FkaW5nIiwhMSk7dmFyIGUsaSxzPSgwLHIuaXNFbXB0eSkodGhpcy5yZXBseSksbz10aGlzO2lmKHN8fCF0LnJlcGx5JiYhc2UodC5hY3Rpb24pfHwhdGhpcy5yZXBseURpcnR5KXtpZih0LmFjdGlvbj09PW5lJiZzZSh0aGlzLmFjdGlvbikmJnRoaXMuc2V0KCJyZXBseSIsIiIpLCF0LmRyYWZ0S2V5KXRocm93IG5ldyBFcnJvcigiZHJhZnQga2V5IGlzIHJlcXVpcmVkIik7aWYobnVsbD09PXQuZHJhZnRTZXF1ZW5jZSl0aHJvdyBuZXcgRXJyb3IoImRyYWZ0IHNlcXVlbmNlIGlzIHJlcXVpcmVkIik7cmV0dXJuIHQudXNlcm5hbWVzJiYoMCxiLmRlZmF1bHQpKCJgdXNlcm5hbWVzYCBpcyBkZXByZWNhdGVkLCB1c2UgYHJlY2lwaWVudHNgIGluc3RlYWQuIiksdGhpcy5zZXRQcm9wZXJ0aWVzKHtkcmFmdEtleTp0LmRyYWZ0S2V5LGRyYWZ0U2VxdWVuY2U6dC5kcmFmdFNlcXVlbmNlLGNvbXBvc2VTdGF0ZTp0LmNvbXBvc2VyU3RhdGV8fGFlLGFjdGlvbjp0LmFjdGlvbix0b3BpYzp0LnRvcGljLHRhcmdldFJlY2lwaWVudHM6dC51c2VybmFtZXN8fHQucmVjaXBpZW50cyxjb21wb3NlclRvdGFsT3BlbmVkOnQuY29tcG9zZXJUaW1lLHR5cGluZ1RpbWU6dC50eXBpbmdUaW1lLHdoaXNwZXI6dC53aGlzcGVyLHRhZ3M6dC50YWdzLG5vQnVtcDp0Lm5vQnVtcH0pLHQucG9zdD8odGhpcy5zZXRQcm9wZXJ0aWVzKHtwb3N0OnQucG9zdCx3aGlzcGVyOnQucG9zdC5wb3N0X3R5cGU9PT10aGlzLnNpdGUucG9zdF90eXBlcy53aGlzcGVyfSksdGhpcy50b3BpY3x8dGhpcy5zZXQoInRvcGljIix0LnBvc3QudG9waWMpKTp0aGlzLnNldCgicG9zdCIsbnVsbCksdGhpcy5zZXRQcm9wZXJ0aWVzKHthcmNoZXR5cGVJZDp0LmFyY2hldHlwZUlkfHx0aGlzLnNpdGUuZGVmYXVsdF9hcmNoZXR5cGUsbWV0YURhdGE6dC5tZXRhRGF0YT9hLmRlZmF1bHQuY3JlYXRlKHQubWV0YURhdGEpOm51bGwscmVwbHk6dC5yZXBseXx8dGhpcy5yZXBseXx8IiJ9KSx0aGlzLnNldCgiY2F0ZWdvcnlJZCIsdC5jYXRlZ29yeUlkfHx0aGlzLmdldCgidG9waWMuY2F0ZWdvcnkuaWQiKSksdGhpcy5jYXRlZ29yeUlkfHwhdGhpcy5jcmVhdGluZ1RvcGljfHwxPT09KGU9dGhpcy5zaXRlLmNhdGVnb3JpZXMpLmxlbmd0aCYmdGhpcy5zZXQoImNhdGVnb3J5SWQiLGVbMF0uaWQpLHQucG9zdElkJiYodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLnN0b3JlLmZpbmQoInBvc3QiLHQucG9zdElkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBvLnNldFByb3BlcnRpZXMoe3Bvc3Q6ZSxsb2FkaW5nOiExfSl9KSksc2UodC5hY3Rpb24pJiZ0LnBvc3Q/KChpPXRoaXMuc2VyaWFsaXplKGNlKSkubG9hZGluZz0hMCx0LmFjdGlvbj09PWVlJiZ0LmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZCYmKGkuY2F0ZWdvcnlJZD10LmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZCksdGhpcy5zZXRQcm9wZXJ0aWVzKGkpLHRoaXMuc3RvcmUuZmluZCgicG9zdCIsdC5wb3N0LmlkKS50aGVuKGZ1bmN0aW9uKGUpe28uc2V0UHJvcGVydGllcyh7cmVwbHk6ZS5yYXcsb3JpZ2luYWxUZXh0OmUucmF3LGxvYWRpbmc6ITF9KSxvLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBseS1yZWxvYWRlZCIsbyl9KSk6dC5hY3Rpb249PT1uZSYmdC5xdW90ZSYmdGhpcy5zZXRQcm9wZXJ0aWVzKHtyZXBseTp0LnF1b3RlLG9yaWdpbmFsVGV4dDp0LnF1b3RlfSksdC50aXRsZSYmdGhpcy5zZXQoInRpdGxlIix0LnRpdGxlKSx0aGlzLnNldCgib3JpZ2luYWxUZXh0Iix0LmRyYWZ0PyIiOnRoaXMucmVwbHkpLHRoaXMuZWRpdGluZ0ZpcnN0UG9zdCYmdGhpcy5zZXQoIm9yaWdpbmFsVGl0bGUiLHRoaXMudGl0bGUpLHNlKHQuYWN0aW9uKSYmdC5wb3N0fHxvLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBseS1yZWxvYWRlZCIsbyksT2JqZWN0LmtleXMocGUpLmZvckVhY2goZnVuY3Rpb24oZSl7bi5zZXQocGVbZV0sdFtlXSl9KSwhMX19LGJlZm9yZVNhdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5Qcm9taXNlLnJlc29sdmUoKX0sc2F2ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmJlZm9yZVNhdmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoIXQuY2FudFN1Ym1pdFBvc3QpcmV0dXJuIHQuY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rfHx0LnNldCgiZmVhdHVyZWRMaW5rIixudWxsKSx0LmVkaXRpbmdQb3N0P3QuZWRpdFBvc3QoZSk6dC5jcmVhdGVQb3N0KGUpfSl9LGNsZWFyU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe29yaWdpbmFsVGV4dDpudWxsLHJlcGx5Om51bGwscG9zdDpudWxsLHRpdGxlOm51bGwsdW5saXN0VG9waWM6ITEsZWRpdFJlYXNvbjpudWxsLHN0YWdlZFBvc3Q6ITEsdHlwaW5nVGltZTowLGNvbXBvc2VyT3BlbmVkOm51bGwsY29tcG9zZXJUb3RhbE9wZW5lZDowLGZlYXR1cmVkTGluazpudWxsLG5vQnVtcDohMSxlZGl0Q29uZmxpY3Q6ITF9KX0sZWRpdFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcyxvPXRoaXMucG9zdCxyPW8uY29va2VkLGE9ZC5Qcm9taXNlLnJlc29sdmUoKTt0aGlzLnRpdGxlJiYxPT09by5wb3N0X251bWJlciYmKCh0PXRoaXMudG9waWMpLmRldGFpbHMuY2FuX2VkaXQ/KChuPXRoaXMuZ2V0UHJvcGVydGllcyhPYmplY3Qua2V5cyhjZSkpKS5mZWF0dXJlZExpbmsmJihuLmZlYXR1cmVkX2xpbms9bi5mZWF0dXJlZExpbmssZGVsZXRlIG4uZmVhdHVyZWRMaW5rKSx0aGlzLmFjdGlvbj09PWVlJiYoaT1uLmNhdGVnb3J5SWQsYT1hLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC51cGRhdGVEZXN0aW5hdGlvbkNhdGVnb3J5KGkpfSksbi5jYXRlZ29yeUlkPXQuZ2V0KCJjYXRlZ29yeS5pZCIpKSxhPWEudGhlbihmdW5jdGlvbigpe3JldHVybiBjLmRlZmF1bHQudXBkYXRlKHQsbil9KSk6dC5kZXRhaWxzLmNhbl9lZGl0X3RhZ3MmJihhPWEudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnVwZGF0ZVRhZ3Mocy50YWdzKX0pKSk7dmFyIGw9e3RvcGljX2lkOnRoaXMudG9waWMuaWQscmF3OnRoaXMucmVwbHkscmF3X29sZDp0aGlzLmVkaXRDb25mbGljdD9udWxsOnRoaXMub3JpZ2luYWxUZXh0LGVkaXRfcmVhc29uOmUuZWRpdFJlYXNvbixpbWFnZV9zaXplczplLmltYWdlU2l6ZXMsY29va2VkOnRoaXMuZ2V0Q29va2VkSHRtbCgpfTt0aGlzLnNldCgiY29tcG9zZVN0YXRlIixyZSk7dmFyIHU9KDAsbS50aHJvd0FqYXhFcnJvcikoZnVuY3Rpb24oZSl7by5zZXQoImNvb2tlZCIscikscy5zZXQoImNvbXBvc2VTdGF0ZSIsYWUpLGUuanFYSFImJjQwOT09PWUuanFYSFIuc3RhdHVzJiZzLnNldCgiZWRpdENvbmZsaWN0IiwhMCl9KTtyZXR1cm4gYS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG8uc2V0KCJjb29rZWQiLGwuY29va2VkKSxvLnNhdmUobCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gcy5jbGVhclN0YXRlKCksZX0pfSkuY2F0Y2godSl9LHNlcmlhbGl6ZTpmdW5jdGlvbihuLGkpe3ZhciBzPXRoaXM7cmV0dXJuIGk9aXx8e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zLmdldChuW2VdKTt2b2lkIDAhPT10JiYoMCxhLnNldCkoaSxlLHQpfSksaX0sY3JlYXRlUG9zdDpmdW5jdGlvbihlKXt2YXIgaT10aGlzO1EhPT10aGlzLmFjdGlvbiYmdGUhPT10aGlzLmFjdGlvbnx8dGhpcy5zZXQoInRvcGljIixudWxsKTt2YXIgdD10aGlzLnBvc3Qscz10aGlzLnRvcGljLG49dGhpcy51c2VyLG89dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSxyPSExLGE9dGhpcy5zaXRlLnBvc3RfdHlwZXMsbD10aGlzLndoaXNwZXI/YS53aGlzcGVyOmEucmVndWxhcix1PXRoaXMuc3RvcmUuY3JlYXRlUmVjb3JkKCJwb3N0Iix7aW1hZ2VTaXplczplLmltYWdlU2l6ZXMsY29va2VkOnRoaXMuZ2V0Q29va2VkSHRtbCgpLHJlcGx5X2NvdW50OjAsbmFtZTpuLm5hbWUsZGlzcGxheV91c2VybmFtZTpuLm5hbWUsdXNlcm5hbWU6bi51c2VybmFtZSx1c2VyX2lkOm4uaWQsdXNlcl90aXRsZTpuLnRpdGxlLGF2YXRhcl90ZW1wbGF0ZTpuLmF2YXRhcl90ZW1wbGF0ZSx1c2VyX2N1c3RvbV9maWVsZHM6bi5jdXN0b21fZmllbGRzLHBvc3RfdHlwZTpsLGFjdGlvbnNfc3VtbWFyeTpbXSxtb2RlcmF0b3I6bi5tb2RlcmF0b3IsYWRtaW46bi5hZG1pbix5b3VyczohMCxyZWFkOiEwLHdpa2k6ITEsdHlwaW5nVGltZTp0aGlzLnR5cGluZ1RpbWUsY29tcG9zZXJUaW1lOnRoaXMuY29tcG9zZXJUaW1lfSk7dGhpcy5zZXJpYWxpemUodWUsdSksdCYmdS5zZXRQcm9wZXJ0aWVzKHtyZXBseV90b19wb3N0X251bWJlcjp0LnBvc3RfbnVtYmVyLHJlcGx5X3RvX3VzZXI6dC5nZXRQcm9wZXJ0aWVzKCJ1c2VybmFtZSIsImF2YXRhcl90ZW1wbGF0ZSIpfSk7dmFyIGM9bnVsbDtpZighb3x8KHQmJnQuc2V0UHJvcGVydGllcyh7cmVwbHlfY291bnQ6KHQucmVwbHlfY291bnR8fDApKzEscmVwbGllczpbXX0pLF8uaXNFbXB0eSh1LmNvb2tlZCl8fCJhbHJlYWR5U3RhZ2luZyIhPT0oYz1vLnN0YWdlUG9zdCh1LG4pKSkpe3ZhciBkPXRoaXM7cmV0dXJuIGQuc2V0UHJvcGVydGllcyh7Y29tcG9zZVN0YXRlOnJlLHN0YWdlZFBvc3Q6InN0YWdlZCI9PT1jJiZ1fSksdS5zYXZlKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdCxuPSEwO3JldHVybiJlbnF1ZXVlZCI9PT1lLnJlc3BvbnNlSnNvbi5hY3Rpb24/byYmby51bmRvUG9zdCh1KTooZS5yZXNwb25zZUpzb24mJmUucmVzcG9uc2VKc29uLnBvc3QmJiFlLnJlc3BvbnNlSnNvbi5wb3N0LnJlcGx5X3RvX3VzZXImJnUuc2V0KCJyZXBseV90b191c2VyIixudWxsKSxzPyhzLnNldCgiZHJhZnRfc2VxdWVuY2UiLGUudGFyZ2V0LmRyYWZ0X3NlcXVlbmNlKSxvLmNvbW1pdFBvc3QodSkscj0hMCk6KGQuc2V0KCJjb21wb3NlU3RhdGUiLG9lKSxuPSExLCh0PWQuc2l0ZS5jYXRlZ29yaWVzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT0ocGFyc2VJbnQodS5jYXRlZ29yeSwxMCl8fDEpfSkpJiZ0LmluY3JlbWVudFByb3BlcnR5KCJ0b3BpY19jb3VudCIpLERpc2NvdXJzZS5ub3RpZnlQcm9wZXJ0eUNoYW5nZSgiZ2xvYmFsTm90aWNlIikpLGQuY2xlYXJTdGF0ZSgpLGQuc2V0KCJjcmVhdGVkUG9zdCIsdSksZC5yZXBseWluZ1RvVG9waWM/aS5hcHBFdmVudHMudHJpZ2dlcigicG9zdDpjcmVhdGVkIix1KTppLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzpjcmVhdGVkIix1LGQpLHI/ZC5zZXQoImNvbXBvc2VTdGF0ZSIsb2UpOm4mJmQuc2V0KCJjb21wb3NlU3RhdGUiLHJlKSksZX0pLmNhdGNoKCgwLG0udGhyb3dBamF4RXJyb3IpKGZ1bmN0aW9uKCl7byYmKG8udW5kb1Bvc3QodSksdCYmdC5zZXQoInJlcGx5X2NvdW50Iix0LnJlcGx5X2NvdW50LTEpKSwoMCxwLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2V0KCJjb21wb3NlU3RhdGUiLGFlKX0pfSkpfX0sZ2V0Q29va2VkSHRtbDpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXBseS1jb250cm9sIC5kLWVkaXRvci1wcmV2aWV3Iik7cmV0dXJuIGU/ZS5pbm5lckhUTUwucmVwbGFjZSgvPHNwYW4gY2xhc3M9Im1hcmtlciI+PFwvc3Bhbj4vZywiIik6IiJ9LHNhdmVEcmFmdDpmdW5jdGlvbigpe3ZhciBzPXRoaXM7aWYoIXRoaXMuZGlzYWJsZURyYWZ0cyl7aWYodGhpcy5jYW5FZGl0VGl0bGUpe2lmKCF0aGlzLnRpdGxlJiYhdGhpcy5yZXBseSlyZXR1cm47aWYodGhpcy50aXRsZSYmdGhpcy50aXRsZUxlbmd0aFZhbGlkJiZ0aGlzLnJlcGx5JiZ0aGlzLnJlcGx5TGVuZ3RoPHRoaXMuc2l0ZVNldHRpbmdzLm1pbl9wb3N0X2xlbmd0aClyZXR1cm59ZWxzZXtpZighdGhpcy5yZXBseSlyZXR1cm47aWYodGhpcy5yZXBseUxlbmd0aDx0aGlzLnNpdGVTZXR0aW5ncy5taW5fcG9zdF9sZW5ndGgpcmV0dXJufXRoaXMuc2V0UHJvcGVydGllcyh7ZHJhZnRTYXZlZDohMSxkcmFmdFNhdmluZzohMCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSksdGhpcy5fY2xlYXJpbmdTdGF0dXMmJigoMCxwLmNhbmNlbCkodGhpcy5fY2xlYXJpbmdTdGF0dXMpLHRoaXMuX2NsZWFyaW5nU3RhdHVzPW51bGwpO3ZhciBlPXRoaXMuc2VyaWFsaXplKGRlKTtyZXR1cm4gZS5wb3N0SWQmJiEoMCxyLmlzRW1wdHkpKHRoaXMub3JpZ2luYWxUZXh0KSYmKGUub3JpZ2luYWxUZXh0PXRoaXMub3JpZ2luYWxUZXh0KSxpLmRlZmF1bHQuc2F2ZSh0aGlzLmRyYWZ0S2V5LHRoaXMuZHJhZnRTZXF1ZW5jZSxlLHRoaXMubWVzc2FnZUJ1cy5jbGllbnRJZCkudGhlbihmdW5jdGlvbihlKXtlLmRyYWZ0X3NlcXVlbmNlJiYocy5kcmFmdFNlcXVlbmNlPWUuZHJhZnRfc2VxdWVuY2UpLGUuY29uZmxpY3RfdXNlcj9zLnNldFByb3BlcnRpZXMoe2RyYWZ0U2F2aW5nOiExLGRyYWZ0U3RhdHVzOkkxOG4udCgiY29tcG9zZXIuZWRpdF9jb25mbGljdCIpLGRyYWZ0Q29uZmxpY3RVc2VyOmUuY29uZmxpY3RfdXNlcn0pOnMuc2V0UHJvcGVydGllcyh7ZHJhZnRTYXZpbmc6ITEsZHJhZnRTYXZlZDohMCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSl9KS5jYXRjaChmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMCxpPWUmJmUuanFYSFI7aSYmNDA5PT09aS5zdGF0dXMmJmkucmVzcG9uc2VKU09OJiZpLnJlc3BvbnNlSlNPTi5lcnJvcnMmJmkucmVzcG9uc2VKU09OLmVycm9ycy5sZW5ndGgmJihuPSh0PWUuanFYSFIucmVzcG9uc2VKU09OKS5lcnJvcnNbMF0sdC5leHRyYXMmJnQuZXh0cmFzLmRlc2NyaXB0aW9uJiZib290Ym94LmFsZXJ0KHQuZXh0cmFzLmRlc2NyaXB0aW9uKSkscy5zZXRQcm9wZXJ0aWVzKHtkcmFmdFNhdmluZzohMSxkcmFmdFN0YXR1czpufHxJMThuLnQoImNvbXBvc2VyLmRyYWZ0c19vZmZsaW5lIiksZHJhZnRDb25mbGljdFVzZXI6bnVsbH0pfSl9fSxkYXRhQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5kcmFmdFN0YXR1cyYmIXRoaXMuX2NsZWFyaW5nU3RhdHVzJiYodGhpcy5fY2xlYXJpbmdTdGF0dXM9KDAscC5sYXRlcikodGhpcyxmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7ZHJhZnRTdGF0dXM6bnVsbCxkcmFmdENvbmZsaWN0VXNlcjpudWxsfSksZS5fY2xlYXJpbmdTdGF0dXM9bnVsbCxlLnNldFByb3BlcnRpZXMoe2RyYWZ0U2F2aW5nOiExLGRyYWZ0U2F2ZWQ6ITF9KX0sRW1iZXIuVGVzdD8wOjFlMykpfX0sImNhdGVnb3J5SWQiLFtzLmRlZmF1bHRdLChHPShHPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2F0ZWdvcnlJZCIpKT9HLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gR319KSxWKSxnKFYsImNhdGVnb3J5Iixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYXRlZ29yeSIpLFYpLGcoViwibWluaW11bVJlcXVpcmVkVGFncyIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVJlcXVpcmVkVGFncyIpLFYpLGcoViwiZGlzYWJsZVRpdGxlSW5wdXQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImRpc2FibGVUaXRsZUlucHV0IiksViksZyhWLCJzaG93Q2F0ZWdvcnlDaG9vc2VyIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJzaG93Q2F0ZWdvcnlDaG9vc2VyIiksViksZyhWLCJwcml2YXRlTWVzc2FnZSIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwicHJpdmF0ZU1lc3NhZ2UiKSxWKSxnKFYsImVkaXRpbmdQb3N0IixbVF0sKFk9KFk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJlZGl0aW5nUG9zdCIpKT9ZLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gWX19KSxWKSxnKFYsImNvbXBvc2VTdGF0ZUNoYW5nZWQiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNvbXBvc2VTdGF0ZUNoYW5nZWQiKSxWKSxnKFYsImNvbXBvc2VyVGltZSIsW3MuZGVmYXVsdF0sKEo9KEo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjb21wb3NlclRpbWUiKSk/Si52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIEp9fSksViksZyhWLCJhcmNoZXR5cGUiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImFyY2hldHlwZSIpLFYpLGcoViwiYXJjaGV0eXBlQ2hhbmdlZCIsW1NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiYXJjaGV0eXBlQ2hhbmdlZCIpLFYpLGcoViwiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIixbQ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxWKSxnKFYsInRpdGxlUGxhY2Vob2xkZXIiLFtNXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInRpdGxlUGxhY2Vob2xkZXIiKSxWKSxnKFYsInJlcGx5T3B0aW9ucyIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwicmVwbHlPcHRpb25zIiksViksZyhWLCJ0YXJnZXRVc2VybmFtZXMiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInRhcmdldFVzZXJuYW1lcyIpLFYpLGcoViwidGFyZ2V0UmVjaXBpZW50c0FycmF5IixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0YXJnZXRSZWNpcGllbnRzQXJyYXkiKSxWKSxnKFYsImNhbnRTdWJtaXRQb3N0IixbQV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW50U3VibWl0UG9zdCIpLFYpLGcoViwicmVxdWlyZWRDYXRlZ29yeU1pc3NpbmciLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInJlcXVpcmVkQ2F0ZWdvcnlNaXNzaW5nIiksViksZyhWLCJ0aXRsZUxlbmd0aFZhbGlkIixbel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0aXRsZUxlbmd0aFZhbGlkIiksViksZyhWLCJoYXNNZXRhRGF0YSIsW1VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiaGFzTWV0YURhdGEiKSxWKSxnKFYsIm1pc3NpbmdUaXRsZUNoYXJhY3RlcnMiLFtGXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsIm1pc3NpbmdUaXRsZUNoYXJhY3RlcnMiKSxWKSxnKFYsIm1pbmltdW1UaXRsZUxlbmd0aCIsW0JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVRpdGxlTGVuZ3RoIiksViksZyhWLCJtaXNzaW5nUmVwbHlDaGFyYWN0ZXJzIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJtaXNzaW5nUmVwbHlDaGFyYWN0ZXJzIiksViksZyhWLCJtaW5pbXVtUG9zdExlbmd0aCIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwibWluaW11bVBvc3RMZW5ndGgiKSxWKSxnKFYsInRpdGxlTGVuZ3RoIixbSF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJ0aXRsZUxlbmd0aCIpLFYpLGcoViwicmVwbHlMZW5ndGgiLFskXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInJlcGx5TGVuZ3RoIiksViksZyhWLCJfc2V0dXBDb21wb3NlciIsW0tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiX3NldHVwQ29tcG9zZXIiKSxWKSxnKFYsImRhdGFDaGFuZ2VkIixbV10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJkYXRhQ2hhbmdlZCIpLFYpLFYpKSk7bWUucmVvcGVuQ2xhc3Moe2NyZWF0ZTpmdW5jdGlvbihlKXtyZXR1cm4oZT1lfHx7fSkudXNlcj1lLnVzZXJ8fGguZGVmYXVsdC5jdXJyZW50KCksZS5zaXRlPWUuc2l0ZXx8Zi5kZWZhdWx0LmN1cnJlbnQoKSxlLnNpdGVTZXR0aW5ncz1lLnNpdGVTZXR0aW5nc3x8RGlzY291cnNlLlNpdGVTZXR0aW5ncyx0aGlzLl9zdXBlcihlKX0sc2VyaWFsaXplVG9Ub3BpYzpmdW5jdGlvbihlLHQpe3Q9dHx8ZSxjZVtlXT10fSxzZXJpYWxpemVPbkNyZWF0ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ZSx1ZVtlXT10fSxzZXJpYWxpemVkRmllbGRzRm9yQ3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHVlKX0sc2VyaWFsaXplVG9EcmFmdDpmdW5jdGlvbihlLHQpe3Q9dHx8ZSxkZVtlXT10LHBlW2VdPXR9LHNlcmlhbGl6ZWRGaWVsZHNGb3JEcmFmdDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhkZSl9LENMT1NFRDpvZSxTQVZJTkc6cmUsT1BFTjphZSxEUkFGVDoiZHJhZnQiLEZVTExTQ1JFRU46bGUsQ1JFQVRFX1RPUElDOlEsQ1JFQVRFX1NIQVJFRF9EUkFGVDpaLEVESVRfU0hBUkVEX0RSQUZUOmVlLFBSSVZBVEVfTUVTU0FHRTp0ZSxSRVBMWTpuZSxFRElUOmllLE5FV19QUklWQVRFX01FU1NBR0VfS0VZOiJuZXdfcHJpdmF0ZV9tZXNzYWdlIixORVdfVE9QSUNfS0VZOiJuZXdfdG9waWMifSksZS5kZWZhdWx0PW1lfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlLWdyb3VwaW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksbz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksaShyPXtpMThuTmFtZUtleTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccy9nLCJfIil9LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKCl7dmFyIGU9ImJhZGdlcy5iYWRnZV9ncm91cGluZy4iK3RoaXMuaTE4bk5hbWVLZXkrIi5uYW1lIjtyZXR1cm4gSTE4bi50KGUse2RlZmF1bHRWYWx1ZTp0aGlzLm5hbWV9KX19LCJpMThuTmFtZUtleSIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaTE4bk5hbWVLZXkiKSxyKSxpKHIsImRpc3BsYXlOYW1lIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJkaXNwbGF5TmFtZSIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9iYWRnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlLWdyb3VwaW5nIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLHMsbyxyLGksYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGQ9aS5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJiYWRnZV90eXBlLm5hbWUiKSxsKGM9e25ld0JhZGdlOigwLG4ubm9uZSkoImlkIiksdXJsOmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5nZXRVUkwoIi9iYWRnZXMvIit0aGlzLmlkKyIvIit0aGlzLnNsdWcpfSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3QuYmFkZ2UmJk9iamVjdC5rZXlzKHQuYmFkZ2UpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG4uc2V0KGUsdC5iYWRnZVtlXSl9KSx0LmJhZGdlX3R5cGVzJiZ0LmJhZGdlX3R5cGVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5pZD09PW4uYmFkZ2VfdHlwZV9pZCYmbi5zZXQoImJhZGdlX3R5cGUiLE9iamVjdC5jcmVhdGUoZSkpfSl9LGJhZGdlVHlwZUNsYXNzTmFtZTpmdW5jdGlvbihlKXtyZXR1cm4iYmFkZ2UtdHlwZS0iKyhlPWV8fCIiKS50b0xvd2VyQ2FzZSgpfSxzYXZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0iL2FkbWluL2JhZGdlcyIsaT0iUE9TVCI7cmV0dXJuIHRoaXMuaWQmJihuKz0iLyIrdGhpcy5pZCxpPSJQVVQiKSwoMCxvLmFqYXgpKG4se3R5cGU6aSxkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnVwZGF0ZUZyb21Kc29uKGUpLHR9KS5jYXRjaChmdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoZSl9KX0sZGVzdHJveTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5ld0JhZGdlP2EuUHJvbWlzZS5yZXNvbHZlKCk6KDAsby5hamF4KSgiL2FkbWluL2JhZGdlcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX19LCJ1cmwiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywidXJsIiksYyksbChjLCJiYWRnZVR5cGVDbGFzc05hbWUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImJhZGdlVHlwZUNsYXNzTmFtZSIpLGMpLGMpKTtkLnJlb3BlbkNsYXNzKHtjcmVhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgbj17fTsiYmFkZ2VfdHlwZXMiaW4gZSYmZS5iYWRnZV90eXBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2UuaWRdPXMuZGVmYXVsdC5jcmVhdGUoZSl9KTt2YXIgaT17fTsiYmFkZ2VfZ3JvdXBpbmdzImluIGUmJmUuYmFkZ2VfZ3JvdXBpbmdzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGlbZS5pZF09ci5kZWZhdWx0LmNyZWF0ZShlKX0pO3ZhciB0PVtdO3JldHVybiJiYWRnZSJpbiBlP3Q9W2UuYmFkZ2VdOmUuYmFkZ2VzJiYodD1lLmJhZGdlcyksdD10Lm1hcChmdW5jdGlvbihlKXt2YXIgdD1kLmNyZWF0ZShlKTtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtiYWRnZV90eXBlOm5bdC5iYWRnZV90eXBlX2lkXSxiYWRnZV9ncm91cGluZzppW3QuYmFkZ2VfZ3JvdXBpbmdfaWRdfSksdH0pLCJiYWRnZSJpbiBlP3RbMF06dH0sZmluZEFsbDpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZSYmZS5vbmx5TGlzdGFibGUmJih0PSI/b25seV9saXN0YWJsZT10cnVlIiksKDAsby5hamF4KSgiL2JhZGdlcy5qc29uIit0LHtkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBkLmNyZWF0ZUZyb21Kc29uKGUpfSl9LGZpbmRCeUlkOmZ1bmN0aW9uKGUpe3JldHVybigwLG8uYWpheCkoIi9iYWRnZXMvIitlKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBkLmNyZWF0ZUZyb21Kc29uKGUpfSl9fSksZS5kZWZhdWx0PWR9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24tZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3B1c2g6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXRlbXN8fCh0aGlzLml0ZW1zPVtdKSx0aGlzLml0ZW1zLnB1c2goZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdHJ1c3QtbGV2ZWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGV0YWlsZWROYW1lOigwLG4uZm10KSgiaWQiLCJuYW1lIiwiJUAgLSAlQCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvc2VhcmNoIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktdGFnLXNlYXJjaCIsImRpc2NvdXJzZS9saWIvdXNlci1zZWFyY2giLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiXSxmdW5jdGlvbihlLGwsbixzLG8saSxyLGEsdSxjLGQscCxtKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZihvLHIpe3I9cnx8e30sby50b3BpY3M9by50b3BpY3N8fFtdLG8udXNlcnM9by51c2Vyc3x8W10sby5wb3N0cz1vLnBvc3RzfHxbXSxvLmNhdGVnb3JpZXM9by5jYXRlZ29yaWVzfHxbXSxvLnRhZ3M9by50YWdzfHxbXSxvLmdyb3Vwcz1vLmdyb3Vwc3x8W107dmFyIHQ9e307by50b3BpY3M9by50b3BpY3MubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlPW0uZGVmYXVsdC5jcmVhdGUoZSksdFtlLmlkXT1lfSksby5wb3N0cz1vLnBvc3RzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VybmFtZSYmKGUudXNlclBhdGg9KDAsdS51c2VyUGF0aCkoZS51c2VybmFtZS50b0xvd2VyQ2FzZSgpKSksKGU9cC5kZWZhdWx0LmNyZWF0ZShlKSkuc2V0KCJ0b3BpYyIsdFtlLnRvcGljX2lkXSksZS5ibHVyYj0oMCxjLmVtb2ppVW5lc2NhcGUpKGUuYmx1cmIpLGV9KSxvLnVzZXJzPW8udXNlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBkLmRlZmF1bHQuY3JlYXRlKGUpfSksby5jYXRlZ29yaWVzPW8uY2F0ZWdvcmllcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGVmYXVsdC5saXN0KCkuZmluZEJ5KCJpZCIsZS5pZCl9KS5jb21wYWN0KCksby5ncm91cHM9by5ncm91cHMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLm5hbWUpLG49SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUuZnVsbF9uYW1lfHxlLmRpc3BsYXlfbmFtZSksaT0oMCxsLmlzRW1wdHkpKGUuZmxhaXJfdXJsKT9udWxsOkhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLmZsYWlyX3VybCkscz1IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS5mbGFpcl9jb2xvciksbz1IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS5mbGFpcl9iZ19jb2xvcik7cmV0dXJue2lkOmUuaWQsZmxhaXJVcmw6aSxmbGFpckNvbG9yOnMsZmxhaXJCZ0NvbG9yOm8sZnVsbE5hbWU6bixuYW1lOnQsdXJsOkRpc2NvdXJzZS5nZXRVUkwoIi9nLyIrdCl9fSkuY29tcGFjdCgpLG8udGFncz1vLnRhZ3MubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLm5hbWUpO3JldHVybiBuLmRlZmF1bHQuY3JlYXRlKHtpZDp0LHVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvdGFnLyIrdCl9KX0pLmNvbXBhY3QoKSxvLnJlc3VsdFR5cGVzPVtdO3ZhciBhPW8uZ3JvdXBlZF9zZWFyY2hfcmVzdWx0O3JldHVybiBhJiZbWyJ0b3BpYyIsInBvc3RzIl0sWyJ1c2VyIiwidXNlcnMiXSxbImdyb3VwIiwiZ3JvdXBzIl0sWyJjYXRlZ29yeSIsImNhdGVnb3JpZXMiXSxbInRhZyIsInRhZ3MiXV0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGk9ZVswXSxzPWVbMV07MDxvW3NdLmxlbmd0aCYmKHQ9ci5zZWFyY2hDb250ZXh0JiYidG9waWMiPT09ci5zZWFyY2hDb250ZXh0LnR5cGUmJiJ0b3BpYyI9PT1pPyJwb3N0IjppLChuPXtyZXN1bHRzOm9bc10sY29tcG9uZW50TmFtZToic2VhcmNoLXJlc3VsdC0iK3QsdHlwZTppLG1vcmU6YVsibW9yZV8iK3NdfSkubW9yZSYmInRvcGljIj09PXQmJnIuZnVsbFNlYXJjaFVybCYmKG4ubW9yZT0hMSxuLm1vcmVVcmw9ci5mdWxsU2VhcmNoVXJsKSxvLnJlc3VsdFR5cGVzLnB1c2gobikpfSksIShvLnRvcGljcy5sZW5ndGh8fG8ucG9zdHMubGVuZ3RofHxvLnVzZXJzLmxlbmd0aHx8by5jYXRlZ29yaWVzLmxlbmd0aCk/bnVsbDpuLmRlZmF1bHQuY3JlYXRlKG8pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYW5zbGF0ZVJlc3VsdHM9ZixlLnNlYXJjaEZvclRlcm09ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt0ZXJtOmUsaW5jbHVkZV9ibHVyYnM6InRydWUifTt0LnR5cGVGaWx0ZXImJihuLnR5cGVfZmlsdGVyPXQudHlwZUZpbHRlcik7dC5zZWFyY2hGb3JJZCYmKG4uc2VhcmNoX2Zvcl9pZD0hMCk7dC5yZXN0cmljdFRvQXJjaGV0eXBlJiYobi5yZXN0cmljdF90b19hcmNoZXR5cGU9dC5yZXN0cmljdFRvQXJjaGV0eXBlKTt0LnNlYXJjaENvbnRleHQmJihuLnNlYXJjaF9jb250ZXh0PXt0eXBlOnQuc2VhcmNoQ29udGV4dC50eXBlLGlkOnQuc2VhcmNoQ29udGV4dC5pZCxuYW1lOnQuc2VhcmNoQ29udGV4dC5uYW1lfSk7dmFyIGk9KDAscy5hamF4KSgiL3NlYXJjaC9xdWVyeSIse2RhdGE6bn0pO3JldHVybiBpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGYoZSx0KX0pLGl9LGUuc2VhcmNoQ29udGV4dERlc2NyaXB0aW9uPWZ1bmN0aW9uKGUsdCl7aWYoZSlzd2l0Y2goZSl7Y2FzZSJ0b3BpYyI6cmV0dXJuIEkxOG4udCgic2VhcmNoLmNvbnRleHQudG9waWMiKTtjYXNlInVzZXIiOnJldHVybiBJMThuLnQoInNlYXJjaC5jb250ZXh0LnVzZXIiLHt1c2VybmFtZTp0fSk7Y2FzZSJjYXRlZ29yeSI6cmV0dXJuIEkxOG4udCgic2VhcmNoLmNvbnRleHQuY2F0ZWdvcnkiLHtjYXRlZ29yeTp0fSk7Y2FzZSJ0YWciOnJldHVybiBJMThuLnQoInNlYXJjaC5jb250ZXh0LnRhZyIse3RhZzp0fSk7Y2FzZSJwcml2YXRlX21lc3NhZ2VzIjpyZXR1cm4gSTE4bi50KCJzZWFyY2guY29udGV4dC5wcml2YXRlX21lc3NhZ2VzIil9fSxlLmdldFNlYXJjaEtleT1mdW5jdGlvbihlKXtyZXR1cm4gZS5xKyJ8IisoZS5zZWFyY2hDb250ZXh0JiZlLnNlYXJjaENvbnRleHQudHlwZXx8IiIpKyJ8IisoZS5zZWFyY2hDb250ZXh0JiZlLnNlYXJjaENvbnRleHQuaWR8fCIiKX0sZS5pc1ZhbGlkU2VhcmNoVGVybT1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJmUudHJpbSgpLmxlbmd0aD49RGlzY291cnNlLlNpdGVTZXR0aW5ncy5taW5fc2VhcmNoX3Rlcm1fbGVuZ3RofSxlLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlPWZ1bmN0aW9uKGUsdCxuLGkpe2Z1bmN0aW9uIHMoKXtuJiZuLnRyaWdnZXIoInNlYXJjaC1hdXRvY29tcGxldGU6YWZ0ZXItY29tcGxldGUiKX1lLmF1dG9jb21wbGV0ZShfLm1lcmdlKHt0ZW1wbGF0ZTooMCxvLmZpbmRSYXdUZW1wbGF0ZSkoImNhdGVnb3J5LXRhZy1hdXRvY29tcGxldGUiKSxrZXk6IiMiLHdpZHRoOiIxMDAlIix0cmVhdEFzVGV4dGFyZWE6ITAsdHJhbnNmb3JtQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dH0sZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxyLnNlYXJjaCkoZSx0KX0sYWZ0ZXJDb21wbGV0ZTpzfSxpKSksRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfbWVudGlvbnMmJmUuYXV0b2NvbXBsZXRlKF8ubWVyZ2Uoe3RlbXBsYXRlOigwLG8uZmluZFJhd1RlbXBsYXRlKSgidXNlci1zZWxlY3Rvci1hdXRvY29tcGxldGUiKSxrZXk6IkAiLHdpZHRoOiIxMDAlIix0cmVhdEFzVGV4dGFyZWE6ITAsdHJhbnNmb3JtQ29tcGxldGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWV8fGUubmFtZX0sZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxhLmRlZmF1bHQpKHt0ZXJtOmUsaW5jbHVkZUdyb3VwczohMH0pfSxhZnRlckNvbXBsZXRlOnN9LGkpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXNlci1zZWFyY2giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2F1dG9jb21wbGV0ZSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LHAsbSxmLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5za2lwU2VhcmNoPXcsZS5lYWdlckNvbXBsZXRlU2VhcmNoPXgsZS5kZWZhdWx0PWZ1bmN0aW9uKGkpe2kudGVybSYmMDxpLnRlcm0ubGVuZ3RoJiYiQCI9PT1pLnRlcm1bMF0mJihpLnRlcm09aS50ZXJtLnN1YnN0cmluZygxKSk7dmFyIHM9aS50ZXJtfHwiIixvPWkuaW5jbHVkZUdyb3VwcyxyPWkuaW5jbHVkZU1lbnRpb25hYmxlR3JvdXBzLGE9aS5pbmNsdWRlTWVzc2FnZWFibGVHcm91cHMsbD1pLmFsbG93ZWRVc2Vycyx1PWkudG9waWNJZCxjPWkuY2F0ZWdvcnlJZCxkPWkuZ3JvdXBNZW1iZXJzT2Y7diYmKHYuYWJvcnQoKSx2PW51bGwpO3JldHVybiBnPXMsbmV3IG4uUHJvbWlzZShmdW5jdGlvbih0KXt2YXIgZT11KyItIitjOygzZTQ8bmV3IERhdGUtYnx8aCE9PWUpJiYoeT17fSksaD1lO3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KHAuQ0FOQ0VMTEVEX1NUQVRVUyl9LDVlMyk7dyhzLGkuYWxsb3dFbWFpbHMpP3QoW10pOl8ocyx1LGMsbyxyLGEsbCxkLGZ1bmN0aW9uKGUpe2NsZWFyVGltZW91dChuKSx0KGZ1bmN0aW9uKGUsdCl7aWYoZT09PXAuQ0FOQ0VMTEVEX1NUQVRVUylyZXR1cm4gZTt2YXIgbj10LmV4Y2x1ZGV8fFtdLGk9dC5saW1pdHx8NSxzPVtdLG89W10scj1bXSxhPVtdO2UudXNlcnMmJmUudXNlcnMuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT1uLmluZGV4T2YoZS51c2VybmFtZSkmJihzLnB1c2goZSksYS5wdXNoKGUpKSxhLmxlbmd0aDw9aX0pO3t2YXIgbDt0LmFsbG93RW1haWxzJiYoMCxmLmVtYWlsVmFsaWQpKHQudGVybSkmJihsPXt1c2VybmFtZTp0LnRlcm19LG89W2xdLGEucHVzaChsKSl9ZS5ncm91cHMmJmUuZ3JvdXBzLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybih0LnRlcm0udG9Mb3dlckNhc2UoKT09PWUubmFtZS50b0xvd2VyQ2FzZSgpfHxhLmxlbmd0aDxpKSYmLTE9PT1uLmluZGV4T2YoZS5uYW1lKSYmKHIucHVzaChlKSxhLnB1c2goZSkpLCEwfSk7cmV0dXJuIGEudXNlcnM9cyxhLmVtYWlscz1vLGEuZ3JvdXBzPXIsYX0oZSxpKSl9KX0pfTt2YXIgaCxiLGcsdix5PXt9O3ZhciBfPSgwLHQuZGVmYXVsdCkoZnVuY3Rpb24obixlLHQsaSxzLG8scixhLGwpe3ZhciB1LGMsZD15W25dO2Q/bChkKToodT14KG4sZXx8dCksIiIhPT1ufHx1Pyh2PSQuYWpheCgoMCxtLnVzZXJQYXRoKSgic2VhcmNoL3VzZXJzIikse2RhdGE6e3Rlcm06bix0b3BpY19pZDplLGNhdGVnb3J5X2lkOnQsaW5jbHVkZV9ncm91cHM6aSxpbmNsdWRlX21lbnRpb25hYmxlX2dyb3VwczpzLGluY2x1ZGVfbWVzc2FnZWFibGVfZ3JvdXBzOm8sZ3JvdXBzOmEsdG9waWNfYWxsb3dlZF91c2VyczpyfX0pLGM9cC5DQU5DRUxMRURfU1RBVFVTLHYudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hIShlLnVzZXJzJiZlLnVzZXJzLmxlbmd0aHx8ZS5ncm91cHMmJmUuZ3JvdXBzLmxlbmd0aHx8ZS5lbWFpbHMmJmUuZW1haWxzLmxlbmd0aCk7dSYmIXQmJihlPXAuQ0FOQ0VMTEVEX1NUQVRVUykseVtuXT1lLGI9bmV3IERhdGUsbj09PWcmJihjPWUpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7dj1udWxsLGwoYyl9KSk6bChwLkNBTkNFTExFRF9TVEFUVVMpKX0sMzAwKTt2YXIgaT0vKFtcdTIwMDAtXHUyMDZGXHUyRTAwLVx1MkU3RlxcJyEiIyQlJigpKixcLzo7PD0+P1xbXF1eYHt8fX5dKXxcc1xzfF5ccyR8XlteK10qXCtbXkBdKiQvO2Z1bmN0aW9uIHcoZSx0KXtyZXR1cm4tMTxlLmluZGV4T2YoIkAiKSYmIXR8fCEhZS5tYXRjaChpKX1mdW5jdGlvbiB4KGUsdCl7cmV0dXJuIiI9PT1lJiYhIXR9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2V4cG9ydC1jc3YiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsaSx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL2V4cG9ydF9jc3YvZXhwb3J0X2VudGl0eS5qc29uIix7bWV0aG9kOiJQT1NUIixkYXRhOntlbnRpdHk6dCxhcmdzOm59fSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZXhwb3J0VXNlckFyY2hpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gbigwLCJ1c2VyX2FyY2hpdmUiKS50aGVuKGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoInVzZXIuZG93bmxvYWRfYXJjaGl2ZS5zdWNjZXNzIikpfSkuY2F0Y2godC5wb3B1cEFqYXhFcnJvcil9LGUuZXhwb3J0RW50aXR5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4oMCxlLHQpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hdXRvY29tcGxldGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiXSxmdW5jdGlvbihlLE8scixTLEMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DQU5DRUxMRURfU1RBVFVTPXZvaWQgMCxlLmRlZmF1bHQ9ZnVuY3Rpb24oYyl7dmFyIGU9dGhpcztpZigwIT09dGhpcy5sZW5ndGgmJigiZGVzdHJveSIhPT1jJiYhYy51cGRhdGVEYXRhfHwoKDAsTy5jYW5jZWwpKEwpLCQodGhpcykub2ZmKCJrZXl1cC5hdXRvY29tcGxldGUiKS5vZmYoImtleWRvd24uYXV0b2NvbXBsZXRlIikub2ZmKCJwYXN0ZS5hdXRvY29tcGxldGUiKS5vZmYoImNsaWNrLmF1dG9jb21wbGV0ZSIpLCQod2luZG93KS5vZmYoImNsaWNrLmF1dG9jb21wbGV0ZSIpLCJkZXN0cm95IiE9PWMpKSl7aWYoYyYmYy5jYW5jZWwmJnRoaXMuZGF0YSgiY2xvc2VBdXRvY29tcGxldGUiKSlyZXR1cm4gdGhpcy5kYXRhKCJjbG9zZUF1dG9jb21wbGV0ZSIpKCksdGhpcztpZigxIT09dGhpcy5sZW5ndGgpcmV0dXJuIHdpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUubG9nKCJXQVJOSU5HOiBwYXNzZWQgbXVsdGlwbGUgZWxlbWVudHMgdG8gJC5hdXRvY29tcGxldGUsIHNraXBwaW5nLiIpLHdpbmRvdy5FcnJvciYmd2luZG93LmNvbnNvbGUubG9nKChuZXcgd2luZG93LkVycm9yKS5zdGFjaykpLHRoaXM7dmFyIHQsbj1jJiZjLmRpc2FibGVkLGQ9bnVsbCxwPW51bGwsbT1udWxsLGY9bnVsbCxoPW51bGwsYj10aGlzLGc9bnVsbCxpPW51bGwsdj0iSU5QVVQiPT09dGhpc1swXS50YWdOYW1lJiYhYy50cmVhdEFzVGV4dGFyZWEseT1bXSx3PWZ1bmN0aW9uKGUpe3ZhciB0O2UmJih2PyhiLnZhbCgiIiksYy5zaW5nbGUmJmIuaGlkZSgpLG8oZSwhMCkpOihjLnRyYW5zZm9ybUNvbXBsZXRlJiYoZT1jLnRyYW5zZm9ybUNvbXBsZXRlKGUpKSxlJiYodD0odD1iLnZhbCgpKS5zdWJzdHJpbmcoMCxmKSsoYy5rZXl8fCIiKStlKyIgIit0LnN1YnN0cmluZyhoKzEsdC5sZW5ndGgpLGIudmFsKHQpLCgwLFMuc2V0Q2FyZXRQb3NpdGlvbikoYlswXSxmKzErZS5sZW5ndGgpLGMmJmMuYWZ0ZXJDb21wbGV0ZSYmYy5hZnRlckNvbXBsZXRlKHQpKSkpLGsoKX07diYmKHQ9TWF0aC5tYXgodGhpcy53aWR0aCgpLDIwMCksYy51cGRhdGVEYXRhPygoZD10aGlzLnBhcmVudCgpKS5maW5kKCIuaXRlbSIpLnJlbW92ZSgpLGIuc2hvdygpKTooZD10aGlzLndyYXAoIjxkaXYgY2xhc3M9J2FjLXdyYXAgY2xlYXJmaXgiKyhuPyIgZGlzYWJsZWQiOiIiKSsiJy8+IikucGFyZW50KCksYy5mdWxsV2lkdGhXcmFwfHxkLndpZHRoKHQpKSxjLnNpbmdsZSYmIWMud2lkdGg/dGhpcy5hdHRyKCJjbGFzcyIsdGhpcy5hdHRyKCJjbGFzcyIpKyIgZnVsbHdpZHRoLWlucHV0Iik6Yy53aWR0aCYmdGhpcy5jc3MoIndpZHRoIixjLndpZHRoKSx0aGlzLmF0dHIoIm5hbWUiLGMudXBkYXRlRGF0YT90aGlzLmF0dHIoIm5hbWUiKTp0aGlzLmF0dHIoIm5hbWUiKSsiLXJlbmFtZWQiKSx0aGlzLnZhbCgpLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbihlKXsiIiE9PWUmJihjLnJldmVyc2VUcmFuc2Zvcm0mJihlPWMucmV2ZXJzZVRyYW5zZm9ybShlKSksYy5zaW5nbGUmJmIuaGlkZSgpLG8oZSwhMSkpfSksYy5pdGVtcyYmYy5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Muc2luZ2xlJiZiLmhpZGUoKSxvKGUsITApfSksdGhpcy52YWwoIiIpLGY9MCxkLmNsaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZm9jdXMoKSwhMH0pKTt2YXIgdT0tMzIseD0ic2tpcCIscz1iLmRhdGEoImNsb3NlQXV0b2NvbXBsZXRlIik7cmV0dXJuIGIuZGF0YSgiY2xvc2VBdXRvY29tcGxldGUiLGZ1bmN0aW9uKCl7cyYmcygpLGsoKX0pLCQod2luZG93KS5vbigiY2xpY2suYXV0b2NvbXBsZXRlIixrKSwkKHRoaXMpLm9uKCJjbGljay5hdXRvY29tcGxldGUiLGspLCQodGhpcykub24oInBhc3RlLmF1dG9jb21wbGV0ZSIsZnVuY3Rpb24oKXsoMCxPLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBiLnRyaWdnZXIoImtleWRvd24iKX0sNTApfSksJCh0aGlzKS5vbigia2V5dXAuYXV0b2NvbXBsZXRlIixmdW5jdGlvbihlKXtpZigtMSE9PVtJLmVzYyxJLmVudGVyXS5pbmRleE9mKGUud2hpY2gpKXJldHVybiEwO3ZhciB0LG4saT0oMCxTLmNhcmV0UG9zaXRpb24pKGJbMF0pLHM9YlswXS52YWx1ZVtpLTFdO2Mua2V5JiYoIWMub25LZXlVcHx8cz09PWMua2V5fHwodD1jLm9uS2V5VXAoYi52YWwoKSxpKSkmJihmPWktdFswXS5sZW5ndGgsaD1mK3RbMF0ubGVuZ3RoLTEsVChqKHRbMF0uc3Vic3RyaW5nKDEsdFswXS5sZW5ndGgpLGMpKSkpLG51bGw9PT1mJiYwPGk/cz09PWMua2V5JiYobj1iLnZhbCgpLmNoYXJBdChpLTIpLCFFKCl8fG4mJiFELnRlc3Qobil8fChmPWg9aS0xLFQoaigiIixjKSkpKTpudWxsIT09ZiYmVChqKGIudmFsKCkuc3Vic3RyaW5nKGYrKGMua2V5PzE6MCksaSksYykpfSksJCh0aGlzKS5vbigia2V5ZG93bi5hdXRvY29tcGxldGUiLGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG8scixhLGwsdT12b2lkIDA7aWYoZS5jdHJsS2V5fHxlLmFsdEtleXx8ZS5tZXRhS2V5KXJldHVybiEwO2lmKGMuYWxsb3dBbnkmJigoMCxPLmNhbmNlbCkoTCksTD0oMCxPLmxhdGVyKShmdW5jdGlvbigpezA9PT15Lmxlbmd0aCYmeS5wdXNoKCIiKSxfLmlzU3RyaW5nKHlbMF0pJiYwPGIudmFsKCkubGVuZ3RoJiYoeS5wb3AoKSx5LnB1c2goYi52YWwoKSksYy5vbkNoYW5nZUl0ZW1zJiZjLm9uQ2hhbmdlSXRlbXMoeSkpfSw1MCkpLGMua2V5fHwoZj0wKSxlLndoaWNoIT09SS5zaGlmdCl7aWYobnVsbD09PWYmJmUud2hpY2g9PT1JLmJhY2tTcGFjZSYmYy5rZXkpZm9yKHQ9KDAsUy5jYXJldFBvc2l0aW9uKShiWzBdKSxpPS0tdCxvPSEwO28mJjA8PXQ7KXtpZigtLXQsKHM9YlswXS52YWx1ZVt0XSk9PT1jLmtleSYmKHM9YlswXS52YWx1ZVt0LTFdLEUoe2JhY2tTcGFjZTohMH0pJiYoIXN8fEQudGVzdChzKSkpKXJldHVybiBmPXQsdT1oPWksVChqKHI9YlswXS52YWx1ZS5zdWJzdHJpbmcodCsxLGkpLGMpKSwhMDtvPS9bYS16QS1aXC4tXS8udGVzdChzKX1pZihlLndoaWNoPT09SS5lc2MpcmV0dXJuIG51bGw9PT1nfHwoaygpLCExKTtpZihudWxsIT09Zil7aWYodT0oMCxTLmNhcmV0UG9zaXRpb24pKGJbMF0pLGUud2hpY2g9PT1JLnJpZ2h0QXJyb3cmJiIgIj09PWJbMF0udmFsdWVbdV0pcmV0dXJuIGsoKSwhMDtpZih1PD1mJiZjLmtleSlyZXR1cm4gaygpLCEwO3N3aXRjaChlLndoaWNoKXtjYXNlIEkuZW50ZXI6Y2FzZSBJLnRhYjpyZXR1cm4gcD8hKDA8PW0mJihsPXBbbV0pKXx8KHcobCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6ITA7Y2FzZSBJLnVwQXJyb3c6cmV0dXJuLS1tPDAmJihtPTApLFAoKSwhMTtjYXNlIEkuZG93bkFycm93OnJldHVybihhPXAubGVuZ3RoKTw9KG0rPTEpJiYobT1hLTEpLG08MCYmKG09MCksUCgpLCExO2Nhc2UgSS5iYWNrU3BhY2U6cmV0dXJuKGg9dSwtLXU8MCk/KGsoKSx2JiYobj1kLmZpbmQoImE6bGFzdCIpKSYmbi5jbGljaygpLCEwKToocj1iLnZhbCgpLnN1YnN0cmluZyhmKyhjLmtleT8xOjApLHUpLGY9PT11JiZyPT09Yy5rZXkmJmsoKSxUKGoocixjKSksITApO2RlZmF1bHQ6cmV0dXJuIGg9dSwhMH19fX0pLHRoaXN9ZnVuY3Rpb24gaygpe2cmJmcuaGlkZSgpLnJlbW92ZSgpLGk9cD1mPWc9bnVsbH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49ZTtjLnRyYW5zZm9ybUNvbXBsZXRlJiYobj1jLnRyYW5zZm9ybUNvbXBsZXRlKG4pKSxjLnNpbmdsZSYmKHk9W10pO3ZhciBpPShfLmlzQXJyYXkobik/bjpbbnx8ZV0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD0kKCI8ZGl2IGNsYXNzPSdpdGVtJz48c3Bhbj4iK2UrIjxhIGNsYXNzPSdyZW1vdmUnIGhyZWY+IisoMCxyLmljb25IVE1MKSgidGltZXMiKSsiPC9hPjwvc3Bhbj48L2Rpdj4iKSxuPWIucGFyZW50KCkuZmluZCgiLml0ZW06bGFzdCIpO3JldHVybiAwPT09bi5sZW5ndGg/Yi5wYXJlbnQoKS5wcmVwZW5kKHQpOm4uYWZ0ZXIodCkseS5wdXNoKGUpLHRbMF19KTtjLm9uQ2hhbmdlSXRlbXMmJnQmJmMub25DaGFuZ2VJdGVtcyh5KSwkKGkpLmZpbmQoImEiKS5jbGljayhmdW5jdGlvbigpe3JldHVybiBrKCkseS5zcGxpY2UoJC5pbkFycmF5KG4seSksMSksJCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5yZW1vdmUoKSxjLnNpbmdsZSYmYi5zaG93KCksYy5vbkNoYW5nZUl0ZW1zJiZjLm9uQ2hhbmdlSXRlbXMoeSksITF9KX1mdW5jdGlvbiBQKCl7dmFyIGU9Zy5maW5kKCJsaSBhIik7cmV0dXJuIGUucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksJChlW21dKS5hZGRDbGFzcygic2VsZWN0ZWQiKX1mdW5jdGlvbiBqKGUsdCl7cmV0dXJuIGk9PT1lP3g6MCE9PShpPWUpLmxlbmd0aCYmMD09PWUudHJpbSgpLmxlbmd0aD8oaygpLG51bGwpOnQuZGF0YVNvdXJjZShlKX1mdW5jdGlvbiBUKGUpe2lmKG51bGwhPT1mJiZlIT09eCl7aWYoZSYmZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgZS50aGVuKXJldHVybiBnJiZnLmhpZGUoKS5yZW1vdmUoKSx2b2lkIGUudGhlbihUKTt2YXIgdCxuLGkscyxvLHIsYSxsO2UhPT1NJiYoKHA9ZSkmJjAhPT1lLmxlbmd0aD8oZyYmZy5oaWRlKCkucmVtb3ZlKCksMCE9PXAubGVuZ3RoJiYodD0oZz0kKGMudGVtcGxhdGUoe29wdGlvbnM6cH0pKSkuZmluZCgidWwiKSxtPTAsUCgpLHQuZmluZCgibGkiKS5jbGljayhmdW5jdGlvbigpe3JldHVybiBtPXQuZmluZCgibGkiKS5pbmRleCh0aGlzKSx3KHBbbV0pLCExfSksbj1udWxsLGk9cz0wLHY/KG49e2xlZnQ6MCx0b3A6MH0scz11LGk9MCk6KG49Yi5jYXJldFBvc2l0aW9uKHtwb3M6ZisxfSksaT0xMCxjLnRyZWF0QXNUZXh0YXJlYSYmKHM9LTMyKSksZy5jc3Moe2xlZnQ6Ii0xMDAwcHgifSksYy5hcHBlbmRTZWxlY3Rvcj9iLnBhcmVudHMoYy5hcHBlbmRTZWxlY3RvcikuYXBwZW5kKGcpOmIucGFyZW50KCkuYXBwZW5kKGcpLHZ8fGMudHJlYXRBc1RleHRhcmVhfHwocz1nLmhlaWdodCgpLHdpbmRvdy5pbm5lckhlaWdodC1iLm91dGVySGVpZ2h0KCktJCgiaGVhZGVyLmQtaGVhZGVyIikuaW5uZXJIZWlnaHQoKTxzJiZzPm4udG9wJiYocz11KSxDLmRlZmF1bHQuY3VycmVudFByb3AoIm1vYmlsZVZpZXciKSYmKGIuaGVpZ2h0KCkvMj49bi50b3AmJihzPXUpLGIud2lkdGgoKS8yPD1uLmxlZnQmJihpPS1nLndpZHRoKCkpKSksbz1iLnBvc2l0aW9uKCkscj1wYXJzZUludChiLmNzcygiYm9yZGVyLXRvcC13aWR0aCIpLDEwKXx8MCwoYT1vLmxlZnQrbi5sZWZ0K2kpPDAmJihhPTApLGw9Yi5vZmZzZXQoKS50b3Asby50b3Arbi50b3Arci1zK2w8MzAmJihzPXUpLGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDpvLnRvcCtuLnRvcC1zK3IrInB4IixsZWZ0OmErInB4In0pKSk6aygpKX19ZnVuY3Rpb24gRShlKXtyZXR1cm4hYy50cmlnZ2VyUnVsZXx8Yy50cmlnZ2VyUnVsZShiWzBdLGUpfX07dmFyIE09ZS5DQU5DRUxMRURfU1RBVFVTPSJfX0NBTkNFTExFRCIsRD0vW1xzXHRcW1x7XChcL10vLEk9e2JhY2tTcGFjZTo4LHRhYjo5LGVudGVyOjEzLHNoaWZ0OjE2LGN0cmw6MTcsYWx0OjE4LGVzYzoyNyxzcGFjZTozMixsZWZ0V2luZG93czo5MSxyaWdodFdpbmRvd3M6OTIscGFnZVVwOjMzLHBhZ2VEb3duOjM0LGVuZDozNSxob21lOjM2LGxlZnRBcnJvdzozNyx1cEFycm93OjM4LHJpZ2h0QXJyb3c6MzksZG93bkFycm93OjQwLGluc2VydDo0NSxkZWxldGVLZXk6NDYsemVybzo0OCxhOjY1LHo6OTB9LEw9dm9pZCAwfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2FmdGVyLXRyYW5zaXRpb24iLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuICQoZSkub24ocyxmdW5jdGlvbihlKXtpZihlLnRhcmdldD09PWUuY3VycmVudFRhcmdldClyZXR1cm4gdChlKX0pfTt2YXIgdCxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGk9e3dlYmtpdDoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96OiJ0cmFuc2l0aW9uZW5kIixPOiJvVHJhbnNpdGlvbkVuZCIsbXM6Ik1TVHJhbnNpdGlvbkVuZCJ9LHM9KHQ9InRyYW5zaXRpb25lbmQiLE9iamVjdC5rZXlzKGkpLnNvbWUoZnVuY3Rpb24oZSl7aWYoZSsiVHJhbnNpdGlvblByb3BlcnR5ImluIG4uc3R5bGUpcmV0dXJuIHQ9aVtlXSwhMH0pLHQpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3NhZmFyaS1oYWNrcyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLGMsZCxwKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBtPSEoZS5pc1dvcmthcm91bmRBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gbX0pO2Z1bmN0aW9uIGYoZSl7dmFyIGwsdCxuLGkscyxvLHIsYTtmdW5jdGlvbiB1KGUsdCl7JChlKS5kYXRhKCJsaXN0ZW5pbmciKXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdCksJChlKS5kYXRhKCJsaXN0ZW5pbmciLCEwKSl9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJjYXBhYmlsaXRpZXM6bWFpbiIpLmlzSU9TJiYhKDAscC5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpJiYobD1lWzBdLHQ9bC5zdHlsZS5oZWlnaHQsbj0wLGk9bnVsbCxmLmJsdXI9ZnVuY3Rpb24oZSl7bSYmKCQoImJvZHkiKS5yZW1vdmVDbGFzcygiaW9zLXNhZmFyaS1jb21wb3Nlci1oYWNrcyIpLCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfHwobC5zdHlsZS5oZWlnaHQ9dCwoMCxjLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiAkKGwpLnJlbW92ZUNsYXNzKCJuby10cmFuc2l0aW9uIil9LDUwMCkpLCQod2luZG93KS5zY3JvbGxUb3AobiksZSYmZS50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIscyksbT0hMSl9LHM9KDAsZC5kZWZhdWx0KShmdW5jdGlvbihlKXtpJiYoImhpZGRlbiI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fCQoaSkuaGFzQ2xhc3MoInNlbGVjdC1raXQtaGVhZGVyIil8fCQoaSkuY2xvc2VzdCgiLmF1dG9jb21wbGV0ZSIpLmxlbmd0aHx8InRleHRhcmVhIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWl8fFsic3BhbiIsInN2ZyIsImJ1dHRvbiJdLmluY2x1ZGVzKGkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpfHxmLmJsdXIoZSl9LDI1MCksbz1mdW5jdGlvbihhKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHMpLGUuZmluZCgiLnNlbGVjdC1raXQuaXMtZXhwYW5kZWQgPiBidXR0b24iKS50cmlnZ2VyKCJjbGljayIpLGUuZmluZCgiLnNlbGVjdC1raXQgPiBidXR0b24uaXMtZm9jdXNlZCIpLnJlbW92ZUNsYXNzKCJpcy1mb2N1c2VkIiksMDwkKHdpbmRvdykuc2Nyb2xsVG9wKCkmJihuPSQod2luZG93KS5zY3JvbGxUb3AoKSksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyO2lmKCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpJiZ3aW5kb3cuaW5uZXJIZWlnaHQtd2luZG93LnZpc3VhbFZpZXdwb3J0LmhlaWdodDw3NSlyZXR1cm47IjBweCIhPT1sLnN0eWxlLnRvcD90aGlzLmRpc2FibGVkfHwoJCgiYm9keSIpLmFkZENsYXNzKCJpb3Mtc2FmYXJpLWNvbXBvc2VyLWhhY2tzIiksJCh3aW5kb3cpLnNjcm9sbFRvcCgwKSxlPTIwLHQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXskKHdpbmRvdykuc2Nyb2xsVG9wKDApLDA9PWUtLSYmY2xlYXJJbnRlcnZhbCh0KX0sMTApLCgwLHAuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfHwoaT13aW5kb3cuaW5uZXJIZWlnaHQtMjcwLHM9d2luZG93LmlubmVySGVpZ2h0PndpbmRvdy5pbm5lcldpZHRoLG89NDA8KHM/d2luZG93LnNjcmVlbi5oZWlnaHQ6d2luZG93LnNjcmVlbi53aWR0aCktd2luZG93LmlubmVySGVpZ2h0LHM/KDU2OD09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT0yNzApLDY2Nz09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzI5NTozMjUpLDczNj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzM1MzozODMpLDgxMj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzM0MDozNzApLDg5Nj09PXdpbmRvdy5zY3JlZW4uaGVpZ2h0JiYoaT1vPzQxMDo0NDApLDkyMDx3aW5kb3cuaW5uZXJIZWlnaHQmJihpLT00NSkpOjY2NTx3aW5kb3cuaW5uZXJIZWlnaHQmJihpLT0xMjgpLG49TWF0aC5tYXgoaSwyNzApLGwuc3R5bGUuaGVpZ2h0PW4rInB4IiwkKGwpLmFkZENsYXNzKCJuby10cmFuc2l0aW9uIikpLGEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzKCksbT0hMCk6dGhpcyE9PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihhLnByZXZlbnREZWZhdWx0KCksdGhpcy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoLTIwMHB4KSIsdGhpcy5mb2N1cygpLHI9dGhpcyxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5zdHlsZS50cmFuc2Zvcm09Im5vbmUifSwzMCkpfSwzNTApfSxyPWZ1bmN0aW9uKGUpe2UmJmUudGFyZ2V0JiYoaT1lLnRhcmdldCl9LGE9KDAsZC5kZWZhdWx0KShmdW5jdGlvbigpe3UobCxyKSxlLmZpbmQoImlucHV0W3R5cGU9dGV4dF0sdGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7dSh0aGlzLG8pfSl9LDEwMCksbmV3IE11dGF0aW9uT2JzZXJ2ZXIoYSkub2JzZXJ2ZShsLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiExLGNoYXJhY3RlckRhdGE6ITF9KSl9ZS5kZWZhdWx0PWZ9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9lbWFpbC10ZW1wbGF0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2Jhc2VQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIi9hZG1pbi9jdXN0b21pemUvIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL2dyb3VwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YXBwZW5kUXVlcnlQYXJhbXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0LCIuanNvbiIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvbm90aWZpY2F0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2FjaGU6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Bvc3QtcmVwbHktaGlzdG9yeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHMsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7dmFyIGk9RGlzY291cnNlLlNpdGVTZXR0aW5ncy5tYXhfcmVwbHlfaGlzdG9yeTtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIituLnBvc3RJZCsiL3JlcGx5LWhpc3Rvcnk/bWF4X3JlcGxpZXM9IitpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybntwb3N0X3JlcGx5X2hpc3RvcmllczplfX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvcG9zdC1yZXBseSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLGksdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL3Bvc3RzLyIrbi5wb3N0SWQrIi9yZXBsaWVzIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm57cG9zdF9yZXBsaWVzOmV9fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLHMsbyxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1vLmRlZmF1bHQuZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0LG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJue3Bvc3Q6ZX19KX0sY3JlYXRlUmVjb3JkOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0oMCxyLnVuZGVyc2NvcmUpKHQpO3JldHVybiBuLm5lc3RlZF9wb3N0PSEwLCgwLHMuYWpheCkodGhpcy5wYXRoRm9yKGUsdCkse21ldGhvZDoiUE9TVCIsZGF0YTpufSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8uUmVzdWx0KGVbaV0sZSl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2hhc2giLCJAZW1iZXIvc3RyaW5nIl0sZnVuY3Rpb24oZSx0LHIsaSxhKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuUmVzdWx0PWw7dmFyIHM9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LG49WyJwbHVnaW4iLCJ0aGVtZSIsImVtYmVkZGFibGUtaG9zdCIsIndlYi1ob29rIiwid2ViLWhvb2stZXZlbnQiLCJmbGFnZ2VkLXRvcGljIl07ZnVuY3Rpb24gbChlLHQpe3RoaXMucGF5bG9hZD1lLHRoaXMucmVzcG9uc2VKc29uPXQsdGhpcy50YXJnZXQ9bnVsbH1mdW5jdGlvbiBvKGUpe2lmKDQwND09PWUuc3RhdHVzKXRocm93IG5ldyBFcnJvcigiNDA0OiAiK2UucmVzcG9uc2VUZXh0KTt0aHJvdyBlfWUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzdG9yYWdlS2V5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbiYmbi5jYWNoZUtleT9uLmNhY2hlS2V5OmUrIl8iK01hdGguYWJzKCgwLGkuaGFzaFN0cmluZykoSlNPTi5zdHJpbmdpZnkodCkpKX0sYmFzZVBhdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4tMSE9PW4uaW5kZXhPZih0LnJlcGxhY2UoIl8iLCItIikpPyIvYWRtaW4vIjoiLyJ9LGFwcGVuZFF1ZXJ5UGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXtpZih0KXtpZigib2JqZWN0IiE9PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnModCkpKXJldHVybiBlKyIvIitlbmNvZGVVUklDb21wb25lbnQodCkrKG58fCIiKTt2YXIgaT1PYmplY3Qua2V5cyh0KS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIXRbZV19KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0W2VdKX0pO2lmKGkubGVuZ3RoKXJldHVybiIiK2UrKG58fCIiKSsiPyIraS5qb2luKCImIil9cmV0dXJuIGV9LHBhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuYmFzZVBhdGgoZSx0LG4pKygwLGEudW5kZXJzY29yZSkoZS5wbHVyYWxpemUodGhpcy5hcGlOYW1lRm9yKHQpKSk7cmV0dXJuIHRoaXMuYXBwZW5kUXVlcnlQYXJhbXMoaSxuKX0sYXBpTmFtZUZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZX0sZmluZEFsbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pKS5jYXRjaChvKX0sZmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pKS5jYXRjaChvKX0sZmluZFN0YWxlOmZ1bmN0aW9uKGUsdCxuLGkpe2lmKHRoaXMuY2FjaGVkKXJldHVybiB0aGlzLmNhY2hlZFt0aGlzLnN0b3JhZ2VLZXkodCxuLGkpXX0sY2FjaGVGaW5kOmZ1bmN0aW9uKGUsdCxuLGkscyl7dGhpcy5jYWNoZWQ9dGhpcy5jYWNoZWR8fHt9LHRoaXMuY2FjaGVkW3RoaXMuc3RvcmFnZUtleSh0LG4saSldPXN9LGpzb25Nb2RlOiExLGdldFBheWxvYWQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj17bWV0aG9kOmUsZGF0YTp0fTtyZXR1cm4gdGhpcy5qc29uTW9kZSYmKG4uY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL2pzb24iLG4uZGF0YT1KU09OLnN0cmluZ2lmeSh0KSksbn0sdXBkYXRlOmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPXt9LG89KDAsYS51bmRlcnNjb3JlKSh0aGlzLmFwaU5hbWVGb3IodCkpO3JldHVybiBzW29dPWksKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0LG4pLHRoaXMuZ2V0UGF5bG9hZCgiUFVUIixzKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGwoZVtvXSxlKX0pfSxjcmVhdGVSZWNvcmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXt9LHM9KDAsYS51bmRlcnNjb3JlKSh0aGlzLmFwaU5hbWVGb3IodCkpO3JldHVybiBpW3NdPW4sKDAsci5hamF4KSh0aGlzLnBhdGhGb3IoZSx0KSx0aGlzLmdldFBheWxvYWQoIlBPU1QiLGkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgbChlW3NdLGUpfSl9LGRlc3Ryb3lSZWNvcmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLHIuYWpheCkodGhpcy5wYXRoRm9yKGUsdCxuLmdldCgiaWQiKSkse21ldGhvZDoiREVMRVRFIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmV2aWV3YWJsZS1leHBsYW5hdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2pzb25Nb2RlOiEwLHBhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvcmV2aWV3LyIrbisiL2V4cGxhaW4uanNvbiJ9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy9yZXZpZXdhYmxlLXNldHRpbmdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvYWRhcHRlcnMvcmVzdCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGF0aEZvcjpmdW5jdGlvbigpe3JldHVybiIvcmV2aWV3L3NldHRpbmdzIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jldmlld2FibGUtdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtwYXRoRm9yOmZ1bmN0aW9uKCl7cmV0dXJuIi9yZXZpZXcvdG9waWNzIn19KX0pLGRlZmluZSgiZGlzY291cnNlL2FkYXB0ZXJzL3Jldmlld2FibGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtqc29uTW9kZTohMCxwYXRoRm9yOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5hcHBlbmRRdWVyeVBhcmFtcygiL3JldmlldyIsbil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9hZGFwdGVycy90YWctaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvdGFnLyIrbisiL2luZm8ifX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdGFnLW5vdGlmaWNhdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhdGhGb3I6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiIvdGFnLyIrbisiL25vdGlmaWNhdGlvbnMifX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdG9waWMtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2FkYXB0ZXJzL3Jlc3QiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSxvLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEoaSxzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZSxuLHQ9RGlzY291cnNlLmdldFVSTCgiLyIpK2krIi5qc29uIjtyZXR1cm4gcyYmKGU9T2JqZWN0LmtleXMocyksbj1bXSxlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZW5jb2RlVVJJKHNbZV0pO3ZvaWQgMCE9PXQmJm4ucHVzaChlKyI9Iit0KX0pLDA8bi5sZW5ndGgmJih0Kz0iPyIrbi5qb2luKCImIikpKSwoMCxvLmFqYXgpKHQpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5maW5kZXJGb3I9YSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlLHQsbil7dmFyIGk9bi5maWx0ZXIscz1uLnBhcmFtcztyZXR1cm4gci5kZWZhdWx0LmdldEFuZFJlbW92ZSgidG9waWNfbGlzdF8iK2ksYShpLHMpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcj1pLGUucGFyYW1zPXMsZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvYWRhcHRlcnMvdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9hZGFwdGVycy9yZXN0Il0sZnVuY3Rpb24oZSxpLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuLnNpbWlsYXI/KDAsaS5hamF4KSgiL3RvcGljcy9zaW1pbGFyX3RvIix7ZGF0YTpuLnNpbWlsYXJ9KTp0aGlzLl9zdXBlcihlLHQsbil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTUFYX01FU1NBR0VfTEVOR1RIPXZvaWQgMDtlLk1BWF9NRVNTQUdFX0xFTkdUSD01MDA7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe25vdEN1c3RvbUZsYWc6KDAsdC5ub3QpKCJpc19jdXN0b21fZmxhZyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbW9kZWxzL2FjdGlvbi1zdW1tYXJ5IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQscixuLGkscyxvLGEsbCx1LGMsZCxwLG0sZixoLGIsZyx2KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24geShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgXyx3LHgsayxQLGosVCxFLE8sUyxDO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgTT1vLmRlZmF1bHQuZXh0ZW5kKChfPSgwLHQuZGVmYXVsdCkoInVybCIpLHc9KDAsdC5kZWZhdWx0KSgibmFtZSIsInVzZXJuYW1lIikseD0oMCx0LmRlZmF1bHQpKCJmaXJzdFBvc3QiLCJkZWxldGVkX2J5IiwidG9waWMuZGVsZXRlZF9ieSIpLGs9KDAsdC5kZWZhdWx0KSgiZmlyc3RQb3N0IiwiZGVsZXRlZF9hdCIsInRvcGljLmRlbGV0ZWRfYXQiKSxQPSgwLHQuZGVmYXVsdCkoInBvc3RfbnVtYmVyIiwidG9waWNfaWQiLCJ0b3BpYy5zbHVnIiksaj0oMCx0LmRlZmF1bHQpKCJwb3N0X251bWJlciIsInVybCIpLFQ9KDAsdC5kZWZhdWx0KSgidXNlcm5hbWUiKSxFPSgwLHQuZGVmYXVsdCkoImxpbmtfY291bnRzLkBlYWNoLmludGVybmFsIiksTz0oMCx0LmRlZmF1bHQpKCJhY3Rpb25zX3N1bW1hcnkuQGVhY2guY2FuX2FjdCIpLHkoUz17c2l0ZVNldHRpbmdzOigwLHIuY29tcHV0ZWQpKHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLlNpdGVTZXR0aW5nc30sc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3N9fSksc2hhcmVVcmw6ZnVuY3Rpb24oZSl7dmFyIHQ9Zy5kZWZhdWx0LmN1cnJlbnQoKSxuPXQ/Ij91PSIrdC51c2VybmFtZV9sb3dlcjoiIjtyZXR1cm4gdGhpcy5maXJzdFBvc3Q/dGhpcy5nZXQoInRvcGljLnVybCIpK246ZStufSxuZXdfdXNlcjooMCxpLmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDApLGZpcnN0UG9zdDooMCxpLmVxdWFsKSgicG9zdF9udW1iZXIiLDEpLGRlbGV0ZWRWaWFUb3BpYzooMCxpLmFuZCkoImZpcnN0UG9zdCIsInRvcGljLmRlbGV0ZWRfYXQiKSxkZWxldGVkOigwLGkub3IpKCJkZWxldGVkX2F0IiwiZGVsZXRlZFZpYVRvcGljIiksbm90RGVsZXRlZDooMCxpLm5vdCkoImRlbGV0ZWQiKSxzaG93TmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZlIT09dCYmRGlzY291cnNlLlNpdGVTZXR0aW5ncy5kaXNwbGF5X25hbWVfb25fcG9zdHN9LHBvc3REZWxldGVkQnk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0scG9zdERlbGV0ZWRBdDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU/bjp0fSx1cmw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGQucG9zdFVybCkobnx8dGhpcy50b3BpY19zbHVnLHR8fHRoaXMuZ2V0KCJ0b3BpYy5pZCIpLGUpfSx1cmxXaXRoTnVtYmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDE9PT1lP3QrIi8xIjp0fSx1c2VybmFtZVVybDptLnVzZXJQYXRoLHRvcGljT3duZXI6KDAsdS5wcm9wZXJ0eUVxdWFsKSgidG9waWMuZGV0YWlscy5jcmVhdGVkX2J5LmlkIiwidXNlcl9pZCIpLHVwZGF0ZVBvc3RGaWVsZDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT17fTtyZXR1cm4gaVtlXT10LCgwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi8iK2Use3R5cGU6IlBVVCIsZGF0YTppfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLnNldChlLHQpfSkuY2F0Y2goYS5wb3B1cEFqYXhFcnJvcil9LGludGVybmFsTGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4oMCxuLmlzRW1wdHkpKHRoaXMubGlua19jb3VudHMpP251bGw6dGhpcy5saW5rX2NvdW50cy5maWx0ZXJCeSgiaW50ZXJuYWwiKS5maWx0ZXJCeSgidGl0bGUiKX0sZmxhZ3NBdmFpbGFibGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnNpdGU/dGhpcy5zaXRlLmZsYWdUeXBlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0KCJhY3Rpb25CeU5hbWUuIitlLm5hbWVfa2V5KyIuY2FuX2FjdCIpfSk6W119LGFmdGVyVXBkYXRlOmZ1bmN0aW9uKGUpe2UuY2F0ZWdvcnkmJnRoaXMuc2l0ZS51cGRhdGVDYXRlZ29yeShlLmNhdGVnb3J5KX0sdXBkYXRlUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybntwb3N0OntyYXc6dGhpcy5yYXcsZWRpdF9yZWFzb246dGhpcy5lZGl0UmVhc29ufSxpbWFnZV9zaXplczp0aGlzLmltYWdlU2l6ZXN9fSxjcmVhdGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRQcm9wZXJ0aWVzKGYuZGVmYXVsdC5zZXJpYWxpemVkRmllbGRzRm9yQ3JlYXRlKCkpO3QucmVwbHlfdG9fcG9zdF9udW1iZXI9dGhpcy5yZXBseV90b19wb3N0X251bWJlcix0LmltYWdlX3NpemVzPXRoaXMuaW1hZ2VTaXplczt2YXIgbj10aGlzLm1ldGFEYXRhO3JldHVybiBuJiYodC5tZXRhX2RhdGE9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5tZXRhX2RhdGFbZV09bltlXX0pKSx0fSxleHBhbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi9leHBhbmQtZW1iZWQiKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb29rZWQiLCc8c2VjdGlvbiBjbGFzcz0iZXhwYW5kZWQtZW1iZWQiPicrZS5jb29rZWQrIjwvc2VjdGlvbj4iKX0pfSxyZWNvdmVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPXRoaXMuZ2V0UHJvcGVydGllcygiZGVsZXRlZF9hdCIsImRlbGV0ZWRfYnkiLCJ1c2VyX2RlbGV0ZWQiLCJjYW5fZGVsZXRlIik7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCx1c2VyX2RlbGV0ZWQ6ITEsY2FuX2RlbGV0ZTohMX0pLCgwLHMuYWpheCkoIi9wb3N0cy8iK3RoaXMuaWQrIi9yZWNvdmVyIix7dHlwZToiUFVUIixjYWNoZTohMX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtjb29rZWQ6ZS5jb29rZWQscmF3OmUucmF3LHVzZXJfZGVsZXRlZDohMSxjYW5fZGVsZXRlOiEwLHZlcnNpb246ZS52ZXJzaW9ufSl9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxhLnBvcHVwQWpheEVycm9yKShlKSx0LnNldFByb3BlcnRpZXMobil9KX0sc2V0RGVsZXRlZFN0YXRlOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcyxpPXZvaWQgMDtyZXR1cm4gdGhpcy5zZXQoIm9sZENvb2tlZCIsdGhpcy5jb29rZWQpLGUuc3RhZmZ8fDA9PT1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmRlbGV0ZV9yZW1vdmVkX3Bvc3RzX2FmdGVyP3RoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpuZXcgRGF0ZSxkZWxldGVkX2J5OmUsY2FuX2RlbGV0ZTohMSxjYW5fcmVjb3ZlcjohMH0pOih0PTE9PT10aGlzLnBvc3RfbnVtYmVyPyJ0b3BpYy5kZWxldGVkX2J5X2F1dGhvciI6InBvc3QuZGVsZXRlZF9ieV9hdXRob3IiLGk9KDAscC5jb29rQXN5bmMpKEkxOG4udCh0LHtjb3VudDpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmRlbGV0ZV9yZW1vdmVkX3Bvc3RzX2FmdGVyfSkpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHtjb29rZWQ6ZSxjYW5fZGVsZXRlOiExLHZlcnNpb246bi52ZXJzaW9uKzEsY2FuX3JlY292ZXI6ITAsY2FuX2VkaXQ6ITEsdXNlcl9kZWxldGVkOiEwfSl9KSksaXx8aC5Qcm9taXNlLnJlc29sdmUoKX0sdW5kb0RlbGV0ZVN0YXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRDb29rZWQmJnRoaXMuc2V0UHJvcGVydGllcyh7ZGVsZXRlZF9hdDpudWxsLGRlbGV0ZWRfYnk6bnVsbCxjb29rZWQ6dGhpcy5vbGRDb29rZWQsdmVyc2lvbjp0aGlzLnZlcnNpb24tMSxjYW5fcmVjb3ZlcjohMSxjYW5fZGVsZXRlOiEwLHVzZXJfZGVsZXRlZDohMX0pfSxkZXN0cm95OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0RGVsZXRlZFN0YXRlKGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0LmlkLHtkYXRhOntjb250ZXh0OndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0sdHlwZToiREVMRVRFIn0pfSl9LHVwZGF0ZUZyb21Qb3N0OmZ1bmN0aW9uKHMpe3ZhciBvPXRoaXM7T2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zW2VdLG49KG49b1tlXSl8fG51bGwsaT0hMTsiZnVuY3Rpb24iIT10eXBlb2YodD10fHxudWxsKSYmbiE9PXQmJigicmVwbHlfdG9fdXNlciI9PT1lJiZ0JiZuJiYoaT10LnVzZXJuYW1lPT09bi51c2VybmFtZXx8KDAsci5nZXQpKHQsInVzZXJuYW1lIik9PT0oMCxyLmdldCkobiwidXNlcm5hbWUiKSksaXx8by5zZXQoZSx0KSl9KX0sZXhwYW5kSGlkZGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvY29va2VkLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0UHJvcGVydGllcyh7Y29va2VkOmUuY29va2VkLGNvb2tlZF9oaWRkZW46ITF9KX0pfSxyZWJha2U6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvcmViYWtlIix7dHlwZToiUFVUIn0pfSx1bmhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIit0aGlzLmlkKyIvdW5oaWRlIix7dHlwZToiUFVUIn0pfSx0b2dnbGVCb29rbWFyazpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj12b2lkIDA7cmV0dXJuIHRoaXMudG9nZ2xlUHJvcGVydHkoImJvb2ttYXJrZWQiKSx0aGlzLmJvb2ttYXJrZWQmJiF0aGlzLmdldCgidG9waWMuYm9va21hcmtlZCIpJiYodGhpcy5zZXQoInRvcGljLmJvb2ttYXJrZWQiLCEwKSxuPSEwKSxNLnVwZGF0ZUJvb2ttYXJrKHRoaXMuaWQsdGhpcy5ib29rbWFya2VkKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJ0b3BpYy5ib29rbWFya2VkIixlLnRvcGljX2Jvb2ttYXJrZWQpLHQuYXBwRXZlbnRzLnRyaWdnZXIoInBhZ2U6Ym9va21hcmstcG9zdC10b2dnbGVkIix0KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Rocm93IHQudG9nZ2xlUHJvcGVydHkoImJvb2ttYXJrZWQiKSxuJiZ0LnNldCgidG9waWMuYm9va21hcmtlZCIsITEpLG5ldyBFcnJvcihlKX0pfSx0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy50b2dnbGVQcm9wZXJ0eSgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiksIXRoaXMuYm9va21hcmtlZF93aXRoX3JlbWluZGVyKXJldHVybiB0aGlzLnNldCgiYm9va21hcmtfcmVtaW5kZXJfYXQiLG51bGwpLE0uZGVzdHJveUJvb2ttYXJrKHRoaXMuaWQpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRvcGljLmJvb2ttYXJrZWQiLGUudG9waWNfYm9va21hcmtlZCksdC5hcHBFdmVudHMudHJpZ2dlcigicGFnZTpib29rbWFyay1wb3N0LXRvZ2dsZWQiLHQpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dGhyb3cgdC50b2dnbGVQcm9wZXJ0eSgiYm9va21hcmtlZF93aXRoX3JlbWluZGVyIiksbmV3IEVycm9yKGUpfSk7KDAsdi5kZWZhdWx0KSgiYm9va21hcmsiLHttb2RlbDp7cG9zdElkOnRoaXMuaWR9LHRpdGxlOiJwb3N0LmJvb2ttYXJrcy5jcmVhdGUiLG1vZGFsQ2xhc3M6ImJvb2ttYXJrLXdpdGgtcmVtaW5kZXIifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZVdpdGhvdXRTYXZpbmc6ZnVuY3Rpb24oKXt0LnRvZ2dsZVByb3BlcnR5KCJib29rbWFya2VkX3dpdGhfcmVtaW5kZXIiKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6dC5pZH0pfSxhZnRlclNhdmU6ZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHsidG9waWMuYm9va21hcmtlZCI6ITAsYm9va21hcmtfcmVtaW5kZXJfYXQ6ZX0pLHQuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHtpZDp0LmlkfSl9fSl9LHVwZGF0ZUFjdGlvbnNTdW1tYXJ5OmZ1bmN0aW9uKGUpe2UmJmUuaWQ9PT10aGlzLmlkJiYoZT1NLm11bmdlKGUpLHRoaXMuc2V0KCJhY3Rpb25zX3N1bW1hcnkiLGUuYWN0aW9uc19zdW1tYXJ5KSl9LHJldmVydFRvUmV2aXNpb246ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrdGhpcy5pZCsiL3JldmlzaW9ucy8iK2UrIi9yZXZlcnQiLHt0eXBlOiJQVVQifSl9fSwic2hhcmVVcmwiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInNoYXJlVXJsIiksUykseShTLCJzaG93TmFtZSIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywic2hvd05hbWUiKSxTKSx5KFMsInBvc3REZWxldGVkQnkiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInBvc3REZWxldGVkQnkiKSxTKSx5KFMsInBvc3REZWxldGVkQXQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsInBvc3REZWxldGVkQXQiKSxTKSx5KFMsInVybCIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywidXJsIiksUykseShTLCJ1cmxXaXRoTnVtYmVyIixbal0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTLCJ1cmxXaXRoTnVtYmVyIiksUykseShTLCJ1c2VybmFtZVVybCIsW1RdLChDPShDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywidXNlcm5hbWVVcmwiKSk/Qy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIEN9fSksUykseShTLCJpbnRlcm5hbExpbmtzIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTLCJpbnRlcm5hbExpbmtzIiksUykseShTLCJmbGFnc0F2YWlsYWJsZSIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUywiZmxhZ3NBdmFpbGFibGUiKSxTKSxTKSk7TS5yZW9wZW5DbGFzcyh7bXVuZ2U6ZnVuY3Rpb24obil7dmFyIGk7cmV0dXJuIG4uYWN0aW9uc19zdW1tYXJ5JiYoaT1yLmRlZmF1bHQuY3JlYXRlKCksbi5hY3Rpb25zX3N1bW1hcnk9bi5hY3Rpb25zX3N1bW1hcnkubWFwKGZ1bmN0aW9uKGUpe2UuYWN0aW9uVHlwZT1iLmRlZmF1bHQuY3VycmVudCgpLnBvc3RBY3Rpb25UeXBlQnlJZChlLmlkKSxlLmNvdW50PWUuY291bnR8fDA7dmFyIHQ9bC5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gaVtlLmFjdGlvblR5cGUubmFtZV9rZXldPXQsImxpa2UiPT09ZS5hY3Rpb25UeXBlLm5hbWVfa2V5JiYobi5saWtlQWN0aW9uPXQpLHR9KSxuLmFjdGlvbkJ5TmFtZT1pKSxuJiZuLnJlcGx5X3RvX3VzZXImJihuLnJlcGx5X3RvX3VzZXI9Zy5kZWZhdWx0LmNyZWF0ZShuLnJlcGx5X3RvX3VzZXIpKSxufSx1cGRhdGVCb29rbWFyazpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK2UrIi9ib29rbWFyayIse3R5cGU6IlBVVCIsZGF0YTp7Ym9va21hcmtlZDp0fX0pfSxkZXN0cm95Qm9va21hcms6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrZSsiL2Jvb2ttYXJrIix7dHlwZToiREVMRVRFIn0pfSxkZWxldGVNYW55OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09dD90Ont9KS5hZ3JlZVdpdGhGaXJzdFJlcGx5RmxhZyxpPXZvaWQgMD09PW58fG47cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzL2Rlc3Ryb3lfbWFueSIse3R5cGU6IkRFTEVURSIsZGF0YTp7cG9zdF9pZHM6ZSxhZ3JlZV93aXRoX2ZpcnN0X3JlcGx5X2ZsYWc6aX19KX0sbWVyZ2VQb3N0czpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvbWVyZ2VfcG9zdHMiLHt0eXBlOiJQVVQiLGRhdGE6e3Bvc3RfaWRzOmV9fSl9LGxvYWRSZXZpc2lvbjpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9wb3N0cy8iK2UrIi9yZXZpc2lvbnMvIit0KyIuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGUoZSl9KX0saGlkZVJldmlzaW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5hamF4KSgiL3Bvc3RzLyIrZSsiL3JldmlzaW9ucy8iK3QrIi9oaWRlIix7dHlwZToiUFVUIn0pfSxzaG93UmV2aXNpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIvcmV2aXNpb25zLyIrdCsiL3Nob3ciLHt0eXBlOiJQVVQifSl9LGxvYWRRdW90ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9TS5jcmVhdGUoZSk7cmV0dXJuIGMuZGVmYXVsdC5idWlsZCh0LHQucmF3LHtyYXc6ITAsZnVsbDohMH0pfSl9LGxvYWRSYXdFbWFpbDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmFqYXgpKCIvcG9zdHMvIitlKyIvcmF3LWVtYWlsLmpzb24iKX19KSxlLmRlZmF1bHQ9TX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9wb3N0cy13aXRoLXBsYWNlaG9sZGVycyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHU7ZnVuY3Rpb24gYyhlKXt0aGlzLnZpZXdOYW1lPWV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuUGxhY2Vob2xkZXI9YyxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChFbWJlci5BcnJheSwocz1pPXtwb3N0czpudWxsLF9hcHBlbmRpbmdJZHM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fYXBwZW5kaW5nSWRzPXt9fSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpK09iamVjdC5rZXlzKHRoaXMuX2FwcGVuZGluZ0lkc3x8e30pLmxlbmd0aH0sbmV4dE9iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vYmplY3RBdChlKX0sX2NoYW5nZUFycmF5OmZ1bmN0aW9uKGUsdCxuLGkpe3RoaXMuYXJyYXlDb250ZW50V2lsbENoYW5nZSh0LG4saSksZSgpLHRoaXMuYXJyYXlDb250ZW50RGlkQ2hhbmdlKHQsbixpKSx0aGlzLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJsZW5ndGgiKX0sY2xlYXI6ZnVuY3Rpb24oZSl7dGhpcy5fY2hhbmdlQXJyYXkoZSwwLHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKSwwKX0sYXBwZW5kUG9zdDpmdW5jdGlvbihlKXt0aGlzLl9jaGFuZ2VBcnJheShlLHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKSwwLDEpfSxyZW1vdmVQb3N0OmZ1bmN0aW9uKGUpe3RoaXMuX2NoYW5nZUFycmF5KGUsdGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpLTEsMSwwKX0scmVmcmVzaEFsbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldCgicG9zdHMubGVuZ3RoIik7dGhpcy5fY2hhbmdlQXJyYXkoZSwwLHQsdCl9LGFwcGVuZGluZzpmdW5jdGlvbihlKXt2YXIgbj10aGlzO3RoaXMuX2NoYW5nZUFycmF5KGZ1bmN0aW9uKCl7dmFyIHQ9bi5fYXBwZW5kaW5nSWRzO2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXT0hMH0pfSx0aGlzLmxlbmd0aCwwLGUubGVuZ3RoKX0sZmluaXNoZWRBcHBlbmRpbmc6ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0aGlzLl9jaGFuZ2VBcnJheShmdW5jdGlvbigpe3ZhciB0PW4uX2FwcGVuZGluZ0lkcztlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSB0W2VdfSl9LHRoaXMuZ2V0KCJwb3N0cy5sZW5ndGgiKS1lLmxlbmd0aCxlLmxlbmd0aCxlLmxlbmd0aCl9LGZpbmlzaGVkUHJlcGVuZGluZzpmdW5jdGlvbihlKXt0aGlzLl9jaGFuZ2VBcnJheShmdW5jdGlvbigpe30sMCwwLGUubGVuZ3RoKX0sb2JqZWN0QXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wb3N0cztyZXR1cm4gZTx0Lmxlbmd0aD90W2VdOm5ldyBjKCJwb3N0LXBsYWNlaG9sZGVyIil9fSxvPSJsZW5ndGgiLHI9W24uZGVmYXVsdF0sYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksImxlbmd0aCIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1zdHJlYW0iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL3Bvc3RzLXdpdGgtcGxhY2Vob2xkZXJzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGwscix0LHUsbixpLHMsbyxhLGMsZCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG0sZixoLGIsZyx2LHksdyx4LGssUCxqO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobT0oMCxvLmRlZmF1bHQpKCJpc01lZ2FUb3BpYyIsInN0cmVhbS5sZW5ndGgiLCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIiksZj0oMCxvLmRlZmF1bHQpKCJwb3N0cy5bXSIpLGg9KDAsby5kZWZhdWx0KSgiaGFzUG9zdHMiLCJmaWx0ZXJlZFBvc3RzQ291bnQiKSxiPSgwLG8uZGVmYXVsdCkoImhhc0xvYWRlZERhdGEiLCJmaXJzdFBvc3RJZCIsInBvc3RzLltdIiksZz0oMCxvLmRlZmF1bHQpKCJpc01lZ2FUb3BpYyIsInN0cmVhbS5maXJzdE9iamVjdCIsImZpcnN0SWQiKSx2PSgwLG8uZGVmYXVsdCkoImlzTWVnYVRvcGljIiwic3RyZWFtLmxhc3RPYmplY3QiLCJsYXN0SWQiKSx5PSgwLG8uZGVmYXVsdCkoImhhc0xvYWRlZERhdGEiLCJsYXN0UG9zdElkIiwicG9zdHMuQGVhY2guaWQiKSx3PSgwLG8uZGVmYXVsdCkoInN1bW1hcnkiLCJ1c2VyRmlsdGVycy5bXSIpLHg9KDAsby5kZWZhdWx0KSgic3RyZWFtRmlsdGVycy5bXSIsInRvcGljLnBvc3RzX2NvdW50IiwicG9zdHMubGVuZ3RoIiksaz0oMCxvLmRlZmF1bHQpKCJwb3N0cy5bXSIsInN0cmVhbS5bXSIpLFA9KDAsby5kZWZhdWx0KSgicG9zdHMubGFzdE9iamVjdCIsInN0cmVhbS5bXSIpLHAoaj17X2lkZW50aXR5TWFwOm51bGwscG9zdHM6bnVsbCxzdHJlYW06bnVsbCx1c2VyRmlsdGVyczpudWxsLHN1bW1hcnk6bnVsbCxsb2FkZWQ6bnVsbCxsb2FkaW5nQWJvdmU6bnVsbCxsb2FkaW5nQmVsb3c6bnVsbCxsb2FkaW5nRmlsdGVyOm51bGwsbG9hZGluZ05lYXJQb3N0Om51bGwsc3RhZ2luZ1Bvc3Q6bnVsbCxwb3N0c1dpdGhQbGFjZWhvbGRlcnM6bnVsbCx0aW1lbGluZUxvb2t1cDpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9pZGVudGl0eU1hcD17fTt2YXIgZT1bXSx0PXMuZGVmYXVsdC5jcmVhdGUoe3Bvc3RzOmUsc3RvcmU6dGhpcy5zdG9yZX0pO3RoaXMuc2V0UHJvcGVydGllcyh7cG9zdHM6ZSxwb3N0c1dpdGhQbGFjZWhvbGRlcnM6dCxzdHJlYW06W10sdXNlckZpbHRlcnM6W10sc3VtbWFyeTohMSxsb2FkZWQ6ITEsbG9hZGluZ0Fib3ZlOiExLGxvYWRpbmdCZWxvdzohMSxsb2FkaW5nRmlsdGVyOiExLHN0YWdpbmdQb3N0OiExLHRpbWVsaW5lTG9va3VwOltdfSl9LGxvYWRpbmc6KDAsdC5vcikoImxvYWRpbmdBYm92ZSIsImxvYWRpbmdCZWxvdyIsImxvYWRpbmdGaWx0ZXIiLCJzdGFnaW5nUG9zdCIpLG5vdExvYWRpbmc6KDAsdC5ub3QpKCJsb2FkaW5nIiksZmlsdGVyZWRQb3N0c0NvdW50OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT9uOnR9LGhhc1Bvc3RzOmZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5nZXQoInBvc3RzLmxlbmd0aCIpfSxoYXNMb2FkZWREYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjA8dH0sY2FuQXBwZW5kTW9yZTooMCx0LmFuZCkoIm5vdExvYWRpbmciLCJoYXNQb3N0cyIsImxhc3RQb3N0Tm90TG9hZGVkIiksY2FuUHJlcGVuZE1vcmU6KDAsdC5hbmQpKCJub3RMb2FkaW5nIiwiaGFzUG9zdHMiLCJmaXJzdFBvc3ROb3RMb2FkZWQiKSxmaXJzdFBvc3RQcmVzZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuISFlJiYhIXRoaXMucG9zdHMuZmluZEJ5KCJpZCIsdCl9LGZpcnN0UG9zdE5vdExvYWRlZDooMCx0Lm5vdCkoImZpcnN0UG9zdFByZXNlbnQiKSxmaXJzdElkOm51bGwsbGFzdElkOm51bGwsZmlyc3RQb3N0SWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0sbGFzdFBvc3RJZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU/bjp0fSxsb2FkZWRBbGxQb3N0czpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmKC0xPT09dHx8ISF0aGlzLnBvc3RzLmZpbmRCeSgiaWQiLHQpKX0sbGFzdFBvc3ROb3RMb2FkZWQ6KDAsdC5ub3QpKCJsb2FkZWRBbGxQb3N0cyIpLHN0cmVhbUZpbHRlcnM6ZnVuY3Rpb24oZSl7dmFyIHQ9e307ZSYmKHQuZmlsdGVyPSJzdW1tYXJ5Iik7dmFyIG49dGhpcy51c2VyRmlsdGVycztyZXR1cm4oMCxyLmlzRW1wdHkpKG4pfHwodC51c2VybmFtZV9maWx0ZXJzPW4uam9pbigiLCIpKSx0fSxoYXNOb0ZpbHRlcnM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0cmVhbUZpbHRlcnM7cmV0dXJuIShlJiYoInN1bW1hcnkiPT09ZS5maWx0ZXJ8fGUudXNlcm5hbWVfZmlsdGVycykpfSxwcmV2aW91c1dpbmRvdzpmdW5jdGlvbigpe3ZhciBlPV8uZmlyc3QodGhpcy5wb3N0cyk7aWYoIWUpcmV0dXJuW107dmFyIHQ9dGhpcy5zdHJlYW0sbj10aGlzLmluZGV4T2YoZSk7aWYoLTE9PT1uKXJldHVybltdO3ZhciBpPW4tdGhpcy5nZXQoInRvcGljLmNodW5rX3NpemUiKTtyZXR1cm4gaTwwJiYoaT0wKSx0LnNsaWNlKGksbil9LG5leHRXaW5kb3c6ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107dmFyIHQ9dGhpcy5zdHJlYW0sbj10aGlzLmluZGV4T2YoZSk7cmV0dXJuLTE9PT1ufHxuKzE+PXRoaXMuaGlnaGVzdF9wb3N0X251bWJlcj9bXTp0LnNsaWNlKG4rMSxuK3RoaXMuZ2V0KCJ0b3BpYy5jaHVua19zaXplIikrMSl9LGNhbmNlbEZpbHRlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJzdW1tYXJ5IiwhMSksdGhpcy51c2VyRmlsdGVycy5jbGVhcigpfSx0b2dnbGVTdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnVzZXJGaWx0ZXJzLmNsZWFyKCksdGhpcy50b2dnbGVQcm9wZXJ0eSgic3VtbWFyeSIpO3ZhciB0PXt9O3JldHVybiB0aGlzLnN1bW1hcnl8fCh0LmZpbHRlcj0ibm9uZSIpLHRoaXMucmVmcmVzaCh0KS50aGVuKGZ1bmN0aW9uKCl7ZS5zdW1tYXJ5JiZlLmp1bXBUb1NlY29uZFZpc2libGUoKX0pfSxqdW1wVG9TZWNvbmRWaXNpYmxlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLnBvc3RzOzE8dC5sZW5ndGgmJihlPXRbMV0uZ2V0KCJwb3N0X251bWJlciIpLG4uZGVmYXVsdC5qdW1wVG9Qb3N0KGUpKX0sdG9nZ2xlUGFydGljaXBhbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMudXNlckZpbHRlcnM7dGhpcy5zZXQoInN1bW1hcnkiLCExKTt2YXIgaT0hMTtyZXR1cm4gbi5pbmNsdWRlcyhlKT9uLnJlbW92ZU9iamVjdChlKToobi5hZGRPYmplY3QoZSksaT0hMCksdGhpcy5yZWZyZXNoKCkudGhlbihmdW5jdGlvbigpe2kmJnQuanVtcFRvU2Vjb25kVmlzaWJsZSgpfSl9LHJlZnJlc2g6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoZT1lfHx7fSkubmVhclBvc3Q9cGFyc2VJbnQoZS5uZWFyUG9zdCwxMCksZS5jYW5jZWxTdW1tYXJ5JiYodGhpcy5zZXQoInN1bW1hcnkiLCExKSxkZWxldGUgZS5jYW5jZWxTdW1tYXJ5KTt2YXIgbj10aGlzLnRvcGljO2lmKGUuZm9yY2VMb2FkKXRoaXMuc2V0KCJsb2FkZWQiLCExKTtlbHNlIGlmKHRoaXMucG9zdHMuZmluZEJ5KCJwb3N0X251bWJlciIsZS5uZWFyUG9zdCkpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJuIHRoaXMuc2V0KCJsb2FkaW5nRmlsdGVyIiwhMCksdGhpcy5zZXQoImxvYWRpbmdOZWFyUG9zdCIsZS5uZWFyUG9zdCksZT1fLm1lcmdlKGUsdGhpcy5zdHJlYW1GaWx0ZXJzKSwoMCxhLmxvYWRUb3BpY1ZpZXcpKG4sZSkudGhlbihmdW5jdGlvbihlKXt0LnVwZGF0ZUZyb21Kc29uKGUucG9zdF9zdHJlYW0pLHQuc2V0UHJvcGVydGllcyh7bG9hZGluZ0ZpbHRlcjohMSx0aW1lbGluZUxvb2t1cDplLnRpbWVsaW5lX2xvb2t1cCxsb2FkZWQ6ITB9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Rocm93IHQuZXJyb3JMb2FkaW5nKGUpLG5ldyBFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZ05lYXJQb3N0IixudWxsKX0pfSxmaWxsR2FwQmVmb3JlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPXQuZ2V0KCJpZCIpLHM9dGhpcy5zdHJlYW0sbz1zLmluZGV4T2YoaSkscj10aGlzLnBvc3RzO2lmKC0xIT09byl7cy5zcGxpY2UuYXBwbHkocyxbbywwXS5jb25jYXQoZSkpO3ZhciBhPXIuaW5kZXhPZih0KSxsPWE7aWYoLTEhPT1hKXJldHVybiB0aGlzLmZpbmRQb3N0c0J5SWRzKGUpLnRoZW4oZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW4uc3RvcmVQb3N0KGUpO3IuaW5jbHVkZXModCl8fHIuaW5zZXJ0QXQoYSsrLHQpfSksZGVsZXRlIG4uZ2V0KCJnYXBzLmJlZm9yZSIpW2ldLG4uc3RyZWFtLmFycmF5Q29udGVudERpZENoYW5nZSgpLG4ucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmFycmF5Q29udGVudERpZENoYW5nZShsLDAsZS5sZW5ndGgpLHQuc2V0KCJoYXNHYXAiLCExKX0pfXJldHVybiBjLlByb21pc2UucmVzb2x2ZSgpfSxmaWxsR2FwQWZ0ZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9ZS5nZXQoImlkIikscz10aGlzLnN0cmVhbTtyZXR1cm4tMSE9PXMuaW5kZXhPZihpKT8ocy5wdXNoT2JqZWN0cyh0KSx0aGlzLmFwcGVuZE1vcmUoKS50aGVuKGZ1bmN0aW9uKCl7ZGVsZXRlIG4uZ2V0KCJnYXBzLmFmdGVyIilbaV0sbi5zdHJlYW0uYXJyYXlDb250ZW50RGlkQ2hhbmdlKCl9KSk6Yy5Qcm9taXNlLnJlc29sdmUoKX0sYXBwZW5kTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2FuQXBwZW5kTW9yZSlyZXR1cm4gYy5Qcm9taXNlLnJlc29sdmUoKTt2YXIgZT10aGlzLnBvc3RzV2l0aFBsYWNlaG9sZGVycztpZih0aGlzLmlzTWVnYVRvcGljKXt0aGlzLnNldCgibG9hZGluZ0JlbG93IiwhMCk7dmFyIG49Xy5yYW5nZSgtMSwtdGhpcy5nZXQoInRvcGljLmNodW5rX3NpemUiKSwtMSk7cmV0dXJuIGUuYXBwZW5kaW5nKG4pLHRoaXMuZmV0Y2hOZXh0V2luZG93KHRoaXMuZ2V0KCJwb3N0cy5sYXN0T2JqZWN0LnBvc3RfbnVtYmVyIiksITAsZnVuY3Rpb24oZSl7dC5hcHBlbmRQb3N0KGUpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZmluaXNoZWRBcHBlbmRpbmcobiksdC5zZXQoImxvYWRpbmdCZWxvdyIsITEpfSl9dmFyIGk9dGhpcy5uZXh0V2luZG93O3JldHVybigwLHIuaXNFbXB0eSkoaSk/Yy5Qcm9taXNlLnJlc29sdmUoKToodGhpcy5zZXQoImxvYWRpbmdCZWxvdyIsITApLGUuYXBwZW5kaW5nKGkpLHRoaXMuZmluZFBvc3RzQnlJZHMoaSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGVuZFBvc3QoZSl9KSxlfSkuZmluYWxseShmdW5jdGlvbigpe2UuZmluaXNoZWRBcHBlbmRpbmcoaSksdC5zZXQoImxvYWRpbmdCZWxvdyIsITEpfSkpfSxwcmVwZW5kTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2FuUHJlcGVuZE1vcmUpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7aWYodGhpcy5pc01lZ2FUb3BpYyl7dGhpcy5zZXQoImxvYWRpbmdBYm92ZSIsITApO3ZhciBuPVtdO3JldHVybiB0aGlzLmZldGNoTmV4dFdpbmRvdyh0aGlzLmdldCgicG9zdHMuZmlyc3RPYmplY3QucG9zdF9udW1iZXIiKSwhMSxmdW5jdGlvbihlKXt0LnByZXBlbmRQb3N0KGUpLG4ucHVzaChlLmdldCgiaWQiKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5wb3N0c1dpdGhQbGFjZWhvbGRlcnMuZmluaXNoZWRQcmVwZW5kaW5nKG4pLHQuc2V0KCJsb2FkaW5nQWJvdmUiLCExKX0pfXZhciBlPXRoaXMucHJldmlvdXNXaW5kb3c7cmV0dXJuKDAsci5pc0VtcHR5KShlKT9jLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldCgibG9hZGluZ0Fib3ZlIiwhMCksdGhpcy5maW5kUG9zdHNCeUlkcyhlLnJldmVyc2UoKSkudGhlbihmdW5jdGlvbihlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJlcGVuZFBvc3QoZSl9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnBvc3RzV2l0aFBsYWNlaG9sZGVycy5maW5pc2hlZFByZXBlbmRpbmcoZSksdC5zZXQoImxvYWRpbmdBYm92ZSIsITEpfSkpfSxzdGFnZVBvc3Q6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLnN0YWdpbmdQb3N0KXJldHVybiJhbHJlYWR5U3RhZ2luZyI7dGhpcy5zZXQoInN0YWdpbmdQb3N0IiwhMCk7dmFyIG49dGhpcy50b3BpYztyZXR1cm4gbi5zZXRQcm9wZXJ0aWVzKHtwb3N0c19jb3VudDoobi5nZXQoInBvc3RzX2NvdW50Iil8fDApKzEsbGFzdF9wb3N0ZWRfYXQ6bmV3IERhdGUsImRldGFpbHMubGFzdF9wb3N0ZXIiOnQsaGlnaGVzdF9wb3N0X251bWJlcjoobi5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKXx8MCkrMX0pLGUuc2V0UHJvcGVydGllcyh7cG9zdF9udW1iZXI6bi5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKSx0b3BpYzpuLGNyZWF0ZWRfYXQ6bmV3IERhdGUsaWQ6LTF9KSx0aGlzLmxvYWRlZEFsbFBvc3RzPyh0aGlzLmFwcGVuZFBvc3QoZSksdGhpcy5zdHJlYW0uYWRkT2JqZWN0KGUuZ2V0KCJpZCIpKSwic3RhZ2VkIik6Im9mZlNjcmVlbiJ9LGNvbW1pdFBvc3Q6ZnVuY3Rpb24oZSl7dGhpcy5nZXQoInRvcGljLmlkIik9PT1lLmdldCgidG9waWNfaWQiKSYmdGhpcy5sb2FkZWRBbGxQb3N0cyYmKHRoaXMuYXBwZW5kUG9zdChlKSx0aGlzLnN0cmVhbS5hZGRPYmplY3QoZS5nZXQoImlkIikpKSx0aGlzLnN0cmVhbS5yZW1vdmVPYmplY3QoLTEpLHRoaXMuX2lkZW50aXR5TWFwWy0xXT1udWxsLHRoaXMuc2V0KCJzdGFnaW5nUG9zdCIsITEpfSx1bmRvUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc3RyZWFtLnJlbW92ZU9iamVjdCgtMSksdGhpcy5wb3N0c1dpdGhQbGFjZWhvbGRlcnMucmVtb3ZlUG9zdChmdW5jdGlvbigpe3JldHVybiB0LnBvc3RzLnJlbW92ZU9iamVjdChlKX0pLHRoaXMuX2lkZW50aXR5TWFwWy0xXT1udWxsO3ZhciBuPXRoaXMudG9waWM7dGhpcy5zZXQoInN0YWdpbmdQb3N0IiwhMSksbi5zZXRQcm9wZXJ0aWVzKHtoaWdoZXN0X3Bvc3RfbnVtYmVyOihuLmdldCgiaGlnaGVzdF9wb3N0X251bWJlciIpfHwwKS0xLHBvc3RzX2NvdW50OihuLmdldCgicG9zdHNfY291bnQiKXx8MCktMX0pfSxwcmVwZW5kUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnN0b3JlUG9zdChlKTtyZXR1cm4gdCYmdGhpcy5wb3N0cy51bnNoaWZ0T2JqZWN0KHQpLGV9LGFwcGVuZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLnN0b3JlUG9zdChlKTtyZXR1cm4gbiYmKCh0PXRoaXMucG9zdHMpLmluY2x1ZGVzKG4pfHwodGhpcy5sb2FkaW5nQmVsb3c/dC5wdXNoT2JqZWN0KG4pOnRoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmFwcGVuZFBvc3QoZnVuY3Rpb24oKXtyZXR1cm4gdC5wdXNoT2JqZWN0KG4pfSkpLC0xIT09bi5nZXQoImlkIikmJnRoaXMuc2V0KCJsYXN0QXBwZW5kZWQiLG4pKSxlfSxyZW1vdmVQb3N0czpmdW5jdGlvbihpKXt2YXIgcz10aGlzOygwLHIuaXNFbXB0eSkoaSl8fHRoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLnJlZnJlc2hBbGwoZnVuY3Rpb24oKXt2YXIgZT1zLnBvc3RzLHQ9aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJpZCIpfSksbj1zLl9pZGVudGl0eU1hcDtzLnN0cmVhbS5yZW1vdmVPYmplY3RzKHQpLGUucmVtb3ZlT2JqZWN0cyhpKSx0LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSBuW2VdfSl9KX0sZmluZExvYWRlZFBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2lkZW50aXR5TWFwW2VdfSxsb2FkUG9zdEJ5UG9zdE51bWJlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy9ieV9udW1iZXIvIit0aGlzLmdldCgidG9waWMuaWQiKSsiLyIrZSxpPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0b3JlUG9zdChpLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSl9LGxvYWROZWFyZXN0UG9zdFRvRGF0ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy9ieS1kYXRlLyIrdGhpcy5nZXQoInRvcGljLmlkIikrIi8iK2UsaT10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkobikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zdG9yZVBvc3QoaS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpKX0pfSxsb2FkUG9zdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49Ii9wb3N0cy8iK2UsaT10aGlzLnN0b3JlLHM9dGhpcy5faWRlbnRpdHlNYXBbZV07cmV0dXJuKDAsdS5hamF4KShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBzJiYoZS5jb29rZWQ9cy5jb29rZWQpLHQuc3RvcmVQb3N0KGkuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KX0sdHJpZ2dlck5ld1Bvc3RJblN0cmVhbTpmdW5jdGlvbihuKXt2YXIgaT10aGlzLGU9Yy5Qcm9taXNlLnJlc29sdmUoKTtpZighbilyZXR1cm4gZTtpZighdGhpcy5oYXNOb0ZpbHRlcnMpcmV0dXJuIGU7dmFyIHQ9dGhpcy5sb2FkZWRBbGxQb3N0cztyZXR1cm4tMT09PXRoaXMuc3RyZWFtLmluZGV4T2YobikmJih0aGlzLnN0cmVhbS5hZGRPYmplY3QobiksdCk/KHRoaXMuc2V0KCJsb2FkaW5nTGFzdFBvc3QiLCEwKSx0aGlzLmZpbmRQb3N0c0J5SWRzKFtuXSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1kLmRlZmF1bHQuY3VycmVudCgpJiZkLmRlZmF1bHQuY3VycmVudCgpLmdldCgiaWdub3JlZF91c2VycyIpO2UuZm9yRWFjaChmdW5jdGlvbihlKXt0JiZ0LmluY2x1ZGVzKGUudXNlcm5hbWUpP2kuc3RyZWFtLnJlbW92ZU9iamVjdChuKTppLmFwcGVuZFBvc3QoZSl9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLnNldCgibG9hZGluZ0xhc3RQb3N0IiwhMSl9KSk6ZX0sdHJpZ2dlclJlY292ZXJlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIG89dGhpcztpZih0aGlzLl9pZGVudGl0eU1hcFtlXSlyZXR1cm4gdGhpcy50cmlnZ2VyQ2hhbmdlZFBvc3QoZSxuZXcgRGF0ZSk7dmFyIHQ9Ii9wb3N0cy8iK2Uscj10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkodCkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1yLmNyZWF0ZVJlY29yZCgicG9zdCIsdCksbj1vLnN0cmVhbSxpPW8ucG9zdHM7by5zdG9yZVBvc3QoZSk7dmFyIHM9MDtuLmZvckVhY2goZnVuY3Rpb24oZSl7ZTx0LmlkJiYocys9MSl9KSxuLmluc2VydEF0KHMsdC5pZCkscz0wLGkuZm9yRWFjaChmdW5jdGlvbihlKXtlLmlkPHQuaWQmJihzKz0xKX0pLHM8aS5sZW5ndGg/by5wb3N0c1dpdGhQbGFjZWhvbGRlcnMucmVmcmVzaEFsbChmdW5jdGlvbigpe2kuaW5zZXJ0QXQocyxlKX0pOmUucG9zdF9udW1iZXI8aVtpLmxlbmd0aC0xXS5wb3N0X251bWJlcis1JiZvLmFwcGVuZE1vcmUoKX0pfSx0cmlnZ2VyRGVsZXRlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMuX2lkZW50aXR5TWFwW2VdO2lmKCFufHxuLmRlbGV0ZWRfYXQpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9Ii9wb3N0cy8iK2Uscz10aGlzLnN0b3JlO3JldHVybigwLHUuYWpheCkoaSkudGhlbihmdW5jdGlvbihlKXt0LnN0b3JlUG9zdChzLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSkuY2F0Y2goZnVuY3Rpb24oKXt0LnJlbW92ZVBvc3RzKFtuXSl9KX0sdHJpZ2dlckNoYW5nZWRQb3N0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzO249bnx8e307dmFyIHM9Yy5Qcm9taXNlLnJlc29sdmUoKTtpZighZSlyZXR1cm4gczt2YXIgbz10aGlzLl9pZGVudGl0eU1hcFtlXTtpZihvJiZvLnVwZGF0ZWRfYXQhPT10KXt2YXIgcj0iL3Bvc3RzLyIrZSxhPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShyKS50aGVuKGZ1bmN0aW9uKGUpe24ucHJlc2VydmVDb29rZWQmJihlLmNvb2tlZD1vLmdldCgiY29va2VkIikpLGkuc3RvcmVQb3N0KGEuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KX1yZXR1cm4gc30sdHJpZ2dlclJlYWRQb3N0OmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpcyxlPWMuUHJvbWlzZS5yZXNvbHZlKCk7cmV0dXJuIGUudGhlbihmdW5jdGlvbigpe3ZhciBlPWkuZmluZExvYWRlZFBvc3QodCk7ZSYmbj5lLnJlYWRlcnNfY291bnQmJihlLnNldCgicmVhZGVyc19jb3VudCIsbiksaS5zdG9yZVBvc3QoZSkpfSksZX0scG9zdEZvclBvc3ROdW1iZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5oYXNQb3N0cylyZXR1cm4gdGhpcy5wb3N0cy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicG9zdF9udW1iZXIiKT09PXR9KX0sY2xvc2VzdFBvc3RGb3JQb3N0TnVtYmVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuaGFzUG9zdHMpe3ZhciBuPW51bGw7cmV0dXJuIHRoaXMucG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXsoIW58fE1hdGguYWJzKHQtZS5nZXQoInBvc3RfbnVtYmVyIikpPE1hdGguYWJzKG4uZ2V0KCJwb3N0X251bWJlciIpLXQpKSYmKG49ZSl9KSxufX0scHJvZ3Jlc3NJbmRleE9mUG9zdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9ncmVzc0luZGV4T2ZQb3N0SWQoZSl9LHByb2dyZXNzSW5kZXhPZlBvc3RJZDpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiaWQiKSxuPXRoaXMuc3RyZWFtLmluZGV4T2YodCk7cmV0dXJuIHRoaXMuaXNNZWdhVG9waWM/ZS5nZXQoInBvc3RfbnVtYmVyIik6bisxfSxjbG9zZXN0UG9zdE51bWJlckZvcjpmdW5jdGlvbih0KXtpZih0aGlzLmhhc1Bvc3RzKXt2YXIgbj1udWxsO3JldHVybiB0aGlzLnBvc3RzLmZvckVhY2goZnVuY3Rpb24oZSl7biE9PXQmJihuPW58fGUuZ2V0KCJwb3N0X251bWJlciIpLE1hdGguYWJzKHQtZS5nZXQoInBvc3RfbnVtYmVyIikpPE1hdGguYWJzKG4tdCkmJihuPWUuZ2V0KCJwb3N0X251bWJlciIpKSl9KSxufX0sY2xvc2VzdERheXNBZ29Gb3I6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGltZWxpbmVMb29rdXB8fFtdLG49MCxpPXQubGVuZ3RoLTE7bjw9aTspe3ZhciBzPU1hdGguZmxvb3IobisoaS1uKS8yKSxvPXRbc11bMF07aWYoZTxvKWk9cy0xO2Vsc2V7aWYoIShvPGUpKXJldHVybiB0W3NdWzFdO249cysxfX12YXIgcj10W2ldfHx0W25dO2lmKHIpcmV0dXJuIHJbMV19LGZpbmRQb3N0SWRGb3JQb3N0TnVtYmVyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnN0cmVhbSxuPXRoaXMuZ2V0KCJnYXBzLmJlZm9yZSIpLGk9dC5sZW5ndGgscz0xLG89MDtvPGk7bysrKXt2YXIgcj10W29dO2lmKG4pe3ZhciBhPW5bcl07aWYoYSlmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKyl7aWYocz09PWUpcmV0dXJuIHI7cysrfX1pZihzPT09ZSlyZXR1cm4gcjtzKyt9fSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMsaT10aGlzLnBvc3RzO3RoaXMucG9zdHNXaXRoUGxhY2Vob2xkZXJzLmNsZWFyKGZ1bmN0aW9uKCl7cmV0dXJuIGkuY2xlYXIoKX0pLHRoaXMuc2V0KCJnYXBzIixudWxsKSxlJiYodD10aGlzLnN0b3JlLGUucG9zdHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5hcHBlbmRQb3N0KHQuY3JlYXRlUmVjb3JkKCJwb3N0IixlKSl9KSxkZWxldGUgZS5wb3N0cyx0aGlzLnNldFByb3BlcnRpZXMoZSkpfSxzdG9yZVBvc3Q6ZnVuY3Rpb24oZSl7aWYoZSl7aWYoKDAsbC5nZXQpKGUsImlkIikpe3ZhciB0PXRoaXMuX2lkZW50aXR5TWFwW2UuZ2V0KCJpZCIpXSxuPWUuZ2V0KCJwb3N0X251bWJlciIpO2lmKG4mJm4+KHRoaXMuZ2V0KCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIil8fDApJiYodGhpcy5zZXQoInRvcGljLmhpZ2hlc3RfcG9zdF9udW1iZXIiLG4pLHRoaXMuc2V0KCJ0b3BpYy5sYXN0X3Bvc3RlZF9hdCIsZS5nZXQoImNyZWF0ZWRfYXQiKSkpLHQpcmV0dXJuIHQudXBkYXRlRnJvbVBvc3QoZSksdDtlLnNldCgidG9waWMiLHRoaXMudG9waWMpLHRoaXMuX2lkZW50aXR5TWFwW2UuZ2V0KCJpZCIpXT1lfXJldHVybiBlfX0sZmV0Y2hOZXh0V2luZG93OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLHM9IXRoaXMuZ2V0KCJ0b3BpYy5zdWdnZXN0ZWRfdG9waWNzIiksbz0iL3QvIit0aGlzLmdldCgidG9waWMuaWQiKSsiL3Bvc3RzLmpzb24iLHI9e3Bvc3RfbnVtYmVyOmUsYXNjOnQsaW5jbHVkZV9zdWdnZXN0ZWQ6c30scj1fLm1lcmdlKHIsdGhpcy5zdHJlYW1GaWx0ZXJzKSxhPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShvLHtkYXRhOnJ9KS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGVkX3RvcGljcyYmaS5zZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiLGUuc3VnZ2VzdGVkX3RvcGljcyk7dmFyIHQ9KDAsbC5nZXQpKGUsInBvc3Rfc3RyZWFtLnBvc3RzIik7dCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2U9aS5zdG9yZVBvc3QoYS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpKSxuJiZuLmNhbGwoaSxlKX0pfSl9LGZpbmRQb3N0c0J5SWRzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lkZW50aXR5TWFwLG49ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXRbZV19KTtyZXR1cm4gdGhpcy5sb2FkSW50b0lkZW50aXR5TWFwKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5jb21wYWN0KCl9KX0sbG9hZEludG9JZGVudGl0eU1hcDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKCgwLHIuaXNFbXB0eSkoZSkpcmV0dXJuIGMuUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgdD0hdGhpcy5nZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiKSxpPSIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcG9zdHMuanNvbiIscz17cG9zdF9pZHM6ZSxpbmNsdWRlX3N1Z2dlc3RlZDp0fSxvPXRoaXMuc3RvcmU7cmV0dXJuKDAsdS5hamF4KShpLHtkYXRhOnN9KS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGVkX3RvcGljcyYmbi5zZXQoInRvcGljLnN1Z2dlc3RlZF90b3BpY3MiLGUuc3VnZ2VzdGVkX3RvcGljcyk7dmFyIHQ9KDAsbC5nZXQpKGUsInBvc3Rfc3RyZWFtLnBvc3RzIik7dCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuLnN0b3JlUG9zdChvLmNyZWF0ZVJlY29yZCgicG9zdCIsZSkpfSl9KX0sYmFja2ZpbGxFeGNlcnB0czpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX2V4Y2VycHRzPXRoaXMuX2V4Y2VycHRzfHxbXTt2YXIgbj10aGlzLnN0cmVhbTtpZih0aGlzLl9leGNlcnB0cy5sb2FkTmV4dD1lLHRoaXMuX2V4Y2VycHRzLmxvYWRpbmcpcmV0dXJuIHRoaXMuX2V4Y2VycHRzLmxvYWRpbmcudGhlbihmdW5jdGlvbigpe2lmKCF0Ll9leGNlcnB0c1tuW2VdXSYmdC5fZXhjZXJwdHMubG9hZE5leHQ9PT1lKXJldHVybiB0LmJhY2tmaWxsRXhjZXJwdHMoZSl9KTtmb3IodmFyIGk9bi5zbGljZShNYXRoLm1heChlLTIwLDApLGUrMjApLHM9aS5sZW5ndGgtMTswPD1zO3MtLSl0aGlzLl9leGNlcnB0c1tpW3NdXSYmaS5zcGxpY2UocywxKTt2YXIgbz17cG9zdF9pZHM6aX07cmV0dXJuIHRoaXMuX2V4Y2VycHRzLmxvYWRpbmc9KDAsdS5hamF4KSgiL3QvIit0aGlzLmdldCgidG9waWMuaWQiKSsiL2V4Y2VycHRzLmpzb24iLHtkYXRhOm99KS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9leGNlcnB0c1tlLnBvc3RfaWRdPWV9KX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0Ll9leGNlcnB0cy5sb2FkaW5nPW51bGx9KSx0aGlzLl9leGNlcnB0cy5sb2FkaW5nfSxleGNlcnB0OmZ1bmN0aW9uKGkpe3ZhciBzPXRoaXM7aWYodGhpcy5pc01lZ2FUb3BpYylyZXR1cm4gbmV3IGMuUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gZSgiIil9KTt2YXIgbz10aGlzLnN0cmVhbTtyZXR1cm4gbmV3IGMuUHJvbWlzZShmdW5jdGlvbihlLHQpe3ZhciBuPXMuX2V4Y2VycHRzJiZzLl9leGNlcnB0c1tvW2ldXTtuP2Uobik6cy5iYWNrZmlsbEV4Y2VycHRzKGkpLnRoZW4oZnVuY3Rpb24oKXtlKHMuX2V4Y2VycHRzW29baV1dKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSl9KX0saW5kZXhPZjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdHJlYW0uaW5kZXhPZihlLmdldCgiaWQiKSl9LGVycm9yTG9hZGluZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO3RoaXMuc2V0KCJsb2FkaW5nRmlsdGVyIiwhMSksdC5zZXQoImVycm9yTG9hZGluZyIsITApO3ZhciBuPWUuanFYSFIucmVzcG9uc2VKU09OO24mJm4uZXh0cmFzJiZuLmV4dHJhcy5odG1sP3Quc2V0KCJlcnJvckh0bWwiLG4uZXh0cmFzLmh0bWwpOih0LnNldCgiZXJyb3JNZXNzYWdlIixJMThuLnQoInRvcGljLnNlcnZlcl9lcnJvci5kZXNjcmlwdGlvbiIpKSx0LnNldCgibm9SZXRyeSIsNDAzPT09ZS5qcVhIUi5zdGF0dXMpKX19LCJmaWx0ZXJlZFBvc3RzQ291bnQiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImZpbHRlcmVkUG9zdHNDb3VudCIpLGopLHAoaiwiaGFzUG9zdHMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImhhc1Bvc3RzIiksaikscChqLCJoYXNMb2FkZWREYXRhIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJoYXNMb2FkZWREYXRhIiksaikscChqLCJmaXJzdFBvc3RQcmVzZW50IixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJmaXJzdFBvc3RQcmVzZW50IiksaikscChqLCJmaXJzdFBvc3RJZCIsW2ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaiwiZmlyc3RQb3N0SWQiKSxqKSxwKGosImxhc3RQb3N0SWQiLFt2XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosImxhc3RQb3N0SWQiKSxqKSxwKGosImxvYWRlZEFsbFBvc3RzIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJsb2FkZWRBbGxQb3N0cyIpLGopLHAoaiwic3RyZWFtRmlsdGVycyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioaiwic3RyZWFtRmlsdGVycyIpLGopLHAoaiwiaGFzTm9GaWx0ZXJzIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJoYXNOb0ZpbHRlcnMiKSxqKSxwKGosInByZXZpb3VzV2luZG93Iixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihqLCJwcmV2aW91c1dpbmRvdyIpLGopLHAoaiwibmV4dFdpbmRvdyIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaiwibmV4dFdpbmRvdyIpLGopLGopKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYy1kZXRhaWxzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL2xpYi9ub3RpZmljYXRpb24tbGV2ZWxzIiwiZGlzY291cnNlL21vZGVscy9yZXN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1LGMsZCxwLG0sZixoPXIuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX2xldmVsIiwibm90aWZpY2F0aW9uc19yZWFzb25faWQiKSx1PWw9e2xvYWRlZDohMSx1cGRhdGVGcm9tSnNvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRvcGljO2UuYWxsb3dlZF91c2VycyYmKGUuYWxsb3dlZF91c2Vycz1lLmFsbG93ZWRfdXNlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGUucGFydGljaXBhbnRzJiYoZS5wYXJ0aWNpcGFudHM9ZS5wYXJ0aWNpcGFudHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljPXQsbi5kZWZhdWx0LmNyZWF0ZShlKX0pKSx0aGlzLnNldFByb3BlcnRpZXMoZSksdGhpcy5zZXQoImxvYWRlZCIsITApfSxub3RpZmljYXRpb25SZWFzb25UZXh0OmZ1bmN0aW9uKGUsdCl7Im51bWJlciIhPXR5cGVvZiBlJiYoZT0xKTt2YXIgbixpPSJ0b3BpYy5ub3RpZmljYXRpb25zLnJlYXNvbnMuIitlO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKG49aSsiXyIrdCxJMThuLmxvb2t1cChuLHtsb2NhbGU6ImVuIn0pJiYoaT1uKSkscy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtYWlsaW5nX2xpc3RfbW9kZSIpJiZlPm8uZGVmYXVsdC5NVVRFRD9JMThuLnQoInRvcGljLm5vdGlmaWNhdGlvbnMucmVhc29ucy5tYWlsaW5nX2xpc3RfbW9kZSIpOkkxOG4udChpLHt1c2VybmFtZTpzLmRlZmF1bHQuY3VycmVudFByb3AoInVzZXJuYW1lX2xvd2VyIiksYmFzZVBhdGg6RGlzY291cnNlLkJhc2VVcml9KX0sdXBkYXRlTm90aWZpY2F0aW9uczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zZXQoIm5vdGlmaWNhdGlvbl9sZXZlbCIsZSksdGhpcy5zZXQoIm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkIixudWxsKSwoMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvbm90aWZpY2F0aW9ucyIse3R5cGU6IlBPU1QiLGRhdGE6e25vdGlmaWNhdGlvbl9sZXZlbDplfX0pfSxyZW1vdmVBbGxvd2VkR3JvdXA6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hbGxvd2VkX2dyb3VwcyxuPWUubmFtZTtyZXR1cm4oMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcmVtb3ZlLWFsbG93ZWQtZ3JvdXAiLHt0eXBlOiJQVVQiLGRhdGE6e25hbWU6bn19KS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmVPYmplY3QodC5maW5kQnkoIm5hbWUiLG4pKX0pfSxyZW1vdmVBbGxvd2VkVXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFsbG93ZWRfdXNlcnMsbj1lLmdldCgidXNlcm5hbWUiKTtyZXR1cm4oMCxpLmFqYXgpKCIvdC8iK3RoaXMuZ2V0KCJ0b3BpYy5pZCIpKyIvcmVtb3ZlLWFsbG93ZWQtdXNlciIse3R5cGU6IlBVVCIsZGF0YTp7dXNlcm5hbWU6bn19KS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmVPYmplY3QodC5maW5kQnkoInVzZXJuYW1lIixuKSl9KX19LGM9Im5vdGlmaWNhdGlvblJlYXNvblRleHQiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJub3RpZmljYXRpb25SZWFzb25UZXh0IiksbT1sLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGwpKTtlLmRlZmF1bHQ9aH0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24tZ3JvdXAiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGgsYixnLHYseSxfO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdz17bGlrZXNfZ2l2ZW46MSxsaWtlc19yZWNlaXZlZDoyLGJvb2ttYXJrczozLHRvcGljczo0LHBvc3RzOjUscmVwbGllczo2LG1lbnRpb25zOjcscXVvdGVzOjksZWRpdHM6MTEsbWVzc2FnZXNfc2VudDoxMixtZXNzYWdlc19yZWNlaXZlZDoxMyxwZW5kaW5nOjE0fSx4PXt9O09iamVjdC5rZXlzKHcpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHhbZV09d1tlXX0pO3ZhciBrPWkuZGVmYXVsdC5leHRlbmQoKGM9KDAsdC5vbikoImluaXQiKSxkPSgwLHQuZGVmYXVsdCkoImFjdGlvbl90eXBlIikscD0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZSIpLG09KDAsdC5kZWZhdWx0KSgidGFyZ2V0X3VzZXJuYW1lIiksZj0oMCx0LmRlZmF1bHQpKCJ0YXJnZXRfdXNlcm5hbWUiKSxoPSgwLHQuZGVmYXVsdCkoInVzZXJuYW1lIiksYj0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZUxvd2VyIiksZz0oMCx0LmRlZmF1bHQpKCksdj0oMCx0LmRlZmF1bHQpKCkseT0oMCx0LmRlZmF1bHQpKCJjaGlsZEdyb3VwcyIsImNoaWxkR3JvdXBzLmxpa2VzLml0ZW1zIiwiY2hpbGRHcm91cHMubGlrZXMuaXRlbXMuW10iLCJjaGlsZEdyb3Vwcy5zdGFycy5pdGVtcyIsImNoaWxkR3JvdXBzLnN0YXJzLml0ZW1zLltdIiwiY2hpbGRHcm91cHMuZWRpdHMuaXRlbXMiLCJjaGlsZEdyb3Vwcy5lZGl0cy5pdGVtcy5bXSIsImNoaWxkR3JvdXBzLmJvb2ttYXJrcy5pdGVtcyIsImNoaWxkR3JvdXBzLmJvb2ttYXJrcy5pdGVtcy5bXSIpLHUoXz17X2F0dGFjaENhdGVnb3J5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jYXRlZ29yeV9pZDtlJiZ0aGlzLnNldCgiY2F0ZWdvcnkiLGEuZGVmYXVsdC5maW5kQnlJZChlKSl9LGRlc2NyaXB0aW9uS2V5OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZXx8MDw9ay5UT19TSE9XLmluZGV4T2YoZSk/dGhpcy5pc1BNP3RoaXMuc2FtZVVzZXI/InNlbnRfYnlfeW91Ijoic2VudF9ieV91c2VyIjp0aGlzLnNhbWVVc2VyPyJwb3N0ZWRfYnlfeW91IjoicG9zdGVkX2J5X3VzZXIiOnRoaXMudG9waWNUeXBlP3RoaXMuc2FtZVVzZXI/InlvdV9wb3N0ZWRfdG9waWMiOiJ1c2VyX3Bvc3RlZF90b3BpYyI6dGhpcy5wb3N0UmVwbHlUeXBlP3RoaXMucmVwbHlfdG9fcG9zdF9udW1iZXI/dGhpcy5zYW1lVXNlcj8ieW91X3JlcGxpZWRfdG9fcG9zdCI6InVzZXJfcmVwbGllZF90b19wb3N0Ijp0aGlzLnNhbWVVc2VyPyJ5b3VfcmVwbGllZF90b190b3BpYyI6InVzZXJfcmVwbGllZF90b190b3BpYyI6dGhpcy5tZW50aW9uVHlwZT90aGlzLnNhbWVVc2VyPyJ5b3VfbWVudGlvbmVkX3VzZXIiOnRoaXMudGFyZ2V0VXNlcj8idXNlcl9tZW50aW9uZWRfeW91IjoidXNlcl9tZW50aW9uZWRfdXNlciI6dm9pZCAwfSxzYW1lVXNlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0sdGFyZ2V0VXNlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0scHJlc2VudE5hbWU6KDAsbi5vcikoIm5hbWUiLCJ1c2VybmFtZSIpLHRhcmdldERpc3BsYXlOYW1lOigwLG4ub3IpKCJ0YXJnZXRfbmFtZSIsInRhcmdldF91c2VybmFtZSIpLGFjdGluZ0Rpc3BsYXlOYW1lOigwLG4ub3IpKCJhY3RpbmdfbmFtZSIsImFjdGluZ191c2VybmFtZSIpLHRhcmdldFVzZXJVcmw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsci51c2VyUGF0aCkoZSl9LHVzZXJuYW1lTG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdXNlclVybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxyLnVzZXJQYXRoKShlKX0scG9zdFVybDpmdW5jdGlvbigpe3JldHVybigwLG8ucG9zdFVybCkodGhpcy5zbHVnLHRoaXMudG9waWNfaWQsdGhpcy5wb3N0X251bWJlcil9LHJlcGx5VXJsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsby5wb3N0VXJsKSh0aGlzLnNsdWcsdGhpcy50b3BpY19pZCx0aGlzLnJlcGx5X3RvX3Bvc3RfbnVtYmVyKX0scmVwbHlUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5yZXBsaWVzKSxwb3N0VHlwZTooMCxuLmVxdWFsKSgiYWN0aW9uX3R5cGUiLHcucG9zdHMpLHRvcGljVHlwZTooMCxuLmVxdWFsKSgiYWN0aW9uX3R5cGUiLHcudG9waWNzKSxib29rbWFya1R5cGU6KDAsbi5lcXVhbCkoImFjdGlvbl90eXBlIix3LmJvb2ttYXJrcyksbWVzc2FnZVNlbnRUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5tZXNzYWdlc19zZW50KSxtZXNzYWdlUmVjZWl2ZWRUeXBlOigwLG4uZXF1YWwpKCJhY3Rpb25fdHlwZSIsdy5tZXNzYWdlc19yZWNlaXZlZCksbWVudGlvblR5cGU6KDAsbi5lcXVhbCkoImFjdGlvbl90eXBlIix3Lm1lbnRpb25zKSxpc1BNOigwLG4ub3IpKCJtZXNzYWdlU2VudFR5cGUiLCJtZXNzYWdlUmVjZWl2ZWRUeXBlIikscG9zdFJlcGx5VHlwZTooMCxuLm9yKSgicG9zdFR5cGUiLCJyZXBseVR5cGUiKSxyZW1vdmFibGVCb29rbWFyazooMCxuLmFuZCkoImJvb2ttYXJrVHlwZSIsInNhbWVVc2VyIiksYWRkQ2hpbGQ6ZnVuY3Rpb24oZSl7dmFyIHQ9KHQ9dGhpcy5jaGlsZEdyb3Vwcyl8fHtsaWtlczpzLmRlZmF1bHQuY3JlYXRlKHtpY29uOiJoZWFydCJ9KSxzdGFyczpzLmRlZmF1bHQuY3JlYXRlKHtpY29uOiJzdGFyIn0pLGVkaXRzOnMuZGVmYXVsdC5jcmVhdGUoe2ljb246InBlbmNpbC1hbHQifSksYm9va21hcmtzOnMuZGVmYXVsdC5jcmVhdGUoe2ljb246ImJvb2ttYXJrIn0pfTt0aGlzLnNldCgiY2hpbGRHcm91cHMiLHQpO3ZhciBuPXRbZnVuY3Rpb24oKXtzd2l0Y2goZS5hY3Rpb25fdHlwZSl7Y2FzZSB3Lmxpa2VzX2dpdmVuOmNhc2Ugdy5saWtlc19yZWNlaXZlZDpyZXR1cm4ibGlrZXMiO2Nhc2Ugdy5lZGl0czpyZXR1cm4iZWRpdHMiO2Nhc2Ugdy5ib29rbWFya3M6cmV0dXJuImJvb2ttYXJrcyJ9fSgpXTtuJiZuLnB1c2goZSl9LGNoaWxkcmVuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jaGlsZEdyb3Vwcyx0PVtdO3JldHVybiBlJiYodD1bZS5saWtlcyxlLnN0YXJzLGUuZWRpdHMsZS5ib29rbWFya3NdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoIml0ZW1zIikmJjA8ZS5nZXQoIml0ZW1zIikubGVuZ3RofSkpLHR9LHN3aXRjaFRvQWN0aW5nOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHt1c2VybmFtZTp0aGlzLmFjdGluZ191c2VybmFtZSxuYW1lOnRoaXMuYWN0aW5nRGlzcGxheU5hbWV9KX19LCJfYXR0YWNoQ2F0ZWdvcnkiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIl9hdHRhY2hDYXRlZ29yeSIpLF8pLHUoXywiZGVzY3JpcHRpb25LZXkiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImRlc2NyaXB0aW9uS2V5IiksXyksdShfLCJzYW1lVXNlciIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywic2FtZVVzZXIiKSxfKSx1KF8sInRhcmdldFVzZXIiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRhcmdldFVzZXIiKSxfKSx1KF8sInRhcmdldFVzZXJVcmwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRhcmdldFVzZXJVcmwiKSxfKSx1KF8sInVzZXJuYW1lTG93ZXIiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInVzZXJuYW1lTG93ZXIiKSxfKSx1KF8sInVzZXJVcmwiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInVzZXJVcmwiKSxfKSx1KF8sInBvc3RVcmwiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInBvc3RVcmwiKSxfKSx1KF8sInJlcGx5VXJsIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJyZXBseVVybCIpLF8pLHUoXywiY2hpbGRyZW4iLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNoaWxkcmVuIiksXyksXykpO2sucmVvcGVuQ2xhc3Moe2NvbGxhcHNlU3RyZWFtOmZ1bmN0aW9uKGUpe3ZhciBzPXt9LG89W10scj0wO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnRvcGljX2lkKyItIitlLnBvc3RfbnVtYmVyLGk9c1tuXTt2b2lkIDA9PT1pPyh0PXZvaWQgMCwwPD1rLlRPX0NPTExBUFNFLmluZGV4T2YoZS5hY3Rpb25fdHlwZSk/KHQ9ay5jcmVhdGUoZSksZS5zd2l0Y2hUb0FjdGluZygpLHQuYWRkQ2hpbGQoZSkpOnQ9ZSxzW25dPXIsb1tyXT10LHIrPTEpOjA8PWsuVE9fQ09MTEFQU0UuaW5kZXhPZihlLmFjdGlvbl90eXBlKT8oZS5zd2l0Y2hUb0FjdGluZygpLG9baV0uYWRkQ2hpbGQoZSkpOm9baV0uc2V0UHJvcGVydGllcyhlLmdldFByb3BlcnRpZXMoImFjdGlvbl90eXBlIiwiZGVzY3JpcHRpb24iKSl9KSxvfSxUWVBFUzp3LFRZUEVTX0lOVkVSVEVEOngsVE9fQ09MTEFQU0U6W3cubGlrZXNfZ2l2ZW4sdy5saWtlc19yZWNlaXZlZCx3LmVkaXRzLHcuYm9va21hcmtzXSxUT19TSE9XOlt3Lmxpa2VzX2dpdmVuLHcubGlrZXNfcmVjZWl2ZWQsdy5lZGl0cyx3LmJvb2ttYXJrcyx3Lm1lc3NhZ2VzX3NlbnQsdy5tZXNzYWdlc19yZWNlaXZlZF19KSxlLmRlZmF1bHQ9a30pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWJhZGdlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LGksbixzLHIsbyxhKXsidXNlIHN0cmljdCI7dmFyIGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGMsZCxwLG0sZixoLGI9by5kZWZhdWx0LmV4dGVuZCgoYz1sPXtwb3N0VXJsOmZ1bmN0aW9uKCl7aWYodGhpcy50b3BpY190aXRsZSlyZXR1cm4iL3QvLS8iK3RoaXMudG9waWNfaWQrIi8iK3RoaXMucG9zdF9udW1iZXJ9LHJldm9rZTpmdW5jdGlvbigpe3JldHVybigwLGkuYWpheCkoIi91c2VyX2JhZGdlcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX19LGQ9InBvc3RVcmwiLHA9W3QuZGVmYXVsdF0sdT0odT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInBvc3RVcmwiKSk/dS52YWx1ZTp2b2lkIDAsbT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19LGY9bCxoPXt9LE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oZSl7aFtlXT1tW2VdfSksaC5lbnVtZXJhYmxlPSEhaC5lbnVtZXJhYmxlLGguY29uZmlndXJhYmxlPSEhaC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBofHxoLmluaXRpYWxpemVyKSYmKGgud3JpdGFibGU9ITApLGg9cC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChjLGQsZSl8fGV9LGgpLGYmJnZvaWQgMCE9PWguaW5pdGlhbGl6ZXImJihoLnZhbHVlPWguaW5pdGlhbGl6ZXI/aC5pbml0aWFsaXplci5jYWxsKGYpOnZvaWQgMCxoLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09aC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGQsaCksaD1udWxsKSxsKSk7Yi5yZW9wZW5DbGFzcyh7Y3JlYXRlRnJvbUpzb246ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZS51c2VycyYmKGUudXNlcnM9W10pO3ZhciBpPXt9O2UudXNlcnMuZm9yRWFjaChmdW5jdGlvbihlKXtpW2UuaWRdPWEuZGVmYXVsdC5jcmVhdGUoZSl9KSx2b2lkIDA9PT1lLnRvcGljcyYmKGUudG9waWNzPVtdKTt2YXIgcz17fTtlLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3NbZS5pZF09ci5kZWZhdWx0LmNyZWF0ZShlKX0pLHZvaWQgMD09PWUuYmFkZ2VzJiYoZS5iYWRnZXM9W10pO3ZhciBvPXt9O24uZGVmYXVsdC5jcmVhdGVGcm9tSnNvbihlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZS5nZXQoImlkIildPWV9KTt2YXIgdD1bXTtyZXR1cm4gdD0odD0idXNlcl9iYWRnZSJpbiBlP1tlLnVzZXJfYmFkZ2VdOmUudXNlcl9iYWRnZV9pbmZvJiZlLnVzZXJfYmFkZ2VfaW5mby51c2VyX2JhZGdlc3x8ZS51c2VyX2JhZGdlcykubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWIuY3JlYXRlKGUpLG49RGF0ZS5wYXJzZSh0LmdldCgiZ3JhbnRlZF9hdCIpKTtyZXR1cm4gdC5zZXQoImdyYW50ZWRBdCIsbiksdC5zZXQoImJhZGdlIixvW3QuZ2V0KCJiYWRnZV9pZCIpXSksdC5nZXQoInVzZXJfaWQiKSYmdC5zZXQoInVzZXIiLGlbdC5nZXQoInVzZXJfaWQiKV0pLHQuZ2V0KCJncmFudGVkX2J5X2lkIikmJnQuc2V0KCJncmFudGVkX2J5IixpW3QuZ2V0KCJncmFudGVkX2J5X2lkIildKSx0LmdldCgidG9waWNfaWQiKSYmdC5zZXQoInRvcGljIixzW3QuZ2V0KCJ0b3BpY19pZCIpXSksdH0pLCJ1c2VyX2JhZGdlImluIGU/dFswXTooZS51c2VyX2JhZGdlX2luZm8mJih0LmdyYW50X2NvdW50PWUudXNlcl9iYWRnZV9pbmZvLmdyYW50X2NvdW50LHQudXNlcm5hbWU9ZS51c2VyX2JhZGdlX2luZm8udXNlcm5hbWUpLHQpfSxmaW5kQnlVc2VybmFtZTpmdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiBzLlByb21pc2UucmVzb2x2ZShbXSk7dmFyIG49Ii91c2VyLWJhZGdlcy8iK2UrIi5qc29uIjtyZXR1cm4gdCYmdC5ncm91cGVkJiYobis9Ij9ncm91cGVkPXRydWUiKSwoMCxpLmFqYXgpKG4pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGIuY3JlYXRlRnJvbUpzb24oZSl9KX0sZmluZEJ5QmFkZ2VJZDpmdW5jdGlvbihlLHQpe3JldHVybih0PXR8fHt9KS5iYWRnZV9pZD1lLCgwLGkuYWpheCkoIi91c2VyX2JhZGdlcy5qc29uIix7ZGF0YTp0fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYi5jcmVhdGVGcm9tSnNvbihlKX0pfSxncmFudDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5hamF4KSgiL3VzZXJfYmFkZ2VzIix7dHlwZToiUE9TVCIsZGF0YTp7dXNlcm5hbWU6dCxiYWRnZV9pZDplLHJlYXNvbjpufX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGIuY3JlYXRlRnJvbUpzb24oZSl9KX19KSxlLmRlZmF1bHQ9Yn0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9hdXRvc2l6ZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdCxoPSJmdW5jdGlvbiI9PXR5cGVvZiBTZXQ/bmV3IFNldDoodD1bXSx7aGFzOmZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKC0xPHQuaW5kZXhPZihlKSl9LGFkZDpmdW5jdGlvbihlKXt0LnB1c2goZSl9LGRlbGV0ZTpmdW5jdGlvbihlKXt0LnNwbGljZSh0LmluZGV4T2YoZSksMSl9fSk7ZnVuY3Rpb24gbihlKXt2YXIgdDtlJiZlLm5vZGVOYW1lJiYiVEVYVEFSRUEiPT09ZS5ub2RlTmFtZSYmKCh0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5pbml0RXZlbnQoImF1dG9zaXplOmRlc3Ryb3kiLCEwLCExKSxlLmRpc3BhdGNoRXZlbnQodCkpfWZ1bmN0aW9uIGkoZSl7dmFyIHQ7ZSYmZS5ub2RlTmFtZSYmIlRFWFRBUkVBIj09PWUubm9kZU5hbWUmJigodD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSkuaW5pdEV2ZW50KCJhdXRvc2l6ZTp1cGRhdGUiLCEwLCExKSxlLmRpc3BhdGNoRXZlbnQodCkpfWZ1bmN0aW9uIHMoZSx0KXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyxlKXt2YXIgbyxuLHIsaSx0LGE9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lP2U6e30sbD1hLnNldE92ZXJmbG93WCx1PXZvaWQgMD09PWx8fGwsYz1hLnNldE92ZXJmbG93WSxkPXZvaWQgMD09PWN8fGM7ZnVuY3Rpb24gcChlKXt2YXIgdD1zLnN0eWxlLndpZHRoO3Muc3R5bGUud2lkdGg9IjBweCIscy5vZmZzZXRXaWR0aCxzLnN0eWxlLndpZHRoPXQsbj1lLGQmJihzLnN0eWxlLm92ZXJmbG93WT1lKSxtKCl9ZnVuY3Rpb24gbSgpe3ZhciBlPXdpbmRvdy5wYWdlWU9mZnNldCx0PWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLG49cy5zdHlsZS5oZWlnaHQ7cy5zdHlsZS5oZWlnaHQ9ImF1dG8iO3ZhciBpPXMuc2Nyb2xsSGVpZ2h0K287MCE9PXMuc2Nyb2xsSGVpZ2h0PyhzLnN0eWxlLmhlaWdodD1pKyJweCIscj1zLmNsaWVudFdpZHRoLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9ZSxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcD10KTpzLnN0eWxlLmhlaWdodD1ufWZ1bmN0aW9uIGYoKXt2YXIgZSx0PXMuc3R5bGUuaGVpZ2h0O20oKSx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzLG51bGwpLmhlaWdodCE9PXMuc3R5bGUuaGVpZ2h0PyJ2aXNpYmxlIiE9PW4mJnAoInZpc2libGUiKToiaGlkZGVuIiE9PW4mJnAoImhpZGRlbiIpLHQhPT1zLnN0eWxlLmhlaWdodCYmKChlPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5pbml0RXZlbnQoImF1dG9zaXplOnJlc2l6ZWQiLCEwLCExKSxzLmRpc3BhdGNoRXZlbnQoZSkpfXMmJnMubm9kZU5hbWUmJiJURVhUQVJFQSI9PT1zLm5vZGVOYW1lJiYhaC5oYXMocykmJihuPW89bnVsbCxyPXMuY2xpZW50V2lkdGgsaT1mdW5jdGlvbigpe3MuY2xpZW50V2lkdGghPT1yJiZmKCl9LHMuYWRkRXZlbnRMaXN0ZW5lcigiYXV0b3NpemU6ZGVzdHJveSIsZnVuY3Rpb24gZSh0KXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixpLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IixmLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixmLCExKSxzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImF1dG9zaXplOmRlc3Ryb3kiLGUsITEpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYXV0b3NpemU6dXBkYXRlIixmLCExKSxoLmRlbGV0ZShzKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Muc3R5bGVbZV09dFtlXX0pfSwhMSksIm9ucHJvcGVydHljaGFuZ2UiaW4gcyYmIm9uaW5wdXQiaW4gcyYmcy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZiwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaSwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZiwhMSkscy5hZGRFdmVudExpc3RlbmVyKCJhdXRvc2l6ZTp1cGRhdGUiLGYsITEpLGguYWRkKHMpLHUmJihzLnN0eWxlLm92ZXJmbG93WD0iaGlkZGVuIixzLnN0eWxlLndvcmRXcmFwPSJicmVhay13b3JkIiksdD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzLG51bGwpLG49dC5vdmVyZmxvd1ksInZlcnRpY2FsIj09PXQucmVzaXplP3Muc3R5bGUucmVzaXplPSJub25lIjoiYm90aCI9PT10LnJlc2l6ZSYmKHMuc3R5bGUucmVzaXplPSJob3Jpem9udGFsIiksbz0iY29udGVudC1ib3giPT09dC5ib3hTaXppbmc/LShwYXJzZUZsb2F0KHQucGFkZGluZ1RvcCkrcGFyc2VGbG9hdCh0LnBhZGRpbmdCb3R0b20pKTpwYXJzZUZsb2F0KHQuYm9yZGVyVG9wV2lkdGgpK3BhcnNlRmxvYXQodC5ib3JkZXJCb3R0b21XaWR0aCksaXNOYU4obykmJihvPTApLGYoKSl9KGUsdCl9KSxlfXMuZGVzdHJveT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxuKSxlfSxzLnVwZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZSYmQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmxlbmd0aD9lOltlXSxpKSxlfSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9jYWNoZWQtdG9waWMtbGlzdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmZpbmRPclJlc2V0Q2FjaGVkVG9waWNMaXN0PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInRvcGljTGlzdCIpO3JldHVybiBuJiZuLmZpbHRlcj09PXQ/bjooZS5zZXRQcm9wZXJ0aWVzKHt0b3BpY0xpc3Q6bnVsbCx0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbjpudWxsfSksITEpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9jYXRlZ29yeS1oYXNodGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TRVBBUkFUT1I9dm9pZCAwLGUucmVwbGFjZVNwYW49ZnVuY3Rpb24oZSx0LG4pe2UucmVwbGFjZVdpdGgoJzxhIGhyZWY9IicrbisnIiBjbGFzcz0iaGFzaHRhZyI+IzxzcGFuPicrdCsiPC9zcGFuPjwvYT4iKX0sZS5jYXRlZ29yeUhhc2h0YWdUcmlnZ2VyUnVsZT1mdW5jdGlvbihlLHQpe3ZhciBuPSgwLHIuY2FyZXRSb3dDb2wpKGUpLGk9bi5yb3dOdW0scz1uLmNvbE51bSxvPWUudmFsdWUuc3BsaXQoIlxuIilbaS0xXTtpZih0JiZ0LmJhY2tTcGFjZSYmKC0tcyxvPW8uc2xpY2UoMCxvLmxlbmd0aC0xKSwvXiN7MX1cdysvLnRlc3QobykpKXJldHVybiExO2lmKHM8NiYmby5zbGljZSgwLHMpPT09IiMiLnJlcGVhdChzKSlyZXR1cm4hMTtpZigoMCxyLmluQ29kZUJsb2NrKShlLnZhbHVlLCgwLHIuY2FyZXRQb3NpdGlvbikoZSkpKXJldHVybiExO3JldHVybiEwfTtlLlNFUEFSQVRPUj0iOiJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktdGFnLXNlYXJjaCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvYXV0b2NvbXBsZXRlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvdGFnLWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi9jYXRlZ29yeS1oYXNodGFncyIsInJzdnAiXSxmdW5jdGlvbihlLHIsYSxvLGwsdSxjKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2VhcmNoPWZ1bmN0aW9uKGUsdCl7cCYmKHAuYWJvcnQoKSxwPW51bGwpOzNlNDxuZXcgRGF0ZS1kJiYobT17fSk7dmFyIG49bVtlXTtpZihuKXJldHVybiBuO3ZhciBpPW8uZGVmYXVsdC5zZWFyY2goZSx7bGltaXQ6NX0pLHM9aS5sZW5ndGg7cmV0dXJuIGk9aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue21vZGVsOmUsdGV4dDpvLmRlZmF1bHQuc2x1Z0ZvcihlLHUuU0VQQVJBVE9SKX19KSw1IT09cyYmdC50YWdnaW5nX2VuYWJsZWQ/ZnVuY3Rpb24oaSxlLG8pe3JldHVybiBuZXcgYy5Qcm9taXNlKGZ1bmN0aW9uKHQpe3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KGEuQ0FOQ0VMTEVEX1NUQVRVUyl9LDVlMyk7KDAsci5kZWZhdWx0KShmdW5jdGlvbihlLGksdCl7cD0kLmFqYXgoRGlzY291cnNlLmdldFVSTCgiL3RhZ3MvZmlsdGVyL3NlYXJjaCIpLHt0eXBlOiJHRVQiLGNhY2hlOiEwLGRhdGE6e2xpbWl0Om8scTplfX0pO3ZhciBzPWEuQ0FOQ0VMTEVEX1NUQVRVUztwLnRoZW4oZnVuY3Rpb24oZSl7dmFyIG49aS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubW9kZWwuZ2V0KCJuYW1lIil9KSx0PWUucmVzdWx0cy5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50ZXh0O3JldHVybntuYW1lOnQsdGV4dDpuLmluY2x1ZGVzKHQpPyIiK3QrbC5UQUdfSEFTSFRBR19QT1NURklYOnQsY291bnQ6ZS5jb3VudH19KTtzPWkuY29uY2F0KHQpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7cD1udWxsLHQocyl9KX0sMzAwKShpLGUsZnVuY3Rpb24oZSl7Y2xlYXJUaW1lb3V0KG4pLHQoZihpLGUpKX0pfSl9KGUsaSw1LXMpOmYoZSxpKX07dmFyIGQscCxtPXt9O2Z1bmN0aW9uIGYoZSx0KXtyZXR1cm4gbVtlXT10LGQ9bmV3IERhdGUsdH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY2xlYW4tZG9tIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt3aW5kb3cuTWluaVByb2ZpbGVyJiZ3aW5kb3cuTWluaVByb2ZpbGVyLnBhZ2VUcmFuc2l0aW9uKCksJCgiaGVhZGVyIHVsLmljb25zIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLCQoJ1tkYXRhLXRvZ2dsZT0iZHJvcGRvd24iXScpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJvcGVuIiksJC5tYWduaWZpY1BvcHVwJiYkLm1hZ25pZmljUG9wdXAuaW5zdGFuY2UmJigkLm1hZ25pZmljUG9wdXAuaW5zdGFuY2UuY2xvc2UoKSwkKCJib2R5IikucmVtb3ZlQ2xhc3MoIm1mcC16b29tLW91dC1jdXIiKSksJChkb2N1bWVudC5hY3RpdmVFbGVtZW50KS5ub3QoImJvZHkiKS5ub3QoIi5uby1ibHVyIikuYmx1cigpLERpc2NvdXJzZS5zZXQoImNvbnRleHRDb3VudCIsMCksRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJyb3V0ZTphcHBsaWNhdGlvbiIpLnNlbmQoImNsb3NlTW9kYWwiKTt2YXIgZT0kKCJodG1sIikuZGF0YSgiaGlkZS1kcm9wZG93biIpO2UmJmUoKSxEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLnRyaWdnZXIoImRvbTpjbGVhbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNsZWFuRE9NPWZ1bmN0aW9uKCl7KDAsdC5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsbil9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9pbnRlcmNlcHQtY2xpY2siLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInJzdnAiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUseSxfLHcseCxrLFAsaixUKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShlKXtyZXR1cm4hZS5pcygiLmxpZ2h0Ym94LCAubm8tdHJhY2stbGluaywgLmhhc2h0YWcsIC5iYWNrIikmJigwPT09ZS5wYXJlbnRzKCJhc2lkZS5xdW90ZSwgLmVsaWRlZCwgLmV4cGFuZGVkLWVtYmVkIikubGVuZ3RoJiYoZS5oYXNDbGFzcygidHJhY2stbGluayIpfHwwPT09ZS5jbG9zZXN0KCIuaGFzaHRhZywgLmJhZGdlLWNhdGVnb3J5LCAub25lYm94LXJlc3VsdCwgLm9uZWJveC1ib2R5IikubGVuZ3RoKSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaXNWYWxpZExpbms9RSxlLmRlZmF1bHQ9e3RyYWNrQ2xpY2s6ZnVuY3Rpb24oZSl7aWYoMz09PWUud2hpY2gpcmV0dXJuITA7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCgiUmFuZ2UiPT09dC50eXBlfHwwPHQucmFuZ2VDb3VudCkmJiIiIT09KDAsay5zZWxlY3RlZFRleHQpKCkpcmV0dXJuITA7dmFyIG49JChlLmN1cnJlbnRUYXJnZXQpLGk9RShuKTtpZihuLmlzKCIubWVudGlvbiwgLm1lbnRpb24tZ3JvdXAiKSlyZXR1cm4hMDt2YXIgcyxvPShuLmF0dHIoImhyZWYiKXx8bi5kYXRhKCJocmVmIil8fCIiKS50cmltKCk7aWYoIW98fDA9PT1vLmluZGV4T2YoIm1haWx0bzoiKSlyZXR1cm4hMDtpZihuLmhhc0NsYXNzKCJhdHRhY2htZW50IikpcmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MucHJldmVudF9hbm9uc19mcm9tX2Rvd25sb2FkaW5nX2ZpbGVzJiYhVC5kZWZhdWx0LmN1cnJlbnQoKT9ib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuYXR0YWNobWVudF9kb3dubG9hZF9yZXF1aXJlc19sb2dpbiIpKTooMCx4LndhbnRzTmV3V2luZG93KShlKT8oKHM9d2luZG93Lm9wZW4obywiX2JsYW5rIikpLm9wZW5lcj1udWxsLHMuZm9jdXMoKSk6dy5kZWZhdWx0LnJlZGlyZWN0VG8obyksITE7dmFyIHIsYSxsLHU9bi5jbG9zZXN0KCJhcnRpY2xlOm5vdCgub25lYm94LWJvZHkpLCAuZXhjZXJwdCwgI3JldmlzaW9ucyIpLGM9dS5kYXRhKCJwb3N0LWlkIiksZD0kKCIjdG9waWMiKS5kYXRhKCJ0b3BpYy1pZCIpfHx1LmRhdGEoInRvcGljLWlkIikscD1uLmRhdGEoInVzZXItaWQiKXx8dS5kYXRhKCJ1c2VyLWlkIiksbT1wJiZwPT09VC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJpZCIpOyFpfHxtfHwxPT09KHI9JCgic3Bhbi5iYWRnZSIsbikpLmxlbmd0aCYmKGE9ci5odG1sKCksbD0obmV3IERhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygpKyItIitjKyItIitvLC9eXGQrJC8udGVzdChhKSYmIXNlc3Npb25TdG9yYWdlLmdldEl0ZW0obCkmJihzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGwsITApLHIuaHRtbChwYXJzZUludChhLDEwKSsxKSkpO3ZhciBmLGg9UC5Qcm9taXNlLnJlc29sdmUoKTtpJiYoInRlc3QiIT09ai5kZWZhdWx0LmVudmlyb25tZW50JiZuYXZpZ2F0b3Iuc2VuZEJlYWNvbj8oKGY9bmV3IEZvcm1EYXRhKS5hcHBlbmQoInVybCIsbyksZi5hcHBlbmQoInBvc3RfaWQiLGMpLGYuYXBwZW5kKCJ0b3BpY19pZCIsZCksbmF2aWdhdG9yLnNlbmRCZWFjb24oRGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpLGYpKTpoPSgwLF8uYWpheCkoRGlzY291cnNlLmdldFVSTCgiL2NsaWNrcy90cmFjayIpLHt0eXBlOiJQT1NUIixkYXRhOnt1cmw6byxwb3N0X2lkOmMsdG9waWNfaWQ6ZH19KSk7dmFyIGIsZz13LmRlZmF1bHQuaXNJbnRlcm5hbChvKSx2PVQuZGVmYXVsdC5jdXJyZW50UHJvcCgiZXh0ZXJuYWxfbGlua3NfaW5fbmV3X3RhYiIpO3JldHVybiEhKDAseC53YW50c05ld1dpbmRvdykoZSl8fCghZyYmdj8oKGI9d2luZG93Lm9wZW4obywiX2JsYW5rIikpLm9wZW5lcj1udWxsLGIuZm9jdXMoKSxuLmRhdGEoImhyZWYiKXx8KG4uYWRkQ2xhc3MoIm5vLWhyZWYiKSxuLmRhdGEoImhyZWYiLG4uYXR0cigiaHJlZiIpKSxuLmF0dHIoImhyZWYiLG51bGwpLG4uZGF0YSgiYXV0by1yb3V0ZSIsITApLCgwLHkubGF0ZXIpKGZ1bmN0aW9uKCl7bi5yZW1vdmVDbGFzcygibm8taHJlZiIpLG4uYXR0cigiaHJlZiIsbi5kYXRhKCJocmVmIikpLG4uZGF0YSgiaHJlZiIsbnVsbCksbi5kYXRhKCJhdXRvLXJvdXRlIixudWxsKX0sNTApKSk6aC5maW5hbGx5KGZ1bmN0aW9uKCl7Zz93LmRlZmF1bHQucm91dGVUbyhvKTp3LmRlZmF1bHQucmVkaXJlY3RUbyhvKX0pLCExKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2NvbmNlcm5zL3NlYXJjaC1jb25zdGFudHMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5QSFJBU0VfTUFUQ0hfUkVHRVhQX1BBVFRFUk49JyIoW14iXSspIid9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvY29weS10ZXh0IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3ZhciBuPSExO3RyeXtkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSYmKG49ITApfWNhdGNoKGUpe31pZihuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2kuc2VsZWN0Tm9kZSh0KTt2YXIgcz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cy5yZW1vdmVBbGxSYW5nZXMoKSxzLmFkZFJhbmdlKGkpO3RyeXtpZihkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKXJldHVybiEwfWNhdGNoKGUpe31yZXR1cm4hMX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2QtcG9wb3ZlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiJdLGZ1bmN0aW9uKGUscCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlBPUE9WRVJfU0VMRUNUT1JTPXZvaWQgMCxlLmhpZGVQb3BvdmVyPW8sZS5zaG93UG9wb3Zlcj1mdW5jdGlvbihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj0kKGUudGFyZ2V0KS5jbG9zZXN0KHMpLmZpcnN0KCk7bi5sZW5ndGh8fChuPSQoZS50YXJnZXQpKTt3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyYmMTx3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyYmaCgpLmFkZENsYXNzKCJyZXRpbmEiKTtoKCkubGVuZ3RofHwkKCJib2R5IikuYXBwZW5kKCQoaSkpO3JldHVybiBmdW5jdGlvbihlLHQpe3Q9dHx8ZS5hdHRyKCJkYXRhLWh0bWwtcG9wb3ZlciIpfHxlLmF0dHIoImRhdGEtaHRtbC10b29sdGlwIiksYShlLHQpfShuLHQuaHRtbENvbnRlbnQpLGZ1bmN0aW9uKGUsdCl7dD10fHxlLmF0dHIoImRhdGEtcG9wb3ZlciIpfHxlLmF0dHIoImRhdGEtdG9vbHRpcCIpLHIoZSx0KX0obix0LnRleHRDb250ZW50KSxoKCkuZmFkZUluKCksbChuKSx7aHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gYShuLGUpfSx0ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiByKG4sZSl9LGhpZGU6b319O3ZhciB0PSJkLXBvcG92ZXIiLGk9J1xuICA8ZGl2IGlkPSInK3QrJyIgY2xhc3M9ImlzLXVuZGVyIj5cbiAgICA8ZGl2IGNsYXNzPSJkLXBvcG92ZXItYXJyb3cgZC1wb3BvdmVyLXRvcC1hcnJvdyI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz0iZC1wb3BvdmVyLWNvbnRlbnQiPlxuICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lciBzbWFsbCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz0iZC1wb3BvdmVyLWFycm93IGQtcG9wb3Zlci1ib3R0b20tYXJyb3ciPjwvZGl2PlxuICA8L2Rpdj5cbicsbT0xMCxmPTUscz1lLlBPUE9WRVJfU0VMRUNUT1JTPSJbZGF0YS1odG1sLXBvcG92ZXJdLCBbZGF0YS1odG1sLXRvb2x0aXBdLCBbZGF0YS1wb3BvdmVyXSwgW2RhdGEtdG9vbHRpcF0iO2Z1bmN0aW9uIG8oKXtyZXR1cm4gaCgpLmZhZGVPdXQoKS5yZW1vdmUoKSxoKCl9ZnVuY3Rpb24gcihlLHQpe3QmJihoKCkuZmluZCgiLmQtcG9wb3Zlci1jb250ZW50IikudGV4dCh0KSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGwoZSl9KSl9ZnVuY3Rpb24gYShlLHQpe3QmJihoKCkuZmluZCgiLmQtcG9wb3Zlci1jb250ZW50IikuaHRtbCh0KSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGwoZSl9KSl9ZnVuY3Rpb24gbChlKXt2YXIgdD1oKCk7dC5yZW1vdmVDbGFzcygiaXMtYWJvdmUgaXMtdW5kZXIgaXMtbGVmdC1hbGlnbmVkIGlzLXJpZ2h0LWFsaWduZWQiKTt2YXIgbj0kKCIuZC1oZWFkZXIiKSxpPW4ubGVuZ3RoP25bMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tOjAscz0kKHdpbmRvdykud2lkdGgoKSxvPSQod2luZG93KS5oZWlnaHQoKSxyPXt3aWR0aDp0LndpZHRoKCksaGVpZ2h0OnQuaGVpZ2h0KCksbGVmdDpudWxsLHJpZ2h0Om51bGx9O3Iud2lkdGg+cy0yKmYmJihyLndpZHRoPXMtMipmLHQud2lkdGgoci53aWR0aCkpO3ZhciBhPWVbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbD1vLWEuYm90dG9tLW0sdT1hLnRvcC1pLW07bD5yLmhlaWdodCtmfHx1PGw/dC5jc3MoInRvcCIsYS5ib3R0b20rd2luZG93LnBhZ2VZT2Zmc2V0K20pLmFkZENsYXNzKCJpcy11bmRlciIpOnQuY3NzKCJ0b3AiLGEudG9wK3dpbmRvdy5wYWdlWU9mZnNldC1yLmhlaWdodC1tKS5hZGRDbGFzcygiaXMtYWJvdmUiKTt2YXIgYz1hLmxlZnQrYS53aWR0aC8yOyJsdHIiPT09KDAscC5zaXRlRGlyKSgpP2M+ci53aWR0aC8yK2Y/KHIubGVmdD1jLXIud2lkdGgvMix0LmNzcygibGVmdCIsci5sZWZ0KSk6KHIubGVmdD1mLHQuY3NzKCJsZWZ0IixyLmxlZnQpLmFkZENsYXNzKCJpcy1sZWZ0LWFsaWduZWQiKSk6cy1hLnJpZ2h0PnIud2lkdGgvMitmPyhyLmxlZnQ9Yy1yLndpZHRoLzIsdC5jc3MoImxlZnQiLHIubGVmdCkpOihyLmxlZnQ9cy1yLndpZHRoLTIqZix0LmNzcygibGVmdCIsci5sZWZ0KS5hZGRDbGFzcygiaXMtcmlnaHQtYWxpZ25lZCIpKTt2YXIgZD12b2lkIDAsZD0ibHRyIj09PSgwLHAuc2l0ZURpcikoKT9NYXRoLmFicyhhLmxlZnQtci5sZWZ0KTphLmxlZnQtci5sZWZ0K2Eud2lkdGgvMjt0LmZpbmQoIi5kLXBvcG92ZXItYXJyb3ciKS5jc3MoImxlZnQiLGQpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gJChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2RlY2ltYWwtYWRqdXN0IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PW58fDA9PStuP01hdGhbZV0odCk6KHQ9K3Qsbj0rbixpc05hTih0KXx8Im51bWJlciIhPXR5cGVvZiBufHxuJTEhPTA/TmFOOih0PXQudG9TdHJpbmcoKS5zcGxpdCgiZSIpLCsoKHQ9KHQ9TWF0aFtlXSgrKHRbMF0rImUiKyh0WzFdP3RbMV0tbjotbikpKSkudG9TdHJpbmcoKS5zcGxpdCgiZSIpKVswXSsiZSIrKHRbMV0/K3RbMV0rbjpuKSkpKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGVza3RvcC1ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9rZXktdmFsdWUtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGEsbCx0LHUsYyxkLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kaXNhYmxlPWUuY29uZmlybU5vdGlmaWNhdGlvbj1lLmFsZXJ0Q2hhbm5lbD1lLnVuc3Vic2NyaWJlPWUub25Ob3RpZmljYXRpb249ZS5pbml0PWUuY29udGV4dD12b2lkIDA7dmFyIHA9ITEsbT0hMSxmPW51bGwsaT0ieHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4IixoPS0xLHM9ImZvY3VzLXRyYWNrZXIiLGI9MWU0LG89ImRpc2NvdXJzZV9kZXNrdG9wX25vdGlmaWNhdGlvbnNfIixnPW5ldyB0LmRlZmF1bHQobyk7ZnVuY3Rpb24gcigpe2g9RGF0ZS5ub3coKX1mdW5jdGlvbiB2KGUpe3JldHVybiIvbm90aWZpY2F0aW9uLWFsZXJ0LyIrZS5nZXQoImlkIil9ZS5jb250ZXh0PW8sZS5pbml0PWZ1bmN0aW9uKGUsdCl7aWYobT0hMSxpPWUuY2xpZW50SWQsbi5kZWZhdWx0LmN1cnJlbnQoKSl7dHJ5e2cuZ2V0SXRlbShzKX1jYXRjaChlKXtyZXR1cm4gdm9pZCBjb25zb2xlLmluZm8oIkRpc2NvdXJzZSBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgYXJlIGRpc2FibGVkIC0gbG9jYWxTdG9yYWdlIGRlbmllZC4iKX1pZigiTm90aWZpY2F0aW9uImluIHdpbmRvdyl7dHJ5e2lmKCJncmFudGVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uKWY9ITA7ZWxzZSBpZigiZGVuaWVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uKXJldHVybiB2b2lkKGY9ITEpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiVW5leHBlY3RlZCBlcnJvciwgTm90aWZpY2F0aW9uIGlzIGRlZmluZWQgb24gd2luZG93IGJ1dCBub3QgYSByZXNwb25kaW5nIGNvcnJlY3RseSAiK2UpfW09ITA7dHJ5eyFmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGUua2V5IT09IiIrbytzfHx2b2lkKHA9ITEpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3B8fChwPSEwLGcuc2V0SXRlbShzLGkpKX0pLGRvY3VtZW50JiZ2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4mJmRvY3VtZW50LmhpZGRlbj9wPSExOihwPSEwLGcuc2V0SXRlbShzLGkpKTtkb2N1bWVudCYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyKTtlLm9uKCJwYWdlOmNoYW5nZWQiLHIpfSh0KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1lbHNlIGNvbnNvbGUuaW5mbygiRGlzY291cnNlIGRlc2t0b3Agbm90aWZpY2F0aW9ucyBhcmUgZGlzYWJsZWQgLSBub3Qgc3VwcG9ydGVkIGJ5IGJyb3dzZXIiKX19LGUub25Ob3RpZmljYXRpb249ZnVuY3Rpb24obil7dmFyIGksZSxzLG8scjttJiZwJiZoK2I8RGF0ZS5ub3coKSYmKGcuZ2V0SXRlbSgibm90aWZpY2F0aW9ucy1kaXNhYmxlZCIpfHwoaT1JMThuLnQoKGU9bi5ub3RpZmljYXRpb25fdHlwZSwibm90aWZpY2F0aW9ucy5wb3B1cC4iK2QuZGVmYXVsdC5jdXJyZW50KCkuZ2V0KCJub3RpZmljYXRpb25Mb29rdXAiKVtlXSkse3NpdGVfdGl0bGU6RGlzY291cnNlLlNpdGVTZXR0aW5ncy50aXRsZSx0b3BpYzpuLnRvcGljX3RpdGxlLHVzZXJuYW1lOigwLHUuZm9ybWF0VXNlcm5hbWUpKG4udXNlcm5hbWUpfSkscz1uLmV4Y2VycHQsbz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNpdGVfbG9nb19zbWFsbF91cmx8fERpc2NvdXJzZS5TaXRlU2V0dGluZ3Muc2l0ZV9sb2dvX3VybCxyPSJkaXNjb3Vyc2Utbm90aWZpY2F0aW9uLSIrRGlzY291cnNlLlNpdGVTZXR0aW5ncy50aXRsZSsiLSIrbi50b3BpY19pZCwoITA9PT1mP2MuUHJvbWlzZS5yZXNvbHZlKCk6ITE9PT1mP2MuUHJvbWlzZS5yZWplY3QoKTpuZXcgYy5Qcm9taXNlKGZ1bmN0aW9uKHQsbil7Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKGUpeygiZ3JhbnRlZCI9PT1lP3Q6bikoKX0pfSkpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1uZXcgTm90aWZpY2F0aW9uKGkse2JvZHk6cyxpY29uOm8sdGFnOnJ9KTtmdW5jdGlvbiB0KCl7bC5kZWZhdWx0LnJvdXRlVG8obi5wb3N0X3VybCksd2luZG93LmZvY3VzKCl9ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdCksKDAsYS5sYXRlcikoZnVuY3Rpb24oKXtlLmNsb3NlKCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdCl9LDFlNCl9KSkpfSxlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsdCl7ZS51bnN1YnNjcmliZSh2KHQpKX0sZS5hbGVydENoYW5uZWw9dixlLmNvbmZpcm1Ob3RpZmljYXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7cmV0dXJuIHQuY2xvc2UoKX12YXIgdD1uZXcgTm90aWZpY2F0aW9uKEkxOG4udCgibm90aWZpY2F0aW9ucy5wb3B1cC5jb25maXJtX3RpdGxlIix7c2l0ZV90aXRsZTpEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRpdGxlfSkse2JvZHk6STE4bi50KCJub3RpZmljYXRpb25zLnBvcHVwLmNvbmZpcm1fYm9keSIpLGljb246RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zaXRlX2xvZ29fc21hbGxfdXJsfHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNpdGVfbG9nb191cmwsdGFnOiJjb25maXJtLXN1YnNjcmlwdGlvbiJ9KTt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlKSwoMCxhLmxhdGVyKShmdW5jdGlvbigpe3QuY2xvc2UoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixlKX0sMWU0KX0sZS5kaXNhYmxlPWZ1bmN0aW9uKCl7Zy5zZXRJdGVtKCJub3RpZmljYXRpb25zLWRpc2FibGVkIiwiZGlzYWJsZWQiKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGlydHkta2V5cyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX0obixbe2tleToia2V5RGlydHkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KHQ9dHx8e30pLmRpcnR5PSEwLHRoaXMuX2tleXNbZV09dH19LHtrZXk6ImZvcmNlQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMua2V5RGlydHkoIioiKX19LHtrZXk6ImFsbERpcnR5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5fa2V5c1siKiJdfX0se2tleToib3B0aW9uc0ZvciIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2tleXNbZV18fHtkaXJ0eTohMX19fSx7a2V5OiJyZW5kZXJlZEtleSIsdmFsdWU6ZnVuY3Rpb24oZSl7IioiPT09ZT90aGlzLl9rZXlzPXt9OmRlbGV0ZSB0aGlzLl9rZXlzW2VdfX1dKSxuKTtmdW5jdGlvbiBuKGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMubmFtZT1lLHRoaXMuX2tleXM9e319ZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZGlzY291cnNlLWxvY2F0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJAZW1iZXIvb2JqZWN0L2ludGVybmFscyJdLGZ1bmN0aW9uKGUsdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89ITEsbj13aW5kb3cuaGlzdG9yeSYmInN0YXRlImluIHdpbmRvdy5oaXN0b3J5LHI9W10sYT10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJsb2NhdGlvbiIsdGhpcy5sb2NhdGlvbnx8d2luZG93LmxvY2F0aW9uKSx0aGlzLmluaXRTdGF0ZSgpfSxpbml0U3RhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhpc3Rvcnl8fHdpbmRvdy5oaXN0b3J5O2UmJmUuc2Nyb2xsUmVzdG9yYXRpb24mJihlLnNjcm9sbFJlc3RvcmF0aW9uPSJtYW51YWwiKSx0aGlzLnNldCgiaGlzdG9yeSIsZSk7dmFyIHQ9dGhpcy5mb3JtYXRVUkwodGhpcy5nZXRVUkwoKSk7dGhpcy5sb2NhdGlvbiYmdGhpcy5sb2NhdGlvbi5oYXNoJiYodCs9dGhpcy5sb2NhdGlvbi5oYXNoKSx0aGlzLnJlcGxhY2VTdGF0ZSh0KX0scm9vdFVSTDoiLyIsZ2V0VVJMOmZ1bmN0aW9uKCl7dmFyIGU9KGU9dGhpcy5sb2NhdGlvbi5wYXRobmFtZSkucmVwbGFjZShuZXcgUmVnRXhwKCJeIitEaXNjb3Vyc2UuQmFzZVVyaSksIiIpO3JldHVybiBlKz10aGlzLmxvY2F0aW9uLnNlYXJjaHx8IiJ9LHNldFVSTDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMuZ2V0U3RhdGUoKTtlPXRoaXMuZm9ybWF0VVJMKGUpLG4mJm4ucGF0aCE9PWUmJigodD1bZSxuLnBhdGhdKS5pbmNsdWRlcygiLyIpJiZ0LmluY2x1ZGVzKCIvIisoMCxpLmRlZmF1bHRIb21lcGFnZSkoKSl8fHRoaXMucHVzaFN0YXRlKGUpKX0scmVwbGFjZVVSTDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmdldFN0YXRlKCk7ZT10aGlzLmZvcm1hdFVSTChlKSx0JiZ0LnBhdGg9PT1lfHx0aGlzLnJlcGxhY2VTdGF0ZShlKX0sZ2V0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbj90aGlzLmhpc3Rvcnkuc3RhdGU6dGhpcy5faGlzdG9yeVN0YXRlfSxwdXNoU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9e3BhdGg6ZX07bj90aGlzLmhpc3RvcnkucHVzaFN0YXRlKHQsbnVsbCxlKTp0aGlzLl9oaXN0b3J5U3RhdGU9dCx0aGlzLl9wcmV2aW91c1VSTD10aGlzLmdldFVSTCgpfSxyZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9e3BhdGg6ZX07bj90aGlzLmhpc3RvcnkucmVwbGFjZVN0YXRlKHQsbnVsbCxlKTp0aGlzLl9oaXN0b3J5U3RhdGU9dCx0aGlzLl9wcmV2aW91c1VSTD10aGlzLmdldFVSTCgpfSxvblVwZGF0ZVVSTDpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHQ9KDAscy5ndWlkRm9yKSh0aGlzKTskKHdpbmRvdykub24oInBvcHN0YXRlLmVtYmVyLWxvY2F0aW9uLSIrdCxmdW5jdGlvbigpe3ZhciB0PW4uZ2V0VVJMKCk7IW8mJihvPSEwLHQ9PT1uLl9wcmV2aW91c1VSTCl8fChyLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSxlKHQpKX0pfSxmb3JtYXRVUkw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5yb290VVJMO3JldHVybiIiIT09ZSYmMDwodD10LnJlcGxhY2UoL1wvJC8sIiIpKS5sZW5ndGgmJjA9PT1lLmluZGV4T2YodCsiLyIpJiYodD0iIiksdCtlfSx3aWxsRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0oMCxzLmd1aWRGb3IpKHRoaXMpOyQod2luZG93KS5vZmYoInBvcHN0YXRlLmVtYmVyLWxvY2F0aW9uLSIrZSl9fSk7ZS5kZWZhdWx0PWF9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvZXhwb3J0LXJlc3VsdCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLm91dHB1dEV4cG9ydFJlc3VsdD1mdW5jdGlvbihlKXtlLnN1Y2Nlc3M/Ym9vdGJveC5hbGVydChJMThuLnQoImFkbWluLmV4cG9ydF9jc3Yuc3VjY2VzcyIpKTpib290Ym94LmFsZXJ0KEkxOG4udCgiYWRtaW4uZXhwb3J0X2Nzdi5mYWlsZWQiKSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC1zeW50YXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvbG9hZC1zY3JpcHQiXSxmdW5jdGlvbihlLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0b2hpZ2hsaWdodF9hbGxfY29kZT8icHJlIGNvZGUiOiJwcmUgY29kZVtjbGFzc10iLG49RGlzY291cnNlLkhpZ2hsaWdodEpTUGF0aDtpZighbilyZXR1cm47JCh0LGUpLmVhY2goZnVuY3Rpb24oZSx0KXskKHQpLnJlbW92ZUNsYXNzKCJsYW5nLWF1dG8iKSwoMCxpLmRlZmF1bHQpKG4pLnRoZW4oZnVuY3Rpb24oKXtzLmZvckVhY2goZnVuY3Rpb24oZSl7dm9pZCAwPT09aGxqcy5nZXRMYW5ndWFnZShlLm5hbWUpJiZobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoZS5uYW1lLGUuZm4pfSksaGxqcy5oaWdobGlnaHRCbG9jayh0KX0pfSl9LGUucmVnaXN0ZXJIaWdobGlnaHRKU0xhbmd1YWdlPWZ1bmN0aW9uKGUsdCl7cy5wdXNoKHtuYW1lOmUsZm46dH0pfTt2YXIgcz1bXX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9oaWdobGlnaHQtdGV4dCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9jb25jZXJucy9zZWFyY2gtY29uc3RhbnRzIl0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ0xBU1NfTkFNRT12b2lkIDAsZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dmFyIG4saSxzPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtfLmlzRW1wdHkodCl8fChuPShuPV8ucmVqZWN0KHQubWF0Y2gobmV3IFJlZ0V4cChvLlBIUkFTRV9NQVRDSF9SRUdFWFBfUEFUVEVSTisifFteXFxzXSsiLCJnIikpLGZ1bmN0aW9uKGUpe3JldHVybiJsIj09PWV9KSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL14iKC4qKSIkLywiJDEiKX0pLGk9e3dvcmRzT25seTohMH0scy5kZWZhdWx0Q2xhc3NOYW1lfHwoaS5jbGFzc05hbWU9ciksZS5oaWdobGlnaHQobixpKSl9O3ZhciByPWUuQ0xBU1NfTkFNRT0ic2VhcmNoLWhpZ2hsaWdodCJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGUuc2hpZnRLZXl8fGUubWV0YUtleXx8ZS5jdHJsS2V5fHxlLmJ1dHRvbiYmMCE9PWUuYnV0dG9ufHxlLnRhcmdldCYmIl9ibGFuayI9PT1lLnRhcmdldC50YXJnZXR9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUud2FudHNOZXdXaW5kb3c9cyxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYocyhlKSlyZXR1cm47dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpLG49dC5hdHRyKCJocmVmIik7aWYoIW58fCIjIj09PW58fHQuYXR0cigidGFyZ2V0Iil8fHQuZGF0YSgiZW1iZXItYWN0aW9uIil8fHQuZGF0YSgiYXV0by1yb3V0ZSIpfHx0LmRhdGEoInNoYXJlLXVybCIpfHx0Lmhhc0NsYXNzKCJ3aWRnZXQtbGluayIpfHx0Lmhhc0NsYXNzKCJyYXctbGluayIpfHx0Lmhhc0NsYXNzKCJtZW50aW9uIil8fCF0Lmhhc0NsYXNzKCJkLWxpbmsiKSYmIXQuZGF0YSgidXNlci1jYXJkIikmJnQuaGFzQ2xhc3MoImVtYmVyLXZpZXciKXx8dC5oYXNDbGFzcygibGlnaHRib3giKXx8MD09PW4uaW5kZXhPZigibWFpbHRvOiIpfHxuLm1hdGNoKC9eaHR0cFtzXT86XC9cLy9pKSYmIW4ubWF0Y2gobmV3IFJlZ0V4cCgiXmh0dHBzPzpcXC9cXC8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiaSIpKSlyZXR1cm47cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxpLmRlZmF1bHQucm91dGVUbyhuKSwhMX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvaXMtZWxlbWVudC1pbi12aWV3cG9ydCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7ZSBpbnN0YW5jZW9mIGpRdWVyeSYmKGU9ZVswXSk7dmFyIHQ9JCh3aW5kb3cpLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gMDw9bi50b3AmJjA8PW4ubGVmdCYmbi5ib3R0b208PXQuaGVpZ2h0KCkmJm4ucmlnaHQ8PXQud2lkdGgoKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIva2V5Ym9hcmQtc2hvcnRjdXRzIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvb2Zmc2V0LWNhbGN1bGF0b3IiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG4saSx0LGcscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz17IiEiOntwb3N0QWN0aW9uOiJzaG93RmxhZ3MifSwiIyI6e2hhbmRsZXI6ImdvVG9Qb3N0Iixhbm9ueW1vdXM6ITB9LCIvIjp7aGFuZGxlcjoidG9nZ2xlU2VhcmNoIixhbm9ueW1vdXM6ITB9LCJjdHJsK2FsdCtmIjp7aGFuZGxlcjoidG9nZ2xlU2VhcmNoIixhbm9ueW1vdXM6ITAsZ2xvYmFsOiEwfSwiPSI6e2hhbmRsZXI6InRvZ2dsZUhhbWJ1cmdlck1lbnUiLGFub255bW91czohMH0sIj8iOntoYW5kbGVyOiJzaG93SGVscE1vZGFsIixhbm9ueW1vdXM6ITB9LCIuIjp7Y2xpY2s6Ii5hbGVydC5hbGVydC1pbmZvLmNsaWNrYWJsZSIsYW5vbnltb3VzOiEwfSxiOntoYW5kbGVyOiJ0b2dnbGVCb29rbWFyayJ9LGM6e2hhbmRsZXI6ImNyZWF0ZVRvcGljIn0sQzp7aGFuZGxlcjoiZm9jdXNDb21wb3NlciJ9LCJjdHJsK2YiOntoYW5kbGVyOiJzaG93UGFnZVNlYXJjaCIsYW5vbnltb3VzOiEwfSwiY29tbWFuZCtmIjp7aGFuZGxlcjoic2hvd1BhZ2VTZWFyY2giLGFub255bW91czohMH0sImN0cmwrcCI6e2hhbmRsZXI6InByaW50VG9waWMiLGFub255bW91czohMH0sImNvbW1hbmQrcCI6e2hhbmRsZXI6InByaW50VG9waWMiLGFub255bW91czohMH0sZDp7cG9zdEFjdGlvbjoiZGVsZXRlUG9zdCJ9LGU6e3Bvc3RBY3Rpb246ImVkaXRQb3N0In0sZW5kOntoYW5kbGVyOiJnb1RvTGFzdFBvc3QiLGFub255bW91czohMH0sImNvbW1hbmQrZG93biI6e2hhbmRsZXI6ImdvVG9MYXN0UG9zdCIsYW5vbnltb3VzOiEwfSxmOntoYW5kbGVyOiJ0b2dnbGVCb29rbWFya1RvcGljIn0sImcgaCI6e3BhdGg6Ii8iLGFub255bW91czohMH0sImcgbCI6e3BhdGg6Ii9sYXRlc3QiLGFub255bW91czohMH0sImcgbiI6e3BhdGg6Ii9uZXcifSwiZyB1Ijp7cGF0aDoiL3VucmVhZCJ9LCJnIGMiOntwYXRoOiIvY2F0ZWdvcmllcyIsYW5vbnltb3VzOiEwfSwiZyB0Ijp7cGF0aDoiL3RvcCIsYW5vbnltb3VzOiEwfSwiZyBiIjp7cGF0aDoiL2Jvb2ttYXJrcyJ9LCJnIHAiOntwYXRoOiIvbXkvYWN0aXZpdHkifSwiZyBtIjp7cGF0aDoiL215L21lc3NhZ2VzIn0sImcgZCI6e3BhdGg6Ii9teS9hY3Rpdml0eS9kcmFmdHMifSwiZyBzIjp7aGFuZGxlcjoiZ29Ub0ZpcnN0U3VnZ2VzdGVkVG9waWMiLGFub255bW91czohMH0saG9tZTp7aGFuZGxlcjoiZ29Ub0ZpcnN0UG9zdCIsYW5vbnltb3VzOiEwfSwiY29tbWFuZCt1cCI6e2hhbmRsZXI6ImdvVG9GaXJzdFBvc3QiLGFub255bW91czohMH0sajp7aGFuZGxlcjoic2VsZWN0RG93biIsYW5vbnltb3VzOiEwfSxrOntoYW5kbGVyOiJzZWxlY3RVcCIsYW5vbnltb3VzOiEwfSxsOntjbGljazoiLnRvcGljLXBvc3Quc2VsZWN0ZWQgYnV0dG9uLnRvZ2dsZS1saWtlIn0sIm0gbSI6e2hhbmRsZXI6InNldFRyYWNraW5nVG9NdXRlZCJ9LCJtIHIiOntoYW5kbGVyOiJzZXRUcmFja2luZ1RvUmVndWxhciJ9LCJtIHQiOntoYW5kbGVyOiJzZXRUcmFja2luZ1RvVHJhY2tpbmcifSwibSB3Ijp7aGFuZGxlcjoic2V0VHJhY2tpbmdUb1dhdGNoaW5nIn0sIm8sZW50ZXIiOntjbGljazpbIi50b3BpYy1saXN0IHRyLnNlbGVjdGVkIGEudGl0bGUiLCIubGF0ZXN0LXRvcGljLWxpc3QgLmxhdGVzdC10b3BpYy1saXN0LWl0ZW0uc2VsZWN0ZWQgZGl2Lm1haW4tbGluayBhLnRpdGxlIiwiLnRvcC10b3BpYy1saXN0IC5sYXRlc3QtdG9waWMtbGlzdC1pdGVtLnNlbGVjdGVkIGRpdi5tYWluLWxpbmsgYS50aXRsZSIsIi5sYXRlc3QgLmZlYXR1cmVkLXRvcGljLnNlbGVjdGVkIGEudGl0bGUiXS5qb2luKCIsICIpLGFub255bW91czohMH0sdGFiOntoYW5kbGVyOiJzd2l0Y2hGb2N1c0NhdGVnb3JpZXNQYWdlIixhbm9ueW1vdXM6ITB9LHA6e2hhbmRsZXI6InNob3dDdXJyZW50VXNlciJ9LHE6e2hhbmRsZXI6InF1b3RlUmVwbHkifSxyOntwb3N0QWN0aW9uOiJyZXBseVRvUG9zdCJ9LHM6e2NsaWNrOiIudG9waWMtcG9zdC5zZWxlY3RlZCBhLnBvc3QtZGF0ZSIsYW5vbnltb3VzOiEwfSwic2hpZnQraiI6e2hhbmRsZXI6Im5leHRTZWN0aW9uIixhbm9ueW1vdXM6ITB9LCJzaGlmdCtrIjp7aGFuZGxlcjoicHJldlNlY3Rpb24iLGFub255bW91czohMH0sInNoaWZ0K3AiOntoYW5kbGVyOiJwaW5VbnBpblRvcGljIn0sInNoaWZ0K3IiOntoYW5kbGVyOiJyZXBseVRvVG9waWMifSwic2hpZnQrcyI6e2NsaWNrOiIjdG9waWMtZm9vdGVyLWJ1dHRvbnMgYnV0dG9uLnNoYXJlIixhbm9ueW1vdXM6ITB9LCJzaGlmdCtsIjp7aGFuZGxlcjoiZ29Ub1VucmVhZFBvc3QifSwic2hpZnQreiBzaGlmdCt6Ijp7aGFuZGxlcjoibG9nb3V0In0sInNoaWZ0K2YxMSI6e2hhbmRsZXI6ImZ1bGxzY3JlZW5Db21wb3NlciIsZ2xvYmFsOiEwfSwic2hpZnQrdSI6e2hhbmRsZXI6ImRlZmVyVG9waWMifSwic2hpZnQrYSI6e2hhbmRsZXI6InRvZ2dsZUFkbWluQWN0aW9ucyJ9LHQ6e3Bvc3RBY3Rpb246InJlcGx5QXNOZXdUb3BpYyJ9LHU6e2hhbmRsZXI6ImdvQmFjayIsYW5vbnltb3VzOiEwfSwieCByIjp7Y2xpY2s6IiNkaXNtaXNzLW5ldywjZGlzbWlzcy1uZXctdG9wLCNkaXNtaXNzLXBvc3RzLCNkaXNtaXNzLXBvc3RzLXRvcCJ9LCJ4IHQiOntjbGljazoiI2Rpc21pc3MtdG9waWNzLCNkaXNtaXNzLXRvcGljcy10b3AifX07ZS5kZWZhdWx0PXtiaW5kRXZlbnRzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLmtleVRyYXBwZXI9ZSx0aGlzLmNvbnRhaW5lcj10LHRoaXMuX3N0b3BDYWxsYmFjaygpLHRoaXMuc2VhcmNoU2VydmljZT10aGlzLmNvbnRhaW5lci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKSx0aGlzLmFwcEV2ZW50cz10aGlzLmNvbnRhaW5lci5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLHRoaXMuY3VycmVudFVzZXI9dGhpcy5jb250YWluZXIubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpLHRoaXMuY29udGFpbmVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikuZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzfHxkZWxldGUgb1siZyBtIl0sT2JqZWN0LmtleXMobykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1vW2VdOyh0LmFub255bW91c3x8bi5jdXJyZW50VXNlcikmJih0LnBhdGg/bi5fYmluZFRvUGF0aCh0LnBhdGgsZSk6dC5oYW5kbGVyP3QuZ2xvYmFsP24uX2dsb2JhbEJpbmRUb0Z1bmN0aW9uKHQuaGFuZGxlcixlKTpuLl9iaW5kVG9GdW5jdGlvbih0LmhhbmRsZXIsZSk6dC5wb3N0QWN0aW9uP24uX2JpbmRUb1NlbGVjdGVkUG9zdCh0LnBvc3RBY3Rpb24sZSk6dC5jbGljayYmbi5fYmluZFRvQ2xpY2sodC5jbGljayxlKSl9KX0sdG9nZ2xlQm9va21hcms6ZnVuY3Rpb24oKXt0aGlzLnNlbmRUb1NlbGVjdGVkUG9zdCgidG9nZ2xlQm9va21hcmsiKSx0aGlzLnNlbmRUb1RvcGljTGlzdEl0ZW1WaWV3KCJ0b2dnbGVCb29rbWFyayIpfSx0b2dnbGVCb29rbWFya1RvcGljOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VG9waWMoKSYmMDwkKCIucG9zdHMtd3JhcHBlciIpLmxlbmd0aD90aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKS5zZW5kKCJ0b2dnbGVCb29rbWFyayIpOnRoaXMuc2VuZFRvVG9waWNMaXN0SXRlbVZpZXcoInRvZ2dsZUJvb2ttYXJrIil9LGxvZ291dDpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgicm91dGU6YXBwbGljYXRpb24iKS5zZW5kKCJsb2dvdXQiKX0scXVvdGVSZXBseTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbmRUb1NlbGVjdGVkUG9zdCgicmVwbHlUb1Bvc3QiKSwoMCxuLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiAkKCIuZC1lZGl0b3IgLnF1b3RlIikuY2xpY2soKX0sNTAwKSwhMX0sZ29Ub0ZpcnN0U3VnZ2VzdGVkVG9waWM6ZnVuY3Rpb24oKXt2YXIgbixlLHQ9JCgiLnN1Z2dlc3RlZC10b3BpY3MgYS5yYXctdG9waWMtbGluazpmaXJzdCIpO3QubGVuZ3RoP3QuY2xpY2soKTooZT0iL3QvIisobj10aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKSkuZ2V0KCJtb2RlbC5pZCIpKyIvbGFzdC5qc29uIiwoMCxzLmFqYXgpKGUpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZS5zdWdnZXN0ZWRfdG9waWNzJiYwPGUuc3VnZ2VzdGVkX3RvcGljcy5sZW5ndGgmJih0PW4uc3RvcmUuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZS5zdWdnZXN0ZWRfdG9waWNzWzBdKSxpLmRlZmF1bHQucm91dGVUbyh0LmdldCgidXJsIikpKX0pKX0sZ29Ub0ZpcnN0UG9zdDpmdW5jdGlvbigpe3RoaXMuX2p1bXBUbygianVtcFRvcCIpfSxnb1RvTGFzdFBvc3Q6ZnVuY3Rpb24oKXt0aGlzLl9qdW1wVG8oImp1bXBCb3R0b20iKX0sZ29Ub1VucmVhZFBvc3Q6ZnVuY3Rpb24oKXt0aGlzLl9qdW1wVG8oImp1bXBVbnJlYWQiKX0sX2p1bXBUbzpmdW5jdGlvbihlKXskKCIuY29udGFpbmVyLnBvc3RzIikubGVuZ3RoJiZ0aGlzLmNvbnRhaW5lci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKS5zZW5kKGUpfSxyZXBseVRvVG9waWM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwbHlUb1Bvc3QoKSwhMX0sc2VsZWN0RG93bjpmdW5jdGlvbigpe3RoaXMuX21vdmVTZWxlY3Rpb24oMSl9LHNlbGVjdFVwOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVNlbGVjdGlvbigtMSl9LGdvQmFjazpmdW5jdGlvbigpe2hpc3RvcnkuYmFjaygpfSxuZXh0U2VjdGlvbjpmdW5jdGlvbigpe3RoaXMuX2NoYW5nZVNlY3Rpb24oMSl9LHByZXZTZWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5fY2hhbmdlU2VjdGlvbigtMSl9LHNob3dQYWdlU2VhcmNoOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7KDAsbi5ydW4pKGZ1bmN0aW9uKCl7dC5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmtleWJvYXJkLXRyaWdnZXIiLHt0eXBlOiJwYWdlLXNlYXJjaCIsZXZlbnQ6ZX0pfSl9LHByaW50VG9waWM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCxuLnJ1bikoZnVuY3Rpb24oKXskKCIuY29udGFpbmVyLnBvc3RzIikubGVuZ3RoJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHQuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpLnByaW50KCkpfSl9LGNyZWF0ZVRvcGljOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5jYW5fY3JlYXRlX3RvcGljJiYoKGU9JCgiI2NyZWF0ZS10b3BpYyIpKS5sZW5ndGg/ZS5jbGljaygpOnRoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjpjb21wb3NlciIpLm9wZW4oe2FjdGlvbjp0LmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OnQuZGVmYXVsdC5ORVdfVE9QSUNfS0VZfSkpfSxmb2N1c0NvbXBvc2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7ZS5nZXQoIm1vZGVsLnZpZXdPcGVuIik/c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiAkKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLmZvY3VzKCl9LDApOmUuc2VuZCgib3BlbklmRHJhZnQiKX0sZnVsbHNjcmVlbkNvbXBvc2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7ZS5nZXQoIm1vZGVsIikmJmUudG9nZ2xlRnVsbHNjcmVlbigpfSxwaW5VbnBpblRvcGljOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOnRvcGljIikudG9nZ2xlUGlubmVkU3RhdGUoKX0sZ29Ub1Bvc3Q6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzprZXlib2FyZC10cmlnZ2VyIix7dHlwZToianVtcCJ9KX0sdG9nZ2xlU2VhcmNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InNlYXJjaCIsZXZlbnQ6ZX0pLCExfSx0b2dnbGVIYW1idXJnZXJNZW51OmZ1bmN0aW9uKGUpe3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjprZXlib2FyZC10cmlnZ2VyIix7dHlwZToiaGFtYnVyZ2VyIixldmVudDplfSl9LHNob3dDdXJyZW50VXNlcjpmdW5jdGlvbihlKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InVzZXIiLGV2ZW50OmV9KX0sc2hvd0hlbHBNb2RhbDpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjphcHBsaWNhdGlvbiIpLnNlbmQoInNob3dLZXlib2FyZFNob3J0Y3V0c0hlbHAiKX0sc2V0VHJhY2tpbmdUb011dGVkOmZ1bmN0aW9uKGUpeygwLG4udGhyb3R0bGUpKHRoaXMsIl9zZXRUcmFja2luZyIse2lkOjAsZXZlbnQ6ZX0sMjUwLCEwKX0sc2V0VHJhY2tpbmdUb1JlZ3VsYXI6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MSxldmVudDplfSwyNTAsITApfSxzZXRUcmFja2luZ1RvVHJhY2tpbmc6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MixldmVudDplfSwyNTAsITApfSxzZXRUcmFja2luZ1RvV2F0Y2hpbmc6ZnVuY3Rpb24oZSl7KDAsbi50aHJvdHRsZSkodGhpcywiX3NldFRyYWNraW5nIix7aWQ6MyxldmVudDplfSwyNTAsITApfSxfc2V0VHJhY2tpbmc6ZnVuY3Rpb24oZSl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b246Y2hhbmdlZCIse3R5cGU6Im5vdGlmaWNhdGlvbiIsaWQ6ZS5pZCxldmVudDplLmV2ZW50fSl9LHNlbmRUb1RvcGljTGlzdEl0ZW1WaWV3OmZ1bmN0aW9uKGUpe3ZhciB0LG49JCgidHIuc2VsZWN0ZWQudG9waWMtbGlzdC1pdGVtLmVtYmVyLXZpZXciKVswXTshbnx8KHQ9dGhpcy5jb250YWluZXIubG9va3VwKCItdmlldy1yZWdpc3RyeTptYWluIikpJiZ0W24uaWRdLnNlbmQoZSl9LGN1cnJlbnRUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpO2lmKGUpe3ZhciB0PWUuZ2V0KCJtb2RlbCIpO2lmKHQpcmV0dXJuIHR9fSxzZW5kVG9TZWxlY3RlZFBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcy5jb250YWluZXIsbz1wYXJzZUludCgkKCIudG9waWMtcG9zdC5zZWxlY3RlZCBhcnRpY2xlLmJveGVkIikuZGF0YSgicG9zdC1pZCIpLDEwKTtyZXR1cm4gbyYmKCEobj0odD1zLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpKS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHMiKS5maW5kQnkoImlkIixvKSl8fChpPSh0LmFjdGlvbnNbZV18fHMubG9va3VwKCJyb3V0ZTp0b3BpYyIpLmFjdGlvbnNbZV0pLmNhbGwodCxuKSkmJmkudGhlbiYmdGhpcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOm99KSksITF9LF9iaW5kVG9TZWxlY3RlZFBvc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3RoaXMua2V5VHJhcHBlci5iaW5kKHQsZnVuY3Rpb24oKXtyZXR1cm4gbi5zZW5kVG9TZWxlY3RlZFBvc3QoZSl9KX0sX2JpbmRUb1BhdGg6ZnVuY3Rpb24oZSx0KXt0aGlzLmtleVRyYXBwZXIuYmluZCh0LGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5yb3V0ZVRvKERpc2NvdXJzZS5CYXNlVXJpK2UpfSl9LF9iaW5kVG9DbGljazpmdW5jdGlvbihuLGUpe2U9ZS5zcGxpdCgiLCIpLHRoaXMua2V5VHJhcHBlci5iaW5kKGUsZnVuY3Rpb24oZSl7dmFyIHQ9JChuKTtpZihlJiYxMz09PWUua2V5Q29kZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCl9dC5jbGljaygpfSl9LF9nbG9iYWxCaW5kVG9GdW5jdGlvbjpmdW5jdGlvbihlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2VdJiZ0aGlzLmtleVRyYXBwZXIuYmluZEdsb2JhbCh0LHRoaXNbZV0uYmluZCh0aGlzKSl9LF9iaW5kVG9GdW5jdGlvbjpmdW5jdGlvbihlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2VdJiZ0aGlzLmtleVRyYXBwZXIuYmluZCh0LHRoaXNbZV0uYmluZCh0aGlzKSl9LF9tb3ZlU2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PStuZXcgRGF0ZSxuPXRoaXMuX2xhc3RNb3ZlVGltZSYmdC10aGlzLl9sYXN0TW92ZVRpbWU8MTUwO3RoaXMuX2xhc3RNb3ZlVGltZT10O3ZhciBpPXRoaXMuX2ZpbmRBcnRpY2xlcygpO2lmKHZvaWQgMCE9PWkpe3ZhciBzLG8scixhLGwsdT1pLmZpbHRlcigiLnNlbGVjdGVkIik7MD09PXUubGVuZ3RoJiYodT1pLmZpbHRlcigiW2RhdGEtaXNsYXN0dmlld2VkdG9waWM9dHJ1ZV0iKSksMD09PXUubGVuZ3RofHxufHwocz0oMCxnLm1pbmltdW1PZmZzZXQpKCkscj0obz0kKHdpbmRvdykuc2Nyb2xsVG9wKCktcykrd2luZG93LmlubmVySGVpZ2h0K3MsYT11Lm9mZnNldCgpLnRvcCwodS5vZmZzZXQoKS50b3ArdS5oZWlnaHQoKTxvfHxyPGEpJiYodT1udWxsKSksdSYmMCE9PXUubGVuZ3RofHwobD0oMCxnLm1pbmltdW1PZmZzZXQpKCksdT0odT1pLnRvQXJyYXkoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcD5sfSkpfHxpW2kubGVuZ3RoLTFdLGU9MCk7dmFyIGM9aS5pbmRleCh1KSxkPWkuZXEoYyk7aWYoIW4mJjAhPT1lJiYwPGQubGVuZ3RoKXt2YXIgcD1kLmlzKCIudG9waWMtcG9zdCIpJiZkLmZpbmQoIiNwb3N0XzEiKS5sZW5ndGg/MDpkLm9mZnNldCgpLnRvcCxtPWQub2Zmc2V0KCkudG9wK2RbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LGY9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGg9Zit3aW5kb3cuaW5uZXJIZWlnaHQ7aWYoZTwwJiZwPGYpcmV0dXJuIHRoaXMuX3Njcm9sbFRvKE1hdGgubWF4KGYtd2luZG93LmlubmVySGVpZ2h0KzMqKDAsZy5taW5pbXVtT2Zmc2V0KSgpLHAtKDAsZy5taW5pbXVtT2Zmc2V0KSgpKSk7aWYoMDxlJiZoPG0tKDAsZy5taW5pbXVtT2Zmc2V0KSgpKXJldHVybiB0aGlzLl9zY3JvbGxUbyhNYXRoLm1pbihoLTMqKDAsZy5taW5pbXVtT2Zmc2V0KSgpLG0td2luZG93LmlubmVySGVpZ2h0KSl9aWYoMCE9PXUubGVuZ3RoKXtpZigtMT09PWUmJjA9PT1jKXJldHVybjtpZigxPT09ZSYmYz09PWkubGVuZ3RoLTEpcmV0dXJufWlmKDA8KGQ9aS5lcShjK2UpKS5sZW5ndGgpe2kucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksZC5hZGRDbGFzcygic2VsZWN0ZWQiKTt2YXIgYj1kWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCFuJiZlPDAmJmIuaGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodClyZXR1cm4gdGhpcy5fc2Nyb2xsVG8oZC5vZmZzZXQoKS50b3ArYi5oZWlnaHQtd2luZG93LmlubmVySGVpZ2h0KTtpZihkLmlzKCIudG9waWMtcG9zdCIpKXJldHVybiB0aGlzLl9zY3JvbGxUbygwPGQuZmluZCgiI3Bvc3RfMSIpLmxlbmd0aD8wOmQub2Zmc2V0KCkudG9wLSgwLGcubWluaW11bU9mZnNldCkoKSxmdW5jdGlvbigpe3JldHVybiAkKCJhLnRhYkxvYyIsZCkuZm9jdXMoKX0pO3RoaXMuX3Njcm9sbExpc3QoZCxlKX19fSxfc2Nyb2xsVG86ZnVuY3Rpb24oZSx0KXskKCJodG1sLCBib2R5Iikuc3RvcCghMCwhMCkuYW5pbWF0ZSh7c2Nyb2xsVG9wOmV9LHtkdXJhdGlvbjoxMDAsY29tcGxldGU6dH0pfSxfc2Nyb2xsTGlzdDpmdW5jdGlvbihlKXt2YXIgdCxuPWUub2Zmc2V0KCksaT1lLmhlaWdodCgpLHM9JCgiaGVhZGVyLmQtaGVhZGVyIikuaGVpZ2h0KCksbz0kKHdpbmRvdykuc2Nyb2xsVG9wKCkscj0kKHdpbmRvdykuaGVpZ2h0KCk7bi50b3Atcz5vJiZuLnRvcCtpPG8rcnx8KHQ9bi50b3AraS8yLS41KnIsci1zPGkmJih0PW4udG9wLXMpLHQ8MCYmKHQ9MCksdGhpcy5fc2Nyb2xsQW5pbWF0aW9uJiZ0aGlzLl9zY3JvbGxBbmltYXRpb24uc3RvcCgpLHRoaXMuX3Njcm9sbEFuaW1hdGlvbj0kKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOnQrInB4In0sMTAwKSl9LGNhdGVnb3JpZXNUb3BpY3NMaXN0OmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuY29udGFpbmVyLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikuZGVza3RvcF9jYXRlZ29yeV9wYWdlX3N0eWxlKXtjYXNlImNhdGVnb3JpZXNfd2l0aF9mZWF0dXJlZF90b3BpY3MiOnJldHVybiAkKCIubGF0ZXN0IC5mZWF0dXJlZC10b3BpYyIpO2Nhc2UiY2F0ZWdvcmllc19hbmRfbGF0ZXN0X3RvcGljcyI6cmV0dXJuICQoIi5sYXRlc3QtdG9waWMtbGlzdCAubGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIpO2Nhc2UiY2F0ZWdvcmllc19hbmRfdG9wX3RvcGljcyI6cmV0dXJuICQoIi50b3AtdG9waWMtbGlzdCAubGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIpO2RlZmF1bHQ6cmV0dXJuICQoKX19LF9maW5kQXJ0aWNsZXM6ZnVuY3Rpb24oKXt2YXIgZT0kKCIudG9waWMtbGlzdCIpLHQ9JCgiLnBvc3RzLXdyYXBwZXIiKSxuPXRoaXMuY2F0ZWdvcmllc1RvcGljc0xpc3QoKTtyZXR1cm4gMDx0Lmxlbmd0aD8kKCIucG9zdHMtd3JhcHBlciAudG9waWMtcG9zdCwgLnRvcGljLWxpc3QgdGJvZHkgdHIiKTowPGUubGVuZ3RoP2UuZmluZCgiLnRvcGljLWxpc3QtaXRlbSIpOjA8bi5sZW5ndGg/bjp2b2lkIDB9LF9jaGFuZ2VTZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIi5uYXYubmF2LXBpbGxzIGxpIiksbj0kKCIubmF2Lm5hdi1waWxscyBsaS5hY3RpdmUiKSxpPXQuaW5kZXgobikrZTswPD1pJiZpPHQubGVuZ3RoJiZ0LmVxKGkpLmZpbmQoImEiKS5jbGljaygpfSxfc3RvcENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5rZXlUcmFwcGVyLnByb3RvdHlwZS5zdG9wQ2FsbGJhY2s7dGhpcy5rZXlUcmFwcGVyLnByb3RvdHlwZS5zdG9wQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuKCJjdHJsK2YiIT09biYmImNvbW1hbmQrZiIhPT1ufHwic2VhcmNoLXRlcm0iIT09dC5pZCkmJnMuY2FsbCh0aGlzLGUsdCxuLGkpfX0sX3JlcGx5VG9Qb3N0OmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXIubG9va3VwKCJjb250cm9sbGVyOnRvcGljIikuc2VuZCgicmVwbHlUb1Bvc3QiKX0sZGVmZXJUb3BpYzpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmxvb2t1cCgiY29udHJvbGxlcjp0b3BpYyIpLnNlbmQoImRlZmVyVG9waWMiKX0sdG9nZ2xlQWRtaW5BY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6dG9nZ2xlLWFjdGlvbnMiKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xhenktbG9hZC1pbWFnZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXR1cExhenlMb2FkaW5nPWZ1bmN0aW9uKGUpe3ZhciBpPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7ZS5pc0ludGVyc2VjdGluZyYmKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZ2V0KGUpO3t2YXIgbixpLHMsbzt0Pygobj1uZXcgSW1hZ2UpLm9ubG9hZD1mdW5jdGlvbigpe2Uuc3JjPW4uc3JjLG4uc3Jjc2V0JiYoZS5zcmNzZXQ9bi5zcmNzZXQpLGUuY2xhc3NMaXN0LnJlbW92ZSgiZC1sYXp5bG9hZC1oaWRkZW4iKSxlLm9ubG9hZD9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobik6ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZS5vbmxvYWQ9bnVsbH0sbi5vbmxvYWQ9bnVsbH0sbi5zcmM9dC5zcmMsdC5zcmNzZXQmJihuLnNyY3NldD10LnNyY3NldCksaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxzPXBhcnNlSW50KGkud2lkdGgsMTApLG89cGFyc2VJbnQoaS5oZWlnaHQsMTApLG4uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixuLnN0eWxlLnRvcD1lLm9mZnNldFRvcCsicHgiLG4uc3R5bGUubGVmdD1lLm9mZnNldExlZnQrInB4IixuLnN0eWxlLndpZHRoPXMrInB4IixuLnN0eWxlLmhlaWdodD1vKyJweCIsbi5jbGFzc05hbWU9dC5jbGFzc05hbWUsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuLGUubmV4dFNpYmxpbmcpKTplLmNsYXNzTGlzdC5yZW1vdmUoImQtbGF6eWxvYWQtaGlkZGVuIil9fSh0KSxpLnVub2JzZXJ2ZSh0KSl9KX0sdCk7ZS5kZWNvcmF0ZUNvb2tlZChmdW5jdGlvbihlKXskKCJpbWciLGUpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbjt0LndpZHRoPj1zJiZ0LmhlaWdodD49cyYmKChuPXQpLmNsYXNzTGlzdC5hZGQoImQtbGF6eWxvYWQiKSxuLmNsYXNzTGlzdC5hZGQoImQtbGF6eWxvYWQtaGlkZGVuIiksci5zZXQobix7c3JjOm4uc3JjLHNyY3NldDpuLnNyY3NldCx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxjbGFzc05hbWU6bi5jbGFzc05hbWV9KSxuLnJlbW92ZUF0dHJpYnV0ZSgic3Jjc2V0Iiksbi5zcmM9bi5kYXRhc2V0LnNtYWxsVXBsb2FkfHxvLG4ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNtYWxsLXVwbG9hZCIpLGkub2JzZXJ2ZSh0KSl9KX0se29ubHlTdHJlYW06ITAsaWQ6ImRpc2NvdXJzZS1sYXp5LWxvYWQifSl9O3ZhciB0PXtyb290TWFyZ2luOiI2NiUifSxzPTE1MCxyPW5ldyBXZWFrTWFwLG89ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09In0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9saWdodGJveCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9sb2FkLXNjcmlwdCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2hlbHBlcnMvbG9hZGluZy1zcGlubmVyIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe3QmJigwLG4uZGVmYXVsdCkoIi9qYXZhc2NyaXB0cy9qcXVlcnkubWFnbmlmaWMtcG9wdXAubWluLmpzIikudGhlbihmdW5jdGlvbigpe3ZhciBlPXQuZmluZCgiLnNwb2lsZXIgYS5saWdodGJveCwgLnNwb2lsZWQgYS5saWdodGJveCIpO3QuZmluZCgiYS5saWdodGJveCIpLm5vdChlKS5tYWduaWZpY1BvcHVwKHt0eXBlOiJpbWFnZSIsY2xvc2VPbkNvbnRlbnRDbGljazohMSxyZW1vdmFsRGVsYXk6MzAwLG1haW5DbGFzczoibWZwLXpvb20taW4iLHRDbG9zZTpJMThuLnQoImxpZ2h0Ym94LmNsb3NlIiksdExvYWRpbmc6by5zcGlubmVySFRNTCxnYWxsZXJ5OntlbmFibGVkOiEwLHRQcmV2OkkxOG4udCgibGlnaHRib3gucHJldmlvdXMiKSx0TmV4dDpJMThuLnQoImxpZ2h0Ym94Lm5leHQiKSx0Q291bnRlcjpJMThuLnQoImxpZ2h0Ym94LmNvdW50ZXIiKX0sYWpheDp7dEVycm9yOkkxOG4udCgibGlnaHRib3guY29udGVudF9sb2FkX2Vycm9yIil9LGNhbGxiYWNrczp7b3BlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMud3JhcCx0PXRoaXMuY3Vyckl0ZW0uaW1nLG49dC5jc3MoIm1heC1oZWlnaHQiKTtlLm9uKCJjbGljay5waW5oYW5kbGVyIiwiaW1nIixmdW5jdGlvbigpe2UudG9nZ2xlQ2xhc3MoIm1mcC1mb3JjZS1zY3JvbGxiYXJzIiksdC5jc3MoIm1heC1oZWlnaHQiLGUuaGFzQ2xhc3MoIm1mcC1mb3JjZS1zY3JvbGxiYXJzIik/Im5vbmUiOm4pfSksKDAsaS5pc0FwcFdlYnZpZXcpKCkmJigwLGkucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJoZWFkZXJCZyIsJCgiLm1mcC1iZyIpLmNzcygiYmFja2dyb3VuZC1jb2xvciIpKX0sYmVmb3JlQ2xvc2U6ZnVuY3Rpb24oKXt0aGlzLndyYXAub2ZmKCJjbGljay5waW5oYW5kbGVyIiksdGhpcy53cmFwLnJlbW92ZUNsYXNzKCJtZnAtZm9yY2Utc2Nyb2xsYmFycyIpLCgwLGkuaXNBcHBXZWJ2aWV3KSgpJiYoMCxpLnBvc3RSTldlYnZpZXdNZXNzYWdlKSgiaGVhZGVyQmciLCQoIi5kLWhlYWRlciIpLmNzcygiYmFja2dyb3VuZC1jb2xvciIpKX19LGltYWdlOnt0RXJyb3I6STE4bi50KCJsaWdodGJveC5pbWFnZV9sb2FkX2Vycm9yIiksdGl0bGVTcmM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5lbC5kYXRhKCJkb3dubG9hZC1ocmVmIil8fGUuc3JjLG49WygwLGkuZXNjYXBlRXhwcmVzc2lvbikoZS5lbC5hdHRyKCJ0aXRsZSIpKSwkKCJzcGFuLmluZm9ybWF0aW9ucyIsZS5lbCkudGV4dCgpXTtyZXR1cm4gRGlzY291cnNlLlNpdGVTZXR0aW5ncy5wcmV2ZW50X2Fub25zX2Zyb21fZG93bmxvYWRpbmdfZmlsZXMmJiFyLmRlZmF1bHQuY3VycmVudCgpfHxuLnB1c2goJzxhIGNsYXNzPSJpbWFnZS1zb3VyY2UtbGluayIgaHJlZj0iJyt0KyciPicrKDAscy5yZW5kZXJJY29uKSgic3RyaW5nIiwiZG93bmxvYWQiKStJMThuLnQoImxpZ2h0Ym94LmRvd25sb2FkIikrIjwvYT4iKSxuLmpvaW4oIiAmbWlkZG90OyAiKX19fSl9KX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbGluay1jYXRlZ29yeS1oYXNodGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LWhhc2h0YWdzIl0sZnVuY3Rpb24oZSxzLG4scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxpbmtTZWVuQ2F0ZWdvcnlIYXNodGFncz1mdW5jdGlvbihlKXt2YXIgdD0kKCJzcGFuLmhhc2h0YWc6bm90KC4iK3UrIikiLGUpLG49W107e3ZhciBpO3QubGVuZ3RoJiYoKGk9dC5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0KS50ZXh0KCkuc3Vic3RyKDEpfSkpLmxlbmd0aCYmXy51bmlxKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7LTE9PT1sLmluZGV4T2YoZSkmJm4ucHVzaChlKX0pLGZ1bmN0aW9uKGUsbyl7KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2UuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPW9bZV0saT1hW25dLHM9JCh0KTtpPygwLHIucmVwbGFjZVNwYW4pKHMsbixpKTotMSE9PWwuaW5kZXhPZihuKSYmcy5hZGRDbGFzcyh1KX0pfSl9KHQsaSkpfXJldHVybiBufSxlLmZldGNoVW5zZWVuQ2F0ZWdvcnlIYXNodGFncz1mdW5jdGlvbih0KXtyZXR1cm4oMCxuLmFqYXgpKCIvY2F0ZWdvcnlfaGFzaHRhZ3MvY2hlY2siLHtkYXRhOntjYXRlZ29yeV9zbHVnczp0fX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS52YWxpZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2FbZS5zbHVnXT1lLnVybH0pLGwucHVzaC5hcHBseShsLHQpfSl9O3ZhciBhPXt9LGw9W10sdT0iaGFzaHRhZy10ZXN0ZWQifSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL2xpbmstbG9va3VwIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz17fSxyPVshMSxudWxsXSx0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmkoZS5wcm90b3R5cGUsdCksbiYmaShlLG4pLGV9KG4sW3trZXk6ImNoZWNrIix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKG9bdF0pcmV0dXJuIHI7dmFyIG49dC5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKS5yZXBsYWNlKC9cLyQvLCIiKTtpZihvW25dKXJldHVybiByO3ZhciBpPXRoaXMuX2xpbmtzW25dO2lmKGkpe2lmKGUpe2lmKGUpe3ZhciBzPWUuZ2V0KCJwb3N0X251bWJlciIpO2lmKDE9PT1zfHxzPT09aS5wb3N0X251bWJlcilyZXR1cm4gcn1pZihtb21lbnQoZS5nZXQoImNyZWF0ZWRfYXQiKSkuaXNCZWZvcmUobW9tZW50KCkuc3VidHJhY3QoMiwid2Vla3MiKSkpcmV0dXJuIHJ9cmV0dXJuIG9bdF09ITAsW29bbl09ITAsaV19cmV0dXJuIHJ9fV0pLG4pO2Z1bmN0aW9uIG4oZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fbGlua3M9ZX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9saW5rLW1lbnRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLG8sbixyLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5saW5rU2Vlbk1lbnRpb25zPWZ1bmN0aW9uKGUsdCl7dmFyIG49JCgic3Bhbi5tZW50aW9uOm5vdCgubWVudGlvbi10ZXN0ZWQpIixlKTtpZihuLmxlbmd0aCl7dmFyIGk9bi5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0KS50ZXh0KCkuc3Vic3RyKDEpfSk7cmV0dXJuIGZ1bmN0aW9uKGUscyl7KDAsby5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9c1tlXTtjW2kudG9Mb3dlckNhc2UoKV0/dShuLGkse2Nhbm5vdF9zZWU6ZltpXX0pOnBbaV0/dShuLGkse2dyb3VwOiEwLG1lbnRpb25hYmxlOnBbaV19KTpkW2ldP3UobixpLHtncm91cDohMH0pOm1baV0mJm4uYWRkQ2xhc3MoIm1lbnRpb24tdGVzdGVkIil9KX0pfShuLGkpLF8udW5pcShpKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIW1bZV0mJmUubGVuZ3RoPj10Lm1pbl91c2VybmFtZV9sZW5ndGh9KX1yZXR1cm5bXX0sZS5mZXRjaFVuc2Vlbk1lbnRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsbi5hamF4KSgoMCxyLnVzZXJQYXRoKSgiaXNfbG9jYWxfdXNlcm5hbWUiKSx7ZGF0YTp7dXNlcm5hbWVzOnQsdG9waWNfaWQ6ZX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbGlkLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGNbZV09ITB9KSxlLnZhbGlkX2dyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBkW2VdPSEwfSksZS5tZW50aW9uYWJsZV9ncm91cHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gcFtlLm5hbWVdPWV9KSxlLmNhbm5vdF9zZWUuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZltlXT0hMH0pLGw9ZS5tYXhfdXNlcnNfbm90aWZpZWRfcGVyX2dyb3VwX21lbnRpb24sdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBtW2VdPSEwfSksZX0pfTt2YXIgbD12b2lkIDA7ZnVuY3Rpb24gdShlLHQsbil7dmFyIGk9IiIscz0iIjtuJiZuLmdyb3VwPyhuLm1lbnRpb25hYmxlJiYoaT0iZGF0YS1uYW1lPSciK3QrIicgZGF0YS1tZW50aW9uYWJsZS11c2VyLWNvdW50PSciK24ubWVudGlvbmFibGUudXNlcl9jb3VudCsiJyBkYXRhLW1heC1tZW50aW9ucz0nIitsKyInIixzPSJub3RpZnkiKSxlLnJlcGxhY2VXaXRoKCI8YSBocmVmPSciKyhEaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iKSt0KSsiJyBjbGFzcz0nbWVudGlvbi1ncm91cCAiK3MrIicgIitpKyI+QCIrdCsiPC9hPiIpKToobiYmbi5jYW5ub3Rfc2VlJiYoaT0iZGF0YS1uYW1lPSciK3QrIiciLHM9ImNhbm5vdC1zZWUiKSxlLnJlcGxhY2VXaXRoKCI8YSBocmVmPSciKygwLHIudXNlclBhdGgpKHQudG9Mb3dlckNhc2UoKSkrIicgY2xhc3M9J21lbnRpb24gIitzKyInICIraSsiPkAiKygwLGEuZm9ybWF0VXNlcm5hbWUpKHQpKyI8L2E+IikpfXZhciBjPXt9LGQ9e30scD17fSxtPXt9LGY9W119KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvbGluay10YWctaGFzaHRhZyIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi90YWctaGFzaHRhZ3MiXSxmdW5jdGlvbihlLHMsbixyLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5saW5rU2VlblRhZ0hhc2h0YWdzPWZ1bmN0aW9uKGUpe3ZhciB0PSQoInNwYW4uaGFzaHRhZzpub3QoLiIrdSsiKSIsZSksbj1bXTt7dmFyIGk7dC5sZW5ndGgmJigoaT10Lm1hcChmdW5jdGlvbihlLHQpe3JldHVybiAkKHQpLnRleHQoKS5zdWJzdHIoMSkucmVwbGFjZShvLlRBR19IQVNIVEFHX1BPU1RGSVgsIiIpfSkpLmxlbmd0aCYmXy51bmlxKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7LTE9PT1sLmluZGV4T2YoZSkmJm4ucHVzaChlKX0pLGZ1bmN0aW9uKGUsbyl7KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2UuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPW9bZV0saT1hW25dLHM9JCh0KTtpPygwLHIucmVwbGFjZVNwYW4pKHMsbixpKTotMSE9PWwuaW5kZXhPZihuKSYmcy5hZGRDbGFzcyh1KX0pfSl9KHQsaSkpfXJldHVybiBufSxlLmZldGNoVW5zZWVuVGFnSGFzaHRhZ3M9ZnVuY3Rpb24odCl7cmV0dXJuKDAsbi5hamF4KSgiL3RhZ3MvY2hlY2siLHtkYXRhOnt0YWdfdmFsdWVzOnR9fSkudGhlbihmdW5jdGlvbihlKXtlLnZhbGlkLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlLnZhbHVlXT1lLnVybH0pLGwucHVzaC5hcHBseShsLHQpfSl9O3ZhciBhPXt9LGw9W10sdT0idGFnLWhhc2h0YWctdGVzdGVkIn0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9tb2JpbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZm9yY2VNb2JpbGU9ZnVuY3Rpb24oKXtpPSEwfTt2YXIgaT0hKGUucmVzZXRNb2JpbGU9ZnVuY3Rpb24oKXtpPSExfSkscz17aXNNb2JpbGVEZXZpY2U6ITEsbW9iaWxlVmlldzohMSxpbml0OmZ1bmN0aW9uKCl7dmFyIGUsdD0kKCJodG1sIik7aWYodGhpcy5pc01vYmlsZURldmljZT1pfHx0Lmhhc0NsYXNzKCJtb2JpbGUtZGV2aWNlIiksdGhpcy5tb2JpbGVWaWV3PWl8fHQuaGFzQ2xhc3MoIm1vYmlsZS12aWV3IiksInRlc3QiIT09bi5kZWZhdWx0LmVudmlyb25tZW50JiYhaSl0cnl7d2luZG93LmxvY2F0aW9uLnNlYXJjaC5tYXRjaCgvbW9iaWxlX3ZpZXc9MS8pJiYobG9jYWxTdG9yYWdlLm1vYmlsZVZpZXc9ITApLHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubWF0Y2goL21vYmlsZV92aWV3PTAvKSYmKGxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3PSExKSx3aW5kb3cubG9jYXRpb24uc2VhcmNoLm1hdGNoKC9tb2JpbGVfdmlldz1hdXRvLykmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJtb2JpbGVWaWV3IiksIWxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3fHwoZT0idHJ1ZSI9PT1sb2NhbFN0b3JhZ2UubW9iaWxlVmlldykhPT10aGlzLm1vYmlsZVZpZXcmJnRoaXMucmVsb2FkUGFnZShlKX1jYXRjaChlKXt9fSx0b2dnbGVNb2JpbGVWaWV3OmZ1bmN0aW9uKCl7dHJ5e2xvY2FsU3RvcmFnZSYmKGxvY2FsU3RvcmFnZS5tb2JpbGVWaWV3PSF0aGlzLm1vYmlsZVZpZXcpfWNhdGNoKGUpe310aGlzLnJlbG9hZFBhZ2UoIXRoaXMubW9iaWxlVmlldyl9LHJlbG9hZFBhZ2U6ZnVuY3Rpb24oZSl7d2luZG93LmxvY2F0aW9uLmFzc2lnbih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUrIj9tb2JpbGVfdmlldz0iKyhlPyIxIjoiMCIpKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShEaXNjb3Vyc2UsIk1vYmlsZSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLHQuZGVmYXVsdCkoImBEaXNjb3Vyc2UuTW9iaWxlYCBpcyBkZXByZWNhdGVkLCB1c2UgYHRoaXMuc2l0ZS5tb2JpbGVWaWV3YCBpbnN0ZWFkIiksc319KSxlLmRlZmF1bHQ9c30pLGRlZmluZSgiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtyZXR1cm4gbihmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzKS5sb29rdXAoInNlcnZpY2U6IisodHx8cyhlKSkpfSl9O3ZhciB0PUVtYmVyLG49dC5jb21wdXRlZCxpPXQuZ2V0T3duZXIscz10LlN0cmluZy5kYXNoZXJpemV9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGFnZS10cmFja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNldFRyYW5zaWVudD1mdW5jdGlvbihlLHQsbil7cltlXT17ZGF0YTp0LHRhcmdldDphK259fSxlLmdldFRyYW5zaWVudD1mdW5jdGlvbihlKXtyZXR1cm4gcltlXX0sZS5yZXNldFBhZ2VUcmFja2luZz1mdW5jdGlvbigpe3Q9ITEsYT0wLHI9e319LGUuc3RhcnRQYWdlVHJhY2tpbmc9ZnVuY3Rpb24oaSxzKXtpZih0KXJldHVybjtpLm9uKCJyb3V0ZURpZENoYW5nZSIsZnVuY3Rpb24oZSl7dmFyIHQ9InJlcGxhY2UiPT09ZS51cmxNZXRob2QmJmUucXVlcnlQYXJhbXNPbmx5O2kuc2VuZCgicmVmcmVzaFRpdGxlIik7dmFyIG49RGlzY291cnNlLmdldFVSTChpLmdldCgidXJsIikpOygwLG8ubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT1EaXNjb3Vyc2UuZ2V0KCJfZG9jVGl0bGUiKTtzLnRyaWdnZXIoInBhZ2U6Y2hhbmdlZCIse3VybDpuLHRpdGxlOmUsY3VycmVudFJvdXRlTmFtZTppLmN1cnJlbnRSb3V0ZU5hbWUscmVwbGFjZWRPbmx5UXVlcnlQYXJhbXM6dH0pfSksYSsrLE9iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9cltlXTt0JiZ0LnRhcmdldCYmdC50YXJnZXQ8YSYmZGVsZXRlIHJbZV19KX0pLHQ9ITB9LGUuYWRkR1RNUGFnZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbihlKXtuLnB1c2goZSl9O3ZhciB0PSEoZS5nb29nbGVUYWdNYW5hZ2VyUGFnZUNoYW5nZWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e2V2ZW50OiJ2aXJ0dWFsUGFnZVZpZXciLHBhZ2U6e3RpdGxlOmUudGl0bGUsdXJsOmUudXJsfX07bi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSksd2luZG93LmRhdGFMYXllci5wdXNoKHQpfSkscj17fSxhPTA7dmFyIG49W119KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGx1Z2luLWFwaSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtY29va2VkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvcGx1Z2luLWNvbm5lY3RvciIsImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWVkaXRvciIsImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS1iYW5uZXIiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LW1lbnUiLCJkaXNjb3Vyc2UvbGliL3RyYW5zZm9ybS1wb3N0IiwiZGlzY291cnNlL2xpYi9oaWdobGlnaHQtc3ludGF4IiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1lZGl0b3IiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9tb3VudC13aWRnZXQiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nbG9iYWwtbm90aWNlIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiIsImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIiwiZGlzY291cnNlL3dpZGdldHMvdXNlci1tZW51IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsImRpc2NvdXJzZS93aWRnZXRzL2hlYWRlciIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciLCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJzZWxlY3Qta2l0L21peGlucy9wbHVnaW4tYXBpIiwiZGlzY291cnNlL2xpYi9wYWdlLXRyYWNrZXIiLCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Rlci1uYW1lIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RvcGljIiwiZGlzY291cnNlL2xpYi9zaGFyaW5nIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1zZXR0aW5ncyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiXSxmdW5jdGlvbihlLHQsbyxuLGkscyxyLGEsbCx1LGMsZCxwLG0sZixoLGIsZyx2LHksXyx3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHopeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBVKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUud2l0aFBsdWdpbkFwaT1mdW5jdGlvbihlLHQsbil7bj1ufHx7fTt2YXIgaT1mdW5jdGlvbihlKXt7aWYoZnVuY3Rpb24oZSx0KXt2YXIgbixpLHM9LyhcLjArKSskLyxvPWUucmVwbGFjZShzLCIiKS5zcGxpdCgiLiIpLHI9dC5yZXBsYWNlKHMsIiIpLnNwbGl0KCIuIiksYT1NYXRoLm1pbihvLmxlbmd0aCxyLmxlbmd0aCk7Zm9yKG49MDtuPGE7bisrKWlmKGk9cGFyc2VJbnQob1tuXSwxMCktcGFyc2VJbnQocltuXSwxMCkpcmV0dXJuIGk7cmV0dXJuIG8ubGVuZ3RoLXIubGVuZ3RofShlPWUudG9TdHJpbmcoKSxGKTw9MClyZXR1cm4ocT1xfHxuZXcgQihlLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fKSkudmVyc2lvbjxlJiYocS52ZXJzaW9uPWUpLHE7Y29uc29sZS53YXJuKCJQbHVnaW4gQVBJIHYiK2UrIiBpcyBub3Qgc3VwcG9ydGVkIil9fShlKTtpZihpKXJldHVybiB0KGksbil9LGUucmVzZXRQbHVnaW5BcGk9ZnVuY3Rpb24oKXtxPW51bGx9O3ZhciBGPSIwLjguMzgiLEI9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmVShlLnByb3RvdHlwZSx0KSxuJiZVKGUsbiksZX0oUixbe2tleToiZ2V0Q3VycmVudFVzZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvb2t1cENvbnRhaW5lcigiY3VycmVudC11c2VyOm1haW4iKX19LHtrZXk6Il9sb29rdXBDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuY29udGFpbmVyJiYhdGhpcy5jb250YWluZXIuaXNEZXN0cm95aW5nJiYhdGhpcy5jb250YWluZXIuaXNEZXN0cm95ZWQpcmV0dXJuIHRoaXMuY29udGFpbmVyLmxvb2t1cChlKX19LHtrZXk6Il9yZXNvbHZlQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dD10fHx7fSx0aGlzLmNvbnRhaW5lci5jYWNoZVtlXSYmY29uc29sZS53YXJuKCciJytlKyJcIiB3YXMgYWxyZWFkeSBjYWNoZWQgaW4gdGhlIGNvbnRhaW5lci4gQ2hhbmdlcyB3b24ndCBiZSBhcHBsaWVkLiIpO3ZhciBuPXRoaXMuY29udGFpbmVyLmZhY3RvcnlGb3IoZSk7aWYobilyZXR1cm4gbjt0Lmlnbm9yZU1pc3Npbmd8fGNvbnNvbGUud2FybignIicrZSsnIiB3YXMgbm90IGZvdW5kIGJ5IG1vZGlmeUNsYXNzJyl9fSx7a2V5OiJtb2RpZnlDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXMuX3Jlc29sdmVDbGFzcyhlLG4pO3JldHVybiBpJiZpLmNsYXNzLnJlb3Blbih0KSxpfX0se2tleToibW9kaWZ5Q2xhc3NTdGF0aWMiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzLl9yZXNvbHZlQ2xhc3MoZSxuKTtyZXR1cm4gaSYmaS5jbGFzcy5yZW9wZW5DbGFzcyh0KSxpfX0se2tleToicmVnaXN0ZXJJY29uUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLG8ucmVnaXN0ZXJJY29uUmVuZGVyZXIpKGUpfX0se2tleToicmVwbGFjZUljb24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsby5yZXBsYWNlSWNvbikoZSx0KX19LHtrZXk6ImRlY29yYXRlQ29va2VkIix2YWx1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8e30sKDAsbi5hZGREZWNvcmF0b3IpKGUpLHQub25seVN0cmVhbXx8KFcocy5kZWZhdWx0LCJwcmV2aWV3UmVmcmVzaGVkIixlLHQuaWQpLFcoci5kZWZhdWx0LCJkaWRJbnNlcnRFbGVtZW50IixlLHQuaWQpLFcodGhpcy5jb250YWluZXIuZmFjdG9yeUZvcigiY29tcG9uZW50OnVzZXItc3RyZWFtIikuY2xhc3MsImRpZEluc2VydEVsZW1lbnQiLGUsdC5pZCkpfX0se2tleToiYWRkUG9zdGVySWNvbiIsdmFsdWU6ZnVuY3Rpb24ocyl7dmFyIGU9dGhpcy5fbG9va3VwQ29udGFpbmVyKCJzaXRlOm1haW4iKSx0PWUmJmUubW9iaWxlVmlldz8iYmVmb3JlIjoiYWZ0ZXIiOygwLG0uZGVjb3JhdGVXaWRnZXQpKCJwb3N0ZXItbmFtZToiK3QsZnVuY3Rpb24obil7dmFyIGU9bi5hdHRycyxpPXMoZS51c2VyQ3VzdG9tRmllbGRzfHx7fSxlKTtpZihpKXt2YXIgdD12b2lkIDA7cmV0dXJuIGkuaWNvbj90PSgwLG8uaWNvbk5vZGUpKGkuaWNvbik6aS5lbW9qaSYmKHQ9aS5lbW9qaS5zcGxpdCgifCIpLm1hcChmdW5jdGlvbihlKXt2YXIgdD17bmFtZTplfTtyZXR1cm4gaS5lbW9qaVRpdGxlJiYodC50aXRsZT0hMCksbi5hdHRhY2goImVtb2ppIix0KX0pKSxpLnRleHQmJih0PVt0LGkudGV4dF0pLGkudXJsJiYodD1uLmgoImEiLHthdHRyaWJ1dGVzOntocmVmOmkudXJsfX0sdCkpLG4uaCgic3Bhbi5wb3N0ZXItaWNvbiIse2NsYXNzTmFtZTppLmNsYXNzTmFtZSxhdHRyaWJ1dGVzOnt0aXRsZTppLnRpdGxlfX0sdCl9fSl9fSx7a2V5OiJkZWNvcmF0ZVdpZGdldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCxtLmRlY29yYXRlV2lkZ2V0KShlLHQpfX0se2tleToiYXR0YWNoV2lkZ2V0QWN0aW9uIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7KCgwLG0ucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMuY29udGFpbmVyLmZhY3RvcnlGb3IoIndpZGdldDoiK2UpLmNsYXNzKS5wcm90b3R5cGVbdF09bn19LHtrZXk6ImluY2x1ZGVQb3N0QXR0cmlidXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXtsLmluY2x1ZGVBdHRyaWJ1dGVzLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX0se2tleToiYWRkUG9zdE1lbnVCdXR0b24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsYS5hZGRCdXR0b24pKGUsdCl9fSx7a2V5OiJvblRvb2xiYXJDcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGMuYWRkVG9vbGJhckNhbGxiYWNrKShlKX19LHtrZXk6ImFkZFRvb2xiYXJQb3B1cE1lbnVPcHRpb25zQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGIuYWRkUG9wdXBNZW51T3B0aW9uc0NhbGxiYWNrKShlKX19LHtrZXk6ImNsZWFudXBTdHJlYW0iLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGQuYWRkV2lkZ2V0Q2xlYW5DYWxsYmFjaykoInBvc3Qtc3RyZWFtIixlKX19LHtrZXk6Im9uUGFnZUNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5vbkFwcEV2ZW50KCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe3JldHVybiB0KGUudXJsLGUudGl0bGUpfSl9fSx7a2V5OiJvbkFwcEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2xvb2t1cENvbnRhaW5lcigic2VydmljZTphcHAtZXZlbnRzIik7biYmbi5vbihlLHQpfX0se2tleToiY3VzdG9tVXNlckF2YXRhckNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLE0ucmVnaXN0ZXJDdXN0b21BdmF0YXJIZWxwZXIpKGUpfX0se2tleToiZGlzYWJsZU5hbWVTdXBwcmVzc2lvbk9uUG9zdHMiLHZhbHVlOmZ1bmN0aW9uKCl7KDAsRC5kaXNhYmxlTmFtZVN1cHByZXNzaW9uKSgpfX0se2tleToicmVnaXN0ZXJDdXN0b21Qb3N0TWVzc2FnZUNhbGxiYWNrIix2YWx1ZTpmdW5jdGlvbihlLHQpeygwLEkucmVnaXN0ZXJDdXN0b21Qb3N0TWVzc2FnZUNhbGxiYWNrKShlLHQpfX0se2tleToiY2hhbmdlV2lkZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4peygwLG0uY2hhbmdlU2V0dGluZykoZSx0LG4pfX0se2tleToicHJldmVudENsb2FrIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxmLnByZXZlbnRDbG9haykoZSl9fSx7a2V5OiJjcmVhdGVXaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbS5jcmVhdGVXaWRnZXQpKGUsdCl9fSx7a2V5OiJyZW9wZW5XaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbS5yZW9wZW5XaWRnZXQpKGUsdCl9fSx7a2V5OiJhZGRGbGFnUHJvcGVydHkiLHZhbHVlOmZ1bmN0aW9uKCl7KDAsdC5kZWZhdWx0KSgiYWRkRmxhZ1Byb3BlcnR5IGhhcyBiZWVuIHJlbW92ZWQuIFVzZSB0aGUgcmV2aWV3YWJsZSBBUEkgaW5zdGVhZC4iKX19LHtrZXk6ImFkZEhlYWRlclBhbmVsIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7KDAsUC5hdHRhY2hBZGRpdGlvbmFsUGFuZWwpKGUsdCxuKX19LHtrZXk6ImFkZFN0b3JlUGx1cmFsaXphdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9sb29rdXBDb250YWluZXIoInNlcnZpY2U6c3RvcmUiKTtuJiZuLmFkZFBsdXJhbGl6YXRpb24oZSx0KX19LHtrZXk6InJlZ2lzdGVyQ29ubmVjdG9yQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxnLmV4dHJhQ29ubmVjdG9yQ2xhc3MpKGUrIi8iK3Qsbil9fSx7a2V5OiJyZWdpc3RlclRvcGljRm9vdGVyQnV0dG9uIix2YWx1ZTpmdW5jdGlvbihlKXsoMCx5LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKGUpfX0se2tleToiYWRkUG9zdFNtYWxsQWN0aW9uSWNvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCx2LmFkZFBvc3RTbWFsbEFjdGlvbkljb24pKGUsdCl9fSx7a2V5OiJhZGREaXNjb3ZlcnlRdWVyeVBhcmFtIix2YWx1ZTpmdW5jdGlvbihlLHQpeygwLF8uYWRkRGlzY292ZXJ5UXVlcnlQYXJhbSkoZSx0KX19LHtrZXk6ImFkZFRhZ3NIdG1sQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsdy5hZGRUYWdzSHRtbENhbGxiYWNrKShlLHQpfX0se2tleToiYWRkVXNlck1lbnVHbHlwaCIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAseC5hZGRVc2VyTWVudUdseXBoKShlKX19LHtrZXk6ImFkZFBvc3RDbGFzc2VzQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGsuYWRkUG9zdENsYXNzZXNDYWxsYmFjaykoZSl9fSx7a2V5OiJhZGRQb3N0VHJhbnNmb3JtQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGYuYWRkUG9zdFRyYW5zZm9ybUNhbGxiYWNrKShlKX19LHtrZXk6ImFkZE5hdmlnYXRpb25CYXJJdGVtIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgbixpLHMsbyxyLGEsbCx1O2UubmFtZT8oKG49ZS5jdXN0b21IcmVmKSYmKGk9dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuY3VzdG9tSHJlZj1mdW5jdGlvbihlLHQpe3JldHVybiBuKGUsdCxpKX0pLChzPWUuY3VzdG9tRmlsdGVyKSYmKG89dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuY3VzdG9tRmlsdGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHMoZSx0LG8pfSksKHI9ZS5mb3JjZUFjdGl2ZSkmJihhPXRoaXMuY29udGFpbmVyLmxvb2t1cCgic2VydmljZTpyb3V0ZXIiKSxlLmZvcmNlQWN0aXZlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIoZSx0LGEpfSksKGw9ZS5pbml0KSYmKHU9dGhpcy5jb250YWluZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLGUuaW5pdD1mdW5jdGlvbihlLHQsbil7bChlLHQsbix1KX0pLCgwLEUuYWRkTmF2SXRlbSkoZSkpOmNvbnNvbGUud2FybigiQSAnbmFtZScgaXMgcmVxdWlyZWQgd2hlbiBhZGRpbmcgYSBOYXZpZ2F0aW9uIEJhciBJdGVtLiIsZSl9fSx7a2V5OiJmb3JtYXRVc2VybmFtZSIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsTy5yZXBsYWNlRm9ybWF0dGVyKShlKX19LHtrZXk6Im1vZGlmeVNlbGVjdEtpdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsUy5tb2RpZnlTZWxlY3RLaXQpKGUpfX0se2tleToiYWRkR1RNUGFnZUNoYW5nZWRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsQy5hZGRHVE1QYWdlQ2hhbmdlZENhbGxiYWNrKShlKX19LHtrZXk6ImFkZFNoYXJpbmdTb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGUpe0wuZGVmYXVsdC5hZGRTaGFyaW5nSWQoZS5pZCksTC5kZWZhdWx0LmFkZFNvdXJjZShlKX19LHtrZXk6ImFkZENvbXBvc2VyVXBsb2FkSGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXsoMCxzLmFkZENvbXBvc2VyVXBsb2FkSGFuZGxlcikoZSx0KX19LHtrZXk6ImFkZENvbXBvc2VyVXBsb2FkTWFya2Rvd25SZXNvbHZlciIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAscy5hZGRDb21wb3NlclVwbG9hZE1hcmtkb3duUmVzb2x2ZXIpKGUpfX0se2tleToiY29tcG9zZXJCZWZvcmVTYXZlIix2YWx1ZTpmdW5jdGlvbihlKXtOLmRlZmF1bHQucmVvcGVuKHtiZWZvcmVTYXZlOmV9KX19LHtrZXk6InNlcmlhbGl6ZVRvRHJhZnQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Ti5kZWZhdWx0LnNlcmlhbGl6ZVRvRHJhZnQoZSx0KX19LHtrZXk6ImFkZENhdGVnb3J5U29ydENyaXRlcmlhIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxBLmFkZENhdGVnb3J5U29ydENyaXRlcmlhKShlKX19LHtrZXk6InJlcGxhY2VDYXRlZ29yeUxpbmtSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24oZSl7KDAsai5yZXBsYWNlQ2F0ZWdvcnlMaW5rUmVuZGVyZXIpKGUpfX0se2tleToicmVwbGFjZVRhZ1JlbmRlcmVyIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxULnJlcGxhY2VUYWdSZW5kZXJlcikoZSl9fSx7a2V5OiJyZWdpc3RlckhpZ2hsaWdodEpTTGFuZ3VhZ2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7KDAsdS5yZWdpc3RlckhpZ2hsaWdodEpTTGFuZ3VhZ2UpKGUsdCl9fSx7a2V5OiJhZGRHbG9iYWxOb3RpY2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxwLmFkZEdsb2JhbE5vdGljZSkoZSx0LG4pfX0se2tleToiZGVjb3JhdGVQbHVnaW5PdXRsZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXsoMCxpLmFkZFBsdWdpbk91dGxldERlY29yYXRvcikoZSx0LG58fHt9KX19XSksUik7ZnVuY3Rpb24gUihlLHQpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLFIpLHRoaXMudmVyc2lvbj1lLHRoaXMuY29udGFpbmVyPXQsdGhpcy5oPWguaH12YXIgcT12b2lkIDA7dmFyIEg9MCxLPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFcoZSx0LG4saSl7aWYoaSl7Sy5oYXMoZSl8fEsuc2V0KGUsbmV3IFNldCksaT1pKyI6Iit0O3ZhciBzPUsuZ2V0KGUpO2lmKHMuaGFzKGkpKXJldHVybjtzLmFkZChpKX1lbHNlIGNvbnNvbGUud2FybigiYGRlY29yYXRlQ29va2VkYCBzaG91bGQgYmUgc3VwcGxpZWQgd2l0aCBhbiBgaWRgIG9wdGlvbiB0byBhdm9pZCBtZW1vcnkgbGVha3MuIik7dmFyIG89e307b1siX2RlY29yYXRlXyIrSCsrXT0oMCx6Lm9uKSh0LGZ1bmN0aW9uKGUpeyhlPWV8fCQodGhpcy5lbGVtZW50KSkmJm4oZSl9KSxlLnJlb3BlbihvKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlc2V0RXh0cmFDbGFzc2VzPWZ1bmN0aW9uKCl7bz17fSxyPXZvaWQgMH0sZS5leHRyYUNvbm5lY3RvckNsYXNzPWZ1bmN0aW9uKGUsdCl7b1tlXT10fSxlLmNsZWFyQ2FjaGU9ZnVuY3Rpb24oKXtuPWk9bnVsbH0sZS5jb25uZWN0b3JzRm9yPWMsZS5yZW5kZXJlZENvbm5lY3RvcnNGb3I9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBjKGUpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5jb25uZWN0b3JDbGFzcy5zaG91bGRSZW5kZXIodCxuKX0pfSxlLnJhd0Nvbm5lY3RvcnNGb3I9ZnVuY3Rpb24oZSl7bnx8KG49e30sbChEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFUyxmdW5jdGlvbihlLHQpe25bZV09bltlXXx8W10sbltlXS5wdXNoKHt0ZW1wbGF0ZTpEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1t0XX0pfSkpO3JldHVybiBuW2VdfHxbXX0sZS5idWlsZEFyZ3NXaXRoRGVwcmVjYXRpb25zPWZ1bmN0aW9uKHQsbil7dmFyIGk9e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSx7dmFsdWU6dFtlXX0pfSksT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmRlZmF1bHQpKGUrIiBpcyBkZXByZWNhdGVkIiksbltlXX19KX0pLGl9O3ZhciBpPXZvaWQgMCxuPXZvaWQgMCxvPXt9LHI9dm9pZCAwO3ZhciBhPXthY3Rpb25zOnt9LHNob3VsZFJlbmRlcjpmdW5jdGlvbigpe3JldHVybiEwfSxzZXR1cENvbXBvbmVudDpmdW5jdGlvbigpe30sdGVhcmRvd25Db21wb25lbnQ6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBsKGUsbyl7dmFyIHI9dC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJkaXNhYmxlZF9wbHVnaW5zIil8fFtdO09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoLTEhPT1lLmluZGV4T2YoIi9jb25uZWN0b3JzLyIpKXtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoO3QrKylpZigtMSE9PWUuaW5kZXhPZigiLyIrclt0XSsiLyIpKXJldHVybjt2YXIgbj1lLnNwbGl0KCIvIiksaT1uW24ubGVuZ3RoLTJdLHM9bltuLmxlbmd0aC0xXTtvKGksZSxzKX19KX1mdW5jdGlvbiB1KCl7aT17fSxsKEVtYmVyLlRFTVBMQVRFUyxmdW5jdGlvbihlLHQsbil7aVtlXT1pW2VdfHxbXSxpW2VdLnB1c2goe291dGxldE5hbWU6ZSx0ZW1wbGF0ZU5hbWU6dC5yZXBsYWNlKCJqYXZhc2NyaXB0cy8iLCIiKSx0ZW1wbGF0ZTpFbWJlci5URU1QTEFURVNbdF0sY2xhc3NOYW1lczplKyItb3V0bGV0ICIrbixjb25uZWN0b3JDbGFzczpmdW5jdGlvbihlLHQpe3J8fChyPXt9LGwocmVxdWlyZS5fZWFrX3NlZW4sZnVuY3Rpb24oZSx0LG4pe3JbZSsiLyIrbl09cmVxdWlyZWpzKHQpLmRlZmF1bHR9KSk7dmFyIG49ZSsiLyIrdCxpPW9bbl18fHJbbl07cmV0dXJuIGk/alF1ZXJ5LmV4dGVuZCh7fSxhLGkpOmF9KGUsbil9KX0pfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGl8fHUoKSxpW2VdfHxbXX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcHVzaC1ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSJdLGZ1bmN0aW9uKGUsaSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUua2V5VmFsdWVTdG9yZT12b2lkIDAsZS51c2VyU3Vic2NyaXB0aW9uS2V5PW8sZS5pc1B1c2hOb3RpZmljYXRpb25zU3VwcG9ydGVkPWwsZS5pc1B1c2hOb3RpZmljYXRpb25zRW5hYmxlZD1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZsKHQpJiZzLmdldEl0ZW0obyhlKSl9LGUucmVnaXN0ZXI9ZnVuY3Rpb24odCxlLG4saSl7aWYoIWwoZSkpcmV0dXJuO2lmKCJkZW5pZWQiPT09Tm90aWZpY2F0aW9uLnBlcm1pc3Npb258fCF0KXJldHVybjtuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKGZ1bmN0aW9uKGUpe2UucHVzaE1hbmFnZXIuZ2V0U3Vic2NyaXB0aW9uKCkudGhlbihmdW5jdGlvbihlKXtlJiYocihlLCExKSxzLnNldEl0ZW0obyh0KSwic3Vic2NyaWJlZCIpKSxmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGEpLGRvY3VtZW50JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGEpO2Uub24oInBhZ2U6Y2hhbmdlZCIsYSl9KGkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKX0pfSksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIHQ7InVybCJpbiBlLmRhdGEmJih0PWUuZGF0YS51cmwsbi5oYW5kbGVVUkwodCkpfSl9LGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQsbixlKXtpZighbChlKSlyZXR1cm47bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHkudGhlbihmdW5jdGlvbihlKXtlLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5Om5ldyBVaW50OEFycmF5KG4uc3BsaXQoInwiKSl9KS50aGVuKGZ1bmN0aW9uKGUpe3IoZSwhMCksdCYmdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKX0pfSl9LGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSx0LG4pe2lmKCFsKG4pKXJldHVybjtzLnNldEl0ZW0obyhlKSwiIiksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHkudGhlbihmdW5jdGlvbihlKXtlLnB1c2hNYW5hZ2VyLmdldFN1YnNjcmlwdGlvbigpLnRoZW4oZnVuY3Rpb24odCl7dCYmdC51bnN1YnNjcmliZSgpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKDAsaS5hamF4KSgiL3B1c2hfbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZSIse3R5cGU6IlBPU1QiLGRhdGE6e3N1YnNjcmlwdGlvbjp0LnRvSlNPTigpfX0pfSl9KS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKGUpfSksdCYmdCgpfSl9O3ZhciBzPWUua2V5VmFsdWVTdG9yZT1uZXcgdC5kZWZhdWx0KCJkaXNjb3Vyc2VfcHVzaF9ub3RpZmljYXRpb25zXyIpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuInN1YnNjcmliZWQtIitlLmdldCgiaWQiKX1mdW5jdGlvbiByKGUsdCl7KDAsaS5hamF4KSgiL3B1c2hfbm90aWZpY2F0aW9ucy9zdWJzY3JpYmUiLHt0eXBlOiJQT1NUIixkYXRhOntzdWJzY3JpcHRpb246ZS50b0pTT04oKSxzZW5kX2NvbmZpcm1hdGlvbjp0fX0pfWZ1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2gobmV3IFJlZ0V4cChlKyIvKFxcZCspXFwuXFxkIikpO3JldHVybiEoaSYmbnx8IWl8fHBhcnNlSW50KGlbMV0sMTApPHQpfWZ1bmN0aW9uIGEoKXsiY29udHJvbGxlciJpbiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciYmbnVsbCE9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciYmbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7bGFzdEFjdGlvbjpEYXRlLm5vdygpfSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4hISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24mJiJ1bmRlZmluZWQiIT10eXBlb2YgTm90aWZpY2F0aW9uJiYic2hvd05vdGlmaWNhdGlvbiJpbiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnByb3RvdHlwZSYmIlB1c2hNYW5hZ2VyImluIHdpbmRvdykmJiEoIW4oIkZpcmVmb3giLDQ0LGUpJiYhbigiQ2hyb21lIiw1MCkpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9wd2EtdXRpbHMiLFsiZXhwb3J0cyIsInJzdnAiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5uYXRpdmVTaGFyZT1mdW5jdGlvbihuKXt2YXIgaT1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImNhcGFiaWxpdGllczptYWluIik7cmV0dXJuIG5ldyB0LlByb21pc2UoZnVuY3Rpb24oZSx0KXsoaS5pc0lPU3x8aS5pc0FuZHJvaWR8fGkuaXNXaW5waG9uZSkmJiJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sJiZ2b2lkIDAhPT13aW5kb3cubmF2aWdhdG9yLnNoYXJlP3dpbmRvdy5uYXZpZ2F0b3Iuc2hhcmUobikudGhlbihlKS5jYXRjaChmdW5jdGlvbihlKXsiQWJvcnRFcnJvciI9PT1lLm5hbWV8fHQoKX0pOnQoKX0pfSxlLmdldE5hdGl2ZUNvbnRhY3Q9ZnVuY3Rpb24obixpKXt2YXIgcz1EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoImNhcGFiaWxpdGllczptYWluIik7cmV0dXJuIG5ldyB0LlByb21pc2UoZnVuY3Rpb24oZSx0KXtzLmhhc0NvbnRhY3RQaWNrZXI/bmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChuLHttdWx0aXBsZTppfSkudGhlbihlKS5jYXRjaCh0KTp0KCl9KX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcXVvdGUtc3RhdGUiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmkoZS5wcm90b3R5cGUsdCksbiYmaShlLG4pLGV9KG4sW3trZXk6InNlbGVjdGVkIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7dGhpcy5wb3N0SWQ9ZSx0aGlzLmJ1ZmZlcj10LHRoaXMub3B0cz1ufX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5idWZmZXI9IiIsdGhpcy5wb3N0SWQ9bnVsbCx0aGlzLm9wdHM9bnVsbH19XSksbik7ZnVuY3Rpb24gbigpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMuY2xlYXIoKX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3Jlc29sdmVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZFJhd1RlbXBsYXRlPWZ1bmN0aW9uKGUpe2lmKCgwLHQuZ2V0UmVzb2x2ZXJPcHRpb24pKCJtb2JpbGVWaWV3IikpcmV0dXJuIERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJqYXZhc2NyaXB0cy9tb2JpbGUvIitlXXx8RGlzY291cnNlLlJBV19URU1QTEFURVNbImphdmFzY3JpcHRzLyIrZV18fERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJtb2JpbGUvIitlXXx8RGlzY291cnNlLlJBV19URU1QTEFURVNbZV07cmV0dXJuIERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJqYXZhc2NyaXB0cy8iK2VdfHxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1tlXX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2Vycm9yIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbj1mdW5jdGlvbihlKXtpZighZS5pZClyZXR1cm4gdm9pZCgwLG4uZGVmYXVsdCkoIkF0dGVtcHRlZCB0byByZWdpc3RlciBhIHRvcGljIGJ1dHRvbjogIitlKyIgd2l0aCBubyBpZC4iKTtpZihsW2UuaWRdKXJldHVybjt2YXIgdD1PYmplY3QuYXNzaWduKHtpZDpudWxsLGljb246bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZWRUaXRsZTpudWxsLGxhYmVsOm51bGwsdHJhbnNsYXRlZExhYmVsOm51bGwsZHJvcGRvd246ITEsY2xhc3NOYW1lczpbXSxkZXBlbmRlbnRLZXlzOltdLGRpc3BsYXllZDohMCxkaXNhYmxlZDohMSxwcmlvcml0eTowfSxlKTtpZighdC5pY29uJiYhdC50aXRsZSYmIXQudHJhbnNsYXRlZFRpdGxlKXJldHVybiB2b2lkKDAsbi5kZWZhdWx0KSgiQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgdG9waWMgYnV0dG9uOiAiK2UuaWQrIiB3aXRoIG5vIGljb24gb3IgdGl0bGUuIik7bFt0LmlkXT10fSxlLmdldFRvcGljRm9vdGVyQnV0dG9ucz1mdW5jdGlvbigpe3ZhciBlLHQ9KGU9W10pLmNvbmNhdC5hcHBseShlLHMoT2JqZWN0LnZhbHVlcyhsKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVwZW5kZW50S2V5c30pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSk7cmV0dXJuIGkuY29tcHV0ZWQuYXBwbHkodm9pZCAwLHModCkuY29uY2F0KFt7Z2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGV9ZnVuY3Rpb24gcihlLHQpe3ZhciBuPWVbdF07cmV0dXJuIG8obik/bi5hcHBseShhKTpufXZhciBhPXRoaXM7cmV0dXJuIE9iamVjdC52YWx1ZXMobCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiByKGUsImRpc3BsYXllZCIpfSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXt9O3QuaWQ9ZS5pZDt2YXIgbj1yKGUsImxhYmVsIik7dC5sYWJlbD1uP0kxOG4udChuKTpyKGUsInRyYW5zbGF0ZWRMYWJlbCIpO3ZhciBpLHM9cihlLCJ0aXRsZSIpO3JldHVybiB0LnRpdGxlPXM/STE4bi50KHMpOnIoZSwidHJhbnNsYXRlZFRpdGxlIiksdC5jbGFzc05hbWVzPShyKGUsImNsYXNzTmFtZXMiKXx8W10pLmpvaW4oIiAiKSx0Lmljb249cihlLCJpY29uIiksdC5kaXNhYmxlZD1yKGUsImRpc2FibGVkIiksdC5kcm9wZG93bj1yKGUsImRyb3Bkb3duIiksdC5wcmlvcml0eT1yKGUsInByaW9yaXR5IiksbyhlLmFjdGlvbik/dC5hY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZS5hY3Rpb24uYXBwbHkoYSl9OihpPWUuYWN0aW9uLHQuYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGFbaV0oKX0pLHR9KS5zb3J0QnkoInByaW9yaXR5IikucmV2ZXJzZSgpfX1dKSl9LGUuY2xlYXJUb3BpY0Zvb3RlckJ1dHRvbnM9ZnVuY3Rpb24oKXtsPVtdfTt2YXIgbD17fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZW5kZXItdGFnIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXBsYWNlVGFnUmVuZGVyZXI9ZnVuY3Rpb24oZSl7bj1lfSxlLmRlZmF1bHRSZW5kZXJUYWc9dCxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihlLHQpfTt2YXIgbj10O2Z1bmN0aW9uIHQoZSx0KXt0PXR8fHt9O3ZhciBuPUhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlKTtlPW4udG9Mb3dlckNhc2UoKTt2YXIgaT1bImRpc2NvdXJzZS10YWciXSxzPXQudGFnTmFtZXx8ImEiLG89dm9pZCAwOyJhIiE9PXN8fHQubm9IcmVmfHwobz0odC5pc1ByaXZhdGVNZXNzYWdlfHx0LnBtT25seSkmJmwuZGVmYXVsdC5jdXJyZW50KCk/Ii91LyIrKHQudGFnc0ZvclVzZXI/dC50YWdzRm9yVXNlcjpsLmRlZmF1bHQuY3VycmVudCgpLnVzZXJuYW1lKSsiL21lc3NhZ2VzL3RhZ3MvIitlOiIvdGFnLyIrZSk7dmFyIHI9bz8iIGhyZWY9JyIrRGlzY291cnNlLmdldFVSTChvKSsiJyAiOiIiOyhEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRhZ19zdHlsZXx8dC5zdHlsZSkmJmkucHVzaCh0LnN0eWxlfHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRhZ19zdHlsZSksdC5zaXplJiZpLnB1c2godC5zaXplKTt2YXIgYT0iPCIrcytyKyIgZGF0YS10YWctbmFtZT0iK2UrIiBjbGFzcz0nIitpLmpvaW4oIiAiKSsiJz4iK24rIjwvIitzKyI+IjtyZXR1cm4gdC5jb3VudCYmKGErPSIgPHNwYW4gY2xhc3M9J2Rpc2NvdXJzZS10YWctY291bnQnPngiK3QuY291bnQrIjwvc3Bhbj4iKSxhfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZW5kZXItdGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9yZW5kZXItdGFnIl0sZnVuY3Rpb24oZSx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVGFnc0h0bWxDYWxsYmFjaz1mdW5jdGlvbihlLHQpe2M9Y3x8W10scz1zfHxbXTt2YXIgbj10JiZ0LnByaW9yaXR5fHwwLGk9MDtmb3IoO2k8cy5sZW5ndGgmJnNbaV0+bjspaSs9MTtzLnNwbGljZShpLDAsbiksYy5zcGxpY2UoaSwwLGUpfSxlLmRlZmF1bHQ9ZnVuY3Rpb24obixpKXt2YXIgZT1uLnRhZ3MsdD0iIixzPW51bGwsbz12b2lkIDAscj1uLmdldCgiaXNQcml2YXRlTWVzc2FnZSIpO2kmJigibGlzdCI9PT1pLm1vZGUmJihlPW4uZ2V0KCJ2aXNpYmxlTGlzdFRhZ3MiKSksaS50YWdzRm9yVXNlciYmKHM9aS50YWdzRm9yVXNlciksaS50YWdOYW1lJiYobz1pLnRhZ05hbWUpKTt2YXIgYT1udWxsO2lmKGMmJmMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lKG4saSk7dCYmKGE/YSs9dDphPXQpfSksYXx8ZSYmMDxlLmxlbmd0aCl7aWYodD0iPGRpdiBjbGFzcz0nZGlzY291cnNlLXRhZ3MnPiIsZSlmb3IodmFyIGw9MDtsPGUubGVuZ3RoO2wrKyl0Kz0oMCx1LmRlZmF1bHQpKGVbbF0se2lzUHJpdmF0ZU1lc3NhZ2U6cix0YWdzRm9yVXNlcjpzLHRhZ05hbWU6b30pKyIgIjthJiYodCs9YSksdCs9IjwvZGl2PiJ9cmV0dXJuIHR9O3ZhciBjPW51bGwscz1udWxsfSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIixbImV4cG9ydHMiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRGZWF0dXJlZExpbmtNZXRhRGVjb3JhdG9yPWZ1bmN0aW9uKGUpe28ucHVzaChlKX0sZS5leHRyYWN0TGlua01ldGE9cixlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9cihlKTtyZXR1cm4gdD8nPGEgY2xhc3M9InRvcGljLWZlYXR1cmVkLWxpbmsiIHJlbD0iJyt0LnJlbCsnIiB0YXJnZXQ9IicrdC50YXJnZXQrJyIgaHJlZj0iJyt0LmhyZWYrJyI+JysoMCxpLnJlbmRlckljb24pKCJzdHJpbmciLCJleHRlcm5hbC1saW5rLWFsdCIpKyIgIit0LmRvbWFpbisiPC9hPiI6IiJ9LGUudG9waWNGZWF0dXJlZExpbmtOb2RlPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSk7aWYodClyZXR1cm4oMCxuLmgpKCJhLnRvcGljLWZlYXR1cmVkLWxpbmsiLHthdHRyaWJ1dGVzOntocmVmOnQuaHJlZixyZWw6dC5yZWwsdGFyZ2V0OnQudGFyZ2V0fX0sWygwLGkucmVuZGVySWNvbikoIm5vZGUiLCJleHRlcm5hbC1saW5rLWFsdCIpLHQuZG9tYWluXSl9O3ZhciBvPVtdO2Z1bmN0aW9uIHIoZSl7dmFyIHQ9ZS5nZXQoImZlYXR1cmVkX2xpbmsiKSxuPXMuZGVmYXVsdC5jdXJyZW50UHJvcCgiZXh0ZXJuYWxfbGlua3NfaW5fbmV3X3RhYiIpPyJfYmxhbmsiOiIiO2lmKHQpe3ZhciBpPXt0YXJnZXQ6bixocmVmOnQsZG9tYWluOmUuZ2V0KCJmZWF0dXJlZF9saW5rX3Jvb3RfZG9tYWluIikscmVsOiJub2ZvbGxvdyB1Z2MifTtyZXR1cm4gby5sZW5ndGgmJm8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZShpKX0pLGl9fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9yZXBvcnRzLWxvYWRlciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz10LnJ1bi5kZWJvdW5jZSxvPVtdLHI9MDtlLmRlZmF1bHQ9e2VucXVldWU6ZnVuY3Rpb24oZSx0LG4pezIwPD1vLmxlbmd0aCYmby5zcGxpY2UoMCwxKVswXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucnVubmFibGUoKSg0MjkpfSksby5wdXNoKHtydW5uYWJsZTpmdW5jdGlvbigpe3JldHVybiBufSx0eXBlOmUscGFyYW1zOnR9KSxzKHRoaXMsdGhpcy5fcHJvY2Vzc1F1ZXVlLDUwKX0sX3Byb2Nlc3NRdWV1ZTpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzOzAhPT1vLmxlbmd0aCYmKDM8PXJ8fChyKyssZT1vLnNwbGljZSgwLDQpLDA8by5sZW5ndGgmJnModGhpcyx0aGlzLl9wcm9jZXNzUXVldWUsNTApLHQ9e30sZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS50eXBlXT1lLnBhcmFtc30pLCgwLGkuYWpheCkoIi9hZG1pbi9yZXBvcnRzL2J1bGsiLHtkYXRhOntyZXBvcnRzOnR9fSkudGhlbihmdW5jdGlvbihuKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5yZXBvcnRzLmZpbmRCeSgidHlwZSIsZS50eXBlKTtlLnJ1bm5hYmxlKCkodCl9KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2UuZm9yRWFjaChmdW5jdGlvbihlKXt0LmpxWEhSJiY0Mjk9PT10LmpxWEhSLnN0YXR1cz9lLnJ1bm5hYmxlKCkoNDI5KTp0LmpxWEhSJiY1MDA9PT10LmpxWEhSLnN0YXR1cz9lLnJ1bm5hYmxlKCkoNTAwKTplLnJ1bm5hYmxlKCkoKX0pfSkuZmluYWxseShmdW5jdGlvbigpe3ItLSxzKG4sbi5fcHJvY2Vzc1F1ZXVlLDUwKX0pKSl9LF9yZXNldDpmdW5jdGlvbigpe289W10scj0wfX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvcm91bmQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZGVjaW1hbC1hZGp1c3QiXSxmdW5jdGlvbihlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5kZWZhdWx0KSgicm91bmQiLGUsdCl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3NjcmVlbi10cmFjayIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHMscCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgdD0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShvLFt7a2V5OiJzdGFydCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9dGhpcy5fdG9waWNJZDtpJiZpIT09ZSYmKHRoaXMudGljaygpLHRoaXMuZmx1c2goKSksdGhpcy5yZXNldCgpLHRoaXMuX2ludGVydmFsfHwodGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtyZXR1cm4gbi50aWNrKCl9LDFlMyksdGhpcy5fYm91bmRTY3JvbGxlZD0oMCxzLmJpbmQpKHRoaXMsdGhpcy5zY3JvbGxlZCksJCh3aW5kb3cpLm9uKCJzY3JvbGwuc2NyZWVudHJhY2siLHRoaXMuX2JvdW5kU2Nyb2xsZWQpKSx0aGlzLl90b3BpY0lkPWUsdGhpcy5fdG9waWNDb250cm9sbGVyPXR9fSx7a2V5OiJzdG9wIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3RvcGljSWQmJih0aGlzLl9ib3VuZFNjcm9sbGVkJiYkKHdpbmRvdykub2ZmKCJzY3JvbGwuc2NyZWVudHJhY2siLHRoaXMuX2JvdW5kU2Nyb2xsZWQpLHRoaXMudGljaygpLHRoaXMuZmx1c2goKSx0aGlzLnJlc2V0KCksdGhpcy5fdG9waWNJZD1udWxsLHRoaXMuX3RvcGljQ29udHJvbGxlcj1udWxsLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCkpfX0se2tleToic2V0T25zY3JlZW4iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fb25zY3JlZW49ZSx0aGlzLl9yZWFkT25zY3JlZW49dH19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3RoaXMuX2xhc3RUaWNrPWUsdGhpcy5fbGFzdFNjcm9sbGVkPWUsdGhpcy5fbGFzdEZsdXNoPTAsdGhpcy5fdGltaW5ncz17fSx0aGlzLl90b3RhbFRpbWluZ3M9e30sdGhpcy5fdG9waWNUaW1lPTAsdGhpcy5fb25zY3JlZW49W10sdGhpcy5fcmVhZE9uc2NyZWVuPVtdLHRoaXMuX3JlYWRQb3N0cz17fSx0aGlzLl9pblByb2dyZXNzPSExfX0se2tleToic2Nyb2xsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbGFzdFNjcm9sbGVkPShuZXcgRGF0ZSkuZ2V0VGltZSgpfX0se2tleToicmVnaXN0ZXJBbm9uQ2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuX2Fub25DYWxsYmFjaz1lfX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXt9LHM9dGhpcy5fdG90YWxUaW1pbmdzLG89dGhpcy5fdGltaW5ncztPYmplY3Qua2V5cyh0aGlzLl90aW1pbmdzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW9bZV07c1tlXT1zW2VdfHwwLDA8dCYmc1tlXTwzNmU0JiYoc1tlXSs9dCxpW2VdPXQpLG9bZV09MH0pO3ZhciByPXBhcnNlSW50KHRoaXMuX3RvcGljSWQsMTApLHQ9MCxlPXRoaXMuX3RvcGljQ29udHJvbGxlcixhPWU/ZS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKTpudWxsO3RoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJpZ25vcmVkX3VzZXJzLmxlbmd0aCIpJiZhJiZhLmhhc05vRmlsdGVycyYmIWEuY2FuQXBwZW5kTW9yZSYmYS5wb3N0cy5sYXN0T2JqZWN0JiZhLnBvc3RzLmxhc3RPYmplY3QucmVhZCYmYS5nYXBzJiZhLmdhcHMuYWZ0ZXJbYS5wb3N0cy5sYXN0T2JqZWN0LmlkXSYmYS50b3BpYy5sYXN0X3JlYWRfcG9zdF9udW1iZXIhPT1hLnBvc3RzLmxhc3RPYmplY3QucG9zdF9udW1iZXIrYS5nZXQoImdhcHMuYWZ0ZXIuIithLnBvc3RzLmxhc3RPYmplY3QuaWQrIi5sZW5ndGgiKSYmKGlbYS5wb3N0cy5sYXN0T2JqZWN0LnBvc3RfbnVtYmVyK2EuZ2V0KCJnYXBzLmFmdGVyLiIrYS5wb3N0cy5sYXN0T2JqZWN0LmlkKyIubGVuZ3RoIildPTEpLE9iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7dD1NYXRoLm1heCh0LHBhcnNlSW50KGUsMTApKX0pO3ZhciBsLHUsYyxkPXRoaXMuc2Vzc2lvbi5nZXQoImhpZ2hlc3RTZWVuQnlUb3BpYyIpOyhkW3JdfHwwKTx0JiYoZFtyXT10KSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZS51cGRhdGVTZWVuKHIsdCksJC5pc0VtcHR5T2JqZWN0KGkpfHwodGhpcy5jdXJyZW50VXNlcj8odGhpcy5faW5Qcm9ncmVzcz0hMCwoMCxwLmFqYXgpKCIvdG9waWNzL3RpbWluZ3MiLHtkYXRhOnt0aW1pbmdzOmksdG9waWNfdGltZTp0aGlzLl90b3BpY1RpbWUsdG9waWNfaWQ6cn0sY2FjaGU6ITEsdHlwZToiUE9TVCIsaGVhZGVyczp7IlgtU0lMRU5DRS1MT0dHRVIiOiJ0cnVlIn19KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGUsdD1uLl90b3BpY0NvbnRyb2xsZXI7dCYmKGU9T2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pLHQucmVhZFBvc3RzKHIsZSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5qcVhIUjs0MDUhPT10LnN0YXR1c3x8dC5yZXNwb25zZUpTT04uZXJyb3JfdHlwZX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtuLl9pblByb2dyZXNzPSExLG4uX2xhc3RGbHVzaD0wfSkpOnRoaXMuX2Fub25DYWxsYmFjayYmKHU9KGw9dGhpcy5rZXlWYWx1ZVN0b3JlKS5nZXRJbnQoImFub24tdG9waWMtdGltZSIpLGwuc2V0SXRlbSgiYW5vbi10b3BpYy10aW1lIix1K3RoaXMuX3RvcGljVGltZSksLTE9PT0oYz0oYz1sLmdldCgiYW5vbi10b3BpYy1pZHMiKSk/Yy5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KTpbXSkuaW5kZXhPZihyKSYmYy5sZW5ndGg8NSYmKGMucHVzaChyKSxsLnNldEl0ZW0oImFub24tdG9waWMtaWRzIixjLmpvaW4oIiwiKSkpLHRoaXMuX2Fub25DYWxsYmFjaygpKSx0aGlzLl90b3BpY1RpbWU9MCksdGhpcy5fbGFzdEZsdXNoPTB9fSx7a2V5OiJ0aWNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LG4saSxlLHMsbz10aGlzLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7MThlNDxyLXRoaXMuX2xhc3RTY3JvbGxlZHx8KHQ9ci10aGlzLl9sYXN0VGljayx0aGlzLl9sYXN0Rmx1c2grPXQsdGhpcy5fbGFzdFRpY2s9cixuPXRoaXMuX3RvdGFsVGltaW5ncyxpPXRoaXMuX3RpbWluZ3MsZT0xZTMqdGhpcy5zaXRlU2V0dGluZ3MuZmx1c2hfdGltaW5nc19zZWNzLHM9T2JqZWN0LmtleXMoaSkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gMDxpW2VdJiYhbltlXSYmIW8uX3JlYWRQb3N0c1tlXX0pLCF0aGlzLl9pblByb2dyZXNzJiYodGhpcy5fbGFzdEZsdXNoPmV8fHMpJiZ0aGlzLmZsdXNoKCksRGlzY291cnNlLmdldCgiaGFzRm9jdXMiKSYmKHRoaXMuX3RvcGljVGltZSs9dCx0aGlzLl9vbnNjcmVlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpW2VdPShpW2VdfHwwKSt0fSksdGhpcy5fcmVhZE9uc2NyZWVuLmZvckVhY2goZnVuY3Rpb24oZSl7by5fcmVhZFBvc3RzW2VdPSEwfSkpKX19XSksbyk7ZnVuY3Rpb24gbyhlLHQsbixpKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZT1lLHRoaXMuc2l0ZVNldHRpbmdzPXQsdGhpcy5zZXNzaW9uPW4sdGhpcy5jdXJyZW50VXNlcj1pLHRoaXMucmVzZXQoKX1lLmRlZmF1bHQ9dH0pLGRlZmluZSgiZGlzY291cnNlL2xpYi9zZXR0aW5ncyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnByaW9yaXRpemVOYW1lSW5VeD1mdW5jdGlvbihlLHQpe3JldHVybiEodD10fHxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzKS5wcmlvcml0aXplX3VzZXJuYW1lX2luX3V4JiZlJiYwPGUudHJpbSgpLmxlbmd0aH19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvc2hhcmluZyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdD17fSxuPVtdO2UuZGVmYXVsdD17YWRkU2hhcmluZ0lkOmZ1bmN0aW9uKGUpe24ucHVzaChlKX0sYWRkU291cmNlOmZ1bmN0aW9uKGUpe2UuZmFJY29uJiYoZS5pY29uPWUuZmFJY29uLnJlcGxhY2UoImZhLSIsIiIpLGRlbGV0ZSBlLmZhSWNvbiksdFtlLmlkXT1lfSxzaGFyZVNvdXJjZTpmdW5jdGlvbihlLHQpe3ZhciBuLGkscztlLmNsaWNrSGFuZGxlcj9lLmNsaWNrSGFuZGxlcih0LnVybCx0LnRpdGxlKToobj1lLmdlbmVyYXRlVXJsKHQudXJsLHQudGl0bGUpLGk9e21lbnViYXI6Im5vIix0b29sYmFyOiJubyIscmVzaXphYmxlOiJ5ZXMiLHNjcm9sbGJhcnM6InllcyIsd2lkdGg6NjAwLGhlaWdodDplLnBvcHVwSGVpZ2h0fHwzMTV9LHM9T2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlKyI9IitpW2VdfSkuam9pbigiLCIpLGUuc2hvdWxkT3BlbkluUG9wdXA/d2luZG93Lm9wZW4obiwiIixzKTp3aW5kb3cub3BlbihuLCJfYmxhbmsiKSl9LGFjdGl2ZVNvdXJjZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOiIiKS5zcGxpdCgifCIpLmNvbmNhdChuKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5jb21wYWN0KCl9LF9yZXNldDpmdW5jdGlvbigpe3Q9e30sbj1bXX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvc3RhdGljLXBhZ2UiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKG4pe3JldHVybiB0LmRlZmF1bHQuZXh0ZW5kKHtyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJzdGF0aWMiKX0sYmVmb3JlTW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9b1tuXTt0JiYwPERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbdF0ubGVuZ3RoJiYoZS5hYm9ydCgpLHMuZGVmYXVsdC5yZWRpcmVjdFRvKERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbdF0pKX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksKDAscy5qdW1wVG9FbGVtZW50KShkb2N1bWVudC5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKSl9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5maW5kKG4pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInN0YXRpYyIpLnNldCgibW9kZWwiLHQpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udChuKX0sYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfTt2YXIgbz17ZmFxOiJmYXFfdXJsIix0b3M6InRvc191cmwiLHByaXZhY3k6InByaXZhY3lfcG9saWN5X3VybCJ9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3N2Zy1zcHJpdGUtbG9hZGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0Il0sZnVuY3Rpb24oZSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic3ZnLXNwcml0ZS1sb2FkZXIiLGxvYWQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0ic3ZnLXNwcml0ZXMiLGk9IiMiK24scz1pKyIgLiIrdDswPT09JChpKS5sZW5ndGgmJiQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9IicrbisnIj4nKSwwPT09JChzKS5sZW5ndGgmJiQoaSkuYXBwZW5kKCc8ZGl2IGNsYXNzPSInK3QrJyI+JyksKDAsby5kZWZhdWx0KShlKS50aGVuKGZ1bmN0aW9uKCl7JChzKS5odG1sKHdpbmRvdy5fX3N2Z19zcHJpdGUpLGRlbGV0ZSB3aW5kb3cuX19zdmdfc3ByaXRlfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi90YWctaGFzaHRhZ3MiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5UQUdfSEFTSFRBR19QT1NURklYPSI6OnRhZyJ9KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdGhlbWUtc2VsZWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmN1cnJlbnRUaGVtZUtleT1mdW5jdGlvbigpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS50cmFjZSYmKDAsbi5kZWZhdWx0KSgiJ2N1cnJlbnRUaGVtZUtleScgaXMgaXMgZGVwcmVjYXRlZCB1c2UgJ2N1cnJlbnRUaGVtZUlkJyBpbnN0ZWFkLiBBIHRoZW1lIGNvbXBvbmVudCBtYXkgcmVxdWlyZSB1cGRhdGluZy4iKX0sZS5jdXJyZW50VGhlbWVJZHM9cyxlLmN1cnJlbnRUaGVtZUlkPW8sZS5zZXRMb2NhbFRoZW1lPWZ1bmN0aW9uKGUsdCl7KGU9ZS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSkmJjA8ZS5sZW5ndGg/JC5jb29raWUoInRoZW1lX2lkcyIsZS5qb2luKCIsIikrInwiK3Qse3BhdGg6Ii8iLGV4cGlyZXM6OTk5OX0pOiQucmVtb3ZlQ29va2llKCJ0aGVtZV9pZHMiLHtwYXRoOiIvIixleHBpcmVzOjF9KX0sZS5yZWZyZXNoQ1NTPXIsZS5wcmV2aWV3VGhlbWU9ZnVuY3Rpb24oKXt2YXIgbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W107KG49bi5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSkuaW5jbHVkZXMobygpKXx8KERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLCgwLHQuYWpheCkoIi90aGVtZXMvYXNzZXRzLyIrKDA8bi5sZW5ndGg/bi5qb2luKCItIik6ImRlZmF1bHQiKSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1fLmZpcnN0KCQoaSkpO3QmJih0LmNvbnRlbnQ9bi5qb2luKCIsIikpLGUudGhlbWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9JCgibGlua1tyZWw9c3R5bGVzaGVldF1bZGF0YS10YXJnZXQ9IitlLnRhcmdldCsiXSIpWzBdO3QmJnIodCxudWxsLGUubmV3X2hyZWYpfSl9KSl9LGUubGlzdFRoZW1lcz1mdW5jdGlvbihlKXt2YXIgdD1lLmdldCgidXNlcl90aGVtZXMiKTtpZighdClyZXR1cm4gbnVsbDt2YXIgbj0hIXQuZmluZEJ5KCJkZWZhdWx0IiwhMCksaT1bXTtufHxpLnB1c2goe25hbWU6STE4bi50KCJ0aGVtZXMuZGVmYXVsdF9kZXNjcmlwdGlvbiIpLGlkOm51bGx9KTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kucHVzaCh7bmFtZTplLm5hbWUsaWQ6ZS50aGVtZV9pZH0pfSksMD09PWkubGVuZ3RoP251bGw6aX07dmFyIGk9Im1ldGFbbmFtZT1kaXNjb3Vyc2VfdGhlbWVfaWRzXSI7ZnVuY3Rpb24gcygpe3ZhciB0PVtdLGU9Xy5maXJzdCgkKGkpKTtyZXR1cm4gZSYmZS5jb250ZW50LnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbihlKXtlPXBhcnNlSW50KGUsMTApLGlzTmFOKGUpfHx0LnB1c2goZSl9KSx0fWZ1bmN0aW9uIG8oKXtyZXR1cm4gcygpWzBdfWZ1bmN0aW9uIHIoZSx0LG4pe3ZhciBpPSQoZSk7aS5kYXRhKCJyZWxvYWRpbmciKSYmKGNsZWFyVGltZW91dChpLmRhdGEoInRpbWVvdXQiKSksaS5kYXRhKCJjb3B5IikucmVtb3ZlKCkpLGkuZGF0YSgib3JpZyIpfHxpLmRhdGEoIm9yaWciLGUuaHJlZiksaS5kYXRhKCJyZWxvYWRpbmciLCEwKTt2YXIgcz0kKGUpLmRhdGEoIm9yaWciKSxvPWkuY2xvbmUoITApO29bMF0uaHJlZj10P3MrKDA8PXMuaW5kZXhPZigiPyIpPyImaGFzaD0iOiI/aGFzaD0iKSt0Om4saS5hZnRlcihvKTt2YXIgcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5yZW1vdmUoKSxvLmRhdGEoInJlbG9hZGluZyIsITEpfSwyZTMpO2kuZGF0YSgidGltZW91dCIsciksaS5kYXRhKCJjb3B5IixvKX19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdG9vbHRpcCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93VG9vbHRpcD1uLGUuaGlkZVRvb2x0aXA9ZixlLnJlZ2lzdGVyVG9vbHRpcD1mdW5jdGlvbihlKXsoMCx0LmRlZmF1bHQpKCJ0b29sdGlwIGlzIGdldHRpbmcgZGVwcmVjYXRlZC4gVXNlIGQtcG9wb3ZlciBpbnN0ZWFkIiksZS5sZW5ndGgmJmUub2ZmKCJjbGljayIpLm9uKCJjbGljayIsbil9LGUucmVnaXN0ZXJIb3ZlclRvb2x0aXA9ZnVuY3Rpb24oZSl7KDAsdC5kZWZhdWx0KSgidG9vbHRpcCBpcyBnZXR0aW5nIGRlcHJlY2F0ZWQuIFVzZSBkLXBvcG92ZXIgaW5zdGVhZCIpLGUubGVuZ3RoJiZlLm9mZigibW91c2VlbnRlciBtb3VzZWxlYXZlIGNsaWNrIikub24oIm1vdXNlZW50ZXIgY2xpY2siLG4pLm9uKCJtb3VzZWxlYXZlIixmKX0sZS51bnJlZ2lzdGVyVG9vbHRpcD1mdW5jdGlvbihlKXtlLmxlbmd0aCYmZS5vZmYoImNsaWNrIil9LGUudW5yZWdpc3RlckhvdmVyVG9vbHRpcD1mdW5jdGlvbihlKXtlLmxlbmd0aCYmZS5vZmYoIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjbGljayIpfTt2YXIgcD0zMDAsbT0iI2Rpc2NvdXJzZS10b29sdGlwIjtmdW5jdGlvbiBuKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KSxuPXQub2Zmc2V0UGFyZW50KCksaT10LmF0dHIoImRhdGEtdG9vbHRpcCIpPygwLGQuZXNjYXBlRXhwcmVzc2lvbikodC5hdHRyKCJkYXRhLXRvb2x0aXAiKSk6dC5hdHRyKCJkYXRhLWh0bWwtdG9vbHRpcCIpfHwiIixzPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvJiYxPHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvPyJjbGFzcz0ncmV0aW5hJyI6IiIsbz10Lm9mZnNldCgpLHI9bi5vZmZzZXQoKTtvLnRvcC09ci50b3Asby5sZWZ0LT1yLmxlZnQsZigpLHQuYWZ0ZXIoJ1xuICAgIDxkaXYgaWQ9ImRpc2NvdXJzZS10b29sdGlwIiAnK3MrJz5cbiAgICAgIDxkaXYgY2xhc3M9InRvb2x0aXAtcG9pbnRlciI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPSJ0b29sdGlwLWNvbnRlbnQiPicraSsiPC9kaXY+XG4gICAgPC9kaXY+XG4gICIpLCQod2luZG93KS5vbigiY2xpY2suZGlzY291cnNlIixmdW5jdGlvbihlKXtyZXR1cm4gMD09PSQoZS50YXJnZXQpLmNsb3Nlc3QobSkubGVuZ3RoJiYoJChtKS5yZW1vdmUoKSwkKHdpbmRvdykub2ZmKCJjbGljay5kaXNjb3Vyc2UiKSksITB9KTt2YXIgYT0kKG0pO2EuY3NzKHt0b3A6MCxsZWZ0OjB9KTt2YXIgbD1vLmxlZnQtYS53aWR0aCgpLzIrdC53aWR0aCgpLzI7bDwwJiYoYS5maW5kKCIudG9vbHRpcC1wb2ludGVyIikuY3NzKHsibWFyZ2luLWxlZnQiOjIqbCsicHgifSksbD0wKTt2YXIgdSxjPW4ud2lkdGgoKTtyZXR1cm4gbCthLndpZHRoKCk+YyYmKHU9bCxsPWMtYS53aWR0aCgpLGEuZmluZCgiLnRvb2x0aXAtcG9pbnRlciIpLmNzcyh7Im1hcmdpbi1sZWZ0IjoyKih1LWwpKyJweCJ9KSksYS5jc3Moe3RvcDpvLnRvcCs1KyJweCIsbGVmdDpsKyJweCJ9KSxhLmZhZGVJbihwKSwhMX1mdW5jdGlvbiBmKCl7JChtKS5mYWRlT3V0KHApLnJlbW92ZSgpfX0pLGRlZmluZSgiZGlzY291cnNlL2xpYi90cmFuc2Zvcm0tcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmluY2x1ZGVBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTt0LmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGgucHVzaChlKX0pfSxlLnRyYW5zZm9ybUJhc2ljUG9zdD1iLGUuZGVmYXVsdD1mdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvPW4ucG9zdF90eXBlLHI9dC5wb3N0X3R5cGVzLGE9bi50b3BpYyxsPWEuZ2V0KCJkZXRhaWxzIiksdT1iKG4pLGM9bC5jcmVhdGVkX2J5fHx7fTt1LnRvcGljSWQ9YS5pZCx1LnRvcGljT3duZXI9Yy5pZD09PW4udXNlcl9pZCx1LnRvcGljQ3JlYXRlZEJ5SWQ9Yy5pZCx1LnBvc3RfdHlwZT1vLHUudmlhX2VtYWlsPW4udmlhX2VtYWlsLHUuaXNBdXRvR2VuZXJhdGVkPW4uaXNfYXV0b19nZW5lcmF0ZWQsdS5pc01vZGVyYXRvckFjdGlvbj1vPT09ci5tb2RlcmF0b3JfYWN0aW9uLHUuaXNXaGlzcGVyPW89PT1yLndoaXNwZXIsdS5pc1NtYWxsQWN0aW9uPW89PT1yLnNtYWxsX2FjdGlvbnx8InNwbGl0X3RvcGljIj09PW4uYWN0aW9uX2NvZGUsdS5jYW5Cb29rbWFyaz0hIWUsdS5jYW5NYW5hZ2U9ZSYmZS5nZXQoImNhbk1hbmFnZVRvcGljIiksdS5jYW5WaWV3UmF3RW1haWw9ZSYmKGUuaWQ9PT1uLnVzZXJfaWR8fGUuc3RhZmYpLHUuY2FuUmVwbHlBc05ld1RvcGljPWwuY2FuX3JlcGx5X2FzX25ld190b3BpYyx1LmNhblJldmlld1RvcGljPSEhbC5jYW5fcmV2aWV3X3RvcGljLHUuaXNXYXJuaW5nPWEuaXNfd2FybmluZyx1LmxpbmtzPW4uZ2V0KCJpbnRlcm5hbExpbmtzIiksdS5yZXBseURpcmVjdGx5QmVsb3c9cyYmcy5yZXBseV90b19wb3N0X251bWJlcj09PW4ucG9zdF9udW1iZXIsdS5yZXBseURpcmVjdGx5QWJvdmU9aSYmbi5yZXBseV90b19wb3N0X251bWJlcj09PWkucG9zdF9udW1iZXIsdS5saW5rQ291bnRzPW4ubGlua19jb3VudHMsdS5hY3Rpb25Db2RlPW4uYWN0aW9uX2NvZGUsdS5hY3Rpb25Db2RlV2hvPW4uYWN0aW9uX2NvZGVfd2hvLHUudG9waWNVcmw9YS5nZXQoInVybCIpLHUuaXNTYXZpbmc9bi5pc1NhdmluZyxuLm5vdGljZV90eXBlJiYodS5ub3RpY2VUeXBlPW4ubm90aWNlX3R5cGUsImN1c3RvbSI9PT11Lm5vdGljZVR5cGU/dS5ub3RpY2VNZXNzYWdlPW4ubm90aWNlX2FyZ3M6InJldHVybmluZ191c2VyIj09PXUubm90aWNlVHlwZSYmKHUubm90aWNlVGltZT1uZXcgRGF0ZShuLm5vdGljZV9hcmdzKSkpO3ZhciBkPSJwcml2YXRlX21lc3NhZ2UiPT09YS5hcmNoZXR5cGUmJjE9PT1uLnBvc3RfbnVtYmVyO2QmJih1LnNob3dQTU1hcD0hMCx1LmFsbG93ZWRHcm91cHM9bC5hbGxvd2VkX2dyb3Vwcyx1LmFsbG93ZWRVc2Vycz1sLmFsbG93ZWRfdXNlcnMsdS5jYW5SZW1vdmVBbGxvd2VkVXNlcnM9bC5jYW5fcmVtb3ZlX2FsbG93ZWRfdXNlcnMsdS5jYW5SZW1vdmVTZWxmSWQ9bC5jYW5fcmVtb3ZlX3NlbGZfaWQsdS5jYW5JbnZpdGU9bC5jYW5faW52aXRlX3RvKTt7dmFyIHA7KGR8fDE9PT1uLnBvc3RfbnVtYmVyJiYicmVndWxhciI9PT1hLmFyY2hldHlwZSYmMTxhLnBvc3RzX2NvdW50KSYmKHUuc2hvd1RvcGljTWFwPSEwLHUudG9waWNDcmVhdGVkQXQ9YS5jcmVhdGVkX2F0LHUuY3JlYXRlZEJ5VXNlcm5hbWU9Yy51c2VybmFtZSx1LmNyZWF0ZWRCeUF2YXRhclRlbXBsYXRlPWMuYXZhdGFyX3RlbXBsYXRlLHUuY3JlYXRlZEJ5TmFtZT1jLm5hbWUsdS5sYXN0UG9zdFVybD1hLmdldCgibGFzdFBvc3RVcmwiKSx1Lmxhc3RQb3N0VXNlcm5hbWU9bC5sYXN0X3Bvc3Rlci51c2VybmFtZSx1Lmxhc3RQb3N0QXZhdGFyVGVtcGxhdGU9bC5sYXN0X3Bvc3Rlci5hdmF0YXJfdGVtcGxhdGUsdS5sYXN0UG9zdE5hbWU9bC5sYXN0X3Bvc3Rlci5uYW1lLHUubGFzdFBvc3RBdD1hLmxhc3RfcG9zdGVkX2F0LHUudG9waWNSZXBseUNvdW50PWEuZ2V0KCJyZXBseUNvdW50IiksdS50b3BpY1ZpZXdzPWEudmlld3MsdS50b3BpY1ZpZXdzSGVhdD1hLmdldCgidmlld3NIZWF0IiksdS5wYXJ0aWNpcGFudENvdW50PWEucGFydGljaXBhbnRfY291bnQsdS50b3BpY0xpa2VDb3VudD1hLmxpa2VfY291bnQsdS50b3BpY0xpbmtzPWwubGlua3MsdS50b3BpY0xpbmtzJiYodS50b3BpY0xpbmtMZW5ndGg9bC5saW5rcy5sZW5ndGgpLHUudG9waWNQb3N0c0NvdW50PWEucG9zdHNfY291bnQsdS5wYXJ0aWNpcGFudHM9bC5wYXJ0aWNpcGFudHMscD1hLmdldCgicG9zdFN0cmVhbSIpLHUudXNlckZpbHRlcnM9cC51c2VyRmlsdGVycyx1LnRvcGljU3VtbWFyeUVuYWJsZWQ9cC5zdW1tYXJ5LHUudG9waWNXb3JkQ291bnQ9YS53b3JkX2NvdW50LHUuaGFzVG9waWNTdW1tYXJ5PWEuaGFzX3N1bW1hcnkpfXUuaXNEZWxldGVkJiYodS5kZWxldGVkQnlBdmF0YXJUZW1wbGF0ZT1uLmdldCgicG9zdERlbGV0ZWRCeS5hdmF0YXJfdGVtcGxhdGUiKSx1LmRlbGV0ZWRCeVVzZXJuYW1lPW4uZ2V0KCJwb3N0RGVsZXRlZEJ5LnVzZXJuYW1lIikpO3ZhciBtPW4uZ2V0KCJyZXBseV90b191c2VyIik7bSYmKHUucmVwbHlUb1VzZXJuYW1lPW0udXNlcm5hbWUsdS5yZXBseVRvQXZhdGFyVGVtcGxhdGU9bS5hdmF0YXJfdGVtcGxhdGUpO24uYWN0aW9uc19zdW1tYXJ5JiYodS5hY3Rpb25zU3VtbWFyeT1uLmFjdGlvbnNfc3VtbWFyeS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuImxpa2UiIT09ZS5hY3Rpb25UeXBlLm5hbWVfa2V5JiZlLmFjdGVkfSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWN0aW9uVHlwZS5uYW1lX2tleTtyZXR1cm57aWQ6ZS5pZCxwb3N0SWQ6bi5pZCxhY3Rpb246dCxjYW5VbmRvOmUuY2FuX3VuZG8sZGVzY3JpcHRpb246STE4bi50KCJwb3N0LmFjdGlvbnMuYnlfeW91LiIrdCl9fSkpO3ZhciBmPW4ubGlrZUFjdGlvbjtmJiYodS5saWtlZD1mLmFjdGVkLHUuY2FuVG9nZ2xlTGlrZT1mLmdldCgiY2FuVG9nZ2xlIiksdS5zaG93TGlrZT11Lmxpa2VkfHx1LmNhblRvZ2dsZUxpa2UsdS5saWtlQ291bnQ9Zi5jb3VudCk7ZXx8KHUuc2hvd0xpa2U9IWEuYXJjaGl2ZWQpOzE9PT11LnBvc3RfbnVtYmVyPyh1LmNhblJlY292ZXJUb3BpYz11LmlzRGVsZXRlZCYmbC5jYW5fcmVjb3Zlcix1LmNhbkRlbGV0ZVRvcGljPSF1LmlzRGVsZXRlZCYmbC5jYW5fZGVsZXRlLHUuZXhwYW5kYWJsZVBvc3Q9YS5leHBhbmRhYmxlX2ZpcnN0X3Bvc3QsdS5zaG93RmxhZ0RlbGV0ZT0hdS5jYW5EZWxldGUmJnUueW91cnMmJmUmJiFlLnN0YWZmKToodS5jYW5SZWNvdmVyPXUuaXNEZWxldGVkJiZ1LmNhblJlY292ZXIsdS5jYW5EZWxldGU9dS5jYW5EZWxldGUmJiFuLmRlbGV0ZWRfYXQmJmUmJihlLnN0YWZmfHwhbi51c2VyX2RlbGV0ZWQpKTtyZXR1cm4gaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB1W2VdPW5bZV19KSx1fTt2YXIgaD1bXTtmdW5jdGlvbiBiKHQpe3ZhciBuPXtpZDp0LmlkLGhpZGRlbjp0LmhpZGRlbixkZWxldGVkOnQuZ2V0KCJkZWxldGVkIiksZGVsZXRlZF9hdDp0LmRlbGV0ZWRfYXQsdXNlcl9kZWxldGVkOnQudXNlcl9kZWxldGVkLGlzRGVsZXRlZDp0LmRlbGV0ZWRfYXR8fHQudXNlcl9kZWxldGVkLGRlbGV0ZWRCeUF2YXRhclRlbXBsYXRlOm51bGwsZGVsZXRlZEJ5VXNlcm5hbWU6bnVsbCxwcmltYXJ5X2dyb3VwX25hbWU6dC5wcmltYXJ5X2dyb3VwX25hbWUscHJpbWFyeV9ncm91cF9mbGFpcl91cmw6dC5wcmltYXJ5X2dyb3VwX2ZsYWlyX3VybCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOnQucHJpbWFyeV9ncm91cF9mbGFpcl9iZ19jb2xvcixwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yOnQucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvcix3aWtpOnQud2lraSxsYXN0V2lraUVkaXQ6dC5sYXN0X3dpa2lfZWRpdCxmaXJzdFBvc3Q6MT09PXQucG9zdF9udW1iZXIscG9zdF9udW1iZXI6dC5wb3N0X251bWJlcixjb29rZWQ6dC5jb29rZWQsdmlhX2VtYWlsOnQudmlhX2VtYWlsLGlzQXV0b0dlbmVyYXRlZDp0LmlzX2F1dG9fZ2VuZXJhdGVkLHVzZXJfaWQ6dC51c2VyX2lkLHVzZXJuYW1lVXJsOigwLHMudXNlclBhdGgpKHQudXNlcm5hbWUpLHVzZXJuYW1lOnQudXNlcm5hbWUsYXZhdGFyX3RlbXBsYXRlOnQuYXZhdGFyX3RlbXBsYXRlLGJvb2ttYXJrZWQ6dC5ib29rbWFya2VkLGJvb2ttYXJrZWRXaXRoUmVtaW5kZXI6dC5ib29rbWFya2VkX3dpdGhfcmVtaW5kZXIsYm9va21hcmtSZW1pbmRlckF0OnQuYm9va21hcmtfcmVtaW5kZXJfYXQseW91cnM6dC55b3VycyxzaGFyZVVybDp0LmdldCgic2hhcmVVcmwiKSxzdGFmZjp0LnN0YWZmLGFkbWluOnQuYWRtaW4sbW9kZXJhdG9yOnQubW9kZXJhdG9yLG5ld191c2VyOjA9PT10LnRydXN0X2xldmVsLG5hbWU6dC5uYW1lLHVzZXJfdGl0bGU6dC51c2VyX3RpdGxlLGNyZWF0ZWRfYXQ6dC5jcmVhdGVkX2F0LHVwZGF0ZWRfYXQ6dC51cGRhdGVkX2F0LGNhbkRlbGV0ZTp0LmNhbl9kZWxldGUsc2hvd0ZsYWdEZWxldGU6ITEsY2FuUmVjb3Zlcjp0LmNhbl9yZWNvdmVyLGNhbkVkaXQ6dC5jYW5fZWRpdCxjYW5GbGFnOiEoMCxpLmlzRW1wdHkpKHQuZ2V0KCJmbGFnc0F2YWlsYWJsZSIpKSxjYW5SZXZpZXdUb3BpYzohMSxyZXZpZXdhYmxlSWQ6dC5yZXZpZXdhYmxlX2lkLHJldmlld2FibGVTY29yZUNvdW50OnQucmV2aWV3YWJsZV9zY29yZV9jb3VudCxyZXZpZXdhYmxlU2NvcmVQZW5kaW5nQ291bnQ6dC5yZXZpZXdhYmxlX3Njb3JlX3BlbmRpbmdfY291bnQsdmVyc2lvbjp0LnZlcnNpb24sY2FuUmVjb3ZlclRvcGljOiExLGNhbkRlbGV0ZVRvcGljOiExLGNhblZpZXdFZGl0SGlzdG9yeTp0LmNhbl92aWV3X2VkaXRfaGlzdG9yeSxjYW5XaWtpOnQuY2FuX3dpa2ksc2hvd0xpa2U6ITEsbGlrZWQ6ITEsY2FuVG9nZ2xlTGlrZTohMSxsaWtlQ291bnQ6ITEsYWN0aW9uc1N1bW1hcnk6bnVsbCxyZWFkOnQucmVhZCxyZXBseVRvVXNlcm5hbWU6bnVsbCxyZXBseVRvQXZhdGFyVGVtcGxhdGU6bnVsbCxyZXBseV90b19wb3N0X251bWJlcjp0LnJlcGx5X3RvX3Bvc3RfbnVtYmVyLGNvb2tlZF9oaWRkZW46ISF0LmNvb2tlZF9oaWRkZW4sZXhwYW5kYWJsZVBvc3Q6ITEscmVwbHlDb3VudDp0LnJlcGx5X2NvdW50LGxvY2tlZDp0LmxvY2tlZCx1c2VyQ3VzdG9tRmllbGRzOnQudXNlcl9jdXN0b21fZmllbGRzLHJlYWRDb3VudDp0LnJlYWRlcnNfY291bnR9O3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV09dFtlXX0pLG59fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3VwbG9hZHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdChlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9ZnVuY3Rpb24gaShlKXt2YXIgdD1lLnN1YnN0cigwLGUubGFzdEluZGV4T2YoIi4iKSk7cmV0dXJuKDAsbi5pc0FwcGxlRGV2aWNlKSgpJiYvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvaS50ZXN0KHQpJiYodD1JMThuLnQoInVwbG9hZF9zZWxlY3Rvci5kZWZhdWx0X2ltYWdlX2FsdF90ZXh0IikpLHQucmVwbGFjZSgvXFt8XF18XHwvZywiIil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFya2Rvd25OYW1lRnJvbUZpbGVOYW1lPWksZS52YWxpZGF0ZVVwbG9hZGVkRmlsZXM9ZnVuY3Rpb24oZSx0KXtpZighZXx8MD09PWUubGVuZ3RoKXJldHVybiExO2lmKDE8ZS5sZW5ndGgpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJwb3N0LmVycm9ycy50b29fbWFueV91cGxvYWRzIikpLCExO3ZhciBuPWVbMF07InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiYidW5kZWZpbmVkIiE9dHlwZW9mIEZpbGUmJm4gaW5zdGFuY2VvZiBCbG9iJiYhKG4gaW5zdGFuY2VvZiBGaWxlKSYmImltYWdlL3BuZyI9PT1uLnR5cGUmJihuLm5hbWU9ImltYWdlLnBuZyIpO3JldHVybih0PXR8fHt9KS50eXBlPWgobi5uYW1lKSxmdW5jdGlvbihlLHQpe2lmKHQuc2tpcFZhbGlkYXRpb24pcmV0dXJuITA7dmFyIG49KHQ9dHx8e30pLnVzZXIsaT1uJiZuLnN0YWZmO2lmKCFkKGkpKXJldHVybiExO3ZhciBzPWUmJmUubmFtZTtpZighcylyZXR1cm4hMTtpZih0LmFsbG93U3RhZmZUb1VwbG9hZEFueUZpbGVJblBtJiZ0LmlzUHJpdmF0ZU1lc3NhZ2UmJmkpcmV0dXJuITA7aWYodC5pbWFnZXNPbmx5KXtpZighcChzKSYmIWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUmVnRXhwKCJcXC4oIitsKGUpLmpvaW4oInwiKSsiKSQiLCJpIil9KHQpLnRlc3QoZSl9KHMsaSkpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJwb3N0LmVycm9ycy51cGxvYWRfbm90X2F1dGhvcml6ZWQiLHthdXRob3JpemVkX2V4dGVuc2lvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuIGMoZSk/InBuZywganBnLCBqcGVnLCBnaWYsIHN2ZywgaWNvIjpsKGUpLmpvaW4oIiwgIil9KGkpfSkpLCExfWVsc2UgaWYodC5jc3ZPbmx5KXtpZighL1wuY3N2JC9pLnRlc3QocykpcmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmludml0ZWQuYnVsa19pbnZpdGUuZXJyb3IiKSksITF9ZWxzZSBpZighYyhpKSYmIWZ1bmN0aW9uKGUsdCl7aWYodCYmbmV3IFJlZ0V4cCgiXFwuKCIrYSgpLmpvaW4oInwiKSsiKSQiLCJpIikudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4gbmV3IFJlZ0V4cCgiXFwuKCIrcigpLmpvaW4oInwiKSsiKSQiLCJpIikudGVzdChlKX0ocyxpKSlyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoInBvc3QuZXJyb3JzLnVwbG9hZF9ub3RfYXV0aG9yaXplZCIse2F1dGhvcml6ZWRfZXh0ZW5zaW9uczp1KGkpfSkpLCExO2lmKCF0LmJ5cGFzc05ld1VzZXJSZXN0cmljdGlvbiYmbiYmIW4uaXNBbGxvd2VkVG9VcGxvYWRBRmlsZSh0LnR5cGUpKXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuIit0LnR5cGUrIl91cGxvYWRfbm90X2FsbG93ZWRfZm9yX25ld191c2VyIikpLCExO3JldHVybiEwfShuLHQpfSxlLmF1dGhvcml6ZWRFeHRlbnNpb25zPXUsZS5hdXRob3JpemVzQWxsRXh0ZW5zaW9ucz1jLGUuYXV0aG9yaXplc09uZU9yTW9yZUV4dGVuc2lvbnM9ZCxlLmF1dGhvcml6ZXNPbmVPck1vcmVJbWFnZUV4dGVuc2lvbnM9ZnVuY3Rpb24oZSl7cmV0dXJuISFjKGUpfHwwPGwoZSkubGVuZ3RofSxlLmlzSW1hZ2U9cCxlLmlzVmlkZW89bSxlLmlzQXVkaW89ZixlLmFsbG93c0ltYWdlcz1mdW5jdGlvbihlKXtyZXR1cm4gYyhlKXx8cy50ZXN0KHUoZSkpfSxlLmFsbG93c0F0dGFjaG1lbnRzPWIsZS51cGxvYWRJY29uPWZ1bmN0aW9uKGUpe3JldHVybiBiKGUpPyJ1cGxvYWQiOiJmYXItaW1hZ2UifSxlLmdldFVwbG9hZE1hcmtkb3duPWZ1bmN0aW9uKGUpe3JldHVybiBwKGUub3JpZ2luYWxfZmlsZW5hbWUpP2Z1bmN0aW9uKGUpe3JldHVybiIhWyIraShlLm9yaWdpbmFsX2ZpbGVuYW1lKSsifCIrZS50aHVtYm5haWxfd2lkdGgrIngiK2UudGh1bWJuYWlsX2hlaWdodCsiXSgiKyhlLnNob3J0X3VybHx8ZS51cmwpKyIpIn0oZSk6ZihlLm9yaWdpbmFsX2ZpbGVuYW1lKT9nKGUsImF1ZGlvIik6bShlLm9yaWdpbmFsX2ZpbGVuYW1lKT9nKGUsInZpZGVvIik6ZnVuY3Rpb24oZSl7cmV0dXJuIlsiK2Uub3JpZ2luYWxfZmlsZW5hbWUrInxhdHRhY2htZW50XSgiK2Uuc2hvcnRfdXJsKyIpICgiK0kxOG4udG9IdW1hblNpemUoZS5maWxlc2l6ZSkrIikifShlKX0sZS5kaXNwbGF5RXJyb3JGb3JVcGxvYWQ9ZnVuY3Rpb24oZSl7aWYoZS5qcVhIUilzd2l0Y2goZS5qcVhIUi5zdGF0dXMpe2Nhc2UgMDpyZXR1cm47Y2FzZSA0MTM6dmFyIHQ9aChlLmZpbGVzWzBdLm5hbWUpLG49RGlzY291cnNlLlNpdGVTZXR0aW5nc1sibWF4XyIrdCsiX3NpemVfa2IiXTtyZXR1cm4gdm9pZCBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMuZmlsZV90b29fbGFyZ2UiLHttYXhfc2l6ZV9rYjpufSkpO2Nhc2UgNDIyOnJldHVybiB2b2lkKGUuanFYSFIucmVzcG9uc2VKU09OLm1lc3NhZ2U/Ym9vdGJveC5hbGVydChlLmpxWEhSLnJlc3BvbnNlSlNPTi5tZXNzYWdlKTpib290Ym94LmFsZXJ0KGUuanFYSFIucmVzcG9uc2VKU09OLmVycm9ycy5qb2luKCJcbiIpKSl9ZWxzZSBpZihlLmVycm9ycyYmMDxlLmVycm9ycy5sZW5ndGgpcmV0dXJuIHZvaWQgYm9vdGJveC5hbGVydChlLmVycm9ycy5qb2luKCJcbiIpKTtib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudXBsb2FkIikpfTt2YXIgcz0vKHBuZ3xqcGU/Z3xnaWZ8c3ZnfGljbykvaTtmdW5jdGlvbiBvKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW1xzXC5dKy9nLCIiKS5zcGxpdCgifCIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4tMT09PWUuaW5kZXhPZigiKiIpfSl9ZnVuY3Rpb24gcigpe3JldHVybiBvKERpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0aG9yaXplZF9leHRlbnNpb25zKX1mdW5jdGlvbiBhKCl7cmV0dXJuIG8oRGlzY291cnNlLlNpdGVTZXR0aW5ncy5hdXRob3JpemVkX2V4dGVuc2lvbnNfZm9yX3N0YWZmKX1mdW5jdGlvbiBsKGUpe3ZhciB0LG49cigpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gcy50ZXN0KGUpfSk7cmV0dXJuIGUmJih0PWEoKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlKX0pLG49Xy51bmlvbihuLHQpKSxufWZ1bmN0aW9uIHUoZSl7cmV0dXJuKGU/W10uY29uY2F0KHQocigpKSx0KGEoKSkpOnIoKSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RofSkuam9pbigiLCAiKX1mdW5jdGlvbiBjKGUpe3JldHVybiAwPD1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmF1dGhvcml6ZWRfZXh0ZW5zaW9ucy5pbmRleE9mKCIqIil8fDA8PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuYXV0aG9yaXplZF9leHRlbnNpb25zX2Zvcl9zdGFmZi5pbmRleE9mKCIqIikmJmV9ZnVuY3Rpb24gZChlKXtyZXR1cm4hIWMoZSl8fDA8RGlzY291cnNlLlNpdGVTZXR0aW5ncy5hdXRob3JpemVkX2V4dGVuc2lvbnMuc3BsaXQoInwiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KS5sZW5ndGh9ZnVuY3Rpb24gcChlKXtyZXR1cm4vXC4ocG5nfHdlYnB8anBlP2d8Z2lmfHN2Z3xpY28pJC9pLnRlc3QoZSl9ZnVuY3Rpb24gbShlKXtyZXR1cm4vXC4obW92fG1wNHx3ZWJtfG00dnwzZ3B8b2d2fGF2aXxtcGVnfG9ndikkL2kudGVzdChlKX1mdW5jdGlvbiBmKGUpe3JldHVybi9cLihtcDN8b2dbZ2FdfG9wdXN8d2F2fG00W2FicHJdfGFhY3xmbGFjKSQvaS50ZXN0KGUpfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIHAoZSk/ImltYWdlIjoiYXR0YWNobWVudCJ9ZnVuY3Rpb24gYihlKXtyZXR1cm4gYyhlKXx8dShlKS5zcGxpdCgiLCAiKS5sZW5ndGg+bChlKS5sZW5ndGh9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiIhWyIraShlLm9yaWdpbmFsX2ZpbGVuYW1lKSsifCIrdCsiXSgiK2Uuc2hvcnRfdXJsKyIpIn19KSxkZWZpbmUoImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNlbmRBY3RpdmF0aW9uRW1haWw9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdC5hamF4KSgoMCxpLnVzZXJQYXRoKSgiYWN0aW9uL3NlbmRfYWN0aXZhdGlvbl9lbWFpbCIpLHt0eXBlOiJQT1NUIixkYXRhOnt1c2VybmFtZTplfX0pLmNhdGNoKG4ucG9wdXBBamF4RXJyb3IpfSxlLmNoYW5nZUVtYWlsPWZ1bmN0aW9uKGUpe3JldHVybigwLHQuYWpheCkoKDAsaS51c2VyUGF0aCkoInVwZGF0ZS1hY3RpdmF0aW9uLWVtYWlsIikse2RhdGE6ZSx0eXBlOiJQVVQifSl9fSksZGVmaW5lKCJkaXNjb3Vyc2UvbGliL3dlYmF1dGhuIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtmb3IodmFyIHQ9bmV3IEFycmF5QnVmZmVyKGUubGVuZ3RoKSxuPW5ldyBVaW50OEFycmF5KHQpLGk9MDtpPGUubGVuZ3RoO2krKyluW2ldPWUuY2hhckNvZGVBdChpKTtyZXR1cm4gdH1mdW5jdGlvbiBhKGUpe3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0obmV3IFVpbnQ4QXJyYXkoZSkpKSl9ZnVuY3Rpb24gbCgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgUHVibGljS2V5Q3JlZGVudGlhbH1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zdHJpbmdUb0J1ZmZlcj1yLGUuYnVmZmVyVG9CYXNlNjQ9YSxlLmlzV2ViYXV0aG5TdXBwb3J0ZWQ9bCxlLmdldFdlYmF1dGhuQ3JlZGVudGlhbD1mdW5jdGlvbihlLG4saSxzKXtpZighbCgpKXJldHVybiBzKEkxOG4udCgibG9naW4uc2VjdXJpdHlfa2V5X3N1cHBvcnRfbWlzc2luZ19lcnJvciIpKTt2YXIgdD1yKGUpLG89bi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOnIoYXRvYihlKSksdHlwZToicHVibGljLWtleSJ9fSk7bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCh7cHVibGljS2V5OntjaGFsbGVuZ2U6dCxhbGxvd0NyZWRlbnRpYWxzOm8sdGltZW91dDo2ZTQsdXNlclZlcmlmaWNhdGlvbjoiZGlzY291cmFnZWQifX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoIW4uc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYSh0LnJhd0lkKT09PWV9KSlyZXR1cm4gcyhJMThuLnQoImxvZ2luLnNlY3VyaXR5X2tleV9ub19tYXRjaGluZ19jcmVkZW50aWFsX2Vycm9yIikpO3ZhciBlPXtzaWduYXR1cmU6YSh0LnJlc3BvbnNlLnNpZ25hdHVyZSksY2xpZW50RGF0YTphKHQucmVzcG9uc2UuY2xpZW50RGF0YUpTT04pLGF1dGhlbnRpY2F0b3JEYXRhOmEodC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSksY3JlZGVudGlhbElkOmEodC5yYXdJZCl9O2koZSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4iTm90QWxsb3dlZEVycm9yIj09PWUubmFtZT9zKEkxOG4udCgibG9naW4uc2VjdXJpdHlfa2V5X25vdF9hbGxvd2VkX2Vycm9yIikpOnZvaWQgcyhlKX0pfX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9hZGQtYXJjaGV0eXBlLWNsYXNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0obj0oMCx0Lm9ic2VydmVzKSgiYXJjaGV0eXBlIiksaT0oMCx0Lm9uKSgiaW5pdCIpLG89cz17X2NsZWFuVXA6ZnVuY3Rpb24oKXskKCJib2R5IikucmVtb3ZlQ2xhc3MoZnVuY3Rpb24oZSx0KXtyZXR1cm4odC5tYXRjaCgvXGJhcmNoZXR5cGUtXFMrL2cpfHxbXSkuam9pbigiICIpfSl9LF9hcmNoZXR5cGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hcmNoZXR5cGU7dGhpcy5fY2xlYW5VcCgpLGUmJiQoImJvZHkiKS5hZGRDbGFzcygiYXJjaGV0eXBlLSIrZSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jbGVhblVwKCl9fSxyPSJfYXJjaGV0eXBlQ2hhbmdlZCIsYT1bbixpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiX2FyY2hldHlwZUNoYW5nZWQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscyl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvYnVmZmVyZWQtY29udGVudCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9wcm94eSIsIkBlbWJlci9vYmplY3QvbWl4aW4iLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQoZSl7dmFyIHQ9e2J1ZmZlcmVkOigwLHMuY29tcHV0ZWQpKGUsZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0LmV4dGVuZChCdWZmZXJlZFByb3h5KS5jcmVhdGUoe2NvbnRlbnQ6dGhpcy5nZXQoZSl9KX0pLHJvbGxiYWNrQnVmZmVyOmZ1bmN0aW9uKCl7dGhpcy5idWZmZXJlZC5kaXNjYXJkQnVmZmVyZWRDaGFuZ2VzKCl9LGNvbW1pdEJ1ZmZlcjpmdW5jdGlvbigpe3RoaXMuYnVmZmVyZWQuYXBwbHlCdWZmZXJlZENoYW5nZXMoKX0scHJvcGVydHk6bnVsbH07cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUodCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVmZmVyZWRQcm9wZXJ0eT10LGUuZGVmYXVsdD10KCJjb250ZW50Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxzLG4saSxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoKHI9KDAsbi5vbikoImluaXQiKSxhPXtidWxrU2VsZWN0RW5hYmxlZDohMSxzZWxlY3RlZDpudWxsLGNhbkJ1bGtTZWxlY3Q6KDAsdC5hbGlhcykoImN1cnJlbnRVc2VyLnN0YWZmIikscmVzZXRTZWxlY3RlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJzZWxlY3RlZCIsW10pfSxhY3Rpb25zOnt0b2dnbGVCdWxrU2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiYnVsa1NlbGVjdEVuYWJsZWQiKSx0aGlzLnNlbGVjdGVkLmNsZWFyKCl9LGRpc21pc3NSZWFkOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxpPXZvaWQgMCxpPSJwb3N0cyI9PT1lP3t0eXBlOiJkaXNtaXNzX3Bvc3RzIn06e3R5cGU6ImNoYW5nZV9ub3RpZmljYXRpb25fbGV2ZWwiLG5vdGlmaWNhdGlvbl9sZXZlbF9pZDpzLk5vdGlmaWNhdGlvbkxldmVscy5SRUdVTEFSfTsoMDx0aGlzLnNlbGVjdGVkLmxlbmd0aD9vLmRlZmF1bHQuYnVsa09wZXJhdGlvbih0aGlzLnNlbGVjdGVkLGkpOm8uZGVmYXVsdC5idWxrT3BlcmF0aW9uQnlGaWx0ZXIoInVucmVhZCIsaSx0aGlzLmdldCgiY2F0ZWdvcnkuaWQiKSx0KSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtlJiZlLnRvcGljX2lkcyYmKHQ9bi50b3BpY1RyYWNraW5nU3RhdGUsZS50b3BpY19pZHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5yZW1vdmVUb3BpYyhlKX0pLHQuaW5jcmVtZW50TWVzc2FnZUNvdW50KCkpLG4uc2VuZCgiY2xvc2VNb2RhbCIpLG4uc2VuZCgicmVmcmVzaCIpfSl9fX0sbD1hLHU9InJlc2V0U2VsZWN0ZWQiLGM9W3JdLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJyZXNldFNlbGVjdGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9jYW4tY2hlY2stZW1haWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuY3JlYXRlKHtpc0N1cnJlbnRVc2VyOigwLG4ucHJvcGVydHlFcXVhbCkoIm1vZGVsLmlkIiwiY3VycmVudFVzZXIuaWQiKSxzaG93RW1haWxPblByb2ZpbGU6KDAsbi5zZXR0aW5nKSgibW9kZXJhdG9yc192aWV3X2VtYWlscyIpLGNhblN0YWZmQ2hlY2tFbWFpbHM6KDAsdC5hbmQpKCJzaG93RW1haWxPblByb2ZpbGUiLCJjdXJyZW50VXNlci5zdGFmZiIpLGNhbkFkbWluQ2hlY2tFbWFpbHM6KDAsdC5hbGlhcykoImN1cnJlbnRVc2VyLmFkbWluIiksY2FuQ2hlY2tFbWFpbHM6KDAsdC5vcikoImlzQ3VycmVudFVzZXIiLCJjYW5TdGFmZkNoZWNrRW1haWxzIiwiY2FuQWRtaW5DaGVja0VtYWlscyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvY2FyZC1jb250ZW50cy1iYXNlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvYWZ0ZXItdHJhbnNpdGlvbiIsImRpc2NvdXJzZS9saWIvdXJsIiwiQGVtYmVyL29iamVjdC9taXhpbiJdLGZ1bmN0aW9uKGUsdCxkLGEsbCx1LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5jcmVhdGUoe2VsZW1lbnRJZDpudWxsLHRyaWdnZXJpbmdMaW5rQ2xhc3M6bnVsbCxfc2hvd0NhbGxiYWNrOm51bGwscG9zdFN0cmVhbTooMCx0LmFsaWFzKSgidG9waWMucG9zdFN0cmVhbSIpLHZpZXdpbmdUb3BpYzooMCx0Lm1hdGNoKSgiY3VycmVudFBhdGgiLC9edG9waWNcLi8pLHZpc2libGU6ITEsdXNlcm5hbWU6bnVsbCxsb2FkaW5nOm51bGwsY2FyZFRhcmdldDpudWxsLHBvc3Q6bnVsbCxpc0ZpeGVkOiExLGlzRG9ja2VkOiExLF9zaG93OmZ1bmN0aW9uKGUsdCl7aWYodGhpcy5zaXRlU2V0dGluZ3MuaGlkZV91c2VyX3Byb2ZpbGVzX2Zyb21fcHVibGljJiYhdGhpcy5jdXJyZW50VXNlcilyZXR1cm4hMTtpZihlPUVtYmVyLkhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRvU3RyaW5nKCkpLHQucGFyZW50cygiLmNhcmQtY29udGVudCIpLmxlbmd0aClyZXR1cm4gdGhpcy5fY2xvc2UoKSx1LmRlZmF1bHQucm91dGVUbyh0LmF0dHIoImhyZWYiKSksITE7aWYoZSE9PXRoaXMudXNlcm5hbWV8fHRoaXMubG9hZGluZyE9PWUpe3ZhciBuPXQucGFyZW50cygiYXJ0aWNsZSIpLmRhdGEoInBvc3QtaWQiKSxpPXRoaXMudmlzaWJsZSxzPXRoaXMuY2FyZFRhcmdldCxvPXRbMF07aWYoIWl8fCh0aGlzLl9jbG9zZSgpLG8hPT1zKSl7dmFyIHI9dGhpcy52aWV3aW5nVG9waWMmJm4/dGhpcy5wb3N0U3RyZWFtLmZpbmRMb2FkZWRQb3N0KG4pOm51bGw7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7dXNlcm5hbWU6ZSxsb2FkaW5nOmUsY2FyZFRhcmdldDpvLHBvc3Q6cn0pLHRoaXMuX3Nob3dDYWxsYmFjayhlLHQpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLl9iaW5kTW9iaWxlU2Nyb2xsKCksITF9fX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLGwuZGVmYXVsdCkoJCh0aGlzLmVsZW1lbnQpLHRoaXMuX2hpZGUuYmluZCh0aGlzKSk7dmFyIGk9dGhpcy5lbGVtZW50SWQscz10aGlzLnRyaWdnZXJpbmdMaW5rQ2xhc3MsZT0ibW91c2Vkb3duLm91dHNpZGUtIitpLHQ9ImNsaWNrLmRpc2NvdXJzZS0iK2ksbz0iY2xpY2suZGlzY291cnNlLSIraSsiLSIrcyxyPSJjbGljay5kaXNjb3Vyc2UtcHJldmlldy0iK2krIi0iK3M7dGhpcy5zZXRQcm9wZXJ0aWVzKHtjbGlja091dHNpZGVFdmVudE5hbWU6ZSxjbGlja0RhdGFFeHBhbmQ6dCxjbGlja01lbnRpb246byxwcmV2aWV3Q2xpY2tFdmVudDpyLG1vYmlsZVNjcm9sbEV2ZW50OiJzY3JvbGwubW9iaWxlLWNhcmQtY2xvYWsifSksJCgiaHRtbCIpLm9mZihlKS5vbihlLGZ1bmN0aW9uKGUpe2lmKG4udmlzaWJsZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5jbG9zZXN0KCJbZGF0YS0iK2krIl0iKS5kYXRhKGkpfHwwPHQuY2xvc2VzdCgiYS4iK3MpLmxlbmd0aHx8MDx0LmNsb3Nlc3QoIiMiK2kpLmxlbmd0aClyZXR1cm47bi5fY2xvc2UoKX1yZXR1cm4hMH0pLCQoIiNtYWluLW91dGxldCIpLm9uKHQsIltkYXRhLSIraSsiXSIsZnVuY3Rpb24oZSl7aWYoISgwLGEud2FudHNOZXdXaW5kb3cpKGUpKXt2YXIgdD0kKGUuY3VycmVudFRhcmdldCk7cmV0dXJuIG4uX3Nob3codC5kYXRhKGkpLHQpfX0pLCQoIiNtYWluLW91dGxldCIpLm9uKG8sImEuIitzLGZ1bmN0aW9uKGUpe2lmKCEoMCxhLndhbnRzTmV3V2luZG93KShlKSl7dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpO3JldHVybiBuLl9zaG93KHQudGV4dCgpLnJlcGxhY2UoL15ALywiIiksdCl9fSksdGhpcy5hcHBFdmVudHMub24ocix0aGlzLCJfcHJldmlld0NsaWNrIiksdGhpcy5hcHBFdmVudHMub24oInRvcGljLWhlYWRlcjp0cmlnZ2VyLSIraSx0aGlzLCJfdG9waWNIZWFkZXJUcmlnZ2VyIil9LF90b3BpY0hlYWRlclRyaWdnZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5zZXRQcm9wZXJ0aWVzKHtpc0ZpeGVkOiEwLGlzRG9ja2VkOiEwfSksdGhpcy5fc2hvdyhlLHQpfSxfYmluZE1vYmlsZVNjcm9sbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm1vYmlsZVNjcm9sbEV2ZW50OyQod2luZG93KS5vbih0LGZ1bmN0aW9uKCl7KDAsZC50aHJvdHRsZSkoZSxlLl9jbG9zZSwxZTMpfSl9LF91bmJpbmRNb2JpbGVTY3JvbGw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vYmlsZVNjcm9sbEV2ZW50OyQod2luZG93KS5vZmYoZSl9LF9wcmV2aWV3Q2xpY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJpc0ZpeGVkIiwhMCksdGhpcy5fc2hvdyhlLnRleHQoKS5yZXBsYWNlKC9eQC8sIiIpLGUpfSxfcG9zaXRpb25DYXJkOmZ1bmN0aW9uKHMpe3ZhciBvLHIsYSxsLHU9dGhpcyxjPSJydGwiPT09JCgiaHRtbCIpLmNzcygiZGlyZWN0aW9uIik7cyYmKG89JCh0aGlzLmVsZW1lbnQpLndpZHRoKCkscj10aGlzLmlzRml4ZWQsYT10aGlzLmlzRG9ja2VkLChsPTAsZC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlLHQsbixpO3MmJih1LnNpdGUubW9iaWxlVmlld3x8KGU9cy5vZmZzZXQoKSwwPHMucGFyZW50cygiLmQtaGVhZGVyIikubGVuZ3RoJiYoZS50b3A9cy5wb3NpdGlvbigpLnRvcCksZSYmKGUuYm90dG9tPSJ1bnNldCIsYz8oZS5yaWdodD0kKHdpbmRvdykud2lkdGgoKS1lLmxlZnQrMTAsZS5sZWZ0PSJhdXRvIiwodD0kKHdpbmRvdykud2lkdGgoKS01MC0oZS5yaWdodCtvKSk8MCYmKGUucmlnaHQrPXQsZS50b3ArPXMuaGVpZ2h0KCkrNDgsbCs9cy5oZWlnaHQoKSs0OCkpOihlLmxlZnQrPXMud2lkdGgoKSsxMCwobj0kKHdpbmRvdykud2lkdGgoKS01MC0oZS5sZWZ0K28pKTwwJiYoZS5sZWZ0Kz1uLGUudG9wKz1zLmhlaWdodCgpKzQ4LGwrPXMuaGVpZ2h0KCkrNDgpKSxlLnRvcC09JCgiI21haW4tb3V0bGV0Iikub2Zmc2V0KCkudG9wLHImJihlLnRvcC09JCgiaHRtbCIpLnNjcm9sbFRvcCgpLGUudG9wKzE3NStsPiQod2luZG93KS5oZWlnaHQoKS01MCYmKGUuYm90dG9tPSQod2luZG93KS5oZWlnaHQoKS0ocy5vZmZzZXQoKS50b3AtJCgiaHRtbCIpLnNjcm9sbFRvcCgpKSwwPGwmJihlLmJvdHRvbSs9NDgpLGUudG9wPSJ1bnNldCIpKSxhJiZlLnRvcDw0NCYmKGUudG9wPTQ0KSwkKHUuZWxlbWVudCkuY3NzKGUpKSksdS5zaXRlLm1vYmlsZVZpZXcmJigkKCIuY2FyZC1jbG9hayIpLnJlbW92ZUNsYXNzKCJoaWRkZW4iKSwoaT1zLm9mZnNldCgpKS50b3A9IjEwJSIsaS5sZWZ0PTAsJCh1LmVsZW1lbnQpLmNzcyhpKSksJCh1LmVsZW1lbnQpLnRvZ2dsZUNsYXNzKCJkb2NrZWQtY2FyZCIsYSksKDAsZC5uZXh0KShudWxsLGZ1bmN0aW9uKCl7dmFyIGU9dS5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImEiKTtlJiZlLmZvY3VzKCl9KSl9KSl9LF9oaWRlOmZ1bmN0aW9uKCl7dGhpcy52aXNpYmxlfHwoJCh0aGlzLmVsZW1lbnQpLmNzcyh7bGVmdDotOTk5OSx0b3A6LTk5OTl9KSx0aGlzLnNpdGUubW9iaWxlVmlldyYmJCgiLmNhcmQtY2xvYWsiKS5hZGRDbGFzcygiaGlkZGVuIikpfSxfY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3Zpc2libGU6ITEsdXNlcm5hbWU6bnVsbCxsb2FkaW5nOm51bGwsY2FyZFRhcmdldDpudWxsLHBvc3Q6bnVsbCxpc0ZpeGVkOiExLGlzRG9ja2VkOiExfSksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJnRoaXMuX3VuYmluZE1vYmlsZVNjcm9sbCgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5jbGlja091dHNpZGVFdmVudE5hbWUsdD10aGlzLmNsaWNrRGF0YUV4cGFuZCxuPXRoaXMuY2xpY2tNZW50aW9uLGk9dGhpcy5wcmV2aWV3Q2xpY2tFdmVudDskKCJodG1sIikub2ZmKGUpLCQoIiNtYWluIikub2ZmKHQpLm9mZihuKSx0aGlzLmFwcEV2ZW50cy5vZmYoaSx0aGlzLCJfcHJldmlld0NsaWNrIiksdGhpcy5hcHBFdmVudHMub2ZmKCJ0b3BpYy1oZWFkZXI6dHJpZ2dlci0iK3RoaXMuZWxlbWVudElkLHRoaXMsIl90b3BpY0hlYWRlclRyaWdnZXIiKX0sa2V5VXA6ZnVuY3Rpb24oZSl7dmFyIHQ7Mjc9PT1lLmtleUNvZGUmJih0PXRoaXMuY2FyZFRhcmdldCx0aGlzLl9jbG9zZSgpLHQuZm9jdXMoKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvY2xlYW5zLXVwIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5jcmVhdGUoe19pbml0aWFsaXplQ2hvb3NlcjooMCx0Lm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIsZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vbigiZG9tOmNsZWFuIix0aGlzLCJjbGVhblVwIil9KSxfY2xlYXJDaG9vc2VyOigwLHQub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiLGZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsImNsZWFuVXAiKX0pfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvZG9ja2luZyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGk9e29mZnNldDpmdW5jdGlvbigpe3ZhciBlPSQoIiNtYWluIikub2Zmc2V0KCksdD1lP2UudG9wOjA7cmV0dXJuKHdpbmRvdy5wYWdlWU9mZnNldHx8JCgiaHRtbCIpLnNjcm9sbFRvcCgpKS10fX07ZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe3F1ZXVlRG9ja0NoZWNrOm51bGwsaW5pdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucXVldWVEb2NrQ2hlY2s9ZnVuY3Rpb24oKXsoMCxuLmRlYm91bmNlKShlLGUuc2FmZURvY2tDaGVjayw1KX19LHNhZmVEb2NrQ2hlY2s6ZnVuY3Rpb24oKXt0aGlzLmlzRGVzdHJveWVkfHx0aGlzLmlzRGVzdHJveWluZ3x8dGhpcy5kb2NrQ2hlY2soaSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh3aW5kb3cpLmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtZG9jayIsdGhpcy5xdWV1ZURvY2tDaGVjayksJChkb2N1bWVudCkuYmluZCgidG91Y2htb3ZlLmRpc2NvdXJzZS1kb2NrIix0aGlzLnF1ZXVlRG9ja0NoZWNrKSx0aGlzLmRvY2tDaGVjayhpKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQod2luZG93KS51bmJpbmQoInNjcm9sbC5kaXNjb3Vyc2UtZG9jayIsdGhpcy5xdWV1ZURvY2tDaGVjayksJChkb2N1bWVudCkudW5iaW5kKCJ0b3VjaG1vdmUuZGlzY291cnNlLWRvY2siLHRoaXMucXVldWVEb2NrQ2hlY2spfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuY3JlYXRlKHtmaWx0ZXJNb2RlSW50ZXJuYWw6KDAsbi5jb21wdXRlZCkoInJhd0ZpbHRlck1vZGUiLCJmaWx0ZXJUeXBlIiwiY2F0ZWdvcnkiLCJub1N1YmNhdGVnb3JpZXMiLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yYXdGaWx0ZXJNb2RlO2lmKGUpcmV0dXJuIGU7dmFyIHQ9dGhpcy5jYXRlZ29yeSxuPXRoaXMuZmlsdGVyVHlwZTtpZih0KXt2YXIgaT10aGlzLm5vU3ViY2F0ZWdvcmllcztyZXR1cm4iYy8iK3MuZGVmYXVsdC5zbHVnRm9yKHQpKyhpPyIvbm9uZSI6IiIpKyIvbC8iK259cmV0dXJuIG59KSxmaWx0ZXJNb2RlOigwLG4uY29tcHV0ZWQpKCJmaWx0ZXJNb2RlSW50ZXJuYWwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXJNb2RlSW50ZXJuYWx9LHNldDpmdW5jdGlvbihlLHQpe3RoaXMuc2V0KCJyYXdGaWx0ZXJNb2RlIix0KTt2YXIgbj10LnNwbGl0KCIvIik7cmV0dXJuIDI8PW4ubGVuZ3RoJiYidG9wIj09PW5bbi5sZW5ndGgtMl0/dGhpcy5zZXQoImZpbHRlclR5cGUiLCJ0b3AiKTp0aGlzLnNldCgiZmlsdGVyVHlwZSIsbi5wb3AoKSksdH19KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2dyYW50LWJhZGdlLWNvbnRyb2xsZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4scyxpLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW8uZGVmYXVsdC5jcmVhdGUoKGE9KDAsdC5kZWZhdWx0KSgiYWxsQmFkZ2VzLltdIiwidXNlckJhZGdlcy5bXSIpLGw9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWRCYWRnZUlkIiwiZ3JhbnRhYmxlQmFkZ2VzIikscih1PXtncmFudGFibGVCYWRnZXM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10LnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3QuZ2V0KCJiYWRnZV9pZCIpXT0hMCxlfSx7fSk7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgiZW5hYmxlZCIpJiZlLmdldCgibWFudWFsbHlfZ3JhbnRhYmxlIikmJighbltlLmdldCgiaWQiKV18fGUuZ2V0KCJtdWx0aXBsZV9ncmFudCIpKX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImljb24iKSYmZS5zZXQoImljb24iLCgwLGkuY29udmVydEljb25DbGFzcykoZS5pY29uKSksZX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXQoIm5hbWUiKS5sb2NhbGVDb21wYXJlKHQuZ2V0KCJuYW1lIikpfSl9LG5vR3JhbnRhYmxlQmFkZ2VzOigwLG4uZW1wdHkpKCJncmFudGFibGVCYWRnZXMiKSxzZWxlY3RlZEJhZGdlR3JhbnRhYmxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUmJmUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImlkIik9PT10fSl9LGdyYW50QmFkZ2U6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXM7cmV0dXJuIHMuZGVmYXVsdC5ncmFudChlLHQsbikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gaS51c2VyQmFkZ2VzLnB1c2hPYmplY3QoZSksZX0sZnVuY3Rpb24oZSl7dGhyb3cgZX0pfX0sImdyYW50YWJsZUJhZGdlcyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiZ3JhbnRhYmxlQmFkZ2VzIiksdSkscih1LCJzZWxlY3RlZEJhZGdlR3JhbnRhYmxlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzZWxlY3RlZEJhZGdlR3JhbnRhYmxlIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2tleS1lbnRlci1lc2NhcGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17a2V5RG93bjpmdW5jdGlvbihlKXtyZXR1cm4gMjc9PT1lLndoaWNoPyh0aGlzLmNhbmNlbGxlZCgpLCExKToxMz09PWUud2hpY2gmJihlLmN0cmxLZXl8fGUubWV0YUtleXx8KDAsdC5pc2lQYWQpKCkmJmUuYWx0S2V5KT8odGhpcy5zYXZlKCksITEpOnZvaWQgMH19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL2xvYWQtbW9yZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9leWVsaW5lIiwiZGlzY291cnNlL21peGlucy9zY3JvbGxpbmciLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxuLHQsaSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuY3JlYXRlKHQuZGVmYXVsdCwocj0oMCxpLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGE9KDAsaS5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLG8obD17c2Nyb2xsZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmV5ZWxpbmU7cmV0dXJuIGUmJmUudXBkYXRlKCl9LGxvYWRNb3JlVW5sZXNzRnVsbDpmdW5jdGlvbigpe3RoaXMuc2NyZWVuTm90RnVsbCgpJiZ0aGlzLnNlbmQoImxvYWRNb3JlIil9LF9iaW5kRXllbGluZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1uZXcgbi5kZWZhdWx0KHRoaXMuZXllbGluZVNlbGVjdG9yKyI6bGFzdCIpO3RoaXMuc2V0KCJleWVsaW5lIix0KSx0Lm9uKCJzYXdCb3R0b20iLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgibG9hZE1vcmUiKX0pLHQudXBkYXRlKCksdGhpcy5iaW5kU2Nyb2xsaW5nKCl9LF9yZW1vdmVFeWVsaW5lOmZ1bmN0aW9uKCl7dGhpcy51bmJpbmRTY3JvbGxpbmcoKX19LCJfYmluZEV5ZWxpbmUiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9iaW5kRXllbGluZSIpLGwpLG8obCwiX3JlbW92ZUV5ZWxpbmUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9yZW1vdmVFeWVsaW5lIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL21vYmlsZS1zY3JvbGwtZGlyZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHIsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X2xhc3RTY3JvbGw6bnVsbCxfYm90dG9tSGl0OjAsY2FsY3VsYXRlRGlyZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXRoaXMsbz1NYXRoLmZsb29yKGUtdGhpcy5fbGFzdFNjcm9sbCk7bzw9NSYmLTU8PW98fDAhPT1lJiYodD10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbixuPTA8bz8iZG93biI6bnVsbCxpPU1hdGguZmxvb3IoJCgiYm9keSIpLmhlaWdodCgpLWUtJCh3aW5kb3cpLmhlaWdodCgpKSxlPDA/dGhpcy5zZXQoIm1vYmlsZVNjcm9sbERpcmVjdGlvbiIsbnVsbCk6biE9PXQmJjA8aSYmdGhpcy5zZXQoIm1vYmlsZVNjcm9sbERpcmVjdGlvbiIsbiksdGhpcy5fbGFzdFNjcm9sbD1NYXRoLmZsb29yKGUpLDA8aT90aGlzLl9ib3R0b21IaXQ9MDooKDAsci5kZWJvdW5jZSkoZnVuY3Rpb24oKXtzLl9ib3R0b21IaXQ9MX0sMWUzKSwxPT09dGhpcy5fYm90dG9tSGl0JiZ0aGlzLnNldCgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIixudWxsKSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSh7Zmxhc2g6ZnVuY3Rpb24oZSx0KXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbC1ib2R5OmZsYXNoIix7dGV4dDplLG1lc3NhZ2VDbGFzczp0fSl9LGNsZWFyRmxhc2g6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbC1ib2R5OmNsZWFyRmxhc2giKX0sc2hvd01vZGFsOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZGVmYXVsdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX0sYWN0aW9uczp7Y2xvc2VNb2RhbDpmdW5jdGlvbigpe3RoaXMubW9kYWwuc2VuZCgiY2xvc2VNb2RhbCIpLHRoaXMuc2V0KCJwYW5lbHMiLFtdKX0sb25TZWxlY3RQYW5lbDpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRQYW5lbCIsZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL25hbWUtdmFsaWRhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9taXhpbiIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoKHI9KDAsbi5kZWZhdWx0KSgpLGE9KDAsbi5kZWZhdWx0KSgiYWNjb3VudE5hbWUiKSxvKGw9e25hbWVJbnN0cnVjdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KHRoaXMuc2l0ZVNldHRpbmdzLmZ1bGxfbmFtZV9yZXF1aXJlZD8idXNlci5uYW1lLmluc3RydWN0aW9uc19yZXF1aXJlZCI6InVzZXIubmFtZS5pbnN0cnVjdGlvbnMiKX0sbmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuZnVsbF9uYW1lX3JlcXVpcmVkJiYoMCx0LmlzRW1wdHkpKHRoaXMuYWNjb3VudE5hbWUpP3MuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMH0pOnMuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwibmFtZUluc3RydWN0aW9ucyIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwibmFtZUluc3RydWN0aW9ucyIpLGwpLG8obCwibmFtZVZhbGlkYXRpb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm5hbWVWYWxpZGF0aW9uIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL29wZW4tY29tcG9zZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5jcmVhdGUoe29wZW5Db21wb3NlcjpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiY2F0ZWdvcnkuaWQiKTt0JiZlLmNhdGVnb3J5LmlzVW5jYXRlZ29yaXplZENhdGVnb3J5JiYhdGhpcy5zaXRlU2V0dGluZ3MuYWxsb3dfdW5jYXRlZ29yaXplZF90b3BpY3MmJih0PW51bGwpLHRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5vcGVuKHtjYXRlZ29yeUlkOnQsYWN0aW9uOm8uZGVmYXVsdC5DUkVBVEVfVE9QSUMsZHJhZnRLZXk6ZS5nZXQoIm1vZGVsLmRyYWZ0X2tleSIpfHxvLmRlZmF1bHQuTkVXX1RPUElDX0tFWSxkcmFmdFNlcXVlbmNlOmUuZ2V0KCJtb2RlbC5kcmFmdF9zZXF1ZW5jZSIpfHwwfSl9LG9wZW5Db21wb3NlcldpdGhUb3BpY1BhcmFtczpmdW5jdGlvbihlLHQsbixpLHMpe3RoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5vcGVuKHthY3Rpb246by5kZWZhdWx0LkNSRUFURV9UT1BJQyx0b3BpY1RpdGxlOnQsdG9waWNCb2R5Om4sdG9waWNDYXRlZ29yeUlkOmksdG9waWNUYWdzOnMsZHJhZnRLZXk6ZS5nZXQoIm1vZGVsLmRyYWZ0X2tleSIpfHxvLmRlZmF1bHQuTkVXX1RPUElDX0tFWSxkcmFmdFNlcXVlbmNlOmUuZ2V0KCJtb2RlbC5kcmFmdF9zZXF1ZW5jZSIpfSl9LG9wZW5Db21wb3NlcldpdGhNZXNzYWdlUGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7YWN0aW9uOm8uZGVmYXVsdC5QUklWQVRFX01FU1NBR0UscmVjaXBpZW50czplLHRvcGljVGl0bGU6dCx0b3BpY0JvZHk6bixhcmNoZXR5cGVJZDoicHJpdmF0ZV9tZXNzYWdlIixkcmFmdEtleTpvLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9wYW4tZXZlbnRzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTUlOSU1VTV9TV0lQRV9ESVNUQU5DRT1lLlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRD1lLlNXSVBFX0RJU1RBTkNFX1RIUkVTSE9MRD1lLlNXSVBFX1ZFTE9DSVRZPXZvaWQgMDtlLlNXSVBFX1ZFTE9DSVRZPTQwLGUuU1dJUEVfRElTVEFOQ0VfVEhSRVNIT0xEPTUwLGUuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEPS4xMixlLk1JTklNVU1fU1dJUEVfRElTVEFOQ0U9NTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmNyZWF0ZSh7X3BhblN0YXRlOm51bGwsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFkZFRvdWNoTGlzdGVuZXJzKCQodGhpcy5lbGVtZW50KSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbW92ZVRvdWNoTGlzdGVuZXJzKCQodGhpcy5lbGVtZW50KSl9LGFkZFRvdWNoTGlzdGVuZXJzOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUub24oInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvdWNoZXMmJm4uX3BhblN0YXJ0KGUudG91Y2hlc1swXSl9KS5vbigidG91Y2htb3ZlIixmdW5jdGlvbihlKXt2YXIgdD1lLnRvdWNoZXNbMF07dC50eXBlPSJwb2ludGVybW92ZSIsbi5fcGFuTW92ZSh0LGUpfSkub24oInRvdWNoZW5kIixmdW5jdGlvbihlKXtyZXR1cm4gbi5fcGFuTW92ZSh7dHlwZToicG9pbnRlcnVwIn0sZSl9KS5vbigidG91Y2hjYW5jZWwiLGZ1bmN0aW9uKGUpe3JldHVybiBuLl9wYW5Nb3ZlKHt0eXBlOiJwb2ludGVyY2FuY2VsIn0sZSl9KX0scmVtb3ZlVG91Y2hMaXN0ZW5lcnM6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUub2ZmKCJ0b3VjaHN0YXJ0Iikub2ZmKCJ0b3VjaG1vdmUiKS5vZmYoInRvdWNoZW5kIikub2ZmKCJ0b3VjaGNhbmNlbCIpfSxfY2FsY3VsYXRlRGlyZWN0aW9uOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5zdGFydHx8IWUuZGlyZWN0aW9uP01hdGguYWJzKHQpPk1hdGguYWJzKG4pPzA8dD8icmlnaHQiOiJsZWZ0IjowPG4/ImRvd24iOiJ1cCI6ZS5kaXJlY3Rpb259LF9jYWxjdWxhdGVOZXdQYW5TdGF0ZTpmdW5jdGlvbihlLHQpe2lmKCJwb2ludGVydXAiPT09dC50eXBlfHwicG9pbnRlcmNhbmNlbCI9PT10LnR5cGUpcmV0dXJuIGU7dmFyIG49KG5ldyBEYXRlKS5nZXRUaW1lKCksaT1uLWUudGltZXN0YW1wO2lmKDA9PWkpcmV0dXJuIGU7dmFyIHM9dC5jbGllbnRYLWUuc3RhcnRMb2NhdGlvbi54LG89dC5jbGllbnRZLWUuc3RhcnRMb2NhdGlvbi55LHI9TWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3cocywyKStNYXRoLnBvdyhvLDIpKSksYT10LmNsaWVudFgtZS5jZW50ZXIueCxsPXQuY2xpZW50WS1lLmNlbnRlci55LHU9YS9pLGM9bC9pLGQ9TWF0aC5zcXJ0KE1hdGgucG93KGEsMikrTWF0aC5wb3cobCwyKSkvaTtyZXR1cm57c3RhcnRMb2NhdGlvbjplLnN0YXJ0TG9jYXRpb24sY2VudGVyOnt4Ok1hdGgucm91bmQodC5jbGllbnRYKSx5Ok1hdGgucm91bmQodC5jbGllbnRZKX0sdmVsb2NpdHk6ZCx2ZWxvY2l0eVg6dSx2ZWxvY2l0eVk6YyxkZWx0YVg6cyxkZWx0YVk6byxkaXN0YW5jZTpyLHN0YXJ0OiExLHRpbWVzdGFtcDpuLGRpcmVjdGlvbjp0aGlzLl9jYWxjdWxhdGVEaXJlY3Rpb24oZSxzLG8pfX0sX3BhblN0YXJ0OmZ1bmN0aW9uKGUpe3ZhciB0PXtjZW50ZXI6e3g6TWF0aC5yb3VuZChlLmNsaWVudFgpLHk6TWF0aC5yb3VuZChlLmNsaWVudFkpfSxzdGFydExvY2F0aW9uOnt4OmUuY2xpZW50WCx5OmUuY2xpZW50WX0sdmVsb2NpdHk6MCx2ZWxvY2l0eVg6MCx2ZWxvY2l0eVk6MCxkZWx0YVg6MCxkZWx0YVk6MCxkaXN0YW5jZTowLHN0YXJ0OiEwLHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKSxkaXJlY3Rpb246bnVsbH07dGhpcy5zZXQoIl9wYW5TdGF0ZSIsdCl9LF9wYW5Nb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saTt0aGlzLl9wYW5TdGF0ZT8obj10aGlzLl9wYW5TdGF0ZSxpPXRoaXMuX2NhbGN1bGF0ZU5ld1BhblN0YXRlKG4sZSksbi5zdGFydCYmaS5kaXN0YW5jZTw1fHwodGhpcy5zZXQoIl9wYW5TdGF0ZSIsaSksaS5vcmlnaW5hbEV2ZW50PXQsbi5zdGFydCYmInBhblN0YXJ0ImluIHRoaXM/dGhpcy5wYW5TdGFydChpKTooInBvaW50ZXJ1cCI9PT1lLnR5cGV8fCJwb2ludGVyY2FuY2VsIj09PWUudHlwZSkmJiJwYW5FbmQiaW4gdGhpcz90aGlzLnBhbkVuZChpKToicG9pbnRlcm1vdmUiPT09ZS50eXBlJiYicGFuTW92ZSJpbiB0aGlzJiZ0aGlzLnBhbk1vdmUoaSkpKTp0aGlzLl9wYW5TdGFydChlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL21peGlucy9wYXNzd29yZC12YWxpZGF0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUscix0LG4sYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuY3JlYXRlKChzPSgwLHQuZGVmYXVsdCkoInBhc3N3b3JkTWluTGVuZ3RoIiksbz0oMCx0LmRlZmF1bHQpKCJpc0RldmVsb3BlciIsImFkbWluIiksbD0oMCx0LmRlZmF1bHQpKCJhY2NvdW50UGFzc3dvcmQiLCJwYXNzd29yZFJlcXVpcmVkIiwicmVqZWN0ZWRQYXNzd29yZHMuW10iLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50RW1haWwiLCJwYXNzd29yZE1pbkxlbmd0aCIpLGkodT17cmVqZWN0ZWRQYXNzd29yZHM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJyZWplY3RlZFBhc3N3b3JkcyIsW10pLHRoaXMuc2V0KCJyZWplY3RlZFBhc3N3b3Jkc01lc3NhZ2VzIixuZXcgTWFwKX0scGFzc3dvcmRJbnN0cnVjdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJ1c2VyLnBhc3N3b3JkLmluc3RydWN0aW9ucyIse2NvdW50OnRoaXMucGFzc3dvcmRNaW5MZW5ndGh9KX0scGFzc3dvcmRNaW5MZW5ndGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dD90aGlzLnNpdGVTZXR0aW5ncy5taW5fYWRtaW5fcGFzc3dvcmRfbGVuZ3RoOnRoaXMuc2l0ZVNldHRpbmdzLm1pbl9wYXNzd29yZF9sZW5ndGh9LHBhc3N3b3JkVmFsaWRhdGlvbjpmdW5jdGlvbihlLHQsbixpLHMsbyl7cmV0dXJuIHQ/bi5pbmNsdWRlcyhlKT9hLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnRoaXMucmVqZWN0ZWRQYXNzd29yZHNNZXNzYWdlcy5nZXQoZSl8fEkxOG4udCgidXNlci5wYXNzd29yZC5jb21tb24iKX0pOigwLHIuaXNFbXB0eSkoZSk/YS5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk6ZS5sZW5ndGg8bz9hLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOkkxOG4udCgidXNlci5wYXNzd29yZC50b29fc2hvcnQiKX0pOigwLHIuaXNFbXB0eSkoaSl8fGUhPT1pPygwLHIuaXNFbXB0eSkocyl8fGUhPT1zP2EuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIucGFzc3dvcmQub2siKX0pOmEuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnBhc3N3b3JkLnNhbWVfYXNfZW1haWwiKX0pOmEuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnBhc3N3b3JkLnNhbWVfYXNfdXNlcm5hbWUiKX0pOmEuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwicGFzc3dvcmRJbnN0cnVjdGlvbnMiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInBhc3N3b3JkSW5zdHJ1Y3Rpb25zIiksdSksaSh1LCJwYXNzd29yZE1pbkxlbmd0aCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGFzc3dvcmRNaW5MZW5ndGgiKSx1KSxpKHUsInBhc3N3b3JkVmFsaWRhdGlvbiIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGFzc3dvcmRWYWxpZGF0aW9uIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmNyZWF0ZSgoaT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5pc1NhdmluZyIpLG89cz17c2F2ZWQ6ITEsc2F2ZUJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInNhdmUiKX19LHI9InNhdmVCdXR0b25UZXh0IixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocywic2F2ZUJ1dHRvblRleHQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnNjcm9sbFRvcD12b2lkIDA7dmFyIHI9e19zY3JvbGxUb3A6ZnVuY3Rpb24oKXsidGVzdCIhPT1vLmRlZmF1bHQuZW52aXJvbm1lbnQmJiQoZG9jdW1lbnQpLnNjcm9sbFRvcCgwKX19O2Z1bmN0aW9uIGEoKXtuLmRlZmF1bHQuaXNKdW1wU2NoZWR1bGVkKCl8fCgwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHIsci5fc2Nyb2xsVG9wKX1lLmRlZmF1bHQ9cy5kZWZhdWx0LmNyZWF0ZSh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpeygwLGkuZGVwcmVjYXRlZCkoIlRoZSBgU2Nyb2xsVG9wYCBtaXhpbiBpcyBkZXByZWNhdGVkLiBSZXBsYWNlIGl0IHdpdGggYSBge3tkLXNlY3Rpb259fWAgY29tcG9uZW50IiksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEoKX19KSxlLnNjcm9sbFRvcD1hfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LXVybCIsIkBlbWJlci9vYmplY3QvZXZlbnRlZCIsIkBlbWJlci9vYmplY3QvbWl4aW4iXSxmdW5jdGlvbihlLGEsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5jcmVhdGUoe3VwbG9hZGluZzohMSx1cGxvYWRQcm9ncmVzczowLHVwbG9hZERvbmU6ZnVuY3Rpb24oKXtFbWJlci53YXJuKCJZb3Ugc2hvdWxkIGltcGxlbWVudCBgdXBsb2FkRG9uZWAiLHtpZDoiZGlzY291cnNlLnVwbG9hZC5taXNzaW5nLXVwbG9hZC1kb25lIn0pfSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LGNhbGN1bGF0ZVVwbG9hZFVybDpmdW5jdGlvbigpe3JldHVybigwLHQuZGVmYXVsdCkodGhpcy5nZXRXaXRoRGVmYXVsdCgidXBsb2FkVXJsIiwiL3VwbG9hZHMiKSkrIi5qc29uP2NsaWVudF9pZD0iKyh0aGlzLm1lc3NhZ2VCdXMmJnRoaXMubWVzc2FnZUJ1cy5jbGllbnRJZCkrdGhpcy51cGxvYWRVcmxQYXJhbXN9LHVwbG9hZFVybFBhcmFtczoiIix1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9pbml0aWFsaXplOigwLG4ub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gci5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRpbmc6ITEsdXBsb2FkUHJvZ3Jlc3M6MH0pfXZhciByPXRoaXMsZT0kKHRoaXMuZWxlbWVudCksbj10aGlzLmdldFdpdGhEZWZhdWx0KCJtYXhGaWxlcyIsdGhpcy5zaXRlU2V0dGluZ3Muc2ltdWx0YW5lb3VzX3VwbG9hZHMpO2Uub24oImZpbGV1cGxvYWRkb25lIixmdW5jdGlvbihlLHQpe3ZhciBuPXQucmVzdWx0O3IudXBsb2FkRG9uZShuKSxpKCl9KSxlLmZpbGV1cGxvYWQoXy5tZXJnZSh7dXJsOnRoaXMuY2FsY3VsYXRlVXBsb2FkVXJsKCksZGF0YVR5cGU6Impzb24iLHJlcGxhY2VGaWxlSW5wdXQ6ITEsZHJvcFpvbmU6ZSxwYXN0ZVpvbmU6ZX0sdGhpcy51cGxvYWRPcHRpb25zKCkpKSxlLm9uKCJmaWxldXBsb2FkZHJvcCIsZnVuY3Rpb24oZSx0KXtyZXR1cm4hKDA8biYmdC5maWxlcy5sZW5ndGg+bil8fChib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudG9vX21hbnlfZHJhZ2dlZF9hbmRfZHJvcHBlZF9maWxlcyIse21heDpufSkpLCExKX0pLGUub24oImZpbGV1cGxvYWRzdWJtaXQiLGZ1bmN0aW9uKGUsdCl7dmFyIG49Xy5tZXJnZSh7YnlwYXNzTmV3VXNlclJlc3RyaWN0aW9uOiEwLHVzZXI6ci5jdXJyZW50VXNlcn0sci52YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zKCkpLGk9KDAsYS52YWxpZGF0ZVVwbG9hZGVkRmlsZXMpKHQuZmlsZXMsbikscz1yLnR5cGUsbz1zP3t0eXBlOnN9Ont9O3JldHVybiByLmRhdGEmJihvPSQuZXh0ZW5kKG8sci5kYXRhKSksdC5mb3JtRGF0YT1vLHIuc2V0UHJvcGVydGllcyh7dXBsb2FkUHJvZ3Jlc3M6MCx1cGxvYWRpbmc6aX0pLGl9KSxlLm9uKCJmaWxldXBsb2FkcHJvZ3Jlc3NhbGwiLGZ1bmN0aW9uKGUsdCl7dmFyIG49cGFyc2VJbnQodC5sb2FkZWQvdC50b3RhbCoxMDAsMTApO3Iuc2V0KCJ1cGxvYWRQcm9ncmVzcyIsbil9KSxlLm9uKCJmaWxldXBsb2FkZmFpbCIsZnVuY3Rpb24oZSx0KXsoIXR8fHQmJiJhYm9ydCIhPT10LmVycm9yVGhyb3duKSYmKDAsYS5kaXNwbGF5RXJyb3JGb3JVcGxvYWQpKHQpLGkoKX0pfSksX2Rlc3Ryb3k6KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIsZnVuY3Rpb24oKXt0aGlzLm1lc3NhZ2VCdXMmJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3VwbG9hZHMvIit0aGlzLnR5cGUpO3ZhciBlPSQodGhpcy5lbGVtZW50KTt0cnl7ZS5maWxldXBsb2FkKCJkZXN0cm95Iil9Y2F0Y2goZSl7fWUub2ZmKCl9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VybC1yZWZyZXNoIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidXJsOnJlZnJlc2giLHRoaXMsInJlZnJlc2giKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigidXJsOnJlZnJlc2giLHRoaXMsInJlZnJlc2giKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvbWl4aW5zL3VzZXItZmllbGRzLXZhbGlkYXRpb24iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIl0sZnVuY3Rpb24oZSxuLHQsaSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuY3JlYXRlKChyPSgwLGkub24pKCJpbml0IiksYT0oMCxpLmRlZmF1bHQpKCJ1c2VyRmllbGRzLkBlYWNoLnZhbHVlIiksbyhsPXtfY3JlYXRlVXNlckZpZWxkczpmdW5jdGlvbigpe3ZhciBlO3RoaXMuc2l0ZSYmKGU9KGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKSkmJl8uc29ydEJ5KGUsInBvc2l0aW9uIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmRlZmF1bHQuY3JlYXRlKHt2YWx1ZTpudWxsLGZpZWxkOmV9KX0pLHRoaXMuc2V0KCJ1c2VyRmllbGRzIixlKSl9LHVzZXJGaWVsZHNWYWxpZGF0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9KGU9dGhpcy51c2VyRmllbGRzKSYmZS5maWx0ZXJCeSgiZmllbGQucmVxdWlyZWQiKTtpZighKDAsbi5pc0VtcHR5KShlKSYmZS5hbnkoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXQoInZhbHVlIik7cmV0dXJuIXR8fCgwLG4uaXNFbXB0eSkodCl9KSlyZXR1cm4gdC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk7cmV0dXJuIHQuZGVmYXVsdC5jcmVhdGUoe29rOiEwfSl9fSwiX2NyZWF0ZVVzZXJGaWVsZHMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jcmVhdGVVc2VyRmllbGRzIiksbCksbyhsLCJ1c2VyRmllbGRzVmFsaWRhdGlvbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXNlckZpZWxkc1ZhbGlkYXRpb24iKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L21peGluIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbix0LGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmNyZWF0ZSgodT0oMCxzLmRlZmF1bHQpKCJhY2NvdW50VXNlcm5hbWUiKSxjPSgwLHMuZGVmYXVsdCkoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsImJhc2ljVXNlcm5hbWVWYWxpZGF0aW9uIiksbChkPXt1bmlxdWVVc2VybmFtZVZhbGlkYXRpb246bnVsbCxtYXhVc2VybmFtZUxlbmd0aDooMCxpLnNldHRpbmcpKCJtYXhfdXNlcm5hbWVfbGVuZ3RoIiksbWluVXNlcm5hbWVMZW5ndGg6KDAsaS5zZXR0aW5nKSgibWluX3VzZXJuYW1lX2xlbmd0aCIpLGZldGNoRXhpc3RpbmdVc2VybmFtZTooMCx0LmRlZmF1bHQpKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpczthLmRlZmF1bHQuY2hlY2tVc2VybmFtZShudWxsLHRoaXMuYWNjb3VudEVtYWlsKS50aGVuKGZ1bmN0aW9uKGUpe2Uuc3VnZ2VzdGlvbiYmKCgwLG4uaXNFbXB0eSkodC5hY2NvdW50VXNlcm5hbWUpfHx0LmFjY291bnRVc2VybmFtZT09PXQuZ2V0KCJhdXRoT3B0aW9ucy51c2VybmFtZSIpKSYmdC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50VXNlcm5hbWU6ZS5zdWdnZXN0aW9uLHByZWZpbGxlZFVzZXJuYW1lOmUuc3VnZ2VzdGlvbn0pfSl9LDUwMCksYmFzaWNVc2VybmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0KCJ1bmlxdWVVc2VybmFtZVZhbGlkYXRpb24iLG51bGwpLGUmJmU9PT10aGlzLnByZWZpbGxlZFVzZXJuYW1lP3IuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUucHJlZmlsbGVkIil9KTooMCxuLmlzRW1wdHkpKGUpP3IuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMH0pOmUubGVuZ3RoPHRoaXMuc2l0ZVNldHRpbmdzLm1pbl91c2VybmFtZV9sZW5ndGg/ci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUudG9vX3Nob3J0Iil9KTplLmxlbmd0aD50aGlzLm1heFVzZXJuYW1lTGVuZ3RoP3IuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLnVzZXJuYW1lLnRvb19sb25nIil9KToodGhpcy5jaGVja1VzZXJuYW1lQXZhaWxhYmlsaXR5KCksci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUuY2hlY2tpbmciKX0pKX0sc2hvdWxkQ2hlY2tVc2VybmFtZUF2YWlsYWJpbGl0eTpmdW5jdGlvbigpe3JldHVybiEoMCxuLmlzRW1wdHkpKHRoaXMuYWNjb3VudFVzZXJuYW1lKSYmdGhpcy5hY2NvdW50VXNlcm5hbWUubGVuZ3RoPj10aGlzLm1pblVzZXJuYW1lTGVuZ3RofSxjaGVja1VzZXJuYW1lQXZhaWxhYmlsaXR5OigwLHQuZGVmYXVsdCkoZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuc2hvdWxkQ2hlY2tVc2VybmFtZUF2YWlsYWJpbGl0eSgpKXJldHVybiBhLmRlZmF1bHQuY2hlY2tVc2VybmFtZSh0aGlzLmFjY291bnRVc2VybmFtZSx0aGlzLmFjY291bnRFbWFpbCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoImlzRGV2ZWxvcGVyIiwhMSksZS5hdmFpbGFibGU/KGUuaXNfZGV2ZWxvcGVyJiZ0LnNldCgiaXNEZXZlbG9wZXIiLCEwKSx0LnNldCgidW5pcXVlVXNlcm5hbWVWYWxpZGF0aW9uIixyLmRlZmF1bHQuY3JlYXRlKHtvazohMCxyZWFzb246STE4bi50KCJ1c2VyLnVzZXJuYW1lLmF2YWlsYWJsZSIpfSkpKTplLnN1Z2dlc3Rpb24/dC5zZXQoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIudXNlcm5hbWUubm90X2F2YWlsYWJsZSIsZSl9KSk6dC5zZXQoInVuaXF1ZVVzZXJuYW1lVmFsaWRhdGlvbiIsci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjplLmVycm9ycz9lLmVycm9ycy5qb2luKCIgIik6STE4bi50KCJ1c2VyLnVzZXJuYW1lLm5vdF9hdmFpbGFibGVfbm9fc3VnZ2VzdGlvbiIpfSkpfSl9LDUwMCksdXNlcm5hbWVWYWxpZGF0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYXNpY1VzZXJuYW1lVmFsaWRhdGlvbix0PXRoaXMudW5pcXVlVXNlcm5hbWVWYWxpZGF0aW9uO3JldHVybiB0fHxlfX0sImJhc2ljVXNlcm5hbWVWYWxpZGF0aW9uIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJiYXNpY1VzZXJuYW1lVmFsaWRhdGlvbiIpLGQpLGwoZCwidXNlcm5hbWVWYWxpZGF0aW9uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ1c2VybmFtZVZhbGlkYXRpb24iKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9taXhpbnMvdmlld2luZy1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e3ZpZXdpbmdBY3Rpb25UeXBlOmZ1bmN0aW9uKGUpe3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgidXNlckFjdGlvblR5cGUiLGUpLHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLnNldCgidXNlckFjdGlvblR5cGUiLGUpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvaW52aXRlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi91cmwiLCJyc3ZwIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxvLHIsdCxhLGwsdSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjPW8uZGVmYXVsdC5leHRlbmQoe3Jlc2NpbmQ6ZnVuY3Rpb24oKXsoMCxyLmFqYXgpKCIvaW52aXRlcyIse3R5cGU6IkRFTEVURSIsZGF0YTp7ZW1haWw6dGhpcy5lbWFpbH19KSx0aGlzLnNldCgicmVzY2luZGVkIiwhMCl9LHJlaW52aXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCxyLmFqYXgpKCIvaW52aXRlcy9yZWludml0ZSIse3R5cGU6IlBPU1QiLGRhdGE6e2VtYWlsOnRoaXMuZW1haWx9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgicmVpbnZpdGVkIiwhMCl9KS5jYXRjaCh0LnBvcHVwQWpheEVycm9yKX19KTtjLnJlb3BlbkNsYXNzKHtjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUudXNlciYmKGUudXNlcj1uLmRlZmF1bHQuY3JlYXRlKGUudXNlcikpLGV9LGZpbmRJbnZpdGVkQnk6ZnVuY3Rpb24oZSx0LG4saSl7ZXx8bC5Qcm9taXNlLnJlc29sdmUoKTt2YXIgcz17fTtyZXR1cm4oMCx1LmlzTm9uZSkodCl8fChzLmZpbHRlcj10KSwoMCx1LmlzTm9uZSkobil8fChzLnNlYXJjaD1uKSxzLm9mZnNldD1pfHwwLCgwLHIuYWpheCkoKDAsYS51c2VyUGF0aCkoZS51c2VybmFtZV9sb3dlcisiL2ludml0ZWQuanNvbiIpLHtkYXRhOnN9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmludml0ZXM9ZS5pbnZpdGVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYy5jcmVhdGUoZSl9KSxvLmRlZmF1bHQuY3JlYXRlKGUpfSl9LGZpbmRJbnZpdGVkQ291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGwuUHJvbWlzZS5yZXNvbHZlKCksKDAsci5hamF4KSgoMCxhLnVzZXJQYXRoKShlLnVzZXJuYW1lX2xvd2VyKyIvaW52aXRlZF9jb3VudC5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG8uZGVmYXVsdC5jcmVhdGUoZS5jb3VudHMpfSl9LHJlaW52aXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsci5hamF4KSgiL2ludml0ZXMvcmVpbnZpdGUtYWxsIix7dHlwZToiUE9TVCJ9KX0scmVzY2luZEFsbDpmdW5jdGlvbigpe3JldHVybigwLHIuYWpheCkoIi9pbnZpdGVzL3Jlc2NpbmQtYWxsIix7dHlwZToiUE9TVCJ9KX19KSxlLmRlZmF1bHQ9Y30pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1uYXZpZ2F0aW9uIl0sZnVuY3Rpb24oZSxpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZERpc2NvdmVyeVF1ZXJ5UGFyYW09ZS5xdWVyeVBhcmFtcz12b2lkIDA7dmFyIG89ZS5xdWVyeVBhcmFtcz17b3JkZXI6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxhc2NlbmRpbmc6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxzdGF0dXM6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxzdGF0ZTp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LHNlYXJjaDp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LG1heF9wb3N0czp7cmVwbGFjZTohMCxyZWZyZXNoTW9kZWw6ITB9LHE6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSx0YWdzOntyZXBsYWNlOiEwfSxiZWZvcmU6e3JlcGxhY2U6ITAscmVmcmVzaE1vZGVsOiEwfSxidW1wZWRfYmVmb3JlOntyZXBsYWNlOiEwLHJlZnJlc2hNb2RlbDohMH19LG49e2Rpc2NvdmVyeVRvcGljczooMCx0LmluamVjdCkoImRpc2NvdmVyeS90b3BpY3MiKSxxdWVyeVBhcmFtczpPYmplY3Qua2V5cyhvKX07bi5xdWVyeVBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdPSgwLGkuYWxpYXMpKCJkaXNjb3ZlcnlUb3BpY3MuIitlKX0pO3ZhciByPXQuZGVmYXVsdC5leHRlbmQobik7ZS5hZGREaXNjb3ZlcnlRdWVyeVBhcmFtPWZ1bmN0aW9uKGUsdCl7b1tlXT10O3ZhciBuPXt9O25bZV09KDAsaS5hbGlhcykoImRpc2NvdmVyeVRvcGljcy4iK2UpLG4ucXVlcnlQYXJhbXM9T2JqZWN0LmtleXMobyksci5yZW9wZW4obiksdCYmdC5wZXJzaXN0ZWQmJnMuZGVmYXVsdC5yZW9wZW4oe3BlcnNpc3RlZFF1ZXJ5UGFyYW1zOm99KX07ZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocz0oMCx0LmRlZmF1bHQpKCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwiLCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwuZHJhZnQiKSxvPXtkaXNjb3Zlcnk6KDAsbi5pbmplY3QpKCksZGlzY292ZXJ5VG9waWNzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L3RvcGljcyIpLGRyYWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJkaXNjb3ZlcnlUb3BpY3MubW9kZWwuZHJhZnQiKX19LGE9byxsPSJkcmFmdCIsdT1bc10scj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImRyYWZ0IikpP3IudmFsdWU6dm9pZCAwLGM9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXBhbmVsIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVpbGRDYXRlZ29yeVBhbmVsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkuZXh0ZW5kKHthY3RpdmVUYWI6KDAsbi5lcXVhbCkoInNlbGVjdGVkVGFiIixlKSxjbGFzc05hbWVCaW5kaW5nczpbIjptb2RhbC10YWIiLCJhY3RpdmVUYWI6OmhpZGUiLCI6ZWRpdC1jYXRlZ29yeS10YWItIitlXX0sdHx8e30pfTt2YXIgaT10LmRlZmF1bHQuZXh0ZW5kKHt9KTtlLmRlZmF1bHQ9aX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2l0ZS1oZWFkZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9kb2NraW5nIiwiZGlzY291cnNlL21peGlucy9wYW4tZXZlbnRzIl0sZnVuY3Rpb24oZSx2LHQsbixpLHUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmhlYWRlckhlaWdodD15LGUuaGVhZGVyVG9wPV87dmFyIHIsYSxsLGMsZCxwLG09dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsdS5kZWZhdWx0LChzPSgwLG4ub2JzZXJ2ZXMpKCJjdXJyZW50VXNlci51bnJlYWRfbm90aWZpY2F0aW9ucyIsImN1cnJlbnRVc2VyLnVucmVhZF9wcml2YXRlX21lc3NhZ2VzIiwiY3VycmVudFVzZXIucmV2aWV3YWJsZV9jb3VudCIpLHI9bz17d2lkZ2V0OiJoZWFkZXIiLGRvY0F0Om51bGwsZG9ja2VkSGVhZGVyOm51bGwsX2FuaW1hdGU6ITEsX2lzUGFubmluZzohMSxfcGFuTWVudU9yaWdpbjoicmlnaHQiLF9wYW5NZW51T2Zmc2V0OjAsX3NjaGVkdWxlZE1vdmluZ0FuaW1hdGlvbjpudWxsLF9zY2hlZHVsZWRSZW1vdmVBbmltYXRlOm51bGwsX3RvcGljOm51bGwsbm90aWZpY2F0aW9uc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sX2FuaW1hdGVPcGVuaW5nOmZ1bmN0aW9uKGUpe2UuY3NzKHtyaWdodDoiIixsZWZ0OiIifSksdGhpcy5fcGFuTWVudU9mZnNldD0wfSxfYW5pbWF0ZUNsb3Npbmc6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXRoaXM7ZS5jc3ModCwtbiksdGhpcy5fYW5pbWF0ZT0hMCwoMCx2LnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7aS5ldmVudERpc3BhdGNoZWQoImRvbTpjbGVhbiIsImhlYWRlciIpLGkuX3Bhbk1lbnVPZmZzZXQ9MH0pfSxfaXNSVEw6ZnVuY3Rpb24oKXtyZXR1cm4icnRsIj09PSQoImh0bWwiKS5jc3MoImRpcmVjdGlvbiIpfSxfbGVmdE1lbnVDbGFzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1JUTCgpPyIudXNlci1tZW51IjoiLmhhbWJ1cmdlci1wYW5lbCJ9LF9sZWZ0TWVudUFjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc1JUTCgpPyJ0b2dnbGVVc2VyTWVudSI6InRvZ2dsZUhhbWJ1cmdlciJ9LF9yaWdodE1lbnVBY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faXNSVEwoKT8idG9nZ2xlSGFtYnVyZ2VyIjoidG9nZ2xlVXNlck1lbnUifSxfaGFuZGxlUGFuRG9uZTpmdW5jdGlvbihzLG8pe3ZhciByPXRoaXMsYT0kKHdpbmRvdykud2lkdGgoKSxlPSQoIi5tZW51LXBhbmVsIiksbD10aGlzLl9wYW5NZW51T3JpZ2luO3RoaXMuX3Nob3VsZE1lbnVDbG9zZShvLGwpP3MrPXUuU1dJUEVfVkVMT0NJVFk6cy09dS5TV0lQRV9WRUxPQ0lUWSxlLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9JCgiLmhlYWRlci1jbG9hayIpO24uY3NzKGwsLXMpLGkuY3NzKCJvcGFjaXR5IixNYXRoLm1pbiguNSwoMzAwLXMpLzYwMCkpLGE8cz9yLl9hbmltYXRlQ2xvc2luZyhuLGwsYSk6czw9MD9yLl9hbmltYXRlT3BlbmluZyhuKTpyLl9zY2hlZHVsZWRNb3ZpbmdBbmltYXRpb249d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLl9oYW5kbGVQYW5Eb25lKHMsbyl9KX0pfSxfc2hvdWxkTWVudUNsb3NlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuInJpZ2h0Ij09PXQ/ZS5kZWx0YVg+dS5TV0lQRV9ESVNUQU5DRV9USFJFU0hPTEQmJmUudmVsb2NpdHlYPi11LlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRHx8MDxlLnZlbG9jaXR5WDplLmRlbHRhWDwtdS5TV0lQRV9ESVNUQU5DRV9USFJFU0hPTEQmJmUudmVsb2NpdHlYPHUuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEfHxlLnZlbG9jaXR5WDwwfSxwYW5TdGFydDpmdW5jdGlvbihlKXt2YXIgdD1lLmNlbnRlcixuPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0LngsdC55KSk7IShuLmhhc0NsYXNzKCJwYW5lbC1ib2R5Iil8fG4uaGFzQ2xhc3MoImhlYWRlci1jbG9hayIpfHxuLnBhcmVudHMoIi5wYW5lbC1ib2R5IikubGVuZ3RoKXx8ImxlZnQiIT09ZS5kaXJlY3Rpb24mJiJyaWdodCIhPT1lLmRpcmVjdGlvbj90aGlzLl9pc1Bhbm5pbmc9ITE6KGUub3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2lzUGFubmluZz0hMCl9LHBhbkVuZDpmdW5jdGlvbihzKXt2YXIgbz10aGlzO3RoaXMuX2lzUGFubmluZyYmKHRoaXMuX2lzUGFubmluZz0hMSwkKCIubWVudS1wYW5lbCIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9bi5jc3MoInJpZ2h0Iik7ImxlZnQiPT09by5fcGFuTWVudU9yaWdpbiYmKGk9bi5jc3MoImxlZnQiKSksaT1NYXRoLmFicyhwYXJzZUludChpLDEwKSksby5faGFuZGxlUGFuRG9uZShpLHMpfSkpfSxwYW5Nb3ZlOmZ1bmN0aW9uKHIpe3ZhciBhPXRoaXM7dGhpcy5faXNQYW5uaW5nJiYkKCIubWVudS1wYW5lbCIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbixpLHM9JCh0KSxvPSQoIi5oZWFkZXItY2xvYWsiKTsicmlnaHQiPT09YS5fcGFuTWVudU9yaWdpbj8obj1NYXRoLm1pbigwLC1yLmRlbHRhWCthLl9wYW5NZW51T2Zmc2V0KSxzLmNzcygicmlnaHQiLG4pLG8uY3NzKCJvcGFjaXR5IixNYXRoLm1pbiguNSwoMzAwK24pLzYwMCkpKTooaT1NYXRoLm1pbigwLHIuZGVsdGFYK2EuX3Bhbk1lbnVPZmZzZXQpLHMuY3NzKCJsZWZ0IixpKSxvLmNzcygib3BhY2l0eSIsTWF0aC5taW4oLjUsKDMwMCtpKS82MDApKSl9KX0sZG9ja0NoZWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoImhlYWRlci5kLWhlYWRlciIpO2lmKG51bGw9PT10aGlzLmRvY0F0KXtpZighdHx8MSE9PXQubGVuZ3RoKXJldHVybjt0aGlzLmRvY0F0PXQub2Zmc2V0KCkudG9wfXZhciBuPSQoImJvZHkiKTtlLm9mZnNldCgpPj10aGlzLmRvY0F0P3RoaXMuZG9ja2VkSGVhZGVyfHwobi5hZGRDbGFzcygiZG9ja2VkIiksdGhpcy5kb2NrZWRIZWFkZXI9ITApOnRoaXMuZG9ja2VkSGVhZGVyJiYobi5yZW1vdmVDbGFzcygiZG9ja2VkIiksdGhpcy5kb2NrZWRIZWFkZXI9ITEpfSxzZXRUb3BpYzpmdW5jdGlvbihlKXt0aGlzLmV2ZW50RGlzcGF0Y2hlZCgiZG9tOmNsZWFuIiwiaGVhZGVyIiksdGhpcy5fdG9waWM9ZSx0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sd2lsbFJlbmRlcjpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpJiYkKCJib2R5IikuYWRkQ2xhc3MoInN0YWZmIil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKHdpbmRvdykub24oInJlc2l6ZS5kaXNjb3Vyc2UtbWVudS1wYW5lbCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5hZnRlclJlbmRlcigpfSksdGhpcy5hcHBFdmVudHMub24oImhlYWRlcjpzaG93LXRvcGljIix0aGlzLCJzZXRUb3BpYyIpLHRoaXMuYXBwRXZlbnRzLm9uKCJoZWFkZXI6aGlkZS10b3BpYyIsdGhpcywic2V0VG9waWMiKSx0aGlzLmRpc3BhdGNoKCJub3RpZmljYXRpb25zOmNoYW5nZWQiLCJ1c2VyLW5vdGlmaWNhdGlvbnMiKSx0aGlzLmRpc3BhdGNoKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIsImhlYWRlciIpLHRoaXMuZGlzcGF0Y2goInNlYXJjaC1hdXRvY29tcGxldGU6YWZ0ZXItY29tcGxldGUiLCJzZWFyY2gtdGVybSIpLHRoaXMuYXBwRXZlbnRzLm9uKCJkb206Y2xlYW4iLHRoaXMsIl9jbGVhbkRvbSIpfSxfY2xlYW5Eb206ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLm1lbnUtcGFuZWwiKSYmdGhpcy5ldmVudERpc3BhdGNoZWQoImRvbTpjbGVhbiIsImhlYWRlciIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiYm9keSIpLm9mZigia2V5ZG93bi5oZWFkZXIiKSwkKHdpbmRvdykub2ZmKCJyZXNpemUuZGlzY291cnNlLW1lbnUtcGFuZWwiKSx0aGlzLmFwcEV2ZW50cy5vZmYoImhlYWRlcjpzaG93LXRvcGljIix0aGlzLCJzZXRUb3BpYyIpLHRoaXMuYXBwRXZlbnRzLm9mZigiaGVhZGVyOmhpZGUtdG9waWMiLHRoaXMsInNldFRvcGljIiksdGhpcy5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsIl9jbGVhbkRvbSIpLCgwLHYuY2FuY2VsKSh0aGlzLl9zY2hlZHVsZWRSZW1vdmVBbmltYXRlKSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2NoZWR1bGVkTW92aW5nQW5pbWF0aW9uKX0sYnVpbGRBcmdzOmZ1bmN0aW9uKCl7cmV0dXJue3RvcGljOnRoaXMuX3RvcGljLGNhblNpZ25VcDp0aGlzLmNhblNpZ25VcH19LGFmdGVyUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGYsaCxlLGIsZz10aGlzLHQ9JCgiLm1lbnUtcGFuZWwiKTswIT09dC5sZW5ndGg/KGY9JCh3aW5kb3cpLGg9Zi53aWR0aCgpLGU9JCgiI21haW4tb3V0bGV0IC5jb250YWluZXIiKS53aWR0aCgpfHwxMTAwLGI9KGgtZSkvMjw1MD8ic2xpZGUtaW4iOiJkcm9wLWRvd24iLHQuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT0kKCIuaGVhZGVyLWNsb2FrIikscz1wYXJzZUludChuLmF0dHIoImRhdGEtbWF4LXdpZHRoIiksMTApfHwzMDA7aC1zPDUwJiYocz1oLTUwKSxnLl9wYW5NZW51T2Zmc2V0JiYoZy5fcGFuTWVudU9mZnNldD0tcyksbi5yZW1vdmVDbGFzcygiZHJvcC1kb3duIHNsaWRlLWluIikuYWRkQ2xhc3MoYiksIWcuX2FuaW1hdGUmJjA9PT1nLl9wYW5NZW51T2Zmc2V0fHwoaS5jc3MoIm9wYWNpdHkiLDApLGcuc2l0ZS5tb2JpbGVWaWV3JiYwPG4ucGFyZW50KGcuX2xlZnRNZW51Q2xhc3MoKSkubGVuZ3RoPyhnLl9wYW5NZW51T3JpZ2luPSJsZWZ0IixuLmNzcygibGVmdCIsLWgpKTooZy5fcGFuTWVudU9yaWdpbj0icmlnaHQiLG4uY3NzKCJyaWdodCIsLWgpKSk7dmFyIG89JCgiLnBhbmVsLWJvZHkiLG4pLHI9JCgiLnBhbmVsLWJvZHktY29udGVudHMiLG4pLmhlaWdodCgpKzIsYT1uLnByb3AoInN0eWxlIik7aWYoImRyb3AtZG93biI9PWIpe2lmKDA9PT0kKCJoZWFkZXIgdWwuaWNvbnMiKS5sZW5ndGgpcmV0dXJuOyIxMDAlIj09PWEudG9wJiYiYXV0byI9PT1hLmhlaWdodHx8bi5jc3Moe3RvcDoiMTAwJSIsaGVpZ2h0OiJhdXRvIn0pO3ZhciBsPWYuaGVpZ2h0KCksdT1uLm9mZnNldCgpLnRvcCxjPWYuc2Nyb2xsVG9wKCk7KGw8cisodS1jKSszMHx8Zy5zaXRlLm1vYmlsZVZpZXcpJiYocj1sLSh1LWMpLTMwKSxvLmhlaWdodCgpIT09ciYmby5oZWlnaHQociksJCgiYm9keSIpLmFkZENsYXNzKCJkcm9wLWRvd24tbW9kZSIpfWVsc2V7Zy5zaXRlLm1vYmlsZVZpZXcmJmkuc2hvdygpO3ZhciBkPShnLnNpdGUubW9iaWxlVmlldz9fOnkpKCkscD12b2lkIDAsbT0od2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCkpLTE2LHA9ZCtyPG0mJiFnLnNpdGUubW9iaWxlVmlldz9yKyJweCI6bS1kOyIxMDAlIiE9PW8ucHJvcCgic3R5bGUiKS5oZWlnaHQmJm8uaGVpZ2h0KCIxMDAlIiksYS50b3A9PT1kKyJweCImJmEuaGVpZ2h0PT09cHx8KG4uY3NzKHt0b3A6ZCsicHgiLGhlaWdodDpwfSksJCgiLmhlYWRlci1jbG9hayIpLmNzcyh7dG9wOmQrInB4In0pKSwkKCJib2R5IikucmVtb3ZlQ2xhc3MoImRyb3AtZG93bi1tb2RlIil9bi53aWR0aChzKSxnLl9hbmltYXRlJiYobi5hZGRDbGFzcygiYW5pbWF0ZSIpLGkuYWRkQ2xhc3MoImFuaW1hdGUiKSxnLl9zY2hlZHVsZWRSZW1vdmVBbmltYXRlPSgwLHYubGF0ZXIpKGZ1bmN0aW9uKCl7bi5yZW1vdmVDbGFzcygiYW5pbWF0ZSIpLGkucmVtb3ZlQ2xhc3MoImFuaW1hdGUiKX0sMjAwKSksbi5jc3Moe3JpZ2h0OiIiLGxlZnQ6IiJ9KSxpLmNzcygib3BhY2l0eSIsLjUpLGcuX2FuaW1hdGU9ITF9KSk6dGhpcy5zaXRlLm1vYmlsZVZpZXcmJih0aGlzLl9hbmltYXRlPSEwKX19LGE9Im5vdGlmaWNhdGlvbnNDaGFuZ2VkIixsPVtzXSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywibm90aWZpY2F0aW9uc0NoYW5nZWQiKSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHApLHA9bnVsbCksbykpO2Z1bmN0aW9uIHkoKXt2YXIgZT0kKCJoZWFkZXIuZC1oZWFkZXIiKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIDA7dmFyIHQ9ZS5vZmZzZXQoKSxuPXQ/dC50b3A6MDtyZXR1cm4gZS5vdXRlckhlaWdodCgpK24tJCh3aW5kb3cpLnNjcm9sbFRvcCgpfWZ1bmN0aW9uIF8oKXt2YXIgZT0kKCJoZWFkZXIuZC1oZWFkZXIiKS5vZmZzZXQoKTtyZXR1cm4oZT9lLnRvcDowKS0kKHdpbmRvdykuc2Nyb2xsVG9wKCl9ZS5kZWZhdWx0PW19KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2QtZWRpdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvY2F0ZWdvcnktaGFzaHRhZ3MiLCJkaXNjb3Vyc2UvbGliL2NhdGVnb3J5LXRhZy1zZWFyY2giLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtb3duZXIiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3RvLW1hcmtkb3duIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwicHJldHR5LXRleHQvZW1vamkvZGF0YSIsInByZXR0eS10ZXh0L2Vtb2ppIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwicnN2cCIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxhLHQsbixpLHMsbyxsLHIsdSxjLGIsZyxkLHAsbSxmLGgsdix5KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVG9vbGJhckNhbGxiYWNrPXosZS5vblRvb2xiYXJDcmVhdGU9ZnVuY3Rpb24oZSl7KDAsZC5kZWZhdWx0KSgiYG9uVG9vbGJhckNyZWF0ZWAgaXMgZGVwcmVjYXRlZCwgdXNlIHRoZSBwbHVnaW4gYXBpIGluc3RlYWQuIikseihlKX07dmFyIHcseCxrLFAsaj1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBUKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWZ1bmN0aW9uIEUoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1mdW5jdGlvbiBPKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1tlLGUubGVuZ3RoXTpPKGUodCkpfWZ1bmN0aW9uIFMoZSx0KXtyZXR1cm4gSTE4bi50KGUpPT09dD9udWxsOmV9ZnVuY3Rpb24gQyhlLHQpe3ZhciBuPWUubWF0Y2godCk7cmV0dXJuIG4mJm4ubGVuZ3RoJTJ9dmFyIE09MCxEPTEsST0yLEw9W10sQT0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZFKGUucHJvdG90eXBlLHQpLG4mJkUoZSxuKSxlfShOLFt7a2V5OiJhZGRCdXR0b24iLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdyb3Vwcy5maW5kQnkoImdyb3VwIixlLmdyb3VwKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgdG9vbGJhciBncm91cCAiK2UuZ3JvdXApO3ZhciBpPXtpZDplLmlkLGNsYXNzTmFtZTplLmNsYXNzTmFtZXx8ZS5pZCxsYWJlbDplLmxhYmVsLGljb246ZS5sYWJlbD9udWxsOmUuaWNvbnx8ZS5pZCxhY3Rpb246ZS5hY3Rpb258fGZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbnRleHQuc2VuZCgidG9vbGJhckJ1dHRvbiIsZSl9LHBlcmZvcm06ZS5wZXJmb3JtfHxmdW5jdGlvbigpe30sdHJpbUxlYWRpbmc6ZS50cmltTGVhZGluZyxwb3B1cE1lbnU6ZS5wb3B1cE1lbnV8fCExfTtlLnNlbmRBY3Rpb24mJihpLnNlbmRBY3Rpb249ZS5zZW5kQWN0aW9uKTt2YXIgcyxvLHIsYT1JMThuLnQoZS50aXRsZXx8ImNvbXBvc2VyLiIrZS5pZCsiX3RpdGxlIik7ZS5zaG9ydGN1dD8ocj0obz0ocz0vTWFjfGlQb2R8aVBob25lfGlQYWQvLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKSk/Ik1ldGEiOiJDdHJsIikrIisiK2Uuc2hvcnRjdXQscj1zP3IucmVwbGFjZSgiU2hpZnQiLCLih6ciKS5yZXBsYWNlKCJNZXRhIiwi4oyYIikucmVwbGFjZSgiQWx0Iiwi4oylIikucmVwbGFjZSgvXCsvZywiIik6ci5yZXBsYWNlKCJTaGlmdCIsSTE4bi50KCJzaG9ydGN1dF9tb2RpZmllcl9rZXkuc2hpZnQiKSkucmVwbGFjZSgiQ3RybCIsSTE4bi50KCJzaG9ydGN1dF9tb2RpZmllcl9rZXkuY3RybCIpKS5yZXBsYWNlKCJBbHQiLEkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmFsdCIpKSxpLnRpdGxlPWErIiAoIityKyIpIix0aGlzLnNob3J0Y3V0c1sobysiKyIrZS5zaG9ydGN1dCkudG9Mb3dlckNhc2UoKV09aSk6aS50aXRsZT1hLGUudW5zaGlmdD9uLmJ1dHRvbnMudW5zaGlmdChpKTpuLmJ1dHRvbnMucHVzaChpKX19XSksTik7ZnVuY3Rpb24gTihlKXt2YXIgaT10aGlzOyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLE4pO3ZhciB0PWUuc2l0ZVNldHRpbmdzO3RoaXMuc2hvcnRjdXRzPXt9LHRoaXMuY29udGV4dD1udWxsLHRoaXMuZ3JvdXBzPVt7Z3JvdXA6ImZvbnRTdHlsZXMiLGJ1dHRvbnM6W119LHtncm91cDoiaW5zZXJ0aW9ucyIsYnV0dG9uczpbXX0se2dyb3VwOiJleHRyYXMiLGJ1dHRvbnM6W119XSx0aGlzLmFkZEJ1dHRvbih7dHJpbUxlYWRpbmc6ITAsaWQ6ImJvbGQiLGdyb3VwOiJmb250U3R5bGVzIixpY29uOiJib2xkIixsYWJlbDpTKCJjb21wb3Nlci5ib2xkX2xhYmVsIiwiQiIpLHNob3J0Y3V0OiJCIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5U3Vycm91bmQoIioqIiwiKioiLCJib2xkX3RleHQiKX19KSx0aGlzLmFkZEJ1dHRvbih7dHJpbUxlYWRpbmc6ITAsaWQ6Iml0YWxpYyIsZ3JvdXA6ImZvbnRTdHlsZXMiLGljb246Iml0YWxpYyIsbGFiZWw6UygiY29tcG9zZXIuaXRhbGljX2xhYmVsIiwiSSIpLHNob3J0Y3V0OiJJIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5U3Vycm91bmQoIioiLCIqIiwiaXRhbGljX3RleHQiKX19KSxlLnNob3dMaW5rJiZ0aGlzLmFkZEJ1dHRvbih7aWQ6ImxpbmsiLGdyb3VwOiJpbnNlcnRpb25zIixzaG9ydGN1dDoiSyIsdHJpbUxlYWRpbmc6ITAsc2VuZEFjdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gaS5jb250ZXh0LnNlbmQoInNob3dMaW5rTW9kYWwiLGUpfX0pLHRoaXMuYWRkQnV0dG9uKHtpZDoicXVvdGUiLGdyb3VwOiJpbnNlcnRpb25zIixpY29uOiJxdW90ZS1yaWdodCIsc2hvcnRjdXQ6IlNoaWZ0KzkiLHBlcmZvcm06ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHlMaXN0KCI+ICIsImJsb2NrcXVvdGVfdGV4dCIse2FwcGx5RW1wdHlMaW5lczohMCxtdWx0aWxpbmU6ITB9KX19KSx0aGlzLmFkZEJ1dHRvbih7aWQ6ImNvZGUiLGdyb3VwOiJpbnNlcnRpb25zIixzaG9ydGN1dDoiU2hpZnQrQyIsYWN0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gaS5jb250ZXh0LnNlbmQoImZvcm1hdENvZGUiLHQpfX0pLHRoaXMuYWRkQnV0dG9uKHtpZDoiYnVsbGV0Iixncm91cDoiZXh0cmFzIixpY29uOiJsaXN0LXVsIixzaG9ydGN1dDoiU2hpZnQrOCIsdGl0bGU6ImNvbXBvc2VyLnVsaXN0X3RpdGxlIixwZXJmb3JtOmZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGx5TGlzdCgiKiAiLCJsaXN0X2l0ZW0iKX19KSx0aGlzLmFkZEJ1dHRvbih7aWQ6Imxpc3QiLGdyb3VwOiJleHRyYXMiLGljb246Imxpc3Qtb2wiLHNob3J0Y3V0OiJTaGlmdCs3Iix0aXRsZToiY29tcG9zZXIub2xpc3RfdGl0bGUiLHBlcmZvcm06ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYXBwbHlMaXN0KGZ1bmN0aW9uKGUpe3JldHVybiBlP3BhcnNlSW50KGUsMTApKzErIi4gIjoiMS4gIn0sImxpc3RfaXRlbSIpfX0pLHQuc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbiYmdGhpcy5hZGRCdXR0b24oe2lkOiJ0b2dnbGUtZGlyZWN0aW9uIixncm91cDoiZXh0cmFzIixpY29uOiJleGNoYW5nZS1hbHQiLHNob3J0Y3V0OiJTaGlmdCs2Iix0aXRsZToiY29tcG9zZXIudG9nZ2xlX2RpcmVjdGlvbiIscGVyZm9ybTpmdW5jdGlvbihlKXtyZXR1cm4gZS50b2dnbGVEaXJlY3Rpb24oKX19KSx0aGlzLmdyb3Vwc1t0aGlzLmdyb3Vwcy5sZW5ndGgtMV0ubGFzdEdyb3VwPSEwfWZ1bmN0aW9uIHooZSl7TC5wdXNoKGUpfWUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCh3PSgwLGkuZGVmYXVsdCkoInBsYWNlaG9sZGVyIikseD0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50Iiksaz0oMCxpLm9ic2VydmVzKSgicmVhZHkiLCJ2YWx1ZSIpLFQoUD17Y2xhc3NOYW1lczpbImQtZWRpdG9yIl0scmVhZHk6ITEsbGFzdFNlbDpudWxsLF9tb3VzZVRyYXA6bnVsbCxzaG93TGluazohMCxlbW9qaVBpY2tlcklzQWN0aXZlOiExLGVtb2ppU3RvcmU6KDAsdC5pbmplY3QpKCJlbW9qaS1zdG9yZSIpLHBsYWNlaG9sZGVyVHJhbnNsYXRlZDpmdW5jdGlvbihlKXtyZXR1cm4gZT9JMThuLnQoZSk6bnVsbH0sX3JlYWR5Tm93OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInJlYWR5IiwhMCksdGhpcy5hdXRvZm9jdXMmJnRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYSIpLmZvY3VzKCl9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZWdpc3Rlcj0oMCxyLmdldFJlZ2lzdGVyKSh0aGlzKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKTt0aGlzLl9hcHBseUVtb2ppQXV0b2NvbXBsZXRlKGUpLHRoaXMuX2FwcGx5Q2F0ZWdvcnlIYXNodGFnQXV0b2NvbXBsZXRlKGUpLCgwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fcmVhZHlOb3cpO3ZhciBpPU1vdXNldHJhcCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmQtZWRpdG9yLWlucHV0IikpLHM9dGhpcy5nZXQoInRvb2xiYXIuc2hvcnRjdXRzIik7T2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1zW2VdO2kuYmluZChlLGZ1bmN0aW9uKCl7cmV0dXJuIHQuYWN0aW9uKHQpLCExfSl9KSwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItcHJldmlldyIpKS5vbigiY2xpY2sucHJldmlldyIsZnVuY3Rpb24oZSl7aWYoISgwLHAud2FudHNOZXdXaW5kb3cpKGUpKXt2YXIgdD0kKGUudGFyZ2V0KTtyZXR1cm4gdC5pcygiYS5tZW50aW9uIikmJm4uYXBwRXZlbnRzLnRyaWdnZXIoImNsaWNrLmRpc2NvdXJzZS1wcmV2aWV3LXVzZXItY2FyZC1tZW50aW9uIix0KSx0LmlzKCJhLm1lbnRpb24tZ3JvdXAiKSYmbi5hcHBFdmVudHMudHJpZ2dlcigiY2xpY2suZGlzY291cnNlLXByZXZpZXctZ3JvdXAtY2FyZC1tZW50aW9uLWdyb3VwIix0KSx0LmlzKCJhIik/KGUucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZCAwfX0pLHRoaXMuY29tcG9zZXJFdmVudHMmJih0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIix0aGlzLCJfaW5zZXJ0QmxvY2siKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLHRoaXMsIl9pbnNlcnRUZXh0IiksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsdGhpcywiX3JlcGxhY2VUZXh0IikpLHRoaXMuX21vdXNlVHJhcD1pfSxfaW5zZXJ0QmxvY2s6ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQmxvY2sodGhpcy5fZ2V0U2VsZWN0ZWQoKSxlKX0sX2luc2VydFRleHQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl9hZGRUZXh0KHRoaXMuX2dldFNlbGVjdGVkKCksZSx0KX0sX3NodXREb3duOmZ1bmN0aW9uKCl7dGhpcy5jb21wb3NlckV2ZW50cyYmKHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIix0aGlzLCJfaW5zZXJ0QmxvY2siKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOmluc2VydC10ZXh0Iix0aGlzLCJfaW5zZXJ0VGV4dCIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6cmVwbGFjZS10ZXh0Iix0aGlzLCJfcmVwbGFjZVRleHQiKSk7dmFyIHQ9dGhpcy5fbW91c2VUcmFwO09iamVjdC5rZXlzKHRoaXMuZ2V0KCJ0b29sYmFyLnNob3J0Y3V0cyIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnVuYmluZChlKX0pLCQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1wcmV2aWV3IikpLm9mZigiY2xpY2sucHJldmlldyIpfSx0b29sYmFyOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEEodGhpcy5nZXRQcm9wZXJ0aWVzKCJzaXRlIiwic2l0ZVNldHRpbmdzIiwic2hvd0xpbmsiKSk7cmV0dXJuIHQuY29udGV4dD10aGlzLEwuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pLHRoaXMuZXh0cmFCdXR0b25zJiZ0aGlzLmV4dHJhQnV0dG9ucyh0KSx0fSxfdXBkYXRlUHJldmlldzpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzOyJpbkRPTSI9PT10aGlzLl9zdGF0ZSYmKGU9dGhpcy52YWx1ZSx0PXRoaXMubWFya2Rvd25PcHRpb25zfHx7fSwoMCxsLmNvb2tBc3luYykoZSx0KS50aGVuKGZ1bmN0aW9uKGUpe24uaXNEZXN0cm95ZWR8fChuLnNldCgicHJldmlldyIsZSksKDAsYS5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZTsiaW5ET00iIT09bi5fc3RhdGV8fDAhPT0oZT0kKG4uZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItcHJldmlldyIpKSkubGVuZ3RoJiZuLnByZXZpZXdVcGRhdGVkJiZuLnByZXZpZXdVcGRhdGVkKGUpfSkpfSkpfSxfd2F0Y2hGb3JDaGFuZ2VzOmZ1bmN0aW9uKCl7dGhpcy5yZWFkeSYmKCJ0ZXN0Ij09PXkuZGVmYXVsdC5lbnZpcm9ubWVudD90aGlzLl91cGRhdGVQcmV2aWV3KCk6KDAsYS5kZWJvdW5jZSkodGhpcyx0aGlzLl91cGRhdGVQcmV2aWV3LDMwKSl9LF9hcHBseUNhdGVnb3J5SGFzaHRhZ0F1dG9jb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnNpdGVTZXR0aW5nczskKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSkuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx1LmZpbmRSYXdUZW1wbGF0ZSkoImNhdGVnb3J5LXRhZy1hdXRvY29tcGxldGUiKSxrZXk6IiMiLGFmdGVyQ29tcGxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fZm9jdXNUZXh0QXJlYSgpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0fSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLm1hdGNoKC9ccy8pP251bGw6KDAsby5zZWFyY2gpKGUsdCl9LHRyaWdnZXJSdWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAscy5jYXRlZ29yeUhhc2h0YWdUcmlnZ2VyUnVsZSkoZSx0KX19KX0sX2FwcGx5RW1vamlBdXRvY29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHI9dGhpczt0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfZW1vamkmJmUuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx1LmZpbmRSYXdUZW1wbGF0ZSkoImVtb2ppLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSIpLGtleToiOiIsYWZ0ZXJDb21wbGV0ZTpmdW5jdGlvbihlKXtyLnNldCgidmFsdWUiLGUpLHIuX2ZvY3VzVGV4dEFyZWEoKX0sb25LZXlVcDpmdW5jdGlvbihlLHQpe2lmKCgwLGIuaW5Db2RlQmxvY2spKGUsdCkpcmV0dXJuITE7dmFyIG49Lyg/Ol58W15hLXpdKSg6KD8hOikuP1tcdy1dKjo/KD8hOikoPzp0XGQ/KT86PykgPyQvZ2kuZXhlYyhlLnN1YnN0cmluZygwLHQpKTtyZXR1cm4gbiYmblsxXT9bblsxXV06dm9pZCAwfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2RlPyhyLmVtb2ppU3RvcmUudHJhY2sodC5jb2RlKSx0LmNvZGUrIjoiKTooZS5hdXRvY29tcGxldGUoe2NhbmNlbDohMH0pLHIuc2V0UHJvcGVydGllcyh7aXNFZGl0b3JGb2N1c2VkOiQoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0IikuaXMoIjpmb2N1cyIpLGVtb2ppUGlja2VySXNBY3RpdmU6ITB9KSwoMCxhLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmVtb2ppLXBpY2tlciBpbnB1dFtuYW1lPSdmaWx0ZXInXSIpO2UmJihlLnZhbHVlPXQudGVybSwoMCxhLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBlLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKX0sNTApKX0pLCIiKX0sZGF0YVNvdXJjZTpmdW5jdGlvbihvKXtyZXR1cm4gbmV3IHYuUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD0iOiIrbztpZigobz1vLnRvTG93ZXJDYXNlKCkpLmxlbmd0aDxyLnNpdGVTZXR0aW5ncy5lbW9qaV9hdXRvY29tcGxldGVfbWluX2NoYXJzKXJldHVybiBlKFtdKTtpZigiIj09PW8pcmV0dXJuIHIuZW1vamlTdG9yZS5mYXZvcml0ZXMubGVuZ3RoP2Uoci5lbW9qaVN0b3JlLmZhdm9yaXRlcy5zbGljZSgwLDUpKTplKFsic2xpZ2h0X3NtaWxlIiwic21pbGUiLCJ3aW5rIiwic3VubnkiLCJibHVzaCJdKTtpZihtLnRyYW5zbGF0aW9uc1t0XSlyZXR1cm4gZShbbS50cmFuc2xhdGlvbnNbdF1dKTt2YXIgbj1vLm1hdGNoKC9eOj8oLio/KTp0KFsyLTZdKT8kLyk7aWYobil7dmFyIGk9blsxXSxzPW5bMl07aWYoKDAsZi5pc1NraW5Ub25hYmxlRW1vamkpKGkpKXJldHVybiBlKHM/W2krIjp0IitzXTpbMiwzLDQsNSw2XS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkrIjp0IitlfSkpfXJldHVybiBlKCgwLGYuZW1vamlTZWFyY2gpKG8se21heFJlc3VsdHM6NX0pKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGgmJmUucHVzaCh7bGFiZWw6STE4bi50KCJjb21wb3Nlci5tb3JlX2Vtb2ppIiksdGVybTpvfSksZX0pfSx0cmlnZ2VyUnVsZTpmdW5jdGlvbihlKXtyZXR1cm4hKDAsYi5pbkNvZGVCbG9jaykoZS52YWx1ZSwoMCxiLmNhcmV0UG9zaXRpb24pKGUpKX19KX0sX2dldFNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeSl7Zm9yKHZhciBuPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLGk9bi52YWx1ZSxzPW4uc2VsZWN0aW9uU3RhcnQsbz1uLnNlbGVjdGlvbkVuZDtzPG8mJi9ccy8udGVzdChpLmNoYXJBdChvLTEpKTspby0tO2lmKGUpZm9yKDtzPG8mJi9ccy8udGVzdChpLmNoYXJBdChzKSk7KXMrKzt2YXIgcj1pLnN1YnN0cmluZyhzLG8pLGE9aS5zbGljZSgwLHMpLGw9aS5zbGljZShvKTtyZXR1cm4gdCYmdC5saW5lVmFsP3tzdGFydDpzLGVuZDpvLHZhbHVlOnIscHJlOmEscG9zdDpsLGxpbmVWYWw6aS5zcGxpdCgiXG4iKVtpLnN1YnN0cigwLG4uc2VsZWN0aW9uU3RhcnQpLnNwbGl0KCJcbiIpLmxlbmd0aC0xXX06e3N0YXJ0OnMsZW5kOm8sdmFsdWU6cixwcmU6YSxwb3N0Omx9fX0sX3NlbGVjdFRleHQ6ZnVuY3Rpb24oaSxzKXt2YXIgbz10aGlzOygwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9by5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0IiksdD0kKGUpLG49dC5zY3JvbGxUb3AoKTtvLmNhcGFiaWxpdGllcy5pc0lPUyYmISgwLGIuc2FmYXJpSGFja3NEaXNhYmxlZCkoKXx8dC5mb2N1cygpLGUuc2VsZWN0aW9uU3RhcnQ9aSxlLnNlbGVjdGlvbkVuZD1pK3MsKDAsYS5uZXh0KShmdW5jdGlvbigpe3JldHVybiB0LnRyaWdnZXIoImNoYW5nZSIpfSksdC5zY3JvbGxUb3Aobil9KX0sX2dldE11bHRpbGluZUNvbnRlbnRzOmZ1bmN0aW9uKGUsYyxkLHAsbSxmLHQpe3ZhciBoPU0sYj10JiZ0LmFwcGx5RW1wdHlMaW5lcztyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7aWYoIWImJjA9PT1lLmxlbmd0aClyZXR1cm4gZTtpZihoIT09SSYmKGUuc2xpY2UoMCxwKT09PWQmJjA9PT1mfHxtLmxlbmd0aCYmZS5zbGljZSgtZik9PT1tKSl7aWYoaD1ELDA9PT1mKXt2YXIgdD1lLnNsaWNlKHApLG49TyhjLGQpLGk9aihuLDIpO3JldHVybiBkPWlbMF0scD1pWzFdLHR9aWYoZS5zbGljZSgtZik9PT1tKXt2YXIgcz1lLnNsaWNlKHAsLWYpLG89TyhjLGQpLHI9aihvLDIpO3JldHVybiBkPXJbMF0scD1yWzFdLHN9fWVsc2UgaWYoaD09PU0paD1JO2Vsc2UgaWYoaD09PUQpcmV0dXJuIGU7dmFyIGE9IiIrZCtlK20sbD1PKGMsZCksdT1qKGwsMik7cmV0dXJuIGQ9dVswXSxwPXVbMV0sYX0pLmpvaW4oIlxuIil9LF9hcHBseVN1cnJvdW5kOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG8scixhLGwsdSxjLGQscCxtLGYsaD1lLnByZSxiPWUucG9zdCxnPW4ubGVuZ3RoO2lmKGUuc3RhcnQ9PT1lLmVuZCl7aWYoMD09PWcpcmV0dXJuO3ZhciB2PU8odCkseT1qKHYsMiksXz15WzBdLHc9eVsxXSx4PUkxOG4udCgiY29tcG9zZXIuIitpKTt0aGlzLnNldCgidmFsdWUiLCIiK2grXyt4K24rYiksdGhpcy5fc2VsZWN0VGV4dChoLmxlbmd0aCt3LHgubGVuZ3RoKX1lbHNle3MmJiFzLm11bHRpbGluZT8obz1PKHQpLGE9KHI9aihvLDIpKVswXSxsPXJbMV0scy51c2VCbG9ja01vZGUmJjE8ZS52YWx1ZS5zcGxpdCgiXG4iKS5sZW5ndGgmJihhKz0iXG4iLGwrPTEsbj0iXG4iK24pLGguc2xpY2UoLWwpPT09YSYmYi5zbGljZSgwLG4ubGVuZ3RoKT09PW4/KHRoaXMuc2V0KCJ2YWx1ZSIsIiIraC5zbGljZSgwLC1sKStlLnZhbHVlK2Iuc2xpY2Uobi5sZW5ndGgpKSx0aGlzLl9zZWxlY3RUZXh0KGUuc3RhcnQtbCxlLnZhbHVlLmxlbmd0aCkpOih0aGlzLnNldCgidmFsdWUiLCIiK2grYStlLnZhbHVlK24rYiksdGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0K2wsZS52YWx1ZS5sZW5ndGgpKSk6KHU9ZS52YWx1ZS5zcGxpdCgiXG4iKSxjPU8odCkscD0oZD1qKGMsMikpWzBdLG09ZFsxXSwxPT09dS5sZW5ndGgmJmguc2xpY2UoLWcpPT09biYmYi5zbGljZSgwLG0pPT09cD8odGhpcy5zZXQoInZhbHVlIiwiIitoLnNsaWNlKDAsLW0pK2UudmFsdWUrYi5zbGljZShnKSksdGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0LW0sZS52YWx1ZS5sZW5ndGgpKTooZj10aGlzLl9nZXRNdWx0aWxpbmVDb250ZW50cyh1LHQscCxtLG4sZyxzKSx0aGlzLnNldCgidmFsdWUiLCIiK2grZitiKSwxPT09dS5sZW5ndGgmJjA8Zz90aGlzLl9zZWxlY3RUZXh0KGUuc3RhcnQrbSxlLnZhbHVlLmxlbmd0aCk6dGhpcy5fc2VsZWN0VGV4dChlLnN0YXJ0LGYubGVuZ3RoKSkpfX0sX2FwcGx5TGlzdDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7LTEhPT1lLnZhbHVlLmluZGV4T2YoIlxuIik/dGhpcy5fYXBwbHlTdXJyb3VuZChlLHQsIiIsbixpKToocz1PKHQpLHI9KG89aihzLDIpKVswXSxhPW9bMV0sZS5zdGFydD09PWUuZW5kJiYoZS52YWx1ZT1JMThuLnQoImNvbXBvc2VyLiIrbikpLGw9ZS5wcmUudHJpbSgpLHU9MD09PWUudmFsdWUuaW5kZXhPZihyKT9lLnZhbHVlLnNsaWNlKGEpOiIiK3IrZS52YWx1ZSxjPWwubGVuZ3RoP2wrIlxuXG4iOiIiLHA9KGQ9ZS5wb3N0LnRyaW0oKSkubGVuZ3RoPyJcblxuIitkOmQsdGhpcy5zZXQoInZhbHVlIixjK3UrcCksdGhpcy5fc2VsZWN0VGV4dChjLmxlbmd0aCx1Lmxlbmd0aCkpfSxfcmVwbGFjZVRleHQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbyxyLGE9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1uP246e30sbD10aGlzLnZhbHVlLHU9bC5pbmRleE9mKGUpOy0xIT09dSYmKGk9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0Iikscz0oMCxiLmRldGVybWluZVBvc3RSZXBsYWNlU2VsZWN0aW9uKSh7c2VsZWN0aW9uOntzdGFydDppLnNlbGVjdGlvblN0YXJ0LGVuZDppLnNlbGVjdGlvbkVuZH0sbmVlZGxlOntzdGFydDp1LGVuZDp1K2UubGVuZ3RofSxyZXBsYWNlbWVudDp7c3RhcnQ6dSxlbmQ6dSt0Lmxlbmd0aH19KSxhLmluZGV4JiZhLnJlZ2V4PyhvPS0xLHI9bC5yZXBsYWNlKGEucmVnZXgsZnVuY3Rpb24oZSl7cmV0dXJuKytvPT09YS5pbmRleD90OmV9KSx0aGlzLnNldCgidmFsdWUiLHIpKTp0aGlzLnNldCgidmFsdWUiLGwucmVwbGFjZShlLHQpKSwoYS5mb3JjZUZvY3VzfHwkKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpLmlzKCI6Zm9jdXMiKSkmJnRoaXMuX3NlbGVjdFRleHQocy5zdGFydCxzLmVuZC1zLnN0YXJ0KSl9LF9hZGRCbG9jazpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvOzAhPT0odD0odHx8IiIpLnRyaW0oKSkubGVuZ3RoJiYobj1lLnByZSxpPWUudmFsdWUrZS5wb3N0LDA8bi5sZW5ndGgmJihuPW4ucmVwbGFjZSgvXG4qJC8sIlxuXG4iKSkscz1uK3QrKGk9MDxpLmxlbmd0aD9pLnJlcGxhY2UoL15cbiovLCJcblxuIik6IlxuIiksbz0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpKSx0aGlzLnNldCgidmFsdWUiLHMpLG8udmFsKHMpLG8ucHJvcCgic2VsZWN0aW9uU3RhcnQiLChuK3QpLmxlbmd0aCsyKSxvLnByb3AoInNlbGVjdGlvbkVuZCIsKG4rdCkubGVuZ3RoKzIpLHRoaXMuX2ZvY3VzVGV4dEFyZWEoKSl9LF9hZGRUZXh0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYS5kLWVkaXRvci1pbnB1dCIpKTtuJiZuLmVuc3VyZVNwYWNlJiYoMDwoZS5wcmUrIiIpLmxlbmd0aCYmKGUucHJlLm1hdGNoKC9ccyQvKXx8KHQ9IiAiK3QpKSwwPChlLnBvc3QrIiIpLmxlbmd0aCYmKGUucG9zdC5tYXRjaCgvXlxzLyl8fCh0Kz0iICIpKSk7dmFyIHM9IiIrZS5wcmUrdCxvPXMrZS5wb3N0O3RoaXMuc2V0KCJ2YWx1ZSIsbyksaS52YWwobyksaS5wcm9wKCJzZWxlY3Rpb25TdGFydCIscy5sZW5ndGgpLGkucHJvcCgic2VsZWN0aW9uRW5kIixzLmxlbmd0aCksKDAsYS5uZXh0KShmdW5jdGlvbigpe3JldHVybiBpLnRyaWdnZXIoImNoYW5nZSIpfSksdGhpcy5fZm9jdXNUZXh0QXJlYSgpfSxfZXh0cmFjdFRhYmxlOmZ1bmN0aW9uKGUpe2UuZW5kc1dpdGgoIlxuIikmJihlPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMSkpO3ZhciB0PWUuc3BsaXQoIlxuIik7aWYoMTx0Lmxlbmd0aCl7dmFyIG49dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIlx0IikubGVuZ3RofSk7aWYobi5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmblswXT09PXQmJjE8dH0pJiYhKDI9PT1uWzBdJiZ0WzBdLnNwbGl0KCJcdCIpWzBdLm1hdGNoKC9e4oCiJHxeXGQrLiQvKSkpe3ZhciBpPVtdLmNvbmNhdChmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9KEFycmF5KG5bMF0pKSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIi0tLSJ9KS5qb2luKCJcdCIpO3JldHVybiB0LnNwbGljZSgxLDAsaSksInwiK3QubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KCJcdCIpLmpvaW4oInwiKX0pLmpvaW4oInxcbnwiKSsifFxuIn19cmV0dXJuIG51bGx9LF90b2dnbGVEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT0kKCIuZC1lZGl0b3ItaW5wdXQiKSx0PSJsdHIiPT09KGUuYXR0cigiZGlyIik/ZS5hdHRyKCJkaXIiKTooMCxjLnNpdGVEaXIpKCkpPyJydGwiOiJsdHIiO2UuYXR0cigiZGlyIix0KS5mb2N1cygpfSxwYXN0ZTpmdW5jdGlvbihlKXt2YXIgdCxuLGkscyxvLHIsYSxsLHUsYyxkLHAsbSxmLGg7JCgiLmQtZWRpdG9yLWlucHV0IikuaXMoIjpmb2N1cyIpJiYodD0kKCIjcmVwbHktY29udHJvbCAuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIiksaT0obj0oMCxiLmNsaXBib2FyZERhdGEpKGUsdCkpLmNsaXBib2FyZCxzPW4uY2FuUGFzdGVIdG1sLG89bi5jYW5VcGxvYWQscj1pLmdldERhdGEoInRleHQvcGxhaW4iKSxhPWkuZ2V0RGF0YSgidGV4dC9odG1sIiksbD0hMSxjPSh1PXRoaXMuX2dldFNlbGVjdGVkKG51bGwse2xpbmVWYWw6ITB9KSkucHJlLGQ9dS5saW5lVmFsLHA9Yy5tYXRjaCgvW15cbl0kLyksbT1DKGMsLyhefFxuKWBgYC9nKSxyJiZ0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcmljaF90ZXh0X3Bhc3RlJiYhcCYmIW0mJihyPXIudHJpbSgpLnJlcGxhY2UoL1xyL2csIiIpLChmPXRoaXMuX2V4dHJhY3RUYWJsZShyKSkmJih0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtdGV4dCIsZiksbD0hMCkpLHMmJnImJihzPXA/IShkLm1hdGNoKC9eYGBgLyl8fEMoYywvYC9nKXx8ZC5tYXRjaCgvXiAgICAvKSk6IW0pLHMmJiFsJiYoaD0oMCxnLmRlZmF1bHQpKGEpLCghcnx8ci5sZW5ndGg8aC5sZW5ndGgpJiYocCYmKGg9aC5yZXBsYWNlKC9eIysvLCIiKS50cmltKCksaD1jLm1hdGNoKC9cUyQvKT8iICIraDpoKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtdGV4dCIsaCksbD0hMCkpLChsfHxvJiYhcikmJmUucHJldmVudERlZmF1bHQoKSl9LF9mb2N1c1RleHRBcmVhOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhLmQtZWRpdG9yLWlucHV0Iik7KDAsYS5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmJsdXIoKSxlLmZvY3VzKCl9KX0sYWN0aW9uczp7ZW1vamk6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVkfHwodGhpcy5zZXQoImlzRWRpdG9yRm9jdXNlZCIsJCgidGV4dGFyZWEuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIikpLHRoaXMuc2V0KCJlbW9qaVBpY2tlcklzQWN0aXZlIiwhdGhpcy5lbW9qaVBpY2tlcklzQWN0aXZlKSl9LGVtb2ppU2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzLl9nZXRTZWxlY3RlZCgpLGk9bi5wcmUubWF0Y2goL1xCOihcdyopJC8pO18uaXNFbXB0eShpKT9uLnByZS5tYXRjaCgvXFMkLyk/dGhpcy5fYWRkVGV4dChuLCIgOiIrZSsiOiIpOnRoaXMuX2FkZFRleHQobiwiOiIrZSsiOiIpOih0PW4ucHJlLmxlbmd0aC1pWzFdLmxlbmd0aCxuLnByZT1uLnByZS5zbGljZSgwLG4ucHJlLmxlbmd0aC1pWzFdLmxlbmd0aCksbi5zdGFydC09dCxuLmVuZC09dCx0aGlzLl9hZGRUZXh0KG4sZSsiOiIpKX0sdG9vbGJhckJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgcz10aGlzO2lmKCF0aGlzLmRpc2FibGVkKXt2YXIgbz10aGlzLl9nZXRTZWxlY3RlZChlLnRyaW1MZWFkaW5nKSx0PXtzZWxlY3RlZDpvLHNlbGVjdFRleHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcy5fc2VsZWN0VGV4dChlLHQpfSxhcHBseVN1cnJvdW5kOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiBzLl9hcHBseVN1cnJvdW5kKG8sZSx0LG4saSl9LGFwcGx5TGlzdDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHMuX2FwcGx5TGlzdChvLGUsdCxuKX0sYWRkVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gcy5fYWRkVGV4dChvLGUpfSxyZXBsYWNlVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gcy5fYWRkVGV4dCh7cHJlOiIiLHBvc3Q6IiJ9LGUpfSxnZXRUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHMudmFsdWV9LHRvZ2dsZURpcmVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBzLl90b2dnbGVEaXJlY3Rpb24oKX19O2lmKGUuc2VuZEFjdGlvbilyZXR1cm4gZS5zZW5kQWN0aW9uKHQpO2UucGVyZm9ybSh0KX19LHNob3dMaW5rTW9kYWw6ZnVuY3Rpb24oZSl7dmFyIHQ7dGhpcy5kaXNhYmxlZHx8KHQ9IiIsdGhpcy5fbGFzdFNlbD1lLnNlbGVjdGVkLHRoaXMuX2xhc3RTZWwmJih0PXRoaXMuX2xhc3RTZWwudmFsdWUpLCgwLGguZGVmYXVsdCkoImluc2VydC1oeXBlcmxpbmsiKS5zZXRQcm9wZXJ0aWVzKHtsaW5rVGV4dDp0LHRvb2xiYXJFdmVudDplfSkpfSxmb3JtYXRDb2RlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZWQpe3ZhciBlPXRoaXMuX2dldFNlbGVjdGVkKCIiLHtsaW5lVmFsOiEwfSksdD1lLnZhbHVlLG49LTEhPT10LmluZGV4T2YoIlxuIiksaT0wPT09ZS5saW5lVmFsLnRyaW0oKS5sZW5ndGgscz0iNC1zcGFjZXMtaW5kZW50Ij09PXRoaXMuc2l0ZVNldHRpbmdzLmNvZGVfZm9ybWF0dGluZ19zdHlsZTtpZihuKXtpZihzKXJldHVybiB0aGlzLl9hcHBseVN1cnJvdW5kKGUsIiAgICAiLCIiLCJjb2RlX3RleHQiKTt2YXIgbz0iXG4iIT09ZS5wcmVbLTFdJiYiIiE9PWUucHJlPyJcbiI6IiIscj0iXG4iIT09ZS5wb3N0WzBdPyJcbiI6IiI7cmV0dXJuIHRoaXMuX2FkZFRleHQoZSxvKyJgYGBcbiIrZS52YWx1ZSsiXG5gYGAiK3IpfWlmKDA9PT10Lmxlbmd0aCYmaSl7aWYocyl7dmFyIGE9STE4bi50KCJjb21wb3Nlci5jb2RlX3RleHQiKTtyZXR1cm4gdGhpcy5zZXQoInZhbHVlIixlLnByZSsiICAgICIrYStlLnBvc3QpLHRoaXMuX3NlbGVjdFRleHQoZS5wcmUubGVuZ3RoKzQsYS5sZW5ndGgpfXJldHVybiB0aGlzLl9hcHBseVN1cnJvdW5kKGUsImBgYFxuIiwiXG5gYGAiLCJwYXN0ZV9jb2RlX3RleHQiKX1yZXR1cm4gdGhpcy5fYXBwbHlTdXJyb3VuZChlLCJgIiwiYCIsImNvZGVfdGl0bGUiKX19fX0sInBsYWNlaG9sZGVyVHJhbnNsYXRlZCIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUCwicGxhY2Vob2xkZXJUcmFuc2xhdGVkIiksUCksVChQLCJfc2h1dERvd24iLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFAsIl9zaHV0RG93biIpLFApLFQoUCwidG9vbGJhciIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJ0b29sYmFyIiksUCksVChQLCJfd2F0Y2hGb3JDaGFuZ2VzIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJfd2F0Y2hGb3JDaGFuZ2VzIiksUCksUCkpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4scyxpLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9aS5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMSxyZXNmcmVzaFF1ZXJ5V2l0aG91dFRyYW5zaXRpb246ITEsYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zaG93Rm9vdGVyJiZ0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxlLG4saT10aGlzO2lmKCF0aGlzLnJlZnJlc2hRdWVyeVdpdGhvdXRUcmFuc2l0aW9uKXJldHVybiB0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KDAscy5nZXRPd25lcikodGhpcykubG9va3VwKCJyb3V0ZXI6bWFpbiIpLl9yb3V0ZXJNaWNyb2xpYi5hY3RpdmVUcmFuc2l0aW9ufHwoZT0odD10aGlzLmNvbnRyb2xsZXIpLmdldCgibW9kZWwiKSxuPXRoaXMuY29udHJvbGxlci5nZXRQcm9wZXJ0aWVzKE9iamVjdC5rZXlzKHRoaXMucXVlcnlQYXJhbXMpKSxlLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwobikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gaS5zZXR1cENvbnRyb2xsZXIodCxlKX0pKX0sX3JlZnJlc2hUaXRsZU9uY2U6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoIl9jb2xsZWN0VGl0bGVUb2tlbnMiLFtdKX0sYWN0aW9uczp7X2NvbGxlY3RUaXRsZVRva2VuczpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hdGhpcy50aXRsZVRva2VufHwoZT10aGlzLnRpdGxlVG9rZW4oKSkmJmUubGVuZ3RoJiYoZSBpbnN0YW5jZW9mIEFycmF5P2UuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSl9KTp0LnB1c2goZSkpLCEwfSxyZWZyZXNoVGl0bGU6ZnVuY3Rpb24oKXsoMCx0Lm9uY2UpKHRoaXMsdGhpcy5fcmVmcmVzaFRpdGxlT25jZSl9LGNsZWFyVG9waWNEcmFmdDpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjb250cm9sbGVyLmxpc3QuZHJhZnQiKSYmdGhpcy5zZXQoImNvbnRyb2xsZXIubGlzdC5kcmFmdCIsbnVsbCksdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIpLmdldCgibW9kZWwuZHJhZnQiKSYmdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIpLnNldCgibW9kZWwuZHJhZnQiLG51bGwpLHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLmdldCgibW9kZWwuZHJhZnQiKSYmdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvdG9waWNzIikuc2V0KCJtb2RlbC5kcmFmdCIsbnVsbCl9fSxyZWRpcmVjdElmTG9naW5SZXF1aXJlZDpmdW5jdGlvbigpe3RoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5nZXQoImxvZ2luUmVxdWlyZWQiKSYmdGhpcy5yZXBsYWNlV2l0aCgibG9naW4iKX0sb3BlblRvcGljRHJhZnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb250cm9sbGVyRm9yKCJjb21wb3NlciIpO3QuZ2V0KCJtb2RlbC5hY3Rpb24iKT09PW4uZGVmYXVsdC5DUkVBVEVfVE9QSUMmJnQuZ2V0KCJtb2RlbC5kcmFmdEtleSIpPT09ZS5kcmFmdF9rZXk/dC5zZXQoIm1vZGVsLmNvbXBvc2VTdGF0ZSIsbi5kZWZhdWx0Lk9QRU4pOnQub3Blbih7YWN0aW9uOm4uZGVmYXVsdC5DUkVBVEVfVE9QSUMsZHJhZnQ6ZS5kcmFmdCxkcmFmdEtleTplLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOmUuZHJhZnRfc2VxdWVuY2V9KX0saXNQb3BwZWRTdGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4hZS5fZGlzY291cnNlX2ludGVyY2VwdGVkJiYhIWUuaW50ZW50LnVybH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGlzY291cnNlLCJSb3V0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLG8uZGVmYXVsdCkoIkltcG9ydCB0aGUgUm91dGUgY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBEaXNjb3Vyc2UuUm91dGUiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjUuMCJ9KSxpLmRlZmF1bHR9fSksZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtdG9waWMtcm91dGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL21vZGVscy9zZXNzaW9uIiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsdCxpLG4sbCx1LGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKHQsZSl7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxlfHx7fSk7cmV0dXJuIHQmJk9iamVjdC5rZXlzKGkucXVlcnlQYXJhbXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXSYmKG5bZV09dFtlXSl9KSxufWZ1bmN0aW9uIHIoaSxzLG8scixhKXtyZXR1cm4gYT1hfHx7fSxuZXcgdS5Qcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PWwuZGVmYXVsdC5jdXJyZW50KCk7aWYoYS5jYWNoZWQpe3ZhciBuPXQuZ2V0KCJ0b3BpY0xpc3QiKTtpZihuJiZuLmdldCgiZmlsdGVyIik9PT1vJiYobi5nZXQoInRvcGljcy5sZW5ndGgiKXx8MCk+bi5nZXQoInBlcl9wYWdlIikmJl8uaXNFcXVhbChuLmdldCgibGlzdFBhcmFtcyIpLHIpKXJldHVybiBuLnNldCgibG9hZGVkIiwhMCkscyYmcy51cGRhdGVUb3BpY3Mobi5nZXQoInRvcGljcyIpKSxlKG4pO3Quc2V0KCJ0b3BpY0xpc3QiLG51bGwpfWVsc2UgdC5zZXRQcm9wZXJ0aWVzKHt0b3BpY0xpc3Q6bnVsbCx0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbjpudWxsfSk7cmV0dXJuIHI9cnx8e30sT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yW2VdOyJ1bmRlZmluZWQiIT09dCYmIm51bGwiIT09dCYmImZhbHNlIiE9PXR8fChyW2VdPXZvaWQgMCl9KSxlKGkuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6byxwYXJhbXM6cnx8e319KSl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgibGlzdFBhcmFtcyIscikscyYmKHMuc3luYyhlLGUuZmlsdGVyKSxzLnRyYWNrSW5jb21pbmcoZS5maWx0ZXIpKSxsLmRlZmF1bHQuY3VycmVudFByb3AoInRvcGljTGlzdCIsZSksZS50b3BpY19saXN0JiZlLnRvcGljX2xpc3QudG9wX3RhZ3MmJihlLmZpbHRlci5zdGFydHNXaXRoKCJjLyIpfHxlLmZpbHRlci5zdGFydHNXaXRoKCJ0YWdzL2MvIik/Yy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJjYXRlZ29yeV90b3BfdGFncyIsZS50b3BpY19saXN0LnRvcF90YWdzKTpjLmRlZmF1bHQuY3VycmVudFByb3AoInRvcF90YWdzIixlLnRvcGljX2xpc3QudG9wX3RhZ3MpKSxlfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZFRvcGljTGlzdD1lLmZpbHRlclF1ZXJ5UGFyYW1zPXZvaWQgMCxlLmRlZmF1bHQ9ZnVuY3Rpb24ocyxlKXtyZXR1cm4gZT1lfHx7fSx0LmRlZmF1bHQuZXh0ZW5kKHtxdWVyeVBhcmFtczppLnF1ZXJ5UGFyYW1zLGJlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2RlZmF1bHQiKS5zZXQoImZpbHRlclR5cGUiLHMuc3BsaXQoIi8iKVswXSl9LG1vZGVsOmZ1bmN0aW9uKGUsdCl7dGhpcy5zY3JlZW5UcmFjay5zdG9wKCk7dmFyIG49byhlKSxpPXtjYWNoZWQ6dGhpcy5pc1BvcHBlZFN0YXRlKHQpfTtyZXR1cm4gcih0aGlzLnN0b3JlLHRoaXMudG9waWNUcmFja2luZ1N0YXRlLHMsbixpKX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe2lmKHMhPT0oMCxuLmRlZmF1bHRIb21lcGFnZSkoKSl7dmFyIGU9STE4bi50KCJmaWx0ZXJzLiIrcy5yZXBsYWNlKCIvIiwiLiIpKyIudGl0bGUiKTtyZXR1cm4gSTE4bi50KCJmaWx0ZXJzLndpdGhfdG9waWNzIix7ZmlsdGVyOmV9KX19LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXttb2RlbDp0LGNhdGVnb3J5Om51bGwscGVyaW9kOnQuZ2V0KCJmb3JfcGVyaW9kIil8fCgwPD1zLmluZGV4T2YoInRvcC8iKT9zLnNwbGl0KCIvIilbMV06IiIpLHNlbGVjdGVkOltdLGV4cGFuZEFsbFBpbm5lZDohMSxleHBhbmRHbG9iYWxseVBpbm5lZDohMH0saT10LmdldCgicGFyYW1zIik7aSYmT2JqZWN0LmtleXMoaSkubGVuZ3RoJiYodm9pZCAwIT09aS5vcmRlciYmKG4ub3JkZXI9aS5vcmRlciksdm9pZCAwIT09aS5hc2NlbmRpbmcmJihuLmFzY2VuZGluZz1pLmFzY2VuZGluZykpLHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLnNldFByb3BlcnRpZXMobiksdGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2RlZmF1bHQiKS5zZXQoImNhbkNyZWF0ZVRvcGljIix0LmdldCgiY2FuX2NyZWF0ZV90b3BpYyIpKX0scmVzZXRDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dCYmZS5zZXRQcm9wZXJ0aWVzKHtvcmRlcjoiZGVmYXVsdCIsYXNjZW5kaW5nOiExfSl9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoIm5hdmlnYXRpb24vZGVmYXVsdCIse291dGxldDoibmF2aWdhdGlvbi1iYXIifSksdGhpcy5yZW5kZXIoImRpc2NvdmVyeS90b3BpY3MiLHtjb250cm9sbGVyOiJkaXNjb3ZlcnkvdG9waWNzIixvdXRsZXQ6Imxpc3QtY29udGFpbmVyIn0pfX0sZSl9LGUuZmlsdGVyUXVlcnlQYXJhbXM9byxlLmZpbmRUb3BpY0xpc3Q9cn0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthZnRlck1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgiY2FuX2VkaXQiKXx8dGhpcy5yZXBsYWNlV2l0aCgidXNlckFjdGl2aXR5Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci10b3BpYy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9taXhpbnMvdmlld2luZy1hY3Rpb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci10b3BpY3MtbGlzdCIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLnVzZXJBY3Rpb25UeXBlO3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgidXNlckFjdGlvblR5cGUiLG4pLHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLnNldCgidXNlckFjdGlvblR5cGUiLG4pLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsaGlkZUNhdGVnb3J5OiExfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1zdHJlYW0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21peGlucy92aWV3aW5nLWFjdGlvbi10eXBlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtxdWVyeVBhcmFtczp7YWN0aW5nX3VzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJzdHJlYW0iKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmZpbHRlckJ5KHtmaWx0ZXI6dGhpcy51c2VyQWN0aW9uVHlwZSxub0NvbnRlbnRIZWxwS2V5OnRoaXMubm9Db250ZW50SGVscEtleXx8InVzZXJfYWN0aXZpdHkubm9fZGVmYXVsdCIsYWN0aW5nVXNlcm5hbWU6dC50by5xdWVyeVBhcmFtcy5hY3RpbmdfdXNlcm5hbWV9KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlcl9zdHJlYW0iKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSx0aGlzLnZpZXdpbmdBY3Rpb25UeXBlKHRoaXMudXNlckFjdGlvblR5cGUpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci1hY3Rpdml0eSIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWZyb20tcGFyYW1zIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHUsYyx0LGQscCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHttb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gZX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikudW5zdWJzY3JpYmUoKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsaSl7dmFyIHM9dGhpczsoaT1pfHx7fSkudHJhY2tfdmlzaXQ9ITA7dmFyIG89dGhpcy5tb2RlbEZvcigidG9waWMiKSxyPW8ucG9zdFN0cmVhbSxhPXRoaXMuY29udHJvbGxlckZvcigidG9waWMiKSxsPXRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKTsibGFzdCI9PT1pLm5lYXJQb3N0JiYoaS5uZWFyUG9zdD05OTk5OTk5OTkpLGkuZm9yY2VMb2FkPSEwLHIucmVmcmVzaChpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGUsdCxuO28udmlld19oaWRkZW58fChlPXIuY2xvc2VzdFBvc3RGb3JQb3N0TnVtYmVyKGkubmVhclBvc3R8fDEpLHQ9ZS5wb3N0X251bWJlcixhLnNldFByb3BlcnRpZXMoeyJtb2RlbC5jdXJyZW50UG9zdCI6dCxlbnRlcmVkSW5kZXg6by5wb3N0U3RyZWFtLnByb2dyZXNzSW5kZXhPZlBvc3QoZSksZW50ZXJlZEF0OihuZXcgRGF0ZSkuZ2V0VGltZSgpLnRvU3RyaW5nKCl9KSxzLmFwcEV2ZW50cy50cmlnZ2VyKCJwYWdlOnRvcGljLWxvYWRlZCIsbyksYS5zdWJzY3JpYmUoKSwoMCxjLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OmhpZ2hsaWdodCIsdCl9KSxuPXt9LGRvY3VtZW50LmxvY2F0aW9uLmhhc2gmJmRvY3VtZW50LmxvY2F0aW9uLmhhc2gubGVuZ3RoJiYobi5hbmNob3I9ZG9jdW1lbnQubG9jYXRpb24uaGFzaCksZC5kZWZhdWx0Lmp1bXBUb1Bvc3QodCxuKSwoMCx1LmlzRW1wdHkpKG8uZHJhZnQpfHxsLm9wZW4oe2RyYWZ0OnAuZGVmYXVsdC5nZXRMb2NhbChvLmRyYWZ0X2tleSxvLmRyYWZ0KSxkcmFmdEtleTpvLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOm8uZHJhZnRfc2VxdWVuY2UsaWdub3JlSWZDaGFuZ2VkOiEwLHRvcGljOm99KSl9KS5jYXRjaChmdW5jdGlvbihlKXsidGVzdCIhPT1uLmRlZmF1bHQuZW52aXJvbm1lbnQmJmNvbnNvbGUubG9nKCJDb3VsZCBub3QgdmlldyB0b3BpYyIsZSl9KX0sYWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ0b3BpYyIpLnNldCgicHJldmlvdXNVUkwiLGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdGV4dC1kaXJlY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlcktleSIpLGkobz17YXR0cmlidXRlQmluZGluZ3M6WyJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2ZvY3VzIiwibWF4TGVuZ3RoIiwiZGlyIl0sZGlyOmZ1bmN0aW9uKCl7aWYodGhpcy5zaXRlU2V0dGluZ3Muc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbil7dmFyIGU9dGhpcy52YWx1ZTtyZXR1cm4gZT8oMCxuLmlzUlRMKShlKT8icnRsIjoibHRyIjooMCxuLnNpdGVEaXIpKCl9fSxrZXlVcDpmdW5jdGlvbihlKXt2YXIgdDt0aGlzLl9zdXBlcihlKSx0aGlzLnNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uJiYodD10aGlzLnZhbHVlLCgwLG4uaXNSVEwpKHQpP3RoaXMuc2V0KCJkaXIiLCJydGwiKTooMCxuLmlzTFRSKSh0KT90aGlzLnNldCgiZGlyIiwibHRyIik6dGhpcy5zZXQoImRpciIsKDAsbi5zaXRlRGlyKSgpKSl9LHBsYWNlaG9sZGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI/dGhpcy5fcGxhY2Vob2xkZXI6dGhpcy5wbGFjZWhvbGRlcktleT9JMThuLnQodGhpcy5wbGFjZWhvbGRlcktleSk6IiJ9LHNldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI9ZX19fSwiZGlyIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImRpciIpLG8pLGkobywicGxhY2Vob2xkZXIiLFtzXSwocj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInBsYWNlaG9sZGVyIikpP3IudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiByfX0pLG8pLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJzaXplIiksbz1zPXtjbGFzc05hbWVCaW5kaW5nczpbIjpsb2FkaW5nLWNvbnRhaW5lciIsImNvbnRhaW5lckNsYXNzIiwiY29uZGl0aW9uOnZpc2libGUiXSxjb250YWluZXJDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4ic21hbGwiPT09ZT8iaW5saW5lLXNwaW5uZXIiOnZvaWQgMH19LHI9ImNvbnRhaW5lckNsYXNzIixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywiY29udGFpbmVyQ2xhc3MiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbCx0LHUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZW5kZXJBdmF0YXI9dm9pZCAwLGUucmVnaXN0ZXJDdXN0b21BdmF0YXJIZWxwZXI9ZnVuY3Rpb24oZSl7KGk9aXx8W10pLnB1c2goZSl9LGUuYWRkRXh0cmFVc2VyQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciBuPXMoZSkuam9pbigiICIpO24mJm4ubGVuZ3RoJiYodC5leHRyYUNsYXNzZXM9bik7cmV0dXJuIHR9LGUuY2xhc3Nlc0ZvclVzZXI9czt2YXIgaT12b2lkIDA7ZnVuY3Rpb24gcyhlKXt2YXIgdD1bXTtpZihpKWZvcih2YXIgbj0wO248aS5sZW5ndGg7bisrKXQ9dC5jb25jYXQoaVtuXShlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gbihlLHQpe2lmKHQ9dHx8e30sZSl7dmFyIG49KDAsbC5nZXQpKGUsdC5uYW1lUGF0aHx8Im5hbWUiKSxpPSgwLGwuZ2V0KShlLHQudXNlcm5hbWVQYXRofHwidXNlcm5hbWUiKSxzPSgwLGwuZ2V0KShlLHQuYXZhdGFyVGVtcGxhdGVQYXRofHwiYXZhdGFyX3RlbXBsYXRlIik7aWYoIWl8fCFzKXJldHVybiIiO3ZhciBvLHI9bnx8KDAsdS5mb3JtYXRVc2VybmFtZSkoaSksYT10LnRpdGxlO3JldHVybiBhfHx0Lmlnbm9yZVRpdGxlfHwoYT0oMCxsLmdldCkoZSwidGl0bGUiKSl8fChvPSgwLGwuZ2V0KShlLCJkZXNjcmlwdGlvbiIpKSYmMDxvLmxlbmd0aCYmKGE9cisiIC0gIitvKSwoMCx1LmF2YXRhckltZykoe3NpemU6dC5pbWFnZVNpemUsZXh0cmFDbGFzc2VzOigwLGwuZ2V0KShlLCJleHRyYXMiKXx8dC5leHRyYUNsYXNzZXMsdGl0bGU6YXx8cixhdmF0YXJUZW1wbGF0ZTpzfSl9cmV0dXJuIiJ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJhdmF0YXIiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcobi5jYWxsKHRoaXMsZSx0KSl9KSxlLnJlbmRlckF2YXRhcj1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jb2xkLWFnZS1jbGFzcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzg2NGU1fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoZS5kYXlzU2luY2VFcG9jaD12b2lkIDAsdC5yZWdpc3RlclVuYm91bmQpKCJjb2xkLWFnZS1jbGFzcyIsZnVuY3Rpb24oZSx0KXt2YXIgbj10LmNsYXNzfHwiYWdlIjtpZighZSlyZXR1cm4gbjt2YXIgaT1vKHQuc3RhcnREYXRlfHxuZXcgRGF0ZSkscz1vKG5ldyBEYXRlKGUpKTtyZXR1cm4gaS1zPkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuY29sZF9hZ2VfZGF5c19oaWdoP24rIiBjb2xkbWFwLWhpZ2giOmktcz5EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmNvbGRfYWdlX2RheXNfbWVkaXVtP24rIiBjb2xkbWFwLW1lZCI6aS1zPkRpc2NvdXJzZS5TaXRlU2V0dGluZ3MuY29sZF9hZ2VfZGF5c19sb3c/bisiIGNvbGRtYXAtbG93IjpufSksZS5kYXlzU2luY2VFcG9jaD1vfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9sb2FkaW5nLXNwaW5uZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3ZhciB0PSI8ZGl2IGNsYXNzPSdzcGlubmVyIjtyZXR1cm4gZSYmKHQrPSIgIitlKSx0KyInPjwvZGl2PiJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVuZGVyU3Bpbm5lcj1lLnNwaW5uZXJIVE1MPXZvaWQgMDt2YXIgaT1uKCk7ZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5oYXNoO3JldHVybiBuKHQmJnQuc2l6ZT90LnNpemU6dm9pZCAwKX0pLGUuc3Bpbm5lckhUTUw9aSxlLnJlbmRlclNwaW5uZXI9bn0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsZyx0LHYseSxfLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXBsYWNlQ2F0ZWdvcnlMaW5rUmVuZGVyZXI9ZnVuY3Rpb24oZSl7bz1lfSxlLmNhdGVnb3J5QmFkZ2VIVE1MPXIsZS5jYXRlZ29yeUxpbmtIVE1MPW47dmFyIHc9SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uLG89ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxnLmdldCkoZSwiZGVzY3JpcHRpb25fdGV4dCIpLGk9KDAsZy5nZXQpKGUsInJlYWRfcmVzdHJpY3RlZCIpLHM9dC51cmw/dC51cmw6RGlzY291cnNlLmdldFVSTCgiL2MvIitfLmRlZmF1bHQuc2x1Z0ZvcihlKSsiLyIrKDAsZy5nZXQpKGUsImlkIikpLG89ITE9PT10Lmxpbms/IiI6cyxyPSExPT09dC5saW5rfHwiZmFsc2UiPT09dC5saW5rPyJzcGFuIjoiYSIsYT10LmV4dHJhQ2xhc3Nlcz8iICIrdC5leHRyYUNsYXNzZXM6IiIsbD0oMCxnLmdldCkoZSwiY29sb3IiKSx1PSIiLGM9bnVsbCxkPSIiO3QuaGlkZVBhcmVudHx8KGM9Xy5kZWZhdWx0LmZpbmRCeUlkKCgwLGcuZ2V0KShlLCJwYXJlbnRfY2F0ZWdvcnlfaWQiKSkpO3ZhciBwPXQuY2F0ZWdvcnlTdHlsZXx8RGlzY291cnNlLlNpdGVTZXR0aW5ncy5jYXRlZ29yeV9zdHlsZTsibm9uZSIhPT1wJiYoYyYmYyE9PWUmJih1Kz14KCgwLGcuZ2V0KShjLCJjb2xvciIpLCJiYWRnZS1jYXRlZ29yeS1wYXJlbnQtYmciKSksdSs9eChsLCJiYWRnZS1jYXRlZ29yeS1iZyIpKTt2YXIgbT0iYmFkZ2UtY2F0ZWdvcnkgY2xlYXItYmFkZ2UiO2kmJihtKz0iIHJlc3RyaWN0ZWQiKTt2YXIgZj0iIjsiYm94Ij09PXAmJihmPSdzdHlsZT0iY29sb3I6ICMnKygwLGcuZ2V0KShlLCJ0ZXh0X2NvbG9yIikrJzsiJyk7dSs9IjxzcGFuICIrZisnIGRhdGEtZHJvcC1jbG9zZT0idHJ1ZSIgY2xhc3M9IicrbSsnIicrKG4/J3RpdGxlPSInK24rJyIgJzoiIikrIj4iO3ZhciBoPXcoKDAsZy5nZXQpKGUsIm5hbWUiKSk7RGlzY291cnNlLlNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uJiYoZD0oMCx2LmlzUlRMKShoKT8nZGlyPSJydGwiJzonZGlyPSJsdHIiJyk7dSs9aT8oMCx5Lmljb25IVE1MKSgibG9jayIpKyc8c3BhbiBjbGFzcz0iY2F0ZWdvcnktbmFtZSIgJytkKyI+IitoKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9ImNhdGVnb3J5LW5hbWUiICcrZCsiPiIraCsiPC9zcGFuPiI7dSs9Ijwvc3Bhbj4iLHQudG9waWNDb3VudCYmImJveCIhPT1wJiYodSs9ayh0LnRvcGljQ291bnQpKTtvPW8mJicgaHJlZj0iJytvKyciICc7YT1wP3ArYTphO3ZhciBiPSIiO3QudG9waWNDb3VudCYmImJveCI9PT1wJiYoYis9ayh0LnRvcGljQ291bnQpKTtyZXR1cm4iPCIrcisnIGNsYXNzPSJiYWRnZS13cmFwcGVyICcrYSsnIiAnK28rIj4iK3UrIjwvIityKyI+IitifTtmdW5jdGlvbiB4KGUsdCl7cmV0dXJuIjxzcGFuIGNsYXNzPSciK3QrIicgIisoZT8ic3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICMiK2UrIjsnIjoiIikrIj48L3NwYW4+In1mdW5jdGlvbiByKGUsdCl7aWYodD10fHx7fSwhZXx8IXQuYWxsb3dVbmNhdGVnb3JpemVkJiYoMCxnLmdldCkoZSwiaWQiKT09PXMuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpJiZEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnN1cHByZXNzX3VuY2F0ZWdvcml6ZWRfYmFkZ2UpcmV0dXJuIiI7dmFyIG49KHQuZGVwdGh8fDEpKzE7aWYodC5yZWN1cnNpdmUmJm48PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWF4X2NhdGVnb3J5X25lc3Rpbmcpe3ZhciBpPV8uZGVmYXVsdC5maW5kQnlJZChlLnBhcmVudF9jYXRlZ29yeV9pZCk7cmV0dXJuIHQuZGVwdGg9bixyKGksdCkrbyhlLHQpfXJldHVybiBvKGUsdCl9ZnVuY3Rpb24gbihlLHQpe3ZhciBuPXt9O3JldHVybiB0JiZ0Lmhhc2gmJih0PXQuaGFzaCksdCYmKHQuYWxsb3dVbmNhdGVnb3JpemVkJiYobi5hbGxvd1VuY2F0ZWdvcml6ZWQ9ITApLHZvaWQgMCE9PXQubGluayYmKG4ubGluaz10LmxpbmspLHQuZXh0cmFDbGFzc2VzJiYobi5leHRyYUNsYXNzZXM9dC5leHRyYUNsYXNzZXMpLHQuaGlkZVBhcmVudCYmKG4uaGlkZVBhcmVudD0hMCksdC5jYXRlZ29yeVN0eWxlJiYobi5jYXRlZ29yeVN0eWxlPXQuY2F0ZWdvcnlTdHlsZSksdC5yZWN1cnNpdmUmJihuLnJlY3Vyc2l2ZT0hMCkpLG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcocihlLG4pKX1mdW5jdGlvbiBrKGUpe3JldHVybic8c3BhbiBjbGFzcz0idG9waWMtY291bnQiIGFyaWEtbGFiZWw9IicrSTE4bi50KCJjYXRlZ29yeV9yb3cudG9waWNfY291bnQiLHtjb3VudDplfSkrJyI+JnRpbWVzOyAnK2UrIjwvc3Bhbj4ifSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiY2F0ZWdvcnktbGluayIsbil9KSxkZWZpbmUoImRpc2NvdXJzZS9tYXBwaW5nLXJvdXRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50IiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxuLGksdCxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFwUm91dGVzPWZ1bmN0aW9uKCl7dmFyIGk9bmV3IHUoInJvb3QiKSxzPVtdO3JldHVybiBPYmplY3Qua2V5cyhyZXF1aXJlanMuX2Vha19zZWVuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKC9yb3V0ZS1tYXAkLy50ZXN0KGUpKXt2YXIgdD1yZXF1aXJlanMoZSxudWxsLG51bGwsITApO2lmKCF0fHwhdC5kZWZhdWx0KXRocm93IG5ldyBFcnJvcihlKyIgbXVzdCBleHBvcnQgYSByb3V0ZSBtYXAuIik7dmFyIG49dC5kZWZhdWx0OyJmdW5jdGlvbiI9PXR5cGVvZiBuP2kuZXh0cmFjdChuKTpzLnB1c2gobil9fSkscy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWkuZmluZFBhdGgoZS5yZXNvdXJjZSk7dCYmdC5leHRyYWN0KGUubWFwKX0pLGwuZXh0ZW5kKCkubWFwKGZ1bmN0aW9uKCl7aS5tYXBSb3V0ZXModGhpcyksdGhpcy5yb3V0ZSgidW5rbm93biIse3BhdGg6IipwYXRoIn0pfSl9O3ZhciBvPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX07ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBhPURpc2NvdXJzZS5CYXNlVXJpLGw9RW1iZXIuUm91dGVyLmV4dGVuZCh7cm9vdFVSTDphLGxvY2F0aW9uOiJ0ZXN0Ij09PXQuZGVmYXVsdC5lbnZpcm9ubWVudD8ibm9uZSI6ImRpc2NvdXJzZS1sb2NhdGlvbiIsaGFuZGxlVVJMOmZ1bmN0aW9uKGUpe3ZhciB0PShlPSgwLGkucmV3cml0ZVBhdGgpKGUpKS5zcGxpdCgiPyIpO3JldHVybiIvIj09PXRbMF0mJihlPSgwLG4uZGVmYXVsdEhvbWVwYWdlKSgpLHRbMV0mJnRbMV0ubGVuZ3RoJiYoZT1lKyI/Iit0WzFdKSksdGhpcy5fc3VwZXIoZSl9fSksdT0obyhjLFt7a2V5OiJyb3V0ZSIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3Q9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx7fSk6dHx8e307dmFyIGkscz10aGlzLmNoaWxkcmVuQnlOYW1lW2VdO3M/KHQucGF0aCYmKHMucGF0aHNbdC5wYXRoXT0hMCkscy5leHRyYWN0KG4pKTooKGk9bmV3IGMoZSx0LHRoaXMuZGVwdGgrMSkpLmV4dHJhY3QobiksdGhpcy5jaGlsZHJlbkJ5TmFtZVtlXT1pLHRoaXMuY2hpbGRyZW4ucHVzaChpKSl9fSx7a2V5OiJleHRyYWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtlJiZlLmNhbGwodGhpcyl9fSx7a2V5OiJtYXBSb3V0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcy5jaGlsZHJlbjsicm9vdCI9PT10aGlzLm5hbWU/bi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcFJvdXRlcyh0KX0pOihlPTA9PT1uLmxlbmd0aD92b2lkIDA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO24uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXBSb3V0ZXModCl9KX0sdC5yb3V0ZSh0aGlzLm5hbWUsdGhpcy5vcHRzLGUpKX19LHtrZXk6ImZpbmRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aCl7dmFyIHQ9ZS5zaGlmdCgpLG49dGhpcy5jaGlsZHJlbkJ5TmFtZVt0XTtpZihuKXJldHVybiAwPT09ZS5sZW5ndGg/bjpuLmZpbmRTZWdtZW50KGUpfX19LHtrZXk6ImZpbmRQYXRoIix2YWx1ZTpmdW5jdGlvbihlKXtpZihlKXJldHVybiB0aGlzLmZpbmRTZWdtZW50KGUuc3BsaXQoIi4iKSl9fV0pLGMpO2Z1bmN0aW9uIGMoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjA7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsYyksdGhpcy5uYW1lPWUsdGhpcy5vcHRzPXQsdGhpcy5kZXB0aD1uLHRoaXMuY2hpbGRyZW49W10sdGhpcy5jaGlsZHJlbkJ5TmFtZT17fSx0aGlzLnBhdGhzPXt9LHRoaXMuc2l0ZT1zLmRlZmF1bHQuY3VycmVudCgpLHQucGF0aHx8KHQucGF0aD1lKSx0aGlzLnBhdGhzW3QucGF0aF09ITB9ZS5kZWZhdWx0PWx9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hYm91dCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocz17ZmFxT3ZlcnJpZGVuOigwLG4uZ3QpKCJzaXRlU2V0dGluZ3MuZmFxX3VybC5sZW5ndGgiLDApLGNvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsP0kxOG4udCgiYWJvdXQuY29udGFjdF9pbmZvIix7Y29udGFjdF9pbmZvOiI8YSBocmVmPSciK3RoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsKyInIHRhcmdldD0nX2JsYW5rJz4iK3RoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfdXJsKyI8L2E+In0pOnRoaXMuc2l0ZVNldHRpbmdzLmNvbnRhY3RfZW1haWw/STE4bi50KCJhYm91dC5jb250YWN0X2luZm8iLHtjb250YWN0X2luZm86dGhpcy5zaXRlU2V0dGluZ3MuY29udGFjdF9lbWFpbH0pOm51bGx9fSxvPXMscj0iY29udGFjdEluZm8iLGE9W3QuZGVmYXVsdF0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNvbnRhY3RJbmZvIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FjY291bnQtY3JlYXRlZC1lZGl0LWVtYWlsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgibmV3RW1haWwiLCJhY2NvdW50Q3JlYXRlZC5lbWFpbCIpLGE9cj17YWNjb3VudENyZWF0ZWQ6bnVsbCxuZXdFbWFpbDpudWxsLHN1Ym1pdERpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fSxhY3Rpb25zOntjaGFuZ2VFbWFpbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm5ld0VtYWlsOygwLGkuY2hhbmdlRW1haWwpKHtlbWFpbDp0fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJhY2NvdW50Q3JlYXRlZC5lbWFpbCIsdCksZS50cmFuc2l0aW9uVG9Sb3V0ZSgiYWNjb3VudC1jcmVhdGVkLnJlc2VudCIpfSkuY2F0Y2gocy5wb3B1cEFqYXhFcnJvcil9LGNhbmNlbDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvUm91dGUoImFjY291bnQtY3JlYXRlZC5pbmRleCIpfX19LGw9InN1Ym1pdERpc2FibGVkIix1PVtvXSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic3VibWl0RGlzYWJsZWQiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvYWNjb3VudC1jcmVhdGVkLWluZGV4IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXNlci1hY3RpdmF0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3NlbmRBY3RpdmF0aW9uRW1haWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLG4ucmVzZW5kQWN0aXZhdGlvbkVtYWlsKSh0aGlzLmdldCgiYWNjb3VudENyZWF0ZWQudXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbigpe2UudHJhbnNpdGlvblRvUm91dGUoImFjY291bnQtY3JlYXRlZC5yZXNlbnQiKX0pfSxlZGl0QWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgiYWNjb3VudC1jcmVhdGVkLmVkaXQtZW1haWwiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hY3RpdmF0aW9uLWVkaXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi91c2VyLWFjdGl2YXRpb24iXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIsImN1cnJlbnRFbWFpbCIpLGE9e2xvZ2luOigwLG4uaW5qZWN0KSgpLGN1cnJlbnRFbWFpbDpudWxsLG5ld0VtYWlsOm51bGwscGFzc3dvcmQ6bnVsbCxzdWJtaXREaXNhYmxlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dH0sYWN0aW9uczp7Y2hhbmdlRW1haWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5sb2dpbjsoMCxvLmNoYW5nZUVtYWlsKSh7dXNlcm5hbWU6ZS5nZXQoImxvZ2luTmFtZSIpLHBhc3N3b3JkOmUuZ2V0KCJsb2dpblBhc3N3b3JkIiksZW1haWw6dGhpcy5uZXdFbWFpbH0pLnRoZW4oZnVuY3Rpb24oKXt0LnNob3dNb2RhbCgiYWN0aXZhdGlvbi1yZXNlbnQiLHt0aXRsZToibG9nX2luIn0pLnNldCgiY3VycmVudEVtYWlsIix0Lm5ld0VtYWlsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmZsYXNoKCgwLHMuZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKX0pfX19LGw9YSx1PSJzdWJtaXREaXNhYmxlZCIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInN1Ym1pdERpc2FibGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FkZC1wb3N0LW5vdGljZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL3RleHQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJzYXZpbmciLCJub3RpY2UiKSxsPWE9e3Bvc3Q6bnVsbCxyZXNvbHZlOm51bGwscmVqZWN0Om51bGwsbm90aWNlOm51bGwsc2F2aW5nOiExLGRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCgwLG4uaXNFbXB0eSkodCl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bm90aWNlOiIiLHNhdmluZzohMX0pfSxvbkNsb3NlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yZWplY3Q7ZSYmZSgpfSxhY3Rpb25zOntzZXROb3RpY2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgbj10aGlzLnBvc3QsaT10aGlzLnJlc29sdmUsZT10aGlzLnJlamVjdCxzPXRoaXMubm90aWNlO3RoaXMuc2V0UHJvcGVydGllcyh7cmVzb2x2ZTpudWxsLHJlamVjdDpudWxsfSksbi51cGRhdGVQb3N0RmllbGQoIm5vdGljZSIscykudGhlbihmdW5jdGlvbigpe3JldHVybigwLG8uY29va0FzeW5jKShzLHtmZWF0dXJlczp7b25lYm94OiExfX0pfSkudGhlbihmdW5jdGlvbihlKXtuLnNldFByb3BlcnRpZXMoe25vdGljZV90eXBlOiJjdXN0b20iLG5vdGljZV9hcmdzOmUuc3RyaW5nfSksaSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2goZnVuY3Rpb24oKXtlKCksdC5zZW5kKCJjbG9zZU1vZGFsIil9KX19fSx1PSJkaXNhYmxlZCIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVkIikscD1hLG09e30sT2JqZWN0LmtleXMoZCkuZm9yRWFjaChmdW5jdGlvbihlKXttW2VdPWRbZV19KSxtLmVudW1lcmFibGU9ISFtLmVudW1lcmFibGUsbS5jb25maWd1cmFibGU9ISFtLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG18fG0uaW5pdGlhbGl6ZXIpJiYobS53cml0YWJsZT0hMCksbT1jLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KGwsdSxlKXx8ZX0sbSkscCYmdm9pZCAwIT09bS5pbml0aWFsaXplciYmKG0udmFsdWU9bS5pbml0aWFsaXplcj9tLmluaXRpYWxpemVyLmNhbGwocCk6dm9pZCAwLG0uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1tLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsdSxtKSxtPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2FwcGxpY2F0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobyhyPXtzaG93VG9wOiEwLHNob3dGb290ZXI6ITEscm91dGVyOigwLG4uaW5qZWN0KSgpLGNhblNpZ25VcDpmdW5jdGlvbigpe3JldHVybiFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmludml0ZV9vbmx5JiZEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmFsbG93X25ld19yZWdpc3RyYXRpb25zJiYhRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfc3NvfSxsb2dpblJlcXVpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MubG9naW5fcmVxdWlyZWQmJiF0aGlzLmN1cnJlbnRVc2VyfSxzaG93Rm9vdGVyTmF2OmZ1bmN0aW9uKCl7cmV0dXJuKDAscy5pc0FwcFdlYnZpZXcpKCl8fCgwLHMuaXNpT1NQV0EpKCl9fSwiY2FuU2lnblVwIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImNhblNpZ25VcCIpLHIpLG8ociwibG9naW5SZXF1aXJlZCIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJsb2dpblJlcXVpcmVkIiksciksbyhyLCJzaG93Rm9vdGVyTmF2IixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInNob3dGb290ZXJOYXYiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hc3NvY2lhdGUtYWNjb3VudC1jb25maXJtIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQse2FjdGlvbnM6e2ZpbmlzaENvbm5lY3Q6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLG4uYWpheCkoe3VybDoiL2Fzc29jaWF0ZS8iK2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLm1vZGVsLnRva2VuKSx0eXBlOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnRyYW5zaXRpb25Ub1JvdXRlKCJwcmVmZXJlbmNlcy5hY2NvdW50Iix0LmN1cnJlbnRVc2VyLmZpbmREZXRhaWxzKCkpLHQuc2VuZCgiY2xvc2VNb2RhbCIpKTp0LnNldCgibW9kZWwuZXJyb3IiLGUuZXJyb3IpfSkuY2F0Y2goaS5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvYXV0aC10b2tlbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LHtleHBhbmRlZDohMSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLHMuYWpheCkoKDAsby51c2VyUGF0aCkodGhpcy5nZXQoImN1cnJlbnRVc2VyLnVzZXJuYW1lX2xvd2VyIikrIi9hY3Rpdml0eS5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7MDxlLmxlbmd0aCYmdC5zZXQoImxhdGVzdF9wb3N0IixlWzBdKX0pfSxhY3Rpb25zOnt0b2dnbGVFeHBhbmRlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJleHBhbmRlZCIsIXRoaXMuZXhwYW5kZWQpfSxoaWdobGlnaHRTZWN1cmU6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImNsb3NlTW9kYWwiKSwoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7dmFyIGU9JCgiLnByZWYtcGFzc3dvcmQiKTtlLmFkZENsYXNzKCJoaWdobGlnaHRlZCIpLGUub24oImFuaW1hdGlvbmVuZCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW1vdmVDbGFzcygiaGlnaGxpZ2h0ZWQiKX0pLHdpbmRvdy5zY3JvbGxUbyh7dG9wOmUub2Zmc2V0KCkudG9wLGJlaGF2aW9yOiJzbW9vdGgifSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9hdmF0YXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwobD0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZCIsInVzZXIuc3lzdGVtX2F2YXRhcl91cGxvYWRfaWQiLCJ1c2VyLmdyYXZhdGFyX2F2YXRhcl91cGxvYWRfaWQiLCJ1c2VyLmN1c3RvbV9hdmF0YXJfdXBsb2FkX2lkIiksdT0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZCIsInVzZXIuc3lzdGVtX2F2YXRhcl90ZW1wbGF0ZSIsInVzZXIuZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlIiwidXNlci5jdXN0b21fYXZhdGFyX3RlbXBsYXRlIiksYz0oMCx0LmRlZmF1bHQpKCksYShkPXtzZWxlY3RlZFVwbG9hZElkOmZ1bmN0aW9uKGUsdCxuLGkpe3N3aXRjaChlKXtjYXNlInN5c3RlbSI6cmV0dXJuIHQ7Y2FzZSJncmF2YXRhciI6cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gaX19LHNlbGVjdGVkQXZhdGFyVGVtcGxhdGU6ZnVuY3Rpb24oZSx0LG4saSl7c3dpdGNoKGUpe2Nhc2Uic3lzdGVtIjpyZXR1cm4gdDtjYXNlImdyYXZhdGFyIjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiBpfX0sYWxsb3dBdmF0YXJVcGxvYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuYWxsb3dfdXBsb2FkZWRfYXZhdGFycyYmKDAsby5hbGxvd3NJbWFnZXMpKHRoaXMuY3VycmVudFVzZXIuc3RhZmYpfSxhY3Rpb25zOnt1cGxvYWRDb21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJzZWxlY3RlZCIsInVwbG9hZGVkIil9LHJlZnJlc2hHcmF2YXRhcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJncmF2YXRhclJlZnJlc2hEaXNhYmxlZCIsITApLCgwLHMuYWpheCkoIi91c2VyX2F2YXRhci8iK3RoaXMuZ2V0KCJ1c2VyLnVzZXJuYW1lIikrIi9yZWZyZXNoX2dyYXZhdGFyLmpzb24iLHttZXRob2Q6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXtlLmdyYXZhdGFyX3VwbG9hZF9pZD8odC5zZXQoImdyYXZhdGFyRmFpbGVkIiwhMSksdC51c2VyLnNldFByb3BlcnRpZXMoe2dyYXZhdGFyX2F2YXRhcl91cGxvYWRfaWQ6ZS5ncmF2YXRhcl91cGxvYWRfaWQsZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlOmUuZ3JhdmF0YXJfYXZhdGFyX3RlbXBsYXRlfSkpOnQuc2V0KCJncmF2YXRhckZhaWxlZCIsITApfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgiZ3JhdmF0YXJSZWZyZXNoRGlzYWJsZWQiLCExKX0pfSxzZWxlY3RBdmF0YXI6ZnVuY3Rpb24oZSl7dGhpcy51c2VyLnNlbGVjdEF2YXRhcihlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxzYXZlQXZhdGFyU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZWxlY3RlZFVwbG9hZElkLHQ9dGhpcy5zZWxlY3RlZDt0aGlzLnVzZXIucGlja0F2YXRhcihlLHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9fX0sInNlbGVjdGVkVXBsb2FkSWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlbGVjdGVkVXBsb2FkSWQiKSxkKSxhKGQsInNlbGVjdGVkQXZhdGFyVGVtcGxhdGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlbGVjdGVkQXZhdGFyVGVtcGxhdGUiKSxkKSxhKGQsImFsbG93QXZhdGFyVXBsb2FkIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJhbGxvd0F2YXRhclVwbG9hZCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2JhZGdlcy9pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoIm1vZGVsIiksbz1zPXtiYWRnZUdyb3VwczpmdW5jdGlvbihlKXt2YXIgdCxuPV8uc29ydEJ5KGUsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXQoImJhZGdlX2dyb3VwaW5nLnBvc2l0aW9uIiksbj1lLmdldCgiYmFkZ2VfdHlwZV9pZCIpLGk9ZS5nZXQoIm5hbWUiKTtyZXR1cm4oIjAwMCIrdCkuc2xpY2UoLTQpKygxMC1uKStpfSksaT1bXSxzPVtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZSl7dCE9PWUuYmFkZ2VfZ3JvdXBpbmdfaWQmJihzJiYwPHMubGVuZ3RoJiZpLnB1c2goe2JhZGdlczpzLGJhZGdlR3JvdXBpbmc6c1swXS5iYWRnZV9ncm91cGluZ30pLHM9W10sdD1lLmJhZGdlX2dyb3VwaW5nX2lkKSxzLnB1c2goZSl9KSxzJiYwPHMubGVuZ3RoJiZpLnB1c2goe2JhZGdlczpzLGJhZGdlR3JvdXBpbmc6c1swXS5iYWRnZV9ncm91cGluZ30pLGl9fSxyPSJiYWRnZUdyb3VwcyIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImJhZGdlR3JvdXBzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2JhZGdlcy9zaG93IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwiZGlzY291cnNlL21vZGVscy91c2VyLWJhZGdlIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoYT0oMCxvLmRlZmF1bHQpKCJ1c2VyQmFkZ2VzQWxsIiksbD0oMCxvLmRlZmF1bHQpKCJmaWx0ZXJlZExpc3QiKSx1PSgwLG8uZGVmYXVsdCkoInVzZXJuYW1lIiksYz0oMCxvLmRlZmF1bHQpKCJ1c2VybmFtZSIsIm1vZGVsLmdyYW50X2NvdW50IiwidXNlckJhZGdlcy5ncmFudF9jb3VudCIpLGQ9KDAsby5kZWZhdWx0KSgibW9kZWwuZ3JhbnRfY291bnQiLCJ1c2VyQmFkZ2VzLmdyYW50X2NvdW50IikscD0oMCxvLmRlZmF1bHQpKCJtb2RlbC5hbGxvd190aXRsZSIsIm1vZGVsLmhhc19iYWRnZSIsIm1vZGVsIiksbT0oMCxvLmRlZmF1bHQpKCJub01vcmVCYWRnZXMiLCJncmFudENvdW50IiwidXNlckJhZGdlcy5sZW5ndGgiKSxmPSgwLG8uZGVmYXVsdCkoInVzZXIiLCJtb2RlbC5ncmFudF9jb3VudCIpLGg9KDAsby5vYnNlcnZlcykoImNhbkxvYWRNb3JlIikscihiPXtxdWVyeVBhcmFtczpbInVzZXJuYW1lIl0sbm9Nb3JlQmFkZ2VzOiExLHVzZXJCYWRnZXM6bnVsbCxhcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxoaWRkZW5TZXRUaXRsZTohMCxmaWx0ZXJlZExpc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmlsdGVyQnkoImJhZGdlLmFsbG93X3RpdGxlIiwhMCl9LHNlbGVjdGFibGVVc2VyQmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybltuLmRlZmF1bHQuY3JlYXRlKHtiYWRnZTppLmRlZmF1bHQuY3JlYXRlKHtuYW1lOkkxOG4udCgiYmFkZ2VzLm5vbmUiKX0pfSldLmNvbmNhdChmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9MCxuPUFycmF5KGUubGVuZ3RoKTt0PGUubGVuZ3RoO3QrKyluW3RdPWVbdF07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20oZSl9KGUudW5pcUJ5KCJiYWRnZS5uYW1lIikpKX0sdXNlcjpmdW5jdGlvbihlKXtpZihlKXJldHVybiB0aGlzLnVzZXJCYWRnZXNbMF0uZ2V0KCJ1c2VyIil9LGdyYW50Q291bnQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlP246dH0sb3RoZXJzQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSxjYW5TZWxlY3RUaXRsZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfYmFkZ2VzJiZlJiZ0fSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciB0LG49dGhpczt0aGlzLmxvYWRpbmdNb3JlfHwodGhpcy5zZXQoImxvYWRpbmdNb3JlIiwhMCksdD10aGlzLnVzZXJCYWRnZXMscy5kZWZhdWx0LmZpbmRCeUJhZGdlSWQodGhpcy5nZXQoIm1vZGVsLmlkIikse29mZnNldDp0Lmxlbmd0aCx1c2VybmFtZTp0aGlzLnVzZXJuYW1lfSkudGhlbihmdW5jdGlvbihlKXt0LnB1c2hPYmplY3RzKGUpLDA9PT10Lmxlbmd0aCYmbi5zZXQoIm5vTW9yZUJhZGdlcyIsITApfSkuZmluYWxseShmdW5jdGlvbigpe24uc2V0KCJsb2FkaW5nTW9yZSIsITEpfSkpfSx0b2dnbGVTZXRVc2VyVGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2dnbGVQcm9wZXJ0eSgiaGlkZGVuU2V0VGl0bGUiKX19LGNhbkxvYWRNb3JlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZSYmKG58fDApPHR9LGNhblNob3dPdGhlcnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJjE8dH0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuY2FuTG9hZE1vcmUpfX0sImZpbHRlcmVkTGlzdCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmlsdGVyZWRMaXN0IiksYikscihiLCJzZWxlY3RhYmxlVXNlckJhZGdlcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic2VsZWN0YWJsZVVzZXJCYWRnZXMiKSxiKSxyKGIsInVzZXIiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsInVzZXIiKSxiKSxyKGIsImdyYW50Q291bnQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImdyYW50Q291bnQiKSxiKSxyKGIsIm90aGVyc0NvdW50IixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJvdGhlcnNDb3VudCIpLGIpLHIoYiwiY2FuU2VsZWN0VGl0bGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblNlbGVjdFRpdGxlIiksYikscihiLCJjYW5Mb2FkTW9yZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY2FuTG9hZE1vcmUiKSxiKSxyKGIsImNhblNob3dPdGhlcnMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblNob3dPdGhlcnMiKSxiKSxyKGIsIl9zaG93Rm9vdGVyIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfc2hvd0Zvb3RlciIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Jhc2ljLW1vZGFsLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHttb2RhbDpudWxsfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ib29rbWFyayIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJAZW1iZXIvdGVtcGxhdGUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdSxjLGQscCxtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHk9e0FUX0RFU0tUT1A6ImF0X2Rlc2t0b3AiLExBVEVSX1RPREFZOiJsYXRlcl90b2RheSIsTkVYVF9CVVNJTkVTU19EQVk6Im5leHRfYnVzaW5lc3NfZGF5IixUT01PUlJPVzoidG9tb3Jyb3ciLE5FWFRfV0VFSzoibmV4dF93ZWVrIixORVhUX01PTlRIOiJuZXh0X21vbnRoIixDVVNUT006ImN1c3RvbSJ9O2UuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCwodT0oMCxpLmRlZmF1bHQpKCksYz0oMCxpLmRlZmF1bHQpKCksZD0oMCxpLmRlZmF1bHQpKCkscD0oMCxpLmRlZmF1bHQpKCksbT0oMCxpLmRlZmF1bHQpKCksZj0oMCxpLmRlZmF1bHQpKCksaD0oMCxpLmRlZmF1bHQpKCksYj0oMCxpLmRlZmF1bHQpKCksbChnPXtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLG5hbWU6bnVsbCxzZWxlY3RlZFJlbWluZGVyVHlwZTpudWxsLGNsb3NlV2l0aG91dFNhdmluZzohMSxpc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk6ITEsb25DbG9zZVdpdGhvdXRTYXZpbmc6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2Vycm9yTWVzc2FnZTpudWxsLG5hbWU6bnVsbCxzZWxlY3RlZFJlbWluZGVyVHlwZTpudWxsLGNsb3NlV2l0aG91dFNhdmluZzohMSxpc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk6ITF9KX0sb25DbG9zZTpmdW5jdGlvbigpe3RoaXMuY2xvc2VXaXRob3V0U2F2aW5nfHx0aGlzLmlzU2F2aW5nQm9va21hcmtNYW51YWxseXx8dGhpcy5zYXZlQm9va21hcmsoKSx0aGlzLm9uQ2xvc2VXaXRob3V0U2F2aW5nJiZ0aGlzLmNsb3NlV2l0aG91dFNhdmluZyYmdGhpcy5vbkNsb3NlV2l0aG91dFNhdmluZygpfSx1c2luZ01vYmlsZURldmljZTooMCxhLnJlYWRzKSgic2l0ZS5tb2JpbGVWaWV3Iiksc2hvd0Jvb2ttYXJrUmVtaW5kZXJDb250cm9sczohMSxyZW1pbmRlclR5cGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LHNob3dMYXRlclRvZGF5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubGF0ZXJUb2RheSgpLmlzU2FtZSh0aGlzLnRvbW9ycm93KCksImRhdGUiKX0sbGF0ZXJUb2RheUZvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5sYXRlcl90b2RheSIse2RhdGU6dGhpcy5sYXRlclRvZGF5KCkuZm9ybWF0KEkxOG4udCgiZGF0ZXMudGltZSIpKX0pKX0sdG9tb3Jyb3dGb3JtYXR0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmh0bWxTYWZlKShJMThuLnQoImJvb2ttYXJrcy5yZW1pbmRlcnMudG9tb3Jyb3ciLHtkYXRlOnRoaXMudG9tb3Jyb3coKS5mb3JtYXQoSTE4bi50KCJkYXRlcy50aW1lX3Nob3J0X2RheSIpKX0pKX0sbmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkOmZ1bmN0aW9uKCl7cmV0dXJuKDAsby5odG1sU2FmZSkoSTE4bi50KCJib29rbWFya3MucmVtaW5kZXJzLm5leHRfYnVzaW5lc3NfZGF5Iix7ZGF0ZTp0aGlzLm5leHRCdXNpbmVzc0RheSgpLmZvcm1hdChJMThuLnQoImRhdGVzLnRpbWVfc2hvcnRfZGF5IikpfSkpfSxuZXh0V2Vla0Zvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5uZXh0X3dlZWsiLHtkYXRlOnRoaXMubmV4dFdlZWsoKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXIiKSl9KSl9LG5leHRNb250aEZvcm1hdHRlZDpmdW5jdGlvbigpe3JldHVybigwLG8uaHRtbFNhZmUpKEkxOG4udCgiYm9va21hcmtzLnJlbWluZGVycy5uZXh0X21vbnRoIix7ZGF0ZTp0aGlzLm5leHRNb250aCgpLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhciIpKX0pKX0sdXNlckhhc1RpbWV6b25lU2V0OmZ1bmN0aW9uKCl7cmV0dXJuIV8uaXNFbXB0eSh0aGlzLnVzZXJUaW1lem9uZSgpKX0sc2F2ZUJvb2ttYXJrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMucmVtaW5kZXJBdCgpLG49dD90LnRvSVNPU3RyaW5nKCk6bnVsbCxpPXtyZW1pbmRlcl90eXBlOnRoaXMuc2VsZWN0ZWRSZW1pbmRlclR5cGUscmVtaW5kZXJfYXQ6bixuYW1lOnRoaXMubmFtZSxwb3N0X2lkOnRoaXMubW9kZWwucG9zdElkfTtyZXR1cm4oMCxyLmFqYXgpKCIvYm9va21hcmtzIix7dHlwZToiUE9TVCIsZGF0YTppfSkudGhlbihmdW5jdGlvbigpe2UuYWZ0ZXJTYXZlJiZlLmFmdGVyU2F2ZShuKX0pfSxyZW1pbmRlckF0OmZ1bmN0aW9uKCl7aWYodGhpcy5zZWxlY3RlZFJlbWluZGVyVHlwZSlzd2l0Y2godGhpcy5zZWxlY3RlZFJlbWluZGVyVHlwZSl7Y2FzZSB5LkFUX0RFU0tUT1A6cmV0dXJuIiI7Y2FzZSB5LkxBVEVSX1RPREFZOnJldHVybiB0aGlzLmxhdGVyVG9kYXkoKTtjYXNlIHkuTkVYVF9CVVNJTkVTU19EQVk6cmV0dXJuIHRoaXMubmV4dEJ1c2luZXNzRGF5KCk7Y2FzZSB5LlRPTU9SUk9XOnJldHVybiB0aGlzLnRvbW9ycm93KCk7Y2FzZSB5Lk5FWFRfV0VFSzpyZXR1cm4gdGhpcy5uZXh0V2VlaygpO2Nhc2UgeS5ORVhUX01PTlRIOnJldHVybiB0aGlzLm5leHRNb250aCgpO2Nhc2UgeS5DVVNUT006cmV0dXJuIiJ9fSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0T2ZEYXkodGhpcy5ub3coKS5hZGQoNywiZGF5cyIpKX0sbmV4dE1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRPZkRheSh0aGlzLm5vdygpLmFkZCgxLCJtb250aCIpKX0sbmV4dEJ1c2luZXNzRGF5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ub3coKS5pc29XZWVrZGF5KCksdD1udWxsLHQ9NT09PWU/dGhpcy5ub3coKS5hZGQoMywiZGF5cyIpOjY9PT1lP3RoaXMubm93KCkuYWRkKDIsImRheXMiKTp0aGlzLm5vdygpLmFkZCgxLCJkYXkiKTtyZXR1cm4gdGhpcy5zdGFydE9mRGF5KHQpfSx0b21vcnJvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0T2ZEYXkodGhpcy5ub3coKS5hZGQoMSwiZGF5IikpfSxzdGFydE9mRGF5OmZ1bmN0aW9uKGUpe3JldHVybiBlLmhvdXIoOCkuc3RhcnRPZigiaG91ciIpfSx1c2VyVGltZXpvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlci50aW1lem9uZX0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuIG1vbWVudC50eih0aGlzLnVzZXJUaW1lem9uZSgpKX0sbGF0ZXJUb2RheTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubm93KCkuYWRkKDMsImhvdXJzIik7cmV0dXJuIGUubWludXRlcygpPDMwP2UubWludXRlcygzMCk6ZS5hZGQoMzAsIm1pbnV0ZXMiKS5zdGFydE9mKCJob3VyIil9LGFjdGlvbnM6e3NhdmVBbmRDbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5pc1NhdmluZ0Jvb2ttYXJrTWFudWFsbHk9ITAsdGhpcy5zYXZlQm9va21hcmsoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7KHQuaXNTYXZpbmdCb29rbWFya01hbnVhbGx5PSExLHMucG9wdXBBamF4RXJyb3IpKGUpfSl9LGNsb3NlV2l0aG91dFNhdmluZ0Jvb2ttYXJrOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZVdpdGhvdXRTYXZpbmc9ITAsdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LHNlbGVjdFJlbWluZGVyVHlwZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRSZW1pbmRlclR5cGUiLGUpfX19LCJyZW1pbmRlclR5cGVzIixbdV0sKHY9KHY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJyZW1pbmRlclR5cGVzIikpP3YudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB2fX0pLGcpLGwoZywic2hvd0xhdGVyVG9kYXkiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInNob3dMYXRlclRvZGF5IiksZyksbChnLCJsYXRlclRvZGF5Rm9ybWF0dGVkIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJsYXRlclRvZGF5Rm9ybWF0dGVkIiksZyksbChnLCJ0b21vcnJvd0Zvcm1hdHRlZCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywidG9tb3Jyb3dGb3JtYXR0ZWQiKSxnKSxsKGcsIm5leHRCdXNpbmVzc0RheUZvcm1hdHRlZCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkIiksZyksbChnLCJuZXh0V2Vla0Zvcm1hdHRlZCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dFdlZWtGb3JtYXR0ZWQiKSxnKSxsKGcsIm5leHRNb250aEZvcm1hdHRlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibmV4dE1vbnRoRm9ybWF0dGVkIiksZyksbChnLCJ1c2VySGFzVGltZXpvbmVTZXQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInVzZXJIYXNUaW1lem9uZVNldCIpLGcpLGcpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2J1bGstbm90aWZpY2F0aW9uLWxldmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKG89e3RvcGljQnVsa0FjdGlvbnM6KDAsaS5pbmplY3QpKCksbm90aWZpY2F0aW9uTGV2ZWxJZDpudWxsLG5vdGlmaWNhdGlvbkxldmVsczpmdW5jdGlvbigpe3JldHVybiBzLnRvcGljTGV2ZWxzLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZS5pZC50b1N0cmluZygpLG5hbWU6STE4bi50KCJ0b3BpYy5ub3RpZmljYXRpb25zLiIrZS5rZXkrIi50aXRsZSIpLGRlc2NyaXB0aW9uOkkxOG4udCgidG9waWMubm90aWZpY2F0aW9ucy4iK2Uua2V5KyIuZGVzY3JpcHRpb24iKX19KX0sZGlzYWJsZWQ6KDAsbi5lbXB0eSkoIm5vdGlmaWNhdGlvbkxldmVsSWQiKSxhY3Rpb25zOntjaGFuZ2VOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbigpe3RoaXMudG9waWNCdWxrQWN0aW9ucy5wZXJmb3JtQW5kUmVmcmVzaCh7dHlwZToiY2hhbmdlX25vdGlmaWNhdGlvbl9sZXZlbCIsbm90aWZpY2F0aW9uX2xldmVsX2lkOnRoaXMubm90aWZpY2F0aW9uTGV2ZWxJZH0pfX19LHI9byxhPSJub3RpZmljYXRpb25MZXZlbHMiLGw9W3QuZGVmYXVsdF0sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIm5vdGlmaWNhdGlvbkxldmVscyIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9jaGFuZ2Utb3duZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiwibmV3X3VzZXIiKSxjPXt0b3BpY0NvbnRyb2xsZXI6KDAsby5pbmplY3QpKCJ0b3BpYyIpLHNhdmluZzohMSxuZXdfdXNlcjpudWxsLHNlbGVjdGVkUG9zdHNDb3VudDooMCxpLmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHNDb3VudCIpLHNlbGVjdGVkUG9zdHNVc2VybmFtZTooMCxpLmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHNVc2VybmFtZSIpLGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCgwLG4uaXNFbXB0eSkodCl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLG5ld191c2VyOiIifSl9LGFjdGlvbnM6e2NoYW5nZU93bmVyc2hpcE9mUG9zdHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgdD17cG9zdF9pZHM6dGhpcy5nZXQoInRvcGljQ29udHJvbGxlci5zZWxlY3RlZFBvc3RJZHMiKSx1c2VybmFtZTp0aGlzLm5ld191c2VyfTtyZXR1cm4gbC5kZWZhdWx0LmNoYW5nZU93bmVycyh0aGlzLmdldCgidG9waWNDb250cm9sbGVyLm1vZGVsLmlkIiksdCkudGhlbihmdW5jdGlvbigpe2Uuc2VuZCgiY2xvc2VNb2RhbCIpLGUudG9waWNDb250cm9sbGVyLnNlbmQoImRlc2VsZWN0QWxsIiksZS5nZXQoInRvcGljQ29udHJvbGxlci5tdWx0aVNlbGVjdCIpJiZlLnRvcGljQ29udHJvbGxlci5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpLCgwLHMubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LnJvdXRlVG8oZS5nZXQoInRvcGljQ29udHJvbGxlci5tb2RlbC51cmwiKSl9KX0sZnVuY3Rpb24oKXtlLmZsYXNoKEkxOG4udCgidG9waWMuY2hhbmdlX293bmVyLmVycm9yIiksImFsZXJ0LWVycm9yIiksZS5zZXQoInNhdmluZyIsITEpfSksITF9fX0sZD1jLHA9ImJ1dHRvbkRpc2FibGVkIixtPVt1XSxmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiYnV0dG9uRGlzYWJsZWQiKSxoPWMsYj17fSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2JbZV09ZltlXX0pLGIuZW51bWVyYWJsZT0hIWIuZW51bWVyYWJsZSxiLmNvbmZpZ3VyYWJsZT0hIWIuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gYnx8Yi5pbml0aWFsaXplcikmJihiLndyaXRhYmxlPSEwKSxiPW0uc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoZCxwLGUpfHxlfSxiKSxoJiZ2b2lkIDAhPT1iLmluaXRpYWxpemVyJiYoYi52YWx1ZT1iLmluaXRpYWxpemVyP2IuaW5pdGlhbGl6ZXIuY2FsbChoKTp2b2lkIDAsYi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWIuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxwLGIpLGI9bnVsbCksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY2hhbmdlLXRpbWVzdGFtcCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxpLG4scyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LCh1PSgwLHQuZGVmYXVsdCkoInNhdmluZyIpLGM9KDAsdC5kZWZhdWx0KSgiZGF0ZSIsInRpbWUiKSxkPSgwLHQuZGVmYXVsdCkoImNyZWF0ZWRBdCIpLHA9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiwiZGF0ZSIsInZhbGlkVGltZXN0YW1wIiksbChtPXt0b3BpY0NvbnRyb2xsZXI6KDAscy5pbmplY3QpKCJ0b3BpYyIpLHNhdmluZzohMSxkYXRlOiIiLHRpbWU6IiIsYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInRvcGljLmNoYW5nZV90aW1lc3RhbXAuYWN0aW9uIil9LGNyZWF0ZWRBdDpmdW5jdGlvbihlLHQpe3JldHVybiBtb21lbnQoZSsiICIrdCwiWVlZWS1NTS1ERCBISDptbTpzcyIpfSx2YWxpZFRpbWVzdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gbW9tZW50KCkuZGlmZihlLCJtaW51dGVzIik8MH0sYnV0dG9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiEoIWUmJiFuKXx8KDAsaS5pc0VtcHR5KSh0KX0sb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImRhdGUiLG1vbWVudCgpLmZvcm1hdCgiWVlZWS1NTS1ERCIpKX0sYWN0aW9uczp7Y2hhbmdlVGltZXN0YW1wOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgic2F2aW5nIiwhMCk7dmFyIHQ9dGhpcy50b3BpY0NvbnRyb2xsZXIubW9kZWw7cmV0dXJuIGEuZGVmYXVsdC5jaGFuZ2VUaW1lc3RhbXAodC5pZCx0aGlzLmNyZWF0ZWRBdC51bml4KCkpLnRoZW4oZnVuY3Rpb24oKXtlLnNlbmQoImNsb3NlTW9kYWwiKSxlLnNldFByb3BlcnRpZXMoe2RhdGU6IiIsdGltZToiIixzYXZpbmc6ITF9KSwoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVmYXVsdC5yb3V0ZVRvKHQudXJsKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZS5mbGFzaChJMThuLnQoInRvcGljLmNoYW5nZV90aW1lc3RhbXAuZXJyb3IiKSwiYWxlcnQtZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInNhdmluZyIsITEpfSksITF9fX0sImJ1dHRvblRpdGxlIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJidXR0b25UaXRsZSIpLG0pLGwobSwiY3JlYXRlZEF0IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjcmVhdGVkQXQiKSxtKSxsKG0sInZhbGlkVGltZXN0YW1wIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJ2YWxpZFRpbWVzdGFtcCIpLG0pLGwobSwiYnV0dG9uRGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImJ1dHRvbkRpc2FibGVkIiksbSksbSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY29tcG9zZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvZGVwcmVjYXRlZCJdLGZ1bmN0aW9uKGUsaSx0LG4scyxvLHUscixsLGMsYSxkLHAsbSxmLGgsYixnLHYseSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRvZ2dsZUNoZWNrRHJhZnRQb3B1cD1mdW5jdGlvbihlKXtHPWV9LGUuY2xlYXJQb3B1cE1lbnVPcHRpb25zQ2FsbGJhY2s9ZnVuY3Rpb24oKXtWLmxlbmd0aD0wfSxlLmFkZFBvcHVwTWVudU9wdGlvbnNDYWxsYmFjaz1mdW5jdGlvbihlKXtWLnB1c2goZSl9O3ZhciB3LHgsayxQLGosVCxFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsSz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBXKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBWPVtdLEc9InRlc3QiPT09IWcuZGVmYXVsdC5lbnZpcm9ubWVudDtlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZCgodz0oMCxhLm9uKSgiaW5pdCIpLHg9KDAsYS5kZWZhdWx0KSgic2hvd1ByZXZpZXciKSxrPSgwLGEub2JzZXJ2ZXMpKCJzaG93UHJldmlldyIpLFA9KDAsYS5kZWZhdWx0KSgibW9kZWwucmVwbHlpbmdUb1RvcGljIiwibW9kZWwuY3JlYXRpbmdQcml2YXRlTWVzc2FnZSIsIm1vZGVsLnRhcmdldFJlY2lwaWVudHMiLCJtb2RlbC5jb21wb3NlU3RhdGUiKSxqPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmNhbkVkaXRUaXRsZSIsIm1vZGVsLmNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2UiKSxUPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmVkaXRpbmdQb3N0IiwibW9kZWwudG9waWMuZGV0YWlscy5jYW5fZWRpdCIpLEU9KDAsYS5kZWZhdWx0KSgibW9kZWwuZWRpdGluZ1Bvc3QiLCJtb2RlbC50b3BpYy5jYW5FZGl0VGFncyIpLE89KDAsYS5kZWZhdWx0KSgiY2FuV2hpc3BlciIsInJlcGx5aW5nVG9XaGlzcGVyIiksUz0oMCxhLmRlZmF1bHQpKCJtb2RlbC5wb3N0IiksQz0oMCxhLmRlZmF1bHQpKCJtb2RlbC5hY3Rpb24iLCJpc1doaXNwZXJpbmciKSxNPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmFjdGlvbiIsImlzV2hpc3BlcmluZyIsIm1vZGVsLmVkaXRDb25mbGljdCIpLEQ9KDAsYS5kZWZhdWx0KSgiaXNTdGFmZlVzZXIiLCJtb2RlbC5hY3Rpb24iKSxJPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmNvbXBvc2VTdGF0ZSIsIm1vZGVsLmNyZWF0aW5nVG9waWMiLCJtb2RlbC5wb3N0IiksTD0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jcmVhdGluZ1ByaXZhdGVNZXNzYWdlIiwibW9kZWwudGFyZ2V0UmVjaXBpZW50cyIpLEE9KDAsYS5kZWZhdWx0KSgibW9kZWwudG9waWMudGl0bGUiKSxOPSgwLGEuZGVmYXVsdCkoKSx6PSgwLGEub2JzZXJ2ZXMpKCJtb2RlbC5yZXBseSIsIm1vZGVsLnRpdGxlIiksVT0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jYXRlZ29yeUlkIiwibGFzdFZhbGlkYXRlZEF0IiksRj0oMCxhLmRlZmF1bHQpKCJtb2RlbC5jYXRlZ29yeSIsIm1vZGVsLnRhZ3MiLCJsYXN0VmFsaWRhdGVkQXQiKSxCPSgwLGEuZGVmYXVsdCkoIm1vZGVsLmFjdGlvbiIpLFI9KDAsYS5kZWZhdWx0KSgibW9kZWwuY29tcG9zZVN0YXRlIiksXyhIPXt0b3BpY0NvbnRyb2xsZXI6KDAsby5pbmplY3QpKCJ0b3BpYyIpLHJvdXRlcjooMCxzLmluamVjdCkoKSxjaGVja2VkTWVzc2FnZXM6ITEsbWVzc2FnZUNvdW50Om51bGwsc2hvd0VkaXRSZWFzb246ITEsZWRpdFJlYXNvbjpudWxsLHNjb3BlZENhdGVnb3J5SWQ6bnVsbCxsYXN0VmFsaWRhdGVkQXQ6bnVsbCxpc1VwbG9hZGluZzohMSxhbGxvd1VwbG9hZDohMSx1cGxvYWRJY29uOiJ1cGxvYWQiLHRvcGljOm51bGwsbGlua0xvb2t1cDpudWxsLHNob3dQcmV2aWV3OiEwLGZvcmNlUHJldmlldzooMCx0LmFuZCkoInNpdGUubW9iaWxlVmlldyIsInNob3dQcmV2aWV3Iiksd2hpc3Blck9yVW5saXN0VG9waWM6KDAsdC5vcikoImlzV2hpc3BlcmluZyIsIm1vZGVsLnVubGlzdFRvcGljIiksY2F0ZWdvcmllczooMCx0LmFsaWFzKSgic2l0ZS5jYXRlZ29yaWVzTGlzdCIpLF9zZXR1cFByZXZpZXc6ZnVuY3Rpb24oKXt2YXIgZT0hdGhpcy5zaXRlLm1vYmlsZVZpZXcmJih0aGlzLmtleVZhbHVlU3RvcmUuZ2V0KCJjb21wb3Nlci5zaG93UHJldmlldyIpfHwidHJ1ZSIpO3RoaXMuc2V0KCJzaG93UHJldmlldyIsInRydWUiPT09ZSl9LHRvZ2dsZVRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJjb21wb3Nlci5oaWRlX3ByZXZpZXciKTpJMThuLnQoImNvbXBvc2VyLnNob3dfcHJldmlldyIpfSxzaG93UHJldmlld0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5rZXlWYWx1ZVN0b3JlLnNldCh7a2V5OiJjb21wb3Nlci5zaG93UHJldmlldyIsdmFsdWU6dGhpcy5zaG93UHJldmlld30pfSxmb2N1c1RhcmdldDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMuaXNJT1MmJiEoMCxwLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCk/Im5vbmUiOihuPW58fCIiLHQmJjA9PT1uLmxlbmd0aHx8bj09PXRoaXMuY3VycmVudFVzZXIudXNlcm5hbWU/InVzZXJuYW1lcyI6ZT8icmVwbHkiOmk9PT1jLmRlZmF1bHQuRlVMTFNDUkVFTj8iZWRpdG9yIjoidGl0bGUiKX0sc2hvd1Rvb2xiYXI6KDAsdi5jb21wdXRlZCkoe2dldDpmdW5jdGlvbigpe3ZhciBlPSgwLGQuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKS5nZXQoInRvb2xiYXItZW5hYmxlZCIpO3JldHVybiB2b2lkIDA9PT10aGlzLl90b29sYmFyRW5hYmxlZCYmdm9pZCAwPT09ZSYmKHRoaXMuX3Rvb2xiYXJFbmFibGVkPTM3MDx3aW5kb3cuaW5uZXJXaWR0aCYmIXRoaXMuY2FwYWJpbGl0aWVzLmlzQW5kcm9pZCksdGhpcy5fdG9vbGJhckVuYWJsZWR8fCJ0cnVlIj09PWV9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLGQuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKTtyZXR1cm4gdGhpcy5fdG9vbGJhckVuYWJsZWQ9dCxuLnNldCh7a2V5OiJ0b29sYmFyLWVuYWJsZWQiLHZhbHVlOnQ/InRydWUiOiJmYWxzZSJ9KSx0fX0pLHRvcGljTW9kZWw6KDAsdC5hbGlhcykoInRvcGljQ29udHJvbGxlci5tb2RlbCIpLGNhbkVkaXRUYWdzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZS5jYW5fdGFnX3RvcGljcyYmZSYmIXQmJighdGhpcy5nZXQoIm1vZGVsLnRvcGljLmlzUHJpdmF0ZU1lc3NhZ2UiKXx8dGhpcy5zaXRlLmNhbl90YWdfcG1zKX0sZGlzYWJsZUNhdGVnb3J5Q2hvb3NlcjpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYhdH0sZGlzYWJsZVRhZ3NDaG9vc2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxpc1N0YWZmVXNlcjooMCx0LnJlYWRzKSgiY3VycmVudFVzZXIuc3RhZmYiKSxjYW5Vbmxpc3RUb3BpYzooMCx0LmFuZCkoIm1vZGVsLmNyZWF0aW5nVG9waWMiLCJpc1N0YWZmVXNlciIpLHNob3dXaGlzcGVyVG9nZ2xlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxyZXBseWluZ1RvV2hpc3BlcjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5wb3N0X3R5cGU9PT10aGlzLnNpdGUucG9zdF90eXBlcy53aGlzcGVyfSxpc1doaXNwZXJpbmc6KDAsdC5vcikoInJlcGx5aW5nVG9XaGlzcGVyIiwibW9kZWwud2hpc3BlciIpLHNhdmVJY29uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ImZhci1leWUtc2xhc2giOmMuU0FWRV9JQ09OU1tlXX0sc2F2ZUxhYmVsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj8iY29tcG9zZXIub3ZlcndyaXRlX2VkaXQiOnQ/ImNvbXBvc2VyLmNyZWF0ZV93aGlzcGVyIjpjLlNBVkVfTEFCRUxTW2VdfSxjYW5XaGlzcGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV93aGlzcGVycyYmZSYmYy5kZWZhdWx0LlJFUExZPT09dH0sX3NldHVwUG9wdXBNZW51T3B0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUodGhpcyk7cmV0dXJuIHZvaWQgMD09PXQ/bnVsbDoodm9pZCAwPT09dC5jb25kaXRpb24/dC5jb25kaXRpb249ITA6ImJvb2xlYW4iPT10eXBlb2YgdC5jb25kaXRpb258fCh0LmNvbmRpdGlvbj10aGlzLmdldCh0LmNvbmRpdGlvbikpLHQpfSxwb3B1cE1lbnVPcHRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoIm9wZW4iPT09ZXx8ImZ1bGxzY3JlZW4iPT09ZSl7dmFyIG49W107cmV0dXJuIG4ucHVzaCh0aGlzLl9zZXR1cFBvcHVwTWVudU9wdGlvbihmdW5jdGlvbigpe3JldHVybnthY3Rpb246InRvZ2dsZUludmlzaWJsZSIsaWNvbjoiZmFyLWV5ZS1zbGFzaCIsbGFiZWw6ImNvbXBvc2VyLnRvZ2dsZV91bmxpc3RlZCIsY29uZGl0aW9uOiJjYW5Vbmxpc3RUb3BpYyJ9fSkpLG4ucHVzaCh0aGlzLl9zZXR1cFBvcHVwTWVudU9wdGlvbihmdW5jdGlvbigpe3JldHVybnthY3Rpb246InRvZ2dsZVdoaXNwZXIiLGljb246ImZhci1leWUtc2xhc2giLGxhYmVsOiJjb21wb3Nlci50b2dnbGVfd2hpc3BlciIsY29uZGl0aW9uOiJzaG93V2hpc3BlclRvZ2dsZSJ9fSkpLG4uY29uY2F0KFYubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9zZXR1cFBvcHVwTWVudU9wdGlvbihlKX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX19LHNob3dXYXJuaW5nOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpKXJldHVybiExO3ZhciBuPXRoaXMuZ2V0KCJtb2RlbC5oYXNUYXJnZXRHcm91cHMiKTtyZXR1cm4hKDAsaS5pc0VtcHR5KSh0KSYmMT09PXQuc3BsaXQoIiwiKS5sZW5ndGgmJiFuJiZlfSxkcmFmdFRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybigwLGYuZW1vamlVbmVzY2FwZSkoKDAscC5lc2NhcGVFeHByZXNzaW9uKShlKSl9fSwiYWxsb3dVcGxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbS5hdXRob3JpemVzT25lT3JNb3JlRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZil9KSxfKEgsInVwbG9hZEljb24iLGZ1bmN0aW9uKCl7cmV0dXJuKDAsbS51cGxvYWRJY29uKSh0aGlzLmN1cnJlbnRVc2VyLnN0YWZmKX0pLF8oSCwiYWN0aW9ucyIse3RvZ2dsZVByZXZpZXc6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJzaG93UHJldmlldyIpfSxjbG9zZUNvbXBvc2VyOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpfSxvcGVuQ29tcG9zZXI6ZnVuY3Rpb24oZSxvLHIpe3ZhciBhPXRoaXM7dGhpcy5vcGVuKGUpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT12b2lkIDA7byYmKGU9by51cmwpLCFvJiZyJiYoZT1yLnVybCk7dmFyIHQsbixpLHM9dm9pZCAwO3ImJihzPXIudGl0bGUpLGUmJnMmJihlPWxvY2F0aW9uLnByb3RvY29sKyIvLyIrbG9jYXRpb24uaG9zdCtlLHQ9IlsiK0hhbmRsZWJhcnMuZXNjYXBlRXhwcmVzc2lvbihzKSsiXSgiK2UrIikiLG49STE4bi50KCJwb3N0LmNvbnRpbnVlX2Rpc2N1c3Npb24iLHtwb3N0TGluazp0fSksKGk9YS5nZXQoIm1vZGVsLnJlcGx5IikpJiZpLmluY2x1ZGVzKG4pfHxhLm1vZGVsLnByZXBlbmRUZXh0KG4se25ld19saW5lOiEwfSkpfSl9LGNhbmNlbFVwbG9hZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJtb2RlbC51cGxvYWRDYW5jZWxsZWQiLCEwKX0sb25Qb3B1cE1lbnVBY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy5zZW5kKGUpfSxzdG9yZVRvb2xiYXJTdGF0ZTpmdW5jdGlvbihlKXt0aGlzLnNldCgidG9vbGJhckV2ZW50IixlKX0sdHlwZWQ6ZnVuY3Rpb24oKXt0aGlzLmNoZWNrUmVwbHlMZW5ndGgoKSx0aGlzLm1vZGVsLnR5cGluZygpfSxjYW5jZWxsZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImhpdEVzYyIpfSxhZGRMaW5rTG9va3VwOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJsaW5rTG9va3VwIixlKX0sYWZ0ZXJSZWZyZXNoOmZ1bmN0aW9uKGUpe3ZhciBsLHU9dGhpcyxjPXRoaXMuZ2V0KCJtb2RlbC50b3BpYyIpLGQ9dGhpcy5saW5rTG9va3VwO2MmJmQmJjEhPT1jLnBvc3RzX2NvdW50JiYobD10aGlzLmdldCgibW9kZWwucG9zdCIpLCQoImFbaHJlZl0iLGUpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLnByb3AoImhyZWYiKTtpZihuJiZuLmxlbmd0aCl7dmFyIGk9ZC5jaGVjayhsLG4pLHM9SyhpLDIpLG89c1swXSxyPXNbMV07aWYobyl7dmFyIGE9STE4bi50KCJjb21wb3Nlci5kdXBsaWNhdGVfbGluayIse2RvbWFpbjpyLmRvbWFpbix1c2VybmFtZTpyLnVzZXJuYW1lLHBvc3RfdXJsOmMudXJsRm9yUG9zdE51bWJlcihyLnBvc3RfbnVtYmVyKSxhZ286KDAsaC5zaG9ydERhdGUpKHIucG9zdGVkX2F0KX0pO3JldHVybiB1LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHtleHRyYUNsYXNzOiJjdXN0b20tYm9keSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsYm9keTphfSksITF9fXJldHVybiEwfSkpfSx0b2dnbGVXaGlzcGVyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgibW9kZWwud2hpc3BlciIpfSx0b2dnbGVJbnZpc2libGU6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJtb2RlbC51bmxpc3RUb3BpYyIpfSx0b2dnbGVUb29sYmFyOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd1Rvb2xiYXIiKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2VBdXRvY29tcGxldGUoKSwoMCxpLmlzRW1wdHkpKHRoaXMuZ2V0KCJtb2RlbC5yZXBseSIpKSYmKDAsaS5pc0VtcHR5KSh0aGlzLmdldCgibW9kZWwudGl0bGUiKSk/dGhpcy5jbG9zZSgpOnRoaXMuZ2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiKT09PWMuZGVmYXVsdC5PUEVOfHx0aGlzLmdldCgibW9kZWwuY29tcG9zZVN0YXRlIik9PT1jLmRlZmF1bHQuRlVMTFNDUkVFTj90aGlzLnNocmluaygpOnRoaXMuY2FuY2VsQ29tcG9zZXIoKSwhMX0sZnVsbHNjcmVlbkNvbXBvc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9nZ2xlRnVsbHNjcmVlbigpLCExfSxpbXBvcnRRdW90ZTpmdW5jdGlvbihuKXt2YXIgZSx0LGk9dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSxzPXRoaXMuZ2V0KCJtb2RlbC5wb3N0LmlkIik7aWYoIXMmJmkmJihzPWkuZ2V0KCJzdHJlYW0uZmlyc3RPYmplY3QiKSksdGhpcy5nZXQoIm1vZGVsLmVkaXRpbmdQb3N0IikmJighKGU9dGhpcy5nZXQoIm1vZGVsLnBvc3QucmVwbHlfdG9fcG9zdF9udW1iZXIiKSl8fCh0PWkucG9zdHMuZmluZEJ5KCJwb3N0X251bWJlciIsZSkpJiYocz10LmlkKSkscyl7dGhpcy5zZXQoIm1vZGVsLmxvYWRpbmciLCEwKTt2YXIgbz10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmQoInBvc3QiLHMpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ci5kZWZhdWx0LmJ1aWxkKGUsZS5yYXcse3JhdzohMCxmdWxsOiEwfSk7bi5hZGRUZXh0KHQpLG8uc2V0KCJtb2RlbC5sb2FkaW5nIiwhMSl9KX19LGNhbmNlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJ0b3BpYy5pZCIpIT09dGhpcy5nZXQoIm1vZGVsLnRvcGljLmlkIik7dGhpcy5jYW5jZWxDb21wb3NlcihlKX0sc2F2ZTpmdW5jdGlvbigpe3RoaXMuc2F2ZSgpfSxkaXNwbGF5RWRpdFJlYXNvbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG93RWRpdFJlYXNvbiIsITApfSxoaXRFc2M6ZnVuY3Rpb24oKXsxIT09ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmVtb2ppLXBpY2tlci1tb2RhbC5mYWRlSW4iKS5sZW5ndGg/MDwodGhpcy5tZXNzYWdlQ291bnR8fDApP3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyLW1lc3NhZ2VzOmNsb3NlIik6KHRoaXMuZ2V0KCJtb2RlbC52aWV3T3BlbiIpfHx0aGlzLmdldCgibW9kZWwudmlld0Z1bGxzY3JlZW4iKSkmJnRoaXMuc2hyaW5rKCk6dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiZW1vamktcGlja2VyOmNsb3NlIil9LG9wZW5JZkRyYWZ0OmZ1bmN0aW9uKCl7dGhpcy5nZXQoIm1vZGVsLnZpZXdEcmFmdCIpJiZ0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTil9LGdyb3Vwc01lbnRpb25lZDpmdW5jdGlvbihlKXt2YXIgaT10aGlzO3RoaXMuZ2V0KCJtb2RlbC5jcmVhdGluZ1ByaXZhdGVNZXNzYWdlIil8fHRoaXMuZ2V0KCJtb2RlbC50b3BpYy5pc1ByaXZhdGVNZXNzYWdlIil8fGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD12b2lkIDAsbj1EaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iK2UubmFtZSsiL21lbWJlcnMiKTtlLm1heF9tZW50aW9uczxlLnVzZXJfY291bnQ/dD1JMThuLnQoImNvbXBvc2VyLmdyb3VwX21lbnRpb25lZF9saW1pdCIse2dyb3VwOiJAIitlLm5hbWUsbWF4OmUubWF4X21lbnRpb25zLGdyb3VwX2xpbms6bn0pOjA8ZS51c2VyX2NvdW50JiYodD1JMThuLnQoImNvbXBvc2VyLmdyb3VwX21lbnRpb25lZCIse2dyb3VwOiJAIitlLm5hbWUsY291bnQ6ZS51c2VyX2NvdW50LGdyb3VwX2xpbms6bn0pKSx0JiZpLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHtleHRyYUNsYXNzOiJjdXN0b20tYm9keSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsYm9keTp0fSl9KX0sY2Fubm90U2VlTWVudGlvbjpmdW5jdGlvbihlKXt2YXIgaT10aGlzO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1pLmdldCgibW9kZWwudG9waWMuaXNQcml2YXRlTWVzc2FnZSIpPyJjb21wb3Nlci5jYW5ub3Rfc2VlX21lbnRpb24ucHJpdmF0ZSI6ImNvbXBvc2VyLmNhbm5vdF9zZWVfbWVudGlvbi5jYXRlZ29yeSIsbj1JMThuLnQodCx7dXNlcm5hbWU6IkAiK2UubmFtZX0pO2kuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyLW1lc3NhZ2VzOmNyZWF0ZSIse2V4dHJhQ2xhc3M6ImN1c3RvbS1ib2R5Iix0ZW1wbGF0ZU5hbWU6ImN1c3RvbS1ib2R5Iixib2R5Om59KX0pfX0pLF8oSCwiZGlzYWJsZVN1Ym1pdCIsKDAsdC5vcikoIm1vZGVsLmxvYWRpbmciLCJpc1VwbG9hZGluZyIpKSxfKEgsInNhdmUiLGZ1bmN0aW9uKGUpe3ZhciBzPXRoaXM7aWYoIXRoaXMuZGlzYWJsZVN1Ym1pdCl7dGhpcy5zaG93V2FybmluZ3x8dGhpcy5zZXQoIm1vZGVsLmlzV2FybmluZyIsITEpO3ZhciBvPXRoaXMubW9kZWw7aWYoIW8uY2FudFN1Ym1pdFBvc3Qpe2lmKG8uc2V0KCJkaXNhYmxlRHJhZnRzIiwhMCksIWUmJm8ucmVwbHlpbmdUb1RvcGljKXt2YXIgdD10aGlzLnRvcGljTW9kZWw7aWYoIXQpcmV0dXJuIHZvaWQgdGhpcy5zYXZlKCEwKTtpZih0LmlkIT09by5nZXQoInRvcGljLmlkIikpe3ZhciBuPUkxOG4udCgiY29tcG9zZXIucG9zdGluZ19ub3Rfb25fdG9waWMiKSxpPVt7bGFiZWw6STE4bi50KCJjb21wb3Nlci5jYW5jZWwiKSxjbGFzczoiZC1tb2RhbC1jYW5jZWwiLGxpbms6ITB9XTtyZXR1cm4gaS5wdXNoKHtsYWJlbDpJMThuLnQoImNvbXBvc2VyLnJlcGx5X2hlcmUiKSsiPGJyLz48ZGl2IGNsYXNzPSd0b3BpYy10aXRsZSBvdmVyZmxvdy1lbGxpcHNpcyc+Iit0LmdldCgiZmFuY3lUaXRsZSIpKyI8L2Rpdj4iLGNsYXNzOiJidG4gYnRuLXJlcGx5LWhlcmUiLGNhbGxiYWNrOmZ1bmN0aW9uKCl7by5zZXRQcm9wZXJ0aWVzKHt0b3BpYzp0LHBvc3Q6bnVsbH0pLHMuc2F2ZSghMCl9fSksaS5wdXNoKHtsYWJlbDpJMThuLnQoImNvbXBvc2VyLnJlcGx5X29yaWdpbmFsIikrIjxici8+PGRpdiBjbGFzcz0ndG9waWMtdGl0bGUgb3ZlcmZsb3ctZWxsaXBzaXMnPiIrdGhpcy5nZXQoIm1vZGVsLnRvcGljLmZhbmN5VGl0bGUiKSsiPC9kaXY+IixjbGFzczoiYnRuLXByaW1hcnkgYnRuLXJlcGx5LW9uLW9yaWdpbmFsIixjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBzLnNhdmUoITApfX0pLHZvaWQgYm9vdGJveC5kaWFsb2cobixpLHtjbGFzc2VzOiJyZXBseS13aGVyZS1tb2RhbCJ9KX19dmFyIHI9ITEsYT17fTskKCIjcmVwbHktY29udHJvbCAuZC1lZGl0b3ItcHJldmlldyBpbWciKS5lYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIG49JCh0KSxpPW4ucHJvcCgic3JjIik7aSYmaS5sZW5ndGgmJihhW2ldPXt3aWR0aDpuLndpZHRoKCksaGVpZ2h0Om4uaGVpZ2h0KCl9KX0pO3ZhciBsPW8uc2F2ZSh7aW1hZ2VTaXplczphLGVkaXRSZWFzb246dGhpcy5lZGl0UmVhc29ufSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtpZigiZW5xdWV1ZWQiPT09ZS5yZXNwb25zZUpzb24uYWN0aW9uKXJldHVybiBzLnNlbmQoInBvc3RXYXNFbnF1ZXVlZCIsZS5yZXNwb25zZUpzb24pLCFlLnJlc3BvbnNlSnNvbi5wZW5kaW5nX3Bvc3R8fCh0PXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIubW9kZWwucGVuZGluZ19wb3N0cyIpKSYmdC5wdXNoT2JqZWN0KGUucmVzcG9uc2VKc29uLnBlbmRpbmdfcG9zdCkscy5kZXN0cm95RHJhZnQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHMuY2xvc2UoKSxzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIiksZX0pO2lmKHMuZ2V0KCJtb2RlbC5lZGl0aW5nUG9zdCIpPyhzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6cGFyc2VJbnQoZS5yZXNwb25zZUpzb24uaWQsMTApfSksMT09PWUucmVzcG9uc2VKc29uLnBvc3QucG9zdF9udW1iZXImJnMuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjp1cGRhdGUtdG9waWMiLG8udG9waWMpKTpzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIiksImNyZWF0ZV9wb3N0Ij09PWUucmVzcG9uc2VKc29uLmFjdGlvbiYmcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdDpoaWdobGlnaHQiLGUucGF5bG9hZC5wb3N0X251bWJlciksZS5yZXNwb25zZUpzb24ucm91dGVfdG8pcmV0dXJuIHMuZGVzdHJveURyYWZ0KCksZS5yZXNwb25zZUpzb24ubWVzc2FnZT9ib290Ym94LmFsZXJ0KGUucmVzcG9uc2VKc29uLm1lc3NhZ2UsZnVuY3Rpb24oKXt1LmRlZmF1bHQucm91dGVUbyhlLnJlc3BvbnNlSnNvbi5yb3V0ZV90byl9KTp1LmRlZmF1bHQucm91dGVUbyhlLnJlc3BvbnNlSnNvbi5yb3V0ZV90byk7cy5jbG9zZSgpO3ZhciBuPXMuY3VycmVudFVzZXI7by5jcmVhdGluZ1RvcGljP24uc2V0KCJ0b3BpY19jb3VudCIsbi50b3BpY19jb3VudCsxKTpuLnNldCgicmVwbHlfY291bnQiLG4ucmVwbHlfY291bnQrMSk7dmFyIGk9ZS50YXJnZXQ7aSYmIXImJnUuZGVmYXVsdC5yb3V0ZVRvKGkudXJsLHtza2lwSWZPblNjcmVlbjohMH0pfSkuY2F0Y2goZnVuY3Rpb24oZSl7by5zZXQoImRpc2FibGVEcmFmdHMiLCExKSxlJiZzLmFwcEV2ZW50cy5vbmUoImNvbXBvc2VyOndpbGwtb3BlbiIsZnVuY3Rpb24oKXtyZXR1cm4gYm9vdGJveC5hbGVydChlKX0pfSk7cmV0dXJuInRvcGljIj09PXRoaXMucm91dGVyLmN1cnJlbnRSb3V0ZU5hbWUuc3BsaXQoIi4iKVswXSYmby5nZXQoInRvcGljLmlkIik9PT10aGlzLmdldCgidG9waWNNb2RlbC5pZCIpJiYocj1vLmdldCgic3RhZ2VkUG9zdCIpKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHIpLHRoaXMubWVzc2FnZUJ1cy5wYXVzZSgpLGwuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBzLm1lc3NhZ2VCdXMucmVzdW1lKCl9KSxsfXRoaXMuc2V0KCJsYXN0VmFsaWRhdGVkQXQiLERhdGUubm93KCkpfX0pLF8oSCwiY2hlY2tSZXBseUxlbmd0aCIsZnVuY3Rpb24oKXsoMCxpLmlzRW1wdHkpKCJtb2RlbC5yZXBseSIpfHx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3Nlcjp0eXBlZC1yZXBseSIpfSksXyhILCJvcGVuIixmdW5jdGlvbihpKXt2YXIgcz10aGlzO2lmKCEoaT1pfHx7fSkuZHJhZnRLZXkpdGhyb3cgbmV3IEVycm9yKCJjb21wb3NlciBvcGVuZWQgd2l0aG91dCBhIHByb3BlciBkcmFmdCBrZXkiKTt2YXIgbz10aGlzLm1vZGVsO2lmKCFpLmlnbm9yZUlmQ2hhbmdlZHx8IW98fG8uY29tcG9zZVN0YXRlPT09Yy5kZWZhdWx0LkNMT1NFRClyZXR1cm4gdGhpcy5zZXRQcm9wZXJ0aWVzKHtzaG93RWRpdFJlYXNvbjohMSxlZGl0UmVhc29uOm51bGwsc2NvcGVkQ2F0ZWdvcnlJZDpudWxsfSksaS5jYXRlZ29yeUlkJiYhaS5kaXNhYmxlU2NvcGVkQ2F0ZWdvcnkmJnRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLGkuY2F0ZWdvcnlJZCkmJnRoaXMuc2V0KCJzY29wZWRDYXRlZ29yeUlkIixpLmNhdGVnb3J5SWQpLG8mJmkuZHJhZnRLZXkhPT1vLmRyYWZ0S2V5JiZvLmNvbXBvc2VTdGF0ZT09PWMuZGVmYXVsdC5EUkFGVCYmKHRoaXMuY2xvc2UoKSxvPW51bGwpLG5ldyBiLlByb21pc2UoZnVuY3Rpb24oZSx0KXtpZihvJiZvLnJlcGx5RGlydHkpe2lmKG8uY29tcG9zZVN0YXRlPT09Yy5kZWZhdWx0Lk9QRU4mJm8uZHJhZnRLZXk9PT1pLmRyYWZ0S2V5JiYhaS5hY3Rpb24pcmV0dXJuIGUoKTtpZihvLmNvbXBvc2VTdGF0ZT09PWMuZGVmYXVsdC5EUkFGVCYmby5kcmFmdEtleT09PWkuZHJhZnRLZXkmJihvLnNldCgiY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTiksIWkuYWN0aW9uKSlyZXR1cm4gZSgpO3ZhciBuPSFpLnBvc3R8fCFvLnRvcGljfHxvLnRvcGljLmlkIT09aS5wb3N0LnRvcGljX2lkO3JldHVybiBzLmNhbmNlbENvbXBvc2VyKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcy5vcGVuKGkpfSkudGhlbihlLHQpfWlmKG8mJm8uYWN0aW9uIT09aS5hY3Rpb24mJm8uc2V0UHJvcGVydGllcyh7dW5saXN0VG9waWM6ITEsd2hpc3BlcjohMX0pLHZvaWQgMD09PWkuZHJhZnRTZXF1ZW5jZSlyZXR1cm4gbC5kZWZhdWx0LmdldChpLmRyYWZ0S2V5KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBpLnNraXBEcmFmdENoZWNrPyhlLmRyYWZ0PXZvaWQgMCxlKTpzLmNvbmZpcm1EcmFmdEFiYW5kb24oZSl9KS50aGVuKGZ1bmN0aW9uKGUpeyFpLmRyYWZ0JiZlLmRyYWZ0JiYoaS5kcmFmdD1lLmRyYWZ0KSxpLmRyYWZ0U2VxdWVuY2U9ZS5kcmFmdF9zZXF1ZW5jZSxzLl9zZXRNb2RlbChvLGkpfSkudGhlbihlLHQpO2kuZHJhZnR8fGkuc2tpcERyYWZ0Q2hlY2t8fGwuZGVmYXVsdC5nZXQoaS5kcmFmdEtleSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gcy5jb25maXJtRHJhZnRBYmFuZG9uKGUpfSkudGhlbihmdW5jdGlvbihlKXtlLmRyYWZ0JiYoaS5kcmFmdD1lLmRyYWZ0LGkuZHJhZnRTZXF1ZW5jZT1lLmRyYWZ0X3NlcXVlbmNlLHMub3BlbihpKSl9KSxzLl9zZXRNb2RlbChvLGkpLGUoKX0pfSksXyhILCJfc2V0TW9kZWwiLGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzO3RoaXMuc2V0KCJsaW5rTG9va3VwIixudWxsKSx0LmRyYWZ0PyhlPWZ1bmN0aW9uKGUsdCl7dmFyIG49KHQ9dHx8e30pLmRyYWZ0LGk9dC5kcmFmdEtleSxzPXQuZHJhZnRTZXF1ZW5jZTt0cnl7biYmInN0cmluZyI9PXR5cGVvZiBuJiYobj1KU09OLnBhcnNlKG4pKX1jYXRjaChlKXtuPW51bGwsbC5kZWZhdWx0LmNsZWFyKGkscyl9aWYobiYmKG4udGl0bGUmJiIiIT09bi50aXRsZXx8bi5yZXBseSYmIiIhPT1uLnJlcGx5KSl7dmFyIG89ZS5jcmVhdGVSZWNvcmQoImNvbXBvc2VyIikscj1jLmRlZmF1bHQuc2VyaWFsaXplZEZpZWxkc0ZvckRyYWZ0KCksYT17ZHJhZnRLZXk6aSxkcmFmdFNlcXVlbmNlOnMsZHJhZnQ6ITAsY29tcG9zZXJTdGF0ZTpjLmRlZmF1bHQuRFJBRlR9O3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlXT1uW2VdfHx0W2VdfSksby5vcGVuKGEpLG99fSh0aGlzLnN0b3JlLHQpKSYmZS5zZXQoInRvcGljIix0LnRvcGljKTooZT1lfHx0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgiY29tcG9zZXIiKSkub3Blbih0KSx0aGlzLnNldCgibW9kZWwiLGUpLGUuc2V0UHJvcGVydGllcyh7Y29tcG9zZVN0YXRlOmMuZGVmYXVsdC5PUEVOLGlzV2FybmluZzohMX0pLHRoaXMubW9kZWwudGFyZ2V0UmVjaXBpZW50c3x8KHQudXNlcm5hbWVzPygoMCx5LmRlZmF1bHQpKCJgdXNlcm5hbWVzYCBpcyBkZXByZWNhdGVkLCB1c2UgYHJlY2lwaWVudHNgIGluc3RlYWQuIiksdGhpcy5tb2RlbC5zZXQoInRhcmdldFJlY2lwaWVudHMiLHQudXNlcm5hbWVzKSk6dC5yZWNpcGllbnRzJiZ0aGlzLm1vZGVsLnNldCgidGFyZ2V0UmVjaXBpZW50cyIsdC5yZWNpcGllbnRzKSksdC50b3BpY1RpdGxlJiZ0LnRvcGljVGl0bGUubGVuZ3RoPD10aGlzLnNpdGVTZXR0aW5ncy5tYXhfdG9waWNfdGl0bGVfbGVuZ3RoJiZ0aGlzLm1vZGVsLnNldCgidGl0bGUiLHQudG9waWNUaXRsZSksdC50b3BpY0NhdGVnb3J5SWQmJnRoaXMubW9kZWwuc2V0KCJjYXRlZ29yeUlkIix0LnRvcGljQ2F0ZWdvcnlJZCksdC50b3BpY1RhZ3MmJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmdGhpcy5zaXRlLmNhbl90YWdfdG9waWNzJiYoKG49KDAscC5lc2NhcGVFeHByZXNzaW9uKSh0LnRvcGljVGFncykuc3BsaXQoIiwiKS5zbGljZSgwLHRoaXMuc2l0ZVNldHRpbmdzLm1heF90YWdzX3Blcl90b3BpYykpLmZvckVhY2goZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuW3RdPWUuc3Vic3RyaW5nKDAsaS5zaXRlU2V0dGluZ3MubWF4X3RhZ19sZW5ndGgpfSksdGhpcy5tb2RlbC5zZXQoInRhZ3MiLG4pKSx0LnRvcGljQm9keSYmdGhpcy5tb2RlbC5zZXQoInJlcGx5Iix0LnRvcGljQm9keSl9KSxfKEgsInZpZXdOZXdSZXBseSIsZnVuY3Rpb24oKXtyZXR1cm4gdS5kZWZhdWx0LnJvdXRlVG8odGhpcy5nZXQoIm1vZGVsLmNyZWF0ZWRQb3N0LnVybCIpKSx0aGlzLmNsb3NlKCksITF9KSxfKEgsImRlc3Ryb3lEcmFmdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5nZXQoIm1vZGVsLmRyYWZ0S2V5Iik7cmV0dXJuIHQ/KCJuZXdfdG9waWMiPT09dCYmdGhpcy5zZW5kKCJjbGVhclRvcGljRHJhZnQiKSxsLmRlZmF1bHQuY2xlYXIodCx0aGlzLmdldCgibW9kZWwuZHJhZnRTZXF1ZW5jZSIpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwRXZlbnRzLnRyaWdnZXIoImRyYWZ0OmRlc3Ryb3llZCIsdCl9KSk6Yi5Qcm9taXNlLnJlc29sdmUoKX0pLF8oSCwiY29uZmlybURyYWZ0QWJhbmRvbiIsZnVuY3Rpb24odCl7aWYoIXQuZHJhZnQpcmV0dXJuIHQ7dmFyIGU9SlNPTi5wYXJzZSh0LmRyYWZ0KTtyZXR1cm4gZS5yZXBseSE9PWUub3JpZ2luYWxUZXh0JiZHP25ldyBiLlByb21pc2UoZnVuY3Rpb24oZSl7Ym9vdGJveC5kaWFsb2coSTE4bi50KCJkcmFmdHMuYWJhbmRvbi5jb25maXJtIiksW3tsYWJlbDpJMThuLnQoImRyYWZ0cy5hYmFuZG9uLm5vX3ZhbHVlIiksY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZSh0KX19LHtsYWJlbDpJMThuLnQoImRyYWZ0cy5hYmFuZG9uLnllc192YWx1ZSIpLGNsYXNzOiJidG4tZGFuZ2VyIixjYWxsYmFjazpmdW5jdGlvbigpe3QuZHJhZnQ9bnVsbCxlKHQpfX1dKX0pOih0LmRyYWZ0PW51bGwsdCl9KSxfKEgsImNhbmNlbENvbXBvc2VyIixmdW5jdGlvbihlKXt2YXIgbj10aGlzLGk9MDxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1lJiZlLHM9ImVkaXQiPT09dGhpcy5tb2RlbC5hY3Rpb24/InBvc3QuYWJhbmRvbl9lZGl0IjoicG9zdC5hYmFuZG9uIjtyZXR1cm4gbmV3IGIuUHJvbWlzZShmdW5jdGlvbih0KXtuLmdldCgibW9kZWwuaGFzTWV0YURhdGEiKXx8bi5nZXQoIm1vZGVsLnJlcGx5RGlydHkiKT9ib290Ym94LmRpYWxvZyhJMThuLnQocysiLmNvbmZpcm0iKSxbe2xhYmVsOmk/STE4bi50KHMrIi5ub19zYXZlX2RyYWZ0Iik6STE4bi50KHMrIi5ub192YWx1ZSIpLGNhbGxiYWNrOmZ1bmN0aW9uKCl7aSYmKG4ubW9kZWwuY2xlYXJTdGF0ZSgpLG4uY2xvc2UoKSx0KCkpfX0se2xhYmVsOkkxOG4udChzKyIueWVzX3ZhbHVlIiksY2xhc3M6ImJ0bi1kYW5nZXIiLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe2UmJm4uZGVzdHJveURyYWZ0KCkudGhlbihmdW5jdGlvbigpe24ubW9kZWwuY2xlYXJTdGF0ZSgpLG4uY2xvc2UoKSx0KCl9KX19XSk6bi5kZXN0cm95RHJhZnQoKS50aGVuKGZ1bmN0aW9uKCl7bi5tb2RlbC5jbGVhclN0YXRlKCksbi5jbG9zZSgpLHQoKX0pfSl9KSxfKEgsInNocmluayIsZnVuY3Rpb24oKXt0aGlzLmdldCgibW9kZWwucmVwbHlEaXJ0eSIpfHx0aGlzLmdldCgibW9kZWwuY2FuRWRpdFRpdGxlIikmJnRoaXMuZ2V0KCJtb2RlbC50aXRsZURpcnR5Iik/dGhpcy5jb2xsYXBzZSgpOnRoaXMuY2xvc2UoKX0pLF8oSCwiX3NhdmVEcmFmdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsO2UmJmUuc2F2ZURyYWZ0KCl9KSxfKEgsIl9zaG91bGRTYXZlRHJhZnQiLGZ1bmN0aW9uKCl7KDAsbi5kZWJvdW5jZSkodGhpcyx0aGlzLl9zYXZlRHJhZnQsMmUzKX0pLF8oSCwiY2F0ZWdvcnlWYWxpZGF0aW9uIixmdW5jdGlvbihlLHQpe2lmKCF0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljcyYmIWUpcmV0dXJuIHYuZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJjb21wb3Nlci5lcnJvci5jYXRlZ29yeV9taXNzaW5nIiksbGFzdFNob3duQXQ6dH0pfSksXyhILCJ0YWdWYWxpZGF0aW9uIixmdW5jdGlvbihlLHQsbil7dmFyIGk9dHx8W107aWYodGhpcy5zaXRlLmNhbl90YWdfdG9waWNzJiZlJiZlLm1pbmltdW1fcmVxdWlyZWRfdGFncz5pLmxlbmd0aClyZXR1cm4gdi5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoImNvbXBvc2VyLmVycm9yLnRhZ3NfbWlzc2luZyIse2NvdW50OmUubWluaW11bV9yZXF1aXJlZF90YWdzfSksbGFzdFNob3duQXQ6bn0pfSksXyhILCJjb2xsYXBzZSIsZnVuY3Rpb24oKXt0aGlzLl9zYXZlRHJhZnQoKSx0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuRFJBRlQpfSksXyhILCJ0b2dnbGVGdWxsc2NyZWVuIixmdW5jdGlvbigpe3RoaXMuX3NhdmVEcmFmdCgpLHRoaXMuZ2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiKT09PWMuZGVmYXVsdC5GVUxMU0NSRUVOP3RoaXMuc2V0KCJtb2RlbC5jb21wb3NlU3RhdGUiLGMuZGVmYXVsdC5PUEVOKTp0aGlzLnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuRlVMTFNDUkVFTil9KSxfKEgsImNsb3NlIixmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImh0bWwiKS5jbGFzc0xpc3QucmVtb3ZlKCJmdWxsc2NyZWVuLWNvbXBvc2VyIiksdGhpcy5zZXRQcm9wZXJ0aWVzKHttb2RlbDpudWxsLGxhc3RWYWxpZGF0ZWRBdDpudWxsfSl9KSxfKEgsImNsb3NlQXV0b2NvbXBsZXRlIixmdW5jdGlvbigpeyQoIi5kLWVkaXRvci1pbnB1dCIpLmF1dG9jb21wbGV0ZSh7Y2FuY2VsOiEwfSl9KSxfKEgsImNhbkVkaXQiLGZ1bmN0aW9uKGUpe3JldHVybiJlZGl0Ij09PWUmJnRoaXMuY3VycmVudFVzZXIuY2FuX2VkaXR9KSxfKEgsInZpc2libGUiLGZ1bmN0aW9uKGUpe3JldHVybiBlJiYiY2xvc2VkIiE9PWV9KSxXKHE9SCwiX3NldHVwUHJldmlldyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiX3NldHVwUHJldmlldyIpLHEpLFcocSwidG9nZ2xlVGV4dCIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwidG9nZ2xlVGV4dCIpLHEpLFcocSwic2hvd1ByZXZpZXdDaGFuZ2VkIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzaG93UHJldmlld0NoYW5nZWQiKSxxKSxXKHEsImZvY3VzVGFyZ2V0IixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJmb2N1c1RhcmdldCIpLHEpLFcocSwiY2FuRWRpdFRhZ3MiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImNhbkVkaXRUYWdzIikscSksVyhxLCJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIikscSksVyhxLCJkaXNhYmxlVGFnc0Nob29zZXIiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImRpc2FibGVUYWdzQ2hvb3NlciIpLHEpLFcocSwic2hvd1doaXNwZXJUb2dnbGUiLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInNob3dXaGlzcGVyVG9nZ2xlIikscSksVyhxLCJyZXBseWluZ1RvV2hpc3BlciIsW1NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwicmVwbHlpbmdUb1doaXNwZXIiKSxxKSxXKHEsInNhdmVJY29uIixbQ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzYXZlSWNvbiIpLHEpLFcocSwic2F2ZUxhYmVsIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzYXZlTGFiZWwiKSxxKSxXKHEsImNhbldoaXNwZXIiLFtEXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsImNhbldoaXNwZXIiKSxxKSxXKHEsInBvcHVwTWVudU9wdGlvbnMiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInBvcHVwTWVudU9wdGlvbnMiKSxxKSxXKHEsInNob3dXYXJuaW5nIixbTF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJzaG93V2FybmluZyIpLHEpLFcocSwiZHJhZnRUaXRsZSIsW0FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiZHJhZnRUaXRsZSIpLHEpLFcocSwiYWxsb3dVcGxvYWQiLFthLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiYWxsb3dVcGxvYWQiKSxxKSxXKHEsInVwbG9hZEljb24iLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsInVwbG9hZEljb24iKSxxKSxXKHEsIl9zaG91bGRTYXZlRHJhZnQiLFt6XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHEsIl9zaG91bGRTYXZlRHJhZnQiKSxxKSxXKHEsImNhdGVnb3J5VmFsaWRhdGlvbiIsW1VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocSwiY2F0ZWdvcnlWYWxpZGF0aW9uIikscSksVyhxLCJ0YWdWYWxpZGF0aW9uIixbRl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJ0YWdWYWxpZGF0aW9uIikscSksVyhxLCJjYW5FZGl0IixbQl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJjYW5FZGl0IikscSksVyhxLCJ2aXNpYmxlIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihxLCJ2aXNpYmxlIikscSkscSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY29udmVydC10by1wdWJsaWMtdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3B1YmxpY0NhdGVnb3J5SWQ6bnVsbCxzYXZpbmc6ITAsb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwdWJsaWNDYXRlZ29yeUlkOm51bGwsc2F2aW5nOiExfSl9LGFjdGlvbnM6e21ha2VQdWJsaWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5tb2RlbDt0LmNvbnZlcnRUb3BpYygicHVibGljIix7Y2F0ZWdvcnlJZDp0aGlzLnB1YmxpY0NhdGVnb3J5SWR9KS50aGVuKGZ1bmN0aW9uKCl7dC5zZXQoImFyY2hldHlwZSIsInJlZ3VsYXIiKSx0LnNldCgiY2F0ZWdvcnlfaWQiLGUucHVibGljQ2F0ZWdvcnlJZCksZS5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnNob3ctdG9waWMiLHQpLGUuc2VuZCgiY2xvc2VNb2RhbCIpfSkuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvY3JlYXRlLWFjY291bnQiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvbmFtZS12YWxpZGF0aW9uIiwiZGlzY291cnNlL21peGlucy91c2VyLWZpZWxkcy12YWxpZGF0aW9uIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHMsdCxuLGksbyxyLGEsbCx1LGMsZCxwLG0sZixoLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBnKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB2LHksXyx3LHgsayxQLGo7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCx1LmRlZmF1bHQsYy5kZWZhdWx0LGQuZGVmYXVsdCxwLmRlZmF1bHQsKHY9KDAsYS5kZWZhdWx0KSgicGFzc3dvcmRSZXF1aXJlZCIsIm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIsImVtYWlsVmFsaWRhdGlvbi5mYWlsZWQiLCJ1c2VybmFtZVZhbGlkYXRpb24uZmFpbGVkIiwicGFzc3dvcmRWYWxpZGF0aW9uLmZhaWxlZCIsInVzZXJGaWVsZHNWYWxpZGF0aW9uLmZhaWxlZCIsImZvcm1TdWJtaXR0ZWQiKSx5PSgwLGEuZGVmYXVsdCkoImF1dGhPcHRpb25zLmF1dGhfcHJvdmlkZXIiKSxfPSgwLGEuZGVmYXVsdCkoImFjY291bnRFbWFpbCIsInJlamVjdGVkRW1haWxzLltdIiksdz0oMCxhLmRlZmF1bHQpKCJhY2NvdW50RW1haWwiLCJhdXRoT3B0aW9ucy5lbWFpbCIsImF1dGhPcHRpb25zLmVtYWlsX3ZhbGlkIikseD0oMCxhLm9ic2VydmVzKSgiZW1haWxWYWxpZGF0aW9uIiwiYWNjb3VudEVtYWlsIiksaz0oMCxhLm9uKSgiaW5pdCIpLGcoUD17bG9naW46KDAsbi5pbmplY3QpKCksY29tcGxldGU6ITEsYWNjb3VudENoYWxsZW5nZTowLGFjY291bnRIb25leXBvdDowLGZvcm1TdWJtaXR0ZWQ6ITEscmVqZWN0ZWRFbWFpbHM6RW1iZXIuQShbXSkscHJlZmlsbGVkVXNlcm5hbWU6bnVsbCx1c2VyRmllbGRzOm51bGwsaXNEZXZlbG9wZXI6ITEsaGFzQXV0aE9wdGlvbnM6KDAsdC5ub3RFbXB0eSkoImF1dGhPcHRpb25zIiksY2FuQ3JlYXRlTG9jYWw6KDAsci5zZXR0aW5nKSgiZW5hYmxlX2xvY2FsX2xvZ2lucyIpLHNob3dDcmVhdGVGb3JtOigwLHQub3IpKCJoYXNBdXRoT3B0aW9ucyIsImNhbkNyZWF0ZUxvY2FsIikscmVzZXRGb3JtOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHthY2NvdW50TmFtZToiIixhY2NvdW50RW1haWw6IiIsYWNjb3VudFVzZXJuYW1lOiIiLGFjY291bnRQYXNzd29yZDoiIixhdXRoT3B0aW9uczpudWxsLGNvbXBsZXRlOiExLGZvcm1TdWJtaXR0ZWQ6ITEscmVqZWN0ZWRFbWFpbHM6W10scmVqZWN0ZWRQYXNzd29yZHM6W10scHJlZmlsbGVkVXNlcm5hbWU6bnVsbCxpc0RldmVsb3BlcjohMX0pLHRoaXMuX2NyZWF0ZVVzZXJGaWVsZHMoKX0sc3VibWl0RGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuZm9ybVN1Ym1pdHRlZHx8KCEhdGhpcy5nZXQoIm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIpfHwoISF0aGlzLmdldCgiZW1haWxWYWxpZGF0aW9uLmZhaWxlZCIpfHwoISghdGhpcy5nZXQoInVzZXJuYW1lVmFsaWRhdGlvbi5mYWlsZWQiKXx8IXRoaXMudXNlcm5hbWVSZXF1aXJlZCl8fCghKCF0aGlzLmdldCgicGFzc3dvcmRWYWxpZGF0aW9uLmZhaWxlZCIpfHwhdGhpcy5wYXNzd29yZFJlcXVpcmVkKXx8ISF0aGlzLmdldCgidXNlckZpZWxkc1ZhbGlkYXRpb24uZmFpbGVkIikpKSkpfSx1c2VybmFtZVJlcXVpcmVkOigwLHQubm90KSgiYXV0aE9wdGlvbnMub21pdF91c2VybmFtZSIpLGZ1bGxuYW1lUmVxdWlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInNpdGVTZXR0aW5ncy5mdWxsX25hbWVfcmVxdWlyZWQiKXx8dGhpcy5nZXQoInNpdGVTZXR0aW5ncy5lbmFibGVfbmFtZXMiKX0scGFzc3dvcmRSZXF1aXJlZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmlzRW1wdHkpKGUpfSxkaXNjbGFpbWVySHRtbDpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImNyZWF0ZV9hY2NvdW50LmRpc2NsYWltZXIiLHt0b3NfbGluazp0aGlzLmdldCgic2l0ZVNldHRpbmdzLnRvc191cmwiKXx8RGlzY291cnNlLmdldFVSTCgiL3RvcyIpLHByaXZhY3lfbGluazp0aGlzLmdldCgic2l0ZVNldHRpbmdzLnByaXZhY3lfcG9saWN5X3VybCIpfHxEaXNjb3Vyc2UuZ2V0VVJMKCIvcHJpdmFjeSIpfSl9LGVtYWlsVmFsaWRhdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuaXNFbXB0eSkoZSk/aC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwfSk6dC5pbmNsdWRlcyhlKT9oLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOkkxOG4udCgidXNlci5lbWFpbC5pbnZhbGlkIil9KTp0aGlzLmdldCgiYXV0aE9wdGlvbnMuZW1haWwiKT09PWUmJnRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbF92YWxpZCIpP2guZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoInVzZXIuZW1haWwuYXV0aGVudGljYXRlZCIse3Byb3ZpZGVyOnRoaXMuYXV0aFByb3ZpZGVyRGlzcGxheU5hbWUodGhpcy5nZXQoImF1dGhPcHRpb25zLmF1dGhfcHJvdmlkZXIiKSl9KX0pOigwLGwuZW1haWxWYWxpZCkoZSk/aC5kZWZhdWx0LmNyZWF0ZSh7b2s6ITAscmVhc29uOkkxOG4udCgidXNlci5lbWFpbC5vayIpfSk6aC5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInVzZXIuZW1haWwuaW52YWxpZCIpfSl9LGVtYWlsVmFsaWRhdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbCIpPT09dGhpcy5hY2NvdW50RW1haWwmJnRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5lbWFpbF92YWxpZCIpfSxhdXRoUHJvdmlkZXJEaXNwbGF5TmFtZTpmdW5jdGlvbih0KXt2YXIgZT0oMCxmLmZpbmRBbGwpKCkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dH0pO3JldHVybiBlP2UuZ2V0KCJwcmV0dHlOYW1lIik6dH0scHJlZmlsbFVzZXJuYW1lOmZ1bmN0aW9uKCl7dGhpcy5wcmVmaWxsZWRVc2VybmFtZSYmKHRoaXMuYWNjb3VudFVzZXJuYW1lPT09dGhpcy5wcmVmaWxsZWRVc2VybmFtZSYmdGhpcy5zZXQoImFjY291bnRVc2VybmFtZSIsIiIpLHRoaXMuc2V0KCJwcmVmaWxsZWRVc2VybmFtZSIsbnVsbCkpLHRoaXMuZ2V0KCJlbWFpbFZhbGlkYXRpb24ub2siKSYmKCgwLHMuaXNFbXB0eSkodGhpcy5hY2NvdW50VXNlcm5hbWUpfHx0aGlzLmdldCgiYXV0aE9wdGlvbnMuZW1haWwiKSkmJnRoaXMuZmV0Y2hFeGlzdGluZ1VzZXJuYW1lKCl9LGhhc0F0TGVhc3RPbmVMb2dpbkJ1dHRvbjpmdW5jdGlvbigpe3JldHVybiAwPCgwLGYuZmluZEFsbCkoKS5sZW5ndGh9LGZldGNoQ29uZmlybWF0aW9uVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybigwLGkuYWpheCkoKDAsbS51c2VyUGF0aCkoImhwLmpzb24iKSkudGhlbihmdW5jdGlvbihlKXt0Ll9jaGFsbGVuZ2VEYXRlPW5ldyBEYXRlLHQuX2NoYWxsZW5nZUV4cGlyeT1wYXJzZUludChlLmV4cGlyZXNfaW4sMTApLTMwLHQuX2NoYWxsZW5nZUV4cGlyeTwzMCYmKHQuX2NoYWxsZW5nZUV4cGlyeT0zMCksdC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50SG9uZXlwb3Q6ZS52YWx1ZSxhY2NvdW50Q2hhbGxlbmdlOmUuY2hhbGxlbmdlLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIil9KX0pfSxwZXJmb3JtQWNjb3VudENyZWF0aW9uOmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxpPXRoaXMuZ2V0UHJvcGVydGllcygiYWNjb3VudE5hbWUiLCJhY2NvdW50RW1haWwiLCJhY2NvdW50UGFzc3dvcmQiLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50Q2hhbGxlbmdlIik7aS5hY2NvdW50UGFzc3dvcmRDb25maXJtPXRoaXMuYWNjb3VudEhvbmV5cG90O3ZhciBlPXRoaXMudXNlckZpZWxkcyx0PXRoaXMuZ2V0KCJhdXRoT3B0aW9ucy5kZXN0aW5hdGlvbl91cmwiKTtyZXR1cm4oMCxzLmlzRW1wdHkpKHQpfHwkLmNvb2tpZSgiZGVzdGluYXRpb25fdXJsIix0LHtwYXRoOiIvIn0pLCgwLHMuaXNFbXB0eSkoZSl8fChpLnVzZXJGaWVsZHM9e30sZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpLnVzZXJGaWVsZHNbZS5nZXQoImZpZWxkLmlkIildPWUuZ2V0KCJ2YWx1ZSIpfSkpLHRoaXMuc2V0KCJmb3JtU3VibWl0dGVkIiwhMCksYi5kZWZhdWx0LmNyZWF0ZUFjY291bnQoaSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtuLnNldCgiaXNEZXZlbG9wZXIiLCExKSxlLnN1Y2Nlc3M/KG4uX2NoYWxsZW5nZUV4cGlyeT0xLCh0PSQoIiNoaWRkZW4tbG9naW4tZm9ybSIpKS5maW5kKCJpbnB1dFtuYW1lPXVzZXJuYW1lXSIpLnZhbChpLmFjY291bnRVc2VybmFtZSksdC5maW5kKCJpbnB1dFtuYW1lPXBhc3N3b3JkXSIpLnZhbChpLmFjY291bnRQYXNzd29yZCksdC5maW5kKCJpbnB1dFtuYW1lPXJlZGlyZWN0XSIpLnZhbCgoMCxtLnVzZXJQYXRoKSgiYWNjb3VudC1jcmVhdGVkIikpLHQuc3VibWl0KCkpOihuLmZsYXNoKGUubWVzc2FnZXx8STE4bi50KCJjcmVhdGVfYWNjb3VudC5mYWlsZWQiKSwiZXJyb3IiKSxlLmlzX2RldmVsb3BlciYmbi5zZXQoImlzRGV2ZWxvcGVyIiwhMCksZS5lcnJvcnMmJmUuZXJyb3JzLmVtYWlsJiYwPGUuZXJyb3JzLmVtYWlsLmxlbmd0aCYmZS52YWx1ZXMmJm4ucmVqZWN0ZWRFbWFpbHMucHVzaE9iamVjdChlLnZhbHVlcy5lbWFpbCksZS5lcnJvcnMmJmUuZXJyb3JzLnBhc3N3b3JkJiYwPGUuZXJyb3JzLnBhc3N3b3JkLmxlbmd0aCYmbi5yZWplY3RlZFBhc3N3b3Jkcy5wdXNoT2JqZWN0KGkuYWNjb3VudFBhc3N3b3JkKSxuLnNldCgiZm9ybVN1Ym1pdHRlZCIsITEpLCQucmVtb3ZlQ29va2llKCJkZXN0aW5hdGlvbl91cmwiKSl9LGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJmb3JtU3VibWl0dGVkIiwhMSksJC5yZW1vdmVDb29raWUoImRlc3RpbmF0aW9uX3VybCIpLG4uZmxhc2goSTE4bi50KCJjcmVhdGVfYWNjb3VudC5mYWlsZWQiKSwiZXJyb3IiKX0pfSxhY3Rpb25zOntleHRlcm5hbExvZ2luOmZ1bmN0aW9uKGUpe3RoaXMubG9naW4uc2VuZCgiZXh0ZXJuYWxMb2dpbiIsZSl9LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO25ldyBEYXRlLXRoaXMuX2NoYWxsZW5nZURhdGU+MWUzKnRoaXMuX2NoYWxsZW5nZUV4cGlyeT90aGlzLmZldGNoQ29uZmlybWF0aW9uVmFsdWUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucGVyZm9ybUFjY291bnRDcmVhdGlvbigpfSk6dGhpcy5wZXJmb3JtQWNjb3VudENyZWF0aW9uKCl9fX0sInN1Ym1pdERpc2FibGVkIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJzdWJtaXREaXNhYmxlZCIpLFApLGcoUCwiZnVsbG5hbWVSZXF1aXJlZCIsW2EuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJmdWxsbmFtZVJlcXVpcmVkIiksUCksZyhQLCJwYXNzd29yZFJlcXVpcmVkIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJwYXNzd29yZFJlcXVpcmVkIiksUCksZyhQLCJkaXNjbGFpbWVySHRtbCIsW2EuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJkaXNjbGFpbWVySHRtbCIpLFApLGcoUCwiZW1haWxWYWxpZGF0aW9uIixbX10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJlbWFpbFZhbGlkYXRpb24iKSxQKSxnKFAsImVtYWlsVmFsaWRhdGVkIixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJlbWFpbFZhbGlkYXRlZCIpLFApLGcoUCwicHJlZmlsbFVzZXJuYW1lIixbeF0sKGo9KGo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJwcmVmaWxsVXNlcm5hbWUiKSk/ai52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGp9fSksUCksZyhQLCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iLFthLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUCwiaGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uIiksUCksZyhQLCJmZXRjaENvbmZpcm1hdGlvblZhbHVlIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihQLCJmZXRjaENvbmZpcm1hdGlvblZhbHVlIiksUCksUCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsby5vYnNlcnZlcykoImxvYWRlZEFsbEl0ZW1zIiksYT17ZGlzY292ZXJ5VG9waWNzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L3RvcGljcyIpLG5hdmlnYXRpb25DYXRlZ29yeTooMCxuLmluamVjdCkoIm5hdmlnYXRpb24vY2F0ZWdvcnkiKSxhcHBsaWNhdGlvbjooMCxuLmluamVjdCkoKSxsb2FkaW5nOiExLGNhdGVnb3J5OigwLHQuYWxpYXMpKCJuYXZpZ2F0aW9uQ2F0ZWdvcnkuY2F0ZWdvcnkiKSxub1N1YmNhdGVnb3JpZXM6KDAsdC5hbGlhcykoIm5hdmlnYXRpb25DYXRlZ29yeS5ub1N1YmNhdGVnb3JpZXMiKSxsb2FkZWRBbGxJdGVtczooMCx0Lm5vdCkoImRpc2NvdmVyeVRvcGljcy5tb2RlbC5jYW5Mb2FkTW9yZSIpLF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHRoaXMubG9hZGVkQWxsSXRlbXMpfSxzaG93TW9yZVVybDpmdW5jdGlvbihlKXt2YXIgdD0iIixuPXRoaXMuY2F0ZWdvcnk7cmV0dXJuIG4mJih0PSIvYy8iK3MuZGVmYXVsdC5zbHVnRm9yKG4pKyIvIituLmlkKyh0aGlzLm5vU3ViY2F0ZWdvcmllcz8iL25vbmUiOiIiKSsiL2wiKSx0Kz0iL3RvcC8iK2V9LGFjdGlvbnM6e2NoYW5nZVBlcmlvZDpmdW5jdGlvbihlKXtpLmRlZmF1bHQucm91dGVUbyh0aGlzLnNob3dNb3JlVXJsKGUpKX19fSx1PWEsYz0iX3Nob3dGb290ZXIiLGQ9W3JdLGw9KGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJfc2hvd0Zvb3RlciIpKT9sLnZhbHVlOnZvaWQgMCxwPXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBsfX0sbT1hLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS9jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IiwiQGVtYmVyL3N0cmluZyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjPXtyb3dzOiJjYXRlZ29yaWVzX29ubHkiLHJvd3Nfd2l0aF9mZWF0dXJlZF90b3BpY3M6ImNhdGVnb3JpZXNfd2l0aF9mZWF0dXJlZF90b3BpY3MiLGJveGVzOiJjYXRlZ29yaWVzX2JveGVzIixib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljczoiY2F0ZWdvcmllc19ib3hlc193aXRoX3RvcGljcyJ9O2UuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKChhPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3JpZXMuW10uZmVhdHVyZWRUb3BpY3MubGVuZ3RoIiksbD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5wYXJlbnRDYXRlZ29yeSIpLHIodT17ZGlzY292ZXJ5OigwLGkuaW5qZWN0KSgpLGNhdGVnb3J5Om51bGwsY2FuRWRpdDooMCxuLnJlYWRzKSgiY3VycmVudFVzZXIuc3RhZmYiKSxsYXRlc3RUb3BpY09ubHk6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3JpZXMiKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiAxPGUuZ2V0KCJmZWF0dXJlZFRvcGljcy5sZW5ndGgiKX0pfSxjYXRlZ29yeVBhZ2VTdHlsZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUubW9iaWxlVmlldz8iY2F0ZWdvcmllc193aXRoX2ZlYXR1cmVkX3RvcGljcyI6dGhpcy5zaXRlU2V0dGluZ3MuZGVza3RvcF9jYXRlZ29yeV9wYWdlX3N0eWxlO2UmJih0PWNbZS5nZXQoInN1YmNhdGVnb3J5X2xpc3Rfc3R5bGUiKV18fHQpO3ZhciBuPWUmJiJjYXRlZ29yaWVzX2FuZF9sYXRlc3RfdG9waWNzIj09PXQ/ImNhdGVnb3JpZXNfb25seSI6dDtyZXR1cm4oMCxvLmRhc2hlcml6ZSkobil9LGFjdGlvbnM6e3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoInRyaWdnZXJSZWZyZXNoIil9fX0sImxhdGVzdFRvcGljT25seSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwibGF0ZXN0VG9waWNPbmx5IiksdSkscih1LCJjYXRlZ29yeVBhZ2VTdHlsZSIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2F0ZWdvcnlQYWdlU3R5bGUiKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3ZlcnkvdG9waWNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5IiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHk9KG09KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGg9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmlsdGVyIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGI9KDAsdC5kZWZhdWx0KSgiYWxsTG9hZGVkIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLGc9KDAsdC5kZWZhdWx0KSgiYWxsTG9hZGVkIiwibW9kZWwudG9waWNzLmxlbmd0aCIpLHAodj17ZGlzY292ZXJ5OigwLGkuaW5qZWN0KSgpLGRpc2NvdmVyeVRvcGljczooMCxpLmluamVjdCkoImRpc2NvdmVyeS90b3BpY3MiKSxwZXJpb2Q6bnVsbCxjYW5TdGFyOigwLG4uYWxpYXMpKCJjdXJyZW50VXNlci5pZCIpLHNob3dUb3BpY1Bvc3RCYWRnZXM6KDAsbi5ub3QpKCJkaXNjb3ZlcnlUb3BpY3MubmV3IikscmVkaXJlY3RlZFJlYXNvbjooMCxuLmFsaWFzKSgiY3VycmVudFVzZXIucmVkaXJlY3RlZF90b190b3AucmVhc29uIiksb3JkZXI6ImRlZmF1bHQiLGFzY2VuZGluZzohMSxleHBhbmRHbG9iYWxseVBpbm5lZDohMSxleHBhbmRBbGxQaW5uZWQ6ITEscmVzZXRQYXJhbXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO09iamVjdC5rZXlzKHRoaXMuZ2V0KCJtb2RlbC5wYXJhbXMiKXx8e30pLmZvckVhY2goZnVuY3Rpb24oZSl7dC5zZXQoZSx5W2VdKX0pfSxhY3Rpb25zOntjaGFuZ2VTb3J0OmZ1bmN0aW9uKGUpe2U9PT10aGlzLm9yZGVyP3RoaXMudG9nZ2xlUHJvcGVydHkoImFzY2VuZGluZyIpOnRoaXMuc2V0UHJvcGVydGllcyh7b3JkZXI6ZSxhc2NlbmRpbmc6ITF9KSx0aGlzLm1vZGVsLnJlZnJlc2hTb3J0KGUsdGhpcy5hc2NlbmRpbmcpfSxzaG93SW5zZXJ0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljVHJhY2tpbmdTdGF0ZTtyZXR1cm4gdGhpcy5tb2RlbC5sb2FkQmVmb3JlKGUuZ2V0KCJuZXdJbmNvbWluZyIpLCEwKSxlLnJlc2V0VHJhY2tpbmcoKSwhMX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwuZmlsdGVyIik7dGhpcy5yZXNldFBhcmFtcygpLHRoaXMuZ2V0KCJkaXNjb3ZlcnkubG9hZGluZyIpfHwodGhpcy5zZXQoImRpc2NvdmVyeS5sb2FkaW5nIiwhMCksdGhpcy50b3BpY1RyYWNraW5nU3RhdGUucmVzZXRUcmFja2luZygpLHRoaXMuc3RvcmUuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6bn0pLnRoZW4oZnVuY3Rpb24oZSl7Yy5kZWZhdWx0LmhpZGVVbmlmb3JtQ2F0ZWdvcnkoZSx0LmNhdGVnb3J5KSx0LnNldFByb3BlcnRpZXMoe21vZGVsOmV9KSx0LnJlc2V0U2VsZWN0ZWQoKSx0LnRvcGljVHJhY2tpbmdTdGF0ZSYmdC50b3BpY1RyYWNraW5nU3RhdGUuc3luYyhlLG4pLHQuc2VuZCgibG9hZGluZ0NvbXBsZXRlIil9KSl9LHJlc2V0TmV3OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztkLmRlZmF1bHQucmVzZXROZXcodGhpcy5jYXRlZ29yeSwhdGhpcy5ub1N1YmNhdGVnb3JpZXMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJyZWZyZXNoIil9KX0sZGlzbWlzc1JlYWRQb3N0czpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImRpc21pc3MtcmVhZCIse3RpdGxlOiJ0b3BpY3MuYnVsay5kaXNtaXNzX3JlYWQifSl9fSxpc0ZpbHRlclBhZ2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hIWUmJiEhZS5tYXRjaChuZXcgUmVnRXhwKHQrIiQiLCJnaSIpKX0sc2hvd0Rpc21pc3NSZWFkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuaXNGaWx0ZXJQYWdlKGUsInVucmVhZCIpJiYwPHR9LHNob3dSZXNldE5ldzpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmlzRmlsdGVyUGFnZShlLCJuZXciKSYmMDx0fSxzaG93RGlzbWlzc0F0VG9wOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHRoaXMuaXNGaWx0ZXJQYWdlKGUsIm5ldyIpfHx0aGlzLmlzRmlsdGVyUGFnZShlLCJ1bnJlYWQiKSkmJjE1PD10fSxoYXNUb3BpY3M6KDAsbi5ndCkoIm1vZGVsLnRvcGljcy5sZW5ndGgiLDApLGFsbExvYWRlZDooMCxuLmVtcHR5KSgibW9kZWwubW9yZV90b3BpY3NfdXJsIiksbGF0ZXN0OigwLGEuZW5kV2l0aCkoIm1vZGVsLmZpbHRlciIsImxhdGVzdCIpLG5ldzooMCxhLmVuZFdpdGgpKCJtb2RlbC5maWx0ZXIiLCJuZXciKSx0b3A6KDAsbi5ub3RFbXB0eSkoInBlcmlvZCIpLHllYXJseTooMCxuLmVxdWFsKSgicGVyaW9kIiwieWVhcmx5IikscXVhcnRlcmx5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJxdWFydGVybHkiKSxtb250aGx5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJtb250aGx5Iiksd2Vla2x5OigwLG4uZXF1YWwpKCJwZXJpb2QiLCJ3ZWVrbHkiKSxkYWlseTooMCxuLmVxdWFsKSgicGVyaW9kIiwiZGFpbHkiKSxmb290ZXJNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7aWYoZSl7dmFyIG49dGhpcy5jYXRlZ29yeTtpZihuKXJldHVybiBJMThuLnQoInRvcGljcy5ib3R0b20uY2F0ZWdvcnkiLHtjYXRlZ29yeTpuLmdldCgibmFtZSIpfSk7dmFyIGk9KHRoaXMuZ2V0KCJtb2RlbC5maWx0ZXIiKXx8IiIpLnNwbGl0KCIvIik7cmV0dXJuIDA9PT10P0kxOG4udCgidG9waWNzLm5vbmUuIitpWzBdLHtjYXRlZ29yeTppWzFdfSk6STE4bi50KCJ0b3BpY3MuYm90dG9tLiIraVswXSx7Y2F0ZWdvcnk6aVsxXX0pfX0sZm9vdGVyRWR1Y2F0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoZSYmISgwPHQpJiZ0aGlzLmN1cnJlbnRVc2VyKXt2YXIgbj0odGhpcy5nZXQoIm1vZGVsLmZpbHRlciIpfHwiIikuc3BsaXQoIi8iKSxpPW5bbi5sZW5ndGgtMV07aWYoIm5ldyI9PT1pfHwidW5yZWFkIj09PWkpcmV0dXJuIEkxOG4udCgidG9waWNzLm5vbmUuZWR1Y2F0ZS4iK2kse3VzZXJQcmVmc1VybDooMCx1LnVzZXJQYXRoKSh0aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiL3ByZWZlcmVuY2VzIil9KX19fSwic2hvd0Rpc21pc3NSZWFkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93RGlzbWlzc1JlYWQiKSx2KSxwKHYsInNob3dSZXNldE5ldyIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iodiwic2hvd1Jlc2V0TmV3IiksdikscCh2LCJzaG93RGlzbWlzc0F0VG9wIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93RGlzbWlzc0F0VG9wIiksdikscCh2LCJmb290ZXJNZXNzYWdlIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJmb290ZXJNZXNzYWdlIiksdikscCh2LCJmb290ZXJFZHVjYXRpb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImZvb3RlckVkdWNhdGlvbiIpLHYpLHYpO09iamVjdC5rZXlzKG8ucXVlcnlQYXJhbXMpLmZvckVhY2goZnVuY3Rpb24oZSl7dm9pZCAwPT09eVtlXSYmKHlbZV09bnVsbCl9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCh5LHIuZGVmYXVsdCl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LWNhdGVnb3J5IixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxmLGgsYixnO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHU9KDAsci5vbikoImluaXQiKSxjPSgwLHIub2JzZXJ2ZXMpKCJtb2RlbC5kZXNjcmlwdGlvbiIpLGQ9KDAsci5kZWZhdWx0KSgibW9kZWwue2lkLG5hbWV9IikscD0oMCxyLm9ic2VydmVzKSgidGl0bGUiKSxtPSgwLHIuZGVmYXVsdCkoInNhdmluZyIsIm1vZGVsLm5hbWUiLCJtb2RlbC5jb2xvciIsImRlbGV0aW5nIiksZj0oMCxyLmRlZmF1bHQpKCJzYXZpbmciLCJkZWxldGluZyIpLGg9KDAsci5kZWZhdWx0KSgibmFtZSIpLGI9KDAsci5kZWZhdWx0KSgic2F2aW5nIiwibW9kZWwuaWQiKSxsKGc9e3NlbGVjdGVkVGFiOm51bGwsc2F2aW5nOiExLGRlbGV0aW5nOiExLHBhbmVsczpudWxsLGhpZGRlblRvb2x0aXA6ITAsX2luaXRQYW5lbHM6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3BhbmVsczpbXSx2YWxpZGF0b3JzOltdfSl9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuY2hhbmdlU2l6ZSgpLHRoaXMudGl0bGVDaGFuZ2VkKCksdGhpcy5zZXQoImhpZGRlblRvb2x0aXAiLCEwKX0sY2hhbmdlU2l6ZTpmdW5jdGlvbigpeygwLHQuaXNFbXB0eSkodGhpcy5nZXQoIm1vZGVsLmRlc2NyaXB0aW9uIikpP3RoaXMuc2V0KCJtb2RhbC5tb2RhbENsYXNzIiwiZWRpdC1jYXRlZ29yeS1tb2RhbCBzbWFsbCIpOnRoaXMuc2V0KCJtb2RhbC5tb2RhbENsYXNzIiwiZWRpdC1jYXRlZ29yeS1tb2RhbCBmdWxsIil9LHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlkP0kxOG4udCgiY2F0ZWdvcnkuZWRpdF9kaWFsb2dfdGl0bGUiLHtjYXRlZ29yeU5hbWU6ZS5uYW1lfSk6STE4bi50KCJjYXRlZ29yeS5jcmVhdGUiKX0sdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXQoIm1vZGFsLnRpdGxlIix0aGlzLnRpdGxlKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuISghZSYmIWkpfHwoIXR8fCFuKX0sZGVsZXRlRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8ZXx8ITF9LGNhdGVnb3J5TmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gMDwoZT1lfHwiIikudHJpbSgpLmxlbmd0aD9lOkkxOG4udCgicHJldmlldyIpfSxzYXZlTGFiZWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT8ic2F2aW5nIjp0PyJjYXRlZ29yeS5zYXZlIjoiY2F0ZWdvcnkuY3JlYXRlIn0sYWN0aW9uczp7cmVnaXN0ZXJWYWxpZGF0b3I6ZnVuY3Rpb24oZSl7dGhpcy52YWxpZGF0b3JzLnB1c2goZSl9LHNhdmVDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciB0LGUsbj10aGlzO3RoaXMudmFsaWRhdG9ycy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KXx8KHQ9dGhpcy5tb2RlbCxlPXRoaXMuc2l0ZS5jYXRlZ29yaWVzLmZpbmRCeSgiaWQiLHBhcnNlSW50KHQucGFyZW50X2NhdGVnb3J5X2lkLDEwKSksdGhpcy5zZXQoInNhdmluZyIsITApLHQuc2V0KCJwYXJlbnRDYXRlZ29yeSIsZSksdC5zYXZlKCkudGhlbihmdW5jdGlvbihlKXtuLnNldCgic2F2aW5nIiwhMSksbi5zZW5kKCJjbG9zZU1vZGFsIiksdC5zZXRQcm9wZXJ0aWVzKHtzbHVnOmUuY2F0ZWdvcnkuc2x1ZyxpZDplLmNhdGVnb3J5LmlkfSkscy5kZWZhdWx0LnJlZGlyZWN0VG8oIi9jLyIrYS5kZWZhdWx0LnNsdWdGb3IodCkrIi8iK3QuaWQpfSkuY2F0Y2goZnVuY3Rpb24oZSl7bi5mbGFzaCgoMCxvLmV4dHJhY3RFcnJvcikoZSksImVycm9yIiksbi5zZXQoInNhdmluZyIsITEpfSkpfSxkZWxldGVDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImRlbGV0aW5nIiwhMCksdGhpcy5zZW5kKCJoaWRlTW9kYWwiKSxib290Ym94LmNvbmZpcm0oSTE4bi50KCJjYXRlZ29yeS5kZWxldGVfY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/dC5tb2RlbC5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHMuZGVmYXVsdC5yZWRpcmVjdFRvKCIvY2F0ZWdvcmllcyIpfSxmdW5jdGlvbihlKXt0LmZsYXNoKCgwLG8uZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKSx0LnNlbmQoInJlb3Blbk1vZGFsIiksdC5kaXNwbGF5RXJyb3JzKFtJMThuLnQoImNhdGVnb3J5LmRlbGV0ZV9lcnJvciIpXSksdC5zZXQoImRlbGV0aW5nIiwhMSl9KToodC5zZW5kKCJyZW9wZW5Nb2RhbCIpLHQuc2V0KCJkZWxldGluZyIsITEpKX0pfSx0b2dnbGVEZWxldGVUb29sdGlwOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiaGlkZGVuVG9vbHRpcCIpfX19LCJfaW5pdFBhbmVscyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiX2luaXRQYW5lbHMiKSxnKSxsKGcsImNoYW5nZVNpemUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImNoYW5nZVNpemUiKSxnKSxsKGcsInRpdGxlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJ0aXRsZSIpLGcpLGwoZywidGl0bGVDaGFuZ2VkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJ0aXRsZUNoYW5nZWQiKSxnKSxsKGcsImRpc2FibGVkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJkaXNhYmxlZCIpLGcpLGwoZywiZGVsZXRlRGlzYWJsZWQiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImRlbGV0ZURpc2FibGVkIiksZyksbChnLCJjYXRlZ29yeU5hbWUiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImNhdGVnb3J5TmFtZSIpLGcpLGwoZywic2F2ZUxhYmVsIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJzYXZlTGFiZWwiKSxnKSxnKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLXRpbWVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSxzLHQsbixpLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5CVU1QX1RZUEU9ZS5SRU1JTkRFUl9UWVBFPWUuREVMRVRFX1NUQVRVU19UWVBFPWUuUFVCTElTSF9UT19DQVRFR09SWV9TVEFUVVNfVFlQRT1lLk9QRU5fU1RBVFVTX1RZUEU9ZS5DTE9TRV9TVEFUVVNfVFlQRT12b2lkIDA7ZS5DTE9TRV9TVEFUVVNfVFlQRT0iY2xvc2UiLGUuT1BFTl9TVEFUVVNfVFlQRT0ib3BlbiIsZS5QVUJMSVNIX1RPX0NBVEVHT1JZX1NUQVRVU19UWVBFPSJwdWJsaXNoX3RvX2NhdGVnb3J5IixlLkRFTEVURV9TVEFUVVNfVFlQRT0iZGVsZXRlIixlLlJFTUlOREVSX1RZUEU9InJlbWluZGVyIixlLkJVTVBfVFlQRT0iYnVtcCI7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChsPSgwLG4uZGVmYXVsdCkoIm1vZGVsLmNsb3NlZCIpLHU9KDAsbi5kZWZhdWx0KSgpLGM9KDAsbi5kZWZhdWx0KSgiaXNQdWJsaWMiLCJwdWJsaWNUaW1lclR5cGVzIiwicHJpdmF0ZVRpbWVyVHlwZXMiKSxkPSgwLG4uZGVmYXVsdCkoImlzUHVibGljIiwibW9kZWwudG9waWNfdGltZXIiLCJtb2RlbC5wcml2YXRlX3RvcGljX3RpbWVyIiksYShwPXtsb2FkaW5nOiExLGlzUHVibGljOiJ0cnVlIixwdWJsaWNUaW1lclR5cGVzOmZ1bmN0aW9uKGUpe3ZhciB0PVt7aWQ6ImNsb3NlIixuYW1lOkkxOG4udChlPyJ0b3BpYy50ZW1wX29wZW4udGl0bGUiOiJ0b3BpYy5hdXRvX2Nsb3NlLnRpdGxlIil9LHtpZDoib3BlbiIsbmFtZTpJMThuLnQoZT8idG9waWMuYXV0b19yZW9wZW4udGl0bGUiOiJ0b3BpYy50ZW1wX2Nsb3NlLnRpdGxlIil9LHtpZDoicHVibGlzaF90b19jYXRlZ29yeSIsbmFtZTpJMThuLnQoInRvcGljLnB1Ymxpc2hfdG9fY2F0ZWdvcnkudGl0bGUiKX0se2lkOiJidW1wIixuYW1lOkkxOG4udCgidG9waWMuYXV0b19idW1wLnRpdGxlIil9XTtyZXR1cm4gdGhpcy5jdXJyZW50VXNlci5nZXQoInN0YWZmIikmJnQucHVzaCh7aWQ6ImRlbGV0ZSIsbmFtZTpJMThuLnQoInRvcGljLmF1dG9fZGVsZXRlLnRpdGxlIil9KSx0fSxwcml2YXRlVGltZXJUeXBlczpmdW5jdGlvbigpe3JldHVyblt7aWQ6InJlbWluZGVyIixuYW1lOkkxOG4udCgidG9waWMucmVtaW5kZXIudGl0bGUiKX1dfSxzZWxlY3Rpb25zOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idHJ1ZSI9PT1lP3Q6bn0sdG9waWNUaW1lcjpmdW5jdGlvbihlLHQsbil7cmV0dXJuInRydWUiPT09ZT90Om59LF9zZXRUaW1lcjpmdW5jdGlvbihuLGUpe3ZhciBpPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSxvLmRlZmF1bHQudXBkYXRlU3RhdHVzKHRoaXMuZ2V0KCJtb2RlbC5pZCIpLG4sdGhpcy5nZXQoInRvcGljVGltZXIuYmFzZWRfb25fbGFzdF9wb3N0IiksZSx0aGlzLmdldCgidG9waWNUaW1lci5jYXRlZ29yeV9pZCIpKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0O24/KGkuc2VuZCgiY2xvc2VNb2RhbCIpLCgwLHMuc2V0UHJvcGVydGllcykoaS50b3BpY1RpbWVyLHtleGVjdXRlX2F0OmUuZXhlY3V0ZV9hdCxkdXJhdGlvbjplLmR1cmF0aW9uLGNhdGVnb3J5X2lkOmUuY2F0ZWdvcnlfaWR9KSxpLnNldCgibW9kZWwuY2xvc2VkIixlLmNsb3NlZCkpOih0PSJ0cnVlIj09PWkuaXNQdWJsaWM/InRvcGljX3RpbWVyIjoicHJpdmF0ZV90b3BpY190aW1lciIsaS5zZXQoIm1vZGVsLiIrdCxzLmRlZmF1bHQuY3JlYXRlKHt9KSksaS5zZXRQcm9wZXJ0aWVzKHtzZWxlY3Rpb246bnVsbH0pKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gaS5zZXQoImxvYWRpbmciLCExKX0pfSxhY3Rpb25zOntvbkNoYW5nZVN0YXR1c1R5cGU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiLGUpfSxvbkNoYW5nZVVwZGF0ZVRpbWU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIudXBkYXRlVGltZSIsZSl9LHNhdmVUaW1lcjpmdW5jdGlvbigpe3RoaXMuZ2V0KCJ0b3BpY1RpbWVyLnVwZGF0ZVRpbWUiKT90aGlzLl9zZXRUaW1lcih0aGlzLmdldCgidG9waWNUaW1lci51cGRhdGVUaW1lIiksdGhpcy5nZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSk6dGhpcy5mbGFzaChJMThuLnQoInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUudGltZV9mcmFtZV9yZXF1aXJlZCIpLCJhbGVydC1lcnJvciIpfSxyZW1vdmVUaW1lcjpmdW5jdGlvbigpe3RoaXMuX3NldFRpbWVyKG51bGwsdGhpcy5nZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSl9fX0sInB1YmxpY1RpbWVyVHlwZXMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInB1YmxpY1RpbWVyVHlwZXMiKSxwKSxhKHAsInByaXZhdGVUaW1lclR5cGVzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJwcml2YXRlVGltZXJUeXBlcyIpLHApLGEocCwic2VsZWN0aW9ucyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2VsZWN0aW9ucyIpLHApLGEocCwidG9waWNUaW1lciIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwidG9waWNUaW1lciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2VtYWlsLWxvZ2luIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi93ZWJhdXRobiJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJtb2RlbCIpLGM9KDAsdC5kZWZhdWx0KSgibW9kZWwiKSxsKGQ9e2xvY2tJbWFnZVVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2xvY2suc3ZnIiksc2Vjb25kRmFjdG9yUmVxdWlyZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VjdXJpdHlfa2V5X3JlcXVpcmVkfHxlLnNlY29uZF9mYWN0b3JfcmVxdWlyZWR9LHNlY29uZEZhY3Rvck1ldGhvZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zZWN1cml0eV9rZXlfcmVxdWlyZWQ/aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOmkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFB9LGFjdGlvbnM6e2ZpbmlzaExvZ2luOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXtzZWNvbmRfZmFjdG9yX21ldGhvZDp0aGlzLnNlY29uZEZhY3Rvck1ldGhvZH07dGhpcy5zZWN1cml0eUtleUNyZWRlbnRpYWw/ZS5zZWNvbmRfZmFjdG9yX3Rva2VuPXRoaXMuc2VjdXJpdHlLZXlDcmVkZW50aWFsOmUuc2Vjb25kX2ZhY3Rvcl90b2tlbj10aGlzLnNlY29uZEZhY3RvclRva2VuLCgwLHMuYWpheCkoe3VybDoiL3Nlc3Npb24vZW1haWwtbG9naW4vIit0aGlzLm1vZGVsLnRva2VuLHR5cGU6IlBPU1QiLGRhdGE6ZX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzP28uZGVmYXVsdC5yZWRpcmVjdFRvKCIvIik6dC5zZXQoIm1vZGVsLmVycm9yIixlLmVycm9yKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxhdXRoZW50aWNhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsYS5nZXRXZWJhdXRobkNyZWRlbnRpYWwpKHRoaXMubW9kZWwuY2hhbGxlbmdlLHRoaXMubW9kZWwuYWxsb3dlZF9jcmVkZW50aWFsX2lkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoImZpbmlzaExvZ2luIil9LGZ1bmN0aW9uKGUpe3Quc2V0KCJtb2RlbC5lcnJvciIsZSl9KX19fSwic2Vjb25kRmFjdG9yUmVxdWlyZWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlY29uZEZhY3RvclJlcXVpcmVkIiksZCksbChkLCJzZWNvbmRGYWN0b3JNZXRob2QiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNlY29uZEZhY3Rvck1ldGhvZCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2V4Y2VwdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkPXtjbGFzc2VzOiJidG4tcHJpbWFyeSIsYWN0aW9uOiJiYWNrIixrZXk6ImVycm9ycy5idXR0b25zLmJhY2sifSxwPXtjbGFzc2VzOiIiLGFjdGlvbjoiYmFjayIsa2V5OiJlcnJvcnMuYnV0dG9ucy5iYWNrIn0sbT17Y2xhc3NlczoiYnRuLXByaW1hcnkiLGFjdGlvbjoidHJ5TG9hZGluZyIsa2V5OiJlcnJvcnMuYnV0dG9ucy5hZ2FpbiIsaWNvbjoic3luYyJ9LGY9e2NsYXNzZXM6ImJ0bi1wcmltYXJ5IixhY3Rpb246InRyeUxvYWRpbmciLGtleToiZXJyb3JzLmJ1dHRvbnMuZml4ZWQifTtlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCxzLm9uKSgiaW5pdCIpLGE9KDAscy5kZWZhdWx0KSgiaXNOZXR3b3JrIiwiaXNTZXJ2ZXIiLCJpc1Vua25vd24iKSxsPSgwLHMuZGVmYXVsdCkoIm5ldHdvcmtGaXhlZCIsImlzTmV0d29yayIsImlzU2VydmVyIiwiaXNVbmtub3duIiksdT0oMCxzLmRlZmF1bHQpKCJuZXR3b3JrRml4ZWQiLCJpc05ldHdvcmsiLCJpc1NlcnZlciIsImlzVW5rbm93biIpLG8oYz17dGhyb3duOm51bGwsbGFzdFRyYW5zaXRpb246bnVsbCxpc05ldHdvcms6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZ2V0KCJ0aHJvd24ucmVhZHlTdGF0ZSIpfHwidGltZW91dCI9PT10aGlzLmdldCgidGhyb3duLmpxVGV4dFN0YXR1cyIpfSxpc05vdEZvdW5kOigwLHQuZXF1YWwpKCJ0aHJvd24uc3RhdHVzIiw0MDQpLGlzRm9yYmlkZGVuOigwLHQuZXF1YWwpKCJ0aHJvd24uc3RhdHVzIiw0MDMpLGlzU2VydmVyOigwLHQuZ3RlKSgidGhyb3duLnN0YXR1cyIsNTAwKSxpc1Vua25vd246KDAsdC5ub25lKSgiaXNOZXR3b3JrIiwiaXNTZXJ2ZXIiKSxuZXR3b3JrRml4ZWQ6ITEsbG9hZGluZzohMSxfaW5pdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHJlYXNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTmV0d29yaz9JMThuLnQoImVycm9ycy5yZWFzb25zLm5ldHdvcmsiKTp0aGlzLmlzU2VydmVyP0kxOG4udCgiZXJyb3JzLnJlYXNvbnMuc2VydmVyIik6dGhpcy5pc05vdEZvdW5kP0kxOG4udCgiZXJyb3JzLnJlYXNvbnMubm90X2ZvdW5kIik6dGhpcy5pc0ZvcmJpZGRlbj9JMThuLnQoImVycm9ycy5yZWFzb25zLmZvcmJpZGRlbiIpOkkxOG4udCgiZXJyb3JzLnJlYXNvbnMudW5rbm93biIpfSxyZXF1ZXN0VXJsOigwLHQuYWxpYXMpKCJ0aHJvd24ucmVxdWVzdGVkVXJsIiksZGVzYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5ldHdvcmtGaXhlZD9JMThuLnQoImVycm9ycy5kZXNjLm5ldHdvcmtfZml4ZWQiKTp0aGlzLmlzTmV0d29yaz9JMThuLnQoImVycm9ycy5kZXNjLm5ldHdvcmsiKTp0aGlzLmlzTm90Rm91bmQ/STE4bi50KCJlcnJvcnMuZGVzYy5ub3RfZm91bmQiKTp0aGlzLmlzU2VydmVyP0kxOG4udCgiZXJyb3JzLmRlc2Muc2VydmVyIix7c3RhdHVzOnRoaXMuZ2V0KCJ0aHJvd24uc3RhdHVzIikrIiAiK3RoaXMuZ2V0KCJ0aHJvd24uc3RhdHVzVGV4dCIpfSk6STE4bi50KCJlcnJvcnMuZGVzYy51bmtub3duIil9LGVuYWJsZWRCdXR0b25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV0d29ya0ZpeGVkP1tmXTp0aGlzLmlzTmV0d29yaz9bcCxtXTpbZCxtXX0sYWN0aW9uczp7YmFjazpmdW5jdGlvbigpe3dpbmRvdy5oaXN0b3J5LmJhY2soKX0sdHJ5TG9hZGluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSwoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7ZS5sYXN0VHJhbnNpdGlvbi5yZXRyeSgpLGUuc2V0KCJsb2FkaW5nIiwhMSl9KX19fSwiaXNOZXR3b3JrIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImlzTmV0d29yayIpLGMpLG8oYywiX2luaXQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9pbml0IiksYyksbyhjLCJyZWFzb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInJlYXNvbiIpLGMpLG8oYywiZGVzYyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZGVzYyIpLGMpLG8oYywiZW5hYmxlZEJ1dHRvbnMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImVuYWJsZWRCdXR0b25zIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZXhwbGFpbi1yZXZpZXdhYmxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bG9hZGluZzpudWxsLHJldmlld2FibGVFeHBsYW5hdGlvbjpudWxsLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLHJldmlld2FibGVFeHBsYW5hdGlvbjpudWxsfSksdGhpcy5zdG9yZS5maW5kKCJyZXZpZXdhYmxlLWV4cGxhbmF0aW9uIix0aGlzLm1vZGVsLmlkKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNldCgicmV2aWV3YWJsZUV4cGxhbmF0aW9uIixlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse25ld0ZlYXR1cmVkVG9waWM6bnVsbCxzYXZpbmc6ITEsbm9Ub3BpY1NlbGVjdGVkOigwLG8ubm9uZSkoIm5ld0ZlYXR1cmVkVG9waWMiKSxvbkNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXQoIm5ld0ZlYXR1cmVkVG9waWMiLG51bGwpfSxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsImNob29zZS10b3BpYy1tb2RhbCIpfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4oMCxpLmFqYXgpKCIvdS8iK3RoaXMubW9kZWwudXNlcm5hbWUrIi9mZWF0dXJlLXRvcGljIix7dHlwZToiUFVUIixkYXRhOnt0b3BpY19pZDp0aGlzLm5ld0ZlYXR1cmVkVG9waWMuaWR9fSkudGhlbihmdW5jdGlvbigpe2UubW9kZWwuc2V0KCJmZWF0dXJlZF90b3BpYyIsZS5uZXdGZWF0dXJlZFRvcGljKSxlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSxuZXdUb3BpY1NlbGVjdGVkOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJuZXdGZWF0dXJlZFRvcGljIixlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9mZWF0dXJlLXRvcGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscCxtLGYsaCxiLGcsdjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChsPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5IiksdT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeUxpbmsiLCJtb2RlbC5waW5uZWRfZ2xvYmFsbHkiLCJtb2RlbC5waW5uZWRfdW50aWwiKSxjPSgwLHQuZGVmYXVsdCkoImNhdGVnb3J5TGluayIpLGQ9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnlMaW5rIiwicGlubmVkSW5DYXRlZ29yeUNvdW50IikscD0oMCx0LmRlZmF1bHQpKCJwYXJzZWRQaW5uZWRJbkNhdGVnb3J5VW50aWwiKSxtPSgwLHQuZGVmYXVsdCkoInBhcnNlZFBpbm5lZEdsb2JhbGx5VW50aWwiKSxmPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnBpbm5lZEluQ2F0ZWdvcnlVbnRpbCIpLGg9KDAsdC5kZWZhdWx0KSgibW9kZWwucGlubmVkR2xvYmFsbHlVbnRpbCIpLGI9KDAsdC5kZWZhdWx0KSgicGluRGlzYWJsZWQiKSxnPSgwLHQuZGVmYXVsdCkoInBpbkdsb2JhbGx5RGlzYWJsZWQiKSxhKHY9e3RvcGljQ29udHJvbGxlcjooMCxuLmluamVjdCkoInRvcGljIiksbG9hZGluZzohMCxwaW5uZWRJbkNhdGVnb3J5Q291bnQ6MCxwaW5uZWRHbG9iYWxseUNvdW50OjAsYmFubmVyQ291bnQ6MCxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7Im1vZGVsLnBpbm5lZEluQ2F0ZWdvcnlVbnRpbCI6bnVsbCwibW9kZWwucGlubmVkR2xvYmFsbHlVbnRpbCI6bnVsbCxwaW5JbkNhdGVnb3J5VGlwU2hvd25BdDohMSxwaW5HbG9iYWxseVRpcFNob3duQXQ6ITF9KX0sY2F0ZWdvcnlMaW5rOmZ1bmN0aW9uKGUpe3JldHVybigwLG8uY2F0ZWdvcnlMaW5rSFRNTCkoZSx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9LHVuUGluTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9InRvcGljLmZlYXR1cmVfdG9waWMudW5waW4iO3QmJihpKz0iX2dsb2JhbGx5IiksbW9tZW50KG4pPm1vbWVudCgpJiYoaSs9Il91bnRpbCIpO3ZhciBzPW1vbWVudChuKS5mb3JtYXQoIkxMIik7cmV0dXJuIEkxOG4udChpLHtjYXRlZ29yeUxpbms6ZSx1bnRpbDpzfSl9LHBpbk1lc3NhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgidG9waWMuZmVhdHVyZV90b3BpYy5waW4iLHtjYXRlZ29yeUxpbms6ZX0pfSxhbHJlYWR5UGlubmVkTWVzc2FnZTpmdW5jdGlvbihlLHQpe3ZhciBuPTA9PT10PyJ0b3BpYy5mZWF0dXJlX3RvcGljLm5vdF9waW5uZWQiOiJ0b3BpYy5mZWF0dXJlX3RvcGljLmFscmVhZHlfcGlubmVkIjtyZXR1cm4gSTE4bi50KG4se2NhdGVnb3J5TGluazplLGNvdW50OnR9KX0scGluRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIXRoaXMuX2lzRGF0ZVZhbGlkKGUpfSxwaW5HbG9iYWxseURpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLl9pc0RhdGVWYWxpZChlKX0scGFyc2VkUGlubmVkSW5DYXRlZ29yeVVudGlsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJzZURhdGUoZSl9LHBhcnNlZFBpbm5lZEdsb2JhbGx5VW50aWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3BhcnNlRGF0ZShlKX0scGluSW5DYXRlZ29yeVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMucGluX3ZhbGlkYXRpb24iKX0pfSxwaW5HbG9iYWxseVZhbGlkYXRpb246ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZSh7ZmFpbGVkOiEwLHJlYXNvbjpJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMucGluX3ZhbGlkYXRpb24iKX0pfSxfcGFyc2VEYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBtb21lbnQoZSxbIllZWVktTU0tREQiLCJZWVlZLU1NLUREIEhIOm1tIl0pfSxfaXNEYXRlVmFsaWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNWYWxpZCgpJiZlPm1vbWVudCgpfSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnNldCgibG9hZGluZyIsITApLCgwLGkuYWpheCkoIi90b3BpY3MvZmVhdHVyZV9zdGF0cy5qc29uIix7ZGF0YTp7Y2F0ZWdvcnlfaWQ6dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3J5LmlkIil9fSkudGhlbihmdW5jdGlvbihlKXtlJiZ0LnNldFByb3BlcnRpZXMoe3Bpbm5lZEluQ2F0ZWdvcnlDb3VudDplLnBpbm5lZF9pbl9jYXRlZ29yeV9jb3VudCxwaW5uZWRHbG9iYWxseUNvdW50OmUucGlubmVkX2dsb2JhbGx5X2NvdW50LGJhbm5lckNvdW50OmUuYmFubmVyX2NvdW50fSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0sX2ZvcndhcmRBY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy50b3BpY0NvbnRyb2xsZXIuc2VuZChlKSx0aGlzLnNlbmQoImNsb3NlTW9kYWwiKX0sX2NvbmZpcm1CZWZvcmVQaW5uaW5nOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzO2U8ND90aGlzLl9mb3J3YXJkQWN0aW9uKG4pOih0aGlzLnNlbmQoImhpZGVNb2RhbCIpLGJvb3Rib3guY29uZmlybShJMThuLnQoInRvcGljLmZlYXR1cmVfdG9waWMuY29uZmlybV8iK3Qse2NvdW50OmV9KSxJMThuLnQoIm5vX3ZhbHVlIiksSTE4bi50KCJ5ZXNfdmFsdWUiKSxmdW5jdGlvbihlKXtyZXR1cm4gZT9pLl9mb3J3YXJkQWN0aW9uKG4pOmkuc2VuZCgicmVvcGVuTW9kYWwiKX0pKX0sYWN0aW9uczp7cGluOmZ1bmN0aW9uKCl7dGhpcy5waW5EaXNhYmxlZD90aGlzLnNldCgicGluSW5DYXRlZ29yeVRpcFNob3duQXQiLERhdGUubm93KCkpOnRoaXMuX2ZvcndhcmRBY3Rpb24oInRvZ2dsZVBpbm5lZCIpfSxwaW5HbG9iYWxseTpmdW5jdGlvbigpe3RoaXMucGluR2xvYmFsbHlEaXNhYmxlZD90aGlzLnNldCgicGluR2xvYmFsbHlUaXBTaG93bkF0IixEYXRlLm5vdygpKTp0aGlzLl9jb25maXJtQmVmb3JlUGlubmluZyh0aGlzLnBpbm5lZEdsb2JhbGx5Q291bnQsInBpbl9nbG9iYWxseSIsInBpbkdsb2JhbGx5Iil9LHVucGluOmZ1bmN0aW9uKCl7dGhpcy5fZm9yd2FyZEFjdGlvbigidG9nZ2xlUGlubmVkIil9LG1ha2VCYW5uZXI6ZnVuY3Rpb24oKXt0aGlzLl9mb3J3YXJkQWN0aW9uKCJtYWtlQmFubmVyIil9LHJlbW92ZUJhbm5lcjpmdW5jdGlvbigpe3RoaXMuX2ZvcndhcmRBY3Rpb24oInJlbW92ZUJhbm5lciIpfX19LCJjYXRlZ29yeUxpbmsiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImNhdGVnb3J5TGluayIpLHYpLGEodiwidW5QaW5NZXNzYWdlIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJ1blBpbk1lc3NhZ2UiKSx2KSxhKHYsInBpbk1lc3NhZ2UiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbk1lc3NhZ2UiKSx2KSxhKHYsImFscmVhZHlQaW5uZWRNZXNzYWdlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJhbHJlYWR5UGlubmVkTWVzc2FnZSIpLHYpLGEodiwicGluRGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkRpc2FibGVkIiksdiksYSh2LCJwaW5HbG9iYWxseURpc2FibGVkIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJwaW5HbG9iYWxseURpc2FibGVkIiksdiksYSh2LCJwYXJzZWRQaW5uZWRJbkNhdGVnb3J5VW50aWwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBhcnNlZFBpbm5lZEluQ2F0ZWdvcnlVbnRpbCIpLHYpLGEodiwicGFyc2VkUGlubmVkR2xvYmFsbHlVbnRpbCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwicGFyc2VkUGlubmVkR2xvYmFsbHlVbnRpbCIpLHYpLGEodiwicGluSW5DYXRlZ29yeVZhbGlkYXRpb24iLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIiksdiksYSh2LCJwaW5HbG9iYWxseVZhbGlkYXRpb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInBpbkdsb2JhbGx5VmFsaWRhdGlvbiIpLHYpLHYpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2ZsYWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL2FjdGlvbi1zdW1tYXJ5IiwiZGlzY291cnNlL21vZGVscy9wb3N0LWFjdGlvbi10eXBlIiwiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4scixpLHMsYSxvLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscCxtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwoZD0oMCx0LmRlZmF1bHQpKCJzcGFtbWVyRGV0YWlscy5jYW5EZWxldGUiLCJzZWxlY3RlZC5uYW1lX2tleSIpLHA9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiksbT0oMCx0LmRlZmF1bHQpKCJwb3N0IiwiZmxhZ1RvcGljIiwibW9kZWwuYWN0aW9uc19zdW1tYXJ5LkBlYWNoLmNhbl9hY3QiKSxmPSgwLHQuZGVmYXVsdCkoInBvc3QiLCJmbGFnVG9waWMiLCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkuQGVhY2guY2FuX2FjdCIpLGg9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciLCJtZXNzYWdlLmxlbmd0aCIpLGI9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiwic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciKSxnPSgwLHQuZGVmYXVsdCkoInNlbGVjdGVkLmlzX2N1c3RvbV9mbGFnIiksdj0oMCx0LmRlZmF1bHQpKCJzZWxlY3RlZC5pc19jdXN0b21fZmxhZyIsImZsYWdUb3BpYyIpLHk9KDAsdC5kZWZhdWx0KSgiZmxhZ1RvcGljIiwic2VsZWN0ZWQubmFtZV9rZXkiKSxjKF89e2FkbWluVG9vbHM6KDAsbC5kZWZhdWx0KSgpLHVzZXJEZXRhaWxzOm51bGwsc2VsZWN0ZWQ6bnVsbCxmbGFnVG9waWM6bnVsbCxtZXNzYWdlOm51bGwsaXNXYXJuaW5nOiExLHRvcGljQWN0aW9uQnlOYW1lOm51bGwsc3BhbW1lckRldGFpbHM6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWQ6bnVsbCxzcGFtbWVyRGV0YWlsczpudWxsfSk7dmFyIGU9dGhpcy5hZG1pblRvb2xzO2UmJmUuY2hlY2tTcGFtbWVyKHRoaXMuZ2V0KCJtb2RlbC51c2VyX2lkIikpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInNwYW1tZXJEZXRhaWxzIixlKX0pfSxzaG93RGVsZXRlU3BhbW1lcjpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYic3BhbSI9PT10fSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZmxhZ2dpbmdfdG9waWMudGl0bGUiOiJmbGFnZ2luZy50aXRsZSJ9LGZsYWdzQXZhaWxhYmxlOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZih0aGlzLmZsYWdUb3BpYyl7dmFyIHQ9ci5kZWZhdWx0LmNyZWF0ZSgpLGk9dGhpcy5tb2RlbDtyZXR1cm4gaS5nZXQoImFjdGlvbnNfc3VtbWFyeSIpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mbGFnVG9waWM9aSxlLmFjdGlvblR5cGU9bi5zaXRlLnRvcGljRmxhZ1R5cGVCeUlkKGUuaWQpLHQuc2V0KGUuYWN0aW9uVHlwZS5nZXQoIm5hbWVfa2V5IiksYS5kZWZhdWx0LmNyZWF0ZShlKSl9KSx0aGlzLnNldCgidG9waWNBY3Rpb25CeU5hbWUiLHQpLHRoaXMuc2l0ZS5nZXQoInRvcGljX2ZsYWdfdHlwZXMiKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0KCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkiKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5nZXQoImlkIikmJmUuY2FuX2FjdH0pfSl9dmFyIGUscz10aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKSxvPXMuaW5kZXhPZihzLmZpbHRlckJ5KCJuYW1lX2tleSIsIm5vdGlmeV91c2VyIilbMF0pO3JldHVybi0xIT09byYmKGU9c1tvXSxzLnNwbGljZShvLDEpLHMuc3BsaWNlKDAsMCxlKSksc30sc3RhZmZGbGFnc0F2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKSYmMTx0aGlzLmdldCgibW9kZWwuZmxhZ3NBdmFpbGFibGUiKS5sZW5ndGh9LHN1Ym1pdEVuYWJsZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlbGVjdGVkO2lmKCFlKXJldHVybiExO2lmKGUuZ2V0KCJpc19jdXN0b21fZmxhZyIpKXt2YXIgdD10aGlzLmdldCgibWVzc2FnZS5sZW5ndGgiKXx8MDtyZXR1cm4gdD49RGlzY291cnNlLlNpdGVTZXR0aW5ncy5taW5fcGVyc29uYWxfbWVzc2FnZV9wb3N0X2xlbmd0aCYmdDw9by5NQVhfTUVTU0FHRV9MRU5HVEh9cmV0dXJuITB9LHN1Ym1pdERpc2FibGVkOigwLG4ubm90KSgic3VibWl0RW5hYmxlZCIpLGNhblRha2VBY3Rpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmIXQmJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxzdWJtaXRJY29uOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJlbnZlbG9wZSI6ImZsYWcifSxzdWJtaXRMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiBlP3Q/ImZsYWdnaW5nX3RvcGljLm5vdGlmeV9hY3Rpb24iOiJmbGFnZ2luZy5ub3RpZnlfYWN0aW9uIjp0PyJmbGFnZ2luZ190b3BpYy5hY3Rpb24iOiJmbGFnZ2luZy5hY3Rpb24ifSxhY3Rpb25zOntkZWxldGVTcGFtbWVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zcGFtbWVyRGV0YWlscztlJiZlLmRlbGV0ZVVzZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pfSx0YWtlQWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjcmVhdGVGbGFnIix7dGFrZUFjdGlvbjohMH0pLHRoaXMuc2V0KCJtb2RlbC5oaWRkZW4iLCEwKX0sY3JlYXRlRmxhZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dm9pZCAwLG49dGhpcy5mbGFnVG9waWM/dGhpcy5nZXQoInRvcGljQWN0aW9uQnlOYW1lLiIrdGhpcy5nZXQoInNlbGVjdGVkLm5hbWVfa2V5IikpOnRoaXMuZ2V0KCJtb2RlbC5hY3Rpb25zX3N1bW1hcnkiKS5maW5kQnkoImlkIix0aGlzLmdldCgic2VsZWN0ZWQuaWQiKSksaT10aGlzLmdldCgic2VsZWN0ZWQuaXNfY3VzdG9tX2ZsYWciKT97bWVzc2FnZTp0aGlzLm1lc3NhZ2V9Ont9O2UmJihpPSQuZXh0ZW5kKGksZSkpLHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIodGhpcy5mbGFnVG9waWM/InRvcGljOmZsYWctY3JlYXRlZCI6InBvc3Q6ZmxhZy1jcmVhdGVkIix0aGlzLm1vZGVsLG4saSksdGhpcy5zZW5kKCJoaWRlTW9kYWwiKSxuLmFjdCh0aGlzLm1vZGVsLGkpLnRoZW4oZnVuY3Rpb24oKXt0LnNlbmQoImNsb3NlTW9kYWwiKSxpLm1lc3NhZ2UmJnQuc2V0KCJtZXNzYWdlIiwiIiksdC5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOnQuZ2V0KCJtb2RlbC5pZCIpfSl9KS5jYXRjaChmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSwoMCx1LnBvcHVwQWpheEVycm9yKShlKX0pfSxjcmVhdGVGbGFnQXNXYXJuaW5nOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjcmVhdGVGbGFnIix7aXNXYXJuaW5nOiEwfSksdGhpcy5zZXQoIm1vZGVsLmhpZGRlbiIsITApfSxjaGFuZ2VQb3N0QWN0aW9uVHlwZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWQiLGUpfX0sY2FuU2VuZFdhcm5pbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmdGhpcy5jdXJyZW50VXNlci5nZXQoInN0YWZmIikmJiJub3RpZnlfdXNlciI9PT10fX0sInNob3dEZWxldGVTcGFtbWVyIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJzaG93RGVsZXRlU3BhbW1lciIpLF8pLGMoXywidGl0bGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInRpdGxlIiksXyksYyhfLCJmbGFnc0F2YWlsYWJsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiZmxhZ3NBdmFpbGFibGUiKSxfKSxjKF8sInN0YWZmRmxhZ3NBdmFpbGFibGUiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN0YWZmRmxhZ3NBdmFpbGFibGUiKSxfKSxjKF8sInN1Ym1pdEVuYWJsZWQiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN1Ym1pdEVuYWJsZWQiKSxfKSxjKF8sImNhblRha2VBY3Rpb24iLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNhblRha2VBY3Rpb24iKSxfKSxjKF8sInN1Ym1pdEljb24iLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sInN1Ym1pdEljb24iKSxfKSxjKF8sInN1Ym1pdExhYmVsIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihfLCJzdWJtaXRMYWJlbCIpLF8pLGMoXywiY2FuU2VuZFdhcm5pbmciLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImNhblNlbmRXYXJuaW5nIiksXyksXykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZm9yZ290LXBhc3N3b3JkIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxvLHMscixhKXsidXNlIHN0cmljdCI7dmFyIGwsdSxjLGQscCxtLGYsaDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChsPSgwLHQuZGVmYXVsdCkoImFjY291bnRFbWFpbE9yVXNlcm5hbWUiLCJkaXNhYmxlZCIpLGM9dT17b2ZmZXJIZWxwOm51bGwsaGVscFNlZW46ITEsc3VibWl0RGlzYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxuLmlzRW1wdHkpKChlfHwiIikudHJpbSgpKXx8dH0sb25TaG93OmZ1bmN0aW9uKCl7JC5jb29raWUoImVtYWlsIikmJnRoaXMuc2V0KCJhY2NvdW50RW1haWxPclVzZXJuYW1lIiwkLmNvb2tpZSgiZW1haWwiKSl9LGFjdGlvbnM6e29rOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LGhlbHA6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe29mZmVySGVscDpJMThuLnQoImZvcmdvdF9wYXNzd29yZC5oZWxwIix7YmFzZVBhdGg6RGlzY291cnNlLkJhc2VVcml9KSxoZWxwU2VlbjohMH0pfSxyZXNldFBhc3N3b3JkOmZ1bmN0aW9uKCl7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy5zdWJtaXREaXNhYmxlZHx8KHRoaXMuc2V0KCJkaXNhYmxlZCIsITApLHRoaXMuY2xlYXJGbGFzaCgpLCgwLG8uYWpheCkoIi9zZXNzaW9uL2ZvcmdvdF9wYXNzd29yZCIse2RhdGE6e2xvZ2luOnRoaXMuYWNjb3VudEVtYWlsT3JVc2VybmFtZS50cmltKCl9LHR5cGU6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0oMCxyLmVzY2FwZUV4cHJlc3Npb24pKHMuYWNjb3VudEVtYWlsT3JVc2VybmFtZSksbj0iZm9yZ290X3Bhc3N3b3JkLmNvbXBsZXRlXyIrKHQubWF0Y2goL0AvKT8iZW1haWwiOiJ1c2VybmFtZSIpLGk9dm9pZCAwOyEwPT09ZS51c2VyX2ZvdW5kPyhuKz0iX2ZvdW5kIixzLnNldCgiYWNjb3VudEVtYWlsT3JVc2VybmFtZSIsIiIpLHMuc2V0KCJvZmZlckhlbHAiLEkxOG4udChuLHtlbWFpbDp0LHVzZXJuYW1lOnR9KSkpOighMT09PWUudXNlcl9mb3VuZCYmKG4rPSJfbm90X2ZvdW5kIixpPSJlcnJvciIpLHMuZmxhc2goSTE4bi50KG4se2VtYWlsOnQsdXNlcm5hbWU6dH0pLGkpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3MuZmxhc2goKDAsYS5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3Muc2V0KCJkaXNhYmxlZCIsITEpfSkpLCExfX19LGQ9InN1Ym1pdERpc2FibGVkIixwPVtsXSxtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwic3VibWl0RGlzYWJsZWQiKSxmPXUsaD17fSxPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2hbZV09bVtlXX0pLGguZW51bWVyYWJsZT0hIWguZW51bWVyYWJsZSxoLmNvbmZpZ3VyYWJsZT0hIWguY29uZmlndXJhYmxlLCgidmFsdWUiaW4gaHx8aC5pbml0aWFsaXplcikmJihoLndyaXRhYmxlPSEwKSxoPXAuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYyxkLGUpfHxlfSxoKSxmJiZ2b2lkIDAhPT1oLmluaXRpYWxpemVyJiYoaC52YWx1ZT1oLmluaXRpYWxpemVyP2guaW5pdGlhbGl6ZXIuY2FsbChmKTp2b2lkIDAsaC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWguaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxkLGgpLGg9bnVsbCksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZnVsbC1wYWdlLXNlYXJjaCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3BhZ2UtdHJhY2tlciIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiXSxmdW5jdGlvbihlLHQsbixpLHIsYSxzLG8sbCx1LGMsZCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG0sZixoLGIsZyx2LHksdyx4LGssUCxqLFQsRSxPLFMsQyxNLEQsSSxMO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgQT1be25hbWU6STE4bi50KCJzZWFyY2gucmVsZXZhbmNlIiksaWQ6MH0se25hbWU6STE4bi50KCJzZWFyY2gubGF0ZXN0X3Bvc3QiKSxpZDoxLHRlcm06Im9yZGVyOmxhdGVzdCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLm1vc3RfbGlrZWQiKSxpZDoyLHRlcm06Im9yZGVyOmxpa2VzIn0se25hbWU6STE4bi50KCJzZWFyY2gubW9zdF92aWV3ZWQiKSxpZDozLHRlcm06Im9yZGVyOnZpZXdzIn0se25hbWU6STE4bi50KCJzZWFyY2gubGF0ZXN0X3RvcGljIiksaWQ6NCx0ZXJtOiJvcmRlcjpsYXRlc3RfdG9waWMifV07ZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKG09KDAscy5kZWZhdWx0KSgicmVzdWx0Q291bnQiKSxmPSgwLHMuZGVmYXVsdCkoInEiKSxoPSgwLHMuZGVmYXVsdCkoInEiKSxiPSgwLHMuZGVmYXVsdCkoInNraXBfY29udGV4dCIsImNvbnRleHQiKSxnPSgwLHMuZGVmYXVsdCkoImNvbnRleHQiLCJjb250ZXh0X2lkIiksdj0oMCxzLmRlZmF1bHQpKCJxIikseT0oMCxzLmRlZmF1bHQpKCJxIiksdz0oMCxzLmRlZmF1bHQpKCJjYW5DcmVhdGVUb3BpYyIsInNpdGVTZXR0aW5ncy5sb2dpbl9yZXF1aXJlZCIpLHg9KDAscy5vYnNlcnZlcykoInNvcnRPcmRlciIpLGs9KDAscy5vYnNlcnZlcykoIm1vZGVsIiksUD0oMCxzLmRlZmF1bHQpKCJxIiksaj0oMCxzLm9ic2VydmVzKSgicSIpLFQ9KDAscy5kZWZhdWx0KSgicSIpLEU9KDAscy5vYnNlcnZlcykoImxvYWRpbmciKSxPPSgwLHMuZGVmYXVsdCkoInJlc3VsdENvdW50Iiwibm9Tb3J0USIpLFM9KDAscy5vYnNlcnZlcykoIm1vZGVsLnBvc3RzLmxlbmd0aCIpLEM9KDAscy5kZWZhdWx0KSgiaGFzUmVzdWx0cyIpLE09KDAscy5kZWZhdWx0KSgibW9kZWwuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LmNhbl9jcmVhdGVfdG9waWMiKSxEPSgwLHMuZGVmYXVsdCkoInBhZ2UiKSxwKEk9e2FwcGxpY2F0aW9uOigwLGkuaW5qZWN0KSgpLGNvbXBvc2VyOigwLGkuaW5qZWN0KSgpLGJ1bGtTZWxlY3RFbmFibGVkOm51bGwsbG9hZGluZzohMSxxdWVyeVBhcmFtczpbInEiLCJleHBhbmRlZCIsImNvbnRleHRfaWQiLCJjb250ZXh0Iiwic2tpcF9jb250ZXh0Il0scTpudWxsLHNlbGVjdGVkOltdLGV4cGFuZGVkOiExLGNvbnRleHRfaWQ6bnVsbCxjb250ZXh0Om51bGwsc2VhcmNoaW5nOiExLHNvcnRPcmRlcjowLHNvcnRPcmRlcnM6QSxpbnZhbGlkU2VhcmNoOiExLHBhZ2U6MSxyZXN1bHRDb3VudDpudWxsLGhhc1Jlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIDA8KGV8fDApfSxoYXNBdXRvZm9jdXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsdC5pc0VtcHR5KShlKX0saGlnaGxpZ2h0UXVlcnk6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gXy5yZWplY3QoZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oZSl7cmV0dXJuImwiPT09ZX0pLmpvaW4oIiAiKX0sc2VhcmNoQ29udGV4dEVuYWJsZWQ6e2dldDpmdW5jdGlvbihlLHQpe3JldHVybiFlJiZ0fHwiZmFsc2UiPT09ZX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJza2lwX2NvbnRleHQiLGU/ImZhbHNlIjoidHJ1ZSIpfX0sc2VhcmNoQ29udGV4dERlc2NyaXB0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG49dDtpZigiY2F0ZWdvcnkiPT09ZSl7dmFyIGk9by5kZWZhdWx0LmZpbmRCeUlkKHQpO2lmKCFpKXJldHVybjtuPWkuZ2V0KCJuYW1lIil9cmV0dXJuKDAsYS5zZWFyY2hDb250ZXh0RGVzY3JpcHRpb24pKGUsbil9LHNlYXJjaEFjdGl2ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxhLmlzVmFsaWRTZWFyY2hUZXJtKShlKX0sbm9Tb3J0UTpmdW5jdGlvbihlKXtyZXR1cm4gZT10aGlzLmNsZWFuVGVybShlKSwoMCxsLmVzY2FwZUV4cHJlc3Npb24pKGUpfSxzaG93U3VnZ2VzdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiBlfHwhdH0sX3NlYXJjaE9uU29ydENoYW5nZTohMCxzZXRTZWFyY2hUZXJtOmZ1bmN0aW9uKGUpe3RoaXMuX3NlYXJjaE9uU29ydENoYW5nZT0hMSxlPXRoaXMuY2xlYW5UZXJtKGUpLHRoaXMuX3NlYXJjaE9uU29ydENoYW5nZT0hMCx0aGlzLnNldCgic2VhcmNoVGVybSIsZSl9LGNsZWFuVGVybTpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiB0JiZBLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50ZXJtJiZ0Lm1hdGNoKG5ldyBSZWdFeHAoZS50ZXJtKyJcXGIiKSkmJihuLnNldCgic29ydE9yZGVyIixlLmlkKSx0PSh0PXQucmVwbGFjZShuZXcgUmVnRXhwKGUudGVybSsiXFxiIiwiZyIpLCIiKSkudHJpbSgpKX0pLHR9LHRyaWdnZXJTZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLl9zZWFyY2hPblNvcnRDaGFuZ2UmJih0aGlzLnNldCgicGFnZSIsMSksdGhpcy5fc2VhcmNoKCkpfSxtb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNlYXJjaFRlcm0hPT10aGlzLnEmJnRoaXMuc2V0U2VhcmNoVGVybSh0aGlzLnEpfSxzaG93TGlrZUNvdW50OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYtMTxlLmluZGV4T2YoIm9yZGVyOmxpa2VzIil9LHFDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbCYmdGhpcy5nZXQoIm1vZGVsLnEiKSE9PXRoaXMucSYmKHRoaXMuc2V0U2VhcmNoVGVybSh0aGlzLnEpLHRoaXMuc2VuZCgic2VhcmNoIikpfSxpc1ByaXZhdGVNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0aGlzLmN1cnJlbnRVc2VyJiYoLTE8ZS5pbmRleE9mKCJpbjpwZXJzb25hbCIpfHwtMTxlLmluZGV4T2YoInBlcnNvbmFsX21lc3NhZ2VzOiIrdGhpcy5jdXJyZW50VXNlci5nZXQoInVzZXJuYW1lX2xvd2VyIikpKX0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMubG9hZGluZyl9LHJlc3VsdENvdW50TGFiZWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lJTUwPT0wPyIrIjoiIjtyZXR1cm4gSTE4bi50KCJzZWFyY2gucmVzdWx0X2NvdW50Iix7Y291bnQ6ZSxwbHVzOm4sdGVybTp0fSl9LHJlc3VsdENvdW50Q2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJyZXN1bHRDb3VudCIsdGhpcy5nZXQoIm1vZGVsLnBvc3RzLmxlbmd0aCIpKX0sY2FuQnVsa1NlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5zdGFmZiYmZX0sY2FuQ3JlYXRlVG9waWM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJmV9LGlzTGFzdFBhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIDEwPT09ZX0sc2VhcmNoQnV0dG9uRGlzYWJsZWQ6KDAsbi5vcikoInNlYXJjaGluZyIsImxvYWRpbmciKSxfc2VhcmNoOmZ1bmN0aW9uKCl7dmFyIGUsbix0LGkscyxvPXRoaXM7dGhpcy5zZWFyY2hpbmd8fCh0aGlzLnNldCgiaW52YWxpZFNlYXJjaCIsITEpLGU9dGhpcy5zZWFyY2hUZXJtLCgwLGEuaXNWYWxpZFNlYXJjaFRlcm0pKGUpPygxPT09KG49e3E6ZSxwYWdlOnRoaXMucGFnZX0pLnBhZ2U/KHRoaXMuc2V0KCJidWxrU2VsZWN0RW5hYmxlZCIsITEpLHRoaXMuc2VsZWN0ZWQuY2xlYXIoKSx0aGlzLnNldCgic2VhcmNoaW5nIiwhMCksKDAsZC5zY3JvbGxUb3ApKCkpOnRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKHQ9dGhpcy5zb3J0T3JkZXIpJiZBW3RdLnRlcm0mJihuLnErPSIgIitBW3RdLnRlcm0pLHRoaXMuc2V0KCJxIixuLnEpLCghKGk9dGhpcy5za2lwX2NvbnRleHQpJiZ0aGlzLmNvbnRleHR8fCJmYWxzZSI9PT1pKSYmKG4uc2VhcmNoX2NvbnRleHQ9e3R5cGU6dGhpcy5jb250ZXh0LGlkOnRoaXMuY29udGV4dF9pZH0pLHM9KDAsYS5nZXRTZWFyY2hLZXkpKG4pLCgwLHIuYWpheCkoIi9zZWFyY2giLHtkYXRhOm59KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PSgwLGEudHJhbnNsYXRlUmVzdWx0cykoZSl8fHt9O2UuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0JiZvLnNldCgicSIsZS5ncm91cGVkX3NlYXJjaF9yZXN1bHQudGVybSksMTxuLnBhZ2U/dCYmKG8ubW9kZWwucG9zdHMucHVzaE9iamVjdHModC5wb3N0cyksby5tb2RlbC50b3BpY3MucHVzaE9iamVjdHModC50b3BpY3MpLG8ubW9kZWwuc2V0KCJncm91cGVkX3NlYXJjaF9yZXN1bHQiLGUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0KSk6KCgwLHUuc2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIse3NlYXJjaEtleTpzLG1vZGVsOnR9LDUpLHQuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0PWUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LG8uc2V0KCJtb2RlbCIsdCkpfSkuZmluYWxseShmdW5jdGlvbigpe28uc2V0KCJzZWFyY2hpbmciLCExKSxvLnNldCgibG9hZGluZyIsITEpfSkpOnRoaXMuc2V0KCJpbnZhbGlkU2VhcmNoIiwhMCkpfSxhY3Rpb25zOntjcmVhdGVUb3BpYzpmdW5jdGlvbihlKXt2YXIgdCxuPXZvaWQgMDstMT09PWUuaW5kZXhPZigiY2F0ZWdvcnk6Iil8fCh0PWUubWF0Y2goL2NhdGVnb3J5OihcUyopLykpJiZ0WzFdJiYobj10WzFdKSx0aGlzLmNvbXBvc2VyLm9wZW4oe2FjdGlvbjpjLmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OmMuZGVmYXVsdC5ORVdfVE9QSUNfS0VZLHRvcGljQ2F0ZWdvcnk6bn0pfSxzZWxlY3RBbGw6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkLmFkZE9iamVjdHModGhpcy5nZXQoIm1vZGVsLnBvc3RzIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljfSkpLCQoIi5mcHMtcmVzdWx0IGlucHV0W3R5cGU9Y2hlY2tib3hdIikucHJvcCgiY2hlY2tlZCIsITApfSxjbGVhckFsbDpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWQuY2xlYXIoKSwkKCIuZnBzLXJlc3VsdCBpbnB1dFt0eXBlPWNoZWNrYm94XSIpLnByb3AoImNoZWNrZWQiLCExKX0sdG9nZ2xlQnVsa1NlbGVjdDpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoImJ1bGtTZWxlY3RFbmFibGVkIiksdGhpcy5zZWxlY3RlZC5jbGVhcigpfSxzZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLnNldCgicGFnZSIsMSksdGhpcy5fc2VhcmNoKCksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJnRoaXMuc2V0KCJleHBhbmRlZCIsITEpfSx0b2dnbGVBZHZhbmNlZFNlYXJjaDpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoImV4cGFuZGVkIil9LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYWdlO3RoaXMuZ2V0KCJtb2RlbC5ncm91cGVkX3NlYXJjaF9yZXN1bHQubW9yZV9mdWxsX3BhZ2VfcmVzdWx0cyIpJiYhdGhpcy5sb2FkaW5nJiZlPDEwJiYodGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgicGFnZSIpLHRoaXMuX3NlYXJjaCgpKX0sbG9nQ2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5nZXQoIm1vZGVsLmdyb3VwZWRfc2VhcmNoX3Jlc3VsdC5zZWFyY2hfbG9nX2lkIikmJmUmJigwLHIuYWpheCkoIi9zZWFyY2gvY2xpY2siLHt0eXBlOiJQT1NUIixkYXRhOntzZWFyY2hfbG9nX2lkOnRoaXMuZ2V0KCJtb2RlbC5ncm91cGVkX3NlYXJjaF9yZXN1bHQuc2VhcmNoX2xvZ19pZCIpLHNlYXJjaF9yZXN1bHRfaWQ6ZSxzZWFyY2hfcmVzdWx0X3R5cGU6InRvcGljIn19KX19fSwiaGFzUmVzdWx0cyIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaGFzUmVzdWx0cyIpLEkpLHAoSSwiaGFzQXV0b2ZvY3VzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoYXNBdXRvZm9jdXMiKSxJKSxwKEksImhpZ2hsaWdodFF1ZXJ5IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoaWdobGlnaHRRdWVyeSIpLEkpLHAoSSwic2VhcmNoQ29udGV4dEVuYWJsZWQiLFtiXSwoTD0oTD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInNlYXJjaENvbnRleHRFbmFibGVkIikpP0wudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBMfX0pLEkpLHAoSSwic2VhcmNoQ29udGV4dERlc2NyaXB0aW9uIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJzZWFyY2hDb250ZXh0RGVzY3JpcHRpb24iKSxJKSxwKEksInNlYXJjaEFjdGl2ZSIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2VhcmNoQWN0aXZlIiksSSkscChJLCJub1NvcnRRIixbeV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJub1NvcnRRIiksSSkscChJLCJzaG93U3VnZ2VzdGlvbiIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2hvd1N1Z2dlc3Rpb24iKSxJKSxwKEksInRyaWdnZXJTZWFyY2giLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInRyaWdnZXJTZWFyY2giKSxJKSxwKEksIm1vZGVsQ2hhbmdlZCIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwibW9kZWxDaGFuZ2VkIiksSSkscChJLCJzaG93TGlrZUNvdW50IixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJzaG93TGlrZUNvdW50IiksSSkscChJLCJxQ2hhbmdlZCIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicUNoYW5nZWQiKSxJKSxwKEksImlzUHJpdmF0ZU1lc3NhZ2UiLFtUXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImlzUHJpdmF0ZU1lc3NhZ2UiKSxJKSxwKEksIl9zaG93Rm9vdGVyIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJfc2hvd0Zvb3RlciIpLEkpLHAoSSwicmVzdWx0Q291bnRMYWJlbCIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicmVzdWx0Q291bnRMYWJlbCIpLEkpLHAoSSwicmVzdWx0Q291bnRDaGFuZ2VkIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJyZXN1bHRDb3VudENoYW5nZWQiKSxJKSxwKEksImNhbkJ1bGtTZWxlY3QiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImNhbkJ1bGtTZWxlY3QiKSxJKSxwKEksImNhbkNyZWF0ZVRvcGljIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJjYW5DcmVhdGVUb3BpYyIpLEkpLHAoSSwiaXNMYXN0UGFnZSIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaXNMYXN0UGFnZSIpLEkpLEkpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyYW50LWJhZGdlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS9taXhpbnMvZ3JhbnQtYmFkZ2UtY29udHJvbGxlciIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHUsYyxkLHAsbT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBmKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCxvLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdHMiKSxjPSgwLHQuZGVmYXVsdCkoInBvc3QiKSxkPSgwLHQuZGVmYXVsdCkoInNhdmluZyIsInNlbGVjdGVkQmFkZ2VHcmFudGFibGUiKSxmKHA9e3RvcGljQ29udHJvbGxlcjooMCxuLmluamVjdCkoInRvcGljIiksbG9hZGluZzohMCxzYXZpbmc6ITEsc2VsZWN0ZWRCYWRnZUlkOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFsbEJhZGdlcz1bXSx0aGlzLnVzZXJCYWRnZXM9W119LHBvc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoInRvcGljQ29udHJvbGxlci5zZWxlY3RlZFBvc3RzIilbMF19LGJhZGdlUmVhc29uOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0KCJ1cmwiKSxuPXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0O3JldHVybiAwPT09dC5pbmRleE9mKCIvIik/bit0OnR9LGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCF0fSxvblNob3c6ZnVuY3Rpb24oKXt2YXIgcz10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCksKDAsbC5hbGwpKFtyLmRlZmF1bHQuZmluZEFsbCgpLGEuZGVmYXVsdC5maW5kQnlVc2VybmFtZSh0aGlzLmdldCgicG9zdC51c2VybmFtZSIpKV0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bShlLDIpLG49dFswXSxpPXRbMV07cy5zZXRQcm9wZXJ0aWVzKHthbGxCYWRnZXM6bix1c2VyQmFkZ2VzOmksbG9hZGluZzohMX0pfSl9LGFjdGlvbnM6e2dyYW50QmFkZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLmdyYW50QmFkZ2UodGhpcy5zZWxlY3RlZEJhZGdlSWQsdGhpcy5nZXQoInBvc3QudXNlcm5hbWUiKSx0aGlzLmJhZGdlUmVhc29uKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJzZWxlY3RlZEJhZGdlSWQiLG51bGwpLHQuZmxhc2goSTE4bi50KCJiYWRnZXMuc3VjY2Vzc2Z1bGx5X2dyYW50ZWQiLHt1c2VybmFtZTp0LmdldCgicG9zdC51c2VybmFtZSIpLGJhZGdlOmUuZ2V0KCJiYWRnZS5uYW1lIil9KSwic3VjY2VzcyIpfSxmdW5jdGlvbihlKXt0LmZsYXNoKCgwLGkuZXh0cmFjdEVycm9yKShlKSwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoInNhdmluZyIsITEpfSl9fX0sInBvc3QiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBvc3QiKSxwKSxmKHAsImJhZGdlUmVhc29uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJiYWRnZVJlYXNvbiIpLHApLGYocCwiYnV0dG9uRGlzYWJsZWQiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImJ1dHRvbkRpc2FibGVkIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHktcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz0oMCxuLm9ic2VydmVzKSgiY2FuTG9hZE1vcmUiKSxvPXtncm91cDooMCx0LmluamVjdCkoKSxncm91cEFjdGl2aXR5OigwLHQuaW5qZWN0KSgpLGFwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLGNhbkxvYWRNb3JlOiEwLGxvYWRpbmc6ITEsZW1wdHlUZXh0OigwLGkuZm10KSgidHlwZSIsImdyb3Vwcy5lbXB0eS4lQCIpLGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGkscyxvPXRoaXM7dGhpcy5jYW5Mb2FkTW9yZSYmKHRoaXMubG9hZGluZ3x8KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKHQ9dGhpcy5tb2RlbCkmJnQubGVuZ3RoJiYoZT10W3QubGVuZ3RoLTFdLmdldCgiaWQiKSxuPXRoaXMuZ2V0KCJncm91cC5tb2RlbCIpLGk9dGhpcy5nZXQoImdyb3VwQWN0aXZpdHkuY2F0ZWdvcnlfaWQiKSxzPXtiZWZvcmVQb3N0SWQ6ZSx0eXBlOnRoaXMudHlwZSxjYXRlZ29yeUlkOml9LG4uZmluZFBvc3RzKHMpLnRoZW4oZnVuY3Rpb24oZSl7dC5hZGRPYmplY3RzKGUpLDA9PT1lLmxlbmd0aCYmby5zZXQoImNhbkxvYWRNb3JlIiwhMSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7by5zZXQoImxvYWRpbmciLCExKX0pKSkpfX0sX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuY2FuTG9hZE1vcmUpfX0scj1vLGE9Il9zaG93Rm9vdGVyIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiX3Nob3dGb290ZXIiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHktdG9waWNzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWN0aXZpdHkiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cm91dGVyOigwLHQuaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsiY2F0ZWdvcnlfaWQiXX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYWRkLW1lbWJlcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LGksbixzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKHI9KDAsdC5kZWZhdWx0KSgibW9kZWwudXNlcm5hbWVzIiwibG9hZGluZyIpLGw9YT17bG9hZGluZzohMSxzZXRBc093bmVyOiExLGRpc2FibGVBZGRCdXR0b246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8IWV8fCEoMDxlLmxlbmd0aCl9LGFjdGlvbnM6e2FkZE1lbWJlcnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCk7dmFyIGU9dGhpcy5tb2RlbCxuPWUuZ2V0KCJ1c2VybmFtZXMiKTsoMCxpLmlzRW1wdHkpKG4pfHwodGhpcy5zZXRBc093bmVyP2UuYWRkT3duZXJzKG4sITApOmUuYWRkTWVtYmVycyhuLCEwKSkudGhlbihmdW5jdGlvbigpe3QudHJhbnNpdGlvblRvUm91dGUoImdyb3VwLm1lbWJlcnMiLHQuZ2V0KCJtb2RlbC5uYW1lIikse3F1ZXJ5UGFyYW1zOntmaWx0ZXI6bn19KSxlLnNldCgidXNlcm5hbWVzIixudWxsKSx0LnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAscy5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9fX0sdT0iZGlzYWJsZUFkZEJ1dHRvbiIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVBZGRCdXR0b24iKSxwPWEsbT17fSxPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21bZV09ZFtlXX0pLG0uZW51bWVyYWJsZT0hIW0uZW51bWVyYWJsZSxtLmNvbmZpZ3VyYWJsZT0hIW0uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gbXx8bS5pbml0aWFsaXplcikmJihtLndyaXRhYmxlPSEwKSxtPWMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobCx1LGUpfHxlfSxtKSxwJiZ2b2lkIDAhPT1tLmluaXRpYWxpemVyJiYobS52YWx1ZT1tLmluaXRpYWxpemVyP20uaW5pdGlhbGl6ZXIuY2FsbChwKTp2b2lkIDAsbS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW0uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobCx1LG0pLG09bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtYnVsay1hZGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJpbnB1dCIsImxvYWRpbmciLCJyZXN1bHQiKSx1PWw9e2xvYWRpbmc6ITEsZGlzYWJsZUFkZEJ1dHRvbjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHR8fCgwLGkuaXNFbXB0eSkoZSl8fGUubGVuZ3RoPD0wfHxufSxhY3Rpb25zOntjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLnNldCgicmVzdWx0IixudWxsKX0sYWRkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITAscmVzdWx0Om51bGx9KTt2YXIgZT10aGlzLmlucHV0LnNwbGl0KCJcbiIpLnVuaXEoKS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmxlbmd0aH0pOygwLHIuYWpheCkoIi9hZG1pbi9ncm91cHMvYnVsayIse2RhdGE6e3VzZXJzOmUsZ3JvdXBfaWQ6dGhpcy5nZXQoIm1vZGVsLmlkIil9LG1ldGhvZDoiUFVUIn0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInJlc3VsdCIsZSksZS51c2Vyc19ub3RfYWRkZWQmJnQuc2V0KCJyZXN1bHQuaW52YWxpZFVzZXJzIixlLnVzZXJzX25vdF9hZGRlZC5qb2luKCIsICIpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAscy5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3Quc2V0KCJsb2FkaW5nIiwhMSl9KX19fSxjPSJkaXNhYmxlQWRkQnV0dG9uIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZGlzYWJsZUFkZEJ1dHRvbiIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cC1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5vYnNlcnZlcykoImZpbHRlcklucHV0IiksbD0oMCxpLm9ic2VydmVzKSgib3JkZXIiLCJkZXNjIiwiZmlsdGVyIiksdT0oMCxpLmRlZmF1bHQpKCJvcmRlciIsImRlc2MiLCJmaWx0ZXIiKSxjPSgwLGkuZGVmYXVsdCkoIm1vZGVsLm1lbWJlcnMuW10iKSxkPSgwLGkuZGVmYXVsdCkoIm1vZGVsIikscihwPXthcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxxdWVyeVBhcmFtczpbIm9yZGVyIiwiZGVzYyIsImZpbHRlciJdLG9yZGVyOiIiLGRlc2M6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJJbnB1dDpudWxsLGxvYWRpbmc6ITEsaXNPd25lcjooMCxuLmFsaWFzKSgibW9kZWwuaXNfZ3JvdXBfb3duZXIiKSxzaG93QWN0aW9uczohMSxfc2V0RmlsdGVyOigwLG8uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfZmlsdGVyc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpbmRNZW1iZXJzKCEwKX0sZmluZE1lbWJlcnM6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzO3RoaXMubG9hZGluZ3x8KHQ9dGhpcy5tb2RlbCkmJighZSYmdC5tZW1iZXJzLmxlbmd0aD49dC51c2VyX2NvdW50P3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhMCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdC5maW5kTWVtYmVycyh0aGlzLm1lbWJlclBhcmFtcyxlKS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHQubWVtYmVycy5sZW5ndGg+PXQudXNlcl9jb3VudCksbi5zZXQoImxvYWRpbmciLCExKX0pKSl9LG1lbWJlclBhcmFtczpmdW5jdGlvbihlLHQsbil7cmV0dXJue29yZGVyOmUsZGVzYzp0LGZpbHRlcjpufX0saGFzTWVtYmVyczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMDxlLmxlbmd0aH0sY2FuTWFuYWdlR3JvdXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuY2FuTWFuYWdlR3JvdXAoZSl9LGZpbHRlclBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW4/Imdyb3Vwcy5tZW1iZXJzLmZpbHRlcl9wbGFjZWhvbGRlcl9hZG1pbiI6Imdyb3Vwcy5tZW1iZXJzLmZpbHRlcl9wbGFjZWhvbGRlciJ9LGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5maW5kTWVtYmVycygpfSx0b2dnbGVBY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0FjdGlvbnMiKX0sYWN0T25Hcm91cDpmdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlInJlbW92ZU1lbWJlciI6dGhpcy5zZW5kKCJyZW1vdmVNZW1iZXIiLGUpO2JyZWFrO2Nhc2UibWFrZU93bmVyIjp0aGlzLnNlbmQoIm1ha2VPd25lciIsZS51c2VybmFtZSk7YnJlYWs7Y2FzZSJyZW1vdmVPd25lciI6dGhpcy5zZW5kKCJyZW1vdmVPd25lciIsZSl9fSxyZW1vdmVNZW1iZXI6ZnVuY3Rpb24oZSl7dGhpcy5tb2RlbC5yZW1vdmVNZW1iZXIoZSx0aGlzLm1lbWJlclBhcmFtcyl9LG1ha2VPd25lcjpmdW5jdGlvbihlKXt0aGlzLm1vZGVsLmFkZE93bmVycyhlKX0scmVtb3ZlT3duZXI6ZnVuY3Rpb24oZSl7dGhpcy5tb2RlbC5yZW1vdmVPd25lcihlKX0sYWRkTWVtYmVyczpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnVzZXJuYW1lczt0JiYwPHQubGVuZ3RoJiZ0aGlzLm1vZGVsLmFkZE1lbWJlcnModCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgidXNlcm5hbWVzIixbXSl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX19fSwiX3NldEZpbHRlciIsW2FdLChtPShtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX3NldEZpbHRlciIpKT9tLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbX19KSxwKSxyKHAsIl9maWx0ZXJzQ2hhbmdlZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiX2ZpbHRlcnNDaGFuZ2VkIikscCkscihwLCJtZW1iZXJQYXJhbXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm1lbWJlclBhcmFtcyIpLHApLHIocCwiaGFzTWVtYmVycyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaGFzTWVtYmVycyIpLHApLHIocCwiY2FuTWFuYWdlR3JvdXAiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhbk1hbmFnZUdyb3VwIikscCkscihwLCJmaWx0ZXJQbGFjZWhvbGRlciIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmaWx0ZXJQbGFjZWhvbGRlciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZS1sb2dzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiZmlsdGVycy5hY3Rpb24iLCJmaWx0ZXJzLmFjdGluZ191c2VyIiwiZmlsdGVycy50YXJnZXRfdXNlciIsImZpbHRlcnMuc3ViamVjdCIpLHI9KDAsaS5vYnNlcnZlcykoImZpbHRlcnMuYWN0aW9uIiwiZmlsdGVycy5hY3RpbmdfdXNlciIsImZpbHRlcnMudGFyZ2V0X3VzZXIiLCJmaWx0ZXJzLnN1YmplY3QiKSxhPSgwLGkub2JzZXJ2ZXMpKCJtb2RlbC5hbGxfbG9hZGVkIikscyhsPXtncm91cDooMCx0LmluamVjdCkoKSxsb2FkaW5nOiExLG9mZnNldDowLGFwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImZpbHRlcnMiLG4uZGVmYXVsdC5jcmVhdGUoKSl9LGZpbHRlclBhcmFtczpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm57YWN0aW9uOmUsYWN0aW5nX3VzZXI6dCx0YXJnZXRfdXNlcjpuLHN1YmplY3Q6aX19LF9yZWZyZXNoTW9kZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZ2V0KCJncm91cC5tb2RlbCIpLmZpbmRMb2dzKDAsdGhpcy5maWx0ZXJQYXJhbXMpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoIm9mZnNldCIsMCksdC5tb2RlbC5zZXRQcm9wZXJ0aWVzKHtsb2dzOmUubG9ncyxhbGxfbG9hZGVkOmUuYWxsX2xvYWRlZH0pfSl9LF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHRoaXMuZ2V0KCJtb2RlbC5hbGxfbG9hZGVkIikpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7b2Zmc2V0OjAsZmlsdGVyczpuLmRlZmF1bHQuY3JlYXRlKCl9KX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZ2V0KCJtb2RlbC5hbGxfbG9hZGVkIil8fCh0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMuZ2V0KCJncm91cC5tb2RlbCIpLmZpbmRMb2dzKHRoaXMub2Zmc2V0KzEsdGhpcy5maWx0ZXJQYXJhbXMpLnRoZW4oZnVuY3Rpb24oZSl7ZS5sb2dzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0KCJtb2RlbC5sb2dzIikuYWRkT2JqZWN0KGUpfSksdC5pbmNyZW1lbnRQcm9wZXJ0eSgib2Zmc2V0IiksdC5zZXQoIm1vZGVsLmFsbF9sb2FkZWQiLGUuYWxsX2xvYWRlZCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoImxvYWRpbmciLCExKX0pKX0sY2xlYXJGaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImZpbHRlcnMuIitlLCIiKX19fSwiZmlsdGVyUGFyYW1zIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJmaWx0ZXJQYXJhbXMiKSxsKSxzKGwsIl9yZWZyZXNoTW9kZWwiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9yZWZyZXNoTW9kZWwiKSxsKSxzKGwsIl9zaG93Rm9vdGVyIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2hvd0Zvb3RlciIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZS1wcm9maWxlIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2F2aW5nOm51bGx9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2dyb3VwLW1hbmFnZSIsWyJleHBvcnRzIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5hdXRvbWF0aWMiKSxvPXtyb3V0ZXI6KDAsdC5pbmplY3QpKCksdGFiczpmdW5jdGlvbihlKXt2YXIgdD1be3JvdXRlOiJncm91cC5tYW5hZ2UucHJvZmlsZSIsdGl0bGU6Imdyb3Vwcy5tYW5hZ2UucHJvZmlsZS50aXRsZSJ9LHtyb3V0ZToiZ3JvdXAubWFuYWdlLmludGVyYWN0aW9uIix0aXRsZToiZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi50aXRsZSJ9LHtyb3V0ZToiZ3JvdXAubWFuYWdlLmxvZ3MiLHRpdGxlOiJncm91cHMubWFuYWdlLmxvZ3MudGl0bGUifV07cmV0dXJuIGV8fHQuc3BsaWNlKDEsMCx7cm91dGU6Imdyb3VwLm1hbmFnZS5tZW1iZXJzaGlwIix0aXRsZToiZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLnRpdGxlIn0pLHR9fSxyPW8sYT0idGFicyIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRhYnMiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAtbWVzc2FnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7cm91dGVyOigwLHQuaW5qZWN0KSgpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cC1yZXF1ZXN0cyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGE9KDAsbi5vYnNlcnZlcykoImZpbHRlcklucHV0IiksbD0oMCxuLm9ic2VydmVzKSgib3JkZXIiLCJkZXNjIiwiZmlsdGVyIiksdT0oMCxuLmRlZmF1bHQpKCJvcmRlciIsImRlc2MiLCJmaWx0ZXIiKSxjPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnJlcXVlc3RlcnMuW10iKSxyKGQ9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsib3JkZXIiLCJkZXNjIiwiZmlsdGVyIl0sb3JkZXI6IiIsZGVzYzpudWxsLGZpbHRlcjpudWxsLGZpbHRlcklucHV0Om51bGwsbG9hZGluZzohMSxfc2V0RmlsdGVyOigwLG8uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfZmlsdGVyc0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLmZpbmRSZXF1ZXN0ZXJzKCEwKX0sZmluZFJlcXVlc3RlcnM6ZnVuY3Rpb24oZSl7dmFyIHQsbj10aGlzO3RoaXMubG9hZGluZ3x8KHQ9dGhpcy5tb2RlbCkmJighZSYmdC5tZW1iZXJzLmxlbmd0aD49dC51c2VyX2NvdW50P3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhMCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdC5maW5kUmVxdWVzdGVycyh0aGlzLm1lbWJlclBhcmFtcyxlKS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLHQucmVxdWVzdGVycy5sZW5ndGg+PXQudXNlcl9jb3VudCksbi5zZXQoImxvYWRpbmciLCExKX0pKSl9LG1lbWJlclBhcmFtczpmdW5jdGlvbihlLHQsbil7cmV0dXJue29yZGVyOmUsZGVzYzp0LGZpbHRlcjpufX0saGFzUmVxdWVzdGVyczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMDxlLmxlbmd0aH0sZmlsdGVyUGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbj8iZ3JvdXBzLm1lbWJlcnMuZmlsdGVyX3BsYWNlaG9sZGVyX2FkbWluIjoiZ3JvdXBzLm1lbWJlcnMuZmlsdGVyX3BsYWNlaG9sZGVyIn0saGFuZGxlUmVxdWVzdDpmdW5jdGlvbihlKXsoMCxpLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5nZXQoIm1vZGVsLmlkIikrIi9oYW5kbGVfbWVtYmVyc2hpcF9yZXF1ZXN0Lmpzb24iLHtkYXRhOmUsdHlwZToiUFVUIn0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3RoaXMuZmluZFJlcXVlc3RlcnMoKX0sYWNjZXB0UmVxdWVzdDpmdW5jdGlvbihlKXt0aGlzLmhhbmRsZVJlcXVlc3Qoe3VzZXJfaWQ6ZS5nZXQoImlkIiksYWNjZXB0OiEwfSksZS5zZXRQcm9wZXJ0aWVzKHtyZXF1ZXN0X2FjY2VwdGVkOiEwLHJlcXVlc3RfZGVuaWVkOiExfSl9LHVuZG9BY2NlcHRSZXF1ZXN0OmZ1bmN0aW9uKGUpeygwLGkuYWpheCkoIi9ncm91cHMvIit0aGlzLmdldCgibW9kZWwuaWQiKSsiL21lbWJlcnMuanNvbiIse3R5cGU6IkRFTEVURSIsZGF0YTp7dXNlcl9pZDplLmdldCgiaWQiKX19KS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInJlcXVlc3RfdW5kb25lIiwhMCl9KX0sZGVueVJlcXVlc3Q6ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVSZXF1ZXN0KHt1c2VyX2lkOmUuZ2V0KCJpZCIpfSksZS5zZXRQcm9wZXJ0aWVzKHtyZXF1ZXN0X2FjY2VwdGVkOiExLHJlcXVlc3RfZGVuaWVkOiEwfSl9fX0sIl9zZXRGaWx0ZXIiLFthXSwocD0ocD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9zZXRGaWx0ZXIiKSk/cC52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHB9fSksZCkscihkLCJfZmlsdGVyc0NoYW5nZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9maWx0ZXJzQ2hhbmdlZCIpLGQpLHIoZCwibWVtYmVyUGFyYW1zIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJtZW1iZXJQYXJhbXMiKSxkKSxyKGQsImhhc1JlcXVlc3RlcnMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImhhc1JlcXVlc3RlcnMiKSxkKSxyKGQsImZpbHRlclBsYWNlaG9sZGVyIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImZpbHRlclBsYWNlaG9sZGVyIiksZCksZCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYyxkLHAsbSxmO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaD10LmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMubmFtZTt0aGlzLnNldCgicm91dGUiLHRoaXMucm91dGV8fCJncm91cC4iK2UpLHRoaXMuc2V0KCJtZXNzYWdlIixJMThuLnQoImdyb3Vwcy4iKyh0aGlzLmkxOG5LZXl8fGUpKSl9fSk7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5kZWZhdWx0KSgic2hvd01lc3NhZ2VzIiwibW9kZWwudXNlcl9jb3VudCIsIm1vZGVsLnJlcXVlc3RfY291bnQiLCJjYW5NYW5hZ2VHcm91cCIsIm1vZGVsLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiKSxsPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmlzX2dyb3VwX3VzZXIiKSx1PSgwLGkuZGVmYXVsdCkoIm1vZGVsLmlzX2dyb3VwX293bmVyIiwibW9kZWwuYXV0b21hdGljIiksYz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5kaXNwbGF5TmFtZSIsIm1vZGVsLmZ1bGxfbmFtZSIpLGQ9KDAsaS5kZWZhdWx0KSgibW9kZWwubmFtZSIsIm1vZGVsLmZsYWlyX3VybCIsIm1vZGVsLmZsYWlyX2JnX2NvbG9yIiwibW9kZWwuZmxhaXJfY29sb3IiKSxwPSgwLGkuZGVmYXVsdCkoIm1vZGVsLm1lc3NhZ2VhYmxlIiksbT0oMCxpLmRlZmF1bHQpKCJtb2RlbCIsIm1vZGVsLmF1dG9tYXRpYyIpLHIoZj17YXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksY291bnRzOm51bGwsc2hvd2luZzoibWVtYmVycyIsZGVzdHJveWluZzpudWxsLHJvdXRlcjooMCxzLmluamVjdCkoKSxjdXJyZW50UGF0aDooMCxvLnJlYWRPbmx5KSgicm91dGVyLl9yb3V0ZXIuY3VycmVudFBhdGgiKSx0YWJzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG89aC5jcmVhdGUoe25hbWU6Im1lbWJlcnMiLHJvdXRlOiJncm91cC5pbmRleCIsaWNvbjoidXNlcnMiLGkxOG5LZXk6Im1lbWJlcnMudGl0bGUifSk7by5zZXQoImNvdW50Iix0KTt2YXIgcj1bbyxoLmNyZWF0ZSh7bmFtZToiYWN0aXZpdHkifSldO3JldHVybiBpJiZzJiZyLnB1c2goaC5jcmVhdGUoe25hbWU6InJlcXVlc3RzIixpMThuS2V5OiJyZXF1ZXN0cy50aXRsZSIsaWNvbjoidXNlci1wbHVzIixjb3VudDpufSkpLGUmJnIucHVzaChoLmNyZWF0ZSh7bmFtZToibWVzc2FnZXMiLGkxOG5LZXk6Im1lc3NhZ2VzIn0pKSxpJiZyLnB1c2goaC5jcmVhdGUoe25hbWU6Im1hbmFnZSIsaTE4bktleToibWFuYWdlLnRpdGxlIixpY29uOiJ3cmVuY2gifSkpLHJ9LHNob3dNZXNzYWdlczpmdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmKGV8fHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW4pfSxjYW5FZGl0R3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdCYmZX0sZ3JvdXBOYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKHR8fGUpLmNhcGl0YWxpemUoKX0sYXZhdGFyRmxhaXJBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybntwcmltYXJ5X2dyb3VwX2ZsYWlyX3VybDp0LHByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3I6bixwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yOmkscHJpbWFyeV9ncm91cF9uYW1lOmV9fSxkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiZlfSxjYW5NYW5hZ2VHcm91cDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiYodGhpcy5jdXJyZW50VXNlci5jYW5NYW5hZ2VHcm91cChlKXx8dGhpcy5jdXJyZW50VXNlci5hZG1pbiYmdCl9LGFjdGlvbnM6e21lc3NhZ2VHcm91cDpmdW5jdGlvbigpe3RoaXMuc2VuZCgiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyIsdGhpcy5nZXQoIm1vZGVsLm5hbWUiKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5tb2RlbDt0aGlzLnNldCgiZGVzdHJveWluZyIsITApLGJvb3Rib3guY29uZmlybShJMThuLnQoImFkbWluLmdyb3Vwcy5kZWxldGVfY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/bi5kZXN0cm95KCkudGhlbihmdW5jdGlvbigpe3QudHJhbnNpdGlvblRvUm91dGUoImdyb3Vwcy5pbmRleCIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKSxib290Ym94LmFsZXJ0KEkxOG4udCgiYWRtaW4uZ3JvdXBzLmRlbGV0ZV9mYWlsZWQiKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJkZXN0cm95aW5nIiwhMSl9KTp0LnNldCgiZGVzdHJveWluZyIsITEpfSl9fX0sInRhYnMiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsInRhYnMiKSxmKSxyKGYsInNob3dNZXNzYWdlcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwic2hvd01lc3NhZ2VzIiksZikscihmLCJjYW5FZGl0R3JvdXAiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsImNhbkVkaXRHcm91cCIpLGYpLHIoZiwiZ3JvdXBOYW1lIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLCJncm91cE5hbWUiKSxmKSxyKGYsImF2YXRhckZsYWlyQXR0cmlidXRlcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwiYXZhdGFyRmxhaXJBdHRyaWJ1dGVzIiksZikscihmLCJkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLCJkaXNwbGF5R3JvdXBNZXNzYWdlQnV0dG9uIiksZikscihmLCJjYW5NYW5hZ2VHcm91cCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZiwiY2FuTWFuYWdlR3JvdXAiKSxmKSxmKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cHMtaW5kZXgiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmV4dHJhcy50eXBlX2ZpbHRlcnMiKSxyPSgwLGkub2JzZXJ2ZXMpKCJmaWx0ZXJJbnB1dCIpLGE9KDAsaS5vYnNlcnZlcykoIm1vZGVsLmNhbkxvYWRNb3JlIikscyhsPXthcHBsaWNhdGlvbjooMCx0LmluamVjdCkoKSxxdWVyeVBhcmFtczpbIm9yZGVyIiwiYXNjIiwiZmlsdGVyIiwidHlwZSJdLG9yZGVyOm51bGwsYXNjOm51bGwsZmlsdGVyOiIiLHR5cGU6bnVsbCx0eXBlczpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaCh7aWQ6ZSxuYW1lOkkxOG4udCgiZ3JvdXBzLmluZGV4LiIrZSsiX2dyb3VwcyIpfSl9KSx0fSxfc2V0RmlsdGVyOigwLG4uZGVmYXVsdCkoZnVuY3Rpb24oKXt0aGlzLnNldCgiZmlsdGVyIix0aGlzLmZpbHRlcklucHV0KX0sNTAwKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxhY3Rpb25zOntsb2FkTW9yZTpmdW5jdGlvbigpe3RoaXMubW9kZWwubG9hZE1vcmUoKX0sbmV3OmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgiZ3JvdXBzLm5ldyIpfX19LCJ0eXBlcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHlwZXMiKSxsKSxzKGwsIl9zZXRGaWx0ZXIiLFtyXSwodT0odT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9zZXRGaWx0ZXIiKSk/dS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSksbCkscyhsLCJfc2hvd0Zvb3RlciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX3Nob3dGb290ZXIiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9ncm91cHMtbmV3IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzYXZpbmc6bnVsbCxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgic2F2aW5nIiwhMCk7dmFyIHQ9dGhpcy5tb2RlbDt0LmNyZWF0ZSgpLnRoZW4oZnVuY3Rpb24oKXtlLnRyYW5zaXRpb25Ub1JvdXRlKCJncm91cC5tZW1iZXJzIix0Lm5hbWUpfSkuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2aW5nIiwhMSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9oaXN0b3J5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdix5LF8sdyx4LGssUCxqLFQsRSxPLFMsQyxNLEQsSTtmdW5jdGlvbiBMKHQpe3JldHVybigwLGQuY29tcHV0ZWQpKHQsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldCh0KTtyZXR1cm4gZSYmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSkpLGV9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChtPSgwLHQub24pKCJpbml0IiksZj0oMCx0LmRlZmF1bHQpKCJwcmV2aW91c1ZlcnNpb24iLCJtb2RlbC5jdXJyZW50X3ZlcnNpb24iLCJtb2RlbC52ZXJzaW9uX2NvdW50IiksaD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5jcmVhdGVkX2F0IiksYj0oMCx0LmRlZmF1bHQpKCJtb2RlbC5jdXJyZW50X3ZlcnNpb24iKSxnPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iLCJtb2RlbC5wcmV2aW91c19yZXZpc2lvbiIpLHY9KDAsdC5kZWZhdWx0KSgibW9kZWwucHJldmlvdXNfaGlkZGVuIikseT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5wcmV2aW91c19oaWRkZW4iKSxfPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmxhc3RfcmV2aXNpb24iLCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwuY2FuX2VkaXQiLCJ0b3BpY0NvbnRyb2xsZXIiKSx3PSgwLHQuZGVmYXVsdCkoIm1vZGVsLndpa2kiKSx4PSgwLHQuZGVmYXVsdCkoKSxrPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnByZXZpb3VzX2hpZGRlbiIsIm1vZGVsLmN1cnJlbnRfaGlkZGVuIiwiZGlzcGxheWluZ0lubGluZSIpLFA9KDAsdC5kZWZhdWx0KSgiZGlzcGxheWluZ0lubGluZSIpLGo9KDAsdC5kZWZhdWx0KSgiZGlzcGxheWluZ1NpZGVCeVNpZGUiKSxUPSgwLHQuZGVmYXVsdCkoImRpc3BsYXlpbmdTaWRlQnlTaWRlTWFya2Rvd24iKSxFPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5X2lkX2NoYW5nZXMiKSxPPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmNhdGVnb3J5X2lkX2NoYW5nZXMiKSxTPSgwLHQuZGVmYXVsdCkoIm1vZGVsLndpa2lfY2hhbmdlcyIpLEM9KDAsdC5kZWZhdWx0KSgibW9kZWwucG9zdF90eXBlX2NoYW5nZXMiKSxNPSgwLHQuZGVmYXVsdCkoInZpZXdNb2RlIiwibW9kZWwudGl0bGVfY2hhbmdlcyIpLEQ9KDAsdC5vYnNlcnZlcykoInZpZXdNb2RlIiwibW9kZWwuYm9keV9jaGFuZ2VzIikscChJPXtsb2FkaW5nOiEwLHZpZXdNb2RlOiJzaWRlX2J5X3NpZGUiLF9jaGFuZ2VWaWV3TW9kZU9uTW9iaWxlOmZ1bmN0aW9uKCl7dGhpcy5zaXRlJiZ0aGlzLnNpdGUubW9iaWxlVmlldyYmdGhpcy5zZXQoInZpZXdNb2RlIiwiaW5saW5lIil9LHByZXZpb3VzRmVhdHVyZWRMaW5rOigwLG4uYWxpYXMpKCJtb2RlbC5mZWF0dXJlZF9saW5rX2NoYW5nZXMucHJldmlvdXMiKSxjdXJyZW50RmVhdHVyZWRMaW5rOigwLG4uYWxpYXMpKCJtb2RlbC5mZWF0dXJlZF9saW5rX2NoYW5nZXMuY3VycmVudCIpLHByZXZpb3VzVGFnQ2hhbmdlczpMKCJtb2RlbC50YWdzX2NoYW5nZXMucHJldmlvdXMiKSxjdXJyZW50VGFnQ2hhbmdlczpMKCJtb2RlbC50YWdzX2NoYW5nZXMuY3VycmVudCIpLHJldmlzaW9uc1RleHQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBJMThuLnQoInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmNvbXBhcmluZ19wcmV2aW91c190b19jdXJyZW50X291dF9vZl90b3RhbCIse3ByZXZpb3VzOmUsaWNvbjooMCxsLmljb25IVE1MKSgiYXJyb3dzLWFsdC1oIiksY3VycmVudDp0LHRvdGFsOm59KX0scmVmcmVzaDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSx1LmRlZmF1bHQubG9hZFJldmlzaW9uKGUsdCkudGhlbihmdW5jdGlvbihlKXtuLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITEsbW9kZWw6ZX0pfSl9LGhpZGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3UuZGVmYXVsdC5oaWRlUmV2aXNpb24oZSx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVmcmVzaChlLHQpfSl9LHNob3c6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3UuZGVmYXVsdC5zaG93UmV2aXNpb24oZSx0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4ucmVmcmVzaChlLHQpfSl9LHJldmVydDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7dC5yZXZlcnRUb1JldmlzaW9uKG4pLnRoZW4oZnVuY3Rpb24oZSl7aS5yZWZyZXNoKHQuZ2V0KCJpZCIpLG4pLGUudG9waWMmJih0LnNldCgidG9waWMuc2x1ZyIsZS50b3BpYy5zbHVnKSx0LnNldCgidG9waWMudGl0bGUiLGUudG9waWMudGl0bGUpLHQuc2V0KCJ0b3BpYy5mYW5jeV90aXRsZSIsZS50b3BpYy5mYW5jeV90aXRsZSkpLGUuY2F0ZWdvcnlfaWQmJnQuc2V0KCJ0b3BpYy5jYXRlZ29yeSIsYy5kZWZhdWx0LmZpbmRCeUlkKGUuY2F0ZWdvcnlfaWQpKSxpLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnMmJmUuanFYSFIucmVzcG9uc2VKU09OLmVycm9yc1swXSYmYm9vdGJveC5hbGVydChlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnNbMF0pfSl9LGNyZWF0ZWRBdERhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG1vbWVudChlKS5mb3JtYXQoIkxMTEwiKX0scHJldmlvdXNWZXJzaW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlLTF9LGRpc3BsYXlHb1RvUHJldmlvdXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmdDxlfSxkaXNwbGF5UmV2aXNpb25zOigwLG4uZ3QpKCJtb2RlbC52ZXJzaW9uX2NvdW50IiwyKSxkaXNwbGF5R29Ub0ZpcnN0OigwLHIucHJvcGVydHlHcmVhdGVyVGhhbikoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iLCJtb2RlbC5maXJzdF9yZXZpc2lvbiIpLGRpc3BsYXlHb1RvTmV4dDooMCxyLnByb3BlcnR5TGVzc1RoYW4pKCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwubmV4dF9yZXZpc2lvbiIpLGRpc3BsYXlHb1RvTGFzdDooMCxyLnByb3BlcnR5TGVzc1RoYW4pKCJtb2RlbC5jdXJyZW50X3JldmlzaW9uIiwibW9kZWwubmV4dF9yZXZpc2lvbiIpLGhpZGVHb1RvRmlyc3Q6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub0ZpcnN0IiksaGlkZUdvVG9QcmV2aW91czooMCxuLm5vdCkoImRpc3BsYXlHb1RvUHJldmlvdXMiKSxoaWRlR29Ub05leHQ6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub05leHQiKSxoaWRlR29Ub0xhc3Q6KDAsbi5ub3QpKCJkaXNwbGF5R29Ub0xhc3QiKSxsb2FkRmlyc3REaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvRmlyc3QiKSxsb2FkUHJldmlvdXNEaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvUHJldmlvdXMiKSxsb2FkTmV4dERpc2FibGVkOigwLG4ub3IpKCJsb2FkaW5nIiwiaGlkZUdvVG9OZXh0IiksbG9hZExhc3REaXNhYmxlZDooMCxuLm9yKSgibG9hZGluZyIsImhpZGVHb1RvTGFzdCIpLGRpc3BsYXlTaG93OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKX0sZGlzcGxheUhpZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIWUmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxkaXNwbGF5RWRpdDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4hKCFufHwhaXx8ZSE9PXQpfSxlZGl0QnV0dG9uTGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLiIrKGU/ImVkaXRfd2lraSI6ImVkaXRfcG9zdCIpfSxkaXNwbGF5UmV2ZXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpfSxpc0VpdGhlclJldmlzaW9uSGlkZGVuOigwLG4ub3IpKCJtb2RlbC5wcmV2aW91c19oaWRkZW4iLCJtb2RlbC5jdXJyZW50X2hpZGRlbiIpLGhpZGRlbkNsYXNzZXM6ZnVuY3Rpb24oZSx0LG4pe2lmKG4pcmV0dXJuIHRoaXMuaXNFaXRoZXJSZXZpc2lvbkhpZGRlbj8iaGlkZGVuLXJldmlzaW9uLWVpdGhlciI6bnVsbDt2YXIgaT1bXTtyZXR1cm4gZSYmaS5wdXNoKCJoaWRkZW4tcmV2aXNpb24tcHJldmlvdXMiKSx0JiZpLnB1c2goImhpZGRlbi1yZXZpc2lvbi1jdXJyZW50IiksaS5qb2luKCIgIil9LGRpc3BsYXlpbmdJbmxpbmU6KDAsbi5lcXVhbCkoInZpZXdNb2RlIiwiaW5saW5lIiksZGlzcGxheWluZ1NpZGVCeVNpZGU6KDAsbi5lcXVhbCkoInZpZXdNb2RlIiwic2lkZV9ieV9zaWRlIiksZGlzcGxheWluZ1NpZGVCeVNpZGVNYXJrZG93bjooMCxuLmVxdWFsKSgidmlld01vZGUiLCJzaWRlX2J5X3NpZGVfbWFya2Rvd24iKSxpbmxpbmVDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZT8iYnRuLWRhbmdlciI6ImJ0bi1mbGF0In0sc2lkZUJ5U2lkZUNsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJidG4tZGFuZ2VyIjoiYnRuLWZsYXQifSxzaWRlQnlTaWRlTWFya2Rvd25DbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZT8iYnRuLWRhbmdlciI6ImJ0bi1mbGF0In0scHJldmlvdXNDYXRlZ29yeTpmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1jLmRlZmF1bHQuZmluZEJ5SWQoZS5wcmV2aW91cyk7cmV0dXJuKDAsby5jYXRlZ29yeUJhZGdlSFRNTCkodCx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9fSxjdXJyZW50Q2F0ZWdvcnk6ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9Yy5kZWZhdWx0LmZpbmRCeUlkKGUuY3VycmVudCk7cmV0dXJuKDAsby5jYXRlZ29yeUJhZGdlSFRNTCkodCx7YWxsb3dVbmNhdGVnb3JpemVkOiEwfSl9fSx3aWtpRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiFlLmN1cnJlbnR9LHBvc3RUeXBlRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuY3VycmVudCE9PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpfSx0aXRsZURpZmY6ZnVuY3Rpb24oZSl7cmV0dXJuInNpZGVfYnlfc2lkZV9tYXJrZG93biI9PT1lJiYoZT0ic2lkZV9ieV9zaWRlIiksdGhpcy5nZXQoIm1vZGVsLnRpdGxlX2NoYW5nZXMuIitlKX0sYm9keURpZmZDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudmlld01vZGUsbj10aGlzLmdldCgibW9kZWwuYm9keV9jaGFuZ2VzLiIrZSk7aWYoInNpZGVfYnlfc2lkZV9tYXJrZG93biIhPT1lKXtyZXR1cm4oMCxhLnNhbml0aXplQXN5bmMpKG4se2ZlYXR1cmVzOntlZGl0SGlzdG9yeTohMH0sd2hpdGVMaXN0ZWQ6e2VkaXRIaXN0b3J5OntjdXN0b206ZnVuY3Rpb24oZSx0KXtyZXR1cm4iY2xhc3MiPT09dH19fX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJib2R5RGlmZiIsZSl9KX10aGlzLnNldCgiYm9keURpZmYiLG4pfSxhY3Rpb25zOntsb2FkRmlyc3RWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmZpcnN0X3JldmlzaW9uIikpfSxsb2FkUHJldmlvdXNWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLnByZXZpb3VzX3JldmlzaW9uIikpfSxsb2FkTmV4dFZlcnNpb246ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2godGhpcy5nZXQoIm1vZGVsLnBvc3RfaWQiKSx0aGlzLmdldCgibW9kZWwubmV4dF9yZXZpc2lvbiIpKX0sbG9hZExhc3RWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmxhc3RfcmV2aXNpb24iKSl9LGhpZGVWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5oaWRlKHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iKSl9LHNob3dWZXJzaW9uOmZ1bmN0aW9uKCl7dGhpcy5zaG93KHRoaXMuZ2V0KCJtb2RlbC5wb3N0X2lkIiksdGhpcy5nZXQoIm1vZGVsLmN1cnJlbnRfcmV2aXNpb24iKSl9LGVkaXRQb3N0OmZ1bmN0aW9uKCl7dGhpcy50b3BpY0NvbnRyb2xsZXIuc2VuZCgiZWRpdFBvc3QiLHRoaXMucG9zdCksdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LHJldmVydFRvVmVyc2lvbjpmdW5jdGlvbigpe3RoaXMucmV2ZXJ0KHRoaXMucG9zdCx0aGlzLmdldCgibW9kZWwuY3VycmVudF9yZXZpc2lvbiIpKX0sZGlzcGxheUlubGluZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJ2aWV3TW9kZSIsImlubGluZSIpfSxkaXNwbGF5U2lkZUJ5U2lkZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJ2aWV3TW9kZSIsInNpZGVfYnlfc2lkZSIpfSxkaXNwbGF5U2lkZUJ5U2lkZU1hcmtkb3duOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInZpZXdNb2RlIiwic2lkZV9ieV9zaWRlX21hcmtkb3duIil9fX0sIl9jaGFuZ2VWaWV3TW9kZU9uTW9iaWxlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJfY2hhbmdlVmlld01vZGVPbk1vYmlsZSIpLEkpLHAoSSwicmV2aXNpb25zVGV4dCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicmV2aXNpb25zVGV4dCIpLEkpLHAoSSwiY3JlYXRlZEF0RGF0ZSIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiY3JlYXRlZEF0RGF0ZSIpLEkpLHAoSSwicHJldmlvdXNWZXJzaW9uIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJwcmV2aW91c1ZlcnNpb24iKSxJKSxwKEksImRpc3BsYXlHb1RvUHJldmlvdXMiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImRpc3BsYXlHb1RvUHJldmlvdXMiKSxJKSxwKEksImRpc3BsYXlTaG93Iixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJkaXNwbGF5U2hvdyIpLEkpLHAoSSwiZGlzcGxheUhpZGUiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksImRpc3BsYXlIaWRlIiksSSkscChJLCJkaXNwbGF5RWRpdCIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiZGlzcGxheUVkaXQiKSxJKSxwKEksImVkaXRCdXR0b25MYWJlbCIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiZWRpdEJ1dHRvbkxhYmVsIiksSSkscChJLCJkaXNwbGF5UmV2ZXJ0IixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJkaXNwbGF5UmV2ZXJ0IiksSSkscChJLCJoaWRkZW5DbGFzc2VzIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJoaWRkZW5DbGFzc2VzIiksSSkscChJLCJpbmxpbmVDbGFzcyIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiaW5saW5lQ2xhc3MiKSxJKSxwKEksInNpZGVCeVNpZGVDbGFzcyIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2lkZUJ5U2lkZUNsYXNzIiksSSkscChJLCJzaWRlQnlTaWRlTWFya2Rvd25DbGFzcyIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwic2lkZUJ5U2lkZU1hcmtkb3duQ2xhc3MiKSxJKSxwKEksInByZXZpb3VzQ2F0ZWdvcnkiLFtFXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksInByZXZpb3VzQ2F0ZWdvcnkiKSxJKSxwKEksImN1cnJlbnRDYXRlZ29yeSIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiY3VycmVudENhdGVnb3J5IiksSSkscChJLCJ3aWtpRGlzYWJsZWQiLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEksIndpa2lEaXNhYmxlZCIpLEkpLHAoSSwicG9zdFR5cGVEaXNhYmxlZCIsW0NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwicG9zdFR5cGVEaXNhYmxlZCIpLEkpLHAoSSwidGl0bGVEaWZmIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihJLCJ0aXRsZURpZmYiKSxJKSxwKEksImJvZHlEaWZmQ2hhbmdlZCIsW0RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSSwiYm9keURpZmZDaGFuZ2VkIiksSSksSSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvaWdub3JlLWR1cmF0aW9uLXdpdGgtdXNlcm5hbWUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bG9hZGluZzohMSxpZ25vcmVkVW50aWw6bnVsbCxpZ25vcmVkVXNlcm5hbWU6bnVsbCxhY3Rpb25zOntpZ25vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaWdub3JlZFVudGlsJiZ0aGlzLmlnbm9yZWRVc2VybmFtZT8odGhpcy5zZXQoImxvYWRpbmciLCEwKSxzLmRlZmF1bHQuZmluZEJ5VXNlcm5hbWUodGhpcy5pZ25vcmVkVXNlcm5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7ZS51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgiaWdub3JlIix0Lmlnbm9yZWRVbnRpbCkudGhlbihmdW5jdGlvbigpe3Qub25Vc2VySWdub3JlZCh0Lmlnbm9yZWRVc2VybmFtZSksdC5zZW5kKCJjbG9zZU1vZGFsIil9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0pKTp0aGlzLmZsYXNoKEkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpbWVfZnJhbWVfcmVxdWlyZWQiKSwiYWxlcnQtZXJyb3IiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pZ25vcmUtZHVyYXRpb24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2xvYWRpbmc6ITEsaWdub3JlZFVudGlsOm51bGwsYWN0aW9uczp7aWdub3JlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmlnbm9yZWRVbnRpbD8odGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLnVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsKCJpZ25vcmUiLHRoaXMuaWdub3JlZFVudGlsKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoIm1vZGVsLmlnbm9yZWQiLCEwKSxlLnNldCgibW9kZWwubXV0ZWQiLCExKSxlLm9uU3VjY2VzcyYmZS5vblN1Y2Nlc3MoKSxlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoImxvYWRpbmciLCExKX0pKTp0aGlzLmZsYXNoKEkxOG4udCgidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpbWVfZnJhbWVfcmVxdWlyZWQiKSwiYWxlcnQtZXJyb3IiKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pbnNlcnQtaHlwZXJsaW5rIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9zZWFyY2giXSxmdW5jdGlvbihlLHMsbix0LGksbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse19kZWJvdW5jZWQ6bnVsbCxfYWN0aXZlU2VhcmNoOm51bGwsb25TaG93OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe2xpbmtVcmw6IiIsbGlua1RleHQ6IiIsc2VhcmNoUmVzdWx0czpbXSxzZWFyY2hMb2FkaW5nOiExLHNlbGVjdGVkUm93Oi0xfSksKDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5zZXJ0LWxpbmsiKTtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGUpe3JldHVybiB0LmtleURvd24oZSl9KSxlLmNsb3Nlc3QoIi5tb2RhbC1pbm5lci1jb250YWluZXIiKS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGUpe3JldHVybiB0Lm1vdXNlRG93bihlKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0LmxpbmstdXJsIikuZm9jdXMoKX0pfSxrZXlEb3duOmZ1bmN0aW9uKGUpe3N3aXRjaChlLndoaWNoKXtjYXNlIDQwOnRoaXMuaGlnaGxpZ2h0Um93KGUsImRvd24iKTticmVhaztjYXNlIDM4OnRoaXMuaGlnaGxpZ2h0Um93KGUsInVwIik7YnJlYWs7Y2FzZSAxMzp2YXIgdDstMTx0aGlzLnNlbGVjdGVkUm93JiYodD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW50ZXJuYWwtbGluay1yZXN1bHRzIC5zZWFyY2gtbGluayIpW3RoaXMuc2VsZWN0ZWRSb3ddLHRoaXMuc2VsZWN0TGluayh0KSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7YnJlYWs7Y2FzZSAyNzp0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoJiYodGhpcy5zZXQoInNlYXJjaFJlc3VsdHMiLFtdKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9fSxtb3VzZURvd246ZnVuY3Rpb24oZSl7ZS50YXJnZXQuY2xvc2VzdCgiLmlucHV0cyIpfHx0aGlzLnNldCgic2VhcmNoUmVzdWx0cyIsW10pfSxoaWdobGlnaHRSb3c6ZnVuY3Rpb24oZSx0KXt2YXIgbj0iZG93biI9PT10P3RoaXMuc2VsZWN0ZWRSb3crMTp0aGlzLnNlbGVjdGVkUm93LTE7LTE8biYmbjx0aGlzLnNlYXJjaFJlc3VsdHMubGVuZ3RoPyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuaW50ZXJuYWwtbGluay1yZXN1bHRzIC5zZWFyY2gtbGluayIpW25dLmZvY3VzKCksdGhpcy5zZXQoInNlbGVjdGVkUm93IixuKSk6KHRoaXMuc2V0KCJzZWxlY3RlZFJvdyIsLTEpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0LmxpbmstdXJsIikuZm9jdXMoKSksZS5wcmV2ZW50RGVmYXVsdCgpfSxzZWxlY3RMaW5rOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7bGlua1VybDplLmhyZWYsc2VhcmNoUmVzdWx0czpbXSxzZWxlY3RlZFJvdzotMX0pLCF0aGlzLmxpbmtUZXh0JiZlLmRhdGFzZXQudGl0bGUmJnRoaXMuc2V0KCJsaW5rVGV4dCIsZS5kYXRhc2V0LnRpdGxlKSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dC5saW5rLXRleHQiKS5mb2N1cygpfSx0cmlnZ2VyU2VhcmNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczszPHRoaXMubGlua1VybC5sZW5ndGgmJi0xPT09dGhpcy5saW5rVXJsLmluZGV4T2YoImh0dHAiKT8odGhpcy5zZXQoInNlYXJjaExvYWRpbmciLCEwKSx0aGlzLl9hY3RpdmVTZWFyY2g9KDAsby5zZWFyY2hGb3JUZXJtKSh0aGlzLmxpbmtVcmwse3R5cGVGaWx0ZXI6InRvcGljIn0pLHRoaXMuX2FjdGl2ZVNlYXJjaC50aGVuKGZ1bmN0aW9uKGUpe2UmJmUudG9waWNzJiYwPGUudG9waWNzLmxlbmd0aD90LnNldCgic2VhcmNoUmVzdWx0cyIsZS50b3BpY3MpOnQuc2V0KCJzZWFyY2hSZXN1bHRzIixbXSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoInNlYXJjaExvYWRpbmciLCExKSx0Ll9hY3RpdmVTZWFyY2g9bnVsbH0pKTp0aGlzLmFib3J0U2VhcmNoKCl9LGFib3J0U2VhcmNoOmZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlU2VhcmNoJiZ0aGlzLl9hY3RpdmVTZWFyY2guYWJvcnQoKSx0aGlzLnNldFByb3BlcnRpZXMoe3NlYXJjaFJlc3VsdHM6W10sc2VhcmNoTG9hZGluZzohMX0pfSxvbkNsb3NlOmZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmluc2VydC1saW5rIik7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleURvd24pLGUuY2xvc2VzdCgiLm1vZGFsLWlubmVyLWNvbnRhaW5lciIpLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5tb3VzZURvd24pLCgwLG4uY2FuY2VsKSh0aGlzLl9kZWJvdW5jZWQpfSxhY3Rpb25zOntvazpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5saW5rVXJsLG49LTE9PT10LmluZGV4T2YoIjovLyIpPyJodHRwOi8vIit0OnQsaT10aGlzLnRvb2xiYXJFdmVudC5zZWxlY3RlZDsoMCxzLmlzRW1wdHkpKG4pfHwoKGU9dGhpcy5saW5rVGV4dHx8IiIpLmxlbmd0aD90aGlzLnRvb2xiYXJFdmVudC5hZGRUZXh0KCJbIitlKyJdKCIrbisiKSIpOmkudmFsdWU/dGhpcy50b29sYmFyRXZlbnQuYWRkVGV4dCgiWyIraS52YWx1ZSsiXSgiK24rIikiKToodGhpcy50b29sYmFyRXZlbnQuYWRkVGV4dCgiWyIrdCsiXSgiK24rIikiKSx0aGlzLnRvb2xiYXJFdmVudC5zZWxlY3RUZXh0KGkuc3RhcnQrMSx0Lmxlbmd0aCkpLHRoaXMuc2VuZCgiY2xvc2VNb2RhbCIpKX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9LGxpbmtDbGljazpmdW5jdGlvbihlKXtlLm1ldGFLZXl8fGUuY3RybEtleXx8KGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2VsZWN0TGluayhlLnRhcmdldC5jbG9zZXN0KCIuc2VhcmNoLWxpbmsiKSkpfSxzZWFyY2g6ZnVuY3Rpb24oKXt0aGlzLl9kZWJvdW5jZWQ9KDAsbi5kZWJvdW5jZSkodGhpcyx0aGlzLnRyaWdnZXJTZWFyY2gsNDAwKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9pbnZpdGVzLXNob3ciLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC11cmwiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvdXNlcm5hbWUtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvbmFtZS12YWxpZGF0aW9uIiwiZGlzY291cnNlL21peGlucy91c2VyLWZpZWxkcy12YWxpZGF0aW9uIiwiZGlzY291cnNlL21vZGVscy9sb2dpbi1tZXRob2QiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1LGMsZCxwKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGwuZGVmYXVsdCx1LmRlZmF1bHQsYy5kZWZhdWx0LGQuZGVmYXVsdCwoZj0oMCxzLmRlZmF1bHQpKCJlbWFpbCIpLGg9KDAscy5kZWZhdWx0KSgidXNlcm5hbWVWYWxpZGF0aW9uLmZhaWxlZCIsInBhc3N3b3JkVmFsaWRhdGlvbi5mYWlsZWQiLCJuYW1lVmFsaWRhdGlvbi5mYWlsZWQiLCJ1c2VyRmllbGRzVmFsaWRhdGlvbi5mYWlsZWQiKSxtKGI9e2ludml0ZWRCeTooMCx0LmFsaWFzKSgibW9kZWwuaW52aXRlZF9ieSIpLGVtYWlsOigwLHQuYWxpYXMpKCJtb2RlbC5lbWFpbCIpLGFjY291bnRVc2VybmFtZTooMCx0LmFsaWFzKSgibW9kZWwudXNlcm5hbWUiKSxwYXNzd29yZFJlcXVpcmVkOigwLHQubm90RW1wdHkpKCJhY2NvdW50UGFzc3dvcmQiKSxzdWNjZXNzTWVzc2FnZTpudWxsLGVycm9yTWVzc2FnZTpudWxsLHVzZXJGaWVsZHM6bnVsbCxpbnZpdGVJbWFnZVVybDooMCxvLmRlZmF1bHQpKCIvaW1hZ2VzL2VudmVsb3BlLnN2ZyIpLHdlbGNvbWVUaXRsZTpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImludml0ZXMud2VsY29tZV90byIse3NpdGVfbmFtZTp0aGlzLnNpdGVTZXR0aW5ncy50aXRsZX0pfSx5b3VyRW1haWxNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImludml0ZXMueW91cl9lbWFpbCIse2VtYWlsOmV9KX0sZXh0ZXJuYWxBdXRoc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMDwoMCxwLmZpbmRBbGwpKCkubGVuZ3RofSxzdWJtaXREaXNhYmxlZDpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4gZXx8dHx8bnx8aX0sZnVsbG5hbWVSZXF1aXJlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5mdWxsX25hbWVfcmVxdWlyZWR8fHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uYW1lc30sYWN0aW9uczp7c3VibWl0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMudXNlckZpZWxkcyxuPXt9OygwLGkuaXNFbXB0eSkoZSl8fGUuZm9yRWFjaChmdW5jdGlvbihlKXtuW2UuZ2V0KCJmaWVsZC5pZCIpXT1lLmdldCgidmFsdWUiKX0pLCgwLGEuYWpheCkoe3VybDoiL2ludml0ZXMvc2hvdy8iK3RoaXMuZ2V0KCJtb2RlbC50b2tlbiIpKyIuanNvbiIsdHlwZToiUFVUIixkYXRhOnt1c2VybmFtZTp0aGlzLmFjY291bnRVc2VybmFtZSxuYW1lOnRoaXMuYWNjb3VudE5hbWUscGFzc3dvcmQ6dGhpcy5hY2NvdW50UGFzc3dvcmQsdXNlcl9jdXN0b21fZmllbGRzOm4sdGltZXpvbmU6bW9tZW50LnR6Lmd1ZXNzKCl9fSkudGhlbihmdW5jdGlvbihlKXtlLnN1Y2Nlc3M/KHQuc2V0KCJzdWNjZXNzTWVzc2FnZSIsZS5tZXNzYWdlfHxJMThuLnQoImludml0ZXMuc3VjY2VzcyIpKSxlLnJlZGlyZWN0X3RvJiZyLmRlZmF1bHQucmVkaXJlY3RUbyhlLnJlZGlyZWN0X3RvKSk6KGUuZXJyb3JzJiZlLmVycm9ycy5wYXNzd29yZCYmMDxlLmVycm9ycy5wYXNzd29yZC5sZW5ndGgmJih0LnJlamVjdGVkUGFzc3dvcmRzLnB1c2hPYmplY3QodC5hY2NvdW50UGFzc3dvcmQpLHQucmVqZWN0ZWRQYXNzd29yZHNNZXNzYWdlcy5zZXQodC5hY2NvdW50UGFzc3dvcmQsZS5lcnJvcnMucGFzc3dvcmRbMF0pKSxlLm1lc3NhZ2UmJnQuc2V0KCJlcnJvck1lc3NhZ2UiLGUubWVzc2FnZSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSl9fX0sIndlbGNvbWVUaXRsZSIsW3MuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJ3ZWxjb21lVGl0bGUiKSxiKSxtKGIsInlvdXJFbWFpbE1lc3NhZ2UiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsInlvdXJFbWFpbE1lc3NhZ2UiKSxiKSxtKGIsImV4dGVybmFsQXV0aHNFbmFibGVkIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImV4dGVybmFsQXV0aHNFbmFibGVkIiksYiksbShiLCJzdWJtaXREaXNhYmxlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic3VibWl0RGlzYWJsZWQiKSxiKSxtKGIsImZ1bGxuYW1lUmVxdWlyZWQiLFtzLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZnVsbG5hbWVSZXF1aXJlZCIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL2p1bXAtdG8tcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LHttb2RlbDpudWxsLHBvc3ROdW1iZXI6bnVsbCxwb3N0RGF0ZTpudWxsLGZpbHRlcmVkUG9zdHNDb3VudDooMCx0LmFsaWFzKSgidG9waWMucG9zdFN0cmVhbS5maWx0ZXJlZFBvc3RzQ291bnQiKSxvblNob3c6ZnVuY3Rpb24oKXsoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQoIiNwb3N0LWp1bXAiKS5mb2N1cygpfSl9LGFjdGlvbnM6e2p1bXA6ZnVuY3Rpb24oKXt0aGlzLnBvc3ROdW1iZXI/dGhpcy5fanVtcFRvSW5kZXgodGhpcy5maWx0ZXJlZFBvc3RzQ291bnQsdGhpcy5wb3N0TnVtYmVyKTp0aGlzLnBvc3REYXRlJiZ0aGlzLl9qdW1wVG9EYXRlKHRoaXMucG9zdERhdGUpfX0sX2p1bXBUb0luZGV4OmZ1bmN0aW9uKGUsdCl7dmFyIG49TWF0aC5taW4oZSxNYXRoLm1heCgxLHBhcnNlSW50KHQsMTApKSk7dGhpcy5qdW1wVG9JbmRleChuKSx0aGlzLl9jbG9zZSgpfSxfanVtcFRvRGF0ZTpmdW5jdGlvbihlKXt0aGlzLmp1bXBUb0RhdGUoZSksdGhpcy5fY2xvc2UoKX0sX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtwb3N0TnVtYmVyOm51bGwscG9zdERhdGU6bnVsbH0pLHRoaXMuc2VuZCgiY2xvc2VNb2RhbCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMva2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGM9ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwIixpPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LnNoaWZ0Iikscz1JMThuLnQoInNob3J0Y3V0X21vZGlmaWVyX2tleS5hbHQiKSxvPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmN0cmwiKSxyPUkxOG4udCgic2hvcnRjdXRfbW9kaWZpZXJfa2V5LmVudGVyIiksZD1JMThuLnQoYysiLnNob3J0Y3V0X2tleV9kZWxpbWl0ZXJfY29tbWEiKSxhPUkxOG4udChjKyIuc2hvcnRjdXRfa2V5X2RlbGltaXRlcl9wbHVzIik7ZnVuY3Rpb24gcChlKXtyZXR1cm4nPHNwYW4gZGlyPSJsdHIiPicrZSsiPC9zcGFuPiJ9ZnVuY3Rpb24gbChlLHQpe3ZhciBuPXQua2V5czEsaT12b2lkIDA9PT1uP1tdOm4scz10LmtleXMyLG89dm9pZCAwPT09cz9bXTpzLHI9dC5rZXlzRGVsaW1pdGVyLGE9dm9pZCAwPT09cj9kOnIsbD10LnNob3J0Y3V0c0RlbGltaXRlcix1PXtzaG9ydGN1dDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz1bZSx0XS5yZWplY3QoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lLmxlbmd0aH0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIjxrYmQ+IitlKyI8L2tiZD4ifSkuam9pbihuKX0pO2lmKDE9PT1zLmxlbmd0aClyZXR1cm4gcChzWzBdKTt2YXIgbz17c2hvcnRjdXQxOnNbMF0sc2hvcnRjdXQyOnNbMV19LHI9IiI7cmV0dXJuIm9yIj09PWk/cj1JMThuLnQoYysiLnNob3J0Y3V0X2RlbGltaXRlcl9vciIsbyk6InNsYXNoIj09PWk/cj1JMThuLnQoYysiLnNob3J0Y3V0X2RlbGltaXRlcl9zbGFzaCIsbyk6InNwYWNlIj09PWkmJihyPUkxOG4udChjKyIuc2hvcnRjdXRfZGVsaW1pdGVyX3NwYWNlIixvKSkscChyKX0oaSxvLGEsdm9pZCAwPT09bD8ib3IiOmwpfTtyZXR1cm4gSTE4bi50KGMrIi4iK2UsdSl9ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsImtleWJvYXJkLXNob3J0Y3V0cy1tb2RhbCIpfSxzaG9ydGN1dHM6e2p1bXBfdG86e2hvbWU6bCgianVtcF90by5ob21lIix7a2V5czE6WyJnIiwiaCJdfSksbGF0ZXN0OmwoImp1bXBfdG8ubGF0ZXN0Iix7a2V5czE6WyJnIiwibCJdfSksbmV3OmwoImp1bXBfdG8ubmV3Iix7a2V5czE6WyJnIiwibiJdfSksdW5yZWFkOmwoImp1bXBfdG8udW5yZWFkIix7a2V5czE6WyJnIiwidSJdfSksY2F0ZWdvcmllczpsKCJqdW1wX3RvLmNhdGVnb3JpZXMiLHtrZXlzMTpbImciLCJjIl19KSx0b3A6bCgianVtcF90by50b3AiLHtrZXlzMTpbImciLCJ0Il19KSxib29rbWFya3M6bCgianVtcF90by5ib29rbWFya3MiLHtrZXlzMTpbImciLCJiIl19KSxwcm9maWxlOmwoImp1bXBfdG8ucHJvZmlsZSIse2tleXMxOlsiZyIsInAiXX0pLG1lc3NhZ2VzOmwoImp1bXBfdG8ubWVzc2FnZXMiLHtrZXlzMTpbImciLCJtIl19KSxkcmFmdHM6bCgianVtcF90by5kcmFmdHMiLHtrZXlzMTpbImciLCJkIl19KX0sbmF2aWdhdGlvbjp7YmFjazpsKCJuYXZpZ2F0aW9uLmJhY2siLHtrZXlzMTpbInUiXX0pLGp1bXA6bCgibmF2aWdhdGlvbi5qdW1wIix7a2V5czE6WyIjIl19KSx1cF9kb3duOmwoIm5hdmlnYXRpb24udXBfZG93biIse2tleXMxOlsiayJdLGtleXMyOlsiaiJdLHNob3J0Y3V0c0RlbGltaXRlcjoic2xhc2gifSksb3BlbjpsKCJuYXZpZ2F0aW9uLm9wZW4iLHtrZXlzMTpbIm8iXSxrZXlzMjpbcl19KSxuZXh0X3ByZXY6bCgibmF2aWdhdGlvbi5uZXh0X3ByZXYiLHtrZXlzMTpbaSwiaiJdLGtleXMyOltpLCJrIl0sa2V5c0RlbGltaXRlcjphLHNob3J0Y3V0c0RlbGltaXRlcjoic2xhc2gifSksZ29fdG9fdW5yZWFkX3Bvc3Q6bCgibmF2aWdhdGlvbi5nb190b191bnJlYWRfcG9zdCIse2tleXMxOltpLCJsIl0sa2V5c0RlbGltaXRlcjphfSl9LGFwcGxpY2F0aW9uOntoYW1idXJnZXJfbWVudTpsKCJhcHBsaWNhdGlvbi5oYW1idXJnZXJfbWVudSIse2tleXMxOlsiPSJdfSksdXNlcl9wcm9maWxlX21lbnU6bCgiYXBwbGljYXRpb24udXNlcl9wcm9maWxlX21lbnUiLHtrZXlzMTpbInAiXX0pLGNyZWF0ZTpsKCJhcHBsaWNhdGlvbi5jcmVhdGUiLHtrZXlzMTpbImMiXX0pLHNob3dfaW5jb21pbmdfdXBkYXRlZF90b3BpY3M6bCgiYXBwbGljYXRpb24uc2hvd19pbmNvbWluZ191cGRhdGVkX3RvcGljcyIse2tleXMxOlsiLiJdfSksc2VhcmNoOmwoImFwcGxpY2F0aW9uLnNlYXJjaCIse2tleXMxOlsiLyJdLGtleXMyOltvLHMsImYiXSxrZXlzRGVsaW1pdGVyOmF9KSxoZWxwOmwoImFwcGxpY2F0aW9uLmhlbHAiLHtrZXlzMTpbIj8iXX0pLGRpc21pc3NfbmV3X3Bvc3RzOmwoImFwcGxpY2F0aW9uLmRpc21pc3NfbmV3X3Bvc3RzIix7a2V5czE6WyJ4IiwiciJdfSksZGlzbWlzc190b3BpY3M6bCgiYXBwbGljYXRpb24uZGlzbWlzc190b3BpY3MiLHtrZXlzMTpbIngiLCJ0Il19KSxsb2dfb3V0OmwoImFwcGxpY2F0aW9uLmxvZ19vdXQiLHtrZXlzMTpbaSwieiJdLGtleXMyOltpLCJ6Il0sa2V5c0RlbGltaXRlcjphLHNob3J0Y3V0c0RlbGltaXRlcjoic3BhY2UifSl9LGNvbXBvc2luZzp7cmV0dXJuOmwoImNvbXBvc2luZy5yZXR1cm4iLHtrZXlzMTpbaSwiYyJdLGtleXNEZWxpbWl0ZXI6YX0pLGZ1bGxzY3JlZW46bCgiY29tcG9zaW5nLmZ1bGxzY3JlZW4iLHtrZXlzMTpbaSwiRjExIl0sa2V5c0RlbGltaXRlcjphfSl9LGFjdGlvbnM6e2Jvb2ttYXJrX3RvcGljOmwoImFjdGlvbnMuYm9va21hcmtfdG9waWMiLHtrZXlzMTpbImYiXX0pLHJlcGx5X2FzX25ld190b3BpYzpsKCJhY3Rpb25zLnJlcGx5X2FzX25ld190b3BpYyIse2tleXMxOlsidCJdfSkscmVwbHlfdG9waWM6bCgiYWN0aW9ucy5yZXBseV90b3BpYyIse2tleXMxOltpLCJyIl0sa2V5c0RlbGltaXRlcjphfSkscmVwbHlfcG9zdDpsKCJhY3Rpb25zLnJlcGx5X3Bvc3QiLHtrZXlzMTpbInIiXX0pLHF1b3RlX3Bvc3Q6bCgiYWN0aW9ucy5xdW90ZV9wb3N0Iix7a2V5czE6WyJxIl19KSxwaW5fdW5waW5fdG9waWM6bCgiYWN0aW9ucy5waW5fdW5waW5fdG9waWMiLHtrZXlzMTpbaSwicCJdLGtleXNEZWxpbWl0ZXI6YX0pLHNoYXJlX3RvcGljOmwoImFjdGlvbnMuc2hhcmVfdG9waWMiLHtrZXlzMTpbaSwicyJdLGtleXNEZWxpbWl0ZXI6YX0pLHNoYXJlX3Bvc3Q6bCgiYWN0aW9ucy5zaGFyZV9wb3N0Iix7a2V5czE6WyJzIl19KSxsaWtlOmwoImFjdGlvbnMubGlrZSIse2tleXMxOlsibCJdfSksZmxhZzpsKCJhY3Rpb25zLmZsYWciLHtrZXlzMTpbIiEiXX0pLGJvb2ttYXJrOmwoImFjdGlvbnMuYm9va21hcmsiLHtrZXlzMTpbImIiXX0pLGVkaXQ6bCgiYWN0aW9ucy5lZGl0Iix7a2V5czE6WyJlIl19KSxkZWxldGU6bCgiYWN0aW9ucy5kZWxldGUiLHtrZXlzMTpbImQiXX0pLG1hcmtfbXV0ZWQ6bCgiYWN0aW9ucy5tYXJrX211dGVkIix7a2V5czE6WyJtIiwibSJdfSksbWFya19yZWd1bGFyOmwoImFjdGlvbnMubWFya19yZWd1bGFyIix7a2V5czE6WyJtIiwiciJdfSksbWFya190cmFja2luZzpsKCJhY3Rpb25zLm1hcmtfdHJhY2tpbmciLHtrZXlzMTpbIm0iLCJ0Il19KSxtYXJrX3dhdGNoaW5nOmwoImFjdGlvbnMubWFya193YXRjaGluZyIse2tleXMxOlsibSIsInciXX0pLHByaW50OmwoImFjdGlvbnMucHJpbnQiLHtrZXlzMTpbbywicCJdLGtleXNEZWxpbWl0ZXI6YX0pLGRlZmVyOmwoImFjdGlvbnMuZGVmZXIiLHtrZXlzMTpbaSwidSJdLGtleXNEZWxpbWl0ZXI6YX0pLHRvcGljX2FkbWluX2FjdGlvbnM6bCgiYWN0aW9ucy50b3BpY19hZG1pbl9hY3Rpb25zIix7a2V5czE6W2ksImEiXSxrZXlzRGVsaW1pdGVyOmF9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9sb2dpbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwicHJldHR5LXRleHQvc2FuaXRpemVyIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL3dlYmF1dGhuIl0sZnVuY3Rpb24oZSx0LG4saSxyLGEscyxsLG8sdSxjLGQscCxtLGYsaCxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdix5LF8sdyx4LGssUCxqLFQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBFPVsicmVxdWlyZXNfaW52aXRlIiwiYXdhaXRpbmdfYXBwcm92YWwiLCJhd2FpdGluZ19hY3RpdmF0aW9uIiwiYWRtaW5fbm90X2FsbG93ZWRfZnJvbV9pcF9hZGRyZXNzIiwibm90X2FsbG93ZWRfZnJvbV9pcF9hZGRyZXNzIl07ZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LCh2PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSx5PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSxfPSgwLHQuZGVmYXVsdCkoImF3YWl0aW5nQXBwcm92YWwiLCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iKSx3PSgwLHQuZGVmYXVsdCkoInNob3dTZWNvbmRGYWN0b3IiLCJzaG93U2VjdXJpdHlLZXkiKSx4PSgwLHQuZGVmYXVsdCkoImNhbkxvZ2luTG9jYWxXaXRoRW1haWwiKSxrPSgwLHQuZGVmYXVsdCkoImxvZ2dpbmdJbiIpLFA9KDAsdC5kZWZhdWx0KSgibG9nZ2luZ0luIiwiYXBwbGljYXRpb24uY2FuU2lnblVwIiksaj0oMCx0LmRlZmF1bHQpKCJjYW5Mb2dpbkxvY2FsV2l0aEVtYWlsIiwicHJvY2Vzc2luZ0VtYWlsTGluayIpLGcoVD17Y3JlYXRlQWNjb3VudDooMCxzLmluamVjdCkoKSxmb3Jnb3RQYXNzd29yZDooMCxzLmluamVjdCkoKSxhcHBsaWNhdGlvbjooMCxzLmluamVjdCkoKSxsb2dnaW5nSW46ITEsbG9nZ2VkSW46ITEscHJvY2Vzc2luZ0VtYWlsTGluazohMSxzaG93TG9naW5CdXR0b25zOiEwLHNob3dTZWNvbmRGYWN0b3I6ITEsYXdhaXRpbmdBcHByb3ZhbDohMSxjYW5Mb2dpbkxvY2FsOigwLGMuc2V0dGluZykoImVuYWJsZV9sb2NhbF9sb2dpbnMiKSxjYW5Mb2dpbkxvY2FsV2l0aEVtYWlsOigwLGMuc2V0dGluZykoImVuYWJsZV9sb2NhbF9sb2dpbnNfdmlhX2VtYWlsIiksbG9naW5SZXF1aXJlZDooMCxpLmFsaWFzKSgiYXBwbGljYXRpb24ubG9naW5SZXF1aXJlZCIpLHNlY29uZEZhY3Rvck1ldGhvZDpoLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLHJlc2V0Rm9ybTpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bG9nZ2luZ0luOiExLGxvZ2dlZEluOiExLHNlY29uZEZhY3RvclJlcXVpcmVkOiExLHNob3dTZWNvbmRGYWN0b3I6ITEsc2hvd1NlY3VyaXR5S2V5OiExLHNob3dMb2dpbkJ1dHRvbnM6ITAsYXdhaXRpbmdBcHByb3ZhbDohMX0pfSxjcmVkZW50aWFsc0NsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQ/ImhpZGRlbiI6IiJ9LHNlY29uZEZhY3RvckNsYXNzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQ/IiI6ImhpZGRlbiJ9LG1vZGFsQm9keUNsYXNzZXM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bImxvZ2luLW1vZGFsIl07cmV0dXJuIGUmJm4ucHVzaCgiYXdhaXRpbmctYXBwcm92YWwiKSx0JiZuLnB1c2goImhhcy1hbHQtYXV0aCIpLG4uam9pbigiICIpfSxkaXNhYmxlTG9naW5GaWVsZHM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dH0saGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uOmZ1bmN0aW9uKGUpe3JldHVybiAwPCgwLGQuZmluZEFsbCkoKS5sZW5ndGh8fGV9LGxvZ2luQnV0dG9uTGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImxvZ2luLmxvZ2dpbmdfaW4iOiJsb2dpbi50aXRsZSJ9LGxvZ2luRGlzYWJsZWQ6KDAsaS5vcikoImxvZ2dpbmdJbiIsImxvZ2dlZEluIiksc2hvd1NpZ251cExpbms6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmIWV9LHNob3dTcGlubmVyOigwLGkucmVhZE9ubHkpKCJsb2dnaW5nSW4iKSxzaG93TG9naW5XaXRoRW1haWxMaW5rOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxhY3Rpb25zOntsb2dpbjpmdW5jdGlvbigpe3ZhciBvPXRoaXM7aWYoIXRoaXMubG9naW5EaXNhYmxlZCl7aWYoISgwLG4uaXNFbXB0eSkodGhpcy5sb2dpbk5hbWUpJiYhKDAsbi5pc0VtcHR5KSh0aGlzLmxvZ2luUGFzc3dvcmQpKXJldHVybiB0aGlzLnNldCgibG9nZ2luZ0luIiwhMCksKDAsbC5hamF4KSgiL3Nlc3Npb24iLHt0eXBlOiJQT1NUIixkYXRhOntsb2dpbjp0aGlzLmxvZ2luTmFtZSxwYXNzd29yZDp0aGlzLmxvZ2luUGFzc3dvcmQsc2Vjb25kX2ZhY3Rvcl90b2tlbjp0aGlzLnNlY3VyaXR5S2V5Q3JlZGVudGlhbHx8dGhpcy5zZWNvbmRGYWN0b3JUb2tlbixzZWNvbmRfZmFjdG9yX21ldGhvZDp0aGlzLnNlY29uZEZhY3Rvck1ldGhvZCx0aW1lem9uZTptb21lbnQudHouZ3Vlc3MoKX19KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCFlfHwhZS5lcnJvcil7by5zZXQoImxvZ2dlZEluIiwhMCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhpZGRlbi1sb2dpbi1mb3JtIiksdD1mdW5jdGlvbihlLHQpe24mJihuLnF1ZXJ5U2VsZWN0b3IoImlucHV0W25hbWU9Iit0KyJdIikudmFsdWU9ZSl9LGk9JC5jb29raWUoImRlc3RpbmF0aW9uX3VybCIpLHM9JC5jb29raWUoInNzb19kZXN0aW5hdGlvbl91cmwiKTtyZXR1cm4odChvLmxvZ2luTmFtZSwidXNlcm5hbWUiKSx0KG8ubG9naW5QYXNzd29yZCwicGFzc3dvcmQiKSxzKT8oJC5yZW1vdmVDb29raWUoInNzb19kZXN0aW5hdGlvbl91cmwiKSx2b2lkIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24ocykpOihpPygkLnJlbW92ZUNvb2tpZSgiZGVzdGluYXRpb25fdXJsIiksdChpLCJyZWRpcmVjdCIpKTp0KHdpbmRvdy5sb2NhdGlvbi5ocmVmLCJyZWRpcmVjdCIpLHZvaWQobiYmKG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goLyhpUGFkfGlQaG9uZXxpUG9kKS9nKSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvU2FmYXJpL2cpP3dpbmRvdy5sb2NhdGlvbi5ocmVmPW4ucXVlcnlTZWxlY3RvcigiaW5wdXRbbmFtZT1yZWRpcmVjdF0iKS52YWx1ZTpuLnN1Ym1pdCgpKSkpfWlmKG8uc2V0KCJsb2dnaW5nSW4iLCExKSwoZS5zZWN1cml0eV9rZXlfZW5hYmxlZHx8ZS50b3RwX2VuYWJsZWQpJiYhby5zZWNvbmRGYWN0b3JSZXF1aXJlZClyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLWFsZXJ0Iikuc3R5bGUuZGlzcGxheT0ibm9uZSIsby5zZXRQcm9wZXJ0aWVzKHtvdGhlck1ldGhvZEFsbG93ZWQ6ZS5tdWx0aXBsZV9zZWNvbmRfZmFjdG9yX21ldGhvZHMsc2Vjb25kRmFjdG9yUmVxdWlyZWQ6ITAsc2hvd0xvZ2luQnV0dG9uczohMSxiYWNrdXBFbmFibGVkOmUuYmFja3VwX2VuYWJsZWQsc2hvd1NlY29uZEZhY3RvcjplLnRvdHBfZW5hYmxlZCxzaG93U2VjdXJpdHlLZXk6ZS5zZWN1cml0eV9rZXlfZW5hYmxlZCxzZWNvbmRGYWN0b3JNZXRob2Q6ZS5zZWN1cml0eV9rZXlfZW5hYmxlZD9oLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5TRUNVUklUWV9LRVk6aC5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUCxzZWN1cml0eUtleUNoYWxsZW5nZTplLmNoYWxsZW5nZSxzZWN1cml0eUtleUFsbG93ZWRDcmVkZW50aWFsSWRzOmUuYWxsb3dlZF9jcmVkZW50aWFsX2lkc30pLHZvaWQoby5zaG93U2VjdXJpdHlLZXl8fCgwLGEuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmQtZmFjdG9yIikucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfSkpOyJub3RfYWN0aXZhdGVkIj09PWUucmVhc29uP28uc2VuZCgic2hvd05vdEFjdGl2YXRlZCIse3VzZXJuYW1lOm8ubG9naW5OYW1lLHNlbnRUbzooMCxwLmVzY2FwZSkoZS5zZW50X3RvX2VtYWlsKSxjdXJyZW50RW1haWw6KDAscC5lc2NhcGUpKGUuY3VycmVudF9lbWFpbCl9KToic3VzcGVuZGVkIj09PWUucmVhc29uPyhvLnNlbmQoImNsb3NlTW9kYWwiKSxib290Ym94LmFsZXJ0KGUuZXJyb3IpKTpvLmZsYXNoKGUuZXJyb3IsImVycm9yIil9LGZ1bmN0aW9uKGUpe2UuanFYSFImJjQyOT09PWUuanFYSFIuc3RhdHVzP28uZmxhc2goSTE4bi50KCJsb2dpbi5yYXRlX2xpbWl0IiksImVycm9yIik6KDAsbS5hcmVDb29raWVzRW5hYmxlZCkoKT9vLmZsYXNoKEkxOG4udCgibG9naW4uZXJyb3IiKSwiZXJyb3IiKTpvLmZsYXNoKEkxOG4udCgibG9naW4uY29va2llc19lcnJvciIpLCJlcnJvciIpLG8uc2V0KCJsb2dnaW5nSW4iLCExKX0pLCExO3RoaXMuZmxhc2goSTE4bi50KCJsb2dpbi5ibGFua191c2VybmFtZV9vcl9wYXNzd29yZCIpLCJlcnJvciIpfX0sZXh0ZXJuYWxMb2dpbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMubG9naW5EaXNhYmxlZHx8KHRoaXMuc2V0KCJsb2dnaW5nSW4iLCEwKSxlLmRvTG9naW4oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9nZ2luZ0luIiwhMSl9KSl9LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuY3JlYXRlQWNjb3VudDt0JiYodC5yZXNldEZvcm0oKSwoZT10aGlzLmxvZ2luTmFtZSkmJjA8ZS5pbmRleE9mKCJAIik/dC5zZXQoImFjY291bnRFbWFpbCIsZSk6dC5zZXQoImFjY291bnRVc2VybmFtZSIsZSkpLHRoaXMuc2VuZCgic2hvd0NyZWF0ZUFjY291bnQiKX0sZm9yZ290UGFzc3dvcmQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmZvcmdvdFBhc3N3b3JkO2UmJmUuc2V0KCJhY2NvdW50RW1haWxPclVzZXJuYW1lIix0aGlzLmxvZ2luTmFtZSksdGhpcy5zZW5kKCJzaG93Rm9yZ290UGFzc3dvcmQiKX0sZW1haWxMb2dpbjpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5wcm9jZXNzaW5nRW1haWxMaW5rfHwoKDAsbi5pc0VtcHR5KSh0aGlzLmxvZ2luTmFtZSk/dGhpcy5mbGFzaChJMThuLnQoImxvZ2luLmJsYW5rX3VzZXJuYW1lIiksImVycm9yIik6KHRoaXMuc2V0KCJwcm9jZXNzaW5nRW1haWxMaW5rIiwhMCksKDAsbC5hamF4KSgiL3UvZW1haWwtbG9naW4iLHtkYXRhOntsb2dpbjp0aGlzLmxvZ2luTmFtZS50cmltKCl9LHR5cGU6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0oMCxtLmVzY2FwZUV4cHJlc3Npb24pKGkubG9naW5OYW1lKSxuPSJlbWFpbF9sb2dpbi5jb21wbGV0ZV8iKyh0Lm1hdGNoKC9ALyk/ImVtYWlsIjoidXNlcm5hbWUiKTshMT09PWUudXNlcl9mb3VuZD9pLmZsYXNoKEkxOG4udChuKyJfbm90X2ZvdW5kIix7ZW1haWw6dCx1c2VybmFtZTp0fSksImVycm9yIik6aS5mbGFzaChJMThuLnQobisiX2ZvdW5kIix7ZW1haWw6dCx1c2VybmFtZTp0fSkpfSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGkuZmxhc2goKDAsZi5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBpLnNldCgicHJvY2Vzc2luZ0VtYWlsTGluayIsITEpfSkpKX0sYXV0aGVudGljYXRlU2VjdXJpdHlLZXk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLGIuZ2V0V2ViYXV0aG5DcmVkZW50aWFsKSh0aGlzLnNlY3VyaXR5S2V5Q2hhbGxlbmdlLHRoaXMuc2VjdXJpdHlLZXlBbGxvd2VkQ3JlZGVudGlhbElkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoImxvZ2luIil9LGZ1bmN0aW9uKGUpe3QuZmxhc2goZSwiZXJyb3IiKX0pfX0sYXV0aGVudGljYXRpb25Db21wbGV0ZTpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsdCxuKXsoMCx1LmRlZmF1bHQpKCJsb2dpbiIpLCgwLGEubmV4dCkoZnVuY3Rpb24oKXtuJiZuKCksaS5mbGFzaChlLHR8fCJzdWNjZXNzIil9KX12YXIgaT10aGlzO2lmKCFlLmF3YWl0aW5nX2FwcHJvdmFsfHx0aGlzLmNhbkxvZ2luTG9jYWx8fHRoaXMuY2FuTG9naW5Mb2NhbFdpdGhFbWFpbHx8dGhpcy5zZXQoImF3YWl0aW5nQXBwcm92YWwiLCEwKSxlLm9tbmlhdXRoX2Rpc2FsbG93X3RvdHApcmV0dXJuIHQoSTE4bi50KCJsb2dpbi5vbW5pYXV0aF9kaXNhbGxvd190b3RwIiksImVycm9yIixmdW5jdGlvbigpe2kuc2V0UHJvcGVydGllcyh7bG9naW5OYW1lOmUuZW1haWwsc2hvd0xvZ2luQnV0dG9uczohMX0pLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1hY2NvdW50LXBhc3N3b3JkIikuZm9jdXMoKX0pO2Zvcih2YXIgbixzPTA7czxFLmxlbmd0aDtzKyspe3ZhciBvPUVbc107aWYoZVtvXSlyZXR1cm4gdChJMThuLnQoImxvZ2luLiIrbykpfWlmKGUuc3VzcGVuZGVkKXJldHVybiB0KGUuc3VzcGVuZGVkX21lc3NhZ2UsImVycm9yIik7ZS5hdXRoZW50aWNhdGVkPyhuPSQuY29va2llKCJkZXN0aW5hdGlvbl91cmwiKXx8ZS5kZXN0aW5hdGlvbl91cmwpPygkLnJlbW92ZUNvb2tpZSgiZGVzdGluYXRpb25fdXJsIiksd2luZG93LmxvY2F0aW9uLmhyZWY9bik6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lPT09RGlzY291cnNlLmdldFVSTCgiL2xvZ2luIik/d2luZG93LmxvY2F0aW9uPURpc2NvdXJzZS5nZXRVUkwoIi8iKTp3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk6KHRoaXMuY3JlYXRlQWNjb3VudC5zZXRQcm9wZXJ0aWVzKHthY2NvdW50RW1haWw6ZS5lbWFpbCxhY2NvdW50VXNlcm5hbWU6ZS51c2VybmFtZSxhY2NvdW50TmFtZTplLm5hbWUsYXV0aE9wdGlvbnM6ci5kZWZhdWx0LmNyZWF0ZShlKX0pLCgwLHUuZGVmYXVsdCkoImNyZWF0ZUFjY291bnQiKSl9fSwiY3JlZGVudGlhbHNDbGFzcyIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY3JlZGVudGlhbHNDbGFzcyIpLFQpLGcoVCwic2Vjb25kRmFjdG9yQ2xhc3MiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNlY29uZEZhY3RvckNsYXNzIiksVCksZyhULCJtb2RhbEJvZHlDbGFzc2VzIixbX10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJtb2RhbEJvZHlDbGFzc2VzIiksVCksZyhULCJkaXNhYmxlTG9naW5GaWVsZHMiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImRpc2FibGVMb2dpbkZpZWxkcyIpLFQpLGcoVCwiaGFzQXRMZWFzdE9uZUxvZ2luQnV0dG9uIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iKSxUKSxnKFQsImxvZ2luQnV0dG9uTGFiZWwiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImxvZ2luQnV0dG9uTGFiZWwiKSxUKSxnKFQsInNob3dTaWdudXBMaW5rIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93U2lnbnVwTGluayIpLFQpLGcoVCwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL21vZGFsIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbW92ZS10by10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgZCxwLG0sZixoO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKGQ9KDAsbC5kZWZhdWx0KSgic2F2aW5nIiwic2VsZWN0ZWRUb3BpY0lkIiwidG9waWNOYW1lIikscD0oMCxsLmRlZmF1bHQpKCJzYXZpbmciLCJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIiksbT0oMCxsLmRlZmF1bHQpKCJzZWxlY3RlZEFsbFBvc3RzIiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxmPSgwLGwuZGVmYXVsdCkoImNhblNwbGl0VG9waWMiKSxjKGg9e3RvcGljTmFtZTpudWxsLHNhdmluZzohMSxjYXRlZ29yeUlkOm51bGwsdGFnczpudWxsLGNhbkFkZFRhZ3M6KDAsdC5hbGlhcykoInNpdGUuY2FuX2NyZWF0ZV90YWciKSxjYW5UYWdNZXNzYWdlczooMCx0LmFsaWFzKSgic2l0ZS5jYW5fdGFnX3BtcyIpLHNlbGVjdGVkVG9waWNJZDpudWxsLG5ld1RvcGljOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJuZXdfdG9waWMiKSxleGlzdGluZ1RvcGljOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJleGlzdGluZ190b3BpYyIpLG5ld01lc3NhZ2U6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsIm5ld19tZXNzYWdlIiksZXhpc3RpbmdNZXNzYWdlOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJleGlzdGluZ19tZXNzYWdlIikscGFydGljaXBhbnRzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIl0sdGhpcy5tb3ZlVHlwZXM9WyJuZXdUb3BpYyIsImV4aXN0aW5nVG9waWMiLCJuZXdNZXNzYWdlIiwiZXhpc3RpbmdNZXNzYWdlIl19LHRvcGljQ29udHJvbGxlcjooMCxzLmluamVjdCkoInRvcGljIiksc2VsZWN0ZWRQb3N0c0NvdW50OigwLHQuYWxpYXMpKCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0c0NvdW50Iiksc2VsZWN0ZWRBbGxQb3N0czooMCx0LmFsaWFzKSgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkQWxsUG9zdHMiKSxzZWxlY3RlZFBvc3RzOigwLHQuYWxpYXMpKCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0cyIpLGJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZXx8KDAsaS5pc0VtcHR5KSh0KSYmKDAsaS5pc0VtcHR5KShuKX0sYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gdD9JMThuLnQoInRvcGljLnNwbGl0X3RvcGljLnRpdGxlIik6bj9JMThuLnQoInRvcGljLm1lcmdlX3RvcGljLnRpdGxlIik6aT9JMThuLnQoInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UudGl0bGUiKTpzP0kxOG4udCgidG9waWMubW92ZV90b19leGlzdGluZ19tZXNzYWdlLnRpdGxlIik6STE4bi50KCJzYXZpbmciKX0sb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHsibW9kYWwubW9kYWxDbGFzcyI6ImNob29zZS10b3BpYy1tb2RhbCIsc2F2aW5nOiExLHNlbGVjdGlvbjoibmV3X3RvcGljIixjYXRlZ29yeUlkOm51bGwsdG9waWNOYW1lOiIiLHRhZ3M6bnVsbCxwYXJ0aWNpcGFudHM6bnVsbH0pLHRoaXMuZ2V0KCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIik/dGhpcy5zZXQoInNlbGVjdGlvbiIsdGhpcy5jYW5TcGxpdFRvUE0/Im5ld19tZXNzYWdlIjoiZXhpc3RpbmdfbWVzc2FnZSIpOnRoaXMuY2FuU3BsaXRUb3BpY3x8KHRoaXMuc2V0KCJzZWxlY3Rpb24iLCJleGlzdGluZ190b3BpYyIpLCgwLG4ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJCgiI2Nob29zZS10b3BpYy10aXRsZSIpLmZvY3VzKCl9KSl9LGNhblNwbGl0VG9waWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmMDx0Lmxlbmd0aCYmdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucG9zdF9udW1iZXItdC5wb3N0X251bWJlcn0pWzBdLnBvc3RfdHlwZT09PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMucmVndWxhciIpfSxjYW5TcGxpdFRvUE06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYWRtaW59LGFjdGlvbnM6e3BlcmZvcm1Nb3ZlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm1vdmVUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuZ2V0KGUpJiZ0LnNlbmQoIm1vdmVQb3N0c1RvIixlKX0pfSxtb3ZlUG9zdHNUbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJzYXZpbmciLCEwKTt2YXIgbj10aGlzLmdldCgibW9kZWwuaWQiKSxpPXZvaWQgMCxzPXZvaWQgMCxzPSJleGlzdGluZ1RvcGljIj09PWU/KGk9e2Rlc3RpbmF0aW9uX3RvcGljX2lkOnRoaXMuc2VsZWN0ZWRUb3BpY0lkfSxPYmplY3QuYXNzaWduKHtwb3N0X2lkczp0aGlzLmdldCgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdElkcyIpfSxpKSk6ImV4aXN0aW5nTWVzc2FnZSI9PT1lPyhpPXtkZXN0aW5hdGlvbl90b3BpY19pZDp0aGlzLnNlbGVjdGVkVG9waWNJZCxwYXJ0aWNpcGFudHM6dGhpcy5wYXJ0aWNpcGFudHMsYXJjaGV0eXBlOiJwcml2YXRlX21lc3NhZ2UifSxPYmplY3QuYXNzaWduKHtwb3N0X2lkczp0aGlzLmdldCgidG9waWNDb250cm9sbGVyLnNlbGVjdGVkUG9zdElkcyIpfSxpKSk6Im5ld1RvcGljIj09PWU/KGk9e30se3RpdGxlOnRoaXMudG9waWNOYW1lLHBvc3RfaWRzOnRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0SWRzIiksY2F0ZWdvcnlfaWQ6dGhpcy5jYXRlZ29yeUlkLHRhZ3M6dGhpcy50YWdzfSk6KGk9e30se3RpdGxlOnRoaXMudG9waWNOYW1lLHBvc3RfaWRzOnRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRQb3N0SWRzIiksdGFnczp0aGlzLnRhZ3MsYXJjaGV0eXBlOiJwcml2YXRlX21lc3NhZ2UifSk7cmV0dXJuKHRoaXMuZ2V0KCJ0b3BpY0NvbnRyb2xsZXIuc2VsZWN0ZWRBbGxQb3N0cyIpPygwLHIubWVyZ2VUb3BpYykobixpKTooMCxyLm1vdmVQb3N0cykobixzKSkudGhlbihmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSx0LnRvcGljQ29udHJvbGxlci5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpLGEuZGVmYXVsdC5yb3V0ZVRvKGUudXJsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3QuZmxhc2goKDAsdS5leHRyYWN0RXJyb3IpKGUsSTE4bi50KCJ0b3BpYy5tb3ZlX3RvLmVycm9yIikpKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgic2F2aW5nIiwhMSl9KSwhMX19fSwiYnV0dG9uRGlzYWJsZWQiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImJ1dHRvbkRpc2FibGVkIiksaCksYyhoLCJidXR0b25UaXRsZSIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiYnV0dG9uVGl0bGUiKSxoKSxjKGgsImNhblNwbGl0VG9waWMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImNhblNwbGl0VG9waWMiKSxoKSxjKGgsImNhblNwbGl0VG9QTSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiY2FuU3BsaXRUb1BNIiksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbmF2aWdhdGlvbi9jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZGlzY292ZXJ5Q2F0ZWdvcmllcy5tb2RlbCIsImRpc2NvdmVyeUNhdGVnb3JpZXMubW9kZWwuZHJhZnQiKSxvPXtkaXNjb3ZlcnlDYXRlZ29yaWVzOigwLG4uaW5qZWN0KSgiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKSxkcmFmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgiZGlzY292ZXJ5Q2F0ZWdvcmllcy5tb2RlbC5kcmFmdCIpfX0scj1vLGE9ImRyYWZ0IixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZHJhZnQiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbmF2aWdhdGlvbi9jYXRlZ29yeSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9jb250cm9sbGVycy9uYXZpZ2F0aW9uL2RlZmF1bHQiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3Nob3dpbmdQYXJlbnRDYXRlZ29yeTooMCx0Lm5vbmUpKCJjYXRlZ29yeS5wYXJlbnRDYXRlZ29yeSIpLHNob3dpbmdTdWJjYXRlZ29yeUxpc3Q6KDAsdC5hbmQpKCJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiLCJzaG93aW5nUGFyZW50Q2F0ZWdvcnkiKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvbm90LWFjdGl2YXRlZCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL3VzZXItYWN0aXZhdGlvbiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHthY3Rpb25zOntzZW5kQWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczsoMCxpLnJlc2VuZEFjdGl2YXRpb25FbWFpbCkodGhpcy51c2VybmFtZSkudGhlbihmdW5jdGlvbigpe2Uuc2hvd01vZGFsKCJhY3RpdmF0aW9uLXJlc2VudCIse3RpdGxlOiJsb2dfaW4ifSkuc2V0KCJjdXJyZW50RW1haWwiLGUuY3VycmVudEVtYWlsKX0pfSxlZGl0QWN0aXZhdGlvbkVtYWlsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaG93TW9kYWwoImFjdGl2YXRpb24tZWRpdCIse3RpdGxlOiJsb2dpbi5jaGFuZ2VfZW1haWwifSksdD10aGlzLmN1cnJlbnRFbWFpbDtlLnNldCgiY3VycmVudEVtYWlsIix0KSxlLnNldCgibmV3RW1haWwiLHQpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3Bhc3N3b3JkLXJlc2V0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9taXhpbnMvcGFzc3dvcmQtdmFsaWRhdGlvbiIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciIsImRpc2NvdXJzZS9saWIvd2ViYXV0aG4iXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHIuZGVmYXVsdCwoYz0oMCxpLmRlZmF1bHQpKCJtb2RlbC5zZWN1cml0eV9rZXlfcmVxdWlyZWQiKSxkPSgwLGkuZGVmYXVsdCkoKSxwPSgwLGkuZGVmYXVsdCkoInJlZGlyZWN0VG8iKSx1KG09e2lzRGV2ZWxvcGVyOigwLHQuYWxpYXMpKCJtb2RlbC5pc19kZXZlbG9wZXIiKSxhZG1pbjooMCx0LmFsaWFzKSgibW9kZWwuYWRtaW4iKSxzZWNvbmRGYWN0b3JSZXF1aXJlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9yZXF1aXJlZCIpLHNlY3VyaXR5S2V5UmVxdWlyZWQ6KDAsdC5hbGlhcykoIm1vZGVsLnNlY3VyaXR5X2tleV9yZXF1aXJlZCIpLGJhY2t1cEVuYWJsZWQ6KDAsdC5hbGlhcykoIm1vZGVsLmJhY2t1cF9lbmFibGVkIiksc2VjdXJpdHlLZXlPclNlY29uZEZhY3RvclJlcXVpcmVkOigwLHQub3IpKCJtb2RlbC5zZWNvbmRfZmFjdG9yX3JlcXVpcmVkIiwibW9kZWwuc2VjdXJpdHlfa2V5X3JlcXVpcmVkIiksb3RoZXJNZXRob2RBbGxvd2VkOigwLHQucmVhZE9ubHkpKCJtb2RlbC5tdWx0aXBsZV9zZWNvbmRfZmFjdG9yX21ldGhvZHMiKSxzZWNvbmRGYWN0b3JNZXRob2Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/YS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOmEuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFB9LHBhc3N3b3JkUmVxdWlyZWQ6ITAsZXJyb3JNZXNzYWdlOm51bGwsc3VjY2Vzc01lc3NhZ2U6bnVsbCxyZXF1aXJlc0FwcHJvdmFsOiExLHJlZGlyZWN0ZWQ6ITEsY29udGludWVCdXR0b25UZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgicGFzc3dvcmRfcmVzZXQuY29udGludWUiLHtzaXRlX25hbWU6dGhpcy5zaXRlU2V0dGluZ3MudGl0bGV9KX0scmVkaXJlY3RIcmVmOmZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGV8fCIvIil9LGxvY2tJbWFnZVVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2xvY2suc3ZnIiksYWN0aW9uczp7c3VibWl0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCxvLmFqYXgpKHt1cmw6KDAscy51c2VyUGF0aCkoInBhc3N3b3JkLXJlc2V0LyIrdGhpcy5nZXQoIm1vZGVsLnRva2VuIikrIi5qc29uIiksdHlwZToiUFVUIixkYXRhOntwYXNzd29yZDp0aGlzLmFjY291bnRQYXNzd29yZCxzZWNvbmRfZmFjdG9yX3Rva2VuOnRoaXMuc2VjdXJpdHlLZXlDcmVkZW50aWFsfHx0aGlzLnNlY29uZEZhY3RvclRva2VuLHNlY29uZF9mYWN0b3JfbWV0aG9kOnRoaXMuc2Vjb25kRmFjdG9yTWV0aG9kfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnNldCgic3VjY2Vzc01lc3NhZ2UiLGUubWVzc2FnZSksdC5zZXQoInJlZGlyZWN0VG8iLGUucmVkaXJlY3RfdG8pLGUucmVxdWlyZXNfYXBwcm92YWw/dC5zZXQoInJlcXVpcmVzQXBwcm92YWwiLCEwKToodC5zZXQoInJlZGlyZWN0ZWQiLCEwKSxzLmRlZmF1bHQucmVkaXJlY3RUbyhlLnJlZGlyZWN0X3RvfHwiLyIpKSk6KGUuZXJyb3JzJiYhZS5lcnJvcnMucGFzc3dvcmQ/dC5zZXRQcm9wZXJ0aWVzKHtzZWNvbmRGYWN0b3JSZXF1aXJlZDp0LnNlY29uZEZhY3RvclJlcXVpcmVkLHNlY3VyaXR5S2V5UmVxdWlyZWQ6dC5zZWN1cml0eUtleVJlcXVpcmVkLHBhc3N3b3JkOm51bGwsZXJyb3JNZXNzYWdlOmUubWVzc2FnZX0pOnQuc2Vjb25kRmFjdG9yUmVxdWlyZWR8fHQuc2VjdXJpdHlLZXlSZXF1aXJlZD90LnNldFByb3BlcnRpZXMoe3NlY29uZEZhY3RvclJlcXVpcmVkOiExLHNlY3VyaXR5S2V5UmVxdWlyZWQ6ITEsZXJyb3JNZXNzYWdlOm51bGx9KTplLmVycm9ycyYmZS5lcnJvcnMucGFzc3dvcmQmJjA8ZS5lcnJvcnMucGFzc3dvcmQubGVuZ3RoJiYodC5yZWplY3RlZFBhc3N3b3Jkcy5wdXNoT2JqZWN0KHQuYWNjb3VudFBhc3N3b3JkKSx0LnJlamVjdGVkUGFzc3dvcmRzTWVzc2FnZXMuc2V0KHQuYWNjb3VudFBhc3N3b3JkLGUuZXJyb3JzLnBhc3N3b3JkWzBdKSksZS5tZXNzYWdlJiZ0LnNldCgiZXJyb3JNZXNzYWdlIixlLm1lc3NhZ2UpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCFlLmpxWEhSfHw0MjkhPT1lLmpxWEhSLnN0YXR1cyl0aHJvdyBuZXcgRXJyb3IoZSk7dC5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3IucmF0ZV9saW1pdCIpKX0pfSxhdXRoZW50aWNhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsbC5nZXRXZWJhdXRobkNyZWRlbnRpYWwpKHRoaXMubW9kZWwuY2hhbGxlbmdlLHRoaXMubW9kZWwuYWxsb3dlZF9jcmVkZW50aWFsX2lkcyxmdW5jdGlvbihlKXt0LnNldCgic2VjdXJpdHlLZXlDcmVkZW50aWFsIixlKSx0LnNlbmQoInN1Ym1pdCIpfSxmdW5jdGlvbihlKXt0LnNldFByb3BlcnRpZXMoe3NlY3VyaXR5S2V5UmVxdWlyZWQ6ITAscGFzc3dvcmQ6bnVsbCxlcnJvck1lc3NhZ2U6ZX0pfSl9LGRvbmU6ZnVuY3Rpb24oKXt0aGlzLnNldCgicmVkaXJlY3RlZCIsITApLHMuZGVmYXVsdC5yZWRpcmVjdFRvKHRoaXMucmVkaXJlY3RUb3x8Ii8iKX19fSwic2Vjb25kRmFjdG9yTWV0aG9kIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzZWNvbmRGYWN0b3JNZXRob2QiKSxtKSx1KG0sImNvbnRpbnVlQnV0dG9uVGV4dCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiY29udGludWVCdXR0b25UZXh0IiksbSksdShtLCJyZWRpcmVjdEhyZWYiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInJlZGlyZWN0SHJlZiIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3ByZWZlcmVuY2VzIixbImV4cG9ydHMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3JvdXRlcjooMCx0LmluamVjdCkoKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21peGlucy9jYW4tY2hlY2stZW1haWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi9sb2dvdXQiXSxmdW5jdGlvbihlLHQsbixzLGksbyxyLGEsbCx1LGMsZCxwLG0peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBmKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBoLGIsZyx2LHksXyx3LHg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCxyLmRlZmF1bHQsKGg9KDAsby5kZWZhdWx0KSgpLGI9KDAsby5kZWZhdWx0KSgibW9kZWwuZmlsdGVyZWRHcm91cHMiKSxnPSgwLG8uZGVmYXVsdCkoIm1vZGVsLmlzX2Fub255bW91cyIpLHY9KDAsby5kZWZhdWx0KSgibW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cyIpLHk9KDAsby5kZWZhdWx0KSgibW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cy5bXSIpLF89KDAsby5kZWZhdWx0KSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9lbmFibGVkIiwiY2FuQ2hlY2tFbWFpbHMiLCJtb2RlbC5pc19hbm9ueW1vdXMiKSx3PSgwLG8uZGVmYXVsdCkoInNob3dBbGxBdXRoVG9rZW5zIiwibW9kZWwudXNlcl9hdXRoX3Rva2VucyIpLGYoeD17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJuYW1lIiwidGl0bGUiLCJwcmltYXJ5X2dyb3VwX2lkIl0sdGhpcy5zZXQoInJldm9raW5nIix7fSl9LGNhbkVkaXROYW1lOigwLGEuc2V0dGluZykoImVuYWJsZV9uYW1lcyIpLGNhblNhdmVVc2VyOiEwLG5ld05hbWVJbnB1dDpudWxsLG5ld1RpdGxlSW5wdXQ6bnVsbCxuZXdQcmltYXJ5R3JvdXBJbnB1dDpudWxsLHBhc3N3b3JkUHJvZ3Jlc3M6bnVsbCxzaG93QWxsQXV0aFRva2VuczohMSxyZXZva2luZzpudWxsLGNhbm5vdERlbGV0ZUFjY291bnQ6KDAsdC5ub3QpKCJjdXJyZW50VXNlci5jYW5fZGVsZXRlX2FjY291bnQiKSxkZWxldGVEaXNhYmxlZDooMCx0Lm9yKSgibW9kZWwuaXNTYXZpbmciLCJkZWxldGluZyIsImNhbm5vdERlbGV0ZUFjY291bnQiKSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0KCJwYXNzd29yZFByb2dyZXNzIixudWxsKX0sbmFtZUluc3RydWN0aW9uczpmdW5jdGlvbigpe3JldHVybiBJMThuLnQodGhpcy5zaXRlU2V0dGluZ3MuZnVsbF9uYW1lX3JlcXVpcmVkPyJ1c2VyLm5hbWUuaW5zdHJ1Y3Rpb25zX3JlcXVpcmVkIjoidXNlci5uYW1lLmluc3RydWN0aW9ucyIpfSxjYW5TZWxlY3RUaXRsZTooMCx0Lmd0KSgibW9kZWwuYXZhaWxhYmxlVGl0bGVzLmxlbmd0aCIsMCksY2FuU2VsZWN0UHJpbWFyeUdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RoJiZ0aGlzLnNpdGVTZXR0aW5ncy51c2VyX3NlbGVjdGVkX3ByaW1hcnlfZ3JvdXBzfSxjYW5DaGFuZ2VQYXNzd29yZDpmdW5jdGlvbihlKXtyZXR1cm4hZSYmKCF0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfc3NvJiZ0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfbG9jYWxfbG9naW5zKX0sYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSxhdXRoUHJvdmlkZXJzOmZ1bmN0aW9uKGUpe3JldHVybigwLGMuZmluZEFsbCkoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue21ldGhvZDp0LGFjY291bnQ6ZS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10Lm5hbWV9KX19KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWNjb3VudHx8ZS5tZXRob2QuY2FuX2Nvbm5lY3R9KX0sZGlzYWJsZUNvbm5lY3RCdXR0b25zOigwLGEucHJvcGVydHlOb3RFcXVhbCkoIm1vZGVsLmlkIiwiY3VycmVudFVzZXIuaWQiKSxjYW5VcGRhdGVBc3NvY2lhdGVkQWNjb3VudHM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiEoZXx8IXR8fG4pJiYwPCgwLGMuZmluZEFsbCkoKS5sZW5ndGh9LGF1dGhUb2tlbnM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaXNfYWN0aXZlPy0xOnQuaXNfYWN0aXZlPzE6dC5zZWVuX2F0LmxvY2FsZUNvbXBhcmUoZS5zZWVuX2F0KX0pLGU/dDp0LnNsaWNlKDAsMil9LGNhblNob3dBbGxBdXRoVG9rZW5zOigwLHQuZ3QpKCJtb2RlbC51c2VyX2F1dGhfdG9rZW5zLmxlbmd0aCIsMiksYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZlZCIsITEpLHRoaXMubW9kZWwuc2V0UHJvcGVydGllcyh7bmFtZTp0aGlzLm5ld05hbWVJbnB1dCx0aXRsZTp0aGlzLm5ld1RpdGxlSW5wdXQscHJpbWFyeV9ncm91cF9pZDp0aGlzLm5ld1ByaW1hcnlHcm91cElucHV0fSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2ZWQiLCEwKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpfSxjaGFuZ2VQYXNzd29yZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMucGFzc3dvcmRQcm9ncmVzcylyZXR1cm4gdGhpcy5zZXQoInBhc3N3b3JkUHJvZ3Jlc3MiLEkxOG4udCgidXNlci5jaGFuZ2VfcGFzc3dvcmQuaW5fcHJvZ3Jlc3MiKSksdGhpcy5tb2RlbC5jaGFuZ2VQYXNzd29yZCgpLnRoZW4oZnVuY3Rpb24oKXtlLnNldFByb3BlcnRpZXMoe2NoYW5nZVBhc3N3b3JkUHJvZ3Jlc3M6ITEscGFzc3dvcmRQcm9ncmVzczpJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnN1Y2Nlc3MiKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtlLnNldFByb3BlcnRpZXMoe2NoYW5nZVBhc3N3b3JkUHJvZ3Jlc3M6ITEscGFzc3dvcmRQcm9ncmVzczpJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLmVycm9yIil9KX0pfSxkZWxldGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJkZWxldGluZyIsITApO3ZhciB0PUkxOG4udCgidXNlci5kZWxldGVfYWNjb3VudF9jb25maXJtIiksbj10aGlzLm1vZGVsLGk9W3tsYWJlbDpJMThuLnQoImNhbmNlbCIpLGNsYXNzOiJkLW1vZGFsLWNhbmNlbCIsbGluazohMCxjYWxsYmFjazpmdW5jdGlvbigpe2Uuc2V0KCJkZWxldGluZyIsITEpfX0se2xhYmVsOigwLHMuaWNvbkhUTUwpKCJleGNsYW1hdGlvbi10cmlhbmdsZSIpK0kxOG4udCgidXNlci5kZWxldGVfYWNjb3VudCIpLGNsYXNzOiJidG4gYnRuLWRhbmdlciIsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO24uZGVsZXRlKCkudGhlbihmdW5jdGlvbigpe2Jvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmRlbGV0ZWRfeW91cnNlbGYiKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiLyIpfSl9LGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoInVzZXIuZGVsZXRlX3lvdXJzZWxmX25vdF9hbGxvd2VkIikpLGUuc2V0KCJkZWxldGluZyIsITEpfSl9fV07Ym9vdGJveC5kaWFsb2codCxpLHtjbGFzc2VzOiJkZWxldGUtYWNjb3VudCJ9KX0scmV2b2tlQWNjb3VudDpmdW5jdGlvbih0KXt2YXIgbj10aGlzO3RoaXMuc2V0KCJyZXZva2luZy4iK3QubmFtZSwhMCksdGhpcy5tb2RlbC5yZXZva2VBc3NvY2lhdGVkQWNjb3VudCh0Lm5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzP24ubW9kZWwuYXNzb2NpYXRlZF9hY2NvdW50cy5yZW1vdmVPYmplY3QodCk6Ym9vdGJveC5hbGVydChlLm1lc3NhZ2UpfSkuY2F0Y2gobC5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgicmV2b2tpbmcuIit0Lm5hbWUsITEpfSl9LHRvZ2dsZVNob3dBbGxBdXRoVG9rZW5zOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0FsbEF1dGhUb2tlbnMiKX0scmV2b2tlQXV0aFRva2VuOmZ1bmN0aW9uKGUpeygwLGQuYWpheCkoKDAscC51c2VyUGF0aCkodGhpcy5nZXQoIm1vZGVsLnVzZXJuYW1lX2xvd2VyIikrIi9wcmVmZXJlbmNlcy9yZXZva2UtYXV0aC10b2tlbiIpLHt0eXBlOiJQT1NUIixkYXRhOmU/e3Rva2VuX2lkOmUuaWR9Ont9fSkudGhlbihmdW5jdGlvbigpe2V8fCgwLG0uZGVmYXVsdCkoKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpfSxzaG93VG9rZW46ZnVuY3Rpb24oZSl7KDAsdS5kZWZhdWx0KSgiYXV0aC10b2tlbiIse21vZGVsOmV9KX0sY29ubmVjdEFjY291bnQ6ZnVuY3Rpb24oZSl7ZS5kb0xvZ2luKHtyZWNvbm5lY3Q6ITB9KX19fSwibmFtZUluc3RydWN0aW9ucyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeCwibmFtZUluc3RydWN0aW9ucyIpLHgpLGYoeCwiY2FuU2VsZWN0UHJpbWFyeUdyb3VwIixbYl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJjYW5TZWxlY3RQcmltYXJ5R3JvdXAiKSx4KSxmKHgsImNhbkNoYW5nZVBhc3N3b3JkIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJjYW5DaGFuZ2VQYXNzd29yZCIpLHgpLGYoeCwiYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkIixbdl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJhc3NvY2lhdGVkQWNjb3VudHNMb2FkZWQiKSx4KSxmKHgsImF1dGhQcm92aWRlcnMiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHgsImF1dGhQcm92aWRlcnMiKSx4KSxmKHgsImNhblVwZGF0ZUFzc29jaWF0ZWRBY2NvdW50cyIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeCwiY2FuVXBkYXRlQXNzb2NpYXRlZEFjY291bnRzIikseCksZih4LCJhdXRoVG9rZW5zIixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih4LCJhdXRoVG9rZW5zIikseCkseCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvY2F0ZWdvcmllcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJtb2RlbC53YXRjaGVkQ2F0ZWdvcmllcyIsIm1vZGVsLndhdGNoZWRGaXJzdFBvc3RDYXRlZ29yaWVzIiwibW9kZWwudHJhY2tlZENhdGVnb3JpZXMiLCJtb2RlbC5tdXRlZENhdGVnb3JpZXMiKSxsPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZW1vdmVfbXV0ZWRfdGFnc19mcm9tX2xhdGVzdCIpLHIodT17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF9jYXRlZ29yeV9pZHMiLCJ3YXRjaGVkX2NhdGVnb3J5X2lkcyIsInRyYWNrZWRfY2F0ZWdvcnlfaWRzIiwid2F0Y2hlZF9maXJzdF9wb3N0X2NhdGVnb3J5X2lkcyJdfSxzZWxlY3RlZENhdGVnb3JpZXM6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuW10uY29uY2F0KGUsdCxuLGkpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pfSxjYW5TZWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoImN1cnJlbnRVc2VyLmlkIik9PT10aGlzLmdldCgibW9kZWwuaWQiKX0saGlkZU11dGVkVGFnczpmdW5jdGlvbigpe3JldHVybiJuZXZlciIhPT10aGlzLnNpdGVTZXR0aW5ncy5yZW1vdmVfbXV0ZWRfdGFnc19mcm9tX2xhdGVzdH0sY2FuU2F2ZTooMCxuLm9yKSgiY2FuU2VlIiwiY3VycmVudFVzZXIuYWRtaW4iKSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcil9fX0sInNlbGVjdGVkQ2F0ZWdvcmllcyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwic2VsZWN0ZWRDYXRlZ29yaWVzIiksdSkscih1LCJjYW5TZWUiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiY2FuU2VlIiksdSkscih1LCJoaWRlTXV0ZWRUYWdzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJoaWRlTXV0ZWRUYWdzIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvZW1haWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobD0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIpLHU9KDAsdC5kZWZhdWx0KSgic2F2aW5nIiksYz0oMCx0LmRlZmF1bHQpKCJuZXdFbWFpbCIpLGQ9KDAsdC5kZWZhdWx0KSgiaW52YWxpZEVtYWlsIiksYShwPXt0YWtlbjohMSxzYXZpbmc6ITEsZXJyb3I6ITEsc3VjY2VzczohMSxuZXdFbWFpbDpudWxsLG5ld0VtYWlsRW1wdHk6KDAsbi5lbXB0eSkoIm5ld0VtYWlsIiksc2F2ZURpc2FibGVkOigwLG4ub3IpKCJzYXZpbmciLCJuZXdFbWFpbEVtcHR5IiwidGFrZW4iLCJ1bmNoYW5nZWQiLCJpbnZhbGlkRW1haWwiKSx1bmNoYW5nZWQ6KDAscy5wcm9wZXJ0eUVxdWFsKSgibmV3RW1haWxMb3dlciIsImN1cnJlbnRVc2VyLmVtYWlsIiksbmV3RW1haWxMb3dlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKX0sc2F2ZUJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInVzZXIuY2hhbmdlIil9LGludmFsaWRFbWFpbDpmdW5jdGlvbihlKXtyZXR1cm4hKDAsci5lbWFpbFZhbGlkKShlKX0sZW1haWxWYWxpZGF0aW9uOmZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIG8uZGVmYXVsdC5jcmVhdGUoe2ZhaWxlZDohMCxyZWFzb246STE4bi50KCJ1c2VyLmVtYWlsLmludmFsaWQiKX0pfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7dGFrZW46ITEsc2F2aW5nOiExLGVycm9yOiExLHN1Y2Nlc3M6ITEsbmV3RW1haWw6bnVsbH0pfSxhY3Rpb25zOntjaGFuZ2VFbWFpbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLm1vZGVsLmNoYW5nZUVtYWlsKHRoaXMubmV3RW1haWwpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoInN1Y2Nlc3MiLCEwKX0sZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtlcnJvcjohMCxzYXZpbmc6ITF9KSxlLmpxWEhSLnJlc3BvbnNlSlNPTiYmZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnNbMF0/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIixJMThuLnQoInVzZXIuY2hhbmdlX2VtYWlsLmVycm9yIikpfSl9fX0sIm5ld0VtYWlsTG93ZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5ld0VtYWlsTG93ZXIiKSxwKSxhKHAsInNhdmVCdXR0b25UZXh0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzYXZlQnV0dG9uVGV4dCIpLHApLGEocCwiaW52YWxpZEVtYWlsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpbnZhbGlkRW1haWwiKSxwKSxhKHAsImVtYWlsVmFsaWRhdGlvbiIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZW1haWxWYWxpZGF0aW9uIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvZW1haWxzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZD0wLHA9MSxtPTI7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoKSxsPSgwLHMuZGVmYXVsdCkoKSx1PSgwLHMuZGVmYXVsdCkoKSxyKGM9e2VtYWlsTWVzc2FnZXNMZXZlbEF3YXk6KDAsdC5lcXVhbCkoIm1vZGVsLnVzZXJfb3B0aW9uLmVtYWlsX21lc3NhZ2VzX2xldmVsIixwKSxlbWFpbExldmVsQXdheTooMCx0LmVxdWFsKSgibW9kZWwudXNlcl9vcHRpb24uZW1haWxfbGV2ZWwiLHApLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zYXZlQXR0ck5hbWVzPVsiZW1haWxfbGV2ZWwiLCJlbWFpbF9tZXNzYWdlc19sZXZlbCIsIm1haWxpbmdfbGlzdF9tb2RlIiwibWFpbGluZ19saXN0X21vZGVfZnJlcXVlbmN5IiwiZW1haWxfZGlnZXN0cyIsImVtYWlsX2luX3JlcGx5X3RvIiwiZW1haWxfcHJldmlvdXNfcmVwbGllcyIsImRpZ2VzdF9hZnRlcl9taW51dGVzIiwiaW5jbHVkZV90bDBfaW5fZGlnZXN0cyJdLHRoaXMucHJldmlvdXNSZXBsaWVzT3B0aW9ucz1be25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMuYWx3YXlzIiksdmFsdWU6MH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMudW5sZXNzX2VtYWlsZWQiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfcHJldmlvdXNfcmVwbGllcy5uZXZlciIpLHZhbHVlOjJ9XSx0aGlzLmVtYWlsTGV2ZWxPcHRpb25zPVt7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfbGV2ZWwuYWx3YXlzIiksdmFsdWU6ZH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2xldmVsLm9ubHlfd2hlbl9hd2F5IiksdmFsdWU6cH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2xldmVsLm5ldmVyIiksdmFsdWU6bX1dLHRoaXMuZGlnZXN0RnJlcXVlbmNpZXM9W3tuYW1lOkkxOG4udCgidXNlci5lbWFpbF9kaWdlc3RzLmV2ZXJ5XzMwX21pbnV0ZXMiKSx2YWx1ZTozMH0se25hbWU6STE4bi50KCJ1c2VyLmVtYWlsX2RpZ2VzdHMuZXZlcnlfaG91ciIpLHZhbHVlOjYwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5kYWlseSIpLHZhbHVlOjE0NDB9LHtuYW1lOkkxOG4udCgidXNlci5lbWFpbF9kaWdlc3RzLndlZWtseSIpLHZhbHVlOjEwMDgwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5ldmVyeV9tb250aCIpLHZhbHVlOjQzMjAwfSx7bmFtZTpJMThuLnQoInVzZXIuZW1haWxfZGlnZXN0cy5ldmVyeV9zaXhfbW9udGhzIiksdmFsdWU6MjU5MjAwfV19LGZyZXF1ZW5jeUVzdGltYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLm1haWxpbmdfbGlzdF9wb3N0c19wZXJfZGF5Iik7cmV0dXJuIWV8fGU8Mj9JMThuLnQoInVzZXIubWFpbGluZ19saXN0X21vZGUuZmV3X3Blcl9kYXkiKTpJMThuLnQoInVzZXIubWFpbGluZ19saXN0X21vZGUubWFueV9wZXJfZGF5Iix7ZGFpbHlFbWFpbEVzdGltYXRlOmV9KX0sbWFpbGluZ0xpc3RNb2RlT3B0aW9uczpmdW5jdGlvbigpe3JldHVyblt7bmFtZTp0aGlzLmZyZXF1ZW5jeUVzdGltYXRlLHZhbHVlOjF9LHtuYW1lOkkxOG4udCgidXNlci5tYWlsaW5nX2xpc3RfbW9kZS5pbmRpdmlkdWFsX25vX2VjaG8iKSx2YWx1ZToyfV19LGVtYWlsRnJlcXVlbmN5SW5zdHJ1Y3Rpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVtYWlsX3RpbWVfd2luZG93X21pbnM/STE4bi50KCJ1c2VyLmVtYWlsLmZyZXF1ZW5jeSIse2NvdW50OnRoaXMuc2l0ZVNldHRpbmdzLmVtYWlsX3RpbWVfd2luZG93X21pbnN9KTpJMThuLnQoInVzZXIuZW1haWwuZnJlcXVlbmN5X2ltbWVkaWF0ZWx5Iil9LGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX19fSwiZnJlcXVlbmN5RXN0aW1hdGUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImZyZXF1ZW5jeUVzdGltYXRlIiksYykscihjLCJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIiksYykscihjLCJlbWFpbEZyZXF1ZW5jeUluc3RydWN0aW9ucyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZW1haWxGcmVxdWVuY3lJbnN0cnVjdGlvbnMiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9pbnRlcmZhY2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi90aGVtZS1zZWxlY3RvciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwLG0sZixoLGIsZyx2O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeT17MToibGF0ZXN0IiwyOiJjYXRlZ29yaWVzIiwzOiJ1bnJlYWQiLDQ6Im5ldyIsNToidG9wIn0sXz1bInNtYWxsZXIiLCJub3JtYWwiLCJsYXJnZXIiLCJsYXJnZXN0Il0sdz1bIm5vdGlmaWNhdGlvbnMiLCJjb250ZXh0dWFsIl07ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LCh1PSgwLHMuZGVmYXVsdCkoIm1ha2VUaGVtZURlZmF1bHQiKSxjPSgwLHMuZGVmYXVsdCkoKSxkPSgwLHMuZGVmYXVsdCkoKSxwPSgwLHMuZGVmYXVsdCkoKSxtPSgwLHMuZGVmYXVsdCkoInVzZXJTZWxlY3RhYmxlVGhlbWVzIiksZj0oMCxzLm9ic2VydmVzKSgidGhlbWVJZCIpLGg9KDAscy5kZWZhdWx0KSgibW9kZWwudXNlcl9vcHRpb24udGhlbWVfaWRzIiwidGhlbWVJZCIpLGI9KDAscy5kZWZhdWx0KSgibW9kZWwudXNlcl9vcHRpb24udGV4dF9zaXplIiwidGV4dFNpemUiKSxnPSgwLHMuZGVmYXVsdCkoKSxsKHY9e3NhdmVBdHRyTmFtZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9WyJsb2NhbGUiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZHluYW1pY19mYXZpY29uIiwiZW5hYmxlX3F1b3RpbmciLCJlbmFibGVfZGVmZXIiLCJhdXRvbWF0aWNhbGx5X3VucGluX3RvcGljcyIsImFsbG93X3ByaXZhdGVfbWVzc2FnZXMiLCJob21lcGFnZV9pZCIsImhpZGVfcHJvZmlsZV9hbmRfcHJlc2VuY2UiLCJ0ZXh0X3NpemUiLCJ0aXRsZV9jb3VudF9tb2RlIl07cmV0dXJuIGUmJnQucHVzaCgidGhlbWVfaWRzIiksdH0scHJlZmVyZW5jZXNDb250cm9sbGVyOigwLHQuaW5qZWN0KSgicHJlZmVyZW5jZXMiKSxpc2lQYWQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmlzaVBhZCkoKSYmISgwLGkuaU9TV2l0aFZpc3VhbFZpZXdwb3J0KSgpfSxkaXNhYmxlU2FmYXJpSGFja3M6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCl9LGF2YWlsYWJsZUxvY2FsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnNpdGVTZXR0aW5ncy5hdmFpbGFibGVfbG9jYWxlcyl9LHRleHRTaXplczpmdW5jdGlvbigpe3JldHVybiBfLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpJMThuLnQoInVzZXIudGV4dF9zaXplLiIrZSksdmFsdWU6ZX19KX0saG9tZXBhZ2VJZDooMCxhLmNvbXB1dGVkKSgibW9kZWwudXNlcl9vcHRpb24uaG9tZXBhZ2VfaWQiLCJ1c2VyU2VsZWN0YWJsZUhvbWUuW10iLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwudXNlcl9vcHRpb24uaG9tZXBhZ2VfaWR8fHRoaXMudXNlclNlbGVjdGFibGVIb21lLmZpcnN0T2JqZWN0LnZhbHVlfSksdGl0bGVDb3VudE1vZGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHcubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOkkxOG4udCgidXNlci50aXRsZV9jb3VudF9tb2RlLiIrZSksdmFsdWU6ZX19KX0sdXNlclNlbGVjdGFibGVUaGVtZXM6ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLmxpc3RUaGVtZXMpKHRoaXMuc2l0ZSl9LHNob3dUaGVtZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlJiYxPGUubGVuZ3RofSx0aGVtZUlkQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudGhlbWVJZDsoMCxvLnByZXZpZXdUaGVtZSkoW2VdKX0sc2hvd1RoZW1lU2V0RGVmYXVsdDpmdW5jdGlvbihlLHQpe3JldHVybiFlfHxlWzBdIT09dH0sc2hvd1RleHRTZXREZWZhdWx0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUhPT10fSxob21lQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2l0ZVNldHRpbmdzLnRvcF9tZW51LnNwbGl0KCJ8IilbMF0uc3BsaXQoIiwiKVswXSx0PXlbdGhpcy5nZXQoIm1vZGVsLnVzZXJfb3B0aW9uLmhvbWVwYWdlX2lkIildOygwLGkuc2V0RGVmYXVsdEhvbWVwYWdlKSh0fHxlKX0sdXNlclNlbGVjdGFibGVIb21lOmZ1bmN0aW9uKCl7dmFyIG49e307T2JqZWN0LmtleXMoeSkuZm9yRWFjaChmdW5jdGlvbihlKXtuW3lbZV1dPWV9KTt2YXIgaT1bXTtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MudG9wX21lbnUuc3BsaXQoInwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07dCYmaS5wdXNoKHtuYW1lOkkxOG4udCgiZmlsdGVycy4iK2UrIi50aXRsZSIpLHZhbHVlOk51bWJlcih0KX0pfSksaX0sYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoInNhdmVkIiwhMSk7dmFyIHQ9dGhpcy5tYWtlVGhlbWVEZWZhdWx0O3QmJnRoaXMuc2V0KCJtb2RlbC51c2VyX29wdGlvbi50aGVtZV9pZHMiLFt0aGlzLnRoZW1lSWRdKTt2YXIgbj10aGlzLm1ha2VUZXh0U2l6ZURlZmF1bHQ7cmV0dXJuIG4mJnRoaXMuc2V0KCJtb2RlbC51c2VyX29wdGlvbi50ZXh0X3NpemUiLHRoaXMudGV4dFNpemUpLHRoaXMubW9kZWwuc2F2ZSh0aGlzLnNhdmVBdHRyTmFtZXMpLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgic2F2ZWQiLCEwKSx0PygwLG8uc2V0TG9jYWxUaGVtZSkoW10pOigwLG8uc2V0TG9jYWxUaGVtZSkoW2UudGhlbWVJZF0sZS5nZXQoIm1vZGVsLnVzZXJfb3B0aW9uLnRoZW1lX2tleV9zZXEiKSksbj9lLm1vZGVsLnVwZGF0ZVRleHRTaXplQ29va2llKG51bGwpOmUubW9kZWwudXBkYXRlVGV4dFNpemVDb29raWUoZS50ZXh0U2l6ZSksZS5ob21lQ2hhbmdlZCgpLGUuaXNpUGFkJiYoKDAsaS5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpIT09ZS5kaXNhYmxlU2FmYXJpSGFja3MmJkRpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJzYWZhcmktaGFja3MtZGlzYWJsZWQiLGUuZGlzYWJsZVNhZmFyaUhhY2tzLnRvU3RyaW5nKCkpKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSxzZWxlY3RUZXh0U2l6ZTpmdW5jdGlvbihuKXt2YXIgaT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0O18uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0idGV4dC1zaXplLSIrZTtuPT09ZT9pLmFkZCh0KTppLnJlbW92ZSh0KX0pLERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsImZvcmNlUmVmcmVzaCIpLHRoaXMuc2V0KCJ0ZXh0U2l6ZSIsbil9fX0sInNhdmVBdHRyTmFtZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInNhdmVBdHRyTmFtZXMiKSx2KSxsKHYsImlzaVBhZCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiaXNpUGFkIiksdiksbCh2LCJkaXNhYmxlU2FmYXJpSGFja3MiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImRpc2FibGVTYWZhcmlIYWNrcyIpLHYpLGwodiwiYXZhaWxhYmxlTG9jYWxlcyIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiYXZhaWxhYmxlTG9jYWxlcyIpLHYpLGwodiwidGV4dFNpemVzIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRleHRTaXplcyIpLHYpLGwodiwidGl0bGVDb3VudE1vZGVzIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRpdGxlQ291bnRNb2RlcyIpLHYpLGwodiwidXNlclNlbGVjdGFibGVUaGVtZXMiLFtzLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwidXNlclNlbGVjdGFibGVUaGVtZXMiKSx2KSxsKHYsInNob3dUaGVtZVNlbGVjdG9yIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93VGhlbWVTZWxlY3RvciIpLHYpLGwodiwidGhlbWVJZENoYW5nZWQiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInRoZW1lSWRDaGFuZ2VkIiksdiksbCh2LCJzaG93VGhlbWVTZXREZWZhdWx0IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJzaG93VGhlbWVTZXREZWZhdWx0IiksdiksbCh2LCJzaG93VGV4dFNldERlZmF1bHQiLFtiXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsInNob3dUZXh0U2V0RGVmYXVsdCIpLHYpLGwodiwidXNlclNlbGVjdGFibGVIb21lIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJ1c2VyU2VsZWN0YWJsZUhvbWUiKSx2KSx2KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9ub3RpZmljYXRpb25zIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvcHJlZmVyZW5jZXMtdGFiLWNvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2F2ZUF0dHJOYW1lcz1bIm11dGVkX3VzZXJuYW1lcyIsImlnbm9yZWRfdXNlcm5hbWVzIiwibmV3X3RvcGljX2R1cmF0aW9uX21pbnV0ZXMiLCJhdXRvX3RyYWNrX3RvcGljc19hZnRlcl9tc2VjcyIsIm5vdGlmaWNhdGlvbl9sZXZlbF93aGVuX3JlcGx5aW5nIiwibGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5IiwiYWxsb3dfcHJpdmF0ZV9tZXNzYWdlcyJdLHRoaXMubGlrZU5vdGlmaWNhdGlvbkZyZXF1ZW5jaWVzPVt7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5LmFsd2F5cyIpLHZhbHVlOjB9LHtuYW1lOkkxOG4udCgidXNlci5saWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kuZmlyc3RfdGltZV9hbmRfZGFpbHkiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5LmZpcnN0X3RpbWUiKSx2YWx1ZToyfSx7bmFtZTpJMThuLnQoInVzZXIubGlrZV9ub3RpZmljYXRpb25fZnJlcXVlbmN5Lm5ldmVyIiksdmFsdWU6M31dLHRoaXMuYXV0b1RyYWNrRHVyYXRpb25zPVt7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLm5ldmVyIiksdmFsdWU6LTF9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuaW1tZWRpYXRlbHkiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzMwX3NlY29uZHMiKSx2YWx1ZTozZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfMV9taW51dGUiKSx2YWx1ZTo2ZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfMl9taW51dGVzIiksdmFsdWU6MTJlNH0se25hbWU6STE4bi50KCJ1c2VyLmF1dG9fdHJhY2tfb3B0aW9ucy5hZnRlcl8zX21pbnV0ZXMiKSx2YWx1ZToxOGU0fSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzRfbWludXRlcyIpLHZhbHVlOjI0ZTR9LHtuYW1lOkkxOG4udCgidXNlci5hdXRvX3RyYWNrX29wdGlvbnMuYWZ0ZXJfNV9taW51dGVzIiksdmFsdWU6M2U1fSx7bmFtZTpJMThuLnQoInVzZXIuYXV0b190cmFja19vcHRpb25zLmFmdGVyXzEwX21pbnV0ZXMiKSx2YWx1ZTo2ZTV9XSx0aGlzLm5vdGlmaWNhdGlvbkxldmVsc0ZvclJlcGx5aW5nPVt7bmFtZTpJMThuLnQoInRvcGljLm5vdGlmaWNhdGlvbnMud2F0Y2hpbmcudGl0bGUiKSx2YWx1ZTppLk5vdGlmaWNhdGlvbkxldmVscy5XQVRDSElOR30se25hbWU6STE4bi50KCJ0b3BpYy5ub3RpZmljYXRpb25zLnRyYWNraW5nLnRpdGxlIiksdmFsdWU6aS5Ob3RpZmljYXRpb25MZXZlbHMuVFJBQ0tJTkd9LHtuYW1lOkkxOG4udCgidG9waWMubm90aWZpY2F0aW9ucy5yZWd1bGFyLnRpdGxlIiksdmFsdWU6aS5Ob3RpZmljYXRpb25MZXZlbHMuUkVHVUxBUn1dLHRoaXMuY29uc2lkZXJOZXdUb3BpY09wdGlvbnM9W3tuYW1lOkkxOG4udCgidXNlci5uZXdfdG9waWNfZHVyYXRpb24ubm90X3ZpZXdlZCIpLHZhbHVlOi0xfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzFfZGF5IiksdmFsdWU6MTQ0MH0se25hbWU6STE4bi50KCJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5hZnRlcl8yX2RheXMiKSx2YWx1ZToyODgwfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzFfd2VlayIpLHZhbHVlOjEwMDgwfSx7bmFtZTpJMThuLnQoInVzZXIubmV3X3RvcGljX2R1cmF0aW9uLmFmdGVyXzJfd2Vla3MiKSx2YWx1ZToyMDE2MH0se25hbWU6STE4bi50KCJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5sYXN0X2hlcmUiKSx2YWx1ZTotMn1dfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5tb2RlbC5zYXZlKHRoaXMuc2F2ZUF0dHJOYW1lcykudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2gocy5wb3B1cEFqYXhFcnJvcil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvcHJvZmlsZSIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9wcmVmZXJlbmNlcy10YWItY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCJdLGZ1bmN0aW9uKGUscyxpLHQsbixvLHIsYSxsLHUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoby5kZWZhdWx0LChkPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnVzZXJfZmllbGRzLkBlYWNoLnZhbHVlIikscD0oMCxuLmRlZmF1bHQpKCJtb2RlbC5jYW5fY2hhbmdlX2JpbyIpLGMobT17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJiaW9fcmF3Iiwid2Vic2l0ZSIsImxvY2F0aW9uIiwiY3VzdG9tX2ZpZWxkcyIsInVzZXJfZmllbGRzIiwicHJvZmlsZV9iYWNrZ3JvdW5kX3VwbG9hZF91cmwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIsImRhdGVfb2ZfYmlydGgiLCJ0aW1lem9uZSJdfSx1c2VyRmllbGRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKTtpZighKDAscy5pc0VtcHR5KShlKSl7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnVzZXJfZmllbGRzIik7cmV0dXJuIHRoaXMuZ2V0KCJjdXJyZW50VXNlci5zdGFmZiIpfHwoZT1lLmZpbHRlckJ5KCJlZGl0YWJsZSIsITApKSxlLnNvcnRCeSgicG9zaXRpb24iKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9bj9uW2UuZ2V0KCJpZCIpLnRvU3RyaW5nKCldOm51bGw7cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSl9fSxjYW5DaGFuZ2VCaW86ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGFjdGlvbnM6e3Nob3dGZWF0dXJlZFRvcGljTW9kYWw6ZnVuY3Rpb24oKXsoMCx1LmRlZmF1bHQpKCJmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUiLHttb2RlbDp0aGlzLm1vZGVsLHRpdGxlOiJ1c2VyLmZlYXR1cmVfdG9waWNfb25fcHJvZmlsZS50aXRsZSJ9KX0sY2xlYXJGZWF0dXJlZFRvcGljRnJvbVByb2ZpbGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2Jvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLmNsZWFyLndhcm5pbmciKSxmdW5jdGlvbihlKXtlJiYoMCxsLmFqYXgpKCIvdS8iK3QubW9kZWwudXNlcm5hbWUrIi9jbGVhci1mZWF0dXJlZC10b3BpYyIse3R5cGU6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5tb2RlbC5zZXQoImZlYXR1cmVkX3RvcGljIixudWxsKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpfSl9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzYXZlZCIsITEpO3ZhciB0LG49dGhpcy5tb2RlbCxpPXRoaXMudXNlckZpZWxkcztyZXR1cm4oMCxzLmlzRW1wdHkpKGkpfHwodD1uLmdldCgidXNlcl9maWVsZHMiKSwoMCxzLmlzRW1wdHkpKHQpfHxpLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlLmdldCgiZmllbGQuaWQiKS50b1N0cmluZygpXT1lLmdldCgidmFsdWUiKX0pKSxuLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7KDAsYS5jb29rQXN5bmMpKG4uZ2V0KCJiaW9fcmF3IikpLnRoZW4oZnVuY3Rpb24oKXtuLnNldCgiYmlvX2Nvb2tlZCIpLGUuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKX19fSwidXNlckZpZWxkcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwidXNlckZpZWxkcyIpLG0pLGMobSwiY2FuQ2hhbmdlQmlvIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYW5DaGFuZ2VCaW8iKSxtKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy9zZWNvbmQtZmFjdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChkPSgwLGkuZGVmYXVsdCkoImN1cnJlbnRVc2VyIiksYyhwPXtsb2FkaW5nOiExLGRpcnR5OiExLHJlc2V0UGFzc3dvcmRMb2FkaW5nOiExLHJlc2V0UGFzc3dvcmRQcm9ncmVzczoiIixwYXNzd29yZDpudWxsLGVycm9yTWVzc2FnZTpudWxsLG5ld1VzZXJuYW1lOm51bGwsYmFja3VwRW5hYmxlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCIpLHNlY29uZEZhY3Rvck1ldGhvZDpsLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLHRvdHBzOm51bGwsbG9hZGVkOigwLHQuYW5kKSgic2Vjb25kRmFjdG9ySW1hZ2UiLCJzZWNvbmRGYWN0b3JLZXkiKSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJ0b3RwcyIsW10pfSxkaXNwbGF5T0F1dGhXYXJuaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA8KDAsYS5maW5kQWxsKSgpLmxlbmd0aH0sc2hvd0VuZm9yY2VkTm90aWNlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmVuZm9yY2VkU2Vjb25kRmFjdG9yfSxoYW5kbGVFcnJvcjpmdW5jdGlvbihlKXt2YXIgdDtlLmpxWEhSJiYoZT1lLmpxWEhSKSwiaW52YWxpZF9hY2Nlc3MiPT09ZS5yZXNwb25zZUpTT04uZXJyb3JfdHlwZT8odD10aGlzLm1vZGVsLnVzZXJuYW1lLnRvTG93ZXJDYXNlKCksby5kZWZhdWx0LnJlZGlyZWN0VG8oKDAsby51c2VyUGF0aCkodCsiL3ByZWZlcmVuY2VzL3NlY29uZC1mYWN0b3IiKSkpOigwLHIucG9wdXBBamF4RXJyb3IpKGUpfSxsb2FkU2Vjb25kRmFjdG9yczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ITEhPT10aGlzLmRpcnR5JiYodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLmxvYWRTZWNvbmRGYWN0b3JDb2Rlcyh0aGlzLnBhc3N3b3JkKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQuc2V0UHJvcGVydGllcyh7ZXJyb3JNZXNzYWdlOm51bGwsbG9hZGVkOiEwLHRvdHBzOmUudG90cHMsc2VjdXJpdHlfa2V5czplLnNlY3VyaXR5X2tleXMscGFzc3dvcmQ6bnVsbCxkaXJ0eTohMX0pLHQuc2V0KCJtb2RlbC5zZWNvbmRfZmFjdG9yX2VuYWJsZWQiLGUudG90cHMmJjA8ZS50b3Rwcy5sZW5ndGh8fGUuc2VjdXJpdHlfa2V5cyYmMDxlLnNlY3VyaXR5X2tleXMubGVuZ3RoKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5oYW5kbGVFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImRpcnR5IiwhMCl9LGFjdGlvbnM6e2NvbmZpcm1QYXNzd29yZDpmdW5jdGlvbigpe3RoaXMucGFzc3dvcmQmJih0aGlzLm1hcmtEaXJ0eSgpLHRoaXMubG9hZFNlY29uZEZhY3RvcnMoKSx0aGlzLnNldCgicGFzc3dvcmQiLG51bGwpKX0scmVzZXRQYXNzd29yZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7cmVzZXRQYXNzd29yZExvYWRpbmc6ITAscmVzZXRQYXNzd29yZFByb2dyZXNzOiIifSksdGhpcy5tb2RlbC5jaGFuZ2VQYXNzd29yZCgpLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmVzZXRQYXNzd29yZFByb2dyZXNzIixJMThuLnQoInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnN1Y2Nlc3MiKSl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJyZXNldFBhc3N3b3JkTG9hZGluZyIsITEpfSl9LGRpc2FibGVBbGxTZWNvbmRGYWN0b3JzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxvYWRpbmd8fGJvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuc2Vjb25kX2ZhY3Rvci5kaXNhYmxlX2NvbmZpcm0iKSxJMThuLnQoImNhbmNlbCIpLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yLmRpc2FibGUiKSxmdW5jdGlvbihlKXtlJiZ0Lm1vZGVsLmRpc2FibGVBbGxTZWNvbmRGYWN0b3JzKCkudGhlbihmdW5jdGlvbigpe3ZhciBlPXQubW9kZWwudXNlcm5hbWUudG9Mb3dlckNhc2UoKTtvLmRlZmF1bHQucmVkaXJlY3RUbygoMCxvLnVzZXJQYXRoKShlKyIvcHJlZmVyZW5jZXMiKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5oYW5kbGVFcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfSl9LGNyZWF0ZVRvdHA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOygwLHUuZGVmYXVsdCkoInNlY29uZC1mYWN0b3ItYWRkLXRvdHAiLHttb2RlbDp0aGlzLm1vZGVsLHRpdGxlOiJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5hZGQifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxjcmVhdGVTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsdS5kZWZhdWx0KSgic2Vjb25kLWZhY3Rvci1hZGQtc2VjdXJpdHkta2V5Iix7bW9kZWw6dGhpcy5tb2RlbCx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5hZGQifSkuc2V0UHJvcGVydGllcyh7b25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxlZGl0U2VjdXJpdHlLZXk6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWVkaXQtc2VjdXJpdHkta2V5Iix7bW9kZWw6ZSx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5lZGl0In0pLnNldFByb3BlcnRpZXMoe3VzZXI6dGhpcy5tb2RlbCxvbkNsb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIHQubG9hZFNlY29uZEZhY3RvcnMoKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya0RpcnR5KCl9LG9uRXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGFuZGxlRXJyb3IoZSl9fSl9LGVkaXRTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWVkaXQiLHttb2RlbDplLHRpdGxlOiJ1c2VyLnNlY29uZF9mYWN0b3IuZWRpdF90aXRsZSJ9KS5zZXRQcm9wZXJ0aWVzKHt1c2VyOnRoaXMubW9kZWwsb25DbG9zZTpmdW5jdGlvbigpe3JldHVybiB0LmxvYWRTZWNvbmRGYWN0b3JzKCl9LG1hcmtEaXJ0eTpmdW5jdGlvbigpe3JldHVybiB0Lm1hcmtEaXJ0eSgpfSxvbkVycm9yOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhhbmRsZUVycm9yKGUpfX0pfSxlZGl0U2Vjb25kRmFjdG9yQmFja3VwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCx1LmRlZmF1bHQpKCJzZWNvbmQtZmFjdG9yLWJhY2t1cC1lZGl0Iix7bW9kZWw6dGhpcy5tb2RlbCx0aXRsZToidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC50aXRsZSJ9KS5zZXRQcm9wZXJ0aWVzKHtvbkNsb3NlOmZ1bmN0aW9uKCl7cmV0dXJuIHQubG9hZFNlY29uZEZhY3RvcnMoKX0sbWFya0RpcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya0RpcnR5KCl9LG9uRXJyb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGFuZGxlRXJyb3IoZSl9fSl9fX0sImRpc3BsYXlPQXV0aFdhcm5pbmciLFtpLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZGlzcGxheU9BdXRoV2FybmluZyIpLHApLGMocCwic2hvd0VuZm9yY2VkTm90aWNlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93RW5mb3JjZWROb3RpY2UiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy90YWdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvcHJlZmVyZW5jZXMtdGFiLWNvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgbyxyLGEsbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKG89KDAsdC5kZWZhdWx0KSgibW9kZWwud2F0Y2hlZF90YWdzLltdIiwibW9kZWwud2F0Y2hpbmdfZmlyc3RfcG9zdF90YWdzLltdIiwibW9kZWwudHJhY2tlZF90YWdzLltdIiwibW9kZWwubXV0ZWRfdGFncy5bXSIpLGE9cj17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF90YWdzIiwidHJhY2tlZF90YWdzIiwid2F0Y2hlZF90YWdzIiwid2F0Y2hpbmdfZmlyc3RfcG9zdF90YWdzIl19LHNlbGVjdGVkVGFnczpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm5bXS5jb25jYXQoZSx0LG4saSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSl9LGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX19fSxsPSJzZWxlY3RlZFRhZ3MiLHU9W29dLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzZWxlY3RlZFRhZ3MiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcHJlZmVyZW5jZXMvdXNlcm5hbWUiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsbix0LGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHMub2JzZXJ2ZXMpKCJuZXdVc2VybmFtZSIpLGQ9KDAscy5kZWZhdWx0KSgic2F2aW5nIiksdShwPXt0YWtlbjohMSxzYXZpbmc6ITEsZXJyb3JNZXNzYWdlOm51bGwsbmV3VXNlcm5hbWU6bnVsbCxtYXhMZW5ndGg6KDAsby5zZXR0aW5nKSgibWF4X3VzZXJuYW1lX2xlbmd0aCIpLG1pbkxlbmd0aDooMCxvLnNldHRpbmcpKCJtaW5fdXNlcm5hbWVfbGVuZ3RoIiksbmV3VXNlcm5hbWVFbXB0eTooMCx0LmVtcHR5KSgibmV3VXNlcm5hbWUiKSxzYXZlRGlzYWJsZWQ6KDAsdC5vcikoInNhdmluZyIsIm5ld1VzZXJuYW1lRW1wdHkiLCJ0YWtlbiIsInVuY2hhbmdlZCIsImVycm9yTWVzc2FnZSIpLHVuY2hhbmdlZDooMCxvLnByb3BlcnR5RXF1YWwpKCJuZXdVc2VybmFtZSIsInVzZXJuYW1lIiksY2hlY2tUYWtlbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm5ld1VzZXJuYW1lO2lmKGUmJmUubGVuZ3RoPHRoaXMubWluTGVuZ3RoKXRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLEkxOG4udCgidXNlci5uYW1lLnRvb19zaG9ydCIpKTtlbHNle2lmKHRoaXMuc2V0KCJ0YWtlbiIsITEpLHRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLCgwLG4uaXNFbXB0eSkodGhpcy5uZXdVc2VybmFtZSkpcmV0dXJuO2lmKHRoaXMudW5jaGFuZ2VkKXJldHVybjtsLmRlZmF1bHQuY2hlY2tVc2VybmFtZShlLHZvaWQgMCx0aGlzLmdldCgibW9kZWwuaWQiKSkudGhlbihmdW5jdGlvbihlKXtlLmVycm9ycz90LnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9ycy5qb2luKCIgIikpOiExPT09ZS5hdmFpbGFibGUmJnQuc2V0KCJ0YWtlbiIsITApfSl9fSxzYXZlQnV0dG9uVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gZT9JMThuLnQoInNhdmluZyIpOkkxOG4udCgidXNlci5jaGFuZ2UiKX0sYWN0aW9uczp7Y2hhbmdlVXNlcm5hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLnNhdmVEaXNhYmxlZClyZXR1cm4gYm9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5jaGFuZ2VfdXNlcm5hbWUuY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2UmJih0LnNldCgic2F2aW5nIiwhMCksdC5tb2RlbC5jaGFuZ2VVc2VybmFtZSh0Lm5ld1VzZXJuYW1lKS50aGVuKGZ1bmN0aW9uKCl7ci5kZWZhdWx0LnJlZGlyZWN0VG8oKDAsci51c2VyUGF0aCkodC5uZXdVc2VybmFtZS50b0xvd2VyQ2FzZSgpKyIvcHJlZmVyZW5jZXMiKSl9KS5jYXRjaChhLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJzYXZpbmciLCExKX0pKX0pfX19LCJjaGVja1Rha2VuIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjaGVja1Rha2VuIikscCksdShwLCJzYXZlQnV0dG9uVGV4dCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2F2ZUJ1dHRvblRleHQiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9wcmVmZXJlbmNlcy91c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3ByZWZlcmVuY2VzLXRhYi1jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYShsPXtpZ25vcmVkVXNlcm5hbWVzOigwLG4uYWxpYXMpKCJtb2RlbC5pZ25vcmVkX3VzZXJuYW1lcyIpLHVzZXJJc01lbWJlck9yQWJvdmU6KDAsbi5ndGUpKCJtb2RlbC50cnVzdF9sZXZlbCIsMiksaWdub3JlZEVuYWJsZWQ6KDAsbi5vcikoInVzZXJJc01lbWJlck9yQWJvdmUiLCJtb2RlbC5zdGFmZiIpLG11dGVkVXNlcm5hbWVzOigwLGkuY29tcHV0ZWQpKCJtb2RlbC5tdXRlZF91c2VybmFtZXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsLm11dGVkX3VzZXJuYW1lcztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPWUuc3BsaXQoIiwiKS5maWx0ZXIoQm9vbGVhbikpLCgwLHQubWFrZUFycmF5KShlKS51bmlxKCl9fSksaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNhdmVBdHRyTmFtZXM9WyJtdXRlZF91c2VybmFtZXMiLCJpZ25vcmVkX3VzZXJuYW1lcyJdfSxvbkNoYW5nZU11dGVkVXNlcm5hbWVzOmZ1bmN0aW9uKGUpe3RoaXMubW9kZWwuc2V0KCJtdXRlZF91c2VybmFtZXMiLGUudW5pcSgpLmpvaW4oIiwiKSl9LHNhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnNldCgic2F2ZWQiLCExKSx0aGlzLm1vZGVsLnNhdmUodGhpcy5zYXZlQXR0ck5hbWVzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goci5wb3B1cEFqYXhFcnJvcil9fSwib25DaGFuZ2VNdXRlZFVzZXJuYW1lcyIsW2kuYWN0aW9uXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIm9uQ2hhbmdlTXV0ZWRVc2VybmFtZXMiKSxsKSxhKGwsInNhdmUiLFtpLmFjdGlvbl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJzYXZlIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcmF3LWVtYWlsIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbW9kZWxzL3Bvc3QiLCJhZG1pbi9tb2RlbHMvaW5jb21pbmctZW1haWwiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3Jhd0VtYWlsOiIiLHRleHRQYXJ0OiIiLGh0bWxQYXJ0OiIiLHRhYjoicmF3IixzaG93UmF3RW1haWw6KDAsdC5lcXVhbCkoInRhYiIsInJhdyIpLHNob3dUZXh0UGFydDooMCx0LmVxdWFsKSgidGFiIiwidGV4dF9wYXJ0Iiksc2hvd0h0bWxQYXJ0OigwLHQuZXF1YWwpKCJ0YWIiLCJodG1sX3BhcnQiKSxvblNob3c6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImRpc3BsYXlSYXciKX0sbG9hZFJhd0VtYWlsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHMuZGVmYXVsdC5sb2FkUmF3RW1haWwoZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtyYXdFbWFpbDplLnJhd19lbWFpbCx0ZXh0UGFydDplLnRleHRfcGFydCxodG1sUGFydDplLmh0bWxfcGFydH0pfSl9LGxvYWRJbmNvbWluZ1Jhd0VtYWlsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIG8uZGVmYXVsdC5sb2FkUmF3RW1haWwoZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRQcm9wZXJ0aWVzKHtyYXdFbWFpbDplLnJhd19lbWFpbCx0ZXh0UGFydDplLnRleHRfcGFydCxodG1sUGFydDplLmh0bWxfcGFydH0pfSl9LGFjdGlvbnM6e2Rpc3BsYXlSYXc6ZnVuY3Rpb24oKXt0aGlzLnNldCgidGFiIiwicmF3Iil9LGRpc3BsYXlUZXh0UGFydDpmdW5jdGlvbigpe3RoaXMuc2V0KCJ0YWIiLCJ0ZXh0X3BhcnQiKX0sZGlzcGxheUh0bWxQYXJ0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRhYiIsImh0bWxfcGFydCIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3JlbmFtZS10YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL21peGlucy9idWZmZXJlZC1jb250ZW50IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQscy5kZWZhdWx0LChyPSgwLHQuZGVmYXVsdCkoImJ1ZmZlcmVkLmlkIiwiaWQiKSxsPWE9e3JlbmFtZURpc2FibGVkOmZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IFJlZ0V4cCh0aGlzLnNpdGUudGFnc19maWx0ZXJfcmVnZXhwLCJnIiksaT1lP2UucmVwbGFjZShuLCIiKS50cmltKCk6IiI7cmV0dXJuIDA9PT1pLmxlbmd0aHx8aT09PXR9LGFjdGlvbnM6e3BlcmZvcm1SZW5hbWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubW9kZWwudXBkYXRlKHtpZDp0aGlzLmdldCgiYnVmZmVyZWQuaWQiKX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZW5kKCJjbG9zZU1vZGFsIiksZS5yZXNwb25zZUpzb24udGFnP3QudHJhbnNpdGlvblRvUm91dGUoInRhZ3Muc2hvdyIsZS5yZXNwb25zZUpzb24udGFnLmlkKTp0LmZsYXNoKCgwLG8uZXh0cmFjdEVycm9yKShlLnJlc3BvbnNlSnNvbi5lcnJvcnNbMF0pLCJlcnJvciIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhc2goKDAsby5leHRyYWN0RXJyb3IpKGUpLCJlcnJvciIpfSl9fX0sdT0icmVuYW1lRGlzYWJsZWQiLGM9W3JdLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJyZW5hbWVEaXNhYmxlZCIpLHA9YSxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChsLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHUsbSksbT1udWxsKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9yZW9yZGVyLWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiLCJAZW1iZXIvb2JqZWN0L3Byb3h5IiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbT13aW5kb3cuQnVmZmVyZWRQcm94eTtlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsbi5kZWZhdWx0LChjPSgwLGwuZGVmYXVsdCkoInNpdGUuY2F0ZWdvcmllcyIpLGQ9KDAsbC5vbikoImluaXQiKSx1KHA9e2luaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5jYXRlZ29yaWVzU29ydGluZz1bInBvc2l0aW9uIl19LGNhdGVnb3JpZXNCdWZmZXJlZDpmdW5jdGlvbihlKXt2YXIgdD1pLmRlZmF1bHQuZXh0ZW5kKG0pO3JldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5jcmVhdGUoe2NvbnRlbnQ6ZX0pfSl9LGNhdGVnb3JpZXNPcmRlcmVkOigwLHQuc29ydCkoImNhdGVnb3JpZXNCdWZmZXJlZCIsImNhdGVnb3JpZXNTb3J0aW5nIikscmVvcmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7IWZ1bmN0aW9uIHQobixpLHMpe3JldHVybiBlLmNhdGVnb3JpZXNPcmRlcmVkLmZvckVhY2goZnVuY3Rpb24oZSl7KG51bGwhPT1ufHxlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikpJiZlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikhPT1ufHwoZS5zZXRQcm9wZXJ0aWVzKHtkZXB0aDppLHBvc2l0aW9uOnMrK30pLHM9dChlLmdldCgiaWQiKSxpKzEscykpfSksc30obnVsbCwwLDApLHRoaXMuY2F0ZWdvcmllc0J1ZmZlcmVkLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoImhhc0J1ZmZlcmVkQ2hhbmdlcyIpJiZlLmFwcGx5QnVmZmVyZWRDaGFuZ2VzKCl9KSx0aGlzLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJjYXRlZ29yaWVzQnVmZmVyZWQiKX0sbW92ZTpmdW5jdGlvbih0LG4pe3ZhciBlLGk9dm9pZCAwOyhpPS0xPT09bj90aGlzLmNhdGVnb3JpZXNPcmRlcmVkLnJldmVyc2UoKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldCgicGFyZW50X2NhdGVnb3J5X2lkIik9PT1lLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikmJmUuZ2V0KCJwb3NpdGlvbiIpPHQuZ2V0KCJwb3NpdGlvbiIpfSk6MT09PW4/dGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldCgicGFyZW50X2NhdGVnb3J5X2lkIik9PT1lLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIikmJmUuZ2V0KCJwb3NpdGlvbiIpPnQuZ2V0KCJwb3NpdGlvbiIpfSk6dGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicG9zaXRpb24iKT09PXQuZ2V0KCJwb3NpdGlvbiIpK259KSk/dC5nZXQoImlkIikhPT1pLmdldCgiaWQiKSYmKGU9dC5nZXQoInBvc2l0aW9uIiksdC5zZXQoInBvc2l0aW9uIixpLmdldCgicG9zaXRpb24iKSksaS5zZXQoInBvc2l0aW9uIixlKSk6bjwwP3Quc2V0KCJwb3NpdGlvbiIsLTEpOjA8biYmdC5zZXQoInBvc2l0aW9uIix0aGlzLmNhdGVnb3JpZXNPcmRlcmVkLmxlbmd0aCksdGhpcy5yZW9yZGVyKCl9LGFjdGlvbnM6e2NoYW5nZTpmdW5jdGlvbihlLHQpe3ZhciBuPXBhcnNlSW50KHQudGFyZ2V0LnZhbHVlLDEwKSxuPU1hdGgubWluKE1hdGgubWF4KG4sMCksdGhpcy5jYXRlZ29yaWVzT3JkZXJlZC5sZW5ndGgtMSk7dGhpcy5tb3ZlKGUsbi1lLmdldCgicG9zaXRpb24iKSl9LG1vdmVVcDpmdW5jdGlvbihlKXt0aGlzLm1vdmUoZSwtMSl9LG1vdmVEb3duOmZ1bmN0aW9uKGUpe3RoaXMubW92ZShlLDEpfSxzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnJlb3JkZXIoKTt2YXIgdD17fTt0aGlzLmNhdGVnb3JpZXNCdWZmZXJlZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS5nZXQoImlkIildPWUuZ2V0KCJwb3NpdGlvbiIpfSksKDAsby5hamF4KSgiL2NhdGVnb3JpZXMvcmVvcmRlciIse3R5cGU6IlBPU1QiLGRhdGE6e21hcHBpbmc6SlNPTi5zdHJpbmdpZnkodCl9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLnNlbmQoImNsb3NlTW9kYWwiKX0pLmNhdGNoKGEucG9wdXBBamF4RXJyb3IpfX19LCJjYXRlZ29yaWVzQnVmZmVyZWQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhdGVnb3JpZXNCdWZmZXJlZCIpLHApLHUocCwicmVvcmRlciIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwicmVvcmRlciIpLHApLHApKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3JlcXVlc3QtZ3JvdXAtbWVtYmVyc2hpcC1mb3JtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZChhLmRlZmF1bHQsKHU9KDAsdC5kZWZhdWx0KSgibW9kZWwubmFtZSIpLGM9KDAsdC5kZWZhdWx0KSgibG9hZGluZyIsInJlYXNvbiIpLGwoZD17bG9hZGluZzohMSxyZWFzb246KDAsaS5hbGlhcykoIm1vZGVsLm1lbWJlcnNoaXBfcmVxdWVzdF90ZW1wbGF0ZSIpLHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3QudGl0bGUiLHtncm91cF9uYW1lOmV9KX0sZGlzYWJsZVN1Ym1pdDpmdW5jdGlvbihlLHQpe3JldHVybiBlfHwoMCxuLmlzRW1wdHkpKHQpfSxhY3Rpb25zOntyZXF1ZXN0TWVtYmVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmN1cnJlbnRVc2VyPyh0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwucmVxdWVzdE1lbWJlcnNoaXAodGhpcy5yZWFzb24pLnRoZW4oZnVuY3Rpb24oZSl7ci5kZWZhdWx0LnJvdXRlVG8oZS5yZWxhdGl2ZV91cmwpfSkuY2F0Y2goby5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe2Uuc2V0KCJsb2FkaW5nIiwhMSl9KSk6dGhpcy5fc2hvd0xvZ2luTW9kYWwoKX19fSwidGl0bGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRpdGxlIiksZCksbChkLCJkaXNhYmxlU3VibWl0IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJkaXNhYmxlU3VibWl0IiksZCksZCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvcmV2aWV3LWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGVUeXBlcyIpLG89KDAsdC5kZWZhdWx0KSgiZmlsdGVyc0V4cGFuZGVkIiksaShyPXtxdWVyeVBhcmFtczpbInByaW9yaXR5IiwidHlwZSIsInN0YXR1cyIsImNhdGVnb3J5X2lkIiwidG9waWNfaWQiLCJ1c2VybmFtZSIsImZyb21fZGF0ZSIsInRvX2RhdGUiLCJzb3J0X29yZGVyIiwiYWRkaXRpb25hbF9maWx0ZXJzIl0sdHlwZTpudWxsLHN0YXR1czoicGVuZGluZyIscHJpb3JpdHk6ImxvdyIsY2F0ZWdvcnlfaWQ6bnVsbCxyZXZpZXdhYmxlczpudWxsLHRvcGljX2lkOm51bGwsZmlsdGVyc0V4cGFuZGVkOiExLHVzZXJuYW1lOiIiLGZyb21fZGF0ZTpudWxsLHRvX2RhdGU6bnVsbCxzb3J0X29yZGVyOiJwcmlvcml0eSIsYWRkaXRpb25hbF9maWx0ZXJzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgicHJpb3JpdHkiLHRoaXMuc2l0ZVNldHRpbmdzLnJldmlld2FibGVfZGVmYXVsdF92aXNpYmlsaXR5KSx0aGlzLnNldCgiZmlsdGVyc0V4cGFuZGVkIiwhdGhpcy5zaXRlLm1vYmlsZVZpZXcpfSxhbGxUeXBlczpmdW5jdGlvbigpe3JldHVybih0aGlzLnJldmlld2FibGVUeXBlc3x8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZSxuYW1lOkkxOG4udCgicmV2aWV3LnR5cGVzLiIrZS51bmRlcnNjb3JlKCkrIi50aXRsZSIpfX0pfSxwcmlvcml0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuWyJsb3ciLCJtZWRpdW0iLCJoaWdoIl0ubWFwKGZ1bmN0aW9uKGUpe3JldHVybntpZDplLG5hbWU6STE4bi50KCJyZXZpZXcuZmlsdGVycy5wcmlvcml0eS4iK2UpfX0pfSxzb3J0T3JkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuWyJwcmlvcml0eSIsInByaW9yaXR5X2FzYyIsImNyZWF0ZWRfYXQiLCJjcmVhdGVkX2F0X2FzYyJdLm1hcChmdW5jdGlvbihlKXtyZXR1cm57aWQ6ZSxuYW1lOkkxOG4udCgicmV2aWV3LmZpbHRlcnMub3JkZXJzLiIrZSl9fSl9LHN0YXR1c2VzOmZ1bmN0aW9uKCl7cmV0dXJuWyJwZW5kaW5nIiwiYXBwcm92ZWQiLCJyZWplY3RlZCIsImRlbGV0ZWQiLCJpZ25vcmVkIiwicmV2aWV3ZWQiLCJhbGwiXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2lkOmUsbmFtZTpJMThuLnQoInJldmlldy5zdGF0dXNlcy4iK2UrIi50aXRsZSIpfX0pfSx0b2dnbGVGaWx0ZXJzSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iY2hldnJvbi11cCI6ImNoZXZyb24tZG93biJ9LHNldFJhbmdlOmZ1bmN0aW9uKGUpe2UuZnJvbSYmdGhpcy5zZXQoImZyb20iLG5ldyBEYXRlKGUuZnJvbSkudG9JU09TdHJpbmcoKS5zcGxpdCgiVCIpWzBdKSxlLnRvJiZ0aGlzLnNldCgidG8iLG5ldyBEYXRlKGUudG8pLnRvSVNPU3RyaW5nKCkuc3BsaXQoIlQiKVswXSl9LGFjdGlvbnM6e3JlbW92ZTpmdW5jdGlvbih0KXt2YXIgZTt0JiYoZT10aGlzLnJldmlld2FibGVzLnJlamVjdChmdW5jdGlvbihlKXtyZXR1cm4tMSE9PXQuaW5kZXhPZihlLmlkKX0pLHRoaXMuc2V0KCJyZXZpZXdhYmxlcyIsZSkpfSxyZXNldFRvcGljOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRvcGljX2lkIixudWxsKSx0aGlzLnNlbmQoInJlZnJlc2hSb3V0ZSIpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHt0eXBlOnRoaXMuZmlsdGVyVHlwZSxwcmlvcml0eTp0aGlzLmZpbHRlclByaW9yaXR5LHN0YXR1czp0aGlzLmZpbHRlclN0YXR1cyxjYXRlZ29yeV9pZDp0aGlzLmZpbHRlckNhdGVnb3J5SWQsdXNlcm5hbWU6dGhpcy5maWx0ZXJVc2VybmFtZSxmcm9tX2RhdGU6dGhpcy5maWx0ZXJGcm9tRGF0ZSx0b19kYXRlOnRoaXMuZmlsdGVyVG9EYXRlLHNvcnRfb3JkZXI6dGhpcy5maWx0ZXJTb3J0T3JkZXIsYWRkaXRpb25hbF9maWx0ZXJzOkpTT04uc3RyaW5naWZ5KHRoaXMuYWRkaXRpb25hbEZpbHRlcnMpfSksdGhpcy5zZW5kKCJyZWZyZXNoUm91dGUiKX0sbG9hZE1vcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXZpZXdhYmxlcy5sb2FkTW9yZSgpfSx0b2dnbGVGaWx0ZXJzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZmlsdGVyc0V4cGFuZGVkIil9fX0sImFsbFR5cGVzIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJhbGxUeXBlcyIpLHIpLGkociwicHJpb3JpdGllcyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJwcmlvcml0aWVzIiksciksaShyLCJzb3J0T3JkZXJzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInNvcnRPcmRlcnMiKSxyKSxpKHIsInN0YXR1c2VzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInN0YXR1c2VzIiksciksaShyLCJ0b2dnbGVGaWx0ZXJzSWNvbiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwidG9nZ2xlRmlsdGVyc0ljb24iKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9yZXZpZXctc2V0dGluZ3MiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2F2aW5nOiExLHNhdmVkOiExLGFjdGlvbnM6e3NhdmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307dGhpcy5nZXQoInNldHRpbmdzLnJldmlld2FibGVfc2NvcmVfdHlwZXMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS5pZF09cGFyc2VGbG9hdChlLnJldmlld2FibGVfcHJpb3JpdHkpfSksdGhpcy5zZXQoInNhdmluZyIsITApLCgwLG4uYWpheCkoIi9yZXZpZXcvc2V0dGluZ3MiLHttZXRob2Q6IlBVVCIsZGF0YTp7cmV2aWV3YWJsZV9wcmlvcml0aWVzOnR9fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJzYXZlZCIsITApfSkuY2F0Y2goaS5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBlLnNldCgic2F2aW5nIiwhMSl9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9zZWNvbmQtZmFjdG9yLWFkZC1zZWN1cml0eS1rZXkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL2xpYi93ZWJhdXRobiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxsb2FkaW5nOiEwLHNlY3VyaXR5S2V5TmFtZTpJMThuLnQoInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkuZGVmYXVsdF9uYW1lIiksd2ViYXV0aG5VbnN1cHBvcnRlZDohKDAsaS5pc1dlYmF1dGhuU3VwcG9ydGVkKSgpfSksdGhpcy5tb2RlbC5yZXF1ZXN0U2VjdXJpdHlLZXlDaGFsbGVuZ2UoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6dC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6KDAsaS5pc1dlYmF1dGhuU3VwcG9ydGVkKSgpP251bGw6STE4bi50KCJsb2dpbi5zZWN1cml0eV9rZXlfc3VwcG9ydF9taXNzaW5nX2Vycm9yIiksbG9hZGluZzohMSxjaGFsbGVuZ2U6ZS5jaGFsbGVuZ2UscmVsYXlpbmdQYXJ0eTp7aWQ6ZS5ycF9pZCxuYW1lOmUucnBfbmFtZX0sc3VwcG9ydGVkX2FsZ29yaXRoczplLnN1cHBvcnRlZF9hbGdvcml0aHMsdXNlcl9zZWN1cmVfaWQ6ZS51c2VyX3NlY3VyZV9pZCxleGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHM6ZS5leGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHN9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZXQoImxvYWRpbmciLCExKX0pfSxhY3Rpb25zOntyZWdpc3RlclNlY3VyaXR5S2V5OmZ1bmN0aW9uKCl7dmFyIG49dGhpcyxlPXtjaGFsbGVuZ2U6VWludDhBcnJheS5mcm9tKHRoaXMuY2hhbGxlbmdlLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCl9KSxycDp7bmFtZTp0aGlzLnJlbGF5aW5nUGFydHkubmFtZSxpZDp0aGlzLnJlbGF5aW5nUGFydHkuaWR9LHVzZXI6e2lkOlVpbnQ4QXJyYXkuZnJvbSh0aGlzLnVzZXJfc2VjdXJlX2lkLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCl9KSxkaXNwbGF5TmFtZTp0aGlzLm1vZGVsLnVzZXJuYW1lX2xvd2VyLG5hbWU6dGhpcy5tb2RlbC51c2VybmFtZV9sb3dlcn0scHViS2V5Q3JlZFBhcmFtczp0aGlzLnN1cHBvcnRlZF9hbGdvcml0aHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJwdWJsaWMta2V5IixhbGc6ZX19KSxleGNsdWRlQ3JlZGVudGlhbHM6dGhpcy5leGlzdGluZ19hY3RpdmVfY3JlZGVudGlhbF9pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJwdWJsaWMta2V5IixpZDooMCxpLnN0cmluZ1RvQnVmZmVyKShhdG9iKGUpKX19KSx0aW1lb3V0OjJlNCxhdHRlc3RhdGlvbjoibm9uZSIsYXV0aGVudGljYXRvclNlbGVjdGlvbjp7dXNlclZlcmlmaWNhdGlvbjoiZGlzY291cmFnZWQifX07bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSh7cHVibGljS2V5OmV9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PXtpZDplLmlkLHJhd0lkOigwLGkuYnVmZmVyVG9CYXNlNjQpKGUucmF3SWQpLHR5cGU6ZS50eXBlLGF0dGVzdGF0aW9uOigwLGkuYnVmZmVyVG9CYXNlNjQpKGUucmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QpLGNsaWVudERhdGE6KDAsaS5idWZmZXJUb0Jhc2U2NCkoZS5yZXNwb25zZS5jbGllbnREYXRhSlNPTiksbmFtZTpuLnNlY3VyaXR5S2V5TmFtZX07bi5tb2RlbC5yZWdpc3RlclNlY3VyaXR5S2V5KHQpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcj9uLnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9yKToobi5tYXJrRGlydHkoKSxuLnNldCgiZXJyb3JNZXNzYWdlIixudWxsKSxuLnNlbmQoImNsb3NlTW9kYWwiKSl9KS5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5vbkVycm9yKGUpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsITEpfSl9LGZ1bmN0aW9uKGUpe3JldHVybiJJbnZhbGlkU3RhdGVFcnJvciI9PT1lLm5hbWU/bi5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmFscmVhZHlfYWRkZWRfZXJyb3IiKSk6Ik5vdEFsbG93ZWRFcnJvciI9PT1lLm5hbWU/bi5zZXQoImVycm9yTWVzc2FnZSIsSTE4bi50KCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5Lm5vdF9hbGxvd2VkX2Vycm9yIikpOnZvaWQgbi5zZXQoImVycm9yTWVzc2FnZSIsZS5tZXNzYWdlKX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3NlY29uZC1mYWN0b3ItYWRkLXRvdHAiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtsb2FkaW5nOiExLHNlY29uZEZhY3RvckltYWdlOm51bGwsc2Vjb25kRmFjdG9yS2V5Om51bGwsc2hvd1NlY29uZEZhY3RvcktleTohMSxlcnJvck1lc3NhZ2U6bnVsbCxvblNob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2V0UHJvcGVydGllcyh7ZXJyb3JNZXNzYWdlOm51bGwsc2Vjb25kRmFjdG9yS2V5Om51bGwsc2Vjb25kRmFjdG9yTmFtZTpudWxsLHNlY29uZEZhY3RvclRva2VuOm51bGwsc2hvd1NlY29uZEZhY3RvcktleTohMSxzZWNvbmRGYWN0b3JJbWFnZTpudWxsLGxvYWRpbmc6ITB9KSx0aGlzLm1vZGVsLmNyZWF0ZVNlY29uZEZhY3RvclRvdHAoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6dC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxzZWNvbmRGYWN0b3JLZXk6ZS5rZXksc2Vjb25kRmFjdG9ySW1hZ2U6ZS5xcn0pfSkuY2F0Y2goZnVuY3Rpb24oZSl7dC5zZW5kKCJjbG9zZU1vZGFsIiksdC5vbkVycm9yKGUpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9LGFjdGlvbnM6e3Nob3dTZWNvbmRGYWN0b3JLZXk6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2hvd1NlY29uZEZhY3RvcktleSIsITApfSxlbmFibGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc2Vjb25kRmFjdG9yVG9rZW4mJih0aGlzLnNldCgibG9hZGluZyIsITApLHRoaXMubW9kZWwuZW5hYmxlU2Vjb25kRmFjdG9yVG90cCh0aGlzLnNlY29uZEZhY3RvclRva2VuLHRoaXMuc2Vjb25kRmFjdG9yTmFtZSkudGhlbihmdW5jdGlvbihlKXtlLmVycm9yP3Quc2V0KCJlcnJvck1lc3NhZ2UiLGUuZXJyb3IpOih0Lm1hcmtEaXJ0eSgpLHQuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLHQuc2VuZCgiY2xvc2VNb2RhbCIpKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvc2Vjb25kLWZhY3Rvci1iYWNrdXAtZWRpdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7dmFyIGEsbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoImJhY2t1cEVuYWJsZWQiKSxsPXtsb2FkaW5nOiExLGVycm9yTWVzc2FnZTpudWxsLHN1Y2Nlc3NNZXNzYWdlOm51bGwsYmFja3VwRW5hYmxlZDooMCx0LmFsaWFzKSgibW9kZWwuc2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCIpLHJlbWFpbmluZ0NvZGVzOigwLHQuYWxpYXMpKCJtb2RlbC5zZWNvbmRfZmFjdG9yX3JlbWFpbmluZ19iYWNrdXBfY29kZXMiKSxiYWNrdXBDb2RlczpudWxsLHNlY29uZEZhY3Rvck1ldGhvZDpvLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQLGdlbmVyYXRlQmFja3VwQ29kZUJ0bkxhYmVsOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLnJlZ2VuZXJhdGUiOiJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmVuYWJsZSJ9LG9uU2hvdzpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7bG9hZGluZzohMSxlcnJvck1lc3NhZ2U6bnVsbCxzdWNjZXNzTWVzc2FnZTpudWxsLGJhY2t1cENvZGVzOm51bGx9KX0sYWN0aW9uczp7Y29weUJhY2t1cENvZGU6ZnVuY3Rpb24oZSl7ZT90aGlzLnNldCgic3VjY2Vzc01lc3NhZ2UiLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb3BpZWRfdG9fY2xpcGJvYXJkIikpOnRoaXMuc2V0KCJlcnJvck1lc3NhZ2UiLEkxOG4udCgidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb3B5X3RvX2NsaXBib2FyZF9lcnJvciIpKSx0aGlzLl9oaWRlQ29weU1lc3NhZ2UoKX0sZGlzYWJsZVNlY29uZEZhY3RvckJhY2t1cDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImJhY2t1cENvZGVzIixbXSksdGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLnVwZGF0ZVNlY29uZEZhY3RvcigwLCIiLCEwLG8uU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQuc2V0KCJlcnJvck1lc3NhZ2UiLG51bGwpLHQubW9kZWwuc2V0KCJzZWNvbmRfZmFjdG9yX2JhY2t1cF9lbmFibGVkIiwhMSksdC5tYXJrRGlydHkoKSx0LnNlbmQoImNsb3NlTW9kYWwiKSl9KS5jYXRjaChmdW5jdGlvbihlKXt0LnNlbmQoImNsb3NlTW9kYWwiKSx0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KX0sZ2VuZXJhdGVTZWNvbmRGYWN0b3JDb2RlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLm1vZGVsLmdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXMoKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3I/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5lcnJvcik6KHQubWFya0RpcnR5KCksdC5zZXRQcm9wZXJ0aWVzKHtlcnJvck1lc3NhZ2U6bnVsbCxiYWNrdXBDb2RlczplLmJhY2t1cF9jb2RlcyxiYWNrdXBFbmFibGVkOiEwLHJlbWFpbmluZ0NvZGVzOmUuYmFja3VwX2NvZGVzLmxlbmd0aH0pKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITF9KX0pfX0sX2hpZGVDb3B5TWVzc2FnZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7KDAsbi5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXRQcm9wZXJ0aWVzKHtzdWNjZXNzTWVzc2FnZTpudWxsLGVycm9yTWVzc2FnZTpudWxsfSl9LDJlMyl9fSx1PWwsYz0iZ2VuZXJhdGVCYWNrdXBDb2RlQnRuTGFiZWwiLGQ9W2FdLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJnZW5lcmF0ZUJhY2t1cENvZGVCdG5MYWJlbCIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy9zZWNvbmQtZmFjdG9yLWVkaXQtc2VjdXJpdHkta2V5IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7YWN0aW9uczp7ZGlzYWJsZVNlY3VyaXR5S2V5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnVzZXIudXBkYXRlU2VjdXJpdHlLZXkodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITApLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGVkaXRTZWN1cml0eUtleTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy51c2VyLnVwZGF0ZVNlY3VyaXR5S2V5KHRoaXMubW9kZWwuaWQsdGhpcy5tb2RlbC5uYW1lLCExKS50aGVuKGZ1bmN0aW9uKGUpe2UuZXJyb3J8fHQubWFya0RpcnR5KCl9KS5jYXRjaChmdW5jdGlvbihlKXt0Lm9uRXJyb3IoZSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoImxvYWRpbmciLCExKSx0LnNlbmQoImNsb3NlTW9kYWwiKX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3NlY29uZC1mYWN0b3ItZWRpdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL21vZGFsLWZ1bmN0aW9uYWxpdHkiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2FjdGlvbnM6e2Rpc2FibGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudXNlci51cGRhdGVTZWNvbmRGYWN0b3IodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITAsdGhpcy5tb2RlbC5tZXRob2QpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGVkaXRTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudXNlci51cGRhdGVTZWNvbmRGYWN0b3IodGhpcy5tb2RlbC5pZCx0aGlzLm1vZGVsLm5hbWUsITEsdGhpcy5tb2RlbC5tZXRob2QpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcnx8dC5tYXJrRGlydHkoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Quc2VuZCgiY2xvc2VNb2RhbCIpLHQub25FcnJvcihlKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgibG9hZGluZyIsITEpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvc3RhdGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgibW9kZWwucGF0aCIpLGw9KDAsdC5kZWZhdWx0KSgibW9kZWwucGF0aCIpLHIodT17YXBwbGljYXRpb246KDAsaS5pbmplY3QpKCksc2hvd0xvZ2luQnV0dG9uOigwLG4uZXF1YWwpKCJtb2RlbC5wYXRoIiwibG9naW4iKSxib2R5Q2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuInN0YXRpYy0iK2V9LHNob3dTaWdudXBCdXR0b246ZnVuY3Rpb24oKXtyZXR1cm4ibG9naW4iPT09dGhpcy5nZXQoIm1vZGVsLnBhdGgiKSYmdGhpcy5nZXQoImFwcGxpY2F0aW9uLmNhblNpZ25VcCIpfSxhY3Rpb25zOnttYXJrRmFxUmVhZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFVzZXI7ZSYmKDAscy5hamF4KSgoMCxvLnVzZXJQYXRoKSgicmVhZC1mYXEiKSx7bWV0aG9kOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmVhZF9mYXEiLCEwKX0pfX19LCJib2R5Q2xhc3MiLFthXSwoYz0oYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsImJvZHlDbGFzcyIpKT9jLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY319KSx1KSxyKHUsInNob3dTaWdudXBCdXR0b24iLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNob3dTaWdudXBCdXR0b24iKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWctZ3JvdXBzLWVkaXQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdHcm91cHM6KDAsdC5pbmplY3QpKCksYWN0aW9uczp7b25EZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy50YWdHcm91cHMubW9kZWwucmVtb3ZlT2JqZWN0KHRoaXMubW9kZWwpLHRoaXMudHJhbnNpdGlvblRvUm91dGUoInRhZ0dyb3Vwcy5pbmRleCIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RhZy1ncm91cHMtbmV3IixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnR3JvdXBzOigwLHQuaW5qZWN0KSgpLGFjdGlvbnM6e29uU2F2ZTpmdW5jdGlvbigpe3RoaXMudGFnR3JvdXBzLm1vZGVsLnB1c2hPYmplY3QodGhpcy5tb2RlbCksdGhpcy50cmFuc2l0aW9uVG9Sb3V0ZSgidGFnR3JvdXBzLmVkaXQiLHRoaXMubW9kZWwpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RhZy1ncm91cHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthY3Rpb25zOntuZXdUYWdHcm91cDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvUm91dGUoInRhZ0dyb3Vwcy5uZXciKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWdzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcix1O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJncm91cGVkQnlDYXRlZ29yeSIsImdyb3VwZWRCeVRhZ0dyb3VwIiksbyh1PXtzb3J0ZWRCeUNvdW50OiEwLHNvcnRlZEJ5TmFtZTohMSxjYW5BZG1pblRhZ3M6KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLnN0YWZmIiksZ3JvdXBlZEJ5Q2F0ZWdvcnk6KDAsbi5ub3RFbXB0eSkoIm1vZGVsLmV4dHJhcy5jYXRlZ29yaWVzIiksZ3JvdXBlZEJ5VGFnR3JvdXA6KDAsbi5ub3RFbXB0eSkoIm1vZGVsLmV4dHJhcy50YWdfZ3JvdXBzIiksaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNvcnRQcm9wZXJ0aWVzPVsidG90YWxDb3VudDpkZXNjIiwiaWQiXX0sb3RoZXJUYWdzVGl0bGVLZXk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dD8idGFnZ2luZy5vdGhlcl90YWdzIjoidGFnZ2luZy5hbGxfdGFncyJ9LGFjdGlvbnNNYXBwaW5nOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm57bWFuYWdlR3JvdXBzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd1RhZ0dyb3VwcyIpfSx1cGxvYWRUYWdzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd1VwbG9hZGVyIil9LGRlbGV0ZVVudXNlZFRhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJkZWxldGVVbnVzZWQiKX19fSxhY3Rpb25zOntzb3J0QnlDb3VudDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c29ydFByb3BlcnRpZXM6WyJ0b3RhbENvdW50OmRlc2MiLCJpZCJdLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExfSl9LHNvcnRCeUlkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImlkIl0sc29ydGVkQnlDb3VudDohMSxzb3J0ZWRCeU5hbWU6ITB9KX0sc2hvd1VwbG9hZGVyOmZ1bmN0aW9uKCl7KDAscy5kZWZhdWx0KSgidGFnLXVwbG9hZCIpfSxkZWxldGVVbnVzZWQ6ZnVuY3Rpb24oKXt2YXIgcj10aGlzOygwLGEuYWpheCkoIi90YWdzL3VudXNlZCIse3R5cGU6IkdFVCJ9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFncyxuPXQuc2xpY2UoMCwyMCkuam9pbigiLCAiKSxpPU1hdGgubWF4KDAsdC5sZW5ndGgtMjApLHM9MD09PWk/bjpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3VudXNlZF9jb25maXJtYXRpb25fbW9yZV90YWdzIix7Y291bnQ6aSx0YWdzOm59KSxvPUkxOG4udCgidGFnZ2luZy5kZWxldGVfdW51c2VkX2NvbmZpcm1hdGlvbiIse2NvdW50OnQubGVuZ3RoLHRhZ3M6c30pO2Jvb3Rib3guY29uZmlybShvLEkxOG4udCgidGFnZ2luZy5jYW5jZWxfZGVsZXRlX3VudXNlZCIpLEkxOG4udCgidGFnZ2luZy5kZWxldGVfdW51c2VkIiksZnVuY3Rpb24oZSl7ZSYmKDAsYS5hamF4KSgiL3RhZ3MvdW51c2VkIix7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5zZW5kKCJyZWZyZXNoIil9KS5jYXRjaChsLnBvcHVwQWpheEVycm9yKX0pfSkuY2F0Y2gobC5wb3B1cEFqYXhFcnJvcil9fX0sIm90aGVyVGFnc1RpdGxlS2V5Iixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJvdGhlclRhZ3NUaXRsZUtleSIpLHUpLG8odSwiYWN0aW9uc01hcHBpbmciLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwiYWN0aW9uc01hcHBpbmciKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy90YWdzLXNob3ciLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9taXhpbnMvYnVsay10b3BpYy1zZWxlY3Rpb24iLCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwLG0sZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHMuZGVmYXVsdCxyLmRlZmF1bHQsKHU9KDAsaS5kZWZhdWx0KSgibGlzdCIsImxpc3QuZHJhZnQiKSxjPSgwLGkuZGVmYXVsdCkoImNhbkNyZWF0ZVRvcGljIiwiY2F0ZWdvcnkiLCJjYW5DcmVhdGVUb3BpY09uQ2F0ZWdvcnkiLCJ0YWciLCJjYW5DcmVhdGVUb3BpY09uVGFnIiksZD0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeSIsInRhZy5pZCIsImZpbHRlclR5cGUiLCJub1N1YmNhdGVnb3JpZXMiKSxwPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiksbT0oMCxpLmRlZmF1bHQpKCJhZGRpdGlvbmFsVGFncyIsImNhdGVnb3J5IiwidGFnLmlkIiksZj0oMCxpLm9ic2VydmVzKSgibGlzdC5jYW5Mb2FkTW9yZSIpLGg9KDAsaS5kZWZhdWx0KSgibmF2TW9kZSIsImxpc3QudG9waWNzLmxlbmd0aCIsImxvYWRpbmciKSxsKGI9e2FwcGxpY2F0aW9uOigwLG4uaW5qZWN0KSgpLHRhZzpudWxsLGFkZGl0aW9uYWxUYWdzOm51bGwsbGlzdDpudWxsLGNhbkFkbWluVGFnOigwLHQuYWxpYXMpKCJjdXJyZW50VXNlci5zdGFmZiIpLG5hdk1vZGU6ImxhdGVzdCIsbG9hZGluZzohMSxjYW5DcmVhdGVUb3BpYzohMSxvcmRlcjoiZGVmYXVsdCIsYXNjZW5kaW5nOiExLHN0YXR1czpudWxsLHN0YXRlOm51bGwsc2VhcmNoOm51bGwsbWF4X3Bvc3RzOm51bGwscTpudWxsLHNob3dJbmZvOiExLGNhdGVnb3JpZXM6KDAsdC5hbGlhcykoInNpdGUuY2F0ZWdvcmllc0xpc3QiKSxjcmVhdGVUb3BpY0xhYmVsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/InRvcGljLm9wZW5fZHJhZnQiOiJ0b3BpYy5jcmVhdGUifSxjcmVhdGVUb3BpY0Rpc2FibGVkOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIWV8fHQmJiFufHxpJiYhc30scXVlcnlQYXJhbXM6T2JqZWN0LmtleXMoYS5xdWVyeVBhcmFtcyksbmF2SXRlbXM6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuIG8uZGVmYXVsdC5idWlsZExpc3QoZSx7dGFnSWQ6dCxmaWx0ZXJUeXBlOm4sbm9TdWJjYXRlZ29yaWVzOml9KX0sc2hvd1RhZ0ZpbHRlcjpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnNob3dfZmlsdGVyX2J5X3RhZ30sc2hvd1RvZ2dsZUluZm86ZnVuY3Rpb24oZSx0LG4pe3JldHVybiFlJiYhdCYmIm5vbmUiIT09bn0sbG9hZE1vcmVUb3BpY3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saXN0LmxvYWRNb3JlKCl9LF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLCF0aGlzLmdldCgibGlzdC5jYW5Mb2FkTW9yZSIpKX0sZm9vdGVyTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7aWYoIW4mJjA9PT10KXJldHVybiAwPT09dD9JMThuLnQoInRhZ2dpbmcudG9waWNzLm5vbmUuIitlLHt0YWc6dGhpcy5nZXQoInRhZy5pZCIpfSk6STE4bi50KCJ0YWdnaW5nLnRvcGljcy5ib3R0b20uIitlLHt0YWc6dGhpcy5nZXQoInRhZy5pZCIpfSl9LGFjdGlvbnM6e2NoYW5nZVNvcnQ6ZnVuY3Rpb24oZSl7ZT09PXRoaXMub3JkZXI/dGhpcy50b2dnbGVQcm9wZXJ0eSgiYXNjZW5kaW5nIik6dGhpcy5zZXRQcm9wZXJ0aWVzKHtvcmRlcjplLGFzY2VuZGluZzohMX0pLHRoaXMudHJhbnNpdGlvblRvUm91dGUoe3F1ZXJ5UGFyYW1zOntvcmRlcjplLGFzY2VuZGluZzp0aGlzLmFzY2VuZGluZ319KX0sdG9nZ2xlSW5mbzpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydHkoInNob3dJbmZvIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0YWdzLyIrdGhpcy5nZXQoInRhZy5pZCIpfSkudGhlbihmdW5jdGlvbihlKXt0LnNldCgibGlzdCIsZSksdC5yZXNldFNlbGVjdGVkKCl9KX0sZGVsZXRlVGFnOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibGlzdC50b3BpY19saXN0LnRhZ3MuZmlyc3RPYmplY3QudG9waWNfY291bnQiKXx8MCxpPTA9PT1uP0kxOG4udCgidGFnZ2luZy5kZWxldGVfY29uZmlybV9ub190b3BpY3MiKTpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX2NvbmZpcm0iLHtjb3VudDpufSk7MDxlLnN5bm9ueW1zLmxlbmd0aCYmKGkrPSIgIitJMThuLnQoInRhZ2dpbmcuZGVsZXRlX2NvbmZpcm1fc3lub255bXMiLHtjb3VudDplLnN5bm9ueW1zLmxlbmd0aH0pKSxib290Ym94LmNvbmZpcm0oaSxmdW5jdGlvbihlKXtlJiZ0LnRhZy5kZXN0cm95UmVjb3JkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnRyYW5zaXRpb25Ub1JvdXRlKCJ0YWdzLmluZGV4Iil9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgiZ2VuZXJpY19lcnJvciIpKX0pfSl9LGNoYW5nZVRhZ05vdGlmaWNhdGlvbkxldmVsOmZ1bmN0aW9uKGUpe3RoaXMudGFnTm90aWZpY2F0aW9uLnVwZGF0ZSh7bm90aWZpY2F0aW9uX2xldmVsOmV9KX19fSwiY3JlYXRlVG9waWNMYWJlbCIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY3JlYXRlVG9waWNMYWJlbCIpLGIpLGwoYiwiY3JlYXRlVG9waWNEaXNhYmxlZCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY3JlYXRlVG9waWNEaXNhYmxlZCIpLGIpLGwoYiwibmF2SXRlbXMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsIm5hdkl0ZW1zIiksYiksbChiLCJzaG93VGFnRmlsdGVyIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJzaG93VGFnRmlsdGVyIiksYiksbChiLCJzaG93VG9nZ2xlSW5mbyIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwic2hvd1RvZ2dsZUluZm8iKSxiKSxsKGIsIl9zaG93Rm9vdGVyIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfc2hvd0Zvb3RlciIpLGIpLGwoYiwiZm9vdGVyTWVzc2FnZSIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZm9vdGVyTWVzc2FnZSIpLGIpLGIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3RvcGljLWJ1bGstYWN0aW9ucyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21peGlucy9tb2RhbC1mdW5jdGlvbmFsaXR5IiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZEJ1bGtCdXR0b249dm9pZCAwO2Z1bmN0aW9uIHIoKXtyZXR1cm4hMH12YXIgYT1bXTtmdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIHUoZSx0LG4pe3ZhciBpPXthY3Rpb246ZSxsYWJlbDoidG9waWNzLmJ1bGsuIit0LGljb246KG49bnx8e30pLmljb24sYnV0dG9uVmlzaWJsZTpuLmJ1dHRvblZpc2libGV8fHIsY2xhc3M6bi5jbGFzc307YS5wdXNoKGkpfXUoInNob3dDaGFuZ2VDYXRlZ29yeSIsImNoYW5nZV9jYXRlZ29yeSIse2ljb246InBlbmNpbC1hbHQiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJjbG9zZVRvcGljcyIsImNsb3NlX3RvcGljcyIse2ljb246ImxvY2siLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJhcmNoaXZlVG9waWNzIiwiYXJjaGl2ZV90b3BpY3MiLHtpY29uOiJmb2xkZXIiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJzaG93Tm90aWZpY2F0aW9uTGV2ZWwiLCJub3RpZmljYXRpb25fbGV2ZWwiLHtpY29uOiJkLXJlZ3VsYXIiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJyZXNldFJlYWQiLCJyZXNldF9yZWFkIix7aWNvbjoiYmFja3dhcmQiLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJ1bmxpc3RUb3BpY3MiLCJ1bmxpc3RfdG9waWNzIix7aWNvbjoiZmFyLWV5ZS1zbGFzaCIsY2xhc3M6ImJ0bi1kZWZhdWx0IixidXR0b25WaXNpYmxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmlzaWJsZX0pfX0pLHUoInJlbGlzdFRvcGljcyIsInJlbGlzdF90b3BpY3MiLHtpY29uOiJmYXItZXllIixjbGFzczoiYnRuLWRlZmF1bHQiLGJ1dHRvblZpc2libGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4hZS52aXNpYmxlfSl9fSksRGlzY291cnNlLlNpdGVTZXR0aW5ncy50YWdnaW5nX2VuYWJsZWQmJih1KCJzaG93VGFnVG9waWNzIiwiY2hhbmdlX3RhZ3MiLHtpY29uOiJ0YWciLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSx1KCJzaG93QXBwZW5kVGFnVG9waWNzIiwiYXBwZW5kX3RhZ3MiLHtpY29uOiJ0YWciLGNsYXNzOiJidG4tZGVmYXVsdCJ9KSksdSgiZGVsZXRlVG9waWNzIiwiZGVsZXRlIix7aWNvbjoidHJhc2gtYWx0IixjbGFzczoiYnRuLWRhbmdlciJ9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse3RhZ3M6bnVsbCxlbXB0eVRhZ3M6KDAsdC5lbXB0eSkoInRhZ3MiKSxjYXRlZ29yeUlkOigwLHQuYWxpYXMpKCJtb2RlbC5jYXRlZ29yeS5pZCIpLG9uU2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0KCJtb2RlbC50b3BpY3MiKTt0aGlzLnNldCgiYnV0dG9ucyIsYS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYnV0dG9uVmlzaWJsZSh0KX0pKSx0aGlzLnNldCgibW9kYWwubW9kYWxDbGFzcyIsInRvcGljLWJ1bGstYWN0aW9ucy1tb2RhbCBzbWFsbCIpLHRoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwibW9kYWwvYnVsay1hY3Rpb25zLWJ1dHRvbnMiKX0scGVyZm9ybTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuc2V0KCJsb2FkaW5nIiwhMCk7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnRvcGljcyIpO3JldHVybiBzLmRlZmF1bHQuYnVsa09wZXJhdGlvbihuLGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSksZSYmZS50b3BpY19pZHM/ZS50b3BpY19pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmZpbmRCeSgiaWQiLGUpfSk6ZX0pLmNhdGNoKGZ1bmN0aW9uKCl7Ym9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSksdC5zZXQoImxvYWRpbmciLCExKX0pfSxmb3JFYWNoUGVyZm9ybWVkOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLnBlcmZvcm0oZSkudGhlbihmdW5jdGlvbihlKXtlJiYoZS5mb3JFYWNoKHQpLChuLnJlZnJlc2hDbG9zdXJlfHxsKSgpLG4uc2VuZCgiY2xvc2VNb2RhbCIpKX0pfSxwZXJmb3JtQW5kUmVmcmVzaDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnBlcmZvcm0oZSkudGhlbihmdW5jdGlvbigpeyh0LnJlZnJlc2hDbG9zdXJlfHxsKSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LGFjdGlvbnM6e3Nob3dUYWdUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLnNldCgidGFncyIsIiIpLHRoaXMuc2V0KCJhY3Rpb24iLCJjaGFuZ2VUYWdzIiksdGhpcy5zZXQoImxhYmVsIiwiY2hhbmdlX3RhZ3MiKSx0aGlzLnNldCgidGl0bGUiLCJjaG9vc2VfbmV3X3RhZ3MiKSx0aGlzLnNlbmQoImNoYW5nZUJ1bGtUZW1wbGF0ZSIsImJ1bGstdGFnIil9LGNoYW5nZVRhZ3M6ZnVuY3Rpb24oKXt0aGlzLnBlcmZvcm1BbmRSZWZyZXNoKHt0eXBlOiJjaGFuZ2VfdGFncyIsdGFnczp0aGlzLnRhZ3N9KX0sc2hvd0FwcGVuZFRhZ1RvcGljczpmdW5jdGlvbigpe3RoaXMuc2V0KCJ0YWdzIiwiIiksdGhpcy5zZXQoImFjdGlvbiIsImFwcGVuZFRhZ3MiKSx0aGlzLnNldCgibGFiZWwiLCJhcHBlbmRfdGFncyIpLHRoaXMuc2V0KCJ0aXRsZSIsImNob29zZV9hcHBlbmRfdGFncyIpLHRoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwiYnVsay10YWciKX0sYXBwZW5kVGFnczpmdW5jdGlvbigpe3RoaXMucGVyZm9ybUFuZFJlZnJlc2goe3R5cGU6ImFwcGVuZF90YWdzIix0YWdzOnRoaXMudGFnc30pfSxzaG93Q2hhbmdlQ2F0ZWdvcnk6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoImNoYW5nZUJ1bGtUZW1wbGF0ZSIsIm1vZGFsL2J1bGstY2hhbmdlLWNhdGVnb3J5Iil9LHNob3dOb3RpZmljYXRpb25MZXZlbDpmdW5jdGlvbigpe3RoaXMuc2VuZCgiY2hhbmdlQnVsa1RlbXBsYXRlIiwibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwiKX0sZGVsZXRlVG9waWNzOmZ1bmN0aW9uKCl7dGhpcy5wZXJmb3JtQW5kUmVmcmVzaCh7dHlwZToiZGVsZXRlIn0pfSxjbG9zZVRvcGljczpmdW5jdGlvbigpe3RoaXMuZm9yRWFjaFBlcmZvcm1lZCh7dHlwZToiY2xvc2UifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImNsb3NlZCIsITApfSl9LGFyY2hpdmVUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hQZXJmb3JtZWQoe3R5cGU6ImFyY2hpdmUifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImFyY2hpdmVkIiwhMCl9KX0sdW5saXN0VG9waWNzOmZ1bmN0aW9uKCl7dGhpcy5mb3JFYWNoUGVyZm9ybWVkKHt0eXBlOiJ1bmxpc3QifSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoInZpc2libGUiLCExKX0pfSxyZWxpc3RUb3BpY3M6ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hQZXJmb3JtZWQoe3R5cGU6InJlbGlzdCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBlLnNldCgidmlzaWJsZSIsITApfSl9LGNoYW5nZUNhdGVnb3J5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXBhcnNlSW50KHRoaXMubmV3Q2F0ZWdvcnlJZCwxMCl8fDAsbj1vLmRlZmF1bHQuZmluZEJ5SWQoZSk7dGhpcy5wZXJmb3JtKHt0eXBlOiJjaGFuZ2VfY2F0ZWdvcnkiLGNhdGVnb3J5X2lkOmV9KS50aGVuKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoImNhdGVnb3J5IixuKX0pLCh0LnJlZnJlc2hDbG9zdXJlfHxsKSgpLHQuc2VuZCgiY2xvc2VNb2RhbCIpfSl9LHJlc2V0UmVhZDpmdW5jdGlvbigpe3RoaXMucGVyZm9ybUFuZFJlZnJlc2goe3R5cGU6InJlc2V0X3JlYWQifSl9fX0pLGUuYWRkQnVsa0J1dHRvbj11fSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvYnVmZmVyZWQtY29udGVudCIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdCIsImRpc2NvdXJzZS9saWIvcXVvdGUiLCJkaXNjb3Vyc2UvbGliL3F1b3RlLXN0YXRlIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2lzLWVsZW1lbnQtaW4tdmlld3BvcnQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2hlbHBlcnMvbG9hZGluZy1zcGlubmVyIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL21vZGVscy90b3BpYy10aW1lciIsInJzdnAiXSxmdW5jdGlvbihlLHUsdCxpLHIsbixzLGMsbyxhLGQsbCxwLG0sZixoLGIsZyx2LHksdyx4LGspeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBQKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX1mdW5jdGlvbiBqKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBULEUsTyxTLEMsTSxELEksTCxBLE4seixVLEYsQixSLHEsSCxLLFcsVjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXNldEN1c3RvbVBvc3RNZXNzYWdlQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Rz17fX0sZS5yZWdpc3RlckN1c3RvbVBvc3RNZXNzYWdlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtpZihHW2VdKXRocm93IG5ldyBFcnJvcigiRXJyb3IgIitlKyIgaXMgYW4gYWxyZWFkeSByZWdpc3RlcmVkIHBvc3QgbWVzc2FnZSEiKTtHW2VdPXR9O3ZhciBHPXt9O2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCgwLHMuYnVmZmVyZWRQcm9wZXJ0eSkoIm1vZGVsIiksKFQ9KDAsYi5vYnNlcnZlcykoIm1vZGVsLnRpdGxlIiwiY2F0ZWdvcnkiKSxFPSgwLGIuZGVmYXVsdCkoIm1vZGVsLmRldGFpbHMuY2FuX2NyZWF0ZV9wb3N0IiksTz0oMCxiLmRlZmF1bHQpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZCIsIm1vZGVsLmNhdGVnb3J5X2lkIiksUz0oMCxiLmRlZmF1bHQpKCJzaXRlLm1vYmlsZVZpZXciLCJtb2RlbC5wb3N0c19jb3VudCIpLEM9KDAsYi5kZWZhdWx0KSgibW9kZWwucG9zdFN0cmVhbS5wb3N0cyIsIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHNXaXRoUGxhY2Vob2xkZXJzIiksTT0oMCxiLmRlZmF1bHQpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRpbmdGaWx0ZXIiKSxEPSgwLGIuZGVmYXVsdCkoIm1vZGVsIiksST0oMCxiLmRlZmF1bHQpKCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIiwibW9kZWwuY2F0ZWdvcnkuaWQiKSxMPSgwLGIuZGVmYXVsdCkoIm1vZGVsIiksQT0oMCxiLmRlZmF1bHQpKCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIiksTj0oMCxiLmRlZmF1bHQpKCJzZWxlY3RlZFBvc3RJZHMiLCJtb2RlbC5wb3N0U3RyZWFtLnBvc3RzIiwic2VsZWN0ZWRQb3N0SWRzLltdIiwibW9kZWwucG9zdFN0cmVhbS5wb3N0cy5bXSIpLHo9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxVPSgwLGIuZGVmYXVsdCkoInNlbGVjdGVkUG9zdHNDb3VudCIsIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiLCJtb2RlbC5wb3N0U3RyZWFtLnN0cmVhbS5sZW5ndGgiLCJtb2RlbC5wb3N0c19jb3VudCIpLEY9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRBbGxQb3N0cyIsIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiKSxCPSgwLGIuZGVmYXVsdCkoImN1cnJlbnRVc2VyLnN0YWZmIiwic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRBbGxQb3N0cyIsInNlbGVjdGVkUG9zdHMiLCJzZWxlY3RlZFBvc3RzLltdIiksUj0oMCxiLmRlZmF1bHQpKCJtb2RlbC5kZXRhaWxzLmNhbl9tb3ZlX3Bvc3RzIiwic2VsZWN0ZWRQb3N0c0NvdW50IikscT0oMCxiLmRlZmF1bHQpKCJjdXJyZW50VXNlci5hZG1pbiIsInNlbGVjdGVkUG9zdHNDb3VudCIsInNlbGVjdGVkUG9zdHNVc2VybmFtZSIpLEg9KDAsYi5kZWZhdWx0KSgic2VsZWN0ZWRQb3N0c0NvdW50Iiwic2VsZWN0ZWRQb3N0c1VzZXJuYW1lIiwic2VsZWN0ZWRQb3N0cyIsInNlbGVjdGVkUG9zdHMuW10iKSxLPSgwLGIub2JzZXJ2ZXMpKCJtdWx0aVNlbGVjdCIpLFc9KDAsYi5vYnNlcnZlcykoIm1vZGVsLnBvc3RTdHJlYW0ubG9hZGVkIiwibW9kZWwucG9zdFN0cmVhbS5sb2FkZWRBbGxQb3N0cyIpLGooVj17Y29tcG9zZXI6KDAsbi5pbmplY3QpKCksYXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksbXVsdGlTZWxlY3Q6ITEsc2VsZWN0ZWRQb3N0SWRzOm51bGwsZWRpdGluZ1RvcGljOiExLHF1ZXJ5UGFyYW1zOlsiZmlsdGVyIiwidXNlcm5hbWVfZmlsdGVycyJdLGxvYWRlZEFsbFBvc3RzOigwLHQub3IpKCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZEFsbFBvc3RzIiwibW9kZWwucG9zdFN0cmVhbS5sb2FkaW5nTGFzdFBvc3QiKSxlbnRlcmVkQXQ6bnVsbCxlbnRlcmVkSW5kZXg6bnVsbCxyZXRyeWluZzohMSx1c2VyVHJpZ2dlcmVkUHJvZ3Jlc3M6bnVsbCxfcHJvZ3Jlc3NJbmRleDpudWxsLGhhc1Njcm9sbGVkOm51bGwsdXNlcm5hbWVfZmlsdGVyczpudWxsLGZpbHRlcjpudWxsLHF1b3RlU3RhdGU6bnVsbCxjYW5SZW1vdmVUb3BpY0ZlYXR1cmVkTGluazooMCx0LmFuZCkoImNhbkVkaXRUb3BpY0ZlYXR1cmVkTGluayIsImJ1ZmZlcmVkLmZlYXR1cmVkX2xpbmsiKSx1cGRhdGVRdWVyeVBhcmFtczpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5zdHJlYW1GaWx0ZXJzIikpfSxfdGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLnRpdGxlIik7KDAsdS5pc0VtcHR5KShlKXx8dGhpcy5zZW5kKCJyZWZyZXNoVGl0bGUiKX0sZW1iZWRRdW90ZUJ1dHRvbjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5nZXQoImVuYWJsZV9xdW90aW5nIil9LHNob3dTaGFyZWREcmFmdENvbnRyb2xzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5zaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQ7cmV0dXJuIGUmJm4mJnQmJm49PT10fSxzaG93U2VsZWN0ZWRQb3N0c0F0Qm90dG9tOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjM8dH0scG9zdHNUb1JlbmRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmNhcGFiaWxpdGllcy5pc0FuZHJvaWQ/ZTp0fSxhbmRyb2lkTG9hZGluZzpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMuaXNBbmRyb2lkJiZlfSxwbVBhdGg6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIucG1QYXRoKGUpfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJwb3N0OnNob3ctcmV2aXNpb24iLHRoaXMsIl9zaG93UmV2aXNpb24iKSx0aGlzLnNldFByb3BlcnRpZXMoe3NlbGVjdGVkUG9zdElkczpbXSxxdW90ZVN0YXRlOm5ldyBsLmRlZmF1bHR9KX0sd2lsbERlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0OnNob3ctcmV2aXNpb24iLHRoaXMsIl9zaG93UmV2aXNpb24iKX0sX3Nob3dSZXZpc2lvbjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT10aGlzLm1vZGVsLmdldCgicG9zdFN0cmVhbSIpLnBvc3RGb3JQb3N0TnVtYmVyKGUpO2kmJigwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7bi5zZW5kKCJzaG93SGlzdG9yeSIsaSx0KX0pfSxzaG93Q2F0ZWdvcnlDaG9vc2VyOigwLHQubm90KSgibW9kZWwuaXNQcml2YXRlTWVzc2FnZSIpLGdvdG9JbmJveDpmdW5jdGlvbihlKXt2YXIgdD0oMCxvLnVzZXJQYXRoKSh0aGlzLmdldCgiY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXIiKSsiL21lc3NhZ2VzIik7ZSYmKHQ9dCsiL2dyb3VwLyIrZSksby5kZWZhdWx0LnJvdXRlVG8odCl9LHNlbGVjdGVkUXVlcnk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5wb3N0U2VsZWN0ZWQoZSl9fSxjYW5FZGl0VG9waWNGZWF0dXJlZExpbms6ZnVuY3Rpb24oZSx0KXtpZighdGhpcy5zaXRlU2V0dGluZ3MudG9waWNfZmVhdHVyZWRfbGlua19lbmFibGVkfHxlKXJldHVybiExO3ZhciBuPXRoaXMuc2l0ZS5nZXQoInRvcGljX2ZlYXR1cmVkX2xpbmtfYWxsb3dlZF9jYXRlZ29yeV9pZHMiKTtyZXR1cm4gdm9pZCAwPT09bnx8IW4ubGVuZ3RofHxuLmluY2x1ZGVzKHQpfSxmZWF0dXJlZExpbmtEb21haW46ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZy5leHRyYWN0TGlua01ldGEpKGUpLmRvbWFpbn0sY2FuRWRpdFRhZ3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2l0ZS5nZXQoImNhbl90YWdfdG9waWNzIikmJighZXx8dGhpcy5zaXRlLmdldCgiY2FuX3RhZ19wbXMiKSl9LF9mb3JjZVJlZnJlc2hQb3N0U3RyZWFtOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2ZvcmNlOiEwfSl9LF91cGRhdGVTZWxlY3RlZFBvc3RJZHM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc21hbGxBY3Rpb25Qb3N0SWRzKCk7dGhpcy5zZWxlY3RlZFBvc3RJZHMucHVzaE9iamVjdHMoZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXQuaGFzKGUpfSkpLHRoaXMuc2V0KCJzZWxlY3RlZFBvc3RJZHMiLFtdLmNvbmNhdChQKG5ldyBTZXQodGhpcy5zZWxlY3RlZFBvc3RJZHMpKSkpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sX3NtYWxsQWN0aW9uUG9zdElkczpmdW5jdGlvbigpe3ZhciB0LG4saT1uZXcgU2V0LGU9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0ucG9zdHMiKTtyZXR1cm4gZSYmKHQ9dGhpcy5zaXRlLmdldCgicG9zdF90eXBlcy5zbWFsbF9hY3Rpb24iKSxuPXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMud2hpc3BlciIpLGUuZm9yRWFjaChmdW5jdGlvbihlKXtlLnBvc3RfdHlwZSE9PXQmJihlLmNvb2tlZHx8ZS5wb3N0X3R5cGUhPT1uKXx8aS5hZGQoZS5pZCl9KSksaX0sX2xvYWRQb3N0SWRzOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7aWYoIXRoaXMubG9hZGluZ1Bvc3RJZHMpe3ZhciBlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIiksaT0iL3QvIit0aGlzLmdldCgibW9kZWwuaWQiKSsiL3Bvc3RfaWRzLmpzb24iO3JldHVybiB0aGlzLnNldCgibG9hZGluZ1Bvc3RJZHMiLCEwKSwoMCxoLmFqYXgpKGkse2RhdGE6Xy5tZXJnZSh7cG9zdF9udW1iZXI6dC5nZXQoInBvc3RfbnVtYmVyIil9LGUuZ2V0KCJzdHJlYW1GaWx0ZXJzIikpfSkudGhlbihmdW5jdGlvbihlKXtlLnBvc3RfaWRzLnB1c2hPYmplY3QodC5nZXQoImlkIikpLG4uX3VwZGF0ZVNlbGVjdGVkUG9zdElkcyhlLnBvc3RfaWRzKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtuLnNldCgibG9hZGluZ1Bvc3RJZHMiLCExKX0pfX0sYWN0aW9uczp7dG9waWNDYXRlZ29yeUNoYW5nZWQ6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImJ1ZmZlcmVkLmNhdGVnb3J5X2lkIixlKX0sdG9waWNUYWdzQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLnNldCgiYnVmZmVyZWQudGFncyIsZSl9LGRlbGV0ZVBlbmRpbmc6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4oMCxoLmFqYXgpKCIvcmV2aWV3LyIrZS5pZCx7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXt0LmdldCgibW9kZWwucGVuZGluZ19wb3N0cyIpLnJlbW92ZU9iamVjdChlKX0pLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfSxzaG93UG9zdEZsYWdzOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNlbmQoInNob3dGbGFncyIsZSl9LG9wZW5GZWF0dXJlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLnNlbmQoInNob3dGZWF0dXJlVG9waWMiKX0sc2VsZWN0VGV4dDpmdW5jdGlvbihlLGEsbCl7dmFyIHU9dGhpcyx0PXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIikuZmluZExvYWRlZFBvc3QoZSk7cmV0dXJuKHQ/ay5Qcm9taXNlLnJlc29sdmUodCk6dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5sb2FkUG9zdChlKSkudGhlbihmdW5jdGlvbihlKXt2YXIgdCxuLGkscz11LmNvbXBvc2VyLG89cy5nZXQoIm1vZGVsLnZpZXdPcGVuIikscj1kLmRlZmF1bHQuYnVpbGQoZSxhLGwpO298fHUuZ2V0KCJtb2RlbC5kZXRhaWxzLmNhbl9jcmVhdGVfcG9zdCIpPyh0PXthY3Rpb246Yy5kZWZhdWx0LlJFUExZLGRyYWZ0U2VxdWVuY2U6ZS5nZXQoInRvcGljLmRyYWZ0X3NlcXVlbmNlIiksZHJhZnRLZXk6ZS5nZXQoInRvcGljLmRyYWZ0X2tleSIpfSwxPT09ZS5nZXQoInBvc3RfbnVtYmVyIik/dC50b3BpYz1lLmdldCgidG9waWMiKTp0LnBvc3Q9ZSwobj1zLmdldCgibW9kZWwucG9zdCIpKSYmbi5nZXQoImlkIikhPT11LmdldCgicG9zdC5pZCIpJiYodC5wb3N0PW4pLHQucXVvdGU9cixzLmdldCgibW9kZWwudmlld09wZW4iKT91LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjppbnNlcnQtYmxvY2siLHIpOnMuZ2V0KCJtb2RlbC52aWV3RHJhZnQiKT8oKGk9cy5nZXQoIm1vZGVsIikpLnNldCgicmVwbHkiLGkuZ2V0KCJyZXBseSIpK3IpLHMuc2VuZCgib3BlbklmRHJhZnQiKSk6cy5vcGVuKHQpKTp1LnNlbmQoInJlcGx5QXNOZXdUb3BpYyIsZSxyKX0pfSxmaWxsR2FwQmVmb3JlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLmZpbGxHYXBCZWZvcmUoZS5wb3N0LGUuZ2FwKX0sZmlsbEdhcEFmdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLmZpbGxHYXBBZnRlcihlLnBvc3QsZS5nYXApfSxjdXJyZW50UG9zdENoYW5nZWQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixpPWUucG9zdDtpJiYodD1pLmdldCgicG9zdF9udW1iZXIiKSwobj10aGlzLm1vZGVsKS5zZXQoImN1cnJlbnRQb3N0Iix0KSx0PihuLmdldCgibGFzdF9yZWFkX3Bvc3RfbnVtYmVyIil8fDApJiYobi5zZXQoImxhc3RfcmVhZF9wb3N0X2lkIixpLmdldCgiaWQiKSksbi5zZXQoImxhc3RfcmVhZF9wb3N0X251bWJlciIsdCkpLHRoaXMuc2VuZCgicG9zdENoYW5nZWRSb3V0ZSIsdCksdGhpcy5fcHJvZ3Jlc3NJbmRleD1uLmdldCgicG9zdFN0cmVhbSIpLnByb2dyZXNzSW5kZXhPZlBvc3QoaSksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6Y3VycmVudC1wb3N0LWNoYW5nZWQiLHtwb3N0Oml9KSl9LGN1cnJlbnRQb3N0U2Nyb2xsZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50Iiksbj1wYXJzZUZsb2F0KHRoaXMuX3Byb2dyZXNzSW5kZXgrZS5wZXJjZW50LTEpL3Q7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIix7cG9zdEluZGV4OnRoaXMuX3Byb2dyZXNzSW5kZXgscGVyY2VudDpNYXRoLm1heChNYXRoLm1pbihuLDEpLDApfSl9LHRvcFZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT1lLnBvc3Qscz1lLnJlZnJlc2g7aSYmKG49KHQ9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKSkuZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpLGkuZ2V0JiYxPT09aS5nZXQoInBvc3RfbnVtYmVyIil8fG4mJm49PT1pJiZ0LnByZXBlbmRNb3JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBzKCl9KSl9LGJvdHRvbVZpc2libGVDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zdCxuPWUucmVmcmVzaCxpPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIikscz1pLmdldCgicG9zdHMubGFzdE9iamVjdCIpO3MmJnM9PT10JiZpLmdldCgiY2FuQXBwZW5kTW9yZSIpJiYoaS5hcHBlbmRNb3JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuKCl9KSxuKCkpfSx0b2dnbGVTdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS50b2dnbGVTdW1tYXJ5KCkudGhlbihmdW5jdGlvbigpe2UudXBkYXRlUXVlcnlQYXJhbXMoKX0pfSxyZW1vdmVBbGxvd2VkVXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmdldCgibW9kZWwuZGV0YWlscyIpLnJlbW92ZUFsbG93ZWRVc2VyKGUpLnRoZW4oZnVuY3Rpb24oKXt0LmN1cnJlbnRVc2VyLmlkPT09ZS5pZCYmdC50cmFuc2l0aW9uVG9Sb3V0ZSgidXNlclByaXZhdGVNZXNzYWdlcyIsZSl9KX0scmVtb3ZlQWxsb3dlZEdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgibW9kZWwuZGV0YWlscyIpLnJlbW92ZUFsbG93ZWRHcm91cChlKX0sZGVsZXRlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLmRlbGV0ZVRvcGljKCl9LHRvZ2dsZUFyY2hpdmVNZXNzYWdlOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG49dGhpcy5tb2RlbDtuLmdldCgiYXJjaGl2aW5nIil8fChlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZ290b0luYm94KG4uZ2V0KCJpbmJveEdyb3VwTmFtZSIpKX0sbi5nZXQoIm1lc3NhZ2VfYXJjaGl2ZWQiKT9uLm1vdmVUb0luYm94KCkudGhlbihlKTpuLmFyY2hpdmVNZXNzYWdlKCkudGhlbihlKSl9LGRlZmVyVG9waWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzY3JlZW4tdHJhY2s6bWFpbiIpLG49dGhpcy5jdXJyZW50VXNlcixpPXRoaXMubW9kZWw7dC5yZXNldCgpLHQuc3RvcCgpO3ZhciBzPWkuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIik/bi5wbVBhdGgoaSk6Ii8iOygwLGguYWpheCkoIi90LyIraS5nZXQoImlkIikrIi90aW1pbmdzLmpzb24/bGFzdD0xIix7dHlwZToiREVMRVRFIn0pLnRoZW4oZnVuY3Rpb24oKXtlLnNlc3Npb24uZ2V0KCJoaWdoZXN0U2VlbkJ5VG9waWMiKVtpLmdldCgiaWQiKV09bnVsbCxvLmRlZmF1bHQucm91dGVUbyhzKX0pLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfSxlZGl0Rmlyc3RQb3N0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7aWYoMSE9PShuPWUuZ2V0KCJwb3N0cy5maXJzdE9iamVjdCIpKS5nZXQoInBvc3RfbnVtYmVyIikpe3ZhciBuLGk9ZS5maW5kUG9zdElkRm9yUG9zdE51bWJlcigxKTtpZih2b2lkIDA9PT0obj1lLmZpbmRMb2FkZWRQb3N0KGkpKSlyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5sb2FkUG9zdChpKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2VuZCgiZWRpdFBvc3QiLGUpfSl9dGhpcy5zZW5kKCJlZGl0UG9zdCIsbil9LHJlcGx5VG9Qb3N0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY29tcG9zZXIsbj1lP2UuZ2V0KCJ0b3BpYyIpOnRoaXMubW9kZWwsaT10aGlzLnF1b3RlU3RhdGUscz10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO2lmKHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInBhZ2U6Y29tcG9zZS1yZXBseSIsbikscyYmbiYmbi5nZXQoImRldGFpbHMuY2FuX2NyZWF0ZV9wb3N0Iikpe3ZhciBvLHI9cy5maW5kTG9hZGVkUG9zdChpLnBvc3RJZCksYT1kLmRlZmF1bHQuYnVpbGQocixpLmJ1ZmZlcik7cmV0dXJuIGkuY2xlYXIoKSx0LmdldCgibW9kZWwudG9waWMuaWQiKT09PW4uZ2V0KCJpZCIpJiZ0LmdldCgibW9kZWwuYWN0aW9uIik9PT1jLmRlZmF1bHQuUkVQTFk/KHQuc2V0KCJtb2RlbC5wb3N0IixlKSx0LnNldCgibW9kZWwuY29tcG9zZVN0YXRlIixjLmRlZmF1bHQuT1BFTiksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LWJsb2NrIixhLnRyaW0oKSkpOihvPXthY3Rpb246Yy5kZWZhdWx0LlJFUExZLGRyYWZ0S2V5Om4uZ2V0KCJkcmFmdF9rZXkiKSxkcmFmdFNlcXVlbmNlOm4uZ2V0KCJkcmFmdF9zZXF1ZW5jZSIpfSxhJiYoby5xdW90ZT1hKSxlJiYxIT09ZS5nZXQoInBvc3RfbnVtYmVyIik/by5wb3N0PWU6by50b3BpYz1uLHQub3BlbihvKSksITF9fSxyZWNvdmVyUG9zdDpmdW5jdGlvbihlKXsxPT09ZS5nZXQoInBvc3RfbnVtYmVyIik/dGhpcy5yZWNvdmVyVG9waWMoKTplLnJlY292ZXIoKX0sZGVsZXRlUG9zdDpmdW5jdGlvbihpKXt2YXIgZT10aGlzO2lmKDE9PT1pLmdldCgicG9zdF9udW1iZXIiKSlyZXR1cm4gdGhpcy5kZWxldGVUb3BpYygpO2lmKCFpLmNhbl9kZWxldGUpcmV0dXJuITE7ZnVuY3Rpb24gcygpe3JldHVybiBlLmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIil9dmFyIG89dGhpcy5jdXJyZW50VXNlcix0PTA8aS5nZXQoInJlcGx5X2NvdW50Iikscj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5wb3N0cyIpO2lmKCFvLmdldCgic3RhZmYiKXx8IXQpcmV0dXJuIGkuZGVzdHJveShvKS50aGVuKHMpLmNhdGNoKGZ1bmN0aW9uKGUpeygwLHYucG9wdXBBamF4RXJyb3IpKGUpLGkudW5kb0RlbGV0ZVN0YXRlKCl9KTsoMCxoLmFqYXgpKCIvcG9zdHMvIitpLmlkKyIvcmVwbHktaWRzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gaS5kZXN0cm95KG8pLnRoZW4ocykuY2F0Y2goZnVuY3Rpb24oZSl7KDAsdi5wb3B1cEFqYXhFcnJvcikoZSksaS51bmRvRGVsZXRlU3RhdGUoKX0pO3ZhciB0PVtdO3QucHVzaCh7bGFiZWw6STE4bi50KCJjYW5jZWwiKSxjbGFzczoiYnRuLWRhbmdlciByaWdodCJ9KSx0LnB1c2goe2xhYmVsOkkxOG4udCgicG9zdC5jb250cm9scy5kZWxldGVfcmVwbGllcy5qdXN0X3RoZV9wb3N0IiksY2FsbGJhY2s6ZnVuY3Rpb24oKXtpLmRlc3Ryb3kobykudGhlbihzKS5jYXRjaChmdW5jdGlvbihlKXsoMCx2LnBvcHVwQWpheEVycm9yKShlKSxpLnVuZG9EZWxldGVTdGF0ZSgpfSl9fSksZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiAxPGUubGV2ZWx9KSYmdC5wdXNoKHtsYWJlbDpJMThuLnQoInBvc3QuY29udHJvbHMuZGVsZXRlX3JlcGxpZXMuYWxsX3JlcGxpZXMiLHtjb3VudDplLmxlbmd0aH0pLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybih0PT09aXx8ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5pZH0pKSYmdC5zZXREZWxldGVkU3RhdGUobyl9KSxhLmRlZmF1bHQuZGVsZXRlTWFueShbaS5pZF0uY29uY2F0KFAoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9KSkpKS50aGVuKHMpLmNhdGNoKHYucG9wdXBBamF4RXJyb3IpfX0pO3ZhciBuPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5sZXZlbH0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZH0pO3QucHVzaCh7bGFiZWw6STE4bi50KCJwb3N0LmNvbnRyb2xzLmRlbGV0ZV9yZXBsaWVzLmRpcmVjdF9yZXBsaWVzIix7Y291bnQ6bi5sZW5ndGh9KSxjbGFzczoiYnRuLXByaW1hcnkiLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ci5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybihlPT09aXx8bi5pbmNsdWRlcyhlLmlkKSkmJmUuc2V0RGVsZXRlZFN0YXRlKG8pfSksYS5kZWZhdWx0LmRlbGV0ZU1hbnkoW2kuaWRdLmNvbmNhdChQKG4pKSkudGhlbihzKS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKX19KSxib290Ym94LmRpYWxvZyhJMThuLnQoInBvc3QuY29udHJvbHMuZGVsZXRlX3JlcGxpZXMuY29uZmlybSIpLHQpfSl9LGVkaXRQb3N0OmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmN1cnJlbnRVc2VyKXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5jb250cm9scy5lZGl0X2Fub255bW91cyIpKTtpZighZS5jYW5fZWRpdClyZXR1cm4hMTt2YXIgdD10aGlzLmNvbXBvc2VyLG49dGhpcy5tb2RlbCxpPXQuZ2V0KCJtb2RlbCIpLHM9aSYmKGUuZ2V0KCJmaXJzdFBvc3QiKXx8aS5nZXQoImVkaXRpbmdGaXJzdFBvc3QiKSksbz0hMSxyPXRoaXMuZ2V0KCJzaXRlLnNoYXJlZF9kcmFmdHNfY2F0ZWdvcnlfaWQiKTtyJiZyPT09bi5nZXQoImNhdGVnb3J5LmlkIikmJihvPWUuZ2V0KCJmaXJzdFBvc3QiKSk7dmFyIGE9e3Bvc3Q6ZSxhY3Rpb246bz9jLmRlZmF1bHQuRURJVF9TSEFSRURfRFJBRlQ6Yy5kZWZhdWx0LkVESVQsZHJhZnRLZXk6ZS5nZXQoInRvcGljLmRyYWZ0X2tleSIpLGRyYWZ0U2VxdWVuY2U6ZS5nZXQoInRvcGljLmRyYWZ0X3NlcXVlbmNlIil9O28mJihhLmRlc3RpbmF0aW9uQ2F0ZWdvcnlJZD1uLmdldCgiZGVzdGluYXRpb25fY2F0ZWdvcnlfaWQiKSkscz90LmNhbmNlbENvbXBvc2VyKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Lm9wZW4oYSl9KTp0Lm9wZW4oYSl9LHRvZ2dsZUJvb2ttYXJrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY3VycmVudFVzZXI/ZT9lLnRvZ2dsZUJvb2ttYXJrKCkuY2F0Y2godi5wb3B1cEFqYXhFcnJvcik6dGhpcy5tb2RlbC50b2dnbGVCb29rbWFyaygpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix7aWQ6ZX0pfSl9KTpib290Ym94LmFsZXJ0KEkxOG4udCgiYm9va21hcmtzLm5vdF9ib29rbWFya2VkIikpfSx0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlcj9lP2UudG9nZ2xlQm9va21hcmtXaXRoUmVtaW5kZXIoKTp0aGlzLm1vZGVsLnRvZ2dsZUJvb2ttYXJrV2l0aFJlbWluZGVyKCk6Ym9vdGJveC5hbGVydChJMThuLnQoImJvb2ttYXJrcy5ub3RfYm9va21hcmtlZCIpKX0sanVtcFRvSW5kZXg6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvSW5kZXgoZSl9LGp1bXBUb0RhdGU6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvRGF0ZShlKX0sanVtcFRvUG9zdFByb21wdDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm1vZGVsOygwLHcuZGVmYXVsdCkoImp1bXAtdG8tcG9zdCIse21vZGFsQ2xhc3M6Imp1bXAtdG8tcG9zdC1tb2RhbCJ9KS5zZXRQcm9wZXJ0aWVzKHt0b3BpYzplLHBvc3ROdW1iZXI6bnVsbCxqdW1wVG9JbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gdC5zZW5kKCJqdW1wVG9JbmRleCIsZSl9LGp1bXBUb0RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2VuZCgianVtcFRvRGF0ZSIsZSl9fSl9LGp1bXBUb1Bvc3Q6ZnVuY3Rpb24oZSl7dGhpcy5fanVtcFRvUG9zdE51bWJlcihlKX0sanVtcFRvcDpmdW5jdGlvbigpe28uZGVmYXVsdC5yb3V0ZVRvKHRoaXMuZ2V0KCJtb2RlbC5maXJzdFBvc3RVcmwiKSx7c2tpcElmT25TY3JlZW46ITF9KX0sanVtcEJvdHRvbTpmdW5jdGlvbigpe28uZGVmYXVsdC5yb3V0ZVRvKHRoaXMuZ2V0KCJtb2RlbC5sYXN0UG9zdFVybCIpLHtza2lwSWZPblNjcmVlbjohMX0pfSxqdW1wRW5kOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6anVtcC10by1wb3N0Iix0aGlzLmdldCgibW9kZWwuaGlnaGVzdF9wb3N0X251bWJlciIpKSxvLmRlZmF1bHQucm91dGVUbyh0aGlzLmdldCgibW9kZWwubGFzdFBvc3RVcmwiKSx7anVtcEVuZDohMH0pfSxqdW1wVW5yZWFkOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvUG9zdElkKHRoaXMuZ2V0KCJtb2RlbC5sYXN0X3JlYWRfcG9zdF9pZCIpKX0sanVtcFRvUG9zdElkOmZ1bmN0aW9uKGUpe3RoaXMuX2p1bXBUb1Bvc3RJZChlKX0sdG9nZ2xlTXVsdGlTZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVByb3BlcnR5KCJtdWx0aVNlbGVjdCIpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc21hbGxBY3Rpb25Qb3N0SWRzKCk7dGhpcy5zZXQoInNlbGVjdGVkUG9zdElkcyIsW10uY29uY2F0KFAodGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uc3RyZWFtIikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmhhcyhlKX0pKSkpLHRoaXMuX2ZvcmNlUmVmcmVzaFBvc3RTdHJlYW0oKX0sZGVzZWxlY3RBbGw6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbXSksdGhpcy5fZm9yY2VSZWZyZXNoUG9zdFN0cmVhbSgpfSx0b2dnbGVQb3N0U2VsZWN0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2VsZWN0ZWRQb3N0SWRzO3QuaW5jbHVkZXMoZS5pZCk/dC5yZW1vdmVPYmplY3QoZS5pZCk6dC5hZGRPYmplY3QoZS5pZCl9LHNlbGVjdFJlcGxpZXM6ZnVuY3Rpb24obil7dmFyIGk9dGhpczsoMCxoLmFqYXgpKCIvcG9zdHMvIituLmlkKyIvcmVwbHktaWRzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkfSk7aS5zZWxlY3RlZFBvc3RJZHMucHVzaE9iamVjdHMoW24uaWRdLmNvbmNhdChQKHQpKSksaS5fZm9yY2VSZWZyZXNoUG9zdFN0cmVhbSgpfSl9LHNlbGVjdEJlbG93OmZ1bmN0aW9uKGUpe3ZhciB0LG47dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0uaXNNZWdhVG9waWMiKT90aGlzLl9sb2FkUG9zdElkcyhlKToobj0odD1bXS5jb25jYXQoUCh0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5zdHJlYW0iKSkpKS5zbGljZSh0LmluZGV4T2YoZS5pZCkpLHRoaXMuX3VwZGF0ZVNlbGVjdGVkUG9zdElkcyhuKSl9LGRlbGV0ZVNlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPXRoaXMuY3VycmVudFVzZXI7Ym9vdGJveC5jb25maXJtKEkxOG4udCgicG9zdC5kZWxldGUuY29uZmlybSIse2NvdW50OnRoaXMuc2VsZWN0ZWRQb3N0c0NvdW50fSksZnVuY3Rpb24oZSl7aWYoZSl7aWYodC5zZWxlY3RlZEFsbFBvc3RzKXJldHVybiB0LmRlbGV0ZVRvcGljKCk7YS5kZWZhdWx0LmRlbGV0ZU1hbnkodC5zZWxlY3RlZFBvc3RJZHMpLHQuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLnBvc3RzIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5wb3N0U2VsZWN0ZWQoZSkmJmUuc2V0RGVsZXRlZFN0YXRlKG4pfSksdC5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpfX0pfSxtZXJnZVBvc3RzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJwb3N0Lm1lcmdlLmNvbmZpcm0iLHtjb3VudDp0aGlzLnNlbGVjdGVkUG9zdHNDb3VudH0pLGZ1bmN0aW9uKGUpe2UmJihhLmRlZmF1bHQubWVyZ2VQb3N0cyh0LnNlbGVjdGVkUG9zdElkcyksdC5zZW5kKCJ0b2dnbGVNdWx0aVNlbGVjdCIpKX0pfSxjaGFuZ2VQb3N0T3duZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInNlbGVjdGVkUG9zdElkcyIsW2UuaWRdKSx0aGlzLnNlbmQoImNoYW5nZU93bmVyIil9LGxvY2tQb3N0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgibG9ja2VkIiwhMCl9LHVubG9ja1Bvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudXBkYXRlUG9zdEZpZWxkKCJsb2NrZWQiLCExKX0sZ3JhbnRCYWRnZTpmdW5jdGlvbihlKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbZS5pZF0pLHRoaXMuc2VuZCgic2hvd0dyYW50QmFkZ2VNb2RhbCIpfSxhZGROb3RpY2U6ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBrLlByb21pc2UoZnVuY3Rpb24oZSx0KXsoMCx3LmRlZmF1bHQpKCJhZGQtcG9zdC1ub3RpY2UiKS5zZXRQcm9wZXJ0aWVzKHtwb3N0Om4scmVzb2x2ZTplLHJlamVjdDp0fSl9KX0scmVtb3ZlTm90aWNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgibm90aWNlIixudWxsKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0UHJvcGVydGllcyh7bm90aWNlX3R5cGU6bnVsbCxub3RpY2VfYXJnczpudWxsfSl9KX0sdG9nZ2xlUGFydGljaXBhbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLnRvZ2dsZVBhcnRpY2lwYW50KGUuZ2V0KCJ1c2VybmFtZSIpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudXBkYXRlUXVlcnlQYXJhbXN9KX0sZWRpdFRvcGljOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJtb2RlbC5kZXRhaWxzLmNhbl9lZGl0IikmJnRoaXMuc2V0KCJlZGl0aW5nVG9waWMiLCEwKSwhMX0sY2FuY2VsRWRpdGluZ1RvcGljOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImVkaXRpbmdUb3BpYyIsITEpLHRoaXMucm9sbGJhY2tCdWZmZXIoKX0sZmluaXNoZWRFZGl0aW5nVG9waWM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXM7dGhpcy5lZGl0aW5nVG9waWMmJihlPXRoaXMuZ2V0KCJidWZmZXJlZC5idWZmZXIiKSxwLmRlZmF1bHQudXBkYXRlKHRoaXMubW9kZWwsZSkudGhlbihmdW5jdGlvbigpe3Qucm9sbGJhY2tCdWZmZXIoKSx0LnNldCgiZWRpdGluZ1RvcGljIiwhMSl9KS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKSl9LGV4cGFuZEhpZGRlbjpmdW5jdGlvbihlKXtyZXR1cm4gZS5leHBhbmRIaWRkZW4oKX0sdG9nZ2xlVmlzaWJpbGl0eTpmdW5jdGlvbigpe3RoaXMubW9kZWwudG9nZ2xlU3RhdHVzKCJ2aXNpYmxlIil9LHRvZ2dsZUNsb3NlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWw7dGhpcy5tb2RlbC50b2dnbGVTdGF0dXMoImNsb3NlZCIpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRvcGljX3N0YXR1c191cGRhdGUiLGUudG9waWNfc3RhdHVzX3VwZGF0ZSl9KX0scmVjb3ZlclRvcGljOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZWNvdmVyKCl9LG1ha2VCYW5uZXI6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLm1ha2VCYW5uZXIoKX0scmVtb3ZlQmFubmVyOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZW1vdmVCYW5uZXIoKX0sdG9nZ2xlUGlubmVkOmZ1bmN0aW9uKCl7dmFyIGU9IXRoaXMuZ2V0KCJtb2RlbC5waW5uZWRfYXQiKSx0PXRoaXMubW9kZWwsbj10aGlzLmdldCgibW9kZWwucGlubmVkSW5DYXRlZ29yeVVudGlsIik7cmV0dXJuIHQuc2V0UHJvcGVydGllcyh7cGlubmVkX2F0OmU/bW9tZW50KCk6bnVsbCxwaW5uZWRfZ2xvYmFsbHk6ITEscGlubmVkX3VudGlsOmU/bjpudWxsfSksdC5zYXZlU3RhdHVzKCJwaW5uZWQiLGUsbil9LHBpbkdsb2JhbGx5OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbCx0PXRoaXMuZ2V0KCJtb2RlbC5waW5uZWRHbG9iYWxseVVudGlsIik7cmV0dXJuIGUuc2V0UHJvcGVydGllcyh7cGlubmVkX2F0Om1vbWVudCgpLHBpbm5lZF9nbG9iYWxseTohMCxwaW5uZWRfdW50aWw6dH0pLGUuc2F2ZVN0YXR1cygicGlubmVkX2dsb2JhbGx5IiwhMCx0KX0sdG9nZ2xlQXJjaGl2ZWQ6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnRvZ2dsZVN0YXR1cygiYXJjaGl2ZWQiKX0sY2xlYXJQaW46ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmNsZWFyUGluKCl9LHRvZ2dsZVBpbm5lZEZvclVzZXI6ZnVuY3Rpb24oKXt2YXIgZTt0aGlzLmdldCgibW9kZWwucGlubmVkX2F0IikmJigoZT10aGlzLm1vZGVsKS5nZXQoInBpbm5lZCIpP2UuY2xlYXJQaW4oKTplLnJlUGluKCkpfSxyZXBseUFzTmV3VG9waWM6ZnVuY3Rpb24oaSxlKXt2YXIgdCxuLHMsbyxyPXRoaXMsYT10aGlzLmNvbXBvc2VyLGw9dGhpcy5xdW90ZVN0YXRlO2U9ZXx8ZC5kZWZhdWx0LmJ1aWxkKGksbC5idWZmZXIpLGwuY2xlYXIoKSx0PXRoaXMuZ2V0KCJtb2RlbC5pc1ByaXZhdGVNZXNzYWdlIik/KG49dGhpcy5nZXQoIm1vZGVsLmRldGFpbHMuYWxsb3dlZF91c2VycyIpLHM9dGhpcy5nZXQoIm1vZGVsLmRldGFpbHMuYWxsb3dlZF9ncm91cHMiKSxvPVtdLG4uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gby5wdXNoKGUudXNlcm5hbWUpfSkscy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBvLnB1c2goZS5uYW1lKX0pLG89by5qb2luKCkse2FjdGlvbjpjLmRlZmF1bHQuUFJJVkFURV9NRVNTQUdFLGFyY2hldHlwZUlkOiJwcml2YXRlX21lc3NhZ2UiLGRyYWZ0S2V5OmkudG9waWMuZHJhZnRfa2V5LHVzZXJuYW1lczpvfSk6e2FjdGlvbjpjLmRlZmF1bHQuQ1JFQVRFX1RPUElDLGRyYWZ0S2V5OmkudG9waWMuZHJhZnRfa2V5LGNhdGVnb3J5SWQ6dGhpcy5nZXQoIm1vZGVsLmNhdGVnb3J5LmlkIil9LGEub3Blbih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuKDAsdS5pc0VtcHR5KShlKT8iIjplfSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2xvY2F0aW9uLmhvc3QraS5nZXQoInVybCIpLG49IlsiK0hhbmRsZWJhcnMuZXNjYXBlRXhwcmVzc2lvbihyLmdldCgibW9kZWwudGl0bGUiKSkrIl0oIit0KyIpIjthLmdldCgibW9kZWwiKS5wcmVwZW5kVGV4dChJMThuLnQoInBvc3QuY29udGludWVfZGlzY3Vzc2lvbiIse3Bvc3RMaW5rOm59KSsiXG5cbiIrZSx7bmV3X2xpbmU6ITB9KX0pfSxyZXRyeUxvYWRpbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJyZXRyeWluZyIsITApO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZS5zZXQoInJldHJ5aW5nIiwhMSl9dGhpcy5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5yZWZyZXNoKCkudGhlbih0LHQpfSx0b2dnbGVXaWtpOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgid2lraSIsIWUuZ2V0KCJ3aWtpIikpfSx0b2dnbGVQb3N0VHlwZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUuZ2V0KCJwb3N0X3R5cGVzLnJlZ3VsYXIiKSxuPXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpO3JldHVybiBlLnVwZGF0ZVBvc3RGaWVsZCgicG9zdF90eXBlIixlLmdldCgicG9zdF90eXBlIik9PT1uP3Q6bil9LHJlYmFrZVBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmViYWtlKCl9LHVuaGlkZVBvc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudW5oaWRlKCl9LGNvbnZlcnRUb1B1YmxpY1RvcGljOmZ1bmN0aW9uKCl7KDAsdy5kZWZhdWx0KSgiY29udmVydC10by1wdWJsaWMtdG9waWMiLHttb2RlbDp0aGlzLm1vZGVsLG1vZGFsQ2xhc3M6ImNvbnZlcnQtdG8tcHVibGljLXRvcGljIn0pfSxjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZTpmdW5jdGlvbigpe3RoaXMubW9kZWwuY29udmVydFRvcGljKCJwcml2YXRlIikudGhlbihmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KS5jYXRjaCh2LnBvcHVwQWpheEVycm9yKX0scmVtb3ZlRmVhdHVyZWRMaW5rOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJ1ZmZlcmVkLmZlYXR1cmVkX2xpbmsiLG51bGwpfSxyZXNldEJ1bXBEYXRlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5yZXNldEJ1bXBEYXRlKCl9LHJlbW92ZVRvcGljVGltZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3guZGVmYXVsdC51cGRhdGVTdGF0dXModGhpcy5nZXQoIm1vZGVsLmlkIiksbnVsbCxudWxsLGUsbnVsbCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLnNldCgibW9kZWwuIit0LGkuZGVmYXVsdC5jcmVhdGUoe30pKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLHYucG9wdXBBamF4RXJyb3IpKGUpfSl9fSxfanVtcFRvSW5kZXg6ZnVuY3Rpb24oZSl7dmFyIHQsbixpPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtIik7aS5nZXQoImlzTWVnYVRvcGljIik/dGhpcy5fanVtcFRvUG9zdE51bWJlcihlKToodD1pLmdldCgic3RyZWFtIiksbj1NYXRoLm1heCgxLE1hdGgubWluKHQubGVuZ3RoLGUpKSx0aGlzLl9qdW1wVG9Qb3N0SWQodFtuLTFdKSl9LF9qdW1wVG9EYXRlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO24ubG9hZE5lYXJlc3RQb3N0VG9EYXRlKGUpLnRoZW4oZnVuY3Rpb24oZSl7by5kZWZhdWx0LnJvdXRlVG8odC5tb2RlbC51cmxGb3JQb3N0TnVtYmVyKGUuZ2V0KCJwb3N0X251bWJlciIpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QuX2p1bXBUb0luZGV4KG4uZ2V0KCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIikpfSl9LF9qdW1wVG9Qb3N0TnVtYmVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbSIpLGk9bi5nZXQoInBvc3RzIikuZmluZEJ5KCJwb3N0X251bWJlciIsZSk7aT9vLmRlZmF1bHQucm91dGVUbyh0aGlzLm1vZGVsLnVybEZvclBvc3ROdW1iZXIoaS5nZXQoInBvc3RfbnVtYmVyIikpKTpuLmxvYWRQb3N0QnlQb3N0TnVtYmVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7by5kZWZhdWx0LnJvdXRlVG8odC5tb2RlbC51cmxGb3JQb3N0TnVtYmVyKGUuZ2V0KCJwb3N0X251bWJlciIpKSl9KX0sX2p1bXBUb1Bvc3RJZDpmdW5jdGlvbihlKXt2YXIgdCxuLGk7ZT8odGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWM6anVtcC10by1wb3N0IixlKSwoaT0obj0odD10aGlzLm1vZGVsKS5nZXQoInBvc3RTdHJlYW0iKSkuZmluZExvYWRlZFBvc3QoZSkpP28uZGVmYXVsdC5yb3V0ZVRvKHQudXJsRm9yUG9zdE51bWJlcihpLmdldCgicG9zdF9udW1iZXIiKSkpOm4uZmluZFBvc3RzQnlJZHMoW2VdKS50aGVuKGZ1bmN0aW9uKGUpe28uZGVmYXVsdC5yb3V0ZVRvKHQudXJsRm9yUG9zdE51bWJlcihlWzBdLmdldCgicG9zdF9udW1iZXIiKSkpfSkpOmNvbnNvbGUud2FybigianVtcC1wb3N0IGNvZGUgYnJva2VuIC0gcmVxdWVzdGVkIGFuIGluZGV4IG91dHNpZGUgdGhlIHN0cmVhbSBhcnJheSIpfSx0b2dnbGVQaW5uZWRTdGF0ZTpmdW5jdGlvbigpe3RoaXMuc2VuZCgidG9nZ2xlUGlubmVkRm9yVXNlciIpfSxwcmludDpmdW5jdGlvbigpezA8dGhpcy5zaXRlU2V0dGluZ3MubWF4X3ByaW50c19wZXJfaG91cl9wZXJfdXNlciYmd2luZG93Lm9wZW4odGhpcy5nZXQoIm1vZGVsLnByaW50VXJsIiksIiIsIm1lbnViYXI9bm8sdG9vbGJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHdpZHRoPTYwMCxoZWlnaHQ9MzE1Iil9LGhhc0Vycm9yOigwLHQub3IpKCJtb2RlbC5lcnJvckh0bWwiLCJtb2RlbC5lcnJvck1lc3NhZ2UiKSxub0Vycm9yWWV0OigwLHQubm90KSgiaGFzRXJyb3IiKSxjYXRlZ29yaWVzOigwLHQuYWxpYXMpKCJzaXRlLmNhdGVnb3JpZXNMaXN0Iiksc2VsZWN0ZWRQb3N0c0NvdW50OigwLHQuYWxpYXMpKCJzZWxlY3RlZFBvc3RJZHMubGVuZ3RoIiksc2VsZWN0ZWRQb3N0czpmdW5jdGlvbihlLG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSl9LHNlbGVjdGVkUG9zdHNVc2VybmFtZTpmdW5jdGlvbihlLHQpe2lmKCEodC5sZW5ndGg8MXx8ZT50Lmxlbmd0aCkpe3ZhciBuPXRbMF0udXNlcm5hbWU7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWU9PT1ufSk/bjp2b2lkIDB9fSxzZWxlY3RlZEFsbFBvc3RzOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiB0P2k8PWU6bjw9ZX0sY2FuU2VsZWN0QWxsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIXQmJiFlfSxjYW5EZXNlbGVjdEFsbDooMCx0LmFsaWFzKSgic2VsZWN0ZWRBbGxQb3N0cyIpLGNhbkRlbGV0ZVNlbGVjdGVkOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiAwPHQmJihuJiZlfHxpLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiBlLmNhbl9kZWxldGV9KSl9LGNhbk1lcmdlVG9waWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmMDx0fSxjYW5DaGFuZ2VPd25lcjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJjA8dCYmdm9pZCAwIT09bn0sY2FuTWVyZ2VQb3N0czpmdW5jdGlvbihlLHQsbil7cmV0dXJuIDE8ZSYmdm9pZCAwIT09dCYmbi5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4gZS5jYW5fZGVsZXRlfSl9LF9tdWx0aVNlbGVjdENoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2VsZWN0ZWRQb3N0SWRzIixbXSl9LHBvc3RTZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZEFsbFBvc3R8fHRoaXMuc2VsZWN0ZWRQb3N0SWRzLmluY2x1ZGVzKGUuaWQpfSxsb2FkaW5nSFRNTDpmdW5jdGlvbigpe3JldHVybiB5LnNwaW5uZXJIVE1MfSxyZWNvdmVyVG9waWM6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLnJlY292ZXIoKX0sZGVsZXRlVG9waWM6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmRlc3Ryb3kodGhpcy5jdXJyZW50VXNlcil9LHN1YnNjcmliZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy51bnN1YnNjcmliZSgpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGEuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLGUpfXRoaXMubWVzc2FnZUJ1cy5zdWJzY3JpYmUoIi90b3BpYy8iK3RoaXMuZ2V0KCJtb2RlbC5pZCIpLGZ1bmN0aW9uKGUpe3ZhciB0PWEubW9kZWw7aWYoKDAsdS5pc1ByZXNlbnQpKGUubm90aWZpY2F0aW9uX2xldmVsX2NoYW5nZSkpcmV0dXJuIHQuc2V0KCJkZXRhaWxzLm5vdGlmaWNhdGlvbl9sZXZlbCIsZS5ub3RpZmljYXRpb25fbGV2ZWxfY2hhbmdlKSx2b2lkIHQuc2V0KCJkZXRhaWxzLm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkIixlLm5vdGlmaWNhdGlvbnNfcmVhc29uX2lkKTt2YXIgbixpLHMsbz1hLmdldCgibW9kZWwucG9zdFN0cmVhbSIpO2lmKGUucmVsb2FkX3RvcGljKXQucmVsb2FkKCkudGhlbihmdW5jdGlvbigpe2Euc2VuZCgicG9zdENoYW5nZWRSb3V0ZSIsdC5nZXQoInBvc3RfbnVtYmVyIil8fDEpLGEuYXBwRXZlbnRzLnRyaWdnZXIoImhlYWRlcjp1cGRhdGUtdG9waWMiLHQpLGUucmVmcmVzaF9zdHJlYW0mJm8ucmVmcmVzaCgpfSk7ZWxzZXtzd2l0Y2goZS50eXBlKXtjYXNlImFjdGVkIjpvLnRyaWdnZXJDaGFuZ2VkUG9zdChlLmlkLGUudXBkYXRlZF9hdCx7cHJlc2VydmVDb29rZWQ6ITB9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWQscmVmcmVzaExpa2VzOiEwfSl9KTticmVhaztjYXNlInJlYWQiOm8udHJpZ2dlclJlYWRQb3N0KGUuaWQsZS5yZWFkZXJzX2NvdW50KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWQscmVmcmVzaExpa2VzOiEwfSl9KTticmVhaztjYXNlInJldmlzZWQiOmNhc2UicmViYWtlZCI6by50cmlnZ2VyQ2hhbmdlZFBvc3QoZS5pZCxlLnVwZGF0ZWRfYXQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbCh7aWQ6ZS5pZH0pfSk7YnJlYWs7Y2FzZSJkZWxldGVkIjpvLnRyaWdnZXJEZWxldGVkUG9zdChlLmlkKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGwoe2lkOmUuaWR9KX0pO2JyZWFrO2Nhc2UicmVjb3ZlcmVkIjpvLnRyaWdnZXJSZWNvdmVyZWRQb3N0KGUuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbCh7aWQ6ZS5pZH0pfSk7YnJlYWs7Y2FzZSJjcmVhdGVkIjpvLnRyaWdnZXJOZXdQb3N0SW5TdHJlYW0oZS5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsKCl9KSxhLmdldCgiY3VycmVudFVzZXIuaWQiKSE9PWUudXNlcl9pZCYmRGlzY291cnNlLmluY3JlbWVudEJhY2tncm91bmRDb250ZXh0Q291bnQoKTticmVhaztjYXNlIm1vdmVfdG9faW5ib3giOnQuc2V0KCJtZXNzYWdlX2FyY2hpdmVkIiwhMSk7YnJlYWs7Y2FzZSJhcmNoaXZlZCI6dC5zZXQoIm1lc3NhZ2VfYXJjaGl2ZWQiLCEwKTticmVhaztkZWZhdWx0OnZhciByPUdbZS50eXBlXTtyP3IoYSxlKTpjb25zb2xlLndhcm4oInVua25vd24gdG9waWMgYnVzIG1lc3NhZ2UgdHlwZSIsZSl9dC5nZXQoImlzUHJpdmF0ZU1lc3NhZ2UiKSYmYS5jdXJyZW50VXNlciYmYS5jdXJyZW50VXNlci5nZXQoImlkIikhPT1lLnVzZXJfaWQmJi0yPT09ZS51c2VyX2lkJiYiY3JlYXRlZCI9PT1lLnR5cGUmJihuPWUucG9zdF9udW1iZXIsaT10LmdldCgiaGlnaGVzdF9wb3N0X251bWJlciIpPD1uLHM9bi10LmdldCgiY3VycmVudFBvc3QiKSxpJiYwPHMmJnM8NyYmYS5fc2Nyb2xsVG9Qb3N0KGUucG9zdF9udW1iZXIpKX19LHRoaXMuZ2V0KCJtb2RlbC5tZXNzYWdlX2J1c19sYXN0X2lkIikpfSxfc2Nyb2xsVG9Qb3N0OigwLG0uZGVmYXVsdCkoZnVuY3Rpb24oZSl7dmFyIHQ9JCgiLnRvcGljLXBvc3QgYXJ0aWNsZSNwb3N0XyIrZSk7MD09PXQubGVuZ3RofHwoMCxmLmRlZmF1bHQpKHQpfHwkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOnQub2Zmc2V0KCkudG9wfSwxZTMpfSw1MDApLHVuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7dGhpcy5nZXQoIm1vZGVsLmlkIikmJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3RvcGljLyoiKX0scmVwbHk6ZnVuY3Rpb24oKXt0aGlzLnJlcGx5VG9Qb3N0KCl9LHJlYWRQb3N0czpmdW5jdGlvbihlLHQpe3ZhciBuLGk9dGhpcyxzPXRoaXMubW9kZWwsbz1zLmdldCgicG9zdFN0cmVhbSIpO3MuZ2V0KCJpZCIpPT09ZSYmKG8uZ2V0KCJwb3N0cyIpLmZvckVhY2goZnVuY3Rpb24oZSl7IWUucmVhZCYmdC5pbmNsdWRlcyhlLnBvc3RfbnVtYmVyKSYmKGUuc2V0KCJyZWFkIiwhMCksaS5hcHBFdmVudHMudHJpZ2dlcigicG9zdC1zdHJlYW06cmVmcmVzaCIse2lkOmUuZ2V0KCJpZCIpfSkpfSksdGhpcy5zaXRlU2V0dGluZ3MuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MmJnRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MmJihuPV8ubWF4KHQpLHMuZ2V0KCJwaW5uZWQiKSYmbj49cy5nZXQoImhpZ2hlc3RfcG9zdF9udW1iZXIiKSYmKDAsci5uZXh0KShmdW5jdGlvbigpe3JldHVybiBzLmNsZWFyUGluKCl9KSkpfSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLmxvYWRlZCIpJiZ0aGlzLmdldCgibW9kZWwucG9zdFN0cmVhbS5sb2FkZWRBbGxQb3N0cyIpO3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIixlKX19LCJfdGl0bGVDaGFuZ2VkIixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJfdGl0bGVDaGFuZ2VkIiksViksaihWLCJlbWJlZFF1b3RlQnV0dG9uIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJlbWJlZFF1b3RlQnV0dG9uIiksViksaihWLCJzaG93U2hhcmVkRHJhZnRDb250cm9scyIsW09dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2hvd1NoYXJlZERyYWZ0Q29udHJvbHMiKSxWKSxqKFYsInNob3dTZWxlY3RlZFBvc3RzQXRCb3R0b20iLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInNob3dTZWxlY3RlZFBvc3RzQXRCb3R0b20iKSxWKSxqKFYsInBvc3RzVG9SZW5kZXIiLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInBvc3RzVG9SZW5kZXIiKSxWKSxqKFYsImFuZHJvaWRMb2FkaW5nIixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJhbmRyb2lkTG9hZGluZyIpLFYpLGooViwicG1QYXRoIixbRF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJwbVBhdGgiKSxWKSxqKFYsInNlbGVjdGVkUXVlcnkiLFtiLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2VsZWN0ZWRRdWVyeSIpLFYpLGooViwiY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIixbSV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxWKSxqKFYsImZlYXR1cmVkTGlua0RvbWFpbiIsW0xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiZmVhdHVyZWRMaW5rRG9tYWluIiksViksaihWLCJjYW5FZGl0VGFncyIsW0FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2FuRWRpdFRhZ3MiKSxWKSxqKFYsInNlbGVjdGVkUG9zdHMiLFtOXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsInNlbGVjdGVkUG9zdHMiKSxWKSxqKFYsInNlbGVjdGVkUG9zdHNVc2VybmFtZSIsW3pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwic2VsZWN0ZWRQb3N0c1VzZXJuYW1lIiksViksaihWLCJzZWxlY3RlZEFsbFBvc3RzIixbVV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJzZWxlY3RlZEFsbFBvc3RzIiksViksaihWLCJjYW5TZWxlY3RBbGwiLFtGXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhblNlbGVjdEFsbCIpLFYpLGooViwiY2FuRGVsZXRlU2VsZWN0ZWQiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhbkRlbGV0ZVNlbGVjdGVkIiksViksaihWLCJjYW5NZXJnZVRvcGljIixbUl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihWLCJjYW5NZXJnZVRvcGljIiksViksaihWLCJjYW5DaGFuZ2VPd25lciIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiY2FuQ2hhbmdlT3duZXIiKSxWKSxqKFYsImNhbk1lcmdlUG9zdHMiLFtIXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImNhbk1lcmdlUG9zdHMiKSxWKSxqKFYsIl9tdWx0aVNlbGVjdENoYW5nZWQiLFtLXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsIl9tdWx0aVNlbGVjdENoYW5nZWQiKSxWKSxqKFYsImxvYWRpbmdIVE1MIixbYi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFYsImxvYWRpbmdIVE1MIiksViksaihWLCJfc2hvd0Zvb3RlciIsW1ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoViwiX3Nob3dGb290ZXIiKSxWKSxWKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91cGxvYWQtc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9taXhpbnMvbW9kYWwtZnVuY3Rpb25hbGl0eSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdXBsb2FkcyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztmdW5jdGlvbiBkKGUsdCl7cmV0dXJuKDAsby5hbGxvd3NBdHRhY2htZW50cykodC5zdGFmZikmJihlKz0iX3dpdGhfYXR0YWNobWVudHMiKSwidXBsb2FkX3NlbGVjdG9yLiIrZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMuZGVmYXVsdCkoKSxsPSgwLHMuZGVmYXVsdCkoKSx1PSgwLHMuZGVmYXVsdCkoInNlbGVjdGlvbiIpLHIoYz17aW1hZ2VVcmw6bnVsbCxsb2NhbDooMCx0LmVxdWFsKSgic2VsZWN0aW9uIiwibG9jYWwiKSxyZW1vdGU6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsInJlbW90ZSIpLHNlbGVjdGlvbjoibG9jYWwiLHVwbG9hZEljb246ZnVuY3Rpb24oKXtyZXR1cm4oMCxvLnVwbG9hZEljb24pKHRoaXMuY3VycmVudFVzZXIuc3RhZmYpfSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiBkKCJ0aXRsZSIsdGhpcy5jdXJyZW50VXNlcil9LHRpcDpmdW5jdGlvbihlKXt2YXIgdD0oMCxvLmF1dGhvcml6ZXNBbGxFeHRlbnNpb25zKSh0aGlzLmN1cnJlbnRVc2VyLnN0YWZmKT8iIjoiKCIrKDAsby5hdXRob3JpemVkRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZikrIikiO3JldHVybiBJMThuLnQoZChlKyJfdGlwIix0aGlzLmN1cnJlbnRVc2VyKSx7YXV0aG9yaXplZF9leHRlbnNpb25zOnR9KX0sYWN0aW9uczp7dXBsb2FkOmZ1bmN0aW9uKCl7dmFyIGUsdDt0aGlzLmxvY2FsPyQoIi53bWQtY29udHJvbHMiKS5maWxldXBsb2FkKCJhZGQiLHtmaWxlSW5wdXQ6JCgiI2ZpbGVuYW1lLWlucHV0Iil9KTooZT10aGlzLmltYWdlVXJsfHwiIix0PXRoaXMudG9vbGJhckV2ZW50LGUubWF0Y2goL1wuKGpwZ3xqcGVnfHBuZ3xnaWYpJC8pP3QuYWRkVGV4dCgiIVtdKCIrZSsiKSIpOnQuYWRkVGV4dChlKSksdGhpcy5zZW5kKCJjbG9zZU1vZGFsIil9fX0sInVwbG9hZEljb24iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInVwbG9hZEljb24iKSxjKSxyKGMsInRpdGxlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJ0aXRsZSIpLGMpLHIoYywidGlwIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJ0aXAiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLWFjdGl2aXR5IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29udHJvbGxlciIsImRpc2NvdXJzZS9saWIvZXhwb3J0LWNzdiIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbSxmO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCxvLm9ic2VydmVzKSgidXNlckFjdGlvblR5cGUiLCJtb2RlbC5zdHJlYW0uaXRlbXNMb2FkZWQiKSxhPXthcHBsaWNhdGlvbjooMCxpLmluamVjdCkoKSxyb3V0ZXI6KDAsbi5pbmplY3QpKCksdXNlcjooMCxpLmluamVjdCkoKSx1c2VyQWN0aW9uVHlwZTpudWxsLGNhbkRvd25sb2FkUG9zdHM6KDAsdC5hbGlhcykoInVzZXIudmlld2luZ1NlbGYiKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzO3Q9dGhpcy51c2VyQWN0aW9uVHlwZT8oZT0odGhpcy5nZXQoIm1vZGVsLnN0YXRzIil8fFtdKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFjdGlvbl90eXBlPT09bi51c2VyQWN0aW9uVHlwZX0pKSYmZS5jb3VudDw9dGhpcy5nZXQoIm1vZGVsLnN0cmVhbS5pdGVtc0xvYWRlZCIpOnRoaXMuZ2V0KCJtb2RlbC5zdGF0c0NvdW50Tm9uUE0iKTw9dGhpcy5nZXQoIm1vZGVsLnN0cmVhbS5pdGVtc0xvYWRlZCIpLHRoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIix0KX0sYWN0aW9uczp7ZXhwb3J0VXNlckFyY2hpdmU6ZnVuY3Rpb24oKXtib290Ym94LmNvbmZpcm0oSTE4bi50KCJ1c2VyLmRvd25sb2FkX2FyY2hpdmUuY29uZmlybSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe3JldHVybiBlPygwLHMuZXhwb3J0VXNlckFyY2hpdmUpKCk6bnVsbH0pfX19LHU9YSxjPSJfc2hvd0Zvb3RlciIsZD1bcl0sbD0obD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9zaG93Rm9vdGVyIikpP2wudmFsdWU6dm9pZCAwLHA9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSxtPWEsZj17fSxPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZbZV09cFtlXX0pLGYuZW51bWVyYWJsZT0hIWYuZW51bWVyYWJsZSxmLmNvbmZpZ3VyYWJsZT0hIWYuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZnx8Zi5pbml0aWFsaXplcikmJihmLndyaXRhYmxlPSEwKSxmPWQuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQodSxjLGUpfHxlfSxmKSxtJiZ2b2lkIDAhPT1mLmluaXRpYWxpemVyJiYoZi52YWx1ZT1mLmluaXRpYWxpemVyP2YuaW5pdGlhbGl6ZXIuY2FsbChtKTp2b2lkIDAsZi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWYuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkodSxjLGYpLGY9bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdXNlci1iYWRnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHt1c2VyOigwLG4uaW5qZWN0KSgpLHVzZXJuYW1lOigwLHQuYWxpYXMpKCJ1c2VyLm1vZGVsLnVzZXJuYW1lX2xvd2VyIiksc29ydGVkQmFkZ2VzOigwLHQuc29ydCkoIm1vZGVsIiwiYmFkZ2VTb3J0T3JkZXIiKSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYmFkZ2VTb3J0T3JkZXI9WyJiYWRnZS5iYWRnZV90eXBlLnNvcnRfb3JkZXIiLCJiYWRnZS5uYW1lIl19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLWNhcmQiLFsiZXhwb3J0cyIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3RvcGljOigwLG4uaW5qZWN0KSgpLHJvdXRlcjooMCx0LmluamVjdCkoKSxhY3Rpb25zOnt0b2dnbGVQb3N0czpmdW5jdGlvbihlKXt0aGlzLnRvcGljLnNlbmQoInRvZ2dsZVBhcnRpY2lwYW50IixlKX0sc2hvd1VzZXI6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oKDAsaS51c2VyUGF0aCkoZS51c2VybmFtZV9sb3dlcikpfSxzaG93R3JvdXA6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oKDAsaS5ncm91cFBhdGgpKGUubmFtZSkpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItaW52aXRlZC1zaG93IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbW9kZWxzL2ludml0ZSIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHIub2JzZXJ2ZXMpKCJzZWFyY2hUZXJtIiksdT0oMCxyLmRlZmF1bHQpKCJmaWx0ZXIiKSxjPSgwLHIuZGVmYXVsdCkoImludml0ZXNDb3VudC50b3RhbCIsImludml0ZXNDb3VudC5wZW5kaW5nIiksZD0oMCxyLmRlZmF1bHQpKCJpbnZpdGVzQ291bnQudG90YWwiLCJpbnZpdGVzQ291bnQucmVkZWVtZWQiKSxhKHA9e3VzZXI6bnVsbCxtb2RlbDpudWxsLGZpbHRlcjpudWxsLHRvdGFsSW52aXRlczpudWxsLGludml0ZXNDb3VudDpudWxsLGNhbkxvYWRNb3JlOiEwLGludml0ZXNMb2FkaW5nOiExLHJlaW52aXRlZEFsbDohMSxyZXNjaW5kZWRBbGw6ITEsc2VhcmNoVGVybTpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoInNlYXJjaFRlcm0iLCIiKX0sX3NlYXJjaFRlcm1DaGFuZ2VkOigwLHMuZGVmYXVsdCkoZnVuY3Rpb24oKXt2YXIgdD10aGlzO2kuZGVmYXVsdC5maW5kSW52aXRlZEJ5KHRoaXMudXNlcix0aGlzLmZpbHRlcix0aGlzLnNlYXJjaFRlcm0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0KCJtb2RlbCIsZSl9KX0sMjUwKSxpbnZpdGVSZWRlZW1lZDooMCx0LmVxdWFsKSgiZmlsdGVyIiwicmVkZWVtZWQiKSxzaG93QnVsa0FjdGlvbkJ1dHRvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuInBlbmRpbmciPT09ZSYmNDx0aGlzLm1vZGVsLmludml0ZXMubGVuZ3RoJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKX0sY2FuSW52aXRlVG9Gb3J1bTooMCx0LnJlYWRzKSgiY3VycmVudFVzZXIuY2FuX2ludml0ZV90b19mb3J1bSIpLGNhbkJ1bGtJbnZpdGU6KDAsdC5yZWFkcykoImN1cnJlbnRVc2VyLmFkbWluIiksc2hvd1NlYXJjaDooMCx0Lmd0ZSkoInRvdGFsSW52aXRlcyIsMTApLHBlbmRpbmdMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiA1MDxlP0kxOG4udCgidXNlci5pbnZpdGVkLnBlbmRpbmdfdGFiX3dpdGhfY291bnQiLHtjb3VudDp0fSk6STE4bi50KCJ1c2VyLmludml0ZWQucGVuZGluZ190YWIiKX0scmVkZWVtZWRMYWJlbDpmdW5jdGlvbihlLHQpe3JldHVybiA1MDxlP0kxOG4udCgidXNlci5pbnZpdGVkLnJlZGVlbWVkX3RhYl93aXRoX2NvdW50Iix7Y291bnQ6dH0pOkkxOG4udCgidXNlci5pbnZpdGVkLnJlZGVlbWVkX3RhYiIpfSxhY3Rpb25zOntyZXNjaW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlc2NpbmQoKSwhMX0scmVzY2luZEFsbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Ym9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5pbnZpdGVkLnJlc2NpbmRfYWxsX2NvbmZpcm0iKSxmdW5jdGlvbihlKXtlJiZpLmRlZmF1bHQucmVzY2luZEFsbCgpLnRoZW4oZnVuY3Rpb24oKXt0LnNldCgicmVzY2luZGVkQWxsIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSxyZWludml0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWludml0ZSgpLCExfSxyZWludml0ZUFsbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Ym9vdGJveC5jb25maXJtKEkxOG4udCgidXNlci5pbnZpdGVkLnJlaW52aXRlX2FsbF9jb25maXJtIiksZnVuY3Rpb24oZSl7ZSYmaS5kZWZhdWx0LnJlaW52aXRlQWxsKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnNldCgicmVpbnZpdGVkQWxsIiwhMCl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLm1vZGVsO3RoaXMuY2FuTG9hZE1vcmUmJiF0aGlzLmludml0ZXNMb2FkaW5nJiYodGhpcy5zZXQoImludml0ZXNMb2FkaW5nIiwhMCksaS5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodGhpcy51c2VyLHRoaXMuZmlsdGVyLHRoaXMuc2VhcmNoVGVybSxuLmludml0ZXMubGVuZ3RoKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJpbnZpdGVzTG9hZGluZyIsITEpLG4uaW52aXRlcy5wdXNoT2JqZWN0cyhlLmludml0ZXMpLCgwPT09ZS5pbnZpdGVzLmxlbmd0aHx8ZS5pbnZpdGVzLmxlbmd0aDxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmludml0ZXNfcGVyX3BhZ2UpJiZ0LnNldCgiY2FuTG9hZE1vcmUiLCExKX0pKX19fSwiX3NlYXJjaFRlcm1DaGFuZ2VkIixbbF0sKG09KG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJfc2VhcmNoVGVybUNoYW5nZWQiKSk/bS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIG19fSkscCksYShwLCJzaG93QnVsa0FjdGlvbkJ1dHRvbnMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dCdWxrQWN0aW9uQnV0dG9ucyIpLHApLGEocCwicGVuZGluZ0xhYmVsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJwZW5kaW5nTGFiZWwiKSxwKSxhKHAsInJlZGVlbWVkTGFiZWwiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInJlZGVlbWVkTGFiZWwiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLW5vdGlmaWNhdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9zZXJ2aWNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoYT0oMCxpLm9ic2VydmVzKSgibW9kZWwuY2FuTG9hZE1vcmUiKSxsPSgwLGkuZGVmYXVsdCkoIm1vZGVsLmNvbnRlbnQubGVuZ3RoIiksdT0oMCxpLmRlZmF1bHQpKCJtb2RlbC5jb250ZW50LkBlYWNoLnJlYWQiKSxyKGM9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLHJvdXRlcjooMCxvLmluamVjdCkoKSxjdXJyZW50UGF0aDooMCxzLnJlYWRPbmx5KSgicm91dGVyLl9yb3V0ZXIuY3VycmVudFBhdGgiKSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxoYXNOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3JldHVybiAwPGV9LGFsbE5vdGlmaWNhdGlvbnNSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0KCJtb2RlbC5jb250ZW50Iikuc29tZShmdW5jdGlvbihlKXtyZXR1cm4hZS5nZXQoInJlYWQiKX0pfSxhY3Rpb25zOntyZXNldE5ldzpmdW5jdGlvbigpe3ZhciBlPXRoaXM7KDAsbi5hamF4KSgiL25vdGlmaWNhdGlvbnMvbWFyay1yZWFkIix7bWV0aG9kOiJQVVQifSkudGhlbihmdW5jdGlvbigpe2UubW9kZWwuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5zZXQoInJlYWQiLCEwKX0pfSl9LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbC5sb2FkTW9yZSgpfX19LCJfc2hvd0Zvb3RlciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiX3Nob3dGb290ZXIiKSxjKSxyKGMsImhhc05vdGlmaWNhdGlvbnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImhhc05vdGlmaWNhdGlvbnMiKSxjKSxyKGMsImFsbE5vdGlmaWNhdGlvbnNSZWFkIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJhbGxOb3RpZmljYXRpb25zUmVhZCIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4ub2JzZXJ2ZXMpKCJtb2RlbC5jYW5Mb2FkTW9yZSIpLHM9e2FwcGxpY2F0aW9uOigwLHQuaW5qZWN0KSgpLF9zaG93Rm9vdGVyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFwcGxpY2F0aW9uLnNob3dGb290ZXIiLCF0aGlzLmdldCgibW9kZWwuY2FuTG9hZE1vcmUiKSl9fSxyPXMsYT0iX3Nob3dGb290ZXIiLGw9W2ldLG89KG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJfc2hvd0Zvb3RlciIpKT9vLnZhbHVlOnZvaWQgMCx1PXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBvfX0sYz1zLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvY29udHJvbGxlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c29ydFByb3BlcnRpZXM6WyJjb3VudDpkZXNjIiwiaWQiXSx0YWdzRm9yVXNlcjpudWxsLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExLGFjdGlvbnM6e3NvcnRCeUNvdW50OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImNvdW50OmRlc2MiLCJpZCJdLHNvcnRlZEJ5Q291bnQ6ITAsc29ydGVkQnlOYW1lOiExfSl9LHNvcnRCeUlkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzb3J0UHJvcGVydGllczpbImlkIl0sc29ydGVkQnlDb3VudDohMSxzb3J0ZWRCeU5hbWU6ITB9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyLXByaXZhdGUtbWVzc2FnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL21vZGVscy90b3BpYyJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoKGE9KDAsdC5kZWZhdWx0KSgic2VsZWN0ZWQuW10iLCJidWxrU2VsZWN0RW5hYmxlZCIpLGw9KDAsdC5kZWZhdWx0KSgiaGFzU2VsZWN0aW9uIiwicG1WaWV3IiwiYXJjaGl2ZSIpLHU9KDAsdC5kZWZhdWx0KSgiaGFzU2VsZWN0aW9uIiwicG1WaWV3IiwiYXJjaGl2ZSIpLHIoYz17cm91dGVyOigwLGkuaW5qZWN0KSgpLHVzZXJUb3BpY3NMaXN0OigwLHMuaW5qZWN0KSgidXNlci10b3BpY3MtbGlzdCIpLHVzZXI6KDAscy5pbmplY3QpKCkscG1WaWV3OiExLHZpZXdpbmdTZWxmOigwLG4uYWxpYXMpKCJ1c2VyLnZpZXdpbmdTZWxmIiksaXNHcm91cDooMCxuLmVxdWFsKSgicG1WaWV3IiwiZ3JvdXBzIiksY3VycmVudFBhdGg6KDAsbi5hbGlhcykoInJvdXRlci5fcm91dGVyLmN1cnJlbnRQYXRoIiksc2VsZWN0ZWQ6KDAsbi5hbGlhcykoInVzZXJUb3BpY3NMaXN0LnNlbGVjdGVkIiksYnVsa1NlbGVjdEVuYWJsZWQ6KDAsbi5hbGlhcykoInVzZXJUb3BpY3NMaXN0LmJ1bGtTZWxlY3RFbmFibGVkIiksc2hvd1RvZ2dsZUJ1bGtTZWxlY3Q6ITAscG1UYWdnaW5nRW5hYmxlZDooMCxuLmFsaWFzKSgic2l0ZS5jYW5fdGFnX3BtcyIpLHRhZ0lkOm51bGwsc2hvd05ld1BNOigwLG4uYW5kKSgidXNlci52aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLmNhbl9zZW5kX3ByaXZhdGVfbWVzc2FnZXMiKSxoYXNTZWxlY3Rpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmZSYmMDxlLmxlbmd0aH0sY2FuTW92ZVRvSW5ib3g6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiYoImFyY2hpdmUiPT09dHx8bil9LGNhbkFyY2hpdmU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiYiYXJjaGl2ZSIhPT10JiYhbn0sYnVsa09wZXJhdGlvbjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy5zZWxlY3RlZCxpPXt0eXBlOmV9O3RoaXMuaXNHcm91cCYmKGkuZ3JvdXA9dGhpcy5ncm91cEZpbHRlciksby5kZWZhdWx0LmJ1bGtPcGVyYXRpb24obixpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9dC5nZXQoInVzZXJUb3BpY3NMaXN0Lm1vZGVsIik7ZS5nZXQoInRvcGljcyIpLnJlbW92ZU9iamVjdHMobiksbi5jbGVhcigpLGUubG9hZE1vcmUoKX0sZnVuY3Rpb24oKXtib290Ym94LmFsZXJ0KEkxOG4udCgidXNlci5tZXNzYWdlcy5mYWlsZWRfdG9fbW92ZSIpKX0pfSxhY3Rpb25zOntjaGFuZ2VHcm91cE5vdGlmaWNhdGlvbkxldmVsOmZ1bmN0aW9uKGUpe3RoaXMuZ3JvdXAuc2V0Tm90aWZpY2F0aW9uKGUsdGhpcy5nZXQoInVzZXIuaWQiKSl9LGFyY2hpdmU6ZnVuY3Rpb24oKXt0aGlzLmJ1bGtPcGVyYXRpb24oImFyY2hpdmVfbWVzc2FnZXMiKX0sdG9JbmJveDpmdW5jdGlvbigpe3RoaXMuYnVsa09wZXJhdGlvbigibW92ZV9tZXNzYWdlc190b19pbmJveCIpfSx0b2dnbGVCdWxrU2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiYnVsa1NlbGVjdEVuYWJsZWQiKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKCl7JCgiaW5wdXQuYnVsay1zZWxlY3Q6bm90KGNoZWNrZWQpIikuY2xpY2soKX19fSwiaGFzU2VsZWN0aW9uIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJoYXNTZWxlY3Rpb24iKSxjKSxyKGMsImNhbk1vdmVUb0luYm94IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJjYW5Nb3ZlVG9JbmJveCIpLGMpLHIoYywiY2FuQXJjaGl2ZSIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2FuQXJjaGl2ZSIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXItc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb250cm9sbGVyIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoIm1vZGVsLmJhZGdlcy5sZW5ndGgiKSxhPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnRpbWVfcmVhZCIpLGw9KDAsdC5kZWZhdWx0KSgibW9kZWwudGltZV9yZWFkIiwibW9kZWwucmVjZW50X3RpbWVfcmVhZCIpLHU9KDAsdC5kZWZhdWx0KSgibW9kZWwucmVjZW50X3RpbWVfcmVhZCIpLG8oYz17dXNlckNvbnRyb2xsZXI6KDAsaS5pbmplY3QpKCJ1c2VyIiksdXNlcjooMCxuLmFsaWFzKSgidXNlckNvbnRyb2xsZXIubW9kZWwiKSxtb3JlQmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybiA2PD1lfSx0aW1lUmVhZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmR1cmF0aW9uVGlueSkoZSl9LHNob3dSZWNlbnRUaW1lUmVhZDpmdW5jdGlvbihlLHQpe3JldHVybiBlIT09dCYmMCE9PXR9LHJlY2VudFRpbWVSZWFkOmZ1bmN0aW9uKGUpe3JldHVybiAwPGU/KDAscy5kdXJhdGlvblRpbnkpKGUpOm51bGx9fSwibW9yZUJhZGdlcyIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywibW9yZUJhZGdlcyIpLGMpLG8oYywidGltZVJlYWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRpbWVSZWFkIiksYyksbyhjLCJzaG93UmVjZW50VGltZVJlYWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNob3dSZWNlbnRUaW1lUmVhZCIpLGMpLG8oYywicmVjZW50VGltZVJlYWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInJlY2VudFRpbWVSZWFkIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvdXNlci10b3BpY3MtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbnRyb2xsZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQub2JzZXJ2ZXMpKCJtb2RlbC5jYW5Mb2FkTW9yZSIpLG89KDAsdC5kZWZhdWx0KSgiaW5jb21pbmdDb3VudCIpLGkocj17YXBwbGljYXRpb246KDAsbi5pbmplY3QpKCksaGlkZUNhdGVnb3J5OiExLHNob3dQb3N0ZXJzOiExLGluY29taW5nQ291bnQ6MCxjaGFubmVsOm51bGwsdGFnc0ZvclVzZXI6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubmV3SW5jb21pbmc9W119LHNhdmVTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5zZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIiwkKHdpbmRvdykuc2Nyb2xsVG9wKCkpfSxfc2hvd0Zvb3RlcjpmdW5jdGlvbigpe3RoaXMuc2V0KCJhcHBsaWNhdGlvbi5zaG93Rm9vdGVyIiwhdGhpcy5nZXQoIm1vZGVsLmNhbkxvYWRNb3JlIikpfSxoYXNJbmNvbWluZzpmdW5jdGlvbihlKXtyZXR1cm4gMDxlfSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnNldCgiY2hhbm5lbCIsZSksdGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZShlLGZ1bmN0aW9uKGUpey0xPT09dC5uZXdJbmNvbWluZy5pbmRleE9mKGUudG9waWNfaWQpJiYodC5uZXdJbmNvbWluZy5wdXNoKGUudG9waWNfaWQpLHQuaW5jcmVtZW50UHJvcGVydHkoImluY29taW5nQ291bnQiKSl9KX0sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNoYW5uZWw7ZSYmdGhpcy5tZXNzYWdlQnVzLnVuc3Vic2NyaWJlKGUpLHRoaXMuX3Jlc2V0VHJhY2tpbmcoKSx0aGlzLnNldCgiY2hhbm5lbCIsbnVsbCl9LF9yZXNldFRyYWNraW5nOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtuZXdJbmNvbWluZzpbXSxpbmNvbWluZ0NvdW50OjB9KX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9LHNob3dJbnNlcnRlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmxvYWRCZWZvcmUodGhpcy5uZXdJbmNvbWluZyksdGhpcy5fcmVzZXRUcmFja2luZygpLCExfX19LCJfc2hvd0Zvb3RlciIsW3NdLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiX3Nob3dGb290ZXIiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSksciksaShyLCJoYXNJbmNvbWluZyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaGFzSW5jb21pbmciKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb250cm9sbGVycy91c2VyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9zZXJ2aWNlIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL29wdGlvbmFsLXNlcnZpY2UiLCJkaXNjb3Vyc2UvbGliL3NldHRpbmdzIl0sZnVuY3Rpb24oZSx0LGksbixzLG8scixhLGwsdSxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcCxtLGYsaCxiLGcsdix5LF8sdyx4LGssUCxqLFQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1yLmRlZmF1bHQuZXh0ZW5kKGEuZGVmYXVsdCwocD0oMCx0LmRlZmF1bHQpKCJtb2RlbC51c2VybmFtZSIpLG09KDAsdC5kZWZhdWx0KSgidmlld2luZ1NlbGYiLCJtb2RlbC5wcm9maWxlX2hpZGRlbiIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwucHJvZmlsZUJhY2tncm91bmRVcmwiKSxoPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnByb2ZpbGVfaGlkZGVuIiwiaW5kZXhTdHJlYW0iLCJ2aWV3aW5nU2VsZiIsImZvcmNlRXhwYW5kIiksYj0oMCx0LmRlZmF1bHQpKCJtb2RlbC5zdXNwZW5kZWQiLCJjdXJyZW50VXNlci5zdGFmZiIpLGc9KDAsdC5kZWZhdWx0KSgibW9kZWwudHJ1c3RfbGV2ZWwiKSx2PSgwLHQuZGVmYXVsdCkoInZpZXdpbmdTZWxmIiwiY3VycmVudFVzZXIuYWRtaW4iKSx5PSgwLHQuZGVmYXVsdCkoInZpZXdpbmdTZWxmIiksXz0oMCx0LmRlZmF1bHQpKCJ2aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLmFkbWluIiksdz0oMCx0LmRlZmF1bHQpKCJ2aWV3aW5nU2VsZiIsImN1cnJlbnRVc2VyLnN0YWZmIikseD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5uYW1lIiksaz0oMCx0LmRlZmF1bHQpKCJtb2RlbC5iYWRnZV9jb3VudCIpLFA9KDAsdC5kZWZhdWx0KSgpLGo9KDAsdC5kZWZhdWx0KSgibW9kZWwudXNlcl9maWVsZHMuQGVhY2gudmFsdWUiKSxkKFQ9e2luZGV4U3RyZWFtOiExLHJvdXRlcjooMCxvLmluamVjdCkoKSx1c2VyTm90aWZpY2F0aW9uczooMCxyLmluamVjdCkoInVzZXItbm90aWZpY2F0aW9ucyIpLGN1cnJlbnRQYXRoOigwLG4uYWxpYXMpKCJyb3V0ZXIuX3JvdXRlci5jdXJyZW50UGF0aCIpLGFkbWluVG9vbHM6KDAsdS5kZWZhdWx0KSgpLHZpZXdpbmdTZWxmOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY3VycmVudFVzZXI7cmV0dXJuIHQmJmU9PT10LmdldCgidXNlcm5hbWUiKX0sY2FuRXhwYW5kUHJvZmlsZTpmdW5jdGlvbihlLHQpe3JldHVybiF0JiZlfSxoYXNQcm9maWxlQmFja2dyb3VuZFVybDpmdW5jdGlvbihlKXtyZXR1cm4hKDAsaS5pc0VtcHR5KShlLnRvU3RyaW5nKCkpfSxjb2xsYXBzZWRJbmZvOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiEhZXx8KCF0fHxuKSYmIWl9LGNhbk11dGVPcklnbm9yZVVzZXI6KDAsbi5vcikoIm1vZGVsLmNhbl9pZ25vcmVfdXNlciIsIm1vZGVsLmNhbl9tdXRlX3VzZXIiKSxoYXNHaXZlbkZsYWdzOigwLG4uZ3QpKCJtb2RlbC5udW1iZXJfb2ZfZmxhZ3NfZ2l2ZW4iLDApLGhhc0ZsYWdnZWRQb3N0czooMCxuLmd0KSgibW9kZWwubnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiLDApLGhhc0RlbGV0ZWRQb3N0czooMCxuLmd0KSgibW9kZWwubnVtYmVyX29mX2RlbGV0ZWRfcG9zdHMiLDApLGhhc0JlZW5TdXNwZW5kZWQ6KDAsbi5ndCkoIm1vZGVsLm51bWJlcl9vZl9zdXNwZW5zaW9ucyIsMCksaGFzUmVjZWl2ZWRXYXJuaW5nczooMCxuLmd0KSgibW9kZWwud2FybmluZ3NfcmVjZWl2ZWRfY291bnQiLDApLHNob3dTdGFmZkNvdW50ZXJzOigwLG4ub3IpKCJoYXNHaXZlbkZsYWdzIiwiaGFzRmxhZ2dlZFBvc3RzIiwiaGFzRGVsZXRlZFBvc3RzIiwiaGFzQmVlblN1c3BlbmRlZCIsImhhc1JlY2VpdmVkV2FybmluZ3MiKSxzaG93RmVhdHVyZWRUb3BpYzooMCxuLmFuZCkoIm1vZGVsLmZlYXR1cmVkX3RvcGljIiwic2l0ZVNldHRpbmdzLmFsbG93X2ZlYXR1cmVkX3RvcGljX29uX3VzZXJfcHJvZmlsZXMiKSxpc05vdFN1c3BlbmRlZE9ySXNTdGFmZjpmdW5jdGlvbihlLHQpe3JldHVybiFlfHx0fSxsaW5rV2Vic2l0ZTooMCxuLm5vdCkoIm1vZGVsLmlzQmFzaWMiKSxyZW1vdmVOb0ZvbGxvdzpmdW5jdGlvbihlKXtyZXR1cm4gMjxlJiYhdGhpcy5zaXRlU2V0dGluZ3MudGwzX2xpbmtzX25vX2ZvbGxvd30sc2hvd0Jvb2ttYXJrczpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxzaG93RHJhZnRzOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxzaG93UHJpdmF0ZU1lc3NhZ2VzOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmKGV8fHQpfSxzaG93Tm90aWZpY2F0aW9uc1RhYjpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxuYW1lRmlyc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsYy5wcmlvcml0aXplTmFtZUluVXgpKGUsdGhpcy5zaXRlU2V0dGluZ3MpfSxzaG93QmFkZ2VzOmZ1bmN0aW9uKGUpe3JldHVybiBEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmVuYWJsZV9iYWRnZXMmJjA8ZX0sY2FuSW52aXRlVG9Gb3J1bTpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHQuY3VycmVudFByb3AoImNhbl9pbnZpdGVfdG9fZm9ydW0iKX0sY2FuRGVsZXRlVXNlcjooMCxuLmFuZCkoIm1vZGVsLmNhbl9iZV9kZWxldGVkIiwibW9kZWwuY2FuX2RlbGV0ZV9hbGxfcG9zdHMiKSxwdWJsaWNVc2VyRmllbGRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgidXNlcl9maWVsZHMiKTtpZighKDAsaS5pc0VtcHR5KShlKSl7dmFyIG49dGhpcy5nZXQoIm1vZGVsLnVzZXJfZmllbGRzIik7cmV0dXJuIGUuZmlsdGVyQnkoInNob3dfb25fcHJvZmlsZSIsITApLnNvcnRCeSgicG9zaXRpb24iKS5tYXAoZnVuY3Rpb24oZSl7KDAscy5zZXQpKGUsImRhc2hlcml6ZWRfbmFtZSIsZS5nZXQoIm5hbWUiKS5kYXNoZXJpemUoKSk7dmFyIHQ9bj9uW2UuZ2V0KCJpZCIpLnRvU3RyaW5nKCldOm51bGw7cmV0dXJuKDAsaS5pc0VtcHR5KSh0KT9udWxsOnMuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSkuY29tcGFjdCgpfX0sdXNlck5vdGlmaWNhdGlvbkxldmVsOigwLHMuY29tcHV0ZWQpKCJjdXJyZW50VXNlci5pZ25vcmVkX2lkcyIsIm1vZGVsLmlnbm9yZWQiLCJtb2RlbC5tdXRlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoIm1vZGVsLmlnbm9yZWQiKT8iY2hhbmdlVG9JZ25vcmVkIjp0aGlzLmdldCgibW9kZWwubXV0ZWQiKT8iY2hhbmdlVG9NdXRlZCI6ImNoYW5nZVRvTm9ybWFsIn0pLGFjdGlvbnM6e2NvbGxhcHNlUHJvZmlsZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJmb3JjZUV4cGFuZCIsITEpfSxleHBhbmRQcm9maWxlOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImZvcmNlRXhwYW5kIiwhMCl9LHNob3dTdXNwZW5zaW9uczpmdW5jdGlvbigpe3RoaXMuYWRtaW5Ub29scy5zaG93QWN0aW9uTG9ncyh0aGlzLHt0YXJnZXRfdXNlcjp0aGlzLmdldCgibW9kZWwudXNlcm5hbWUiKSxhY3Rpb25fbmFtZToic3VzcGVuZF91c2VyIn0pfSxhZG1pbkRlbGV0ZTpmdW5jdGlvbigpe3RoaXMuYWRtaW5Ub29scy5kZWxldGVVc2VyKHRoaXMuZ2V0KCJtb2RlbC5pZCIpKX0sdXBkYXRlTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubW9kZWwudXBkYXRlTm90aWZpY2F0aW9uTGV2ZWwoZSl9fX0sInZpZXdpbmdTZWxmIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJ2aWV3aW5nU2VsZiIpLFQpLGQoVCwiY2FuRXhwYW5kUHJvZmlsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuRXhwYW5kUHJvZmlsZSIpLFQpLGQoVCwiaGFzUHJvZmlsZUJhY2tncm91bmRVcmwiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImhhc1Byb2ZpbGVCYWNrZ3JvdW5kVXJsIiksVCksZChULCJjb2xsYXBzZWRJbmZvIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJjb2xsYXBzZWRJbmZvIiksVCksZChULCJpc05vdFN1c3BlbmRlZE9ySXNTdGFmZiIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaXNOb3RTdXNwZW5kZWRPcklzU3RhZmYiKSxUKSxkKFQsInJlbW92ZU5vRm9sbG93IixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJyZW1vdmVOb0ZvbGxvdyIpLFQpLGQoVCwic2hvd0Jvb2ttYXJrcyIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0Jvb2ttYXJrcyIpLFQpLGQoVCwic2hvd0RyYWZ0cyIsW3ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0RyYWZ0cyIpLFQpLGQoVCwic2hvd1ByaXZhdGVNZXNzYWdlcyIsW19dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd1ByaXZhdGVNZXNzYWdlcyIpLFQpLGQoVCwic2hvd05vdGlmaWNhdGlvbnNUYWIiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNob3dOb3RpZmljYXRpb25zVGFiIiksVCksZChULCJuYW1lRmlyc3QiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsIm5hbWVGaXJzdCIpLFQpLGQoVCwic2hvd0JhZGdlcyIsW2tdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0JhZGdlcyIpLFQpLGQoVCwiY2FuSW52aXRlVG9Gb3J1bSIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuSW52aXRlVG9Gb3J1bSIpLFQpLGQoVCwicHVibGljVXNlckZpZWxkcyIsW2pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwicHVibGljVXNlckZpZWxkcyIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbnRyb2xsZXJzL3VzZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbnRyb2xsZXIiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocj0oMCxzLm9ic2VydmVzKSgibmFtZUlucHV0IiksYT0oMCxzLm9ic2VydmVzKSgibW9kZWwuY2FuTG9hZE1vcmUiKSxvKGw9e2FwcGxpY2F0aW9uOigwLG4uaW5qZWN0KSgpLHF1ZXJ5UGFyYW1zOlsicGVyaW9kIiwib3JkZXIiLCJhc2MiLCJuYW1lIiwiZ3JvdXAiLCJleGNsdWRlX3VzZXJuYW1lcyJdLHBlcmlvZDoid2Vla2x5IixvcmRlcjoibGlrZXNfcmVjZWl2ZWQiLGFzYzpudWxsLG5hbWU6IiIsZ3JvdXA6bnVsbCxleGNsdWRlX3VzZXJuYW1lczpudWxsLHNob3dUaW1lUmVhZDooMCx0LmVxdWFsKSgicGVyaW9kIiwiYWxsIiksX3NldE5hbWU6KDAsaS5kZWZhdWx0KShmdW5jdGlvbigpe3RoaXMuc2V0KCJuYW1lIix0aGlzLm5hbWVJbnB1dCl9LDUwMCksX3Nob3dGb290ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgiYXBwbGljYXRpb24uc2hvd0Zvb3RlciIsIXRoaXMuZ2V0KCJtb2RlbC5jYW5Mb2FkTW9yZSIpKX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsLmxvYWRNb3JlKCl9fX0sIl9zZXROYW1lIixbcl0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2V0TmFtZSIpKT91LnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KSxsKSxvKGwsIl9zaG93Rm9vdGVyIixbYV0sKGM9KGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfc2hvd0Zvb3RlciIpKT9jLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY319KSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvYXJjaGV0eXBlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoe2hhc09wdGlvbnM6KDAsdC5ndCkoIm9wdGlvbnMubGVuZ3RoIiwwKSxpc0RlZmF1bHQ6KDAsbi5wcm9wZXJ0eUVxdWFsKSgiaWQiLCJzaXRlLmRlZmF1bHRfYXJjaGV0eXBlIiksbm90RGVmYXVsdDooMCx0Lm5vdCkoImlzRGVmYXVsdCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvYm9va21hcmsiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7dmFyIHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhLGwsdSxjLGQscCxtPW8uZGVmYXVsdC5leHRlbmQoKHI9e25ld0Jvb2ttYXJrOigwLHQubm9uZSkoImlkIiksZ2V0IHVybCgpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvYm9va21hcmtzLyIrdGhpcy5pZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXdCb29rbWFyaz9zLlByb21pc2UucmVzb2x2ZSgpOigwLGkuYWpheCkodGhpcy51cmwse3R5cGU6IkRFTEVURSJ9KX19LGE9cixsPSJ1cmwiLHU9W24uY29tcHV0ZWRdLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJ1cmwiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpO2UuZGVmYXVsdD1tfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5LWxpc3QiLFsiZXhwb3J0cyIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsaSxzLGEsdCxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1PUVtYmVyLkFycmF5UHJveHkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNvbnRlbnQiLFtdKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7dS5yZW9wZW5DbGFzcyh7Y2F0ZWdvcmllc0Zyb206ZnVuY3Rpb24oZSxuKXt2YXIgcz11LmNyZWF0ZSgpLG89dC5kZWZhdWx0Lmxpc3QoKSxyPSJhbGwiLGk9LjY2Km4uY2F0ZWdvcnlfbGlzdC5jYXRlZ29yaWVzLmxlbmd0aDtyZXR1cm5bIndlZWsiLCJtb250aCJdLnNvbWUoZnVuY3Rpb24odCl7aWYobi5jYXRlZ29yeV9saXN0LmNhdGVnb3JpZXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGVbInRvcGljc18iK3RdfSkubGVuZ3RoPj1pKXJldHVybiByPXQsITB9KSxuLmNhdGVnb3J5X2xpc3QuY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3N3aXRjaChuLnBhcmVudF9jYXRlZ29yeV9pZCYmKG4ucGFyZW50Q2F0ZWdvcnk9by5maW5kQnkoImlkIixuLnBhcmVudF9jYXRlZ29yeV9pZCkpLG4uc3ViY2F0ZWdvcnlfaWRzJiYobi5zdWJjYXRlZ29yaWVzPW4uc3ViY2F0ZWdvcnlfaWRzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gby5maW5kQnkoImlkIixwYXJzZUludChlLDEwKSl9KSksbi50b3BpY3MmJihuLnRvcGljcz1uLnRvcGljcy5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9YS5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gdC5zZXQoImNhdGVnb3J5IixuKSx0fSkpLHIpe2Nhc2Uid2VlayI6Y2FzZSJtb250aCI6dmFyIGU9blsidG9waWNzXyIrcl0sdD1JMThuLnQocik7aWYoMDxlKXtuLnN0YXQ9JzxzcGFuIGNsYXNzPSJ2YWx1ZSI+JytlKyc8L3NwYW4+IC8gPHNwYW4gY2xhc3M9InVuaXQiPicrdCsiPC9zcGFuPiIsbi5zdGF0VGl0bGU9STE4bi50KCJjYXRlZ29yaWVzLnRvcGljX3N0YXRfc2VudGVuY2VfIityLHtjb3VudDplfSksblsicGljayIrclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSldPSEwO2JyZWFrfWRlZmF1bHQ6bi5zdGF0PSc8c3BhbiBjbGFzcz0idmFsdWUiPicrbi50b3BpY3NfYWxsX3RpbWUrIjwvc3Bhbj4iLG4uc3RhdFRpdGxlPUkxOG4udCgiY2F0ZWdvcmllcy50b3BpY19zZW50ZW5jZSIse2NvdW50Om4udG9waWNzX2FsbF90aW1lfSksbi5waWNrQWxsPSEwfXZhciBpPWwuZGVmYXVsdC5jdXJyZW50KCkudXBkYXRlQ2F0ZWdvcnkobik7aS5zZXR1cEdyb3Vwc0FuZFBlcm1pc3Npb25zKCkscy5wdXNoT2JqZWN0KGkpfSksc30sbGlzdEZvclBhcmVudDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL2NhdGVnb3JpZXMuanNvbj9wYXJlbnRfY2F0ZWdvcnlfaWQ9IituLmdldCgiaWQiKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdS5jcmVhdGUoe2NhdGVnb3JpZXM6aS5jYXRlZ29yaWVzRnJvbSh0LGUpLHBhcmVudENhdGVnb3J5Om59KX0pfSxsaXN0OmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIGkuZGVmYXVsdC5nZXRBbmRSZW1vdmUoImNhdGVnb3JpZXNfbGlzdCIsZnVuY3Rpb24oKXtyZXR1cm4oMCxzLmFqYXgpKCIvY2F0ZWdvcmllcy5qc29uIil9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB1LmNyZWF0ZSh7Y2F0ZWdvcmllczpuLmNhdGVnb3JpZXNGcm9tKHQsZSksY2FuX2NyZWF0ZV9jYXRlZ29yeTplLmNhdGVnb3J5X2xpc3QuY2FuX2NyZWF0ZV9jYXRlZ29yeSxjYW5fY3JlYXRlX3RvcGljOmUuY2F0ZWdvcnlfbGlzdC5jYW5fY3JlYXRlX3RvcGljLGRyYWZ0X2tleTplLmNhdGVnb3J5X2xpc3QuZHJhZnRfa2V5LGRyYWZ0OmUuY2F0ZWdvcnlfbGlzdC5kcmFmdCxkcmFmdF9zZXF1ZW5jZTplLmNhdGVnb3J5X2xpc3QuZHJhZnRfc2VxdWVuY2V9KX0pfX0pLGUuZGVmYXVsdD11fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwLWhpc3RvcnkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5kZWZhdWx0KSgiYWN0aW9uIiksbz1zPXthY3Rpb25UaXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJncm91cF9oaXN0b3JpZXMuYWN0aW9ucy4iK2UpfX0scj0iYWN0aW9uVGl0bGUiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJhY3Rpb25UaXRsZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAtaGlzdG9yeSIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJyc3ZwIl0sZnVuY3Rpb24oZSxpLHQsbyxuLHMscixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB3PWwuZGVmYXVsdC5leHRlbmQoKG09KDAsbi5kZWZhdWx0KSgiYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWlucyIpLGY9KDAsbi5kZWZhdWx0KSgiYXV0b21hdGljIiksaD0oMCxuLmRlZmF1bHQpKCJkaXNwbGF5X25hbWUiLCJuYW1lIiksYj0oMCxuLmRlZmF1bHQpKCJmbGFpcl9iZ19jb2xvciIpLGc9KDAsbi5kZWZhdWx0KSgiZmxhaXJfY29sb3IiKSx2PSgwLG4uZGVmYXVsdCkoInZpc2liaWxpdHlfbGV2ZWwiKSx5PSgwLG4ub2JzZXJ2ZXMpKCJpc1ByaXZhdGUiLCJjYW5FdmVyeW9uZU1lbnRpb24iKSxwKF89e3VzZXJfY291bnQ6MCxsaW1pdDpudWxsLG9mZnNldDpudWxsLHJlcXVlc3RfY291bnQ6MCxyZXF1ZXN0ZXJzTGltaXQ6bnVsbCxyZXF1ZXN0ZXJzT2Zmc2V0Om51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe21lbWJlcnM6W10scmVxdWVzdGVyczpbXX0pfSxlbWFpbERvbWFpbnM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5pc0VtcHR5KShlKT8iIjplfSx0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJhdXRvbWF0aWMiOiJjdXN0b20ifSxmaW5kTWVtYmVyczpmdW5jdGlvbihlLGkpe3ZhciBzPXRoaXM7cmV0dXJuKDAsby5pc0VtcHR5KSh0aGlzLm5hbWUpfHwhdGhpcy5jYW5fc2VlX21lbWJlcnM/ZC5Qcm9taXNlLnJlamVjdCgpOihpJiZ0aGlzLnNldFByb3BlcnRpZXMoe2xpbWl0Om51bGwsb2Zmc2V0Om51bGx9KSxlPU9iamVjdC5hc3NpZ24oe29mZnNldDoodGhpcy5vZmZzZXR8fDApKyh0aGlzLmxpbWl0fHwwKX0sZSksdy5sb2FkTWVtYmVycyh0aGlzLm5hbWUsZSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1uZXcgU2V0O2Uub3duZXJzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuYWRkKGUuaWQpfSk7dmFyIG49aT9bXTpzLm1lbWJlcnM7bi5wdXNoT2JqZWN0cyhlLm1lbWJlcnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLm93bmVyPXQuaGFzKGUuaWQpLGMuZGVmYXVsdC5jcmVhdGUoZSl9KSkscy5zZXRQcm9wZXJ0aWVzKHttZW1iZXJzOm4sdXNlcl9jb3VudDplLm1ldGEudG90YWwsbGltaXQ6ZS5tZXRhLmxpbWl0LG9mZnNldDplLm1ldGEub2Zmc2V0fSl9KSl9LGZpbmRSZXF1ZXN0ZXJzOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcztyZXR1cm4oMCxvLmlzRW1wdHkpKHRoaXMubmFtZSl8fCF0aGlzLmNhbl9zZWVfbWVtYmVycz9kLlByb21pc2UucmVqZWN0KCk6KG4mJnRoaXMuc2V0UHJvcGVydGllcyh7cmVxdWVzdGVyc09mZnNldDpudWxsLHJlcXVlc3RlcnNMaW1pdDpudWxsfSksZT1PYmplY3QuYXNzaWduKHtvZmZzZXQ6KHRoaXMucmVxdWVzdGVyc09mZnNldHx8MCkrKHRoaXMucmVxdWVzdGVyc0xpbWl0fHwwKSxyZXF1ZXN0ZXJzOiEwfSxlKSx3LmxvYWRNZW1iZXJzKHRoaXMubmFtZSxlKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PW4/W106aS5yZXF1ZXN0ZXJzO3QucHVzaE9iamVjdHMoZS5tZW1iZXJzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0LmNyZWF0ZShlKX0pKSxpLnNldFByb3BlcnRpZXMoe3JlcXVlc3RlcnM6dCxyZXF1ZXN0X2NvdW50OmUubWV0YS50b3RhbCxyZXF1ZXN0ZXJzTGltaXQ6ZS5tZXRhLmxpbWl0LHJlcXVlc3RlcnNPZmZzZXQ6ZS5tZXRhLm9mZnNldH0pfSkpfSxyZW1vdmVPd25lcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybigwLHMuYWpheCkoIi9hZG1pbi9ncm91cHMvIit0aGlzLmlkKyIvb3duZXJzLmpzb24iLHt0eXBlOiJERUxFVEUiLGRhdGE6e3VzZXJfaWQ6ZS5pZH19KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmluZE1lbWJlcnMoKX0pfSxyZW1vdmVNZW1iZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLmlkKyIvbWVtYmVycy5qc29uIix7dHlwZToiREVMRVRFIixkYXRhOnt1c2VyX2lkOmUuaWR9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLmZpbmRNZW1iZXJzKHQpfSl9LGFkZE1lbWJlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLmlkKyIvbWVtYmVycy5qc29uIix7dHlwZToiUFVUIixkYXRhOnt1c2VybmFtZXM6ZX19KS50aGVuKGZ1bmN0aW9uKGUpe3Q/bi5fZmlsdGVyTWVtYmVycyhlKTpuLmZpbmRNZW1iZXJzKCl9KX0sYWRkT3duZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4oMCxzLmFqYXgpKCIvYWRtaW4vZ3JvdXBzLyIrdGhpcy5pZCsiL293bmVycy5qc29uIix7dHlwZToiUFVUIixkYXRhOntncm91cDp7dXNlcm5hbWVzOmV9fX0pLnRoZW4oZnVuY3Rpb24oZSl7dD9uLl9maWx0ZXJNZW1iZXJzKGUpOm4uZmluZE1lbWJlcnMoKX0pfSxfZmlsdGVyTWVtYmVyczpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5maW5kTWVtYmVycyh7ZmlsdGVyOmUudXNlcm5hbWVzLmpvaW4oIiwiKX0pfSxkaXNwbGF5TmFtZTpmdW5jdGlvbihlLHQpe3JldHVybiBlfHx0fSxmbGFpckJhY2tncm91bmRIZXhDb2xvcjpmdW5jdGlvbihlKXtyZXR1cm4gZT9lLnJlcGxhY2UobmV3IFJlZ0V4cCgiW14wLTlhLWZBLUZdIiwiZyIpLCIiKTpudWxsfSxmbGFpckhleENvbG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZShuZXcgUmVnRXhwKCJbXjAtOWEtZkEtRl0iLCJnIiksIiIpOm51bGx9LGNhbkV2ZXJ5b25lTWVudGlvbjooMCx0LmVxdWFsKSgibWVudGlvbmFibGVfbGV2ZWwiLDk5KSxpc1ByaXZhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIDE8ZX0sX3VwZGF0ZUFsbG93TWVtYmVyc2hpcFJlcXVlc3RzOmZ1bmN0aW9uKCl7IXRoaXMuaXNQcml2YXRlJiZ0aGlzLmNhbkV2ZXJ5b25lTWVudGlvbnx8dGhpcy5zZXQoImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiLCExKX0sYXNKU09OOmZ1bmN0aW9uKCl7dmFyIGU9e25hbWU6dGhpcy5uYW1lLG1lbnRpb25hYmxlX2xldmVsOnRoaXMubWVudGlvbmFibGVfbGV2ZWwsbWVzc2FnZWFibGVfbGV2ZWw6dGhpcy5tZXNzYWdlYWJsZV9sZXZlbCx2aXNpYmlsaXR5X2xldmVsOnRoaXMudmlzaWJpbGl0eV9sZXZlbCxtZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWw6dGhpcy5tZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWwsYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWluczp0aGlzLmVtYWlsRG9tYWlucyxhdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZTohIXRoaXMuYXV0b21hdGljX21lbWJlcnNoaXBfcmV0cm9hY3RpdmUsdGl0bGU6dGhpcy50aXRsZSxwcmltYXJ5X2dyb3VwOiEhdGhpcy5wcmltYXJ5X2dyb3VwLGdyYW50X3RydXN0X2xldmVsOnRoaXMuZ3JhbnRfdHJ1c3RfbGV2ZWwsaW5jb21pbmdfZW1haWw6dGhpcy5pbmNvbWluZ19lbWFpbCxmbGFpcl91cmw6dGhpcy5mbGFpcl91cmwsZmxhaXJfYmdfY29sb3I6dGhpcy5mbGFpckJhY2tncm91bmRIZXhDb2xvcixmbGFpcl9jb2xvcjp0aGlzLmZsYWlySGV4Q29sb3IsYmlvX3Jhdzp0aGlzLmJpb19yYXcscHVibGljX2FkbWlzc2lvbjp0aGlzLnB1YmxpY19hZG1pc3Npb24scHVibGljX2V4aXQ6dGhpcy5wdWJsaWNfZXhpdCxhbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzOnRoaXMuYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0cyxmdWxsX25hbWU6dGhpcy5mdWxsX25hbWUsZGVmYXVsdF9ub3RpZmljYXRpb25fbGV2ZWw6dGhpcy5kZWZhdWx0X25vdGlmaWNhdGlvbl9sZXZlbCxtZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGU6dGhpcy5tZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGUscHVibGlzaF9yZWFkX3N0YXRlOnRoaXMucHVibGlzaF9yZWFkX3N0YXRlfTtyZXR1cm4gdGhpcy5pZHx8KGUudXNlcm5hbWVzPXRoaXMudXNlcm5hbWVzLGUub3duZXJfdXNlcm5hbWVzPXRoaXMub3duZXJVc2VybmFtZXMpLGV9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL2FkbWluL2dyb3VwcyIse3R5cGU6IlBPU1QiLGRhdGE6e2dyb3VwOnRoaXMuYXNKU09OKCl9fSkudGhlbihmdW5jdGlvbihlKXt0LnNldFByb3BlcnRpZXMoe2lkOmUuYmFzaWNfZ3JvdXAuaWQsdXNlcm5hbWVzOm51bGwsb3duZXJVc2VybmFtZXM6bnVsbH0pLHQuZmluZE1lbWJlcnMoKX0pfSxzYXZlOmZ1bmN0aW9uKCl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy8iK3RoaXMuaWQse3R5cGU6IlBVVCIsZGF0YTp7Z3JvdXA6dGhpcy5hc0pTT04oKX19KX0sZGVzdHJveTpmdW5jdGlvbigpe2lmKHRoaXMuaWQpcmV0dXJuKDAscy5hamF4KSgiL2FkbWluL2dyb3Vwcy8iK3RoaXMuaWQse3R5cGU6IkRFTEVURSJ9KX0sZmluZExvZ3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5uYW1lKyIvbG9ncy5qc29uIix7ZGF0YTp7b2Zmc2V0OmUsZmlsdGVyczp0fX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuZGVmYXVsdC5jcmVhdGUoe2xvZ3M6ZS5sb2dzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYS5kZWZhdWx0LmNyZWF0ZShlKX0pLGFsbF9sb2FkZWQ6ZS5hbGxfbG9hZGVkfSl9KX0sZmluZFBvc3RzOmZ1bmN0aW9uKGUpe3ZhciB0PShlPWV8fHt9KS50eXBlfHwicG9zdHMiLG49e307cmV0dXJuIGUuYmVmb3JlUG9zdElkJiYobi5iZWZvcmVfcG9zdF9pZD1lLmJlZm9yZVBvc3RJZCksZS5jYXRlZ29yeUlkJiYobi5jYXRlZ29yeV9pZD1wYXJzZUludChlLmNhdGVnb3J5SWQsMTApKSwoMCxzLmFqYXgpKCIvZ3JvdXBzLyIrdGhpcy5uYW1lKyIvIit0KyIuanNvbiIse2RhdGE6bn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXI9Yy5kZWZhdWx0LmNyZWF0ZShlLnVzZXIpLGUudG9waWM9dS5kZWZhdWx0LmNyZWF0ZShlLnRvcGljKSxlLmNhdGVnb3J5PXIuZGVmYXVsdC5maW5kQnlJZChlLmNhdGVnb3J5X2lkKSxpLmRlZmF1bHQuY3JlYXRlKGUpfSl9KX0sc2V0Tm90aWZpY2F0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuc2V0KCJncm91cF91c2VyLm5vdGlmaWNhdGlvbl9sZXZlbCIsZSksKDAscy5hamF4KSgiL2dyb3Vwcy8iK3RoaXMubmFtZSsiL25vdGlmaWNhdGlvbnMiLHtkYXRhOntub3RpZmljYXRpb25fbGV2ZWw6ZSx1c2VyX2lkOnR9LHR5cGU6IlBPU1QifSl9LHJlcXVlc3RNZW1iZXJzaGlwOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIit0aGlzLm5hbWUrIi9yZXF1ZXN0X21lbWJlcnNoaXAiLHt0eXBlOiJQT1NUIixkYXRhOntyZWFzb246ZX19KX19LCJlbWFpbERvbWFpbnMiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImVtYWlsRG9tYWlucyIpLF8pLHAoXywidHlwZSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywidHlwZSIpLF8pLHAoXywiZGlzcGxheU5hbWUiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImRpc3BsYXlOYW1lIiksXykscChfLCJmbGFpckJhY2tncm91bmRIZXhDb2xvciIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiZmxhaXJCYWNrZ3JvdW5kSGV4Q29sb3IiKSxfKSxwKF8sImZsYWlySGV4Q29sb3IiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sImZsYWlySGV4Q29sb3IiKSxfKSxwKF8sImlzUHJpdmF0ZSIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXywiaXNQcml2YXRlIiksXykscChfLCJfdXBkYXRlQWxsb3dNZW1iZXJzaGlwUmVxdWVzdHMiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF8sIl91cGRhdGVBbGxvd01lbWJlcnNoaXBSZXF1ZXN0cyIpLF8pLF8pKTt3LnJlb3BlbkNsYXNzKHtmaW5kQWxsOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvc2VhcmNoLmpzb24iLHtkYXRhOmV9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdy5jcmVhdGUoZSl9KX0pfSxsb2FkTWVtYmVyczpmdW5jdGlvbihlLHQpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIitlKyIvbWVtYmVycy5qc29uIix7ZGF0YTp0fSl9LG1lbnRpb25hYmxlOmZ1bmN0aW9uKGUpe3JldHVybigwLHMuYWpheCkoIi9ncm91cHMvIitlKyIvbWVudGlvbmFibGUiKX0sbWVzc2FnZWFibGU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy8iK2UrIi9tZXNzYWdlYWJsZSIpfSxjaGVja05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5hamF4KSgiL2dyb3Vwcy9jaGVjay1uYW1lIix7ZGF0YTp7Z3JvdXBfbmFtZTplfX0pfX0pLGUuZGVmYXVsdD13fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL2xpdmUtcG9zdC1jb3VudHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT1uLmRlZmF1bHQuZXh0ZW5kKHt9KTtpLnJlb3BlbkNsYXNzKHtmaW5kOmZ1bmN0aW9uKCl7cmV0dXJuKDAsdC5hamF4KSgiL2Fib3V0L2xpdmVfcG9zdF9jb3VudHMuanNvbiIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlKGUpfSl9fSksZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCIsImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsdCxuLGksbCxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmZpbmRBbGw9ZnVuY3Rpb24oKXtyZXR1cm4gY3x8KGM9W10sby5kZWZhdWx0LmN1cnJlbnRQcm9wKCJhdXRoX3Byb3ZpZGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGMucHVzaE9iamVjdCh1LmNyZWF0ZShlKSl9KSxjLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2V0KCJpc0dvb2dsZSIsImdvb2dsZV9vYXV0aDIiPT09ZS5uYW1lKX0pLGMpfTt2YXIgdT1uLmRlZmF1bHQuZXh0ZW5kKChyKGE9e3RpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGl0bGVfb3ZlcnJpZGV8fEkxOG4udCgibG9naW4uIit0aGlzLm5hbWUrIi50aXRsZSIpfSxwcmV0dHlOYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldHR5X25hbWVfb3ZlcnJpZGV8fEkxOG4udCgibG9naW4uIit0aGlzLm5hbWUrIi5uYW1lIil9LG1lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlX292ZXJyaWRlfHxJMThuLnQoImxvZ2luLiIrdGhpcy5uYW1lKyIubWVzc2FnZSIpfSxkb0xvZ2luOmZ1bmN0aW9uKGUpe3ZhciB0PTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOnt9LG49dC5yZWNvbm5lY3QsaT12b2lkIDAhPT1uJiZuLHM9dC5wYXJhbXMsbz12b2lkIDA9PT1zP3t9OnM7aWYodGhpcy5jdXN0b21Mb2dpbilyZXR1cm4gdGhpcy5jdXN0b21Mb2dpbigpLGwuUHJvbWlzZS5yZXNvbHZlKCk7aWYodGhpcy5jdXN0b21fdXJsKXJldHVybiB3aW5kb3cubG9jYXRpb249dGhpcy5jdXN0b21fdXJsLGwuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9RGlzY291cnNlLmdldFVSTCgiL2F1dGgvIit0aGlzLm5hbWUpO2kmJihvLnJlY29ubmVjdD0hMCk7dmFyIGE9T2JqZWN0LmtleXMobyk7cmV0dXJuIDA8YS5sZW5ndGgmJihyKz0iPyIscis9YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG9bZV0pfSkuam9pbigiJiIpKSx1LmJ1aWxkUG9zdEZvcm0ocikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5zdWJtaXQoKX0pfX0sInRpdGxlIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRpdGxlIiksYSkscihhLCJwcmV0dHlOYW1lIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInByZXR0eU5hbWUiKSxhKSxyKGEsIm1lc3NhZ2UiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwibWVzc2FnZSIpLGEpLGEpKTt1LnJlb3BlbkNsYXNzKHtidWlsZFBvc3RGb3JtOmZ1bmN0aW9uKG4pe3JldHVybigwLGkudXBkYXRlQ3NyZlRva2VuKSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7ZS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTpub25lOyIpLGUuc2V0QXR0cmlidXRlKCJtZXRob2QiLCJwb3N0IiksZS5zZXRBdHRyaWJ1dGUoImFjdGlvbiIsbik7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJhdXRoZW50aWNpdHlfdG9rZW4iKSx0LnNldEF0dHJpYnV0ZSgidmFsdWUiLHMuZGVmYXVsdC5jdXJyZW50UHJvcCgiY3NyZlRva2VuIikpLGUuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxlfSl9fSk7dmFyIGM9dm9pZCAwO2UuZGVmYXVsdD11fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL25hdi1pdGVtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LHMscixuLGksbyxhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5leHRyYU5hdkl0ZW1Qcm9wZXJ0aWVzPWZ1bmN0aW9uKGUpe2IuZXh0cmFBcmdzQ2FsbGJhY2tzLnB1c2goZSl9LGUuY3VzdG9tTmF2SXRlbUhyZWY9ZnVuY3Rpb24oZSl7Yi5jdXN0b21OYXZJdGVtSHJlZnMucHVzaChlKX0sZS5hZGROYXZJdGVtPWZ1bmN0aW9uKGUpe2IuZXh0cmFOYXZJdGVtRGVzY3JpcHRvcnMucHVzaChlKX07dmFyIGI9bi5kZWZhdWx0LmV4dGVuZCgoYz0oMCx0LmRlZmF1bHQpKCJuYW1lIiksZD0oMCx0LmRlZmF1bHQpKCJuYW1lIiwiY291bnQiKSxwPSgwLHQuZGVmYXVsdCkoImZpbHRlclR5cGUiLCJjYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyIsInRhZ0lkIiksbT0oMCx0LmRlZmF1bHQpKCJuYW1lIiwiY2F0ZWdvcnkiLCJub1N1YmNhdGVnb3JpZXMiKSxmPSgwLHQuZGVmYXVsdCkoIm5hbWUiLCJjYXRlZ29yeSIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSx1KGg9e3RpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImZpbHRlcnMuIitlLnJlcGxhY2UoIi8iLCIuIikrIi5oZWxwIix7fSl9LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKGUsdCl7dD10fHwwLCJsYXRlc3QiIT09ZXx8YS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtb2JpbGVWaWV3IikmJnZvaWQgMD09PXRoaXMudGFnSWR8fCh0PTApO3ZhciBuPXtjb3VudDp0fSxpPTA9PT10PyIudGl0bGUiOiIudGl0bGVfd2l0aF9jb3VudCI7cmV0dXJuKDAscy5lbW9qaVVuZXNjYXBlKShJMThuLnQoImZpbHRlcnMuIitlLnJlcGxhY2UoIi8iLCIuIikraSxuKSl9LGhyZWY6ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9bnVsbDtpZihiLmN1c3RvbU5hdkl0ZW1IcmVmcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKHM9ZS5jYWxsKHRoaXMsdGhpcykpcmV0dXJuITF9LHRoaXMpLHMpcmV0dXJuIHM7dmFyIG89e2NhdGVnb3J5OnQsbm9TdWJjYXRlZ29yaWVzOm4sdGFnSWQ6aX07cmV0dXJuIGIucGF0aEZvcihlLG8pfSxmaWx0ZXJUeXBlOigwLGkucmVhZHMpKCJuYW1lIiksZmlsdGVyTW9kZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9IiI7cmV0dXJuIHQmJihpKz0iYy8iLGkrPXIuZGVmYXVsdC5zbHVnRm9yKHQpLG4mJihpKz0iL25vbmUiKSxpKz0iL2wvIiksaStlLnJlcGxhY2UoIiAiLCItIil9LGNvdW50OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy50b3BpY1RyYWNraW5nU3RhdGU7aWYobilyZXR1cm4gbi5sb29rdXBDb3VudChlLHQpfX0sInRpdGxlIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJ0aXRsZSIpLGgpLHUoaCwiZGlzcGxheU5hbWUiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImRpc3BsYXlOYW1lIiksaCksdShoLCJocmVmIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJocmVmIiksaCksdShoLCJmaWx0ZXJNb2RlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJmaWx0ZXJNb2RlIiksaCksdShoLCJjb3VudCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiY291bnQiKSxoKSxoKSksZz1iLmV4dGVuZCh7aHJlZjooMCx0LmRlZmF1bHQpKCJocmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hyZWY/dGhpcy5faHJlZjp0aGlzLmhyZWZ9LHNldDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9ocmVmPXR9fSksY291bnQ6MCxjdXN0b21GaWx0ZXI6bnVsbH0pO2IucmVvcGVuQ2xhc3Moe2V4dHJhQXJnc0NhbGxiYWNrczpbXSxjdXN0b21OYXZJdGVtSHJlZnM6W10sZXh0cmFOYXZJdGVtRGVzY3JpcHRvcnM6W10scGF0aEZvcjpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5nZXRVUkwoIiIpLGk9ITEscz0hMTtyZXR1cm4iY2F0ZWdvcmllcyI9PT1lP24rPSIvY2F0ZWdvcmllcyI6KHQudGFnSWQmJmEuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmluY2x1ZGVzKGUpJiYocz0hMCxuKz0iL3RhZ3MiKSx0LmNhdGVnb3J5JiYoaT0hMCxuKz0iL2MvIityLmRlZmF1bHQuc2x1Z0Zvcih0LmNhdGVnb3J5KSsiLyIrdC5jYXRlZ29yeS5pZCx0Lm5vU3ViY2F0ZWdvcmllcyYmKG4rPSIvbm9uZSIpKSxzJiYobis9Ii8iK3QudGFnSWQpLChzfHxpKSYmKG4rPSIvbCIpLG4rPSIvIitlKX0sZnJvbVRleHQ6ZnVuY3Rpb24odCxuKXt2YXIgaT10aGlzLGU9IWwuZGVmYXVsdC5jdXJyZW50KCk7aWYobj1ufHx7fSxlKXt2YXIgcz1hLmRlZmF1bHQuY3VycmVudFByb3AoImFub255bW91c190b3BfbWVudV9pdGVtcyIpO2lmKCFzfHwhcy5pbmNsdWRlcyh0KSlyZXR1cm4gbnVsbH1pZighci5kZWZhdWx0Lmxpc3QoKSYmImNhdGVnb3JpZXMiPT09dClyZXR1cm4gbnVsbDtpZighYS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BfbWVudV9pdGVtcyIpLmluY2x1ZGVzKHQpKXJldHVybiBudWxsO3ZhciBvPXtuYW1lOnQsaGFzSWNvbjoidW5yZWFkIj09PXR9O3JldHVybiBuLmNhdGVnb3J5JiYoby5jYXRlZ29yeT1uLmNhdGVnb3J5KSxuLnRhZ0lkJiYoby50YWdJZD1uLnRhZ0lkKSxuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zJiYoby5wZXJzaXN0ZWRRdWVyeVBhcmFtcz1uLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKSxuLm5vU3ViY2F0ZWdvcmllcyYmKG8ubm9TdWJjYXRlZ29yaWVzPSEwKSxiLmV4dHJhQXJnc0NhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBfLm1lcmdlKG8sZS5jYWxsKGksdCxuKSl9KSxEaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6c3RvcmUiKS5jcmVhdGVSZWNvcmQoIm5hdi1pdGVtIixvKX0sYnVpbGRMaXN0OmZ1bmN0aW9uKGkscyl7cz1zfHx7fSxpJiYocy5jYXRlZ29yeT1pKTt2YXIgbz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRvcF9tZW51LnNwbGl0KCJ8IiksdD0ocy5maWx0ZXJNb2RlfHwiIikuc3BsaXQoIi8iKS5wb3AoKTtvLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQ9PT1lfSl8fG8ucHVzaCh0KSxvPW8ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBiLmZyb21UZXh0KGUscyl9KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhKGkmJjA9PT1lLmdldCgibmFtZSIpLmluZGV4T2YoImNhdGVnb3IiKSl9KTt2YXIgbj17Y2F0ZWdvcnk6cy5jYXRlZ29yeSx0YWdJZDpzLnRhZ0lkLG5vU3ViY2F0ZWdvcmllczpzLm5vU3ViY2F0ZWdvcmllc30sZT1iLmV4dHJhTmF2SXRlbURlc2NyaXB0b3JzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZy5jcmVhdGUoXy5tZXJnZSh7fSxuLGUpKX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5jdXN0b21GaWx0ZXJ8fGUuY3VzdG9tRmlsdGVyKGkscyl9KSxyPSExO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5pbml0JiZlLmluaXQoZSxpLHMpO3ZhciB0PWUuYmVmb3JlO2lmKHQpe2Zvcih2YXIgbj0wLG49MDtuPG8ubGVuZ3RoJiZvW25dLm5hbWUhPT10O24rKyk7by5zcGxpY2UobiwwLGUpfWVsc2Ugby5wdXNoKGUpO2UuY3VzdG9tSHJlZiYmZS5zZXQoImhyZWYiLGUuY3VzdG9tSHJlZihpLHMpKSxlLmZvcmNlQWN0aXZlJiZlLmZvcmNlQWN0aXZlKGkscyk/KGUuYWN0aXZlPSEwLHI9ITApOmUuYWN0aXZlPXZvaWQgMH0pLHImJm8uZm9yRWFjaChmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmFjdGl2ZSYmKGUuYWN0aXZlPSExKX0pLG99fSksZS5kZWZhdWx0PWIsT2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiTmF2SXRlbSIse2dldDpmdW5jdGlvbigpe3JldHVybigwLG8uZGVmYXVsdCkoIkltcG9ydCB0aGUgTmF2SXRlbSBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIERpc2NvdXJzZS5OYXZJdGVtIix7c2luY2U6IjIuNC4wIixkcm9wRnJvbToiMi41LjAifSksYn19KX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy9yZXZpZXdhYmxlLWhpc3RvcnkiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkVESVRFRD1lLlRSQU5TSVRJT05FRF9UTz1lLkNSRUFURUQ9dm9pZCAwO2UuQ1JFQVRFRD0wLGUuVFJBTlNJVElPTkVEX1RPPTEsZS5FRElURUQ9MjtlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y3JlYXRlZDooMCx0LmVxdWFsKSgicmV2aWV3YWJsZV9oaXN0b3J5X3R5cGUiLDApfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvcmV2aWV3YWJsZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsInJzdnAiXSxmdW5jdGlvbihlLHQsaSxuLHMsbyl7InVzZSBzdHJpY3QiO3ZhciByLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuREVMRVRFRD1lLklHTk9SRUQ9ZS5SRUpFQ1RFRD1lLkFQUFJPVkVEPWUuUEVORElORz12b2lkIDA7dmFyIGwsdSxjLGQscCxtO2UuUEVORElORz0wLGUuQVBQUk9WRUQ9MSxlLlJFSkVDVEVEPTIsZS5JR05PUkVEPTMsZS5ERUxFVEVEPTQ7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgidHlwZSIsInRvcGljIiksbD1hPXtodW1hblR5cGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iUmV2aWV3YWJsZVF1ZXVlZFBvc3QiIT09ZXx8dHx8KGU9IlJldmlld2FibGVRdWV1ZWRUb3BpYyIpLEkxOG4udCgicmV2aWV3LnR5cGVzLiIrZS51bmRlcnNjb3JlKCkrIi50aXRsZSIse2RlZmF1bHRWYWx1ZToiIn0pfSx1cGRhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZigwPT09T2JqZWN0LmtleXMoZSkubGVuZ3RoKXJldHVybiBvLlByb21pc2UucmVzb2x2ZSgpO3ZhciBuPXRoaXMuc3RvcmUuYWRhcHRlckZvcigicmV2aWV3YWJsZSIpO3JldHVybigwLGkuYWpheCkoIi9yZXZpZXcvIit0aGlzLmlkKyI/dmVyc2lvbj0iK3RoaXMudmVyc2lvbixuLmdldFBheWxvYWQoIlBVVCIse3Jldmlld2FibGU6ZX0pKS50aGVuKGZ1bmN0aW9uKGUpe2UucGF5bG9hZD1PYmplY3QuYXNzaWduKHt9LHQucGF5bG9hZHx8e30sZS5wYXlsb2FkfHx7fSksZS5jYXRlZ29yeV9pZCYmKGUuY2F0ZWdvcnk9cy5kZWZhdWx0LmZpbmRCeUlkKGUuY2F0ZWdvcnlfaWQpLGRlbGV0ZSBlLmNhdGVnb3J5X2lkKSx0LnNldFByb3BlcnRpZXMoZSl9KX19LHU9Imh1bWFuVHlwZSIsYz1bcl0sZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImh1bWFuVHlwZSIpLHA9YSxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChsLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLHUsbSksbT1udWxsKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL2FyY2hldHlwZSIsImRpc2NvdXJzZS9tb2RlbHMvcG9zdC1hY3Rpb24tdHlwZSIsImRpc2NvdXJzZS9taXhpbnMvc2luZ2xldG9uIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy90cnVzdC1sZXZlbCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LHMsaSxuLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBtLGYsaCxiLGc7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB2PWwuZGVmYXVsdC5leHRlbmQoKG09KDAsdC5kZWZhdWx0KSgibm90aWZpY2F0aW9uX3R5cGVzIiksZj0oMCx0LmRlZmF1bHQpKCJwb3N0X2FjdGlvbl90eXBlcy5bXSIpLGg9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcmllc0J5Q291bnQiLCJjYXRlZ29yaWVzLltdIiksYj0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdIikscChnPXtpc1JlYWRPbmx5OigwLG4uYWxpYXMpKCJpc19yZWFkb25seSIpLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b3BpY0NvdW50RGVzYz1bInRvcGljX2NvdW50OmRlc2MiXX0sbm90aWZpY2F0aW9uTG9va3VwOmZ1bmN0aW9uKHQpe3ZhciBuPVtdO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW3RbZV1dPWV9KSxufSxmbGFnVHlwZXM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc3RfYWN0aW9uX3R5cGVzO3JldHVybiBlP2UuZmlsdGVyQnkoImlzX2ZsYWciLCEwKTpbXX0sY2F0ZWdvcmllc0J5Q291bnQ6KDAsbi5zb3J0KSgiY2F0ZWdvcmllcyIsInRvcGljQ291bnREZXNjIiksY29sbGVjdFVzZXJGaWVsZHM6ZnVuY3Rpb24obil7bj1ufHx7fTt2YXIgZT10aGlzLnVzZXJfZmllbGRzO3JldHVybigwLGkuaXNFbXB0eSkoZSk/W106ZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9KHQ9bj9uW2UuaWQudG9TdHJpbmcoKV06bnVsbCl8fCImbWRhc2g7Ii5odG1sU2FmZSgpO3JldHVybntuYW1lOmUubmFtZSx2YWx1ZTp0fX0pfSxzb3J0ZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKGUpe3ZhciBpPVtdLHM9e307cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1wYXJzZUludChlLmdldCgicGFyZW50X2NhdGVnb3J5X2lkIiksMTApO3Q/KHNbdF09c1t0XXx8W10sc1t0XS5wdXNoT2JqZWN0KGUpKTppLnB1c2hPYmplY3QoZSl9KSxPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWkuZmluZEJ5KCJpZCIscGFyc2VJbnQoZSwxMCkpLG49aS5pbmRleE9mKHQpOy0xIT09biYmaS5yZXBsYWNlKG4rMSwwLHNbZV0pfSksaX0sYmFzZVVyaTpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuYmFzZVVyaX0sY2F0ZWdvcmllc0xpc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zP3RoaXMuY2F0ZWdvcmllczp0aGlzLnNvcnRlZENhdGVnb3JpZXN9LHBvc3RBY3Rpb25UeXBlQnlJZDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5nZXQoInBvc3RBY3Rpb25CeUlkTG9va3VwLmFjdGlvbiIrZSl9LHRvcGljRmxhZ1R5cGVCeUlkOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmdldCgidG9waWNGbGFnQnlJZExvb2t1cC5hY3Rpb24iK2UpfSxyZW1vdmVDYXRlZ29yeTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNhdGVnb3JpZXMsbj10LmZpbmRCeSgiaWQiLGUpO24mJih0LnJlbW92ZU9iamVjdChuKSxkZWxldGUgdGhpcy5jYXRlZ29yaWVzQnlJZC5jYXRlZ29yeUlkKX0sdXBkYXRlQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jYXRlZ29yaWVzLG49KDAscy5nZXQpKGUsImlkIiksaT10LmZpbmRCeSgiaWQiLG4pO3JldHVybiBudWxsPT09ZS5wZXJtaXNzaW9uJiZkZWxldGUgZS5wZXJtaXNzaW9uLGk/KGkuc2V0UHJvcGVydGllcyhlKSxpKTooZT10aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgiY2F0ZWdvcnkiLGUpLHQucHVzaE9iamVjdChlKSx0aGlzLmNhdGVnb3JpZXNCeUlkW25dPWUpfX0sIm5vdGlmaWNhdGlvbkxvb2t1cCIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywibm90aWZpY2F0aW9uTG9va3VwIiksZykscChnLCJmbGFnVHlwZXMiLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsImZsYWdUeXBlcyIpLGcpLHAoZywic29ydGVkQ2F0ZWdvcmllcyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywic29ydGVkQ2F0ZWdvcmllcyIpLGcpLHAoZywiYmFzZVVyaSIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJiYXNlVXJpIiksZykscChnLCJjYXRlZ29yaWVzTGlzdCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiY2F0ZWdvcmllc0xpc3QiKSxnKSxnKSk7di5yZW9wZW5DbGFzcyhhLmRlZmF1bHQse2NyZWF0ZUN1cnJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gRGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikuY3JlYXRlUmVjb3JkKCJzaXRlIixjLmRlZmF1bHQuZ2V0KCJzaXRlIikpfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgbixpPXRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0PWkuc3RvcmU7cmV0dXJuIGkuY2F0ZWdvcmllcyYmKG49e30saS5jYXRlZ29yaWVzQnlJZD17fSxpLmNhdGVnb3JpZXM9aS5jYXRlZ29yaWVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJihuW2UucGFyZW50X2NhdGVnb3J5X2lkXT1uW2UucGFyZW50X2NhdGVnb3J5X2lkXXx8W10sbltlLnBhcmVudF9jYXRlZ29yeV9pZF0ucHVzaChlLmlkKSksaS5jYXRlZ29yaWVzQnlJZFtlLmlkXT10LmNyZWF0ZVJlY29yZCgiY2F0ZWdvcnkiLGUpfSksaS5jYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bltlLmdldCgiaWQiKV07dCYmZS5zZXQoInN1YmNhdGVnb3JpZXMiLHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLmNhdGVnb3JpZXNCeUlkW2VdfSkpLGUuZ2V0KCJwYXJlbnRfY2F0ZWdvcnlfaWQiKSYmZS5zZXQoInBhcmVudENhdGVnb3J5IixpLmNhdGVnb3JpZXNCeUlkW2UuZ2V0KCJwYXJlbnRfY2F0ZWdvcnlfaWQiKV0pfSkpLGkudHJ1c3RfbGV2ZWxzJiYoaS50cnVzdExldmVscz1pLnRydXN0X2xldmVscy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUuZGVmYXVsdC5jcmVhdGUoZSl9KSxkZWxldGUgaS50cnVzdF9sZXZlbHMpLGkucG9zdF9hY3Rpb25fdHlwZXMmJihpLnBvc3RBY3Rpb25CeUlkTG9va3VwPXMuZGVmYXVsdC5jcmVhdGUoKSxpLnBvc3RfYWN0aW9uX3R5cGVzPWkucG9zdF9hY3Rpb25fdHlwZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkucG9zdEFjdGlvbkJ5SWRMb29rdXAuc2V0KCJhY3Rpb24iK2UuaWQsdCksdH0pKSxpLnRvcGljX2ZsYWdfdHlwZXMmJihpLnRvcGljRmxhZ0J5SWRMb29rdXA9cy5kZWZhdWx0LmNyZWF0ZSgpLGkudG9waWNfZmxhZ190eXBlcz1pLnRvcGljX2ZsYWdfdHlwZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PXIuZGVmYXVsdC5jcmVhdGUoZSk7cmV0dXJuIGkudG9waWNGbGFnQnlJZExvb2t1cC5zZXQoImFjdGlvbiIrZS5pZCx0KSx0fSkpLGkuYXJjaGV0eXBlcyYmKGkuYXJjaGV0eXBlcz1pLmFyY2hldHlwZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNpdGU9aSxvLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGkudXNlcl9maWVsZHMmJihpLnVzZXJfZmllbGRzPWkudXNlcl9maWVsZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQuY3JlYXRlKGUpfSkpLGl9fSk7dmFyIHk9ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiU2l0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB5fHwoKDAsZC5kZWZhdWx0KSgiSW1wb3J0IHRoZSBTaXRlIGNsYXNzIGluc3RlYWQgb2YgdXNpbmcgRGlzY291cnNlLlNpdGUiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjYuMCJ9KSx5PSEwKSx2fX0pLGUuZGVmYXVsdD12fSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3N0YXRpYy1wYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxzLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89dC5kZWZhdWx0LmV4dGVuZCgpO28ucmVvcGVuQ2xhc3Moe2ZpbmQ6ZnVuY3Rpb24oaSl7cmV0dXJuIG5ldyBuLlByb21pc2UoZnVuY3Rpb24odCl7dmFyIGUsbj0kKCdub3NjcmlwdFtkYXRhLXBhdGg9Ii8nK2krJyJdJyk7bi5sZW5ndGg/KGU9KGU9bi50ZXh0KCkpLm1hdGNoKC88IS0tIHByZWxvYWQtY29udGVudDogLS0+KCg/Oi58W1xuXHJdKSopPCEtLSA6cHJlbG9hZC1jb250ZW50IC0tPi8pWzFdLHQoby5jcmVhdGUoe3BhdGg6aSxodG1sOmV9KSkpOigwLHMuYWpheCkoIi8iK2krIi5odG1sIix7ZGF0YVR5cGU6Imh0bWwifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdChvLmNyZWF0ZSh7cGF0aDppLGh0bWw6ZX0pKX0pfSl9fSksZS5kZWZhdWx0PW99KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdGFnLWdyb3VwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwZXJtaXNzaW9ucyIpLHI9bz17cGVybWlzc2lvbk5hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fGUuZXZlcnlvbmU9PT1pLmRlZmF1bHQuRlVMTD8icHVibGljIjplLmV2ZXJ5b25lPT09aS5kZWZhdWx0LlJFQURPTkxZPyJ2aXNpYmxlIjoicHJpdmF0ZSJ9fSxhPSJwZXJtaXNzaW9uTmFtZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInBlcm1pc3Npb25OYW1lIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiY291bnQiLCJwbV9jb3VudCIpLG89KDAsdC5kZWZhdWx0KSgiY291bnQiLCJwbV9jb3VudCIpLHI9KDAsdC5kZWZhdWx0KSgiaWQiKSxpKGE9e3RvdGFsQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSxwbU9ubHk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09PWUmJjA8dH0sc2VhcmNoQ29udGV4dDpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidGFnIixpZDplLHRhZzp0aGlzLG5hbWU6ZX19fSwidG90YWxDb3VudCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwidG90YWxDb3VudCIpLGEpLGkoYSwicG1Pbmx5Iixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJwbU9ubHkiKSxhKSxpKGEsInNlYXJjaENvbnRleHQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNlYXJjaENvbnRleHQiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9tb2RlbHMvdG9waWMtbGlzdCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9nZXQtb3duZXIiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9tb2RlbHMvc2Vzc2lvbiIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxhLHIsbixpLGwsdSxjLHMsZCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBtKGUsdCl7dmFyIG49e307cmV0dXJuKDAscy5pc0VtcHR5KShlKXx8ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe25bZS5pZF09dC5jcmVhdGUoZSl9KSxufXZhciBmPW4uZGVmYXVsdC5leHRlbmQoe2NhbkxvYWRNb3JlOigwLHQubm90RW1wdHkpKCJtb3JlX3RvcGljc191cmwiKSxmb3JFYWNoTmV3OmZ1bmN0aW9uKGUsdCl7dmFyIG49W107dGhpcy50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbltlLmlkXT0hMH0pLGUuZm9yRWFjaChmdW5jdGlvbihlKXtuW2UuaWRdfHx0KGUpfSl9LHJlZnJlc2hTb3J0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5wYXJhbXN8fHt9O24ucT9uPXtxOm4ucX06KG4ub3JkZXI9ZXx8bi5vcmRlcixuLmFzY2VuZGluZz10KSx0aGlzLnNldCgicGFyYW1zIixuKX0sbG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKHRoaXMubG9hZGluZ01vcmUpcmV0dXJuIGwuUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGU9dGhpcy5tb3JlX3RvcGljc191cmw7aWYoZSl7dmFyIHQ9ZS5zcGxpdCgiPyIpLG49cCh0LDIpLHM9blswXSxvPW5bMV07cmV0dXJuIHMubWF0Y2goL1wuanNvbiQvKXx8KHMrPSIuanNvbiIpLGU9cyxvJiYoZSs9Ij8iK28pLHRoaXMuc2V0KCJsb2FkaW5nTW9yZSIsITApLCgwLHIuYWpheCkoe3VybDplfSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0wO2lmKGUpe3ZhciBuPWYudG9waWNzRnJvbShpLnN0b3JlLGUpO3JldHVybiBpLmZvckVhY2hOZXcobixmdW5jdGlvbihlKXtlLnNldCgiaGlnaGxpZ2h0IiwwPT10KyspLGkudG9waWNzLnB1c2hPYmplY3QoZSl9KSxpLnNldFByb3BlcnRpZXMoe2xvYWRpbmdNb3JlOiExLG1vcmVfdG9waWNzX3VybDplLnRvcGljX2xpc3QubW9yZV90b3BpY3NfdXJsfSksYy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BpY0xpc3QiLGkpLGkubW9yZV90b3BpY3NfdXJsfX0pfXJldHVybiBsLlByb21pc2UucmVzb2x2ZSgpfSxsb2FkQmVmb3JlOmZ1bmN0aW9uKHQsbil7dmFyIGk9dGhpczt0aGlzLnRvcGljcy5yZW1vdmVPYmplY3RzKHRoaXMudG9waWNzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMDw9dC5pbmRleE9mKGUuaWQpfSkpO3ZhciBlPSIiK0Rpc2NvdXJzZS5nZXRVUkwoIi8iKSt0aGlzLmZpbHRlcisiLmpzb24/dG9waWNfaWRzPSIrdC5qb2luKCIsIik7cmV0dXJuKDAsci5hamF4KSh7dXJsOmUsZGF0YTp0aGlzLnBhcmFtc30pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9MDtpLmZvckVhY2hOZXcoZi50b3BpY3NGcm9tKGkuc3RvcmUsZSksZnVuY3Rpb24oZSl7ZS5zZXQoImhpZ2hsaWdodCIsITApLGkudG9waWNzLmluc2VydEF0KHQsZSksdCsrfSksbiYmYy5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BpY0xpc3QiLGkpfSl9fSk7Zi5yZW9wZW5DbGFzcyh7dG9waWNzRnJvbTpmdW5jdGlvbih0LGUsbil7aWYoZSl7dmFyIGk9KG49bnx8e30pLmxpc3RLZXl8fCJ0b3BpY3MiLHM9dS5kZWZhdWx0Lmxpc3QoKSxvPW0oZS51c2VycyxkLmRlZmF1bHQpLHI9bShlLnByaW1hcnlfZ3JvdXBzLGEuZGVmYXVsdCk7cmV0dXJuIGUudG9waWNfbGlzdFtpXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2F0ZWdvcnk9cy5maW5kQnkoImlkIixlLmNhdGVnb3J5X2lkKSxlLnBvc3RlcnMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnVzZXI9b1tlLnVzZXJfaWRdLGUuZXh0cmFDbGFzc2VzPWUuZXh0cmFzLGUucHJpbWFyeV9ncm91cF9pZCYmKGUucHJpbWFyeV9ncm91cD1yW2UucHJpbWFyeV9ncm91cF9pZF0sZS5wcmltYXJ5X2dyb3VwJiYoZS5leHRyYUNsYXNzZXM9KGUuZXh0cmFDbGFzc2VzfHwiIikrIiBncm91cC0iK2UucHJpbWFyeV9ncm91cC5uYW1lKSl9KSxlLnBhcnRpY2lwYW50cyYmZS5wYXJ0aWNpcGFudHMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VyPW9bZS51c2VyX2lkXX0pLHQuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZSl9KX19LG11bmdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaW5zZXJ0ZWQ9ZS5pbnNlcnRlZHx8W10sZS5jYW5fY3JlYXRlX3RvcGljPWUudG9waWNfbGlzdC5jYW5fY3JlYXRlX3RvcGljLGUubW9yZV90b3BpY3NfdXJsPWUudG9waWNfbGlzdC5tb3JlX3RvcGljc191cmwsZS5kcmFmdF9rZXk9ZS50b3BpY19saXN0LmRyYWZ0X2tleSxlLmRyYWZ0X3NlcXVlbmNlPWUudG9waWNfbGlzdC5kcmFmdF9zZXF1ZW5jZSxlLmRyYWZ0PWUudG9waWNfbGlzdC5kcmFmdCxlLmZvcl9wZXJpb2Q9ZS50b3BpY19saXN0LmZvcl9wZXJpb2QsZS5sb2FkZWQ9ITAsZS5wZXJfcGFnZT1lLnRvcGljX2xpc3QucGVyX3BhZ2UsZS50b3BpY3M9dGhpcy50b3BpY3NGcm9tKHQsZSksZS50b3BpY19saXN0LnNoYXJlZF9kcmFmdHMmJihlLnNoYXJlZERyYWZ0cz10aGlzLnRvcGljc0Zyb20odCxlLHtsaXN0S2V5OiJzaGFyZWRfZHJhZnRzIn0pKSxlfSxmaW5kOmZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsaS5nZXRPd25lcikodGhpcykubG9va3VwKCJzZXJ2aWNlOnN0b3JlIikuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6ZSxwYXJhbXM6dH0pfSxoaWRlVW5pZm9ybUNhdGVnb3J5OmZ1bmN0aW9uKGUsdCl7ZS5zZXQoImhpZGVDYXRlZ29yeSIsIWZ1bmN0aW9uKGUsdCl7aWYodCl7aWYodC5oYXNfY2hpbGRyZW4pcmV0dXJuIDE7dmFyIG49ZS5zaGFyZWRfZHJhZnRzX2NhdGVnb3J5X2lkO3JldHVybiBuJiZ0LmlkPT09bj8xOnZvaWQgMH1yZXR1cm4gMX0oZS5zaXRlLHQpKX19KSxlLmRlZmF1bHQ9Zn0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy90b3BpYy10aW1lciIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL21vZGVscy9yZXN0Il0sZnVuY3Rpb24oZSxyLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dC5kZWZhdWx0LmV4dGVuZCh7fSk7bi5yZW9wZW5DbGFzcyh7dXBkYXRlU3RhdHVzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG89e3RpbWU6dCxzdGF0dXNfdHlwZTppfTtyZXR1cm4gbiYmKG8uYmFzZWRfb25fbGFzdF9wb3N0PW4pLHMmJihvLmNhdGVnb3J5X2lkPXMpLCgwLHIuYWpheCkoe3VybDoiL3QvIitlKyIvdGltZXIiLHR5cGU6IlBPU1QiLGRhdGE6b30pfX0pLGUuZGVmYXVsdD1ufSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLXRyYWNraW5nLXN0YXRlIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3V0aWxzIiwiZGlzY291cnNlL2xpYi9ub3RpZmljYXRpb24tbGV2ZWxzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwicHJlbG9hZC1zdG9yZSIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLGksdCxuLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtmdW5jdGlvbiBwKGUpe3JldHVybiBudWxsPT09ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXImJigwIT09ZS5ub3RpZmljYXRpb25fbGV2ZWwmJiFlLm5vdGlmaWNhdGlvbl9sZXZlbHx8ZS5ub3RpZmljYXRpb25fbGV2ZWw+PW4uTm90aWZpY2F0aW9uTGV2ZWxzLlRSQUNLSU5HKSYmZihlKX1mdW5jdGlvbiBtKGUpe3JldHVybiBudWxsIT09ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXImJmUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPGUuaGlnaGVzdF9wb3N0X251bWJlciYmZS5ub3RpZmljYXRpb25fbGV2ZWw+PW4uTm90aWZpY2F0aW9uTGV2ZWxzLlRSQUNLSU5HfWZ1bmN0aW9uIGYoZSl7cmV0dXJuIWUuaXNfc2Vlbn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zdGFydFRyYWNraW5nPWZ1bmN0aW9uKGUpe3ZhciB0PW8uZGVmYXVsdC5nZXQoInRvcGljVHJhY2tpbmdTdGF0ZXMiKTtlLmxvYWRTdGF0ZXModCksZS5pbml0aWFsU3RhdGVzTGVuZ3RoPXQmJnQubGVuZ3RoLGUuZXN0YWJsaXNoQ2hhbm5lbHMoKSxvLmRlZmF1bHQucmVtb3ZlKCJ0b3BpY1RyYWNraW5nU3RhdGVzIil9O3ZhciBoPWkuZGVmYXVsdC5leHRlbmQoKHU9KDAscy5vbikoImluaXQiKSxjPSgwLHMuZGVmYXVsdCkoImluY29taW5nQ291bnQiKSxsKGQ9e21lc3NhZ2VDb3VudDowLF9zZXR1cDpmdW5jdGlvbigpe3RoaXMudW5yZWFkU2VxdWVuY2U9W10sdGhpcy5uZXdTZXF1ZW5jZT1bXSx0aGlzLnN0YXRlcz17fX0sZXN0YWJsaXNoQ2hhbm5lbHM6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKG4pe2lmKCJkZWxldGUiPT09bi5tZXNzYWdlX3R5cGUmJihyLnJlbW92ZVRvcGljKG4udG9waWNfaWQpLHIuaW5jcmVtZW50TWVzc2FnZUNvdW50KCkpLFsibmV3X3RvcGljIiwibGF0ZXN0Il0uaW5jbHVkZXMobi5tZXNzYWdlX3R5cGUpKXt2YXIgZT1hLmRlZmF1bHQuY3VycmVudFByb3AoIm11dGVkX2NhdGVnb3J5X2lkcyIpO2lmKGUmJmUuaW5jbHVkZXMobi5wYXlsb2FkLmNhdGVnb3J5X2lkKSlyZXR1cm59aWYoWyJuZXdfdG9waWMiLCJsYXRlc3QiXS5pbmNsdWRlcyhuLm1lc3NhZ2VfdHlwZSkpe3ZhciB0PWEuZGVmYXVsdC5jdXJyZW50UHJvcCgibXV0ZWRfdGFnX2lkcyIpO2lmKGk9bi5wYXlsb2FkLnRvcGljX3RhZ19pZHMsKHM9dCkmJmkmJigiYWx3YXlzIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MucmVtb3ZlX211dGVkX3RhZ3NfZnJvbV9sYXRlc3QmJmkuYW55KGZ1bmN0aW9uKGUpe3JldHVybiBzLmluY2x1ZGVzKGUpfSl8fCJvbmx5X211dGVkIj09PURpc2NvdXJzZS5TaXRlU2V0dGluZ3MucmVtb3ZlX211dGVkX3RhZ3NfZnJvbV9sYXRlc3QmJmkuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIHMuaW5jbHVkZXMoZSl9KSkpcmV0dXJufXZhciBpLHMsbzsibGF0ZXN0Ij09PW4ubWVzc2FnZV90eXBlJiZyLm5vdGlmeShuKSwiZGlzbWlzc19uZXciPT09bi5tZXNzYWdlX3R5cGUmJihPYmplY3Qua2V5cyhyLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1yLnN0YXRlc1tlXTtuLnBheWxvYWQuY2F0ZWdvcnlfaWQmJnQuY2F0ZWdvcnlfaWQhPT1wYXJzZUludChuLnBheWxvYWQuY2F0ZWdvcnlfaWQsMCl8fChyLnN0YXRlc1tlXT1PYmplY3QuYXNzaWduKHt9LHQse2lzX3NlZW46ITB9KSl9KSxyLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJzdGF0ZXMiKSxyLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSxbIm5ld190b3BpYyIsInVucmVhZCIsInJlYWQiXS5pbmNsdWRlcyhuLm1lc3NhZ2VfdHlwZSkmJihyLm5vdGlmeShuKSxvPXIuc3RhdGVzWyJ0IituLnRvcGljX2lkXSxfLmlzRXF1YWwobyxuLnBheWxvYWQpfHwoci5zdGF0ZXNbInQiK24udG9waWNfaWRdPW4ucGF5bG9hZCxyLm5vdGlmeVByb3BlcnR5Q2hhbmdlKCJzdGF0ZXMiKSxyLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSl9dmFyIHI9dGhpczt0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvbmV3IixlKSx0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvbGF0ZXN0IixlKSx0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvdW5yZWFkLyIrdGhpcy5jdXJyZW50VXNlci5nZXQoImlkIiksZSksdGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL2RlbGV0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ci5zdGF0ZXNbInQiK2UudG9waWNfaWRdO3QmJih0LmRlbGV0ZWQ9ITApLHIuaW5jcmVtZW50TWVzc2FnZUNvdW50KCl9KSx0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKCIvcmVjb3ZlciIsZnVuY3Rpb24oZSl7dmFyIHQ9ci5zdGF0ZXNbInQiK2UudG9waWNfaWRdO3QmJmRlbGV0ZSB0LmRlbGV0ZWQsci5pbmNyZW1lbnRNZXNzYWdlQ291bnQoKX0pfSx1cGRhdGVTZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG47ZSYmdCYmKChuPXRoaXMuc3RhdGVzWyJ0IitlXSkmJighbi5sYXN0X3JlYWRfcG9zdF9udW1iZXJ8fG4ubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPHQpJiYobi5sYXN0X3JlYWRfcG9zdF9udW1iZXI9dCx0aGlzLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpKSl9LG5vdGlmeTpmdW5jdGlvbihlKXtpZih0aGlzLm5ld0luY29taW5nJiYoIWUucGF5bG9hZHx8InByaXZhdGVfbWVzc2FnZSIhPT1lLnBheWxvYWQuYXJjaGV0eXBlKSl7dmFyIHQsbj10aGlzLmZpbHRlcixpPXRoaXMuZmlsdGVyQ2F0ZWdvcnkscz1lLnBheWxvYWQmJmUucGF5bG9hZC5jYXRlZ29yeV9pZDtpZihpJiZpLmdldCgiaWQiKSE9PXMpe3ZhciBvPXMmJnIuZGVmYXVsdC5maW5kQnlJZChzKTtpZighb3x8by5nZXQoInBhcmVudENhdGVnb3J5LmlkIikhPT1pLmdldCgiaWQiKSlyZXR1cm59WyJhbGwiLCJsYXRlc3QiLCJuZXciXS5pbmNsdWRlcyhuKSYmIm5ld190b3BpYyI9PT1lLm1lc3NhZ2VfdHlwZSYmdGhpcy5hZGRJbmNvbWluZyhlLnRvcGljX2lkKSxbImFsbCIsInVucmVhZCJdLmluY2x1ZGVzKG4pJiYidW5yZWFkIj09PWUubWVzc2FnZV90eXBlJiYoKHQ9dGhpcy5zdGF0ZXNbInQiK2UudG9waWNfaWRdKSYmdC5oaWdoZXN0X3Bvc3RfbnVtYmVyIT09dC5sYXN0X3JlYWRfcG9zdF9udW1iZXJ8fHRoaXMuYWRkSW5jb21pbmcoZS50b3BpY19pZCkpLCJsYXRlc3QiPT09biYmImxhdGVzdCI9PT1lLm1lc3NhZ2VfdHlwZSYmdGhpcy5hZGRJbmNvbWluZyhlLnRvcGljX2lkKSx0aGlzLnNldCgiaW5jb21pbmdDb3VudCIsdGhpcy5uZXdJbmNvbWluZy5sZW5ndGgpfX0sYWRkSW5jb21pbmc6ZnVuY3Rpb24oZSl7LTE9PT10aGlzLm5ld0luY29taW5nLmluZGV4T2YoZSkmJnRoaXMubmV3SW5jb21pbmcucHVzaChlKX0scmVzZXRUcmFja2luZzpmdW5jdGlvbigpe3RoaXMubmV3SW5jb21pbmc9W10sdGhpcy5zZXQoImluY29taW5nQ291bnQiLDApfSx0cmFja0luY29taW5nOmZ1bmN0aW9uKGUpe3RoaXMubmV3SW5jb21pbmc9W107dmFyIHQsbj1lLnNwbGl0KCIvIik7NDw9bi5sZW5ndGg/KGU9bltuLmxlbmd0aC0xXSx0PXIuZGVmYXVsdC5maW5kU2luZ2xlQnlTbHVnKG4uc3BsaWNlKDEsbi5sZW5ndGgtNCkuam9pbigiLyIpKSx0aGlzLnNldCgiZmlsdGVyQ2F0ZWdvcnkiLHQpKTp0aGlzLnNldCgiZmlsdGVyQ2F0ZWdvcnkiLG51bGwpLHRoaXMuc2V0KCJmaWx0ZXIiLGUpLHRoaXMuc2V0KCJpbmNvbWluZ0NvdW50IiwwKX0saGFzSW5jb21pbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA8ZX0scmVtb3ZlVG9waWM6ZnVuY3Rpb24oZSl7ZGVsZXRlIHRoaXMuc3RhdGVzWyJ0IitlXX0sdXBkYXRlVG9waWNzOmZ1bmN0aW9uKGUpe3ZhciBhOygwLHQuaXNFbXB0eSkoZSl8fChhPXRoaXMuc3RhdGVzLGUuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGkscyxvLHI9YVsidCIrZS5nZXQoImlkIildO3ImJih0PWUuZ2V0KCJsYXN0X3JlYWRfcG9zdF9udW1iZXIiKSxuPWUuZ2V0KCJpc19zZWVuIiksdD09PXIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyJiZuPT09ci5pc19zZWVufHwocz0oaT1lLmdldCgicG9zdHNfY291bnQiKSktci5oaWdoZXN0X3Bvc3RfbnVtYmVyLG89aS1yLmxhc3RfcmVhZF9wb3N0X251bWJlcixzPDAmJihzPTApLHIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHwobz0wKSxvPDAmJihvPTApLGUuc2V0UHJvcGVydGllcyh7aGlnaGVzdF9wb3N0X251bWJlcjpyLmhpZ2hlc3RfcG9zdF9udW1iZXIsbGFzdF9yZWFkX3Bvc3RfbnVtYmVyOnIubGFzdF9yZWFkX3Bvc3RfbnVtYmVyLG5ld19wb3N0czpzLHVucmVhZDpvLGlzX3NlZW46ci5pc19zZWVuLHVuc2Vlbjohci5sYXN0X3JlYWRfcG9zdF9udW1iZXImJmYocil9KSkpfSkpfSxzeW5jOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcyx0PWkuc3RhdGVzO2lmKGUmJmUudG9waWNzKXtmb3IodmFyIHMsbz1lLnRvcGljcy5sZW5ndGgtMTswPD1vO28tLSl7dmFyIHI9dFsidCIrZS50b3BpY3Nbb10uaWRdO3ImJjA8ci5sYXN0X3JlYWRfcG9zdF9udW1iZXImJigibmV3Ij09PW4/ZS50b3BpY3Muc3BsaWNlKG8sMSk6KGUudG9waWNzW29dLnNldCgidW5zZWVuIiwhMSksZS50b3BpY3Nbb10uc2V0KCJkb250X3N5bmMiLCEwKSkpfWUudG9waWNzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9aS5zdGF0ZXNbInQiK2UuaWRdfHx7fTtpZih0LnRvcGljX2lkPWUuaWQsdC5ub3RpZmljYXRpb25fbGV2ZWw9ZS5ub3RpZmljYXRpb25fbGV2ZWwsZS51bnNlZW4pdC5sYXN0X3JlYWRfcG9zdF9udW1iZXI9bnVsbDtlbHNle2lmKCFlLnVucmVhZCYmIWUubmV3X3Bvc3RzKXJldHVybiB2b2lkKGUuZG9udF9zeW5jfHxkZWxldGUgaS5zdGF0ZXNbInQiK2UuaWRdKTt0Lmxhc3RfcmVhZF9wb3N0X251bWJlcj1lLmhpZ2hlc3RfcG9zdF9udW1iZXItKChlLnVucmVhZHx8MCkrKGUubmV3X3Bvc3RzfHwwKSl9dC5oaWdoZXN0X3Bvc3RfbnVtYmVyPWUuaGlnaGVzdF9wb3N0X251bWJlcixlLmNhdGVnb3J5JiYodC5jYXRlZ29yeV9pZD1lLmNhdGVnb3J5LmlkKSxpLnN0YXRlc1sidCIrZS5pZF09dH0pLCJuZXciIT09biYmInVucmVhZCIhPT1ufHxlLm1vcmVfdG9waWNzX3VybHx8KHM9e30sZS50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gc1sidCIrZS5pZF09ITB9KSxPYmplY3Qua2V5cyhpLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDtzW2VdfHwodD1pLnN0YXRlc1tlXSwidW5yZWFkIj09PW4mJm0odCkmJih0Lmxhc3RfcmVhZF9wb3N0X251bWJlcj10LmhpZ2hlc3RfcG9zdF9udW1iZXIpLCJuZXciPT09biYmcCh0KSYmKHQubGFzdF9yZWFkX3Bvc3RfbnVtYmVyPTEpKX0pKSx0aGlzLmluY3JlbWVudE1lc3NhZ2VDb3VudCgpfX0saW5jcmVtZW50TWVzc2FnZUNvdW50OmZ1bmN0aW9uKCl7dGhpcy5pbmNyZW1lbnRQcm9wZXJ0eSgibWVzc2FnZUNvdW50Iil9LGdldFN1YkNhdGVnb3J5SWRzOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bZV0sbj1yLmRlZmF1bHQubGlzdCgpLGk9MDtpPHQubGVuZ3RoOysraSlmb3IodmFyIHM9MDtzPG4ubGVuZ3RoOysrcyl0W2ldPT09bltzXS5wYXJlbnRfY2F0ZWdvcnlfaWQmJih0W3QubGVuZ3RoXT1uW3NdLmlkKTtyZXR1cm4gbmV3IFNldCh0KX0sY291bnROZXc6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5nZXRTdWJDYXRlZ29yeUlkcyh0KTtyZXR1cm4gXy5jaGFpbih0aGlzLnN0YXRlcykuZmlsdGVyKHApLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4icHJpdmF0ZV9tZXNzYWdlIiE9PWUuYXJjaGV0eXBlJiYhZS5kZWxldGVkJiYoIXR8fG4uaGFzKGUuY2F0ZWdvcnlfaWQpKX0pLnZhbHVlKCkubGVuZ3RofSxjb3VudFVucmVhZDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLmdldFN1YkNhdGVnb3J5SWRzKHQpO3JldHVybiBfLmNoYWluKHRoaXMuc3RhdGVzKS5maWx0ZXIobSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiJwcml2YXRlX21lc3NhZ2UiIT09ZS5hcmNoZXR5cGUmJiFlLmRlbGV0ZWQmJighdHx8bi5oYXMoZS5jYXRlZ29yeV9pZCkpfSkudmFsdWUoKS5sZW5ndGh9LGNvdW50Q2F0ZWdvcnk6ZnVuY3Rpb24odCl7dmFyIG49MDtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnN0YXRlcykuZm9yRWFjaChmdW5jdGlvbihlKXtlLmNhdGVnb3J5X2lkIT09dHx8ZS5kZWxldGVkfHwobis9bnVsbD09PWUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHxlLmxhc3RfcmVhZF9wb3N0X251bWJlcjxlLmhpZ2hlc3RfcG9zdF9udW1iZXI/MTowKX0pLG59LGxvb2t1cENvdW50OmZ1bmN0aW9uKGUsdCl7aWYoImxhdGVzdCI9PT1lKXJldHVybiB0aGlzLmxvb2t1cENvdW50KCJuZXciLHQpK3RoaXMubG9va3VwQ291bnQoInVucmVhZCIsdCk7dmFyIG49dD8oMCxpLmdldCkodCwiaWQiKTpudWxsO3QmJigwLGkuZ2V0KSh0LCJuYW1lIik7cmV0dXJuIm5ldyI9PT1lP3RoaXMuY291bnROZXcobik6InVucmVhZCI9PT1lP3RoaXMuY291bnRVbnJlYWQobik6ZS5zcGxpdCgiLyIpWzFdP3RoaXMuY291bnRDYXRlZ29yeShuKTp2b2lkIDB9LGxvYWRTdGF0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zdGF0ZXM7ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbInQiK2UudG9waWNfaWRdPWV9KX19LCJfc2V0dXAiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9zZXR1cCIpLGQpLGwoZCwiaGFzSW5jb21pbmciLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsImhhc0luY29taW5nIiksZCksZCkpO2UuZGVmYXVsdD1ofSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uLXN0YXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoImFjdGlvbl90eXBlIiksYT0oMCx0LmRlZmF1bHQpKCJhY3Rpb25fdHlwZSIpLG8obD17aXNQTTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWkuZGVmYXVsdC5UWVBFUy5tZXNzYWdlc19zZW50fHxlPT09aS5kZWZhdWx0LlRZUEVTLm1lc3NhZ2VzX3JlY2VpdmVkfSxkZXNjcmlwdGlvbjooMCxzLmkxOG4pKCJhY3Rpb25fdHlwZSIsInVzZXJfYWN0aW9uX2dyb3Vwcy4lQCIpLGlzUmVzcG9uc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pLmRlZmF1bHQuVFlQRVMucmVwbGllc3x8ZT09PWkuZGVmYXVsdC5UWVBFUy5xdW90ZXN9fSwiaXNQTSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiaXNQTSIpLGwpLG8obCwiaXNSZXNwb25zZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiaXNSZXNwb25zZSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL21vZGVscy91c2VyLWRyYWZ0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jlc3QiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoImRyYWZ0X3VzZXJuYW1lIiksdT0oMCx0LmRlZmF1bHQpKCJ1c2VybmFtZV9sb3dlciIpLGM9KDAsdC5kZWZhdWx0KSgidG9waWNfaWQiKSxkPSgwLHQuZGVmYXVsdCkoImRyYWZ0X2tleSIpLGEocD17ZWRpdGFibGVEcmFmdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PW8uZGVmYXVsdC5jdXJyZW50UHJvcCgidXNlcm5hbWUiKX0sdXNlclVybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLnVzZXJQYXRoKShlKX0scG9zdFVybDpmdW5jdGlvbihlKXtpZihlKXJldHVybigwLGkucG9zdFVybCkodGhpcy5zbHVnLHRoaXMudG9waWNfaWQsdGhpcy5wb3N0X251bWJlcil9LGRyYWZ0VHlwZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSByLk5FV19UT1BJQ19LRVk6cmV0dXJuIEkxOG4udCgiZHJhZnRzLm5ld190b3BpYyIpO2Nhc2Ugci5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWTpyZXR1cm4gSTE4bi50KCJkcmFmdHMubmV3X3ByaXZhdGVfbWVzc2FnZSIpO2RlZmF1bHQ6cmV0dXJuITF9fX0sImVkaXRhYmxlRHJhZnQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImVkaXRhYmxlRHJhZnQiKSxwKSxhKHAsInVzZXJVcmwiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInVzZXJVcmwiKSxwKSxhKHAsInBvc3RVcmwiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBvc3RVcmwiKSxwKSxhKHAsImRyYWZ0VHlwZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZHJhZnRUeXBlIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItZHJhZnRzLXN0cmVhbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1kcmFmdCIsImRpc2NvdXJzZS9saWIvdGV4dCIsInJzdnAiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgdSxjLGQscCxtLGYsaCxiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCgodT0oMCx0LmRlZmF1bHQpKCJjb250ZW50Lmxlbmd0aCIsImxvYWRlZCIpLGM9e2xvYWRlZDohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbH0pfSxiYXNlVXJsOigwLGkudXJsKSgiaXRlbXNMb2FkZWQiLCJ1c2VyLnVzZXJuYW1lX2xvd2VyIiwiL2RyYWZ0cy5qc29uP29mZnNldD0lQCZ1c2VybmFtZT0lQCIpLGxvYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbCxzaXRlOmV9KSx0aGlzLmZpbmRJdGVtcygpfSxub0NvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmMD09PWV9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRlbnQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRyYWZ0X2tleSE9PXQuZHJhZnRfa2V5fSk7dGhpcy5zZXRQcm9wZXJ0aWVzKHtjb250ZW50OmUsaXRlbXNMb2FkZWQ6ZS5sZW5ndGh9KX0sZmluZEl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxlPXRoaXMuYmFzZVVybDtyZXR1cm4gdGhpcy5sYXN0TG9hZGVkVXJsPT09ZXx8dGhpcy5sb2FkaW5nP2EuUHJvbWlzZS5yZXNvbHZlKCk6KHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksKDAsbi5hamF4KShlLHtjYWNoZToiZmFsc2UifSkudGhlbihmdW5jdGlvbihlKXt2YXIgbjtlJiZlLm5vX3Jlc3VsdHNfaGVscCYmaS5zZXQoIm5vQ29udGVudEhlbHAiLGUubm9fcmVzdWx0c19oZWxwKSxlJiZlLmRyYWZ0cyYmKG49RW1iZXIuQSgpLGUuZHJhZnRzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9SlNPTi5wYXJzZShlLmRhdGEpO2UucG9zdF9udW1iZXI9dC5wb3N0SWR8fG51bGwsZS5kcmFmdF9rZXkhPT1sLk5FV19QUklWQVRFX01FU1NBR0VfS0VZJiZlLmRyYWZ0X2tleSE9PWwuTkVXX1RPUElDX0tFWXx8KGUudGl0bGU9dC50aXRsZSksZS50aXRsZT0oMCxyLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRpdGxlKSksZS5jYXRlZ29yeV9pZCYmKGUuY2F0ZWdvcnk9aS5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KCJpZCIsZS5jYXRlZ29yeV9pZCl8fG51bGwpLG4ucHVzaE9iamVjdChvLmRlZmF1bHQuY3JlYXRlKGUpKX0pLGkuY29udGVudC5wdXNoT2JqZWN0cyhuKSxpLnNldFByb3BlcnRpZXMoe2xvYWRlZDohMCxpdGVtc0xvYWRlZDppLml0ZW1zTG9hZGVkK2UuZHJhZnRzLmxlbmd0aH0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtpLnNldCgibG9hZGluZyIsITEpLGkuc2V0KCJsYXN0TG9hZGVkVXJsIixlKX0pKX19LGQ9YyxwPSJub0NvbnRlbnQiLG09W3VdLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJub0NvbnRlbnQiKSxoPWMsYj17fSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2JbZV09ZltlXX0pLGIuZW51bWVyYWJsZT0hIWIuZW51bWVyYWJsZSxiLmNvbmZpZ3VyYWJsZT0hIWIuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gYnx8Yi5pbml0aWFsaXplcikmJihiLndyaXRhYmxlPSEwKSxiPW0uc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoZCxwLGUpfHxlfSxiKSxoJiZ2b2lkIDAhPT1iLmluaXRpYWxpemVyJiYoYi52YWx1ZT1iLmluaXRpYWxpemVyP2IuaW5pdGlhbGl6ZXIuY2FsbChoKTp2b2lkIDAsYi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWIuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxwLGIpLGI9bnVsbCksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItcG9zdHMtc3RyZWFtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsInJzdnAiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1yLmRlZmF1bHQuZXh0ZW5kKChhPSgwLHQub24pKCJpbml0IiksbD17bG9hZGVkOiExLF9pbml0aWFsaXplOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtpdGVtc0xvYWRlZDowLGNhbkxvYWRNb3JlOiEwLGNvbnRlbnQ6W119KX0sdXJsOigwLG4udXJsKSgidXNlci51c2VybmFtZV9sb3dlciIsImZpbHRlciIsIml0ZW1zTG9hZGVkIiwiL3Bvc3RzLyVALyVAP29mZnNldD0lQCIpLGZpbHRlckJ5OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxvYWRlZCYmdGhpcy5maWx0ZXI9PT1lLmZpbHRlcj9vLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldFByb3BlcnRpZXMoT2JqZWN0LmFzc2lnbih7aXRlbXNMb2FkZWQ6MCxjb250ZW50OltdLGxhc3RMb2FkZWRVcmw6bnVsbH0sZSkpLHRoaXMuZmluZEl0ZW1zKCkpfSxmaW5kSXRlbXM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmxvYWRpbmd8fCF0aGlzLmNhbkxvYWRNb3JlP28uUHJvbWlzZS5yZWplY3QoKToodGhpcy5zZXQoImxvYWRpbmciLCEwKSwoMCxpLmFqYXgpKHRoaXMudXJsLHtjYWNoZTohMX0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZSYmKHQ9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHMuZGVmYXVsdC5jcmVhdGUoZSl9KSxuLmNvbnRlbnQucHVzaE9iamVjdHModCksbi5zZXRQcm9wZXJ0aWVzKHtsb2FkZWQ6ITAsaXRlbXNMb2FkZWQ6bi5pdGVtc0xvYWRlZCt0Lmxlbmd0aCxjYW5Mb2FkTW9yZTowPHQubGVuZ3RofSkpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsITEpfSkpfX0sdT1sLGM9Il9pbml0aWFsaXplIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2luaXRpYWxpemUiKSxtPWwsZj17fSxPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZbZV09cFtlXX0pLGYuZW51bWVyYWJsZT0hIWYuZW51bWVyYWJsZSxmLmNvbmZpZ3VyYWJsZT0hIWYuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZnx8Zi5pbml0aWFsaXplcikmJihmLndyaXRhYmxlPSEwKSxmPWQuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQodSxjLGUpfHxlfSxmKSxtJiZ2b2lkIDAhPT1mLmluaXRpYWxpemVyJiYoZi52YWx1ZT1mLmluaXRpYWxpemVyP2YuaW5pdGlhbGl6ZXIuY2FsbChtKTp2b2lkIDAsZi5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWYuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkodSxjLGYpLGY9bnVsbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItc3RyZWFtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL21vZGVscy9yZXN0IiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiIsImRpc2NvdXJzZS9saWIvdGV4dCIsInJzdnAiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgodT0oMCxhLm9uKSgiaW5pdCIpLGM9KDAsYS5kZWZhdWx0KSgiZmlsdGVyIiksZD0oMCxhLmRlZmF1bHQpKCJsb2FkZWQiLCJjb250ZW50LltdIiksbChwPXtsb2FkZWQ6ITEsX2luaXRpYWxpemU6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2l0ZW1zTG9hZGVkOjAsY29udGVudDpbXX0pfSxmaWx0ZXJQYXJhbTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXMuZGVmYXVsdC5UWVBFUy5yZXBsaWVzP1tzLmRlZmF1bHQuVFlQRVMucmVwbGllcyxzLmRlZmF1bHQuVFlQRVMucXVvdGVzXS5qb2luKCIsIik6ZXx8W3MuZGVmYXVsdC5UWVBFUy50b3BpY3Mscy5kZWZhdWx0LlRZUEVTLnBvc3RzXS5qb2luKCIsIil9LGJhc2VVcmw6KDAsbi51cmwpKCJpdGVtc0xvYWRlZCIsInVzZXIudXNlcm5hbWVfbG93ZXIiLCIvdXNlcl9hY3Rpb25zLmpzb24/b2Zmc2V0PSVAJnVzZXJuYW1lPSVAIiksZmlsdGVyQnk6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyhPYmplY3QuYXNzaWduKHtpdGVtc0xvYWRlZDowLGNvbnRlbnQ6W10sbGFzdExvYWRlZFVybDpudWxsfSxlKSksdGhpcy5maW5kSXRlbXMoKX0sbm9Db250ZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJjA9PT10Lmxlbmd0aH0scmVtb3ZlOmZ1bmN0aW9uKGkpe3RoaXMuY29udGVudC5mb3JFYWNoKGZ1bmN0aW9uKG4pe1sibGlrZXMiLCJzdGFycyIsImVkaXRzIiwiYm9va21hcmtzIl0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLmdldCgiY2hpbGRHcm91cHMuIitlKyIuaXRlbXMiKTt0JiZ0LnJlbW92ZU9iamVjdChpKX0pfSk7dmFyIGU9dGhpcy5jb250ZW50LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5bImxpa2VzIiwic3RhcnMiLCJlZGl0cyIsImJvb2ttYXJrcyJdLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIDA8dC5nZXQoImNoaWxkR3JvdXBzLiIrZSsiLml0ZW1zLmxlbmd0aCIpfSl9KTt0aGlzLnNldFByb3BlcnRpZXMoe2NvbnRlbnQ6ZSxpdGVtc0xvYWRlZDplLmxlbmd0aH0pfSxmaW5kSXRlbXM6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGU9dGhpcy5iYXNlVXJsO3JldHVybiB0aGlzLmZpbHRlclBhcmFtJiYoZSs9IiZmaWx0ZXI9Iit0aGlzLmZpbHRlclBhcmFtKSx0aGlzLm5vQ29udGVudEhlbHBLZXkmJihlKz0iJm5vX3Jlc3VsdHNfaGVscF9rZXk9Iit0aGlzLm5vQ29udGVudEhlbHBLZXkpLHRoaXMuYWN0aW5nVXNlcm5hbWUmJihlKz0iJmFjdGluZ191c2VybmFtZT0iK3RoaXMuYWN0aW5nVXNlcm5hbWUpLHRoaXMubGFzdExvYWRlZFVybD09PWV8fHRoaXMubG9hZGluZz9yLlByb21pc2UucmVzb2x2ZSgpOih0aGlzLnNldCgibG9hZGluZyIsITApLCgwLHQuYWpheCkoZSx7Y2FjaGU6ImZhbHNlIn0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7ZSYmZS5ub19yZXN1bHRzX2hlbHAmJm4uc2V0KCJub0NvbnRlbnRIZWxwIixlLm5vX3Jlc3VsdHNfaGVscCksZSYmZS51c2VyX2FjdGlvbnMmJih0PUVtYmVyLkEoKSxlLnVzZXJfYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGl0bGU9KDAsby5lbW9qaVVuZXNjYXBlKShIYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZS50aXRsZSkpLHQucHVzaE9iamVjdChzLmRlZmF1bHQuY3JlYXRlKGUpKX0pLG4uY29udGVudC5wdXNoT2JqZWN0cyhzLmRlZmF1bHQuY29sbGFwc2VTdHJlYW0odCkpLG4uc2V0UHJvcGVydGllcyh7aXRlbXNMb2FkZWQ6bi5pdGVtc0xvYWRlZCtlLnVzZXJfYWN0aW9ucy5sZW5ndGh9KSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0UHJvcGVydGllcyh7bG9hZGVkOiEwLGxvYWRpbmc6ITEsbGFzdExvYWRlZFVybDplfSl9KSl9fSwiX2luaXRpYWxpemUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIl9pbml0aWFsaXplIikscCksbChwLCJmaWx0ZXJQYXJhbSIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiZmlsdGVyUGFyYW0iKSxwKSxsKHAsIm5vQ29udGVudCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibm9Db250ZW50IikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCIsImRpc2NvdXJzZS9tb2RlbHMvcmVzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItcG9zdHMtc3RyZWFtIiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iLCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uLXN0YXQiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uIiwiZGlzY291cnNlL21vZGVscy91c2VyLWRyYWZ0cy1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwIiwiZGlzY291cnNlL2xpYi90ZXh0IiwicHJlbG9hZC1zdG9yZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwicnN2cCIsImRpc2NvdXJzZS1jb21tb24vbGliL2RlcHJlY2F0ZWQiLCJkaXNjb3Vyc2UvbW9kZWxzL3NpdGUiXSxmdW5jdGlvbihlLHIsdCxpLGwsbixzLG8sYSx1LGMsZCxwLG0sZixoLGIsZyx2LHksdyx4LGssUCxqLFQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TRUNPTkRfRkFDVE9SX01FVEhPRFM9dm9pZCAwO3ZhciBFLE8sUyxDLE0sRCxJLEwsQSxOLHosVSxGLEIsUixxLEgsSyxXLFYsRyxZLEosWCxRLFosZWUsdGUsbmUsaWUsc2Usb2UscmUsYWUsbGUsdWUsY2UsZGUscGU9ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07ZnVuY3Rpb24gbWUobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIG1vbWVudCgpLmRpZmYoZSwieWVhcnMiKTwtNTAwfWUuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTPXtUT1RQOjEsQkFDS1VQX0NPREU6MixTRUNVUklUWV9LRVk6M307dmFyIGhlPXMuZGVmYXVsdC5leHRlbmQoKEU9KDAsZC5kZWZhdWx0KSgiY2FuX2JlX2RlbGV0ZWQiLCJwb3N0X2NvdW50IiksTz0oMCxkLmRlZmF1bHQpKCksUz0oMCxkLmRlZmF1bHQpKCksQz0oMCxkLmRlZmF1bHQpKCksTT0oMCxkLmRlZmF1bHQpKCJ1c2VybmFtZV9sb3dlciIpLEQ9KDAsZC5kZWZhdWx0KSgidXNlcm5hbWUiLCJuYW1lIiksST0oMCxkLmRlZmF1bHQpKCJwcm9maWxlX2JhY2tncm91bmRfdXBsb2FkX3VybCIpLEw9KDAsZC5kZWZhdWx0KSgpLEE9KDAsZC5kZWZhdWx0KSgpLE49KDAsZC5kZWZhdWx0KSgpLHo9KDAsZC5kZWZhdWx0KSgpLFU9KDAsZC5kZWZhdWx0KSgpLEY9KDAsZC5kZWZhdWx0KSgidXNlcm5hbWUiKSxCPSgwLGQuZGVmYXVsdCkoInRydXN0X2xldmVsIiksUj0oMCxkLmRlZmF1bHQpKCJwcmV2aW91c192aXNpdF9hdCIpLHE9KDAsZC5kZWZhdWx0KSgic3VzcGVuZGVkX3RpbGwiKSxIPSgwLGQuZGVmYXVsdCkoInN1c3BlbmRlZF90aWxsIiksSz0oMCxkLmRlZmF1bHQpKCJzaWxlbmNlZF90aWxsIiksVz0oMCxkLmRlZmF1bHQpKCJzdXNwZW5kZWRfdGlsbCIpLFY9KDAsZC5kZWZhdWx0KSgic2lsZW5jZWRfdGlsbCIpLEc9KDAsZC5kZWZhdWx0KSgiZ3JvdXBzLltdIiksWT0oMCxkLmRlZmF1bHQpKCJmaWx0ZXJlZEdyb3VwcyIsIm51bUdyb3Vwc1RvRGlzcGxheSIpLEo9KDAsZC5kZWZhdWx0KSgiZmlsdGVyZWRHcm91cHMiLCJudW1Hcm91cHNUb0Rpc3BsYXkiKSxYPSgwLGQuZGVmYXVsdCkoInN0YXRzRXhjbHVkaW5nUG1zLkBlYWNoLmNvdW50IiksUT0oMCxkLmRlZmF1bHQpKCJzdGF0cy5AZWFjaC5pc1BNIiksWj0oMCxkLm9ic2VydmVzKSgibXV0ZWRfY2F0ZWdvcnlfaWRzIiksZWU9KDAsZC5vYnNlcnZlcykoInRyYWNrZWRfY2F0ZWdvcnlfaWRzIiksdGU9KDAsZC5vYnNlcnZlcykoIndhdGNoZWRfY2F0ZWdvcnlfaWRzIiksbmU9KDAsZC5vYnNlcnZlcykoIndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yeV9pZHMiKSxpZT0oMCxkLmRlZmF1bHQpKCJjYW5fZGVsZXRlX2FjY291bnQiKSxzZT0oMCxkLmRlZmF1bHQpKCJncm91cHMuQGVhY2gudGl0bGUiLCJiYWRnZXMuW10iKSxvZT0oMCxkLmRlZmF1bHQpKCJ1c2VyX29wdGlvbi50ZXh0X3NpemVfc2VxIiwidXNlcl9vcHRpb24udGV4dF9zaXplIikscmU9KDAsZC5kZWZhdWx0KSgic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIiwic3RhZmYiKSxtZShhZT17aGFzUE1zOigwLHQuZ3QpKCJwcml2YXRlX21lc3NhZ2VzX3N0YXRzLmFsbCIsMCksaGFzU3RhcnRlZFBNczooMCx0Lmd0KSgicHJpdmF0ZV9tZXNzYWdlc19zdGF0cy5taW5lIiwwKSxoYXNVbnJlYWRQTXM6KDAsdC5ndCkoInByaXZhdGVfbWVzc2FnZXNfc3RhdHMudW5yZWFkIiwwKSxyZWRpcmVjdGVkX3RvX3RvcDp7cmVhc29uOm51bGx9LGNhbkJlRGVsZXRlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0PD01fSxzdHJlYW06ZnVuY3Rpb24oKXtyZXR1cm4gby5kZWZhdWx0LmNyZWF0ZSh7dXNlcjp0aGlzfSl9LHBvc3RzU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdC5jcmVhdGUoe3VzZXI6dGhpc30pfSx1c2VyRHJhZnRzU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIGIuZGVmYXVsdC5jcmVhdGUoe3VzZXI6dGhpc30pfSxzdGFmZjooMCxpLmNvbXB1dGVkKSgiYWRtaW4iLCJtb2RlcmF0b3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZG1pbnx8dGhpcy5tb2RlcmF0b3J9LHNldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkbWlufHx0aGlzLm1vZGVyYXRvcn19KSxkZXN0cm95U2Vzc2lvbjpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi9zZXNzaW9uLyIrdGhpcy51c2VybmFtZSx7dHlwZToiREVMRVRFIn0pfSxzZWFyY2hDb250ZXh0OmZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOiJ1c2VyIixpZDplLHVzZXI6dGhpc319LGRpc3BsYXlOYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIERpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5hYmxlX25hbWVzJiYhKDAsci5pc0VtcHR5KSh0KT90OmV9LHByb2ZpbGVCYWNrZ3JvdW5kVXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLHIuaXNFbXB0eSkoZSl8fCFEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLmFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHM/IiIuaHRtbFNhZmUoKTooImJhY2tncm91bmQtaW1hZ2U6IHVybCgiK0Rpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGUpKyIpIikuaHRtbFNhZmUoKX0scGF0aDpmdW5jdGlvbigpe3JldHVybigwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWVfbG93ZXIpfSx1c2VyQXBpS2V5czpmdW5jdGlvbigpe3ZhciBuPXRoaXMsZT10aGlzLnVzZXJfYXBpX2tleXM7aWYoZSlyZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9aS5kZWZhdWx0LmNyZWF0ZShlKTtyZXR1cm4gdC5yZXZva2U9ZnVuY3Rpb24oKXtuLnJldm9rZUFwaUtleSh0KX0sdC51bmRvUmV2b2tlPWZ1bmN0aW9uKCl7bi51bmRvUmV2b2tlQXBpS2V5KHQpfSx0fSl9LHJldm9rZUFwaUtleTpmdW5jdGlvbihlKXtyZXR1cm4oMCxsLmFqYXgpKCIvdXNlci1hcGkta2V5L3Jldm9rZSIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOmUuZ2V0KCJpZCIpfX0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmV2b2tlZCIsITApfSl9LHVuZG9SZXZva2VBcGlLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgiL3VzZXItYXBpLWtleS91bmRvLXJldm9rZSIse3R5cGU6IlBPU1QiLGRhdGE6e2lkOmUuZ2V0KCJpZCIpfX0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgicmV2b2tlZCIsITEpfSl9LHBtUGF0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmlkLG49dGhpcy51c2VybmFtZV9sb3dlcixpPWUmJmUuZ2V0KCJkZXRhaWxzIikscz1pJiZpLmdldCgiYWxsb3dlZF91c2VycyIpLG89aSYmaS5nZXQoImFsbG93ZWRfZ3JvdXBzIik7cmV0dXJuIW98fHMmJnMuZmluZEJ5KCJpZCIsdCk/KDAseC51c2VyUGF0aCkobisiL21lc3NhZ2VzIik6byYmb1swXT8oMCx4LnVzZXJQYXRoKShuKyIvbWVzc2FnZXMvZ3JvdXAvIitvWzBdLm5hbWUpOnZvaWQgMH0sYWRtaW5QYXRoOigwLG4udXJsKSgiaWQiLCJ1c2VybmFtZV9sb3dlciIsIi9hZG1pbi91c2Vycy8lQDEvJUAyIiksbXV0ZWRUb3BpY3NQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuImxhdGVzdCI9PT0oMCx3LmRlZmF1bHRIb21lcGFnZSkoKT9EaXNjb3Vyc2UuZ2V0VVJMKCIvP3N0YXRlPW11dGVkIik6RGlzY291cnNlLmdldFVSTCgiL2xhdGVzdD9zdGF0ZT1tdXRlZCIpfSx3YXRjaGluZ1RvcGljc1BhdGg6ZnVuY3Rpb24oKXtyZXR1cm4ibGF0ZXN0Ij09PSgwLHcuZGVmYXVsdEhvbWVwYWdlKSgpP0Rpc2NvdXJzZS5nZXRVUkwoIi8/c3RhdGU9d2F0Y2hpbmciKTpEaXNjb3Vyc2UuZ2V0VVJMKCIvbGF0ZXN0P3N0YXRlPXdhdGNoaW5nIil9LHRyYWNraW5nVG9waWNzUGF0aDpmdW5jdGlvbigpe3JldHVybiJsYXRlc3QiPT09KDAsdy5kZWZhdWx0SG9tZXBhZ2UpKCk/RGlzY291cnNlLmdldFVSTCgiLz9zdGF0ZT10cmFja2luZyIpOkRpc2NvdXJzZS5nZXRVUkwoIi9sYXRlc3Q/c3RhdGU9dHJhY2tpbmciKX0sdXNlcm5hbWVfbG93ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX0sdHJ1c3RMZXZlbDpmdW5jdGlvbihlKXtyZXR1cm4gVC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0cnVzdExldmVscyIpLmZpbmRCeSgiaWQiLHBhcnNlSW50KGUsMTApKX0saXNCYXNpYzooMCx0LmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDApLGlzTGVhZGVyOigwLHQuZXF1YWwpKCJ0cnVzdF9sZXZlbCIsMyksaXNFbGRlcjooMCx0LmVxdWFsKSgidHJ1c3RfbGV2ZWwiLDQpLGNhbk1hbmFnZVRvcGljOigwLHQub3IpKCJzdGFmZiIsImlzRWxkZXIiKSxwcmV2aW91c1Zpc2l0QXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKGUpfSxzdXNwZW5kZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJm1vbWVudChlKS5pc0FmdGVyKCl9LHN1c3BlbmRlZEZvcmV2ZXI6ZmUsc2lsZW5jZWRGb3JldmVyOmZlLHN1c3BlbmRlZFRpbGxEYXRlOmMubG9uZ0RhdGUsc2lsZW5jZWRUaWxsRGF0ZTpjLmxvbmdEYXRlLGNoYW5nZVVzZXJuYW1lOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL3VzZXJuYW1lIikse3R5cGU6IlBVVCIsZGF0YTp7bmV3X3VzZXJuYW1lOmV9fSl9LGNoYW5nZUVtYWlsOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL2VtYWlsIikse3R5cGU6IlBVVCIsZGF0YTp7ZW1haWw6ZX19KX0sY29weTpmdW5jdGlvbigpe3JldHVybiBoZS5jcmVhdGUodGhpcy5nZXRQcm9wZXJ0aWVzKE9iamVjdC5rZXlzKHRoaXMpKSl9LHNhdmU6ZnVuY3Rpb24ocyl7dmFyIG89dGhpcyxlPVsiYmlvX3JhdyIsIndlYnNpdGUiLCJsb2NhdGlvbiIsIm5hbWUiLCJ0aXRsZSIsImxvY2FsZSIsImN1c3RvbV9maWVsZHMiLCJ1c2VyX2ZpZWxkcyIsIm11dGVkX3VzZXJuYW1lcyIsImlnbm9yZWRfdXNlcm5hbWVzIiwicHJvZmlsZV9iYWNrZ3JvdW5kX3VwbG9hZF91cmwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIsIm11dGVkX3RhZ3MiLCJ0cmFja2VkX3RhZ3MiLCJ3YXRjaGVkX3RhZ3MiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiLCJkYXRlX29mX2JpcnRoIiwicHJpbWFyeV9ncm91cF9pZCJdLHI9dGhpcy5nZXRQcm9wZXJ0aWVzKHM/Xy5pbnRlcnNlY3Rpb24oZSxzKTplKSx0PVsibWFpbGluZ19saXN0X21vZGUiLCJtYWlsaW5nX2xpc3RfbW9kZV9mcmVxdWVuY3kiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZW1haWxfZGlnZXN0cyIsImVtYWlsX2luX3JlcGx5X3RvIiwiZW1haWxfbWVzc2FnZXNfbGV2ZWwiLCJlbWFpbF9sZXZlbCIsImVtYWlsX3ByZXZpb3VzX3JlcGxpZXMiLCJkeW5hbWljX2Zhdmljb24iLCJlbmFibGVfcXVvdGluZyIsImVuYWJsZV9kZWZlciIsImF1dG9tYXRpY2FsbHlfdW5waW5fdG9waWNzIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiLCJuZXdfdG9waWNfZHVyYXRpb25fbWludXRlcyIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciLCJsaWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kiLCJpbmNsdWRlX3RsMF9pbl9kaWdlc3RzIiwidGhlbWVfaWRzIiwiYWxsb3dfcHJpdmF0ZV9tZXNzYWdlcyIsImhvbWVwYWdlX2lkIiwiaGlkZV9wcm9maWxlX2FuZF9wcmVzZW5jZSIsInRleHRfc2l6ZSIsInRpdGxlX2NvdW50X21vZGUiLCJ0aW1lem9uZSJdO3MmJih0PV8uaW50ZXJzZWN0aW9uKHQscykpLHQuZm9yRWFjaChmdW5jdGlvbihlKXtyW2VdPW8uZ2V0KCJ1c2VyX29wdGlvbi4iK2UpfSk7dmFyIGE9e307cmV0dXJuWyJtdXRlZCIsIndhdGNoZWQiLCJ0cmFja2VkIiwid2F0Y2hlZF9maXJzdF9wb3N0Il0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGk7dm9pZCAwIT09cyYmIXMuaW5jbHVkZXMoZSsiX2NhdGVnb3J5X2lkcyIpfHwodD0id2F0Y2hlZF9maXJzdF9wb3N0Ij09PWU/IndhdGNoZWRGaXJzdFBvc3RDYXRlZ29yaWVzIjplKyJDYXRlZ29yaWVzIiwobj1vLmdldCh0KSkmJihpPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgiaWQiKX0pLGFbZSsiX2NhdGVnb3J5X2lkcyJdPWksMD09PW4ubGVuZ3RoJiYoaT1bLTFdKSxyW2UrIl9jYXRlZ29yeV9pZHMiXT1pKSl9KSxbIm11dGVkX3RhZ3MiLCJ0cmFja2VkX3RhZ3MiLCJ3YXRjaGVkX3RhZ3MiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PXMmJiFzLmluY2x1ZGVzKGUpfHwocltlXT1vLmdldChlKT9vLmdldChlKS5qb2luKCIsIik6IiIpfSksdGhpcy5zZXQoImlzU2F2aW5nIiwhMCksKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIuanNvbiIpLHtkYXRhOnIsdHlwZToiUFVUIn0pLnRoZW4oZnVuY3Rpb24oZSl7by5zZXQoImJpb19leGNlcnB0IixlLnVzZXIuYmlvX2V4Y2VycHQpO3ZhciB0PSgwLGkuZ2V0UHJvcGVydGllcykoby51c2VyX29wdGlvbiwiZW5hYmxlX3F1b3RpbmciLCJlbmFibGVfZGVmZXIiLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIiwiZHluYW1pY19mYXZpY29uIik7aGUuY3VycmVudCgpLnNldFByb3BlcnRpZXModCksby5zZXRQcm9wZXJ0aWVzKGEpfSkuZmluYWxseShmdW5jdGlvbigpe28uc2V0KCJpc1NhdmluZyIsITEpfSl9LGNoYW5nZVBhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5hamF4KSgiL3Nlc3Npb24vZm9yZ290X3Bhc3N3b3JkIix7ZGF0YVR5cGU6Impzb24iLGRhdGE6e2xvZ2luOnRoaXMudXNlcm5hbWV9LHR5cGU6IlBPU1QifSl9LGxvYWRTZWNvbmRGYWN0b3JDb2RlczpmdW5jdGlvbihlKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9ycy5qc29uIix7ZGF0YTp7cGFzc3dvcmQ6ZX0sdHlwZToiUE9TVCJ9KX0scmVxdWVzdFNlY3VyaXR5S2V5Q2hhbGxlbmdlOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbC5hamF4KSgiL3UvY3JlYXRlX3NlY29uZF9mYWN0b3Jfc2VjdXJpdHlfa2V5Lmpzb24iLHt0eXBlOiJQT1NUIn0pfSxyZWdpc3RlclNlY3VyaXR5S2V5OmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoIi91L3JlZ2lzdGVyX3NlY29uZF9mYWN0b3Jfc2VjdXJpdHlfa2V5Lmpzb24iLHtkYXRhOmUsdHlwZToiUE9TVCJ9KX0sY3JlYXRlU2Vjb25kRmFjdG9yVG90cDpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi91L2NyZWF0ZV9zZWNvbmRfZmFjdG9yX3RvdHAuanNvbiIse3R5cGU6IlBPU1QifSl9LGVuYWJsZVNlY29uZEZhY3RvclRvdHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9lbmFibGVfc2Vjb25kX2ZhY3Rvcl90b3RwLmpzb24iLHtkYXRhOntzZWNvbmRfZmFjdG9yX3Rva2VuOmUsbmFtZTp0fSx0eXBlOiJQT1NUIn0pfSxkaXNhYmxlQWxsU2Vjb25kRmFjdG9yczpmdW5jdGlvbigpe3JldHVybigwLGwuYWpheCkoIi91L2Rpc2FibGVfc2Vjb25kX2ZhY3Rvci5qc29uIix7dHlwZToiUFVUIn0pfSx1cGRhdGVTZWNvbmRGYWN0b3I6ZnVuY3Rpb24oZSx0LG4saSl7cmV0dXJuKDAsbC5hamF4KSgiL3Uvc2Vjb25kX2ZhY3Rvci5qc29uIix7ZGF0YTp7c2Vjb25kX2ZhY3Rvcl90YXJnZXQ6aSxuYW1lOnQsZGlzYWJsZTpuLGlkOmV9LHR5cGU6IlBVVCJ9KX0sdXBkYXRlU2VjdXJpdHlLZXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGwuYWpheCkoIi91L3NlY3VyaXR5X2tleS5qc29uIix7ZGF0YTp7bmFtZTp0LGRpc2FibGU6bixpZDplfSx0eXBlOiJQVVQifSl9LHRvZ2dsZVNlY29uZEZhY3RvcjpmdW5jdGlvbihlLHQsbixpKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9yLmpzb24iLHtkYXRhOntzZWNvbmRfZmFjdG9yX3Rva2VuOmUsc2Vjb25kX2ZhY3Rvcl9tZXRob2Q6dCxzZWNvbmRfZmFjdG9yX3RhcmdldDpuLGVuYWJsZTppfSx0eXBlOiJQVVQifSl9LGdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXM6ZnVuY3Rpb24oKXtyZXR1cm4oMCxsLmFqYXgpKCIvdS9zZWNvbmRfZmFjdG9yc19iYWNrdXAuanNvbiIse3R5cGU6IlBVVCJ9KX0scmV2b2tlQXNzb2NpYXRlZEFjY291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lKyIvcHJlZmVyZW5jZXMvcmV2b2tlLWFjY291bnQiKSx7ZGF0YTp7cHJvdmlkZXJfbmFtZTplfSx0eXBlOiJQT1NUIn0pfSxsb2FkVXNlckFjdGlvbjpmdW5jdGlvbihlKXt2YXIgaT10aGlzLHM9dGhpcy5zdHJlYW07cmV0dXJuKDAsbC5hamF4KSgiL3VzZXJfYWN0aW9ucy8iK2UrIi5qc29uIix7Y2FjaGU6ImZhbHNlIn0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZSYmZS51c2VyX2FjdGlvbil7dmFyIHQ9ZS51c2VyX2FjdGlvbjtpZigoaS5nZXQoInN0cmVhbS5maWx0ZXIiKXx8dC5hY3Rpb25fdHlwZSkhPT10LmFjdGlvbl90eXBlKXJldHVybjtpZighaS5nZXQoInN0cmVhbS5maWx0ZXIiKSYmIWkuaW5BbGxTdHJlYW0odCkpcmV0dXJuO3QudGl0bGU9KDAsdi5lbW9qaVVuZXNjYXBlKShIYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24odC50aXRsZSkpO3ZhciBuPWguZGVmYXVsdC5jb2xsYXBzZVN0cmVhbShbaC5kZWZhdWx0LmNyZWF0ZSh0KV0pO3Muc2V0KCJpdGVtc0xvYWRlZCIscy5nZXQoIml0ZW1zTG9hZGVkIikrMSkscy5nZXQoImNvbnRlbnQiKS5pbnNlcnRBdCgwLG5bMF0pfX0pfSxpbkFsbFN0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gZS5hY3Rpb25fdHlwZT09PWguZGVmYXVsdC5UWVBFUy5wb3N0c3x8ZS5hY3Rpb25fdHlwZT09PWguZGVmYXVsdC5UWVBFUy50b3BpY3N9LG51bUdyb3Vwc1RvRGlzcGxheToyLGZpbHRlcmVkR3JvdXBzOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuZ3JvdXBzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLmF1dG9tYXRpY3x8Im1vZGVyYXRvcnMiPT09ZS5uYW1lfSl9LGRpc3BsYXlHcm91cHM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnNsaWNlKDAsdCk7cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOm59LHNob3dNb3JlR3JvdXBzTGluazpmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aD50fSxzdGF0c0NvdW50Tm9uUE06ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCgwLHIuaXNFbXB0eSkodGhpcy5zdGF0c0V4Y2x1ZGluZ1BtcykpcmV0dXJuIDA7dmFyIG49MDtyZXR1cm4gdGhpcy5zdGF0c0V4Y2x1ZGluZ1Btcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuaW5BbGxTdHJlYW0oZSkmJihuKz1lLmNvdW50KX0pLG59LHN0YXRzRXhjbHVkaW5nUG1zOmZ1bmN0aW9uKCl7cmV0dXJuKDAsci5pc0VtcHR5KSh0aGlzLnN0YXRzKT9bXTp0aGlzLnN0YXRzLnJlamVjdEJ5KCJpc1BNIil9LGZpbmREZXRhaWxzOmZ1bmN0aW9uKG4pe3ZhciBvPXRoaXM7cmV0dXJuIHkuZGVmYXVsdC5nZXRBbmRSZW1vdmUoInVzZXJfIitvLmdldCgidXNlcm5hbWUiKSxmdW5jdGlvbigpe3ZhciBlPW4mJm4uZm9yQ2FyZDtuJiZkZWxldGUgbi5mb3JDYXJkO3ZhciB0PWU/by5nZXQoInVzZXJuYW1lIikrIi9jYXJkLmpzb24iOm8uZ2V0KCJ1c2VybmFtZSIpKyIuanNvbiI7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0KSx7ZGF0YTpufSl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKCgwLHIuaXNFbXB0eSkoZS51c2VyLnN0YXRzKXx8KGUudXNlci5zdGF0cz1oZS5ncm91cFN0YXRzKGUudXNlci5zdGF0cy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY291bnQmJihlLmNvdW50PXBhcnNlSW50KGUuY291bnQsMTApKSxmLmRlZmF1bHQuY3JlYXRlKGUpfSkpKSwhKDAsci5pc0VtcHR5KShlLnVzZXIuZ3JvdXBzKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUudXNlci5ncm91cHMubGVuZ3RoO24rKyl7dmFyIGk9Zy5kZWZhdWx0LmNyZWF0ZShlLnVzZXIuZ3JvdXBzW25dKTtpLmdyb3VwX3VzZXI9ZS51c2VyLmdyb3VwX3VzZXJzW25dLHQucHVzaChpKX1lLnVzZXIuZ3JvdXBzPXR9dmFyIHM7cmV0dXJuIGUudXNlci5pbnZpdGVkX2J5JiYoZS51c2VyLmludml0ZWRfYnk9aGUuY3JlYXRlKGUudXNlci5pbnZpdGVkX2J5KSksKDAsci5pc0VtcHR5KShlLnVzZXIuZmVhdHVyZWRfdXNlcl9iYWRnZV9pZHMpfHwocz17fSxtLmRlZmF1bHQuY3JlYXRlRnJvbUpzb24oZSkuZm9yRWFjaChmdW5jdGlvbihlKXtzW2UuZ2V0KCJpZCIpXT1lfSksZS51c2VyLmZlYXR1cmVkX3VzZXJfYmFkZ2VzPWUudXNlci5mZWF0dXJlZF91c2VyX2JhZGdlX2lkcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHNbZV19KSksZS51c2VyLmNhcmRfYmFkZ2UmJihlLnVzZXIuY2FyZF9iYWRnZT1wLmRlZmF1bHQuY3JlYXRlKGUudXNlci5jYXJkX2JhZGdlKSksby5zZXRQcm9wZXJ0aWVzKGUudXNlciksb30pfSxmaW5kU3RhZmZJbmZvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gaGUuY3VycmVudFByb3AoInN0YWZmIik/KDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvc3RhZmYtaW5mby5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKGUpfSk6UC5Qcm9taXNlLnJlc29sdmUobnVsbCl9LHBpY2tBdmF0YXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxsLmFqYXgpKCgwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWVfbG93ZXIrIi9wcmVmZXJlbmNlcy9hdmF0YXIvcGljayIpLHt0eXBlOiJQVVQiLGRhdGE6e3VwbG9hZF9pZDplLHR5cGU6dH19KX0sc2VsZWN0QXZhdGFyOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZV9sb3dlcisiL3ByZWZlcmVuY2VzL2F2YXRhci9zZWxlY3QiKSx7dHlwZToiUFVUIixkYXRhOnt1cmw6ZX19KX0saXNBbGxvd2VkVG9VcGxvYWRBRmlsZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zdGFmZnx8MDx0aGlzLnRydXN0X2xldmVsfHwwPERpc2NvdXJzZS5TaXRlU2V0dGluZ3NbIm5ld3VzZXJfbWF4XyIrZSsicyJdfSxjcmVhdGVJbnZpdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybigwLGwuYWpheCkoIi9pbnZpdGVzIix7dHlwZToiUE9TVCIsZGF0YTp7ZW1haWw6ZSxncm91cF9uYW1lczp0LGN1c3RvbV9tZXNzYWdlOm59fSl9LGdlbmVyYXRlSW52aXRlTGluazpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsbC5hamF4KSgiL2ludml0ZXMvbGluayIse3R5cGU6IlBPU1QiLGRhdGE6e2VtYWlsOmUsZ3JvdXBfbmFtZXM6dCx0b3BpY19pZDpufX0pfSx1cGRhdGVNdXRlZENhdGVnb3JpZXM6ZnVuY3Rpb24oKXt0aGlzLnNldCgibXV0ZWRDYXRlZ29yaWVzIixrLmRlZmF1bHQuZmluZEJ5SWRzKHRoaXMubXV0ZWRfY2F0ZWdvcnlfaWRzKSl9LHVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoInRyYWNrZWRDYXRlZ29yaWVzIixrLmRlZmF1bHQuZmluZEJ5SWRzKHRoaXMudHJhY2tlZF9jYXRlZ29yeV9pZHMpKX0sdXBkYXRlV2F0Y2hlZENhdGVnb3JpZXM6ZnVuY3Rpb24oKXt0aGlzLnNldCgid2F0Y2hlZENhdGVnb3JpZXMiLGsuZGVmYXVsdC5maW5kQnlJZHModGhpcy53YXRjaGVkX2NhdGVnb3J5X2lkcykpfSx1cGRhdGVXYXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllczpmdW5jdGlvbigpe3RoaXMuc2V0KCJ3YXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllcyIsay5kZWZhdWx0LmZpbmRCeUlkcyh0aGlzLndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yeV9pZHMpKX0sY2FuRGVsZXRlQWNjb3VudDpmdW5jdGlvbihlKXtyZXR1cm4hRGlzY291cnNlLlNpdGVTZXR0aW5ncy5lbmFibGVfc3NvJiZlfSxkZWxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5fZGVsZXRlX2FjY291bnQ/KDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lKyIuanNvbiIpLHt0eXBlOiJERUxFVEUiLGRhdGE6e2NvbnRleHQ6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfX0pOlAuUHJvbWlzZS5yZWplY3QoSTE4bi50KCJ1c2VyLmRlbGV0ZV95b3Vyc2VsZl9ub3RfYWxsb3dlZCIpKX0sdXBkYXRlTm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybigwLGwuYWpheCkoKDAseC51c2VyUGF0aCkodGhpcy51c2VybmFtZSkrIi9ub3RpZmljYXRpb25fbGV2ZWwuanNvbiIse3R5cGU6IlBVVCIsZGF0YTp7bm90aWZpY2F0aW9uX2xldmVsOnQsZXhwaXJpbmdfYXQ6ZX19KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9aGUuY3VycmVudCgpO2UmJigibm9ybWFsIj09PXR8fCJtdXRlIj09PXQ/ZS5pZ25vcmVkX3VzZXJzLnJlbW92ZU9iamVjdChuLnVzZXJuYW1lKToiaWdub3JlIj09PXQmJmUuaWdub3JlZF91c2Vycy5hZGRPYmplY3Qobi51c2VybmFtZSkpfSl9LGRpc21pc3NCYW5uZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImRpc21pc3NlZF9iYW5uZXJfa2V5IixlKSwoMCxsLmFqYXgpKCgwLHgudXNlclBhdGgpKHRoaXMudXNlcm5hbWUrIi5qc29uIikse3R5cGU6IlBVVCIsZGF0YTp7ZGlzbWlzc2VkX2Jhbm5lcl9rZXk6ZX19KX0sY2hlY2tFbWFpbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvZW1haWxzLmpzb24iKSx7ZGF0YTp7Y29udGV4dDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9fSkudGhlbihmdW5jdGlvbihlKXtlJiZ0LnNldFByb3BlcnRpZXMoe2VtYWlsOmUuZW1haWwsc2Vjb25kYXJ5X2VtYWlsczplLnNlY29uZGFyeV9lbWFpbHMsYXNzb2NpYXRlZF9hY2NvdW50czplLmFzc29jaWF0ZWRfYWNjb3VudHN9KX0pfSxzdW1tYXJ5OmZ1bmN0aW9uKCl7dmFyIHM9RGlzY291cnNlLl9fY29udGFpbmVyX18ubG9va3VwKCJzZXJ2aWNlOnN0b3JlIik7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSh0aGlzLnVzZXJuYW1lX2xvd2VyKyIvc3VtbWFyeS5qc29uIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS51c2VyX3N1bW1hcnksbj17fSxpPXt9O3JldHVybiBlLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBuW2UuaWRdPXMuY3JlYXRlUmVjb3JkKCJ0b3BpYyIsZSl9KSxwLmRlZmF1bHQuY3JlYXRlRnJvbUpzb24oZSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaVtlLmlkXT1lfSksdC50b3BpY3M9dC50b3BpY19pZHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfSksdC5yZXBsaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50b3BpYz1uW2UudG9waWNfaWRdLGUudXJsPWUudG9waWMudXJsRm9yUG9zdE51bWJlcihlLnBvc3RfbnVtYmVyKSxlLmNyZWF0ZWRBdD1uZXcgRGF0ZShlLmNyZWF0ZWRfYXQpfSksdC5saW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudG9waWM9bltlLnRvcGljX2lkXSxlLnBvc3RfdXJsPWUudG9waWMudXJsRm9yUG9zdE51bWJlcihlLnBvc3RfbnVtYmVyKX0pLHQuYmFkZ2VzJiYodC5iYWRnZXM9dC5iYWRnZXMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZS5iYWRnZV9pZF07cmV0dXJuIHQuY291bnQ9ZS5jb3VudCx0fSkpLHQudG9wX2NhdGVnb3JpZXMmJnQudG9wX2NhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnBhcmVudF9jYXRlZ29yeV9pZCYmKGUucGFyZW50Q2F0ZWdvcnk9ay5kZWZhdWx0LmZpbmRCeUlkKGUucGFyZW50X2NhdGVnb3J5X2lkKSl9KSx0fSl9LGNhbk1hbmFnZUdyb3VwOmZ1bmN0aW9uKGUpe3JldHVybiFlLmdldCgiYXV0b21hdGljIikmJih0aGlzLmFkbWlufHxlLmdldCgiaXNfZ3JvdXBfb3duZXIiKSl9LGF2YWlsYWJsZVRpdGxlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0aGlzLmdyb3Vwc3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5nZXQoInRpdGxlIikmJnQucHVzaChlLmdldCgidGl0bGUiKSl9KSwodGhpcy5iYWRnZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZ2V0KCJhbGxvd190aXRsZSIpJiZ0LnB1c2goZS5nZXQoIm5hbWUiKSl9KSxfLnVuaXEodCkuc29ydCgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpFbWJlci5IYW5kbGViYXJzLlV0aWxzLmVzY2FwZUV4cHJlc3Npb24oZSksaWQ6ZX19KX0sY3VycmVudFRleHRTaXplOmZ1bmN0aW9uKGUsdCl7aWYoJC5jb29raWUoInRleHRfc2l6ZSIpKXt2YXIgbj0kLmNvb2tpZSgidGV4dF9zaXplIikuc3BsaXQoInwiKSxpPXBlKG4sMikscz1pWzBdO2lmKGU8PWlbMV0pcmV0dXJuIHN9cmV0dXJuIHR9LHVwZGF0ZVRleHRTaXplQ29va2llOmZ1bmN0aW9uKGUpe3ZhciB0O2U/KHQ9dGhpcy5nZXQoInVzZXJfb3B0aW9uLnRleHRfc2l6ZV9zZXEiKSwkLmNvb2tpZSgidGV4dF9zaXplIixlKyJ8Iit0LHtwYXRoOiIvIixleHBpcmVzOjk5OTl9KSk6JC5yZW1vdmVDb29raWUoInRleHRfc2l6ZSIse3BhdGg6Ii8iLGV4cGlyZXM6MX0pfSxlbmZvcmNlZFNlY29uZEZhY3RvcjpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MuZW5mb3JjZV9zZWNvbmRfZmFjdG9yO3JldHVybiFlJiYoImFsbCI9PT1ufHwic3RhZmYiPT09biYmdCl9fSwiY2FuQmVEZWxldGVkIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiY2FuQmVEZWxldGVkIiksYWUpLG1lKGFlLCJzdHJlYW0iLFtPXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzdHJlYW0iKSxhZSksbWUoYWUsInBvc3RzU3RyZWFtIixbU10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwicG9zdHNTdHJlYW0iKSxhZSksbWUoYWUsInVzZXJEcmFmdHNTdHJlYW0iLFtDXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1c2VyRHJhZnRzU3RyZWFtIiksYWUpLG1lKGFlLCJzZWFyY2hDb250ZXh0IixbTV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic2VhcmNoQ29udGV4dCIpLGFlKSxtZShhZSwiZGlzcGxheU5hbWUiLFtEXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJkaXNwbGF5TmFtZSIpLGFlKSxtZShhZSwicHJvZmlsZUJhY2tncm91bmRVcmwiLFtJXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJwcm9maWxlQmFja2dyb3VuZFVybCIpLGFlKSxtZShhZSwicGF0aCIsW0xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInBhdGgiKSxhZSksbWUoYWUsInVzZXJBcGlLZXlzIixbQV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXNlckFwaUtleXMiKSxhZSksbWUoYWUsIm11dGVkVG9waWNzUGF0aCIsW05dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsIm11dGVkVG9waWNzUGF0aCIpLGFlKSxtZShhZSwid2F0Y2hpbmdUb3BpY3NQYXRoIixbel0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwid2F0Y2hpbmdUb3BpY3NQYXRoIiksYWUpLG1lKGFlLCJ0cmFja2luZ1RvcGljc1BhdGgiLFtVXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ0cmFja2luZ1RvcGljc1BhdGgiKSxhZSksbWUoYWUsInVzZXJuYW1lX2xvd2VyIixbRl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXNlcm5hbWVfbG93ZXIiKSxhZSksbWUoYWUsInRydXN0TGV2ZWwiLFtCXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ0cnVzdExldmVsIiksYWUpLG1lKGFlLCJwcmV2aW91c1Zpc2l0QXQiLFtSXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJwcmV2aW91c1Zpc2l0QXQiKSxhZSksbWUoYWUsInN1c3BlbmRlZCIsW3FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInN1c3BlbmRlZCIpLGFlKSxtZShhZSwic3VzcGVuZGVkRm9yZXZlciIsW0hdLChsZT0obGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic3VzcGVuZGVkRm9yZXZlciIpKT9sZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0pLGFlKSxtZShhZSwic2lsZW5jZWRGb3JldmVyIixbS10sKHVlPSh1ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzaWxlbmNlZEZvcmV2ZXIiKSk/dWUudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB1ZX19KSxhZSksbWUoYWUsInN1c3BlbmRlZFRpbGxEYXRlIixbV10sKGNlPShjZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJzdXNwZW5kZWRUaWxsRGF0ZSIpKT9jZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNlfX0pLGFlKSxtZShhZSwic2lsZW5jZWRUaWxsRGF0ZSIsW1ZdLChkZT0oZGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic2lsZW5jZWRUaWxsRGF0ZSIpKT9kZS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGRlfX0pLGFlKSxtZShhZSwiZmlsdGVyZWRHcm91cHMiLFtHXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJmaWx0ZXJlZEdyb3VwcyIpLGFlKSxtZShhZSwiZGlzcGxheUdyb3VwcyIsW1ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImRpc3BsYXlHcm91cHMiKSxhZSksbWUoYWUsInNob3dNb3JlR3JvdXBzTGluayIsW0pdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInNob3dNb3JlR3JvdXBzTGluayIpLGFlKSxtZShhZSwic3RhdHNDb3VudE5vblBNIixbWF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwic3RhdHNDb3VudE5vblBNIiksYWUpLG1lKGFlLCJzdGF0c0V4Y2x1ZGluZ1BtcyIsW1FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInN0YXRzRXhjbHVkaW5nUG1zIiksYWUpLG1lKGFlLCJ1cGRhdGVNdXRlZENhdGVnb3JpZXMiLFtaXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1cGRhdGVNdXRlZENhdGVnb3JpZXMiKSxhZSksbWUoYWUsInVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzIixbZWVdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsInVwZGF0ZVRyYWNrZWRDYXRlZ29yaWVzIiksYWUpLG1lKGFlLCJ1cGRhdGVXYXRjaGVkQ2F0ZWdvcmllcyIsW3RlXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFlLCJ1cGRhdGVXYXRjaGVkQ2F0ZWdvcmllcyIpLGFlKSxtZShhZSwidXBkYXRlV2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiLFtuZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwidXBkYXRlV2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiKSxhZSksbWUoYWUsImNhbkRlbGV0ZUFjY291bnQiLFtpZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiY2FuRGVsZXRlQWNjb3VudCIpLGFlKSxtZShhZSwiYXZhaWxhYmxlVGl0bGVzIixbc2VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImF2YWlsYWJsZVRpdGxlcyIpLGFlKSxtZShhZSwiY3VycmVudFRleHRTaXplIixbb2VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYWUsImN1cnJlbnRUZXh0U2l6ZSIpLGFlKSxtZShhZSwiZW5mb3JjZWRTZWNvbmRGYWN0b3IiLFtyZV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhZSwiZW5mb3JjZWRTZWNvbmRGYWN0b3IiKSxhZSksYWUpKTtoZS5yZW9wZW5DbGFzcyh1LmRlZmF1bHQse2ZpbmRCeVVzZXJuYW1lOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGhlLmNyZWF0ZSh7dXNlcm5hbWU6ZX0pLmZpbmREZXRhaWxzKHQpfSxjcmVhdGVDdXJyZW50OmZ1bmN0aW9uKCl7dmFyIGUsdD15LmRlZmF1bHQuZ2V0KCJjdXJyZW50VXNlciIpO3JldHVybiB0JiZ0LnByaW1hcnlfZ3JvdXBfaWQmJigoZT10Lmdyb3Vwcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dC5wcmltYXJ5X2dyb3VwX2lkfSkpJiYodC5wcmltYXJ5X2dyb3VwX25hbWU9ZS5uYW1lKSksdD9EaXNjb3Vyc2UuX19jb250YWluZXJfXy5sb29rdXAoInNlcnZpY2U6c3RvcmUiKS5jcmVhdGVSZWNvcmQoInVzZXIiLHQpOm51bGx9LHJlc2V0Q3VycmVudDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSxEaXNjb3Vyc2UuY3VycmVudFVzZXI9ZX0sY2hlY2tVc2VybmFtZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSgiY2hlY2tfdXNlcm5hbWUiKSx7ZGF0YTp7dXNlcm5hbWU6ZSxlbWFpbDp0LGZvcl91c2VyX2lkOm59fSl9LGdyb3VwU3RhdHM6ZnVuY3Rpb24oZSl7dmFyIHQ9Zi5kZWZhdWx0LmNyZWF0ZSh7Y291bnQ6MCxhY3Rpb25fdHlwZTpoLmRlZmF1bHQuVFlQRVMucmVwbGllc30pO2UuZmlsdGVyQnkoImlzUmVzcG9uc2UiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb3VudCIsdC5nZXQoImNvdW50IikrZS5nZXQoImNvdW50IikpfSk7dmFyIG49RW1iZXIuQSgpO24ucHVzaE9iamVjdHMoZS5yZWplY3RCeSgiaXNSZXNwb25zZSIpKTt2YXIgaT0wO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmFjdGlvbl90eXBlIT09aC5kZWZhdWx0LlRZUEVTLnRvcGljcyYmZS5hY3Rpb25fdHlwZSE9PWguZGVmYXVsdC5UWVBFUy5wb3N0c3x8KGk9dCsxKX0pLDA8dC5jb3VudCYmbi5pbnNlcnRBdChpLHQpLG59LGNyZWF0ZUFjY291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5hamF4KSgoMCx4LnVzZXJQYXRoKSgpLHtkYXRhOntuYW1lOmUuYWNjb3VudE5hbWUsZW1haWw6ZS5hY2NvdW50RW1haWwscGFzc3dvcmQ6ZS5hY2NvdW50UGFzc3dvcmQsdXNlcm5hbWU6ZS5hY2NvdW50VXNlcm5hbWUscGFzc3dvcmRfY29uZmlybWF0aW9uOmUuYWNjb3VudFBhc3N3b3JkQ29uZmlybSxjaGFsbGVuZ2U6ZS5hY2NvdW50Q2hhbGxlbmdlLHVzZXJfZmllbGRzOmUudXNlckZpZWxkcyx0aW1lem9uZTptb21lbnQudHouZ3Vlc3MoKX0sdHlwZToiUE9TVCJ9KX19KTt2YXIgYmU9ITE7T2JqZWN0LmRlZmluZVByb3BlcnR5KERpc2NvdXJzZSwiVXNlciIse2dldDpmdW5jdGlvbigpe3JldHVybiBiZXx8KCgwLGouZGVmYXVsdCkoIkltcG9ydCB0aGUgVXNlciBjbGFzcyBpbnN0ZWFkIG9mIHVzaW5nIFVzZXIiLHtzaW5jZToiMi40LjAiLGRyb3BGcm9tOiIyLjYuMCJ9KSxiZT0hMCksaGV9fSksZS5kZWZhdWx0PWhlfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hYm91dC1wYWdlLXVzZXJzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItaW5mbyIsImRpc2NvdXJzZS9oZWxwZXJzL3VzZXItYXZhdGFyIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3VzZXJzVGVtcGxhdGVzOigwLHIuY29tcHV0ZWQpKCJ1c2Vycy5bXSIsZnVuY3Rpb24oKXtyZXR1cm4odGhpcy51c2Vyc3x8W10pLm1hcChmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5uYW1lJiYoMCxzLm5vcm1hbGl6ZSkoZS51c2VybmFtZSkhPT0oMCxzLm5vcm1hbGl6ZSkoZS5uYW1lKSYmKHQ9ZS5uYW1lKSx7dXNlcm5hbWU6ZS51c2VybmFtZSxuYW1lOnQsdXNlclBhdGg6KDAsbi51c2VyUGF0aCkoZS51c2VybmFtZSksYXZhdGFyOigwLG8ucmVuZGVyQXZhdGFyKShlLHtpbWFnZVNpemU6ImxhcmdlIn0pLHRpdGxlOmUudGl0bGV8fCIiLGZvcm1hdGVkVXNlcm5hbWU6KDAsaS5mb3JtYXRVc2VybmFtZSkoZS51c2VybmFtZSl9fSl9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hY3RpdmF0aW9uLWNvbnRyb2xzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOiJhY3RpdmF0aW9uLWNvbnRyb2xzIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hZGQtY2F0ZWdvcnktdGFnLWNsYXNzZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCxpLm9ic2VydmVzKSgiY2F0ZWdvcnkuZnVsbFNsdWciLCJ0YWdzIikscj1vPXtfc2x1ZzpudWxsLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5yZWZyZXNoQ2xhc3MoKX0sX3VwZGF0ZUNsYXNzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuO3RoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoZT10aGlzLmdldCgiY2F0ZWdvcnkuZnVsbFNsdWciKSx0PXRoaXMudGFncyx0aGlzLl9yZW1vdmVDbGFzcygpLG49W10sZSYmbi5wdXNoKCJjYXRlZ29yeS0iK2UpLHQmJnQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5wdXNoKCJ0YWctIitlKX0pLDA8bi5sZW5ndGgmJiQoImJvZHkiKS5hZGRDbGFzcyhuLmpvaW4oIiAiKSkpfSxyZWZyZXNoQ2xhc3M6ZnVuY3Rpb24oKXsoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX3VwZGF0ZUNsYXNzKX0sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKCl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQubWF0Y2goL1xiKD86Y2F0ZWdvcnl8dGFnKS1cUysvZyl8fFtdKS5qb2luKCIgIil9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3JlbW92ZUNsYXNzKCl9fSxhPSJyZWZyZXNoQ2xhc3MiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJyZWZyZXNoQ2xhc3MiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdXRoLXRva2VuLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImF1dGgtdG9rZW4tZHJvcGRvd24iXSxzZWxlY3RLaXRPcHRpb25zOntpY29uOiJ3cmVuY2giLHNob3dGdWxsVGl0bGU6ITF9LGNvbnRlbnQ6KDAsbi5jb21wdXRlZCkoZnVuY3Rpb24oKXtyZXR1cm5be2lkOiJub3RZb3UiLGljb246InVzZXItdGltZXMiLG5hbWU6STE4bi50KCJ1c2VyLmF1dGhfdG9rZW5zLm5vdF95b3UiKSxkZXNjcmlwdGlvbjoiIn0se2lkOiJsb2dPdXQiLGljb246InNpZ24tb3V0LWFsdCIsbmFtZTpJMThuLnQoInVzZXIubG9nX291dCIpLGRlc2NyaXB0aW9uOiIifV19KSxhY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJub3RZb3UiOnRoaXMuc2hvd1Rva2VuKHRoaXMudG9rZW4pO2JyZWFrO2Nhc2UibG9nT3V0Ijp0aGlzLnJldm9rZUF1dGhUb2tlbih0aGlzLnRva2VuKX19fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdmF0YXItZmxhaXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5vYnNlcnZlcykoImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIpLG89cz17d2lkZ2V0OiJhdmF0YXItZmxhaXIiLF9yZXJlbmRlcjpmdW5jdGlvbigpe3RoaXMucXVldWVSZXJlbmRlcigpfSxidWlsZEFyZ3M6ZnVuY3Rpb24oKXtyZXR1cm57cHJpbWFyeV9ncm91cF9mbGFpcl91cmw6dGhpcy5mbGFpclVSTCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOnRoaXMuZmxhaXJCZ0NvbG9yLHByaW1hcnlfZ3JvdXBfZmxhaXJfY29sb3I6dGhpcy5mbGFpckNvbG9yLHByaW1hcnlfZ3JvdXBfbmFtZTp0aGlzLmdyb3VwTmFtZX19fSxyPSJfcmVyZW5kZXIiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJfcmVyZW5kZXIiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9hdmF0YXItdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHM9KDAsdC5kZWZhdWx0KSgidXNlcl9pZCIpLHI9bz17dHlwZToiYXZhdGFyIix0YWdOYW1lOiJzcGFuIixpbWFnZUlzTm90QVNxdWFyZTohMSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7aW1hZ2VJc05vdEFTcXVhcmU6ZS53aWR0aCE9PWUuaGVpZ2h0LHVwbG9hZGVkQXZhdGFyVGVtcGxhdGU6ZS51cmwsdXBsb2FkZWRBdmF0YXJJZDplLmlkfSksdGhpcy5kb25lKCl9LGRhdGE6ZnVuY3Rpb24oZSl7cmV0dXJue3VzZXJfaWQ6ZX19fSxhPSJkYXRhIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiZGF0YSIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhY2t1cC1jb2RlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZm9ybWF0dGVkQmFja3VwQ29kZXMiKSxvPSgwLHQuZGVmYXVsdCkoImJhY2t1cENvZGVzIiksaShyPXtjbGFzc05hbWVzOlsiYmFja3VwLWNvZGVzIl0sYmFja3VwQ29kZXM6bnVsbCxjbGljazpmdW5jdGlvbihlKXsiYmFja3VwQ29kZXMiPT09ZS50YXJnZXQuaWQmJnRoaXMuX3NlbGVjdEFsbEJhY2t1cENvZGVzKCl9LGRpZFJlbmRlcjpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiI2JhY2t1cENvZGVzIik7ZSYmKGUuc3R5bGUuaGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KX0sYmFzZTY0QmFja3VwQ29kZTpmdW5jdGlvbihlKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihlLHQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrdCl9KSl9LGZvcm1hdHRlZEJhY2t1cENvZGVzOmZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuam9pbigiXG4iKS50cmltKCk6bnVsbH0sYWN0aW9uczp7Y29weVRvQ2xpcGJvYXJkOmZ1bmN0aW9uKCl7dGhpcy5fc2VsZWN0QWxsQmFja3VwQ29kZXMoKSx0aGlzLmNvcHlCYWNrdXBDb2RlKGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IikpfX0sX3NlbGVjdEFsbEJhY2t1cENvZGVzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYWNrdXBDb2RlcyIpO2UuZm9jdXMoKSxlLnNldFNlbGVjdGlvblJhbmdlKDAsdGhpcy5mb3JtYXR0ZWRCYWNrdXBDb2Rlcy5sZW5ndGgpfX0sImJhc2U2NEJhY2t1cENvZGUiLFtzXSwoYT0oYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImJhc2U2NEJhY2t1cENvZGUiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSksciksaShyLCJmb3JtYXR0ZWRCYWNrdXBDb2RlcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiZm9ybWF0dGVkQmFja3VwQ29kZXMiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhY2t1cC11cGxvYWRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO3ZhciBhLGwsdSxjLGQscCxtLGY7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYT0oMCx0LmRlZmF1bHQpKCJ1cGxvYWRpbmciLCJ1cGxvYWRQcm9ncmVzcyIpLGw9e3RhZ05hbWU6InNwYW4iLHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT9JMThuLnQoImFkbWluLmJhY2t1cHMudXBsb2FkLnVwbG9hZGluZ19wcm9ncmVzcyIse3Byb2dyZXNzOnR9KTpJMThuLnQoImFkbWluLmJhY2t1cHMudXBsb2FkLmxhYmVsIil9LHZhbGlkYXRlVXBsb2FkZWRGaWxlc09wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57c2tpcFZhbGlkYXRpb246ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKCl7dGhpcy5kb25lKCl9LGNhbGN1bGF0ZVVwbG9hZFVybDpmdW5jdGlvbigpe3JldHVybiIifSx1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBVVCIsZGF0YVR5cGU6InhtbCIsYXV0b1VwbG9hZDohMSxtdWx0aXBhcnQ6ITF9fSxfaW5pdDooMCxyLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIsZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub24oImZpbGV1cGxvYWRhZGQiLGZ1bmN0aW9uKGUsdCl7KDAsaS5hamF4KSgiL2FkbWluL2JhY2t1cHMvdXBsb2FkX3VybCIse2RhdGE6e2ZpbGVuYW1lOnQuZmlsZXNbMF0ubmFtZX19KS50aGVuKGZ1bmN0aW9uKGUpe3QudXJsPWUudXJsLHQuc3VibWl0KCl9KS5jYXRjaChzLnBvcHVwQWpheEVycm9yKX0pfSl9LHU9bCxjPSJ1cGxvYWRCdXR0b25UZXh0IixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXBsb2FkQnV0dG9uVGV4dCIpLG09bCxmPXt9LE9iamVjdC5rZXlzKHApLmZvckVhY2goZnVuY3Rpb24oZSl7ZltlXT1wW2VdfSksZi5lbnVtZXJhYmxlPSEhZi5lbnVtZXJhYmxlLGYuY29uZmlndXJhYmxlPSEhZi5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBmfHxmLmluaXRpYWxpemVyKSYmKGYud3JpdGFibGU9ITApLGY9ZC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh1LGMsZSl8fGV9LGYpLG0mJnZvaWQgMCE9PWYuaW5pdGlhbGl6ZXImJihmLnZhbHVlPWYuaW5pdGlhbGl6ZXI/Zi5pbml0aWFsaXplci5jYWxsKG0pOnZvaWQgMCxmLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Zi5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LGMsZiksZj1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhZGdlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiYmFkZ2UuZGVzY3JpcHRpb24iKSxvPXt0YWdOYW1lOiJzcGFuIixjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWJhZGdlIiwiYmFkZ2UuYmFkZ2VUeXBlQ2xhc3NOYW1lIiwiYmFkZ2UuZW5hYmxlZDo6ZGlzYWJsZWQiXSx0aXRsZTpmdW5jdGlvbihlKXtyZXR1cm4gJCgiPGRpdj4iK2UrIjwvZGl2PiIpLnRleHQoKX0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLWJhZGdlLW5hbWUiLCJ0aXRsZSJdLCJkYXRhLWJhZGdlLW5hbWUiOigwLG4uYWxpYXMpKCJiYWRnZS5uYW1lIil9LHI9byxhPSJ0aXRsZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRpdGxlIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvYmFkZ2UtY2FyZCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdGV4dCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJiYWRnZS51cmwiLCJmaWx0ZXJVc2VyIiwidXNlcm5hbWUiKSxyPSgwLHQuZGVmYXVsdCkoImNvdW50IiwiYmFkZ2UuZ3JhbnRfY291bnQiKSxhPSgwLHQuZGVmYXVsdCkoInNpemUiKSxzKGw9e3NpemU6Im1lZGl1bSIsY2xhc3NOYW1lQmluZGluZ3M6WyI6YmFkZ2UtY2FyZCIsInNpemUiLCJiYWRnZS5zbHVnIl0sdXJsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD9lKyI/dXNlcm5hbWU9IituOmV9LGRpc3BsYXlDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lP3Q6MTxlP2U6dm9pZCAwfSxzdW1tYXJ5OmZ1bmN0aW9uKGUpe2lmKCJsYXJnZSI9PT1lKXt2YXIgdD10aGlzLmdldCgiYmFkZ2UubG9uZ19kZXNjcmlwdGlvbiIpO2lmKCFfLmlzRW1wdHkodCkpcmV0dXJuKDAsaS5lbW9qaVVuZXNjYXBlKSgoMCxpLnNhbml0aXplKSh0KSl9cmV0dXJuKDAsaS5zYW5pdGl6ZSkodGhpcy5nZXQoImJhZGdlLmRlc2NyaXB0aW9uIikpfX0sInVybCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXJsIiksbCkscyhsLCJkaXNwbGF5Q291bnQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImRpc3BsYXlDb3VudCIpLGwpLHMobCwic3VtbWFyeSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwic3VtbWFyeSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvYmFkZ2Utc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHU9RW1iZXIubWFrZUFycmF5O2UuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLG4uZGVmYXVsdCkoInBsYWNlaG9sZGVyS2V5Iikscj0oMCxuLm9ic2VydmVzKSgiYmFkZ2VOYW1lcyIpLGE9KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxzKGw9e3BsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udChlKToiIn0sX3VwZGF0ZTpmdW5jdGlvbigpeyJ0cnVlIj09PXRoaXMuY2FuUmVjZWl2ZVVwZGF0ZXMmJnRoaXMuX2luaXRpYWxpemVBdXRvY29tcGxldGUoe3VwZGF0ZURhdGE6ITB9KX0sX2luaXRpYWxpemVBdXRvY29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIG49dm9pZCAwOyQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikpLmF1dG9jb21wbGV0ZSh7YWxsb3dBbnk6ITEsaXRlbXM6dSh0aGlzLmJhZGdlTmFtZXMpLHNpbmdsZTp0aGlzLnNpbmdsZSx1cGRhdGVEYXRhOiEoIWV8fCFlLnVwZGF0ZURhdGEpJiZlLnVwZGF0ZURhdGEsdGVtcGxhdGU6KDAsaS5maW5kUmF3VGVtcGxhdGUpKCJiYWRnZS1zZWxlY3Rvci1hdXRvY29tcGxldGUiKSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe249ZSx0aGlzLnNldCgiYmFkZ2VOYW1lcyIsZS5qb2luKCIsIikpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lfSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmJhZGdlRmluZGVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4/ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW4uYW55KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dC5uYW1lfSl9KTplfSl9fSl9fSwicGxhY2Vob2xkZXIiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInBsYWNlaG9sZGVyIiksbCkscyhsLCJfdXBkYXRlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfdXBkYXRlIiksbCkscyhsLCJfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2luaXRpYWxpemVBdXRvY29tcGxldGUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JhZGdlLXRpdGxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInNlbGVjdGFibGVVc2VyQmFkZ2VzIiwic2VsZWN0ZWRVc2VyQmFkZ2VJZCIpLHI9bz17Y2xhc3NOYW1lczpbImJhZGdlLXRpdGxlIl0sc2F2ZWQ6ITEsc2F2aW5nOiExLHNlbGVjdGVkVXNlckJhZGdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZmluZEJ5KCJpZCIscGFyc2VJbnQodCwxMCkpfSxhY3Rpb25zOntzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldFByb3BlcnRpZXMoe3NhdmVkOiExLHNhdmluZzohMH0pO3ZhciB0PXRoaXMuc2VsZWN0ZWRVc2VyQmFkZ2VJZHx8MDsoMCxpLmFqYXgpKHRoaXMuY3VycmVudFVzZXIucGF0aCsiL3ByZWZlcmVuY2VzL2JhZGdlX3RpdGxlIix7dHlwZToiUFVUIixkYXRhOnt1c2VyX2JhZGdlX2lkOnR9fSkudGhlbihmdW5jdGlvbigpe2Uuc2V0UHJvcGVydGllcyh7c2F2ZWQ6ITAsc2F2aW5nOiExfSksZS5jdXJyZW50VXNlci5zZXQoInRpdGxlIixlLmdldCgic2VsZWN0ZWRVc2VyQmFkZ2UuYmFkZ2UubmFtZSIpKX0sZnVuY3Rpb24oKXtib290Ym94LmFsZXJ0KEkxOG4udCgiZ2VuZXJpY19lcnJvciIpKX0pfX19LGE9InNlbGVjdGVkVXNlckJhZGdlIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywic2VsZWN0ZWRVc2VyQmFkZ2UiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInRvcGljTGlzdC5sb2FkZWQiKSxyPSgwLHQub2JzZXJ2ZXMpKCJ0b3BpY0xpc3QuW10iKSxhPSgwLHQuZGVmYXVsdCkoInRvcGljcyIpLHMobD17bG9hZGluZ01vcmU6KDAsbi5hbGlhcykoInRvcGljTGlzdC5sb2FkaW5nTW9yZSIpLGxvYWRpbmc6KDAsbi5ub3QpKCJsb2FkZWQiKSxsb2FkZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRvcGljTGlzdDtyZXR1cm4hZXx8ZS5nZXQoImxvYWRlZCIpfSxfdG9waWNMaXN0Q2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuX2luaXRGcm9tVG9waWNMaXN0KHRoaXMudG9waWNMaXN0KX0sX2luaXRGcm9tVG9waWNMaXN0OmZ1bmN0aW9uKGUpe251bGwhPT1lJiYodGhpcy5zZXQoInRvcGljcyIsZS5nZXQoInRvcGljcyIpKSx0aGlzLnJlcmVuZGVyKCkpfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMudG9waWNMaXN0O2UmJnRoaXMuX2luaXRGcm9tVG9waWNMaXN0KGUpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b3BpY3MuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdDt2b2lkIDAhPT1lLnVucmVhZF9ieV9ncm91cF9tZW1iZXImJih0PSIvcHJpdmF0ZS1tZXNzYWdlcy91bnJlYWQtaW5kaWNhdG9yLyIrZS5pZCxuLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKHQsZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmluZGljYXRvci10b3BpYy0iK2UudG9waWNfaWQpLmNsYXNzTGlzdDtlLnNob3dfaW5kaWNhdG9yP3QucmVtb3ZlKCJyZWFkIik6dC5hZGQoInJlYWQiKX0pKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRvcGljcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0O3ZvaWQgMCE9PWUudW5yZWFkX2J5X2dyb3VwX21lbWJlciYmKHQ9Ii9wcml2YXRlLW1lc3NhZ2VzL3VucmVhZC1pbmRpY2F0b3IvIitlLmlkLG4ubWVzc2FnZUJ1cy51bnN1YnNjcmliZSh0KSl9KX0sc2hvd1VucmVhZEluZGljYXRvcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lLnVucmVhZF9ieV9ncm91cF9tZW1iZXJ9KX0sY2xpY2s6ZnVuY3Rpb24oZSl7aWYodGhpcy5zaXRlLm1vYmlsZVZpZXcpe3ZhciB0PSQoZS50YXJnZXQpO2lmKHQuY2xvc2VzdCgiLnBvc3RzLW1hcCIpLmxlbmd0aCl7dmFyIG49dC5jbG9zZXN0KCJ0ciIpLmF0dHIoImRhdGEtdG9waWMtaWQiKTtpZihuKXtpZigiQSIhPT10LnByb3AoInRhZ05hbWUiKSl7dmFyIGk9dC5maW5kKCJhIik7aWYoaS5sZW5ndGgpdD1pO2Vsc2V7aWYoIShpPXQuY2xvc2VzdCgiYSIpKS5sZW5ndGgpcmV0dXJuITE7dD1pfX12YXIgcz10aGlzLnRvcGljcy5maW5kQnkoImlkIixwYXJzZUludChuLDEwKSk7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtZW50cmFuY2U6c2hvdyIse3RvcGljOnMscG9zaXRpb246dC5vZmZzZXQoKX0pfXJldHVybiExfX19fSwibG9hZGVkIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJsb2FkZWQiKSxsKSxzKGwsIl90b3BpY0xpc3RDaGFuZ2VkIixbcl0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfdG9waWNMaXN0Q2hhbmdlZCIpKT91LnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KSxsKSxzKGwsInNob3dVbnJlYWRJbmRpY2F0b3IiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNob3dVbnJlYWRJbmRpY2F0b3IiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2JyZWFkLWNydW1icyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHIsYSxsLHUsYyxkLHAsbSxmPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIGgoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfWZ1bmN0aW9uIGIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcmllcyIpLHI9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkuYW5jZXN0b3JzIiwiZmlsdGVyZWRDYXRlZ29yaWVzIiwibm9TdWJjYXRlZ29yaWVzIiksYT0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeSIpLGw9KDAsaS5kZWZhdWx0KSgicGFyZW50Q2F0ZWdvcmllcyIpLHU9KDAsaS5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxjPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiKSxkPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiKSxwPSgwLGkuZGVmYXVsdCkoImZpcnN0Q2F0ZWdvcnkiLCJoaWRlU3ViY2F0ZWdvcmllcyIpLGIobT17Y2xhc3NOYW1lQmluZGluZ3M6WyJoaWRkZW46aGlkZGVuIiwiOmNhdGVnb3J5LWJyZWFkY3J1bWIiXSx0YWdOYW1lOiJvbCIsZmlsdGVyZWRDYXRlZ29yaWVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc3x8ZS5pZCE9PXQuc2l0ZS51bmNhdGVnb3JpemVkX2NhdGVnb3J5X2lkfSl9LGNhdGVnb3J5QnJlYWRjcnVtYnM6ZnVuY3Rpb24oZSxvLHIpe3ZhciB0PVt2b2lkIDBdLmNvbmNhdChoKGU9ZXx8W10pKSxuPVtdLmNvbmNhdChoKGUpLFt2b2lkIDBdKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm5bZSxuW3RdXX0pLm1hcChmdW5jdGlvbihlKXt2YXIgdD1mKGUsMiksbj10WzBdLGk9dFsxXSxzPW8uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldCgicGFyZW50Q2F0ZWdvcnkuaWQiKT09PShuJiZuLmlkKX0pO3JldHVybntjYXRlZ29yeTppLHBhcmVudENhdGVnb3J5Om4sb3B0aW9uczpzLGlzU3ViY2F0ZWdvcnk6ISFuLG5vU3ViY2F0ZWdvcmllczohaSYmcixoYXNPcHRpb25zOjAhPT1zLmxlbmd0aH19KX0scGFyZW50Q2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5kZWZhdWx0KSgiVGhlIHBhcmVudENhdGVnb3J5IHByb3BlcnR5IG9mIHRoZSBicmVhZC1jcnVtYnMgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQiKSxlJiZlLnBhcmVudENhdGVnb3J5fSxwYXJlbnRDYXRlZ29yaWVzOigwLHQuZmlsdGVyKSgiY2F0ZWdvcmllcyIsZnVuY3Rpb24oZSl7cmV0dXJuKDAscy5kZWZhdWx0KSgiVGhlIHBhcmVudENhdGVnb3JpZXMgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLCEoZS5pZD09PXRoaXMuc2l0ZS5nZXQoInVuY2F0ZWdvcml6ZWRfY2F0ZWdvcnlfaWQiKSYmIXRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzKSYmIWUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpfSkscGFyZW50Q2F0ZWdvcmllc1NvcnRlZDpmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgcGFyZW50Q2F0ZWdvcmllc1NvcnRlZCBwcm9wZXJ0eSBvZiB0aGUgYnJlYWQtY3J1bWJzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIiksdGhpcy5zaXRlU2V0dGluZ3MuZml4ZWRfY2F0ZWdvcnlfcG9zaXRpb25zP2U6ZS5zb3J0QnkoInRvdGFsVG9waWNDb3VudCIpLnJldmVyc2UoKX0saGlkZGVuOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlldyYmIWV9LGZpcnN0Q2F0ZWdvcnk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgZmlyc3RDYXRlZ29yeSBwcm9wZXJ0eSBvZiB0aGUgYnJlYWQtY3J1bWJzIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIiksdHx8ZX0sc2Vjb25kQ2F0ZWdvcnk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxzLmRlZmF1bHQpKCJUaGUgc2Vjb25kQ2F0ZWdvcnkgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLHQmJmV9LGNoaWxkQ2F0ZWdvcmllczpmdW5jdGlvbih0LGUpe3JldHVybigwLHMuZGVmYXVsdCkoIlRoZSBjaGlsZENhdGVnb3JpZXMgcHJvcGVydHkgb2YgdGhlIGJyZWFkLWNydW1icyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCIpLCFlJiZ0P3RoaXMuY2F0ZWdvcmllcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0KCJwYXJlbnRDYXRlZ29yeSIpPT09dH0pOltdfX0sImZpbHRlcmVkQ2F0ZWdvcmllcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiZmlsdGVyZWRDYXRlZ29yaWVzIiksbSksYihtLCJjYXRlZ29yeUJyZWFkY3J1bWJzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYXRlZ29yeUJyZWFkY3J1bWJzIiksbSksYihtLCJwYXJlbnRDYXRlZ29yeSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwicGFyZW50Q2F0ZWdvcnkiKSxtKSxiKG0sInBhcmVudENhdGVnb3JpZXNTb3J0ZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInBhcmVudENhdGVnb3JpZXNTb3J0ZWQiKSxtKSxiKG0sImhpZGRlbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiaGlkZGVuIiksbSksYihtLCJmaXJzdENhdGVnb3J5IixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJmaXJzdENhdGVnb3J5IiksbSksYihtLCJzZWNvbmRDYXRlZ29yeSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwic2Vjb25kQ2F0ZWdvcnkiKSxtKSxiKG0sImNoaWxkQ2F0ZWdvcmllcyIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiY2hpbGRDYXRlZ29yaWVzIiksbSksbSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9idWxrLXNlbGVjdC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImJ1bGstc2VsZWN0LWNvbnRhaW5lciJdLGFjdGlvbnM6e3Nob3dCdWxrQWN0aW9uczpmdW5jdGlvbigpe3ZhciBlPSgwLG4uZGVmYXVsdCkoInRvcGljLWJ1bGstYWN0aW9ucyIse21vZGVsOnt0b3BpY3M6dGhpcy5zZWxlY3RlZCxjYXRlZ29yeTp0aGlzLmNhdGVnb3J5fSx0aXRsZToidG9waWNzLmJ1bGsuYWN0aW9ucyJ9KSx0PXRoaXMuYWN0aW9uO3QmJmUuc2V0KCJyZWZyZXNoQ2xvc3VyZSIsZnVuY3Rpb24oKXtyZXR1cm4gdCgpfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiY2F0ZWdvcmllcy1hbmQtbGF0ZXN0Il19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImNhdGVnb3JpZXMtYW5kLXRvcCJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtdG9waWMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInRvcGljLnBpbm5lZCIsInRvcGljLmNsb3NlZCIsInRvcGljLmFyY2hpdmVkIiksbz1zPXt0YWdOYW1lOiJsaSIsdG9waWNTdGF0dXNJY29uOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT8idGh1bWJ0YWNrIjp0fHxuPyJsb2NrIjoiZmFyLWZpbGUtYWx0In19LHI9InRvcGljU3RhdHVzSWNvbiIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInRvcGljU3RhdHVzSWNvbiIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtd2l0aC10b3BpY3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcmllcy5bXS51cGxvYWRlZF9sb2dvLnVybCIpLHI9bz17dGFnTmFtZToic2VjdGlvbiIsY2xhc3NOYW1lQmluZGluZ3M6WyI6Y2F0ZWdvcnktYm94ZXMtd2l0aC10b3BpY3MiLCJhbnlMb2dvczp3aXRoLWxvZ29zOm5vLWxvZ29zIl0sYW55TG9nb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYXRlZ29yaWVzLmFueShmdW5jdGlvbihlKXtyZXR1cm4hKDAsbi5pc0VtcHR5KShlLmdldCgidXBsb2FkZWRfbG9nby51cmwiKSl9KX19LGE9ImFueUxvZ29zIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywiYW55TG9nb3MiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLWJveGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdLnVwbG9hZGVkX2xvZ28udXJsIikscj0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yaWVzLltdLnN1YmNhdGVnb3JpZXMiKSxzKGE9e3RhZ05hbWU6InNlY3Rpb24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiOmNhdGVnb3J5LWJveGVzIiwiYW55TG9nb3M6d2l0aC1sb2dvczpuby1sb2dvcyIsImhhc1N1YmNhdGVnb3JpZXM6d2l0aC1zdWJjYXRlZ29yaWVzIl0sYW55TG9nb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYXRlZ29yaWVzLmFueShmdW5jdGlvbihlKXtyZXR1cm4hKDAsbi5pc0VtcHR5KShlLmdldCgidXBsb2FkZWRfbG9nby51cmwiKSl9KX0saGFzU3ViY2F0ZWdvcmllczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhdGVnb3JpZXMuYW55KGZ1bmN0aW9uKGUpe3JldHVybiEoMCxuLmlzRW1wdHkpKGUuZ2V0KCJzdWJjYXRlZ29yaWVzIikpfSl9fSwiYW55TG9nb3MiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImFueUxvZ29zIiksYSkscyhhLCJoYXNTdWJjYXRlZ29yaWVzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJoYXNTdWJjYXRlZ29yaWVzIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yaWVzLW9ubHkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy10b3BpYy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKCl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NhdGVnb3J5LXRpdGxlLWJlZm9yZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1saW5rIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJoMyJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2F0ZWdvcnktdW5yZWFkIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJzcGFuIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jZG4taW1nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL3RlbXBsYXRlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJzcmMiKSxyPSgwLHQuZGVmYXVsdCkoIndpZHRoIiwiaGVpZ2h0IikscyhhPXt0YWdOYW1lOiIiLGNkblNyYzpmdW5jdGlvbihlKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTFdpdGhDRE4oZSl9LHN0eWxlOmZ1bmN0aW9uKGUsdCl7aWYoZSYmdClyZXR1cm4oMCxpLmh0bWxTYWZlKSgiLS1hc3BlY3QtcmF0aW86ICIrZS90KyI7Iil9fSwiY2RuU3JjIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJjZG5TcmMiKSxhKSxzKGEsInN0eWxlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJzdHlsZSIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY2hvb3NlLW1lc3NhZ2UiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2RlYm91bmNlIiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLG4saSxzLHQsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHU9KDAsYS5vYnNlcnZlcykoIm1lc3NhZ2VUaXRsZSIpLGM9KDAsYS5vYnNlcnZlcykoIm1lc3NhZ2VzIiksbChkPXtsb2FkaW5nOm51bGwsbm9SZXN1bHRzOm51bGwsbWVzc2FnZXM6bnVsbCxtZXNzYWdlVGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLG5vUmVzdWx0czohMCxzZWxlY3RlZFRvcGljSWQ6bnVsbH0pLHRoaXMuc2VhcmNoKHRoaXMubWVzc2FnZVRpdGxlKX0sbWVzc2FnZXNDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tZXNzYWdlcztlJiZ0aGlzLnNldCgibm9SZXN1bHRzIiwwPT09ZS5sZW5ndGgpLHRoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHNlYXJjaDooMCxvLmRlZmF1bHQpKGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLmN1cnJlbnRUb3BpY0lkOygwLGkuaXNFbXB0eSkoZSk/dGhpcy5zZXRQcm9wZXJ0aWVzKHttZXNzYWdlczpudWxsLGxvYWRpbmc6ITF9KTooMCxyLnNlYXJjaEZvclRlcm0pKGUse3R5cGVGaWx0ZXI6InByaXZhdGVfbWVzc2FnZXMiLHNlYXJjaEZvcklkOiEwLHJlc3RyaWN0VG9BcmNoZXR5cGU6InByaXZhdGVfbWVzc2FnZSJ9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJmUucG9zdHMmJjA8ZS5wb3N0cy5sZW5ndGg/dC5zZXQoIm1lc3NhZ2VzIixlLnBvc3RzLm1hcEJ5KCJ0b3BpYyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImlkIikhPT1ufSkpOnQuc2V0UHJvcGVydGllcyh7bWVzc2FnZXM6bnVsbCxsb2FkaW5nOiExfSl9KX0sMzAwKSxhY3Rpb25zOntjaG9vc2VNZXNzYWdlOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLG4uZ2V0KShlLCJpZCIpO3JldHVybiB0aGlzLnNldCgic2VsZWN0ZWRUb3BpY0lkIix0KSwoMCxzLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQoIiNjaG9vc2UtbWVzc2FnZS0iK3QpLnByb3AoImNoZWNrZWQiLCJ0cnVlIil9KSwhMX19fSwibWVzc2FnZVRpdGxlQ2hhbmdlZCIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwibWVzc2FnZVRpdGxlQ2hhbmdlZCIpLGQpLGwoZCwibWVzc2FnZXNDaGFuZ2VkIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJtZXNzYWdlc0NoYW5nZWQiKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nob29zZS10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvc2VhcmNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxvLHQsbixpLHIscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGEobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHMub2JzZXJ2ZXMpKCJ0b3BpY1RpdGxlIiksdT0oMCxzLmRlZmF1bHQpKCJsYWJlbCIpLGM9KDAscy5vYnNlcnZlcykoInRvcGljcyIpLGEoZD17bG9hZGluZzpudWxsLG5vUmVzdWx0czpudWxsLHRvcGljczpudWxsLHNlbGVjdGVkVG9waWNJZDpudWxsLGN1cnJlbnRUb3BpY0lkOm51bGwsYWRkaXRpb25hbEZpbHRlcnM6bnVsbCx0b3BpY1RpdGxlOm51bGwsbGFiZWw6bnVsbCxsb2FkT25Jbml0OiExLHRvcGljQ2hhbmdlZENhbGxiYWNrOm51bGwsaW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYWRkaXRpb25hbEZpbHRlcnM9dGhpcy5hZGRpdGlvbmFsRmlsdGVyc3x8IiIsdGhpcy50b3BpY1RpdGxlPXRoaXMudG9waWNUaXRsZXx8IiIsdGhpcy5sb2FkT25Jbml0JiYhKDAsby5pc0VtcHR5KSh0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzKSYmKDAsci5zZWFyY2hGb3JUZXJtKSh0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzLHt9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJmUucG9zdHMmJjA8ZS5wb3N0cy5sZW5ndGg/dC5zZXQoInRvcGljcyIsZS5wb3N0cy5tYXBCeSgidG9waWMiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LmN1cnJlbnRUb3BpY0lkfSkpOnQuc2V0UHJvcGVydGllcyh7dG9waWNzOm51bGwsbG9hZGluZzohMX0pfSl9LHRvcGljVGl0bGVDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsb2FkaW5nOiEwLG5vUmVzdWx0czohMCxzZWxlY3RlZFRvcGljSWQ6bnVsbH0pLHRoaXMuc2VhcmNoKHRoaXMudG9waWNUaXRsZSl9LGxhYmVsVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gZXx8ImNob29zZV90b3BpYy50aXRsZS5zZWFyY2gifSx0b3BpY3NDaGFuZ2VkOmZ1bmN0aW9uKCl7dGhpcy50b3BpY3MmJnRoaXMuc2V0KCJub1Jlc3VsdHMiLDA9PT10aGlzLnRvcGljcy5sZW5ndGgpLHRoaXMuc2V0KCJsb2FkaW5nIiwhMSl9LHNlYXJjaDooMCxpLmRlZmF1bHQpKGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXRoaXM7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fCgoMCxvLmlzRW1wdHkpKGUpJiYoMCxvLmlzRW1wdHkpKHRoaXMuYWRkaXRpb25hbEZpbHRlcnMpP3RoaXMuc2V0UHJvcGVydGllcyh7dG9waWNzOm51bGwsbG9hZGluZzohMX0pOih0PXRoaXMuY3VycmVudFRvcGljSWQsbj1lKyIgIit0aGlzLmFkZGl0aW9uYWxGaWx0ZXJzLGk9e30sKDAsby5pc0VtcHR5KShlKXx8KGkudHlwZUZpbHRlcj0idG9waWMiLGkucmVzdHJpY3RUb0FyY2hldHlwZT0icmVndWxhciIsaS5zZWFyY2hGb3JJZD0hMCksKDAsci5zZWFyY2hGb3JUZXJtKShuLGkpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmZS5wb3N0cyYmMDxlLnBvc3RzLmxlbmd0aD9zLnNldCgidG9waWNzIixlLnBvc3RzLm1hcEJ5KCJ0b3BpYyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5pZCE9PXR9KSk6cy5zZXRQcm9wZXJ0aWVzKHt0b3BpY3M6bnVsbCxsb2FkaW5nOiExfSl9KSkpfSwzMDApLGFjdGlvbnM6e2Nob29zZVRvcGljOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJzZWxlY3RlZFRvcGljSWQiLGUuaWQpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hvb3NlLXRvcGljLSIrZS5pZCkuY2hlY2tlZD0hMH0pLHRoaXMudG9waWNDaGFuZ2VkQ2FsbGJhY2smJnRoaXMudG9waWNDaGFuZ2VkQ2FsbGJhY2soZSl9fX0sInRvcGljVGl0bGVDaGFuZ2VkIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ0b3BpY1RpdGxlQ2hhbmdlZCIpLGQpLGEoZCwibGFiZWxUZXh0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJsYWJlbFRleHQiKSxkKSxhKGQsInRvcGljc0NoYW5nZWQiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljc0NoYW5nZWQiKSxkKSxkKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci1jaG9pY2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoImNvbG9yIiwidXNlZENvbG9ycyIpLG89KDAsdC5kZWZhdWx0KSgiaXNVc2VkIikscj0oMCx0LmRlZmF1bHQpKCJjb2xvciIpLGkoYT17dGFnTmFtZToiYnV0dG9uIixhdHRyaWJ1dGVCaW5kaW5nczpbInN0eWxlIiwidGl0bGUiXSxjbGFzc05hbWVCaW5kaW5nczpbIjpjb2xvcnBpY2tlciIsImlzVXNlZDp1c2VkLWNvbG9yOnVudXNlZC1jb2xvciJdLGlzVXNlZDpmdW5jdGlvbihlLHQpe3JldHVybiAwPD0odHx8W10pLmluZGV4T2YoZS50b1VwcGVyQ2FzZSgpKX0sdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJjYXRlZ29yeS5hbHJlYWR5X3VzZWQiKTpudWxsfSxzdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4oImJhY2tncm91bmQtY29sb3I6ICMiK2UrIjsiKS5odG1sU2FmZSgpfSxjbGljazpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RDb2xvcih0aGlzLmNvbG9yKX19LCJpc1VzZWQiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImlzVXNlZCIpLGEpLGkoYSwidGl0bGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRpdGxlIiksYSksaShhLCJzdHlsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwic3R5bGUiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbG9yLXBpY2tlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczoiY29sb3JzLWNvbnRhaW5lciIsYWN0aW9uczp7c2VsZWN0Q29sb3I6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInZhbHVlIixlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWFjdGlvbi10aXRsZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcixhLGw7ZnVuY3Rpb24gdShlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBjLGQscCxtLGYsaCxiPSh1KHI9e30scy5QUklWQVRFX01FU1NBR0UsInRvcGljLnByaXZhdGVfbWVzc2FnZSIpLHUocixzLkNSRUFURV9UT1BJQywidG9waWMuY3JlYXRlX2xvbmciKSx1KHIscy5DUkVBVEVfU0hBUkVEX0RSQUZULCJjb21wb3Nlci5jcmVhdGVfc2hhcmVkX2RyYWZ0IiksdShyLHMuRURJVF9TSEFSRURfRFJBRlQsImNvbXBvc2VyLmVkaXRfc2hhcmVkX2RyYWZ0Iikscik7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGE9KDAsaS5kZWZhdWx0KSgib3B0aW9ucyIsImFjdGlvbiIpLGw9e2NsYXNzTmFtZXM6WyJjb21wb3Nlci1hY3Rpb24tdGl0bGUiXSxvcHRpb25zOigwLHQuYWxpYXMpKCJtb2RlbC5yZXBseU9wdGlvbnMiKSxhY3Rpb246KDAsdC5hbGlhcykoIm1vZGVsLmFjdGlvbiIpLGlzRWRpdGluZzooMCx0LmVxdWFsKSgiYWN0aW9uIixzLkVESVQpLGFjdGlvblRpdGxlOmZ1bmN0aW9uKGUsdCl7aWYoYlt0XSlyZXR1cm4gSTE4bi50KGJbdF0pO3N3aXRjaCh0KXtjYXNlIHMuUkVQTFk6aWYoZS51c2VyQXZhdGFyJiZlLnVzZXJMaW5rKXJldHVybiB0aGlzLl9mb3JtYXRSZXBseVRvVXNlclBvc3QoZS51c2VyQXZhdGFyLGUudXNlckxpbmspO2lmKGUudG9waWNMaW5rKXJldHVybiB0aGlzLl9mb3JtYXRSZXBseVRvVG9waWMoZS50b3BpY0xpbmspO2Nhc2Ugcy5FRElUOmlmKGUudXNlckF2YXRhciYmZS51c2VyTGluayYmZS5wb3N0TGluaylyZXR1cm4gdGhpcy5fZm9ybWF0RWRpdFVzZXJQb3N0KGUudXNlckF2YXRhcixlLnVzZXJMaW5rLGUucG9zdExpbmssZS5vcmlnaW5hbFVzZXIpfX0sX2Zvcm1hdEVkaXRVc2VyUG9zdDpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz0nXG4gICAgICA8YSBjbGFzcz0icG9zdC1saW5rIiBocmVmPSInK24uaHJlZisnIj4nK24uYW5jaG9yKyI8L2E+XG4gICAgICAiK2UrJ1xuICAgICAgPHNwYW4gY2xhc3M9InVzZXJuYW1lIj4nK3QuYW5jaG9yKyI8L3NwYW4+XG4gICAgIjtyZXR1cm4gaSYmKHMrPSJcbiAgICAgICAgIisoMCxvLmljb25IVE1MKSgic2hhcmUiLHtjbGFzczoicmVwbHktdG8tZ2x5cGgifSkrIlxuICAgICAgICAiK2kuYXZhdGFyKydcbiAgICAgICAgPHNwYW4gY2xhc3M9Im9yaWdpbmFsLXVzZXJuYW1lIj4nK2kudXNlcm5hbWUrIjwvc3Bhbj5cbiAgICAgICIpLHMuaHRtbFNhZmUoKX0sX2Zvcm1hdFJlcGx5VG9Ub3BpYzpmdW5jdGlvbihlKXtyZXR1cm4oJzxhIGNsYXNzPSJ0b3BpYy1saW5rIiBocmVmPSInK2UuaHJlZisnIiBkYXRhLXRvcGljLWlkPSInK3RoaXMuZ2V0KCJtb2RlbC50b3BpYy5pZCIpKyciPicrZS5hbmNob3IrIjwvYT4iKS5odG1sU2FmZSgpfSxfZm9ybWF0UmVwbHlUb1VzZXJQb3N0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUrKCc8YSBjbGFzcz0idXNlci1saW5rIiBocmVmPSInK3QuaHJlZisnIj4nK3QuYW5jaG9yKyI8L2E+IikpLmh0bWxTYWZlKCl9fSxjPWwsZD0iYWN0aW9uVGl0bGUiLHA9W2FdLG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhY3Rpb25UaXRsZSIpLGY9bCxoPXt9LE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oZSl7aFtlXT1tW2VdfSksaC5lbnVtZXJhYmxlPSEhaC5lbnVtZXJhYmxlLGguY29uZmlndXJhYmxlPSEhaC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBofHxoLmluaXRpYWxpemVyKSYmKGgud3JpdGFibGU9ITApLGg9cC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChjLGQsZSl8fGV9LGgpLGYmJnZvaWQgMCE9PWguaW5pdGlhbGl6ZXImJihoLnZhbHVlPWguaW5pdGlhbGl6ZXI/aC5pbml0aWFsaXplci5jYWxsKGYpOnZvaWQgMCxoLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09aC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGQsaCksaD1udWxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvY29tcG9zZXIiLCJkaXNjb3Vyc2UvbGliL2FmdGVyLXRyYW5zaXRpb24iLCJkaXNjb3Vyc2UvbGliL3NhZmFyaS1oYWNrcyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3NpdGUtaGVhZGVyIiwiZGlzY291cnNlL21peGlucy9rZXktZW50ZXItZXNjYXBlIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHUsdCxuLGkscyxvLGMscixkKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCxwLG0sZixoO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYj0idG91Y2htb3ZlIG1vdXNlbW92ZSIsZz0idG91Y2hlbmQgbW91c2V1cCI7ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5jbGllbnRZfHxlLnRvdWNoZXMmJmUudG91Y2hlc1swXSYmZS50b3VjaGVzWzBdLmNsaWVudFl9ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChsPSgwLG4uZGVmYXVsdCkoImN1cnJlbnRVc2VyLnByaW1hcnlfZ3JvdXBfbmFtZSIpLHA9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIuY29tcG9zZVN0YXRlIiksbT0oMCxuLm9ic2VydmVzKSgiY29tcG9zZVN0YXRlIiwiY29tcG9zZXIuYWN0aW9uIiwiY29tcG9zZXIuY2FuRWRpdFRvcGljRmVhdHVyZWRMaW5rIiksZj0oMCxuLm9ic2VydmVzKSgiY29tcG9zZVN0YXRlIiksYShoPXtlbGVtZW50SWQ6InJlcGx5LWNvbnRyb2wiLGNsYXNzTmFtZUJpbmRpbmdzOlsiY29tcG9zZXIuY3JlYXRpbmdQcml2YXRlTWVzc2FnZTpwcml2YXRlLW1lc3NhZ2UiLCJjb21wb3NlU3RhdGUiLCJjb21wb3Nlci5sb2FkaW5nIiwiY29tcG9zZXIuY2FuRWRpdFRpdGxlOmVkaXQtdGl0bGUiLCJjb21wb3Nlci5jcmVhdGVkUG9zdDpjcmVhdGVkLXBvc3QiLCJjb21wb3Nlci5jcmVhdGluZ1RvcGljOnRvcGljIiwiY29tcG9zZXIud2hpc3Blcjpjb21wb3Npbmctd2hpc3BlciIsImNvbXBvc2VyLnNoYXJlZERyYWZ0OmNvbXBvc2luZy1zaGFyZWQtZHJhZnQiLCJzaG93UHJldmlldzpzaG93LXByZXZpZXc6aGlkZS1wcmV2aWV3IiwiY3VycmVudFVzZXJQcmltYXJ5R3JvdXBDbGFzcyJdLGN1cnJlbnRVc2VyUHJpbWFyeUdyb3VwQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJncm91cC0iK2V9LGNvbXBvc2VTdGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZXx8aS5kZWZhdWx0LkNMT1NFRH0sbW92ZVBhbmVsczpmdW5jdGlvbihlKXskKCIjbWFpbi1vdXRsZXQiKS5jc3MoInBhZGRpbmctYm90dG9tIixlfHwiIiksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6cmVzaXplZCIpfSxyZXNpemU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLHUuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7IWUuZWxlbWVudHx8ZS5pc0Rlc3Ryb3lpbmd8fGUuaXNEZXN0cm95ZWR8fCgwLHUuZGVib3VuY2UpKGUsZS5kZWJvdW5jZU1vdmUsMzAwKX0pfSxkZWJvdW5jZU1vdmU6ZnVuY3Rpb24oKXt2YXIgZT0kKCIjcmVwbHktY29udHJvbDpub3QoLnNhdmluZykiKS5oZWlnaHQoKXx8MDt0aGlzLm1vdmVQYW5lbHMoZSl9LGtleVVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnR5cGVkKCk7dmFyIHQ9bmV3IERhdGU7dGhpcy5fbGFzdEtleVVwPXQsKDAsdS5jYW5jZWwpKHRoaXMuX2xhc3RLZXlUaW1lb3V0KSx0aGlzLl9sYXN0S2V5VGltZW91dD0oMCx1LmxhdGVyKShmdW5jdGlvbigpe3Q9PT1lLl9sYXN0S2V5VXAmJmUuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOmZpbmQtc2ltaWxhciIpfSwxZTMpfSxkaXNhYmxlRnVsbHNjcmVlbjpmdW5jdGlvbigpe3RoaXMuY29tcG9zZVN0YXRlIT09aS5kZWZhdWx0Lk9QRU4mJm8uZGVmYXVsdC5ibHVyJiZvLmRlZmF1bHQuYmx1cigpfSxzZXR1cENvbXBvc2VyUmVzaXplRXZlbnRzOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtvLnRyaWdnZXIoImRpdi1yZXNpemluZyIpLG8uYWRkQ2xhc3MoImNsZWFyLXRyYW5zaXRpb25zIik7dmFyIHQ9dihlKSxuPXIrKGEtdCksaT0kKHdpbmRvdykuaGVpZ2h0KCksbj1NYXRoLm1pbihuLGktKDAsYy5oZWFkZXJIZWlnaHQpKCkpO249TWF0aC5tYXgobiwyNDApLHMubW92ZVBhbmVscyhuKSxvLmhlaWdodChuKX1mdW5jdGlvbiBuKCl7aS5vZmYoYixsKSxpLm9mZihnLG4pLG8ucmVtb3ZlQ2xhc3MoImNsZWFyLXRyYW5zaXRpb25zIiksby5mb2N1cygpfXZhciBzPXRoaXMsbz0kKHRoaXMuZWxlbWVudCksZT0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZ3JpcHBpZSIpKSxpPSQoZG9jdW1lbnQpLHI9MCxhPTAsbD1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksKDAsdS50aHJvdHRsZSkocyx0LGUsMjApfS5iaW5kKHRoaXMpO2Uub24oInRvdWNoc3RhcnQgbW91c2Vkb3duIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCkscj1vLmhlaWdodCgpLGE9dihlKSxpLm9uKGIsbCksaS5vbihnLG4pfSksKDAsZC5pT1NXaXRoVmlzdWFsVmlld3BvcnQpKCkmJih0aGlzLnZpZXdwb3J0UmVzaXplKCksd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy52aWV3cG9ydFJlc2l6ZSkpfSx2aWV3cG9ydFJlc2l6ZTpmdW5jdGlvbigpe3ZhciBlPS4wMSp3aW5kb3cudmlzdWFsVmlld3BvcnQuaGVpZ2h0O2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1jb21wb3Nlci12aCIsZSsicHgiKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0dXBDb21wb3NlclJlc2l6ZUV2ZW50cygpO2Z1bmN0aW9uIHQoKXtlLmdldCgiY29tcG9zZXIuY29tcG9zZVN0YXRlIik9PT1pLmRlZmF1bHQuT1BFTiYmZS5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6b3BlbmVkIil9dCgpLCgwLHMuZGVmYXVsdCkoJCh0aGlzLmVsZW1lbnQpLGZ1bmN0aW9uKCl7KDAsdS5ydW4pKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVzaXplKCl9KSx0KCl9KSwoMCxvLmRlZmF1bHQpKCQodGhpcy5lbGVtZW50KSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnJlc2l6ZSIsdGhpcyx0aGlzLnJlc2l6ZSksKDAsZC5pT1NXaXRoVmlzdWFsVmlld3BvcnQpKCkmJndpbmRvdy52aXN1YWxWaWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMudmlld3BvcnRSZXNpemUpfSxjbGljazpmdW5jdGlvbigpe3RoaXMub3BlbklmRHJhZnQoKX19LCJjdXJyZW50VXNlclByaW1hcnlHcm91cENsYXNzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJjdXJyZW50VXNlclByaW1hcnlHcm91cENsYXNzIiksaCksYShoLCJjb21wb3NlU3RhdGUiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsImNvbXBvc2VTdGF0ZSIpLGgpLGEoaCwicmVzaXplIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJyZXNpemUiKSxoKSxhKGgsImRpc2FibGVGdWxsc2NyZWVuIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJkaXNhYmxlRnVsbHNjcmVlbiIpLGgpLGgpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItZWRpdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3VzZXItc2VhcmNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9saW5rLW1lbnRpb25zIiwiZGlzY291cnNlL2xpYi9saW5rLWNhdGVnb3J5LWhhc2h0YWdzIiwiZGlzY291cnNlL2xpYi9saW5rLXRhZy1oYXNodGFnIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsInByZXR0eS10ZXh0L29uZWJveGVyIiwicHJldHR5LXRleHQvaW5saW5lLW9uZWJveGVyIiwiZGlzY291cnNlL2xpYi9hamF4IiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi91cGxvYWRzIiwicHJldHR5LXRleHQvdXBsb2FkLXNob3J0LXVybCIsInByZXR0eS10ZXh0L2NvbnRleHQvaW5saW5lLW9uZWJveC1jc3MtY2xhc3NlcyIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxyLHQsaSxuLHMsbyxhLGwsYyx1LGQscCxtLGYsaCxiLGcsdix5KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdyx4LGssUCxqLFQsRSxPLFMsQztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRDb21wb3NlclVwbG9hZEhhbmRsZXI9ZnVuY3Rpb24oZSx0KXtELnB1c2goe2V4dGVuc2lvbnM6ZSxtZXRob2Q6dH0pfSxlLmFkZENvbXBvc2VyVXBsb2FkTWFya2Rvd25SZXNvbHZlcj1mdW5jdGlvbihlKXtJLnB1c2goZSl9O3ZhciBNPVsiY29tcG9zZXI6cmVzaXplZCIsImNvbXBvc2VyOnR5cGVkLXJlcGx5Il0sRD1bXTt2YXIgST1bXTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgodz0oMCxuLmRlZmF1bHQpKCJ1cGxvYWRGaWxlbmFtZVBsYWNlaG9sZGVyIikseD0oMCxuLmRlZmF1bHQpKCJjb21wb3Nlci5yZXF1aXJlZENhdGVnb3J5TWlzc2luZyIpLGs9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIucmVxdWlyZWRDYXRlZ29yeU1pc3NpbmciLCJjb21wb3Nlci5yZXBseUxlbmd0aCIpLFA9KDAsbi5vYnNlcnZlcykoImNvbXBvc2VyLnVwbG9hZENhbmNlbGxlZCIpLGo9KDAsbi5vYnNlcnZlcykoImZvY3VzVGFyZ2V0IiksVD0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLEU9KDAsbi5kZWZhdWx0KSgiY29tcG9zZXIucmVwbHkiLCJjb21wb3Nlci5yZXBseUxlbmd0aCIsImNvbXBvc2VyLm1pc3NpbmdSZXBseUNoYXJhY3RlcnMiLCJjb21wb3Nlci5taW5pbXVtUG9zdExlbmd0aCIsImxhc3RWYWxpZGF0ZWRBdCIpLE89KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLFM9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLF8oQz17Y2xhc3NOYW1lQmluZGluZ3M6WyJzaG93VG9vbGJhcjp0b29sYmFyLXZpc2libGUiLCI6d21kLWNvbnRyb2xzIl0sdXBsb2FkUHJvZ3Jlc3M6MCxfeGhyOm51bGwsc2hvdWxkQnVpbGRTY3JvbGxNYXA6ITAsc2Nyb2xsTWFwOm51bGwsdXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlcjpudWxsLHVwbG9hZFBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PUkxOG4udCgiY2xpcGJvYXJkIiksbj1lfHx0O3JldHVybiJbIitJMThuLnQoInVwbG9hZGluZ19maWxlbmFtZSIse2ZpbGVuYW1lOm59KSsiXSgpICJ9LHJlcGx5UGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImNvbXBvc2VyLnJlcGx5X3BsYWNlaG9sZGVyX2Nob29zZV9jYXRlZ29yeSI6ImNvbXBvc2VyLiIrKCgwLGIuYXV0aG9yaXplc09uZU9yTW9yZUltYWdlRXh0ZW5zaW9ucykodGhpcy5jdXJyZW50VXNlci5zdGFmZik/InJlcGx5X3BsYWNlaG9sZGVyIjoicmVwbHlfcGxhY2Vob2xkZXJfbm9faW1hZ2VzIil9LHNob3dMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJiJub25lIiE9PXRoaXMuY3VycmVudFVzZXIuZ2V0KCJsaW5rX3Bvc3RpbmdfYWNjZXNzIil9LGRpc2FibGVUZXh0YXJlYTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiYwPT09dH0sX2NhbmNlbFVwbG9hZDpmdW5jdGlvbigpe3RoaXMuZ2V0KCJjb21wb3Nlci51cGxvYWRDYW5jZWxsZWQiKSYmKHRoaXMuc2V0KCJjb21wb3Nlci51cGxvYWRDYW5jZWxsZWQiLCExKSx0aGlzLl94aHImJih0aGlzLl94aHIuX3VzZXJDYW5jZWxsZWQ9ITAsdGhpcy5feGhyLmFib3J0KCkpLHRoaXMuX3Jlc2V0VXBsb2FkKCEwKSl9LHNldEZvY3VzOmZ1bmN0aW9uKCl7ImVkaXRvciI9PT10aGlzLmZvY3VzVGFyZ2V0JiYkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYSIpKS5wdXRDdXJzb3JBdEVuZCgpfSxtYXJrZG93bk9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgbz10aGlzO3JldHVybntwcmV2aWV3aW5nOiEwLGZvcm1hdFVzZXJuYW1lOmguZm9ybWF0VXNlcm5hbWUsbG9va3VwQXZhdGFyQnlQb3N0TnVtYmVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49by50b3BpYztpZihuKXt2YXIgaT1uLmdldCgicG9zdFN0cmVhbS5wb3N0cyIpO2lmKGkmJnQ9PT1uLmdldCgiaWQiKSl7dmFyIHM9aS5maW5kQnkoInBvc3RfbnVtYmVyIixlKTtpZihzKXJldHVybigwLGgudGlueUF2YXRhcikocy5nZXQoImF2YXRhcl90ZW1wbGF0ZSIpKX19fSxsb29rdXBQcmltYXJ5VXNlckdyb3VwQnlQb3N0TnVtYmVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49by50b3BpYztpZihuKXt2YXIgaT1uLmdldCgicG9zdFN0cmVhbS5wb3N0cyIpO2lmKGkmJnQ9PT1uLmdldCgiaWQiKSl7dmFyIHM9aS5maW5kQnkoInBvc3RfbnVtYmVyIixlKTtpZihzKXJldHVybiBzLnByaW1hcnlfZ3JvdXBfbmFtZX19fX19LHVzZXJTZWFyY2hUZXJtOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0KCJ0b3BpYy5pZCIpLG49dGhpcy5nZXQoInRvcGljLmNhdGVnb3J5X2lkIil8fHRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeUlkIik7cmV0dXJuKDAsaS5kZWZhdWx0KSh7dGVybTplLHRvcGljSWQ6dCxjYXRlZ29yeUlkOm4saW5jbHVkZUdyb3VwczohMH0pfSxfY29tcG9zZXJFZGl0b3JJbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKSxuPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKSk7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX21lbnRpb25zJiZlLmF1dG9jb21wbGV0ZSh7dGVtcGxhdGU6KDAsbS5maW5kUmF3VGVtcGxhdGUpKCJ1c2VyLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSIpLGRhdGFTb3VyY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHQudXNlclNlYXJjaFRlcm0uY2FsbCh0LGUpfSxrZXk6IkAiLHRyYW5zZm9ybUNvbXBsZXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXJuYW1lfHxlLm5hbWV9LGFmdGVyQ29tcGxldGU6ZnVuY3Rpb24oKXsoMCxyLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBlLmJsdXIoKS5mb2N1cygpfSl9LHRyaWdnZXJSdWxlOmZ1bmN0aW9uKGUpe3JldHVybiEoMCxoLmluQ29kZUJsb2NrKShlLnZhbHVlLCgwLGguY2FyZXRQb3NpdGlvbikoZSkpfX0pLHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKT90aGlzLl9pbml0SW5wdXRQcmV2aWV3U3luYyhlLG4pOmUub24oInNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4oMCxyLnRocm90dGxlKSh0LHQuX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLGUsbiwyMCl9KSx0aGlzLmdldCgiY29tcG9zZXIuY2FuRWRpdFRpdGxlIil8fHRoaXMuY2FwYWJpbGl0aWVzLmlzSU9TJiYhKDAsaC5zYWZhcmlIYWNrc0Rpc2FibGVkKSgpfHwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSkucHV0Q3Vyc29yQXRFbmQoKSx0aGlzLl9iaW5kVXBsb2FkVGFyZ2V0KCksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6d2lsbC1vcGVuIil9LHZhbGlkYXRpb246ZnVuY3Rpb24oZSx0LG4saSxzKXtpZih0aGlzLmdldCgiY29tcG9zZXIucG9zdC5wb3N0X3R5cGUiKSE9PXRoaXMuc2l0ZS5nZXQoInBvc3RfdHlwZXMuc21hbGxfYWN0aW9uIikpe3ZhciBvLHI9dm9pZCAwO3JldHVybiB0PDE/cj1JMThuLnQoImNvbXBvc2VyLmVycm9yLnBvc3RfbWlzc2luZyIpOjA8biYmKHI9STE4bi50KCJjb21wb3Nlci5lcnJvci5wb3N0X2xlbmd0aCIse21pbjppfSksMCE9PShvPXRoaXMuZ2V0KCJjdXJyZW50VXNlci50cnVzdF9sZXZlbCIpKSYmMSE9PW98fChyKz0iPGJyLz4iK0kxOG4udCgiY29tcG9zZXIuZXJyb3IudHJ5X2xpa2UiLHtoZWFydDooMCxmLmljb25IVE1MKSgiaGVhcnQiKX0pKSkscj9wLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnIsbGFzdFNob3duQXQ6c30pOnZvaWQgMH19LF9zZXRVcGxvYWRQbGFjZWhvbGRlclNlbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZmlsZW5hbWVQbGFjZWhvbGRlcihlKTt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsdCk7dmFyIG4saSxzLG8scj10LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksYT0iXFxbIitJMThuLnQoInVwbG9hZGluZ19maWxlbmFtZSIse2ZpbGVuYW1lOnIrIig/OlxcKCk/KFswLTldKT8oPzpcXCkpPyJ9KSsiXFxdXFwoXFwpIixsPW5ldyBSZWdFeHAoYSwiZyIpLHU9dGhpcy5nZXQoImNvbXBvc2VyLnJlcGx5IikubWF0Y2gobCk7dSYmKG49dVt1Lmxlbmd0aC0xXSxzPShpPW5ldyBSZWdFeHAoYSkpLmV4ZWMobilbMV0/cGFyc2VJbnQoaS5leGVjKG4pWzFdLDEwKSsxOjEsbz10KyIoIisoZS5vcmRlck5yPXMpKyIpIix0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbykpfSxfc2V0VXBsb2FkUGxhY2Vob2xkZXJEb25lOmZ1bmN0aW9uKGUpe3ZhciB0LG49dGhpcy5fZmlsZW5hbWVQbGFjZWhvbGRlcihlKSxpPW4rIiAoIitlLnRvdGFsKyIpIjt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsaSksZS5vcmRlck5yPyh0PW4rIigiK2Uub3JkZXJOcisiKSIsdGhpcy5zZXQoInVwbG9hZEZpbGVuYW1lUGxhY2Vob2xkZXIiLHQpKTp0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbil9LF9maWxlbmFtZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbGVzWzBdLm5hbWUucmVwbGFjZSgvXHUyMDBCLVx1MjAwRFx1RkVGRl0vZywiIil9LF9yZXNldFVwbG9hZEZpbGVuYW1lUGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXt0aGlzLnNldCgidXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlciIsbnVsbCl9LF9lbmFibGVBZHZhbmNlZEVkaXRvclByZXZpZXdTeW5jOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9hZHZhbmNlZF9lZGl0b3JfcHJldmlld19zeW5jfSxfcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcDpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG91bGRCdWlsZFNjcm9sbE1hcCIsITApfSxfaW5pdElucHV0UHJldmlld1N5bmM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO00uZm9yRWFjaChmdW5jdGlvbihlKXtuLmFwcEV2ZW50cy5vbihlLG4sbi5fcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcCl9KSwoMCxyLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2Uub24oInRvdWNoc3RhcnQgbW91c2VlbnRlciIsZnVuY3Rpb24oKXt0LmlzKCI6dmlzaWJsZSIpJiYodC5vZmYoInNjcm9sbCIpLGUub24oInNjcm9sbCIsZnVuY3Rpb24oKXtuLl9zeW5jU2Nyb2xsKG4uX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLGUsdCl9KSl9KSx0Lm9uKCJ0b3VjaHN0YXJ0IG1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7ZS5vZmYoInNjcm9sbCIpLHQub24oInNjcm9sbCIsZnVuY3Rpb24oKXtuLl9zeW5jU2Nyb2xsKG4uX3N5bmNQcmV2aWV3QW5kRWRpdG9yU2Nyb2xsLGUsdCl9KX0pfSl9LF9zeW5jU2Nyb2xsOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLnNjcm9sbE1hcCYmIXRoaXMuc2hvdWxkQnVpbGRTY3JvbGxNYXB8fCh0aGlzLnNldCgic2Nyb2xsTWFwIix0aGlzLl9idWlsZFNjcm9sbE1hcCh0LG4pKSx0aGlzLnNldCgic2hvdWxkQnVpbGRTY3JvbGxNYXAiLCExKSksKDAsci50aHJvdHRsZSkodGhpcyxlLHQsbix0aGlzLnNjcm9sbE1hcCwyMCl9LF90ZWFyZG93bklucHV0UHJldmlld1N5bmM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO1skKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKSksJCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmQtZWRpdG9yLXByZXZpZXctd3JhcHBlciIpKV0uZm9yRWFjaChmdW5jdGlvbihlKXtlLm9mZigibW91c2VlbnRlciB0b3VjaHN0YXJ0IiksZS5vZmYoInNjcm9sbCIpfSksTS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuYXBwRXZlbnRzLm9mZihlLHQsdC5fcmVzZXRTaG91bGRCdWlsZFNjcm9sbE1hcCl9KX0sX2J1aWxkU2Nyb2xsTWFwOmZ1bmN0aW9uKGUsdCl7dmFyIGk9JCgiPGRpdiAvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixoZWlnaHQ6ImF1dG8iLHZpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6ZVswXS5jbGllbnRXaWR0aCwiZm9udC1zaXplIjplLmNzcygiZm9udC1zaXplIiksImZvbnQtZmFtaWx5IjplLmNzcygiZm9udC1mYW1pbHkiKSwibGluZS1oZWlnaHQiOmUuY3NzKCJsaW5lLWhlaWdodCIpLCJ3aGl0ZS1zcGFjZSI6ZS5jc3MoIndoaXRlLXNwYWNlIil9KS5hcHBlbmRUbygiYm9keSIpLG89W10scz0wO2UudmFsKCkuc3BsaXQoIlxuIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuO28ucHVzaChzKSwwPT09ZS5sZW5ndGg/cysrOihpLnRleHQoZSksdD1wYXJzZUZsb2F0KGkuY3NzKCJoZWlnaHQiKSksbj1wYXJzZUZsb2F0KGkuY3NzKCJsaW5lLWhlaWdodCIpKSxzKz1NYXRoLnJvdW5kKHQvbikpfSksby5wdXNoKHMpLGkucmVtb3ZlKCk7Zm9yKHZhciBuPXQub2Zmc2V0KCkudG9wLHI9dC5zY3JvbGxUb3AoKS1uLShlLm9mZnNldCgpLnRvcC1uKSxhPVtdLGw9W10sdT0wO3U8czt1KyspbC5wdXNoKC0xKTthLnB1c2goMCksbFswXT0wLHQuZmluZCgiLnByZXZpZXctc3luYy1saW5lIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLmRhdGEoImxpbmUtbnVtYmVyIikscz1vW2ldOzAhPT1zJiZhLnB1c2gocyksbFtzXT1NYXRoLnJvdW5kKG4ub2Zmc2V0KCkudG9wK3IpfSksYS5wdXNoKHMpLGxbc109dFswXS5zY3JvbGxIZWlnaHQ7Zm9yKHZhciBjLGQscD0wLG09MTttPHM7bSsrKXstMT09PWxbbV0/KGM9YVtwXSxkPWFbcCsxXSxsW21dPSgobFtkXSoobS1jKStsW2NdKihkLW0pKS8oZC1jKSkudG9GaXhlZCgyKSk6cCsrfXJldHVybiBsfSxfc3luY0VkaXRvckFuZFByZXZpZXdTY3JvbGw6ZnVuY3Rpb24oZSx0LG4pe2lmKHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKSl7dmFyIGkscz12b2lkIDAsbz1lLmhlaWdodCgpLHI9ZVswXS5zY3JvbGxIZWlnaHQ7cz1lWzBdLmNsaWVudEhlaWdodDxyJiZvK2Uuc2Nyb2xsVG9wKCkrMTAwPnI/dFswXS5zY3JvbGxIZWlnaHQ6KGk9cGFyc2VGbG9hdChlLmNzcygibGluZS1oZWlnaHQiKSksbltNYXRoLmZsb29yKGUuc2Nyb2xsVG9wKCkvaSldKSx0LnN0b3AoITApLmFuaW1hdGUoe3Njcm9sbFRvcDpzfSwxMDAsImxpbmVhciIpfWVsc2V7aWYoIWUpcmV0dXJuO2lmKDA9PT1lLnNjcm9sbFRvcCgpKXJldHVybiB2b2lkIHQuc2Nyb2xsVG9wKDApO3ZhciBhPWVbMF0uc2Nyb2xsSGVpZ2h0LGw9dFswXS5zY3JvbGxIZWlnaHQ7aWYoZS5oZWlnaHQoKStlLnNjcm9sbFRvcCgpKzEwMD5hKXJldHVybiB2b2lkIHQuc2Nyb2xsVG9wKGwpO3ZhciB1PWUuc2Nyb2xsVG9wKCkqKGwvYSk7dC5zY3JvbGxUb3AoNTArdSl9fSxfc3luY1ByZXZpZXdBbmRFZGl0b3JTY3JvbGw6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHM7bi5sZW5ndGg8MXx8KHM9dm9pZCAwLGk9dC5zY3JvbGxUb3AoKSxzPXQuaGVpZ2h0KCkraSsxMDA+dFswXS5zY3JvbGxIZWlnaHQ/ZVswXS5zY3JvbGxIZWlnaHQ6cGFyc2VGbG9hdChlLmNzcygibGluZS1oZWlnaHQiKSkqbi5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGk8ZX0pLGUuc3RvcCghMCkuYW5pbWF0ZSh7c2Nyb2xsVG9wOnN9LDEwMCwibGluZWFyIikpfSxfcmVuZGVyVW5zZWVuTWVudGlvbnM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzOygwLHMuZmV0Y2hVbnNlZW5NZW50aW9ucykodCx0aGlzLmdldCgiY29tcG9zZXIudG9waWMuaWQiKSkudGhlbihmdW5jdGlvbigpeygwLHMubGlua1NlZW5NZW50aW9ucykoZSxuLnNpdGVTZXR0aW5ncyksbi5fd2Fybk1lbnRpb25lZEdyb3VwcyhlKSxuLl93YXJuQ2Fubm90U2VlTWVudGlvbihlKX0pfSxfcmVuZGVyVW5zZWVuQ2F0ZWdvcnlIYXNodGFnczpmdW5jdGlvbihlLHQpeygwLG8uZmV0Y2hVbnNlZW5DYXRlZ29yeUhhc2h0YWdzKSh0KS50aGVuKGZ1bmN0aW9uKCl7KDAsby5saW5rU2VlbkNhdGVnb3J5SGFzaHRhZ3MpKGUpfSl9LF9yZW5kZXJVbnNlZW5UYWdIYXNodGFnczpmdW5jdGlvbihlLHQpeygwLGEuZmV0Y2hVbnNlZW5UYWdIYXNodGFncykodCkudGhlbihmdW5jdGlvbigpeygwLGEubGlua1NlZW5UYWdIYXNodGFncykoZSl9KX0sX2xvYWRJbmxpbmVPbmVib3hlczpmdW5jdGlvbihlKXsoMCx1LmFwcGx5SW5saW5lT25lYm94ZXMpKGUsZC5hamF4LHtjYXRlZ29yeUlkOnRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeS5pZCIpLHRvcGljSWQ6dGhpcy5nZXQoImNvbXBvc2VyLnRvcGljLmlkIil9KX0sX2xvYWRPbmVib3hlczpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy5nZXQoImNvbXBvc2VyLnBvc3QiKSxpPSExO24mJiFuLmdldCgicmVmcmVzaGVkUG9zdCIpJiYoaT0hMCxuLnNldCgicmVmcmVzaGVkUG9zdCIsITApKSxPYmplY3QudmFsdWVzKGUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeygwLGMubG9hZCkoe2VsZW06ZSxyZWZyZXNoOmksYWpheDpkLmFqYXgsY2F0ZWdvcnlJZDp0LmdldCgiY29tcG9zZXIuY2F0ZWdvcnkuaWQiKSx0b3BpY0lkOnQuZ2V0KCJjb21wb3Nlci50b3BpYy5pZCIpfSl9KX0pfSxfd2Fybk1lbnRpb25lZEdyb3VwczpmdW5jdGlvbihlKXt2YXIgbz10aGlzOygwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIHM9by53YXJuZWRHcm91cE1lbnRpb25zfHxbXTtlLmZpbmQoIi5tZW50aW9uLWdyb3VwLm5vdGlmeSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9bi5kYXRhKCJuYW1lIik7LTE9PT1zLmluZGV4T2YoaSkmJihvLmdyb3Vwc01lbnRpb25lZChbe25hbWU6aSx1c2VyX2NvdW50Om4uZGF0YSgibWVudGlvbmFibGUtdXNlci1jb3VudCIpLG1heF9tZW50aW9uczpuLmRhdGEoIm1heC1tZW50aW9ucyIpfV0pLHMucHVzaChpKSl9KSxvLnNldCgid2FybmVkR3JvdXBNZW50aW9ucyIscyl9KX0sX3dhcm5DYW5ub3RTZWVNZW50aW9uOmZ1bmN0aW9uKHMpe3ZhciBvPXRoaXM7dGhpcy5nZXQoImNvbXBvc2VyLmRyYWZ0S2V5IikhPT1sLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVkmJigwLHIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGk9by53YXJuZWRDYW5ub3RTZWVNZW50aW9uc3x8W107cy5maW5kKCIubWVudGlvbi5jYW5ub3Qtc2VlIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCkuZGF0YSgibmFtZSIpOy0xPT09aS5pbmRleE9mKG4pJiYoMCxyLmxhdGVyKShvLGZ1bmN0aW9uKCl7MDxzLmZpbmQoJy5tZW50aW9uLmNhbm5vdC1zZWVbZGF0YS1uYW1lPSInK24rJyJdJykubGVuZ3RoJiYoby5jYW5ub3RTZWVNZW50aW9uKFt7bmFtZTpufV0pLGkucHVzaChuKSl9LDJlMyl9KSxvLnNldCgid2FybmVkQ2Fubm90U2VlTWVudGlvbnMiLGkpfSl9LF9yZXNldFVwbG9hZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzOygwLHIubmV4dCkoZnVuY3Rpb24oKXswPHQuX3ZhbGlkVXBsb2FkcyYmdC5fdmFsaWRVcGxvYWRzLS0sMD09PXQuX3ZhbGlkVXBsb2FkcyYmdC5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRQcm9ncmVzczowLGlzVXBsb2FkaW5nOiExLGlzQ2FuY2VsbGFibGU6ITF9KSxlJiZ0LmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpyZXBsYWNlLXRleHQiLHQudXBsb2FkUGxhY2Vob2xkZXIsIiIpLHQuX3Jlc2V0VXBsb2FkRmlsZW5hbWVQbGFjZWhvbGRlcigpfSl9LF9iaW5kVXBsb2FkVGFyZ2V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLl91bmJpbmRVcGxvYWRUYXJnZXQoKSx0aGlzLl9wYXN0ZWQ9ITE7dmFyIGU9JCh0aGlzLmVsZW1lbnQpO2UuZmlsZXVwbG9hZCh7dXJsOkRpc2NvdXJzZS5nZXRVUkwoIi91cGxvYWRzLmpzb24/Y2xpZW50X2lkPSIrdGhpcy5tZXNzYWdlQnVzLmNsaWVudElkKSxkYXRhVHlwZToianNvbiIscGFzdGVab25lOmV9KSxlLm9uKCJmaWxldXBsb2FkcGFzdGUiLGZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzO2EuX3Bhc3RlZD0hMCwkKCIuZC1lZGl0b3ItaW5wdXQiKS5pcygiOmZvY3VzIikmJihuPSh0PSgwLGguY2xpcGJvYXJkRGF0YSkoZSwhMCkpLmNhblVwbG9hZCxpPXQuY2FuUGFzdGVIdG1sLHM9dC50eXBlcyxuJiYhaSYmIXMuaW5jbHVkZXMoInRleHQvcGxhaW4iKXx8ZS5wcmV2ZW50RGVmYXVsdCgpKX0pLGUub24oImZpbGV1cGxvYWRzdWJtaXQiLGZ1bmN0aW9uKGUsbil7dmFyIHQ9YS5zaXRlU2V0dGluZ3Muc2ltdWx0YW5lb3VzX3VwbG9hZHM7aWYoMDx0JiZuLmZpbGVzLmxlbmd0aD50KXJldHVybiBib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5lcnJvcnMudG9vX21hbnlfZHJhZ2dlZF9hbmRfZHJvcHBlZF9maWxlcyIse21heDp0fSkpLCExO3ZhciBpPUQuZmluZChmdW5jdGlvbihlKXt2YXIgdD1lLmV4dGVuc2lvbnMuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKCJcXC4oIit0KyIpJCIsImkiKS50ZXN0KG4uZmlsZXNbMF0ubmFtZSl9KTtpZigxPT09bi5maWxlcy5sZW5ndGgmJmkmJiFpLm1ldGhvZChuLmZpbGVzWzBdLGEpKXJldHVybiExO3ZhciBzPWEuZ2V0KCJjb21wb3Nlci5wcml2YXRlTWVzc2FnZSIpO24uZm9ybURhdGE9e3R5cGU6ImNvbXBvc2VyIn0scyYmKG4uZm9ybURhdGEuZm9yX3ByaXZhdGVfbWVzc2FnZT0hMCksYS5fcGFzdGVkJiYobi5mb3JtRGF0YS5wYXN0ZWQ9ITApO3ZhciBvPXt1c2VyOmEuY3VycmVudFVzZXIsaXNQcml2YXRlTWVzc2FnZTpzLGFsbG93U3RhZmZUb1VwbG9hZEFueUZpbGVJblBtOmEuc2l0ZVNldHRpbmdzLmFsbG93X3N0YWZmX3RvX3VwbG9hZF9hbnlfZmlsZV9pbl9wbX0scj0oMCxiLnZhbGlkYXRlVXBsb2FkZWRGaWxlcykobi5maWxlcyxvKTtyZXR1cm4gYS5zZXRQcm9wZXJ0aWVzKHt1cGxvYWRQcm9ncmVzczowLGlzVXBsb2FkaW5nOnJ9KSxyfSksZS5vbigiZmlsZXVwbG9hZHByb2dyZXNzYWxsIixmdW5jdGlvbihlLHQpe2Euc2V0KCJ1cGxvYWRQcm9ncmVzcyIscGFyc2VJbnQodC5sb2FkZWQvdC50b3RhbCoxMDAsMTApKX0pLGUub24oImZpbGV1cGxvYWRzZW5kIixmdW5jdGlvbihlLHQpe2EuX3Bhc3RlZD0hMSxhLl92YWxpZFVwbG9hZHMrKyxhLl9zZXRVcGxvYWRQbGFjZWhvbGRlclNlbmQodCksYS5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLGEudXBsb2FkUGxhY2Vob2xkZXIpLHQueGhyJiYxPT09dC5vcmlnaW5hbEZpbGVzLmxlbmd0aCYmKGEuc2V0KCJpc0NhbmNlbGxhYmxlIiwhMCksYS5feGhyPXQueGhyKCkpfSksZS5vbigiZmlsZXVwbG9hZGRvbmUiLGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10LnJlc3VsdDthLl9zZXRVcGxvYWRQbGFjZWhvbGRlckRvbmUodCksYS5feGhyJiZhLl94aHIuX3VzZXJDYW5jZWxsZWQ/YS5fcmVzZXRVcGxvYWQoITApOihuPUkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoaSl8fGV9LCgwLGIuZ2V0VXBsb2FkTWFya2Rvd24pKGkpKSwoMCxnLmNhY2hlU2hvcnRVcGxvYWRVcmwpKGkuc2hvcnRfdXJsLGkpLGEuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsYS51cGxvYWRQbGFjZWhvbGRlci50cmltKCksbiksYS5fcmVzZXRVcGxvYWQoITEpKX0pLGUub24oImZpbGV1cGxvYWRmYWlsIixmdW5jdGlvbihlLHQpe2EuX3NldFVwbG9hZFBsYWNlaG9sZGVyRG9uZSh0KSxhLl9yZXNldFVwbG9hZCghMCk7dmFyIG49YS5feGhyJiZhLl94aHIuX3VzZXJDYW5jZWxsZWQ7YS5feGhyPW51bGwsbnx8KDAsYi5kaXNwbGF5RXJyb3JGb3JVcGxvYWQpKHQpfSksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJiQoIiNyZXBseS1jb250cm9sIC5tb2JpbGUtZmlsZS11cGxvYWQiKS5vbigiY2xpY2sudXBsb2FkZXIiLGZ1bmN0aW9uKCl7JCgiI21vYmlsZS11cGxvYWRlciIpLmNsaWNrKCl9KX0sX3JlZ2lzdGVySW1hZ2VTY2FsZUJ1dHRvbkNsaWNrOmZ1bmN0aW9uKGUpe3ZhciByPXRoaXMsYT0vIVxbKC4qPylcfChcZHsxLDR9eFxkezEsNH0pKCxccypcZHsxLDN9JSk/KC4qPylcXVwoKHVwbG9hZDpcL1wvLio/KVwpKD8hKC4qYCkpL2c7ZS5vZmYoImNsaWNrIiwiLnNjYWxlLWJ0biIpLm9uKCJjbGljayIsIi5zY2FsZS1idG4iLGZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KCQoZS50YXJnZXQpLnBhcmVudCgpLmF0dHIoImRhdGEtaW1hZ2UtaW5kZXgiKSwxMCksbj1lLnRhcmdldC5hdHRyaWJ1dGVzWyJkYXRhLXNjYWxlIl0udmFsdWUsaT1yLmdldCgiY29tcG9zZXIucmVwbHkiKS5tYXRjaChhKTtpZihpKXt2YXIgcz1pW3RdO2lmKCFzKXJldHVybjt2YXIgbz1zLnJlcGxhY2UoYSwiIVskMXwkMiwgIituKyIlJDRdKCQ1KSIpO3IuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlcGxhY2UtdGV4dCIsaVt0XSxvLHtyZWdleDphLGluZGV4OnR9KX19KX0sX3VuYmluZFVwbG9hZFRhcmdldDpmdW5jdGlvbigpe3RoaXMuX3ZhbGlkVXBsb2Fkcz0wLCQoIiNyZXBseS1jb250cm9sIC5tb2JpbGUtZmlsZS11cGxvYWQiKS5vZmYoImNsaWNrLnVwbG9hZGVyIiksdGhpcy5tZXNzYWdlQnVzLnVuc3Vic2NyaWJlKCIvdXBsb2Fkcy9jb21wb3NlciIpO3ZhciBlPSQodGhpcy5lbGVtZW50KTt0cnl7ZS5maWxldXBsb2FkKCJkZXN0cm95Iil9Y2F0Y2goZSl7fWUub2ZmKCl9LF9jb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6d2lsbC1jbG9zZSIpLCgwLHIubmV4dCkoZnVuY3Rpb24oKXsoMCxyLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBlLmFwcEV2ZW50cy50cmlnZ2VyKCJjb21wb3NlcjpjbG9zZWQiKX0sInRlc3QiPT09eS5kZWZhdWx0LmVudmlyb25tZW50PzA6NDAwKX0pLHRoaXMuX2VuYWJsZUFkdmFuY2VkRWRpdG9yUHJldmlld1N5bmMoKSYmdGhpcy5fdGVhcmRvd25JbnB1dFByZXZpZXdTeW5jKCl9LHNob3dVcGxvYWRTZWxlY3RvcjpmdW5jdGlvbihlKXt0aGlzLnNlbmQoInNob3dVcGxvYWRTZWxlY3RvciIsZSl9LG9uRXhwYW5kUG9wdXBNZW51T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnNlbGVjdGVkO2Uuc2VsZWN0VGV4dCh0LnN0YXJ0LHQuZW5kLXQuc3RhcnQpLHRoaXMuc3RvcmVUb29sYmFyU3RhdGUoZSl9LHNob3dQcmV2aWV3OmZ1bmN0aW9uKCl7dGhpcy5zZW5kKCJ0b2dnbGVQcmV2aWV3Iil9LGFjdGlvbnM6e2ltcG9ydFF1b3RlOmZ1bmN0aW9uKGUpe3RoaXMuaW1wb3J0UXVvdGUoZSl9LG9uRXhwYW5kUG9wdXBNZW51T3B0aW9uczpmdW5jdGlvbihlKXt0aGlzLm9uRXhwYW5kUG9wdXBNZW51T3B0aW9ucyhlKX0sdG9nZ2xlUHJldmlldzpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJldmlldygpfSxleHRyYUJ1dHRvbnM6ZnVuY3Rpb24oZSl7ZS5hZGRCdXR0b24oe2lkOiJxdW90ZSIsZ3JvdXA6ImZvbnRTdHlsZXMiLGljb246ImZhci1jb21tZW50IixzZW5kQWN0aW9uOnRoaXMuaW1wb3J0UXVvdGUsdGl0bGU6ImNvbXBvc2VyLnF1b3RlX3Bvc3RfdGl0bGUiLHVuc2hpZnQ6ITB9KSx0aGlzLmFsbG93VXBsb2FkJiZ0aGlzLnVwbG9hZEljb24mJiF0aGlzLnNpdGUubW9iaWxlVmlldyYmZS5hZGRCdXR0b24oe2lkOiJ1cGxvYWQiLGdyb3VwOiJpbnNlcnRpb25zIixpY29uOnRoaXMudXBsb2FkSWNvbix0aXRsZToidXBsb2FkIixzZW5kQWN0aW9uOnRoaXMuc2hvd1VwbG9hZE1vZGFsfSksZS5hZGRCdXR0b24oe2lkOiJvcHRpb25zIixncm91cDoiZXh0cmFzIixpY29uOiJjb2ciLHRpdGxlOiJjb21wb3Nlci5vcHRpb25zIixzZW5kQWN0aW9uOnRoaXMub25FeHBhbmRQb3B1cE1lbnVPcHRpb25zLmJpbmQodGhpcykscG9wdXBNZW51OiEwfSl9LHByZXZpZXdVcGRhdGVkOmZ1bmN0aW9uKGUpe3ZhciB1PXRoaXMsdD0oMCxzLmxpbmtTZWVuTWVudGlvbnMpKGUsdGhpcy5zaXRlU2V0dGluZ3MpO3QubGVuZ3RoJiYoMCxyLmRlYm91bmNlKSh0aGlzLHRoaXMuX3JlbmRlclVuc2Vlbk1lbnRpb25zLGUsdCw0NTApLHRoaXMuX3dhcm5NZW50aW9uZWRHcm91cHMoZSksdGhpcy5fd2FybkNhbm5vdFNlZU1lbnRpb24oZSk7dmFyIG4saT0oMCxvLmxpbmtTZWVuQ2F0ZWdvcnlIYXNodGFncykoZSk7aS5sZW5ndGgmJigwLHIuZGVib3VuY2UpKHRoaXMsdGhpcy5fcmVuZGVyVW5zZWVuQ2F0ZWdvcnlIYXNodGFncyxlLGksNDUwKSwhdGhpcy5zaXRlU2V0dGluZ3MudGFnZ2luZ19lbmFibGVkfHwobj0oMCxhLmxpbmtTZWVuVGFnSGFzaHRhZ3MpKGUpKS5sZW5ndGgmJigwLHIuZGVib3VuY2UpKHRoaXMsdGhpcy5fcmVuZGVyVW5zZWVuVGFnSGFzaHRhZ3MsZSxuLDQ1MCksKDAsci5kZWJvdW5jZSkodGhpcyxmdW5jdGlvbigpe3ZhciByPXt9LGE9e30sbD1lLmZpbmQoImFzaWRlLm9uZWJveCwgYS4iK2MuTE9BRElOR19PTkVCT1hfQ1NTX0NMQVNTKyIsIGEuIit2LklOTElORV9PTkVCT1hfQ1NTX0NMQVNTKS5sZW5ndGg7ZS5maW5kKCJhLm9uZWJveCwgYS4iK3YuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUykuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuPSQodCksaT1uLnRleHQoKSxzPW4uYXR0cigiY2xhc3MiKT09PXYuSU5MSU5FX09ORUJPWF9MT0FESU5HX0NTU19DTEFTUyxvPXM/YTpyO2w8dS5zaXRlU2V0dGluZ3MubWF4X29uZWJveGVzX3Blcl9wb3N0Pyh2b2lkIDA9PT1vW2ldJiYob1tpXT1bXSxsKyspLG9baV0ucHVzaCh0KSk6dm9pZCAwIT09b1tpXT9vW2ldLnB1c2godCk6cyYmbi5yZW1vdmVDbGFzcyh2LklOTElORV9PTkVCT1hfTE9BRElOR19DU1NfQ0xBU1MpfSksMDxPYmplY3Qua2V5cyhyKS5sZW5ndGgmJnUuX2xvYWRPbmVib3hlcyhyKSwwPE9iamVjdC5rZXlzKGEpLmxlbmd0aCYmdS5fbG9hZElubGluZU9uZWJveGVzKGEpfSw0NTApLCgwLGcucmVzb2x2ZUFsbFNob3J0VXJscykoZC5hamF4LCIuZC1lZGl0b3ItcHJldmlldy13cmFwcGVyIiksdGhpcy5fZW5hYmxlQWR2YW5jZWRFZGl0b3JQcmV2aWV3U3luYygpJiZ0aGlzLl9zeW5jU2Nyb2xsKHRoaXMuX3N5bmNFZGl0b3JBbmRQcmV2aWV3U2Nyb2xsLCQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWVkaXRvci1pbnB1dCIpKSxlKSx0aGlzLl9yZWdpc3RlckltYWdlU2NhbGVCdXR0b25DbGljayhlKSx0aGlzLnRyaWdnZXIoInByZXZpZXdSZWZyZXNoZWQiLGUpLHRoaXMuYWZ0ZXJSZWZyZXNoKGUpfX19LCJ1cGxvYWRQbGFjZWhvbGRlciIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywidXBsb2FkUGxhY2Vob2xkZXIiKSxDKSxfKEMsInJlcGx5UGxhY2Vob2xkZXIiLFt4XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInJlcGx5UGxhY2Vob2xkZXIiKSxDKSxfKEMsInNob3dMaW5rIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInNob3dMaW5rIiksQyksXyhDLCJkaXNhYmxlVGV4dGFyZWEiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsImRpc2FibGVUZXh0YXJlYSIpLEMpLF8oQywiX2NhbmNlbFVwbG9hZCIsW1BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywiX2NhbmNlbFVwbG9hZCIpLEMpLF8oQywic2V0Rm9jdXMiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsInNldEZvY3VzIiksQyksXyhDLCJtYXJrZG93bk9wdGlvbnMiLFtuLmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQywibWFya2Rvd25PcHRpb25zIiksQyksXyhDLCJfY29tcG9zZXJFZGl0b3JJbml0IixbVF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJfY29tcG9zZXJFZGl0b3JJbml0IiksQyksXyhDLCJ2YWxpZGF0aW9uIixbRV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJ2YWxpZGF0aW9uIiksQyksXyhDLCJfdW5iaW5kVXBsb2FkVGFyZ2V0IixbT10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDLCJfdW5iaW5kVXBsb2FkVGFyZ2V0IiksQyksXyhDLCJfY29tcG9zZXJDbG9zZWQiLFtTXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEMsIl9jb21wb3NlckNsb3NlZCIpLEMpLEMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItbWVzc2FnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJtZXNzYWdlLnRlbXBsYXRlTmFtZSIpLHI9bz17Y2xhc3NOYW1lQmluZGluZ3M6WyI6Y29tcG9zZXItcG9wdXAiLCI6aGlkZGVuIiwibWVzc2FnZS5leHRyYUNsYXNzIl0sbGF5b3V0OmZ1bmN0aW9uKGUpe3JldHVybigwLGkuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgidGVtcGxhdGU6Y29tcG9zZXIvIitlKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheT0iYmxvY2sifSxhY3Rpb25zOntjbG9zZU1lc3NhZ2U6ZnVuY3Rpb24oKXt0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLm1lc3NhZ2UpfX19LGE9ImxheW91dCIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImxheW91dCIpLGM9byxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxvKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvbGluay1sb29rdXAiXSxmdW5jdGlvbihlLHQsbixpLHMsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbD17fTtlLmRlZmF1bHQ9cy5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lQmluZGluZ3M6WyI6Y29tcG9zZXItcG9wdXAtY29udGFpbmVyIiwiaGlkZGVuIl0sY2hlY2tlZE1lc3NhZ2VzOiExLG1lc3NhZ2VzOm51bGwsbWVzc2FnZXNCeVRlbXBsYXRlOm51bGwscXVldWVkRm9yVHlwaW5nOm51bGwsX2xhc3RTaW1pbGFyaXR5U2VhcmNoOm51bGwsX3NpbWlsYXJUb3BpY3NNZXNzYWdlOm51bGwsX3lvdXJzZWxmQ29uZmlybTpudWxsLHNpbWlsYXJUb3BpY3M6bnVsbCxoaWRkZW46KDAsdC5ub3QpKCJjb21wb3Nlci52aWV3T3Blbk9yRnVsbHNjcmVlbiIpLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnR5cGVkLXJlcGx5Iix0aGlzLHRoaXMuX3R5cGVkUmVwbHkpLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5fZmluZE1lc3NhZ2VzKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6ZmluZC1zaW1pbGFyIix0aGlzLHRoaXMuX2ZpbmRTaW1pbGFyKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXItbWVzc2FnZXM6Y2xvc2UiLHRoaXMsdGhpcy5fY2xvc2VUb3ApLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3Nlci1tZXNzYWdlczpjcmVhdGUiLHRoaXMsdGhpcy5fY3JlYXRlKSwoMCxpLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMucmVzZXQpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnR5cGVkLXJlcGx5Iix0aGlzLHRoaXMuX3R5cGVkUmVwbHkpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6b3BlbmVkIix0aGlzLHRoaXMuX2ZpbmRNZXNzYWdlcyksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpmaW5kLXNpbWlsYXIiLHRoaXMsdGhpcy5fZmluZFNpbWlsYXIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXItbWVzc2FnZXM6Y2xvc2UiLHRoaXMsdGhpcy5fY2xvc2VUb3ApLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXItbWVzc2FnZXM6Y3JlYXRlIix0aGlzLHRoaXMuX2NyZWF0ZSl9LF9jbG9zZVRvcDpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVzc2FnZXM7ZS5wb3BPYmplY3QoKSx0aGlzLnNldCgibWVzc2FnZUNvdW50IixlLmdldCgibGVuZ3RoIikpfSxfcmVtb3ZlTWVzc2FnZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLm1lc3NhZ2VzO3QucmVtb3ZlT2JqZWN0KGUpLHRoaXMuc2V0KCJtZXNzYWdlQ291bnQiLHQuZ2V0KCJsZW5ndGgiKSl9LGFjdGlvbnM6e2Nsb3NlTWVzc2FnZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVNZXNzYWdlKGUpfSxoaWRlTWVzc2FnZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVNZXNzYWdlKGUpLHRoaXMubWVzc2FnZXNCeVRlbXBsYXRlW2UuZ2V0KCJ0ZW1wbGF0ZU5hbWUiKV09dm9pZCAwfSxwb3B1cDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMubWVzc2FnZXNCeVRlbXBsYXRlLGk9ZS5nZXQoInRlbXBsYXRlTmFtZSIpO25baV18fCgodD10aGlzLm1lc3NhZ2VzKS5wdXNoT2JqZWN0KGUpLHRoaXMuc2V0KCJtZXNzYWdlQ291bnQiLHQuZ2V0KCJsZW5ndGgiKSksbltpXT1lKX19LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fHRoaXMuc2V0UHJvcGVydGllcyh7bWVzc2FnZXM6W10sbWVzc2FnZXNCeVRlbXBsYXRlOnt9LHF1ZXVlZEZvclR5cGluZzpbXSxjaGVja2VkTWVzc2FnZXM6ITEsc2ltaWxhclRvcGljczpbXX0pfSxfdHlwZWRSZXBseTpmdW5jdGlvbigpe3ZhciBlLHQsbixpPXRoaXM7dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fCghKGU9dGhpcy5jb21wb3NlcikuZ2V0KCJwcml2YXRlTWVzc2FnZSIpfHwwPCh0PWUudGFyZ2V0UmVjaXBpZW50c0FycmF5KS5sZW5ndGgmJnQuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PWkuY3VycmVudFVzZXIuZ2V0KCJ1c2VybmFtZSIpfSkmJihuPXRoaXMuX3lvdXJzZWxmQ29uZmlybXx8ZS5zdG9yZS5jcmVhdGVSZWNvcmQoImNvbXBvc2VyLW1lc3NhZ2UiLHtpZDoieW91cnNlbGZfY29uZmlybSIsdGVtcGxhdGVOYW1lOiJjdXN0b20tYm9keSIsdGl0bGU6STE4bi50KCJjb21wb3Nlci55b3Vyc2VsZl9jb25maXJtLnRpdGxlIiksYm9keTpJMThuLnQoImNvbXBvc2VyLnlvdXJzZWxmX2NvbmZpcm0uYm9keSIpfSksdGhpcy5zZW5kKCJwb3B1cCIsbikpLHRoaXMucXVldWVkRm9yVHlwaW5nLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGkuc2VuZCgicG9wdXAiLGUpfSkpfSxfY3JlYXRlOmZ1bmN0aW9uKGUpe3RoaXMucmVzZXQoKSx0aGlzLnNlbmQoInBvcHVwIixuLmRlZmF1bHQuY3JlYXRlKGUpKX0sX2ZpbmRTaW1pbGFyOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvPXRoaXMscj10aGlzLmNvbXBvc2VyO3IuZ2V0KCJjcmVhdGluZ1RvcGljIikmJihlPShyLmdldCgicmVwbHkiKXx8IiIpLnN1YnN0cigwLDIwMCksKHQ9ci5nZXQoInRpdGxlIil8fCIiKS5sZW5ndGg8dGhpcy5zaXRlU2V0dGluZ3MubWluX3RpdGxlX3NpbWlsYXJfbGVuZ3RofHwobj10K2UpIT09dGhpcy5fbGFzdFNpbWlsYXJpdHlTZWFyY2gmJih0aGlzLl9sYXN0U2ltaWxhcml0eVNlYXJjaD1uLGk9dGhpcy5zaW1pbGFyVG9waWNzLHM9dGhpcy5fc2ltaWxhclRvcGljc01lc3NhZ2V8fHIuc3RvcmUuY3JlYXRlUmVjb3JkKCJjb21wb3Nlci1tZXNzYWdlIix7aWQ6InNpbWlsYXJfdG9waWNzIix0ZW1wbGF0ZU5hbWU6InNpbWlsYXItdG9waWNzIixleHRyYUNsYXNzOiJzaW1pbGFyLXRvcGljcyJ9KSx0aGlzLl9zaW1pbGFyVG9waWNzTWVzc2FnZT1zLHIuc3RvcmUuZmluZCgic2ltaWxhci10b3BpYyIse3RpdGxlOnQscmF3OmV9KS50aGVuKGZ1bmN0aW9uKGUpe2kuY2xlYXIoKSxpLnB1c2hPYmplY3RzKGUuZ2V0KCJjb250ZW50IikpLDA8aS5nZXQoImxlbmd0aCIpPyhzLnNldCgic2ltaWxhclRvcGljcyIsaSksby5zZW5kKCJwb3B1cCIscykpOiFzfHxvLmlzRGVzdHJveWVkfHxvLmlzRGVzdHJveWluZ3x8by5zZW5kKCJoaWRlTWVzc2FnZSIscyl9KSkpfSxfZmluZE1lc3NhZ2VzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvLHI9dGhpczt0aGlzLmNoZWNrZWRNZXNzYWdlc3x8KHQ9e2NvbXBvc2VyX2FjdGlvbjooZT10aGlzLmNvbXBvc2VyKS5nZXQoImFjdGlvbiIpfSxuPWUuZ2V0KCJ0b3BpYy5pZCIpLGk9ZS5nZXQoInBvc3QuaWQiKSxuJiYodC50b3BpY19pZD1uKSxpJiYodC5wb3N0X2lkPWkpLHM9IiIrdC5jb21wb3Nlcl9hY3Rpb24rdC50b3BpY19pZCt0LnBvc3RfaWQsbz1mdW5jdGlvbihlKXt2YXIgdDtyLmlzRGVzdHJveWluZ3x8ci5pc0Rlc3Ryb3llZHx8KGUuZXh0cmFzJiZlLmV4dHJhcy5kdXBsaWNhdGVfbG9va3VwJiZyLmFkZExpbmtMb29rdXAobmV3IGEuZGVmYXVsdChlLmV4dHJhcy5kdXBsaWNhdGVfbG9va3VwKSksci5zZXQoImNoZWNrZWRNZXNzYWdlcyIsITApLHQ9ci5xdWV1ZWRGb3JUeXBpbmcsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLndhaXRfZm9yX3R5cGluZz90LmFkZE9iamVjdChlKTpyLnNlbmQoInBvcHVwIixlKX0pKX0sbC5jYWNoZUtleT09PXM/byhsLm1lc3NhZ2VzKTplLnN0b3JlLmZpbmQoImNvbXBvc2VyLW1lc3NhZ2UiLHQpLnRoZW4oZnVuY3Rpb24oZSl7bD17bWVzc2FnZXM6ZSxjYWNoZUtleTpzfSxvKGUpfSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jb21wb3Nlci1zYXZlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZC1idXR0b24iXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhYmluZGV4OjUsY2xhc3NOYW1lQmluZGluZ3M6WyI6YnRuLXByaW1hcnkiLCI6Y3JlYXRlIiwiZGlzYWJsZVN1Ym1pdDpkaXNhYmxlZCJdLHRpdGxlOiJjb21wb3Nlci50aXRsZSJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItdGl0bGUiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJwcmV0dHktdGV4dC9vbmVib3hlciIsInByZXR0eS10ZXh0L29uZWJveGVyLWNhY2hlIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hZnRlci10cmFuc2l0aW9uIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LGksbixzLG8scixhLGwsdSxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcCxtLGYsaCxiLGc7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChwPSgwLHMuZGVmYXVsdCkoImNvbXBvc2VyLnRpdGxlTGVuZ3RoIiwiY29tcG9zZXIubWlzc2luZ1RpdGxlQ2hhcmFjdGVycyIsImNvbXBvc2VyLm1pbmltdW1UaXRsZUxlbmd0aCIsImxhc3RWYWxpZGF0ZWRBdCIpLG09KDAscy5kZWZhdWx0KSgid2F0Y2hGb3JMaW5rIiksZj0oMCxzLm9ic2VydmVzKSgiY29tcG9zZXIudGl0bGVMZW5ndGgiLCJ3YXRjaEZvckxpbmsiKSxoPSgwLHMub2JzZXJ2ZXMpKCJjb21wb3Nlci5yZXBseUxlbmd0aCIpLGI9KDAscy5kZWZhdWx0KSgiY29tcG9zZXIudGl0bGUiLCJjb21wb3Nlci50aXRsZUxlbmd0aCIpLGQoZz17Y2xhc3NOYW1lczpbInRpdGxlLWlucHV0Il0sd2F0Y2hGb3JMaW5rOigwLHQuYWxpYXMpKCJjb21wb3Nlci5jYW5FZGl0VG9waWNGZWF0dXJlZExpbmsiKSxkaXNhYmxlZDooMCx0Lm9yKSgiY29tcG9zZXIubG9hZGluZyIsImNvbXBvc2VyLmRpc2FibGVUaXRsZUlucHV0IiksZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwidGl0bGUiPT09dGhpcy5mb2N1c1RhcmdldCYmKGU9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSksKDAsbC5kZWZhdWx0KSgkKHRoaXMuZWxlbWVudCkuY2xvc2VzdCgiI3JlcGx5LWNvbnRyb2wiKSxmdW5jdGlvbigpe2UucHV0Q3Vyc29yQXRFbmQoKX0pKSwwPHRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZUxlbmd0aCIpJiYoMCxpLmRlYm91bmNlKSh0aGlzLHRoaXMuX3RpdGxlQ2hhbmdlZCwxMCl9LHZhbGlkYXRpb246ZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9dm9pZCAwO2lmKGU8MT9zPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfbWlzc2luZyIpOjA8dD9zPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfdG9vX3Nob3J0Iix7bWluOm59KTplPnRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGgmJihzPUkxOG4udCgiY29tcG9zZXIuZXJyb3IudGl0bGVfdG9vX2xvbmciLHttYXg6dGhpcy5zaXRlU2V0dGluZ3MubWF4X3RvcGljX3RpdGxlX2xlbmd0aH0pKSxzKXJldHVybiBjLmRlZmF1bHQuY3JlYXRlKHtmYWlsZWQ6ITAscmVhc29uOnMsbGFzdFNob3duQXQ6aX0pfSx0aXRsZU1heExlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLndhdGNoRm9yTGluaz9udWxsOnRoaXMuc2l0ZVNldHRpbmdzLm1heF90b3BpY190aXRsZV9sZW5ndGh9LF90aXRsZUNoYW5nZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOzA9PT10aGlzLmdldCgiY29tcG9zZXIudGl0bGVMZW5ndGgiKSYmdGhpcy5zZXQoImF1dG9Qb3N0ZWQiLCExKSwhdGhpcy5hdXRvUG9zdGVkJiZ0aGlzLndhdGNoRm9yTGluayYmKCJ0ZXN0Ij09PXUuZGVmYXVsdC5lbnZpcm9ubWVudD8oMCxpLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2NoZWNrRm9yVXJsKCl9KTooMCxpLmRlYm91bmNlKSh0aGlzLHRoaXMuX2NoZWNrRm9yVXJsLDUwMCkpfSxfY2xlYXJGZWF0dXJlZExpbms6ZnVuY3Rpb24oKXt0aGlzLndhdGNoRm9yTGluayYmdGhpcy5ib2R5SXNEZWZhdWx0KCkmJnRoaXMuc2V0KCJjb21wb3Nlci5mZWF0dXJlZExpbmsiLG51bGwpfSxfY2hlY2tGb3JVcmw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCYmdGhpcy5pc0Fic29sdXRlVXJsJiZ0aGlzLmJvZHlJc0RlZmF1bHQoKSl7aWYodGhpcy5nZXQoImNvbXBvc2VyLnRpdGxlIikubWF0Y2gobmV3IFJlZ0V4cCgiXmh0dHBzPzpcXC9cXC8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiaSIpKSlyZXR1cm47dGhpcy5zZXQoImNvbXBvc2VyLmxvYWRpbmciLCEwKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7bi5ocmVmPXRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZSIpO3ZhciBlPSgwLG8ubG9hZCkoe2VsZW06bixyZWZyZXNoOiExLGFqYXg6YS5hamF4LHN5bmNocm9ub3VzOiEwLGNhdGVnb3J5SWQ6dGhpcy5nZXQoImNvbXBvc2VyLmNhdGVnb3J5LmlkIiksdG9waWNJZDp0aGlzLmdldCgiY29tcG9zZXIudG9waWMuaWQiKX0pO2UmJmUudGhlbj9lLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT0oMCxyLmxvb2t1cENhY2hlKSh0LmdldCgiY29tcG9zZXIudGl0bGUiKSk7dC5fdXBkYXRlUG9zdChlfHxuKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnNldCgiY29tcG9zZXIubG9hZGluZyIsITEpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKHQuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5wdXRDdXJzb3JBdEVuZCgpfSl9KToodGhpcy5fdXBkYXRlUG9zdChlKSx0aGlzLnNldCgiY29tcG9zZXIubG9hZGluZyIsITEpLCgwLGkuc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKHQuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5wdXRDdXJzb3JBdEVuZCgpfSkpfX0sX3VwZGF0ZVBvc3Q6ZnVuY3Rpb24oZSl7dmFyIHQsbixpO2UmJih0aGlzLnNldCgiYXV0b1Bvc3RlZCIsITApLHRoaXMuc2V0KCJjb21wb3Nlci5mZWF0dXJlZExpbmsiLHRoaXMuZ2V0KCJjb21wb3Nlci50aXRsZSIpKSxuPTA8KHQ9JChlKSkuZmluZCgiaDMiKS5sZW5ndGg/dC5maW5kKCJoMyIpOnQuZmluZCgiaDQiKSx0aGlzLmNvbXBvc2VyLmFwcGVuZFRleHQodGhpcy5nZXQoImNvbXBvc2VyLnRpdGxlIiksbnVsbCx7YmxvY2s6ITB9KSwwPG4ubGVuZ3RoJiYwPG4udGV4dCgpLmxlbmd0aD90aGlzLmNoYW5nZVRpdGxlKG4udGV4dCgpKTooaT10LmF0dHIoInRpdGxlIil8fHQuZmluZCgiW3RpdGxlXSIpLmF0dHIoInRpdGxlIikpJiYwPGkubGVuZ3RoJiZ0aGlzLmNoYW5nZVRpdGxlKGkpKX0sY2hhbmdlVGl0bGU6ZnVuY3Rpb24oZSl7ZSYmMDxlLmxlbmd0aCYmdGhpcy5zZXQoImNvbXBvc2VyLnRpdGxlIixlLnRyaW0oKSl9LGlzQWJzb2x1dGVVcmw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDx0JiYvXihodHRwcz86KT9cL1wvW1x3XC5cLV0rL2kudGVzdChlKSYmIS9ccy8udGVzdChlKX0sYm9keUlzRGVmYXVsdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KCJjb21wb3Nlci5yZXBseSIpfHwiIjtyZXR1cm4gMD09PWUubGVuZ3RofHxlPT09KHRoaXMuZ2V0KCJjb21wb3Nlci5jYXRlZ29yeS50b3BpY190ZW1wbGF0ZSIpfHwiIil9fSwidmFsaWRhdGlvbiIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywidmFsaWRhdGlvbiIpLGcpLGQoZywidGl0bGVNYXhMZW5ndGgiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsInRpdGxlTWF4TGVuZ3RoIiksZyksZChnLCJfdGl0bGVDaGFuZ2VkIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnLCJfdGl0bGVDaGFuZ2VkIiksZyksZChnLCJfY2xlYXJGZWF0dXJlZExpbmsiLFtoXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsIl9jbGVhckZlYXR1cmVkTGluayIpLGcpLGQoZywiaXNBYnNvbHV0ZVVybCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZywiaXNBYnNvbHV0ZVVybCIpLGcpLGcpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29tcG9zZXItdG9nZ2xlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJjb21wb3NlU3RhdGUiKSxvPSgwLHQuZGVmYXVsdCkoImNvbXBvc2VTdGF0ZSIpLHI9KDAsdC5kZWZhdWx0KSgiY29tcG9zZVN0YXRlIiksYT0oMCx0LmRlZmF1bHQpKCJjb21wb3NlU3RhdGUiKSxpKGw9e3RhZ05hbWU6IiIsdG9nZ2xlVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuImRyYWZ0Ij09PWV8fCJzYXZpbmciPT09ZT8iY29tcG9zZXIuYWJhbmRvbiI6ImNvbXBvc2VyLmNvbGxhcHNlIn0sZnVsbHNjcmVlblRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiJkcmFmdCI9PT1lPyJjb21wb3Nlci5vcGVuIjoiZnVsbHNjcmVlbiI9PT1lPyJjb21wb3Nlci5leGl0X2Z1bGxzY3JlZW4iOiJjb21wb3Nlci5lbnRlcl9mdWxsc2NyZWVuIn0sdG9nZ2xlSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4iZHJhZnQiPT09ZXx8InNhdmluZyI9PT1lPyJ0aW1lcyI6ImNoZXZyb24tZG93biJ9LGZ1bGxzY3JlZW5JY29uOmZ1bmN0aW9uKGUpe3JldHVybiJkcmFmdCI9PT1lPyJjaGV2cm9uLXVwIjoiZnVsbHNjcmVlbiI9PT1lPyJkaXNjb3Vyc2UtY29tcHJlc3MiOiJkaXNjb3Vyc2UtZXhwYW5kIn19LCJ0b2dnbGVUaXRsZSIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidG9nZ2xlVGl0bGUiKSxsKSxpKGwsImZ1bGxzY3JlZW5UaXRsZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZnVsbHNjcmVlblRpdGxlIiksbCksaShsLCJ0b2dnbGVJY29uIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJ0b2dnbGVJY29uIiksbCksaShsLCJmdWxsc2NyZWVuSWNvbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiZnVsbHNjcmVlbkljb24iKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5vYnNlcnZlcykoInVzZXJuYW1lcyIpLHI9KDAsaS5vYnNlcnZlcykoInNob3VsZEhpZGUiKSxhPSgwLGkuZGVmYXVsdCkoInVzZXJuYW1lcyIpLGw9KDAsaS5kZWZhdWx0KSgic3BsaXRVc2VybmFtZXMiLCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHU9KDAsaS5kZWZhdWx0KSgic3BsaXRVc2VybmFtZXMiLCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHMoYz17c2hvd1NlbGVjdG9yOiEwLHNob3VsZEhpZGU6ITEsZGVmYXVsdFVzZXJuYW1lQ291bnQ6MCxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJ1c2VybmFtZXMiPT09dGhpcy5mb2N1c1RhcmdldCYmJCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSkucHV0Q3Vyc29yQXRFbmQoKX0sX2NoZWNrV2lkdGg6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLGk9MCxlPSQodGhpcy5lbGVtZW50KS5maW5kKCIuYWMtd3JhcCIpLHM9ZS53aWR0aCgpO3RoaXMuc2V0KCJkZWZhdWx0VXNlcm5hbWVDb3VudCIsMCksZS5maW5kKCIuaXRlbSIpLnRvQXJyYXkoKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PShpKz0kKGUpLm91dGVyV2lkdGgoITApKTxzO3JldHVybiB0JiZuLmluY3JlbWVudFByb3BlcnR5KCJkZWZhdWx0VXNlcm5hbWVDb3VudCIpLHR9KSxzPD1pP3RoaXMuc2V0KCJzaG91bGRIaWRlIiwhMCk6dGhpcy5zZXQoInNob3VsZEhpZGUiLCExKX0sX3NldEZvY3VzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PSIjcmVwbHktY29udHJvbCAjcmVwbHktdGl0bGUsICNyZXBseS1jb250cm9sIC5kLWVkaXRvci1pbnB1dCI7dGhpcy5zaG91bGRIaWRlPyQodCkub24oImZvY3VzLmNvbXBvc2VyLXVzZXItc2VsZWN0b3IiLGZ1bmN0aW9uKCl7ZS5zZXQoInNob3dTZWxlY3RvciIsITEpLGUuYXBwRXZlbnRzLnRyaWdnZXIoImNvbXBvc2VyOnJlc2l6ZSIpfSk6JCh0KS5vZmYoImZvY3VzLmNvbXBvc2VyLXVzZXItc2VsZWN0b3IiKX0sc3BsaXRVc2VybmFtZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3BsaXQoIiwiKX0sbGltaXRlZFVzZXJuYW1lczpmdW5jdGlvbihlLHQpe3JldHVybiBlLnNsaWNlKDAsdCkuam9pbigiLCAiKX0saGlkZGVuVXNlcnNDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aC10KyIgIitJMThuLnQoIm1vcmUiKX0sYWN0aW9uczp7dG9nZ2xlU2VsZWN0b3I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2V0KCJzaG93U2VsZWN0b3IiLCEwKSwoMCx0LnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7JChlLmVsZW1lbnQpLmZpbmQoImlucHV0IikuZm9jdXMoKX0pfSx0cmlnZ2VyUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6cmVzaXplIik7dmFyIGU9JCh0aGlzLmVsZW1lbnQpLmZpbmQoIi5hYy13cmFwIik7MTUwPD1lLmhlaWdodCgpJiZlLnNjcm9sbFRvcChlLmhlaWdodCgpKX19fSwiX2NoZWNrV2lkdGgiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9jaGVja1dpZHRoIiksYykscyhjLCJfc2V0Rm9jdXMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9zZXRGb2N1cyIpLGMpLHMoYywic3BsaXRVc2VybmFtZXMiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNwbGl0VXNlcm5hbWVzIiksYykscyhjLCJsaW1pdGVkVXNlcm5hbWVzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJsaW1pdGVkVXNlcm5hbWVzIiksYykscyhjLCJoaWRkZW5Vc2Vyc0NvdW50IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJoaWRkZW5Vc2Vyc0NvdW50IiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jb25jZXJucy9jYXRlZ29yeS1zZWFyY2gtcHJpb3JpdGllcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLnNlYXJjaFByaW9yaXRpZXM9e2lnbm9yZToxLHZlcnlfbG93OjIsbG93OjMsbm9ybWFsOjAsaGlnaDo0LHZlcnlfaGlnaDo1fX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJpc0xvYWRpbmciXSxpc0xvYWRpbmc6ITEsdGl0bGU6STE4bi50KCJjb25kaXRpb25hbF9sb2FkaW5nX3NlY3Rpb24ubG9hZGluZyIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nvbm5lY3Rvci1jb250YWluZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY29vay10ZXh0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG4sdCxpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIixjb29rZWQ6bnVsbCxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwoMCxpLmNvb2tBc3luYykodGhpcy5yYXdUZXh0KS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJjb29rZWQiLGUpLCgwLG4ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlcXVpcmVNb2R1bGUoInByZXR0eS10ZXh0L3VwbG9hZC1zaG9ydC11cmwiKS5yZXNvbHZlQWxsU2hvcnRVcmxzKHMuYWpheCl9KX0pfX0pO28ucmVvcGVuQ2xhc3Moe3Bvc2l0aW9uYWxQYXJhbXM6WyJyYXdUZXh0Il19KSxlLmRlZmF1bHQ9b30pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvY291bnQtaTE4biIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIscmVyZW5kZXJUcmlnZ2VyczpbImNvdW50Iiwic3VmZml4Il0saTE4bkNvdW50Om51bGwsZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJpMThuQ291bnQiLEkxOG4udCh0aGlzLmtleSsodGhpcy5zdWZmaXh8fCIiKSx7Y291bnQ6dGhpcy5jb3VudH0pLmh0bWxTYWZlKCkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jcmVhdGUtYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImNyZWF0ZS1hY2NvdW50Il0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQuY29va2llKCJlbWFpbCIpJiZ0aGlzLnNldCgiZW1haWwiLCQuY29va2llKCJlbWFpbCIpKSwkKHRoaXMuZWxlbWVudCkub24oImtleWRvd24uZGlzY291cnNlLWNyZWF0ZS1hY2NvdW50IixmdW5jdGlvbihlKXtpZighdC5kaXNhYmxlZCYmMTM9PT1lLmtleUNvZGUpcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuYWN0aW9uKCksITF9KSwkKHRoaXMuZWxlbWVudCkub24oImNsaWNrLmRyb3Bkb3duLXVzZXItZmllbGQtbGFiZWwiLCJbZm9yXSIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCksbj0kKCIjIit0LmF0dHIoImZvciIpKTtuLmlzKCIuc2VsZWN0LWtpdCIpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLG4uZmluZCgiLnNlbGVjdC1raXQtaGVhZGVyIikudHJpZ2dlcigiY2xpY2siKSl9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQodGhpcy5lbGVtZW50KS5vZmYoImtleWRvd24uZGlzY291cnNlLWNyZWF0ZS1hY2NvdW50IiksJCh0aGlzLmVsZW1lbnQpLm9mZigiY2xpY2suZHJvcGRvd24tdXNlci1maWVsZC1sYWJlbCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jcmVhdGUtdG9waWMtYnV0dG9uIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLGxhYmVsOiJ0b3BpYy5jcmVhdGUifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2NyZWF0ZS10b3BpY3Mtbm90aWNlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvbGl2ZS1wb3N0LWNvdW50cyJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgpLGE9KDAsdC5kZWZhdWx0KSgiZW5hYmxlZCIsInNob3VsZFNlZSIsInB1YmxpY1RvcGljQ291bnQiLCJwdWJsaWNQb3N0Q291bnQiKSxsPSgwLHQuZGVmYXVsdCkoInB1YmxpY1RvcGljQ291bnQiLCJwdWJsaWNQb3N0Q291bnQiLCJ0b3BpY1RyYWNraW5nU3RhdGUuaW5jb21pbmdDb3VudCIpLHU9KDAsdC5vYnNlcnZlcykoInRvcGljVHJhY2tpbmdTdGF0ZS5pbmNvbWluZ0NvdW50IiksbyhjPXtjbGFzc05hbWVCaW5kaW5nczpbImhpZGRlbjpoaWRkZW4iLCI6Y3JlYXRlLXRvcGljcy1ub3RpY2UiXSxlbmFibGVkOiExLHB1YmxpY1RvcGljQ291bnQ6bnVsbCxwdWJsaWNQb3N0Q291bnQ6bnVsbCxyZXF1aXJlZFRvcGljczo1LHJlcXVpcmVkUG9zdHM6KDAsbi5hbGlhcykoInNpdGVTZXR0aW5ncy50bDFfcmVxdWlyZXNfcmVhZF9wb3N0cyIpLGluaXQ6ZnVuY3Rpb24oKXt2YXIgdCxuO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNob3VsZFNlZSYmKG49dD0wLHRoaXMuc2l0ZS5nZXQoImNhdGVnb3JpZXMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZ2V0KCJyZWFkX3Jlc3RyaWN0ZWQiKXx8KHQrPWUuZ2V0KCJ0b3BpY19jb3VudCIpLG4rPWUuZ2V0KCJwb3N0X2NvdW50IikpfSksKHQ8dGhpcy5yZXF1aXJlZFRvcGljc3x8bjx0aGlzLnJlcXVpcmVkUG9zdHMpJiYodGhpcy5zZXQoImVuYWJsZWQiLCEwKSx0aGlzLmZldGNoTGl2ZVN0YXRzKCkpKX0sc2hvdWxkU2VlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlcjtyZXR1cm4gZSYmZS5nZXQoImFkbWluIikmJnRoaXMuc2l0ZVNldHRpbmdzLnNob3dfY3JlYXRlX3RvcGljc19ub3RpY2UmJiF0aGlzLnNpdGUuZ2V0KCJ3aXphcmRfcmVxdWlyZWQiKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZW5hYmxlZHx8IXRoaXMuc2hvdWxkU2VlfHxudWxsPT10aGlzLnB1YmxpY1RvcGljQ291bnR8fG51bGw9PXRoaXMucHVibGljUG9zdENvdW50fSxtZXNzYWdlOmZ1bmN0aW9uKCl7dmFyIGU9bnVsbCxlPXRoaXMucHVibGljVG9waWNDb3VudDx0aGlzLnJlcXVpcmVkVG9waWNzJiZ0aGlzLnB1YmxpY1Bvc3RDb3VudDx0aGlzLnJlcXVpcmVkUG9zdHM/InRvb19mZXdfdG9waWNzX2FuZF9wb3N0c19ub3RpY2UiOnRoaXMucHVibGljVG9waWNDb3VudDx0aGlzLnJlcXVpcmVkVG9waWNzPyJ0b29fZmV3X3RvcGljc19ub3RpY2UiOiJ0b29fZmV3X3Bvc3RzX25vdGljZSI7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoSTE4bi50KGUse3JlcXVpcmVkVG9waWNzOnRoaXMucmVxdWlyZWRUb3BpY3MscmVxdWlyZWRQb3N0czp0aGlzLnJlcXVpcmVkUG9zdHMsY3VycmVudFRvcGljczp0aGlzLnB1YmxpY1RvcGljQ291bnQsY3VycmVudFBvc3RzOnRoaXMucHVibGljUG9zdENvdW50fSkpfSxmZXRjaExpdmVTdGF0czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbmFibGVkJiZzLmRlZmF1bHQuZmluZCgpLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHQuc2V0KCJwdWJsaWNUb3BpY0NvdW50IixlLmdldCgicHVibGljX3RvcGljX2NvdW50IikpLHQuc2V0KCJwdWJsaWNQb3N0Q291bnQiLGUuZ2V0KCJwdWJsaWNfcG9zdF9jb3VudCIpKSx0LnB1YmxpY1RvcGljQ291bnQ+PXQucmVxdWlyZWRUb3BpY3MmJnQucHVibGljUG9zdENvdW50Pj10LnJlcXVpcmVkUG9zdHMmJnQuc2V0KCJlbmFibGVkIiwhMSkpfSl9fSwic2hvdWxkU2VlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJzaG91bGRTZWUiKSxjKSxvKGMsImhpZGRlbiIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiaGlkZGVuIiksYyksbyhjLCJtZXNzYWdlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJtZXNzYWdlIiksYyksbyhjLCJmZXRjaExpdmVTdGF0cyIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZmV0Y2hMaXZlU3RhdHMiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Nzdi11cGxvYWRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocj0oMCx0LmRlZmF1bHQpKCJ1cGxvYWRpbmciKSxhPSgwLHQuZGVmYXVsdCkoInVwbG9hZGluZyIpLG8obD17dHlwZToiY3N2Iix0YWdOYW1lOiJzcGFuIix1cGxvYWRVcmw6Ii9pbnZpdGVzL3VwbG9hZF9jc3YiLHZhbGlkYXRlVXBsb2FkZWRGaWxlc09wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57Y3N2T25seTohMH19LHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJ1cGxvYWRpbmciKTpJMThuLnQoInVzZXIuaW52aXRlZC5idWxrX2ludml0ZS50ZXh0Iil9LHVwbG9hZEJ1dHRvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhZXx8bnVsbH0sdXBsb2FkRG9uZTpmdW5jdGlvbigpe2Jvb3Rib3guYWxlcnQoSTE4bi50KCJ1c2VyLmludml0ZWQuYnVsa19pbnZpdGUuc3VjY2VzcyIpKX0sdXBsb2FkT3B0aW9uczpmdW5jdGlvbigpe3JldHVybnthdXRvVXBsb2FkOiExfX0sX2luaXQ6KDAscy5vbikoImRpZEluc2VydEVsZW1lbnQiLGZ1bmN0aW9uKCl7JCh0aGlzLmVsZW1lbnQpLm9uKCJmaWxldXBsb2FkYWRkIixmdW5jdGlvbihlLHQpe2Jvb3Rib3guY29uZmlybShJMThuLnQoInVzZXIuaW52aXRlZC5idWxrX2ludml0ZS5jb25maXJtYXRpb25fbWVzc2FnZSIpLEkxOG4udCgiY2FuY2VsIiksSTE4bi50KCJnb19haGVhZCIpLGZ1bmN0aW9uKGUpe3JldHVybiBlP3Quc3VibWl0KCk6dC5hYm9ydCgpfSl9KX0pfSwidXBsb2FkQnV0dG9uVGV4dCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidXBsb2FkQnV0dG9uVGV4dCIpLGwpLG8obCwidXBsb2FkQnV0dG9uRGlzYWJsZWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInVwbG9hZEJ1dHRvbkRpc2FibGVkIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9jdXN0b20taHRtbCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9oZWxwZXJzL2N1c3RvbS1odG1sIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dHJpZ2dlckFwcEV2ZW50Om51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLm5hbWUsdD0oMCxuLmdldEN1c3RvbUhUTUwpKGUpO3Q/KHRoaXMuc2V0KCJodG1sIix0KSx0aGlzLnNldCgibGF5b3V0TmFtZSIsImNvbXBvbmVudHMvY3VzdG9tLWh0bWwtY29udGFpbmVyIikpOigwLGkuZ2V0T3duZXIpKHRoaXMpLmxvb2t1cCgidGVtcGxhdGU6IitlKSYmdGhpcy5zZXQoImxheW91dE5hbWUiLGUpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJ0cnVlIj09PXRoaXMudHJpZ2dlckFwcEV2ZW50JiZ0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJpbnNlcnRlZC1jdXN0b20taHRtbDoiK3RoaXMubmFtZSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwidHJ1ZSI9PT10aGlzLnRyaWdnZXJBcHBFdmVudCYmdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiZGVzdHJveWVkLWN1c3RvbS1odG1sOiIrdGhpcy5uYW1lKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHAobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5kZWZhdWx0KSgiaWNvbiIsInRyYW5zbGF0ZWRMYWJlbCIpLHI9KDAsaS5kZWZhdWx0KSgidGl0bGUiKSxhPSgwLGkuZGVmYXVsdCkoImxhYmVsIikscChsPXtsYXlvdXROYW1lOiJjb21wb25lbnRzL2QtYnV0dG9uIixmb3JtOm51bGwsdHlwZToiYnV0dG9uIix0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZUJpbmRpbmdzOlsiYnRuTGluazo6YnRuIiwiYnRuTGluayIsIm5vVGV4dCIsImJ0blR5cGUiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImZvcm0iLCJkaXNhYmxlZCIsInRyYW5zbGF0ZWRUaXRsZTp0aXRsZSIsInRyYW5zbGF0ZWRMYWJlbDphcmlhLWxhYmVsIiwidGFiaW5kZXgiLCJ0eXBlIl0sYnRuSWNvbjooMCx0Lm5vdEVtcHR5KSgiaWNvbiIpLGJ0bkxpbms6KDAsdC5lcXVhbCkoImRpc3BsYXkiLCJsaW5rIiksYnRuVHlwZTpmdW5jdGlvbihlLHQpe3JldHVybiBlP3Q/ImJ0bi1pY29uLXRleHQiOiJidG4taWNvbiI6dD8iYnRuLXRleHQiOnZvaWQgMH0sbm9UZXh0OigwLHQuZW1wdHkpKCJ0cmFuc2xhdGVkTGFiZWwiKSx0cmFuc2xhdGVkVGl0bGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVkVGl0bGU/dGhpcy5fdHJhbnNsYXRlZFRpdGxlOnRoaXMudGl0bGU/STE4bi50KHRoaXMudGl0bGUpOnZvaWQgMH0sc2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl90cmFuc2xhdGVkVGl0bGU9ZX19LHRyYW5zbGF0ZWRMYWJlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZWRMYWJlbD90aGlzLl90cmFuc2xhdGVkTGFiZWw6dGhpcy5sYWJlbD9JMThuLnQodGhpcy5sYWJlbCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3RyYW5zbGF0ZWRMYWJlbD1lfX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmFjdGlvbjtyZXR1cm4gZSYmKCJzdHJpbmciPT10eXBlb2YgZT90aGlzLnNlbmRBY3Rpb24oImFjdGlvbiIsdGhpcy5hY3Rpb25QYXJhbSk6Im9iamVjdCI9PT0odm9pZCAwPT09ZT8idW5kZWZpbmVkIjpkKGUpKSYmZS52YWx1ZT9lLnZhbHVlKHRoaXMuYWN0aW9uUGFyYW0pOiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmFjdGlvbiYmZSh0aGlzLmFjdGlvblBhcmFtKSksdGhpcy5ocmVmJiZ0aGlzLmhyZWYubGVuZ3RoJiZzLmRlZmF1bHQucm91dGVUbyh0aGlzLmhyZWYpLCExfX0sImJ0blR5cGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImJ0blR5cGUiKSxsKSxwKGwsInRyYW5zbGF0ZWRUaXRsZSIsW3JdLCh1PSh1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHJhbnNsYXRlZFRpdGxlIikpP3UudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiB1fX0pLGwpLHAobCwidHJhbnNsYXRlZExhYmVsIixbYV0sKGM9KGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJ0cmFuc2xhdGVkTGFiZWwiKSk/Yy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kLW1vZGFsLWJvZHkiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsibW9kYWwtYm9keSJdLGZpeGVkOiExLGRpc21pc3NhYmxlOiEwLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiI21vZGFsLWFsZXJ0IikuaGlkZSgpO3ZhciBlPSQodGhpcy5lbGVtZW50KS5jbG9zZXN0KCIuZC1tb2RhbC5maXhlZC1tb2RhbCIpO2UubGVuZ3RoJiYodGhpcy5zZXQoImZpeGVkIiwhMCksZS5tb2RhbCgic2hvdyIpKSwoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX2FmdGVyRmlyc3RSZW5kZXIpLHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbC1ib2R5OmZsYXNoIix0aGlzLCJfZmxhc2giKSx0aGlzLmFwcEV2ZW50cy5vbigibW9kYWwtYm9keTpjbGVhckZsYXNoIix0aGlzLCJfY2xlYXJGbGFzaCIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJtb2RhbC1ib2R5OmZsYXNoIix0aGlzLCJfZmxhc2giKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsLWJvZHk6Y2xlYXJGbGFzaCIsdGhpcywiX2NsZWFyRmxhc2giKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbDpib2R5LWRpc21pc3NlZCIpfSxfYWZ0ZXJGaXJzdFJlbmRlcjpmdW5jdGlvbigpeyF0aGlzLnNpdGUubW9iaWxlVmlldyYmImZhbHNlIiE9PXRoaXMuYXV0b0ZvY3VzJiZ0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKSYmdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTt2YXIgZSx0LG49dGhpcy5tYXhIZWlnaHQ7IW58fDA8KGU9cGFyc2VGbG9hdChuKS8xMDApJiYodD0kKHdpbmRvdykuaGVpZ2h0KCksJCh0aGlzLmVsZW1lbnQpLmNzcygibWF4LWhlaWdodCIsTWF0aC5mbG9vcihlKnQpKyJweCIpKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJtb2RhbDpib2R5LXNob3duIix0aGlzLmdldFByb3BlcnRpZXMoInRpdGxlIiwicmF3VGl0bGUiLCJmaXhlZCIsInN1YnRpdGxlIiwicmF3U3VidGl0bGUiLCJkaXNtaXNzYWJsZSIpKX0sX2NsZWFyRmxhc2g6ZnVuY3Rpb24oKXskKCIjbW9kYWwtYWxlcnQiKS5oaWRlKCkucmVtb3ZlQ2xhc3MoImFsZXJ0LWVycm9yIiwiYWxlcnQtc3VjY2VzcyIpfSxfZmxhc2g6ZnVuY3Rpb24oZSl7dGhpcy5fY2xlYXJGbGFzaCgpLCQoIiNtb2RhbC1hbGVydCIpLmFkZENsYXNzKCJhbGVydCBhbGVydC0iKyhlLm1lc3NhZ2VDbGFzc3x8InN1Y2Nlc3MiKSkuaHRtbChlLnRleHR8fCIiKS5mYWRlSW4oKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1tb2RhbC1jYW5jZWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZC1tb2RhbCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSxuLHQsaSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCx0Lm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLHI9KDAsdC5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHMoYT17Y2xhc3NOYW1lQmluZGluZ3M6WyI6bW9kYWwiLCI6ZC1tb2RhbCIsIm1vZGFsQ2xhc3MiLCJtb2RhbFN0eWxlIiwiaGFzUGFuZWxzIl0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLWtleWJvYXJkIl0sZGlzbWlzc2FibGU6ITAsdGl0bGU6bnVsbCxzdWJ0aXRsZTpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksImlubGluZS1tb2RhbCIhPT10aGlzLm1vZGFsU3R5bGUmJih0aGlzLnNldCgiZWxlbWVudElkIiwiZGlzY291cnNlLW1vZGFsIiksdGhpcy5zZXQoIm1vZGFsU3R5bGUiLCJmaXhlZC1tb2RhbCIpKX0sImRhdGEta2V5Ym9hcmQiOiJmYWxzZSIsc2V0VXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOyQoImh0bWwiKS5vbigia2V5dXAuZGlzY291cnNlLW1vZGFsIixmdW5jdGlvbihlKXswPCQoIiNkaXNjb3Vyc2UtbW9kYWw6dmlzaWJsZSIpLmxlbmd0aCYmKDI3PT09ZS53aGljaCYmdC5kaXNtaXNzYWJsZSYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiAkKCIubW9kYWwtaGVhZGVyIGJ1dHRvbi5tb2RhbC1jbG9zZSIpLmNsaWNrKCl9KSwxMz09PWUud2hpY2gmJnQudHJpZ2dlckNsaWNrT25FbnRlcihlKSYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiAkKCIubW9kYWwtZm9vdGVyIC5idG4tcHJpbWFyeSIpLmNsaWNrKCl9KSl9KSx0aGlzLmFwcEV2ZW50cy5vbigibW9kYWw6Ym9keS1zaG93biIsdGhpcywiX21vZGFsQm9keVNob3duIil9LGNsZWFuVXA6ZnVuY3Rpb24oKXskKCJodG1sIikub2ZmKCJrZXl1cC5kaXNjb3Vyc2UtbW9kYWwiKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsOmJvZHktc2hvd24iLHRoaXMsIl9tb2RhbEJvZHlTaG93biIpfSx0cmlnZ2VyQ2xpY2tPbkVudGVyOmZ1bmN0aW9uKGUpe3JldHVybiEoZS50YXJnZXQuY2xvc2VzdCgiZm9ybSIpfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50JiYiVEVYVEFSRUEiPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ub2RlTmFtZSl9LG1vdXNlRG93bjpmdW5jdGlvbihlKXt2YXIgdDshdGhpcy5kaXNtaXNzYWJsZXx8KCh0PSQoZS50YXJnZXQpKS5oYXNDbGFzcygibW9kYWwtbWlkZGxlLWNvbnRhaW5lciIpfHx0Lmhhc0NsYXNzKCJtb2RhbC1vdXRlci1jb250YWluZXIiKSkmJiQoIi5tb2RhbC1oZWFkZXIgYnV0dG9uLm1vZGFsLWNsb3NlIikuY2xpY2soKX0sX21vZGFsQm9keVNob3duOmZ1bmN0aW9uKGUpe3RoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoZS5maXhlZCYmdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGUudGl0bGU/dGhpcy5zZXQoInRpdGxlIixJMThuLnQoZS50aXRsZSkpOmUucmF3VGl0bGUmJnRoaXMuc2V0KCJ0aXRsZSIsZS5yYXdUaXRsZSksZS5zdWJ0aXRsZT90aGlzLnNldCgic3VidGl0bGUiLEkxOG4udChlLnN1YnRpdGxlKSk6ZS5yYXdTdWJ0aXRsZT90aGlzLnNldCgic3VidGl0bGUiLGUucmF3U3VidGl0bGUpOnRoaXMuc2V0KCJzdWJ0aXRsZSIsbnVsbCksImRpc21pc3NhYmxlImluIGU/dGhpcy5zZXQoImRpc21pc3NhYmxlIixlLmRpc21pc3NhYmxlKTp0aGlzLnNldCgiZGlzbWlzc2FibGUiLCEwKSl9fSwic2V0VXAiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInNldFVwIiksYSkscyhhLCJjbGVhblVwIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJjbGVhblVwIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kLW5hdmlnYXRpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9tb2RlbHMvbmF2LWl0ZW0iLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LGEsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGwsdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZChzLmRlZmF1bHQsKHI9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkiKSxsPSgwLHQuZGVmYXVsdCkoKSx1PSgwLHQuZGVmYXVsdCkoImhhc0RyYWZ0IiksYz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5jYW5fZWRpdCIpLGQ9KDAsdC5kZWZhdWx0KSgiZmlsdGVyVHlwZSIsImNhdGVnb3J5Iiwibm9TdWJjYXRlZ29yaWVzIiksbyhwPXtyb3V0ZXI6KDAsbi5pbmplY3QpKCkscGVyc2lzdGVkUXVlcnlQYXJhbXM6bnVsbCx0YWdOYW1lOiIiLHNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnRoaXMuY3VycmVudFVzZXJ9LGNhdGVnb3JpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKX0sY3JlYXRlVG9waWNMYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gZT8idG9waWMub3Blbl9kcmFmdCI6InRvcGljLmNyZWF0ZSJ9LHNob3dDYXRlZ29yeUVkaXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LG5hdkl0ZW1zOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxzLG89dm9pZCAwLHI9dGhpcy5nZXQoInJvdXRlci5jdXJyZW50Um91dGUucXVlcnlQYXJhbXMiKTtyZXR1cm4gdGhpcy5wZXJzaXN0ZWRRdWVyeVBhcmFtcyYmciYmKGk9T2JqZWN0LmtleXMocikscz1PYmplY3Qua2V5cyh0aGlzLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKSxvPWkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPHMuaW5kZXhPZihlKX0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPXJbdF0sZX0se30pKSxhLmRlZmF1bHQuYnVpbGRMaXN0KHQse2ZpbHRlclR5cGU6ZSxub1N1YmNhdGVnb3JpZXM6bixwZXJzaXN0ZWRRdWVyeVBhcmFtczpvfSl9LGFjdGlvbnM6e2NoYW5nZUNhdGVnb3J5Tm90aWZpY2F0aW9uTGV2ZWw6ZnVuY3Rpb24oZSl7dGhpcy5jYXRlZ29yeS5zZXROb3RpZmljYXRpb24oZSl9LHNlbGVjdENhdGVnb3J5QWRtaW5Ecm9wZG93bkFjdGlvbjpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJjcmVhdGUiOnRoaXMuY3JlYXRlQ2F0ZWdvcnkoKTticmVhaztjYXNlInJlb3JkZXIiOnRoaXMucmVvcmRlckNhdGVnb3JpZXMoKX19fX0sInNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnMiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dDYXRlZ29yeU5vdGlmaWNhdGlvbnMiKSxwKSxvKHAsImNhdGVnb3JpZXMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNhdGVnb3JpZXMiKSxwKSxvKHAsImNyZWF0ZVRvcGljTGFiZWwiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNyZWF0ZVRvcGljTGFiZWwiKSxwKSxvKHAsInNob3dDYXRlZ29yeUVkaXQiLFtjXSwobT0obT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInNob3dDYXRlZ29yeUVkaXQiKSk/bS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIG19fSkscCksbyhwLCJuYXZJdGVtcyIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibmF2SXRlbXMiKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Qtc2VjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsLXRvcCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJzZWN0aW9uIixkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMucGFnZUNsYXNzO2UmJiQoImJvZHkiKS5hZGRDbGFzcyhlKyItcGFnZSIpO3ZhciB0PXRoaXMuYm9keUNsYXNzO3QmJiQoImJvZHkiKS5hZGRDbGFzcyh0KSwiZmFsc2UiIT09dGhpcy5zY3JvbGxUb3AmJigwLG4uc2Nyb2xsVG9wKSgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5wYWdlQ2xhc3M7ZSYmJCgiYm9keSIpLnJlbW92ZUNsYXNzKGUrIi1wYWdlIik7dmFyIHQ9dGhpcy5ib2R5Q2xhc3M7dCYmJCgiYm9keSIpLnJlbW92ZUNsYXNzKHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kYXRlLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxpLHQscyxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvLHIsYSxsLHUsYz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBkKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfWUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChvPSgwLG4uZGVmYXVsdCkoInNpdGUubW9iaWxlVmlldyIpLHI9KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxhPSgwLG4ub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxsPSgwLG4uZGVmYXVsdCkoKSxkKHU9e2NsYXNzTmFtZXM6WyJkLWRhdGUtaW5wdXQiXSxkYXRlOm51bGwsX3BpY2tlcjpudWxsLGlucHV0VHlwZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZGF0ZSI6InRleHQifSxfbG9hZERhdGVQaWNrZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiIyIrdGhpcy5jb250YWluZXJJZCk7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5fbG9hZE5hdGl2ZVBpY2tlcihlKTp0aGlzLl9sb2FkUGlrYWRheVBpY2tlcihlKSx0aGlzLmRhdGUmJnRoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLnNldERhdGUodGhpcy5kYXRlLCEwKX0sZGlkVXBkYXRlQXR0cnM6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9waWNrZXImJiJzdHJpbmciPT10eXBlb2YgZGF0ZSYmKGU9dGhpcy5kYXRlLnNwbGl0KCItIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pLG49KHQ9YyhlLDMpKVswXSxpPXRbMV0scz10WzJdLHRoaXMuX3BpY2tlci5zZXREYXRlKG5ldyBEYXRlKG4saS0xLHMpLCEwKSl9LF9sb2FkUGlrYWRheVBpY2tlcjpmdW5jdGlvbih0KXt2YXIgbj10aGlzOygwLHMuZGVmYXVsdCkoIi9qYXZhc2NyaXB0cy9waWthZGF5LmpzIikudGhlbihmdW5jdGlvbigpeygwLGkubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT17ZmllbGQ6bi5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLXBpY2tlciIpLGNvbnRhaW5lcjp0fHxuLmVsZW1lbnQsYm91bmQ6bnVsbD09PXQsZm9ybWF0OiJMTCIsZmlyc3REYXk6MSxpMThuOntwcmV2aW91c01vbnRoOkkxOG4udCgiZGF0ZXMucHJldmlvdXNfbW9udGgiKSxuZXh0TW9udGg6STE4bi50KCJkYXRlcy5uZXh0X21vbnRoIiksbW9udGhzOm1vbWVudC5tb250aHMoKSx3ZWVrZGF5czptb21lbnQud2Vla2RheXMoKSx3ZWVrZGF5c1Nob3J0Om1vbWVudC53ZWVrZGF5c1Nob3J0KCl9LG9uU2VsZWN0OmZ1bmN0aW9uKGUpe3JldHVybiBuLl9oYW5kbGVTZWxlY3Rpb24oZSl9fTtuLl9waWNrZXI9bmV3IFBpa2FkYXkoT2JqZWN0LmFzc2lnbihlLG4uX29wdHMoKSkpLG4uX3BpY2tlci5zZXREYXRlKG4uZGF0ZSwhMCl9KX0pfSxfbG9hZE5hdGl2ZVBpY2tlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49KGV8fHRoaXMuZWxlbWVudCkucXVlcnlTZWxlY3RvcigiaW5wdXQuZGF0ZS1waWNrZXIiKTtuLm9uY2hhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuX2hhbmRsZVNlbGVjdGlvbihuLnZhbHVlKX0sbi5oaWRlPWZ1bmN0aW9uKCl7fSxuLmRlc3Ryb3k9ZnVuY3Rpb24oKXt9LG4uc2V0RGF0ZT1mdW5jdGlvbihlKXtuLnZhbHVlPWV9LHRoaXMuX3BpY2tlcj1ufSxfaGFuZGxlU2VsZWN0aW9uOmZ1bmN0aW9uKGUpeyF0aGlzLmVsZW1lbnR8fHRoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwodGhpcy5fcGlja2VyJiZ0aGlzLl9waWNrZXIuaGlkZSgpLHRoaXMub25DaGFuZ2UmJnRoaXMub25DaGFuZ2UoZSkpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLmRlc3Ryb3koKSx0aGlzLl9waWNrZXI9bnVsbH0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJkYXRlcy5wbGFjZWhvbGRlciIpfSxfb3B0czpmdW5jdGlvbigpe3JldHVybiBudWxsfSxhY3Rpb25zOntvbklucHV0OmZ1bmN0aW9uKGUpe3RoaXMuX3BpY2tlciYmdGhpcy5fcGlja2VyLnNldERhdGUoZS50YXJnZXQudmFsdWUsITApfX19LCJpbnB1dFR5cGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsImlucHV0VHlwZSIpLHUpLGQodSwiX2xvYWREYXRlUGlja2VyIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfbG9hZERhdGVQaWNrZXIiKSx1KSxkKHUsIl9kZXN0cm95IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfZGVzdHJveSIpLHUpLGQodSwicGxhY2Vob2xkZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInBsYWNlaG9sZGVyIiksdSksdSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kYXRlLXBpY2tlci1mdXR1cmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJjb21wb25lbnRzL2RhdGUtcGlja2VyIixfb3B0czpmdW5jdGlvbigpe3JldHVybntkZWZhdWx0RGF0ZTp0aGlzLmRlZmF1bHREYXRlfHxtb21lbnQoKS5hZGQoMSwiZGF5IikudG9EYXRlKCksc2V0RGVmYXVsdERhdGU6ISF0aGlzLmRlZmF1bHREYXRlLG1pbkRhdGU6dGhpcy5taW5EYXRlfHxtb21lbnQoKS50b0RhdGUoKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXBhc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYXlvdXROYW1lOiJjb21wb25lbnRzL2RhdGUtcGlja2VyIixfb3B0czpmdW5jdGlvbigpe3JldHVybntkZWZhdWx0RGF0ZTptb21lbnQodGhpcy5kZWZhdWx0RGF0ZSwiWVlZWS1NTS1ERCIpLnRvRGF0ZSgpfHxuZXcgRGF0ZSxzZXREZWZhdWx0RGF0ZTohIXRoaXMuZGVmYXVsdERhdGUsbWF4RGF0ZTpuZXcgRGF0ZX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtcGlja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2xvYWQtc2NyaXB0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSxpLHQscyxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZD0iWVlZWS1NTS1ERCI7ZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsbi5kZWZhdWx0KSgic2l0ZS5tb2JpbGVWaWV3IiksYT0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGw9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHU9KDAsbi5kZWZhdWx0KSgpLG8oYz17Y2xhc3NOYW1lczpbImRhdGUtcGlja2VyLXdyYXBwZXIiXSxfcGlja2VyOm51bGwsdmFsdWU6bnVsbCxpbnB1dFR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ImRhdGUiOiJ0ZXh0In0sX2xvYWREYXRlUGlja2VyOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5fbG9hZE5hdGl2ZVBpY2tlcigpOihlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29udGFpbmVySWQpLHRoaXMuX2xvYWRQaWthZGF5UGlja2VyKGUpKX0sX2xvYWRQaWthZGF5UGlja2VyOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7KDAscy5kZWZhdWx0KSgiL2phdmFzY3JpcHRzL3Bpa2FkYXkuanMiKS50aGVuKGZ1bmN0aW9uKCl7KDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlPXtmaWVsZDpuLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGUtcGlja2VyIiksY29udGFpbmVyOnR8fG51bGwsYm91bmQ6bnVsbD09PXQsZm9ybWF0OmQsZmlyc3REYXk6MSxpMThuOntwcmV2aW91c01vbnRoOkkxOG4udCgiZGF0ZXMucHJldmlvdXNfbW9udGgiKSxuZXh0TW9udGg6STE4bi50KCJkYXRlcy5uZXh0X21vbnRoIiksbW9udGhzOm1vbWVudC5tb250aHMoKSx3ZWVrZGF5czptb21lbnQud2Vla2RheXMoKSx3ZWVrZGF5c1Nob3J0Om1vbWVudC53ZWVrZGF5c01pbigpfSxvblNlbGVjdDpmdW5jdGlvbihlKXtyZXR1cm4gbi5faGFuZGxlU2VsZWN0aW9uKGUpfX07bi5fcGlja2VyPW5ldyBQaWthZGF5KE9iamVjdC5hc3NpZ24oZSxuLl9vcHRzKCkpKX0pfSl9LF9sb2FkTmF0aXZlUGlja2VyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dC5kYXRlLXBpY2tlciIpO3Qub25jaGFuZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gZS5faGFuZGxlU2VsZWN0aW9uKHQudmFsdWUpfSx0LmhpZGU9ZnVuY3Rpb24oKXt9LHQuZGVzdHJveT1mdW5jdGlvbigpe30sdGhpcy5fcGlja2VyPXR9LF9oYW5kbGVTZWxlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQ9bW9tZW50KGUpLmZvcm1hdChkKTshdGhpcy5lbGVtZW50fHx0aGlzLmlzRGVzdHJveWluZ3x8dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5vblNlbGVjdCYmdGhpcy5vblNlbGVjdCh0KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9waWNrZXImJih0aGlzLl9waWNrZXIuZGVzdHJveSgpLHRoaXMuX3BpY2tlcj1udWxsKX0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJkYXRlcy5wbGFjZWhvbGRlciIpfSxfb3B0czpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sImlucHV0VHlwZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiaW5wdXRUeXBlIiksYyksbyhjLCJfbG9hZERhdGVQaWNrZXIiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9sb2FkRGF0ZVBpY2tlciIpLGMpLG8oYywiX2Rlc3Ryb3kiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsIl9kZXN0cm95IiksYyksbyhjLCJwbGFjZWhvbGRlciIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywicGxhY2Vob2xkZXIiKSxjKSxjKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RhdGUtdGltZS1pbnB1dC1yYW5nZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbImQtZGF0ZS10aW1lLWlucHV0LXJhbmdlIl0sZnJvbTpudWxsLHRvOm51bGwsb25DaGFuZ2VUbzpudWxsLG9uQ2hhbmdlRnJvbTpudWxsLGN1cnJlbnRQYW5lbDoiZnJvbSIsc2hvd0Zyb21UaW1lOiEwLHNob3dUb1RpbWU6ITAsZXJyb3I6bnVsbCxmcm9tUGFuZWxBY3RpdmU6KDAsdC5lcXVhbCkoImN1cnJlbnRQYW5lbCIsImZyb20iKSx0b1BhbmVsQWN0aXZlOigwLHQuZXF1YWwpKCJjdXJyZW50UGFuZWwiLCJ0byIpLF92YWxpZDpmdW5jdGlvbihlKXtyZXR1cm4hKGUudG8mJmUuZnJvbSYmZS50bzxlLmZyb20pfHxJMThuLnQoImRhdGVfdGltZV9waWNrZXIuZXJyb3JzLnRvX2JlZm9yZV9mcm9tIil9LGFjdGlvbnM6e19vbkNoYW5nZTpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvO3RoaXMub25DaGFuZ2UmJihuPXtmcm9tOnRoaXMuZnJvbSx0bzp0aGlzLnRvfSwoaT17fSlbZS5wcm9wXT10LHM9T2JqZWN0LmFzc2lnbihuLGkpLCEwPT09KG89dGhpcy5fdmFsaWQocykpPyh0aGlzLnNldCgiZXJyb3IiLG51bGwpLHRoaXMub25DaGFuZ2UocykpOnRoaXMuc2V0KCJlcnJvciIsbykpfSxvbkNoYW5nZVBhbmVsOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJjdXJyZW50UGFuZWwiLGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGF0ZS10aW1lLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiZC1kYXRlLXRpbWUtaW5wdXQiXSxkYXRlOm51bGwsc2hvd1RpbWU6ITAsX2hvdXJzOigwLG4uY29tcHV0ZWQpKCJkYXRlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGUmJnRoaXMuc2hvd1RpbWU/dGhpcy5kYXRlLmdldEhvdXJzKCk6bnVsbH0pLF9taW51dGVzOigwLG4uY29tcHV0ZWQpKCJkYXRlIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGUmJnRoaXMuc2hvd1RpbWU/dGhpcy5kYXRlLmdldE1pbnV0ZXMoKTpudWxsfSksYWN0aW9uczp7b25DaGFuZ2VUaW1lOmZ1bmN0aW9uKGUpe3ZhciB0LG4saTt0aGlzLm9uQ2hhbmdlJiYodD10aGlzLmRhdGUuZ2V0RnVsbFllYXIoKSxuPXRoaXMuZGF0ZS5nZXRNb250aCgpLGk9dGhpcy5kYXRlLmdldERhdGUoKSx0aGlzLm9uQ2hhbmdlKG5ldyBEYXRlKHQsbixpLGUuaG91cnMsZS5taW51dGVzKSkpfSxvbkNoYW5nZURhdGU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpO3RoaXMub25DaGFuZ2UmJih0PWUuZ2V0RnVsbFllYXIoKSxuPWUuZ2V0TW9udGgoKSxpPWUuZ2V0RGF0ZSgpLHRoaXMub25DaGFuZ2UobmV3IERhdGUodCxuLGksdGhpcy5faG91cnN8fDAsdGhpcy5fbWludXRlc3x8MCkpKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2tleS12YWx1ZS1zdG9yZSIsImRpc2NvdXJzZS9saWIvZGVza3RvcC1ub3RpZmljYXRpb25zIiwiZGlzY291cnNlL2xpYi9wdXNoLW5vdGlmaWNhdGlvbnMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG0sZjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGg9bmV3IHMuZGVmYXVsdChvLmNvbnRleHQpO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoImlzTm90U3VwcG9ydGVkIiksdT0oMCx0LmRlZmF1bHQpKCJpc05vdFN1cHBvcnRlZCIsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIiksYz0oMCx0LmRlZmF1bHQpKCJpc05vdFN1cHBvcnRlZCIsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIiksZD0oMCx0LmRlZmF1bHQpKCJpc0dyYW50ZWRQZXJtaXNzaW9uIiwibm90aWZpY2F0aW9uc0Rpc2FibGVkIiksYShwPXtjbGFzc05hbWVzOlsiY29udHJvbHMiXSxub3RpZmljYXRpb25zUGVybWlzc2lvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iIjpOb3RpZmljYXRpb24ucGVybWlzc2lvbn0sbm90aWZpY2F0aW9uc0Rpc2FibGVkOntzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGguc2V0SXRlbSgibm90aWZpY2F0aW9ucy1kaXNhYmxlZCIsZSksaC5nZXRJdGVtKCJub3RpZmljYXRpb25zLWRpc2FibGVkIil9LGdldDpmdW5jdGlvbigpe3JldHVybiBoLmdldEl0ZW0oIm5vdGlmaWNhdGlvbnMtZGlzYWJsZWQiKX19LGlzTm90U3VwcG9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXdpbmRvdy5Ob3RpZmljYXRpb259LGlzRGVuaWVkUGVybWlzc2lvbjpmdW5jdGlvbihlLHQpe3JldHVybiFlJiYiZGVuaWVkIj09PXR9LGlzR3JhbnRlZFBlcm1pc3Npb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmImdyYW50ZWQiPT09dH0saXNFbmFibGVkRGVza3RvcDpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmIXR9LGlzRW5hYmxlZFB1c2g6e3NldDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmN1cnJlbnRVc2VyO3JldHVybiEhdCYmKHIua2V5VmFsdWVTdG9yZS5zZXRJdGVtKCgwLHIudXNlclN1YnNjcmlwdGlvbktleSkodCksZSksci5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0oKDAsci51c2VyU3Vic2NyaXB0aW9uS2V5KSh0KSkpfSxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRVc2VyO3JldHVybiEhZSYmci5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0oKDAsci51c2VyU3Vic2NyaXB0aW9uS2V5KShlKSl9fSxpc0VuYWJsZWQ6KDAsbi5vcikoImlzRW5hYmxlZERlc2t0b3AiLCJpc0VuYWJsZWRQdXNoIiksaXNQdXNoTm90aWZpY2F0aW9uc1ByZWZlcnJlZDpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zaXRlLm1vYmlsZVZpZXcmJigwLHIuaXNQdXNoTm90aWZpY2F0aW9uc1N1cHBvcnRlZCkodGhpcy5zaXRlLm1vYmlsZVZpZXcpfSxhY3Rpb25zOntyZWNoZWNrUGVybWlzc2lvbjpmdW5jdGlvbigpe3RoaXMubm90aWZ5UHJvcGVydHlDaGFuZ2UoIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIil9LHR1cm5vZmY6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuaXNFbmFibGVkRGVza3RvcCYmKHRoaXMuc2V0KCJub3RpZmljYXRpb25zRGlzYWJsZWQiLCJkaXNhYmxlZCIpLHRoaXMubm90aWZ5UHJvcGVydHlDaGFuZ2UoIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIikpLHRoaXMuaXNFbmFibGVkUHVzaCYmKDAsci51bnN1YnNjcmliZSkodGhpcy5jdXJyZW50VXNlcixmdW5jdGlvbigpe2Uuc2V0KCJpc0VuYWJsZWRQdXNoIiwiIil9KX0sdHVybm9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmlzUHVzaE5vdGlmaWNhdGlvbnNQcmVmZXJyZWQoKT8oMCxyLnN1YnNjcmliZSkoZnVuY3Rpb24oKXtlLnNldCgiaXNFbmFibGVkUHVzaCIsInN1YnNjcmliZWQiKX0sdGhpcy5zaXRlU2V0dGluZ3MudmFwaWRfcHVibGljX2tleV9ieXRlcyk6KHRoaXMuc2V0KCJub3RpZmljYXRpb25zRGlzYWJsZWQiLCIiKSxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oZnVuY3Rpb24oKXsoMCxvLmNvbmZpcm1Ob3RpZmljYXRpb24pKCksZS5ub3RpZnlQcm9wZXJ0eUNoYW5nZSgibm90aWZpY2F0aW9uc1Blcm1pc3Npb24iKX0pKX19fSwibm90aWZpY2F0aW9uc1Blcm1pc3Npb24iLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uIikscCksYShwLCJub3RpZmljYXRpb25zRGlzYWJsZWQiLFt0LmRlZmF1bHRdLChtPShtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwibm90aWZpY2F0aW9uc0Rpc2FibGVkIikpP20udmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBtfX0pLHApLGEocCwiaXNOb3RTdXBwb3J0ZWQiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaXNOb3RTdXBwb3J0ZWQiKSxwKSxhKHAsImlzRGVuaWVkUGVybWlzc2lvbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiaXNEZW5pZWRQZXJtaXNzaW9uIikscCksYShwLCJpc0dyYW50ZWRQZXJtaXNzaW9uIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpc0dyYW50ZWRQZXJtaXNzaW9uIikscCksYShwLCJpc0VuYWJsZWREZXNrdG9wIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJpc0VuYWJsZWREZXNrdG9wIikscCksYShwLCJpc0VuYWJsZWRQdXNoIixbdC5kZWZhdWx0XSwoZj0oZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImlzRW5hYmxlZFB1c2giKSk/Zi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSkscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToidHIiLGNsYXNzTmFtZUJpbmRpbmdzOlsibWUiXSxtZTooMCxuLnByb3BlcnR5RXF1YWwpKCJpdGVtLnVzZXIuaWQiLCJjdXJyZW50VXNlci5pZCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2RpcmVjdG9yeS10b2dnbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiZmllbGQiLCJsYWJlbEtleSIpLHI9bz17dGFnTmFtZToidGgiLGNsYXNzTmFtZXM6WyJzb3J0YWJsZSJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsidGl0bGUiXSxsYWJlbEtleTpudWxsLGNoZXZyb25JY29uOm51bGwsY29sdW1uSWNvbjpudWxsLHRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8ImRpcmVjdG9yeS4iK3RoaXMuZmllbGQsSTE4bi50KHQrIl9sb25nIix7ZGVmYXVsdFZhbHVlOkkxOG4udCh0KX0pfSx0b2dnbGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5vcmRlcj09PXRoaXMuZmllbGQ/dGhpcy5zZXQoImFzYyIsIXRoaXMuYXNjfHxudWxsKTp0aGlzLnNldFByb3BlcnRpZXMoe29yZGVyOnRoaXMuZmllbGQsYXNjOm51bGx9KX0sdG9nZ2xlQ2hldnJvbjpmdW5jdGlvbigpe3ZhciBlO3RoaXMub3JkZXI9PT10aGlzLmZpZWxkPyhlPSgwLGkuaWNvbkhUTUwpKHRoaXMuYXNjPyJjaGV2cm9uLXVwIjoiY2hldnJvbi1kb3duIiksdGhpcy5zZXQoImNoZXZyb25JY29uIiwoIiIrZSkuaHRtbFNhZmUoKSkpOnRoaXMuc2V0KCJjaGV2cm9uSWNvbiIsbnVsbCl9LGNsaWNrOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0aWVzKCl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRvZ2dsZUNoZXZyb24oKX0saW5pdDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmljb24mJihlPSgwLGkuaWNvbkhUTUwpKHRoaXMuaWNvbiksdGhpcy5zZXQoImNvbHVtbkljb24iLCgiIitlKS5odG1sU2FmZSgpKSl9fSxhPSJ0aXRsZSIsbD1bc10sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sInRpdGxlIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzYWJsZWQtaWNvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIsY2xhc3NOYW1lQmluZGluZ3M6WyI6ZmEtc3RhY2siXX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgiYmFubmVyLmh0bWwiKSxvPSgwLHQuZGVmYXVsdCkoInVzZXIuZGlzbWlzc2VkX2Jhbm5lcl9rZXkiLCJiYW5uZXIua2V5IiwiaGlkZSIpLGkocj17Y29udGVudDpmdW5jdGlvbihlKXt2YXIgdD0kKCI8ZGl2PiIpO3JldHVybiB0LmFwcGVuZChlKSx0LmZpbmQoIltpZF49J2hlYWRpbmctLSddIikucmVtb3ZlQXR0cigiaWQiKSx0Lmh0bWwoKX0sdmlzaWJsZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9ZXx8dGhpcy5rZXlWYWx1ZVN0b3JlLmdldCgiZGlzbWlzc2VkX2Jhbm5lcl9rZXkiKSx0PXQmJnBhcnNlSW50KHQsMTApLGU9ZSYmcGFyc2VJbnQoZSwxMCksIW4mJnQmJmUhPT10fSxhY3Rpb25zOntkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy51c2VyP3RoaXMudXNlci5kaXNtaXNzQmFubmVyKHRoaXMuZ2V0KCJiYW5uZXIua2V5IikpOih0aGlzLnNldCgidmlzaWJsZSIsITEpLHRoaXMua2V5VmFsdWVTdG9yZS5zZXQoe2tleToiZGlzbWlzc2VkX2Jhbm5lcl9rZXkiLHZhbHVlOnRoaXMuZ2V0KCJiYW5uZXIua2V5Iil9KSl9fX0sImNvbnRlbnQiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImNvbnRlbnQiKSxyKSxpKHIsInZpc2libGUiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsInZpc2libGUiKSxyKSxyKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS1saW5rZWQtdGV4dCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGk9KDAsbi5kZWZhdWx0KSgidGV4dCIpLG89cz17dGFnTmFtZToic3BhbiIsdHJhbnNsYXRlZFRleHQ6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gSTE4bi50KGUpfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4iQSI9PT1lLnRhcmdldC50YWdOYW1lLnRvVXBwZXJDYXNlKCkmJnRoaXMuYWN0aW9uKHRoaXMuYWN0aW9uUGFyYW0pLCExfX0scj0idHJhbnNsYXRlZFRleHQiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ0cmFuc2xhdGVkVGV4dCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Rpc2NvdXJzZS10YWctYm91bmQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJ0YWdSZWNvcmQuaWQiKSxvPSgwLHQuZGVmYXVsdCkoInRhZ1JlY29yZC5pZCIpLGkocj17dGFnTmFtZToiYSIsY2xhc3NOYW1lQmluZGluZ3M6WyI6ZGlzY291cnNlLXRhZyIsInN0eWxlIiwidGFnQ2xhc3MiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImhyZWYiXSx0YWdDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4idGFnLSIrZX0saHJlZjpmdW5jdGlvbihlKXtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL3RhZy8iK2UpfX0sInRhZ0NsYXNzIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJ0YWdDbGFzcyIpLHIpLGkociwiaHJlZiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiaHJlZiIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY291cnNlLXRvcGljIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbWl4aW5zL2FkZC1hcmNoZXR5cGUtY2xhc3MiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIiwiZGlzY291cnNlL21peGlucy9zY3JvbGxpbmciLCJkaXNjb3Vyc2UvbWl4aW5zL21vYmlsZS1zY3JvbGwtZGlyZWN0aW9uIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LHMsbixvLGkscixhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiBmKGUpe3ZhciB0PSQoIiNwb3N0XyIrZSsiIC50b3BpYy1ib2R5Iik7dC5hZGRDbGFzcygiaGlnaGxpZ2h0ZWQiKSx0Lm9uKCJhbmltYXRpb25lbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQucmVtb3ZlQ2xhc3MoImhpZ2hsaWdodGVkIil9KX1lLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsYS5kZWZhdWx0LGwuZGVmYXVsdCwoZD0oMCx1Lm9ic2VydmVzKSgiZW50ZXJlZEF0IikscD0oMCx1Lm9ic2VydmVzKSgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiksYyhtPXt1c2VyRmlsdGVyczooMCx0LmFsaWFzKSgidG9waWMudXNlckZpbHRlcnMiKSxjbGFzc05hbWVCaW5kaW5nczpbIm11bHRpU2VsZWN0IiwidG9waWMuYXJjaGV0eXBlIiwidG9waWMuaXNfd2FybmluZyIsInRvcGljLmNhdGVnb3J5LnJlYWRfcmVzdHJpY3RlZDpyZWFkX3Jlc3RyaWN0ZWQiLCJ0b3BpYy5kZWxldGVkOmRlbGV0ZWQtdG9waWMiLCJ0b3BpYy5jYXRlZ29yeUNsYXNzIiwidG9waWMudGFnQ2xhc3NlcyJdLG1lbnVWaXNpYmxlOiEwLFNIT1JUX1BPU1Q6MTIwMCxwb3N0U3RyZWFtOigwLHQuYWxpYXMpKCJ0b3BpYy5wb3N0U3RyZWFtIiksYXJjaGV0eXBlOigwLHQuYWxpYXMpKCJ0b3BpYy5hcmNoZXR5cGUiKSxkb2NrQXQ6MCxfbGFzdFNob3dUb3BpYzpudWxsLG1vYmlsZVNjcm9sbERpcmVjdGlvbjpudWxsLHBhdXNlSGVhZGVyVG9waWNVcGRhdGU6ITEsX2VudGVyZWRUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmVudGVyZWRBdDt0JiZ0aGlzLmxhc3RFbnRlcmVkQXQhPT10JiYoKHRoaXMuX2xhc3RTaG93VG9waWM9bnVsbCxzLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLHRoaXMuc2V0KCJsYXN0RW50ZXJlZEF0Iix0KSl9LF9oaWdobGlnaHRQb3N0OmZ1bmN0aW9uKGUpeygwLHMuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLG51bGwsZixlKX0sX2hpZGVUb3BpY0luSGVhZGVyOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmhpZGUtdG9waWMiKSx0aGlzLl9sYXN0U2hvd1RvcGljPSExfSxfc2hvd1RvcGljSW5IZWFkZXI6ZnVuY3Rpb24oZSl7dGhpcy5wYXVzZUhlYWRlclRvcGljVXBkYXRlfHwodGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnNob3ctdG9waWMiLGUpLHRoaXMuX2xhc3RTaG93VG9waWM9ITApfSxfdXBkYXRlVG9waWM6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKG51bGw9PT1lKXJldHVybiB0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpLHZvaWQodCYmIXRoaXMucGF1c2VIZWFkZXJUb3BpY1VwZGF0ZSYmKHRoaXMucGF1c2VIZWFkZXJUb3BpY1VwZGF0ZT0hMCx0aGlzLl9sYXN0U2hvd1RvcGljPSEwLCgwLHMubGF0ZXIpKGZ1bmN0aW9uKCl7bi5fbGFzdFNob3dUb3BpYz0hMSxuLnBhdXNlSGVhZGVyVG9waWNVcGRhdGU9ITF9LHQpKSk7dmFyIGk9d2luZG93LnBhZ2VZT2Zmc2V0fHwkKCJodG1sIikuc2Nyb2xsVG9wKCk7dGhpcy5fbGFzdFNob3dUb3BpYz10aGlzLnNob3VsZFNob3dUb3BpY0luSGVhZGVyKGUsaSksdGhpcy5fbGFzdFNob3dUb3BpYz90aGlzLl9zaG93VG9waWNJbkhlYWRlcihlKTp0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOiJ0b3BpYy12aWV3In0pLCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLCQodGhpcy5lbGVtZW50KS5vbigiY2xpY2suZGlzY291cnNlLXJlZGlyZWN0IiwiLmNvb2tlZCBhLCBhLnRyYWNrLWxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiByLmRlZmF1bHQudHJhY2tDbGljayhlKX0pLHRoaXMuYXBwRXZlbnRzLm9uKCJkaXNjb3Vyc2U6Zm9jdXMtY2hhbmdlZCIsdGhpcywiZ290Rm9jdXMiKSx0aGlzLmFwcEV2ZW50cy5vbigicG9zdDpoaWdobGlnaHQiLHRoaXMsIl9oaWdobGlnaHRQb3N0IiksdGhpcy5hcHBFdmVudHMub24oImhlYWRlcjp1cGRhdGUtdG9waWMiLHRoaXMsIl91cGRhdGVUb3BpYyIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy51bmJpbmRTY3JvbGxpbmcoInRvcGljLXZpZXciKSwkKHdpbmRvdykudW5iaW5kKCJyZXNpemUuZGlzY291cnNlLW9uLXNjcm9sbCIpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5jb29rZWQgYSwgYS50cmFjay1saW5rIiksdGhpcy5yZXNldEV4YW1pbmVEb2NrQ2FjaGUoKSx0aGlzLl9oaWRlVG9waWNJbkhlYWRlcigpLHRoaXMuYXBwRXZlbnRzLm9mZigiZGlzY291cnNlOmZvY3VzLWNoYW5nZWQiLHRoaXMsImdvdEZvY3VzIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0OmhpZ2hsaWdodCIsdGhpcywiX2hpZ2hsaWdodFBvc3QiKSx0aGlzLmFwcEV2ZW50cy5vZmYoImhlYWRlcjp1cGRhdGUtdG9waWMiLHRoaXMsIl91cGRhdGVUb3BpYyIpfSxnb3RGb2N1czpmdW5jdGlvbihlKXtlJiZ0aGlzLnNjcm9sbGVkKCl9LHJlc2V0RXhhbWluZURvY2tDYWNoZTpmdW5jdGlvbigpe3RoaXMuc2V0KCJkb2NrQXQiLDApfSxzaG91bGRTaG93VG9waWNJbkhlYWRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0PnRoaXMuZG9ja0F0JiYoIXRoaXMuc2l0ZS5tb2JpbGVWaWV3fHwiZG93biI9PT10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbil9LHNjcm9sbGVkOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk7dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fCJpbkRPTSIhPT10aGlzLl9zdGF0ZXx8KGU9d2luZG93LnBhZ2VZT2Zmc2V0fHwkKCJodG1sIikuc2Nyb2xsVG9wKCksMCE9PXRoaXMuZG9ja0F0fHwodD0kKCIjdG9waWMtdGl0bGUiKSkmJjE9PT10Lmxlbmd0aCYmdGhpcy5zZXQoImRvY2tBdCIsdC5vZmZzZXQoKS50b3ApLHRoaXMuc2V0KCJoYXNTY3JvbGxlZCIsMDxlKSxuPXRoaXMudG9waWMsKGk9dGhpcy5zaG91bGRTaG93VG9waWNJbkhlYWRlcihuLGUpKSE9PXRoaXMuX2xhc3RTaG93VG9waWMmJihpP3RoaXMuX3Nob3dUb3BpY0luSGVhZGVyKG4pOm8uZGVmYXVsdC5pc0p1bXBTY2hlZHVsZWQoKXx8MT09PShuLmdldCgicG9zdFN0cmVhbS5sb2FkaW5nTmVhclBvc3QiKXx8MSkmJnRoaXMuX2hpZGVUb3BpY0luSGVhZGVyKCkpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLmhhc1Njcm9sbGVkJiYoMCxzLnRocm90dGxlKSh0aGlzLHRoaXMuY2FsY3VsYXRlRGlyZWN0aW9uLGUsMzAwKSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJ0b3BpYzpzY3JvbGxlZCIsZSkpfSx0b2dnbGVNb2JpbGVIZWFkZXJUb3BpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6dXBkYXRlLXRvcGljIiwiZG93biI9PT10aGlzLm1vYmlsZVNjcm9sbERpcmVjdGlvbj90aGlzLnRvcGljOm51bGwpfX0sIl9lbnRlcmVkVG9waWMiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIl9lbnRlcmVkVG9waWMiKSxtKSxjKG0sInRvZ2dsZU1vYmlsZUhlYWRlclRvcGljIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJ0b2dnbGVNb2JpbGVIZWFkZXJUb3BpYyIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY292ZXJ5LWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VybC1yZWZyZXNoIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbD0iY2F0ZWdvcmllcy1saXN0IjtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQsKG89KDAsaS5vbikoImRpZEluc2VydEVsZW1lbnQiKSxyPSgwLGkub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxzKGE9e2NsYXNzTmFtZXM6WyJjb250ZW50cyJdLGFkZEJvZHlDbGFzczpmdW5jdGlvbigpeyQoImJvZHkiKS5hZGRDbGFzcyhsKX0scmVtb3ZlQm9keUNsYXNzOmZ1bmN0aW9uKCl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKGwpfX0sImFkZEJvZHlDbGFzcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwiYWRkQm9keUNsYXNzIiksYSkscyhhLCJyZW1vdmVCb2R5Q2xhc3MiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInJlbW92ZUJvZHlDbGFzcyIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZGlzY292ZXJ5LXRvcGljcy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2xvYWQtbW9yZSIsImRpc2NvdXJzZS9taXhpbnMvdXJsLXJlZnJlc2giXSxmdW5jdGlvbihlLG4sdCxpLHMsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGEsbCx1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHA9dC5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQscy5kZWZhdWx0LChhPSgwLGkub24pKCJkaWRJbnNlcnRFbGVtZW50IiksbD0oMCxpLm9ic2VydmVzKSgibW9kZWwiKSx1PSgwLGkub2JzZXJ2ZXMpKCJ0b3BpY1RyYWNraW5nU3RhdGUuc3RhdGVzIiksYz0oMCxpLm9ic2VydmVzKSgiaW5jb21pbmdDb3VudCIpLHIoZD17Y2xhc3NOYW1lczpbImNvbnRlbnRzIl0sZXllbGluZVNlbGVjdG9yOiIudG9waWMtbGlzdC1pdGVtIixfcmVhZGp1c3RTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2Vzc2lvbi5nZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIik7ZSYmMDw9ZT8oMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZSsxKX0pOigwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5sb2FkTW9yZVVubGVzc0Z1bGwpfSxfdXBkYXRlVG9waWNzOmZ1bmN0aW9uKCl7dGhpcy50b3BpY1RyYWNraW5nU3RhdGUudXBkYXRlVG9waWNzKHRoaXMubW9kZWwudG9waWNzKX0sX3VwZGF0ZVRpdGxlOmZ1bmN0aW9uKCl7RGlzY291cnNlLnVwZGF0ZUNvbnRleHRDb3VudCh0aGlzLmluY29taW5nQ291bnQpfSxzYXZlU2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24oKXt0aGlzLnNlc3Npb24uc2V0KCJ0b3BpY0xpc3RTY3JvbGxQb3NpdGlvbiIsJCh3aW5kb3cpLnNjcm9sbFRvcCgpKX0sYWN0aW9uczp7bG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO0Rpc2NvdXJzZS51cGRhdGVDb250ZXh0Q291bnQoMCksdGhpcy5tb2RlbC5sb2FkTW9yZSgpLnRoZW4oZnVuY3Rpb24oZSl7KDAsbi5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB0LnNhdmVTY3JvbGxQb3NpdGlvbigpfSksZT8kKHdpbmRvdykuaGVpZ2h0KCk+PSQoZG9jdW1lbnQpLmhlaWdodCgpJiZ0LnNlbmQoImxvYWRNb3JlIik6dC5leWVsaW5lLmZsdXNoUmVzdCgpfSl9fX0sIl9yZWFkanVzdFNjcm9sbFBvc2l0aW9uIixbYSxsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl9yZWFkanVzdFNjcm9sbFBvc2l0aW9uIiksZCkscihkLCJfdXBkYXRlVG9waWNzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJfdXBkYXRlVG9waWNzIiksZCkscihkLCJfdXBkYXRlVGl0bGUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsIl91cGRhdGVUaXRsZSIpLGQpLGQpKTtlLmRlZmF1bHQ9cH0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1nZW5lcmFsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS9oZWxwZXJzL2NhdGVnb3J5LWxpbmsiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSx0LG4saSxzLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHMuYnVpbGRDYXRlZ29yeVBhbmVsKSgiZ2VuZXJhbCIsKGw9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkuaWQiLCJjYXRlZ29yeS5jb2xvciIpLHU9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkucGFyZW50X2NhdGVnb3J5X2lkIiwiY2F0ZWdvcnkuY2F0ZWdvcnlOYW1lIiwiY2F0ZWdvcnkuY29sb3IiLCJjYXRlZ29yeS50ZXh0X2NvbG9yIiksYz0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5pZCIpLGQ9KDAsdC5kZWZhdWx0KSgiY2F0ZWdvcnkuaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiLCJjYXRlZ29yeS5pZCIpLG8ocD17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmZvcmVncm91bmRDb2xvcnM9WyJGRkZGRkYiLCIwMDAwMDAiXX0sY2FuU2VsZWN0UGFyZW50Q2F0ZWdvcnk6KDAsaS5ub3QpKCJjYXRlZ29yeS5pc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSIpLHVuY2F0ZWdvcml6ZWRTaXRlU2V0dGluZ0xpbms6RGlzY291cnNlLmdldFVSTCgiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvYWxsX3Jlc3VsdHM/ZmlsdGVyPWFsbG93X3VuY2F0ZWdvcml6ZWRfdG9waWNzIiksY3VzdG9taXplVGV4dENvbnRlbnRMaW5rOkRpc2NvdXJzZS5nZXRVUkwoIi9hZG1pbi9jdXN0b21pemUvc2l0ZV90ZXh0cz9xPXVuY2F0ZWdvcml6ZWQiKSxiYWNrZ3JvdW5kQ29sb3JzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKTtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MuY2F0ZWdvcnlfY29sb3JzLnNwbGl0KCJ8IikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvVXBwZXJDYXNlKCl9KS5jb25jYXQoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29sb3IudG9VcHBlckNhc2UoKX0pKS51bmlxKCl9LG5vQ2F0ZWdvcnlTdHlsZTpmdW5jdGlvbigpe3JldHVybiJub25lIj09PXRoaXMuc2l0ZVNldHRpbmdzLmNhdGVnb3J5X3N0eWxlfSx1c2VkQmFja2dyb3VuZENvbG9yczpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnNpdGUuZ2V0KCJjYXRlZ29yaWVzTGlzdCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdCYmbi50b1VwcGVyQ2FzZSgpPT09ZS5jb2xvci50b1VwcGVyQ2FzZSgpP251bGw6ZS5jb2xvci50b1VwcGVyQ2FzZSgpfSx0aGlzKS5jb21wYWN0KCl9LHBhcmVudENhdGVnb3JpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0xpc3QiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubGV2ZWwrMTxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9jYXRlZ29yeV9uZXN0aW5nfSl9LGNhdGVnb3J5QmFkZ2VQcmV2aWV3OmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPXRoaXMuY2F0ZWdvcnksbz1hLmRlZmF1bHQuY3JlYXRlKHtuYW1lOnQsY29sb3I6bix0ZXh0X2NvbG9yOmkscGFyZW50X2NhdGVnb3J5X2lkOnBhcnNlSW50KGUsMTApLHJlYWRfcmVzdHJpY3RlZDpzLmdldCgicmVhZF9yZXN0cmljdGVkIil9KTtyZXR1cm4oMCxyLmNhdGVnb3J5QmFkZ2VIVE1MKShvLHtsaW5rOiExfSl9LHN1YkNhdGVnb3JpZXM6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT9udWxsOmEuZGVmYXVsdC5saXN0KCkuZmlsdGVyQnkoInBhcmVudF9jYXRlZ29yeV9pZCIsZSl9LHNob3dEZXNjcmlwdGlvbjpmdW5jdGlvbihlLHQpe3JldHVybiFlJiZ0fSxhY3Rpb25zOntzaG93Q2F0ZWdvcnlUb3BpYzpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cub3Blbih0aGlzLmdldCgiY2F0ZWdvcnkudG9waWNfdXJsIiksIl9ibGFuayIpLmZvY3VzKCksITF9fX0sImJhY2tncm91bmRDb2xvcnMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiYmFja2dyb3VuZENvbG9ycyIpLHApLG8ocCwibm9DYXRlZ29yeVN0eWxlIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vQ2F0ZWdvcnlTdHlsZSIpLHApLG8ocCwidXNlZEJhY2tncm91bmRDb2xvcnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInVzZWRCYWNrZ3JvdW5kQ29sb3JzIikscCksbyhwLCJwYXJlbnRDYXRlZ29yaWVzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsInBhcmVudENhdGVnb3JpZXMiKSxwKSxvKHAsImNhdGVnb3J5QmFkZ2VQcmV2aWV3IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjYXRlZ29yeUJhZGdlUHJldmlldyIpLHApLG8ocCwic3ViQ2F0ZWdvcmllcyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic3ViQ2F0ZWdvcmllcyIpLHApLG8ocCwic2hvd0Rlc2NyaXB0aW9uIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93RGVzY3JpcHRpb24iKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktaW1hZ2VzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsbix0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuYnVpbGRDYXRlZ29yeVBhbmVsKSgiaW1hZ2VzIikuZXh0ZW5kKChvPSgwLGkuZGVmYXVsdCkoImNhdGVnb3J5LnVwbG9hZGVkX2JhY2tncm91bmQudXJsIikscj0oMCxpLmRlZmF1bHQpKCJjYXRlZ29yeS51cGxvYWRlZF9sb2dvLnVybCIpLHMoYT17YmFja2dyb3VuZEltYWdlVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIn0sbG9nb0ltYWdlVXJsOmZ1bmN0aW9uKGUpe3JldHVybiBlfHwiIn0sYWN0aW9uczp7bG9nb1VwbG9hZERvbmU6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0RnJvbVVwbG9hZCgiY2F0ZWdvcnkudXBsb2FkZWRfbG9nbyIsZSl9LGxvZ29VcGxvYWREZWxldGVkOmZ1bmN0aW9uKCl7dGhpcy5fZGVsZXRlVXBsb2FkKCJjYXRlZ29yeS51cGxvYWRlZF9sb2dvIil9LGJhY2tncm91bmRVcGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuX3NldEZyb21VcGxvYWQoImNhdGVnb3J5LnVwbG9hZGVkX2JhY2tncm91bmQiLGUpfSxiYWNrZ3JvdW5kVXBsb2FkRGVsZXRlZDpmdW5jdGlvbigpe3RoaXMuX2RlbGV0ZVVwbG9hZCgiY2F0ZWdvcnkudXBsb2FkZWRfYmFja2dyb3VuZCIpfX0sX2RlbGV0ZVVwbG9hZDpmdW5jdGlvbihlKXt0aGlzLnNldChlLG4uZGVmYXVsdC5jcmVhdGUoe2lkOm51bGwsdXJsOm51bGx9KSl9LF9zZXRGcm9tVXBsb2FkOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZXQoZSxuLmRlZmF1bHQuY3JlYXRlKHt1cmw6dC51cmwsaWQ6dC5pZH0pKX19LCJiYWNrZ3JvdW5kSW1hZ2VVcmwiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImJhY2tncm91bmRJbWFnZVVybCIpLGEpLHMoYSwibG9nb0ltYWdlVXJsIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJsb2dvSW1hZ2VVcmwiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2VjdXJpdHkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktcGFuZWwiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuYnVpbGRDYXRlZ29yeVBhbmVsKSgic2VjdXJpdHkiLChvPSgwLGkub24pKCJpbml0Iikscj0oMCxpLm9uKSgiaW5pdCIpLHMoYT17ZWRpdGluZ1Blcm1pc3Npb25zOiExLHNlbGVjdGVkR3JvdXA6bnVsbCxzZWxlY3RlZFBlcm1pc3Npb246bnVsbCxzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0OiExLGludGVyYWN0ZWRXaXRoRHJvcGRvd25zOiExLF9zZXR1cDpmdW5jdGlvbigpe3RoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWRHcm91cDp0aGlzLmdldCgiY2F0ZWdvcnkuYXZhaWxhYmxlR3JvdXBzLmZpcnN0T2JqZWN0Iiksc2VsZWN0ZWRQZXJtaXNzaW9uOnRoaXMuZ2V0KCJjYXRlZ29yeS5hdmFpbGFibGVQZXJtaXNzaW9ucy5maXJzdE9iamVjdC5pZCIpfSl9LF9yZWdpc3RlclZhbGlkYXRvcjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5yZWdpc3RlclZhbGlkYXRvcihmdW5jdGlvbigpe2lmKCFlLnNob3dQZW5kaW5nR3JvdXBDaGFuZ2VzQWxlcnQmJmUuaW50ZXJhY3RlZFdpdGhEcm9wZG93bnMmJmUuYWN0aXZlVGFiKXJldHVybiBlLnNldCgic2hvd1BlbmRpbmdHcm91cENoYW5nZXNBbGVydCIsITApLCEwfSl9LGFjdGlvbnM6e29uU2VsZWN0R3JvdXA6ZnVuY3Rpb24oZSl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtpbnRlcmFjdGVkV2l0aERyb3Bkb3duczohMCxzZWxlY3RlZEdyb3VwOmV9KX0sb25TZWxlY3RQZXJtaXNzaW9uOmZ1bmN0aW9uKGUpe3RoaXMuc2V0UHJvcGVydGllcyh7aW50ZXJhY3RlZFdpdGhEcm9wZG93bnM6ITAsc2VsZWN0ZWRQZXJtaXNzaW9uOmV9KX0sZWRpdFBlcm1pc3Npb25zOmZ1bmN0aW9uKCl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5zZXQoImVkaXRpbmdQZXJtaXNzaW9ucyIsITApfSxhZGRQZXJtaXNzaW9uOmZ1bmN0aW9uKGUsdCl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5jYXRlZ29yeS5hZGRQZXJtaXNzaW9uKHtncm91cF9uYW1lOmUrIiIscGVybWlzc2lvbjpuLmRlZmF1bHQuY3JlYXRlKHtpZDpwYXJzZUludCh0LDEwKX0pfSksdGhpcy5zZXRQcm9wZXJ0aWVzKHtzZWxlY3RlZEdyb3VwOnRoaXMuZ2V0KCJjYXRlZ29yeS5hdmFpbGFibGVHcm91cHMuZmlyc3RPYmplY3QiKSxzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0OiExLGludGVyYWN0ZWRXaXRoRHJvcGRvd25zOiExfSl9LHJlbW92ZVBlcm1pc3Npb246ZnVuY3Rpb24oZSl7dGhpcy5nZXQoImNhdGVnb3J5LmlzX3NwZWNpYWwiKXx8dGhpcy5jYXRlZ29yeS5yZW1vdmVQZXJtaXNzaW9uKGUpfX19LCJfc2V0dXAiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9zZXR1cCIpLGEpLHMoYSwiX3JlZ2lzdGVyVmFsaWRhdG9yIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJfcmVnaXN0ZXJWYWxpZGF0b3IiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS9jb21wb25lbnRzL2NvbmNlcm5zL2NhdGVnb3J5LXNlYXJjaC1wcmlvcml0aWVzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRDYXRlZ29yeVNvcnRDcml0ZXJpYT1mdW5jdGlvbihlKXtkLnB1c2goZSl9O3ZhciBhLGwsdT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTtmdW5jdGlvbiBjKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBkPVtdO2UuZGVmYXVsdD0oMCxzLmJ1aWxkQ2F0ZWdvcnlQYW5lbCkoInNldHRpbmdzIiwoYT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5pc1BhcmVudCIsImNhdGVnb3J5LnBhcmVudF9jYXRlZ29yeV9pZCIpLGMobD17ZW1haWxJbkVuYWJsZWQ6KDAsaS5zZXR0aW5nKSgiZW1haWxfaW4iKSxzaG93UG9zaXRpb25JbnB1dDooMCxpLnNldHRpbmcpKCJmaXhlZF9jYXRlZ29yeV9wb3NpdGlvbnMiKSxpc1BhcmVudENhdGVnb3J5OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fCF0fSxzaG93U3ViY2F0ZWdvcnlMaXN0U3R5bGU6KDAsbi5hbmQpKCJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiLCJpc1BhcmVudENhdGVnb3J5IiksaXNEZWZhdWx0U29ydE9yZGVyOigwLG4uZW1wdHkpKCJjYXRlZ29yeS5zb3J0X29yZGVyIiksYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuW3tuYW1lOkkxOG4udCgiY2F0ZWdvcnkuc3ViY2F0ZWdvcnlfbGlzdF9zdHlsZXMucm93cyIpLHZhbHVlOiJyb3dzIn0se25hbWU6STE4bi50KCJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlcy5yb3dzX3dpdGhfZmVhdHVyZWRfdG9waWNzIiksdmFsdWU6InJvd3Nfd2l0aF9mZWF0dXJlZF90b3BpY3MifSx7bmFtZTpJMThuLnQoImNhdGVnb3J5LnN1YmNhdGVnb3J5X2xpc3Rfc3R5bGVzLmJveGVzIiksdmFsdWU6ImJveGVzIn0se25hbWU6STE4bi50KCJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlcy5ib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljcyIpLHZhbHVlOiJib3hlc193aXRoX2ZlYXR1cmVkX3RvcGljcyJ9XX0sZ3JvdXBGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5maW5kQWxsKHt0ZXJtOmUsaWdub3JlX2F1dG9tYXRpYzohMH0pfSxhdmFpbGFibGVWaWV3czpmdW5jdGlvbigpe3JldHVyblt7bmFtZTpJMThuLnQoImZpbHRlcnMubGF0ZXN0LnRpdGxlIiksdmFsdWU6ImxhdGVzdCJ9LHtuYW1lOkkxOG4udCgiZmlsdGVycy50b3AudGl0bGUiKSx2YWx1ZToidG9wIn1dfSxhdmFpbGFibGVUb3BQZXJpb2RzOmZ1bmN0aW9uKCl7cmV0dXJuWyJhbGwiLCJ5ZWFybHkiLCJxdWFydGVybHkiLCJtb250aGx5Iiwid2Vla2x5IiwiZGFpbHkiXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6STE4bi50KCJmaWx0ZXJzLnRvcC4iK2UrIi50aXRsZSIpLHZhbHVlOmV9fSl9LHNlYXJjaFByaW9yaXRpZXNPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHM9W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKG8uc2VhcmNoUHJpb3JpdGllcykuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD11KGUsMiksbj10WzBdLGk9dFsxXTtzLnB1c2goe25hbWU6STE4bi50KCJjYXRlZ29yeS5zZWFyY2hfcHJpb3JpdHkub3B0aW9ucy4iK24pLHZhbHVlOml9KX0pLHN9LGF2YWlsYWJsZVNvcnRzOmZ1bmN0aW9uKCl7cmV0dXJuWyJsaWtlcyIsIm9wX2xpa2VzIiwidmlld3MiLCJwb3N0cyIsImFjdGl2aXR5IiwicG9zdGVycyIsImNhdGVnb3J5IiwiY3JlYXRlZCJdLmNvbmNhdChkKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6STE4bi50KCJjYXRlZ29yeS5zb3J0X29wdGlvbnMuIitlKSx2YWx1ZTplfX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5uYW1lLmxvY2FsZUNvbXBhcmUodC5uYW1lKX0pfSxzb3J0QXNjZW5kaW5nT3B0aW9uczpmdW5jdGlvbigpe3JldHVyblt7bmFtZTpJMThuLnQoImNhdGVnb3J5LnNvcnRfYXNjZW5kaW5nIiksdmFsdWU6InRydWUifSx7bmFtZTpJMThuLnQoImNhdGVnb3J5LnNvcnRfZGVzY2VuZGluZyIpLHZhbHVlOiJmYWxzZSJ9XX19LCJpc1BhcmVudENhdGVnb3J5IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJpc1BhcmVudENhdGVnb3J5IiksbCksYyhsLCJhdmFpbGFibGVTdWJjYXRlZ29yeUxpc3RTdHlsZXMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzIiksbCksYyhsLCJhdmFpbGFibGVWaWV3cyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhdmFpbGFibGVWaWV3cyIpLGwpLGMobCwiYXZhaWxhYmxlVG9wUGVyaW9kcyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhdmFpbGFibGVUb3BQZXJpb2RzIiksbCksYyhsLCJzZWFyY2hQcmlvcml0aWVzT3B0aW9ucyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJzZWFyY2hQcmlvcml0aWVzT3B0aW9ucyIpLGwpLGMobCwiYXZhaWxhYmxlU29ydHMiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiYXZhaWxhYmxlU29ydHMiKSxsKSxjKGwsInNvcnRBc2NlbmRpbmdPcHRpb25zIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNvcnRBc2NlbmRpbmdPcHRpb25zIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXRhYiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9jb21wdXRlZCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8obixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJ0YWIiKSxhPSgwLHQuZGVmYXVsdCkoInRhYiIpLG8obD17dGFnTmFtZToibGkiLGNsYXNzTmFtZUJpbmRpbmdzOlsiYWN0aXZlIiwidGFiQ2xhc3NOYW1lIl0sdGFiQ2xhc3NOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiJlZGl0LWNhdGVnb3J5LSIrZX0sYWN0aXZlOigwLHMucHJvcGVydHlFcXVhbCkoInNlbGVjdGVkVGFiIiwidGFiIiksdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgiY2F0ZWdvcnkuIitlLnJlcGxhY2UoIi0iLCJfIikpfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fYWRkVG9Db2xsZWN0aW9uKX0sX2FkZFRvQ29sbGVjdGlvbjpmdW5jdGlvbigpe3RoaXMucGFuZWxzLmFkZE9iamVjdCh0aGlzLnRhYkNsYXNzTmFtZSl9LF9yZXNldE1vZGFsU2Nyb2xsU3RhdGU6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuZWxlbWVudCkucGFyZW50cygiI2Rpc2NvdXJzZS1tb2RhbCIpLmZpbmQoIi5tb2RhbC1ib2R5Iik7MT09PWUubGVuZ3RoJiZlLnNjcm9sbFRvcCgwKX0sYWN0aW9uczp7c2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoInNlbGVjdGVkVGFiIix0aGlzLnRhYiksdGhpcy5fcmVzZXRNb2RhbFNjcm9sbFN0YXRlKCl9fX0sInRhYkNsYXNzTmFtZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGFiQ2xhc3NOYW1lIiksbCksbyhsLCJ0aXRsZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGl0bGUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFncyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktcGFuZWwiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5idWlsZENhdGVnb3J5UGFuZWwpKCJ0YWdzIix7YWxsb3dlZFRhZ3NFbXB0eTooMCx0LmVtcHR5KSgiY2F0ZWdvcnkuYWxsb3dlZF90YWdzIiksYWxsb3dlZFRhZ0dyb3Vwc0VtcHR5OigwLHQuZW1wdHkpKCJjYXRlZ29yeS5hbGxvd2VkX3RhZ19ncm91cHMiKSxkaXNhYmxlQWxsb3dHbG9iYWxUYWdzOigwLHQuYW5kKSgiYWxsb3dlZFRhZ3NFbXB0eSIsImFsbG93ZWRUYWdHcm91cHNFbXB0eSIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkLHA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCxuLmJ1aWxkQ2F0ZWdvcnlQYW5lbCkoInRvcGljLXRlbXBsYXRlIiwocz0oMCxpLm9ic2VydmVzKSgiYWN0aXZlVGFiIiksYT1vPXtfYWN0aXZlVGFiQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hY3RpdmVUYWImJigwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZC1lZGl0b3ItaW5wdXQiKS5mb2N1cygpfSl9fSxsPSJfYWN0aXZlVGFiQ2hhbmdlZCIsdT1bc10scj0ocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIl9hY3RpdmVUYWJDaGFuZ2VkIikpP3IudmFsdWU6dm9pZCAwLGM9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSxkPW8scD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9lZGl0LXRvcGljLXRpbWVyLWZvcm0iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZWRpdC10b3BpYy10aW1lciJdLGZ1bmN0aW9uKGUsaSx0LG4scyxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXMuZGVmYXVsdC5leHRlbmQoKGw9KDAsby5kZWZhdWx0KSgidG9waWNUaW1lci51cGRhdGVUaW1lIiwicHVibGlzaFRvQ2F0ZWdvcnkiLCJ0b3BpY1RpbWVyLmNhdGVnb3J5X2lkIiksdT0oMCxvLmRlZmF1bHQpKCJ0b3BpYy52aXNpYmxlIiksYz0oMCxvLm9uKSgiaW5pdCIpLGQ9KDAsby5vYnNlcnZlcykoInRvcGljVGltZXIiLCJ0b3BpY1RpbWVyLmV4ZWN1dGVfYXQiLCJ0b3BpY1RpbWVyLmR1cmF0aW9uIikscD0oMCxvLm9ic2VydmVzKSgic2VsZWN0aW9uIiksYShtPXtzZWxlY3Rpb246KDAsdC5yZWFkT25seSkoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiKSxhdXRvT3BlbjooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLk9QRU5fU1RBVFVTX1RZUEUpLGF1dG9DbG9zZTooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLkNMT1NFX1NUQVRVU19UWVBFKSxhdXRvRGVsZXRlOigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLHIuREVMRVRFX1NUQVRVU19UWVBFKSxhdXRvQnVtcDooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLkJVTVBfVFlQRSkscHVibGlzaFRvQ2F0ZWdvcnk6KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsci5QVUJMSVNIX1RPX0NBVEVHT1JZX1NUQVRVU19UWVBFKSxyZW1pbmRlcjooMCx0LmVxdWFsKSgic2VsZWN0aW9uIixyLlJFTUlOREVSX1RZUEUpLHNob3dUaW1lT25seTooMCx0Lm9yKSgiYXV0b09wZW4iLCJhdXRvRGVsZXRlIiwicmVtaW5kZXIiLCJhdXRvQnVtcCIpLHNhdmVEaXNhYmxlZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuKDAsaS5pc0VtcHR5KShlKXx8dCYmIW59LGV4Y2x1ZGVDYXRlZ29yeUlkOmZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5jYXRlZ29yeV9pZCIpfSxfc2V0VXBkYXRlVGltZTpmdW5jdGlvbigpe3ZhciBlLHQ9bnVsbCxuPXRoaXMuZ2V0KCJ0b3BpY1RpbWVyLmV4ZWN1dGVfYXQiKTtuJiZ0aGlzLmdldCgidG9waWNUaW1lci5iYXNlZF9vbl9sYXN0X3Bvc3QiKT90PXRoaXMuZ2V0KCJ0b3BpY1RpbWVyLmR1cmF0aW9uIik6IW58fChlPW1vbWVudChuKSk+bW9tZW50KCkmJih0PWUuZm9ybWF0KCJZWVlZLU1NLUREIEhIOm1tIikpLHRoaXMuc2V0KCJ0b3BpY1RpbWVyLnVwZGF0ZVRpbWUiLHQpfSxfdXBkYXRlQmFzZWRPbkxhc3RQb3N0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmF1dG9DbG9zZXx8KDAsbi5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe2Uuc2V0KCJ0b3BpY1RpbWVyLmJhc2VkX29uX2xhc3RfcG9zdCIsITEpfSl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4uc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXtlLmdldCgidG9waWNUaW1lci5zdGF0dXNfdHlwZSIpfHxlLnNldCgidG9waWNUaW1lci5zdGF0dXNfdHlwZSIsZS5nZXQoInRpbWVyVHlwZXMuZmlyc3RPYmplY3QuaWQiKSl9KX0sYWN0aW9uczp7b25DaGFuZ2VUaW1lclR5cGU6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoInRvcGljVGltZXIuc3RhdHVzX3R5cGUiLGUpfX19LCJzYXZlRGlzYWJsZWQiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNhdmVEaXNhYmxlZCIpLG0pLGEobSwiZXhjbHVkZUNhdGVnb3J5SWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImV4Y2x1ZGVDYXRlZ29yeUlkIiksbSksYShtLCJfc2V0VXBkYXRlVGltZSIsW2MsZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0VXBkYXRlVGltZSIpLG0pLGEobSwiX3VwZGF0ZUJhc2VkT25MYXN0UG9zdCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3VwZGF0ZUJhc2VkT25MYXN0UG9zdCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZW1vamktcGlja2VyIixbImV4cG9ydHMiLCJAZW1iZXIvc2VydmljZSIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3Jhdy10ZW1wbGF0ZXMiLCJkaXNjb3Vyc2UvbGliL3RleHQiLCJwcmV0dHktdGV4dC9lbW9qaSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsbixpLGEsbCxvLHMsZil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxoLGIsZyx2O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgeT1FbWJlci5ydW4sdz1fLmtleXMoKDAsby5leHRlbmRlZEVtb2ppTGlzdCkoKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKCh1PSgwLGkub24pKCJpbml0IiksYz0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IiksZD0oMCxpLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLHA9KDAsaS5vbikoImRpZFVwZGF0ZUF0dHJzIiksbT0oMCxpLm9ic2VydmVzKSgiZmlsdGVyIiksaD0oMCxpLm9ic2VydmVzKSgic2VsZWN0ZWREaXZlcnNpdHkiKSxiPSgwLGkub2JzZXJ2ZXMpKCJyZWNlbnRFbW9qaXMiKSxnPSgwLGkub24pKCJ3aWxsRGVzdHJveUVsZW1lbnQiKSxyKHY9e2F1dG9tYXRpY1Bvc2l0aW9uaW5nOiEwLGVtb2ppU3RvcmU6KDAsdC5pbmplY3QpKCJlbW9qaS1zdG9yZSIpLGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fdW5iaW5kRXZlbnRzKCksdGhpcy4kcGlja2VyLmNzcyh7d2lkdGg6IiIsbGVmdDoiIixib3R0b206IiIsZGlzcGxheToibm9uZSJ9KS5lbXB0eSgpLHRoaXMuJG1vZGFsLnJlbW92ZUNsYXNzKCJmYWRlSW4iKSxjbGVhclRpbWVvdXQodGhpcy5fY2hlY2tUaW1lb3V0KX0sc2hvdzpmdW5jdGlvbigpe3ZhciBlPSgwLGEuZmluZFJhd1RlbXBsYXRlKSgiZW1vamktcGlja2VyIikoe2N1c3RvbUVtb2ppczp3fSk7dGhpcy4kcGlja2VyLmh0bWwoZSksdGhpcy4kZmlsdGVyPXRoaXMuJHBpY2tlci5maW5kKCIuZmlsdGVyIiksdGhpcy4kcmVzdWx0cz10aGlzLiRwaWNrZXIuZmluZCgiLnJlc3VsdHMiKSx0aGlzLiRsaXN0PXRoaXMuJHBpY2tlci5maW5kKCIubGlzdCIpLHRoaXMuc2V0UHJvcGVydGllcyh7c2VsZWN0ZWREaXZlcnNpdHk6dGhpcy5lbW9qaVN0b3JlLmRpdmVyc2l0eSxyZWNlbnRFbW9qaXM6dGhpcy5lbW9qaVN0b3JlLmZhdm9yaXRlc30pLHkuc2NoZWR1bGVPbmNlKCJhZnRlclJlbmRlciIsdGhpcyxmdW5jdGlvbigpe3RoaXMuX2JpbmRFdmVudHMoKSx0aGlzLl9sb2FkQ2F0ZWdvcmllc0Vtb2ppcygpLHRoaXMuX3Bvc2l0aW9uUGlja2VyKCksdGhpcy5fc2Nyb2xsVG8oKSx0aGlzLl91cGRhdGVTZWxlY3RlZERpdmVyc2l0eSgpLHRoaXMuX2NoZWNrVmlzaWJsZVNlY3Rpb24oITApLHRoaXMuc2l0ZS5pc01vYmlsZURldmljZSYmIXRoaXMuaXNFZGl0b3JGb2N1c2VkfHwoMCxzLnNhZmFyaUhhY2tzRGlzYWJsZWQpKCl8fHRoaXMuJGZpbHRlci5maW5kKCJpbnB1dFtuYW1lPSdmaWx0ZXInXSIpLmZvY3VzKCl9KX0sX3NldEluaXRpYWxWYWx1ZXM6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja1RpbWVvdXQ9bnVsbCx0aGlzLnNjcm9sbFBvc2l0aW9uPTAsdGhpcy4kdmlzaWJsZVNlY3Rpb25zPVtdfSxfdW5iaW5kR2xvYmFsRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5hcHBFdmVudHMub2ZmKCJlbW9qaS1waWNrZXI6Y2xvc2UiLHRoaXMsIl9jbG9zZUVtb2ppUGlja2VyIil9LF9jbG9zZUVtb2ppUGlja2VyOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImFjdGl2ZSIsITEpfSxfc2V0dXA6ZnVuY3Rpb24oKXt0aGlzLiRwaWNrZXI9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmVtb2ppLXBpY2tlciIpKSx0aGlzLiRtb2RhbD0kKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZW1vamktcGlja2VyLW1vZGFsIikpLHRoaXMuYXBwRXZlbnRzLm9uKCJlbW9qaS1waWNrZXI6Y2xvc2UiLHRoaXMsIl9jbG9zZUVtb2ppUGlja2VyIil9LF9zZXRTdGF0ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlP3RoaXMuc2hvdygpOnRoaXMuY2xvc2UoKX0sZmlsdGVyQ2hhbmdlZDpmdW5jdGlvbigpe3RoaXMuJGZpbHRlci5maW5kKCIuY2xlYXItZmlsdGVyIikudG9nZ2xlKCFfLmlzRW1wdHkodGhpcy5maWx0ZXIpKTt2YXIgZT10aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2U/NDAwOjI1MDt5LmRlYm91bmNlKHRoaXMsdGhpcy5fZmlsdGVyRW1vamlzTGlzdCxlKX0sc2VsZWN0ZWREaXZlcnNpdHlDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLmVtb2ppU3RvcmUuZGl2ZXJzaXR5PXRoaXMuc2VsZWN0ZWREaXZlcnNpdHksJC5lYWNoKHRoaXMuJGxpc3QuZmluZCgiLmVtb2ppW2RhdGEtbG9hZGVkPScxJ10uZGl2ZXJzaXR5IiksZnVuY3Rpb24oZSx0KXskKHQpLmNzcygiYmFja2dyb3VuZC1pbWFnZSIsIiIpLnJlbW92ZUF0dHIoImRhdGEtbG9hZGVkIil9KSwiIiE9PXRoaXMuZmlsdGVyJiYkLmVhY2godGhpcy4kcmVzdWx0cy5maW5kKCIuZW1vamkuZGl2ZXJzaXR5IiksZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5fc2V0QnV0dG9uQmFja2dyb3VuZCh0LCEwKX0pLHRoaXMuX3VwZGF0ZVNlbGVjdGVkRGl2ZXJzaXR5KCksdGhpcy5fY2hlY2tWaXNpYmxlU2VjdGlvbighMCl9LF9yZWNlbnRFbW9qaXNDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zY3JvbGxQb3NpdGlvbix0PXRoaXMuJGxpc3QuZmluZCgiLnNlY3Rpb25bZGF0YS1zZWN0aW9uPSdyZWNlbnQnXSIpLG49dC5maW5kKCIuc2VjdGlvbi1ncm91cCIpLGk9dGhpcy4kcGlja2VyLmZpbmQoIi5jYXRlZ29yeS1pY29uIGJ1dHRvbltkYXRhLXNlY3Rpb249J3JlY2VudCddIikucGFyZW50KCkscz0haS5pcygiOnZpc2libGUiKTtfLmlzRW1wdHkodGhpcy5yZWNlbnRFbW9qaXMpPyhpLmhpZGUoKSx0LmNzcygiaGVpZ2h0IiwwKS5oaWRlKCkpOihpLnNob3coKSx0LmNzcygiaGVpZ2h0IiwiYXV0byIpLnNob3coKSk7dmFyIG89dGhpcy5yZWNlbnRFbW9qaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybntjb2RlOmUsc3JjOigwLGwuZW1vamlVcmxGb3IpKGUpfX0pLHI9KDAsYS5maW5kUmF3VGVtcGxhdGUpKCJlbW9qaS1waWNrZXItcmVjZW50Iikoe3JlY2VudEVtb2ppczpvfSk7bi5odG1sKHIpLHMmJnRoaXMuJGxpc3Quc2Nyb2xsVG9wKGUrdC5vdXRlckhlaWdodCgpKSx0aGlzLl9iaW5kSG92ZXIobil9LF91cGRhdGVTZWxlY3RlZERpdmVyc2l0eTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJHBpY2tlci5maW5kKCIuZGl2ZXJzaXR5LXBpY2tlciIpO2UuZmluZCgiLmRpdmVyc2l0eS1zY2FsZSIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGUuZmluZCgnLmRpdmVyc2l0eS1zY2FsZVtkYXRhLWxldmVsPSInK3RoaXMuc2VsZWN0ZWREaXZlcnNpdHkrJyJdJykuYWRkQ2xhc3MoInNlbGVjdGVkIil9LF9sb2FkQ2F0ZWdvcmllc0Vtb2ppczpmdW5jdGlvbigpe3ZhciBzPXRoaXM7JC5lYWNoKHRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcmllcy1jb2x1bW4gYnV0dG9uLmVtb2ppIiksZnVuY3Rpb24oZSx0KXt2YXIgbj0kKHQpLGk9cy5fY29kZVdpdGhEaXZlcnNpdHkobi5kYXRhKCJ0YWJpY29uIiksITEpO24uY3NzKCJiYWNrZ3JvdW5kLWltYWdlIiwndXJsKCInKygwLGwuZW1vamlVcmxGb3IpKGkpKyciKScpfSl9LF9iaW5kRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fYmluZERpdmVyc2l0eUNsaWNrKCksdGhpcy5fYmluZFNlY3Rpb25zU2Nyb2xsKCksdGhpcy5fYmluZEVtb2ppQ2xpY2sodGhpcy4kbGlzdC5maW5kKCIuc2VjdGlvbi1ncm91cCIpKSx0aGlzLl9iaW5kQ2xlYXJSZWNlbnRFbW9qaXNHcm91cCgpLHRoaXMuX2JpbmRSZXNpemluZygpLHRoaXMuX2JpbmRDYXRlZ29yeUNsaWNrKCksdGhpcy5fYmluZE1vZGFsQ2xpY2soKSx0aGlzLl9iaW5kRmlsdGVySW5wdXQoKSx0aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2V8fHRoaXMuX2JpbmRIb3ZlcigpfSxfYmluZE1vZGFsQ2xpY2s6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuJG1vZGFsLm9uKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gbi5zZXQoImFjdGl2ZSIsITEpfSksJCgiaHRtbCIpLm9uKCJtb3VzZXVwLmVtb2ppLXBpY2tlciIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYoISh0LmNsb3Nlc3QoIi5lbW9qaS1waWNrZXIiKS5sZW5ndGh8fHQuY2xvc2VzdCgiLmVtb2ppLmJ0biIpLmxlbmd0aHx8dC5oYXNDbGFzcygiZ3JpcHBpZSIpKSlyZXR1cm4gbi5zZXQoImFjdGl2ZSIsITEpLCExfSl9LF91bmJpbmRFdmVudHM6ZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub2ZmKCksJCh3aW5kb3cpLm9mZigicmVzaXplIiksY2xlYXJJbnRlcnZhbCh0aGlzLl9yZWZyZXNoSW50ZXJ2YWwpLCQoIiNyZXBseS1jb250cm9sIikub2ZmKCJkaXYtcmVzaXppbmciKSwkKCJodG1sIikub2ZmKCJtb3VzZXVwLmVtb2ppLXBpY2tlciIpfSxfZmlsdGVyRW1vamlzTGlzdDpmdW5jdGlvbigpe3ZhciBlLHQscz10aGlzOyIiPT09dGhpcy5maWx0ZXI/KHRoaXMuJGZpbHRlci5maW5kKCJpbnB1dFtuYW1lPSdmaWx0ZXInXSIpLnZhbCgiIiksdGhpcy4kcmVzdWx0cy5lbXB0eSgpLmhpZGUoKSx0aGlzLiRsaXN0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKSk6KGU9dGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSx0PSgwLG8uZW1vamlTZWFyY2gpKGUse21heFJlc3VsdHM6MzB9KSx0aGlzLiRyZXN1bHRzLmVtcHR5KCkuaHRtbCh0Lm1hcChmdW5jdGlvbihlKXt2YXIgdD0oMCxvLmlzU2tpblRvbmFibGVFbW9qaSkoZSksbj10PyJkaXZlcnNpdHkiOiIiLGk9cy5fY29kZVdpdGhEaXZlcnNpdHkoZSx0KTtyZXR1cm4iPGJ1dHRvbiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIisoMCxsLmVtb2ppVXJsRm9yKShpKSsnXCcpIiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAnK24rJyIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlKyciPjwvYnV0dG9uPid9KSkuc2hvdygpLHRoaXMuX2JpbmRIb3Zlcih0aGlzLiRyZXN1bHRzKSx0aGlzLl9iaW5kRW1vamlDbGljayh0aGlzLiRyZXN1bHRzKSx0aGlzLiRsaXN0LmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpKX0sX2JpbmRGaWx0ZXJJbnB1dDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLiRmaWx0ZXIuZmluZCgiaW5wdXQiKTtlLm9uKCJpbnB1dCIsZnVuY3Rpb24oZSl7dC5zZXQoImZpbHRlciIsZS5jdXJyZW50VGFyZ2V0LnZhbHVlKX0pLHRoaXMuJGZpbHRlci5maW5kKCIuY2xlYXItZmlsdGVyIikub24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBlLnZhbCgiIikuZm9jdXMoKSx0LnNldCgiZmlsdGVyIiwiIiksITF9KX0sX2JpbmRDYXRlZ29yeUNsaWNrOmZ1bmN0aW9uKCl7dmFyIHM9dGhpczt0aGlzLiRwaWNrZXIuZmluZCgiLmNhdGVnb3J5LWljb24iKS5vbigiY2xpY2siLCJidXR0b24uZW1vamkiLGZ1bmN0aW9uKGUpe3Muc2V0KCJmaWx0ZXIiLCIiKSxzLiRyZXN1bHRzLmVtcHR5KCkscy4kbGlzdC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7dmFyIHQ9JChlLmN1cnJlbnRUYXJnZXQpLmRhdGEoInNlY3Rpb24iKSxuPXMuJGxpc3QuZmluZCgnLnNlY3Rpb25bZGF0YS1zZWN0aW9uPSInK3QrJyJdJyksaT1zLiRsaXN0LnNjcm9sbFRvcCgpKyhuLm9mZnNldCgpLnRvcC1zLiRsaXN0Lm9mZnNldCgpLnRvcCk7cmV0dXJuIHMuX3Njcm9sbFRvKGkpLCExfSl9LF9iaW5kSG92ZXI6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gaShlKXtyZXR1cm4gcy4kcGlja2VyLmZpbmQoIi5mb290ZXIgLmluZm8iKS5odG1sKGV8fCIiKX12YXIgcz10aGlzOyhlfHx0aGlzLiRsaXN0LmZpbmQoIi5zZWN0aW9uLWdyb3VwIikpLm9uKHttb3VzZW92ZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9cy5fY29kZUZvckVtb2ppQnV0dG9uKCQoZS5jdXJyZW50VGFyZ2V0KSksbj0nPGltZyBzcmM9IicrKDAsbC5lbW9qaVVybEZvcikodCkrJyIgY2xhc3M9ImVtb2ppIj4gPHNwYW4+OicrdCsiOjxzcGFuPiI7aShuKX0sbW91c2VsZWF2ZTpmdW5jdGlvbigpe3JldHVybiBpKCl9fSwiYnV0dG9uLmVtb2ppIil9LF9iaW5kUmVzaXppbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOyQod2luZG93KS5vbigicmVzaXplIixmdW5jdGlvbigpe3kudGhyb3R0bGUoZSxlLl9wb3NpdGlvblBpY2tlciwxNil9KSwkKCIjcmVwbHktY29udHJvbCIpLm9uKCJkaXYtcmVzaXppbmciLGZ1bmN0aW9uKCl7eS50aHJvdHRsZShlLGUuX3Bvc2l0aW9uUGlja2VyLDE2KX0pfSxfYmluZENsZWFyUmVjZW50RW1vamlzR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHBpY2tlci5maW5kKCIuc2VjdGlvbltkYXRhLXNlY3Rpb249J3JlY2VudCddIC5jbGVhci1yZWNlbnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZW1vamlTdG9yZS5mYXZvcml0ZXM9W10sZS5zZXQoInJlY2VudEVtb2ppcyIsW10pLGUuX3Njcm9sbFRvKDApLCExfSl9LF9iaW5kRW1vamlDbGljazpmdW5jdGlvbihlKXtmdW5jdGlvbiBuKGUpe3ZhciB0PXMuX2NvZGVGb3JFbW9qaUJ1dHRvbigkKGUuY3VycmVudFRhcmdldCkpO3JldHVybiAwPT09JChlLmN1cnJlbnRUYXJnZXQpLnBhcmVudHMoIi5zZWN0aW9uW2RhdGEtc2VjdGlvbj0ncmVjZW50J10iKS5sZW5ndGgmJnMuX3RyYWNrRW1vamlVc2FnZSh0KSxzLmVtb2ppU2VsZWN0ZWQodCkscy4kbW9kYWwuaGFzQ2xhc3MoImZhZGVJbiIpJiZzLnNldCgiYWN0aXZlIiwhMSksITF9dmFyIGkscz10aGlzO3RoaXMuc2l0ZS5pc01vYmlsZURldmljZT8oaT10aGlzLGUub2ZmKCJ0b3VjaHN0YXJ0Iikub24oInRvdWNoc3RhcnQiLCJidXR0b24uZW1vamkiLGZ1bmN0aW9uKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KTt0Lm9uKCJ0b3VjaGVuZCIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbi5iaW5kKGkpKGUpLHQub2ZmKCJ0b3VjaGVuZCIpfSksdC5vbigidG91Y2htb3ZlIixmdW5jdGlvbigpe3JldHVybiB0Lm9mZigidG91Y2hlbmQiKX0pfSkpOmUub2ZmKCJjbGljayIpLm9uKCJjbGljayIsImJ1dHRvbi5lbW9qaSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uYmluZChzKShlKX0pfSxfYmluZFNlY3Rpb25zU2Nyb2xsOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3kuZGVib3VuY2UodCx0Ll9jaGVja1Zpc2libGVTZWN0aW9uLDUwKX12YXIgdD10aGlzO3RoaXMuJGxpc3Qub24oInNjcm9sbCIsZSksdGhpcy5fcmVmcmVzaEludGVydmFsPXNldEludGVydmFsKGUsMTAwKX0sX2NoZWNrVmlzaWJsZVNlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM7dGhpcy4kcGlja2VyJiYoKHQ9dGhpcy4kbGlzdC5zY3JvbGxUb3AoKSk9PT10aGlzLnNjcm9sbFBvc2l0aW9uJiYhZXx8KHRoaXMuc2Nyb2xsUG9zaXRpb249dCxuPXRoaXMuJGxpc3QuZmluZCgiLnNlY3Rpb24iKSxpPXRoaXMuJGxpc3QuaW5uZXJIZWlnaHQoKSxzPXZvaWQgMCx0aGlzLiR2aXNpYmxlU2VjdGlvbnM9Xy5maWx0ZXIobixmdW5jdGlvbihlKXt2YXIgdD0kKGUpLG49dC5wb3NpdGlvbigpLnRvcDtyZXR1cm4gMDxuK3QuaGVpZ2h0KCkmJm48aX0pLChzPV8uaXNFbXB0eSh0aGlzLnJlY2VudEVtb2ppcyl8fDAhPT10aGlzLnNjcm9sbFBvc2l0aW9uPyQoXy5sYXN0KHRoaXMuJHZpc2libGVTZWN0aW9ucykpOiQoXy5maXJzdCh0aGlzLiR2aXNpYmxlU2VjdGlvbnMpKSkmJih0aGlzLiRwaWNrZXIuZmluZCgiLmNhdGVnb3J5LWljb24iKS5yZW1vdmVDbGFzcygiY3VycmVudCIpLHRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcnktaWNvbiBidXR0b25bZGF0YS1zZWN0aW9uPSciK3MuZGF0YSgic2VjdGlvbiIpKyInXSIpLnBhcmVudCgpLmFkZENsYXNzKCJjdXJyZW50IiksdGhpcy5fbG9hZFZpc2libGVTZWN0aW9ucygpKSkpfSxfbG9hZFZpc2libGVTZWN0aW9uczpmdW5jdGlvbigpe3ZhciBzLG89dGhpczt0aGlzLiR2aXNpYmxlU2VjdGlvbnMmJihzPXRoaXMuJGxpc3QuaW5uZXJIZWlnaHQoKSx0aGlzLiR2aXNpYmxlU2VjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0kKGUpLmZpbmQoImJ1dHRvbi5lbW9qaVtkYXRhLWxvYWRlZCE9JzEnXSIpOyQuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7dmFyIG4saT10Lm9mZnNldFRvcDtpPG8uc2Nyb2xsUG9zaXRpb24rcysyMDAmJmkrMjAwPm8uc2Nyb2xsUG9zaXRpb24mJihuPSQodCksby5fc2V0QnV0dG9uQmFja2dyb3VuZChuKSl9KX0pKX0sX2JpbmREaXZlcnNpdHlDbGljazpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy4kcGlja2VyLmZpbmQoIi5kaXZlcnNpdHktcGlja2VyIC5kaXZlcnNpdHktc2NhbGUiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciB0PSQoZS5jdXJyZW50VGFyZ2V0KTtyZXR1cm4gbi5zZXQoInNlbGVjdGVkRGl2ZXJzaXR5IixwYXJzZUludCh0LmRhdGEoImxldmVsIiksMTApKSwhMX0pfSxfaXNSZXBseUNvbnRyb2xFeHBhbmRlZDpmdW5jdGlvbigpe3JldHVybiAkKHdpbmRvdykuaGVpZ2h0KCktJCgiLmQtaGVhZGVyIikuaGVpZ2h0KCktJCgiI3JlcGx5LWNvbnRyb2wiKS5oZWlnaHQoKTx0aGlzLiRwaWNrZXIuaGVpZ2h0KCktNDh9LF9wb3NpdGlvblBpY2tlcjpmdW5jdGlvbigpe3ZhciBuLGUsdCxpLHMsbyxyLGEsbCx1LGMsZCxwLG09dGhpczt0aGlzLmFjdGl2ZSYmKG49JCh3aW5kb3cpLndpZHRoKCksZT1mdW5jdGlvbihlKXt2YXIgdD17d2lkdGg6TWF0aC5taW4obiw0MDApLTEyLG1hcmdpbkxlZnQ6LU1hdGgubWluKG4sNDAwKS8yKzYsbWFyZ2luVG9wOi0xMzAsbGVmdDoiNTAlIixib3R0b206IiIsdG9wOiI1MCUiLGRpc3BsYXk6ImZsZXgifTttLiRtb2RhbC5hZGRDbGFzcygiZmFkZUluIiksbS4kcGlja2VyLmNzcyhfLm1lcmdlKHQsZSkpfSx0PWZ1bmN0aW9uKGUpe3ZhciB0PXtwb3NpdGlvbjoiZml4ZWQiLHdpZHRoOm48NDg1P24tMTI6NDAwLG1hcmdpbkxlZnQ6IiIsbWFyZ2luVG9wOiIiLHJpZ2h0OiIiLGxlZnQ6IiIsYm90dG9tOjMyLHRvcDoiIixkaXNwbGF5OiJmbGV4In07bS4kbW9kYWwucmVtb3ZlQ2xhc3MoImZhZGVJbiIpLG0uJHBpY2tlci5jc3MoXy5tZXJnZSh0LGUpKX0sInRlc3QiIT09Zi5kZWZhdWx0LmVudmlyb25tZW50JiZ0aGlzLmF1dG9tYXRpY1Bvc2l0aW9uaW5nPyh0aGlzLnNpdGUuaXNNb2JpbGVEZXZpY2U/KGQ9e3dpZHRoOm4sbWFyZ2luTGVmdDowLG1hcmdpblRvcDoiYXV0byIsbGVmdDowLGJvdHRvbToiIix0b3A6MCxkaXNwbGF5OiJmbGV4In0sbS4kbW9kYWwuYWRkQ2xhc3MoImZhZGVJbiIpLG0uJHBpY2tlci5jc3MoXy5tZXJnZShkLGMpKSk6dGhpcy5faXNSZXBseUNvbnRyb2xFeHBhbmRlZCgpPyhpPSQoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKSkuaXMoIjp2aXNpYmxlIikmJmkud2lkdGgoKTw0MDB8fG48NDg1P2UoKTppLmlzKCI6dmlzaWJsZSIpPyhzPSQoIi5kLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIiKS5vZmZzZXQoKSxvPSQoIiNyZXBseS1jb250cm9sIikub2Zmc2V0KCksdCh7bGVmdDpzLmxlZnQtby5sZWZ0fSkpOnQoe3JpZ2h0OigkKCIjcmVwbHktY29udHJvbCIpLndpZHRoKCktJCgiLmQtZWRpdG9yLWNvbnRhaW5lciIpLndpZHRoKCkpLzJ9KTpuPDQ4NT9lKCk6KHI9JCgiLmQtZWRpdG9yLWlucHV0Iikub2Zmc2V0KCksYT0kKCIuZC1lZGl0b3IgLmVtb2ppLXBpY2tlciIpLmhlaWdodCgpLGw9JCgiLmQtZWRpdG9yLWlucHV0IikuaGVpZ2h0KCksdT0kKHdpbmRvdykuc2Nyb2xsVG9wKCkrJCh3aW5kb3cpLmhlaWdodCgpLHIudG9wK2wrYTx1P3Qoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOnIudG9wK2wsbGVmdDpyLmxlZnR9KTp0KHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotYSxsZWZ0OnIubGVmdH0pKSxwPXRoaXMuJHBpY2tlci53aWR0aCgpLXRoaXMuJHBpY2tlci5maW5kKCIuY2F0ZWdvcmllcy1jb2x1bW4iKS53aWR0aCgpLXRoaXMuJHBpY2tlci5maW5kKCIuZGl2ZXJzaXR5LXBpY2tlciIpLndpZHRoKCktMzIsdGhpcy4kcGlja2VyLmZpbmQoIi5pbmZvIikuY3NzKCJtYXgtd2lkdGgiLHApKTp0KCkpfSxfY29kZVdpdGhEaXZlcnNpdHk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCYmMSE9PXRoaXMuc2VsZWN0ZWREaXZlcnNpdHk/ZSsiOnQiK3RoaXMuc2VsZWN0ZWREaXZlcnNpdHk6ZX0sX3RyYWNrRW1vamlVc2FnZTpmdW5jdGlvbihlKXt0aGlzLmVtb2ppU3RvcmUudHJhY2soZSksdGhpcy5zZXQoInJlY2VudEVtb2ppcyIsdGhpcy5lbW9qaVN0b3JlLmZhdm9yaXRlcy5zbGljZSgwLDExKSl9LF9zY3JvbGxUbzpmdW5jdGlvbihlKXt2YXIgdD12b2lkIDA9PT1lP3RoaXMuc2Nyb2xsUG9zaXRpb246ZTt0aGlzLiRsaXN0LnNjcm9sbFRvcCh0KSwwPT09dCYmdGhpcy4kbGlzdC5zY3JvbGwoKX0sX2NvZGVGb3JFbW9qaUJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLmF0dHIoInRpdGxlIik7cmV0dXJuIHRoaXMuX2NvZGVXaXRoRGl2ZXJzaXR5KHQsZS5oYXNDbGFzcygiZGl2ZXJzaXR5IikpfSxfc2V0QnV0dG9uQmFja2dyb3VuZDpmdW5jdGlvbih0LG4pe3ZhciBpLHM9dGhpczt0JiYoaT0kKHQpLHQ9aVswXSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dmFyIGU9cy5fY29kZVdpdGhEaXZlcnNpdHkoaS5hdHRyKCJ0aXRsZSIpLG58fGkuaGFzQ2xhc3MoImRpdmVyc2l0eSIpKTsibm9uZSIhPT10LnN0eWxlLmJhY2tncm91bmRJbWFnZSYmKHQuc3R5bGUuYmFja2dyb3VuZEltYWdlPSIiKSx0LnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKCInKygwLGwuZW1vamlVcmxGb3IpKGUpKyciKScsaS5hdHRyKCJkYXRhLWxvYWRlZCIsMSl9KSl9fSwiX3NldEluaXRpYWxWYWx1ZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl9zZXRJbml0aWFsVmFsdWVzIiksdikscih2LCJfdW5iaW5kR2xvYmFsRXZlbnRzIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJfdW5iaW5kR2xvYmFsRXZlbnRzIiksdikscih2LCJfc2V0dXAiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl9zZXR1cCIpLHYpLHIodiwiX3NldFN0YXRlIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2LCJfc2V0U3RhdGUiKSx2KSxyKHYsImZpbHRlckNoYW5nZWQiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsImZpbHRlckNoYW5nZWQiKSx2KSxyKHYsInNlbGVjdGVkRGl2ZXJzaXR5Q2hhbmdlZCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iodiwic2VsZWN0ZWREaXZlcnNpdHlDaGFuZ2VkIiksdikscih2LCJfcmVjZW50RW1vamlzQ2hhbmdlZCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodiwiX3JlY2VudEVtb2ppc0NoYW5nZWQiKSx2KSxyKHYsIl91bmJpbmRFdmVudHMiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHYsIl91bmJpbmRFdmVudHMiKSx2KSx2KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LChvPSgwLGkuZGVmYXVsdCkoImhhc05hbWUiLCJuYW1lIikscj17dHlwZToiZW1vamkiLHVwbG9hZFVybDoiL2FkbWluL2N1c3RvbWl6ZS9lbW9qaXMiLGhhc05hbWU6KDAsdC5ub3RFbXB0eSkoIm5hbWUiKSxhZGREaXNhYmxlZDooMCx0Lm5vdCkoImhhc05hbWUiKSx1cGxvYWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue3NlcXVlbnRpYWxVcGxvYWRzOiEwfX0sZGF0YTpmdW5jdGlvbihlLHQpe3JldHVybiBlP3tuYW1lOnR9Ont9fSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJuYW1lIixudWxsKSx0aGlzLmRvbmUoZSl9fSxhPXIsbD0iZGF0YSIsdT1bb10sYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImRhdGEiKSxkPXIscD17fSxPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3BbZV09Y1tlXX0pLHAuZW51bWVyYWJsZT0hIXAuZW51bWVyYWJsZSxwLmNvbmZpZ3VyYWJsZT0hIXAuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gcHx8cC5pbml0aWFsaXplcikmJihwLndyaXRhYmxlPSEwKSxwPXUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQoYSxsLGUpfHxlfSxwKSxkJiZ2b2lkIDAhPT1wLmluaXRpYWxpemVyJiYocC52YWx1ZT1wLmluaXRpYWxpemVyP3AuaW5pdGlhbGl6ZXIuY2FsbChkKTp2b2lkIDAscC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXAuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxsLHApLHA9bnVsbCkscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9leHBhbmQtcG9zdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheCJdLGZ1bmN0aW9uKGUsdCxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLGV4cGFuZGVkOm51bGwsX2xvYWRpbmc6ITEsYWN0aW9uczp7dG9nZ2xlSXRlbTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5fbG9hZGluZylyZXR1cm4hMTt2YXIgbj10aGlzLml0ZW07aWYodGhpcy5leHBhbmRlZClyZXR1cm4gdGhpcy5zZXQoImV4cGFuZGVkIiwhMSksbi5zZXQoImV4cGFuZGVkRXhjZXJwdCIsbnVsbCksITE7dmFyIGU9bi5nZXQoInRvcGljX2lkIiksaT1uLmdldCgicG9zdF9udW1iZXIiKTtyZXR1cm4gdGhpcy5fbG9hZGluZz0hMCwoMCxzLmFqYXgpKCIvcG9zdHMvYnlfbnVtYmVyLyIrZSsiLyIraSsiLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3Quc2V0KCJleHBhbmRlZCIsITApLG4uc2V0KCJleHBhbmRlZEV4Y2VycHQiLGUuY29va2VkKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gdC5fbG9hZGluZz0hMX0pLCExfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZXhwYW5kaW5nLXRleHQtYXJlYSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2F1dG9zaXplIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1FbWJlci5UZXh0QXJlYS5leHRlbmQoKG89KDAsbi5vbikoImRpZEluc2VydEVsZW1lbnQiKSxyPSgwLG4ub2JzZXJ2ZXMpKCJ2YWx1ZSIpLGE9KDAsbi5vbikoIndpbGxEZXN0cm95RWxlbWVudCIpLHMobD17X3N0YXJ0V2F0Y2hpbmc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7JChlLmVsZW1lbnQpLmZvY3VzKCksKDAsaS5kZWZhdWx0KShlLmVsZW1lbnQpfSl9LF91cGRhdGVBdXRvc2l6ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC52YWx1ZT10aGlzLnZhbHVlO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO2UuaW5pdEV2ZW50KCJhdXRvc2l6ZTp1cGRhdGUiLCEwLCExKSx0aGlzLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChlKX0sX2Rpc2FibGVBdXRvc2l6ZTpmdW5jdGlvbigpe2kuZGVmYXVsdC5kZXN0cm95KCQodGhpcy5lbGVtZW50KSl9fSwiX3N0YXJ0V2F0Y2hpbmciLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9zdGFydFdhdGNoaW5nIiksbCkscyhsLCJfdXBkYXRlQXV0b3NpemUiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl91cGRhdGVBdXRvc2l6ZSIpLGwpLHMobCwiX2Rpc2FibGVBdXRvc2l6ZSIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2Rpc2FibGVBdXRvc2l6ZSIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmVhdHVyZWQtdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOmZlYXR1cmVkLXRvcGljIl0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5jbG9zZXN0KCIubGFzdC1wb3N0ZWQtYXQiKS5sZW5ndGgpcmV0dXJuIHRoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInRvcGljLWVudHJhbmNlOnNob3ciLHt0b3BpYzp0aGlzLnRvcGljLHBvc2l0aW9uOnQub2Zmc2V0KCl9KSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmxhZy1hY3Rpb24tdHlwZSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Bvc3QtYWN0aW9uLXR5cGUiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJmbGFnLm5hbWVfa2V5IiksYT0oMCx0LmRlZmF1bHQpKCJmbGFnLm5hbWUiLCJmbGFnLm5hbWVfa2V5IiwiZmxhZy5pc19jdXN0b21fZmxhZyIsInVzZXJuYW1lIiksbD0oMCx0LmRlZmF1bHQpKCJmbGFnIiwic2VsZWN0ZWRGbGFnIiksdT0oMCx0LmRlZmF1bHQpKCJmbGFnLmRlc2NyaXB0aW9uIiwiZmxhZy5zaG9ydF9kZXNjcmlwdGlvbiIpLGM9KDAsdC5kZWZhdWx0KSgibWVzc2FnZS5sZW5ndGgiKSxkPSgwLHQuZGVmYXVsdCkoIm1lc3NhZ2UubGVuZ3RoIiksbyhwPXtjbGFzc05hbWVzOlsiZmxhZy1hY3Rpb24tdHlwZSJdLGN1c3RvbVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoImZsYWdnaW5nLmN1c3RvbV9wbGFjZWhvbGRlcl8iK2UpfSxmb3JtYXR0ZWROYW1lOmZ1bmN0aW9uKGUsdCxuLGkpe3JldHVybiBuP2UucmVwbGFjZSgie3t1c2VybmFtZX19IixpKTpJMThuLnQoImZsYWdnaW5nLmZvcm1hdHRlZF9uYW1lLiIrdCl9LHNlbGVjdGVkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fSxzaG93TWVzc2FnZUlucHV0OigwLG4uYW5kKSgiZmxhZy5pc19jdXN0b21fZmxhZyIsInNlbGVjdGVkIiksc2hvd0Rlc2NyaXB0aW9uOigwLG4ubm90KSgic2hvd01lc3NhZ2VJbnB1dCIpLGlzTm90aWZ5VXNlcjooMCxuLmVxdWFsKSgiZmxhZy5uYW1lX2tleSIsIm5vdGlmeV91c2VyIiksZGVzY3JpcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXc/dDplfSxjdXN0b21NZXNzYWdlTGVuZ3RoQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZTxEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1pbl9wZXJzb25hbF9tZXNzYWdlX3Bvc3RfbGVuZ3RoPyJ0b28tc2hvcnQiOiJvayJ9LGN1c3RvbU1lc3NhZ2VMZW5ndGg6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8MCxuPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWluX3BlcnNvbmFsX21lc3NhZ2VfcG9zdF9sZW5ndGg7cmV0dXJuIDA9PT10P0kxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UuYXRfbGVhc3QiLHtjb3VudDpufSk6dDxuP0kxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UubW9yZSIse2NvdW50Om4tdH0pOkkxOG4udCgiZmxhZ2dpbmcuY3VzdG9tX21lc3NhZ2UubGVmdCIse2NvdW50OnMuTUFYX01FU1NBR0VfTEVOR1RILXR9KX0sYWN0aW9uczp7Y2hhbmdlUG9zdEFjdGlvblR5cGU6ZnVuY3Rpb24oZSl7dGhpcy5jaGFuZ2VQb3N0QWN0aW9uVHlwZShlKX19fSwiY3VzdG9tUGxhY2Vob2xkZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImN1c3RvbVBsYWNlaG9sZGVyIikscCksbyhwLCJmb3JtYXR0ZWROYW1lIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJmb3JtYXR0ZWROYW1lIikscCksbyhwLCJzZWxlY3RlZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwic2VsZWN0ZWQiKSxwKSxvKHAsImRlc2NyaXB0aW9uIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJkZXNjcmlwdGlvbiIpLHApLG8ocCwiY3VzdG9tTWVzc2FnZUxlbmd0aENsYXNzZXMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIikscCksbyhwLCJjdXN0b21NZXNzYWdlTGVuZ3RoIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJjdXN0b21NZXNzYWdlTGVuZ3RoIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9mbGFnLXNlbGVjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO3ZhciBzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLGkub2JzZXJ2ZXMpKCJuYW1lS2V5Iikscj1vPXtfc2VsZWN0UmFkaW86ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXRbdHlwZT0ncmFkaW8nXSIpLmNoZWNrZWQ9ITE7dmFyIGU9dGhpcy5uYW1lS2V5O2UmJih0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiI3JhZGlvXyIrZSkuY2hlY2tlZD0idHJ1ZSIpfSxzZWxlY3RlZENoYW5nZWQ6ZnVuY3Rpb24oKXsoMCx0Lm5leHQpKHRoaXMsdGhpcy5fc2VsZWN0UmFkaW8pfX0sYT0ic2VsZWN0ZWRDaGFuZ2VkIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobywic2VsZWN0ZWRDaGFuZ2VkIiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZmxhdC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4uZGVmYXVsdCkoInRpdGxlIiksbz1zPXt0YWdOYW1lOiJidXR0b24iLGNsYXNzTmFtZXM6WyJidG4tZmxhdCJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsiZGlzYWJsZWQiLCJ0cmFuc2xhdGVkVGl0bGU6dGl0bGUiXSx0cmFuc2xhdGVkVGl0bGU6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4gSTE4bi50KGUpfSxjbGljazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJzLmFjdGlvbigpfX0scj0idHJhbnNsYXRlZFRpdGxlIixhPVtpXSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywidHJhbnNsYXRlZFRpdGxlIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZm9vdGVyLW1lc3NhZ2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJmb290ZXItbWVzc2FnZSJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2Zvb3Rlci1uYXYiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlL21peGlucy9tb2JpbGUtc2Nyb2xsLWRpcmVjdGlvbiIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsaW5nIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBkPW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LGkuZGVmYXVsdCwobD0oMCxvLm9ic2VydmVzKSgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiksdT0oMCxvLm9ic2VydmVzKSgiY3VycmVudFJvdXRlSW5kZXgiKSxhKGM9e3dpZGdldDoiZm9vdGVyLW5hdiIsbW9iaWxlU2Nyb2xsRGlyZWN0aW9uOm51bGwsc2Nyb2xsRXZlbnREaXNhYmxlZDohMSxjbGFzc05hbWVzOlsiZm9vdGVyLW5hdiIsInZpc2libGUiXSxyb3V0ZUhpc3Rvcnk6W10sY3VycmVudFJvdXRlSW5kZXg6MCxjYW5Hb0JhY2s6ITEsY2FuR29Gb3J3YXJkOiExLGJhY2tGb3J3YXJkQ2xpY2tlZDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3JldHVybntjYW5Hb0JhY2s6dGhpcy5jYW5Hb0JhY2ssY2FuR29Gb3J3YXJkOnRoaXMuY2FuR29Gb3J3YXJkfX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJwYWdlOmNoYW5nZWQiLHRoaXMsIl9yb3V0ZUNoYW5nZWQiKSwoMCxyLmlzQXBwV2VidmlldykoKSYmKHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbDpib2R5LXNob3duIix0aGlzLCJfbW9kYWxPbiIpLHRoaXMuYXBwRXZlbnRzLm9uKCJtb2RhbDpib2R5LWRpc21pc3NlZCIsdGhpcywiX21vZGFsT2ZmIikpLHRoaXMuY2FwYWJpbGl0aWVzLmlzSXBhZE9TPyQoImJvZHkiKS5hZGRDbGFzcygiZm9vdGVyLW5hdi1pcGFkIik6KHRoaXMuYmluZFNjcm9sbGluZyh7bmFtZToiZm9vdGVyLW5hdiJ9KSwkKHdpbmRvdykub24oInJlc2l6ZS5mb290ZXItbmF2LW9uLXNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4gZS5zY3JvbGxlZCgpfSksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOm9wZW5lZCIsdGhpcywiX2NvbXBvc2VyT3BlbmVkIiksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOmNsb3NlZCIsdGhpcywiX2NvbXBvc2VyQ2xvc2VkIikpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5hcHBFdmVudHMub2ZmKCJwYWdlOmNoYW5nZWQiLHRoaXMsIl9yb3V0ZUNoYW5nZWQiKSwoMCxyLmlzQXBwV2VidmlldykoKSYmKHRoaXMuYXBwRXZlbnRzLm9mZigibW9kYWw6Ym9keS1zaG93biIsdGhpcywiX21vZGFsT24iKSx0aGlzLmFwcEV2ZW50cy5vZmYoIm1vZGFsOmJvZHktcmVtb3ZlZCIsdGhpcywiX21vZGFsT2ZmIikpLHRoaXMuY2FwYWJpbGl0aWVzLmlzSXBhZE9TPyQoImJvZHkiKS5yZW1vdmVDbGFzcygiZm9vdGVyLW5hdi1pcGFkIik6KHRoaXMudW5iaW5kU2Nyb2xsaW5nKCJmb290ZXItbmF2IiksJCh3aW5kb3cpLnVuYmluZCgicmVzaXplLmZvb3Rlci1uYXYtb24tc2Nyb2xsIiksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsIl9jb21wb3Nlck9wZW5lZCIpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6Y2xvc2VkIix0aGlzLCJfY29tcG9zZXJDbG9zZWQiKSl9LHNjcm9sbGVkOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fCJpbkRPTSIhPT10aGlzLl9zdGF0ZXx8dGhpcy5zY3JvbGxFdmVudERpc2FibGVkfHwoZT13aW5kb3cucGFnZVlPZmZzZXR8fCQoImh0bWwiKS5zY3JvbGxUb3AoKSwoMCx0LnRocm90dGxlKSh0aGlzLHRoaXMuY2FsY3VsYXRlRGlyZWN0aW9uLGUsMTUwKSl9LHRvZ2dsZU1vYmlsZUZvb3RlcjpmdW5jdGlvbigpeyQodGhpcy5lbGVtZW50KS50b2dnbGVDbGFzcygidmlzaWJsZSIsbnVsbD09PXRoaXMubW9iaWxlU2Nyb2xsRGlyZWN0aW9uKSwkKCJib2R5IikudG9nZ2xlQ2xhc3MoImZvb3Rlci1uYXYtdmlzaWJsZSIsbnVsbD09PXRoaXMubW9iaWxlU2Nyb2xsRGlyZWN0aW9uKX0sX3JvdXRlQ2hhbmdlZDpmdW5jdGlvbihlKXt0aGlzLmJhY2tGb3J3YXJkQ2xpY2tlZD90aGlzLmJhY2tGb3J3YXJkQ2xpY2tlZD1udWxsOih0aGlzLnJvdXRlSGlzdG9yeS5wdXNoKGUudXJsKSx0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMucm91dGVIaXN0b3J5Lmxlbmd0aCksdGhpcy5xdWV1ZVJlcmVuZGVyKCkpfSxfY29tcG9zZXJPcGVuZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgibW9iaWxlU2Nyb2xsRGlyZWN0aW9uIiwiZG93biIpLHRoaXMuc2V0KCJzY3JvbGxFdmVudERpc2FibGVkIiwhMCl9LF9jb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJtb2JpbGVTY3JvbGxEaXJlY3Rpb24iLG51bGwpLHRoaXMuc2V0KCJzY3JvbGxFdmVudERpc2FibGVkIiwhMSl9LF9tb2RhbE9uOmZ1bmN0aW9uKCl7KDAsci5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoImhlYWRlckJnIiwkKCIubW9kYWwtYmFja2Ryb3AiKS5jc3MoImJhY2tncm91bmQtY29sb3IiKSl9LF9tb2RhbE9mZjpmdW5jdGlvbigpeygwLHIucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJoZWFkZXJCZyIsJCgiLmQtaGVhZGVyIikuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIikpfSxnb0JhY2s6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMuY3VycmVudFJvdXRlSW5kZXgtMSksdGhpcy5iYWNrRm9yd2FyZENsaWNrZWQ9ITAsd2luZG93Lmhpc3RvcnkuYmFjaygpfSxnb0ZvcndhcmQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiY3VycmVudFJvdXRlSW5kZXgiLHRoaXMuY3VycmVudFJvdXRlSW5kZXgrMSksdGhpcy5iYWNrRm9yd2FyZENsaWNrZWQ9ITAsd2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpfSxzZXRCYWNrRm9yd2FyZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFJvdXRlSW5kZXg7dGhpcy5zZXQoImNhbkdvQmFjayIsISEoMTxlfHxkb2N1bWVudC5yZWZlcnJlcikpLHRoaXMuc2V0KCJjYW5Hb0ZvcndhcmQiLGU8dGhpcy5yb3V0ZUhpc3RvcnkubGVuZ3RoKX19LCJ0b2dnbGVNb2JpbGVGb290ZXIiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRvZ2dsZU1vYmlsZUZvb3RlciIpLGMpLGEoYywic2V0QmFja0ZvcndhcmQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInNldEJhY2tGb3J3YXJkIiksYyksYykpO2UuZGVmYXVsdD1kfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9mdXR1cmUtZGF0ZS1pbnB1dCIsWyJleHBvcnRzIiwiQGVtYmVyL3V0aWxzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZWRpdC10b3BpYy10aW1lciJdLGZ1bmN0aW9uKGUsYSx0LG4saSxzLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLHUsYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPSgwLGkub2JzZXJ2ZXMpKCJkYXRlIiwidGltZSIpLHU9KDAsaS5vYnNlcnZlcykoImlzQmFzZWRPbkxhc3RQb3N0IiksYz0oMCxpLmRlZmF1bHQpKCJpbnB1dCIsImlzQmFzZWRPbkxhc3RQb3N0IiksZD0oMCxpLmRlZmF1bHQpKCJpbnB1dCIsImlzQmFzZWRPbkxhc3RQb3N0IikscD0oMCxpLmRlZmF1bHQpKCJzdGF0dXNUeXBlIiwiaW5wdXQiLCJpc0N1c3RvbSIsImRhdGUiLCJ0aW1lIiwid2lsbENsb3NlSW1tZWRpYXRlbHkiLCJjYXRlZ29yeUlkIiksbT0oMCxpLmRlZmF1bHQpKCJpc0Jhc2VkT25MYXN0UG9zdCIsImlucHV0IiwibGFzdFBvc3RlZEF0IiksZj0oMCxpLmRlZmF1bHQpKCJpc0Jhc2VkT25MYXN0UG9zdCIsImxhc3RQb3N0ZWRBdCIpLG8oaD17c2VsZWN0aW9uOm51bGwsZGF0ZTpudWxsLHRpbWU6bnVsbCxpbmNsdWRlRGF0ZVRpbWU6ITAsaXNDdXN0b206KDAsdC5lcXVhbCkoInNlbGVjdGlvbiIsInBpY2tfZGF0ZV9hbmRfdGltZSIpLGlzQmFzZWRPbkxhc3RQb3N0OigwLHQuZXF1YWwpKCJzZWxlY3Rpb24iLCJzZXRfYmFzZWRfb25fbGFzdF9wb3N0IiksZGlzcGxheURhdGVBbmRUaW1lUGlja2VyOigwLHQuYW5kKSgiaW5jbHVkZURhdGVUaW1lIiwiaXNDdXN0b20iKSxkaXNwbGF5TGFiZWw6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuaW5wdXQmJih0aGlzLmJhc2VkT25MYXN0UG9zdD90aGlzLnNldCgic2VsZWN0aW9uIiwic2V0X2Jhc2VkX29uX2xhc3RfcG9zdCIpOihlPW1vbWVudCh0aGlzLmlucHV0KSx0aGlzLnNldFByb3BlcnRpZXMoe3NlbGVjdGlvbjoicGlja19kYXRlX2FuZF90aW1lIixkYXRlOmUuZm9ybWF0KCJZWVlZLU1NLUREIiksdGltZTplLmZvcm1hdCgiSEg6bW0iKX0pLHRoaXMuX3VwZGF0ZUlucHV0KCkpKX0sdGltZUlucHV0RGlzYWJsZWQ6KDAsdC5lbXB0eSkoImRhdGUiKSxfdXBkYXRlSW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLmRhdGV8fHRoaXMuc2V0KCJ0aW1lIixudWxsKTt2YXIgZT10aGlzLnRpbWU/IiAiK3RoaXMudGltZToiIix0PW1vbWVudCh0aGlzLmRhdGUrZSk7dC5pc1ZhbGlkKCk/dGhpcy5hdHRycy5vbkNoYW5nZUlucHV0JiZ0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQodC5mb3JtYXQocy5GT1JNQVQpKTp0aGlzLmF0dHJzLm9uQ2hhbmdlSW5wdXQmJnRoaXMuYXR0cnMub25DaGFuZ2VJbnB1dChudWxsKX0sX3VwZGF0ZUJhc2VkT25MYXN0UG9zdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJiYXNlZE9uTGFzdFBvc3QiLHRoaXMuaXNCYXNlZE9uTGFzdFBvc3QpfSxkdXJhdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBuPW1vbWVudCgpO3JldHVybiB0P3BhcnNlRmxvYXQoZSk6bW9tZW50KGUpLW59LGV4ZWN1dGVBdDpmdW5jdGlvbihlLHQpe3JldHVybiB0P21vbWVudCgpLmFkZChlLCJob3VycyIpLmZvcm1hdChzLkZPUk1BVCk6ZX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubGFiZWwmJnRoaXMuc2V0KCJkaXNwbGF5TGFiZWwiLEkxOG4udCh0aGlzLmxhYmVsKSl9LHNob3dUb3BpY1N0YXR1c0luZm86ZnVuY3Rpb24oZSx0LG4saSxzLG8scil7cmV0dXJuISghZXx8bykmJigoZSE9PWwuUFVCTElTSF9UT19DQVRFR09SWV9TVEFUVVNfVFlQRXx8ISgwLGEuaXNFbXB0eSkocikpJiYobj9pP21vbWVudChpKyhzPyIgIitzOiIiKSkuaXNBZnRlcihtb21lbnQoKSk6czp0KSl9LHdpbGxDbG9zZUltbWVkaWF0ZWx5OmZ1bmN0aW9uKGUsdCxuKXtpZihlJiZ0KXJldHVybiBtb21lbnQobikuYWRkKHQsImhvdXJzIik8bW9tZW50KCl9LHdpbGxDbG9zZUkxOG46ZnVuY3Rpb24oZSx0KXtpZihlKXt2YXIgbj1NYXRoLnJvdW5kKChuZXcgRGF0ZS1uZXcgRGF0ZSh0KSkvMzZlNSk7cmV0dXJuIEkxOG4udCgidG9waWMuYXV0b19jbG9zZV9pbW1lZGlhdGUiLHtjb3VudDpufSl9fX0sIl91cGRhdGVJbnB1dCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiX3VwZGF0ZUlucHV0IiksaCksbyhoLCJfdXBkYXRlQmFzZWRPbkxhc3RQb3N0IixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJfdXBkYXRlQmFzZWRPbkxhc3RQb3N0IiksaCksbyhoLCJkdXJhdGlvbiIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiZHVyYXRpb24iKSxoKSxvKGgsImV4ZWN1dGVBdCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiZXhlY3V0ZUF0IiksaCksbyhoLCJzaG93VG9waWNTdGF0dXNJbmZvIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJzaG93VG9waWNTdGF0dXNJbmZvIiksaCksbyhoLCJ3aWxsQ2xvc2VJbW1lZGlhdGVseSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwid2lsbENsb3NlSW1tZWRpYXRlbHkiKSxoKSxvKGgsIndpbGxDbG9zZUkxOG4iLFtmXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsIndpbGxDbG9zZUkxOG4iKSxoKSxoKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dlbmVyYXRlZC1pbnZpdGUtbGluayIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpKS5zZWxlY3QoKS5mb2N1cygpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nbG9iYWwtbm90aWNlIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2Uvc2VydmljZXMvbG9ncy1ub3RpY2UiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkR2xvYmFsTm90aWNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O28ucHVzaChhLmNyZWF0ZSh7dGV4dDplLGlkOnQsb3B0aW9uczpufSkpfTt2YXIgbz1bXTt2YXIgcj0iZGlzbWlzc2VkLWdsb2JhbC1ub3RpY2UtdjIiLGE9cy5kZWZhdWx0LmV4dGVuZCh7dGV4dDpudWxsLGlkOm51bGwsb3B0aW9uczpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5vcHRpb25zPXRoaXMuc2V0KCJvcHRpb25zIixPYmplY3QuYXNzaWduKHtkaXNtaXNzYWJsZTohMSxodG1sOm51bGwsbGV2ZWw6ImluZm8iLHBlcnNpc3RlbnREaXNtaXNzOiEwLG9uRGlzbWlzczpudWxsLHZpc2liaWxpdHk6bnVsbCxkaXNtaXNzRHVyYXRpb246bnVsbH0sdGhpcy5vcHRpb25zfHx7fSkpfX0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtsb2dOb3RpY2U6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3NldHVwT2JzZXJ2ZXJzKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl90ZWFyRG93bk9ic2VydmVycygpfSxub3RpY2VzOigwLHMuY29tcHV0ZWQpKCJzaXRlLmlzUmVhZE9ubHkiLCJzaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHMiLCJsb2dOb3RpY2Uue2lkLHRleHQsaGlkZGVufSIsZnVuY3Rpb24oKXt2YXIgZSxzPXRoaXMsdD1bXTtyZXR1cm4iMSI9PT0kLmNvb2tpZSgiZG9zcCIpJiYoJC5yZW1vdmVDb29raWUoImRvc3AiLHtwYXRoOiIvIn0pLHQucHVzaChhLmNyZWF0ZSh7dGV4dDpJMThuLnQoImZvcmNlZF9hbm9ueW1vdXMiKSxpZDoiZm9yY2VkLWFub255bW91cyJ9KSkpLHRoaXMuc2Vzc2lvbiYmdGhpcy5zZXNzaW9uLnNhZmVfbW9kZSYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgic2FmZV9tb2RlLmVuYWJsZWQiKSxpZDoic2FmZS1tb2RlIn0pKSx0aGlzLnNpdGUuaXNSZWFkT25seSYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgicmVhZF9vbmx5X21vZGUuZW5hYmxlZCIpLGlkOiJhbGVydC1yZWFkLW9ubHkifSkpLCJ5ZXMiIT09dGhpcy5zaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHMmJiJub24tc3RhZmYiIT09dGhpcy5zaXRlU2V0dGluZ3MuZGlzYWJsZV9lbWFpbHN8fHQucHVzaChhLmNyZWF0ZSh7dGV4dDpJMThuLnQoImVtYWlsc19hcmVfZGlzYWJsZWQiKSxpZDoiYWxlcnQtZW1haWxzLWRpc2FibGVkIn0pKSx0aGlzLnNpdGUud2l6YXJkX3JlcXVpcmVkJiYoZT1JMThuLnQoIndpemFyZF9yZXF1aXJlZCIse3VybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvd2l6YXJkIil9KSx0LnB1c2goYS5jcmVhdGUoe3RleHQ6ZSxpZDoiYWxlcnQtd2l6YXJkIn0pKSksdGhpcy5nZXQoImN1cnJlbnRVc2VyLnN0YWZmIikmJnRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX2VuYWJsZWQmJigwPHRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX21pbl91c2Vycz90LnB1c2goYS5jcmVhdGUoe3RleHQ6STE4bi50KCJib290c3RyYXBfbW9kZV9lbmFibGVkIix7bWluX3VzZXJzOnRoaXMuc2l0ZVNldHRpbmdzLmJvb3RzdHJhcF9tb2RlX21pbl91c2Vyc30pLGlkOiJhbGVydC1ib290c3RyYXAtbW9kZSJ9KSk6dC5wdXNoKGEuY3JlYXRlKHt0ZXh0OkkxOG4udCgiYm9vdHN0cmFwX21vZGVfZGlzYWJsZWQiKSxpZDoiYWxlcnQtYm9vdHN0cmFwLW1vZGUifSkpKSx0aGlzLnNpdGVTZXR0aW5ncy5nbG9iYWxfbm90aWNlJiZ0aGlzLnNpdGVTZXR0aW5ncy5nbG9iYWxfbm90aWNlLmxlbmd0aCYmdC5wdXNoKGEuY3JlYXRlKHt0ZXh0OnRoaXMuc2l0ZVNldHRpbmdzLmdsb2JhbF9ub3RpY2UsaWQ6ImFsZXJ0LWdsb2JhbC1ub3RpY2UifSkpLHRoaXMubG9nTm90aWNlJiZ0LnB1c2godGhpcy5sb2dOb3RpY2UpLHQuY29uY2F0KG8pLmZpbHRlcihmdW5jdGlvbihlKXtpZihlLm9wdGlvbnMudmlzaWJpbGl0eSlyZXR1cm4gZS5vcHRpb25zLnZpc2liaWxpdHkoZSk7dmFyIHQ9cisiLSIrZS5pZCxuPXMua2V5VmFsdWVTdG9yZS5nZXQodCk7aWYoIW4pcmV0dXJuITA7aWYoIWUub3B0aW9ucy5wZXJzaXN0ZW50RGlzbWlzcylyZXR1cm4hMDtpZihlLm9wdGlvbnMuZGlzbWlzc0R1cmF0aW9uKXt2YXIgaT1tb21lbnQobikuYWRkKGUub3B0aW9ucy5kaXNtaXNzRHVyYXRpb24pO3JldHVybiBtb21lbnQoKS5pc0FmdGVyKGkpfXJldHVybiExfSl9KSxhY3Rpb25zOntkaXNtaXNzTm90aWNlOmZ1bmN0aW9uKGUpe2Uub3B0aW9ucy5vbkRpc21pc3MmJmUub3B0aW9ucy5vbkRpc21pc3MoZSksZS5vcHRpb25zLnBlcnNpc3RlbnREaXNtaXNzJiZ0aGlzLmtleVZhbHVlU3RvcmUuc2V0KHtrZXk6cisiLSIrZS5pZCx2YWx1ZTptb21lbnQoKS50b0lTT1N0cmluZyghMCl9KTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ2xvYmFsLW5vdGljZS0iK2UuaWQpO3QmJih0LnN0eWxlLmRpc3BsYXk9Im5vbmUiKX19LF9zZXR1cE9ic2VydmVyczpmdW5jdGlvbigpe3RoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXI9KDAsdC5iaW5kKSh0aGlzLHRoaXMuX2hhbmRsZUxvZ3NOb3RpY2VVcGRhdGUpLGkuZGVmYXVsdC5jdXJyZW50KCkuYWRkT2JzZXJ2ZXIoImhpZGRlbiIsdGhpcy5fYm91bmRMb2dzTm90aWNlSGFuZGxlciksaS5kZWZhdWx0LmN1cnJlbnQoKS5hZGRPYnNlcnZlcigidGV4dCIsdGhpcy5fYm91bmRMb2dzTm90aWNlSGFuZGxlcil9LF90ZWFyRG93bk9ic2VydmVyczpmdW5jdGlvbigpe3RoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXImJihpLmRlZmF1bHQuY3VycmVudCgpLnJlbW92ZU9ic2VydmVyKCJ0ZXh0Iix0aGlzLl9ib3VuZExvZ3NOb3RpY2VIYW5kbGVyKSxpLmRlZmF1bHQuY3VycmVudCgpLnJlbW92ZU9ic2VydmVyKCJoaWRkZW4iLHRoaXMuX2JvdW5kTG9nc05vdGljZUhhbmRsZXIpLCgwLHQuY2FuY2VsKSh0aGlzLl9ib3VuZExvZ3NOb3RpY2VIYW5kbGVyKSl9LF9oYW5kbGVMb2dzTm90aWNlVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGU9YS5jcmVhdGUoe3RleHQ6aS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJtZXNzYWdlIiksaWQ6ImFsZXJ0LWxvZ3Mtbm90aWNlIixvcHRpb25zOntkaXNtaXNzYWJsZTohMCxwZXJzaXN0ZW50RGlzbWlzczohMSx2aXNpYmlsaXR5OmZ1bmN0aW9uKCl7cmV0dXJuIWkuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlkZGVuIil9LG9uRGlzbWlzczpmdW5jdGlvbigpe2kuZGVmYXVsdC5jdXJyZW50UHJvcCgiaGlkZGVuIiwhMCksaS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0ZXh0IiwiIil9fX0pO3RoaXMuc2V0KCJsb2dOb3RpY2UiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9nb29nbGUtc2VhcmNoIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHM9e2NsYXNzTmFtZXM6WyJnb29nbGUtc2VhcmNoLWZvcm0iXSxjbGFzc05hbWVCaW5kaW5nczpbImhpZGRlbjpoaWRkZW4iXSxoaWRkZW46KDAsbi5hbGlhcykoInNpdGVTZXR0aW5ncy5sb2dpbl9yZXF1aXJlZCIpLHNpdGVVcmw6ZnVuY3Rpb24oKXtyZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wrIi8vIitsb2NhdGlvbi5ob3N0K0Rpc2NvdXJzZS5nZXRVUkwoIi8iKX19LG89cyxyPSJzaXRlVXJsIixhPVt0LmRlZmF1bHRdLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzaXRlVXJsIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJsaSJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtY2FyZC1jb250ZW50cyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9jYXJkLWNvbnRlbnRzLWJhc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL2NsZWFucy11cCIsImRpc2NvdXJzZS9saWIvdXJsIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCxyLmRlZmF1bHQsKGM9KDAscy5kZWZhdWx0KSgiZ3JvdXAudXNlcl9jb3VudCIsImdyb3VwLm1lbWJlcnMubGVuZ3RoIiksZD0oMCxzLmRlZmF1bHQpKCJncm91cC5uYW1lIikscD0oMCxzLmRlZmF1bHQpKCJncm91cCIpLHUobT17ZWxlbWVudElkOiJncm91cC1jYXJkIix0cmlnZ2VyaW5nTGlua0NsYXNzOiJtZW50aW9uLWdyb3VwIixjbGFzc05hbWVzOlsibm8tYmciLCJncm91cC1jYXJkIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOnNob3ciLCJzaG93QmFkZ2VzIiwiaGFzQ2FyZEJhZGdlSW1hZ2UiLCJpc0ZpeGVkOmZpeGVkIiwiZ3JvdXBDbGFzcyJdLGFsbG93QmFja2dyb3VuZHM6KDAsaS5zZXR0aW5nKSgiYWxsb3dfcHJvZmlsZV9iYWNrZ3JvdW5kcyIpLHNob3dCYWRnZXM6KDAsaS5zZXR0aW5nKSgiZW5hYmxlX2JhZGdlcyIpLHBvc3RTdHJlYW06KDAsdC5hbGlhcykoInRvcGljLnBvc3RTdHJlYW0iKSx2aWV3aW5nVG9waWM6KDAsdC5tYXRjaCkoImN1cnJlbnRQYXRoIiwvXnRvcGljXC4vKSxzaG93TW9yZU1lbWJlcnM6KDAsdC5ndCkoIm1vcmVNZW1iZXJzQ291bnQiLDApLGhhc01lbWJlcnNPcklzTWVtYmVyOigwLHQub3IpKCJncm91cC5tZW1iZXJzIiwiZ3JvdXAuaXNfZ3JvdXBfb3duZXJfZGlzcGxheSIsImdyb3VwLmlzX2dyb3VwX3VzZXIiKSxncm91cDpudWxsLG1vcmVNZW1iZXJzQ291bnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSxncm91cENsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJncm91cC1jYXJkLSIrZToiIn0sZ3JvdXBQYXRoOmZ1bmN0aW9uKGUpe3JldHVybigwLGEuZ3JvdXBQYXRoKShlLm5hbWUpfSxfc2hvd0NhbGxiYWNrOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczt0aGlzLnN0b3JlLmZpbmQoImdyb3VwIixlKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBuLnNldFByb3BlcnRpZXMoe2dyb3VwOmUsdmlzaWJsZTohMH0pLG4uX3Bvc2l0aW9uQ2FyZCh0KSxlLmZsYWlyX3VybHx8ZS5mbGFpcl9iZ19jb2xvcnx8ZS5zZXQoImZsYWlyX3VybCIsImZhLXVzZXJzIiksZS5tZW1iZXJzLmxlbmd0aDwxMD9lLmZpbmRNZW1iZXJzKHtsaW1pdDoxMH0sITApOmwuUHJvbWlzZS5yZXNvbHZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBuLl9jbG9zZSgpfSkuZmluYWxseShmdW5jdGlvbigpe3JldHVybiBuLnNldCgibG9hZGluZyIsbnVsbCl9KX0sX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJncm91cCIsbnVsbCl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSxhY3Rpb25zOntjbG9zZTpmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCl9LGNhbmNlbEZpbHRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zdFN0cmVhbTtlLmNhbmNlbEZpbHRlcigpLGUucmVmcmVzaCgpLHRoaXMuX2Nsb3NlKCl9LG1lc3NhZ2VHcm91cDpmdW5jdGlvbigpe3RoaXMuY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyh0aGlzLmdldCgiZ3JvdXAubmFtZSIpKX0sc2hvd0dyb3VwOmZ1bmN0aW9uKGUpe3RoaXMuc2hvd0dyb3VwKGUpLHRoaXMuX2Nsb3NlKCl9LHNob3dVc2VyOmZ1bmN0aW9uKGUpe3RoaXMuc2hvd1VzZXIoZSksdGhpcy5fY2xvc2UoKX19fSwibW9yZU1lbWJlcnNDb3VudCIsW2NdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwibW9yZU1lbWJlcnNDb3VudCIpKT9mLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KSxtKSx1KG0sImdyb3VwQ2xhc3MiLFtkXSwoaD0oaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImdyb3VwQ2xhc3MiKSk/aC52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSksbSksdShtLCJncm91cFBhdGgiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImdyb3VwUGF0aCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtZmxhaXItaW5wdXRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvYWpheCIsIkBlbWJlci90ZW1wbGF0ZSJdLGZ1bmN0aW9uKGUsdCxuLGksbyxzLHIsYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGwobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHUsYyxkLHAsbSxmLGgsYjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKHU9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmxhaXJfdXJsIiksYz0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJY29uIiksZD0oMCx0Lm9ic2VydmVzKSgibW9kZWwuZmxhaXJfdXJsIikscD0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJY29uIiksbT0oMCx0LmRlZmF1bHQpKCJtb2RlbC5mbGFpcl91cmwiLCJmbGFpclByZXZpZXdJbWFnZSIsIm1vZGVsLmZsYWlyQmFja2dyb3VuZEhleENvbG9yIiwibW9kZWwuZmxhaXJIZXhDb2xvciIpLGY9KDAsdC5kZWZhdWx0KSgibW9kZWwuZmxhaXJCYWNrZ3JvdW5kSGV4Q29sb3IiKSxoPSgwLHQuZGVmYXVsdCkoImZsYWlyUHJldmlld0ltYWdlIiksbChiPXtjbGFzc05hbWVzOlsiZ3JvdXAtZmxhaXItaW5wdXRzIl0sZGVtb0F2YXRhclVybDpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvaW1hZ2VzL2F2YXRhci5wbmciKX0sZmxhaXJQcmV2aWV3SWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZSYmL2ZhKHJ8Yj8pLS8udGVzdChlKX0sZmxhaXJQcmV2aWV3SWNvblVybDpmdW5jdGlvbihlLHQpe3JldHVybiB0PygwLHMuY29udmVydEljb25DbGFzcykoZSk6IiJ9LF9sb2FkU1ZHSWNvbjpmdW5jdGlvbigpeygwLG4uZGVib3VuY2UpKHRoaXMsdGhpcy5fbG9hZEljb24sMWUzKX0sX2xvYWRJY29uOmZ1bmN0aW9uKCl7dmFyIGU9KDAscy5jb252ZXJ0SWNvbkNsYXNzKSh0aGlzLmdldCgibW9kZWwuZmxhaXJfdXJsIikpLHQ9IiNzdmctc3ByaXRlcyIsbj0iYWpheC1pY29uLWhvbGRlciIsaT10KyIgLiIrbjtlJiYoJCh0KyIgc3ltYm9sIyIrZSkubGVuZ3RofHwoMCxyLmFqYXgpKCIvc3ZnLXNwcml0ZS9zZWFyY2gvIitlKS50aGVuKGZ1bmN0aW9uKGUpezA9PT0kKGkpLmxlbmd0aCYmJCh0KS5hcHBlbmQoJzxkaXYgY2xhc3M9IicrbisnIj4nKSwkKGkpLmh0bWwoIjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBzdHlsZT0nZGlzcGxheTogbm9uZTsnPiIrZSsiPC9zdmc+Iil9KSl9LGZsYWlyUHJldmlld0ltYWdlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiF0fSxmbGFpclByZXZpZXdTdHlsZTpmdW5jdGlvbihlLHQsbixpKXt2YXIgcz0iIjtyZXR1cm4gdCYmKHMrPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIisoMCxvLmVzY2FwZUV4cHJlc3Npb24pKGUpKyIpOyIpLG4mJihzKz0iYmFja2dyb3VuZC1jb2xvcjogIyIrbisiOyIpLGkmJihzKz0iY29sb3I6ICMiK2krIjsiKSwoMCxhLmh0bWxTYWZlKShzKX0sZmxhaXJQcmV2aWV3Q2xhc3NlczpmdW5jdGlvbihlKXtpZihlKXJldHVybiJyb3VuZGVkIn0sZmxhaXJQcmV2aWV3TGFiZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZT8iaW1hZ2UiOiJpY29uIjtyZXR1cm4gSTE4bi50KCJncm91cHMuZmxhaXJfcHJldmlld18iK3QpfX0sImRlbW9BdmF0YXJVcmwiLFt0LmRlZmF1bHRdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZGVtb0F2YXRhclVybCIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3SWNvbiIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3SWNvbiIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3SWNvblVybCIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3SWNvblVybCIpLGIpLGwoYiwiX2xvYWRTVkdJY29uIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJfbG9hZFNWR0ljb24iKSxiKSxsKGIsImZsYWlyUHJldmlld0ltYWdlIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJmbGFpclByZXZpZXdJbWFnZSIpLGIpLGwoYiwiZmxhaXJQcmV2aWV3U3R5bGUiLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImZsYWlyUHJldmlld1N0eWxlIiksYiksbChiLCJmbGFpclByZXZpZXdDbGFzc2VzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJmbGFpclByZXZpZXdDbGFzc2VzIiksYiksbChiLCJmbGFpclByZXZpZXdMYWJlbCIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiZmxhaXJQcmV2aWV3TGFiZWwiKSxiKSxiKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLWluZGV4LXRvZ2dsZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiJ0aCIsY2xhc3NOYW1lczpbInNvcnRhYmxlIl0sY2hldnJvbkljb246bnVsbCx0b2dnbGVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5vcmRlcj09PXRoaXMuZmllbGQ/dGhpcy5zZXQoImRlc2MiLCF0aGlzLmRlc2N8fG51bGwpOnRoaXMuc2V0UHJvcGVydGllcyh7b3JkZXI6dGhpcy5maWVsZCxkZXNjOm51bGx9KX0sdG9nZ2xlQ2hldnJvbjpmdW5jdGlvbigpe3ZhciBlO3RoaXMub3JkZXI9PT10aGlzLmZpZWxkPyhlPSgwLG4uaWNvbkhUTUwpKHRoaXMuZGVzYz8iY2hldnJvbi1kb3duIjoiY2hldnJvbi11cCIpLHRoaXMuc2V0KCJjaGV2cm9uSWNvbiIsKCIiK2UpLmh0bWxTYWZlKCkpKTp0aGlzLnNldCgiY2hldnJvbkljb24iLG51bGwpfSxjbGljazpmdW5jdGlvbigpe3RoaXMudG9nZ2xlUHJvcGVydGllcygpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy50b2dnbGVDaGV2cm9uKCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLW1hbmFnZS1sb2dzLWZpbHRlciIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPSgwLHQuZGVmYXVsdCkoInR5cGUiKSxvPSgwLHQuZGVmYXVsdCkoInZhbHVlIiwidHlwZSIpLGkocj17dGFnTmFtZToiIixsYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLmxvZ3MuIitlKX0sZmlsdGVyVGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiJhY3Rpb24iPT09dD9JMThuLnQoImdyb3VwX2hpc3Rvcmllcy5hY3Rpb25zLiIrZSk6ZX0sYWN0aW9uczp7Y2xlYXJGaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5jbGVhckZpbHRlcihlKX19fSwibGFiZWwiLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsImxhYmVsIiksciksaShyLCJmaWx0ZXJUZXh0Iixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJmaWx0ZXJUZXh0IikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3ciLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6IiIsZXhwYW5kRGV0YWlsczohMSxhY3Rpb25zOnt0b2dnbGVEZXRhaWxzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZXhwYW5kRGV0YWlscyIpfSxmaWx0ZXI6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImZpbHRlcnMuIitlLmtleSxlLnZhbHVlKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJzYXZpbmciKSxyPW89e3NhdmluZzpudWxsLHNhdmluZ1RleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGU/STE4bi50KCJzYXZpbmciKTpJMThuLnQoInNhdmUiKX0sYWN0aW9uczp7c2F2ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuc2V0KCJzYXZpbmciLCEwKSx0aGlzLm1vZGVsLnNhdmUoKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoInNhdmVkIiwhMCl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJzYXZpbmciLCExKX0pfX19LGE9InNhdmluZ1RleHQiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJzYXZpbmdUZXh0IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJncm91cC1tZW1iZXItZHJvcGRvd24iXSxjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIl0sc2VsZWN0S2l0T3B0aW9uczp7aWNvbjoid3JlbmNoIixzaG93RnVsbFRpdGxlOiExfSxjb250ZW50OigwLG4uY29tcHV0ZWQpKCJtZW1iZXIub3duZXIiLGZ1bmN0aW9uKCl7dmFyIGU9W3tpZDoicmVtb3ZlTWVtYmVyIixuYW1lOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMucmVtb3ZlX21lbWJlciIpLGRlc2NyaXB0aW9uOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMucmVtb3ZlX21lbWJlcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InVzZXItdGltZXMifV07cmV0dXJuIHRoaXMuZ2V0KCJjdXJyZW50VXNlci5hZG1pbiIpJiYodGhpcy5tZW1iZXIub3duZXI/ZS5wdXNoKHtpZDoicmVtb3ZlT3duZXIiLG5hbWU6STE4bi50KCJncm91cHMubWVtYmVycy5yZW1vdmVfb3duZXIiKSxkZXNjcmlwdGlvbjpJMThuLnQoImdyb3Vwcy5tZW1iZXJzLnJlbW92ZV9vd25lcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InNoaWVsZC1hbHQifSk6ZS5wdXNoKHtpZDoibWFrZU93bmVyIixuYW1lOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMubWFrZV9vd25lciIpLGRlc2NyaXB0aW9uOkkxOG4udCgiZ3JvdXBzLm1lbWJlcnMubWFrZV9vd25lcl9kZXNjcmlwdGlvbiIse3VzZXJuYW1lOnRoaXMuZ2V0KCJtZW1iZXIudXNlcm5hbWUiKX0pLGljb246InNoaWVsZC1hbHQifSkpLGV9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1tZW1iZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJpdGVtIl0sYWN0aW9uczp7cmVtb3ZlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBY3Rpb24odGhpcy5tZW1iZXIpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChyPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnB1YmxpY19hZG1pc3Npb24iLCJ1c2VySXNHcm91cFVzZXIiKSxhPSgwLG4uZGVmYXVsdCkoIm1vZGVsLnB1YmxpY19leGl0IiwidXNlcklzR3JvdXBVc2VyIiksbD0oMCxuLmRlZmF1bHQpKCJtb2RlbC5hbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzIiwidXNlcklzR3JvdXBVc2VyIiksdT0oMCxuLmRlZmF1bHQpKCJtb2RlbC5pc19ncm91cF91c2VyIiksbyhjPXtjbGFzc05hbWVzOlsiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iXSxjYW5Kb2luR3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXR9LGNhbkxlYXZlR3JvdXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmdH0sY2FuUmVxdWVzdE1lbWJlcnNoaXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXR9LHVzZXJJc0dyb3VwVXNlcjpmdW5jdGlvbihlKXtyZXR1cm4hIWV9LF9zaG93TG9naW5Nb2RhbDpmdW5jdGlvbigpe3RoaXMuc2hvd0xvZ2luKCksJC5jb29raWUoImRlc3RpbmF0aW9uX3VybCIsd2luZG93LmxvY2F0aW9uLmhyZWYpfSxyZW1vdmVGcm9tR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMubW9kZWwucmVtb3ZlTWVtYmVyKHRoaXMuY3VycmVudFVzZXIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tb2RlbC5zZXQoImlzX2dyb3VwX3VzZXIiLCExKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInVwZGF0aW5nTWVtYmVyc2hpcCIsITEpfSl9LGFjdGlvbnM6e2pvaW5Hcm91cDpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpczt0aGlzLmN1cnJlbnRVc2VyPyh0aGlzLnNldCgidXBkYXRpbmdNZW1iZXJzaGlwIiwhMCksKGU9dGhpcy5tb2RlbCkuYWRkTWVtYmVycyh0aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJpc19ncm91cF91c2VyIiwhMCl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5zZXQoInVwZGF0aW5nTWVtYmVyc2hpcCIsITEpfSkpOnRoaXMuX3Nob3dMb2dpbk1vZGFsKCl9LGxlYXZlR3JvdXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuc2V0KCJ1cGRhdGluZ01lbWJlcnNoaXAiLCEwKSwhdGhpcy5tb2RlbC5wdWJsaWNfYWRtaXNzaW9uKXJldHVybiBib290Ym94LmNvbmZpcm0oSTE4bi50KCJncm91cHMuY29uZmlybV9sZWF2ZSIpLEkxOG4udCgibm9fdmFsdWUiKSxJMThuLnQoInllc192YWx1ZSIpLGZ1bmN0aW9uKGUpe2U/dC5yZW1vdmVGcm9tR3JvdXAoKTp0LnNldCgidXBkYXRpbmdNZW1iZXJzaGlwIiwhMSl9KTt0aGlzLnJlbW92ZUZyb21Hcm91cCgpfSxzaG93UmVxdWVzdE1lbWJlcnNoaXBGb3JtOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VXNlcj8oMCxzLmRlZmF1bHQpKCJyZXF1ZXN0LWdyb3VwLW1lbWJlcnNoaXAtZm9ybSIse21vZGVsOnRoaXMubW9kZWx9KTp0aGlzLl9zaG93TG9naW5Nb2RhbCgpfX19LCJjYW5Kb2luR3JvdXAiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImNhbkpvaW5Hcm91cCIpLGMpLG8oYywiY2FuTGVhdmVHcm91cCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2FuTGVhdmVHcm91cCIpLGMpLG8oYywiY2FuUmVxdWVzdE1lbWJlcnNoaXAiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImNhblJlcXVlc3RNZW1iZXJzaGlwIiksYyksbyhjLCJ1c2VySXNHcm91cFVzZXIiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInVzZXJJc0dyb3VwVXNlciIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXAtbmF2aWdhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToiIn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cC1wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInBvc3QudXJsIikscz17cG9zdFVybDpEaXNjb3Vyc2UuZ2V0VVJMfSxyPXMsYT0icG9zdFVybCIsbD1baV0sbz0obz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInBvc3RVcmwiKSk/by52YWx1ZTp2b2lkIDAsdT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gb319LGM9cyxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3VwLXNlbGVjdG9yIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIl0sZnVuY3Rpb24oZSxzLHQsbixvKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsbi5kZWZhdWx0KSgicGxhY2Vob2xkZXJLZXkiKSxhPSgwLG4ub2JzZXJ2ZXMpKCJncm91cE5hbWVzIiksbD0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGkodT17cGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KGUpOiIifSxfdXBkYXRlOmZ1bmN0aW9uKCl7InRydWUiPT09dGhpcy5jYW5SZWNlaXZlVXBkYXRlcyYmdGhpcy5faW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSh7dXBkYXRlRGF0YTohMH0pfSxfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dm9pZCAwLGk9dGhpcy5ncm91cE5hbWVzOyQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikpLmF1dG9jb21wbGV0ZSh7YWxsb3dBbnk6ITEsaXRlbXM6Xy5pc0FycmF5KGkpP2k6KDAscy5pc0VtcHR5KShpKT9bXTpbaV0sc2luZ2xlOnRoaXMuc2luZ2xlLGZ1bGxXaWR0aFdyYXA6dGhpcy5mdWxsV2lkdGhXcmFwLHVwZGF0ZURhdGE6ISghZXx8IWUudXBkYXRlRGF0YSkmJmUudXBkYXRlRGF0YSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe249ZSx0LnNldCgiZ3JvdXBOYW1lcyIsZS5qb2luKCIsIikpfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lfSxkYXRhU291cmNlOmZ1bmN0aW9uKGUpe3JldHVybiB0Lmdyb3VwRmluZGVyKGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4/ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW4uYW55KGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dC5uYW1lfSl9KTplfSl9LHRlbXBsYXRlOigwLG8uZmluZFJhd1RlbXBsYXRlKSgiZ3JvdXAtc2VsZWN0b3ItYXV0b2NvbXBsZXRlIil9KX19LCJwbGFjZWhvbGRlciIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwicGxhY2Vob2xkZXIiKSx1KSxpKHUsIl91cGRhdGUiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsIl91cGRhdGUiKSx1KSxpKHUsIl9pbml0aWFsaXplQXV0b2NvbXBsZXRlIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfaW5pdGlhbGl6ZUF1dG9jb21wbGV0ZSIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXBzLWZvcm0taW50ZXJhY3Rpb24tZmllbGRzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLmRlZmF1bHQpKCJzaXRlU2V0dGluZ3MuZW1haWxfaW4iLCJtb2RlbC5hdXRvbWF0aWMiLCJjdXJyZW50VXNlci5hZG1pbiIpLG89cz17aW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnZpc2liaWxpdHlMZXZlbE9wdGlvbnM9W3tuYW1lOkkxOG4udCgiYWRtaW4uZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi52aXNpYmlsaXR5X2xldmVscy5wdWJsaWMiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMubG9nZ2VkX29uX3VzZXJzIiksdmFsdWU6MX0se25hbWU6STE4bi50KCJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnZpc2liaWxpdHlfbGV2ZWxzLm1lbWJlcnMiKSx2YWx1ZToyfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMuc3RhZmYiKSx2YWx1ZTozfSx7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMub3duZXJzIiksdmFsdWU6NH1dLHRoaXMuYWxpYXNMZXZlbE9wdGlvbnM9W3tuYW1lOkkxOG4udCgiZ3JvdXBzLmFsaWFzX2xldmVscy5ub2JvZHkiKSx2YWx1ZTowfSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMub25seV9hZG1pbnMiKSx2YWx1ZToxfSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMubW9kc19hbmRfYWRtaW5zIiksdmFsdWU6Mn0se25hbWU6STE4bi50KCJncm91cHMuYWxpYXNfbGV2ZWxzLm1lbWJlcnNfbW9kc19hbmRfYWRtaW5zIiksdmFsdWU6M30se25hbWU6STE4bi50KCJncm91cHMuYWxpYXNfbGV2ZWxzLm93bmVyc19tb2RzX2FuZF9hZG1pbnMiKSx2YWx1ZTo0fSx7bmFtZTpJMThuLnQoImdyb3Vwcy5hbGlhc19sZXZlbHMuZXZlcnlvbmUiKSx2YWx1ZTo5OX1dfSxzaG93RW1haWxTZXR0aW5nczpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJm4mJiF0fX0scj0ic2hvd0VtYWlsU2V0dGluZ3MiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzaG93RW1haWxTZXR0aW5ncyIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2dyb3Vwcy1mb3JtLW1lbWJlcnNoaXAtZmllbGRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgibW9kZWwudmlzaWJpbGl0eV9sZXZlbCIsIm1vZGVsLnB1YmxpY19hZG1pc3Npb24iKSxyPSgwLHQuZGVmYXVsdCkoIm1vZGVsLnZpc2liaWxpdHlfbGV2ZWwiLCJtb2RlbC5hbGxvd19tZW1iZXJzaGlwX3JlcXVlc3RzIikscyhhPXt0b2tlblNlcGFyYXRvcjoifCIsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnRydXN0TGV2ZWxPcHRpb25zPVt7bmFtZTpJMThuLnQoImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC50cnVzdF9sZXZlbHNfbm9uZSIpLHZhbHVlOjB9LHtuYW1lOjEsdmFsdWU6MX0se25hbWU6Mix2YWx1ZToyfSx7bmFtZTozLHZhbHVlOjN9LHtuYW1lOjQsdmFsdWU6NH1dfSxncm91cFRydXN0TGV2ZWw6KDAsaS5jb21wdXRlZCkoIm1vZGVsLmdyYW50X3RydXN0X2xldmVsIiwidHJ1c3RMZXZlbE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0KCJncmFudF90cnVzdF9sZXZlbCIpfHx0aGlzLnRydXN0TGV2ZWxPcHRpb25zLmZpcnN0T2JqZWN0LnZhbHVlfSksZGlzYWJsZU1lbWJlcnNoaXBSZXF1ZXN0U2V0dGluZzpmdW5jdGlvbihlLHQpe3JldHVybiBlPXBhcnNlSW50KGUsMTApLHR8fDE8ZX0sZGlzYWJsZVB1YmxpY1NldHRpbmc6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1wYXJzZUludChlLDEwKSx0fHwxPGV9LGVtYWlsRG9tYWluczooMCxpLmNvbXB1dGVkKSgibW9kZWwuZW1haWxEb21haW5zIixmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmVtYWlsRG9tYWlucy5zcGxpdCh0aGlzLnRva2VuU2VwYXJhdG9yKS5maWx0ZXIoQm9vbGVhbil9KSxhY3Rpb25zOntvbkNoYW5nZUVtYWlsRG9tYWluc1NldHRpbmc6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoIm1vZGVsLmF1dG9tYXRpY19tZW1iZXJzaGlwX2VtYWlsX2RvbWFpbnMiLGUuam9pbih0aGlzLnRva2VuU2VwYXJhdG9yKSl9fX0sImRpc2FibGVNZW1iZXJzaGlwUmVxdWVzdFNldHRpbmciLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImRpc2FibGVNZW1iZXJzaGlwUmVxdWVzdFNldHRpbmciKSxhKSxzKGEsImRpc2FibGVQdWJsaWNTZXR0aW5nIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJkaXNhYmxlUHVibGljU2V0dGluZyIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvZ3JvdXBzLWZvcm0tcHJvZmlsZS1maWVsZHMiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvZGVib3VuY2UiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWkuZGVmYXVsdC5leHRlbmQoKGM9KDAscy5kZWZhdWx0KSgiYmFzaWNOYW1lVmFsaWRhdGlvbiIsInVuaXF1ZU5hbWVWYWxpZGF0aW9uIiksZD0oMCxzLm9ic2VydmVzKSgibmFtZUlucHV0IiksdShwPXtkaXNhYmxlU2F2ZTpudWxsLG5hbWVJbnB1dDpudWxsLGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5nZXQoIm1vZGVsLm5hbWUiKTtlP3RoaXMuc2V0KCJuYW1lSW5wdXQiLGUpOnRoaXMuc2V0KCJkaXNhYmxlU2F2ZSIsITApfSxjYW5FZGl0OigwLG4ubm90KSgibW9kZWwuYXV0b21hdGljIiksbmFtZVZhbGlkYXRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8ZX0sX3ZhbGlkYXRlTmFtZTpmdW5jdGlvbigpe2lmKG5hbWU9dGhpcy5uYW1lSW5wdXQsbmFtZSE9PXRoaXMuZ2V0KCJtb2RlbC5uYW1lIikpcmV0dXJuIHZvaWQgMD09PW5hbWU/dGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKCk6IiI9PT1uYW1lPyh0aGlzLnNldCgidW5pcXVlTmFtZVZhbGlkYXRpb24iLG51bGwpLHRoaXMuX2ZhaWxlZElucHV0VmFsaWRhdGlvbihJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcubmFtZS5ibGFuayIpKSk6bmFtZS5sZW5ndGg8dGhpcy5zaXRlU2V0dGluZ3MubWluX3VzZXJuYW1lX2xlbmd0aD90aGlzLl9mYWlsZWRJbnB1dFZhbGlkYXRpb24oSTE4bi50KCJhZG1pbi5ncm91cHMubmV3Lm5hbWUudG9vX3Nob3J0IikpOm5hbWUubGVuZ3RoPnRoaXMuc2l0ZVNldHRpbmdzLm1heF91c2VybmFtZV9sZW5ndGg/dGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKEkxOG4udCgiYWRtaW4uZ3JvdXBzLm5ldy5uYW1lLnRvb19sb25nIikpOih0aGlzLmNoZWNrR3JvdXBOYW1lKCksdGhpcy5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKEkxOG4udCgiYWRtaW4uZ3JvdXBzLm5ldy5uYW1lLmNoZWNraW5nIikpKX0sY2hlY2tHcm91cE5hbWU6KDAsYS5kZWZhdWx0KShmdW5jdGlvbigpe3ZhciBpPXRoaXM7bmFtZT10aGlzLm5hbWVJbnB1dCwoMCx0LmlzRW1wdHkpKG5hbWUpfHxvLmRlZmF1bHQuY2hlY2tOYW1lKG5hbWUpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQsbj0idW5pcXVlTmFtZVZhbGlkYXRpb24iO2UuYXZhaWxhYmxlPyhpLnNldChuLGwuZGVmYXVsdC5jcmVhdGUoe29rOiEwLHJlYXNvbjpJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcubmFtZS5hdmFpbGFibGUiKX0pKSxpLnNldCgiZGlzYWJsZVNhdmUiLCExKSxpLnNldCgibW9kZWwubmFtZSIsaS5uYW1lSW5wdXQpKToodD12b2lkIDAsdD1lLmVycm9ycz9lLmVycm9ycy5qb2luKCIgIik6STE4bi50KCJhZG1pbi5ncm91cHMubmV3Lm5hbWUubm90X2F2YWlsYWJsZSIpLGkuc2V0KG4saS5fZmFpbGVkSW5wdXRWYWxpZGF0aW9uKHQpKSl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKX0sNTAwKSxfZmFpbGVkSW5wdXRWYWxpZGF0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJkaXNhYmxlU2F2ZSIsITApO3ZhciB0PXtmYWlsZWQ6ITB9O2UmJih0LnJlYXNvbj1lKSx0aGlzLnNldCgiYmFzaWNOYW1lVmFsaWRhdGlvbiIsbC5kZWZhdWx0LmNyZWF0ZSh0KSl9fSwibmFtZVZhbGlkYXRpb24iLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5hbWVWYWxpZGF0aW9uIikscCksdShwLCJfdmFsaWRhdGVOYW1lIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJfdmFsaWRhdGVOYW1lIikscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9ncm91cHMtaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscyxvLHIsYSxsLHUsYztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKGk9KDAsdC5kZWZhdWx0KSgiZ3JvdXAuZnVsbF9uYW1lIiksbz1zPXt0YWdOYW1lOiJzcGFuIixjbGFzc05hbWVzOlsiZ3JvdXAtaW5mby1kZXRhaWxzIl0sc2hvd0Z1bGxOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aH19LHI9InNob3dGdWxsTmFtZSIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInNob3dGdWxsTmFtZSIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hlYWRlci1leHRyYS1pbmZvIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubmVlZHNTZWNvbmRSb3dJZj1mdW5jdGlvbigpeygwLHQuZGVmYXVsdCkoImBuZWVkc1NlY29uZFJvd0lmYCBpcyBkZXByZWNhdGVkLiBVc2Ugd2lkZ2V0IGhvb2tzIG9uIGBoZWFkZXItc2Vjb25kLXJvd2AiKX19KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hpZGUtbW9kYWwtdHJpZ2dlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKCIuZC1tb2RhbC5maXhlZC1tb2RhbCIpLm1vZGFsKCJoaWRlIikuYWRkQ2xhc3MoImhpZGRlbiIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9oaWdobGlnaHQtdGV4dCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvaGlnaGxpZ2h0LXRleHQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToic3BhbiIsX2hpZ2hsaWdodE9uSW5zZXJ0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oaWdobGlnaHQ7KDAsbi5kZWZhdWx0KSgkKHRoaXMuZWxlbWVudCksZSl9Lm9ic2VydmVzKCJoaWdobGlnaHQiKS5vbigiZGlkSW5zZXJ0RWxlbWVudCIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2hvbmV5cG90LWlucHV0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLHMsbyxyLGEsbCx1O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgobj0oMCx0Lm9uKSgiaW5pdCIpLHM9aT17X2luaXQ6ZnVuY3Rpb24oKXstMTxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpP3RoaXMuc2V0KCJ0eXBlIiwidGV4dCIpOnRoaXMuc2V0KCJ0eXBlIiwicGFzc3dvcmQiKX19LG89Il9pbml0IixyPVtuXSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSwiX2luaXQiKSxsPWksdT17fSxPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3VbZV09YVtlXX0pLHUuZW51bWVyYWJsZT0hIXUuZW51bWVyYWJsZSx1LmNvbmZpZ3VyYWJsZT0hIXUuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gdXx8dS5pbml0aWFsaXplcikmJih1LndyaXRhYmxlPSEwKSx1PXIuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocyxvLGUpfHxlfSx1KSxsJiZ2b2lkIDAhPT11LmluaXRpYWxpemVyJiYodS52YWx1ZT11LmluaXRpYWxpemVyP3UuaW5pdGlhbGl6ZXIuY2FsbChsKTp2b2lkIDAsdS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PXUuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocyxvLHUpLHU9bnVsbCksaSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pZnJhbWVkLWh0bWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImlmcmFtZSIsaHRtbDpudWxsLGNsYXNzTmFtZToiIixjbGFzc05hbWVCaW5kaW5nczpbImh0bWw6aWZyYW1lZC1odG1sIiwiY2xhc3NOYW1lIl0sc2FuZGJveDoiYWxsb3ctc2FtZS1vcmlnaW4iLGF0dHJpYnV0ZUJpbmRpbmdzOlsic2FuZGJveDpzYW5kYm94Il0sZGlkUmVuZGVyOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMuZWxlbWVudC5jb250ZW50V2luZG93LmRvY3VtZW50O2Uub3BlbigidGV4dC9odG1sIiwicmVwbGFjZSIpLGUud3JpdGUodGhpcy5odG1sKSxlLmNsb3NlKCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0iLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImRpdiIsaXRlbXM6bnVsbCxhY3Rpb25zOntyZW1vdmVJZ25vcmVkVXNlcjpmdW5jdGlvbihlKXt0aGlzLm9uUmVtb3ZlSWdub3JlZFVzZXIoZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pZ25vcmVkLXVzZXItbGlzdCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7aXRlbTpudWxsLGFjdGlvbnM6e3JlbW92ZUlnbm9yZWRVc2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5zZXQoInNhdmVkIiwhMSksdGhpcy5pdGVtcy5yZW1vdmVPYmplY3QoZSkscy5kZWZhdWx0LmZpbmRCeVVzZXJuYW1lKGUpLnRoZW4oZnVuY3Rpb24oZSl7ZS51cGRhdGVOb3RpZmljYXRpb25MZXZlbCgibm9ybWFsIikuY2F0Y2gobi5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgic2F2ZWQiLCEwKX0pfSl9LG5ld0lnbm9yZWRVc2VyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCxpLmRlZmF1bHQpKCJpZ25vcmUtZHVyYXRpb24td2l0aC11c2VybmFtZSIse21vZGVsOnRoaXMubW9kZWx9KS5zZXRQcm9wZXJ0aWVzKHtpZ25vcmVkVXNlcm5hbWU6bnVsbCxvblVzZXJJZ25vcmVkOmZ1bmN0aW9uKGUpe3QuaXRlbXMuYWRkT2JqZWN0KGUpfX0pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvdXBsb2FkIiwiZGlzY291cnNlL2xpYi9saWdodGJveCIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgYyxkLHAsbSxmLGg7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1zLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwoYz0oMCx0LmRlZmF1bHQpKCJpbWFnZVVybCIsInBsYWNlaG9sZGVyVXJsIiksZD0oMCx0LmRlZmF1bHQpKCJwbGFjZWhvbGRlclVybCIpLHA9KDAsdC5kZWZhdWx0KSgiaW1hZ2VVcmwiKSxtPSgwLHQuZGVmYXVsdCkoImltYWdlQ0ROVVJMIiksZj0oMCx0LmRlZmF1bHQpKCJpbWFnZVVybCIpLHUoaD17Y2xhc3NOYW1lczpbImltYWdlLXVwbG9hZGVyIl0sbG9hZGluZ0xpZ2h0Ym94OiExLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fYXBwbHlMaWdodGJveCgpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9JCgiYS5saWdodGJveCIpO2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLm1hZ25pZmljUG9wdXAmJiQoImEubGlnaHRib3giKS5tYWduaWZpY1BvcHVwKCJjbG9zZSIpfSxzaG93aW5nUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4hZSYmdH0scGxhY2Vob2xkZXJTdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmlzRW1wdHkpKGUpPyIiLmh0bWxTYWZlKCk6KCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIitlKyIpIikuaHRtbFNhZmUoKX0saW1hZ2VDRE5VUkw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT8iIi5odG1sU2FmZSgpOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGUpfSxiYWNrZ3JvdW5kU3R5bGU6ZnVuY3Rpb24oZSl7cmV0dXJuKCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIitlKyIpIikuaHRtbFNhZmUoKX0saW1hZ2VCYXNlTmFtZTpmdW5jdGlvbihlKXtpZighKDAsbi5pc0VtcHR5KShlKSlyZXR1cm4gZS5zcGxpdCgiLyIpLnNsaWNlKC0xKVswXX0sdmFsaWRhdGVVcGxvYWRlZEZpbGVzT3B0aW9uczpmdW5jdGlvbigpe3JldHVybntpbWFnZXNPbmx5OiEwfX0sdXBsb2FkRG9uZTpmdW5jdGlvbihlKXt0aGlzLnNldFByb3BlcnRpZXMoe2ltYWdlVXJsOmUudXJsLGltYWdlSWQ6ZS5pZCxpbWFnZUZpbGVzaXplOmUuaHVtYW5fZmlsZXNpemUsaW1hZ2VGaWxlbmFtZTplLm9yaWdpbmFsX2ZpbGVuYW1lLGltYWdlV2lkdGg6ZS53aWR0aCxpbWFnZUhlaWdodDplLmhlaWdodH0pLHRoaXMuX2FwcGx5TGlnaHRib3goKSx0aGlzLm9uVXBsb2FkRG9uZSYmdGhpcy5vblVwbG9hZERvbmUoZSl9LF9vcGVuTGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOygwLGkubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJChlLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiYS5saWdodGJveCIpKS5tYWduaWZpY1BvcHVwKCJvcGVuIil9KX0sX2FwcGx5TGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuaW1hZ2VVcmwmJigwLGkubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4oMCxyLmRlZmF1bHQpKCQoZS5lbGVtZW50KSl9KX0sYWN0aW9uczp7dG9nZ2xlTGlnaHRib3g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaW1hZ2VGaWxlbmFtZT90aGlzLl9vcGVuTGlnaHRib3goKToodGhpcy5zZXQoImxvYWRpbmdMaWdodGJveCIsITApLCgwLGEuYWpheCkoIi91cGxvYWRzL2xvb2t1cC1tZXRhZGF0YSIse3R5cGU6IlBPU1QiLGRhdGE6e3VybDp0aGlzLmltYWdlVXJsfX0pLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXRQcm9wZXJ0aWVzKHtpbWFnZUZpbGVuYW1lOmUub3JpZ2luYWxfZmlsZW5hbWUsaW1hZ2VGaWxlc2l6ZTplLmh1bWFuX2ZpbGVzaXplLGltYWdlV2lkdGg6ZS53aWR0aCxpbWFnZUhlaWdodDplLmhlaWdodH0pLHQuX29wZW5MaWdodGJveCgpLHQuc2V0KCJsb2FkaW5nTGlnaHRib3giLCExKX0pLmNhdGNoKGwucG9wdXBBamF4RXJyb3IpKX0sdHJhc2g6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2ltYWdlVXJsOm51bGwsaW1hZ2VJZDpudWxsfSksdGhpcy5vblVwbG9hZERlbGV0ZWQmJnRoaXMub25VcGxvYWREZWxldGVkKCl9fX0sInNob3dpbmdQbGFjZWhvbGRlciIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwic2hvd2luZ1BsYWNlaG9sZGVyIiksaCksdShoLCJwbGFjZWhvbGRlclN0eWxlIixbZF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJwbGFjZWhvbGRlclN0eWxlIiksaCksdShoLCJpbWFnZUNETlVSTCIsW3BdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiaW1hZ2VDRE5VUkwiKSxoKSx1KGgsImJhY2tncm91bmRTdHlsZSIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiYmFja2dyb3VuZFN0eWxlIiksaCksdShoLCJpbWFnZUJhc2VOYW1lIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJpbWFnZUJhc2VOYW1lIiksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9pbWFnZXMtdXBsb2FkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL3VwbG9hZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQsKHM9KDAsdC5kZWZhdWx0KSgidXBsb2FkaW5nIikscj1vPXt0eXBlOiJhdmF0YXIiLHRhZ05hbWU6InNwYW4iLHVwbG9hZEJ1dHRvblRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KCJ1cGxvYWRpbmciKTpJMThuLnQoInVwbG9hZCIpfSx2YWxpZGF0ZVVwbG9hZGVkRmlsZXNPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue2ltYWdlc09ubHk6ITB9fSx1cGxvYWREb25lOmZ1bmN0aW9uKGUpe3RoaXMuZG9uZShlKX19LGE9InVwbG9hZEJ1dHRvblRleHQiLGw9W3NdLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJ1cGxvYWRCdXR0b25UZXh0IiksYz1vLGQ9e30sT2JqZWN0LmtleXModSkuZm9yRWFjaChmdW5jdGlvbihlKXtkW2VdPXVbZV19KSxkLmVudW1lcmFibGU9ISFkLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ISFkLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGR8fGQuaW5pdGlhbGl6ZXIpJiYoZC53cml0YWJsZT0hMCksZD1sLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHIsYSxlKXx8ZX0sZCksYyYmdm9pZCAwIT09ZC5pbml0aWFsaXplciYmKGQudmFsdWU9ZC5pbml0aWFsaXplcj9kLmluaXRpYWxpemVyLmNhbGwoYyk6dm9pZCAwLGQuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1kLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSxkKSxkPW51bGwpLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW5wdXQtdGlwIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOnRpcCIsImdvb2QiLCJiYWQiXSx0aXBJY29uOm51bGwsdGlwUmVhc29uOm51bGwsYmFkOigwLHQuYWxpYXMpKCJ2YWxpZGF0aW9uLmZhaWxlZCIpLGdvb2Q6KDAsdC5ub3QpKCJiYWQiKSx0aXBJY29uSFRNTDpmdW5jdGlvbigpe3JldHVybigiIisoMCxpLmljb25IVE1MKSh0aGlzLmdvb2Q/ImNoZWNrIjoidGltZXMiKSkuaHRtbFNhZmUoKX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlPXRoaXMuZ2V0KCJ2YWxpZGF0aW9uLnJlYXNvbiIpO2U/KHRoaXMuc2V0KCJ0aXBJY29uIix0aGlzLnRpcEljb25IVE1MKCkpLHRoaXMuc2V0KCJ0aXBSZWFzb24iLGUpKToodGhpcy5zZXQoInRpcEljb24iLG51bGwpLHRoaXMuc2V0KCJ0aXBSZWFzb24iLG51bGwpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvaW52aXRlLXBhbmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyIsImRpc2NvdXJzZS9tb2RlbHMvZ3JvdXAiLCJkaXNjb3Vyc2UvbW9kZWxzL2ludml0ZSIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL3B3YS11dGlscyJdLGZ1bmN0aW9uKGUsdCxhLG8sbixpLGwscyxyLHUsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHAsbSxmLGgsYixnLHYseSxfLHcseCxrLFAsaixUO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocD0oMCx0LmRlZmF1bHQpKCJpc0FkbWluIiwiZW1haWxPclVzZXJuYW1lIiwiaW52aXRpbmdUb1RvcGljIiwiaXNQcml2YXRlVG9waWMiLCJpbnZpdGVNb2RlbC5ncm91cE5hbWVzLltdIiwiaW52aXRlTW9kZWwuc2F2aW5nIiwiaW52aXRlTW9kZWwuZGV0YWlscy5jYW5faW52aXRlX3RvIiksbT0oMCx0LmRlZmF1bHQpKCJpc0FkbWluIiwiZW1haWxPclVzZXJuYW1lIiwiaW52aXRlTW9kZWwuc2F2aW5nIiwiaXNQcml2YXRlVG9waWMiLCJpbnZpdGVNb2RlbC5ncm91cE5hbWVzLltdIiwiaGFzQ3VzdG9tTWVzc2FnZSIpLGY9KDAsdC5kZWZhdWx0KSgiaW52aXRlTW9kZWwuc2F2aW5nIiksaD0oMCx0LmRlZmF1bHQpKCJpbnZpdGVNb2RlbCIpLGI9KDAsdC5kZWZhdWx0KSgiaW52aXRlTW9kZWwiLCJpbnZpdGVNb2RlbC5kZXRhaWxzLmNhbl9pbnZpdGVfdmlhX2VtYWlsIiksZz0oMCx0LmRlZmF1bHQpKCJpc1BNIiwiY2FuSW52aXRlVmlhRW1haWwiKSx2PSgwLHQuZGVmYXVsdCkoImlzQWRtaW4iLCJpbnZpdGVNb2RlbC5ncm91cF91c2VycyIpLHk9KDAsdC5kZWZhdWx0KSgiaXNHcm91cE93bmVyT3JBZG1pbiIsImVtYWlsT3JVc2VybmFtZSIsImlzUHJpdmF0ZVRvcGljIiwiaXNQTSIsImludml0aW5nVG9Ub3BpYyIsImNhbkludml0ZVZpYUVtYWlsIiksXz0oMCx0LmRlZmF1bHQpKCJlbWFpbE9yVXNlcm5hbWUiKSx3PSgwLHQuZGVmYXVsdCkoImlzUE0iLCJpbnZpdGluZ1RvVG9waWMiLCJlbWFpbE9yVXNlcm5hbWUiLCJpc1ByaXZhdGVUb3BpYyIsImlzQWRtaW4iLCJjYW5JbnZpdGVWaWFFbWFpbCIpLHg9KDAsdC5kZWZhdWx0KSgiaXNQcml2YXRlVG9waWMiKSxrPSgwLHQuZGVmYXVsdCkoImlzUE0iLCJlbWFpbE9yVXNlcm5hbWUiLCJpbnZpdGluZ0V4aXN0aW5nVXNlclRvVG9waWMiKSxQPSgwLHQuZGVmYXVsdCkoImlzUE0iKSxqPSgwLHQuZGVmYXVsdCkoImNhbkludml0ZVZpYUVtYWlsIiksZChUPXt0YWdOYW1lOm51bGwsaW52aXRlTW9kZWw6KDAsbi5hbGlhcykoInBhbmVsLm1vZGVsLmludml0ZU1vZGVsIiksdXNlckludml0ZWRTaG93OigwLG4uYWxpYXMpKCJwYW5lbC5tb2RlbC51c2VySW52aXRlZFNob3ciKSxlbWFpbE9yVXNlcm5hbWU6bnVsbCxoYXNDdXN0b21NZXNzYWdlOiExLGN1c3RvbU1lc3NhZ2U6bnVsbCxpbnZpdGVJY29uOiJlbnZlbG9wZSIsaW52aXRpbmdFeGlzdGluZ1VzZXJUb1RvcGljOiExLGlzQWRtaW46KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLmFkbWluIiksd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVzZXQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4saSxzLG8pe2lmKG8pcmV0dXJuITA7aWYoKDAsYS5pc0VtcHR5KSh0KSlyZXR1cm4hMDt2YXIgcj10LnRyaW0oKTtyZXR1cm4hbiYmISgwLGwuZW1haWxWYWxpZCkocil8fCghKGV8fCFpfHwhKDAsbC5lbWFpbFZhbGlkKShyKSl8fCEhKGkmJigwLGEuaXNFbXB0eSkocykmJigwLGwuZW1haWxWYWxpZCkocikpKX0sZGlzYWJsZWRDb3B5TGluazpmdW5jdGlvbihlLHQsbixpLHMsbyl7aWYobylyZXR1cm4hMDtpZihuKXJldHVybiEwO2lmKCgwLGEuaXNFbXB0eSkodCkpcmV0dXJuITA7dmFyIHI9dC50cmltKCk7cmV0dXJuISgwLGwuZW1haWxWYWxpZCkocil8fCghKGV8fCFpfHwhKDAsbC5lbWFpbFZhbGlkKShyKSl8fCEhKGkmJigwLGEuaXNFbXB0eSkocykmJigwLGwuZW1haWxWYWxpZCkocikpKX0sYnV0dG9uVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InRvcGljLmludml0aW5nIjoidG9waWMuaW52aXRlX3JlcGx5LmFjdGlvbiJ9LGludml0aW5nVG9Ub3BpYzpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXRoaXMuY3VycmVudFVzZXJ9LGNhbkludml0ZVZpYUVtYWlsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuaW52aXRlTW9kZWw9PT10aGlzLmN1cnJlbnRVc2VyfHx0fSxzaG93Q29weUludml0ZUJ1dHRvbjpmdW5jdGlvbihlLHQpe3JldHVybiB0JiYhZX0sdG9waWNJZDooMCxuLmFsaWFzKSgiaW52aXRlTW9kZWwuaWQiKSxpc1ByaXZhdGVUb3BpYzooMCxuLmFuZCkoImludml0aW5nVG9Ub3BpYyIsImludml0ZU1vZGVsLmNhdGVnb3J5LnJlYWRfcmVzdHJpY3RlZCIpLGlzUE06KDAsbi5lcXVhbCkoImludml0ZU1vZGVsLmFyY2hldHlwZSIsInByaXZhdGVfbWVzc2FnZSIpLGFsbG93RXhpc3RpbmdNZW1iZXJzOigwLG4uYWxpYXMpKCJpbnZpdGluZ1RvVG9waWMiKSxpc0dyb3VwT3duZXJPckFkbWluOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fHQmJnQuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5vd25lcn0pfSxzaG93R3JvdXBzOmZ1bmN0aW9uKGUsdCxuLGkscyxvKXtyZXR1cm4gZSYmbyYmIWkmJigoMCxsLmVtYWlsVmFsaWQpKHQpfHxufHwhcyl9LHNob3dDb250YWN0UGlja2VyOigwLG8uY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzLmhhc0NvbnRhY3RQaWNrZXJ9KSxzaG93Q3VzdG9tTWVzc2FnZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5pbnZpdGVNb2RlbD09PXRoaXMuY3VycmVudFVzZXJ8fCgwLGwuZW1haWxWYWxpZCkoZSl9LGludml0ZUluc3RydWN0aW9uczpmdW5jdGlvbihlLHQsbixpLHMsbyl7cmV0dXJuIG8/ZT9JMThuLnQoInRvcGljLmludml0ZV9wcml2YXRlLmVtYWlsX29yX3VzZXJuYW1lIik6dD9pJiYhcz9JMThuLnQoInRvcGljLmludml0ZV9yZXBseS50b191c2VybmFtZSIpOigwLGEuaXNFbXB0eSkobik/STE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkudG9fdG9waWNfYmxhbmsiKTooMCxsLmVtYWlsVmFsaWQpKG4pPyh0aGlzLnNldCgiaW52aXRlSWNvbiIsImVudmVsb3BlIiksSTE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkudG9fdG9waWNfZW1haWwiKSk6KHRoaXMuc2V0KCJpbnZpdGVJY29uIiwiaGFuZC1wb2ludC1yaWdodCIpLEkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnRvX3RvcGljX3VzZXJuYW1lIikpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnRvX2ZvcnVtIik6STE4bi50KCJ0b3BpYy5pbnZpdGVfcmVwbHkuc3NvX2VuYWJsZWQiKX0sc2hvd0dyb3Vwc0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJyZXF1aXJlZCI6Im9wdGlvbmFsIn0sZ3JvdXBGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHMuZGVmYXVsdC5maW5kQWxsKHt0ZXJtOmUsaWdub3JlX2F1dG9tYXRpYzohMH0pfSxzdWNjZXNzTWVzc2FnZTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFzR3JvdXBzP0kxOG4udCgidG9waWMuaW52aXRlX3ByaXZhdGUuc3VjY2Vzc19ncm91cCIpOmU/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5zdWNjZXNzIik6bj9JMThuLnQoInRvcGljLmludml0ZV9yZXBseS5zdWNjZXNzX2V4aXN0aW5nX2VtYWlsIix7ZW1haWxPclVzZXJuYW1lOnR9KTooMCxsLmVtYWlsVmFsaWQpKHQpP0kxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnN1Y2Nlc3NfZW1haWwiLHtlbWFpbE9yVXNlcm5hbWU6dH0pOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LnN1Y2Nlc3NfdXNlcm5hbWUiKX0sZXJyb3JNZXNzYWdlOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udCgidG9waWMuaW52aXRlX3ByaXZhdGUuZXJyb3IiKTpJMThuLnQoInRvcGljLmludml0ZV9yZXBseS5lcnJvciIpfSxwbGFjZWhvbGRlcktleTpmdW5jdGlvbihlKXtyZXR1cm4gZT8idG9waWMuaW52aXRlX3ByaXZhdGUuZW1haWxfb3JfdXNlcm5hbWVfcGxhY2Vob2xkZXIiOiJ0b3BpYy5pbnZpdGVfcmVwbHkudXNlcm5hbWVfcGxhY2Vob2xkZXIifSxjdXN0b21NZXNzYWdlUGxhY2Vob2xkZXI6KDAsdS5pMThuKSgiaW52aXRlLmN1c3RvbV9tZXNzYWdlX3BsYWNlaG9sZGVyIikscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe2VtYWlsT3JVc2VybmFtZTpudWxsLGhhc0N1c3RvbU1lc3NhZ2U6ITEsY3VzdG9tTWVzc2FnZTpudWxsLGludml0aW5nRXhpc3RpbmdVc2VyVG9Ub3BpYzohMX0pLHRoaXMuaW52aXRlTW9kZWwuc2V0UHJvcGVydGllcyh7Z3JvdXBOYW1lczpudWxsLGVycm9yOiExLHNhdmluZzohMSxmaW5pc2hlZDohMSxpbnZpdGVMaW5rOm51bGx9KX0sYWN0aW9uczp7Y3JlYXRlSW52aXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5kaXNhYmxlZCl7dmFyIGU9dGhpcy5nZXQoImludml0ZU1vZGVsLmdyb3VwTmFtZXMiKSxuPXRoaXMudXNlckludml0ZWRTaG93LGk9dGhpcy5pbnZpdGVNb2RlbDtpLnNldFByb3BlcnRpZXMoe3NhdmluZzohMCxlcnJvcjohMX0pO3ZhciBzPWZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnM/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIix0LmlzUE0/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5lcnJvciIpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LmVycm9yIikpLGkuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLGVycm9yOiEwfSl9O3JldHVybiB0aGlzLmhhc0dyb3Vwcz90aGlzLmludml0ZU1vZGVsLmNyZWF0ZUdyb3VwSW52aXRlKHRoaXMuZW1haWxPclVzZXJuYW1lLnRyaW0oKSkudGhlbihmdW5jdGlvbihlKXtpLnNldFByb3BlcnRpZXMoe3NhdmluZzohMSxmaW5pc2hlZDohMH0pLHQuZ2V0KCJpbnZpdGVNb2RlbC5kZXRhaWxzLmFsbG93ZWRfZ3JvdXBzIikucHVzaE9iamVjdChvLmRlZmF1bHQuY3JlYXRlKGUuZ3JvdXApKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIil9KS5jYXRjaChzKTp0aGlzLmludml0ZU1vZGVsLmNyZWF0ZUludml0ZSh0aGlzLmVtYWlsT3JVc2VybmFtZS50cmltKCksZSx0aGlzLmN1c3RvbU1lc3NhZ2UpLnRoZW4oZnVuY3Rpb24oZSl7aS5zZXRQcm9wZXJ0aWVzKHtzYXZpbmc6ITEsZmluaXNoZWQ6ITB9KSwhdC5pbnZpdGluZ1RvVG9waWMmJm4/ci5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodC5jdXJyZW50VXNlcixuLmdldCgiZmlsdGVyIikpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHttb2RlbDplLHRvdGFsSW52aXRlczplLmludml0ZXMubGVuZ3RofSl9KTp0LmlzUE0mJmUmJmUudXNlcj8odC5nZXQoImludml0ZU1vZGVsLmRldGFpbHMuYWxsb3dlZF91c2VycyIpLnB1c2hPYmplY3Qoby5kZWZhdWx0LmNyZWF0ZShlLnVzZXIpKSx0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0LXN0cmVhbTpyZWZyZXNoIikpOnQuaW52aXRpbmdUb1RvcGljJiYoMCxsLmVtYWlsVmFsaWQpKHQuZW1haWxPclVzZXJuYW1lLnRyaW0oKSkmJmUmJmUudXNlciYmdC5zZXQoImludml0aW5nRXhpc3RpbmdVc2VyVG9Ub3BpYyIsITApfSkuY2F0Y2gocyl9fSxnZW5lcmF0ZUludml0ZWxpbms6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLmRpc2FibGVkKXt2YXIgZT10aGlzLmdldCgiaW52aXRlTW9kZWwuZ3JvdXBOYW1lcyIpLG49dGhpcy51c2VySW52aXRlZFNob3csaT10aGlzLmludml0ZU1vZGVsO2kuc2V0UHJvcGVydGllcyh7c2F2aW5nOiEwLGVycm9yOiExfSk7dmFyIHM9dm9pZCAwO3JldHVybiB0aGlzLmludml0aW5nVG9Ub3BpYyYmKHM9dGhpcy5nZXQoImludml0ZU1vZGVsLmlkIikpLGkuZ2VuZXJhdGVJbnZpdGVMaW5rKHRoaXMuZW1haWxPclVzZXJuYW1lLnRyaW0oKSxlLHMpLnRoZW4oZnVuY3Rpb24oZSl7aS5zZXRQcm9wZXJ0aWVzKHtzYXZpbmc6ITEsZmluaXNoZWQ6ITAsaW52aXRlTGluazplfSksbiYmci5kZWZhdWx0LmZpbmRJbnZpdGVkQnkodC5jdXJyZW50VXNlcixuLmdldCgiZmlsdGVyIikpLnRoZW4oZnVuY3Rpb24oZSl7bi5zZXRQcm9wZXJ0aWVzKHttb2RlbDplLHRvdGFsSW52aXRlczplLmludml0ZXMubGVuZ3RofSl9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2UuanFYSFIucmVzcG9uc2VKU09OJiZlLmpxWEhSLnJlc3BvbnNlSlNPTi5lcnJvcnM/dC5zZXQoImVycm9yTWVzc2FnZSIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXJyb3JzWzBdKTp0LnNldCgiZXJyb3JNZXNzYWdlIix0LmlzUE0/STE4bi50KCJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS5lcnJvciIpOkkxOG4udCgidG9waWMuaW52aXRlX3JlcGx5LmVycm9yIikpLGkuc2V0UHJvcGVydGllcyh7c2F2aW5nOiExLGVycm9yOiEwfSl9KX19LHNob3dDdXN0b21NZXNzYWdlQm94OmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiaGFzQ3VzdG9tTWVzc2FnZSIpLHRoaXMuaGFzQ3VzdG9tTWVzc2FnZT90aGlzLmludml0ZU1vZGVsPT09dGhpcy5jdXJyZW50VXNlcj90aGlzLnNldCgiY3VzdG9tTWVzc2FnZSIsSTE4bi50KCJpbnZpdGUuY3VzdG9tX21lc3NhZ2VfdGVtcGxhdGVfZm9ydW0iKSk6dGhpcy5zZXQoImN1c3RvbU1lc3NhZ2UiLEkxOG4udCgiaW52aXRlLmN1c3RvbV9tZXNzYWdlX3RlbXBsYXRlX3RvcGljIikpOnRoaXMuc2V0KCJjdXN0b21NZXNzYWdlIixudWxsKX0sc2VhcmNoQ29udGFjdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsYy5nZXROYXRpdmVDb250YWN0KShbImVtYWlsIl0sITEpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoImVtYWlsT3JVc2VybmFtZSIsZVswXS5lbWFpbFswXSl9KX19fSwiZGlzYWJsZWQiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImRpc2FibGVkIiksVCksZChULCJkaXNhYmxlZENvcHlMaW5rIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJkaXNhYmxlZENvcHlMaW5rIiksVCksZChULCJidXR0b25UaXRsZSIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiYnV0dG9uVGl0bGUiKSxUKSxkKFQsImludml0aW5nVG9Ub3BpYyIsW2hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaW52aXRpbmdUb1RvcGljIiksVCksZChULCJjYW5JbnZpdGVWaWFFbWFpbCIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiY2FuSW52aXRlVmlhRW1haWwiKSxUKSxkKFQsInNob3dDb3B5SW52aXRlQnV0dG9uIixbZ10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93Q29weUludml0ZUJ1dHRvbiIpLFQpLGQoVCwiaXNHcm91cE93bmVyT3JBZG1pbiIsW3ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwiaXNHcm91cE93bmVyT3JBZG1pbiIpLFQpLGQoVCwic2hvd0dyb3VwcyIsW3ldLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVCwic2hvd0dyb3VwcyIpLFQpLGQoVCwic2hvd0N1c3RvbU1lc3NhZ2UiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsInNob3dDdXN0b21NZXNzYWdlIiksVCksZChULCJpbnZpdGVJbnN0cnVjdGlvbnMiLFt3XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFQsImludml0ZUluc3RydWN0aW9ucyIpLFQpLGQoVCwic2hvd0dyb3Vwc0NsYXNzIixbeF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzaG93R3JvdXBzQ2xhc3MiKSxUKSxkKFQsInN1Y2Nlc3NNZXNzYWdlIixba10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJzdWNjZXNzTWVzc2FnZSIpLFQpLGQoVCwiZXJyb3JNZXNzYWdlIixbUF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJlcnJvck1lc3NhZ2UiKSxUKSxkKFQsInBsYWNlaG9sZGVyS2V5Iixbal0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihULCJwbGFjZWhvbGRlcktleSIpLFQpLFQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbGF0ZXN0LXRvcGljLWxpc3QtaXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthdHRyaWJ1dGVCaW5kaW5nczpbInRvcGljLmlkOmRhdGEtdG9waWMtaWQiXSxjbGFzc05hbWVCaW5kaW5nczpbIjpsYXRlc3QtdG9waWMtbGlzdC1pdGVtIiwidG9waWMuYXJjaGl2ZWQiLCJ0b3BpYy52aXNpdGVkIl0sc2hvd0VudHJhbmNlOm4uc2hvd0VudHJhbmNlLG5hdmlnYXRlVG9Ub3BpYzpuLm5hdmlnYXRlVG9Ub3BpYyxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4hMSE9PXRoaXMuc2hvd0VudHJhbmNlKGUpJiZ0aGlzLnVuaGFuZGxlZFJvd0NsaWNrKGUsdGhpcy50b3BpYyl9LHVuaGFuZGxlZFJvd0NsaWNrOmZ1bmN0aW9uKCl7fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9saW5rLXRvLWlucHV0IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7c2hvd0lucHV0OiExLGNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5vbkNsaWNrKCksKDAsdC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpeyQoZS5lbGVtZW50KS5maW5kKCJpbnB1dCIpLmZvY3VzKCl9KSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbGlua3MtcmVkaXJlY3QiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2RpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh0aGlzLmVsZW1lbnQpLm9uKCJjbGljay5kaXNjb3Vyc2UtcmVkaXJlY3QiLCJhIixmdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LnRyYWNrQ2xpY2soZSl9KX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsImEiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbG9hZC1tb3JlIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2luaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImV5ZWxpbmVTZWxlY3RvciIsdGhpcy5zZWxlY3Rvcil9LGFjdGlvbnM6e2xvYWRNb3JlOmZ1bmN0aW9uKCl7dGhpcy5hY3Rpb24oKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL2xvZ2luLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL2xvZ2luLW1ldGhvZCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocyhvPXtlbGVtZW50SWQ6ImxvZ2luLWJ1dHRvbnMiLGNsYXNzTmFtZUJpbmRpbmdzOlsiaGlkZGVuIl0saGlkZGVuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1lJiYhdH0sYnV0dG9uczpmdW5jdGlvbigpe3JldHVybigwLGkuZmluZEFsbCkoKX0sYWN0aW9uczp7ZXh0ZXJuYWxMb2dpbjpmdW5jdGlvbihlKXt0aGlzLmV4dGVybmFsTG9naW4oZSl9fX0sImhpZGRlbiIsWygwLHQuZGVmYXVsdCkoImJ1dHRvbnMubGVuZ3RoIiwic2hvd0xvZ2luV2l0aEVtYWlsTGluayIpXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImhpZGRlbiIpLG8pLHMobywiYnV0dG9ucyIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJidXR0b25zIiksbyksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9sb2dpbi1tb2RhbCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSxuLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2RpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0kKCIjaGlkZGVuLWxvZ2luLWZvcm0gaW5wdXRbbmFtZT11c2VybmFtZV0iKS52YWwoKTtlPyh0aGlzLnNldCgibG9naW5OYW1lIixlKSx0aGlzLnNldCgibG9naW5QYXNzd29yZCIsJCgiI2hpZGRlbi1sb2dpbi1mb3JtIGlucHV0W25hbWU9cGFzc3dvcmRdIikudmFsKCkpKTokLmNvb2tpZSgiZW1haWwiKSYmdGhpcy5zZXQoImxvZ2luTmFtZSIsJC5jb29raWUoImVtYWlsIikpLCgwLG4uc2NoZWR1bGUpKCJhZnRlclJlbmRlciIsZnVuY3Rpb24oKXskKCIjbG9naW4tYWNjb3VudC1wYXNzd29yZCwgI2xvZ2luLWFjY291bnQtbmFtZSwgI2xvZ2luLXNlY29uZC1mYWN0b3IiKS5rZXlkb3duKGZ1bmN0aW9uKGUpezEzPT09ZS5rZXlDb2RlJiZ0LmFjdGlvbigpfSl9KX0sbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuc2V0KCJzY3JlZW5YIixlLnNjcmVlblgpLHRoaXMuc2V0KCJzY3JlZW5ZIixlLnNjcmVlblkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9sb2dpbi1yZXBseS1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2QtYnV0dG9uIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtsYWJlbDoidG9waWMucmVwbHkudGl0bGUiLGljb246InJlcGx5IixhY3Rpb246InNob3dMb2dpbiJ9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtbGlzdC1pdGVtIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InRyIixjbGFzc05hbWVCaW5kaW5nczpbIjpjYXRlZ29yeS10b3BpYy1saW5rIiwidG9waWMuYXJjaGl2ZWQiLCJ0b3BpYy52aXNpdGVkIl0sY2xpY2s6bi5zaG93RW50cmFuY2V9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9iaWxlLW5hdiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCxpLm9uKSgiaW5pdCIpLHI9KDAsaS5vYnNlcnZlcykoImN1cnJlbnRQYXRoIikscyhhPXtfaW5pdDpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZ2V0KCJzaXRlLm1vYmlsZVZpZXciKXx8KGU9dGhpcy5kZXNrdG9wQ2xhc3MpJiYoZT1lLnNwbGl0KCIgIiksdGhpcy5zZXQoImNsYXNzTmFtZXMiLGUpKX0sdGFnTmFtZToidWwiLHNlbGVjdGVkSHRtbDpudWxsLGNsYXNzTmFtZXM6WyJtb2JpbGUtbmF2Il0sY3VycmVudFBhdGhDaGFuZ2VkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnNldCgiZXhwYW5kZWQiLCExKSwoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3VwZGF0ZVNlbGVjdGVkSHRtbCgpfSl9LF91cGRhdGVTZWxlY3RlZEh0bWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmFjdGl2ZSIpO2UmJmUuaW5uZXJIVE1MJiZ0aGlzLnNldCgic2VsZWN0ZWRIdG1sIixlLmlubmVySFRNTCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fdXBkYXRlU2VsZWN0ZWRIdG1sKCl9LGFjdGlvbnM6e3RvZ2dsZUV4cGFuZGVkOmZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnRvZ2dsZVByb3BlcnR5KCJleHBhbmRlZCIpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtuLmV4cGFuZGVkJiYkKHdpbmRvdykub2ZmKCJjbGljay5tb2JpbGUtbmF2Iikub24oImNsaWNrLm1vYmlsZS1uYXYiLGZ1bmN0aW9uKGUpe3ZhciB0OyFuLmVsZW1lbnR8fG4uaXNEZXN0cm95aW5nfHxuLmlzRGVzdHJveWVkfHwodD1uLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmV4cGFuZGVyIikpJiZlLnRhcmdldCE9PXQmJihuLnNldCgiZXhwYW5kZWQiLCExKSwkKHdpbmRvdykub2ZmKCJjbGljay5tb2JpbGUtbmF2IikpfSl9KX19fSwiX2luaXQiLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIl9pbml0IiksYSkscyhhLCJjdXJyZW50UGF0aENoYW5nZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImN1cnJlbnRQYXRoQ2hhbmdlZCIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbW9kYWwtcGFuZWwiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3BhbmVsOm51bGwscGFuZWxDb21wb25lbnQ6KDAsbi5mbXQpKCJwYW5lbC5pZCIsIiVALXBhbmVsIiksY2xhc3NOYW1lQmluZGluZ3M6WyJwYW5lbC5pZCJdLGNsYXNzTmFtZXM6WyJtb2RhbC1wYW5lbCJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL21vZGFsLXRhYiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkiLGNsYXNzTmFtZXM6WyJtb2RhbC10YWIiXSxwYW5lbDpudWxsLHNlbGVjdGVkUGFuZWw6bnVsbCxwYW5lbHNMZW5ndGg6bnVsbCxjbGFzc05hbWVCaW5kaW5nczpbImlzQWN0aXZlIiwic2luZ2xlVGFiIiwicGFuZWwuaWQiXSxzaW5nbGVUYWI6KDAsdC5lcXVhbCkoInBhbmVsc0xlbmd0aCIsMSksdGl0bGU6KDAsdC5hbGlhcykoInBhbmVsLnRpdGxlIiksaXNBY3RpdmU6KDAsaS5wcm9wZXJ0eUVxdWFsKSgicGFuZWwuaWQiLCJzZWxlY3RlZFBhbmVsLmlkIiksY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLm9uU2VsZWN0UGFuZWwodGhpcy5wYW5lbCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9ob29rcyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2dldC1vd25lciIsImRpc2NvdXJzZS9saWIvZGlydHkta2V5cyIsIkBlbWJlci9zdHJpbmciXSxmdW5jdGlvbihlLG8sdCxyLG4saSxzLGEsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFkZFdpZGdldENsZWFuQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtjW2VdPWNbZV18fFtdLGNbZV0ucHVzaCh0KX0sZS5yZXNldFdpZGdldENsZWFuQ2FsbGJhY2tzPWZ1bmN0aW9uKCl7Yz17fX07dmFyIHU9ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX0sYz17fTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7X3RyZWU6bnVsbCxfcm9vdE5vZGU6bnVsbCxfdGltZW91dDpudWxsLF93aWRnZXRDbGFzczpudWxsLF9yZW5kZXJDYWxsYmFjazpudWxsLF9jaGlsZEV2ZW50czpudWxsLF9kaXNwYXRjaGVkOm51bGwsZGlydHlLZXlzOm51bGwsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLndpZGdldDt0aGlzLnJlZ2lzdGVyPSgwLHMuZ2V0UmVnaXN0ZXIpKHRoaXMpLHRoaXMuX3dpZGdldENsYXNzPSgwLGkucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgid2lkZ2V0OiIrZSksdGhpcy5fd2lkZ2V0Q2xhc3N8fGNvbnNvbGUuZXJyb3IoIkVycm9yOiBDb3VsZCBub3QgZmluZCB3aWRnZXQ6ICIrZSksdGhpcy5fY2hpbGRFdmVudHM9W10sdGhpcy5fY29ubmVjdGVkPVtdLHRoaXMuX2Rpc3BhdGNoZWQ9W10sdGhpcy5kaXJ0eUtleXM9bmV3IGEuZGVmYXVsdChlKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe24uV2lkZ2V0Q2xpY2tIb29rLnNldHVwRG9jdW1lbnRDYWxsYmFjaygpLHRoaXMuX3Jvb3ROb2RlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9yb290Tm9kZSksdGhpcy5fdGltZW91dD0oMCxvLnNjaGVkdWxlT25jZSkoInJlbmRlciIsdGhpcyx0aGlzLnJlcmVuZGVyV2lkZ2V0KX0sd2lsbENsZWFyUmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGU9Y1t0aGlzLndpZGdldF07ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSx0aGlzLl9jb25uZWN0ZWQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5kZXN0cm95KCl9KSx0aGlzLl9jb25uZWN0ZWQubGVuZ3RoPTB9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXRoaXM7dGhpcy5fZGlzcGF0Y2hlZC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXUoZSwyKSxuPXRbMF0saT10WzFdO3MuYXBwRXZlbnRzLm9mZihuLHMsaSl9KSwoMCxvLmNhbmNlbCkodGhpcy5fdGltZW91dCl9LGFmdGVyUmVuZGVyOmZ1bmN0aW9uKCl7fSxiZWZvcmVQYXRjaDpmdW5jdGlvbigpe30sYWZ0ZXJQYXRjaDpmdW5jdGlvbigpe30sZXZlbnREaXNwYXRjaGVkOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT0oMCxsLmNhbWVsaXplKShlLnJlcGxhY2UoLzovLCItIikpO3RoaXMuZGlydHlLZXlzLmtleURpcnR5KHQse29uUmVmcmVzaDppLHJlZnJlc2hBcmc6bn0pLHRoaXMucXVldWVSZXJlbmRlcigpfSxkaXNwYXRjaDpmdW5jdGlvbih0LG4pe3ZhciBpPXRoaXM7dGhpcy5fY2hpbGRFdmVudHMucHVzaCh0KTtmdW5jdGlvbiBlKGUpe3JldHVybiBpLmV2ZW50RGlzcGF0Y2hlZCh0LG4sZSl9dGhpcy5fZGlzcGF0Y2hlZC5wdXNoKFt0LGVdKSx0aGlzLmFwcEV2ZW50cy5vbih0LHRoaXMsZSl9LHF1ZXVlUmVyZW5kZXI6ZnVuY3Rpb24oZSl7ZSYmIXRoaXMuX3JlbmRlckNhbGxiYWNrJiYodGhpcy5fcmVuZGVyQ2FsbGJhY2s9ZSksKDAsby5zY2hlZHVsZU9uY2UpKCJyZW5kZXIiLHRoaXMsdGhpcy5yZXJlbmRlcldpZGdldCl9LGJ1aWxkQXJnczpmdW5jdGlvbigpe30scmVyZW5kZXJXaWRnZXQ6ZnVuY3Rpb24oKXtpZigoMCxvLmNhbmNlbCkodGhpcy5fdGltZW91dCksdGhpcy5fcm9vdE5vZGUpe2lmKCF0aGlzLl93aWRnZXRDbGFzcylyZXR1cm47dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdD10aGlzLmFyZ3N8fHRoaXMuYnVpbGRBcmdzKCksbj17bW9kZWw6dGhpcy5tb2RlbCxkaXJ0eUtleXM6dGhpcy5kaXJ0eUtleXN9LGk9bmV3IHRoaXMuX3dpZGdldENsYXNzKHQsdGhpcy5yZWdpc3RlcixuKTtpLl9yZXJlbmRlcmFibGU9dGhpcyxpLl9lbWJlclZpZXc9dGhpczt2YXIgcz0oMCxyLmRpZmYpKHRoaXMuX3RyZWV8fHRoaXMuX3Jvb3ROb2RlLGkpO3RoaXMuYmVmb3JlUGF0Y2goKSx0aGlzLl9yb290Tm9kZT0oMCxyLnBhdGNoKSh0aGlzLl9yb290Tm9kZSxzKSx0aGlzLmFmdGVyUGF0Y2goKSx0aGlzLl90cmVlPWksdGhpcy5fcmVuZGVyQ2FsbGJhY2smJih0aGlzLl9yZW5kZXJDYWxsYmFjaygpLHRoaXMuX3JlbmRlckNhbGxiYWNrPW51bGwpLHRoaXMuYWZ0ZXJSZW5kZXIoKSx0aGlzLmRpcnR5S2V5cy5yZW5kZXJlZEtleSgiKiIpLHRoaXMucHJvZmlsZVdpZGdldCYmY29uc29sZS5sb2coKG5ldyBEYXRlKS5nZXRUaW1lKCktZSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9uYXYtaXRlbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3NlcnZpY2UiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoImxhYmVsIiwiaTE4bkxhYmVsIiwiaWNvbiIpLGE9KDAsdC5kZWZhdWx0KSgicm91dGUiLCJyb3V0ZXIuY3VycmVudFJvdXRlIiksbyhsPXt0YWdOYW1lOiJsaSIsY2xhc3NOYW1lQmluZGluZ3M6WyJhY3RpdmUiXSxyb3V0ZXI6KDAsbi5pbmplY3QpKCksY29udGVudHM6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPXR8fEkxOG4udChlKTtyZXR1cm4gbj8oKDAscy5pY29uSFRNTCkobikrIiAiK2kpLmh0bWxTYWZlKCk6aX0sYWN0aXZlOmZ1bmN0aW9uKGUsdCl7aWYoZSl7dmFyIG49dGhpcy5yb3V0ZVBhcmFtO3JldHVybiBuJiZ0P3QucGFyYW1zLmZpbHRlcj09PW46dGhpcy5yb3V0ZXIuaXNBY3RpdmUoZSl9fX0sImNvbnRlbnRzIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJjb250ZW50cyIpLGwpLG8obCwiYWN0aXZlIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJhY3RpdmUiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL25hdmlnYXRpb24tYmFyIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWNvbm5lY3RvcnMiLCJkaXNjb3Vyc2UvbWl4aW5zL2ZpbHRlci1tb2RlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYSxsLHUsYz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZnVuY3Rpb24gZChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb31lLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChyLmRlZmF1bHQsKGE9KDAsaS5kZWZhdWx0KSgiZmlsdGVyVHlwZSIsIm5hdkl0ZW1zIiksbD0oMCxpLm9ic2VydmVzKSgiZXhwYW5kZWQiKSxkKHU9e3RhZ05hbWU6InVsIixjbGFzc05hbWVCaW5kaW5nczpbIjpuYXYiLCI6bmF2LXBpbGxzIl0sZWxlbWVudElkOiJuYXZpZ2F0aW9uLWJhciIsaW5pdDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgiY29ubmVjdG9ycyIsKDAsby5yZW5kZXJlZENvbm5lY3RvcnNGb3IpKCJleHRyYS1uYXYtaXRlbSIsbnVsbCx0aGlzKSl9LHNlbGVjdGVkTmF2SXRlbTpmdW5jdGlvbih0LGUpe3ZhciBuLGkscz1lLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmFjdGl2ZX0pO3JldHVybihzPXN8fGUuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXQoImZpbHRlclR5cGUiKT09PXR9KSl8fChuPXRoaXMuY29ubmVjdG9ycyxpPXRoaXMuY2F0ZWdvcnksbiYmaSYmbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuY29ubmVjdG9yQ2xhc3MmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNvbm5lY3RvckNsYXNzLnBhdGgmJmMoImZ1bmN0aW9uIj09PWUuY29ubmVjdG9yQ2xhc3MuZGlzcGxheU5hbWUpJiYwPGUuY29ubmVjdG9yQ2xhc3MucGF0aChpKS5pbmRleE9mKHQpJiYocz17ZGlzcGxheU5hbWU6ZS5jb25uZWN0b3JDbGFzcy5kaXNwbGF5TmFtZSgpfSl9KSksc3x8ZVswXX0sY2xvc2VkTmF2OmZ1bmN0aW9uKCl7dGhpcy5leHBhbmRlZHx8dGhpcy5lbnN1cmVEcm9wQ2xvc2VkKCl9LGVuc3VyZURyb3BDbG9zZWQ6ZnVuY3Rpb24oKXt0aGlzLmV4cGFuZGVkfHx0aGlzLnNldCgiZXhwYW5kZWQiLCExKSwkKHdpbmRvdykub2ZmKCJjbGljay5uYXZpZ2F0aW9uLWJhciIpLHMuZGVmYXVsdC5hcHBFdmVudHMub2ZmKCJkb206Y2xlYW4iLHRoaXMsdGhpcy5lbnN1cmVEcm9wQ2xvc2VkKX0sYWN0aW9uczp7dG9nZ2xlRHJvcDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5zZXQoImV4cGFuZGVkIiwhdGhpcy5leHBhbmRlZCksdGhpcy5leHBhbmRlZCYmKHMuZGVmYXVsdC5hcHBFdmVudHMub24oImRvbTpjbGVhbiIsdGhpcyx0aGlzLmVuc3VyZURyb3BDbG9zZWQpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtlLmV4cGFuZGVkJiYoJChlLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRyb3AgYSIpKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGUuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZHJvcCIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLCgwLHQubmV4dCkoZnVuY3Rpb24oKXshZS5lbGVtZW50fHxlLmlzRGVzdHJveWluZ3x8ZS5pc0Rlc3Ryb3llZHx8ZS5zZXQoImV4cGFuZGVkIiwhMSl9KSwhMH0pLCQod2luZG93KS5vbigiY2xpY2submF2aWdhdGlvbi1iYXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KCJleHBhbmRlZCIsITEpLCEwfSkpfSkpfX19LCJzZWxlY3RlZE5hdkl0ZW0iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNlbGVjdGVkTmF2SXRlbSIpLHUpLGQodSwiY2xvc2VkTmF2IixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJjbG9zZWROYXYiKSx1KSx1KSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvZmlsdGVyLW1vZGUiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwobz0oMCx0LmRlZmF1bHQpKCJjb250ZW50LmZpbHRlclR5cGUiLCJmaWx0ZXJUeXBlIiwiY29udGVudC5hY3RpdmUiKSxyPSgwLHQuZGVmYXVsdCkoImNvbnRlbnQuY291bnQiKSxzKGE9e3RhZ05hbWU6ImxpIixjbGFzc05hbWVCaW5kaW5nczpbImFjdGl2ZSIsImNvbnRlbnQuaGFzSWNvbjpoYXMtaWNvbiIsImNvbnRlbnQuY2xhc3NOYW1lcyIsImlzSGlkZGVuOmhpZGRlbiJdLGF0dHJpYnV0ZUJpbmRpbmdzOlsiY29udGVudC50aXRsZTp0aXRsZSJdLGhpZGRlbjohMSxyZXJlbmRlclRyaWdnZXJzOlsiY29udGVudC5jb3VudCJdLGFjdGl2ZUNsYXNzOiIiLGhyZWZMaW5rOm51bGwsYWN0aXZlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwIT09bj9uOmU9PT10fSxpc0hpZGRlbjpmdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5hY3RpdmUmJnRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbCYmKCJuZXciPT09dGhpcy5jb250ZW50LmdldCgibmFtZSIpfHwidW5yZWFkIj09PXRoaXMuY29udGVudC5nZXQoIm5hbWUiKSkmJmU8MX0sZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBlLG49dGhpcy5jb250ZW50LHQ9bi5nZXQoImhyZWYiKSxpPVtdOyFuLmdldCgiaW5jbHVkZUNhdGVnb3J5SWQiKXx8KGU9dGhpcy5nZXQoImNvbnRlbnQuY2F0ZWdvcnkuaWQiKSkmJmkucHVzaCgiY2F0ZWdvcnlfaWQ9IitlKSxuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zJiZPYmplY3Qua2V5cyhuLnBlcnNpc3RlZFF1ZXJ5UGFyYW1zKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW4ucGVyc2lzdGVkUXVlcnlQYXJhbXNbZV07aS5wdXNoKGUrIj0iK3QpfSksaS5sZW5ndGgmJih0Kz0iPyIraS5qb2luKCImIikpLHRoaXMuc2V0KCJocmVmTGluayIsdCksdGhpcy5zZXQoImFjdGl2ZUNsYXNzIix0aGlzLmFjdGl2ZT8iYWN0aXZlIjoiIil9fSwiYWN0aXZlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJhY3RpdmUiKSxhKSxzKGEsImlzSGlkZGVuIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLCJpc0hpZGRlbiIpLGEpLGEpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWNvbnNlbnQtYmFubmVyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3B1c2gtbm90aWZpY2F0aW9ucyIsImRpc2NvdXJzZS9jb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGw9ImRpc21pc3NlZC1wcm9tcHQiO2UuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoImlzTm90U3VwcG9ydGVkIiwiaXNFbmFibGVkIiwiYmFubmVyRGlzbWlzc2VkIiwiY3VycmVudFVzZXIucmVwbHlfY291bnQiLCJjdXJyZW50VXNlci50b3BpY19jb3VudCIpLHMocj17YmFubmVyRGlzbWlzc2VkOntzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG4ua2V5VmFsdWVTdG9yZS5zZXRJdGVtKGwsZSksbi5rZXlWYWx1ZVN0b3JlLmdldEl0ZW0obCl9LGdldDpmdW5jdGlvbigpe3JldHVybiBuLmtleVZhbHVlU3RvcmUuZ2V0SXRlbShsKX19LHNob3dOb3RpZmljYXRpb25Qcm9tcHRCYW5uZXI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gdGhpcy5zaXRlU2V0dGluZ3MucHVzaF9ub3RpZmljYXRpb25zX3Byb21wdCYmIWUmJnRoaXMuY3VycmVudFVzZXImJjA8aStzJiYiZGVuaWVkIiE9PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJiYiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbiYmIXQmJiFufSxhY3Rpb25zOnt0dXJub246ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfSxkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfX19LCJiYW5uZXJEaXNtaXNzZWQiLFt0LmRlZmF1bHRdLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiYmFubmVyRGlzbWlzc2VkIikpP2EudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBhfX0pLHIpLHMociwic2hvd05vdGlmaWNhdGlvblByb21wdEJhbm5lciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2hvd05vdGlmaWNhdGlvblByb21wdEJhbm5lciIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvbnVtYmVyLWZpZWxkIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBpLHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9RW1iZXIuVGV4dEZpZWxkLmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJudW1iZXIiKSxzPSgwLHQuZGVmYXVsdCkoInBsYWNlaG9sZGVyS2V5IiksbihvPXtjbGFzc05hbWVCaW5kaW5nczpbImludmFsaWQiXSx2YWx1ZTp7Z2V0OmZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KGUsMTApO3JldHVybiBpc05hTih0KT8odGhpcy5zZXQoImludmFsaWQiLCEwKSxlKToodGhpcy5zZXQoImludmFsaWQiLCExKSx0aGlzLnNldCgibnVtYmVyIix0KSx0LnRvU3RyaW5nKCkpfX0scGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/STE4bi50KGUpOiIifX0sInZhbHVlIixbaV0sKHI9KHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJ2YWx1ZSIpKT9yLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KSxvKSxuKG8sInBsYWNlaG9sZGVyIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCJwbGFjZWhvbGRlciIpLG8pLG8pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcGFzc3dvcmQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NhblRvZ2dsZTohMSxrZXlQcmVzczpmdW5jdGlvbihlKXs2NTw9ZS53aGljaCYmZS53aGljaDw9OTAmJiFlLnNoaWZ0S2V5fHw5Nzw9ZS53aGljaCYmZS53aGljaDw9MTIyJiZlLnNoaWZ0S2V5Pyh0aGlzLnNldCgiY2FuVG9nZ2xlIiwhMCksdGhpcy5zZXQoImNhcHNMb2NrT24iLCEwKSk6KDY1PD1lLndoaWNoJiZlLndoaWNoPD05MCYmZS5zaGlmdEtleXx8OTc8PWUud2hpY2gmJmUud2hpY2g8PTEyMiYmIWUuc2hpZnRLZXkpJiYodGhpcy5zZXQoImNhblRvZ2dsZSIsITApLHRoaXMuc2V0KCJjYXBzTG9ja09uIiwhMSkpfSxrZXlVcDpmdW5jdGlvbihlKXsyMD09PWUud2hpY2gmJnRoaXMuY2FuVG9nZ2xlJiZ0aGlzLnRvZ2dsZVByb3BlcnR5KCJjYXBzTG9ja09uIil9LGZvY3VzT3V0OmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNhcHNMb2NrT24iLCExKX0sZm9jdXNJbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJjYW5Ub2dnbGUiLCExKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcGx1Z2luLWNvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiZGlzY291cnNlL2xpYi9wbHVnaW4tY29ubmVjdG9ycyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxmLGgsYixuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkUGx1Z2luT3V0bGV0RGVjb3JhdG9yPWZ1bmN0aW9uKGUsdCl7Y1tlXT1jW2VdfHxbXSxjW2VdLnB1c2godCl9LGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7Yz17fX07dmFyIGksZz1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPSEwLHM9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgcixhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0ocj1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goci52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe3M9ITAsbz1lfWZpbmFsbHl7dHJ5eyFpJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfTt2YXIgcyxvLHIsYSxsLHUsYz17fTtlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz1pPXtpbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5jb25uZWN0b3I7dGhpcy5zZXQoImxheW91dE5hbWUiLGUudGVtcGxhdGVOYW1lKTt2YXIgbj10aGlzLmFyZ3N8fHt9O09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oZSl7KDAsZi5kZWZpbmVQcm9wZXJ0eSkodCxlLCgwLGYuY29tcHV0ZWQpKCJhcmdzIixmdW5jdGlvbigpe3JldHVybih0LmFyZ3N8fHt9KVtlXX0pKX0pO3ZhciBpPXRoaXMuZGVwcmVjYXRlZEFyZ3N8fHt9O09iamVjdC5rZXlzKGkpLmZvckVhY2goZnVuY3Rpb24oZSl7KDAsZi5kZWZpbmVQcm9wZXJ0eSkodCxlLCgwLGYuY29tcHV0ZWQpKCJkZXByZWNhdGVkQXJncyIsZnVuY3Rpb24oKXtyZXR1cm4oMCxoLmRlZmF1bHQpKCJUaGUgIitlKyIgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCwgYnV0IGlzIGJlaW5nIHVzZWQgaW4gIit0LmxheW91dE5hbWUpLCh0LmRlcHJlY2F0ZWRBcmdzfHx7fSlbZV19KSl9KTt2YXIgcz10aGlzLmdldCgiY29ubmVjdG9yLmNvbm5lY3RvckNsYXNzIik7dGhpcy5zZXQoImFjdGlvbnMiLHMuYWN0aW9ucyk7dmFyIG89ITAscj0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHU9T2JqZWN0LmVudHJpZXModGhpcy5hY3Rpb25zKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShvPShsPXUubmV4dCgpKS5kb25lKTtvPSEwKXt2YXIgYz1nKGwudmFsdWUsMiksZD1jWzBdLHA9Y1sxXTt0aGlzLnNldChkLHApfX1jYXRjaChlKXtyPSEwLGE9ZX1maW5hbGx5e3RyeXshbyYmdS5yZXR1cm4mJnUucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IGF9fXZhciBtPSgwLGIuYnVpbGRBcmdzV2l0aERlcHJlY2F0aW9ucykobixpKTtzLnNldHVwQ29tcG9uZW50LmNhbGwodGhpcyxtLHRoaXMpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fZGVjb3JhdGVQbHVnaW5PdXRsZXRzKCl9LF9kZWNvcmF0ZVBsdWdpbk91dGxldHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOyhjW3RoaXMuY29ubmVjdG9yLm91dGxldE5hbWVdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZSh0LmVsZW1lbnQsdC5hcmdzKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5nZXQoImNvbm5lY3Rvci5jb25uZWN0b3JDbGFzcyIpLnRlYXJkb3duQ29tcG9uZW50LmNhbGwodGhpcyx0aGlzKX0sc2VuZDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy5nZXQoImNvbm5lY3Rvci5jb25uZWN0b3JDbGFzcyIpLmFjdGlvbnNbZV0sbj1hcmd1bWVudHMubGVuZ3RoLGk9QXJyYXkoMTxuP24tMTowKSxzPTE7czxuO3MrKylpW3MtMV09YXJndW1lbnRzW3NdO3JldHVybiB0P3QuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQoaSkpOnRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsW2VdLmNvbmNhdChpKSl9fSxvPSJfZGVjb3JhdGVQbHVnaW5PdXRsZXRzIixyPVtuLmFmdGVyUmVuZGVyXSxhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSwiX2RlY29yYXRlUGx1Z2luT3V0bGV0cyIpLGw9aSx1PXt9LE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oZSl7dVtlXT1hW2VdfSksdS5lbnVtZXJhYmxlPSEhdS5lbnVtZXJhYmxlLHUuY29uZmlndXJhYmxlPSEhdS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiB1fHx1LmluaXRpYWxpemVyKSYmKHUud3JpdGFibGU9ITApLHU9ci5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChzLG8sZSl8fGV9LHUpLGwmJnZvaWQgMCE9PXUuaW5pdGlhbGl6ZXImJih1LnZhbHVlPXUuaW5pdGlhbGl6ZXI/dS5pbml0aWFsaXplci5jYWxsKGwpOnZvaWQgMCx1LmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09dS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLG8sdSksdT1udWxsKSxpKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3BsdWdpbi1vdXRsZXQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3BsdWdpbi1jb25uZWN0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InNwYW4iLGNvbm5lY3RvcnM6bnVsbCxpbml0OmZ1bmN0aW9uKCl7dGhpcy5ub1RhZ3MmJih0aGlzLnNldCgidGFnTmFtZSIsIiIpLHRoaXMuc2V0KCJjb25uZWN0b3JUYWdOYW1lIiwiIikpLHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZSx0PXRoaXMubmFtZTt0JiYoZT0oMCxuLmJ1aWxkQXJnc1dpdGhEZXByZWNhdGlvbnMpKHRoaXMuYXJnc3x8e30sdGhpcy5kZXByZWNhdGVkQXJnc3x8e30pLHRoaXMuc2V0KCJjb25uZWN0b3JzIiwoMCxuLnJlbmRlcmVkQ29ubmVjdG9yc0ZvcikodCxlLHRoaXMpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3BvcHVwLWlucHV0LXRpcCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAscy5kZWZhdWx0KSgic2hvd25BdCIsInZhbGlkYXRpb24ubGFzdFNob3duQXQiKSxhPSgwLHMub2JzZXJ2ZXMpKCJsYXN0U2hvd25BdCIpLG8obD17Y2xhc3NOYW1lQmluZGluZ3M6WyI6cG9wdXAtdGlwIiwiZ29vZCIsImJhZCIsImxhc3RTaG93bkF0OjpoaWRlIl0sYW5pbWF0ZUF0dHJpYnV0ZTpudWxsLGJvdW5jZVBpeGVsczo2LGJvdW5jZURlbGF5OjEwMCxyZXJlbmRlclRyaWdnZXJzOlsidmFsaWRhdGlvbi5yZWFzb24iXSxjbG9zZUljb246KCIiKygwLGkuaWNvbkhUTUwpKCJ0aW1lcy1jaXJjbGUiKSkuaHRtbFNhZmUoKSx0aXBSZWFzb246bnVsbCxjbGljazpmdW5jdGlvbigpe3RoaXMuc2V0KCJzaG93bkF0IixudWxsKSx0aGlzLnNldCgidmFsaWRhdGlvbi5sYXN0U2hvd25BdCIsbnVsbCl9LGJhZDooMCx0LmFsaWFzKSgidmFsaWRhdGlvbi5mYWlsZWQiKSxnb29kOigwLHQubm90KSgiYmFkIiksbGFzdFNob3duQXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dH0sYm91bmNlOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5sYXN0U2hvd25BdCYmKGU9JCh0aGlzLmVsZW1lbnQpLHRoaXMuYW5pbWF0ZUF0dHJpYnV0ZXx8KHRoaXMuYW5pbWF0ZUF0dHJpYnV0ZT0iYXV0byI9PT1lLmNzcygibGVmdCIpPyJyaWdodCI6ImxlZnQiKSwibGVmdCI9PT10aGlzLmFuaW1hdGVBdHRyaWJ1dGU/dGhpcy5ib3VuY2VMZWZ0KGUpOnRoaXMuYm91bmNlUmlnaHQoZSkpfSxkaWRSZWNlaXZlQXR0cnM6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5nZXQoInZhbGlkYXRpb24ucmVhc29uIik7ZT90aGlzLnNldCgidGlwUmVhc29uIiwoIiIrZSkuaHRtbFNhZmUoKSk6dGhpcy5zZXQoInRpcFJlYXNvbiIsbnVsbCl9LGJvdW5jZUxlZnQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDw1O3QrKyllLmFuaW1hdGUoe2xlZnQ6Iis9Iit0aGlzLmJvdW5jZVBpeGVsc30sdGhpcy5ib3VuY2VEZWxheSkuYW5pbWF0ZSh7bGVmdDoiLT0iK3RoaXMuYm91bmNlUGl4ZWxzfSx0aGlzLmJvdW5jZURlbGF5KX0sYm91bmNlUmlnaHQ6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDw1O3QrKyllLmFuaW1hdGUoe3JpZ2h0OiItPSIrdGhpcy5ib3VuY2VQaXhlbHN9LHRoaXMuYm91bmNlRGVsYXkpLmFuaW1hdGUoe3JpZ2h0OiIrPSIrdGhpcy5ib3VuY2VQaXhlbHN9LHRoaXMuYm91bmNlRGVsYXkpfX0sImxhc3RTaG93bkF0Iixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJsYXN0U2hvd25BdCIpLGwpLG8obCwiYm91bmNlIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJib3VuY2UiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3ByZWZlcmVuY2UtY2hlY2tib3giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoImxhYmVsS2V5Iiksbz1zPXtjbGFzc05hbWVzOlsiY29udHJvbHMiXSxsYWJlbDpmdW5jdGlvbihlKXtyZXR1cm4gSTE4bi50KGUpfSxjaGFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy53YXJuaW5nfHwhdGhpcy5jaGVja2VkfHwodGhpcy53YXJuaW5nKCksITEpfX0scj0ibGFiZWwiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJsYWJlbCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZTpudWxsLGhyZWY6bnVsbCx0aXRsZTpudWxsLGFyaWFMYWJlbDpudWxsfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGM9ImRpc21pc3NlZC1wd2EtaW5zdGFsbC1iYW5uZXIiO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLGkub24pKCJkaWRJbnNlcnRFbGVtZW50Iikscj0oMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IiksYT0oMCxpLmRlZmF1bHQpKCJkZWZlcnJlZEluc3RhbGxQcm9tcHRFdmVudCIsImJhbm5lckRpc21pc3NlZCIpLHMobD17ZGVmZXJyZWRJbnN0YWxsUHJvbXB0RXZlbnQ6bnVsbCxfaGFuZGxlSW5zdGFsbFByb21wdEV2ZW50OmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNldCgiZGVmZXJyZWRJbnN0YWxsUHJvbXB0RXZlbnQiLGUpfSxfcmVnaXN0ZXJMaXN0ZW5lcjpmdW5jdGlvbigpe3RoaXMuX3Byb21wdEV2ZW50SGFuZGxlcj0oMCx0LmJpbmQpKHRoaXMsdGhpcy5faGFuZGxlSW5zdGFsbFByb21wdEV2ZW50KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlaW5zdGFsbHByb21wdCIsdGhpcy5fcHJvbXB0RXZlbnRIYW5kbGVyKX0sX3VucmVnaXN0ZXJMaXN0ZW5lcjpmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmVpbnN0YWxscHJvbXB0Iix0aGlzLl9wcm9tcHRFdmVudEhhbmRsZXIpfSxiYW5uZXJEaXNtaXNzZWQ6e3NldDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5rZXlWYWx1ZVN0b3JlLnNldCh7a2V5OmMsdmFsdWU6ZX0pLHRoaXMua2V5VmFsdWVTdG9yZS5nZXQoYyl9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmtleVZhbHVlU3RvcmUuZ2V0KGMpfX0sc2hvd1BXQUluc3RhbGxCYW5uZXI6ZnVuY3Rpb24oKXt2YXIgZT0tMSE9PXdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigiZGlzY291cnNlX2FwcD0xIik7cmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzLmlzQW5kcm9pZCYmMDx0aGlzLmdldCgiY3VycmVudFVzZXIudHJ1c3RfbGV2ZWwiKSYmdGhpcy5kZWZlcnJlZEluc3RhbGxQcm9tcHRFdmVudCYmIXdpbmRvdy5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKSIpLm1hdGNoZXMmJiFlJiYhdGhpcy5iYW5uZXJEaXNtaXNzZWR9LGFjdGlvbnM6e3R1cm5PbjpmdW5jdGlvbigpe3RoaXMuc2V0KCJiYW5uZXJEaXNtaXNzZWQiLCEwKSx0aGlzLmRlZmVycmVkSW5zdGFsbFByb21wdEV2ZW50LnByb21wdCgpfSxkaXNtaXNzOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImJhbm5lckRpc21pc3NlZCIsITApfX19LCJfcmVnaXN0ZXJMaXN0ZW5lciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX3JlZ2lzdGVyTGlzdGVuZXIiKSxsKSxzKGwsIl91bnJlZ2lzdGVyTGlzdGVuZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl91bnJlZ2lzdGVyTGlzdGVuZXIiKSxsKSxzKGwsImJhbm5lckRpc21pc3NlZCIsW2kuZGVmYXVsdF0sKHU9KHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJiYW5uZXJEaXNtaXNzZWQiKSk/dS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSksbCkscyhsLCJzaG93UFdBSW5zdGFsbEJhbm5lciIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwic2hvd1BXQUluc3RhbGxCYW5uZXIiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3F1b3RlLWJ1dHRvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9kZWJvdW5jZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxqLHQscixUKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsicXVvdGUtYnV0dG9uIl0sY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlIl0sdmlzaWJsZTohMSxfaXNNb3VzZURvd246ITEsX3Jlc2VsZWN0ZWQ6ITEsX2hpZGVCdXR0b246ZnVuY3Rpb24oKXt0aGlzLnF1b3RlU3RhdGUuY2xlYXIoKSx0aGlzLnNldCgidmlzaWJsZSIsITEpfSxfc2VsZWN0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucXVvdGVTdGF0ZSx0PXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZih0LmlzQ29sbGFwc2VkKXRoaXMudmlzaWJsZSYmdGhpcy5faGlkZUJ1dHRvbigpO2Vsc2V7Zm9yKHZhciBuPXZvaWQgMCxpPXZvaWQgMCxzPTA7czx0LnJhbmdlQ291bnQ7cysrKXt2YXIgbz10LmdldFJhbmdlQXQocyk7aWYoMD09PSQoby5zdGFydENvbnRhaW5lci5wYXJlbnROb2RlKS5jbG9zZXN0KCIuY29va2VkIikubGVuZ3RoKXJldHVybjt2YXIgcj0kKG8uY29tbW9uQW5jZXN0b3JDb250YWluZXIpLG49bnx8byxpPWl8fHIuY2xvc2VzdCgiLmJveGVkLCAucmVwbHkiKS5kYXRhKCJwb3N0LWlkIik7aWYoMD09PXIuY2xvc2VzdCgiLmNvbnRlbnRzIikubGVuZ3RofHwhaSlyZXR1cm4gdm9pZCh0aGlzLnZpc2libGUmJnRoaXMuX2hpZGVCdXR0b24oKSl9Zm9yKHZhciBhPXtyYXc6ITB9LGw9KDAsVC5zZWxlY3RlZEVsZW1lbnQpKCk7bCYmIkFSVElDTEUiIT09bC50YWdOYW1lO2w9bC5wYXJlbnRFbGVtZW50KSJBU0lERSI9PT1sLnRhZ05hbWUmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJxdW90ZSIpJiYoYS51c2VybmFtZT1sLmRhdGFzZXQudXNlcm5hbWV8fGwucXVlcnlTZWxlY3RvcigiLnRpdGxlIikudGV4dENvbnRlbnQudHJpbSgpLnJlcGxhY2UoLzokLywiIiksYS5wb3N0PWwuZGF0YXNldC5wb3N0LGEudG9waWM9bC5kYXRhc2V0LnRvcGljKTt2YXIgdSxjLGQscCxtLGYsaCxiLGcsdix5LF8sdyx4LGssUD0oMCxULnNlbGVjdGVkVGV4dCkoKTtlLnNlbGVjdGVkKGksUCxhKSx0aGlzLnNldCgidmlzaWJsZSIsMDxlLmJ1ZmZlci5sZW5ndGgpLHRoaXMuX3ByZXZTZWxlY3Rpb24hPT1QJiYodGhpcy5fcHJldlNlbGVjdGlvbj1QLHU9dGhpcy5zaXRlLmlzTW9iaWxlRGV2aWNlLGQ9KGM9dGhpcy5jYXBhYmlsaXRpZXMpLmlzSU9TLHA9Yy5pc0FuZHJvaWQsbT1jLmlzU2FmYXJpLGY9Yy5pc09wZXJhLGg9Yy5pc0lFMTEsYj11fHxkfHxwfHxmLGc9bi5jbG9uZVJhbmdlKCksKHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHVmZWZmIikpLGImJmcuY29sbGFwc2UoKSxnLmluc2VydE5vZGUodikseT0kKHYpLF89eS5vZmZzZXQoKSx3PXkucGFyZW50KCkuc2Nyb2xsTGVmdCgpLHg9JCh0aGlzLmVsZW1lbnQpLChrPXYucGFyZW50Tm9kZSkucmVtb3ZlQ2hpbGQodiksaHx8ay5ub3JtYWxpemUoKSxtJiYodGhpcy5fcmVzZWxlY3RlZD0hMCx0LnJlbW92ZUFsbFJhbmdlcygpLHQuYWRkUmFuZ2UoZykpLCgwLGouc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIGU9Xy50b3AsdD1fLmxlZnQrTWF0aC5tYXgoMCx3KTtiPyhlPSQod2luZG93KS53aWR0aCgpLXgub3V0ZXJXaWR0aCgpPHQrMTA/ZSs1MDplKzIwLHQ9TWF0aC5taW4odCsxMCwkKHdpbmRvdykud2lkdGgoKS14Lm91dGVyV2lkdGgoKS0xMCkpOmU9ZS14Lm91dGVySGVpZ2h0KCktNSx4Lm9mZnNldCh7dG9wOmUsbGVmdDp0fSl9KSl9fSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuY2FwYWJpbGl0aWVzLG49ZS5pc1dpbnBob25lLGk9ZS5pc0FuZHJvaWQscz1ufHxpPzI1MDoyNSxvPSgwLHIuZGVmYXVsdCkoZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2VsZWN0aW9uQ2hhbmdlZCgpfSxzKTskKGRvY3VtZW50KS5vbigibW91c2Vkb3duLnF1b3RlLWJ1dHRvbiIsZnVuY3Rpb24oZSl7dC5fcHJldlNlbGVjdGlvbj1udWxsLHQuX2lzTW91c2VEb3duPSEwLHQuX3Jlc2VsZWN0ZWQ9ITEsMD09PSQoZS50YXJnZXQpLmNsb3Nlc3QoIi5xdW90ZS1idXR0b24sIC5jcmVhdGUsIC5zaGFyZSwgLnJlcGx5LW5ldyIpLmxlbmd0aCYmdC5faGlkZUJ1dHRvbigpfSkub24oIm1vdXNldXAucXVvdGUtYnV0dG9uIixmdW5jdGlvbigpe3QuX3ByZXZTZWxlY3Rpb249bnVsbCx0Ll9pc01vdXNlRG93bj0hMSxvKCl9KS5vbigic2VsZWN0aW9uY2hhbmdlLnF1b3RlLWJ1dHRvbiIsZnVuY3Rpb24oKXt0Ll9pc01vdXNlRG93bnx8dC5fcmVzZWxlY3RlZHx8bygpfSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9mZigibW91c2Vkb3duLnF1b3RlLWJ1dHRvbiIpLm9mZigibW91c2V1cC5xdW90ZS1idXR0b24iKS5vZmYoInNlbGVjdGlvbmNoYW5nZS5xdW90ZS1idXR0b24iKX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5xdW90ZVN0YXRlLG49dC5wb3N0SWQsaT10LmJ1ZmZlcixzPXQub3B0cztyZXR1cm4gdGhpcy5hdHRycy5zZWxlY3RUZXh0KG4saSxzKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2hpZGVCdXR0b24oKX0pLCExfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yYWRpby1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInZhbHVlIiwic2VsZWN0aW9uIiksbz1zPXt0YWdOYW1lOiJpbnB1dCIsdHlwZToicmFkaW8iLGF0dHJpYnV0ZUJpbmRpbmdzOlsibmFtZSIsInR5cGUiLCJ2YWx1ZSIsImNoZWNrZWQ6Y2hlY2tlZCIsImRpc2FibGVkOmRpc2FibGVkIl0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuZWxlbWVudCkudmFsKCk7dGhpcy5vbkNoYW5nZT90aGlzLm9uQ2hhbmdlKGUpOih0aGlzLnNlbGVjdGlvbj09PWUmJnRoaXMuc2V0KCJzZWxlY3Rpb24iLHZvaWQgMCksdGhpcy5zZXQoInNlbGVjdGlvbiIsZSkpfSxjaGVja2VkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fX0scj0iY2hlY2tlZCIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNoZWNrZWQiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZWxhdGVkLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLG8scjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHM9KDAsdC5kZWZhdWx0KSgidG9waWMiKSxvPSgwLHQuZGVmYXVsdCkoInRvcGljIiksaShyPXtlbGVtZW50SWQ6InJlbGF0ZWQtbWVzc2FnZXMiLGNsYXNzTmFtZXM6WyJzdWdnZXN0ZWQtdG9waWNzIl0sdGFyZ2V0VXNlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKGUmJmUuaXNQcml2YXRlTWVzc2FnZSl7dmFyIG49ZS5kZXRhaWxzLmFsbG93ZWRfdXNlcnM7cmV0dXJuIGUucmVsYXRlZE1lc3NhZ2VzJiY1PD1lLnJlbGF0ZWRNZXNzYWdlcy5sZW5ndGgmJjI9PT1uLmxlbmd0aCYmMD09PWUuZGV0YWlscy5hbGxvd2VkX2dyb3Vwcy5sZW5ndGgmJm4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VybmFtZT09PXQuY3VycmVudFVzZXIudXNlcm5hbWV9KT9uLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWUhPT10LmN1cnJlbnRVc2VyLnVzZXJuYW1lfSk6dm9pZCAwfX0sc2VhcmNoTGluazpmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKCIvc2VhcmNoP2V4cGFuZGVkPXRydWUmcT0lNDAiK3RoaXMudGFyZ2V0VXNlci51c2VybmFtZSsiJTIwaW4lM0FwZXJzb25hbC1kaXJlY3QiKX0scmVsYXRlZFRpdGxlTGluazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5wbVBhdGgoZSl9fSwidGFyZ2V0VXNlciIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwidGFyZ2V0VXNlciIpLHIpLGkociwic2VhcmNoTGluayIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzZWFyY2hMaW5rIiksciksaShyLCJyZWxhdGVkVGl0bGVMaW5rIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJyZWxhdGVkVGl0bGVMaW5rIikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLWJ1bmRsZWQtYWN0aW9uIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHt0YWdOYW1lOiIiLG11bHRpcGxlOigwLHQuZ3QpKCJidW5kbGUuYWN0aW9ucy5sZW5ndGgiLDEpLGZpcnN0OigwLHQuYWxpYXMpKCJidW5kbGUuYWN0aW9ucy5maXJzdE9iamVjdCIpLGFjdGlvbnM6e3BlcmZvcm1CeUlkOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMucGVyZm9ybUFjdGlvbih0aGlzLmdldCgiYnVuZGxlLmFjdGlvbnMiKS5maW5kQnkoImlkIixlKSl9LHBlcmZvcm06ZnVuY3Rpb24oZSl7dGhpcy5hdHRycy5wZXJmb3JtQWN0aW9uKGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1jbGFpbWVkLXRvcGljIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7dmFyIG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChyPW89e3RhZ05hbWU6IiIsZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiJkaXNhYmxlZCIhPT10aGlzLnNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nfSxhY3Rpb25zOnt1bmNsYWltOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczsoMCxzLmFqYXgpKCIvcmV2aWV3YWJsZV9jbGFpbWVkX3RvcGljcy8iK3RoaXMudG9waWNJZCx7bWV0aG9kOiJERUxFVEUifSkudGhlbihmdW5jdGlvbigpe2Uuc2V0KCJjbGFpbWVkQnkiLG51bGwpfSl9LGNsYWltOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuc3RvcmUuY3JlYXRlUmVjb3JkKCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiKTt0LnNhdmUoe3RvcGljX2lkOnRoaXMudG9waWNJZH0pLnRoZW4oZnVuY3Rpb24oKXtlLnNldCgiY2xhaW1lZEJ5IixlLmN1cnJlbnRVc2VyKX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpfX19LGE9ImVuYWJsZWQiLGw9W3QuZGVmYXVsdF0sdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sImVuYWJsZWQiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtzaG93VXNlcm5hbWU6KDAsdC5ndGUpKCJpbmRleCIsMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHthY3Rpb25zOntvbkNoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnZhbHVlQ2hhbmdlZCYmdGhpcy52YWx1ZUNoYW5nZWQoe3RhcmdldDp7dmFsdWU6ZX19KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3Jldmlld2FibGUtZmxhZ2dlZC1wb3N0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1lZGl0cy1pbmRpY2F0b3IiLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChsPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGUucG9zdF91cGRhdGVkX2F0IiksdT0oMCx0LmRlZmF1bHQpKCJyZXZpZXdhYmxlLnBvc3RfdXBkYXRlZF9hdCIpLGEoYz17aGFzRWRpdHM6KDAsbi5ndCkoInJldmlld2FibGUucG9zdF92ZXJzaW9uIiwxKSxoaXN0b3J5Q2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5oaXN0b3J5SGVhdCkodGhpcy5zaXRlU2V0dGluZ3MsbmV3IERhdGUoZSkpfSxlZGl0ZWREYXRlOmZ1bmN0aW9uKGUpe3JldHVybigwLHMubG9uZ0RhdGUpKGUpfSxhY3Rpb25zOntzaG93RWRpdEhpc3Rvcnk6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmdldCgicmV2aWV3YWJsZS5wb3N0X2lkIik7dGhpcy5zdG9yZS5maW5kKCJwb3N0IixuKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PSgwLHIuZGVmYXVsdCkoImhpc3RvcnkiLHttb2RlbDplLG1vZGFsQ2xhc3M6Imhpc3RvcnktbW9kYWwifSk7dC5yZWZyZXNoKG4sImxhdGVzdCIpLHQuc2V0KCJwb3N0IixlKSx0LnNldCgidG9waWNDb250cm9sbGVyIixudWxsKX0pfX19LCJoaXN0b3J5Q2xhc3MiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImhpc3RvcnlDbGFzcyIpLGMpLGEoYywiZWRpdGVkRGF0ZSIsW3VdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiZWRpdGVkRGF0ZSIpLGMpLGMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1oaXN0b3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2ZpbHRlcmVkSGlzdG9yaWVzOigwLHQuZmlsdGVyQnkpKCJoaXN0b3JpZXMiLCJjcmVhdGVkIiwhMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvcmV2aWV3YWJsZS1pdGVtIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9saWIvb3B0aW9uYWwtc2VydmljZSIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsIkBlbWJlci9zdHJpbmciLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4sbyxyLGkscyxhLGwsdSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYyxkLHAsbSxmLGgsYixnPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtmdW5jdGlvbiB2KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB5PXt9O2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHQuZGVmYXVsdCkoInJldmlld2FibGUudHlwZSIpLGQ9KDAsdC5kZWZhdWx0KSgicmV2aWV3YWJsZS50b3BpYyIsInJldmlld2FibGUudG9waWNfaWQiLCJyZXZpZXdhYmxlLnJlbW92ZWRfdG9waWNfaWQiKSxwPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nIiwidG9waWNJZCIpLG09KDAsdC5kZWZhdWx0KSgiY2xhaW1FbmFibGVkIiwic2l0ZVNldHRpbmdzLnJldmlld2FibGVfY2xhaW1pbmciLCJyZXZpZXdhYmxlLmNsYWltZWRfYnkiKSxmPSgwLHQuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5yZXZpZXdhYmxlX2NsYWltaW5nIiwicmV2aWV3YWJsZS5jbGFpbWVkX2J5IiksaD0oMCx0LmRlZmF1bHQpKCJyZXZpZXdhYmxlLnR5cGUiKSx2KGI9e2FkbWluVG9vbHM6KDAscy5kZWZhdWx0KSgpLHRhZ05hbWU6IiIsdXBkYXRpbmc6bnVsbCxlZGl0aW5nOiExLF91cGRhdGVzOm51bGwsY3VzdG9tQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGFzaGVyaXplKCl9LHRvcGljSWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJiZlLmlkfHx0fHxufSxjbGFpbUVuYWJsZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iZGlzYWJsZWQiIT09ZSYmISF0fSxjYW5QZXJmb3JtOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZXx8KG4/bi5pZD09PXRoaXMuY3VycmVudFVzZXIuaWQ6InJlcXVpcmVkIiE9PXQpfSxjbGFpbUhlbHA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD90LmlkPT09dGhpcy5jdXJyZW50VXNlci5pZD9JMThuLnQoInJldmlldy5jbGFpbV9oZWxwLmNsYWltZWRfYnlfeW91Iik6STE4bi50KCJyZXZpZXcuY2xhaW1faGVscC5jbGFpbWVkX2J5X290aGVyIix7dXNlcm5hbWU6dC51c2VybmFtZX0pOiJvcHRpb25hbCI9PT1lP0kxOG4udCgicmV2aWV3LmNsYWltX2hlbHAub3B0aW9uYWwiKTpJMThuLnQoInJldmlldy5jbGFpbV9oZWxwLnJlcXVpcmVkIil9LHJldmlld2FibGVDb21wb25lbnQ6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09eVtlXSlyZXR1cm4geVtlXTt2YXIgdD0oMCxsLmRhc2hlcml6ZSkoZSksbj0iY29tcG9uZW50cy8iK3QsaT1FbWJlci5URU1QTEFURVNbbl18fEVtYmVyLlRFTVBMQVRFU1siamF2YXNjcmlwdHMvIituXTtyZXR1cm4geVtlXT1pP3Q6bnVsbCx5W2VdfSxfcGVyZm9ybUNvbmZpcm1lZDpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIGU9aS5nZXQoInZlcnNpb24iKTtyZXR1cm4gbi5zZXQoInVwZGF0aW5nIiwhMCksKDAsby5hamF4KSgiL3Jldmlldy8iK2kuaWQrIi9wZXJmb3JtLyIrdC5pZCsiP3ZlcnNpb249IitlLHttZXRob2Q6IlBVVCJ9KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmV2aWV3YWJsZV9wZXJmb3JtX3Jlc3VsdDtpZih2b2lkIDAhPT10LnJldmlld2FibGVfY291bnQmJm4uY3VycmVudFVzZXIuc2V0KCJyZXZpZXdhYmxlX2NvdW50IixlLnJldmlld2FibGVfY291bnQpLCFuLmF0dHJzLnJlbW92ZSlyZXR1cm4gbi5zdG9yZS5maW5kKCJyZXZpZXdhYmxlIixpLmlkKTtuLmF0dHJzLnJlbW92ZSh0LnJlbW92ZV9yZXZpZXdhYmxlX2lkcyl9KS5jYXRjaChyLnBvcHVwQWpheEVycm9yKS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIG4uc2V0KCJ1cGRhdGluZyIsITEpfSl9dmFyIG49dGhpcyxpPXRoaXMucmV2aWV3YWJsZTtpZih0LmNsaWVudF9hY3Rpb24pe3ZhciBzPXRoaXNbImNsaWVudCIrdC5jbGllbnRfYWN0aW9uLmNsYXNzaWZ5KCldO3JldHVybiBzP3MuY2FsbCh0aGlzLGksZSk6dm9pZCBjb25zb2xlLmVycm9yKCJObyBoYW5kbGVyIGZvciAiK3QuY2xpZW50X2FjdGlvbisiIGZvdW5kIil9cmV0dXJuIGUoKX0sY2xpZW50U3VzcGVuZDpmdW5jdGlvbihlLHQpe3RoaXMuX3BlbmFsaXplKCJzaG93U3VzcGVuZE1vZGFsIixlLHQpfSxjbGllbnRTaWxlbmNlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fcGVuYWxpemUoInNob3dTaWxlbmNlTW9kYWwiLGUsdCl9LF9wZW5hbGl6ZTpmdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpcy5hZG1pblRvb2xzO2lmKGkpe3ZhciBzPXQuZ2V0KCJ0YXJnZXRfY3JlYXRlZF9ieSIpLG89dC5nZXQoInBvc3RfaWQiKSxyPXQuZ2V0KCJyYXciKTtyZXR1cm4gaVtlXShzLHtwb3N0SWQ6byxwb3N0RWRpdDpyLGJlZm9yZTpufSl9fSxhY3Rpb25zOntleHBsYWluUmV2aWV3YWJsZTpmdW5jdGlvbihlKXsoMCxhLmRlZmF1bHQpKCJleHBsYWluLXJldmlld2FibGUiLHt0aXRsZToicmV2aWV3LmV4cGxhaW4udGl0bGUiLG1vZGVsOmV9KX0sZWRpdDpmdW5jdGlvbigpe3RoaXMuc2V0KCJlZGl0aW5nIiwhMCksdGhpcy5fdXBkYXRlcz17cGF5bG9hZDp7fX19LGNhbmNlbEVkaXQ6ZnVuY3Rpb24oKXt0aGlzLnNldCgiZWRpdGluZyIsITEpfSxzYXZlRWRpdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj10aGlzLl91cGRhdGVzO3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07Im9iamVjdCI9PT0odm9pZCAwPT09dD8idW5kZWZpbmVkIjpnKHQpKSYmMD09PU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmZGVsZXRlIG5bZV19KSx0aGlzLnNldCgidXBkYXRpbmciLCEwKSx0aGlzLnJldmlld2FibGUudXBkYXRlKG4pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoImVkaXRpbmciLCExKX0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoInVwZGF0aW5nIiwhMSl9KX0sY2F0ZWdvcnlDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciB0PSh0PWkuZGVmYXVsdC5maW5kQnlJZChlKSl8fGkuZGVmYXVsdC5maW5kVW5jYXRlZ29yaXplZCgpO3RoaXMuX3VwZGF0ZXMuY2F0ZWdvcnlfaWQ9dC5pZH0sdmFsdWVDaGFuZ2VkOmZ1bmN0aW9uKGUsdCl7KDAsdS5zZXQpKHRoaXMuX3VwZGF0ZXMsZSx0LnRhcmdldC52YWx1ZSl9LHBlcmZvcm06ZnVuY3Rpb24odCl7dmFyIG49dGhpcztpZighdGhpcy51cGRhdGluZyl7dmFyIGU9dC5nZXQoImNvbmZpcm1fbWVzc2FnZSIpO2lmKCFlKXJldHVybiB0aGlzLl9wZXJmb3JtQ29uZmlybWVkKHQpO2Jvb3Rib3guY29uZmlybShlLGZ1bmN0aW9uKGUpe2lmKGUpcmV0dXJuIG4uX3BlcmZvcm1Db25maXJtZWQodCl9KX19fX0sImN1c3RvbUNsYXNzIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJjdXN0b21DbGFzcyIpLGIpLHYoYiwidG9waWNJZCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwidG9waWNJZCIpLGIpLHYoYiwiY2xhaW1FbmFibGVkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJjbGFpbUVuYWJsZWQiKSxiKSx2KGIsImNhblBlcmZvcm0iLFttXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsImNhblBlcmZvcm0iKSxiKSx2KGIsImNsYWltSGVscCIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYiwiY2xhaW1IZWxwIiksYiksdihiLCJyZXZpZXdhYmxlQ29tcG9uZW50IixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLCJyZXZpZXdhYmxlQ29tcG9uZW50IiksYiksYikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLXF1ZXVlZC1wb3N0IixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3Nob3dSYXdFbWFpbDpmdW5jdGlvbigpeygwLG4uZGVmYXVsdCkoInJhdy1lbWFpbCIpLnNldCgicmF3RW1haWwiLHRoaXMucmV2aWV3YWJsZS5wYXlsb2FkLnJhd19lbWFpbCl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy9yZXZpZXdhYmxlLXVzZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4uZGVmYXVsdCkoInJldmlld2FibGUudXNlcl9maWVsZHMiKSxvPXM9e3VzZXJGaWVsZHM6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2l0ZS5jb2xsZWN0VXNlckZpZWxkcyhlKX19LHI9InVzZXJGaWVsZHMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ1c2VyRmllbGRzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2Nyb2xsLXRyYWNrZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9taXhpbnMvc2Nyb2xsaW5nIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChpLmRlZmF1bHQse2RpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldCgidHJhY2tlck5hbWUiLCJzY3JvbGwtdHJhY2tlci0iK3RoaXMubmFtZSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOnRoaXMubmFtZX0pfSxkaWRSZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5zZXNzaW9uLmdldCh0aGlzLnRyYWNrZXJOYW1lKTtlJiYwPD1lLnBvc2l0aW9uJiZlLnRhZz09PXRoaXMudGFnJiYoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZS5wb3NpdGlvbisxKX0pfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy51bmJpbmRTY3JvbGxpbmcodGhpcy5uYW1lKX0sc2Nyb2xsZWQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXNzaW9uLnNldCh0aGlzLnRyYWNrZXJOYW1lLHtwb3NpdGlvbjokKHdpbmRvdykuc2Nyb2xsVG9wKCksdGFnOnRoaXMudGFnfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3Njcm9sbGluZy1wb3N0LXN0cmVhbSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Qtc3RyZWFtIiwiZGlzY291cnNlL2xpYi9zYWZhcmktaGFja3MiLCJkaXNjb3Vyc2UvbGliL29mZnNldC1jYWxjdWxhdG9yIl0sZnVuY3Rpb24oZSxSLG4sdCxxLEgsSyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7d2lkZ2V0OiJwb3N0LXN0cmVhbSIsX3RvcFZpc2libGU6bnVsbCxfYm90dG9tVmlzaWJsZTpudWxsLF9jdXJyZW50UG9zdDpudWxsLF9jdXJyZW50VmlzaWJsZTpudWxsLF9jdXJyZW50UGVyY2VudDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFByb3BlcnRpZXMoInBvc3RzIiwiY2FuQ3JlYXRlUG9zdCIsIm11bHRpU2VsZWN0IiwiZ2FwcyIsInNlbGVjdGVkUXVlcnkiLCJzZWxlY3RlZFBvc3RzQ291bnQiLCJzZWFyY2hTZXJ2aWNlIiwic2hvd1JlYWRJbmRpY2F0b3IiKX0sYmVmb3JlUGF0Y2g6ZnVuY3Rpb24oKXt2YXIgZT0kKGRvY3VtZW50KTt0aGlzLnByZXZIZWlnaHQ9ZS5oZWlnaHQoKSx0aGlzLnByZXZTY3JvbGxUb3A9ZS5zY3JvbGxUb3AoKX0sYWZ0ZXJQYXRjaDpmdW5jdGlvbigpe3ZhciBlPSQoZG9jdW1lbnQpLHQ9ZS5oZWlnaHQoKSxuPWUuc2Nyb2xsVG9wKCk7dGhpcy5wcmV2SGVpZ2h0PT09dCYmbiE9PXRoaXMucHJldlNjcm9sbFRvcCYmZS5zY3JvbGxUb3AodGhpcy5wcmV2U2Nyb2xsVG9wKX0sc2Nyb2xsZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKCF0aGlzLmlzRGVzdHJveWVkJiYhdGhpcy5pc0Rlc3Ryb3lpbmcmJiEoMCxILmlzV29ya2Fyb3VuZEFjdGl2ZSkoKSl7dmFyIGU9ZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCgwLDApO2lmKCFlfHwiSUZSQU1FIiE9PWUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKXt2YXIgdD0kKHdpbmRvdyksbj13aW5kb3cuaW5uZXJIZWlnaHQ/d2luZG93LmlubmVySGVpZ2h0OnQuaGVpZ2h0KCkscz1NYXRoLnJvdW5kKDUqbiksbz1bXSxyPVtdLGE9dC5zY3JvbGxUb3AoKSxsPSQoIi5wb3N0cy13cmFwcGVyIikub2Zmc2V0KCkudG9wLHU9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm9uc2NyZWVuLXBvc3QsIC5jbG9ha2VkLXBvc3QiKSksYz1mdW5jdGlvbihlLHQsbixpLHMpe2lmKHM8aSlyZXR1cm4gaTtmb3IoO2k8czspe3ZhciBvPU1hdGguZmxvb3IoKGkrcykvMikscj0kKGVbb10pO3Q8ci5vZmZzZXQoKS50b3AtbityLmhlaWdodCgpP3M9by0xOmk9bysxfXJldHVybiBpfSh1LGEtcyxsLDAsdS5sZW5ndGgtMSksZD1hK24scD1kK3MsbT0kKCJib2R5IikuaGVpZ2h0KCk7bTxkJiYoZD1tKSxtPHAmJihwPW0pO2Zvcih2YXIgZj1udWxsLGg9bnVsbCxiPSgwLEsuZGVmYXVsdCkoKSxnPU1hdGguY2VpbChhK2IrNSksdj0hMCx5PWMsXz0wO3k8dS5sZW5ndGg7KXt2YXIgdz11W3ldLHg9JCh3KTtpZigheClicmVhazt2YXIgaz14Lm9mZnNldCgpLnRvcCxQPXgub3V0ZXJIZWlnaHQoITApLGo9TWF0aC5jZWlsKGsrUCksdj12JiZrPGc7aWYocDxrKWJyZWFrO2E8PWomJms8PWQmJm8ucHVzaCh5KSxudWxsPT09ZiYmKGs8PWcmJmc8PWp8fF88PWcmJmc8PWspJiYoaD0oZy1rKS9QLGY9eSksXz1qLHIucHVzaCh5KSx5Kyt9diYmKG51bGw9PT1oJiYoaD0xKSxudWxsPT09ZiYmKGY9eS0xKSk7dmFyIFQsRSxPLFMsQyxNLEQsSSxMLEE9dGhpcy5wb3N0cyxOPWZ1bmN0aW9uKGUpe3JldHVybiBpLnF1ZXVlUmVyZW5kZXIoZSl9O28ubGVuZ3RoPyhUPUEub2JqZWN0QXQob1swXSksdGhpcy5fdG9wVmlzaWJsZSE9PVQmJih0aGlzLl90b3BWaXNpYmxlPVQsRT0kKCJib2R5IiksTz11W29bMF1dLFM9Ty5pZCxDPSQoTykucG9zaXRpb24oKSxNPUM/RS5zY3JvbGxUb3AoKS1DLnRvcDowLHRoaXMudG9wVmlzaWJsZUNoYW5nZWQoe3Bvc3Q6VCxyZWZyZXNoOmZ1bmN0aW9uKCl7TihmdW5jdGlvbigpe3ZhciBlLHQ9JCgiIyIrUykucG9zaXRpb24oKTt0JiZ0LnRvcCYmKGU9dC50b3ArTSwkKCJodG1sLCBib2R5Iikuc2Nyb2xsVG9wKGUpLCgwLFIubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gJCgiaHRtbCwgYm9keSIpLnNjcm9sbFRvcChlKX0pKX0pfX0pKSxEPUEub2JqZWN0QXQob1tvLmxlbmd0aC0xXSksdGhpcy5fYm90dG9tVmlzaWJsZSE9PUQmJih0aGlzLl9ib3R0b21WaXNpYmxlPUQsdGhpcy5ib3R0b21WaXNpYmxlQ2hhbmdlZCh7cG9zdDpELHJlZnJlc2g6Tn0pKSwoST10aGlzLl9jdXJyZW50UG9zdCE9PWYpJiYodGhpcy5fY3VycmVudFBvc3Q9ZixMPUEub2JqZWN0QXQoZiksdGhpcy5jdXJyZW50UG9zdENoYW5nZWQoe3Bvc3Q6TH0pKSxudWxsIT09aCYmKGg9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGgpKSwhSSYmdGhpcy5fY3VycmVudFBlcmNlbnQ9PT1ofHwodGhpcy5fY3VycmVudFBlcmNlbnQ9aCx0aGlzLmN1cnJlbnRQb3N0U2Nyb2xsZWQoe3BlcmNlbnQ6aH0pKSkpOih0aGlzLl90b3BWaXNpYmxlPW51bGwsdGhpcy5fYm90dG9tVmlzaWJsZT1udWxsLHRoaXMuX2N1cnJlbnRQb3N0PW51bGwsdGhpcy5fY3VycmVudFBlcmNlbnQ9bnVsbCk7dmFyIHo9W10sVT1bXSxGPXRoaXMuX3ByZXZpb3VzbHlOZWFyYnksQj17fTtyLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9QS5vYmplY3RBdChlKSxuPXQucG9zdF9udW1iZXI7ZGVsZXRlIEZbbl0sLTEhPT1vLmluZGV4T2YoZSkmJih6LnB1c2gobiksdC5yZWFkJiZVLnB1c2gobikpLEJbbl09dCwoMCxxLnVuY2xvYWspKHQsaSl9KSxPYmplY3QudmFsdWVzKEYpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuKDAscS5jbG9haykoZSxpKX0pLHRoaXMuX3ByZXZpb3VzbHlOZWFyYnk9Qix0aGlzLnNjcmVlblRyYWNrLnNldE9uc2NyZWVuKHosVSl9fX0sX3Njcm9sbFRyaWdnZXJlZDpmdW5jdGlvbigpeygwLFIuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5zY3JvbGxlZCl9LF9wb3N0ZWQ6ZnVuY3Rpb24odCl7dGhpcy5xdWV1ZVJlcmVuZGVyKGZ1bmN0aW9uKCl7dmFyIGU7dCYmKGU9dC5nZXQoInBvc3RfbnVtYmVyIiksbi5kZWZhdWx0Lmp1bXBUb1Bvc3QoZSx7c2tpcElmT25TY3JlZW46ITB9KSl9KX0sX3JlZnJlc2g6ZnVuY3Rpb24oZSl7ZSYmKGUuaWQ/KHRoaXMuZGlydHlLZXlzLmtleURpcnR5KCJwb3N0LSIrZS5pZCksZS5yZWZyZXNoTGlrZXMmJnRoaXMuZGlydHlLZXlzLmtleURpcnR5KCJwb3N0LW1lbnUtIitlLmlkLHtvblJlZnJlc2g6InJlZnJlc2hMaWtlcyJ9KSxlLnJlZnJlc2hSZWFkZXJzJiZ0aGlzLmRpcnR5S2V5cy5rZXlEaXJ0eSgicG9zdC1tZW51LSIrZS5pZCx7b25SZWZyZXNoOiJyZWZyZXNoUmVhZGVycyJ9KSk6ZS5mb3JjZSYmdGhpcy5kaXJ0eUtleXMuZm9yY2VBbGwoKSksdGhpcy5xdWV1ZVJlcmVuZGVyKCl9LF9kZWJvdW5jZWRTY3JvbGw6ZnVuY3Rpb24oKXsoMCxSLmRlYm91bmNlKSh0aGlzLHRoaXMuX3Njcm9sbFRyaWdnZXJlZCwxMCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmdW5jdGlvbiB0KCl7cmV0dXJuKDAsUi5kZWJvdW5jZSkoZSxlLl9zY3JvbGxUcmlnZ2VyZWQsMTApfXRoaXMuX3ByZXZpb3VzbHlOZWFyYnk9e30sdGhpcy5hcHBFdmVudHMub24oInBvc3Qtc3RyZWFtOnJlZnJlc2giLHRoaXMsIl9kZWJvdW5jZWRTY3JvbGwiKSwkKGRvY3VtZW50KS5iaW5kKCJ0b3VjaG1vdmUucG9zdC1zdHJlYW0iLHQpLCQod2luZG93KS5iaW5kKCJzY3JvbGwucG9zdC1zdHJlYW0iLHQpLHRoaXMuX3Njcm9sbFRyaWdnZXJlZCgpLHRoaXMuYXBwRXZlbnRzLm9uKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHRoaXMsIl9wb3N0ZWQiKSwkKHRoaXMuZWxlbWVudCkub24oIm1vdXNlZW50ZXIucG9zdC1zdHJlYW0iLCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIsZnVuY3Rpb24oZSl7JCgiYnV0dG9uLndpZGdldC1idXR0b24iKS5yZW1vdmVDbGFzcygiZC1ob3ZlciIpLCQoZS50YXJnZXQpLmFkZENsYXNzKCJkLWhvdmVyIil9KSwkKHRoaXMuZWxlbWVudCkub24oIm1vdXNlbGVhdmUucG9zdC1zdHJlYW0iLCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIsZnVuY3Rpb24oKXskKCJidXR0b24ud2lkZ2V0LWJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJkLWhvdmVyIil9KSx0aGlzLmFwcEV2ZW50cy5vbigicG9zdC1zdHJlYW06cmVmcmVzaCIsdGhpcywiX3JlZnJlc2giKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCQoZG9jdW1lbnQpLnVuYmluZCgidG91Y2htb3ZlLnBvc3Qtc3RyZWFtIiksJCh3aW5kb3cpLnVuYmluZCgic2Nyb2xsLnBvc3Qtc3RyZWFtIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0LXN0cmVhbTpyZWZyZXNoIix0aGlzLCJfZGVib3VuY2VkU2Nyb2xsIiksJCh0aGlzLmVsZW1lbnQpLm9mZigibW91c2VlbnRlci5wb3N0LXN0cmVhbSIpLCQodGhpcy5lbGVtZW50KS5vZmYoIm1vdXNlbGVhdmUucG9zdC1zdHJlYW0iKSx0aGlzLmFwcEV2ZW50cy5vZmYoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHRoaXMsIl9yZWZyZXNoIiksdGhpcy5hcHBFdmVudHMub2ZmKCJwb3N0LXN0cmVhbTpwb3N0ZWQiLHRoaXMsIl9wb3N0ZWQiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL21vZGVscy9ncm91cCIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbChuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgdSxjLGQscCxtLGYsaCxiLGcsdix5LHcseCxrO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgUD0vKChbXiIgXHRcblx4MEJcZlxyXSspPygoIlteIl0rIik/KSkvZyxqPS9eKHVzZXI6fEApL2dpLFQ9L14oY2F0ZWdvcnk6fCMpL2dpLEU9L15ncm91cDovZ2ksTz0vXmJhZGdlOi9naSxTPS9eKHRhZ3M/OnwjKD89W2EtejAtOVwtXSs6OnRhZykpL2dpLEM9L14oaW58d2l0aCk6L2dpLE09L15zdGF0dXM6L2dpLEQ9L15taW5fcG9zdF9jb3VudDovZ2ksST0vXihiZWZvcmV8YWZ0ZXIpOi9naSxMPS8oXih0YWdzPzp8Iyg/PVthLXowLTlcLV0rOjp0YWcpKXw6OnRhZ1xzPyQpL2dpLEE9L14oaW58d2l0aCk6KHBvc3RlZHxjcmVhdGVkfHdhdGNoaW5nfHRyYWNraW5nfGJvb2ttYXJrc3xmaXJzdHxwaW5uZWR8dW5waW5uZWR8d2lraXx1bnNlZW58aW1hZ2UpL2dpLE49L15pbjpsaWtlcy9naSx6PS9eaW46dGl0bGUvZ2ksVT0vXmluOnBlcnNvbmFsL2dpLEY9L15pbjpzZWVuL2dpLEI9L14oXCNbYS16QS1aMC05XC06XSspL2dpLFI9L14oY2F0ZWdvcnk6WzAtOV0rKS9naSxxPS9eKGJlZm9yZXxhZnRlcikvZ2ksSD17aW1hZ2VzOiJ3aXRoIn07ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHU9KDAsaS5vYnNlcnZlcykoInNlYXJjaFRlcm0iKSxjPSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLnVzZXJuYW1lIiksZD0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIpLHA9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuZ3JvdXAiKSxtPSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLmJhZGdlIiksZj0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy50YWdzIiwic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIiksaD0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5pbiIpLGI9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5saWtlcyIpLGc9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5wZXJzb25hbCIpLHY9KDAsaS5vYnNlcnZlcykoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5zZWVuIikseT0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLnRpdGxlIiksdz0oMCxpLm9ic2VydmVzKSgic2VhcmNoZWRUZXJtcy5zdGF0dXMiKSx4PSgwLGkub2JzZXJ2ZXMpKCJzZWFyY2hlZFRlcm1zLm1pbl9wb3N0X2NvdW50IiksbChrPXtjbGFzc05hbWVzOlsic2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiXSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5pbk9wdGlvbnNGb3JVc2Vycz1be25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy51bnNlZW4iKSx2YWx1ZToidW5zZWVuIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5wb3N0ZWQiKSx2YWx1ZToicG9zdGVkIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5jcmVhdGVkIiksdmFsdWU6ImNyZWF0ZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLndhdGNoaW5nIiksdmFsdWU6IndhdGNoaW5nIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy50cmFja2luZyIpLHZhbHVlOiJ0cmFja2luZyJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuYm9va21hcmtzIiksdmFsdWU6ImJvb2ttYXJrcyJ9XSx0aGlzLmluT3B0aW9uc0ZvckFsbD1be25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5maXJzdCIpLHZhbHVlOiJmaXJzdCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMucGlubmVkIiksdmFsdWU6InBpbm5lZCJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMudW5waW5uZWQiKSx2YWx1ZToidW5waW5uZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLndpa2kiKSx2YWx1ZToid2lraSJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuaW1hZ2VzIiksdmFsdWU6ImltYWdlcyJ9XSx0aGlzLnN0YXR1c09wdGlvbnM9W3tuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnN0YXR1c2VzLm9wZW4iKSx2YWx1ZToib3BlbiJ9LHtuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnN0YXR1c2VzLmNsb3NlZCIpLHZhbHVlOiJjbG9zZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5wdWJsaWMiKSx2YWx1ZToicHVibGljIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuc3RhdHVzZXMuYXJjaGl2ZWQiKSx2YWx1ZToiYXJjaGl2ZWQifSx7bmFtZTpJMThuLnQoInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5ub3JlcGxpZXMiKSx2YWx1ZToibm9yZXBsaWVzIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQuc3RhdHVzZXMuc2luZ2xlX3VzZXIiKSx2YWx1ZToic2luZ2xlX3VzZXIifV0sdGhpcy5wb3N0VGltZU9wdGlvbnM9W3tuYW1lOkkxOG4udCgic2VhcmNoLmFkdmFuY2VkLnBvc3QudGltZS5iZWZvcmUiKSx2YWx1ZToiYmVmb3JlIn0se25hbWU6STE4bi50KCJzZWFyY2guYWR2YW5jZWQucG9zdC50aW1lLmFmdGVyIiksdmFsdWU6ImFmdGVyIn1dLHRoaXMuX2luaXQoKSwoMCx0LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiBlLl91cGRhdGUoKX0pfSxfdXBkYXRlT3B0aW9uczpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZSgpLCgwLHQuZGVib3VuY2UpKHRoaXMsdGhpcy5fdXBkYXRlLDI1MCl9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtzZWFyY2hlZFRlcm1zOnt1c2VybmFtZToiIixjYXRlZ29yeToiIixncm91cDpbXSxiYWRnZTpbXSx0YWdzOltdLGluOiIiLHNwZWNpYWw6e2luOnt0aXRsZTohMSxsaWtlczohMSxwZXJzb25hbDohMSxzZWVuOiExfSxhbGxfdGFnczohMX0sc3RhdHVzOiIiLG1pbl9wb3N0X2NvdW50OiIiLHRpbWU6e3doZW46ImJlZm9yZSIsZGF5czoiIn19LGluT3B0aW9uczp0aGlzLmN1cnJlbnRVc2VyP3RoaXMuaW5PcHRpb25zRm9yVXNlcnMuY29uY2F0KHRoaXMuaW5PcHRpb25zRm9yQWxsKTp0aGlzLmluT3B0aW9uc0ZvckFsbH0pfSxfdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZWFyY2hUZXJtPyh0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlKCJzZWFyY2hlZFRlcm1zLnVzZXJuYW1lIixqKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yQ2F0ZWdvcnkoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yR3JvdXAoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yQmFkZ2UoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yVGFncygpLHRoaXMuc2V0U2VhcmNoZWRUZXJtVmFsdWUoInNlYXJjaGVkVGVybXMuaW4iLEMsQSksdGhpcy5zZXRTZWFyY2hlZFRlcm1TcGVjaWFsSW5WYWx1ZSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLmxpa2VzIixOKSx0aGlzLnNldFNlYXJjaGVkVGVybVNwZWNpYWxJblZhbHVlKCJzZWFyY2hlZFRlcm1zLnNwZWNpYWwuaW4udGl0bGUiLHopLHRoaXMuc2V0U2VhcmNoZWRUZXJtU3BlY2lhbEluVmFsdWUoInNlYXJjaGVkVGVybXMuc3BlY2lhbC5pbi5wZXJzb25hbCIsVSksdGhpcy5zZXRTZWFyY2hlZFRlcm1TcGVjaWFsSW5WYWx1ZSgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLnNlZW4iLEYpLHRoaXMuc2V0U2VhcmNoZWRUZXJtVmFsdWUoInNlYXJjaGVkVGVybXMuc3RhdHVzIixNKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlRm9yUG9zdFRpbWUoKSx0aGlzLnNldFNlYXJjaGVkVGVybVZhbHVlKCJzZWFyY2hlZFRlcm1zLm1pbl9wb3N0X2NvdW50IixEKSk6dGhpcy5faW5pdCgpfSxmaW5kU2VhcmNoVGVybXM6ZnVuY3Rpb24oKXt2YXIgZT0oMCxzLmVzY2FwZUV4cHJlc3Npb24pKHRoaXMuc2VhcmNoVGVybSk7aWYoIWUpcmV0dXJuW107dmFyIHQ9ZS5tYXRjaChQKTtpZighdClyZXR1cm5bXTt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKGUpezAhPT1lLmxlbmd0aCYmbi5wdXNoKGUpfSksbn0sZmlsdGVyQmxvY2tzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZFNlYXJjaFRlcm1zKCk7aWYoIWUpcmV0dXJuW107dmFyIG49W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlKXstMSE9PWUuc2VhcmNoKHQpJiZuLnB1c2goZSl9KSxufSxzZXRTZWFyY2hlZFRlcm1WYWx1ZTpmdW5jdGlvbihlLHQsbil7dmFyIGkscz0ocz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PW4/bjpudWxsKXx8dCxvPXRoaXMuZmlsdGVyQmxvY2tzKHMpLHI9dGhpcy5nZXQoZSk7MCE9PW8ubGVuZ3RoP3IhPT0oaT1vWzBdLnJlcGxhY2UodCwiIikpJiZ0aGlzLnNldChlLGkpOnImJjAhPT1yLmxlbmd0aCYmdGhpcy5zZXQoZSwiIil9LHNldFNlYXJjaGVkVGVybVNwZWNpYWxJblZhbHVlOmZ1bmN0aW9uKGUsdCl7MCE9PXRoaXMuZmlsdGVyQmxvY2tzKHQpLmxlbmd0aD8hMCE9PXRoaXMuZ2V0KGUpJiZ0aGlzLnNldChlLCEwKTohMSE9PXRoaXMuZ2V0KGUpJiZ0aGlzLnNldChlLCExKX0sc2V0U2VhcmNoZWRUZXJtVmFsdWVGb3JDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbz10aGlzLmZpbHRlckJsb2NrcyhUKTswIT09by5sZW5ndGg/KGU9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiKSwxPCh0PW9bMF0ucmVwbGFjZShULCIiKS5zcGxpdCgiOiIpKS5sZW5ndGg/KG49YS5kZWZhdWx0LmZpbmRCeVNsdWcodFsxXSx0WzBdKSwoIWUmJm58fGUmJm4mJmUuaWQhPT1uLmlkKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiLG4pKTppc05hTih0KT8oaT1hLmRlZmF1bHQuZmluZFNpbmdsZUJ5U2x1Zyh0WzBdKSwoIWUmJml8fGUmJmkmJmUuaWQhPT1pLmlkKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiLGkpKToocz1hLmRlZmF1bHQuZmluZEJ5SWQodFswXSksKCFlJiZzfHxlJiZzJiZlLmlkIT09cy5pZCkmJnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLmNhdGVnb3J5IixzKSkpOnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLmNhdGVnb3J5IiwiIil9LHNldFNlYXJjaGVkVGVybVZhbHVlRm9yR3JvdXA6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuZmlsdGVyQmxvY2tzKEUpLG49dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiKTswIT09dC5sZW5ndGg/KF8uaXNBcnJheShuKT9uWzBdOm4pIT09KGU9dFswXS5yZXBsYWNlKEUsIiIpKSYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiLDAhPT1lLmxlbmd0aD9bZV06W10pOjAhPT1uLmxlbmd0aCYmdGhpcy5zZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiLFtdKX0sc2V0U2VhcmNoZWRUZXJtVmFsdWVGb3JCYWRnZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5maWx0ZXJCbG9ja3MoTyksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIpOzAhPT10Lmxlbmd0aD8oXy5pc0FycmF5KG4pP25bMF06bikhPT0oZT10WzBdLnJlcGxhY2UoTywiIikpJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIsMCE9PWUubGVuZ3RoP1tlXTpbXSk6MCE9PW4ubGVuZ3RoJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIsW10pfSxzZXRTZWFyY2hlZFRlcm1WYWx1ZUZvclRhZ3M6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzO3RoaXMuc2l0ZVNldHRpbmdzLnRhZ2dpbmdfZW5hYmxlZCYmKGU9dGhpcy5maWx0ZXJCbG9ja3MoUyksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50YWdzIiksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIiksMCE9PWUubGVuZ3RoPyhpPW4/IisiOiIsIiwoXy5pc0FycmF5KHQpP3Quam9pbihpKTp0KSE9PShzPWVbMF0ucmVwbGFjZShMLCIiKSkmJnRoaXMuc2V0KCJzZWFyY2hlZFRlcm1zLnRhZ3MiLDAhPT1zLmxlbmd0aD9zLnNwbGl0KGkpOltdKSk6MCE9PXQubGVuZ3RoJiZ0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50YWdzIixbXSkpfSxzZXRTZWFyY2hlZFRlcm1WYWx1ZUZvclBvc3RUaW1lOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGkscyxvPXRoaXMuZmlsdGVyQmxvY2tzKEkpOzAhPT1vLmxlbmd0aD8oZT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iKSx0PW9bMF0ubWF0Y2gocSlbMF0sbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiKSxpPW9bMF0ucmVwbGFjZShJLCIiKSxzPXt9LGUhPT10JiYoc1sic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iXT10KSxuIT09aSYmKHNbInNlYXJjaGVkVGVybXMudGltZS5kYXlzIl09aSksdGhpcy5zZXRQcm9wZXJ0aWVzKHMpKTp0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiLCIiKX0sdXBkYXRlU2VhcmNoVGVybUZvclVzZXJuYW1lOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maWx0ZXJCbG9ja3MoaiksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy51c2VybmFtZSIpLG49dGhpcy5zZWFyY2hUZXJtfHwiIjt0JiYwIT09dC5sZW5ndGg/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCJAIit0KTpuKz0iIEAiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JDYXRlZ29yeTpmdW5jdGlvbigpe3ZhciBlLHQsbixpPXRoaXMuZmlsdGVyQmxvY2tzKFQpLHM9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuY2F0ZWdvcnkiKSxvPXRoaXMuc2VhcmNoVGVybXx8IiIscj0wIT09aS5sZW5ndGg/aVswXS5tYXRjaChCKTpudWxsLGE9MCE9PWkubGVuZ3RoP2lbMF0ubWF0Y2goUik6bnVsbDtzPyhlPXMuaWQsdD1zLnNsdWcscy5wYXJlbnRDYXRlZ29yeT8obj1zLnBhcmVudENhdGVnb3J5LnNsdWcscj9vPW8ucmVwbGFjZShyWzBdLCIjIituKyI6Iit0KTphP289by5yZXBsYWNlKGFbMF0sImNhdGVnb3J5OiIrZSk6bys9IiAjIituKyI6Iit0KTpyP289by5yZXBsYWNlKHJbMF0sIiMiK3QpOmE/bz1vLnJlcGxhY2UoYVswXSwiY2F0ZWdvcnk6IitlKTpvKz0iICMiK3QpOihyJiYobz1vLnJlcGxhY2UoclswXSwiIikpLGEmJihvPW8ucmVwbGFjZShhWzBdLCIiKSkpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixvLnRyaW0oKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JHcm91cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEUpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuZ3JvdXAiKSxuPXRoaXMuc2VhcmNoVGVybXx8IiI7dCYmMCE9PXQubGVuZ3RoPygwIT09ZS5sZW5ndGg/bj1uLnJlcGxhY2UoZVswXSwiIGdyb3VwOiIrdCk6bis9IiBncm91cDoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4pKTowIT09ZS5sZW5ndGgmJihuPW4ucmVwbGFjZShlWzBdLCIiKSx0aGlzLnNldCgic2VhcmNoVGVybSIsbi50cmltKCkpKX0sdXBkYXRlU2VhcmNoVGVybUZvckJhZGdlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maWx0ZXJCbG9ja3MoTyksdD10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5iYWRnZSIpLG49dGhpcy5zZWFyY2hUZXJtfHwiIjt0JiYwIT09dC5sZW5ndGg/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCIgYmFkZ2U6Iit0KTpuKz0iIGJhZGdlOiIrdCx0aGlzLnNldCgic2VhcmNoVGVybSIsbikpOjAhPT1lLmxlbmd0aCYmKG49bi5yZXBsYWNlKGVbMF0sIiIpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixuLnRyaW0oKSkpfSx1cGRhdGVTZWFyY2hUZXJtRm9yVGFnczpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzLmZpbHRlckJsb2NrcyhTKSxpPXRoaXMuZ2V0KCJzZWFyY2hlZFRlcm1zLnRhZ3MiKSxzPXRoaXMuc2VhcmNoVGVybXx8IiIsbz10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmFsbF90YWdzIik7aSYmMCE9PWkubGVuZ3RoPyhlPW8/IisiOiIsIix0PWkuam9pbihlKSwwIT09bi5sZW5ndGg/cz1zLnJlcGxhY2UoblswXSwidGFnczoiK3QpOnMrPSIgdGFnczoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSk6MCE9PW4ubGVuZ3RoJiYocz1zLnJlcGxhY2UoblswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JJbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEEpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuaW4iKSxuPSJpbiI7dCBpbiBIJiYobj1IW3RdKTt2YXIgaT10aGlzLnNlYXJjaFRlcm18fCIiO3Q/KDAhPT1lLmxlbmd0aD9pPWkucmVwbGFjZShlWzBdLG4rIjoiK3QpOmkrPSIgIituKyI6Iit0LHRoaXMuc2V0KCJzZWFyY2hUZXJtIixpLnRyaW0oKSkpOjAhPT1lLmxlbmd0aCYmKGk9aS5yZXBsYWNlKGUsIiIpLHRoaXMuc2V0KCJzZWFyY2hUZXJtIixpLnRyaW0oKSkpfSx1cGRhdGVJblJlZ2V4OmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5maWx0ZXJCbG9ja3MoZSksaT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy5zcGVjaWFsLmluLiIrdCkscz10aGlzLnNlYXJjaFRlcm18fCIiO2k/MD09PW4ubGVuZ3RoJiYocys9IiBpbjoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSk6MCE9PW4ubGVuZ3RoJiYocz1zLnJlcGxhY2UobiwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLHMudHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5MaWtlczpmdW5jdGlvbigpe3RoaXMudXBkYXRlSW5SZWdleChOLCJsaWtlcyIpfSx1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluUGVyc29uYWw6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoVSwicGVyc29uYWwiKX0sdXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJblNlZW46ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoRiwic2VlbiIpfSx1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluVGl0bGU6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0ZUluUmVnZXgoeiwidGl0bGUiKX0sdXBkYXRlU2VhcmNoVGVybUZvclN0YXR1czpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKE0pLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMuc3RhdHVzIiksbj10aGlzLnNlYXJjaFRlcm18fCIiO3Q/KDAhPT1lLmxlbmd0aD9uPW4ucmVwbGFjZShlWzBdLCJzdGF0dXM6Iit0KTpuKz0iIHN0YXR1czoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LHVwZGF0ZVNlYXJjaFRlcm1Gb3JQb3N0VGltZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5maWx0ZXJCbG9ja3MoSSksbj10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiKSxpPXRoaXMuc2VhcmNoVGVybXx8IiI7bj8oZT10aGlzLmdldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iKSwwIT09dC5sZW5ndGg/aT1pLnJlcGxhY2UodFswXSxlKyI6IituKTppKz0iICIrZSsiOiIrbix0aGlzLnNldCgic2VhcmNoVGVybSIsaS50cmltKCkpKTowIT09dC5sZW5ndGgmJihpPWkucmVwbGFjZSh0WzBdLCIiKSx0aGlzLnNldCgic2VhcmNoVGVybSIsaS50cmltKCkpKX0sdXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZmlsdGVyQmxvY2tzKEQpLHQ9dGhpcy5nZXQoInNlYXJjaGVkVGVybXMubWluX3Bvc3RfY291bnQiKSxuPXRoaXMuc2VhcmNoVGVybXx8IiI7dD8oMCE9PWUubGVuZ3RoP249bi5yZXBsYWNlKGVbMF0sIm1pbl9wb3N0X2NvdW50OiIrdCk6bis9IiBtaW5fcG9zdF9jb3VudDoiK3QsdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSk6MCE9PWUubGVuZ3RoJiYobj1uLnJlcGxhY2UoZVswXSwiIiksdGhpcy5zZXQoInNlYXJjaFRlcm0iLG4udHJpbSgpKSl9LGdyb3VwRmluZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBvLmRlZmF1bHQuZmluZEFsbCh7dGVybTplLGlnbm9yZV9hdXRvbWF0aWM6ITF9KX0sYmFkZ2VGaW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5maW5kQWxsKHtzZWFyY2g6ZX0pfSxhY3Rpb25zOntvbkNoYW5nZVdoZW5UaW1lOmZ1bmN0aW9uKGUpe2UmJih0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLndoZW4iLGUpLHRoaXMudXBkYXRlU2VhcmNoVGVybUZvclBvc3RUaW1lKCkpfSxvbkNoYW5nZVdoZW5EYXRlOmZ1bmN0aW9uKGUpe2UmJih0aGlzLnNldCgic2VhcmNoZWRUZXJtcy50aW1lLmRheXMiLG1vbWVudChlKS5mb3JtYXQoIllZWVktTU0tREQiKSksdGhpcy51cGRhdGVTZWFyY2hUZXJtRm9yUG9zdFRpbWUoKSl9LG9uQ2hhbmdlQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7ZT90aGlzLnNldCgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIsYS5kZWZhdWx0LmZpbmRCeUlkKGUpKTp0aGlzLnNldCgic2VhcmNoZWRUZXJtcy5jYXRlZ29yeSIsbnVsbCl9fX0sIl91cGRhdGVPcHRpb25zIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJfdXBkYXRlT3B0aW9ucyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclVzZXJuYW1lIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yVXNlcm5hbWUiKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JDYXRlZ29yeSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvckNhdGVnb3J5IiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yR3JvdXAiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JHcm91cCIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvckJhZGdlIixbbV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yQmFkZ2UiKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JUYWdzIixbZl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yVGFncyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvckluIixbaF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrLCJ1cGRhdGVTZWFyY2hUZXJtRm9ySW4iKSxrKSxsKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5MaWtlcyIsW2JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJbkxpa2VzIiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluUGVyc29uYWwiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5QZXJzb25hbCIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclNwZWNpYWxJblNlZW4iLFt2XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5TZWVuIiksayksbChrLCJ1cGRhdGVTZWFyY2hUZXJtRm9yU3BlY2lhbEluVGl0bGUiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGssInVwZGF0ZVNlYXJjaFRlcm1Gb3JTcGVjaWFsSW5UaXRsZSIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvclN0YXR1cyIsW3ddLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvclN0YXR1cyIpLGspLGwoaywidXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudCIsW3hdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaywidXBkYXRlU2VhcmNoVGVybUZvck1pblBvc3RDb3VudCIpLGspLGspKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2VhcmNoLXRleHQtZmllbGQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgic2VhcmNoU2VydmljZS5zZWFyY2hDb250ZXh0RW5hYmxlZCIpLHI9KDAsdC5vbikoImRpZEluc2VydEVsZW1lbnQiKSxzKGE9e2F1dG9jb21wbGV0ZToiZGlzY291cnNlIixwbGFjZWhvbGRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iIjpJMThuLnQoInNlYXJjaC5mdWxsX3BhZ2VfdGl0bGUiKX0sYmVjb21lRm9jdXNlZDpmdW5jdGlvbigpe3ZhciBlPSQodGhpcy5lbGVtZW50KTsoMCxpLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlKShlLHRoaXMuc2l0ZVNldHRpbmdzKSx0aGlzLmhhc0F1dG9mb2N1cyYmKCQod2luZG93KS5zY3JvbGxUb3AoMCksZS5mb2N1cygpKX19LCJwbGFjZWhvbGRlciIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwicGxhY2Vob2xkZXIiKSxhKSxzKGEsImJlY29tZUZvY3VzZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsImJlY29tZUZvY3VzZWQiKSxhKSxhKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NlY29uZC1mYWN0b3ItZm9ybSIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsLHU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInNlY29uZEZhY3Rvck1ldGhvZCIpLHI9KDAsdC5kZWZhdWx0KSgic2Vjb25kRmFjdG9yTWV0aG9kIiksYT0oMCx0LmRlZmF1bHQpKCJzZWNvbmRGYWN0b3JNZXRob2QiLCJpc0xvZ2luIiksbD0oMCx0LmRlZmF1bHQpKCJiYWNrdXBFbmFibGVkIiwic2Vjb25kRmFjdG9yTWV0aG9kIikscyh1PXtzZWNvbmRGYWN0b3JUaXRsZTpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQOmNhc2UgaS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfdGl0bGUiKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfYmFja3VwX3RpdGxlIil9fSxzZWNvbmRGYWN0b3JEZXNjcmlwdGlvbjpmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfZGVzY3JpcHRpb24iKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlNFQ1VSSVRZX0tFWTpyZXR1cm4gSTE4bi50KCJsb2dpbi5zZWN1cml0eV9rZXlfZGVzY3JpcHRpb24iKTtjYXNlIGkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLkJBQ0tVUF9DT0RFOnJldHVybiBJMThuLnQoImxvZ2luLnNlY29uZF9mYWN0b3JfYmFja3VwX2Rlc2NyaXB0aW9uIil9fSxsaW5rVGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiB0P2U9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyJsb2dpbi5zZWNvbmRfZmFjdG9yX2JhY2t1cCI6ImxvZ2luLnNlY29uZF9mYWN0b3IiOmU9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLnVzZSI6InVzZXIuc2Vjb25kX2ZhY3Rvci51c2UifSxzaG93VG9nZ2xlTWV0aG9kTGluazpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0IT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuU0VDVVJJVFlfS0VZfSxhY3Rpb25zOnt0b2dnbGVTZWNvbmRGYWN0b3JNZXRob2Q6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNlY29uZEZhY3Rvck1ldGhvZDt0aGlzLnNldCgic2Vjb25kRmFjdG9yVG9rZW4iLCIiKSxlPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUD90aGlzLnNldCgic2Vjb25kRmFjdG9yTWV0aG9kIixpLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5CQUNLVVBfQ09ERSk6dGhpcy5zZXQoInNlY29uZEZhY3Rvck1ldGhvZCIsaS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUCl9fX0sInNlY29uZEZhY3RvclRpdGxlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzZWNvbmRGYWN0b3JUaXRsZSIpLHUpLHModSwic2Vjb25kRmFjdG9yRGVzY3JpcHRpb24iLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsInNlY29uZEZhY3RvckRlc2NyaXB0aW9uIiksdSkscyh1LCJsaW5rVGV4dCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSwibGlua1RleHQiKSx1KSxzKHUsInNob3dUb2dnbGVNZXRob2RMaW5rIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJzaG93VG9nZ2xlTWV0aG9kTGluayIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2Vjb25kLWZhY3Rvci1pbnB1dCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJzZWNvbmRGYWN0b3JNZXRob2QiKSxyPSgwLHQuZGVmYXVsdCkoInNlY29uZEZhY3Rvck1ldGhvZCIpLGE9KDAsdC5kZWZhdWx0KSgic2Vjb25kRmFjdG9yTWV0aG9kIikscyhsPXt0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuVE9UUD8idGVsIjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/InRleHQiOnZvaWQgMH0scGF0dGVybjpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWkuU0VDT05EX0ZBQ1RPUl9NRVRIT0RTLlRPVFA/IlswLTldezZ9IjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/IlthLXowLTldezE2fSI6dm9pZCAwfSxtYXhsZW5ndGg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQPyI2IjplPT09aS5TRUNPTkRfRkFDVE9SX01FVEhPRFMuQkFDS1VQX0NPREU/IjMyIjp2b2lkIDB9fSwidHlwZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidHlwZSIpLGwpLHMobCwicGF0dGVybiIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwicGF0dGVybiIpLGwpLHMobCwibWF4bGVuZ3RoIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJtYXhsZW5ndGgiKSxsKSxsKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NlY3VyaXR5LWtleS1mb3JtIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e3VzZUFub3RoZXJNZXRob2Q6ZnVuY3Rpb24oKXt0aGlzLnNldCgic2hvd1NlY3VyaXR5S2V5IiwhMSksdGhpcy5zZXQoInNob3dTZWNvbmRGYWN0b3IiLCEwKSx0aGlzLnNldCgic2Vjb25kRmFjdG9yTWV0aG9kIixuLlNFQ09ORF9GQUNUT1JfTUVUSE9EUy5UT1RQKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3NoYXJlLXBhbmVsIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3NoYXJpbmciXSxmdW5jdGlvbihlLGksdCxvLG4scyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHU9KDAsci5kZWZhdWx0KSgidHlwZSIsInRvcGljLnRpdGxlIiksYz0oMCxyLmRlZmF1bHQpKCJwYW5lbC5tb2RlbC5zaGFyZVVybCIsInRvcGljLnNoYXJlVXJsIiksbChkPXt0YWdOYW1lOm51bGwsdHlwZTooMCx0LmFsaWFzKSgicGFuZWwubW9kZWwudHlwZSIpLHRvcGljOigwLHQuYWxpYXMpKCJwYW5lbC5tb2RlbC50b3BpYyIpLHNvdXJjZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYS5kZWZhdWx0LmFjdGl2ZVNvdXJjZXModGhpcy5zaXRlU2V0dGluZ3Muc2hhcmVfbGlua3MpfSxzaGFyZVRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9KDAscy5lc2NhcGVFeHByZXNzaW9uKSh0KSxJMThuLnQoInNoYXJlLnRvcGljX2h0bWwiLHt0b3BpY1RpdGxlOnR9KX0sc2hhcmVVcmw6ZnVuY3Rpb24oZSx0KXt2YXIgbjtpZih0PWV8fHQsISgwLGkuaXNFbXB0eSkodCkpcmV0dXJuIDA9PT10LmluZGV4T2YoIi8iKSYmKHQ9KG49d2luZG93LmxvY2F0aW9uKS5wcm90b2NvbCsiLy8iK24uaG9zdCt0KSxlbmNvZGVVUkkodCl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10aGlzLnNoYXJlVXJsLGk9JCh0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcigiLnRvcGljLXNoYXJlLXVybCIpKSxzPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BpYy1zaGFyZS11cmwtZm9yLXRvdWNoIGEiKSk7KDAsby5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlO3QuY2FwYWJpbGl0aWVzLnRvdWNoPyhpLnJlbW92ZSgpLHMuYXR0cigiaHJlZiIsbikudGV4dChuKSwoZT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSkuc2VsZWN0Tm9kZShzWzBdKSx3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UoZSkpOihzLnBhcmVudCgpLnJlbW92ZSgpLGkudmFsKG4pLnNlbGVjdCgpLmZvY3VzKCkpfSl9LGFjdGlvbnM6e3NoYXJlOmZ1bmN0aW9uKGUpe2EuZGVmYXVsdC5zaGFyZVNvdXJjZShlLHt1cmw6dGhpcy5zaGFyZVVybCx0aXRsZTp0aGlzLmdldCgidG9waWMudGl0bGUiKX0pfX19LCJzb3VyY2VzIixbci5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNvdXJjZXMiKSxkKSxsKGQsInNoYXJlVGl0bGUiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInNoYXJlVGl0bGUiKSxkKSxsKGQsInNoYXJlVXJsIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJzaGFyZVVybCIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmUtcG9wdXAiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbGliL3NoYXJpbmciLCJkaXNjb3Vyc2UvbGliL3B3YS11dGlscyJdLGZ1bmN0aW9uKGUsbCx1LHQsYSxuLGkscyxjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHI9KDAsaS5kZWZhdWx0KSgidHlwZSIsInBvc3ROdW1iZXIiKSxkPSgwLGkuZGVmYXVsdCkoImRhdGUiKSxwPSgwLGkub24pKCJpbml0IiksbyhtPXtlbGVtZW50SWQ6InNoYXJlLWxpbmsiLGNsYXNzTmFtZUJpbmRpbmdzOlsidmlzaWJsZSJdLGxpbms6bnVsbCx2aXNpYmxlOm51bGwsc291cmNlczpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHQuYWN0aXZlU291cmNlcyh0aGlzLnNpdGVTZXR0aW5ncy5zaGFyZV9saW5rcyl9LHNoYXJlVGl0bGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4idG9waWMiIT09ZSYmdD9JMThuLnQoInNoYXJlLnBvc3QiLHtwb3N0TnVtYmVyOnR9KTpJMThuLnQoInNoYXJlLnRvcGljIil9LGRpc3BsYXlEYXRlOmZ1bmN0aW9uKGUpe3JldHVybigwLG4ubG9uZ0RhdGVOb1llYXIpKG5ldyBEYXRlKGUpKX0sX2ZvY3VzVXJsOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk9dGhpcy5saW5rO3RoaXMuY2FwYWJpbGl0aWVzLnRvdWNoPygoZT0kKCIjc2hhcmUtbGluayAuc2hhcmUtZm9yLXRvdWNoIGEiKSkuYXR0cigiaHJlZiIsaSksZS50ZXh0KGkpLCh0PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpKS5zZWxlY3ROb2RlKGVbMF0pLHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZSh0KSk6KChuPSQoIiNzaGFyZS1saW5rIGlucHV0IikpLnZhbChpKSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBuLnNlbGVjdCgpLmZvY3VzKCl9LDE2MCkpfSxfc2hvd1VybDpmdW5jdGlvbihlLHQpe3ZhciBuLGkscyxvLHI9ZS5vZmZzZXQoKSxhPSQodGhpcy5lbGVtZW50KTsoMCxsLmlzRW1wdHkpKHQpfHwoMD09PXQuaW5kZXhPZigiLyIpJiYodD13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt0KSxuPWEud2lkdGgoKSwoaT1yLmxlZnQtbi8yKTwyNSYmKGk9MjUpLGkrbj4kKHdpbmRvdykud2lkdGgoKSYmKGktPW4vMikscz0kKCIuZC1oZWFkZXIiKSwobz1yLnRvcC0oYS5oZWlnaHQoKSsyMCkpPHMub2Zmc2V0KCkudG9wK3MuaGVpZ2h0KCkmJihvPXIudG9wKzEwKSxhLmNzcyh7dG9wOm8rInB4In0pLHRoaXMuc2l0ZS5tb2JpbGVWaWV3fHxhLmNzcyh7bGVmdDppKyJweCJ9KSx0aGlzLnNldCgibGluayIsdCksdGhpcy5zZXQoInZpc2libGUiLCEwKSwoMCx1LnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX2ZvY3VzVXJsKSl9LF9tb3VzZURvd25IYW5kbGVyOmZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudCYmIXRoaXMuaXNEZXN0cm95aW5nJiYhdGhpcy5pc0Rlc3Ryb3llZCYmMD09PSQodGhpcy5lbGVtZW50KS5oYXMoZS50YXJnZXQpLmxlbmd0aClyZXR1cm4gdGhpcy5zZW5kKCJjbG9zZSIpLCEwfSxfY2xpY2tIYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodGhpcy5lbGVtZW50JiYhdGhpcy5pc0Rlc3Ryb3lpbmcmJiF0aGlzLmlzRGVzdHJveWVkKXtpZigoMCxhLndhbnRzTmV3V2luZG93KShlKSlyZXR1cm4hMDtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49JChlLmN1cnJlbnRUYXJnZXQpLGk9bi5kYXRhKCJzaGFyZS11cmwiKSxzPW4uZGF0YSgicG9zdC1udW1iZXIiKSxvPW4uY2xvc2VzdCgiYXJ0aWNsZSIpLmRhdGEoInBvc3QtaWQiKSxyPW4uY2hpbGRyZW4oKS5kYXRhKCJ0aW1lIik7cmV0dXJuIHRoaXMuc2V0UHJvcGVydGllcyh7cG9zdE51bWJlcjpzLGRhdGU6cixwb3N0SWQ6b30pLG4uaGFzQ2xhc3MoInBvc3QtZGF0ZSIpP3RoaXMuX3Nob3dVcmwobixpKTooMCxjLm5hdGl2ZVNoYXJlKSh7dXJsOml9KS50aGVuKG51bGwsZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2hvd1VybChuLGkpfSksITF9fSxfa2V5ZG93bkhhbmRsZXI6ZnVuY3Rpb24oZSl7IXRoaXMuZWxlbWVudHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fHRoaXMuaXNEZXN0cm95ZWR8fDI3PT09ZS5rZXlDb2RlJiZ0aGlzLnNlbmQoImNsb3NlIil9LF9zaGFyZVVybEhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zaG93VXJsKHQsZSl9LF9zZXR1cEhhbmRsZXJzOmZ1bmN0aW9uKCl7dGhpcy5fYm91bmRNb3VzZURvd25IYW5kbGVyPSgwLHUuYmluZCkodGhpcyx0aGlzLl9tb3VzZURvd25IYW5kbGVyKSx0aGlzLl9ib3VuZENsaWNrSGFuZGxlcj0oMCx1LmJpbmQpKHRoaXMsdGhpcy5fY2xpY2tIYW5kbGVyKSx0aGlzLl9ib3VuZEtleWRvd25IYW5kbGVyPSgwLHUuYmluZCkodGhpcyx0aGlzLl9rZXlkb3duSGFuZGxlcil9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCgiaHRtbCIpLm9uKCJtb3VzZWRvd24ub3V0c2lkZS1zaGFyZS1saW5rIix0aGlzLl9ib3VuZE1vdXNlRG93bkhhbmRsZXIpLm9uKCJjbGljay5kaXNjb3Vyc2Utc2hhcmUtbGluayIsImJ1dHRvbltkYXRhLXNoYXJlLXVybF0sIC5wb3N0LWluZm8gLnBvc3QtZGF0ZVtkYXRhLXNoYXJlLXVybF0iLHRoaXMuX2JvdW5kQ2xpY2tIYW5kbGVyKS5vbigia2V5ZG93bi5zaGFyZS12aWV3Iix0aGlzLl9ib3VuZEtleWRvd25IYW5kbGVyKSx0aGlzLmFwcEV2ZW50cy5vbigic2hhcmU6dXJsIix0aGlzLCJfc2hhcmVVcmxIYW5kbGVyIil9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwkKCJodG1sIikub2ZmKCJjbGljay5kaXNjb3Vyc2Utc2hhcmUtbGluayIsdGhpcy5fYm91bmRDbGlja0hhbmRsZXIpLm9mZigibW91c2Vkb3duLm91dHNpZGUtc2hhcmUtbGluayIsdGhpcy5fYm91bmRNb3VzZURvd25IYW5kbGVyKS5vZmYoImtleWRvd24uc2hhcmUtdmlldyIsdGhpcy5fYm91bmRLZXlkb3duSGFuZGxlciksdGhpcy5hcHBFdmVudHMub2ZmKCJzaGFyZTp1cmwiLHRoaXMsIl9zaGFyZVVybEhhbmRsZXIiKX0sYWN0aW9uczp7cmVwbHlBc05ld1RvcGljOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoInRvcGljLnBvc3RTdHJlYW0iKSx0PXRoaXMucG9zdElkfHxlLmZpbmRQb3N0SWRGb3JQb3N0TnVtYmVyKDEpLG49ZS5maW5kTG9hZGVkUG9zdCh0KTt0aGlzLnJlcGx5QXNOZXdUb3BpYyhuKSx0aGlzLnNlbmQoImNsb3NlIil9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5zZXRQcm9wZXJ0aWVzKHtsaW5rOm51bGwscG9zdE51bWJlcjpudWxsLHBvc3RJZDpudWxsLHZpc2libGU6ITF9KX0sc2hhcmU6ZnVuY3Rpb24oZSl7cy5kZWZhdWx0LnNoYXJlU291cmNlKGUse3VybDp0aGlzLmxpbmssdGl0bGU6dGhpcy5nZXQoInRvcGljLnRpdGxlIil9KX19fSwic291cmNlcyIsW2kuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzb3VyY2VzIiksbSksbyhtLCJzaGFyZVRpdGxlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJzaGFyZVRpdGxlIiksbSksbyhtLCJkaXNwbGF5RGF0ZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiZGlzcGxheURhdGUiKSxtKSxvKG0sIl9zZXR1cEhhbmRsZXJzIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0dXBIYW5kbGVycyIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmUtc291cmNlIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVCaW5kaW5nczpbIjpzb2NpYWwtbGluayJdLGFjdGlvbnM6e3NoYXJlOmZ1bmN0aW9uKGUpe3RoaXMuYWN0aW9uKGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2hhcmVkLWRyYWZ0LWNvbnRyb2xzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5kZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCIpLG89cz17dGFnTmFtZToiIixwdWJsaXNoaW5nOiExLHZhbGlkQ2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUhPT10aGlzLnNpdGUuc2hhcmVkX2RyYWZ0c19jYXRlZ29yeV9pZH0sYWN0aW9uczp7dXBkYXRlRGVzdGluYXRpb25DYXRlZ29yeTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50b3BpYy51cGRhdGVEZXN0aW5hdGlvbkNhdGVnb3J5KGUpfSxwdWJsaXNoOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJzaGFyZWRfZHJhZnRzLmNvbmZpcm1fcHVibGlzaCIpLGZ1bmN0aW9uKGUpe3ZhciB0O2UmJihuLnNldCgicHVibGlzaGluZyIsITApLHQ9bi5nZXQoInRvcGljLmRlc3RpbmF0aW9uX2NhdGVnb3J5X2lkIiksbi50b3BpYy5wdWJsaXNoKCkudGhlbihmdW5jdGlvbigpe24uc2V0KCJ0b3BpYy5jYXRlZ29yeV9pZCIsdCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7bi5zZXQoInB1Ymxpc2hpbmciLCExKX0pKX0pfX19LHI9InZhbGlkQ2F0ZWdvcnkiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJ2YWxpZENhdGVnb3J5IiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc2lnbnVwLWN0YSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCh7YWN0aW9uOiJzaG93Q3JlYXRlQWNjb3VudCIsYWN0aW9uczp7bmV2ZXJTaG93OmZ1bmN0aW9uKCl7dGhpcy5rZXlWYWx1ZVN0b3JlLnNldEl0ZW0oImFub24tY3RhLW5ldmVyIiwidCIpLHRoaXMuc2Vzc2lvbi5zZXQoInNob3dTaWdudXBDdGEiLCExKX0saGlkZUZvclNlc3Npb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2Vzc2lvbi5zZXQoImhpZGVTaWdudXBDdGEiLCEwKSx0aGlzLmtleVZhbHVlU3RvcmUuc2V0SXRlbSgiYW5vbi1jdGEtaGlkZGVuIiwobmV3IERhdGUpLmdldFRpbWUoKSksKDAsdC5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXNzaW9uLnNldCgic2hvd1NpZ251cEN0YSIsITEpfSwyZTQpfX0sX3R1cm5PZmZJZkhpZGRlbjooMCxpLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IixmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5nZXQoImhpZGVTaWdudXBDdGEiKSYmdGhpcy5zZXNzaW9uLnNldCgic2hvd1NpZ251cEN0YSIsITEpfSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvc3VnZ2VzdGVkLXRvcGljcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvaGVscGVycy9jYXRlZ29yeS1saW5rIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSx0LHIsbixhLGwpeyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8sdSxjLGQscCxtO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgoaT0oMCx0LmRlZmF1bHQpKCJ0b3BpYyIsInRvcGljVHJhY2tpbmdTdGF0ZS5tZXNzYWdlQ291bnQiKSxzPXtlbGVtZW50SWQ6InN1Z2dlc3RlZC10b3BpY3MiLGNsYXNzTmFtZXM6WyJzdWdnZXN0ZWQtdG9waWNzIl0sc3VnZ2VzdGVkVGl0bGVMYWJlbDooMCxyLmNvbXB1dGVkKSgidG9waWMiLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5wbVBhdGgodGhpcy50b3BpYyk7cmV0dXJuIHRoaXMudG9waWMuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikmJmU/InN1Z2dlc3RlZF90b3BpY3MucG1fdGl0bGUiOiJzdWdnZXN0ZWRfdG9waWNzLnRpdGxlIn0pLGJyb3dzZU1vcmVNZXNzYWdlOmZ1bmN0aW9uKGUpe2lmKCFlLmdldCgiaXNQcml2YXRlTWVzc2FnZSIpKXt2YXIgdD17bGF0ZXN0TGluazonPGEgaHJlZj0iJytEaXNjb3Vyc2UuZ2V0VVJMKCIvbGF0ZXN0IikrJyI+JytJMThuLnQoInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyIpKyI8L2E+In0sbj1lLmdldCgiY2F0ZWdvcnkiKTtuJiYoMCxyLmdldCkobiwiaWQiKT09PWwuZGVmYXVsdC5jdXJyZW50UHJvcCgidW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZCIpJiYobj1udWxsKSx0LmNhdExpbms9bj8oMCxhLmNhdGVnb3J5QmFkZ2VIVE1MKShuKTonPGEgaHJlZj0iJytEaXNjb3Vyc2UuZ2V0VVJMKCIvY2F0ZWdvcmllcyIpKyciPicrSTE4bi50KCJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiKSsiPC9hPiI7dmFyIGk9dGhpcy50b3BpY1RyYWNraW5nU3RhdGUuY291bnRVbnJlYWQoKSxzPXRoaXMuY3VycmVudFVzZXI/dGhpcy50b3BpY1RyYWNraW5nU3RhdGUuY291bnROZXcoKTowO2lmKDA8cytpKXt2YXIgbz0wPGkmJjA8cztyZXR1cm4gSTE4bi5tZXNzYWdlRm9ybWF0KCJ0b3BpYy5yZWFkX21vcmVfTUYiLHtCT1RIOm8sVU5SRUFEOmksTkVXOnMsQ0FURUdPUlk6ISFuLGxhdGVzdExpbms6dC5sYXRlc3RMaW5rLGNhdExpbms6dC5jYXRMaW5rLGJhc2VQYXRoOiIifSl9cmV0dXJuIG4/STE4bi50KCJ0b3BpYy5yZWFkX21vcmVfaW5fY2F0ZWdvcnkiLHQpOkkxOG4udCgidG9waWMucmVhZF9tb3JlIix0KX19fSxvPXMsdT0iYnJvd3NlTW9yZU1lc3NhZ2UiLGM9W2ldLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJicm93c2VNb3JlTWVzc2FnZSIpLHA9cyxtPXt9LE9iamVjdC5rZXlzKGQpLmZvckVhY2goZnVuY3Rpb24oZSl7bVtlXT1kW2VdfSksbS5lbnVtZXJhYmxlPSEhbS5lbnVtZXJhYmxlLG0uY29uZmlndXJhYmxlPSEhbS5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBtfHxtLmluaXRpYWxpemVyKSYmKG0ud3JpdGFibGU9ITApLG09Yy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHUsZSl8fGV9LG0pLHAmJnZvaWQgMCE9PW0uaW5pdGlhbGl6ZXImJihtLnZhbHVlPW0uaW5pdGlhbGl6ZXI/bS5pbml0aWFsaXplci5jYWxsKHApOnZvaWQgMCxtLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09bS5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHUsbSksbT1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RhZy1kcm9wLWxpbmsiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKG89KDAsdC5kZWZhdWx0KSgidGFnSWQiLCJjYXRlZ29yeSIpLHI9KDAsdC5kZWZhdWx0KSgidGFnSWQiKSxzKGE9e3RhZ05hbWU6ImEiLGNsYXNzTmFtZUJpbmRpbmdzOlsiOnRhZy1iYWRnZS13cmFwcGVyIiwiOmJhZGdlLXdyYXBwZXIiLCI6YnVsbGV0IiwidGFnQ2xhc3MiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImhyZWYiXSxocmVmOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/Ii90YWdzIit0LnVybCsiLyIrZToiL3RhZy8iK2V9LHRhZ0NsYXNzOmZ1bmN0aW9uKGUpe3JldHVybiJ0YWctIitlfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gZS5wcmV2ZW50RGVmYXVsdCgpLGkuZGVmYXVsdC5yb3V0ZVRvKHRoaXMuaHJlZiksITB9fSwiaHJlZiIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwiaHJlZiIpLGEpLHMoYSwidGFnQ2xhc3MiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsInRhZ0NsYXNzIiksYSksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWctZ3JvdXBzLWZvcm0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci91dGlscyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2J1ZmZlcmVkLWNvbnRlbnQiLCJkaXNjb3Vyc2UvbW9kZWxzL3Blcm1pc3Npb24tdHlwZSJdLGZ1bmN0aW9uKGUsdCxpLG4scyxvKXsidXNlIHN0cmljdCI7dmFyIHIsYSxsLHUsYyxkLHAsbTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKDAscy5idWZmZXJlZFByb3BlcnR5KSgibW9kZWwiKSwocj0oMCx0LmRlZmF1bHQpKCJidWZmZXJlZC5pc1NhdmluZyIsImJ1ZmZlcmVkLm5hbWUiLCJidWZmZXJlZC50YWdfbmFtZXMiKSxsPWE9e3RhZ05hbWU6IiIsc2F2aW5nRGlzYWJsZWQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlfHwoMCxpLmlzRW1wdHkpKHQpfHwoMCxpLmlzRW1wdHkpKG4pfSxhY3Rpb25zOntzZXRQZXJtaXNzaW9uczpmdW5jdGlvbihlKXsicHJpdmF0ZSI9PT1lP3RoaXMuYnVmZmVyZWQuc2V0KCJwZXJtaXNzaW9ucyIse3N0YWZmOm8uZGVmYXVsdC5GVUxMfSk6InZpc2libGUiPT09ZT90aGlzLmJ1ZmZlcmVkLnNldCgicGVybWlzc2lvbnMiLHtzdGFmZjpvLmRlZmF1bHQuRlVMTCxldmVyeW9uZTpvLmRlZmF1bHQuUkVBRE9OTFl9KTp0aGlzLmJ1ZmZlcmVkLnNldCgicGVybWlzc2lvbnMiLHtldmVyeW9uZTpvLmRlZmF1bHQuRlVMTH0pfSxzYXZlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuYnVmZmVyZWQuZ2V0UHJvcGVydGllcygibmFtZSIsInRhZ19uYW1lcyIsInBhcmVudF90YWdfbmFtZSIsIm9uZV9wZXJfdG9waWMiLCJwZXJtaXNzaW9ucyIpO3RoaXMubW9kZWwuc2F2ZSh0KS50aGVuKGZ1bmN0aW9uKCl7ZS5jb21taXRCdWZmZXIoKSxlLm9uU2F2ZSYmZS5vblNhdmUoKX0pfSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gYm9vdGJveC5jb25maXJtKEkxOG4udCgidGFnZ2luZy5ncm91cHMuY29uZmlybV9kZWxldGUiKSxJMThuLnQoIm5vX3ZhbHVlIiksSTE4bi50KCJ5ZXNfdmFsdWUiKSxmdW5jdGlvbihlKXtlJiZ0Lm1vZGVsLmRlc3Ryb3lSZWNvcmQoKS50aGVuKGZ1bmN0aW9uKCl7dC5vbkRlc3Ryb3kmJnQub25EZXN0cm95KCl9KX0pfX19LHU9InNhdmluZ0Rpc2FibGVkIixjPVtyXSxkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwic2F2aW5nRGlzYWJsZWQiKSxwPWEsbT17fSxPYmplY3Qua2V5cyhkKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21bZV09ZFtlXX0pLG0uZW51bWVyYWJsZT0hIW0uZW51bWVyYWJsZSxtLmNvbmZpZ3VyYWJsZT0hIW0uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gbXx8bS5pbml0aWFsaXplcikmJihtLndyaXRhYmxlPSEwKSxtPWMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobCx1LGUpfHxlfSxtKSxwJiZ2b2lkIDAhPT1tLmluaXRpYWxpemVyJiYobS52YWx1ZT1tLmluaXRpYWxpemVyP20uaW5pdGlhbGl6ZXIuY2FsbChwKTp2b2lkIDAsbS5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW0uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobCx1LG0pLG09bnVsbCksYSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWctaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvdXRpbHMiXSxmdW5jdGlvbihlLG4saSx0LHMsbyxyLGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBsKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciB1LGMsZCxwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9by5kZWZhdWx0LmV4dGVuZCgodT0oMCxzLmRlZmF1bHQpKCJ0YWdJbmZvLnRhZ19ncm91cF9uYW1lcyIpLGM9KDAscy5kZWZhdWx0KSgidGFnSW5mby5jYXRlZ29yaWVzIiksZD0oMCxzLmRlZmF1bHQpKCJ0YWdJbmZvLnRhZ19ncm91cF9uYW1lcyIsInRhZ0luZm8uY2F0ZWdvcmllcyIsInRhZ0luZm8uc3lub255bXMiKSxsKHA9e3RhZ05hbWU6IiIsbG9hZGluZzohMSx0YWdJbmZvOm51bGwsbmV3U3lub255bXM6bnVsbCxzaG93RWRpdENvbnRyb2xzOiExLGNhbkFkbWluVGFnOigwLHIucmVhZHMpKCJjdXJyZW50VXNlci5zdGFmZiIpLGVkaXRTeW5vbnltc01vZGU6KDAsci5hbmQpKCJjYW5BZG1pblRhZyIsInNob3dFZGl0Q29udHJvbHMiKSx0YWdHcm91cHNJbmZvOmZ1bmN0aW9uKGUpe3JldHVybiBJMThuLnQoInRhZ2dpbmcudGFnX2dyb3Vwc19pbmZvIix7Y291bnQ6ZS5sZW5ndGgsdGFnX2dyb3VwczplLmpvaW4oIiwgIil9KX0sY2F0ZWdvcmllc0luZm86ZnVuY3Rpb24oZSl7cmV0dXJuIEkxOG4udCgidGFnZ2luZy5jYXRlZ29yeV9yZXN0cmljdGlvbnMiLHtjb3VudDplLmxlbmd0aH0pfSxub3RoaW5nVG9TaG93OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4oMCxhLmlzRW1wdHkpKGUpJiYoMCxhLmlzRW1wdHkpKHQpJiYoMCxhLmlzRW1wdHkpKG4pfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubG9hZFRhZ0luZm8oKX0sbG9hZFRhZ0luZm86ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLmxvYWRpbmcpcmV0dXJuIHRoaXMuc2V0KCJsb2FkaW5nIiwhMCksdGhpcy5zdG9yZS5maW5kKCJ0YWctaW5mbyIsdGhpcy50YWcuaWQpLnRoZW4oZnVuY3Rpb24oZSl7dC5zZXQoInRhZ0luZm8iLGUpLHQuc2V0KCJ0YWdJbmZvLnN5bm9ueW1zIixlLnN5bm9ueW1zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdG9yZS5jcmVhdGVSZWNvcmQoInRhZyIsZSl9KSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0KCJsb2FkaW5nIiwhMSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0sYWN0aW9uczp7dG9nZ2xlRWRpdENvbnRyb2xzOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgic2hvd0VkaXRDb250cm9scyIpfSxyZW5hbWVUYWc6ZnVuY3Rpb24oKXsoMCx0LmRlZmF1bHQpKCJyZW5hbWUtdGFnIix7bW9kZWw6dGhpcy50YWd9KX0sZGVsZXRlVGFnOmZ1bmN0aW9uKCl7dGhpcy5zZW5kQWN0aW9uKCJkZWxldGVBY3Rpb24iLHRoaXMudGFnSW5mbyl9LHVubGlua1N5bm9ueW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsoMCxuLmFqYXgpKCIvdGFnLyIrdGhpcy50YWdJbmZvLm5hbWUrIi9zeW5vbnltcy8iK2UuaWQse3R5cGU6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQudGFnSW5mby5zeW5vbnltcy5yZW1vdmVPYmplY3QoZSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0sZGVsZXRlU3lub255bTpmdW5jdGlvbih0KXt2YXIgbj10aGlzO2Jvb3Rib3guY29uZmlybShJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3N5bm9ueW1fY29uZmlybSIse3RhZ19uYW1lOnQudGV4dH0pLGZ1bmN0aW9uKGUpe2UmJnQuZGVzdHJveVJlY29yZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbi50YWdJbmZvLnN5bm9ueW1zLnJlbW92ZU9iamVjdCh0KX0pLmNhdGNoKGkucG9wdXBBamF4RXJyb3IpfSl9LGFkZFN5bm9ueW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJ0YWdnaW5nLmFkZF9zeW5vbnltc19leHBsYW5hdGlvbiIse2NvdW50OnRoaXMubmV3U3lub255bXMubGVuZ3RoLHRhZ19uYW1lOnRoaXMudGFnSW5mby5uYW1lfSksZnVuY3Rpb24oZSl7ZSYmKDAsbi5hamF4KSgiL3RhZy8iK3QudGFnSW5mby5uYW1lKyIvc3lub255bXMiLHt0eXBlOiJQT1NUIixkYXRhOntzeW5vbnltczp0Lm5ld1N5bm9ueW1zfX0pLnRoZW4oZnVuY3Rpb24oZSl7ZS5zdWNjZXNzPyh0LnNldCgibmV3U3lub255bXMiLG51bGwpLHQubG9hZFRhZ0luZm8oKSk6ZS5mYWlsZWRfdGFncz9ib290Ym94LmFsZXJ0KEkxOG4udCgidGFnZ2luZy5hZGRfc3lub255bXNfZmFpbGVkIix7dGFnX25hbWVzOk9iamVjdC5rZXlzKGUuZmFpbGVkX3RhZ3MpLmpvaW4oIiwgIil9KSk6Ym9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSl9KS5jYXRjaChpLnBvcHVwQWpheEVycm9yKX0pfX19LCJ0YWdHcm91cHNJbmZvIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJ0YWdHcm91cHNJbmZvIikscCksbChwLCJjYXRlZ29yaWVzSW5mbyIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiY2F0ZWdvcmllc0luZm8iKSxwKSxsKHAsIm5vdGhpbmdUb1Nob3ciLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsIm5vdGhpbmdUb1Nob3ciKSxwKSxwKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RhZy1saXN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoInRpdGxlS2V5IiksYT0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeUlkIiksbD0oMCx0LmRlZmF1bHQpKCJjYXRlZ29yeS5mdWxsU2x1ZyIpLHU9KDAsdC5kZWZhdWx0KSgidGFnR3JvdXBOYW1lIiksbyhjPXtjbGFzc05hbWVCaW5kaW5nczpbIjp0YWdzLWxpc3QiLCI6dGFnLWxpc3QiLCJjYXRlZ29yeUNsYXNzIiwidGFnR3JvdXBOYW1lQ2xhc3MiXSxpc1ByaXZhdGVNZXNzYWdlOiExLHNvcnRlZFRhZ3M6KDAsbi5zb3J0KSgidGFncyIsInNvcnRQcm9wZXJ0aWVzIiksdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkkxOG4udChlKX0sY2F0ZWdvcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnMuZGVmYXVsdC5maW5kQnlJZChlKX0sY2F0ZWdvcnlDbGFzczpmdW5jdGlvbihlKXtyZXR1cm4gZSYmInRhZy1saXN0LSIrZX0sdGFnR3JvdXBOYW1lQ2xhc3M6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oZT1lLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvWyFcIiMkJSYnXChcKVwqXCssXC5cLzo7PD0+XD9cQFxbXFxcXVxeYFx7XHxcfX5dL2csIiIpLnRvTG93ZXJDYXNlKCkpJiYidGFnLWdyb3VwLSIrZX19LCJ0aXRsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywidGl0bGUiKSxjKSxvKGMsImNhdGVnb3J5IixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLCJjYXRlZ29yeSIpLGMpLG8oYywiY2F0ZWdvcnlDbGFzcyIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywiY2F0ZWdvcnlDbGFzcyIpLGMpLG8oYywidGFnR3JvdXBOYW1lQ2xhc3MiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsInRhZ0dyb3VwTmFtZUNsYXNzIiksYyksYykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90YWdzLWFkbWluLWRyb3Bkb3duIixbImV4cG9ydHMiLCJzZWxlY3Qta2l0L2NvbXBvbmVudHMvZHJvcGRvd24tc2VsZWN0LWJveCIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cGx1Z2luQXBpSWRlbnRpZmllcnM6WyJ0YWdzLWFkbWluLWRyb3Bkb3duIl0sY2xhc3NOYW1lczpbInRhZ3MtYWRtaW4tZHJvcGRvd24iXSxhY3Rpb25zTWFwcGluZzpudWxsLHNlbGVjdEtpdE9wdGlvbnM6e2ljb25zOlsiYmFycyIsImNhcmV0LWRvd24iXSxzaG93RnVsbFRpdGxlOiExfSxjb250ZW50OigwLG4uY29tcHV0ZWQpKGZ1bmN0aW9uKCl7cmV0dXJuW3tpZDoibWFuYWdlR3JvdXBzIixuYW1lOkkxOG4udCgidGFnZ2luZy5tYW5hZ2VfZ3JvdXBzIiksZGVzY3JpcHRpb246STE4bi50KCJ0YWdnaW5nLm1hbmFnZV9ncm91cHNfZGVzY3JpcHRpb24iKSxpY29uOiJ3cmVuY2gifSx7aWQ6InVwbG9hZFRhZ3MiLG5hbWU6STE4bi50KCJ0YWdnaW5nLnVwbG9hZCIpLGRlc2NyaXB0aW9uOkkxOG4udCgidGFnZ2luZy51cGxvYWRfZGVzY3JpcHRpb24iKSxpY29uOiJ1cGxvYWQifSx7aWQ6ImRlbGV0ZVVudXNlZFRhZ3MiLG5hbWU6STE4bi50KCJ0YWdnaW5nLmRlbGV0ZV91bnVzZWQiKSxkZXNjcmlwdGlvbjpJMThuLnQoInRhZ2dpbmcuZGVsZXRlX3VudXNlZF9kZXNjcmlwdGlvbiIpLGljb246InRyYXNoLWFsdCJ9XX0pLGFjdGlvbnM6e29uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aW9uc01hcHBpbmdbZV07dCYmdCgpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGFwLXRpbGUtZ3JpZCIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInRhcC10aWxlLWdyaWQiXSxhY3RpdmVUaWxlOm51bGx9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGFwLXRpbGUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJ0YXAtdGlsZSJdLGNsYXNzTmFtZUJpbmRpbmdzOlsiYWN0aXZlIl0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLm9uU2VsZWN0KHRoaXMudGlsZUlkKX0sYWN0aXZlOigwLG4ucHJvcGVydHlFcXVhbCkoImFjdGl2ZVRpbGUiLCJ0aWxlSWQiKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90ZXh0LW92ZXJmbG93IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLG4sdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLG4ubmV4dCkobnVsbCxmdW5jdGlvbigpe3ZhciBlPSQodC5lbGVtZW50KTtlJiYoZS5maW5kKCJiciIpLnJlcGxhY2VXaXRoKCIgIiksZS5maW5kKCJociIpLnJlbW92ZSgpLGUuZWxsaXBzaXMoKSl9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdGltZS1pbnB1dCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGksbixzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtjbGFzc05hbWVzOlsiZC10aW1lLWlucHV0Il0saG91cnM6bnVsbCxtaW51dGVzOm51bGwsX2hvdXJzOigwLHQub25lV2F5KSgiaG91cnMiKSxfbWludXRlczooMCx0Lm9uZVdheSkoIm1pbnV0ZXMiKSxpc1NhZmFyaTooMCx0Lm9uZVdheSkoImNhcGFiaWxpdGllcy5pc1NhZmFyaSIpLGlzTW9iaWxlOigwLHQub25lV2F5KSgic2l0ZS5tb2JpbGVWaWV3IiksbmF0aXZlUGlja2VyOigwLHQub3IpKCJpc1NhZmFyaSIsImlzTW9iaWxlIiksYWN0aW9uczp7b25JbnB1dDpmdW5jdGlvbihlLHQpe3ZhciBuO3QucHJldmVudERlZmF1bHQoKSx0aGlzLm9uQ2hhbmdlJiYobj10LnRhcmdldC52YWx1ZSxuPSgwLHMuaXNOdW1lcmljKShuKT9wYXJzZUludChuLDEwKTowLCJob3VycyI9PT1lLnByb3A/KG49TWF0aC5tYXgoMCxNYXRoLm1pbihuLDIzKSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksdGhpcy5fcHJvY2Vzc0hvdXJzQ2hhbmdlKG4pKToobj1NYXRoLm1heCgwLE1hdGgubWluKG4sNTkpKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSx0aGlzLl9wcm9jZXNzTWludXRlc0NoYW5nZShuKSksKDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB0LnRhcmdldC52YWx1ZT1ufSkpfSxvbkZvY3VzSW46ZnVuY3Rpb24oZSx0KXtlJiZ0LnRhcmdldCYmdC50YXJnZXQuc2VsZWN0KCl9LG9uQ2hhbmdlVGltZTpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC52YWx1ZTt0JiZ0aGlzLm9uQ2hhbmdlJiZ0aGlzLm9uQ2hhbmdlKHtob3Vyczp0LnNwbGl0KCI6IilbMF0sbWludXRlczp0LnNwbGl0KCI6IilbMV19KX19LF9wcm9jZXNzSG91cnNDaGFuZ2U6ZnVuY3Rpb24oZSl7dGhpcy5vbkNoYW5nZSh7aG91cnM6ZSxtaW51dGVzOnRoaXMuX21pbnV0ZXN8fCIwMCJ9KX0sX3Byb2Nlc3NNaW51dGVzQ2hhbmdlOmZ1bmN0aW9uKGUpe3RoaXMub25DaGFuZ2Uoe2hvdXJzOnRoaXMuX2hvdXJzfHwiMDAiLG1pbnV0ZXM6ZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3AtcGVyaW9kLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInBlcmlvZCIpLG89cz17Y2xhc3NOYW1lczpbInRvcC10aXRsZS1idXR0b25zIl0scGVyaW9kczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zaXRlLmdldCgicGVyaW9kcyIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KX0sYWN0aW9uczp7Y2hhbmdlUGVyaW9kOmZ1bmN0aW9uKGUpe3RoaXMuYWN0aW9uKGUpfX19LHI9InBlcmlvZHMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJwZXJpb2RzIiksdT1zLGM9e30sT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihlKXtjW2VdPWxbZV19KSxjLmVudW1lcmFibGU9ISFjLmVudW1lcmFibGUsYy5jb25maWd1cmFibGU9ISFjLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGN8fGMuaW5pdGlhbGl6ZXIpJiYoYy53cml0YWJsZT0hMCksYz1hLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG8scixlKXx8ZX0sYyksdSYmdm9pZCAwIT09Yy5pbml0aWFsaXplciYmKGMudmFsdWU9Yy5pbml0aWFsaXplcj9jLmluaXRpYWxpemVyLmNhbGwodSk6dm9pZCAwLGMuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1jLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG8scixjKSxjPW51bGwpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtYWRtaW4tbWVudS1idXR0b24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9jb21wb25lbnRzL21vdW50LXdpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczoidG9waWMtYWRtaW4tbWVudS1idXR0b24tY29udGFpbmVyIix0YWdOYW1lOiJzcGFuIix3aWRnZXQ6InRvcGljLWFkbWluLW1lbnUtYnV0dG9uIixidWlsZEFyZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0aWVzKCJ0b3BpYyIsImZpeGVkIiwib3BlblVwd2FyZHMiLCJyaWdodFNpZGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtY2F0ZWdvcnkiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtZW50cmFuY2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL21peGlucy9jbGVhbnMtdXAiXSxmdW5jdGlvbihlLHQsaSxuLHMsbyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGEsbCx1LGMsZCxwLG0sZixoLGI7ZnVuY3Rpb24gZyhlLHQpe3ZhciBuPW5ldyBEYXRlO3JldHVybiBlLnRvRGF0ZVN0cmluZygpPT09bi50b0RhdGVTdHJpbmcoKT9tb21lbnQoZSkuZm9ybWF0KEkxOG4udCgiZGF0ZXMudGltZSIpKTplLmdldFllYXIoKT09PW4uZ2V0WWVhcigpP21vbWVudChlKS5mb3JtYXQodD9JMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRob3V0X3llYXJfd2l0aF9saW5lYnJlYWsiKTpJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhcl9ub190aW1lIikpOm1vbWVudChlKS5mb3JtYXQodD9JMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXJfd2l0aF9saW5lYnJlYWsiKTpJMThuLnQoImRhdGVzLmxvbmdfZGF0ZV93aXRoX3llYXJfd2l0aG91dF90aW1lIikpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQsKGE9KDAsdC5kZWZhdWx0KSgidG9waWMuY3JlYXRlZF9hdCIpLGw9KDAsdC5kZWZhdWx0KSgidG9waWMuYnVtcGVkX2F0IiksdT0oMCx0LmRlZmF1bHQpKCJjcmVhdGVkRGF0ZSIsImJ1bXBlZERhdGUiKSxjPSgwLHQuZGVmYXVsdCkoImNyZWF0ZWREYXRlIiwic2hvd1RpbWUiKSxkPSgwLHQuZGVmYXVsdCkoImJ1bXBlZERhdGUiLCJzaG93VGltZSIpLHIocD17ZWxlbWVudElkOiJ0b3BpYy1lbnRyYW5jZSIsY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOjpoaWRkZW4iXSxfcG9zaXRpb246bnVsbCx0b3BpYzpudWxsLHZpc2libGU6bnVsbCxjcmVhdGVkRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IERhdGUoZSl9LGJ1bXBlZERhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKGUpfSxzaG93VGltZTpmdW5jdGlvbihlLHQpe3JldHVybiB0LmdldFRpbWUoKS1lLmdldFRpbWUoKTwxNzI4ZTV9LHRvcERhdGU6Zyxib3R0b21EYXRlOmcsZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigidG9waWMtZW50cmFuY2U6c2hvdyIsdGhpcywiX3Nob3ciKX0sX3NldENTUzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3Bvc2l0aW9uLHQ9JCh0aGlzLmVsZW1lbnQpLG49dC53aWR0aCgpLGk9dC5oZWlnaHQoKTtlLmxlZnQ9cGFyc2VJbnQoZS5sZWZ0LDEwKS1uLzIsZS50b3A9cGFyc2VJbnQoZS50b3AsMTApLWkvMjt2YXIgcz0kKHdpbmRvdykud2lkdGgoKTtlLmxlZnQrbj5zJiYoZS5sZWZ0PXMtbi0xNSksdC5jc3MoZSl9LF9zaG93OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5fcG9zaXRpb249ZS5wb3NpdGlvbix0aGlzLnNldFByb3BlcnRpZXMoe3RvcGljOmUudG9waWMsdmlzaWJsZTohMH0pLCgwLGkuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fc2V0Q1NTKSwkKCJodG1sIikub2ZmKCJtb3VzZWRvd24udG9waWMtZW50cmFuY2UiKS5vbigibW91c2Vkb3duLnRvcGljLWVudHJhbmNlIixmdW5jdGlvbihlKXt2YXIgdD0kKGUudGFyZ2V0KTsidG9waWMtZW50cmFuY2UiIT09dC5wcm9wKCJpZCIpJiYwPT09JChuLmVsZW1lbnQpLmhhcyh0KS5sZW5ndGgmJm4uY2xlYW5VcCgpfSl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLnNldFByb3BlcnRpZXMoe3RvcGljOm51bGwsdmlzaWJsZTohMX0pLCQoImh0bWwiKS5vZmYoIm1vdXNlZG93bi50b3BpYy1lbnRyYW5jZSIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLmFwcEV2ZW50cy5vZmYoInRvcGljLWVudHJhbmNlOnNob3ciLHRoaXMsIl9zaG93Iil9LF9qdW1wVG86ZnVuY3Rpb24oZSl7dGhpcy5jbGVhblVwKCkscy5kZWZhdWx0LnJvdXRlVG8oZSl9LGFjdGlvbnM6e2VudGVyVG9wOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvKHRoaXMuZ2V0KCJ0b3BpYy51cmwiKSl9LGVudGVyQm90dG9tOmZ1bmN0aW9uKCl7dGhpcy5fanVtcFRvKHRoaXMuZ2V0KCJ0b3BpYy5sYXN0UG9zdFVybCIpKX19fSwiY3JlYXRlZERhdGUiLFthXSwobT0obT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImNyZWF0ZWREYXRlIikpP20udmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBtfX0pLHApLHIocCwiYnVtcGVkRGF0ZSIsW2xdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwiYnVtcGVkRGF0ZSIpKT9mLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KSxwKSxyKHAsInNob3dUaW1lIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLCJzaG93VGltZSIpLHApLHIocCwidG9wRGF0ZSIsW2NdLChoPShoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocCwidG9wRGF0ZSIpKT9oLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KSxwKSxyKHAsImJvdHRvbURhdGUiLFtkXSwoYj0oYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHAsImJvdHRvbURhdGUiKSk/Yi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSkscCkscCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1mb290ZXItYnV0dG9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL3JlZ2lzdGVyLXRvcGljLWZvb3Rlci1idXR0b24iXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwLG0sZixoLGI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHQuZGVmYXVsdCkoInRvcGljLmlzUHJpdmF0ZU1lc3NhZ2UiKSxhPSgwLHQuZGVmYXVsdCkoImJ1dHRvbnMuW10iKSxsPSgwLHQuZGVmYXVsdCkoImJ1dHRvbnMuW10iLCJ0b3BpYy5hc3NpZ25lZF90b191c2VyIiksdT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIiksYz0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIiksZD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIikscD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy5tZXNzYWdlX2FyY2hpdmVkIiksbyhtPXtlbGVtZW50SWQ6InRvcGljLWZvb3Rlci1idXR0b25zIixsYXlvdXROYW1lOiJjb21wb25lbnRzL3RvcGljLWZvb3Rlci1idXR0b25zIixjYW5BcmNoaXZlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcGVyc29uYWxfbWVzc2FnZXMmJmV9LGJ1dHRvbnM6KDAscy5nZXRUb3BpY0Zvb3RlckJ1dHRvbnMpKCksaW5saW5lQnV0dG9uczpmdW5jdGlvbihlKXtyZXR1cm4gZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuZHJvcGRvd259KX0sZHJvcGRvd25CdXR0b25zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5kcm9wZG93bn0pfSxzaG93Tm90aWZpY2F0aW9uc0J1dHRvbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzfSxjYW5JbnZpdGVUbzooMCxuLmFsaWFzKSgidG9waWMuZGV0YWlscy5jYW5faW52aXRlX3RvIiksY2FuRGVmZXI6KDAsbi5hbGlhcykoImN1cnJlbnRVc2VyLmVuYWJsZV9kZWZlciIpLGludml0ZURpc2FibGVkOigwLG4ub3IpKCJ0b3BpYy5hcmNoaXZlZCIsInRvcGljLmNsb3NlZCIsInRvcGljLmRlbGV0ZWQiKSxzaG93RWRpdE9uRm9vdGVyOigwLG4uYW5kKSgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIsInNpdGUuY2FuX3RhZ19wbXMiKSxhcmNoaXZlSWNvbjpmdW5jdGlvbihlKXtyZXR1cm4gZT8iZW52ZWxvcGUiOiJmb2xkZXIifSxhcmNoaXZlVGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InRvcGljLm1vdmVfdG9faW5ib3guaGVscCI6InRvcGljLmFyY2hpdmVfbWVzc2FnZS5oZWxwIn0sYXJjaGl2ZUxhYmVsOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0b3BpYy5tb3ZlX3RvX2luYm94LnRpdGxlIjoidG9waWMuYXJjaGl2ZV9tZXNzYWdlLnRpdGxlIn19LCJjYW5BcmNoaXZlIixbcl0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJjYW5BcmNoaXZlIiksbSksbyhtLCJpbmxpbmVCdXR0b25zIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJpbmxpbmVCdXR0b25zIiksbSksbyhtLCJkcm9wZG93bkJ1dHRvbnMiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImRyb3Bkb3duQnV0dG9ucyIpLG0pLG8obSwic2hvd05vdGlmaWNhdGlvbnNCdXR0b24iLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dOb3RpZmljYXRpb25zQnV0dG9uIiksbSksbyhtLCJhcmNoaXZlSWNvbiIsW2NdLChmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiYXJjaGl2ZUljb24iKSk/Zi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fSksbSksbyhtLCJhcmNoaXZlVGl0bGUiLFtkXSwoaD0oaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImFyY2hpdmVUaXRsZSIpKT9oLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaH19KSxtKSxvKG0sImFyY2hpdmVMYWJlbCIsW3BdLChiPShiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiYXJjaGl2ZUxhYmVsIikpP2IudmFsdWU6dm9pZCAwLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCxpbml0aWFsaXplcjpmdW5jdGlvbigpe3JldHVybiBifX0pLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtam9pbi1ncm91cC1ub3RpY2UiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgocz0oMCxuLmRlZmF1bHQpKCJtb2RlbC5ncm91cC57ZnVsbF9uYW1lLG5hbWUsYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0c30iKSxvPSgwLG4uZGVmYXVsdCkoIm1vZGVsLmdyb3VwLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiKSxpKHI9e2NsYXNzTmFtZXM6WyJ0b3BpYy1ub3RpY2UiXSxhY2Nlc3NWaWFHcm91cFRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5mdWxsX25hbWV8fGUubmFtZSxuPWUuYWxsb3dfbWVtYmVyc2hpcF9yZXF1ZXN0cz8icmVxdWVzdCI6ImpvaW4iO3JldHVybiBJMThuLnQoInRvcGljLmdyb3VwXyIrbix7bmFtZTp0fSl9LGFjY2Vzc1ZpYUdyb3VwQnV0dG9uVGV4dDpmdW5jdGlvbihlKXtyZXR1cm4iZ3JvdXBzLiIrKGU/InJlcXVlc3QiOiJqb2luIil9fSwiYWNjZXNzVmlhR3JvdXBUZXh0Iixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJhY2Nlc3NWaWFHcm91cFRleHQiKSxyKSxpKHIsImFjY2Vzc1ZpYUdyb3VwQnV0dG9uVGV4dCIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiYWNjZXNzVmlhR3JvdXBCdXR0b25UZXh0IikscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1saXN0LWl0ZW0iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB1KG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBjLGQscCxtLGYsaCxiO2Z1bmN0aW9uIGcoZSl7dmFyIHQ9JChlLnRhcmdldCk7aWYodC5oYXNDbGFzcygicG9zdHMtbWFwIil8fDA8dC5wYXJlbnRzKCIucG9zdHMtbWFwIikubGVuZ3RoKXJldHVybiJBIiE9PXQucHJvcCgidGFnTmFtZSIpJiYwPT09KHQ9dC5maW5kKCJhIikpLmxlbmd0aCYmKHQ9dC5lbmQoKSksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigidG9waWMtZW50cmFuY2U6c2hvdyIse3RvcGljOnRoaXMudG9waWMscG9zaXRpb246dC5vZmZzZXQoKX0pLCExfWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4gdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnVwZGF0ZS10b3BpYyIsZSksby5kZWZhdWx0LnJvdXRlVG8odHx8ZS5nZXQoInVybCIpKSwhMX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93RW50cmFuY2U9ZyxlLm5hdmlnYXRlVG9Ub3BpYz12LGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChjPSgwLHQub2JzZXJ2ZXMpKCJ0b3BpYy5waW5uZWQiKSxkPSgwLHQuZGVmYXVsdCkoInRvcGljLmlkIikscD0oMCx0LmRlZmF1bHQpKCJ0b3BpYy51bnJlYWRfYnlfZ3JvdXBfbWVtYmVyIiksbT0oMCx0LmRlZmF1bHQpKCJ0b3BpYy51bnJlYWRfYnlfZ3JvdXBfbWVtYmVyIiksZj0oMCx0LmRlZmF1bHQpKCJ0b3BpYyIsImxhc3RWaXNpdGVkVG9waWMiKSx1KGg9e3RhZ05hbWU6InRyIixjbGFzc05hbWVCaW5kaW5nczpbIjp0b3BpYy1saXN0LWl0ZW0iLCJ1bmJvdW5kQ2xhc3NOYW1lcyIsInRvcGljLnZpc2l0ZWQiXSxhdHRyaWJ1dGVCaW5kaW5nczpbImRhdGEtdG9waWMtaWQiXSwiZGF0YS10b3BpYy1pZCI6KDAsbi5hbGlhcykoInRvcGljLmlkIiksZGlkUmVjZWl2ZUF0dHJzOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyVG9waWNMaXN0SXRlbSgpfSxyZW5kZXJUb3BpY0xpc3RJdGVtOmZ1bmN0aW9uKCl7dmFyIGU9KDAsci5maW5kUmF3VGVtcGxhdGUpKCJsaXN0L3RvcGljLWxpc3QtaXRlbSIpO2UmJnRoaXMuc2V0KCJ0b3BpY0xpc3RJdGVtQ29udGVudHMiLGUodGhpcykuaHRtbFNhZmUoKSl9LGRpZEluc2VydEVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5pbmNsdWRlVW5yZWFkSW5kaWNhdG9yJiZ0aGlzLm1lc3NhZ2VCdXMuc3Vic2NyaWJlKHRoaXMudW5yZWFkSW5kaWNhdG9yQ2hhbm5lbCxmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5kaWNhdG9yLXRvcGljLSIrZS50b3BpY19pZCkuY2xhc3NMaXN0O2Uuc2hvd19pbmRpY2F0b3I/dC5yZW1vdmUoInJlYWQiKTp0LmFkZCgicmVhZCIpfSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmluY2x1ZGVVbnJlYWRJbmRpY2F0b3ImJnRoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSh0aGlzLnVucmVhZEluZGljYXRvckNoYW5uZWwpfSx1bnJlYWRJbmRpY2F0b3JDaGFubmVsOmZ1bmN0aW9uKGUpe3JldHVybiIvcHJpdmF0ZS1tZXNzYWdlcy91bnJlYWQtaW5kaWNhdG9yLyIrZX0sdW5yZWFkQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IiI6InJlYWQifSxpbmNsdWRlVW5yZWFkSW5kaWNhdG9yOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfSxuZXdEb3RUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iIjpJMThuLnQoImZpbHRlcnMubmV3Lmxvd2VyX3RpdGxlIil9LHVuYm91bmRDbGFzc05hbWVzOmZ1bmN0aW9uKHQsZSl7dmFyIG49W107cmV0dXJuIHQuZ2V0KCJjYXRlZ29yeSIpJiZuLnB1c2goImNhdGVnb3J5LSIrdC5nZXQoImNhdGVnb3J5LmZ1bGxTbHVnIikpLHQuZ2V0KCJ0YWdzIikmJnQuZ2V0KCJ0YWdzIikuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbi5wdXNoKCJ0YWctIitlKX0pLHQuZ2V0KCJoYXNFeGNlcnB0IikmJm4ucHVzaCgiaGFzLWV4Y2VycHQiKSx0LmdldCgidW5zZWVuIikmJm4ucHVzaCgidW5zZWVuLXRvcGljIiksdC5nZXQoImRpc3BsYXlOZXdQb3N0cyIpJiZuLnB1c2goIm5ldy1wb3N0cyIpLFsibGlrZWQiLCJhcmNoaXZlZCIsImJvb2ttYXJrZWQiLCJwaW5uZWQiLCJjbG9zZWQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuZ2V0KGUpJiZuLnB1c2goZSl9KSx0PT09ZSYmbi5wdXNoKCJsYXN0LXZpc2l0Iiksbi5qb2luKCIgIil9LGhhc0xpa2VzOmZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5nZXQoInRvcGljLmxpa2VfY291bnQiKX0saGFzT3BMaWtlczpmdW5jdGlvbigpe3JldHVybiAwPHRoaXMuZ2V0KCJ0b3BpYy5vcF9saWtlX2NvdW50Iil9LGV4cGFuZFBpbm5lZDpmdW5jdGlvbigpe2lmKCF0aGlzLmdldCgidG9waWMucGlubmVkIikpcmV0dXJuITE7aWYodGhpcy5zaXRlLm1vYmlsZVZpZXcpe2lmKCF0aGlzLnNpdGVTZXR0aW5ncy5zaG93X3Bpbm5lZF9leGNlcnB0X21vYmlsZSlyZXR1cm4hMX1lbHNlIGlmKCF0aGlzLnNpdGVTZXR0aW5ncy5zaG93X3Bpbm5lZF9leGNlcnB0X2Rlc2t0b3ApcmV0dXJuITE7cmV0dXJuISghdGhpcy5leHBhbmRHbG9iYWxseVBpbm5lZHx8IXRoaXMuZ2V0KCJ0b3BpYy5waW5uZWRfZ2xvYmFsbHkiKSl8fCEhdGhpcy5leHBhbmRBbGxQaW5uZWR9LHNob3dFbnRyYW5jZTpnLGNsaWNrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2hvd0VudHJhbmNlKGUpO2lmKCExPT09dClyZXR1cm4gdDt2YXIgbixpPXRoaXMudG9waWMscz0kKGUudGFyZ2V0KTtyZXR1cm4gcy5oYXNDbGFzcygiYnVsay1zZWxlY3QiKSYmKG49dGhpcy5zZWxlY3RlZCxzLmlzKCI6Y2hlY2tlZCIpP24uYWRkT2JqZWN0KGkpOm4ucmVtb3ZlT2JqZWN0KGkpKSxzLmhhc0NsYXNzKCJyYXctdG9waWMtbGluayIpPyEhKDAsYS53YW50c05ld1dpbmRvdykoZSl8fHRoaXMubmF2aWdhdGVUb1RvcGljKGkscy5hdHRyKCJocmVmIikpOjE9PT1zLmNsb3Nlc3QoImEudG9waWMtc3RhdHVzIikubGVuZ3RoPyh0aGlzLnRvcGljLnRvZ2dsZVBpbm5lZEZvclVzZXIoKSwhMSk6dGhpcy51bmhhbmRsZWRSb3dDbGljayhlLGkpfSxhY3Rpb25zOnt0b2dnbGVCb29rbWFyazpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy50b3BpYy50b2dnbGVCb29rbWFyaygpLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gZS5yZW5kZXJUb3BpY0xpc3RJdGVtKCl9KX19LHVuaGFuZGxlZFJvd0NsaWNrOmZ1bmN0aW9uKCl7fSxuYXZpZ2F0ZVRvVG9waWM6dixoaWdobGlnaHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09ZT9lOntpc0xhc3RWaWV3ZWRUb3BpYzohMX07KDAscy5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlOyF0LmVsZW1lbnR8fHQuaXNEZXN0cm95aW5nfHx0LmlzRGVzdHJveWVkfHwoKGU9JCh0LmVsZW1lbnQpKS5hZGRDbGFzcygiaGlnaGxpZ2h0ZWQiKS5hdHRyKCJkYXRhLWlzbGFzdHZpZXdlZHRvcGljIixuLmlzTGFzdFZpZXdlZFRvcGljKSxlLm9uKCJhbmltYXRpb25lbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlQ2xhc3MoImhpZ2hsaWdodGVkIil9KSl9KX0sX2hpZ2hsaWdodElmTmVlZGVkOigwLGwub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe3RoaXMuc2Vzc2lvbi5nZXQoImxhc3RUb3BpY0lkVmlld2VkIik9PT10aGlzLmdldCgidG9waWMuaWQiKT8odGhpcy5zZXNzaW9uLnNldCgibGFzdFRvcGljSWRWaWV3ZWQiLG51bGwpLHRoaXMuaGlnaGxpZ2h0KHtpc0xhc3RWaWV3ZWRUb3BpYzohMH0pKTp0aGlzLmdldCgidG9waWMuaGlnaGxpZ2h0IikmJih0aGlzLnNldCgidG9waWMuaGlnaGxpZ2h0IiwhMSksdGhpcy5oaWdobGlnaHQoKSl9KX0sInJlbmRlclRvcGljTGlzdEl0ZW0iLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsInJlbmRlclRvcGljTGlzdEl0ZW0iKSxoKSx1KGgsInVucmVhZEluZGljYXRvckNoYW5uZWwiLFtkXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsInVucmVhZEluZGljYXRvckNoYW5uZWwiKSxoKSx1KGgsInVucmVhZENsYXNzIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJ1bnJlYWRDbGFzcyIpLGgpLHUoaCwiaW5jbHVkZVVucmVhZEluZGljYXRvciIsW21dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwiaW5jbHVkZVVucmVhZEluZGljYXRvciIpLGgpLHUoaCwibmV3RG90VGV4dCIsW3QuZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJuZXdEb3RUZXh0IiksaCksdShoLCJ1bmJvdW5kQ2xhc3NOYW1lcyIsW2ZdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCwidW5ib3VuZENsYXNzTmFtZXMiKSxoKSx1KGgsImV4cGFuZFBpbm5lZCIsW3QuZGVmYXVsdF0sKGI9KGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLCJleHBhbmRQaW5uZWQiKSk/Yi52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSksaCksaCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy90b3BpYy1saXN0IixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiLCJAZW1iZXIvb2JqZWN0L2V2ZW50ZWQiXSxmdW5jdGlvbihlLHQsbixpLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCwobD0oMCxzLmRlZmF1bHQpKCJidWxrU2VsZWN0RW5hYmxlZCIpLHU9KDAscy5kZWZhdWx0KSgib3JkZXIiKSxjPSgwLHMuZGVmYXVsdCkoIm9yZGVyIiksZD0oMCxzLm9ic2VydmVzKSgidG9waWNzLltdIikscD0oMCxzLm9ic2VydmVzKSgidG9waWNzIiwib3JkZXIiLCJhc2NlbmRpbmciLCJjYXRlZ29yeSIsInRvcCIpLGEobT17dGFnTmFtZToidGFibGUiLGNsYXNzTmFtZXM6WyJ0b3BpYy1saXN0Il0sc2hvd1RvcGljUG9zdEJhZGdlczohMCxsaXN0VGl0bGU6InRvcGljLnRpdGxlIixmaWx0ZXJlZFRvcGljczooMCx0LmFsaWFzKSgidG9waWNzIiksX2luaXQ6KDAsci5vbikoImluaXQiLGZ1bmN0aW9uKCl7dGhpcy5hZGRPYnNlcnZlcigiaGlkZUNhdGVnb3J5Iix0aGlzLnJlcmVuZGVyKSx0aGlzLmFkZE9ic2VydmVyKCJvcmRlciIsdGhpcy5yZXJlbmRlciksdGhpcy5hZGRPYnNlcnZlcigiYXNjZW5kaW5nIix0aGlzLnJlcmVuZGVyKSx0aGlzLnJlZnJlc2hMYXN0VmlzaXRlZCgpfSksdG9nZ2xlSW5UaXRsZTpmdW5jdGlvbihlKXtyZXR1cm4hZSYmdGhpcy5jYW5CdWxrU2VsZWN0fSxzb3J0YWJsZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5jaGFuZ2VTb3J0fSxza2lwSGVhZGVyOigwLHQucmVhZHMpKCJzaXRlLm1vYmlsZVZpZXciKSxzaG93TGlrZXM6ZnVuY3Rpb24oZSl7cmV0dXJuImxpa2VzIj09PWV9LHNob3dPcExpa2VzOmZ1bmN0aW9uKGUpe3JldHVybiJvcF9saWtlcyI9PT1lfSx0b3BpY3NBZGRlZDpmdW5jdGlvbigpe3RoaXMubGFzdFZpc2l0ZWRUb3BpY3x8dGhpcy5yZWZyZXNoTGFzdFZpc2l0ZWQoKX0sbGFzdFZpc2l0ZWRUb3BpY0NoYW5nZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hMYXN0VmlzaXRlZCgpfSxzY3JvbGxlZDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT10aGlzLm9uU2Nyb2xsO2UmJmUuY2FsbCh0aGlzKX0sc2Nyb2xsVG9MYXN0UG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgZTshdGhpcy5zY3JvbGxPbkxvYWR8fChlPXRoaXMuc2Vzc2lvbi5nZXQoInRvcGljTGlzdFNjcm9sbFBvc2l0aW9uIikpJiYwPD1lJiYoMCxuLnNjaGVkdWxlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7cmV0dXJuICQod2luZG93KS5zY3JvbGxUb3AoZSsxKX0pfSxkaWRJbnNlcnRFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2Nyb2xsVG9MYXN0UG9zaXRpb24oKX0sX3VwZGF0ZUxhc3RWaXNpdGVkVG9waWM6ZnVuY3Rpb24oZSx0LG4saSl7aWYodGhpcy5zZXQoImxhc3RWaXNpdGVkVG9waWMiLG51bGwpLHRoaXMuaGlnaGxpZ2h0TGFzdFZpc2l0ZWQmJigiZGVmYXVsdCI9PT10fHwiYWN0aXZpdHkiPT09dCkmJiFpJiZlJiYxIT09ZS5sZW5ndGgmJiFuKXt2YXIgcz10aGlzLmN1cnJlbnRVc2VyO2lmKHMmJnMucHJldmlvdXNfdmlzaXRfYXQpe2Zvcih2YXIgbz12b2lkIDAscj12b2lkIDAsYT1zLmdldCgicHJldmlvdXNWaXNpdEF0IiksbD0wO2VbbF0mJmVbbF0uZ2V0KCJwaW5uZWQiKTspbCsrO2Zvcih2YXIgdT12b2lkIDAsdT1lLmxlbmd0aC0xO2w8PXU7dS0tKXtpZihlW3VdLmdldCgiYnVtcGVkQXQiKT5hKXtvPWVbdV07YnJlYWt9cj1lW3VdfW8mJnImJihyLmdldCgiYnVtcGVkQXQiKT5hfHx0aGlzLnNldCgibGFzdFZpc2l0ZWRUb3BpYyIsbykpfX19LHJlZnJlc2hMYXN0VmlzaXRlZDpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZUxhc3RWaXNpdGVkVG9waWModGhpcy50b3BpY3MsdGhpcy5vcmRlcix0aGlzLmFzY2VuZGluZyx0aGlzLnRvcCl9LGNsaWNrOmZ1bmN0aW9uKGkpe2Z1bmN0aW9uIGUoZSx0KXt2YXIgbj0kKGkudGFyZ2V0KS5jbG9zZXN0KGUpOzE9PT1uLmxlbmd0aCYmdC5hcHBseShzLFtuXSl9dmFyIHM9dGhpcztlKCJidXR0b24uYnVsay1zZWxlY3QiLGZ1bmN0aW9uKCl7dGhpcy50b2dnbGVCdWxrU2VsZWN0KCksdGhpcy5yZXJlbmRlcigpfSksZSgiYnV0dG9uLmJ1bGstc2VsZWN0LWFsbCIsZnVuY3Rpb24oKXskKCJpbnB1dC5idWxrLXNlbGVjdDpub3QoOmNoZWNrZWQpIikuY2xpY2soKX0pLGUoImJ1dHRvbi5idWxrLWNsZWFyLWFsbCIsZnVuY3Rpb24oKXskKCJpbnB1dC5idWxrLXNlbGVjdDpjaGVja2VkIikuY2xpY2soKX0pLGUoInRoLnNvcnRhYmxlIixmdW5jdGlvbihlKXt0aGlzLmNoYW5nZVNvcnQoZS5kYXRhKCJzb3J0LW9yZGVyIikpLHRoaXMucmVyZW5kZXIoKX0pfX0sInRvZ2dsZUluVGl0bGUiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInRvZ2dsZUluVGl0bGUiKSxtKSxhKG0sInNvcnRhYmxlIixbcy5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNvcnRhYmxlIiksbSksYShtLCJzaG93TGlrZXMiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dMaWtlcyIpLG0pLGEobSwic2hvd09wTGlrZXMiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sInNob3dPcExpa2VzIiksbSksYShtLCJ0b3BpY3NBZGRlZCIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwidG9waWNzQWRkZWQiKSxtKSxhKG0sImxhc3RWaXNpdGVkVG9waWNDaGFuZ2VkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJsYXN0VmlzaXRlZFRvcGljQ2hhbmdlZCIpLG0pLG0pKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtbmF2aWdhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9taXhpbnMvcGFuLWV2ZW50cyJdLGZ1bmN0aW9uKGUsdCxvLG4saSxzLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdSxjLGQscCxtLGY7ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoci5kZWZhdWx0LChhPSgwLGkub2JzZXJ2ZXMpKCJpbmZvLnRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIpLHU9bD17Y29tcG9zZXJPcGVuOm51bGwsaW5mbzpudWxsLGlzUGFubmluZzohMSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2V0KCJpbmZvIix0LmRlZmF1bHQuY3JlYXRlKCkpfSxfcGVyZm9ybUNoZWNrU2l6ZTpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyOyF0aGlzLmVsZW1lbnR8fHRoaXMuaXNEZXN0cm95aW5nfHx0aGlzLmlzRGVzdHJveWVkfHwoKGU9dGhpcy5pbmZvKS5nZXQoInRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIpP2Uuc2V0UHJvcGVydGllcyh7cmVuZGVyVGltZWxpbmU6ITAscmVuZGVyQWRtaW5NZW51QnV0dG9uOiEwfSk6KCh0PSF0aGlzLnNpdGUubW9iaWxlVmlldykmJihuPXdpbmRvdy5pbm5lcldpZHRoLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlcGx5LWNvbnRyb2wiKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aW1lbGluZS1jb250YWluZXIiKSxyPShvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kLWhlYWRlciIpKSYmby5vZmZzZXRIZWlnaHR8fDAscyYmaSYmKHQ9OTI0PG4mJndpbmRvdy5pbm5lckhlaWdodC1pLm9mZnNldEhlaWdodC1yPnMub2Zmc2V0SGVpZ2h0KSksZS5zZXRQcm9wZXJ0aWVzKHtyZW5kZXJUaW1lbGluZTp0LHJlbmRlckFkbWluTWVudUJ1dHRvbjohdH0pKSl9LF9jaGVja1NpemU6ZnVuY3Rpb24oKXsoMCxvLmRlYm91bmNlKSh0aGlzLHRoaXMuX3BlcmZvcm1DaGVja1NpemUsMzAwLCEwKX0sX3RvcGljU2Nyb2xsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5zZXQoImluZm8ucHJldkV2ZW50IixlKX0sX2V4cGFuZGVkOmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmdldCgiaW5mby50b3BpY1Byb2dyZXNzRXhwYW5kZWQiKT8kKHdpbmRvdykub24oImNsaWNrLmhpZGUtZnVsbHNjcmVlbiIsZnVuY3Rpb24oZSl7dmFyIHQ9JChlLnRhcmdldCksbj10LnBhcmVudHMoKTt0LmlzKCIud2lkZ2V0LWJ1dHRvbiIpfHxuLmlzKCIud2lkZ2V0LWJ1dHRvbiIpfHxuLmlzKCIuZHJvcGRvd24tbWVudSIpfHxuLmlzKCIjZGlzY291cnNlLW1vZGFsIil8fHQuaXMoIiNkaXNjb3Vyc2UtbW9kYWwiKXx8bi5pcygiLm1vZGFsLWZvb3RlciIpfHwhdC5pcygiLnRvcGljLXRpbWVsaW5lIikmJm4uaXMoIiN0b3BpYy1wcm9ncmVzcy13cmFwcGVyIil8fGkuX2NvbGxhcHNlRnVsbHNjcmVlbigpfSk6JCh3aW5kb3cpLm9mZigiY2xpY2suaGlkZS1mdWxsc2NyZWVuIiksdGhpcy5fY2hlY2tTaXplKCl9LGNvbXBvc2VyT3BlbmVkOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImNvbXBvc2VyT3BlbiIsITApLHRoaXMuX2NoZWNrU2l6ZSgpfSxjb21wb3NlckNsb3NlZDpmdW5jdGlvbigpe3RoaXMuc2V0KCJjb21wb3Nlck9wZW4iLCExKSx0aGlzLl9jaGVja1NpemUoKX0sX2NvbGxhcHNlRnVsbHNjcmVlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5nZXQoImluZm8udG9waWNQcm9ncmVzc0V4cGFuZGVkIikmJigkKCIudGltZWxpbmUtZnVsbHNjcmVlbiIpLnJlbW92ZUNsYXNzKCJzaG93IiksKDAsby5sYXRlcikoZnVuY3Rpb24oKXshZS5lbGVtZW50fHxlLmlzRGVzdHJveWluZ3x8ZS5pc0Rlc3Ryb3llZHx8KGUuc2V0KCJpbmZvLnRvcGljUHJvZ3Jlc3NFeHBhbmRlZCIsITEpLGUuX2NoZWNrU2l6ZSgpKX0sNTAwKSl9LGtleWJvYXJkVHJpZ2dlcjpmdW5jdGlvbihlKXsianVtcCI9PT1lLnR5cGUmJigwLHMuZGVmYXVsdCkoImp1bXAtdG8tcG9zdCIse21vZGFsQ2xhc3M6Imp1bXAtdG8tcG9zdC1tb2RhbCJ9KS5zZXRQcm9wZXJ0aWVzKHt0b3BpYzp0aGlzLnRvcGljLGp1bXBUb0luZGV4OnRoaXMuYXR0cnMuanVtcFRvSW5kZXgsanVtcFRvRGF0ZTp0aGlzLmF0dHJzLmp1bXBUb0RhdGV9KX0sX2hhbmRsZVBhbkRvbmU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9JCgiLnRpbWVsaW5lLWNvbnRhaW5lciIpLHM9cGFyc2VJbnQoaS5jc3MoImhlaWdodCIpLDEwKTt0aGlzLl9zaG91bGRQYW5DbG9zZSh0KT9lKz1yLlNXSVBFX1ZFTE9DSVRZOmUtPXIuU1dJUEVfVkVMT0NJVFksaS5jc3MoImJvdHRvbSIsLWUpLHM8ZT90aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4oKTplPD0wP2kuY3NzKCJib3R0b20iLCIiKTooMCxvLmxhdGVyKShmdW5jdGlvbigpe3JldHVybiBuLl9oYW5kbGVQYW5Eb25lKGUsdCl9LDIwKX0sX3Nob3VsZFBhbkNsb3NlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmRlbHRhWT5yLlNXSVBFX0RJU1RBTkNFX1RIUkVTSE9MRCYmZS52ZWxvY2l0eVk+LXIuU1dJUEVfVkVMT0NJVFlfVEhSRVNIT0xEfHxlLnZlbG9jaXR5WT5yLlNXSVBFX1ZFTE9DSVRZX1RIUkVTSE9MRH0scGFuU3RhcnQ6ZnVuY3Rpb24oZSl7ZS5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZS5jZW50ZXI7JChkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHQueCx0LnkpKS5wYXJlbnRzKCIudGltZWxpbmUtc2Nyb2xsYXJlYS13cmFwcGVyIikubGVuZ3RoP3RoaXMuaXNQYW5uaW5nPSExOiJ1cCIhPT1lLmRpcmVjdGlvbiYmImRvd24iIT09ZS5kaXJlY3Rpb258fCh0aGlzLmlzUGFubmluZz0hMCl9LHBhbkVuZDpmdW5jdGlvbihlKXt0aGlzLmlzUGFubmluZyYmKGUub3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNQYW5uaW5nPSExLHRoaXMuX2hhbmRsZVBhbkRvbmUoZS5kZWx0YVksZSkpfSxwYW5Nb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuaXNQYW5uaW5nJiYoZS5vcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCksJCgiLnRpbWVsaW5lLWNvbnRhaW5lciIpLmNzcygiYm90dG9tIixNYXRoLm1pbigwLC1lLmRlbHRhWSkpKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9uKCJ0b3BpYzpjdXJyZW50LXBvc3Qtc2Nyb2xsZWQiLHRoaXMsdGhpcy5fdG9waWNTY3JvbGxlZCkub24oInRvcGljOmp1bXAtdG8tcG9zdCIsdGhpcyx0aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4pLm9uKCJ0b3BpYzprZXlib2FyZC10cmlnZ2VyIix0aGlzLHRoaXMua2V5Ym9hcmRUcmlnZ2VyKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS10b3BpYy1uYXZpZ2F0aW9uIixmdW5jdGlvbigpe3JldHVybiBlLl9jaGVja1NpemUoKX0pLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOnJlc2l6ZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub24oImNvbXBvc2VyOmNsb3NlZCIsdGhpcyx0aGlzLmNvbXBvc2VyQ2xvc2VkKSwkKCIjcmVwbHktY29udHJvbCIpLm9uKCJkaXYtcmVzaXplZC5kaXNjb3Vyc2UtdG9waWMtbmF2aWdhdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4gZS5fY2hlY2tTaXplKCl9KSksdGhpcy5fY2hlY2tTaXplKCl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vZmYoInRvcGljOmN1cnJlbnQtcG9zdC1zY3JvbGxlZCIsdGhpcyx0aGlzLl90b3BpY1Njcm9sbGVkKS5vZmYoInRvcGljOmp1bXAtdG8tcG9zdCIsdGhpcyx0aGlzLl9jb2xsYXBzZUZ1bGxzY3JlZW4pLm9mZigidG9waWM6a2V5Ym9hcmQtdHJpZ2dlciIsdGhpcyx0aGlzLmtleWJvYXJkVHJpZ2dlciksJCh3aW5kb3cpLm9mZigiY2xpY2suaGlkZS1mdWxsc2NyZWVuIiksdGhpcy5zaXRlLm1vYmlsZVZpZXd8fCgkKHdpbmRvdykub2ZmKCJyZXNpemUuZGlzY291cnNlLXRvcGljLW5hdmlnYXRpb24iKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOm9wZW5lZCIsdGhpcyx0aGlzLmNvbXBvc2VyT3BlbmVkKSx0aGlzLmFwcEV2ZW50cy5vZmYoImNvbXBvc2VyOnJlc2l6ZWQiLHRoaXMsdGhpcy5jb21wb3Nlck9wZW5lZCksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5jb21wb3NlckNsb3NlZCksJCgiI3JlcGx5LWNvbnRyb2wiKS5vZmYoImRpdi1yZXNpemVkLmRpc2NvdXJzZS10b3BpYy1uYXZpZ2F0aW9uIikpfX0sYz0iX2V4cGFuZGVkIixkPVthXSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwiX2V4cGFuZGVkIiksbT1sLGY9e30sT2JqZWN0LmtleXMocCkuZm9yRWFjaChmdW5jdGlvbihlKXtmW2VdPXBbZV19KSxmLmVudW1lcmFibGU9ISFmLmVudW1lcmFibGUsZi5jb25maWd1cmFibGU9ISFmLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIGZ8fGYuaW5pdGlhbGl6ZXIpJiYoZi53cml0YWJsZT0hMCksZj1kLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KHUsYyxlKXx8ZX0sZiksbSYmdm9pZCAwIT09Zi5pbml0aWFsaXplciYmKGYudmFsdWU9Zi5pbml0aWFsaXplcj9mLmluaXRpYWxpemVyLmNhbGwobSk6dm9pZCAwLGYuaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1mLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsYyxmKSxmPW51bGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtcG9zdC1iYWRnZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6InNwYW4iLGNsYXNzTmFtZUJpbmRpbmdzOlsiOnRvcGljLXBvc3QtYmFkZ2VzIl0scmVyZW5kZXJUcmlnZ2VyczpbInVybCIsInVucmVhZCIsIm5ld1Bvc3RzIiwidW5zZWVuIl0sbmV3RG90VGV4dDpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZXQoIm5ld0RvdFRleHQiLHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iICI6STE4bi50KCJmaWx0ZXJzLm5ldy5sb3dlcl90aXRsZSIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtcHJvZ3Jlc3MiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvcnVubG9vcCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1pLmRlZmF1bHQuZXh0ZW5kKChyPSgwLHMuZGVmYXVsdCkoInByb2dyZXNzUG9zaXRpb24iKSxhPSgwLHMuZGVmYXVsdCkoInBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50IiwidG9waWMuaGlnaGVzdF9wb3N0X251bWJlciIsInByb2dyZXNzUG9zaXRpb24iKSxsPSgwLHMuZGVmYXVsdCkoInBvc3RTdHJlYW0ubG9hZGVkIiwidG9waWMuY3VycmVudFBvc3QiLCJwb3N0U3RyZWFtLmZpbHRlcmVkUG9zdHNDb3VudCIpLHU9KDAscy5kZWZhdWx0KSgicG9zdFN0cmVhbS5maWx0ZXJlZFBvc3RzQ291bnQiKSxjPSgwLHMuZGVmYXVsdCkoImh1Z2VOdW1iZXJPZlBvc3RzIiwidG9waWMuaGlnaGVzdF9wb3N0X251bWJlciIpLGQ9KDAscy5kZWZhdWx0KSgicHJvZ3Jlc3NQb3NpdGlvbiIsInRvcGljLmxhc3RfcmVhZF9wb3N0X2lkIikscD0oMCxzLm9ic2VydmVzKSgicG9zdFN0cmVhbS5zdHJlYW0uW10iKSxvKG09e2VsZW1lbnRJZDoidG9waWMtcHJvZ3Jlc3Mtd3JhcHBlciIsY2xhc3NOYW1lQmluZGluZ3M6WyJkb2NrZWQiXSxkb2NrZWQ6ITEscHJvZ3Jlc3NQb3NpdGlvbjpudWxsLHBvc3RTdHJlYW06KDAsdC5hbGlhcykoInRvcGljLnBvc3RTdHJlYW0iKSxfc3RyZWFtUGVyY2VudGFnZTpudWxsLGp1bXBUb3BEaXNhYmxlZDpmdW5jdGlvbihlKXtyZXR1cm4gZTw9M30sanVtcEJvdHRvbURpc2FibGVkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZTw9bnx8dDw9bn0saGlkZVByb2dyZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZXx8IXR8fCF0aGlzLnNpdGUubW9iaWxlVmlldyYmbjwyfSxodWdlTnVtYmVyT2ZQb3N0czpmdW5jdGlvbihlKXtyZXR1cm4gZT49dGhpcy5zaXRlU2V0dGluZ3Muc2hvcnRfcHJvZ3Jlc3NfdGV4dF90aHJlc2hvbGR9LGp1bXBUb0JvdHRvbVRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU/STE4bi50KCJ0b3BpYy5wcm9ncmVzcy5qdW1wX2JvdHRvbV93aXRoX251bWJlciIse3Bvc3RfbnVtYmVyOnR9KTpJMThuLnQoInRvcGljLnByb2dyZXNzLmp1bXBfYm90dG9tIil9LHNob3dCYWNrQnV0dG9uOmZ1bmN0aW9uKGUsdCl7aWYodCl7dmFyIG49dGhpcy5nZXQoInBvc3RTdHJlYW0uc3RyZWFtIiksaT1uLmluZGV4T2YodCl8fDA7cmV0dXJuIGk8bi5sZW5ndGgtMSYmZTxpfX0sX3VwZGF0ZUJhcjpmdW5jdGlvbigpeygwLG4uc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5fdXBkYXRlUHJvZ3Jlc3NCYXIpfSxfdG9waWNTY3JvbGxlZDpmdW5jdGlvbihlKXt0aGlzLmRvY2tlZD8odGhpcy5zZXQoInByb2dyZXNzUG9zaXRpb24iLHRoaXMuZ2V0KCJwb3N0U3RyZWFtLmZpbHRlcmVkUG9zdHNDb3VudCIpKSx0aGlzLl9zdHJlYW1QZXJjZW50YWdlPTEpOih0aGlzLnNldCgicHJvZ3Jlc3NQb3NpdGlvbiIsZS5wb3N0SW5kZXgpLHRoaXMuX3N0cmVhbVBlcmNlbnRhZ2U9ZS5wZXJjZW50KSx0aGlzLl91cGRhdGVCYXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6d2lsbC1vcGVuIix0aGlzLHRoaXMuX2RvY2spLm9uKCJjb21wb3NlcjpyZXNpemVkIix0aGlzLHRoaXMuX2RvY2spLm9uKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5fZG9jaykub24oInRvcGljOnNjcm9sbGVkIix0aGlzLHRoaXMuX2RvY2spLm9uKCJ0b3BpYzpjdXJyZW50LXBvc3Qtc2Nyb2xsZWQiLHRoaXMsdGhpcy5fdG9waWNTY3JvbGxlZCk7dmFyIGU9dGhpcy5wcmV2RXZlbnQ7ZT8oMCxuLnNjaGVkdWxlT25jZSkoImFmdGVyUmVuZGVyIix0aGlzLHRoaXMuX3RvcGljU2Nyb2xsZWQsZSk6KDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdGhpcyx0aGlzLl91cGRhdGVQcm9ncmVzc0JhciksKDAsbi5zY2hlZHVsZU9uY2UpKCJhZnRlclJlbmRlciIsdGhpcyx0aGlzLl9kb2NrKX0sd2lsbERlc3Ryb3lFbGVtZW50OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6d2lsbC1vcGVuIix0aGlzLHRoaXMuX2RvY2spLm9mZigiY29tcG9zZXI6cmVzaXplZCIsdGhpcyx0aGlzLl9kb2NrKS5vZmYoImNvbXBvc2VyOmNsb3NlZCIsdGhpcyx0aGlzLl9kb2NrKS5vZmYoInRvcGljOnNjcm9sbGVkIix0aGlzLHRoaXMuX2RvY2spLm9mZigidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIix0aGlzLHRoaXMuX3RvcGljU2Nyb2xsZWQpfSxfdXBkYXRlUHJvZ3Jlc3NCYXI6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzLG87dGhpcy5pc0Rlc3Ryb3llZHx8dGhpcy5pc0Rlc3Ryb3lpbmd8fChlPSQodGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0b3BpYy1wcm9ncmVzcyIpKSx0aGlzLl90b3RhbFdpZHRofHwodGhpcy5fdG90YWxXaWR0aD1lWzBdLm9mZnNldFdpZHRoKSx0aGlzLl9zdHJlYW1QZXJjZW50YWdlJiYodD10aGlzLl90b3RhbFdpZHRoLGk9KG49KHRoaXMuX3N0cmVhbVBlcmNlbnRhZ2V8fDApKnQpPT09dD8iMHB4IjoiMXB4IiwwPT09KHM9ZS5maW5kKCIuYmciKSkubGVuZ3RoPyhvPSJib3JkZXItcmlnaHQtd2lkdGg6ICIraSsiOyB3aWR0aDogIituKyJweCIsZS5hcHBlbmQoIjxkaXYgY2xhc3M9J2JnJyBzdHlsZT1cIiIrbysnIj4mbmJzcDs8L2Rpdj4nKSk6cy5jc3MoImJvcmRlci1yaWdodC13aWR0aCIsaSkud2lkdGgobi0yKSkpfSxfZG9jazpmdW5jdGlvbigpe3ZhciBlLHQsbixpLHMsbyxyLGEsbCx1LGMsZCxwPSQodGhpcy5lbGVtZW50KTtwJiYwIT09cC5sZW5ndGgmJihlPSQoImh0bWwiKSx0PXdpbmRvdy5wYWdlWU9mZnNldHx8ZS5zY3JvbGxUb3AoKSxuPXRoaXMuc2l0ZS5tb2JpbGVWaWV3PzA6JCgiI3RvcGljLXByb2dyZXNzIikub3V0ZXJIZWlnaHQoKSxvPShpPSQoIiN0b3BpYy1ib3R0b20iKS5vZmZzZXQoKS50b3ArbiktJCh3aW5kb3cpLmhlaWdodCgpKyhzPSQoIiNyZXBseS1jb250cm9sIikuaGVpZ2h0KCl8fDApPD10LHI9JCgiYm9keSIpLmhlaWdodCgpLWksKGE9JCgiLmZvb3Rlci1uYXYtaXBhZCAuZm9vdGVyLW5hdiIpKSYmMDxhLmxlbmd0aCYmKHIrPWEub3V0ZXJIZWlnaHQoKSksbD1lLmhhc0NsYXNzKCJydGwiKT8ibGVmdCI6InJpZ2h0IiwwPHM/KHU9JCgiLmZvb3Rlci1uYXYtdmlzaWJsZSAuZm9vdGVyLW5hdiIpLGM9JCgiI3JlcGx5LWNvbnRyb2wuZHJhZnQiKSx1Lm91dGVySGVpZ2h0KCkmJmMub3V0ZXJIZWlnaHQoKSYmKHM9Yy5vdXRlckhlaWdodCgpK3Uub3V0ZXJIZWlnaHQoKSkscC5jc3MoImJvdHRvbSIsbz9yOnMpKTpwLmNzcygiYm90dG9tIixvP3I6IiIpLHRoaXMuc2V0KCJkb2NrZWQiLG8pLChkPSQoIiNyZXBseS1jb250cm9sIC5yZXBseS1hcmVhIikpJiYwPGQubGVuZ3RoJiYibGVmdCI9PWw/cC5jc3MobCxkLm9mZnNldCgpLmxlZnQrInB4Iik6cC5jc3MobCwiMWVtIikscC5jc3MoIm1hcmdpbi1ib3R0b20iLCFvJiY0MDxzPyIwcHgiOiIiKSl9LGNsaWNrOmZ1bmN0aW9uKGUpeyQoZS50YXJnZXQpLmNsb3Nlc3QoIiN0b3BpYy1wcm9ncmVzcyIpLmxlbmd0aCYmdGhpcy5zZW5kKCJ0b2dnbGVFeHBhbnNpb24iKX0sYWN0aW9uczp7dG9nZ2xlRXhwYW5zaW9uOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVQcm9wZXJ0eSgiZXhwYW5kZWQiKX0sZ29CYWNrOmZ1bmN0aW9uKCl7dGhpcy5hdHRycy5qdW1wVG9Qb3N0KHRoaXMuZ2V0KCJ0b3BpYy5sYXN0X3JlYWRfcG9zdF9udW1iZXIiKSl9fX0sImp1bXBUb3BEaXNhYmxlZCIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwianVtcFRvcERpc2FibGVkIiksbSksbyhtLCJqdW1wQm90dG9tRGlzYWJsZWQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImp1bXBCb3R0b21EaXNhYmxlZCIpLG0pLG8obSwiaGlkZVByb2dyZXNzIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJoaWRlUHJvZ3Jlc3MiKSxtKSxvKG0sImh1Z2VOdW1iZXJPZlBvc3RzIixbdV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJodWdlTnVtYmVyT2ZQb3N0cyIpLG0pLG8obSwianVtcFRvQm90dG9tVGl0bGUiLFtjXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImp1bXBUb0JvdHRvbVRpdGxlIiksbSksbyhtLCJzaG93QmFja0J1dHRvbiIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwic2hvd0JhY2tCdXR0b24iKSxtKSxvKG0sIl91cGRhdGVCYXIiLFtwXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIl91cGRhdGVCYXIiKSxtKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RvcGljLXN0YXR1cyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBzLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJkaXNhYmxlQWN0aW9ucyIpLHI9KDAsdC5kZWZhdWx0KSgidG9waWMuY2xvc2VkIiwidG9waWMuYXJjaGl2ZWQiKSxhPSgwLHQuZGVmYXVsdCkoInRvcGljLmlzX3dhcm5pbmciKSxsPSgwLHQuZGVmYXVsdCkoInRvcGljLnBpbm5lZCIpLHU9KDAsdC5kZWZhdWx0KSgidG9waWMudW5waW5uZWQiKSxjPSgwLHQuZGVmYXVsdCkoInRvcGljLmludmlzaWJsZSIpLGkoZD17Y2xhc3NOYW1lczpbInRvcGljLXN0YXR1c2VzIl0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIHRoaXMuY2FuQWN0JiYkKGUudGFyZ2V0KS5oYXNDbGFzcygiZC1pY29uLXRodW1idGFjayIpJiYoKHQ9dGhpcy50b3BpYykuZ2V0KCJwaW5uZWQiKT90LmNsZWFyUGluKCk6dC5yZVBpbigpKSwhMX0sY2FuQWN0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyJiYhZX0sdG9waWNDbG9zZWRBcmNoaXZlZDpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0Pyh0aGlzLl9zZXQoImNsb3NlZEFyY2hpdmVkIiwibG9jayIsImxvY2tlZF9hbmRfYXJjaGl2ZWQiKSx0aGlzLl9yZXNldCgiY2xvc2VkIiksdGhpcy5fcmVzZXQoImFyY2hpdmVkIiksITApOih0aGlzLl9yZXNldCgiY2xvc2VkQXJjaGl2ZWQiKSxlP3RoaXMuX3NldCgiY2xvc2VkIiwibG9jayIsImxvY2tlZCIpOnRoaXMuX3Jlc2V0KCJjbG9zZWQiKSx0P3RoaXMuX3NldCgiYXJjaGl2ZWQiLCJsb2NrIiwiYXJjaGl2ZWQiKTp0aGlzLl9yZXNldCgiYXJjaGl2ZWQiKSwhMSl9LHRvcGljV2FybmluZzpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoIndhcm5pbmciLCJlbnZlbG9wZSIsIndhcm5pbmciKTp0aGlzLl9yZXNldCgid2FybmluZyIpfSx0b3BpY1Bpbm5lZDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoInBpbm5lZCIsInRodW1idGFjayIsInBpbm5lZCIpOnRoaXMuX3Jlc2V0KCJwaW5uZWQiKX0sdG9waWNVbnBpbm5lZDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLl9zZXQoInVucGlubmVkIiwidGh1bWJ0YWNrIiwidW5waW5uZWQiLHtjbGFzczoidW5waW5uZWQifSk6dGhpcy5fcmVzZXQoInVucGlubmVkIil9LHRvcGljSW52aXNpYmxlOmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuX3NldCgiaW52aXNpYmxlIiwiZmFyLWV5ZS1zbGFzaCIsInVubGlzdGVkIik6dGhpcy5fcmVzZXQoImludmlzaWJsZSIpfSxfc2V0OmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOm51bGw7cmV0dXJuIHRoaXMuc2V0KGUrIkljb24iLCgwLG8uaWNvbkhUTUwpKCIiK3QscykuaHRtbFNhZmUoKSksdGhpcy5zZXQoZSsiVGl0bGUiLEkxOG4udCgidG9waWNfc3RhdHVzZXMuIituKyIuaGVscCIpKSwhMH0sX3Jlc2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNldChlKyJJY29uIixudWxsKSx0aGlzLnNldChlKyJUaXRsZSIsbnVsbCksITF9fSwiY2FuQWN0Iixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJjYW5BY3QiKSxkKSxpKGQsInRvcGljQ2xvc2VkQXJjaGl2ZWQiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljQ2xvc2VkQXJjaGl2ZWQiKSxkKSxpKGQsInRvcGljV2FybmluZyIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwidG9waWNXYXJuaW5nIiksZCksaShkLCJ0b3BpY1Bpbm5lZCIsW2xdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwidG9waWNQaW5uZWQiKSxkKSxpKGQsInRvcGljVW5waW5uZWQiLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsInRvcGljVW5waW5uZWQiKSxkKSxpKGQsInRvcGljSW52aXNpYmxlIixbY10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLCJ0b3BpY0ludmlzaWJsZSIpLGQpLGQpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGltZWxpbmUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlL21peGlucy9kb2NraW5nIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9vcHRpb25hbC1zZXJ2aWNlIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBhLGwsdTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZnVuY3Rpb24gZCgpe3ZhciBlPXBhcnNlSW50KCQoIiNtYWluLW91dGxldCIpLmNzcygicGFkZGluZy10b3AiKSwxMCkrMyx0PSQoIi5mb290ZXItbmF2LWlwYWQgLmZvb3Rlci1uYXYiKS5oZWlnaHQoKTtyZXR1cm4gdCYmKGUrPXQpLGV9ZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoaS5kZWZhdWx0LChhPSgwLHMub2JzZXJ2ZXMpKCJ0b3BpYy5oaWdoZXN0X3Bvc3RfbnVtYmVyIiwibG9hZGluZyIpLGw9KDAscy5vYnNlcnZlcykoInRvcGljLmRldGFpbHMubm90aWZpY2F0aW9uX2xldmVsIikscih1PXthZG1pblRvb2xzOigwLG8uZGVmYXVsdCkoKSx3aWRnZXQ6InRvcGljLXRpbWVsaW5lLWNvbnRhaW5lciIsZG9ja0JvdHRvbTpudWxsLGRvY2tBdDpudWxsLGJ1aWxkQXJnczpmdW5jdGlvbigpe3ZhciBlPXt0b3BpYzp0aGlzLnRvcGljLG5vdGlmaWNhdGlvbkxldmVsOnRoaXMubm90aWZpY2F0aW9uTGV2ZWwsdG9waWNUcmFja2luZ1N0YXRlOnRoaXMudG9waWNUcmFja2luZ1N0YXRlLGVudGVyZWRJbmRleDp0aGlzLmVudGVyZWRJbmRleCxkb2NrQXQ6dGhpcy5kb2NrQXQsZG9ja0JvdHRvbTp0aGlzLmRvY2tCb3R0b20sbW9iaWxlVmlldzp0aGlzLmdldCgic2l0ZS5tb2JpbGVWaWV3Iil9LHQ9dGhpcy5wcmV2RXZlbnQ7cmV0dXJuIHQmJihlLmVudGVyZWRJbmRleD10LnBvc3RJbmRleC0xKSx0aGlzLmZ1bGxzY3JlZW4/KGUuZnVsbFNjcmVlbj0hMCxlLmFkZFNob3dDbGFzcz10aGlzLmFkZFNob3dDbGFzcyk6ZS50b3A9dGhpcy5kb2NrQXR8fGQoKSxlfSxuZXdQb3N0QWRkZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMucXVldWVSZXJlbmRlcihmdW5jdGlvbigpe3JldHVybiBlLnF1ZXVlRG9ja0NoZWNrKCl9KX0sX3F1ZXVlUmVyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sZG9ja0NoZWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIiNtYWluIikub2Zmc2V0KCksbj10P3QudG9wOjAsaT0kKCIuY29udGFpbmVyLnBvc3RzIikub2Zmc2V0KCkudG9wLW4scz0kKCIjdG9waWMtYm90dG9tIikub2Zmc2V0KCkudG9wLSQoIiNtYWluLW91dGxldCIpLm9mZnNldCgpLnRvcCxvPXRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yKCIudGltZWxpbmUtY29udGFpbmVyIikscj1vJiZvLm9mZnNldEhlaWdodHx8NDAwLGE9JCgiLnRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIpLm91dGVySGVpZ2h0KCEwKXx8MCxsPXRoaXMuZG9ja0F0LHU9ZCgpK2Uub2Zmc2V0KCksYz11K3I7dGhpcy5kb2NrQm90dG9tPSExLHU8aT90aGlzLmRvY2tBdD1wYXJzZUludChpLDEwKTpzK2E8Yz8odGhpcy5kb2NrQXQ9cGFyc2VJbnQocy1yK2EsMTApLHRoaXMuZG9ja0JvdHRvbT0hMCx0aGlzLmRvY2tBdDwwJiYodGhpcy5kb2NrQXQ9MCkpOih0aGlzLmRvY2tBdD1udWxsLHRoaXMuZmFzdERvY2tBdD1wYXJzZUludChzLXIrYS1uLDEwKSksdGhpcy5kb2NrQXQhPT1sJiZ0aGlzLnF1ZXVlUmVyZW5kZXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuZnVsbHNjcmVlbiYmIXRoaXMuYWRkU2hvd0NsYXNzJiYoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7ZS5zZXQoImFkZFNob3dDbGFzcyIsITApLGUucXVldWVSZXJlbmRlcigpfSksdGhpcy5kaXNwYXRjaCgidG9waWM6Y3VycmVudC1wb3N0LXNjcm9sbGVkIiwidGltZWxpbmUtc2Nyb2xsYXJlYSIpLHRoaXMuZGlzcGF0Y2goInRvcGljOnRvZ2dsZS1hY3Rpb25zIiwidG9waWMtYWRtaW4tbWVudS1idXR0b24iKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpvcGVuZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSx0aGlzLmFwcEV2ZW50cy5vbigiY29tcG9zZXI6cmVzaXplZCIsdGhpcyx0aGlzLnF1ZXVlUmVyZW5kZXIpLHRoaXMuYXBwRXZlbnRzLm9uKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSl9LHdpbGxEZXN0cm95RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNpdGUubW9iaWxlVmlld3x8KHRoaXMuYXBwRXZlbnRzLm9mZigiY29tcG9zZXI6b3BlbmVkIix0aGlzLHRoaXMucXVldWVSZXJlbmRlciksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpyZXNpemVkIix0aGlzLHRoaXMucXVldWVSZXJlbmRlciksdGhpcy5hcHBFdmVudHMub2ZmKCJjb21wb3NlcjpjbG9zZWQiLHRoaXMsdGhpcy5xdWV1ZVJlcmVuZGVyKSl9fSwibmV3UG9zdEFkZGVkIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJuZXdQb3N0QWRkZWQiKSx1KSxyKHUsIl9xdWV1ZVJlcmVuZGVyIixbbF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LCJfcXVldWVSZXJlbmRlciIpLHUpLHUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGltZXItaW5mbyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9lZGl0LXRvcGljLXRpbWVyIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLHQsYyxuLGksZCxzLHApeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciByLGEsbDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoKHI9KDAsdC5kZWZhdWx0KSgic3RhdHVzVHlwZSIpLGE9KDAsdC5kZWZhdWx0KSgiY2FuUmVtb3ZlVGltZXIiLCJyZW1vdmVUb3BpY1RpbWVyIiksbyhsPXtjbGFzc05hbWVzOlsidG9waWMtc3RhdHVzLWluZm8iXSxfZGVsYXllZFJlcmVuZGVyOm51bGwsY2xvY2tJY29uOigiIisoMCxpLmljb25IVE1MKSgiZmFyLWNsb2NrIikpLmh0bWxTYWZlKCksdHJhc2hDYW5JY29uOigiIisoMCxpLmljb25IVE1MKSgidHJhc2gtYWx0IikpLmh0bWxTYWZlKCksdHJhc2hDYW5UaXRsZTpJMThuLnQoInBvc3QuY29udHJvbHMucmVtb3ZlX3RpbWVyIiksdGl0bGU6bnVsbCxub3RpY2U6bnVsbCxzaG93VG9waWNUaW1lcjpudWxsLGNhblJlbW92ZVRpbWVyOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09cy5SRU1JTkRFUl9UWVBFfHx0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgiY2FuTWFuYWdlVG9waWMiKX0sc2hvd1RyYXNoQ2FuOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnR9LHJlbmRlclRvcGljVGltZXI6ZnVuY3Rpb24oKXt2YXIgZSx0LG4saSxzLG8scixhLGwsdT10aGlzOyF0aGlzLmV4ZWN1dGVBdHx8dGhpcy5leGVjdXRlQXQ8bW9tZW50KCk/dGhpcy5zZXQoInNob3dUb3BpY1RpbWVyIixudWxsKTooZT10aGlzLnRvcGljQ2xvc2VkPyJjbG9zZSI6Im9wZW4iLHZvaWQgMCE9PXRoaXMudG9waWNDbG9zZWQmJmU9PT10aGlzLnN0YXR1c1R5cGV8fCh0PW1vbWVudCh0aGlzLmV4ZWN1dGVBdCksMDwoaT0obj1tb21lbnQuZHVyYXRpb24odC1tb21lbnQoKSkpLmFzTWludXRlcygpKT8ocz0xZTMsMjE2MDxpP3M9NDMyZTU6MTQxMDxpP3M9MzZlNTo5MDxpP3M9MThlNToyPGkmJihzPTZlNCksbz10aGlzLmR1cmF0aW9ufHwwLGw9e3RpbWVMZWZ0Om4uaHVtYW5pemUoITApLGR1cmF0aW9uOm1vbWVudC5kdXJhdGlvbihvLCJob3VycyIpLmh1bWFuaXplKCl9LChyPXRoaXMuY2F0ZWdvcnlJZCkmJihhPWQuZGVmYXVsdC5maW5kQnlJZChyKSxsPU9iamVjdC5hc3NpZ24oe2NhdGVnb3J5TmFtZTphLmdldCgic2x1ZyIpLGNhdGVnb3J5VXJsOmEuZ2V0KCJ1cmwiKX0sbCkpLHRoaXMuc2V0UHJvcGVydGllcyh7dGl0bGU6KCIiK21vbWVudCh0aGlzLmV4ZWN1dGVBdCkuZm9ybWF0KCJMTExMIikpLmh0bWxTYWZlKCksbm90aWNlOigiIitJMThuLnQodGhpcy5fbm90aWNlS2V5KCksbCkpLmh0bWxTYWZlKCksc2hvd1RvcGljVGltZXI6ITB9KSwidGVzdCIhPT1wLmRlZmF1bHQuZW52aXJvbm1lbnQmJih0aGlzLl9kZWxheWVkUmVyZW5kZXI9KDAsYy5sYXRlcikoZnVuY3Rpb24oKXt1LnJlbmRlclRvcGljVGltZXIoKX0scykpKTp0aGlzLnNldCgic2hvd1RvcGljVGltZXIiLG51bGwpKSl9LGRpZFJlY2VpdmVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbmRlclRvcGljVGltZXIoKX0sZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnJlbW92ZVRvcGljVGltZXImJiQodGhpcy5lbGVtZW50KS5vbigiY2xpY2sudG9waWMtdGltZXItcmVtb3ZlIiwiYnV0dG9uIix0aGlzLnJlbW92ZVRvcGljVGltZXIpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXskKHRoaXMuZWxlbWVudCkub2ZmKCJjbGljay50b3BpYy10aW1lci1yZW1vdmUiLHRoaXMucmVtb3ZlVG9waWNUaW1lciksdGhpcy5fZGVsYXllZFJlcmVuZGVyJiYoMCxjLmNhbmNlbCkodGhpcy5fZGVsYXllZFJlcmVuZGVyKX0sX25vdGljZUtleTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdHVzVHlwZTtyZXR1cm4gdGhpcy5iYXNlZE9uTGFzdFBvc3Q/InRvcGljLnN0YXR1c191cGRhdGVfbm90aWNlLmF1dG9fIitlKyJfYmFzZWRfb25fbGFzdF9wb3N0IjoidG9waWMuc3RhdHVzX3VwZGF0ZV9ub3RpY2UuYXV0b18iK2V9fSwiY2FuUmVtb3ZlVGltZXIiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsImNhblJlbW92ZVRpbWVyIiksbCksbyhsLCJzaG93VHJhc2hDYW4iLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInNob3dUcmFzaENhbiIpLGwpLGwpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdG9waWMtdGl0bGUiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbWl4aW5zL2tleS1lbnRlci1lc2NhcGUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse2VsZW1lbnRJZDoidG9waWMtdGl0bGUifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3RyYWNrLXNlbGVjdGVkIixbImV4cG9ydHMiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjLGQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKChpPSgwLG4ub2JzZXJ2ZXMpKCJzZWxlY3RlZCIpLHI9cz17dGFnTmFtZToic3BhbiIsc2VsZWN0aW9uQ2hhbmdlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2VsZWN0ZWQsdD10aGlzLnNlbGVjdGVkTGlzdCxuPXRoaXMuc2VsZWN0ZWRJZDtlP3QuYWRkT2JqZWN0KG4pOnQucmVtb3ZlT2JqZWN0KG4pfX0sYT0ic2VsZWN0aW9uQ2hhbmdlZCIsbD1baV0sbz0obz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInNlbGVjdGlvbkNoYW5nZWQiKSk/by52YWx1ZTp2b2lkIDAsdT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gb319LGM9cyxkPXt9LE9iamVjdC5rZXlzKHUpLmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT11W2VdfSksZC5lbnVtZXJhYmxlPSEhZC5lbnVtZXJhYmxlLGQuY29uZmlndXJhYmxlPSEhZC5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBkfHxkLmluaXRpYWxpemVyKSYmKGQud3JpdGFibGU9ITApLGQ9bC5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChyLGEsZSl8fGV9LGQpLGMmJnZvaWQgMCE9PWQuaW5pdGlhbGl6ZXImJihkLnZhbHVlPWQuaW5pdGlhbGl6ZXI/ZC5pbml0aWFsaXplci5jYWxsKGMpOnZvaWQgMCxkLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09ZC5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEsZCksZD1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItYmFkZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJjb3VudCIpLG89KDAsdC5kZWZhdWx0KSgiYmFkZ2UiLCJ1c2VyIiksaShyPXt0YWdOYW1lOiJzcGFuIixzaG93R3JhbnRDb3VudDpmdW5jdGlvbihlKXtyZXR1cm4gZSYmMTxlfSxiYWRnZVVybDpmdW5jdGlvbigpe3ZhciBlPSIiIT09KGU9dGhpcy5nZXQoInVzZXIudXNlcm5hbWVfbG93ZXIiKXx8IiIpPyI/dXNlcm5hbWU9IitlOiIiO3JldHVybiB0aGlzLmdldCgiYmFkZ2UudXJsIikrZX19LCJzaG93R3JhbnRDb3VudCIsW3NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2hvd0dyYW50Q291bnQiKSxyKSxpKHIsImJhZGdlVXJsIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJiYWRnZVVybCIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1jYXJkLWNvbnRlbnRzIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL2Nhbi1jaGVjay1lbWFpbHMiLCJkaXNjb3Vyc2UvbWl4aW5zL2NhcmQtY29udGVudHMtYmFzZSIsImRpc2NvdXJzZS9taXhpbnMvY2xlYW5zLXVwIiwiZGlzY291cnNlL2xpYi9zZXR0aW5ncyIsIkBlbWJlci9hcHBsaWNhdGlvbiJdLGZ1bmN0aW9uKGUsaSx0LHMsbixvLHIsYSxsLHUsYyxkLHAsbSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGYobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIGgsYixnLHYseSxfLHcseCxrLFAsaixULEUsTyxTLEMsTTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoYy5kZWZhdWx0LHUuZGVmYXVsdCxkLmRlZmF1bHQsKGg9KDAsby5kZWZhdWx0KSgidXNlci5zdGFmZiIpLGI9KDAsby5kZWZhdWx0KSgidXNlci50cnVzdF9sZXZlbCIpLGc9KDAsby5kZWZhdWx0KSgidXNlci5uYW1lIiksdj0oMCxvLmRlZmF1bHQpKCJ1c2VybmFtZSIpLHk9KDAsby5kZWZhdWx0KSgidXNlcm5hbWUiLCJ0b3BpY1Bvc3RDb3VudCIpLF89KDAsby5kZWZhdWx0KSgidXNlci51c2VyX2ZpZWxkcy5AZWFjaC52YWx1ZSIpLHc9KDAsby5kZWZhdWx0KSgidXNlci50cnVzdF9sZXZlbCIpLHg9KDAsby5kZWZhdWx0KSgidXNlci5iYWRnZV9jb3VudCIsInVzZXIuZmVhdHVyZWRfdXNlcl9iYWRnZXMubGVuZ3RoIiksaz0oMCxvLmRlZmF1bHQpKCJ1c2VyLnRpbWVfcmVhZCIsInVzZXIucmVjZW50X3RpbWVfcmVhZCIpLFA9KDAsby5kZWZhdWx0KSgidXNlci5yZWNlbnRfdGltZV9yZWFkIiksaj0oMCxvLmRlZmF1bHQpKCJzaG93UmVjZW50VGltZVJlYWQiLCJ1c2VyLnRpbWVfcmVhZCIsInJlY2VudFRpbWVSZWFkIiksVD0oMCxvLm9ic2VydmVzKSgidXNlci5jYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCIpLGYoRT17ZWxlbWVudElkOiJ1c2VyLWNhcmQiLGNsYXNzTmFtZXM6InVzZXItY2FyZCIsdHJpZ2dlcmluZ0xpbmtDbGFzczoibWVudGlvbiIsY2xhc3NOYW1lQmluZGluZ3M6WyJ2aXNpYmxlOnNob3ciLCJzaG93QmFkZ2VzIiwidXNlci5jYXJkX2JhY2tncm91bmQ6Om5vLWJnIiwiaXNGaXhlZDpmaXhlZCIsInVzZXJuYW1lQ2xhc3MiXSxhbGxvd0JhY2tncm91bmRzOigwLGEuc2V0dGluZykoImFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHMiKSxzaG93QmFkZ2VzOigwLGEuc2V0dGluZykoImVuYWJsZV9iYWRnZXMiKSxwb3N0U3RyZWFtOigwLHQuYWxpYXMpKCJ0b3BpYy5wb3N0U3RyZWFtIiksZW5vdWdoUG9zdHNGb3JGaWx0ZXJpbmc6KDAsdC5ndGUpKCJ0b3BpY1Bvc3RDb3VudCIsMiksc2hvd0ZpbHRlcjooMCx0LmFuZCkoInZpZXdpbmdUb3BpYyIsInBvc3RTdHJlYW0uaGFzTm9GaWx0ZXJzIiwiZW5vdWdoUG9zdHNGb3JGaWx0ZXJpbmciKSxzaG93TmFtZTooMCxhLnByb3BlcnR5Tm90RXF1YWwpKCJ1c2VyLm5hbWUiLCJ1c2VyLnVzZXJuYW1lIiksaGFzVXNlckZpbHRlcnM6KDAsdC5ndCkoInBvc3RTdHJlYW0udXNlckZpbHRlcnMubGVuZ3RoIiwwKSxzaG93TW9yZUJhZGdlczooMCx0Lmd0KSgibW9yZUJhZGdlc0NvdW50IiwwKSxzaG93RGVsZXRlOigwLHQuYW5kKSgidmlld2luZ0FkbWluIiwic2hvd05hbWUiLCJ1c2VyLmNhbkJlRGVsZXRlZCIpLGxpbmtXZWJzaXRlOigwLHQubm90KSgidXNlci5pc0Jhc2ljIiksaGFzTG9jYXRpb25PcldlYnNpdGU6KDAsdC5vcikoInVzZXIubG9jYXRpb24iLCJ1c2VyLndlYnNpdGVfbmFtZSIpLGlzU3VzcGVuZGVkT3JIYXNCaW86KDAsdC5vcikoInVzZXIuc3VzcGVuZF9yZWFzb24iLCJ1c2VyLmJpb19jb29rZWQiKSxzaG93Q2hlY2tFbWFpbDooMCx0LmFuZCkoInVzZXIuc3RhZ2VkIiwiY2FuQ2hlY2tFbWFpbHMiKSx1c2VyOm51bGwsdG9waWNQb3N0Q291bnQ6bnVsbCxzaG93RmVhdHVyZWRUb3BpYzooMCx0LmFuZCkoInVzZXIuZmVhdHVyZWRfdG9waWMiLCJzaXRlU2V0dGluZ3MuYWxsb3dfZmVhdHVyZWRfdG9waWNfb25fdXNlcl9wcm9maWxlcyIpLHN0YWZmOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJzdGFmZiI6IiJ9LG5ld1VzZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lPyJuZXctdXNlciI6IiJ9LG5hbWVGaXJzdDpmdW5jdGlvbihlKXtyZXR1cm4oMCxwLnByaW9yaXRpemVOYW1lSW5VeCkoZSx0aGlzLnNpdGVTZXR0aW5ncyl9LHVzZXJuYW1lQ2xhc3M6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InVzZXItY2FyZC0iK2U6IiJ9LHRvZ2dsZVBvc3RzTGFiZWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSTE4bi50KCJ0b3BpYy5maWx0ZXJfdG8iLHt1c2VybmFtZTplLGNvdW50OnR9KX0scHVibGljVXNlckZpZWxkczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc2l0ZS5nZXQoInVzZXJfZmllbGRzIik7aWYoISgwLGkuaXNFbXB0eSkoZSkpe3ZhciBuPXRoaXMuZ2V0KCJ1c2VyLnVzZXJfZmllbGRzIik7cmV0dXJuIGUuZmlsdGVyQnkoInNob3dfb25fdXNlcl9jYXJkIiwhMCkuc29ydEJ5KCJwb3NpdGlvbiIpLm1hcChmdW5jdGlvbihlKXsoMCxzLnNldCkoZSwiZGFzaGVyaXplZF9uYW1lIixlLmdldCgibmFtZSIpLmRhc2hlcml6ZSgpKTt2YXIgdD1uP25bZS5nZXQoImlkIildOm51bGw7cmV0dXJuKDAsaS5pc0VtcHR5KSh0KT9udWxsOnMuZGVmYXVsdC5jcmVhdGUoe3ZhbHVlOnQsZmllbGQ6ZX0pfSkuY29tcGFjdCgpfX0scmVtb3ZlTm9Gb2xsb3c6ZnVuY3Rpb24oZSl7cmV0dXJuIDI8ZSYmIXRoaXMuc2l0ZVNldHRpbmdzLnRsM19saW5rc19ub19mb2xsb3d9LG1vcmVCYWRnZXNDb3VudDpmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9LHNob3dSZWNlbnRUaW1lUmVhZDpmdW5jdGlvbihlLHQpe3JldHVybiBlIT09dCYmMCE9PXR9LHJlY2VudFRpbWVSZWFkOmZ1bmN0aW9uKGUpe3JldHVybigwLGwuZHVyYXRpb25UaW55KShlKX0sdGltZVJlYWRUb29sdGlwOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT9JMThuLnQoInRpbWVfcmVhZF9yZWNlbnRseV90b29sdGlwIix7dGltZV9yZWFkOigwLGwuZHVyYXRpb25UaW55KSh0KSxyZWNlbnRfdGltZV9yZWFkOm59KTpJMThuLnQoInRpbWVfcmVhZF90b29sdGlwIix7dGltZV9yZWFkOigwLGwuZHVyYXRpb25UaW55KSh0KX0pfSxhZGRCYWNrZ3JvdW5kOmZ1bmN0aW9uKCl7dmFyIGUsdCxuOyF0aGlzLmFsbG93QmFja2dyb3VuZHN8fChlPXRoaXMuZWxlbWVudCkmJih0PXRoaXMuZ2V0KCJ1c2VyLmNhcmRfYmFja2dyb3VuZF91cGxvYWRfdXJsIiksbj0oMCxpLmlzRW1wdHkpKHQpPyIiOiJ1cmwoIitEaXNjb3Vyc2UuZ2V0VVJMV2l0aENETih0KSsiKSIsZS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9bil9LF9zaG93Q2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO3RoaXMuX3Bvc2l0aW9uQ2FyZCh0KSx0aGlzLnNldFByb3BlcnRpZXMoe3Zpc2libGU6ITAsbG9hZGluZzohMH0pO3ZhciBpPXtmb3JDYXJkOnRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uZXdfdXNlcl9jYXJkX3JvdXRlLGluY2x1ZGVfcG9zdF9jb3VudF9mb3I6dGhpcy5nZXQoInRvcGljLmlkIil9O3IuZGVmYXVsdC5maW5kQnlVc2VybmFtZShlLGkpLnRoZW4oZnVuY3Rpb24oZSl7ZS50b3BpY19wb3N0X2NvdW50JiZuLnNldCgidG9waWNQb3N0Q291bnQiLGUudG9waWNfcG9zdF9jb3VudFtpLmluY2x1ZGVfcG9zdF9jb3VudF9mb3JdKSxuLnNldFByb3BlcnRpZXMoe3VzZXI6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbi5fY2xvc2UoKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyZXR1cm4gbi5zZXQoImxvYWRpbmciLG51bGwpfSl9LF9jbG9zZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNldFByb3BlcnRpZXMoe3VzZXI6bnVsbCx0b3BpY1Bvc3RDb3VudDpudWxsfSl9LGNsZWFuVXA6ZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSxhY3Rpb25zOntjbG9zZTpmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCl9LGNvbXBvc2VQTTpmdW5jdGlvbihlLHQpe3RoaXMuX2Nsb3NlKCksKDAsbS5nZXRPd25lcikodGhpcykubG9va3VwKCJyb3V0ZXI6bWFpbiIpLnNlbmQoImNvbXBvc2VQcml2YXRlTWVzc2FnZSIsZSx0KX0sY2FuY2VsRmlsdGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wb3N0U3RyZWFtO2UuY2FuY2VsRmlsdGVyKCksZS5yZWZyZXNoKCksdGhpcy5fY2xvc2UoKX0sdG9nZ2xlUG9zdHM6ZnVuY3Rpb24oKXt0aGlzLnRvZ2dsZVBvc3RzKHRoaXMudXNlciksdGhpcy5fY2xvc2UoKX0sZGVsZXRlVXNlcjpmdW5jdGlvbigpe3RoaXMudXNlci5kZWxldGUoKSx0aGlzLl9jbG9zZSgpfSxzaG93VXNlcjpmdW5jdGlvbihlKXt0aGlzLnNob3dVc2VyKGUpLHRoaXMuX2Nsb3NlKCl9LGNoZWNrRW1haWw6ZnVuY3Rpb24oZSl7ZS5jaGVja0VtYWlsKCl9fX0sInN0YWZmIixbaF0sKE89KE89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJzdGFmZiIpKT9PLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gT319KSxFKSxmKEUsIm5ld1VzZXIiLFtiXSwoUz0oUz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsIm5ld1VzZXIiKSk/Uy52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIFN9fSksRSksZihFLCJuYW1lRmlyc3QiLFtnXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsIm5hbWVGaXJzdCIpLEUpLGYoRSwidXNlcm5hbWVDbGFzcyIsW3ZdLChDPShDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRSwidXNlcm5hbWVDbGFzcyIpKT9DLnZhbHVlOnZvaWQgMCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KSxFKSxmKEUsInRvZ2dsZVBvc3RzTGFiZWwiLFt5XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInRvZ2dsZVBvc3RzTGFiZWwiKSxFKSxmKEUsInB1YmxpY1VzZXJGaWVsZHMiLFtfXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInB1YmxpY1VzZXJGaWVsZHMiKSxFKSxmKEUsInJlbW92ZU5vRm9sbG93Iixbd10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJyZW1vdmVOb0ZvbGxvdyIpLEUpLGYoRSwibW9yZUJhZGdlc0NvdW50IixbeF0sKE09KE09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFLCJtb3JlQmFkZ2VzQ291bnQiKSk/TS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIE19fSksRSksZihFLCJzaG93UmVjZW50VGltZVJlYWQiLFtrXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInNob3dSZWNlbnRUaW1lUmVhZCIpLEUpLGYoRSwicmVjZW50VGltZVJlYWQiLFtQXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInJlY2VudFRpbWVSZWFkIiksRSksZihFLCJ0aW1lUmVhZFRvb2x0aXAiLFtqXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEUsInRpbWVSZWFkVG9vbHRpcCIpLEUpLGYoRSwiYWRkQmFja2dyb3VuZCIsW1RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRSwiYWRkQmFja2dyb3VuZCIpLEUpLEUpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1maWVsZCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz0oMCx0LmRlZmF1bHQpKCJmaWVsZC5uYW1lIikscyhyPXtjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWZpZWxkIiwiZmllbGQuZmllbGRfdHlwZSIsImN1c3RvbUZpZWxkQ2xhc3MiXSxsYXlvdXROYW1lOigwLGkuZm10KSgiZmllbGQuZmllbGRfdHlwZSIsImNvbXBvbmVudHMvdXNlci1maWVsZHMvJUAiKSxub25lTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4idXNlcl9maWVsZHMubm9uZSJ9LGN1c3RvbUZpZWxkQ2xhc3M6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oZT1lLnJlcGxhY2UoL1xzKy9nLCItIikucmVwbGFjZSgvWyFcIiMkJSYnXChcKVwqXCssXC5cLzo7PD0+XD9cQFxbXFxcXVxeYFx7XHxcfX5dL2csIiIpLnRvTG93ZXJDYXNlKCkpJiYidXNlci1maWVsZC0iK2V9fSwibm9uZUxhYmVsIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsIm5vbmVMYWJlbCIpLHIpLHMociwiY3VzdG9tRmllbGRDbGFzcyIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiY3VzdG9tRmllbGRDbGFzcyIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1mbGFnLXBlcmNlbnRhZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHMsbyxyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJwZXJjZW50YWdlIiksbz0oMCx0LmRlZmF1bHQpKCJhZ3JlZWQiLCJkaXNhZ3JlZWQiLCJpZ25vcmVkIiksaShyPXt0YWdOYW1lOiIiLHNob3dQZXJjZW50YWdlOmZ1bmN0aW9uKGUpe3JldHVybiAzPD1lLnRvdGFsfSxwZXJjZW50YWdlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1lK3QrbixzPXt0b3RhbDppfTswPGkmJihzLmFncmVlZD1NYXRoLnJvdW5kKGUvaSoxMDApLHMuZGlzYWdyZWVkPU1hdGgucm91bmQodC9pKjEwMCkscy5pZ25vcmVkPU1hdGgucm91bmQobi9pKjEwMCkpO3ZhciBvPU1hdGgubWF4KGUsdCxuKTtyZXR1cm4gbz09PWU/KHMuaWNvbj0idGh1bWJzLXVwIixzLmNsYXNzTmFtZT0iYWdyZWVkIixzLmxhYmVsPXMuYWdyZWVkKyIlIik6bz09PXQ/KHMuaWNvbj0idGh1bWJzLWRvd24iLHMuY2xhc3NOYW1lPSJkaXNhZ3JlZWQiLHMubGFiZWw9cy5kaXNhZ3JlZWQrIiUiKToocy5pY29uPSJleHRlcm5hbC1saW5rLWFsdCIscy5jbGFzc05hbWU9Imlnbm9yZWQiLHMubGFiZWw9cy5pZ25vcmVkKyIlIikscy50aXRsZT1JMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2Uuc3VtbWFyeSIse2FncmVlZDpJMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2UuYWdyZWVkIix7Y291bnQ6cy5hZ3JlZWR9KSxkaXNhZ3JlZWQ6STE4bi50KCJyZXZpZXcudXNlcl9wZXJjZW50YWdlLmRpc2FncmVlZCIse2NvdW50OnMuZGlzYWdyZWVkfSksaWdub3JlZDpJMThuLnQoInJldmlldy51c2VyX3BlcmNlbnRhZ2UuaWdub3JlZCIse2NvdW50OnMuaWdub3JlZH0pLGNvdW50Oml9KSxzfX0sInNob3dQZXJjZW50YWdlIixbc10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLCJzaG93UGVyY2VudGFnZSIpLHIpLGkociwicGVyY2VudGFnZSIsW29dLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwicGVyY2VudGFnZSIpLHIpLHIpKX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1pbmZvIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcixhLGw7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXC1cXyBcLl0vZywiIikudG9Mb3dlckNhc2UoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5ub3JtYWxpemU9dSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocj0oMCx0LmRlZmF1bHQpKCJ1c2VyLnVzZXJuYW1lIiksYT0oMCx0LmRlZmF1bHQpKCJ1c2VyLm5hbWUiLCJ1c2VyLnVzZXJuYW1lIiksbyhsPXtjbGFzc05hbWVCaW5kaW5nczpbIjp1c2VyLWluZm8iLCJzaXplIl0sYXR0cmlidXRlQmluZGluZ3M6WyJkYXRhLXVzZXJuYW1lIl0sc2l6ZToic21hbGwiLHVzZXJQYXRoOmZ1bmN0aW9uKGUpe3JldHVybigwLHMudXNlclBhdGgpKGUpfSwiZGF0YS11c2VybmFtZSI6KDAsbi5hbGlhcykoInVzZXIudXNlcm5hbWUiKSxoYXNCbG9jazooMCxuLmFsaWFzKSgidGVtcGxhdGUiKSxuYW1lOmZ1bmN0aW9uKGUsdCl7aWYoZSYmdSh0KSE9PXUoZSkpcmV0dXJuIGV9fSwidXNlclBhdGgiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInVzZXJQYXRoIiksbCksbyhsLCJuYW1lIixbYV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJuYW1lIiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLWxpbmsiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe3RhZ05hbWU6ImEiLGF0dHJpYnV0ZUJpbmRpbmdzOlsiaHJlZiIsImRhdGEtdXNlci1jYXJkIl0saHJlZjooMCx0LmFsaWFzKSgidXNlci5wYXRoIiksImRhdGEtdXNlci1jYXJkIjooMCx0LmFsaWFzKSgidXNlci51c2VybmFtZSIpfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL2NvbXBvbmVudHMvbW91bnQtd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCgoaT0oMCxuLm9ic2VydmVzKSgibm90aWZpY2F0aW9ucy5sZW5ndGgiLCJub3RpZmljYXRpb25zLkBlYWNoLnJlYWQiKSxvPXM9e3dpZGdldDoidXNlci1ub3RpZmljYXRpb25zLWxhcmdlIixpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuYXJncz17bm90aWZpY2F0aW9uczp0aGlzLm5vdGlmaWNhdGlvbnN9fSxfdHJpZ2dlclJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnF1ZXVlUmVyZW5kZXIoKX19LHI9Il90cmlnZ2VyUmVmcmVzaCIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIl90cmlnZ2VyUmVmcmVzaCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc2VsZWN0b3IiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsImRpc2NvdXJzZS9jb21wb25lbnRzL3RleHQtZmllbGQiLCJkaXNjb3Vyc2UvbGliL3VzZXItc2VhcmNoIiwiZGlzY291cnNlL2xpYi9yYXctdGVtcGxhdGVzIl0sZnVuY3Rpb24oZSx0LG4saSx2LHkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLHIsYSxsO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgobz0oMCxuLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50Iikscj0oMCxuLm9uKSgiZGlkSW5zZXJ0RWxlbWVudCIpLGE9KDAsbi5vYnNlcnZlcykoInVzZXJuYW1lcyIpLHMobD17YXV0b2NvcnJlY3Q6ITEsYXV0b2NhcGl0YWxpemU6ITEsbmFtZToidXNlci1zZWxlY3RvciIsY2FuUmVjZWl2ZVVwZGF0ZXM6ITEsc2luZ2xlOiExLGZ1bGxXaWR0aFdyYXA6ITEsaW5pdDpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3Bhc3RlPWZ1bmN0aW9uKGUpe3ZhciB0PSIiO2lmKHdpbmRvdy5jbGlwYm9hcmREYXRhJiZ3aW5kb3cuY2xpcGJvYXJkRGF0YS5nZXREYXRhP3Q9d2luZG93LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgiVGV4dCIpOmUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLmdldERhdGEmJih0PWUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIikpLDA8dC5sZW5ndGgpcmV0dXJuIG4uaW1wb3J0VGV4dCh0KSxlLnByZXZlbnREZWZhdWx0KCksITF9fSxkaWRVcGRhdGVBdHRyczpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNhblJlY2VpdmVVcGRhdGVzJiZ0aGlzLl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSh7dXBkYXRlRGF0YTohMH0pfSxfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlOmZ1bmN0aW9uKCl7JCh0aGlzLmVsZW1lbnQpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5fcGFzdGUpfSxfY3JlYXRlQXV0b2NvbXBsZXRlSW5zdGFuY2U6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt2YXIgdD1pW2VdO3JldHVybiEwPT09dHx8InRydWUiPT09dH1mdW5jdGlvbiBuKCl7dmFyIGU9cD9bXTpzO3JldHVybiByJiZkJiZlLmNvbmNhdChbci51c2VybmFtZV0pLGUuY29uY2F0KGkuZXhjbHVkZWRVc2VybmFtZXN8fFtdKX12YXIgaT10aGlzLHM9W10sbz1bXSxyPXRoaXMuY3VycmVudFVzZXIsYT10KCJpbmNsdWRlTWVudGlvbmFibGVHcm91cHMiKSxsPXQoImluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwcyIpLHU9dCgiaW5jbHVkZUdyb3VwcyIpLGM9dCgiYWxsb3dlZFVzZXJzIiksZD10KCJleGNsdWRlQ3VycmVudFVzZXIiKSxwPXQoInNpbmdsZSIpLG09dCgiYWxsb3dBbnkiKSxmPXQoImRpc2FibGVkIiksaD10KCJhbGxvd0VtYWlscyIpLGI9dCgiZnVsbFdpZHRoV3JhcCIpO3RoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdGhpcy5fcGFzdGUpO3ZhciBnPXRoaXM7JCh0aGlzLmVsZW1lbnQpLnZhbCh0aGlzLnVzZXJuYW1lcykuYXV0b2NvbXBsZXRlKHt0ZW1wbGF0ZTooMCx5LmZpbmRSYXdUZW1wbGF0ZSkoInVzZXItc2VsZWN0b3ItYXV0b2NvbXBsZXRlIiksZGlzYWJsZWQ6ZixzaW5nbGU6cCxhbGxvd0FueTptLHVwZGF0ZURhdGE6ISghZXx8IWUudXBkYXRlRGF0YSkmJmUudXBkYXRlRGF0YSxmdWxsV2lkdGhXcmFwOmIsZGF0YVNvdXJjZTpmdW5jdGlvbihlKXtyZXR1cm4oMCx2LmRlZmF1bHQpKHt0ZXJtOmUsdG9waWNJZDpnLnRvcGljSWQsZXhjbHVkZTpuKCksaW5jbHVkZUdyb3Vwczp1LGFsbG93ZWRVc2VyczpjLGluY2x1ZGVNZW50aW9uYWJsZUdyb3VwczphLGluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwczpsLGdyb3VwTWVtYmVyc09mOmcuZ3JvdXBNZW1iZXJzT2YsYWxsb3dFbWFpbHM6aH0pfSx0cmFuc2Zvcm1Db21wbGV0ZTpmdW5jdGlvbihlKXtpZihlLnVzZXJuYW1lfHxlLm5hbWUpcmV0dXJuIGUudXNlcm5hbWV8fG8ucHVzaChlLm5hbWUpLGUudXNlcm5hbWV8fGUubmFtZTt2YXIgdD1uKCk7cmV0dXJuIGUudXNlcm5hbWVzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4tMT09PXQuaW5kZXhPZihlKX0pfSxvbkNoYW5nZUl0ZW1zOmZ1bmN0aW9uKGUpe3ZhciB0PSExO2U9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuLTE8by5pbmRleE9mKGUpJiYodD0hMCksZS51c2VybmFtZT9lLnVzZXJuYW1lOmV9KTt2YXIgbj1bXTtBcnJheS5pc0FycmF5KGcudXNlcm5hbWVzKT9uPWcudXNlcm5hbWVzOmcudXNlcm5hbWVzJiYobj1nLnVzZXJuYW1lcy5zcGxpdCgiLCIpKSxnLnNldFByb3BlcnRpZXMoe3VzZXJuYW1lczplLmpvaW4oIiwiKSxoYXNHcm91cHM6dH0pLHM9ZSxnLm9uQ2hhbmdlQ2FsbGJhY2smJmcub25DaGFuZ2VDYWxsYmFjayhuLHMpfSxyZXZlcnNlVHJhbnNmb3JtOmZ1bmN0aW9uKGUpe3JldHVybnt1c2VybmFtZTplfX19KX0saW1wb3J0VGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49W107MDwodGhpcy51c2VybmFtZXN8fCIiKS5sZW5ndGgmJihuPXRoaXMudXNlcm5hbWVzLnNwbGl0KCIsIikpLChlfHwiIikuc3BsaXQoL1ssIFxuXSsvKS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyEoMDwoZT1lLnJlcGxhY2UoL15AKy8sIiIpLnRyaW0oKSkubGVuZ3RoKXx8dC5leGNsdWRlZFVzZXJuYW1lcyYmdC5leGNsdWRlZFVzZXJuYW1lcy5pbmNsdWRlcyhlKXx8bi5wdXNoKGUpfSksdGhpcy5zZXQoInVzZXJuYW1lcyIsbi51bmlxKCkuam9pbigiLCIpKSx0aGlzLmNhblJlY2VpdmVVcGRhdGVzfHx0aGlzLl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSh7dXBkYXRlRGF0YTohMH0pfSxfY2xlYXJJbnB1dDpmdW5jdGlvbigpezE8YXJndW1lbnRzLmxlbmd0aCYmKDAsdC5pc0VtcHR5KSh0aGlzLnVzZXJuYW1lcykmJiQodGhpcy5lbGVtZW50KS5wYXJlbnQoKS5maW5kKCJhIikuY2xpY2soKX19LCJfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihsLCJfZGVzdHJveUF1dG9jb21wbGV0ZUluc3RhbmNlIiksbCkscyhsLCJfY3JlYXRlQXV0b2NvbXBsZXRlSW5zdGFuY2UiLFtyXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jcmVhdGVBdXRvY29tcGxldGVJbnN0YW5jZSIpLGwpLHMobCwiX2NsZWFySW5wdXQiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsIl9jbGVhcklucHV0IiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN0YXQiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QvY29tcHV0ZWQiLCJAZW1iZXIvY29tcG9uZW50Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZXM6WyJ1c2VyLXN0YXQiXSx0eXBlOiJudW1iZXIiLGlzTnVtYmVyOigwLHQuZXF1YWwpKCJ0eXBlIiwibnVtYmVyIiksaXNEdXJhdGlvbjooMCx0LmVxdWFsKSgidHlwZSIsImR1cmF0aW9uIil9KX0pLGRlZmluZSgiZGlzY291cnNlL2NvbXBvbmVudHMvdXNlci1zdHJlYW0taXRlbSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2NsYXNzTmFtZUJpbmRpbmdzOlsiOnVzZXItc3RyZWFtLWl0ZW0iLCI6aXRlbSIsIml0ZW0uaGlkZGVuIiwiaXRlbS5kZWxldGVkOmRlbGV0ZWQiLCJtb2RlcmF0b3JBY3Rpb24iXSxtb2RlcmF0b3JBY3Rpb246KDAsbi5wcm9wZXJ0eUVxdWFsKSgiaXRlbS5wb3N0X3R5cGUiLCJzaXRlLnBvc3RfdHlwZXMubW9kZXJhdG9yX2FjdGlvbiIpLGFjdGlvbkRlc2NyaXB0aW9uOigwLGkuYWN0aW9uRGVzY3JpcHRpb24pKCJpdGVtLmFjdGlvbl9jb2RlIiwiaXRlbS5jcmVhdGVkX2F0IiwiaXRlbS5hY3Rpb25fY29kZV93aG8iKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN0cmVhbSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvY29tcG9uZW50IiwiZGlzY291cnNlL21peGlucy9sb2FkLW1vcmUiLCJkaXNjb3Vyc2UvbGliL2NsaWNrLXRyYWNrIiwiZGlzY291cnNlL21vZGVscy9wb3N0IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2RyYWZ0IiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL29iamVjdC9ldmVudGVkIl0sZnVuY3Rpb24oZSx0LG4saSxzLG8scixhLGwsdSxjLGQpeyJ1c2Ugc3RyaWN0Ijt2YXIgcCxtLGYsaCxiLGcsdix5LF87T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKGkuZGVmYXVsdCwocD0oMCxjLm9ic2VydmVzKSgic3RyZWFtLnVzZXIuaWQiKSxtPXtfaW5pdGlhbGl6ZTooMCxkLm9uKSgiaW5pdCIsZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldCgic3RyZWFtLmZpbHRlciIpO2UmJnRoaXMuc2V0KCJjbGFzc05hbWVzIixbInVzZXItc3RyZWFtIiwiZmlsdGVyLSIrZS50b1N0cmluZygpLnJlcGxhY2UoIiwiLCItIildKX0pLGxvYWRpbmc6ITEsZXllbGluZVNlbGVjdG9yOiIudXNlci1zdHJlYW0gLml0ZW0iLGNsYXNzTmFtZXM6WyJ1c2VyLXN0cmVhbSJdLF9zY3JvbGxUb3BPbk1vZGVsQ2hhbmdlOmZ1bmN0aW9uKCl7KDAsdC5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3JldHVybiAkKGRvY3VtZW50KS5zY3JvbGxUb3AoMCl9KX0sX2luc2VydGVkOigwLGQub24pKCJkaWRJbnNlcnRFbGVtZW50IixmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5iaW5kU2Nyb2xsaW5nKHtuYW1lOiJ1c2VyLXN0cmVhbS12aWV3In0pLCQod2luZG93KS5vbigicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2Nyb2xsZWQoKX0pLCQodGhpcy5lbGVtZW50KS5vbigiY2xpY2suZGV0YWlscy1kaXNhYmxlZCIsImRldGFpbHMuZGlzYWJsZWQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KSwkKHRoaXMuZWxlbWVudCkub24oImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5leGNlcnB0IGEiLGZ1bmN0aW9uKGUpe3JldHVybiBzLmRlZmF1bHQudHJhY2tDbGljayhlKX0pfSksX2Rlc3Ryb3llZDooMCxkLm9uKSgid2lsbERlc3Ryb3lFbGVtZW50IixmdW5jdGlvbigpe3RoaXMudW5iaW5kU2Nyb2xsaW5nKCJ1c2VyLXN0cmVhbS12aWV3IiksJCh3aW5kb3cpLnVuYmluZCgicmVzaXplLmRpc2NvdXJzZS1vbi1zY3JvbGwiKSwkKHRoaXMuZWxlbWVudCkub2ZmKCJjbGljay5kZXRhaWxzLWRpc2FibGVkIiwiZGV0YWlscy5kaXNhYmxlZCIpLCQodGhpcy5lbGVtZW50KS5vZmYoImNsaWNrLmRpc2NvdXJzZS1yZWRpcmVjdCIsIi5leGNlcnB0IGEiKX0pLGFjdGlvbnM6e3JlbW92ZUJvb2ttYXJrOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc3RyZWFtO28uZGVmYXVsdC51cGRhdGVCb29rbWFyayhlLmdldCgicG9zdF9pZCIpLCExKS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmUoZSl9KS5jYXRjaChsLnBvcHVwQWpheEVycm9yKX0scmVzdW1lRHJhZnQ6ZnVuY3Rpb24obil7dmFyIGk9KDAsdS5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOmNvbXBvc2VyIik7aS5nZXQoIm1vZGVsLnZpZXdPcGVuIikmJmkuY2xvc2UoKSxuLmdldCgicG9zdFVybCIpP3IuZGVmYXVsdC5yb3V0ZVRvKG4uZ2V0KCJwb3N0VXJsIikpOmEuZGVmYXVsdC5nZXQobi5kcmFmdF9rZXkpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kcmFmdHx8bi5kYXRhO3QmJmkub3Blbih7ZHJhZnQ6dCxkcmFmdEtleTpuLmRyYWZ0X2tleSxkcmFmdFNlcXVlbmNlOmUuZHJhZnRfc2VxdWVuY2V9KX0pLmNhdGNoKGZ1bmN0aW9uKGUpeygwLGwucG9wdXBBamF4RXJyb3IpKGUpfSl9LHJlbW92ZURyYWZ0OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc3RyZWFtO2EuZGVmYXVsdC5jbGVhcihlLmRyYWZ0X2tleSxlLnNlcXVlbmNlKS50aGVuKGZ1bmN0aW9uKCl7dC5yZW1vdmUoZSl9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxsLnBvcHVwQWpheEVycm9yKShlKX0pfSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5sb2FkaW5nfHwodGhpcy5zZXQoImxvYWRpbmciLCEwKSx0aGlzLnN0cmVhbS5maW5kSXRlbXMoKS50aGVuKGZ1bmN0aW9uKCl7ZS5zZXQoImxvYWRpbmciLCExKSxlLmV5ZWxpbmUuZmx1c2hSZXN0KCl9KSl9fX0saD1tLGI9Il9zY3JvbGxUb3BPbk1vZGVsQ2hhbmdlIixnPVtwXSxmPShmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3Njcm9sbFRvcE9uTW9kZWxDaGFuZ2UiKSk/Zi52YWx1ZTp2b2lkIDAsdj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsaW5pdGlhbGl6ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZn19LHk9bSxfPXt9LE9iamVjdC5rZXlzKHYpLmZvckVhY2goZnVuY3Rpb24oZSl7X1tlXT12W2VdfSksXy5lbnVtZXJhYmxlPSEhXy5lbnVtZXJhYmxlLF8uY29uZmlndXJhYmxlPSEhXy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBffHxfLmluaXRpYWxpemVyKSYmKF8ud3JpdGFibGU9ITApLF89Zy5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChoLGIsZSl8fGV9LF8pLHkmJnZvaWQgMCE9PV8uaW5pdGlhbGl6ZXImJihfLnZhbHVlPV8uaW5pdGlhbGl6ZXI/Xy5pbml0aWFsaXplci5jYWxsKHkpOnZvaWQgMCxfLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Xy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLGIsXyksXz1udWxsKSxtKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS1jYXRlZ29yeS1zZWFyY2giLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9jb21wb25lbnQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBpLHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoInVzZXIiLCJjYXRlZ29yeSIpLG89cz17dGFnTmFtZToiIixzZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4iQCIrdGhpcy5nZXQoInVzZXIudXNlcm5hbWUiKSsiICMiK3RoaXMuZ2V0KCJjYXRlZ29yeS5zbHVnIil9fSxyPSJzZWFyY2hQYXJhbXMiLGE9W2ldLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzZWFyY2hQYXJhbXMiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN1bW1hcnktc2VjdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y2xhc3NOYW1lczpbInRvcC1zdWItc2VjdGlvbiJdfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS10b3BpYyIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3VzZXItc3VtbWFyeS10b3BpY3MtbGlzdCIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIGkscztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG8scixhLGwsdSxjO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpPSgwLHQuZGVmYXVsdCkoIml0ZW1zLmxlbmd0aCIpLG89cz17dGFnTmFtZToiIixoYXNNb3JlOmZ1bmN0aW9uKGUpe3JldHVybiA2PD1lfX0scj0iaGFzTW9yZSIsYT1baV0sbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImhhc01vcmUiKSx1PXMsYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCkscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlciIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGFnTmFtZToibGkifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9jb21wb25lbnRzL3dhdGNoLXJlYWQiLFsiZXhwb3J0cyIsIkBlbWJlci9jb21wb25lbnQiLCJkaXNjb3Vyc2UvbGliL2lzLWVsZW1lbnQtaW4tdmlld3BvcnQiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7ZGlkSW5zZXJ0RWxlbWVudDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciB0LG49dGhpcy5jdXJyZW50VXNlcjtuJiYoImZhcSIhPT0odD10aGlzLnBhdGgpJiYiZ3VpZGVsaW5lcyIhPT10fHwkKHdpbmRvdykub24oImxvYWQuZmFxIHJlc2l6ZS5mYXEgc2Nyb2xsLmZhcSIsZnVuY3Rpb24oKXshbi5nZXQoInJlYWRfZmFxIikmJigwLGkuZGVmYXVsdCkoJCgiLmNvbnRlbnRzIHAiKS5sYXN0KCkpJiZlLmFjdGlvbigpfSkpfSx3aWxsRGVzdHJveUVsZW1lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksJCh3aW5kb3cpLm9mZigibG9hZC5mYXEgcmVzaXplLmZhcSBzY3JvbGwuZmFxIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yYXctdmlld3MvbGlzdC9wb3N0LWNvdW50LW9yLWJhZGdlcyIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdC9jb21wdXRlZCIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7dmFyIHMsbyxyLGEsbCx1LGM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChzPXtwb3N0Q291bnRzUHJlc2VudDooMCx0Lm9yKSgidG9waWMudW5yZWFkIiwidG9waWMuZGlzcGxheU5ld1Bvc3RzIiksc2hvd0JhZGdlczooMCx0LmFuZCkoInBvc3RCYWRnZXNFbmFibGVkIiwicG9zdENvdW50c1ByZXNlbnQiKSxuZXdEb3RUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJjA8dGhpcy5jdXJyZW50VXNlci50cnVzdF9sZXZlbD8iIjpJMThuLnQoImZpbHRlcnMubmV3Lmxvd2VyX3RpdGxlIil9fSxvPXMscj0ibmV3RG90VGV4dCIsYT1baS5kZWZhdWx0XSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocywibmV3RG90VGV4dCIpLHU9cyxjPXt9LE9iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oZSl7Y1tlXT1sW2VdfSksYy5lbnVtZXJhYmxlPSEhYy5lbnVtZXJhYmxlLGMuY29uZmlndXJhYmxlPSEhYy5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBjfHxjLmluaXRpYWxpemVyKSYmKGMud3JpdGFibGU9ITApLGM9YS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChvLHIsZSl8fGV9LGMpLHUmJnZvaWQgMCE9PWMuaW5pdGlhbGl6ZXImJihjLnZhbHVlPWMuaW5pdGlhbGl6ZXI/Yy5pbml0aWFsaXplci5jYWxsKHUpOnZvaWQgMCxjLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09Yy5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLHIsYyksYz1udWxsKSxzKSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yYXctdmlld3MvbGlzdC9wb3N0cy1jb3VudC1jb2x1bW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2NvbXB1dGVkIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIG8scixhLGw7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChvPSgwLHQuZGVmYXVsdCkoInRvcGljLmxpa2VfY291bnQiLCJ0b3BpYy5wb3N0c19jb3VudCIpLHI9KDAsdC5kZWZhdWx0KSgidG9waWMucmVwbHlDb3VudCIsInJhdGlvVGV4dCIpLGE9KDAsdC5kZWZhdWx0KSgicmF0aW8iKSxzKGw9e3RhZ05hbWU6InRkIixyYXRpbzpmdW5jdGlvbihlLHQpe3ZhciBuPXBhcnNlRmxvYXQoZSksaT1wYXJzZUZsb2F0KHQpO3JldHVybiBpPDEwPzA6KG58fDApL2l9LHRpdGxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEkxOG4ubWVzc2FnZUZvcm1hdCgicG9zdHNfbGlrZXNfTUYiLHtjb3VudDplLHJhdGlvOnR9KS50cmltKCl9LHJhdGlvVGV4dDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGVTZXR0aW5ncztyZXR1cm4gZT50LnRvcGljX3Bvc3RfbGlrZV9oZWF0X2hpZ2g/ImhpZ2giOmU+dC50b3BpY19wb3N0X2xpa2VfaGVhdF9tZWRpdW0/Im1lZCI6ZT50LnRvcGljX3Bvc3RfbGlrZV9oZWF0X2xvdz8ibG93IjoiIn0sbGlrZXNIZWF0OigwLGkuZm10KSgicmF0aW9UZXh0IiwiaGVhdG1hcC0lQCIpfSwicmF0aW8iLFtvXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsInJhdGlvIiksbCkscyhsLCJ0aXRsZSIsW3JdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwidGl0bGUiKSxsKSxzKGwsInJhdGlvVGV4dCIsW2FdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobCwicmF0aW9UZXh0IiksbCksbCkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvcmF3LXZpZXdzL2xpc3QvdmlzaXRlZC1saW5lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgaSxzLG8scixhLGwsdSxjO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9bi5kZWZhdWx0LmV4dGVuZCgobz1pPXtpc0xhc3RWaXNpdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdFZpc2l0ZWRUb3BpYz09PXRoaXMudG9waWN9fSxyPSJpc0xhc3RWaXNpdGVkIixhPVt0LmRlZmF1bHRdLHM9KHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLCJpc0xhc3RWaXNpdGVkIikpP3MudmFsdWU6dm9pZCAwLGw9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSx1PWksYz17fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2NbZV09bFtlXX0pLGMuZW51bWVyYWJsZT0hIWMuZW51bWVyYWJsZSxjLmNvbmZpZ3VyYWJsZT0hIWMuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gY3x8Yy5pbml0aWFsaXplcikmJihjLndyaXRhYmxlPSEwKSxjPWEuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobyxyLGUpfHxlfSxjKSx1JiZ2b2lkIDAhPT1jLmluaXRpYWxpemVyJiYoYy52YWx1ZT1jLmluaXRpYWxpemVyP2MuaW5pdGlhbGl6ZXIuY2FsbCh1KTp2b2lkIDAsYy5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWMuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobyxyLGMpLGM9bnVsbCksaSkpfSksZGVmaW5lKCJkaXNjb3Vyc2UvcmF3LXZpZXdzL3RvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKGkocz17bG9jYWxpemVkTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvcmNlTmFtZT90aGlzLmZvcmNlTmFtZTp0aGlzLm5hbWU/STE4bi50KHRoaXMubmFtZSk6IiJ9LHNvcnRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuImNoZXZyb24tIisodGhpcy5wYXJlbnQuYXNjZW5kaW5nPyJ1cCI6ImRvd24iKX0saXNTb3J0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGFibGUmJnRoaXMucGFyZW50Lm9yZGVyPT09dGhpcy5vcmRlcn0sY2xhc3NOYW1lOmZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMub3JkZXImJmUucHVzaCh0aGlzLm9yZGVyKSx0aGlzLnNvcnRhYmxlJiYoZS5wdXNoKCJzb3J0YWJsZSIpLHRoaXMuaXNTb3J0aW5nJiZlLnB1c2goInNvcnRpbmciKSksdGhpcy5udW1iZXImJmUucHVzaCgibnVtIiksZS5qb2luKCIgIil9fSwibG9jYWxpemVkTmFtZSIsW24uZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJsb2NhbGl6ZWROYW1lIikscyksaShzLCJzb3J0SWNvbiIsW24uZGVmYXVsdF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJzb3J0SWNvbiIpLHMpLGkocywiaXNTb3J0aW5nIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImlzU29ydGluZyIpLHMpLGkocywiY2xhc3NOYW1lIixbbi5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsImNsYXNzTmFtZSIpLHMpLHMpKX0pLGRlZmluZSgiZGlzY291cnNlL3Jhdy12aWV3cy90b3BpYy1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkobixpLGUsdCxzKXt2YXIgbz17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXtvW2VdPXRbZV19KSxvLmVudW1lcmFibGU9ISFvLmVudW1lcmFibGUsby5jb25maWd1cmFibGU9ISFvLmNvbmZpZ3VyYWJsZSwoInZhbHVlImluIG98fG8uaW5pdGlhbGl6ZXIpJiYoby53cml0YWJsZT0hMCksbz1lLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0KG4saSxlKXx8ZX0sbykscyYmdm9pZCAwIT09by5pbml0aWFsaXplciYmKG8udmFsdWU9by5pbml0aWFsaXplcj9vLmluaXRpYWxpemVyLmNhbGwocyk6dm9pZCAwLG8uaW5pdGlhbGl6ZXI9dm9pZCAwKSx2b2lkIDA9PT1vLmluaXRpYWxpemVyJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKSxvPW51bGwpLG99dmFyIHM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKChpKHM9e3Nob3dEZWZhdWx0Om51bGwscmVuZGVyRGl2OmZ1bmN0aW9uKGUpe3JldHVybihlfHwwPHRoaXMuc3RhdHVzZXMubGVuZ3RoKSYmIXRoaXMubm9EaXZ9LHN0YXR1c2VzOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLGk9dGhpcyxzPXRoaXMudG9waWMsbz1bXTtzLmdldCgiaXNfd2FybmluZyIpJiZvLnB1c2goe2ljb246ImVudmVsb3BlIixrZXk6Indhcm5pbmcifSkscy5nZXQoImJvb2ttYXJrZWQiKSYmKGU9cy5nZXQoImJvb2ttYXJrZWRfcG9zdF9udW1iZXJzIiksdD1zLmdldCgidXJsIiksbj0iIixlJiYxPGVbMF0/dCs9Ii8iK2VbMF06bj0ib3AtYm9va21hcmsiLG8ucHVzaCh7ZXh0cmFDbGFzc2VzOm4saWNvbjoiYm9va21hcmsiLGtleToiYm9va21hcmtlZCIsaHJlZjp0fSkpLHMuZ2V0KCJjbG9zZWQiKSYmcy5nZXQoImFyY2hpdmVkIik/by5wdXNoKHtpY29uOiJsb2NrIixrZXk6ImxvY2tlZF9hbmRfYXJjaGl2ZWQifSk6cy5nZXQoImNsb3NlZCIpP28ucHVzaCh7aWNvbjoibG9jayIsa2V5OiJsb2NrZWQifSk6cy5nZXQoImFyY2hpdmVkIikmJm8ucHVzaCh7aWNvbjoibG9jayIsa2V5OiJhcmNoaXZlZCJ9KSxzLmdldCgicGlubmVkIikmJm8ucHVzaCh7aWNvbjoidGh1bWJ0YWNrIixrZXk6InBpbm5lZCJ9KSxzLmdldCgidW5waW5uZWQiKSYmby5wdXNoKHtpY29uOiJ0aHVtYnRhY2siLGtleToidW5waW5uZWQifSkscy5nZXQoImludmlzaWJsZSIpJiZvLnB1c2goe2ljb246ImZhci1leWUtc2xhc2giLGtleToidW5saXN0ZWQifSksby5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGl0bGU9STE4bi50KCJ0b3BpY19zdGF0dXNlcy4iK2Uua2V5KyIuaGVscCIpLCFpLmN1cnJlbnRVc2VyfHwicGlubmVkIiE9PWUua2V5JiYidW5waW5uZWQiIT09ZS5rZXk/KGUub3BlblRhZz0ic3BhbiIsZS5jbG9zZVRhZz0ic3BhbiIpOihlLm9wZW5UYWc9ImEgaHJlZiIsZS5jbG9zZVRhZz0iYSIpfSk7dmFyIHI9dGhpcy5kZWZhdWx0SWNvbjtyZXR1cm4gMD09PW8ubGVuZ3RoJiZyJiZ0aGlzLnNldCgic2hvd0RlZmF1bHQiLHIpLG99fSwicmVuZGVyRGl2IixbKDAsdC5kZWZhdWx0KSgiZGVmYXVsdEljb24iKV0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLCJyZW5kZXJEaXYiKSxzKSxpKHMsInN0YXR1c2VzIixbdC5kZWZhdWx0XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsInN0YXR1c2VzIikscykscykpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9hcHBsaWNhdGlvbiIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgbD1IYW5kbGViYXJzLlNhZmVTdHJpbmc7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJyYXctZGF0ZSIsZnVuY3Rpb24oZSl7cmV0dXJuKDAsYS5sb25nRGF0ZSkobmV3IERhdGUoZSkpfSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJhZ2Utd2l0aC10b29sdGlwIixmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGwoKDAsYS5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZSkobmV3IERhdGUoZSkse3RpdGxlOiEwfSkpfSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJudW1iZXIiLGZ1bmN0aW9uKGUsdCl7ZT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoZSkpLGlzTmFOKGUpJiYoZT0wKTt2YXIgbj1JMThuLnRvTnVtYmVyKGUse3ByZWNpc2lvbjowfSk7dC5udW1iZXJLZXkmJihuPUkxOG4udCh0Lm51bWJlcktleSx7bnVtYmVyOm4sY291bnQ6cGFyc2VJbnQoZSwxMCl9KSk7dmFyIGk9Im51bWJlciI7dC5jbGFzcyYmKGkrPSIgIit0LmNsYXNzKTt2YXIgcz0iPHNwYW4gY2xhc3M9JyIraSsiJyIsbz0hdC5ub1RpdGxlLHI9KDAsYS5udW1iZXIpKGUpO3JldHVybiByLnRvU3RyaW5nKCkhPT1uLnRvU3RyaW5nKCkmJm8mJihzKz0iIHRpdGxlPSciK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihuKSsiJyIpLG5ldyBsKHMrPSI+IityKyI8L3NwYW4+Iil9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvYm9yZGVyLWNvbG9yIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUpe3JldHVybiJib3JkZXItY29sb3I6ICMiK2V9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLG4sdCxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5pc0VtcHR5KShlKT8iPGRpdiBjbGFzcz0nYXZhdGFyLXBsYWNlaG9sZGVyJz48L2Rpdj4iOigwLGkuYXZhdGFySW1nKSh7c2l6ZTp0LGF2YXRhclRlbXBsYXRlOmV9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ib3VuZC1hdmF0YXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvaGVscGVycy91c2VyLWF2YXRhciJdLGZ1bmN0aW9uKGUsaSxzLHQsbyxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7aWYoKDAscy5pc0VtcHR5KShlKSlyZXR1cm4iPGRpdiBjbGFzcz0nYXZhdGFyLXBsYWNlaG9sZGVyJz48L2Rpdj4iO3ZhciBuPSgwLGkuZ2V0KShlLCJhdmF0YXJfdGVtcGxhdGUiKTtyZXR1cm4oMCxvLmF2YXRhckltZykoKDAsci5hZGRFeHRyYVVzZXJDbGFzc2VzKShlLHtzaXplOnQsYXZhdGFyVGVtcGxhdGU6bn0pKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ib3VuZC1jYXRlZ29yeS1saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKG4uY2F0ZWdvcnlMaW5rSFRNTCl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2JvdW5kLWRhdGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCxuLmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUpe3JldHVybigwLHQuYXV0b1VwZGF0aW5nUmVsYXRpdmVBZ2UpKG5ldyBEYXRlKGUpLHtmb3JtYXQ6Im1lZGl1bSIsdGl0bGU6ITB9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jYXBpdGFsaXplLXN0cmluZyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXtyZXR1cm4gZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktYmFkZ2UiLFsiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihuLGUpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImNhdGVnb3J5LWJhZGdlIixmdW5jdGlvbihlLHQpe3JldHVybigwLG4uY2F0ZWdvcnlMaW5rSFRNTCkoZSx7aGlkZVBhcmVudDp0LmhpZGVQYXJlbnQsYWxsb3dVbmNhdGVnb3JpemVkOnQuYWxsb3dVbmNhdGVnb3JpemVkLGNhdGVnb3J5U3R5bGU6dC5jYXRlZ29yeVN0eWxlLGxpbms6ITF9KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9jdXN0b20taHRtbCIsWyJleHBvcnRzIiwicHJlbG9hZC1zdG9yZSJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEN1c3RvbUhUTUw9ZnVuY3Rpb24oZSl7dmFyIHQ9c1tlXTtpZih0KXJldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKHQpO3ZhciBuPWkuZGVmYXVsdC5nZXQoImN1c3RvbUhUTUwiKTtpZihuJiZuW2VdJiZuW2VdLmxlbmd0aClyZXR1cm4gbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhuW2VdKX0sZS5jbGVhckhUTUxDYWNoZT1mdW5jdGlvbigpe3M9e319LGUuc2V0Q3VzdG9tSFRNTD1mdW5jdGlvbihlLHQpe3NbZV09dH07dmFyIHM9e319KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rhc2gtaWYtZW1wdHkiLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5odG1sSGVscGVyKShmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmlzRW1wdHkpKGUpPyImbWRhc2g7IjplfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rhc2hlcml6ZSIsWyJleHBvcnRzIiwiQGVtYmVyL2NvbXBvbmVudC9oZWxwZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49ZnVuY3Rpb24oZSx0KXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlO2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49W10saT0hMCxzPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIHIsYT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKGk9KHI9YS5uZXh0KCkpLmRvbmUpJiYobi5wdXNoKHIudmFsdWUpLCF0fHxuLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtzPSEwLG89ZX1maW5hbGx5e3RyeXshaSYmYS5yZXR1cm4mJmEucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fXJldHVybiBufShlLHQpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX07ZS5kZWZhdWx0PXQuZGVmYXVsdC5oZWxwZXIoZnVuY3Rpb24oZSl7cmV0dXJuKG4oZSwxKVswXXx8IiIpLnJlcGxhY2UoIi4iLCItIikuZGFzaGVyaXplKCl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZGlyLXNwYW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3RleHQtZGlyZWN0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZGlyLXNwYW4iLGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCh0PWV8fCIiKSYmRGlzY291cnNlLlNpdGVTZXR0aW5ncy5zdXBwb3J0X21peGVkX3RleHRfZGlyZWN0aW9uPyc8c3BhbiBkaXI9IicrKCgwLG4uaXNSVEwpKHQpPyJydGwiOiJsdHIiKSsnIj4nK3QrIjwvc3Bhbj4iOnQpO3ZhciB0fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Rpc2NvdXJzZS10YWciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJkaXNjb3Vyc2UtdGFnIixmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCgwLG4uZGVmYXVsdCkoZSx0KSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZGlzY291cnNlLXRhZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQucmVnaXN0ZXJVbmJvdW5kKSgiZGlzY291cnNlLXRhZ3MiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5kZWZhdWx0KShlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9lZGl0YWJsZS12YWx1ZSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9jb21wb25lbnQvaGVscGVyIl0sZnVuY3Rpb24oZSxvLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5mb3JtYXRDdXJyZW5jeT1uO3ZhciByPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9O2Z1bmN0aW9uIG4oZSl7dmFyIHQ9cihlLDIpLG49dFswXSxpPXRbMV07ImNhdGVnb3J5X2lkIj09PWkmJihpPSJjYXRlZ29yeS5pZCIpO3ZhciBzPSgwLG8uZ2V0KShuLGkpO3JldHVybiBBcnJheS5pc0FycmF5KHMpJiYocz1zLnNsaWNlKDApKSxzfWUuZGVmYXVsdD10LmRlZmF1bHQuaGVscGVyKG4pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mYS1pY29uLW5vZGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmljb25Ob2RlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5yZW5kZXJJY29uKSgibm9kZSIsZSx0KX19KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2Zsb2F0IixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJmbG9hdCIsZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlRmxvYXQoZSkudG9GaXhlZCgxKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mb3JtYXQtYWdlIixbImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiOygwLGUucmVnaXN0ZXJVbmJvdW5kKSgiZm9ybWF0LWFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGU9bmV3IERhdGUoZSksbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZygoMCx0LmF1dG9VcGRhdGluZ1JlbGF0aXZlQWdlKShlKSl9KSwoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImZvcm1hdC1kdXJhdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsdC5kdXJhdGlvblRpbnkpKGUpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9mb3JtYXQtZGF0ZSIsWyJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoImZvcm1hdC1kYXRlIixmdW5jdGlvbihlLHQpe3ZhciBuLGk9Im1lZGl1bSIscz0hMDtpZih0LmxlYXZlQWdvJiYobj0idHJ1ZSI9PT10LmxlYXZlQWdvKSx0LmZvcm1hdCYmKGk9dC5mb3JtYXQpLHQubm9UaXRsZSYmKHM9ITEpLGUpe3ZhciBvPW5ldyBEYXRlKGUpO3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKCgwLHIuYXV0b1VwZGF0aW5nUmVsYXRpdmVBZ2UpKG8se2Zvcm1hdDppLHRpdGxlOnMsbGVhdmVBZ286bn0pKX19KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvZm9ybWF0LXVzZXJuYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5yZWdpc3RlclVuYm91bmQpKCJmb3JtYXQtdXNlcm5hbWUiLG4uZm9ybWF0VXNlcm5hbWUpfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9pY29uLW9yLWltYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSxpLHQscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXt2YXIgdD1lLmljb24sbj1lLmltYWdlO3JldHVybigwLGkuaXNFbXB0eSkobik/KDAsaS5pc0VtcHR5KSh0KT8iIjoodD0oMCxzLmNvbnZlcnRJY29uQ2xhc3MpKHQpLCgwLHMuaWNvbkhUTUwpKHQpKToiPGltZyBzcmM9JyIrbisiJz4ifSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL2lubGluZS1kYXRlIixbImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyJdLGZ1bmN0aW9uKG4sZSl7InVzZSBzdHJpY3QiO3ZhciBpPWZ1bmN0aW9uKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9ITAscz0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciByLGE9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShpPShyPWEubmV4dCgpKS5kb25lKSYmKG4ucHVzaChyLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7cz0hMCxvPWV9ZmluYWxseXt0cnl7IWkmJmEucmV0dXJuJiZhLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBvfX1yZXR1cm4gbn0oZSx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9OygwLGUucmVnaXN0ZXJIZWxwZXIpKCJpbmxpbmUtZGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9aShlLDEpWzBdO3JldHVybiB0LnZhbHVlJiYodD10LnZhbHVlKCkpLCgwLG4ucmVsYXRpdmVBZ2UpKG5ldyBEYXRlKHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9ub2RlIixbImV4cG9ydHMiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIl0sZnVuY3Rpb24oZSxvLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9bmV3IERhdGUoZSkpLGUpe3ZhciB0PXt0aXRsZTooMCxyLmxvbmdEYXRlKShlKSwiZGF0YS10aW1lIjplLmdldFRpbWUoKSwiZGF0YS1mb3JtYXQiOiJ0aW55In07cmV0dXJuKDAsby5oKSgic3Bhbi5yZWxhdGl2ZS1kYXRlIix7YXR0cmlidXRlczp0fSwoMCxyLnJlbGF0aXZlQWdlKShlKSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRhdGVOb2RlPXQsZS5udW1iZXJOb2RlPWZ1bmN0aW9uKGUsdCl7dD10fHx7fSxlPXBhcnNlSW50KGUsMTApLGlzTmFOKGUpJiYoZT0wKTt2YXIgbj1lLnRvU3RyaW5nKCksaT17fSxzPSgwLHIubnVtYmVyKShlKTtzIT09biYmKGkudGl0bGU9bik7cmV0dXJuKDAsby5oKSgic3Bhbi5udW1iZXIiLHtjbGFzc05hbWU6dC5jbGFzc05hbWUsYXR0cmlidXRlczppfSxzKX0sInVuZGVmaW5lZCIhPXR5cGVvZiBEaXNjb3Vyc2UmJihEaXNjb3Vyc2UuX193aWRnZXRfaGVscGVycy5kYXRlTm9kZT10KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcGVyaW9kLXRpdGxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBvPXthbGw6ImFsbF90aW1lIix5ZWFybHk6InRoaXNfeWVhciIscXVhcnRlcmx5OiJ0aGlzX3F1YXJ0ZXIiLG1vbnRobHk6InRoaXNfbW9udGgiLGRhaWx5OiJ0b2RheSJ9O2UuZGVmYXVsdD0oMCx0Lmh0bWxIZWxwZXIpKGZ1bmN0aW9uKGUsdCl7dmFyIG49STE4bi50KCJmaWx0ZXJzLnRvcC4iKyhvW2VdfHwidGhpc193ZWVrIikpO2lmKHQuaGFzaC5zaG93RGF0ZVJhbmdlKXt2YXIgaT0iIixzPXZvaWQgMCxzPXQuaGFzaC5mdWxsRGF5P21vbWVudCgpLnV0YygpLnN1YnRyYWN0KDEsImRheXMiKTptb21lbnQoKTtzd2l0Y2goZSl7Y2FzZSJ5ZWFybHkiOmk9cy5jbG9uZSgpLnN1YnRyYWN0KDEsInllYXIiKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX3dpdGhfeWVhcl9ub190aW1lIikpKyIgLSAiK3MuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ193aXRoX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlInF1YXJ0ZXJseSI6aT1zLmNsb25lKCkuc3VidHJhY3QoMywibW9udGgiKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKSsiIC0gIitzLmZvcm1hdChJMThuLnQoImRhdGVzLmxvbmdfbm9feWVhcl9ub190aW1lIikpO2JyZWFrO2Nhc2Uid2Vla2x5IjppPXMuY2xvbmUoKS5zdWJ0cmFjdCgxLCJ3ZWVrIikuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ19ub195ZWFyX25vX3RpbWUiKSkrIiAtICIrcy5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlIm1vbnRobHkiOmk9cy5jbG9uZSgpLnN1YnRyYWN0KDEsIm1vbnRoIikuZm9ybWF0KEkxOG4udCgiZGF0ZXMubG9uZ19ub195ZWFyX25vX3RpbWUiKSkrIiAtICIrcy5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX25vX3llYXJfbm9fdGltZSIpKTticmVhaztjYXNlImRhaWx5IjppPXMuY2xvbmUoKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5mdWxsX25vX3llYXJfbm9fdGltZSIpKX1yZXR1cm4nPHNwYW4gY2xhc3M9ImRhdGUtc2VjdGlvbiI+JytuKyI8L3NwYW4+PHNwYW4gY2xhc3M9J3RvcC1kYXRlLXN0cmluZyc+IitpKyI8L3NwYW4+In1yZXR1cm4gbn0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9yYXctcGx1Z2luLW91dGxldCIsWyJkaXNjb3Vyc2UvbGliL3BsdWdpbi1jb25uZWN0b3JzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiXSxmdW5jdGlvbihzLGUpeyJ1c2Ugc3RyaWN0IjtlLmRlZmF1bHQucmVnaXN0ZXJIZWxwZXIoInJhdy1wbHVnaW4tb3V0bGV0IixmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49KDAscy5yYXdDb25uZWN0b3JzRm9yKShlLmhhc2gubmFtZSk7aWYobi5sZW5ndGgpe3ZhciBpPW4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRlbXBsYXRlKHtjb250ZXh0OnR9KX0pO3JldHVybiBuZXcgSGFuZGxlYmFycy5TYWZlU3RyaW5nKGkuam9pbigiIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy9yYXciLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS9saWIvcmF3LXRlbXBsYXRlcyJdLGZ1bmN0aW9uKGUsZCl7InVzZSBzdHJpY3QiO3ZhciBwPXZvaWQgMDsoMCxlLnJlZ2lzdGVyVW5ib3VuZCkoInJhdyIsZnVuY3Rpb24oZSx0KXtlPWUucmVwbGFjZSgiLiIsIi8iKTt2YXIgbixpLHMsbyxyLGEsbCx1PURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLGM9KDAsZC5maW5kUmF3VGVtcGxhdGUpKGUpO3tpZihjKXJldHVybiBuPXRoaXMsaT11LHM9YyxvPWUscj10LChyPWpRdWVyeS5leHRlbmQoe30scikpLnBhcmVudD1yLnBhcmVudHx8bixwPXB8fHtzaXRlU2V0dGluZ3M6aS5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLGN1cnJlbnRVc2VyOmkubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpLHNpdGU6aS5sb29rdXAoInNpdGU6bWFpbiIpLHNlc3Npb246aS5sb29rdXAoInNlc3Npb246bWFpbiIpLHRvcGljVHJhY2tpbmdTdGF0ZTppLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpfSxyLnZpZXd8fChhPSJkaXNjb3Vyc2UvcmF3LXZpZXdzLyIrbywhcmVxdWlyZWpzLmVudHJpZXNbYV18fChsPXJlcXVpcmVqcyhhLG51bGwsbnVsbCwhMCkpJiZsLmRlZmF1bHQmJihyLnZpZXc9bC5kZWZhdWx0LmNyZWF0ZShyLHApKSxyLnZpZXd8fChyPWpRdWVyeS5leHRlbmQoe30scixwKSkpLG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcocyhyKSk7Y29uc29sZS53YXJuKCJDb3VsZCBub3QgZmluZCByYXcgdGVtcGxhdGU6ICIrZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3JlcGxhY2UtZW1vamkiLFsiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS9saWIvdGV4dCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiOygwLGUucmVnaXN0ZXJVbmJvdW5kKSgicmVwbGFjZS1lbW9qaSIsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsdC5lbW9qaVVuZXNjYXBlKShlKSl9KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcmV2aWV3YWJsZS1oaXN0b3J5LWRlc2NyaXB0aW9uIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2hlbHBlcnMvcmV2aWV3YWJsZS1zdGF0dXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Jldmlld2FibGUtaGlzdG9yeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShmdW5jdGlvbihlKXtzd2l0Y2goZS5yZXZpZXdhYmxlX2hpc3RvcnlfdHlwZSl7Y2FzZSBpLkVESVRFRDpyZXR1cm4oMCxzLmljb25IVE1MKSgicGVuY2lsLWFsdCIpKyIgIitJMThuLnQoInJldmlldy5oaXN0b3J5LmVkaXRlZCIpO2RlZmF1bHQ6cmV0dXJuKDAsbi5odG1sU3RhdHVzKShlLnN0YXR1cyl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3Jldmlld2FibGUtc3RhdHVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL21vZGVscy9yZXZpZXdhYmxlIl0sZnVuY3Rpb24oZSx0LGkscyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2Ugcy5QRU5ESU5HOnJldHVybntuYW1lOiJwZW5kaW5nIn07Y2FzZSBzLkFQUFJPVkVEOnJldHVybntpY29uOiJjaGVjayIsbmFtZToiYXBwcm92ZWQifTtjYXNlIHMuUkVKRUNURUQ6cmV0dXJue2ljb246InRpbWVzIixuYW1lOiJyZWplY3RlZCJ9O2Nhc2Ugcy5JR05PUkVEOnJldHVybntpY29uOiJleHRlcm5hbC1saW5rLWFsdCIsbmFtZToiaWdub3JlZCJ9O2Nhc2Ugcy5ERUxFVEVEOnJldHVybntpY29uOiJ0cmFzaC1hbHQiLG5hbWU6ImRlbGV0ZWQifX19KGUpO2lmKHQpe3ZhciBuPXQuaWNvbj8oMCxpLmljb25IVE1MKSh0Lmljb24pOiIiO3JldHVybiJcbiAgICA8c3BhbiBjbGFzcz0nc3RhdHVzJz5cbiAgICAgIDxzcGFuIGNsYXNzPVwiIit0Lm5hbWUrJyI+XG4gICAgICAgICcrbisiXG4gICAgICAgICIrSTE4bi50KCJyZXZpZXcuc3RhdHVzZXMuIit0Lm5hbWUrIi50aXRsZSIpKyJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICJ9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmh0bWxTdGF0dXM9bixlLmRlZmF1bHQ9KDAsdC5odG1sSGVscGVyKShuKX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvcm91dGUtYWN0aW9uIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0PUVtYmVyLG89dC5BLG49dC5IZWxwZXIsaT10LmFzc2VydCxzPXQuY29tcHV0ZWQscj10LmdldCxhPXQuZ2V0T3duZXIsYz10LnJ1bixkPXQucnVuSW5EZWJ1ZztmdW5jdGlvbiBwKGUsbil7dmFyIHQsaT12b2lkIDAscz1vKG8oKCh0PWUpLl9yb3V0ZXJNaWNyb2xpYnx8dC5yb3V0ZXIpLmN1cnJlbnRSb3V0ZUluZm9zKS5tYXBCeSgiX3JvdXRlIikucmV2ZXJzZSgpKS5maW5kKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYWN0aW9uc3x8ZS5fYWN0aW9ucztyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YoaT10W25dKX0pO3JldHVybnthY3Rpb246aSxoYW5kbGVyOnN9fWUuZGVmYXVsdD1uLmV4dGVuZCh7cm91dGVyOnMoZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5sb29rdXAoInJvdXRlcjptYWluIil9KS5yZWFkT25seSgpLGNvbXB1dGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj0odD1lLEFycmF5LmlzQXJyYXkodCk/dDpBcnJheS5mcm9tKHQpKSxhPW5bMF0sbD1uLnNsaWNlKDEpLHU9cih0aGlzLCJyb3V0ZXIiKTtpKCJbZW1iZXItcm91dGUtYWN0aW9uLWhlbHBlcl0gVW5hYmxlIHRvIGxvb2t1cCByb3V0ZXIiLHUpLGQoZnVuY3Rpb24oKXt2YXIgZT1wKHUsYSkuaGFuZGxlcjtpKCJbZW1iZXItcm91dGUtYWN0aW9uLWhlbHBlcl0gVW5hYmxlIHRvIGZpbmQgYWN0aW9uICIrYSxlKX0pO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1wKHUsYSksdD1lLmFjdGlvbixuPWUuaGFuZGxlcixpPWFyZ3VtZW50cy5sZW5ndGgscz1BcnJheShpKSxvPTA7bzxpO28rKylzW29dPWFyZ3VtZW50c1tvXTt2YXIgcj1sLmNvbmNhdChzKTtyZXR1cm4gYy5qb2luLmFwcGx5KGMsW24sdF0uY29uY2F0KGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD0wLG49QXJyYXkoZS5sZW5ndGgpO3Q8ZS5sZW5ndGg7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn1yZXR1cm4gQXJyYXkuZnJvbShlKX0ocikpKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9oZWxwZXJzL3Nob3J0ZW4tdXJsIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJzaG9ydGVuLXVybCIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvXC8vZyk7cmV0dXJuIHQmJjM9PT10Lmxlbmd0aCYmKGU9ZS5yZXBsYWNlKC9cLyQvLCIiKSksKGU9KGU9ZS5yZXBsYWNlKC9eaHR0cHM/OlwvXC8vLCIiKSkucmVwbGFjZSgvXnd3d1wuLywiIikpLnN1YnN0cmluZygwLDgwKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90aGVtZS1oZWxwZXJzIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0aGVtZS1pMThuIixmdW5jdGlvbihlLHQsbil7cmV0dXJuIEkxOG4udCgidGhlbWVfdHJhbnNsYXRpb25zLiIrZSsiLiIrdCxuKX0pLCgwLGUucmVnaXN0ZXJVbmJvdW5kKSgidGhlbWUtcHJlZml4IixmdW5jdGlvbihlLHQpe3JldHVybiJ0aGVtZV90cmFuc2xhdGlvbnMuIitlKyIuIit0fSksKDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0aGVtZS1zZXR0aW5nIixmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZGVwcmVjYXRlZCYmKDAsaS5kZWZhdWx0KSgiVGhlIGB7e3RoZW1lU2V0dGluZy5zZXR0aW5nX25hbWV9fWAgc3ludGF4IGlzIGRlcHJlY2F0ZWQuIFVzZSBge3t0aGVtZS1zZXR0aW5nICdzZXR0aW5nX25hbWUnfX1gIGluc3RlYWQiLHtzaW5jZToidjIuMi4wLmJldGE4Iixkcm9wRnJvbToidjIuMy4wIn0pLERpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgic2VydmljZTp0aGVtZS1zZXR0aW5ncyIpLmdldFNldHRpbmcoZSx0KX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1mZWF0dXJlZC1saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9oZWxwZXJzIiwiZGlzY291cnNlL2xpYi9yZW5kZXItdG9waWMtZmVhdHVyZWQtbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LnJlZ2lzdGVyVW5ib3VuZCkoInRvcGljLWZlYXR1cmVkLWxpbmsiLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoKDAsbi5kZWZhdWx0KShlLHQpKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1saW5rIixbImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KDAsZS5yZWdpc3RlclVuYm91bmQpKCJ0b3BpYy1saW5rIixmdW5jdGlvbihlLHQpe3ZhciBuPWUuZ2V0KCJmYW5jeVRpdGxlIiksaT1lLmxpbmtlZF9wb3N0X251bWJlcj9lLnVybEZvclBvc3ROdW1iZXIoZS5saW5rZWRfcG9zdF9udW1iZXIpOmUuZ2V0KCJsYXN0VW5yZWFkVXJsIikscz1bInRpdGxlIl07dC5jbGFzcyYmdC5jbGFzcy5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHMucHVzaChlKX0pO3ZhciBvPSI8YSBocmVmPSciK2krIidcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSciK3Muam9pbigiICIpKyInXG4gICAgICAgICAgICAgICAgICAgICBkYXRhLXRvcGljLWlkPSciK2UuaWQrIic+IituKyI8L2E+IjtyZXR1cm4gbmV3IEhhbmRsZWJhcnMuU2FmZVN0cmluZyhvKX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1zdGF0dXMtaWNvbnMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PUVtYmVyLkFycmF5UHJveHkuZXh0ZW5kKHtyZW5kZXI6ZnVuY3Rpb24oaSxzKXtmdW5jdGlvbiB0KGUsdCxuKXtpLmdldChlKSYmcyh0LG4pfWkuZ2V0KCJjbG9zZWQiKSYmaS5nZXQoImFyY2hpdmVkIik/cygibG9jayIsImxvY2tlZF9hbmRfYXJjaGl2ZWQiKToodCgiY2xvc2VkIiwibG9jayIsImxvY2tlZCIpLHQoImFyY2hpdmVkIiwibG9jayIsImFyY2hpdmVkIikpLHRoaXMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfShlKSl9KX19KS5jcmVhdGUoe2NvbnRlbnQ6W1siaXNfd2FybmluZyIsImVudmVsb3BlIiwid2FybmluZyJdLFsicGlubmVkIiwidGh1bWJ0YWNrIiwicGlubmVkIl0sWyJ1bnBpbm5lZCIsInRodW1idGFjayIsInVucGlubmVkIl0sWyJpbnZpc2libGUiLCJmYXItZXllLXNsYXNoIiwidW5saXN0ZWQiXV19KX0pLGRlZmluZSgiZGlzY291cnNlL2hlbHBlcnMvdXNlci1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUscyx0LG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuaHRtbEhlbHBlcikoZnVuY3Rpb24oZSx0KXtpZihlKXt2YXIgbj0oMCxvLmVzY2FwZUV4cHJlc3Npb24pKGUuZ2V0KCJuYW1lIikpLGk9dm9pZCAwO3JldHVybiB0JiZ0Lmhhc2gmJihpPXQuaGFzaC5jdXJyZW50VXNlciksaSYmZS5nZXQoImFkbWluIikmJmkuZ2V0KCJzdGFmZiIpPygwLHMuaWNvbkhUTUwpKCJzaGllbGQtYWx0Iix7bGFiZWw6STE4bi50KCJ1c2VyLmFkbWluIix7dXNlcjpufSl9KTplLmdldCgibW9kZXJhdG9yIik/KDAscy5pY29uSFRNTCkoInNoaWVsZC1hbHQiLHtsYWJlbDpJMThuLnQoInVzZXIubW9kZXJhdG9yIix7dXNlcjpufSl9KTp2b2lkIDB9fSl9KSxFbWJlci5URU1QTEFURVMuYWJvdXQ9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjbSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiXSxbImFib3V0Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGVudHMgY2xlYXJmaXggYm9keS1wYWdlIl0sWzhdLFswLCJcXG5cXG4gICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtcGlsbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tYWJvdXQiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJyb3V0ZSJdLFsiYWN0aXZlIiwiYWJvdXQiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImFib3V0LnNpbXBsZV90aXRsZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImZhcU92ZXJyaWRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1pdGVtLWd1aWRlbGluZXMiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImd1aWRlbGluZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImd1aWRlbGluZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tZmFxIl0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJmYXEiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImZhcSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWl0ZW0tZmFxIl0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJmYXEiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImZhcSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaXRlbS10b3MiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInRvcyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidG9zIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaXRlbS1wcml2YWN5Il0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcml2YWN5Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJwcml2YWN5Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC50aXRsZSJdLFtbInRpdGxlIl0sW1syNCxbIm1vZGVsIiwidGl0bGUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiZGVzY3JpcHRpb24iXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWJvdXQtYWZ0ZXItZGVzY3JpcHRpb24iLCJzZWN0aW9uIiwiIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFkbWlucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGFkbWlucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImFib3V0Lm91cl9hZG1pbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syNCxbIm1vZGVsIiwiYWRtaW5zIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCJdLFs4XSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsiYWJvdXQtYWZ0ZXItYWRtaW5zIiwic2VjdGlvbiIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJtb2RlcmF0b3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiYWJvdXQgbW9kZXJhdG9ycyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImFib3V0Lm91cl9tb2RlcmF0b3JzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VycyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syNCxbIm1vZGVsIiwibW9kZXJhdG9ycyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbImFib3V0LWFmdGVyLW1vZGVyYXRvcnMiLCJzZWN0aW9uIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X21vZGVyYXRvcnMiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X21vZGVyYXRvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYWJvdXQgY2F0ZWdvcnktbW9kZXJhdG9ycyBtb2RlcmF0b3JzLSIsWzIzLDEsWyJjYXRlZ29yeSIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbImFib3V0Lm1vZGVyYXRvcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlcnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhYm91dC1wYWdlLXVzZXJzIixudWxsLFtbInVzZXJzIl0sW1syMywxLFsibW9kZXJhdG9ycyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IHN0YXRzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1jaGFydC1iYXIiXSxudWxsXSxmYWxzZV0sWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXRzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWJsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMCwiwqAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXQubGFzdF83X2RheXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC5zdGF0Lmxhc3RfMzBfZGF5cyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFib3V0LnN0YXQuYWxsX3RpbWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJhYm91dC50b3BpY19jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidG9waWNzXzdfZGF5cyJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIm1vZGVsIiwic3RhdHMiLCJ0b3BpY3NfMzBfZGF5cyJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIm1vZGVsIiwic3RhdHMiLCJ0b3BpY19jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQucG9zdF9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwicG9zdHNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsInBvc3RzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwicG9zdF9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQudXNlcl9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidXNlcnNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsInVzZXJzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwidXNlcl9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQuYWN0aXZlX3VzZXJfY291bnQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsImFjdGl2ZV91c2Vyc183X2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwiYWN0aXZlX3VzZXJzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIuKAlCJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWJvdXQubGlrZV9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwibGlrZXNfN19kYXlzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsibW9kZWwiLCJzdGF0cyIsImxpa2VzXzMwX2RheXMiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJtb2RlbCIsInN0YXRzIiwibGlrZV9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjb250YWN0SW5mbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0IGNvbnRhY3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJhYm91dC5jb250YWN0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsImNvbnRhY3RJbmZvIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWJvdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwic2ltcGxlLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWNjb3VudC1jcmVhdGVkIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJhY2NvdW50LWNyZWF0ZWQifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkL2VkaXQtZW1haWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy1tZXNzYWdlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1lbWFpbC1mb3JtIixudWxsLFtbImVtYWlsIl0sW1syNCxbIm5ld0VtYWlsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWN0aXZhdGlvbi1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlRW1haWwiXSxudWxsXSwibG9naW4uc3VibWl0X25ld19lbWFpbCIsWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjYW5jZWwiXSxudWxsXSwiY2FuY2VsIiwiZWRpdC1jYW5jZWwiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL2VkaXQtZW1haWwifX0pLEVtYmVyLlRFTVBMQVRFU1siYWNjb3VudC1jcmVhdGVkL2luZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWMtbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjQsWyJhY2NvdW50Q3JlYXRlZCIsIm1lc3NhZ2UiXV0sdHJ1ZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWNjb3VudENyZWF0ZWQiLCJzaG93X2NvbnRyb2xzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1jb250cm9scyIsbnVsbCxbWyJzZW5kQWN0aXZhdGlvbkVtYWlsIiwiZWRpdEFjdGl2YXRpb25FbWFpbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VuZEFjdGl2YXRpb25FbWFpbCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0QWN0aXZhdGlvbkVtYWlsIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL2luZGV4In19KSxFbWJlci5URU1QTEFURVNbImFjY291bnQtY3JlYXRlZC9yZXNlbnQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy1tZXNzYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5zZW50X2FjdGl2YXRpb25fZW1haWxfYWdhaW4iXSxbWyJjdXJyZW50RW1haWwiXSxbWzI0LFsiZW1haWwiXV1dXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLnNlbnRfYWN0aXZhdGlvbl9lbWFpbF9hZ2Fpbl9nZW5lcmljIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYWNjb3VudC1jcmVhdGVkL3Jlc2VudCJ9fSksRW1iZXIuVEVNUExBVEVTLmFwcGxpY2F0aW9uPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLXNpdGUtaGVhZGVyIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwic2l0ZS1oZWFkZXIiLG51bGwsW1siY2FuU2lnblVwIiwic2hvd0NyZWF0ZUFjY291bnQiLCJzaG93TG9naW4iLCJzaG93S2V5Ym9hcmQiLCJ0b2dnbGVNb2JpbGVWaWV3IiwidG9nZ2xlQW5vbnltb3VzIiwibG9nb3V0Il0sW1syNCxbImNhblNpZ25VcCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q3JlYXRlQWNjb3VudCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dLZXlib2FyZFNob3J0Y3V0c0hlbHAiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJ0b2dnbGVNb2JpbGVWaWV3Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsidG9nZ2xlQW5vbnltb3VzIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsibG9nb3V0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImJlbG93LXNpdGUtaGVhZGVyIixbMjgsImhhc2giLG51bGwsW1siY3VycmVudFBhdGgiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsIm1haW4tb3V0bGV0Il0sWzEwLCJjbGFzcyIsIndyYXAiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLW1haW4tY29udGFpbmVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RvcCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjdXN0b20taHRtbCIsbnVsbCxbWyJuYW1lIl0sWyJ0b3AiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjIsIm5vdGlmaWNhdGlvbi1jb25zZW50LWJhbm5lciJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyMiwicHdhLWluc3RhbGwtYmFubmVyIl0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJnbG9iYWwtbm90aWNlIl0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJjcmVhdGUtdG9waWNzLW5vdGljZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9wLW5vdGljZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJjdXJyZW50UGF0aCJdLFtbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsIm91dGxldCIsWyJ1c2VyLWNhcmQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJhYm92ZS1mb290ZXIiLFsyOCwiaGFzaCIsbnVsbCxbWyJzaG93Rm9vdGVyIl0sW1syNCxbInNob3dGb290ZXIiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Rm9vdGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY3VzdG9tLWh0bWwiLG51bGwsW1sibmFtZSIsInRyaWdnZXJBcHBFdmVudCJdLFsiZm9vdGVyIiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImJlbG93LWZvb3RlciIsWzI4LCJoYXNoIixudWxsLFtbInNob3dGb290ZXIiXSxbWzI0LFsic2hvd0Zvb3RlciJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwib3V0bGV0IixbIm1vZGFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjIsInRvcGljLWVudHJhbmNlIl0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsIm91dGxldCIsWyJjb21wb3NlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0Zvb3Rlck5hdiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjIsImZvb3Rlci1uYXYiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJhcHBsaWNhdGlvbiJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImJhZGdlLXNlbGVjdG9yLWF1dG9jb21wbGV0ZSJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8bGk+PGEgaHJlZj4iK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLm5hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjE4fSxlbmQ6e2xpbmU6NCxjb2x1bW46MzN9fX0pKSsiPC9hPjwvbGk+XG4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIjxkaXYgY2xhc3M9J2F1dG9jb21wbGV0ZSBhYy1iYWRnZSc+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uIiwiaW4iLCJvcHRpb25zIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjUsY29sdW1uOjEzfX19KSk/bzoiIikrIiAgPC91bD5cbjwvZGl2PlxuIn0sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFU1siYmFkZ2VzL2luZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJiZyIsImIiXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIl0sWyJiYWRnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBiYWRnZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDEiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1ncm91cHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiYmFkZ2VHcm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWdyb3VwaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjMsMSxbImJhZGdlR3JvdXBpbmciLCJkaXNwbGF5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWdyb3VwLWxpc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJiYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJiYWRnZS1jYXJkIixudWxsLFtbImJhZGdlIiwidXNlcm5hbWUiXSxbWzIzLDIsW11dLFsyNCxbImN1cnJlbnRVc2VyIiwidXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYmFkZ2VzL2luZGV4In19KSxFbWJlci5URU1QTEFURVNbImJhZGdlcy9zaG93Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1YiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY29udGFpbmVyIHNob3ctYmFkZ2UgIixbMjQsWyJtb2RlbCIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4gICJdLFs3LCJoMSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImJhZGdlcy5pbmRleCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIC9cXG4gICAgIl0sWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctYmFkZ2UtZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiYmFkZ2UtY2FyZCIsbnVsbCxbWyJiYWRnZSIsInNpemUiLCJjb3VudCJdLFtbMjQsWyJtb2RlbCJdXSwibGFyZ2UiLFsyNCxbInVzZXJCYWRnZXMiLCJncmFudF9jb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJiYWRnZS1ncmFudC1pbmZvICIsWzI4LCJpZiIsW1syNCxbImhpZGRlblNldFRpdGxlIl1dLCIiLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0VGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JhbnQtaW5mby1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLmFsbG93X3RpdGxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsiYnRuLWRlZmF1bHQgcGFkLWxlZnQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVTZXRVc2VyVGl0bGUiXSxudWxsXSwicGVuY2lsLWFsdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm11bHRpcGxlX2dyYW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyYW50LWluZm8taXRlbSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5tdWx0aXBsZV9ncmFudCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0VGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImJhZGdlLXNldC10aXRsZSAiLFsyOCwiaWYiLFtbMjQsWyJoaWRkZW5TZXRUaXRsZSJdXSwiaGlkZGVuIiwiIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiYmFkZ2UtdGl0bGUiLG51bGwsW1sic2VsZWN0YWJsZVVzZXJCYWRnZXMiLCJ1c2VyIl0sW1syNCxbInNlbGVjdGFibGVVc2VyQmFkZ2VzIl1dLFsyNCxbInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgY2xvc2UtYnRuIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlU2V0VXNlclRpdGxlIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyQmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidXNlci1iYWRnZXMgIixbMjQsWyJtb2RlbCIsInNsdWciXV1dXV0sWzhdLFswLCJcXG4iXSxbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuYmFkZ2UtaW5mbyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlcy1ncmFudGVkIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInVzZXJCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIiwic2l6ZSIsImNsYXNzIiwiZGF0ZSJdLFtbMjMsMSxbInVzZXIiXV0sIm1lZGl1bSIsImJhZGdlLWluZm8iLFsyMywxLFsiZ3JhbnRlZF9hdCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JhbnRlZC1vbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYmFkZ2VzLmdyYW50ZWRfb24iXSxbWyJkYXRlIl0sW1syOCwiaW5saW5lLWRhdGUiLFtbMjMsMSxbImdyYW50ZWRfYXQiXV1dLG51bGxdXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsicG9zdF9udW1iZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWxpbmsiXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ0b3BpYyIsInVybCJdXV0sbnVsbF0sIi8iLFsyOCwidW5ib3VuZCIsW1syMywxLFsicG9zdF9udW1iZXIiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjMsMSxbInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiY2FuTG9hZE1vcmUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuU2hvd090aGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiaHJlZiIsWzI5LFtbMjQsWyJtb2RlbCIsInVybCJdXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5vdGhlcnNfY291bnQiXSxbWyJjb3VudCJdLFtbMjQsWyJvdGhlcnNDb3VudCJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsiY2FuTG9hZE1vcmUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJiYWRnZXMvc2hvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJidWxrLXRhZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJ0b3BpY3MuYnVsay4iLFsyNCxbInRpdGxlIl1dXSxudWxsXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbImZpbHRlclBsYWNlaG9sZGVyIiwidGFncyIsImNhdGVnb3J5SWQiXSxbbnVsbCxbMjQsWyJ0YWdzIl1dLFsyNCxbImNhdGVnb3J5SWQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syNCxbImFjdGlvbiJdXSxbMjQsWyJlbXB0eVRhZ3MiXV0sWzI4LCJjb25jYXQiLFsidG9waWNzLmJ1bGsuIixbMjQsWyJsYWJlbCJdXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiYnVsay10YWcifX0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJjYXRlZ29yeS1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgPGxpPjxhIGhyZWY+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImNhdGVnb3J5LWxpbmsiXXx8dCYmdFsiY2F0ZWdvcnktbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24iLHtuYW1lOiJjYXRlZ29yeS1saW5rIixoYXNoOntsaW5rOiJmYWxzZSIsYWxsb3dVbmNhdGVnb3JpemVkOiJ0cnVlIn0saGFzaFR5cGVzOntsaW5rOiJTdHJpbmdMaXRlcmFsIixhbGxvd1VuY2F0ZWdvcml6ZWQ6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2xpbms6dCxhbGxvd1VuY2F0ZWdvcml6ZWQ6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjoxOH0sZW5kOntsaW5lOjQsY29sdW1uOjgxfX19KSkrIjwvYT48L2xpPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtY2F0ZWdvcnknPlxuICA8dWw+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbiIsImluIiwib3B0aW9ucyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTo1LGNvbHVtbjoxM319fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siY2F0ZWdvcnktdGFnLWF1dG9jb21wbGV0ZSJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiIgICAgICA8bGk+XG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubW9kZWwiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgyLHMsMCksaW52ZXJzZTplLnByb2dyYW0oNCxzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46OH0sZW5kOntsaW5lOjksY29sdW1uOjE1fX19KSk/bzoiIikrIiAgICAgIDwvbGk+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICA8YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjYXRlZ29yeS1saW5rIl18fHQmJnRbImNhdGVnb3J5LWxpbmsiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLm1vZGVsIix7bmFtZToiY2F0ZWdvcnktbGluayIsaGFzaDp7bGluazoiZmFsc2UiLGFsbG93VW5jYXRlZ29yaXplZDoidHJ1ZSJ9LGhhc2hUeXBlczp7bGluazoiU3RyaW5nTGl0ZXJhbCIsYWxsb3dVbmNhdGVnb3JpemVkOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntsaW5rOnQsYWxsb3dVbmNhdGVnb3JpemVkOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTh9LGVuZDp7bGluZTo2LGNvbHVtbjo4N319fSkpKyI8L2E+XG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICA8YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRhZyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxOH0sZW5kOntsaW5lOjgsY29sdW1uOjM0fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46MzR9LGVuZDp7bGluZTo4LGNvbHVtbjo0OX19fSkpKyIgeCAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLmNvdW50Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjo1Mn0sZW5kOntsaW5lOjgsY29sdW1uOjY4fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0nYXV0b2NvbXBsZXRlIGFjLWNhdGVnb3J5LW9yLXRhZyc+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uIiwiaW4iLCJvcHRpb25zIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjExLGNvbHVtbjoxM319fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYWJvdXQtcGFnZS11c2VycyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidXNlclRlbXBsYXRlIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInVzZXJzVGVtcGxhdGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiZGF0YS11c2VybmFtZSIsWzI5LFtbMjMsMSxbInVzZXJuYW1lIl1dXV1dLFsxMCwiY2xhc3MiLCJ1c2VyLWluZm8gc21hbGwiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1pbWFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVzZXJQYXRoIl1dXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzIzLDEsWyJ1c2VybmFtZSJdXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjMsMSxbImF2YXRhciJdXSx0cnVlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWRldGFpbCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUtbGluZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVzZXJQYXRoIl1dXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzIzLDEsWyJ1c2VybmFtZSJdXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyMywxLFsidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzIzLDEsWyJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFsxLFsyMywxLFsidGl0bGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9hYm91dC1wYWdlLXVzZXJzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYWN0aXZhdGlvbi1jb250cm9scyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNpdGVTZXR0aW5ncyIsIm11c3RfYXBwcm92ZV91c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syNCxbInNlbmRBY3RpdmF0aW9uRW1haWwiXV0sImxvZ2luLnJlc2VuZF90aXRsZSIsImVudmVsb3BlIiwiYnRuLXByaW1hcnkgcmVzZW5kIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syNCxbImVkaXRBY3RpdmF0aW9uRW1haWwiXV0sImxvZ2luLmNoYW5nZV9lbWFpbCIsInBlbmNpbC1hbHQiLCJlZGl0LWVtYWlsIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2FjdGl2YXRpb24tY29udHJvbHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9hY3RpdmF0aW9uLWVtYWlsLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnByb3ZpZGVfbmV3X2VtYWlsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImNsYXNzIl0sW1syNCxbImVtYWlsIl1dLCJhY3RpdmF0ZS1uZXctZW1haWwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYWN0aXZhdGlvbi1lbWFpbC1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYXZhdGFyLXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgYnRuLWljb24tdGV4dCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2F2YXRhci51cGxvYWRfdGl0bGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLWltYWdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1cGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbInVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiVcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFsidXBsb2FkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiaW1hZ2UvKiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImltYWdlSXNOb3RBU3F1YXJlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIuaW1hZ2VfaXNfbm90X2Ffc3F1YXJlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYXZhdGFyLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFja3VwLWNvZGVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwid3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbNywidGV4dGFyZWEiLHRydWVdLFsxMCwiaWQiLCJiYWNrdXBDb2RlcyJdLFsxMCwiY2xhc3MiLCJiYWNrdXAtY29kZXMtYXJlYSJdLFsxMCwicm93cyIsIjEwIl0sWzEwLCJyZWFkb25seSIsIiJdLFs4XSxbMSxbMjIsImZvcm1hdHRlZEJhY2t1cENvZGVzIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29weVRvQ2xpcGJvYXJkIl0sbnVsbF0sImJhY2t1cC1jb2Rlcy1jb3B5LWJ0biIsImNvcHkiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJkb3dubG9hZCIsImJhY2t1cF9jb2Rlcy50eHQiXSxbMTAsImNsYXNzIiwiYnRuIG5vLXRleHQgYnRuLWljb24gYmFja3VwLWNvZGVzLWRvd25sb2FkLWJ0biJdLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzExLCJocmVmIixbMjksWyJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwiLFsyMiwiYmFzZTY0QmFja3VwQ29kZSJdXV1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImRvd25sb2FkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9iYWNrdXAtY29kZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYWNrdXAtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImFkbWluLmJhY2t1cHMudXBsb2FkLnRpdGxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1pY29uIixbInVwbG9hZCJdLG51bGxdLGZhbHNlXSxbMCwiwqAiXSxbMSxbMjIsInVwbG9hZEJ1dHRvblRleHQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiLmd6Il0sWzEwLCJ0eXBlIiwiZmlsZSJdLFs4XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFja3VwLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFkZ2UtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpY29uLW9yLWltYWdlIixbWzI0LFsiYmFkZ2UiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1kaXNwbGF5LW5hbWUiXSxbOF0sWzEsWzI0LFsiYmFkZ2UiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvYmFkZ2UtY2FyZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZGlzcGxheUNvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwidXJsIl1dLFsxMCwiY2xhc3MiLCJncmFudC1jb3VudCJdLFsxMSwidGl0bGUiLFsyOCwiaTE4biIsWyJiYWRnZXMuZ3JhbnRlZCJdLFtbImNvdW50Il0sW1syNCxbImRpc3BsYXlDb3VudCJdXV1dXV0sWzhdLFsxLFsyMiwiZGlzcGxheUNvdW50Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiYmFkZ2UiLCJoYXNfYmFkZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJ1cmwiXV0sWzEwLCJjbGFzcyIsImNoZWNrLWRpc3BsYXkgc3RhdHVzLWNoZWNrZWQiXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtY29udGVudHMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYmFkZ2UtaWNvbiAiLFsyNCxbImJhZGdlIiwiYmFkZ2VUeXBlQ2xhc3NOYW1lIl1dXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwidXJsIl1dLFs4XSxbMSxbMjgsImljb24tb3ItaW1hZ2UiLFtbMjQsWyJiYWRnZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLWluZm8iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtaW5mby1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjIsInVybCJdXSxbMTAsImNsYXNzIiwiYmFkZ2UtbGluayJdLFs4XSxbMSxbMjQsWyJiYWRnZSIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZS1zdW1tYXJ5Il0sWzhdLFsxLFsyMiwic3VtbWFyeSJdLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtY2FyZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2JhZGdlLXNlbGVjdG9yIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJlbWJlci10ZXh0LWZpZWxkIGJhZGdlLW5hbWVzIl0sWzExLCJwbGFjZWhvbGRlciIsWzIyLCJwbGFjZWhvbGRlciJdXSxbMTAsIm5hbWUiLCJiYWRnZXMiXSxbMTAsInR5cGUiLCJ0ZXh0Il0sWzhdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2Utc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYWRnZS10aXRsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJiYWRnZXMuc2VsZWN0X2JhZGdlX2Zvcl90aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJuYW1lUHJvcGVydHkiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsic2VsZWN0ZWRVc2VyQmFkZ2VJZCJdXSwiYmFkZ2UubmFtZSIsWzI0LFsic2VsZWN0YWJsZVVzZXJCYWRnZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzZWxlY3RlZFVzZXJCYWRnZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSxbMjQsWyJzYXZpbmciXV0sWzI4LCJpZiIsW1syNCxbInNhdmluZyJdXSwic2F2aW5nIiwic2F2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYmFkZ2UtdGl0bGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaGFzSW5jb21pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctbW9yZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwidGFiaW5kZXgiLCIwIl0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gY2xpY2thYmxlIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSxbMjQsWyJzaG93SW5zZXJ0ZWQiXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY291bnQtaTE4biIsbnVsbCxbWyJrZXkiLCJzdWZmaXgiLCJjb3VudCJdLFsidG9waWNfY291bnRfIiwibGF0ZXN0IiwyXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1sic2hvd1Bvc3RlcnMiLCJoaWRlQ2F0ZWdvcnkiLCJ0b3BpY3MiLCJleHBhbmRFeGNlcnB0cyIsImJ1bGtTZWxlY3RFbmFibGVkIiwiY2FuQnVsa1NlbGVjdCIsInNlbGVjdGVkIiwic2tpcEhlYWRlciIsInRhZ3NGb3JVc2VyIiwib25TY3JvbGwiLCJzY3JvbGxPbkxvYWQiXSxbWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsiaGlkZUNhdGVnb3J5Il1dLFsyNCxbInRvcGljcyJdXSxbMjQsWyJleHBhbmRFeGNlcnB0cyJdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyNCxbInNlbGVjdGVkIl1dLFsyNCxbInNraXBIZWFkZXIiXV0sWzI0LFsidGFnc0ZvclVzZXIiXV0sWzI0LFsib25TY3JvbGwiXV0sWzI0LFsic2Nyb2xsT25Mb2FkIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImxvYWRpbmdNb3JlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfdG9waWMubm9uZV9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Jhc2ljLXRvcGljLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9icmVhZC1jcnVtYnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJyZWFkY3J1bWIiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiY2F0ZWdvcnlCcmVhZGNydW1icyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImhhc09wdGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWRyb3AiLG51bGwsW1siY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwib3B0aW9ucyJdLFtbMjMsMSxbImNhdGVnb3J5Il1dLFsyMywxLFsib3B0aW9ucyJdXSxbMjgsImhhc2giLG51bGwsW1sicGFyZW50Q2F0ZWdvcnkiLCJzdWJDYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyIsImF1dG9GaWx0ZXJhYmxlIl0sW1syMywxLFsicGFyZW50Q2F0ZWdvcnkiXV0sWzIzLDEsWyJpc1N1YmNhdGVnb3J5Il1dLFsyMywxLFsibm9TdWJjYXRlZ29yaWVzIl1dLHRydWVdXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInRhZ2dpbmdfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1kcm9wIixudWxsLFtbImN1cnJlbnRDYXRlZ29yeSIsInRhZ0lkIl0sW1syNCxbImNhdGVnb3J5Il1dLFsyNCxbInRhZ0lkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsInRhZ05hbWUiXSxbImJyZWFkLWNydW1icy1yaWdodCIsImxpIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2JyZWFkLWNydW1icyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2J1bGstc2VsZWN0LWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImJ1bGstc2VsZWN0Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0J1bGtBY3Rpb25zIl0sbnVsbF0sIndyZW5jaCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvYnVsay1zZWxlY3QtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2FuY2VsLWxpbmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsiY2FuY2VsIixbMjQsWyJyb3V0ZSJdXSxbMjQsWyJhcmdzIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImNhbmNlbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2FuY2VsLWxpbmsifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29sdW1uIGNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjYXRlZ29yaWVzLW9ubHkiLG51bGwsW1siY2F0ZWdvcmllcyJdLFtbMjQsWyJjYXRlZ29yaWVzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29sdW1uIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcmllcy10b3BpYy1saXN0IixudWxsLFtbInRvcGljcyIsImZpbHRlciIsImNsYXNzIl0sW1syNCxbInRvcGljcyJdXSwibGF0ZXN0IiwibGF0ZXN0LXRvcGljLWxpc3QiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yaWVzLWFuZC1sYXRlc3QtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbHVtbiBjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcmllcy1vbmx5IixudWxsLFtbImNhdGVnb3JpZXMiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbHVtbiJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3JpZXMtdG9waWMtbGlzdCIsbnVsbCxbWyJ0b3BpY3MiLCJmaWx0ZXIiLCJjbGFzcyJdLFtbMjQsWyJ0b3BpY3MiXV0sInRvcCIsInRvcC10b3BpYy1saXN0Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1hbmQtdG9wLXRvcGljcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzI0LFsidG9waWNTdGF0dXNJY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0VW5yZWFkVXJsIl1dXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJ0ZXh0LW92ZXJmbG93IixudWxsLFtbImNsYXNzIiwidGV4dCJdLFsib3ZlcmZsb3ciLFsyNCxbInRvcGljIiwiZmFuY3lUaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcy10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtYm94ZXMtd2l0aC10b3BpY3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImMiLCJ0b3BpYyJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhdGVnb3J5IGNhdGVnb3J5LWJveCBjYXRlZ29yeS1ib3gtIixbMjgsInVuYm91bmQiLFtbMjMsMSxbInNsdWciXV1dLG51bGxdXV1dLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDEsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaGVhZGluZyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjMsMSxbInVybCJdXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiY2RuLWltZyIsbnVsbCxbWyJzcmMiLCJjbGFzcyIsIndpZHRoIiwiaGVpZ2h0Il0sW1syMywxLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwibG9nbyIsWzIzLDEsWyJ1cGxvYWRlZF9sb2dvIiwid2lkdGgiXV0sWzIzLDEsWyJ1cGxvYWRlZF9sb2dvIiwiaGVpZ2h0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1iZWZvcmUiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWFkX3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsibG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFsxLFsyMywxLFsibmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpY3MiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yaWVzLWJveGVzLXRvcGljIixudWxsLFtbInRvcGljIl0sW1syMywyLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yaWVzLWJveGVzLXdpdGgtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInNjIiwic3ViY2F0ZWdvcnkiLCJzdWJzdWJjYXRlZ29yeSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhdGVnb3J5IGNhdGVnb3J5LWJveCBjYXRlZ29yeS1ib3gtIixbMjgsInVuYm91bmQiLFtbMjMsMSxbInNsdWciXV1dLG51bGxdXV1dLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDEsWyJjb2xvciJdXV0sbnVsbF1dLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDEsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDEsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJkYXRhLXVybCIsWzIzLDEsWyJ1cmwiXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1sb2dvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImNkbi1pbWciLG51bGwsW1sic3JjIiwiY2xhc3MiLCJ3aWR0aCIsImhlaWdodCJdLFtbMjMsMSxbInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV0sImxvZ28iLFsyMywxLFsidXBsb2FkZWRfbG9nbyIsIndpZHRoIl1dLFsyMywxLFsidXBsb2FkZWRfbG9nbyIsImhlaWdodCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1ib3gtaGVhZGluZyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwicGFyZW50LWJveC1saW5rIl0sWzExLCJocmVmIixbMjMsMSxbInVybCJdXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWFkX3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsb2NrIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1vdmVyZmxvdyIsbnVsbCxbWyJjbGFzcyIsInRleHQiXSxbIm92ZXJmbG93IixbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV1dXV0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDMsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDMsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJzdHlsZSIsWzI4LCJib3JkZXItY29sb3IiLFtbMjMsMyxbImNvbG9yIl1dXSxudWxsXV0sWzExLCJjbGFzcyIsWzI5LFsic3ViY2F0ZWdvcnkgd2l0aC1zdWJjYXRlZ29yaWVzICIsWzI4LCJpZiIsW1syMywzLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiaGFzLWxvZ28iLCJuby1sb2dvIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeS1ib3gtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWxpbmsiLG51bGwsW1sidGFnTmFtZSIsImNhdGVnb3J5Il0sWyJoNCIsWzIzLDMsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDMsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsMyxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw0LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsNCxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMyw0LFtdXV0sW1siaGlkZVBhcmVudCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzRdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5Il0sWzExLCJocmVmIixbMjMsMixbInVybCJdXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yeS1pbWFnZS1wbGFjZWhvbGRlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjZG4taW1nIixudWxsLFtbInNyYyIsImNsYXNzIiwid2lkdGgiLCJoZWlnaHQiXSxbWzIzLDIsWyJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJsb2dvIixbMjMsMixbInVwbG9hZGVkX2xvZ28iLCJ3aWR0aCJdXSxbMjMsMixbInVwbG9hZGVkX2xvZ28iLCJoZWlnaHQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDIsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2F0ZWdvcmllcy1ib3hlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInQiLCJzdWJjYXRlZ29yeSIsInN1YmNhdGVnb3J5Iiwic3Vic3ViY2F0ZWdvcnkiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXRlZ29yeS1saXN0ICIsWzI4LCJpZiIsW1syNCxbInNob3dUb3BpY3MiXV0sIndpdGgtdG9waWNzIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5Il0sWzhdLFs3LCJzcGFuIix0cnVlXSxbMTAsImFyaWEtcm9sZSIsImhlYWRpbmciXSxbMTAsImFyaWEtbGV2ZWwiLCIyIl0sWzEwLCJpZCIsImNhdGVnb3JpZXMtb25seS1jYXRlZ29yeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy50b3BpY3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNsYXNzIiwibGF0ZXN0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmxhdGVzdCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywidGJvZHkiLHRydWVdLFsxMCwiYXJpYS1sYWJlbGxlZGJ5IiwiY2F0ZWdvcmllcy1vbmx5LWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTEsImRhdGEtY2F0ZWdvcnktaWQiLFsyMywxLFsiaWQiXV1dLFsxMSwiZGF0YS1ub3RpZmljYXRpb24tbGV2ZWwiLFsyMywxLFsibm90aWZpY2F0aW9uTGV2ZWxTdHJpbmciXV1dLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syMywxLFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXSwiaGFzLWRlc2NyaXB0aW9uIiwibm8tZGVzY3JpcHRpb24iXSxudWxsXSwiICIsWzI4LCJpZiIsW1syMywxLFsidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiaGFzLWxvZ28iLCJuby1sb2dvIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnkiXSxbMTEsInN0eWxlIixbMjgsImJvcmRlci1jb2xvciIsW1syMywxLFsiY29sb3IiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktdGl0bGUtbGluayIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXItc3BhbiIsW1syMywxLFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXV0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbGlzdCBzdWJjYXRlZ29yaWVzLXdpdGgtc3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDQsWyJpZCJdXV0sWzExLCJkYXRhLW5vdGlmaWNhdGlvbi1sZXZlbCIsWzIzLDQsWyJub3RpZmljYXRpb25MZXZlbFN0cmluZyJdXV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dLCJoYXMtZGVzY3JpcHRpb24iLCJuby1kZXNjcmlwdGlvbiJdLG51bGxdLCIgIixbMjgsImlmIixbWzIzLDQsWyJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJoYXMtbG9nbyIsIm5vLWxvZ28iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeSJdLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDQsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1saW5rIixudWxsLFtbInRhZ05hbWUiLCJjYXRlZ29yeSJdLFsiaDQiLFsyMyw0LFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMyw0LFsiZGVzY3JpcHRpb25fZXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktZGVzY3JpcHRpb24gc3ViY2F0ZWdvcnktZGVzY3JpcHRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpci1zcGFuIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syMyw0LFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsNCxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw1LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1iZWZvcmUiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDUsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMyw1LFtdXV0sW1siaGlkZVBhcmVudCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbNV19LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIHN1YmNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpci1zcGFuIixbWzIzLDQsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNF19LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzIzLDMsWyJpc011dGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMyxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDMsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXVucmVhZCIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjMsMyxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsInRpdGxlIixbMjMsMSxbInN0YXRUaXRsZSJdXV0sWzhdLFsxLFsyMywxLFsic3RhdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktdW5yZWFkIixudWxsLFtbImNhdGVnb3J5IiwidGFnTmFtZSIsImNsYXNzIl0sW1syMywxLFtdXSwiZGl2IiwidW5yZWFkLW5ldyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYXRlc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJmZWF0dXJlZFRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZmVhdHVyZWQtdG9waWMiLG51bGwsW1sidG9waWMiLCJsYXRlc3RUb3BpY09ubHkiXSxbWzIzLDIsW11dLFsyNCxbImxhdGVzdFRvcGljT25seSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtdG9waWMtbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidCJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhYmxlLWhlYWRpbmciXSxbMTAsImFyaWEtcm9sZSIsImhlYWRpbmciXSxbMTAsImFyaWEtbGV2ZWwiLCIyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbImZpbHRlcnMuIixbMjQsWyJmaWx0ZXIiXV0sIi50aXRsZSJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJsYXRlc3QtdG9waWMtbGlzdC1pdGVtIixudWxsLFtbInRvcGljIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9yZS10b3BpY3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwiZ2V0LXVybCIsW1syOCwiY29uY2F0IixbIi8iLFsyNCxbImZpbHRlciJdXV0sbnVsbF1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgcHVsbC1yaWdodCJdLFs4XSxbMSxbMjgsImkxOG4iLFsibW9yZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibm8tdG9waWNzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsidG9waWNzLm5vbmUuIixbMjQsWyJmaWx0ZXIiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtdG9waWMtbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY2F0ZWdvcmllcy1vbmx5IixudWxsLFtbImNhdGVnb3JpZXMiLCJsYXRlc3RUb3BpY09ubHkiLCJzaG93VG9waWNzIl0sW1syNCxbImNhdGVnb3JpZXMiXV0sWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS1uYW1lLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImNhdGVnb3J5IiwiaXNVbmNhdGVnb3JpemVkQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkLWl0ZW0iXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJtYXhsZW5ndGgiXSxbWzI0LFsiY2F0ZWdvcnkiLCJuYW1lIl1dLCJjYXRlZ29yeS5uYW1lX3BsYWNlaG9sZGVyIiwiNTAiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZC1pdGVtIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNsdWciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJtYXhsZW5ndGgiXSxbWzI0LFsiY2F0ZWdvcnkiLCJzbHVnIl1dLCJjYXRlZ29yeS5zbHVnX3BsYWNlaG9sZGVyIiwiMjU1Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LW5hbWUtZmllbGRzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY2F0ZWdvcnktdGl0bGUtYmVmb3JlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsIm5vVGFncyIsImFyZ3MiXSxbImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsdHJ1ZSxbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1iZWZvcmUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS10aXRsZS1saW5rIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LXRpdGxlLWxpbmsiXSxbMTEsImhyZWYiLFsyNCxbImNhdGVnb3J5IiwidXJsIl1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LXRleHQtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWJlZm9yZSIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwicmVhZF9yZXN0cmljdGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsb2NrIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbmFtZSJdLFs4XSxbMSxbMjgsImRpci1zcGFuIixbWzI0LFsiY2F0ZWdvcnkiLCJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJjZG4taW1nIixudWxsLFtbInNyYyIsImNsYXNzIiwid2lkdGgiLCJoZWlnaHQiXSxbWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwidXJsIl1dLCJjYXRlZ29yeS1sb2dvIixbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJ3aWR0aCJdXSxbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJoZWlnaHQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LXRpdGxlLWxpbmsifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jYXRlZ29yeS11bnJlYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsiY2F0ZWdvcnkiLCJ1bnJlYWRVcmwiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBuZXctcG9zdHMgYmFkZ2Utbm90aWZpY2F0aW9uIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudW5yZWFkX3RvcGljcyJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXV1dXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZmlsdGVycy51bnJlYWQubG93ZXJfdGl0bGVfd2l0aF9jb3VudCJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwidW5yZWFkVG9waWNzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsiY2F0ZWdvcnkiLCJuZXdVcmwiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBuZXctcG9zdHMgYmFkZ2Utbm90aWZpY2F0aW9uIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMubmV3X3RvcGljcyJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXV1dXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZmlsdGVycy5uZXcubG93ZXJfdGl0bGVfd2l0aF9jb3VudCJdLFtbImNvdW50Il0sW1syNCxbImNhdGVnb3J5IiwibmV3VG9waWNzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NhdGVnb3J5LXVucmVhZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Nkbi1pbWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNyYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksW1syMiwiY2xhc3MiXSwiIGFzcGVjdC1pbWFnZSJdXV0sWzExLCJzdHlsZSIsWzIyLCJzdHlsZSJdXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW1nIix0cnVlXSxbMTEsInNyYyIsWzIyLCJjZG5TcmMiXV0sWzExLCJ3aWR0aCIsWzIyLCJ3aWR0aCJdXSxbMTEsImhlaWdodCIsWzIyLCJoZWlnaHQiXV0sWzhdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Nkbi1pbWcifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jaG9vc2UtbWVzc2FnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsibSJdLCJzdGF0ZW1lbnRzIjpbWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNob29zZS1tZXNzYWdlLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfbWVzc2FnZS50aXRsZS5zZWFyY2giXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImlkIl0sW1syNCxbIm1lc3NhZ2VUaXRsZSJdXSwiY2hvb3NlX21lc3NhZ2UudGl0bGUucGxhY2Vob2xkZXIiLCJjaG9vc2UtbWVzc2FnZS10aXRsZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvYWRpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJub1Jlc3VsdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfbWVzc2FnZS5ub25lX2ZvdW5kIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJtZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGV4aXN0aW5nLW1lc3NhZ2UiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJjaG9vc2UtbWVzc2FnZS0iLFsyOCwidW5ib3VuZCIsW1syMywxLFsiaWQiXV1dLG51bGxdXV1dLFsxMiwibmFtZSIsImNob29zZV9tZXNzYWdlX2lkIl0sWzEyLCJ0eXBlIiwicmFkaW8iXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjaG9vc2VNZXNzYWdlIixbMjMsMSxbXV1dXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJtZXNzYWdlLXRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jaG9vc2UtbWVzc2FnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Nob29zZS10b3BpYyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidCJdLCJzdGF0ZW1lbnRzIjpbWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNob29zZS10b3BpYy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjQsWyJsYWJlbFRleHQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbWzI0LFsidG9waWNUaXRsZSJdXSwiY2hvb3NlX3RvcGljLnRpdGxlLnBsYWNlaG9sZGVyIiwiY2hvb3NlLXRvcGljLXRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9hZGluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm5vUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNob29zZV90b3BpYy5ub25lX2ZvdW5kIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBleGlzdGluZy10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJpbnB1dCIsZmFsc2VdLFsxMiwiaWQiLFsyOSxbImNob29zZS10b3BpYy0iLFsyOCwidW5ib3VuZCIsW1syMywxLFsiaWQiXV1dLG51bGxdXV1dLFsxMiwibmFtZSIsImNob29zZV90b3BpY19pZCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hvb3NlVG9waWMiLFsyMywxLFtdXV1dLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJhdyIsWyJ0b3BpYy1zdGF0dXMiXSxbWyJ0b3BpYyJdLFtbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJ0aXRsZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiYm91bmQtY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLFtbInJlY3Vyc2l2ZSIsImhpZGVQYXJlbnQiXSxbdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY2hvb3NlLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29sb3ItaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJjbGFzcyIsInZhbHVlIiwibWF4bGVuZ3RoIl0sWyJoZXgtaW5wdXQiLFsyNCxbImhleFZhbHVlIl1dLCI2Il1dXSxmYWxzZV0sWzAsIiAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJwaWNrZXIiXSxbMTAsInR5cGUiLCJpbnB1dCJdLFs4XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbG9yLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29sb3ItcGlja2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbImNvbG9ycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiY29sb3ItcGlja2VyLWNob2ljZSIsbnVsbCxbWyJjb2xvciIsInVzZWRDb2xvcnMiLCJzZWxlY3RDb2xvciJdLFtbMjMsMSxbXV0sWzI0LFsidXNlZENvbG9ycyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0Q29sb3IiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb2xvci1waWNrZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci1hY3Rpb24tdGl0bGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRWRpdGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNvbXBvc2VyLWFjdGlvbnMiLG51bGwsW1siY29tcG9zZXJNb2RlbCIsInJlcGx5T3B0aW9ucyIsImNhbldoaXNwZXIiLCJvcGVuQ29tcG9zZXIiLCJjbG9zZUNvbXBvc2VyIiwiYWN0aW9uIiwidGFiaW5kZXgiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibW9kZWwiLCJyZXBseU9wdGlvbnMiXV0sWzI0LFsiY2FuV2hpc3BlciJdXSxbMjQsWyJvcGVuQ29tcG9zZXIiXV0sWzI0LFsiY2xvc2VDb21wb3NlciJdXSxbMjQsWyJtb2RlbCIsImFjdGlvbiJdXSxbMjQsWyJ0YWJpbmRleCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJhY3Rpb24tdGl0bGUiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzIyLCJhY3Rpb25UaXRsZSJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb21wb3Nlci1hY3Rpb24tdGl0bGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidGFiaW5kZXgiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyIiwicHJldmlld1VwZGF0ZWQiLCJtYXJrZG93bk9wdGlvbnMiLCJleHRyYUJ1dHRvbnMiLCJpbXBvcnRRdW90ZSIsInNob3dVcGxvYWRNb2RhbCIsInRvZ2dsZVByZXZpZXciLCJ2YWxpZGF0aW9uIiwibG9hZGluZyIsImZvcmNlUHJldmlldyIsInNob3dMaW5rIiwiY29tcG9zZXJFdmVudHMiLCJvbkV4cGFuZFBvcHVwTWVudU9wdGlvbnMiLCJvblBvcHVwTWVudUFjdGlvbiIsInBvcHVwTWVudU9wdGlvbnMiLCJkaXNhYmxlZCIsIm91dGxldEFyZ3MiXSxbIjQiLFsyNCxbImNvbXBvc2VyIiwicmVwbHkiXV0sWzI0LFsicmVwbHlQbGFjZWhvbGRlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicHJldmlld1VwZGF0ZWQiXSxudWxsXSxbMjQsWyJtYXJrZG93bk9wdGlvbnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4dHJhQnV0dG9ucyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJpbXBvcnRRdW90ZSJdLG51bGxdLFsyNCxbInNob3dVcGxvYWRNb2RhbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUHJldmlldyJdLG51bGxdLFsyNCxbInZhbGlkYXRpb24iXV0sWzI0LFsiY29tcG9zZXIiLCJsb2FkaW5nIl1dLFsyNCxbImZvcmNlUHJldmlldyJdXSxbMjQsWyJzaG93TGluayJdXSx0cnVlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkV4cGFuZFBvcHVwTWVudU9wdGlvbnMiXSxudWxsXSxbMjQsWyJvblBvcHVwTWVudUFjdGlvbiJdXSxbMjQsWyJwb3B1cE1lbnVPcHRpb25zIl1dLFsyNCxbImRpc2FibGVUZXh0YXJlYSJdXSxbMjgsImhhc2giLG51bGwsW1siY29tcG9zZXIiLCJlZGl0b3JUeXBlIl0sW1syNCxbImNvbXBvc2VyIl1dLCJjb21wb3NlciJdXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiaWQiLCJtb2JpbGUtdXBsb2FkZXIiXSxbMTAsIm11bHRpcGxlIiwiIl0sWzEwLCJ0eXBlIiwiZmlsZSJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbXBvc2VyLWVkaXRvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLW1lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJtZXNzYWdlIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbIm1lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY29tcG9zZXItbWVzc2FnZSIsbnVsbCxbWyJtZXNzYWdlIiwiY2xvc2VNZXNzYWdlIl0sW1syMywxLFtdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2xvc2VNZXNzYWdlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29tcG9zZXItbWVzc2FnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb21wb3Nlci10aXRsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJpZCIsIm1heExlbmd0aCIsInBsYWNlaG9sZGVyS2V5IiwiZGlzYWJsZWQiLCJhdXRvY29tcGxldGUiXSxbWzI0LFsiY29tcG9zZXIiLCJ0aXRsZSJdXSwiMiIsInJlcGx5LXRpdGxlIixbMjQsWyJ0aXRsZU1heExlbmd0aCJdXSxbMjQsWyJjb21wb3NlciIsInRpdGxlUGxhY2Vob2xkZXIiXV0sWzI0LFsiZGlzYWJsZWQiXV0sImRpc2NvdXJzZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb21wb3Nlci10aXRsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLXRvZ2dsZXMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3Nlci1jb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImZsYXQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiJdLFsidG9nZ2xlLXRvb2xiYXIiLCJiYXJzIixbMjQsWyJ0b2dnbGVUb29sYmFyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJmbGF0LWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImljb24iLCJhY3Rpb24iLCJ0aXRsZSJdLFsidG9nZ2xlciIsWzI0LFsidG9nZ2xlSWNvbiJdXSxbMjQsWyJ0b2dnbGVDb21wb3NlciJdXSxbMjQsWyJ0b2dnbGVUaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZmxhdC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIiwidGl0bGUiXSxbInRvZ2dsZS1mdWxsc2NyZWVuIixbMjQsWyJmdWxsc2NyZWVuSWNvbiJdXSxbMjQsWyJ0b2dnbGVGdWxsc2NyZWVuIl1dLFsyNCxbImZ1bGxzY3JlZW5UaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29tcG9zZXItdG9nZ2xlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dTZWxlY3RvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1sidG9waWNJZCIsIm9uQ2hhbmdlQ2FsbGJhY2siLCJpZCIsImluY2x1ZGVNZXNzYWdlYWJsZUdyb3VwcyIsInBsYWNlaG9sZGVyS2V5IiwidGFiaW5kZXgiLCJ1c2VybmFtZXMiLCJoYXNHcm91cHMiLCJhbGxvd0VtYWlscyIsImF1dG9jb21wbGV0ZSJdLFtbMjQsWyJ0b3BpY0lkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0cmlnZ2VyUmVzaXplIl0sbnVsbF0sInByaXZhdGUtbWVzc2FnZS11c2VycyIsInRydWUiLCJjb21wb3Nlci51c2Vyc19wbGFjZWhvbGRlciIsIjEiLFsyNCxbInVzZXJuYW1lcyJdXSxbMjQsWyJoYXNHcm91cHMiXV0sInRydWUiLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVNlbGVjdG9yIl1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhYy13cmFwIGNvbXBvc2VyLXVzZXItc2VsZWN0b3ItbGltaXRlZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjIsImxpbWl0ZWRVc2VybmFtZXMiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSJdLFs4XSxbMSxbMjIsImhpZGRlblVzZXJzQ291bnQiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NvbXBvc2VyLXVzZXItc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb25kaXRpb25hbC1sb2FkaW5nLXNlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJpc0xvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMSxbMjIsInRpdGxlIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJzcGlubmVyICIsWzIyLCJzaXplIl1dXV0sWzhdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zZWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY29uZGl0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNwaW5uZXIgIixbMjIsInNpemUiXV1dXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMTQsMV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb29rLXRleHQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwiY29va2VkIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jb29rLXRleHQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jb3VudC1pMThuIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjIsImkxOG5Db3VudCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvY291bnQtaTE4biJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2NyZWF0ZS10b3BpYy1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpZCIsImFjdGlvbiIsImljb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCIsImNyZWF0ZS10b3BpYyIsWzI0LFsiYWN0aW9uIl1dLCJwbHVzIixbMjQsWyJkaXNhYmxlZCJdXSxbMjQsWyJsYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NyZWF0ZS10b3BpYy1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9jcmVhdGUtdG9waWNzLW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImhpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gYWxlcnQtdG9vLWZldy10b3BpY3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyMiwibWVzc2FnZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2NyZWF0ZS10b3BpY3Mtbm90aWNlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvY3N2LXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJidG4iXSxbMTEsImRpc2FibGVkIixbMjIsInVwbG9hZEJ1dHRvbkRpc2FibGVkIl1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1cGxvYWQiXSxudWxsXSxmYWxzZV0sWzAsIsKgIl0sWzEsWzIyLCJ1cGxvYWRCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJpbnB1dCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhpZGRlbi11cGxvYWQtZmllbGQiXSxbMTEsImRpc2FibGVkIixbMjIsInVwbG9hZGluZyJdXSxbMTAsImFjY2VwdCIsIi5jc3YiXSxbMTAsInR5cGUiLCJmaWxlIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1cGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Nzdi11cGxvYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2N1c3RvbS1odG1sLWNvbnRhaW5lciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJodG1sIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9jdXN0b20taHRtbC1jb250YWluZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kLWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0cmFuc2xhdGVkTGFiZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkLWJ1dHRvbi1sYWJlbCJdLFs4XSxbMSxbMjIsInRyYW5zbGF0ZWRMYWJlbCJdLHRydWVdLFs0LCJpZiIsW1syNCxbImVsbGlwc2lzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCLigKYiXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMTQsMV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZC1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyb3VwIiwiYiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJkLWVkaXRvci10ZXh0YXJlYS13cmFwcGVyICIsWzI4LCJpZiIsW1syNCxbImRpc2FibGVkIl1dLCJkaXNhYmxlZCJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkLWVkaXRvci1idXR0b24tYmFyIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRvb2xiYXIiLCJncm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbImJ1dHRvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJwb3B1cE1lbnUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwidG9vbGJhci1wb3B1cC1tZW51LW9wdGlvbnMiLG51bGwsW1siY29udGVudCIsIm9uQ2hhbmdlIiwib25FeHBhbmQiLCJjbGFzcyIsIm9wdGlvbnMiXSxbWzI0LFsicG9wdXBNZW51T3B0aW9ucyJdXSxbMjQsWyJvblBvcHVwTWVudUFjdGlvbiJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjMsMixbImFjdGlvbiJdXSxbMjMsMixbXV1dLG51bGxdLFsyMywyLFsiY2xhc3NOYW1lIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJwb3B1cFRpdGxlIiwiaWNvbiJdLFtbMjMsMixbInRpdGxlIl1dLFsyMywyLFsiaWNvbiJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsInR5cGUiLCJhY3Rpb25QYXJhbSIsInRyYW5zbGF0ZWRUaXRsZSIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syMywyLFsiYWN0aW9uIl1dLCJidXR0b24iLFsyMywyLFtdXSxbMjMsMixbInRpdGxlIl1dLFsyMywyLFsibGFiZWwiXV0sWzIzLDIsWyJpY29uIl1dLFsyMywyLFsiY2xhc3NOYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syMywxLFsibGFzdEdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLXNwYWNlciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1siYXV0b2NvbXBsZXRlIiwidGFiaW5kZXgiLCJ2YWx1ZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsImlucHV0Il0sWyJkaXNjb3Vyc2UiLFsyNCxbInRhYmluZGV4Il1dLFsyNCxbInZhbHVlIl1dLCJkLWVkaXRvci1pbnB1dCIsWzI0LFsicGxhY2Vob2xkZXJUcmFuc2xhdGVkIl1dLFsyNCxbImRpc2FibGVkIl1dLFsyNCxbImNoYW5nZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWZ0ZXItZC1lZGl0b3IiLCIiLFsyNCxbIm91dGxldEFyZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJkLWVkaXRvci1wcmV2aWV3LXdyYXBwZXIgIixbMjgsImlmIixbWzI0LFsiZm9yY2VQcmV2aWV3Il1dLCJmb3JjZS1wcmV2aWV3Il0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImQtZWRpdG9yLXByZXZpZXciXSxbOF0sWzEsWzIyLCJwcmV2aWV3Il0sdHJ1ZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjbGFzc05hbWVzIiwiYXJncyJdLFsiZWRpdG9yLXByZXZpZXciLCJkLWVkaXRvci1wbHVnaW4iLFsyNCxbIm91dGxldEFyZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsImVtb2ppLXBpY2tlciIsbnVsbCxbWyJhY3RpdmUiLCJpc0VkaXRvckZvY3VzZWQiLCJlbW9qaVNlbGVjdGVkIl0sW1syNCxbImVtb2ppUGlja2VySXNBY3RpdmUiXV0sWzI0LFsiaXNFZGl0b3JGb2N1c2VkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlbW9qaVNlbGVjdGVkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kLWVkaXRvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2QtbW9kYWwtY2FuY2VsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJkLW1vZGFsLWNhbmNlbCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsiY2xvc2UiXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhbmNlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtbW9kYWwtY2FuY2VsIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZC1tb2RhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZXJyb3IiLCJwYW5lbCIsIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtb3V0ZXItY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1taWRkbGUtY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWlubmVyLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWhlYWRlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZGlzbWlzc2FibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyJdLFsidGltZXMiLFsyOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuIGJ0bi1mbGF0IG1vZGFsLWNsb3NlIGNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJwYW5lbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC10YWJzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInBhbmVscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsIm1vZGFsLXRhYiIsbnVsbCxbWyJwYW5lbCIsInBhbmVsc0xlbmd0aCIsInNlbGVjdGVkUGFuZWwiLCJvblNlbGVjdFBhbmVsIl0sW1syMywyLFtdXSxbMjQsWyJwYW5lbHMiLCJsZW5ndGgiXV0sWzI0LFsic2VsZWN0ZWRQYW5lbCJdXSxbMjQsWyJvblNlbGVjdFBhbmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInN1YnRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzIyLCJzdWJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsIm1vZGFsLWFsZXJ0Il0sWzhdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzE0LDNdLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbImVycm9ycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYnV0dG9uIix0cnVlXSxbMTAsImNsYXNzIiwiY2xvc2UiXSxbMTAsImRhdGEtZGlzbWlzcyIsImFsZXJ0Il0sWzhdLFswLCLDlyJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMywxLFtdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2QtbW9kYWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kLW5hdmlnYXRpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiYnJlYWQtY3J1bWJzIixudWxsLFtbImNhdGVnb3JpZXMiLCJjYXRlZ29yeSIsIm5vU3ViY2F0ZWdvcmllcyJdLFtbMjQsWyJjYXRlZ29yaWVzIl1dLFsyNCxbImNhdGVnb3J5Il1dLFsyNCxbIm5vU3ViY2F0ZWdvcmllcyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDYXRlZ29yeUFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY2F0ZWdvcmllcy1hZG1pbi1kcm9wZG93biIsbnVsbCxbWyJvbkNoYW5nZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0Q2F0ZWdvcnlBZG1pbkRyb3Bkb3duQWN0aW9uIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJuYXZpZ2F0aW9uLWJhciIsbnVsbCxbWyJuYXZJdGVtcyIsImZpbHRlck1vZGUiLCJjYXRlZ29yeSJdLFtbMjQsWyJuYXZJdGVtcyJdXSxbMjQsWyJmaWx0ZXJNb2RlIl1dLFsyNCxbImNhdGVnb3J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0NhdGVnb3J5Tm90aWZpY2F0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNhdGVnb3J5LW5vdGlmaWNhdGlvbnMtYnV0dG9uIixudWxsLFtbInZhbHVlIiwiY2F0ZWdvcnkiLCJvbkNoYW5nZSJdLFtbMjQsWyJjYXRlZ29yeSIsIm5vdGlmaWNhdGlvbl9sZXZlbCJdXSxbMjQsWyJjYXRlZ29yeSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlQ2F0ZWdvcnlOb3RpZmljYXRpb25MZXZlbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiYmVmb3JlLWNyZWF0ZS10b3BpYy1idXR0b24iLFsyOCwiaGFzaCIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImNyZWF0ZVRvcGljRGlzYWJsZWQiLCJjcmVhdGVUb3BpY0xhYmVsIl0sW1syNCxbImNhbkNyZWF0ZVRvcGljIl1dLFsyNCxbImNyZWF0ZVRvcGljRGlzYWJsZWQiXV0sWzI0LFsiY3JlYXRlVG9waWNMYWJlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFsxLFsyOCwiY3JlYXRlLXRvcGljLWJ1dHRvbiIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV0sWzI0LFsiY3JlYXRlVG9waWMiXV0sWzI0LFsiY3JlYXRlVG9waWNEaXNhYmxlZCJdXSxbMjQsWyJjcmVhdGVUb3BpY0xhYmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0NhdGVnb3J5RWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBlZGl0LWNhdGVnb3J5IixbMjQsWyJlZGl0Q2F0ZWdvcnkiXV0sIndyZW5jaCIsImNhdGVnb3J5LmVkaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZC1uYXZpZ2F0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGF0ZS1pbnB1dCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwiaW5wdXQiXSxbWzI0LFsiaW5wdXRUeXBlIl1dLCJkYXRlLXBpY2tlciIsWzI0LFsicGxhY2Vob2xkZXIiXV0sWzI0LFsidmFsdWUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uSW5wdXQiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2RhdGUtaW5wdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXBpY2tlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJwbGFjZWhvbGRlciIsInZhbHVlIl0sW1syNCxbImlucHV0VHlwZSJdXSwiZGF0ZS1waWNrZXIiLFsyNCxbInBsYWNlaG9sZGVyIl1dLFsyNCxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZGF0ZS1waWNrZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQtcmFuZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJ1bCIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWxzICIsWzIyLCJjdXJyZW50UGFuZWwiXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImRhdGVfdGltZV9waWNrZXIuZnJvbSIsImZyb20tcGFuZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVBhbmVsIiwiZnJvbSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImRhdGVfdGltZV9waWNrZXIudG8iLCJ0by1wYW5lbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlUGFuZWwiLCJ0byJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3IiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGVycm9yIl0sWzhdLFsxLFsyMiwiZXJyb3IiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWwgZnJvbSAiLFsyOCwiaWYiLFtbMjQsWyJmcm9tUGFuZWxBY3RpdmUiXV0sInZpc2libGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkYXRlLXRpbWUtaW5wdXQiLG51bGwsW1siZGF0ZSIsIm9uQ2hhbmdlIiwic2hvd1RpbWUiXSxbWzI0LFsiZnJvbSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiX29uQ2hhbmdlIixbMjgsImhhc2giLG51bGwsW1sicHJvcCJdLFsiZnJvbSJdXV1dLG51bGxdLFsyNCxbInNob3dGcm9tVGltZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicGFuZWwgdG8gIixbMjgsImlmIixbWzI0LFsidG9QYW5lbEFjdGl2ZSJdXSwidmlzaWJsZSJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRhdGUtdGltZS1pbnB1dCIsbnVsbCxbWyJkYXRlIiwib25DaGFuZ2UiLCJzaG93VGltZSJdLFtbMjQsWyJ0byJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiX29uQ2hhbmdlIixbMjgsImhhc2giLG51bGwsW1sicHJvcCJdLFsidG8iXV1dXSxudWxsXSxbMjQsWyJzaG93VG9UaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQtcmFuZ2UifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kYXRlLXRpbWUtaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZGF0ZS1pbnB1dCIsbnVsbCxbWyJkYXRlIiwib25DaGFuZ2UiXSxbWzI0LFsiZGF0ZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25DaGFuZ2VEYXRlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRpbWUtaW5wdXQiLG51bGwsW1siaG91cnMiLCJtaW51dGVzIiwib25DaGFuZ2UiXSxbWzI0LFsiX2hvdXJzIl1dLFsyNCxbIl9taW51dGVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVRpbWUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2RhdGUtdGltZS1pbnB1dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXNOb3RTdXBwb3J0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiY2xhc3MiLCJsYWJlbCIsImRpc2FibGVkIl0sWyJiZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5ub3Rfc3VwcG9ydGVkIiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpc0RlbmllZFBlcm1pc3Npb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiY2xhc3MiLCJsYWJlbCIsImFjdGlvbiIsImRpc2FibGVkIl0sWyJiZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5wZXJtX2RlbmllZF9idG4iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWNoZWNrUGVybWlzc2lvbiJdLG51bGxdLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZGVza3RvcF9ub3RpZmljYXRpb25zLnBlcm1fZGVuaWVkX2V4cGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwibGFiZWwiLCJhY3Rpb24iXSxbImZhci1iZWxsLXNsYXNoIiwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5kaXNhYmxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybm9mZiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsImxhYmVsIiwiYWN0aW9uIl0sWyJmYXItYmVsbCIsImJ0bi1kZWZhdWx0IiwidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZW5hYmxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybm9uIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rlc2t0b3Atbm90aWZpY2F0aW9uLWNvbmZpZyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2RpcmVjdG9yeS1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbIml0ZW0iLCJ1c2VyIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsImxpa2VzX3JlY2VpdmVkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJsaWtlc19naXZlbiJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjQsWyJpdGVtIiwidG9waWNfY291bnQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsInBvc3RfY291bnQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzI0LFsiaXRlbSIsInRvcGljc19lbnRlcmVkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJwb3N0c19yZWFkIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbIml0ZW0iLCJkYXlzX3Zpc2l0ZWQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUaW1lUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpbWUtcmVhZCJdLFs4XSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbIml0ZW0iLCJ0aW1lX3JlYWQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2RpcmVjdG9yeS10b2dnbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaGVhZGVyLWNvbnRlbnRzIl0sWzhdLFsxLFsyMiwiY29sdW1uSWNvbiJdLGZhbHNlXSxbMSxbMjIsInRpdGxlIl0sZmFsc2VdLFsxLFsyMiwiY2hldnJvbkljb24iXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXJlY3RvcnktdG9nZ2xlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzYWJsZWQtaWNvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFtbMjQsWyJpY29uIl1dXSxbWyJjbGFzcyJdLFsiZmEtc3RhY2stMXgiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZGlzYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sW1siY2xhc3MiXSxbImZhLXN0YWNrLTJ4Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2FibGVkLWljb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ2aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiYmFubmVyIl0sWzExLCJjbGFzcyIsWzIyLCJvdmVybGF5Il1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJ0aXRsZSJdLFsidGltZXMiLCJkaXNtaXNzIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwiYmFubmVyLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJiYW5uZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsImNvbnRlbnQiXSx0cnVlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiLCJzdGFmZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjQsWyJiYW5uZXIiLCJ1cmwiXV1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJiYW5uZXIuZWRpdCJdLG51bGxdLHRydWVdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXNjb3Vyc2UtYmFubmVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzY291cnNlLWxpbmtlZC10ZXh0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjIsInRyYW5zbGF0ZWRUZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2NvdXJzZS1saW5rZWQtdGV4dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Rpc2NvdXJzZS10YWctYm91bmQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyNCxbInRhZ1JlY29yZCIsImlkIl1dLGZhbHNlXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9kaXNjb3Vyc2UtdGFnLWJvdW5kIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZGlzY292ZXJ5LXRvcGljcy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzE0LDEsW1syOCwiaGFzaCIsbnVsbCxbWyJzYXZlU2Nyb2xsUG9zaXRpb24iXSxbWzI0LFsic2F2ZVNjcm9sbFBvc2l0aW9uIl1dXV1dXV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Rpc2NvdmVyeS10b3BpY3MtbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktZ2VuZXJhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS51bmNhdGVnb3JpemVkX2dlbmVyYWxfd2FybmluZyJdLFtbInNldHRpbmdMaW5rIiwiY3VzdG9taXplTGluayJdLFtbMjQsWyJ1bmNhdGVnb3JpemVkU2l0ZVNldHRpbmdMaW5rIl1dLFsyNCxbImN1c3RvbWl6ZVRleHRDb250ZW50TGluayJdXV1dXSx0cnVlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY2F0ZWdvcnktbmFtZS1maWVsZHMiLG51bGwsW1siY2F0ZWdvcnkiLCJ0YWdOYW1lIl0sW1syNCxbImNhdGVnb3J5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VsZWN0UGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucGFyZW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInJvb3ROb25lIiwidmFsdWUiLCJleGNsdWRlQ2F0ZWdvcnlJZCIsImNhdGVnb3JpZXMiLCJhbGxvd1N1YkNhdGVnb3JpZXMiLCJhbGxvd1VuY2F0ZWdvcml6ZWQiLCJvbkNoYW5nZSJdLFt0cnVlLFsyNCxbImNhdGVnb3J5IiwicGFyZW50X2NhdGVnb3J5X2lkIl1dLFsyNCxbImNhdGVnb3J5IiwiaWQiXV0sWzI0LFsicGFyZW50Q2F0ZWdvcmllcyJdXSx0cnVlLGZhbHNlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiY2F0ZWdvcnkiLCJwYXJlbnRfY2F0ZWdvcnlfaWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdWJDYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3JpZXMuc3ViY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic3ViQ2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzIzLDEsW11dXSxbWyJoaWRlUGFyZW50Il0sWyJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dEZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwiZGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI0LFsiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiJdXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm5vX2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY191cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IGVkaXQtY2F0ZWdvcnktZGVzY3JpcHRpb24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93Q2F0ZWdvcnlUb3BpYyJdLG51bGxdLCJwZW5jaWwtYWx0IiwiY2F0ZWdvcnkuY2hhbmdlX2luX2NhdGVnb3J5X3RvcGljIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm5vQ2F0ZWdvcnlTdHlsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5iYWRnZV9jb2xvcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktY29sb3ItZWRpdG9yIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwiY2F0ZWdvcnlCYWRnZVByZXZpZXciXSx0cnVlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQtcHJlcGVuZCBpbnB1dC1hcHBlbmQiXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogMTBweDsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbG9yLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5iYWNrZ3JvdW5kX2NvbG9yIl0sbnVsbF0sZmFsc2VdLFswLCI6Il0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbG9ycGlja2VyLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYWRkLW9uIl0sWzhdLFswLCIjIl0sWzldLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwibWF4bGVuZ3RoIl0sW1syNCxbImNhdGVnb3J5IiwiY29sb3IiXV0sImNhdGVnb3J5LmNvbG9yX3BsYWNlaG9sZGVyIiwiNiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbG9yLXBpY2tlciIsbnVsbCxbWyJjb2xvcnMiLCJ1c2VkQ29sb3JzIiwidmFsdWUiXSxbWzI0LFsiYmFja2dyb3VuZENvbG9ycyJdXSxbMjQsWyJ1c2VkQmFja2dyb3VuZENvbG9ycyJdXSxbMjQsWyJjYXRlZ29yeSIsImNvbG9yIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0LXByZXBlbmQgaW5wdXQtYXBwZW5kIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJjb2xvci10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkuZm9yZWdyb3VuZF9jb2xvciJdLG51bGxdLGZhbHNlXSxbMCwiOiJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb2xvcnBpY2tlci13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFkZC1vbiJdLFs4XSxbMCwiIyJdLFs5XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsIm1heGxlbmd0aCJdLFtbMjQsWyJjYXRlZ29yeSIsInRleHRfY29sb3IiXV0sImNhdGVnb3J5LmNvbG9yX3BsYWNlaG9sZGVyIiwiNiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbG9yLXBpY2tlciIsbnVsbCxbWyJjb2xvcnMiLCJ2YWx1ZSIsImlkIl0sW1syNCxbImZvcmVncm91bmRDb2xvcnMiXV0sWzI0LFsiY2F0ZWdvcnkiLCJ0ZXh0X2NvbG9yIl1dLCJlZGl0LXRleHQtY29sb3IiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LWdlbmVyYWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LWltYWdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkubG9nbyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsIm9uVXBsb2FkRG9uZSIsIm9uVXBsb2FkRGVsZXRlZCIsInR5cGUiLCJjbGFzcyJdLFtbMjQsWyJsb2dvSW1hZ2VVcmwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ29VcGxvYWREb25lIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ29VcGxvYWREZWxldGVkIl0sbnVsbF0sImNhdGVnb3J5X2xvZ28iLCJuby1yZXBlYXQgY29udGFpbi1pbWFnZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmJhY2tncm91bmRfaW1hZ2UiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiaW1hZ2UtdXBsb2FkZXIiLG51bGwsW1siaW1hZ2VVcmwiLCJvblVwbG9hZERvbmUiLCJvblVwbG9hZERlbGV0ZWQiLCJ0eXBlIl0sW1syNCxbImJhY2tncm91bmRJbWFnZVVybCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYmFja2dyb3VuZFVwbG9hZERvbmUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYmFja2dyb3VuZFVwbG9hZERlbGV0ZWQiXSxudWxsXSwiY2F0ZWdvcnlfYmFja2dyb3VuZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktaW1hZ2VzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJjdXN0b21Db21wb25lbnQiXV1dLFtbInRhYiIsInNlbGVjdGVkVGFiIiwiY2F0ZWdvcnkiXSxbWzI0LFsidGFiIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLFsyNCxbImNhdGVnb3J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1wYW5lbCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2VjdXJpdHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInAiXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5IiwiaXNfc3BlY2lhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsImlzVW5jYXRlZ29yaXplZENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnVuY2F0ZWdvcml6ZWRfc2VjdXJpdHlfd2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNwZWNpYWxfd2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwidW5sZXNzIixbWzI0LFsiY2F0ZWdvcnkiLCJpc1VuY2F0ZWdvcml6ZWRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBlcm1pc3Npb24tbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yeSIsInBlcm1pc3Npb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2UtZ3JvdXAiXSxbOF0sWzEsWzIzLDEsWyJncm91cF9uYW1lIl1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmNhbiJdLG51bGxdLHRydWVdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJwZXJtaXNzaW9uIl0sWzhdLFsxLFsyMywxLFsicGVybWlzc2lvbiIsImRlc2NyaXB0aW9uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImVkaXRpbmdQZXJtaXNzaW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImNsYXNzIiwicmVtb3ZlLXBlcm1pc3Npb24iXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVQZXJtaXNzaW9uIixbMjMsMSxbXV1dXSxbOF0sWzEsWzI4LCJkLWljb24iLFsidGltZXMtY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImVkaXRpbmdQZXJtaXNzaW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsImF2YWlsYWJsZUdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siY2xhc3MiLCJjb250ZW50Iiwib25DaGFuZ2UiLCJ2YWx1ZSIsInZhbHVlUHJvcGVydHkiLCJuYW1lUHJvcGVydHkiXSxbImF2YWlsYWJsZS1ncm91cHMiLFsyNCxbImNhdGVnb3J5IiwiYXZhaWxhYmxlR3JvdXBzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvblNlbGVjdEdyb3VwIl0sbnVsbF0sWzI0LFsic2VsZWN0ZWRHcm91cCJdXSxudWxsLG51bGxdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsIm5hbWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJvbkNoYW5nZSIsInZhbHVlIl0sWyJwZXJtaXNzaW9uLXNlbGVjdG9yIiwiZGVzY3JpcHRpb24iLFsyNCxbImNhdGVnb3J5IiwiYXZhaWxhYmxlUGVybWlzc2lvbnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uU2VsZWN0UGVybWlzc2lvbiJdLG51bGxdLFsyNCxbInNlbGVjdGVkUGVybWlzc2lvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRQZXJtaXNzaW9uIixbMjQsWyJzZWxlY3RlZEdyb3VwIl1dLFsyNCxbInNlbGVjdGVkUGVybWlzc2lvbiJdXV0sbnVsbF0sImJ0bi1wcmltYXJ5IGFkZC1wZXJtaXNzaW9uIiwicGx1cyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UGVuZGluZ0dyb3VwQ2hhbmdlc0FsZXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwZW5kaW5nLXBlcm1pc3Npb24tY2hhbmdlLWFsZXJ0Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFycm93LWRpdiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucGVuZGluZ19wZXJtaXNzaW9uX2NoYW5nZV9hbGVydCJdLFtbImdyb3VwIl0sW1syNCxbInNlbGVjdGVkR3JvdXAiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImNhdGVnb3J5IiwiaXNfc3BlY2lhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0UGVybWlzc2lvbnMiXSxudWxsXSwiYnRuLWRlZmF1bHQgZWRpdC1wZXJtaXNzaW9uIiwiY2F0ZWdvcnkuZWRpdF9wZXJtaXNzaW9ucyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJjb25uZWN0b3JUYWdOYW1lIiwidGFnTmFtZSJdLFsiY2F0ZWdvcnktY3VzdG9tLXNlY3VyaXR5IixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV0sIiIsInNlY3Rpb24iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS1zZWN1cml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNldHRpbmdzX3NlY3Rpb25zLmdlbmVyYWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UG9zaXRpb25JbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgcG9zaXRpb24tZmllbGRzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktcG9zaXRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnBvc2l0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3MiLCJ0eXBlIl0sW1syNCxbImNhdGVnb3J5IiwicG9zaXRpb24iXV0sImNhdGVnb3J5LXBvc2l0aW9uIiwicG9zaXRpb24taW5wdXQiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaG93UG9zaXRpb25JbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5wb3NpdGlvbl9kaXNhYmxlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFsiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvYmFzaWMiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnBvc2l0aW9uX2Rpc2FibGVkX2NsaWNrIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1udW1iZXItZmVhdHVyZWQtdG9waWNzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsInBhcmVudF9jYXRlZ29yeV9pZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkuc3ViY2F0ZWdvcnlfbnVtX2ZlYXR1cmVkX3RvcGljcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm51bV9mZWF0dXJlZF90b3BpY3MiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSJdLFtbMjQsWyJjYXRlZ29yeSIsIm51bV9mZWF0dXJlZF90b3BpY3MiXV0sImNhdGVnb3J5LW51bWJlci1mZWF0dXJlZC10b3BpY3MiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1zZWFyY2gtcHJpb3JpdHkiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZWFyY2hfcHJpb3JpdHkubGFiZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiaWQiLCJjb250ZW50IiwidmFsdWUiLCJvbkNoYW5nZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1zZWFyY2gtcHJpb3JpdHkiLFsyNCxbInNlYXJjaFByaW9yaXRpZXNPcHRpb25zIl1dLFsyNCxbImNhdGVnb3J5Iiwic2VhcmNoX3ByaW9yaXR5Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiY2F0ZWdvcnkiLCJzZWFyY2hfcHJpb3JpdHkiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiYWxsb3dfYmFkZ2VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmFsbG93X2JhZGdlc19sYWJlbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInRvcGljX2ZlYXR1cmVkX2xpbmtfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGxvd2VkLXRvcGljLWZlYXR1cmVkLWxpbmstY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY2hlY2tib3gtbGFiZWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY19mZWF0dXJlZF9saW5rX2FsbG93ZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnRvcGljX2ZlYXR1cmVkX2xpbmtfYWxsb3dlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJuYXZpZ2F0ZV90b19maXJzdF9wb3N0X2FmdGVyX3JlYWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkubmF2aWdhdGVfdG9fZmlyc3RfcG9zdF9hZnRlcl9yZWFkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiXSxbImNoZWNrYm94IixbMjQsWyJjYXRlZ29yeSIsImFsbF90b3BpY3Nfd2lraSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5hbGxfdG9waWNzX3dpa2kiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNldHRpbmdzX3NlY3Rpb25zLm1vZGVyYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfY2F0ZWdvcnlfZ3JvdXBfcmV2aWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInJldmlld2FibGUtYnktZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnJldmlld2FibGVfYnlfZ3JvdXAiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJncm91cC1zZWxlY3RvciIsbnVsbCxbWyJncm91cEZpbmRlciIsInNpbmdsZSIsImdyb3VwTmFtZXMiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJncm91cEZpbmRlciJdXSwidHJ1ZSIsWzI0LFsiY2F0ZWdvcnkiLCJyZXZpZXdhYmxlX2J5X2dyb3VwX25hbWUiXV0sImNhdGVnb3J5LnJldmlld19ncm91cF9uYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiY3VzdG9tX2ZpZWxkcyIsInJlcXVpcmVfdG9waWNfYXBwcm92YWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkucmVxdWlyZV90b3BpY19hcHByb3ZhbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJjdXN0b21fZmllbGRzIiwicmVxdWlyZV9yZXBseV9hcHByb3ZhbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlX3JlcGx5X2FwcHJvdmFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJ0b3BpYy1hdXRvLWNsb3NlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5hdXRvX2Nsb3NlLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSJdLFtbMjQsWyJjYXRlZ29yeSIsImF1dG9fY2xvc2VfaG91cnMiXV0sInRvcGljLWF1dG8tY2xvc2UiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiYXV0b19jbG9zZV9iYXNlZF9vbl9sYXN0X3Bvc3QiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5hdXRvX2Nsb3NlLmJhc2VkX29uX2xhc3RfcG9zdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwidGFnZ2luZ19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCBtaW5pbXVtLXJlcXVpcmVkLXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1taW5pbXVtLXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1pbmltdW1fcmVxdWlyZWRfdGFncyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCIsInR5cGUiLCJtaW4iXSxbWzI0LFsiY2F0ZWdvcnkiLCJtaW5pbXVtX3JlcXVpcmVkX3RhZ3MiXV0sImNhdGVnb3J5LW1pbmltdW0tdGFncyIsIm51bWJlciIsIjAiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1udW1iZXItZGFpbHktYnVtcCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm51bV9hdXRvX2J1bXBfZGFpbHkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCIsInR5cGUiXSxbWzI0LFsiY2F0ZWdvcnkiLCJjdXN0b21fZmllbGRzIiwibnVtX2F1dG9fYnVtcF9kYWlseSJdXSwiY2F0ZWdvcnktbnVtYmVyLWRhaWx5LWJ1bXAiLCJudW1iZXIiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFs4XSxbMCwiXFxuXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZXR0aW5nc19zZWN0aW9ucy5hcHBlYXJhbmNlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIGRlZmF1bHQtdmlldy1maWVsZCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1kZWZhdWx0LXZpZXciXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZWZhdWx0X3ZpZXciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJpZCIsImNvbnRlbnQiLCJ2YWx1ZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1kZWZhdWx0LXZpZXciLFsyNCxbImF2YWlsYWJsZVZpZXdzIl1dLFsyNCxbImNhdGVnb3J5IiwiZGVmYXVsdF92aWV3Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCBkZWZhdWx0LXRvcC1wZXJpb2QtZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktZGVmYXVsdC1wZXJpb2QiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5kZWZhdWx0X3RvcF9wZXJpb2QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJpZCIsImNvbnRlbnQiLCJ2YWx1ZSJdLFsidmFsdWUiLCJjYXRlZ29yeS1kZWZhdWx0LXBlcmlvZCIsWzI0LFsiYXZhaWxhYmxlVG9wUGVyaW9kcyJdXSxbMjQsWyJjYXRlZ29yeSIsImRlZmF1bHRfdG9wX3BlcmlvZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiY2F0ZWdvcnktc29ydC1vcmRlciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnNvcnRfb3JkZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSJdLFsidmFsdWUiLFsyNCxbImF2YWlsYWJsZVNvcnRzIl1dLFsyNCxbImNhdGVnb3J5Iiwic29ydF9vcmRlciJdXSwiY2F0ZWdvcnkuc29ydF9vcHRpb25zLmRlZmF1bHQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImlzRGVmYXVsdFNvcnRPcmRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siY2FzdEJvb2xlYW4iLCJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSJdLFt0cnVlLCJ2YWx1ZSIsWzI0LFsic29ydEFzY2VuZGluZ09wdGlvbnMiXV0sWzI0LFsiY2F0ZWdvcnkiLCJzb3J0X2FzY2VuZGluZyJdXSwiY2F0ZWdvcnkuc29ydF9vcHRpb25zLmRlZmF1bHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImlzUGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgc2hvdy1zdWJjYXRlZ29yeS1saXN0LWZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5Iiwic2hvd19zdWJjYXRlZ29yeV9saXN0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zaG93X3N1YmNhdGVnb3J5X2xpc3QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3ViY2F0ZWdvcnlMaXN0U3R5bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQgc3ViY2F0ZWdvcnktbGlzdC1zdHlsZS1maWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwic3ViY2F0ZWdvcnktbGlzdC1zdHlsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zdWJjYXRlZ29yeV9saXN0X3N0eWxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiaWQiLCJjb250ZW50IiwidmFsdWUiXSxbInZhbHVlIiwic3ViY2F0ZWdvcnktbGlzdC1zdHlsZSIsWzI0LFsiYXZhaWxhYmxlU3ViY2F0ZWdvcnlMaXN0U3R5bGVzIl1dLFsyNCxbImNhdGVnb3J5Iiwic3ViY2F0ZWdvcnlfbGlzdF9zdHlsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5zZXR0aW5nc19zZWN0aW9ucy5lbWFpbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImVtYWlsSW5FbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1lbWFpbC1pbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siaWQiLCJjbGFzcyIsInZhbHVlIl0sWyJjYXRlZ29yeS1lbWFpbC1pbiIsImVtYWlsLWluIixbMjQsWyJjYXRlZ29yeSIsImVtYWlsX2luIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwiZW1haWxfaW5fYWxsb3dfc3RyYW5nZXJzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbl9hbGxvd19zdHJhbmdlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImNhdGVnb3J5IiwibWFpbGluZ2xpc3RfbWlycm9yIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1haWxpbmdsaXN0X21pcnJvciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjYXRlZ29yeS1lbWFpbC1pbiIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5Il0sW1syNCxbImNhdGVnb3J5Il1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJlbWFpbEluRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5lbWFpbF9pbl9kaXNhYmxlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFsiL2FkbWluL3NpdGVfc2V0dGluZ3MvY2F0ZWdvcnkvZW1haWwiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmVtYWlsX2luX2Rpc2FibGVkX2NsaWNrIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwiY29ubmVjdG9yVGFnTmFtZSIsInRhZ05hbWUiXSxbImNhdGVnb3J5LWN1c3RvbS1zZXR0aW5ncyIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5Il0sW1syNCxbImNhdGVnb3J5Il1dXV1dLCIiLCJzZWN0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktc2V0dGluZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LWNhdGVnb3J5LXRhYiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIixbMjksW1syOCwiaWYiLFtbMjQsWyJhY3RpdmUiXV0sImFjdGl2ZSJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdCJdXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFiIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZWRpdC1jYXRlZ29yeS10YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJjYXRlZ29yeS1hbGxvd2VkLXRhZ3MiXSxbOF0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LnRhZ3NfYWxsb3dlZF90YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbImlkIiwidGFncyIsImV2ZXJ5VGFnIiwiZXhjbHVkZVN5bm9ueW1zIiwidW5saW1pdGVkVGFnQ291bnQiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbImNhdGVnb3J5LWFsbG93ZWQtdGFncyIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd2VkX3RhZ3MiXV0sdHJ1ZSx0cnVlLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJjYXRlZ29yeSIsImFsbG93ZWRfdGFncyJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJQbGFjZWhvbGRlciJdLFsiY2F0ZWdvcnkudGFnc19wbGFjZWhvbGRlciJdXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImNhdGVnb3J5LWFsbG93ZWQtdGFnLWdyb3VwcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcnkudGFnc19hbGxvd2VkX3RhZ19ncm91cHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwidGFnLWdyb3VwLWNob29zZXIiLG51bGwsW1siaWQiLCJ0YWdHcm91cHMiXSxbImNhdGVnb3J5LWFsbG93ZWQtdGFnLWdyb3VwcyIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd2VkX3RhZ19ncm91cHMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ0YWdHcm91cHMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbImNhdGVnb3J5Lm1hbmFnZV90YWdfZ3JvdXBzX2xpbmsiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiLCJpZCIsImRpc2FibGVkIl0sWyJjaGVja2JveCIsWzI0LFsiY2F0ZWdvcnkiLCJhbGxvd19nbG9iYWxfdGFncyJdXSwiYWxsb3dfZ2xvYmFsX3RhZ3MiLFsyNCxbImRpc2FibGVBbGxvd0dsb2JhbFRhZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImNhdGVnb3J5LmFsbG93X2dsb2JhbF90YWdzX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS50YWdzX3RhYl9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlZF90YWdfZ3JvdXBfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCB3aXRoLWl0ZW1zIl0sWzhdLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQtaXRlbSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5taW5fdGFnc19mcm9tX3JlcXVpcmVkX2dyb3VwX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwidHlwZSIsIm1pbiJdLFtbMjQsWyJjYXRlZ29yeSIsIm1pbl90YWdzX2Zyb21fcmVxdWlyZWRfZ3JvdXAiXV0sImNhdGVnb3J5LW1pbi10YWdzLWZyb20tZ3JvdXAiLCJudW1iZXIiLCIxIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZmllbGQtaXRlbSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS5yZXF1aXJlZF90YWdfZ3JvdXBfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctZ3JvdXAtY2hvb3NlciIsbnVsbCxbWyJpZCIsInRhZ0dyb3VwcyIsIm9wdGlvbnMiXSxbImNhdGVnb3J5LXJlcXVpcmVkLXRhZy1ncm91cCIsWzI0LFsiY2F0ZWdvcnkiLCJyZXF1aXJlZF90YWdfZ3JvdXBzIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJtYXhpbXVtIiwiZmlsdGVyUGxhY2Vob2xkZXIiXSxbMSwiY2F0ZWdvcnkudGFnX2dyb3VwX3NlbGVjdG9yX3BsYWNlaG9sZGVyIl1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdGFncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yeS50b3BpY190ZW1wbGF0ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsiY2F0ZWdvcnkiLCJ0b3BpY190ZW1wbGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2VkaXQtY2F0ZWdvcnktdG9waWMtdGVtcGxhdGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9lZGl0LXRvcGljLXRpbWVyLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsIm9uQ2hhbmdlIiwiY29udGVudCIsInZhbHVlIl0sWyJ0aW1lci10eXBlIixbMjQsWyJvbkNoYW5nZVN0YXR1c1R5cGUiXV0sWzI0LFsidGltZXJUeXBlcyJdXSxbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUaW1lT25seSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJpbnB1dCIsImxhYmVsIiwic3RhdHVzVHlwZSIsImluY2x1ZGVXZWVrZW5kIiwiYmFzZWRPbkxhc3RQb3N0Iiwib25DaGFuZ2VJbnB1dCJdLFtbMjgsInJlYWRvbmx5IixbWzI0LFsidG9waWNUaW1lciIsInVwZGF0ZVRpbWUiXV1dLG51bGxdLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLndoZW4iLFsyNCxbInNlbGVjdGlvbiJdXSx0cnVlLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsib25DaGFuZ2VVcGRhdGVUaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicHVibGlzaFRvQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnB1Ymxpc2hfdG8iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsImV4Y2x1ZGVDYXRlZ29yeUlkIiwib25DaGFuZ2UiXSxbWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dLFsyNCxbImV4Y2x1ZGVDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQiLG51bGwsW1siaW5wdXQiLCJsYWJlbCIsInN0YXR1c1R5cGUiLCJpbmNsdWRlV2Vla2VuZCIsImNhdGVnb3J5SWQiLCJiYXNlZE9uTGFzdFBvc3QiLCJvbkNoYW5nZUlucHV0Il0sW1syOCwicmVhZG9ubHkiLFtbMjQsWyJ0b3BpY1RpbWVyIiwidXBkYXRlVGltZSJdXV0sbnVsbF0sInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUud2hlbiIsWzI0LFsic2VsZWN0aW9uIl1dLHRydWUsWzI0LFsidG9waWNUaW1lciIsImNhdGVnb3J5X2lkIl1dLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsib25DaGFuZ2VVcGRhdGVUaW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiYXV0b0Nsb3NlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImlucHV0IiwibGFiZWwiLCJzdGF0dXNUeXBlIiwiaW5jbHVkZVdlZWtlbmQiLCJiYXNlZE9uTGFzdFBvc3QiLCJsYXN0UG9zdGVkQXQiLCJvbkNoYW5nZUlucHV0Il0sW1syNCxbInRvcGljVGltZXIiLCJ1cGRhdGVUaW1lIl1dLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLndoZW4iLFsyNCxbInNlbGVjdGlvbiJdXSx0cnVlLFsyNCxbInRvcGljVGltZXIiLCJiYXNlZF9vbl9sYXN0X3Bvc3QiXV0sWzI0LFsibW9kZWwiLCJsYXN0X3Bvc3RlZF9hdCJdXSxbMjQsWyJvbkNoYW5nZVVwZGF0ZVRpbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZWRpdC10b3BpYy10aW1lci1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZW1vamktcGlja2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZW1vamktcGlja2VyIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVtb2ppLXBpY2tlci1tb2RhbCJdLFs4XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Vtb2ppLXBpY2tlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sibmFtZSIsInBsYWNlaG9sZGVyS2V5IiwidmFsdWUiXSxbIm5hbWUiLCJhZG1pbi5lbW9qaS5uYW1lIixbMjQsWyJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImxhYmVsIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJidG4gYnRuLXByaW1hcnkgIixbMjgsImlmIixbWzI0LFsiYWRkRGlzYWJsZWQiXV0sImRpc2FibGVkIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1pY29uIixbInBsdXMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmVtb2ppLmFkZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJoaWRkZW4tdXBsb2FkLWZpZWxkIl0sWzExLCJkaXNhYmxlZCIsWzIyLCJhZGREaXNhYmxlZCJdXSxbMTAsImFjY2VwdCIsIi5wbmcsLmdpZiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Vtb2ppLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZXhwYW5kLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIml0ZW0iLCJ0cnVuY2F0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZXhwYW5kZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsImNvbGxhcHNlLWl0ZW0iXSxbMTEsIm9uY2xpY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVJdGVtIl0sbnVsbF1dLFsxMSwidGl0bGUiLFsyOCwiaTE4biIsWyJwb3N0LmV4cGFuZF9jb2xsYXBzZSJdLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNoZXZyb24tdXAiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiaHJlZiIsIiJdLFsxMCwiY2xhc3MiLCJleHBhbmQtaXRlbSJdLFsxMSwib25jbGljayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUl0ZW0iXSxudWxsXV0sWzExLCJ0aXRsZSIsWzI4LCJpMThuIixbInBvc3QuZXhwYW5kX2NvbGxhcHNlIl0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hldnJvbi1kb3duIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZXhwYW5kLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9mZWF0dXJlZC10b3BpYyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJyYXciLFsidG9waWMtc3RhdHVzIl0sW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInRvcGljIiwibGFzdFVucmVhZFVybCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwidW5ib3VuZCIsW1syNCxbInRvcGljIiwiZmFuY3lUaXRsZSJdXV0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbMSxbMjgsInRvcGljLXBvc3QtYmFkZ2VzIixudWxsLFtbIm5ld1Bvc3RzIiwidW5zZWVuIiwidXJsIl0sW1syNCxbInRvcGljIiwidG90YWxVbnJlYWQiXV0sWzI0LFsidG9waWMiLCJ1bnNlZW4iXV0sWzI0LFsidG9waWMiLCJsYXN0VW5yZWFkVXJsIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsYXN0LXVzZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmxhdGVzdF9ieSJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0UG9zdGVyVXJsIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0X3Bvc3RlciIsInVzZXJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJ0b3BpYyIsImxhc3RQb3N0VXJsIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJmb3JtYXQtYWdlIixbWzI0LFsidG9waWMiLCJsYXN0X3Bvc3RlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsidG9waWMiLCJsYXN0UG9zdFVybCJdXV0sbnVsbF1dXV0sWzEwLCJjbGFzcyIsImxhc3QtcG9zdGVkLWF0Il0sWzhdLFsxLFsyOCwiZm9ybWF0LWFnZSIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9mZWF0dXJlZC10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYWctYWN0aW9uLXR5cGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzTm90aWZ5VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsImZvcm1hdHRlZE5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJyYWRpb18iLFsyOCwidW5ib3VuZCIsW1syNCxbImZsYWciLCJuYW1lX2tleSJdXV0sbnVsbF1dXV0sWzEyLCJuYW1lIiwicG9zdF9hY3Rpb25fdHlwZV9pbmRleCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiLFsyNCxbImZsYWciXV1dXSxbOF0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZy1hY3Rpb24tdHlwZS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI0LFsiZmxhZyIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd01lc3NhZ2VJbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sibmFtZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSJdLFsibWVzc2FnZSIsImZsYWctbWVzc2FnZSIsWzI0LFsiY3VzdG9tUGxhY2Vob2xkZXIiXV0sWzI0LFsibWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjdXN0b20tbWVzc2FnZS1sZW5ndGggIixbMjIsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIl1dXV0sWzhdLFsxLFsyMiwiY3VzdG9tTWVzc2FnZUxlbmd0aCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdGFmZkZsYWdzQXZhaWxhYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImZsYWdnaW5nLm5vdGlmeV9zdGFmZiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNvbnRyb2xzICIsWzI0LFsiZmxhZyIsIm5hbWVfa2V5Il1dXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW5wdXQiLGZhbHNlXSxbMTIsImlkIixbMjksWyJyYWRpb18iLFsyOCwidW5ib3VuZCIsW1syNCxbImZsYWciLCJuYW1lX2tleSJdXV0sbnVsbF1dXV0sWzEyLCJuYW1lIiwicG9zdF9hY3Rpb25fdHlwZV9pbmRleCJdLFsxMiwidHlwZSIsInJhZGlvIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiLFsyNCxbImZsYWciXV1dXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZy1hY3Rpb24tdHlwZS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFs4XSxbMSxbMjIsImZvcm1hdHRlZE5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzIyLCJkZXNjcmlwdGlvbiJdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd01lc3NhZ2VJbnB1dCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sibmFtZSIsImNsYXNzIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSJdLFsibWVzc2FnZSIsImZsYWctbWVzc2FnZSIsWzI0LFsiY3VzdG9tUGxhY2Vob2xkZXIiXV0sWzI0LFsibWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjdXN0b20tbWVzc2FnZS1sZW5ndGggIixbMjIsImN1c3RvbU1lc3NhZ2VMZW5ndGhDbGFzc2VzIl1dXV0sWzhdLFsxLFsyMiwiY3VzdG9tTWVzc2FnZUxlbmd0aCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZmxhZy1hY3Rpb24tdHlwZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYWctc2VsZWN0aW9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIiwiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiZmxhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDIsW1syMywxLFtdXV1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImZsYWdnaW5nLmNhbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9mbGFnLXNlbGVjdGlvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ZsYXQtYnV0dG9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZmxhdC1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9mb290ZXItbWVzc2FnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVkdWNhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZWR1Y2F0aW9uIl0sWzhdLFsxLFsyMiwiZWR1Y2F0aW9uIl0sdHJ1ZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm1lc3NhZ2UiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzE0LDFdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Zvb3Rlci1tZXNzYWdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZnV0dXJlLWRhdGUtaW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdXR1cmUtZGF0ZS1pbnB1dCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyMiwiZGlzcGxheUxhYmVsIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQtc2VsZWN0b3IiLG51bGwsW1sibWluaW11bVJlc3VsdHNGb3JTZWFyY2giLCJzdGF0dXNUeXBlIiwidmFsdWUiLCJpbnB1dCIsImluY2x1ZGVEYXRlVGltZSIsImluY2x1ZGVXZWVrZW5kIiwiaW5jbHVkZUZhckZ1dHVyZSIsImluY2x1ZGVNaWRGdXR1cmUiLCJjbGVhcmFibGUiLCJub25lIiwib25DaGFuZ2VJbnB1dCIsIm9uQ2hhbmdlIl0sWy0xLFsyNCxbInN0YXR1c1R5cGUiXV0sWzI4LCJyZWFkb25seSIsW1syNCxbInNlbGVjdGlvbiJdXV0sbnVsbF0sWzI4LCJyZWFkb25seSIsW1syNCxbImlucHV0Il1dXSxudWxsXSxbMjQsWyJpbmNsdWRlRGF0ZVRpbWUiXV0sWzI0LFsiaW5jbHVkZVdlZWtlbmQiXV0sWzI0LFsiaW5jbHVkZUZhckZ1dHVyZSJdXSxbMjQsWyJpbmNsdWRlTWlkRnV0dXJlIl1dLFsyNCxbImNsZWFyYWJsZSJdXSwidG9waWMuYXV0b191cGRhdGVfaW5wdXQubm9uZSIsWzI0LFsib25DaGFuZ2VJbnB1dCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbInNlbGVjdGlvbiJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlEYXRlQW5kVGltZVBpY2tlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjYWxlbmRhci1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZGF0ZS1waWNrZXItZnV0dXJlIixudWxsLFtbInZhbHVlIiwiZGVmYXVsdERhdGUiLCJvblNlbGVjdCJdLFtbMjQsWyJkYXRlIl1dLFsyNCxbImRhdGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJkYXRlIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1jbG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJwbGFjZWhvbGRlciIsInR5cGUiLCJ2YWx1ZSIsImRpc2FibGVkIl0sWyItLTotLSIsInRpbWUiLFsyNCxbInRpbWUiXV0sWzI0LFsidGltZUlucHV0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNCYXNlZE9uTGFzdFBvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUubnVtX29mX2hvdXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiXSxbWzI0LFsiaW5wdXQiXV0sIm51bWJlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIndpbGxDbG9zZUltbWVkaWF0ZWx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwid2FybmluZyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsIndpbGxDbG9zZUkxOG4iXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb3BpY1N0YXR1c0luZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0b3BpYy10aW1lci1pbmZvIixudWxsLFtbInN0YXR1c1R5cGUiLCJleGVjdXRlQXQiLCJiYXNlZE9uTGFzdFBvc3QiLCJkdXJhdGlvbiIsImNhdGVnb3J5SWQiXSxbWzI0LFsic3RhdHVzVHlwZSJdXSxbMjQsWyJleGVjdXRlQXQiXV0sWzI0LFsiYmFzZWRPbkxhc3RQb3N0Il1dLFsyNCxbImR1cmF0aW9uIl1dLFsyNCxbImNhdGVnb3J5SWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2Z1dHVyZS1kYXRlLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZ2VuZXJhdGVkLWludml0ZS1saW5rIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQubGlua19nZW5lcmF0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFs3LCJpbnB1dCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZS1saW5rLWlucHV0Il0sWzEwLCJzdHlsZSIsIndpZHRoOiA3NSUiXSxbMTEsInZhbHVlIixbMjIsImxpbmsiXV0sWzEwLCJ0eXBlIiwidGV4dCJdLFs4XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnZhbGlkX2ZvciJdLFtbImVtYWlsIl0sW1syNCxbImVtYWlsIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dlbmVyYXRlZC1pbnZpdGUtbGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dsb2JhbC1ub3RpY2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIm5vdGljZSJdLCJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJub3RpY2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImlkIixbMjksWyJnbG9iYWwtbm90aWNlLSIsWzIzLDEsWyJpZCJdXV1dXSxbMTEsImNsYXNzIixbMjksWyJhbGVydCBhbGVydC0iLFsyMywxLFsib3B0aW9ucyIsImxldmVsIl1dLCIgIixbMjMsMSxbImlkIl1dXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJvcHRpb25zIiwiaHRtbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjMsMSxbIm9wdGlvbnMiLCJodG1sIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyMywxLFsidGV4dCJdXSx0cnVlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syMywxLFsib3B0aW9ucyIsImRpc21pc3NhYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJpY29uIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1mbGF0IGNsb3NlIiwidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzTm90aWNlIl0sbnVsbF0sWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ2xvYmFsLW5vdGljZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dvb2dsZS1zZWFyY2giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJhY3Rpb24iLCIvL2dvb2dsZS5jb20vc2VhcmNoIl0sWzEwLCJpZCIsImdvb2dsZS1zZWFyY2giXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwibmFtZSIsInEiXSxbMTEsInZhbHVlIixbMjksW1syMiwic2VhcmNoVGVybSJdXV1dLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsIm5hbWUiLCJhc19zaXRlc2VhcmNoIl0sWzExLCJ2YWx1ZSIsWzI5LFtbMjIsInNpdGVVcmwiXV1dXSxbMTAsInR5cGUiLCJoaWRkZW4iXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImJ1dHRvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNlYXJjaF9nb29nbGVfYnV0dG9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ29vZ2xlLXNlYXJjaCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLWFjdGl2aXR5LWZpbHRlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImxpbmstdG8iLG51bGwsW1sicXVlcnkiLCJyb3V0ZSJdLFtbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnlfaWQiXSxbWzI0LFsiY2F0ZWdvcnlJZCJdXV1dXSxbMjgsImNvbmNhdCIsWyJncm91cC5hY3Rpdml0eS4iLFsyNCxbImZpbHRlciJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJncm91cHMuIixbMjQsWyJmaWx0ZXIiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLWFjdGl2aXR5LWZpbHRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLWNhcmQtY29udGVudHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInVzZXIiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZpc2libGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtY29udGVudCJdLFs4XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1jYXJkLWF2YXRhciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsWzI5LFtbMjIsImdyb3VwUGF0aCJdXV1dLFsxMiwiY2xhc3MiLCJjYXJkLWh1Z2UtYXZhdGFyIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLWZsYWlyIixudWxsLFtbImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIsImdyb3VwTmFtZSJdLFtbMjQsWyJncm91cCIsImZsYWlyX3VybCJdXSxbMjQsWyJncm91cCIsImZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbImdyb3VwIiwiZmxhaXJfY29sb3IiXV0sWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWVzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLFsyOSxbWzIyLCJncm91cFBhdGgiXV1dXSxbMTIsImNsYXNzIiwiZ3JvdXAtcGFnZS1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbMSxbMjQsWyJncm91cCIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJmdWxsX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtbmFtZSJdLFs4XSxbMSxbMjQsWyJncm91cCIsImZ1bGxfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbMTAsImNsYXNzIiwidXNlcm5hbWUiXSxbOF0sWzEsWzI0LFsiZ3JvdXAiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwidXNlcmNhcmQtY29udHJvbHMgZ3JvdXAtZGV0YWlscy1idXR0b24iXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImdyb3VwLW1lbWJlcnNoaXAtYnV0dG9uIixudWxsLFtbIm1vZGVsIiwic2hvd0xvZ2luIl0sW1syNCxbImdyb3VwIl1dLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImdyb3VwIiwibWVzc2FnZWFibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWVzc2FnZUdyb3VwIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdyb3VwLW1lc3NhZ2UtYnV0dG9uIGlubGluZSIsImVudmVsb3BlIiwiZ3JvdXBzLm1lc3NhZ2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJiaW9fY29va2VkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3cgc2Vjb25kLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmlvIl0sWzhdLFsxLFsyNCxbImdyb3VwIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnNPcklzTWVtYmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3cgdGhpcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtZXRhZGF0YSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy51c2VyX2NvdW50Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyNCxbImdyb3VwIiwidXNlcl9jb3VudCJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JvdXAiLCJpc19ncm91cF9vd25lcl9kaXNwbGF5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXguaXNfZ3JvdXBfb3duZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImdyb3VwIiwiaXNfZ3JvdXBfdXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmlzX2dyb3VwX3VzZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImdyb3VwIiwibWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IGZvdXJ0aC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1lbWJlcnMgbWV0YWRhdGEiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiZ3JvdXAiLCJtZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJjYXJkLXRpbnktYXZhdGFyIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1VzZXIiLFsyMywxLFtdXV1dLFs4XSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syMywxLFtdXSwidGlueSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93TW9yZU1lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIixbMjksW1syMiwiZ3JvdXBQYXRoIl1dXV0sWzEyLCJjbGFzcyIsIm1vcmUtbWVtYmVycy1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0dyb3VwIixbMjQsWyJncm91cCJdXV1dLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vcmUtbWVtYmVycy1jb3VudCJdLFs4XSxbMCwiKyJdLFsxLFsyMiwibW9yZU1lbWJlcnNDb3VudCJdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJtb3JlIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLWNhcmQtY29udGVudHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1mbGFpci1pbnB1dHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsImZsYWlyX3VybCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmZsYWlyX3VybCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiXSxbImZsYWlyX3VybCIsImlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfdXJsIl1dLCJncm91cHMuZmxhaXJfdXJsX3BsYWNlaG9sZGVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5mbGFpcl91cmxfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsImZsYWlyX2JnX2NvbG9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuZmxhaXJfYmdfY29sb3IiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJmbGFpcl9iZ19jb2xvciIsImdyb3VwLWZsYWlyLWJnLWNvbG9yIGlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfYmdfY29sb3IiXV0sImdyb3Vwcy5mbGFpcl9iZ19jb2xvcl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZsYWlyUHJldmlld0ljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJmbGFpcl9jb2xvciJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmZsYWlyX2NvbG9yIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJmbGFpcl9jb2xvciIsImdyb3VwLWZsYWlyLWNvbG9yIGlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwiZmxhaXJfY29sb3IiXV0sImdyb3Vwcy5mbGFpcl9jb2xvcl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzIyLCJmbGFpclByZXZpZXdMYWJlbCJdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1mbGFpci1wcmV2aWV3Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaW1nIix0cnVlXSxbMTAsIndpZHRoIiwiNDUiXSxbMTAsImhlaWdodCIsIjQ1Il0sWzExLCJzcmMiLFsyOSxbWzIyLCJkZW1vQXZhdGFyVXJsIl1dXV0sWzEwLCJjbGFzcyIsImF2YXRhciBhY3RvciJdLFs4XSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZsYWlyUHJldmlld0ltYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJhdmF0YXItZmxhaXIgZGVtbyAiLFsyMiwiZmxhaXJQcmV2aWV3Q2xhc3NlcyJdXV1dLFsxMSwic3R5bGUiLFsyMiwiZmxhaXJQcmV2aWV3U3R5bGUiXV0sWzhdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImF2YXRhci1mbGFpciBkZW1vICIsWzIyLCJmbGFpclByZXZpZXdDbGFzc2VzIl1dXV0sWzExLCJzdHlsZSIsWzIyLCJmbGFpclByZXZpZXdTdHlsZSJdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJmbGFpclByZXZpZXdJY29uVXJsIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1mbGFpci1pbnB1dHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1pbmRleC10b2dnbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaGVhZGVyLWNvbnRlbnRzIl0sWzhdLFsxLFsyOCwiaTE4biIsW1syMywwLFsiaTE4bktleSJdXV0sbnVsbF0sZmFsc2VdLFsxLFsyMiwiY2hldnJvbkljb24iXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1pbmRleC10b2dnbGUifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImFjdGlvblBhcmFtIl0sWyJidG4tZGVmYXVsdCBncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhckZpbHRlciJdLG51bGxdLFsyNCxbInR5cGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJsYWJlbCJdLGZhbHNlXSxbOV0sWzAsIjogIl0sWzEsWzIyLCJmaWx0ZXJUZXh0Il0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFsidGltZXMtY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1hbmFnZS1sb2dzLXJvdyJdLFs4XSxbMCwiXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsImFjdGlvbiJdXSwiYWN0aW9uIl1dXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjQsWyJsb2ciLCJhY3Rpb25UaXRsZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJsb2ciLCJhY3RpbmdfdXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaWx0ZXIiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1sidmFsdWUiLCJrZXkiXSxbWzI0LFsibG9nIiwiYWN0aW5nX3VzZXIiLCJ1c2VybmFtZSJdXSwiYWN0aW5nX3VzZXIiXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyNCxbImxvZyIsImFjdGluZ191c2VyIiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvZyIsInRhcmdldF91c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzI0LFsibG9nIiwidGFyZ2V0X3VzZXIiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsInRhcmdldF91c2VyIiwidXNlcm5hbWUiXV0sInRhcmdldF91c2VyIl1dXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyNCxbImxvZyIsInRhcmdldF91c2VyIiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvZyIsInN1YmplY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZmlsdGVyIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbInZhbHVlIiwia2V5Il0sW1syNCxbImxvZyIsInN1YmplY3QiXV0sInN1YmplY3QiXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI0LFsibG9nIiwic3ViamVjdCJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJsb2ciLCJjcmVhdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1hbmFnZS1sb2dzLWV4cGFuZC1kZXRhaWxzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2ciLCJwcmV2X3ZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZURldGFpbHMiXSxudWxsXSxbMjgsImlmIixbWzI0LFsiZXhwYW5kRGV0YWlscyJdXSwiYW5nbGUtdXAiLCJhbmdsZS1kb3duIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXhwYW5kRGV0YWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3Ryb25nIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UubG9ncy5mcm9tIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiOiAiXSxbNywiY29kZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxvZyIsInByZXZfdmFsdWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnRvIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiOiAiXSxbNywiY29kZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxvZyIsIm5ld192YWx1ZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1tYW5hZ2UtbG9ncy1yb3cifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1tYW5hZ2Utc2F2ZS1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGJ1dHRvbnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2aW5nIl1dLCJidG4gYnRuLXByaW1hcnkgZ3JvdXAtbWFuYWdlLXNhdmUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAgICJdLFsxLFsyMiwic2F2aW5nVGV4dCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNhdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3VwLW1lbWJlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI0LFsibWVtYmVyIiwiYWRtaW5QYXRoIl1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJtZW1iZXIiXV1dLFtbImltYWdlU2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lbWJlciIsInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJhdXRvbWF0aWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwicmVtb3ZlIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlIl1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYW5Kb2luR3JvdXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCIsImRpc2FibGVkIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqb2luR3JvdXAiXSxudWxsXSwiZ3JvdXAtaW5kZXgtam9pbiIsInVzZXItcGx1cyIsImdyb3Vwcy5qb2luIixbMjQsWyJ1cGRhdGluZ01lbWJlcnNoaXAiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjYW5MZWF2ZUdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibGVhdmVHcm91cCJdLG51bGxdLCJidG4tZGFuZ2VyIGdyb3VwLWluZGV4LWxlYXZlIiwidXNlci10aW1lcyIsImdyb3Vwcy5sZWF2ZSIsWzI0LFsidXBkYXRpbmdNZW1iZXJzaGlwIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuUmVxdWVzdE1lbWJlcnNoaXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwiaWNvbiIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93UmVxdWVzdE1lbWJlcnNoaXBGb3JtIl0sbnVsbF0sImdyb3VwLWluZGV4LXJlcXVlc3QiLFsyNCxbImxvYWRpbmciXV0sInVzZXItcGx1cyIsImdyb3Vwcy5yZXF1ZXN0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1uYXZpZ2F0aW9uIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0YWIiXSwic3RhdGVtZW50cyI6W1s0LCJtb2JpbGUtbmF2IixudWxsLFtbImNsYXNzIiwiZGVza3RvcENsYXNzIiwiY3VycmVudFBhdGgiXSxbImdyb3VwLW5hdiIsIm5hdiBuYXYtcGlsbHMiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImdyb3Vwcy5pbmRleCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmFsbCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJncm91cC1kcm9wZG93biIsbnVsbCxbWyJncm91cHMiLCJ2YWx1ZSJdLFtbMjQsWyJncm91cCIsImV4dHJhcyIsInZpc2libGVfZ3JvdXBfbmFtZXMiXV0sWzI0LFsiZ3JvdXAiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRhYnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sidGl0bGUiLCJjbGFzcyIsInJvdXRlIiwibW9kZWwiXSxbWzIzLDEsWyJtZXNzYWdlIl1dLFsyMywxLFsibmFtZSJdXSxbMjMsMSxbInJvdXRlIl1dLFsyNCxbImdyb3VwIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImlmIixbWzIzLDEsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzIzLDEsWyJpY29uIl1dXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzIzLDEsWyJtZXNzYWdlIl1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjMsMSxbImNvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY291bnQiXSxbOF0sWzAsIigiXSxbMSxbMjMsMSxbImNvdW50Il1dLGZhbHNlXSxbMCwiKSJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImdyb3VwLXJlcG9ydHMtbmF2LWl0ZW0iLFsyOCwiaGFzaCIsbnVsbCxbWyJncm91cCJdLFtbMjQsWyJncm91cCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLW5hdmlnYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1wb3N0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXggaW5mbyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsicG9zdCIsInVzZXIiLCJ1c2VyVXJsIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInBvc3QiLCJ1c2VyIiwidXNlcm5hbWUiXV1dLG51bGxdXV1dLFsxMCwiY2xhc3MiLCJhdmF0YXItbGluayJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJwb3N0IiwidXNlciJdXV0sW1siaW1hZ2VTaXplIiwiZXh0cmFDbGFzc2VzIiwiaWdub3JlVGl0bGUiXSxbImxhcmdlIiwiYWN0b3IiLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpbWUiXSxbOF0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInBvc3QiLCJjcmVhdGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZXhwYW5kLXBvc3QiLG51bGwsW1siaXRlbSJdLFtbMjQsWyJwb3N0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3RyZWFtLXRvcGljLWRldGFpbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdHJlYW0tdG9waWMtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMiwicG9zdFVybCJdXSxbOF0sWzEsWzI0LFsicG9zdCIsInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1wb3N0LWNhdGVnb3J5Il0sWzhdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syNCxbInBvc3QiLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicG9zdCIsInVzZXIiLCJuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibmFtZSJdLFs4XSxbMSxbMjQsWyJwb3N0IiwidXNlciIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs0LCJpZiIsW1syNCxbInBvc3QiLCJ1c2VyIiwidGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMCwiLCAiXSxbMSxbMjQsWyJwb3N0IiwidXNlciIsInRpdGxlIl1dLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiAgXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZXhjZXJwdCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicG9zdCIsImV4cGFuZGVkRXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyNCxbInBvc3QiLCJleHBhbmRlZEV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI0LFsicG9zdCIsImV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3VwLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cC1zZWxlY3RvciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtc2VsZWN0b3IiXSxbMTEsInBsYWNlaG9sZGVyIixbMjIsInBsYWNlaG9sZGVyIl1dLFsxMCwibmFtZSIsImdyb3VwcyJdLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cC1zZWxlY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiLCJhZG1pbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwidmlzaWJsaXR5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnZpc2liaWxpdHlfbGV2ZWxzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbIm5hbWUiLCJ2YWx1ZVByb3BlcnR5IiwidmFsdWUiLCJjb250ZW50IiwiY2FzdEludGVnZXIiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsInZpc2liaWxpdHlfbGV2ZWwiXV0sWzI0LFsidmlzaWJpbGl0eUxldmVsT3B0aW9ucyJdXSx0cnVlLCJncm91cHMtZm9ybS12aXNpYmlsaXR5LWxldmVsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidmlzaWJpbGl0eV9sZXZlbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24udmlzaWJpbGl0eV9sZXZlbHMuZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInZpc2libGl0eSJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi5tZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWxzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbIm5hbWUiLCJ2YWx1ZVByb3BlcnR5IiwidmFsdWUiLCJjb250ZW50IiwiY2FzdEludGVnZXIiLCJjbGFzcyJdLFsiYWxpYXMiLCJ2YWx1ZSIsWzI0LFsibW9kZWwiLCJtZW1iZXJzX3Zpc2liaWxpdHlfbGV2ZWwiXV0sWzI0LFsidmlzaWJpbGl0eUxldmVsT3B0aW9ucyJdXSx0cnVlLCJncm91cHMtZm9ybS1tZW1iZXJzLXZpc2liaWxpdHktbGV2ZWwiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24ubWVtYmVyc192aXNpYmlsaXR5X2xldmVscy5kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnBvc3RpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJhbGlhcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsaWFzX2xldmVscy5tZW50aW9uYWJsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sibmFtZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZSIsImNvbnRlbnQiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsIm1lbnRpb25hYmxlX2xldmVsIl1dLFsyNCxbImFsaWFzTGV2ZWxPcHRpb25zIl1dLCJncm91cHMtZm9ybS1tZW50aW9uYWJsZS1sZXZlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsIm1lbnRpb25hYmxlX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJhbGlhcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsaWFzX2xldmVscy5tZXNzYWdlYWJsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sibmFtZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZSIsImNvbnRlbnQiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sWyJhbGlhcyIsInZhbHVlIixbMjQsWyJtb2RlbCIsIm1lc3NhZ2VhYmxlX2xldmVsIl1dLFsyNCxbImFsaWFzTGV2ZWxPcHRpb25zIl1dLCJncm91cHMtZm9ybS1tZXNzYWdlYWJsZS1sZXZlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsIm1lc3NhZ2VhYmxlX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCIsImNsYXNzIl0sWyJjaGVja2JveCIsWzI0LFsibW9kZWwiLCJwdWJsaXNoX3JlYWRfc3RhdGUiXV0sImdyb3Vwcy1mb3JtLXB1Ymxpc2gtcmVhZC1zdGF0ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24ucHVibGlzaF9yZWFkX3N0YXRlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RW1haWxTZXR0aW5ncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24uZW1haWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImluY29taW5nX2VtYWlsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLmludGVyYWN0aW9uLmluY29taW5nX2VtYWlsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJpbmNvbWluZ19lbWFpbCIsImlucHV0LXh4bGFyZ2UgZ3JvdXBzLWZvcm0taW5jb21pbmctZW1haWwiLFsyNCxbIm1vZGVsIiwiaW5jb21pbmdfZW1haWwiXV0sImFkbWluLmdyb3Vwcy5tYW5hZ2UuaW50ZXJhY3Rpb24uaW5jb21pbmdfZW1haWxfcGxhY2Vob2xkZXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiZ3JvdXAtZW1haWwtaW4iLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5pbnRlcmFjdGlvbi5ub3RpZmljYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm5vdGlmaWNhdGlvbl9sZXZlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJub3RpZmljYXRpb25zLWJ1dHRvbiIsbnVsbCxbWyJ2YWx1ZSIsImNsYXNzIiwib3B0aW9ucyJdLFtbMjQsWyJtb2RlbCIsImRlZmF1bHRfbm90aWZpY2F0aW9uX2xldmVsIl1dLCJncm91cHMtZm9ybS1kZWZhdWx0LW5vdGlmaWNhdGlvbi1sZXZlbCIsWzI4LCJoYXNoIixudWxsLFtbIm5vbmUiLCJpMThuUHJlZml4Il0sWyJzZWxlY3Rfa2l0LmRlZmF1bHRfaGVhZGVyX3RleHQiLCJncm91cHMubm90aWZpY2F0aW9ucyJdXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1mb3JtLW1lbWJlcnNoaXAtZmllbGRzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLmF1dG9tYXRpYyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwiYXV0b21hdGljX21lbWJlcnNoaXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMubWFuYWdlLm1lbWJlcnNoaXAuYXV0b21hdGljX21lbWJlcnNoaXBfZW1haWxfZG9tYWlucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwibGlzdC1zZXR0aW5nIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwiY2hvaWNlcyIsInNldHRpbmdOYW1lIiwibmFtZVByb3BlcnR5IiwidmFsdWVQcm9wZXJ0eSIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsiYXV0b21hdGljX21lbWJlcnNoaXAiLCJncm91cC1mb3JtLWF1dG9tYXRpYy1tZW1iZXJzaGlwLWF1dG9tYXRpYyIsWzI0LFsiZW1haWxEb21haW5zIl1dLFsyNCxbImVtYWlsRG9tYWlucyJdXSwibmFtZSIsbnVsbCxudWxsLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZUVtYWlsRG9tYWluc1NldHRpbmciXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1siYWxsb3dBbnkiXSxbdHJ1ZV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2hlY2tlZCIsImNsYXNzIl0sWyJjaGVja2JveCIsWzI0LFsibW9kZWwiLCJhdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZSJdXSwiZ3JvdXBzLWZvcm0tYXV0b21hdGljLW1lbWJlcnNoaXAtcmV0cm9hY3RpdmUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5hdXRvbWF0aWNfbWVtYmVyc2hpcF9yZXRyb2FjdGl2ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJncm91cHMtZm9ybS1tZW1iZXJzaGlwLWJlbG93LWF1dG9tYXRpYyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5lZmZlY3RzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJncmFudF90cnVzdF9sZXZlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLm1hbmFnZS5tZW1iZXJzaGlwLnRydXN0X2xldmVsc190aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJuYW1lIiwidmFsdWVQcm9wZXJ0eSIsInZhbHVlIiwiY29udGVudCIsImNsYXNzIiwib25DaGFuZ2UiXSxbImdyYW50X3RydXN0X2xldmVsIiwidmFsdWUiLFsyNCxbImdyb3VwVHJ1c3RMZXZlbCJdXSxbMjQsWyJ0cnVzdExldmVsT3B0aW9ucyJdXSwiZ3JvdXBzLWZvcm0tZ3JhbnQtdHJ1c3QtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJncmFudF90cnVzdF9sZXZlbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwiY2xhc3MiXSxbImNoZWNrYm94IixbMjQsWyJtb2RlbCIsInByaW1hcnlfZ3JvdXAiXV0sImdyb3Vwcy1mb3JtLXByaW1hcnktZ3JvdXAiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5wcmltYXJ5X2dyb3VwIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UubWVtYmVyc2hpcC5hY2Nlc3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIiwiZGlzYWJsZWQiXSxbImNoZWNrYm94IiwiZ3JvdXAtZm9ybS1wdWJsaWMtYWRtaXNzaW9uIixbMjQsWyJtb2RlbCIsInB1YmxpY19hZG1pc3Npb24iXV0sWzI0LFsiZGlzYWJsZVB1YmxpY1NldHRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5wdWJsaWNfYWRtaXNzaW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJncm91cC1mb3JtLXB1YmxpYy1leGl0IixbMjQsWyJtb2RlbCIsInB1YmxpY19leGl0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucHVibGljX2V4aXQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIiwiZGlzYWJsZWQiXSxbImNoZWNrYm94IiwiZ3JvdXAtZm9ybS1hbGxvdy1tZW1iZXJzaGlwLXJlcXVlc3RzIixbMjQsWyJtb2RlbCIsImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXV0sWzI0LFsiZGlzYWJsZU1lbWJlcnNoaXBSZXF1ZXN0U2V0dGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFsbG93X21lbWJlcnNoaXBfcmVxdWVzdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJtZW1iZXJzaGlwLXJlcXVlc3QtdGVtcGxhdGUiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3RfdGVtcGxhdGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJleHBhbmRpbmctdGV4dC1hcmVhIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIl0sWyJtZW1iZXJzaGlwLXJlcXVlc3QtdGVtcGxhdGUiLCJncm91cC1mb3JtLW1lbWJlcnNoaXAtcmVxdWVzdC10ZW1wbGF0ZSBpbnB1dC14eGxhcmdlIixbMjQsWyJtb2RlbCIsIm1lbWJlcnNoaXBfcmVxdWVzdF90ZW1wbGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvZ3JvdXBzLWZvcm0tbWVtYmVyc2hpcC1maWVsZHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9ncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkVkaXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDAsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsIm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbIm5hbWUiLCJjbGFzcyIsInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiXSxbIm5hbWUiLCJpbnB1dC14eGxhcmdlIGdyb3VwLWZvcm0tbmFtZSIsWzI0LFsibmFtZUlucHV0Il1dLCJhZG1pbi5ncm91cHMubmFtZV9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbIm5hbWVWYWxpZGF0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJmdWxsX25hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5tYW5hZ2UuZnVsbF9uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJuYW1lIiwiY2xhc3MiLCJ2YWx1ZSJdLFsiZnVsbF9uYW1lIiwiaW5wdXQteHhsYXJnZSBncm91cC1mb3JtLWZ1bGwtbmFtZSIsWzI0LFsibW9kZWwiLCJmdWxsX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzIzLDAsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMuZGVmYXVsdF90aXRsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwibmFtZSIsImNsYXNzIl0sW1syNCxbIm1vZGVsIiwidGl0bGUiXV0sInRpdGxlIiwiaW5wdXQteHhsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1pbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5kZWZhdWx0X3RpdGxlX2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJiaW8iXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5iaW8iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiLCJjbGFzcyJdLFtbMjQsWyJtb2RlbCIsImJpb19yYXciXV0sImdyb3VwLWZvcm0tYmlvIGlucHV0LXh4bGFyZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxNCwxXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZ3JvdXAtZmxhaXItaW5wdXRzIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJncm91cC1lZGl0IixbMjgsImhhc2giLG51bGwsW1siZ3JvdXAiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2dyb3Vwcy1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93RnVsbE5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtaW5mby1uYW1lIl0sWzhdLFsxLFsyNCxbImdyb3VwIiwiZnVsbF9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWluZm8tbmFtZSJdLFs4XSxbMSxbMjQsWyJncm91cCIsImRpc3BsYXlOYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ncm91cHMtaW5mbyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpZ25vcmVkLXVzZXItbGlzdC1pdGVtIl0sWzhdLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaWdub3JlZC11c2VyLW5hbWUiXSxbOF0sWzEsWzIyLCJpdGVtIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsicmVtb3ZlLWlnbm9yZWQtdXNlciBuby10ZXh0IGJ0bi1pY29uIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlSWdub3JlZFVzZXIiLFsyNCxbIml0ZW0iXV1dLG51bGxdLCJ0aW1lcyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0LWl0ZW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pZ25vcmVkLXVzZXItbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiaXRlbSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlnbm9yZWQtbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaWdub3JlZC11c2VyLWxpc3QtaXRlbSIsbnVsbCxbWyJpdGVtIiwib25SZW1vdmVJZ25vcmVkVXNlciJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUlnbm9yZWRVc2VyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX25vX3VzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmlnbm9yZWRfdXNlcnNfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm5ld0lnbm9yZWRVc2VyIl0sbnVsbF0sImJ0bi1kZWZhdWx0IiwicGx1cyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuYWRkX2lnbm9yZWRfdXNlciJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lnbm9yZWQtdXNlci1saXN0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1cGxvYWRlZC1pbWFnZS1wcmV2aWV3IGlucHV0LXh4bGFyZ2UiXSxbMTEsInN0eWxlIixbMjIsImJhY2tncm91bmRTdHlsZSJdXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dpbmdQbGFjZWhvbGRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwbGFjZWhvbGRlci1vdmVybGF5Il0sWzExLCJzdHlsZSIsWzIyLCJwbGFjZWhvbGRlclN0eWxlIl1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbWFnZS11cGxvYWQtY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImJ0biBidG4tZGVmYXVsdCBwYWQtbGVmdCBuby10ZXh0ICIsWzI4LCJpZiIsW1syNCxbInVwbG9hZGluZyJdXSwiZGlzYWJsZWQiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1pbWFnZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImlucHV0Iix0cnVlXSxbMTAsImNsYXNzIiwiaGlkZGVuLXVwbG9hZC1maWVsZCJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMCwiYWNjZXB0IiwiaW1hZ2UvKiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpbWFnZVVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0cmFzaCJdLG51bGxdLCJidG4tZGFuZ2VyIHBhZC1sZWZ0IG5vLXRleHQiLCJmYXItdHJhc2gtYWx0IiwiYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsInRpdGxlIiwidHlwZSIsImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiXSxbImRpc2NvdXJzZS1leHBhbmQiLCJleHBhbmQiLCJidXR0b24iLCJpbWFnZS11cGxvYWRlci1saWdodGJveC1idG4gbm8tdGV4dCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUxpZ2h0Ym94Il0sbnVsbF0sWzI0LFsibG9hZGluZ0xpZ2h0Ym94Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYnRuICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJ1cGxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJpbWFnZVVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwibGlnaHRib3giXSxbMTEsImhyZWYiLFsyMiwiaW1hZ2VDRE5VUkwiXV0sWzExLCJ0aXRsZSIsWzIyLCJpbWFnZUZpbGVuYW1lIl1dLFsxMCwicmVsIiwibm9mb2xsb3cgdWdjIG5vb3BlbmVyIl0sWzhdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibWV0YSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZm9ybWF0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMiwiaW1hZ2VXaWR0aCJdLGZhbHNlXSxbMCwieCJdLFsxLFsyMiwiaW1hZ2VIZWlnaHQiXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsImltYWdlRmlsZXNpemUiXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvaW1hZ2UtdXBsb2FkZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pbWFnZXMtdXBsb2FkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ0biJdLFsxMSwiZGlzYWJsZWQiLFsyMiwidXBsb2FkaW5nIl1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImFkbWluLnNpdGVfc2V0dGluZ3MudXBsb2FkZWRfaW1hZ2VfbGlzdC51cGxvYWQudGl0bGUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLWltYWdlIl0sbnVsbF0sZmFsc2VdLFswLCLCoCJdLFsxLFsyMiwidXBsb2FkQnV0dG9uVGV4dCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiY2xhc3MiLCJoaWRkZW4tdXBsb2FkLWZpZWxkIl0sWzExLCJkaXNhYmxlZCIsWzIyLCJ1cGxvYWRpbmciXV0sWzEwLCJhY2NlcHQiLCJpbWFnZS8qIl0sWzEwLCJtdWx0aXBsZSIsIiJdLFsxMCwidHlwZSIsImZpbGUiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVwbG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1cGxvYWRfc2VsZWN0b3IudXBsb2FkaW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJ1cGxvYWRQcm9ncmVzcyJdLGZhbHNlXSxbMCwiJSJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvaW1hZ2VzLXVwbG9hZGVyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvaW5wdXQtdGlwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0aXBSZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJ0aXBJY29uIl0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJ0aXBSZWFzb24iXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL2lucHV0LXRpcCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2ludml0ZS1wYW5lbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaW52aXRlTW9kZWwiLCJlcnJvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLHRydWVdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib2R5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpbnZpdGVNb2RlbCIsImZpbmlzaGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImludml0ZU1vZGVsIiwiaW52aXRlTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJnZW5lcmF0ZWQtaW52aXRlLWxpbmsiLG51bGwsW1sibGluayIsImVtYWlsIl0sW1syNCxbImludml0ZU1vZGVsIiwiaW52aXRlTGluayJdXSxbMjQsWyJlbWFpbE9yVXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1Y2Nlc3MtbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjIsInN1Y2Nlc3NNZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZS11c2VyLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsImludml0ZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnZpdGUtdXNlci1pbnB1dC13cmFwcGVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJhbGxvd0V4aXN0aW5nTWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJmdWxsV2lkdGhXcmFwIiwic2luZ2xlIiwiYWxsb3dBbnkiLCJleGNsdWRlQ3VycmVudFVzZXIiLCJpbmNsdWRlTWVzc2FnZWFibGVHcm91cHMiLCJoYXNHcm91cHMiLCJ1c2VybmFtZXMiLCJwbGFjZWhvbGRlcktleSIsImFsbG93RW1haWxzIiwiY2xhc3MiLCJhdXRvY29tcGxldGUiXSxbdHJ1ZSx0cnVlLHRydWUsdHJ1ZSxbMjQsWyJpc1BNIl1dLFsyNCxbImhhc0dyb3VwcyJdXSxbMjQsWyJlbWFpbE9yVXNlcm5hbWUiXV0sWzI0LFsicGxhY2Vob2xkZXJLZXkiXV0sdHJ1ZSwiaW52aXRlLXVzZXItaW5wdXQiLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siY2xhc3MiLCJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5Il0sWyJlbWFpbC1vci11c2VybmFtZS1pbnB1dCIsWzI0LFsiZW1haWxPclVzZXJuYW1lIl1dLCJ0b3BpYy5pbnZpdGVfcmVwbHkuZW1haWxfcGxhY2Vob2xkZXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJpZiIsW1syNCxbInNob3dDb250YWN0UGlja2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyJdLFsiYWRkcmVzcy1ib29rIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoQ29udGFjdCJdLG51bGxdLCJidG4tcHJpbWFyeSBvcGVuLWNvbnRhY3QtcGlja2VyIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dHcm91cHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1hY2Nlc3MtY29udHJvbCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImluc3RydWN0aW9ucyAiLFsyMiwic2hvd0dyb3Vwc0NsYXNzIl1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmF1dG9tYXRpY2FsbHlfYWRkX3RvX2dyb3VwcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJncm91cC1zZWxlY3RvciIsbnVsbCxbWyJmdWxsV2lkdGhXcmFwIiwiZ3JvdXBGaW5kZXIiLCJncm91cE5hbWVzIiwicGxhY2Vob2xkZXJLZXkiXSxbdHJ1ZSxbMjQsWyJncm91cEZpbmRlciJdXSxbMjQsWyJpbnZpdGVNb2RlbCIsImdyb3VwTmFtZXMiXV0sInRvcGljLmludml0ZV9wcml2YXRlLmdyb3VwX25hbWUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0N1c3RvbU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaG93LWN1c3RvbS1tZXNzYWdlLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtbGlua2VkLXRleHQiLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJ0ZXh0Il0sWyJvcHRpb25hbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dDdXN0b21NZXNzYWdlQm94Il0sbnVsbF0sImludml0ZS5jdXN0b21fbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzQ3VzdG9tTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJjdXN0b21NZXNzYWdlIl1dLFsyNCxbImN1c3RvbU1lc3NhZ2VQbGFjZWhvbGRlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImludml0ZU1vZGVsIiwiZmluaXNoZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syNCxbImludml0ZUljb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUludml0ZSJdLG51bGxdLCJidG4tcHJpbWFyeSBzZW5kLWludml0ZSIsWzI0LFsiZGlzYWJsZWQiXV0sWzI0LFsiYnV0dG9uVGl0bGUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Q29weUludml0ZUJ1dHRvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJsaW5rIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZ2VuZXJhdGVJbnZpdGVsaW5rIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdlbmVyYXRlLWludml0ZS1saW5rIixbMjQsWyJkaXNhYmxlZENvcHlMaW5rIl1dLCJ1c2VyLmludml0ZWQuZ2VuZXJhdGVfbGluayJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9pbnZpdGUtcGFuZWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9pcC1sb29rdXAiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImEiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9va3VwIl0sbnVsbF0sImdsb2JlIiwiYWRtaW4udXNlci5pcF9sb29rdXAiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvdyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibG9jYXRpb24tYm94Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UgcHVsbC1yaWdodCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImhpZGUiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY29waWVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImxhYmVsIl0sWyJidG4taG92ZXIgcHVsbC1yaWdodCIsImNvcHkiLCJpcF9sb29rdXAuY29waWVkIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29weSJdLG51bGxdLCJwdWxsLXJpZ2h0IG5vLXRleHQiLCJjb3B5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs3LCJoNCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3dlcmVkLWJ5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucG93ZXJlZF9ieSJdLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkbCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiIsImhvc3RuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC5ob3N0bmFtZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJsb2NhdGlvbiIsImhvc3RuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICJdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAubG9jYXRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhdGlvbiIsImxvY2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksWyJodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP3E9IixbMjgsInVuYm91bmQiLFtbMjQsWyJsb2NhdGlvbiIsImxhdGl0dWRlIl1dXSxudWxsXSwiLCIsWzI4LCJ1bmJvdW5kIixbWzI0LFsibG9jYXRpb24iLCJsb25naXR1ZGUiXV1dLG51bGxdXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyNCxbImxvY2F0aW9uIiwibG9jYXRpb24iXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLmxvY2F0aW9uX25vdF9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibG9jYXRpb24iLCJvcmdhbml6YXRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZHQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLm9yZ2FuaXNhdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJsb2NhdGlvbiIsIm9yZ2FuaXphdGlvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIl0sWyJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgICAgICJdLFs3LCJkdCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAub3RoZXJfYWNjb3VudHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInN0cm9uZyIsdHJ1ZV0sWzhdLFsxLFsyMiwidG90YWxPdGhlcnNXaXRoU2FtZUlQIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsib3RoZXJfYWNjb3VudHMiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsiYnRuLWRhbmdlciBwdWxsLXJpZ2h0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlT3RoZXJBY2NvdW50cyJdLG51bGxdLCJleGNsYW1hdGlvbi10cmlhbmdsZSJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC5kZWxldGVfb3RoZXJfYWNjb3VudHMiXSxbWyJjb3VudCJdLFtbMjQsWyJvdGhlckFjY291bnRzVG9EZWxldGUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJvdGhlckFjY291bnRzTG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm90aGVyX2FjY291bnRzIiwibGVuZ3RoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRkIix0cnVlXSxbMTAsImNsYXNzIiwib3RoZXItYWNjb3VudHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaXBfbG9va3VwLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC50cnVzdF9sZXZlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucmVhZF90aW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImlwX2xvb2t1cC50b3BpY3NfZW50ZXJlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpcF9sb29rdXAucG9zdF9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm90aGVyX2FjY291bnRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsiYWRtaW5Vc2VyIixbMjMsMSxbXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjMsMSxbXV1dLFtbInVzZXJuYW1lUGF0aCIsImltYWdlU2l6ZSJdLFsidXNlci51c2VybmFtZSIsInNtYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIMKgXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjMsMSxbInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjMsMSxbInRydXN0TGV2ZWwiLCJpZCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsidGltZV9yZWFkIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzIzLDEsWyJ0b3BpY3NfZW50ZXJlZCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsicG9zdF9jb3VudCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9pcC1sb29rdXAifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9sYXRlc3QtdG9waWMtbGlzdC1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtcG9zdGVyIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidG9waWMiLCJsYXN0UG9zdGVyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInRvcGljIiwibGFzdFBvc3RlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1yb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhdyIsWyJ0b3BpYy1zdGF0dXMiXSxbWyJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRvcGljLWxpbmsiLFtbMjQsWyJ0b3BpYyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImZlYXR1cmVkX2xpbmsiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidG9waWMtZmVhdHVyZWQtbGluayIsW1syNCxbInRvcGljIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJ0b3BpYy1wb3N0LWJhZGdlcyIsbnVsbCxbWyJuZXdQb3N0cyIsInVuc2VlbiIsInVybCJdLFtbMjQsWyJ0b3BpYyIsInRvdGFsVW5yZWFkIl1dLFsyNCxbInRvcGljIiwidW5zZWVuIl1dLFsyNCxbInRvcGljIiwibGFzdFVucmVhZFVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib3R0b20tcm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzI0LFsidG9waWMiLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFncyIsW1syNCxbInRvcGljIl1dXSxbWyJtb2RlIl0sWyJsaXN0Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1zdGF0cyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJhdyIsWyJsaXN0L3Bvc3RzLWNvdW50LWNvbHVtbiJdLFtbInRvcGljIiwidGFnTmFtZSJdLFtbMjQsWyJ0b3BpYyJdXSwiZGl2Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxhc3QtYWN0aXZpdHkiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syNCxbInRvcGljIiwibGFzdFBvc3RVcmwiXV1dXV0sWzExLCJ0aXRsZSIsWzI5LFtbMjQsWyJ0b3BpYyIsImJ1bXBlZEF0VGl0bGUiXV1dXV0sWzhdLFsxLFsyOCwiZm9ybWF0LWRhdGUiLFtbMjQsWyJ0b3BpYyIsImJ1bXBlZEF0Il1dXSxbWyJmb3JtYXQiLCJub1RpdGxlIl0sWyJ0aW55IiwidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbGF0ZXN0LXRvcGljLWxpc3QtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2xpbmstdG8taW5wdXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93SW5wdXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJrZXkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiaTE4biIsW1syNCxbImtleSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbGluay10by1pbnB1dCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL2xvZ2luLWJ1dHRvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImIiXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsiYnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYnV0dG9uIixmYWxzZV0sWzEyLCJjbGFzcyIsWzI5LFsiYnRuIGJ0bi1zb2NpYWwgIixbMjMsMSxbIm5hbWUiXV1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSxbMjQsWyJleHRlcm5hbExvZ2luIl1dLFsyMywxLFtdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJpc0dvb2dsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInN2ZyIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZhIGQtaWNvbiBkLWljb24tY3VzdG9tLWdvb2dsZS1vYXV0aDIgc3ZnLWljb24iXSxbMTAsInhtbG5zIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyJdLFsxMCwieG1sbnM6eGxpbmsiLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iXSxbMTAsInZpZXdCb3giLCIwIDAgNDggNDgiXSxbOF0sWzcsImRlZnMiLHRydWVdLFs4XSxbNywicGF0aCIsdHJ1ZV0sWzEwLCJpZCIsImEiXSxbMTAsImQiLCJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNHoiXSxbOF0sWzldLFs5XSxbNywiY2xpcFBhdGgiLHRydWVdLFsxMCwiaWQiLCJiIl0sWzhdLFs3LCJ1c2UiLHRydWVdLFsxMCwieGxpbms6aHJlZiIsIiNhIiwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJdLFsxMCwib3ZlcmZsb3ciLCJ2aXNpYmxlIl0sWzhdLFs5XSxbOV0sWzcsInBhdGgiLHRydWVdLFsxMCwiY2xpcC1wYXRoIiwidXJsKCNiKSJdLFsxMCwiZmlsbCIsIiNGQkJDMDUiXSxbMTAsImQiLCJNMCAzN1YxMWwxNyAxM3oiXSxbOF0sWzldLFs3LCJwYXRoIix0cnVlXSxbMTAsImNsaXAtcGF0aCIsInVybCgjYikiXSxbMTAsImZpbGwiLCIjRUE0MzM1Il0sWzEwLCJkIiwiTTAgMTFsMTcgMTMgNy02LjFMNDggMTRWMEgweiJdLFs4XSxbOV0sWzcsInBhdGgiLHRydWVdLFsxMCwiY2xpcC1wYXRoIiwidXJsKCNiKSJdLFsxMCwiZmlsbCIsIiMzNEE4NTMiXSxbMTAsImQiLCJNMCAzN2wzMC0yMyA3LjkgMUw0OCAwdjQ4SDB6Il0sWzhdLFs5XSxbNywicGF0aCIsdHJ1ZV0sWzEwLCJjbGlwLXBhdGgiLCJ1cmwoI2IpIl0sWzEwLCJmaWxsIiwiIzQyODVGNCJdLFsxMCwiZCIsIk00OCA0OEwxNyAyNGwtNC0zIDM1LTEweiJdLFs4XSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImljb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzIzLDEsWyJpY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJzaWduLWluLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAiXSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xvZ2luV2l0aEVtYWlsTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJpY29uIiwiY2xhc3MiXSxbWzI0LFsiZW1haWxMb2dpbiJdXSwiZW1haWxfbG9naW4uYnV0dG9uX2xhYmVsIixbMjQsWyJwcm9jZXNzaW5nRW1haWxMaW5rIl1dLCJmYXItZW52ZWxvcGUiLCJsb2dpbi13aXRoLWVtYWlsLWJ1dHRvbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9sb2dpbi1idXR0b25zIn19KTtFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWluc2V0Il0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyYXciLFsidG9waWMtc3RhdHVzIl0sW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0b3BpYy1saW5rIixbWzI0LFsidG9waWMiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy10b3BpYyJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJjb2xkLWFnZS1jbGFzcyIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdXV1dLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJyYXctZGF0ZSIsW1syNCxbInRvcGljIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImZvcm1hdC1hZ2UiLFtbMjQsWyJ0b3BpYyIsImxhc3RfcG9zdGVkX2F0Il1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm51bSBwb3N0cyJdLFs4XSxbMSxbMjgsInJhdyIsWyJsaXN0L3Bvc3QtY291bnQtb3ItYmFkZ2VzIl0sW1sidG9waWMiLCJwb3N0QmFkZ2VzRW5hYmxlZCJdLFtbMjQsWyJ0b3BpYyJdXSwidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9iaWxlLWNhdGVnb3J5LXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9iaWxlLW5hdiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1sxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9iaWxlLW5hdiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL21vZGFsLWZvb3Rlci1jbG9zZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF0sImNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9kYWwtZm9vdGVyLWNsb3NlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbW9kYWwtcGFuZWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiY29tcG9uZW50IixbWzI0LFsicGFuZWxDb21wb25lbnQiXV1dLFtbInBhbmVsIiwiY2xvc2UiXSxbWzI0LFsicGFuZWwiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbW9kYWwtcGFuZWwifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9tb2RhbC10YWIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsW1syNCxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL21vZGFsLXRhYiJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL25hdi1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJyb3V0ZVBhcmFtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbWzI0LFsicm91dGUiXV0sWzI0LFsicm91dGVQYXJhbSJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyMiwiY29udGVudHMiXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJvdXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sW1syNCxbInJvdXRlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJjb250ZW50cyJdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsImdldC11cmwiLFtbMjQsWyJwYXRoIl1dXSxudWxsXV1dXSxbMTAsImRhdGEtYXV0by1yb3V0ZSIsInRydWUiXSxbOF0sWzEsWzIyLCJjb250ZW50cyJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbmF2LWl0ZW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9uYXZpZ2F0aW9uLWJhciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsIm5hdkl0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsibmF2SXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJuYXZpZ2F0aW9uLWl0ZW0iLG51bGwsW1siY29udGVudCIsImZpbHRlck1vZGUiLCJjYXRlZ29yeSJdLFtbMjMsMixbXV0sWzI0LFsiZmlsdGVyTW9kZSJdXSxbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMSxbMjgsImN1c3RvbS1odG1sIixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIl0sWyJleHRyYU5hdkl0ZW0iLCJsaSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNvbm5lY3RvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tY29ubmVjdG9yIixudWxsLFtbImNvbm5lY3RvciIsImNsYXNzIiwidGFnTmFtZSIsImFyZ3MiXSxbWzIzLDEsW11dLFsyMywxLFsiY2xhc3NOYW1lcyJdXSwibGkiLFsyOCwiaGFzaCIsbnVsbCxbWyJjYXRlZ29yeSIsImZpbHRlck1vZGUiXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsiZmlsdGVyTW9kZSJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9uYXZpZ2F0aW9uLWJhciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL25hdmlnYXRpb24taXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJocmVmTGluayJdXSxbMTEsImNsYXNzIixbMjIsImFjdGl2ZUNsYXNzIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzSWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI0LFsiY29udGVudCIsIm5hbWUiXV1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFsxLFsyNCxbImNvbnRlbnQiLCJkaXNwbGF5TmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvbmF2aWdhdGlvbi1pdGVtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvbm90aWZpY2F0aW9uLWNvbnNlbnQtYmFubmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93Tm90aWZpY2F0aW9uUHJvbXB0QmFubmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29uc2VudF9iYW5uZXIgYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuY29uc2VudF9wcm9tcHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJkaXNwbGF5IiwiYWN0aW9uIiwibGFiZWwiXSxbImxpbmsiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0dXJub24iXSxudWxsXSwidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZW5hYmxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgLlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwiY2xhc3MiLCJ0aXRsZSJdLFsidGltZXMiLCJkaXNtaXNzIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwiYmFubmVyLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9ub3RpZmljYXRpb24tY29uc2VudC1iYW5uZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9wbHVnaW4tb3V0bGV0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbImNvbm5lY3RvcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJwbHVnaW4tY29ubmVjdG9yIixudWxsLFtbImNvbm5lY3RvciIsImFyZ3MiLCJkZXByZWNhdGVkQXJncyIsImNsYXNzIiwidGFnTmFtZSJdLFtbMjMsMSxbXV0sWzI0LFsiYXJncyJdXSxbMjQsWyJkZXByZWNhdGVkQXJncyJdXSxbMjMsMSxbImNsYXNzTmFtZXMiXV0sWzI0LFsiY29ubmVjdG9yVGFnTmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9wbHVnaW4tb3V0bGV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcG9wdXAtaW5wdXQtdGlwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsb3NlIl0sWzhdLFsxLFsyMiwiY2xvc2VJY29uIl0sZmFsc2VdLFs5XSxbMSxbMjIsInRpcFJlYXNvbiJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcG9wdXAtaW5wdXQtdGlwIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcG9wdXAtbWVudSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsW1syNCxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbMTQsMV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcG9wdXAtbWVudSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3ByZWZlcmVuY2UtY2hlY2tib3giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNoZWNrYm94LWxhYmVsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImRpc2FibGVkIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLFsyNCxbImRpc2FibGVkIl1dLFsyNCxbImNoZWNrZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyMiwibGFiZWwiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcHJlZmVyZW5jZS1jaGVja2JveCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaHJlZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjIsImhyZWYiXV0sWzExLCJ0aXRsZSIsWzI4LCJpMThuIixbWzI0LFsidGl0bGUiXV1dLG51bGxdXSxbMTEsImFyaWEtbGFiZWwiLFsyOCwiaTE4biIsW1syNCxbImFyaWFMYWJlbCJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicHJpdmF0ZS1tZXNzYWdlLWdseXBoLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImVudmVsb3BlIl0sW1siY2xhc3MiXSxbInByaXZhdGUtbWVzc2FnZS1nbHlwaCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJwcml2YXRlLW1lc3NhZ2UtZ2x5cGgtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImVudmVsb3BlIl0sW1siY2xhc3MiXSxbInByaXZhdGUtbWVzc2FnZS1nbHlwaCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3ByaXZhdGUtbWVzc2FnZS1nbHlwaCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd1BXQUluc3RhbGxCYW5uZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwd2EtaW5zdGFsbC1iYW5uZXIgYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS1saW5rZWQtdGV4dCIsbnVsbCxbWyJhY3Rpb24iLCJ0cmFuc2xhdGVkVGV4dCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHVybk9uIl0sbnVsbF0sWzI4LCJpMThuIixbInB3YS5pbnN0YWxsX2Jhbm5lciJdLFtbInRpdGxlIl0sW1syNCxbInNpdGVTZXR0aW5ncyIsInRpdGxlIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJjbGFzcyIsInRpdGxlIl0sWyJ0aW1lcyIsImRpc21pc3MiLCJidG4gYnRuLWZsYXQgY2xvc2UiLCJiYW5uZXIuY2xvc2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3B3YS1pbnN0YWxsLWJhbm5lciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3F1b3RlLWJ1dHRvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsicXVvdGUtbGVmdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicXVvdGUtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInBvc3QucXVvdGVfcmVwbHkiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9xdW90ZS1idXR0b24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZWxhdGVkLW1lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWdnZXN0ZWQtdG9waWNzLXRpdGxlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJyZWxhdGVkX21lc3NhZ2VzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpY3MiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJiYXNpYy10b3BpYy1saXN0IixudWxsLFtbImhpZGVDYXRlZ29yeSIsInNob3dQb3N0ZXJzIiwidG9waWNzIl0sWyJ0cnVlIiwidHJ1ZSIsWzI0LFsidG9waWMiLCJyZWxhdGVkTWVzc2FnZXMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRhcmdldFVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwic2VlLWFsbC1wbXMtbWVzc2FnZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmVsYXRlZF9tZXNzYWdlcy5zZWVfYWxsIl0sW1sicGF0aCIsInVzZXJuYW1lIl0sW1syNCxbInNlYXJjaExpbmsiXV0sWzI0LFsidGFyZ2V0VXNlciIsInVzZXJuYW1lIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmVsYXRlZC1tZXNzYWdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtYnVuZGxlZC1hY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm11bHRpcGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZHJvcGRvd24tc2VsZWN0LWJveCIsbnVsbCxbWyJjbGFzcyIsIm5hbWVQcm9wZXJ0eSIsInRpdGxlIiwiY29udGVudCIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsicmV2aWV3YWJsZS1hY3Rpb24tZHJvcGRvd24iLCJsYWJlbCIsWzI0LFsiYnVuZGxlIiwibGFiZWwiXV0sWzI0LFsiYnVuZGxlIiwiYWN0aW9ucyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybUJ5SWQiXSxudWxsXSxbMjgsImhhc2giLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sW1syNCxbImJ1bmRsZSIsImljb24iXV0sWzI0LFsicmV2aWV3YWJsZVVwZGF0aW5nIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImljb24iLCJhY3Rpb24iLCJ0cmFuc2xhdGVkTGFiZWwiLCJkaXNhYmxlZCJdLFtbMjgsImNvbmNhdCIsWyJyZXZpZXdhYmxlLWFjdGlvbiAiLFsyOCwiZGFzaGVyaXplIixbWzI0LFsiZmlyc3QiLCJpZCJdXV0sbnVsbF0sIiAiLFsyNCxbImZpcnN0IiwiYnV0dG9uX2NsYXNzIl1dXSxudWxsXSxbMjQsWyJmaXJzdCIsImljb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBlcmZvcm0iLFsyNCxbImZpcnN0Il1dXSxudWxsXSxbMjQsWyJmaXJzdCIsImxhYmVsIl1dLFsyNCxbInJldmlld2FibGVVcGRhdGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWJ1bmRsZWQtYWN0aW9uIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1jbGFpbWVkLXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNsYWltZWRCeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtYnkiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJjbGFpbWVkQnkiXV1dLFtbImltYWdlU2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtdXNlcm5hbWUiXSxbOF0sWzEsWzI0LFsiY2xhaW1lZEJ5IiwidXNlcm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwidGl0bGUiXSxbInRpbWVzIiwiYnRuLXNtYWxsIHVuY2xhaW0iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ1bmNsYWltIl0sbnVsbF0sWzI0LFsidW5hc3NpZ25pbmciXV0sInJldmlldy51bmNsYWltLmhlbHAiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwidGl0bGUiLCJhY3Rpb24iXSxbInVzZXItcGx1cyIsImJ0bi1zbWFsbCBjbGFpbSIsInJldmlldy5jbGFpbS50aXRsZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsYWltIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNsYWltZWQtdG9waWMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJwb3N0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VXNlcm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsidXNlcm5hbWUiLCJ1c2VyIixbMjQsWyJwb3N0IiwidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCJAIl0sWzEsWzI0LFsicG9zdCIsInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI0LFsicG9zdCIsImV4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNvbnZlcnNhdGlvbi1wb3N0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lcyJdLFs4XSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJzaWxlbmNlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJiYW4iXSxbWyJ0aXRsZSJdLFsidXNlci5zaWxlbmNlZF90b29sdGlwIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmRlbGV0ZWRfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNyZWF0ZWQtYnktbmFtZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtY3JlYXRlZC1ieSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNyZWF0ZWQtYnkiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiYXZhdGFyIixbWzI0LFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci10cmFzaC1hbHQiXSxbWyJjbGFzcyJdLFsiZGVsZXRlZC11c2VyLWF2YXRhciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWNyZWF0ZWQtYnkifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLWNhdGVnb3J5Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJ2YWx1ZSJdXSxbMjQsWyJjYXRlZ29yeUNoYW5nZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLWNhdGVnb3J5In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC1lZGl0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1lZGl0b3IiLG51bGwsW1sidmFsdWUiLCJjaGFuZ2UiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidmFsdWVDaGFuZ2VkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC1lZGl0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLXRhZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwibWluaS10YWctY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInZhbHVlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10YWdzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiY2hhbmdlIiwiY2xhc3MiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidmFsdWVDaGFuZ2VkIl1dLCJyZXZpZXdhYmxlLWlucHV0LXRleHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZC10ZXh0YXJlYSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0ZXh0YXJlYSIsbnVsbCxbWyJ2YWx1ZSIsImNoYW5nZSIsImNsYXNzIl0sW1syNCxbInZhbHVlIl1dLFsyNCxbInZhbHVlQ2hhbmdlZCJdXSwicmV2aWV3YWJsZS1pbnB1dC10ZXh0YXJlYSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkLXRleHRhcmVhIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1maWVsZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidmFsdWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzIyLCJjbGFzc2VzIl1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyMiwibmFtZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidmFsdWUiXSxbOF0sWzEsWzIyLCJ2YWx1ZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWZpZWxkIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS1mbGFnZ2VkLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmxhZ2dlZC1wb3N0LWhlYWRlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtdG9waWMtbGluayIsbnVsbCxbWyJyZXZpZXdhYmxlIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzRWRpdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLFsyOSxbImhhcy1lZGl0cyAiLFsyMiwiaGlzdG9yeUNsYXNzIl1dXV0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsicG9zdC5sYXN0X2VkaXRlZF9vbiJdLG51bGxdLCIgIixbMjIsImVkaXRlZERhdGUiXV1dXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93RWRpdEhpc3RvcnkiXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBlbmNpbC1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieSIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidGFyZ2V0X2NyZWF0ZWRfYnkiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWNvbnRlbnRzIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLXBvc3QtaGVhZGVyIixudWxsLFtbInJldmlld2FibGUiLCJjcmVhdGVkQnkiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sWzI0LFsicmV2aWV3YWJsZSIsInRhcmdldF9jcmVhdGVkX2J5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LWJvZHkiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJldmlld2FibGUiLCJibGFua19wb3N0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5kZWxldGVkX3Bvc3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwiY29va2VkIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImFmdGVyLXJldmlld2FibGUtZmxhZ2dlZC1wb3N0LWJvZHkiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJyZXZpZXdhYmxlIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxNCwxXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1mbGFnZ2VkLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLWhpc3RvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicmgiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpbHRlcmVkSGlzdG9yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtaGlzdG9yaWVzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY29sc3BhbiIsIjMiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5oaXN0b3J5LnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImZpbHRlcmVkSGlzdG9yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjMsMSxbImNyZWF0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWhpc3RvcnktZGVzY3JpcHRpb24iLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1saW5rIixudWxsLFtbInVzZXIiXSxbWzI0LFsicnMiLCJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjMsMSxbImNyZWF0ZWRfYnkiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyMywxLFsiY3JlYXRlZF9ieSIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJjcmVhdGVkX2F0Il1dXSxbWyJmb3JtYXQiXSxbIm1lZGl1bSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLWhpc3RvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtaXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYnVuZGxlIiwiZiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsicmV2aWV3YWJsZS1pdGVtICIsWzIyLCJjdXN0b21DbGFzcyJdXV1dLFsxMSwiZGF0YS1yZXZpZXdhYmxlLWlkIixbMjQsWyJyZXZpZXdhYmxlIiwiaWQiXV1dLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1tZXRhLWRhdGEiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtdHlwZSJdLFs4XSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwiaHVtYW5UeXBlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJldmlld2FibGUiLCJyZXBseV9jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBseS1jb3VudCJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnJlcGxpZXMiXSxbWyJjb3VudCJdLFtbMjQsWyJyZXZpZXdhYmxlIiwicmVwbHlfY291bnQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNyZWF0ZWQtYXQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInJldmlldy5zaG93IixbMjQsWyJyZXZpZXdhYmxlIiwiaWQiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImFnZS13aXRoLXRvb2x0aXAiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0dXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1zdGF0dXMiLFtbMjQsWyJyZXZpZXdhYmxlIiwic3RhdHVzIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJleHBsYWluIl0sWzEyLCJ0aXRsZSIsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLndoeSJdLG51bGxdXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJleHBsYWluUmV2aWV3YWJsZSIsWzI0LFsicmV2aWV3YWJsZSJdXV1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicXVlc3Rpb24tY2lyY2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1jb250ZW50cyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZWRpdGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXRhYmxlLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsImNyZWF0ZWRfYnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZWRpdGFibGUtY3JlYXRlZC1ieSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSIsImNyZWF0ZWRfYnkiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJyZXZpZXdhYmxlIiwiZWRpdGFibGVfZmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiZWRpdGFibGUtZmllbGQgIixbMjgsImRhc2hlcml6ZSIsW1syMywyLFsiaWQiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjgsImNvbmNhdCIsWyJyZXZpZXdhYmxlLWZpZWxkLSIsWzIzLDIsWyJ0eXBlIl1dXSxudWxsXV0sW1sidGFnTmFtZSIsInZhbHVlIiwidGFnQ2F0ZWdvcnlJZCIsInZhbHVlQ2hhbmdlZCIsImNhdGVnb3J5Q2hhbmdlZCJdLFsiIixbMjgsImVkaXRhYmxlLXZhbHVlIixbWzI0LFsicmV2aWV3YWJsZSJdXSxbMjMsMixbImlkIl1dXSxudWxsXSxbMjQsWyJyZXZpZXdhYmxlIiwiY2F0ZWdvcnkiLCJpZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidmFsdWVDaGFuZ2VkIixbMjMsMixbImlkIl1dXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2F0ZWdvcnlDaGFuZ2VkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImNvbXBvbmVudCIsW1syNCxbInJldmlld2FibGVDb21wb25lbnQiXV1dLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtc2NvcmVzIixudWxsLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNsYWltRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsYWltZWQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhlbHAiXSxbOF0sWzEsWzIyLCJjbGFpbUhlbHAiXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWNsYWltZWQtdG9waWMiLG51bGwsW1sidG9waWNJZCIsImNsYWltZWRCeSJdLFtbMjQsWyJ0b3BpY0lkIl1dLFsyNCxbInJldmlld2FibGUiLCJjbGFpbWVkX2J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuUGVyZm9ybSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlZGl0aW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgcmV2aWV3YWJsZS1hY3Rpb24gc2F2ZS1lZGl0IixbMjQsWyJ1cGRhdGluZyJdXSwiY2hlY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlRWRpdCJdLG51bGxdLCJyZXZpZXcuc2F2ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciByZXZpZXdhYmxlLWFjdGlvbiBjYW5jZWwtZWRpdCIsWzI0LFsidXBkYXRpbmciXV0sInRpbWVzIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsRWRpdCJdLG51bGxdLCJyZXZpZXcuY2FuY2VsIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZSIsImJ1bmRsZWRfYWN0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1idW5kbGVkLWFjdGlvbiIsbnVsbCxbWyJidW5kbGUiLCJwZXJmb3JtQWN0aW9uIiwicmV2aWV3YWJsZVVwZGF0aW5nIl0sW1syMywxLFtdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybSJdLG51bGxdLFsyNCxbInVwZGF0aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwiY2FuX2VkaXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJpY29uIiwiYWN0aW9uIiwibGFiZWwiXSxbInJldmlld2FibGUtYWN0aW9uIGVkaXQiLFsyNCxbInVwZGF0aW5nIl1dLCJwZW5jaWwtYWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdCJdLG51bGxdLCJyZXZpZXcuZWRpdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtcG9zdC1oZWFkZXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXBvc3QtaGVhZGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jcmVhdGVkLWJ5LW5hbWUiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsiY3JlYXRlZEJ5Il1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInJlcGx5X3RvX3Bvc3RfbnVtYmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI4LCJjb25jYXQiLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWNfdXJsIl1dLCIvIixbMjQsWyJyZXZpZXdhYmxlIiwicmVwbHlfdG9fcG9zdF9udW1iZXIiXV1dLG51bGxdXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1yZXBseS10byJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hhcmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5pbl9yZXBseV90byJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS1wb3N0LWhlYWRlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtcXVldWVkLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwicmV2aWV3YWJsZS10b3BpYy1saW5rIixudWxsLFtbInJldmlld2FibGUiLCJ0YWdOYW1lIl0sW1syNCxbInJldmlld2FibGUiXV0sIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUtdGV4dCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBsdXMtc3F1YXJlIl0sW1sidGl0bGUiXSxbInJldmlldy5uZXdfdG9waWMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyNCxbInJldmlld2FibGUiLCJwYXlsb2FkIiwidGl0bGUiXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzI0LFsicmV2aWV3YWJsZSIsImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLXRhZ3MiLG51bGwsW1sidGFncyIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ0YWdzIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ2aWFfZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJzaG93LXJhdy1lbWFpbCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dSYXdFbWFpbCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLFtbInRpdGxlIl0sWyJwb3N0LnZpYV9lbWFpbCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieSIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtcG9zdC1oZWFkZXIiLG51bGwsW1sicmV2aWV3YWJsZSIsImNyZWF0ZWRCeSIsInRhZ05hbWUiXSxbWzI0LFsicmV2aWV3YWJsZSJdXSxbMjQsWyJyZXZpZXdhYmxlIiwiY3JlYXRlZF9ieSJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1ib2R5Il0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvb2stdGV4dCIsW1syNCxbInJldmlld2FibGUiLCJwYXlsb2FkIiwicmF3Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMTQsMV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtcXVldWVkLXBvc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwIiwiaW5kZXgiXSwic3RhdGVtZW50cyI6W1s3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwidXNlciJdLFs4XSxbMCwiXFxuIl0sWzQsInVzZXItbGluayIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInJzIiwidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInJzIiwidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyNCxbInJzIiwidXNlciIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsInVzZXItZmxhZy1wZXJjZW50YWdlIixudWxsLFtbImFncmVlZCIsImRpc2FncmVlZCIsImlnbm9yZWQiXSxbWzI0LFsicnMiLCJhZ3JlZV9zdGF0cyIsImFncmVlZCJdXSxbMjQsWyJycyIsImFncmVlX3N0YXRzIiwiZGlzYWdyZWVkIl1dLFsyNCxbInJzIiwiYWdyZWVfc3RhdHMiLCJpZ25vcmVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbInJzIiwic2NvcmVfdHlwZSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyMiwidGl0bGUiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInJzIiwiY3JlYXRlZF9hdCJdXV0sW1siZm9ybWF0Il0sWyJ0aW55Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3RhdHVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1zY29yZS1zcGFjZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImFuZ2xlLWRvdWJsZS1yaWdodCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2VkLWJ5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJldmlld2VkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLWxpbmsiLG51bGwsW1sidXNlciJdLFtbMjQsWyJycyIsInJldmlld2VkX2J5Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syNCxbInJzIiwicmV2aWV3ZWRfYnkiXV1dLFtbImltYWdlU2l6ZSJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI0LFsicnMiLCJyZXZpZXdlZF9ieSIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAg4oCUXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1zdGF0dXMiLFtbMjQsWyJycyIsInN0YXR1cyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJzIiwicmV2aWV3ZWRfYnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInJzIiwicmV2aWV3ZWRfYXQiXV1dLFtbImZvcm1hdCJdLFsidGlueSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY29sc3BhbiIsIjQiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmUtcmVhc29uIl0sWzhdLFsxLFsyNCxbInJzIiwicmVhc29uIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJycyIsInJldmlld2FibGVfY29udmVyc2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNvbHNwYW4iLCI3Il0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1jb252ZXJzYXRpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicnMiLCJyZXZpZXdhYmxlX2NvbnZlcnNhdGlvbiIsImNvbnZlcnNhdGlvbl9wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1jb252ZXJzYXRpb24tcG9zdCIsbnVsbCxbWyJwb3N0IiwiaW5kZXgiXSxbWzIzLDEsW11dLFsyMywyLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzEsMl19LG51bGxdLFswLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbInJzIiwicmV2aWV3YWJsZV9jb252ZXJzYXRpb24iLCJwZXJtYWxpbmsiXV1dLFsxMCwiY2xhc3MiLCJidG4gYnRuLXNtYWxsIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmNvbnZlcnNhdGlvbi52aWV3X2Z1bGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIn19KSxkZWZpbmUoImRpc2NvdXJzZS90ZW1wbGF0ZXMvY29tcG9uZW50cy9yZXZpZXdhYmxlLXNjb3JlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL3V0aWxzL2RlY29yYXRvcnMiLCJAZW1iZXIvb2JqZWN0L2NvbXB1dGVkIiwiQGVtYmVyL2NvbXBvbmVudCJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgcyxvLHIsYSxsLHUsYyxkO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9aS5kZWZhdWx0LmV4dGVuZCgocz0oMCx0LmRlZmF1bHQpKCJycy5zY29yZV90eXBlLnRpdGxlIiwicmV2aWV3YWJsZS50YXJnZXRfY3JlYXRlZF9ieSIpLG89e3RhZ05hbWU6IiIsc2hvd1N0YXR1czooMCxuLmd0KSgicnMuc3RhdHVzIiwwKSx0aXRsZTpmdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0P2UucmVwbGFjZSgie3t1c2VybmFtZX19Iix0LnVzZXJuYW1lKTplfX0scj1vLGE9InRpdGxlIixsPVtzXSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywidGl0bGUiKSxjPW8sZD17fSxPYmplY3Qua2V5cyh1KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RbZV09dVtlXX0pLGQuZW51bWVyYWJsZT0hIWQuZW51bWVyYWJsZSxkLmNvbmZpZ3VyYWJsZT0hIWQuY29uZmlndXJhYmxlLCgidmFsdWUiaW4gZHx8ZC5pbml0aWFsaXplcikmJihkLndyaXRhYmxlPSEwKSxkPWwuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQocixhLGUpfHxlfSxkKSxjJiZ2b2lkIDAhPT1kLmluaXRpYWxpemVyJiYoZC52YWx1ZT1kLmluaXRpYWxpemVyP2QuaW5pdGlhbGl6ZXIuY2FsbChjKTp2b2lkIDAsZC5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PWQuaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLGQpLGQ9bnVsbCksbykpfSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtc2NvcmVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJycyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZSIsInJldmlld2FibGVfc2NvcmVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtc2NvcmVzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZSIsInJldmlld2FibGVfc2NvcmVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtc2NvcmUiLG51bGwsW1sicnMiLCJyZXZpZXdhYmxlIl0sW1syMywxLFtdXSxbMjQsWyJyZXZpZXdhYmxlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtc2NvcmVzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS10YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0YWdzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsaXN0LXRhZ3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbNCwiZWFjaCIsW1syNCxbInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Jldmlld2FibGUtdGFncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3Jldmlld2FibGUtdG9waWMtbGluayJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0LXRvcGljIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLXN0YXR1cyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI0LFsicmV2aWV3YWJsZSIsInRhcmdldF91cmwiXV1dLFsxMCwiY2xhc3MiLCJ0aXRsZS10ZXh0Il0sWzhdLFsxLFsyNCxbInJldmlld2FibGUiLCJ0b3BpYyIsInRpdGxlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWJhZGdlIixbWzI0LFsicmV2aWV3YWJsZSIsImNhdGVnb3J5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtdGFncyIsbnVsbCxbWyJ0YWdzIiwidGFnTmFtZSJdLFtbMjQsWyJyZXZpZXdhYmxlIiwidG9waWNfdGFncyJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNSwxXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxNCwxXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlLXRleHQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLmRlbGV0ZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWxzIl0sWyJ0b3BpYyIsWzI4LCJhcnJheSIsWyItIixbMjQsWyJyZXZpZXdhYmxlIiwicmVtb3ZlZF90b3BpY19pZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsicmV2aWV3LnRvcGljcy5vcmlnaW5hbCJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS10b3BpYy1saW5rIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvcmV2aWV3YWJsZS11c2VyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIiwiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItaW5mbyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS11c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyB1c2VybmFtZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy51c2VyLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInZhbHVlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwibGlua19hZG1pbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOCwiZ2V0LXVybCIsW1syOCwiY29uY2F0IixbIi9hZG1pbi91c2Vycy8iLFsyNCxbInJldmlld2FibGUiLCJ1c2VyX2lkIl1dLCIvIixbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsInVzZXJuYW1lIl1dXSxudWxsXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWZpZWxkIixudWxsLFtbImNsYXNzZXMiLCJuYW1lIiwidmFsdWUiXSxbInJldmlld2FibGUtdXNlci1kZXRhaWxzIG5hbWUiLFsyOCwiaTE4biIsWyJyZXZpZXcudXNlci5uYW1lIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwicmV2aWV3YWJsZS1maWVsZCIsbnVsbCxbWyJjbGFzc2VzIiwibmFtZSIsInZhbHVlIl0sWyJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyBlbWFpbCIsWzI4LCJpMThuIixbInJldmlldy51c2VyLmVtYWlsIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJlbWFpbCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsInJldmlld2FibGUtZmllbGQiLG51bGwsW1siY2xhc3NlcyIsIm5hbWUiLCJ2YWx1ZSJdLFsicmV2aWV3YWJsZS11c2VyLWRldGFpbHMgYmlvIixbMjgsImkxOG4iLFsicmV2aWV3LnVzZXIuYmlvIl0sbnVsbF0sWzI0LFsicmV2aWV3YWJsZSIsInBheWxvYWQiLCJiaW8iXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXVzZXItZGV0YWlscyB3ZWJzaXRlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudXNlci53ZWJzaXRlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidmFsdWUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzEwLCJyZWwiLCJub29wZW5lciJdLFs4XSxbMSxbMjQsWyJyZXZpZXdhYmxlIiwicGF5bG9hZCIsIndlYnNpdGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidXNlckZpZWxkcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWZpZWxkIixudWxsLFtbImNsYXNzZXMiLCJuYW1lIiwidmFsdWUiXSxbInJldmlld2FibGUtdXNlci1kZXRhaWxzIHVzZXItZmllbGQiLFsyMywxLFsibmFtZSJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMTQsMl0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvcmV2aWV3YWJsZS11c2VyIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2NvcmUtdmFsdWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInZhbHVlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic2NvcmUtdmFsdWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNjb3JlLW51bWJlciJdLFs4XSxbMSxbMjgsImZsb2F0IixbWzI0LFsidmFsdWUiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxhYmVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNjb3JlLXZhbHVlLXR5cGUiXSxbMTEsInRpdGxlIixbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJyZXZpZXcuZXhwbGFpbi4iLFsyNCxbImxhYmVsIl1dLCIudGl0bGUiXSxudWxsXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJyZXZpZXcuZXhwbGFpbi4iLFsyNCxbImxhYmVsIl1dLCIubmFtZSJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwib3AiXSxbOF0sWzAsIisiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3Njb3JlLXZhbHVlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbImFkdmFuY2VkLXNlYXJjaC1vcHRpb25zLWFib3ZlIixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoZWRUZXJtcyJdLFtbMjQsWyJzZWFyY2hlZFRlcm1zIl1dXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBhZHZhbmNlZC1zZWFyY2gtcG9zdGVkLWJ5LWdyb3VwIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNlYXJjaC1wb3N0ZWQtYnkiXSxbOF0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5wb3N0ZWRfYnkubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwidXNlcm5hbWVzIiwic2luZ2xlIiwiY2FuUmVjZWl2ZVVwZGF0ZXMiLCJjbGFzcyJdLFtmYWxzZSxbMjQsWyJzZWFyY2hlZFRlcm1zIiwidXNlcm5hbWUiXV0sdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNlYXJjaC1pbi1jYXRlZ29yeSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmluX2NhdGVnb3J5LmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJzZWFyY2gtYWR2YW5jZWQtY2F0ZWdvcnktY2hvb3NlciIsbnVsbCxbWyJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInNlYXJjaGVkVGVybXMiLCJjYXRlZ29yeSIsImlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZUNhdGVnb3J5Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbMiwiIGRpc2FibGUgdGhlc2Ugc3VwZXItYWR2YW5jZWQgc2VhcmNoZXMgZm9yIG5vd1xcbjxkaXYgY2xhc3M9XFwiY29udGFpbmVyXFwiPlxcbiAgPGRpdiBjbGFzcz1cXCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdFxcIj5cXG4gICAgPGxhYmVsIGNsYXNzPVxcImNvbnRyb2wtbGFiZWxcXCIgZm9yPVxcInNlYXJjaC1pbi1ncm91cFxcIj57e2kxOG4gXFwic2VhcmNoLmFkdmFuY2VkLmluX2dyb3VwLmxhYmVsXFwifX08L2xhYmVsPlxcbiAgICA8ZGl2IGNsYXNzPVxcImNvbnRyb2xzXFwiPlxcbiAgICAgIHt7Z3JvdXAtc2VsZWN0b3IgZ3JvdXBGaW5kZXI9Z3JvdXBGaW5kZXIgZ3JvdXBOYW1lcz1zZWFyY2hlZFRlcm1zLmdyb3VwIHNpbmdsZT1cXCJ0cnVlXFwiIGNhblJlY2VpdmVVcGRhdGVzPVxcInRydWVcXCJ9fVxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGRpdiBjbGFzcz1cXCJjb250cm9sLWdyb3VwIHB1bGwtbGVmdFxcIj5cXG4gICAgPGxhYmVsIGNsYXNzPVxcImNvbnRyb2wtbGFiZWxcXCIgZm9yPVxcInNlYXJjaC13aXRoLWJhZGdlXFwiPnt7aTE4biBcXCJzZWFyY2guYWR2YW5jZWQud2l0aF9iYWRnZS5sYWJlbFxcIn19PC9sYWJlbD5cXG4gICAgPGRpdiBjbGFzcz1cXCJjb250cm9sc1xcIj5cXG4gICAgICB7e2JhZGdlLXNlbGVjdG9yIGJhZGdlRmluZGVyPWJhZGdlRmluZGVyIGJhZGdlTmFtZXM9c2VhcmNoZWRUZXJtcy5iYWRnZSBzaW5nbGU9XFwidHJ1ZVxcIiBjYW5SZWNlaXZlVXBkYXRlcz1cXCJ0cnVlXFwifX1cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L2Rpdj5cXG4iXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwidGFnZ2luZ19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLXRhZy1ncm91cCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtd2l0aC10YWdzIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQud2l0aF90YWdzLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImFsbG93Q3JlYXRlIiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJldmVyeVRhZyIsInVubGltaXRlZFRhZ0NvdW50Iiwib25DaGFuZ2UiXSxbWzI0LFsic2VhcmNoZWRUZXJtcyIsInRhZ3MiXV0sZmFsc2UsbnVsbCx0cnVlLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzZWFyY2hlZFRlcm1zIiwidGFncyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJhbGwtdGFncyIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJhbGxfdGFncyJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuYWxsX3RhZ3MiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLXRvcGljcy1wb3N0cy1ncm91cCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwdWxsLWxlZnQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtaW4tb3B0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwiY2xhc3MiLCJjaGVja2VkIl0sWyJjaGVja2JveCIsImluLXRpdGxlIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwic3BlY2lhbCIsImluIiwidGl0bGUiXV1dXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5maWx0ZXJzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJpbi1saWtlcyIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJpbiIsImxpa2VzIl1dXV1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5saWtlcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjbGFzcyIsImNoZWNrZWQiXSxbImNoZWNrYm94IiwiaW4tcHJpdmF0ZSIsWzI0LFsic2VhcmNoZWRUZXJtcyIsInNwZWNpYWwiLCJpbiIsInBlcnNvbmFsIl1dXV1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQuZmlsdGVycy5wcml2YXRlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNsYXNzIiwiY2hlY2tlZCJdLFsiY2hlY2tib3giLCJpbi1zZWVuIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwic3BlY2lhbCIsImluIiwic2VlbiJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLmZpbHRlcnMuc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siaWQiLCJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwibm9uZSIsIm9uQ2hhbmdlIl0sWyJpbiIsInZhbHVlIixbMjQsWyJpbk9wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsImluIl1dLCJ1c2VyLmxvY2FsZS5hbnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsic2VhcmNoZWRUZXJtcyIsImluIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwdWxsLWxlZnQiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJzZWFyY2gtc3RhdHVzLW9wdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5hZHZhbmNlZC5zdGF0dXNlcy5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImlkIiwidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm5vbmUiLCJvbkNoYW5nZSJdLFsic3RhdHVzIiwidmFsdWUiLFsyNCxbInN0YXR1c09wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsInN0YXR1cyJdXSwidXNlci5sb2NhbGUuYW55IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbInNlYXJjaGVkVGVybXMiLCJzdGF0dXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgYWR2YW5jZWQtc2VhcmNoLWRhdGUtY291bnQtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHVsbC1sZWZ0Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwic2VhcmNoLXBvc3QtZGF0ZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmFkdmFuY2VkLnBvc3QudGltZS5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgZnVsbC1zZWFyY2gtZGF0ZXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImlkIiwidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJwb3N0VGltZSIsInZhbHVlIixbMjQsWyJwb3N0VGltZU9wdGlvbnMiXV0sWzI0LFsic2VhcmNoZWRUZXJtcyIsInRpbWUiLCJ3aGVuIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVdoZW5UaW1lIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRhdGUtaW5wdXQiLG51bGwsW1siZGF0ZSIsIm9uQ2hhbmdlIiwiaWQiXSxbWzI0LFsic2VhcmNoZWRUZXJtcyIsInRpbWUiLCJkYXlzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZVdoZW5EYXRlIl0sbnVsbF0sInNlYXJjaC1wb3N0LWRhdGUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHVsbC1sZWZ0Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwic2VhcmNoLW1pbi1wb3N0LWNvdW50Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQucG9zdC5jb3VudC5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIiwiY2xhc3MiLCJpZCJdLFsibnVtYmVyIixbMjQsWyJzZWFyY2hlZFRlcm1zIiwibWluX3Bvc3RfY291bnQiXV0sImlucHV0LXNtYWxsIiwic2VhcmNoLW1pbi1wb3N0LWNvdW50Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbImFkdmFuY2VkLXNlYXJjaC1vcHRpb25zLWJlbG93IixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoZWRUZXJtcyJdLFtbMjQsWyJzZWFyY2hlZFRlcm1zIl1dXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvc2VhcmNoLWFkdmFuY2VkLW9wdGlvbnMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwic2Vjb25kLWZhY3RvciJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsInNlY29uZEZhY3RvclRpdGxlIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsib3B0aW9uYWxUZXh0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsIm9wdGlvbmFsVGV4dCJdLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInNlY29uZEZhY3RvckRlc2NyaXB0aW9uIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbMTQsMV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb2dnbGVNZXRob2RMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwidG9nZ2xlLXNlY29uZC1mYWN0b3ItbWV0aG9kIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlU2Vjb25kRmFjdG9yTWV0aG9kIl1dLFs4XSxbMSxbMjgsImkxOG4iLFtbMjQsWyJsaW5rVGV4dCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWZvcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWNvbmQtZmFjdG9yLWlucHV0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwicGF0dGVybiIsIm1heGxlbmd0aCIsImNsYXNzIiwiaWQiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2ZvY3VzIiwicGxhY2Vob2xkZXIiXSxbWzI0LFsidmFsdWUiXV0sWzI0LFsidHlwZSJdXSxbMjQsWyJwYXR0ZXJuIl1dLFsyNCxbIm1heGxlbmd0aCJdXSwic2Vjb25kLWZhY3Rvci10b2tlbi1pbnB1dCIsWzI0LFsiaW5wdXRJZCJdXSwib2ZmIiwib2ZmIiwiYXV0b2ZvY3VzIixbMjQsWyJwbGFjZWhvbGRlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NlY29uZC1mYWN0b3ItaW5wdXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zZWN1cml0eS1rZXktZm9ybSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInNlY3VyaXR5LWtleSJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJpZCIsImxhYmVsIiwidHlwZSIsImNsYXNzIl0sW1syNCxbImFjdGlvbiJdXSwia2V5Iiwic2VjdXJpdHkta2V5LWF1dGhlbnRpY2F0ZS1idXR0b24iLCJsb2dpbi5zZWN1cml0eV9rZXlfYXV0aGVudGljYXRlIiwiYnV0dG9uIiwiYnRuIGJ0bi1sYXJnZSBidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm90aGVyTWV0aG9kQWxsb3dlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwidG9nZ2xlLXNlY29uZC1mYWN0b3ItbWV0aG9kIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidXNlQW5vdGhlck1ldGhvZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnNlY3VyaXR5X2tleV9hbHRlcm5hdGl2ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zZWN1cml0eS1rZXktZm9ybSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3NoYXJlLXBhbmVsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJzb3VyY2UiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJoZWFkZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzEsWzIyLCJzaGFyZVRpdGxlIl0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJib2R5Il0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiLCJjbGFzcyJdLFtbMjQsWyJzaGFyZVVybCJdXSwidG9waWMtc2hhcmUtdXJsIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLXNoYXJlLXVybC1mb3ItdG91Y2giXSxbOF0sWzcsImEiLHRydWVdLFs4XSxbOV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzb3VyY2VzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInNvdXJjZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwic2hhcmUtc291cmNlIixudWxsLFtbInNvdXJjZSIsInRpdGxlIiwiYWN0aW9uIl0sW1syMywxLFtdXSxbMjQsWyJ0b3BpYyIsInRpdGxlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzaGFyZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZS1wYW5lbCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3NoYXJlLXBvcHVwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJzIl0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJzaGFyZVRpdGxlIl0sdHJ1ZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJkYXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkYXRlIl0sWzhdLFsxLFsyMiwiZGlzcGxheURhdGUiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwidHlwZSIsInRleHQiXSxbOF0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaGFyZS1mb3ItdG91Y2giXSxbOF0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm92ZXJmbG93LWVsbGlwc2lzIl0sWzhdLFs3LCJhIix0cnVlXSxbOF0sWzldLFs5XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNvdXJjZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic291cmNlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJzaGFyZS1zb3VyY2UiLG51bGwsW1sic291cmNlIiwidGl0bGUiLCJhY3Rpb24iXSxbWzIzLDEsW11dLFsyNCxbIm1vZGVsIiwidGl0bGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNoYXJlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbHQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJkZXRhaWxzIiwiY2FuX3JlcGx5X2FzX25ld190b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LWFzLW5ldy10b3BpYyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWMiLCJpc1ByaXZhdGVNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwibmV3LXRvcGljIl0sWzEyLCJhcmlhLWxhYmVsIixbMjgsImkxOG4iLFsicG9zdC5yZXBseV9hc19uZXdfcHJpdmF0ZV9tZXNzYWdlIl0sbnVsbF1dLFsxMiwidGl0bGUiLFsyOCwiaTE4biIsWyJwb3N0LnJlcGx5X2FzX25ld19wcml2YXRlX21lc3NhZ2UiXSxudWxsXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlBc05ld1RvcGljIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicGx1cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubmV3X3ByaXZhdGVfbWVzc2FnZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJuZXctdG9waWMiXSxbMTIsImFyaWEtbGFiZWwiLFsyOCwiaTE4biIsWyJwb3N0LnJlcGx5X2FzX25ld190b3BpYyJdLG51bGxdXSxbMTIsInRpdGxlIixbMjgsImkxOG4iLFsicG9zdC5yZXBseV9hc19uZXdfdG9waWMiXSxudWxsXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlBc05ld1RvcGljIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsicGx1cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmNyZWF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJhcmlhLWxhYmVsIiwidGl0bGUiXSxbImNsb3NlIiwiYnRuIGJ0bi1mbGF0IGNsb3NlIiwidGltZXMiLCJzaGFyZS5jbG9zZSIsInNoYXJlLmNsb3NlIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NoYXJlLXBvcHVwIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvc2hhcmUtc291cmNlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwidGl0bGUiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsic291cmNlIiwidGl0bGUiXV1dLG51bGxdXV1dLFsxMiwiYXJpYS1sYWJlbCIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJzb3VyY2UiLCJ0aXRsZSJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hhcmUiLFsyNCxbInNvdXJjZSJdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic291cmNlIiwiaWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsic291cmNlIiwiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyNCxbInNvdXJjZSIsImh0bWxJY29uIl1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZS1zb3VyY2UifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zaGFyZWQtZHJhZnQtY29udHJvbHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzaGFyZWQtZHJhZnQtY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInB1Ymxpc2hpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsic2hhcmVkX2RyYWZ0cy5wdWJsaXNoaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiaTE4biIsWyJzaGFyZWRfZHJhZnRzLm5vdGljZSJdLFtbImNhdGVnb3J5Il0sW1syNCxbInRvcGljIiwiY2F0ZWdvcnkiLCJuYW1lIl1dXV1dLHRydWVdLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1Ymxpc2gtZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzaGFyZWRfZHJhZnRzLmRlc3RpbmF0aW9uX2NhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsidG9waWMiLCJkZXN0aW5hdGlvbl9jYXRlZ29yeV9pZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBkYXRlRGVzdGluYXRpb25DYXRlZ29yeSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWJsaXNoLWZpZWxkIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ2YWxpZENhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInB1Ymxpc2giXSxudWxsXSwic2hhcmVkX2RyYWZ0cy5wdWJsaXNoIiwiYnRuLXByaW1hcnkgcHVibGlzaC1zaGFyZWQtZHJhZnQiLCJmYXItY2xpcGJvYXJkIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zaGFyZWQtZHJhZnQtY29udHJvbHMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zaWdudXAtY3RhIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2lnbnVwLWN0YSBhbGVydCBhbGVydC1pbmZvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZXNzaW9uIiwiaGlkZVNpZ251cEN0YSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzaWdudXBfY3RhLmhpZGRlbl9mb3Jfc2Vzc2lvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syOCwiaTE4biIsWyJzaWdudXBfY3RhLmludHJvIl0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syOCwiaTE4biIsWyJzaWdudXBfY3RhLnZhbHVlX3Byb3AiXSxudWxsXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJidXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwiaWNvbiIsImNsYXNzIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dDcmVhdGVBY2NvdW50Il0sbnVsbF0sInNpZ251cF9jdGEuc2lnbl91cCIsImNoZWNrIiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJoaWRlRm9yU2Vzc2lvbiJdLG51bGxdLCJzaWdudXBfY3RhLmhpZGVfc2Vzc2lvbiIsIm5vLWljb24iXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJuZXZlclNob3ciXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzaWdudXBfY3RhLmhpZGVfZm9yZXZlciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3NpZ251cC1jdGEifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy9zdWdnZXN0ZWQtdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWdnZXN0ZWQtdG9waWNzLXRpdGxlIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syNCxbInN1Z2dlc3RlZFRpdGxlTGFiZWwiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImJhc2ljLXRvcGljLWxpc3QiLG51bGwsW1siaGlkZUNhdGVnb3J5Iiwic2hvd1Bvc3RlcnMiLCJ0b3BpY3MiXSxbInRydWUiLCJ0cnVlIixbMjQsWyJ0b3BpYyIsInN1Z2dlc3RlZFRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJiYXNpYy10b3BpYy1saXN0IixudWxsLFtbInRvcGljcyJdLFtbMjQsWyJ0b3BpYyIsInN1Z2dlc3RlZFRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcblxcbiJdLFs3LCJoMyIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1Z2dlc3RlZC10b3BpY3MtbWVzc2FnZSJdLFs4XSxbMSxbMjIsImJyb3dzZU1vcmVNZXNzYWdlIl0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy9zdWdnZXN0ZWQtdG9waWNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGFnLWRyb3AtbGluayJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJ0YWdJZCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdGFnLWRyb3AtbGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RhZy1ncm91cHMtZm9ybSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1ncm91cC1jb250ZW50Il0sWzhdLFswLCJcXG4gICJdLFs3LCJoMSIsdHJ1ZV0sWzhdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSJdLFtbMjQsWyJidWZmZXJlZCIsIm5hbWUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC10YWdzLWxpc3QiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMudGFnc19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiZXZlcnlUYWciLCJhbGxvd0NyZWF0ZSIsImZpbHRlclBsYWNlaG9sZGVyIiwidW5saW1pdGVkVGFnQ291bnQiLCJleGNsdWRlU3lub255bXMiXSxbWzI0LFsiYnVmZmVyZWQiLCJ0YWdfbmFtZXMiXV0sdHJ1ZSx0cnVlLCJ0YWdnaW5nLmdyb3Vwcy50YWdzX3BsYWNlaG9sZGVyIix0cnVlLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBhcmVudC10YWctc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5wYXJlbnRfdGFnX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImV2ZXJ5VGFnIiwibWF4aW11bSIsImFsbG93Q3JlYXRlIiwiZXhjbHVkZVN5bm9ueW1zIiwiZmlsdGVyUGxhY2Vob2xkZXIiXSxbWzI0LFsiYnVmZmVyZWQiLCJwYXJlbnRfdGFnX25hbWUiXV0sdHJ1ZSwxLHRydWUsdHJ1ZSwidGFnZ2luZy5ncm91cHMucGFyZW50X3RhZ19wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMucGFyZW50X3RhZ19kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtb25lLXBlci10b3BpYyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwibmFtZSJdLFsiY2hlY2tib3giLFsyNCxbImJ1ZmZlcmVkIiwib25lX3Blcl90b3BpYyJdXSwib25lcGVydG9waWMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuZ3JvdXBzLm9uZV9wZXJfdG9waWNfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtdmlzaWJpbGl0eSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siY2xhc3MiLCJuYW1lIiwidmFsdWUiLCJpZCIsInNlbGVjdGlvbiIsIm9uQ2hhbmdlIl0sWyJ0YWctcGVybWlzc2lvbnMtY2hvaWNlIiwidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInB1YmxpYyIsInB1YmxpYy1wZXJtaXNzaW9uIixbMjQsWyJidWZmZXJlZCIsInBlcm1pc3Npb25OYW1lIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXRQZXJtaXNzaW9ucyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInB1YmxpYy1wZXJtaXNzaW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5ldmVyeW9uZV9jYW5fdXNlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImNsYXNzIiwibmFtZSIsInZhbHVlIiwiaWQiLCJzZWxlY3Rpb24iLCJvbkNoYW5nZSJdLFsidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInRhZy1wZXJtaXNzaW9ucy1jaG9pY2UiLCJ2aXNpYmxlIiwidmlzaWJsZS1wZXJtaXNzaW9uIixbMjQsWyJidWZmZXJlZCIsInBlcm1pc3Npb25OYW1lIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXRQZXJtaXNzaW9ucyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInZpc2libGUtcGVybWlzc2lvbiJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5ncm91cHMudXNhYmxlX29ubHlfYnlfc3RhZmYiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siY2xhc3MiLCJuYW1lIiwidmFsdWUiLCJpZCIsInNlbGVjdGlvbiIsIm9uQ2hhbmdlIl0sWyJ0YWctcGVybWlzc2lvbnMtY2hvaWNlIiwidGFnLXBlcm1pc3Npb25zLWNob2ljZSIsInByaXZhdGUiLCJwcml2YXRlLXBlcm1pc3Npb24iLFsyNCxbImJ1ZmZlcmVkIiwicGVybWlzc2lvbk5hbWUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNldFBlcm1pc3Npb25zIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFsxMCwiZm9yIiwicHJpdmF0ZS1wZXJtaXNzaW9uIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy52aXNpYmxlX29ubHlfdG9fc3RhZmYiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdLFsyNCxbInNhdmluZ0Rpc2FibGVkIl1dLCJ0YWdnaW5nLmdyb3Vwcy5zYXZlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGFuZ2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVzdHJveSJdLG51bGxdLFsyNCxbImJ1ZmZlcmVkIiwiaXNOZXciXV0sImZhci10cmFzaC1hbHQiLCJ0YWdnaW5nLmdyb3Vwcy5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90YWctZ3JvdXBzLWZvcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90YWctaW5mbyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnIiwiY2F0ZWdvcnkiXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWluZm8iXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInRhZ0luZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syNCxbInRhZ0luZm8iLCJuYW1lIl1dXSxbWyJ0YWdOYW1lIiwic2l6ZSJdLFsiZGl2IiwibGFyZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQWRtaW5UYWciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCIsImlkIl0sWyJidG4tZGVmYXVsdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbmFtZVRhZyJdLG51bGxdLCJwZW5jaWwtYWx0IiwidGFnZ2luZy5yZW5hbWVfdGFnIiwicmVuYW1lLXRhZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJpZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFZGl0Q29udHJvbHMiXSxudWxsXSwiY29nIiwidGFnZ2luZy5lZGl0X3N5bm9ueW1zIiwiZWRpdC1zeW5vbnltcyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkZWxldGVBY3Rpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiaWQiXSxbImJ0bi1kYW5nZXIgZGVsZXRlLXRhZyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVRhZyJdLG51bGxdLCJmYXItdHJhc2gtYWx0IiwidGFnZ2luZy5kZWxldGVfdGFnIiwiZGVsZXRlLXRhZyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctYXNzb2NpYXRpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJbmZvIiwidGFnX2dyb3VwX25hbWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwidGFnR3JvdXBzSW5mbyJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzIyLCJjYXRlZ29yaWVzSW5mbyJdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMixbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm5vdGhpbmdUb1Nob3ciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidGFnSW5mbyIsImNhdGVnb3J5X3Jlc3RyaWN0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5jYXRlZ29yeV9yZXN0cmljdGVkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmRlZmF1bHRfaW5mbyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJbmZvIiwic3lub255bXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzeW5vbnltcy1saXN0Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnN5bm9ueW1zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc3lub255bXNfZGVzY3JpcHRpb24iXSxbWyJiYXNlX3RhZ19uYW1lIl0sW1syNCxbInRhZ0luZm8iLCJuYW1lIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWxpc3QiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidGFnSW5mbyIsInN5bm9ueW1zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWJveCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbImlkIl1dXSxbWyJwbU9ubHkiLCJ0YWdOYW1lIl0sW1syMywxLFsicG1Pbmx5Il1dLCJkaXYiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZWRpdFN5bm9ueW1zTW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInVubGluay1zeW5vbnltIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidW5saW5rU3lub255bSIsWzIzLDEsW11dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1bmxpbmsiXSxbWyJ0aXRsZSJdLFsidGFnZ2luZy5yZW1vdmVfc3lub255bSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiZGVsZXRlLXN5bm9ueW0iXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVTeW5vbnltIixbMjMsMSxbXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci10cmFzaC1hbHQiXSxbWyJ0aXRsZSJdLFsidGFnZ2luZy5kZWxldGVfdGFnIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiZWRpdFN5bm9ueW1zTW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJhZGQtc3lub255bXMgZmllbGQiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsImFkZC1zeW5vbnltcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5hZGRfc3lub255bXNfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1siaWQiLCJ0YWdzIiwiZXZlcnlUYWciLCJleGNsdWRlU3lub255bXMiLCJleGNsdWRlSGFzU3lub255bXMiLCJ1bmxpbWl0ZWRUYWdDb3VudCJdLFsiYWRkLXN5bm9ueW1zIixbMjQsWyJuZXdTeW5vbnltcyJdXSx0cnVlLHRydWUsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRTeW5vbnltcyJdLG51bGxdLFsyNCxbImFkZFN5bm9ueW1zRGlzYWJsZWQiXV0sInRhZ2dpbmcuYWRkX3N5bm9ueW1zIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxvYWRpbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RhZy1pbmZvIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGFnLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidGl0bGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzIyLCJ0aXRsZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhdGVnb3J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY2F0ZWdvcnktdGl0bGUtbGluayIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRhZ0dyb3VwTmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjIsInRhZ0dyb3VwTmFtZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJlYWNoIixbWzI0LFsic29ydGVkVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGFnLWJveCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syMywxLFsiaWQiXV1dLFtbImlzUHJpdmF0ZU1lc3NhZ2UiLCJwbU9ubHkiLCJ0YWdzRm9yVXNlciJdLFtbMjQsWyJpc1ByaXZhdGVNZXNzYWdlIl1dLFsyMywxLFsicG1Pbmx5Il1dLFsyNCxbInRhZ3NGb3JVc2VyIl1dXV1dLGZhbHNlXSxbMCwiICJdLFs0LCJpZiIsW1syMywxLFsicG1Pbmx5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImZhci1lbnZlbG9wZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbInRvdGFsQ291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1jb3VudCJdLFs4XSxbMCwieCAiXSxbMSxbMjMsMSxbInRvdGFsQ291bnQiXV0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90YWctbGlzdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RleHQtb3ZlcmZsb3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwidGV4dCJdLHRydWVdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90ZXh0LW92ZXJmbG93In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdGltZS1pbnB1dCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibmF0aXZlUGlja2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJjbGFzcyIsInR5cGUiLCJ2YWx1ZSIsImNoYW5nZSJdLFsiZmllbGQgdGltZSIsInRpbWUiLFsyOCwiY29uY2F0IixbWzI0LFsiX2hvdXJzIl1dLCI6IixbMjQsWyJfbWludXRlcyJdXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlVGltZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImNsYXNzIiwidHlwZSIsInRpdGxlIiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwibWF4IiwibWluIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsImlucHV0IiwiZm9jdXMtaW4iXSxbImZpZWxkIGhvdXJzIiwibnVtYmVyIiwiSG91cnMiLDIsMiwiMjMiLCIwIiwiMDAiLFsyNCxbIl9ob3VycyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25JbnB1dCIsWzI4LCJoYXNoIixudWxsLFtbInByb3AiXSxbImhvdXJzIl1dXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uRm9jdXNJbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZXBhcmF0b3IiXSxbOF0sWzAsIjoiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImNsYXNzIiwidGl0bGUiLCJ0eXBlIiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwibWF4IiwibWluIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsImlucHV0IiwiZm9jdXMtaW4iXSxbImZpZWxkIG1pbnV0ZXMiLCJNaW51dGVzIiwibnVtYmVyIiwyLDIsIjU5IiwiMCIsIjAwIixbMjQsWyJfbWludXRlcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25JbnB1dCIsWzI4LCJoYXNoIixudWxsLFtbInByb3AiXSxbIm1pbnV0ZXMiXV1dXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25Gb2N1c0luIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90aW1lLWlucHV0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9wLXBlcmlvZC1idXR0b25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInBlcmlvZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiYWN0aW9uUGFyYW0iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdLCJidG4tZGVmYXVsdCIsWzIzLDEsW11dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInBlcmlvZC10aXRsZSIsW1syMywxLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9wLXBlcmlvZC1idXR0b25zIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtY2F0ZWdvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJ0b3BpYyIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJib3VuZC1jYXRlZ29yeS1saW5rIixbWzI0LFsidG9waWMiLCJjYXRlZ29yeSJdXV0sW1sicmVjdXJzaXZlIiwiaGlkZVBhcmVudCJdLFt0cnVlLHRydWVdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtaGVhZGVyLWV4dHJhIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC10YWdzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWdzIixbWzI0LFsidG9waWMiXV1dLFtbIm1vZGUiLCJ0YWdzIl0sWyJsaXN0IixbMjQsWyJ0b3BpYyIsInRhZ3MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0b3BpY19mZWF0dXJlZF9saW5rX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWZlYXR1cmVkLWxpbmsiLFtbMjQsWyJ0b3BpYyJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtY2F0ZWdvcnkiLFsyOCwiaGFzaCIsbnVsbCxbWyJ0b3BpYyIsImNhdGVnb3J5Il0sW1syNCxbInRvcGljIl1dLFsyNCxbInRvcGljIiwiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1jYXRlZ29yeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWVudHJhbmNlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVudGVyVG9wIl0sbnVsbF0sImZ1bGwganVtcC10b3AiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWljb24iLFsic3RlcC1iYWNrd2FyZCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidG9wRGF0ZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlbnRlckJvdHRvbSJdLG51bGxdLCJmdWxsIGp1bXAtYm90dG9tIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyMiwiYm90dG9tRGF0ZSJdLHRydWVdLFswLCIgIl0sWzEsWzI4LCJkLWljb24iLFsic3RlcC1mb3J3YXJkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1lbnRyYW5jZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWZvb3Rlci1idXR0b25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJidXR0b24iXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1mb290ZXItbWFpbi1idXR0b25zIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwidG9waWMtYWRtaW4tbWVudS1idXR0b24iLG51bGwsW1sidG9waWMiLCJvcGVuVXB3YXJkcyIsInRvZ2dsZU11bHRpU2VsZWN0IiwiZGVsZXRlVG9waWMiLCJyZWNvdmVyVG9waWMiLCJ0b2dnbGVGZWF0dXJlZE9uUHJvZmlsZSIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsidG9waWMiXV0sInRydWUiLFsyNCxbInRvZ2dsZU11bHRpU2VsZWN0Il1dLFsyNCxbImRlbGV0ZVRvcGljIl1dLFsyNCxbInJlY292ZXJUb3BpYyJdXSxbMjQsWyJ0b2dnbGVGZWF0dXJlZE9uUHJvZmlsZSJdXSxbMjQsWyJ0b2dnbGVDbG9zZWQiXV0sWzI0LFsidG9nZ2xlQXJjaGl2ZWQiXV0sWzI0LFsidG9nZ2xlVmlzaWJpbGl0eSJdXSxbMjQsWyJzaG93VG9waWNTdGF0dXNVcGRhdGUiXV0sWzI0LFsic2hvd0ZlYXR1cmVUb3BpYyJdXSxbMjQsWyJzaG93Q2hhbmdlVGltZXN0YW1wIl1dLFsyNCxbInJlc2V0QnVtcERhdGUiXV0sWzI0LFsiY29udmVydFRvUHVibGljVG9waWMiXV0sWzI0LFsiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwidG9waWMtZm9vdGVyLW1vYmlsZS1kcm9wZG93biIsbnVsbCxbWyJ0b3BpYyIsImNvbnRlbnQiXSxbWzI0LFsidG9waWMiXV0sWzI0LFsiZHJvcGRvd25CdXR0b25zIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiaW5saW5lQnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWQiLCJjbGFzcyIsImFjdGlvbiIsImljb24iLCJ0cmFuc2xhdGVkTGFiZWwiLCJ0cmFuc2xhdGVkVGl0bGUiLCJkaXNhYmxlZCJdLFtbMjgsImNvbmNhdCIsWyJ0b3BpYy1mb290ZXItYnV0dG9uLSIsWzIzLDEsWyJpZCJdXV0sbnVsbF0sWzI4LCJjb25jYXQiLFsiYnRuLWRlZmF1bHQgdG9waWMtZm9vdGVyLWJ1dHRvbiAiLFsyMywxLFsiY2xhc3NOYW1lcyJdXV0sbnVsbF0sWzIzLDEsWyJhY3Rpb24iXV0sWzIzLDEsWyJpY29uIl1dLFsyMywxLFsibGFiZWwiXV0sWzIzLDEsWyJ0aXRsZSJdXSxbMjMsMSxbImRpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJ0b3BpYy1mb290ZXItbWFpbi1idXR0b25zLWJlZm9yZS1jcmVhdGUiLFsyOCwiaGFzaCIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyJdXV1dXSwiIiwic3BhbiJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ0b3BpYyIsImRldGFpbHMiLCJjYW5fY3JlYXRlX3Bvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWNvbiIsImFjdGlvbiIsImxhYmVsIiwidGl0bGUiXSxbImJ0bi1wcmltYXJ5IGNyZWF0ZSIsInJlcGx5IixbMjQsWyJyZXBseVRvUG9zdCJdXSwidG9waWMucmVwbHkudGl0bGUiLCJ0b3BpYy5yZXBseS5oZWxwIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJhZnRlci10b3BpYy1mb290ZXItbWFpbi1idXR0b25zIixbMjgsImhhc2giLG51bGwsW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sIiIsInNwYW4iXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBpbm5lZC1idXR0b24iLG51bGwsW1sicGlubmVkIiwidG9waWMiXSxbWzI0LFsidG9waWMiLCJwaW5uZWQiXV0sWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dOb3RpZmljYXRpb25zQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iLG51bGwsW1sibm90aWZpY2F0aW9uTGV2ZWwiLCJ0b3BpYyJdLFtbMjQsWyJ0b3BpYyIsImRldGFpbHMiLCJub3RpZmljYXRpb25fbGV2ZWwiXV0sWzI0LFsidG9waWMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwidGFnTmFtZSIsImNvbm5lY3RvclRhZ05hbWUiXSxbImFmdGVyLXRvcGljLWZvb3Rlci1idXR0b25zIixbMjgsImhhc2giLG51bGwsW1sidG9waWMiXSxbWzI0LFsidG9waWMiXV1dXV0sIiIsInNwYW4iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9waWMtZm9vdGVyLWJ1dHRvbnMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1qb2luLWdyb3VwLW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJhY2Nlc3NWaWFHcm91cFRleHQiXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI0LFsiYWN0aW9uIl1dLCJidG4tcHJpbWFyeSB0b3BpYy1qb2luLWdyb3VwIiwidXNlci1wbHVzIixbMjQsWyJhY2Nlc3NWaWFHcm91cEJ1dHRvblRleHQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1qb2luLWdyb3VwLW5vdGljZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJ0b3BpY0xpc3RJdGVtQ29udGVudHMiXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLWxpc3QtaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3RvcGljLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRvcGljIl0sInN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2tpcEhlYWRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwicmF3IixbInRvcGljLWxpc3QtaGVhZGVyIl0sW1siY2FuQnVsa1NlbGVjdCIsInRvZ2dsZUluVGl0bGUiLCJoaWRlQ2F0ZWdvcnkiLCJzaG93UG9zdGVycyIsInNob3dMaWtlcyIsInNob3dPcExpa2VzIiwib3JkZXIiLCJhc2NlbmRpbmciLCJzb3J0YWJsZSIsImxpc3RUaXRsZSIsImJ1bGtTZWxlY3RFbmFibGVkIl0sW1syNCxbImNhbkJ1bGtTZWxlY3QiXV0sWzI0LFsidG9nZ2xlSW5UaXRsZSJdXSxbMjQsWyJoaWRlQ2F0ZWdvcnkiXV0sWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsic2hvd0xpa2VzIl1dLFsyNCxbInNob3dPcExpa2VzIl1dLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzY2VuZGluZyJdXSxbMjQsWyJzb3J0YWJsZSJdXSxbMjQsWyJsaXN0VGl0bGUiXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiLCJjb25uZWN0b3JUYWdOYW1lIl0sWyJiZWZvcmUtdG9waWMtbGlzdC1ib2R5IixbMjgsImhhc2giLG51bGwsW1sidG9waWNzIiwic2VsZWN0ZWQiLCJidWxrU2VsZWN0RW5hYmxlZCIsImxhc3RWaXNpdGVkVG9waWMiLCJkaXNjb3ZlcnlMaXN0IiwiaGlkZUNhdGVnb3J5Il0sW1syNCxbInRvcGljcyJdXSxbMjQsWyJzZWxlY3RlZCJdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJsYXN0VmlzaXRlZFRvcGljIl1dLFsyNCxbImRpc2NvdmVyeUxpc3QiXV0sWzI0LFsiaGlkZUNhdGVnb3J5Il1dXV1dLCIiLCIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiZmlsdGVyZWRUb3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QtaXRlbSIsbnVsbCxbWyJ0b3BpYyIsImJ1bGtTZWxlY3RFbmFibGVkIiwic2hvd1RvcGljUG9zdEJhZGdlcyIsImhpZGVDYXRlZ29yeSIsInNob3dQb3N0ZXJzIiwic2hvd0xpa2VzIiwic2hvd09wTGlrZXMiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsImxhc3RWaXNpdGVkVG9waWMiLCJzZWxlY3RlZCIsInRhZ3NGb3JVc2VyIl0sW1syMywxLFtdXSxbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXSxbMjQsWyJzaG93VG9waWNQb3N0QmFkZ2VzIl1dLFsyNCxbImhpZGVDYXRlZ29yeSJdXSxbMjQsWyJzaG93UG9zdGVycyJdXSxbMjQsWyJzaG93TGlrZXMiXV0sWzI0LFsic2hvd09wTGlrZXMiXV0sWzI0LFsiZXhwYW5kR2xvYmFsbHlQaW5uZWQiXV0sWzI0LFsiZXhwYW5kQWxsUGlubmVkIl1dLFsyNCxbImxhc3RWaXNpdGVkVG9waWMiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsidGFnc0ZvclVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC92aXNpdGVkLWxpbmUiXSxbWyJsYXN0VmlzaXRlZFRvcGljIiwidG9waWMiXSxbWzI0LFsibGFzdFZpc2l0ZWRUb3BpYyJdXSxbMjMsMSxbXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1saXN0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtbmF2aWdhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1sxNCwxLFtbMjQsWyJpbmZvIl1dXV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLW5hdmlnYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1wb3N0LWJhZGdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidW5yZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIMKgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsInVybCJdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gdW5yZWFkIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudW5yZWFkX3Bvc3RzIl0sW1siY291bnQiXSxbWzI0LFsidW5yZWFkIl1dXV1dXV1dLFs4XSxbMSxbMjIsInVucmVhZCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm5ld1Bvc3RzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgIMKgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsInVybCJdXV1dLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gbmV3LXBvc3RzIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMudG90YWxfdW5yZWFkX3Bvc3RzIl0sW1siY291bnQiXSxbWzI0LFsibmV3UG9zdHMiXV1dXV1dXV0sWzhdLFsxLFsyMiwibmV3UG9zdHMiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgwqAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syMiwidXJsIl1dXV0sWzEwLCJjbGFzcyIsImJhZGdlIGJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJ0b3BpYy5uZXciXSxudWxsXV1dXSxbOF0sWzEsWzIyLCJuZXdEb3RUZXh0Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdG9waWMtcG9zdC1iYWRnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy1wcm9ncmVzcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiJmRlZmF1bHQiXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJoaWRlUHJvZ3Jlc3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzE0LDFdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0JhY2tCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInByb2dyZXNzLWJhY2stY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIiwiaWNvbiJdLFsidG9waWMudGltZWxpbmUuYmFjayIsImJ0bi1wcmltYXJ5IHByb2dyZXNzLWJhY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJnb0JhY2siXSxudWxsXSwiYXJyb3ctZG93biJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJuYXYiLHRydWVdLFsxMCwiaWQiLCJ0b3BpYy1wcm9ncmVzcyJdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInRvcGljLnByb2dyZXNzLnRpdGxlIl0sbnVsbF1dXV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsiaGlkZVByb2dyZXNzIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm51bXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjIsInByb2dyZXNzUG9zaXRpb24iXSxmYWxzZV0sWzldLFs3LCJzcGFuIix0cnVlXSxbMTEsImNsYXNzIixbMjksW1syOCwiaWYiLFtbMjQsWyJodWdlTnVtYmVyT2ZQb3N0cyJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMCwiLyJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJoNCIsdHJ1ZV0sWzhdLFsxLFsyNCxbInBvc3RTdHJlYW0iLCJmaWx0ZXJlZFBvc3RzQ291bnQiXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLXByb2dyZXNzIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtc3RhdHVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3BpY0Nsb3NlZEFyY2hpdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJjbG9zZWRBcmNoaXZlZFRpdGxlIl1dLFs4XSxbMSxbMjIsImNsb3NlZEFyY2hpdmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiY2xvc2VkSWNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwiY2xvc2VkVGl0bGUiXV0sWzhdLFsxLFsyMiwiY2xvc2VkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiYXJjaGl2ZWRJY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJhcmNoaXZlZFRpdGxlIl1dLFs4XSxbMSxbMjIsImFyY2hpdmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidG9waWNXYXJuaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJ3YXJuaW5nVGl0bGUiXV0sWzhdLFsxLFsyMiwid2FybmluZ0ljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRvcGljUGlubmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkFjdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwicGlubmVkVGl0bGUiXV0sWzhdLFsxLFsyMiwicGlubmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1zdGF0dXMiXSxbMTEsInRpdGxlIixbMjIsInBpbm5lZFRpdGxlIl1dLFs4XSxbMSxbMjIsInBpbm5lZEljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJ0b3BpY1VucGlubmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhbkFjdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsdHJ1ZV0sWzEwLCJocmVmIiwiIl0sWzEwLCJjbGFzcyIsInRvcGljLXN0YXR1cyJdLFsxMSwidGl0bGUiLFsyMiwidW5waW5uZWRUaXRsZSJdXSxbOF0sWzEsWzIyLCJ1bnBpbm5lZEljb24iXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJ1bnBpbm5lZFRpdGxlIl1dLFs4XSxbMSxbMjIsInVucGlubmVkSWNvbiJdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInRvcGljSW52aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtc3RhdHVzIl0sWzExLCJ0aXRsZSIsWzIyLCJpbnZpc2libGVUaXRsZSJdXSxbOF0sWzEsWzIyLCJpbnZpc2libGVJY29uIl0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy1zdGF0dXMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy90b3BpYy10aW1lci1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93VG9waWNUaW1lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aW1lci1oZWFkaW5nIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzIyLCJ0aXRsZSJdXV1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzIyLCJjbG9ja0ljb24iXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsIm5vdGljZSJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RyYXNoQ2FuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYnV0dG9uIix0cnVlXSxbMTAsImNsYXNzIiwiYnRuIHRvcGljLXRpbWVyLXJlbW92ZSBuby10ZXh0Il0sWzExLCJ0aXRsZSIsWzI5LFtbMjIsInRyYXNoQ2FuVGl0bGUiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzIyLCJ0cmFzaENhbkljb24iXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy90b3BpYy10aW1lci1pbmZvIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdG9waWMtdGl0bGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZS13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzE0LDFdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInRvcGljLXRpdGxlIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RvcGljLXRpdGxlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdHJhY2stc2VsZWN0ZWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsImNoZWNrZWQiXSxbImNoZWNrYm94IixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3RyYWNrLXNlbGVjdGVkIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1iYWRnZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjIsImJhZGdlVXJsIl1dXV0sWzhdLFswLCJcXG4iXSxbNCwiYmFkZ2UtYnV0dG9uIixudWxsLFtbImJhZGdlIl0sW1syNCxbImJhZGdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd0dyYW50Q291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY291bnQiXSxbOF0sWzAsIijDl8KgIl0sWzEsWzIyLCJjb3VudCJdLGZhbHNlXSxbMCwiKSJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWJhZGdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1jYXJkLWNvbnRlbnRzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1YiIsInVmIl0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ2aXNpYmxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWNvbnRlbnQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY2FyZC1hdmF0YXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1hdmF0YXItcGxhY2Vob2xkZXIgYW5pbWF0ZWQtcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXItYW5pbWF0aW9uIl0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbmltYXRlZC1wbGFjZWhvbGRlciBwbGFjZWhvbGRlci1hbmltYXRpb24iXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYW5pbWF0ZWQtcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXItYW5pbWF0aW9uIl0sWzhdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyBmaXJzdC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY2FyZC1hdmF0YXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcm9maWxlX2hpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWh1Z2UtYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyIixbWzI0LFsidXNlciJdXSwiaHVnZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsWzI5LFtbMjQsWyJ1c2VyIiwicGF0aCJdXV1dXSxbMTIsImNsYXNzIiwiY2FyZC1odWdlLWF2YXRhciJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIixbMjQsWyJ1c2VyIl1dXV0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyIixbWzI0LFsidXNlciJdXSwiaHVnZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9uYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhci1mbGFpciIsbnVsbCxbWyJmbGFpclVSTCIsImZsYWlyQmdDb2xvciIsImZsYWlyQ29sb3IiLCJncm91cE5hbWUiXSxbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyIsInRhZ05hbWUiXSxbInVzZXItY2FyZC1hdmF0YXItZmxhaXIiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV0sImRpdiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibmFtZXMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzIyLCJzdGFmZiJdLCIgIixbMjIsIm5ld1VzZXIiXSwiICIsWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSwiZnVsbC1uYW1lIiwidXNlcm5hbWUiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcm9maWxlX2hpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hbWUtdXNlcm5hbWUtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV0sWzI0LFsidXNlciIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJ1c2VybmFtZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIixbMjksW1syNCxbInVzZXIiLCJwYXRoIl1dXV1dLFsxMiwiY2xhc3MiLCJ1c2VyLXByb2ZpbGUtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIixbMjQsWyJ1c2VyIl1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuYW1lLXVzZXJuYW1lLXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV0sWzI0LFsidXNlciIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJ1c2VybmFtZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0dXMiLFtbMjQsWyJ1c2VyIl1dXSxbWyJjdXJyZW50VXNlciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWNhcmQtYWZ0ZXItdXNlcm5hbWUiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIiwic2hvd1VzZXIiXSxbWzI0LFsidXNlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1VzZXIiLFsyNCxbInVzZXIiXV1dLG51bGxdXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm5hbWVGaXJzdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ1c2VyIiwibmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFsxMCwiY2xhc3MiLCJmdWxsLW5hbWUiXSxbOF0sWzEsWzI0LFsidXNlciIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXJuYW1lIl0sWzhdLFsxLFsyMiwidXNlcm5hbWUiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsidXNlciIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjQsWyJ1c2VyIiwidGl0bGUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidXNlciIsInN0YWdlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbMTAsImNsYXNzIiwic3RhZ2VkIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN0YWdlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIiwidGFnTmFtZSJdLFsidXNlci1jYXJkLXBvc3QtbmFtZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV0sImRpdiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyY2FyZC1jb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsImNhbl9zZW5kX3ByaXZhdGVfbWVzc2FnZV90b191c2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3NlLXBtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29tcG9zZVBNIixbMjQsWyJ1c2VyIl1dLFsyNCxbInBvc3QiXV1dLG51bGxdLCJlbnZlbG9wZSIsInVzZXIucHJpdmF0ZV9tZXNzYWdlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd0ZpbHRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJ0cmFuc2xhdGVkTGFiZWwiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUG9zdHMiLFsyNCxbInVzZXIiXV1dLG51bGxdLCJmaWx0ZXIiLFsyNCxbInRvZ2dsZVBvc3RzTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImhhc1VzZXJGaWx0ZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsRmlsdGVyIl0sbnVsbF0sInRpbWVzIiwidG9waWMuZmlsdGVycy5jYW5jZWwiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVsZXRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVVc2VyIl0sbnVsbF0sWzI0LFsidXNlciJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJhZG1pbi51c2VyLmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWNhcmQtYWRkaXRpb25hbC1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbInVzZXIiLCJjbG9zZSJdLFtbMjQsWyJ1c2VyIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZSJdLG51bGxdXV1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwicHJvZmlsZV9oaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHJvZmlsZS1oaWRkZW4iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucHJvZmlsZV9oaWRkZW4iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzU3VzcGVuZGVkT3JIYXNCaW8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93IHNlY29uZC1yb3ciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJzdXNwZW5kX3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbmRlZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3VzcGVuc2lvbi1kYXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VzcGVuZGVkX25vdGljZSJdLFtbImRhdGUiXSxbWzI0LFsidXNlciIsInN1c3BlbmRlZFRpbGxEYXRlIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbnNpb24tcmVhc29uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdXNwZW5zaW9uLXJlYXNvbi10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdXNwZW5kZWRfcmVhc29uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic3VzcGVuc2lvbi1yZWFzb24tZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI0LFsidXNlciIsInN1c3BlbmRfcmVhc29uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInVzZXIiLCJiaW9fZXhjZXJwdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYmlvIl0sWzhdLFsxLFsyOCwidGV4dC1vdmVyZmxvdyIsbnVsbCxbWyJjbGFzcyIsInRleHQiXSxbIm92ZXJmbG93IixbMjQsWyJ1c2VyIiwiYmlvX2V4Y2VycHQiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dGZWF0dXJlZFRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLXJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmZlYXR1cmVkX3RvcGljIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbHMiXSxbInRvcGljIixbMjgsImFycmF5IixbWzI0LFsidXNlciIsImZlYXR1cmVkX3RvcGljIiwic2x1ZyJdXSxbMjQsWyJ1c2VyIiwiZmVhdHVyZWRfdG9waWMiLCJpZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjQsWyJ1c2VyIiwiZmVhdHVyZWRfdG9waWMiLCJmYW5jeV90aXRsZSJdXSx0cnVlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNMb2NhdGlvbk9yV2Vic2l0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibG9jYXRpb24tYW5kLXdlYnNpdGUiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxvY2F0aW9uIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbIm1hcC1tYXJrZXItYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjQsWyJ1c2VyIiwibG9jYXRpb24iXV0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJ3ZWJzaXRlX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ3ZWJzaXRlLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJnbG9iZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibGlua1dlYnNpdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzI0LFsidXNlciIsIndlYnNpdGUiXV1dXV0sWzExLCJyZWwiLFsyOCwidW5sZXNzIixbWzI0LFsicmVtb3ZlTm9Gb2xsb3ciXV0sIm5vZm9sbG93IHVnYyBub29wZW5lciJdLG51bGxdXSxbMTAsInRhcmdldCIsIl9ibGFuayJdLFs4XSxbMSxbMjQsWyJ1c2VyIiwid2Vic2l0ZV9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI0LFsidXNlciIsIndlYnNpdGUiXV1dLFs4XSxbMSxbMjQsWyJ1c2VyIiwid2Vic2l0ZV9uYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY2FyZC1sb2NhdGlvbi1hbmQtd2Vic2l0ZSIsWzI4LCJoYXNoIixudWxsLFtbInVzZXIiXSxbWzI0LFsidXNlciJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsidXNlciIsInByb2ZpbGVfaGlkZGVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1ldGFkYXRhIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsYXN0X3Bvc3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInVzZXIiLCJsYXN0X3Bvc3RlZF9hdCJdXV0sW1sibGVhdmVBZ28iXSxbInRydWUiXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzEsWzI4LCJpMThuIixbImpvaW5lZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbInVzZXIiLCJjcmVhdGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsInRpbWVfcmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzIyLCJ0aW1lUmVhZFRvb2x0aXAiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzEsWzI4LCJpMThuIixbInRpbWVfcmVhZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbInVzZXIiLCJ0aW1lX3JlYWQiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1JlY2VudFRpbWVSZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCIoIl0sWzEsWzI4LCJpMThuIixbInRpbWVfcmVhZF9yZWNlbnRseSJdLFtbInRpbWVfcmVhZCJdLFtbMjQsWyJyZWNlbnRUaW1lUmVhZCJdXV1dXSxmYWxzZV0sWzAsIikiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd0NoZWNrRW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwiZW1haWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJmYXItZW52ZWxvcGUiXSxbWyJ0aXRsZSJdLFsidXNlci5lbWFpbC50aXRsZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwiZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbInVzZXIiLCJlbWFpbCJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoZWNrRW1haWwiXSxudWxsXSxbMjQsWyJ1c2VyIl1dLCJmYXItZW52ZWxvcGUiLCJhZG1pbi51c2Vycy5jaGVja19lbWFpbC50ZXh0IiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1jYXJkLW1ldGFkYXRhIixbMjgsImhhc2giLG51bGwsW1sidXNlciJdLFtbMjQsWyJ1c2VyIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWNhcmQtYWZ0ZXItbWV0YWRhdGEiLFsyOCwiaGFzaCIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInB1YmxpY1VzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhcmQtcm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1YmxpYy11c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJwdWJsaWNVc2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywyLFsidmFsdWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJwdWJsaWMtdXNlci1maWVsZCAiLFsyMywyLFsiZmllbGQiLCJkYXNoZXJpemVkX25hbWUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItZmllbGQtbmFtZSJdLFs4XSxbMSxbMjMsMixbImZpZWxkIiwibmFtZSJdXSxmYWxzZV0sWzAsIjoiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1maWVsZC12YWx1ZSJdLFs4XSxbMSxbMjMsMixbInZhbHVlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY2FyZC1iZWZvcmUtYmFkZ2VzIixbMjgsImhhc2giLG51bGwsW1sidXNlciJdLFtbMjQsWyJ1c2VyIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0JhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2FyZC1yb3ciXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJmZWF0dXJlZF91c2VyX2JhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidXNlciIsImZlYXR1cmVkX3VzZXJfYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWJhZGdlIixudWxsLFtbImJhZGdlIiwidXNlciJdLFtbMjMsMSxbImJhZGdlIl1dLFsyNCxbInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzQsImlmIixbWzI0LFsic2hvd01vcmVCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vcmUtdXNlci1iYWRnZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInVzZXIuYmFkZ2VzIixbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImJhZGdlcy5tb3JlX2JhZGdlcyJdLFtbImNvdW50Il0sW1syNCxbIm1vcmVCYWRnZXNDb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3VzZXItY2FyZC1jb250ZW50cyJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL2NvbmZpcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpZWxkIiwibmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzExLCJmb3IiLFsyOSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsiZmllbGQiLCJuYW1lIl1dLHRydWVdLFswLCIgICAiXSxbNCwiaWYiLFtbMjQsWyJmaWVsZCIsInJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwicmVxdWlyZWQiXSxbOF0sWzAsIioiXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwgY2hlY2tib3gtbGFiZWwiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwiY2hlY2tlZCIsInR5cGUiXSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF0sWzI0LFsidmFsdWUiXV0sImNoZWNrYm94Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFswLCIgICAiXSxbNCwidW5sZXNzIixbWzI0LFsiZmllbGQiLCJuYW1lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImZpZWxkIiwicmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXF1aXJlZCJdLFs4XSxbMCwiKiJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1maWVsZHMvY29uZmlybSJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL2Ryb3Bkb3duIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzExLCJmb3IiLFsyOSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyNCxbImZpZWxkIiwibmFtZSJdXSx0cnVlXSxbMCwiICJdLFs0LCJpZiIsW1syNCxbImZpZWxkIiwicmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJyZXF1aXJlZCJdLFs4XSxbMCwiKiJdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1siaWQiLCJjb250ZW50IiwidmFsdWVQcm9wZXJ0eSIsIm5hbWVQcm9wZXJ0eSIsInZhbHVlIiwibm9uZSIsIm9uQ2hhbmdlIl0sW1syOCwiY29uY2F0IixbInVzZXItIixbMjQsWyJlbGVtZW50SWQiXV1dLG51bGxdLFsyNCxbImZpZWxkIiwib3B0aW9ucyJdXSxudWxsLG51bGwsWzI0LFsidmFsdWUiXV0sWzI0LFsibm9uZUxhYmVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidmFsdWUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWZpZWxkcy9kcm9wZG93biJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItZmllbGRzL3RleHQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTEsImZvciIsWzI5LFtbMjgsImNvbmNhdCIsWyJ1c2VyLSIsWzI0LFsiZWxlbWVudElkIl1dXSxudWxsXV1dXSxbOF0sWzEsWzI0LFsiZmllbGQiLCJuYW1lIl1dLHRydWVdLFswLCIgIl0sWzQsImlmIixbWzI0LFsiZmllbGQiLCJyZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcXVpcmVkIl0sWzhdLFswLCIqIl0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwidmFsdWUiLCJtYXhsZW5ndGgiXSxbWzI4LCJjb25jYXQiLFsidXNlci0iLFsyNCxbImVsZW1lbnRJZCJdXV0sbnVsbF0sWzI0LFsidmFsdWUiXV0sWzI0LFsic2l0ZSIsInVzZXJfZmllbGRfbWF4X2xlbmd0aCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjQsWyJmaWVsZCIsImRlc2NyaXB0aW9uIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWZpZWxkcy90ZXh0In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1mbGFnLXBlcmNlbnRhZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dQZXJjZW50YWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZsYWctcGVyY2VudGFnZSJdLFsxMSwidGl0bGUiLFsyNCxbInBlcmNlbnRhZ2UiLCJ0aXRsZSJdXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInBlcmNlbnRhZ2UtbGFiZWwgIixbMjQsWyJwZXJjZW50YWdlIiwiY2xhc3NOYW1lIl1dXV1dLFs4XSxbMSxbMjQsWyJwZXJjZW50YWdlIiwibGFiZWwiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbWzI0LFsicGVyY2VudGFnZSIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb25lbnRzL3VzZXItZmxhZy1wZXJjZW50YWdlIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1pbmZvIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW1hZ2UtaW5uZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXJQYXRoIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXIiLCJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzI0LFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJhdmF0YXItZmxhaXIiLG51bGwsW1siZmxhaXJVUkwiLCJmbGFpckJnQ29sb3IiLCJmbGFpckNvbG9yIiwiZ3JvdXBOYW1lIl0sW1syNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX3VybCJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9mbGFpcl9iZ19jb2xvciJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvciJdXSxbMjQsWyJ1c2VyIiwicHJpbWFyeV9ncm91cF9uYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWRldGFpbCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibmFtZS1saW5lIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VybmFtZSJdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXJQYXRoIl1dXSxudWxsXV1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbInVzZXIiLCJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiZm9ybWF0LXVzZXJuYW1lIixbWzI0LFsidXNlciIsInVzZXJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibmFtZSJdLFs4XSxbMSxbMjgsInVuYm91bmQiLFtbMjQsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzI0LFsidXNlciIsInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjUsMV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzE0LDFdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLWluZm8ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXByb2ZpbGUtYXZhdGFyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWF2YXRhciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syNCxbInVzZXIiXV0sImh1Z2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImF2YXRhci1mbGFpciIsbnVsbCxbWyJmbGFpclVSTCIsImZsYWlyQmdDb2xvciIsImZsYWlyQ29sb3IiLCJncm91cE5hbWUiXSxbWzI0LFsidXNlciIsInByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX2ZsYWlyX2NvbG9yIl1dLFsyNCxbInVzZXIiLCJwcmltYXJ5X2dyb3VwX25hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLXByb2ZpbGUtYXZhdGFyLWZsYWlyIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsidXNlciJdXV1dXSwiZGl2Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1wcm9maWxlLWF2YXRhciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb25lbnRzL3VzZXItc3RhdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ2YWx1ZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNOdW1iZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsIm51bWJlciIsW1syNCxbInZhbHVlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzRHVyYXRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImZvcm1hdC1kdXJhdGlvbiIsW1syNCxbInZhbHVlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzIyLCJ2YWx1ZSJdLGZhbHNlXSxbMCwiXFxuICAiXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbMCwiXFxuICAiXSxbNCwiaWYiLFtbMjQsWyJpY29uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbWzI0LFsiaWNvbiJdXV0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsW1syNCxbImxhYmVsIl1dXSxbWyJjb3VudCJdLFtbMjQsWyJ2YWx1ZSJdXV1dXSx0cnVlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN0YXQifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN0cmVhbS1pdGVtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjaGlsZCIsImdyYW5kQ2hpbGQiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCBpbmZvIl0sWzhdLFswLCJcXG4gICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIml0ZW0iLCJ1c2VyVXJsIl1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjQsWyJpdGVtIiwidXNlcm5hbWUiXV1dLFsxMCwiY2xhc3MiLCJhdmF0YXItbGluayJdLFs4XSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXZhdGFyLXdyYXBwZXIiXSxbOF0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIl1dXSxbWyJpbWFnZVNpemUiLCJleHRyYUNsYXNzZXMiLCJpZ25vcmVUaXRsZSJdLFsibGFyZ2UiLCJhY3RvciIsInRydWUiXV1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidGltZSJdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsiaXRlbSIsImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkcmFmdFR5cGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRyYWZ0LXR5cGUiXSxbOF0sWzEsWzI0LFsiaXRlbSIsImRyYWZ0VHlwZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJleHBhbmQtcG9zdCIsbnVsbCxbWyJpdGVtIl0sW1syNCxbIml0ZW0iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0cmVhbS10b3BpYy1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0cmVhbS10b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiLCJkaXNhYmxlQWN0aW9ucyJdLFtbMjQsWyJpdGVtIl1dLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRpdGxlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwicG9zdFVybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIml0ZW0iLCJwb3N0VXJsIl1dXSxbOF0sWzEsWzI0LFsiaXRlbSIsInRpdGxlIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjQsWyJpdGVtIiwidGl0bGUiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5Il0sWzhdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syNCxbIml0ZW0iLCJjYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIml0ZW0iLCJkZWxldGVkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZWxldGUtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLXRyYXNoLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJpdGVtIiwiZGVsZXRlZF9ieSJdXV0sW1siaW1hZ2VTaXplIiwiZXh0cmFDbGFzc2VzIiwiaWdub3JlVGl0bGUiXSxbInRpbnkiLCJhY3RvciIsInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syNCxbIml0ZW0iLCJkZWxldGVkX2F0Il1dXSxbWyJsZWF2ZUFnbyJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItc3RyZWFtLWl0ZW0taGVhZGVyIixbMjgsImhhc2giLG51bGwsW1siaXRlbSJdLFtbMjQsWyJpdGVtIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJhY3Rpb25EZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImV4Y2VycHQiXSxbOF0sWzEsWzIyLCJhY3Rpb25EZXNjcmlwdGlvbiJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImV4Y2VycHQiXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyOSxbWzI0LFsiaXRlbSIsInRvcGljX2lkIl1dXV1dLFsxMSwiZGF0YS1wb3N0LWlkIixbMjksW1syNCxbIml0ZW0iLCJwb3N0X2lkIl1dXV1dLFsxMSwiZGF0YS11c2VyLWlkIixbMjksW1syNCxbIml0ZW0iLCJ1c2VyX2lkIl1dXV1dLFs4XSxbNCwiaWYiLFtbMjQsWyJpdGVtIiwiZXhwYW5kZWRFeGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbIml0ZW0iLCJleHBhbmRlZEV4Y2VycHQiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsiaXRlbSIsImV4Y2VycHQiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs5XSxbMCwiXFxuXFxuIl0sWzQsImVhY2giLFtbMjQsWyJpdGVtIiwiY2hpbGRyZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItc3RyZWFtLWl0ZW0tYWN0aW9ucyBjaGlsZC1hY3Rpb25zIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjMsMSxbImljb24iXV1dLFtbImNsYXNzIl0sWyJpY29uIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJpdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMixbInJlbW92YWJsZUJvb2ttYXJrIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IHJlbW92ZS1ib29rbWFyayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsicmVtb3ZlQm9va21hcmsiXV0sWzIzLDIsW11dXSxudWxsXSwidGltZXMiLCJib29rbWFya3MucmVtb3ZlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIzLDIsWyJ1c2VyVXJsIl1dXSxbMTEsImRhdGEtdXNlci1jYXJkIixbMjMsMixbInVzZXJuYW1lIl1dXSxbMTAsImNsYXNzIiwiYXZhdGFyLWxpbmsiXSxbOF0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci13cmFwcGVyIl0sWzhdLFsxLFsyOCwiYXZhdGFyIixbWzIzLDIsW11dXSxbWyJpbWFnZVNpemUiLCJleHRyYUNsYXNzZXMiLCJpZ25vcmVUaXRsZSIsImF2YXRhclRlbXBsYXRlUGF0aCJdLFsidGlueSIsImFjdG9yIiwidHJ1ZSIsImFjdGluZ19hdmF0YXJfdGVtcGxhdGUiXV1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzQsImlmIixbWzIzLDIsWyJlZGl0X3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiIOKAlCAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXQtcmVhc29uIl0sWzhdLFsxLFsyMywyLFsiZWRpdF9yZWFzb24iXV0sZmFsc2VdLFs5XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXRlbSIsImVkaXRhYmxlRHJhZnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItc3RyZWFtLWl0ZW0tZHJhZnQtYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjQsWyJyZXN1bWVEcmFmdCJdXSxbMjQsWyJpdGVtIl1dLCJwZW5jaWwtYWx0IiwiZHJhZnRzLnJlc3VtZSIsImJ0bi1kZWZhdWx0IHJlc3VtZS1kcmFmdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syNCxbInJlbW92ZURyYWZ0Il1dLFsyNCxbIml0ZW0iXV0sImZhci10cmFzaC1hbHQiLCJkcmFmdHMucmVtb3ZlIiwiYnRuLWRlZmF1bHQgcmVtb3ZlLWRyYWZ0Il1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN0cmVhbS1pdGVtIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1zdHJlYW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsic3RyZWFtIiwiY29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItc3RyZWFtLWl0ZW0iLG51bGwsW1siaXRlbSIsInJlbW92ZUJvb2ttYXJrIiwicmVzdW1lRHJhZnQiLCJyZW1vdmVEcmFmdCJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUJvb2ttYXJrIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc3VtZURyYWZ0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZURyYWZ0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdHJlYW0ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJxIl0sW1syNCxbInNlYXJjaFBhcmFtcyJdXV1dXSwiZnVsbC1wYWdlLXNlYXJjaCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyMiwiY291bnQiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgIOKAk1xcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIn19KSxFbWJlci5URU1QTEFURVNbImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXNlY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0cy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJ1c2VyLnN1bW1hcnkuIixbMjQsWyJ0aXRsZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFsxNCwxXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXNlY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtaW5mbyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsiY3JlYXRlZEF0Il1dXSxbWyJmb3JtYXQiLCJub1RpdGxlIl0sWyJ0aW55IiwidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsaWtlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgIMK3XFxuICAgICJdLFsxLFsyOCwiZC1pY29uIixbImhlYXJ0Il0sbnVsbF0sZmFsc2VdLFswLCLCoCJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibGlrZS1jb3VudCJdLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbImxpa2VzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJ1cmwiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjQsWyJ0b3BpYyIsImZhbmN5VGl0bGUiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWMifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWNzLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iLCImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsiaXRlbXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxNCwyLFtbMjMsMSxbXV1dXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzTW9yZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsibW9yZSIsWzI4LCJjb25jYXQiLFsidXNlckFjdGl2aXR5LiIsWzI0LFsidHlwZSJdXV0sbnVsbF0sWzI0LFsidXNlciJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbInVzZXIuc3VtbWFyeS5tb3JlXyIsWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsidXNlci5zdW1tYXJ5Lm5vXyIsWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9uZW50cy91c2VyLXN1bW1hcnktdG9waWNzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIl0sW1syNCxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtaWNvbiIsW1syNCxbImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzIyLCJjb3VudENsYXNzIl1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syNCxbInVzZXIiLCJjb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXVzZXIifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9uZW50cy91c2VyLXN1bW1hcnktdXNlcnMtbGlzdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidXNlciIsIiZkZWZhdWx0Il0sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ1c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzE0LDIsW1syMywxLFtdXV1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsW1syOCwiY29uY2F0IixbInVzZXIuc3VtbWFyeS4iLFsyNCxbIm5vbmUiXV1dLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvbmVudHMvdXNlci1zdW1tYXJ5LXVzZXJzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFUy5jb21wb3Nlcj1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJjb21wb3Nlci1ib2R5IixudWxsLFtbImNvbXBvc2VyIiwic2hvd1ByZXZpZXciLCJvcGVuSWZEcmFmdCIsInR5cGVkIiwiY2FuY2VsbGVkIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJzaG93UHJldmlldyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib3BlbklmRHJhZnQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidHlwZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsbGVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncmlwcGllIl0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidmlzaWJsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1tZXNzYWdlcyIsbnVsbCxbWyJjb21wb3NlciIsIm1lc3NhZ2VDb3VudCIsImFkZExpbmtMb29rdXAiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibWVzc2FnZUNvdW50Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGRMaW5rTG9va3VwIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInZpZXdPcGVuT3JGdWxsc2NyZWVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInJlcGx5LWFyZWEgIixbMjgsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV0sIndpdGgtdGFncyJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21wb3Nlci1maWVsZHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiY29tcG9zZXItb3BlbiIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LXRvIl0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJ2aWV3RnVsbHNjcmVlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBseS1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNvbXBvc2VyLWFjdGlvbi10aXRsZSIsbnVsbCxbWyJtb2RlbCIsIm9wZW5Db21wb3NlciIsImNsb3NlQ29tcG9zZXIiLCJjYW5XaGlzcGVyIiwidGFiaW5kZXgiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9wZW5Db21wb3NlciJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZUNvbXBvc2VyIl0sbnVsbF0sWzI0LFsiY2FuV2hpc3BlciJdXSw4XV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJub1RhZ3MiLCJhcmdzIl0sWyJjb21wb3Nlci1hY3Rpb24tYWZ0ZXIiLHRydWUsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzV2hpc3BlcmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwid2hpc3BlciJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJmYXItZXllLXNsYXNoIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1bmxpc3RUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwid2hpc3BlciJdLFs4XSxbMCwiKCJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci51bmxpc3QiXSxudWxsXSxmYWxzZV0sWzAsIikiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibm9CdW1wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJuby1idW1wIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbImFuY2hvciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJsaW5rLXRvLWlucHV0IixudWxsLFtbIm9uQ2xpY2siLCJzaG93SW5wdXQiLCJpY29uIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc3BsYXlFZGl0UmVhc29uIl0sbnVsbF0sWzI0LFsic2hvd0VkaXRSZWFzb24iXV0sImluZm8tY2lyY2xlIiwiZGlzcGxheS1lZGl0LXJlYXNvbiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInRhYmluZGV4IiwiaWQiLCJtYXhsZW5ndGgiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJlZGl0UmVhc29uIl1dLCI3IiwiZWRpdC1yZWFzb24iLCIyNTUiLCJjb21wb3Nlci5lZGl0X3JlYXNvbl9wbGFjZWhvbGRlciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci10b2dnbGVzIixudWxsLFtbImNvbXBvc2VTdGF0ZSIsInRvZ2dsZUNvbXBvc2VyIiwidG9nZ2xlVG9vbGJhciIsInRvZ2dsZUZ1bGxzY3JlZW4iXSxbWzI0LFsibW9kZWwiLCJjb21wb3NlU3RhdGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVUb29sYmFyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZ1bGxzY3JlZW5Db21wb3NlciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJ2aWV3RnVsbHNjcmVlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbkVkaXRUaXRsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNyZWF0aW5nUHJpdmF0ZU1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlbGVjdG9yIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY29tcG9zZXItdXNlci1zZWxlY3RvciIsbnVsbCxbWyJ0b3BpY0lkIiwidXNlcm5hbWVzIiwiaGFzR3JvdXBzIiwiZm9jdXNUYXJnZXQiLCJjbGFzcyJdLFtbMjQsWyJ0b3BpY01vZGVsIiwiaWQiXV0sWzI0LFsibW9kZWwiLCJ0YXJnZXRSZWNpcGllbnRzIl1dLFsyNCxbIm1vZGVsIiwiaGFzVGFyZ2V0R3JvdXBzIl1dLFsyNCxbImZvY3VzVGFyZ2V0Il1dLCJ1c2Vycy1pbnB1dCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93V2FybmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFkZC13YXJuaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjaGVja2VkIiwidGFiaW5kZXgiXSxbImNoZWNrYm94IixbMjQsWyJtb2RlbCIsImlzV2FybmluZyJdXSwiMyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIuYWRkX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidGl0bGUtYW5kLWNhdGVnb3J5ICIsWzI4LCJpZiIsW1syNCxbInNob3dQcmV2aWV3Il1dLCJ3aXRoLXByZXZpZXciXSxudWxsXV1dXSxbOF0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY29tcG9zZXItdGl0bGUiLG51bGwsW1siY29tcG9zZXIiLCJsYXN0VmFsaWRhdGVkQXQiLCJmb2N1c1RhcmdldCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJsYXN0VmFsaWRhdGVkQXQiXV0sWzI0LFsiZm9jdXNUYXJnZXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInNob3dDYXRlZ29yeUNob29zZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJvbkNoYW5nZSIsImlzRGlzYWJsZWQiLCJvcHRpb25zIl0sW1syNCxbIm1vZGVsIiwiY2F0ZWdvcnlJZCJdXSwiMyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXSxbMjQsWyJkaXNhYmxlQ2F0ZWdvcnlDaG9vc2VyIl1dLFsyOCwiaGFzaCIsbnVsbCxbWyJzY29wZWRDYXRlZ29yeUlkIl0sW1syNCxbInNjb3BlZENhdGVnb3J5SWQiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwb3B1cC1pbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJjYXRlZ29yeVZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtaW5pLXRhZy1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwidGFiaW5kZXgiLCJpc0Rpc2FibGVkIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbIm1vZGVsIiwidGFncyJdXSw0LFsyNCxbImRpc2FibGVUYWdzQ2hvb3NlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidGFncyJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJjYXRlZ29yeUlkIiwibWluaW11bSJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5SWQiXV0sWzI0LFsibW9kZWwiLCJtaW5pbXVtUmVxdWlyZWRUYWdzIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInRhZ1ZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjb21wb3Nlci1maWVsZHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1lZGl0b3IiLG51bGwsW1sidG9waWMiLCJjb21wb3NlciIsImxhc3RWYWxpZGF0ZWRBdCIsImNhbldoaXNwZXIiLCJzdG9yZVRvb2xiYXJTdGF0ZSIsIm9uUG9wdXBNZW51QWN0aW9uIiwic2hvd1VwbG9hZE1vZGFsIiwicG9wdXBNZW51T3B0aW9ucyIsImRyYWZ0U3RhdHVzIiwiaXNVcGxvYWRpbmciLCJhbGxvd1VwbG9hZCIsInVwbG9hZEljb24iLCJpc0NhbmNlbGxhYmxlIiwidXBsb2FkUHJvZ3Jlc3MiLCJncm91cHNNZW50aW9uZWQiLCJjYW5ub3RTZWVNZW50aW9uIiwiaW1wb3J0UXVvdGUiLCJ0b2dnbGVQcmV2aWV3Iiwic2hvd1Rvb2xiYXIiLCJhZnRlclJlZnJlc2giLCJmb2N1c1RhcmdldCJdLFtbMjQsWyJ0b3BpYyJdXSxbMjQsWyJtb2RlbCJdXSxbMjQsWyJsYXN0VmFsaWRhdGVkQXQiXV0sWzI0LFsiY2FuV2hpc3BlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic3RvcmVUb29sYmFyU3RhdGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25Qb3B1cE1lbnVBY3Rpb24iXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93VXBsb2FkU2VsZWN0b3IiXSxudWxsXSxbMjQsWyJwb3B1cE1lbnVPcHRpb25zIl1dLFsyNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV0sWzI0LFsiaXNVcGxvYWRpbmciXV0sWzI0LFsiYWxsb3dVcGxvYWQiXV0sWzI0LFsidXBsb2FkSWNvbiJdXSxbMjQsWyJpc0NhbmNlbGxhYmxlIl1dLFsyNCxbInVwbG9hZFByb2dyZXNzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJncm91cHNNZW50aW9uZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2Fubm90U2VlTWVudGlvbiJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJpbXBvcnRRdW90ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVQcmV2aWV3Il0sbnVsbF0sWzI0LFsic2hvd1Rvb2xiYXIiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFmdGVyUmVmcmVzaCJdLG51bGxdLFsyNCxbImZvY3VzVGFyZ2V0Il1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJtaXQtcGFuZWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiY29tcG9zZXItZmllbGRzLWJlbG93IixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2F2ZS1vci1jYW5jZWwiXSxbOF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJtb2RlbCIsInZpZXdGdWxsc2NyZWVuIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjb21wb3Nlci1zYXZlLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJkaXNhYmxlU3VibWl0Il0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2ZUljb24iXV0sWzI0LFsic2F2ZUxhYmVsIl1dLFsyNCxbImRpc2FibGVTdWJtaXQiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImNhbmNlbCJdLFsxMiwidGFiaW5kZXgiLCI2Il0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsiY2FuY2VsIl0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZmFyLXRyYXNoLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImNhbmNlbCJdLFsxMiwidGFiaW5kZXgiLCI2Il0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiY2FuY2VsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ3aGlzcGVyT3JVbmxpc3RUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ3aGlzcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJub0J1bXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwibm8tYnVtcCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJhbmNob3IiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiaXNVcGxvYWRpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiZmlsZS11cGxvYWRpbmciXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLnVwbG9hZGluZyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyMiwidXBsb2FkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIiUiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzQ2FuY2VsbGFibGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImlkIiwiY2FuY2VsLWZpbGUtdXBsb2FkIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiY2FuY2VsVXBsb2FkIl1dLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ0aW1lcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiZHJhZnQtc3RhdHVzIl0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsiaXNVcGxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZHJhZnRTYXZpbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNwaW5uZXIgc21hbGwiXSxbOF0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJkcmFmdFNhdmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImNoZWNrIl0sW1siY2xhc3MiXSxbInNhdmUtYW5pbWF0aW9uIl1dXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjksW1syNCxbIm1vZGVsIiwiZHJhZnRTdGF0dXMiXV1dXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImRyYWZ0Q29uZmxpY3RVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXIiLFtbMjQsWyJtb2RlbCIsImRyYWZ0Q29uZmxpY3RVc2VyIl1dXSxbWyJpbWFnZVNpemUiXSxbInNtYWxsIl1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImQtaWNvbiIsWyJ1c2VyLWVkaXQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic3luYy1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImRyYWZ0U3RhdHVzIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImFsbG93VXBsb2FkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiYnRuIGJ0bi1kZWZhdWx0IG5vLXRleHQgbW9iaWxlLWZpbGUtdXBsb2FkICIsWzI4LCJpZiIsW1syNCxbImlzVXBsb2FkaW5nIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJ1cGxvYWRJY29uIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJidG4gYnRuLWRlZmF1bHQgbm8tdGV4dCBtb2JpbGUtcHJldmlldyJdLFsxMiwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbImNvbXBvc2VyLnNob3dfcHJldmlldyJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVByZXZpZXciXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJkZXNrdG9wIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UHJldmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVQcmV2aWV3Il0sbnVsbF0sImhpZGUtcHJldmlldyIsImNvbXBvc2VyLmhpZGVfcHJldmlldyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInRvZ2dsZS1wcmV2aWV3Il0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUHJldmlldyJdXSxbOF0sWzEsWzIyLCJ0b2dnbGVUZXh0Il0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2F2aW5nLXRleHQiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY3JlYXRlZFBvc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci5zYXZlZCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsInBlcm1hbGluayJdLFsxMiwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJjcmVhdGVkUG9zdCIsInVybCJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwidmlld05ld1JlcGx5Il1dLFs4XSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIudmlld19uZXdfcG9zdCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY29tcG9zZXIuc2F2aW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJsb2FkaW5nLXNwaW5uZXIiLG51bGwsW1sic2l6ZSJdLFsic21hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZHJhZnQtdGV4dCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hhcmUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjIsImRyYWZ0VGl0bGUiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjb21wb3Nlci5zYXZlZF9kcmFmdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImNvbXBvc2VyLXRvZ2dsZXMiLG51bGwsW1siY29tcG9zZVN0YXRlIiwidG9nZ2xlRnVsbHNjcmVlbiIsInRvZ2dsZUNvbXBvc2VyIiwidG9nZ2xlVG9vbGJhciJdLFtbMjQsWyJtb2RlbCIsImNvbXBvc2VTdGF0ZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib3BlbklmRHJhZnQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVRvb2xiYXIiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb3NlciJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb3Nlci9jdXN0b20tYm9keSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibWVzc2FnZSIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lc3NhZ2UiLCJ0aXRsZSJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1lc3NhZ2UiLCJib2R5Il1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvc2VyL2N1c3RvbS1ib2R5In19KSxFbWJlci5URU1QTEFURVNbImNvbXBvc2VyL2VkdWNhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzEsWzI0LFsibWVzc2FnZSIsImJvZHkiXV0sdHJ1ZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJjb21wb3Nlci9lZHVjYXRpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siY29tcG9zZXIvZ3JvdXAtbWVudGlvbmVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJjbG9zZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlTWVzc2FnZSJdXSxbOF0sWzEsWzI4LCJkLWljb24iLFsidGltZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbMSxbMjQsWyJtZXNzYWdlIiwiYm9keSJdXSx0cnVlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImNvbXBvc2VyL2dyb3VwLW1lbnRpb25lZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJjb21wb3Nlci9zaW1pbGFyLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiY2xvc2UiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbG9zZU1lc3NhZ2UiXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImNvbXBvc2VyLnNpbWlsYXJfdG9waWNzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWNzIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwibW91bnQtd2lkZ2V0IixudWxsLFtbIndpZGdldCIsImFyZ3MiXSxbInNlYXJjaC1yZXN1bHQtdG9waWMiLFsyOCwiaGFzaCIsbnVsbCxbWyJyZXN1bHRzIl0sW1syNCxbIm1lc3NhZ2UiLCJzaW1pbGFyVG9waWNzIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiY29tcG9zZXIvc2ltaWxhci10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFUy5kaXNjb3Zlcnk9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvckh0bWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzIyLCJlcnJvckh0bWwiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZGlzY291cnNlLWJhbm5lciIsbnVsbCxbWyJ1c2VyIiwiYmFubmVyIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLFsyNCxbInNpdGUiLCJiYW5uZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwib3V0bGV0IixbIm5hdmlnYXRpb24tYmFyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY29udGFpbmVyIGxpc3QtY29udGFpbmVyICIsWzI4LCJpZiIsW1syNCxbImxvYWRpbmciXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmdWxsLXdpZHRoIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJoZWFkZXItbGlzdC1hcmVhIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJvdXRsZXQiLFsiaGVhZGVyLWxpc3QtY29udGFpbmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtd2lkdGgiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImxpc3QtYXJlYSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsiZGlzY292ZXJ5LWxpc3QtY29udGFpbmVyLXRvcCIsWzI4LCJoYXNoIixudWxsLFtbImNhdGVnb3J5IiwibGlzdExvYWRpbmciXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsibG9hZGluZyJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsIm91dGxldCIsWyJsaXN0LWNvbnRhaW5lciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImRpc2NvdmVyeS1iZWxvdyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImRpc2NvdmVyeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJkaXNjb3ZlcnkvY2F0ZWdvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImRpc2NvdmVyeS1jYXRlZ29yaWVzIixudWxsLFtbInJlZnJlc2giXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiY29tcG9uZW50IixbWzI0LFsiY2F0ZWdvcnlQYWdlU3R5bGUiXV1dLFtbImNhdGVnb3JpZXMiLCJsYXRlc3RUb3BpY09ubHkiLCJ0b3BpY3MiXSxbWzI0LFsibW9kZWwiLCJjYXRlZ29yaWVzIl1dLFsyNCxbImxhdGVzdFRvcGljT25seSJdXSxbMjQsWyJtb2RlbCIsInRvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJkaXNjb3ZlcnkvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJkaXNjb3ZlcnkvdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJkaXNjb3ZlcnlUb3BpY0xpc3QiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJlZGlyZWN0ZWRSZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzEsWzIyLCJyZWRpcmVjdGVkUmVhc29uIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzQXRUb3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0Rpc21pc3NSZWFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iLCJ0aXRsZSIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLXRvcGljcy10b3AiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLW5ldy10b3AiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJjaGVjayIsInRvcGljcy5idWxrLmRpc21pc3NfbmV3Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic2hhcmVkRHJhZnRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidG9waWMtbGlzdCIsbnVsbCxbWyJjbGFzcyIsImxpc3RUaXRsZSIsInRvcCIsImhpZGVDYXRlZ29yeSIsImNhdGVnb3J5IiwidG9waWNzIiwiZGlzY292ZXJ5TGlzdCJdLFsic2hhcmVkLWRyYWZ0cyIsInNoYXJlZF9kcmFmdHMudGl0bGUiLFsyNCxbInRvcCJdXSwidHJ1ZSIsWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsibW9kZWwiLCJzaGFyZWREcmFmdHMiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImJ1bGstc2VsZWN0LWJ1dHRvbiIsbnVsbCxbWyJzZWxlY3RlZCIsImFjdGlvbiIsImNhdGVnb3J5Il0sW1syNCxbInNlbGVjdGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoIl0sbnVsbF0sWzI0LFsiY2F0ZWdvcnkiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiZGlzY292ZXJ5LXRvcGljcy1saXN0IixudWxsLFtbIm1vZGVsIiwicmVmcmVzaCIsImluY29taW5nQ291bnQiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidG9wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1saXN0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJhY3Rpb24iXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQZXJpb2QiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImhhc0luY29taW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJzaG93LW1vcmUgIixbMjgsImlmIixbWzI0LFsiaGFzVG9waWNzIl1dLCJoYXMtdG9waWNzIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8gY2xpY2thYmxlIl0sWzEyLCJ0YWJpbmRleCIsIjAiXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzaG93SW5zZXJ0ZWQiXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsInN1ZmZpeCIsImNvdW50Il0sWyJ0b3BpY19jb3VudF8iLFsyNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImZpbHRlciJdXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNUb3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1siaGlnaGxpZ2h0TGFzdFZpc2l0ZWQiLCJ0b3AiLCJzaG93VG9waWNQb3N0QmFkZ2VzIiwic2hvd1Bvc3RlcnMiLCJjYW5CdWxrU2VsZWN0IiwiY2hhbmdlU29ydCIsInRvZ2dsZUJ1bGtTZWxlY3QiLCJoaWRlQ2F0ZWdvcnkiLCJvcmRlciIsImFzY2VuZGluZyIsImJ1bGtTZWxlY3RFbmFibGVkIiwic2VsZWN0ZWQiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsImNhdGVnb3J5IiwidG9waWNzIiwiZGlzY292ZXJ5TGlzdCIsInNjcm9sbE9uTG9hZCIsIm9uU2Nyb2xsIl0sW3RydWUsWzI0LFsidG9wIl1dLFsyNCxbInNob3dUb3BpY1Bvc3RCYWRnZXMiXV0sdHJ1ZSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VTb3J0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUJ1bGtTZWxlY3QiXSxudWxsXSxbMjQsWyJtb2RlbCIsImhpZGVDYXRlZ29yeSJdXSxbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2NlbmRpbmciXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsiZXhwYW5kR2xvYmFsbHlQaW5uZWQiXV0sWzI0LFsiZXhwYW5kQWxsUGlubmVkIl1dLFsyNCxbImNhdGVnb3J5Il1dLFsyNCxbIm1vZGVsIiwidG9waWNzIl1dLHRydWUsdHJ1ZSxbMjMsMSxbInNhdmVTY3JvbGxQb3NpdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxpc3QtYm90dG9tIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWxsTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwidGl0bGUiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgZGlzbWlzcy1yZWFkIiwiZGlzbWlzcy10b3BpY3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImlkIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJkaXNtaXNzLW5ldyIsImNoZWNrIiwidG9waWNzLmJ1bGsuZGlzbWlzc19uZXciXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJmb290ZXItbWVzc2FnZSIsbnVsbCxbWyJlZHVjYXRpb24iLCJtZXNzYWdlIl0sW1syNCxbImZvb3RlckVkdWNhdGlvbiJdXSxbMjQsWyJmb290ZXJNZXNzYWdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibGF0ZXN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMuc3VnZ2VzdF9jcmVhdGVfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiwgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5sYXRlc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJmaWx0ZXJzLnRvcC5vdGhlcl9wZXJpb2RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidG9wLXBlcmlvZC1idXR0b25zIixudWxsLFtbInBlcmlvZCIsImFjdGlvbiJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImRpc2NvdmVyeS90b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siZW1haWwtbG9naW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgZW1haWwtbG9naW4gY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtbGVmdCBjb2wtaW1hZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaW1nIix0cnVlXSxbMTEsInNyYyIsWzIyLCJsb2NrSW1hZ2VVcmwiXV0sWzEwLCJjbGFzcyIsInBhc3N3b3JkLXJlc2V0LWltZyJdLFs4XSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLWxlZnQgY29sLWZvcm0iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZXJyb3IiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2xvZ2luIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlY29uZEZhY3RvclJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJzZWN1cml0eS1rZXktZm9ybSIsbnVsbCxbWyJhbGxvd2VkQ3JlZGVudGlhbElkcyIsImNoYWxsZW5nZSIsInNob3dTZWN1cml0eUtleSIsInNob3dTZWNvbmRGYWN0b3IiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJvdGhlck1ldGhvZEFsbG93ZWQiLCJhY3Rpb24iXSxbWzI0LFsibW9kZWwiLCJhbGxvd2VkX2NyZWRlbnRpYWxfaWRzIl1dLFsyNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X2NoYWxsZW5nZSJdXSxbMjQsWyJtb2RlbCIsInNlY3VyaXR5X2tleV9yZXF1aXJlZCJdXSxmYWxzZSxbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsic2Vjb25kRmFjdG9yUmVxdWlyZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInNlY29uZC1mYWN0b3ItZm9ybSIsbnVsbCxbWyJzZWNvbmRGYWN0b3JNZXRob2QiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJtb2RlbCIsImJhY2t1cF9jb2Rlc19lbmFibGVkIl1dLHRydWVdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInNlY29uZC1mYWN0b3ItaW5wdXQiLG51bGwsW1sidmFsdWUiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJiYWNrdXBFbmFibGVkIl0sW1syNCxbInNlY29uZEZhY3RvclRva2VuIl1dLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImVtYWlsX2xvZ2luLmNvbmZpcm1fdGl0bGUiXSxbWyJzaXRlX25hbWUiXSxbWzI0LFsic2l0ZVNldHRpbmdzIiwidGl0bGUiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImVtYWlsX2xvZ2luLmxvZ2dpbmdfaW5fYXMiXSxbWyJlbWFpbCJdLFtbMjQsWyJtb2RlbCIsInRva2VuX2VtYWlsIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiIsInR5cGUiLCJjbGFzcyJdLFsiZW1haWxfbG9naW4uY29uZmlybV9idXR0b24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hMb2dpbiJdLG51bGxdLCJzdWJtaXQiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImVtYWlsLWxvZ2luIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZW1vamktcGlja2VyLXJlY2VudCJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgIDxidXR0b24gc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaS5zcmMiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjQwfSxlbmQ6e2xpbmU6Mixjb2x1bW46NTN9fX0pKSsnXCcpIiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppLmNvZGUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjEwNn0sZW5kOntsaW5lOjIsY29sdW1uOjEyMH19fSkpKyciPjwvYnV0dG9uPlxuJ30sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppIiwiaW4iLCJyZWNlbnRFbW9qaXMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Myxjb2x1bW46OX19fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZW1vamktcGlja2VyIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIiAgICAgIDxkaXYgY2xhc3M9J3NlY3Rpb24nIGRhdGEtc2VjdGlvbj0ndW5ncm91cGVkJz5cbiAgICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1oZWFkZXInPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5jdXN0b20iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM0NjcsY29sdW1uOjMwfSxlbmQ6e2xpbmU6MzQ2Nyxjb2x1bW46NjB9fX0pKSsiPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1ncm91cCc+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppIiwiaW4iLCJjdXN0b21FbW9qaXMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDcwLGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0NzIsY29sdW1uOjE5fX19KSk/bzoiIikrIiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgICAgICAgPGJ1dHRvbiBzdHlsZT0iYmFja2dyb3VuZC11cmw6IHVybCgiJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppLnNyYyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ3MSxjb2x1bW46NDh9LGVuZDp7bGluZTozNDcxLGNvbHVtbjo2MX19fSkpKyciKSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaS5jb2RlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDcxLGNvbHVtbjoxMTR9LGVuZDp7bGluZTozNDcxLGNvbHVtbjoxMjh9fX0pKSsnIj48L2J1dHRvbj5cbid9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nPGRpdiBjbGFzcz1cJ2NhdGVnb3JpZXMtY29sdW1uXCc+XG4gIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIucmVjZW50Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo2MX0sZW5kOntsaW5lOjMsY29sdW1uOjkxfX19KSkrJyIgZGF0YS1zZWN0aW9uPSJyZWNlbnQiIGRhdGEtdGFiaWNvbj0ic3RhciI+PC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImdyaW5uaW5nIiBkYXRhLXNlY3Rpb249InNtaWxleXNfJl9lbW90aW9uIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuc21pbGV5c18mX2Vtb3Rpb24iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjgsY29sdW1uOjExOH0sZW5kOntsaW5lOjgsY29sdW1uOjE1OX19fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJ3YXZlIiBkYXRhLXNlY3Rpb249InBlb3BsZV8mX2JvZHkiIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5wZW9wbGVfJl9ib2R5Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMixjb2x1bW46MTEwfSxlbmQ6e2xpbmU6MTIsY29sdW1uOjE0N319fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJldmVyZ3JlZW5fdHJlZSIgZGF0YS1zZWN0aW9uPSJhbmltYWxzXyZfbmF0dXJlIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuYW5pbWFsc18mX25hdHVyZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjEyM30sZW5kOntsaW5lOjE2LGNvbHVtbjoxNjN9fX0pKSsnIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGRpdiBjbGFzcz1cJ2NhdGVnb3J5LWljb25cJz5cbiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIiB0YWJpbmRleD0iLTEiIGRhdGEtdGFiaWNvbj0iaGFtYnVyZ2VyIiBkYXRhLXNlY3Rpb249ImZvb2RfJl9kcmluayIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmZvb2RfJl9kcmluayIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAsY29sdW1uOjExNH0sZW5kOntsaW5lOjIwLGNvbHVtbjoxNTB9fX0pKSsnIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGRpdiBjbGFzcz1cJ2NhdGVnb3J5LWljb25cJz5cbiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIiB0YWJpbmRleD0iLTEiIGRhdGEtdGFiaWNvbj0iYWlycGxhbmUiIGRhdGEtc2VjdGlvbj0idHJhdmVsXyZfcGxhY2VzIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIudHJhdmVsXyZfcGxhY2VzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNCxjb2x1bW46MTE2fSxlbmQ6e2xpbmU6MjQsY29sdW1uOjE1NX19fSkpKyciPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbiAgICA8ZGl2IGNsYXNzPVwnY2F0ZWdvcnktaWNvblwnPlxuICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS10YWJpY29uPSJzb2NjZXIiIGRhdGEtc2VjdGlvbj0iYWN0aXZpdGllcyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmFjdGl2aXRpZXMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI4LGNvbHVtbjoxMDl9LGVuZDp7bGluZToyOCxjb2x1bW46MTQzfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImV5ZWdsYXNzZXMiIGRhdGEtc2VjdGlvbj0ib2JqZWN0cyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLm9iamVjdHMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMyLGNvbHVtbjoxMTB9LGVuZDp7bGluZTozMixjb2x1bW46MTQxfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249IndoaXRlX2NoZWNrX21hcmsiIGRhdGEtc2VjdGlvbj0ic3ltYm9scyIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnN5bWJvbHMiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM2LGNvbHVtbjoxMTZ9LGVuZDp7bGluZTozNixjb2x1bW46MTQ3fX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSIgdGFiaW5kZXg9Ii0xIiBkYXRhLXRhYmljb249ImNoZWNrZXJlZF9mbGFnIiBkYXRhLXNlY3Rpb249ImZsYWdzIiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZmxhZ3MiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQwLGNvbHVtbjoxMTJ9LGVuZDp7bGluZTo0MCxjb2x1bW46MTQxfX19KSkrJyI+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuXG4gIFxuICAgIDxkaXYgY2xhc3M9XCdjYXRlZ29yeS1pY29uXCc+XG4gICAgICA8YnV0dG9uIGRhdGEtdGFiaWNvbj0iZ2ltcCIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkiIHRhYmluZGV4PSItMSIgZGF0YS1zZWN0aW9uPSJ1bmdyb3VwZWQiIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5jdXN0b20iLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ2LGNvbHVtbjoxMDh9LGVuZDp7bGluZTo0Nixjb2x1bW46MTM4fX19KSkrIlwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBcbjwvZGl2PlxuXG48ZGl2IGNsYXNzPSdtYWluLWNvbHVtbic+XG4gIDxkaXYgY2xhc3M9J2ZpbHRlcic+XG4gICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic2VhcmNoIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUzLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NTMsY29sdW1uOjIzfX19KSkrJ1xuICAgIDxpbnB1dCB0eXBlPVwndGV4dFwnIG5hbWU9ImZpbHRlciIgcGxhY2Vob2xkZXI9IicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmZpbHRlcl9wbGFjZWhvbGRlciIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NTQsY29sdW1uOjUwfSxlbmQ6e2xpbmU6NTQsY29sdW1uOjkyfX19KSkrJyIgYXV0b2NvbXBsZXRlPSJkaXNjb3Vyc2UiLz5cbiAgICA8YnV0dG9uIGNsYXNzPVwnY2xlYXItZmlsdGVyXCc+XG4gICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0aW1lcyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1Nixjb2x1bW46Nn0sZW5kOntsaW5lOjU2LGNvbHVtbjoyNH19fSkpKyJcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0ncmVzdWx0cyc+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz0nbGlzdCc+XG4gICAgPGRpdiBjbGFzcz0nc2VjdGlvbicgZGF0YS1zZWN0aW9uPSdyZWNlbnQnPlxuICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1oZWFkZXInPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+IitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIucmVjZW50Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2NSxjb2x1bW46Mjh9LGVuZDp7bGluZTo2NSxjb2x1bW46NTh9fX0pKSsiPC9zcGFuPlxuICAgICAgICA8YSBocmVmPScjJyBjbGFzcz0nY2xlYXItcmVjZW50Jz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0cmFzaC1hbHQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjYsY29sdW1uOjQxfSxlbmQ6e2xpbmU6NjYsY29sdW1uOjYzfX19KSkrIjwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz0nc2VjdGlvbi1ncm91cCc+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9J3NlY3Rpb24nIGRhdGEtc2VjdGlvbj0nc21pbGV5c18mX2Vtb3Rpb24nPlxuICAgICAgICA8ZGl2IGNsYXNzPSdzZWN0aW9uLWhlYWRlcic+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnNtaWxleXNfJl9lbW90aW9uIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3NCxjb2x1bW46MzB9LGVuZDp7bGluZTo3NCxjb2x1bW46NzF9fX0pKSsnPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24tZ3JvdXBcJz5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmlubmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21pbGV5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF1Z2hpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3ZWF0X3NtaWxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb2ZsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqb3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsaWdodGx5X3NtaWxpbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXBzaWRlX2Rvd25fZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2luayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmx1c2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imlubm9jZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsaW5nX2ZhY2Vfd2l0aF90aHJlZV9oZWFydHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXJ0X2V5ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXJfc3RydWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWxheGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX2Nsb3NlZF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzaW5nX3NtaWxpbmdfZXllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieXVtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcmF6eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVja19vdXRfdG9uZ3VlX2Nsb3NlZF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb25leV9tb3V0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJodWdzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3dpdGhfaGFuZF9vdmVyX21vdXRoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaHVzaGluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aGlua2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemlwcGVyX21vdXRoX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9yYWlzZWRfZXllYnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmV1dHJhbF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJleHByZXNzaW9ubGVzcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fbW91dGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtaXJrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1bmFtdXNlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icm9sbF9leWVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmltYWNpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imx5aW5nX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlbGlldmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW5zaXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbGVlcHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyb29saW5nX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsZWVwaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3dpdGhfdGhlcm1vbWV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9oZWFkX2JhbmRhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5hdXNlYXRlZF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWNlX3ZvbWl0aW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmVlemluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3RfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29sZF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b296eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXp6eV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJleHBsb2RpbmdfaGVhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY293Ym95X2hhdF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJ0eWluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5nbGFzc2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXJkX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9tb25vY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25mdXNlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29ycmllZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xpZ2h0bHlfZnJvd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJvd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl9tb3V0aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaHVzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhc3RvbmlzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbHVzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwbGVhZGluZ19mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcm93bmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5ndWlzaGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZWFyZnVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2xkX3N3ZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXNhcHBvaW50ZWRfcmVsaWV2ZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic29iIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JlYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbmZvdW5kZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlcnNldmVyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGlzYXBwb2ludGVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2VhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpcmVkX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inlhd25pbmdfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpdW1waCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5ncnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2Vfd2l0aF9zeW1ib2xzX292ZXJfbW91dGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtaWxpbmdfaW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNrdWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza3VsbF9hbmRfY3Jvc3Nib25lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9vcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvd25fZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFwYW5lc2Vfb2dyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFwYW5lc2VfZ29ibGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaG9zdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWxpZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWNlX2ludmFkZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvYm90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZXlfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlsZV9jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpveV9jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXJ0X2V5ZXNfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWlya19jYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imtpc3NpbmdfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JlYW1fY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcnlpbmdfY2F0X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdXRpbmdfY2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWVfbm9fZXZpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcl9ub19ldmlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVha19ub19ldmlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb3ZlX2xldHRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3VwaWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdpZnRfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGluZ19oZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRwdWxzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRiZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXZvbHZpbmdfaGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0d29faGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFydF9kZWNvcmF0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWF2eV9oZWFydF9leGNsYW1hdGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJva2VuX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3JhbmdlX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZWVuX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibHVlX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyb3duX2hlYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19oZWFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfaGVhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjEwMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5nZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvb20iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRpenp5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VhdF9kcm9wcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9sZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9tYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BlZWNoX2JhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxlZnRfc3BlZWNoX2J1YmJsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmlnaHRfYW5nZXJfYnViYmxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aG91Z2h0X2JhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inp6eiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3Blb3BsZV8mX2JvZHlcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5wZW9wbGVfJl9ib2R5Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNzksY29sdW1uOjMwfSxlbmQ6e2xpbmU6Mzc5LGNvbHVtbjo2N319fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaXNlZF9iYWNrX29mX2hhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzZWRfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idnVsY2FuX3NhbHV0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2tfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGluY2hpbmdfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9maW5nZXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb3ZlX3lvdV9nZXN0dXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZXRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsbF9tZV9oYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2ludF9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2ludF9yaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9pbnRfdXBfMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvaW50X2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvaW50X3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSIrMSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iLTEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY2VwdW5jaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlzdF9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXN0X3JpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbGFwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzZWRfaGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9wZW5faGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhbG1zX3VwX3RvZ2V0aGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoYW5kc2hha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndyaXRpbmdfaGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmFpbF9jYXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWxmaWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2NsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVjaGFuaWNhbF9hcm0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lY2hhbmljYWxfbGVnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcl93aXRoX2hlYXJpbmdfYWlkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3NlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9vdGgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9uZ3VlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaXBzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWJ5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGlsZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhZHVsdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmxvbmRlX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWFyZGVkX3BlcnNvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3JlZF9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9jdXJseV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aGl0ZV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9iYWxkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcmVkX2hhaXJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fY3VybHlfaGFpcmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl93aGl0ZV9oYWlyZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2JhbGQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsb25kZV93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkZXJfYWR1bHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9sZGVyX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkZXJfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyb3duaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJvd25pbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdXRpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb3V0aW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19nb29kX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fZ29vZF93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2tfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJva193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlwcGluZ19oYW5kX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlwcGluZ19oYW5kX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzaW5nX2hhbmRfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlzaW5nX2hhbmRfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlYWZfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkZWFmX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9mYWNlcGFsbWluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZmFjZXBhbG1pbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zaHJ1Z2dpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3NocnVnZ2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2hlYWx0aF93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2hlYWx0aF93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zdHVkZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9zdHVkZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fdGVhY2hlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fdGVhY2hlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2p1ZGdlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9qdWRnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2Zhcm1lciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZmFybWVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fY29vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fY29vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX21lY2hhbmljIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9tZWNoYW5pYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2ZhY3Rvcnlfd29ya2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9mYWN0b3J5X3dvcmtlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX29mZmljZV93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX29mZmljZV93b3JrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zY2llbnRpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3NjaWVudGlzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3RlY2hub2xvZ2lzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fdGVjaG5vbG9naXN0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fc2luZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9zaW5nZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9hcnRpc3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2FydGlzdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3BpbG90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9waWxvdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2FzdHJvbmF1dCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fYXN0cm9uYXV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fZmlyZWZpZ2h0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2ZpcmVmaWdodGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwb2xpY2VtYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvbGljZXdvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWxlX2RldGVjdGl2ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmVtYWxlX2RldGVjdGl2ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3VhcmRzbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWFyZHN3b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uc3RydWN0aW9uX3dvcmtlcl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbnN0cnVjdGlvbl93b3JrZXJfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByaW5jZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHJpbmNlc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aXRoX3R1cmJhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fd2l0aF90dXJiYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl93aXRoX2d1YV9waV9tYW8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3dpdGhfaGVhZHNjYXJmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fdHV4ZWRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmlkZV93aXRoX3ZlaWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZWduYW50X3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmVhc3RfZmVlZGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5nZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhbnRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtcnNfY2xhdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1cGVyaGVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3N1cGVyaGVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fc3VwZXJoZXJvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXBlcnZpbGxhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbl9zdXBlcnZpbGxhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3N1cGVydmlsbGFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fbWFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFpcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InZhbXBpcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lcm1haWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lcm1hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnZW5pZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fZ2VuaWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InpvbWJpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fem9tYmllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXNzYWdlX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFzc2FnZV93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFpcmN1dF9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhaXJjdXRfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhbGtpbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YWxraW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fc3RhbmRpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3N0YW5kaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fa25lZWxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2tuZWVsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fd2l0aF9wcm9iaW5nX2NhbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX3dpdGhfcHJvYmluZ19jYW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fbW90b3JpemVkX3doZWVsY2hhaXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2luX21vdG9yaXplZF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5faW5fbWFudWFsX3doZWVsY2hhaXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuX2luX21hbnVhbF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJydW5uaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icnVubmluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFuY2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fZGFuY2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkYW5jaW5nX3dvbWVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkYW5jaW5nX21lbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2luX3N0ZWFteV9yb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9pbl9zdGVhbXlfcm9vbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2NsaW1iaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9jbGltYmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2ZlbmNpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvcnNlX3JhY2luZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2tpZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dib2FyZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnb2xmaW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29sZmluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VyZmluZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1cmZpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvd2luZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvd2luZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dpbW1pbmdfbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2ltbWluZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFza2V0YmFsbF9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhc2tldGJhbGxfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9IndlaWdodF9saWZ0aW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2VpZ2h0X2xpZnRpbmdfd29tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJpa2luZ19tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSBkaXZlcnNpdHkiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJpa2luZ193b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRhaW5fYmlraW5nX21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRhaW5fYmlraW5nX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fY2FydHdoZWVsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9jYXJ0d2hlZWxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lbl93cmVzdGxpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWVuX3dyZXN0bGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX3BsYXlpbmdfd2F0ZXJfcG9sbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcGxheWluZ193YXRlcl9wb2xvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYW5fcGxheWluZ19oYW5kYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tYW5fcGxheWluZ19oYW5kYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFuX2p1Z2dsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9qdWdnbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyc29uX2luX2xvdHVzX3Bvc2l0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgZGl2ZXJzaXR5IiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbl9pbl9sb3R1c19wb3NpdGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppIGRpdmVyc2l0eSIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xlZXBpbmdfYmVkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW9wbGVfaG9sZGluZ19oYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHdvX3dvbWVuX2hvbGRpbmdfaGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHdvX21lbl9ob2xkaW5nX2hhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVraXNzX21hbl93b21hbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY291cGxla2lzc19tYW5fbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVraXNzX3dvbWFuX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3VwbGVfd2l0aF9oZWFydF93b21hbl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZV93aXRoX2hlYXJ0X21hbl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X21hbl93b21hbl9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2dpcmxfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX3dvbWFuX2JveV9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fbWFuX2dpcmxfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX21hbl9naXJsX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl93b21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X21hbl9ib3lfYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fZ2lybF9ib3kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV9tYW5fZ2lybF9naXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fYm95Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYW1pbHlfd29tYW5fYm95X2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X3dvbWFuX2dpcmwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhbWlseV93b21hbl9naXJsX2JveSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFtaWx5X3dvbWFuX2dpcmxfZ2lybCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BlYWtpbmdfaGVhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzdF9pbl9zaWxob3VldHRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidXN0c19pbl9zaWxob3VldHRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb290cHJpbnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnYW5pbWFsc18mX25hdHVyZVwnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1oZWFkZXJcJz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUiPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmFuaW1hbHNfJl9uYXR1cmUiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjkwNixjb2x1bW46MzB9LGVuZDp7bGluZTo5MDYsY29sdW1uOjcwfX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9ua2V5X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmtleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29yaWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Jhbmd1dGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvZzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1aWRlX2RvZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2VydmljZV9kb2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvb2RsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29sZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm94X2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2Nvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2F0MiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGlnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpZ2VyMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVvcGFyZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9yc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2Vob3JzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pY29ybiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemVicmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdGVyX2J1ZmZhbG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvdzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlnMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9hciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlnX25vc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hlZXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyb21lZGFyeV9jYW1lbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxsYW1hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaXJhZmZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbGVwaGFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmhpbm9jZXJvcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlwcG9wb3RhbXVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91c2UyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbXN0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhYmJpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFiYml0MiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hpcG11bmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlZGdlaG9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtvYWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5kYV9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG90aCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3R0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNrdW5rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrYW5nYXJvbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFkZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXdfcHJpbnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXJrZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoaWNrZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvb3N0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhdGNoaW5nX2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWJ5X2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoYXRjaGVkX2NoaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW5ndWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb3ZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlYWdsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3dsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGFtaW5nbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVhY29jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFycm90Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcm9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcm9jb2RpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1cnRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGl6YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmFrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJhZ29uX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRyYWdvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F1cm9wb2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRfcmV4Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGFsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hhbGUyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkb2xwaGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cm9waWNhbF9maXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibG93ZmlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hhcmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9jdG9wdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbmFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnV0dGVyZmx5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG9uZXliZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3JpY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BpZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGlkZXJfd2ViIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY29ycGlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9zcXVpdG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1pY3JvYmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdXF1ZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZXJyeV9ibG9zc29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvc2V0dGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndpbHRlZF9mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhpYmlzY3VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5mbG93ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsb3Nzb20iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1bGlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWVkbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXZlcmdyZWVuX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlY2lkdW91c190cmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWxtX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhY3R1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWFyX29mX3JpY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlcmIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoYW1yb2NrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb3VyX2xlYWZfY2xvdmVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXBsZV9sZWFmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWxsZW5fbGVhZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVhdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnZm9vZF8mX2RyaW5rXCc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWhlYWRlclwnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZSI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZm9vZF8mX2RyaW5rIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMTY5LGNvbHVtbjozMH0sZW5kOntsaW5lOjExNjksY29sdW1uOjY2fX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JhcGVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZWxvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2F0ZXJtZWxvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFuZ2VyaW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZW1vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuYW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwaW5lYXBwbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbmdvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcHBsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlZW5fYXBwbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlYWNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVycmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RyYXdiZXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2l3aV9mcnVpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9tYXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2NvbnV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhdm9jYWRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlZ2dwbGFudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG90YXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXJyb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdF9wZXBwZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1Y3VtYmVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWFmeV9ncmVlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJvY2NvbGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhcmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib25pb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2hyb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZWFudXRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVzdG51dCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyb2lzc2FudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFndWV0dGVfYnJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZXR6ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhZ2VsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5jYWtlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2FmZmxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGVlc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lYXRfb25fYm9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG91bHRyeV9sZWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1dF9vZl9tZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWNvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtYnVyZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGl6emEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdGRvZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FuZHdpY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhY28iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cnJpdG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0dWZmZWRfZmxhdGJyZWFkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmYWxhZmVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlZ2ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyaWVkX2VnZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hhbGxvd19wYW5fb2ZfZm9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RldyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm93bF93aXRoX3Nwb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9zYWxhZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9wY29ybiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnV0dGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYWx0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYW5uZWRfZm9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVudG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJpY2VfY3JhY2tlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmljZV9iYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyaWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFtZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWdoZXR0aSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3dlZXRfcG90YXRvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvZGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXNoaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJpZWRfc2hyaW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXNoX2Nha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vb25fY2FrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGFuZ28iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImR1bXBsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb3J0dW5lX2Nvb2tpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFrZW91dF9ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyYWIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvYnN0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNocmltcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3F1aWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im95c3RlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWNlY3JlYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNoYXZlZF9pY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImljZV9jcmVhbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG91Z2hudXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvb2tpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlydGhkYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cGNha2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hvY29sYXRlX2JhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FuZHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvbGxpcG9wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXN0YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob25leV9wb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhYnlfYm90dGxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWxrX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2ZmZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhbXBhZ25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5lX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2NrdGFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJvcGljYWxfZHJpbmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbGlua2luZ19nbGFzc2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dW1ibGVyX2dsYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXBfd2l0aF9zdHJhdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmV2ZXJhZ2VfYm94Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXTDqSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWNlX2N1YmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNob3BzdGlja3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBsYXRlX3dpdGhfY3V0bGVyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9ya19hbmRfa25pZmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob2NobyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW1waG9yYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3RyYXZlbF8mX3BsYWNlc1wnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1oZWFkZXJcJz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUiPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLnRyYXZlbF8mX3BsYWNlcyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQyMCxjb2x1bW46MzB9LGVuZDp7bGluZToxNDIwLGNvbHVtbjo2OX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhcnRoX2FmcmljYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWFydGhfYW1lcmljYXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVhcnRoX2FzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imdsb2JlX3dpdGhfbWVyaWRpYW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b3JsZF9tYXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphcGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb21wYXNzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbl9zbm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idm9sY2FubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW91bnRfZnVqaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtcGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVhY2hfdW1icmVsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlc2VydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGVzZXJ0X2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmF0aW9uYWxfcGFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhZGl1bSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhc3NpY2FsX2J1aWxkaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidWlsZGluZ19jb25zdHJ1Y3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyaWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VzZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlcmVsaWN0X2hvdXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG91c2Vfd2l0aF9nYXJkZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9mZmljZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9zdF9vZmZpY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV1cm9wZWFuX3Bvc3Rfb2ZmaWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3NwaXRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaG90ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvdmVfaG90ZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbnZlbmllbmNlX3N0b3JlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2hvb2wiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlcGFydG1lbnRfc3RvcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZhY3RvcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphcGFuZXNlX2Nhc3RsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXVyb3BlYW5fY2FzdGxlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3ZWRkaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b2t5b190b3dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhdHVlX29mX2xpYmVydHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNodXJjaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9zcXVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoaW5kdV90ZW1wbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN5bmFnb2d1ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpbnRvX3NocmluZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2FhYmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvdW50YWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmb2dneSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmlnaHRfd2l0aF9zdGFycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2l0eXNjYXBlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5yaXNlX292ZXJfbW91bnRhaW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5yaXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaXR5X3N1bnNldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2l0eV9zdW5yaXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmlkZ2VfYXRfbmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdHNwcmluZ3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcm91c2VsX2hvcnNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZXJyaXNfd2hlZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbGxlcl9jb2FzdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXJiZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNpcmN1c190ZW50Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdGVhbV9sb2NvbW90aXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWlsd2F5X2NhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsbGV0dHJhaW5fc2lkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsbGV0dHJhaW5fZnJvbnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYWluMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWV0cm8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpZ2h0X3JhaWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXRpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbm9yYWlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3VudGFpbl9yYWlsd2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbmNvbWluZ19idXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyb2xsZXlidXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1pbmlidXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFtYnVsYW5jZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlyZV9lbmdpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvbGljZV9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX3BvbGljZV9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRheGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX3RheGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlZF9jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uY29taW5nX2F1dG9tb2JpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsdWVfY2FyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cnVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0aWN1bGF0ZWRfbG9ycnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyYWN0b3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhY2luZ19jYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdG9yY3ljbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdG9yX3Njb290ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbnVhbF93aGVlbGNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3Rvcml6ZWRfd2hlZWxjaGFpciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXV0b19yaWNrc2hhdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2lja19zY29vdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza2F0ZWJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJidXNzdG9wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3RvcndheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFpbHdheV90cmFjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2lsX2RydW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZ1ZWxwdW1wIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb3RhdGluZ19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJhZmZpY19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmVydGljYWxfdHJhZmZpY19saWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcF9zaWduIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25zdHJ1Y3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFuY2hvciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FpbGJvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbm9lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVlZGJvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhc3Nlbmdlcl9zaGlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmZXJyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW90b3JfYm9hdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpcCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWlycGxhbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtYWxsX2FpcnBsYW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGlnaHRfZGVwYXJ0dXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbGlnaHRfYXJyaXZhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFyYWNodXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzZWF0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWxpY29wdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdXNwZW5zaW9uX3JhaWx3YXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vdW50YWluX2NhYmxld2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhZXJpYWxfdHJhbXdheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0aWZpY2lhbF9zYXRlbGxpdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmx5aW5nX3NhdWNlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVsbGhvcF9iZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsdWdnYWdlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob3VyZ2xhc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhvdXJnbGFzc19mbG93aW5nX3NhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhdGNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbGFybV9jbG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcHdhdGNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aW1lcl9jbG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFudGVscGllY2VfY2xvY2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb2NrMTIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb2NrMTIzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazEzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2syIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazIzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2szIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazMzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazQzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazUzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s2Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazYzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s3Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazczMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s4Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazgzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2s5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazkzMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxMCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvY2sxMDMwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazExIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG9jazExMzAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld19tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXhpbmdfY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlyc3RfcXVhcnRlcl9tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXhpbmdfZ2liYm91c19tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmdWxsX21vb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndhbmluZ19naWJib3VzX21vb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxhc3RfcXVhcnRlcl9tb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YW5pbmdfY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jlc2NlbnRfbW9vbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmV3X21vb25fd2l0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJzdF9xdWFydGVyX21vb25fd2l0aF9mYWNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRoZXJtb21ldGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5ueSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnVsbF9tb29uX3dpdGhfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VuX3dpdGhfZmFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmluZ2VyX3BsYW5ldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RhcjIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0YXJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWxreV93YXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJ0bHlfc3VubnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkX3dpdGhfbGlnaHRuaW5nX2FuZF9yYWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX3NtYWxsX2Nsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX2xhcmdlX2Nsb3VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdW5fYmVoaW5kX3JhaW5fY2xvdWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3VkX3dpdGhfcmFpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvdWRfd2l0aF9zbm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbG91ZF93aXRoX2xpZ2h0bmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9ybmFkbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5kX2ZhY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN5Y2xvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhaW5ib3ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsb3NlZF91bWJyZWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl91bWJyZWxsYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW1icmVsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcmFzb2xfb25fZ3JvdW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6YXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dmbGFrZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic25vd21hbl93aXRoX3Nub3ciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNub3dtYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbWV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkcm9wbGV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvY2VhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ2FjdGl2aXRpZXNcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5hY3Rpdml0aWVzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxODQ5LGNvbHVtbjozMH0sZW5kOntsaW5lOjE4NDksY29sdW1uOjY0fX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iamFja19vX2xhbnRlcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNocmlzdG1hc190cmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJld29ya3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaXJlY3JhY2tlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3BhcmtsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhZGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbmZldHRpX2JhbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhbmFiYXRhX3RyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbWJvbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG9sbHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsYWdzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aW5kX2NoaW1lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyaWNlX3NjZW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfZ2lmdF9lbnZlbG9wZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmliYm9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZW1pbmRlcl9yaWJib24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpY2tldHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpY2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVkYWxfbWlsaXRhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRyb3BoeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVkYWxfc3BvcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSIxc3RfcGxhY2VfbWVkYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjJuZF9wbGFjZV9tZWRhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iM3JkX3BsYWNlX21lZGFsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2NjZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhc2ViYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2Z0YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFza2V0YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idm9sbGV5YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm9vdGJhbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ1Z2J5X2Zvb3RiYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZW5uaXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZseWluZ19kaXNjIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib3dsaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjcmlja2V0X2JhdF9hbmRfYmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmllbGRfaG9ja2V5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpY2VfaG9ja2V5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsYWNyb3NzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGluZ19wb25nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWRtaW50b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJveGluZ19nbG92ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFydGlhbF9hcnRzX3VuaWZvcm0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdvYWxfbmV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnb2xmIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpY2Vfc2thdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpc2hpbmdfcG9sZV9hbmRfZmlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGl2aW5nX21hc2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ1bm5pbmdfc2hpcnRfd2l0aF9zYXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJza2kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNsZWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cmxpbmdfc3RvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InlvLXlvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJraXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSI4YmFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3J5c3RhbF9iYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuYXphcl9hbXVsZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZpZGVvX2dhbWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpveXN0aWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG90X21hY2hpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhbWVfZGllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqaWdzYXciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlZGR5X2JlYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYWRlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaWFtb25kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2x1YnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZXNzX3Bhd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2pva2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWhqb25nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmbG93ZXJfcGxheWluZ19jYXJkcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVyZm9ybWluZ19hcnRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmFtZWRfcGljdHVyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0aHJlYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Inlhcm4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIFxuICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb25cJyBkYXRhLXNlY3Rpb249XCdvYmplY3RzXCc+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWhlYWRlclwnPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZSI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIub2JqZWN0cyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAxNixjb2x1bW46MzB9LGVuZDp7bGluZToyMDE2LGNvbHVtbjo2MX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV5ZWdsYXNzZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhcmtfc3VuZ2xhc3NlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ29nZ2xlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFiX2NvYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhZmV0eV92ZXN0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZWNrdGllIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0c2hpcnQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImplYW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2FyZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2xvdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2F0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2NrcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJlc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtpbW9ubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FyaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib25lX3BpZWNlX3N3aW1zdWl0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicmllZnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNob3J0cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmlraW5pIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3b21hbnNfY2xvdGhlcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHVyc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbmRiYWciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvdWNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaG9wcGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2Nob29sX3NhdGNoZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbnNfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXRobGV0aWNfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlraW5nX2Jvb3QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsYXRfc2hvZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGlnaF9oZWVsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYW5kYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxldF9zaG9lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9vdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndvbWFuc19oYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRvcGhhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9ydGFyX2JvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaWxsZWRfY2FwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXNjdWVfd29ya2VyX2hlbG1ldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icHJheWVyX2JlYWRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaXBzdGljayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGVha2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb3VuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG91ZF9zb3VuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG91ZHNwZWFrZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1lZ2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvc3RhbF9ob3JuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19iZWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXNpY2FsX3Njb3JlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtdXNpY2FsX25vdGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdHVkaW9fbWljcm9waG9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGV2ZWxfc2xpZGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb250cm9sX2tub2JzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWNyb3Bob25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWFkcGhvbmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyYWRpbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F4b3Bob25lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWl0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im11c2ljYWxfa2V5Ym9hcmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRydW1wZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZpb2xpbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFuam8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRydW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlwaG9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsbGluZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGhvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlbGVwaG9uZV9yZWNlaXZlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGFnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZheCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0dGVyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxlY3RyaWNfcGx1ZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29tcHV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRlc2t0b3BfY29tcHV0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByaW50ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtleWJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb21wdXRlcl9tb3VzZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJhY2tiYWxsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaW5pZGlzYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmxvcHB5X2Rpc2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkdmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiYWN1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW92aWVfY2FtZXJhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxtX3N0cmlwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxtX3Byb2plY3RvciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhcHBlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHYiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbWVyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FtZXJhX2ZsYXNoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aWRlb19jYW1lcmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZocyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWdfcmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmRsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmxhc2hsaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaXpha2F5YV9sYW50ZXJuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkaXlhX2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvc2VkX2Jvb2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9wZW5fYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlZW5fYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmx1ZV9ib29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2VfYm9vayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm9va3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vdGVib29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWRnZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhZ2Vfd2l0aF9jdXJsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY3JvbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhZ2VfZmFjaW5nX3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXdzcGFwZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld3NwYXBlcl9yb2xsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib29rbWFya190YWJzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJib29rbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFiZWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmV5YmFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvbGxhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXVybyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG91bmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbmV5X3dpdGhfd2luZ3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyZWRpdF9jYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWNlaXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaGFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3VycmVuY3lfZXhjaGFuZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X2RvbGxhcl9zaWduIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbWFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZS1tYWlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmNvbWluZ19lbnZlbG9wZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZW52ZWxvcGVfd2l0aF9hcnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3V0Ym94X3RyYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImluYm94X3RyYXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhY2thZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1haWxib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1haWxib3hfY2xvc2VkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWlsYm94X3dpdGhfbWFpbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFpbGJveF93aXRoX25vX21haWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBvc3Rib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvdF9ib3giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlbmNpbDIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX25pYiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZm91bnRhaW5fcGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhaW50YnJ1c2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNyYXlvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVtbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJpZWZjYXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmaWxlX2ZvbGRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib3Blbl9maWxlX2ZvbGRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FyZF9pbmRleF9kaXZpZGVycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGF0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FsZW5kYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwaXJhbF9ub3RlcGFkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcGlyYWxfY2FsZW5kYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcmRfaW5kZXgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYXJ0X3dpdGhfdXB3YXJkc190cmVuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhcnRfd2l0aF9kb3dud2FyZHNfdHJlbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhcl9jaGFydCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xpcGJvYXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXNocGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyb3VuZF9wdXNocGluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXBlcmNsaXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcGVyY2xpcHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0cmFpZ2h0X3J1bGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmlhbmd1bGFyX3J1bGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzY2lzc29ycyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2FyZF9maWxlX2JveCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlsZV9jYWJpbmV0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXN0ZWJhc2tldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG9jayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5sb2NrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsb2NrX3dpdGhfaW5rX3BlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xvc2VkX2xvY2tfd2l0aF9rZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2xkX2tleSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtbWVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJheGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpY2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhhbW1lcl9hbmRfcGljayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFtbWVyX2FuZF93cmVuY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRhZ2dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9zd29yZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1biI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYm93X2FuZF9hcnJvdyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2hpZWxkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3cmVuY2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im51dF9hbmRfYm9sdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VhciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGFuY2Vfc2NhbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByb2JpbmdfY2FuZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGluayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hhaW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b29sYm94Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWduZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFsZW1iaWMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRlc3RfdHViZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGV0cmlfZGlzaCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtaWNyb3Njb3BlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ZWxlc2NvcGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhdGVsbGl0ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3lyaW5nZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZHJvcF9vZl9ibG9vZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWRoZXNpdmVfYmFuZGFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RldGhvc2NvcGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY291Y2hfYW5kX2xhbXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYWlyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b2lsZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNob3dlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmF0aHR1YiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmF6b3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxvdGlvbl9ib3R0bGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNhZmV0eV9waW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJyb29tIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYXNrZXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbGxfb2ZfdG9pbGV0X3BhcGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2FwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcG9uZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpcmVfZXh0aW5ndWlzaGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaG9wcGluZ19jYXJ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbW9raW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb2ZmaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZ1bmVyYWxfdXJuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb3lhaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG4gICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvblwnIGRhdGEtc2VjdGlvbj1cJ3N5bWJvbHNcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5zeW1ib2xzIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNDkxLGNvbHVtbjozMH0sZW5kOntsaW5lOjI0OTEsY29sdW1uOjYxfX19KSkrJzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uLWdyb3VwXCc+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXRtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXRfbGl0dGVyX2luX2l0c19wbGFjZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG90YWJsZV93YXRlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hlZWxjaGFpciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWVucyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id29tZW5zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXN0cm9vbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFieV9zeW1ib2wiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndjIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXNzcG9ydF9jb250cm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXN0b21zIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWdnYWdlX2NsYWltIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0X2x1Z2dhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Indhcm5pbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoaWxkcmVuX2Nyb3NzaW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19lbnRyeSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fZW50cnlfc2lnbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fYmljeWNsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vX3Ntb2tpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvX25vdF9saXR0ZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5vbi1wb3RhYmxlX3dhdGVyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub19wZWRlc3RyaWFucyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9fbW9iaWxlX3Bob25lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5kZXJhZ2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJhZGlvYWN0aXZlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaW9oYXphcmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cHBlcl9yaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfcmlnaHQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2xvd2VyX3JpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19kb3duIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19sb3dlcl9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cHBlcl9sZWZ0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd191cF9kb3duIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0X3JpZ2h0X2Fycm93Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsZWZ0d2FyZHNfYXJyb3dfd2l0aF9ob29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19yaWdodF9ob29rIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19oZWFkaW5nX3VwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcnJvd19oZWFkaW5nX2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93c19jbG9ja3dpc2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93c19jb3VudGVyY2xvY2t3aXNlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0b3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBsYWNlX29mX3dvcnNoaXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF0b21fc3ltYm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3Rhcl9vZl9kYXZpZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hlZWxfb2ZfZGhhcm1hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5aW5feWFuZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF0aW5fY3Jvc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im9ydGhvZG94X2Nyb3NzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdGFyX2FuZF9jcmVzY2VudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGVhY2Vfc3ltYm9sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtZW5vcmFoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzaXhfcG9pbnRlZF9zdGFyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGF1cnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnZW1pbmkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmNlciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGVvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aXJnbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGlicmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNjb3JwaXVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYWdpdHRhcml1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2Fwcmljb3JuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcXVhcml1cyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGlzY2VzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcGhpdWNodXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR3aXN0ZWRfcmlnaHR3YXJkc19hcnJvd3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlcGVhdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmVwZWF0X29uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZm9yd2FyZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFzdF9mb3J3YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXh0X3RyYWNrX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icGxheV9vcl9wYXVzZV9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2JhY2t3YXJkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZXdpbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InByZXZpb3VzX3RyYWNrX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfdXBfc21hbGwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFycm93X2RvdWJsZV91cCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZG93bl9zbWFsbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJyb3dfZG91YmxlX2Rvd24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhdXNlX2J1dHRvbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RvcF9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlY29yZF9idXR0b24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNpbmVtYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibG93X2JyaWdodG5lc3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhpZ2hfYnJpZ2h0bmVzcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2lnbmFsX3N0cmVuZ3RoIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2aWJyYXRpb25fbW9kZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9iaWxlX3Bob25lX29mZiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaW5maW5pdHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJlY3ljbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZsZXVyX2RlX2xpcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpZGVudCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmFtZV9iYWRnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmVnaW5uZXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndoaXRlX2NoZWNrX21hcmsiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbGxvdF9ib3hfd2l0aF9jaGVjayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhdnlfY2hlY2tfbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhdnlfbXVsdGlwbGljYXRpb25feCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmVnYXRpdmVfc3F1YXJlZF9jcm9zc19tYXJrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJoZWF2eV9wbHVzX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X21pbnVzX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImhlYXZ5X2RpdmlzaW9uX3NpZ24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN1cmx5X2xvb3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxvb3AiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcnRfYWx0ZXJuYXRpb25fbWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWlnaHRfc3Bva2VkX2FzdGVyaXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJlaWdodF9wb2ludGVkX2JsYWNrX3N0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNwYXJrbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbmdiYW5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbnRlcnJvYmFuZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icXVlc3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZXlfcXVlc3Rpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZXlfZXhjbGFtYXRpb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV4Y2xhbWF0aW9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3YXZ5X2Rhc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvcHlyaWdodCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmVnaXN0ZXJlZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imhhc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFzdGVyaXNrIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6ZXJvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR3byI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGhyZWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZvdXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZpdmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpeCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2V2ZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVpZ2h0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuaW5lIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrZXljYXBfdGVuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXBpdGFsX2FiY2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiY2QiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IjEyMzQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN5bWJvbHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFiYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb29sIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJmcmVlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmZvcm1hdGlvbl9zb3VyY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlkIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5nIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvMiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ib2siPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcmtpbmciPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InZzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJrb2tvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTY3MDgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU2NzA5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1NjMwNyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaWRlb2dyYXBoX2FkdmFudGFnZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTUyNzIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU3MTIxIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1Nzk4MSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWNjZXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1NzUzMyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTU0MDgiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU3YTdhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb25ncmF0dWxhdGlvbnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNlY3JldCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idTU1YjYiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InU2ZTgwIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2VfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9jaXJjbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxhcmdlX2JsdWVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicm93bl9jaXJjbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2NpcmNsZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfY2lyY2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJyZWRfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvcmFuZ2Vfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ5ZWxsb3dfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlbl9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsdWVfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwdXJwbGVfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicm93bl9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJsYWNrX2xhcmdlX3NxdWFyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfbGFyZ2Vfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19tZWRpdW1fc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9tZWRpdW1fc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19tZWRpdW1fc21hbGxfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9tZWRpdW1fc21hbGxfc3F1YXJlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19zbWFsbF9zcXVhcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9IndoaXRlX3NtYWxsX3NxdWFyZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGFyZ2Vfb3JhbmdlX2RpYW1vbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxhcmdlX2JsdWVfZGlhbW9uZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21hbGxfb3JhbmdlX2RpYW1vbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNtYWxsX2JsdWVfZGlhbW9uZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic21hbGxfcmVkX3RyaWFuZ2xlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbWFsbF9yZWRfdHJpYW5nbGVfZG93biI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFkaW9fYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3aGl0ZV9zcXVhcmVfYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJibGFja19zcXVhcmVfYnV0dG9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCdzZWN0aW9uXCcgZGF0YS1zZWN0aW9uPVwnZmxhZ3NcJz5cbiAgICAgICAgPGRpdiBjbGFzcz1cJ3NlY3Rpb24taGVhZGVyXCc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5mbGFncyIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjkyNixjb2x1bW46MzB9LGVuZDp7bGluZToyOTI2LGNvbHVtbjo1OX19fSkpKyc8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwnc2VjdGlvbi1ncm91cFwnPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoZWNrZXJlZF9mbGFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0cmlhbmd1bGFyX2ZsYWdfb25fcG9zdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3Jvc3NlZF9mbGFncyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmxhY2tfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2hpdGVfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icmFpbmJvd19mbGFnIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwaXJhdGVfZmxhZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXNjZW5zaW9uX2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW5kb3JyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pdGVkX2FyYWJfZW1pcmF0ZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFmZ2hhbmlzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbnRpZ3VhX2JhcmJ1ZGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFuZ3VpbGxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbGJhbmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhcm1lbmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJhbmdvbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFudGFyY3RpY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFyZ2VudGluYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYW1lcmljYW5fc2Ftb2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF1c3RyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF1c3RyYWxpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYXJ1YmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImFsYW5kX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImF6ZXJiYWlqYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvc25pYV9oZXJ6ZWdvdmluYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYmFyYmFkb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhbmdsYWRlc2giPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlbGdpdW0iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cmtpbmFfZmFzbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnVsZ2FyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJhaHJhaW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJ1cnVuZGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJlbmluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9iYXJ0aGVsZW15Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZXJtdWRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicnVuZWkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvbGl2aWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhcmliYmVhbl9uZXRoZXJsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYnJhemlsIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiYWhhbWFzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiaHV0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdXZldF9pc2xhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImJvdHN3YW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxhcnVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJiZWxpemUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmFkYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29jb3NfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uZ29fa2luc2hhc2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNlbnRyYWxfYWZyaWNhbl9yZXB1YmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29uZ29fYnJhenphdmlsbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3aXR6ZXJsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3RlX2Rpdm9pcmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvb2tfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2hpbGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbWVyb29uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY29sb21iaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNsaXBwZXJ0b25faXNsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjb3N0YV9yaWNhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdWJhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYXBlX3ZlcmRlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjdXJhY2FvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjaHJpc3RtYXNfaXNsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjeXBydXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImN6ZWNoX3JlcHVibGljIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGllZ29fZ2FyY2lhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJkamlib3V0aSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZGVubWFyayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZG9taW5pY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImRvbWluaWNhbl9yZXB1YmxpYyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iYWxnZXJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2V1dGFfYW5kX21lbGlsbGEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVjdWFkb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVzdG9uaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVneXB0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ3ZXN0ZXJuX3NhaGFyYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXJpdHJlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImV0aGlvcGlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJldSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlubGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmlqaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFsa2xhbmRfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWljcm9uZXNpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZmFyb2VfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdhYm9uIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1ayI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3JlbmFkYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2VvcmdpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZnJlbmNoX2d1aWFuYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3Vlcm5zZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdoYW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJnaWJyYWx0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImdyZWVubGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ2FtYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWluZWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imd1YWRlbG91cGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImVxdWF0b3JpYWxfZ3VpbmVhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJncmVlY2UiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX2dlb3JnaWFfc291dGhfc2FuZHdpY2hfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZ3VhdGVtYWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWFtIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndWluZWFfYmlzc2F1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJndXlhbmEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imhvbmdfa29uZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGVhcmRfYW5kX21jX2RvbmFsZF9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJob25kdXJhcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY3JvYXRpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaGFpdGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imh1bmdhcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNhbmFyeV9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJpbmRvbmVzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyZWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlzcmFlbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iaXNsZV9vZl9tYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImluZGlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicml0aXNoX2luZGlhbl9vY2Vhbl90ZXJyaXRvcnkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyYXEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImlyYW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImljZWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Iml0Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJqZXJzZXkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImphbWFpY2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImpvcmRhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ianAiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImtlbnlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJreXJneXpzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJjYW1ib2RpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia2lyaWJhdGkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNvbW9yb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X2tpdHRzX25ldmlzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3J0aF9rb3JlYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ia3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imt1d2FpdCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iY2F5bWFuX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImthemFraHN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxhb3MiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxlYmFub24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X2x1Y2lhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaWVjaHRlbnN0ZWluIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzcmlfbGFua2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpYmVyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imxlc290aG8iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImxpdGh1YW5pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibHV4ZW1ib3VyZyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibGF0dmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJsaWJ5YSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9yb2NjbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9uYWNvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb2xkb3ZhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtb250ZW5lZ3JvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9tYXJ0aW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hZGFnYXNjYXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hcnNoYWxsX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hY2Vkb25pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFsaSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibXlhbm1hciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibW9uZ29saWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hY2F1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3J0aGVybl9tYXJpYW5hX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hcnRpbmlxdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hdXJpdGFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vbnRzZXJyYXQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbHRhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYXVyaXRpdXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1hbGRpdmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJtYWxhd2kiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1leGljbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibWFsYXlzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1vemFtYmlxdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5hbWliaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld19jYWxlZG9uaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5pZ2VyIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJub3Jmb2xrX2lzbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmlnZXJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmljYXJhZ3VhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXRoZXJsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibm9yd2F5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJuZXBhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ibmF1cnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5pdWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im5ld196ZWFsYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJvbWFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYW5hbWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBlcnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyZW5jaF9wb2x5bmVzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhcHVhX25ld19ndWluZWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBoaWxpcHBpbmVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWtpc3RhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9sYW5kIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzdF9waWVycmVfbWlxdWVsb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBpdGNhaXJuX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InB1ZXJ0b19yaWNvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYWxlc3Rpbmlhbl90ZXJyaXRvcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icG9ydHVnYWwiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InBhbGF1Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJwYXJhZ3VheSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icWF0YXIiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJldW5pb24iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJvbWFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNlcmJpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0icnUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InJ3YW5kYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2F1ZGlfYXJhYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzb2xvbW9uX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNleWNoZWxsZXMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN1ZGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzd2VkZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpbmdhcG9yZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3RfaGVsZW5hIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzbG92ZW5pYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3ZhbGJhcmRfYW5kX2phbl9tYXllbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2xvdmFraWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpZXJyYV9sZW9uZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2FuX21hcmlubyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2VuZWdhbCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic29tYWxpYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3VyaW5hbWUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX3N1ZGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJzYW9fdG9tZV9wcmluY2lwZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iZWxfc2FsdmFkb3IiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNpbnRfbWFhcnRlbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic3lyaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN3YXppbGFuZCI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpc3Rhbl9kYV9jdW5oYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHVya3NfY2FpY29zX2lzbGFuZHMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImNoYWQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9ImZyZW5jaF9zb3V0aGVybl90ZXJyaXRvcmllcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idG9nbyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGhhaWxhbmQiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhamlraXN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRva2VsYXUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRpbW9yX2xlc3RlIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXJrbWVuaXN0YW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InR1bmlzaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRvbmdhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0ciI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idHJpbmlkYWRfdG9iYWdvIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ0dXZhbHUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InRhaXdhbiI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idGFuemFuaWEiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVrcmFpbmUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVnYW5kYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idXNfb3V0bHlpbmdfaXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idW5pdGVkX25hdGlvbnMiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InVzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1cnVndWF5Ij48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1emJla2lzdGFuIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ2YXRpY2FuX2NpdHkiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InN0X3ZpbmNlbnRfZ3JlbmFkaW5lcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmVuZXp1ZWxhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJicml0aXNoX3Zpcmdpbl9pc2xhbmRzIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ1c192aXJnaW5faXNsYW5kcyI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmlldG5hbSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0idmFudWF0dSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0id2FsbGlzX2Z1dHVuYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ic2Ftb2EiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Imtvc292byI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0ieWVtZW4iPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9Im1heW90dGUiPjwvYnV0dG9uPlxuICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJlbW9qaSAiIHRhYmluZGV4PSItMSIgdGl0bGU9InNvdXRoX2FmcmljYSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImVtb2ppICIgdGFiaW5kZXg9Ii0xIiB0aXRsZT0iemFtYmlhIj48L2J1dHRvbj5cbiAgICAgICAgICBcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZW1vamkgIiB0YWJpbmRleD0iLTEiIHRpdGxlPSJ6aW1iYWJ3ZSI+PC9idXR0b24+XG4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgXG5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImN1c3RvbUVtb2ppcy5sZW5ndGgiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDY0LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MzQ3NSxjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0nZm9vdGVyJz5cbiAgICA8ZGl2IGNsYXNzPSdpbmZvJz48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSdkaXZlcnNpdHktcGlja2VyJz5cbiAgICAgIFxuICAgICAgICA8YSBocmVmPScjJyB0aXRsZT1cIiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLmRlZmF1bHRfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ4MSxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDgxLGNvbHVtbjo2M319fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIGRlZmF1bHRcJyBkYXRhLWxldmVsPSIxIj5cbiAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjaGVjayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDgyLGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0ODIsY29sdW1uOjI4fX19KSkrIlxuICAgICAgICA8L2E+XG4gICAgICBcbiAgICAgICAgPGEgaHJlZj0nIycgdGl0bGU9XCIiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5saWdodF90b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDg1LGNvbHVtbjoyN30sZW5kOntsaW5lOjM0ODUsY29sdW1uOjYxfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgbGlnaHRcJyBkYXRhLWxldmVsPSIyIj5cbiAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjaGVjayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDg2LGNvbHVtbjoxMH0sZW5kOntsaW5lOjM0ODYsY29sdW1uOjI4fX19KSkrIlxuICAgICAgICA8L2E+XG4gICAgICBcbiAgICAgICAgPGEgaHJlZj0nIycgdGl0bGU9XCIiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtb2ppX3BpY2tlci5tZWRpdW1fbGlnaHRfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ4OSxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDg5LGNvbHVtbjo2OH19fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIG1lZGl1bS1saWdodFwnIGRhdGEtbGV2ZWw9IjMiPlxuICAgICAgICAgICcrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNoZWNrIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM0OTAsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MzQ5MCxjb2x1bW46Mjh9fX0pKSsiXG4gICAgICAgIDwvYT5cbiAgICAgIFxuICAgICAgICA8YSBocmVmPScjJyB0aXRsZT1cIiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1vamlfcGlja2VyLm1lZGl1bV90b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNDkzLGNvbHVtbjoyN30sZW5kOntsaW5lOjM0OTMsY29sdW1uOjYyfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgbWVkaXVtXCcgZGF0YS1sZXZlbD0iNCI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2hlY2siLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5NCxjb2x1bW46MTB9LGVuZDp7bGluZTozNDk0LGNvbHVtbjoyOH19fSkpKyJcbiAgICAgICAgPC9hPlxuICAgICAgXG4gICAgICAgIDxhIGhyZWY9JyMnIHRpdGxlPVwiIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIubWVkaXVtX2RhcmtfdG9uZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5Nyxjb2x1bW46Mjd9LGVuZDp7bGluZTozNDk3LGNvbHVtbjo2N319fSkpKyciIGNsYXNzPVwnZGl2ZXJzaXR5LXNjYWxlIG1lZGl1bS1kYXJrXCcgZGF0YS1sZXZlbD0iNSI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2hlY2siLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzQ5OCxjb2x1bW46MTB9LGVuZDp7bGluZTozNDk4LGNvbHVtbjoyOH19fSkpKyJcbiAgICAgICAgPC9hPlxuICAgICAgXG4gICAgICAgIDxhIGhyZWY9JyMnIHRpdGxlPVwiIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbW9qaV9waWNrZXIuZGFya190b25lIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNTAxLGNvbHVtbjoyN30sZW5kOntsaW5lOjM1MDEsY29sdW1uOjYwfX19KSkrJyIgY2xhc3M9XCdkaXZlcnNpdHktc2NhbGUgZGFya1wnIGRhdGEtbGV2ZWw9IjYiPlxuICAgICAgICAgICcrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNoZWNrIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM1MDIsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MzUwMixjb2x1bW46Mjh9fX0pKSsiXG4gICAgICAgIDwvYT5cbiAgICAgIFxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJlbW9qaS1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iICAgICAgPGxpPlxuICAgICAgICA8YSBocmVmPlxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9uLnNyYyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUucHJvZ3JhbSg0LHMsMCksdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoxMH0sZW5kOntsaW5lOjExLGNvbHVtbjoxN319fSkpP286IiIpKyIgICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgICAgIDxpbWcgc3JjPSIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24uc3JjIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3LGNvbHVtbjoyMX0sZW5kOntsaW5lOjcsY29sdW1uOjM1fX19KSkrIiBjbGFzcz0nZW1vamknPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2Vtb2ppLXNob3J0bmFtZSc+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbi5jb2RlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjo0Mn0sZW5kOntsaW5lOjgsY29sdW1uOjU3fX19KSkrIjwvc3Bhbj5cbiJ9LDQ6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbi5sYWJlbCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTAsY29sdW1uOjEyfSxlbmQ6e2xpbmU6MTAsY29sdW1uOjI4fX19KSkrIlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtZW1vamknPlxuICA8dWw+XG4iKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9wdGlvbiIsImluIiwib3B0aW9ucyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZToxNCxjb2x1bW46MTN9fX0pKT9vOiIiKSsiICA8L3VsPlxuPC9kaXY+XG4ifSx1c2VEYXRhOiEwfSksRW1iZXIuVEVNUExBVEVTLmV4Y2VwdGlvbj1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJ1dHRvbkRhdGEiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVycm9yLXBhZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmFjZSJdLFs4XSxbMCwiOigiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmVhc29uIl0sWzhdLFsxLFsyMiwicmVhc29uIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1cmwiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJlcnJvcnMucHJldl9wYWdlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIyLCJyZXF1ZXN0VXJsIl1dLFsxMCwiZGF0YS1hdXRvLXJvdXRlIiwidHJ1ZSJdLFs4XSxbMSxbMjIsInJlcXVlc3RVcmwiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm5ldHdvcmtGaXhlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjaGVjay1jaXJjbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjIsImRlc2MiXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYnV0dG9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJlbmFibGVkQnV0dG9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCIsImNsYXNzIl0sW1syMywxLFsiaWNvbiJdXSxbMjMsMSxbImFjdGlvbiJdXSxbMjMsMSxbImtleSJdXSxbMjMsMSxbImNsYXNzZXMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6ImV4Y2VwdGlvbiJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImZsYXQtYnV0dG9uIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHtjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIjxidXR0b24gY2xhc3M9J2J0bi1mbGF0ICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MjR9LGVuZDp7bGluZToxLGNvbHVtbjozM319fSkpKyInIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljcy5idWxrLnRvZ2dsZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46NDJ9LGVuZDp7bGluZToxLGNvbHVtbjo3MX19fSkpKyInPlxuICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJpY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoyfSxlbmQ6e2xpbmU6Mixjb2x1bW46MTd9fX0pKSsiXG48L2J1dHRvbj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbImZ1bGwtcGFnZS1zZWFyY2giXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInJlc3VsdCIsInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJjbGFzcyJdLFsic2VhcmNoIiwic2VhcmNoLWNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInNjcm9sbC10cmFja2VyIixudWxsLFtbIm5hbWUiLCJ0YWciLCJjbGFzcyJdLFsiZnVsbC1wYWdlLXNlYXJjaCIsWzI0LFsic2VhcmNoVGVybSJdXSwiaGlkZGVuIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC1hZHZhbmNlZCJdLFs4XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWJhciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC10ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiY2xhc3MiLCJlbnRlciIsImhhc0F1dG9mb2N1cyJdLFtbMjQsWyJzZWFyY2hUZXJtIl1dLCJmdWxsLXBhZ2Utc2VhcmNoIHNlYXJjaCBuby1ibHVyIHNlYXJjaC1xdWVyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlYXJjaCJdLG51bGxdLFsyNCxbImhhc0F1dG9mb2N1cyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF0sInNlYXJjaCIsImJ0bi1wcmltYXJ5IHNlYXJjaC1jdGEiLFsyNCxbInNlYXJjaEJ1dHRvbkRpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtbm90aWNlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpbnZhbGlkU2VhcmNoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmcHMtaW52YWxpZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2gudG9vX3Nob3J0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFswLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC1jb250ZXh0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjb250ZXh0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmcHMtc2VhcmNoLWNvbnRleHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ0eXBlIiwibmFtZSIsImNoZWNrZWQiXSxbImNoZWNrYm94Iiwic2VhcmNoQ29udGV4dCIsWzI0LFsic2VhcmNoQ29udGV4dEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJzZWFyY2hDb250ZXh0RGVzY3JpcHRpb24iXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlYXJjaC10aXRsZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiY3JlYXRlLXRvcGljLWJ1dHRvbiIsbnVsbCxbWyJjYW5DcmVhdGVUb3BpYyIsImFjdGlvbiJdLFtbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlVG9waWMiLFsyNCxbInNlYXJjaFRlcm0iXV1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkJ1bGtTZWxlY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJjbGFzcyIsInRpdGxlIiwiYWN0aW9uIl0sWyJsaXN0IiwiYnRuLWRlZmF1bHQgYnVsay1zZWxlY3QiLCJ0b3BpY3MuYnVsay50b2dnbGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCdWxrU2VsZWN0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJidWxrLXNlbGVjdC1idXR0b24iLG51bGwsW1sic2VsZWN0ZWQiLCJhY3Rpb24iXSxbWzI0LFsic2VsZWN0ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlYXJjaCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImJ1bGtTZWxlY3RFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZwcy1zZWxlY3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0QWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyQWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmNsZWFyX2FsbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmVzdWx0LWNvdW50Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzIyLCJyZXN1bHRDb3VudExhYmVsIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzb3J0LWJ5Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLnNvcnRfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJjYXN0SW50ZWdlciIsIm9uQ2hhbmdlIl0sW1syNCxbInNvcnRPcmRlciJdXSxbMjQsWyJzb3J0T3JkZXJzIl1dLHRydWUsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJzb3J0T3JkZXIiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJmdWxsLXBhZ2Utc2VhcmNoLWJlbG93LXNlYXJjaC1pbmZvIixbMjgsImhhc2giLG51bGwsW1sic2VhcmNoIl0sW1syNCxbInNlYXJjaFRlcm0iXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2VhcmNoaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLXJlc3VsdHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5mcHMtcmVzdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJwb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZwcy1yZXN1bHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGhvciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyMywxLFsidXNlclBhdGgiXV1dLFsxMSwiZGF0YS11c2VyLWNhcmQiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ1c2VybmFtZSJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImF2YXRhciIsW1syMywxLFtdXV0sW1siaW1hZ2VTaXplIl0sWyJsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZnBzLXRvcGljIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRyYWNrLXNlbGVjdGVkIixudWxsLFtbInNlbGVjdGVkTGlzdCIsInNlbGVjdGVkSWQiXSxbWzI0LFsic2VsZWN0ZWQiXV0sWzIzLDEsWyJ0b3BpYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiY2xhc3MiLCJzZWFyY2gtbGluayJdLFsxMiwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsMSxbInVybCJdXV0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwibG9nQ2xpY2siLFsyMywxLFsidG9waWNfaWQiXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiLCJkaXNhYmxlQWN0aW9ucyJdLFtbMjMsMSxbInRvcGljIl1dLHRydWVdXV0sZmFsc2VdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtdGl0bGUiXSxbOF0sWzQsImhpZ2hsaWdodC10ZXh0IixudWxsLFtbImhpZ2hsaWdodCJdLFtbMjQsWyJxIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ0b3BpYyIsImZhbmN5VGl0bGUiXV1dLG51bGxdLHRydWVdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWxpbmsiLFtbMjMsMSxbInRvcGljIiwiY2F0ZWdvcnkiXV1dLFtbImhpZGVQYXJlbnQiXSxbdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJ0b3BpYyIsInRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMixbXV1dLFtbImlzUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsiaXNQcml2YXRlTWVzc2FnZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImZ1bGwtcGFnZS1zZWFyY2gtY2F0ZWdvcnkiLFsyOCwiaGFzaCIsbnVsbCxbWyJyZXN1bHQiXSxbWzIzLDEsW11dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJsdXJiIGNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkYXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZm9ybWF0LWFnZSIsW1syMywxLFsiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImJsdXJiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgIC1cXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMSxbImJsdXJiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJoaWdobGlnaHQtdGV4dCIsbnVsbCxbWyJoaWdobGlnaHQiXSxbWzI0LFsiaGlnaGxpZ2h0UXVlcnkiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidW5ib3VuZCIsW1syMywxLFsiYmx1cmIiXV1dLG51bGxdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xpa2VDb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImxpa2VfY291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJsaWtlLWNvdW50Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJsaWtlX2NvdW50Il1dLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiZC1pY29uIixbImhlYXJ0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJoYXNSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNlYXJjaEFjdGl2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2gubm9fcmVzdWx0cyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZ3JvdXBlZF9zZWFyY2hfcmVzdWx0IiwiZXJyb3IiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZ3JvdXBlZF9zZWFyY2hfcmVzdWx0IiwiZXJyb3IiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U3VnZ2VzdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLXJlc3VsdHMtc3VnZ2VzdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLmNhbnRfZmluZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIixbMjQsWyJzZWFyY2hUZXJtIl1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guc3RhcnRfbmV3X3RvcGljIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGVTZXR0aW5ncyIsImxvZ2luX3JlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLm9yX3NlYXJjaF9nb29nbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5zZWFyY2hfZ29vZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJnb29nbGUtc2VhcmNoIixudWxsLFtbInNlYXJjaFRlcm0iXSxbWzI0LFsic2VhcmNoVGVybSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJoYXNSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJncm91cGVkX3NlYXJjaF9yZXN1bHQiLCJtb3JlX2Z1bGxfcGFnZV9yZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImlzTGFzdFBhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsic2VhcmNoLm1vcmVfcmVzdWx0cyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInNlYXJjaC5ub19tb3JlX3Jlc3VsdHMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwibG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiXSxbIm1lZGl1bSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYWR2YW5jZWQtc2lkZWJhciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYmFyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwic2VhcmNoLXRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJjbGFzcyIsImVudGVyIiwiaGFzQXV0b2ZvY3VzIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sImZ1bGwtcGFnZS1zZWFyY2ggc2VhcmNoIG5vLWJsdXIgc2VhcmNoLXF1ZXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF0sWzI0LFsiaGFzQXV0b2ZvY3VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJjbGFzcyIsImRpc2FibGVkIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWFyY2giXSxudWxsXSwic2VhcmNoIiwiYnRuLXByaW1hcnkgc2VhcmNoLWN0YSIsWzI0LFsic2VhcmNoQnV0dG9uRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsic2VhcmNoLWFkdmFuY2VkLXRpdGxlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQWR2YW5jZWRTZWFyY2giXSxudWxsXSxbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImNhcmV0LWRvd24iLCJjYXJldC1yaWdodCJdLG51bGxdLCJzZWFyY2guYWR2YW5jZWQudGl0bGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWFkdmFuY2VkLXRpdGxlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJzZWFyY2guYWR2YW5jZWQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlIiwibW9iaWxlVmlldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJleHBhbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWFkdmFuY2VkLWZpbHRlcnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC1hZHZhbmNlZC1vcHRpb25zIixudWxsLFtbInNlYXJjaFRlcm0iLCJpc0V4cGFuZGVkIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sWzI0LFsiZXhwYW5kZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtYWR2YW5jZWQtZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInNlYXJjaC1hZHZhbmNlZC1vcHRpb25zIixudWxsLFtbInNlYXJjaFRlcm0iLCJpc0V4cGFuZGVkIl0sW1syNCxbInNlYXJjaFRlcm0iXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiIsImljb24iLCJjbGFzcyIsImRpc2FibGVkIl0sWyJzdWJtaXQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWFyY2giXSxudWxsXSwic2VhcmNoIiwiYnRuLXByaW1hcnkgc2VhcmNoLWN0YSIsWzI0LFsic2VhcmNoQnV0dG9uRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJmdWxsLXBhZ2Utc2VhcmNoIn19KSxFbWJlci5URU1QTEFURVNbImdyb3VwLWFjdGl2aXR5LXBvc3RzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJwb3N0Il0sInN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIudXNlci1zdHJlYW0taXRlbSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1zdHJlYW0iXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtcG9zdCIsbnVsbCxbWyJwb3N0IiwiY2xhc3MiXSxbWzIzLDEsW11dLCJ1c2VyLXN0cmVhbS1pdGVtIGl0ZW0iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbWzI0LFsiZW1wdHlUZXh0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwLWFjdGl2aXR5LXBvc3RzIn19KSxFbWJlci5URU1QTEFURVNbImdyb3VwLWFjdGl2aXR5LXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJjbGFzcyIsInNlbGVjdG9yIiwiYWN0aW9uIl0sWyJwYWdpbmF0ZWQtdG9waWNzLWxpc3QiLCIucGFnaW5hdGVkLXRvcGljcy1saXN0IC50b3BpYy1saXN0IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYmFzaWMtdG9waWMtbGlzdCIsbnVsbCxbWyJ0b3BpY0xpc3QiLCJzaG93UG9zdGVycyJdLFtbMjQsWyJtb2RlbCJdXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC1hY3Rpdml0eS10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAtaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIm0iXSwic3RhdGVtZW50cyI6W1s3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVycy1hY3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfbWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJhdXRvY29tcGxldGUiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSxbMjQsWyJmaWx0ZXJQbGFjZWhvbGRlciJdXSwiZGlzY291cnNlIiwiZ3JvdXAtdXNlcm5hbWUtZmlsdGVyIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1lbWJlcnMtbWFuYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJpY29uIiwiYWN0aW9uIiwibGFiZWwiLCJjbGFzcyJdLFsicGx1cyIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0FkZE1lbWJlcnNNb2RhbCJdLG51bGxdLCJncm91cHMuYWRkX21lbWJlcnMudGl0bGUiLCJncm91cC1tZW1iZXJzLWFkZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImFjdGlvbiIsImxhYmVsIiwiY2xhc3MiXSxbInBsdXMiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dCdWxrQWRkTW9kYWwiXSxudWxsXSwiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLnRpdGxlIiwiZ3JvdXAtYnVsay1hZGQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgdHIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImdyb3VwLWluZGV4LXRvZ2dsZSIsbnVsbCxbWyJvcmRlciIsImRlc2MiLCJmaWVsZCIsImkxOG5LZXkiXSxbWzI0LFsib3JkZXIiXV0sWzI0LFsiZGVzYyJdXSwidXNlcm5hbWVfbG93ZXIiLCJ1c2VybmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW93bmVyIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWVtYmVycy5vd25lciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJncm91cC1pbmRleC10b2dnbGUiLG51bGwsW1sib3JkZXIiLCJkZXNjIiwiZmllbGQiLCJpMThuS2V5Il0sW1syNCxbIm9yZGVyIl1dLFsyNCxbImRlc2MiXV0sImFkZGVkX2F0IiwiZ3JvdXBzLm1lbWJlcl9hZGRlZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJsYXN0X3Bvc3RlZF9hdCIsImxhc3RfcG9zdCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJsYXN0X3NlZW5fYXQiLCJsYXN0X3NlZW4iXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJtZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInVzZXItaW5mbyIsbnVsbCxbWyJ1c2VyIiwic2tpcE5hbWUiXSxbWzIzLDEsW11dLFsyNCxbInNraXBOYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1vd25lciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJvd25lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJzdHJvbmciLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1vd25lci1sYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2hpZWxkLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsiYWRkZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixudWxsLFtbInJlbW92ZU1lbWJlciIsIm1ha2VPd25lciIsInJlbW92ZU93bmVyIiwibWVtYmVyIiwiZ3JvdXAiLCJvbkNoYW5nZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlTWVtYmVyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1ha2VPd25lciJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVPd25lciJdLG51bGxdLFsyMywxLFtdXSxbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWN0T25Hcm91cCIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX3NlZV9tZW1iZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5lbXB0eS5tZW1iZXJzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1lbWJlcnMuZm9yYmlkZGVuIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC1pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC1yZXF1ZXN0cyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsibSJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQiXSxbOF0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImNsYXNzIl0sW1syNCxbImZpbHRlcklucHV0Il1dLFsyNCxbImZpbHRlclBsYWNlaG9sZGVyIl1dLCJncm91cC11c2VybmFtZS1maWx0ZXIgbm8tYmx1ciJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc1JlcXVlc3RlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgdHIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGhlYWQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImdyb3VwLWluZGV4LXRvZ2dsZSIsbnVsbCxbWyJvcmRlciIsImRlc2MiLCJmaWVsZCIsImkxOG5LZXkiXSxbWzI0LFsib3JkZXIiXV0sWzI0LFsiZGVzYyJdXSwidXNlcm5hbWVfbG93ZXIiLCJ1c2VybmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtaW5kZXgtdG9nZ2xlIixudWxsLFtbIm9yZGVyIiwiZGVzYyIsImZpZWxkIiwiaTE4bktleSJdLFtbMjQsWyJvcmRlciJdXSxbMjQsWyJkZXNjIl1dLCJyZXF1ZXN0ZWRfYXQiLCJncm91cHMubWVtYmVyX3JlcXVlc3RlZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucmVxdWVzdHMucmVhc29uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwicmVxdWVzdGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJhdmF0YXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWluZm8iLG51bGwsW1sidXNlciIsInNraXBOYW1lIl0sW1syMywxLFtdXSxbMjQsWyJza2lwTmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsicmVxdWVzdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsicmVhc29uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInJlcXVlc3RfdW5kb25lIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5yZXF1ZXN0cy51bmRvbmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsicmVxdWVzdF9hY2NlcHRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMucmVxdWVzdHMuYWNjZXB0ZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVuZG9BY2NlcHRSZXF1ZXN0Il0sbnVsbF0sWzIzLDEsW11dLCJ1bmRvIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsicmVxdWVzdF9kZW5pZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLnJlcXVlc3RzLmRlbmllZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWNjZXB0UmVxdWVzdCJdLG51bGxdLFsyMywxLFtdXSwiZ3JvdXBzLnJlcXVlc3RzLmFjY2VwdCIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVueVJlcXVlc3QiXSxudWxsXSxbMjMsMSxbXV0sImdyb3Vwcy5yZXF1ZXN0cy5kZW55IiwiYnRuLWRhbmdlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuZW1wdHkucmVxdWVzdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwLXJlcXVlc3RzIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1siZ3JvdXAtc2VsZWN0b3ItYXV0b2NvbXBsZXRlIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgIDxsaT48YSBocmVmPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24ubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46MTh9LGVuZDp7bGluZTo0LGNvbHVtbjozM319fSkpKyI8L2E+PC9saT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0nYXV0b2NvbXBsZXRlIGFjLWdyb3VwJz5cbiAgPHVsPlxuIisobnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb24iLCJpbiIsIm9wdGlvbnMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NSxjb2x1bW46MTN9fX0pKT9vOiIiKSsiICA8L3VsPlxuPC9kaXY+XG4ifSx1c2VEYXRhOiEwfSksRW1iZXIuVEVNUExBVEVTLmdyb3VwPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJiZWZvcmUtZ3JvdXAtY29udGFpbmVyIixbMjgsImhhc2giLG51bGwsW1siZ3JvdXAiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjb250YWluZXIgZ3JvdXAgIixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1kZXRhaWxzLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1pbmZvIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZsYWlyX3VybCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWF2YXRhci1mbGFpciJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLWZsYWlyIixudWxsLFtbImZsYWlyVVJMIiwiZmxhaXJCZ0NvbG9yIiwiZmxhaXJDb2xvciIsImdyb3VwTmFtZSJdLFtbMjQsWyJtb2RlbCIsImZsYWlyX3VybCJdXSxbMjQsWyJtb2RlbCIsImZsYWlyX2JnX2NvbG9yIl1dLFsyNCxbIm1vZGVsIiwiZmxhaXJfY29sb3IiXV0sWzI0LFsibW9kZWwiLCJuYW1lIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtaW5mby1uYW1lIl0sWzhdLFsxLFsyMiwiZ3JvdXBOYW1lIl0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZ1bGxfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8tZnVsbC1uYW1lIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibmFtZSJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImJpb19jb29rZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJociIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWJpbyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtZGV0YWlscy1idXR0b24iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJtb2RlbCIsInNob3dMb2dpbiJdLFsiaW5saW5lIixbMjQsWyJtb2RlbCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlHcm91cE1lc3NhZ2VCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWVzc2FnZUdyb3VwIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGdyb3VwLW1lc3NhZ2UtYnV0dG9uIGlubGluZSIsImVudmVsb3BlIiwiZ3JvdXBzLm1lc3NhZ2UiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwiYWRtaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZXN0cm95Il0sbnVsbF0sWzI0LFsiZGVzdHJveWluZyJdXSwidHJhc2gtYWx0IiwiYnRuLWRhbmdlciIsImFkbWluLmdyb3Vwcy5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50LXdyYXBwZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByaW1hcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbmF2aWdhdGlvbiIsbnVsbCxbWyJncm91cCIsImN1cnJlbnRQYXRoIiwidGFicyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJjdXJyZW50UGF0aCJdXSxbMjQsWyJ0YWJzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiZ3JvdXAifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvYWN0aXZpdHkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuIl0sWzQsIm1vYmlsZS1uYXYiLG51bGwsW1siY2xhc3MiLCJkZXNrdG9wQ2xhc3MiLCJjdXJyZW50UGF0aCJdLFsiYWN0aXZpdHktbmF2IiwiYWN0aW9uLWxpc3QgYWN0aXZpdHktbGlzdCBuYXYtc3RhY2tlZCIsWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VlX21lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbInBvc3RzIixbMjQsWyJjYXRlZ29yeV9pZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbInRvcGljcyIsWzI0LFsiY2F0ZWdvcnlfaWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfbWVudGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtYWN0aXZpdHktZmlsdGVyIixudWxsLFtbImZpbHRlciIsImNhdGVnb3J5SWQiXSxbIm1lbnRpb25zIixbMjQsWyJjYXRlZ29yeV9pZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSJdLFsiZ3JvdXAtYWN0aXZpdHktYm90dG9tIiwiIiwibGkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9hY3Rpdml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhYiJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJhY3Rpdml0eS1uYXYiLCJhY3Rpb24tbGlzdCBhY3Rpdml0eS1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbInRhYnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sW1syMywxLFsicm91dGUiXV0sWzI0LFsibW9kZWwiLCJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFtbMjMsMSxbInRpdGxlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3VwL21hbmFnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UvaW50ZXJhY3Rpb24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWZvcm0gZm9ybS12ZXJ0aWNhbCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2Utc2F2ZS1idXR0b24iLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvaW50ZXJhY3Rpb24ifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvbWFuYWdlL2xvZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImxvZyJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsb2dzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tYW5hZ2UtbG9ncy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLWxvZ3MtZmlsdGVyIixudWxsLFtbImNsZWFyRmlsdGVyIiwidmFsdWUiLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhckZpbHRlciJdLG51bGxdLFsyNCxbImZpbHRlcnMiLCJhY3Rpb24iXV0sImFjdGlvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsImFjdGluZ191c2VyIl1dLCJhY3RpbmdfdXNlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsInRhcmdldF91c2VyIl1dLCJ0YXJnZXRfdXNlciJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cC1tYW5hZ2UtbG9ncy1maWx0ZXIiLG51bGwsW1siY2xlYXJGaWx0ZXIiLCJ2YWx1ZSIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmlsdGVyIl0sbnVsbF0sWzI0LFsiZmlsdGVycyIsInN1YmplY3QiXV0sInN1YmplY3QiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5ncm91cC1tYW5hZ2UtbG9ncyAuZ3JvdXAtbWFuYWdlLWxvZ3Mtcm93IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWFuYWdlLWxvZ3MiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmxvZ3MuYWN0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLmFjdGluZ191c2VyIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnRhcmdldF91c2VyIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1hbmFnZS5sb2dzLnN1YmplY3QiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWFuYWdlLmxvZ3Mud2hlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwibG9ncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLWxvZ3Mtcm93IixudWxsLFtbImxvZyIsImZpbHRlcnMiXSxbWzIzLDEsW11dLFsyNCxbImZpbHRlcnMiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5lbXB0eS5sb2dzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvbG9ncyJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tYW5hZ2UvbWVtYmVyc2hpcCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtZm9ybSBmb3JtLXZlcnRpY2FsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZ3JvdXBzLWZvcm0tbWVtYmVyc2hpcC1maWVsZHMiLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZ3JvdXAtbWFuYWdlLXNhdmUtYnV0dG9uIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToiZ3JvdXAvbWFuYWdlL21lbWJlcnNoaXAifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXAvbWFuYWdlL3Byb2ZpbGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzLWZvcm0gZm9ybS12ZXJ0aWNhbCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLXByb2ZpbGUtZmllbGRzIixudWxsLFtbIm1vZGVsIiwiZGlzYWJsZVNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImdyb3VwLW1hbmFnZS1zYXZlLWJ1dHRvbiIsbnVsbCxbWyJtb2RlbCIsInNhdmluZyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJzYXZpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tYW5hZ2UvcHJvZmlsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cC9tZXNzYWdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtZXNzYWdlcy1uYXYiLCJuYXYtc3RhY2tlZCBhY3Rpb24tbGlzdCIsWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsiZ3JvdXAubWVzc2FnZXMuaW5ib3giLFsyNCxbIm1vZGVsIiwibmFtZSJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmluYm94Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJncm91cC5tZXNzYWdlcy5hcmNoaXZlIixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5tZXNzYWdlcy5hcmNoaXZlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cC9tZXNzYWdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJncm91cHMvaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyb3VwIl0sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyJdLFsiZ3JvdXBzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMtaGVhZGVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJuZXciXSxudWxsXSwiYnRuLWRlZmF1bHQgZ3JvdXBzLWhlYWRlci1uZXcgcHVsbC1yaWdodCIsInBsdXMiLCJhZG1pbi5ncm91cHMubmV3LnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1oZWFkZXItZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSwiZ3JvdXBzLmluZGV4LmFsbCIsImdyb3Vwcy1oZWFkZXItZmlsdGVycy1uYW1lIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50IiwiY2xhc3MiLCJvbkNoYW5nZSIsIm9wdGlvbnMiXSxbWzI0LFsidHlwZSJdXSxbMjQsWyJ0eXBlcyJdXSwiZ3JvdXBzLWhlYWRlci1maWx0ZXJzLXR5cGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsidHlwZSJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJjbGVhcmFibGUiLCJub25lIl0sW3RydWUsImdyb3Vwcy5pbmRleC5maWx0ZXIiXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbIm1vZGVsIiwibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJsb2FkLW1vcmUiLG51bGwsW1sic2VsZWN0b3IiLCJhY3Rpb24iXSxbIi5ncm91cHMtYm94ZXMgLmdyb3VwLWJveCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1ib3hlcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIiwibW9kZWwiXSxbImdyb3VwLWJveCIsImdyb3VwLm1lbWJlcnMiLFsyMywxLFsibmFtZSJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWJveC1pbm5lciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8td3JhcHBlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJmbGFpcl91cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWF2YXRhci1mbGFpciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJhdmF0YXItZmxhaXIiLG51bGwsW1siZmxhaXJVUkwiLCJmbGFpckJnQ29sb3IiLCJmbGFpckNvbG9yIiwiZ3JvdXBOYW1lIl0sW1syMywxLFsiZmxhaXJfdXJsIl1dLFsyMywxLFsiZmxhaXJfYmdfY29sb3IiXV0sWzIzLDEsWyJmbGFpcl9jb2xvciJdXSxbMjMsMSxbIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImdyb3Vwcy1pbmZvIixudWxsLFtbImdyb3VwIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtdXNlci1jb3VudCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ1c2VyIl0sbnVsbF0sZmFsc2VdLFsxLFsyMywxLFsidXNlcl9jb3VudCJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtZGVzY3JpcHRpb24iXSxbOF0sWzEsWzIzLDEsWyJiaW9fZXhjZXJwdCJdXSx0cnVlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzaGlwIl0sWzhdLFswLCJcXG4iXSxbNCwiZ3JvdXAtbWVtYmVyc2hpcC1idXR0b24iLG51bGwsW1sidGFnTmFtZSIsIm1vZGVsIiwic2hvd0xvZ2luIl0sWyIiLFsyMywxLFtdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsiaXNfZ3JvdXBfb3duZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWdyb3VwLW93bmVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJzaGllbGQtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmlzX2dyb3VwX293bmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImlzX2dyb3VwX3VzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlzLWdyb3VwLW1lbWJlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2hlY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXguaXNfZ3JvdXBfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJwdWJsaWNfYWRtaXNzaW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LnB1YmxpYyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJpc1ByaXZhdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuaW5kZXgucHJpdmF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDEsWyJhdXRvbWF0aWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5pbmRleC5hdXRvbWF0aWMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImJhbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmNsb3NlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgICAgICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmluZGV4LmVtcHR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJncm91cHMvaW5kZXgifX0pLEVtYmVyLlRFTVBMQVRFU1siZ3JvdXBzL25ldyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiXSxbImdyb3Vwcy1uZXciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImgxIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmdyb3Vwcy5uZXcudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJociIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3Vwcy1mb3JtIGZvcm0tdmVydGljYWwiXSxbOF0sWzAsIlxcbiJdLFs0LCJncm91cHMtZm9ybS1wcm9maWxlLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCIsImRpc2FibGVTYXZlIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInNhdmluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzEwLCJmb3IiLCJvd25lci1zZWxlY3RvciJdLFs4XSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmFkZF9vd25lcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJ1c2VybmFtZXMiLCJjbGFzcyIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbWzI0LFsibW9kZWwiLCJvd25lclVzZXJuYW1lcyJdXSwiaW5wdXQteHhsYXJnZSIsImdyb3Vwcy5zZWxlY3Rvcl9wbGFjZWhvbGRlciIsIm93bmVyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwibWVtYmVyLXNlbGVjdG9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMubWVtYmVycy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXNlbGVjdG9yIixudWxsLFtbInVzZXJuYW1lcyIsImNsYXNzIiwicGxhY2Vob2xkZXJLZXkiLCJpZCJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lcyJdXSwiaW5wdXQteHhsYXJnZSIsImdyb3Vwcy5zZWxlY3Rvcl9wbGFjZWhvbGRlciIsIm1lbWJlci1zZWxlY3RvciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJncm91cHMtZm9ybS1tZW1iZXJzaGlwLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImdyb3Vwcy1mb3JtLWludGVyYWN0aW9uLWZpZWxkcyIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBidXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSwic3VibWl0IixbMjQsWyJzYXZpbmciXV0sImJ0biBidG4tcHJpbWFyeSBncm91cC1mb3JtLXNhdmUiLCJhZG1pbi5ncm91cHMubmV3LmNyZWF0ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsiZ3JvdXBzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjYW5jZWwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imdyb3Vwcy9uZXcifX0pLEVtYmVyLlRFTVBMQVRFU1siaGlkZS1tb2RhbCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzIyLCJoaWRlLW1vZGFsLXRyaWdnZXIiXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJoaWRlLW1vZGFsIn19KSxFbWJlci5URU1QTEFURVMuaW52aXRlcz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwib3V0bGV0Il0sZmFsc2VdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJpbnZpdGVzIn19KSxFbWJlci5URU1QTEFURVNbImludml0ZXMvc2hvdyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBpbnZpdGVzLXNob3cgY2xlYXJmaXgiXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzIyLCJ3ZWxjb21lVGl0bGUiXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0d28tY29sIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbC1pbWFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImltZyIsdHJ1ZV0sWzExLCJzcmMiLFsyMiwiaW52aXRlSW1hZ2VVcmwiXV0sWzhdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb2wtZm9ybSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic3VjY2Vzc01lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyMiwic3VjY2Vzc01lc3NhZ2UiXSx0cnVlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLmludml0ZWRfYnkiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJ1c2VyLWluZm8iLG51bGwsW1sidXNlciJdLFtbMjQsWyJpbnZpdGVkQnkiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyMiwieW91ckVtYWlsTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJleHRlcm5hbEF1dGhzRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLnNvY2lhbF9sb2dpbl9hdmFpbGFibGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0IHVzZXJuYW1lLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VybmFtZS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpZCIsIm5hbWUiLCJtYXhsZW5ndGgiLCJhdXRvY29tcGxldGUiXSxbWzI0LFsiYWNjb3VudFVzZXJuYW1lIl1dLCJuZXctYWNjb3VudC11c2VybmFtZSIsInVzZXJuYW1lIixbMjQsWyJtYXhVc2VybmFtZUxlbmd0aCJdXSwiZGlzY291cnNlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgIMKgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiIsImlkIl0sW1syNCxbInVzZXJuYW1lVmFsaWRhdGlvbiJdXSwidXNlcm5hbWUtdmFsaWRhdGlvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZ1bGxuYW1lUmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCBuYW1lLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJpbnZpdGVzLm5hbWVfbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpZCIsIm5hbWUiXSxbWzI0LFsiYWNjb3VudE5hbWUiXV0sIm5ldy1hY2NvdW50LW5hbWUiLCJuYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsIm5hbWVJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0IHBhc3N3b3JkLWlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiaW52aXRlcy5wYXNzd29yZF9sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicGFzc3dvcmQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwiaWQiLCJjYXBzTG9ja09uIl0sW1syNCxbImFjY291bnRQYXNzd29yZCJdXSwicGFzc3dvcmQiLCJuZXctYWNjb3VudC1wYXNzd29yZCIsWzI0LFsiY2Fwc0xvY2tPbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgIMKgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJwYXNzd29yZFZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyMiwicGFzc3dvcmRJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsiaW52aXRlcy5vcHRpb25hbF9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXBzLWxvY2std2FybmluZyAiLFsyOCwidW5sZXNzIixbWzI0LFsiY2Fwc0xvY2tPbiJdXSwiaW52aXNpYmxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZXhjbGFtYXRpb24tdHJpYW5nbGUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uY2Fwc19sb2NrX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWZpZWxkIixudWxsLFtbImZpZWxkIiwidmFsdWUiXSxbWzIzLDEsWyJmaWVsZCJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInN1Ym1pdCJdLG51bGxdLCJzdWJtaXQiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJpbnZpdGVzLmFjY2VwdF9pbnZpdGUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Imludml0ZXMvc2hvdyJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvYWN0aW9uLWxpc3QiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPGRpdiBjbGFzcz0ncG9zdC1hY3Rpb25zICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzc05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjI1fSxlbmQ6e2xpbmU6Mixjb2x1bW46Mzh9fX0pKSsiJz5cbiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiaWNvbiIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46Mn0sZW5kOntsaW5lOjMsY29sdW1uOjE3fX19KSkrIlxuIisobnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIiwiaW4iLCJwb3N0TnVtYmVycyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjJ9LGVuZDp7bGluZTo2LGNvbHVtbjoxMX19fSkpP286IiIpKyI8L2Rpdj5cbiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgIDxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjEzfSxlbmQ6e2xpbmU6NSxjb2x1bW46MjZ9fX0pKSsiLyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjoyN30sZW5kOntsaW5lOjUsY29sdW1uOjQxfX19KSkrIic+IyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0TnVtYmVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjo0NH0sZW5kOntsaW5lOjUsY29sdW1uOjU4fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdE51bWJlcnMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OCxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC9hY3Rpdml0eS1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPCIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0YWdOYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjoxfSxlbmQ6e2xpbmU6MSxjb2x1bW46MTJ9fX0pKSsnIGNsYXNzPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiY2xhc3MiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjIwfSxlbmQ6e2xpbmU6MSxjb2x1bW46Mjl9fX0pKSsiICIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjb2xkLWFnZS1jbGFzcyJdfHx0JiZ0WyJjb2xkLWFnZS1jbGFzcyJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5jcmVhdGVkQXQiLHtuYW1lOiJjb2xkLWFnZS1jbGFzcyIsaGFzaDp7Y2xhc3M6IiIsc3RhcnREYXRlOiJ0b3BpYy5idW1wZWRBdCJ9LGhhc2hUeXBlczp7Y2xhc3M6IlN0cmluZ0xpdGVyYWwiLHN0YXJ0RGF0ZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NsYXNzOnQsc3RhcnREYXRlOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MzB9LGVuZDp7bGluZToxLGNvbHVtbjo5OH19fSkpKycgYWN0aXZpdHkiIHRpdGxlPSInKyhudWxsIT0obz1uLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuYnVtcGVkQXRUaXRsZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MTE2fSxlbmQ6e2xpbmU6MSxjb2x1bW46MTQxfX19KSk/bzoiIikrJyI+XG4gIDxhIGNsYXNzPSJwb3N0LWFjdGl2aXR5IiBocmVmPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubGFzdFBvc3RVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjMzfSxlbmQ6e2xpbmU6Mixjb2x1bW46NTR9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXJlbGF0aXZlLWRhdGUifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e25hbWU6dH0sdHlwZXM6W10sY29udGV4dHM6W10sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46NH0sZW5kOntsaW5lOjMsY29sdW1uOjY2fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtZGF0ZSJdfHx0JiZ0WyJmb3JtYXQtZGF0ZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdCIse25hbWU6ImZvcm1hdC1kYXRlIixoYXNoOntub1RpdGxlOiJ0cnVlIixmb3JtYXQ6InRpbnkifSxoYXNoVHlwZXM6e25vVGl0bGU6IlN0cmluZ0xpdGVyYWwiLGZvcm1hdDoiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bm9UaXRsZTp0LGZvcm1hdDp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjR9LGVuZDp7bGluZTo0LGNvbHVtbjo2NX19fSkpKyI8L2E+XG48LyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0YWdOYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoyfSxlbmQ6e2xpbmU6Nixjb2x1bW46MTN9fX0pKSsiPlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJsaXN0L2NhdGVnb3J5LWNvbHVtbiJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7Y29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8dGQgY2xhc3M9J2NhdGVnb3J5Jz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiY2F0ZWdvcnktbGluayJdfHx0JiZ0WyJjYXRlZ29yeS1saW5rIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhdGVnb3J5Iix7bmFtZToiY2F0ZWdvcnktbGluayIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MjF9LGVuZDp7bGluZToxLGNvbHVtbjo0N319fSkpKyI8L3RkPlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJsaXN0L3Bvc3QtY291bnQtb3ItYmFkZ2VzIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtcG9zdC1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e25ld0RvdFRleHQ6Im5ld0RvdFRleHQiLHVybDoidG9waWMubGFzdFVucmVhZFVybCIsdW5zZWVuOiJ0b3BpYy51bnNlZW4iLG5ld1Bvc3RzOiJ0b3BpYy5kaXNwbGF5TmV3UG9zdHMiLHVucmVhZDoidG9waWMudW5yZWFkIn0saGFzaFR5cGVzOntuZXdEb3RUZXh0OiJQYXRoRXhwcmVzc2lvbiIsdXJsOiJQYXRoRXhwcmVzc2lvbiIsdW5zZWVuOiJQYXRoRXhwcmVzc2lvbiIsbmV3UG9zdHM6IlBhdGhFeHByZXNzaW9uIix1bnJlYWQ6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuZXdEb3RUZXh0OnQsdXJsOnQsdW5zZWVuOnQsbmV3UG9zdHM6dCx1bnJlYWQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZToyLGNvbHVtbjoxNDZ9fX0pKSsiXG4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5wb3N0cy1jb3VudC1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e3RhZ05hbWU6ImRpdiIsdG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0YWdOYW1lOiJTdHJpbmdMaXRlcmFsIix0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RhZ05hbWU6dCx0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46Mn0sZW5kOntsaW5lOjQsY29sdW1uOjYxfX19KSkrIlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnNob3dCYWRnZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLnByb2dyYW0oMyxzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MH0sZW5kOntsaW5lOjUsY29sdW1uOjd9fX0pKT9vOiIifSx1c2VEYXRhOiEwfSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvcG9zdGVycy1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyLm1vcmVDb3VudCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUucHJvZ3JhbSg0LHMsMCksdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjoyfSxlbmQ6e2xpbmU6Nyxjb2x1bW46OX19fSkpP286IiJ9LDI6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgIDxhIGNsYXNzPSJwb3N0ZXJzLW1vcmUtY291bnQiPicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIubW9yZUNvdW50Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjozNH0sZW5kOntsaW5lOjQsY29sdW1uOjU0fX19KSkrIjwvYT5cbiJ9LDQ6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgIDxhIGhyZWY9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIudXNlci5wYXRoIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjoxM30sZW5kOntsaW5lOjYsY29sdW1uOjMzfX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIudXNlci51c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46NTF9LGVuZDp7bGluZTo2LGNvbHVtbjo3NX19fSkpKyciIGNsYXNzPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyLmV4dHJhQ2xhc3NlcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46ODR9LGVuZDp7bGluZTo2LGNvbHVtbjoxMDd9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5hdmF0YXJ8fHQmJnQuYXZhdGFyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0ZXIiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToic21hbGwiLG5hbWVQYXRoOiJ1c2VyLm5hbWUiLHVzZXJuYW1lUGF0aDoidXNlci51c2VybmFtZSIsYXZhdGFyVGVtcGxhdGVQYXRoOiJ1c2VyLmF2YXRhcl90ZW1wbGF0ZSJ9LGhhc2hUeXBlczp7aW1hZ2VTaXplOiJTdHJpbmdMaXRlcmFsIixuYW1lUGF0aDoiU3RyaW5nTGl0ZXJhbCIsdXNlcm5hbWVQYXRoOiJTdHJpbmdMaXRlcmFsIixhdmF0YXJUZW1wbGF0ZVBhdGg6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2ltYWdlU2l6ZTp0LG5hbWVQYXRoOnQsdXNlcm5hbWVQYXRoOnQsYXZhdGFyVGVtcGxhdGVQYXRoOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTA5fSxlbmQ6e2xpbmU6Nixjb2x1bW46MjM2fX19KSkrIjwvYT5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRkIGNsYXNzPSdwb3N0ZXJzJz5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwicG9zdGVyIiwiaW4iLCJwb3N0ZXJzIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Mixjb2x1bW46MH0sZW5kOntsaW5lOjgsY29sdW1uOjl9fX0pKT9vOiIiKSsiPC90ZD5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC9wb3N0cy1jb3VudC1jb2x1bW4iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iPCIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRhZ05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjF9LGVuZDp7bGluZToxLGNvbHVtbjoxN319fSkpKyIgY2xhc3M9J251bSBwb3N0cy1tYXAgcG9zdHMgIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcubGlrZXNIZWF0Iix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo0NX0sZW5kOntsaW5lOjEsY29sdW1uOjYzfX19KSkrIicgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo3Mn0sZW5kOntsaW5lOjEsY29sdW1uOjg2fX19KSkrIic+XG4gIDxhIGhyZWYgY2xhc3M9J3Bvc3RzLW1hcCBiYWRnZS1wb3N0cyAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5saWtlc0hlYXQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjM5fSxlbmQ6e2xpbmU6Mixjb2x1bW46NTd9fX0pKSsiJz5cbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXJlcGx5LWNvdW50In0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntuYW1lOnR9LHR5cGVzOltdLGNvbnRleHRzOltdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTozLGNvbHVtbjo2Mn19fSkpKyJcbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5udW1iZXJ8fHQmJnQubnVtYmVyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5yZXBseUNvdW50Iix7bmFtZToibnVtYmVyIixoYXNoOntub1RpdGxlOiJ0cnVlIn0saGFzaFR5cGVzOntub1RpdGxlOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntub1RpdGxlOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NH0sZW5kOntsaW5lOjQsY29sdW1uOjQ2fX19KSkrIlxuICA8L2E+XG48LyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnRhZ05hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjJ9LGVuZDp7bGluZTo2LGNvbHVtbjoxOH19fSkpKyI+XG4ifSx1c2VEYXRhOiEwfSksRGlzY291cnNlLlJBV19URU1QTEFURVNbImxpc3QvdG9waWMtZXhjZXJwdCJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybicgIDxkaXYgY2xhc3M9InRvcGljLWV4Y2VycHQiPlxuICAgICcrKG51bGwhPShvPShuWyJkaXItc3BhbiJdfHx0JiZ0WyJkaXItc3BhbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5lc2NhcGVkRXhjZXJwdCIse25hbWU6ImRpci1zcGFuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6Myxjb2x1bW46Mzl9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5leGNlcnB0VHJ1bmNhdGVkIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NH0sZW5kOntsaW5lOjYsY29sdW1uOjExfX19KSk/bzoiIikrIiAgPC9kaXY+XG4ifSwyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJyAgICAgIDxhIGhyZWY9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjE1fSxlbmQ6e2xpbmU6NSxjb2x1bW46Mjh9fX0pKSsnIj4nK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInJlYWRfbW9yZSIse25hbWU6ImkxOG4iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46MzB9LGVuZDp7bGluZTo1LGNvbHVtbjo1MH19fSkpKyI8L2E+XG4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmhhc0V4Y2VycHQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OCxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC90b3BpYy1saXN0LWl0ZW0iXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICA8dGQgY2xhc3M9ImJ1bGstc2VsZWN0Ij5cbiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJidWxrLXNlbGVjdCI+XG4gIDwvdGQ+XG4nfSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIGUuZXNjYXBlRXhwcmVzc2lvbigoblsidG9waWMtZmVhdHVyZWQtbGluayJdfHx0JiZ0WyJ0b3BpYy1mZWF0dXJlZC1saW5rIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToidG9waWMtZmVhdHVyZWQtbGluayIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjAsY29sdW1uOjR9LGVuZDp7bGluZToyMCxjb2x1bW46MzR9fX0pKX0sNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtcG9zdC1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e25ld0RvdFRleHQ6Im5ld0RvdFRleHQiLHVybDoidG9waWMubGFzdFVucmVhZFVybCIsdW5zZWVuOiJ0b3BpYy51bnNlZW4iLG5ld1Bvc3RzOiJ0b3BpYy5kaXNwbGF5TmV3UG9zdHMiLHVucmVhZDoidG9waWMudW5yZWFkIn0saGFzaFR5cGVzOntuZXdEb3RUZXh0OiJQYXRoRXhwcmVzc2lvbiIsdXJsOiJQYXRoRXhwcmVzc2lvbiIsdW5zZWVuOiJQYXRoRXhwcmVzc2lvbiIsbmV3UG9zdHM6IlBhdGhFeHByZXNzaW9uIix1bnJlYWQ6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuZXdEb3RUZXh0OnQsdXJsOnQsdW5zZWVuOnQsbmV3UG9zdHM6dCx1bnJlYWQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI3LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjcsY29sdW1uOjE0OX19fSkpfSw3OmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5pc1Bpbm5lZFVuY2F0ZWdvcml6ZWQiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzIsY29sdW1uOjZ9LGVuZDp7bGluZTozNCxjb2x1bW46MTd9fX0pKT9vOiIifSw4OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImNhdGVnb3J5LWxpbmsiXXx8dCYmdFsiY2F0ZWdvcnktbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5jYXRlZ29yeSIse25hbWU6ImNhdGVnb3J5LWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMzLGNvbHVtbjo4fSxlbmQ6e2xpbmU6MzMsY29sdW1uOjQwfX19KSkrIlxuIn0sMTA6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImxpc3QudG9waWMtZXhjZXJwdCIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0MCxjb2x1bW46NH0sZW5kOntsaW5lOjQwLGNvbHVtbjo0NH19fSkpKyJcbiJ9LDEyOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5wb3N0ZXJzLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7cG9zdGVyczoidG9waWMuZmVhdHVyZWRVc2VycyJ9LGhhc2hUeXBlczp7cG9zdGVyczoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3Bvc3RlcnM6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ1LGNvbHVtbjoyfSxlbmQ6e2xpbmU6NDUsY29sdW1uOjU5fX19KSkrIlxuIn0sMTQ6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nICA8dGQgY2xhc3M9Im51bSBsaWtlcyI+XG4nKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoYXNMaWtlcyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDE1LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1Mixjb2x1bW46NH0sZW5kOntsaW5lOjU2LGNvbHVtbjoxMX19fSkpP286IiIpKyIgIDwvdGQ+XG4ifSwxNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuc3VtbWFyeVVybCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NTMsY29sdW1uOjE1fSxlbmQ6e2xpbmU6NTMsY29sdW1uOjM1fX19KSkrIic+XG4gICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLm51bWJlcnx8dCYmdC5udW1iZXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxpa2VfY291bnQiLHtuYW1lOiJudW1iZXIiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjU0LGNvbHVtbjo4fSxlbmQ6e2xpbmU6NTQsY29sdW1uOjM1fX19KSkrIiAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoZWFydCIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1NCxjb2x1bW46MzZ9LGVuZDp7bGluZTo1NCxjb2x1bW46NTR9fX0pKSsiXG4gICAgICA8L2E+XG4ifSwxNzpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybicgIDx0ZCBjbGFzcz0ibnVtIGxpa2VzIj5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImhhc09wTGlrZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjIsY29sdW1uOjR9LGVuZDp7bGluZTo2Nixjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L3RkPlxuIn0sMTg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAgICAgPGEgaHJlZj0nIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnN1bW1hcnlVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYzLGNvbHVtbjoxNX0sZW5kOntsaW5lOjYzLGNvbHVtbjozNX19fSkpKyInPlxuICAgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5udW1iZXJ8fHQmJnQubnVtYmVyfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5vcF9saWtlX2NvdW50Iix7bmFtZToibnVtYmVyIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2NCxjb2x1bW46OH0sZW5kOntsaW5lOjY0LGNvbHVtbjozOH19fSkpKyIgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiaGVhcnQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NjQsY29sdW1uOjM5fSxlbmQ6e2xpbmU6NjQsY29sdW1uOjU3fX19KSkrIlxuICAgICAgPC9hPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybihudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJidWxrU2VsZWN0RW5hYmxlZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjB9LGVuZDp7bGluZTo1LGNvbHVtbjo3fX19KSk/bzoiIikrIlxuPHRkIGNsYXNzPSdtYWluLWxpbmsgY2xlYXJmaXgnIGNvbHNwYW49XCIxXCI+XG4gIDxzcGFuIGNsYXNzPSdsaW5rLXRvcC1saW5lJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsicmF3LXBsdWdpbi1vdXRsZXQiXXx8dCYmdFsicmF3LXBsdWdpbi1vdXRsZXQiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSx7bmFtZToicmF3LXBsdWdpbi1vdXRsZXQiLGhhc2g6e25hbWU6InRvcGljLWxpc3QtYmVmb3JlLXN0YXR1cyJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bmFtZTp0fSx0eXBlczpbXSxjb250ZXh0czpbXSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNixjb2x1bW46NH0sZW5kOntsaW5lOjE2LGNvbHVtbjo1OH19fSkpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1zdGF0dXMiLHtuYW1lOiJyYXciLGhhc2g6e3RvcGljOiJ0b3BpYyJ9LGhhc2hUeXBlczp7dG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOnt0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTcsY29sdW1uOjR9LGVuZDp7bGluZToxNyxjb2x1bW46Mzl9fX0pKStlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWxpbmsiXXx8dCYmdFsidG9waWMtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWxpbmsiLGhhc2g6e2NsYXNzOiJyYXctbGluayByYXctdG9waWMtbGluayJ9LGhhc2hUeXBlczp7Y2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2NsYXNzOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTgsY29sdW1uOjR9LGVuZDp7bGluZToxOCxjb2x1bW46NTd9fX0pKSsobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuZmVhdHVyZWRfbGluayIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjE5LGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjEsY29sdW1uOjEyfX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJyYXctcGx1Z2luLW91dGxldCJdfHx0JiZ0WyJyYXctcGx1Z2luLW91dGxldCJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LHtuYW1lOiJyYXctcGx1Z2luLW91dGxldCIsaGFzaDp7bmFtZToidG9waWMtbGlzdC1hZnRlci10aXRsZSJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bmFtZTp0fSx0eXBlczpbXSxjb250ZXh0czpbXSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyMixjb2x1bW46NH0sZW5kOntsaW5lOjIyLGNvbHVtbjo1Nn19fSkpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LnVucmVhZC1pbmRpY2F0b3IiLHtuYW1lOiJyYXciLGhhc2g6e3VucmVhZENsYXNzOiJ1bnJlYWRDbGFzcyIsdG9waWNJZDoidG9waWMuaWQiLGluY2x1ZGVVbnJlYWRJbmRpY2F0b3I6ImluY2x1ZGVVbnJlYWRJbmRpY2F0b3IifSxoYXNoVHlwZXM6e3VucmVhZENsYXNzOiJQYXRoRXhwcmVzc2lvbiIsdG9waWNJZDoiUGF0aEV4cHJlc3Npb24iLGluY2x1ZGVVbnJlYWRJbmRpY2F0b3I6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOnt1bnJlYWRDbGFzczp0LHRvcGljSWQ6dCxpbmNsdWRlVW5yZWFkSW5kaWNhdG9yOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyMyxjb2x1bW46NH0sZW5kOntsaW5lOjI1LGNvbHVtbjo2MX19fSkpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93VG9waWNQb3N0QmFkZ2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjYsY29sdW1uOjR9LGVuZDp7bGluZToyOCxjb2x1bW46MTJ9fX0pKT9vOiIiKSsnICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9ImxpbmstYm90dG9tLWxpbmUiPlxuJysobnVsbCE9KG89bi51bmxlc3MuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImhpZGVDYXRlZ29yeSIse25hbWU6InVubGVzcyIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg3LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozMSxjb2x1bW46NH0sZW5kOntsaW5lOjM1LGNvbHVtbjoxNX19fSkpP286IiIpKyIgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImRpc2NvdXJzZS10YWdzIl18fHQmJnRbImRpc2NvdXJzZS10YWdzIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToiZGlzY291cnNlLXRhZ3MiLGhhc2g6e3RhZ3NGb3JVc2VyOiJ0YWdzRm9yVXNlciIsbW9kZToibGlzdCJ9LGhhc2hUeXBlczp7dGFnc0ZvclVzZXI6IlBhdGhFeHByZXNzaW9uIixtb2RlOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOnt0YWdzRm9yVXNlcjp0LG1vZGU6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNixjb2x1bW46NH0sZW5kOntsaW5lOjM2LGNvbHVtbjo2NH19fSkpKyJcbiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LmFjdGlvbi1saXN0Iix7bmFtZToicmF3IixoYXNoOntpY29uOiJoZWFydCIsY2xhc3NOYW1lOiJsaWtlcyIscG9zdE51bWJlcnM6InRvcGljLmxpa2VkX3Bvc3RfbnVtYmVycyIsdG9waWM6InRvcGljIn0saGFzaFR5cGVzOntpY29uOiJTdHJpbmdMaXRlcmFsIixjbGFzc05hbWU6IlN0cmluZ0xpdGVyYWwiLHBvc3ROdW1iZXJzOiJQYXRoRXhwcmVzc2lvbiIsdG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntpY29uOnQsY2xhc3NOYW1lOnQscG9zdE51bWJlcnM6dCx0b3BpYzp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MzcsY29sdW1uOjR9LGVuZDp7bGluZTozNyxjb2x1bW46MTEwfX19KSkrIlxuICA8L2Rpdj5cbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImV4cGFuZFBpbm5lZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEwLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozOSxjb2x1bW46Mn0sZW5kOntsaW5lOjQxLGNvbHVtbjo5fX19KSk/bzoiIikrIjwvdGQ+XG5cbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dQb3N0ZXJzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjowfSxlbmQ6e2xpbmU6NDYsY29sdW1uOjd9fX0pKT9vOiIiKSsiXG4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJsaXN0LnBvc3RzLWNvdW50LWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0OCxjb2x1bW46MH0sZW5kOntsaW5lOjQ4LGNvbHVtbjo0NX19fSkpKyJcblxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic2hvd0xpa2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTQscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUwLGNvbHVtbjowfSxlbmQ6e2xpbmU6NTgsY29sdW1uOjd9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93T3BMaWtlcyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDE3LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2MCxjb2x1bW46MH0sZW5kOntsaW5lOjY4LGNvbHVtbjo3fX19KSk/bzoiIikrJ1xuPHRkIGNsYXNzPSJudW0gdmlld3MgJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnZpZXdzSGVhdCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NzAsY29sdW1uOjIxfSxlbmQ6e2xpbmU6NzAsY29sdW1uOjQwfX19KSkrJyI+JytlLmVzY2FwZUV4cHJlc3Npb24oKG4ubnVtYmVyfHx0JiZ0Lm51bWJlcnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMudmlld3MiLHtuYW1lOiJudW1iZXIiLGhhc2g6e251bWJlcktleToidmlld3NfbG9uZyJ9LGhhc2hUeXBlczp7bnVtYmVyS2V5OiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntudW1iZXJLZXk6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3MCxjb2x1bW46NDJ9LGVuZDp7bGluZTo3MCxjb2x1bW46ODd9fX0pKSsiPC90ZD5cblxuIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC5hY3Rpdml0eS1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e3RhZ05hbWU6InRkIixjbGFzczoibnVtIix0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3RhZ05hbWU6IlN0cmluZ0xpdGVyYWwiLGNsYXNzOiJTdHJpbmdMaXRlcmFsIix0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RhZ05hbWU6dCxjbGFzczp0LHRvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3Mixjb2x1bW46MH0sZW5kOntsaW5lOjcyLGNvbHVtbjo2N319fSkpKyJcbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC91bnJlYWQtaW5kaWNhdG9yIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxzcGFuIGNsYXNzPSdiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gdW5yZWFkLWluZGljYXRvciBpbmRpY2F0b3ItdG9waWMtIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljSWQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjc5fSxlbmQ6e2xpbmU6Mixjb2x1bW46OTB9fX0pKSsiICIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1bnJlYWRDbGFzcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Mixjb2x1bW46OTF9LGVuZDp7bGluZToyLGNvbHVtbjoxMDZ9fX0pKSsiJyB0aXRsZT0nIitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy51bnJlYWRfaW5kaWNhdG9yIix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoxMTV9LGVuZDp7bGluZToyLGNvbHVtbjoxNDh9fX0pKSsiJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJhc3RlcmlzayIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6Myxjb2x1bW46MjZ9fX0pKSsiXG4gIDwvc3Bhbj4ifSxjb21waWxlcjpbOCwiPj0gNC4zLjAiXSxtYWluOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImluY2x1ZGVVbnJlYWRJbmRpY2F0b3IiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6NSxjb2x1bW46OH19fSkpP286IiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibGlzdC92aXNpdGVkLWxpbmUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICA8dHIgY2xhc3M9J3RvcGljLWxpc3QtaXRlbS1zZXBhcmF0b3InPlxuICAgIDx0ZCBjb2xzcGFuPVwiNlwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWNzLm5ld19tZXNzYWdlc19tYXJrZXIiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjh9LGVuZDp7bGluZTo1LGNvbHVtbjo0NX19fSkpKyJcbiAgICAgIDwvc3Bhbj5cbiAgICA8L3RkPlxuICA8L3RyPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiBudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmlzTGFzdFZpc2l0ZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6OSxjb2x1bW46N319fSkpP286IiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVMubG9hZGluZz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyMiwibG9hZGluZy1zcGlubmVyIl0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibG9hZGluZyJ9fSksRW1iZXIuVEVNUExBVEVTWyJsb2dpbi1wcmVmZXJlbmNlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9naW4udG9fY29udGludWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJwIix0cnVlXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogMWVtIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5wcmVmZXJlbmNlcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sImxvZ19pbiJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3NzbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZvcmdvdFBhc3N3b3JkIl0sbnVsbF0sImxvZ2luLmZvcmdvdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJsb2dpbi1wcmVmZXJlbmNlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0Il0sInN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiaGFzSW5jb21pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctbW9yZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIGNsaWNrYWJsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI0LFsic2hvd0luc2VydGVkIl1dXV0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvdW50LWkxOG4iLG51bGwsW1sia2V5Iiwic3VmZml4IiwiY291bnQiXSxbInRvcGljX2NvdW50XyIsImxhdGVzdCIsWzI0LFsiaW5jb21pbmdDb3VudCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidG9waWMtbGlzdC1pdGVtICIsWzI4LCJpZiIsW1syMywxLFsiYXJjaGl2ZWQiXV0sImFyY2hpdmVkIl0sbnVsbF0sIiAiLFsyOCwiaWYiLFtbMjMsMSxbInZpc2l0ZWQiXV0sInZpc2l0ZWQiXSxudWxsXV1dXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyMywxLFsiaWQiXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibWFpbi1saW5rIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtc3RhdHVzIixudWxsLFtbInRvcGljIl0sW1syMywxLFtdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1saW5rIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC91bnJlYWQtaW5kaWNhdG9yIl0sW1siaW5jbHVkZVVucmVhZEluZGljYXRvciIsInRvcGljSWQiLCJ1bnJlYWRDbGFzcyJdLFtbMjQsWyJzaG93VW5yZWFkSW5kaWNhdG9yIl1dLFsyMywxLFsiaWQiXV0sWzI4LCJpZiIsW1syMywxLFsidW5yZWFkX2J5X2dyb3VwX21lbWJlciJdXSwiIiwicmVhZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJ1bnNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImhhc0V4Y2VycHQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtZXhjZXJwdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzIzLDEsWyJleGNlcnB0Il1dLHRydWVdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImV4Y2VycHRUcnVuY2F0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzQsInVubGVzcyIsW1syMywxLFsiY2FuQ2xlYXJQaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsMSxbInVybCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZWFkX21vcmUiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbImNhbkNsZWFyUGluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWMuY2xlYXJfcGluLmhlbHAiXSxudWxsXV1dXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjbGVhclBpbiIsWzIzLDEsW11dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5jbGVhcl9waW4udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtcmlnaHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyYXciLFsibGlzdC9wb3N0LWNvdW50LW9yLWJhZGdlcyJdLFtbInRvcGljIiwicG9zdEJhZGdlc0VuYWJsZWQiXSxbWzIzLDEsW11dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWl0ZW0tc3RhdHMgY2xlYXJmaXgiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXNjb3Vyc2UtdGFncyIsW1syMywxLFtdXV0sW1sibW9kZSIsInRhZ3NGb3JVc2VyIl0sWyJsaXN0IixbMjQsWyJ0YWdzRm9yVXNlciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInB1bGwtcmlnaHQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJhdyIsWyJsaXN0L2FjdGl2aXR5LWNvbHVtbiJdLFtbInRvcGljIiwidGFnTmFtZSIsImNsYXNzIl0sW1syMywxLFtdXSwiZGl2IiwibnVtIGFjdGl2aXR5IGxhc3QiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyOSxbWzIzLDEsWyJsYXN0UG9zdFVybCJdXV1dXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJsYXN0X3Bvc3QiXSxudWxsXSwiOiAiLFsyOCwicmF3LWRhdGUiLFtbMjMsMSxbImJ1bXBlZF9hdCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyMywxLFsibGFzdF9wb3N0ZXJfdXNlcm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJoaWRlQ2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnkiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJjaG9vc2VfdG9waWMubm9uZV9mb3VuZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9iYXNpYy10b3BpYy1saXN0In19KSxFbWJlci5URU1QTEFURVNbIm1vYmlsZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtb25seSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiYyIsInN1YmNhdGVnb3J5Iiwic3ViY2F0ZWdvcnkiLCJzdWJzdWJjYXRlZ29yeSIsInQiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY2F0ZWdvcnktbGlzdCAiLFsyOCwiaWYiLFtbMjQsWyJzaG93VG9waWNzIl1dLCJ3aXRoLXRvcGljcyJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImRhdGEtY2F0ZWdvcnktaWQiLFsyMywxLFsiaWQiXV1dLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1saXN0LWl0ZW0gY2F0ZWdvcnkiXSxbMTEsInN0eWxlIixbMjgsImJvcmRlci1jb2xvciIsW1syMywxLFsiY29sb3IiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY2xhc3MiLCJtYWluLWxpbmsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXRpdGxlLWxpbmsiLG51bGwsW1siY2F0ZWdvcnkiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzIzLDEsWyJkZXNjcmlwdGlvbl9leGNlcnB0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWRlc2NyaXB0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNvbHNwYW4iLCIzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbImRlc2NyaXB0aW9uX2V4Y2VycHQiXV0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syMywxLFsidG9waWNzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtb2JpbGUtY2F0ZWdvcnktdG9waWMiLG51bGwsW1sidG9waWMiXSxbWzIzLDUsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImlzR3JhbmRQYXJlbnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjMsMSxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzIzLDEsWyJpZCJdXV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3J5LWxpc3QtaXRlbSBjYXRlZ29yeSJdLFsxMSwic3R5bGUiLFsyOCwiYm9yZGVyLWNvbG9yIixbWzIzLDMsWyJjb2xvciJdXV0sbnVsbF1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS10aXRsZS1saW5rIixudWxsLFtbInRhZ05hbWUiLCJjYXRlZ29yeSJdLFsiaDQiLFsyMywzLFtdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3JpZXMtbGlzdCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDMsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic3ViY2F0ZWdvcmllcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjMsMyxbInN1YmNhdGVnb3JpZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syMyw0LFsiaXNNdXRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDQsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzRdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywxLFsic3ViY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJzdWJjYXRlZ29yaWVzLWxpc3QiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1YmNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzIzLDEsWyJzdWJjYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjMsMixbImlzTXV0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywyLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzcsImZpZ3VyZSIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsiYWxsX3RpbWVfZGVzYyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMywxLFsidG9waWNzX2FsbF90aW1lIl1dXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywiZmlnY2FwdGlvbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJhbGxfdGltZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMSxbInBpY2tNb250aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJmaWd1cmUiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbIm1vbnRoX2Rlc2MiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjMsMSxbInRvcGljc19tb250aCJdXV0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzcsImZpZ2NhcHRpb24iLHRydWVdLFs4XSxbMCwiLyAiXSxbMSxbMjgsImkxOG4iLFsibW9udGgiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywxLFsicGlja1dlZWsiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJmaWd1cmUiLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbIndlZWtfZGVzYyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMywxLFsidG9waWNzX3dlZWsiXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdLFs3LCJmaWdjYXB0aW9uIix0cnVlXSxbOF0sWzAsIi8gIl0sWzEsWzI4LCJpMThuIixbIndlZWsiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9jYXRlZ29yaWVzLW9ubHkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvY2F0ZWdvcmllcy13aXRoLWZlYXR1cmVkLXRvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJjYXRlZ29yaWVzLW9ubHkiLG51bGwsW1siY2F0ZWdvcmllcyIsImxhdGVzdFRvcGljT25seSIsInNob3dUb3BpY3MiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXSxbMjQsWyJsYXRlc3RUb3BpY09ubHkiXV0sInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9jb21wb25lbnRzL2NhdGVnb3JpZXMtd2l0aC1mZWF0dXJlZC10b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvZGlyZWN0b3J5LWl0ZW0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidXNlci1pbmZvIixudWxsLFtbInVzZXIiXSxbWzI0LFsiaXRlbSIsInVzZXIiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwiaWNvbiJdLFtbMjQsWyJpdGVtIiwibGlrZXNfcmVjZWl2ZWQiXV0sImRpcmVjdG9yeS5saWtlc19yZWNlaXZlZCIsImhlYXJ0Il1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJpY29uIl0sW1syNCxbIml0ZW0iLCJsaWtlc19naXZlbiJdXSwiZGlyZWN0b3J5Lmxpa2VzX2dpdmVuIiwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJpdGVtIiwidG9waWNfY291bnQiXV0sImRpcmVjdG9yeS50b3BpY19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIml0ZW0iLCJwb3N0X2NvdW50Il1dLCJkaXJlY3RvcnkucG9zdF9jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIml0ZW0iLCJ0b3BpY3NfZW50ZXJlZCJdXSwiZGlyZWN0b3J5LnRvcGljc19lbnRlcmVkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsiaXRlbSIsInBvc3RzX3JlYWQiXV0sImRpcmVjdG9yeS5wb3N0c19yZWFkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsiaXRlbSIsImRheXNfdmlzaXRlZCJdXSwiZGlyZWN0b3J5LmRheXNfdmlzaXRlZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZVJlYWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCIsInR5cGUiXSxbWzI0LFsiaXRlbSIsInRpbWVfcmVhZCJdXSwiZGlyZWN0b3J5LnRpbWVfcmVhZCIsImR1cmF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvY29tcG9uZW50cy9kaXJlY3RvcnktaXRlbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvY29tcG9uZW50cy9tb2JpbGUtbmF2Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyImZGVmYXVsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2VsZWN0ZWRIdG1sIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiZXhwYW5kZXIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFeHBhbmRlZCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJzZWxlY3RlZEh0bWwiXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNhcmV0LWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywidWwiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImRyb3AgIixbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImV4cGFuZGVkIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbMTQsMV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9jb21wb25lbnRzL21vYmlsZS1uYXYifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1iYXIiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImMiLCJuYXZJdGVtIl0sInN0YXRlbWVudHMiOltbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXZpZ2F0aW9uLXRvZ2dsZSJdLFs4XSxbMCwiXFxuICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJ0b2dnbGUtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZURyb3AiXV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI0LFsic2VsZWN0ZWROYXZJdGVtIiwiZGlzcGxheU5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkLWljb24iLFsiY2FyZXQtZG93biJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXhwYW5kZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInVsIix0cnVlXSxbMTAsImNsYXNzIiwiZHJvcCJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJuYXZJdGVtcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwibmF2aWdhdGlvbi1pdGVtIixudWxsLFtbImNvbnRlbnQiLCJmaWx0ZXJNb2RlIiwiY2F0ZWdvcnkiXSxbWzIzLDIsW11dLFsyNCxbImZpbHRlck1vZGUiXV0sWzI0LFsiY2F0ZWdvcnkiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzQsImVhY2giLFtbMjQsWyJjb25uZWN0b3JzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwicGx1Z2luLWNvbm5lY3RvciIsbnVsbCxbWyJjb25uZWN0b3IiLCJjbGFzcyIsInRhZ05hbWUiLCJhcmdzIl0sW1syMywxLFtdXSxbMjMsMSxbImNsYXNzTmFtZXMiXV0sImxpIixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiLCJmaWx0ZXJNb2RlIl0sW1syNCxbImNhdGVnb3J5Il1dLFsyNCxbImZpbHRlck1vZGUiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1iYXIifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2Rpc2NvdmVyeS9jYXRlZ29yaWVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZGlzY292ZXJ5LWNhdGVnb3JpZXMiLG51bGwsW1sicmVmcmVzaCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVmcmVzaCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJjb21wb25lbnQiLFtbMjQsWyJjYXRlZ29yeVBhZ2VTdHlsZSJdXV0sW1siY2F0ZWdvcmllcyIsImxhdGVzdFRvcGljT25seSIsInRvcGljcyJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3JpZXMiXV0sWzI0LFsibGF0ZXN0VG9waWNPbmx5Il1dLFsyNCxbIm1vZGVsIiwidG9waWNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS9kaXNjb3ZlcnkvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2JpbGUvZGlzY292ZXJ5L3RvcGljcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZGlzY292ZXJ5VG9waWNMaXN0Il0sInN0YXRlbWVudHMiOltbNCwiZGlzY292ZXJ5LXRvcGljcy1saXN0IixudWxsLFtbIm1vZGVsIiwicmVmcmVzaCIsImluY29taW5nQ291bnQiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidG9wIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1saXN0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJhY3Rpb24iXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQZXJpb2QiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImhhc0luY29taW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIGNsaWNrYWJsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dJbnNlcnRlZCJdXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsInN1ZmZpeCIsImNvdW50Il0sWyJ0b3BpY19jb3VudF8iLFsyNCxbInRvcGljVHJhY2tpbmdTdGF0ZSIsImZpbHRlciJdXSxbMjQsWyJ0b3BpY1RyYWNraW5nU3RhdGUiLCJpbmNvbWluZ0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImhhc1RvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwidG9waWMtbGlzdCIsbnVsbCxbWyJoaWdobGlnaHRMYXN0VmlzaXRlZCIsInNob3dQb3N0ZXJzIiwiaGlkZUNhdGVnb3J5Iiwib3JkZXIiLCJhc2NlbmRpbmciLCJ0b3BpY3MiLCJleHBhbmRHbG9iYWxseVBpbm5lZCIsImV4cGFuZEFsbFBpbm5lZCIsInNjcm9sbE9uTG9hZCIsIm9uU2Nyb2xsIiwiY2F0ZWdvcnkiXSxbdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwiaGlkZUNhdGVnb3J5Il1dLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzY2VuZGluZyJdXSxbMjQsWyJtb2RlbCIsInRvcGljcyJdXSxbMjQsWyJleHBhbmRHbG9iYWxseVBpbm5lZCJdXSxbMjQsWyJleHBhbmRBbGxQaW5uZWQiXV0sdHJ1ZSxbMjMsMSxbInNhdmVTY3JvbGxQb3NpdGlvbiJdXSxbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiXFxuIl0sWzcsImZvb3RlciIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcGljLWxpc3QtYm90dG9tIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYWxsTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dEaXNtaXNzUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwidGl0bGUiLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQgZGlzbWlzcy1yZWFkIiwiZGlzbWlzcy10b3BpY3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNtaXNzUmVhZFBvc3RzIl0sbnVsbF0sInRvcGljcy5idWxrLmRpc21pc3NfdG9vbHRpcCIsInRvcGljcy5idWxrLmRpc21pc3NfYnV0dG9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dSZXNldE5ldyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBkaXNtaXNzLXJlYWQiLCJkaXNtaXNzLW5ldyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2V0TmV3Il0sbnVsbF0sImNoZWNrIiwidG9waWNzLmJ1bGsuZGlzbWlzc19uZXciXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJmb290ZXItbWVzc2FnZSIsbnVsbCxbWyJlZHVjYXRpb24iLCJtZXNzYWdlIl0sW1syNCxbImZvb3RlckVkdWNhdGlvbiJdXSxbMjQsWyJmb290ZXJNZXNzYWdlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibGF0ZXN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs0LCJpZiIsW1syNCxbImNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvcGljIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMuc3VnZ2VzdF9jcmVhdGVfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJ0b3AiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy5icm93c2VfYWxsX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiwgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5sYXRlc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRvcGljLnZpZXdfbGF0ZXN0X3RvcGljcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJmaWx0ZXJzLnRvcC5vdGhlcl9wZXJpb2RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidG9wLXBlcmlvZC1idXR0b25zIixudWxsLFtbInBlcmlvZCIsImFjdGlvbiJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBlcmlvZCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2Rpc2NvdmVyeS90b3BpY3MifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL2dyb3VwLWluZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1c2VyIl0sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJhdXRvY29tcGxldGUiLCJjbGFzcyJdLFtbMjQsWyJmaWx0ZXJJbnB1dCJdXSxbMjQsWyJmaWx0ZXJQbGFjZWhvbGRlciJdXSwiZGlzY291cnNlIiwiZ3JvdXAtdXNlcm5hbWUtZmlsdGVyIG5vLWJsdXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImdyb3VwLW1lbWJlcnMtbWFuYWdlIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NYW5hZ2VHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImdyb3VwLW1lbWJlcnMtZHJvcGRvd24iLG51bGwsW1sic2hvd0FkZE1lbWJlcnNNb2RhbCIsInNob3dCdWxrQWRkTW9kYWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0FkZE1lbWJlcnNNb2RhbCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dCdWxrQWRkTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIl0sWyJwbHVzIiwiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIiwiZ3JvdXAtbWVtYmVycy1hZGQiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dBZGRNZW1iZXJzTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImhhc01lbWJlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxvYWQtbW9yZSIsbnVsbCxbWyJzZWxlY3RvciIsImFjdGlvbiJdLFsiLmdyb3VwLW1lbWJlcnMgLnVzZXItaW5mbyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXJzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwibWVtYmVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVyIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1pbmZvIixudWxsLFtbInVzZXIiLCJza2lwTmFtZSJdLFtbMjMsMSxbXV0sWzI0LFsic2tpcE5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzQsImlmIixbWzIzLDEsWyJvd25lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywic3Ryb25nIix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtb3duZXItbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbImdyb3Vwcy5vd25lciJdLG51bGxdLGZhbHNlXSxbOV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cC1tZW1iZXItaW5mbyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsibGFzdF9wb3N0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRleHQiXSxbOF0sWzEsWzI4LCJib3VuZC1kYXRlIixbWzIzLDEsWyJsYXN0X3Bvc3RlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXAtbWVtYmVyLWluZm8iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhbk1hbmFnZUdyb3VwIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbWVtYmVyLWRyb3Bkb3duIixudWxsLFtbInJlbW92ZU1lbWJlciIsIm1ha2VPd25lciIsInJlbW92ZU93bmVyIiwibWVtYmVyIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVNZW1iZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWFrZU93bmVyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZU93bmVyIl0sbnVsbF0sWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLmVtcHR5Lm1lbWJlcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9iaWxlL2dyb3VwLWluZGV4In19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sibW9iaWxlL2xpc3QvdG9waWMtbGlzdC1pdGVtIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgPGRpdiBjbGFzcz0ncHVsbC1sZWZ0Jz5cbiAgICA8YSBocmVmPVwiIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxhc3RQb3N0VXJsIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjoxM30sZW5kOntsaW5lOjQsY29sdW1uOjM0fX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5sYXN0X3Bvc3Rlcl91c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46NTJ9LGVuZDp7bGluZTo0LGNvbHVtbjo4Mn19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmF2YXRhcnx8dCYmdC5hdmF0YXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLmxhc3RQb3N0ZXIiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToibGFyZ2UifSxoYXNoVHlwZXM6e2ltYWdlU2l6ZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7aW1hZ2VTaXplOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NCxjb2x1bW46ODR9LGVuZDp7bGluZTo0LGNvbHVtbjoxMjl9fX0pKSsiPC9hPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz0ncmlnaHQnPlxuIn0sMzpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICA8ZGl2PlxuIn0sNTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWZlYXR1cmVkLWxpbmsiXXx8dCYmdFsidG9waWMtZmVhdHVyZWQtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWZlYXR1cmVkLWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIyLGNvbHVtbjoxMH0sZW5kOntsaW5lOjIyLGNvbHVtbjo0MX19fSkpfSw3OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJzxzcGFuIGNsYXNzPSJ0b3BpYy1wb3N0LWJhZGdlcyI+Jm5ic3A7PHNwYW4gY2xhc3M9ImJhZGdlLW5vdGlmaWNhdGlvbiBuZXctdG9waWMiPjwvc3Bhbj48L3NwYW4+J30sOTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiBlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwibGlzdC50b3BpYy1leGNlcnB0Iix7bmFtZToicmF3IixoYXNoOnt0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3RvcGljOiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7dG9waWM6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI4LGNvbHVtbjoxMH0sZW5kOntsaW5lOjI4LGNvbHVtbjo1Mn19fSkpfSwxMTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjYXRlZ29yeSc+XG4gICAgICAgICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJjYXRlZ29yeS1saW5rIl18fHQmJnRbImNhdGVnb3J5LWxpbmsiXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMuY2F0ZWdvcnkiLHtuYW1lOiJjYXRlZ29yeS1saW5rIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozNyxjb2x1bW46MTR9LGVuZDp7bGluZTozNyxjb2x1bW46NDZ9fX0pKSsiXG4gICAgICAgICAgICA8L2Rpdj5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRkPiIrKG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJleHBhbmRQaW5uZWQiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5wcm9ncmFtKDMscywwKSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZTo5LGNvbHVtbjoyMH19fSkpP286IiIpKyIgICAgICAgIDxkaXYgY2xhc3M9J21haW4tbGluayc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bInJhdy1wbHVnaW4tb3V0bGV0Il18fHQmJnRbInJhdy1wbHVnaW4tb3V0bGV0Il18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30se25hbWU6InJhdy1wbHVnaW4tb3V0bGV0IixoYXNoOntuYW1lOiJ0b3BpYy1saXN0LWJlZm9yZS1zdGF0dXMifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e25hbWU6dH0sdHlwZXM6W10sY29udGV4dHM6W10sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTgsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MTgsY29sdW1uOjY0fX19KSkrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLXN0YXR1cyIse25hbWU6InJhdyIsaGFzaDp7dG9waWM6InRvcGljIn0saGFzaFR5cGVzOnt0b3BpYzoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e3RvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOSxjb2x1bW46MTB9LGVuZDp7bGluZToxOSxjb2x1bW46NDZ9fX0pKStlLmVzY2FwZUV4cHJlc3Npb24oKG5bInRvcGljLWxpbmsiXXx8dCYmdFsidG9waWMtbGluayJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYyIse25hbWU6InRvcGljLWxpbmsiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIwLGNvbHVtbjoxMH0sZW5kOntsaW5lOjIwLGNvbHVtbjozMn19fSkpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5mZWF0dXJlZF9saW5rIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjEsY29sdW1uOjEwfSxlbmQ6e2xpbmU6MjMsY29sdW1uOjE5fX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnVuc2VlbiIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDcscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjI0LGNvbHVtbjoxMH0sZW5kOntsaW5lOjI2LGNvbHVtbjoxOX19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJleHBhbmRQaW5uZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg5LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNyxjb2x1bW46MTB9LGVuZDp7bGluZToyOSxjb2x1bW46MTl9fX0pKT9vOiIiKSsiPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9J3B1bGwtcmlnaHQnPlxuICAgICAgICAgICIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImxpc3QucG9zdC1jb3VudC1vci1iYWRnZXMiLHtuYW1lOiJyYXciLGhhc2g6e3Bvc3RCYWRnZXNFbmFibGVkOiJzaG93VG9waWNQb3N0QmFkZ2VzIix0b3BpYzoidG9waWMifSxoYXNoVHlwZXM6e3Bvc3RCYWRnZXNFbmFibGVkOiJQYXRoRXhwcmVzc2lvbiIsdG9waWM6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntwb3N0QmFkZ2VzRW5hYmxlZDp0LHRvcGljOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozMixjb2x1bW46MTB9LGVuZDp7bGluZTozMixjb2x1bW46OTV9fX0pKSsnXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BpYy1pdGVtLXN0YXRzIGNsZWFyZml4Ij5cbicrKG51bGwhPShvPW4udW5sZXNzLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJoaWRlQ2F0ZWdvcnkiLHtuYW1lOiJ1bmxlc3MiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjM1LGNvbHVtbjoxMH0sZW5kOntsaW5lOjM5LGNvbHVtbjoyMX19fSkpP286IiIpKyIgICAgICAgICAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImRpc2NvdXJzZS10YWdzIl18fHQmJnRbImRpc2NvdXJzZS10YWdzIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljIix7bmFtZToiZGlzY291cnNlLXRhZ3MiLGhhc2g6e21vZGU6Imxpc3QifSxoYXNoVHlwZXM6e21vZGU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e21vZGU6dH0sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0MCxjb2x1bW46MTB9LGVuZDp7bGluZTo0MCxjb2x1bW46NDZ9fX0pKSsnXG4gICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1yaWdodCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwnbnVtIGFjdGl2aXR5IGxhc3RcJz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFnZSBhY3Rpdml0eSIgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdFRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0Myxjb2x1bW46NDh9LGVuZDp7bGluZTo0Myxjb2x1bW46NzF9fX0pKSsnIj48YVxuICAgICAgICAgICAgICAgICBocmVmPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubGFzdFBvc3RVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjoyM30sZW5kOntsaW5lOjQ0LGNvbHVtbjo0NH19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtZGF0ZSJdfHx0JiZ0WyJmb3JtYXQtZGF0ZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy5idW1wZWRBdCIse25hbWU6ImZvcm1hdC1kYXRlIixoYXNoOntub1RpdGxlOiJ0cnVlIixmb3JtYXQ6InRpbnkifSxoYXNoVHlwZXM6e25vVGl0bGU6IlN0cmluZ0xpdGVyYWwiLGZvcm1hdDoiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7bm9UaXRsZTp0LGZvcm1hdDp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQ0LGNvbHVtbjo0Nn0sZW5kOntsaW5lOjQ0LGNvbHVtbjoxMDV9fX0pKSsnPC9hPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJjbGVhcmZpeCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG48L3RkPlxuJ30sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL21vZGFsL2xvZ2luIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwibG9naW4tbW9kYWwiLG51bGwsW1sic2NyZWVuWCIsInNjcmVlblkiLCJsb2dpbk5hbWUiLCJsb2dpblBhc3N3b3JkIiwic2Vjb25kRmFjdG9yVG9rZW4iLCJhY3Rpb24iXSxbWzI0LFsibGFzdFgiXV0sWzI0LFsibGFzdFkiXV0sWzI0LFsibG9naW5OYW1lIl1dLFsyNCxbImxvZ2luUGFzc3dvcmQiXV0sWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ2luIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWJlZm9yZS1tb2RhbC1ib2R5IiwiIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsibG9naW4udGl0bGUiLFsyNCxbIm1vZGFsQm9keUNsYXNzZXMiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93TG9naW5CdXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1sic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsInByb2Nlc3NpbmdFbWFpbExpbmsiLCJlbWFpbExvZ2luIiwiZXh0ZXJuYWxMb2dpbiJdLFtbMjQsWyJzaG93TG9naW5XaXRoRW1haWxMaW5rIl1dLFsyNCxbInByb2Nlc3NpbmdFbWFpbExpbmsiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVtYWlsTG9naW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkxvZ2luTG9jYWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImlkIiwibG9naW4tZm9ybSJdLFsxMCwibWV0aG9kIiwicG9zdCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwiY3JlZGVudGlhbHMiXSxbMTEsImNsYXNzIixbMjIsImNyZWRlbnRpYWxzQ2xhc3MiXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LW5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXJLZXkiLCJpZCIsImF1dG9jb3JyZWN0IiwiYXV0b2NhcGl0YWxpemUiLCJkaXNhYmxlZCJdLFtbMjQsWyJsb2dpbk5hbWUiXV0sImVtYWlsIiwibG9naW4uZW1haWxfcGxhY2Vob2xkZXIiLCJsb2dpbi1hY2NvdW50LW5hbWUiLCJvZmYiLCJvZmYiLFsyNCxbInNob3dTZWNvbmRGYWN0b3IiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibG9naW4tYWNjb3VudC1wYXNzd29yZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsibG9naW4ucGFzc3dvcmQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsIm1heGxlbmd0aCIsImRpc2FibGVkIl0sW1syNCxbImxvZ2luUGFzc3dvcmQiXV0sInBhc3N3b3JkIiwibG9naW4tYWNjb3VudC1wYXNzd29yZCIsIjIwMCIsWzI0LFsic2hvd1NlY29uZEZhY3RvciJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJpZCIsImZvcmdvdC1wYXNzd29yZC1saW5rIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0ZvcmdvdFBhc3N3b3JkIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwic2Vjb25kLWZhY3Rvci1mb3JtIixudWxsLFtbInNlY29uZEZhY3Rvck1ldGhvZCIsInNlY29uZEZhY3RvclRva2VuIiwiY2xhc3MiLCJiYWNrdXBFbmFibGVkIiwiaXNMb2dpbiJdLFtbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sWzI0LFsic2Vjb25kRmFjdG9yQ2xhc3MiXV0sWzI0LFsiYmFja3VwRW5hYmxlZCJdXSx0cnVlXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd1NlY3VyaXR5S2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJzZWN1cml0eS1rZXktZm9ybSIsbnVsbCxbWyJhbGxvd2VkQ3JlZGVudGlhbElkcyIsImNoYWxsZW5nZSIsInNob3dTZWN1cml0eUtleSIsInNob3dTZWNvbmRGYWN0b3IiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJvdGhlck1ldGhvZEFsbG93ZWQiLCJhY3Rpb24iXSxbWzI0LFsic2VjdXJpdHlLZXlBbGxvd2VkQ3JlZGVudGlhbElkcyJdXSxbMjQsWyJzZWN1cml0eUtleUNoYWxsZW5nZSJdXSxbMjQsWyJzaG93U2VjdXJpdHlLZXkiXV0sWzI0LFsic2hvd1NlY29uZEZhY3RvciJdXSxbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsib3RoZXJNZXRob2RBbGxvd2VkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhdXRoZW50aWNhdGVTZWN1cml0eUtleSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsInNlY29uZC1mYWN0b3ItaW5wdXQiLG51bGwsW1sidmFsdWUiLCJpbnB1dElkIiwic2Vjb25kRmFjdG9yTWV0aG9kIiwiYmFja3VwRW5hYmxlZCJdLFtbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSwibG9naW4tc2Vjb25kLWZhY3RvciIsWzI0LFsic2Vjb25kRmFjdG9yTWV0aG9kIl1dLFsyNCxbImJhY2t1cEVuYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkxvZ2luTG9jYWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNob3dTZWN1cml0eUtleSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImRpc2FibGVkIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvZ2luIl0sbnVsbF0sInVubG9jayIsWzI0LFsibG9naW5CdXR0b25MYWJlbCJdXSxbMjQsWyJsb2dpbkRpc2FibGVkIl1dLCJidG4tbGFyZ2UgYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dTaWdudXBMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImlkIiwiYWN0aW9uIl0sWyJidG4tbGFyZ2UiLCJuZXctYWNjb3VudC1saW5rIixbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q3JlYXRlQWNjb3VudCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiY3JlYXRlX2FjY291bnQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWFmdGVyLW1vZGFsLWZvb3RlciIsIiJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsb2dpbi1hbGVydCJdLFsxMSwiY2xhc3MiLFsyMiwiYWxlcnRDbGFzcyJdXSxbOF0sWzEsWzIyLCJhbGVydCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2JpbGUvbW9kYWwvbG9naW4ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9iaWxlL3VzZXJzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJpdGVtIl0sInN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuZGlyZWN0b3J5IC51c2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlyZWN0b3J5Il0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2Vycy10b3AiLCJkaXYiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCB1c2VyLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwicGVyaW9kLWNob29zZXIiLG51bGwsW1sicGVyaW9kIiwib25DaGFuZ2UiXSxbWzI0LFsicGVyaW9kIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsicGVyaW9kIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiY2xhc3MiXSxbWzI0LFsibmFtZUlucHV0Il1dLCJkaXJlY3RvcnkuZmlsdGVyX25hbWUiLCJmaWx0ZXItbmFtZSBuby1ibHVyIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG90YWwtcm93cyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZGlyZWN0b3J5LnRvdGFsX3Jvd3MiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInRvdGFsUm93cyJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS1pdGVtIixudWxsLFtbInRhZ05hbWUiLCJjbGFzcyIsIml0ZW0iLCJzaG93VGltZVJlYWQiXSxbImRpdiIsInVzZXIiLFsyMywxLFtdXSxbMjQsWyJzaG93VGltZVJlYWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImRpcmVjdG9yeS5ub19yZXN1bHRzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vYmlsZS91c2VycyJ9fSksRW1iZXIuVEVNUExBVEVTLm1vZGFsPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwiLG51bGwsW1sibW9kYWxDbGFzcyIsInRpdGxlIiwic3VidGl0bGUiLCJwYW5lbHMiLCJzZWxlY3RlZFBhbmVsIiwib25TZWxlY3RQYW5lbCIsImNsYXNzIiwiZXJyb3JzIiwiY2xvc2VNb2RhbCJdLFtbMjQsWyJtb2RhbENsYXNzIl1dLFsyNCxbInRpdGxlIl1dLFsyNCxbInN1YnRpdGxlIl1dLFsyNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFBhbmVsIl1dLFsyNCxbIm9uU2VsZWN0UGFuZWwiXV0sImhpZGRlbiIsWzI0LFsiZXJyb3JzIl1dLFsyOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwib3V0bGV0IixbIm1vZGFsQm9keSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2FjdGl2YXRpb24tZWRpdCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiYWN0aXZhdGlvbi1lbWFpbC1mb3JtIixudWxsLFtbImVtYWlsIl0sW1syNCxbIm5ld0VtYWlsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImRpc2FibGVkIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUVtYWlsIl0sbnVsbF0sImxvZ2luLnN1Ym1pdF9uZXdfZW1haWwiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdLCJjbG9zZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9hY3RpdmF0aW9uLWVkaXQifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYWN0aXZhdGlvbi1yZXNlbnQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uc2VudF9hY3RpdmF0aW9uX2VtYWlsX2FnYWluIl0sW1siY3VycmVudEVtYWlsIl0sW1syNCxbImN1cnJlbnRFbWFpbCJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwibW9kYWwtZm9vdGVyLWNsb3NlIixudWxsLFtbImNsb3NlTW9kYWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2FjdGl2YXRpb24tcmVzZW50In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2FkZC1wb3N0LW5vdGljZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsicG9zdC5jb250cm9scy5hZGRfcG9zdF9ub3RpY2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMSxbMjgsInRleHRhcmVhIixudWxsLFtbInZhbHVlIl0sW1syNCxbIm5vdGljZSJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZXROb3RpY2UiXSxudWxsXSxbMjQsWyJkaXNhYmxlZCJdXSxbMjgsImlmIixbWzI0LFsic2F2aW5nIl1dLCJzYXZpbmciLCJzYXZlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYWRkLXBvc3Qtbm90aWNlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2Fzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sicmF3VGl0bGUiXSxbWzI4LCJpMThuIixbInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5jb25maXJtX21vZGFsX3RpdGxlIl0sW1sicHJvdmlkZXIiXSxbWzI4LCJpMThuIixbWzI4LCJjb25jYXQiLFsibG9naW4uIixbMjQsWyJtb2RlbCIsInByb3ZpZGVyX25hbWUiXV0sIi5uYW1lIl0sbnVsbF1dLG51bGxdXV1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJlcnJvciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJlcnJvciJdXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImFjY291bnRfZGVzY3JpcHRpb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbmZpcm1fZGVzY3JpcHRpb24uYWNjb3VudF9zcGVjaWZpYyJdLFtbInByb3ZpZGVyIiwiYWNjb3VudF9kZXNjcmlwdGlvbiJdLFtbMjgsImkxOG4iLFtbMjgsImNvbmNhdCIsWyJsb2dpbi4iLFsyNCxbIm1vZGVsIiwicHJvdmlkZXJfbmFtZSJdXSwiLm5hbWUiXSxudWxsXV0sbnVsbF0sWzI0LFsibW9kZWwiLCJhY2NvdW50X2Rlc2NyaXB0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbmZpcm1fZGVzY3JpcHRpb24uZ2VuZXJpYyJdLFtbInByb3ZpZGVyIl0sW1syOCwiaTE4biIsW1syOCwiY29uY2F0IixbImxvZ2luLiIsWzI0LFsibW9kZWwiLCJwcm92aWRlcl9uYW1lIl1dLCIubmFtZSJdLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sWyJ1c2VyLmFzc29jaWF0ZWRfYWNjb3VudHMuY29ubmVjdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZpbmlzaENvbm5lY3QiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJwbHVnIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJsYWJlbCIsImFjdGlvbiJdLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNhbmNlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2Fzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYXV0aC10b2tlbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsidXNlci5hdXRoX3Rva2Vucy53YXNfdGhpc195b3UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy53YXNfdGhpc195b3VfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmV4dGVuZGVkX2Rlc2NyaXB0aW9uIl0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy5kZXRhaWxzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJzdHlsZSIsImxpc3Qtc3R5bGUtdHlwZTpub25lIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJmYXItY2xvY2siXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzI0LFsibW9kZWwiLCJzZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJtYXAtbWFya2VyLWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwibG9jYXRpb24iXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFtbMjQsWyJtb2RlbCIsImljb24iXV1dLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLmJyb3dzZXJfYW5kX2RldmljZSJdLFtbImJyb3dzZXIiLCJkZXZpY2UiXSxbWzI0LFsibW9kZWwiLCJicm93c2VyIl1dLFsyNCxbIm1vZGVsIiwiZGV2aWNlIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJsYXRlc3RfcG9zdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMubGF0ZXN0X3Bvc3QiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVFeHBhbmRlZCJdXSxbOF0sWzEsWzI4LCJkLWljb24iLFtbMjgsImlmIixbWzI0LFsiZXhwYW5kZWQiXV0sImNhcmV0LXVwIiwiY2FyZXQtZG93biJdLG51bGxdXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImV4cGFuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJibG9ja3F1b3RlIix0cnVlXSxbOF0sWzEsWzI0LFsibGF0ZXN0X3Bvc3QiLCJjb29rZWQiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYmxvY2txdW90ZSIsdHJ1ZV0sWzhdLFsxLFsyNCxbImxhdGVzdF9wb3N0IiwiZXhjZXJwdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJoaWdobGlnaHRTZWN1cmUiXSxudWxsXSwibG9jayIsInVzZXIuYXV0aF90b2tlbnMuc2VjdXJlX2FjY291bnQiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2F1dGgtdG9rZW4ifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYXZhdGFyLXNlbGVjdG9yIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJhdmF0YXIiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidXNlci5jaGFuZ2VfYXZhdGFyLnRpdGxlIiwiYXZhdGFyLXNlbGVjdG9yIl1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsInNlbGVjdGFibGVfYXZhdGFyc19lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlbGVjdGFibGUtYXZhdGFycyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJzZWxlY3RhYmxlQXZhdGFycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiY2xhc3MiLCJzZWxlY3RhYmxlLWF2YXRhciJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdEF2YXRhciIsWzIzLDEsW11dXV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjMsMSxbXV0sImh1Z2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1jaG9pY2UiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJzeXN0ZW0tYXZhdGFyIiwiYXZhdGFyIiwic3lzdGVtIixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzEwLCJmb3IiLCJzeXN0ZW0tYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsInN5c3RlbV9hdmF0YXJfdGVtcGxhdGUiXV0sImxhcmdlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2F2YXRhci5sZXR0ZXJfYmFzZWQiXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXZhdGFyLWNob2ljZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbImdyYXZhdGFyIiwiYXZhdGFyIiwiZ3JhdmF0YXIiLFsyNCxbInNlbGVjdGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsImdyYXZhdGFyIl0sWzhdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsImdyYXZhdGFyX2F2YXRhcl90ZW1wbGF0ZSJdXSwibGFyZ2UiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIuZ3JhdmF0YXIiXSxudWxsXSx0cnVlXSxbMCwiICJdLFsxLFsyNCxbInVzZXIiLCJlbWFpbCJdXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJ0aXRsZSIsImRpc2FibGVkIiwiaWNvbiIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoR3JhdmF0YXIiXSxudWxsXSwidXNlci5jaGFuZ2VfYXZhdGFyLnJlZnJlc2hfZ3JhdmF0YXJfdGl0bGUiLFsyNCxbImdyYXZhdGFyUmVmcmVzaERpc2FibGVkIl1dLCJzeW5jIiwiYnRuLWRlZmF1bHQgYXZhdGFyLXNlbGVjdG9yLXJlZnJlc2gtZ3JhdmF0YXIiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiZ3JhdmF0YXJGYWlsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJlcnJvciJdLFs4XSxbMSxbMjgsIkkxOG4iLFsidXNlci5jaGFuZ2VfYXZhdGFyLmdyYXZhdGFyX2ZhaWxlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJhbGxvd0F2YXRhclVwbG9hZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF2YXRhci1jaG9pY2UiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbInVwbG9hZGVkLWF2YXRhciIsImF2YXRhciIsInVwbG9hZGVkIixbMjQsWyJzZWxlY3RlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInVwbG9hZGVkLWF2YXRhciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiYm91bmQtYXZhdGFyLXRlbXBsYXRlIixbWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV0sImxhcmdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfYXZhdGFyLnVwbG9hZGVkX2F2YXRhciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV9hdmF0YXIudXBsb2FkZWRfYXZhdGFyX2VtcHR5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiYXZhdGFyLXVwbG9hZGVyIixudWxsLFtbInVzZXJfaWQiLCJ1cGxvYWRlZEF2YXRhclRlbXBsYXRlIiwidXBsb2FkZWRBdmF0YXJJZCIsInVwbG9hZGluZyIsImNsYXNzIiwiZG9uZSJdLFtbMjQsWyJ1c2VyIiwiaWQiXV0sWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdGVtcGxhdGUiXV0sWzI0LFsidXNlciIsImN1c3RvbV9hdmF0YXJfdXBsb2FkX2lkIl1dLFsyNCxbInVwbG9hZGluZyJdXSwiYXZhdGFyLXVwbG9hZGVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBsb2FkQ29tcGxldGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwic2VsZWN0YWJsZV9hdmF0YXJzX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQXZhdGFyU2VsZWN0aW9uIl0sbnVsbF0sImJ0bi1wcmltYXJ5IixbMjQsWyJ1cGxvYWRpbmciXV0sInNhdmUiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9hdmF0YXItc2VsZWN0b3IifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYm9va21hcmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImdyaWQiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siaWQiXSxbImJvb2ttYXJrLXJlbWluZGVyLW1vZGFsIl1dLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvck1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFsxMCwiZm9yIiwibmFtZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicG9zdC5ib29rbWFya3MubmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwibmFtZSIsImNsYXNzIiwiZW50ZXIiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJuYW1lIl1dLCJuYW1lIiwiYm9va21hcmstbmFtZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmVBbmRDbG9zZSJdLG51bGxdLFsyOCwiaTE4biIsWyJwb3N0LmJvb2ttYXJrcy5uYW1lX3BsYWNlaG9sZGVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Qm9va21hcmtSZW1pbmRlckNvbnRyb2xzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImZvciIsInNldF9yZW1pbmRlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicG9zdC5ib29rbWFya3Muc2V0X3JlbWluZGVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJIYXNUaW1lem9uZVNldCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidGFwLXRpbGUtZ3JpZCIsbnVsbCxbWyJhY3RpdmVUaWxlIl0sW1syNCxbInNlbGVjdGVkUmVtaW5kZXJUeXBlIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsidXNpbmdNb2JpbGVEZXZpY2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsyLCIge3t0YXAtdGlsZSBpY29uPVxcImRlc2t0b3BcXCIgdGV4dD0oaTE4biBcXCJib29rbWFya3MucmVtaW5kZXJzLmF0X2Rlc2t0b3BcXCIpIHRpbGVJZD1yZW1pbmRlclR5cGVzLkFUX0RFU0tUT1AgYWN0aXZlVGlsZT1ncmlkLmFjdGl2ZVRpbGUgb25DaGFuZ2U9KGFjdGlvbiBcXCJzZWxlY3RSZW1pbmRlclR5cGVcXCIpfX0gIl0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93TGF0ZXJUb2RheSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJ0YXAtdGlsZSIsbnVsbCxbWyJpY29uIiwidGV4dCIsInRpbGVJZCIsImFjdGl2ZVRpbGUiLCJvbkNoYW5nZSJdLFsiZmFyLW1vb24iLFsyNCxbImxhdGVyVG9kYXlGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIkxBVEVSX1RPREFZIl1dLFsyMywxLFsiYWN0aXZlVGlsZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0UmVtaW5kZXJUeXBlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImJyaWVmY2FzZSIsWzI0LFsibmV4dEJ1c2luZXNzRGF5Rm9ybWF0dGVkIl1dLFsyNCxbInJlbWluZGVyVHlwZXMiLCJORVhUX0JVU0lORVNTX0RBWSJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1zdW4iLFsyNCxbInRvbW9ycm93Rm9ybWF0dGVkIl1dLFsyNCxbInJlbWluZGVyVHlwZXMiLCJUT01PUlJPVyJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1jbG9jayIsWzI0LFsibmV4dFdlZWtGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIk5FWFRfV0VFSyJdXSxbMjMsMSxbImFjdGl2ZVRpbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFJlbWluZGVyVHlwZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGFwLXRpbGUiLG51bGwsW1siaWNvbiIsInRleHQiLCJ0aWxlSWQiLCJhY3RpdmVUaWxlIiwib25DaGFuZ2UiXSxbImZhci1jYWxlbmRhci1wbHVzIixbMjQsWyJuZXh0TW9udGhGb3JtYXR0ZWQiXV0sWzI0LFsicmVtaW5kZXJUeXBlcyIsIk5FWFRfTU9OVEgiXV0sWzIzLDEsWyJhY3RpdmVUaWxlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RSZW1pbmRlclR5cGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMiwiIHt7dGFwLXRpbGUgaWNvbj1cXCJjYWxlbmRhci1hbHRcXCIgdGV4dD0oSTE4biBcXCJib29rbWFya3MucmVtaW5kZXJzLmN1c3RvbVxcIikgdGlsZUlkPXJlbWluZGVyVHlwZXMuQ1VTVE9NIGFjdGl2ZVRpbGU9Z3JpZC5hY3RpdmVUaWxlIG9uQ2hhbmdlPShhY3Rpb24gXFwic2VsZWN0UmVtaW5kZXJUeXBlXFwiKX19ICJdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWluZm8iXSxbOF0sWzEsWzI4LCJpMThuIixbImJvb2ttYXJrcy5ub190aW1lem9uZSJdLFtbImJhc2VQYXRoIl0sW1syNCxbImJhc2VQYXRoIl1dXV1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbImJvb2ttYXJrcy5zYXZlIiwiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQW5kQ2xvc2UiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsb3NlV2l0aG91dFNhdmluZ0Jvb2ttYXJrIl0sbnVsbF1dXV0sZmFsc2VdLFswLCIgICAgICBcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYm9va21hcmsifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYnVsay1hY3Rpb25zLWJ1dHRvbnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJ1dHRvbiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImJ1bGstYnV0dG9ucyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJidXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJsYWJlbCIsImljb24iLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjMsMSxbImFjdGlvbiJdXV0sbnVsbF0sWzIzLDEsWyJsYWJlbCJdXSxbMjMsMSxbImljb24iXV0sWzIzLDEsWyJjbGFzcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9idWxrLWFjdGlvbnMtYnV0dG9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9idWxrLWNoYW5nZS1jYXRlZ29yeSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWNzLmJ1bGsuY2hvb3NlX25ld19jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsibmV3Q2F0ZWdvcnlJZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm5ld0NhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUNhdGVnb3J5Il0sbnVsbF0sInRvcGljcy5idWxrLmNoYW5nZV9jYXRlZ29yeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYnVsay1jaGFuZ2UtY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImxldmVsIl0sInN0YXRlbWVudHMiOltbNCwiZWFjaCIsW1syNCxbIm5vdGlmaWNhdGlvbkxldmVscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpbyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1sidmFsdWUiLCJuYW1lIiwic2VsZWN0aW9uIl0sW1syMywxLFsiaWQiXV0sIm5vdGlmaWNhdGlvbl9sZXZlbCIsWzI0LFsibm90aWZpY2F0aW9uTGV2ZWxJZCJdXV1dXSxmYWxzZV0sWzAsIiAiXSxbNywic3Ryb25nIix0cnVlXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzY3JpcHRpb24iXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJkZXNjcmlwdGlvbiJdXV0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImRpc2FibGVkIiwiYWN0aW9uIiwibGFiZWwiXSxbWzI0LFsiZGlzYWJsZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZU5vdGlmaWNhdGlvbkxldmVsIl0sbnVsbF0sInRvcGljcy5idWxrLm5vdGlmaWNhdGlvbl9sZXZlbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvYnVsay1ub3RpZmljYXRpb24tbGV2ZWwifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvY2hhbmdlLW93bmVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJjaGFuZ2Utb3duZXJzaGlwIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuY2hhbmdlX293bmVyLmluc3RydWN0aW9ucyJdLFtbImNvdW50Iiwib2xkX3VzZXIiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dLFsyNCxbInNlbGVjdGVkUG9zdHNVc2VybmFtZSJdXV1dXSx0cnVlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJzaW5nbGUiLCJ1c2VybmFtZXMiLCJwbGFjZWhvbGRlcktleSIsImF1dG9jb21wbGV0ZSJdLFsidHJ1ZSIsWzI0LFsibmV3X3VzZXIiXV0sInRvcGljLmNoYW5nZV9vd25lci5wbGFjZWhvbGRlciIsImRpc2NvdXJzZSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlT3duZXJzaGlwT2ZQb3N0cyJdLG51bGxdLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiaWYiLFtbMjQsWyJzYXZpbmciXV0sInNhdmluZyIsInRvcGljLmNoYW5nZV9vd25lci5hY3Rpb24iXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NoYW5nZS1vd25lciJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9jaGFuZ2UtdGltZXN0YW1wIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJjaGFuZ2UtdGltZXN0YW1wIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuY2hhbmdlX3RpbWVzdGFtcC5pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJwIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJhbGVydCBhbGVydC1lcnJvciAiLFsyOCwidW5sZXNzIixbWzI0LFsidmFsaWRUaW1lc3RhbXAiXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5jaGFuZ2VfdGltZXN0YW1wLmludmFsaWRfdGltZXN0YW1wIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJkYXRlLXBpY2tlci1wYXN0IixudWxsLFtbInZhbHVlIiwiY29udGFpbmVySWQiLCJvblNlbGVjdCJdLFtbMjgsInJlYWRvbmx5IixbWzI0LFsiZGF0ZSJdXV0sbnVsbF0sImRhdGUtY29udGFpbmVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImRhdGUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSJdLFsidGltZSIsWzI0LFsidGltZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJkYXRlLWNvbnRhaW5lciJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIGNoYW5nZS10aW1lc3RhbXAtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsInRyYW5zbGF0ZWRMYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjQsWyJidXR0b25UaXRsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NoYW5nZS10aW1lc3RhbXAifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvY29udmVydC10by1wdWJsaWMtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRvcGljLm1ha2VfcHVibGljLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMubWFrZV9wdWJsaWMuY2hvb3NlX2NhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJwdWJsaWNDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsicHVibGljQ2F0ZWdvcnlJZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIiwiZGlzYWJsZWQiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibWFrZVB1YmxpYyJdLG51bGxdLCJjb21wb3Nlci5tb2RhbF9vayIsWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2NvbnZlcnQtdG8tcHVibGljLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2NyZWF0ZS1hY2NvdW50Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJmIl0sInN0YXRlbWVudHMiOltbNCwiY3JlYXRlLWFjY291bnQiLG51bGwsW1siZW1haWwiLCJkaXNhYmxlZCIsImFjdGlvbiJdLFtbMjQsWyJhY2NvdW50RW1haWwiXV0sWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUFjY291bnQiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJjb21wbGV0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIl0sWyJjcmVhdGUtYWNjb3VudC1iZWZvcmUtbW9kYWwtYm9keSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbImNyZWF0ZV9hY2NvdW50LnRpdGxlIixbMjgsImNvbmNhdCIsW1syOCwiaWYiLFtbMjQsWyJoYXNBdExlYXN0T25lTG9naW5CdXR0b24iXV0sImhhcy1hbHQtYXV0aCJdLG51bGxdLCIgIixbMjgsImlmIixbWzI0LFsidXNlckZpZWxkcyJdXSwiaGFzLXVzZXItZmllbGRzIl0sbnVsbF1dLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJoYXNBdXRoT3B0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1siZXh0ZXJuYWxMb2dpbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDcmVhdGVGb3JtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsb2dpbi1mb3JtIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCBjcmVhdGUtYWNjb3VudC1lbWFpbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtZW1haWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSIsImlkIiwiZGlzYWJsZWQiLCJuYW1lIiwiYXV0b2ZvY3VzIl0sWyJlbWFpbCIsWzI0LFsiYWNjb3VudEVtYWlsIl1dLCJuZXctYWNjb3VudC1lbWFpbCIsWzI0LFsiZW1haWxWYWxpZGF0ZWQiXV0sImVtYWlsIiwiYXV0b2ZvY3VzIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMgY3JlYXRlLWFjY291bnQtZW1haWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiIsImlkIl0sW1syNCxbImVtYWlsVmFsaWRhdGlvbiJdXSwiYWNjb3VudC1lbWFpbC12YWxpZGF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VybmFtZVJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtdXNlcm5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcm5hbWUudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwibmFtZSIsIm1heGxlbmd0aCIsImF1dG9jb21wbGV0ZSJdLFtbMjQsWyJhY2NvdW50VXNlcm5hbWUiXV0sIm5ldy1hY2NvdW50LXVzZXJuYW1lIiwidXNlcm5hbWUiLFsyNCxbIm1heFVzZXJuYW1lTGVuZ3RoIl1dLCJkaXNjb3Vyc2UiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIiwiaWQiXSxbWzI0LFsidXNlcm5hbWVWYWxpZGF0aW9uIl1dLCJ1c2VybmFtZS12YWxpZGF0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZnVsbG5hbWVSZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJsYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtbmFtZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5uYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJpZCJdLFtbMjQsWyJhY2NvdW50TmFtZSJdXSwibmV3LWFjY291bnQtbmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJuYW1lVmFsaWRhdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyMiwibmFtZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsIm5vVGFncyIsImFyZ3MiXSxbImNyZWF0ZS1hY2NvdW50LWJlZm9yZS1wYXNzd29yZCIsdHJ1ZSxbMjgsImhhc2giLG51bGwsW1siYWNjb3VudE5hbWUiLCJhY2NvdW50VXNlcm5hbWUiLCJhY2NvdW50UGFzc3dvcmQiLCJ1c2VyRmllbGRzIiwiYXV0aE9wdGlvbnMiXSxbWzI0LFsiYWNjb3VudE5hbWUiXV0sWzI0LFsiYWNjb3VudFVzZXJuYW1lIl1dLFsyNCxbImFjY291bnRQYXNzd29yZCJdXSxbMjQsWyJ1c2VyRmllbGRzIl1dLFsyNCxbImF1dGhPcHRpb25zIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicGFzc3dvcmRSZXF1aXJlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxhYmVsIl0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJuZXctYWNjb3VudC1wYXNzd29yZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5wYXNzd29yZC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicGFzc3dvcmQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJ0eXBlIiwiaWQiLCJjYXBzTG9ja09uIl0sW1syNCxbImFjY291bnRQYXNzd29yZCJdXSwicGFzc3dvcmQiLCJuZXctYWNjb3VudC1wYXNzd29yZCIsWzI0LFsiY2Fwc0xvY2tPbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iXSxbWzI0LFsicGFzc3dvcmRWYWxpZGF0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzIyLCJwYXNzd29yZEluc3RydWN0aW9ucyJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsiY2Fwcy1sb2NrLXdhcm5pbmcgIixbMjgsInVubGVzcyIsW1syNCxbImNhcHNMb2NrT24iXV0sImhpZGRlbiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLmNhcHNfbG9ja193YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMCwiY2xhc3MiLCJwYXNzd29yZC1jb25maXJtYXRpb24iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwibmV3LWFjY291bnQtcGFzc3dvcmQtY29uZmlybWF0aW9uIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnBhc3N3b3JkX2NvbmZpcm1hdGlvbi50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaG9uZXlwb3QtaW5wdXQiLG51bGwsW1siaWQiLCJhdXRvY29tcGxldGUiLCJ2YWx1ZSJdLFsibmV3LWFjY291bnQtY29uZmlybWF0aW9uIiwibmV3LXBhc3N3b3JkIixbMjQsWyJhY2NvdW50SG9uZXlwb3QiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiaWQiXSxbWzI0LFsiYWNjb3VudENoYWxsZW5nZSJdXSwibmV3LWFjY291bnQtY2hhbGxlbmdlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwibm9UYWdzIiwiYXJncyJdLFsiY3JlYXRlLWFjY291bnQtYWZ0ZXItcGFzc3dvcmQiLHRydWUsWzI4LCJoYXNoIixudWxsLFtbImFjY291bnROYW1lIiwiYWNjb3VudFVzZXJuYW1lIiwiYWNjb3VudFBhc3N3b3JkIiwidXNlckZpZWxkcyJdLFtbMjQsWyJhY2NvdW50TmFtZSJdXSxbMjQsWyJhY2NvdW50VXNlcm5hbWUiXV0sWzI0LFsiYWNjb3VudFBhc3N3b3JkIl1dLFsyNCxbInVzZXJGaWVsZHMiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJ1c2VyRmllbGRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLWZpZWxkIixudWxsLFtbImZpZWxkIiwidmFsdWUiXSxbWzIzLDEsWyJmaWVsZCJdXSxbMjMsMSxbInZhbHVlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93Q3JlYXRlRm9ybSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWxhcmdlIGJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlQWNjb3VudCJdLG51bGxdLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJjcmVhdGVfYWNjb3VudC50aXRsZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiIsInNpemUiXSxbWzI0LFsiZm9ybVN1Ym1pdHRlZCJdXSwic21hbGwiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iXSxbImJ0bi1sYXJnZSIsImxvZ2luLWxpbmsiLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJsb2dfaW4iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlzY2xhaW1lciJdLFs4XSxbMSxbMjIsImRpc2NsYWltZXJIdG1sIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSJdLFsiY3JlYXRlLWFjY291bnQtYWZ0ZXItbW9kYWwtZm9vdGVyIiwiIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9jcmVhdGUtYWNjb3VudCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9kZWxldGUtdG9waWMtZGlzYWxsb3dlZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInBvc3QuY29udHJvbHMuZGVsZXRlX3RvcGljX2Rpc2FsbG93ZWRfbW9kYWwiXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJjbG9zZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9kZWxldGUtdG9waWMtZGlzYWxsb3dlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9kaXNtaXNzLXJlYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCJdLFsidG9waWNzLmJ1bGsuYWxzb19kaXNtaXNzX3RvcGljcyIsWzI0LFsiZGlzbWlzc1RvcGljcyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsiZGlzbWlzc1JlYWRUb3BpY3MiLFsyNCxbImRpc21pc3NUb3BpY3MiXV1dLG51bGxdLCJjaGVjayIsInRvcGljcy5idWxrLmRpc21pc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZGlzbWlzcy1yZWFkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2VkaXQtY2F0ZWdvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhYiJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdiBuYXYtcGlsbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImVkaXQtY2F0ZWdvcnktdGFiIixudWxsLFtbInBhbmVscyIsInNlbGVjdGVkVGFiIiwidGFiIl0sW1syNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFRhYiJdXSwiZ2VuZXJhbCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJlZGl0LWNhdGVnb3J5LXRhYiIsbnVsbCxbWyJwYW5lbHMiLCJzZWxlY3RlZFRhYiIsInRhYiJdLFtbMjQsWyJwYW5lbHMiXV0sWzI0LFsic2VsZWN0ZWRUYWIiXV0sInNlY3VyaXR5Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImVkaXQtY2F0ZWdvcnktdGFiIixudWxsLFtbInBhbmVscyIsInNlbGVjdGVkVGFiIiwidGFiIl0sW1syNCxbInBhbmVscyJdXSxbMjQsWyJzZWxlY3RlZFRhYiJdXSwic2V0dGluZ3MiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJpbWFnZXMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJ0b3BpYy10ZW1wbGF0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZWRpdC1jYXRlZ29yeS10YWIiLG51bGwsW1sicGFuZWxzIiwic2VsZWN0ZWRUYWIiLCJ0YWIiXSxbWzI0LFsicGFuZWxzIl1dLFsyNCxbInNlbGVjdGVkVGFiIl1dLCJ0YWdzIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJlYWNoIixbWzI0LFsicGFuZWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImNvbXBvbmVudCIsW1syMywxLFtdXV0sW1sic2VsZWN0ZWRUYWIiLCJjYXRlZ29yeSIsInJlZ2lzdGVyVmFsaWRhdG9yIl0sW1syNCxbInNlbGVjdGVkVGFiIl1dLFsyNCxbIm1vZGVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWdpc3RlclZhbGlkYXRvciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImlkIiwiY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsImxhYmVsIl0sWyJzYXZlLWNhdGVnb3J5IiwiYnRuLXByaW1hcnkiLFsyNCxbImRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlQ2F0ZWdvcnkiXSxudWxsXSxbMjQsWyJzYXZlTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9kZWxldGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciBwdWxsLXJpZ2h0IixbMjQsWyJkZWxldGVEaXNhYmxlZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlQ2F0ZWdvcnkiXSxudWxsXSwiZmFyLXRyYXNoLWFsdCIsImNhdGVnb3J5LmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImlkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGlzYWJsZV9pbmZvX3dyYXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJkaXNhYmxlZCIsImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbImRlbGV0ZURpc2FibGVkIl1dLCJidG4tZGVmYXVsdCBkaXNhYmxlLW5vLWhvdmVyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlRGVsZXRlVG9vbHRpcCJdLG51bGxdLCJxdWVzdGlvbi1jaXJjbGUiLCJjYXRlZ29yeS5kZWxldGUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYW5ub3RfZGVsZXRlX3JlYXNvbiAiLFsyOCwiaWYiLFtbMjQsWyJoaWRkZW5Ub29sdGlwIl1dLCJoaWRkZW4iLCIiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImNhbm5vdF9kZWxldGVfcmVhc29uIl1dLHRydWVdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZWRpdC1jYXRlZ29yeSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9lZGl0LXRvcGljLXRpbWVyIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwiYXV0b0ZvY3VzIl0sWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnRpdGxlIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJwdWJsaWMtdG9waWMtdGltZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJwdWJsaWMtdG9waWMtdGltZXIiLCJ0b3BpYy10aW1lciIsInRydWUiLFsyNCxbImlzUHVibGljIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMudG9waWNfc3RhdHVzX3VwZGF0ZS5wdWJsaWNfdGltZXJfdHlwZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInByaXZhdGUtdG9waWMtdGltZXIiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJwcml2YXRlLXRvcGljLXRpbWVyIiwidG9waWMtdGltZXIiLCJmYWxzZSIsWzI0LFsiaXNQdWJsaWMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnByaXZhdGVfdGltZXJfdHlwZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImVkaXQtdG9waWMtdGltZXItZm9ybSIsbnVsbCxbWyJ0b3BpYyIsInRvcGljVGltZXIiLCJ0aW1lclR5cGVzIiwidXBkYXRlVGltZSIsIm9uQ2hhbmdlU3RhdHVzVHlwZSIsIm9uQ2hhbmdlVXBkYXRlVGltZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJ0b3BpY1RpbWVyIl1dLFsyNCxbInNlbGVjdGlvbnMiXV0sWzI0LFsidXBkYXRlVGltZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25DaGFuZ2VTdGF0dXNUeXBlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uQ2hhbmdlVXBkYXRlVGltZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJzYXZlRGlzYWJsZWQiXV0sInRvcGljLnRvcGljX3N0YXR1c191cGRhdGUuc2F2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmVUaW1lciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRvcGljVGltZXIiLCJleGVjdXRlX2F0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJwdWxsLXJpZ2h0IGJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVUaW1lciJdLG51bGxdLCJ0b3BpYy50b3BpY19zdGF0dXNfdXBkYXRlLnJlbW92ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9lZGl0LXRvcGljLXRpbWVyIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2V4cGxhaW4tcmV2aWV3YWJsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicyJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyJdLFsiZXhwbGFpbi1yZXZpZXdhYmxlIl1dLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZXhwbGFpbi5mb3JtdWxhIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZXhwbGFpbi5zdWJ0b3RhbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInJldmlld2FibGVFeHBsYW5hdGlvbiIsInNjb3JlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInNjb3JlLXZhbHVlIixudWxsLFtbInZhbHVlIiwidGFnTmFtZSJdLFsiMS4wIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY29yZS12YWx1ZSIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidGFnTmFtZSJdLFtbMjMsMSxbInR5cGVfYm9udXMiXV0sInR5cGVfYm9udXMiLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInNjb3JlLXZhbHVlIixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJ0YWdOYW1lIl0sW1syMywxLFsidGFrZV9hY3Rpb25fYm9udXMiXV0sInRha2VfYWN0aW9uX2JvbnVzIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY29yZS12YWx1ZSIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidGFnTmFtZSJdLFtbMjMsMSxbInRydXN0X2xldmVsX2JvbnVzIl1dLCJ0cnVzdF9sZXZlbF9ib251cyIsIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwic2NvcmUtdmFsdWUiLG51bGwsW1sidmFsdWUiLCJsYWJlbCIsInRhZ05hbWUiXSxbWzIzLDEsWyJ1c2VyX2FjY3VyYWN5X2JvbnVzIl1dLCJ1c2VyX2FjY3VyYWN5X2JvbnVzIiwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFsxLFsyOCwiZmxvYXQiLFtbMjMsMSxbInNjb3JlIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwidG90YWwiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmV4cGxhaW4udG90YWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFsxLFsyOCwiZmxvYXQiLFtbMjQsWyJyZXZpZXdhYmxlRXhwbGFuYXRpb24iLCJ0b3RhbF9zY29yZSJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRocmVzaG9sZHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLm1pbl9zY29yZV92aXNpYmlsaXR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1bSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmbG9hdCIsW1syNCxbInJldmlld2FibGVFeHBsYW5hdGlvbiIsIm1pbl9zY29yZV92aXNpYmlsaXR5Il1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5leHBsYWluLnNjb3JlX3RvX2hpZGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwic3VtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImZsb2F0IixbWzI0LFsicmV2aWV3YWJsZUV4cGxhbmF0aW9uIiwiaGlkZV9wb3N0X3Njb3JlIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiY2xvc2UiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZXhwbGFpbi1yZXZpZXdhYmxlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZlYXR1cmUtdG9waWMtb24tcHJvZmlsZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyIsImlkIl0sWyJmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUiLCJjaG9vc2luZy10b3BpYyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImNob29zZS10b3BpYyIsbnVsbCxbWyJjdXJyZW50VG9waWNJZCIsInNlbGVjdGVkVG9waWNJZCIsImFkZGl0aW9uYWxGaWx0ZXJzIiwibGFiZWwiLCJ0b3BpY0NoYW5nZWRDYWxsYmFjayIsImxvYWRPbkluaXQiXSxbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsImlkIl1dLFsyNCxbIm5ld0ZlYXR1cmVkVG9waWNJZCJdXSwic3RhdHVzOnB1YmxpYyIsInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLnNlYXJjaF9sYWJlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm5ld1RvcGljU2VsZWN0ZWQiXSxudWxsXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXSwiYnRuLXByaW1hcnkgc2F2ZS1mZWF0dXJlZC10b3BpYy1vbi1wcm9maWxlIixbMjQsWyJub1RvcGljU2VsZWN0ZWQiXV0sInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLnNhdmUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZlYXR1cmUtdG9waWMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiXSxbImZlYXR1cmUtdG9waWMiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJwaW5uZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmVhdHVyZS1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzYyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwaW5uZWRfZ2xvYmFsbHkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicGlubmVkR2xvYmFsbHlDb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmFscmVhZHlfcGlubmVkX2dsb2JhbGx5Il0sW1siY291bnQiXSxbWzI0LFsicGlubmVkR2xvYmFsbHlDb3VudCJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub3RfcGlubmVkX2dsb2JhbGx5Il0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuZ2xvYmFsX3Bpbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzIyLCJhbHJlYWR5UGlubmVkTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMucGluX25vdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInVuUGluTWVzc2FnZSJdLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVucGluIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUudW5waW4iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1sic2l6ZSIsImNvbmRpdGlvbiJdLFsic21hbGwiLFsyNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzIyLCJhbHJlYWR5UGlubmVkTWVzc2FnZSJdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLnBpbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsImlzTW9iaWxlRGV2aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJwaW5NZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJjbGFzcyIsImluY2x1ZGVGYXJGdXR1cmUiLCJjbGVhcmFibGUiLCJpbnB1dCIsIm9uQ2hhbmdlSW5wdXQiXSxbInBpbi11bnRpbCIsdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwicGlubmVkSW5DYXRlZ29yeVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRJbkNhdGVnb3J5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIl1dLFsyNCxbInBpbkluQ2F0ZWdvcnlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJwaW5NZXNzYWdlIl0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImZhci1jbG9jayJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJjbGFzcyIsImluY2x1ZGVGYXJGdXR1cmUiLCJjbGVhcmFibGUiLCJpbnB1dCIsIm9uQ2hhbmdlSW5wdXQiXSxbInBpbi11bnRpbCIsdHJ1ZSx0cnVlLFsyNCxbIm1vZGVsIiwicGlubmVkSW5DYXRlZ29yeVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRJbkNhdGVnb3J5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkluQ2F0ZWdvcnlWYWxpZGF0aW9uIl1dLFsyNCxbInBpbkluQ2F0ZWdvcnlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJwaW4iXSxudWxsXSwidGh1bWJ0YWNrIiwidG9waWMuZmVhdHVyZS5waW4iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZlYXR1cmUtc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2MiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInBpbm5lZEdsb2JhbGx5Q291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuYWxyZWFkeV9waW5uZWRfZ2xvYmFsbHkiXSxbWyJjb3VudCJdLFtbMjQsWyJwaW5uZWRHbG9iYWxseUNvdW50Il1dXV1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub3RfcGlubmVkX2dsb2JhbGx5Il0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmdsb2JhbF9waW5fbm90ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJpc01vYmlsZURldmljZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLnBpbl9nbG9iYWxseSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwid2l0aC12YWxpZGF0aW9uIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImNsYXNzIiwiaW5jbHVkZUZhckZ1dHVyZSIsImNsZWFyYWJsZSIsImlucHV0Iiwib25DaGFuZ2VJbnB1dCJdLFsicGluLXVudGlsIix0cnVlLHRydWUsWzI0LFsibW9kZWwiLCJwaW5uZWRHbG9iYWxseVVudGlsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJwaW5uZWRHbG9iYWxseVVudGlsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInBvcHVwLWlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIiwic2hvd25BdCJdLFtbMjQsWyJwaW5HbG9iYWxseVZhbGlkYXRpb24iXV0sWzI0LFsicGluR2xvYmFsbHlUaXBTaG93bkF0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndpdGgtdmFsaWRhdGlvbiJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMucGluX2dsb2JhbGx5Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJmYXItY2xvY2siXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiZnV0dXJlLWRhdGUtaW5wdXQiLG51bGwsW1siY2xhc3MiLCJpbmNsdWRlRmFyRnV0dXJlIiwiY2xlYXJhYmxlIiwiaW5wdXQiLCJvbkNoYW5nZUlucHV0Il0sWyJwaW4tdW50aWwiLHRydWUsdHJ1ZSxbMjQsWyJtb2RlbCIsInBpbm5lZEdsb2JhbGx5VW50aWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInBpbm5lZEdsb2JhbGx5VW50aWwiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicG9wdXAtaW5wdXQtdGlwIixudWxsLFtbInZhbGlkYXRpb24iLCJzaG93bkF0Il0sW1syNCxbInBpbkdsb2JhbGx5VmFsaWRhdGlvbiJdXSxbMjQsWyJwaW5HbG9iYWxseVRpcFNob3duQXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBpbkdsb2JhbGx5Il0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUucGluX2dsb2JhbGx5IiwiYnRuLXByaW1hcnkiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZmVhdHVyZS1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGVzYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiYmFubmVyQ291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMuYmFubmVyX2V4aXN0cyJdLG51bGxdLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5ub19iYW5uZXJfZXhpc3RzIl0sbnVsbF0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5mZWF0dXJlX3RvcGljLmJhbm5lcl9ub3RlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImlzQmFubmVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMuZmVhdHVyZV90b3BpYy5yZW1vdmVfYmFubmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmZlYXR1cmVfdG9waWMubWFrZV9iYW5uZXIiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpc0Jhbm5lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQmFubmVyIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUucmVtb3ZlX2Jhbm5lciIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJtYWtlQmFubmVyIl0sbnVsbF0sInRodW1idGFjayIsInRvcGljLmZlYXR1cmUubWFrZV9iYW5uZXIiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLW1vZGFsLWNhbmNlbCIsbnVsbCxbWyJjbG9zZSJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjbG9zZU1vZGFsIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9mZWF0dXJlLXRvcGljIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZsYWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImYiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiLCJ0aXRsZSJdLFsiZmxhZy1tb2RhbCIsWzI0LFsidGl0bGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZmxhZy1zZWxlY3Rpb24iLG51bGwsW1sibmFtZUtleSIsImZsYWdzIl0sW1syNCxbInNlbGVjdGVkIiwibmFtZV9rZXkiXV0sWzI0LFsiZmxhZ3NBdmFpbGFibGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJmbGFnLWFjdGlvbi10eXBlIixudWxsLFtbImZsYWciLCJtZXNzYWdlIiwiaXNXYXJuaW5nIiwic2VsZWN0ZWRGbGFnIiwidXNlcm5hbWUiLCJzdGFmZkZsYWdzQXZhaWxhYmxlIiwiY2hhbmdlUG9zdEFjdGlvblR5cGUiXSxbWzIzLDEsW11dLFsyNCxbIm1lc3NhZ2UiXV0sWzI0LFsiaXNXYXJuaW5nIl1dLFsyNCxbInNlbGVjdGVkIl1dLFsyNCxbIm1vZGVsIiwidXNlcm5hbWUiXV0sWzI0LFsic3RhZmZGbGFnc0F2YWlsYWJsZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY2hhbmdlUG9zdEFjdGlvblR5cGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsInRpdGxlIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUZsYWciXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZmxhZ2dpbmcuc3VibWl0X3Rvb2x0aXAiLFsyNCxbInN1Ym1pdEljb24iXV0sWzI0LFsic3VibWl0TGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZW5kV2FybmluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUZsYWdBc1dhcm5pbmciXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJmbGFnZ2luZy5vZmZpY2lhbF93YXJuaW5nIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5UYWtlQWN0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIiwidGl0bGUiLCJpY29uIiwibGFiZWwiXSxbImJ0bi1kYW5nZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0YWtlQWN0aW9uIl0sbnVsbF0sWzI0LFsic3VibWl0RGlzYWJsZWQiXV0sImZsYWdnaW5nLnRha2VfYWN0aW9uX3Rvb2x0aXAiLCJnYXZlbCIsImZsYWdnaW5nLnRha2VfYWN0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RGVsZXRlU3BhbW1lciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVNwYW1tZXIiXSxudWxsXSxbMjQsWyJzdWJtaXREaXNhYmxlZCJdXSwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLCJmbGFnZ2luZy5kZWxldGVfc3BhbW1lciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9mbGFnIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2ZvcmdvdC1wYXNzd29yZCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJjbGFzcyJdLFsiZm9yZ290LXBhc3N3b3JkLW1vZGFsIl1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm9mZmVySGVscCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzIyLCJvZmZlckhlbHAiXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJ1c2VybmFtZS1vci1lbWFpbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmludml0ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiaWQiLCJhdXRvY29ycmVjdCIsImF1dG9jYXBpdGFsaXplIl0sW1syNCxbImFjY291bnRFbWFpbE9yVXNlcm5hbWUiXV0sImxvZ2luLmVtYWlsX3BsYWNlaG9sZGVyIiwidXNlcm5hbWUtb3ItZW1haWwiLCJvZmYiLCJvZmYiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm9mZmVySGVscCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImxhYmVsIiwidHlwZSIsImFjdGlvbiJdLFsiYnRuLWxhcmdlIGJ0bi1wcmltYXJ5IiwiZm9yZ290X3Bhc3N3b3JkLmJ1dHRvbl9vayIsInN1Ym1pdCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9rIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiaGVscFNlZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImxhYmVsIiwiaWNvbiIsImFjdGlvbiJdLFsiYnRuLWxhcmdlIiwiZm9yZ290X3Bhc3N3b3JkLmJ1dHRvbl9oZWxwIiwicXVlc3Rpb24tY2lyY2xlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaGVscCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwibGFiZWwiLCJkaXNhYmxlZCIsImNsYXNzIiwidHlwZSJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRQYXNzd29yZCJdLG51bGxdLCJmb3Jnb3RfcGFzc3dvcmQucmVzZXQiLFsyNCxbInN1Ym1pdERpc2FibGVkIl1dLCJidG4tcHJpbWFyeSBmb3Jnb3QtcGFzc3dvcmQtcmVzZXQiLCJzdWJtaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvZm9yZ290LXBhc3N3b3JkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2dyYW50LWJhZGdlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImNsYXNzIl0sWyJncmFudC1iYWRnZSJdXSx7InN0YXRlbWVudHMiOltbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibm9HcmFudGFibGVCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImFkbWluLmJhZGdlcy5ub19iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwidmFsdWUiLCJjb250ZW50Iiwibm9uZSIsIm9uQ2hhbmdlIl0sW3RydWUsWzI0LFsic2VsZWN0ZWRCYWRnZUlkIl1dLFsyNCxbImdyYW50YWJsZUJhZGdlcyJdXSwiYmFkZ2VzLm5vbmUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsic2VsZWN0ZWRCYWRnZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImJ1dHRvbkRpc2FibGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJncmFudEJhZGdlIl0sbnVsbF0sImFkbWluLmJhZGdlcy5ncmFudCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9ncmFudC1iYWRnZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9ncm91cC1hZGQtbWVtYmVycyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSJdLFsiZ3JvdXBzLmFkZF9tZW1iZXJzLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS12ZXJ0aWNhbCBncm91cC1hZGQtbWVtYmVycyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJncm91cHMuYWRkX21lbWJlcnMudXNlcm5hbWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJjbGFzcyIsInVzZXJuYW1lcyIsInBsYWNlaG9sZGVyS2V5IiwiaWQiXSxbImlucHV0LXh4bGFyZ2UiLFsyNCxbIm1vZGVsIiwidXNlcm5hbWVzIl1dLCJncm91cHMuc2VsZWN0b3JfcGxhY2Vob2xkZXIiLCJncm91cC1hZGQtbWVtYmVycy11c2VyLXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwiYWRtaW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGdyb3VwLWFkZC1tZW1iZXJzLW1ha2Utb3duZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJjbGFzcyIsImNoZWNrZWQiLCJkaXNhYmxlZCJdLFsiY2hlY2tib3giLCJpbmxpbmUiLFsyNCxbInNldEFzT3duZXIiXV0sWzI0LFsiYnVsa0FkZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmFkZF9tZW1iZXJzLmFzX293bmVyIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiYWRkTWVtYmVycyJdLG51bGxdLCJhZGQgYnRuLXByaW1hcnkiLCJwbHVzIixbMjQsWyJkaXNhYmxlQWRkQnV0dG9uIl1dLCJncm91cHMuYWRkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2dyb3VwLWFkZC1tZW1iZXJzIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2dyb3VwLWJ1bGstYWRkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIl0sWyJhZG1pbi5ncm91cHMuYnVsa19hZGQudGl0bGUiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmVzdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInJlc3VsdCIsIm1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1zdWNjZXNzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyNCxbInJlc3VsdCIsIm1lc3NhZ2UiXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXN1bHQiLCJpbnZhbGlkVXNlcnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiYWRtaW4uZ3JvdXBzLmJ1bGtfYWRkLmNvbXBsZXRlX3VzZXJzX25vdF9hZGRlZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjQsWyJyZXN1bHQiLCJpbnZhbGlkVXNlcnMiXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIiJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJjYW5jZWwiXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYW5jZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS12ZXJ0aWNhbCBncm91cC1idWxrLWFkZCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJhZG1pbi5ncm91cHMuYnVsa19hZGQucGFzdGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsiaW5wdXQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiaWNvbiIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFkZCJdLG51bGxdLCJhZGQgYnRuLXByaW1hcnkiLCJwbHVzIixbMjQsWyJkaXNhYmxlQWRkQnV0dG9uIl1dLCJncm91cHMuYWRkIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2dyb3VwLWJ1bGstYWRkIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2hpc3RvcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInQiLCJ0Il0sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbInRpdGxlIiwibWF4SGVpZ2h0Il0sWyJoaXN0b3J5IiwiNzAlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbi1kZXRhaWxzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsImF2YXRhcl90ZW1wbGF0ZSJdXSwic21hbGwiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZGF0ZSJdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJtb2RlbCIsImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZWRpdF9yZWFzb24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAg4oCUICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiZWRpdC1yZWFzb24iXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJlZGl0X3JlYXNvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICDigJQgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsInByZXZpb3VzIiwiYXZhdGFyX3RlbXBsYXRlIl1dLCJzbWFsbCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwidXNlcl9jaGFuZ2VzIiwicHJldmlvdXMiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICDihpIgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsImN1cnJlbnQiLCJhdmF0YXJfdGVtcGxhdGUiXV0sInNtYWxsIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiLCJjdXJyZW50IiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIndpa2lfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgIOKAlCAiXSxbMSxbMjgsImRpc2FibGVkLWljb24iLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sWyJmYXItZWRpdCIsWzI0LFsid2lraURpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwb3N0X3R5cGVfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgIOKAlCAiXSxbMSxbMjgsImRpc2FibGVkLWljb24iLG51bGwsW1siaWNvbiIsImRpc2FibGVkIl0sWyJzaGllbGQtYWx0IixbMjQsWyJwb3N0VHlwZURpc2FibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYXRlZ29yeV9pZF9jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAg4oCUICJdLFsxLFsyMiwicHJldmlvdXNDYXRlZ29yeSJdLHRydWVdLFswLCIg4oaSICJdLFsxLFsyMiwiY3VycmVudENhdGVnb3J5Il0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImRpc3BsYXktbW9kZXMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheUlubGluZSJdLG51bGxdLCJmYXItc3F1YXJlIiwicG9zdC5yZXZpc2lvbnMuZGlzcGxheXMuaW5saW5lLmJ1dHRvbiIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLmlubGluZS50aXRsZSIsWzI0LFsiaW5saW5lQ2xhc3MiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJ0aXRsZSIsImNsYXNzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNwbGF5U2lkZUJ5U2lkZSJdLG51bGxdLCJjb2x1bW5zIiwicG9zdC5yZXZpc2lvbnMuZGlzcGxheXMuc2lkZV9ieV9zaWRlLmJ1dHRvbiIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLnNpZGVfYnlfc2lkZS50aXRsZSIsWzI0LFsic2lkZUJ5U2lkZUNsYXNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsInRpdGxlIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc3BsYXlTaWRlQnlTaWRlTWFya2Rvd24iXSxudWxsXSwiY29sdW1ucyIsInBvc3QucmV2aXNpb25zLmRpc3BsYXlzLnNpZGVfYnlfc2lkZV9tYXJrZG93bi5idXR0b24iLCJwb3N0LnJldmlzaW9ucy5kaXNwbGF5cy5zaWRlX2J5X3NpZGVfbWFya2Rvd24udGl0bGUiLFsyNCxbInNpZGVCeVNpZGVNYXJrZG93bkNsYXNzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbnMiXSxbMTEsImRhdGEtcG9zdC1pZCIsWzI5LFtbMjQsWyJtb2RlbCIsInBvc3RfaWQiXV1dXV0sWzExLCJjbGFzcyIsWzIyLCJoaWRkZW5DbGFzc2VzIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0aXRsZV9jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyMiwidGl0bGVEaWZmIl0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInVzZXJfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsInByZXZpb3VzIiwiYXZhdGFyX3RlbXBsYXRlIl1dLCJzbWFsbCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyNCxbIm1vZGVsIiwidXNlcl9jaGFuZ2VzIiwicHJldmlvdXMiLCJ1c2VybmFtZSJdXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICDihpIgIl0sWzEsWzI4LCJib3VuZC1hdmF0YXItdGVtcGxhdGUiLFtbMjQsWyJtb2RlbCIsInVzZXJfY2hhbmdlcyIsImN1cnJlbnQiLCJhdmF0YXJfdGVtcGxhdGUiXV0sInNtYWxsIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJ1c2VyX2NoYW5nZXMiLCJjdXJyZW50IiwidXNlcm5hbWUiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ3aWtpX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZGlzYWJsZWQtaWNvbiIsbnVsbCxbWyJpY29uIiwiZGlzYWJsZWQiXSxbImZhci1lZGl0IixbMjQsWyJ3aWtpRGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJwb3N0X3R5cGVfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkaXNhYmxlZC1pY29uIixudWxsLFtbImljb24iLCJkaXNhYmxlZCJdLFsic2hpZWxkLWFsdCIsWzI0LFsicG9zdFR5cGVEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5X2lkX2NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyMiwicHJldmlvdXNDYXRlZ29yeSJdLHRydWVdLFswLCIg4oaSICJdLFsxLFsyMiwiY3VycmVudENhdGVnb3J5Il0sdHJ1ZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInRhZ3NfY2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5jaGFuZ2VkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInByZXZpb3VzVGFnQ2hhbmdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZGlzY291cnNlLXRhZyIsW1syMywyLFtdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAg4oaSXFxuICAgICAgICDCoFxcbiJdLFs0LCJlYWNoIixbWzI0LFsiY3VycmVudFRhZ0NoYW5nZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfbGlua19jaGFuZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfbGlua19jaGFuZ2VzIiwicHJldmlvdXMiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgIOKGklxcbiAgICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJmZWF0dXJlZF9saW5rX2NoYW5nZXMiLCJjdXJyZW50Il1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsicG9zdC1yZXZpc2lvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJsaW5rcy1yZWRpcmVjdCIsbnVsbCxbWyJjbGFzcyJdLFsicm93Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjIsImJvZHlEaWZmIl0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsidG9waWNDb250cm9sbGVyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImlkIiwicmV2aXNpb24tY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwidGl0bGUiLCJkaXNhYmxlZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkRmlyc3RWZXJzaW9uIl0sbnVsbF0sImZhc3QtYmFja3dhcmQiLCJwb3N0LnJldmlzaW9ucy5jb250cm9scy5maXJzdCIsWzI0LFsibG9hZEZpcnN0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsInRpdGxlIiwiZGlzYWJsZWQiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZFByZXZpb3VzVmVyc2lvbiJdLG51bGxdLCJiYWNrd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLnByZXZpb3VzIixbMjQsWyJsb2FkUHJldmlvdXNEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyZXZpc2lvbi1udW1iZXJzIl0sWzExLCJjbGFzcyIsWzI5LFtbMjgsInVubGVzcyIsW1syNCxbImRpc3BsYXlSZXZpc2lvbnMiXV0sImludmlzaWJsZSJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iLCJzaXplIl0sW1syNCxbImxvYWRpbmciXV0sInNtYWxsIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzIyLCJyZXZpc2lvbnNUZXh0Il0sdHJ1ZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwidGl0bGUiLCJkaXNhYmxlZCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTmV4dFZlcnNpb24iXSxudWxsXSwiZm9yd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLm5leHQiLFsyNCxbImxvYWROZXh0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsInRpdGxlIiwiZGlzYWJsZWQiXSxbImJ0bi1kZWZhdWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZExhc3RWZXJzaW9uIl0sbnVsbF0sImZhc3QtZm9yd2FyZCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmxhc3QiLFsyNCxbImxvYWRMYXN0RGlzYWJsZWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInJldmlzaW9uLWZvb3Rlci1idXR0b25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkaXNwbGF5RWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0UG9zdCJdLG51bGxdLCJwZW5jaWwtYWx0IiwiYnRuLWRlZmF1bHQiLFsyNCxbImVkaXRCdXR0b25MYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJkaXNwbGF5UmV2ZXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmV2ZXJ0VG9WZXJzaW9uIl0sbnVsbF0sInVuZG8iLCJwb3N0LnJldmlzaW9ucy5jb250cm9scy5yZXZlcnQiLCJidG4tZGFuZ2VyIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlIaWRlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaGlkZVZlcnNpb24iXSxudWxsXSwiZmFyLWV5ZS1zbGFzaCIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLmhpZGUiLCJidG4tZGFuZ2VyIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlTaG93Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1ZlcnNpb24iXSxudWxsXSwiZmFyLWV5ZSIsInBvc3QucmV2aXNpb25zLmNvbnRyb2xzLnNob3ciLCJidG4tZGVmYXVsdCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2hpc3RvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvaWdub3JlLWR1cmF0aW9uLXdpdGgtdXNlcm5hbWUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJhdXRvRm9jdXMiXSxbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl90aXRsZSIsImZhbHNlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl91c2VybmFtZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwic2luZ2xlIiwiY2xhc3MiLCJ1c2VybmFtZXMiXSxbdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIixbMjQsWyJpZ25vcmVkVXNlcm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImZ1dHVyZS1kYXRlLWlucHV0IixudWxsLFtbImxhYmVsIiwiaW5wdXQiLCJpbmNsdWRlV2Vla2VuZCIsImluY2x1ZGVEYXRlVGltZSIsImluY2x1ZGVNaWRGdXR1cmUiLCJpbmNsdWRlRmFyRnV0dXJlIiwib25DaGFuZ2VJbnB1dCJdLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3doZW4iLFsyOCwicmVhZG9ubHkiLFtbMjQsWyJpZ25vcmVkVW50aWwiXV1dLG51bGxdLHRydWUsZmFsc2UsdHJ1ZSxmYWxzZSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImlnbm9yZWRVbnRpbCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJfbm90aWZpY2F0aW9ucy5pZ25vcmVfZHVyYXRpb25fbm90ZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJkaXNhYmxlZCIsImxhYmVsIiwiYWN0aW9uIl0sWyJidG4tcHJpbWFyeSIsWzI0LFsic2F2ZURpc2FibGVkIl1dLCJ1c2VyLnVzZXJfbm90aWZpY2F0aW9ucy5pZ25vcmVfZHVyYXRpb25fc2F2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImlnbm9yZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJzaXplIiwiY29uZGl0aW9uIl0sWyJzbWFsbCIsWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2lnbm9yZS1kdXJhdGlvbi13aXRoLXVzZXJuYW1lIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2lnbm9yZS1kdXJhdGlvbiJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImF1dG9Gb2N1cyJdLFsidXNlci51c2VyX25vdGlmaWNhdGlvbnMuaWdub3JlX2R1cmF0aW9uX3RpdGxlIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJmdXR1cmUtZGF0ZS1pbnB1dCIsbnVsbCxbWyJsYWJlbCIsImlucHV0IiwiaW5jbHVkZVdlZWtlbmQiLCJpbmNsdWRlRGF0ZVRpbWUiLCJpbmNsdWRlTWlkRnV0dXJlIiwiaW5jbHVkZUZhckZ1dHVyZSIsIm9uQ2hhbmdlSW5wdXQiXSxbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl93aGVuIixbMjQsWyJpZ25vcmVkVW50aWwiXV0sdHJ1ZSxmYWxzZSx0cnVlLGZhbHNlLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiaWdub3JlZFVudGlsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl9ub3RlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJzYXZlRGlzYWJsZWQiXV0sInVzZXIudXNlcl9ub3RpZmljYXRpb25zLmlnbm9yZV9kdXJhdGlvbl9zYXZlIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiaWdub3JlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvaWdub3JlLWR1cmF0aW9uIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL2luc2VydC1oeXBlcmxpbmsiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInJlc3VsdCJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJjb21wb3Nlci5saW5rX2RpYWxvZ190aXRsZSIsImluc2VydC1saW5rIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyIsImtleS11cCJdLFtbMjQsWyJsaW5rVXJsIl1dLCJjb21wb3Nlci5saW5rX3VybF9wbGFjZWhvbGRlciIsImxpbmstdXJsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VhcmNoIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZWFyY2hMb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyMiwibG9hZGluZy1zcGlubmVyIl0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzZWFyY2hSZXN1bHRzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnRlcm5hbC1saW5rLXJlc3VsdHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsic2VhcmNoUmVzdWx0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiY2xhc3MiLCJzZWFyY2gtbGluayJdLFsxMSwiaHJlZiIsWzI5LFtbMjMsMSxbInVybCJdXV1dXSxbMTEsIm9uY2xpY2siLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsaW5rQ2xpY2siXSxudWxsXV0sWzExLCJkYXRhLXRpdGxlIixbMjksW1syMywxLFsidGl0bGUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtc3RhdHVzIixudWxsLFtbInRvcGljIiwiZGlzYWJsZUFjdGlvbnMiXSxbWzIzLDEsW11dLHRydWVdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syMywxLFsiZmFuY3lfdGl0bGUiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2VhcmNoLWNhdGVnb3J5Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImNhdGVnb3J5IiwicGFyZW50Q2F0ZWdvcnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiLCJwYXJlbnRDYXRlZ29yeSJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktbGluayIsW1syMywxLFsiY2F0ZWdvcnkiXV1dLFtbImhpZGVQYXJlbnQiXSxbdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWdzIixbWzIzLDEsW11dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJjbGFzcyJdLFtbMjQsWyJsaW5rVGV4dCJdXSwiY29tcG9zZXIubGlua19vcHRpb25hbF90ZXh0IiwibGluay10ZXh0Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLXByaW1hcnkiLCJjb21wb3Nlci5tb2RhbF9vayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9rIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLWRhbmdlciIsImNvbXBvc2VyLm1vZGFsX2NhbmNlbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvaW5zZXJ0LWh5cGVybGluayJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9qdW1wLXRvLXBvc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRvcGljLnByb2dyZXNzLmp1bXBfcHJvbXB0X2xvbmciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImp1bXAtdG8tcG9zdC1mb3JtIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImp1bXAtdG8tcG9zdC1jb250cm9sIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGV4Il0sWzhdLFswLCIjIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbImlkIiwidHlwZSIsInZhbHVlIiwiaW5zZXJ0LW5ld2xpbmUiXSxbInBvc3QtanVtcCIsIm51bWJlciIsWzI0LFsicG9zdE51bWJlciJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dC1oaW50LXRleHQgcG9zdC1udW1iZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLnByb2dyZXNzLmp1bXBfcHJvbXB0X29mIl0sW1siY291bnQiXSxbWzI0LFsiZmlsdGVyZWRQb3N0c0NvdW50Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlcGFyYXRvciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ0ZXh0Il0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5wcm9ncmVzcy5qdW1wX3Byb21wdF9vciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiaHIiLHRydWVdLFsxMCwiY2xhc3MiLCJyaWdodCJdLFs4XSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwianVtcC10by1kYXRlLWNvbnRyb2wiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiaW5wdXQtaGludC10ZXh0IHBvc3QtZGF0ZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidG9waWMucHJvZ3Jlc3MuanVtcF9wcm9tcHRfdG9fZGF0ZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRhdGUtcGlja2VyIixudWxsLFtbImlkIiwiY2xhc3MiLCJ2YWx1ZSIsImRlZmF1bHREYXRlIl0sWyJwb3N0LWRhdGUiLCJkYXRlLWlucHV0IixbMjQsWyJwb3N0RGF0ZSJdXSwiWVlZWS1NTS1ERCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXAiXSxudWxsXSwiY29tcG9zZXIubW9kYWxfb2siXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL2p1bXAtdG8tcG9zdCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9rZXlib2FyZC1zaG9ydGN1dHMtaGVscCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJpZCJdLFsia2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLmp1bXBfdG8udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJqdW1wX3RvIiwiaG9tZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImxhdGVzdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsIm5ldyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsInVucmVhZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImNhdGVnb3JpZXMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJ0b3AiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJib29rbWFya3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImp1bXBfdG8iLCJwcm9maWxlIl1dLHRydWVdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsIm1lc3NhZ2VzIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwianVtcF90byIsImRyYWZ0cyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLm5hdmlnYXRpb24udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJuYXZpZ2F0aW9uIiwiYmFjayJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsImp1bXAiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsIm5hdmlnYXRpb24iLCJ1cF9kb3duIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJuYXZpZ2F0aW9uIiwib3BlbiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsIm5leHRfcHJldiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwibmF2aWdhdGlvbiIsImdvX3RvX3VucmVhZF9wb3N0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsia2V5Ym9hcmRfc2hvcnRjdXRzX2hlbHAuYXBwbGljYXRpb24udGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsImhhbWJ1cmdlcl9tZW51Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsInVzZXJfcHJvZmlsZV9tZW51Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsInNob3dfaW5jb21pbmdfdXBkYXRlZF90b3BpY3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwic2VhcmNoIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhcHBsaWNhdGlvbiIsImhlbHAiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwiZGlzbWlzc19uZXdfcG9zdHMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwiZGlzbWlzc190b3BpY3MiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFwcGxpY2F0aW9uIiwibG9nX291dCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImg0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLmNvbXBvc2luZy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImNvbXBvc2luZyIsInJldHVybiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiY29tcG9zaW5nIiwiZnVsbHNjcmVlbiJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYXBwbGljYXRpb24iLCJjcmVhdGUiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJyZXBseV9hc19uZXdfdG9waWMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJyZXBseV90b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInJlcGx5X3Bvc3QiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJxdW90ZV9wb3N0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsia2V5Ym9hcmRfc2hvcnRjdXRzX2hlbHAuYWN0aW9ucy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJib29rbWFya190b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInBpbl91bnBpbl90b3BpYyJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInNoYXJlX3RvcGljIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwic2hhcmVfcG9zdCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsImxpa2UiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJmbGFnIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiYm9va21hcmsiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJlZGl0Il1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiZGVsZXRlIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwibWFya19tdXRlZCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsIm1hcmtfcmVndWxhciJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsIm1hcmtfdHJhY2tpbmciXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJtYXJrX3dhdGNoaW5nIl1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMSxbMjQsWyJzaG9ydGN1dHMiLCJhY3Rpb25zIiwiZGVmZXIiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFsxLFsyNCxbInNob3J0Y3V0cyIsImFjdGlvbnMiLCJwcmludCJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzI0LFsic2hvcnRjdXRzIiwiYWN0aW9ucyIsInRvcGljX2FkbWluX2FjdGlvbnMiXV0sdHJ1ZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwva2V5Ym9hcmQtc2hvcnRjdXRzLWhlbHAifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvbG9naW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsb2dpbi1tb2RhbCIsbnVsbCxbWyJzY3JlZW5YIiwic2NyZWVuWSIsImxvZ2luTmFtZSIsImxvZ2luUGFzc3dvcmQiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImFjdGlvbiJdLFtbMjQsWyJsYXN0WCJdXSxbMjQsWyJsYXN0WSJdXSxbMjQsWyJsb2dpbk5hbWUiXV0sWzI0LFsibG9naW5QYXNzd29yZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9naW4iXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSJdLFsibG9naW4tYmVmb3JlLW1vZGFsLWJvZHkiLCIiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImQtbW9kYWwtYm9keSIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJsb2dpbi50aXRsZSIsWzI0LFsibW9kYWxCb2R5Q2xhc3NlcyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5Mb2dpbkxvY2FsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJpZCIsImxvZ2luLWZvcm0iXSxbMTAsIm1ldGhvZCIsInBvc3QiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsImNyZWRlbnRpYWxzIl0sWzExLCJjbGFzcyIsWzIyLCJjcmVkZW50aWFsc0NsYXNzIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LW5hbWUiXSxbOF0sWzEsWzI4LCJpMThuIixbImxvZ2luLnVzZXJuYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImlkIiwiYXV0b2NvcnJlY3QiLCJhdXRvY2FwaXRhbGl6ZSIsImF1dG9mb2N1cyIsImRpc2FibGVkIl0sW1syNCxbImxvZ2luTmFtZSJdXSwibG9naW4uZW1haWxfcGxhY2Vob2xkZXIiLCJsb2dpbi1hY2NvdW50LW5hbWUiLCJvZmYiLCJvZmYiLCJhdXRvZm9jdXMiLFsyNCxbImRpc2FibGVMb2dpbkZpZWxkcyJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJmb3IiLCJsb2dpbi1hY2NvdW50LXBhc3N3b3JkIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5wYXNzd29yZCJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJwYXNzd29yZC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsIm1heGxlbmd0aCIsImNhcHNMb2NrT24iLCJkaXNhYmxlZCJdLFtbMjQsWyJsb2dpblBhc3N3b3JkIl1dLCJwYXNzd29yZCIsImxvZ2luLWFjY291bnQtcGFzc3dvcmQiLCIyMDAiLFsyNCxbImNhcHNMb2NrT24iXV0sWzI0LFsiZGlzYWJsZUxvZ2luRmllbGRzIl1dXV1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFsxMiwiaWQiLCJmb3Jnb3QtcGFzc3dvcmQtbGluayJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImZvcmdvdFBhc3N3b3JkIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsiZm9yZ290X3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbImNhcHMtbG9jay13YXJuaW5nICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJjYXBzTG9ja09uIl1dLCJoaWRkZW4iXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZXhjbGFtYXRpb24tdHJpYW5nbGUiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsibG9naW4uY2Fwc19sb2NrX3dhcm5pbmciXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJzZWNvbmQtZmFjdG9yLWZvcm0iLG51bGwsW1sic2Vjb25kRmFjdG9yTWV0aG9kIiwic2Vjb25kRmFjdG9yVG9rZW4iLCJjbGFzcyIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJzZWNvbmRGYWN0b3JDbGFzcyJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dLHRydWVdXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93U2VjdXJpdHlLZXkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInNlY3VyaXR5LWtleS1mb3JtIixudWxsLFtbImFsbG93ZWRDcmVkZW50aWFsSWRzIiwiY2hhbGxlbmdlIiwic2hvd1NlY3VyaXR5S2V5Iiwic2hvd1NlY29uZEZhY3RvciIsInNlY29uZEZhY3Rvck1ldGhvZCIsIm90aGVyTWV0aG9kQWxsb3dlZCIsImFjdGlvbiJdLFtbMjQsWyJzZWN1cml0eUtleUFsbG93ZWRDcmVkZW50aWFsSWRzIl1dLFsyNCxbInNlY3VyaXR5S2V5Q2hhbGxlbmdlIl1dLFsyNCxbInNob3dTZWN1cml0eUtleSJdXSxbMjQsWyJzaG93U2Vjb25kRmFjdG9yIl1dLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJvdGhlck1ldGhvZEFsbG93ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwic2Vjb25kLWZhY3Rvci1pbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlucHV0SWQiLCJzZWNvbmRGYWN0b3JNZXRob2QiLCJiYWNrdXBFbmFibGVkIl0sW1syNCxbInNlY29uZEZhY3RvclRva2VuIl1dLCJsb2dpbi1zZWNvbmQtZmFjdG9yIixbMjQsWyJzZWNvbmRGYWN0b3JNZXRob2QiXV0sWzI0LFsiYmFja3VwRW5hYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93TG9naW5CdXR0b25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImxvZ2luLWJ1dHRvbnMiLG51bGwsW1sic2hvd0xvZ2luV2l0aEVtYWlsTGluayIsInByb2Nlc3NpbmdFbWFpbExpbmsiLCJlbWFpbExvZ2luIiwiZXh0ZXJuYWxMb2dpbiJdLFtbMjQsWyJzaG93TG9naW5XaXRoRW1haWxMaW5rIl1dLFsyNCxbInByb2Nlc3NpbmdFbWFpbExpbmsiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVtYWlsTG9naW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXh0ZXJuYWxMb2dpbiJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuTG9naW5Mb2NhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2hvd1NlY3VyaXR5S2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWQiLCJmb3JtIiwiaWNvbiIsImxhYmVsIiwiZGlzYWJsZWQiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9naW4iXSxudWxsXSwibG9naW4tYnV0dG9uIiwibG9naW4tZm9ybSIsInVubG9jayIsWzI0LFsibG9naW5CdXR0b25MYWJlbCJdXSxbMjQsWyJsb2dpbkRpc2FibGVkIl1dLCJidG4gYnRuLWxhcmdlIGJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2lnbnVwTGluayJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiaWQiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLWxhcmdlIiwibmV3LWFjY291bnQtbGluayIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZUFjY291bnQiXSxudWxsXSwiY3JlYXRlX2FjY291bnQudGl0bGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iLCJzaXplIl0sW1syNCxbInNob3dTcGlubmVyIl1dLCJzbWFsbCJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsInRhZ05hbWUiXSxbImxvZ2luLWFmdGVyLW1vZGFsLWZvb3RlciIsIiJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsb2dpbi1hbGVydCJdLFsxMSwiY2xhc3MiLFsyMiwiYWxlcnRDbGFzcyJdXSxbOF0sWzEsWzIyLCJhbGVydCJdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9sb2dpbiJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9tb3ZlLXRvLXRvcGljIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLFtbImlkIl0sWyJjaG9vc2luZy10b3BpYyJdXSx7InN0YXRlbWVudHMiOltbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpc1ByaXZhdGVNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb1BNIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvLWxhYmVsIl0sWzEwLCJmb3IiLCJtb3ZlLXRvLW5ldy1tZXNzYWdlIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJyYWRpby1idXR0b24iLG51bGwsW1siaWQiLCJuYW1lIiwidmFsdWUiLCJzZWxlY3Rpb24iXSxbIm1vdmUtdG8tbmV3LW1lc3NhZ2UiLCJtb3ZlLXRvLWVudGl0eSIsIm5ld19tZXNzYWdlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubW92ZV90b19uZXdfbWVzc2FnZS5yYWRpb19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8tbGFiZWwiXSxbMTAsImZvciIsIm1vdmUtdG8tZXhpc3RpbmctbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1leGlzdGluZy1tZXNzYWdlIiwibW92ZS10by1lbnRpdHkiLCJleGlzdGluZ19tZXNzYWdlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fZXhpc3RpbmdfbWVzc2FnZS5yYWRpb19sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJuZXdNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UuaW5zdHJ1Y3Rpb25zIl0sW1siY291bnQiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UubWVzc2FnZV90aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImVsZW1lbnRJZCJdLFtbMjQsWyJ0b3BpY05hbWUiXV0sImNvbXBvc2VyLnRpdGxlX3BsYWNlaG9sZGVyIiwic3BsaXQtdG9waWMtbmFtZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5UYWdNZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImZpbHRlcmFibGUiXSxbWzI0LFsidGFncyJdXSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXhpc3RpbmdNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX2V4aXN0aW5nX21lc3NhZ2UuaW5zdHJ1Y3Rpb25zIl0sW1siY291bnQiXSxbWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dXV1dLHRydWVdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNob29zZS1tZXNzYWdlIixudWxsLFtbImN1cnJlbnRUb3BpY0lkIiwic2VsZWN0ZWRUb3BpY0lkIl0sW1syNCxbIm1vZGVsIiwiaWQiXV0sWzI0LFsic2VsZWN0ZWRUb3BpY0lkIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubW92ZV90b19uZXdfbWVzc2FnZS5wYXJ0aWNpcGFudHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zZWxlY3RvciIsbnVsbCxbWyJ1c2VybmFtZXMiLCJjbGFzcyJdLFtbMjQsWyJwYXJ0aWNpcGFudHMiXV0sInBhcnRpY2lwYW50LXNlbGVjdG9yIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU3BsaXRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1uZXctdG9waWMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1uZXctdG9waWMiLCJtb3ZlLXRvLWVudGl0eSIsIm5ld190b3BpYyIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLnNwbGl0X3RvcGljLnJhZGlvX2xhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1leGlzdGluZy10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJpZCIsIm5hbWUiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsibW92ZS10by1leGlzdGluZy10b3BpYyIsIm1vdmUtdG8tZW50aXR5IiwiZXhpc3RpbmdfdG9waWMiLFsyNCxbInNlbGVjdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubWVyZ2VfdG9waWMucmFkaW9fbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNwbGl0VG9QTSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpby1sYWJlbCJdLFsxMCwiZm9yIiwibW92ZS10by1uZXctbWVzc2FnZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicmFkaW8tYnV0dG9uIixudWxsLFtbImlkIiwibmFtZSIsInZhbHVlIiwic2VsZWN0aW9uIl0sWyJtb3ZlLXRvLW5ldy1tZXNzYWdlIiwibW92ZS10by1lbnRpdHkiLCJuZXdfbWVzc2FnZSIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJiIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1vdmVfdG9fbmV3X21lc3NhZ2UucmFkaW9fbGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImV4aXN0aW5nVG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm1lcmdlX3RvcGljLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJmb3JtIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjaG9vc2UtdG9waWMiLG51bGwsW1siY3VycmVudFRvcGljSWQiLCJzZWxlY3RlZFRvcGljSWQiXSxbWzI0LFsibW9kZWwiLCJpZCJdXSxbMjQsWyJzZWxlY3RlZFRvcGljSWQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TcGxpdFRvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm5ld1RvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLnNwbGl0X3RvcGljLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5zcGxpdF90b3BpYy50b3BpY19uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInBsYWNlaG9sZGVyS2V5IiwiZWxlbWVudElkIl0sW1syNCxbInRvcGljTmFtZSJdXSwiY29tcG9zZXIudGl0bGVfcGxhY2Vob2xkZXIiLCJzcGxpdC10b3BpYy1uYW1lIl1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5jYXRlZ29yeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sidmFsdWUiLCJjbGFzcyIsIm9uQ2hhbmdlIl0sW1syNCxbImNhdGVnb3J5SWQiXV0sInNtYWxsIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImNhdGVnb3J5SWQiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkFkZFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnRhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJmaWx0ZXJhYmxlIiwiY2F0ZWdvcnlJZCJdLFtbMjQsWyJ0YWdzIl1dLHRydWUsWzI0LFsiY2F0ZWdvcnlJZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNwbGl0VG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibmV3TWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX25ld19tZXNzYWdlLmluc3RydWN0aW9ucyJdLFtbImNvdW50Il0sW1syNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0b3BpYy5tb3ZlX3RvX25ld19tZXNzYWdlLm1lc3NhZ2VfdGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXJLZXkiLCJlbGVtZW50SWQiXSxbWzI0LFsidG9waWNOYW1lIl1dLCJjb21wb3Nlci50aXRsZV9wbGFjZWhvbGRlciIsInNwbGl0LXRvcGljLW5hbWUiXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuVGFnTWVzc2FnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnRhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJmaWx0ZXJhYmxlIl0sW1syNCxbInRhZ3MiXV0sdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJhY3Rpb24iXSxbImJ0bi1wcmltYXJ5IixbMjQsWyJidXR0b25EaXNhYmxlZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicGVyZm9ybU1vdmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJkLWljb24iLFsic2lnbi1vdXQtYWx0Il0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzIyLCJidXR0b25UaXRsZSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvbW92ZS10by10b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9ub3QtYWN0aXZhdGVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLm5vdF9hY3RpdmF0ZWQiXSxbWyJzZW50VG8iXSxbWzI0LFsic2VudFRvIl1dXV1dLHRydWVdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImFjdGl2YXRpb24tY29udHJvbHMiLG51bGwsW1sic2VuZEFjdGl2YXRpb25FbWFpbCIsImVkaXRBY3RpdmF0aW9uRW1haWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbmRBY3RpdmF0aW9uRW1haWwiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdEFjdGl2YXRpb25FbWFpbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvbm90LWFjdGl2YXRlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9wb3N0LWVucXVldWVkIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmFwcHJvdmFsLmRlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuYXBwcm92YWwucGVuZGluZ19wb3N0cyJdLFtbImNvdW50Il0sW1syNCxbIm1vZGVsIiwicGVuZGluZ19jb3VudCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJyZXZpZXcuYXBwcm92YWwub2siXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvcG9zdC1lbnF1ZXVlZCJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9yYXctZW1haWwiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyIsIm1heEhlaWdodCJdLFsicmF3X2VtYWlsLnRpdGxlIiwiaW5jb21pbmctZW1haWwtbW9kYWwiLCI4MCUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluY29taW5nLWVtYWlsLXRhYnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheVJhdyJdLG51bGxdLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy5yYXcuYnV0dG9uIiwicG9zdC5yYXdfZW1haWwuZGlzcGxheXMucmF3LnRpdGxlIixbMjgsImlmIixbWzI0LFsic2hvd1Jhd0VtYWlsIl1dLCJhY3RpdmUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInRleHRQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheVRleHRQYXJ0Il0sbnVsbF0sInBvc3QucmF3X2VtYWlsLmRpc3BsYXlzLnRleHRfcGFydC5idXR0b24iLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy50ZXh0X3BhcnQudGl0bGUiLFsyOCwiaWYiLFtbMjQsWyJzaG93VGV4dFBhcnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImh0bWxQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImxhYmVsIiwidGl0bGUiLCJjbGFzcyJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzcGxheUh0bWxQYXJ0Il0sbnVsbF0sInBvc3QucmF3X2VtYWlsLmRpc3BsYXlzLmh0bWxfcGFydC5idXR0b24iLCJwb3N0LnJhd19lbWFpbC5kaXNwbGF5cy5odG1sX3BhcnQudGl0bGUiLFsyOCwiaWYiLFtbMjQsWyJzaG93SHRtbFBhcnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbmNvbWluZy1lbWFpbC1jb250ZW50Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93UmF3RW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmF3RW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0YXJlYSIsbnVsbCxbWyJ2YWx1ZSJdLFtbMjQsWyJyYXdFbWFpbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyYXdfZW1haWwubm90X2F2YWlsYWJsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGV4dFBhcnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidGV4dGFyZWEiLG51bGwsW1sidmFsdWUiXSxbWzI0LFsidGV4dFBhcnQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0h0bWxQYXJ0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImlmcmFtZWQtaHRtbCIsbnVsbCxbWyJodG1sIiwiY2xhc3NOYW1lIl0sW1syNCxbImh0bWxQYXJ0Il1dLCJpbmNvbWluZy1lbWFpbC1odG1sLXBhcnQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvcmF3LWVtYWlsIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3JlbmFtZS10YWciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRhZ2dpbmcucmVuYW1lX3RhZyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcucmVuYW1lX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJpbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsIm1heGxlbmd0aCJdLFtbMjQsWyJidWZmZXJlZCIsImlkIl1dLFsyNCxbInNpdGVTZXR0aW5ncyIsIm1heF90YWdfbGVuZ3RoIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibW9kYWwtZm9vdGVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInBlcmZvcm1SZW5hbWUiXSxudWxsXSwidGFnZ2luZy5yZW5hbWVfdGFnIixbMjQsWyJyZW5hbWVEaXNhYmxlZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3JlbmFtZS10YWcifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvcmVvcmRlci1jYXRlZ29yaWVzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJjYXQiXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1siY2xhc3MiLCJ0aXRsZSJdLFsicmVvcmRlci1jYXRlZ29yaWVzIGZ1bGwtaGVpZ2h0LW1vZGFsIiwiY2F0ZWdvcmllcy5yZW9yZGVyLnRpdGxlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJyYy1zY3JvbGwtYW5jaG9yIl0sWzhdLFs5XSxbMCwiXFxuICAiXSxbNywidGFibGUiLHRydWVdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNsYXNzIiwidGgtY2F0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJjYXRlZ29yaWVzLmNhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRoLXBvcyJdLFs4XSxbMSxbMjgsImkxOG4iLFsiY2F0ZWdvcmllcy5yZW9yZGVyLnBvc2l0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImNhdGVnb3JpZXNPcmRlcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiZGF0YS1jYXRlZ29yeS1pZCIsWzI5LFtbMjMsMSxbImlkIl1dXV1dLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOCwiY29uY2F0IixbInJlb3JkZXItY2F0ZWdvcmllcy1kZXB0aC0iLFsyMywxLFsiZGVwdGgiXV1dLG51bGxdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktYmFkZ2UiLFtbMjMsMSxbXV1dLFtbImFsbG93VW5jYXRlZ29yaXplZCJdLFsidHJ1ZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwibnVtYmVyLWZpZWxkIixudWxsLFtbIm51bWJlciIsImNoYW5nZSJdLFtbMjgsInJlYWRvbmx5IixbWzIzLDEsWyJwb3NpdGlvbiJdXV0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZSIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIl0sWyJidG4tZGVmYXVsdCBuby10ZXh0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibW92ZVVwIl0sbnVsbF0sWzIzLDEsW11dLCJhcnJvdy11cCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImFjdGlvblBhcmFtIiwiaWNvbiJdLFsiYnRuLWRlZmF1bHQgbm8tdGV4dCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1vdmVEb3duIl0sbnVsbF0sWzIzLDEsW11dLCJhcnJvdy1kb3duIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInJjLXNjcm9sbC1ib3R0b20iXSxbOF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm1vZGFsLWZvb3RlciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdLCJjYXRlZ29yaWVzLnJlb3JkZXIuc2F2ZSJdXV0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9yZW9yZGVyLWNhdGVnb3JpZXMifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvcmVxdWVzdC1ncm91cC1tZW1iZXJzaGlwLWZvcm0iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwicmVxdWVzdC1ncm91cC1tZW1iZXJzaGlwLWZvcm0iXSxbOF0sWzAsIlxcbiJdLFs0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sicmF3VGl0bGUiXSxbWzI0LFsidGl0bGUiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsiZ3JvdXBzLm1lbWJlcnNoaXBfcmVxdWVzdC5yZWFzb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzEsWzI4LCJleHBhbmRpbmctdGV4dC1hcmVhIixudWxsLFtbInZhbHVlIl0sW1syNCxbInJlYXNvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiZGlzYWJsZWQiLCJsYWJlbCIsImFjdGlvbiJdLFsiYnRuLXByaW1hcnkiLFsyNCxbImRpc2FibGVTdWJtaXQiXV0sImdyb3Vwcy5tZW1iZXJzaGlwX3JlcXVlc3Quc3VibWl0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVxdWVzdE1lbWJlciJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICJdLFsxLFsyOCwiZC1tb2RhbC1jYW5jZWwiLG51bGwsW1siY2xvc2UiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbInNpemUiLCJjb25kaXRpb24iXSxbInNtYWxsIixbMjQsWyJsb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3JlcXVlc3QtZ3JvdXAtbWVtYmVyc2hpcC1mb3JtIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItYWRkLXNlY3VyaXR5LWtleSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtbW9kYWwtYm9keSIsbnVsbCxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJlcnJvck1lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1lcnJvciJdLFs4XSxbMSxbMjIsImVycm9yTWVzc2FnZSJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmVuYWJsZV9zZWN1cml0eV9rZXlfZGVzY3JpcHRpb24iXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwiaWQiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJzZWN1cml0eUtleU5hbWUiXV0sInRlc3QiLCJzZWN1cml0eSBrZXkgbmFtZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsid2ViYXV0aG5VbnN1cHBvcnRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgYWRkLXRvdHAiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWdpc3RlclNlY3VyaXR5S2V5Il0sbnVsbF0sInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkucmVnaXN0ZXIiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3NlY29uZC1mYWN0b3ItYWRkLXNlY3VyaXR5LWtleSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9zZWNvbmQtZmFjdG9yLWFkZC10b3RwIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVycm9yTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFsxLFsyMiwiZXJyb3JNZXNzYWdlIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5lbmFibGVfZGVzY3JpcHRpb24iXSxudWxsXSx0cnVlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicXItY29kZS1jb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicXItY29kZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzIyLCJzZWNvbmRGYWN0b3JJbWFnZSJdLHRydWVdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2Vjb25kRmFjdG9yS2V5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInNlY29uZEZhY3RvcktleSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1NlY29uZEZhY3RvcktleSJdXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5zaG93X2tleV9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIGlucHV0LXByZXBlbmQiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwic2Vjb25kLWZhY3Rvci1pbnB1dCIsbnVsbCxbWyJ2YWx1ZSIsImlucHV0SWQiLCJwbGFjZWhvbGRlciJdLFtbMjQsWyJzZWNvbmRGYWN0b3JOYW1lIl1dLCJzZWNvbmQtZmFjdG9yLW5hbWUiLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5kZWZhdWx0X25hbWUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCBpbnB1dC1wcmVwZW5kIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IubGFiZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJzZWNvbmQtZmFjdG9yLWlucHV0IixudWxsLFtbIm1heGxlbmd0aCIsInZhbHVlIiwiaW5wdXRJZCIsInBsYWNlaG9sZGVyIl0sWzYsWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sInNlY29uZC1mYWN0b3ItdG9rZW4iLCIxMjM0NTYiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IGFkZC10b3RwIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZW5hYmxlU2Vjb25kRmFjdG9yIl0sbnVsbF0sImVuYWJsZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zZWNvbmQtZmFjdG9yLWFkZC10b3RwIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItYmFja3VwLWVkaXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJlZmVyZW5jZXMgc29sby1wcmVmZXJlbmNlICBzZWNvbmQtZmFjdG9yLWJhY2t1cC1wcmVmZXJlbmNlcyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZvcm0taG9yaXpvbnRhbCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic3VjY2Vzc01lc3NhZ2UiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1zdWNjZXNzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwic3VjY2Vzc01lc3NhZ2UiXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImVycm9yTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyMiwiZXJyb3JNZXNzYWdlIl0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJiYWNrdXBFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5yZW1haW5pbmdfY29kZXMiXSxbWyJjb3VudCJdLFtbMjQsWyJyZW1haW5pbmdDb2RlcyJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImdlbmVyYXRlU2Vjb25kRmFjdG9yQ29kZXMiXSxudWxsXSwic3VibWl0IixbMjQsWyJsb2FkaW5nIl1dLFsyNCxbImdlbmVyYXRlQmFja3VwQ29kZUJ0bkxhYmVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYmFja3VwRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLWRhbmdlciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRpc2FibGVTZWNvbmRGYWN0b3JCYWNrdXAiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmRpc2FibGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJjb25kaXRpb25hbC1sb2FkaW5nLXNlY3Rpb24iLG51bGwsW1siaXNMb2FkaW5nIl0sW1syNCxbImxvYWRpbmciXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJiYWNrdXBDb2RlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5jb2Rlcy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3JfYmFja3VwLmNvZGVzLmRlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAiXSxbMSxbMjgsImJhY2t1cC1jb2RlcyIsbnVsbCxbWyJjb3B5QmFja3VwQ29kZSIsImJhY2t1cENvZGVzIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb3B5QmFja3VwQ29kZSJdLG51bGxdLFsyNCxbImJhY2t1cENvZGVzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zZWNvbmQtZmFjdG9yLWJhY2t1cC1lZGl0In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NlY29uZC1mYWN0b3ItZWRpdC1zZWN1cml0eS1rZXkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIl0sWyJ0ZXh0IixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3RvciBpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5lZGl0X2Rlc2NyaXB0aW9uIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVkaXRTZWN1cml0eUtleSJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuc2Vjb25kX2ZhY3Rvci5zZWN1cml0eV9rZXkuZWRpdCJdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzYWJsZVNlY3VyaXR5S2V5Il0sbnVsbF0sImJ0bi1kYW5nZXIiLCJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmRlbGV0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvc2Vjb25kLWZhY3Rvci1lZGl0LXNlY3VyaXR5LWtleSJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC9zZWNvbmQtZmFjdG9yLWVkaXQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIl0sWyJ0ZXh0IixbMjQsWyJtb2RlbCIsIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3RvciBpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmVkaXRfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFNlY29uZEZhY3RvciJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuc2Vjb25kX2ZhY3Rvci5lZGl0Il1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkaXNhYmxlU2Vjb25kRmFjdG9yIl0sbnVsbF0sImJ0bi1kYW5nZXIiLCJ1c2VyLnNlY29uZF9mYWN0b3IuZGlzYWJsZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibW9kYWwvc2Vjb25kLWZhY3Rvci1lZGl0In19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3NoYXJlLWFuZC1pbnZpdGUiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsIm1vZGFsLXBhbmVsIixudWxsLFtbInBhbmVsIl0sW1syNCxbIm1vZGFsIiwic2VsZWN0ZWRQYW5lbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJtb2RhbC9zaGFyZS1hbmQtaW52aXRlIn19KSxFbWJlci5URU1QTEFURVNbIm1vZGFsL3RhZy11cGxvYWQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiXSxbInRhZ2dpbmcudXBsb2FkIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFncy11cGxvYWRlciIsbnVsbCxbWyJyZWZyZXNoIiwiY2xvc2VNb2RhbCJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJyZWZyZXNoIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2xvc2VNb2RhbCJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3RhZy11cGxvYWQifX0pLEVtYmVyLlRFTVBMQVRFU1sibW9kYWwvdG9waWMtYnVsay1hY3Rpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1tb2RhbC1ib2R5IixudWxsLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWNzLmJ1bGsuc2VsZWN0ZWQiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInRvcGljcyIsImxlbmd0aCJdXV1dXSx0cnVlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJvdXRsZXQiLFsiYnVsa091dGxldCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3RvcGljLWJ1bGstYWN0aW9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJtb2RhbC91cGxvYWQtc2VsZWN0b3IiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLW1vZGFsLWJvZHkiLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFtbMjQsWyJ0aXRsZSJdXSwidXBsb2FkLXNlbGVjdG9yIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpb3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJuYW1lIiwiaWQiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsidXBsb2FkIiwibG9jYWwiLCJsb2NhbCIsWzI0LFsic2VsZWN0aW9uIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvIl0sWzEwLCJmb3IiLCJsb2NhbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmZyb21fbXlfY29tcHV0ZXIiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsb2NhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiaW5wdXQiLHRydWVdLFsxMCwiaWQiLCJmaWxlbmFtZS1pbnB1dCJdLFsxMCwibXVsdGlwbGUiLCIiXSxbMTAsInR5cGUiLCJmaWxlIl0sWzhdLFs5XSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZXNjcmlwdGlvbiJdLFs4XSxbMSxbMjIsInRpcCJdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyYWRpb3MiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInJhZGlvLWJ1dHRvbiIsbnVsbCxbWyJuYW1lIiwiaWQiLCJ2YWx1ZSIsInNlbGVjdGlvbiJdLFsidXBsb2FkIiwicmVtb3RlIiwicmVtb3RlIixbMjQsWyJzZWxlY3Rpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwicmFkaW8iXSxbMTAsImZvciIsInJlbW90ZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmZyb21fdGhlX3dlYiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInJlbW90ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImlucHV0cyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInZhbHVlIiwicGxhY2Vob2xkZXIiXSxbWzI0LFsiaW1hZ2VVcmwiXV0sImh0dHA6Ly9leGFtcGxlLmNvbS9pbWFnZS5wbmciXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRlc2NyaXB0aW9uIl0sWzhdLFsxLFsyMiwidGlwIl0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJhZGlvcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwiaGludCJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FwYWJpbGl0aWVzIiwiY2FuUGFzdGVJbWFnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXBsb2FkX3NlbGVjdG9yLmhpbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVwbG9hZF9zZWxlY3Rvci5oaW50X2Zvcl9zdXBwb3J0ZWRfYnJvd3NlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJtb2RhbC1mb290ZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBsb2FkIl0sbnVsbF0sImJ0bi1wcmltYXJ5IixbMjQsWyJ1cGxvYWRJY29uIl1dLCJ1cGxvYWQiXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImQtbW9kYWwtY2FuY2VsIixudWxsLFtbImNsb3NlIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNsb3NlTW9kYWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im1vZGFsL3VwbG9hZC1zZWxlY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1siYm9keUNsYXNzIiwiY2xhc3MiXSxbIm5hdmlnYXRpb24tY2F0ZWdvcmllcyIsIm5hdmlnYXRpb24tY29udGFpbmVyIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1uYXZpZ2F0aW9uIixudWxsLFtbImZpbHRlclR5cGUiLCJzaG93Q2F0ZWdvcnlBZG1pbiIsImNyZWF0ZUNhdGVnb3J5IiwicmVvcmRlckNhdGVnb3JpZXMiLCJjYW5DcmVhdGVUb3BpYyIsImhhc0RyYWZ0IiwiY3JlYXRlVG9waWMiXSxbImNhdGVnb3JpZXMiLFsyNCxbInNob3dDYXRlZ29yeUFkbWluIl1dLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZUNhdGVnb3J5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsicmVvcmRlckNhdGVnb3JpZXMiXSxudWxsXSxbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjQsWyJkcmFmdCJdXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJjcmVhdGVUb3BpYyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im5hdmlnYXRpb24vY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJuYXZpZ2F0aW9uL2NhdGVnb3J5Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbImNsYXNzIl0sWyJuYXZpZ2F0aW9uLWNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImFkZC1jYXRlZ29yeS10YWctY2xhc3NlcyIsbnVsbCxbWyJjYXRlZ29yeSJdLFtbMjQsWyJjYXRlZ29yeSJdXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJjYXRlZ29yeS1oZWFkaW5nIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYXRlZ29yeSIsInVwbG9hZGVkX2xvZ28iLCJ1cmwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiY2RuLWltZyIsbnVsbCxbWyJzcmMiLCJjbGFzcyIsIndpZHRoIiwiaGVpZ2h0Il0sW1syNCxbImNhdGVnb3J5IiwidXBsb2FkZWRfbG9nbyIsInVybCJdXSwiY2F0ZWdvcnktbG9nbyIsWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwid2lkdGgiXV0sWzI0LFsiY2F0ZWdvcnkiLCJ1cGxvYWRlZF9sb2dvIiwiaGVpZ2h0Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2F0ZWdvcnkiLCJkZXNjcmlwdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZGlyLXNwYW4iLFtbMjQsWyJjYXRlZ29yeSIsImRlc2NyaXB0aW9uIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbmF2aWdhdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiZC1uYXZpZ2F0aW9uIixudWxsLFtbImNhdGVnb3J5IiwiZmlsdGVyTW9kZSIsIm5vU3ViY2F0ZWdvcmllcyIsImNhbkNyZWF0ZVRvcGljIiwiY3JlYXRlVG9waWMiLCJjcmVhdGVUb3BpY0Rpc2FibGVkIiwiaGFzRHJhZnQiLCJlZGl0Q2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV0sWzI0LFsiZmlsdGVyTW9kZSJdXSxbMjQsWyJub1N1YmNhdGVnb3JpZXMiXV0sWzI0LFsiY2FuQ3JlYXRlVG9waWMiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlVG9waWMiXSxudWxsXSxbMjQsWyJjYW5ub3RDcmVhdGVUb3BpY09uQ2F0ZWdvcnkiXV0sWzI0LFsiZHJhZnQiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiZWRpdENhdGVnb3J5IixbMjQsWyJjYXRlZ29yeSJdXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJjYXRlZ29yeS1uYXZpZ2F0aW9uIixbMjgsImhhc2giLG51bGwsW1siY2F0ZWdvcnkiXSxbWzI0LFsiY2F0ZWdvcnkiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im5hdmlnYXRpb24vY2F0ZWdvcnkifX0pLEVtYmVyLlRFTVBMQVRFU1sibmF2aWdhdGlvbi9kZWZhdWx0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbImJvZHlDbGFzcyIsImNsYXNzIiwic2Nyb2xsVG9wIl0sWyJuYXZpZ2F0aW9uLXRvcGljcyIsIm5hdmlnYXRpb24tY29udGFpbmVyIiwiZmFsc2UiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLW5hdmlnYXRpb24iLG51bGwsW1siZmlsdGVyTW9kZSIsImNhbkNyZWF0ZVRvcGljIiwiaGFzRHJhZnQiLCJjcmVhdGVUb3BpYyJdLFtbMjQsWyJmaWx0ZXJNb2RlIl1dLFsyNCxbImNhbkNyZWF0ZVRvcGljIl1dLFsyNCxbImRyYWZ0Il1dLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZVRvcGljIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToibmF2aWdhdGlvbi9kZWZhdWx0In19KSxFbWJlci5URU1QTEFURVNbIm91dGxldC1saXN0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsImNvbm5lY3RvciIsbnVsbCxbWyJ0ZW1wbGF0ZUlkIiwiY2xhc3MiLCJ0YWdOYW1lIl0sW1syOCwidW5ib3VuZCIsW1syNCxbInRlbXBsYXRlSWQiXV1dLG51bGxdLFsyOCwidW5ib3VuZCIsW1syNCxbIm91dGxldENsYXNzZXMiXV1dLG51bGxdLFsyOCwidW5ib3VuZCIsW1syNCxbInRhZ05hbWUiXV1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6Im91dGxldC1saXN0In19KSxFbWJlci5URU1QTEFURVNbInBhc3N3b3JkLXJlc2V0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIHBhc3N3b3JkLXJlc2V0IGNsZWFyZml4Il0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLWxlZnQgY29sLWltYWdlIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImltZyIsdHJ1ZV0sWzExLCJzcmMiLFsyMiwibG9ja0ltYWdlVXJsIl1dLFsxMCwiY2xhc3MiLCJwYXNzd29yZC1yZXNldC1pbWciXSxbOF0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHVsbC1sZWZ0IGNvbC1mb3JtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzdWNjZXNzTWVzc2FnZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjIsInN1Y2Nlc3NNZXNzYWdlIl0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicmVxdWlyZXNBcHByb3ZhbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJsb2dpbi5ub3RfYXBwcm92ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsicmVkaXJlY3RlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJjbGFzcyIsImJ0biJdLFsxMiwiaHJlZiIsWzI5LFtbMjIsInJlZGlyZWN0SHJlZiJdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImRvbmUiXV0sWzhdLFsxLFsyMiwiY29udGludWVCdXR0b25UZXh0Il0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZm9ybSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzZWN1cml0eUtleU9yU2Vjb25kRmFjdG9yUmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiYnIiLHRydWVdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNlY3VyaXR5S2V5UmVxdWlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInNlY3VyaXR5LWtleS1mb3JtIixudWxsLFtbImFsbG93ZWRDcmVkZW50aWFsSWRzIiwiY2hhbGxlbmdlIiwic2hvd1NlY3VyaXR5S2V5Iiwic2hvd1NlY29uZEZhY3RvciIsInNlY29uZEZhY3Rvck1ldGhvZCIsIm90aGVyTWV0aG9kQWxsb3dlZCIsImFjdGlvbiJdLFtbMjQsWyJtb2RlbCIsImFsbG93ZWRfY3JlZGVudGlhbF9pZHMiXV0sWzI0LFsibW9kZWwiLCJzZWN1cml0eV9rZXlfY2hhbGxlbmdlIl1dLFsyNCxbIm1vZGVsIiwic2VjdXJpdHlfa2V5X3JlcXVpcmVkIl1dLGZhbHNlLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJvdGhlck1ldGhvZEFsbG93ZWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImF1dGhlbnRpY2F0ZVNlY3VyaXR5S2V5Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltdLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInNlY29uZC1mYWN0b3ItZm9ybSIsbnVsbCxbWyJzZWNvbmRGYWN0b3JNZXRob2QiLCJzZWNvbmRGYWN0b3JUb2tlbiIsImJhY2t1cEVuYWJsZWQiLCJpc0xvZ2luIl0sW1syNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJzZWNvbmRGYWN0b3JUb2tlbiJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dLGZhbHNlXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzZWNvbmQtZmFjdG9yLWlucHV0IixudWxsLFtbInZhbHVlIiwiaW5wdXRJZCIsInNlY29uZEZhY3Rvck1ldGhvZCIsImJhY2t1cEVuYWJsZWQiXSxbWzI0LFsic2Vjb25kRmFjdG9yVG9rZW4iXV0sInNlY29uZC1mYWN0b3IiLFsyNCxbInNlY29uZEZhY3Rvck1ldGhvZCJdXSxbMjQsWyJiYWNrdXBFbmFibGVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX1dLFs0LCJ1bmxlc3MiLFtbMjQsWyJzZWN1cml0eUtleVJlcXVpcmVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiLCJ0eXBlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzdWJtaXQiXSxudWxsXSwiYnRuLXByaW1hcnkiLCJzdWJtaXQiLCJzdWJtaXQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcGFzc3dvcmQuY2hvb3NlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnB1dCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwYXNzd29yZC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsInR5cGUiLCJpZCIsImNhcHNMb2NrT24iLCJhdXRvZm9jdXMiXSxbWzI0LFsiYWNjb3VudFBhc3N3b3JkIl1dLCJwYXNzd29yZCIsIm5ldy1hY2NvdW50LXBhc3N3b3JkIixbMjQsWyJjYXBzTG9ja09uIl1dLCJhdXRvZm9jdXMiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgwqAiXSxbMSxbMjgsImlucHV0LXRpcCIsbnVsbCxbWyJ2YWxpZGF0aW9uIl0sW1syNCxbInBhc3N3b3JkVmFsaWRhdGlvbiJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjYXBzLWxvY2std2FybmluZyAiLFsyOCwidW5sZXNzIixbWzI0LFsiY2Fwc0xvY2tPbiJdXSwiaW52aXNpYmxlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbImxvZ2luLmNhcHNfbG9ja193YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCIsInR5cGUiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInN1Ym1pdCJdLG51bGxdLCJidG4tcHJpbWFyeSIsInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnNldF9wYXNzd29yZCIsInN1Ym1pdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicGFzc3dvcmQtcmVzZXQifX0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJwb3N0L3Bvc3Rlci1hdmF0YXIiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoe2NvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nPGEgaHJlZj0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInBvc3QudXNlcm5hbWVVcmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEsY29sdW1uOjl9LGVuZDp7bGluZToxLGNvbHVtbjoyOX19fSkpKyciIGNsYXNzTmFtZXM9InRyaWdnZXItdXNlci1jYXJkICcrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJjbGFzc05hbWVzIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo2MX0sZW5kOntsaW5lOjEsY29sdW1uOjc1fX19KSkrJyIgZGF0YS11c2VyLWNhcmQ9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJwb3N0LnVzZXJuYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjo5M30sZW5kOntsaW5lOjEsY29sdW1uOjExMH19fSkpKyciPicrZS5lc2NhcGVFeHByZXNzaW9uKChuLmF2YXRhcnx8dCYmdC5hdmF0YXJ8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInBvc3QiLHtuYW1lOiJhdmF0YXIiLGhhc2g6e2ltYWdlU2l6ZToibGFyZ2UifSxoYXNoVHlwZXM6e2ltYWdlU2l6ZToiU3RyaW5nTGl0ZXJhbCJ9LGhhc2hDb250ZXh0czp7aW1hZ2VTaXplOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MTEyfSxlbmQ6e2xpbmU6MSxjb2x1bW46MTQ1fX19KSkrIjwvYT5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbInByZWZlcmVuY2VzLWVtYWlsIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJlZmVyZW5jZXMgc29sby1wcmVmZXJlbmNlIl0sWzhdLFswLCJcXG4gICJdLFs3LCJmb3JtIix0cnVlXSxbMTAsImNsYXNzIiwiZm9ybS1ob3Jpem9udGFsIl0sWzhdLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiaDMiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInN1Y2Nlc3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwuc3VjY2Vzc19zdGFmZiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwuc3VjY2VzcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3NOYW1lcyIsImF1dG9mb2N1cyJdLFtbMjQsWyJuZXdFbWFpbCJdXSwiY2hhbmdlLWVtYWlsIiwiaW5wdXQteHhsYXJnZSIsImF1dG9mb2N1cyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpbnB1dC10aXAiLG51bGwsW1sidmFsaWRhdGlvbiJdLFtbMjQsWyJlbWFpbFZhbGlkYXRpb24iXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWtlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfZW1haWwudGFrZW4iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmVtYWlsLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsInR5cGUiLCJkaXNhYmxlZCJdLFsiYnRuLXByaW1hcnkiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VFbWFpbCJdLG51bGxdLCJzdWJtaXQiLFsyNCxbInNhdmVEaXNhYmxlZCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInNhdmVCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMtZW1haWwifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMtc2Vjb25kLWZhY3RvciJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsic2VjdXJpdHlfa2V5IiwidG90cCJdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByZWZlcmVuY2VzIHNvbG8tcHJlZmVyZW5jZSBzZWNvbmQtZmFjdG9yIl0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dFbmZvcmNlZE5vdGljZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFsZXJ0IGFsZXJ0LWVycm9yIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IuZW5mb3JjZWRfbm90aWNlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImRpc3BsYXlPQXV0aFdhcm5pbmciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3Iub2F1dGhfZW5hYmxlZF93YXJuaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiZXJyb3JNZXNzYWdlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtZXJyb3IiXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnRvdHAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNyZWF0ZVRvdHAiXSxudWxsXSwiYnRuLXByaW1hcnkgbmV3LXRvdHAiLFsyNCxbImxvYWRpbmciXV0sInVzZXIuc2Vjb25kX2ZhY3Rvci50b3RwLmFkZCJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInRvdHBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3Rvci1pdGVtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMixbIm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMixbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IudG90cC5kZWZhdWx0X25hbWUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJkaXNhYmxlZCIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImVkaXRTZWNvbmRGYWN0b3IiLFsyMywyLFtdXV0sbnVsbF0sImJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IGVkaXQiLFsyNCxbImxvYWRpbmciXV0sInBlbmNpbC1hbHQiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY3JlYXRlU2VjdXJpdHlLZXkiXSxudWxsXSwiYnRuLXByaW1hcnkgbmV3LXNlY3VyaXR5LWtleSIsWzI0LFsibG9hZGluZyJdXSwidXNlci5zZWNvbmRfZmFjdG9yLnNlY3VyaXR5X2tleS5hZGQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJzZWN1cml0eV9rZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwic2Vjb25kLWZhY3Rvci1pdGVtIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbIm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3Iuc2VjdXJpdHlfa2V5LmRlZmF1bHRfbmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpc0N1cnJlbnRVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImRpc2FibGVkIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFNlY3VyaXR5S2V5IixbMjMsMSxbXV1dLG51bGxdLCJidG4tZGVmYXVsdCBidG4tc21hbGwgYnRuLWljb24gcGFkLWxlZnQgbm8tdGV4dCBlZGl0IixbMjQsWyJsb2FkaW5nIl1dLCJwZW5jaWwtYWx0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHByZWYtc2Vjb25kLWZhY3Rvci1iYWNrdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9iYWNrdXBfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5tYW5hZ2UiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInNlY29uZF9mYWN0b3JfcmVtYWluaW5nX2JhY2t1cF9jb2RlcyJdXV1dXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvcl9iYWNrdXAuZW5hYmxlX2xvbmciXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwiZGlzYWJsZWQiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJlZGl0U2Vjb25kRmFjdG9yQmFja3VwIl0sbnVsbF0sImJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IGVkaXQgZWRpdC0yZmEtYmFja3VwIixbMjQsWyJsb2FkaW5nIl1dLCJwZW5jaWwtYWx0Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yX2JhY2t1cC5lbmFibGVfcHJlcmVxdWlzaXRlcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInNlY29uZF9mYWN0b3JfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwidW5sZXNzIixbWzI0LFsic2hvd0VuZm9yY2VkTm90aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmRpc2FibGVfdGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJkaXNhYmxlZCIsImxhYmVsIl0sWyJidG4tZGFuZ2VyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGlzYWJsZUFsbFNlY29uZEZhY3RvcnMiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJkaXNhYmxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucGFzc3dvcmQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiaWQiLCJ0eXBlIiwiY2xhc3NOYW1lcyIsImF1dG9mb2N1cyJdLFtbMjQsWyJwYXNzd29yZCJdXSwicGFzc3dvcmQiLCJwYXNzd29yZCIsImlucHV0LWxhcmdlIiwiYXV0b2ZvY3VzIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLmNvbmZpcm1fcGFzc3dvcmRfZGVzY3JpcHRpb24iXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJ0eXBlIiwiYWN0aW9uIiwiZGlzYWJsZWQiLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkiLCJzdWJtaXQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb25maXJtUGFzc3dvcmQiXSxudWxsXSxbMjQsWyJsb2FkaW5nIl1dLCJjb250aW51ZSJdXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2hvd0VuZm9yY2VkTm90aWNlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImNhbmNlbC1saW5rIixudWxsLFtbInJvdXRlIiwiYXJncyJdLFsicHJlZmVyZW5jZXMuYWNjb3VudCIsWzI0LFsibW9kZWwiLCJ1c2VybmFtZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbMTAsInN0eWxlIiwibWFyZ2luLXRvcDogNXB4Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzIyLCJyZXNldFBhc3N3b3JkUHJvZ3Jlc3MiXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJyZXNldFBhc3N3b3JkTG9hZGluZyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRQYXNzd29yZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5mb3Jnb3RfcGFzc3dvcmQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMtc2Vjb25kLWZhY3RvciJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy11c2VybmFtZSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLXByZWZlcmVuY2VzICBzb2xvLXByZWZlcmVuY2UiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLWhvcml6b250YWwiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNoYW5nZV91c2VybmFtZS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidGV4dC1maWVsZCIsbnVsbCxbWyJ2YWx1ZSIsImlkIiwiY2xhc3NOYW1lcyIsIm1heGxlbmd0aCIsImF1dG9mb2N1cyIsImluc2VydC1uZXdsaW5lIl0sW1syNCxbIm5ld1VzZXJuYW1lIl1dLCJjaGFuZ2VfdXNlcm5hbWUiLCJpbnB1dC14eGxhcmdlIixbMjQsWyJtYXhMZW5ndGgiXV0sImF1dG9mb2N1cyIsImNoYW5nZVVzZXJuYW1lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyBjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWtlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3VzZXJuYW1lLnRha2VuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzIyLCJlcnJvck1lc3NhZ2UiXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwidHlwZSIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVVzZXJuYW1lIl0sbnVsbF0sInN1Ym1pdCIsWzI0LFsic2F2ZURpc2FibGVkIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjIsInNhdmVCdXR0b25UZXh0Il0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsic2F2ZWQiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzLXVzZXJuYW1lIn19KSxFbWJlci5URU1QTEFURVMucHJlZmVyZW5jZXM9RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyIsImNsYXNzIl0sWyJ1c2VyLXByZWZlcmVuY2VzIiwidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiJdXSx7InN0YXRlbWVudHMiOltbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJwcmVmZXJlbmNlcy1uYXYiLCJwcmVmZXJlbmNlcy1saXN0IGFjdGlvbi1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1hY2NvdW50Il0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMuYWNjb3VudCJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuYWNjb3VudCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtcHJvZmlsZSJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLnByb2ZpbGUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIucHJlZmVyZW5jZXNfbmF2LnByb2ZpbGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibmF2LWVtYWlscyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLmVtYWlscyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuZW1haWxzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdi1ub3RpZmljYXRpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMubm90aWZpY2F0aW9ucyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYubm90aWZpY2F0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJpbmRlbnQgbmF2LWNhdGVnb3JpZXMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcmVmZXJlbmNlcy5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzX25hdi5jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGVudCBuYXYtdXNlcnMiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJwcmVmZXJlbmNlcy51c2VycyJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYudXNlcnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluZGVudCBuYXYtdGFncyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLnRhZ3MiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYudGFncyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtaW50ZXJmYWNlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMuaW50ZXJmYWNlIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzX25hdi5pbnRlcmZhY2UiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInVzZXJBcGlLZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYtYXBwcyJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInByZWZlcmVuY2VzLmFwcHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5wcmVmZXJlbmNlc19uYXYuYXBwcyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLW5hdiIsImxpIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWNvbnRlbnQgdXNlci1wcmVmZXJlbmNlcyJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbImFib3ZlLXVzZXItcHJlZmVyZW5jZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgIl0sWzcsImZvcm0iLHRydWVdLFsxMCwiY2xhc3MiLCJmb3JtLXZlcnRpY2FsIl0sWzhdLFswLCJcXG4gICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJwcmVmZXJlbmNlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9hY2NvdW50Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ0b2tlbiIsImF1dGhQcm92aWRlciJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi11c2VybmFtZSJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnVzZXJuYW1lLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRpYyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2VkaXRfdXNlcm5hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJyb3V0ZSJdLFsiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbWFsbCBidG4taWNvbiBwYWQtbGVmdCBuby10ZXh0IiwicHJlZmVyZW5jZXMudXNlcm5hbWUiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInBlbmNpbC1hbHQiXSxudWxsXSxmYWxzZV0sWzAsIiAiXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfbWVudGlvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci51c2VybmFtZS5zaG9ydF9pbnN0cnVjdGlvbnMiXSxbWyJ1c2VybmFtZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV1dLHRydWVdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJzc29fb3ZlcnJpZGVzX2F2YXRhciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWF2YXRhciJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbMTAsImlkIiwicHJvZmlsZS1waWN0dXJlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF2YXRhci50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiJdLFswLCIgICAgICAiXSxbMSxbMjgsImJvdW5kLWF2YXRhciIsW1syNCxbIm1vZGVsIl1dLCJodWdlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwiY2xhc3MiLCJpY29uIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dBdmF0YXJTZWxlY3RvciJdLG51bGxdLFsyNCxbIm1vZGVsIl1dLCJidG4tZGVmYXVsdCBwYWQtbGVmdCIsInBlbmNpbC1hbHQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5FZGl0TmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLW5hbWUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5hbWUudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9lZGl0X25hbWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ0ZXh0LWZpZWxkIixudWxsLFtbInZhbHVlIiwiY2xhc3NOYW1lcyIsIm1heGxlbmd0aCJdLFtbMjQsWyJuZXdOYW1lSW5wdXQiXV0sImlucHV0LXh4bGFyZ2UiLCIyNTUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0aWMiXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyMiwibmFtZUluc3RydWN0aW9ucyJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGVja0VtYWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWVtYWlsIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5lbWFpbC50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRpYyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsImVtYWlsIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiY2FuX2VkaXRfZW1haWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIl0sWyJidG4gYnRuLWRlZmF1bHQgYnRuLXNtYWxsIGJ0bi1pY29uIHBhZC1sZWZ0IG5vLXRleHQiLCJwcmVmZXJlbmNlcy5lbWFpbCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJzc29fb3ZlcnJpZGVzX2VtYWlsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuc3NvX292ZXJyaWRlX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImFjdGlvblBhcmFtIiwidGl0bGUiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY2hlY2tFbWFpbCJdLG51bGxdLCJidG4tZGVmYXVsdCIsWzI0LFsibW9kZWwiXV0sImFkbWluLnVzZXJzLmNoZWNrX2VtYWlsLnRpdGxlIiwiZmFyLWVudmVsb3BlIiwiYWRtaW4udXNlcnMuY2hlY2tfZW1haWwudGV4dCJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGFuZ2VQYXNzd29yZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXBhc3N3b3JkIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIucGFzc3dvcmQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVBhc3N3b3JkIl1dLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiZW52ZWxvcGUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibm9fcGFzc3dvcmQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3Bhc3N3b3JkLnNldF9wYXNzd29yZCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX3Bhc3N3b3JkLmFjdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4gICAgIl0sWzEsWzIyLCJwYXNzd29yZFByb2dyZXNzIl0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXNlY29uZC1mYWN0b3IiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zZWNvbmRfZmFjdG9yLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwic2Vjb25kX2ZhY3Rvcl9lbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc2Vjb25kX2ZhY3Rvci5zaG9ydF9kZXNjcmlwdGlvbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHByZWYtc2Vjb25kLWZhY3RvciJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNDdXJyZW50VXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibGluay10byIsbnVsbCxbWyJjbGFzcyIsInJvdXRlIl0sWyJidG4gYnRuLWRlZmF1bHQiLCJwcmVmZXJlbmNlcy5zZWNvbmQtZmFjdG9yIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImxvY2siXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnNlY29uZF9mYWN0b3IuZW5hYmxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5VcGRhdGVBc3NvY2lhdGVkQWNjb3VudHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1hc3NvY2lhdGVkLWFjY291bnRzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiYXNzb2NpYXRlZEFjY291bnRzTG9hZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywidGFibGUiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJhdXRoUHJvdmlkZXJzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syMywyLFsiYWNjb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJkYXNoZXJpemUiLFtbMjMsMixbIm1ldGhvZCIsIm5hbWUiXV1dLG51bGxdLCIgYWNjb3VudC1jb25uZWN0ZWQiXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywyLFsibWV0aG9kIiwicHJldHR5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjMsMixbImFjY291bnQiLCJkZXNjcmlwdGlvbiJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDIsWyJtZXRob2QiLCJjYW5fcmV2b2tlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsInRpdGxlIiwiY2xhc3MiLCJpY29uIiwiZGlzYWJsZWQiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJldm9rZUFjY291bnQiXSxudWxsXSxbMjMsMixbImFjY291bnQiXV0sInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5yZXZva2UiLCJidG4tZGFuZ2VyIG5vLXRleHQiLCJ0cmFzaC1hbHQiLFsyOCwiZ2V0IixbWzI0LFsicmV2b2tpbmciXV0sWzIzLDIsWyJtZXRob2QiLCJuYW1lIl1dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywidHIiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJkYXNoZXJpemUiLFtbMjMsMixbIm1ldGhvZCIsIm5hbWUiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyMywyLFsibWV0aG9kIiwicHJldHR5TmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY29sc3BhbiIsIjIiXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywyLFsibWV0aG9kIiwiY2FuX2Nvbm5lY3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImFjdGlvblBhcmFtIiwibGFiZWwiLCJjbGFzcyIsImljb24iLCJkaXNhYmxlZCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29ubmVjdEFjY291bnQiXSxudWxsXSxbMjMsMixbIm1ldGhvZCJdXSwidXNlci5hc3NvY2lhdGVkX2FjY291bnRzLmNvbm5lY3QiLCJidG4tZGVmYXVsdCIsInBsdWciLFsyNCxbImRpc2FibGVDb25uZWN0QnV0dG9ucyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuYXNzb2NpYXRlZF9hY2NvdW50cy5ub3RfY29ubmVjdGVkIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsInRpdGxlIiwiaWNvbiIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbImNoZWNrRW1haWwiXSxudWxsXSxbMjQsWyJtb2RlbCJdXSwiYWRtaW4udXNlcnMuY2hlY2tfZW1haWwudGl0bGUiLCJmYXItZW52ZWxvcGUiLCJhZG1pbi51c2Vycy5jaGVja19lbWFpbC50ZXh0Il1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlbGVjdFRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRpdGxlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwibm9uZSIsIm9uQ2hhbmdlIl0sW1syNCxbIm5ld1RpdGxlSW5wdXQiXV0sWzI0LFsibW9kZWwiLCJhdmFpbGFibGVUaXRsZXMiXV0sInVzZXIudGl0bGUubm9uZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJuZXdUaXRsZUlucHV0Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlbGVjdFByaW1hcnlHcm91cCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXByaW1hcnktZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaW1hcnlfZ3JvdXAudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJub25lIl0sW1syNCxbIm5ld1ByaW1hcnlHcm91cElucHV0Il1dLFsyNCxbIm1vZGVsIiwiZmlsdGVyZWRHcm91cHMiXV0sInVzZXIucHJpbWFyeV9ncm91cC5ub25lIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ2hlY2tFbWFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1hdXRoLXRva2VucyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW5zIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbImF1dGhUb2tlbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJvdyBhdXRoLXRva2VuIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW4taWNvbiJdLFs4XSxbMSxbMjgsImQtaWNvbiIsW1syMywxLFsiaWNvbiJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syMywxLFsiaXNfYWN0aXZlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImF1dGgtdG9rZW4tZHJvcGRvd24iLG51bGwsW1sidG9rZW4iLCJyZXZva2VBdXRoVG9rZW4iLCJzaG93VG9rZW4iXSxbWzIzLDEsW11dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXZva2VBdXRoVG9rZW4iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1Rva2VuIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhdXRoLXRva2VuLWZpcnN0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImF1dGgtdG9rZW4tZGV2aWNlIl0sWzhdLFsxLFsyMywxLFsiZGV2aWNlIl1dLGZhbHNlXSxbOV0sWzAsIiDigJMgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMuaXAiXSxudWxsXSwiOiAiLFsyMywxLFsiY2xpZW50X2lwIl1dXV1dLFs4XSxbMSxbMjMsMSxbImxvY2F0aW9uIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYXV0aC10b2tlbi1zZWNvbmQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyMywxLFsiYnJvd3NlciJdXSxmYWxzZV0sWzAsIiB8XFxuIl0sWzQsImlmIixbWzIzLDEsWyJpc19hY3RpdmUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJhY3RpdmUiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYXV0aF90b2tlbnMuYWN0aXZlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJmb3JtYXQtZGF0ZSIsW1syMywxLFsic2Vlbl9hdCJdXV0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNob3dBbGxBdXRoVG9rZW5zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVNob3dBbGxBdXRoVG9rZW5zIl1dLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0FsbEF1dGhUb2tlbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJjYXJldC11cCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLnNob3dfZmV3Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNhcmV0LWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRoX3Rva2Vucy5zaG93X2FsbCJdLFtbImNvdW50Il0sW1syNCxbIm1vZGVsIiwidXNlcl9hdXRoX3Rva2VucyIsImxlbmd0aCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsInB1bGwtcmlnaHQgdGV4dC1kYW5nZXIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJyZXZva2VBdXRoVG9rZW4iXV0sWzhdLFsxLFsyOCwiZC1pY29uIixbInNpZ24tb3V0LWFsdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmF1dGhfdG9rZW5zLmxvZ19vdXRfYWxsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtYWNjb3VudCIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TYXZlVXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5EZWxldGVBY2NvdW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGRlbGV0ZS1hY2NvdW50Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImRpc2FibGVkIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZSJdLG51bGxdLFsyNCxbImRlbGV0ZURpc2FibGVkIl1dLCJidG4tZGFuZ2VyIiwiZmFyLXRyYXNoLWFsdCIsInVzZXIuZGVsZXRlX2FjY291bnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2FjY291bnQifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvYXBwcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsia2V5Iiwic2NvcGUiXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwidXNlckFwaUtleXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgYXBwcyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmFwcHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsInVzZXJBcGlLZXlzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyMywxLFsiYXBwbGljYXRpb25fbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInJldm9rZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsidW5kb1Jldm9rZUFwaUtleSJdLG51bGxdLFsyMywxLFtdXSwiYnRuIiwidXNlci51bmRvX3Jldm9rZV9hY2Nlc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsicmV2b2tlQXBpS2V5Il0sbnVsbF0sWzIzLDEsW11dLCJidG4iLCJ1c2VyLnJldm9rZV9hY2Nlc3MiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syMywxLFsic2NvcGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzEsWzIzLDIsW11dLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzJdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmFwaV9hcHByb3ZlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIiAiXSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjMsMSxbImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsInNwYW4iLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hcGlfbGFzdF91c2VkX2F0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiICJdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syMywxLFsibGFzdF91c2VkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtYXBwcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2FwcHMifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvY2F0ZWdvcmllcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgY2F0ZWdvcnktbm90aWZpY2F0aW9ucyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNhdGVnb3JpZXNfc2V0dGluZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtd2F0Y2hpbmciXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2NhdGVnb3JpZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZWUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJhIix0cnVlXSxbMTAsImNsYXNzIiwic2hvdy10cmFja2luZyJdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjQsWyJtb2RlbCIsIndhdGNoaW5nVG9waWNzUGF0aCJdXV0sbnVsbF1dXV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRyYWNrZWRfdG9waWNzX2xpbmsiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZENhdGVnb3JpZXMiXV0sWzI0LFsic2VsZWN0ZWRDYXRlZ29yaWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ3YXRjaGVkQ2F0ZWdvcmllcyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2NhdGVnb3JpZXNfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgdHJhY2tpbmctY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLXRyYWNraW5nIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIudHJhY2tlZF9jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2VlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctdHJhY2tpbmciXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJ0cmFja2luZ1RvcGljc1BhdGgiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RvcGljc19saW5rIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbMSxbMjgsImNhdGVnb3J5LXNlbGVjdG9yIixudWxsLFtbImNhdGVnb3JpZXMiLCJibGFja2xpc3QiLCJvbkNoYW5nZSJdLFtbMjQsWyJtb2RlbCIsInRyYWNrZWRDYXRlZ29yaWVzIl1dLFsyNCxbInNlbGVjdGVkQ2F0ZWdvcmllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidHJhY2tlZENhdGVnb3JpZXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudHJhY2tlZF9jYXRlZ29yaWVzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZC13YXRjaGluZy1maXJzdCJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLndhdGNoZWRfZmlyc3RfcG9zdF9jYXRlZ29yaWVzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZEZpcnN0UG9zdENhdGVnb3JpZXMiXV0sWzI0LFsic2VsZWN0ZWRDYXRlZ29yaWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ3YXRjaGVkRmlyc3RQb3N0Q2F0ZWdvcmllcyJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2ZpcnN0X3Bvc3RfY2F0ZWdvcmllc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwibXV0ZV9hbGxfY2F0ZWdvcmllc19ieV9kZWZhdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLW11dGVkIl0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubXV0ZWRfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhblNlZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNob3ctdHJhY2tpbmciXSxbMTEsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJtdXRlZFRvcGljc1BhdGgiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RvcGljc19saW5rIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY2F0ZWdvcnktc2VsZWN0b3IiLG51bGwsW1siY2F0ZWdvcmllcyIsImJsYWNrbGlzdCIsIm9uQ2hhbmdlIl0sW1syNCxbIm1vZGVsIiwibXV0ZWRDYXRlZ29yaWVzIl1dLFsyNCxbInNlbGVjdGVkQ2F0ZWdvcmllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwibXV0ZWRDYXRlZ29yaWVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFtbMjgsImlmIixbWzI0LFsiaGlkZU11dGVkVGFncyJdXSwidXNlci5tdXRlZF9jYXRlZ29yaWVzX2luc3RydWN0aW9ucyIsInVzZXIubXV0ZWRfY2F0ZWdvcmllc19pbnN0cnVjdGlvbnNfZG9udF9oaWRlIl0sbnVsbF1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLWNhdGVnb3JpZXMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuU2F2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubm9fY2F0ZWdvcnlfYWNjZXNzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvY2F0ZWdvcmllcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9lbWFpbHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJkaXNhYmxlX21haWxpbmdfbGlzdF9tb2RlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ3YXJuaW5nLXdyYXAiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmciXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubWFpbGluZ19saXN0X21vZGUud2FybmluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtZW1haWwtc2V0dGluZ3MiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5lbWFpbF9zZXR0aW5ncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGNvbnRyb2xzLWRyb3Bkb3duIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInVzZXItZW1haWwtbWVzc2FnZXMtbGV2ZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfbWVzc2FnZXNfbGV2ZWwiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsImlkIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJlbWFpbExldmVsT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfbWVzc2FnZXNfbGV2ZWwiXV0sInVzZXItZW1haWwtbWVzc2FnZXMtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX21lc3NhZ2VzX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbE1lc3NhZ2VzTGV2ZWxBd2F5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFsxLFsyMiwiZW1haWxGcmVxdWVuY3lJbnN0cnVjdGlvbnMiXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIGNvbnRyb2xzLWRyb3Bkb3duIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImZvciIsInVzZXItZW1haWwtbGV2ZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfbGV2ZWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsImlkIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJlbWFpbExldmVsT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfbGV2ZWwiXV0sInVzZXItZW1haWwtbGV2ZWwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX2xldmVsIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJlbWFpbExldmVsQXdheSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjIsImVtYWlsRnJlcXVlbmN5SW5zdHJ1Y3Rpb25zIl0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmVtYWlsX3ByZXZpb3VzX3JlcGxpZXMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsWzI0LFsicHJldmlvdXNSZXBsaWVzT3B0aW9ucyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfcHJldmlvdXNfcmVwbGllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJlbWFpbF9wcmV2aW91c19yZXBsaWVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLmVtYWlsX2luX3JlcGx5X3RvIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW1haWxfaW5fcmVwbHlfdG8iXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1lbWFpbHMtcHJlZi1lbWFpbC1zZXR0aW5ncyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwidW5sZXNzIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZGlzYWJsZV9kaWdlc3RfZW1haWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtYWN0aXZpdHktc3VtbWFyeSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWxfYWN0aXZpdHlfc3VtbWFyeSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJkaXNhYmxlZCIsImNoZWNrZWQiXSxbInVzZXIuZW1haWxfZGlnZXN0cy50aXRsZSIsWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm1haWxpbmdfbGlzdF9tb2RlIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJlbWFpbF9kaWdlc3RzIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImVtYWlsX2RpZ2VzdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiZmlsdGVyYWJsZSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsdHJ1ZSxbMjQsWyJkaWdlc3RGcmVxdWVuY2llcyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZGlnZXN0X2FmdGVyX21pbnV0ZXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiZGlzYWJsZWQiLCJjaGVja2VkIl0sWyJ1c2VyLmluY2x1ZGVfdGwwX2luX2RpZ2VzdHMiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZSJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiaW5jbHVkZV90bDBfaW5fZGlnZXN0cyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJkaXNhYmxlX21haWxpbmdfbGlzdF9tb2RlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtbWFpbGluZy1saXN0LW1vZGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1haWxpbmdfbGlzdF9tb2RlLmxhYmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwicHJlZmVyZW5jZS1jaGVja2JveCIsbnVsbCxbWyJsYWJlbEtleSIsImNoZWNrZWQiXSxbInVzZXIubWFpbGluZ19saXN0X21vZGUuZW5hYmxlZCIsWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm1haWxpbmdfbGlzdF9tb2RlIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubWFpbGluZ19saXN0X21vZGUuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sdHJ1ZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibWFpbGluZ19saXN0X21vZGUiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJtYWlsaW5nTGlzdE1vZGVPcHRpb25zIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJtYWlsaW5nX2xpc3RfbW9kZV9mcmVxdWVuY3kiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibWFpbGluZ19saXN0X21vZGVfZnJlcXVlbmN5Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1lbWFpbHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2VtYWlscyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9pbnRlcmZhY2UiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dUaGVtZVNlbGVjdG9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHRoZW1lIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGhlbWUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIl0sW1syNCxbInVzZXJTZWxlY3RhYmxlVGhlbWVzIl1dLFsyNCxbInRoZW1lSWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJ0aGVtZUlkIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RoZW1lU2V0RGVmYXVsdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCJdLFsidXNlci50aGVtZV9kZWZhdWx0X29uX2FsbF9kZXZpY2VzIixbMjQsWyJtYWtlVGhlbWVEZWZhdWx0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgdGV4dC1zaXplIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGV4dF9zaXplLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJ0ZXh0U2l6ZXMiXV0sWzI0LFsidGV4dFNpemUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdFRleHRTaXplIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RleHRTZXREZWZhdWx0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLnRleHRfc2l6ZV9kZWZhdWx0X29uX2FsbF9kZXZpY2VzIixbMjQsWyJtYWtlVGV4dFNpemVEZWZhdWx0Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJhbGxvd191c2VyX2xvY2FsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLWxvY2FsZSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIubG9jYWxlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWVQcm9wZXJ0eSIsImNvbnRlbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwib3B0aW9ucyJdLFsidmFsdWUiLFsyNCxbImF2YWlsYWJsZUxvY2FsZXMiXV0sWzI0LFsibW9kZWwiLCJsb2NhbGUiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsImxvY2FsZSJdXV0sbnVsbF1dLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwibm9uZSJdLFt0cnVlLCJ1c2VyLmxvY2FsZS5kZWZhdWx0Il1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5sb2NhbGUuaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGhvbWUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5ob21lIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjb250ZW50IiwidmFsdWVQcm9wZXJ0eSIsInZhbHVlIiwib25DaGFuZ2UiXSxbWzI0LFsidXNlclNlbGVjdGFibGVIb21lIl1dLCJ2YWx1ZSIsWzI0LFsiaG9tZXBhZ2VJZCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJob21lcGFnZV9pZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgb3RoZXIiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5vdGhlcl9zZXR0aW5ncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmV4dGVybmFsX2xpbmtzX2luX25ld190YWIiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJleHRlcm5hbF9saW5rc19pbl9uZXdfdGFiIl1dLCJwcmVmLWV4dGVybmFsLWxpbmtzIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmVuYWJsZV9xdW90aW5nIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW5hYmxlX3F1b3RpbmciXV0sInByZWYtZW5hYmxlLXF1b3RpbmciXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuZW5hYmxlX2RlZmVyIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZW5hYmxlX2RlZmVyIl1dLCJwcmVmLWRlZmVyLXVuZHJlYWQiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuYXV0b21hdGljYWxseV91bnBpbl90b3BpY3MiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJhdXRvbWF0aWNhbGx5X3VucGluX3RvcGljcyJdXSwicHJlZi1hdXRvLXVucGluIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFsxLFsyOCwicHJlZmVyZW5jZS1jaGVja2JveCIsbnVsbCxbWyJsYWJlbEtleSIsImNoZWNrZWQiLCJjbGFzcyJdLFsidXNlci5oaWRlX3Byb2ZpbGVfYW5kX3ByZXNlbmNlIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiaGlkZV9wcm9maWxlX2FuZF9wcmVzZW5jZSJdXSwicHJlZi1oaWRlLXByb2ZpbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaXNpUGFkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzEsWzI4LCJwcmVmZXJlbmNlLWNoZWNrYm94IixudWxsLFtbImxhYmVsS2V5IiwiY2hlY2tlZCIsImNsYXNzIl0sWyJ1c2VyLmVuYWJsZV9waHlzaWNhbF9rZXlib2FyZCIsWzI0LFsiZGlzYWJsZVNhZmFyaUhhY2tzIl1dLCJwcmVmLXNhZmFyaS1oYWNrcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIiwiY2xhc3MiXSxbInVzZXIuZHluYW1pY19mYXZpY29uIixbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwiZHluYW1pY19mYXZpY29uIl1dLCJwcmVmLWR5bmFtaWMtZmF2aWNvbiJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biBwcmVmLXBhZ2UtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiZm9yIiwidXNlci1lbWFpbC1sZXZlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50aXRsZV9jb3VudF9tb2RlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29tYm8tYm94IixudWxsLFtbInZhbHVlUHJvcGVydHkiLCJjb250ZW50IiwidmFsdWUiLCJpZCIsIm9uQ2hhbmdlIl0sWyJ2YWx1ZSIsWzI0LFsidGl0bGVDb3VudE1vZGVzIl1dLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aXRsZV9jb3VudF9tb2RlIl1dLCJ1c2VyLXRpdGxlLWNvdW50LW1vZGUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsInRpdGxlX2NvdW50X21vZGUiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1pbnRlcmZhY2UiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL2ludGVyZmFjZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9ub3RpZmljYXRpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBub3RpZmljYXRpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5vdGlmaWNhdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm5ld190b3BpY19kdXJhdGlvbi5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJjbGFzcyIsInZhbHVlUHJvcGVydHkiLCJjb250ZW50IiwidmFsdWUiLCJvbkNoYW5nZSJdLFsiZHVyYXRpb24iLCJ2YWx1ZSIsWzI0LFsiY29uc2lkZXJOZXdUb3BpY09wdGlvbnMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm5ld190b3BpY19kdXJhdGlvbl9taW51dGVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsIm5ld190b3BpY19kdXJhdGlvbl9taW51dGVzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgY29udHJvbHMtZHJvcGRvd24iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5hdXRvX3RyYWNrX3RvcGljcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJhdXRvVHJhY2tEdXJhdGlvbnMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImF1dG9fdHJhY2tfdG9waWNzX2FmdGVyX21zZWNzIl1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgY29udHJvbHMtZHJvcGRvd24iXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5ub3RpZmljYXRpb25fbGV2ZWxfd2hlbl9yZXBseWluZyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJub3RpZmljYXRpb25MZXZlbHNGb3JSZXBseWluZyJdXSxbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJtb2RlbCIsInVzZXJfb3B0aW9uIiwibm90aWZpY2F0aW9uX2xldmVsX3doZW5fcmVwbHlpbmciXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyBjb250cm9scy1kcm9wZG93biJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxpa2Vfbm90aWZpY2F0aW9uX2ZyZXF1ZW5jeS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZVByb3BlcnR5IiwiY29udGVudCIsInZhbHVlIiwib25DaGFuZ2UiXSxbInZhbHVlIixbMjQsWyJsaWtlTm90aWZpY2F0aW9uRnJlcXVlbmNpZXMiXV0sWzI0LFsibW9kZWwiLCJ1c2VyX29wdGlvbiIsImxpa2Vfbm90aWZpY2F0aW9uX2ZyZXF1ZW5jeSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJsaWtlX25vdGlmaWNhdGlvbl9mcmVxdWVuY3kiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIGRlc2t0b3Atbm90aWZpY2F0aW9ucyJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmRlc2t0b3Bfbm90aWZpY2F0aW9ucy5sYWJlbCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzEsWzIyLCJkZXNrdG9wLW5vdGlmaWNhdGlvbi1jb25maWciXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5kZXNrdG9wX25vdGlmaWNhdGlvbnMuZWFjaF9icm93c2VyX25vdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcmVmZXJlbmNlcy1kZXNrdG9wLW5vdGlmaWNhdGlvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX3BlcnNvbmFsX21lc3NhZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByaXZhdGUtbWVzc2FnZXMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsInByZWZlcmVuY2UtY2hlY2tib3giLG51bGwsW1sibGFiZWxLZXkiLCJjaGVja2VkIl0sWyJ1c2VyLmFsbG93X3ByaXZhdGVfbWVzc2FnZXMiLFsyNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJhbGxvd19wcml2YXRlX21lc3NhZ2VzIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtbm90aWZpY2F0aW9ucyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvbm90aWZpY2F0aW9ucyJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy9wcm9maWxlIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJ1ZiJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuQ2hhbmdlQmlvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtYmlvIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuYmlvIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgYmlvLWNvbXBvc2VyIGlucHV0LXh4bGFyZ2UiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtZWRpdG9yIixudWxsLFtbInZhbHVlIl0sW1syNCxbIm1vZGVsIiwiYmlvX3JhdyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBwcmVmLXRpbWV6b25lIl0sWzhdLFswLCJcXG4gICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudGltZXpvbmUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFsxLFsyOCwidGltZXpvbmUtaW5wdXQiLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSIsImNsYXNzIl0sW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aW1lem9uZSJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbIm1vZGVsIiwidXNlcl9vcHRpb24iLCJ0aW1lem9uZSJdXV0sbnVsbF1dLG51bGxdLCJpbnB1dC14eGxhcmdlIl1dXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1sb2NhdGlvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxvY2F0aW9uIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImlucHV0IixudWxsLFtbInR5cGUiLCJ2YWx1ZSIsImNsYXNzIiwiaWQiXSxbInRleHQiLFsyNCxbIm1vZGVsIiwibG9jYXRpb24iXV0sImlucHV0LXh4bGFyZ2UiLCJlZGl0LWxvY2F0aW9uIl1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHByZWYtd2Vic2l0ZSJdLFs4XSxbMCwiXFxuICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLndlYnNpdGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaW5wdXQiLG51bGwsW1sidHlwZSIsInZhbHVlIiwiY2xhc3MiXSxbInRleHQiLFsyNCxbIm1vZGVsIiwid2Vic2l0ZSJdXSwiaW5wdXQteHhsYXJnZSJdXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbInVzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInVzZXItZmllbGQiLG51bGwsW1siZmllbGQiLCJ2YWx1ZSJdLFtbMjMsMSxbImZpZWxkIl1dLFsyMywxLFsidmFsdWUiXV1dXV0sZmFsc2VdLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjbGVhcmZpeCJdLFs4XSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsImFsbG93X3Byb2ZpbGVfYmFja2dyb3VuZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1wcm9maWxlLWJnIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcHJvZmlsZV9iYWNrZ3JvdW5kLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsInR5cGUiXSxbWzI0LFsibW9kZWwiLCJwcm9maWxlX2JhY2tncm91bmRfdXBsb2FkX3VybCJdXSwicHJvZmlsZV9iYWNrZ3JvdW5kIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfcHJvZmlsZV9iYWNrZ3JvdW5kLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgcHJlZi1wcm9maWxlLWJnIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfY2FyZF9iYWNrZ3JvdW5kLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpbWFnZS11cGxvYWRlciIsbnVsbCxbWyJpbWFnZVVybCIsInR5cGUiXSxbWzI0LFsibW9kZWwiLCJjYXJkX2JhY2tncm91bmRfdXBsb2FkX3VybCJdXSwiY2FyZF9iYWNrZ3JvdW5kIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiaW5zdHJ1Y3Rpb25zIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jaGFuZ2VfY2FyZF9iYWNrZ3JvdW5kLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJhbGxvd19mZWF0dXJlZF90b3BpY19vbl91c2VyX3Byb2ZpbGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5mZWF0dXJlZF90b3BpYyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZlYXR1cmVkLXRvcGljLWxpbmsiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWxzIl0sWyJ0b3BpYyIsWzI4LCJhcnJheSIsW1syNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJzbHVnIl1dLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJpZCJdXV0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMSxbMjQsWyJtb2RlbCIsImZlYXR1cmVkX3RvcGljIiwiZmFuY3lfdGl0bGUiXV0sdHJ1ZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJsYWJlbCJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0ZlYXR1cmVkVG9waWNNb2RhbCJdLG51bGxdLCJidG4tZGVmYXVsdCBmZWF0dXJlLXRvcGljLW9uLXByb2ZpbGUtYnRuIiwidXNlci5mZWF0dXJlX3RvcGljX29uX3Byb2ZpbGUub3Blbl9zZWFyY2giXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImNsYXNzIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNsZWFyRmVhdHVyZWRUb3BpY0Zyb21Qcm9maWxlIl0sbnVsbF0sImJ0bi1kYW5nZXIgY2xlYXItZmVhdHVyZS10b3BpYy1vbi1wcm9maWxlLWJ0biIsInVzZXIuZmVhdHVyZV90b3BpY19vbl9wcm9maWxlLmNsZWFyLnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuY2hhbmdlX2ZlYXR1cmVkX3RvcGljLmluc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJlZmVyZW5jZXMtcHJvZmlsZSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwic2F2ZSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2F2ZSJdLG51bGxdXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1wcmVmZXJlbmNlcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImJyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItY3VzdG9tLWNvbnRyb2xzIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCBzYXZlLWJ1dHRvbiJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMTUsInVzZXIvcHJlZmVyZW5jZXMvc2F2ZS1idXR0b24iLFtdXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjp0cnVlfScsbWV0YTp7bW9kdWxlTmFtZToicHJlZmVyZW5jZXMvcHJvZmlsZSJ9fSksRW1iZXIuVEVNUExBVEVTWyJwcmVmZXJlbmNlcy90YWdzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJ0YWdnaW5nX2VuYWJsZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgdGFnLW5vdGlmaWNhdGlvbnMiXSxbOF0sWzAsIlxcblxcbiAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1sYWJlbCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50YWdfc2V0dGluZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtd2F0Y2hpbmciXSxbWyJjbGFzcyJdLFsiaWNvbiB3YXRjaGluZyJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF90YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidGFnLWNob29zZXIiLG51bGwsW1sidGFncyIsImJsYWNrbGlzdCIsImZpbHRlclBsYWNlaG9sZGVyIiwiYWxsb3dDcmVhdGUiLCJldmVyeVRhZyIsInVubGltaXRlZFRhZ0NvdW50Il0sW1syNCxbIm1vZGVsIiwid2F0Y2hlZF90YWdzIl1dLFsyNCxbInNlbGVjdGVkVGFncyJdXSwic2VsZWN0X2tpdC5maWx0ZXJfcGxhY2Vob2xkZXIiLGZhbHNlLHRydWUsdHJ1ZV1dXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnN0cnVjdGlvbnMiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF90YWdzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzEsWzI4LCJkLWljb24iLFsiZC10cmFja2luZyJdLFtbImNsYXNzIl0sWyJpY29uIHRyYWNraW5nIl1dXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiYmxhY2tsaXN0IiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJhbGxvd0NyZWF0ZSIsImV2ZXJ5VGFnIiwidW5saW1pdGVkVGFnQ291bnQiXSxbWzI0LFsibW9kZWwiLCJ0cmFja2VkX3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci50cmFja2VkX3RhZ3NfaW5zdHJ1Y3Rpb25zIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbHMgdHJhY2tpbmctY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywibGFiZWwiLHRydWVdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJkLXdhdGNoaW5nLWZpcnN0Il0sW1siY2xhc3MiXSxbImljb24gd2F0Y2hpbmctZmlyc3QtcG9zdCJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIud2F0Y2hlZF9maXJzdF9wb3N0X3RhZ3MiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJ0YWctY2hvb3NlciIsbnVsbCxbWyJ0YWdzIiwiYmxhY2tsaXN0IiwiZmlsdGVyUGxhY2Vob2xkZXIiLCJhbGxvd0NyZWF0ZSIsImV2ZXJ5VGFnIiwidW5saW1pdGVkVGFnQ291bnQiXSxbWzI0LFsibW9kZWwiLCJ3YXRjaGluZ19maXJzdF9wb3N0X3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci53YXRjaGVkX2ZpcnN0X3Bvc3RfdGFnc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImQtbXV0ZWQiXSxbWyJjbGFzcyJdLFsiaWNvbiBtdXRlZCJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubXV0ZWRfdGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsInRhZy1jaG9vc2VyIixudWxsLFtbInRhZ3MiLCJibGFja2xpc3QiLCJmaWx0ZXJQbGFjZWhvbGRlciIsImFsbG93Q3JlYXRlIiwiZXZlcnlUYWciLCJ1bmxpbWl0ZWRUYWdDb3VudCJdLFtbMjQsWyJtb2RlbCIsIm11dGVkX3RhZ3MiXV0sWzI0LFsic2VsZWN0ZWRUYWdzIl1dLCJzZWxlY3Rfa2l0LmZpbHRlcl9wbGFjZWhvbGRlciIsZmFsc2UsdHJ1ZSx0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5tdXRlZF90YWdzX2luc3RydWN0aW9ucyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByZWZlcmVuY2VzLXRhZ3MiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsInNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNhdmUiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWN1c3RvbS1jb250cm9scyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtZ3JvdXAgc2F2ZS1idXR0b24iXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzE1LCJ1c2VyL3ByZWZlcmVuY2VzL3NhdmUtYnV0dG9uIixbXV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6dHJ1ZX0nLG1ldGE6e21vZHVsZU5hbWU6InByZWZlcmVuY2VzL3RhZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sicHJlZmVyZW5jZXMvdXNlcnMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJsYWJlbCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2wtbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIudXNlcnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJpZ25vcmVkRW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCB1c2VyLWlnbm9yZSJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyB0cmFja2luZy1jb250cm9scyB1c2VyLW5vdGlmaWNhdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsYWJlbCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZC1pY29uIixbImZhci1leWUtc2xhc2giXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaWdub3JlZF91c2VycyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaWdub3JlZC11c2VyLWxpc3QiLG51bGwsW1sibW9kZWwiLCJpdGVtcyIsInNhdmluZyJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJtb2RlbCIsImlnbm9yZWRfdXNlcm5hbWVzIl1dLFsyNCxbInNhdmVkIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udHJvbC1ncm91cCB1c2VyLW11dGUiXSxbOF0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIHRyYWNraW5nLWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsImxhYmVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImQtbXV0ZWQiXSxbWyJjbGFzcyJdLFsiaWNvbiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm11dGVkX3VzZXJzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFsxLFsyOCwidXNlci1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbIm11dGVkVXNlcm5hbWVzIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJvbkNoYW5nZU11dGVkVXNlcm5hbWVzIl0sbnVsbF0sWzI4LCJoYXNoIixudWxsLFtbImV4Y2x1ZGVDdXJyZW50VXNlciJdLFt0cnVlXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImluc3RydWN0aW9ucyJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5tdXRlZF91c2Vyc19pbnN0cnVjdGlvbnMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1jdXN0b20tY29udHJvbHMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9sLWdyb3VwIHNhdmUtYnV0dG9uIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250cm9scyJdLFs4XSxbMCwiXFxuICAgICJdLFsxNSwidXNlci9wcmVmZXJlbmNlcy9zYXZlLWJ1dHRvbiIsW11dLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOnRydWV9JyxtZXRhOnttb2R1bGVOYW1lOiJwcmVmZXJlbmNlcy91c2VycyJ9fSksRW1iZXIuVEVNUExBVEVTWyJyZXZpZXctaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInIiXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1saXN0Il0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJyZXZpZXdhYmxlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIucmV2aWV3YWJsZS1pdGVtIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlcyJdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJyZXZpZXdhYmxlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWl0ZW0iLG51bGwsW1sicmV2aWV3YWJsZSIsInJlbW92ZSJdLFtbMjMsMSxbXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJyZXZpZXdhYmxlcyIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJuby1yZXZpZXciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInJldmlldy5ub25lIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtZmlsdGVycyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy5zdGF0dXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJvbkNoYW5nZSJdLFtbMjQsWyJmaWx0ZXJTdGF0dXMiXV0sWzI0LFsic3RhdHVzZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJmaWx0ZXJTdGF0dXMiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImZpbHRlcnNFeHBhbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJhYm92ZS1yZXZpZXctZmlsdGVycyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIiwiYWRkaXRpb25hbEZpbHRlcnMiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsiYWRkaXRpb25hbEZpbHRlcnMiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy50eXBlLnRpdGxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJub25lIiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyVHlwZSJdXSxbMjQsWyJhbGxUeXBlcyJdXSwicmV2aWV3LmZpbHRlcnMudHlwZS5hbGwiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiZmlsdGVyVHlwZSJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIiXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsImxhYmVsIix0cnVlXSxbMTAsImNsYXNzIiwiZmlsdGVyLWxhYmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVycy5wcmlvcml0eS50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyUHJpb3JpdHkiXV0sWzI0LFsicHJpb3JpdGllcyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSxbMjgsIm11dCIsW1syNCxbImZpbHRlclByaW9yaXR5Il1dXSxudWxsXV0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywibGFiZWwiLHRydWVdLFsxMCwiY2xhc3MiLCJmaWx0ZXItbGFiZWwiXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy5maWx0ZXJzLmNhdGVnb3J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNhdGVnb3J5LWNob29zZXIiLG51bGwsW1sibm9uZSIsInZhbHVlIiwib25DaGFuZ2UiXSxbInJldmlldy5maWx0ZXJzLmFsbF9jYXRlZ29yaWVzIixbMjQsWyJmaWx0ZXJDYXRlZ29yeUlkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLFsyOCwibXV0IixbWzI0LFsiZmlsdGVyQ2F0ZWdvcnlJZCJdXV0sbnVsbF1dLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIgdG9waWMtZmlsdGVyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcuZmlsdGVyZWRfdXNlciJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInVzZXItc2VsZWN0b3IiLG51bGwsW1siZXhjbHVkZUN1cnJlbnRVc2VyIiwidXNlcm5hbWVzIiwiZnVsbFdpZHRoV3JhcCIsInNpbmdsZSIsImNsYXNzIiwiY2FuUmVjZWl2ZVVwZGF0ZXMiXSxbZmFsc2UsWzI0LFsiZmlsdGVyVXNlcm5hbWUiXV0sdHJ1ZSx0cnVlLCJ1c2VyLXNlbGVjdG9yIix0cnVlXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJmaWx0ZXJUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXIgdG9waWMtZmlsdGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInJldmlldy5maWx0ZXJlZF90b3BpYyJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1sibGFiZWwiLCJpY29uIiwiYWN0aW9uIl0sWyJyZXZpZXcuc2hvd19hbGxfdG9waWNzIiwidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldFRvcGljIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciBkYXRlLXJhbmdlIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiZGF0ZS10aW1lLWlucHV0LXJhbmdlIixudWxsLFtbInNob3dGcm9tVGltZSIsInNob3dUb1RpbWUiLCJmcm9tIiwidG8iLCJvbkNoYW5nZSJdLFtmYWxzZSxmYWxzZSxbMjQsWyJmaWx0ZXJGcm9tRGF0ZSJdXSxbMjQsWyJmaWx0ZXJUb0RhdGUiXV0sWzI0LFsic2V0UmFuZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWZpbHRlciBzb3J0LW9yZGVyIl0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcub3JkZXJfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb21iby1ib3giLG51bGwsW1sidmFsdWUiLCJjb250ZW50Iiwib25DaGFuZ2UiXSxbWzI0LFsiZmlsdGVyU29ydE9yZGVyIl1dLFsyNCxbInNvcnRPcmRlcnMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJmaWx0ZXJTb3J0T3JkZXIiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1maWx0ZXJzLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImxhYmVsIiwiY2xhc3MiLCJhY3Rpb24iXSxbInN5bmMiLCJyZXZpZXcuZmlsdGVycy5yZWZyZXNoIiwiYnRuLXByaW1hcnkgcmVmcmVzaCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlZnJlc2giXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1sibGFiZWwiLCJpY29uIiwiY2xhc3MiLCJhY3Rpb24iXSxbInNob3dfaGVscCIsWzI0LFsidG9nZ2xlRmlsdGVyc0ljb24iXV0sImJ0bi1kZWZhdWx0IGV4cGFuZC1zZWNvbmRhcnktZmlsdGVycyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUZpbHRlcnMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicmV2aWV3LWluZGV4In19KSxFbWJlci5URU1QTEFURVNbInJldmlldy1zZXR0aW5ncyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsicnN0Il0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1zZXR0aW5ncyJdLFs4XSxbMCwiXFxuICAiXSxbNywiaDQiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnNldHRpbmdzLnByaW9yaXRpZXMudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbInNldHRpbmdzIiwicmV2aWV3YWJsZV9zY29yZV90eXBlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXNjb3JlLXR5cGUiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0aXRsZSJdLFs4XSxbMSxbMjMsMSxbInRpdGxlIl1dLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJmaWVsZCJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImNvbWJvLWJveCIsbnVsbCxbWyJ2YWx1ZSIsImNvbnRlbnQiLCJvbkNoYW5nZSJdLFtbMjMsMSxbInJldmlld2FibGVfcHJpb3JpdHkiXV0sWzI0LFsic2V0dGluZ3MiLCJyZXZpZXdhYmxlX3ByaW9yaXRpZXMiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjMsMSxbInJldmlld2FibGVfcHJpb3JpdHkiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXNjb3JlLXR5cGUiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidGl0bGUiXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZpZWxkIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImNsYXNzIiwiYWN0aW9uIiwiZGlzYWJsZWQiXSxbImNoZWNrIiwicmV2aWV3LnNldHRpbmdzLnNhdmVfY2hhbmdlcyIsImJ0bi1wcmltYXJ5IHNhdmUtc2V0dGluZ3MiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsic2F2aW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2F2ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJzYXZlZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnNldHRpbmdzLnNhdmVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXctc2V0dGluZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sicmV2aWV3LXNob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwicmV2aWV3YWJsZS1pdGVtIixudWxsLFtbInJldmlld2FibGUiXSxbWzI0LFsicmV2aWV3YWJsZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXctc2hvdyJ9fSksRW1iZXIuVEVNUExBVEVTWyJyZXZpZXctdG9waWNzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJydCJdLCJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmV2aWV3YWJsZVRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywidGFibGUiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLXRvcGljcyJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LnRvcGljcy50b3BpYyJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInJldmlldy50b3BpY3MucmV2aWV3YWJsZV9jb3VudCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLnJlcG9ydGVkX2J5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzldLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsicmV2aWV3YWJsZVRvcGljcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsInRyIix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb21iaW5lZC10aXRsZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1zdGF0dXMiLG51bGwsW1sidG9waWMiXSxbWzIzLDEsW11dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMSwiaHJlZiIsWzIzLDEsWyJyZWxhdGl2ZV91cmwiXV1dLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzhdLFsxLFsyOCwicmVwbGFjZS1lbW9qaSIsW1syMywxLFsiZmFuY3lfdGl0bGUiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtY291bnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjMsMSxbInN0YXRzIiwiY291bnQiXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXBvcnRlZC1ieSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLnVuaXF1ZV91c2VycyJdLFtbImNvdW50Il0sW1syMywxLFsic3RhdHMiLCJ1bmlxdWVfdXNlcnMiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWRldGFpbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtY2xhaW1lZC10b3BpYyIsbnVsbCxbWyJ0b3BpY0lkIiwiY2xhaW1lZEJ5Il0sW1syMywxLFsiaWQiXV0sWzIzLDEsWyJjbGFpbWVkX2J5Il1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1siY2xhc3MiLCJxdWVyeSIsInJvdXRlIl0sWyJidG4gYnRuLXByaW1hcnkgYnRuLXNtYWxsIixbMjgsImhhc2giLG51bGwsW1sidG9waWNfaWQiXSxbWzIzLDEsWyJpZCJdXV1dXSwicmV2aWV3LmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJsaXN0Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNzLmRldGFpbHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vLXJldmlldyJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcubm9uZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToicmV2aWV3LXRvcGljcyJ9fSksRW1iZXIuVEVNUExBVEVTLnJldmlldz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlIl0sWzhdLFswLCJcXG4gICJdLFs3LCJ1bCIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5hdiBuYXYtcGlsbHMgcmV2aWV3YWJsZS10aXRsZSJdLFs4XSxbMCwiXFxuICAgICJdLFsxLFsyOCwibmF2LWl0ZW0iLG51bGwsW1sicm91dGUiLCJsYWJlbCJdLFsicmV2aWV3LmluZGV4IiwicmV2aWV3LnZpZXdfYWxsIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbMSxbMjgsIm5hdi1pdGVtIixudWxsLFtbInJvdXRlIiwibGFiZWwiXSxbInJldmlldy50b3BpY3MiLCJyZXZpZXcuZ3JvdXBlZF9ieV90b3BpYyJdXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjdXJyZW50VXNlciIsImFkbWluIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsIm5hdi1pdGVtIixudWxsLFtbInJvdXRlIiwibGFiZWwiLCJpY29uIl0sWyJyZXZpZXcuc2V0dGluZ3MiLCJyZXZpZXcuc2V0dGluZ3MudGl0bGUiLCJ3cmVuY2giXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFsxLFsyMiwib3V0bGV0Il0sZmFsc2VdLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJyZXZpZXcifX0pLEVtYmVyLlRFTVBMQVRFU1sic2VsZWN0ZWQtcG9zdHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJjb3VudC1pMThuIixudWxsLFtbImtleSIsImNvdW50Il0sWyJ0b3BpYy5tdWx0aV9zZWxlY3QuZGVzY3JpcHRpb24iLFsyNCxbInNlbGVjdGVkUG9zdHNDb3VudCJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5TZWxlY3RBbGwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzcsInAiLHRydWVdLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiY2xhc3MiLCJzZWxlY3QtYWxsIl0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0QWxsIl1dLFs4XSxbMSxbMjgsImkxOG4iLFsidG9waWMubXVsdGlfc2VsZWN0LnNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkRlc2VsZWN0QWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJwIix0cnVlXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJkZXNlbGVjdEFsbCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm11bHRpX3NlbGVjdC5kZXNlbGVjdF9hbGwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbkRlbGV0ZVNlbGVjdGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVNlbGVjdGVkIl0sbnVsbF0sImZhci10cmFzaC1hbHQiLCJ0b3BpYy5tdWx0aV9zZWxlY3QuZGVsZXRlIiwiYnRuLWRhbmdlciJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuTWVyZ2VUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImFjdGlvbiIsImljb24iLCJsYWJlbCIsImNsYXNzIl0sW1syOCwicm91dGUtYWN0aW9uIixbIm1vdmVUb1RvcGljIl0sbnVsbF0sInNpZ24tb3V0LWFsdCIsInRvcGljLm1vdmVfdG8uYWN0aW9uIiwiYnRuLXByaW1hcnkgbW92ZS10by10b3BpYyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQ2hhbmdlT3duZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjaGFuZ2VPd25lciJdLG51bGxdLCJ1c2VyIiwidG9waWMuY2hhbmdlX293bmVyLmFjdGlvbiIsImJ0bi1wcmltYXJ5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5NZXJnZVBvc3RzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm1lcmdlUG9zdHMiXSxudWxsXSwiYXJyb3dzLXYiLCJ0b3BpYy5tZXJnZV9wb3N0cy5hY3Rpb24iLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzcsInAiLHRydWVdLFsxMCwiY2xhc3MiLCJjYW5jZWwiXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVNdWx0aVNlbGVjdCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRvcGljLm11bHRpX3NlbGVjdC5jYW5jZWwiXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InNlbGVjdGVkLXBvc3RzIn19KSxFbWJlci5URU1QTEFURVMuc3RhdGljPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJib2R5Q2xhc3MiLCJjbGFzcyJdLFtbMjQsWyJib2R5Q2xhc3MiXV0sImNvbnRhaW5lciJdXSx7InN0YXRlbWVudHMiOltbNCwid2F0Y2gtcmVhZCIsbnVsbCxbWyJhY3Rpb24iLCJwYXRoIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJtYXJrRmFxUmVhZCJdLG51bGxdLFsyNCxbIm1vZGVsIiwicGF0aCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRlbnRzIGNsZWFyZml4IGJvZHktcGFnZSJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImFib3ZlLXN0YXRpYyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImh0bWwiXV0sdHJ1ZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dTaWdudXBCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIl0sW1syOCwicm91dGUtYWN0aW9uIixbInNob3dDcmVhdGVBY2NvdW50Il0sbnVsbF0sImJ0bi1wcmltYXJ5IHNpZ24tdXAtYnV0dG9uIiwic2lnbl91cCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd0xvZ2luQnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sImJ0bi1wcmltYXJ5IGxvZ2luLWJ1dHRvbiIsInVzZXIiLCJsb2dfaW4iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJzdGF0aWMifX0pLEVtYmVyLlRFTVBMQVRFU1sidGFnLWdyb3Vwcy1lZGl0Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbMSxbMjgsInRhZy1ncm91cHMtZm9ybSIsbnVsbCxbWyJtb2RlbCIsIm9uRGVzdHJveSJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwib25EZXN0cm95Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFnLWdyb3Vwcy1lZGl0In19KSxFbWJlci5URU1QTEFURVNbInRhZy1ncm91cHMtaW5kZXgiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctZ3JvdXAtY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbNywicCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImFib3V0Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy5hYm91dCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdLFs5XV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFnLWdyb3Vwcy1pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJ0YWctZ3JvdXBzLW5ldyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJ0YWctZ3JvdXBzLWZvcm0iLG51bGwsW1sibW9kZWwiLCJvblNhdmUiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sIm9uU2F2ZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZy1ncm91cHMtbmV3In19KSxFbWJlci5URU1QTEFURVNbInRhZy1ncm91cHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZ0dyb3VwIl0sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIHRhZy1ncm91cHMtY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLmdyb3Vwcy50aXRsZSJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRlbnQtbGlzdCJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJ1bCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ0YWdHcm91cHMuZWRpdCIsWzIzLDEsW11dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyMywxLFsibmFtZSJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjMsMCxbInNpdGVTZXR0aW5ncyIsInRhZ2dpbmdfZW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLWRlZmF1bHQiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJuZXdUYWdHcm91cCJdLG51bGxdLCJwbHVzIiwidGFnZ2luZy5ncm91cHMubmV3Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY2xlYXJmaXgiXSxbOF0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ0YWctZ3JvdXBzIn19KSxFbWJlci5URU1QTEFURVMudGFncz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIiwidGFnTmFtZSJdLFsidGFncyIsIiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZ3MifX0pLEVtYmVyLlRFTVBMQVRFU1sidGFncy9pbmRleCJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidGFnR3JvdXAiLCJjYXRlZ29yeSJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXSxbMjQsWyJzaXRlIiwiYmFubmVyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5BZG1pblRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwidGFncy1hZG1pbi1kcm9wZG93biIsbnVsbCxbWyJhY3Rpb25zTWFwcGluZyJdLFtbMjQsWyJhY3Rpb25zTWFwcGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsImgyIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0YWctc29ydC1vcHRpb25zIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInRhZy1zb3J0LWNvdW50ICIsWzI4LCJpZiIsW1syNCxbInNvcnRlZEJ5Q291bnQiXV0sImFjdGl2ZSJdLG51bGxdXV1dLFs4XSxbNywiYSIsZmFsc2VdLFsxMiwiaHJlZiIsIiJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInNvcnRCeUNvdW50Il1dLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy5zb3J0X2J5X2NvdW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInRhZy1zb3J0LW5hbWUgIixbMjgsImlmIixbWzI0LFsic29ydGVkQnlOYW1lIl1dLCJhY3RpdmUiXSxudWxsXV1dXSxbOF0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlJZCJdXSxbOF0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc29ydF9ieV9uYW1lIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiZXh0cmFzIiwiY2F0ZWdvcmllcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1saXN0IixudWxsLFtbInRhZ3MiLCJzb3J0UHJvcGVydGllcyIsImNhdGVnb3J5SWQiXSxbWzIzLDIsWyJ0YWdzIl1dLFsyNCxbInNvcnRQcm9wZXJ0aWVzIl1dLFsyMywyLFsiaWQiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJleHRyYXMiLCJ0YWdfZ3JvdXBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWxpc3QiLG51bGwsW1sidGFncyIsInNvcnRQcm9wZXJ0aWVzIiwidGFnR3JvdXBOYW1lIl0sW1syMywxLFsidGFncyJdXSxbMjQsWyJzb3J0UHJvcGVydGllcyJdXSxbMjMsMSxbIm5hbWUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWxpc3QiLG51bGwsW1sidGFncyIsInNvcnRQcm9wZXJ0aWVzIiwidGl0bGVLZXkiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsic29ydFByb3BlcnRpZXMiXV0sWzI0LFsib3RoZXJUYWdzVGl0bGVLZXkiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidGFncy9pbmRleCJ9fSksRW1iZXIuVEVNUExBVEVTWyJ0YWdzL3Nob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInRhZyJdLCJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXSxbMjQsWyJzaXRlIiwiYmFubmVyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG5cXG4iXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibGlzdC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJuYXZpZ2F0aW9uLWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1RhZ0ZpbHRlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJicmVhZC1jcnVtYnMiLG51bGwsW1siY2F0ZWdvcmllcyIsImNhdGVnb3J5IiwidGFnSWQiLCJub1N1YmNhdGVnb3JpZXMiXSxbWzI0LFsiY2F0ZWdvcmllcyJdXSxbMjQsWyJjYXRlZ29yeSJdXSxbMjQsWyJ0YWciLCJpZCJdXSxbMjQsWyJub1N1YmNhdGVnb3JpZXMiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAiXSxbMSxbMjgsIm5hdmlnYXRpb24tYmFyIixudWxsLFtbIm5hdkl0ZW1zIiwiZmlsdGVyTW9kZSJdLFtbMjQsWyJuYXZJdGVtcyJdXSxbMjQsWyJmaWx0ZXJNb2RlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1zaG93LWhlYWRpbmciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInRhZ3MiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInRhZ2dpbmcudGFncyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJhbmdsZS1yaWdodCJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWctYm91bmQiLG51bGwsW1sidGFnUmVjb3JkIiwic3R5bGUiXSxbWzI0LFsidGFnIl1dLCJzaW1wbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJhZGRpdGlvbmFsVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzAsIiYiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS10YWciLFtbMjMsMSxbXV1dLFtbInN0eWxlIl0sWyJzaW1wbGUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsidGFnTm90aWZpY2F0aW9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ1bmxlc3MiLFtbMjQsWyJhZGRpdGlvbmFsVGFncyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInRhZy1ub3RpZmljYXRpb25zLWJ1dHRvbiIsbnVsbCxbWyJvbkNoYW5nZSIsInZhbHVlIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VUYWdOb3RpZmljYXRpb25MZXZlbCJdLG51bGxdLFsyNCxbInRhZ05vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbl9sZXZlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzEsWzI4LCJjcmVhdGUtdG9waWMtYnV0dG9uIixudWxsLFtbImNhbkNyZWF0ZVRvcGljIiwiZGlzYWJsZWQiLCJsYWJlbCIsImFjdGlvbiJdLFtbMjQsWyJjYW5DcmVhdGVUb3BpYyJdXSxbMjQsWyJjcmVhdGVUb3BpY0Rpc2FibGVkIl1dLFsyNCxbImNyZWF0ZVRvcGljTGFiZWwiXV0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlVG9waWMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dUb2dnbGVJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJsYWJlbCIsImFjdGlvbiIsImlkIl0sWyJ0YWciLCJ0YWdnaW5nLmluZm8iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVJbmZvIl0sbnVsbF0sInNob3ctdGFnLWluZm8iXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4iXSxbOV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyOCwidGFnLWluZm8iLG51bGwsW1sidGFnIiwibGlzdCIsImRlbGV0ZUFjdGlvbiJdLFtbMjQsWyJ0YWciXV0sWzI0LFsibGlzdCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVGFnIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiXSxbImRpc2NvdmVyeS1saXN0LWNvbnRhaW5lci10b3AiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciBsaXN0LWNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicm93Il0sWzhdLFswLCJcXG4gICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImZ1bGwtd2lkdGgiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJsaXN0LWFyZWEiXSxbOF0sWzAsIlxcbiJdLFs0LCJ1bmxlc3MiLFtbMjQsWyJsb2FkaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbImxpc3QiLCJ0b3BpY3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImRpc2NvdmVyeS10b3BpY3MtbGlzdCIsbnVsbCxbWyJtb2RlbCIsInJlZnJlc2giXSxbWzI0LFsibGlzdCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVmcmVzaCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiYnVsay1zZWxlY3QtYnV0dG9uIixudWxsLFtbInNlbGVjdGVkIiwiYWN0aW9uIl0sW1syNCxbInNlbGVjdGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWZyZXNoIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLWxpc3QiLG51bGwsW1sidG9waWNzIiwiY2FuQnVsa1NlbGVjdCIsInRvZ2dsZUJ1bGtTZWxlY3QiLCJidWxrU2VsZWN0RW5hYmxlZCIsInNlbGVjdGVkIiwic2hvd1Bvc3RlcnMiLCJvcmRlciIsImFzY2VuZGluZyIsImNoYW5nZVNvcnQiXSxbWzI0LFsibGlzdCIsInRvcGljcyJdXSxbMjQsWyJjYW5CdWxrU2VsZWN0Il1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCdWxrU2VsZWN0Il0sbnVsbF0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sdHJ1ZSxbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2NlbmRpbmciXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZVNvcnQiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywiZm9vdGVyIix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtbGlzdC1ib3R0b20iXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjIsImZvb3Rlck1lc3NhZ2UiXSxmYWxzZV0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbImRpc2NvdmVyeS5jYXRlZ29yaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgIl0sWzEsWzI4LCJpMThuIixbInRvcGljLmJyb3dzZV9hbGxfY2F0ZWdvcmllcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICJdLFsxLFsyOCwiaTE4biIsWyJvciJdLG51bGxdLGZhbHNlXSxbMCwiICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJkaXNjb3ZlcnkubGF0ZXN0Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ0b3BpYy52aWV3X2xhdGVzdF90b3BpY3MiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIi5cXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImxpc3QiLCJsb2FkaW5nTW9yZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InRhZ3Mvc2hvdyJ9fSksRGlzY291cnNlLlJBV19URU1QTEFURVNbInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybihudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93QnVsa1RvZ2dsZSIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDIscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZTo1LGNvbHVtbjoxM319fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJidWxrU2VsZWN0RW5hYmxlZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDQscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjR9LGVuZDp7bGluZToxMSxjb2x1bW46MTN9fX0pKT9vOiIiKX0sMjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJmbGF0LWJ1dHRvbiIse25hbWU6InJhdyIsaGFzaDp7dGl0bGU6InRvcGljcy5idWxrLnRvZ2dsZSIsaWNvbjoibGlzdCIsY2xhc3M6ImJ1bGstc2VsZWN0In0saGFzaFR5cGVzOnt0aXRsZToiU3RyaW5nTGl0ZXJhbCIsaWNvbjoiU3RyaW5nTGl0ZXJhbCIsY2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e3RpdGxlOnQsaWNvbjp0LGNsYXNzOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjo2fSxlbmQ6e2xpbmU6NCxjb2x1bW46ODZ9fX0pKSsiXG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAgIDxzcGFuIGNsYXNzPSdidWxrLXNlbGVjdC10b3BpY3MnPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPSdidG4gYnRuLWRlZmF1bHQgYnVsay1zZWxlY3QtYWxsJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljcy5idWxrLnNlbGVjdF9hbGwiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjgsY29sdW1uOjU2fSxlbmQ6e2xpbmU6OCxjb2x1bW46ODl9fX0pKSsiPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9J2J0biBidG4tZGVmYXVsdCBidWxrLWNsZWFyLWFsbCc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG4uaTE4bnx8dCYmdC5pMThufHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpY3MuYnVsay5jbGVhcl9hbGwiLHtuYW1lOiJpMThuIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjU1fSxlbmQ6e2xpbmU6OSxjb2x1bW46ODd9fX0pKSsiPC9idXR0b24+XG4gICAgICA8L3NwYW4+XG4ifSw2OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LnNvcnRJY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNSxjb2x1bW46NH0sZW5kOntsaW5lOjE1LGNvbHVtbjoyOH19fSkpKyJcbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4iPHRoIGRhdGEtc29ydC1vcmRlcj0nIitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm9yZGVyIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjoyMX0sZW5kOntsaW5lOjEsY29sdW1uOjMwfX19KSkrIicgY2xhc3M9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmNsYXNzTmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46Mzl9LGVuZDp7bGluZToxLGNvbHVtbjo1N319fSkpKyInPiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhbkJ1bGtTZWxlY3QiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyLGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTIsY29sdW1uOjExfX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ2aWV3LmxvY2FsaXplZE5hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEzLGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTMsY29sdW1uOjI0fX19KSkrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcuaXNTb3J0aW5nIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNixzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQsY29sdW1uOjJ9LGVuZDp7bGluZToxNixjb2x1bW46MTF9fX0pKT9vOiIiKSsiPC90aD5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidG9waWMtbGlzdC1oZWFkZXIiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4nICA8dGggY2xhc3M9ImJ1bGstc2VsZWN0Ij5cbicrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImNhbkJ1bGtTZWxlY3QiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgyLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjo0fSxlbmQ6e2xpbmU6NSxjb2x1bW46MTF9fX0pKT9vOiIiKSsiICA8L3RoPlxuIn0sMjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiIgICAgICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJmbGF0LWJ1dHRvbiIse25hbWU6InJhdyIsaGFzaDp7dGl0bGU6InRvcGljcy5idWxrLnRvZ2dsZSIsaWNvbjoibGlzdCIsY2xhc3M6ImJ1bGstc2VsZWN0In0saGFzaFR5cGVzOnt0aXRsZToiU3RyaW5nTGl0ZXJhbCIsaWNvbjoiU3RyaW5nTGl0ZXJhbCIsY2xhc3M6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e3RpdGxlOnQsaWNvbjp0LGNsYXNzOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo0LGNvbHVtbjo2fSxlbmQ6e2xpbmU6NCxjb2x1bW46ODZ9fX0pKSsiXG4ifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiAgIitlLmVzY2FwZUV4cHJlc3Npb24oKG4ucmF3fHx0JiZ0LnJhd3x8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMtbGlzdC1oZWFkZXItY29sdW1uIix7bmFtZToicmF3IixoYXNoOntvcmRlcjoicG9zdGVycyJ9LGhhc2hUeXBlczp7b3JkZXI6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e29yZGVyOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMCxjb2x1bW46Mn0sZW5kOntsaW5lOjEwLGNvbHVtbjo1Mn19fSkpKyJcbiJ9LDY6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6Imxpa2VzIixvcmRlcjoibGlrZXMiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNCxjb2x1bW46Mn0sZW5kOntsaW5lOjE0LGNvbHVtbjo5NX19fSkpKyJcbiJ9LDg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4iICAiK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6Imxpa2VzIixvcmRlcjoib3BfbGlrZXMiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNyxjb2x1bW46Mn0sZW5kOntsaW5lOjE3LGNvbHVtbjo5OH19fSkpKyJcbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4obnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiYnVsa1NlbGVjdEVuYWJsZWQiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Nyxjb2x1bW46N319fSkpP286IiIpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e2NhbkJ1bGtTZWxlY3Q6ImNhbkJ1bGtTZWxlY3QiLHNob3dCdWxrVG9nZ2xlOiJ0b2dnbGVJblRpdGxlIixidWxrU2VsZWN0RW5hYmxlZDoiYnVsa1NlbGVjdEVuYWJsZWQiLG5hbWU6Imxpc3RUaXRsZSIsb3JkZXI6ImRlZmF1bHQifSxoYXNoVHlwZXM6e2NhbkJ1bGtTZWxlY3Q6IlBhdGhFeHByZXNzaW9uIixzaG93QnVsa1RvZ2dsZToiUGF0aEV4cHJlc3Npb24iLGJ1bGtTZWxlY3RFbmFibGVkOiJQYXRoRXhwcmVzc2lvbiIsbmFtZToiUGF0aEV4cHJlc3Npb24iLG9yZGVyOiJTdHJpbmdMaXRlcmFsIn0saGFzaENvbnRleHRzOntjYW5CdWxrU2VsZWN0OnQsc2hvd0J1bGtUb2dnbGU6dCxidWxrU2VsZWN0RW5hYmxlZDp0LG5hbWU6dCxvcmRlcjp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46MH0sZW5kOntsaW5lOjgsY29sdW1uOjE1OH19fSkpKyJcbiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dQb3N0ZXJzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oNCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OSxjb2x1bW46MH0sZW5kOntsaW5lOjExLGNvbHVtbjo3fX19KSk/bzoiIikrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7bmFtZToicmVwbGllcyIsb3JkZXI6InBvc3RzIixudW1iZXI6InRydWUiLHNvcnRhYmxlOiJzb3J0YWJsZSJ9LGhhc2hUeXBlczp7bmFtZToiU3RyaW5nTGl0ZXJhbCIsb3JkZXI6IlN0cmluZ0xpdGVyYWwiLG51bWJlcjoiU3RyaW5nTGl0ZXJhbCIsc29ydGFibGU6IlBhdGhFeHByZXNzaW9uIn0saGFzaENvbnRleHRzOntuYW1lOnQsb3JkZXI6dCxudW1iZXI6dCxzb3J0YWJsZTp0fSx0eXBlczpbIlN0cmluZ0xpdGVyYWwiXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTIsY29sdW1uOjB9LGVuZDp7bGluZToxMixjb2x1bW46OTV9fX0pKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJzaG93TGlrZXMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg2LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxMyxjb2x1bW46MH0sZW5kOntsaW5lOjE1LGNvbHVtbjo3fX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInNob3dPcExpa2VzIix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oOCxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjB9LGVuZDp7bGluZToxOCxjb2x1bW46N319fSkpP286IiIpK2UuZXNjYXBlRXhwcmVzc2lvbigobi5yYXd8fHQmJnQucmF3fHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ0b3BpYy1saXN0LWhlYWRlci1jb2x1bW4iLHtuYW1lOiJyYXciLGhhc2g6e25hbWU6InZpZXdzIixvcmRlcjoidmlld3MiLG51bWJlcjoidHJ1ZSIsc29ydGFibGU6InNvcnRhYmxlIn0saGFzaFR5cGVzOntuYW1lOiJTdHJpbmdMaXRlcmFsIixvcmRlcjoiU3RyaW5nTGl0ZXJhbCIsbnVtYmVyOiJTdHJpbmdMaXRlcmFsIixzb3J0YWJsZToiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e25hbWU6dCxvcmRlcjp0LG51bWJlcjp0LHNvcnRhYmxlOnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOSxjb2x1bW46MH0sZW5kOntsaW5lOjE5LGNvbHVtbjo5M319fSkpKyJcbiIrZS5lc2NhcGVFeHByZXNzaW9uKChuLnJhd3x8dCYmdC5yYXd8fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLWxpc3QtaGVhZGVyLWNvbHVtbiIse25hbWU6InJhdyIsaGFzaDp7bmFtZToiYWN0aXZpdHkiLG9yZGVyOiJhY3Rpdml0eSIsbnVtYmVyOiJ0cnVlIixzb3J0YWJsZToic29ydGFibGUifSxoYXNoVHlwZXM6e25hbWU6IlN0cmluZ0xpdGVyYWwiLG9yZGVyOiJTdHJpbmdMaXRlcmFsIixudW1iZXI6IlN0cmluZ0xpdGVyYWwiLHNvcnRhYmxlOiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7bmFtZTp0LG9yZGVyOnQsbnVtYmVyOnQsc29ydGFibGU6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIwLGNvbHVtbjowfSxlbmQ6e2xpbmU6MjAsY29sdW1uOjk5fX19KSkrIlxuIn0sdXNlRGF0YTohMH0pLERpc2NvdXJzZS5SQVdfVEVNUExBVEVTWyJ0b3BpYy1wb3N0LWJhZGdlcyJdPXJlcXVpcmVqcygiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMiKS50ZW1wbGF0ZSh7MTpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiImbmJzcDs8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXJsIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTozLGNvbHVtbjoxOX0sZW5kOntsaW5lOjMsY29sdW1uOjI2fX19KSkrIicgY2xhc3M9J2JhZGdlIGJhZGdlLW5vdGlmaWNhdGlvbiB1bnJlYWQnIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbigobi5pMThufHx0JiZ0LmkxOG58fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInRvcGljLnVucmVhZF9wb3N0cyIse25hbWU6ImkxOG4iLGhhc2g6e2NvdW50OiJ1bnJlYWQifSxoYXNoVHlwZXM6e2NvdW50OiJQYXRoRXhwcmVzc2lvbiJ9LGhhc2hDb250ZXh0czp7Y291bnQ6dH0sdHlwZXM6WyJTdHJpbmdMaXRlcmFsIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjc1fSxlbmQ6e2xpbmU6Myxjb2x1bW46MTE3fX19KSkrIic+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVucmVhZCIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Myxjb2x1bW46MTE5fSxlbmQ6e2xpbmU6Myxjb2x1bW46MTI5fX19KSkrIjwvYT4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjE5fSxlbmQ6e2xpbmU6Nixjb2x1bW46MjZ9fX0pKSsiJyBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy1wb3N0cycgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMudG90YWxfdW5yZWFkX3Bvc3RzIix7bmFtZToiaTE4biIsaGFzaDp7Y291bnQ6Im5ld1Bvc3RzIn0saGFzaFR5cGVzOntjb3VudDoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NvdW50OnR9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjo3OH0sZW5kOntsaW5lOjYsY29sdW1uOjEyOH19fSkpKyInPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJuZXdQb3N0cyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46MTMwfSxlbmQ6e2xpbmU6Nixjb2x1bW46MTQyfX19KSkrIjwvYT4ifSw1OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIiZuYnNwOzxhIGhyZWY9JyIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1cmwiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjE5fSxlbmQ6e2xpbmU6OSxjb2x1bW46MjZ9fX0pKSsiJyBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIG5ldy10b3BpYycgdGl0bGU9JyIrZS5lc2NhcGVFeHByZXNzaW9uKChuLmkxOG58fHQmJnQuaTE4bnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidG9waWMubmV3Iix7bmFtZToiaTE4biIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo5LGNvbHVtbjo3OH0sZW5kOntsaW5lOjksY29sdW1uOjk4fX19KSkrIic+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sIm5ld0RvdFRleHQiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjksY29sdW1uOjEwMH0sZW5kOntsaW5lOjksY29sdW1uOjExNH19fSkpKyI8L2E+In0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8c3BhbiBjbGFzcz0ndG9waWMtcG9zdC1iYWRnZXMnPiIrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVucmVhZCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDEscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjIsY29sdW1uOjJ9LGVuZDp7bGluZTo0LGNvbHVtbjoxMH19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJuZXdQb3N0cyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjUsY29sdW1uOjJ9LGVuZDp7bGluZTo3LGNvbHVtbjoxMH19fSkpP286IiIpKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1bnNlZW4iLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg1LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoyfSxlbmQ6e2xpbmU6MTAsY29sdW1uOjEwfX19KSk/bzoiIikrIjwvc3Bhbj5cbiJ9LHVzZURhdGE6ITB9KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidG9waWMtc3RhdHVzIl09cmVxdWlyZWpzKCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9yYXctaGFuZGxlYmFycyIpLnRlbXBsYXRlKHsxOmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuIjxkaXYgY2xhc3M9J3RvcGljLXN0YXR1c2VzJz5cbiJ9LDM6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmhyZWYiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg0LHMsMCksaW52ZXJzZTplLnByb2dyYW0oNixzLDApLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6NSxjb2x1bW46MH0sZW5kOntsaW5lOjksY29sdW1uOjEwfX19KSk/bzoiIn0sNDpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8YSBocmVmPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmhyZWYiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjl9LGVuZDp7bGluZTo2LGNvbHVtbjoyNH19fSkpKyInIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjozM30sZW5kOntsaW5lOjYsY29sdW1uOjQ5fX19KSkrIicgY2xhc3M9J3RvcGljLXN0YXR1cyAiK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmV4dHJhQ2xhc3NlcyIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6Nixjb2x1bW46NzF9LGVuZDp7bGluZTo2LGNvbHVtbjo5NH19fSkpKyInPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cy5pY29uIix7bmFtZToiZC1pY29uIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo2LGNvbHVtbjo5Nn0sZW5kOntsaW5lOjYsY29sdW1uOjExOH19fSkpKyI8L2E+In0sNjpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cy5vcGVuVGFnIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxfSxlbmQ6e2xpbmU6OCxjb2x1bW46MTl9fX0pKSsiIHRpdGxlPSciK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLnRpdGxlIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoyN30sZW5kOntsaW5lOjgsY29sdW1uOjQzfX19KSkrIicgY2xhc3M9J3RvcGljLXN0YXR1cyc+IitlLmVzY2FwZUV4cHJlc3Npb24oKG5bImQtaWNvbiJdfHx0JiZ0WyJkLWljb24iXXx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmljb24iLHtuYW1lOiJkLWljb24iLGhhc2g6e2NsYXNzOiJzdGF0dXMua2V5In0saGFzaFR5cGVzOntjbGFzczoiUGF0aEV4cHJlc3Npb24ifSxoYXNoQ29udGV4dHM6e2NsYXNzOnR9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46NjZ9LGVuZDp7bGluZTo4LGNvbHVtbjoxMDV9fX0pKSsiPC8iK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwic3RhdHVzLmNsb3NlVGFnIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo4LGNvbHVtbjoxMDd9LGVuZDp7bGluZTo4LGNvbHVtbjoxMjZ9fX0pKSsiPiJ9LDg6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4gZS5lc2NhcGVFeHByZXNzaW9uKChuWyJkLWljb24iXXx8dCYmdFsiZC1pY29uIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcuc2hvd0RlZmF1bHQiLHtuYW1lOiJkLWljb24iLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjExLGNvbHVtbjoyNn0sZW5kOntsaW5lOjExLGNvbHVtbjo1M319fSkpfSwxMDpmdW5jdGlvbihlLHQsbixpLHMpe3JldHVybiI8L2Rpdj5cbiJ9LGNvbXBpbGVyOls4LCI+PSA0LjMuMCJdLG1haW46ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4obnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5yZW5kZXJEaXYiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSgxLHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxLGNvbHVtbjowfSxlbmQ6e2xpbmU6Myxjb2x1bW46OX19fSkpP286IiIpKyhudWxsIT0obz1uLmVhY2guY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInN0YXR1cyIsImluIiwidmlldy5zdGF0dXNlcyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMyxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjQsY29sdW1uOjB9LGVuZDp7bGluZToxMCxjb2x1bW46MTB9fX0pKT9vOiIiKSsobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidmlldy5zaG93RGVmYXVsdCIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDgscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjExLGNvbHVtbjowfSxlbmQ6e2xpbmU6MTEsY29sdW1uOjYzfX19KSk/bzoiIikrKG51bGwhPShvPW4uaWYuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInZpZXcucmVuZGVyRGl2Iix7bmFtZToiaWYiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMTAscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEyLGNvbHVtbjowfSxlbmQ6e2xpbmU6MTQsY29sdW1uOjl9fX0pKT9vOiIiKX0sdXNlRGF0YTohMH0pLEVtYmVyLlRFTVBMQVRFUy50b3BpYz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbInBlbmRpbmciLCJpbmZvIl0sInN0YXRlbWVudHMiOltbNCwiZGlzY291cnNlLXRvcGljIixudWxsLFtbIm11bHRpU2VsZWN0IiwiZW50ZXJlZEF0IiwidG9waWMiLCJoYXNTY3JvbGxlZCJdLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSxbMjQsWyJlbnRlcmVkQXQiXV0sWzI0LFsibW9kZWwiXV0sWzI0LFsiaGFzU2Nyb2xsZWQiXV1dXSx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFsxLFsyOCwiYWRkLWNhdGVnb3J5LXRhZy1jbGFzc2VzIixudWxsLFtbImNhdGVnb3J5IiwidGFncyJdLFtbMjQsWyJtb2RlbCIsImNhdGVnb3J5Il1dLFsyNCxbIm1vZGVsIiwidGFncyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICAgICAiXSxbMSxbMjgsImRpc2NvdXJzZS1iYW5uZXIiLG51bGwsW1sidXNlciIsImJhbm5lciIsIm92ZXJsYXkiLCJoaWRlIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLFsyNCxbInNpdGUiLCJiYW5uZXIiXV0sWzI0LFsiaGFzU2Nyb2xsZWQiXV0sWzI0LFsibW9kZWwiLCJlcnJvckxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1NoYXJlZERyYWZ0Q29udHJvbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInNoYXJlZC1kcmFmdC1jb250cm9scyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtcG9zdC1zdHJlYW0iLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicG9zdFN0cmVhbSIsImxvYWRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJmaXJzdFBvc3RQcmVzZW50Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJ0b3BpYy10aXRsZSIsbnVsbCxbWyJjYW5jZWxsZWQiLCJzYXZlIiwibW9kZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbEVkaXRpbmdUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hlZEVkaXRpbmdUb3BpYyJdLG51bGxdLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiZWRpdGluZ1RvcGljIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImVkaXQtdG9waWMtdGl0bGUiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG5cXG4gICAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1siaWQiLCJ2YWx1ZSIsIm1heGxlbmd0aCIsImF1dG9mb2N1cyJdLFsiZWRpdC10aXRsZSIsWzI0LFsiYnVmZmVyZWQiLCJ0aXRsZSJdXSxbMjQsWyJzaXRlU2V0dGluZ3MiLCJtYXhfdG9waWNfdGl0bGVfbGVuZ3RoIl1dLCJ0cnVlIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dDYXRlZ29yeUNob29zZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1jaG9vc2VyIixudWxsLFtbImNsYXNzIiwidmFsdWUiLCJvbkNoYW5nZSJdLFsic21hbGwiLFsyNCxbImJ1ZmZlcmVkIiwiY2F0ZWdvcnlfaWQiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvcGljQ2F0ZWdvcnlDaGFuZ2VkIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRWRpdFRhZ3MiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJtaW5pLXRhZy1jaG9vc2VyIixudWxsLFtbInZhbHVlIiwib25DaGFuZ2UiLCJvcHRpb25zIl0sW1syNCxbImJ1ZmZlcmVkIiwidGFncyJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9waWNUYWdzQ2hhbmdlZCJdLG51bGxdLFsyOCwiaGFzaCIsbnVsbCxbWyJmaWx0ZXJhYmxlIiwiY2F0ZWdvcnlJZCIsImZpbHRlcmFibGUiXSxbdHJ1ZSxbMjQsWyJidWZmZXJlZCIsImNhdGVnb3J5X2lkIl1dLHRydWVdXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJlZGl0LXRvcGljIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiLCJidWZmZXJlZCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJidWZmZXJlZCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJlZGl0LWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIl0sW1syOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaW5pc2hlZEVkaXRpbmdUb3BpYyJdLG51bGxdLCJidG4tcHJpbWFyeSBzdWJtaXQtZWRpdCIsImNoZWNrIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNhbmNlbEVkaXRpbmdUb3BpYyJdLG51bGxdLCJidG4tZGVmYXVsdCBjYW5jZWwtZWRpdCIsInRpbWVzIl1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImNhblJlbW92ZVRvcGljRmVhdHVyZWRMaW5rIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMTIsImNsYXNzIiwicmVtb3ZlLWZlYXR1cmVkLWxpbmsiXSxbMTIsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJjb21wb3Nlci5yZW1vdmVfZmVhdHVyZWRfbGluayJdLG51bGxdXV1dLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZUZlYXR1cmVkTGluayJdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInRpbWVzLWNpcmNsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzIyLCJmZWF0dXJlZExpbmtEb21haW4iXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImgxIix0cnVlXSxbMTEsImRhdGEtdG9waWMtaWQiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJpZCJdXV0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsibW9kZWwiLCJpc193YXJuaW5nIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGVTZXR0aW5ncyIsImVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSIsImhyZWYiLCJ0aXRsZSIsImFyaWFMYWJlbCJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV0sWzI0LFsicG1QYXRoIl1dLCJ0b3BpY19zdGF0dXNlcy5wZXJzb25hbF9tZXNzYWdlLnRpdGxlIiwidXNlci5tZXNzYWdlcy5pbmJveCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicHJpdmF0ZS1tZXNzYWdlLWdseXBoIixudWxsLFtbImlzVmlzaWJsZSJdLFtbMjQsWyJtb2RlbCIsImlzUHJpdmF0ZU1lc3NhZ2UiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGV0YWlscyIsImxvYWRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXN0YXR1cyIsbnVsbCxbWyJ0b3BpYyJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLFsyOSxbWzI4LCJ1bmJvdW5kIixbWzI0LFsibW9kZWwiLCJ1cmwiXV1dLG51bGxdXV1dLFsxMiwiY2xhc3MiLCJmYW5jeS10aXRsZSJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb3AiXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI0LFsibW9kZWwiLCJmYW5jeVRpdGxlIl1dLHRydWVdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGV0YWlscyIsImNhbl9lZGl0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImVkaXQtdG9waWMiXSxbMTIsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJlZGl0Il0sbnVsbF1dXV0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFRvcGljIl1dLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJwZW5jaWwtYWx0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLWNhdGVnb3J5IixudWxsLFtbInRvcGljIiwiY2xhc3MiXSxbWzI0LFsibW9kZWwiXV0sInRvcGljLWNhdGVnb3J5Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuXFxuICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIgcG9zdHMiXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNlbGVjdGVkLXBvc3RzICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxNSwic2VsZWN0ZWQtcG9zdHMiLFtdXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwidG9waWMtbmF2aWdhdGlvbiIsbnVsbCxbWyJ0b3BpYyIsImp1bXBUb0RhdGUiLCJqdW1wVG9JbmRleCJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcFRvRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9JbmRleCJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJyZW5kZXJUaW1lbGluZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMixbInJlbmRlckFkbWluTWVudUJ1dHRvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiIsbnVsbCxbWyJ0b3BpYyIsImZpeGVkIiwidG9nZ2xlTXVsdGlTZWxlY3QiLCJkZWxldGVUb3BpYyIsInJlY292ZXJUb3BpYyIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsibW9kZWwiXV0sInRydWUiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVNdWx0aVNlbGVjdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZWNvdmVyVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQ2xvc2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUFyY2hpdmVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVZpc2liaWxpdHkiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93VG9waWNTdGF0dXNVcGRhdGUiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93RmVhdHVyZVRvcGljIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0NoYW5nZVRpbWVzdGFtcCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldEJ1bXBEYXRlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbnZlcnRUb1B1YmxpY1RvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbnZlcnRUb1ByaXZhdGVNZXNzYWdlIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtdGltZWxpbmUiLG51bGwsW1sidG9waWMiLCJub3RpZmljYXRpb25MZXZlbCIsInByZXZFdmVudCIsImZ1bGxzY3JlZW4iLCJlbnRlcmVkSW5kZXgiLCJsb2FkaW5nIiwianVtcFRvUG9zdCIsImp1bXBUb3AiLCJqdW1wQm90dG9tIiwianVtcEVuZCIsImp1bXBUb1Bvc3RQcm9tcHQiLCJqdW1wVG9JbmRleCIsInJlcGx5VG9Qb3N0IiwidG9nZ2xlTXVsdGlTZWxlY3QiLCJkZWxldGVUb3BpYyIsInJlY292ZXJUb3BpYyIsInRvZ2dsZUNsb3NlZCIsInRvZ2dsZUFyY2hpdmVkIiwidG9nZ2xlVmlzaWJpbGl0eSIsInNob3dUb3BpY1N0YXR1c1VwZGF0ZSIsInNob3dGZWF0dXJlVG9waWMiLCJzaG93Q2hhbmdlVGltZXN0YW1wIiwicmVzZXRCdW1wRGF0ZSIsImNvbnZlcnRUb1B1YmxpY1RvcGljIiwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxbWzI0LFsibW9kZWwiXV0sWzI0LFsibW9kZWwiLCJkZXRhaWxzIiwibm90aWZpY2F0aW9uX2xldmVsIl1dLFsyMywyLFsicHJldkV2ZW50Il1dLFsyMywyLFsidG9waWNQcm9ncmVzc0V4cGFuZGVkIl1dLFsyNCxbImVudGVyZWRJbmRleCJdXSxbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJsb2FkaW5nIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9Qb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb3AiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcEJvdHRvbSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wRW5kIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb1Bvc3RQcm9tcHQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwianVtcFRvSW5kZXgiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVwbHlUb1Bvc3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlTXVsdGlTZWxlY3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVjb3ZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUNsb3NlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVBcmNoaXZlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVWaXNpYmlsaXR5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd1RvcGljU3RhdHVzVXBkYXRlIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZlYXR1cmVUb3BpYyJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dDaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRCdW1wRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsInRvcGljLXByb2dyZXNzIixudWxsLFtbInByZXZFdmVudCIsInRvcGljIiwiZXhwYW5kZWQiLCJqdW1wVG9Qb3N0Il0sW1syMywyLFsicHJldkV2ZW50Il1dLFsyNCxbIm1vZGVsIl1dLFsyMywyLFsidG9waWNQcm9ncmVzc0V4cGFuZGVkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJqdW1wVG9Qb3N0Il0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJiZWZvcmUtdG9waWMtcHJvZ3Jlc3MiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCIsImp1bXBUb1Bvc3QiXSxbWzI0LFsibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImp1bXBUb1Bvc3QiXSxudWxsXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syMywyLFsicmVuZGVyQWRtaW5NZW51QnV0dG9uIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtYWRtaW4tbWVudS1idXR0b24iLG51bGwsW1sidG9waWMiLCJvcGVuVXB3YXJkcyIsInJpZ2h0U2lkZSIsInRvZ2dsZU11bHRpU2VsZWN0IiwiZGVsZXRlVG9waWMiLCJyZWNvdmVyVG9waWMiLCJ0b2dnbGVDbG9zZWQiLCJ0b2dnbGVBcmNoaXZlZCIsInRvZ2dsZVZpc2liaWxpdHkiLCJzaG93VG9waWNTdGF0dXNVcGRhdGUiLCJzaG93RmVhdHVyZVRvcGljIiwic2hvd0NoYW5nZVRpbWVzdGFtcCIsInJlc2V0QnVtcERhdGUiLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyIsImNvbnZlcnRUb1ByaXZhdGVNZXNzYWdlIl0sW1syNCxbIm1vZGVsIl1dLCJ0cnVlIiwidHJ1ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZU11bHRpU2VsZWN0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImRlbGV0ZVRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlY292ZXJUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVDbG9zZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQXJjaGl2ZWQiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlVmlzaWJpbGl0eSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dUb3BpY1N0YXR1c1VwZGF0ZSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dGZWF0dXJlVG9waWMiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93Q2hhbmdlVGltZXN0YW1wIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2V0QnVtcERhdGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29udmVydFRvUHVibGljVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiY29udmVydFRvUHJpdmF0ZU1lc3NhZ2UiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119XV0sInBhcmFtZXRlcnMiOlsyXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyb3ciXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1hcmVhIl0sWzEwLCJpZCIsInRvcGljIl0sWzExLCJkYXRhLXRvcGljLWlkIixbMjksW1syOCwidW5ib3VuZCIsW1syNCxbIm1vZGVsIiwiaWQiXV1dLG51bGxdXV1dLFs4XSxbMCwiXFxuXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwb3N0cy13cmFwcGVyIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwibG9hZGluZ0Fib3ZlIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ0b3BpYy1hYm92ZS1wb3N0cyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwicG9zdFN0cmVhbSIsImxvYWRpbmdGaWx0ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzY3JvbGxpbmctcG9zdC1zdHJlYW0iLG51bGwsW1sicG9zdHMiLCJjYW5DcmVhdGVQb3N0IiwibXVsdGlTZWxlY3QiLCJzZWxlY3RlZFBvc3RzQ291bnQiLCJzZWxlY3RlZFF1ZXJ5IiwiZ2FwcyIsInNob3dSZWFkSW5kaWNhdG9yIiwic2hvd0ZsYWdzIiwiZWRpdFBvc3QiLCJzaG93SGlzdG9yeSIsInNob3dMb2dpbiIsInNob3dSYXdFbWFpbCIsImRlbGV0ZVBvc3QiLCJyZWNvdmVyUG9zdCIsImV4cGFuZEhpZGRlbiIsIm5ld1RvcGljQWN0aW9uIiwidG9nZ2xlQm9va21hcmsiLCJ0b2dnbGVCb29rbWFya1dpdGhSZW1pbmRlciIsInRvZ2dsZVBvc3RUeXBlIiwicmViYWtlUG9zdCIsImNoYW5nZVBvc3RPd25lciIsImdyYW50QmFkZ2UiLCJhZGROb3RpY2UiLCJyZW1vdmVOb3RpY2UiLCJsb2NrUG9zdCIsInVubG9ja1Bvc3QiLCJ1bmhpZGVQb3N0IiwicmVwbHlUb1Bvc3QiLCJ0b2dnbGVXaWtpIiwidG9nZ2xlU3VtbWFyeSIsInJlbW92ZUFsbG93ZWRVc2VyIiwicmVtb3ZlQWxsb3dlZEdyb3VwIiwidG9wVmlzaWJsZUNoYW5nZWQiLCJjdXJyZW50UG9zdENoYW5nZWQiLCJjdXJyZW50UG9zdFNjcm9sbGVkIiwiYm90dG9tVmlzaWJsZUNoYW5nZWQiLCJ0b2dnbGVQb3N0U2VsZWN0aW9uIiwic2VsZWN0UmVwbGllcyIsInNlbGVjdEJlbG93IiwiZmlsbEdhcEJlZm9yZSIsImZpbGxHYXBBZnRlciIsInNob3dJbnZpdGUiXSxbWzI0LFsicG9zdHNUb1JlbmRlciJdXSxbMjQsWyJtb2RlbCIsImRldGFpbHMiLCJjYW5fY3JlYXRlX3Bvc3QiXV0sWzI0LFsibXVsdGlTZWxlY3QiXV0sWzI0LFsic2VsZWN0ZWRQb3N0c0NvdW50Il1dLFsyNCxbInNlbGVjdGVkUXVlcnkiXV0sWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwiZ2FwcyJdXSxbMjQsWyJtb2RlbCIsInNob3dfcmVhZF9pbmRpY2F0b3IiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dQb3N0RmxhZ3MiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdFBvc3QiXSxudWxsXSxbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93SGlzdG9yeSJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dMb2dpbiJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dSYXdFbWFpbCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWxldGVQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlY292ZXJQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4cGFuZEhpZGRlbiJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseUFzTmV3VG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQm9va21hcmsiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQm9va21hcmtXaXRoUmVtaW5kZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlUG9zdFR5cGUiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmViYWtlUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjaGFuZ2VQb3N0T3duZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZ3JhbnRCYWRnZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJhZGROb3RpY2UiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlTm90aWNlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvY2tQb3N0Il0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInVubG9ja1Bvc3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidW5oaWRlUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseVRvUG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVXaWtpIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVN1bW1hcnkiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQWxsb3dlZFVzZXIiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVtb3ZlQWxsb3dlZEdyb3VwIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvcFZpc2libGVDaGFuZ2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImN1cnJlbnRQb3N0Q2hhbmdlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjdXJyZW50UG9zdFNjcm9sbGVkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImJvdHRvbVZpc2libGVDaGFuZ2VkIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVBvc3RTZWxlY3Rpb24iXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2VsZWN0UmVwbGllcyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RCZWxvdyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJmaWxsR2FwQmVmb3JlIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImZpbGxHYXBBZnRlciJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dJbnZpdGUiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJwb3N0U3RyZWFtIiwibG9hZGluZ0JlbG93Il1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiaWQiLCJ0b3BpYy1ib3R0b20iXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsInBvc3RTdHJlYW0iLCJsb2FkaW5nRmlsdGVyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibG9hZGVkQWxsUG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicGVuZGluZ19wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwZW5kaW5nLXBvc3RzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwicGVuZGluZ19wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicmV2aWV3YWJsZS1pdGVtIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtbWV0YS1kYXRhIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJldmlld2FibGUtdHlwZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsicmV2aWV3LmF3YWl0aW5nX2FwcHJvdmFsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTAsImNsYXNzIiwiY3JlYXRlZC1hdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImFnZS13aXRoLXRvb2x0aXAiLFtbMjMsMSxbImNyZWF0ZWRfYXQiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInBvc3QtY29udGVudHMtd3JhcHBlciJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJyZXZpZXdhYmxlLWNyZWF0ZWQtYnkiLG51bGwsW1sidXNlciIsInRhZ05hbWUiXSxbWzI0LFsiY3VycmVudFVzZXIiXV0sIiJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1jb250ZW50cyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJldmlld2FibGUtY3JlYXRlZC1ieS1uYW1lIixudWxsLFtbInVzZXIiLCJ0YWdOYW1lIl0sW1syNCxbImN1cnJlbnRVc2VyIl1dLCIiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicG9zdC1ib2R5Il0sWzhdLFsxLFsyOCwiY29vay10ZXh0IixbWzIzLDEsWyJyYXciXV1dLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJyZXZpZXdhYmxlLWFjdGlvbnMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJsYWJlbCIsImljb24iLCJhY3Rpb24iXSxbImJ0bi1kYW5nZXIiLCJyZXZpZXcuZGVsZXRlIiwidHJhc2gtYWx0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlUGVuZGluZyIsWzIzLDEsW11dXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOlsxXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInF1ZXVlZF9wb3N0c19jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJoYXMtcGVuZGluZy1wb3N0cyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudG9waWNfaGFzX3BlbmRpbmciXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsInF1ZXVlZF9wb3N0c19jb3VudCJdXV1dXSx0cnVlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJ0b3BpY19pZCIsInR5cGUiLCJzdGF0dXMiXSxbWzI0LFsibW9kZWwiLCJpZCJdXSwiUmV2aWV3YWJsZVF1ZXVlZFBvc3QiLCJwZW5kaW5nIl1dXSwicmV2aWV3Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJyZXZpZXcudmlld19wZW5kaW5nIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXRpbWVyLWluZm8iLG51bGwsW1sidG9waWNDbG9zZWQiLCJzdGF0dXNUeXBlIiwiZXhlY3V0ZUF0IiwiZHVyYXRpb24iLCJyZW1vdmVUb3BpY1RpbWVyIl0sW1syNCxbIm1vZGVsIiwiY2xvc2VkIl1dLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsInN0YXR1c190eXBlIl1dLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV0sWzI0LFsibW9kZWwiLCJwcml2YXRlX3RvcGljX3RpbWVyIiwiZHVyYXRpb24iXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlbW92ZVRvcGljVGltZXIiLFsyNCxbIm1vZGVsIiwicHJpdmF0ZV90b3BpY190aW1lciIsInN0YXR1c190eXBlIl1dLCJwcml2YXRlX3RvcGljX3RpbWVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbMSxbMjgsInRvcGljLXRpbWVyLWluZm8iLG51bGwsW1sidG9waWNDbG9zZWQiLCJzdGF0dXNUeXBlIiwiZXhlY3V0ZUF0IiwiYmFzZWRPbkxhc3RQb3N0IiwiZHVyYXRpb24iLCJjYXRlZ29yeUlkIiwicmVtb3ZlVG9waWNUaW1lciJdLFtbMjQsWyJtb2RlbCIsImNsb3NlZCJdXSxbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwic3RhdHVzX3R5cGUiXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImV4ZWN1dGVfYXQiXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImJhc2VkX29uX2xhc3RfcG9zdCJdXSxbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwiZHVyYXRpb24iXV0sWzI0LFsibW9kZWwiLCJ0b3BpY190aW1lciIsImNhdGVnb3J5X2lkIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZW1vdmVUb3BpY1RpbWVyIixbMjQsWyJtb2RlbCIsInRvcGljX3RpbWVyIiwic3RhdHVzX3R5cGUiXV0sInRvcGljX3RpbWVyIl0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzZXNzaW9uIiwic2hvd1NpZ251cEN0YSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyMiwic2lnbnVwLWN0YSJdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY3VycmVudFVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtZm9vdGVyLWJ1dHRvbnMiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcblxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidG9waWMtZm9vdGVyLWJ1dHRvbnMiLG51bGwsW1sidG9waWMiLCJ0b2dnbGVNdWx0aVNlbGVjdCIsImRlbGV0ZVRvcGljIiwicmVjb3ZlclRvcGljIiwidG9nZ2xlQ2xvc2VkIiwidG9nZ2xlQXJjaGl2ZWQiLCJ0b2dnbGVWaXNpYmlsaXR5Iiwic2hvd1RvcGljU3RhdHVzVXBkYXRlIiwic2hvd0ZlYXR1cmVUb3BpYyIsInNob3dDaGFuZ2VUaW1lc3RhbXAiLCJyZXNldEJ1bXBEYXRlIiwiY29udmVydFRvUHVibGljVG9waWMiLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSIsInRvZ2dsZUJvb2ttYXJrIiwic2hvd0ZsYWdUb3BpYyIsInRvZ2dsZUFyY2hpdmVNZXNzYWdlIiwiZWRpdEZpcnN0UG9zdCIsImRlZmVyVG9waWMiLCJyZXBseVRvUG9zdCJdLFtbMjQsWyJtb2RlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlTXVsdGlTZWxlY3QiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZGVsZXRlVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVjb3ZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZUNsb3NlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVBcmNoaXZlZCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVWaXNpYmlsaXR5Il0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd1RvcGljU3RhdHVzVXBkYXRlIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0ZlYXR1cmVUb3BpYyJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dDaGFuZ2VUaW1lc3RhbXAiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVzZXRCdW1wRGF0ZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9QdWJsaWNUb3BpYyJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJ0b2dnbGVCb29rbWFyayJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbInNob3dGbGFnVG9waWMiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiXSxudWxsXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZWRpdEZpcnN0UG9zdCJdLG51bGxdLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJkZWZlclRvcGljIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlcGx5VG9Qb3N0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJpZCIsInRvcGljLWZvb3Rlci1idXR0b25zIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbInJlcGx5IiwiYnRuLXByaW1hcnkgcHVsbC1yaWdodCIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsic2hvd0xvZ2luIl0sbnVsbF0sInRvcGljLnJlcGx5LnRpdGxlIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2hvd1NlbGVjdGVkUG9zdHNBdEJvdHRvbSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbInNlbGVjdGVkLXBvc3RzICIsWzI4LCJ1bmxlc3MiLFtbMjQsWyJtdWx0aVNlbGVjdCJdXSwiaGlkZGVuIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMTUsInNlbGVjdGVkLXBvc3RzIixbXV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidG9waWMtYWJvdmUtc3VnZ2VzdGVkIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbIm1vZGVsIiwicmVsYXRlZE1lc3NhZ2VzIiwibGVuZ3RoIl1dLCJyZWxhdGVkLW1lc3NhZ2VzLXdyYXBwZXIiXSxudWxsXSwiICIsWzI4LCJpZiIsW1syNCxbIm1vZGVsIiwic3VnZ2VzdGVkVG9waWNzIiwibGVuZ3RoIl1dLCJzdWdnZXN0ZWQtdG9waWNzLXdyYXBwZXIiXSxudWxsXV1dXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwicmVsYXRlZE1lc3NhZ2VzIiwibGVuZ3RoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInJlbGF0ZWQtbWVzc2FnZXMiLG51bGwsW1sidG9waWMiXSxbWzI0LFsibW9kZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN1Z2dlc3RlZFRvcGljcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJzdWdnZXN0ZWQtdG9waWNzIixudWxsLFtbInRvcGljIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4iXSxbNCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJub0Vycm9yWWV0Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJlcnJvckh0bWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwibm90LWZvdW5kIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwiZXJyb3JIdG1sIl1dLHRydWVdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9waWMtZXJyb3IiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjQsWyJtb2RlbCIsImVycm9yTWVzc2FnZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm5vUmV0cnkiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbImN1cnJlbnRVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImljb24iLCJsYWJlbCJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93TG9naW4iXSxudWxsXSwiYnRuLXByaW1hcnkgdG9waWMtcmV0cnkiLCJ1c2VyIiwibG9nX2luIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiY2xhc3MiLCJpY29uIiwibGFiZWwiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJldHJ5TG9hZGluZyJdLG51bGxdLCJidG4tcHJpbWFyeSB0b3BpYy1yZXRyeSIsInN5bmMiLCJlcnJvcnMuYnV0dG9ucy5hZ2FpbiJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsicmV0cnlpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiXFxuICAiXSxbMSxbMjgsInNoYXJlLXBvcHVwIixudWxsLFtbInRvcGljIiwicmVwbHlBc05ld1RvcGljIl0sW1syNCxbIm1vZGVsIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXBseUFzTmV3VG9waWMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcblxcbiJdLFs0LCJpZiIsW1syNCxbImVtYmVkUXVvdGVCdXR0b24iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsInF1b3RlLWJ1dHRvbiIsbnVsbCxbWyJxdW90ZVN0YXRlIiwic2VsZWN0VGV4dCJdLFtbMjQsWyJxdW90ZVN0YXRlIl1dLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzZWxlY3RUZXh0Il0sbnVsbF1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOnRydWV9JyxtZXRhOnttb2R1bGVOYW1lOiJ0b3BpYyJ9fSksRW1iZXIuVEVNUExBVEVTLnVua25vd249RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiY29udGFpbmVyIl0sWzhdLFswLCJcXG4gICJdLFsxLFsyMiwibW9kZWwiXSx0cnVlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidW5rbm93biJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyLWNhcmQiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjYXJkLWNsb2FrIGhpZGRlbiJdLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbMSxbMjgsInVzZXItY2FyZC1jb250ZW50cyIsbnVsbCxbWyJjdXJyZW50UGF0aCIsInRvcGljIiwic2hvd1VzZXIiLCJ0b2dnbGVQb3N0cyIsImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dLFsyNCxbInRvcGljIiwibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvZ2dsZVBvc3RzIl0sbnVsbF0sWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyJdLG51bGxdXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzEsWzI4LCJncm91cC1jYXJkLWNvbnRlbnRzIixudWxsLFtbImN1cnJlbnRQYXRoIiwidG9waWMiLCJzaG93VXNlciIsInNob3dHcm91cCIsImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxbWzI0LFsicm91dGVyIiwiX3JvdXRlciIsImN1cnJlbnRQYXRoIl1dLFsyNCxbInRvcGljIiwibW9kZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dVc2VyIl0sbnVsbF0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNob3dHcm91cCJdLG51bGxdLFsyOCwicm91dGUtYWN0aW9uIixbImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyLWNhcmQifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci1pbnZpdGVkLXNob3ciXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImludml0ZSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLWludml0ZXMiLCIiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsiY2FuSW52aXRlVG9Gb3J1bSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbImNsYXNzIiwic2VsZWN0b3IiLCJhY3Rpb24iXSxbInVzZXItY29udGVudCIsIi51c2VyLWludml0ZS1saXN0IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfaW52aXRlX2RldGFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWRtaW4tY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJuYXYiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFsxMCwiY2xhc3MiLCJuYXYgbmF2LXBpbGxzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJuYXYtaXRlbSIsbnVsbCxbWyJyb3V0ZSIsInJvdXRlUGFyYW0iLCJpMThuTGFiZWwiXSxbInVzZXJJbnZpdGVkLnNob3ciLCJwZW5kaW5nIixbMjQsWyJwZW5kaW5nTGFiZWwiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJuYXYtaXRlbSIsbnVsbCxbWyJyb3V0ZSIsInJvdXRlUGFyYW0iLCJpMThuTGFiZWwiXSxbInVzZXJJbnZpdGVkLnNob3ciLCJyZWRlZW1lZCIsWzI0LFsicmVkZWVtZWRMYWJlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLXJpZ2h0Il0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siaWNvbiIsImFjdGlvbiIsImxhYmVsIl0sWyJwbHVzIixbMjgsInJvdXRlLWFjdGlvbiIsWyJzaG93SW52aXRlIl0sbnVsbF0sInVzZXIuaW52aXRlZC5jcmVhdGUiXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQnVsa0ludml0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiY3N2LXVwbG9hZGVyIixudWxsLFtbInVwbG9hZGluZyJdLFtbMjQsWyJ1cGxvYWRpbmciXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsImEiLHRydWVdLFsxMCwiaHJlZiIsImh0dHBzOi8vbWV0YS5kaXNjb3Vyc2Uub3JnL3Qvc2VuZGluZy1idWxrLXVzZXItaW52aXRlcy8xNjQ2OCJdLFsxMCwidGFyZ2V0IiwiX2JsYW5rIl0sWzEwLCJzdHlsZSIsImNvbG9yOmJsYWNrOyJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJxdWVzdGlvbi1jaXJjbGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJzaG93QnVsa0FjdGlvbkJ1dHRvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsicmVzY2luZGVkQWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlc2NpbmRlZF9hbGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsidGltZXMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNjaW5kQWxsIl0sbnVsbF0sInVzZXIuaW52aXRlZC5yZXNjaW5kX2FsbCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsicmVpbnZpdGVkQWxsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlaW52aXRlZF9hbGwiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJsYWJlbCJdLFsic3luYyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlaW52aXRlQWxsIl0sbnVsbF0sInVzZXIuaW52aXRlZC5yZWludml0ZV9hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93U2VhcmNoIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItaW52aXRlLXNlYXJjaCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImZvcm0iLHRydWVdLFs4XSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSJdLFtbMjQsWyJzZWFyY2hUZXJtIl1dLCJ1c2VyLmludml0ZWQuc2VhcmNoIl1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpbnZpdGVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzcsInRhYmxlIix0cnVlXSxbMTAsImNsYXNzIiwidGFibGUgdXNlci1pbnZpdGUtbGlzdCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInRib2R5Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInRyIix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImludml0ZVJlZGVlbWVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnVzZXIiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlZGVlbWVkX2F0Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VlX2ludml0ZV9kZXRhaWxzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC50b3BpY3NfZW50ZXJlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5wb3N0c19yZWFkX2NvdW50Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnRpbWVfcmVhZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5kYXlzX3Zpc2l0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbMTAsImNvbHNwYW4iLCIxIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWQudXNlciJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjb2xzcGFuIiwiNiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnNlbnQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiaW52aXRlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbInVzZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjMsMSxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImF2YXRhciIsW1syMywxLFsidXNlciJdXV0sW1siaW1hZ2VTaXplIl0sWyJ0aW55Il1dXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyIixbMjMsMSxbInVzZXIiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjMsMSxbInVzZXIiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZm9ybWF0LWRhdGUiLFtbMjMsMSxbInJlZGVlbWVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNhbl9zZWVfaW52aXRlX2RldGFpbHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJ1c2VyIiwibGFzdF9zZWVuX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJudW1iZXIiLFtbMjMsMSxbInVzZXIiLCJ0b3BpY3NfZW50ZXJlZCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwibnVtYmVyIixbWzIzLDEsWyJ1c2VyIiwicG9zdHNfcmVhZF9jb3VudCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiZm9ybWF0LWR1cmF0aW9uIixbWzIzLDEsWyJ1c2VyIiwidGltZV9yZWFkIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMSwidGl0bGUiLFsyOSxbWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5kYXlzX3Zpc2l0ZWQiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJ1c2VyIiwiZGF5c192aXNpdGVkIl1dXSxudWxsXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgL1xcbiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjksW1syOCwiaTE4biIsWyJ1c2VyLmludml0ZWQuYWNjb3VudF9hZ2VfZGF5cyJdLG51bGxdXV1dLFs4XSxbMSxbMjgsInVuYm91bmQiLFtbMjMsMSxbInVzZXIiLCJkYXlzX3NpbmNlX2NyZWF0ZWQiXV1dLG51bGxdLHRydWVdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbOF0sWzEsWzI4LCJ1bmJvdW5kIixbWzIzLDEsWyJlbWFpbCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMSxbMjgsImZvcm1hdC1kYXRlIixbWzIzLDEsWyJ1cGRhdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs3LCJ0ZCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjMsMSxbImV4cGlyZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLmV4cGlyZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjMsMSxbInJlc2NpbmRlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5yZXNjaW5kZWQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImxhYmVsIl0sWyJ0aW1lcyIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInJlc2NpbmQiXSxudWxsXSxbMjMsMSxbXV0sInVzZXIuaW52aXRlZC5yZXNjaW5kIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzIzLDEsWyJyZWludml0ZWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLnJlaW52aXRlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImljb24iLCJhY3Rpb24iLCJhY3Rpb25QYXJhbSIsImxhYmVsIl0sWyJzeW5jIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwicmVpbnZpdGUiXSxudWxsXSxbMjMsMSxbXV0sInVzZXIuaW52aXRlZC5yZWludml0ZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbImludml0ZXNMb2FkaW5nIl1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1pbnZpdGUtbm9uZSJdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQnVsa0ludml0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5pbnZpdGVkLmJ1bGtfaW52aXRlLm5vbmUiXSxudWxsXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC5ub25lIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci1pbnZpdGVkLXNob3cifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci1wcml2YXRlLW1lc3NhZ2VzLXRhZ3MiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJsaXN0LWNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJjb250YWluZXIiXSxbOF0sWzAsIlxcbiAgICAiXSxbNywiaDIiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidGFnZ2luZy50YWdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRhZy1zb3J0LW9wdGlvbnMiXSxbOF0sWzAsIlxcbiAgIl0sWzEsWzI4LCJpMThuIixbInRhZ2dpbmcuc29ydF9ieSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAiXSxbNywic3BhbiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFsidGFnLXNvcnQtY291bnQgIixbMjgsImlmIixbWzI0LFsic29ydGVkQnlDb3VudCJdXSwiYWN0aXZlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlDb3VudCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnlfY291bnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG4gICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJ0YWctc29ydC1uYW1lICIsWzI4LCJpZiIsW1syNCxbInNvcnRlZEJ5TmFtZSJdXSwiYWN0aXZlIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4gICAgIl0sWzcsImEiLGZhbHNlXSxbMTIsImhyZWYiLCIiXSxbMywiYWN0aW9uIixbWzIzLDAsW11dLCJzb3J0QnlJZCJdXSxbOF0sWzAsIlxcbiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ0YWdnaW5nLnNvcnRfYnlfbmFtZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAiXSxbOV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuXFxuIl0sWzcsImhyIix0cnVlXSxbOF0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInRhZy1saXN0IixudWxsLFtbInRhZ3MiLCJzb3J0UHJvcGVydGllcyIsInRpdGxlS2V5IiwiaXNQcml2YXRlTWVzc2FnZSIsInRhZ3NGb3JVc2VyIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInNvcnRQcm9wZXJ0aWVzIl1dLCJ0YWdnaW5nLmFsbF90YWdzIix0cnVlLFsyNCxbInRhZ3NGb3JVc2VyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIn19KSxEaXNjb3Vyc2UuUkFXX1RFTVBMQVRFU1sidXNlci1zZWxlY3Rvci1hdXRvY29tcGxldGUiXT1yZXF1aXJlanMoImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIikudGVtcGxhdGUoezE6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgPGxpPlxuICAgICAgICA8YSBocmVmIHRpdGxlPSInK2UuZXNjYXBlRXhwcmVzc2lvbihuLmdldC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlci5uYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo1LGNvbHVtbjoyM30sZW5kOntsaW5lOjUsY29sdW1uOjM2fX19KSkrJyI+XG4gICAgICAgICAgJytlLmVzY2FwZUV4cHJlc3Npb24oKG4uYXZhdGFyfHx0JiZ0LmF2YXRhcnx8ZS5ob29rcy5oZWxwZXJNaXNzaW5nKS5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlciIse25hbWU6ImF2YXRhciIsaGFzaDp7aW1hZ2VTaXplOiJ0aW55In0saGFzaFR5cGVzOntpbWFnZVNpemU6IlN0cmluZ0xpdGVyYWwifSxoYXNoQ29udGV4dHM6e2ltYWdlU2l6ZTp0fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjYsY29sdW1uOjEwfSxlbmQ6e2xpbmU6Nixjb2x1bW46NDJ9fX0pKSsiXG4gICAgICAgICAgPHNwYW4gY2xhc3M9J3VzZXJuYW1lJz4iK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZm9ybWF0LXVzZXJuYW1lIl18fHQmJnRbImZvcm1hdC11c2VybmFtZSJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1c2VyLnVzZXJuYW1lIix7bmFtZToiZm9ybWF0LXVzZXJuYW1lIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZTo3LGNvbHVtbjozM30sZW5kOntsaW5lOjcsY29sdW1uOjY2fX19KSkrIjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0nbmFtZSc+IitlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sInVzZXIubmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6OCxjb2x1bW46Mjl9LGVuZDp7bGluZTo4LGNvbHVtbjo0Mn19fSkpKyI8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4ifSwzOmZ1bmN0aW9uKGUsdCxuLGkscyl7dmFyIG87cmV0dXJuIG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwiZW1haWwiLCJpbiIsIm9wdGlvbnMuZW1haWxzIix7bmFtZToiZWFjaCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg0LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiIsIkNvbW1lbnRTdGF0ZW1lbnQiLCJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0LHQsdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTQsY29sdW1uOjZ9LGVuZDp7bGluZToyMSxjb2x1bW46MTV9fX0pKT9vOiIifSw0OmZ1bmN0aW9uKGUsdCxuLGkscyl7cmV0dXJuJyAgICAgICAgPGxpPlxuICAgICAgICAgIDxhIGhyZWYgdGl0bGU9IicrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbWFpbC51c2VybmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MTYsY29sdW1uOjI1fSxlbmQ6e2xpbmU6MTYsY29sdW1uOjQzfX19KSkrJyI+XG4gICAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJlbnZlbG9wZSIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxNyxjb2x1bW46MTJ9LGVuZDp7bGluZToxNyxjb2x1bW46MzN9fX0pKSsiXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz0ndXNlcm5hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKChuWyJmb3JtYXQtdXNlcm5hbWUiXXx8dCYmdFsiZm9ybWF0LXVzZXJuYW1lIl18fGUuaG9va3MuaGVscGVyTWlzc2luZykuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImVtYWlsLnVzZXJuYW1lIix7bmFtZToiZm9ybWF0LXVzZXJuYW1lIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToxOCxjb2x1bW46MzV9LGVuZDp7bGluZToxOCxjb2x1bW46Njl9fX0pKSsiPC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiJ9LDY6ZnVuY3Rpb24oZSx0LG4saSxzKXt2YXIgbztyZXR1cm4gbnVsbCE9KG89bi5lYWNoLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cCIsImluIiwib3B0aW9ucy5ncm91cHMiLHtuYW1lOiJlYWNoIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDcscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIiwiQ29tbWVudFN0YXRlbWVudCIsIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3QsdCx0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNSxjb2x1bW46Nn0sZW5kOntsaW5lOjMzLGNvbHVtbjoxNX19fSkpP286IiJ9LDc6ZnVuY3Rpb24oZSx0LG4saSxzKXtyZXR1cm4nICAgICAgICA8bGk+XG4gICAgICAgICAgPGEgaHJlZiB0aXRsZT0iJytlLmVzY2FwZUV4cHJlc3Npb24obi5nZXQuY2FsbChudWxsIT10P3Q6ZS5udWxsQ29udGV4dHx8e30sImdyb3VwLmZ1bGxfbmFtZSIse25hbWU6ImdldCIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdF0sZGF0YTpzLGxvYzp7c3RhcnQ6e2xpbmU6MjcsY29sdW1uOjI1fSxlbmQ6e2xpbmU6MjcsY29sdW1uOjQ0fX19KSkrJyI+XG4gICAgICAgICAgICAnK2UuZXNjYXBlRXhwcmVzc2lvbigoblsiZC1pY29uIl18fHQmJnRbImQtaWNvbiJdfHxlLmhvb2tzLmhlbHBlck1pc3NpbmcpLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJ1c2VycyIse25hbWU6ImQtaWNvbiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LHR5cGVzOlsiU3RyaW5nTGl0ZXJhbCJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyOCxjb2x1bW46MTJ9LGVuZDp7bGluZToyOCxjb2x1bW46MzB9fX0pKSsiXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz0ndXNlcm5hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cC5uYW1lIix7bmFtZToiZ2V0IixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyOSxjb2x1bW46MzV9LGVuZDp7bGluZToyOSxjb2x1bW46NDl9fX0pKSsiPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9J25hbWUnPiIrZS5lc2NhcGVFeHByZXNzaW9uKG4uZ2V0LmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJncm91cC5mdWxsX25hbWUiLHtuYW1lOiJnZXQiLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMwLGNvbHVtbjozMX0sZW5kOntsaW5lOjMwLGNvbHVtbjo1MH19fSkpKyI8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuIn0sY29tcGlsZXI6WzgsIj49IDQuMy4wIl0sbWFpbjpmdW5jdGlvbihlLHQsbixpLHMpe3ZhciBvO3JldHVybiI8ZGl2IGNsYXNzPSdhdXRvY29tcGxldGUgYWMtdXNlcic+XG4gIDx1bD5cbiIrKG51bGwhPShvPW4uZWFjaC5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwidXNlciIsImluIiwib3B0aW9ucy51c2VycyIse25hbWU6ImVhY2giLGhhc2g6e30saGFzaFR5cGVzOnt9LGhhc2hDb250ZXh0czp7fSxmbjplLnByb2dyYW0oMSxzLDApLGludmVyc2U6ZS5ub29wLHR5cGVzOlsiUGF0aEV4cHJlc3Npb24iLCJDb21tZW50U3RhdGVtZW50IiwiUGF0aEV4cHJlc3Npb24iXSxjb250ZXh0czpbdCx0LHRdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjMsY29sdW1uOjR9LGVuZDp7bGluZToxMSxjb2x1bW46MTN9fX0pKT9vOiIiKSsiXG4iKyhudWxsIT0obz1uLmlmLmNhbGwobnVsbCE9dD90OmUubnVsbENvbnRleHR8fHt9LCJvcHRpb25zLmVtYWlscyIse25hbWU6ImlmIixoYXNoOnt9LGhhc2hUeXBlczp7fSxoYXNoQ29udGV4dHM6e30sZm46ZS5wcm9ncmFtKDMscywwKSxpbnZlcnNlOmUubm9vcCx0eXBlczpbIlBhdGhFeHByZXNzaW9uIl0sY29udGV4dHM6W3RdLGRhdGE6cyxsb2M6e3N0YXJ0OntsaW5lOjEzLGNvbHVtbjo0fSxlbmQ6e2xpbmU6MjIsY29sdW1uOjExfX19KSk/bzoiIikrIlxuIisobnVsbCE9KG89bi5pZi5jYWxsKG51bGwhPXQ/dDplLm51bGxDb250ZXh0fHx7fSwib3B0aW9ucy5ncm91cHMiLHtuYW1lOiJpZiIsaGFzaDp7fSxoYXNoVHlwZXM6e30saGFzaENvbnRleHRzOnt9LGZuOmUucHJvZ3JhbSg2LHMsMCksaW52ZXJzZTplLm5vb3AsdHlwZXM6WyJQYXRoRXhwcmVzc2lvbiJdLGNvbnRleHRzOlt0XSxkYXRhOnMsbG9jOntzdGFydDp7bGluZToyNCxjb2x1bW46NH0sZW5kOntsaW5lOjM0LGNvbHVtbjoxMX19fSkpP286IiIpKyIgIDwvdWw+XG48L2Rpdj5cbiJ9LHVzZURhdGE6ITB9KSxFbWJlci5URU1QTEFURVNbInVzZXItdG9waWNzLWxpc3QiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJsb2FkLW1vcmUiLG51bGwsW1siY2xhc3MiLCJzZWxlY3RvciIsImFjdGlvbiJdLFsicGFnaW5hdGVkLXRvcGljcy1saXN0IiwiLnBhZ2luYXRlZC10b3BpY3MtbGlzdCAudG9waWMtbGlzdCB0ciIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImxvYWRNb3JlIl0sbnVsbF1dXSx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsImJhc2ljLXRvcGljLWxpc3QiLG51bGwsW1sidG9waWNMaXN0IiwiaGlkZUNhdGVnb3J5Iiwic2hvd1Bvc3RlcnMiLCJidWxrU2VsZWN0RW5hYmxlZCIsInNlbGVjdGVkIiwiaGFzSW5jb21pbmciLCJpbmNvbWluZ0NvdW50Iiwic2hvd0luc2VydGVkIiwidGFnc0ZvclVzZXIiLCJvblNjcm9sbCIsInNjcm9sbE9uTG9hZCJdLFtbMjQsWyJtb2RlbCJdXSxbMjQsWyJoaWRlQ2F0ZWdvcnkiXV0sWzI0LFsic2hvd1Bvc3RlcnMiXV0sWzI0LFsiYnVsa1NlbGVjdEVuYWJsZWQiXV0sWzI0LFsic2VsZWN0ZWQiXV0sWzI0LFsiaGFzSW5jb21pbmciXV0sWzI0LFsiaW5jb21pbmdDb3VudCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd0luc2VydGVkIl0sbnVsbF0sWzI0LFsidGFnc0ZvclVzZXIiXV0sWzI0LFsic2F2ZVNjcm9sbFBvc2l0aW9uIl1dLHRydWVdXV0sZmFsc2VdLFswLCJcXG5cXG4gICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXItdG9waWNzLWxpc3QifX0pLEVtYmVyLlRFTVBMQVRFUy51c2VyPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsiZ3JvdXAiLCJ1ZiJdLCJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiYXJncyJdLFsiYWJvdmUtdXNlci1wcm9maWxlIiwiIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJjb250YWluZXIgIixbMjgsImlmIixbWzI0LFsidmlld2luZ1NlbGYiXV0sInZpZXdpbmctc2VsZiJdLG51bGxdXV1dLFs4XSxbMCwiXFxuIl0sWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJjbGFzcyJdLFsidXNlci1tYWluIl1dLHsic3RhdGVtZW50cyI6W1swLCJcXG4gICAgIl0sWzcsInNlY3Rpb24iLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbImNvbGxhcHNlZEluZm8iXV0sImNvbGxhcHNlZC1pbmZvIl0sbnVsbF0sIiBhYm91dCAiLFsyOCwiaWYiLFtbMjQsWyJoYXNQcm9maWxlQmFja2dyb3VuZFVybCJdXSwiaGFzLWJhY2tncm91bmQiLCJuby1iYWNrZ3JvdW5kIl0sbnVsbF1dXV0sWzhdLFswLCJcXG4iXSxbNCwidW5sZXNzIixbWzI0LFsiY29sbGFwc2VkSW5mbyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJzaG93U3RhZmZDb3VudGVycyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YWZmLWNvdW50ZXJzIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm51bWJlcl9vZl9mbGFnc19naXZlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImhlbHBmdWwtZmxhZ3MiXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJudW1iZXJfb2ZfZmxhZ3NfZ2l2ZW4iXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5mbGFnc19naXZlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInF1ZXJ5Iiwicm91dGUiXSxbWzI4LCJoYXNoIixudWxsLFtbInVzZXJuYW1lIiwic3RhdHVzIiwidHlwZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dLCJhbGwiLCJSZXZpZXdhYmxlRmxhZ2dlZFBvc3QiXV1dLCJyZXZpZXciXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJmbGFnZ2VkLXBvc3RzIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX2ZsYWdnZWRfcG9zdHMiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5mbGFnZ2VkX3Bvc3RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJudW1iZXJfb2ZfZGVsZXRlZF9wb3N0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlci5kZWxldGVkUG9zdHMiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJkZWxldGVkLXBvc3RzIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX2RlbGV0ZWRfcG9zdHMiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy5kZWxldGVkX3Bvc3RzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJudW1iZXJfb2Zfc3VzcGVuc2lvbnMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzMsImFjdGlvbiIsW1syMywwLFtdXSwic2hvd1N1c3BlbnNpb25zIl1dLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbnNpb25zIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwibnVtYmVyX29mX3N1c3BlbnNpb25zIl1dLGZhbHNlXSxbOV0sWzEsWzI4LCJpMThuIixbInVzZXIuc3RhZmZfY291bnRlcnMuc3VzcGVuc2lvbnMiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ3YXJuaW5nc19yZWNlaXZlZF9jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsIndhcm5pbmdzLXJlY2VpdmVkIl0sWzhdLFsxLFsyNCxbIm1vZGVsIiwid2FybmluZ3NfcmVjZWl2ZWRfY291bnQiXV0sZmFsc2VdLFs5XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFmZl9jb3VudGVycy53YXJuaW5nc19yZWNlaXZlZCJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS1pbWFnZSJdLFsxMSwic3R5bGUiLFsyNCxbIm1vZGVsIiwicHJvZmlsZUJhY2tncm91bmRVcmwiXV1dLFs4XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiZGV0YWlscyJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHJpbWFyeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidXNlci1wcm9maWxlLWF2YXRhciIsbnVsbCxbWyJ1c2VyIiwidGFnTmFtZSJdLFtbMjQsWyJtb2RlbCJdXSwiIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRyb2xzIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fc2VuZF9wcml2YXRlX21lc3NhZ2VfdG9fdXNlciJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwiaWNvbiIsImxhYmVsIl0sWyJidG4tcHJpbWFyeSBjb21wb3NlLXBtIixbMjgsInJvdXRlLWFjdGlvbiIsWyJjb21wb3NlUHJpdmF0ZU1lc3NhZ2UiLFsyNCxbIm1vZGVsIl1dXSxudWxsXSwiZW52ZWxvcGUiLCJ1c2VyLnByaXZhdGVfbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5NdXRlT3JJZ25vcmVVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duIixudWxsLFtbInVzZXIiLCJ2YWx1ZSIsInVwZGF0ZU5vdGlmaWNhdGlvbkxldmVsIl0sW1syNCxbIm1vZGVsIl1dLFsyNCxbInVzZXJOb3RpZmljYXRpb25MZXZlbCJdXSxbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidXBkYXRlTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImN1cnJlbnRVc2VyIiwic3RhZmYiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjQsWyJtb2RlbCIsImFkbWluUGF0aCJdXV0sWzEwLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFs4XSxbMSxbMjgsImQtaWNvbiIsWyJ3cmVuY2giXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbImFkbWluLnVzZXIuc2hvd19hZG1pbl9wcm9maWxlIl0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwidGFnTmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2VyLXByb2ZpbGUtY29udHJvbHMiLCIiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuRXhwYW5kUHJvZmlsZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjb2xsYXBzZWRJbmZvIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImV4cGFuZFByb2ZpbGUiXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYW5nbGUtZG91YmxlLWRvd24iXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5leHBhbmRfcHJvZmlsZSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICJdLFs3LCJhIixmYWxzZV0sWzEyLCJocmVmIiwiIl0sWzEyLCJjbGFzcyIsImJ0biBidG4tZGVmYXVsdCJdLFszLCJhY3Rpb24iLFtbMjMsMCxbXV0sImNvbGxhcHNlUHJvZmlsZSJdXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImQtaWNvbiIsWyJhbmdsZS1kb3VibGUtdXAiXSxudWxsXSxmYWxzZV0sWzAsIiAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5jb2xsYXBzZV9wcm9maWxlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4gICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInByaW1hcnktdGV4dHVhbCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS1uYW1lcyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiaDEiLHRydWVdLFsxMSwiY2xhc3MiLFsyOSxbWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSwiZnVsbC1uYW1lIiwidXNlcm5hbWUiXSxudWxsXV1dXSxbOF0sWzEsWzI4LCJpZiIsW1syNCxbIm5hbWVGaXJzdCJdXSxbMjQsWyJtb2RlbCIsIm5hbWUiXV0sWzI4LCJmb3JtYXQtdXNlcm5hbWUiLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXSxudWxsXV0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI4LCJ1c2VyLXN0YXR1cyIsW1syNCxbIm1vZGVsIl1dXSxbWyJjdXJyZW50VXNlciJdLFtbMjQsWyJjdXJyZW50VXNlciJdXV1dXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzExLCJjbGFzcyIsWzI5LFtbMjgsImlmIixbWzI0LFsibmFtZUZpcnN0Il1dLCJ1c2VybmFtZSIsImZ1bGwtbmFtZSJdLG51bGxdXV1dLFs4XSxbNCwiaWYiLFtbMjQsWyJuYW1lRmlyc3QiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJ1c2VybmFtZSJdXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJuYW1lIl1dLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfV0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN0YWdlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJoMiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YWdlZCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdGFnZWQiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInRpdGxlIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImgzIix0cnVlXSxbOF0sWzEsWzI0LFsibW9kZWwiLCJ0aXRsZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcG9zdC1uYW1lcyIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgIl0sWzldLFswLCJcXG5cXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93RmVhdHVyZWRUb3BpYyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJmZWF0dXJlZC10b3BpYyJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZmVhdHVyZWRfdG9waWMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbHMiXSxbInRvcGljIixbMjgsImFycmF5IixbWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsInNsdWciXV0sWzI0LFsibW9kZWwiLCJmZWF0dXJlZF90b3BpYyIsImlkIl1dXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1sxLFsyNCxbIm1vZGVsIiwiZmVhdHVyZWRfdG9waWMiLCJmYW5jeV90aXRsZSJdXSx0cnVlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJsb2NhdGlvbi1hbmQtd2Vic2l0ZSJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJsb2NhdGlvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWxvY2F0aW9uIl0sWzhdLFsxLFsyOCwiZC1pY29uIixbIm1hcC1tYXJrZXItYWx0Il0sbnVsbF0sZmFsc2VdLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJsb2NhdGlvbiJdXSxmYWxzZV0sWzldXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJvZmlsZS13ZWJzaXRlIl0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImdsb2JlIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJsaW5rV2Vic2l0ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJhIix0cnVlXSxbMTEsImhyZWYiLFsyNCxbIm1vZGVsIiwid2Vic2l0ZSJdXV0sWzExLCJyZWwiLFsyOCwidW5sZXNzIixbWzI0LFsicmVtb3ZlTm9Gb2xsb3ciXV0sIm5vZm9sbG93IHVnYyBub29wZW5lciJdLG51bGxdXSxbMTAsInRhcmdldCIsIl9ibGFuayJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFs3LCJzcGFuIix0cnVlXSxbMTEsInRpdGxlIixbMjQsWyJtb2RlbCIsIndlYnNpdGUiXV1dLFs4XSxbMSxbMjQsWyJtb2RlbCIsIndlYnNpdGVfbmFtZSJdXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLWxvY2F0aW9uLWFuZC13ZWJzaXRlIixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJiaW8iXSxbOF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwic3VzcGVuZGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN1c3BlbmRlZCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkLWljb24iLFsiYmFuIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInN1c3BlbmRlZEZvcmV2ZXIiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5zdXNwZW5kZWRfcGVybWFuZW50bHkiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VzcGVuZGVkX25vdGljZSJdLFtbImRhdGUiXSxbWzI0LFsibW9kZWwiLCJzdXNwZW5kZWRUaWxsRGF0ZSJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119XSxbMCwiICAgICAgICAgICAgICAgICAgIl0sWzldLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJzdXNwZW5kX3JlYXNvbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiYiIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1c3BlbmRlZF9yZWFzb24iXSxudWxsXSxmYWxzZV0sWzldLFswLCIgIl0sWzEsWzI0LFsibW9kZWwiLCJzdXNwZW5kX3JlYXNvbiJdXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJpc05vdFN1c3BlbmRlZE9ySXNTdGFmZiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICJdLFsxLFsyNCxbIm1vZGVsIiwiYmlvX2Nvb2tlZCJdXSx0cnVlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsicHVibGljVXNlckZpZWxkcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwicHVibGljLXVzZXItZmllbGRzIl0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbInB1YmxpY1VzZXJGaWVsZHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzIzLDIsWyJ2YWx1ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTEsImNsYXNzIixbMjksWyJwdWJsaWMtdXNlci1maWVsZCAiLFsyMywyLFsiZmllbGQiLCJkYXNoZXJpemVkX25hbWUiXV1dXV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWZpZWxkLW5hbWUiXSxbOF0sWzEsWzIzLDIsWyJmaWVsZCIsIm5hbWUiXV0sZmFsc2VdLFs5XSxbMCwiOlxcbiAgICAgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItZmllbGQtdmFsdWUiXSxbOF0sWzEsWzIzLDIsWyJ2YWx1ZSJdXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJhcmdzIl0sWyJ1c2VyLXByb2ZpbGUtcHVibGljLWZpZWxkcyIsWzI4LCJoYXNoIixudWxsLFtbInB1YmxpY1VzZXJGaWVsZHMiLCJtb2RlbCJdLFtbMjQsWyJwdWJsaWNVc2VyRmllbGRzIl1dLFsyNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImFyZ3MiXSxbInVzZXItcHJvZmlsZS1wcmltYXJ5IixbMjgsImhhc2giLG51bGwsW1sibW9kZWwiXSxbWzI0LFsibW9kZWwiXV1dXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsInVubGVzcyIsW1syNCxbImNvbGxhcHNlZEluZm8iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNlY29uZGFyeSJdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFs3LCJkbCIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImNyZWF0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmNyZWF0ZWQiXSxudWxsXSxmYWxzZV0sWzldLFs3LCJkZCIsdHJ1ZV0sWzhdLFsxLFsyOCwiYm91bmQtZGF0ZSIsW1syNCxbIm1vZGVsIiwiY3JlYXRlZF9hdCJdXV0sbnVsbF0sZmFsc2VdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwibGFzdF9wb3N0ZWRfYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3RfcG9zdGVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjgsImJvdW5kLWRhdGUiLFtbMjQsWyJtb2RlbCIsImxhc3RfcG9zdGVkX2F0Il1dXSxudWxsXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJsYXN0X3NlZW5fYXQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmxhc3Rfc2VlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzcsImRkIix0cnVlXSxbOF0sWzEsWzI4LCJib3VuZC1kYXRlIixbWzI0LFsibW9kZWwiLCJsYXN0X3NlZW5fYXQiXV1dLG51bGxdLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsInByb2ZpbGVfdmlld19jb3VudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInZpZXdzIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInByb2ZpbGVfdmlld19jb3VudCJdXSxmYWxzZV0sWzldLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFs4XSxbNywiZHQiLHRydWVdLFsxMCwiY2xhc3MiLCJpbnZpdGVkLWJ5Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmludml0ZWRfYnkiXSxudWxsXSxmYWxzZV0sWzldLFs3LCJkZCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImludml0ZWQtYnkiXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlciIsWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5Il1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI0LFsibW9kZWwiLCJpbnZpdGVkX2J5IiwidXNlcm5hbWUiXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwidHJ1c3RfbGV2ZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzhdLFs3LCJkdCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRydXN0LWxldmVsIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnRydXN0X2xldmVsIl0sbnVsbF0sZmFsc2VdLFs5XSxbNywiZGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0cnVzdC1sZXZlbCJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsInRydXN0TGV2ZWwiLCJuYW1lIl1dLGZhbHNlXSxbOV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5DaGVja0VtYWlscyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuZW1haWwudGl0bGUiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJkZCIsdHJ1ZV0sWzExLCJ0aXRsZSIsWzI0LFsibW9kZWwiLCJlbWFpbCJdXV0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVtYWlsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjQsWyJtb2RlbCIsImVtYWlsIl1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiYWN0aW9uUGFyYW0iLCJpY29uIiwibGFiZWwiLCJjbGFzcyJdLFtbMjgsInJvdXRlLWFjdGlvbiIsWyJjaGVja0VtYWlsIl0sbnVsbF0sWzI0LFsibW9kZWwiXV0sImZhci1lbnZlbG9wZSIsImFkbWluLnVzZXJzLmNoZWNrX2VtYWlsLnRleHQiLCJidG4tcHJpbWFyeSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiZGlzcGxheUdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgICAiXSxbNywiZGl2Iix0cnVlXSxbOF0sWzcsImR0Iix0cnVlXSxbMTAsImNsYXNzIiwiZ3JvdXBzIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJncm91cHMudGl0bGUiXSxbWyJjb3VudCJdLFtbMjQsWyJtb2RlbCIsImRpc3BsYXlHcm91cHMiLCJsZW5ndGgiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiZGQiLHRydWVdLFsxMCwiY2xhc3MiLCJncm91cHMiXSxbOF0sWzAsIlxcbiJdLFs0LCJlYWNoIixbWzI0LFsibW9kZWwiLCJkaXNwbGF5R3JvdXBzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbNywic3BhbiIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsiZ3JvdXAtbGluayIsImdyb3VwIixbMjMsMSxbIm5hbWUiXV1dXSx7InN0YXRlbWVudHMiOltbMSxbMjMsMSxbIm5hbWUiXV0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJxdWVyeSIsInJvdXRlIl0sW1syOCwiaGFzaCIsbnVsbCxbWyJ1c2VybmFtZSJdLFtbMjQsWyJtb2RlbCIsInVzZXJuYW1lIl1dXV1dLCJncm91cHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgIC4uLlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJjYW5EZWxldGVVc2VyIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJwdWxsLXJpZ2h0Il0sWzhdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siYWN0aW9uIiwiaWNvbiIsImxhYmVsIiwiY2xhc3MiXSxbWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFkbWluRGVsZXRlIl0sbnVsbF0sImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwidXNlci5hZG1pbl9kZWxldGUiLCJidG4tZGFuZ2VyIl1dXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwicGx1Z2luLW91dGxldCIsbnVsbCxbWyJuYW1lIiwiYXJncyJdLFsidXNlci1wcm9maWxlLXNlY29uZGFyeSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcblxcblxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50LXdyYXBwZXIiXSxbOF0sWzAsIlxcblxcbiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItcHJpbWFyeS1uYXZpZ2F0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtYWluLW5hdiIsIm5hdiBuYXYtcGlsbHMgdXNlci1uYXYiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbIm1vZGVsIiwicHJvZmlsZV9oaWRkZW4iXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXIuc3VtbWFyeSJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRpdGxlIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyLmFjdGl2aXR5X3N0cmVhbSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dOb3RpZmljYXRpb25zVGFiIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbImNvbW1lbnQiXSxbWyJjbGFzcyJdLFsiZ2x5cGgiXV1dLGZhbHNlXSxbMSxbMjgsImkxOG4iLFsidXNlci5ub3RpZmljYXRpb25zIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dQcml2YXRlTWVzc2FnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJQcml2YXRlTWVzc2FnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsiZmFyLWVudmVsb3BlIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNCwiaWYiLFtbMjQsWyJjYW5JbnZpdGVUb0ZvcnVtIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VySW52aXRlZCJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImQtaWNvbiIsWyJ1c2VyLXBsdXMiXSxudWxsXSxmYWxzZV0sWzEsWzI4LCJpMThuIixbInVzZXIuaW52aXRlZC50aXRsZSJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbInNob3dCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXIuYmFkZ2VzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiZC1pY29uIixbImNlcnRpZmljYXRlIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJiYWRnZXMudGl0bGUiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbInVzZXItbWFpbi1uYXYiLCIiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJjYW5fZWRpdCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsicHJlZmVyZW5jZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJkLWljb24iLFsiY29nIl0sbnVsbF0sZmFsc2VdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnByZWZlcmVuY2VzIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcblxcbiAgICAgICAgIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcblxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9hY3Rpdml0eSJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOltdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJjbGFzcyIsInNjcm9sbFRvcCJdLFsidXNlci1hY3Rpdml0eSIsInVzZXItc2Vjb25kYXJ5LW5hdmlnYXRpb24iLCJmYWxzZSJdXSx7InN0YXRlbWVudHMiOltbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJhY3Rpdml0eS1uYXYiLCJhY3Rpb24tbGlzdCBhY3Rpdml0eS1saXN0IG5hdi1zdGFja2VkIixbMjQsWyJyb3V0ZXIiLCJfcm91dGVyIiwiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyLmZpbHRlcnMuYWxsIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkudG9waWNzIl1dLHsic3RhdGVtZW50cyI6W1sxLFsyOCwiaTE4biIsWyJ1c2VyX2FjdGlvbl9ncm91cHMuNCJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LnJlcGxpZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy41Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwic2hvd0RyYWZ0cyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmRyYWZ0cyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlcl9hY3Rpb25fZ3JvdXBzLjE1Il0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5Lmxpa2VzR2l2ZW4iXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4xIl0sbnVsbF0sZmFsc2VdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ1c2VyIiwic2hvd0Jvb2ttYXJrcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAiXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlckFjdGl2aXR5LmJvb2ttYXJrcyJdXSx7InN0YXRlbWVudHMiOltbMSxbMjgsImkxOG4iLFsidXNlcl9hY3Rpb25fZ3JvdXBzLjMiXSxudWxsXSxmYWxzZV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsidXNlci1hY3Rpdml0eS1ib3R0b20iLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs0LCJpZiIsW1syNCxbImNhbkRvd25sb2FkUG9zdHMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItYWRkaXRpb25hbC1jb250cm9scyJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJhY3Rpb24iLCJjbGFzcyIsImxhYmVsIiwiaWNvbiJdLFtbMjgsImFjdGlvbiIsW1syMywwLFtdXSwiZXhwb3J0VXNlckFyY2hpdmUiXSxudWxsXSwiYnRuLWRlZmF1bHQiLCJ1c2VyLmRvd25sb2FkX2FyY2hpdmUuYnV0dG9uX3RleHQiLCJkb3dubG9hZCJdXV0sZmFsc2VdLFswLCJcXG4gICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuIl0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci9hY3Rpdml0eSJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL2JhZGdlcyJdPUVtYmVyLkhUTUxCYXJzLnRlbXBsYXRlKHtpZDpudWxsLGJsb2NrOid7InN5bWJvbHMiOlsidWIiXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIiwiY2xhc3MiXSxbInVzZXItYmFkZ2VzIiwidXNlci1jb250ZW50IHVzZXItYmFkZ2VzLWxpc3QiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImVhY2giLFtbMjQsWyJzb3J0ZWRCYWRnZXMiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjgsImJhZGdlLWNhcmQiLG51bGwsW1siYmFkZ2UiLCJjb3VudCIsInVzZXJuYW1lIiwiZmlsdGVyVXNlciJdLFtbMjMsMSxbImJhZGdlIl1dLFsyMywxLFsiY291bnQiXV0sWzI0LFsidXNlcm5hbWUiXV0sInRydWUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL2JhZGdlcyJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL21lc3NhZ2VzIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6WyJncm91cCJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJjbGFzcyIsInBhZ2VDbGFzcyJdLFsidXNlci1zZWNvbmRhcnktbmF2aWdhdGlvbiIsInVzZXItbWVzc2FnZXMiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dOZXdQTSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImljb24iLCJsYWJlbCJdLFsiYnRuLXByaW1hcnkgbmV3LXByaXZhdGUtbWVzc2FnZSIsWzI4LCJyb3V0ZS1hY3Rpb24iLFsiY29tcG9zZVByaXZhdGVNZXNzYWdlIl0sbnVsbF0sImVudmVsb3BlIiwidXNlci5uZXdfcHJpdmF0ZV9tZXNzYWdlIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwibW9iaWxlLW5hdiIsbnVsbCxbWyJjbGFzcyIsImRlc2t0b3BDbGFzcyIsImN1cnJlbnRQYXRoIl0sWyJtZXNzYWdlcy1uYXYiLCJuYXYtc3RhY2tlZCBhY3Rpb24tbGlzdCIsWzI0LFsiY3VycmVudFBhdGgiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzEwLCJjbGFzcyIsIm5vR2x5cGgiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIiwibW9kZWwiXSxbInVzZXJQcml2YXRlTWVzc2FnZXMuaW5kZXgiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXIubWVzc2FnZXMuaW5ib3giXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibm9HbHlwaCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5zZW50IixbMjQsWyJtb2RlbCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLnNlbnQiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibm9HbHlwaCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5hcmNoaXZlIixbMjQsWyJtb2RlbCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmFyY2hpdmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4gICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJjb25uZWN0b3JUYWdOYW1lIiwiYXJncyJdLFsidXNlci1tZXNzYWdlcy1uYXYiLCJsaSIsWzI4LCJoYXNoIixudWxsLFtbIm1vZGVsIl0sW1syNCxbIm1vZGVsIl1dXV1dXV1dLGZhbHNlXSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImdyb3VwcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjMsMSxbImhhc19tZXNzYWdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiLCJtb2RlbCJdLFsidXNlclByaXZhdGVNZXNzYWdlcy5ncm91cCIsWzIzLDEsWyJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiZC1pY29uIixbInVzZXJzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAiXSxbMSxbMjgsImNhcGl0YWxpemUtc3RyaW5nIixbWzIzLDEsWyJuYW1lIl1dXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJhcmNoaXZlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLmdyb3VwQXJjaGl2ZSIsWzIzLDEsWyJuYW1lIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLm1lc3NhZ2VzLmFyY2hpdmUiXSxudWxsXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbMV19LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJwbVRhZ2dpbmdFbmFibGVkIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJub0dseXBoIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLnRhZ3MiLFsyNCxbIm1vZGVsIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsImkxOG4iLFsidXNlci5tZXNzYWdlcy50YWdzIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJ0YWdJZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJhcmNoaXZlIl0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSIsIm1vZGVsIl0sWyJ1c2VyUHJpdmF0ZU1lc3NhZ2VzLnRhZ3NTaG93IixbMjQsWyJ0YWdJZCJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjIsInRhZ0lkIl0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNywic2VjdGlvbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuXFxuIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImxpc3QtYWN0aW9ucyJdLFs4XSxbMCwiXFxuXFxuIl0sWzQsInVubGVzcyIsW1syNCxbInNpdGUiLCJtb2JpbGVWaWV3Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1s0LCJpZiIsW1syNCxbInNob3dUb2dnbGVCdWxrU2VsZWN0Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJ0aXRsZSIsImljb24iXSxbImJ0bi1kZWZhdWx0IGJ1bGstc2VsZWN0IixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwidG9nZ2xlQnVsa1NlbGVjdCJdLG51bGxdLCJ1c2VyLm1lc3NhZ2VzLmJ1bGtfc2VsZWN0IiwibGlzdCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZSIsIm1vYmlsZVZpZXciXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsic2hvd05ld1BNIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiZC1idXR0b24iLG51bGwsW1siY2xhc3MiLCJhY3Rpb24iLCJpY29uIiwibGFiZWwiXSxbImJ0bi1wcmltYXJ5IG5ldy1wcml2YXRlLW1lc3NhZ2UiLFsyOCwicm91dGUtYWN0aW9uIixbImNvbXBvc2VQcml2YXRlTWVzc2FnZSJdLG51bGxdLCJlbnZlbG9wZSIsInVzZXIubmV3X3ByaXZhdGVfbWVzc2FnZSJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiY2FuQXJjaGl2ZSJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBidG4tYXJjaGl2ZSIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImFyY2hpdmUiXSxudWxsXSwidXNlci5tZXNzYWdlcy5tb3ZlX3RvX2FyY2hpdmUiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImNhbk1vdmVUb0luYm94Il1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbImNsYXNzIiwiYWN0aW9uIiwibGFiZWwiXSxbImJ0bi1kZWZhdWx0IGJ0bi10by1pbmJveCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInRvSW5ib3giXSxudWxsXSwidXNlci5tZXNzYWdlcy5tb3ZlX3RvX2luYm94Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJidWxrU2VsZWN0RW5hYmxlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImxhYmVsIl0sWyJidG4tZGVmYXVsdCBidG4tc2VsZWN0LWFsbCIsWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sInNlbGVjdEFsbCJdLG51bGxdLCJ1c2VyLm1lc3NhZ2VzLnNlbGVjdF9hbGwiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbImlzR3JvdXAiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiZ3JvdXAtbm90aWZpY2F0aW9ucy1idXR0b24iLG51bGwsW1sidmFsdWUiLCJvbkNoYW5nZSJdLFtbMjQsWyJncm91cCIsImdyb3VwX3VzZXIiLCJub3RpZmljYXRpb25fbGV2ZWwiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sImNoYW5nZUdyb3VwTm90aWZpY2F0aW9uTGV2ZWwiXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFs5XSxbMCwiXFxuXFxuIl0sWzEsWzIyLCJvdXRsZXQiXSxmYWxzZV0sWzAsIlxcbiJdLFs5XSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvbWVzc2FnZXMifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9ub3RpZmljYXRpb25zLWluZGV4Il09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImVycm9yIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJpdGVtIGVycm9yIl0sWzhdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJtb2RlbCIsImZvcmJpZGRlbiJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgIl0sWzEsWzI4LCJpMThuIixbImVycm9ycy5yZWFzb25zLmZvcmJpZGRlbiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJlcnJvcnMuZGVzYy51bmtub3duIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzAsIiAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsiaGFzTm90aWZpY2F0aW9ucyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbMSxbMjgsInVzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsbnVsbCxbWyJub3RpZmljYXRpb25zIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAiXSxbMSxbMjgsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibG9hZGluZyJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LHsic3RhdGVtZW50cyI6W1swLCIgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJhbGVydCBhbGVydC1pbmZvIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJub3RpZmljYXRpb25zLmVtcHR5Il0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL25vdGlmaWNhdGlvbnMtaW5kZXgifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9ub3RpZmljYXRpb25zIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiZC1zZWN0aW9uIixudWxsLFtbInBhZ2VDbGFzcyIsImNsYXNzIl0sWyJ1c2VyLW5vdGlmaWNhdGlvbnMiLCJ1c2VyLXNlY29uZGFyeS1uYXZpZ2F0aW9uIl1dLHsic3RhdGVtZW50cyI6W1s0LCJtb2JpbGUtbmF2IixudWxsLFtbImNsYXNzIiwiZGVza3RvcENsYXNzIiwiY3VycmVudFBhdGgiXSxbIm5vdGlmaWNhdGlvbnMtbmF2Iiwibm90aWZpY2F0aW9uLWxpc3QgYWN0aW9uLWxpc3QgbmF2LXN0YWNrZWQiLFsyNCxbImN1cnJlbnRQYXRoIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLmluZGV4Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLmZpbHRlcnMuYWxsIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMucmVzcG9uc2VzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiaTE4biIsWyJ1c2VyX2FjdGlvbl9ncm91cHMuNiJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLmxpa2VzUmVjZWl2ZWQiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4yIl0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs5XSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsic2l0ZVNldHRpbmdzIiwiZW5hYmxlX21lbnRpb25zIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJOb3RpZmljYXRpb25zLm1lbnRpb25zIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy43Il0sbnVsbF0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwibGluay10byIsbnVsbCxbWyJyb3V0ZSJdLFsidXNlck5vdGlmaWNhdGlvbnMuZWRpdHMiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJpMThuIixbInVzZXJfYWN0aW9uX2dyb3Vwcy4xMSJdLG51bGxdLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzcsInNlY3Rpb24iLHRydWVdLFsxMCwiY2xhc3MiLCJ1c2VyLWFkZGl0aW9uYWwtY29udHJvbHMiXSxbOF0sWzAsIlxcbiAgICAiXSxbMSxbMjgsImQtYnV0dG9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiLCJhY3Rpb24iLCJsYWJlbCIsImljb24iLCJkaXNhYmxlZCJdLFsidXNlci5kaXNtaXNzX25vdGlmaWNhdGlvbnNfdG9vbHRpcCIsImJ0biBidG4tZGVmYXVsdCBkaXNtaXNzLW5vdGlmaWNhdGlvbnMiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJyZXNldE5ldyJdLG51bGxdLCJ1c2VyLmRpc21pc3Nfbm90aWZpY2F0aW9ucyIsImNoZWNrIixbMjQsWyJhbGxOb3RpZmljYXRpb25zUmVhZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs3LCJzZWN0aW9uIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1jb250ZW50Il0sWzhdLFswLCJcXG4iXSxbNCwibG9hZC1tb3JlIixudWxsLFtbImNsYXNzIiwic2VsZWN0b3IiLCJhY3Rpb24iXSxbIm5vdGlmaWNhdGlvbi1oaXN0b3J5IHVzZXItc3RyZWFtIiwiLnVzZXItc3RyZWFtIC5ub3RpZmljYXRpb24iLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJsb2FkTW9yZSJdLG51bGxdXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAiXSxbMSxbMjIsIm91dGxldCJdLGZhbHNlXSxbMCwiXFxuICAgICJdLFsxLFsyOCwiY29uZGl0aW9uYWwtbG9hZGluZy1zcGlubmVyIixudWxsLFtbImNvbmRpdGlvbiJdLFtbMjQsWyJtb2RlbCIsImxvYWRpbmdNb3JlIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzldLFswLCJcXG4iXV0sImhhc0V2YWwiOmZhbHNlfScsbWV0YTp7bW9kdWxlTmFtZToidXNlci9ub3RpZmljYXRpb25zIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvcG9zdHMiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1sxLFsyOCwidXNlci1zdHJlYW0iLG51bGwsW1sic3RyZWFtIl0sW1syNCxbIm1vZGVsIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvcG9zdHMifX0pLEVtYmVyLlRFTVBMQVRFU1sidXNlci9wcmVmZXJlbmNlcy9fc2F2ZS1idXR0b24iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s0LCJkLWJ1dHRvbiIsbnVsbCxbWyJjbGFzcyIsImFjdGlvbiIsImRpc2FibGVkIl0sWyJidG4tcHJpbWFyeSBzYXZlLXVzZXIiLFsyOCwiYWN0aW9uIixbWzIzLDAsW11dLCJzYXZlIl0sbnVsbF0sWzI0LFsibW9kZWwiLCJpc1NhdmluZyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICJdLFsxLFsyMiwic2F2ZUJ1dHRvblRleHQiXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzYXZlZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywic3BhbiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInNhdmVkLXVzZXIiXSxbOF0sWzEsWzI4LCJpMThuIixbInNhdmVkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXIvcHJlZmVyZW5jZXMvX3NhdmUtYnV0dG9uIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvcHJvZmlsZS1oaWRkZW4iXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbXSwic3RhdGVtZW50cyI6W1s3LCJwIix0cnVlXSxbMTAsImNsYXNzIiwidXNlci1wcm9maWxlLWhpZGRlbiJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5wcm9maWxlX2hpZGRlbiJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3Byb2ZpbGUtaGlkZGVuIn19KSxFbWJlci5URU1QTEFURVNbInVzZXIvc3RyZWFtIl09RW1iZXIuSFRNTEJhcnMudGVtcGxhdGUoe2lkOm51bGwsYmxvY2s6J3sic3ltYm9scyI6W10sInN0YXRlbWVudHMiOltbNCwiaWYiLFtbMjQsWyJtb2RlbCIsIm5vQ29udGVudCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwiYWxlcnQgYWxlcnQtaW5mbyJdLFs4XSxbMSxbMjQsWyJtb2RlbCIsIm5vQ29udGVudEhlbHAiXV0sdHJ1ZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMSxbMjgsInVzZXItc3RyZWFtIixudWxsLFtbInN0cmVhbSJdLFtbMjQsWyJtb2RlbCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3N0cmVhbSJ9fSksRW1iZXIuVEVNUExBVEVTWyJ1c2VyL3N1bW1hcnkiXT1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbImJhZGdlIiwiY2F0ZWdvcnkiLCJ1c2VyIiwidXNlciIsInVzZXIiLCJsaW5rIiwidG9waWMiLCJyZXBseSJdLCJzdGF0ZW1lbnRzIjpbWzQsImQtc2VjdGlvbiIsbnVsbCxbWyJwYWdlQ2xhc3MiLCJ0YWdOYW1lIl0sWyJ1c2VyLXN1bW1hcnkiLCIiXV0seyJzdGF0ZW1lbnRzIjpbWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInVzZXItY29udGVudCJdLFs4XSxbMCwiXFxuICAiXSxbNywiZGl2Iix0cnVlXSxbMTAsImNsYXNzIiwidG9wLXNlY3Rpb24gc3RhdHMtc2VjdGlvbiJdLFs4XSxbMCwiXFxuICAgICJdLFs3LCJoMyIsdHJ1ZV0sWzEwLCJjbGFzcyIsInN0YXRzLXRpdGxlIl0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1bW1hcnkuc3RhdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgIl0sWzcsInVsIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsibW9kZWwiLCJkYXlzX3Zpc2l0ZWQiXV0sInVzZXIuc3VtbWFyeS5kYXlzX3Zpc2l0ZWQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIiwidHlwZSJdLFtbMjQsWyJ0aW1lUmVhZCJdXSwidXNlci5zdW1tYXJ5LnRpbWVfcmVhZCIsInN0cmluZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbInNob3dSZWNlbnRUaW1lUmVhZCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiLCJ0eXBlIl0sW1syNCxbInJlY2VudFRpbWVSZWFkIl1dLCJ1c2VyLnN1bW1hcnkucmVjZW50X3RpbWVfcmVhZCIsInN0cmluZyJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwibGFiZWwiXSxbWzI0LFsibW9kZWwiLCJ0b3BpY3NfZW50ZXJlZCJdXSwidXNlci5zdW1tYXJ5LnRvcGljc19lbnRlcmVkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJtb2RlbCIsInBvc3RzX3JlYWRfY291bnQiXV0sInVzZXIuc3VtbWFyeS5wb3N0c19yZWFkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibGlua2VkLXN0YXQiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkubGlrZXNHaXZlbiJdXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwibGlrZXNfZ2l2ZW4iXV0sImhlYXJ0IiwidXNlci5zdW1tYXJ5Lmxpa2VzX2dpdmVuIl1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiJdLFs0LCJpZiIsW1syNCxbIm1vZGVsIiwiYm9va21hcmtfY291bnQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsImxpIix0cnVlXSxbMTAsImNsYXNzIiwibGlua2VkLXN0YXQiXSxbOF0sWzAsIlxcbiJdLFs0LCJsaW5rLXRvIixudWxsLFtbInJvdXRlIl0sWyJ1c2VyQWN0aXZpdHkuYm9va21hcmtzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwiYm9va21hcmtfY291bnQiXV0sInVzZXIuc3VtbWFyeS5ib29rbWFya19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJsaW5rZWQtc3RhdCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJBY3Rpdml0eS50b3BpY3MiXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAiXSxbMSxbMjgsInVzZXItc3RhdCIsbnVsbCxbWyJ2YWx1ZSIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwidG9waWNfY291bnQiXV0sInVzZXIuc3VtbWFyeS50b3BpY19jb3VudCJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAgICAgIl0sWzldLFswLCJcXG4gICAgICAiXSxbNywibGkiLHRydWVdLFsxMCwiY2xhc3MiLCJsaW5rZWQtc3RhdCJdLFs4XSxbMCwiXFxuIl0sWzQsImxpbmstdG8iLG51bGwsW1sicm91dGUiXSxbInVzZXJBY3Rpdml0eS5yZXBsaWVzIl1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN0YXQiLG51bGwsW1sidmFsdWUiLCJsYWJlbCJdLFtbMjQsWyJtb2RlbCIsInBvc3RfY291bnQiXV0sInVzZXIuc3VtbWFyeS5wb3N0X2NvdW50Il1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICJdLFs3LCJsaSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICJdLFsxLFsyOCwidXNlci1zdGF0IixudWxsLFtbInZhbHVlIiwiaWNvbiIsImxhYmVsIl0sW1syNCxbIm1vZGVsIiwibGlrZXNfcmVjZWl2ZWQiXV0sImhlYXJ0IiwidXNlci5zdW1tYXJ5Lmxpa2VzX3JlY2VpdmVkIl1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICAgIl0sWzEsWzI4LCJwbHVnaW4tb3V0bGV0IixudWxsLFtbIm5hbWUiLCJ0YWdOYW1lIiwiY29ubmVjdG9yVGFnTmFtZSIsImFyZ3MiXSxbInVzZXItc3VtbWFyeS1zdGF0IiwiIiwibGkiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAiXSxbOV0sWzAsIlxcbiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiJdLFs4XSxbMCwiXFxuIl0sWzQsInVzZXItc3VtbWFyeS1zZWN0aW9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbInRvcF9yZXBsaWVzIiwicmVwbGllcy1zZWN0aW9uIHB1bGwtbGVmdCJdXSx7InN0YXRlbWVudHMiOltbNCwidXNlci1zdW1tYXJ5LXRvcGljcy1saXN0IixudWxsLFtbInR5cGUiLCJpdGVtcyIsInVzZXIiXSxbInJlcGxpZXMiLFsyNCxbIm1vZGVsIiwicmVwbGllcyJdXSxbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktdG9waWMiLG51bGwsW1siY3JlYXRlZEF0IiwidG9waWMiLCJsaWtlcyIsInVybCJdLFtbMjMsOCxbImNyZWF0ZWRBdCJdXSxbMjMsOCxbInRvcGljIl1dLFsyMyw4LFsibGlrZV9jb3VudCJdXSxbMjMsOCxbInVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzhdfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiXFxuIl0sWzQsInVzZXItc3VtbWFyeS1zZWN0aW9uIixudWxsLFtbInRpdGxlIiwiY2xhc3MiXSxbInRvcF90b3BpY3MiLCJ0b3BpY3Mtc2VjdGlvbiBwdWxsLXJpZ2h0Il1dLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLXN1bW1hcnktdG9waWNzLWxpc3QiLG51bGwsW1sidHlwZSIsIml0ZW1zIiwidXNlciJdLFsidG9waWNzIixbMjQsWyJtb2RlbCIsInRvcGljcyJdXSxbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktdG9waWMiLG51bGwsW1siY3JlYXRlZEF0IiwidG9waWMiLCJsaWtlcyIsInVybCJdLFtbMjMsNyxbImNyZWF0ZWRfYXQiXV0sWzIzLDcsW11dLFsyMyw3LFsibGlrZV9jb3VudCJdXSxbMjMsNyxbInVybCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzddfSxudWxsXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcblxcbiAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1zZWN0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidG9wX2xpbmtzIiwibGlua3Mtc2VjdGlvbiBwdWxsLWxlZnQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsaW5rcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywidWwiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsImxpbmtzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAiXSxbNywibGkiLHRydWVdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRvbWFpbiJdLFsxMSwiaHJlZiIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsNixbInVybCJdXV0sbnVsbF1dXV0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsInVuYm91bmQiLFtbMjMsNixbInRpdGxlIl1dXSxudWxsXV1dXSxbMTEsInJlbCIsWzI5LFtbMjgsInVubGVzcyIsW1syNCxbInVzZXIiLCJyZW1vdmVOb0ZvbGxvdyJdXSwibm9mb2xsb3cgdWdjIG5vb3BlbmVyIl0sbnVsbF1dXV0sWzEwLCJ0YXJnZXQiLCJfYmxhbmsiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsInNob3J0ZW4tdXJsIixbWzIzLDYsWyJ1cmwiXV1dLG51bGxdLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgIl0sWzcsInNwYW4iLHRydWVdLFsxMCwiY2xhc3MiLCJiYWRnZSBiYWRnZS1ub3RpZmljYXRpb24gY2xpY2tzIl0sWzExLCJ0aXRsZSIsWzI5LFtbMjgsImkxOG4iLFsidG9waWNfbWFwLmNsaWNrcyJdLFtbImNvdW50Il0sW1syMyw2LFsiY2xpY2tzIl1dXV1dXV1dLFs4XSxbMSxbMjgsIm51bWJlciIsW1syMyw2LFsiY2xpY2tzIl1dXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJiciIsdHJ1ZV0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAiXSxbNywiYSIsdHJ1ZV0sWzExLCJocmVmIixbMjksW1syOCwidW5ib3VuZCIsW1syMyw2LFsicG9zdF91cmwiXV1dLG51bGxdXV1dLFs4XSxbMSxbMjMsNixbInRvcGljIiwiZmFuY3lUaXRsZSJdXSx0cnVlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbNl19LG51bGxdLFswLCIgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0seyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5Lm5vX2xpbmtzIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX1dXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsibW9zdF9yZXBsaWVkX3RvX3VzZXJzIiwic3VtbWFyeS11c2VyLWxpc3QgcmVwbGllZC1zZWN0aW9uIHB1bGwtcmlnaHQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItc3VtbWFyeS11c2Vycy1saXN0IixudWxsLFtbIm5vbmUiLCJ1c2VycyJdLFsibm9fcmVwbGllcyIsWzI0LFsibW9kZWwiLCJtb3N0X3JlcGxpZWRfdG9fdXNlcnMiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInVzZXItc3VtbWFyeS11c2VyIixudWxsLFtbInVzZXIiLCJpY29uIiwiY291bnRDbGFzcyJdLFtbMjMsNSxbXV0sInJlcGx5IiwicmVwbGllcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOls1XX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgIl0sWzldLFswLCJcXG5cXG4gICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiBtb3N0LWxpa2VkLXNlY3Rpb24iXSxbOF0sWzAsIlxcbiJdLFs0LCJ1c2VyLXN1bW1hcnktc2VjdGlvbiIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJtb3N0X2xpa2VkX2J5Iiwic3VtbWFyeS11c2VyLWxpc3QgbGlrZWQtYnktc2VjdGlvbiBwdWxsLWxlZnQiXV0seyJzdGF0ZW1lbnRzIjpbWzQsInVzZXItc3VtbWFyeS11c2Vycy1saXN0IixudWxsLFtbIm5vbmUiLCJ1c2VycyJdLFsibm9fbGlrZXMiLFsyNCxbIm1vZGVsIiwibW9zdF9saWtlZF9ieV91c2VycyJdXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwidXNlci1zdW1tYXJ5LXVzZXIiLG51bGwsW1sidXNlciIsImljb24iLCJjb3VudENsYXNzIl0sW1syMyw0LFtdXSwiaGVhcnQiLCJsaWtlcyJdXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOls0XX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiJdLFs0LCJ1c2VyLXN1bW1hcnktc2VjdGlvbiIsbnVsbCxbWyJ0aXRsZSIsImNsYXNzIl0sWyJtb3N0X2xpa2VkX3VzZXJzIiwic3VtbWFyeS11c2VyLWxpc3QgbGlrZWQtc2VjdGlvbiBwdWxsLXJpZ2h0Il1dLHsic3RhdGVtZW50cyI6W1s0LCJ1c2VyLXN1bW1hcnktdXNlcnMtbGlzdCIsbnVsbCxbWyJub25lIiwidXNlcnMiXSxbIm5vX2xpa2VzIixbMjQsWyJtb2RlbCIsIm1vc3RfbGlrZWRfdXNlcnMiXV1dXSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbMSxbMjgsInVzZXItc3VtbWFyeS11c2VyIixudWxsLFtbInVzZXIiLCJpY29uIiwiY291bnRDbGFzcyJdLFtbMjMsMyxbXV0sImhlYXJ0IiwibGlrZXMiXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbM119LG51bGxdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImlmIixbWzI0LFsibW9kZWwiLCJ0b3BfY2F0ZWdvcmllcyIsImxlbmd0aCJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICJdLFs3LCJkaXYiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3Atc2VjdGlvbiB0b3AtY2F0ZWdvcmllcy1zZWN0aW9uIl0sWzhdLFswLCJcXG4iXSxbNCwidXNlci1zdW1tYXJ5LXNlY3Rpb24iLG51bGwsW1sidGl0bGUiLCJjbGFzcyJdLFsidG9wX2NhdGVnb3JpZXMiLCJzdW1tYXJ5LWNhdGVnb3J5LWxpc3QgcHVsbC1sZWZ0Il1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzcsInRoZWFkIix0cnVlXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNhdGVnb3J5LWxpbmsiXSxbOF0sWzldLFswLCJcXG4gICAgICAgICAgICAiXSxbNywidGgiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1jb3VudCJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRvcGljcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzEwLCJjbGFzcyIsInJlcGx5LWNvdW50Il0sWzhdLFsxLFsyOCwiaTE4biIsWyJ1c2VyLnN1bW1hcnkucmVwbGllcyJdLG51bGxdLGZhbHNlXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAiXSxbNywidGJvZHkiLHRydWVdLFs4XSxbMCwiXFxuIl0sWzQsImVhY2giLFtbMjQsWyJtb2RlbCIsInRvcF9jYXRlZ29yaWVzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICJdLFs3LCJ0ciIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwiY2F0ZWdvcnktbGluayJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJjYXRlZ29yeS1saW5rIixbWzIzLDIsW11dXSxbWyJhbGxvd1VuY2F0ZWdvcml6ZWQiLCJoaWRlUGFyZW50Il0sWyJ0cnVlIixmYWxzZV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbNywidGQiLHRydWVdLFsxMCwiY2xhc3MiLCJ0b3BpYy1jb3VudCJdLFs4XSxbMCwiXFxuICAgICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJ1c2VyLXN1bW1hcnktY2F0ZWdvcnktc2VhcmNoIixudWxsLFtbInVzZXIiLCJjYXRlZ29yeSIsImNvdW50Il0sW1syNCxbInVzZXIiXV0sWzIzLDIsW11dLFsyMywyLFsidG9waWNfY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRkIix0cnVlXSxbMTAsImNsYXNzIiwicmVwbHktY291bnQiXSxbOF0sWzAsIlxcbiAgICAgICAgICAgICAgICAgICJdLFsxLFsyOCwidXNlci1zdW1tYXJ5LWNhdGVnb3J5LXNlYXJjaCIsbnVsbCxbWyJ1c2VyIiwiY2F0ZWdvcnkiLCJjb3VudCJdLFtbMjQsWyJ1c2VyIl1dLFsyMywyLFtdXSxbMjMsMixbInBvc3RfY291bnQiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMl19LG51bGxdLFswLCIgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaXRlU2V0dGluZ3MiLCJlbmFibGVfYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsInRvcC1zZWN0aW9uIGJhZGdlcy1zZWN0aW9uIl0sWzhdLFswLCJcXG4gICAgICAiXSxbNywiaDMiLHRydWVdLFsxMCwiY2xhc3MiLCJzdGF0cy10aXRsZSJdLFs4XSxbMSxbMjgsImkxOG4iLFsidXNlci5zdW1tYXJ5LnRvcF9iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIiwiYmFkZ2VzIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFsxLFsyOCwiYmFkZ2UtY2FyZCIsbnVsbCxbWyJiYWRnZSIsImNvdW50IiwidXNlcm5hbWUiXSxbWzIzLDEsW11dLFsyMywxLFsiY291bnQiXV0sWzI0LFsidXNlciIsInVzZXJuYW1lX2xvd2VyIl1dXV1dLGZhbHNlXSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbMV19LHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICJdLFs3LCJwIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbInVzZXIuc3VtbWFyeS5ub19iYWRnZXMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV0sWzQsImlmIixbWzI0LFsibW9yZUJhZGdlcyJdXV0sbnVsbCx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAiXSxbNywicCIsdHJ1ZV0sWzhdLFs0LCJsaW5rLXRvIixudWxsLFtbImNsYXNzIiwicm91dGUiLCJtb2RlbCJdLFsibW9yZSIsInVzZXIuYmFkZ2VzIixbMjQsWyJ1c2VyIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzEsWzI4LCJpMThuIixbInVzZXIuc3VtbWFyeS5tb3JlX2JhZGdlcyJdLG51bGxdLGZhbHNlXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdLFswLCIgICAgIl0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSxudWxsXSxbMCwiICAiXSxbOV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6W119LG51bGxdXSwiaGFzRXZhbCI6ZmFsc2V9JyxtZXRhOnttb2R1bGVOYW1lOiJ1c2VyL3N1bW1hcnkifX0pLEVtYmVyLlRFTVBMQVRFUy51c2Vycz1FbWJlci5IVE1MQmFycy50ZW1wbGF0ZSh7aWQ6bnVsbCxibG9jazoneyJzeW1ib2xzIjpbIml0ZW0iXSwic3RhdGVtZW50cyI6W1s0LCJkLXNlY3Rpb24iLG51bGwsW1sicGFnZUNsYXNzIl0sWyJ1c2VycyJdXSx7InN0YXRlbWVudHMiOltbNCwibG9hZC1tb3JlIixudWxsLFtbInNlbGVjdG9yIiwiYWN0aW9uIl0sWyIuZGlyZWN0b3J5IHRib2R5IHRyIixbMjgsImFjdGlvbiIsW1syMywwLFtdXSwibG9hZE1vcmUiXSxudWxsXV1dLHsic3RhdGVtZW50cyI6W1swLCIgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNvbnRhaW5lciJdLFs4XSxbMCwiXFxuICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImRpcmVjdG9yeSJdLFs4XSxbMCwiXFxuICAgICAgICAiXSxbMSxbMjgsInBsdWdpbi1vdXRsZXQiLG51bGwsW1sibmFtZSIsImNvbm5lY3RvclRhZ05hbWUiLCJhcmdzIl0sWyJ1c2Vycy10b3AiLCJkaXYiLFsyOCwiaGFzaCIsbnVsbCxbWyJtb2RlbCJdLFtbMjQsWyJtb2RlbCJdXV1dXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFswLCJcXG4gICAgICAgICAgIl0sWzEsWzI4LCJwZXJpb2QtY2hvb3NlciIsbnVsbCxbWyJwZXJpb2QiLCJvbkNoYW5nZSJdLFtbMjQsWyJwZXJpb2QiXV0sWzI4LCJhY3Rpb24iLFtbMjMsMCxbXV0sWzI4LCJtdXQiLFtbMjQsWyJwZXJpb2QiXV1dLG51bGxdXSxudWxsXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAiXSxbMSxbMjgsInRleHQtZmllbGQiLG51bGwsW1sidmFsdWUiLCJwbGFjZWhvbGRlcktleSIsImNsYXNzIl0sW1syNCxbIm5hbWVJbnB1dCJdXSwiZGlyZWN0b3J5LmZpbHRlcl9uYW1lIiwiZmlsdGVyLW5hbWUgbm8tYmx1ciJdXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICJdLFs5XSxbMCwiXFxuXFxuIl0sWzQsImNvbmRpdGlvbmFsLWxvYWRpbmctc3Bpbm5lciIsbnVsbCxbWyJjb25kaXRpb24iXSxbWzI0LFsibW9kZWwiLCJsb2FkaW5nIl1dXV0seyJzdGF0ZW1lbnRzIjpbWzQsImlmIixbWzI0LFsibW9kZWwiLCJsZW5ndGgiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIlxcbiAgICAgICAgICAgICJdLFs3LCJ0YWJsZSIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0aGVhZCIsdHJ1ZV0sWzhdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzcsInRoIix0cnVlXSxbOF0sWzEsWzI4LCJpMThuIixbImRpcmVjdG9yeS50b3RhbF9yb3dzIl0sW1siY291bnQiXSxbWzI0LFsibW9kZWwiLCJ0b3RhbFJvd3MiXV1dXV0sZmFsc2VdLFs5XSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIiwiaWNvbiJdLFsibGlrZXNfcmVjZWl2ZWQiLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXSwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIiwiaWNvbiJdLFsibGlrZXNfZ2l2ZW4iLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXSwiaGVhcnQiXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIl0sWyJ0b3BpY19jb3VudCIsWzI0LFsib3JkZXIiXV0sWzI0LFsiYXNjIl1dXV1dLGZhbHNlXSxbMCwiXFxuICAgICAgICAgICAgICAgICJdLFsxLFsyOCwiZGlyZWN0b3J5LXRvZ2dsZSIsbnVsbCxbWyJmaWVsZCIsIm9yZGVyIiwiYXNjIl0sWyJwb3N0X2NvdW50IixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXJlY3RvcnktdG9nZ2xlIixudWxsLFtbImZpZWxkIiwib3JkZXIiLCJhc2MiXSxbInRvcGljc19lbnRlcmVkIixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4gICAgICAgICAgICAgICAgIl0sWzEsWzI4LCJkaXJlY3RvcnktdG9nZ2xlIixudWxsLFtbImZpZWxkIiwib3JkZXIiLCJhc2MiXSxbInBvc3RzX3JlYWQiLFsyNCxbIm9yZGVyIl1dLFsyNCxbImFzYyJdXV1dXSxmYWxzZV0sWzAsIlxcbiAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS10b2dnbGUiLG51bGwsW1siZmllbGQiLCJvcmRlciIsImFzYyJdLFsiZGF5c192aXNpdGVkIixbMjQsWyJvcmRlciJdXSxbMjQsWyJhc2MiXV1dXV0sZmFsc2VdLFswLCJcXG4iXSxbNCwiaWYiLFtbMjQsWyJzaG93VGltZVJlYWQiXV1dLG51bGwseyJzdGF0ZW1lbnRzIjpbWzAsIiAgICAgICAgICAgICAgICAgICJdLFs3LCJ0aCIsdHJ1ZV0sWzhdLFsxLFsyOCwiaTE4biIsWyJkaXJlY3RvcnkudGltZV9yZWFkIl0sbnVsbF0sZmFsc2VdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIiAgICAgICAgICAgICAgIl0sWzldLFswLCJcXG4gICAgICAgICAgICAgICJdLFs3LCJ0Ym9keSIsdHJ1ZV0sWzhdLFswLCJcXG4iXSxbNCwiZWFjaCIsW1syNCxbIm1vZGVsIl1dXSxudWxsLHsic3RhdGVtZW50cyI6W1swLCIgICAgICAgICAgICAgICAgICAiXSxbMSxbMjgsImRpcmVjdG9yeS1pdGVtIixudWxsLFtbIml0ZW0iLCJzaG93VGltZVJlYWQiXSxbWzIzLDEsW11dLFsyNCxbInNob3dUaW1lUmVhZCJdXV1dXSxmYWxzZV0sWzAsIlxcbiJdXSwicGFyYW1ldGVycyI6WzFdfSxudWxsXSxbMCwiICAgICAgICAgICAgICAiXSxbOV0sWzAsIlxcbiAgICAgICAgICAgICJdLFs5XSxbMCwiXFxuXFxuICAgICAgICAgICAgIl0sWzEsWzI4LCJjb25kaXRpb25hbC1sb2FkaW5nLXNwaW5uZXIiLG51bGwsW1siY29uZGl0aW9uIl0sW1syNCxbIm1vZGVsIiwibG9hZGluZ01vcmUiXV1dXV0sZmFsc2VdLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfSx7InN0YXRlbWVudHMiOltbMCwiICAgICAgICAgICAgIl0sWzcsImRpdiIsdHJ1ZV0sWzEwLCJjbGFzcyIsImNsZWFyZml4Il0sWzhdLFs5XSxbMCwiXFxuICAgICAgICAgICAgIl0sWzcsInAiLHRydWVdLFs4XSxbMSxbMjgsImkxOG4iLFsiZGlyZWN0b3J5Lm5vX3Jlc3VsdHMiXSxudWxsXSxmYWxzZV0sWzldLFswLCJcXG4iXV0sInBhcmFtZXRlcnMiOltdfV1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF0sWzAsIlxcbiAgICAgICJdLFs5XSxbMCwiXFxuICAgICJdLFs5XSxbMCwiXFxuIl1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJwYXJhbWV0ZXJzIjpbXX0sbnVsbF1dLCJoYXNFdmFsIjpmYWxzZX0nLG1ldGE6e21vZHVsZU5hbWU6InVzZXJzIn19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYWJvdXQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7dmFyIG89dGhpcztyZXR1cm4oMCx0LmFqYXgpKCIvYWJvdXQuanNvbiIpLnRoZW4oZnVuY3Rpb24oaSl7dmFyIHQ9W10sbj1bXSxzPW1vbWVudCgpLmxvY2FsZSgiZW4iKS51dGMoKS5zdWJ0cmFjdCgxLCJ5ZWFyIik7aS5hYm91dC5hZG1pbnMuZm9yRWFjaChmdW5jdGlvbihlKXttb21lbnQoZS5sYXN0X3NlZW5fYXQpPnMmJnQucHVzaChlKX0pLGkuYWJvdXQubW9kZXJhdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe21vbWVudChlLmxhc3Rfc2Vlbl9hdCk+cyYmbi5wdXNoKGUpfSksaS5hYm91dC5hZG1pbnM9dCxpLmFib3V0Lm1vZGVyYXRvcnM9bjt2YXIgZT1pLmFib3V0LmNhdGVnb3J5X21vZGVyYXRvcnM7cmV0dXJuIGUmJmUubGVuZ3RoJiZlLmZvckVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbj1vLnNpdGUuY2F0ZWdvcmllcy5maW5kQnkoImlkIixlLmNhdGVnb3J5X2lkKTtpLmFib3V0LmNhdGVnb3J5X21vZGVyYXRvcnNbdF0uY2F0ZWdvcnk9bn0pLGkuYWJvdXR9KX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImFib3V0LnNpbXBsZV90aXRsZSIpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYWNjb3VudC1jcmVhdGVkLWVkaXQtZW1haWwiLFsiZXhwb3J0cyIsIkBlbWJlci9yb3V0aW5nL3JvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb250cm9sbGVyRm9yKCJhY2NvdW50LWNyZWF0ZWQiKS5nZXQoImFjY291bnRDcmVhdGVkIik7ZS5zZXQoImFjY291bnRDcmVhdGVkIix0KSxlLnNldCgibmV3RW1haWwiLHQuZW1haWwpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FjY291bnQtY3JlYXRlZC1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlKXtlLnNldCgiYWNjb3VudENyZWF0ZWQiLHRoaXMuY29udHJvbGxlckZvcigiYWNjb3VudC1jcmVhdGVkIikuZ2V0KCJhY2NvdW50Q3JlYXRlZCIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hY2NvdW50LWNyZWF0ZWQtcmVzZW50IixbImV4cG9ydHMiLCJAZW1iZXIvcm91dGluZy9yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUpe2Uuc2V0KCJlbWFpbCIsdGhpcy5jb250cm9sbGVyRm9yKCJhY2NvdW50LWNyZWF0ZWQiKS5nZXQoImFjY291bnRDcmVhdGVkLmVtYWlsIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FjY291bnQtY3JlYXRlZCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlKXtlLnNldCgiYWNjb3VudENyZWF0ZWQiLG4uZGVmYXVsdC5nZXQoImFjY291bnRDcmVhdGVkIikpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2FwcC1yb3V0ZS1tYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJleGNlcHRpb24iLHtwYXRoOiIvZXhjZXB0aW9uIn0pLHRoaXMucm91dGUoImV4Y2VwdGlvbi11bmtub3duIix7cGF0aDoiLzQwNCJ9KSx0aGlzLnJvdXRlKCJhYm91dCIse3BhdGg6Ii9hYm91dCIscmVzZXROYW1lc3BhY2U6ITB9KSx0aGlzLnJvdXRlKCJwb3N0Iix7cGF0aDoiL3AvOmlkIn0pLHRoaXMucm91dGUoInRvcGljIix7cGF0aDoiL3QvOnNsdWcvOmlkIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJmcm9tUGFyYW1zIix7cGF0aDoiLyJ9KSx0aGlzLnJvdXRlKCJmcm9tUGFyYW1zTmVhciIse3BhdGg6Ii86bmVhclBvc3QifSl9KSx0aGlzLnJvdXRlKCJ0b3BpY0J5U2x1Z09ySWQiLHtwYXRoOiIvdC86c2x1Z09ySWQiLHJlc2V0TmFtZXNwYWNlOiEwfSksdGhpcy5yb3V0ZSgiZGlzY292ZXJ5Iix7cGF0aDoiLyIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnJvdXRlKCJ0b3BQYXJlbnRDYXRlZ29yeSIse3BhdGg6Ii9jLzpzbHVnL2wvdG9wIn0pLHRoaXMucm91dGUoInRvcCIpLHRoaXMucm91dGUoInRvcENhdGVnb3J5Tm9uZSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC9ub25lL2wvdG9wIn0pLHRoaXMucm91dGUoInRvcENhdGVnb3J5Iix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL2wvdG9wIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgicGVyaW9kcyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9InRvcCIrZS5jYXBpdGFsaXplKCk7bi5yb3V0ZSh0KyJQYXJlbnRDYXRlZ29yeSIse3BhdGg6Ii9jLzpzbHVnL2wvdG9wLyIrZX0pLG4ucm91dGUodCx7cGF0aDoiL3RvcC8iK2V9KSxuLnJvdXRlKHQrIkNhdGVnb3J5Tm9uZSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC9ub25lL2wvdG9wLyIrZX0pLG4ucm91dGUodCsiQ2F0ZWdvcnkiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbC90b3AvIitlfSl9KSxpLmRlZmF1bHQuY3VycmVudFByb3AoImZpbHRlcnMiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe24ucm91dGUoZSsiUGFyZW50Q2F0ZWdvcnkiLHtwYXRoOiIvYy86c2x1Zy9sLyIrZX0pLG4ucm91dGUoZSx7cGF0aDoiLyIrZX0pLG4ucm91dGUoZSsiQ2F0ZWdvcnlOb25lIix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL25vbmUvbC8iK2V9KSxuLnJvdXRlKGUrIkNhdGVnb3J5Iix7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL2wvIitlfSl9KSx0aGlzLnJvdXRlKCJjYXRlZ29yaWVzIiksdGhpcy5yb3V0ZSgicGFyZW50Q2F0ZWdvcnkiLHtwYXRoOiIvYy86c2x1ZyJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeVdpdGhJRCIse3BhdGg6Ii9jLzpwYXJlbnRTbHVnLzpzbHVnLzppZCJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeU5vbmUiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbm9uZSJ9KSx0aGlzLnJvdXRlKCJjYXRlZ29yeSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZCJ9KX0pLHRoaXMucm91dGUoImdyb3VwcyIse3Jlc2V0TmFtZXNwYWNlOiEwLHBhdGg6Ii9nIn0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJuZXciLHtwYXRoOiJjdXN0b20vbmV3In0pfSksdGhpcy5yb3V0ZSgiZ3JvdXAiLHtwYXRoOiIvZy86bmFtZSIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgibWVtYmVycyIpLHRoaXMucm91dGUoInJlcXVlc3RzIiksdGhpcy5yb3V0ZSgiYWN0aXZpdHkiLGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgicG9zdHMiKSx0aGlzLnJvdXRlKCJ0b3BpY3MiKSx0aGlzLnJvdXRlKCJtZW50aW9ucyIpfSksdGhpcy5yb3V0ZSgibWFuYWdlIixmdW5jdGlvbigpe3RoaXMucm91dGUoInByb2ZpbGUiKSx0aGlzLnJvdXRlKCJtZW1iZXJzaGlwIiksdGhpcy5yb3V0ZSgiaW50ZXJhY3Rpb24iKSx0aGlzLnJvdXRlKCJtZW1iZXJzIiksdGhpcy5yb3V0ZSgibG9ncyIpfSksdGhpcy5yb3V0ZSgibWVzc2FnZXMiLGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgiaW5ib3giKSx0aGlzLnJvdXRlKCJhcmNoaXZlIil9KX0pLHRoaXMucm91dGUoInVzZXJzIix7cmVzZXROYW1lc3BhY2U6ITAscGF0aDoiL3UifSksdGhpcy5yb3V0ZSgicGFzc3dvcmQtcmVzZXQiLHtwYXRoOiIvdS9wYXNzd29yZC1yZXNldC86dG9rZW4ifSksdGhpcy5yb3V0ZSgiYWNjb3VudC1jcmVhdGVkIix7cGF0aDoiL3UvYWNjb3VudC1jcmVhdGVkIn0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJyZXNlbnQiKSx0aGlzLnJvdXRlKCJlZGl0LWVtYWlsIil9KSx0aGlzLnJvdXRlKCJ1c2VyIix7cGF0aDoiL3UvOnVzZXJuYW1lIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJwcm9maWxlLWhpZGRlbiIpLHRoaXMucm91dGUoInN1bW1hcnkiKSx0aGlzLnJvdXRlKCJ1c2VyQWN0aXZpdHkiLHtwYXRoOiIvYWN0aXZpdHkiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInRvcGljcyIpLHRoaXMucm91dGUoInJlcGxpZXMiKSx0aGlzLnJvdXRlKCJsaWtlc0dpdmVuIix7cGF0aDoibGlrZXMtZ2l2ZW4ifSksdGhpcy5yb3V0ZSgiYm9va21hcmtzIiksdGhpcy5yb3V0ZSgicGVuZGluZyIpLHRoaXMucm91dGUoImRyYWZ0cyIpfSksdGhpcy5yb3V0ZSgidXNlck5vdGlmaWNhdGlvbnMiLHtwYXRoOiIvbm90aWZpY2F0aW9ucyIscmVzZXROYW1lc3BhY2U6ITB9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgicmVzcG9uc2VzIiksdGhpcy5yb3V0ZSgibGlrZXNSZWNlaXZlZCIse3BhdGg6Imxpa2VzLXJlY2VpdmVkIn0pLHRoaXMucm91dGUoIm1lbnRpb25zIiksdGhpcy5yb3V0ZSgiZWRpdHMiKX0pLHRoaXMucm91dGUoImJhZGdlcyIpLHRoaXMucm91dGUoImRlbGV0ZWRQb3N0cyIse3BhdGg6Ii9kZWxldGVkLXBvc3RzIn0pLHRoaXMucm91dGUoInVzZXJQcml2YXRlTWVzc2FnZXMiLHtwYXRoOiIvbWVzc2FnZXMiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInNlbnQiKSx0aGlzLnJvdXRlKCJhcmNoaXZlIiksdGhpcy5yb3V0ZSgiZ3JvdXAiLHtwYXRoOiJncm91cC86bmFtZSJ9KSx0aGlzLnJvdXRlKCJncm91cEFyY2hpdmUiLHtwYXRoOiJncm91cC86bmFtZS9hcmNoaXZlIn0pLHRoaXMucm91dGUoInRhZ3MiKSx0aGlzLnJvdXRlKCJ0YWdzU2hvdyIse3BhdGg6InRhZ3MvOmlkIn0pfSksdGhpcy5yb3V0ZSgicHJlZmVyZW5jZXMiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJhY2NvdW50IiksdGhpcy5yb3V0ZSgicHJvZmlsZSIpLHRoaXMucm91dGUoImVtYWlscyIpLHRoaXMucm91dGUoIm5vdGlmaWNhdGlvbnMiKSx0aGlzLnJvdXRlKCJjYXRlZ29yaWVzIiksdGhpcy5yb3V0ZSgidXNlcnMiKSx0aGlzLnJvdXRlKCJ0YWdzIiksdGhpcy5yb3V0ZSgiaW50ZXJmYWNlIiksdGhpcy5yb3V0ZSgiYXBwcyIpLHRoaXMucm91dGUoInVzZXJuYW1lIiksdGhpcy5yb3V0ZSgiZW1haWwiKSx0aGlzLnJvdXRlKCJzZWNvbmQtZmFjdG9yIiksdGhpcy5yb3V0ZSgic2Vjb25kLWZhY3Rvci1iYWNrdXAiKX0pLHRoaXMucm91dGUoInVzZXJJbnZpdGVkIix7cGF0aDoiL2ludml0ZWQiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoInNob3ciLHtwYXRoOiIvOmZpbHRlciJ9KX0pfSksdGhpcy5yb3V0ZSgicmV2aWV3Iix7cGF0aDoiL3JldmlldyJ9LGZ1bmN0aW9uKCl7dGhpcy5yb3V0ZSgic2hvdyIse3BhdGg6Ii86cmV2aWV3YWJsZV9pZCJ9KSx0aGlzLnJvdXRlKCJpbmRleCIse3BhdGg6Ii8ifSksdGhpcy5yb3V0ZSgidG9waWNzIix7cGF0aDoiL3RvcGljcyJ9KSx0aGlzLnJvdXRlKCJzZXR0aW5ncyIse3BhdGg6Ii9zZXR0aW5ncyJ9KX0pLHRoaXMucm91dGUoInNpZ251cCIse3BhdGg6Ii9zaWdudXAifSksdGhpcy5yb3V0ZSgibG9naW4iLHtwYXRoOiIvbG9naW4ifSksdGhpcy5yb3V0ZSgiZW1haWwtbG9naW4iLHtwYXRoOiIvc2Vzc2lvbi9lbWFpbC1sb2dpbi86dG9rZW4ifSksdGhpcy5yb3V0ZSgiYXNzb2NpYXRlLWFjY291bnQiLHtwYXRoOiIvYXNzb2NpYXRlLzp0b2tlbiJ9KSx0aGlzLnJvdXRlKCJsb2dpbi1wcmVmZXJlbmNlcyIpLHRoaXMucm91dGUoImZvcmdvdC1wYXNzd29yZCIse3BhdGg6Ii9wYXNzd29yZC1yZXNldCJ9KSx0aGlzLnJvdXRlKCJmYXEiLHtwYXRoOiIvZmFxIn0pLHRoaXMucm91dGUoInRvcyIse3BhdGg6Ii90b3MifSksdGhpcy5yb3V0ZSgicHJpdmFjeSIse3BhdGg6Ii9wcml2YWN5In0pLHRoaXMucm91dGUoImd1aWRlbGluZXMiLHtwYXRoOiIvZ3VpZGVsaW5lcyJ9KSx0aGlzLnJvdXRlKCJydWxlcyIse3BhdGg6Ii9ydWxlcyJ9KSx0aGlzLnJvdXRlKCJjb25kdWN0Iix7cGF0aDoiL2NvbmR1Y3QifSksdGhpcy5yb3V0ZSgibmV3LXRvcGljIix7cGF0aDoiL25ldy10b3BpYyJ9KSx0aGlzLnJvdXRlKCJuZXctbWVzc2FnZSIse3BhdGg6Ii9uZXctbWVzc2FnZSJ9KSx0aGlzLnJvdXRlKCJiYWRnZXMiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzppZC86c2x1ZyJ9KX0pLHRoaXMucm91dGUoImZ1bGwtcGFnZS1zZWFyY2giLHtwYXRoOiIvc2VhcmNoIn0pLHRoaXMucm91dGUoInRhZyIse3Jlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5yb3V0ZSgic2hvdyIse3BhdGg6Ii86dGFnX2lkIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dC5yb3V0ZSgic2hvdyIrZS5jYXBpdGFsaXplKCkse3BhdGg6Ii86dGFnX2lkL2wvIitlfSl9KX0pLHRoaXMucm91dGUoInRhZ3MiLHtyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMucm91dGUoInNob3dDYXRlZ29yeSIse3BhdGg6Ii9jLypjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZC86dGFnX2lkIn0pLHRoaXMucm91dGUoInNob3dDYXRlZ29yeU5vbmUiLHtwYXRoOiIvYy8qY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQvbm9uZS86dGFnX2lkIn0pLGkuZGVmYXVsdC5jdXJyZW50UHJvcCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dC5yb3V0ZSgic2hvd0NhdGVnb3J5IitlLmNhcGl0YWxpemUoKSx7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkLzp0YWdfaWQvbC8iK2V9KSx0LnJvdXRlKCJzaG93Q2F0ZWdvcnlOb25lIitlLmNhcGl0YWxpemUoKSx7cGF0aDoiL2MvKmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkL25vbmUvOnRhZ19pZC9sLyIrZX0pfSksdGhpcy5yb3V0ZSgiaW50ZXJzZWN0aW9uIix7cGF0aDoiaW50ZXJzZWN0aW9uLzp0YWdfaWQvKmFkZGl0aW9uYWxfdGFncyJ9KSx0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzp0YWdfaWQifSksaS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJmaWx0ZXJzIikuZm9yRWFjaChmdW5jdGlvbihlKXt0LnJvdXRlKCJzaG93IitlLmNhcGl0YWxpemUoKSx7cGF0aDoiLzp0YWdfaWQvbC8iK2V9KX0pfSksdGhpcy5yb3V0ZSgidGFnR3JvdXBzIix7cGF0aDoiL3RhZ19ncm91cHMiLHJlc2V0TmFtZXNwYWNlOiEwfSxmdW5jdGlvbigpe3RoaXMucm91dGUoImVkaXQiLHtwYXRoOiIvOmlkIn0pLHRoaXMucm91dGUoIm5ldyIpfSksdGhpcy5yb3V0ZSgiaW52aXRlcyIse3BhdGg6Ii9pbnZpdGVzIixyZXNldE5hbWVzcGFjZTohMH0sZnVuY3Rpb24oKXt0aGlzLnJvdXRlKCJzaG93Iix7cGF0aDoiLzp0b2tlbiJ9KX0pfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hcHBsaWNhdGlvbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvY29tcHV0ZWQiLCJkaXNjb3Vyc2UvbGliL2xvZ291dCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9taXhpbnMvb3Blbi1jb21wb3NlciIsImRpc2NvdXJzZS9tb2RlbHMvY2F0ZWdvcnkiLCJkaXNjb3Vyc2UvbGliL21vYmlsZSIsImRpc2NvdXJzZS9tb2RlbHMvbG9naW4tbWV0aG9kIiwiZGlzY291cnNlLWNvbW1vbi9saWIvZ2V0LW93bmVyIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvLHIsYSxsLHUsYyxkLHAsbSxmKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaChlLHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2l0ZS5nZXQoImlzUmVhZE9ubHkiKT9ib290Ym94LmFsZXJ0KHQpOnRoaXNbZV0oKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBiPW4uZGVmYXVsdC5leHRlbmQoYS5kZWZhdWx0LHtzaXRlVGl0bGU6KDAscy5zZXR0aW5nKSgidGl0bGUiKSxzaG9ydFNpdGVEZXNjcmlwdGlvbjooMCxzLnNldHRpbmcpKCJzaG9ydF9zaXRlX2Rlc2NyaXB0aW9uIiksYWN0aW9uczp7dG9nZ2xlQW5vbnltb3VzOmZ1bmN0aW9uKCl7KDAsaS5hamF4KSgoMCxwLnVzZXJQYXRoKSgidG9nZ2xlLWFub24iKSx7bWV0aG9kOiJQT1NUIn0pLnRoZW4oZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KX0sdG9nZ2xlTW9iaWxlVmlldzpmdW5jdGlvbigpe3UuZGVmYXVsdC50b2dnbGVNb2JpbGVWaWV3KCl9LGxvZ291dDpoKCJfaGFuZGxlTG9nb3V0IixJMThuLnQoInJlYWRfb25seV9tb2RlLmxvZ291dF9kaXNhYmxlZCIpKSxfY29sbGVjdFRpdGxlVG9rZW5zOmZ1bmN0aW9uKGUpe2UucHVzaCh0aGlzLnNpdGVUaXRsZSksd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIT09RGlzY291cnNlLmdldFVSTCgiLyIpJiZ3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUhPT1EaXNjb3Vyc2UuZ2V0VVJMKCIvbG9naW4iKXx8IiI9PT10aGlzLnNob3J0U2l0ZURlc2NyaXB0aW9ufHxlLnB1c2godGhpcy5zaG9ydFNpdGVEZXNjcmlwdGlvbiksRGlzY291cnNlLnNldCgiX2RvY1RpdGxlIixlLmpvaW4oIiAtICIpKX0sd2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInJvdXRlcjptYWluIik7cmV0dXJuKDAsdC5vbmNlKShlLGUudHJpZ2dlciwid2lsbFRyYW5zaXRpb24iKSx0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHBvc3RXYXNFbnF1ZXVlZDpmdW5jdGlvbihlKXsoMCxyLmRlZmF1bHQpKCJwb3N0LWVucXVldWVkIix7bW9kZWw6ZSx0aXRsZToicmV2aWV3LmFwcHJvdmFsLnRpdGxlIn0pfSxjb21wb3NlUHJpdmF0ZU1lc3NhZ2U6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lP2UuZ2V0KCJ1c2VybmFtZSIpOiIiLGk9dD93aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt0LnVybDpudWxsLHM9dD9JMThuLnQoImNvbXBvc2VyLnJlZmVyZW5jZV90b3BpY190aXRsZSIse3RpdGxlOnQudG9waWMudGl0bGV9KTpudWxsO3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7YWN0aW9uOm0uZGVmYXVsdC5QUklWQVRFX01FU1NBR0UscmVjaXBpZW50czpuLGFyY2hldHlwZUlkOiJwcml2YXRlX21lc3NhZ2UiLGRyYWZ0S2V5Om0uZGVmYXVsdC5ORVdfUFJJVkFURV9NRVNTQUdFX0tFWSxyZXBseTppLHRpdGxlOnN9KX0sZXJyb3I6ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtlLmpxWEhSJiYobj1lLmpxWEhSKTt2YXIgaT1lLmpxWEhSP246ZSxzPXRoaXMuY29udHJvbGxlckZvcigiZXhjZXB0aW9uIiksbz13aW5kb3cuY29uc29sZTtyZXR1cm4gbyYmby5lcnJvciYmby5lcnJvcihpKSxpJiY0MDQ9PT1pLnN0YXR1cz90aGlzLnRyYW5zaXRpb25UbygiZXhjZXB0aW9uLXVua25vd24iKToocy5zZXRQcm9wZXJ0aWVzKHtsYXN0VHJhbnNpdGlvbjp0LHRocm93bjppfSksdGhpcy5pbnRlcm1lZGlhdGVUcmFuc2l0aW9uVG8oImV4Y2VwdGlvbiIpLCEwKX0sc2hvd0xvZ2luOmgoImhhbmRsZVNob3dMb2dpbiIsSTE4bi50KCJyZWFkX29ubHlfbW9kZS5sb2dpbl9kaXNhYmxlZCIpKSxzaG93Q3JlYXRlQWNjb3VudDpoKCJoYW5kbGVTaG93Q3JlYXRlQWNjb3VudCIsSTE4bi50KCJyZWFkX29ubHlfbW9kZS5sb2dpbl9kaXNhYmxlZCIpKSxzaG93Rm9yZ290UGFzc3dvcmQ6ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoImZvcmdvdC1wYXNzd29yZCIpLnNldFByb3BlcnRpZXMoe29mZmVySGVscDpudWxsLGhlbHBTZWVuOiExfSksKDAsci5kZWZhdWx0KSgiZm9yZ290UGFzc3dvcmQiLHt0aXRsZToiZm9yZ290X3Bhc3N3b3JkLnRpdGxlIn0pfSxzaG93Tm90QWN0aXZhdGVkOmZ1bmN0aW9uKGUpeygwLHIuZGVmYXVsdCkoIm5vdC1hY3RpdmF0ZWQiLHt0aXRsZToibG9nX2luIn0pLnNldFByb3BlcnRpZXMoZSl9LHNob3dVcGxvYWRTZWxlY3RvcjpmdW5jdGlvbihlKXsoMCxyLmRlZmF1bHQpKCJ1cGxvYWRTZWxlY3RvciIpLnNldFByb3BlcnRpZXMoe3Rvb2xiYXJFdmVudDplLGltYWdlVXJsOm51bGx9KX0sc2hvd0tleWJvYXJkU2hvcnRjdXRzSGVscDpmdW5jdGlvbigpeygwLHIuZGVmYXVsdCkoImtleWJvYXJkLXNob3J0Y3V0cy1oZWxwIix7dGl0bGU6ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLnRpdGxlIn0pfSxjbG9zZU1vZGFsOmZ1bmN0aW9uKCl7dmFyIGUsdD0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoInJvdXRlOmFwcGxpY2F0aW9uIikuY29udHJvbGxlckZvcigibW9kYWwiKSxuPXQuZ2V0KCJuYW1lIik7aWYobil7dmFyIGk9KDAsZC5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOiIrbik7aWYoaSYmaS5iZWZvcmVDbG9zZSYmITE9PT1pLmJlZm9yZUNsb3NlKCkpcmV0dXJufXRoaXMucmVuZGVyKCJoaWRlLW1vZGFsIix7aW50bzoibW9kYWwiLG91dGxldDoibW9kYWxCb2R5In0pLG4mJigoZT0oMCxkLmdldE93bmVyKSh0aGlzKS5sb29rdXAoImNvbnRyb2xsZXI6IituKSkmJmUub25DbG9zZSYmZS5vbkNsb3NlKCksdC5zZXQoIm5hbWUiLG51bGwpKX0saGlkZU1vZGFsOmZ1bmN0aW9uKCl7JCgiLmQtbW9kYWwuZml4ZWQtbW9kYWwiKS5tb2RhbCgiaGlkZSIpfSxyZW9wZW5Nb2RhbDpmdW5jdGlvbigpeyQoIi5kLW1vZGFsLmZpeGVkLW1vZGFsIikubW9kYWwoInNob3ciKX0sZWRpdENhdGVnb3J5OmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7bC5kZWZhdWx0LnJlbG9hZEJ5SWQoZS5nZXQoImlkIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5IixlLmNhdGVnb3J5KTt0LnNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMoKSxuLnNpdGUudXBkYXRlQ2F0ZWdvcnkodCksKDAsci5kZWZhdWx0KSgiZWRpdC1jYXRlZ29yeSIse21vZGVsOnR9KSxuLmNvbnRyb2xsZXJGb3IoImVkaXQtY2F0ZWdvcnkiKS5zZXQoInNlbGVjdGVkVGFiIiwiZ2VuZXJhbCIpfSl9LGNoZWNrRW1haWw6ZnVuY3Rpb24oZSl7ZS5jaGVja0VtYWlsKCl9LGNoYW5nZUJ1bGtUZW1wbGF0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoIm1vZGFsLyIsIiIpLG49KDAsZC5nZXRPd25lcikodGhpcykubG9va3VwKCJjb250cm9sbGVyOiIrdCk7dGhpcy5yZW5kZXIoZSx7aW50bzoibW9kYWwvdG9waWMtYnVsay1hY3Rpb25zIixvdXRsZXQ6ImJ1bGtPdXRsZXQiLGNvbnRyb2xsZXI6bj90OiJ0b3BpYy1idWxrLWFjdGlvbnMifSl9LGNyZWF0ZU5ld1RvcGljVmlhUGFyYW1zOmZ1bmN0aW9uKGUsdCxuLGkpe3RoaXMub3BlbkNvbXBvc2VyV2l0aFRvcGljUGFyYW1zKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpLGUsdCxuLGkpfSxjcmVhdGVOZXdNZXNzYWdlVmlhUGFyYW1zOmZ1bmN0aW9uKGUsdCxuKXt0aGlzLm9wZW5Db21wb3NlcldpdGhNZXNzYWdlUGFyYW1zKGUsdCxuKX19LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLCgwLHQubmV4dCkoZnVuY3Rpb24oKXtiLnRyaWdnZXIoImFjdGl2YXRlIil9KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigiYXBwbGljYXRpb24iKSx0aGlzLnJlbmRlcigidXNlci1jYXJkIix7aW50bzoiYXBwbGljYXRpb24iLG91dGxldDoidXNlci1jYXJkIn0pLHRoaXMucmVuZGVyKCJtb2RhbCIse2ludG86ImFwcGxpY2F0aW9uIixvdXRsZXQ6Im1vZGFsIn0pLHRoaXMucmVuZGVyKCJjb21wb3NlciIse2ludG86ImFwcGxpY2F0aW9uIixvdXRsZXQ6ImNvbXBvc2VyIn0pfSxoYW5kbGVTaG93TG9naW46ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXM7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3Nzbz8oZT1lbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSx3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiL3Nlc3Npb24vc3NvP3JldHVybl9wYXRoPSIrZSkpOnRoaXMuX2F1dG9Mb2dpbigibG9naW4iLCJsb2dpbi1tb2RhbCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5jb250cm9sbGVyRm9yKCJsb2dpbiIpLnJlc2V0Rm9ybSgpfSl9LGhhbmRsZVNob3dDcmVhdGVBY2NvdW50OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX3Nzbz8oZT1lbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSx3aW5kb3cubG9jYXRpb249RGlzY291cnNlLmdldFVSTCgiL3Nlc3Npb24vc3NvP3JldHVybl9wYXRoPSIrZSkpOnRoaXMuX2F1dG9Mb2dpbigiY3JlYXRlQWNjb3VudCIsImNyZWF0ZS1hY2NvdW50Iil9LF9hdXRvTG9naW46ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPSgwLGMuZmluZEFsbCkoKTt0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfbG9jYWxfbG9naW5zfHwxIT09aS5sZW5ndGg/KCgwLHIuZGVmYXVsdCkoZSksdGhpcy5jb250cm9sbGVyRm9yKCJtb2RhbCIpLnNldCgibW9kYWxDbGFzcyIsdCksbiYmbigpKTp0aGlzLmNvbnRyb2xsZXJGb3IoImxvZ2luIikuc2VuZCgiZXh0ZXJuYWxMb2dpbiIsaVswXSl9LF9oYW5kbGVMb2dvdXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIuZGVzdHJveVNlc3Npb24oKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuKDAsby5kZWZhdWx0KShlLnNpdGVTZXR0aW5ncyxlLmtleVZhbHVlU3RvcmUpfSl9fSk7Zi5FdmVudFRhcmdldC5taXhpbihiKSxlLmRlZmF1bHQ9Yn0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9hc3NvY2lhdGUtYWNjb3VudCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9saWIvYWpheC1lcnJvciJdLGZ1bmN0aW9uKGUsdCxuLGkscyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyYW1zRm9yKCJhc3NvY2lhdGUtYWNjb3VudCIpO3RoaXMucmVwbGFjZVdpdGgoInByZWZlcmVuY2VzLmFjY291bnQiLHRoaXMuY3VycmVudFVzZXIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4oMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuKDAsaS5hamF4KSgiL2Fzc29jaWF0ZS8iK2VuY29kZVVSSUNvbXBvbmVudChlLnRva2VuKSsiLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybigwLHMuZGVmYXVsdCkoImFzc29jaWF0ZS1hY2NvdW50LWNvbmZpcm0iLHttb2RlbDplfSl9KS5jYXRjaChvLnBvcHVwQWpheEVycm9yKX0pfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYmFkZ2VzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvYmFkZ2UiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmdldCgiYmFkZ2VzIik/aS5kZWZhdWx0LmdldEFuZFJlbW92ZSgiYmFkZ2VzIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbi5kZWZhdWx0LmNyZWF0ZUZyb21Kc29uKGUpfSk6bi5kZWZhdWx0LmZpbmRBbGwoe29ubHlMaXN0YWJsZTohMH0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiYmFkZ2VzLnRpdGxlIil9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsITApLCEwfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9iYWRnZXMtc2hvdyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2JhZGdlIiwicHJlbG9hZC1zdG9yZSIsInJzdnAiXSxmdW5jdGlvbihlLHQsYSxuLGksbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6e3VzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYmFkZ2VzL3Nob3ciKS5fc2hvd0Zvb3RlcigpLCEwfX0sc2VyaWFsaXplOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFByb3BlcnRpZXMoImlkIiwic2x1ZyIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gaS5kZWZhdWx0LmdldCgiYmFkZ2UiKT9pLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJiYWRnZSIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5jcmVhdGVGcm9tSnNvbihlKX0pOm4uZGVmYXVsdC5maW5kQnlJZChlLmlkKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT10LnRvLnF1ZXJ5UGFyYW1zJiZ0LnRvLnF1ZXJ5UGFyYW1zLnVzZXJuYW1lLHM9YS5kZWZhdWx0LmZpbmRCeUJhZGdlSWQoZS5nZXQoImlkIikse3VzZXJuYW1lOml9KS50aGVuKGZ1bmN0aW9uKGUpe24udXNlckJhZGdlc0dyYW50PWV9KSxvPXRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXIscj17dXNlckJhZGdlc0dyYW50OnMsdXNlckJhZGdlc0FsbDphLmRlZmF1bHQuZmluZEJ5VXNlcm5hbWUobykudGhlbihmdW5jdGlvbihlKXtuLnVzZXJCYWRnZXNBbGw9ZX0pfTtyZXR1cm4oMCxsLmhhc2gpKHIpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigiYmFkZ2VzLnNob3ciKTtpZihlKXJldHVybiBlLmdldCgibmFtZSIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpLGUuc2V0KCJ1c2VyQmFkZ2VzIix0aGlzLnVzZXJCYWRnZXNHcmFudCksZS5zZXQoInVzZXJCYWRnZXNBbGwiLHRoaXMudXNlckJhZGdlc0FsbCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtYWRtaW4tdXNlci1wb3N0cy1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL3RleHQiXSxmdW5jdGlvbihlLG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4uZGVmYXVsdC5leHRlbmQoe2FjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuc2V0KCJpbmRleFN0cmVhbSIsITApLHRoaXMuY29udHJvbGxlckZvcigidXNlci1wb3N0cyIpLl9zaG93Rm9vdGVyKCksITB9fSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJwb3N0c1N0cmVhbSIpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiBlLmZpbHRlckJ5KHtmaWx0ZXI6dH0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0LnNldCgiY2FuTG9hZE1vcmUiLDYwPT09dC5nZXQoIml0ZW1zTG9hZGVkIikpLHQuZ2V0KCJjb250ZW50IikuZm9yRWFjaChmdW5jdGlvbihlKXtlLmdldCgidGl0bGUiKSYmZS5zZXQoInRpdGxlIiwoMCxpLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnRpdGxlKSkpfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXBvc3RzIikuc2V0KCJtb2RlbCIsdCl9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoInVzZXIvcG9zdHMiLHtpbnRvOiJ1c2VyIn0pfX0pfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9idWlsZC1jYXRlZ29yeS1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXRvcGljLXJvdXRlIiwiZGlzY291cnNlL2NvbnRyb2xsZXJzL2Rpc2NvdmVyeS1zb3J0YWJsZSIsImRpc2NvdXJzZS9tb2RlbHMvdG9waWMtbGlzdCIsImRpc2NvdXJzZS9tb2RlbHMvcGVybWlzc2lvbi10eXBlIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeS1saXN0IiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSIsInJzdnAiXSxmdW5jdGlvbihlLG4scixpLGEsYyxzLGwsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCx1KXtyZXR1cm4gbi5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6aS5xdWVyeVBhcmFtcyxzZXJpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbjtyZXR1cm4gZS5jYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZHx8KCJub25lIj09PWUuaWQ/KHQ9W2UucGFyZW50U2x1ZyxlLnNsdWddLmpvaW4oIi8iKSxuPWwuZGVmYXVsdC5maW5kQnlTbHVnUGF0aFdpdGhJRCh0KSx0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkuY2F0ZWdvcnlOb25lIix7Y2F0ZWdvcnk6bixjYXRlZ29yeV9zbHVnX3BhdGhfd2l0aF9pZDp0fSkpOmUuY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQ9W2UucGFyZW50U2x1ZyxlLnNsdWcsZS5pZF0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkuam9pbigiLyIpKSxlfSxtb2RlbDpmdW5jdGlvbihlKXt2YXIgbj10aGlzO2U9dGhpcy5zZXJpYWxpemUoZSk7dmFyIHQ9bC5kZWZhdWx0LmZpbmRCeVNsdWdQYXRoV2l0aElEKGUuY2F0ZWdvcnlfc2x1Z19wYXRoX3dpdGhfaWQpO2lmKCF0KXt2YXIgaT1lLmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkLnNwbGl0KCIvIik7cmV0dXJuIDA8aS5sZW5ndGgmJmlbaS5sZW5ndGgtMV0ubWF0Y2goL15cZCskLykmJmkucG9wKCksbC5kZWZhdWx0LnJlbG9hZEJ5U2x1Z1BhdGgoaS5qb2luKCIvIikpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5IixlLmNhdGVnb3J5KTtyZXR1cm4gdC5zZXR1cEdyb3Vwc0FuZFBlcm1pc3Npb25zKCksbi5zaXRlLnVwZGF0ZUNhdGVnb3J5KHQpLHtjYXRlZ29yeTp0fX0pfWlmKHQpcmV0dXJue2NhdGVnb3J5OnR9fSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUsdCl7aWYoZSlyZXR1cm4gdGhpcy5fc2V0dXBOYXZpZ2F0aW9uKGUuY2F0ZWdvcnkpLCgwLG8uYWxsKShbdGhpcy5fY3JlYXRlU3ViY2F0ZWdvcnlMaXN0KGUuY2F0ZWdvcnkpLHRoaXMuX3JldHJpZXZlVG9waWNMaXN0KGUuY2F0ZWdvcnksdCldKTt0aGlzLnJlcGxhY2VXaXRoKCIvNDA0Iil9LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4iZGVmYXVsdCI9PT10P2UuZ2V0KCJkZWZhdWx0X3ZpZXciKXx8ImxhdGVzdCI6dH0sX3NldHVwTmF2aWdhdGlvbjpmdW5jdGlvbihlKXt2YXIgdD11JiYhIXUubm9fc3ViY2F0ZWdvcmllcyxuPXRoaXMuZmlsdGVyKGUpLnNwbGl0KCIvIilbMF07dGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3J5Iikuc2V0UHJvcGVydGllcyh7Y2F0ZWdvcnk6ZSxmaWx0ZXJUeXBlOm4sbm9TdWJjYXRlZ29yaWVzOnR9KX0sX2NyZWF0ZVN1YmNhdGVnb3J5TGlzdDpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9jYXRlZ29yeUxpc3Q9bnVsbCxlLmlzUGFyZW50JiZlLnNob3dfc3ViY2F0ZWdvcnlfbGlzdD9zLmRlZmF1bHQubGlzdEZvclBhcmVudCh0aGlzLnN0b3JlLGUpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHQuX2NhdGVnb3J5TGlzdD1lfSk6by5Qcm9taXNlLnJlc29sdmUoKX0sX3JldHJpZXZlVG9waWNMaXN0OmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxpPSJjLyIrbC5kZWZhdWx0LnNsdWdGb3IodCkrIi8iK3QuaWQrIi9sLyIrdGhpcy5maWx0ZXIodCkscz0oMCxyLmZpbHRlclF1ZXJ5UGFyYW1zKShlLnRvLnF1ZXJ5UGFyYW1zLHUpLG89e2NhY2hlZDp0aGlzLmlzUG9wcGVkU3RhdGUoZSl9O3JldHVybigwLHIuZmluZFRvcGljTGlzdCkodGhpcy5zdG9yZSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZSxpLHMsbykudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gYS5kZWZhdWx0LmhpZGVVbmlmb3JtQ2F0ZWdvcnkoZSx0KSxuLnNldCgidG9waWNzIixlKSxlfSl9LHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRNb2RlbC5jYXRlZ29yeSx0PUkxOG4udCgiZmlsdGVycy4iK3RoaXMuZmlsdGVyKGUpLnJlcGxhY2UoIi8iLCIuIikrIi50aXRsZSIpLG49ZS5uYW1lO3JldHVybiBlLnBhcmVudF9jYXRlZ29yeV9pZCYmKG49bC5kZWZhdWx0Lmxpc3QoKS5maW5kQnkoImlkIixlLnBhcmVudF9jYXRlZ29yeV9pZCkubmFtZSsiLyIrbiksSTE4bi50KCJmaWx0ZXJzLndpdGhfY2F0ZWdvcnkiLHtmaWx0ZXI6dCxjYXRlZ29yeTpufSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMudG9waWNzLGk9dC5jYXRlZ29yeSxzPW4uZ2V0KCJjYW5fY3JlYXRlX3RvcGljIiksbz1pLmdldCgicGVybWlzc2lvbiIpPT09Yy5kZWZhdWx0LkZVTEwscj10aGlzLmZpbHRlcihpKTt0aGlzLmNvbnRyb2xsZXJGb3IoIm5hdmlnYXRpb24vY2F0ZWdvcnkiKS5zZXRQcm9wZXJ0aWVzKHtjYW5DcmVhdGVUb3BpY09uQ2F0ZWdvcnk6byxjYW5ub3RDcmVhdGVUb3BpY09uQ2F0ZWdvcnk6IW8sY2FuQ3JlYXRlVG9waWM6c30pO3ZhciBhPXttb2RlbDpuLGNhdGVnb3J5OmkscGVyaW9kOm4uZ2V0KCJmb3JfcGVyaW9kIil8fCgwPHIuaW5kZXhPZigiLyIpP3Iuc3BsaXQoIi8iKVsxXToiIiksc2VsZWN0ZWQ6W10sbm9TdWJjYXRlZ29yaWVzOnUmJiEhdS5ub19zdWJjYXRlZ29yaWVzLGV4cGFuZEFsbFBpbm5lZDohMCxjYW5DcmVhdGVUb3BpYzpzLGNhbkNyZWF0ZVRvcGljT25DYXRlZ29yeTpvfSxsPWkuZ2V0KCJwYXJhbXMiKTtsJiZPYmplY3Qua2V5cyhsKS5sZW5ndGgmJih2b2lkIDAhPT1sLm9yZGVyJiYoYS5vcmRlcj1sLm9yZGVyKSx2b2lkIDAhPT1sLmFzY2VuZGluZyYmKGEuYXNjZW5kaW5nPWwuYXNjZW5kaW5nKSksdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkvdG9waWNzIikuc2V0UHJvcGVydGllcyhhKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixpLmdldCgic2VhcmNoQ29udGV4dCIpKSx0aGlzLnNldCgidG9waWNzIixudWxsKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigibmF2aWdhdGlvbi9jYXRlZ29yeSIse291dGxldDoibmF2aWdhdGlvbi1iYXIifSksdGhpcy5fY2F0ZWdvcnlMaXN0JiZ0aGlzLnJlbmRlcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiLHtvdXRsZXQ6ImhlYWRlci1saXN0LWNvbnRhaW5lciIsbW9kZWw6dGhpcy5fY2F0ZWdvcnlMaXN0fSksdGhpcy5yZW5kZXIoImRpc2NvdmVyeS90b3BpY3MiLHtjb250cm9sbGVyOiJkaXNjb3ZlcnkvdG9waWNzIixvdXRsZXQ6Imxpc3QtY29udGFpbmVyIn0pfSxyZXNldENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0JiZlLnNldFByb3BlcnRpZXMoe29yZGVyOiJkZWZhdWx0Iixhc2NlbmRpbmc6ITF9KX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX0sYWN0aW9uczp7ZXJyb3I6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5qcVhIUi5yZXNwb25zZUpTT047dCYmdC5leHRyYXMmJnQuZXh0cmFzLmh0bWw/dGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5zZXQoImVycm9ySHRtbCIsZS5qcVhIUi5yZXNwb25zZUpTT04uZXh0cmFzLmh0bWwpOnRoaXMucmVwbGFjZVdpdGgoImV4Y2VwdGlvbiIpfSxzZXROb3RpZmljYXRpb246ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50TW9kZWwuc2V0Tm90aWZpY2F0aW9uKGUpfSx0cmlnZ2VyUmVmcmVzaDpmdW5jdGlvbigpe3RoaXMucmVmcmVzaCgpfX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtZ3JvdXAtbWVzc2FnZXMtcm91dGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdXNlci10b3BpYy1saXN0Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gdC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInVzZXIubWVzc2FnZXMuIitlKX0sbW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpLHQ9InRvcGljcy9wcml2YXRlLW1lc3NhZ2VzLWdyb3VwLyIrdGhpcy5jdXJyZW50VXNlci5nZXQoInVzZXJuYW1lX2xvd2VyIikrIi8iK2U7cmV0dXJuIHRoaXMuX2lzQXJjaGl2ZSgpJiYodCs9Ii9hcmNoaXZlIiksdGhpcy5zdG9yZS5maW5kRmlsdGVyZWQoInRvcGljTGlzdCIse2ZpbHRlcjp0fSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT0iL3ByaXZhdGUtbWVzc2FnZXMvZ3JvdXAvIit0aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpO3RoaXMuX2lzQXJjaGl2ZSgpJiYoZSs9Ii9hcmNoaXZlIiksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXRvcGljcy1saXN0Iikuc3Vic2NyaWJlKGUpLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnNldFByb3BlcnRpZXMoe2hpZGVDYXRlZ29yeTohMCxzaG93UG9zdGVyczohMH0pfSxfaXNBcmNoaXZlOmZ1bmN0aW9uKCl7cmV0dXJuImFyY2hpdmUiPT09ZX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLXRvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbGliL2NhY2hlZC10b3BpYy1saXN0IiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsaSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gaS5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6by5kZWZhdWx0LlRZUEVTLm1lc3NhZ2VzX3JlY2VpdmVkLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT0iaW5kZXgiPT09dD8iaW5ib3giOnQ7cmV0dXJuW0kxOG4udCgidXNlci5tZXNzYWdlcy4iK2UpLEkxOG4udCgidXNlci5wcml2YXRlX21lc3NhZ2VzIildfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLl9zaG93Rm9vdGVyKCksITB9fSxtb2RlbDpmdW5jdGlvbigpe3ZhciBlPSJ0b3BpY3MvIituKyIvIit0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpLHQ9KDAscy5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLGUpO3JldHVybiB0fHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOmV9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUmJnRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnN1YnNjcmliZSgiL3ByaXZhdGUtbWVzc2FnZXMvIitlKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS5zZXRQcm9wZXJ0aWVzKHtoaWRlQ2F0ZWdvcnk6ITAsc2hvd1Bvc3RlcnM6ITAsY2FuQnVsa1NlbGVjdDohMCx0YWdzRm9yVXNlcjp0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpLHNlbGVjdGVkOltdfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXRQcm9wZXJ0aWVzKHthcmNoaXZlOiExLHBtVmlldzp0LHNob3dUb2dnbGVCdWxrU2VsZWN0OiEwfSksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgiY29udGV4dFR5cGUiLCJwcml2YXRlX21lc3NhZ2VzIil9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS51bnN1YnNjcmliZSgpLHRoaXMuc2VhcmNoU2VydmljZS5zZXQoInNlYXJjaENvbnRleHQiLHRoaXMuY29udHJvbGxlckZvcigidXNlciIpLmdldCgibW9kZWwuc2VhcmNoQ29udGV4dCIpKX19KX19KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtc3RhdGljLXJvdXRlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvc3RhdGljLXBhZ2UiXSxmdW5jdGlvbihlLG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdC5maW5kKGUpfSxyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJzdGF0aWMiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJzdGF0aWMiKS5zZXQoIm1vZGVsIix0KX19O3JldHVybiBuLmRlZmF1bHQuZXh0ZW5kKHQpfX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9jb25kdWN0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJjb25kdWN0Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZGlzY292ZXJ5LWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL21peGlucy9vcGVuLWNvbXBvc2VyIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeS1saXN0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljLWxpc3QiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJwcmVsb2FkLXN0b3JlIiwiZGlzY291cnNlL2NvbXBvbmVudHMvY29uY2VybnMvY2F0ZWdvcnktc2VhcmNoLXByaW9yaXRpZXMiLCJyc3ZwIiwiZGlzY291cnNlL21vZGVscy9zaXRlIl0sZnVuY3Rpb24oZSxyLHQsbixpLHMsYSxvLGwsdSxjLGQscCxtKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBmPW4uZGVmYXVsdC5leHRlbmQocy5kZWZhdWx0LHtyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiLHtvdXRsZXQ6Im5hdmlnYXRpb24tYmFyIn0pLHRoaXMucmVuZGVyKCJkaXNjb3ZlcnkvY2F0ZWdvcmllcyIse291dGxldDoibGlzdC1jb250YWluZXIifSl9LGZpbmRDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dmFyIGU9IXRoaXMuc2l0ZS5tb2JpbGVWaWV3JiZ0aGlzLnNpdGVTZXR0aW5ncy5kZXNrdG9wX2NhdGVnb3J5X3BhZ2Vfc3R5bGU7cmV0dXJuImNhdGVnb3JpZXNfYW5kX2xhdGVzdF90b3BpY3MiPT09ZT90aGlzLl9maW5kQ2F0ZWdvcmllc0FuZFRvcGljcygibGF0ZXN0Iik6ImNhdGVnb3JpZXNfYW5kX3RvcF90b3BpY3MiPT09ZT90aGlzLl9maW5kQ2F0ZWdvcmllc0FuZFRvcGljcygidG9wIik6YS5kZWZhdWx0Lmxpc3QodGhpcy5zdG9yZSl9LG1vZGVsOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5maW5kQ2F0ZWdvcmllcygpLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9bi50b3BpY1RyYWNraW5nU3RhdGU7cmV0dXJuIHQmJih0LnN5bmMoZSwiY2F0ZWdvcmllcyIpLHQudHJhY2tJbmNvbWluZygiY2F0ZWdvcmllcyIpKSxlfSl9LF9maW5kQ2F0ZWdvcmllc0FuZFRvcGljczpmdW5jdGlvbihzKXt2YXIgbz10aGlzO3JldHVybigwLHAuaGFzaCkoe3dyYXBwZWRDYXRlZ29yaWVzTGlzdDpjLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJjYXRlZ29yaWVzX2xpc3QiKSx0b3BpY3NMaXN0OmMuZGVmYXVsdC5nZXRBbmRSZW1vdmUoInRvcGljX2xpc3RfIitzKX0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZS53cmFwcGVkQ2F0ZWdvcmllc0xpc3Qsbj1lLnRvcGljc0xpc3QsaT10JiZ0LmNhdGVnb3J5X2xpc3Q7cmV0dXJuIGkmJm4/KG4udG9waWNfbGlzdCYmbi50b3BpY19saXN0LnRvcF90YWdzJiZtLmRlZmF1bHQuY3VycmVudFByb3AoInRvcF90YWdzIixuLnRvcGljX2xpc3QudG9wX3RhZ3MpLHIuZGVmYXVsdC5jcmVhdGUoe2NhdGVnb3JpZXM6YS5kZWZhdWx0LmNhdGVnb3JpZXNGcm9tKG8uc3RvcmUsdCksdG9waWNzOmwuZGVmYXVsdC50b3BpY3NGcm9tKG8uc3RvcmUsbiksY2FuX2NyZWF0ZV9jYXRlZ29yeTppLmNhbl9jcmVhdGVfY2F0ZWdvcnksY2FuX2NyZWF0ZV90b3BpYzppLmNhbl9jcmVhdGVfdG9waWMsZHJhZnRfa2V5OmkuZHJhZnRfa2V5LGRyYWZ0OmkuZHJhZnQsZHJhZnRfc2VxdWVuY2U6aS5kcmFmdF9zZXF1ZW5jZX0pKTooMCx1LmFqYXgpKCIvY2F0ZWdvcmllc19hbmRfIitzKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljX2xpc3QmJmUudG9waWNfbGlzdC50b3BfdGFncyYmbS5kZWZhdWx0LmN1cnJlbnRQcm9wKCJ0b3BfdGFncyIsZS50b3BpY19saXN0LnRvcF90YWdzKSxyLmRlZmF1bHQuY3JlYXRlKHtjYXRlZ29yaWVzOmEuZGVmYXVsdC5jYXRlZ29yaWVzRnJvbShvLnN0b3JlLGUpLHRvcGljczpsLmRlZmF1bHQudG9waWNzRnJvbShvLnN0b3JlLGUpLGNhbl9jcmVhdGVfY2F0ZWdvcnk6ZS5jYXRlZ29yeV9saXN0LmNhbl9jcmVhdGVfY2F0ZWdvcnksY2FuX2NyZWF0ZV90b3BpYzplLmNhdGVnb3J5X2xpc3QuY2FuX2NyZWF0ZV90b3BpYyxkcmFmdF9rZXk6ZS5jYXRlZ29yeV9saXN0LmRyYWZ0X2tleSxkcmFmdDplLmNhdGVnb3J5X2xpc3QuZHJhZnQsZHJhZnRfc2VxdWVuY2U6ZS5jYXRlZ29yeV9saXN0LmRyYWZ0X3NlcXVlbmNlfSl9KX0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7aWYoImNhdGVnb3JpZXMiIT09KDAsby5kZWZhdWx0SG9tZXBhZ2UpKCkpcmV0dXJuIEkxOG4udCgiZmlsdGVycy5jYXRlZ29yaWVzLnRpdGxlIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0KCJtb2RlbCIsdCksdGhpcy5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3JpZXMiKS5zZXRQcm9wZXJ0aWVzKHtzaG93Q2F0ZWdvcnlBZG1pbjp0LmdldCgiY2FuX2NyZWF0ZV9jYXRlZ29yeSIpLGNhbkNyZWF0ZVRvcGljOnQuZ2V0KCJjYW5fY3JlYXRlX3RvcGljIil9KX0sYWN0aW9uczp7dHJpZ2dlclJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX0sY3JlYXRlQ2F0ZWdvcnk6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnNpdGUuZ3JvdXBzLHQ9ZS5maW5kQnkoImlkIiwwKS5uYW1lLG49dGhpcy5zdG9yZS5jcmVhdGVSZWNvcmQoImNhdGVnb3J5Iix7Y29sb3I6IjAwODhDQyIsdGV4dF9jb2xvcjoiRkZGRkZGIixncm91cF9wZXJtaXNzaW9uczpbe2dyb3VwX25hbWU6dCxwZXJtaXNzaW9uX3R5cGU6MX1dLGF2YWlsYWJsZV9ncm91cHM6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZX0pLGFsbG93X2JhZGdlczohMCx0b3BpY19mZWF0dXJlZF9saW5rX2FsbG93ZWQ6ITAsY3VzdG9tX2ZpZWxkczp7fSxzZWFyY2hfcHJpb3JpdHk6ZC5zZWFyY2hQcmlvcml0aWVzLm5vcm1hbH0pOygwLGkuZGVmYXVsdCkoImVkaXQtY2F0ZWdvcnkiLHttb2RlbDpufSksdGhpcy5jb250cm9sbGVyRm9yKCJlZGl0LWNhdGVnb3J5Iikuc2V0KCJzZWxlY3RlZFRhYiIsImdlbmVyYWwiKX0scmVvcmRlckNhdGVnb3JpZXM6ZnVuY3Rpb24oKXsoMCxpLmRlZmF1bHQpKCJyZW9yZGVyQ2F0ZWdvcmllcyIpfSxjcmVhdGVUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKS5nZXQoIm1vZGVsIik7ZS5kcmFmdD90aGlzLm9wZW5Ub3BpY0RyYWZ0KGUpOnRoaXMub3BlbkNvbXBvc2VyKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L2NhdGVnb3JpZXMiKSl9LGRpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybigwLHQubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gZS5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsITApfSksITB9fX0pO2UuZGVmYXVsdD1mfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdmVyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL29wZW4tY29tcG9zZXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQobi5kZWZhdWx0LHtyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZGlyZWN0SWZMb2dpblJlcXVpcmVkKCl9LGJlZm9yZU1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0LG49cy5kZWZhdWx0LGk9ZS5pbnRlbnQudXJsOyIvIiE9PWkmJiIvbGF0ZXN0IiE9PWkmJiIvY2F0ZWdvcmllcyIhPT1pfHwtMSE9PWUudGFyZ2V0TmFtZS5pbmRleE9mKCJkaXNjb3ZlcnkudG9wIil8fCFuLmN1cnJlbnRQcm9wKCJzaG91bGRfYmVfcmVkaXJlY3RlZF90b190b3AiKXx8KG4uY3VycmVudFByb3AoInNob3VsZF9iZV9yZWRpcmVjdGVkX3RvX3RvcCIsITEpLHQ9bi5jdXJyZW50UHJvcCgicmVkaXJlY3RlZF90b190b3AucGVyaW9kIil8fCJhbGwiLHRoaXMucmVwbGFjZVdpdGgoImRpc2NvdmVyeS50b3AiK3QuY2FwaXRhbGl6ZSgpKSl9LGFjdGlvbnM6e2xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5zZXQoImxvYWRpbmciLCEwKSwhMH0sbG9hZGluZ0NvbXBsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5Iikuc2V0KCJsb2FkaW5nIiwhMSksdGhpcy5zZXNzaW9uLmdldCgidG9waWNMaXN0U2Nyb2xsUG9zaXRpb24iKXx8KDAsaS5zY3JvbGxUb3ApKCksITF9LGRpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJkaXNjb3ZlcnkiKS5fc2hvd0Zvb3RlcigpLHRoaXMuc2VuZCgibG9hZGluZ0NvbXBsZXRlIiksITF9LGNsZWFyUGluOmZ1bmN0aW9uKGUpe2UuY2xlYXJQaW4oKX0sY3JlYXRlVG9waWM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoImRpc2NvdmVyeS90b3BpY3MiKS5nZXQoIm1vZGVsIik7ZS5kcmFmdD90aGlzLm9wZW5Ub3BpY0RyYWZ0KGUpOnRoaXMub3BlbkNvbXBvc2VyKHRoaXMuY29udHJvbGxlckZvcigiZGlzY292ZXJ5L3RvcGljcyIpKX0sZGlzbWlzc1JlYWRUb3BpY3M6ZnVuY3Rpb24oZSl7dmFyIHQ9ZT8idG9waWNzIjoicG9zdHMiO3RoaXMuc2VuZCgiZGlzbWlzc1JlYWQiLHQpfSxkaXNtaXNzUmVhZDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNvbnRyb2xsZXJGb3IoImRpc2NvdmVyeS90b3BpY3MiKTt0LnNlbmQoImRpc21pc3NSZWFkIixlLHtpbmNsdWRlU3ViY2F0ZWdvcmllczohdC5ub1N1YmNhdGVnb3JpZXN9KX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZW1haWwtbG9naW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJsb2dpbi50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmFqYXgpKCIvc2Vzc2lvbi9lbWFpbC1sb2dpbi8iK2UudG9rZW4rIi5qc29uIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZXhjZXB0aW9uLXVua25vd24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdW5rbm93biJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidW5rbm93biIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2V4Y2VwdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiIifSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZmFxIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJmYXEiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9mb3Jnb3QtcGFzc3dvcmQiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCxuLGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9KDAsaS5kZWZhdWx0KSgicGFzc3dvcmQtcmVzZXQiKTtzLnJlb3Blbih7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuZ2V0KCJsb2dpblJlcXVpcmVkIik7dGhpcy5yZXBsYWNlV2l0aChlPyJsb2dpbiI6ImRpc2NvdmVyeS4iKygwLG4uZGVmYXVsdEhvbWVwYWdlKSgpKS50aGVuKGZ1bmN0aW9uKGUpeygwLHQubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gZS5zZW5kKCJzaG93Rm9yZ290UGFzc3dvcmQiKX0pfSl9fSksZS5kZWZhdWx0PXN9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZnVsbC1wYWdlLXNlYXJjaCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL3BhZ2UtdHJhY2tlciIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LHMsbyxyLGEsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cXVlcnlQYXJhbXM6e3E6e30sZXhwYW5kZWQ6ITEsY29udGV4dF9pZDp7fSxjb250ZXh0Ont9LHNraXBfY29udGV4dDp7fX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInNlYXJjaC5yZXN1bHRzX3BhZ2UiLHt0ZXJtOigwLG4uZXNjYXBlRXhwcmVzc2lvbikodGhpcy5jb250cm9sbGVyRm9yKCJmdWxsLXBhZ2Utc2VhcmNoIikuZ2V0KCJzZWFyY2hUZXJtIikpfSl9LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLGEuZ2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIpLG49e3E6ZS5xfTtlLmNvbnRleHRfaWQmJiFuLnNraXBfY29udGV4dCYmKG4uc2VhcmNoX2NvbnRleHQ9e3R5cGU6ZS5jb250ZXh0LGlkOmUuY29udGV4dF9pZH0pO3ZhciBpPSgwLG8uZ2V0U2VhcmNoS2V5KShuKTtyZXR1cm4gdCYmdC5kYXRhLnNlYXJjaEtleT09PWk/KCgwLGEuc2V0VHJhbnNpZW50KSgibGFzdFNlYXJjaCIse3NlYXJjaEtleTppLG1vZGVsOnQuZGF0YS5tb2RlbH0sNSksdC5kYXRhLm1vZGVsKTpyLmRlZmF1bHQuZ2V0QW5kUmVtb3ZlKCJzZWFyY2giLGZ1bmN0aW9uKCl7cmV0dXJuKDAsby5pc1ZhbGlkU2VhcmNoVGVybSkoZS5xKT8oMCxzLmFqYXgpKCIvc2VhcmNoIix7ZGF0YTpufSk6bnVsbH0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9ZT9lLmdyb3VwZWRfc2VhcmNoX3Jlc3VsdDp7fSxuPWUmJigwLG8udHJhbnNsYXRlUmVzdWx0cykoZSl8fHtncm91cGVkX3NlYXJjaF9yZXN1bHQ6dH07cmV0dXJuKDAsYS5zZXRUcmFuc2llbnQpKCJsYXN0U2VhcmNoIix7c2VhcmNoS2V5OmksbW9kZWw6bn0sNSksbn0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiZnVsbC1wYWdlLXNlYXJjaCIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLWFjdGl2aXR5LWluZGV4IixbImV4cG9ydHMiLCJAZW1iZXIvcm91dGluZy9yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsRm9yKCJncm91cCIpLmNhbl9zZWVfbWVtYmVycz90aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAuYWN0aXZpdHkucG9zdHMiKTp0aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAuYWN0aXZpdHkubWVudGlvbnMiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS1tZW50aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS1wb3N0cyJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5idWlsZEdyb3VwUGFnZSkoIm1lbnRpb25zIil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtYWN0aXZpdHktcG9zdHMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUscyx0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihpKXtyZXR1cm4gdC5kZWZhdWx0LmV4dGVuZCh7dHlwZTppLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMuIitpKX0sbW9kZWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxzLmdldCkodC50bywicXVlcnlQYXJhbXMuY2F0ZWdvcnlfaWQiKTtyZXR1cm4gdGhpcy5tb2RlbEZvcigiZ3JvdXAiKS5maW5kUG9zdHMoe3R5cGU6aSxjYXRlZ29yeUlkOm59KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5sZW5ndGg8MjA7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1hY3Rpdml0eS1wb3N0cyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsdHlwZTppLGNhbkxvYWRNb3JlOiFufSksdGhpcy5jb250cm9sbGVyRm9yKCJhcHBsaWNhdGlvbiIpLnNldCgic2hvd0Zvb3RlciIsbil9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoImdyb3VwLWFjdGl2aXR5LXBvc3RzIil9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4hMH19fSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYnVpbGRHcm91cFBhZ2U9bixlLmRlZmF1bHQ9bigicG9zdHMiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1hY3Rpdml0eS10b3BpY3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMudG9waWNzIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEZpbHRlcmVkKCJ0b3BpY0xpc3QiLHtmaWx0ZXI6InRvcGljcy9ncm91cHMvIit0aGlzLm1vZGVsRm9yKCJncm91cCIpLmdldCgibmFtZSIpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtaW5kZXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWVtYmVycy50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5tb2RlbEZvcigiZ3JvdXAiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsIm1lbWJlcnMiKSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsZmlsdGVySW5wdXQ6dGhpcy5fcGFyYW1zLmZpbHRlcn0pLGUuZmluZE1lbWJlcnMoITApfSxhY3Rpb25zOntzaG93QWRkTWVtYmVyc01vZGFsOmZ1bmN0aW9uKCl7KDAsbi5kZWZhdWx0KSgiZ3JvdXAtYWRkLW1lbWJlcnMiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJncm91cCIpfSl9LHNob3dCdWxrQWRkTW9kYWw6ZnVuY3Rpb24oKXsoMCxuLmRlZmF1bHQpKCJncm91cC1idWxrLWFkZCIse21vZGVsOnRoaXMubW9kZWxGb3IoImdyb3VwIil9KX0sZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImdyb3VwLWluZGV4Iikuc2V0KCJmaWx0ZXJJbnB1dCIsdGhpcy5fcGFyYW1zLmZpbHRlciksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1hbmFnZS1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsYmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25UbygiZ3JvdXAubWFuYWdlLnByb2ZpbGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tYW5hZ2UtaW50ZXJhY3Rpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLmludGVyYWN0aW9uLnRpdGxlIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLWxvZ3MiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiZ3JvdXBzLm1hbmFnZS5sb2dzLnRpdGxlIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIikuZmluZExvZ3MoKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1tYW5hZ2UtbG9ncyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnR9KX0sYWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXt0aGlzLmNvbnRyb2xsZXJGb3IoImdyb3VwLW1hbmFnZS1sb2dzIikucmVzZXQoKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLW1lbWJlcnNoaXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLm1lbWJlcnNoaXAudGl0bGUiKX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXtlLmdldCgiYXV0b21hdGljIikmJnRoaXMucmVwbGFjZVdpdGgoImdyb3VwLm1hbmFnZS5pbnRlcmFjdGlvbiIsZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWFuYWdlLXByb2ZpbGUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLnByb2ZpbGUudGl0bGUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tYW5hZ2UiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJncm91cHMubWFuYWdlLnRpdGxlIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50VXNlciYmKHRoaXMuY3VycmVudFVzZXIuYWRtaW4mJmUuZ2V0KCJhdXRvbWF0aWMiKXx8dGhpcy5jdXJyZW50VXNlci5jYW5NYW5hZ2VHcm91cChlKSl8fHRoaXMudHJhbnNpdGlvblRvKCJncm91cC5tZW1iZXJzIixlKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cC1tYW5hZ2UiKS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0fSksdGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsIm1hbmFnZSIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1lbWJlcnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvblRvKCJncm91cC5pbmRleCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLW1lc3NhZ2VzLWFyY2hpdmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtZ3JvdXAtbWVzc2FnZXMtcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImFyY2hpdmUiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tZXNzYWdlcy1pbmJveCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1ncm91cC1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiaW5ib3giKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cC1tZXNzYWdlcy1pbmRleCIsWyJleHBvcnRzIiwiQGVtYmVyL3JvdXRpbmcvcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2JlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwLm1lc3NhZ2VzLmluYm94Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXAtbWVzc2FnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiZ3JvdXBzLm1lc3NhZ2VzIil9LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoImdyb3VwIil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZS5nZXQoImlzX2dyb3VwX3VzZXIiKXx8dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbnx8dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwLm1lbWJlcnMiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2dyb3VwLXJlcXVlc3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImdyb3Vwcy5yZXF1ZXN0cy50aXRsZSIpfSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5tb2RlbEZvcigiZ3JvdXAiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJncm91cCIpLnNldCgic2hvd2luZyIsInJlcXVlc3RzIiksZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LGZpbHRlcklucHV0OnRoaXMuX3BhcmFtcy5maWx0ZXJ9KSxlLmZpbmRSZXF1ZXN0ZXJzKCEwKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9ncm91cCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3RpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5tb2RlbEZvcigiZ3JvdXAiKS5nZXQoIm5hbWUiKV19LG1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN0b3JlLmZpbmQoImdyb3VwIixlLm5hbWUpfSxzZXJpYWxpemU6ZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6ZS5nZXQoIm5hbWUiKS50b0xvd2VyQ2FzZSgpfX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXBzLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImdyb3Vwcy5pbmRleC50aXRsZSIpfSxxdWVyeVBhcmFtczp7b3JkZXI6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxhc2M6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxmaWx0ZXI6e3JlZnJlc2hNb2RlbDohMH0sdHlwZTp7cmVmcmVzaE1vZGVsOiEwLHJlcGxhY2U6ITB9LHVzZXJuYW1lOntyZWZyZXNoTW9kZWw6ITB9fSxtb2RlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcGFyYW1zPWUsdGhpcy5zdG9yZS5maW5kQWxsKCJncm91cCIsZSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxmaWx0ZXJJbnB1dDp0aGlzLl9wYXJhbXMuZmlsdGVyfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvZ3JvdXBzLW5ldyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2dyb3VwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImFkbWluLmdyb3Vwcy5uZXcudGl0bGUiKX0sbW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gbi5kZWZhdWx0LmNyZWF0ZSh7YXV0b21hdGljOiExLHZpc2liaWxpdHlfbGV2ZWw6MH0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50VXNlciYmdGhpcy5jdXJyZW50VXNlci5hZG1pbnx8dGhpcy50cmFuc2l0aW9uVG8oImdyb3VwcyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL2d1aWRlbGluZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc3RhdGljLXJvdXRlLWJ1aWxkZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImd1aWRlbGluZXMiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9pbnZpdGVzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwicHJlbG9hZC1zdG9yZSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgiaW52aXRlcy5hY2NlcHRfdGl0bGUiKX0sbW9kZWw6ZnVuY3Rpb24odCl7cmV0dXJuIG4uZGVmYXVsdC5nZXQoImludml0ZV9pbmZvIik/bi5kZWZhdWx0LmdldEFuZFJlbW92ZSgiaW52aXRlX2luZm8iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBfLm1lcmdlKHQsZSl9KTp7fX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9sb2dpbiIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz0oMCxuLmRlZmF1bHQpKCJsb2dpbiIpO3MucmVvcGVuKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkfHx0aGlzLnJlcGxhY2VXaXRoKCIvIisoMCxpLmRlZmF1bHRIb21lcGFnZSkoKSkudGhlbihmdW5jdGlvbihlKXsoMCx0Lm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd0xvZ2luIil9KX0pfX0pLGUuZGVmYXVsdD1zfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL25ldy1tZXNzYWdlIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy91c2VyIiwiZGlzY291cnNlL21vZGVscy9ncm91cCJdLGZ1bmN0aW9uKGUscyx0LG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oZSl7dmFyIG49ZS50by5xdWVyeVBhcmFtcyxpPW4uZ3JvdXBuYW1lfHxuLmdyb3VwX25hbWU7dGhpcy5jdXJyZW50VXNlcj90aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkubGF0ZXN0IikudGhlbihmdW5jdGlvbih0KXtuLnVzZXJuYW1lP28uZGVmYXVsdC5maW5kQnlVc2VybmFtZShlbmNvZGVVUklDb21wb25lbnQobi51c2VybmFtZSkpLnRoZW4oZnVuY3Rpb24oZSl7ZS5jYW5fc2VuZF9wcml2YXRlX21lc3NhZ2VfdG9fdXNlcj8oMCxzLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2VuZCgiY3JlYXRlTmV3TWVzc2FnZVZpYVBhcmFtcyIsZS51c2VybmFtZSxuLnRpdGxlLG4uYm9keSl9KTpib290Ym94LmFsZXJ0KEkxOG4udCgiY29tcG9zZXIuY2FudF9zZW5kX3BtIix7dXNlcm5hbWU6ZS51c2VybmFtZX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGJvb3Rib3guYWxlcnQoSTE4bi50KCJnZW5lcmljX2Vycm9yIikpfSk6aT9yLmRlZmF1bHQubWVzc2FnZWFibGUoaSkudGhlbihmdW5jdGlvbihlKXtlLm1lc3NhZ2VhYmxlPygwLHMubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gdC5zZW5kKCJjcmVhdGVOZXdNZXNzYWdlVmlhUGFyYW1zIixpLG4udGl0bGUsbi5ib2R5KX0pOmJvb3Rib3guYWxlcnQoSTE4bi50KCJjb21wb3Nlci5jYW50X3NlbmRfcG0iLHt1c2VybmFtZTppfSkpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gYm9vdGJveC5hbGVydChJMThuLnQoImdlbmVyaWNfZXJyb3IiKSl9KTp0LnNlbmQoImNyZWF0ZU5ld01lc3NhZ2VWaWFQYXJhbXMiLG51bGwsbi50aXRsZSxuLmJvZHkpfSk6KCQuY29va2llKCJkZXN0aW5hdGlvbl91cmwiLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0aGlzLnJlcGxhY2VXaXRoKCJsb2dpbiIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9uZXctdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5Il0sZnVuY3Rpb24oZSxpLHQsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24odCl7dmFyIG4sZSxpLHMsbyxyPXRoaXM7dGhpcy5jdXJyZW50VXNlcj8obj1pPXZvaWQgMCx0LnRvLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5X2lkPyhuPXQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnlfaWQsaT1hLmRlZmF1bHQuZmluZEJ5SWQobikpOnQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnkmJihlPXQudG8ucXVlcnlQYXJhbXMuY2F0ZWdvcnkuc3BsaXQoIi8iKSwoaT0oaT10aGlzLl9nZXRDYXRlZ29yeShlWzBdLGVbMV0sIm5hbWVMb3dlciIpKXx8dGhpcy5fZ2V0Q2F0ZWdvcnkoZVswXSxlWzFdLCJzbHVnIikpJiYobj1pLmlkKSksQm9vbGVhbihpKT8ocz0iZGlzY292ZXJ5LnBhcmVudENhdGVnb3J5IixvPXtjYXRlZ29yeTppLHNsdWc6aS5zbHVnfSxpLnBhcmVudENhdGVnb3J5JiYocz0iZGlzY292ZXJ5LmNhdGVnb3J5IixvPXtjYXRlZ29yeTppLHBhcmVudFNsdWc6aS5wYXJlbnRDYXRlZ29yeS5zbHVnLHNsdWc6aS5zbHVnfSksdGhpcy5yZXBsYWNlV2l0aChzLG8pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb250cm9sbGVyRm9yKCJuYXZpZ2F0aW9uL2NhdGVnb3J5IikuY2FuQ3JlYXRlVG9waWMmJnIuX3NlbmRUcmFuc2l0aW9uKGUsdCxuKX0pKTp0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkubGF0ZXN0IikudGhlbihmdW5jdGlvbihlKXtyLmNvbnRyb2xsZXJGb3IoIm5hdmlnYXRpb24vZGVmYXVsdCIpLmNhbkNyZWF0ZVRvcGljJiZyLl9zZW5kVHJhbnNpdGlvbihlLHQpfSkpOigkLmNvb2tpZSgiZGVzdGluYXRpb25fdXJsIix3aW5kb3cubG9jYXRpb24uaHJlZiksdGhpcy5yZXBsYWNlV2l0aCgibG9naW4iKSl9LF9zZW5kVHJhbnNpdGlvbjpmdW5jdGlvbihlLHQsbil7KDAsaS5uZXh0KShmdW5jdGlvbigpe2Uuc2VuZCgiY3JlYXRlTmV3VG9waWNWaWFQYXJhbXMiLHQudG8ucXVlcnlQYXJhbXMudGl0bGUsdC50by5xdWVyeVBhcmFtcy5ib2R5LG4sdC50by5xdWVyeVBhcmFtcy50YWdzKX0pfSxfZ2V0Q2F0ZWdvcnk6ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLHMsbz12b2lkIDA7cmV0dXJuIHQ/KGk9dGhpcy5zaXRlLmNhdGVnb3JpZXMsKHM9aS5maW5kQnkobixlLnRvTG93ZXJDYXNlKCkpKSYmKG89aS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlW25dPT09dC50b0xvd2VyQ2FzZSgpJiZlLnBhcmVudF9jYXRlZ29yeV9pZD09PXMuaWR9KSkpOm89dGhpcy5zaXRlLmNhdGVnb3JpZXMuZmluZEJ5KG4sZS50b0xvd2VyQ2FzZSgpKSxvfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3Bhc3N3b3JkLXJlc2V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsInByZWxvYWQtc3RvcmUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImxvZ2luLnJlc2V0X3Bhc3N3b3JkIil9LG1vZGVsOmZ1bmN0aW9uKHQpe2lmKG4uZGVmYXVsdC5nZXQoInBhc3N3b3JkX3Jlc2V0IikpcmV0dXJuIG4uZGVmYXVsdC5nZXRBbmRSZW1vdmUoInBhc3N3b3JkX3Jlc2V0IikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gXy5tZXJnZSh0LGUpfSl9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oMCxpLmFqYXgpKHt1cmw6KDAscy51c2VyUGF0aCkoImNvbmZpcm0tZW1haWwtdG9rZW4vIitlLnRva2VuKyIuanNvbiIpLGRhdGFUeXBlOiJqc29uIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3Bvc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe2JlZm9yZU1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLnBhcmFtcztyZXR1cm4oMCxpLmFqYXgpKCIvcC8iK24ucG9zdC5pZCkudGhlbihmdW5jdGlvbihlKXt0LnRyYW5zaXRpb25UbygidG9waWMuZnJvbVBhcmFtc05lYXIiLGUuc2x1ZyxlLmlkLGUuY3VycmVudF9wb3N0X251bWJlcil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1hY2NvdW50IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbEZvcigidXNlciIpO3JldHVybiB0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfYmFkZ2VzP24uZGVmYXVsdC5maW5kQnlVc2VybmFtZSh0LmdldCgidXNlcm5hbWUiKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoImJhZGdlcyIsZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYmFkZ2V9KSksdH0pOnR9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2UucmVzZXQoKSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsbmV3TmFtZUlucHV0OnQuZ2V0KCJuYW1lIiksbmV3VGl0bGVJbnB1dDp0LmdldCgidGl0bGUiKSxuZXdQcmltYXJ5R3JvdXBJbnB1dDp0LmdldCgicHJpbWFyeV9ncm91cF9pZCIpfSl9LGFjdGlvbnM6e3Nob3dBdmF0YXJTZWxlY3RvcjpmdW5jdGlvbihlKXt0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJzaG93LWF2YXRhci1zZWxlY3QiLGUpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1hcHBzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWNhdGVnb3JpZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcHJlZmVyZW5jZXMtZW1haWwiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcih7aW50bzoidXNlciJ9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5yZXNldCgpLGUuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxuZXdFbWFpbDp0LmdldCgiZW1haWwiKX0pfSxkZWFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyKCJwcmVmZXJlbmNlcyIse2ludG86InVzZXIiLGNvbnRyb2xsZXI6InByZWZlcmVuY2VzIn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWVtYWlscyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAscmVkaXJlY3Q6ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25UbygicHJlZmVyZW5jZXMuYWNjb3VudCIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLWludGVyZmFjZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiLCJkaXNjb3Vyc2UvbGliL3RoZW1lLXNlbGVjdG9yIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHRleHRTaXplOnQuZ2V0KCJjdXJyZW50VGV4dFNpemUiKSx0aGVtZUlkOigwLG4uY3VycmVudFRoZW1lSWQpKCksbWFrZVRoZW1lRGVmYXVsdDohdC5nZXQoInVzZXJfb3B0aW9uLnRoZW1lX2lkcyIpfHwoMCxuLmN1cnJlbnRUaGVtZUlkKSgpPT09dC5nZXQoInVzZXJfb3B0aW9uLnRoZW1lX2lkcyIpWzBdLG1ha2VUZXh0U2l6ZURlZmF1bHQ6dC5nZXQoImN1cnJlbnRUZXh0U2l6ZSIpPT09dC5nZXQoInVzZXJfb3B0aW9uLnRleHRfc2l6ZSIpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcHJlZmVyZW5jZXMtbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy1wcm9maWxlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciIsIkBlbWJlci9vYmplY3QiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0LnVzZXJfb3B0aW9uLnRpbWV6b25lfHwoMCxuLnNldCkodCwidXNlcl9vcHRpb24udGltZXpvbmUiLG1vbWVudC50ei5ndWVzcygpKSxlLnNldCgibW9kZWwiLHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLXNlY29uZC1mYWN0b3IiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvcmVzdHJpY3RlZC11c2VyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXIoe2ludG86InVzZXIifSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbih0LGUpe3Quc2V0UHJvcGVydGllcyh7bW9kZWw6ZSxuZXdVc2VybmFtZTplLmdldCgidXNlcm5hbWUiKX0pLHQuc2V0KCJsb2FkaW5nIiwhMCksZS5sb2FkU2Vjb25kRmFjdG9yQ29kZXMoIiIpLnRoZW4oZnVuY3Rpb24oZSl7ZS5lcnJvcj90LnNldCgiZXJyb3JNZXNzYWdlIixlLmVycm9yKTp0LnNldFByb3BlcnRpZXMoe2Vycm9yTWVzc2FnZTpudWxsLGxvYWRlZDohZS5wYXNzd29yZF9yZXF1aXJlZCxkaXJ0eTohIWUucGFzc3dvcmRfcmVxdWlyZWQsdG90cHM6ZS50b3RwcyxzZWN1cml0eV9rZXlzOmUuc2VjdXJpdHlfa2V5c30pfSkuY2F0Y2godC5wb3B1cEFqYXhFcnJvcikuZmluYWxseShmdW5jdGlvbigpe3JldHVybiB0LnNldCgibG9hZGluZyIsITEpfSl9LGFjdGlvbnM6e3dpbGxUcmFuc2l0aW9uOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgdD10aGlzLmNvbnRyb2xsZXJGb3IoInByZWZlcmVuY2VzL3NlY29uZC1mYWN0b3IiKSxuPXQuZ2V0KCJjdXJyZW50VXNlciIpLGk9dC5nZXQoInNpdGVTZXR0aW5ncyIpO3JldHVybiEoInByZWZlcmVuY2VzLnNlY29uZC1mYWN0b3IiIT09ZS50YXJnZXROYW1lJiZuJiYhbi5pc19hbm9ueW1vdXMmJiFuLnNlY29uZF9mYWN0b3JfZW5hYmxlZCYmKCJzdGFmZiIhPT1pLmVuZm9yY2Vfc2Vjb25kX2ZhY3Rvcnx8bi5zdGFmZikmJiJubyIhPT1pLmVuZm9yY2Vfc2Vjb25kX2ZhY3Rvcil8fChlLmFib3J0KCksITEpfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy10YWdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3ByZWZlcmVuY2VzLXVzZXJuYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3Jlc3RyaWN0ZWQtdXNlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIil9LHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyKHtpbnRvOiJ1c2VyIn0pfSxkZWFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMucmVuZGVyKCJwcmVmZXJlbmNlcyIse2ludG86InVzZXIiLGNvbnRyb2xsZXI6InByZWZlcmVuY2VzIn0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsbmV3VXNlcm5hbWU6dC5nZXQoInVzZXJuYW1lIil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcy11c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITB9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcmVmZXJlbmNlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9yZXN0cmljdGVkLXVzZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxGb3IoInVzZXIiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy9wcml2YWN5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJwcml2YWN5Iil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgicmV2aWV3YWJsZSIsZSl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXQucmVzdWx0U2V0TWV0YTt2b2lkIDAhPT1uLnJldmlld2FibGVfY291bnQmJnRoaXMuY3VycmVudFVzZXIuc2V0KCJyZXZpZXdhYmxlX2NvdW50IixuLnJldmlld2FibGVfY291bnQpLGUuc2V0UHJvcGVydGllcyh7cmV2aWV3YWJsZXM6dCx0eXBlOm4udHlwZSxmaWx0ZXJUeXBlOm4udHlwZSxmaWx0ZXJTdGF0dXM6bi5zdGF0dXMsZmlsdGVyVG9waWM6bi50b3BpY19pZCxmaWx0ZXJDYXRlZ29yeUlkOm4uY2F0ZWdvcnlfaWQsZmlsdGVyUHJpb3JpdHk6bi5wcmlvcml0eSxyZXZpZXdhYmxlVHlwZXM6bi5yZXZpZXdhYmxlX3R5cGVzLGZpbHRlclVzZXJuYW1lOm4udXNlcm5hbWUsZmlsdGVyRnJvbURhdGU6bi5mcm9tX2RhdGUsZmlsdGVyVG9EYXRlOm4udG9fZGF0ZSxmaWx0ZXJTb3J0T3JkZXI6bi5zb3J0X29yZGVyLGFkZGl0aW9uYWxGaWx0ZXJzOm4uYWRkaXRpb25hbF9maWx0ZXJzfHx7fX0pfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL3Jldmlld2FibGVfY2xhaW1lZCIsZnVuY3Rpb24odCl7dmFyIG4sZT1pLmNvbnRyb2xsZXIucmV2aWV3YWJsZXM7ZSYmKG49dC51c2VyP2kuc3RvcmUuY3JlYXRlUmVjb3JkKCJ1c2VyIix0LnVzZXIpOm51bGwsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QudG9waWNfaWQ9PT1lLnRvcGljLmlkJiZlLnNldCgiY2xhaW1lZF9ieSIsbil9KSl9KX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3Jldmlld2FibGVfY2xhaW1lZCIpfSxhY3Rpb25zOntyZWZyZXNoUm91dGU6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXNldHRpbmdzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9yZS5maW5kKCJyZXZpZXdhYmxlLXNldHRpbmdzIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe2Uuc2V0KCJzZXR0aW5ncyIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgicmV2aWV3YWJsZSIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3LXRvcGljcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgicmV2aWV3YWJsZS10b3BpYyIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgicmV2aWV3YWJsZVRvcGljcyIsdCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvcmV2aWV3IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInJldmlldy50aXRsZSIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3J1bGVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3N0YXRpYy1yb3V0ZS1idWlsZGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJydWxlcyIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3NpZ251cCIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXN0YXRpYy1yb3V0ZSJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPSgwLHQuZGVmYXVsdCkoInNpZ251cCIpO2kucmVvcGVuKHtiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5nZXQoImNhblNpZ25VcCIpO3RoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkP3RoaXMucmVwbGFjZVdpdGgoImxvZ2luIikudGhlbihmdW5jdGlvbihlKXt0JiYoMCxuLm5leHQpKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VuZCgic2hvd0NyZWF0ZUFjY291bnQiKX0pfSk6dGhpcy5yZXBsYWNlV2l0aCgiZGlzY292ZXJ5LmxhdGVzdCIpLnRoZW4oZnVuY3Rpb24oZSl7dCYmKDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiBlLnNlbmQoInNob3dDcmVhdGVBY2NvdW50Iil9KX0pfX0pLGUuZGVmYXVsdD1pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMtZWRpdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsbW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgidGFnR3JvdXAiLGUuaWQpfSxhZnRlck1vZGVsOmZ1bmN0aW9uKGUpe2Uuc2V0KCJzYXZpbmdTdGF0dXMiLG51bGwpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMtbmV3IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7c2hvd0Zvb3RlcjohMCxiZWZvcmVNb2RlbDpmdW5jdGlvbigpe3RoaXMuc2l0ZVNldHRpbmdzLnRhZ2dpbmdfZW5hYmxlZHx8dGhpcy50cmFuc2l0aW9uVG8oInRhZ0dyb3VwcyIpfSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnR3JvdXAiLHtuYW1lOkkxOG4udCgidGFnZ2luZy5ncm91cHMubmV3X25hbWUiKX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RhZy1ncm91cHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzaG93Rm9vdGVyOiEwLG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcmUuZmluZEFsbCgidGFnR3JvdXAiKX0sdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInRhZ2dpbmcuZ3JvdXBzLnRpdGxlIil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3RhZyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHttb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRBbGwoInRhZyIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXh0cmFzJiYoZS5leHRyYXMuY2F0ZWdvcmllcyYmZS5leHRyYXMuY2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UudGFncz1lLnRhZ3MubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZmF1bHQuY3JlYXRlKGUpfSl9KSxlLmV4dHJhcy50YWdfZ3JvdXBzJiZlLmV4dHJhcy50YWdfZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS50YWdzPWUudGFncy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmYXVsdC5jcmVhdGUoZSl9KX0pKSxlfSl9LHRpdGxlVG9rZW46ZnVuY3Rpb24oKXtyZXR1cm4gSTE4bi50KCJ0YWdnaW5nLnRhZ3MiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLmluZGV4Iikuc2V0UHJvcGVydGllcyh7bW9kZWw6dCxzb3J0UHJvcGVydGllczp0aGlzLnNpdGVTZXR0aW5ncy50YWdzX3NvcnRfYWxwaGFiZXRpY2FsbHk/WyJpZCJdOlsidG90YWxDb3VudDpkZXNjIiwiaWQiXX0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH0sc2hvd1RhZ0dyb3VwczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zaXRpb25UbygidGFnR3JvdXBzIiksITB9LHJlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2goKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1pbnRlcnNlY3Rpb24iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdGFncy1zaG93Il0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy90YWdzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy9jb21wb3NlciIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtdG9waWMtcm91dGUiLCJkaXNjb3Vyc2UvY29udHJvbGxlcnMvZGlzY292ZXJ5LXNvcnRhYmxlIiwiZGlzY291cnNlL21vZGVscy9wZXJtaXNzaW9uLXR5cGUiLCJkaXNjb3Vyc2UvbW9kZWxzL2NhdGVnb3J5IiwiZGlzY291cnNlL21peGlucy9maWx0ZXItbW9kZSJdLGZ1bmN0aW9uKGUsdCxuLGksdSxzLGMsZCxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCx7bmF2TW9kZToibGF0ZXN0IixxdWVyeVBhcmFtczpzLnF1ZXJ5UGFyYW1zLHJlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTt0aGlzLnJlbmRlcigidGFncy5zaG93Iix7Y29udHJvbGxlcjplfSl9LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnIix7aWQ6SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUudGFnX2lkKX0pO3JldHVybiBlLmFkZGl0aW9uYWxfdGFncz90aGlzLnNldCgiYWRkaXRpb25hbFRhZ3MiLGUuYWRkaXRpb25hbF90YWdzLnNwbGl0KCIvIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0b3JlLmNyZWF0ZVJlY29yZCgidGFnIix7aWQ6SGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUpfSkuaWR9KSk6dGhpcy5zZXQoImFkZGl0aW9uYWxUYWdzIixudWxsKSx0aGlzLnNldCgiZmlsdGVyVHlwZSIsdGhpcy5uYXZNb2RlLnNwbGl0KCIvIilbMF0pLHRoaXMuc2V0KCJjYXRlZ29yeVNsdWdQYXRoV2l0aElEIixlLmNhdGVnb3J5X3NsdWdfcGF0aF93aXRoX2lkKSxuJiYibm9uZSIhPT1uLmdldCgiaWQiKSYmdGhpcy5jdXJyZW50VXNlcj90aGlzLnN0b3JlLmZpbmQoInRhZ05vdGlmaWNhdGlvbiIsbi5nZXQoImlkIikudG9Mb3dlckNhc2UoKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXQoInRhZ05vdGlmaWNhdGlvbiIsZSksbn0pOm59LGFmdGVyTW9kZWw6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLGk9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTtpLnNldFByb3BlcnRpZXMoe2xvYWRpbmc6ITAsc2hvd0luZm86ITF9KTt2YXIgcz0oMCx1LmZpbHRlclF1ZXJ5UGFyYW1zKShlLnRvLnF1ZXJ5UGFyYW1zLHt9KSxvPXRoaXMuY2F0ZWdvcnlTbHVnUGF0aFdpdGhJRD9kLmRlZmF1bHQuZmluZEJ5U2x1Z1BhdGhXaXRoSUQodGhpcy5jYXRlZ29yeVNsdWdQYXRoV2l0aElEKTpudWxsLHI9dGhpcy5uYXZNb2RlLGE9dD90LmlkLnRvTG93ZXJDYXNlKCk6Im5vbmUiLGw9dm9pZCAwO3JldHVybiBvPyhvLnNldHVwR3JvdXBzQW5kUGVybWlzc2lvbnMoKSx0aGlzLnNldCgiY2F0ZWdvcnkiLG8pLGw9InRhZ3MvYy8iK2QuZGVmYXVsdC5zbHVnRm9yKG8pKyIvIitvLmlkLHRoaXMubm9TdWJjYXRlZ29yaWVzJiYobCs9Ii9ub25lIiksbCs9Ii8iK2ErIi9sLyIrcik6bD10aGlzLmFkZGl0aW9uYWxUYWdzPyh0aGlzLnNldCgiY2F0ZWdvcnkiLG51bGwpLCJ0YWdzL2ludGVyc2VjdGlvbi8iK2ErIi8iK3RoaXMuYWRkaXRpb25hbFRhZ3Muam9pbigiLyIpKToodGhpcy5zZXQoImNhdGVnb3J5IixudWxsKSwidGFnLyIrYSsiL2wvIityKSwoMCx1LmZpbmRUb3BpY0xpc3QpKHRoaXMuc3RvcmUsdGhpcy50b3BpY1RyYWNraW5nU3RhdGUsbCxzLHtjYWNoZWQ6ITB9KS50aGVuKGZ1bmN0aW9uKGUpe2UudG9waWNfbGlzdC50YWdzJiYxPT09ZS50b3BpY19saXN0LnRhZ3MubGVuZ3RoJiZ0LnNldFByb3BlcnRpZXMoe2lkOmUudG9waWNfbGlzdC50YWdzWzBdLm5hbWUsc3RhZmY6ZS50b3BpY19saXN0LnRhZ3NbMF0uc3RhZmZ9KSxpLnNldFByb3BlcnRpZXMoe2xpc3Q6ZSxjYW5DcmVhdGVUb3BpYzplLmdldCgiY2FuX2NyZWF0ZV90b3BpYyIpLGxvYWRpbmc6ITEsY2FuQ3JlYXRlVG9waWNPbkNhdGVnb3J5Om4uZ2V0KCJjYXRlZ29yeS5wZXJtaXNzaW9uIik9PT1jLmRlZmF1bHQuRlVMTCxjYW5DcmVhdGVUb3BpY09uVGFnOiF0LmdldCgic3RhZmYiKXx8bi5nZXQoImN1cnJlbnRVc2VyLnN0YWZmIil9KX0pfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9STE4bi50KCJmaWx0ZXJzLiIrdGhpcy5uYXZNb2RlLnJlcGxhY2UoIi8iLCIuIikrIi50aXRsZSIpLHQ9dGhpcy5jb250cm9sbGVyRm9yKCJ0YWdzLnNob3ciKTtyZXR1cm4gdC5nZXQoIm1vZGVsLmlkIik/dGhpcy5jYXRlZ29yeT9JMThuLnQoInRhZ2dpbmcuZmlsdGVycy53aXRoX2NhdGVnb3J5Iix7ZmlsdGVyOmUsdGFnOnQuZ2V0KCJtb2RlbC5pZCIpLGNhdGVnb3J5OnRoaXMuZ2V0KCJjYXRlZ29yeS5uYW1lIil9KTpJMThuLnQoInRhZ2dpbmcuZmlsdGVycy53aXRob3V0X2NhdGVnb3J5Iix7ZmlsdGVyOmUsdGFnOnQuZ2V0KCJtb2RlbC5pZCIpfSk6dGhpcy5jYXRlZ29yeT9JMThuLnQoInRhZ2dpbmcuZmlsdGVycy51bnRhZ2dlZF93aXRoX2NhdGVnb3J5Iix7ZmlsdGVyOmUsY2F0ZWdvcnk6dGhpcy5nZXQoImNhdGVnb3J5Lm5hbWUiKX0pOkkxOG4udCgidGFnZ2luZy5maWx0ZXJzLnVudGFnZ2VkX3dpdGhvdXRfY2F0ZWdvcnkiLHtmaWx0ZXI6ZX0pfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpLnNldFByb3BlcnRpZXMoe21vZGVsOnQsdGFnOnQsYWRkaXRpb25hbFRhZ3M6dGhpcy5hZGRpdGlvbmFsVGFncyxjYXRlZ29yeTp0aGlzLmNhdGVnb3J5LGZpbHRlclR5cGU6dGhpcy5maWx0ZXJUeXBlLG5hdk1vZGU6dGhpcy5uYXZNb2RlLHRhZ05vdGlmaWNhdGlvbjp0aGlzLnRhZ05vdGlmaWNhdGlvbixub1N1YmNhdGVnb3JpZXM6dGhpcy5ub1N1YmNhdGVnb3JpZXN9KSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0Iix0LmdldCgic2VhcmNoQ29udGV4dCIpKX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX0sYWN0aW9uczp7aW52YWxpZGF0ZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LHJlbmFtZVRhZzpmdW5jdGlvbihlKXsoMCxpLmRlZmF1bHQpKCJyZW5hbWUtdGFnIix7bW9kZWw6ZX0pfSxjcmVhdGVUb3BpYzpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpO3QuZ2V0KCJsaXN0LmRyYWZ0Iik/dGhpcy5vcGVuVG9waWNEcmFmdCh0LmdldCgibGlzdCIpKTp0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikub3Blbih7Y2F0ZWdvcnlJZDp0LmdldCgiY2F0ZWdvcnkuaWQiKSxhY3Rpb246bi5kZWZhdWx0LkNSRUFURV9UT1BJQyxkcmFmdEtleTp0LmdldCgibGlzdC5kcmFmdF9rZXkiKSxkcmFmdFNlcXVlbmNlOnQuZ2V0KCJsaXN0LmRyYWZ0X3NlcXVlbmNlIil9KS50aGVuKGZ1bmN0aW9uKCl7dC5nZXQoIm1vZGVsLmlkIikmJmUuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5nZXQoIm1vZGVsIikuc2V0KCJ0YWdzIixfLmNvbXBhY3QoXy5mbGF0dGVuKFt0LmdldCgibW9kZWwuaWQiKSx0LmdldCgiYWRkaXRpb25hbFRhZ3MiKV0pKSl9KX0sZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoInRhZ3Muc2hvdyIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWJ5LXNsdWctb3ItaWQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL21vZGVscy90b3BpYyIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2x1Z09ySWQubWF0Y2gobi5JRF9DT05TVFJBSU5UKT97dXJsOiIvdC90b3BpYy8iK2Uuc2x1Z09ySWR9Om4uZGVmYXVsdC5pZEZvclNsdWcoZS5zbHVnT3JJZCl9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7aS5kZWZhdWx0LnJvdXRlVG8oZS51cmwse3JlcGxhY2VVUkw6ITB9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy90b3BpYy1mcm9tLXBhcmFtcy1uZWFyIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3RvcGljLWZyb20tcGFyYW1zIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHR9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdG9waWMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS9yb3V0ZXMvZGlzY291cnNlIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbW9kZWxzL3RvcGljIiwicnN2cCIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCJdLGZ1bmN0aW9uKGUsbyxyLGksdCxzLGEsbixsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1PSExLGM9bnVsbCxkPW51bGwscD10LmRlZmF1bHQuZXh0ZW5kKHtyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZGlyZWN0SWZMb2dpblJlcXVpcmVkKCl9LHF1ZXJ5UGFyYW1zOntmaWx0ZXI6e3JlcGxhY2U6ITB9LHVzZXJuYW1lX2ZpbHRlcnM6e3JlcGxhY2U6ITB9fSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidG9waWMiKTtpZihlKXt2YXIgdD1lLmdldCgidW5pY29kZV90aXRsZSIpfHxlLmdldCgidGl0bGUiKSxuPWUuZ2V0KCJjYXRlZ29yeSIpO2lmKCF0aGlzLnNpdGVTZXR0aW5ncy50b3BpY19wYWdlX3RpdGxlX2luY2x1ZGVzX2NhdGVnb3J5fHwhbnx8bi5nZXQoImlzVW5jYXRlZ29yaXplZENhdGVnb3J5IikmJiJ1bmNhdGVnb3JpemVkIj09PW4uZ2V0KCJuYW1lIikudG9Mb3dlckNhc2UoKSlyZXR1cm4gdDt2YXIgaT1uLmdldCgibmFtZSIpLHM9bi5nZXQoInBhcmVudENhdGVnb3J5Iik7cmV0dXJuIHMmJihpPXMuZ2V0KCJuYW1lIikrIiAvICIraSksW3QsaV19fSxhY3Rpb25zOntzaG93SW52aXRlOmZ1bmN0aW9uKCl7dmFyIGU9dm9pZCAwLGU9dGhpcy5pc1BNPyJ0b3BpYy5pbnZpdGVfcHJpdmF0ZS50aXRsZSI6dGhpcy5pbnZpdGluZ1RvVG9waWM/InRvcGljLmludml0ZV9yZXBseS50aXRsZSI6InVzZXIuaW52aXRlZC5jcmVhdGUiOygwLGwuZGVmYXVsdCkoInNoYXJlLWFuZC1pbnZpdGUiLHttb2RhbENsYXNzOiJzaGFyZS1hbmQtaW52aXRlIixwYW5lbHM6W3tpZDoiaW52aXRlIix0aXRsZTplLG1vZGVsOntpbnZpdGVNb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpfX1dfSl9LHNob3dGbGFnczpmdW5jdGlvbihlKXsoMCxsLmRlZmF1bHQpKCJmbGFnIix7bW9kZWw6ZX0pLnNldFByb3BlcnRpZXMoe2ZsYWdUb3BpYzohMX0pfSxzaG93RmxhZ1RvcGljOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidG9waWMiKTsoMCxsLmRlZmF1bHQpKCJmbGFnIix7bW9kZWw6ZX0pLnNldFByb3BlcnRpZXMoe2ZsYWdUb3BpYzohMH0pfSxzaG93VG9waWNTdGF0dXNVcGRhdGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ0b3BpYyIpO2UuZ2V0KCJ0b3BpY190aW1lciIpfHxlLnNldCgidG9waWNfdGltZXIiLHt9KSxlLmdldCgicHJpdmF0ZV90b3BpY190aW1lciIpfHxlLnNldCgicHJpdmF0ZV90b3BpY190aW1lciIse30pLCgwLGwuZGVmYXVsdCkoImVkaXQtdG9waWMtdGltZXIiLHttb2RlbDplfSksdGhpcy5jb250cm9sbGVyRm9yKCJtb2RhbCIpLnNldCgibW9kYWxDbGFzcyIsImVkaXQtdG9waWMtdGltZXItbW9kYWwiKX0sc2hvd0NoYW5nZVRpbWVzdGFtcDpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImNoYW5nZS10aW1lc3RhbXAiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJ0b3BpYy5jaGFuZ2VfdGltZXN0YW1wLnRpdGxlIn0pfSxzaG93RmVhdHVyZVRvcGljOmZ1bmN0aW9uKCl7KDAsbC5kZWZhdWx0KSgiZmVhdHVyZVRvcGljIix7bW9kZWw6dGhpcy5tb2RlbEZvcigidG9waWMiKSx0aXRsZToidG9waWMuZmVhdHVyZV90b3BpYy50aXRsZSJ9KSx0aGlzLmNvbnRyb2xsZXJGb3IoIm1vZGFsIikuc2V0KCJtb2RhbENsYXNzIiwiZmVhdHVyZS10b3BpYy1tb2RhbCIpLHRoaXMuY29udHJvbGxlckZvcigiZmVhdHVyZV90b3BpYyIpLnJlc2V0KCl9LHNob3dIaXN0b3J5OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsbC5kZWZhdWx0KSgiaGlzdG9yeSIse21vZGVsOmUsbW9kYWxDbGFzczoiaGlzdG9yeS1tb2RhbCJ9KTtuLnJlZnJlc2goZS5nZXQoImlkIiksdHx8ImxhdGVzdCIpLG4uc2V0KCJwb3N0IixlKSxuLnNldCgidG9waWNDb250cm9sbGVyIix0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikpfSxzaG93R3JhbnRCYWRnZU1vZGFsOmZ1bmN0aW9uKCl7KDAsbC5kZWZhdWx0KSgiZ3JhbnQtYmFkZ2UiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJhZG1pbi5iYWRnZXMuZ3JhbnRfYmFkZ2UifSl9LHNob3dSYXdFbWFpbDpmdW5jdGlvbihlKXsoMCxsLmRlZmF1bHQpKCJyYXctZW1haWwiLHttb2RlbDplfSksdGhpcy5jb250cm9sbGVyRm9yKCJyYXdfZW1haWwiKS5sb2FkUmF3RW1haWwoZS5nZXQoImlkIikpfSxtb3ZlVG9Ub3BpYzpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoIm1vdmUtdG8tdG9waWMiLHttb2RlbDp0aGlzLm1vZGVsRm9yKCJ0b3BpYyIpLHRpdGxlOiJ0b3BpYy5tb3ZlX3RvLnRpdGxlIn0pfSxjaGFuZ2VPd25lcjpmdW5jdGlvbigpeygwLGwuZGVmYXVsdCkoImNoYW5nZS1vd25lciIse21vZGVsOnRoaXMubW9kZWxGb3IoInRvcGljIiksdGl0bGU6InRvcGljLmNoYW5nZV9vd25lci50aXRsZSJ9KX0scG9zdENoYW5nZWRSb3V0ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3V8fHAuZGlzYWJsZVJlcGxhY2VTdGF0ZXx8KHQ9dGhpcy5tb2RlbEZvcigidG9waWMiKSkmJmUmJihuPXQuZ2V0KCJ1cmwiKSwxPGUmJihuKz0iLyIrZSksKDAsaS5jYW5jZWwpKGMpLGQ9cGFyc2VJbnQoJChkb2N1bWVudCkuc2Nyb2xsVG9wKCksMTApLGM9KDAsaS5sYXRlcikodGhpcywiX3JlcGxhY2VVbmxlc3NTY3JvbGxpbmciLG4sRW1iZXIuVGVzdD8wOjUwMCkpfSxkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidG9waWMiKS5fc2hvd0Zvb3RlcigpLCEwfSx3aWxsVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksKDAsaS5jYW5jZWwpKGMpLHU9ITB9fSxfcmVwbGFjZVVubGVzc1Njcm9sbGluZzpmdW5jdGlvbihlKXt2YXIgdD1wYXJzZUludCgkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSwxMCk7dCE9PWQ/KGQ9dCxjPSgwLGkubGF0ZXIpKHRoaXMsIl9yZXBsYWNlVW5sZXNzU2Nyb2xsaW5nIixlLDUwMCkpOnMuZGVmYXVsdC5yZXBsYWNlU3RhdGUoZSl9LHNldHVwUGFyYW1zOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInBvc3RTdHJlYW0iKTtuLnNldCgic3VtbWFyeSIsInN1bW1hcnkiPT09KDAsby5nZXQpKHQsImZpbHRlciIpKTt2YXIgaT0oMCxvLmdldCkodCwidXNlcm5hbWVfZmlsdGVycyIpLHM9bi5nZXQoInVzZXJGaWx0ZXJzIik7cmV0dXJuIHMuY2xlYXIoKSwoMCxyLmlzRW1wdHkpKGkpfHwidW5kZWZpbmVkIj09PWl8fHMuYWRkT2JqZWN0cyhpLnNwbGl0KCIsIikpLGV9LG1vZGVsOmZ1bmN0aW9uKGUsdCl7aWYoZS5zbHVnLm1hdGNoKGEuSURfQ09OU1RSQUlOVCkpcmV0dXJuIHQuYWJvcnQoKSx2b2lkIHMuZGVmYXVsdC5yb3V0ZVRvKCIvdC90b3BpYy8iK2Uuc2x1ZysiLyIrZS5pZCx7cmVwbGFjZVVSTDohMH0pO3ZhciBuPXQudG8ucXVlcnlQYXJhbXMsaT10aGlzLm1vZGVsRm9yKCJ0b3BpYyIpO3JldHVybiBpJiZpLmdldCgiaWQiKT09PXBhcnNlSW50KGUuaWQsMTApPyh0aGlzLnNldHVwUGFyYW1zKGksbiksaSk6KGk9dGhpcy5zdG9yZS5jcmVhdGVSZWNvcmQoInRvcGljIixfLm9taXQoZSwidXNlcm5hbWVfZmlsdGVycyIsImZpbHRlciIpKSx0aGlzLnNldHVwUGFyYW1zKGksbikpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx1PSExO3ZhciBlPXRoaXMubW9kZWxGb3IoInRvcGljIik7dGhpcy5zZXNzaW9uLnNldCgibGFzdFRvcGljSWRWaWV3ZWQiLHBhcnNlSW50KGUuZ2V0KCJpZCIpLDEwKSl9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgic2VhcmNoQ29udGV4dCIsbnVsbCksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWNhcmQiKS5zZXQoInZpc2libGUiLCExKTt2YXIgZT10aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIik7ZS5nZXQoIm1vZGVsLnBvc3RTdHJlYW0iKS5jYW5jZWxGaWx0ZXIoKSxlLnNldCgibXVsdGlTZWxlY3QiLCExKSx0aGlzLmNvbnRyb2xsZXJGb3IoImNvbXBvc2VyIikuc2V0KCJ0b3BpYyIsbnVsbCksdGhpcy5zY3JlZW5UcmFjay5zdG9wKCksdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOmhpZGUtdG9waWMiKSx0aGlzLmNvbnRyb2xsZXJGb3IoInRvcGljIikuc2V0KCJtb2RlbCIsbnVsbCl9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dT0hMSxlLnNldFByb3BlcnRpZXMoe21vZGVsOnQsZWRpdGluZ1RvcGljOiExLGZpcnN0UG9zdEV4cGFuZGVkOiExfSkscC50cmlnZ2VyKCJzZXR1cFRvcGljQ29udHJvbGxlciIsdGhpcyksdGhpcy5zZWFyY2hTZXJ2aWNlLnNldCgic2VhcmNoQ29udGV4dCIsdC5nZXQoInNlYXJjaENvbnRleHQiKSksZS5zZXQoIm11bHRpU2VsZWN0IiwhMSksZS5nZXQoInF1b3RlU3RhdGUiKS5jbGVhcigpLHRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKS5zZXQoInRvcGljIix0KSx0aGlzLnRvcGljVHJhY2tpbmdTdGF0ZS50cmFja0luY29taW5nKCJhbGwiKSx0aGlzLnNjcmVlblRyYWNrLnN0YXJ0KHQuZ2V0KCJpZCIpLGUpLCgwLGkuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLGZ1bmN0aW9uKCl7bi5hcHBFdmVudHMudHJpZ2dlcigiaGVhZGVyOnVwZGF0ZS10b3BpYyIsdCl9KX19KTtuLkV2ZW50VGFyZ2V0Lm1peGluKHApLGUuZGVmYXVsdD1wfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3RvcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zdGF0aWMtcm91dGUtYnVpbGRlciJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgidG9zIil9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdW5rbm93biIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4oMCxuLmFqYXgpKCIvNDA0LWJvZHkiLHtkYXRhVHlwZToiaHRtbCJ9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LWJvb2ttYXJrcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmJvb2ttYXJrcyxub0NvbnRlbnRIZWxwS2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2Jvb2ttYXJrcyIsYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktZHJhZnRzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VyRHJhZnRzU3RyZWFtIik7cmV0dXJuIGUubG9hZCh0aGlzLnNpdGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfSxyZW5kZXJUZW1wbGF0ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyKCJ1c2VyX3N0cmVhbSIpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXtlLnNldCgibW9kZWwiLHQpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuYXBwRXZlbnRzLm9uKCJkcmFmdDpkZXN0cm95ZWQiLHRoaXMsdGhpcy5yZWZyZXNoKX0sZGVhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuYXBwRXZlbnRzLm9mZigiZHJhZnQ6ZGVzdHJveWVkIix0aGlzLHRoaXMucmVmcmVzaCl9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWFjdGl2aXR5IikuX3Nob3dGb290ZXIoKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1pbmRleCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bnVsbH0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktbGlrZXMtZ2l2ZW4iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1zdHJlYW0iLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYWN0aW9uIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3VzZXJBY3Rpb25UeXBlOm4uZGVmYXVsdC5UWVBFUy5saWtlc19naXZlbixub0NvbnRlbnRIZWxwS2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2xpa2VzX2dpdmVuIixhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1hY3Rpdml0eS1wZW5kaW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMucGVuZGluZ30pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktcmVwbGllcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLnBvc3RzLG5vQ29udGVudEhlbHBLZXk6InVzZXJfYWN0aXZpdHkubm9fcmVwbGllcyIsYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xsZXJGb3IoImFwcGxpY2F0aW9uIikuc2V0KCJzaG93Rm9vdGVyIiwhMCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktdG9waWNzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItdG9waWMtbGlzdCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLnRvcGljcyxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvY3JlYXRlZC1ieS8iK3RoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIil9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIGUuZ2V0KCJwcm9maWxlX2hpZGRlbiIpP3RoaXMucmVwbGFjZVdpdGgoInVzZXIucHJvZmlsZS1oaWRkZW4iKTplfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItYWN0aXZpdHkiKS5zZXQoIm1vZGVsIix0KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWJhZGdlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL3ZpZXdpbmctYWN0aW9uLXR5cGUiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXItYmFkZ2UiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKG4uZGVmYXVsdCx7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWZhdWx0LmZpbmRCeVVzZXJuYW1lKHRoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIikse2dyb3VwZWQ6ITB9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy52aWV3aW5nQWN0aW9uVHlwZSgtMSksZS5zZXQoIm1vZGVsIix0KX0scmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9iYWRnZXMiLHtpbnRvOiJ1c2VyIn0pfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigiYXBwbGljYXRpb24iKS5zZXQoInNob3dGb290ZXIiLCEwKSwhMH19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1kZWxldGVkLXBvc3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLWFkbWluLXVzZXItcG9zdHMtcm91dGUiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImRlbGV0ZWQiKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRVc2VyLHQ9ZSYmZS5nZXQoInVzZXJuYW1lIik9PT10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZSIpPyJ1c2VyQWN0aXZpdHkiOiJ1c2VyLnN1bW1hcnkiO3RoaXMuc2l0ZS5tb2JpbGVWaWV3P3RoaXMucmVwbGFjZVdpdGgodCk6dGhpcy50cmFuc2l0aW9uVG8odCl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1pbnZpdGVkLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7YmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnJlcGxhY2VXaXRoKCJ1c2VySW52aXRlZC5zaG93IiwicGVuZGluZyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItaW52aXRlZC1zaG93IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvaW52aXRlIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztyZXR1cm4gbi5kZWZhdWx0LmZpbmRJbnZpdGVkQ291bnQodGhpcy5tb2RlbEZvcigidXNlciIpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LnNldCgiaW52aXRlc0NvdW50IixlKX0pLHRoaXMuaW52aXRlRmlsdGVyPWUuZmlsdGVyLG4uZGVmYXVsdC5maW5kSW52aXRlZEJ5KHRoaXMubW9kZWxGb3IoInVzZXIiKSxlLmZpbHRlcil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZS5jYW5fc2VlX2ludml0ZV9kZXRhaWxzfHx0aGlzLnJlcGxhY2VXaXRoKCJ1c2VySW52aXRlZC5zaG93IiwicmVkZWVtZWQiKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHVzZXI6dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuZ2V0KCJtb2RlbCIpLGZpbHRlcjp0aGlzLmludml0ZUZpbHRlcixzZWFyY2hUZXJtOiIiLHRvdGFsSW52aXRlczp0Lmludml0ZXMubGVuZ3RoLGludml0ZXNDb3VudDp0aGlzLmludml0ZXNDb3VudH0pfSxhY3Rpb25zOntzaG93SW52aXRlOmZ1bmN0aW9uKCl7KDAsaS5kZWZhdWx0KSgic2hhcmUtYW5kLWludml0ZSIse21vZGFsQ2xhc3M6InNoYXJlLWFuZC1pbnZpdGUiLHBhbmVsczpbe2lkOiJpbnZpdGUiLHRpdGxlOiJ1c2VyLmludml0ZWQuY3JlYXRlIixtb2RlbDp7aW52aXRlTW9kZWw6dGhpcy5jdXJyZW50VXNlcix1c2VySW52aXRlZFNob3c6dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLWludml0ZWQtc2hvdyIpfX1dfSl9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucy1lZGl0cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmVkaXRzfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1ub3RpZmljYXRpb25zLWluZGV4IixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7Y29udHJvbGxlck5hbWU6InVzZXItbm90aWZpY2F0aW9ucyIscmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9ub3RpZmljYXRpb25zLWluZGV4Iil9LGFmdGVyTW9kZWw6ZnVuY3Rpb24oZSl7ZXx8dGhpcy50cmFuc2l0aW9uVG8oInVzZXJOb3RpZmljYXRpb25zLnJlc3BvbnNlcyIpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucy1saWtlcy1yZWNlaXZlZCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy91c2VyLWFjdGl2aXR5LXN0cmVhbSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dXNlckFjdGlvblR5cGU6bi5kZWZhdWx0LlRZUEVTLmxpa2VzX3JlY2VpdmVkfSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1ub3RpZmljYXRpb25zLW1lbnRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMubWVudGlvbnN9KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLW5vdGlmaWNhdGlvbnMtcmVzcG9uc2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItYWN0aXZpdHktc3RyZWFtIiwiZGlzY291cnNlL21vZGVscy91c2VyLWFjdGlvbiJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHt1c2VyQWN0aW9uVHlwZTpuLmRlZmF1bHQuVFlQRVMucmVwbGllc30pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbWl4aW5zL3ZpZXdpbmctYWN0aW9uLXR5cGUiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZChuLmRlZmF1bHQse3JlbmRlclRlbXBsYXRlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXIoInVzZXIvbm90aWZpY2F0aW9ucyIpfSxhY3Rpb25zOntkaWRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbGxlckZvcigidXNlci1ub3RpZmljYXRpb25zIikuX3Nob3dGb290ZXIoKSwhMH19LG1vZGVsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWUiKTtpZih0aGlzLmdldCgiY3VycmVudFVzZXIudXNlcm5hbWUiKT09PWV8fHRoaXMuZ2V0KCJjdXJyZW50VXNlci5hZG1pbiIpKXJldHVybiB0aGlzLnN0b3JlLmZpbmQoIm5vdGlmaWNhdGlvbiIse3VzZXJuYW1lOmV9KX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSxlLnNldCgidXNlciIsdGhpcy5tb2RlbEZvcigidXNlciIpKSx0aGlzLnZpZXdpbmdBY3Rpb25UeXBlKC0xKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtYXJjaGl2ZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1wcml2YXRlLW1lc3NhZ2VzLXJvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJhcmNoaXZlIiwicHJpdmF0ZS1tZXNzYWdlcy1hcmNoaXZlIiwiYXJjaGl2ZSIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy1ncm91cC1hcmNoaXZlIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLXByaXZhdGUtbWVzc2FnZXMtcm91dGUiLCJkaXNjb3Vyc2UvbGliL2NhY2hlZC10b3BpYy1saXN0Il0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PSgwLHQuZGVmYXVsdCkoImdyb3VwcyIsInByaXZhdGUtbWVzc2FnZXMtZ3JvdXBzIikuZXh0ZW5kKHtncm91cE5hbWU6bnVsbCx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ncm91cE5hbWU7aWYoZSlyZXR1cm5bZS5jYXBpdGFsaXplKCkrIiAiK0kxOG4udCgidXNlci5tZXNzYWdlcy5hcmNoaXZlIiksSTE4bi50KCJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiKV19LG1vZGVsOmZ1bmN0aW9uKGUpe3ZhciB0PSJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy1ncm91cC8iK3RoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoInVzZXJuYW1lX2xvd2VyIikrIi8iK2UubmFtZSsiL2FyY2hpdmUiLG49KDAsaS5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLHQpO3JldHVybiBufHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOnR9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXt2YXIgdD1lLmdldCgiZmlsdGVyIikuc3BsaXQoIi8iKSxuPXRbdC5sZW5ndGgtMl07dGhpcy5zZXQoImdyb3VwTmFtZSIsbik7dmFyIGk9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgiZ3JvdXBzIikscz1fLmZpcnN0KGkuZmlsdGVyQnkoIm5hbWUiLG4pKTt0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItcHJpdmF0ZS1tZXNzYWdlcyIpLnNldCgiZ3JvdXAiLHMpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5nZXQoImZpbHRlciIpLnNwbGl0KCIvIiksaT1uW24ubGVuZ3RoLTJdO3RoaXMuY29udHJvbGxlckZvcigidXNlci1wcml2YXRlLW1lc3NhZ2VzIikuc2V0KCJncm91cEZpbHRlciIsaSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImFyY2hpdmUiLCEwKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItdG9waWNzLWxpc3QiKS5zdWJzY3JpYmUoIi9wcml2YXRlLW1lc3NhZ2VzL2dyb3VwLyIraSsiL2FyY2hpdmUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtZ3JvdXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSIsImRpc2NvdXJzZS9saWIvY2FjaGVkLXRvcGljLWxpc3QiXSxmdW5jdGlvbihlLHQsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiZ3JvdXBzIiwicHJpdmF0ZS1tZXNzYWdlcy1ncm91cHMiKS5leHRlbmQoe2dyb3VwTmFtZTpudWxsLHRpdGxlVG9rZW46ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdyb3VwTmFtZTtpZihlKXJldHVybltlLmNhcGl0YWxpemUoKSxJMThuLnQoInVzZXIucHJpdmF0ZV9tZXNzYWdlcyIpXX0sbW9kZWw6ZnVuY3Rpb24oZSl7dmFyIHQ9InRvcGljcy9wcml2YXRlLW1lc3NhZ2VzLWdyb3VwLyIrdGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWVfbG93ZXIiKSsiLyIrZS5uYW1lLG49KDAsaS5maW5kT3JSZXNldENhY2hlZFRvcGljTGlzdCkodGhpcy5zZXNzaW9uLHQpO3JldHVybiBufHx0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOnR9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbihlKXt2YXIgdD1fLmxhc3QoZS5nZXQoImZpbHRlciIpLnNwbGl0KCIvIikpO3RoaXMuc2V0KCJncm91cE5hbWUiLHQpO3ZhciBuPXRoaXMubW9kZWxGb3IoInVzZXIiKS5nZXQoImdyb3VwcyIpLGk9Xy5maXJzdChuLmZpbHRlckJ5KCJuYW1lIix0KSk7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImdyb3VwIixpKX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBuPV8ubGFzdCh0LmdldCgiZmlsdGVyIikuc3BsaXQoIi8iKSk7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoImdyb3VwRmlsdGVyIixuKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXItcHJpdmF0ZS1tZXNzYWdlcyIpLnNldCgiYXJjaGl2ZSIsITEpLHRoaXMuY29udHJvbGxlckZvcigidXNlci10b3BpY3MtbGlzdCIpLnN1YnNjcmliZSgiL3ByaXZhdGUtbWVzc2FnZXMvZ3JvdXAvIituKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtaW5kZXgiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgiaW5kZXgiLCJwcml2YXRlLW1lc3NhZ2VzIiwiaW5ib3giKX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VyLXByaXZhdGUtbWVzc2FnZXMtc2VudCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC1wcml2YXRlLW1lc3NhZ2VzLXJvdXRlIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmRlZmF1bHQpKCJzZW50IiwicHJpdmF0ZS1tZXNzYWdlcy1zZW50Iiwic2VudCIpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzLXNob3ciLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9yb3V0ZXMvYnVpbGQtcHJpdmF0ZS1tZXNzYWdlcy1yb3V0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5kZWZhdWx0KSgidGFncyIsInByaXZhdGUtbWVzc2FnZXMtdGFncyIpLmV4dGVuZCh7bW9kZWw6ZnVuY3Rpb24oZSl7dGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXQoInRhZ0lkIixlLmlkKTt2YXIgdD10aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy10YWdzLyIrdCsiLyIrZS5pZH0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItcHJpdmF0ZS1tZXNzYWdlcy10YWdzIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL2FqYXgtZXJyb3IiXSxmdW5jdGlvbihlLHQsbixpLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PW4uZGVmYXVsdC5leHRlbmQoe21vZGVsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpLmdldCgidXNlcm5hbWVfbG93ZXIiKTtyZXR1cm4oMCxpLmFqYXgpKCIvdGFncy9wZXJzb25hbF9tZXNzYWdlcy8iK2UpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFncy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZGVmYXVsdC5jcmVhdGUoZSl9KX0pLmNhdGNoKHMucG9wdXBBamF4RXJyb3IpfSx0aXRsZVRva2VuOmZ1bmN0aW9uKCl7cmV0dXJuW0kxOG4udCgidGFnZ2luZy50YWdzIiksSTE4bi50KCJ1c2VyLnByaXZhdGVfbWVzc2FnZXMiKV19LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3RoaXMuY29udHJvbGxlckZvcigidXNlci1wcml2YXRlLW1lc3NhZ2VzLXRhZ3MiKS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHNvcnRQcm9wZXJ0aWVzOnRoaXMuc2l0ZVNldHRpbmdzLnRhZ3Nfc29ydF9hbHBoYWJldGljYWxseT9bImlkIl06WyJjb3VudDpkZXNjIiwiaWQiXSx0YWdzRm9yVXNlcjp0aGlzLm1vZGVsRm9yKCJ1c2VyIikuZ2V0KCJ1c2VybmFtZV9sb3dlciIpfSksdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyLXByaXZhdGUtbWVzc2FnZXMiKS5zZXRQcm9wZXJ0aWVzKHtzaG93VG9nZ2xlQnVsa1NlbGVjdDohMSxwbVZpZXc6InRhZ3MifSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlci1wcml2YXRlLW1lc3NhZ2VzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2Rpc2NvdXJzZSIsImRpc2NvdXJzZS9tb2RlbHMvZHJhZnQiLCJkaXNjb3Vyc2UvbW9kZWxzL2NvbXBvc2VyIl0sZnVuY3Rpb24oZSx0LGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7cmVuZGVyVGVtcGxhdGU6ZnVuY3Rpb24oKXt0aGlzLnJlbmRlcigidXNlci9tZXNzYWdlcyIpfSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsRm9yKCJ1c2VyIil9LHNldHVwQ29udHJvbGxlcjpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuY29udHJvbGxlckZvcigiY29tcG9zZXIiKTtlLnNldCgibW9kZWwiLHQpLHRoaXMuY3VycmVudFVzZXImJmkuZGVmYXVsdC5nZXQoIm5ld19wcml2YXRlX21lc3NhZ2UiKS50aGVuKGZ1bmN0aW9uKGUpe2UuZHJhZnQmJm4ub3Blbih7ZHJhZnQ6ZS5kcmFmdCxkcmFmdEtleTpzLmRlZmF1bHQuTkVXX1BSSVZBVEVfTUVTU0FHRV9LRVksaWdub3JlSWZDaGFuZ2VkOiEwLGRyYWZ0U2VxdWVuY2U6ZS5kcmFmdF9zZXF1ZW5jZX0pfSl9LGFjdGlvbnM6e3dpbGxUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmNvbnRyb2xsZXJGb3IoInVzZXIiKS5zZXQoInBtVmlldyIsbnVsbCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvcm91dGVzL3VzZXItc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3Nob3dGb290ZXI6ITAsbW9kZWw6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIGUuZ2V0KCJwcm9maWxlX2hpZGRlbiIpP3RoaXMucmVwbGFjZVdpdGgoInVzZXIucHJvZmlsZS1oaWRkZW4iKTplLnN1bW1hcnkoKX0sYWN0aW9uczp7ZGlkVHJhbnNpdGlvbjpmdW5jdGlvbigpe3RoaXMuY29udHJvbGxlckZvcigidXNlciIpLnNldCgiaW5kZXhTdHJlYW0iLCEwKX19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS9yb3V0ZXMvdXNlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiLCJkaXNjb3Vyc2UvbW9kZWxzL3VzZXIiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dC5kZWZhdWx0LmV4dGVuZCh7dGl0bGVUb2tlbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubW9kZWxGb3IoInVzZXIiKS51c2VybmFtZTtpZihlKXJldHVybltJMThuLnQoInVzZXIucHJvZmlsZSIpLGVdfSxhY3Rpb25zOnt3aWxsVHJhbnNpdGlvbjpmdW5jdGlvbihlKXt2YXIgdD0idXNlci5zdW1tYXJ5Ij09PWUudGFyZ2V0TmFtZTtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VyIikuc2V0KCJpbmRleFN0cmVhbSIsdCksITB9LHVuZG9SZXZva2VBcGlLZXk6ZnVuY3Rpb24oZSl7ZS51bmRvUmV2b2tlKCl9LHJldm9rZUFwaUtleTpmdW5jdGlvbihlKXtlLnJldm9rZSgpfX0sYmVmb3JlTW9kZWw6ZnVuY3Rpb24oKXt0aGlzLnNpdGVTZXR0aW5ncy5oaWRlX3VzZXJfcHJvZmlsZXNfZnJvbV9wdWJsaWMmJiF0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLnJlcGxhY2VXaXRoKCJkaXNjb3ZlcnkiKX0sbW9kZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY3VycmVudFVzZXImJmUudXNlcm5hbWUudG9Mb3dlckNhc2UoKT09PXRoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXI/dGhpcy5jdXJyZW50VXNlcjpuLmRlZmF1bHQuY3JlYXRlKHt1c2VybmFtZTplbmNvZGVVUklDb21wb25lbnQoZS51c2VybmFtZSl9KX0sYWZ0ZXJNb2RlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLm1vZGVsRm9yKCJ1c2VyIik7cmV0dXJuIHQuZmluZERldGFpbHMoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZmluZFN0YWZmSW5mbygpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gZS5yZXBsYWNlV2l0aCgiLzQwNCIpfSl9LHNlcmlhbGl6ZTpmdW5jdGlvbihlKXtyZXR1cm4gZT97dXNlcm5hbWU6KGUudXNlcm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpfTp7fX0sc2V0dXBDb250cm9sbGVyOmZ1bmN0aW9uKGUsdCl7ZS5zZXQoIm1vZGVsIix0KSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0Iix0LnNlYXJjaENvbnRleHQpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3RoaXMuX3N1cGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgdD10aGlzLm1vZGVsRm9yKCJ1c2VyIik7dGhpcy5tZXNzYWdlQnVzLnN1YnNjcmliZSgiL3UvIit0LnVzZXJuYW1lX2xvd2VyLGZ1bmN0aW9uKGUpe3JldHVybiB0LmxvYWRVc2VyQWN0aW9uKGUpfSl9LGRlYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGU9dGhpcy5tb2RlbEZvcigidXNlciIpO3RoaXMubWVzc2FnZUJ1cy51bnN1YnNjcmliZSgiL3UvIitlLnVzZXJuYW1lX2xvd2VyKSx0aGlzLnNlYXJjaFNlcnZpY2Uuc2V0KCJzZWFyY2hDb250ZXh0IixudWxsKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3JvdXRlcy91c2VycyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3JvdXRlcy9kaXNjb3Vyc2UiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoe3F1ZXJ5UGFyYW1zOntwZXJpb2Q6e3JlZnJlc2hNb2RlbDohMH0sb3JkZXI6e3JlZnJlc2hNb2RlbDohMH0sYXNjOntyZWZyZXNoTW9kZWw6ITB9LG5hbWU6e3JlZnJlc2hNb2RlbDohMCxyZXBsYWNlOiEwfSxncm91cDp7cmVmcmVzaE1vZGVsOiEwfSxleGNsdWRlX3VzZXJuYW1lczp7cmVmcmVzaE1vZGVsOiEwfX0scmVmcmVzaFF1ZXJ5V2l0aG91dFRyYW5zaXRpb246ITAsdGl0bGVUb2tlbjpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoImRpcmVjdG9yeS50aXRsZSIpfSxyZXNldENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt0JiZlLnNldFByb3BlcnRpZXMoe3BlcmlvZDoid2Vla2x5IixvcmRlcjoibGlrZXNfcmVjZWl2ZWQiLGFzYzpudWxsLG5hbWU6IiIsZ3JvdXA6bnVsbCxleGNsdWRlX3VzZXJuYW1lczpudWxsfSl9LGJlZm9yZU1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5zaXRlU2V0dGluZ3MuaGlkZV91c2VyX3Byb2ZpbGVzX2Zyb21fcHVibGljJiYhdGhpcy5jdXJyZW50VXNlciYmdGhpcy5yZXBsYWNlV2l0aCgiZGlzY292ZXJ5Iil9LG1vZGVsOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9wYXJhbXM9ZSx0aGlzLnN0b3JlLmZpbmQoImRpcmVjdG9yeUl0ZW0iLGUpfSxzZXR1cENvbnRyb2xsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9wYXJhbXM7ZS5zZXRQcm9wZXJ0aWVzKHttb2RlbDp0LHBlcmlvZDpuLnBlcmlvZCxuYW1lSW5wdXQ6bi5uYW1lfSl9LGFjdGlvbnM6e2RpZFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sbGVyRm9yKCJ1c2VycyIpLl9zaG93Rm9vdGVyKCksITB9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2UvcHJlLWluaXRpYWxpemVycy9keW5hbWljLXJvdXRlLWJ1aWxkZXJzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvcm91dGVzL2J1aWxkLWNhdGVnb3J5LXJvdXRlIiwiZGlzY291cnNlL3JvdXRlcy9idWlsZC10b3BpYy1yb3V0ZSIsImRpc2NvdXJzZS9jb250cm9sbGVycy9kaXNjb3Zlcnktc29ydGFibGUiLCJkaXNjb3Vyc2Uvcm91dGVzL3RhZ3Mtc2hvdyIsImRpc2NvdXJzZS9tb2RlbHMvc2l0ZSIsImRpc2NvdXJzZS9tb2RlbHMvdXNlciJdLGZ1bmN0aW9uKGUsaSxzLG8scixhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXthZnRlcjoiaW5qZWN0LWRpc2NvdXJzZS1vYmplY3RzIixuYW1lOiJkeW5hbWljLXJvdXRlLWJ1aWxkZXJzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUsbil7bi5EaXNjb3ZlcnlDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLG4uRGlzY292ZXJ5UGFyZW50Q2F0ZWdvcnlDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxuLkRpc2NvdmVyeUNhdGVnb3J5Tm9uZUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLG4uRGlzY292ZXJ5Q2F0ZWdvcnlXaXRoSURDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxuLkRpc2NvdmVyeUNhdGVnb3J5Um91dGU9KDAsaS5kZWZhdWx0KSgiZGVmYXVsdCIpLG4uRGlzY292ZXJ5UGFyZW50Q2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iiksbi5EaXNjb3ZlcnlDYXRlZ29yeU5vbmVSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iix7bm9fc3ViY2F0ZWdvcmllczohMH0pLG4uRGlzY292ZXJ5Q2F0ZWdvcnlXaXRoSURSb3V0ZT0oMCxpLmRlZmF1bHQpKCJkZWZhdWx0Iik7dmFyIHQ9YS5kZWZhdWx0LmN1cnJlbnQoKTt0LmdldCgiZmlsdGVycyIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYXBpdGFsaXplKCk7blsiRGlzY292ZXJ5Iit0KyJDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiQ2F0ZWdvcnlDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiUGFyZW50Q2F0ZWdvcnlDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeSIrdCsiQ2F0ZWdvcnlOb25lQ29udHJvbGxlciJdPW8uZGVmYXVsdC5leHRlbmQoKSxuWyJEaXNjb3ZlcnkiK3QrIlJvdXRlIl09KDAscy5kZWZhdWx0KShlKSxuWyJEaXNjb3ZlcnkiK3QrIkNhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKGUpLG5bIkRpc2NvdmVyeSIrdCsiUGFyZW50Q2F0ZWdvcnlSb3V0ZSJdPSgwLGkuZGVmYXVsdCkoZSksblsiRGlzY292ZXJ5Iit0KyJDYXRlZ29yeU5vbmVSb3V0ZSJdPSgwLGkuZGVmYXVsdCkoZSx7bm9fc3ViY2F0ZWdvcmllczohMH0pfSksRGlzY291cnNlLkRpc2NvdmVyeVRvcENvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BQYXJlbnRDYXRlZ29yeUNvbnRyb2xsZXI9by5kZWZhdWx0LmV4dGVuZCgpLERpc2NvdXJzZS5EaXNjb3ZlcnlUb3BDYXRlZ29yeU5vbmVDb250cm9sbGVyPW8uZGVmYXVsdC5leHRlbmQoKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wUm91dGU9KDAscy5kZWZhdWx0KSgidG9wIix7YWN0aW9uczp7d2lsbFRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gbC5kZWZhdWx0LmN1cnJlbnRQcm9wKCJzaG91bGRfYmVfcmVkaXJlY3RlZF90b190b3AiLCExKSxsLmRlZmF1bHQuY3VycmVudFByb3AoInJlZGlyZWN0ZWRfdG9fdG9wLnJlYXNvbiIsbnVsbCksdGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19KSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wQ2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJ0b3AiKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wUGFyZW50Q2F0ZWdvcnlSb3V0ZT0oMCxpLmRlZmF1bHQpKCJ0b3AiKSxEaXNjb3Vyc2UuRGlzY292ZXJ5VG9wQ2F0ZWdvcnlOb25lUm91dGU9KDAsaS5kZWZhdWx0KSgidG9wIix7bm9fc3ViY2F0ZWdvcmllczohMH0pLHQuZ2V0KCJwZXJpb2RzIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLmNhcGl0YWxpemUoKTtuWyJEaXNjb3ZlcnlUb3AiK3QrIkNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJDYXRlZ29yeUNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJQYXJlbnRDYXRlZ29yeUNvbnRyb2xsZXIiXT1vLmRlZmF1bHQuZXh0ZW5kKCksblsiRGlzY292ZXJ5VG9wIit0KyJDYXRlZ29yeU5vbmVDb250cm9sbGVyIl09by5kZWZhdWx0LmV4dGVuZCgpLG5bIkRpc2NvdmVyeVRvcCIrdCsiUm91dGUiXT0oMCxzLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIkNhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIlBhcmVudENhdGVnb3J5Um91dGUiXT0oMCxpLmRlZmF1bHQpKCJ0b3AvIitlKSxuWyJEaXNjb3ZlcnlUb3AiK3QrIkNhdGVnb3J5Tm9uZVJvdXRlIl09KDAsaS5kZWZhdWx0KSgidG9wLyIrZSx7bm9fc3ViY2F0ZWdvcmllczohMH0pfSksbi5UYWdzU2hvd0NhdGVnb3J5Um91dGU9ci5kZWZhdWx0LmV4dGVuZCgpLG4uVGFnc1Nob3dDYXRlZ29yeU5vbmVSb3V0ZT1yLmRlZmF1bHQuZXh0ZW5kKHtub1N1YmNhdGVnb3JpZXM6ITB9KSxuLlRhZ3NTaG93UGFyZW50Q2F0ZWdvcnlSb3V0ZT1yLmRlZmF1bHQuZXh0ZW5kKCksbi5UYWdTaG93Um91dGU9ci5kZWZhdWx0LHQuZ2V0KCJmaWx0ZXJzIikuZm9yRWFjaChmdW5jdGlvbihlKXtuWyJUYWdzU2hvdyIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnU2hvdyIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnc1Nob3dDYXRlZ29yeSIrZS5jYXBpdGFsaXplKCkrIlJvdXRlIl09ci5kZWZhdWx0LmV4dGVuZCh7bmF2TW9kZTplfSksblsiVGFnc1Nob3dOb25lQ2F0ZWdvcnkiK2UuY2FwaXRhbGl6ZSgpKyJSb3V0ZSJdPXIuZGVmYXVsdC5leHRlbmQoe25hdk1vZGU6ZSxub1N1YmNhdGVnb3JpZXM6ITB9KSxuWyJUYWdzU2hvd1BhcmVudENhdGVnb3J5IitlLmNhcGl0YWxpemUoKSsiUm91dGUiXT1yLmRlZmF1bHQuZXh0ZW5kKHtuYXZNb2RlOmV9KX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL2luamVjdC1kaXNjb3Vyc2Utb2JqZWN0cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL21vZGVscy9zZXNzaW9uIiwiZGlzY291cnNlL2xpYi9rZXktdmFsdWUtc3RvcmUiLCJkaXNjb3Vyc2UvbW9kZWxzL3N0b3JlIiwiZGlzY291cnNlL2xpYi9kaXNjb3Vyc2UtbG9jYXRpb24iLCJkaXNjb3Vyc2UiLCJkaXNjb3Vyc2Uvc2VydmljZXMvc2VhcmNoIiwiZGlzY291cnNlL21vZGVscy90b3BpYy10cmFja2luZy1zdGF0ZSIsImRpc2NvdXJzZS9saWIvc2NyZWVuLXRyYWNrIiwiZGlzY291cnNlL21vZGVscy9zaXRlIiwiZGlzY291cnNlL21vZGVscy91c2VyIl0sZnVuY3Rpb24oZSxjLGQscCxtLGYsaCxiLGcsdix5KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBfPVsiY29udHJvbGxlciIsImNvbXBvbmVudCIsInJvdXRlIiwibW9kZWwiLCJhZGFwdGVyIl07ZS5kZWZhdWx0PXtuYW1lOiJpbmplY3QtZGlzY291cnNlLW9iamVjdHMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSx0KXtfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsImFwcEV2ZW50cyIsInNlcnZpY2U6YXBwLWV2ZW50cyIpfSksdC5yZWdpc3Rlcigic3RvcmU6bWFpbiIscC5kZWZhdWx0KSx0Lmhhc1JlZ2lzdHJhdGlvbigic2VydmljZTpzdG9yZSIpfHwodC5yZWdpc3Rlcigic2VydmljZTpzdG9yZSIscC5kZWZhdWx0KSxfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsInN0b3JlIiwic2VydmljZTpzdG9yZSIpfSkpO3ZhciBuPXdpbmRvdy5NZXNzYWdlQnVzO3QucmVnaXN0ZXIoIm1lc3NhZ2UtYnVzOm1haW4iLG4se2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJtZXNzYWdlQnVzIiwibWVzc2FnZS1idXM6bWFpbiIpfSk7dmFyIGk9eS5kZWZhdWx0LmN1cnJlbnQoKTt0LnJlZ2lzdGVyKCJjdXJyZW50LXVzZXI6bWFpbiIsaSx7aW5zdGFudGlhdGU6ITF9KSxmLmRlZmF1bHQuY3VycmVudFVzZXI9aTt2YXIgcz1iLmRlZmF1bHQuY3JlYXRlKHttZXNzYWdlQnVzOm4sY3VycmVudFVzZXI6aX0pO3QucmVnaXN0ZXIoInRvcGljLXRyYWNraW5nLXN0YXRlOm1haW4iLHMse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJ0b3BpY1RyYWNraW5nU3RhdGUiLCJ0b3BpYy10cmFja2luZy1zdGF0ZTptYWluIil9KTt2YXIgbz1mLmRlZmF1bHQuU2l0ZVNldHRpbmdzO3QucmVnaXN0ZXIoInNpdGUtc2V0dGluZ3M6bWFpbiIsbyx7aW5zdGFudGlhdGU6ITF9KSxfLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHQuaW5qZWN0KGUsInNpdGVTZXR0aW5ncyIsInNpdGUtc2V0dGluZ3M6bWFpbiIpfSk7dmFyIHI9di5kZWZhdWx0LmN1cnJlbnQoKTt0LnJlZ2lzdGVyKCJzaXRlOm1haW4iLHIse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJzaXRlIiwic2l0ZTptYWluIil9KSx0LnJlZ2lzdGVyKCJzZWFyY2gtc2VydmljZTptYWluIixoLmRlZmF1bHQpLF8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2VhcmNoU2VydmljZSIsInNlYXJjaC1zZXJ2aWNlOm1haW4iKX0pO3ZhciBhPWMuZGVmYXVsdC5jdXJyZW50KCk7dC5yZWdpc3Rlcigic2Vzc2lvbjptYWluIixhLHtpbnN0YW50aWF0ZTohMX0pLF8uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2Vzc2lvbiIsInNlc3Npb246bWFpbiIpfSk7dmFyIGw9bmV3IGcuZGVmYXVsdChzLG8sYSxpKTt0LnJlZ2lzdGVyKCJzY3JlZW4tdHJhY2s6bWFpbiIsbCx7aW5zdGFudGlhdGU6ITF9KSxbImNvbXBvbmVudCIsInJvdXRlIl0uZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbmplY3QoZSwic2NyZWVuVHJhY2siLCJzY3JlZW4tdHJhY2s6bWFpbiIpfSksaSYmWyJjb21wb25lbnQiLCJyb3V0ZSIsImNvbnRyb2xsZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuaW5qZWN0KGUsImN1cnJlbnRVc2VyIiwiY3VycmVudC11c2VyOm1haW4iKX0pLHQucmVnaXN0ZXIoImxvY2F0aW9uOmRpc2NvdXJzZS1sb2NhdGlvbiIsbS5kZWZhdWx0KTt2YXIgdT1uZXcgZC5kZWZhdWx0KCJkaXNjb3Vyc2VfIik7dC5yZWdpc3Rlcigia2V5LXZhbHVlLXN0b3JlOm1haW4iLHUse2luc3RhbnRpYXRlOiExfSksXy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluamVjdChlLCJrZXlWYWx1ZVN0b3JlIiwia2V5LXZhbHVlLXN0b3JlOm1haW4iKX0pLCgwLGIuc3RhcnRUcmFja2luZykocyl9fX0pLGRlZmluZSgiZGlzY291cnNlL3ByZS1pbml0aWFsaXplcnMvbWFwLXJvdXRlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL21hcHBpbmctcm91dGVyIl0sZnVuY3Rpb24oZSxpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToibWFwLXJvdXRlcyIsYWZ0ZXI6ImluamVjdC1kaXNjb3Vyc2Utb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlLHQpe3QudW5yZWdpc3Rlcigicm91dGVyOm1haW4iKSx0LnJlZ2lzdGVyKCJyb3V0ZXI6bWFpbiIsKDAsaS5tYXBSb3V0ZXMpKCkpO3ZhciBuPW58fEVtYmVyLkFwcGxpY2F0aW9uLnByb3RvdHlwZS5idWlsZEluc3RhbmNlO0VtYmVyLkFwcGxpY2F0aW9uLnByb3RvdHlwZS5idWlsZEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVpbGRSZWdpc3RyeSgpLG4uYXBwbHkodGhpcyl9fX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL3JlZ2lzdGVyLWRvbS10ZW1wbGF0ZXMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJyZWdpc3Rlci1kaXNjb3Vyc2UtZG9tLXRlbXBsYXRlcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpeyQoJ3NjcmlwdFt0eXBlPSJ0ZXh0L3gtaGFuZGxlYmFycyJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBlPSQodGhpcyksdD1lLmF0dHIoIm5hbWUiKXx8ZS5kYXRhKCJ0ZW1wbGF0ZS1uYW1lIik7d2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZygiV0FSTklORzogeW91IGhhdmUgYSBoYW5kbGViYXJzIHRlbXBsYXRlIG5hbWVkICIrdCsiIHRoaXMgaXMgYW4gdW5zdXBwb3J0ZWQgc2V0dXAsIHByZWNvbXBpbGUgeW91ciB0ZW1wbGF0ZXMiKSxlLnJlbW92ZSgpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL3ByZS1pbml0aWFsaXplcnMvc25pZmYtY2FwYWJpbGl0aWVzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic25pZmYtY2FwYWJpbGl0aWVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT0kKCJodG1sIikscz0xPG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB3aW5kb3csbz17dG91Y2g6c307aS5hZGRDbGFzcyhzPyJ0b3VjaCBkaXNjb3Vyc2UtdG91Y2giOiJuby10b3VjaCBkaXNjb3Vyc2Utbm8tdG91Y2giKSxuYXZpZ2F0b3ImJigobj1uYXZpZ2F0b3IudXNlckFnZW50KSYmKG8uaXNBbmRyb2lkPS0xIT09bi5pbmRleE9mKCJBbmRyb2lkIiksby5pc1dpbnBob25lPS0xIT09bi5pbmRleE9mKCJXaW5kb3dzIFBob25lIiksby5pc09wZXJhPSEhd2luZG93Lm9wZXJhfHwwPD1uLmluZGV4T2YoIiBPUFIvIiksby5pc0ZpcmVmb3g9InVuZGVmaW5lZCIhPXR5cGVvZiBJbnN0YWxsVHJpZ2dlcixvLmlzU2FmYXJpPTA8T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHdpbmRvdy5IVE1MRWxlbWVudCkuaW5kZXhPZigiQ29uc3RydWN0b3IiKXx8IltvYmplY3QgU2FmYXJpUmVtb3RlTm90aWZpY2F0aW9uXSI9PT0oIXdpbmRvdy5zYWZhcml8fHNhZmFyaS5wdXNoTm90aWZpY2F0aW9uKS50b1N0cmluZygpLG8uaXNDaHJvbWU9ISF3aW5kb3cuY2hyb21lJiYhby5pc09wZXJhLG8uaXNJRTExPSEhbi5tYXRjaCgvVHJpZGVudC4qcnZcOjExXC4vKSxvLmNhblBhc3RlSW1hZ2VzPW8uaXNDaHJvbWV8fG8uaXNGaXJlZm94KSxvLmlzSXBhZE9TPS0xIT09bi5pbmRleE9mKCJNYWMgT1MiKSYmIS9pUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmcyxvLmlzSU9TPSgvaVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl8fG8uaXNJcGFkT1MpJiYhd2luZG93Lk1TU3RyZWFtLG8uaGFzQ29udGFjdFBpY2tlcj0iY29udGFjdHMiaW4gbmF2aWdhdG9yJiYiQ29udGFjdHNNYW5hZ2VyImluIHdpbmRvdyxvLmNhblZpYnJhdGU9InZpYnJhdGUiaW4gbmF2aWdhdG9yKSxvLmhpZ2hSZXM9MTI4MDw9d2luZG93LnNjcmVlbi53aWR0aCx0LnJlZ2lzdGVyKCJjYXBhYmlsaXRpZXM6bWFpbiIsbyx7aW5zdGFudGlhdGU6ITF9KSx0LmluamVjdCgidmlldyIsImNhcGFiaWxpdGllcyIsImNhcGFiaWxpdGllczptYWluIiksdC5pbmplY3QoImNvbnRyb2xsZXIiLCJjYXBhYmlsaXRpZXMiLCJjYXBhYmlsaXRpZXM6bWFpbiIpLHQuaW5qZWN0KCJjb21wb25lbnQiLCJjYXBhYmlsaXRpZXMiLCJjYXBhYmlsaXRpZXM6bWFpbiIpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9wcmUtaW5pdGlhbGl6ZXJzL3N2Zy1zcHJpdGUtZm9udGF3ZXNvbWUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc3ZnLXNwcml0ZS1sb2FkZXIiXSxmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzdmctc3ByaXRlLWZvbnRhd2Vzb21lIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7RGlzY291cnNlJiZEaXNjb3Vyc2UuU3ZnU3ByaXRlUGF0aCYmdC5kZWZhdWx0LmxvYWQoRGlzY291cnNlLlN2Z1Nwcml0ZVBhdGgsImZvbnRhd2Vzb21lIil9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9hc3NldC12ZXJzaW9uIixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImFzc2V0LXZlcnNpb24iLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD0hMSxuPWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7biYmbi5zdWJzY3JpYmUoIi9nbG9iYWwvYXNzZXQtdmVyc2lvbiIsZnVuY3Rpb24oZSl7RGlzY291cnNlLnNldCgiYXNzZXRWZXJzaW9uIixlKSwhdCYmRGlzY291cnNlLmdldCgicmVxdWlyZXNSZWZyZXNoIikmJigoMCxpLmxhdGVyKShmdW5jdGlvbigpe2Jvb3Rib3guY29uZmlybShJMThuLnQoImFzc2V0c19jaGFuZ2VkX2NvbmZpcm0iKSxmdW5jdGlvbihlKXtlJiZkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKX0pfSw4NjRlNSksdD0hMCl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2F1dGgtY29tcGxldGUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIl0sZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiYXV0aC1jb21wbGV0ZSIsYWZ0ZXI6ImluamVjdC1vYmplY3RzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PXZvaWQgMDtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1hdXRoZW50aWNhdGlvbiIpJiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0YS1hdXRoZW50aWNhdGlvbiIpLmRhdGFzZXQuYXV0aGVudGljYXRpb25EYXRhKSx0JiZlLmxvb2t1cCgicm91dGVyOm1haW4iKS5vbmUoImRpZFRyYW5zaXRpb24iLGZ1bmN0aW9uKCl7KDAsbi5uZXh0KShmdW5jdGlvbigpe3JldHVybiBEaXNjb3Vyc2UuYXV0aGVudGljYXRpb25Db21wbGV0ZShKU09OLnBhcnNlKHQpKX0pfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9hdXRvLWxvYWQtbW9kdWxlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaGVscGVycyIsImRpc2NvdXJzZS1jb21tb24vbGliL3Jhdy1oYW5kbGViYXJzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvcmF3LWhhbmRsZWJhcnMtaGVscGVycyJdLGZ1bmN0aW9uKGUsbixpLHMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUsdCl7T2JqZWN0LmtleXMocmVxdWlyZWpzLmVudHJpZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7L1wvaGVscGVyc1wvLy50ZXN0KGUpJiYhLy10ZXN0Ly50ZXN0KGUpJiZyZXF1aXJlanMoZSxudWxsLG51bGwsITApLC9cL3dpZGdldHNcLy8udGVzdChlKSYmIS8tdGVzdC8udGVzdChlKSYmcmVxdWlyZWpzKGUsbnVsbCxudWxsLCEwKX0pLCgwLG4ucmVnaXN0ZXJIZWxwZXJzKSh0KSwoMCxzLnJlZ2lzdGVyUmF3SGVscGVycykoaS5kZWZhdWx0LEhhbmRsZWJhcnMpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmF1dG9Mb2FkTW9kdWxlcz10LGUuZGVmYXVsdD17bmFtZToiYXV0by1sb2FkLW1vZHVsZXMiLGluaXRpYWxpemU6dH19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvYXZhdGFyLXNlbGVjdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zaG93LW1vZGFsIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJhdmF0YXItc2VsZWN0Iixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3RoaXMuc2VsZWN0YWJsZUF2YXRhcnNFbmFibGVkPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKS5zZWxlY3RhYmxlX2F2YXRhcnNfZW5hYmxlZCxlLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIikub24oInNob3ctYXZhdGFyLXNlbGVjdCIsdGhpcywiX3Nob3dBdmF0YXJTZWxlY3QiKX0sX3Nob3dBdmF0YXJTZWxlY3Q6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hdmF0YXJfdGVtcGxhdGUsbj0idXBsb2FkZWQiO3Q9PT1lLnN5c3RlbV9hdmF0YXJfdGVtcGxhdGU/bj0ic3lzdGVtIjp0PT09ZS5ncmF2YXRhcl9hdmF0YXJfdGVtcGxhdGUmJihuPSJncmF2YXRhciIpO3ZhciBpPSgwLHMuZGVmYXVsdCkoImF2YXRhci1zZWxlY3RvciIpO2kuc2V0UHJvcGVydGllcyh7dXNlcjplLHNlbGVjdGVkOm59KSx0aGlzLnNlbGVjdGFibGVBdmF0YXJzRW5hYmxlZCYmKDAsby5hamF4KSgiL3NpdGUvc2VsZWN0YWJsZS1hdmF0YXJzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBpLnNldCgic2VsZWN0YWJsZUF2YXRhcnMiLGUpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9iYWRnaW5nIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiYmFkZ2luZyIsYWZ0ZXI6Im1lc3NhZ2UtYnVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0OyFuYXZpZ2F0b3Iuc2V0QXBwQmFkZ2V8fCh0PWUubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpKSYmKHRoaXMubm90aWZpY2F0aW9ucz10LnVucmVhZF9ub3RpZmljYXRpb25zK3QudW5yZWFkX3ByaXZhdGVfbWVzc2FnZXMsZS5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLm9uKCJub3RpZmljYXRpb25zOmNoYW5nZWQiLHRoaXMsIl91cGRhdGVCYWRnZSIpKX0sX3VwZGF0ZUJhZGdlOmZ1bmN0aW9uKCl7bmF2aWdhdG9yLnNldEFwcEJhZGdlKHRoaXMubm90aWZpY2F0aW9ucyl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9iYW5uZXIiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJwcmVsb2FkLXN0b3JlIl0sZnVuY3Rpb24oZSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJiYW5uZXIiLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1zLmRlZmF1bHQuY3JlYXRlKG8uZGVmYXVsdC5nZXQoImJhbm5lciIpfHx7fSksbj1lLmxvb2t1cCgic2l0ZTptYWluIik7bi5zZXQoImJhbm5lciIsdCk7dmFyIGk9ZS5sb29rdXAoIm1lc3NhZ2UtYnVzOm1haW4iKTtpJiZpLnN1YnNjcmliZSgiL3NpdGUvYmFubmVyIixmdW5jdGlvbihlKXtuLnNldCgiYmFubmVyIixzLmRlZmF1bHQuY3JlYXRlKGV8fHt9KSl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2NsaWNrLWludGVyY2VwdG9yIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJjbGljay1pbnRlcmNlcHRvciIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpeyQoIiNtYWluIikub24oImNsaWNrLmRpc2NvdXJzZSIsImEiLHQuZGVmYXVsdCksJCh3aW5kb3cpLm9uKCJoYXNoY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBuLmRlZmF1bHQucm91dGVUbyhkb2N1bWVudC5sb2NhdGlvbi5oYXNoKX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvY3NyZi10b2tlbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdD0hMSxuPSQuQ2FsbGJhY2tzKCk7ZS5kZWZhdWx0PXtuYW1lOiJjc3JmLXRva2VuIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciBpPWUubG9va3VwKCJzZXNzaW9uOm1haW4iKTtpLnNldCgiY3NyZlRva2VuIiwkKCJtZXRhW25hbWU9Y3NyZi10b2tlbl0iKS5hdHRyKCJjb250ZW50IikpLHR8fCgkLmFqYXhQcmVmaWx0ZXIobi5maXJlKSx0PSEwKSxuLmFkZChmdW5jdGlvbihlLHQsbil7ZS5jcm9zc0RvbWFpbnx8bi5zZXRSZXF1ZXN0SGVhZGVyKCJYLUNTUkYtVG9rZW4iLGkuZ2V0KCJjc3JmVG9rZW4iKSl9KX0sdGVhcmRvd246ZnVuY3Rpb24oKXtuLmVtcHR5KCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9kLXBvcG92ZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZC1wb3BvdmVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZC1wb3BvdmVyIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2UubG9va3VwKCJyb3V0ZXI6bWFpbiIpLm9uKCJyb3V0ZVdpbGxDaGFuZ2UiLHQuaGlkZVBvcG92ZXIpLCQoIiNtYWluIikub24oImNsaWNrLmQtcG9wb3ZlciBtb3VzZWVudGVyLmQtcG9wb3ZlciIsdC5QT1BPVkVSX1NFTEVDVE9SUyxmdW5jdGlvbihlKXtyZXR1cm4oMCx0LnNob3dQb3BvdmVyKShlKX0pLm9uKCJtb3VzZWxlYXZlLmQtcG9wb3ZlciIsdC5QT1BPVkVSX1NFTEVDVE9SUyxmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmhpZGVQb3BvdmVyKShlKX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvZW1iZXItZXZlbnRzIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZW1iZXItZXZlbnRzIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7RW1iZXIuRXZlbnREaXNwYXRjaGVyLnJlb3Blbih7ZXZlbnRzOnt0b3VjaHN0YXJ0OiJ0b3VjaFN0YXJ0Iix0b3VjaGVuZDoidG91Y2hFbmQiLHRvdWNoY2FuY2VsOiJ0b3VjaENhbmNlbCIsa2V5ZG93bjoia2V5RG93biIsa2V5dXA6ImtleVVwIixrZXlwcmVzczoia2V5UHJlc3MiLG1vdXNlZG93bjoibW91c2VEb3duIixtb3VzZXVwOiJtb3VzZVVwIixjb250ZXh0bWVudToiY29udGV4dE1lbnUiLGNsaWNrOiJjbGljayIsZGJsY2xpY2s6ImRvdWJsZUNsaWNrIixmb2N1c2luOiJmb2N1c0luIixmb2N1c291dDoiZm9jdXNPdXQiLG1vdXNlZW50ZXI6Im1vdXNlRW50ZXIiLG1vdXNlbGVhdmU6Im1vdXNlTGVhdmUiLHN1Ym1pdDoic3VibWl0IixpbnB1dDoiaW5wdXQiLGNoYW5nZToiY2hhbmdlIixkcmFnc3RhcnQ6ImRyYWdTdGFydCIsZHJhZzoiZHJhZyIsZHJhZ2VudGVyOiJkcmFnRW50ZXIiLGRyYWdsZWF2ZToiZHJhZ0xlYXZlIixkcmFnb3ZlcjoiZHJhZ092ZXIiLGRyb3A6ImRyb3AiLGRyYWdlbmQ6ImRyYWdFbmQifX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvZW5hYmxlLWVtb2ppIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3BsdWdpbi1hcGkiLCJwcmV0dHktdGV4dC9lbW9qaSIsInByZWxvYWQtc3RvcmUiXSxmdW5jdGlvbihlLHQsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToiZW5hYmxlLWVtb2ppIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2UubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKS5lbmFibGVfZW1vamkmJigoMCx0LndpdGhQbHVnaW5BcGkpKCIwLjEiLGZ1bmN0aW9uKGUpe2Uub25Ub29sYmFyQ3JlYXRlKGZ1bmN0aW9uKGUpe2UuYWRkQnV0dG9uKHtpZDoiZW1vamkiLGdyb3VwOiJleHRyYXMiLGljb246ImZhci1zbWlsZSIsYWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUuY29udGV4dC5zZW5kKCJlbW9qaSIpfSx0aXRsZToiY29tcG9zZXIuZW1vamkifSl9KX0pLChpLmRlZmF1bHQuZ2V0KCJjdXN0b21FbW9qaSIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyRW1vamkpKGUubmFtZSxlLnVybCl9KSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9lbnN1cmUtbWF4LWltYWdlLWRpbWVuc2lvbnMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJlbnN1cmUtaW1hZ2UtZGltZW5zaW9ucyIsYWZ0ZXI6Im1vYmlsZSIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3dpbmRvdyYmKHQ9RGlzY291cnNlLlNpdGVTZXR0aW5ncy5tYXhfaW1hZ2Vfd2lkdGgsbj1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9pbWFnZV9oZWlnaHQsZS5sb29rdXAoInNpdGU6bWFpbiIpLm1vYmlsZVZpZXcmJih0PSQod2luZG93KS53aWR0aCgpLTIwKSwkKCc8c3R5bGUgaWQ9ImltYWdlLXNpemluZy1oYWNrIj4jcmVwbHktY29udHJvbCAuZC1lZGl0b3ItcHJldmlldyBpbWc6bm90KC50aHVtYm5haWwpLCAuY29va2VkIGltZzpub3QoLnRodW1ibmFpbCkgeycrKCJtYXgtd2lkdGg6Iit0KyJweDttYXgtaGVpZ2h0OiIrbisicHg7IikrIn08L3N0eWxlPiIpLmFwcGVuZFRvKCJoZWFkIikpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvaW5qZWN0LW9iamVjdHMiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe319fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2pxdWVyeS1wbHVnaW5zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2F1dG9jb21wbGV0ZSJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImpxdWVyeS1wbHVnaW5zIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7Ym9vdGJveC5hbmltYXRlKCExKSxib290Ym94LmJhY2tkcm9wKCEwKSwkLmZuLmF1dG9jb21wbGV0ZT10LmRlZmF1bHR9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9rZXlib2FyZC1zaG9ydGN1dHMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIva2V5Ym9hcmQtc2hvcnRjdXRzIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToia2V5Ym9hcmQtc2hvcnRjdXRzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3QuZGVmYXVsdC5iaW5kRXZlbnRzKE1vdXNldHJhcCxlKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2xpdmUtZGV2ZWxvcG1lbnQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2xpYi90aGVtZS1zZWxlY3RvciIsImRpc2NvdXJzZS1jb21tb24vY29uZmlnL2Vudmlyb25tZW50Il0sZnVuY3Rpb24oZSxpLHMscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImxpdmUtZGV2ZWxvcG1lbnQiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIG8sdCxuPWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7d2luZG93Lmhpc3RvcnkmJjA9PT13aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoIj9wcmV2aWV3X3RoZW1lX2lkPSIpJiYobz1wYXJzZUludCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNsaWNlKDE4KS5zcGxpdCgiJiIpWzBdLDEwKSxpc05hTihvKXx8KCh0PWZ1bmN0aW9uKGUpe3ZhciBzPXdpbmRvdy5oaXN0b3J5W2VdO3dpbmRvdy5oaXN0b3J5W2VdPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaTtyZXR1cm4tMT09PW4uaW5kZXhPZigicHJldmlld190aGVtZV9pZD0iKSYmKGk9LTE9PT1uLmluZGV4T2YoIj8iKT8iPyI6IiYiLG49bitpKyJwcmV2aWV3X3RoZW1lX2lkPSIrbykscy5jYWxsKHdpbmRvdy5oaXN0b3J5LGUsdCxuKX19KSgicmVwbGFjZVN0YXRlIiksdCgicHVzaFN0YXRlIikpKSwkKCJoZWFkZXIuY3VzdG9tIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PSQodGhpcyk7cmV0dXJuIG4uc3Vic2NyaWJlKCIvaGVhZGVyLWNoYW5nZS8iKyQodGhpcykuZGF0YSgiaWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC5odG1sKGUpfSl9KSwiZGV2ZWxvcG1lbnQiPT09RGlzY291cnNlLkVudmlyb25tZW50JiYidGVzdCIhPT1yLmRlZmF1bHQuZW52aXJvbm1lbnQmJih3aW5kb3cuRGlzY291cnNlVVJMPWkuZGVmYXVsdCksbi5zdWJzY3JpYmUoIi9maWxlLWNoYW5nZSIsZnVuY3Rpb24oZSl7SGFuZGxlYmFycy5jb21waWxlJiYhRW1iZXIuVEVNUExBVEVTLmVtcHR5JiYoRW1iZXIuVEVNUExBVEVTLmVtcHR5PUhhbmRsZWJhcnMuY29tcGlsZSgiPGRpdj48L2Rpdj4iKSksZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBpOyJyZWZyZXNoIj09PW4/ZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKCEwKTooaT0oMCxzLmN1cnJlbnRUaGVtZUlkcykoKSwkKCJsaW5rIikuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ7bi5oYXNPd25Qcm9wZXJ0eSgidGhlbWVfaWQiKSYmbi5uZXdfaHJlZj8oZT0kKHRoaXMpLmRhdGEoInRhcmdldCIpLHQ9JCh0aGlzKS5kYXRhKCJ0aGVtZS1pZCIpLC0xPT09aS5pbmRleE9mKG4udGhlbWVfaWQpfHxlIT09bi50YXJnZXR8fHQmJnQhPT1uLnRoZW1lX2lkfHwoMCxzLnJlZnJlc2hDU1MpKHRoaXMsbnVsbCxuLm5ld19ocmVmKSk6dGhpcy5ocmVmLm1hdGNoKG4ubmFtZSkmJihuLmhhc2h8fG4ubmV3X2hyZWYpJiYoMCxzLnJlZnJlc2hDU1MpKHRoaXMsbi5oYXNoLG4ubmV3X2hyZWYpfSkpfSl9KX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL2xvY2FsaXphdGlvbiIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZS5kZWZhdWx0PXtuYW1lOiJsb2NhbGl6YXRpb24iLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaXNWZXJib3NlTG9jYWxpemF0aW9uRW5hYmxlZDpmdW5jdGlvbihlKXtpZihlLmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIikudmVyYm9zZV9sb2NhbGl6YXRpb24pcmV0dXJuITA7dHJ5e3JldHVybiBzZXNzaW9uU3RvcmFnZSYmc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgidmVyYm9zZV9sb2NhbGl6YXRpb24iKX1jYXRjaChlKXtyZXR1cm4hMX19LGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dGhpcy5pc1ZlcmJvc2VMb2NhbGl6YXRpb25FbmFibGVkKGUpJiZJMThuLmVuYWJsZVZlcmJvc2VMb2NhbGl6YXRpb24oKTt2YXIgbz1JMThuLl9vdmVycmlkZXN8fHt9O09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW9bZV0sbj0oZT1lLnJlcGxhY2UoImFkbWluX2pzIiwianMiKSkuc3BsaXQoIi4iKSxpPUkxOG4udHJhbnNsYXRpb25zW0kxOG4ubG9jYWxlXSxzPTA7czxuLmxlbmd0aC0xO3MrKyluW3NdaW4gaXx8KGlbbltzXV09e30pLGk9aVtuW3NdXTsib2JqZWN0Ij09PSh2b2lkIDA9PT1pPyJ1bmRlZmluZWQiOnIoaSkpJiYoaVtuW24ubGVuZ3RoLTFdXT10KX0pO3ZhciBuPUkxOG4uX21mT3ZlcnJpZGVzfHx7fTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PW5bZV07ZT1lLnJlcGxhY2UoL15bYS16X10qanNcLi8sIiIpLEkxOG4uX2NvbXBpbGVkTUZzW2VdPXR9KSxib290Ym94LmFkZExvY2FsZShJMThuLmN1cnJlbnRMb2NhbGUoKSx7T0s6STE4bi50KCJjb21wb3Nlci5tb2RhbF9vayIpLENBTkNFTDpJMThuLnQoImNvbXBvc2VyLm1vZGFsX2NhbmNlbCIpLENPTkZJUk06STE4bi50KCJjb21wb3Nlci5tb2RhbF9vayIpfSksYm9vdGJveC5zZXRMb2NhbGUoSTE4bi5jdXJyZW50TG9jYWxlKCkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvbG9nb3V0IixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2xvZ291dCJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT0hMTtlLmRlZmF1bHQ9e25hbWU6ImxvZ291dCIsYWZ0ZXI6Im1lc3NhZ2UtYnVzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIik7dCYmdC5zdWJzY3JpYmUoIi9sb2dvdXQiLGZ1bmN0aW9uKCl7aXx8KGk9ITAsYm9vdGJveC5kaWFsb2coSTE4bi50KCJsb2dvdXQiKSx7bGFiZWw6STE4bi50KCJyZWZyZXNoIiksY2FsbGJhY2s6bi5kZWZhdWx0fSx7b25Fc2NhcGU6bi5kZWZhdWx0LGJhY2tkcm9wOiJzdGF0aWMifSkpfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9sb2dzLW5vdGljZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3NlcnZpY2VzL2xvZ3Mtbm90aWNlIiwiZGlzY291cnNlL21peGlucy9zaW5nbGV0b24iXSxmdW5jdGlvbihlLG8scil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6ImxvZ3Mtbm90aWNlIixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sb29rdXAoInNpdGUtc2V0dGluZ3M6bWFpbiIpLG49ZS5sb29rdXAoIm1lc3NhZ2UtYnVzOm1haW4iKSxpPWUubG9va3VwKCJrZXktdmFsdWUtc3RvcmU6bWFpbiIpLHM9ZS5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIik7by5kZWZhdWx0LnJlb3BlbkNsYXNzKHIuZGVmYXVsdCx7Y3JlYXRlQ3VycmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNyZWF0ZSh7bWVzc2FnZUJ1czpuLGtleVZhbHVlU3RvcmU6aSxzaXRlU2V0dGluZ3M6dCxjdXJyZW50VXNlcjpzfSl9fSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9tZXNzYWdlLWJ1cyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9wYWdlLXZpc2libGUiLCJkaXNjb3Vyc2UvbGliL2FqYXgiXSxmdW5jdGlvbihlLG8saSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dmFyIG47cmV0dXJuIGUuY29tcGxldGU/KG49ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKGUsdCl7KDAsaS5oYW5kbGVMb2dvZmYpKGUpLG4oZSx0KX0pOmUuY29tcGxldGU9aS5oYW5kbGVMb2dvZmYsJC5hamF4KGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6Im1lc3NhZ2UtYnVzIixhZnRlcjoiaW5qZWN0LW9iamVjdHMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM7RGlzY291cnNlLnRlc3Rpbmd8fCh0PWUubG9va3VwKCJtZXNzYWdlLWJ1czptYWluIiksbj1lLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSxpPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSx0LmFsd2F5c0xvbmdQb2xsPSJkZXZlbG9wbWVudCI9PT1EaXNjb3Vyc2UuRW52aXJvbm1lbnQsdC5zdG9wKCksaS5sb2dpbl9yZXF1aXJlZCYmIW58fChzPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUmJihjbGVhckludGVydmFsKHMpLHQuc3RhcnQoKSl9LDUwMCksdC5jYWxsYmFja0ludGVydmFsPWkuYW5vbl9wb2xsaW5nX2ludGVydmFsLHQuYmFja2dyb3VuZENhbGxiYWNrSW50ZXJ2YWw9aS5iYWNrZ3JvdW5kX3BvbGxpbmdfaW50ZXJ2YWwsdC5iYXNlVXJsPWkubG9uZ19wb2xsaW5nX2Jhc2VfdXJsLnJlcGxhY2UoL1wvJC8sIiIpKyIvIiwiLyIhPT10LmJhc2VVcmw/dC5hamF4PWZ1bmN0aW9uKGUpe3JldHVybiBlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmhlYWRlcnNbIlgtU2hhcmVkLVNlc3Npb24tS2V5Il09JCgibWV0YVtuYW1lPXNoYXJlZF9zZXNzaW9uX2tleV0iKS5hdHRyKCJjb250ZW50IiksKDAsby5kZWZhdWx0KSgpJiYoZS5oZWFkZXJzWyJEaXNjb3Vyc2UtVmlzaWJsZSJdPSJ0cnVlIikscihlKX06KHQuYWpheD1mdW5jdGlvbihlKXtyZXR1cm4gZS5oZWFkZXJzPWUuaGVhZGVyc3x8e30sKDAsby5kZWZhdWx0KSgpJiYoZS5oZWFkZXJzWyJEaXNjb3Vyc2UtVmlzaWJsZSJdPSJ0cnVlIikscihlKX0sdC5iYXNlVXJsPURpc2NvdXJzZS5nZXRVUkwoIi8iKSksbiYmKHQuY2FsbGJhY2tJbnRlcnZhbD1pLnBvbGxpbmdfaW50ZXJ2YWwsdC5lbmFibGVMb25nUG9sbGluZz0hMCkpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL21vYmlsZSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UvbGliL21vYmlsZSIsImRpc2NvdXJzZS1jb21tb24vcmVzb2x2ZXIiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbixpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6Im1vYmlsZSIsYWZ0ZXI6ImluamVjdC1vYmplY3RzIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe2kuZGVmYXVsdC5pbml0KCk7dmFyIHQ9ZS5sb29rdXAoInNpdGU6bWFpbiIpO3Quc2V0KCJtb2JpbGVWaWV3IixpLmRlZmF1bHQubW9iaWxlVmlldyksdC5zZXQoImlzTW9iaWxlRGV2aWNlIixpLmRlZmF1bHQuaXNNb2JpbGVEZXZpY2UpLCgwLHMuc2V0UmVzb2x2ZXJPcHRpb24pKCJtb2JpbGVWaWV3IixpLmRlZmF1bHQubW9iaWxlVmlldyksKDAsby5pc0FwcFdlYnZpZXcpKCkmJigwLG4ubGF0ZXIpKGZ1bmN0aW9uKCl7KDAsby5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoImhlYWRlckJnIiwkKCIuZC1oZWFkZXIiKS5jc3MoImJhY2tncm91bmQtY29sb3IiKSl9LDUwMCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9wYWdlLXRyYWNraW5nIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2NsZWFuLWRvbSIsImRpc2NvdXJzZS9saWIvcGFnZS10cmFja2VyIiwiZGlzY291cnNlL2xpYi9hamF4Il0sZnVuY3Rpb24oZSxpLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InBhZ2UtdHJhY2tpbmciLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmxvb2t1cCgicm91dGVyOm1haW4iKTt0Lm9uKCJyb3V0ZVdpbGxDaGFuZ2UiLG8udmlld1RyYWNraW5nUmVxdWlyZWQpLHQub24oInJvdXRlRGlkQ2hhbmdlIixpLmNsZWFuRE9NKTt2YXIgbj1lLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIik7KDAscy5zdGFydFBhZ2VUcmFja2luZykodCxuKSx2b2lkIDA9PT13aW5kb3cuX2dhcT8odm9pZCAwIT09d2luZG93LmdhJiZuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fHdpbmRvdy5nYSgic2VuZCIsInBhZ2V2aWV3Iix7cGFnZTplLnVybCx0aXRsZTplLnRpdGxlfSl9KSx2b2lkIDAhPT13aW5kb3cuZGF0YUxheWVyJiZuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fCgwLHMuZ29vZ2xlVGFnTWFuYWdlclBhZ2VDaGFuZ2VkKShlKX0pKTpuLm9uKCJwYWdlOmNoYW5nZWQiLGZ1bmN0aW9uKGUpe2UucmVwbGFjZWRPbmx5UXVlcnlQYXJhbXN8fCh3aW5kb3cuX2dhcS5wdXNoKFsiX3NldCIsInRpdGxlIixlLnRpdGxlXSksd2luZG93Ll9nYXEucHVzaChbIl90cmFja1BhZ2V2aWV3IixlLnVybF0pKX0pfSx0ZWFyZG93bjpmdW5jdGlvbigpeygwLHMucmVzZXRQYWdlVHJhY2tpbmcpKCl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9wb3N0LWRlY29yYXRpb25zIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC1zeW50YXgiLCJkaXNjb3Vyc2UvbGliL2xpZ2h0Ym94IiwiZGlzY291cnNlL2xpYi9sYXp5LWxvYWQtaW1hZ2VzIiwiZGlzY291cnNlL2xpYi90ZXh0LWRpcmVjdGlvbiIsImRpc2NvdXJzZS9saWIvcGx1Z2luLWFwaSJdLGZ1bmN0aW9uKGUsaSxzLG8scixuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicG9zdC1kZWNvcmF0aW9ucyIsaW5pdGlhbGl6ZTpmdW5jdGlvbih0KXsoMCxuLndpdGhQbHVnaW5BcGkpKCIwLjEiLGZ1bmN0aW9uKG4pe3ZhciBlPXQubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKTtuLmRlY29yYXRlQ29va2VkKGkuZGVmYXVsdCx7aWQ6ImRpc2NvdXJzZS1zeW50YXgtaGlnaGxpZ2h0aW5nIn0pLG4uZGVjb3JhdGVDb29rZWQocy5kZWZhdWx0LHtpZDoiZGlzY291cnNlLWxpZ2h0Ym94In0pLGUuc3VwcG9ydF9taXhlZF90ZXh0X2RpcmVjdGlvbiYmbi5kZWNvcmF0ZUNvb2tlZChyLnNldFRleHREaXJlY3Rpb25zLHtpZDoiZGlzY291cnNlLXRleHQtZGlyZWN0aW9uIn0pLCgwLG8uc2V0dXBMYXp5TG9hZGluZykobiksbi5kZWNvcmF0ZUNvb2tlZChmdW5jdGlvbih0KXt2YXIgZT0kKCJhdWRpbyIsdCk7ZS5sZW5ndGgmJmUub24oInBsYXkiLGZ1bmN0aW9uKCl7dmFyIGU9cGFyc2VJbnQodC5jbG9zZXN0KCJhcnRpY2xlIikuZGF0YSgicG9zdC1pZCIpLDEwKTtlJiZuLnByZXZlbnRDbG9hayhlKX0pfSx7aWQ6ImRpc2NvdXJzZS1hdWRpbyJ9KX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvcmVhZC1vbmx5IixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicmVhZC1vbmx5IixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpO24mJih0PWUubG9va3VwKCJzaXRlOm1haW4iKSxuLnN1YnNjcmliZSgiL3NpdGUvcmVhZC1vbmx5IixmdW5jdGlvbihlKXt0LnNldCgiaXNSZWFkT25seSIsZSl9KSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9yZWdpc3Rlci1kaXNjb3Vyc2UtbG9jYXRpb24iLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJyZWdpc3Rlci1kaXNjb3Vyc2UtbG9jYXRpb24iLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9yZWdpc3Rlci1zZXJ2aWNlLXdvcmtlciIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InJlZ2lzdGVyLXNlcnZpY2Utd29ya2VyIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7dmFyIGUsdCxhPXRoaXM7KCJodHRwczoiPT09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2x8fCJsb2NhbGhvc3QiPT09bG9jYXRpb24uaG9zdG5hbWUpJiYic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJih0PShlPURpc2NvdXJzZS5fX2NvbnRhaW5lcl9fLmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKSkuaXNTYWZhcml8fGUuaXNJT1N8fGUuaXNJcGFkT1MsRGlzY291cnNlLlNlcnZpY2VXb3JrZXJVUkwmJiF0PyhuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hMCxuPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHMsbz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHM9by5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciByPXMudmFsdWU7ci5hY3RpdmUmJiFyLmFjdGl2ZS5zY3JpcHRVUkwuaW5jbHVkZXMoRGlzY291cnNlLlNlcnZpY2VXb3JrZXJVUkwpJiZhLnVucmVnaXN0ZXIocil9fWNhdGNoKGUpe249ITAsaT1lfWZpbmFsbHl7dHJ5eyF0JiZvLnJldHVybiYmby5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgaX19fSksbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoRGlzY291cnNlLkJhc2VVcmkrIi8iK0Rpc2NvdXJzZS5TZXJ2aWNlV29ya2VyVVJMKS5jYXRjaChmdW5jdGlvbihlKXtjb25zb2xlLmluZm8oIkZhaWxlZCB0byByZWdpc3RlciBTZXJ2aWNlIFdvcmtlcjogIitlKX0pKTpuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdD0hMCxuPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIHMsbz1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KHM9by5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciByPXMudmFsdWU7YS51bnJlZ2lzdGVyKHIpfX1jYXRjaChlKXtuPSEwLGk9ZX1maW5hbGx5e3RyeXshdCYmby5yZXR1cm4mJm8ucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IGl9fX0pKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihlKXtlLnNjb3BlLnN0YXJ0c1dpdGgoRGlzY291cnNlLkJhc2VVcmwpJiZlLnVucmVnaXN0ZXIoKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3JlbGF0aXZlLWFnZXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToicmVsYXRpdmUtYWdlcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuX2ludGVydmFsPXNldEludGVydmFsKGZ1bmN0aW9uKCl7KDAsdC51cGRhdGVSZWxhdGl2ZUFnZSkoJCgiLnJlbGF0aXZlLWRhdGUiKSl9LDZlNCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dGhpcy5faW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKSx0aGlzLl9pbnRlcnZhbD1udWxsKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3NoYXJpbmctc291cmNlcyIsWyJleHBvcnRzIiwiZGlzY291cnNlL2xpYi9zaGFyaW5nIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToic2hhcmluZy1zb3VyY2VzIixpbml0aWFsaXplOmZ1bmN0aW9uKCl7dC5kZWZhdWx0LmFkZFNvdXJjZSh7aWQ6InR3aXR0ZXIiLGljb246ImZhYi10d2l0dGVyLXNxdWFyZSIsZ2VuZXJhdGVVcmw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4iaHR0cDovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9IitlbmNvZGVVUklDb21wb25lbnQoZSkrIiZ0ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpfSxzaG91bGRPcGVuSW5Qb3B1cDohMCx0aXRsZTpJMThuLnQoInNoYXJlLnR3aXR0ZXIiKSxwb3B1cEhlaWdodDoyNjV9KSx0LmRlZmF1bHQuYWRkU291cmNlKHtpZDoiZmFjZWJvb2siLGljb246ImZhYi1mYWNlYm9vayIsdGl0bGU6STE4bi50KCJzaGFyZS5mYWNlYm9vayIpLGdlbmVyYXRlVXJsOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImh0dHA6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci5waHA/dT0iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiJnQ9IitlbmNvZGVVUklDb21wb25lbnQodCl9LHNob3VsZE9wZW5JblBvcHVwOiEwfSksdC5kZWZhdWx0LmFkZFNvdXJjZSh7aWQ6ImVtYWlsIixpY29uOiJlbnZlbG9wZS1zcXVhcmUiLHRpdGxlOkkxOG4udCgic2hhcmUuZW1haWwiKSxnZW5lcmF0ZVVybDpmdW5jdGlvbihlLHQpe3JldHVybiJtYWlsdG86P3RvPSZzdWJqZWN0PSIrZW5jb2RlVVJJQ29tcG9uZW50KCJbIitEaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLnRpdGxlKyJdICIrdCkrIiZib2R5PSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpfX0pfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvc2hvdy1mb290ZXIiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzaG93LWZvb3RlciIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmxvb2t1cCgicm91dGVyOm1haW4iKSxuPWUubG9va3VwKCJjb250cm9sbGVyOmFwcGxpY2F0aW9uIik7dC5vbigicm91dGVXaWxsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBuLnNldCgic2hvd0Zvb3RlciIsITEpLCEwfSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy9zaWdudXAtY3RhIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iXSxmdW5jdGlvbihlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5kZWZhdWx0PXtuYW1lOiJzaWdudXAtY3RhIixpbml0aWFsaXplOmZ1bmN0aW9uKGUpe3ZhciB0PWUubG9va3VwKCJzY3JlZW4tdHJhY2s6bWFpbiIpLG49YS5kZWZhdWx0LmN1cnJlbnQoKSxpPWUubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSxzPWUubG9va3VwKCJrZXktdmFsdWUtc3RvcmU6bWFpbiIpLG89ZS5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIik7ZnVuY3Rpb24gcigpe3ZhciBlO24uZ2V0KCJzaG93U2lnbnVwQ3RhIil8fG4uZ2V0KCJoaWRlU2lnbnVwQ3RhIil8fHMuZ2V0KCJhbm9uLWN0YS1uZXZlciIpfHwobmV3IERhdGUpLmdldFRpbWUoKS04NjRlNTxzLmdldEludCgiYW5vbi1jdGEtaGlkZGVuIiwwKXx8cy5nZXRJbnQoImFub24tdG9waWMtdGltZSIpPDEyZTR8fChlPXMuZ2V0KCJhbm9uLXRvcGljLWlkcyIpKSYmKGUuc3BsaXQoIiwiKS5sZW5ndGg8Mnx8bi5zZXQoInNob3dTaWdudXBDdGEiLCEwKSl9dC5rZXlWYWx1ZVN0b3JlPXMsb3x8cy5nZXQoImFub24tY3RhLW5ldmVyIil8fGkuYWxsb3dfbmV3X3JlZ2lzdHJhdGlvbnMmJihpLmludml0ZV9vbmx5fHxpLmxvZ2luX3JlcXVpcmVkfHxpLmVuYWJsZV9zaWdudXBfY3RhJiYodC5yZWdpc3RlckFub25DYWxsYmFjayhyKSxyKCkpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3N0cmlwLW1vYmlsZS1hcHAtdXJsLXBhcmFtcyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InN0cmlwLW1vYmlsZS1hcHAtdXJsLXBhcmFtcyIsaW5pdGlhbGl6ZTpmdW5jdGlvbigpe3ZhciBlLHQ9d2luZG93LmxvY2F0aW9uLnNlYXJjaDstMSE9PXQuaW5kZXhPZigidXNlcl9hcGlfcHVibGljX2tleSIpJiYodD0wPChlPShlPXQuc3RhcnRzV2l0aCgiPyIpP3Quc3Vic3RyKDEpLnNwbGl0KCImIik6W10pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5zdGFydHNXaXRoKCJ1c2VyX2FwaV9wdWJsaWNfa2V5PSIpJiYhZS5zdGFydHNXaXRoKCJhdXRoX3JlZGlyZWN0PSIpfSkpLmxlbmd0aD8iPyIrZS5qb2luKCImIik6IiIsd2luZG93Lmhpc3RvcnkmJndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSYmd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiIitsb2NhdGlvbi5wYXRobmFtZSt0K2xvY2F0aW9uLmhhc2gpKX19fSksZGVmaW5lKCJkaXNjb3Vyc2UvaW5pdGlhbGl6ZXJzL3N1YnNjcmliZS11c2VyLW5vdGlmaWNhdGlvbnMiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL2Rlc2t0b3Atbm90aWZpY2F0aW9ucyIsImRpc2NvdXJzZS9saWIvcHVzaC1ub3RpZmljYXRpb25zIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLGgsaSxzLG8peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJzdWJzY3JpYmUtdXNlci1ub3RpZmljYXRpb25zIixhZnRlcjoibWVzc2FnZS1idXMiLGluaXRpYWxpemU6ZnVuY3Rpb24oZCl7dmFyIHAsdCxlLG09ZC5sb29rdXAoImN1cnJlbnQtdXNlcjptYWluIiksbj1kLmxvb2t1cCgibWVzc2FnZS1idXM6bWFpbiIpLGY9ZC5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpO20mJihuLnN1YnNjcmliZSgiL3Jldmlld2FibGVfY291bnRzIixmdW5jdGlvbihlKXttLnNldCgicmV2aWV3YWJsZV9jb3VudCIsZS5yZXZpZXdhYmxlX2NvdW50KX0pLG4uc3Vic2NyaWJlKCIvbm90aWZpY2F0aW9uLyIrbS5nZXQoImlkIiksZnVuY3Rpb24oZSl7dmFyIHQ9ZC5sb29rdXAoInNlcnZpY2U6c3RvcmUiKSxuPW0uZ2V0KCJ1bnJlYWRfbm90aWZpY2F0aW9ucyIpLGk9bS5nZXQoInVucmVhZF9wcml2YXRlX21lc3NhZ2VzIik7bS5zZXRQcm9wZXJ0aWVzKHt1bnJlYWRfbm90aWZpY2F0aW9uczplLnVucmVhZF9ub3RpZmljYXRpb25zLHVucmVhZF9wcml2YXRlX21lc3NhZ2VzOmUudW5yZWFkX3ByaXZhdGVfbWVzc2FnZXMscmVhZF9maXJzdF9ub3RpZmljYXRpb246ZS5yZWFkX2ZpcnN0X25vdGlmaWNhdGlvbn0pLG49PT1lLnVucmVhZF9ub3RpZmljYXRpb25zJiZpPT09ZS51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlc3x8KGYudHJpZ2dlcigibm90aWZpY2F0aW9uczpjaGFuZ2VkIikscC5tb2JpbGVWaWV3JiYoMDxlLnVucmVhZF9ub3RpZmljYXRpb25zLW58fDA8ZS51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlcy1pKSYmZi50cmlnZ2VyKCJoZWFkZXI6dXBkYXRlLXRvcGljIixudWxsLDVlMykpO3ZhciBzPXQuZmluZFN0YWxlKCJub3RpZmljYXRpb24iLHt9LHtjYWNoZUtleToicmVjZW50LW5vdGlmaWNhdGlvbnMifSksbz1lLmxhc3Rfbm90aWZpY2F0aW9uJiZlLmxhc3Rfbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbjtpZihzJiZzLmhhc1Jlc3VsdHMmJm8pe3ZhciByLGE9cy5yZXN1bHRzLmdldCgiY29udGVudCIpOy0xPT09Xy5maW5kSW5kZXgoYSx7aWQ6by5pZH0pJiYocj0wLDYhPT1vLm5vdGlmaWNhdGlvbl90eXBlJiYocj0tMT09PShyPV8uZmluZEluZGV4KGEsZnVuY3Rpb24oZSl7cmV0dXJuIDYhPT1lLm5vdGlmaWNhdGlvbl90eXBlfHxlLnJlYWR9KSk/YS5sZW5ndGgtMTpyKSxhLmluc2VydEF0KHIsaC5kZWZhdWx0LmNyZWF0ZShvKSkpO2Zvcih2YXIgbD0wO2w8ZS5yZWNlbnQubGVuZ3RoO2wrKyl7Zm9yKHZhciB1PXZvaWQgMDt1PWFbbF07KXt2YXIgYz1lLnJlY2VudFtsXTtpZih1LmdldCgiaWQiKT09PWNbMF0pe3UuZ2V0KCJyZWFkIikhPT1jWzFdJiZ1LnNldCgicmVhZCIsY1sxXSk7YnJlYWt9YS5yZW1vdmVBdChsKX1pZighdSlicmVha319fSxtLm5vdGlmaWNhdGlvbl9jaGFubmVsX3Bvc2l0aW9uKSxwPWQubG9va3VwKCJzaXRlOm1haW4iKSx0PWQubG9va3VwKCJzaXRlLXNldHRpbmdzOm1haW4iKSxlPWQubG9va3VwKCJyb3V0ZXI6bWFpbiIpLG4uc3Vic2NyaWJlKCIvY2F0ZWdvcmllcyIsZnVuY3Rpb24oZSl7KGUuY2F0ZWdvcmllc3x8W10pLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIHAudXBkYXRlQ2F0ZWdvcnkoZSl9KSwoZS5kZWxldGVkX2NhdGVnb3JpZXN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBwLnJlbW92ZUNhdGVnb3J5KGUpfSl9KSxuLnN1YnNjcmliZSgiL2NsaWVudF9zZXR0aW5ncyIsZnVuY3Rpb24oZSl7cmV0dXJuKDAsaC5zZXQpKHQsZS5uYW1lLGUudmFsdWUpfSksbi5zdWJzY3JpYmUoIi9yZWZyZXNoX2NsaWVudCIsZnVuY3Rpb24oZSl7cmV0dXJuIERpc2NvdXJzZS5zZXQoImFzc2V0VmVyc2lvbiIsZSl9KSwidGVzdCIhPT1vLmRlZmF1bHQuZW52aXJvbm1lbnQmJihuLnN1YnNjcmliZSgoMCxpLmFsZXJ0Q2hhbm5lbCkobSksZnVuY3Rpb24oZSl7cmV0dXJuKDAsaS5vbk5vdGlmaWNhdGlvbikoZSxtKX0pLCgwLGkuaW5pdCkobixmKSwoMCxzLmlzUHVzaE5vdGlmaWNhdGlvbnNFbmFibGVkKShtLHAubW9iaWxlVmlldyk/KCgwLGkuZGlzYWJsZSkoKSwoMCxzLnJlZ2lzdGVyKShtLHAubW9iaWxlVmlldyxlLGYpKTooMCxzLnVuc3Vic2NyaWJlKShtKSkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvdGl0bGUtbm90aWZpY2F0aW9ucyIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InRpdGxlLW5vdGlmaWNhdGlvbnMiLGFmdGVyOiJtZXNzYWdlLWJ1cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXtlLmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSYmKHRoaXMuY29udGFpbmVyPWUpLmxvb2t1cCgic2VydmljZTphcHAtZXZlbnRzIikub24oIm5vdGlmaWNhdGlvbnM6Y2hhbmdlZCIsdGhpcywiX3VwZGF0ZVRpdGxlIil9LF91cGRhdGVUaXRsZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5jb250YWluZXIubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpO3QmJihlPXQudW5yZWFkX25vdGlmaWNhdGlvbnMrdC51bnJlYWRfcHJpdmF0ZV9tZXNzYWdlcyxEaXNjb3Vyc2UudXBkYXRlTm90aWZpY2F0aW9uQ291bnQoZSkpfX19KSxkZWZpbmUoImRpc2NvdXJzZS9pbml0aWFsaXplcnMvdG9waWMtZm9vdGVyLWJ1dHRvbnMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIvc2hvdy1tb2RhbCIsImRpc2NvdXJzZS9saWIvcmVnaXN0ZXItdG9waWMtZm9vdGVyLWJ1dHRvbiJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD17bmFtZToidG9waWMtZm9vdGVyLWJ1dHRvbnMiLGluaXRpYWxpemU6ZnVuY3Rpb24oKXsoMCx0LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKHtpZDoic2hhcmUtYW5kLWludml0ZSIsaWNvbjoibGluayIscHJpb3JpdHk6OTk5LGxhYmVsOiJ0b3BpYy5zaGFyZS50aXRsZSIsdGl0bGU6InRvcGljLnNoYXJlLmhlbHAiLGFjdGlvbjpmdW5jdGlvbigpe3ZhciBlLHQ9W3tpZDoic2hhcmUiLHRpdGxlOiJ0b3BpYy5zaGFyZS5leHRlbmRlZF90aXRsZSIsbW9kZWw6e3RvcGljOnRoaXMudG9waWN9fV07dGhpcy5jYW5JbnZpdGVUbyYmIXRoaXMuaW52aXRlRGlzYWJsZWQmJihlPXZvaWQgMCxlPXRoaXMuaXNQTT8idG9waWMuaW52aXRlX3ByaXZhdGUudGl0bGUiOnRoaXMuaW52aXRpbmdUb1RvcGljPyJ0b3BpYy5pbnZpdGVfcmVwbHkudGl0bGUiOiJ1c2VyLmludml0ZWQuY3JlYXRlIix0LnB1c2goe2lkOiJpbnZpdGUiLHRpdGxlOmUsbW9kZWw6e2ludml0ZU1vZGVsOnRoaXMudG9waWN9fSkpLCgwLG4uZGVmYXVsdCkoInNoYXJlLWFuZC1pbnZpdGUiLHttb2RhbENsYXNzOiJzaGFyZS1hbmQtaW52aXRlIixwYW5lbHM6dH0pfSxkcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlld30sY2xhc3NOYW1lczpbInNoYXJlLWFuZC1pbnZpdGUiXSxkZXBlbmRlbnRLZXlzOlsidG9waWMuc2hhcmVVcmwiLCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIiwiY2FuSW52aXRlVG8iLCJpbnZpdGVEaXNhYmxlZCIsImlzUE0iLCJpbnZpdGluZ1RvVG9waWMiXX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJmbGFnIixpY29uOiJmbGFnIixwcmlvcml0eTo5OTgsbGFiZWw6InRvcGljLmZsYWdfdG9waWMudGl0bGUiLHRpdGxlOiJ0b3BpYy5mbGFnX3RvcGljLmhlbHAiLGFjdGlvbjoic2hvd0ZsYWdUb3BpYyIsZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9LGNsYXNzTmFtZXM6WyJmbGFnLXRvcGljIl0sZGVwZW5kZW50S2V5czpbInRvcGljLmRldGFpbHMuY2FuX2ZsYWdfdG9waWMiLCJ0b3BpYy5pc1ByaXZhdGVNZXNzYWdlIl0sZGlzcGxheWVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5kZXRhaWxzLmNhbl9mbGFnX3RvcGljIikmJiF0aGlzLmdldCgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIpfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2RlcGVuZGVudEtleXM6WyJ0b3BpYy5ib29rbWFya2VkIiwidG9waWMuaXNQcml2YXRlTWVzc2FnZSJdLGlkOiJib29rbWFyayIsaWNvbjoiYm9va21hcmsiLHByaW9yaXR5OjFlMyxjbGFzc05hbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/WyJib29rbWFyayIsImJvb2ttYXJrZWQiXTpbImJvb2ttYXJrIl19LGxhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/ImJvb2ttYXJrZWQuY2xlYXJfYm9va21hcmtzIjoiYm9va21hcmtlZC50aXRsZSJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJ0b3BpYy5ib29rbWFya2VkIik/ImJvb2ttYXJrZWQuaGVscC51bmJvb2ttYXJrIjoiYm9va21hcmtlZC5oZWxwLmJvb2ttYXJrIn0sYWN0aW9uOiJ0b2dnbGVCb29rbWFyayIsZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9LGRpc3BsYXllZDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldCgidG9waWMuaXNQcml2YXRlTWVzc2FnZSIpfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJhcmNoaXZlIixwcmlvcml0eTo5OTYsaWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFyY2hpdmVJY29ufSxsYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFyY2hpdmVMYWJlbH0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcmNoaXZlVGl0bGV9LGFjdGlvbjoidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiLGNsYXNzTmFtZXM6WyJzdGFuZGFyZCIsImFyY2hpdmUtdG9waWMiXSxkZXBlbmRlbnRLZXlzOlsiY2FuQXJjaGl2ZSIsImFyY2hpdmVJY29uIiwiYXJjaGl2ZUxhYmVsIiwiYXJjaGl2ZVRpdGxlIiwidG9nZ2xlQXJjaGl2ZU1lc3NhZ2UiXSxkcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpdGUubW9iaWxlVmlld30sZGlzcGxheWVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuQXJjaGl2ZX19KSwoMCx0LnJlZ2lzdGVyVG9waWNGb290ZXJCdXR0b24pKHtpZDoiZWRpdC1tZXNzYWdlIixwcmlvcml0eTo3NTAsaWNvbjoicGVuY2lsLWFsdCIsbGFiZWw6InRvcGljLmVkaXRfbWVzc2FnZS50aXRsZSIsdGl0bGU6InRvcGljLmVkaXRfbWVzc2FnZS5oZWxwIixhY3Rpb246ImVkaXRGaXJzdFBvc3QiLGNsYXNzTmFtZXM6WyJlZGl0LW1lc3NhZ2UiXSxkZXBlbmRlbnRLZXlzOlsiZWRpdEZpcnN0UG9zdCIsInNob3dFZGl0T25Gb290ZXIiXSxkaXNwbGF5ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93RWRpdE9uRm9vdGVyfX0pLCgwLHQucmVnaXN0ZXJUb3BpY0Zvb3RlckJ1dHRvbikoe2lkOiJkZWZlciIsaWNvbjoiY2lyY2xlIixwcmlvcml0eTozMDAsbGFiZWw6InRvcGljLmRlZmVyLnRpdGxlIix0aXRsZToidG9waWMuZGVmZXIuaGVscCIsYWN0aW9uOiJkZWZlclRvcGljIixkaXNwbGF5ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5EZWZlcn0sZHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXd9fSl9fX0pLGRlZmluZSgiZGlzY291cnNlL2luaXRpYWxpemVycy91cmwtcmVkaXJlY3RzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e25hbWU6InVybC1yZWRpcmVjdHMiLGFmdGVyOiJpbmplY3Qtb2JqZWN0cyIsaW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuPWUubG9va3VwKCJjdXJyZW50LXVzZXI6bWFpbiIpO2kuZGVmYXVsdC5yZXdyaXRlKC9eXC9jYXRlZ29yeVwvLywiL2MvIiksaS5kZWZhdWx0LnJld3JpdGUoL15cL2dyb3VwXC8vLCIvZ3JvdXBzLyIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC9ncm91cHMkLywiL2ciKSxpLmRlZmF1bHQucmV3cml0ZSgvXlwvZ3JvdXBzXC8vLCIvZy8iKSxpLmRlZmF1bHQucmV3cml0ZSgvXC9wcml2YXRlLW1lc3NhZ2VzXC8kLywiL21lc3NhZ2VzLyIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC91c2VycyQvLCIvdSIpLGkuZGVmYXVsdC5yZXdyaXRlKC9eXC91c2Vyc1wvLywiL3UvIiksaS5kZWZhdWx0LnJld3JpdGUoL1wvYWRtaW5cL2ZsYWdzLywiL3JldmlldyIpLG4mJih0PW4uZ2V0KCJ1c2VybmFtZSIpLGkuZGVmYXVsdC5yZXdyaXRlKG5ldyBSZWdFeHAoIl4vdS8iK3QrIi8/JCIsImkiKSwiL3UvIit0KyIvYWN0aXZpdHkiKSksaS5kZWZhdWx0LnJld3JpdGUoL15cL3VcLyhbXlwvXSspXC8/JC8sIi91LyQxL3N1bW1hcnkiLHtleGNlcHRpb25zOlsiL3UvYWNjb3VudC1jcmVhdGVkIiwiL3VzZXJzL2FjY291bnQtY3JlYXRlZCIsIi91L3Bhc3N3b3JkLXJlc2V0IiwiL3VzZXJzL3Bhc3N3b3JkLXJlc2V0Il19KX19fSksZGVmaW5lKCJkaXNjb3Vyc2Uvc2VydmljZXMvZW1vamktc3RvcmUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS9saWIva2V5LXZhbHVlLXN0b3JlIiwiQGVtYmVyL3NlcnZpY2UiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT0iZW1vamlVc2FnZSIscz0iZW1vamlTZWxlY3RlZERpdmVyc2l0eSIsbz0iZGlzY291cnNlX2Vtb2ppc18iO2UuZGVmYXVsdD1uLmRlZmF1bHQuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKCl7dGhpcy5fc3VwZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc3RvcmU9bmV3IHQuZGVmYXVsdChvKSx0aGlzLnN0b3JlLmdldE9iamVjdChpKXx8KHRoaXMuZmF2b3JpdGVzPVtdKX0sZ2V0IGRpdmVyc2l0eSgpe3JldHVybiB0aGlzLnN0b3JlLmdldE9iamVjdChzKXx8MX0sc2V0IGRpdmVyc2l0eShlKXt0aGlzLnN0b3JlLnNldE9iamVjdCh7a2V5OnMsdmFsdWU6ZXx8MX0pfSxnZXQgZmF2b3JpdGVzKCl7cmV0dXJuIHRoaXMuc3RvcmUuZ2V0T2JqZWN0KGkpfHxbXX0sc2V0IGZhdm9yaXRlcyhlKXt0aGlzLnN0b3JlLnNldE9iamVjdCh7a2V5OmksdmFsdWU6ZXx8W119KX0sdHJhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKC8oXjopfCg6JCkvZywiIiksbj10aGlzLmZhdm9yaXRlcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSk7bi51bnNoaWZ0KHQpLG4ubGVuZ3RoPU1hdGgubWluKG4ubGVuZ3RoLDE1KSx0aGlzLmZhdm9yaXRlcz1ufSxyZXNldDpmdW5jdGlvbigpe3ZhciBlPW5ldyB0LmRlZmF1bHQobyk7ZS5zZXRPYmplY3Qoe2tleTppLHZhbHVlOltdfSksZS5zZXRPYmplY3Qoe2tleTpzLHZhbHVlOjF9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3NlcnZpY2VzL2xvZ3Mtbm90aWNlIixbImV4cG9ydHMiLCJAZW1iZXIvdXRpbHMiLCJAZW1iZXIvb2JqZWN0IiwiZGlzY291cnNlLWNvbW1vbi91dGlscy9kZWNvcmF0b3JzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiXSxmdW5jdGlvbihlLHQsbixpLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBzKG4saSxlLHQscyl7dmFyIG89e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7b1tlXT10W2VdfSksby5lbnVtZXJhYmxlPSEhby5lbnVtZXJhYmxlLG8uY29uZmlndXJhYmxlPSEhby5jb25maWd1cmFibGUsKCJ2YWx1ZSJpbiBvfHxvLmluaXRpYWxpemVyKSYmKG8ud3JpdGFibGU9ITApLG89ZS5zbGljZSgpLnJldmVyc2UoKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChuLGksZSl8fGV9LG8pLHMmJnZvaWQgMCE9PW8uaW5pdGlhbGl6ZXImJihvLnZhbHVlPW8uaW5pdGlhbGl6ZXI/by5pbml0aWFsaXplci5jYWxsKHMpOnZvaWQgMCxvLmluaXRpYWxpemVyPXZvaWQgMCksdm9pZCAwPT09by5pbml0aWFsaXplciYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGksbyksbz1udWxsKSxvfXZhciBvLGEsbCx1LGMsZCxwLG07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBmPSJsb2dzLW5vdGljZS10ZXh0IixoPW4uZGVmYXVsdC5leHRlbmQoKG89KDAsaS5vbikoImluaXQiKSxhPSgwLGkuZGVmYXVsdCkoInRleHQiKSxsPSgwLGkuZGVmYXVsdCkoInRleHQiKSx1PSgwLGkuZGVmYXVsdCkoImN1cnJlbnRVc2VyIiksYz0oMCxpLmRlZmF1bHQpKCJpc0VtcHR5IiwiaXNBZG1pbiIpLGQ9KDAsaS5vYnNlcnZlcykoInRleHQiKSxwPSgwLGkuZGVmYXVsdCkoInNpdGVTZXR0aW5ncy5hbGVydF9hZG1pbnNfaWZfZXJyb3JzX3Blcl9ob3VyIiwic2l0ZVNldHRpbmdzLmFsZXJ0X2FkbWluc19pZl9lcnJvcnNfcGVyX21pbnV0ZSIpLHMobT17dGV4dDoiIixfc2V0dXA6ZnVuY3Rpb24oKXt2YXIgZSxvPXRoaXM7dGhpcy5pc0FjdGl2YXRlZCYmKChlPXRoaXMua2V5VmFsdWVTdG9yZS5nZXRJdGVtKGYpKSYmdGhpcy5zZXQoInRleHQiLGUpLHRoaXMubWVzc2FnZUJ1cy5zdWJzY3JpYmUoIi9sb2dzX2Vycm9yX3JhdGVfZXhjZWVkZWQiLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZHVyYXRpb24sbj1lLnJhdGUsaT0wOyJtaW51dGUiPT09dD9pPW8uc2l0ZVNldHRpbmdzLmFsZXJ0X2FkbWluc19pZl9lcnJvcnNfcGVyX21pbnV0ZToiaG91ciI9PT10JiYoaT1vLnNpdGVTZXR0aW5ncy5hbGVydF9hZG1pbnNfaWZfZXJyb3JzX3Blcl9ob3VyKTt2YXIgcz1uPT09aT8icmVhY2hlZCI6ImV4Y2VlZGVkIjtzKz0iXyIrdCsiX01GIixvLnNldCgidGV4dCIsSTE4bi5tZXNzYWdlRm9ybWF0KCJsb2dzX2Vycm9yX3JhdGVfbm90aWNlLiIrcyx7cmVsYXRpdmVBZ2U6KDAsci5hdXRvVXBkYXRpbmdSZWxhdGl2ZUFnZSkobmV3IERhdGUoMWUzKmUucHVibGlzaF9hdCkpLHJhdGU6bixsaW1pdDppLHVybDpEaXNjb3Vyc2UuZ2V0VVJMKCIvbG9ncyIpfSkpfSkpfSxpc0VtcHR5OmZ1bmN0aW9uKGUpe3JldHVybigwLHQuaXNFbXB0eSkoZSl9LG1lc3NhZ2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoZSl9LGlzQWRtaW46ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuYWRtaW59LGhpZGRlbjpmdW5jdGlvbihlLHQpe3JldHVybiF0fHxlfSxfdXBkYXRlS2V5VmFsdWVTdG9yZTpmdW5jdGlvbigpe3RoaXMua2V5VmFsdWVTdG9yZS5zZXRJdGVtKGYsdGhpcy50ZXh0KX0saXNBY3RpdmF0ZWQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxlfHwwPHR9fSwiX3NldHVwIixbb10sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJfc2V0dXAiKSxtKSxzKG0sImlzRW1wdHkiLFthXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImlzRW1wdHkiKSxtKSxzKG0sIm1lc3NhZ2UiLFtsXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIm1lc3NhZ2UiKSxtKSxzKG0sImlzQWRtaW4iLFt1XSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sImlzQWRtaW4iKSxtKSxzKG0sImhpZGRlbiIsW2NdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiaGlkZGVuIiksbSkscyhtLCJfdXBkYXRlS2V5VmFsdWVTdG9yZSIsW2RdLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwiX3VwZGF0ZUtleVZhbHVlU3RvcmUiKSxtKSxzKG0sImlzQWN0aXZhdGVkIixbcF0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCJpc0FjdGl2YXRlZCIpLG0pLG0pKTtlLmRlZmF1bHQ9aH0pLGRlZmluZSgiZGlzY291cnNlL3NlcnZpY2VzL3NlYXJjaCIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsImRpc2NvdXJzZS1jb21tb24vdXRpbHMvZGVjb3JhdG9ycyJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gaShuLGksZSx0LHMpe3ZhciBvPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dFtlXX0pLG8uZW51bWVyYWJsZT0hIW8uZW51bWVyYWJsZSxvLmNvbmZpZ3VyYWJsZT0hIW8uY29uZmlndXJhYmxlLCgidmFsdWUiaW4gb3x8by5pbml0aWFsaXplcikmJihvLndyaXRhYmxlPSEwKSxvPWUuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQobixpLGUpfHxlfSxvKSxzJiZ2b2lkIDAhPT1vLmluaXRpYWxpemVyJiYoby52YWx1ZT1vLmluaXRpYWxpemVyP28uaW5pdGlhbGl6ZXIuY2FsbChzKTp2b2lkIDAsby5pbml0aWFsaXplcj12b2lkIDApLHZvaWQgMD09PW8uaW5pdGlhbGl6ZXImJihPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLG8pLG89bnVsbCksb312YXIgcyxvLHIsYTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXQuZGVmYXVsdC5leHRlbmQoKHM9KDAsbi5vYnNlcnZlcykoInRlcm0iKSxvPSgwLG4uZGVmYXVsdCkoInNlYXJjaENvbnRleHQiKSxpKHI9e3NlYXJjaENvbnRleHRFbmFibGVkOiExLHNlYXJjaENvbnRleHQ6bnVsbCx0ZXJtOm51bGwsaGlnaGxpZ2h0VGVybTpudWxsLF9zZXRoaWdobGlnaHRUZXJtOmZ1bmN0aW9uKCl7dGhpcy5zZXQoImhpZ2hsaWdodFRlcm0iLHRoaXMudGVybSl9LGNvbnRleHRUeXBlOntnZXQ6ZnVuY3Rpb24oZSl7aWYoZSlyZXR1cm4oMCx0LmdldCkoZSwidHlwZSIpfSxzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0kLmV4dGVuZCh7fSx0KTtyZXR1cm4gbi50eXBlPWUsdGhpcy5zZXQoInNlYXJjaENvbnRleHQiLG4pLHRoaXMuZ2V0KCJzZWFyY2hDb250ZXh0LnR5cGUiKX19fSwiX3NldGhpZ2hsaWdodFRlcm0iLFtzXSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsIl9zZXRoaWdobGlnaHRUZXJtIiksciksaShyLCJjb250ZXh0VHlwZSIsW29dLChhPShhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IociwiY29udGV4dFR5cGUiKSk/YS52YWx1ZTp2b2lkIDAse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGluaXRpYWxpemVyOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSkscikscikpfSksZGVmaW5lKCJkaXNjb3Vyc2Uvc2VydmljZXMvdGhlbWUtc2V0dGluZ3MiLFsiZXhwb3J0cyIsIkBlbWJlci9vYmplY3QiLCJAZW1iZXIvc2VydmljZSJdLGZ1bmN0aW9uKGUsbix0KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD10LmRlZmF1bHQuZXh0ZW5kKHtzZXR0aW5nczpudWxsLGluaXQ6ZnVuY3Rpb24oKXt0aGlzLl9zdXBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc2V0dGluZ3M9e319LHJlZ2lzdGVyU2V0dGluZ3M6ZnVuY3Rpb24oZSx0KXt0aGlzLl9zZXR0aW5nc1tlXT10fSxnZXRTZXR0aW5nOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzW2VdPygwLG4uZ2V0KSh0aGlzLl9zZXR0aW5nc1tlXSx0KTpudWxsfSxnZXRPYmplY3RGb3JUaGVtZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fc2V0dGluZ3NbZV19fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2FjdGlvbnMtc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbCx1LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGUpe3JldHVybnt0ZW1wbGF0ZTplLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTplLnVzZXJuYW1lLHBvc3RfdXJsOmUucG9zdF91cmwsdXJsOigwLG4udXNlclBhdGgpKGUudXNlcm5hbWVfbG93ZXIpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hdmF0YXJBdHRzPWMsKDAsdC5jcmVhdGVXaWRnZXQpKCJzbWFsbC11c2VyLWxpc3QiLHt0YWdOYW1lOiJkaXYuY2xlYXJmaXgiLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5saXN0Q2xhc3NOYW1lfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLnVzZXJzO2lmKG4pe3ZhciBpPXRoaXMuY3VycmVudFVzZXI7ZS5hZGRTZWxmJiYhbi5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLnVzZXJuYW1lPT09aS51c2VybmFtZX0pJiYobj1uLmNvbmNhdChjKGkpKSk7dmFyIHM9bnVsbDtlLmRlc2NyaXB0aW9uJiYocz1JMThuLnQoZS5kZXNjcmlwdGlvbix7Y291bnQ6ZS5jb3VudH0pKTt2YXIgbz12b2lkIDAscj1uLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbz1vfHxlLnBvc3RfdXJsLGwuYXZhdGFyRm9yLmNhbGwodCwic21hbGwiLGUpfSk7byYmKHM9KDAsdS5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6RGlzY291cnNlLmdldFVSTChvKX19LHMpKTt2YXIgYT1bcl07cmV0dXJuIHMmJmEucHVzaChzKSxhfX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoImFjdGlvbi1saW5rIix7dGFnTmFtZToic3Bhbi5hY3Rpb24tbGluayIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxpPVtdO3JldHVybiBpLnB1c2goZS50ZXh0KSxpLnB1c2goIi4gIiksbi5wdXNoKHZpcnR1YWxEb20uaCgiYSIsaSkpLG59LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc05hbWV9LGNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHRoaXMuYXR0cnMuYWN0aW9uKX19KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJhY3Rpb25zLXN1bW1hcnkiLHt0YWdOYW1lOiJzZWN0aW9uLnBvc3QtYWN0aW9ucyIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbixpPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLHM9RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuYXZhdGFyLG89RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuZGF0ZU5vZGUscj1bXTtyZXR1cm4gci5wdXNoKCJcbiIpLGUuYWN0aW9uc1N1bW1hcnkmJmUuYWN0aW9uc1N1bW1hcnkubGVuZ3RoJiZlLmFjdGlvbnNTdW1tYXJ5LmZvckVhY2goZnVuY3Rpb24oZSl7ci5wdXNoKCIgICAgICAiKTt2YXIgdD1bXTt0LnB1c2goZS5kZXNjcmlwdGlvbiksci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwb3N0LWFjdGlvbiJ9LHQpKSxyLnB1c2goIlxuICAgICAgIik7ci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJjbGVhcmZpeCJ9LFtdKSksci5wdXNoKCJcbiIpfSksZS5kZWxldGVkX2F0JiYoci5wdXNoKCIgICAgICAiKSwobj1bXSkucHVzaCgiXG4gICAgICAgICIpLG4ucHVzaChpKCJmYXItdHJhc2gtYWx0IikpLG4ucHVzaCgiXG4gICAgICAgICIpLG4ucHVzaChzKCJzbWFsbCIse3RlbXBsYXRlOmUuZGVsZXRlZEJ5QXZhdGFyVGVtcGxhdGUsdXNlcm5hbWU6ZS5kZWxldGVkQnlVc2VybmFtZX0pKSxuLnB1c2goIlxuICAgICAgICAiKSxuLnB1c2gobyhlLmRlbGV0ZWRfYXQpKSxuLnB1c2goIlxuICAgICAgIiksci5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwb3N0LWFjdGlvbiBkZWxldGVkLXBvc3QifSxuKSksci5wdXNoKCJcbiIpKSxyLnB1c2goIiAgIikscn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvYXZhdGFyLWZsYWlyIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiYXZhdGFyLWZsYWlyIix7dGFnTmFtZToiZGl2LmF2YXRhci1mbGFpciIsaXNJY29uOmZ1bmN0aW9uKGUpe3JldHVybiBlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsJiZlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsLmluY2x1ZGVzKCJmYS0iKX0sdGl0bGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpbWFyeV9ncm91cF9uYW1lfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9ImF2YXRhci1mbGFpci0iK2UucHJpbWFyeV9ncm91cF9uYW1lKyIgIisoZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yPyJyb3VuZGVkIjoiIik7cmV0dXJuIHRoaXMuaXNJY29uKGUpfHwodCs9IiBhdmF0YXItZmxhaXItaW1hZ2UiKSx0fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7cmV0dXJuIHRoaXMuaXNJY29uKGUpfHwodCs9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgiK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsKSsiKTsgIiksZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yJiYodCs9ImJhY2tncm91bmQtY29sb3I6ICMiK0hhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3IpKyI7ICIpLGUucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvciYmKHQrPSJjb2xvcjogIyIrSGFuZGxlYmFycy5VdGlscy5lc2NhcGVFeHByZXNzaW9uKGUucHJpbWFyeV9ncm91cF9mbGFpcl9jb2xvcikrIjsgIikse3N0eWxlOnR9fSxodG1sOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNJY29uKGUpKXt2YXIgdD0oMCxuLmNvbnZlcnRJY29uQ2xhc3MpKGUucHJpbWFyeV9ncm91cF9mbGFpcl91cmwpO3JldHVyblsoMCxuLmljb25Ob2RlKSh0KV19cmV0dXJuW119fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2J1dHRvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxpLHMsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkJ1dHRvbkNsYXNzPXZvaWQgMDt2YXIgbz1lLkJ1dHRvbkNsYXNzPXt0YWdOYW1lOiJidXR0b24ud2lkZ2V0LWJ1dHRvbi5idG4iLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmF0dHJzLmNsYXNzTmFtZXx8IiIsbj1lLmxhYmVsfHxlLmNvbnRlbnRzO3JldHVybiBufHwodCs9IiBuby10ZXh0IiksZS5pY29uPyh0Kz0iIGJ0bi1pY29uIixuJiYodCs9Ii10ZXh0IikpOm4mJih0Kz0iIGJ0bi10ZXh0IiksdH0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLmF0dHJzLG49e307cmV0dXJuIHQudGl0bGUmJihlPUkxOG4udCh0LnRpdGxlLHQudGl0bGVPcHRpb25zKSxuWyJhcmlhLWxhYmVsIl09ZSxuLnRpdGxlPWUpLHQuZGlzYWJsZWQmJihuLmRpc2FibGVkPSJ0cnVlIiksdC5kYXRhJiZPYmplY3Qua2V5cyh0LmRhdGEpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bImRhdGEtIitlXT10LmRhdGFbZV19KSxufSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49IWUuaWNvblJpZ2h0O3JldHVybiBlLmljb24mJm4mJnQucHVzaCgoMCxpLmljb25Ob2RlKShlLmljb24se2NsYXNzOmUuaWNvbkNsYXNzfSkpLGUubGFiZWwmJnQucHVzaCgoMCxzLmgpKCJzcGFuLmQtYnV0dG9uLWxhYmVsIixJMThuLnQoZS5sYWJlbCxlLmxhYmVsT3B0aW9ucykpKSxlLmNvbnRlbnRzJiZ0LnB1c2goZS5jb250ZW50cyksZS5pY29uJiYhbiYmdC5wdXNoKCgwLGkuaWNvbk5vZGUpKGUuaWNvbix7Y2xhc3M6ZS5pY29uQ2xhc3N9KSksdH0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycztpZighdC5kaXNhYmxlZClyZXR1cm4gJCgiYnV0dG9uLndpZGdldC1idXR0b24iKS5yZW1vdmVDbGFzcygiZC1ob3ZlciIpLmJsdXIoKSx0LnNlY29uZGFyeUFjdGlvbiYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHQuc2Vjb25kYXJ5QWN0aW9uKSx0LnVybD9uLmRlZmF1bHQucm91dGVUbyh0LnVybCk6dC5zZW5kQWN0aW9uRXZlbnQ/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKHQuYWN0aW9uLGUpOnRoaXMuc2VuZFdpZGdldEFjdGlvbih0LmFjdGlvbix0LmFjdGlvblBhcmFtKX19O2UuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImJ1dHRvbiIsbyksKDAsdC5jcmVhdGVXaWRnZXQpKCJmbGF0LWJ1dHRvbiIsalF1ZXJ5LmV4dGVuZChvLHt0YWdOYW1lOiJidXR0b24ud2lkZ2V0LWJ1dHRvbi5idG4tZmxhdCJ9KSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2NhdGVnb3J5LWxpbmsiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL2hlbHBlcnMvY2F0ZWdvcnktbGluayJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9KGZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX0ocyx0LmRlZmF1bHQpLHMpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksZS5odG1sPSgwLG4uY2F0ZWdvcnlCYWRnZUhUTUwpKGUuY2F0ZWdvcnksZSksZnVuY3Rpb24oZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6dH0odGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuY2FsbCh0aGlzLGUpKX1lLmRlZmF1bHQ9aX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvY29tcG9uZW50LWNvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJAZW1iZXIvYXBwbGljYXRpb24iXSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShzLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBlLnN0eWxlLmRpc3BsYXk9ImlubGluZS1mbGV4IixlLmNsYXNzTmFtZT0id2lkZ2V0LWNvbXBvbmVudC1jb25uZWN0b3IiLHRoaXMuZWxlbT1lLCgwLHQuc2NoZWR1bGVPbmNlKSgiYWZ0ZXJSZW5kZXIiLHRoaXMsdGhpcy5jb25uZWN0Q29tcG9uZW50KSx0aGlzLmVsZW19fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMsaT0hMTtyZXR1cm4gdGhpcy50cmFja2VkUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Qub3B0c1tlXSE9PW4ub3B0c1tlXSYmKGk9ITApfSksaT90aGlzLmluaXQoKTpudWxsfX0se2tleToiY29ubmVjdENvbXBvbmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmVsZW0sdD10aGlzLm9wdHMsbj10aGlzLndpZGdldCxpPXRoaXMuY29tcG9uZW50TmFtZSxzPW4uX2ZpbmRWaWV3KCksbz1uLnJlZ2lzdGVyLmxvb2t1cEZhY3RvcnkoImNvbXBvbmVudDoiK2kpLmNyZWF0ZSh0KTtyLnNldE93bmVyJiYoMCxyLnNldE93bmVyKShvLCgwLHIuZ2V0T3duZXIpKHMpKSxvLnNlbGVjdEtpdCYmby5kaWRSZWNlaXZlQXR0cnMoKSxzLl9jb25uZWN0ZWQucHVzaChvKSxvLnJlbmRlcmVyLmFwcGVuZFRvKG8sZSl9fV0pLHMpO2Z1bmN0aW9uIHMoZSx0LG4saSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksdGhpcy53aWRnZXQ9ZSx0aGlzLm9wdHM9bix0aGlzLmNvbXBvbmVudE5hbWU9dCx0aGlzLnRyYWNrZWRQcm9wZXJ0aWVzPWl8fFtdfShlLmRlZmF1bHQ9bikucHJvdG90eXBlLnR5cGU9IldpZGdldCJ9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2Nvbm5lY3RvciIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9kZXByZWNhdGVkIiwiQGVtYmVyL2FwcGxpY2F0aW9uIl0sZnVuY3Rpb24oZSx0LGEsbCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgbj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShzLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBzPSQoIjxkaXYgY2xhc3M9J3dpZGdldC1jb25uZWN0b3InPjwvZGl2PiIpLGU9c1swXSxvPXRoaXMub3B0cyxyPXRoaXMud2lkZ2V0O3JldHVybigwLHQubmV4dCkoZnVuY3Rpb24oKXt2YXIgZT1yLl9maW5kVmlldygpO28udGVtcGxhdGVOYW1lJiYoMCxhLmRlZmF1bHQpKCJVc2luZyBhICd0ZW1wbGF0ZU5hbWUnIGZvciBhIGNvbm5lY3RvciBpcyBkZXByZWNhdGVkLiBVc2UgJ2NvbXBvbmVudCcgaW5zdGVhZCBbIitvLnRlbXBsYXRlTmFtZSsiXSIpO3ZhciB0LG49bC5nZXRPd25lcj8oMCxsLmdldE93bmVyKShlKTplLmNvbnRhaW5lcixpPXZvaWQgMDtvLmNvbXBvbmVudCYmKGk9ci5yZWdpc3Rlci5sb29rdXBGYWN0b3J5KCJjb21wb25lbnQ6Y29ubmVjdG9yLWNvbnRhaW5lciIpLmNyZWF0ZSh7bGF5b3V0TmFtZToiY29tcG9uZW50cy8iK28uY29tcG9uZW50LG1vZGVsOnIuZmluZEFuY2VzdG9yTW9kZWwoKX0pKSxvLnRlbXBsYXRlTmFtZSYmKHQ9dm9pZCAwLCJtb2RlbCI9PT1vLmNvbnRleHQmJih0PXIuZmluZEFuY2VzdG9yTW9kZWwoKSksaT1FbWJlci5WaWV3LmNyZWF0ZSh7Y29udGFpbmVyOm58fHIucmVnaXN0ZXIsdGVtcGxhdGVOYW1lOm8udGVtcGxhdGVOYW1lLGNvbnRleHQ6dH0pKSxpJiYobC5zZXRPd25lciYmKDAsbC5zZXRPd25lcikoaSwoMCxsLmdldE93bmVyKShlKSksZS5fY29ubmVjdGVkLnB1c2goaSksaS5yZW5kZXJlci5hcHBlbmRUbyhpLHNbMF0pKX0pLGV9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxzKTtmdW5jdGlvbiBzKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMscyksdGhpcy53aWRnZXQ9ZSx0aGlzLm9wdHM9dH0oZS5kZWZhdWx0PW4pLnByb3RvdHlwZS50eXBlPSJXaWRnZXQifSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9jdXN0b20tbm90aWZpY2F0aW9uLWl0ZW0iLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5Il0sZnVuY3Rpb24oZSx0LHMsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwiY3VzdG9tLW5vdGlmaWNhdGlvbi1pdGVtIix7bm90aWZpY2F0aW9uVGl0bGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50aXRsZT9JMThuLnQodC50aXRsZSk6IiJ9LHRleHQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj0oMCxzLmZvcm1hdFVzZXJuYW1lKSh0LmRpc3BsYXlfdXNlcm5hbWUpLGk9dGhpcy5kZXNjcmlwdGlvbih0KTtyZXR1cm4gSTE4bi50KHQubWVzc2FnZSx7ZGVzY3JpcHRpb246aSx1c2VybmFtZTpufSl9LGljb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxuLmljb25Ob2RlKSgibm90aWZpY2F0aW9uLiIrdC5tZXNzYWdlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZGVjb3JhdG9yLWhlbHBlciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvY29ubmVjdG9yIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWNvb2tlZCIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIl0sZnVuY3Rpb24oZSx0LG4saSxzKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZvKGUucHJvdG90eXBlLHQpLG4mJm8oZSxuKSxlfShhLFt7a2V5OiJhdHRhY2giLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD10fHx0aGlzLndpZGdldC5hdHRycyxuPW58fHRoaXMud2lkZ2V0LnN0YXRlLHRoaXMud2lkZ2V0LmF0dGFjaChlLHQsbil9fSx7a2V5OiJnZXRNb2RlbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWRnZXQuZmluZEFuY2VzdG9yTW9kZWwoKX19LHtrZXk6InJhd0h0bWwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcy5kZWZhdWx0KHtodG1sOmV9KX19LHtrZXk6ImNvb2tlZCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBpLmRlZmF1bHQoe2Nvb2tlZDplfSl9fSx7a2V5OiJjb25uZWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQuZGVmYXVsdCh0aGlzLndpZGdldCxlKX19XSksYSk7ZnVuY3Rpb24gYShlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsYSksdGhpcy53aWRnZXQ9ZSx0aGlzLmF0dHJzPXQsdGhpcy5jYW5Db25uZWN0Q29tcG9uZW50PSEwLHRoaXMuc3RhdGU9bix0aGlzLnJlZ2lzdGVyPWUucmVnaXN0ZXIsdGhpcy5yZWdpc3Rlci5kZXByZWNhdGVDb250YWluZXIodGhpcyl9ci5wcm90b3R5cGUuaD1uLmgsZS5kZWZhdWx0PXJ9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLFsiZXhwb3J0cyIsIkBlbWJlci91dGlscyIsImRpc2NvdXJzZS9saWIvaW50ZXJjZXB0LWNsaWNrIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3VybCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiXSxmdW5jdGlvbihlLGkscyxjLHQscixkLHAsYSxvLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbT12b2lkIDA7ZS5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbT0oMCx0LmNyZWF0ZVdpZGdldCkoImRlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLHt0YWdOYW1lOiJsaSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiBlLmdldCgicmVhZCIpJiZ0LnB1c2goInJlYWQiKSxlLmlzX3dhcm5pbmcmJnQucHVzaCgiaXMtd2FybmluZyIpLHR9LHVybDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmF0dHJzLG49ZS5iYWRnZV9pZDtpZihuKXt2YXIgaT1lLmJhZGdlX3NsdWc7aT1pfHxlLmJhZGdlX25hbWUucmVwbGFjZSgvW15BLVphLXowLTlfXSsvZywiLSIpLnRvTG93ZXJDYXNlKCk7dmFyIHM9KHM9ZS51c2VybmFtZSk/Ij91c2VybmFtZT0iK3MudG9Mb3dlckNhc2UoKToiIjtyZXR1cm4gRGlzY291cnNlLmdldFVSTCgiL2JhZGdlcy8iK24rIi8iK2krcyl9dmFyIG89dC50b3BpY19pZDtyZXR1cm4gbz8oMCxhLnBvc3RVcmwpKHQuc2x1ZyxvLHQucG9zdF9udW1iZXIpOmUuZ3JvdXBfaWQ/KDAsci51c2VyUGF0aCkoZS51c2VybmFtZSsiL21lc3NhZ2VzL2dyb3VwLyIrZS5ncm91cF9uYW1lKTp2b2lkIDB9LGRlc2NyaXB0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUuYmFkZ2VfbmFtZTtpZih0KXJldHVybigwLGEuZXNjYXBlRXhwcmVzc2lvbikodCk7aWYodGhpcy5hdHRycy5mYW5jeV90aXRsZSlyZXR1cm4gdGhpcy5hdHRycy50b3BpY19pZD8nPHNwYW4gZGF0YS10b3BpYy1pZD0iJyt0aGlzLmF0dHJzLnRvcGljX2lkKyciPicrdGhpcy5hdHRycy5mYW5jeV90aXRsZSsiPC9zcGFuPiI6dGhpcy5hdHRycy5mYW5jeV90aXRsZTt2YXIgbj1lLnRvcGljX3RpdGxlO3JldHVybigwLGkuaXNFbXB0eSkobik/IiI6KDAsYS5lc2NhcGVFeHByZXNzaW9uKShuKX0sdGV4dDpmdW5jdGlvbihlLHQpe3ZhciBuPSgwLGEuZm9ybWF0VXNlcm5hbWUpKHQuZGlzcGxheV91c2VybmFtZSksaT10aGlzLmRlc2NyaXB0aW9uKHQpO3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMuIitlLHtkZXNjcmlwdGlvbjppLHVzZXJuYW1lOm59KX0saWNvbjpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmljb25Ob2RlKSgibm90aWZpY2F0aW9uLiIrZSl9LG5vdGlmaWNhdGlvblRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlP0kxOG4udCgibm90aWZpY2F0aW9ucy50aXRsZXMuIitlKToiIn0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vdGlmaWNhdGlvbl90eXBlLG49dGhpcy5zaXRlLmdldCgibm90aWZpY2F0aW9uTG9va3VwIilbdF0saT1lLmRhdGEscz0oMCxwLmVtb2ppVW5lc2NhcGUpKHRoaXMudGV4dChuLGkpKSxvPXRoaXMuaWNvbihuLGkpLHI9dGhpcy5ub3RpZmljYXRpb25UaXRsZShuLGkpLGE9bmV3IGMuZGVmYXVsdCh7aHRtbDoiPGRpdj4iK3MrIjwvZGl2PiJ9KSxsPVtvLGFdLHU9dGhpcy51cmwoaSk7cmV0dXJuIHU/KDAsZC5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6dSx0aXRsZTpyLCJkYXRhLWF1dG8tcm91dGUiOiEwfX0sbCk6bH0sY2xpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmF0dHJzLnNldCgicmVhZCIsITApO3ZhciBuLGk9dGhpcy5hdHRycy5pZDsoMCxvLnNldFRyYW5zaWVudEhlYWRlcikoIkRpc2NvdXJzZS1DbGVhci1Ob3RpZmljYXRpb25zIixpKSxkb2N1bWVudCYmZG9jdW1lbnQuY29va2llJiYobj1EaXNjb3Vyc2UuQmFzZVVyaXx8Ii8iLGRvY3VtZW50LmNvb2tpZT0iY249IitpKyI7IHBhdGg9IituKyI7IGV4cGlyZXM9RnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBHTVQiKSwoMCxzLndhbnRzTmV3V2luZG93KShlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRFdmVudCgibGlua0NsaWNrZWQiKSxyLmRlZmF1bHQucm91dGVUbyh0aGlzLnVybCh0aGlzLmF0dHJzLmRhdGEpLHthZnRlclJvdXRlQ29tcGxldGU6ZnVuY3Rpb24oKXt0LmF0dHJzLmRhdGEucmV2aXNpb25fbnVtYmVyJiZ0LmFwcEV2ZW50cy50cmlnZ2VyKCJwb3N0OnNob3ctcmV2aXNpb24iLHQuYXR0cnMucG9zdF9udW1iZXIsdC5hdHRycy5kYXRhLnJldmlzaW9uX251bWJlcil9fSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kaXNjb3Vyc2UtdGFncyIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWdzIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT0oZnVuY3Rpb24oZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfShzLHQuZGVmYXVsdCkscyk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxzKSxlLmh0bWw9KDAsbi5kZWZhdWx0KShlLnRvcGljLGUpLGZ1bmN0aW9uKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9KHRoaXMsKHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpLmNhbGwodGhpcyxlKSl9ZS5kZWZhdWx0PWl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2VtYmVkZGVkLXBvc3QiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtY29va2VkIiwiZGlzY291cnNlL3dpZGdldHMvZGVjb3JhdG9yLWhlbHBlciIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLG4saSx0LHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoInBvc3QtbGluay1hcnJvdyIse3RhZ05hbWU6ImRpdi5wb3N0LWxpbmstYXJyb3ciLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saSxzPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLG89W107cmV0dXJuIG8ucHVzaCgiXG4iKSxlLmFib3ZlPyhvLnB1c2goIiAgICAgICIpLChuPVtdKS5wdXNoKCJcbiAgICAgICAgIiksbi5wdXNoKHMoImFycm93LXVwIikpLG4ucHVzaCgiXG4gICAgICAiKSxvLnB1c2godmlydHVhbERvbS5oKCJhIix7Y2xhc3NOYW1lOiJwb3N0LWluZm8gYXJyb3ciLHRpdGxlOkkxOG4udCgidG9waWMuanVtcF9yZXBseV91cCIpfSxuKSkpOihvLnB1c2goIiAgICAgICIpLChpPVtdKS5wdXNoKCJcbiAgICAgICAgIiksaS5wdXNoKHMoImFycm93LWRvd24iKSksaS5wdXNoKCJcbiAgICAgICIpLG8ucHVzaCh2aXJ0dWFsRG9tLmgoImEiLHtjbGFzc05hbWU6InBvc3QtaW5mbyBhcnJvdyIsdGl0bGU6STE4bi50KCJ0b3BpYy5qdW1wX3JlcGx5X2Rvd24iKX0saSkpKSxvLnB1c2goIlxuIiksby5wdXNoKCIgICIpLG99LGNsaWNrOmZ1bmN0aW9uKCl7by5kZWZhdWx0LnJvdXRlVG8odGhpcy5hdHRycy5zaGFyZVVybCl9fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgiZW1iZWRkZWQtcG9zdCIse2J1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJlbWJlZGRlZC1wb3N0LSIrZS5pZH0saHRtbDpmdW5jdGlvbihlLHQpe3JldHVybiBlLmVtYmVkZGVkUG9zdD0hMCxbKDAscy5oKSgiZGl2LnJlcGx5Iix7YXR0cmlidXRlczp7ImRhdGEtcG9zdC1pZCI6ZS5pZH19LFsoMCxzLmgpKCJkaXYucm93IixbdGhpcy5hdHRhY2goInBvc3QtYXZhdGFyIixlKSwoMCxzLmgpKCJkaXYudG9waWMtYm9keSIsWygwLHMuaCkoImRpdi50b3BpYy1tZXRhLWRhdGEiLFt0aGlzLmF0dGFjaCgicG9zdGVyLW5hbWUiLGUpLHRoaXMuYXR0YWNoKCJwb3N0LWxpbmstYXJyb3ciLHthYm92ZTp0LmFib3ZlLHNoYXJlVXJsOmUuc2hhcmVVcmx9KV0pLG5ldyBuLmRlZmF1bHQoZSxuZXcgaS5kZWZhdWx0KHRoaXMpLHRoaXMuY3VycmVudFVzZXIpXSldKV0pXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZW1vamkiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS9saWIvdGV4dCIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlcGxhY2VFbW9qaT1mdW5jdGlvbihlKXt2YXIgdD0oMCxuLmVtb2ppVW5lc2NhcGUpKEhhbmRsZWJhcnMuVXRpbHMuZXNjYXBlRXhwcmVzc2lvbihlKSk7cmV0dXJuW25ldyBpLmRlZmF1bHQoe2h0bWw6IjxzcGFuPiIrdCsiPC9zcGFuPiJ9KV19LGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImVtb2ppIix7dGFnTmFtZToiaW1nLmVtb2ppIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9e3NyYzooMCxuLmVtb2ppVXJsRm9yKShlLm5hbWUpLGFsdDoiOiIrZS5uYW1lKyI6In07cmV0dXJuIGUudGl0bGUmJih0LnRpdGxlPWUubmFtZSksdH19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvZm9vdGVyLW5hdiIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiZm9vdGVyLW5hdiIse3RhZ05hbWU6ImRpdi5mb290ZXItbmF2LXdpZGdldCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoiZ29CYWNrIixpY29uOiJjaGV2cm9uLWxlZnQiLGNsYXNzTmFtZToiYnRuLWxhcmdlIixkaXNhYmxlZDohZS5jYW5Hb0JhY2t9KSksdC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoiZ29Gb3J3YXJkIixpY29uOiJjaGV2cm9uLXJpZ2h0IixjbGFzc05hbWU6ImJ0bi1sYXJnZSIsZGlzYWJsZWQ6IWUuY2FuR29Gb3J3YXJkfSkpLCgwLG4uaXNBcHBXZWJ2aWV3KSgpJiYodC5wdXNoKHRoaXMuYXR0YWNoKCJmbGF0LWJ1dHRvbiIse2FjdGlvbjoic2hhcmUiLGljb246ImxpbmsiLGNsYXNzTmFtZToiYnRuLWxhcmdlIn0pKSx0LnB1c2godGhpcy5hdHRhY2goImZsYXQtYnV0dG9uIix7YWN0aW9uOiJkaXNtaXNzIixpY29uOiJjaGV2cm9uLWRvd24iLGNsYXNzTmFtZToiYnRuLWxhcmdlIn0pKSksdH0sZGlzbWlzczpmdW5jdGlvbigpeygwLG4ucG9zdFJOV2Vidmlld01lc3NhZ2UpKCJkaXNtaXNzIiwhMCl9LHNoYXJlOmZ1bmN0aW9uKCl7KDAsbi5wb3N0Uk5XZWJ2aWV3TWVzc2FnZSkoInNoYXJlVXJsIix3aW5kb3cubG9jYXRpb24uaHJlZil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2dsdWUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL2RpcnR5LWtleXMiLCJkaXNjb3Vyc2UtY29tbW9uL2NvbmZpZy9lbnZpcm9ubWVudCJdLGZ1bmN0aW9uKGUsaSxuLHMsbyxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciB0PShmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJmEoZS5wcm90b3R5cGUsdCksbiYmYShlLG4pLGV9KGwsW3trZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9yb290Tm9kZT1lLHRoaXMucXVldWVSZXJlbmRlcigpfX0se2tleToicXVldWVSZXJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl90aW1lb3V0PSgwLGkuc2NoZWR1bGVPbmNlKSgicmVuZGVyIix0aGlzLHRoaXMucmVyZW5kZXJXaWRnZXQpfX0se2tleToicmVyZW5kZXJXaWRnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoKDAsaS5jYW5jZWwpKHRoaXMuX3RpbWVvdXQpLCJ0ZXN0Ij09PXIuZGVmYXVsdC5lbnZpcm9ubWVudCl0cnl7dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlcnZpY2U6c3RvcmUiKX1jYXRjaChlKXtyZXR1cm59dmFyIGU9bmV3IHRoaXMuX3dpZGdldENsYXNzKHRoaXMuYXR0cnMsdGhpcy5yZWdpc3Rlcix7ZGlydHlLZXlzOnRoaXMuZGlydHlLZXlzfSksdD0oMCxuLmRpZmYpKHRoaXMuX3RyZWV8fHRoaXMuX3Jvb3ROb2RlLGUpOyhlLl9yZXJlbmRlcmFibGU9dGhpcykuX3Jvb3ROb2RlPSgwLG4ucGF0Y2gpKHRoaXMuX3Jvb3ROb2RlLHQpLHRoaXMuX3RyZWU9ZX19LHtrZXk6ImNsZWFuVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG49W107IWZ1bmN0aW9uIHQoZSl7ZS52bm9kZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpeyJDdXN0b21XaWRnZXQiPT09ZS5jb25zdHJ1Y3Rvci5uYW1lJiYobi5wdXNoKGUpLHQoZSkpfSl9KHRoaXMuX3RyZWUpLG4ucmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGVzdHJveSgpfSksKDAsaS5jYW5jZWwpKHRoaXMuX3RpbWVvdXQpfX1dKSxsKTtmdW5jdGlvbiBsKGUsdCxuKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxsKSx0aGlzLl90cmVlPW51bGwsdGhpcy5fcm9vdE5vZGU9bnVsbCx0aGlzLnJlZ2lzdGVyPXQsdGhpcy5hdHRycz1uLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLmRpcnR5S2V5cz1uZXcgby5kZWZhdWx0KGUpLHRoaXMuX3dpZGdldENsYXNzPSgwLHMucXVlcnlSZWdpc3RyeSkoZSl8fHRoaXMucmVnaXN0ZXIubG9va3VwRmFjdG9yeSgid2lkZ2V0OiIrZSksdGhpcy5fd2lkZ2V0Q2xhc3N8fGNvbnNvbGUuZXJyb3IoIkVycm9yOiBDb3VsZCBub3QgZmluZCB3aWRnZXQ6ICIrZSl9ZS5kZWZhdWx0PXR9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2dyb3VwLW1lc3NhZ2Utc3VtbWFyeS1ub3RpZmljYXRpb24taXRlbSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIl0sZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJncm91cC1tZXNzYWdlLXN1bW1hcnktbm90aWZpY2F0aW9uLWl0ZW0iLHt0ZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5pbmJveF9jb3VudCxpPXQuZ3JvdXBfbmFtZTtyZXR1cm4gSTE4bi50KCJub3RpZmljYXRpb25zLmdyb3VwX21lc3NhZ2Vfc3VtbWFyeSIse2NvdW50Om4sZ3JvdXBfbmFtZTppfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2hhbWJ1cmdlci1jYXRlZ29yaWVzIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiZGlzY291cnNlL21vZGVscy9jYXRlZ29yeSJdLGZ1bmN0aW9uKGUsdCxyLHMsbyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoImhhbWJ1cmdlci1jYXRlZ29yeSIse3RhZ05hbWU6ImxpLmNhdGVnb3J5LWxpbmsiLGh0bWw6ZnVuY3Rpb24oZSl7ZS5wYXJlbnRfY2F0ZWdvcnlfaWQmJih0aGlzLnRhZ05hbWUrPSIuc3ViY2F0ZWdvcnkiKSx0aGlzLnRhZ05hbWUrPSIuY2F0ZWdvcnktIitvLmRlZmF1bHQuc2x1Z0ZvcihlLCItIik7dmFyIHQsbj1bdGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTplLGFsbG93VW5jYXRlZ29yaXplZDohMH0pXSxpPXBhcnNlSW50KGUuZ2V0KCJ1bnJlYWRUb3BpY3MiKSwxMCkrcGFyc2VJbnQoZS5nZXQoIm5ld1RvcGljcyIpLDEwKTtyZXR1cm4gaSYmbi5wdXNoKCgwLHIuaCkoImEuYmFkZ2UuYmFkZ2Utbm90aWZpY2F0aW9uIix7YXR0cmlidXRlczp7aHJlZjplLmdldCgidXJsIil9fSwoMCxzLm51bWJlcikoaSkpKSx0aGlzLmN1cnJlbnRVc2VyfHwodD12b2lkIDAsdD1lLmdldCgic2hvd19zdWJjYXRlZ29yeV9saXN0Iik/ZS5nZXQoInRvdGFsVG9waWNDb3VudCIpOmUuZ2V0KCJ0b3BpY19jb3VudCIpLG4ucHVzaCgoMCxyLmgpKCJiLnRvcGljcy1jb3VudCIsKDAscy5udW1iZXIpKHQpKSkpLG59fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgiaGFtYnVyZ2VyLWNhdGVnb3JpZXMiLHt0YWdOYW1lOiJ1bC5jYXRlZ29yeS1saW5rcy5jbGVhcmZpeCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49RGlzY291cnNlLmdldFVSTCgiL2NhdGVnb3JpZXMiKSxpPUkxOG4udCgiZmlsdGVycy5jYXRlZ29yaWVzLnRpdGxlIik7MDxlLm1vcmVDb3VudCYmKGk9STE4bi50KCJjYXRlZ29yaWVzLm5fbW9yZSIse2NvdW50OmUubW9yZUNvdW50fSkpO3ZhciBzPVsoMCxyLmgpKCJsaS5oZWFkaW5nIiwoMCxyLmgpKCJhLmQtbGluay5jYXRlZ29yaWVzLWxpbmsiLHthdHRyaWJ1dGVzOntocmVmOm59fSxpKSldLG89ZS5jYXRlZ29yaWVzO2lmKDAhPT1vLmxlbmd0aClyZXR1cm4gcz1zLmNvbmNhdChvLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5hdHRhY2goImhhbWJ1cmdlci1jYXRlZ29yeSIsZSl9KSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2hhbWJ1cmdlci1tZW51IixbImV4cG9ydHMiLCJAZW1iZXIvcnVubG9vcCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2UvbGliL25vdGlmaWNhdGlvbi1sZXZlbHMiXSxmdW5jdGlvbihlLGEsbyxyLG4saSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2Z1bmN0aW9uIHUoZSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLGUpfSgwLG8uY3JlYXRlV2lkZ2V0KSgicHJpb3JpdHktZmFxLWxpbmsiLHt0YWdOYW1lOiJhLmZhcS1wcmlvcml0eS53aWRnZXQtbGluayIsYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybntocmVmOmUuaHJlZn19LGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm5bSTE4bi50KCJmYXEiKSwiICIsKDAsci5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24iLEkxOG4udCgibmV3X2l0ZW0iKSldfSxjbGljazpmdW5jdGlvbihlKXt2YXIgdD10aGlzO2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNpdGVTZXR0aW5ncy5mYXFfdXJsPT09dGhpcy5hdHRycy5ocmVmPygwLGkuYWpheCkoKDAsbi51c2VyUGF0aCkoInJlYWQtZmFxIikse21ldGhvZDoiUE9TVCJ9KS50aGVuKGZ1bmN0aW9uKCl7dC5jdXJyZW50VXNlci5zZXQoInJlYWRfZmFxIiwhMCksbi5kZWZhdWx0LnJvdXRlVG9UYWcoJChlLnRhcmdldCkuY2xvc2VzdCgiYSIpWzBdKX0pOm4uZGVmYXVsdC5yb3V0ZVRvVGFnKCQoZS50YXJnZXQpLmNsb3Nlc3QoImEiKVswXSl9fSksZS5kZWZhdWx0PSgwLG8uY3JlYXRlV2lkZ2V0KSgiaGFtYnVyZ2VyLW1lbnUiLHt0YWdOYW1lOiJkaXYuaGFtYnVyZ2VyLXBhbmVsIixzZXR0aW5nczp7c2hvd0NhdGVnb3JpZXM6ITAsbWF4V2lkdGg6MzIwLHNob3dGQVE6ITAsc2hvd0Fib3V0OiEwfSxhZG1pbkxpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVt7cm91dGU6ImFkbWluIixjbGFzc05hbWU6ImFkbWluLWxpbmsiLGljb246IndyZW5jaCIsbGFiZWw6ImFkbWluX3RpdGxlIn1dO3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmFkbWluJiZlLnB1c2goe2hyZWY6Ii9hZG1pbi9zaXRlX3NldHRpbmdzIixpY29uOiJjb2ciLGxhYmVsOiJhZG1pbi5zaXRlX3NldHRpbmdzLnRpdGxlIixjbGFzc05hbWU6InNldHRpbmdzLWxpbmsifSksZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXR0YWNoKCJsaW5rIixlKX0pfSxsb29rdXBDb3VudDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnJlZ2lzdGVyLmxvb2t1cCgidG9waWMtdHJhY2tpbmctc3RhdGU6bWFpbiIpO3JldHVybiB0P3QubG9va3VwQ291bnQoZSk6MH0sc2hvd1VzZXJEaXJlY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV91c2VyX2RpcmVjdG9yeSYmISh0aGlzLnNpdGVTZXR0aW5ncy5oaWRlX3VzZXJfcHJvZmlsZXNfZnJvbV9wdWJsaWMmJiF0aGlzLmN1cnJlbnRVc2VyKX0sZ2VuZXJhbExpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuc2l0ZVNldHRpbmdzLG49W107bi5wdXNoKHtyb3V0ZToiZGlzY292ZXJ5LmxhdGVzdCIsY2xhc3NOYW1lOiJsYXRlc3QtdG9waWNzLWxpbmsiLGxhYmVsOiJmaWx0ZXJzLmxhdGVzdC50aXRsZSIsdGl0bGU6ImZpbHRlcnMubGF0ZXN0LmhlbHAifSksdGhpcy5jdXJyZW50VXNlciYmKG4ucHVzaCh7cm91dGU6ImRpc2NvdmVyeS5uZXciLGNsYXNzTmFtZToibmV3LXRvcGljcy1saW5rIixsYWJlbENvdW50OiJmaWx0ZXJzLm5ldy50aXRsZV93aXRoX2NvdW50IixsYWJlbDoiZmlsdGVycy5uZXcudGl0bGUiLHRpdGxlOiJmaWx0ZXJzLm5ldy5oZWxwIixjb3VudDp0aGlzLmxvb2t1cENvdW50KCJuZXciKX0pLG4ucHVzaCh7cm91dGU6ImRpc2NvdmVyeS51bnJlYWQiLGNsYXNzTmFtZToidW5yZWFkLXRvcGljcy1saW5rIixsYWJlbENvdW50OiJmaWx0ZXJzLnVucmVhZC50aXRsZV93aXRoX2NvdW50IixsYWJlbDoiZmlsdGVycy51bnJlYWQudGl0bGUiLHRpdGxlOiJmaWx0ZXJzLnVucmVhZC5oZWxwIixjb3VudDp0aGlzLmxvb2t1cENvdW50KCJ1bnJlYWQiKX0pKSx0aGlzLmN1cnJlbnRVc2VyJiYodGhpcy5jdXJyZW50VXNlci5zdGFmZnx8dGhpcy5jdXJyZW50VXNlci5yZXZpZXdhYmxlX2NvdW50KSYmbi5wdXNoKHtyb3V0ZTplLnJldmlld2FibGVfZGVmYXVsdF90b3BpY3M/InJldmlldy50b3BpY3MiOiJyZXZpZXciLGNsYXNzTmFtZToicmV2aWV3IixsYWJlbDoicmV2aWV3LnRpdGxlIixiYWRnZUNvdW50OiJyZXZpZXdhYmxlX2NvdW50IixiYWRnZUNsYXNzOiJyZXZpZXdhYmxlcyJ9KSxuLnB1c2goe3JvdXRlOiJkaXNjb3ZlcnkudG9wIixjbGFzc05hbWU6InRvcC10b3BpY3MtbGluayIsbGFiZWw6ImZpbHRlcnMudG9wLnRpdGxlIix0aXRsZToiZmlsdGVycy50b3AuaGVscCJ9KSxlLmVuYWJsZV9iYWRnZXMmJm4ucHVzaCh7cm91dGU6ImJhZGdlcyIsY2xhc3NOYW1lOiJiYWRnZS1saW5rIixsYWJlbDoiYmFkZ2VzLnRpdGxlIn0pLHRoaXMuc2hvd1VzZXJEaXJlY3RvcnkoKSYmbi5wdXNoKHtyb3V0ZToidXNlcnMiLGNsYXNzTmFtZToidXNlci1kaXJlY3RvcnktbGluayIsbGFiZWw6ImRpcmVjdG9yeS50aXRsZSJ9KSx0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfZ3JvdXBfZGlyZWN0b3J5JiZuLnB1c2goe3JvdXRlOiJncm91cHMiLGNsYXNzTmFtZToiZ3JvdXBzLWxpbmsiLGxhYmVsOiJncm91cHMuaW5kZXgudGl0bGUifSksdGhpcy5zaXRlU2V0dGluZ3MudGFnZ2luZ19lbmFibGVkJiZuLnB1c2goe3JvdXRlOiJ0YWdzIixsYWJlbDoidGFnZ2luZy50YWdzIn0pO3ZhciBpPXUoKDAsby5hcHBseURlY29yYXRvcnMpKHRoaXMsImdlbmVyYWxMaW5rcyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKSk7cmV0dXJuIG4uY29uY2F0KGkpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5hdHRhY2goImxpbmsiLGUpfSl9LGxpc3RDYXRlZ29yaWVzOmZ1bmN0aW9uKCl7dmFyIG4sdD10aGlzLGU9dGhpcy5zaXRlU2V0dGluZ3MuaGVhZGVyX2Ryb3Bkb3duX2NhdGVnb3J5X2NvdW50LGk9W107aT10aGlzLmN1cnJlbnRVc2VyPyhuPXRoaXMuc2l0ZS5nZXQoImNhdGVnb3JpZXMiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm90aWZpY2F0aW9uX2xldmVsIT09bC5Ob3RpZmljYXRpb25MZXZlbHMuTVVURUR9KSxpPW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUuZ2V0KCJuZXdUb3BpY3MiKXx8MDxlLmdldCgidW5yZWFkVG9waWNzIil9KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0KCJuZXdUb3BpY3MiKSt0LmdldCgidW5yZWFkVG9waWNzIiktKGUuZ2V0KCJuZXdUb3BpY3MiKStlLmdldCgidW5yZWFkVG9waWNzIikpfSksKHRoaXMuY3VycmVudFVzZXIuZ2V0KCJ0b3BfY2F0ZWdvcnlfaWRzIil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXR9KTtlJiYhaS5pbmNsdWRlcyhlKSYmaS5wdXNoKGUpfSksaS5jb25jYXQobi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWkuaW5jbHVkZXMoZSl9KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9waWNfY291bnQtZS50b3BpY19jb3VudH0pKSk6dGhpcy5zaXRlLmdldCgiY2F0ZWdvcmllc0J5Q291bnQiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm90aWZpY2F0aW9uX2xldmVsIT09bC5Ob3RpZmljYXRpb25MZXZlbHMuTVVURUR9KSx0aGlzLnNpdGVTZXR0aW5ncy5hbGxvd191bmNhdGVnb3JpemVkX3RvcGljc3x8KGk9aS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10LnNpdGUudW5jYXRlZ29yaXplZF9jYXRlZ29yeV9pZH0pKTt2YXIgcz1pLmxlbmd0aC1lO3JldHVybiBpPWkuc2xpY2UoMCxlKSx0aGlzLmF0dGFjaCgiaGFtYnVyZ2VyLWNhdGVnb3JpZXMiLHtjYXRlZ29yaWVzOmksbW9yZUNvdW50OnN9KX0sZm9vdGVyTGlua3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9W107dGhpcy5zZXR0aW5ncy5zaG93QWJvdXQmJmkucHVzaCh7cm91dGU6ImFib3V0IixjbGFzc05hbWU6ImFib3V0LWxpbmsiLGxhYmVsOiJhYm91dC5zaW1wbGVfdGl0bGUifSksdGhpcy5zZXR0aW5ncy5zaG93RkFRJiYhZSYmaS5wdXNoKHtocmVmOnQsY2xhc3NOYW1lOiJmYXEtbGluayIsbGFiZWw6ImZhcSJ9KSx0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5jYXBhYmlsaXRpZXMudG91Y2h8fGkucHVzaCh7aHJlZjoiIixhY3Rpb246InNob3dLZXlib2FyZCIsY2xhc3NOYW1lOiJrZXlib2FyZC1zaG9ydGN1dHMtbGluayIsbGFiZWw6ImtleWJvYXJkX3Nob3J0Y3V0c19oZWxwLnRpdGxlIn0pLCh0aGlzLnNpdGUubW9iaWxlVmlld3x8dGhpcy5zaXRlU2V0dGluZ3MuZW5hYmxlX21vYmlsZV90aGVtZSYmdGhpcy5jYXBhYmlsaXRpZXMudG91Y2gpJiZpLnB1c2goe2FjdGlvbjoidG9nZ2xlTW9iaWxlVmlldyIsY2xhc3NOYW1lOiJtb2JpbGUtdG9nZ2xlLWxpbmsiLGxhYmVsOnRoaXMuc2l0ZS5tb2JpbGVWaWV3PyJkZXNrdG9wX3ZpZXciOiJtb2JpbGVfdmlldyJ9KTt2YXIgcz11KCgwLG8uYXBwbHlEZWNvcmF0b3JzKSh0aGlzLCJmb290ZXJMaW5rcyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKSk7cmV0dXJuIGkuY29uY2F0KHMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goImxpbmsiLGUpfSl9LHBhbmVsQ29udGVudHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5jdXJyZW50VXNlcixuPVtdLGk9dGhpcy5zaXRlU2V0dGluZ3MuZmFxX3VybDtpJiYwIT09aS5sZW5ndGh8fChpPURpc2NvdXJzZS5nZXRVUkwoIi9mYXEiKSk7dmFyIHM9dGhpcy5zZXR0aW5ncy5zaG93RkFRJiZ0aGlzLmN1cnJlbnRVc2VyJiYhdGhpcy5jdXJyZW50VXNlci5yZWFkX2ZhcTtyZXR1cm4gcyYmbi5wdXNoKHRoaXMuYXR0YWNoKCJtZW51LWxpbmtzIix7bmFtZToiZmFxLWxpbmsiLGhlYWRpbmc6ITAsY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gdC5hdHRhY2goInByaW9yaXR5LWZhcS1saW5rIix7aHJlZjppfSl9fSkpLGUmJmUuc3RhZmYmJm4ucHVzaCh0aGlzLmF0dGFjaCgibWVudS1saW5rcyIse25hbWU6ImFkbWluLWxpbmtzIixjb250ZW50czpmdW5jdGlvbigpe3ZhciBlPXUoKDAsby5hcHBseURlY29yYXRvcnMpKHQsImFkbWluLWxpbmtzIix0LmF0dHJzLHQuc3RhdGUpKTtyZXR1cm4gdC5hZG1pbkxpbmtzKCkuY29uY2F0KGUpfX0pKSxuLnB1c2godGhpcy5hdHRhY2goIm1lbnUtbGlua3MiLHtuYW1lOiJnZW5lcmFsLWxpbmtzIixjb250ZW50czpmdW5jdGlvbigpe3JldHVybiB0LmdlbmVyYWxMaW5rcygpfX0pKSx0aGlzLnNldHRpbmdzLnNob3dDYXRlZ29yaWVzJiYobi5wdXNoKHRoaXMubGlzdENhdGVnb3JpZXMoKSksbi5wdXNoKCgwLHIuaCkoImhyLmNhdGVnb3JpZXMtc2VwYXJhdG9yIikpKSxuLnB1c2godGhpcy5hdHRhY2goIm1lbnUtbGlua3MiLHtuYW1lOiJmb290ZXItbGlua3MiLG9taXRSdWxlOiEwLGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZm9vdGVyTGlua3MocyxpKX19KSksbn0saHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuYXR0YWNoKCJtZW51LXBhbmVsIix7Y29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gZS5wYW5lbENvbnRlbnRzKCl9LG1heFdpZHRoOnRoaXMuc2V0dGluZ3MubWF4V2lkdGh9KX0sY2xpY2tPdXRzaWRlTW9iaWxlOmZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzLG89dGhpcyxyPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSk7ci5wYXJlbnRzKCIucGFuZWwiKS5sZW5ndGgmJiFyLmhhc0NsYXNzKCJoZWFkZXItY2xvYWsiKT90aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZUhhbWJ1cmdlciIpOih0PSQod2luZG93KS53aWR0aCgpLChuPSQoIi5tZW51LXBhbmVsIikpLmFkZENsYXNzKCJhbmltYXRlIiksaT10aGlzLnNpdGUubW9iaWxlVmlldz8ibGVmdCI6InJpZ2h0IixuLmNzcyhpLC10KSwocz0kKCIuaGVhZGVyLWNsb2FrIikpLmFkZENsYXNzKCJhbmltYXRlIikscy5jc3MoIm9wYWNpdHkiLDApLCgwLGEubGF0ZXIpKGZ1bmN0aW9uKCl7cmV0dXJuIG8uc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlSGFtYnVyZ2VyIil9LDIwMCkpfSxjbGlja091dHNpZGU6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXc/dGhpcy5jbGlja091dHNpZGVNb2JpbGUoZSk6dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVIYW1idXJnZXIiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGJzLWNvbXBpbGVyIixbImV4cG9ydHMiXSxmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJUZW1wbGF0ZXMgc2hvdWxkIGJlIHByZWNvbXBpbGVkIHNlcnZlciBzaWRlIil9fSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9oZWFkZXItY29udGVudHMiLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0Il0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLWNvbnRlbnRzIix7dGFnTmFtZToiZGl2LmNvbnRlbnRzLmNsZWFyZml4Iix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO24ucHVzaCgiXG4gICAgIiksbi5wdXNoKHRoaXMuYXR0YWNoKCJob21lLWxvZ28iLGUpKSxuLnB1c2goIlxuIiksZS50b3BpYyYmKG4ucHVzaCgiICAgICAgIiksbi5wdXNoKHRoaXMuYXR0YWNoKCJoZWFkZXItdG9waWMtaW5mbyIsZSkpLG4ucHVzaCgiXG4iKSksbi5wdXNoKCIgICAgIik7dmFyIGk9W107cmV0dXJuIGkucHVzaCh0aGlzLmF0dHJzLmNvbnRlbnRzKCkpLG4ucHVzaCh2aXJ0dWFsRG9tLmgoImRpdiIse2NsYXNzTmFtZToicGFuZWwgY2xlYXJmaXgifSxpKSksbi5wdXNoKCJcbiAgIiksbn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGVhZGVyLXRvcGljLWluZm8iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsImRpc2NvdXJzZS9saWIvcmVuZGVyLXRhZ3MiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdCJdLGZ1bmN0aW9uKGUsUCxqLFQsdCxFLE8sUyxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLCgwLFAuY3JlYXRlV2lkZ2V0KSgidG9waWMtaGVhZGVyLXBhcnRpY2lwYW50Iix7dGFnTmFtZToic3BhbiIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3JldHVybiJ0cmlnZ2VyLSIrZS50eXBlKyItY2FyZCJ9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS51c2VyLG49ZS5ncm91cCxpPXZvaWQgMCxzPXZvaWQgMDtyZXR1cm4idXNlciI9PT1lLnR5cGU/KGk9KDAsby5hdmF0YXJJbWcpKCJ0aW55Iix7dGVtcGxhdGU6dC5hdmF0YXJfdGVtcGxhdGUsdXNlcm5hbWU6dC51c2VybmFtZX0pLHM9dC5nZXQoInBhdGgiKSk6KGk9WygwLFQuaWNvbk5vZGUpKCJ1c2VycyIpXSxzPURpc2NvdXJzZS5nZXRVUkwoIi9nLyIrbi5uYW1lKSxpLnB1c2goKDAsai5oKSgic3BhbiIsbi5uYW1lKSkpLCgwLGouaCkoImEuaWNvbiIse2F0dHJpYnV0ZXM6e2hyZWY6cywiZGF0YS1hdXRvLXJvdXRlIjohMCx0aXRsZTplLnVzZXJuYW1lfX0saSl9LGNsaWNrOmZ1bmN0aW9uKGUpe3ZhciB0PSQoZS50YXJnZXQpO3RoaXMuYXBwRXZlbnRzLnRyaWdnZXIoInRvcGljLWhlYWRlcjp0cmlnZ2VyLSIrdGhpcy5hdHRycy50eXBlKyItY2FyZCIsdGhpcy5hdHRycy51c2VybmFtZSx0KSxlLnByZXZlbnREZWZhdWx0KCl9fSksZS5kZWZhdWx0PSgwLFAuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLXRvcGljLWluZm8iLHt0YWdOYW1lOiJkaXYuZXh0cmEtaW5mby13cmFwcGVyIixodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzLHM9ZS50b3BpYyxvPVtdLHI9IXMuZ2V0KCJpc193YXJuaW5nIikmJnMuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIik7IXJ8fChuPXRoaXMuY3VycmVudFVzZXImJnRoaXMuY3VycmVudFVzZXIucG1QYXRoKHMpKSYmby5wdXNoKCgwLGouaCkoImEucHJpdmF0ZS1tZXNzYWdlLWdseXBoLXdyYXBwZXIiLHthdHRyaWJ1dGVzOntocmVmOm4sImFyaWEtbGFiZWwiOkkxOG4udCgidXNlci5tZXNzYWdlcy5pbmJveCIpfX0sKDAsVC5pY29uTm9kZSkoImVudmVsb3BlIix7Y2xhc3M6InByaXZhdGUtbWVzc2FnZS1nbHlwaCJ9KSkpO3ZhciBhLGw9cy5nZXQoImRldGFpbHMubG9hZGVkIiksdT1zLmdldCgiZmFuY3lUaXRsZSIpLGM9cy5nZXQoInVybCIpO3UmJmMmJihvLnB1c2godGhpcy5hdHRhY2goInRvcGljLXN0YXR1cyIsZSkpLGE9bmV3IEUuZGVmYXVsdCh7aHRtbDoiPHNwYW4+Iit1KyI8L3NwYW4+In0pLG8ucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2NsYXNzTmFtZToidG9waWMtbGluayIsYWN0aW9uOiJqdW1wVG9Ub3BQb3N0IixocmVmOmMsYXR0cmlidXRlczp7ImRhdGEtdG9waWMtaWQiOnMuZ2V0KCJpZCIpfSxjb250ZW50czpmdW5jdGlvbigpe3JldHVybiBhfX0pKSk7dmFyIGQscCxtLGYsaCxiLGcsdix5LF8sdz1bKDAsai5oKSgiaDEuaGVhZGVyLXRpdGxlIixvKV0seD1zLmdldCgiY2F0ZWdvcnkiKTsobHx8eCkmJigheHx8eC5nZXQoImlzVW5jYXRlZ29yaXplZENhdGVnb3J5IikmJnRoaXMuc2l0ZVNldHRpbmdzLnN1cHByZXNzX3VuY2F0ZWdvcml6ZWRfYmFkZ2V8fChwPVtdLChkPXguZ2V0KCJwYXJlbnRDYXRlZ29yeSIpKSYmcC5wdXNoKHRoaXMuYXR0YWNoKCJjYXRlZ29yeS1saW5rIix7Y2F0ZWdvcnk6ZH0pKSxwLnB1c2godGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTp4fSkpLHcucHVzaCgoMCxqLmgpKCJkaXYuY2F0ZWdvcmllcy13cmFwcGVyIixwKSkpLG09W10sKGY9KDAsTy5kZWZhdWx0KShzKSkmJjA8Zi5sZW5ndGgmJm0ucHVzaChuZXcgRS5kZWZhdWx0KHtodG1sOmZ9KSksciYmKGg9MDxtLmxlbmd0aD81OjEwLGI9W10sdj0oZz1zLmdldCgiZGV0YWlscyIpKS5hbGxvd2VkX3VzZXJzLmxlbmd0aCtnLmFsbG93ZWRfZ3JvdXBzLmxlbmd0aCxnLmFsbG93ZWRfdXNlcnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYi5sZW5ndGg+PWh8fHZvaWQgYi5wdXNoKGkuYXR0YWNoKCJ0b3BpYy1oZWFkZXItcGFydGljaXBhbnQiLHt0eXBlOiJ1c2VyIix1c2VyOmUsdXNlcm5hbWU6ZS51c2VybmFtZX0pKX0pLGcuYWxsb3dlZF9ncm91cHMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gYi5sZW5ndGg+PWh8fHZvaWQgYi5wdXNoKGkuYXR0YWNoKCJ0b3BpYy1oZWFkZXItcGFydGljaXBhbnQiLHt0eXBlOiJncm91cCIsZ3JvdXA6ZSx1c2VybmFtZTplLm5hbWV9KSl9KSxoPHYmJih5PXYtaCxiLnB1c2godGhpcy5hdHRhY2goImxpbmsiLHtjbGFzc05hbWU6Im1vcmUtcGFydGljaXBhbnRzIixhY3Rpb246Imp1bXBUb1RvcFBvc3QiLGhyZWY6YyxhdHRyaWJ1dGVzOnsiZGF0YS10b3BpYy1pZCI6cy5nZXQoImlkIil9LGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIisiK3l9fSkpKSxtLnB1c2goKDAsai5oKSgiZGl2LnRvcGljLWhlYWRlci1wYXJ0aWNpcGFudHMiLGIpKSksbT1tLmNvbmNhdCgoMCxQLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItdGFncyIsZSx0KSksIXRoaXMuc2l0ZVNldHRpbmdzLnRvcGljX2ZlYXR1cmVkX2xpbmtfZW5hYmxlZHx8KF89KDAsUy50b3BpY0ZlYXR1cmVkTGlua05vZGUpKGUudG9waWMpKSYmbS5wdXNoKF8pLG0ubGVuZ3RoJiZ3LnB1c2goKDAsai5oKSgiZGl2LnRvcGljLWhlYWRlci1leHRyYSIsbSkpKTt2YXIgaz0oMCxqLmgpKCJkaXYudGl0bGUtd3JhcHBlciIsdyk7cmV0dXJuKDAsai5oKSgiZGl2LmV4dHJhLWluZm8iLHtjbGFzc05hbWU6MTx3Lmxlbmd0aD8idHdvLXJvd3MiOiIifSxrKX0sanVtcFRvVG9wUG9zdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMudG9waWM7ZSYmdC5kZWZhdWx0LnJvdXRlVG8oZS5nZXQoImZpcnN0UG9zdFVybCIpKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaGVhZGVyIixbImV4cG9ydHMiLCJAZW1iZXIvb2JqZWN0IiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2xpYi91cmwiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS9saWIvc2VhcmNoIiwiZGlzY291cnNlL2xpYi9hamF4IiwiZGlzY291cnNlL2hlbHBlcnMvdXNlci1hdmF0YXIiLCJkaXNjb3Vyc2UvbWl4aW5zL3Njcm9sbC10b3AiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsbixpLHQscyxyLG8sYSxsLHUsYyxkLHApeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hdHRhY2hBZGRpdGlvbmFsUGFuZWw9ZnVuY3Rpb24oZSx0LG4pe2gucHVzaCh7bmFtZTplLHRvZ2dsZTp0LHRyYW5zZm9ybUF0dHJzOm59KX07dmFyIG09e2J1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtpZihlLmFjdGl2ZSlyZXR1cm4iYWN0aXZlIn0sY2xpY2s6ZnVuY3Rpb24oZSl7KDAsYS53YW50c05ld1dpbmRvdykoZSl8fChlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdHRycy5hY3RpdmV8fHRoaXMuc2VuZFdpZGdldEFjdGlvbih0aGlzLmF0dHJzLmFjdGlvbikpfX07KDAsdC5jcmVhdGVXaWRnZXQpKCJoZWFkZXItbm90aWZpY2F0aW9ucyIse3NldHRpbmdzOnthdmF0YXJTaXplOiJtZWRpdW0ifSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PWUudXNlcixuPXt0ZW1wbGF0ZTp0LmdldCgiYXZhdGFyX3RlbXBsYXRlIiksdXNlcm5hbWU6dC5nZXQoInVzZXJuYW1lIil9O3RoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9uYW1lcyYmKG4ubmFtZT10LmdldCgibmFtZSIpKTt2YXIgaT1bKDAsci5hdmF0YXJJbWcpKHRoaXMuc2V0dGluZ3MuYXZhdGFyU2l6ZSwoMCxjLmFkZEV4dHJhVXNlckNsYXNzZXMpKHQsbikpXSxzPXQuZ2V0KCJ1bnJlYWRfbm90aWZpY2F0aW9ucyIpO3MmJmkucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2FjdGlvbjplLmFjdGlvbixjbGFzc05hbWU6ImJhZGdlLW5vdGlmaWNhdGlvbiB1bnJlYWQtbm90aWZpY2F0aW9ucyIscmF3TGFiZWw6cyxvbWl0U3BhbjohMCx0aXRsZToibm90aWZpY2F0aW9ucy50b29sdGlwLnJlZ3VsYXIiLHRpdGxlT3B0aW9uczp7Y291bnQ6c319KSk7dmFyIG89dC5nZXQoInVucmVhZF9wcml2YXRlX21lc3NhZ2VzIik7cmV0dXJuIG8mJih0LmdldCgicmVhZF9maXJzdF9ub3RpZmljYXRpb24iKXx8dC5nZXQoImVuZm9yY2VkU2Vjb25kRmFjdG9yIil8fChpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nIikpLCFlLmFjdGl2ZSYmZS5yaW5nQmFja2Ryb3AmJihpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nLWJhY2tkcm9wLXNwb3RsaWdodCIpKSxpLnB1c2goKDAscC5oKSgic3Bhbi5yaW5nLWJhY2tkcm9wIix7fSwoMCxwLmgpKCJoMS5yaW5nLWZpcnN0LW5vdGlmaWNhdGlvbiIse30sSTE4bi50KCJ1c2VyLmZpcnN0X25vdGlmaWNhdGlvbiIpKSkpKSksaS5wdXNoKHRoaXMuYXR0YWNoKCJsaW5rIix7YWN0aW9uOmUuYWN0aW9uLGNsYXNzTmFtZToiYmFkZ2Utbm90aWZpY2F0aW9uIHVucmVhZC1wcml2YXRlLW1lc3NhZ2VzIixyYXdMYWJlbDpvLG9taXRTcGFuOiEwLHRpdGxlOiJub3RpZmljYXRpb25zLnRvb2x0aXAubWVzc2FnZSIsdGl0bGVPcHRpb25zOntjb3VudDpvfX0pKSksaX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItZHJvcGRvd24iLGpRdWVyeS5leHRlbmQoe3RhZ05hbWU6ImxpLmhlYWRlci1kcm9wZG93bi10b2dnbGUuY3VycmVudC11c2VyIixidWlsZElkOmZ1bmN0aW9uKCl7cmV0dXJuImN1cnJlbnQtdXNlciJ9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuKDAscC5oKSgiYS5pY29uIix7YXR0cmlidXRlczp7aHJlZjplLnVzZXIuZ2V0KCJwYXRoIiksImRhdGEtYXV0by1yb3V0ZSI6ITB9fSx0aGlzLmF0dGFjaCgiaGVhZGVyLW5vdGlmaWNhdGlvbnMiLGUpKX19LG0pKSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1kcm9wZG93biIsalF1ZXJ5LmV4dGVuZCh7dGFnTmFtZToibGkuaGVhZGVyLWRyb3Bkb3duLXRvZ2dsZSIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1JMThuLnQoZS50aXRsZSksbj1bKDAscy5pY29uTm9kZSkoZS5pY29uKV07cmV0dXJuIGUuY29udGVudHMmJm4ucHVzaChlLmNvbnRlbnRzLmNhbGwodGhpcykpLCgwLHAuaCkoImEuaWNvbi5idG4tZmxhdCIse2F0dHJpYnV0ZXM6e2hyZWY6ZS5ocmVmLCJkYXRhLWF1dG8tcm91dGUiOiEwLHRpdGxlOnQsImFyaWEtbGFiZWwiOnQsaWQ6ZS5pY29uSWR9fSxuKX19LG0pKSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1pY29ucyIse3RhZ05hbWU6InVsLmljb25zLmQtaGVhZGVyLWljb25zIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm57cm9sZToibmF2aWdhdGlvbiJ9fSxodG1sOmZ1bmN0aW9uKGUpe2lmKHRoaXMuc2l0ZVNldHRpbmdzLmxvZ2luX3JlcXVpcmVkJiYhdGhpcy5jdXJyZW50VXNlcilyZXR1cm5bXTt2YXIgdD10aGlzLmF0dGFjaCgiaGVhZGVyLWRyb3Bkb3duIix7dGl0bGU6ImhhbWJ1cmdlcl9tZW51IixpY29uOiJiYXJzIixpY29uSWQ6InRvZ2dsZS1oYW1idXJnZXItbWVudSIsYWN0aXZlOmUuaGFtYnVyZ2VyVmlzaWJsZSxhY3Rpb246InRvZ2dsZUhhbWJ1cmdlciIsaHJlZjoiIixjb250ZW50czpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VycmVudFVzZXI7aWYoZSYmZS5yZXZpZXdhYmxlX2NvdW50KXJldHVybigwLHAuaCkoImRpdi5iYWRnZS1ub3RpZmljYXRpb24ucmV2aWV3YWJsZXMiLHthdHRyaWJ1dGVzOnt0aXRsZTpJMThuLnQoIm5vdGlmaWNhdGlvbnMucmV2aWV3YWJsZV9pdGVtcyIpfX0sdGhpcy5jdXJyZW50VXNlci5yZXZpZXdhYmxlX2NvdW50KX19KSxuPVt0aGlzLmF0dGFjaCgiaGVhZGVyLWRyb3Bkb3duIix7dGl0bGU6InNlYXJjaC50aXRsZSIsaWNvbjoic2VhcmNoIixpY29uSWQ6InNlYXJjaC1idXR0b24iLGFjdGlvbjoidG9nZ2xlU2VhcmNoTWVudSIsYWN0aXZlOmUuc2VhcmNoVmlzaWJsZSxocmVmOkRpc2NvdXJzZS5nZXRVUkwoIi9zZWFyY2giKX0pLHRdO3JldHVybiBlLnVzZXImJm4ucHVzaCh0aGlzLmF0dGFjaCgidXNlci1kcm9wZG93biIse2FjdGl2ZTplLnVzZXJWaXNpYmxlLGFjdGlvbjoidG9nZ2xlVXNlck1lbnUiLHJpbmdCYWNrZHJvcDplLnJpbmdCYWNrZHJvcCx1c2VyOmUudXNlcn0pKSxufX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgiaGVhZGVyLWJ1dHRvbnMiLHt0YWdOYW1lOiJzcGFuLmhlYWRlci1idXR0b25zIixodG1sOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmN1cnJlbnRVc2VyKXt2YXIgdD1bXTtyZXR1cm4gZS5jYW5TaWduVXAmJiFlLnRvcGljJiZ0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2xhYmVsOiJzaWduX3VwIixjbGFzc05hbWU6ImJ0bi1wcmltYXJ5IGJ0bi1zbWFsbCBzaWduLXVwLWJ1dHRvbiIsYWN0aW9uOiJzaG93Q3JlYXRlQWNjb3VudCJ9KSksdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtsYWJlbDoibG9nX2luIixjbGFzc05hbWU6ImJ0bi1wcmltYXJ5IGJ0bi1zbWFsbCBsb2dpbi1idXR0b24iLGFjdGlvbjoic2hvd0xvZ2luIixpY29uOiJ1c2VyIn0pKSx0fX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoImhlYWRlci1jbG9hayIse3RhZ05hbWU6ImRpdi5oZWFkZXItY2xvYWsiLGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm4iIn0sY2xpY2s6ZnVuY3Rpb24oKXt9LHNjaGVkdWxlUmVyZW5kZXI6ZnVuY3Rpb24oKXt9fSk7dmFyIGY9WyJjYXRlZ29yeSIsInVzZXIiLCJwcml2YXRlX21lc3NhZ2VzIiwidGFnIl0saD1bXTtlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJoZWFkZXIiLHt0YWdOYW1lOiJoZWFkZXIuZC1oZWFkZXIuY2xlYXJmaXgiLGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuImhlYWRlciJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3ZhciBlPXtzZWFyY2hWaXNpYmxlOiExLGhhbWJ1cmdlclZpc2libGU6ITEsdXNlclZpc2libGU6ITEscmluZ0JhY2tkcm9wOiEwfTtyZXR1cm4gdGhpcy5zaXRlLm1vYmlsZVZpZXcmJihlLnNraXBTZWFyY2hDb250ZXh0PSEwKSxlfSxodG1sOmZ1bmN0aW9uKG4saSl7dmFyIHM9dGhpcyxlPXtjb250ZW50czpmdW5jdGlvbigpe3ZhciBlLHQ9W3MuYXR0YWNoKCJoZWFkZXItYnV0dG9ucyIsbikscy5hdHRhY2goImhlYWRlci1pY29ucyIse2hhbWJ1cmdlclZpc2libGU6aS5oYW1idXJnZXJWaXNpYmxlLHVzZXJWaXNpYmxlOmkudXNlclZpc2libGUsc2VhcmNoVmlzaWJsZTppLnNlYXJjaFZpc2libGUscmluZ0JhY2tkcm9wOmkucmluZ0JhY2tkcm9wLGZsYWdDb3VudDpuLmZsYWdDb3VudCx1c2VyOnMuY3VycmVudFVzZXJ9KV07cmV0dXJuIGkuc2VhcmNoVmlzaWJsZT8oZT1zLnNlYXJjaENvbnRleHRUeXBlKCksaS5zZWFyY2hDb250ZXh0VHlwZSE9PWUmJihpLmNvbnRleHRFbmFibGVkPXZvaWQgMCxpLnNlYXJjaENvbnRleHRUeXBlPWUpLHZvaWQgMD09PWkuY29udGV4dEVuYWJsZWQmJmYuaW5jbHVkZXMoZSkmJihpLmNvbnRleHRFbmFibGVkPSEwKSx0LnB1c2gocy5hdHRhY2goInNlYXJjaC1tZW51Iix7Y29udGV4dEVuYWJsZWQ6aS5jb250ZXh0RW5hYmxlZH0pKSk6aS5oYW1idXJnZXJWaXNpYmxlP3QucHVzaChzLmF0dGFjaCgiaGFtYnVyZ2VyLW1lbnUiKSk6aS51c2VyVmlzaWJsZSYmdC5wdXNoKHMuYXR0YWNoKCJ1c2VyLW1lbnUiKSksaC5tYXAoZnVuY3Rpb24oZSl7cy5zdGF0ZVtlLnRvZ2dsZV0mJnQucHVzaChzLmF0dGFjaChlLm5hbWUsZS50cmFuc2Zvcm1BdHRycy5jYWxsKHMsbixpKSkpfSkscy5zaXRlLm1vYmlsZVZpZXcmJnQucHVzaChzLmF0dGFjaCgiaGVhZGVyLWNsb2FrIikpLHR9LG1pbmltaXplZDohIW4udG9waWN9O3JldHVybigwLHAuaCkoImRpdi53cmFwIix0aGlzLmF0dGFjaCgiaGVhZGVyLWNvbnRlbnRzIiwkLmV4dGVuZCh7fSxuLGUpKSl9LHVwZGF0ZUhpZ2hsaWdodDpmdW5jdGlvbigpe3RoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZXx8dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5zZXQoImhpZ2hsaWdodFRlcm0iLCIiKX0sY2xvc2VBbGw6ZnVuY3Rpb24oKXt0aGlzLnN0YXRlLnVzZXJWaXNpYmxlPSExLHRoaXMuc3RhdGUuaGFtYnVyZ2VyVmlzaWJsZT0hMSx0aGlzLnN0YXRlLnNlYXJjaFZpc2libGU9ITEsdGhpcy50b2dnbGVCb2R5U2Nyb2xsaW5nKCExKX0sbGlua0NsaWNrZWRFdmVudDpmdW5jdGlvbihlKXt2YXIgdCxuLGkscz0hMTtlJiYocz1lLnNlYXJjaENvbnRleHRFbmFibGVkLHQ9ZS5zZWFyY2hMb2dJZCxuPWUuc2VhcmNoUmVzdWx0SWQsaT1lLnNlYXJjaFJlc3VsdFR5cGUsdCYmbiYmaSYmKDAsdS5hamF4KSgiL3NlYXJjaC9jbGljayIse3R5cGU6IlBPU1QiLGRhdGE6e3NlYXJjaF9sb2dfaWQ6dCxzZWFyY2hfcmVzdWx0X2lkOm4sc2VhcmNoX3Jlc3VsdF90eXBlOml9fSkpLHN8fHRoaXMuY2xvc2VBbGwoKSx0aGlzLnVwZGF0ZUhpZ2hsaWdodCgpfSx0b2dnbGVTZWFyY2hNZW51OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLnNpdGUubW9iaWxlVmlldyl7dmFyIGU9dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5nZXQoInNlYXJjaENvbnRleHQiKSxuPSIiO3JldHVybiBlJiYobj0iP2NvbnRleHQ9IitlLnR5cGUrIiZjb250ZXh0X2lkPSIrZS5pZCsiJnNraXBfY29udGV4dD0iK3RoaXMuc3RhdGUuc2tpcFNlYXJjaENvbnRleHQpLCJmdWxsLXBhZ2Utc2VhcmNoIj09PXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLmdldCgiX3JvdXRlci5jdXJyZW50UGF0aCIpPygoMCxkLnNjcm9sbFRvcCkoKSwkKCIuZnVsbC1wYWdlLXNlYXJjaCIpLmZvY3VzKCksITEpOm8uZGVmYXVsdC5yb3V0ZVRvKCIvc2VhcmNoIituKX10aGlzLnN0YXRlLnNlYXJjaFZpc2libGU9IXRoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZSx0aGlzLnVwZGF0ZUhpZ2hsaWdodCgpLHRoaXMuc3RhdGUuc2VhcmNoVmlzaWJsZSYmKDAsaS5zY2hlZHVsZSkoImFmdGVyUmVuZGVyIixmdW5jdGlvbigpe3ZhciBlPSQoIiNzZWFyY2gtdGVybSIpO2UuZm9jdXMoKS5zZWxlY3QoKSwoMCxsLmFwcGx5U2VhcmNoQXV0b2NvbXBsZXRlKShlLHQuc2l0ZVNldHRpbmdzLHQuYXBwRXZlbnRzLHthcHBlbmRTZWxlY3RvcjoiLm1lbnUtcGFuZWwifSl9KX0sdG9nZ2xlVXNlck1lbnU6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRVc2VyLmdldCgicmVhZF9maXJzdF9ub3RpZmljYXRpb24iKSYmKHRoaXMuc3RhdGUucmluZ0JhY2tkcm9wPSExKSx0aGlzLnN0YXRlLnVzZXJWaXNpYmxlPSF0aGlzLnN0YXRlLnVzZXJWaXNpYmxlLHRoaXMudG9nZ2xlQm9keVNjcm9sbGluZyh0aGlzLnN0YXRlLnVzZXJWaXNpYmxlKX0sdG9nZ2xlSGFtYnVyZ2VyOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5oYW1idXJnZXJWaXNpYmxlPSF0aGlzLnN0YXRlLmhhbWJ1cmdlclZpc2libGUsdGhpcy50b2dnbGVCb2R5U2Nyb2xsaW5nKHRoaXMuc3RhdGUuaGFtYnVyZ2VyVmlzaWJsZSl9LHRvZ2dsZUJvZHlTY3JvbGxpbmc6ZnVuY3Rpb24oZSl7dGhpcy5zaXRlLm1vYmlsZVZpZXcmJihlP2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLnByZXZlbnREZWZhdWx0LHtwYXNzaXZlOiExfSk6ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMucHJldmVudERlZmF1bHQse3Bhc3NpdmU6ITF9KSl9LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5pbm5lckhlaWdodD93aW5kb3cuaW5uZXJIZWlnaHQ6JCh3aW5kb3cpLmhlaWdodCgpOyghJChlLnRhcmdldCkucGFyZW50cygiLm1lbnUtcGFuZWwiKS5sZW5ndGh8fCQoIi5tZW51LXBhbmVsIC5wYW5lbC1ib2R5LWNvbnRlbnRzIikuaGVpZ2h0KCk8PXQpJiZlLnByZXZlbnREZWZhdWx0KCl9LHRvZ2dsZVBhZ2VTZWFyY2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXRlO2UuY29udGV4dEVuYWJsZWQ9ITE7ZnVuY3Rpb24gdChlKXtyZXR1cm4hIXMubWF0Y2goZSl9dmFyIG4saSxzPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZXJ2aWNlOnJvdXRlciIpLmdldCgiX3JvdXRlci5jdXJyZW50UGF0aCIpLG89Wy9edG9waWNcLi9dLmFueSh0KSYmIVsvXmRpc2NvdmVyeVwuY2F0ZWdvcmllcy9dLmFueSh0KTtyZXR1cm4gbyYmcy5tYXRjaCgvXnRvcGljXC4vKSYmKGk9KG49dGhpcy5yZWdpc3Rlci5sb29rdXAoImNvbnRyb2xsZXI6dG9waWMiKSkuZ2V0KCJtb2RlbC5wb3N0U3RyZWFtLnN0cmVhbS5sZW5ndGgiKXx8MCxvPShuLmdldCgibW9kZWwuY2h1bmtfc2l6ZSIpfHwwKTxpJiYkKCIudG9waWMtcG9zdCAuY29va2VkLCAuc21hbGwtYWN0aW9uOm5vdCgudGltZS1nYXApIikubGVuZ3RoPGkpLGUuc2VhcmNoVmlzaWJsZT8odGhpcy50b2dnbGVTZWFyY2hNZW51KCksbyk6IW98fChlLmNvbnRleHRFbmFibGVkPSEwLHRoaXMudG9nZ2xlU2VhcmNoTWVudSgpLCExKX0sc2VhcmNoTWVudUNvbnRleHRDaGFuZ2VkOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuY29udGV4dFR5cGU9dGhpcy5yZWdpc3Rlci5sb29rdXAoInNlYXJjaC1zZXJ2aWNlOm1haW4iKS5nZXQoImNvbnRleHRUeXBlIiksdGhpcy5zdGF0ZS5jb250ZXh0RW5hYmxlZD1lfSxkb21DbGVhbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGU7KGUuc2VhcmNoVmlzaWJsZXx8ZS5oYW1idXJnZXJWaXNpYmxlfHxlLnVzZXJWaXNpYmxlKSYmdGhpcy5jbG9zZUFsbCgpfSxoZWFkZXJLZXlib2FyZFRyaWdnZXI6ZnVuY3Rpb24oZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJzZWFyY2giOnRoaXMudG9nZ2xlU2VhcmNoTWVudSgpO2JyZWFrO2Nhc2UidXNlciI6dGhpcy50b2dnbGVVc2VyTWVudSgpO2JyZWFrO2Nhc2UiaGFtYnVyZ2VyIjp0aGlzLnRvZ2dsZUhhbWJ1cmdlcigpO2JyZWFrO2Nhc2UicGFnZS1zZWFyY2giOnZhciB0PXRoaXMuc2VhcmNoQ29udGV4dFR5cGUoKTsidG9waWMiPT09dCYmKHRoaXMuc3RhdGUuc2VhcmNoQ29udGV4dFR5cGU9dCksdGhpcy50b2dnbGVQYWdlU2VhcmNoKCl8fChlLmV2ZW50LnByZXZlbnREZWZhdWx0KCksZS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSl9fSxzZWFyY2hDb250ZXh0VHlwZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZWFyY2gtc2VydmljZTptYWluIik7aWYoZSl7dmFyIHQ9ZS5nZXQoInNlYXJjaENvbnRleHQiKTtpZih0KXJldHVybigwLG4uZ2V0KSh0LCJ0eXBlIil9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9ob21lLWxvZ28iLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi9pbnRlcmNlcHQtY2xpY2siLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxhLGwsbixpKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoImhvbWUtbG9nbyIse3RhZ05hbWU6ImRpdi50aXRsZSIsc2V0dGluZ3M6e2hyZWY6RGlzY291cnNlLmdldFVSTCgiLyIpfSxocmVmOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zZXR0aW5ncy5ocmVmO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2UoKTplfSxsb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbG9nb191cmx8fCIifSxtb2JpbGVMb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbW9iaWxlX2xvZ29fdXJsfHwiIn0sc21hbGxMb2dvVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnNpdGVfbG9nb19zbWFsbF91cmx8fCIifSxsb2dvOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zaXRlU2V0dGluZ3MsdD10aGlzLnNpdGUubW9iaWxlVmlldyxuPXRoaXMubW9iaWxlTG9nb1VybCgpLGk9dCYmMDxuLmxlbmd0aCxzPXRoaXMubG9nb1VybCgpLG89ZS50aXRsZTtpZih0aGlzLmF0dHJzLm1pbmltaXplZCl7dmFyIHI9dGhpcy5zbWFsbExvZ29VcmwoKTtyZXR1cm4gci5sZW5ndGg/KDAsYS5oKSgiaW1nI3NpdGUtbG9nby5sb2dvLXNtYWxsIix7a2V5OiJsb2dvLXNtYWxsIixhdHRyaWJ1dGVzOntzcmM6RGlzY291cnNlLmdldFVSTChyKSx3aWR0aDozNixhbHQ6b319KTooMCxsLmljb25Ob2RlKSgiaG9tZSIpfXJldHVybiBpPygwLGEuaCkoImltZyNzaXRlLWxvZ28ubG9nby1iaWciLHtrZXk6ImxvZ28tbW9iaWxlIixhdHRyaWJ1dGVzOntzcmM6RGlzY291cnNlLmdldFVSTChuKSxhbHQ6b319KTpzLmxlbmd0aD8oMCxhLmgpKCJpbWcjc2l0ZS1sb2dvLmxvZ28tYmlnIix7a2V5OiJsb2dvLWJpZyIsYXR0cmlidXRlczp7c3JjOkRpc2NvdXJzZS5nZXRVUkwocyksYWx0Om99fSk6KDAsYS5oKSgiaDEjc2l0ZS10ZXh0LWxvZ28udGV4dC1sb2dvIix7a2V5OiJsb2dvLXRleHQifSxvKX0saHRtbDpmdW5jdGlvbigpe3JldHVybigwLGEuaCkoImEiLHthdHRyaWJ1dGVzOntocmVmOnRoaXMuaHJlZigpLCJkYXRhLWF1dG8tcm91dGUiOiEwfX0sdGhpcy5sb2dvKCkpfSxjbGljazpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLndhbnRzTmV3V2luZG93KShlKXx8KGUucHJldmVudERlZmF1bHQoKSxpLmRlZmF1bHQucm91dGVUb1RhZygkKGUudGFyZ2V0KS5jbG9zZXN0KCJhIilbMF0pKSwhMX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvaG9va3MiLFsiZXhwb3J0cyJdLGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfTtmdW5jdGlvbiBpKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLmtleSxpKX19dmFyIHQ9Il9kaXNjb3Vyc2VfY2xpY2tfd2lkZ2V0IixvPSJfZGlzY291cnNlX2RvdWJsZV9jbGlja193aWRnZXQiLHI9Il9kaXNjb3Vyc2VfY2xpY2tfb3V0c2lkZV93aWRnZXQiLGE9Il9kaXNjb3Vyc2VfbW91c2VfZG93bl9vdXRzaWRlX3dpZGdldCIsbD0iX2Rpc2NvdXJzZV9rZXlfdXBfd2lkZ2V0Iix1PSJfZGlzY291cnNlX2tleV9kb3duX3dpZGdldCIsYz0iX2Rpc2NvdXJzZV9kcmFnX3dpZGdldCIsZD0iX2Rpc2NvdXJzZV9pbnB1dF93aWRnZXQiLHA9Il9kaXNjb3Vyc2VfY2hhbmdlX3dpZGdldCIsbT0iX2Rpc2NvdXJzZV9tb3VzZV9kb3duX3dpZGdldCIsZj0iX2Rpc2NvdXJzZV9tb3VzZV91cF93aWRnZXQiLGg9Il9kaXNjb3Vyc2VfbW91c2VfbW92ZV93aWRnZXQiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gcyhpLFt7a2V5OiJob29rIix2YWx1ZTpmdW5jdGlvbihlKXtuJiZlLnNldEF0dHJpYnV0ZShuLCEwKSxlW3RdPXRoaXMud2lkZ2V0fX0se2tleToidW5ob29rIix2YWx1ZTpmdW5jdGlvbihlKXtuJiZlLnJlbW92ZUF0dHJpYnV0ZShuLCEwKSxlW3RdPW51bGx9fV0pLGk7ZnVuY3Rpb24gaShlKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxpKSx0aGlzLndpZGdldD1lfX12YXIgYj1lLldpZGdldENsaWNrSG9vaz1uKHQpO2UuV2lkZ2V0RG91YmxlQ2xpY2tIb29rPW4obyksZS5XaWRnZXRDbGlja091dHNpZGVIb29rPW4ociwiZGF0YS1jbGljay1vdXRzaWRlIiksZS5XaWRnZXRNb3VzZURvd25PdXRzaWRlSG9vaz1uKGEsImRhdGEtbW91c2UtZG93bi1vdXRzaWRlIiksZS5XaWRnZXRLZXlVcEhvb2s9bihsKSxlLldpZGdldEtleURvd25Ib29rPW4odSksZS5XaWRnZXREcmFnSG9vaz1uKGMpLGUuV2lkZ2V0SW5wdXRIb29rPW4oZCksZS5XaWRnZXRDaGFuZ2VIb29rPW4ocCksZS5XaWRnZXRNb3VzZVVwSG9vaz1uKGYpLGUuV2lkZ2V0TW91c2VEb3duSG9vaz1uKG0pLGUuV2lkZ2V0TW91c2VNb3ZlSG9vaz1uKGgpO2Z1bmN0aW9uIGcoZSx0LG4saSl7dmFyIHM9KDM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOntyZXJlbmRlcjohMH0pLnJlcmVuZGVyLG89dihlLHQpO28mJihzP28ucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXtyZXR1cm4gbihvKX0pOm4obykpfWZ1bmN0aW9uIHYoZSx0KXtmb3IoO2U7KXt2YXIgbj1lW3RdO2lmKG4pcmV0dXJuIG47ZT1lLnBhcmVudE5vZGV9fXZhciB5PSExLF89dm9pZCAwLHc9Im1vdXNlbW92ZS5kaXNjb3Vyc2Utd2lkZ2V0LWRyYWciO2Z1bmN0aW9uIHgoZSl7JCgiYm9keSIpLnJlbW92ZUNsYXNzKCJ3aWRnZXQtZHJhZ2dpbmciKSwkKGRvY3VtZW50KS5vZmYodyksXyYmKF8uZHJhZ0VuZCYmXy5kcmFnRW5kKGUpLF89bnVsbCl9Yi5zZXR1cERvY3VtZW50Q2FsbGJhY2s9ZnVuY3Rpb24oKXt2YXIgbjt5fHwobj12b2lkIDAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldFRvdWNoZXNbMF07dCYmbiYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG4uZHJhZyh0KSl9LHtwYXNzaXZlOiExLGNhcHR1cmU6ITB9KSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duLmRpc2NvdXJjZS13aWRnZXQtZHJhZywgdG91Y2hzdGFydC5kaXNjb3Vyc2Utd2lkZ2V0LWRyYWciLGZ1bmN0aW9uKGUpe3goZSksKG49dihlLnRhcmdldCxjKSkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxfPW4sJCgiYm9keSIpLmFkZENsYXNzKCJ3aWRnZXQtZHJhZ2dpbmciKSwkKGRvY3VtZW50KS5vbih3LGZ1bmN0aW9uKGUpe24mJm4uZHJhZyhlKX0pKX0pLCQoZG9jdW1lbnQpLm9uKCJtb3VzZXVwLmRpc2NvdXJzZS13aWRnZXQtZHJhZywgdG91Y2hlbmQuZGlzY291cnNlLXdpZGdldC1kcmFnIixmdW5jdGlvbihlKXtuPW51bGwseChlKX0pLCQoZG9jdW1lbnQpLm9uKCJkYmxjbGljay5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbih0KXtnKHQudGFyZ2V0LG8sZnVuY3Rpb24oZSl7cmV0dXJuIGUuZG91YmxlQ2xpY2sodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJjbGljay5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbihpKXtnKGkudGFyZ2V0LHQsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xpY2soaSl9KTt2YXIgcz1pLnRhcmdldDskKCJbZGF0YS1jbGljay1vdXRzaWRlXSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbjt0LmNvbnRhaW5zKHMpfHx0PT09cyYmImFic29sdXRlIj09PXQuc3R5bGUucG9zaXRpb258fChuPXRbcl0pJiZuLmNsaWNrT3V0c2lkZShpKX0pfSksJChkb2N1bWVudCkub24oIm1vdXNlZG93bi5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbihpKXt2YXIgcz1pLnRhcmdldDskKCJbZGF0YS1tb3VzZS1kb3duLW91dHNpZGVdIikuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuO3QuY29udGFpbnMocyl8fChuPXRbYV0pJiZuLm1vdXNlRG93bk91dHNpZGUoaSl9KX0pLCQoZG9jdW1lbnQpLm9uKCJrZXl1cC5kaXNjb3Vyc2Utd2lkZ2V0IixmdW5jdGlvbih0KXtnKHQudGFyZ2V0LGwsZnVuY3Rpb24oZSl7cmV0dXJuIGUua2V5VXAodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJrZXlkb3duLmRpc2NvdXJzZS13aWRnZXQiLGZ1bmN0aW9uKHQpe2codC50YXJnZXQsdSxmdW5jdGlvbihlKXtyZXR1cm4gZS5rZXlEb3duKHQpfSl9KSwkKGRvY3VtZW50KS5vbigiaW5wdXQuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxkLGZ1bmN0aW9uKGUpe3JldHVybiBlLmlucHV0KHQpfSx7cmVyZW5kZXI6ITF9KX0pLCQoZG9jdW1lbnQpLm9uKCJjaGFuZ2UuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxwLGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYW5nZSh0KX0se3JlcmVuZGVyOiExfSl9KSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duLmRpc2NvdXJzZS13aWRnZXQiLGZ1bmN0aW9uKHQpe2codC50YXJnZXQsbSxmdW5jdGlvbihlKXtlLm1vdXNlRG93bih0KX0pfSksJChkb2N1bWVudCkub24oIm1vdXNldXAuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxmLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vdXNlVXAodCl9KX0pLCQoZG9jdW1lbnQpLm9uKCJtb3VzZW1vdmUuZGlzY291cnNlLXdpZGdldCIsZnVuY3Rpb24odCl7Zyh0LnRhcmdldCxoLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vdXNlTW92ZSh0KX0pfSkseT0hMCl9fSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9pbnZpdGVlLWFjY2VwdGVkLW5vdGlmaWNhdGlvbi1pdGVtIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJpbnZpdGVlLWFjY2VwdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLG4udXNlclBhdGgpKGUuZGlzcGxheV91c2VybmFtZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL2xpa2VkLWNvbnNvbGlkYXRlZC1ub3RpZmljYXRpb24taXRlbSIsWyJAZW1iZXIvdXRpbHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKG4sZSx0LGkscyl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwibGlrZWQtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKGUpe3JldHVybigwLHMudXNlclBhdGgpKCh0aGlzLmF0dHJzLnVzZXJuYW1lfHx0aGlzLmN1cnJlbnRVc2VyLnVzZXJuYW1lKSsiL25vdGlmaWNhdGlvbnMvbGlrZXMtcmVjZWl2ZWQ/YWN0aW5nX3VzZXJuYW1lPSIrZS5kaXNwbGF5X3VzZXJuYW1lKX0sZGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7dmFyIHQ9STE4bi50KCJub3RpZmljYXRpb25zLmxpa2VkX2NvbnNvbGlkYXRlZF9kZXNjcmlwdGlvbiIse2NvdW50OnBhcnNlSW50KGUuY291bnQsMTApfSk7cmV0dXJuKDAsbi5pc0VtcHR5KSh0KT8iIjooMCxpLmVzY2FwZUV4cHJlc3Npb24pKHQpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9saWtlZC1ub3RpZmljYXRpb24taXRlbSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWZhdWx0LW5vdGlmaWNhdGlvbi1pdGVtIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0RnJvbSkodC5EZWZhdWx0Tm90aWZpY2F0aW9uSXRlbSwibGlrZWQtbm90aWZpY2F0aW9uLWl0ZW0iLHt0ZXh0OmZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsci5mb3JtYXRVc2VybmFtZSkodC5kaXNwbGF5X3VzZXJuYW1lKSxpPXRoaXMuZGVzY3JpcHRpb24odCk7aWYoMTx0LmNvdW50KXt2YXIgcz10LmNvdW50LTIsbz0oMCxyLmZvcm1hdFVzZXJuYW1lKSh0LnVzZXJuYW1lMik7cmV0dXJuIDA9PXM/STE4bi50KCJub3RpZmljYXRpb25zLmxpa2VkXzIiLHtkZXNjcmlwdGlvbjppLHVzZXJuYW1lOm4sdXNlcm5hbWUyOm99KTpJMThuLnQoIm5vdGlmaWNhdGlvbnMubGlrZWRfbWFueSIse2Rlc2NyaXB0aW9uOmksdXNlcm5hbWU6bix1c2VybmFtZTI6byxjb3VudDpzfSl9cmV0dXJuIEkxOG4udCgibm90aWZpY2F0aW9ucy5saWtlZCIse2Rlc2NyaXB0aW9uOmksdXNlcm5hbWU6bn0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9saW5rIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbGliL2ludGVyY2VwdC1jbGljayIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91cmwiXSxmdW5jdGlvbihlLHQsbixyLGEsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsbi5jcmVhdGVXaWRnZXQpKCJsaW5rIix7dGFnTmFtZToiYSIsaHJlZjpmdW5jdGlvbihlKXt2YXIgdD1lLnJvdXRlO2lmKCF0KXJldHVybiBEaXNjb3Vyc2UuZ2V0VVJMKGUuaHJlZik7dmFyIG49dGhpcy5yZWdpc3Rlci5sb29rdXAoInJvdXRlcjptYWluIik7aWYobiYmbi5fcm91dGVyTWljcm9saWIpe3ZhciBpPVt0XTtyZXR1cm4gZS5tb2RlbCYmaS5wdXNoKGUubW9kZWwpLERpc2NvdXJzZS5nZXRVUkwobi5fcm91dGVyTWljcm9saWIuZ2VuZXJhdGUuYXBwbHkobi5fcm91dGVyTWljcm9saWIsaSkpfX0sYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnB1c2goIndpZGdldC1saW5rIiksZS5jbGFzc05hbWUmJnQucHVzaChlLmNsYXNzTmFtZSksdH0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKHQpe3ZhciBuPXtocmVmOnRoaXMuaHJlZih0KSx0aXRsZTp0LnRpdGxlP0kxOG4udCh0LnRpdGxlLHQudGl0bGVPcHRpb25zKTp0aGlzLmxhYmVsKHQpfTtyZXR1cm4gdC5hdHRyaWJ1dGVzJiZPYmplY3Qua2V5cyh0LmF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV09dC5hdHRyaWJ1dGVzW2VdfSksbn0sbGFiZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGFiZWxDb3VudCYmZS5jb3VudD9JMThuLnQoZS5sYWJlbENvdW50LHtjb3VudDplLmNvdW50fSk6ZS5yYXdMYWJlbHx8KGUubGFiZWw/STE4bi50KGUubGFiZWwpOiIiKX0saHRtbDpmdW5jdGlvbihlKXtpZihlLmNvbnRlbnRzKXJldHVybiBlLmNvbnRlbnRzKCk7dmFyIHQsbj1bXTtlLmljb24mJihuLnB1c2goKDAsci5pY29uTm9kZSkoZS5pY29uKSksbi5wdXNoKCIgIikpLGUuaGlkZUxhYmVsfHwodD10aGlzLmxhYmVsKGUpLGUub21pdFNwYW4/bi5wdXNoKHQpOm4ucHVzaCgoMCxhLmgpKCJzcGFuLmQtbGFiZWwiLHQpKSk7dmFyIGkscyxvPXRoaXMuY3VycmVudFVzZXI7cmV0dXJuIG8mJmUuYmFkZ2VDb3VudCYmKDA8KGk9cGFyc2VJbnQoby5nZXQoZS5iYWRnZUNvdW50KSwxMCkpJiYocz1lLmJhZGdlVGl0bGU/STE4bi50KGUuYmFkZ2VUaXRsZSk6IiIsbi5wdXNoKCIgIiksbi5wdXNoKCgwLGEuaCkoInNwYW4uYmFkZ2Utbm90aWZpY2F0aW9uIix7Y2xhc3NOYW1lOmUuYmFkZ2VDbGFzcyxhdHRyaWJ1dGVzOnt0aXRsZTpzfX0saSkpKSksbn0sY2xpY2s6ZnVuY3Rpb24oZSl7aWYoISgwLHQud2FudHNOZXdXaW5kb3cpKGUpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hdHRycy5hY3Rpb24/KGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24odGhpcy5hdHRycy5hY3Rpb24sdGhpcy5hdHRycy5hY3Rpb25QYXJhbSkpOih0aGlzLnNlbmRXaWRnZXRFdmVudCgibGlua0NsaWNrZWQiLHRoaXMuYXR0cnMpLGkuZGVmYXVsdC5yb3V0ZVRvVGFnKCQoZS50YXJnZXQpLmNsb3Nlc3QoImEiKVswXSkpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9tZW1iZXJzaGlwLXJlcXVlc3QtYWNjZXB0ZWQtbm90aWZpY2F0aW9uLWl0ZW0iLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoMCxlLmNyZWF0ZVdpZGdldEZyb20pKHQuRGVmYXVsdE5vdGlmaWNhdGlvbkl0ZW0sIm1lbWJlcnNoaXAtcmVxdWVzdC1hY2NlcHRlZC1ub3RpZmljYXRpb24taXRlbSIse3VybDpmdW5jdGlvbihlKXtyZXR1cm4oMCxuLmdyb3VwUGF0aCkoZS5ncm91cF9uYW1lKX0sdGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMuIitlLHtncm91cF9uYW1lOnQuZ3JvdXBfbmFtZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9tZW1iZXJzaGlwLXJlcXVlc3QtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIixbImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL2RlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0iLCJkaXNjb3Vyc2UvbGliL3VybCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsZS5jcmVhdGVXaWRnZXRGcm9tKSh0LkRlZmF1bHROb3RpZmljYXRpb25JdGVtLCJtZW1iZXJzaGlwLXJlcXVlc3QtY29uc29saWRhdGVkLW5vdGlmaWNhdGlvbi1pdGVtIix7dXJsOmZ1bmN0aW9uKCl7cmV0dXJuKDAsbi51c2VyUGF0aCkoKHRoaXMuYXR0cnMudXNlcm5hbWV8fHRoaXMuY3VycmVudFVzZXIudXNlcm5hbWUpKyIvbWVzc2FnZXMiKX0sdGV4dDpmdW5jdGlvbihlLHQpe3JldHVybiBJMThuLnQoIm5vdGlmaWNhdGlvbnMubWVtYmVyc2hpcF9yZXF1ZXN0X2NvbnNvbGlkYXRlZCIse2dyb3VwX25hbWU6dC5ncm91cF9uYW1lLGNvdW50OnBhcnNlSW50KHQuY291bnQsMTApfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL21lbnUtcGFuZWwiLFsiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iXSxmdW5jdGlvbihlLHMpeyJ1c2Ugc3RyaWN0IjsoMCxlLmNyZWF0ZVdpZGdldCkoIm1lbnUtbGlua3MiLHtidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5uYW1lJiZlLm5hbWUubGVuZ3RoKXJldHVybiJtZW51LWNvbnRhaW5lci0iK2UubmFtZX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXS5jb25jYXQoZS5jb250ZW50cygpKSxuPXt9O2UuaGVhZGluZyYmKG4uY2xhc3NOYW1lPSJoZWFkZXIiKTt2YXIgaT1bXTtyZXR1cm4gaS5wdXNoKCgwLHMuaCkoInVsLm1lbnUtbGlua3MuY29sdW1uZWQiLHQubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLHMuaCkoImxpIixuLGUpfSkpKSxpLnB1c2goKDAscy5oKSgiZGl2LmNsZWFyZml4IikpLGUub21pdFJ1bGV8fGkucHVzaCgoMCxzLmgpKCJociIpKSxpfX0pLCgwLGUuY3JlYXRlV2lkZ2V0KSgibWVudS1wYW5lbCIse3RhZ05hbWU6ImRpdi5tZW51LXBhbmVsIix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPVtdO24ucHVzaCgiXG4gICAgIik7dmFyIGk9W107aS5wdXNoKCJcbiAgICAgICIpO3ZhciBzPVtdO3JldHVybiBzLnB1c2goIlxuICAgICAgICAiKSxzLnB1c2godGhpcy5hdHRycy5jb250ZW50cygpKSxzLnB1c2goIlxuICAgICAgIiksaS5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwYW5lbC1ib2R5LWNvbnRlbnRzIGNsZWFyZml4In0scykpLGkucHVzaCgiXG4gICAgIiksbi5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwYW5lbC1ib2R5In0saSkpLG4ucHVzaCgiXG4gICIpLG59LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtpZihlLm1heFdpZHRoKXJldHVybnsiZGF0YS1tYXgtd2lkdGgiOmUubWF4V2lkdGh9fX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWFkbWluLW1lbnUiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL3dpZGdldHMvYnV0dG9uIl0sZnVuY3Rpb24oZSx0LGksbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0LG4pe2lmKCF0KXJldHVybltdO3ZhciBpLHM9W107cmV0dXJuIHQuc3RhZmYmJnMucHVzaCh7aWNvbjoibGlzdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCIsbGFiZWw6InJldmlldy5tb2RlcmF0aW9uX2hpc3RvcnkiLHVybDoiL3Jldmlldz90b3BpY19pZD0iK2UudG9waWNJZCsiJnN0YXR1cz1hbGwifSksIWUuaXNXaGlzcGVyJiZ0LnN0YWZmJiYoaT17YWN0aW9uOiJ0b2dnbGVQb3N0VHlwZSIsaWNvbjoic2hpZWxkLWFsdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCB0b2dnbGUtcG9zdC10eXBlIn0sZS5pc01vZGVyYXRvckFjdGlvbj9pLmxhYmVsPSJwb3N0LmNvbnRyb2xzLnJldmVydF90b19yZWd1bGFyIjppLmxhYmVsPSJwb3N0LmNvbnRyb2xzLmNvbnZlcnRfdG9fbW9kZXJhdG9yIixzLnB1c2goaSkpLHQuc3RhZmYmJihlLm5vdGljZVR5cGU/cy5wdXNoKHtpY29uOiJ1c2VyLXNoaWVsZCIsbGFiZWw6InBvc3QuY29udHJvbHMucmVtb3ZlX3Bvc3Rfbm90aWNlIixhY3Rpb246InJlbW92ZU5vdGljZSIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCByZW1vdmUtbm90aWNlIn0pOnMucHVzaCh7aWNvbjoidXNlci1zaGllbGQiLGxhYmVsOiJwb3N0LmNvbnRyb2xzLmFkZF9wb3N0X25vdGljZSIsYWN0aW9uOiJhZGROb3RpY2UiLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgYWRkLW5vdGljZSJ9KSksZS5jYW5NYW5hZ2UmJmUuaGlkZGVuJiZzLnB1c2goe2ljb246ImZhci1leWUiLGxhYmVsOiJwb3N0LmNvbnRyb2xzLnVuaGlkZSIsYWN0aW9uOiJ1bmhpZGVQb3N0IixjbGFzc05hbWU6ImJ0bi1kZWZhdWx0IHVuaGlkZS1wb3N0In0pLHQuYWRtaW4mJnMucHVzaCh7aWNvbjoidXNlciIsbGFiZWw6InBvc3QuY29udHJvbHMuY2hhbmdlX293bmVyIixhY3Rpb246ImNoYW5nZVBvc3RPd25lciIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBjaGFuZ2Utb3duZXIifSksdC5zdGFmZiYmKG4uZW5hYmxlX2JhZGdlcyYmcy5wdXNoKHtpY29uOiJjZXJ0aWZpY2F0ZSIsbGFiZWw6InBvc3QuY29udHJvbHMuZ3JhbnRfYmFkZ2UiLGFjdGlvbjoiZ3JhbnRCYWRnZSIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBncmFudC1iYWRnZSJ9KSxlLmxvY2tlZD9zLnB1c2goe2ljb246InVubG9jayIsbGFiZWw6InBvc3QuY29udHJvbHMudW5sb2NrX3Bvc3QiLGFjdGlvbjoidW5sb2NrUG9zdCIsdGl0bGU6InBvc3QuY29udHJvbHMudW5sb2NrX3Bvc3RfZGVzY3JpcHRpb24iLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgdW5sb2NrLXBvc3QifSk6cy5wdXNoKHtpY29uOiJsb2NrIixsYWJlbDoicG9zdC5jb250cm9scy5sb2NrX3Bvc3QiLGFjdGlvbjoibG9ja1Bvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmxvY2tfcG9zdF9kZXNjcmlwdGlvbiIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCBsb2NrLXBvc3QifSkpLChlLmNhbk1hbmFnZXx8ZS5jYW5XaWtpKSYmKGUud2lraT9zLnB1c2goe2FjdGlvbjoidG9nZ2xlV2lraSIsbGFiZWw6InBvc3QuY29udHJvbHMudW53aWtpIixpY29uOiJmYXItZWRpdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCB3aWtpIHdpa2llZCJ9KTpzLnB1c2goe2FjdGlvbjoidG9nZ2xlV2lraSIsbGFiZWw6InBvc3QuY29udHJvbHMud2lraSIsaWNvbjoiZmFyLWVkaXQiLGNsYXNzTmFtZToiYnRuLWRlZmF1bHQgd2lraSJ9KSksZS5jYW5NYW5hZ2UmJnMucHVzaCh7aWNvbjoiY29nIixsYWJlbDoicG9zdC5jb250cm9scy5yZWJha2UiLGFjdGlvbjoicmViYWtlUG9zdCIsY2xhc3NOYW1lOiJidG4tZGVmYXVsdCByZWJ1aWxkLWh0bWwifSksc31PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5idWlsZE1hbmFnZUJ1dHRvbnM9cywoMCx0LmNyZWF0ZVdpZGdldCkoInBvc3QtYWRtaW4tbWVudS1idXR0b24iLGpRdWVyeS5leHRlbmQobi5CdXR0b25DbGFzcyx7dGFnTmFtZToibGkuYnRuIn0pKSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWFkbWluLW1lbnUiLHt0YWdOYW1lOiJkaXYucG9zdC1hZG1pbi1tZW51LnBvcHVwLW1lbnUiLGh0bWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49W107cmV0dXJuIG4ucHVzaCgoMCxpLmgpKCJoMyIsSTE4bi50KCJhZG1pbl90aXRsZSIpKSkscyh0aGlzLmF0dHJzLHRoaXMuY3VycmVudFVzZXIsdGhpcy5zaXRlU2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5zZWNvbmRhcnlBY3Rpb249ImNsb3NlQWRtaW5NZW51IixuLnB1c2godC5hdHRhY2goInBvc3QtYWRtaW4tbWVudS1idXR0b24iLGUpKX0pLG59LGNsaWNrT3V0c2lkZTpmdW5jdGlvbigpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigiY2xvc2VBZG1pbk1lbnUiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1jb29rZWQiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS9saWIvY2xpY2stdHJhY2siLCJkaXNjb3Vyc2UvbGliL2Zvcm1hdHRlciIsImRpc2NvdXJzZS9saWIvaGlnaGxpZ2h0LXRleHQiXSxmdW5jdGlvbihlLHUsaSxhLGwsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxlLmFkZERlY29yYXRvcj1mdW5jdGlvbihlKXtjLnB1c2goZSl9LGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7Yz1bXX07dmFyIGM9W107dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcyhlLnByb3RvdHlwZSx0KSxuJiZzKGUsbiksZX0obyxbe2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihlKXtpZihlLmF0dHJzLmNvb2tlZCE9PXRoaXMuYXR0cnMuY29va2VkfHxlLmF0dHJzLmhpZ2hsaWdodFRlcm0hPT10aGlzLmF0dHJzLmhpZ2hsaWdodFRlcm0pcmV0dXJuIHRoaXMuaW5pdCgpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5fY29tcHV0ZUNvb2tlZCgpO3JldHVybiB0aGlzLl9pbnNlcnRRdW90ZUNvbnRyb2xzKG4pLHRoaXMuX3Nob3dMaW5rQ291bnRzKG4pLHRoaXMuX2ZpeEltYWdlU2l6ZXMobiksdGhpcy5fYXBwbHlTZWFyY2hIaWdobGlnaHQobiksYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKG4sdC5kZWNvcmF0b3JIZWxwZXIpfSksblswXX19LHtrZXk6Il9hcHBseVNlYXJjaEhpZ2hsaWdodCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycy5oaWdobGlnaHRUZXJtO3QmJjI8dC5sZW5ndGg/KHRoaXMuX2hpZ2hsaWdodGVkJiZlLnVuaGlnaGxpZ2h0KCksKDAsbi5kZWZhdWx0KShlLHQse2RlZmF1bHRDbGFzc05hbWU6ITB9KSx0aGlzLl9oaWdobGlnaHRlZD0hMCk6dGhpcy5faGlnaGxpZ2h0ZWQmJihlLnVuaGlnaGxpZ2h0KCksdGhpcy5faGlnaGxpZ2h0ZWQ9ITEpfX0se2tleToiX2ZpeEltYWdlU2l6ZXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciBpPXRoaXMscz1EaXNjb3Vyc2UuU2l0ZVNldHRpbmdzLm1heF9pbWFnZV93aWR0aCxvPURpc2NvdXJzZS5TaXRlU2V0dGluZ3MubWF4X2ltYWdlX2hlaWdodCxyPXZvaWQgMDtlLmZpbmQoImltZzpub3QoLmF2YXRhcikiKS5lYWNoKGZ1bmN0aW9uKGUsdCl7cj1yfHwkKHdpbmRvdykud2lkdGgoKS0oaS5hdHRycy5tb2JpbGVWaWV3PzIwOjcwKSxzPHImJihyPXMpO3ZhciBuPXQuaGVpZ2h0L3Qud2lkdGg7dC53aWR0aD5yJiYodC53aWR0aD1yLHQuaGVpZ2h0PXBhcnNlSW50KHIqbiwxMCkpLHQuaGVpZ2h0Pm8mJih0LmhlaWdodD1vLHQud2lkdGg9cGFyc2VJbnQoci9uLDEwKSl9KX19LHtrZXk6Il9zaG93TGlua0NvdW50cyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hdHRycy5saW5rQ291bnRzO3QmJnQuZm9yRWFjaChmdW5jdGlvbihyKXshci5jbGlja3N8fHIuY2xpY2tzPDF8fGUuZmluZCgiYVtocmVmXSIpLmVhY2goZnVuY3Rpb24oZSx0KXt2YXIgbixpPSQodCkscz1pLmF0dHIoImhyZWYiKSxvPXM9PT1yLnVybDtyLmludGVybmFsJiYvXlwvdXBsb2Fkc1wvLy50ZXN0KHIudXJsKSYmKG89MDw9cy5pbmRleE9mKHIudXJsKSksci5pbnRlcm5hbCYmL1w/Ly50ZXN0KHMpJiYobz1zLnNwbGl0KCI/IilbMF09PT1yLnVybCksbyYmKDAsYS5pc1ZhbGlkTGluaykoaSkmJihuPUkxOG4udCgidG9waWNfbWFwLmNsaWNrcyIse2NvdW50OnIuY2xpY2tzfSksaS5hcHBlbmQoIiA8c3BhbiBjbGFzcz0nYmFkZ2UgYmFkZ2Utbm90aWZpY2F0aW9uIGNsaWNrcycgdGl0bGU9JyIrbisiJz4iKygwLGwubnVtYmVyKShyLmNsaWNrcykrIjwvc3Bhbj4iKSl9KX0pfX0se2tleToiX3RvZ2dsZVF1b3RlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgcz10aGlzO2lmKCF0aGlzLmV4cGFuZGluZyl7dGhpcy5leHBhbmRpbmc9ITAsZS5kYXRhKCJleHBhbmRlZCIsIWUuZGF0YSgiZXhwYW5kZWQiKSk7dmFyIG8scix0LG4sYT1mdW5jdGlvbigpe3JldHVybiBzLmV4cGFuZGluZz0hMX07cmV0dXJuIGUuZGF0YSgiZXhwYW5kZWQiKT8odGhpcy5fdXBkYXRlUXVvdGVFbGVtZW50cyhlLCJjaGV2cm9uLXVwIiksbz0kKCI+IGJsb2NrcXVvdGUiLGUpLGUuZGF0YSgib3JpZ2luYWwtY29udGVudHMiLG8uaHRtbCgpKSxyPW8udGV4dCgpLnRyaW0oKXx8JCgiPiBibG9ja3F1b3RlIix0aGlzLmF0dHJzLmNvb2tlZCkudGV4dCgpLnRyaW0oKSxvLmh0bWwoSTE4bi50KCJsb2FkaW5nIikpLG49dGhpcy5hdHRycy50b3BpY0lkLGUuZGF0YSgidG9waWMiKSYmKG49ZS5kYXRhKCJ0b3BpYyIpKSx0PXBhcnNlSW50KGUuZGF0YSgicG9zdCIpLDEwKSxuPXBhcnNlSW50KG4sMTApLCgwLGkuYWpheCkoIi9wb3N0cy9ieV9udW1iZXIvIituKyIvIit0KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PXMuZGVjb3JhdG9ySGVscGVyLmdldE1vZGVsKCksbj10LnF1b3RlZHx8e307bltlLmlkXT1lLHQuc2V0KCJxdW90ZWQiLG4pO3ZhciBpPSQoIjxkaXYgY2xhc3M9J2V4cGFuZGVkLXF1b3RlJz48L2Rpdj4iKTtpLmRhdGEoInBvc3QtaWQiLGUuaWQpLGkuaHRtbChlLmNvb2tlZCksYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKGkscy5kZWNvcmF0b3JIZWxwZXIpfSksaS5oaWdobGlnaHQocix7Y2FzZVNlbnNpdGl2ZTohMCxlbGVtZW50OiJzcGFuIixjbGFzc05hbWU6ImhpZ2hsaWdodGVkIn0pLG8uc2hvd0h0bWwoaSwiZmFzdCIsYSl9KS5jYXRjaChmdW5jdGlvbihlKXt2YXIgdDtbNDAzLDQwNF0uaW5jbHVkZXMoZS5qcVhIUi5zdGF0dXMpJiYodD00MDM9PT1lLmpxWEhSLnN0YXR1cz8ibG9jayI6ImZhci10cmFzaC1hbHQiLG8uc2hvd0h0bWwoJCgiPGRpdiBjbGFzcz0nZXhwYW5kZWQtcXVvdGUnPiIrKDAsdS5pY29uSFRNTCkodCkrIjwvZGl2PiIpLCJmYXN0IixhKSl9KSk6KHRoaXMuX3VwZGF0ZVF1b3RlRWxlbWVudHMoZSwiY2hldnJvbi1kb3duIiksJCgiYmxvY2txdW90ZSIsZSkuc2hvd0h0bWwoZS5kYXRhKCJvcmlnaW5hbC1jb250ZW50cyIpLCJmYXN0IixhKSksITF9fX0se2tleToiX3VybEZvclBvc3ROdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiAwPGU/dGhpcy5hdHRycy50b3BpY1VybCsiLyIrZTp0aGlzLmF0dHJzLnRvcGljVXJsfX0se2tleToiX3VwZGF0ZVF1b3RlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT0iIixzPUkxOG4udCgicG9zdC5mb2xsb3dfcXVvdGUiKSxvPWUuZGF0YSgicG9zdCIpLHI9ZS5kYXRhKCJ0b3BpYyIpO3ImJnI9PT10aGlzLmF0dHJzLnRvcGljSWQmJm8mJihuPSgwLHUuaWNvbkhUTUwpKCJhcnJvdy11cCIpLGk9IjxhIGhyZWY9JyIrdGhpcy5fdXJsRm9yUG9zdE51bWJlcihvKSsiJyB0aXRsZT0nIitzKyInIGNsYXNzPSdiYWNrJz4iK24rIjwvYT4iKTt2YXIgYSxsPSIiO2UuZGF0YSgiZnVsbCIpfHwobD0oMCx1Lmljb25IVE1MKSh0LHt0aXRsZToicG9zdC5leHBhbmRfY29sbGFwc2UifSksJCgiLnRpdGxlIixlKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKSksdGhpcy5pZ25vcmVkVXNlcnMmJjA8dGhpcy5pZ25vcmVkVXNlcnMubGVuZ3RoJiYwPChhPWUuZmluZCgiLnRpdGxlIikudGV4dCgpLnRyaW0oKS5zbGljZSgwLC0xKSkubGVuZ3RoJiZ0aGlzLmlnbm9yZWRVc2Vycy5pbmNsdWRlcyhhKSYmZS5maW5kKCJwIikucmVtb3ZlKCksJCgiLnF1b3RlLWNvbnRyb2xzIixlKS5odG1sKGwraSl9fSx7a2V5OiJfaW5zZXJ0UXVvdGVDb250cm9scyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHM9dGhpcyx0PWUuZmluZCgiYXNpZGUucXVvdGUiKTswIT09dC5sZW5ndGgmJnQuZWFjaChmdW5jdGlvbihlLHQpe3ZhciBuLGk9JCh0KTtpLmRhdGEoInBvc3QiKSYmKHMuX3VwZGF0ZVF1b3RlRWxlbWVudHMoaSwiY2hldnJvbi1kb3duIiksbj0kKCIudGl0bGUiLGkpLGkuZGF0YSgiZnVsbCIpfHxuLmRhdGEoImhhcy1xdW90ZS1jb250cm9scyIpfHwobi5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe3JldHVybiEhJChlLnRhcmdldCkuY2xvc2VzdCgiYSIpLmxlbmd0aHx8dm9pZCBzLl90b2dnbGVRdW90ZShpKX0pLG4uZGF0YSgiaGFzLXF1b3RlLWNvbnRyb2xzIiwhMCkpKX0pfX0se2tleToiX2NvbXB1dGVDb29rZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuYXR0cnMuZmlyc3RQb3N0fHx0aGlzLmF0dHJzLmVtYmVkZGVkUG9zdCkmJnRoaXMuaWdub3JlZFVzZXJzJiYwPHRoaXMuaWdub3JlZFVzZXJzLmxlbmd0aCYmdGhpcy5pZ25vcmVkVXNlcnMuaW5jbHVkZXModGhpcy5hdHRycy51c2VybmFtZSk/JCgiPGRpdiBjbGFzcz0nY29va2VkIHBvc3QtaWdub3JlZCc+IitJMThuLnQoInBvc3QuaWdub3JlZCIpKyI8L2Rpdj4iKTokKCI8ZGl2IGNsYXNzPSdjb29rZWQnPiIrdGhpcy5hdHRycy5jb29rZWQrIjwvZGl2PiIpfX1dKSxvKTtmdW5jdGlvbiBvKGUsdCxuKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxvKSx0aGlzLmF0dHJzPWUsdGhpcy5leHBhbmRpbmc9ITEsdGhpcy5faGlnaGxpZ2h0ZWQ9ITEsdGhpcy5kZWNvcmF0b3JIZWxwZXI9dCx0aGlzLmN1cnJlbnRVc2VyPW4sdGhpcy5pZ25vcmVkVXNlcnM9dGhpcy5jdXJyZW50VXNlcj90aGlzLmN1cnJlbnRVc2VyLmlnbm9yZWRfdXNlcnM6bnVsbH0oZS5kZWZhdWx0PXQpLnByb3RvdHlwZS50eXBlPSJXaWRnZXQifSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LWVkaXRzLWluZGljYXRvciIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsdCxhLGwsdSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoZSx0KXtpZih0KXt2YXIgbj0obmV3IERhdGUpLmdldFRpbWUoKSxpPXQuZ2V0VGltZSgpO3JldHVybiBpPm4tM2U2KmUuaGlzdG9yeV9ob3Vyc19sb3c/ImhlYXRtYXAtaGlnaCI6aT5uLTNlNiplLmhpc3RvcnlfaG91cnNfbWVkaXVtPyJoZWF0bWFwLW1lZCI6aT5uLTNlNiplLmhpc3RvcnlfaG91cnNfaGlnaD8iaGVhdG1hcC1sb3ciOnZvaWQgMH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaGlzdG9yeUhlYXQ9YyxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWVkaXRzLWluZGljYXRvciIse3RhZ05hbWU6ImRpdi5wb3N0LWluZm8uZWRpdHMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9InBlbmNpbC1hbHQiLG49bmV3IERhdGUoZS51cGRhdGVkX2F0KSxpPWModGhpcy5zaXRlU2V0dGluZ3Msbikscz0oMCxsLmxvbmdEYXRlKShuKSxvPXZvaWQgMCxvPWUud2lraT8odD0iZmFyLWVkaXQiLGk9KChpfHwiIikrIiB3aWtpIikudHJpbSgpLDE8ZS52ZXJzaW9uP0kxOG4udCgicG9zdC5sYXN0X2VkaXRlZF9vbiIpKyIgIitzOkkxOG4udCgicG9zdC53aWtpLmFib3V0IikpOkkxOG4udCgicG9zdC5sYXN0X2VkaXRlZF9vbiIpKyIgIitzLHI9WzE8ZS52ZXJzaW9uP2UudmVyc2lvbi0xOiIiLCIgIiwoMCxhLmljb25Ob2RlKSh0KV07cmV0dXJuKDAsdS5oKSgiYSIse2NsYXNzTmFtZTppLGF0dHJpYnV0ZXM6e3RpdGxlOm8saHJlZjoiIyJ9fSxyKX0sY2xpY2s6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXR0cnMud2lraSYmMT09PXRoaXMuYXR0cnMudmVyc2lvbj90aGlzLnNlbmRXaWRnZXRBY3Rpb24oImVkaXRQb3N0Iik6dGhpcy5hdHRycy5jYW5WaWV3RWRpdEhpc3RvcnkmJnRoaXMuc2VuZFdpZGdldEFjdGlvbigic2hvd0hpc3RvcnkiKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1nYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWdhcCIse3RhZ05hbWU6ImRpdi5nYXAiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJwb3N0LWdhcC0iK2UucG9zKyItIitlLnBvc3RJZH0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2xvYWRpbmc6ITF9fSxodG1sOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubG9hZGluZz9JMThuLnQoImxvYWRpbmciKTpJMThuLnQoInBvc3QuZ2FwIix7Y291bnQ6ZS5nYXAubGVuZ3RofSl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hdHRycyx0PXRoaXMuc3RhdGU7aWYoIXQubG9hZGluZyl7dC5sb2FkaW5nPSEwO3ZhciBuPXtnYXA6ZS5nYXAscG9zdDp0aGlzLm1vZGVsfTtyZXR1cm4gdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJiZWZvcmUiPT09ZS5wb3M/ImZpbGxHYXBCZWZvcmUiOiJmaWxsR2FwQWZ0ZXIiLG4pfX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1saW5rcyIsWyJleHBvcnRzIiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9lbW9qaSJdLGZ1bmN0aW9uKGUsbix0LGEsaSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LWxpbmtzIix7dGFnTmFtZToiZGl2LnBvc3QtbGlua3MtY29udGFpbmVyIixidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1saW5rcy0iK2UuaWR9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntjb2xsYXBzZWQ6ITB9fSxsaW5rSHRtbDpmdW5jdGlvbihlKXt2YXIgdD0oMCxpLnJlcGxhY2VFbW9qaSkoZS50aXRsZSk7cmV0dXJuIGUuY2xpY2tzJiZ0LnB1c2goKDAsYS5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24uY2xpY2tzIixlLmNsaWNrcy50b1N0cmluZygpKSksKDAsYS5oKSgibGkiLCgwLGEuaCkoImEudHJhY2stbGluayIse2NsYXNzTmFtZToiaW5ib3VuZCIsYXR0cmlidXRlczp7aHJlZjplLnVybH19LFsoMCxuLmljb25Ob2RlKSgibGluayIpLHRdKSl9LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKHRoaXMuYXR0cnMubGlua3MmJjAhPT10aGlzLmF0dHJzLmxpbmtzLmxlbmd0aCl7dmFyIGk9dGhpcy5hdHRycy5saW5rcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVmbGVjdGlvbn0pLnVuaXFCeSgidGl0bGUiKTtpZigwIT09aS5sZW5ndGgpe3ZhciBzPVtdO2lmKGkubGVuZ3RoPD01fHwhdC5jb2xsYXBzZWQpaS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnB1c2gobi5saW5rSHRtbChlKSl9KTtlbHNle2Zvcih2YXIgbz1NYXRoLm1pbig1LGkubGVuZ3RoKSxyPTA7cjxvO3IrKylzLnB1c2godGhpcy5saW5rSHRtbChpW3JdKSk7aS5sZW5ndGg+byYmcy5wdXNoKCgwLGEuaCkoImxpIix0aGlzLmF0dGFjaCgibGluayIse2xhYmVsQ291bnQ6InBvc3RfbGlua3MudGl0bGUiLHRpdGxlOiJwb3N0X2xpbmtzLmFib3V0Iixjb3VudDppLmxlbmd0aC1vLGFjdGlvbjoiZXhwYW5kTGlua3MiLGNsYXNzTmFtZToiZXhwYW5kLWxpbmtzIn0pKSl9cmV0dXJuIHMubGVuZ3RoPygwLGEuaCkoInVsLnBvc3QtbGlua3MiLHMpOnZvaWQgMH19fSxleHBhbmRMaW5rczpmdW5jdGlvbigpe3RoaXMuc3RhdGUuY29sbGFwc2VkPSExfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LW1lbnUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvYWN0aW9ucy1zdW1tYXJ5IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL3Nob3ctbW9kYWwiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiXSxmdW5jdGlvbihlLF8sdyxuLHgsdCxyLHMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5hZGRCdXR0b249ZnVuY3Rpb24oZSx0KXtrW2VdPXR9LGUuYnVpbGRCdXR0b249bztmdW5jdGlvbiBhKGUsdCxuLGkpe2lmKCJ0ZXN0Ij09PXMuZGVmYXVsdC5lbnZpcm9ubWVudClyZXR1cm4oMCxfLnJ1bikodGhpcyxpKTtlLnN0b3AoKS5jc3MoInRleHRJbmRlbnQiLHQpLmFuaW1hdGUoe3RleHRJbmRlbnQ6bn0se2NvbXBsZXRlOmksc3RlcDpmdW5jdGlvbihlKXskKHRoaXMpLmNzcygidHJhbnNmb3JtIiwic2NhbGUoIitlKyIpIikuYWRkQ2xhc3MoImQtbGlrZWQiKS5yZW1vdmVDbGFzcygiZC11bmxpa2VkIil9LGR1cmF0aW9uOjE1MH0sImxpbmVhciIpfXZhciBsPXt9LGs9e307ZnVuY3Rpb24gaShlLHQpe2xbZV09dH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49dC5hdHRycyxpPXQuc3RhdGUscz10LnNpdGVTZXR0aW5ncyxvPXQuc2V0dGluZ3Mscj1sW2VdO2lmKHIpe3ZhciBhPXIobixpLHMsbyk7cmV0dXJuIGEmJiFhLmlkJiYoYS5pZD1lKSxhfX1mdW5jdGlvbiB1KGUpe3ZhciB0PWUubGlrZUNvdW50O2lmKDA8dCl7dmFyIG49ZS5saWtlZD8xPT09dD8icG9zdC5oYXNfbGlrZXNfdGl0bGVfb25seV95b3UiOiJwb3N0Lmhhc19saWtlc190aXRsZV95b3UiOiJwb3N0Lmhhc19saWtlc190aXRsZSIsaT1lLnlvdXJzPyJkLWxpa2VkIjoiIixzPWUueW91cnMsbz1lLnlvdXJzPyJteS1saWtlcyI6InJlZ3VsYXItbGlrZXMiO3JldHVybiBlLnNob3dMaWtlfHwoaT1lLnlvdXJzPyJkLWxpa2VkIjoiZC11bmxpa2VkIixzPSEwKSx7YWN0aW9uOiJ0b2dnbGVXaG9MaWtlZCIsdGl0bGU6bixjbGFzc05hbWU6ImJ1dHRvbi1jb3VudCBsaWtlLWNvdW50IGhpZ2hsaWdodC1hY3Rpb24gIitvLGNvbnRlbnRzOnQsaWNvbjppLGljb25SaWdodDohMCxhZGRDb250YWluZXI6cyx0aXRsZU9wdGlvbnM6e2NvdW50OmUubGlrZWQ/dC0xOnR9fX19ZnVuY3Rpb24gUChlLHQsbil7dmFyIGk9ZS5pbmRleE9mKHQpOy0xIT09aSYmKGVbaV09bil9aSgicmVhZC1jb3VudCIsZnVuY3Rpb24oZSl7aWYoZS5zaG93UmVhZEluZGljYXRvcil7dmFyIHQ9ZS5yZWFkQ291bnQ7aWYoMDx0KXJldHVybnthY3Rpb246InRvZ2dsZVdob1JlYWQiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLnJlYWRfaW5kaWNhdG9yIixjbGFzc05hbWU6ImJ1dHRvbi1jb3VudCByZWFkLWluZGljYXRvciIsY29udGVudHM6dCxpY29uUmlnaHQ6ITAsYWRkQ29udGFpbmVyOiExfX19KSxpKCJyZWFkIixmdW5jdGlvbihlKXt2YXIgdD0wPGUucmVhZENvdW50O2lmKGUuc2hvd1JlYWRJbmRpY2F0b3ImJnQpcmV0dXJue2FjdGlvbjoidG9nZ2xlV2hvUmVhZCIsdGl0bGU6InBvc3QuY29udHJvbHMucmVhZF9pbmRpY2F0b3IiLGljb246ImJvb2stcmVhZGVyIixiZWZvcmU6InJlYWQtY291bnQiLGFkZENvbnRhaW5lcjohMX19KSxpKCJsaWtlLWNvdW50Iix1KSxpKCJsaWtlIixmdW5jdGlvbihlKXtpZighZS5zaG93TGlrZSlyZXR1cm4gdShlKTt2YXIgdD1lLmxpa2VkPyJ0b2dnbGUtbGlrZSBoYXMtbGlrZSBmYWRlLW91dCI6InRvZ2dsZS1saWtlIGxpa2UiLG49e2FjdGlvbjoibGlrZSIsaWNvbjplLmxpa2VkPyJkLWxpa2VkIjoiZC11bmxpa2VkIixjbGFzc05hbWU6dCxiZWZvcmU6Imxpa2UtY291bnQifTtyZXR1cm4gZS5saWtlZCYmIWUuY2FuVG9nZ2xlTGlrZT8obi50aXRsZT0icG9zdC5jb250cm9scy5oYXNfbGlrZWQiLG4uZGlzYWJsZWQ9ITApOm4udGl0bGU9ZS5saWtlZD8icG9zdC5jb250cm9scy51bmRvX2xpa2UiOiJwb3N0LmNvbnRyb2xzLmxpa2UiLG59KSxpKCJmbGFnLWNvdW50IixmdW5jdGlvbihlKXt2YXIgdD0iYnV0dG9uLWNvdW50IjtyZXR1cm4gMDxlLnJldmlld2FibGVTY29yZVBlbmRpbmdDb3VudCYmKHQrPSIgaGFzLXBlbmRpbmciKSx7Y2xhc3NOYW1lOnQsY29udGVudHM6KDAseC5oKSgic3BhbiIsZS5yZXZpZXdhYmxlU2NvcmVDb3VudC50b1N0cmluZygpKSx1cmw6Ii9yZXZpZXcvIitlLnJldmlld2FibGVJZH19KSxpKCJmbGFnIixmdW5jdGlvbihlKXtpZihlLnJldmlld2FibGVJZHx8ZS5jYW5GbGFnJiYhZS5oaWRkZW4pe3ZhciB0PXthY3Rpb246InNob3dGbGFncyIsdGl0bGU6InBvc3QuY29udHJvbHMuZmxhZyIsaWNvbjoiZmxhZyIsY2xhc3NOYW1lOiJjcmVhdGUtZmxhZyJ9O3JldHVybiBlLnJldmlld2FibGVJZCYmKHQuYmVmb3JlPSJmbGFnLWNvdW50IiksdH19KSxpKCJlZGl0IixmdW5jdGlvbihlKXtpZihlLmNhbkVkaXQpcmV0dXJue2FjdGlvbjoiZWRpdFBvc3QiLGNsYXNzTmFtZToiZWRpdCIsdGl0bGU6InBvc3QuY29udHJvbHMuZWRpdCIsaWNvbjoicGVuY2lsLWFsdCIsYWx3YXlzU2hvd1lvdXJzOiEwfX0pLGkoInJlcGx5LXNtYWxsIixmdW5jdGlvbihlKXtpZihlLmNhbkNyZWF0ZVBvc3Qpe3JldHVybnthY3Rpb246InJlcGx5VG9Qb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5yZXBseSIsaWNvbjoicmVwbHkiLGNsYXNzTmFtZToicmVwbHkifX19KSxpKCJ3aWtpLWVkaXQiLGZ1bmN0aW9uKGUpe2lmKGUuY2FuRWRpdCl7dmFyIHQ9e2FjdGlvbjoiZWRpdFBvc3QiLGNsYXNzTmFtZToiZWRpdCBjcmVhdGUiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmVkaXQiLGljb246ImZhci1lZGl0IixhbHdheXNTaG93WW91cnM6ITB9O3JldHVybiBlLm1vYmlsZVZpZXd8fCh0LmxhYmVsPSJwb3N0LmNvbnRyb2xzLmVkaXRfYWN0aW9uIiksdH19KSxpKCJyZXBsaWVzIixmdW5jdGlvbihlLHQsbil7dmFyIGk9ZS5yZXBseUNvdW50O2lmKGkmJigxIT09aXx8IWUucmVwbHlEaXJlY3RseUJlbG93fHwhbi5zdXBwcmVzc19yZXBseV9kaXJlY3RseV9iZWxvdykpcmV0dXJue2FjdGlvbjoidG9nZ2xlUmVwbGllc0JlbG93IixjbGFzc05hbWU6InNob3ctcmVwbGllcyIsaWNvbjp0LnJlcGxpZXNTaG93bj8iY2hldnJvbi11cCI6ImNoZXZyb24tZG93biIsdGl0bGVPcHRpb25zOntjb3VudDppfSx0aXRsZToicG9zdC5oYXNfcmVwbGllcyIsbGFiZWxPcHRpb25zOntjb3VudDppfSxsYWJlbDoicG9zdC5oYXNfcmVwbGllcyIsaWNvblJpZ2h0OiEwfX0pLGkoInNoYXJlIixmdW5jdGlvbihlKXtyZXR1cm57YWN0aW9uOiJzaGFyZSIsY2xhc3NOYW1lOiJzaGFyZSIsdGl0bGU6InBvc3QuY29udHJvbHMuc2hhcmUiLGljb246ImxpbmsiLGRhdGE6eyJzaGFyZS11cmwiOmUuc2hhcmVVcmwsInBvc3QtbnVtYmVyIjplLnBvc3RfbnVtYmVyfX19KSxpKCJyZXBseSIsZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9e2FjdGlvbjoicmVwbHlUb1Bvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLnJlcGx5IixpY29uOiJyZXBseSIsY2xhc3NOYW1lOiJyZXBseSBjcmVhdGUgZmFkZS1vdXQifTtpZihlLmNhbkNyZWF0ZVBvc3QpcmV0dXJuIWkuc2hvd1JlcGx5VGl0bGVPbk1vYmlsZSYmZS5tb2JpbGVWaWV3fHwocy5sYWJlbD0idG9waWMucmVwbHkudGl0bGUiKSxzfSksaSgiYm9va21hcmsiLGZ1bmN0aW9uKGUpe2lmKGUuY2FuQm9va21hcmspe3ZhciB0PSJib29rbWFyayI7cmV0dXJuIGUuYm9va21hcmtlZCYmKHQrPSIgYm9va21hcmtlZCIpLHtpZDplLmJvb2ttYXJrZWQ/InVuYm9va21hcmsiOiJib29rbWFyayIsYWN0aW9uOiJ0b2dnbGVCb29rbWFyayIsdGl0bGU6ZS5ib29rbWFya2VkPyJib29rbWFya3MuY3JlYXRlZCI6ImJvb2ttYXJrcy5ub3RfYm9va21hcmtlZCIsY2xhc3NOYW1lOnQsaWNvbjoiYm9va21hcmsifX19KSxpKCJib29rbWFya1dpdGhSZW1pbmRlciIsZnVuY3Rpb24oZSx0LG4pe2lmKGUuY2FuQm9va21hcmsmJm4uZW5hYmxlX2Jvb2ttYXJrc193aXRoX3JlbWluZGVycyl7dmFyIGk9WyJib29rbWFyayIsIndpdGgtcmVtaW5kZXIiXSxzPSJib29rbWFya3Mubm90X2Jvb2ttYXJrZWQiLG89e307cmV0dXJuIGUuYm9va21hcmtlZFdpdGhSZW1pbmRlciYmKGkucHVzaCgiYm9va21hcmtlZCIpLGUuYm9va21hcmtSZW1pbmRlckF0PyhzPSJib29rbWFya3MuY3JlYXRlZF93aXRoX3JlbWluZGVyIixvPXtkYXRlOm1vbWVudChlLmJvb2ttYXJrUmVtaW5kZXJBdCkudHooRGlzY291cnNlLmN1cnJlbnRVc2VyLnRpbWV6b25lKS5mb3JtYXQoSTE4bi50KCJkYXRlcy5sb25nX3dpdGhfeWVhciIpKX0pOnM9ImJvb2ttYXJrcy5jcmVhdGVkIikse2lkOmUuYm9va21hcmtlZFdpdGhSZW1pbmRlcj8idW5ib29rbWFyayI6ImJvb2ttYXJrIixhY3Rpb246InRvZ2dsZUJvb2ttYXJrV2l0aFJlbWluZGVyIix0aXRsZTpzLHRpdGxlT3B0aW9uczpvLGNsYXNzTmFtZTppLmpvaW4oIiAiKSxpY29uOmUuYm9va21hcmtSZW1pbmRlckF0PyJkaXNjb3Vyc2UtYm9va21hcmstY2xvY2siOiJib29rbWFyayJ9fX0pLGkoImFkbWluIixmdW5jdGlvbihlKXtpZihlLmNhbk1hbmFnZXx8ZS5jYW5XaWtpKXJldHVybnthY3Rpb246Im9wZW5BZG1pbk1lbnUiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmFkbWluIixjbGFzc05hbWU6InNob3ctcG9zdC1hZG1pbi1tZW51IixpY29uOiJ3cmVuY2gifX0pLGkoImRlbGV0ZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2FuUmVjb3ZlclRvcGljP3tpZDoicmVjb3Zlcl90b3BpYyIsYWN0aW9uOiJyZWNvdmVyUG9zdCIsdGl0bGU6InRvcGljLmFjdGlvbnMucmVjb3ZlciIsaWNvbjoidW5kbyIsY2xhc3NOYW1lOiJyZWNvdmVyIn06ZS5jYW5EZWxldGVUb3BpYz97aWQ6ImRlbGV0ZV90b3BpYyIsYWN0aW9uOiJkZWxldGVQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGVfdG9waWMiLGljb246ImZhci10cmFzaC1hbHQiLGNsYXNzTmFtZToiZGVsZXRlIn06ZS5jYW5SZWNvdmVyP3tpZDoicmVjb3ZlciIsYWN0aW9uOiJyZWNvdmVyUG9zdCIsdGl0bGU6InBvc3QuY29udHJvbHMudW5kZWxldGUiLGljb246InVuZG8iLGNsYXNzTmFtZToicmVjb3ZlciJ9OmUuY2FuRGVsZXRlP3tpZDoiZGVsZXRlIixhY3Rpb246ImRlbGV0ZVBvc3QiLHRpdGxlOiJwb3N0LmNvbnRyb2xzLmRlbGV0ZSIsaWNvbjoiZmFyLXRyYXNoLWFsdCIsY2xhc3NOYW1lOiJkZWxldGUifTplLnNob3dGbGFnRGVsZXRlP3tpZDoiZGVsZXRlX3RvcGljIixhY3Rpb246InNob3dEZWxldGVUb3BpY01vZGFsIix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGVfdG9waWNfZGlzYWxsb3dlZCIsaWNvbjoiZmFyLXRyYXNoLWFsdCIsY2xhc3NOYW1lOiJkZWxldGUifTp2b2lkIDB9KSxlLmRlZmF1bHQ9KDAsdy5jcmVhdGVXaWRnZXQpKCJwb3N0LW1lbnUiLHt0YWdOYW1lOiJzZWN0aW9uLnBvc3QtbWVudS1hcmVhLmNsZWFyZml4IixzZXR0aW5nczp7Y29sbGFwc2VCdXR0b25zOiEwLGJ1dHRvblR5cGU6ImZsYXQtYnV0dG9uIixzaG93UmVwbHlUaXRsZU9uTW9iaWxlOiExfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57Y29sbGFwc2VkOiEwLGxpa2VkVXNlcnM6W10scmVhZGVyczpbXSxhZG1pblZpc2libGU6ITF9fSxidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1tZW51LSIrZS5pZH0sYXR0YWNoQnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PW8oZSx0aGlzKTtpZih0KXt2YXIgbj10aGlzLmF0dGFjaCh0aGlzLnNldHRpbmdzLmJ1dHRvblR5cGUsdCk7aWYodC5iZWZvcmUpe3ZhciBpPXRoaXMuYXR0YWNoQnV0dG9uKHQuYmVmb3JlKTtyZXR1cm4oMCx4LmgpKCJkaXYuZG91YmxlLWJ1dHRvbiIsW2ksbl0pfXJldHVybiB0LmFkZENvbnRhaW5lcj8oMCx4LmgpKCJkaXYuZG91YmxlLWJ1dHRvbiIsW25dKTpufX0sbWVudUl0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLnBvc3RfbWVudS5zcGxpdCgifCIpLmZpbHRlcihCb29sZWFuKX0saHRtbDpmdW5jdGlvbihhLGwpe3ZhciB1PXRoaXMsZT10aGlzLmN1cnJlbnRVc2VyLHQ9dGhpcy5rZXlWYWx1ZVN0b3JlLG49KHRoaXMuc2l0ZVNldHRpbmdzLnBvc3RfbWVudV9oaWRkZW5faXRlbXN8fCIiKS5zcGxpdCgifCIpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hYS5ib29rbWFya2VkfHwiYm9va21hcmsiIT09ZX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hYS5ib29rbWFya2VkV2l0aFJlbWluZGVyfHwiYm9va21hcmtXaXRoUmVtaW5kZXIiIT09ZX0pO2UmJnQmJnQuZ2V0SW50KCJsaWtlZFBvc3RJZCIpPT09YS5pZCYmKHQucmVtb3ZlKCJsaWtlZFBvc3RJZCIpLCgwLF8ubmV4dCkoZnVuY3Rpb24oKXtyZXR1cm4gdS5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVMaWtlIil9KSk7dmFyIGkscz1bXSxjPVtdLG89dGhpcy5tZW51SXRlbXMoKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXUuc2l0ZVNldHRpbmdzLmVuYWJsZV9ib29rbWFya3Nfd2l0aF9yZW1pbmRlcnN8fCJib29rbWFyayIhPT1lfSk7YS53aWtpJiZhLmNhbkVkaXQmJihQKG8sImVkaXQiLCJyZXBseS1zbWFsbCIpLFAobywicmVwbHkiLCJ3aWtpLWVkaXQiKSksby5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXUuYXR0YWNoQnV0dG9uKGUsYSk7dCYmKHMucHVzaCh0KSwoYS55b3VycyYmdC5hdHRycyYmdC5hdHRycy5hbHdheXNTaG93WW91cnN8fGEucmV2aWV3YWJsZUlkJiYiZmxhZyI9PT1lfHwtMT09PW4uaW5kZXhPZihlKSkmJmMucHVzaCh0KSl9KSx0aGlzLnNldHRpbmdzLmNvbGxhcHNlQnV0dG9uc3x8KGM9cyksIWwuY29sbGFwc2VkfHxzLmxlbmd0aDw9Yy5sZW5ndGgrMT8oYz1zLGwuY29sbGFwc2VkJiYobC5jb2xsYXBzZWQ9ITEpKTooaT10aGlzLmF0dGFjaCgiZmxhdC1idXR0b24iLHthY3Rpb246InNob3dNb3JlQWN0aW9ucyIsdGl0bGU6InNob3dfbW9yZSIsY2xhc3NOYW1lOiJzaG93LW1vcmUtYWN0aW9ucyIsaWNvbjoiZWxsaXBzaXMtaCJ9KSxjLnNwbGljZShjLmxlbmd0aC0xLDAsaSkpLE9iamVjdC52YWx1ZXMoaykuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lKGEsdS5zdGF0ZSx1LnNpdGVTZXR0aW5ncyk7aWYodCl7dmFyIG49dC5wb3NpdGlvbixpPXQuYmVmb3JlQnV0dG9uLHM9dC5hZnRlckJ1dHRvbjtkZWxldGUgdC5wb3NpdGlvbjt2YXIgbz11LmF0dGFjaCh1LnNldHRpbmdzLmJ1dHRvblR5cGUsdCkscj1bXTtpZihpJiZyLnB1c2goaSh4LmgpKSxyLnB1c2gobykscyYmci5wdXNoKHMoeC5oKSksbz0oMCx4LmgpKCJzcGFuLmV4dHJhLWJ1dHRvbnMiLHIpKXN3aXRjaChuKXtjYXNlImZpcnN0IjpjLnVuc2hpZnQobyk7YnJlYWs7Y2FzZSJzZWNvbmQiOmMuc3BsaWNlKDEsMCxvKTticmVhaztjYXNlInNlY29uZC1sYXN0LWhpZGRlbiI6bC5jb2xsYXBzZWR8fGMuc3BsaWNlKGMubGVuZ3RoLTIsMCxvKTticmVhaztkZWZhdWx0OmMucHVzaChvKX19fX0pO3ZhciByPVtdLGQ9dGhpcy5hdHRhY2hCdXR0b24oInJlcGxpZXMiLGEpO2QmJnIucHVzaChkKTt2YXIgcD0oMCx3LmFwcGx5RGVjb3JhdG9ycykodGhpcywiZXh0cmEtY29udHJvbHMiLGEsbCk7ci5wdXNoKCgwLHguaCkoImRpdi5hY3Rpb25zIixjLmNvbmNhdChwKSkpLGwuYWRtaW5WaXNpYmxlJiZyLnB1c2godGhpcy5hdHRhY2goInBvc3QtYWRtaW4tbWVudSIsYSkpO3ZhciBtLGYsaCxiLGcsdix5PVsoMCx4LmgpKCJuYXYucG9zdC1jb250cm9scy5jbGVhcmZpeCIrKHRoaXMuc3RhdGUuY29sbGFwc2VkPyIuY29sbGFwc2VkIjoiLmV4cGFuZGVkIikscildO3JldHVybiBsLnJlYWRlcnMubGVuZ3RoJiYoZj0wPChtPWwudG90YWxSZWFkZXJzLWwucmVhZGVycy5sZW5ndGgpPyJwb3N0LmFjdGlvbnMucGVvcGxlLnJlYWRfY2FwcGVkIjoicG9zdC5hY3Rpb25zLnBlb3BsZS5yZWFkIixoPTA8bT9tOmwudG90YWxSZWFkZXJzLHkucHVzaCh0aGlzLmF0dGFjaCgic21hbGwtdXNlci1saXN0Iix7dXNlcnM6bC5yZWFkZXJzLGFkZFNlbGY6ITEsbGlzdENsYXNzTmFtZToid2hvLXJlYWQiLGRlc2NyaXB0aW9uOmYsY291bnQ6aH0pKSksbC5saWtlZFVzZXJzLmxlbmd0aCYmKGc9MDwoYj1sLnRvdGFsLWwubGlrZWRVc2Vycy5sZW5ndGgpPyJwb3N0LmFjdGlvbnMucGVvcGxlLmxpa2VfY2FwcGVkIjoicG9zdC5hY3Rpb25zLnBlb3BsZS5saWtlIix2PTA8Yj9iOmwudG90YWwseS5wdXNoKHRoaXMuYXR0YWNoKCJzbWFsbC11c2VyLWxpc3QiLHt1c2VyczpsLmxpa2VkVXNlcnMsYWRkU2VsZjphLmxpa2VkJiYwPT1iLGxpc3RDbGFzc05hbWU6Indoby1saWtlZCIsZGVzY3JpcHRpb246Zyxjb3VudDp2fSkpKSx5fSxvcGVuQWRtaW5NZW51OmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hZG1pblZpc2libGU9ITB9LGNsb3NlQWRtaW5NZW51OmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hZG1pblZpc2libGU9ITF9LHNob3dEZWxldGVUb3BpY01vZGFsOmZ1bmN0aW9uKCl7KDAsdC5kZWZhdWx0KSgiZGVsZXRlLXRvcGljLWRpc2FsbG93ZWQiKX0sc2hvd01vcmVBY3Rpb25zOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5zdGF0ZS5jb2xsYXBzZWQ9ITEsKHRoaXMuc3RhdGUubGlrZWRVc2Vycy5sZW5ndGg/ci5Qcm9taXNlLnJlc29sdmUoKTp0aGlzLmdldFdob0xpa2VkKCkpLnRoZW4oZnVuY3Rpb24oKXtpZighZS5zdGF0ZS5yZWFkZXJzLmxlbmd0aCYmZS5hdHRycy5zaG93UmVhZEluZGljYXRvcilyZXR1cm4gZS5nZXRXaG9SZWFkKCl9KX0sbGlrZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmF0dHJzLG49dGhpcy5jdXJyZW50VXNlcixpPXRoaXMua2V5VmFsdWVTdG9yZTtpZighbilyZXR1cm4gaSYmaS5zZXQoe2tleToibGlrZWRQb3N0SWQiLHZhbHVlOmUuaWR9KSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNob3dMb2dpbiIpO2lmKHRoaXMuY2FwYWJpbGl0aWVzLmNhblZpYnJhdGUmJm5hdmlnYXRvci52aWJyYXRlKDUpLGUubGlrZWQpcmV0dXJuIHRoaXMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlTGlrZSIpO3ZhciBzPSQoIltkYXRhLXBvc3QtaWQ9IitlLmlkKyJdIC50b2dnbGUtbGlrZSAuZC1pY29uIik7cy5jbG9zZXN0KCJidXR0b24iKS5hZGRDbGFzcygiaGFzLWxpa2UiKTt2YXIgbz1bMSwxLjVdO3JldHVybiBuZXcgci5Qcm9taXNlKGZ1bmN0aW9uKGUpe2EocyxvWzBdLG9bMV0sZnVuY3Rpb24oKXthKHMsb1sxXSxvWzBdLGZ1bmN0aW9uKCl7dC5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVMaWtlIikudGhlbihmdW5jdGlvbigpe3JldHVybiBlKCl9KX0pfSl9KX0scmVmcmVzaExpa2VzOmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZS5saWtlZFVzZXJzLmxlbmd0aClyZXR1cm4gdGhpcy5nZXRXaG9MaWtlZCgpfSxyZWZyZXNoUmVhZGVyczpmdW5jdGlvbigpe2lmKHRoaXMuc3RhdGUucmVhZGVycy5sZW5ndGgpcmV0dXJuIHRoaXMuZ2V0V2hvUmVhZCgpfSxnZXRXaG9MaWtlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMsdD10aGlzLnN0YXRlO3JldHVybiB0aGlzLnN0b3JlLmZpbmQoInBvc3QtYWN0aW9uLXVzZXIiLHtpZDplLmlkLHBvc3RfYWN0aW9uX3R5cGVfaWQ6Mn0pLnRoZW4oZnVuY3Rpb24oZSl7dC5saWtlZFVzZXJzPWUubWFwKG4uYXZhdGFyQXR0cyksdC50b3RhbD1lLnRvdGFsUm93c30pfSxnZXRXaG9SZWFkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5hdHRycyx0PXRoaXMuc3RhdGU7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgicG9zdC1yZWFkZXIiLHtpZDplLmlkfSkudGhlbihmdW5jdGlvbihlKXt0LnJlYWRlcnM9ZS5tYXAobi5hdmF0YXJBdHRzKSx0LnRvdGFsUmVhZGVycz1lLnRvdGFsUm93c30pfSx0b2dnbGVXaG9MaWtlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhdGU7aWYoIWUubGlrZWRVc2Vycy5sZW5ndGgpcmV0dXJuIHRoaXMuZ2V0V2hvTGlrZWQoKTtlLmxpa2VkVXNlcnM9W119LHRvZ2dsZVdob1JlYWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXRlO2lmKCF0aGlzLnN0YXRlLnJlYWRlcnMubGVuZ3RoKXJldHVybiB0aGlzLmdldFdob1JlYWQoKTtlLnJlYWRlcnM9W119fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QtcGxhY2Vob2xkZXIiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCJdLGZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJwb3N0LXBsYWNlaG9sZGVyIix7dGFnTmFtZToiYXJ0aWNsZS5wbGFjZWhvbGRlciIsdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtuLnB1c2goIlxuICAgICIpO3ZhciBpPVtdO2kucHVzaCgiXG4gICAgICAiKTt2YXIgcz1bXTtzLnB1c2goIlxuICAgICAgICAiKTtzLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InBsYWNlaG9sZGVyLWF2YXRhciBwbGFjZWhvbGRlci1hbmltYXRpb24ifSxbXSkpLHMucHVzaCgiXG4gICAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InRvcGljLWF2YXRhciJ9LHMpKSxpLnB1c2goIlxuICAgICAgIik7dmFyIG89W107by5wdXNoKCJcbiAgICAgICAgIik7by5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwbGFjZWhvbGRlci10ZXh0IHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJ9LFtdKSksby5wdXNoKCJcbiAgICAgICAgIik7by5wdXNoKHZpcnR1YWxEb20uaCgiZGl2Iix7Y2xhc3NOYW1lOiJwbGFjZWhvbGRlci10ZXh0IHBsYWNlaG9sZGVyLWFuaW1hdGlvbiJ9LFtdKSksby5wdXNoKCJcbiAgICAgICAgIik7cmV0dXJuIG8ucHVzaCh2aXJ0dWFsRG9tLmgoImRpdiIse2NsYXNzTmFtZToicGxhY2Vob2xkZXItdGV4dCBwbGFjZWhvbGRlci1hbmltYXRpb24ifSxbXSkpLG8ucHVzaCgiXG4gICAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InRvcGljLWJvZHkifSxvKSksaS5wdXNoKCJcbiAgICAiKSxuLnB1c2godmlydHVhbERvbS5oKCJkaXYiLHtjbGFzc05hbWU6InJvdyJ9LGkpKSxuLnB1c2goIlxuICAiKSxufX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0LXNtYWxsLWFjdGlvbiIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QiLCJkaXNjb3Vyc2UvbGliL3VybCIsImRpc2NvdXJzZS9saWIvZm9ybWF0dGVyIiwiQGVtYmVyL29iamVjdCJdLGZ1bmN0aW9uKGUsdCxpLHMsbyxyLGEsbCx1KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhlLHQsbil7dmFyIGk9bmV3IERhdGUodCkscz0oMCxsLmF1dG9VcGRhdGluZ1JlbGF0aXZlQWdlKShpLHtmb3JtYXQ6Im1lZGl1bS13aXRoLWFnbyJ9KSxvPSIiO3JldHVybiBuJiYobz0iaW52aXRlZF9ncm91cCI9PT1lfHwicmVtb3ZlZF9ncm91cCI9PT1lPyc8YSBjbGFzcz0ibWVudGlvbi1ncm91cCIgaHJlZj0iL2cvJytuKyciPkAnK24rIjwvYT4iOic8YSBjbGFzcz0ibWVudGlvbiIgaHJlZj0iJysoMCxhLnVzZXJQYXRoKShuKSsnIj5AJytuKyI8L2E+IiksSTE4bi50KCJhY3Rpb25fY29kZXMuIitlLHt3aG86byx3aGVuOnN9KS5odG1sU2FmZSgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFjdGlvbkRlc2NyaXB0aW9uSHRtbD1jLGUuYWN0aW9uRGVzY3JpcHRpb249ZnVuY3Rpb24odCxuLGkpe3JldHVybigwLHUuY29tcHV0ZWQpKHQsbixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0KHQpO2lmKGUpcmV0dXJuIGMoZSx0aGlzLmdldChuKSx0aGlzLmdldChpKSl9KX0sZS5hZGRQb3N0U21hbGxBY3Rpb25JY29uPWZ1bmN0aW9uKGUsdCl7ZFtlXT10fTt2YXIgZD17ImNsb3NlZC5lbmFibGVkIjoibG9jayIsImNsb3NlZC5kaXNhYmxlZCI6InVubG9jay1hbHQiLCJhdXRvY2xvc2VkLmVuYWJsZWQiOiJsb2NrIiwiYXV0b2Nsb3NlZC5kaXNhYmxlZCI6InVubG9jay1hbHQiLCJhcmNoaXZlZC5lbmFibGVkIjoiZm9sZGVyIiwiYXJjaGl2ZWQuZGlzYWJsZWQiOiJmb2xkZXItb3BlbiIsInBpbm5lZC5lbmFibGVkIjoidGh1bWJ0YWNrIiwicGlubmVkLmRpc2FibGVkIjoidGh1bWJ0YWNrIHVucGlubmVkIiwicGlubmVkX2dsb2JhbGx5LmVuYWJsZWQiOiJ0aHVtYnRhY2siLCJwaW5uZWRfZ2xvYmFsbHkuZGlzYWJsZWQiOiJ0aHVtYnRhY2sgdW5waW5uZWQiLCJiYW5uZXIuZW5hYmxlZCI6InRodW1idGFjayIsImJhbm5lci5kaXNhYmxlZCI6InRodW1idGFjayB1bnBpbm5lZCIsInZpc2libGUuZW5hYmxlZCI6ImZhci1leWUiLCJ2aXNpYmxlLmRpc2FibGVkIjoiZmFyLWV5ZS1zbGFzaCIsc3BsaXRfdG9waWM6InNpZ24tb3V0LWFsdCIsaW52aXRlZF91c2VyOiJwbHVzLWNpcmNsZSIsaW52aXRlZF9ncm91cDoicGx1cy1jaXJjbGUiLHVzZXJfbGVmdDoibWludXMtY2lyY2xlIixyZW1vdmVkX3VzZXI6Im1pbnVzLWNpcmNsZSIscmVtb3ZlZF9ncm91cDoibWludXMtY2lyY2xlIixwdWJsaWNfdG9waWM6ImNvbW1lbnQiLHByaXZhdGVfdG9waWM6ImVudmVsb3BlIixhdXRvYnVtcGVkOiJoYW5kLXBvaW50LXJpZ2h0In07ZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicG9zdC1zbWFsbC1hY3Rpb24iLHtidWlsZEtleTpmdW5jdGlvbihlKXtyZXR1cm4icG9zdC1zbWFsbC1hY3QtIitlLmlkfSx0YWdOYW1lOiJkaXYuc21hbGwtYWN0aW9uLm9uc2NyZWVuLXBvc3QiLGJ1aWxkSWQ6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3RfIitlLnBvc3RfbnVtYmVyfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5kZWxldGVkKXJldHVybiJkZWxldGVkIn0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTtlLmNhbkRlbGV0ZSYmdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6InNtYWxsLWFjdGlvbi1kZWxldGUiLGljb246InRyYXNoLWFsdCIsYWN0aW9uOiJkZWxldGVQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5kZWxldGUifSkpLGUuY2FuRWRpdCYmdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6InNtYWxsLWFjdGlvbi1lZGl0IixpY29uOiJwZW5jaWwtYWx0IixhY3Rpb246ImVkaXRQb3N0Iix0aXRsZToicG9zdC5jb250cm9scy5lZGl0In0pKSx0LnB1c2goci5hdmF0YXJGb3IuY2FsbCh0aGlzLCJzbWFsbCIse3RlbXBsYXRlOmUuYXZhdGFyX3RlbXBsYXRlLHVzZXJuYW1lOmUudXNlcm5hbWUsdXJsOmUudXNlcm5hbWVVcmx9KSk7dmFyIG49YyhlLmFjdGlvbkNvZGUsbmV3IERhdGUoZS5jcmVhdGVkX2F0KSxlLmFjdGlvbkNvZGVXaG8pO3JldHVybiB0LnB1c2gobmV3IGkuZGVmYXVsdCh7aHRtbDoiPHA+IituKyI8L3A+In0pKSxlLmNvb2tlZCYmdC5wdXNoKG5ldyBpLmRlZmF1bHQoe2h0bWw6IjxkaXYgY2xhc3M9J2N1c3RvbS1tZXNzYWdlJz4iK2UuY29va2VkKyI8L2Rpdj4ifSkpLFsoMCxvLmgpKCJkaXYudG9waWMtYXZhdGFyIiwoMCxzLmljb25Ob2RlKShkW2UuYWN0aW9uQ29kZV18fCJleGNsYW1hdGlvbiIpKSwoMCxvLmgpKCJkaXYuc21hbGwtYWN0aW9uLWRlc2MiLHQpXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL2xpYi90cmFuc2Zvcm0tcG9zdCIsImRpc2NvdXJzZS9saWIvcG9zdHMtd2l0aC1wbGFjZWhvbGRlcnMiLCJkaXNjb3Vyc2UvY29tcG9uZW50cy9tb3VudC13aWRnZXQiXSxmdW5jdGlvbihlLGksdCxiLGcsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBvc3RUcmFuc2Zvcm1DYWxsYmFja3M9dixlLmFkZFBvc3RUcmFuc2Zvcm1DYWxsYmFjaz1mdW5jdGlvbihlKXsocz1zfHxbXSkucHVzaChlKX0sZS5wcmV2ZW50Q2xvYWs9ZnVuY3Rpb24oZSl7cltlXT0hMH0sZS5jbG9haz1mdW5jdGlvbihlLHQpe2lmKCFvfHx5W2UuaWRdfHxyW2UuaWRdKXJldHVybjt2YXIgbj0kKCIjcG9zdF8iK2UucG9zdF9udW1iZXIpLnBhcmVudCgpO3lbZS5pZF09ITAsX1tlLmlkXT1uLm91dGVySGVpZ2h0KCksdC5kaXJ0eUtleXMua2V5RGlydHkoInBvc3QtIitlLmlkKSwoMCxpLmRlYm91bmNlKSh0LCJxdWV1ZVJlcmVuZGVyIiwxZTMpfSxlLnVuY2xvYWs9ZnVuY3Rpb24oZSx0KXtpZighb3x8IXlbZS5pZF0pcmV0dXJuO3lbZS5pZF09bnVsbCx0LmRpcnR5S2V5cy5rZXlEaXJ0eSgicG9zdC0iK2UuaWQpLHQucXVldWVSZXJlbmRlcigpfTt2YXIgcz1udWxsO2Z1bmN0aW9uIHYoZSl7aWYobnVsbCE9PXMpZm9yKHZhciB0PTA7dDxzLmxlbmd0aDt0Kyspc1t0XS5jYWxsKHRoaXMsZSl9dmFyIG89IXdpbmRvdy5pblRlc3RFbnYscj17fSx5PXt9LF89e307KDAsbi5hZGRXaWRnZXRDbGVhbkNhbGxiYWNrKSgicG9zdC1zdHJlYW0iLGZ1bmN0aW9uKCl7eT17fSxfPXt9fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicG9zdC1zdHJlYW0iLHt0YWdOYW1lOiJkaXYucG9zdC1zdHJlYW0iLGh0bWw6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PShlLnBvc3RzfHxbXSkudG9BcnJheSgpLG49W10saT1lLmdhcHMmJmUuZ2Fwcy5iZWZvcmU/ZS5nYXBzLmJlZm9yZTp7fSxzPWUuZ2FwcyYmZS5nYXBzLmFmdGVyP2UuZ2Fwcy5hZnRlcjp7fSxvPXZvaWQgMCxyPXZvaWQgMCxhPXRoaXMuc2l0ZS5tb2JpbGVWaWV3LGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIHUsYyxkLHAsbSxmLGg9dFtsXTtoIGluc3RhbmNlb2YgZy5QbGFjZWhvbGRlcj9uLnB1c2godGhpcy5hdHRhY2goInBvc3QtcGxhY2Vob2xkZXIiKSk6KHU9bDx0Lmxlbmd0aC0xP3RbbCsxXTpudWxsLChjPSgwLGIuZGVmYXVsdCkodGhpcy5jdXJyZW50VXNlcix0aGlzLnNpdGUsaCxvLHUpKS5jYW5DcmVhdGVQb3N0PWUuY2FuQ3JlYXRlUG9zdCxjLm1vYmlsZVZpZXc9YSxjLmNhbk1hbmFnZSYmKGMubXVsdGlTZWxlY3Q9ZS5tdWx0aVNlbGVjdCxlLm11bHRpU2VsZWN0JiYoYy5zZWxlY3RlZD1lLnNlbGVjdGVkUXVlcnkoaCkpKSxlLnNlYXJjaFNlcnZpY2UmJihjLmhpZ2hsaWdodFRlcm09ZS5zZWFyY2hTZXJ2aWNlLmhpZ2hsaWdodFRlcm0pLChkPWlbaC5pZF0pJiZuLnB1c2godGhpcy5hdHRhY2goInBvc3QtZ2FwIix7cG9zOiJiZWZvcmUiLHBvc3RJZDpoLmlkLGdhcDpkfSx7bW9kZWw6aH0pKSxwPW5ldyBEYXRlKGMuY3JlYXRlZF9hdCkuZ2V0VGltZSgpLCFyfHwobT1NYXRoLmZsb29yKChwLXIpLzg2NGU1KSk+dGhpcy5zaXRlU2V0dGluZ3Muc2hvd190aW1lX2dhcF9kYXlzJiZuLnB1c2godGhpcy5hdHRhY2goInRpbWUtZ2FwIix7ZGF5c1NpbmNlOm19KSkscj1wLGMuaGVpZ2h0PV9baC5pZF0sYy5jbG9ha2VkPXlbaC5pZF0sdihjKSxjLmlzU21hbGxBY3Rpb24/bi5wdXNoKHRoaXMuYXR0YWNoKCJwb3N0LXNtYWxsLWFjdGlvbiIsYyx7bW9kZWw6aH0pKTooYy5zaG93UmVhZEluZGljYXRvcj1lLnNob3dSZWFkSW5kaWNhdG9yLG4ucHVzaCh0aGlzLmF0dGFjaCgicG9zdCIsYyx7bW9kZWw6aH0pKSksKGY9c1toLmlkXSkmJm4ucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1nYXAiLHtwb3M6ImFmdGVyIixwb3N0SWQ6aC5pZCxnYXA6Zn0se21vZGVsOmh9KSksbz1oKX1yZXR1cm4gbn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcG9zdCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1jb29rZWQiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9kZWNvcmF0b3ItaGVscGVyIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UvbGliL3RyYW5zZm9ybS1wb3N0IiwiZGlzY291cnNlL3dpZGdldHMvcG9zdC1zdHJlYW0iLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXJsIiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UvbGliL3NldHRpbmdzIiwicnN2cCJdLGZ1bmN0aW9uKGUscixhLGwsbyx1LG4saSxjLGQscCxtLGYsaCxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZyhlKXt2YXIgdD0oMCxuLnRyYW5zZm9ybUJhc2ljUG9zdCkoZSk7cmV0dXJuKDAsaS5wb3N0VHJhbnNmb3JtQ2FsbGJhY2tzKSh0KSx0fWZ1bmN0aW9uIHMoZSx0KXt2YXIgbj0oMCxtLnRyYW5zbGF0ZVNpemUpKGUpLGk9KDAsbS5hdmF0YXJVcmwpKHQudGVtcGxhdGUsbik7aWYoaSYmMCE9PWkubGVuZ3RoKXt2YXIgcz10Lm5hbWV8fCgwLG0uZm9ybWF0VXNlcm5hbWUpKHQudXNlcm5hbWUpLG89ImF2YXRhciIrKHQuZXh0cmFDbGFzc2VzPyIgIit0LmV4dHJhQ2xhc3NlczoiIikscj17YXR0cmlidXRlczp7YWx0OiIiLHdpZHRoOm4saGVpZ2h0Om4sc3JjOkRpc2NvdXJzZS5nZXRVUkxXaXRoQ0ROKGkpLHRpdGxlOnN9LGNsYXNzTmFtZTpvfTtyZXR1cm4oMCxjLmgpKCJpbWciLHIpfX1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuKDAsYy5oKSgiYSIse2NsYXNzTmFtZToidHJpZ2dlci11c2VyLWNhcmQgIisodC5jbGFzc05hbWV8fCIiKSxhdHRyaWJ1dGVzOntocmVmOnQudXJsLCJkYXRhLXVzZXItY2FyZCI6dC51c2VybmFtZX19LHMoZSx0KSl9ZnVuY3Rpb24geShlLHQpe3JldHVybiBlLnJlcGx5VG9Vc2VybmFtZSYmKCFlLnJlcGx5RGlyZWN0bHlBYm92ZXx8IXQuc3VwcHJlc3NfcmVwbHlfZGlyZWN0bHlfYWJvdmUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmF2YXRhckltZz1zLGUuYXZhdGFyRm9yPXYsZS5hZGRQb3N0Q2xhc3Nlc0NhbGxiYWNrPWZ1bmN0aW9uKGUpeyhfPV98fFtdKS5wdXNoKGUpfSwidW5kZWZpbmVkIiE9dHlwZW9mIERpc2NvdXJzZSYmKERpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmF2YXRhcj12KSwoMCxsLmNyZWF0ZVdpZGdldCkoInNlbGVjdC1wb3N0Iix7dGFnTmFtZToiZGl2LnNlbGVjdC1wb3N0cyIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXTshZS5zZWxlY3RlZCYmMTxlLnBvc3RfbnVtYmVyJiYoMDxlLnJlcGx5Q291bnQmJnQucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7bGFiZWw6InRvcGljLm11bHRpX3NlbGVjdC5zZWxlY3RfcmVwbGllcy5sYWJlbCIsdGl0bGU6InRvcGljLm11bHRpX3NlbGVjdC5zZWxlY3RfcmVwbGllcy50aXRsZSIsYWN0aW9uOiJzZWxlY3RSZXBsaWVzIixjbGFzc05hbWU6InNlbGVjdC1yZXBsaWVzIn0pKSx0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2xhYmVsOiJ0b3BpYy5tdWx0aV9zZWxlY3Quc2VsZWN0X2JlbG93LmxhYmVsIix0aXRsZToidG9waWMubXVsdGlfc2VsZWN0LnNlbGVjdF9iZWxvdy50aXRsZSIsYWN0aW9uOiJzZWxlY3RCZWxvdyIsY2xhc3NOYW1lOiJzZWxlY3QtYmVsb3cifSkpKTt2YXIgbj0idG9waWMubXVsdGlfc2VsZWN0LiIrKGUuc2VsZWN0ZWQ/InNlbGVjdGVkIjoic2VsZWN0IikrIl9wb3N0IjtyZXR1cm4gdC5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtsYWJlbDpuKyIubGFiZWwiLHRpdGxlOm4rIi50aXRsZSIsYWN0aW9uOiJ0b2dnbGVQb3N0U2VsZWN0aW9uIixjbGFzc05hbWU6InNlbGVjdC1wb3N0In0pKSx0fX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgicmVwbHktdG8tdGFiIix7dGFnTmFtZToiYS5yZXBseS10by10YWIiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJyZXBseS10by10YWItIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57bG9hZGluZzohMX19LGh0bWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5sb2FkaW5nP0kxOG4udCgibG9hZGluZyIpOlsoMCx1Lmljb25Ob2RlKSgic2hhcmUiKSwiICIscygic21hbGwiLHt0ZW1wbGF0ZTplLnJlcGx5VG9BdmF0YXJUZW1wbGF0ZSx1c2VybmFtZTplLnJlcGx5VG9Vc2VybmFtZX0pLCIgIiwoMCxjLmgpKCJzcGFuIiwoMCxtLmZvcm1hdFVzZXJuYW1lKShlLnJlcGx5VG9Vc2VybmFtZSkpXX0sY2xpY2s6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc3RhdGUubG9hZGluZz0hMCx0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVJlcGx5QWJvdmUiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGUubG9hZGluZz0hMX0pfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgicG9zdC1hdmF0YXItdXNlci1pbmZvIix7dGFnTmFtZToiZGl2LnBvc3QtYXZhdGFyLXVzZXItaW5mbyIsaHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInBvc3Rlci1uYW1lIixlKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtYXZhdGFyIix7dGFnTmFtZToiZGl2LnRvcGljLWF2YXRhciIsc2V0dGluZ3M6e3NpemU6ImxhcmdlIixkaXNwbGF5UG9zdGVyTmFtZTohMX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bZS51c2VyX2lkP3YuY2FsbCh0aGlzLHRoaXMuc2V0dGluZ3Muc2l6ZSx7dGVtcGxhdGU6ZS5hdmF0YXJfdGVtcGxhdGUsdXNlcm5hbWU6ZS51c2VybmFtZSxuYW1lOmUubmFtZSx1cmw6ZS51c2VybmFtZVVybCxjbGFzc05hbWU6Im1haW4tYXZhdGFyIn0pOigwLHUuaWNvbk5vZGUpKCJmYXItdHJhc2gtYWx0Iix7Y2xhc3M6ImRlbGV0ZWQtdXNlci1hdmF0YXIifSldO3JldHVybihlLnByaW1hcnlfZ3JvdXBfZmxhaXJfdXJsfHxlLnByaW1hcnlfZ3JvdXBfZmxhaXJfYmdfY29sb3IpJiZ0LnB1c2godGhpcy5hdHRhY2goImF2YXRhci1mbGFpciIsZSkpLHQucHVzaCgoMCxjLmgpKCJkaXYucG9zdGVyLWF2YXRhci1leHRyYSIpKSx0aGlzLnNldHRpbmdzLmRpc3BsYXlQb3N0ZXJOYW1lJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtYXZhdGFyLXVzZXItaW5mbyIsZSkpLHR9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWxvY2tlZC1pbmRpY2F0b3IiLHt0YWdOYW1lOiJkaXYucG9zdC1pbmZvLnBvc3QtbG9ja2VkIix0ZW1wbGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPURpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLmljb25Ob2RlLGk9W107cmV0dXJuIGkucHVzaChuKCJsb2NrIikpLGl9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIEkxOG4udCgicG9zdC5sb2NrZWQiKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtZW1haWwtaW5kaWNhdG9yIix7dGFnTmFtZToiZGl2LnBvc3QtaW5mby52aWEtZW1haWwiLHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzQXV0b0dlbmVyYXRlZD9JMThuLnQoInBvc3QudmlhX2F1dG9fZ2VuZXJhdGVkX2VtYWlsIik6STE4bi50KCJwb3N0LnZpYV9lbWFpbCIpfSxidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2FuVmlld1Jhd0VtYWlsPyJyYXctZW1haWwiOm51bGx9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXNBdXRvR2VuZXJhdGVkPygwLHUuaWNvbk5vZGUpKCJlbnZlbG9wZSIpOigwLHUuaWNvbk5vZGUpKCJmYXItZW52ZWxvcGUiKX0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmF0dHJzLmNhblZpZXdSYXdFbWFpbCYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzaG93UmF3RW1haWwiKX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3QtbWV0YS1kYXRhIix7dGFnTmFtZToiZGl2LnRvcGljLW1ldGEtZGF0YSIsc2V0dGluZ3M6e2Rpc3BsYXlQb3N0ZXJOYW1lOiEwfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO2UuaXNXaGlzcGVyJiZ0LnB1c2goKDAsYy5oKSgiZGl2LnBvc3QtaW5mby53aGlzcGVyIix7YXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJwb3N0LndoaXNwZXIiKX19LCgwLHUuaWNvbk5vZGUpKCJmYXItZXllLXNsYXNoIikpKTt2YXIgbj1lLndpa2kmJmUubGFzdFdpa2lFZGl0JiZuZXcgRGF0ZShlLmxhc3RXaWtpRWRpdCksaT1uZXcgRGF0ZShlLmNyZWF0ZWRfYXQpLHM9bj8oMCxwLmRhdGVOb2RlKShuKTooMCxwLmRhdGVOb2RlKShpKSxvPXtjbGFzczoicG9zdC1kYXRlIixocmVmOmUuc2hhcmVVcmwsImRhdGEtc2hhcmUtdXJsIjplLnNoYXJlVXJsLCJkYXRhLXBvc3QtbnVtYmVyIjplLnBvc3RfbnVtYmVyfTtuJiYoby5jbGFzcys9IiBsYXN0LXdpa2ktZWRpdCIpLGUudmlhX2VtYWlsJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtZW1haWwtaW5kaWNhdG9yIixlKSksZS5sb2NrZWQmJnQucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1sb2NrZWQtaW5kaWNhdG9yIixlKSksKDE8ZS52ZXJzaW9ufHxlLndpa2kpJiZ0LnB1c2godGhpcy5hdHRhY2goInBvc3QtZWRpdHMtaW5kaWNhdG9yIixlKSksZS5tdWx0aVNlbGVjdCYmdC5wdXNoKHRoaXMuYXR0YWNoKCJzZWxlY3QtcG9zdCIsZSkpLHkoZSx0aGlzLnNpdGVTZXR0aW5ncykmJnQucHVzaCh0aGlzLmF0dGFjaCgicmVwbHktdG8tdGFiIixlKSksdC5wdXNoKCgwLGMuaCkoImRpdi5wb3N0LWluZm8ucG9zdC1kYXRlIiwoMCxjLmgpKCJhIix7YXR0cmlidXRlczpvfSxzKSkpLHQucHVzaCgoMCxjLmgpKCJkaXYucmVhZC1zdGF0ZSIse2NsYXNzTmFtZTplLnJlYWQ/InJlYWQiOm51bGwsYXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJwb3N0LnVucmVhZCIpfX0sKDAsdS5pY29uTm9kZSkoImNpcmNsZSIpKSk7dmFyIHI9W107cmV0dXJuIHRoaXMuc2V0dGluZ3MuZGlzcGxheVBvc3Rlck5hbWUmJnIucHVzaCh0aGlzLmF0dGFjaCgicG9zdGVyLW5hbWUiLGUpKSxyLnB1c2goKDAsYy5oKSgiZGl2LnBvc3QtaW5mb3MiLHQpKSxyfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgiZXhwYW5kLWhpZGRlbiIse3RhZ05hbWU6ImEuZXhwYW5kLWhpZGRlbiIsaHRtbDpmdW5jdGlvbigpe3JldHVybiBJMThuLnQoInBvc3Quc2hvd19oaWRkZW4iKX0sY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImV4cGFuZEhpZGRlbiIpfX0pLCgwLGwuY3JlYXRlV2lkZ2V0KSgiZXhwYW5kLXBvc3QtYnV0dG9uIix7dGFnTmFtZToiYnV0dG9uLmJ0bi5leHBhbmQtcG9zdCIsYnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuImV4cGFuZC1wb3N0LWJ1dHRvbi0iK2UuaWR9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntsb2FkaW5nRXhwYW5kZWQ6ITF9fSxodG1sOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubG9hZGluZ0V4cGFuZGVkP0kxOG4udCgibG9hZGluZyIpOltJMThuLnQoInBvc3Quc2hvd19mdWxsIiksIi4uLiJdfSxjbGljazpmdW5jdGlvbigpe3RoaXMuc3RhdGUubG9hZGluZ0V4cGFuZGVkPSEwLHRoaXMuc2VuZFdpZGdldEFjdGlvbigiZXhwYW5kRmlyc3RQb3N0Iil9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWNvbnRlbnRzIix7YnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QtY29udGVudHMtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57ZXhwYW5kZWRGaXJzdFBvc3Q6ITEscmVwbGllc0JlbG93OltdfX0sYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVsicmVndWxhciJdO3JldHVybiB0aGlzLnN0YXRlLnJlcGxpZXNTaG93bnx8dC5wdXNoKCJjb250ZW50cyIpLHkoZSx0aGlzLnNpdGVTZXR0aW5ncykmJnQucHVzaCgiYXZvaWQtdGFiIiksdH0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT0oaT1bbmV3IHIuZGVmYXVsdChlLG5ldyBhLmRlZmF1bHQodGhpcyksdGhpcy5jdXJyZW50VXNlcildKS5jb25jYXQoKDAsbC5hcHBseURlY29yYXRvcnMpKHRoaXMsImFmdGVyLWNvb2tlZCIsZSx0KSk7ZS5jb29rZWRfaGlkZGVuJiZpLnB1c2godGhpcy5hdHRhY2goImV4cGFuZC1oaWRkZW4iLGUpKSwhdC5leHBhbmRlZEZpcnN0UG9zdCYmZS5leHBhbmRhYmxlUG9zdCYmaS5wdXNoKHRoaXMuYXR0YWNoKCJleHBhbmQtcG9zdC1idXR0b24iLGUpKTt2YXIgcz17c3RhdGU6e3JlcGxpZXNTaG93bjohIXQucmVwbGllc0JlbG93Lmxlbmd0aH19O2kucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1tZW51IixlLHMpKTt2YXIgbz10LnJlcGxpZXNCZWxvdztyZXR1cm4gby5sZW5ndGgmJmkucHVzaCgoMCxjLmgpKCJzZWN0aW9uLmVtYmVkZGVkLXBvc3RzLmJvdHRvbSIsW28ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuLmF0dGFjaCgiZW1iZWRkZWQtcG9zdCIsZSx7bW9kZWw6bi5zdG9yZS5jcmVhdGVSZWNvcmQoInBvc3QiLGUpfSl9KSx0aGlzLmF0dGFjaCgiYnV0dG9uIix7dGl0bGU6InBvc3QuY29sbGFwc2UiLGljb246ImNoZXZyb24tdXAiLGFjdGlvbjoidG9nZ2xlUmVwbGllc0JlbG93IixhY3Rpb25QYXJhbToidHJ1ZSIsY2xhc3NOYW1lOiJidG4gY29sbGFwc2UtdXAifSldKSksaX0sX2RhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWtpJiZlLmxhc3RXaWtpRWRpdCYmbmV3IERhdGUoZS5sYXN0V2lraUVkaXQpLG49bmV3IERhdGUoZS5jcmVhdGVkX2F0KTtyZXR1cm4gdHx8bn0sdG9nZ2xlUmVwbGllc0JlbG93OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiZmFsc2UiO2lmKHRoaXMuc3RhdGUucmVwbGllc0JlbG93Lmxlbmd0aClyZXR1cm4gdGhpcy5zdGF0ZS5yZXBsaWVzQmVsb3c9W10sdm9pZCgidHJ1ZSI9PT1uJiZkLmRlZmF1bHQucm91dGVUbyh0aGlzLmF0dHJzLnRvcGljVXJsKyIvIit0aGlzLmF0dHJzLnBvc3RfbnVtYmVyKSk7dmFyIGk9dGhpcy5maW5kQW5jZXN0b3JNb2RlbCgpLHM9aT9pLmdldCgidG9waWMudXJsIik6bnVsbDtyZXR1cm4gdGhpcy5zdG9yZS5maW5kKCJwb3N0LXJlcGx5Iix7cG9zdElkOnRoaXMuYXR0cnMuaWR9KS50aGVuKGZ1bmN0aW9uKGUpe3Quc3RhdGUucmVwbGllc0JlbG93PWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNoYXJlVXJsPXMrIi8iK2UucG9zdF9udW1iZXIsZyhlKX0pfSl9LGV4cGFuZEZpcnN0UG9zdDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZmluZEFuY2VzdG9yTW9kZWwoKS5leHBhbmQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGUuZXhwYW5kZWRGaXJzdFBvc3Q9ITB9KX19KSwoMCxsLmNyZWF0ZVdpZGdldCkoInBvc3Qtbm90aWNlIix7dGFnTmFtZToiZGl2LnBvc3Qtbm90aWNlIixidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9W2Uubm90aWNlVHlwZS5yZXBsYWNlKC9fL2csIi0iKV07cmV0dXJuIG5ldyBEYXRlLW5ldyBEYXRlKGUuY3JlYXRlZF9hdCk+ODY0ZTUqdGhpcy5zaXRlU2V0dGluZ3Mub2xkX3Bvc3Rfbm90aWNlX2RheXMmJnQucHVzaCgib2xkIiksdH0saHRtbDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMuc2l0ZVNldHRpbmdzLmRpc3BsYXlfbmFtZV9vbl9wb3N0cyYmKDAsaC5wcmlvcml0aXplTmFtZUluVXgpKGUubmFtZSk/ZS5uYW1lOmUudXNlcm5hbWUsaT12b2lkIDAscz12b2lkIDA7cmV0dXJuImN1c3RvbSI9PT1lLm5vdGljZVR5cGU/KHM9InVzZXItc2hpZWxkIixpPW5ldyBvLmRlZmF1bHQoe2h0bWw6IjxkaXY+IitlLm5vdGljZU1lc3NhZ2UrIjwvZGl2PiJ9KSk6Im5ld191c2VyIj09PWUubm90aWNlVHlwZT8ocz0iaGFuZHMtaGVscGluZyIsaT0oMCxjLmgpKCJwIixJMThuLnQoInBvc3Qubm90aWNlLm5ld191c2VyIix7dXNlcjpufSkpKToicmV0dXJuaW5nX3VzZXIiPT09ZS5ub3RpY2VUeXBlJiYocz0iZmFyLXNtaWxlIix0PShuZXcgRGF0ZS1uZXcgRGF0ZShlLm5vdGljZVRpbWUpKS8xZTMsaT0oMCxjLmgpKCJwIixJMThuLnQoInBvc3Qubm90aWNlLnJldHVybmluZ191c2VyIix7dXNlcjpuLHRpbWU6KDAsZi5yZWxhdGl2ZUFnZU1lZGl1bVNwYW4pKHQsITApfSkpKSxbKDAsdS5pY29uTm9kZSkocyksaV19fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWJvZHkiLHt0YWdOYW1lOiJkaXYudG9waWMtYm9keS5jbGVhcmZpeCIsaHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuYXR0YWNoKCJwb3N0LWNvbnRlbnRzIixlKSxpPVt0aGlzLmF0dGFjaCgicG9zdC1tZXRhLWRhdGEiLGUpXTtyZXR1cm4oaT1pLmNvbmNhdCgoMCxsLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItbWV0YS1kYXRhIixlLHQpKSkucHVzaChuKSxpLnB1c2godGhpcy5hdHRhY2goImFjdGlvbnMtc3VtbWFyeSIsZSkpLGkucHVzaCh0aGlzLmF0dGFjaCgicG9zdC1saW5rcyIsZSkpLGUuc2hvd1RvcGljTWFwJiZpLnB1c2godGhpcy5hdHRhY2goInRvcGljLW1hcCIsZSkpLGl9fSksKDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0LWFydGljbGUiLHt0YWdOYW1lOiJhcnRpY2xlLmJveGVkLm9uc2NyZWVuLXBvc3QiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJwb3N0LWFydGljbGUtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57cmVwbGllc0Fib3ZlOltdfX0sYnVpbGRJZDpmdW5jdGlvbihlKXtyZXR1cm4icG9zdF8iK2UucG9zdF9udW1iZXJ9LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gZS52aWFfZW1haWwmJnQucHVzaCgidmlhLWVtYWlsIiksZS5pc0F1dG9HZW5lcmF0ZWQmJnQucHVzaCgiaXMtYXV0by1nZW5lcmF0ZWQiKSx0fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJueyJkYXRhLXBvc3QtaWQiOmUuaWQsImRhdGEtdG9waWMtaWQiOmUudG9waWNJZCwiZGF0YS11c2VyLWlkIjplLnVzZXJfaWR9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG4saT10aGlzLHM9WygwLGMuaCkoImEudGFiTG9jIix7YXR0cmlidXRlczp7aHJlZjoiIiwiYXJpYS1oaWRkZW4iOiEwfX0pXTtyZXR1cm4gdC5yZXBsaWVzQWJvdmUubGVuZ3RoJiYobj10LnJlcGxpZXNBYm92ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkuYXR0YWNoKCJlbWJlZGRlZC1wb3N0IixlLHttb2RlbDppLnN0b3JlLmNyZWF0ZVJlY29yZCgicG9zdCIsZSksc3RhdGU6e2Fib3ZlOiEwfX0pfSkscy5wdXNoKCgwLGMuaCkoImRpdi5yb3ciLCgwLGMuaCkoInNlY3Rpb24uZW1iZWRkZWQtcG9zdHMudG9wLnRvcGljLWJvZHkub2Zmc2V0MiIsW3RoaXMuYXR0YWNoKCJidXR0b24iLHt0aXRsZToicG9zdC5jb2xsYXBzZSIsaWNvbjoiY2hldnJvbi1kb3duIixhY3Rpb246InRvZ2dsZVJlcGx5QWJvdmUiLGFjdGlvblBhcmFtOiJ0cnVlIixjbGFzc05hbWU6ImJ0biBjb2xsYXBzZS1kb3duIn0pLG5dKSkpKSxlLm5vdGljZVR5cGUmJnMucHVzaCgoMCxjLmgpKCJkaXYucm93IixbdGhpcy5hdHRhY2goInBvc3Qtbm90aWNlIixlKV0pKSxzLnB1c2goKDAsYy5oKSgiZGl2LnJvdyIsW3RoaXMuYXR0YWNoKCJwb3N0LWF2YXRhciIsZSksdGhpcy5hdHRhY2goInBvc3QtYm9keSIsZSldKSksc30sX2dldFRvcGljVXJsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maW5kQW5jZXN0b3JNb2RlbCgpO3JldHVybiBlP2UuZ2V0KCJ0b3BpYy51cmwiKTpudWxsfSx0b2dnbGVSZXBseUFib3ZlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWU/ZToiZmFsc2UiLGk9dGhpcy5hdHRycy5yZXBseV90b19wb3N0X251bWJlcjtpZih0aGlzLmF0dHJzLm1vYmlsZVZpZXcpe3ZhciBzPXRoaXMuX2dldFRvcGljVXJsKCk7cmV0dXJuIHMmJmQuZGVmYXVsdC5yb3V0ZVRvKHMrIi8iK2kpLGIuUHJvbWlzZS5yZXNvbHZlKCl9aWYodGhpcy5zdGF0ZS5yZXBsaWVzQWJvdmUubGVuZ3RoKXJldHVybiB0aGlzLnN0YXRlLnJlcGxpZXNBYm92ZT1bXSwidHJ1ZSI9PT1uJiZkLmRlZmF1bHQucm91dGVUbyh0aGlzLmF0dHJzLnRvcGljVXJsKyIvIit0aGlzLmF0dHJzLnBvc3RfbnVtYmVyKSxiLlByb21pc2UucmVzb2x2ZSgpO3ZhciBvPXRoaXMuX2dldFRvcGljVXJsKCk7cmV0dXJuIHRoaXMuc3RvcmUuZmluZCgicG9zdC1yZXBseS1oaXN0b3J5Iix7cG9zdElkOnRoaXMuYXR0cnMuaWR9KS50aGVuKGZ1bmN0aW9uKGUpe3Quc3RhdGUucmVwbGllc0Fib3ZlPWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNoYXJlVXJsPW8rIi8iK2UucG9zdF9udW1iZXIsZyhlKX0pfSl9fSk7dmFyIF89bnVsbDtlLmRlZmF1bHQ9KDAsbC5jcmVhdGVXaWRnZXQpKCJwb3N0Iix7YnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInBvc3QtIitlLmlkfSxzaGFkb3dUcmVlOiEwLGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtyZXR1cm4gZS5oZWlnaHQ/e3N0eWxlOiJtaW4taGVpZ2h0OiAiK2UuaGVpZ2h0KyJweCJ9OnZvaWQgMH0sYnVpbGRJZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5jbG9ha2VkPyJwb3N0XyIrZS5wb3N0X251bWJlcjp2b2lkIDB9LGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlKXtpZihlLmNsb2FrZWQpcmV0dXJuImNsb2FrZWQtcG9zdCI7dmFyIHQ9WyJ0b3BpYy1wb3N0IiwiY2xlYXJmaXgiXTtpZigtMSE9PWUuaWQmJiFlLmlzU2F2aW5nfHx0LnB1c2goInN0YWdlZCIpLGUuc2VsZWN0ZWQmJnQucHVzaCgic2VsZWN0ZWQiKSxlLnRvcGljT3duZXImJnQucHVzaCgidG9waWMtb3duZXIiKSxlLmhpZGRlbiYmdC5wdXNoKCJwb3N0LWhpZGRlbiIpLGUuZGVsZXRlZCYmdC5wdXNoKCJkZWxldGVkIiksZS5wcmltYXJ5X2dyb3VwX25hbWUmJnQucHVzaCgiZ3JvdXAtIitlLnByaW1hcnlfZ3JvdXBfbmFtZSksZS53aWtpJiZ0LnB1c2goIndpa2kiKSxlLmlzV2hpc3BlciYmdC5wdXNoKCJ3aGlzcGVyIiksZS5pc01vZGVyYXRvckFjdGlvbnx8ZS5pc1dhcm5pbmcmJmUuZmlyc3RQb3N0P3QucHVzaCgibW9kZXJhdG9yIik6dC5wdXNoKCJyZWd1bGFyIiksXylmb3IodmFyIG49MDtuPF8ubGVuZ3RoO24rKyl7dmFyIGk9X1tuXS5jYWxsKHRoaXMsZSk7aSYmdC5wdXNoLmFwcGx5KHQsaSl9cmV0dXJuIHR9LGh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xvYWtlZD8iIjp0aGlzLmF0dGFjaCgicG9zdC1hcnRpY2xlIixlKX0sdG9nZ2xlTGlrZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLm1vZGVsLGk9bi5nZXQoImxpa2VBY3Rpb24iKTtpZihpJiZpLmdldCgiY2FuVG9nZ2xlIikpcmV0dXJuIGkudG9nZ2xlUHJvbWlzZShuKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcEV2ZW50cy50cmlnZ2VyKCJwYWdlOmxpa2UtdG9nZ2xlZCIsbixpKSx0Ll93YXJuSWZDbG9zZShlKX0pfSxfd2FybklmQ2xvc2U6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHMsbztlJiZlLmFjdGVkJiYobj0odD10aGlzLmtleVZhbHVlU3RvcmUpLmdldCgibGFzdFdhcm5lZExpa2VzIiksaT0obmV3IERhdGUpLmdldFRpbWUoKS04NjRlNSxuJiZwYXJzZUludChuLDEwKT5pfHwocz1lLnJlbWFpbmluZyxvPWUubWF4LHM9PT1NYXRoLmNlaWwoLjEqbykmJihib290Ym94LmFsZXJ0KEkxOG4udCgicG9zdC5mZXdfbGlrZXNfbGVmdCIpKSx0LnNldCh7a2V5OiJsYXN0V2FybmVkTGlrZXMiLHZhbHVlOihuZXcgRGF0ZSkuZ2V0VGltZSgpfSkpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3Bvc3Rlci1uYW1lIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIiwiZGlzY291cnNlL2xpYi9zZXR0aW5ncyJdLGZ1bmN0aW9uKGUsdCxkLHAsbixtKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGlzYWJsZU5hbWVTdXBwcmVzc2lvbj1mdW5jdGlvbigpe2Y9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fTt2YXIgZj1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcc1wuXy1dL2csIiIpfTsoMCxkLmNyZWF0ZVdpZGdldCkoInBvc3Rlci1uYW1lLXRpdGxlIix7dGFnTmFtZToic3Bhbi51c2VyLXRpdGxlIixodG1sOmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS50aXRsZTtyZXR1cm4gZS5wcmltYXJ5R3JvdXBOYW1lJiYodD1EaXNjb3Vyc2UuZ2V0VVJMKCIvZy8iK2UucHJpbWFyeUdyb3VwTmFtZSksbj0oMCxwLmgpKCJhLnVzZXItZ3JvdXAiLHtjbGFzc05hbWU6ZS5leHRyYUNsYXNzZXMsYXR0cmlidXRlczp7aHJlZjp0LCJkYXRhLWdyb3VwLWNhcmQiOmUucHJpbWFyeUdyb3VwTmFtZX19LGUudGl0bGUpKSxufX0pLGUuZGVmYXVsdD0oMCxkLmNyZWF0ZVdpZGdldCkoInBvc3Rlci1uYW1lIix7dGFnTmFtZToiZGl2Lm5hbWVzLnRyaWdnZXItdXNlci1jYXJkIixzZXR0aW5nczp7c2hvd05hbWVBbmRHcm91cDohMCxzaG93R2x5cGg6ITB9LHBvc3RlckdseXBoOmZ1bmN0aW9uKGUpe2lmKGUubW9kZXJhdG9yKXJldHVybigwLHQuaWNvbk5vZGUpKCJzaGllbGQtYWx0Iix7dGl0bGU6STE4bi50KCJ1c2VyLm1vZGVyYXRvcl90b29sdGlwIil9KX0sdXNlckxpbms6ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxwLmgpKCJhIix7YXR0cmlidXRlczp7aHJlZjplLnVzZXJuYW1lVXJsLCJkYXRhLXVzZXItY2FyZCI6ZS51c2VybmFtZX19LCgwLG4uZm9ybWF0VXNlcm5hbWUpKHQpKX0saHRtbDpmdW5jdGlvbihlKXt2YXIgdD1lLnVzZXJuYW1lLG49ZS5uYW1lLGk9dGhpcy5zaXRlU2V0dGluZ3MuZGlzcGxheV9uYW1lX29uX3Bvc3RzJiYoMCxtLnByaW9yaXRpemVOYW1lSW5VeCkobix0aGlzLnNpdGVTZXR0aW5ncykscz1pP1siZmlyc3QiLCJmdWxsLW5hbWUiXTpbImZpcnN0IiwidXNlcm5hbWUiXTtlLnN0YWZmJiZzLnB1c2goInN0YWZmIiksZS5hZG1pbiYmcy5wdXNoKCJhZG1pbiIpLGUubW9kZXJhdG9yJiZzLnB1c2goIm1vZGVyYXRvciIpLGUubmV3X3VzZXImJnMucHVzaCgibmV3LXVzZXIiKTt2YXIgbz0oMCxkLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWZ0ZXItbmFtZSIsZSx0aGlzLnN0YXRlKXx8W10scj1lLnByaW1hcnlfZ3JvdXBfbmFtZTtyJiZyLmxlbmd0aCYmcy5wdXNoKHIpO3ZhciBhLGw9W3RoaXMudXNlckxpbmsoZSxpP246dCldOyF0aGlzLnNldHRpbmdzLnNob3dHbHlwaHx8KGE9dGhpcy5wb3N0ZXJHbHlwaChlKSkmJmwucHVzaChhKSxsPWwuY29uY2F0KG8pO3ZhciB1PVsoMCxwLmgpKCJzcGFuIix7Y2xhc3NOYW1lOnMuam9pbigiICIpfSxsKV07aWYoIXRoaXMuc2V0dGluZ3Muc2hvd05hbWVBbmRHcm91cClyZXR1cm4gdTtuJiZ0aGlzLnNpdGVTZXR0aW5ncy5kaXNwbGF5X25hbWVfb25fcG9zdHMmJmYobikhPT1mKHQpJiZ1LnB1c2goKDAscC5oKSgic3Bhbi5zZWNvbmQuIisoaT8idXNlcm5hbWUiOiJmdWxsLW5hbWUiKSxbdGhpcy51c2VyTGluayhlLGk/dDpuKV0uY29uY2F0KG8pKSk7dmFyIGM9ZS51c2VyX3RpdGxlO3JldHVybiBjJiZjLmxlbmd0aCYmdS5wdXNoKHRoaXMuYXR0YWNoKCJwb3N0ZXItbmFtZS10aXRsZSIse3RpdGxlOmMscHJpbWFyeUdyb3VwTmFtZTpyfSkpLHV9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3ByaXZhdGUtbWVzc2FnZS1tYXAiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS1jb21tb24vbGliL2hlbHBlcnMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Bvc3QiXSxmdW5jdGlvbihlLHIsdCxhLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1yZW1vdmUtZ3JvdXAtbGluayIse3RhZ05hbWU6ImEucmVtb3ZlLWludml0ZWQubm8tdGV4dC5idG4taWNvbi5idG4iLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGUsaT1bXTtyZXR1cm4gaS5wdXNoKG4oInRpbWVzIikpLGl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztib290Ym94LmNvbmZpcm0oSTE4bi50KCJwcml2YXRlX21lc3NhZ2VfaW5mby5yZW1vdmVfYWxsb3dlZF9ncm91cCIse25hbWU6dGhpcy5hdHRycy5uYW1lfSksZnVuY3Rpb24oZSl7ZSYmdC5zZW5kV2lkZ2V0QWN0aW9uKCJyZW1vdmVBbGxvd2VkR3JvdXAiLHQuYXR0cnMpfSl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1tYXAtdXNlci1ncm91cCIse3RhZ05hbWU6ImRpdi51c2VyLmdyb3VwIix0cmFuc2Zvcm06ZnVuY3Rpb24oZSl7cmV0dXJue2hyZWY6RGlzY291cnNlLmdldFVSTCgiL2cvIitlLmdyb3VwLm5hbWUpfX0sdGVtcGxhdGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1EaXNjb3Vyc2UuX193aWRnZXRfaGVscGVycy5pY29uTm9kZSxpPVtdO2kucHVzaCgiXG4gICAgIik7dmFyIHM9W107cy5wdXNoKCJcbiAgICAgICIpLHMucHVzaChuKCJ1c2VycyIpKSxzLnB1c2goIlxuICAgICAgIik7dmFyIG89W107cmV0dXJuIG8ucHVzaChlLmdyb3VwLm5hbWUpLHMucHVzaCh2aXJ0dWFsRG9tLmgoInNwYW4iLHtjbGFzc05hbWU6Imdyb3VwLW5hbWUifSxvKSkscy5wdXNoKCJcbiAgICAiKSxpLnB1c2godmlydHVhbERvbS5oKCJhIix7aHJlZjp0aGlzLnRyYW5zZm9ybWVkLmhyZWYsY2xhc3NOYW1lOiJncm91cC1saW5rIn0scykpLGkucHVzaCgiXG4iKSxlLmlzRWRpdGluZyYmZS5jYW5SZW1vdmVBbGxvd2VkVXNlcnMmJihpLnB1c2goIiAgICAgICAgIiksaS5wdXNoKHRoaXMuYXR0YWNoKCJwbS1yZW1vdmUtZ3JvdXAtbGluayIsZS5ncm91cCkpLGkucHVzaCgiXG4iKSksaS5wdXNoKCIgICIpLGl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1yZW1vdmUtbGluayIse3RhZ05hbWU6ImEucmVtb3ZlLWludml0ZWQubm8tdGV4dC5idG4taWNvbi5idG4iLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49RGlzY291cnNlLl9fd2lkZ2V0X2hlbHBlcnMuaWNvbk5vZGUsaT1bXTtyZXR1cm4gaS5wdXNoKG4oInRpbWVzIikpLGl9LGNsaWNrOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuYXR0cnMuaXNDdXJyZW50VXNlcj8ibGVhdmVfbWVzc2FnZSI6InJlbW92ZV9hbGxvd2VkX3VzZXIiO2Jvb3Rib3guY29uZmlybShJMThuLnQoInByaXZhdGVfbWVzc2FnZV9pbmZvLiIrZSx7bmFtZTp0aGlzLmF0dHJzLnVzZXIudXNlcm5hbWV9KSxmdW5jdGlvbihlKXtlJiZ0LnNlbmRXaWRnZXRBY3Rpb24oInJlbW92ZUFsbG93ZWRVc2VyIix0LmF0dHJzLnVzZXIpfSl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJwbS1tYXAtdXNlciIse3RhZ05hbWU6ImRpdi51c2VyIixodG1sOmZ1bmN0aW9uKGUpe3ZhciB0LG4saT1lLnVzZXIscz0oMCxhLmgpKCJzcGFuLnVzZXJuYW1lIixpLnVzZXJuYW1lKSxvPVt0aGlzLnNpdGUmJnRoaXMuc2l0ZS5tb2JpbGVWaWV3Pyh0PSgwLGwuYXZhdGFySW1nKSgidGlueSIse3RlbXBsYXRlOmkuYXZhdGFyX3RlbXBsYXRlLHVzZXJuYW1lOmkudXNlcm5hbWV9KSwoMCxhLmgpKCJhIix7YXR0cmlidXRlczp7aHJlZjppLmdldCgicGF0aCIpfX0sW3Qsc10pKToobj0oMCxsLmF2YXRhckZvcikoInRpbnkiLHt0ZW1wbGF0ZTppLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTppLnVzZXJuYW1lfSksKDAsYS5oKSgiYSIse2F0dHJpYnV0ZXM6e2NsYXNzOiJ1c2VyLWxpbmsiLGhyZWY6aS5nZXQoInBhdGgiKX19LFtuLHNdKSldLHI9ZS5jYW5SZW1vdmVTZWxmSWQ9PT1pLmdldCgiaWQiKTtyZXR1cm4gZS5pc0VkaXRpbmcmJihlLmNhblJlbW92ZUFsbG93ZWRVc2Vyc3x8cikmJm8ucHVzaCh0aGlzLmF0dGFjaCgicG0tcmVtb3ZlLWxpbmsiLHt1c2VyOmksaXNDdXJyZW50VXNlcjpyfSkpLG99fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgicHJpdmF0ZS1tZXNzYWdlLW1hcCIse3RhZ05hbWU6InNlY3Rpb24uaW5mb3JtYXRpb24ucHJpdmF0ZS1tZXNzYWdlLW1hcCIsYnVpbGRLZXk6ZnVuY3Rpb24oZSl7cmV0dXJuInByaXZhdGUtbWVzc2FnZS1tYXAtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57aXNFZGl0aW5nOiExfX0saHRtbDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLGU9W107dC5hbGxvd2VkR3JvdXBzLmxlbmd0aCYmZS5wdXNoKHQuYWxsb3dlZEdyb3Vwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uYXR0YWNoKCJwbS1tYXAtdXNlci1ncm91cCIse2dyb3VwOmUsY2FuUmVtb3ZlQWxsb3dlZFVzZXJzOnQuY2FuUmVtb3ZlQWxsb3dlZFVzZXJzLGlzRWRpdGluZzpuLnN0YXRlLmlzRWRpdGluZ30pfSkpLHQuYWxsb3dlZFVzZXJzLmxlbmd0aCYmZS5wdXNoKHQuYWxsb3dlZFVzZXJzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goInBtLW1hcC11c2VyIix7dXNlcjplLGNhblJlbW92ZUFsbG93ZWRVc2Vyczp0LmNhblJlbW92ZUFsbG93ZWRVc2VycyxjYW5SZW1vdmVTZWxmSWQ6dC5jYW5SZW1vdmVTZWxmSWQsaXNFZGl0aW5nOm4uc3RhdGUuaXNFZGl0aW5nfSl9KSk7dmFyIGk9IiI7IXRoaXMuc3RhdGUuaXNFZGl0aW5nJiZ0aGlzLnNpdGUubW9iaWxlVmlldyYmNDwoMCxyLm1ha2VBcnJheSkoZVswXSkubGVuZ3RoJiYoaT0iLmhpZGUtbmFtZXMiKTt2YXIgcz1bKDAsYS5oKSgiZGl2LnBhcnRpY2lwYW50cyIraSxlKV0sbz1bXTtyZXR1cm4odC5jYW5JbnZpdGV8fHQuY2FuUmVtb3ZlQWxsb3dlZFVzZXJzfHx0LmNhblJlbW92ZVNlbGZJZCkmJm8ucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7YWN0aW9uOiJ0b2dnbGVFZGl0aW5nIixsYWJlbDoicHJpdmF0ZV9tZXNzYWdlX2luZm8uZWRpdCIsY2xhc3NOYW1lOiJidG4gYnRuLWRlZmF1bHQgYWRkLXJlbW92ZS1wYXJ0aWNpcGFudC1idG4ifSkpLHQuY2FuSW52aXRlJiZ0aGlzLnN0YXRlLmlzRWRpdGluZyYmby5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHthY3Rpb246InNob3dJbnZpdGUiLGljb246InBsdXMiLGNsYXNzTmFtZToiYnRuLm5vLXRleHQuYnRuLWljb24ifSkpLG8ubGVuZ3RoJiZzLnB1c2goKDAsYS5oKSgiZGl2LmNvbnRyb2xzIixvKSksc30sdG9nZ2xlRWRpdGluZzpmdW5jdGlvbigpe3RoaXMuc3RhdGUuaXNFZGl0aW5nPSF0aGlzLnN0YXRlLmlzRWRpdGluZ319KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLWJvb2ttYXJrcyIsWyJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCIsImRpc2NvdXJzZS9tb2RlbHMvdXNlci1hY3Rpb24iLCJkaXNjb3Vyc2UvbGliL2FqYXgiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJkaXNjb3Vyc2UvbGliL3V0aWxpdGllcyJdLGZ1bmN0aW9uKGUsdCxuLHMsaSxvKXsidXNlIHN0cmljdCI7KDAsaS5jcmVhdGVXaWRnZXRGcm9tKSh0LmRlZmF1bHQsInF1aWNrLWFjY2Vzcy1ib29rbWFya3MiLHtidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJxdWljay1hY2Nlc3MtYm9va21hcmtzIn0saGFzTW9yZTpmdW5jdGlvbigpe3JldHVybiEwfSxzaG93QWxsSHJlZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJzLnBhdGgrIi9hY3Rpdml0eS9ib29rbWFya3MifSxlbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuKDAsZS5oKSgibGkucmVhZCIsdGhpcy5zdGF0ZS5lbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtVGV4dCl9LGZpbmROZXdJdGVtczpmdW5jdGlvbigpe3ZhciBpPXRoaXM7cmV0dXJuKDAscy5hamF4KSgiL3VzZXJfYWN0aW9ucy5qc29uIix7Y2FjaGU6ImZhbHNlIixkYXRhOnt1c2VybmFtZTp0aGlzLmN1cnJlbnRVc2VyLnVzZXJuYW1lLGZpbHRlcjpuLmRlZmF1bHQuVFlQRVMuYm9va21hcmtzLGxpbWl0OnRoaXMuZXN0aW1hdGVJdGVtTGltaXQoKSxub19yZXN1bHRzX2hlbHBfa2V5OiJ1c2VyX2FjdGl2aXR5Lm5vX2Jvb2ttYXJrcyJ9fSkudGhlbihmdW5jdGlvbihlKXt2YXIgdD1lLnVzZXJfYWN0aW9ucyxuPWUubm9fcmVzdWx0c19oZWxwO3JldHVybiBpLnN0YXRlLmVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1UZXh0PW4sdH0pfSxpdGVtSHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy1pdGVtIix7aWNvbjoiYm9va21hcmsiLGhyZWY6KDAsby5wb3N0VXJsKShlLnNsdWcsZS50b3BpY19pZCxlLnBvc3RfbnVtYmVyKSxjb250ZW50OmUudGl0bGUsdXNlcm5hbWU6ZS51c2VybmFtZX0pfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtaXRlbSIsWyJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL2xpYi90ZXh0IiwiZGlzY291cnNlLWNvbW1vbi9saWIvaWNvbi1saWJyYXJ5IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiXSxmdW5jdGlvbihvLHIsZSx0LGEsbCl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgicXVpY2stYWNjZXNzLWl0ZW0iLHt0YWdOYW1lOiJsaSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiBlLmNsYXNzTmFtZSYmdC5wdXNoKGUuY2xhc3NOYW1lKSx2b2lkIDAhPT1lLnJlYWQmJiFlLnJlYWR8fHQucHVzaCgicmVhZCIpLHR9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmhyZWYsaT1lLmljb24scz10aGlzLl9jb250ZW50SHRtbCgpO3JldHVybiFufHwodD1uLm1hdGNoKC9cL3RcLy4qP1wvKFxkKykvKSkmJnRbMV0mJihzPSc8c3BhbiBkYXRhLXRvcGljLWlkPSInKyh0PSgwLGwuZXNjYXBlRXhwcmVzc2lvbikodFsxXSkpKyciPicrcysiPC9zcGFuPiIpLCgwLG8uaCkoImEiLHthdHRyaWJ1dGVzOntocmVmOm59fSxbKDAsYS5pY29uTm9kZSkoaSksbmV3IHIuZGVmYXVsdCh7aHRtbDoiPGRpdj4iK3RoaXMuX3VzZXJuYW1lSHRtbCgpK3MrIjwvZGl2PiJ9KV0pfSxjbGljazpmdW5jdGlvbihlKXtpZih0aGlzLmF0dHJzLnJlYWQ9ITAsdGhpcy5hdHRycy5hY3Rpb24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbmRXaWRnZXRBY3Rpb24odGhpcy5hdHRycy5hY3Rpb24sdGhpcy5hdHRycy5hY3Rpb25QYXJhbSl9LF9jb250ZW50SHRtbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYXR0cnMuZXNjYXBlZENvbnRlbnR8fCgwLGwuZXNjYXBlRXhwcmVzc2lvbikodGhpcy5hdHRycy5jb250ZW50KTtyZXR1cm4oMCx0LmVtb2ppVW5lc2NhcGUpKGUpfSxfdXNlcm5hbWVIdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cnMudXNlcm5hbWU/IjxzcGFuPiIrdGhpcy5hdHRycy51c2VybmFtZSsiPC9zcGFuPiAiOiI8c3Bhbj48L3NwYW4+In19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLW1lc3NhZ2VzIixbImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSx0LGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3ZhciB0PWUubGFzdF9yZWFkX3Bvc3RfbnVtYmVyfHwwLG49TWF0aC5taW4odCsxLGUuaGlnaGVzdF9wb3N0X251bWJlcik7cmV0dXJue2VzY2FwZWRDb250ZW50OmUuZmFuY3lfdGl0bGUsaHJlZjooMCxpLnBvc3RVcmwpKGUuc2x1ZyxlLmlkLG4pLGljb246Im5vdGlmaWNhdGlvbi5wcml2YXRlX21lc3NhZ2UiLHJlYWQ6ZS5sYXN0X3JlYWRfcG9zdF9udW1iZXI+PWUuaGlnaGVzdF9wb3N0X251bWJlcix1c2VybmFtZTplLmxhc3RfcG9zdGVyX3VzZXJuYW1lfX0oMCx0LmNyZWF0ZVdpZGdldEZyb20pKGUuZGVmYXVsdCwicXVpY2stYWNjZXNzLW1lc3NhZ2VzIix7YnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4icXVpY2stYWNjZXNzLW1lc3NhZ2VzIn0sZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbUtleToiY2hvb3NlX3RvcGljLm5vbmVfZm91bmQiLGhhc01vcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRycy5wYXRoKyIvbWVzc2FnZXMifSxmaW5kTmV3SXRlbXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnN0b3JlLmZpbmRGaWx0ZXJlZCgidG9waWNMaXN0Iix7ZmlsdGVyOiJ0b3BpY3MvcHJpdmF0ZS1tZXNzYWdlcy8iK3RoaXMuY3VycmVudFVzZXIudXNlcm5hbWVfbG93ZXJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRvcGljX2xpc3QudG9waWNzLm1hcChuKS5zbGljZSgwLHQuZXN0aW1hdGVJdGVtTGltaXQoKSl9KX0saXRlbUh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYXR0YWNoKCJxdWljay1hY2Nlc3MtaXRlbSIsZSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1ub3RpZmljYXRpb25zIixbImRpc2NvdXJzZS9saWIvYWpheCIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS93aWRnZXRzL3F1aWNrLWFjY2Vzcy1wYW5lbCJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KDAsdC5jcmVhdGVXaWRnZXRGcm9tKShuLmRlZmF1bHQsInF1aWNrLWFjY2Vzcy1ub3RpZmljYXRpb25zIix7YnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4icXVpY2stYWNjZXNzLW5vdGlmaWNhdGlvbnMifSxlbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtS2V5OiJub3RpZmljYXRpb25zLmVtcHR5IixtYXJrUmVhZFJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4oMCxlLmFqYXgpKCIvbm90aWZpY2F0aW9ucy9tYXJrLXJlYWQiLHttZXRob2Q6IlBVVCJ9KX0sbmV3SXRlbXNMb2FkZWQ6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRVc2VyLmVuZm9yY2VkU2Vjb25kRmFjdG9yfHx0aGlzLmN1cnJlbnRVc2VyLnNldCgidW5yZWFkX25vdGlmaWNhdGlvbnMiLDApfSxpdGVtSHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnNpdGUubm90aWZpY2F0aW9uTG9va3VwW2Uubm90aWZpY2F0aW9uX3R5cGVdO3JldHVybiB0aGlzLmF0dGFjaCh0LmRhc2hlcml6ZSgpKyItbm90aWZpY2F0aW9uLWl0ZW0iLGUse30se2ZhbGxiYWNrV2lkZ2V0TmFtZToiZGVmYXVsdC1ub3RpZmljYXRpb24taXRlbSJ9KX0sZmluZE5ld0l0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbmRTdGFsZUl0ZW1zSW5TdG9yZSgpLnJlZnJlc2goKX0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRycy5wYXRoKyIvbm90aWZpY2F0aW9ucyJ9LGhhc1VucmVhZDpmdW5jdGlvbigpe3JldHVybiAwPHRoaXMuZ2V0SXRlbXMoKS5maWx0ZXJCeSgicmVhZCIsITEpLmxlbmd0aH0sX2ZpbmRTdGFsZUl0ZW1zSW5TdG9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0b3JlLmZpbmRTdGFsZSgibm90aWZpY2F0aW9uIix7cmVjZW50OiEwLHNpbGVudDp0aGlzLmN1cnJlbnRVc2VyLmVuZm9yY2VkU2Vjb25kRmFjdG9yLGxpbWl0OnRoaXMuZXN0aW1hdGVJdGVtTGltaXQoKX0se2NhY2hlS2V5OiJyZWNlbnQtbm90aWZpY2F0aW9ucyJ9KX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvcXVpY2stYWNjZXNzLXBhbmVsIixbImV4cG9ydHMiLCJkaXNjb3Vyc2UvbW9kZWxzL3Nlc3Npb24iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9jb21wb25lbnRzL3NpdGUtaGVhZGVyIiwicnN2cCJdLGZ1bmN0aW9uKGUsdCxuLHMsaSxvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2UuZGVmYXVsdD0oMCxuLmNyZWF0ZVdpZGdldCkoInF1aWNrLWFjY2Vzcy1wYW5lbCIse3RhZ05hbWU6ImRpdi5xdWljay1hY2Nlc3MtcGFuZWwiLGVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1LZXk6IiIsYnVpbGRLZXk6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcignQ2Fubm90IGF0dGFjaCBhYnN0cmFjdCB3aWRnZXQgInF1aWNrLWFjY2Vzcy1wYW5lbCIuJyl9LG1hcmtSZWFkUmVxdWVzdDpmdW5jdGlvbigpe3JldHVybiBvLlByb21pc2UucmVzb2x2ZSgpfSxoYXNVbnJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sc2hvd0FsbEhyZWY6ZnVuY3Rpb24oKXtyZXR1cm4iIn0saGFzTW9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEl0ZW1zKCkubGVuZ3RoPj10aGlzLmVzdGltYXRlSXRlbUxpbWl0KCl9LGZpbmROZXdJdGVtczpmdW5jdGlvbigpe3JldHVybiBvLlByb21pc2UucmVzb2x2ZShbXSl9LG5ld0l0ZW1zTG9hZGVkOmZ1bmN0aW9uKCl7fSxpdGVtSHRtbDpmdW5jdGlvbigpe30sZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtcHR5U3RhdGVQbGFjZWhvbGRlckl0ZW1LZXk/KDAscy5oKSgibGkucmVhZCIsSTE4bi50KHRoaXMuZW1wdHlTdGF0ZVBsYWNlaG9sZGVySXRlbUtleSkpOiIifSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57aXRlbXM6W10sbG9hZGluZzohMSxsb2FkZWQ6ITF9fSxtYXJrUmVhZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMubWFya1JlYWRSZXF1ZXN0KCkudGhlbihmdW5jdGlvbigpe2UucmVmcmVzaE5vdGlmaWNhdGlvbnMoZS5zdGF0ZSl9KX0sZXN0aW1hdGVJdGVtTGltaXQ6ZnVuY3Rpb24oKXt2YXIgZT1NYXRoLnJvdW5kKCgkKHdpbmRvdykuaGVpZ2h0KCktKDAsaS5oZWFkZXJIZWlnaHQpKCktMTAwKS81MCk7cmV0dXJuIGU8NT9lPTU6NDA8ZSYmKGU9NDApLGV9LHJlZnJlc2hOb3RpZmljYXRpb25zOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5sb2FkaW5nfHwoMD09PXRoaXMuZ2V0SXRlbXMoKS5sZW5ndGgmJihlLmxvYWRpbmc9ITApLHRoaXMuZmluZE5ld0l0ZW1zKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdC5zZXRJdGVtcyhlKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0SXRlbXMoW10pfSkuZmluYWxseShmdW5jdGlvbigpe2UubG9hZGluZz0hMSxlLmxvYWRlZD0hMCx0Lm5ld0l0ZW1zTG9hZGVkKCksdC5zZW5kV2lkZ2V0QWN0aW9uKCJpdGVtc0xvYWRlZCIse2hhc1VucmVhZDp0Lmhhc1VucmVhZCgpLG1hcmtSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIHQubWFya1JlYWQoKX19KSx0LnNjaGVkdWxlUmVyZW5kZXIoKX0pKX0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYodC5sb2FkZWR8fHRoaXMucmVmcmVzaE5vdGlmaWNhdGlvbnModCksdC5sb2FkaW5nKXJldHVyblsoMCxzLmgpKCJkaXYuc3Bpbm5lci1jb250YWluZXIiLCgwLHMuaCkoImRpdi5zcGlubmVyIikpXTt2YXIgaT10aGlzLmdldEl0ZW1zKCkubGVuZ3RoP3RoaXMuZ2V0SXRlbXMoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4uaXRlbUh0bWwoZSl9KTpbdGhpcy5lbXB0eVN0YXRlUGxhY2Vob2xkZXJJdGVtKCldO3JldHVybiB0aGlzLmhhc01vcmUoKSYmaS5wdXNoKCgwLHMuaCkoImxpLnJlYWQubGFzdC5zaG93LWFsbCIsdGhpcy5hdHRhY2goImxpbmsiLHt0aXRsZToidmlld19hbGwiLGljb246ImNoZXZyb24tZG93biIsaHJlZjp0aGlzLnNob3dBbGxIcmVmKCl9KSkpLFsoMCxzLmgpKCJ1bCIsaSldfSxnZXRJdGVtczpmdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHQuY3VycmVudFByb3AodGhpcy5rZXkrIi1pdGVtcyIpfHxbXX0sc2V0SXRlbXM6ZnVuY3Rpb24oZSl7dC5kZWZhdWx0LmN1cnJlbnRQcm9wKHRoaXMua2V5KyItaXRlbXMiLGUpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtcHJvZmlsZSIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy9xdWljay1hY2Nlc3MtcGFuZWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJyc3ZwIl0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoMCx0LmNyZWF0ZVdpZGdldEZyb20pKGUuZGVmYXVsdCwicXVpY2stYWNjZXNzLXByb2ZpbGUiLHtidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJxdWljay1hY2Nlc3MtcHJvZmlsZSJ9LGhhc01vcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZmluZE5ld0l0ZW1zOmZ1bmN0aW9uKCl7cmV0dXJuIG4uUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2dldEl0ZW1zKCkpfSxpdGVtSHRtbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy1pdGVtIixlKX0sX2dldEl0ZW1zOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZ2V0RGVmYXVsdEl0ZW1zKCk7cmV0dXJuIHRoaXMuX3Nob3dUb2dnbGVBbm9ueW1vdXNCdXR0b24oKSYmZS5wdXNoKHRoaXMuX3RvZ2dsZUFub255bW91c0J1dHRvbigpKSx0aGlzLmF0dHJzLnNob3dMb2dvdXRCdXR0b24mJmUucHVzaCh0aGlzLl9sb2dPdXRCdXR0b24oKSksZX0sX2dldERlZmF1bHRJdGVtczpmdW5jdGlvbigpe3ZhciBlPVt7aWNvbjoidXNlciIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9zdW1tYXJ5Iixjb250ZW50OkkxOG4udCgidXNlci5zdW1tYXJ5LnRpdGxlIil9LHtpY29uOiJzdHJlYW0iLGhyZWY6dGhpcy5hdHRycy5wYXRoKyIvYWN0aXZpdHkiLGNvbnRlbnQ6STE4bi50KCJ1c2VyLmFjdGl2aXR5X3N0cmVhbSIpfV07cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmVuYWJsZV9wZXJzb25hbF9tZXNzYWdlcyYmZS5wdXNoKHtpY29uOiJlbnZlbG9wZSIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9tZXNzYWdlcyIsY29udGVudDpJMThuLnQoInVzZXIucHJpdmF0ZV9tZXNzYWdlcyIpfSksZS5wdXNoKHtpY29uOiJwZW5jaWwtYWx0IixocmVmOnRoaXMuYXR0cnMucGF0aCsiL2FjdGl2aXR5L2RyYWZ0cyIsY29udGVudDpJMThuLnQoInVzZXJfYWN0aW9uX2dyb3Vwcy4xNSIpfSx7aWNvbjoiY29nIixocmVmOnRoaXMuYXR0cnMucGF0aCsiL3ByZWZlcmVuY2VzIixjb250ZW50OkkxOG4udCgidXNlci5wcmVmZXJlbmNlcyIpfSksZX0sX3RvZ2dsZUFub255bW91c0J1dHRvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmlzX2Fub255bW91cz97YWN0aW9uOiJ0b2dnbGVBbm9ueW1vdXMiLGNsYXNzTmFtZToiZGlzYWJsZS1hbm9ueW1vdXMiLGNvbnRlbnQ6STE4bi50KCJzd2l0Y2hfZnJvbV9hbm9uIiksaWNvbjoiYmFuIn06e2FjdGlvbjoidG9nZ2xlQW5vbnltb3VzIixjbGFzc05hbWU6ImVuYWJsZS1hbm9ueW1vdXMiLGNvbnRlbnQ6STE4bi50KCJzd2l0Y2hfdG9fYW5vbiIpLGljb246InVzZXItc2VjcmV0In19LF9sb2dPdXRCdXR0b246ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOiJsb2dvdXQiLGNsYXNzTmFtZToibG9nb3V0Iixjb250ZW50OkkxOG4udCgidXNlci5sb2dfb3V0IiksaWNvbjoic2lnbi1vdXQtYWx0In19LF9zaG93VG9nZ2xlQW5vbnltb3VzQnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l0ZVNldHRpbmdzLmFsbG93X2Fub255bW91c19wb3N0aW5nJiZ0aGlzLmN1cnJlbnRVc2VyLnRydXN0X2xldmVsPj10aGlzLnNpdGVTZXR0aW5ncy5hbm9ueW1vdXNfcG9zdGluZ19taW5fdHJ1c3RfbGV2ZWx8fHRoaXMuY3VycmVudFVzZXIuaXNfYW5vbnltb3VzfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsWyJleHBvcnRzIl0sZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGkua2V5LGkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHQ9KGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmaShlLnByb3RvdHlwZSx0KSxuJiZpKGUsbiksZX0obixbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0kKHRoaXMuaHRtbCk7cmV0dXJuIHRoaXMuZGVjb3JhdGUoZSksZVswXX19LHtrZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoZS5odG1sIT09dGhpcy5odG1sKXJldHVybiB0aGlzLmluaXQoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxuKTtmdW5jdGlvbiBuKGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLHRoaXMuaHRtbD1lLmh0bWx9KGUuZGVmYXVsdD10KS5wcm90b3R5cGUudHlwZT0iV2lkZ2V0IiwidW5kZWZpbmVkIiE9dHlwZW9mIERpc2NvdXJzZSYmKERpc2NvdXJzZS5fX3dpZGdldF9oZWxwZXJzLnJhd0h0bWw9dCl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3NlYXJjaC1tZW51LWNvbnRyb2xzIixbIkBlbWJlci9vYmplY3QiLCJkaXNjb3Vyc2UvbGliL3NlYXJjaCIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0Il0sZnVuY3Rpb24ocyxvLHIsZSl7InVzZSBzdHJpY3QiOygwLGUuY3JlYXRlV2lkZ2V0KSgic2VhcmNoLXRlcm0iLHt0YWdOYW1lOiJpbnB1dCIsYnVpbGRJZDpmdW5jdGlvbigpe3JldHVybiJzZWFyY2gtdGVybSJ9LGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuInNlYXJjaC10ZXJtIn0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2FmdGVyQXV0b2NvbXBsZXRlOiExfX0sc2VhcmNoQXV0b2NvbXBsZXRlQWZ0ZXJDb21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGU9ITB9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXtyZXR1cm57dHlwZToidGV4dCIsdmFsdWU6ZS52YWx1ZXx8IiIsYXV0b2NvbXBsZXRlOiJkaXNjb3Vyc2UiLHBsYWNlaG9sZGVyOmUuY29udGV4dEVuYWJsZWQ/IiI6STE4bi50KCJzZWFyY2gudGl0bGUiKX19LGtleVVwOmZ1bmN0aW9uKGUpe2lmKDEzPT09ZS53aGljaCl7aWYoIXRoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGUpcmV0dXJuIHRoaXMuc2VuZFdpZGdldEFjdGlvbigiZnVsbFNlYXJjaCIpO3RoaXMuc3RhdGUuYWZ0ZXJBdXRvY29tcGxldGU9ITF9dmFyIHQ9dGhpcy5hdHRycy52YWx1ZSxuPSQoIiMiK3RoaXMuYnVpbGRJZCgpKS52YWwoKTtuIT09dCYmdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzZWFyY2hUZXJtQ2hhbmdlZCIsbil9fSksKDAsZS5jcmVhdGVXaWRnZXQpKCJzZWFyY2gtY29udGV4dCIse3RhZ05hbWU6ImRpdi5zZWFyY2gtY29udGV4dCIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdCxuPXRoaXMucmVnaXN0ZXIubG9va3VwKCJzZWFyY2gtc2VydmljZTptYWluIikuZ2V0KCJzZWFyY2hDb250ZXh0IiksaT1bXTtyZXR1cm4gbiYmKHQ9KDAsby5zZWFyY2hDb250ZXh0RGVzY3JpcHRpb24pKCgwLHMuZ2V0KShuLCJ0eXBlIiksKDAscy5nZXQpKG4sInVzZXIudXNlcm5hbWUiKXx8KDAscy5nZXQpKG4sImNhdGVnb3J5Lm5hbWUiKXx8KDAscy5nZXQpKG4sInRhZy5pZCIpKSxpLnB1c2goKDAsci5oKSgibGFiZWwiLFsoMCxyLmgpKCJpbnB1dCIse3R5cGU6ImNoZWNrYm94IixjaGVja2VkOmUuY29udGV4dEVuYWJsZWR9KSwiICIsdF0pKSksZS5jb250ZXh0RW5hYmxlZHx8aS5wdXNoKHRoaXMuYXR0YWNoKCJsaW5rIix7aHJlZjplLnVybCxsYWJlbDoic2hvd19oZWxwIixjbGFzc05hbWU6InNob3ctaGVscCJ9KSksaS5wdXNoKCgwLHIuaCkoImRpdi5jbGVhcmZpeCIpKSxpfSxjbGljazpmdW5jdGlvbigpe3ZhciBlPSQoIi5zZWFyY2gtY29udGV4dCBpbnB1dCIpLmlzKCI6Y2hlY2tlZCIpO2UhPT10aGlzLmF0dHJzLmNvbnRleHRFbmFibGVkJiZ0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNlYXJjaENvbnRleHRDaGFuZ2VkIixlKX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvc2VhcmNoLW1lbnUtcmVzdWx0cyIsWyJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS93aWRnZXRzL3Jhdy1odG1sIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvbGliL2hpZ2hsaWdodC10ZXh0IiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10YWciXSxmdW5jdGlvbihpLHMsbix0LG0sbyxyLGEsbCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmdShlLnByb3RvdHlwZSx0KSxuJiZ1KGUsbiksZX07ZnVuY3Rpb24gdShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fXZhciBjPShmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9KGQsbi5kZWZhdWx0KSxlKGQsW3trZXk6ImRlY29yYXRlIix2YWx1ZTpmdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKGUsdGhpcy50ZXJtKX19XSksZCk7ZnVuY3Rpb24gZChlLHQpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGQpO3ZhciBuPWZ1bmN0aW9uKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9KHRoaXMsKGQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZCkpLmNhbGwodGhpcyx7aHRtbDoiPHNwYW4+IitlKyI8L3NwYW4+In0pKTtyZXR1cm4gbi50ZXJtPXQsbn1mdW5jdGlvbiBwKGUpe3ZhciBzPWUudHlwZSxvPWUubGlua0ZpZWxkLHI9ZS5idWlsZGVyO3JldHVybigwLHQuY3JlYXRlV2lkZ2V0KSgic2VhcmNoLXJlc3VsdC0iK3Mse3RhZ05hbWU6InVsLmxpc3QiLGh0bWw6ZnVuY3Rpb24obil7dmFyIGk9dGhpcztyZXR1cm4gbi5yZXN1bHRzLm1hcChmdW5jdGlvbihlKXt2YXIgdD12b2lkIDAsdD0idG9waWMiPT09cz9lLnRvcGljX2lkOmUuaWQ7cmV0dXJuKDAsbS5oKSgibGkuaXRlbSIsaS5hdHRhY2goImxpbmsiLHtocmVmOmVbb10sY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gci5jYWxsKGksZSxuLnRlcm0pfSxjbGFzc05hbWU6InNlYXJjaC1saW5rIixzZWFyY2hSZXN1bHRJZDp0LHNlYXJjaFJlc3VsdFR5cGU6cyxzZWFyY2hDb250ZXh0RW5hYmxlZDpuLnNlYXJjaENvbnRleHRFbmFibGVkLHNlYXJjaExvZ0lkOm4uc2VhcmNoTG9nSWR9KSl9KX19KX1mdW5jdGlvbiBmKGUsdCxuKXt2YXIgaT1bdF07cmV0dXJuIHRoaXMuc2l0ZS5tb2JpbGVWaWV3fHxpLnB1c2goKDAsbS5oKSgic3Bhbi5ibHVyYiIsWygwLHMuZGF0ZU5vZGUpKGUuY3JlYXRlZF9hdCksKDAsbS5oKSgic3BhbiIsIiAtICIpLG5ldyBjKGUuYmx1cmIsbildKSksaX1wKHt0eXBlOiJ0YWciLGxpbmtGaWVsZDoidXJsIixidWlsZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSgwLHIuZXNjYXBlRXhwcmVzc2lvbikoZS5pZCk7cmV0dXJuIG5ldyBuLmRlZmF1bHQoe2h0bWw6KDAsbC5kZWZhdWx0KSh0LHt0YWdOYW1lOiJzcGFuIn0pfSl9fSkscCh7dHlwZToiY2F0ZWdvcnkiLGxpbmtGaWVsZDoidXJsIixidWlsZGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmF0dGFjaCgiY2F0ZWdvcnktbGluayIse2NhdGVnb3J5OmUsbGluazohMX0pfX0pLHAoe3R5cGU6Imdyb3VwIixsaW5rRmllbGQ6InVybCIsYnVpbGRlcjpmdW5jdGlvbihlKXt2YXIgdD0oMCxyLmVzY2FwZUV4cHJlc3Npb24pKGUuZnVsbE5hbWUpLG49KDAsci5lc2NhcGVFeHByZXNzaW9uKShlLm5hbWUpLGk9WygwLG0uaCkoInNwYW4ubmFtZSIsdHx8bildO3QmJmkucHVzaCgoMCxtLmgpKCJzcGFuLnNsdWciLG4pKTt2YXIgcz1bZS5mbGFpclVybD90aGlzLmF0dGFjaCgiYXZhdGFyLWZsYWlyIix7cHJpbWFyeV9ncm91cF9mbGFpcl91cmw6ZS5mbGFpclVybCxwcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yOmUuZmxhaXJCZ0NvbG9yLHByaW1hcnlfZ3JvdXBfZmxhaXJfY29sb3I6ZS5mbGFpckNvbG9yLHByaW1hcnlfZ3JvdXBfbmFtZTpufSk6KDAsYS5pY29uTm9kZSkoInVzZXJzIiksKDAsbS5oKSgiZGl2Lmdyb3VwLW5hbWVzIixpKV07cmV0dXJuKDAsbS5oKSgiZGl2Lmdyb3VwLXJlc3VsdCIscyl9fSkscCh7dHlwZToidXNlciIsbGlua0ZpZWxkOiJwYXRoIixidWlsZGVyOmZ1bmN0aW9uKGUpe3ZhciB0PVtdO2UubmFtZSYmdC5wdXNoKCgwLG0uaCkoInNwYW4ubmFtZSIsZS5uYW1lKSksdC5wdXNoKCgwLG0uaCkoInNwYW4udXNlcm5hbWUiLCgwLHIuZm9ybWF0VXNlcm5hbWUpKGUudXNlcm5hbWUpKSk7dmFyIG49WygwLGkuYXZhdGFySW1nKSgic21hbGwiLHt0ZW1wbGF0ZTplLmF2YXRhcl90ZW1wbGF0ZSx1c2VybmFtZTplLnVzZXJuYW1lfSksKDAsbS5oKSgiZGl2LnVzZXItdGl0bGVzIix0KV07cmV0dXJuKDAsbS5oKSgiZGl2LnVzZXItcmVzdWx0IixuKX19KSxwKHt0eXBlOiJ0b3BpYyIsbGlua0ZpZWxkOiJ1cmwiLGJ1aWxkZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnRvcGljLGk9W3RoaXMuYXR0YWNoKCJ0b3BpYy1zdGF0dXMiLHt0b3BpYzpuLGRpc2FibGVBY3Rpb25zOiEwfSksKDAsbS5oKSgic3Bhbi50b3BpYy10aXRsZSIsbmV3IGMobi5mYW5jeVRpdGxlLHQpKV0scz1bdGhpcy5hdHRhY2goImNhdGVnb3J5LWxpbmsiLHtjYXRlZ29yeTpuLmNhdGVnb3J5LGxpbms6ITF9KV07RGlzY291cnNlLlNpdGVTZXR0aW5ncy50YWdnaW5nX2VuYWJsZWQmJnMucHVzaCh0aGlzLmF0dGFjaCgiZGlzY291cnNlLXRhZ3MiLHt0b3BpYzpuLHRhZ05hbWU6InNwYW4ifSkpO3ZhciBvPSgwLG0uaCkoInNwYW4udG9waWMiLFsoMCxtLmgpKCJkaXYuZmlyc3QtbGluZSIsaSksKDAsbS5oKSgiZGl2LnNlY29uZC1saW5lIixzKV0pO3JldHVybiBmLmNhbGwodGhpcyxlLG8sdCl9fSkscCh7dHlwZToicG9zdCIsbGlua0ZpZWxkOiJ1cmwiLGJ1aWxkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZi5jYWxsKHRoaXMsZSxJMThuLnQoInNlYXJjaC5wb3N0X2Zvcm1hdCIsZSksdCl9fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJzZWFyY2gtbWVudS1yZXN1bHRzIix7dGFnTmFtZToiZGl2LnJlc3VsdHMiLGh0bWw6ZnVuY3Rpb24obyl7dmFyIHI9dGhpcztpZihvLmludmFsaWRUZXJtKXJldHVybigwLG0uaCkoImRpdi5uby1yZXN1bHRzIixJMThuLnQoInNlYXJjaC50b29fc2hvcnQiKSk7aWYoby5ub1Jlc3VsdHMpcmV0dXJuKDAsbS5oKSgiZGl2Lm5vLXJlc3VsdHMiLEkxOG4udCgic2VhcmNoLm5vX3Jlc3VsdHMiKSk7ZnVuY3Rpb24gYShlKXt2YXIgdD1bXSxuPXtjbGFzc05hbWU6ImZpbHRlciIsY29udGVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bSTE4bi50KCJtb3JlIiksIi4uLiJdfX07aWYoZS5tb3JlVXJsP3QucHVzaChyLmF0dGFjaCgibGluayIsJC5leHRlbmQobix7aHJlZjplLm1vcmVVcmx9KSkpOmUubW9yZSYmdC5wdXNoKHIuYXR0YWNoKCJsaW5rIiwkLmV4dGVuZChuLHthY3Rpb246Im1vcmVPZlR5cGUiLGFjdGlvblBhcmFtOmUudHlwZSxjbGFzc05hbWU6ImZpbHRlciBmaWx0ZXItdHlwZSJ9KSkpLHQubGVuZ3RoKXJldHVybiB0fXZhciBlPW8ucmVzdWx0cy5yZXN1bHRUeXBlc3x8W10sbD1bXSx1PVtdLGM9W10sZD1bXSxwPVtdO2UuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdCxuLGkscz1bci5hdHRhY2goZS5jb21wb25lbnROYW1lLHtzZWFyY2hDb250ZXh0RW5hYmxlZDpvLnNlYXJjaENvbnRleHRFbmFibGVkLHNlYXJjaExvZ0lkOm8ucmVzdWx0cy5ncm91cGVkX3NlYXJjaF9yZXN1bHQuc2VhcmNoX2xvZ19pZCxyZXN1bHRzOmUucmVzdWx0cyx0ZXJtOm8udGVybX0pXTshWyJ0b3BpYyJdLmluY2x1ZGVzKGUudHlwZSl8fCh0PWEoZSkpJiZzLnB1c2goKDAsbS5oKSgiZGl2LnNob3ctbW9yZSIsdCkpLG49ZSxpPSgwLG0uaCkoImRpdi4iK2UuY29tcG9uZW50TmFtZSxzKSxbInRvcGljIl0uaW5jbHVkZXMobi50eXBlKSYmbC5wdXNoKGkpLFsidXNlciIsImdyb3VwIl0uaW5jbHVkZXMobi50eXBlKSYmKHUucHVzaChpKSxkLnB1c2goYShuKSkpLFsiY2F0ZWdvcnkiLCJ0YWciXS5pbmNsdWRlcyhuLnR5cGUpJiYoYy5wdXNoKGkpLHAucHVzaChhKG4pKSl9KTt2YXIgdCxuLGk9W107cmV0dXJuIGwubGVuZ3RoJiZpLnB1c2goKDAsbS5oKSgiZGl2Lm1haW4tcmVzdWx0cyIsbCkpLCh1Lmxlbmd0aHx8Yy5sZW5ndGgpJiYoKHQ9W10pLnB1c2godSksdC5wdXNoKGQpLHUubGVuZ3RoJiZjLmxlbmd0aCYmdC5wdXNoKCgwLG0uaCkoImRpdi5zZXBhcmF0b3IiKSksdC5wdXNoKGMpLHQucHVzaChwKSxuPSgwLG0uaCkoImRpdi5zZWNvbmRhcnktcmVzdWx0cyIsdCksaS5wdXNoKG4pKSxpfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy9zZWFyY2gtbWVudSIsWyJleHBvcnRzIiwiQGVtYmVyL29iamVjdCIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL2xpYi9hamF4LWVycm9yIiwiZGlzY291cnNlL2xpYi9zZWFyY2giLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXJsIl0sZnVuY3Rpb24oZSxhLHQscixsLG4saSxzKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaW5pdFNlYXJjaERhdGE9bzt2YXIgYz17fTtmdW5jdGlvbiBvKCl7Yy5sb2FkaW5nPSExLGMucmVzdWx0cz17fSxjLm5vUmVzdWx0cz0hMSxjLnRlcm09dm9pZCAwLGMudHlwZUZpbHRlcj1udWxsLGMuaW52YWxpZFRlcm09ITEsYy50b3BpY0lkPW51bGx9bygpO3ZhciB1PXtfYWN0aXZlU2VhcmNoOm51bGwsX2NhbmNlbFNlYXJjaDpudWxsLGNhbmNlbDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fYWN0aXZlU2VhcmNoJiZ0aGlzLl9hY3RpdmVTZWFyY2guYWJvcnQoKSx0aGlzLl9jYW5jZWxTZWFyY2g9ITAsKDAsdC5sYXRlcikoZnVuY3Rpb24oKXtyZXR1cm4gZS5fY2FuY2VsU2VhcmNoPSExfSw0MDApfSxwZXJmb3JtOmZ1bmN0aW9uKHQpe3ZhciBlLG4saSxzLG89dGhpczt0aGlzLl9jYW5jZWxTZWFyY2g/dGhpcy5fY2FuY2VsU2VhcmNoPW51bGw6KHRoaXMuX2FjdGl2ZVNlYXJjaCYmKHRoaXMuX2FjdGl2ZVNlYXJjaC5hYm9ydCgpLHRoaXMuX2FjdGl2ZVNlYXJjaD1udWxsKSxlPWMudGVybSxuPWMudHlwZUZpbHRlcixpPWMuY29udGV4dEVuYWJsZWQ/dC5zZWFyY2hDb250ZXh0KCk6bnVsbCxzPXQuZnVsbFNlYXJjaFVybCgpLCgwLGwuaXNWYWxpZFNlYXJjaFRlcm0pKGUpPyhjLmludmFsaWRUZXJtPSExLHRoaXMuX2FjdGl2ZVNlYXJjaD0oMCxsLnNlYXJjaEZvclRlcm0pKGUse3R5cGVGaWx0ZXI6bixzZWFyY2hDb250ZXh0OmksZnVsbFNlYXJjaFVybDpzfSksdGhpcy5fYWN0aXZlU2VhcmNoLnRoZW4oZnVuY3Rpb24oZSl7Yy5ub1Jlc3VsdHM9MD09PWUucmVzdWx0VHlwZXMubGVuZ3RoLGUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0JiYoYy50ZXJtPWUuZ3JvdXBlZF9zZWFyY2hfcmVzdWx0LnRlcm0pLGMucmVzdWx0cz1lLGkmJiJ0b3BpYyI9PT1pLnR5cGU/KHQuYXBwRXZlbnRzLnRyaWdnZXIoInBvc3Qtc3RyZWFtOnJlZnJlc2giLHtmb3JjZTohMH0pLGMudG9waWNJZD1pLmlkKTpjLnRvcGljSWQ9bnVsbH0pLmNhdGNoKHIucG9wdXBBamF4RXJyb3IpLmZpbmFsbHkoZnVuY3Rpb24oKXtjLmxvYWRpbmc9ITEsdC5zY2hlZHVsZVJlcmVuZGVyKCksby5fYWN0aXZlU2VhcmNoPW51bGx9KSk6KGMubm9SZXN1bHRzPSEwLGMucmVzdWx0cz1bXSxjLmxvYWRpbmc9ITEsYy5pbnZhbGlkVGVybT0hMCx0LnNjaGVkdWxlUmVyZW5kZXIoKSkpfX07ZS5kZWZhdWx0PSgwLG4uY3JlYXRlV2lkZ2V0KSgic2VhcmNoLW1lbnUiLHt0YWdOYW1lOiJkaXYuc2VhcmNoLW1lbnUiLHNlYXJjaERhdGE6YyxmdWxsU2VhcmNoVXJsOmZ1bmN0aW9uKGUpe3ZhciB0LG49Yy5jb250ZXh0RW5hYmxlZCxpPW4/dGhpcy5zZWFyY2hDb250ZXh0KCk6bnVsbCxzPWk/KDAsYS5nZXQpKGksInR5cGUiKTpudWxsLG89Ii9zZWFyY2giLHI9W107cmV0dXJuIGMudGVybSYmKHQ9IiIsdCs9InE9IitlbmNvZGVVUklDb21wb25lbnQoYy50ZXJtKSxuJiZpJiYodGhpcy5jdXJyZW50VXNlciYmaS5pZC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk9PT10aGlzLmN1cnJlbnRVc2VyLmdldCgidXNlcm5hbWVfbG93ZXIiKSYmInByaXZhdGVfbWVzc2FnZXMiPT09cz90Kz0iIGluOnBlcnNvbmFsIjp0Kz1lbmNvZGVVUklDb21wb25lbnQoIiAiK3MrIjoiK2kuaWQpKSx0JiZyLnB1c2godCkpLGUmJmUuZXhwYW5kZWQmJnIucHVzaCgiZXhwYW5kZWQ9dHJ1ZSIpLDA8ci5sZW5ndGgmJihvPW8rIj8iK3Iuam9pbigiJiIpKSxEaXNjb3Vyc2UuZ2V0VVJMKG8pfSxwYW5lbENvbnRlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9Yy5jb250ZXh0RW5hYmxlZCx0PVt0aGlzLmF0dGFjaCgic2VhcmNoLXRlcm0iLHt2YWx1ZTpjLnRlcm0sY29udGV4dEVuYWJsZWQ6ZX0pXTtjLnRlcm0mJmMubG9hZGluZyYmdC5wdXNoKCgwLGkuaCkoImRpdi5zZWFyY2hpbmciLCgwLGkuaCkoImRpdi5zcGlubmVyIikpKTt2YXIgbj1bKDAsaS5oKSgiZGl2LnNlYXJjaC1pbnB1dCIsdCksdGhpcy5hdHRhY2goInNlYXJjaC1jb250ZXh0Iix7Y29udGV4dEVuYWJsZWQ6ZSx1cmw6dGhpcy5mdWxsU2VhcmNoVXJsKHtleHBhbmRlZDohMH0pfSldO3JldHVybiBjLnRlcm0mJiFjLmxvYWRpbmcmJm4ucHVzaCh0aGlzLmF0dGFjaCgic2VhcmNoLW1lbnUtcmVzdWx0cyIse3Rlcm06Yy50ZXJtLG5vUmVzdWx0czpjLm5vUmVzdWx0cyxyZXN1bHRzOmMucmVzdWx0cyxpbnZhbGlkVGVybTpjLmludmFsaWRUZXJtLHNlYXJjaENvbnRleHRFbmFibGVkOmMuY29udGV4dEVuYWJsZWR9KSksbn0sc2VhcmNoU2VydmljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWFyY2hTZXJ2aWNlfHwodGhpcy5fc2VhcmNoU2VydmljZT10aGlzLnJlZ2lzdGVyLmxvb2t1cCgic2VhcmNoLXNlcnZpY2U6bWFpbiIpKSx0aGlzLl9zZWFyY2hTZXJ2aWNlfSxzZWFyY2hDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlYXJjaENvbnRleHR8fCh0aGlzLl9zZWFyY2hDb250ZXh0PXRoaXMuc2VhcmNoU2VydmljZSgpLmdldCgic2VhcmNoQ29udGV4dCIpKSx0aGlzLl9zZWFyY2hDb250ZXh0fSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLnNlYXJjaENvbnRleHQoKTtyZXR1cm4oYy5jb250ZXh0RW5hYmxlZCE9PWUuY29udGV4dEVuYWJsZWR8fG4mJiJ0b3BpYyI9PT1uLnR5cGUmJm51bGwhPT1jLnRvcGljSWQmJmMudG9waWNJZCE9PW4uaWQpJiZjLnRlcm0mJnRoaXMudHJpZ2dlclNlYXJjaCgpLGMuY29udGV4dEVuYWJsZWQ9ZS5jb250ZXh0RW5hYmxlZCx0aGlzLmF0dGFjaCgibWVudS1wYW5lbCIse21heFdpZHRoOjUwMCxjb250ZW50czpmdW5jdGlvbigpe3JldHVybiB0LnBhbmVsQ29udGVudHMoKX19KX0sbW91c2VEb3duT3V0c2lkZTpmdW5jdGlvbigpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlU2VhcmNoTWVudSIpfSxrZXlEb3duOmZ1bmN0aW9uKGUpe2lmKDI3PT09ZS53aGljaClyZXR1cm4gdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJ0b2dnbGVTZWFyY2hNZW51IiksZS5wcmV2ZW50RGVmYXVsdCgpLCExO2lmKCFjLmxvYWRpbmcmJiFjLm5vUmVzdWx0cyl7aWYoNjU9PT1lLndoaWNoKXt2YXIgdD0kKCJoZWFkZXIgLnJlc3VsdHMgLnNlYXJjaC1saW5rOmZvY3VzIik7aWYoMT09PXQubGVuZ3RoJiYxPT09JCgiI3JlcGx5LWNvbnRyb2wub3BlbiIpLmxlbmd0aClyZXR1cm4gdGhpcy5hcHBFdmVudHMudHJpZ2dlcigiY29tcG9zZXI6aW5zZXJ0LXRleHQiLHRbMF0uaHJlZix7ZW5zdXJlU3BhY2U6ITB9KSx0aGlzLmFwcEV2ZW50cy50cmlnZ2VyKCJoZWFkZXI6a2V5Ym9hcmQtdHJpZ2dlciIse3R5cGU6InNlYXJjaCJ9KSxlLnByZXZlbnREZWZhdWx0KCksJCgiI3JlcGx5LWNvbnRyb2wub3BlbiB0ZXh0YXJlYSIpLmZvY3VzKCksITF9dmFyIG49Mzg9PT1lLndoaWNoLGk9NDA9PT1lLndoaWNoO2lmKG58fGkpe3ZhciBzPSQoImhlYWRlciAucGFuZWwtYm9keSAqOmZvY3VzIilbMF07aWYoIXMpcmV0dXJuO3ZhciBvPSQoImhlYWRlciAucGFuZWwtYm9keSAucmVzdWx0cyBhIikscj0kKCJoZWFkZXIgLnBhbmVsLWJvZHkgLnJlc3VsdHMgLnNlYXJjaC1saW5rIiksYT12b2lkIDAsbD12b2lkIDA7by5lYWNoKGZ1bmN0aW9uKGUsdCl7JCh0KS5oYXNDbGFzcygic2VhcmNoLWxpbmsiKSYmKGE9dCksdD09PXMmJihsPWEpfSk7dmFyIHU9LTE7cmV0dXJuIGwmJih1PXIuaW5kZXgobCkpLC0xPT09dSYmaT8kKCJoZWFkZXIgLnBhbmVsLWJvZHkgLnNlYXJjaC1saW5rOmZpcnN0IikuZm9jdXMoKTowPT09dSYmbj8kKCJoZWFkZXIgLnBhbmVsLWJvZHkgaW5wdXQ6Zmlyc3QiKS5mb2N1cygpOi0xPHUmJjA8PSh1Kz1pPzE6LTEpJiZ1PHIubGVuZ3RoJiYkKHJbdV0pLmZvY3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpLCExfX19LHRyaWdnZXJTZWFyY2g6ZnVuY3Rpb24oKXtjLm5vUmVzdWx0cz0hMSx0aGlzLnNlYXJjaFNlcnZpY2UoKS5zZXQoImhpZ2hsaWdodFRlcm0iLGMudGVybSksYy5sb2FkaW5nPSEwLCgwLHQuZGVib3VuY2UpKHUsdS5wZXJmb3JtLHRoaXMsNDAwKX0sbW9yZU9mVHlwZTpmdW5jdGlvbihlKXtjLnR5cGVGaWx0ZXI9ZSx0aGlzLnRyaWdnZXJTZWFyY2goKX0sc2VhcmNoQ29udGV4dENoYW5nZWQ6ZnVuY3Rpb24oZSl7Yy50eXBlRmlsdGVyPW51bGwsdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJzZWFyY2hNZW51Q29udGV4dENoYW5nZWQiLGUpLGMuY29udGV4dEVuYWJsZWQ9ZSx0aGlzLnRyaWdnZXJTZWFyY2goKX0sc2VhcmNoVGVybUNoYW5nZWQ6ZnVuY3Rpb24oZSl7Yy50eXBlRmlsdGVyPW51bGwsYy50ZXJtPWUsdGhpcy50cmlnZ2VyU2VhcmNoKCl9LGZ1bGxTZWFyY2g6ZnVuY3Rpb24oKXt2YXIgZTsoMCxsLmlzVmFsaWRTZWFyY2hUZXJtKShjLnRlcm0pJiYoYy5yZXN1bHRzPVtdLGMubG9hZGluZz0hMSx1LmNhbmNlbCgpLChlPXRoaXMuZnVsbFNlYXJjaFVybCgpKSYmKHRoaXMuc2VuZFdpZGdldEV2ZW50KCJsaW5rQ2xpY2tlZCIpLHMuZGVmYXVsdC5yb3V0ZVRvKGUpKSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3RpbWUtZ2FwIixbImV4cG9ydHMiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSJdLGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInRpbWUtZ2FwIix7dGFnTmFtZToiZGl2LnRpbWUtZ2FwLnNtYWxsLWFjdGlvbiIsaHRtbDpmdW5jdGlvbihlKXtyZXR1cm5bKDAsbi5oKSgiZGl2LnRvcGljLWF2YXRhciIsIiIpLCgwLG4uaCkoImRpdi5zbWFsbC1hY3Rpb24tZGVzYy50aW1lZ2FwIixmdW5jdGlvbihlKXt2YXIgdD1lLmRheXNTaW5jZTtpZih0PDMwKXJldHVybiBJMThuLnQoImRhdGVzLmxhdGVyLnhfZGF5cyIse2NvdW50OnR9KTtpZih0PDM2NSl7dmFyIG49TWF0aC5yb3VuZCh0LzMwKTtyZXR1cm4gSTE4bi50KCJkYXRlcy5sYXRlci54X21vbnRocyIse2NvdW50Om59KX12YXIgaT1NYXRoLnJvdW5kKHQvMzY1KTtyZXR1cm4gSTE4bi50KCJkYXRlcy5sYXRlci54X3llYXJzIix7Y291bnQ6aX0pfShlKSldfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy90b2dnbGUtdG9waWMtc3VtbWFyeSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvcmF3LWh0bWwiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiXSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTsoMCxuLmNyZWF0ZVdpZGdldCkoInRvZ2dsZS1zdW1tYXJ5LWRlc2NyaXB0aW9uIix7ZGVzY3JpcHRpb246ZnVuY3Rpb24oZSl7aWYoZS50b3BpY1N1bW1hcnlFbmFibGVkKXJldHVybiBJMThuLnQoInN1bW1hcnkuZW5hYmxlZF9kZXNjcmlwdGlvbiIpO2lmKGUudG9waWNXb3JkQ291bnQmJjA8dGhpcy5zaXRlU2V0dGluZ3MucmVhZF90aW1lX3dvcmRfY291bnQpe3ZhciB0PU1hdGguY2VpbChNYXRoLm1heChlLnRvcGljV29yZENvdW50L3RoaXMuc2l0ZVNldHRpbmdzLnJlYWRfdGltZV93b3JkX2NvdW50LDQqZS50b3BpY1Bvc3RzQ291bnQvNjApKTtyZXR1cm4gSTE4bi50KCJzdW1tYXJ5LmRlc2NyaXB0aW9uX3RpbWUiLHtyZXBseUNvdW50OmUudG9waWNSZXBseUNvdW50LHJlYWRpbmdUaW1lOnR9KX1yZXR1cm4gSTE4bi50KCJzdW1tYXJ5LmRlc2NyaXB0aW9uIix7cmVwbHlDb3VudDplLnRvcGljUmVwbHlDb3VudH0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdC5kZWZhdWx0KHtodG1sOiI8cD4iK3RoaXMuZGVzY3JpcHRpb24oZSkrIjwvcD4ifSl9fSksZS5kZWZhdWx0PSgwLG4uY3JlYXRlV2lkZ2V0KSgidG9nZ2xlLXRvcGljLXN1bW1hcnkiLHt0YWdOYW1lOiJzZWN0aW9uLmluZm9ybWF0aW9uLnRvZ2dsZS1zdW1tYXJ5IixodG1sOmZ1bmN0aW9uKGUpe3JldHVyblt0aGlzLmF0dGFjaCgidG9nZ2xlLXN1bW1hcnktZGVzY3JpcHRpb24iLGUpLHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6ImJ0biBidG4tcHJpbWFyeSIsbGFiZWw6ZS50b3BpY1N1bW1hcnlFbmFibGVkPyJzdW1tYXJ5LmRpc2FibGUiOiJzdW1tYXJ5LmVuYWJsZSIsYWN0aW9uOiJ0b2dnbGVTdW1tYXJ5In0pXX19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvdG9waWMtYWRtaW4tbWVudSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iXSxmdW5jdGlvbihlLGkscyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCxpLmNyZWF0ZVdpZGdldCkoImFkbWluLW1lbnUtYnV0dG9uIix7aHRtbDpmdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7cmV0dXJuIGUuYnV0dG9uQ2xhc3MmJih0PWUuYnV0dG9uQ2xhc3MpLCgwLHMuaCkoImxpIix7Y2xhc3NOYW1lOmUuY2xhc3NOYW1lfSx0aGlzLmF0dGFjaCgiYnV0dG9uIix7Y2xhc3NOYW1lOnQsYWN0aW9uOmUuYWN0aW9uLHVybDplLnVybCxpY29uOmUuaWNvbixsYWJlbDplLmZ1bGxMYWJlbHx8InRvcGljLiIrZS5sYWJlbCxzZWNvbmRhcnlBY3Rpb246ImhpZGVBZG1pbk1lbnUifSkpfX0pLCgwLGkuY3JlYXRlV2lkZ2V0KSgidG9waWMtYWRtaW4tbWVudS1idXR0b24iLHt0YWdOYW1lOiJzcGFuIixidWlsZEtleTpmdW5jdGlvbigpe3JldHVybiJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntleHBhbmRlZDohMSxwb3NpdGlvbjpudWxsfX0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLGk9dGhpcy5hdHRhY2goInRvcGljLWFkbWluLW1lbnUiLHtwb3NpdGlvbjp0LnBvc2l0aW9uLGZpeGVkOmUuZml4ZWQsdG9waWM6ZS50b3BpYyxvcGVuVXB3YXJkczplLm9wZW5VcHdhcmRzLHJpZ2h0U2lkZTohdGhpcy5zaXRlLm1vYmlsZVZpZXcmJmUucmlnaHRTaWRlLGFjdGlvbkJ1dHRvbnM6W119KTtyZXR1cm4haS5hdHRycy5hY3Rpb25CdXR0b25zLmxlbmd0aHx8ZS5yaWdodFNpZGUmJnQuZXhwYW5kZWQmJiF0aGlzLnNpdGUubW9iaWxlVmlld3x8bi5wdXNoKHRoaXMuYXR0YWNoKCJidXR0b24iLHtjbGFzc05hbWU6ImJ0bi1kZWZhdWx0IHRvZ2dsZS1hZG1pbi1tZW51IisoZS5maXhlZD8iIHNob3ctdG9waWMtYWRtaW4iOiIiKSsoZS5hZGRLZXlib2FyZFRhcmdldENsYXNzPyIga2V5Ym9hcmQtdGFyZ2V0LWFkbWluLW1lbnUiOiIiKSx0aXRsZToidG9waWNfYWRtaW5fbWVudSIsaWNvbjoid3JlbmNoIixhY3Rpb246InNob3dBZG1pbk1lbnUiLHNlbmRBY3Rpb25FdmVudDohMH0pKSx0LmV4cGFuZGVkJiZuLnB1c2goaSksbn0saGlkZUFkbWluTWVudTpmdW5jdGlvbigpe3RoaXMuc3RhdGUuZXhwYW5kZWQ9ITEsdGhpcy5zdGF0ZS5wb3NpdGlvbj1udWxsLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiYhdGhpcy5hdHRycy5yaWdodFNpZGUmJiQoIi5oZWFkZXItY2xvYWsiKS5jc3MoImRpc3BsYXkiLCIiKX0sc2hvd0FkbWluTWVudTpmdW5jdGlvbihlKXt0aGlzLnN0YXRlLmV4cGFuZGVkPSEwO3ZhciB0PXZvaWQgMCxuPSh0PXZvaWQgMD09PWU/JCgiLmtleWJvYXJkLXRhcmdldC1hZG1pbi1tZW51Iik6JChlLnRhcmdldCkuY2xvc2VzdCgiYnV0dG9uIikpLnBvc2l0aW9uKCksaT0kKCJodG1sIikuaGFzQ2xhc3MoInJ0bCIpO24ubGVmdCxuLm91dGVySGVpZ2h0PXQub3V0ZXJIZWlnaHQoKSxpJiYobi5sZWZ0LT0yMTctdC5vdXRlcldpZHRoKCkpLHRoaXMuYXR0cnMuZml4ZWQmJihuLmxlZnQrPXQud2lkdGgoKS0yMDMpLHRoaXMuc2l0ZS5tb2JpbGVWaWV3JiYhdGhpcy5hdHRycy5yaWdodFNpZGUmJiQoIi5oZWFkZXItY2xvYWsiKS5jc3MoImRpc3BsYXkiLCJibG9jayIpLHRoaXMuc3RhdGUucG9zaXRpb249bn0sdG9waWNUb2dnbGVBY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5leHBhbmRlZD90aGlzLmhpZGVBZG1pbk1lbnUoKTp0aGlzLnNob3dBZG1pbk1lbnUoKX19KSxlLmRlZmF1bHQ9KDAsaS5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1hZG1pbi1tZW51Iix7dGFnTmFtZToiZGl2LnBvcHVwLW1lbnUudG9waWMtYWRtaW4tcG9wdXAtbWVudSIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe2lmKGUucmlnaHRTaWRlKXJldHVybiJyaWdodC1zaWRlIn0saW5pdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRvcGljLG49dC5nZXQoImRldGFpbHMiKSxpPXQuZ2V0KCJpc1ByaXZhdGVNZXNzYWdlIikscz10LmdldCgicGlubmVkX2F0Iil8fHQuZ2V0KCJpc0Jhbm5lciIpLG89dC5nZXQoInZpc2libGUiKTt0aGlzLmN1cnJlbnRVc2VyJiZ0aGlzLmN1cnJlbnRVc2VyLmdldCgiY2FuTWFuYWdlVG9waWMiKSYmKHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLW11bHRpLXNlbGVjdCIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InRvZ2dsZU11bHRpU2VsZWN0IixpY29uOiJ0YXNrcyIsbGFiZWw6ImFjdGlvbnMubXVsdGlfc2VsZWN0In0pLG4uZ2V0KCJjYW5fZGVsZXRlIikmJnRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLWRlbGV0ZSIsYnV0dG9uQ2xhc3M6ImJ0bi1kYW5nZXIiLGFjdGlvbjoiZGVsZXRlVG9waWMiLGljb246ImZhci10cmFzaC1hbHQiLGxhYmVsOiJhY3Rpb25zLmRlbGV0ZSJ9KSx0LmdldCgiZGVsZXRlZCIpJiZuLmdldCgiY2FuX3JlY292ZXIiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tcmVjb3ZlciIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InJlY292ZXJUb3BpYyIsaWNvbjoidW5kbyIsbGFiZWw6ImFjdGlvbnMucmVjb3ZlciJ9KSx0LmdldCgiY2xvc2VkIik/dGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tb3BlbiIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InRvZ2dsZUNsb3NlZCIsaWNvbjoidW5sb2NrIixsYWJlbDoiYWN0aW9ucy5vcGVuIn0pOnRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLWNsb3NlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoidG9nZ2xlQ2xvc2VkIixpY29uOiJsb2NrIixsYWJlbDoiYWN0aW9ucy5jbG9zZSJ9KSx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1zdGF0dXMtdXBkYXRlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoic2hvd1RvcGljU3RhdHVzVXBkYXRlIixpY29uOiJmYXItY2xvY2siLGxhYmVsOiJhY3Rpb25zLnRpbWVkX3VwZGF0ZSJ9KSxpfHwhdC5nZXQoInZpc2libGUiKSYmIXN8fHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLXBpbiIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246InNob3dGZWF0dXJlVG9waWMiLGljb246InRodW1idGFjayIsbGFiZWw6cz8iYWN0aW9ucy51bnBpbiI6ImFjdGlvbnMucGluIn0pLHRoaXMuY3VycmVudFVzZXIuZ2V0KCJzdGFmZiIpJiZ0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1jaGFuZ2UtdGltZXN0YW1wIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoic2hvd0NoYW5nZVRpbWVzdGFtcCIsaWNvbjoiY2FsZW5kYXItYWx0IixsYWJlbDoiY2hhbmdlX3RpbWVzdGFtcC50aXRsZSJ9KSx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1yZXNldC1idW1wLWRhdGUiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsYWN0aW9uOiJyZXNldEJ1bXBEYXRlIixpY29uOiJhbmNob3IiLGxhYmVsOiJhY3Rpb25zLnJlc2V0X2J1bXBfZGF0ZSJ9KSxpfHx0aGlzLmFkZEFjdGlvbkJ1dHRvbih7Y2xhc3NOYW1lOiJ0b3BpYy1hZG1pbi1hcmNoaXZlIixidXR0b25DbGFzczoiYnRuLWRlZmF1bHQiLGFjdGlvbjoidG9nZ2xlQXJjaGl2ZWQiLGljb246ImZvbGRlciIsbGFiZWw6dC5nZXQoImFyY2hpdmVkIik/ImFjdGlvbnMudW5hcmNoaXZlIjoiYWN0aW9ucy5hcmNoaXZlIn0pLHRoaXMuYWRkQWN0aW9uQnV0dG9uKHtjbGFzc05hbWU6InRvcGljLWFkbWluLXZpc2libGUiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsYWN0aW9uOiJ0b2dnbGVWaXNpYmlsaXR5IixpY29uOm8/ImZhci1leWUtc2xhc2giOiJmYXItZXllIixsYWJlbDpvPyJhY3Rpb25zLmludmlzaWJsZSI6ImFjdGlvbnMudmlzaWJsZSJ9KSxuLmdldCgiY2FuX2NvbnZlcnRfdG9waWMiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2NsYXNzTmFtZToidG9waWMtYWRtaW4tY29udmVydCIsYnV0dG9uQ2xhc3M6ImJ0bi1kZWZhdWx0IixhY3Rpb246aT8iY29udmVydFRvUHVibGljVG9waWMiOiJjb252ZXJ0VG9Qcml2YXRlTWVzc2FnZSIsaWNvbjppPyJjb21tZW50IjoiZW52ZWxvcGUiLGxhYmVsOmk/ImFjdGlvbnMubWFrZV9wdWJsaWMiOiJhY3Rpb25zLm1ha2VfcHJpdmF0ZSJ9KSx0aGlzLmN1cnJlbnRVc2VyLmdldCgic3RhZmYiKSYmdGhpcy5hZGRBY3Rpb25CdXR0b24oe2ljb246Imxpc3QiLGJ1dHRvbkNsYXNzOiJidG4tZGVmYXVsdCIsZnVsbExhYmVsOiJyZXZpZXcubW9kZXJhdGlvbl9oaXN0b3J5Iix1cmw6Ii9yZXZpZXc/dG9waWNfaWQ9Iit0LmlkKyImc3RhdHVzPWFsbCJ9KSl9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbihlKXt2YXIgdD1lLnBvc2l0aW9uLG49dC50b3AsaT10LmxlZnQscz10Lm91dGVySGVpZ2h0LG89ZS5maXhlZHx8dGhpcy5zaXRlLm1vYmlsZVZpZXc/ImZpeGVkIjoiYWJzb2x1dGUiO2lmKCFlLnJpZ2h0U2lkZSl7aWYoZS5vcGVuVXB3YXJkcyl7dmFyIHI9JChkb2N1bWVudCkuaGVpZ2h0KCksYT0kKCIjbWFpbiIpLmhlaWdodCgpLGw9ci1uLTcwLSQoIiNtYWluIikub2Zmc2V0KCkudG9wO3JldHVybiBhPHImJihsPWwtKHItYSktcyksdGhpcy5zaXRlLm1vYmlsZVZpZXcmJihpPWw9MCkse3N0eWxlOiJwb3NpdGlvbjogIitvKyI7IGJvdHRvbTogIitsKyJweDsgbGVmdDogIitpKyJweDsifX1yZXR1cm57c3R5bGU6InBvc2l0aW9uOiAiK28rIjsgdG9wOiAiK24rInB4OyBsZWZ0OiAiK2krInB4OyJ9fX0sYWRkQWN0aW9uQnV0dG9uOmZ1bmN0aW9uKGUpe3RoaXMuYXR0cnMuYWN0aW9uQnV0dG9ucy5wdXNoKGUpfSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj0oMCxpLmFwcGx5RGVjb3JhdG9ycykodGhpcywiYWRtaW5NZW51QnV0dG9ucyIsdGhpcy5hdHRycyx0aGlzLnN0YXRlKTtyZXR1cm5bKDAscy5oKSgiZGl2LmhlYWRlciIsWygwLHMuaCkoImgzIixJMThuLnQoInRvcGljLmFjdGlvbnMudGl0bGUiKSksKDAscy5oKSgiZGl2Iix0aGlzLmF0dGFjaCgiYnV0dG9uIix7YWN0aW9uOiJjbGlja091dHNpZGUiLGljb246InRpbWVzIixjbGFzc05hbWU6ImNsb3NlLWJ1dHRvbiJ9KSldKSwoMCxzLmgpKCJ1bCIsZS5hY3Rpb25CdXR0b25zLmNvbmNhdChuKS5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmF0dGFjaCgiYWRtaW4tbWVudS1idXR0b24iLGUpfSkpXX0sY2xpY2tPdXRzaWRlOmZ1bmN0aW9uKCl7dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJoaWRlQWRtaW5NZW51Iil9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3RvcGljLW1hcCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9wb3N0IiwiZGlzY291cnNlL2hlbHBlcnMvbm9kZSIsImRpc2NvdXJzZS93aWRnZXRzL2Vtb2ppIl0sZnVuY3Rpb24oZSx0LGwscyxvLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZnVuY3Rpb24gdSh0LGUpe3ZhciBuPXRoaXM7aWYoZSlyZXR1cm4gdD10fHxbXSxlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbi5hdHRhY2goInRvcGljLXBhcnRpY2lwYW50IixlLHtzdGF0ZTp7dG9nZ2xlZDp0LmluY2x1ZGVzKGUudXNlcm5hbWUpfX0pfSl9KDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1tYXAtc2hvdy1saW5rcyIse3RhZ05hbWU6ImRpdi5saW5rLXN1bW1hcnkiLGh0bWw6ZnVuY3Rpb24oKXtyZXR1cm4oMCxsLmgpKCJzcGFuIix0aGlzLmF0dGFjaCgiYnV0dG9uIix7dGl0bGU6InRvcGljX21hcC5saW5rc19zaG93biIsaWNvbjoiY2hldnJvbi1kb3duIixhY3Rpb246InNob3dMaW5rcyIsY2xhc3NOYW1lOiJidG4ifSkpfSxzaG93TGlua3M6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInNob3dBbGxMaW5rcyIpfX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidG9waWMtcGFydGljaXBhbnQiLHtidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5wcmltYXJ5X2dyb3VwX25hbWUpcmV0dXJuImdyb3VwLSIrZS5wcmltYXJ5X2dyb3VwX25hbWV9LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bKDAscy5hdmF0YXJJbWcpKCJtZWRpdW0iLHt1c2VybmFtZTplLnVzZXJuYW1lLHRlbXBsYXRlOmUuYXZhdGFyX3RlbXBsYXRlLG5hbWU6ZS5uYW1lfSldO3JldHVybiAyPGUucG9zdF9jb3VudCYmbi5wdXNoKCgwLGwuaCkoInNwYW4ucG9zdC1jb3VudCIsZS5wb3N0X2NvdW50LnRvU3RyaW5nKCkpKSwoZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX3VybHx8ZS5wcmltYXJ5X2dyb3VwX2ZsYWlyX2JnX2NvbG9yKSYmbi5wdXNoKHRoaXMuYXR0YWNoKCJhdmF0YXItZmxhaXIiLGUpKSwoMCxsLmgpKCJhLnBvc3Rlci50cmlnZ2VyLXVzZXItY2FyZCIse2NsYXNzTmFtZTp0LnRvZ2dsZWQ/InRvZ2dsZWQiOm51bGwsYXR0cmlidXRlczp7dGl0bGU6ZS51c2VybmFtZSwiZGF0YS11c2VyLWNhcmQiOmUudXNlcm5hbWV9fSxuKX19KSwoMCx0LmNyZWF0ZVdpZGdldCkoInRvcGljLW1hcC1zdW1tYXJ5Iix7dGFnTmFtZToic2VjdGlvbi5tYXAiLGJ1aWxkQ2xhc3NlczpmdW5jdGlvbihlLHQpe2lmKHQuY29sbGFwc2VkKXJldHVybiJtYXAtY29sbGFwc2VkIn0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuLGk9W107cmV0dXJuIGkucHVzaCgoMCxsLmgpKCJsaSIsWygwLGwuaCkoImg0Iix7YXR0cmlidXRlczp7cm9sZToicHJlc2VudGF0aW9uIn19LEkxOG4udCgiY3JlYXRlZF9sb3dlcmNhc2UiKSksKDAsbC5oKSgiZGl2LnRvcGljLW1hcC1wb3N0LmNyZWF0ZWQtYXQiLFsoMCxzLmF2YXRhckZvcikoInRpbnkiLHt1c2VybmFtZTplLmNyZWF0ZWRCeVVzZXJuYW1lLHRlbXBsYXRlOmUuY3JlYXRlZEJ5QXZhdGFyVGVtcGxhdGUsbmFtZTplLmNyZWF0ZWRCeU5hbWV9KSwoMCxvLmRhdGVOb2RlKShlLnRvcGljQ3JlYXRlZEF0KV0pXSkpLGkucHVzaCgoMCxsLmgpKCJsaSIsKDAsbC5oKSgiYSIse2F0dHJpYnV0ZXM6e2hyZWY6ZS5sYXN0UG9zdFVybH19LFsoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoImxhc3RfcmVwbHlfbG93ZXJjYXNlIikpLCgwLGwuaCkoImRpdi50b3BpYy1tYXAtcG9zdC5sYXN0LXJlcGx5IixbKDAscy5hdmF0YXJGb3IpKCJ0aW55Iix7dXNlcm5hbWU6ZS5sYXN0UG9zdFVzZXJuYW1lLHRlbXBsYXRlOmUubGFzdFBvc3RBdmF0YXJUZW1wbGF0ZSxuYW1lOmUubGFzdFBvc3ROYW1lfSksKDAsby5kYXRlTm9kZSkoZS5sYXN0UG9zdEF0KV0pXSkpKSxpLnB1c2goKDAsbC5oKSgibGkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNSZXBseUNvdW50KSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoInJlcGxpZXNfbG93ZXJjYXNlIix7Y291bnQ6ZS50b3BpY1JlcGx5Q291bnR9KS50b1N0cmluZygpKV0pKSxpLnB1c2goKDAsbC5oKSgibGkuc2Vjb25kYXJ5IixbKDAsby5udW1iZXJOb2RlKShlLnRvcGljVmlld3Mse2NsYXNzTmFtZTplLnRvcGljVmlld3NIZWF0fSksKDAsbC5oKSgiaDQiLHthdHRyaWJ1dGVzOntyb2xlOiJwcmVzZW50YXRpb24ifX0sSTE4bi50KCJ2aWV3c19sb3dlcmNhc2UiLHtjb3VudDplLnRvcGljVmlld3N9KS50b1N0cmluZygpKV0pKSwwPGUucGFydGljaXBhbnRDb3VudCYmaS5wdXNoKCgwLGwuaCkoImxpLnNlY29uZGFyeSIsWygwLG8ubnVtYmVyTm9kZSkoZS5wYXJ0aWNpcGFudENvdW50KSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoInVzZXJzX2xvd2VyY2FzZSIse2NvdW50OmUucGFydGljaXBhbnRDb3VudH0pLnRvU3RyaW5nKCkpXSkpLGUudG9waWNMaWtlQ291bnQmJmkucHVzaCgoMCxsLmgpKCJsaS5zZWNvbmRhcnkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNMaWtlQ291bnQpLCgwLGwuaCkoImg0Iix7YXR0cmlidXRlczp7cm9sZToicHJlc2VudGF0aW9uIn19LEkxOG4udCgibGlrZXNfbG93ZXJjYXNlIix7Y291bnQ6ZS50b3BpY0xpa2VDb3VudH0pLnRvU3RyaW5nKCkpXSkpLDA8ZS50b3BpY0xpbmtMZW5ndGgmJmkucHVzaCgoMCxsLmgpKCJsaS5zZWNvbmRhcnkiLFsoMCxvLm51bWJlck5vZGUpKGUudG9waWNMaW5rTGVuZ3RoKSwoMCxsLmgpKCJoNCIse2F0dHJpYnV0ZXM6e3JvbGU6InByZXNlbnRhdGlvbiJ9fSxJMThuLnQoImxpbmtzX2xvd2VyY2FzZSIse2NvdW50OmUudG9waWNMaW5rTGVuZ3RofSkudG9TdHJpbmcoKSldKSksdC5jb2xsYXBzZWQmJjI8ZS50b3BpY1Bvc3RzQ291bnQmJmUucGFydGljaXBhbnRzJiYwPGUucGFydGljaXBhbnRzLmxlbmd0aCYmKG49dS5jYWxsKHRoaXMsZS51c2VyRmlsdGVycyxlLnBhcnRpY2lwYW50cy5zbGljZSgwLDMpKSxpLnB1c2goKDAsbC5oKSgibGkuYXZhdGFycyIsbikpKSxbKDAsbC5oKSgibmF2LmJ1dHRvbnMiLHRoaXMuYXR0YWNoKCJidXR0b24iLHt0aXRsZToidG9waWMudG9nZ2xlX2luZm9ybWF0aW9uIixpY29uOnQuY29sbGFwc2VkPyJjaGV2cm9uLWRvd24iOiJjaGV2cm9uLXVwIixhY3Rpb246InRvZ2dsZU1hcCIsY2xhc3NOYW1lOiJidG4ifSkpLCgwLGwuaCkoInVsLmNsZWFyZml4IixpKV19fSksKDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1tYXAtbGluayIse3RhZ05hbWU6ImEudG9waWMtbGluay50cmFjay1saW5rIixidWlsZENsYXNzZXM6ZnVuY3Rpb24oZSl7aWYoZS5hdHRhY2htZW50KXJldHVybiJhdHRhY2htZW50In0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybntocmVmOmUudXJsLHRhcmdldDoiX2JsYW5rIiwiZGF0YS11c2VyLWlkIjplLnVzZXJfaWQsImRhdGEtaWdub3JlLXBvc3QtaWQiOiJ0cnVlIix0aXRsZTplLnVybCxyZWw6Im5vZm9sbG93IHVnYyBub29wZW5lciJ9fSxodG1sOmZ1bmN0aW9uKGUpe3ZhciB0PWUudGl0bGV8fGUudXJsO3JldHVybiA4NTx0Lmxlbmd0aCYmKHQ9dC5zdWJzdHIoMCw4NSkudHJpbSgpKyIuLi4iKSxlLnRpdGxlPygwLG4ucmVwbGFjZUVtb2ppKSh0KTp0fX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidG9waWMtbWFwLWV4cGFuZGVkIix7dGFnTmFtZToic2VjdGlvbi50b3BpYy1tYXAtZXhwYW5kZWQiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJ0b3BpYy1tYXAtZXhwYW5kZWQtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57YWxsTGlua3NTaG93bjohMX19LGh0bWw6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLG49dm9pZCAwO2UucGFydGljaXBhbnRzJiYwPGUucGFydGljaXBhbnRzLmxlbmd0aCYmKG49KDAsbC5oKSgic2VjdGlvbi5hdmF0YXJzLmNsZWFyZml4IixbKDAsbC5oKSgiaDMiLEkxOG4udCgidG9waWNfbWFwLnBhcnRpY2lwYW50c190aXRsZSIpKSx1LmNhbGwodGhpcyxlLnVzZXJGaWx0ZXJzLGUucGFydGljaXBhbnRzKV0pKTt2YXIgcyxvLHIsYT1bbl07cmV0dXJuIGUudG9waWNMaW5rcyYmKHM9KHQuYWxsTGlua3NTaG93bj9lLnRvcGljTGlua3M6ZS50b3BpY0xpbmtzLnNsaWNlKDAsNSkpLm1hcChmdW5jdGlvbihlKXt2YXIgdCxuPSIiO3JldHVybiBlLnRpdGxlJiZlLnRpdGxlLmxlbmd0aCYmKCh0PWUucm9vdF9kb21haW4pJiZ0Lmxlbmd0aCYmKG49KDAsbC5oKSgic3Bhbi5kb21haW4iLHQpKSksKDAsbC5oKSgidHIiLFsoMCxsLmgpKCJ0ZCIsKDAsbC5oKSgic3Bhbi5iYWRnZS5iYWRnZS1ub3RpZmljYXRpb24uY2xpY2tzIix7YXR0cmlidXRlczp7dGl0bGU6STE4bi50KCJ0b3BpY19tYXAuY2xpY2tzIix7Y291bnQ6ZS5jbGlja3N9KX19LGUuY2xpY2tzLnRvU3RyaW5nKCkpKSwoMCxsLmgpKCJ0ZCIsW2kuYXR0YWNoKCJ0b3BpYy1tYXAtbGluayIsZSksIiAiLG5dKV0pfSksbz1bKDAsbC5oKSgiaDMiLEkxOG4udCgidG9waWNfbWFwLmxpbmtzX3RpdGxlIikpLCgwLGwuaCkoInRhYmxlLnRvcGljLWxpbmtzIixzKV0sIXQuYWxsTGlua3NTaG93biYmcy5sZW5ndGg8ZS50b3BpY0xpbmtzLmxlbmd0aCYmby5wdXNoKHRoaXMuYXR0YWNoKCJ0b3BpYy1tYXAtc2hvdy1saW5rcyIpKSxyPSgwLGwuaCkoInNlY3Rpb24ubGlua3MiLG8pLGEucHVzaChyKSksYX0sc2hvd0FsbExpbmtzOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5hbGxMaW5rc1Nob3duPSEwfX0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInRvcGljLW1hcCIse3RhZ05hbWU6ImRpdi50b3BpYy1tYXAiLGJ1aWxkS2V5OmZ1bmN0aW9uKGUpe3JldHVybiJ0b3BpYy1tYXAtIitlLmlkfSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oZSl7cmV0dXJue2NvbGxhcHNlZDohZS5oYXNUb3BpY1N1bW1hcnl9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG49W3RoaXMuYXR0YWNoKCJ0b3BpYy1tYXAtc3VtbWFyeSIsZSx7c3RhdGU6dH0pXTtyZXR1cm4gdC5jb2xsYXBzZWR8fG4ucHVzaCh0aGlzLmF0dGFjaCgidG9waWMtbWFwLWV4cGFuZGVkIixlKSksZS5oYXNUb3BpY1N1bW1hcnkmJm4ucHVzaCh0aGlzLmF0dGFjaCgidG9nZ2xlLXRvcGljLXN1bW1hcnkiLGUpKSxlLnNob3dQTU1hcCYmbi5wdXNoKHRoaXMuYXR0YWNoKCJwcml2YXRlLW1lc3NhZ2UtbWFwIixlKSksbn0sdG9nZ2xlTWFwOmZ1bmN0aW9uKCl7dGhpcy5zdGF0ZS5jb2xsYXBzZWQ9IXRoaXMuc3RhdGUuY29sbGFwc2VkfX0pfSksZGVmaW5lKCJkaXNjb3Vyc2Uvd2lkZ2V0cy90b3BpYy1zdGF0dXMiLFsiZXhwb3J0cyIsImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsImRpc2NvdXJzZS1jb21tb24vbGliL2ljb24tbGlicmFyeSIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi91dGlsaXRpZXMiLCJkaXNjb3Vyc2UvaGVscGVycy90b3BpYy1zdGF0dXMtaWNvbnMiXSxmdW5jdGlvbihlLHQsYSxsLHUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9KDAsdC5jcmVhdGVXaWRnZXQpKCJ0b3BpYy1zdGF0dXMiLHt0YWdOYW1lOiJkaXYudG9waWMtc3RhdHVzZXMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b3BpYyxvPXRoaXMuY3VycmVudFVzZXImJiFlLmRpc2FibGVBY3Rpb25zLHI9W107cmV0dXJuIG4uZGVmYXVsdC5yZW5kZXIodCxmdW5jdGlvbihlLHQpe3ZhciBuPSJ1bnBpbm5lZCI9PT10P3tjbGFzczoidW5waW5uZWQifTpudWxsLGk9KDAsYS5pY29uTm9kZSkoZSxuKSxzPXt0aXRsZTooMCx1LmVzY2FwZUV4cHJlc3Npb24pKEkxOG4udCgidG9waWNfc3RhdHVzZXMuIit0KyIuaGVscCIpKX07ci5wdXNoKCgwLGwuaCkoKG8/ImEiOiJzcGFuIikrIi50b3BpYy1zdGF0dXMiLHMsaSkpfSkscn19KX0pLGRlZmluZSgiZGlzY291cnNlL3dpZGdldHMvdG9waWMtdGltZWxpbmUiLFsiZXhwb3J0cyIsIkBlbWJlci9ydW5sb29wIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwiZGlzY291cnNlL3dpZGdldHMvY29tcG9uZW50LWNvbm5lY3RvciIsInZpcnR1YWwtZG9tIiwiZGlzY291cnNlL2xpYi9mb3JtYXR0ZXIiLCJkaXNjb3Vyc2UtY29tbW9uL2xpYi9pY29uLWxpYnJhcnkiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy9yYXctaHRtbCIsImRpc2NvdXJzZS9saWIvcmVuZGVyLXRhZ3MiLCJkaXNjb3Vyc2UvbGliL3JlbmRlci10b3BpYy1mZWF0dXJlZC1saW5rIl0sZnVuY3Rpb24oZSx0LG4scix2LHksaSx3LHgsayl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcz0xNzAsbz0zMDA7ZnVuY3Rpb24gZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXBseS1jb250cm9sIikub2Zmc2V0SGVpZ2h0fHwwLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmQtaGVhZGVyIilbMF0ub2Zmc2V0SGVpZ2h0fHwwLG49KHdpbmRvdy5pbm5lckhlaWdodC1lLXQpLzI7cmV0dXJuIE1hdGgubWF4KHMsTWF0aC5taW4obixvKSl9ZnVuY3Rpb24gZihlLHQsbil7dmFyIGk9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT10P3Q6MCxzPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09bj9uOjE7cmV0dXJuIE1hdGgubWF4KE1hdGgubWluKGUscyksaSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZS5hdHRhY2goImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuLXByaW1hcnkgYnRuLXNtYWxsIGJhY2stYnV0dG9uIixsYWJlbDoidG9waWMudGltZWxpbmUuYmFjayIsdGl0bGU6InRvcGljLnRpbWVsaW5lLmJhY2tfZGVzY3JpcHRpb24iLGFjdGlvbjoiZ29CYWNrIn0pfWZ1bmN0aW9uIFAoZSl7dmFyIHQ9ZS5nZXRGdWxsWWVhcigpPT09KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpPyJsb25nX25vX3llYXJfbm9fdGltZSI6InRpbWVsaW5lX2RhdGUiO3JldHVybiBtb21lbnQoZSkuZm9ybWF0KEkxOG4udCgiZGF0ZXMuIit0KSl9KDAsbi5jcmVhdGVXaWRnZXQpKCJ0aW1lbGluZS1sYXN0LXJlYWQiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtbGFzdC1yZWFkIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZCgpLTEwO3JldHVybntzdHlsZToiaGVpZ2h0OiAyMHB4OyB0b3A6ICIrKGUudG9wPnQ/dDplLnRvcCkrInB4In19LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9WygwLGkuaWNvbk5vZGUpKCJtaW51cyIse2NsYXNzOiJwcm9ncmVzcyJ9KV07cmV0dXJuIGUuc2hvd0J1dHRvbiYmdC5wdXNoKGEodGhpcykpLHR9fSksKDAsbi5jcmVhdGVXaWRnZXQpKCJ0aW1lbGluZS1zY3JvbGxlciIse3RhZ05hbWU6ImRpdi50aW1lbGluZS1zY3JvbGxlciIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idGltZWxpbmUtc2Nyb2xsZXIifSxkZWZhdWx0U3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm57ZHJhZ2dpbmc6ITF9fSxidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm57c3R5bGU6ImhlaWdodDogNTBweCJ9fSxodG1sOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jdXJyZW50LGk9ZS50b3RhbCxzPWUuZGF0ZSxvPVsoMCx2LmgpKCJkaXYudGltZWxpbmUtcmVwbGllcyIsSTE4bi50KCJ0b3BpYy50aW1lbGluZS5yZXBsaWVzX3Nob3J0Iix7Y3VycmVudDpuLHRvdGFsOml9KSldO3MmJm8ucHVzaCgoMCx2LmgpKCJkaXYudGltZWxpbmUtYWdvIixQKHMpKSksZS5zaG93RG9ja2VkQnV0dG9uJiYhdC5kcmFnZ2luZyYmby5wdXNoKGEodGhpcykpO3ZhciByPVsoMCx2LmgpKCJkaXYudGltZWxpbmUtaGFuZGxlIiksKDAsdi5oKSgiZGl2LnRpbWVsaW5lLXNjcm9sbGVyLWNvbnRlbnQiLG8pXTtyZXR1cm4gZS5mdWxsU2NyZWVuJiYocj1bclsxXSxyWzBdXSkscn0sZHJhZzpmdW5jdGlvbihlKXt0aGlzLnN0YXRlLmRyYWdnaW5nPSEwLHRoaXMuc2VuZFdpZGdldEFjdGlvbigidXBkYXRlUGVyY2VudGFnZSIsZS5wYWdlWSl9LGRyYWdFbmQ6ZnVuY3Rpb24oZSl7dGhpcy5zdGF0ZS5kcmFnZ2luZz0hMSwkKGUudGFyZ2V0KS5pcygiYnV0dG9uIik/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJnb0JhY2siKTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImNvbW1pdCIpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtcGFkZGluZyIse3RhZ05hbWU6ImRpdi50aW1lbGluZS1wYWRkaW5nIixidWlsZEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJue3N0eWxlOiJoZWlnaHQ6ICIrZS5oZWlnaHQrInB4In19LGNsaWNrOmZ1bmN0aW9uKGUpe3RoaXMuc2VuZFdpZGdldEFjdGlvbigidXBkYXRlUGVyY2VudGFnZSIsZS5wYWdlWSksdGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJjb21taXQiKX19KSwoMCxuLmNyZWF0ZVdpZGdldCkoInRpbWVsaW5lLXNjcm9sbGFyZWEiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtc2Nyb2xsYXJlYSIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idGltZWxpbmUtc2Nyb2xsYXJlYSJ9LGJ1aWxkQXR0cmlidXRlczpmdW5jdGlvbigpe3JldHVybntzdHlsZToiaGVpZ2h0OiAiK2QoKSsicHgifX0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKGUpe3JldHVybntwZXJjZW50YWdlOnRoaXMuX3BlcmNlbnRGb3IoZS50b3BpYyxlLmVudGVyZWRJbmRleCsxKSxzY3JvbGxlZFBvc3Q6MX19LHBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLmF0dHJzLG49dGhpcy5zdGF0ZS5wZXJjZW50YWdlLGk9dC50b3BpYyxzPWkuZ2V0KCJwb3N0U3RyZWFtIiksbz1zLmdldCgiZmlsdGVyZWRQb3N0c0NvdW50Iikscj1mKE1hdGguZmxvb3IobypuKSwwLG8pKzEsYT1mKHIsMSxvKSxsPXMuY2xvc2VzdERheXNBZ29Gb3IoYSksdT12b2lkIDA7dm9pZCAwPT09bD8oZT1zLmdldCgicG9zdHMiKS5maW5kQnkoImlkIixzLmdldCgic3RyZWFtIilbYV0pKSYmKHU9bmV3IERhdGUoZS5nZXQoImNyZWF0ZWRfYXQiKSkpOm51bGwhPT1sPyh1PW5ldyBEYXRlKS5zZXREYXRlKHUuZ2V0RGF0ZSgpLWx8fDApOnU9bnVsbDt2YXIgYyxkPXtjdXJyZW50OmEsc2Nyb2xsUG9zaXRpb246cix0b3RhbDpvLGRhdGU6dSxsYXN0UmVhZDpudWxsLGxhc3RSZWFkUGVyY2VudGFnZTpudWxsfSxwPWkubGFzdF9yZWFkX3Bvc3RfaWQsbT1pLmxhc3RfcmVhZF9wb3N0X251bWJlcjtyZXR1cm4gcCYmbSYmKGM9cy5nZXQoInN0cmVhbSIpLmluZGV4T2YocCkrMSxkLmxhc3RSZWFkPWMsZC5sYXN0UmVhZFBlcmNlbnRhZ2U9dGhpcy5fcGVyY2VudEZvcihpLGMpKSx0aGlzLnN0YXRlLnBvc2l0aW9uIT09ZC5zY3JvbGxQb3NpdGlvbiYmKHRoaXMuc3RhdGUucG9zaXRpb249ZC5zY3JvbGxQb3NpdGlvbix0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInVwZGF0ZVBvc2l0aW9uIixhKSksZH0saHRtbDpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMucG9zaXRpb24oKTt0LnNjcm9sbGVkUG9zdD1uLmN1cnJlbnQ7dmFyIGk9dC5wZXJjZW50YWdlO2lmKG51bGwhPT1pKXt2YXIgcyxvPShkKCktNTApKmkscj1kKCktby01MCxhPSExLGw9MzxuLmxhc3RSZWFkJiYzPE1hdGguYWJzKG4ubGFzdFJlYWQtbi5jdXJyZW50KSYmMTxNYXRoLmFicyhuLmxhc3RSZWFkLW4udG90YWwpJiZuLmxhc3RSZWFkJiZuLmxhc3RSZWFkIT09bi50b3RhbDtsJiYoYT01MCtvLTU8KHM9TWF0aC5yb3VuZChuLmxhc3RSZWFkUGVyY2VudGFnZSpkKCkpKXx8cysyNTxvKTt2YXIgdSxjPVt0aGlzLmF0dGFjaCgidGltZWxpbmUtcGFkZGluZyIse2hlaWdodDpvfSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXNjcm9sbGVyIixfLm1lcmdlKG4se3Nob3dEb2NrZWRCdXR0b246IWUubW9iaWxlVmlldyYmbCYmIWEsZnVsbFNjcmVlbjplLmZ1bGxTY3JlZW59KSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXBhZGRpbmciLHtoZWlnaHQ6cn0pXTtyZXR1cm4gbCYmKHU9TWF0aC5yb3VuZChuLmxhc3RSZWFkUGVyY2VudGFnZSpkKCkpLGMucHVzaCh0aGlzLmF0dGFjaCgidGltZWxpbmUtbGFzdC1yZWFkIix7dG9wOnUsbGFzdFJlYWQ6bi5sYXN0UmVhZCxzaG93QnV0dG9uOmF9KSkpLGN9fSx1cGRhdGVQZXJjZW50YWdlOmZ1bmN0aW9uKGUpe3ZhciB0PSQoIi50aW1lbGluZS1zY3JvbGxhcmVhIiksbj10Lm9mZnNldCgpLnRvcCxpPWYocGFyc2VGbG9hdChlLW4pL3QuaGVpZ2h0KCkpO3RoaXMuc3RhdGUucGVyY2VudGFnZT1pfSxjb21taXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uKCk7dGhpcy5zdGF0ZS5zY3JvbGxlZFBvc3Q9ZS5jdXJyZW50LGUuY3VycmVudD09PWUuc2Nyb2xsUG9zaXRpb24/dGhpcy5zZW5kV2lkZ2V0QWN0aW9uKCJqdW1wVG9JbmRleCIsZS5jdXJyZW50KTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImp1bXBFbmQiKX0sdG9waWNDdXJyZW50UG9zdFNjcm9sbGVkOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUucGVyY2VudGFnZT1lLnBlcmNlbnR9LF9wZXJjZW50Rm9yOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXQoInBvc3RTdHJlYW0uZmlsdGVyZWRQb3N0c0NvdW50Iik7cmV0dXJuIGYocGFyc2VGbG9hdCh0LTEpL24pfSxnb0JhY2s6ZnVuY3Rpb24oKXt0aGlzLnNlbmRXaWRnZXRBY3Rpb24oImp1bXBUb0luZGV4Iix0aGlzLnBvc2l0aW9uKCkubGFzdFJlYWQpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidG9waWMtdGltZWxpbmUtY29udGFpbmVyIix7dGFnTmFtZToiZGl2LnRpbWVsaW5lLWNvbnRhaW5lciIsYnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe2lmKGUuZnVsbFNjcmVlbilyZXR1cm4gZS5hZGRTaG93Q2xhc3M/InRpbWVsaW5lLWZ1bGxzY3JlZW4gc2hvdyI6InRpbWVsaW5lLWZ1bGxzY3JlZW4iO2lmKGUuZG9ja0F0KXt2YXIgdD1bInRpbWVsaW5lLWRvY2tlZCJdO3JldHVybiBlLmRvY2tCb3R0b20mJnQucHVzaCgidGltZWxpbmUtZG9ja2VkLWJvdHRvbSIpLHQuam9pbigiICIpfX0sYnVpbGRBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe2lmKGUudG9wKXJldHVybntzdHlsZToidG9wOiAiK2UudG9wKyJweCJ9fSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmF0dGFjaCgidG9waWMtdGltZWxpbmUiLGUpfX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtY29udHJvbHMiLHt0YWdOYW1lOiJkaXYudGltZWxpbmUtY29udHJvbHMiLGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1lLmZ1bGxTY3JlZW4saT1lLmN1cnJlbnRVc2VyLHM9ZS50b3BpYztyZXR1cm4hbiYmaSYmdC5wdXNoKHRoaXMuYXR0YWNoKCJ0b3BpYy1hZG1pbi1tZW51LWJ1dHRvbiIse3RvcGljOnMsYWRkS2V5Ym9hcmRUYXJnZXRDbGFzczohMH0pKSx0fX0pLCgwLG4uY3JlYXRlV2lkZ2V0KSgidGltZWxpbmUtZm9vdGVyLWNvbnRyb2xzIix7dGFnTmFtZToiZGl2LnRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIsaHRtbDpmdW5jdGlvbihlKXt2YXIgdD1bXSxuPWUuY3VycmVudFVzZXIsaT1lLmZ1bGxTY3JlZW4scz1lLnRvcGljLG89ZS5ub3RpZmljYXRpb25MZXZlbDtyZXR1cm4gbiYmIWkmJnMuZ2V0KCJkZXRhaWxzLmNhbl9jcmVhdGVfcG9zdCIpJiZ0LnB1c2godGhpcy5hdHRhY2goImJ1dHRvbiIse2NsYXNzTmFtZToiYnRuLWRlZmF1bHQgY3JlYXRlIixpY29uOiJyZXBseSIsdGl0bGU6InRvcGljLnJlcGx5LmhlbHAiLGFjdGlvbjoicmVwbHlUb1Bvc3QifSkpLGkmJnQucHVzaCh0aGlzLmF0dGFjaCgiYnV0dG9uIix7Y2xhc3NOYW1lOiJqdW1wLXRvLXBvc3QiLHRpdGxlOiJ0b3BpYy5wcm9ncmVzcy5qdW1wX3Byb21wdF9sb25nIixsYWJlbDoidG9waWMucHJvZ3Jlc3MuanVtcF9wcm9tcHQiLGFjdGlvbjoianVtcFRvUG9zdFByb21wdCJ9KSksbiYmdC5wdXNoKG5ldyByLmRlZmF1bHQodGhpcywidG9waWMtbm90aWZpY2F0aW9ucy1idXR0b24iLHtub3RpZmljYXRpb25MZXZlbDpvLHRvcGljOnMsc2hvd0Z1bGxUaXRsZTohMSxhcHBlbmRSZWFzb246ITEscGxhY2VtZW50OiJib3R0b20tZW5kIn0sWyJub3RpZmljYXRpb25MZXZlbCJdKSksdH19KSxlLmRlZmF1bHQ9KDAsbi5jcmVhdGVXaWRnZXQpKCJ0b3BpYy10aW1lbGluZSIse3RhZ05hbWU6ImRpdi50b3BpYy10aW1lbGluZSIsYnVpbGRLZXk6ZnVuY3Rpb24oKXtyZXR1cm4idG9waWMtdGltZWxpbmUtYXJlYSJ9LGRlZmF1bHRTdGF0ZTpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjpudWxsLGV4Y2VycHQ6bnVsbH19LHVwZGF0ZVBvc2l0aW9uOmZ1bmN0aW9uKG4pe3ZhciBlLGk9dGhpczt0aGlzLmF0dHJzLmZ1bGxTY3JlZW4mJih0aGlzLnN0YXRlLnBvc2l0aW9uPW4sdGhpcy5zdGF0ZS5leGNlcnB0PSIiLGU9dGhpcy5hdHRycy50b3BpYy5nZXQoInBvc3RTdHJlYW0iKSwoMCx0LmxhdGVyKShmdW5jdGlvbigpeyFpLnN0YXRlLnBvc2l0aW9uIT09biYmZS5leGNlcnB0KG4tMSkudGhlbihmdW5jdGlvbihlKXt2YXIgdDtlJiZpLnN0YXRlLnBvc2l0aW9uPT09biYmKHQ9IiIsZS51c2VybmFtZSYmKHQ9IjxzcGFuIGNsYXNzPSd1c2VybmFtZSc+IitlLnVzZXJuYW1lKyI6PC9zcGFuPiAiKSxpLnN0YXRlLmV4Y2VycHQ9dCtlLmV4Y2VycHQsaS5zY2hlZHVsZVJlcmVuZGVyKCkpfSl9LDUwKSl9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b3BpYyxuPW5ldyBEYXRlKHQuY3JlYXRlZF9hdCksaT1lLnRvcGljLmdldCgicG9zdFN0cmVhbS5zdHJlYW0iKSxzPXRoaXMuY3VycmVudFVzZXIsbz10aGlzLnNpdGVTZXR0aW5ncyxyPW8udGFnZ2luZ19lbmFibGVkLGE9by50b3BpY19mZWF0dXJlZF9saW5rX2VuYWJsZWQ7ZS5jdXJyZW50VXNlcj1zO3ZhciBsLHUsYyxkLHAsbSxmPVtdO2UuZnVsbFNjcmVlbiYmKGw9IiIsZS5tb2JpbGVWaWV3JiYobD1uZXcgdy5kZWZhdWx0KHtodG1sOiI8c3Bhbj4iK3QuZ2V0KCJmYW5jeVRpdGxlIikrIjwvc3Bhbj4ifSkpLHU9WygwLHYuaCkoImgyIix0aGlzLmF0dGFjaCgibGluayIse2NvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGNsYXNzTmFtZToiZmFuY3ktdGl0bGUiLGFjdGlvbjoianVtcFRvcCJ9KSldLGM9W10sdC5nZXQoImlzUHJpdmF0ZU1lc3NhZ2UiKXx8KHQuY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnkmJmMucHVzaCh0aGlzLmF0dGFjaCgiY2F0ZWdvcnktbGluayIse2NhdGVnb3J5OnQuY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcnl9KSksYy5wdXNoKHRoaXMuYXR0YWNoKCJjYXRlZ29yeS1saW5rIix7Y2F0ZWdvcnk6dC5jYXRlZ29yeX0pKSksKChkPXImJnQudGFncyYmMDx0LnRhZ3MubGVuZ3RoKXx8YSkmJihwPVtdLGQmJihtPW5ldyB3LmRlZmF1bHQoe2h0bWw6KDAseC5kZWZhdWx0KSh0LHttb2RlOiJsaXN0In0pfSkscC5wdXNoKCgwLHYuaCkoImRpdi5saXN0LXRhZ3MiLG0pKSksYSYmcC5wdXNoKG5ldyB3LmRlZmF1bHQoe2h0bWw6KDAsay5kZWZhdWx0KSh0KX0pKSxjLnB1c2goKDAsdi5oKSgiZGl2LnRvcGljLWhlYWRlci1leHRyYSIscCkpKSwwPGMubGVuZ3RoJiZ1LnB1c2goKDAsdi5oKSgiZGl2LnRvcGljLWNhdGVnb3J5IixjKSksdGhpcy5zdGF0ZS5leGNlcnB0JiZ1LnB1c2gobmV3IHcuZGVmYXVsdCh7aHRtbDoiPGRpdiBjbGFzcz0ncG9zdC1leGNlcnB0Jz4iK3RoaXMuc3RhdGUuZXhjZXJwdCsiPC9kaXY+In0pKSxmLnB1c2goKDAsdi5oKSgiZGl2LnRpdGxlIix1KSkpLGYucHVzaCh0aGlzLmF0dGFjaCgidGltZWxpbmUtY29udHJvbHMiLGUpKTt2YXIgaD1pLmxlbmd0aDtpZigwIT09aCYmaDwzJiYkKCIjdG9waWMiKS5oZWlnaHQoKS8kKHdpbmRvdykuaGVpZ2h0KCk8MilyZXR1cm4gZjt2YXIgYj0oMCx5LnJlbGF0aXZlQWdlKShuZXcgRGF0ZSh0Lmxhc3RfcG9zdGVkX2F0KSx7YWRkQWdvOiEwLGRlZmF1bHRGb3JtYXQ6UH0pLGc9WygwLHYuaCkoImRpdi50aW1lbGluZS1kYXRlLXdyYXBwZXIiLHRoaXMuYXR0YWNoKCJsaW5rIix7Y2xhc3NOYW1lOiJzdGFydC1kYXRlIixyYXdMYWJlbDpQKG4pLGFjdGlvbjoianVtcFRvcCJ9KSksdGhpcy5hdHRhY2goInRpbWVsaW5lLXNjcm9sbGFyZWEiLGUpLCgwLHYuaCkoImRpdi50aW1lbGluZS1kYXRlLXdyYXBwZXIiLHRoaXMuYXR0YWNoKCJsaW5rIix7Y2xhc3NOYW1lOiJub3ctZGF0ZSIscmF3TGFiZWw6YixhY3Rpb246Imp1bXBCb3R0b20ifSkpXTtyZXR1cm4gZi5wdXNoKCgwLHYuaCkoImRpdi50aW1lbGluZS1zY3JvbGxhcmVhLXdyYXBwZXIiLGcpKSxmLnB1c2godGhpcy5hdHRhY2goInRpbWVsaW5lLWZvb3Rlci1jb250cm9scyIsZSkpLGZ9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3VzZXItbWVudSIsWyJleHBvcnRzIiwiQGVtYmVyL3J1bmxvb3AiLCJkaXNjb3Vyc2Uvd2lkZ2V0cy93aWRnZXQiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS9saWIvdXRpbGl0aWVzIl0sZnVuY3Rpb24oZSxyLHQsaSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkVXNlck1lbnVHbHlwaD1mdW5jdGlvbihlKXsoYz1jfHxbXSkucHVzaChlKX07dmFyIHM9InF1aWNrQWNjZXNzIixvPSJib29rbWFya3MiLGE9Im1lc3NhZ2VzIixsPSJub3RpZmljYXRpb25zIix1PSJwcm9maWxlIixjPXZvaWQgMDsoMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItbWVudS1saW5rcyIse3RhZ05hbWU6ImRpdi5tZW51LWxpbmtzLWhlYWRlciIscHJvZmlsZUxpbms6ZnVuY3Rpb24oKXt2YXIgZT17YWN0aW9uOnMsYWN0aW9uUGFyYW06dSxyb3V0ZToidXNlciIsbW9kZWw6dGhpcy5jdXJyZW50VXNlcixjbGFzc05hbWU6InVzZXItYWN0aXZpdHktbGluayIsaWNvbjoidXNlciIscmF3TGFiZWw6KDAsbi5mb3JtYXRVc2VybmFtZSkodGhpcy5jdXJyZW50VXNlci51c2VybmFtZSl9O3JldHVybiB0aGlzLmN1cnJlbnRVc2VyLmlzX2Fub255bW91cyYmKGUubGFiZWw9InVzZXIucHJvZmlsZSIsZS5yYXdMYWJlbD1udWxsKSxlfSxub3RpZmljYXRpb25zR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57bGFiZWw6InVzZXIubm90aWZpY2F0aW9ucyIsY2xhc3NOYW1lOiJ1c2VyLW5vdGlmaWNhdGlvbnMtbGluayIsaWNvbjoiYmVsbCIsaHJlZjp0aGlzLmF0dHJzLnBhdGgrIi9ub3RpZmljYXRpb25zIixhY3Rpb246cyxhY3Rpb25QYXJhbTpsfX0sYm9va21hcmtzR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOnMsYWN0aW9uUGFyYW06byxsYWJlbDoidXNlci5ib29rbWFya3MiLGNsYXNzTmFtZToidXNlci1ib29rbWFya3MtbGluayIsaWNvbjoiYm9va21hcmsiLGhyZWY6dGhpcy5hdHRycy5wYXRoKyIvYWN0aXZpdHkvYm9va21hcmtzIn19LG1lc3NhZ2VzR2x5cGg6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uOnMsYWN0aW9uUGFyYW06YSxsYWJlbDoidXNlci5wcml2YXRlX21lc3NhZ2VzIixjbGFzc05hbWU6InVzZXItcG1zLWxpbmsiLGljb246ImVudmVsb3BlIixocmVmOnRoaXMuYXR0cnMucGF0aCsiL21lc3NhZ2VzIn19LGxpbmtIdG1sOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlzQWN0aXZlKGUpJiYoZT10aGlzLm1hcmtBc0FjdGl2ZShlKSksdGhpcy5hdHRhY2goImxpbmsiLGUpfSxnbHlwaEh0bWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXNBY3RpdmUoZSkmJihlPXRoaXMubWFya0FzQWN0aXZlKGUpKSx0aGlzLmF0dGFjaCgibGluayIsJC5leHRlbmQoZSx7aGlkZUxhYmVsOiEwfSkpfSxodG1sOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVt0aGlzLnByb2ZpbGVMaW5rKCldLG49W107cmV0dXJuIGMmJmMuZm9yRWFjaChmdW5jdGlvbihlKXsiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZSh0KSksZSYmbi5wdXNoKGUpfSksbi5wdXNoKHRoaXMubm90aWZpY2F0aW9uc0dseXBoKCkpLG4ucHVzaCh0aGlzLmJvb2ttYXJrc0dseXBoKCkpLCh0aGlzLnNpdGVTZXR0aW5ncy5lbmFibGVfcGVyc29uYWxfbWVzc2FnZXN8fHRoaXMuY3VycmVudFVzZXIuc3RhZmYpJiZuLnB1c2godGhpcy5tZXNzYWdlc0dseXBoKCkpLCgwLGkuaCkoInVsLm1lbnUtbGlua3Mtcm93IixbZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsaS5oKSgibGkudXNlciIsdC5saW5rSHRtbChlKSl9KSwoMCxpLmgpKCJsaS5nbHlwaHMiLG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdseXBoSHRtbChlKX0pKV0pfSxtYXJrQXNBY3RpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWN0aW9uPW51bGwsZS5hY3Rpb25QYXJhbT1udWxsLGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lKz0iIGFjdGl2ZSI6ZS5jbGFzc05hbWU9ImFjdGl2ZSIsZX0saXNBY3RpdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hY3Rpb24sbj1lLmFjdGlvblBhcmFtO3JldHVybiB0PT09cyYmbj09PXRoaXMuYXR0cnMuY3VycmVudFF1aWNrQWNjZXNzfX0pLCgwLHQuY3JlYXRlV2lkZ2V0KSgidXNlci1tZW51LWRpc21pc3MtbGluayIse3RhZ05hbWU6ImRpdi5kaXNtaXNzLWxpbmsiLHRlbXBsYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIG49W107bi5wdXNoKCJcbiAgICAiKTt2YXIgaT1bXTtpLnB1c2goIlxuICAgICAgIik7dmFyIHM9W107cmV0dXJuIHMucHVzaCgiXG4gICAgICAgICIpLHMucHVzaCh0aGlzLmF0dGFjaCgibGluayIse2FjdGlvbjoiZGlzbWlzc05vdGlmaWNhdGlvbnMiLGNsYXNzTmFtZToiZGlzbWlzcyIsdGFiaW5kZXg6IjAiLGljb246ImNoZWNrIixsYWJlbDoidXNlci5kaXNtaXNzIix0aXRsZToidXNlci5kaXNtaXNzX25vdGlmaWNhdGlvbnNfdG9vbHRpcCJ9KSkscy5wdXNoKCJcbiAgICAgICIpLGkucHVzaCh2aXJ0dWFsRG9tLmgoImxpIixzKSksaS5wdXNoKCJcbiAgICAiKSxuLnB1c2godmlydHVhbERvbS5oKCJ1bCIse2NsYXNzTmFtZToibWVudS1saW5rcyJ9LGkpKSxuLnB1c2goIlxuICAiKSxufX0pLGUuZGVmYXVsdD0oMCx0LmNyZWF0ZVdpZGdldCkoInVzZXItbWVudSIse3RhZ05hbWU6ImRpdi51c2VyLW1lbnUiLGJ1aWxkS2V5OmZ1bmN0aW9uKCl7cmV0dXJuInVzZXItbWVudSJ9LHNldHRpbmdzOnttYXhXaWR0aDozMjAsc2hvd0xvZ291dEJ1dHRvbjohMH0sZGVmYXVsdFN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnRRdWlja0FjY2VzczpsLGhhc1VucmVhZDohMSxtYXJrVW5yZWFkOm51bGx9fSxwYW5lbENvbnRlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VXNlci5nZXQoInBhdGgiKSx0PXRoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzLG49W3RoaXMuYXR0YWNoKCJ1c2VyLW1lbnUtbGlua3MiLHtwYXRoOmUsY3VycmVudFF1aWNrQWNjZXNzOnR9KSx0aGlzLnF1aWNrQWNjZXNzUGFuZWwoZSldO3JldHVybiB0aGlzLnN0YXRlLmhhc1VucmVhZCYmKG4ucHVzaCgoMCxpLmgpKCJoci5ib3R0b20tYXJlYSIpKSxuLnB1c2godGhpcy5hdHRhY2goInVzZXItbWVudS1kaXNtaXNzLWxpbmsiKSkpLG59LGRpc21pc3NOb3RpZmljYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUubWFya1JlYWQoKX0saXRlbXNMb2FkZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5oYXNVbnJlYWQsbj1lLm1hcmtSZWFkO3RoaXMuc3RhdGUuaGFzVW5yZWFkPXQsdGhpcy5zdGF0ZS5tYXJrUmVhZD1ufSxodG1sOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5hdHRhY2goIm1lbnUtcGFuZWwiLHttYXhXaWR0aDp0aGlzLnNldHRpbmdzLm1heFdpZHRoLGNvbnRlbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIGUucGFuZWxDb250ZW50cygpfX0pfSxjbGlja091dHNpZGVNb2JpbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbixpLHM9dGhpcyxvPSQoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKSk7by5wYXJlbnRzKCIucGFuZWwiKS5sZW5ndGgmJiFvLmhhc0NsYXNzKCJoZWFkZXItY2xvYWsiKT90aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVVzZXJNZW51Iik6KHQ9JCh3aW5kb3cpLndpZHRoKCksKG49JCgiLm1lbnUtcGFuZWwiKSkuYWRkQ2xhc3MoImFuaW1hdGUiKSxuLmNzcygicmlnaHQiLC10KSwoaT0kKCIuaGVhZGVyLWNsb2FrIikpLmFkZENsYXNzKCJhbmltYXRlIiksaS5jc3MoIm9wYWNpdHkiLDApLCgwLHIubGF0ZXIpKGZ1bmN0aW9uKCl7cmV0dXJuIHMuc2VuZFdpZGdldEFjdGlvbigidG9nZ2xlVXNlck1lbnUiKX0sMjAwKSl9LGNsaWNrT3V0c2lkZTpmdW5jdGlvbihlKXt0aGlzLnNpdGUubW9iaWxlVmlldz90aGlzLmNsaWNrT3V0c2lkZU1vYmlsZShlKTp0aGlzLnNlbmRXaWRnZXRBY3Rpb24oInRvZ2dsZVVzZXJNZW51Iil9LHF1aWNrQWNjZXNzOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzIT09ZSYmKHRoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzPWUpfSxxdWlja0FjY2Vzc1BhbmVsOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc2V0dGluZ3Muc2hvd0xvZ291dEJ1dHRvbjtyZXR1cm4gdGhpcy5hdHRhY2goInF1aWNrLWFjY2Vzcy0iK3RoaXMuc3RhdGUuY3VycmVudFF1aWNrQWNjZXNzLHtwYXRoOmUsc2hvd0xvZ291dEJ1dHRvbjp0fSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3VzZXItbm90aWZpY2F0aW9ucy1sYXJnZSIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvd2lkZ2V0IiwidmlydHVhbC1kb20iLCJkaXNjb3Vyc2UvaGVscGVycy9ub2RlIl0sZnVuY3Rpb24oZSx0LG4saSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSwoMCx0LmNyZWF0ZVdpZGdldCkoImxhcmdlLW5vdGlmaWNhdGlvbi1pdGVtIix7YnVpbGRDbGFzc2VzOmZ1bmN0aW9uKGUpe3ZhciB0PVsiaXRlbSIsIm5vdGlmaWNhdGlvbiIsImxhcmdlLW5vdGlmaWNhdGlvbiJdO3JldHVybiBlLmdldCgicmVhZCIpfHx0LnB1c2goInVucmVhZCIpLHR9LGh0bWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zaXRlLm5vdGlmaWNhdGlvbkxvb2t1cFtlLm5vdGlmaWNhdGlvbl90eXBlXTtyZXR1cm5bdGhpcy5hdHRhY2godC5kYXNoZXJpemUoKSsiLW5vdGlmaWNhdGlvbi1pdGVtIixlLHt9LHtmYWxsYmFja1dpZGdldE5hbWU6ImRlZmF1bHQtbm90aWZpY2F0aW9uLWl0ZW0ifSksKDAsbi5oKSgic3Bhbi50aW1lIiwoMCxpLmRhdGVOb2RlKShlLmNyZWF0ZWRfYXQpKV19fSksZS5kZWZhdWx0PSgwLHQuY3JlYXRlV2lkZ2V0KSgidXNlci1ub3RpZmljYXRpb25zLWxhcmdlIix7aHRtbDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49ZS5ub3RpZmljYXRpb25zLGk9bi5maW5kQXJncy51c2VybmFtZTtyZXR1cm4gbi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudXNlcm5hbWU9aSx0LmF0dGFjaCgibGFyZ2Utbm90aWZpY2F0aW9uLWl0ZW0iLGUpfSl9fSl9KSxkZWZpbmUoImRpc2NvdXJzZS93aWRnZXRzL3dpZGdldCIsWyJleHBvcnRzIiwiZGlzY291cnNlL3dpZGdldHMvaG9va3MiLCJ2aXJ0dWFsLWRvbSIsImRpc2NvdXJzZS93aWRnZXRzL2RlY29yYXRvci1oZWxwZXIiLCJyc3ZwIiwiZGlzY291cnNlLWNvbW1vbi9jb25maWcvZW52aXJvbm1lbnQiLCJAZW1iZXIvb2JqZWN0Il0sZnVuY3Rpb24oZSxjLGQscixhLGwsdCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLGUucXVlcnlSZWdpc3RyeT1mdW5jdGlvbihlKXtyZXR1cm4gb1tlXX0sZS5kZWNvcmF0ZVdpZGdldD1mdW5jdGlvbihlLHQpe21bZV09bVtlXXx8W10sbVtlXS5wdXNoKHQpfSxlLmFwcGx5RGVjb3JhdG9ycz1mLGUucmVzZXREZWNvcmF0b3JzPWZ1bmN0aW9uKCl7T2JqZWN0LmtleXMobSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZGVsZXRlIG1bZV19KX0sZS5jaGFuZ2VTZXR0aW5nPWZ1bmN0aW9uKGUsdCxuKXtoW2VdPWhbZV18fHt9LGhbZV1bdF09bn0sZS5jcmVhdGVXaWRnZXRGcm9tPW4sZS5jcmVhdGVXaWRnZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihzLGUsdCl9LGUucmVvcGVuV2lkZ2V0PWZ1bmN0aW9uKGUsYSl7dmFyIHQ9b1tlXTtpZighdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgZmluZCB3aWRnZXQgIitlKyIgaW4gcmVnaXN0cnkiKTthLnRlbXBsYXRlJiYoYS5odG1sPWEudGVtcGxhdGUpO3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciByPXQucHJvdG90eXBlW29dO3IgaW5zdGFuY2VvZiBGdW5jdGlvbj90LnByb3RvdHlwZVtvXT1mdW5jdGlvbigpe3ZhciBpPXRoaXMsZT1PYmplY3QuY3JlYXRlKHRoaXMpO2UuX3N1cGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1BcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gci5hcHBseShpLHQpfTtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPUFycmF5KHQpLHM9MDtzPHQ7cysrKW5bc109YXJndW1lbnRzW3NdO3JldHVybiBhW29dLmFwcGx5KGUsbil9OnQucHJvdG90eXBlW29dPWFbb119KSx0fTt2YXIgdT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZnVuY3Rpb24gaShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaS5rZXksaSl9fWZ1bmN0aW9uIHAoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX12YXIgbz17fTt2YXIgbT17fTtmdW5jdGlvbiBmKGUsdCxuLGkpe3ZhciBzPW1bZS5uYW1lKyI6Iit0XXx8W107aWYocy5sZW5ndGgpe3ZhciBvPW5ldyByLmRlZmF1bHQoZSxuLGkpO3JldHVybiBzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZShvKX0pfXJldHVybltdfXZhciBoPXt9O2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPShmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9KHMsZSkscyk7ZnVuY3Rpb24gcygpe3JldHVybiBwKHRoaXMscyksZnVuY3Rpb24oZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6dH0odGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1yZXR1cm4gdCYmKG9bdF09aSksbi5uYW1lPXQsbi50ZW1wbGF0ZSYmKG4uaHRtbD1uLnRlbXBsYXRlKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBpLnByb3RvdHlwZVtlXT1uW2VdfSksaX12YXIgcz0oZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZpKGUucHJvdG90eXBlLHQpLG4mJmkoZSxuKSxlfShiLFt7a2V5OiJ0cmFuc2Zvcm0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSx7a2V5OiJkZWZhdWx0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue319fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4oMCx0LmdldCkodGhpcyxlKX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5kaXJ0eUtleXM7aWYoZSYmZS5rZXkmJmUua2V5PT09dGhpcy5rZXk/dGhpcy5zdGF0ZT1lLnN0YXRlOnRoaXMuc3RhdGU9dGhpcy5kZWZhdWx0U3RhdGUodGhpcy5hdHRycyx0aGlzLnN0YXRlKSx0aGlzLm1lcmdlU3RhdGUmJih0aGlzLnN0YXRlPV8ubWVyZ2UodGhpcy5zdGF0ZSx0aGlzLm1lcmdlU3RhdGUpKSxlKXt2YXIgbj10Lm9wdGlvbnNGb3IoZS5rZXkpO2lmKGUuc2hhZG93VHJlZSYmKHRoaXMuc2hhZG93VHJlZT0hMCwhbi5kaXJ0eSYmIXQuYWxsRGlydHkoKSkpcmV0dXJuIGUudm5vZGU7ZS5rZXkmJnQucmVuZGVyZWRLZXkoZS5rZXkpO3ZhciBpPW4ub25SZWZyZXNoO2kmJnRoaXMuc2VuZFdpZGdldEFjdGlvbihpLG4ucmVmcmVzaEFyZyl9cmV0dXJuIHRoaXMuZHJhdyhkLmgsdGhpcy5hdHRycyx0aGlzLnN0YXRlKX19LHtrZXk6Il9maW5kQW5jZXN0b3JXaXRoUHJvcGVydHkiLHZhbHVlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzO3Q7KXtpZih0W2VdKXJldHVybiB0O3Q9dC5wYXJlbnRXaWRnZXR9fX0se2tleToiX2ZpbmRWaWV3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ZpbmRBbmNlc3RvcldpdGhQcm9wZXJ0eSgiX2VtYmVyVmlldyIpO2lmKGUpcmV0dXJuIGUuX2VtYmVyVmlld319LHtrZXk6Imxvb2t1cFdpZGdldENsYXNzIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1vW2VdO3JldHVybiB0fHwodGhpcy5yZWdpc3Rlcj8odD10aGlzLnJlZ2lzdGVyLmxvb2t1cEZhY3RvcnkoIndpZGdldDoiK2UpKSYmdC5jbGFzcz90LmNsYXNzOm51bGw6KGNvbnNvbGUuZXJyb3IoImNvdWxkbid0IGZpbmQgcmVnaXN0ZXIiKSxudWxsKSl9fSx7a2V5OiJhdHRhY2giLHZhbHVlOmZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBzPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09aT9pOnt9LG89dGhpcy5sb29rdXBXaWRnZXRDbGFzcyhlKTtpZighbyYmcy5mYWxsYmFja1dpZGdldE5hbWUmJihvPXRoaXMubG9va3VwV2lkZ2V0Q2xhc3Mocy5mYWxsYmFja1dpZGdldE5hbWUpKSxvKXt2YXIgcj1uZXcgbyh0LHRoaXMucmVnaXN0ZXIsbik7cmV0dXJuIHIucGFyZW50V2lkZ2V0PXRoaXMsci5kaXJ0eUtleXM9dGhpcy5kaXJ0eUtleXMscn10aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgIitlKyIgb3IgZmFsbGJhY2sgIitzLmZhbGxiYWNrV2lkZ2V0TmFtZSl9fSx7a2V5OiJzY2hlZHVsZVJlcmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzO2U7KXtlLnNoYWRvd1RyZWUmJnRoaXMuZGlydHlLZXlzLmtleURpcnR5KGUua2V5KTt2YXIgdD1lLl9yZXJlbmRlcmFibGU7aWYodClyZXR1cm4gdC5xdWV1ZVJlcmVuZGVyKCk7ZT1lLnBhcmVudFdpZGdldH19fSx7a2V5OiJfc2VuZENvbXBvbmVudEFjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDAsaT10aGlzLl9maW5kVmlldygpO2lmKGkpe3ZhciBzLG89aS5nZXQoZSk7aWYoIW8pcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKGUrIiBub3QgZm91bmQiKTsic3RyaW5nIj09dHlwZW9mIG8/KGlbb10odCksbj1hLlByb21pc2UucmVzb2x2ZSgpKToocz1pLmdldCgidGFyZ2V0Iil8fGksKG49by5jYWxsKHMsdCkpJiZuLnRoZW58fChuPWEuUHJvbWlzZS5yZXNvbHZlKG4pKSl9cmV0dXJuIHRoaXMucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfX0se2tleToiZmluZEFuY2VzdG9yTW9kZWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZmluZEFuY2VzdG9yV2l0aFByb3BlcnR5KCJtb2RlbCIpO2lmKGUpcmV0dXJuIGUubW9kZWx9fSx7a2V5OiJyZXJlbmRlclJlc3VsdCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnNjaGVkdWxlUmVyZW5kZXIoKTt2YXIgbj1lKCk7cmV0dXJuIG4mJm4udGhlbj9uLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2hlZHVsZVJlcmVuZGVyKCl9KTpufX0se2tleToic2VuZFdpZGdldEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMsaT1lKyJFdmVudCI7cmV0dXJuIHRoaXMucmVyZW5kZXJSZXN1bHQoZnVuY3Rpb24oKXt2YXIgZT1uLl9maW5kQW5jZXN0b3JXaXRoUHJvcGVydHkoaSk7aWYoZSlyZXR1cm4gZVtpXSh0KX0pfX0se2tleToic2VuZFdpZGdldEFjdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCxuKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLnJlcmVuZGVyUmVzdWx0KGZ1bmN0aW9uKCl7dmFyIGU9aS5fZmluZEFuY2VzdG9yV2l0aFByb3BlcnR5KHQpO3JldHVybiBlP2VbdF0uY2FsbChlLG4pOmkuX3NlbmRDb21wb25lbnRBY3Rpb24odCxufHxpLmZpbmRBbmNlc3Rvck1vZGVsKCkpfSl9fSx7a2V5OiJodG1sIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgaSxzLG89e307dGhpcy5idWlsZENsYXNzZXMmJihpPXRoaXMuYnVpbGRDbGFzc2VzKHQsbil8fFtdLEFycmF5LmlzQXJyYXkoaSl8fChpPVtpXSksKHM9Zih0aGlzLCJjbGFzc05hbWVzIix0LG4pKSYmcy5sZW5ndGgmJihpPWkuY29uY2F0KHMpKSxpLmxlbmd0aCYmKG8uY2xhc3NOYW1lPWkuam9pbigiICIpKSksdGhpcy5idWlsZElkJiYoby5pZD10aGlzLmJ1aWxkSWQodCkpLHRoaXMuYnVpbGRBdHRyaWJ1dGVzJiYoby5hdHRyaWJ1dGVzPXRoaXMuYnVpbGRBdHRyaWJ1dGVzKHQpKSx0aGlzLmtleVVwJiYob1sid2lkZ2V0LWtleS11cCJdPW5ldyBjLldpZGdldEtleVVwSG9vayh0aGlzKSksdGhpcy5rZXlEb3duJiYob1sid2lkZ2V0LWtleS1kb3duIl09bmV3IGMuV2lkZ2V0S2V5RG93bkhvb2sodGhpcykpLHRoaXMuY2xpY2tPdXRzaWRlJiYob1sid2lkZ2V0LWNsaWNrLW91dHNpZGUiXT1uZXcgYy5XaWRnZXRDbGlja091dHNpZGVIb29rKHRoaXMpKSx0aGlzLmNsaWNrJiYob1sid2lkZ2V0LWNsaWNrIl09bmV3IGMuV2lkZ2V0Q2xpY2tIb29rKHRoaXMpKSx0aGlzLmRvdWJsZUNsaWNrJiYob1sid2lkZ2V0LWRvdWJsZS1jbGljayJdPW5ldyBjLldpZGdldERvdWJsZUNsaWNrSG9vayh0aGlzKSksdGhpcy5tb3VzZURvd25PdXRzaWRlJiYob1sid2lkZ2V0LW1vdXNlLWRvd24tb3V0c2lkZSJdPW5ldyBjLldpZGdldE1vdXNlRG93bk91dHNpZGVIb29rKHRoaXMpKSx0aGlzLmRyYWcmJihvWyJ3aWRnZXQtZHJhZyJdPW5ldyBjLldpZGdldERyYWdIb29rKHRoaXMpKSx0aGlzLmlucHV0JiYob1sid2lkZ2V0LWlucHV0Il09bmV3IGMuV2lkZ2V0SW5wdXRIb29rKHRoaXMpKSx0aGlzLmNoYW5nZSYmKG9bIndpZGdldC1jaGFuZ2UiXT1uZXcgYy5XaWRnZXRDaGFuZ2VIb29rKHRoaXMpKSx0aGlzLm1vdXNlRG93biYmKG9bIndpZGdldC1tb3VzZS1kb3duIl09bmV3IGMuV2lkZ2V0TW91c2VEb3duSG9vayh0aGlzKSksdGhpcy5tb3VzZVVwJiYob1sid2lkZ2V0LW1vdXNlLXVwIl09bmV3IGMuV2lkZ2V0TW91c2VVcEhvb2sodGhpcykpLHRoaXMubW91c2VNb3ZlJiYob1sid2lkZ2V0LW1vdXNlLW1vdmUiXT1uZXcgYy5XaWRnZXRNb3VzZU1vdmVIb29rKHRoaXMpKTt2YXIgcj1vLmF0dHJpYnV0ZXN8fHt9O28uYXR0cmlidXRlcz1yLHRoaXMudGl0bGUmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy50aXRsZT9yLnRpdGxlPXRoaXMudGl0bGUodCxuKTpyLnRpdGxlPUkxOG4udCh0aGlzLnRpdGxlKSksdGhpcy50cmFuc2Zvcm1lZD10aGlzLnRyYW5zZm9ybSh0aGlzLmF0dHJzLHRoaXMuc3RhdGUpO3ZhciBhLGwsdT10aGlzLmh0bWwodCxuKTtyZXR1cm4gdGhpcy5uYW1lJiYoYT1mKHRoaXMsImJlZm9yZSIsdCxuKXx8W10sbD1mKHRoaXMsImFmdGVyIix0LG4pfHxbXSx1PWEuY29uY2F0KHUpLmNvbmNhdChsKSksKDAsZC5oKSh0aGlzLnRhZ05hbWV8fCJkaXYiLG8sdSl9fV0pLGIpO2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciBpLHM9dGhpcztpZihwKHRoaXMsYiksbj1ufHx7fSx0aGlzLmF0dHJzPWV8fHt9LHRoaXMubWVyZ2VTdGF0ZT1uLnN0YXRlLHRoaXMubW9kZWw9bi5tb2RlbCx0aGlzLnJlZ2lzdGVyPXQsdGhpcy5kaXJ0eUtleXM9bi5kaXJ0eUtleXMsdC5kZXByZWNhdGVDb250YWluZXIodGhpcyksdGhpcy5rZXk9dGhpcy5idWlsZEtleT90aGlzLmJ1aWxkS2V5KGUpOm51bGwsdGhpcy5zaXRlPXQubG9va3VwKCJzaXRlOm1haW4iKSx0aGlzLnNpdGVTZXR0aW5ncz10Lmxvb2t1cCgic2l0ZS1zZXR0aW5nczptYWluIiksdGhpcy5jdXJyZW50VXNlcj10Lmxvb2t1cCgiY3VycmVudC11c2VyOm1haW4iKSx0aGlzLmNhcGFiaWxpdGllcz10Lmxvb2t1cCgiY2FwYWJpbGl0aWVzOm1haW4iKSx0aGlzLnN0b3JlPXQubG9va3VwKCJzZXJ2aWNlOnN0b3JlIiksdGhpcy5hcHBFdmVudHM9dC5sb29rdXAoInNlcnZpY2U6YXBwLWV2ZW50cyIpLHRoaXMua2V5VmFsdWVTdG9yZT10Lmxvb2t1cCgia2V5LXZhbHVlLXN0b3JlOm1haW4iKSx0aGlzLmluaXQodGhpcy5hdHRycyksImRldmVsb3BtZW50Ij09PURpc2NvdXJzZS5FbnZpcm9ubWVudHx8InRlc3QiPT09bC5kZWZhdWx0LmVudmlyb25tZW50KXt2YXIgbz10aGlzLmRlZmF1bHRTdGF0ZShlKTtpZigib2JqZWN0IiE9PSh2b2lkIDA9PT1vPyJ1bmRlZmluZWQiOnUobykpKXRocm93IG5ldyBFcnJvcigiZGVmYXVsdFN0YXRlIG11c3QgcmV0dXJuIGFuIG9iamVjdCIpO2lmKDA8T2JqZWN0LmtleXMobykubGVuZ3RoJiYhdGhpcy5rZXkpdGhyb3cgbmV3IEVycm9yKCJ5b3UgbmVlZCBhIGtleSB3aGVuIHVzaW5nIHN0YXRlIGluICIrdGhpcy5uYW1lKX0hdGhpcy5uYW1lfHwoaT1oW3RoaXMubmFtZV0pJiZPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnNldHRpbmdzW2VdPWlbZV19KX0oZS5kZWZhdWx0PXMpLnByb3RvdHlwZS50eXBlPSJUaHVuayJ9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9L2Fzc2V0cy9hcHBsaWNhdGlvbi05YWQxNWJmOThjOGU3MzRiODQyN2UxMzQ3YzE3ZGQ5NmJiN2ZiZDk5ZmFlZjI0ZTg2NDZhYTc1YmQzYTVkNmExLmpzLm1hcA==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 195,
          "bodySize": 447347,
          "_transferSize": 447542
        },
        "cache": {},
        "timings": {
          "blocked": 2346.9259999940077,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.0860000000002401,
          "wait": 211.4959999933335,
          "receive": 19238.01800000365,
          "_blocked_queueing": 6.5159999940078706
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739969"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 2753.3040000125766,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 735,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:44 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000403"
            },
            {
              "name": "Content-Length",
              "value": "1127"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2133,
            "mimeType": "application/javascript",
            "compression": 1006,
            "text": "!function(e,i){var t=function(e){var t,i=e.createElement(\"details\");if(!(\"open\"in i))return!1;var n,s=e.body||(n=e.documentElement,t=!0,n.insertBefore(e.createElement(\"body\"),n.firstElementChild||n.firstChild));i.innerHTML=\"<summary>a</summary>b\",i.style.display=\"block\",s.appendChild(i);var o=i.offsetHeight;return i.open=!0,o=o!==i.offsetHeight,s.removeChild(i),t&&s.parentNode.removeChild(s),o}(e);function n(e){e.toggleClass(\"open\")}i.fn.details=function(){return t?this:this.each(function(){var t=i(this),e=i(\"summary\",t).first();e.prop(\"tabIndex\",0),e.on(\"keydown\",function(e){if(32===e.keyCode||13===e.keyCode)return n(t),!1}),e.on(\"click\",function(){e.focus(),n(t)})})}}(document,jQuery),define(\"discourse/plugins/discourse-details/initializers/apply-details\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,t){\"use strict\";function i(e){e.decorateCooked(function(e){return $(\"details\",e).details()},{id:\"discourse-details\"}),e.addToolbarPopupMenuOptionsCallback(function(){return{action:\"insertDetails\",icon:\"caret-right\",label:\"details.title\"}}),e.modifyClass(\"controller:composer\",{actions:{insertDetails:function(){this.toolbarEvent.applySurround('\\n[details=\"'+I18n.t(\"composer.details_title\")+'\"]\\n',\"\\n[/details]\\n\",\"details_text\",{multiline:!1})}}})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"apply-details\",initialize:function(){(0,t.withPluginApi)(\"0.8.7\",i)}}}),define(\"discourse/plugins/discourse-details/lib/discourse-markdown/details\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.setup=function(e){e.whiteList([\"summary\",\"summary[title]\",\"details\",\"details[open]\",\"details.elided\"]),e.registerPlugin(function(e){e.block.bbcode.ruler.push(\"details\",t)})};var t={tag:\"details\",before:function(e,t){var i=t.attrs;e.push(\"bbcode_open\",\"details\",1),e.push(\"bbcode_open\",\"summary\",1),e.push(\"text\",\"\",0).content=i._default||\"\",e.push(\"bbcode_close\",\"summary\",-1)},after:function(e){e.push(\"bbcode_close\",\"details\",-1)}}});\n//# sourceMappingURL=/assets/plugins/discourse-details-a0eaecee5c192d6eda793b1c7a5f5e31c14360b171a1718d76eb4eef66f1ee9f.js.map"
          },
          "redirectURL": "",
          "headersSize": 193,
          "bodySize": 1127,
          "_transferSize": 1320
        },
        "cache": {},
        "timings": {
          "blocked": 2537.6000000029353,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.2630000000003747,
          "wait": 214.74100000549652,
          "receive": 0.7000000041443855,
          "_blocked_queueing": 6.177000002935529
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.624Z",
        "time": 2756.3710000249557,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 745,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:44 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000241"
            },
            {
              "name": "Content-Length",
              "value": "539"
            }
          ],
          "cookies": [],
          "content": {
            "size": 770,
            "mimeType": "application/javascript",
            "compression": 231,
            "text": "define(\"discourse/plugins/discourse-internet-explorer/initializers/discourse-internet-explorer\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,i){\"use strict\";function n(e){e.container.lookup(\"site-settings:main\").discourse_internet_explorer_deprecation_warning&&e.container.lookup(\"capabilities:main\").isIE11&&e.addGlobalNotice(I18n.t(\"discourse_internet_explorer.deprecation_warning\"),\"deprecate-internet-explorer\",{dismissable:!0,dismissDuration:moment.duration(1,\"week\")})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"discourse-internet-explorer\",initialize:function(){(0,i.withPluginApi)(\"0.8.37\",n)}}});\n//# sourceMappingURL=/assets/plugins/discourse-internet-explorer-94a59cc54d7dfa189c6c0b90fe30742d2f65258346dab716d04b90339e81cfe0.js.map"
          },
          "redirectURL": "",
          "headersSize": 192,
          "bodySize": 539,
          "_transferSize": 731
        },
        "cache": {},
        "timings": {
          "blocked": 2562.0030000006554,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.23700000000008004,
          "wait": 193.49999999258307,
          "receive": 0.6310000317171216,
          "_blocked_queueing": 5.504000000655651
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.625Z",
        "time": 2959.446000022581,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 739,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:45 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000340"
            },
            {
              "name": "Content-Length",
              "value": "6978"
            }
          ],
          "cookies": [],
          "content": {
            "size": 25632,
            "mimeType": "application/javascript",
            "compression": 18654,
            "text": "!function(p){var v='\\n    <span>\\n      <svg class=\"fa d-icon d-icon-globe-americas svg-icon\" xmlns=\"http://www.w3.org/2000/svg\">\\n        <use xlink:href=\"#globe-americas\"></use>\\n      </svg>\\n      <span class=\"relative-time\"></span>\\n    </span>\\n  ',g=\"\\n    <div class='preview'>\\n      <span class='timezone'></span>\\n      <span class='date-time'></span>\\n    </div>\\n  \";function h(e,t){var n=1<arguments.length&&void 0!==t?t:{};clearTimeout(this.timeout);var a,o,r=moment().utc(),i=n.time?n.date+\" \"+n.time:n.date,s=void 0,s=n.time?n.displayedTimezone||moment.tz.guess():n.displayedTimezone||n.timezone||moment.tz.guess(),l=void 0;(l=n.timezone?(a=i,o=n.timezone,moment.tz(a,o).utc()):moment.utc(i))<r&&(n.recurring?l=function(e,t){var n=t.recurring,a=t.timezone,o=n.split(\".\"),r=parseInt(o[0],10),i=o[1],s=moment().diff(e,i),l=Math.ceil(s+r),m=moment(e.format()).isDST(),c=moment(e).add(l,i),u=moment(c.format()).isDST(),d=moment.tz({month:0,day:1},a||\"Etc/UTC\").utcOffset(),f=moment.tz({month:5,day:1},a||\"Etc/UTC\").utcOffset();!m&&u&&c.add(-f+d,\"minutes\");m&&!u&&c.add(f-d,\"minutes\");return c}(l,n):e.addClass(\"past\"));var m=l.tz(s),c=function(t,n,a){var o=[],r=moment.tz.guess(),e=a.timezones.filter(function(e){return!y(e,r)&&!y(e,a.timezone)});o.push({timezone:r,current:!0,dateTime:a.time?moment(t).tz(r).format(\"LLL\"):w(t,r)}),a.timezone&&n===r&&a.timezone!==n&&!y(n,a.timezone)&&e.unshift(a.timezone);Array.from(new Set(e.filter(Boolean))).forEach(function(e){y(e,n)||(y(e,r)&&(e=r),o.push({timezone:e,dateTime:a.time?moment(t).tz(e).format(\"LLL\"):w(t,e)}))}),o.length||o.push({timezone:\"Etc/UTC\",dateTime:a.time?moment(t).tz(\"Etc/UTC\").format(\"LLL\"):w(t,\"Etc/UTC\")});return _.uniq(o,\"timezone\")}(m.clone(),s,n),u=c.map(function(e){var t=b(e.timezone);return e.dateTime.match(/TZ/)?e.dateTime.replace(/TZ/,t):t+\" \"+e.dateTime}).join(\", \"),d=c.map(function(e){var t=p(g);return e.current&&t.addClass(\"current\"),t.find(\".timezone\").text(b(e.timezone)),t.find(\".date-time\").text(e.dateTime),t[0].outerHTML}).join(\"\"),f=function(e,t,n){if(n.countdown){var a=e.diff(moment());return a<0?I18n.t(\"discourse_local_dates.relative_dates.countdown.passed\"):moment.duration(a).humanize()}var o=y(t,moment.tz.guess()),r=e.isBetween(moment().subtract(2,\"days\"),moment().add(1,\"days\").endOf(\"day\"));e=n.calendar&&r?o?n.time?e.calendar(null,T(n.time)):e.calendar(null,T(null)):(e=(e=e.format(n.format)).replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\":n.time?(e=e.format(n.format),n.displayedTimezone&&!o?(e=e.replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\":e.replace(\"TZ\",z(t).join(\": \"))):(e=e.format(n.format),o?e.replace(\"TZ\",b(t)):(e=e.replace(\"TZ\",\"\"))+\" (\"+b(t)+\")\");return e}(m,s,n);e.html(v).attr(\"aria-label\",u).attr(\"data-html-tooltip\",'<div class=\"locale-dates-previews\">'+d+\"</div>\").addClass(\"cooked-date\").find(\".relative-time\").text(f),this.timeout=setTimeout(function(){return h(e,n)},6e4)}function z(e){return e.replace(\"_\",\" \").replace(\"Etc/\",\"\").split(\"/\")}function b(e){var t=z(e);return t[1]||t[0]}function t(e,t){var n=I18n.t(\"discourse_local_dates.relative_dates.\"+t,{time:\"LT\"});return e?n.split(\"LT\").map(function(e){return\"[\"+e+\"]\"}).join(\"LT\"):\"[\"+n.replace(\" LT\",\"\")+\"]\"}function T(e){return{sameDay:t(e,\"today\"),nextDay:t(e,\"tomorrow\"),lastDay:t(e,\"yesterday\"),sameElse:\"L\"}}function y(e,t){return!!(!e&&!t||e&&t)&&(!(!e.includes(t)&&!t.includes(e))||moment.tz(e).utcOffset()===moment.tz(t).utcOffset())}function w(e,t){var n=moment(e).tz(t);return[n.format(\"LLL\"),\"→\",n.add(24,\"hours\").format(\"LLL\")].join(\" \")}p.fn.applyLocalDates=function(){return this.each(function(){var e=p(this),t={};t.time=e.attr(\"data-time\"),t.date=e.attr(\"data-date\"),t.recurring=e.attr(\"data-recurring\"),t.timezones=(e.attr(\"data-timezones\")||Discourse.SiteSettings.discourse_local_dates_default_timezones||\"Etc/UTC\").split(\"|\"),t.timezone=e.attr(\"data-timezone\"),t.calendar=\"on\"===(e.attr(\"data-calendar\")||\"on\"),t.displayedTimezone=e.attr(\"data-displayed-timezone\"),t.format=e.attr(\"data-format\")||(t.time?\"LLL\":\"LL\"),t.countdown=e.attr(\"data-countdown\"),h(e,t)})}}(jQuery),define(\"discourse/plugins/discourse-local-dates/discourse/components/discourse-local-dates-create-form\",[\"exports\",\"@ember/utils\",\"@ember/runloop\",\"@ember/component\",\"discourse/lib/computed\",\"discourse/lib/load-script\",\"discourse-common/utils/decorators\",\"discourse/lib/text\",\"discourse/lib/debounce\"],function(e,n,a,t,o,r,i,s,l){\"use strict\";function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(n,a,e,t,o){var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,(\"value\"in r||r.initializer)&&(r.writable=!0),r=e.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},r),o&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(o):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(n,a,r),r=null),r}var u,d,f,p,v,g,h,z,_,b,T,y,w,D,k,L;Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=t.default.extend((u=(0,i.observes)(\"markup\"),d=(0,i.default)(\"date\",\"toDate\",\"toTime\"),f=(0,i.default)(\"computedConfig\",\"isRange\"),p=(0,i.default)(\"date\",\"time\",\"isRange\",\"options.{format,timezone}\"),v=(0,i.default)(\"toDate\",\"toTime\",\"isRange\",\"options.{timezone,format}\"),g=(0,i.default)(\"recurring\",\"timezones\",\"timezone\",\"format\"),h=(0,i.default)(\"fromConfig.{date}\",\"toConfig.{date}\",\"options.{recurring,timezones,timezone,format}\"),z=(0,i.default)(\"currentUserTimezone\"),_=(0,i.default)(\"formats\"),b=(0,i.default)(\"advancedMode\"),T=(0,i.default)(\"computedConfig.{from,to,options}\",\"options\",\"isValid\",\"isRange\"),y=(0,i.default)(\"fromConfig.dateTime\"),w=(0,i.default)(\"toConfig.dateTime\",\"toSelected\"),m(L={timeFormat:\"HH:mm:ss\",dateFormat:\"YYYY-MM-DD\",dateTimeFormat:\"YYYY-MM-DD HH:mm:ss\",date:null,toDate:null,time:null,toTime:null,format:null,formats:null,recurring:null,advancedMode:!1,isValid:!0,timezone:null,fromSelected:null,fromFilled:Ember.computed.notEmpty(\"date\"),toSelected:null,toFilled:Ember.computed.notEmpty(\"toDate\"),init:function(){this._super.apply(this,arguments),this._picker=null,this.setProperties({timezones:[],formats:(this.siteSettings.discourse_local_dates_default_formats||\"\").split(\"|\").filter(function(e){return e}),timezone:moment.tz.guess(),date:moment().format(this.dateFormat)})},didInsertElement:function(){var t=this;this._super.apply(this,arguments),this._setupPicker().then(function(e){t._picker=e,t.send(\"focusFrom\")})},_renderPreview:(0,l.default)(function(){var t=this,e=this.markup;e&&(0,s.cookAsync)(e).then(function(e){t.set(\"currentPreview\",e),(0,a.schedule)(\"afterRender\",function(){return t.$(\".preview .discourse-local-date\").applyLocalDates()})})},250),isRange:function(e,t,n){return e&&(t||n)}},\"isValid\",function(e,t){var n=e.from;if(!e.from.dateTime||!e.from.dateTime.isValid())return!1;if(t){var a=e.to;if(!a.dateTime||!a.dateTime.isValid()||a.dateTime.diff(n.dateTime)<0)return!1}return!0}),m(L,\"fromConfig\",function(e,t,n,a){var o=3<arguments.length&&void 0!==a?a:{},r=!t,i=void 0,i=r?moment.tz(e,o.timezone):moment.tz(e+\" \"+t,o.timezone);r||(t=i.format(this.timeFormat));var s=o.format;return r&&this.formats.includes(s)&&(s=\"LL\"),Ember.Object.create({date:i.format(this.dateFormat),time:t,dateTime:i,format:s,range:!!n&&\"start\"})}),m(L,\"toConfig\",function(e,t,n,a){var o=3<arguments.length&&void 0!==a?a:{},r=!t;t&&!e&&(e=moment().format(this.dateFormat));var i=void 0,i=r?moment.tz(e,o.timezone).endOf(\"day\"):moment.tz(e+\" \"+t,o.timezone);r||(t=i.format(this.timeFormat));var s=o.format;return r&&this.formats.includes(s)&&(s=\"LL\"),Ember.Object.create({date:i.format(this.dateFormat),time:t,dateTime:i,format:s,range:!!n&&\"end\"})}),m(L,\"options\",function(e,t,n,a){return Ember.Object.create({recurring:e,timezones:t,timezone:n,format:a})}),m(L,\"computedConfig\",function(e,t,n){return Ember.Object.create({from:e,to:t,options:n})}),m(L,\"currentUserTimezone\",function(){return moment.tz.guess()}),m(L,\"allTimezones\",function(){return moment.tz.names()}),m(L,\"timezoneIsDifferentFromUserTimezone\",(0,o.propertyNotEqual)(\"currentUserTimezone\",\"options.timezone\")),m(L,\"formatedCurrentUserTimezone\",function(e){return e.replace(\"_\",\" \").replace(\"Etc/\",\"\").split(\"/\")}),m(L,\"previewedFormats\",function(e){return e.map(function(e){return{format:e,preview:moment().format(e)}})}),m(L,\"recurringOptions\",function(){var e=\"discourse_local_dates.create.form.recurring\";return[{name:I18n.t(e+\".every_day\"),id:\"1.days\"},{name:I18n.t(e+\".every_week\"),id:\"1.weeks\"},{name:I18n.t(e+\".every_two_weeks\"),id:\"2.weeks\"},{name:I18n.t(e+\".every_month\"),id:\"1.months\"},{name:I18n.t(e+\".every_two_months\"),id:\"2.months\"},{name:I18n.t(e+\".every_three_months\"),id:\"3.months\"},{name:I18n.t(e+\".every_six_months\"),id:\"6.months\"},{name:I18n.t(e+\".every_year\"),id:\"1.years\"}]}),m(L,\"_generateDateMarkup\",function(e,t,n){var a=\"[date=\"+e.date;return e.time&&(a+=\" time=\"+e.time),e.format&&e.format.length&&(a+=' format=\"'+e.format+'\"'),t.timezone&&(a+=' timezone=\"'+t.timezone+'\"'),t.timezones&&t.timezones.length&&(a+=' timezones=\"'+t.timezones.join(\"|\")+'\"'),t.recurring&&!n&&(a+=' recurring=\"'+t.recurring+'\"'),a+=\"]\"}),m(L,\"toggleModeBtnLabel\",function(e){return e?\"discourse_local_dates.create.form.simple_mode\":\"discourse_local_dates.create.form.advanced_mode\"}),m(L,\"markup\",function(e,t,n,a){var o=void 0;return n&&e.from&&(o=this._generateDateMarkup(e.from,t,a),e.to&&e.to.range&&(o+=\" → \",o+=this._generateDateMarkup(e.to,t,a))),o}),m(L,\"formattedFrom\",function(e){return e.format(\"LLLL\")}),m(L,\"formattedTo\",function(e,t){var n=t?\"&nbsp;\":I18n.t(\"discourse_local_dates.create.form.until\");return e.isValid()?e.format(\"LLLL\"):n}),m(L,\"actions\",{setTime:function(e){this._setTimeIfValid(e.target.value,\"time\")},setToTime:function(e){this._setTimeIfValid(e.target.value,\"toTime\")},eraseToDateTime:function(){this.setProperties({toDate:null,toTime:null}),this._setPickerDate(null)},focusFrom:function(){this.setProperties({fromSelected:!0,toSelected:!1}),this._setPickerDate(this.get(\"fromConfig.date\")),this._setPickerMinDate(null)},focusTo:function(){this.setProperties({toSelected:!0,fromSelected:!1}),this._setPickerDate(this.get(\"toConfig.date\")),this._setPickerMinDate(this.get(\"fromConfig.date\"))},advancedMode:function(){this.toggleProperty(\"advancedMode\")},save:function(){var e=this.markup;e&&(this._closeModal(),this.toolbarEvent.addText(e))},cancel:function(){this._closeModal()}}),m(L,\"_setTimeIfValid\",function(e,t){(0,n.isEmpty)(e)?this.set(t,null):/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/.test(e)&&this.set(t,e)}),m(L,\"_setupPicker\",function(){var n=this;return new Ember.RSVP.Promise(function(t){(0,r.default)(\"/javascripts/pikaday.js\").then(function(){var e={field:n.$(\".fake-input\")[0],container:n.$(\"#picker-container-\"+n.elementId)[0],bound:!1,format:\"YYYY-MM-DD\",reposition:!1,firstDay:1,setDefaultDate:!0,keyboardInput:!1,i18n:{previousMonth:I18n.t(\"dates.previous_month\"),nextMonth:I18n.t(\"dates.next_month\"),months:moment.months(),weekdays:moment.weekdays(),weekdaysShort:moment.weekdaysMin()},onSelect:function(e){var t=moment(e).format(\"YYYY-MM-DD\");n.fromSelected&&n.set(\"date\",t),n.toSelected&&n.set(\"toDate\",t)}};t(new Pikaday(e))})})}),m(L,\"_setPickerMinDate\",function(e){var t=this;e&&!moment(e,this.dateFormat).isValid()&&(e=null),(0,a.schedule)(\"afterRender\",function(){t._picker.setMinDate(moment(e,t.dateFormat).toDate())})}),m(L,\"_setPickerDate\",function(e){var t=this;e&&!moment(e,this.dateFormat).isValid()&&(e=null),(0,a.schedule)(\"afterRender\",function(){t._picker.setDate(moment.utc(e),!0)})}),m(L,\"_closeModal\",function(){Discourse.__container__.lookup(\"controller:composer\").send(\"closeModal\")}),c(D=L,\"_renderPreview\",[u],(k=(k=Object.getOwnPropertyDescriptor(D,\"_renderPreview\"))?k.value:void 0,{enumerable:!0,configurable:!0,writable:!0,initializer:function(){return k}}),D),c(D,\"isRange\",[d],Object.getOwnPropertyDescriptor(D,\"isRange\"),D),c(D,\"isValid\",[f],Object.getOwnPropertyDescriptor(D,\"isValid\"),D),c(D,\"fromConfig\",[p],Object.getOwnPropertyDescriptor(D,\"fromConfig\"),D),c(D,\"toConfig\",[v],Object.getOwnPropertyDescriptor(D,\"toConfig\"),D),c(D,\"options\",[g],Object.getOwnPropertyDescriptor(D,\"options\"),D),c(D,\"computedConfig\",[h],Object.getOwnPropertyDescriptor(D,\"computedConfig\"),D),c(D,\"currentUserTimezone\",[i.default],Object.getOwnPropertyDescriptor(D,\"currentUserTimezone\"),D),c(D,\"allTimezones\",[i.default],Object.getOwnPropertyDescriptor(D,\"allTimezones\"),D),c(D,\"formatedCurrentUserTimezone\",[z],Object.getOwnPropertyDescriptor(D,\"formatedCurrentUserTimezone\"),D),c(D,\"previewedFormats\",[_],Object.getOwnPropertyDescriptor(D,\"previewedFormats\"),D),c(D,\"recurringOptions\",[i.default],Object.getOwnPropertyDescriptor(D,\"recurringOptions\"),D),c(D,\"toggleModeBtnLabel\",[b],Object.getOwnPropertyDescriptor(D,\"toggleModeBtnLabel\"),D),c(D,\"markup\",[T],Object.getOwnPropertyDescriptor(D,\"markup\"),D),c(D,\"formattedFrom\",[y],Object.getOwnPropertyDescriptor(D,\"formattedFrom\"),D),c(D,\"formattedTo\",[w],Object.getOwnPropertyDescriptor(D,\"formattedTo\"),D),D))}),Ember.TEMPLATES[\"javascripts/components/discourse-local-dates-create-form\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"previewedFormat\"],\"statements\":[[4,\"d-modal-body\",null,[[\"title\",\"class\",\"style\"],[\"discourse_local_dates.title\",\"discourse-local-dates-create-modal\",\"overflow: auto\"]],{\"statements\":[[0,\"\\\\n  \"],[7,\"div\",true],[10,\"class\",\"form\"],[8],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isValid\"]]],null,{\"statements\":[[0,\"      \"],[7,\"div\",true],[10,\"class\",\"validation-error alert alert-error\"],[8],[0,\"\\\\n        \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.invalid_date\"],null],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},{\"statements\":[[4,\"if\",[[24,[\"timezoneIsDifferentFromUserTimezone\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"preview alert alert-info\"],[8],[0,\"\\\\n          \"],[7,\"b\",true],[8],[1,[22,\"formatedCurrentUserTimezone\"],false],[0,\" \"],[9],[1,[22,\"currentPreview\"],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]}],[0,\"\\\\n    \"],[1,[22,\"computeDate\"],false],[0,\"\\\\n\\\\n    \"],[7,\"div\",true],[10,\"class\",\"date-time-configuration\"],[8],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"inputs-panel\"],[8],[0,\"\\\\n        \"],[7,\"div\",true],[11,\"class\",[29,[\"date-time-control from \",[28,\"if\",[[24,[\"fromSelected\"]],\"is-selected\"],null],\" \",[28,\"if\",[[24,[\"fromFilled\"]],\"is-filled\"],null]]]],[8],[0,\"\\\\n          \"],[1,[28,\"d-icon\",[\"calendar-alt\"],null],false],[0,\"\\\\n          \"],[1,[28,\"d-button\",null,[[\"action\",\"translatedLabel\",\"class\"],[[28,\"action\",[[23,0,[]],\"focusFrom\"],null],[24,[\"formattedFrom\"]],\"date-time\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[11,\"class\",[29,[\"date-time-control to \",[28,\"if\",[[24,[\"toSelected\"]],\"is-selected\"],null],\" \",[28,\"if\",[[24,[\"toFilled\"]],\"is-filled\"],null]]]],[8],[0,\"\\\\n          \"],[1,[28,\"d-icon\",[\"calendar-alt\"],null],false],[0,\"\\\\n          \"],[1,[28,\"d-button\",null,[[\"action\",\"translatedLabel\",\"class\"],[[28,\"action\",[[23,0,[]],\"focusTo\"],null],[24,[\"formattedTo\"]],\"date-time\"]]],false],[0,\"\\\\n\"],[4,\"if\",[[24,[\"toFilled\"]]],null,{\"statements\":[[0,\"            \"],[1,[28,\"d-button\",null,[[\"icon\",\"action\",\"class\"],[\"times\",[28,\"action\",[[23,0,[]],\"eraseToDateTime\"],null],\"delete-to-date\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"        \"],[9],[0,\"\\\\n\\\\n\"],[4,\"unless\",[[24,[\"site\",\"mobileView\"]]],null,{\"statements\":[[0,\"          \"],[1,[28,\"timezone-input\",null,[[\"options\",\"value\",\"onChange\"],[[28,\"hash\",null,[[\"icon\"],[\"globe\"]]],[24,[\"timezone\"]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"timezone\"]]],null]],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"picker-panel\"],[8],[0,\"\\\\n        \"],[1,[28,\"input\",null,[[\"class\"],[\"fake-input\"]]],false],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"date-picker\"],[11,\"id\",[29,[\"picker-container-\",[22,\"elementId\"]]]],[8],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"fromSelected\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"time-pickers\"],[8],[0,\"\\\\n            \"],[1,[28,\"d-icon\",[\"far-clock\"],null],false],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"maxlength\",\"placeholder\",\"input\",\"type\",\"value\",\"class\"],[5,\"hh:mm\",[28,\"action\",[[23,0,[]],\"setTime\"],null],\"time\",[28,\"unbound\",[[24,[\"time\"]]],null],\"time-picker\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"if\",[[24,[\"toSelected\"]]],null,{\"statements\":[[4,\"if\",[[24,[\"toDate\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"time-pickers\"],[8],[0,\"\\\\n            \"],[1,[28,\"d-icon\",[\"far-clock\"],null],false],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"maxlength\",\"placeholder\",\"input\",\"type\",\"value\",\"class\"],[5,\"hh:mm\",[28,\"action\",[[23,0,[]],\"setToTime\"],null],\"time\",[28,\"unbound\",[[24,[\"toTime\"]]],null],\"time-picker\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]},null],[0,\"      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"site\",\"mobileView\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"timezone-input\",null,[[\"value\",\"options\",\"onChange\"],[[24,[\"timezone\"]],[28,\"hash\",null,[[\"icon\"],[\"globe\"]]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"timezone\"]]],null]],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"    \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"advancedMode\"]]],null,{\"statements\":[[0,\"      \"],[7,\"div\",true],[10,\"class\",\"advanced-options\"],[8],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isRange\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"control-group recurrence\"],[8],[0,\"\\\\n            \"],[7,\"label\",true],[10,\"class\",\"control-label\"],[8],[0,\"\\\\n              \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.recurring_title\"],null],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n            \"],[7,\"p\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.recurring_description\"],null],true],[9],[0,\"\\\\n            \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n              \"],[1,[28,\"combo-box\",null,[[\"content\",\"class\",\"value\",\"onChange\",\"none\"],[[24,[\"recurringOptions\"]],\"recurrence-input\",[24,[\"recurring\"]],[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"recurring\"]]],null]],null],\"discourse_local_dates.create.form.recurring_none\"]]],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n          \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group format\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.format_title\"],null],false],[9],[0,\"\\\\n          \"],[7,\"p\",true],[8],[0,\"\\\\n            \"],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.format_description\"],null],false],[0,\"\\\\n            \"],[7,\"a\",true],[10,\"target\",\"_blank\"],[10,\"rel\",\"noopener\"],[10,\"href\",\"https://momentjs.com/docs/#/parsing/string-format/\"],[8],[0,\"\\\\n              \"],[1,[28,\"d-icon\",[\"question-circle\"],null],false],[0,\"\\\\n            \"],[9],[0,\"\\\\n          \"],[9],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n            \"],[1,[28,\"text-field\",null,[[\"value\",\"class\"],[[24,[\"format\"]],\"format-input\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group\"],[8],[0,\"\\\\n          \"],[7,\"ul\",true],[10,\"class\",\"formats\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"previewedFormats\"]]],null,{\"statements\":[[0,\"              \"],[7,\"li\",true],[10,\"class\",\"format\"],[8],[0,\"\\\\n                \"],[7,\"a\",false],[12,\"class\",\"moment-format\"],[12,\"href\",\"\"],[3,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"format\"]]],null],[23,1,[\"format\"]]]],[8],[0,\"\\\\n                  \"],[1,[23,1,[\"format\"]],false],[0,\"\\\\n                \"],[9],[0,\"\\\\n                \"],[7,\"span\",true],[10,\"class\",\"previewed-format\"],[8],[0,\"\\\\n                  \"],[1,[23,1,[\"preview\"]],false],[0,\"\\\\n                \"],[9],[0,\"\\\\n              \"],[9],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[10,\"class\",\"control-group timezones\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.timezones_title\"],null],false],[9],[0,\"\\\\n          \"],[7,\"p\",true],[8],[1,[28,\"i18n\",[\"discourse_local_dates.create.form.timezones_description\"],null],false],[9],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"class\",\"controls\"],[8],[0,\"\\\\n            \"],[1,[28,\"multi-select\",null,[[\"valueProperty\",\"nameProperty\",\"class\",\"allowAny\",\"maximum\",\"content\",\"value\"],[null,null,\"timezones-input\",false,5,[24,[\"allTimezones\"]],[24,[\"timezones\"]]]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n      \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[7,\"div\",true],[10,\"class\",\"modal-footer discourse-local-dates-create-modal-footer\"],[8],[0,\"\\\\n\"],[4,\"if\",[[24,[\"isValid\"]]],null,{\"statements\":[[0,\"    \"],[1,[28,\"d-button\",null,[[\"class\",\"action\",\"label\"],[\"btn-primary\",[28,\"action\",[[23,0,[]],\"save\"],null],\"discourse_local_dates.create.form.insert\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n  \"],[7,\"a\",false],[12,\"class\",\"cancel-action\"],[12,\"href\",\"\"],[3,\"action\",[[23,0,[]],\"cancel\"]],[8],[0,\"\\\\n    \"],[1,[28,\"i18n\",[\"cancel\"],null],false],[0,\"\\\\n  \"],[9],[0,\"\\\\n\\\\n  \"],[1,[28,\"d-button\",null,[[\"class\",\"action\",\"icon\",\"label\"],[\"btn-default advanced-mode-btn\",[28,\"action\",[[23,0,[]],\"advancedMode\"],null],\"cog\",[24,[\"toggleModeBtnLabel\"]]]]],false],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/discourse-local-dates-create-form\"}}),Ember.TEMPLATES[\"javascripts/modal/discourse-local-dates-create-modal\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"discourse-local-dates-create-form\",null,[[\"config\",\"toolbarEvent\"],[[24,[\"config\"]],[24,[\"toolbarEvent\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/modal/discourse-local-dates-create-modal\"}}),define(\"discourse/plugins/discourse-local-dates/initializers/discourse-local-dates\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse/lib/show-modal\"],function(e,t,n){\"use strict\";function a(e){e.decorateCooked(function(e){$(\".discourse-local-date\",e).applyLocalDates()},{id:\"discourse-local-date\"}),e.onToolbarCreate(function(t){t.addButton({title:\"discourse_local_dates.title\",id:\"local-dates\",group:\"extras\",icon:\"calendar-alt\",sendAction:function(e){return t.context.send(\"insertDiscourseLocalDate\",e)}})}),e.modifyClass(\"component:d-editor\",{actions:{insertDiscourseLocalDate:function(e){(0,n.default)(\"discourse-local-dates-create-modal\").setProperties({toolbarEvent:e})}}})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"discourse-local-dates\",initialize:function(e){e.lookup(\"site-settings:main\").discourse_local_dates_enabled&&(0,t.withPluginApi)(\"0.8.8\",a)}}}),define(\"discourse/plugins/discourse-local-dates/lib/discourse-markdown/discourse-local-dates\",[\"exports\",\"pretty-text/engines/discourse-markdown/bbcode-block\"],function(e,c){\"use strict\";function n(e,t,n){var a,o,r,i=void 0,s={date:null,time:null,timezone:null,format:null,timezones:null,displayedTimezone:null,countdown:null},l=t[1].replace(/„|“/g,'\"'),m=(0,c.parseBBCodeTag)(\"[date date\"+l+\"]\",0,l.length+11);s.date=m.attrs.date,s.format=m.attrs.format,s.calendar=m.attrs.calendar,s.time=m.attrs.time,s.timezone=m.attrs.timezone,s.recurring=m.attrs.recurring,s.timezones=m.attrs.timezones,s.displayedTimezone=m.attrs.displayedTimezone,s.countdown=m.attrs.countdown,(i=new n.Token(\"span_open\",\"span\",1)).attrs=[[\"data-date\",n.md.utils.escapeHtml(s.date)]],s.date.match(/\\d{4}-\\d{2}-\\d{2}/)&&(!s.time||s.time.match(/\\d{2}:\\d{2}(?::\\d{2})?/))?(a=s.date,s.time&&(i.attrs.push([\"data-time\",n.md.utils.escapeHtml(s.time)]),a=a+\" \"+s.time),moment(a).isValid()?(i.attrs.push([\"class\",\"discourse-local-date\"]),s.format&&i.attrs.push([\"data-format\",n.md.utils.escapeHtml(s.format)]),s.countdown&&i.attrs.push([\"data-countdown\",n.md.utils.escapeHtml(s.countdown)]),s.calendar&&i.attrs.push([\"data-calendar\",n.md.utils.escapeHtml(s.calendar)]),s.displayedTimezone&&moment.tz.names().includes(s.displayedTimezone)&&i.attrs.push([\"data-displayed-timezone\",n.md.utils.escapeHtml(s.displayedTimezone)]),s.timezones&&(o=s.timezones.split(\"|\").filter(function(e){return moment.tz.names().includes(e)}),i.attrs.push([\"data-timezones\",n.md.utils.escapeHtml(o.join(\"|\"))])),a=s.timezone&&moment.tz.names().includes(s.timezone)?(i.attrs.push([\"data-timezone\",n.md.utils.escapeHtml(s.timezone)]),moment.tz(a,s.timezone)):moment.utc(a),s.recurring&&i.attrs.push([\"data-recurring\",n.md.utils.escapeHtml(s.recurring)]),e.push(i),r=a.tz(\"Etc/UTC\").format(n.md.options.discourse.datesEmailFormat||moment.defaultFormat),i.attrs.push([\"data-email-preview\",r+\" UTC\"]),u(e,n,a.utc().format(s.format))):u(e,n,moment.invalid().format())):u(e,n,moment.invalid().format())}function u(e,t,n){var a=void 0;(a=new t.Token(\"text\",\"\",0)).content=n,e.push(a),a=new t.Token(\"span_close\",\"span\",-1),e.push(a)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.setup=function(e){e.whiteList([\"span.discourse-local-date\",\"span[data-*]\",\"span[aria-label]\"]),e.registerOptions(function(e,t){e.datesEmailFormat=t.discourse_local_dates_email_format,e.features[\"discourse-local-dates\"]=!!t.discourse_local_dates_enabled}),e.registerPlugin(function(e){var t={matcher:/\\[date(=.+?)\\]/,onMatch:n};e.core.textPostProcess.ruler.push(\"discourse-local-dates\",t)})}});\n//# sourceMappingURL=/assets/plugins/discourse-local-dates-e9809bc097a3dc4275870eda22fa340f9ec333e46d20541aa388de873a28935d.js.map"
          },
          "redirectURL": "",
          "headersSize": 193,
          "bodySize": 6978,
          "_transferSize": 7171
        },
        "cache": {},
        "timings": {
          "blocked": 2752.127000003479,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.1390000000001237,
          "wait": 204.96500000411652,
          "receive": 2.2150000149849802,
          "_blocked_queueing": 5.061000003479421
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.626Z",
        "time": 2958.2510000036564,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 741,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:45 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000402"
            },
            {
              "name": "Content-Length",
              "value": "710"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1077,
            "mimeType": "application/javascript",
            "compression": 367,
            "text": "define(\"discourse/plugins/discourse-narrative-bot/initializers/new-user-narrative\",[\"exports\",\"discourse/lib/plugin-api\"],function(e,t){\"use strict\";function i(e){var t=e.container.lookup(\"message-bus:main\"),i=e.getCurrentUser(),r=e.container.lookup(\"service:app-events\");e.modifyClass(\"component:site-header\",{didInsertElement:function(){this._super.apply(this,arguments),this.dispatch(\"header:search-context-trigger\",\"header\")}}),e.attachWidgetAction(\"header\",\"headerSearchContextTrigger\",function(){this.site.mobileView?this.state.skipSearchContext=!1:(this.state.contextEnabled=!0,this.state.searchContextType=\"topic\")}),t&&i&&t.subscribe(\"/new_user_narrative/tutorial_search\",function(){r.trigger(\"header:search-context-trigger\")})}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"new-user-narratve\",initialize:function(e){e.lookup(\"site-settings:main\").discourse_narrative_bot_enabled&&(0,t.withPluginApi)(\"0.8.7\",i)}}});\n//# sourceMappingURL=/assets/plugins/discourse-narrative-bot-34c7a69c26a852a4f0464fc33b2abbf56163d77f77138d699a839ba8f260296d.js.map"
          },
          "redirectURL": "",
          "headersSize": 192,
          "bodySize": 710,
          "_transferSize": 902
        },
        "cache": {},
        "timings": {
          "blocked": 2755.144000020845,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05400000000008731,
          "wait": 202.19899999929203,
          "receive": 0.8539999835193157,
          "_blocked_queueing": 4.532000020844862
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.627Z",
        "time": 3178.788000019267,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 736,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:46 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000463"
            },
            {
              "name": "Content-Length",
              "value": "2245"
            }
          ],
          "cookies": [],
          "content": {
            "size": 8990,
            "mimeType": "application/javascript",
            "compression": 6745,
            "text": "define(\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\",[\"exports\",\"@ember/runloop\",\"@ember/component\",\"discourse/lib/ajax\",\"discourse-common/utils/decorators\"],function(e,t,s,r,n){\"use strict\";function i(t,r,e,s,n){var i={};return Object.keys(s).forEach(function(e){i[e]=s[e]}),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,(\"value\"in i||i.initializer)&&(i.writable=!0),i=e.slice().reverse().reduce(function(e,s){return s(t,r,e)||e},i),n&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(n):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(t,r,i),i=null),i}var a,c,o,l,u,p,d;Object.defineProperty(e,\"__esModule\",{value:!0}),e.bufferTime=e.keepAliveDuration=void 0;e.keepAliveDuration=1e4,e.bufferTime=3e3;e.default=s.default.extend((a=(0,n.on)(\"didInsertElement\"),c=(0,n.observes)(\"action\",\"post.id\",\"topic.id\"),o=(0,n.observes)(\"reply\",\"title\"),l=(0,n.on)(\"willDestroyElement\"),u=(0,n.observes)(\"currentState\"),p=(0,n.default)(\"presenceUsers\",\"currentUser.id\"),i(d={action:null,post:null,topic:null,reply:null,title:null,previousState:null,currentState:null,presenceUsers:null,channel:null,composerOpened:function(){this._lastPublish=new Date,(0,t.once)(this,\"updateState\")},composerStateChanged:function(){(0,t.once)(this,\"updateState\")},typing:function(){1e4<new Date-this._lastPublish&&this.publish({current:this.currentState})},composerClosing:function(){this.publish({previous:this.currentState}),(0,t.cancel)(this._pingTimer),(0,t.cancel)(this._clearTimer)},updateState:function(){var e=null,s=this.action;\"reply\"!==s&&\"edit\"!==s||(e={action:s},\"reply\"===s&&(e.topic_id=this.get(\"topic.id\")),\"edit\"===s&&(e.post_id=this.get(\"post.id\"))),this.set(\"previousState\",this.currentState),this.set(\"currentState\",e)},currentStateChanged:function(){var s=this;this.channel&&(this.messageBus.unsubscribe(this.channel),this.set(\"channel\",null)),this.clear(),[\"reply\",\"edit\"].includes(this.action)&&this.publish({response_needed:!0,previous:this.previousState,current:this.currentState}).then(function(e){s.isDestroyed||(s.set(\"presenceUsers\",e.users),s.set(\"channel\",e.messagebus_channel),e.messagebus_channel&&s.messageBus.subscribe(e.messagebus_channel,function(e){s.isDestroyed||s.set(\"presenceUsers\",e.users),s._clearTimer=(0,t.debounce)(s,\"clear\",13e3)},e.messagebus_id))})},clear:function(){this.isDestroyed||this.set(\"presenceUsers\",[])},publish:function(e){return this._lastPublish=new Date,this.currentUser.hide_profile_and_presence?Ember.RSVP.Promise.resolve():(0,r.ajax)(\"/presence/publish\",{type:\"POST\",data:e})},users:function(e,s){return(e||[]).filter(function(e){return e.id!==s})},isReply:Ember.computed.equal(\"action\",\"reply\"),shouldDisplay:Ember.computed.gt(\"users.length\",0)},\"composerOpened\",[a],Object.getOwnPropertyDescriptor(d,\"composerOpened\"),d),i(d,\"composerStateChanged\",[c],Object.getOwnPropertyDescriptor(d,\"composerStateChanged\"),d),i(d,\"typing\",[o],Object.getOwnPropertyDescriptor(d,\"typing\"),d),i(d,\"composerClosing\",[l],Object.getOwnPropertyDescriptor(d,\"composerClosing\"),d),i(d,\"currentStateChanged\",[u],Object.getOwnPropertyDescriptor(d,\"currentStateChanged\"),d),i(d,\"users\",[p],Object.getOwnPropertyDescriptor(d,\"users\"),d),d))}),define(\"discourse/plugins/discourse-presence/discourse/components/topic-presence-display\",[\"exports\",\"@ember/runloop\",\"@ember/component\",\"discourse-common/utils/decorators\",\"discourse/plugins/discourse-presence/discourse/components/composer-presence-display\"],function(e,t,s,r,n){\"use strict\";function i(t,r,e,s,n){var i={};return Object.keys(s).forEach(function(e){i[e]=s[e]}),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,(\"value\"in i||i.initializer)&&(i.writable=!0),i=e.slice().reverse().reduce(function(e,s){return s(t,r,e)||e},i),n&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(n):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(t,r,i),i=null),i}var a,c,o,l,u;Object.defineProperty(e,\"__esModule\",{value:!0});e.default=s.default.extend((a=(0,r.on)(\"didInsertElement\"),c=(0,r.on)(\"willDestroyElement\"),o=(0,r.default)(\"topicId\"),l=(0,r.default)(\"presenceUsers\",\"currentUser.{id,ignored_users}\"),i(u={topicId:null,presenceUsers:null,clear:function(){this.isDestroyed||this.set(\"presenceUsers\",[])},_inserted:function(){var s=this;this.clear(),this.messageBus.subscribe(this.channel,function(e){s.isDestroyed||s.set(\"presenceUsers\",e.users),s._clearTimer=(0,t.debounce)(s,\"clear\",n.keepAliveDuration+n.bufferTime)},-2)},_destroyed:function(){(0,t.cancel)(this._clearTimer),this.messageBus.unsubscribe(this.channel)},channel:function(e){return\"/presence/topic/\"+e},users:function(e,s){var t=s.ignored_users||[];return(e||[]).filter(function(e){return e.id!==s.id&&!t.includes(e.username)})},shouldDisplay:Ember.computed.gt(\"users.length\",0)},\"_inserted\",[a],Object.getOwnPropertyDescriptor(u,\"_inserted\"),u),i(u,\"_destroyed\",[c],Object.getOwnPropertyDescriptor(u,\"_destroyed\"),u),i(u,\"channel\",[o],Object.getOwnPropertyDescriptor(u,\"channel\"),u),i(u,\"users\",[l],Object.getOwnPropertyDescriptor(u,\"users\"),u),u))}),Ember.TEMPLATES[\"javascripts/components/composer-presence-display\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"user\"],\"statements\":[[4,\"if\",[[24,[\"shouldDisplay\"]]],null,{\"statements\":[[0,\"  \"],[7,\"div\",true],[10,\"class\",\"presence-users\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"presence-avatars\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"users\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"avatar\",[[23,1,[]]],[[\"avatarTemplatePath\",\"usernamePath\",\"imageSize\"],[\"avatar_template\",\"username\",\"small\"]]],false],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"    \"],[9],[0,\"\\\\n    \"],[7,\"span\",true],[10,\"class\",\"presence-text\"],[8],[0,\"\\\\n      \"],[7,\"span\",true],[10,\"class\",\"description\"],[8],[0,\"\\\\n\"],[4,\"if\",[[24,[\"isReply\"]]],null,{\"statements\":[[1,[28,\"i18n\",[\"presence.replying\"],null],false]],\"parameters\":[]},{\"statements\":[[1,[28,\"i18n\",[\"presence.editing\"],null],false]],\"parameters\":[]}],[9],[9],[7,\"span\",true],[10,\"class\",\"wave\"],[8],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/composer-presence-display\"}}),Ember.TEMPLATES[\"javascripts/components/topic-presence-display\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[\"user\"],\"statements\":[[4,\"if\",[[24,[\"shouldDisplay\"]]],null,{\"statements\":[[0,\"  \"],[7,\"div\",true],[10,\"class\",\"presence-users\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"presence-avatars\"],[8],[0,\"\\\\n\"],[4,\"each\",[[24,[\"users\"]]],null,{\"statements\":[[0,\"        \"],[1,[28,\"avatar\",[[23,1,[]]],[[\"avatarTemplatePath\",\"usernamePath\",\"imageSize\"],[\"avatar_template\",\"username\",\"small\"]]],false],[0,\"\\\\n\"]],\"parameters\":[1]},null],[0,\"    \"],[9],[0,\"\\\\n    \"],[7,\"span\",true],[10,\"class\",\"presence-text\"],[8],[0,\"\\\\n      \"],[7,\"span\",true],[10,\"class\",\"description\"],[8],[1,[28,\"i18n\",[\"presence.replying_to_topic\"],[[\"count\"],[[24,[\"users\",\"length\"]]]]],false],[9],[7,\"span\",true],[10,\"class\",\"wave\"],[8],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[7,\"span\",true],[10,\"class\",\"dot\"],[8],[0,\".\"],[9],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/components/topic-presence-display\"}}),Ember.TEMPLATES[\"javascripts/connectors/composer-fields/presence\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"composer-presence-display\",null,[[\"action\",\"post\",\"topic\",\"reply\",\"title\"],[[24,[\"model\",\"action\"]],[24,[\"model\",\"post\"]],[24,[\"model\",\"topic\"]],[24,[\"model\",\"reply\"]],[24,[\"model\",\"title\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/connectors/composer-fields/presence\"}}),define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/composer-fields/presence\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,s){return s.siteSettings.presence_enabled}}}),Ember.TEMPLATES[\"javascripts/connectors/topic-above-footer-buttons/presence\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[1,[28,\"topic-presence-display\",null,[[\"topicId\"],[[24,[\"model\",\"id\"]]]]],false],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/connectors/topic-above-footer-buttons/presence\"}}),define(\"discourse/plugins/discourse-presence/discourse/templates/connectors/topic-above-footer-buttons/presence\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,s){return s.siteSettings.presence_enabled}}});\n//# sourceMappingURL=/assets/plugins/discourse-presence-a000815650fbf4e791c6aa69a9fef0cb2dd1a4c92cff1d23f31adb704eb9a608.js.map"
          },
          "redirectURL": "",
          "headersSize": 193,
          "bodySize": 2245,
          "_transferSize": 2438
        },
        "cache": {},
        "timings": {
          "blocked": 2958.074999998607,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.08799999999973807,
          "wait": 219.35000000375703,
          "receive": 1.2750000169035047,
          "_blocked_queueing": 3.9289999986067414
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.627Z",
        "time": 3178.4670000197366,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 734,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:46 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000398"
            },
            {
              "name": "Content-Length",
              "value": "3281"
            }
          ],
          "cookies": [],
          "content": {
            "size": 10796,
            "mimeType": "application/javascript",
            "compression": 7515,
            "text": "Ember.TEMPLATES[\"javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"if\",[[24,[\"siteSettings\",\"solved_enabled\"]]],null,{\"statements\":[[0,\"  \"],[1,[28,\"combo-box\",null,[[\"class\",\"content\",\"value\",\"valueAttribute\",\"onSelect\"],[\"solved-status-filter\",[24,[\"statuses\"]],[24,[\"status\"]],\"value\",[28,\"action\",[[23,0,[]],\"changeStatus\"],null]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/bread-crumbs-right/solved-status-filter\"}}),define(\"discourse/plugins/discourse-solved/discourse/connectors/bread-crumbs-right/solved-status-filter\",[\"exports\",\"discourse/lib/url\"],function(e,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={shouldRender:function(e,t){if(t.siteSettings.show_filter_by_solved_status){if(t.siteSettings.allow_solved_on_all_topics)return!0;var s=Discourse.__container__.lookup(\"controller:navigation/category\");return s&&s.get(\"category.enable_accepted_answers\")}return!1},setupComponent:function(e,t){var s=[\"all\",\"solved\",\"unsolved\"].map(function(e){return{name:I18n.t(\"solved.topic_status_filter.\"+e),value:e}});t.set(\"statuses\",s);var a=window.location.search;a.match(/solved=yes/)?t.set(\"status\",\"solved\"):a.match(/solved=no/)?t.set(\"status\",\"unsolved\"):t.set(\"status\",\"all\")},actions:{changeStatus:function(e){var t=window.location,s=t.search,a=(a=s.startsWith(\"?\")?s.substr(1).split(\"&\"):[]).filter(function(e){return!e.startsWith(\"solved=\")});e&&\"all\"!==e&&(e=\"solved\"===e?\"yes\":\"no\",a.push(\"solved=\"+e)),s=0<a.length?\"?\"+a.join(\"&\"):\"\",o.default.routeTo(\"\"+t.pathname+s+t.hash)}}}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/category-custom-settings/solved-settings\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"unless\",[[24,[\"siteSettings\",\"allow_solved_on_all_topics\"]]],null,{\"statements\":[[0,\"  \"],[7,\"h3\",true],[8],[1,[28,\"i18n\",[\"solved.title\"],null],false],[9],[0,\"\\\\n  \"],[7,\"section\",true],[10,\"class\",\"field\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"enable-accepted-answer\"],[8],[0,\"\\\\n      \"],[7,\"label\",true],[10,\"class\",\"checkbox-label\"],[8],[0,\"\\\\n        \"],[1,[28,\"input\",null,[[\"type\",\"checked\",\"change\"],[\"checkbox\",[28,\"readonly\",[[24,[\"category\",\"enable_accepted_answers\"]]],null],[28,\"action\",[[23,0,[]],\"onChangeSetting\"],[[\"value\"],[\"target.checked\"]]]]]],false],[0,\"\\\\n        \"],[1,[28,\"i18n\",[\"solved.allow_accepted_answers\"],null],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/category-custom-settings/solved-settings\"}}),define(\"discourse/plugins/discourse-solved/discourse/connectors/category-custom-settings/solved-settings\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={actions:{onChangeSetting:function(e){this.set(\"category.custom_fields.enable_accepted_answers\",e?\"true\":\"false\")}}}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/topic-after-cooked/solved-panel\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"if\",[[24,[\"topic\",\"accepted_answer\"]]],null,{\"statements\":[[7,\"p\",true],[10,\"class\",\"solved\"],[8],[0,\"\\\\n\"],[1,[24,[\"topic\",\"acceptedAnswerHtml\"]],true],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/topic-after-cooked/solved-panel\"}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/user-activity-bottom/solved-list\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"link-to\",null,[[\"route\"],[\"userActivity.solved\"]],{\"statements\":[[0,\"  \"],[1,[28,\"d-icon\",[\"check-square\"],null],false],[0,\" \"],[1,[28,\"i18n\",[\"solved.title\"],null],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/user-activity-bottom/solved-list\"}}),Ember.TEMPLATES[\"javascripts/discourse/connectors/user-summary-stat/solved-count\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"link-to\",null,[[\"route\"],[\"userActivity.solved\"]],{\"statements\":[[0,\"  \"],[1,[28,\"user-stat\",null,[[\"value\",\"label\",\"icon\"],[[24,[\"model\",\"solved_count\"]],\"solved.solution_summary\",\"check-square\"]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"hasEval\":false}',meta:{moduleName:\"javascripts/discourse/connectors/user-summary-stat/solved-count\"}}),define(\"discourse/plugins/discourse-solved/discourse/initializers/extend-for-solved-button\",[\"exports\",\"discourse/models/topic\",\"discourse/models/user\",\"discourse/raw-views/topic-status\",\"discourse/helpers/topic-status-icons\",\"discourse/lib/ajax-error\",\"discourse/lib/plugin-api\",\"discourse/lib/ajax\",\"discourse/widgets/post-cooked\",\"discourse/lib/utilities\",\"discourse-common/lib/icon-library\",\"discourse/components/search-advanced-options\"],function(e,t,s,a,o,n,c,r,i,l,u,d){\"use strict\";function p(e){var c=e.getCurrentUser();o.default.addObject([\"has_accepted_answer\",\"far-check-square\",\"solved\"]),e.includePostAttributes(\"can_accept_answer\",\"can_unaccept_answer\",\"accepted_answer\"),e.addDiscoveryQueryParam&&e.addDiscoveryQueryParam(\"solved\",{replace:!0,refreshModel:!0}),e.addPostMenuButton(\"solved\",function(e){var t=e.can_accept_answer,s=e.can_unaccept_answer,a=e.accepted_answer,o=c&&c.id===e.topicCreatedById,n=a||!t||o?\"first\":\"second-last-hidden\";return t?{action:\"acceptAnswer\",icon:\"far-check-square\",className:\"unaccepted\",title:\"solved.accept_answer\",label:\"solved.solution\",position:n}:s&&a?{action:\"unacceptAnswer\",icon:\"check-square\",title:s?\"solved.unaccept_answer\":\"solved.accepted_answer\",className:\"accepted fade-out\",position:n,label:\"solved.solution\"}:!t&&a?{className:\"hidden\",disabled:\"true\",position:n,beforeButton:function(e){return e(\"span.accepted-text\",{title:I18n.t(\"solved.accepted_description\")},[e(\"span\",(0,u.iconNode)(\"check\")),e(\"span.accepted-label\",I18n.t(\"solved.solution\"))])}}:void 0}),e.decorateWidget(\"post-contents:after-cooked\",function(e){if(1===e.attrs.post_number){var t=e.getModel();if(t){var s=t.topic;if(s.accepted_answer){var a=!!s.accepted_answer.excerpt,o=\"\\n            <aside class='quote accepted-answer' data-post=\\\"\"+s.get(\"accepted_answer\").post_number+'\" data-topic=\"'+s.id+\"\\\">\\n              <div class='title'>\\n                \"+s.acceptedAnswerHtml+' <div class=\"quote-controls\"></div>\\n              </div>\\n              <blockquote>\\n                '+s.accepted_answer.excerpt+\"\\n              </blockquote>\\n            </aside>\",n=\"\\n            <aside class='quote accepted-answer'>\\n              <div class='title title-only'>\\n                \"+s.acceptedAnswerHtml+\"\\n              </div>\\n            </aside>\",c=new i.default({cooked:a?o:n},e);return e.rawHtml(c.init())}}}}),e.attachWidgetAction(\"post\",\"acceptAnswer\",function(){var e,t,s=this,a=this.model,o=a.get(\"topic.postStream.posts\").filter(function(e){return 1===e.post_number||e.accepted_answer});(t=(e=a).topic).get(\"postStream.posts\").forEach(function(e){1<e.get(\"post_number\")&&e.setProperties({accepted_answer:!1,can_accept_answer:!0,can_unaccept_answer:!1})}),e.setProperties({can_unaccept_answer:!0,can_accept_answer:!1,accepted_answer:!0}),t.set(\"accepted_answer\",{username:e.username,post_number:e.post_number,excerpt:e.cooked}),(0,r.ajax)(\"/solution/accept\",{type:\"POST\",data:{id:e.id}}).catch(n.popupAjaxError),o.forEach(function(e){return s.appEvents.trigger(\"post-stream:refresh\",{id:e.id})})}),e.attachWidgetAction(\"post\",\"unacceptAnswer\",function(){var e,t,s=this.model,a=s.get(\"topic.postStream.posts\").find(function(e){return 1===e.post_number});(e=s).can_unaccept_answer&&(t=e.topic,e.setProperties({can_accept_answer:!0,can_unaccept_answer:!1,accepted_answer:!1}),t.set(\"accepted_answer\",void 0),(0,r.ajax)(\"/solution/unaccept\",{type:\"POST\",data:{id:e.id}}).catch(n.popupAjaxError)),this.appEvents.trigger(\"post-stream:refresh\",{id:a.id})}),e.registerConnectorClass&&(e.registerConnectorClass(\"user-activity-bottom\",\"solved-list\",{shouldRender:function(e,t){return t.siteSettings.solved_enabled}}),e.registerConnectorClass(\"user-summary-stat\",\"solved-count\",{shouldRender:function(e,t){return t.siteSettings.solved_enabled&&0<e.model.solved_count},setupComponent:function(){this.set(\"classNames\",[\"linked-stat\"])}}))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"extend-for-solved-button\",initialize:function(){t.default.reopen({acceptedAnswerHtml:Ember.computed(\"accepted_answer\",\"id\",function(){var e=this.get(\"accepted_answer.username\"),t=this.get(\"accepted_answer.post_number\");return e&&t?I18n.t(\"solved.accepted_html\",{icon:(0,u.iconHTML)(\"check-square\",{class:\"accepted\"}),username_lower:e.toLowerCase(),username:(0,l.formatUsername)(e),post_path:this.url+\"/\"+t,post_number:t,user_path:s.default.create({username:e}).path}):\"\"})}),a.default.reopen({statuses:Ember.computed(function(){var e=this._super.apply(this,arguments);return this.topic.has_accepted_answer?e.push({openTag:\"span\",closeTag:\"span\",title:I18n.t(\"topic_statuses.solved.help\"),icon:\"far-check-square\"}):this.topic.can_have_answer&&this.siteSettings.solved_enabled&&this.siteSettings.empty_box_on_unsolved&&e.push({openTag:\"span\",closeTag:\"span\",title:I18n.t(\"solved.has_no_accepted_answer\"),icon:\"far-square\"}),e})}),d.default.reopen({didInsertElement:function(){this._super(),this.statusOptions.push({name:I18n.t(\"search.advanced.statuses.solved\"),value:\"solved\"})}}),(0,c.withPluginApi)(\"0.1\",p),(0,c.withPluginApi)(\"0.8.10\",function(e){e.replaceIcon(\"notification.solved.accepted_notification\",\"check-square\")})}}}),define(\"discourse/plugins/discourse-solved/discourse/pre-initializers/extend-category-for-solved\",[\"exports\",\"discourse/models/category\"],function(e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"extend-category-for-solved\",before:\"inject-discourse-objects\",initialize:function(){t.default.reopen({enable_accepted_answers:Ember.computed(\"custom_fields.enable_accepted_answers\",{get:function(e){return\"true\"===Ember.get(this.custom_fields,e)}})})}}}),define(\"discourse/plugins/discourse-solved/discourse/routes/user-activity-solved\",[\"exports\",\"discourse/routes/user-activity-stream\"],function(e,t){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=t.default.extend({userActionType:15,noContentHelpKey:\"solved.no_solutions\"})}),define(\"discourse/plugins/discourse-solved/discourse/solved-route-map\",[\"exports\"],function(e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={resource:\"user.userActivity\",map:function(){this.route(\"solved\")}}});\n//# sourceMappingURL=/assets/plugins/discourse-solved-35f9020e9aa22515c86f7d3fe803a711ee9005d26bc31a07b83bd5a8411c2552.js.map"
          },
          "redirectURL": "",
          "headersSize": 193,
          "bodySize": 3281,
          "_transferSize": 3474
        },
        "cache": {},
        "timings": {
          "blocked": 2957.6870000107324,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.07000000000016371,
          "wait": 219.87200000179746,
          "receive": 0.8380000072065741,
          "_blocked_queueing": 3.4490000107325613
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.628Z",
        "time": 3379.936000012094,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 725,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:47 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000541"
            },
            {
              "name": "Content-Length",
              "value": "1947"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3813,
            "mimeType": "application/javascript",
            "compression": 1866,
            "text": "!function(y){\"use strict\";y.fn.lazyYT=function(a){var h=y.extend({default_ratio:\"16:9\",callback:null,container_class:\"lazyYT-container\"},a);return this.each(function(){var t,l,e,a,i,s,u,c,d,o,n,p,r=y(this).addClass(h.container_class);l=h,i=(t=r).data(\"width\"),s=t.data(\"height\"),u=t.data(\"ratio\")?t.data(\"ratio\"):l.default_ratio,c=t.data(\"youtube-id\"),d=t.data(\"youtube-title\"),o=[],n=t.data(\"parameters\")||\"\",u=u.split(\":\"),p=\"number\"==typeof i&&\"number\"==typeof s?(t.width(i),s+\"px\"):\"number\"==typeof i?(t.width(i),i*u[1]/u[0]+\"px\"):(0===(i=t.width())&&(i=t.parent().width()),u[1]/u[0]*100+\"%\"),o.push('<div class=\"ytp-thumbnail\">'),o.push('<div class=\"ytp-large-play-button\"'),i<=640&&o.push(' style=\"transform: scale(0.563888888888889);\"'),o.push(\">\"),o.push(\"<svg>\"),o.push('<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#1F1F1F\" class=\"ytp-large-play-button-svg\" d=\"M84.15,26.4v6.35c0,2.833-0.15,5.967-0.45,9.4c-0.133,1.7-0.267,3.117-0.4,4.25l-0.15,0.95c-0.167,0.767-0.367,1.517-0.6,2.25c-0.667,2.367-1.533,4.083-2.6,5.15c-1.367,1.4-2.967,2.383-4.8,2.95c-0.633,0.2-1.316,0.333-2.05,0.4c-0.767,0.1-1.3,0.167-1.6,0.2c-4.9,0.367-11.283,0.617-19.15,0.75c-2.434,0.034-4.883,0.067-7.35,0.1h-2.95C38.417,59.117,34.5,59.067,30.3,59c-8.433-0.167-14.05-0.383-16.85-0.65c-0.067-0.033-0.667-0.117-1.8-0.25c-0.9-0.133-1.683-0.283-2.35-0.45c-2.066-0.533-3.783-1.5-5.15-2.9c-1.033-1.067-1.9-2.783-2.6-5.15C1.317,48.867,1.133,48.117,1,47.35L0.8,46.4c-0.133-1.133-0.267-2.55-0.4-4.25C0.133,38.717,0,35.583,0,32.75V26.4c0-2.833,0.133-5.95,0.4-9.35l0.4-4.25c0.167-0.966,0.417-2.05,0.75-3.25c0.7-2.333,1.567-4.033,2.6-5.1c1.367-1.434,2.967-2.434,4.8-3c0.633-0.167,1.333-0.3,2.1-0.4c0.4-0.066,0.917-0.133,1.55-0.2c4.9-0.333,11.283-0.567,19.15-0.7C35.65,0.05,39.083,0,42.05,0L45,0.05c2.467,0,4.933,0.034,7.4,0.1c7.833,0.133,14.2,0.367,19.1,0.7c0.3,0.033,0.833,0.1,1.6,0.2c0.733,0.1,1.417,0.233,2.05,0.4c1.833,0.566,3.434,1.566,4.8,3c1.066,1.066,1.933,2.767,2.6,5.1c0.367,1.2,0.617,2.284,0.75,3.25l0.4,4.25C84,20.45,84.15,23.567,84.15,26.4z M33.3,41.4L56,29.6L33.3,17.75V41.4z\"></path>'),o.push('<polygon fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#FFFFFF\" points=\"33.3,41.4 33.3,17.75 56,29.6\"></polygon>'),o.push(\"</svg>\"),o.push(\"</div>\"),o.push(\"</div>\"),o.push('<div class=\"html5-info-bar\">'),o.push('<div class=\"html5-title\">'),o.push('<div class=\"html5-title-text-wrapper\">'),o.push('<a class=\"html5-title-text\" target=\"_blank\" tabindex=\"3100\" href=\"https://www.youtube.com/watch?v=',c,'\">'),null==d||\"\"===d?o.push(\"youtube.com/watch?v=\"+c):o.push(d),o.push(\"</a>\"),o.push(\"</div>\"),o.push(\"</div>\"),o.push(\"</div>\"),t.css({\"padding-bottom\":p}).html(o.join(\"\")),a=640<i?\"maxresdefault.jpg\":480<i?\"sddefault.jpg\":320<i?\"hqdefault.jpg\":120<i?\"mqdefault.jpg\":0===i?\"hqdefault.jpg\":\"default.jpg\",e=t.find(\".ytp-thumbnail\").css({\"background-image\":[\"url(//img.youtube.com/vi/\",c,\"/\",a,\")\"].join(\"\")}).addClass(\"lazyYT-image-loaded\").on(\"click\",function(a){a.preventDefault(),!t.hasClass(\"lazyYT-video-loaded\")&&e.hasClass(\"lazyYT-image-loaded\")&&t.html('<iframe src=\"//www.youtube.com/embed/'+c+\"?autoplay=1&\"+n+'\" frameborder=\"0\" allowfullscreen></iframe>').addClass(\"lazyYT-video-loaded\"),l.onPlay&&l.onPlay(a,t)})})}}(jQuery),define(\"discourse/plugins/lazy-yt/initializers/lazyYT\",[\"exports\",\"discourse/lib/plugin-api\"],function(a,t){\"use strict\";Object.defineProperty(a,\"__esModule\",{value:!0}),a.default={name:\"apply-lazyYT\",initialize:function(){(0,t.withPluginApi)(\"0.1\",function(e){e.decorateCooked(function(a){0!==$(\".lazyYT\",a).length&&$(\".lazyYT\",a).lazyYT({onPlay:function(a,t){var l=parseInt(t.closest(\"article\").data(\"post-id\"),10);l&&e.preventCloak(l)}})},{id:\"discourse-lazyyt\"})})}}});\n//# sourceMappingURL=/assets/plugins/lazy-yt-cc6987f1bc1a01aed5e746c9cbe75ba9f4b9c6354f47a08b9608525a21a5f5c4.js.map"
          },
          "redirectURL": "",
          "headersSize": 193,
          "bodySize": 1947,
          "_transferSize": 2140
        },
        "cache": {},
        "timings": {
          "blocked": 3178.4860000044314,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.1089999999999236,
          "wait": 199.8219999954681,
          "receive": 1.5190000121947378,
          "_blocked_queueing": 3.108000004431233
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.628Z",
        "time": 3380.536000011489,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 722,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:48 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000597"
            },
            {
              "name": "Content-Length",
              "value": "12253"
            }
          ],
          "cookies": [],
          "content": {
            "size": 42086,
            "mimeType": "application/javascript",
            "compression": 29833,
            "text": "define(\"discourse/plugins/poll/controllers/poll-ui-builder\",[\"exports\",\"@ember/controller\",\"discourse-common/utils/decorators\",\"@ember/object\"],function(t,e,l,o){\"use strict\";function s(l,o,t,e,s){var n={};return Object.keys(e).forEach(function(t){n[t]=e[t]}),n.enumerable=!!n.enumerable,n.configurable=!!n.configurable,(\"value\"in n||n.initializer)&&(n.writable=!0),n=t.slice().reverse().reduce(function(t,e){return e(l,o,t)||t},n),s&&void 0!==n.initializer&&(n.value=n.initializer?n.initializer.call(s):void 0,n.initializer=void 0),void 0===n.initializer&&(Object.defineProperty(l,o,n),n=null),n}var n,i,r,a,u,p,c,d,h,f,m,g,b,v,y,x,O,w,P;Object.defineProperty(t,\"__esModule\",{value:!0}),t.PIE_CHART_TYPE=t.BAR_CHART_TYPE=void 0;var C=t.BAR_CHART_TYPE=\"bar\",M=t.PIE_CHART_TYPE=\"pie\";t.default=e.default.extend((n=(0,l.default)(\"regularPollType\",\"numberPollType\",\"multiplePollType\"),i=(0,l.default)(\"chartType\",\"pollType\",\"numberPollType\"),r=(0,l.default)(\"alwaysPollResult\",\"votePollResult\",\"closedPollResult\",\"staffPollResult\"),a=(0,l.default)(\"site.groups\"),u=(0,l.default)(\"pollType\",\"regularPollType\"),p=(0,l.default)(\"pollType\",\"pollOptionsCount\",\"multiplePollType\"),c=(0,l.default)(\"pollType\",\"numberPollType\"),d=(0,l.default)(\"isRegular\"),h=(0,l.default)(\"pollOptions\"),f=(0,l.observes)(\"pollType\",\"pollOptionsCount\"),m=(0,l.default)(\"isRegular\",\"isMultiple\",\"isNumber\",\"pollOptionsCount\"),g=(0,l.default)(\"isRegular\",\"isMultiple\",\"isNumber\",\"pollOptionsCount\",\"pollMin\",\"pollStep\"),b=(0,l.default)(\"isNumber\",\"pollMax\"),v=(0,l.default)(\"isNumber\",\"showMinMax\",\"pollType\",\"pollResult\",\"publicPoll\",\"pollOptions\",\"pollMin\",\"pollMax\",\"pollStep\",\"pollGroups\",\"autoClose\",\"chartType\",\"date\",\"time\"),y=(0,l.default)(\"pollOptionsCount\",\"isRegular\",\"isMultiple\",\"isNumber\",\"pollMin\",\"pollMax\"),x=(0,l.default)(\"pollMin\",\"pollMax\"),O=(0,l.default)(\"pollStep\"),w=(0,l.default)(\"disableInsert\"),s(P={regularPollType:\"regular\",numberPollType:\"number\",multiplePollType:\"multiple\",alwaysPollResult:\"always\",votePollResult:\"on_vote\",closedPollResult:\"on_close\",staffPollResult:\"staff_only\",pollChartTypes:[{name:C.capitalize(),value:C},{name:M.capitalize(),value:M}],pollType:null,pollResult:null,init:function(){this._super.apply(this,arguments),this._setupPoll()},pollTypes:function(t,e,l){return[{name:I18n.t(\"poll.ui_builder.poll_type.regular\"),value:t},{name:I18n.t(\"poll.ui_builder.poll_type.number\"),value:e},{name:I18n.t(\"poll.ui_builder.poll_type.multiple\"),value:l}]},isPie:function(t,e,l){return e!==l&&t===M},pollResults:function(t,e,l,o){var s=[{name:I18n.t(\"poll.ui_builder.poll_result.always\"),value:t},{name:I18n.t(\"poll.ui_builder.poll_result.vote\"),value:e},{name:I18n.t(\"poll.ui_builder.poll_result.closed\"),value:l}];return this.get(\"currentUser.staff\")&&s.push({name:I18n.t(\"poll.ui_builder.poll_result.staff\"),value:o}),s},siteGroups:function(t){return t.map(function(t){if(0!==t.id)return{name:t.name,value:t.name}}).filter(Boolean)},isRegular:function(t,e){return t===e},isMultiple:function(t,e,l){return t===l&&0<e},isNumber:function(t,e){return t===e},showMinMax:function(t){return!t},pollOptionsCount:function(t){if(0===t.length)return 0;var e=0;return t.split(\"\\n\").forEach(function(t){0!==t.length&&(e+=1)}),e},_setPollMax:function(){var t=this.isMultiple,e=this.isNumber;(t||e)&&(t?this.set(\"pollMax\",this.pollOptionsCount):e&&this.set(\"pollMax\",this.siteSettings.poll_maximum_options))},pollMinOptions:function(t,e,l,o){if(!t)return e?this._comboboxOptions(1,o+1):l?this._comboboxOptions(1,this.siteSettings.poll_maximum_options+1):void 0},pollMaxOptions:function(t,e,l,o,s,n){if(!t){var i=parseInt(s,10)||1;if(e)return this._comboboxOptions(i+1,o+1);if(l){var r=parseInt(n,10);return r<1&&(r=1),this._comboboxOptions(i+1,i+this.siteSettings.poll_maximum_options*r)}}},pollStepOptions:function(t,e){if(t)return this._comboboxOptions(1,(parseInt(e,10)||1)+1)},pollOutput:function(t,e,l,o,s,n,i,r,a,u,p,c,d,h){var f=\"[poll\",m=\"\",g=this.toolbarEvent.getText().match(/\\[poll(\\s+name=[^\\s\\]]+)*.*\\]/gim);g&&(f+=\" name=poll\"+(g.length+1));var b,v=a;return v<1&&(v=1),l&&(f+=\" type=\"+l),o&&(f+=\" results=\"+o),i&&e&&(f+=\" min=\"+i),r&&(f+=\" max=\"+r),t&&(f+=\" step=\"+v),s&&(f+=\" public=true\"),c&&\"number\"!==l&&(f+=\" chartType=\"+c),u&&(f+=\" groups=\"+u),!p||(b=moment(d+\" \"+h,\"YYYY-MM-DD HH:mm\").toISOString())&&(f+=\" close=\"+b),m+=(f+=\"]\")+\"\\n\",0<n.length&&!t&&n.split(\"\\n\").forEach(function(t){0!==t.length&&(m+=\"* \"+t+\"\\n\")}),m+=\"[/poll]\\n\"},disableInsert:function(t,e,l,o,s,n){return e&&t<1||l&&t<s&&n<=s||!o&&t<1},minMaxValueValidation:function(t,e){var l={ok:!0};return e<=t&&(l={failed:!0,reason:I18n.t(\"poll.ui_builder.help.invalid_values\")}),o.default.create(l)},minStepValueValidation:function(t){var e={ok:!0};return t<1&&(e={failed:!0,reason:I18n.t(\"poll.ui_builder.help.min_step_value\")}),o.default.create(e)},minNumOfOptionsValidation:function(t){var e={ok:!0};return t&&(e={failed:!0,reason:I18n.t(\"poll.ui_builder.help.options_count\")}),o.default.create(e)},_comboboxOptions:function(t,e){return _.range(t,e).map(function(t){return{value:t,name:t}})},_setupPoll:function(){this.setProperties({pollType:this.get(\"pollTypes.firstObject.value\"),publicPoll:!1,pollOptions:\"\",pollMin:1,pollMax:null,pollStep:1,autoClose:!1,chartType:C,pollGroups:null,date:moment().add(1,\"day\").format(\"YYYY-MM-DD\"),time:moment().add(1,\"hour\").format(\"HH:mm\")})},actions:{insertPoll:function(){this.toolbarEvent.addText(this.pollOutput),this.send(\"closeModal\"),this._setupPoll()}}},\"pollTypes\",[n],Object.getOwnPropertyDescriptor(P,\"pollTypes\"),P),s(P,\"isPie\",[i],Object.getOwnPropertyDescriptor(P,\"isPie\"),P),s(P,\"pollResults\",[r],Object.getOwnPropertyDescriptor(P,\"pollResults\"),P),s(P,\"siteGroups\",[a],Object.getOwnPropertyDescriptor(P,\"siteGroups\"),P),s(P,\"isRegular\",[u],Object.getOwnPropertyDescriptor(P,\"isRegular\"),P),s(P,\"isMultiple\",[p],Object.getOwnPropertyDescriptor(P,\"isMultiple\"),P),s(P,\"isNumber\",[c],Object.getOwnPropertyDescriptor(P,\"isNumber\"),P),s(P,\"showMinMax\",[d],Object.getOwnPropertyDescriptor(P,\"showMinMax\"),P),s(P,\"pollOptionsCount\",[h],Object.getOwnPropertyDescriptor(P,\"pollOptionsCount\"),P),s(P,\"_setPollMax\",[f],Object.getOwnPropertyDescriptor(P,\"_setPollMax\"),P),s(P,\"pollMinOptions\",[m],Object.getOwnPropertyDescriptor(P,\"pollMinOptions\"),P),s(P,\"pollMaxOptions\",[g],Object.getOwnPropertyDescriptor(P,\"pollMaxOptions\"),P),s(P,\"pollStepOptions\",[b],Object.getOwnPropertyDescriptor(P,\"pollStepOptions\"),P),s(P,\"pollOutput\",[v],Object.getOwnPropertyDescriptor(P,\"pollOutput\"),P),s(P,\"disableInsert\",[y],Object.getOwnPropertyDescriptor(P,\"disableInsert\"),P),s(P,\"minMaxValueValidation\",[x],Object.getOwnPropertyDescriptor(P,\"minMaxValueValidation\"),P),s(P,\"minStepValueValidation\",[O],Object.getOwnPropertyDescriptor(P,\"minStepValueValidation\"),P),s(P,\"minNumOfOptionsValidation\",[w],Object.getOwnPropertyDescriptor(P,\"minNumOfOptionsValidation\"),P),P))}),Ember.TEMPLATES[\"javascripts/modal/poll-ui-builder\"]=Ember.HTMLBars.template({id:null,block:'{\"symbols\":[],\"statements\":[[4,\"d-modal-body\",null,[[\"title\",\"class\"],[\"poll.ui_builder.title\",\"poll-ui-builder\"]],{\"statements\":[[0,\"  \"],[7,\"form\",true],[10,\"class\",\"poll-ui-builder-form form-horizontal\"],[8],[0,\"\\\\n    \"],[7,\"div\",true],[10,\"class\",\"options\"],[8],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_type.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"valueProperty\",\"class\",\"onChange\"],[[24,[\"pollTypes\"]],[24,[\"pollType\"]],\"value\",\"poll-type\",[28,\"action\",[[23,0,[]],[28,\"mut\",[[24,[\"pollType\"]]],null]],null]]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_result.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"class\",\"valueProperty\"],[[24,[\"pollResults\"]],[24,[\"pollResult\"]],\"poll-result\",\"value\"]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_groups.label\"],null],false],[9],[0,\"\\\\n        \"],[1,[28,\"combo-box\",null,[[\"content\",\"value\",\"options\",\"valueAttribute\"],[[24,[\"siteGroups\"]],[24,[\"pollGroups\"]],[28,\"hash\",null,[[\"clearable\"],[true]]],\"value\"]]],false],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"unless\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-select\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_chart_type.label\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"combo-box\",null,[[\"class\",\"content\",\"value\",\"valueAttribute\"],[\"poll-chart-type\",[24,[\"pollChartTypes\"]],[24,[\"chartType\"]],\"value\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"if\",[[24,[\"showMinMax\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.min\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"class\"],[\"number\",[24,[\"pollMin\"]],\"value\",\"poll-options-min\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minMaxValueValidation\"]]]]],false],[0,\"\\\\n\\\\n        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.max\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"class\"],[\"number\",[24,[\"pollMax\"]],\"value\",\"poll-options-max\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"          \"],[7,\"div\",true],[10,\"class\",\"input-group poll-number\"],[8],[0,\"\\\\n            \"],[7,\"label\",true],[10,\"class\",\"input-group-label\"],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_config.step\"],null],false],[9],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"type\",\"value\",\"valueProperty\",\"min\",\"class\"],[\"number\",[24,[\"pollStep\"]],\"value\",\"1\",\"poll-options-step\"]]],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n          \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minStepValueValidation\"]]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isNumber\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-textarea\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[1,[28,\"i18n\",[\"poll.ui_builder.poll_options.label\"],null],false],[9],[0,\"\\\\n          \"],[1,[28,\"textarea\",null,[[\"value\",\"autocomplete\"],[[24,[\"pollOptions\"]],\"discourse\"]]],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n        \"],[1,[28,\"input-tip\",null,[[\"validation\"],[[24,[\"minNumOfOptionsValidation\"]]]]],false],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[4,\"unless\",[[24,[\"isPie\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-checkbox\"],[8],[0,\"\\\\n          \"],[7,\"label\",true],[8],[0,\"\\\\n            \"],[1,[28,\"input\",null,[[\"type\",\"checked\"],[\"checkbox\",[24,[\"publicPoll\"]]]]],false],[0,\"\\\\n            \"],[1,[28,\"i18n\",[\"poll.ui_builder.poll_public.label\"],null],false],[0,\"\\\\n          \"],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n      \"],[7,\"div\",true],[10,\"class\",\"input-group poll-checkbox\"],[8],[0,\"\\\\n        \"],[7,\"label\",true],[8],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"checked\"],[\"checkbox\",[24,[\"autoClose\"]]]]],false],[0,\"\\\\n          \"],[1,[28,\"i18n\",[\"poll.ui_builder.automatic_close.label\"],null],false],[0,\"\\\\n        \"],[9],[0,\"\\\\n      \"],[9],[0,\"\\\\n\\\\n\"],[4,\"if\",[[24,[\"autoClose\"]]],null,{\"statements\":[[0,\"        \"],[7,\"div\",true],[10,\"class\",\"input-group poll-date\"],[8],[0,\"\\\\n          \"],[1,[28,\"date-picker-future\",null,[[\"value\",\"containerId\"],[[24,[\"date\"]],\"date-container\"]]],false],[0,\"\\\\n          \"],[1,[28,\"input\",null,[[\"type\",\"value\"],[\"time\",[24,[\"time\"]]]]],false],[0,\"\\\\n          \"],[7,\"div\",true],[10,\"id\",\"date-container\"],[8],[9],[0,\"\\\\n        \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"    \"],[9],[0,\"\\\\n\\\\n    \"],[7,\"div\",true],[10,\"class\",\"d-editor-preview\"],[8],[0,\"\\\\n      \"],[1,[28,\"cook-text\",[[23,0,[\"pollOutput\"]]],null],false],[0,\"\\\\n    \"],[9],[0,\"\\\\n  \"],[9],[0,\"\\\\n\"]],\"parameters\":[]},null],[0,\"\\\\n\"],[7,\"div\",true],[10,\"class\",\"modal-footer\"],[8],[0,\"\\\\n  \"],[1,[28,\"d-button\",null,[[\"action\",\"icon\",\"class\",\"label\",\"disabled\"],[[28,\"action\",[[23,0,[]],\"insertPoll\"],null],\"chart-bar\",\"btn-primary\",\"poll.ui_builder.insert\",[24,[\"disableInsert\"]]]]],false],[0,\"\\\\n\"],[9],[0,\"\\\\n\"]],\"hasEval\":false}',meta:{moduleName:\"javascripts/modal/poll-ui-builder\"}}),define(\"discourse/plugins/poll/initializers/add-poll-ui-builder\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse-common/utils/decorators\",\"discourse/lib/show-modal\"],function(t,e,u,p){\"use strict\";function l(t){var e,l,o,s,n,i,r,a;t.modifyClass(\"controller:composer\",(e=(0,u.default)(\"siteSettings.poll_enabled\",\"siteSettings.poll_minimum_trust_level_to_create\",\"model.topic.pm_with_non_human_user\"),o=l={canBuildPoll:function(t,e,l){return t&&(l||this.currentUser&&(this.currentUser.staff||this.currentUser.trust_level>=e))},actions:{showPollBuilder:function(){(0,p.default)(\"poll-ui-builder\").set(\"toolbarEvent\",this.toolbarEvent)}}},s=\"canBuildPoll\",n=[e],i=Object.getOwnPropertyDescriptor(l,\"canBuildPoll\"),r=l,a={},Object.keys(i).forEach(function(t){a[t]=i[t]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,(\"value\"in a||a.initializer)&&(a.writable=!0),a=n.slice().reverse().reduce(function(t,e){return e(o,s,t)||t},a),r&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(r):void 0,a.initializer=void 0),void 0===a.initializer&&(Object.defineProperty(o,s,a),a=null),l)),t.addToolbarPopupMenuOptionsCallback(function(){return{action:\"showPollBuilder\",icon:\"chart-bar\",label:\"poll.ui_builder.title\",condition:\"canBuildPoll\"}})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"add-poll-ui-builder\",initialize:function(){(0,e.withPluginApi)(\"0.8.7\",l)}}}),define(\"discourse/plugins/poll/initializers/extend-for-poll\",[\"exports\",\"discourse/lib/plugin-api\",\"discourse-common/utils/decorators\",\"discourse-common/lib/get-owner\",\"discourse/widgets/glue\"],function(t,e,p,c,g){\"use strict\";function l(h){var t,e,f=(0,c.getRegister)(h);h.modifyClass(\"controller:topic\",{subscribe:function(){var l=this;this._super.apply(this,arguments),this.messageBus.subscribe(\"/polls/\"+this.get(\"model.id\"),function(t){var e=l.get(\"model.postStream\").findLoadedPost(t.post_id);e&&e.set(\"polls\",t.polls)})},unsubscribe:function(){this.messageBus.unsubscribe(\"/polls/*\"),this._super.apply(this,arguments)}});var l,o,s,n,i,r,m=[],a=null;function u(){m.forEach(function(t){return t.queueRerender()})}h.modifyClass(\"model:post\",(t=(0,p.observes)(\"polls\"),l=e={_polls:null,pollsObject:null,pollsChanged:function(){var e=this,t=this.polls;t&&(this._polls=this._polls||{},t.forEach(function(t){e._polls[t.name]?e._polls[t.name].setProperties(t):e._polls[t.name]=Ember.Object.create(t)}),this.set(\"pollsObject\",this._polls),u())}},o=\"pollsChanged\",s=[t],n=Object.getOwnPropertyDescriptor(e,\"pollsChanged\"),i=e,r={},Object.keys(n).forEach(function(t){r[t]=n[t]}),r.enumerable=!!r.enumerable,r.configurable=!!r.configurable,(\"value\"in r||r.initializer)&&(r.writable=!0),r=s.slice().reverse().reduce(function(t,e){return e(l,o,t)||t},r),i&&void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(i):void 0,r.initializer=void 0),void 0===r.initializer&&(Object.defineProperty(l,o,r),r=null),e)),h.includePostAttributes(\"polls\",\"polls_votes\"),h.decorateCooked(function(t,e){var p,c,d,l=$(\".poll\",t);l.length&&e&&(p=e.getModel(),h.preventCloak(p.id),p.pollsChanged(),c=p.pollsObject||{},d=p.polls_votes||{},a=a||setInterval(u,3e4),l.each(function(t,e){var l,o,s,n=$(e),i=n.data(\"poll-name\"),r=c[i],a=d[i]||[],u=n.parent(\".expanded-quote\").data(\"post-id\");!u||(l=p.quoted[u])&&(p=Ember.Object.create(l),r=Ember.Object.create(l.polls.find(function(t){return t.name===i})),a=(a=l.polls_votes||{})[i]||[]),r&&(o={id:i+\"-\"+p.id,post:p,poll:r,vote:a,groupableUserFields:(h.container.lookup(\"site-settings:main\").poll_groupable_user_fields||\"\").split(\"|\").filter(Boolean)},(s=new g.default(\"discourse-poll\",f,o)).appendTo(e),m.push(s))}))},{onlyStream:!0,id:\"discourse-poll\"}),h.cleanupStream(function(){a&&(clearInterval(a),a=null),m.forEach(function(t){return t.cleanUp()}),m=[]})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"extend-for-poll\",initialize:function(){(0,e.withPluginApi)(\"0.8.7\",l)}}}),define(\"discourse/plugins/poll/lib/chart-colors\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getColors=function(t,e){var l=void 0;switch(e=e||\"cool\"){case\"cool\":l={0:[255,255,255],25:[220,237,200],50:[66,179,213],75:[26,39,62],100:[0,0,0]};break;case\"warm\":l={0:[255,255,255],25:[254,235,101],50:[228,82,27],75:[77,52,47],100:[0,0,0]}}for(var o=Object.keys(l),s=[],n=void 0,i=void 0,r=0;r<t;r++){n=(r+1)*(100/(t+1));for(var a=void 0,u=i=i||0;u<o.length;u++){if(!o[u+1]){a=u-1;break}if(n>=o[u]&&n<o[u+1]){a=u;break}}for(var p=(n-o[a])/(o[a+1]-o[a]),c=[],d=0;d<3;d++)c.push(Math.round(l[o[a]][d]-(l[o[a]][d]-l[o[a+1]][d])*p));s.push(\"rgb(\"+c.toString()+\")\"),i=a}return s}}),define(\"discourse/plugins/poll/lib/discourse-markdown/poll\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.setup=function(t){t.whiteList([\"div.poll\",\"div.poll-info\",\"div.poll-container\",\"div.poll-buttons\",\"div[data-*]\",\"span.info-number\",\"span.info-text\",\"span.info-label\",\"a.button.cast-votes\",\"a.button.toggle-results\",\"li[data-*]\"]),function(t){t.registerOptions(function(t,e){t.features.poll=!!e.poll_enabled,t.pollMaximumOptions=e.poll_maximum_options}),t.registerPlugin(function(t){t.block.bbcode.ruler.push(\"poll\",e)})}(t)};var m=\"data-poll-\",g=[\"close\",\"max\",\"min\",\"name\",\"order\",\"public\",\"results\",\"chartType\",\"groups\",\"status\",\"step\",\"type\"];function b(t,e,l){var o=t.indexOf(e),s=t[o].level;for(t.splice.apply(t,[o,1].concat(function(t){if(Array.isArray(t)){for(var e=0,l=Array(t.length);e<t.length;e++)l[e]=t[e];return l}return Array.from(t)}(l))),l[0].map=e.map;o<t.length;o++){var n=t[o].nesting;n<0&&s--,t[o].level=s,0<n&&s++}}function v(t,e){t.push(\"text\",\"\",0).content=\"[/\"+e+\"]\"}var e={tag:\"poll\",before:function(t,e,l){var o=t.push(\"text\",\"\",0);o.content=l,o.bbcode_attrs=e.attrs,o.bbcode_type=\"poll_open\"},after:function(t,e,l){var o=function(t,e){for(var l=t.length-1,o=[],s=[];t[l]!==e;l--){if(0===l)return;var n=t[l];if(0===n.level&&\"ol\"!==n.tag&&\"ul\"!==n.tag)return;if(1===n.level&&1===n.nesting){if(\"li\"!==n.tag)return;o.push([n,s.reverse().join(\" \")])}1===n.level&&1===n.nesting&&\"li\"===n.tag?s=[]:\"text\"!==n.type&&\"inline\"!==n.type||s.push(n.content)}return o.reverse()}(t.tokens,e);if(!o)return v(t,l);var s=e.bbcode_attrs,n=[[\"class\",\"poll\"]];s.status||n.push([m+\"status\",\"open\"]),g.forEach(function(t){s[t]&&n.push([m+t,s[t]])}),s.name||n.push([m+\"name\",\"poll\"]);var i=parseInt(s.min,10),r=parseInt(s.max,10),a=parseInt(s.step,10);a<1&&(a=1);var u=[],p=new t.Token(\"poll_open\",\"div\",1);if(p.block=!0,p.attrs=n,u.push(p),(p=new t.Token(\"poll_open\",\"div\",1)).block=!0,u.push(p),(p=new t.Token(\"poll_open\",\"div\",1)).attrs=[[\"class\",\"poll-container\"]],u.push(p),\"number\"===s.type){if(isNaN(i)&&(i=1),isNaN(r)&&(r=t.md.options.discourse.pollMaximumOptions),isNaN(a)&&(a=1),0<o.length)return v(t,l);p=new t.Token(\"bullet_list_open\",\"ul\",1),u.push(p);for(var c=i;c<=r;c+=a)p=new t.Token(\"list_item_open\",\"li\",1),o.push([p,String(c)]),u.push(p),(p=new t.Token(\"text\",\"\",0)).content=String(c),u.push(p),p=new t.Token(\"list_item_close\",\"li\",-1),u.push(p);p=new t.Token(\"bullet_item_close\",\"\",-1),u.push(p)}for(var d=0;d<o.length;d++){p=o[d][0];var h=o[d][1];p.attrs=p.attrs||[];var f=function(t){for(var e=0;e<t.length;e++)t[e]=function(t){for(var e=\"\",l=0;l<4;l++)e+=y[t>>8*l+4&15]+y[t>>8*l&15];return e}(t[e]);return t.join(\"\")}(function(t){/[\\x80-\\xFF]/.test(t)&&(t=unescape(encodeURI(t)));var e,l=t.length,o=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)_(o,function(t){var e,l=[];for(e=0;e<64;e+=4)l[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return l}(t.substring(e-64,e)));t=t.substring(e-64);var s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)s[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(s[e>>2]|=128<<(e%4<<3),55<e)for(_(o,s),e=0;e<16;e++)s[e]=0;return s[14]=8*l,_(o,s),o}(JSON.stringify([h])));p.attrs.push([m+\"option-id\",f])}b(t.tokens,e,u),t.level=t.tokens[t.tokens.length-1].level,t.push(\"poll_close\",\"div\",-1),(p=t.push(\"poll_open\",\"div\",1)).attrs=[[\"class\",\"poll-info\"]],t.push(\"paragraph_open\",\"p\",1),(p=t.push(\"span_open\",\"span\",1)).block=!1,p.attrs=[[\"class\",\"info-number\"]],(p=t.push(\"text\",\"\",0)).content=\"0\",t.push(\"span_close\",\"span\",-1),(p=t.push(\"span_open\",\"span\",1)).block=!1,p.attrs=[[\"class\",\"info-label\"]],(p=t.push(\"text\",\"\",0)).content=I18n.t(\"poll.voters\",{count:0}),t.push(\"span_close\",\"span\",-1),t.push(\"paragraph_close\",\"p\",-1),t.push(\"poll_close\",\"div\",-1),t.push(\"poll_close\",\"div\",-1),t.push(\"poll_close\",\"div\",-1)}};function _(t,e){var l=i(l=t[0],n=t[1],s=t[2],o=t[3],e[0],7,-680876936),o=i(o,l,n,s,e[1],12,-389564586),s=i(s,o,l,n,e[2],17,606105819),n=i(n,s,o,l,e[3],22,-1044525330);l=i(l,n,s,o,e[4],7,-176418897),o=i(o,l,n,s,e[5],12,1200080426),s=i(s,o,l,n,e[6],17,-1473231341),n=i(n,s,o,l,e[7],22,-45705983),l=i(l,n,s,o,e[8],7,1770035416),o=i(o,l,n,s,e[9],12,-1958414417),s=i(s,o,l,n,e[10],17,-42063),n=i(n,s,o,l,e[11],22,-1990404162),l=i(l,n,s,o,e[12],7,1804603682),o=i(o,l,n,s,e[13],12,-40341101),s=i(s,o,l,n,e[14],17,-1502002290),l=a(l,n=i(n,s,o,l,e[15],22,1236535329),s,o,e[1],5,-165796510),o=a(o,l,n,s,e[6],9,-1069501632),s=a(s,o,l,n,e[11],14,643717713),n=a(n,s,o,l,e[0],20,-373897302),l=a(l,n,s,o,e[5],5,-701558691),o=a(o,l,n,s,e[10],9,38016083),s=a(s,o,l,n,e[15],14,-660478335),n=a(n,s,o,l,e[4],20,-405537848),l=a(l,n,s,o,e[9],5,568446438),o=a(o,l,n,s,e[14],9,-1019803690),s=a(s,o,l,n,e[3],14,-187363961),n=a(n,s,o,l,e[8],20,1163531501),l=a(l,n,s,o,e[13],5,-1444681467),o=a(o,l,n,s,e[2],9,-51403784),s=a(s,o,l,n,e[7],14,1735328473),l=u(l,n=a(n,s,o,l,e[12],20,-1926607734),s,o,e[5],4,-378558),o=u(o,l,n,s,e[8],11,-2022574463),s=u(s,o,l,n,e[11],16,1839030562),n=u(n,s,o,l,e[14],23,-35309556),l=u(l,n,s,o,e[1],4,-1530992060),o=u(o,l,n,s,e[4],11,1272893353),s=u(s,o,l,n,e[7],16,-155497632),n=u(n,s,o,l,e[10],23,-1094730640),l=u(l,n,s,o,e[13],4,681279174),o=u(o,l,n,s,e[0],11,-358537222),s=u(s,o,l,n,e[3],16,-722521979),n=u(n,s,o,l,e[6],23,76029189),l=u(l,n,s,o,e[9],4,-640364487),o=u(o,l,n,s,e[12],11,-421815835),s=u(s,o,l,n,e[15],16,530742520),l=p(l,n=u(n,s,o,l,e[2],23,-995338651),s,o,e[0],6,-198630844),o=p(o,l,n,s,e[7],10,1126891415),s=p(s,o,l,n,e[14],15,-1416354905),n=p(n,s,o,l,e[5],21,-57434055),l=p(l,n,s,o,e[12],6,1700485571),o=p(o,l,n,s,e[3],10,-1894986606),s=p(s,o,l,n,e[10],15,-1051523),n=p(n,s,o,l,e[1],21,-2054922799),l=p(l,n,s,o,e[8],6,1873313359),o=p(o,l,n,s,e[15],10,-30611744),s=p(s,o,l,n,e[6],15,-1560198380),n=p(n,s,o,l,e[13],21,1309151649),l=p(l,n,s,o,e[4],6,-145523070),o=p(o,l,n,s,e[11],10,-1120210379),s=p(s,o,l,n,e[2],15,718787259),n=p(n,s,o,l,e[9],21,-343485551),t[0]=c(l,t[0]),t[1]=c(n,t[1]),t[2]=c(s,t[2]),t[3]=c(o,t[3])}function r(t,e,l,o,s,n){return e=c(c(e,t),c(o,n)),c(e<<s|e>>>32-s,l)}function i(t,e,l,o,s,n,i){return r(e&l|~e&o,t,e,s,n,i)}function a(t,e,l,o,s,n,i){return r(e&o|l&~o,t,e,s,n,i)}function u(t,e,l,o,s,n,i){return r(e^l^o,t,e,s,n,i)}function p(t,e,l,o,s,n,i){return r(l^(e|~o),t,e,s,n,i)}var y=\"0123456789abcdef\".split(\"\");function c(t,e){return t+e&4294967295}}),define(\"discourse/plugins/poll/lib/even-round\",[\"exports\"],function(t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(t){for(var e=t.map(function(t){return t%1}),l=Math.ceil(e.reduce(function(t,e){return t+e})),o=0,s=e.length;o<l&&o<s;o++){for(var n=0,i=0,r=0;r<e.length;r++)e[r]>n&&(n=e[i=r]);if(++t[i],e[i]=0,100===t.map(function(t){return Math.floor(t)}).reduce(function(t,e){return t+e}))break}return t.map(function(t){return Math.floor(t)})}}),define(\"discourse/plugins/poll/widgets/discourse-poll\",[\"exports\",\"discourse/widgets/widget\",\"virtual-dom\",\"discourse-common/lib/icon-library\",\"discourse/widgets/raw-html\",\"discourse/lib/ajax\",\"discourse/lib/ajax-error\",\"discourse/plugins/poll/lib/even-round\",\"discourse/widgets/post\",\"discourse/lib/round\",\"discourse/lib/formatter\",\"discourse/lib/load-script\",\"../lib/chart-colors\",\"@ember/string\",\"../controllers/poll-ui-builder\"],function(t,e,c,s,v,i,r,d,o,a,y,l,u,n,p){\"use strict\";function h(t){var e=$(\"<span>\"+t.html+\"</span>\");return e.find(\".discourse-local-date\").each(function(t,e){$(e).applyLocalDates()}),new v.default({html:\"<span>\"+e.html()+\"</span>\"})}function x(t){return new v.default({html:'<span class=\"info-text\">'+t+\"</span>\"})}function f(t){return(0,i.ajax)(\"/polls/voters.json\",{data:t}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_fetching_voters\"))})}function m(t,e){var l=e&&e.groups&&e.groups.split(\",\").map(function(t){return t.toLowerCase()});if(!l)return 1;var o=t&&t.groups&&t.groups.map(function(t){return t.name.toLowerCase()});return o&&l.some(function(t){return o.includes(t)})}function g(t){var e=document.querySelector(\"#poll-results-chart-\"+t);e&&e.parentNode.removeChild(e)}function b(t,o,e){var l=2<arguments.length&&void 0!==e?e:{},s=\"aspectRatio\"in l?l.aspectRatio:2.2,n=o.map(function(t){return e=t,(new DOMParser).parseFromString(e,\"text/html\").body.textContent||\"\";var e});return{type:p.PIE_CHART_TYPE,data:{datasets:[{data:t,backgroundColor:(0,u.getColors)(t.length)}],labels:n},options:{responsive:!0,aspectRatio:s,animation:{duration:0},legend:{display:!1},legendCallback:function(t){for(var e=\"\",l=0;l<o.length;l++)e+='<div class=\"legend\"><span class=\"swatch\" style=\"background-color:\\n            '+t.data.datasets[0].backgroundColor[l]+'\"></span>'+o[l]+\"</div>\";return e}}}}Object.defineProperty(t,\"__esModule\",{value:!0}),(0,e.createWidget)(\"discourse-poll-option\",{tagName:\"li\",buildAttributes:function(t){return{\"data-poll-option-id\":t.option.id}},html:function(t){var e=[],l=t.option,o=t.vote.includes(l.id);return t.isMultiple?e.push((0,s.iconNode)(o?\"far-check-square\":\"far-square\")):e.push((0,s.iconNode)(o?\"circle\":\"far-circle\")),e.push(\" \"),e.push(h(l)),e},click:function(t){0===$(t.target).closest(\"a\").length&&this.sendWidgetAction(\"toggleOption\",this.attrs.option)}}),(0,e.createWidget)(\"discourse-poll-load-more\",{tagName:\"div.poll-voters-toggle-expand\",buildKey:function(t){return\"load-more-\"+t.optionId},defaultState:function(){return{loading:!1}},html:function(t,e){return e.loading?(0,c.h)(\"div.spinner.small\"):(0,c.h)(\"a\",(0,s.iconNode)(\"chevron-down\"))},click:function(){var t=this.state;if(!t.loading)return t.loading=!0,this.sendWidgetAction(\"loadMore\").finally(function(){return t.loading=!1})}}),(0,e.createWidget)(\"discourse-poll-voters\",{tagName:\"ul.poll-voters-list\",buildKey:function(t){return\"poll-voters-\"+t.optionId},defaultState:function(){return{loaded:\"new\",voters:[],page:1}},fetchVoters:function(){var o=this,s=this.attrs,n=this.state;if(\"loading\"!==n.loaded)return n.loaded=\"loading\",f({post_id:s.postId,poll_name:s.pollName,option_id:s.optionId,page:n.page}).then(function(t){n.loaded=\"loaded\",n.page+=1;var e=\"number\"===s.pollType?t.voters:t.voters[s.optionId],l=new Set(n.voters.map(function(t){return t.username}));e.forEach(function(t){l.has(t.username)||(l.add(t.username),n.voters.push(t))}),o.scheduleRerender()})},loadMore:function(){return this.fetchVoters()},html:function(t,e){t.voters&&\"new\"===e.loaded&&(e.voters=t.voters);var l=e.voters.map(function(t){return(0,c.h)(\"li\",[(0,o.avatarFor)(\"tiny\",{username:t.username,template:t.avatar_template}),\" \"])});return e.voters.length<t.totalVotes&&l.push(this.attach(\"discourse-poll-load-more\",t)),(0,c.h)(\"div.poll-voters\",l)}}),(0,e.createWidget)(\"discourse-poll-standard-results\",{tagName:\"ul.results\",buildKey:function(t){return\"poll-standard-results-\"+t.id},defaultState:function(){return{loaded:!1}},fetchVoters:function(){var e=this,t=this.attrs,l=this.state;return f({post_id:t.post.id,poll_name:t.poll.get(\"name\")}).then(function(t){l.voters=t.voters,e.scheduleRerender()})},html:function(n,i){var r=this,a=n.poll,t=a.get(\"options\");if(t){var e=a.get(\"voters\"),u=a.get(\"public\"),l=_.clone(t).sort(function(t,e){return!(t.votes<e.votes)&&(t.votes!==e.votes||t.html<e.html)?-1:1});u&&!i.loaded&&(i.voters=a.get(\"preloaded_voters\"),i.loaded=!0);var o=0===e?Array(l.length).fill(0):l.map(function(t){return 100*t.votes/e}),p=n.isMultiple?o.map(Math.floor):(0,d.default)(o);return l.map(function(t,e){var l=[],o=p[e].toString(),s=(n.vote||[]).includes(t.id);return l.push((0,c.h)(\"div.option\",(0,c.h)(\"p\",[(0,c.h)(\"span.percentage\",o+\"%\"),h(t)]))),l.push((0,c.h)(\"div.bar-back\",(0,c.h)(\"div.bar\",{attributes:{style:\"width:\"+o+\"%\"}}))),u&&l.push(r.attach(\"discourse-poll-voters\",{postId:n.post.id,optionId:t.id,pollName:a.get(\"name\"),totalVotes:t.votes,voters:i.voters&&i.voters[t.id]||[]})),(0,c.h)(\"li\",{className:s?\"chosen\":\"\"},l)})}}}),(0,e.createWidget)(\"discourse-poll-number-results\",{buildKey:function(t){return\"poll-number-results-\"+t.id},defaultState:function(){return{loaded:!1}},fetchVoters:function(){var e=this,t=this.attrs,l=this.state;return f({post_id:t.post.id,poll_name:t.poll.get(\"name\")}).then(function(t){l.voters=t.voters,e.scheduleRerender()})},html:function(t,e){var l=t.poll,o=l.get(\"options\").reduce(function(t,e){return t+parseInt(e.html,10)*parseInt(e.votes,10)},0),s=l.get(\"voters\"),n=0===s?0:(0,a.default)(o/s,-2),i=I18n.t(\"poll.average_rating\",{average:n}),r=[(0,c.h)(\"div.poll-results-number-rating\",new v.default({html:\"<span>\"+i+\"</span>\"}))];return l.get(\"public\")&&(e.loaded||(e.voters=l.get(\"preloaded_voters\"),e.loaded=!0),r.push(this.attach(\"discourse-poll-voters\",{totalVotes:l.get(\"voters\"),voters:e.voters||[],postId:t.post.id,pollName:l.get(\"name\"),pollType:l.get(\"type\")}))),r}}),(0,e.createWidget)(\"discourse-poll-container\",{tagName:\"div.poll-container\",html:function(e){var l=this,t=e.poll,o=t.get(\"options\");if(e.showResults){var s=\"number\"===t.get(\"type\")?\"number\":\"standard\",n=\"number\"==s||e.poll.chart_type!==p.PIE_CHART_TYPE?\"discourse-poll-\"+s+\"-results\":\"discourse-poll-pie-chart\";return this.attach(n,e)}if(o){var i=[];return m(this.currentUser,t)||i.push((0,c.h)(\"div.alert.alert-danger\",I18n.t(\"poll.results.groups.title\",{groups:t.groups}))),i.push((0,c.h)(\"ul\",o.map(function(t){return l.attach(\"discourse-poll-option\",{option:t,isMultiple:e.isMultiple,vote:e.vote})}))),i}}}),(0,e.createWidget)(\"discourse-poll-info\",{tagName:\"div.poll-info\",multipleHelpText:function(t,e,l){if(0<e)if(t===e){if(1<t)return I18n.t(\"poll.multiple.help.x_options\",{count:t})}else{if(1<t)return e<l?I18n.t(\"poll.multiple.help.between_min_and_max_options\",{min:t,max:e}):I18n.t(\"poll.multiple.help.at_least_min_options\",{count:t});if(e<=l)return I18n.t(\"poll.multiple.help.up_to_max_options\",{count:e})}},html:function(t){var e,l,o=t.poll,s=o.get(\"voters\"),n=[(0,c.h)(\"p\",[(0,c.h)(\"span.info-number\",s.toString()),(0,c.h)(\"span.info-label\",I18n.t(\"poll.voters\",{count:s}))])];return t.isMultiple&&(t.showResults||t.isClosed?(e=o.get(\"options\").reduce(function(t,e){return t+parseInt(e.votes,10)},0),n.push((0,c.h)(\"p\",[(0,c.h)(\"span.info-number\",e.toString()),(0,c.h)(\"span.info-label\",I18n.t(\"poll.total_votes\",{count:e}))]))):(l=this.multipleHelpText(t.min,t.max,o.get(\"options.length\")))&&n.push(x(l))),t.isClosed||t.showResults||!o.public||\"staff_only\"===o.results||n.push(x(I18n.t(\"poll.public.title\"))),n}}),(0,e.createWidget)(\"discourse-poll-grouped-pies\",{tagName:\"div.poll-grouped-pies\",buildAttributes:function(t){return{id:\"poll-results-grouped-pie-charts-\"+t.id}},html:function(u){var t=Object.assign({},u.groupableUserFields),l=\"field-select-\"+u.id;u.groupedBy=u.groupedBy||t[0];var e=[],o=this.attach(\"button\",{className:\"btn-default poll-group-by-toggle\",label:\"poll.ungroup-results.label\",title:\"poll.ungroup-results.title\",icon:\"far-eye-slash\",action:\"toggleGroupedPieCharts\"}),s=(0,c.h)(\"select#\"+l+\".poll-group-by-selector\",{value:u.groupBy},u.groupableUserFields.map(function(t){return(0,c.h)(\"option\",{value:t},((e=t.split(\"_\").filter(Boolean))[0]=(0,n.classify)(e[0]),e.join(\" \")));var e}));return e.push((0,c.h)(\"div.poll-grouped-pies-controls\",[o,s])),(0,i.ajax)(\"/polls/grouped_poll_results.json\",{data:{post_id:u.post.id,poll_name:u.poll.name,user_field_name:u.groupedBy}}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_fetching_voters\"))}).then(function(r){var t=document.getElementById(l);if(t){t.value=u.groupedBy;for(var a=document.getElementById(\"poll-results-grouped-pie-charts-\"+u.id),e=0;e<r.grouped_results.length;e++)!function(t){var e,l,o,s=b(r.grouped_results[t].options.mapBy(\"votes\"),r.grouped_results[t].options.mapBy(\"html\"),{aspectRatio:1.2}),n=\"pie-\"+u.id+\"-\"+t,i=document.querySelector(\"#\"+n);i?Chart.helpers.each(Chart.instances,function(t){t.chart.canvas.id===n&&i.$chartjs&&(t.destroy(),new Chart(i.getContext(\"2d\"),s))}):((e=document.createElement(\"div\")).classList.add(\"poll-grouped-pie-container\"),(l=document.createElement(\"label\")).classList.add(\"poll-pie-label\"),l.textContent=r.grouped_results[t].group,(o=document.createElement(\"canvas\")).classList.add(\"poll-grouped-pie-\"+u.id),o.id=n,e.appendChild(l),e.appendChild(o),a.appendChild(e),new Chart(o.getContext(\"2d\"),s))}(e)}}),e},click:function(t){var e=$(t.target).closest(\"select\");e.length&&this.sendWidgetAction(\"refreshCharts\",e[0].value)}}),(0,e.createWidget)(\"discourse-poll-pie-canvas\",{tagName:\"canvas.poll-results-canvas\",init:function(o){(0,l.default)(\"/javascripts/Chart.min.js\").then(function(){var t=b(o.poll.options.mapBy(\"votes\"),o.poll.options.mapBy(\"html\")),e=document.getElementById(\"poll-results-chart-\"+o.id),l=new Chart(e.getContext(\"2d\"),t);document.getElementById(\"poll-results-legend-\"+o.id).innerHTML=l.generateLegend()})},buildAttributes:function(t){return{id:\"poll-results-chart-\"+t.id}}}),(0,e.createWidget)(\"discourse-poll-pie-chart\",{tagName:\"div.poll-results-chart\",html:function(t){var e=[];if(!t.showResults)return g(t.id),e;var l=void 0,o=void 0;return t.groupResults&&0<t.groupableUserFields.length?(o=this.attach(\"discourse-poll-grouped-pies\",t),g(t.id)):(t.groupableUserFields.length&&(l=this.attach(\"button\",{className:\"btn-default poll-group-by-toggle\",label:\"poll.group-results.label\",title:\"poll.group-results.title\",icon:\"far-eye\",action:\"toggleGroupedPieCharts\"})),o=this.attach(\"discourse-poll-pie-canvas\",t)),e.push(l),e.push(o),e.push((0,c.h)(\"div#poll-results-legend-\"+t.id+\".pie-chart-legends\")),e}}),(0,e.createWidget)(\"discourse-poll-buttons\",{tagName:\"div.poll-buttons\",html:function(t){var e,l,o,s,n,i,r=[],a=t.poll,u=t.post,p=u.get(\"topic.archived\"),c=t.isClosed,d=\"staff_only\"===a.results,h=this.currentUser&&this.currentUser.staff,f=this.currentUser&&this.currentUser.admin,m=this.siteSettings.data_explorer_enabled,g=!d&&(c||p),b=this.siteSettings.poll_export_data_explorer_query_id;return t.isMultiple&&!g&&(e=!t.canCastVotes,r.push(this.attach(\"button\",{className:\"cast-votes \"+(e?\"btn-default\":\"btn-primary\"),label:\"poll.cast-votes.label\",title:\"poll.cast-votes.title\",disabled:e,action:\"castVotes\"})),r.push(\" \")),t.showResults||g?r.push(this.attach(\"button\",{className:\"btn-default toggle-results\",label:\"poll.hide-results.label\",title:\"poll.hide-results.title\",icon:\"far-eye-slash\",disabled:g,action:\"toggleResults\"})):\"on_vote\"!==a.get(\"results\")||t.hasVoted?\"on_close\"!==a.get(\"results\")||c?\"staff_only\"!==a.results||h?r.push(this.attach(\"button\",{className:\"btn-default toggle-results\",label:\"poll.show-results.label\",title:\"poll.show-results.title\",icon:\"far-eye\",disabled:0===a.get(\"voters\"),action:\"toggleResults\"})):r.push(x(I18n.t(\"poll.results.staff.title\"))):r.push(x(I18n.t(\"poll.results.closed.title\"))):r.push(x(I18n.t(\"poll.results.vote.title\"))),f&&m&&0<a.voters&&b&&r.push(this.attach(\"button\",{className:\"btn btn-default export-results\",label:\"poll.export-results.label\",title:\"poll.export-results.title\",icon:\"download\",disabled:0===a.voters,action:\"exportResults\"})),!a.get(\"close\")||(l=moment.utc(a.get(\"close\"))).isValid()&&(o=l.format(\"LLL\"),n=void 0,n=t.isAutomaticallyClosed?(s=(0,y.relativeAge)(l.toDate(),{addAgo:!0}),I18n.t(\"poll.automatic_close.age\",{age:s})):(i=moment().to(l.local(),!0),I18n.t(\"poll.automatic_close.closes_in\",{timeLeft:i})),r.push(new v.default({html:'<span class=\"info-text\" title=\"'+o+'\">'+n+\"</span>\"}))),!this.currentUser||this.currentUser.get(\"id\")!==u.get(\"user_id\")&&!h||p||(c?t.isAutomaticallyClosed||r.push(this.attach(\"button\",{className:\"btn-default toggle-status\",label:\"poll.open.label\",title:\"poll.open.title\",icon:\"unlock-alt\",action:\"toggleStatus\"})):r.push(this.attach(\"button\",{className:\"toggle-status btn-danger\",label:\"poll.close.label\",title:\"poll.close.title\",icon:\"lock\",action:\"toggleStatus\"}))),r}}),t.default=(0,e.createWidget)(\"discourse-poll\",{tagName:\"div\",buildKey:function(t){return\"poll-\"+t.id},buildAttributes:function(t){var e=\"poll\";return t.poll.chart_type===p.PIE_CHART_TYPE&&(e+=\" pie\"),{class:e,\"data-poll-name\":t.poll.get(\"name\"),\"data-poll-type\":t.poll.get(\"type\")}},defaultState:function(t){var e=t.post,l=t.poll,o=\"staff_only\"===t.poll.results;return{loading:!1,showResults:e.get(\"topic.archived\")&&!o||this.isClosed()&&!o||\"on_close\"!==l.results&&this.hasVoted()&&!o}},html:function(t,e){var l=\"staff_only\"===t.poll.results,o=e.showResults||t.post.get(\"topic.archived\")&&!l||this.isClosed()&&!l,s=jQuery.extend({},t,{canCastVotes:this.canCastVotes(),hasVoted:this.hasVoted(),isAutomaticallyClosed:this.isAutomaticallyClosed(),isClosed:this.isClosed(),isMultiple:this.isMultiple(),max:this.max(),min:this.min(),showResults:o});return(0,c.h)(\"div\",[this.attach(\"discourse-poll-container\",s),this.attach(\"discourse-poll-info\",s),this.attach(\"discourse-poll-buttons\",s)])},min:function(){var t=parseInt(this.attrs.poll.get(\"min\"),10);return(isNaN(t)||t<0)&&(t=0),t},max:function(){var t=parseInt(this.attrs.poll.get(\"max\"),10),e=this.attrs.poll.get(\"options.length\");return(isNaN(t)||e<t)&&(t=e),t},isAutomaticallyClosed:function(){var t=this.attrs.poll;return t.get(\"close\")&&moment.utc(t.get(\"close\"))<=moment()},isClosed:function(){return\"closed\"===this.attrs.poll.get(\"status\")||this.isAutomaticallyClosed()},isMultiple:function(){return\"multiple\"===this.attrs.poll.get(\"type\")},hasVoted:function(){var t=this.attrs.vote;return t&&0<t.length},canCastVotes:function(){var t=this.state,e=this.attrs;if(this.isClosed()||t.showResults||t.loading)return!1;var l=e.vote.length;return this.isMultiple()?l>=this.min()&&l<=this.max():0<l},toggleStatus:function(){var l=this,o=this.state,t=this.attrs,s=t.post,n=t.poll;this.isAutomaticallyClosed()||bootbox.confirm(I18n.t(this.isClosed()?\"poll.open.confirm\":\"poll.close.confirm\"),I18n.t(\"no_value\"),I18n.t(\"yes_value\"),function(t){var e;t&&(o.loading=!0,e=l.isClosed()?\"open\":\"closed\",(0,i.ajax)(\"/polls/toggle_status\",{type:\"PUT\",data:{post_id:s.get(\"id\"),poll_name:n.get(\"name\"),status:e}}).then(function(){n.set(\"status\",e),\"on_close\"===n.get(\"results\")&&(o.showResults=\"closed\"==e),l.scheduleRerender()}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_toggling_status\"))}).finally(function(){o.loading=!1}))})},toggleResults:function(){this.state.showResults=!this.state.showResults},exportResults:function(){var o=this.attrs,t=this.siteSettings.poll_export_data_explorer_query_id;(0,i.ajax)(\"/admin/plugins/explorer/queries/\"+t+\"/run.csv\",{type:\"POST\",data:{params:JSON.stringify({poll_name:o.poll.name,post_id:o.post.id.toString()}),explain:!1,limit:1e6,download:1}}).then(function(t){var e=document.createElement(\"a\"),l=new Blob([t],{type:\"text/csv;charset=utf-8;\"});e.href=URL.createObjectURL(l),e.setAttribute(\"download\",\"poll-export-\"+o.poll.name+\"-\"+o.post.id+\".csv\"),e.click(),e.remove()}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_exporting_results\"))})},showLogin:function(){this.register.lookup(\"route:application\").send(\"showLogin\")},_toggleOption:function(t){var e=this.attrs.vote,l=e.indexOf(t.id);-1!==l?e.splice(l,1):e.push(t.id)},toggleOption:function(t){var e=this,l=this.attrs;if(!this.isClosed()){if(!this.currentUser)return this.showLogin();if(m(this.currentUser,this.attrs.poll)){var o=l.vote;return this.isMultiple()||(o.length=0),this._toggleOption(t),this.isMultiple()?void 0:this.castVotes().catch(function(){return e._toggleOption(t)})}}},castVotes:function(){var l=this;if(this.canCastVotes()){if(!this.currentUser)return this.showLogin();var o=this.attrs,s=this.state;return s.loading=!0,(0,i.ajax)(\"/polls/vote\",{type:\"PUT\",data:{post_id:o.post.id,poll_name:o.poll.get(\"name\"),options:o.vote}}).then(function(t){var e=t.poll;o.poll.setProperties(e),\"on_close\"!==o.poll.get(\"results\")&&(s.showResults=!0),\"staff_only\"===o.poll.results&&(l.currentUser&&l.currentUser.get(\"staff\")?s.showResults=!0:s.showResults=!1)}).catch(function(t){t?(0,r.popupAjaxError)(t):bootbox.alert(I18n.t(\"poll.error_while_casting_votes\"))}).finally(function(){s.loading=!1})}},toggleGroupedPieCharts:function(){this.attrs.groupResults=!this.attrs.groupResults},refreshCharts:function(t){var e=document.getElementById(\"poll-results-grouped-pie-charts-\"+this.attrs.id);Array.from(e.getElementsByClassName(\"poll-grouped-pie-container\")).forEach(function(t){e.removeChild(t)}),this.attrs.groupedBy=t}})});\n//# sourceMappingURL=/assets/plugins/poll-3cc9e4d025f1ea14db3ee677b92d452219ade5d006e95e8f57e6143ef725188a.js.map"
          },
          "redirectURL": "",
          "headersSize": 194,
          "bodySize": 12253,
          "_transferSize": 12447
        },
        "cache": {},
        "timings": {
          "blocked": 3178.142000002703,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.047000000000025466,
          "wait": 198.73599998686632,
          "receive": 3.611000021919608,
          "_blocked_queueing": 2.802000002702698
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.629Z",
        "time": 1014.6660000063143,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/static.gnome.org/css/fonts.css",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 680,
          "bodySize": 0
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            },
            {
              "name": "X-Request-Id",
              "value": "a6db2c88-03c9-46a4-8292-8d721c322e0a"
            },
            {
              "name": "X-Runtime",
              "value": "0.036836"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 16897,
            "mimeType": "text/html",
            "compression": -13,
            "text": "<!DOCTYPE html>\n<html lang=\"en-US\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>GNOME Discourse</title>\n  <meta name=\"description\" content=\"\">\n  <meta name=\"generator\" content=\"Discourse 2.4.5 - https://github.com/discourse/discourse version 53c7d0200a67ba1a87aeb0f23370c2081249bf21\">\n<link rel=\"icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\">\n<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\">\n<meta name=\"theme-color\" content=\"#4a86cf\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover\">\n\n<script type=\"application/ld+json\">{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https://discourse.gnome.org\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://discourse.gnome.org/search?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"}}</script>\n<link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://discourse.gnome.org/opensearch.xml\" title=\"GNOME Discourse Search\">\n\n    <link href=\"/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop\" data-theme-id=\"5\"/>\n\n\n  <link href=\"/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-details\" data-theme-id=\"5\"/>\n  \n  <link href=\"/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-ldap-auth\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-local-dates\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-presence\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-solved\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"lazy-yt\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll_desktop\" data-theme-id=\"5\"/>\n\n  <link href=\"/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop_theme\" data-theme-id=\"5\"/>\n\n  \n\n  <link href=\"static.gnome.org/css/fonts.css\" rel=\"stylesheet\">\n  \n  \n</head>\n<body >\n  \n  \n  <section id='main'>\n    \n  <header class=\"d-header\">\n    <div class=\"wrap\">\n      <div class=\"contents clearfix\">\n        <div class=\"title\">\n          <a href=\"/\">\n              <img src=\"https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\" alt=\"GNOME Discourse\" id=\"site-logo\">\n          </a>\n        </div>\n        <div class=\"panel clearfix\">\n            <span class='header-buttons'>\n                <a href=\"/signup\" class='btn btn-primary btn-small sign-up-button'>Sign Up</a>\n              <a href=\"/login\" class='btn btn-primary btn-small login-button btn-icon-text'><svg class=\"fa d-icon svg-icon svg-node\" aria-hidden=\"true\"><svg id=\"user\" viewBox=\"0 0 448 512\">\n    <path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/>\n  </svg></svg>\nLog In</a>\n            </span>\n        </div>\n      </div>\n    </div>\n  </header>\n\n    <div id=\"main-outlet\" class=\"wrap not-found-container\">\n      <div class=\"page-not-found\">\n  <h1 class=\"title\">Oops! That page doesn’t exist or is private.</h1>\n\n</div>\n\n\n\n<div class=\"row page-not-found-topics\">\n  <div class=\"popular-topics\">\n    <h2 class=\"popular-topics-title\">Popular</h2>\n      <div class='not-found-topic'>\n        <a href=\"/t/official-proposal-how-we-define-gnome-software/3371\">Official proposal: how we define GNOME software</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/any-good-example-of-python-code-for-gstreamer-wayland/3323\">Any good example of Python code for GStreamer + Wayland?</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/gtk4-api-get-first-child/3484\">Gtk4 Api, get_first_child</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/id-like-to-help-with-gnome-shell-extension-smoke-tests/3366\">I&rsquo;d like to help with gnome shell extension smoke tests</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/hexadecimal-spin-button/3363\">Hexadecimal spin button</a><a class='badge-wrapper  bullet' href='/c/platform/core'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='The core components of the GNOME SDK'>Core</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/activities-overview-missing-after-update/3358\">Activities Overview Missing After Update?</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/how-to-return-value-in-gio-task/3455\">How to return value in Gio.Task?</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/patent-case-against-gnome-resolved/3386\">Patent case against GNOME resolved</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/gnome-annual-report-2019/3493\">GNOME Annual Report 2019</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/introduction-to-gtk-development-to-beginners/3392\">Introduction to GTK+ development to beginners</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n    <a href=\"/top\" class=\"btn btn-default\">More&hellip;</a>\n  </div>\n  <div class=\"recent-topics\">\n    <h2 class=\"recent-topics-title\">Recent</h2>\n      <div class='not-found-topic'>\n        <a href=\"/t/activate-callback-with-gtk-application-add-window/3522\">Activate callback with gtk_application_add_window()</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/extension-prefs-dialog-is-oversized/3521\">Extension prefs dialog is oversized</a><a class='badge-wrapper  bullet' href='/c/platform/core'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='The core components of the GNOME SDK'>Core</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/difference-between-idle-add-and-timeout-add-0-with-scroll-to-cell/3519\">Difference between idle_add(...) and timeout_add(0, ...) with scroll_to_cell</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/do-yelp-support-viewing-html-files/3515\">Do Yelp support viewing HTML files?</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/handle-event-from-ui-file/3511\">Handle event from .ui file</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/number-of-arguments-in-the-gcallback-function-and-how-to-find-out-the-name-of-an-argument-type/3509\">Number of arguments in the gcallback function, and how to find out the name of an argument type</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/emoji-not-displayed-on-mac-os/3508\">Emoji not displayed on Mac Os</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/two-different-views-on-the-same-screen/3507\">Two different views on the same screen</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/cant-load-ui-file-in-vala/3504\">Cant load .ui file in vala</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/is-there-a-way-to-have-two-dates-show-up-in-the-menu-bar-1-english-date-and-1-nepali-date/3502\">Is there a way to have two Dates show up in the menu bar? 1 English date and 1 Nepali date</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n    <a href=\"/latest\" class=\"btn btn-default\">More&hellip;</a>\n  </div>\n</div>\n\n\n  <div class=\"row\">\n    <div class=\"page-not-found-search\">\n      <h2>Search this site</h2>\n      <p>\n        <form action='/search' id='discourse-search'>\n          <input type=\"text\" name=\"q\" value=\"\">\n          <button class=\"btn btn-primary\">Search</button>\n        </form>\n      </p>\n    </div>\n  </div>\n\n  <link rel=\"preload\" href=\"/assets/onpopstate-handler-09bc9d995084d732c7f6dfaadcd21404e817fc736165b7b893bc2dd040749aae.js\" as=\"script\">\n<script src=\"/assets/onpopstate-handler-09bc9d995084d732c7f6dfaadcd21404e817fc736165b7b893bc2dd040749aae.js\"></script>\n\n\n    </div>\n  </section>\n  \n  \n  \n  \n</body>\n</html>\n"
          },
          "redirectURL": "",
          "headersSize": 167,
          "bodySize": 16910,
          "_transferSize": 17077
        },
        "cache": {},
        "timings": {
          "blocked": 4.5520000085886565,
          "dns": 0.010999999999999677,
          "ssl": 186.62300000000002,
          "connect": 368.687,
          "send": 9.240999999999985,
          "wait": 628.6900000039097,
          "receive": 3.484999993816018,
          "_blocked_queueing": 2.497000008588657
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739952"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.629Z",
        "time": 4396.252999987979,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 741,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "bbc238d4-ecde-44ca-bb79-6387875d34e2"
            },
            {
              "name": "X-Runtime",
              "value": "0.042606"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 293545,
            "mimeType": "text/css",
            "compression": -149,
            "text": "/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title],acronym[title]{text-decoration:underline;text-decoration-style:dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:1.7511em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=\"button\"],input[type=\"reset\"],input[type=\"submit\"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=\"checkbox\"],input[type=\"radio\"]{box-sizing:border-box;padding:0}input[type=\"number\"]::-webkit-inner-spin-button,input[type=\"number\"]::-webkit-outer-spin-button{height:auto}input[type=\"search\"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=\"search\"]::-webkit-search-cancel-button,input[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/\n */.pika-single{z-index:9999;display:block;position:relative;color:#222;background:#fff;border:1px solid #e9e9e9;border-bottom-color:#e9e9e9;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,0.5)}.pika-single:before,.pika-single:after{content:\" \";display:table}.pika-single:after{clear:both}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;filter:alpha(opacity=0);opacity:0}.pika-label{display:inline-block;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;color:#222;background-color:#fff}.pika-prev,.pika-next{display:block;cursor:pointer;position:relative;outline:none;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5}.pika-prev:hover,.pika-next:hover{opacity:1}.pika-prev.is-disabled,.pika-next.is-disabled{cursor:default;opacity:.2}.pika-prev,.is-rtl .pika-next{float:left;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\")}.pika-next,.is-rtl .pika-prev{float:right;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\")}.pika-select{display:inline-block}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table th,.pika-table td{width:14.285714285714286%;padding:0}.pika-table th{color:#222;font-size:12px;line-height:25px;font-weight:bold;text-align:center}.pika-table abbr{border-bottom:none;cursor:help}.pika-button{cursor:pointer;display:block;-moz-box-sizing:border-box;box-sizing:border-box;outline:none;border:0;margin:0;width:100%;padding:5px;color:#222;font-size:12px;line-height:15px;text-align:right;background:#fff}.is-today .pika-button{color:#08c;font-weight:bold}.is-selected .pika-button{color:#fff;font-weight:bold;background:#08c;box-shadow:inset 0 1px 3px #d1f0ff;border-radius:3px}.is-disabled .pika-button,.is-outside-current-month .pika-button{pointer-events:none;cursor:default;color:#222;opacity:.3}.pika-button:hover{color:#222;background:#d1f0ff;box-shadow:none;border-radius:3px}.pika-week{font-size:11px;color:#222}.is-inrange .pika-button{background:#D5E9F7}.is-startrange .pika-button{color:#fff;background:#6CB31D;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#08c;box-shadow:none;border-radius:3px}.pull-left{float:left}.pull-right{float:right}.show{display:block}.hide,.hidden{display:none}.invisible{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.affix{position:fixed}.clearfix:before,.nav-pills:before,.container:before,.wrap:before,.clearfix:after,.nav-pills:after,.container:after,.wrap:after{display:table;content:\" \"}.clearfix:after,.nav-pills:after,.container:after,.wrap:after{clear:both}.overflow-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clickable{cursor:pointer}.disable-no-hover:hover{background:#e9e9e9;color:#222}html{color:#222;font-family:Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;background-color:#fff;overflow-y:scroll;direction:ltr}html.text-size-smaller{font-size:14px}html.text-size-larger{font-size:17px}html.text-size-largest{font-size:19px}a{color:#08c;text-decoration:none;cursor:pointer}a:visited{color:#08c}a:hover{color:#08c}a:active{color:#08c}hr{display:block;height:1px;margin:1em 0;border:0;border-top:1px solid #e9e9e9;padding:0}ul,dd{margin:0 0 9px 25px;padding:0}.cooked ul,.cooked ol,.cooked dd{clear:both}.cooked ul,.d-editor-preview ul{margin:0;padding-left:40px}li>ul,li>ol{margin-bottom:0}img{vertical-align:middle}fieldset{margin:0;border:0;padding:0}pre code{overflow:auto;tab-size:4}.row:before,.row:after{display:table;content:\"\"}.row:after{clear:both}#offscreen-content{display:none}tbody{border-top:3px solid #e9e9e9}tr{border-bottom:1px solid #e9e9e9}tr.highlighted{animation:background-fade-highlight 2.5s ease-out}ruby>rt{font-size:72%}.select-kit.categories-admin-dropdown .select-kit-body{min-width:auto;width:250px}.select-kit.categories-admin-dropdown .select-kit-header .d-icon{justify-content:space-between}.select-kit.combo-box.category-chooser{width:300px}.select-kit.combo-box.category-chooser .select-kit-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.select-kit.combo-box.category-chooser .select-kit-row.none .topic-count{display:none}.select-kit.combo-box.category-chooser .select-kit-row .topic-count{font-size:.8706em;color:#222;white-space:nowrap;margin-left:0.5em;font-weight:normal}.select-kit.combo-box.category-chooser .select-kit-row .category-status{color:#222;line-height:1.4;-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto}.select-kit.combo-box.category-chooser .select-kit-row .category-desc{-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto;color:#919191;font-size:.8706em;line-height:1.4}.select-kit.combo-box.category-drop{min-width:auto}.select-kit.combo-box.category-drop .badge-wrapper{font-size:1em;font-weight:normal}.select-kit.combo-box.category-drop .badge-wrapper.box{margin:0}.select-kit.combo-box.category-drop .badge-wrapper.box span.badge-category{margin:0}.select-kit.combo-box.category-drop.bar.has-selection .category-drop-header{padding:0 5px 0 10px}.select-kit.combo-box.category-drop.box.has-selection .category-drop-header .badge-wrapper.box{padding:0}.select-kit.combo-box.category-drop .category-drop-header.is-none .selected-name{color:inherit}.select-kit.combo-box.category-drop .category-drop-header .badge-wrapper{margin-right:0}.select-kit.combo-box.category-drop .select-kit-body{min-width:300px}.select-kit.combo-box.category-drop .select-kit-row{flex-direction:column;align-items:flex-start}.select-kit.combo-box.category-drop .select-kit-row[data-value=\"all-categories\"],.select-kit.combo-box.category-drop .select-kit-row[data-value=\"no-categories\"]{color:#08c;font-weight:700}.select-kit.combo-box.category-drop .select-kit-row .category-desc{font-weight:normal;color:#919191;margin-top:2px}.select-kit.combo-box.category-drop .select-kit-row .category-status{align-items:center}.select-kit.combo-box.category-drop .select-kit-row .topic-count{margin-left:5px;font-weight:normal}.select-kit.combo-box.category-drop .select-kit-row .badge-wrapper{margin:0;font-weight:bold}.select-kit.combo-box.category-drop .select-kit-row .badge-wrapper:nth-child(2){margin-left:10px}.select-kit.combo-box.category-drop.is-expanded .select-kit-wrapper,.select-kit.combo-box.category-drop .select-kit-wrapper{display:none}.select-kit .category-row .category-status{display:flex;flex-wrap:wrap;align-items:center;max-width:100%;-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto}.select-kit .category-row .category-status .badge-wrapper.box{margin-bottom:1px;margin-top:1px}.select-kit .category-row .topic-count{white-space:nowrap}.select-kit.category-selector .select-kit-selected-name .badge-wrapper.box,.select-kit-box.category-selector .select-kit-selected-name .badge-wrapper.box{margin:2px;padding:0}.select-kit.combo-box.color-palettes .color-palettes-row .palettes{display:flex;align-items:center;margin-left:0.5em;flex:1 0 0}.select-kit.combo-box.color-palettes .color-palettes-row .palettes .palette{height:15px;width:15px;display:block}.select-kit.combo-box .select-kit-body{border-radius:0;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}.select-kit.combo-box .select-kit-row{margin:0;min-height:1px;padding:6px 10px}.select-kit.combo-box .select-kit-row.no-content{font-weight:normal}.select-kit.combo-box .select-kit-filter .filter-input,.select-kit.combo-box .select-kit-filter .filter-input:focus,.select-kit.combo-box .select-kit-filter .filter-input:active{flex:1}.select-kit.combo-box .select-kit-filter .filter-icon{margin-left:0.25em}.select-kit.combo-box .select-kit-header{background:#fff;border:1px solid #919191;padding:0 0.25em 0 0.5em;font-weight:500;font-size:1em}.select-kit.combo-box .select-kit-header.is-focused{border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box .select-kit-collection{display:flex;flex-direction:column;padding:0;min-width:100px;max-height:200px}.select-kit.combo-box .select-kit-collection .collection-header a{white-space:nowrap;color:#222;line-height:1.2;font-weight:bold;display:block;padding:6px 10px;color:#08c}.select-kit.combo-box .select-kit-collection .collection-header a:hover{text-decoration:underline}.select-kit.combo-box.is-disabled .select-kit-header{background:#e9e9e9;border-color:#bdbdbd;color:#919191}.select-kit.combo-box.is-disabled .select-kit-header .d-icon{color:#919191}.select-kit.combo-box.is-highlighted .select-kit-header{border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box.is-expanded .select-kit-wrapper{display:block;border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box.is-expanded.is-above .select-kit-header{border-radius:0 0 3px 3px}.select-kit.combo-box.is-expanded.is-above .select-kit-body{border-radius:3px 3px 0 0}.select-kit.combo-box.tag-drop,.select-kit.combo-box.group-dropdown{min-width:auto}.select-kit.combo-box.tag-drop{color:#646464}.select-kit.combo-box.group-dropdown .select-kit-row{font-weight:bold}.select-kit.combo-box.is-expanded .select-kit-wrapper,.select-kit.combo-box .select-kit-wrapper{display:none}.select-kit.dropdown-select-box.composer-actions{margin:0}.select-kit.dropdown-select-box.composer-actions .select-kit-header{background:none;outline:none;padding:0;margin-right:5px;border:1px solid #e9e9e9;min-height:unset}.select-kit.dropdown-select-box.composer-actions .select-kit-header .d-icon{padding:5px 6px}.select-kit.dropdown-select-box.composer-actions .select-kit-header:hover,.select-kit.dropdown-select-box.composer-actions .select-kit-header:focus{background:#e9e9e9}.select-kit.dropdown-select-box.composer-actions .d-icon{margin:0 !important}.select-kit.dropdown-select-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;min-width:auto;border:none}.select-kit.dropdown-select-box.is-expanded .select-kit-collection,.select-kit.dropdown-select-box.is-expanded .select-kit-body{border-radius:0}.select-kit.dropdown-select-box .select-kit-body{border:1px solid #e9e9e9;background-clip:padding-box;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);max-width:300px;width:300px}.select-kit.dropdown-select-box .select-kit-row{margin:0;padding:10px 5px}.select-kit.dropdown-select-box .select-kit-row .icons{display:-webkit-box;display:-ms-flexbox;display:flex;flex:0 0 auto;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-item-align:start;align-self:flex-start;margin-right:0.357em;margin-top:2px;width:30px}.select-kit.dropdown-select-box .select-kit-row .icons .d-icon{font-size:1.3195em;-ms-flex-item-align:center;align-self:center;margin-right:0;opacity:1}.select-kit.dropdown-select-box .select-kit-row .texts{line-height:1.4;-webkit-box-flex:1;-ms-flex:1;flex:1 1 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.select-kit.dropdown-select-box .select-kit-row .texts .name{-webkit-box-flex:1;-ms-flex:1;flex:1 1 auto;font-weight:bold;font-size:1em;color:#222;padding:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}.select-kit.dropdown-select-box .select-kit-row .texts .desc{-webkit-box-flex:1;-ms-flex:1;flex:1 1 auto;font-size:.8706em;font-weight:normal;color:#919191;white-space:normal}.select-kit.dropdown-select-box .select-kit-collection{padding:0;max-height:100%}.select-kit.dropdown-select-box .dropdown-select-box-header{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.select-kit.dropdown-select-box .dropdown-select-box-header .d-icon+.d-icon{margin-left:5px}.select-kit.dropdown-select-box .dropdown-select-box-header.is-focused{outline-style:auto;outline-color:#08c}.select-kit.combobox.future-date-input-selector{min-width:50%}.select-kit.combobox.future-date-input-selector .future-date-input-selector-header .btn-clear{line-height:1.4}.select-kit.combobox.future-date-input-selector .future-date-input-selector-datetime{color:#888;margin-left:5px;white-space:nowrap}.select-kit.combobox.future-date-input-selector .future-date-input-selector-icons{margin-right:5px}.select-kit.combobox.future-date-input-selector .btn-clear{padding:0;margin-left:5px}.select-kit.combobox.future-date-input-selector .future-date-input-selector-row .future-date-input-selector-icons{color:#888}.select-kit.icon-picker .multi-select-header .select-kit-selected-name .d-icon{color:#646464}.select-kit.multi-select.list-setting .select-kit-row.create .square{width:12px;height:12px;margin-left:5px}.select-kit.combo-box.mini-tag-chooser{margin-bottom:5px;margin-left:5px}.select-kit.combo-box.mini-tag-chooser.is-expanded .select-kit-header{border:1px solid #08c}.select-kit.combo-box.mini-tag-chooser.no-tags .select-kit-header .selected-name{color:#919191}.select-kit.combo-box.mini-tag-chooser .select-kit-header{height:30px}.select-kit.combo-box.mini-tag-chooser .select-kit-header .selected-name{margin:0;border:0;padding:0;outline:none;box-shadow:none;cursor:pointer;max-width:250px}.select-kit.combo-box.mini-tag-chooser .select-kit-header .selected-name .name{white-space:nowrap}.select-kit.combo-box.mini-tag-chooser .select-kit-filter{border-top:0}.select-kit.combo-box.mini-tag-chooser.is-expanded .select-kit-wrapper,.select-kit.combo-box.mini-tag-chooser .select-kit-wrapper{display:none}.select-kit.combo-box.mini-tag-chooser .select-kit-row.is-selected{background:none}.select-kit.combo-box.mini-tag-chooser .select-kit-row.is-highlighted.is-selected{background:#d1f0ff}.select-kit.combo-box.mini-tag-chooser .select-kit-row .discourse-tag-count{margin-left:5px}.select-kit.combo-box.mini-tag-chooser .selected-tags{max-height:125px;overflow-y:auto;display:flex;border-bottom:1px solid #e9e9e9;padding:0.25em 0 0 0.25em;box-sizing:border-box;flex-wrap:wrap;width:100%}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag{background:#e9e9e9;box-sizing:border-box;margin:0;padding:0.5em;border:0;font-size:.8706em;margin-right:0.25em;margin-bottom:0.25em}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag .tag-icon{margin-right:0.25em}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag.is-highlighted{box-shadow:0 0 2px #e45735,0 1px 0 rgba(0,0,0,0.05)}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag .d-icon{color:#bdbdbd;vertical-align:middle}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag:hover .d-icon.d-icon-times{color:#e45735}.select-kit.multi-select{width:300px;background:#fff;border-radius:0}.select-kit.multi-select .select-kit-body{width:100%}.select-kit.multi-select .select-kit-row{margin:5px;min-height:1px;padding:5px;border-radius:0}.select-kit.multi-select .select-kit-filter{border:0;flex:1 0 0px;margin:1px}.select-kit.multi-select .multi-select-header{background:#fff;border:1px solid #919191}.select-kit.multi-select .multi-select-header.is-focused{box-shadow:0 0 6px 0 #08c;border-radius:0}.select-kit.multi-select.is-disabled .multi-select-header{background:#e9e9e9;border-color:#bdbdbd;color:#919191}.select-kit.multi-select.is-disabled .multi-select-header .d-icon{color:#919191}.select-kit.multi-select.is-expanded .select-kit-wrapper{display:block;border:1px solid #08c;box-shadow:0 0 6px 0 #08c;border-radius:0}.select-kit.multi-select.is-expanded .multi-select-header{border-radius:0;box-shadow:none}.select-kit.multi-select.is-expanded .select-kit-body{border-radius:0}.select-kit.multi-select .choices{margin:0;padding:0 0 2px 0;box-sizing:border-box;display:block;width:100%}.select-kit.multi-select .choices .choice{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:space-between;margin:2px 0 0px 3px;padding:0;float:left;height:30px}.select-kit.multi-select .choices .choice.input-wrapper{min-width:120px}.select-kit.multi-select .choices .filter{white-space:nowrap;min-width:50px;padding:0;outline:none;flex:1;display:flex}.select-kit.multi-select .choices .filter .filter-input,.select-kit.multi-select .choices .filter .filter-input:focus{border:none;background:none;display:inline-block;width:100%;outline:none;min-width:auto;padding:0;margin:0;outline:0;border:0;box-shadow:none;border-radius:0;min-height:unset}.select-kit.multi-select .choices .selected-color .selected-color-wrapper{display:flex;flex:1 0 0px;flex-direction:column}.select-kit.multi-select .choices .selected-color .color-preview{height:5px;margin:0 2px 2px 0px;display:flex;width:100%}.select-kit.multi-select .choices .selected-category .body{display:flex;align-items:center}.select-kit.multi-select .choices .selected-category .badge-wrapper{padding:2px 4px;line-height:1.2;display:flex;flex:1 0 0px;align-items:center}.select-kit.multi-select .choices .selected-category .badge-wrapper.bullet{margin-right:2.5px}.select-kit.multi-select .choices .selected-name{background:#e9e9e9;padding:0.25em;flex:1;align-items:center;display:flex;justify-content:space-between}.select-kit.multi-select .choices .selected-name .d-icon{color:#bdbdbd;vertical-align:middle}.select-kit.multi-select .choices .selected-name .d-icon:last-child{margin-left:0.5em}.select-kit.multi-select .choices .selected-name:hover .d-icon:last-child{color:#e45735}.select-kit.multi-select .choices .selected-name.is-highlighted{box-shadow:0 0 2px #e45735,0 1px 0 rgba(0,0,0,0.05)}.select-kit.dropdown-select-box.notifications-button .select-kit-body{max-width:400px;width:400px}@media screen and (max-width: 767px){.select-kit.dropdown-select-box.notifications-button .select-kit-body{width:auto}}.select-kit.dropdown-select-box.notifications-button .select-kit-row .icons{-ms-flex-item-align:start;align-self:flex-start}.select-kit.dropdown-select-box.period-chooser{display:inline-flex;position:relative}.select-kit.dropdown-select-box.period-chooser .select-kit-collection{padding:5px}.select-kit.dropdown-select-box.period-chooser .period-chooser-header{background:none;border:none;justify-content:flex-start;width:auto;height:auto;padding:0}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name{color:#fff;display:inline-block;box-sizing:border-box}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name .date-section{color:#222;margin-right:5px}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name .top-date-string{font-size:.8706em;color:#919191;font-weight:normal;text-transform:uppercase}.select-kit.dropdown-select-box.period-chooser .period-chooser-header .d-icon{color:#222;opacity:1;margin:5px 0 10px 5px;font-size:1.5157em}.select-kit.dropdown-select-box.period-chooser .period-chooser-header.is-focused,.select-kit.dropdown-select-box.period-chooser .period-chooser-header:hover{background:none;border:none;outline:none}.select-kit.dropdown-select-box.period-chooser .period-chooser-row{font-weight:bold;padding:5px;font-size:1.1487em;align-items:center;display:flex}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .period-title{flex:1 0 0px}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .date-section{color:#222}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .top-date-string{font-weight:normal;font-size:.8706em;color:#919191;text-transform:uppercase;margin-left:5px}#topic-footer-buttons .pinned-button{min-width:auto;margin:1em 0}#topic-footer-buttons .pinned-button.is-hidden{display:none}#topic-footer-buttons .pinned-button .btn{margin:0}#topic-footer-buttons .pinned-button .reason{display:inline;line-height:1.2}.pinned-button{margin:0;min-width:auto}.pinned-button .pinned-options{display:inline}.pinned-button .pinned-options .select-kit-body{min-width:unset;max-width:unset;width:550px}.select-kit{border:none;min-width:220px;box-sizing:border-box;display:inline-block;flex-direction:column;position:relative;vertical-align:middle;user-select:none}.select-kit.is-hidden{display:none}.select-kit.is-disabled{pointer-events:none}.select-kit.is-expanded{z-index:300}.select-kit.is-expanded .select-kit-body{display:flex;flex-direction:column;left:0;position:absolute;top:0;align-items:center;justify-content:center}.select-kit.is-expanded .select-kit-collection{border-radius:inherit;box-sizing:border-box;width:100%}.select-kit.is-loading .select-kit-collection{overflow:hidden}.select-kit.is-above .select-kit-filter{border-top:0}.select-kit.is-above .select-kit-wrapper{bottom:0;top:auto}.select-kit .d-icon{color:#646464}.select-kit .select-kit-header{box-sizing:border-box;overflow:hidden;transition:all 0.25s;cursor:pointer;display:flex;align-items:center;flex-direction:row;min-height:30px}.select-kit .select-kit-header .selected-name{text-align:left;flex:0 1 auto;color:inherit;display:flex}.select-kit .select-kit-header .selected-name .d-icon+.name{margin-left:0.5em}.select-kit .select-kit-header .selected-name .name{display:inline-block}.select-kit .select-kit-header .selected-name.select-kit-selected-color{border-bottom-width:5px;border-bottom-style:solid}.select-kit .select-kit-header .btn-clear{margin-left:0.25em;padding:0.25em;border:0;background:none;min-height:auto}.select-kit .select-kit-header .icon{margin-right:5px}.select-kit .select-kit-header .caret-icon{margin-left:auto;padding-left:5px;pointer-events:none}.select-kit .select-kit-header .d-button-label{display:flex;align-items:center;white-space:nowrap;overflow:hidden;line-height:1.2}.select-kit .select-kit-header .d-button-label .d-icon{margin-left:5px;margin-right:0}.select-kit .select-kit-body{display:none;background:#fff;box-sizing:border-box;min-width:inherit}.select-kit .select-kit-row{cursor:pointer;line-height:1.2;outline:none;display:flex;flex:1 0 auto;box-sizing:border-box;align-items:center;justify-content:flex-start}.select-kit .select-kit-row .name{margin:0;overflow:hidden;text-overflow:ellipsis;flex:1 1 0%}.select-kit .select-kit-row .d-icon+.name,.select-kit .select-kit-row .svg-icon-title+.name{margin-left:0.5em}.select-kit .select-kit-row.is-highlighted{background:#d1f0ff}.select-kit .select-kit-row.is-selected{background:#ffffa6}.select-kit .select-kit-row.is-selected.is-highlighted{background:#d1f0ff}.select-kit .select-kit-row .discourse-tag,.select-kit .select-kit-row .discourse-tag-count{color:#222}.select-kit .select-kit-row.create-color-row{border-left-style:solid;border-left-width:5px}.select-kit .select-kit-collection{background:#fff;overflow-x:hidden;overflow-y:auto;border-radius:inherit;-webkit-overflow-scrolling:touch;margin:0;padding:0;max-height:200px;width:100%}.select-kit .select-kit-collection .validation-message{white-space:nowrap;color:#e45735;flex:1 0 auto;margin:5px;padding:0 2px}.select-kit .select-kit-collection .select-kit-collection{padding:0;margin:0}.select-kit .select-kit-collection .select-kit-collection:hover .select-kit-row.is-highlighted:hover{background:#d1f0ff}.select-kit .select-kit-collection::-webkit-scrollbar{-webkit-appearance:none;width:10px}.select-kit .select-kit-collection::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:#919191}.select-kit .select-kit-collection::-webkit-scrollbar-track{background:transparent;border-radius:0}.select-kit .select-kit-filter{box-sizing:border-box;align-items:center;justify-content:space-between;width:100%}.select-kit .select-kit-filter .filter-input{background:none;margin:0;padding:0;flex:1 0 0px;outline:none;border:0;border-radius:0;box-shadow:none;width:auto}.select-kit .select-kit-filter.is-hidden{width:1px;height:1px;border:0;margin:-1px;padding:0;overflow:hidden;position:fixed;outline:0;left:0;top:0}.select-kit .select-kit-wrapper{position:absolute;top:0;left:0;background:none;display:none;box-sizing:border-box;pointer-events:none}.select-kit .select-kit-errors-collection{background:#e45735;padding:0.25em 1em;margin:0;width:100%;box-sizing:border-box}.select-kit .select-kit-errors-collection .select-kit-error{list-style:none;color:#fff}.select-kit .no-content,.select-kit .is-loading{display:flex;flex:1 0 auto;padding:0.5em;width:100%;box-sizing:border-box;background:#fff}.select-kit .is-loading{align-items:center;justify-content:center}.select-kit.single-select .select-kit-filter{display:flex}.select-kit.single-select .select-kit-filter.is-expanded{padding:0.25em 0.5em;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}.select-kit.multi-select.tag-chooser .select-kit-row{display:flex;align-items:center}.select-kit.multi-select.tag-chooser .select-kit-row .discourse-tag-count{margin-left:5px}.select-kit.combo-box.tag-drop{min-width:auto}.select-kit.combo-box.tag-drop .select-kit-row[data-value=\"all-tags\"],.select-kit.combo-box.tag-drop .select-kit-row[data-value=\"no-tags\"]{color:#08c;font-weight:700}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-body{box-shadow:none;padding:0.5em 0.5em 0.25em 0.5em;width:230px}.select-kit.dropdown-select-box.toolbar-popup-menu-options .toolbar-popup-menu-options-heading{width:100%}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row{margin-bottom:0.25em;padding:0.5em 0.25em;background:#e9e9e9;transition:all 0.25s}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .texts .name,.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .icons .d-icon{font-size:1em;font-weight:normal;color:#222}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .d-icon{opacity:0.7}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted{background:#919191}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted .name,.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted .d-icon{color:#fff}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row:hover{background:#919191;color:#fff}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-selected{color:#222;background:#e9e9e9}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-selected.is-highlighted{background:#919191;color:#222}#topic-footer-buttons .topic-notifications-button{min-width:auto;margin:1em 0}#topic-footer-buttons .topic-notifications-button .btn{margin:0}#topic-footer-buttons .topic-notifications-button .reason{display:inline;line-height:1.2}.topic-notifications-button .topic-notifications-options{min-width:auto}.topic-notifications-button{margin:0}.topic-notifications-button .topic-notifications-options{display:inline-flex}.select-kit.dropdown-select-box.user-notifications-dropdown{text-align:left}.select-kit.dropdown-select-box.user-notifications-dropdown .select-kit-body{width:485px;max-width:485px}.select-kit.dropdown-select-box.user-notifications-dropdown .select-kit-header{justify-content:center}.select-kit.dropdown-select-box.user-notifications-dropdown .dropdown-select-box-header{align-items:center}.user-chooser .select-kit-row.user-row .avatar{margin-left:0;margin-right:0.5em}.user-chooser .select-kit-row.user-row .username{color:#222;white-space:nowrap}.user-chooser .select-kit-row.user-row .name{color:#646464;font-size:.8706em;margin-left:0.5em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.badge-notification,.badge-group{display:inline-block;font-weight:normal;white-space:nowrap;border-radius:10px}.badge-wrapper{font-size:.8706em;font-weight:bold;white-space:nowrap;position:relative;display:inline-flex;align-items:baseline}.badge-wrapper .badge-category{display:inline-flex;align-items:baseline}.badge-wrapper .badge-category .category-name{text-overflow:ellipsis;overflow:hidden}.badge-wrapper .badge-category .d-icon{margin-right:3px;width:0.74em;height:0.74em;color:inherit}.badge-wrapper.bullet{margin-right:12px}.badge-wrapper.bullet span.badge-category{color:#646464;overflow:hidden;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper.bullet span.badge-category{color:#fff}.badge-wrapper.bullet .badge-category-parent-bg,.badge-wrapper.bullet .badge-category-bg{flex:0 0 auto;width:9px;height:9px;margin-right:5px;display:inline-block}.badge-wrapper.bullet .badge-category-parent-bg{width:5px;margin-right:0}.badge-wrapper.bullet .badge-category-parent-bg+.badge-category-bg{width:5px}.badge-wrapper.bullet .d-icon{color:#919191}.badge-wrapper.box{margin-right:5px;padding:2px 4px 2px 4px;display:inline-flex}.badge-wrapper.box span{overflow:hidden;text-overflow:ellipsis}.badge-wrapper.box span.badge-category-bg,.badge-wrapper.box span.badge-category-parent-bg{position:absolute;top:0;right:0;bottom:0;left:0}.badge-wrapper.box span.badge-category-parent-bg{width:calc(100% - 5px)}.badge-wrapper.box span.badge-category-parent-bg+.badge-category-bg{left:5px;width:calc(100% - 5px)}.badge-wrapper.box span.badge-category-parent-bg+.badge-category-bg+.badge-category{margin-left:5px}.badge-wrapper.box span.badge-category{position:relative}.badge-wrapper.box+.topic-header-extra{padding:2px 4px 2px 4px}.badge-wrapper.bar{margin-right:5px}.badge-wrapper.bar span.badge-category{color:#646464;padding:1px 3px;overflow:hidden;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper.bar span.badge-category{color:#fff}.badge-wrapper.bar .badge-category-parent-bg,.badge-wrapper.bar .badge-category-bg{display:inline-block;padding:0 1px}.badge-wrapper.bar .badge-category-parent-bg:before,.badge-wrapper.bar .badge-category-bg:before{content:\"\\a0\"}.badge-wrapper.none{color:#646464;margin-right:5px}.list-controls .category-breadcrumb a.badge-category{display:inline-block;padding:6px 8px;line-height:1.2}.badge-notification{padding:0.21em 0.42em;min-width:0.5em;color:#fff;font-size:.7579em;line-height:1;text-align:center;background-color:#bdbdbd}.badge-notification[href]{color:#fff}.badge-notification:hover{color:#fff}.badge-notification.new-posts,.badge-notification.unread-posts{background-color:#6cf;color:#fff;font-weight:normal}.badge-notification.new-topic{background-color:transparent;color:#0aadff;font-weight:normal;font-size:.8706em}.badge-notification.new-topic::before{content:\"●\";margin-right:2px}.badge-notification.clicks{font-weight:normal;background-color:#e9e9e9;top:-1px;color:#919191;position:relative;border:none}.badge-posts{font-weight:normal;font-size:1em;line-height:1}.badge-posts[href]{color:#919191}.badge-group{padding:2px 5px;color:#222;background-color:#e9e9e9;border-color:#e9e9e9;font-size:.8706em}#banner{padding:10px;background:#d1f0ff;color:#222;z-index:2;overflow:auto}#banner.overlay{position:fixed}#banner .close{margin-top:-5px;color:#bdbdbd;padding-left:5px;float:right}#banner .meta{display:none}.bookmark-with-reminder.modal .modal-body{max-width:410px;min-width:380px}.bookmark-with-reminder.modal .modal-body .control-label{font-weight:700}.bookmark-with-reminder.modal .modal-body .ember-text-field.bookmark-name{width:100%}.btn.hidden{display:none}.btn{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#222;background:#e9e9e9;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn .d-icon{color:#646464;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.no-text .d-icon{margin-right:0}.discourse-no-touch .btn:hover,.discourse-no-touch .btn.btn-hover{background:#919191;color:#fff}.discourse-no-touch .btn:hover .d-icon,.discourse-no-touch .btn.btn-hover .d-icon{color:#e9e9e9}.btn[href]{color:#222}.btn:active,.btn.btn-active{background-color:#bababa;background-image:linear-gradient(to bottom, #bababa, #e9e9e9)}.btn[disabled],.btn.disabled{opacity:0.4;cursor:not-allowed}.btn[disabled]:hover,.btn.disabled:hover{color:#222;background:#e9e9e9}.btn[disabled]:hover .d-icon,.btn.disabled:hover .d-icon{color:#646464}.btn-primary{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#08c;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn-primary .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn-primary.no-text .d-icon{margin-right:0}.discourse-no-touch .btn-primary:hover,.discourse-no-touch .btn-primary.btn-hover{background:#069;color:#fff}.discourse-no-touch .btn-primary:hover .d-icon,.discourse-no-touch .btn-primary.btn-hover .d-icon{color:#fff}.btn-primary[href]{color:#fff}.btn-primary:active,.btn-primary.btn-active{background-color:#006da3;background-image:linear-gradient(to bottom, #006da3, #08c)}.btn-primary[disabled],.btn-primary.disabled{opacity:0.4;cursor:not-allowed}.btn-primary[disabled]:hover,.btn-primary.disabled:hover{color:#fff;background:#08c}.btn-primary[disabled]:hover .d-icon,.btn-primary.disabled:hover .d-icon{color:#fff}.btn-danger{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#e45735;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn-danger .d-icon{color:#fbe6e1;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn-danger.no-text .d-icon{margin-right:0}.discourse-no-touch .btn-danger:hover,.discourse-no-touch .btn-danger.btn-hover{background:#c63c1b;color:#fff}.discourse-no-touch .btn-danger:hover .d-icon,.discourse-no-touch .btn-danger.btn-hover .d-icon{color:#fbe6e1}.btn-danger[href]{color:#fff}.btn-danger:active,.btn-danger.btn-active{background-color:#c63c1b;background-image:linear-gradient(to bottom, #c63c1b, #e45735)}.btn-danger[disabled],.btn-danger.disabled{opacity:0.4;cursor:not-allowed}.btn-danger[disabled]:hover,.btn-danger.disabled:hover{color:#fff;background:#e45735}.btn-danger[disabled]:hover .d-icon,.btn-danger.disabled:hover .d-icon{color:#fbe6e1}.btn.cancel{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#e45735;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn.cancel .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.cancel.no-text .d-icon{margin-right:0}.discourse-no-touch .btn.cancel:hover,.discourse-no-touch .btn.cancel.btn-hover{background:#c63c1b;color:#fff}.discourse-no-touch .btn.cancel:hover .d-icon,.discourse-no-touch .btn.cancel.btn-hover .d-icon{color:#fff}.btn.cancel[href]{color:#fff}.btn.cancel:active,.btn.cancel.btn-active{background-color:#c63c1b;background-image:linear-gradient(to bottom, #c63c1b, #e45735)}.btn.cancel[disabled],.btn.cancel.disabled{opacity:0.4;cursor:not-allowed}.btn.cancel[disabled]:hover,.btn.cancel.disabled:hover{color:#fff;background:#e45735}.btn.cancel[disabled]:hover .d-icon,.btn.cancel.disabled:hover .d-icon{color:#fff}.btn.ok{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#090;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn.ok .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.ok.no-text .d-icon{margin-right:0}.discourse-no-touch .btn.ok:hover,.discourse-no-touch .btn.ok.btn-hover{background:#007a00;color:#fff}.discourse-no-touch .btn.ok:hover .d-icon,.discourse-no-touch .btn.ok.btn-hover .d-icon{color:#fff}.btn.ok[href]{color:#fff}.btn.ok:active,.btn.ok.btn-active{background-color:#007a00;background-image:linear-gradient(to bottom, #007a00, #090)}.btn.ok[disabled],.btn.ok.disabled{opacity:0.4;cursor:not-allowed}.btn.ok[disabled]:hover,.btn.ok.disabled:hover{color:#fff;background:#090}.btn.ok[disabled]:hover .d-icon,.btn.ok.disabled:hover .d-icon{color:#fff}.btn-social{color:#fff;background:#666}.btn-social .d-icon{color:#fff}.btn-social:hover{color:#fff}.btn-social[href]{color:#fff}.btn-social:before{margin-right:9px;font-size:1em}.btn-social.google_oauth2{background:#fff;color:#333;border:1px solid #e9e9e9}.btn-social.google_oauth2 .d-icon{opacity:0.9}.btn-social.google_oauth2:hover{color:currentColor;background:#f2f2f2}.btn-social.instagram{background:#e1306c}.btn-social.instagram:hover{background:#ac194b}.btn-social.facebook{background:#4267b2}.btn-social.facebook:hover{background:#2d477a}.btn-social.cas{background:#70ba61}.btn-social.twitter{background:#1da1f2}.btn-social.twitter:hover{background:#0c85d0}.btn-social.github{background:#100e0f}.btn-social.github:hover{background:#463e42}.btn-social.discord{background:#7289da}.btn-social.discord:hover{background:#4a67cf}.btn-small{padding:6px;font-size:.8706em;min-height:20px}.btn-small .d-icon{max-height:0.87em}.btn-large{padding:9px 18px;font-size:1.1487em;line-height:1}.btn-flat{background:transparent;border:0;outline:0;line-height:1;transition:color 0.25s, background 0.25s}.btn-flat .d-icon{color:#bdbdbd}.discourse-no-touch .btn-flat:hover .d-icon,.discourse-no-touch .btn-flat.btn-hover .d-icon{color:#222}.btn-flat.close{padding:0;min-height:unset;background:transparent;font-size:1.5157em}.btn-flat.close .d-icon{color:#646464}.discourse-no-touch .btn-flat.close:hover,.discourse-no-touch .btn-flat.close.btn-hover{background:transparent}.discourse-no-touch .btn-flat.close:hover .d-icon,.discourse-no-touch .btn-flat.close.btn-hover .d-icon{color:#222}.btn-link{background:transparent;border:0;outline:0;padding:0;color:#08c}.btn-link:focus{outline:1px currentColor dotted}.conditional-loading-section.is-loading{padding:2em;margin:1em;display:flex;align-items:center;justify-content:center;background:#f8f8f8;flex-direction:column}.conditional-loading-section.is-loading .title{font-size:1.1487em;font-weight:700}.conditional-loading-section:not(.is-loading){animation:fadein 0.5s;-webkit-animation:fadein 0.5s}@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}.convert-to-public-topic .modal-body .instructions{margin-bottom:1em}.d-date-input .date-picker{margin:0;text-align:left;width:100%;outline:none;box-shadow:none !important}.d-date-input .pika-single{margin-left:-1px}.pika-table th,.pika-table td{padding:0 !important;border-top:none !important;border-bottom:none !important}.date-picker-wrapper{position:relative;display:inline-block}.date-picker{text-align:center;width:8em;margin:0}.pika-single{position:absolute !important}.d-date-time-input-range{padding:0.5em;background:whitesmole;border:1px solid #e9e9e9;width:300px;display:flex;flex-direction:column}.d-date-time-input-range .panels{display:inline-flex;list-style:none;margin:0 0 0.5em 0;flex:1}.d-date-time-input-range .panels.from .from-panel{background:#e45735;color:#fff}.d-date-time-input-range .panels.to .to-panel{background:#e45735;color:#fff}.d-date-time-input-range .panels .btn{margin-right:0.5em}.d-date-time-input-range .panel{display:none;flex:1}.d-date-time-input-range .panel.visible{display:flex}.d-date-time-input{display:flex;align-items:center;border:1px solid #e9e9e9;width:258px;box-sizing:border-box;position:relative;flex:1;justify-content:space-between}.d-date-time-input .date-picker,.d-date-time-input .fields{border:0}body.footer-nav-visible #main-outlet{padding-bottom:64px}body.footer-nav-visible #topic-progress-wrapper,body.footer-nav-visible #reply-control.draft{bottom:49px}body.footer-nav-visible #reply-control.draft{margin-bottom:env(safe-area-inset-bottom);padding-bottom:0px}.footer-nav{background-color:rgba(74,134,207,0.9);box-shadow:0 0 2px 0 rgba(0,0,0,0.25);height:49px;position:fixed;bottom:-49px;left:0;width:100%;z-index:900;transition:all linear 0.1s}.footer-nav .d-icon{color:#a6a6a6}.footer-nav.visible{bottom:0px}.footer-nav .footer-nav-widget{display:flex;justify-content:\"space-evenly\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.footer-nav .footer-nav-widget button{flex:1;margin:4px;border-radius:2px;padding:14px 18px}.footer-nav .footer-nav-widget button:disabled{opacity:0.6}@supports (padding: 0px){.footer-nav.visible{padding-bottom:max(5px, env(safe-area-inset-bottom))}}@supports (-webkit-backdrop-filter: blur(10px)){body:not(.footer-nav-ipad) .footer-nav{background-color:rgba(74,134,207,0.7);-webkit-backdrop-filter:blur(20px)}}body.footer-nav-ipad{padding-top:49px}body.footer-nav-ipad .footer-nav{bottom:auto;top:0px;background-color:#4a86cf;z-index:1020;padding-bottom:0}body.footer-nav-ipad #reply-control,body.footer-nav-ipad #reply-control.fullscreen{z-index:1021}body.footer-nav-ipad.docked .d-header{margin-top:49px}.group-member-dropdown{text-align:left}.group-form-automatic-membership-automatic,.groups-form-grant-trust-level{margin-bottom:10px}a.hashtag{color:#222;font-weight:bold}a.hashtag:visited,a.hashtag:hover{color:#222}a.hashtag:hover span{text-decoration:underline}.iframed-html{background:white;border:none}.ignored-list{overflow:auto;max-height:150px;display:flex;flex-wrap:wrap;align-items:center;background-color:#fff;min-height:30px;box-sizing:border-box}.ignored-user-list-item{border:1px solid #919191;border-radius:0.25em;padding:0;display:flex;align-items:center;margin-right:10px}.remove-ignored-user{display:flex;flex:1 0 0px;align-items:center;justify-content:center;box-sizing:border-box;border-radius:0 0.25em 0.25em 0;padding-top:0;padding-bottom:0;height:100%}.ignored-user-name{padding-left:10px;padding-right:10px}.topic-list-item td:first-child,.topic-post{border-left:1px solid transparent}.topic-list tr.selected td:first-child,.topic-list-item.selected td:first-child,.latest-topic-list-item.selected{box-shadow:inset 3px 0 0 #e45735}.featured-topic.selected,.topic-post.selected{box-shadow:-3px 0 0 #e45735}.latest .featured-topic{padding-left:4px}.topic-list-item.selected{background-color:inherit}.keyboard-shortcuts-modal .modal-body{max-height:560px}#keyboard-shortcuts-help div.row{width:100%}#keyboard-shortcuts-help div.row div{float:left;width:32%}#keyboard-shortcuts-help ul{list-style:none;margin-left:0}#keyboard-shortcuts-help ul li{margin:5px 0}#keyboard-shortcuts-help ul kbd{font-size:15px;font-family:Helvetica,Arial,sans-serif;margin:0;color:#444;font-weight:bold;padding:2px 6px;white-space:nowrap}.nav-pills,.nav-stacked{margin-left:0;list-style:none}.nav-pills li a,.nav-stacked li a{display:block;text-decoration:none}.nav-pills>li{float:left;margin-right:5px}.nav-pills>li>a{border:none;padding:6px 12px;color:#222;font-size:1.1487em;line-height:1;box-sizing:border-box;min-height:30px;display:flex;align-items:center;transition:background 0.15s}.nav-pills>li>a .d-icon{margin-right:5px;opacity:0.65}.nav-pills>li>a:hover{color:#e45735;background-color:#f7cdc2}.nav-pills>li a.active{color:#fff;background-color:#e45735}.nav-pills>li a.active .d-icon{opacity:1}.nav-stacked{padding:0;overflow:hidden;background:#e9e9e9}.nav-stacked li{border-bottom:1px solid #e9e9e9;position:relative}.nav-stacked li:last-of-type{border-bottom:0}.nav-stacked li.indent{padding-left:15px}.nav-stacked a{margin:0;padding:13px;font-size:1.1487em;line-height:1;cursor:pointer;color:#222}.nav-stacked a.active{color:#fff;background-color:#e45735}.nav-stacked a.active::after{left:90%;top:33%;content:\" \";position:absolute;border:8px solid transparent;border-left-color:#fff}.nav-stacked .count{font-size:.8706em}.nav-stacked .glyph{font-size:.8706em;width:1.25em;text-align:center;margin-right:0.25em;line-height:1.4}.share-and-invite.modal .modal-body{max-width:475px;min-width:320px;padding:0}.share-and-invite.modal .modal-panel{padding:0.667em}.share-and-invite.modal .modal-header .modal-close{padding-left:0}.share-and-invite.modal .share.modal-panel .header{display:flex;flex-direction:row;align-items:center}.share-and-invite.modal .share.modal-panel .header .title{font-size:1em;font-weight:normal;margin-bottom:8px}.share-and-invite.modal .share.modal-panel .header .title .post-date{color:#919191;font-size:.8706em}.share-and-invite.modal .share.modal-panel .body{display:flex;flex-direction:column}.share-and-invite.modal .share.modal-panel .body .topic-share-url{width:100%;height:auto;box-sizing:border-box}.share-and-invite.modal .share.modal-panel .body .topic-share-url-for-touch a{word-break:break-all;font-size:1.1487em}.share-and-invite.modal .share.modal-panel .body .topic-share-url-for-touch,.share-and-invite.modal .share.modal-panel .body .topic-share-url{margin-bottom:8px}.share-and-invite.modal .share.modal-panel .body .sources{display:flex;align-items:center;flex-wrap:wrap;flex-direction:row}.share-and-invite.modal .share.modal-panel .body .sources .social-link{font-size:2.296em;margin-right:8px}.share-and-invite.modal .invite.modal-panel .error-message,.share-and-invite.modal .invite.modal-panel .success-message{margin-bottom:8px}.share-and-invite.modal .invite.modal-panel .body .invite-user-control,.share-and-invite.modal .invite.modal-panel .body .group-access-control,.share-and-invite.modal .invite.modal-panel .body .show-custom-message-control{margin-bottom:16px}.share-and-invite.modal .invite.modal-panel .body .instructions{margin-bottom:8px}.share-and-invite.modal .invite.modal-panel .body .email-or-username-input{width:100%}.share-and-invite.modal .invite.modal-panel .body .invite-user-input-wrapper{display:flex}.share-and-invite.modal .invite.modal-panel .body .invite-user-input-wrapper div.ac-wrap{flex:1}.share-and-invite.modal .invite.modal-panel .footer{display:flex;align-items:center}.share-and-invite.modal .invite.modal-panel .footer .btn-primary{margin-right:8px}.share-and-invite.modal .invite.modal-panel .footer .btn-primary:last-child{margin-right:0}.svg-icon,.svg-icon-title{height:1em;width:1em;line-height:1;display:inline-flex;position:relative;vertical-align:-0.125em;fill:currentColor;flex-shrink:0;overflow:visible}svg>use{pointer-events:none}.fa-stack{position:relative;width:1em;height:1em;display:inline-block}.fa-stack .fa-stack-1x,.fa-stack .fa-stack-2x{left:0px;top:0px;position:absolute}.fa-stack .fa-stack-2x{height:1.5em;width:1.5em;margin-top:-0.25em;margin-left:-0.25em}.tap-tile-grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tap-tile-grid .tap-tile{padding:10px 5px;display:flex;flex-direction:column;text-align:center;align-items:center;border:1px solid #919191;margin:0 0 20px;width:100px;font-size:.7579em;cursor:pointer}.tap-tile-grid .tap-tile:hover{background-color:#d1f0ff}.tap-tile-grid .tap-tile.active{background-color:#ffffa6}.tap-tile-grid .tap-tile .svg-icon,.tap-tile-grid .tap-tile .svg-icon-title{width:2.5em;height:2.5em;margin-bottom:10px}.tap-tile-grid::after{content:\"\";width:115px}.d-time-input{box-sizing:border-box}.d-time-input .fields{display:flex;align-items:center;border:1px solid #e9e9e9}.d-time-input .fields .field{text-align:center;width:auto;margin:0;border:none;outline:none;box-shadow:none;width:32px}.d-time-input .fields .field.time{width:100%;text-align:left}.d-time-input .fields .field.hours,.d-time-input .fields .field.minutes{text-align:center;width:45px}.d-time-input .fields .field.hours{padding-right:0}.d-time-input .fields .field.minutes{padding-left:10px;width:55px}.animated-placeholder{height:20px;position:relative}.card-avatar-placeholder{width:120px;height:120px;border-radius:100%;position:relative;overflow:hidden}.card-avatar-placeholder:before{animation:placeHolderShimmer 4s linear infinite forwards;position:absolute;left:0;content:\"\";background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 18%, #f8f8f8 33%);height:120px;width:580px}.user-card,.group-card{width:580px;box-shadow:0 4px 14px rgba(0,0,0,0.15);color:#222;background:#fff center center;background-size:cover;transition:opacity 0.2s, transform 0.2s;-webkit-transition:opacity 0.2s, -webkit-transform 0.2s;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}.user-card.show,.group-card.show{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.user-card .card-content,.group-card .card-content{padding:10px;background:rgba(255,255,255,0.85);margin-top:80px}.user-card .card-content:after,.group-card .card-content:after{content:\"\";display:block;clear:both}.user-card .card-content a.card-huge-avatar,.group-card .card-content a.card-huge-avatar{outline:none}.user-card.no-bg .card-content,.group-card.no-bg .card-content{margin-top:0}.user-card .card-row:not(.first-row),.group-card .card-row:not(.first-row){margin-top:0.5em}.user-card .first-row .names,.group-card .first-row .names{padding-left:1.25em}.user-card .first-row .names .user-profile-link,.group-card .first-row .names .user-profile-link{display:flex;align-items:center}.user-card .first-row .names .d-icon,.group-card .first-row .names .d-icon{margin:0 0.25em}.user-card .first-row .names .name-username-wrapper,.group-card .first-row .names .name-username-wrapper{margin-right:0;flex:0 1 auto}.user-card .first-row .names span,.group-card .first-row .names span{display:block}.user-card .first-row .usercard-controls,.group-card .first-row .usercard-controls{list-style-type:none;margin:0}.user-card .first-row .usercard-controls button,.group-card .first-row .usercard-controls button{width:100%}.user-card .btn,.group-card .btn{margin-bottom:5px}.user-card h1,.group-card h1{line-height:1.2}.user-card h1 .d-icon,.group-card h1 .d-icon{color:#222}.user-card h3,.group-card h3{display:inline;margin-right:0.5em;color:#222}.user-card h3.email,.user-card h3 .desc,.user-card h3 a,.group-card h3.email,.group-card h3 .desc,.group-card h3 a{color:#646464}.user-card h1,.user-card h2,.user-card h3,.group-card h1,.group-card h2,.group-card h3{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-card h1 a,.user-card h2 a,.group-card h1 a,.group-card h2 a{color:#222}.user-card h2,.user-card h3,.group-card h2,.group-card h3{font-weight:normal}.user-card p,.group-card p{margin:0 0 5px 0}.user-card .first-row{display:flex}.user-card .first-row .avatar-placeholder{width:120px;height:120px}.user-card .first-row .user-card-avatar{margin-top:-50px}.user-card .first-row .new-user a{color:#bdbdbd}.user-card .second-row{max-height:150px;overflow:auto}.user-card .second-row .bio a{color:#222;text-decoration:underline}.user-card .second-row .bio a.mention{text-decoration:none}.user-card .second-row .bio .overflow{max-height:60px;overflow:hidden}.user-card .second-row .suspended{color:#e45735}.user-card .second-row .suspended .suspension-reason-title,.user-card .second-row .suspended .suspension-date{font-weight:bold}.user-card .second-row .profile-hidden{font-size:1.1487em;margin-top:0.5em}.user-card .featured-topic .desc{color:#646464}.user-card .featured-topic a{color:#222;text-decoration:underline}.user-card .location-and-website{display:flex;flex-wrap:wrap;width:100%;align-items:center}.user-card .location-and-website .location,.user-card .location-and-website .website-name{display:flex;overflow:hidden;align-items:center}.user-card .location-and-website .location .d-icon,.user-card .location-and-website .website-name .d-icon{margin-right:0.25em}.user-card .location-and-website .website-name a,.user-card .location-and-website .location span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#222}.user-card .location-and-website .location{margin-right:0.5em}.user-card .location-and-website .website-name a{text-decoration:underline}.user-card .public-user-fields{margin:0}.user-card .badge-section{display:flex;align-items:flex-start}.user-card .badge-section .user-badge,.user-card .badge-section .more-user-badges a{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#f8f8f8;border:1px solid #e9e9e9;color:#222}.group-card .first-row{display:flex}.group-card .first-row .group-card-avatar{margin-top:-50px}.group-card .first-row .avatar-flair{display:flex;background-size:contain;width:120px;height:120px;color:#222}.group-card .first-row .avatar-flair .d-icon{margin:auto;font-size:80px}.group-card .first-row .avatar-flair.rounded{border-radius:50%}.group-card .second-row{max-height:150px;overflow:auto}.group-card .second-row .bio a{color:#222;text-decoration:underline}.group-card .second-row .bio img{max-width:100%;height:auto}.group-card .second-row .bio a.mention{text-decoration:none}.group-card .second-row .bio .overflow{max-height:60px;overflow:hidden}.user-info{display:inline-block;clear:both;margin-bottom:1em}.user-info .user-image{float:left;padding-right:4px;margin-right:10px}.user-info .user-image-inner{position:relative;display:inline-block}.user-info .user-detail{float:left;width:70%;padding-left:5px}@media screen and (max-width: 600px){.user-info .user-detail{font-size:.8706em}}.user-info .user-detail .name-line{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-info .user-detail .username a{font-weight:bold;color:#646464}.user-info .user-detail .name{margin-left:5px;color:#646464}.user-info .user-detail .title{margin-top:3px;color:#919191}.user-info.small{width:333px}@media screen and (max-width: 800px){.user-info.small{width:auto;display:flex}}@media screen and (max-width: 600px){.user-info.small{width:100%}}.user-info.medium{min-height:60px}.user-info.medium .username,.user-info.medium .name{display:block}.user-info.medium .name{margin-left:0}.user-info.medium.badge-info{min-height:80px;min-width:250px}.user-info.medium.badge-info .granted-on{color:#919191}.user-info.medium.badge-info .post-link{display:block;margin-top:0.2em}.user-stream .item,.user-stream .user-stream-item{background-color:#fff;border-bottom:1px solid #e9e9e9}.user-stream .item.moderator-action,.user-stream .user-stream-item.moderator-action{background-color:#ffffa6}.user-stream .item.deleted,.user-stream .user-stream-item.deleted{opacity:0.8;background-color:rgba(242,171,154,0.7)}.user-stream .item.hidden,.user-stream .user-stream-item.hidden{display:block;opacity:0.4}.user-stream .type,.user-stream span.name{color:#222}.user-stream .time,.user-stream .delete-info,.user-stream .draft-type{display:block;float:right;color:#919191;font-size:.7579em}.user-stream .draft-type{clear:right}.user-stream .delete-info .d-icon{font-size:1em}.user-stream .expand-item,.user-stream .collapse-item{float:right;margin-right:0.5em;line-height:1;color:#919191}.user-stream .avatar-link{float:left;margin-right:4px}.user-stream .title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.user-stream .name{font-size:1em;max-width:400px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-stream .edit-reason{background-color:#ffffa6;padding:3px 5px 5px 5px}.user-stream .remove-bookmark,.user-stream .remove-draft{float:right;margin-top:-4px}.user-stream .notification li{display:inline-block}.user-stream .notification p{display:inline-block}.user-stream .notification p span:first-child{color:#222}.user-stream .notification .time{display:inline-block;margin-left:10px;float:none}.user-stream .notification .fa,.user-stream .notification .icon{color:#919191;font-size:1.7511em}.user-stream .excerpt{margin:1em 0 0 0;font-size:1em;word-wrap:break-word;color:#222}.user-stream .excerpt:empty{display:none}.user-stream .excerpt details.disabled{color:#919191}.user-stream .group-member-info{display:flex}.user-stream .child-actions,.user-stream-item-actions,.user-stream-item-draft-actions{margin-top:8px}.user-stream .child-actions .avatar-link,.user-stream-item-actions .avatar-link,.user-stream-item-draft-actions .avatar-link{float:none;margin-right:3px}.user-stream .child-actions .fa,.user-stream-item-actions .fa,.user-stream-item-draft-actions .fa{width:15px;display:inline-block;color:#222}.user-stream .child-actions .fa.d-icon-heart,.user-stream-item-actions .fa.d-icon-heart,.user-stream-item-draft-actions .fa.d-icon-heart{color:#fa6c8d}.user-stream.filter-deleted{grid-column-start:1;grid-column-end:3;grid-row-start:2}.popup-tip{position:absolute;display:block;padding:5px 10px;z-index:600}.popup-tip.bad{background:#ec8972;color:white;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}.popup-tip.hide,.popup-tip.good{display:none}.popup-tip .close{float:right;color:#222;opacity:0.5;font-size:1em;margin:0 0 0 4px;cursor:pointer}.popup-tip .close:hover{opacity:1}#topic-entrance{border:1px solid #e9e9e9;padding:5px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.15);z-index:300;position:absolute;width:133px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#topic-entrance button.full{width:100%;margin-bottom:5px}#topic-entrance button.full .d-icon{display:block;margin:2px auto;transform:rotate(90deg)}#topic-entrance button.btn.jump-bottom{margin:5px 0 0 0}@media print{.avatar,.topic-avatar,header,.topic-above-post-stream-outlet.topic-above-post-stream,.topic-map,.post-menu-area.clearfix,.post-menu-area.nav-pills,.post-menu-area.container,.post-menu-area.wrap,div#topic-footer-buttons,div.suggested-topics,div#progress-topic-wrapper,#topic-progress-wrapper,div.nums,._flyout,.show-topic-admin,#topic-progress,.quote-controls,.topic-status-info,div.lazyYT,.post-info.edits,.post-action,.saving-text,.draft-text,.discourse-modal,div.read-state,div.read-state.read,.edit-topic,a.reply-to-tab,a.reply-new,div.time-gap,#bottom,#footer,.alert-info,.badge-category,.badge-category-bg,.badge-notification.clicks,.crawler-nav,.powered-by-link{display:none !important}a,a:visited{color:#0088cc !important}div.row{border-top:1px solid #aaa}.cooked pre code{max-height:none}#main-outlet{padding:0 !important}html,body{min-width:0;height:auto}.lightbox-wrapper img{max-width:500px !important;height:auto !important}.topic-body{width:auto;margin:0;padding:0;float:none}.topic-post article.boxed .select-posts{width:auto;left:auto;right:0}.gap{width:auto}#topic-title{margin:0;padding:0}#topic-title div div h1{margin:2.5em 0 0 0;padding:0;float:left;font-weight:normal;font-size:normal}a,a:visited{color:#ddd;font-weight:bold}.topic-category-outlet.show-topic-category-location,div.alert.alert-info.alert-emails-disabled,div.profiler-results.profiler-left.profiler-no-controls{display:none}}.topic-list.shared-drafts{margin-bottom:1.5em}.show-more{width:100%;z-index:1}.show-more.has-topics{position:absolute;top:7px}.list-controls{clear:both;margin-bottom:5px}.list-controls .combo-box .combo-box-header{background:#fff;color:#222;border:1px solid #919191;font-size:1em;transition:none}.list-controls .select-kit{align-self:center}.list-controls .select-kit .select-kit-collection{font-size:.8706em;max-height:40vh}.list-controls .select-kit .select-kit-collection .texts,.list-controls .select-kit .select-kit-collection .icons{font-size:1.1487em}.list-controls .select-kit.categories-admin-dropdown,.list-controls .select-kit.tags-admin-dropdown,.list-controls .select-kit.category-notifications-button,.list-controls .select-kit.tag-notifications-button{float:right}.list-controls .select-kit.categories-admin-dropdown button,.list-controls .select-kit.tags-admin-dropdown button,.list-controls .select-kit.category-notifications-button button,.list-controls .select-kit.tag-notifications-button button{display:inline-block}.list-controls .category-heading{max-width:100%}.topic-list-item.visited a.title:not(.badge-notification),.latest-topic-list-item.visited a.title:not(.badge-notification),.category-topic-link.visited a.title:not(.badge-notification){color:#919191}.topic-list-main-link,.topic-list .main-link,.latest-topic-list-item .main-link{font-size:1.1487em}.topic-list-main-link a.title,.topic-list .main-link a.title,.latest-topic-list-item .main-link a.title{padding:15px 0;word-break:break-word;color:#222}.anon .topic-list-main-link a.title:visited:not(.badge-notification),.anon .topic-list .main-link a.title:visited:not(.badge-notification),.topic-list .anon .main-link a.title:visited:not(.badge-notification),.anon .latest-topic-list-item .main-link a.title:visited:not(.badge-notification),.latest-topic-list-item .anon .main-link a.title:visited:not(.badge-notification){color:#919191}.topic-list-main-link a.title.visited:not(.badge-notification),.topic-list .main-link a.title.visited:not(.badge-notification),.latest-topic-list-item .main-link a.title.visited:not(.badge-notification){color:#919191}.topic-list{width:100%;border-collapse:collapse}.topic-list>tbody>tr.has-excerpt .star{vertical-align:top;margin-top:2px}.topic-list>tbody>tr.last-visit{border-bottom:none}.topic-list>tbody>tr .topic-list-separator{text-align:center}.topic-list .topic-list-item-separator{border:none}.topic-list .topic-list-item-separator td{border-bottom:1px solid #ec8972;line-height:0.1em;padding:0;text-align:center}.topic-list .topic-list-item-separator td span{background-color:#fff;color:#ec8972;padding:0 8px;font-size:.8706em}.topic-list th,.topic-list td{line-height:1.4;text-align:left;vertical-align:middle}.topic-list th button .d-icon{color:#919191}.topic-list td{color:#919191;font-size:1em}.topic-list .main-link .raw-topic-link>*{pointer-events:none}.topic-list .unread-indicator.read{display:none}.topic-list .unread-indicator .d-icon{vertical-align:middle;font-size:.5em}.topic-list .link-bottom-line{font-size:.8706em;display:flex;flex-wrap:wrap;align-items:center}.topic-list .link-bottom-line .discourse-tags{flex-wrap:wrap}.topic-list .link-bottom-line a.badge-wrapper.box,.topic-list .link-bottom-line a.discourse-tag.box{padding-top:0;padding-bottom:0}.topic-list .link-bottom-line .discourse-tag.simple:after,.topic-list .link-bottom-line .discourse-tag.box{margin-right:0.25em}.topic-list .topic-featured-link{padding-left:5px}.topic-list .topic-excerpt{font-size:.8706em;margin-top:5px;color:#646464;word-wrap:break-word;line-height:1.4;padding-right:20px}.topic-list .topic-statuses:empty{display:none}.topic-list .num{text-align:center}.topic-list .num a:not(.badge-posts){color:inherit}.topic-list .num a.badge-posts{font-weight:bold}.topic-list .num.posts a{padding:15px 5px}.topic-list .num.activity a{padding:15px 5px}.heatmap-high,.heatmap-high a{color:#fe7a15 !important}.heatmap-med,.heatmap-med a{color:#cf7721 !important}.heatmap-low,.heatmap-low a{color:#9b764f !important}.loading .topic-list{border:0;box-shadow:none}.loading .topic-list tr{background-color:transparent}#list-area{margin-bottom:100px}#list-area .empty-topic-list{padding:10px}#list-area .unseen{background-color:transparent;padding:0;border:0;color:#ec8972;font-size:1em;cursor:default}.topic-list .alert{margin-bottom:0;font-size:1em}.topic-list .spinner{margin-top:40px}ol.category-breadcrumb.hidden{display:none}ol.category-breadcrumb{display:block;float:left;list-style:none;margin:0 10px 10px 0;padding:0}ol.category-breadcrumb li{float:left;margin-right:5px}ol.category-breadcrumb .bread-crumbs-right-outlet{float:left}.d-icon-thumbtack.unpinned{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.top-title-buttons{display:inline}.top-title-buttons button{margin-right:0.5em}div.education{color:#919191}div.education .badge-notification.new-posts{vertical-align:text-bottom}.list-cell,.table-heading,.category-list td,.category-list th{padding:12px 5px;color:#919191}.table-heading{border-bottom:3px solid #e9e9e9}.topic-post-badges{white-space:nowrap;align-self:center;line-height:1.2}section.about{margin-bottom:40px}section.about h3{margin-bottom:15px}section.about table{width:auto}section.about table td{padding:10px}section.about table td.title{width:33%}#simple-container{border-radius:10px;background-color:#fff;padding:20px;width:550px;margin:0 auto}#simple-container .account-created .ac-message{font-size:1.1487em;line-height:1.4}#simple-container .account-created .activation-controls button{margin-right:0.5em}.alert{padding:0.5em 1em;background-color:#fbe6e1;color:#222;position:relative}.alert .close{font-size:1.5157em;position:absolute;top:8px;right:8px}.alert .close .d-icon{color:#bdbdbd}.alert.alert-success{background-color:#b8ffb8;color:#222}.alert.alert-error{background-color:#fbe6e1;color:#222}.alert.alert-info{background-color:#d1f0ff;color:#222}.alert.alert-info.clickable{color:#08c}a.alert.clickable{display:flex}span.bbcode-b{font-weight:bold}span.bbcode-i{font-style:italic}span.bbcode-u{text-decoration:underline}span.bbcode-s{text-decoration:line-through}.reorder-categories thead th{padding-bottom:0.5em}.reorder-categories input{width:4em}@media screen and (max-width: 550px){.reorder-categories input{width:2em}}.reorder-categories #rc-scroll-anchor{padding:0}.reorder-categories table{padding-bottom:150px;margin:0 0.667em}.reorder-categories table td{padding:0.5em 0.5em 0.5em 0}@media screen and (min-width: null){.reorder-categories table td{min-width:15em}}.reorder-categories .badge-wrapper span.badge-category{max-width:20em}@media screen and (max-width: 550px){.reorder-categories .badge-wrapper span.badge-category{max-width:30vw}}.reorder-categories-depth-1{margin-left:20px}.reorder-categories-depth-2{margin-left:40px}.category-list{table-layout:fixed}.category-list .category-text-title{display:flex;align-items:baseline}.category-list .category-name{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:text-top;line-height:1.2}.category-list.with-topics .subcategories-with-subcategories .category-description{display:none}.category-boxes,.category-boxes-with-topics{display:flex;flex-wrap:wrap;justify-content:flex-start;margin-top:1em;margin-bottom:1em;width:100%}.category-boxes .category-box,.category-boxes-with-topics .category-box{position:relative;display:flex;flex-direction:row;align-content:flex-start;box-sizing:border-box;border-width:0;border-left-width:6px;border-style:solid;border-color:#e9e9e9}.mobile-view .category-boxes .category-box,.mobile-view .category-boxes-with-topics .category-box{width:100%}.category-boxes .category-box .parent-box-link:before,.category-boxes-with-topics .category-box .parent-box-link:before{content:\"\";position:absolute;z-index:0;top:0;left:0;right:0;bottom:0}.category-boxes .category-box .logo.aspect-image img,.category-boxes-with-topics .category-box .logo.aspect-image img{display:block;width:auto;height:40px;margin:0 auto 1em auto}@supports (--custom: property){.category-boxes .category-box .logo.aspect-image img,.category-boxes-with-topics .category-box .logo.aspect-image img{--height: 40px;height:var(--height);width:calc(var(--height) * var(--aspect-ratio));max-width:100%}}.category-boxes .category-box-inner,.category-boxes-with-topics .category-box-inner{box-sizing:border-box;width:100%;padding:0;display:flex;flex-direction:column;border-width:2px;border-left-width:0;border-style:solid;border-color:#e9e9e9}.category-boxes.no-logos .logo,.category-boxes-with-topics.no-logos .logo{display:none}.category-boxes .category-box{width:23%;margin:0 1% 1.5em 1%}.category-boxes .category-box>a{width:100%;padding:0}.category-boxes .category-box .category-box-inner{padding:1em}.category-boxes .category-box .category-box-inner .category-logo{float:none;margin:0}.category-boxes.no-logos .category-box .category-box-inner>a{padding:3em 1em}.category-boxes .description{padding-bottom:1em;text-align:center;font-size:1em;color:#919191;position:relative;pointer-events:none}.category-boxes .description .overflow{max-height:6em}.category-boxes .description .overflow div a{pointer-events:auto}.category-boxes h3{font-size:1.3195em;margin-bottom:0.5em;margin-top:0.25em;line-height:1.2;text-align:center;color:#222;overflow:hidden}.category-boxes h4 a{color:#222}.category-boxes .subcategory.with-subcategories{position:relative;border:none;border-left-width:4px;border-left-style:solid;margin-bottom:0.25em}.category-boxes .subcategory.with-subcategories .category-title-link{display:flex}.category-boxes .subcategory.with-subcategories .category-title-link .category-logo{flex:1 0 auto;margin:0.25em 0.5em 0.5em 0;--max-height: 40px}.category-boxes .subcategory.with-subcategories .category-title-link .category-text-title{order:2;line-height:1.2;overflow:hidden;margin-bottom:0.25em;word-wrap:break-word}.category-boxes .subcategory.with-subcategories .category-title-link:before{content:\"\";position:absolute;z-index:0;top:0;left:0;right:0;bottom:0}.category-boxes .subcategory.with-subcategories .subcategory-box-inner{border:1px solid #e9e9e9;border-left:none;padding:0.5em 0.5em 0.4em 0.5em}.category-boxes .subcategory.with-subcategories:not(:last-of-type){margin-bottom:0.75em}.category-boxes .subcategory.with-subcategories .subcategory{margin-bottom:0.25em}.category-boxes .subcategories{display:flex;flex-flow:wrap}.category-boxes .subcategories .subcategory{display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:0.6em}.category-boxes .subcategories .subcategory .badge-wrapper{overflow:hidden}.category-boxes .subcategories .subcategory .subcategory-image-placeholder{display:inline-block;margin-right:0.6em;flex:1 0 auto}.category-boxes .subcategories .subcategory .subcategory-link{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category-boxes .subcategories .subcategory .logo img{display:inline-block;--height: 20px;height:var(--height);width:calc(var(--height) * var(--aspect-ratio));margin:0}.category-boxes-with-topics .category-box{width:31%;margin:0 1% 1.5em 1%;padding:0}.category-boxes-with-topics h3{font-size:1.3195em;text-align:center;overflow:hidden}.category-boxes-with-topics .category-box-heading{padding:1em 1em 0.5em 1em}.category-boxes-with-topics .category-box-heading a[href]{width:100%;color:#222}.category-boxes-with-topics .featured-topics{padding:0.5em 1em 1em 1em}.category-boxes-with-topics .featured-topics ul{color:#919191;list-style:none;padding:0;margin:0}.category-boxes-with-topics .featured-topics li{padding:4px 0;display:flex;align-items:baseline}.category-boxes-with-topics .featured-topics li .overflow{max-height:3em;overflow:hidden}.category-boxes-with-topics .featured-topics li .d-icon{margin-right:0.15em;width:0.76em;height:0.76em}.categories-list .category h3,.categories-list .category h4{margin-bottom:0}.categories-list .category h3 .d-icon,.categories-list .category h4 .d-icon{color:#646464;height:0.76em;width:0.76em;vertical-align:baseline;margin-right:0.1em}.categories-list .category .category-description{margin-top:0.5em;overflow:hidden;color:#646464}.categories-list .category .category-logo.aspect-image{margin-top:0.5em}.category-boxes-with-topics .category-box h3 .d-icon,.category-boxes .category-box h3 .d-icon{margin-right:0}.category-list.subcategories-with-subcategories{margin-top:1em;margin-bottom:0;border-top:1px solid #e9e9e9}.category-list.subcategories-with-subcategories .category-description{font-size:.8706em}.category-list.subcategories-with-subcategories .category-logo.aspect-image{--max-height: 75px}.hljs{display:block;padding:0.5em;color:#333}.hljs-comment,.hljs-doctag{color:#998;font-style:italic}.hljs-keyword,.javascript .hljs-title,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.ruby .hljs-constant{color:#099}.hljs-string,.hljs-tag .hljs-string,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-name,.coffeescript .hljs-params,.scss .hljs-meta{color:#d14;font-weight:bold}.javascript .hljs-title,.lisp .hljs-title,.clojure .hljs-title,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.haskell .hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.css .hljs-keyword,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#090}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in,.lisp .hljs-title,.clojure .hljs-built_in,.hljs-builtin-name{color:#0aadff}.meta{color:#919191;font-weight:bold}.hljs-deletion{background:#fbe6e1}.hljs-addition{background:#b8ffb8}.diff .hljs-meta{color:#e9e9e9}p>code,li>code,pre>code{color:#333;background:#f8f8f8}.category-color-editor input{width:5.5em;margin-right:1em}.category-color-editor .color-title{display:block;margin:1em 0 0.25em}.category-color-editor .colorpicker-wrapper{display:flex;align-items:center}.category-color-editor .colorpicker-wrapper input,.category-color-editor .colorpicker-wrapper .add-on{align-self:flex-start;margin-bottom:0.125em}.category-color-editor .colors-container{display:inline-flex;flex-wrap:wrap}.category-color-editor .colors-container .colorpicker{position:relative;margin:0 0.125em 0.25em;border:1px solid #919191;width:1.25em;height:1.2em;padding:0;flex:0 0 auto;color:white}.category-color-editor .colors-container .colorpicker svg{display:none}.category-color-editor .colors-container .colorpicker.used-color svg{display:inline-flex;opacity:0.8;max-width:70%}#reply-control{position:fixed;display:flex;flex-direction:column;bottom:0;height:0;right:0;left:0;margin-left:auto;margin-right:auto;max-width:1475px;width:100%;z-index:400;transition:height 250ms ease, background 250ms ease, transform 250ms ease, max-width 250ms ease;background-color:#fff;box-shadow:0 -1px 40px rgba(0,0,0,0.12)}#reply-control.hide-preview{max-width:740px}@media screen and (max-width: 1200px){#reply-control{min-width:0}}#reply-control .reply-area{display:flex;flex-direction:column}#reply-control .saving-text,#reply-control .draft-text{display:none;padding-left:10px}#reply-control .saving-text .spinner,#reply-control .draft-text .spinner{margin-left:5px;border-color:#fff;border-right-color:transparent}#reply-control .saving-text .d-icon,#reply-control .draft-text .d-icon{color:#fff}#reply-control.open{height:300px}#reply-control.open.edit-title{height:400px}#reply-control.closed{height:0 !important}#reply-control.draft,#reply-control.saving{height:40px !important;align-items:center;background:#08c;color:#fff;flex-direction:row;width:100%}#reply-control.draft .composer-controls,#reply-control.saving .composer-controls{margin-left:auto;display:flex;padding-right:5px}#reply-control.draft .composer-controls .toggle-toolbar,#reply-control.saving .composer-controls .toggle-toolbar{display:none}#reply-control.draft .composer-controls .d-icon,#reply-control.saving .composer-controls .d-icon{color:#fff}#reply-control.draft{cursor:pointer;display:flex}#reply-control.draft .draft-text{display:block}#reply-control.draft .grippie,#reply-control.draft .saving-text{display:none}#reply-control.draft .toggler{order:2}#reply-control.saving .saving-text{display:flex}#reply-control .reply-to{color:#646464;margin:5px 0 10px 0;display:flex;align-items:center}#reply-control .reply-to .d-icon{color:#919191}#reply-control .reply-to .reply-details{max-width:calc(100% - 175px);flex:1 1 auto;display:flex;align-items:center;white-space:nowrap}#reply-control .reply-to .reply-details .d-icon{opacity:0.8}#reply-control .reply-to .composer-action-title{display:inline-flex;align-items:center;width:auto;max-width:100%}#reply-control .reply-to .composer-action-title .avatar{width:20px}#reply-control .reply-to .composer-action-title .action-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#reply-control .reply-to .composer-action-title .topic-link,#reply-control .reply-to .composer-action-title .user-link,#reply-control .reply-to .composer-action-title .post-link{margin-right:5px}#reply-control .reply-to .composer-action-title .username{margin-right:5px;max-width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 500px){#reply-control .reply-to .composer-action-title .username{display:none}}#reply-control .reply-to .composer-action-title .d-icon{margin-right:5px}#reply-control .reply-to .composer-action-title img.avatar{margin-right:3px}#reply-control .reply-to .composer-controls{display:flex;margin-left:auto}#reply-control .reply-to .composer-controls button{padding:5px 7px}#reply-control .reply-to .composer-controls button.toggler{order:2}#reply-control .whisper,#reply-control .display-edit-reason{font-style:italic}#reply-control .whisper{margin-right:0.25em}#reply-control .display-edit-reason{display:inline-flex}#reply-control .display-edit-reason a{display:inline-flex}#reply-control .display-edit-reason .d-icon{padding:0.3em 0.5em;color:#08c}#reply-control #edit-reason{margin:0 4px}#reply-control .user-selector,#reply-control .title-and-category{display:flex;flex-wrap:wrap;width:100%;align-items:center;margin-bottom:5px;position:relative}#reply-control .user-selector.with-preview,#reply-control .title-and-category.with-preview{width:50%}#reply-control .title-input{position:relative;display:flex;flex:1 1 50%}#reply-control .title-input input{flex-grow:1}#reply-control .with-tags .title-input{flex:1 1 100%}#reply-control .category-input{display:flex;flex:1 0 35%;margin:0 0 5px 10px}@media screen and (max-width: 955px){#reply-control .category-input{flex:1 0 100%;margin-left:0}}#reply-control .category-input .category-chooser{display:flex;flex:1 0 auto;width:auto}#reply-control .with-tags .category-input{flex-basis:25%;margin-left:0;margin-right:5px}@media screen and (max-width: 920px){#reply-control .with-tags .category-input{flex-basis:100%;margin-right:0}}#reply-control .add-warning{margin-left:0.75em;margin-bottom:0;display:flex}#reply-control .add-warning input{margin-right:5px}#reply-control #reply-title{margin:0 0 5px 0;flex-basis:50%}#reply-control .mini-tag-chooser{flex:1 1 25%;margin:0 0 5px 0;background:#fff;z-index:700}@media all and (max-width: 900px){#reply-control .mini-tag-chooser{margin:0;flex:1 1 100%}}#reply-control .popup-tip{z-index:701}#reply-control .wmd-controls{position:relative;display:flex;flex-direction:column;flex-grow:1;min-height:0}#reply-control .submit-panel{display:flex;flex-shrink:0;margin:7px 0 3px 0}#reply-control .save-or-cancel{flex-basis:50%;display:flex;align-items:center;margin-right:auto}#reply-control .save-or-cancel button{flex:0 0 auto}#reply-control .save-or-cancel .cancel{margin-left:1.25em;line-height:normal;color:#646464;transition:color 250ms}#reply-control .save-or-cancel .cancel:hover{color:#e45735}#reply-control .save-or-cancel #draft-status,#reply-control .save-or-cancel #file-uploading{margin-left:25px}#reply-control .save-or-cancel #file-uploading{display:flex;align-items:center}#reply-control .save-or-cancel #file-uploading a{margin-left:5px;color:#646464}#reply-control .save-or-cancel #file-uploading .spinner{margin-right:5px}#reply-control .save-or-cancel #draft-status .d-icon-user-edit{color:#e45735;font-size:20px;vertical-align:-5.5px}#reply-control #draft-status,#reply-control #file-uploading{color:#646464}.cooked>*:first-child{margin-top:0}.autocomplete{z-index:701;position:absolute;width:240px;background-color:#fff;border:1px solid #e9e9e9}.autocomplete ul{list-style:none;padding:0;margin:0}.autocomplete ul li{border-bottom:1px solid #e9e9e9}.autocomplete ul li .d-icon-users{color:#888;padding:0 2px}.autocomplete ul li a{padding:5px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.autocomplete ul li a span.username{color:#222}.autocomplete ul li a span.name{font-size:.8706em;vertical-align:middle}.autocomplete ul li a.selected{background-color:#d1f0ff}.discourse-no-touch .autocomplete ul li a:hover,.discourse-no-touch .autocomplete ul li a.btn-hover{background-color:#ffffca;text-decoration:none}div.ac-wrap.disabled input{display:none}div.ac-wrap.disabled .item a{display:none}div.ac-wrap div.item a.remove,.remove-link{margin-left:4px;font-size:.8706em;line-height:1;padding:1px 3.5px;border-radius:12px;box-sizing:border-box;border:1px solid #e9e9e9}div.ac-wrap div.item a.remove:hover,.remove-link:hover{background-color:#fbe6e1;border:1px solid #ec8972;text-decoration:none;color:#e45735}div.ac-wrap{overflow:auto;max-height:150px;display:flex;flex-wrap:wrap;align-items:center;background-color:#fff;border:1px solid #919191;min-height:30px;box-sizing:border-box}div.ac-wrap div.item{float:left;padding:4px 10px;line-height:1.4}div.ac-wrap div.item span{display:inline-block;line-height:1.2}div.ac-wrap .ac-collapsed-button{float:left;border-radius:20px;position:relative;top:-2px;margin-right:10px}div.ac-wrap input[type=\"text\"]{float:left;display:block;box-shadow:none;border:0;margin:0;background:transparent;min-height:unset}div.ac-wrap input[type=\"text\"].fullwidth-input{width:100%}.future-date-input .examples{color:#919191}.md-table{overflow-y:auto;margin:1em 0}.mobile-view .md-table table{width:100%}.save-animation{-webkit-animation:transformer 5s forwards;animation:transformer 5s forwards}@-webkit-keyframes transformer{90%{-webkit-filter:opacity(1)}100%{-webkit-filter:opacity(0)}}@keyframes transformer{90%{opacity:1}100%{opacity:0}}body.ios-safari-composer-hacks #main-outlet,body.ios-safari-composer-hacks header,body.ios-safari-composer-hacks .grippie,html:not(.fullscreen-composer) body.ios-safari-composer-hacks .toggle-fullscreen{display:none}body.ios-safari-composer-hacks #reply-control{top:0px}body.ios-safari-composer-hacks #reply-control.open{height:calc(var(--composer-vh, 1vh) * 100)}div.ac-wrap.composer-user-selector-limited{width:400px;padding:0 10px;margin-bottom:5px}div.ac-wrap.composer-user-selector-limited .btn-primary{margin-left:0.5em;padding:3px 6px 2px;font-size:.8706em;min-height:unset}body.crawler>header{width:100%;position:absolute;top:0;z-index:9999;background-color:#fff;padding:10px;box-shadow:none;border-bottom:1px solid #bdbdbd;box-sizing:border-box}body.crawler div#main-outlet div.post{word-break:break-word}body.crawler div#main-outlet div.post img{max-width:100%;height:auto}body.crawler .raw-topic-link{display:block;font-weight:bold;margin-bottom:0.25em}body.crawler .topic-list{margin-bottom:1em}body.crawler footer{margin-top:3em;border-top:1px solid #bdbdbd}.crawler-topic-title{margin-top:0.5em}.crawler-post{margin-top:1em;margin-bottom:2em;padding-top:1.5em;border-top:1px solid #e9e9e9}.crawler-post-meta{margin-bottom:1em}.crawler-post-meta .creator{word-break:break-all}.crawler-post-meta .creator a{font-weight:bold}@media screen and (max-width: 768px){.crawler-post-meta .creator{display:inline-block;margin-bottom:0.25em}}.crawler-post-infos{color:#646464;display:inline-block}@media screen and (min-width: 768px){.crawler-post-infos{float:right}}.crawler-post-infos [itemprop=\"position\"]{float:left;margin-right:0.5em}#breadcrumbs{margin-bottom:0.5em;font-size:1.1487em}#breadcrumbs>div{margin-bottom:0.15em}#breadcrumbs .badge-category-bg{background-color:#a6a6a6}#breadcrumbs .category-title{color:#222}.crawler-tags-list span{display:block;margin-bottom:0.15em}.crawler-linkback-list{margin-top:1em}.crawler-linkback-list a{display:block;padding:0.5em 0;border-top:1px solid #e9e9e9}.crawler-nav{margin:1em 0}.crawler-nav ul{margin:0;list-style-type:none}.crawler-nav li{display:inline-block}.crawler-nav a{display:inline-block;padding:0.5em 1em 0.5em 0}.d-icon.d-icon-d-regular,.d-icon.d-icon-d-muted,.d-icon.d-icon-d-watching-first,.d-icon.d-icon-d-watching-first-post{color:#646464}.d-icon.d-icon-d-tracking,.d-icon.d-icon-d-watching{color:#08c}@-webkit-keyframes popoverFadeIn{from{opacity:0}to{opacity:1}}@keyframes popoverFadeIn{from{opacity:0}to{opacity:1}}#d-popover{background-color:#fff;position:absolute;z-index:1600;border-color:#919191;border-style:solid;border-width:1px;max-width:300px;-webkit-animation:popoverFadeIn 0.5s;animation:popoverFadeIn 0.5s;background-clip:padding-box;display:block;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);border-radius:2px}#d-popover.is-under{margin-top:0px}#d-popover.is-under .d-popover-top-arrow{display:block}#d-popover.is-under .d-popover-bottom-arrow{display:none}#d-popover.is-above{margin-top:0px}#d-popover.is-above .d-popover-bottom-arrow{display:block}#d-popover.is-above .d-popover-top-arrow{display:none}#d-popover.retina{border-width:0.5px}#d-popover .d-popover-content{padding:0.5em;font-size:.8706em;overflow-wrap:break-word;-webkit-animation:popoverFadeIn 0.5s;animation:popoverFadeIn 0.5s}#d-popover .d-popover-arrow{border-style:solid;color:transparent;content:\"\";position:absolute;z-index:calc(z(\"tooltip\") - 100)}#d-popover .d-popover-top-arrow{border-color:transparent transparent #919191;top:8px;transform:translate(0, -15px);border-width:0 8px 8px}#d-popover .d-popover-top-arrow:after{border-color:transparent transparent #fff;border-style:solid;border-width:0 7px 7px;bottom:-8px;margin-left:-7px;position:absolute;content:\"\"}#d-popover .d-popover-bottom-arrow{border-color:#919191 transparent transparent;top:calc(100% + 16px);transform:translate(0, -16px);border-width:8px 8px 0}#d-popover .d-popover-bottom-arrow:after{position:absolute;content:\"\";border-color:#fff transparent transparent;border-style:solid;border-width:7px 7px 0;bottom:2px;transform:translate(-7px, 0)}.directory{margin-bottom:100px}.directory .user-info{margin-bottom:0}.directory .period-chooser{float:left}.directory .filter-name{float:right}.directory .spinner{clear:both}.directory table{width:100%;margin-bottom:1em}.directory table td,.directory table th{padding:0.5em;text-align:left;border-bottom:1px solid #e9e9e9}@media screen and (max-width: 800px){.directory table td,.directory table th{padding:0.5em 0.25em}}.directory table td .number,.directory table td .time-read,.directory table th .number,.directory table th .time-read{font-size:1.5157em;color:#919191}@media screen and (max-width: 800px){.directory table td .number,.directory table td .time-read,.directory table th .number,.directory table th .time-read{font-size:1.1487em}}.directory table td .time-read,.directory table th .time-read{white-space:nowrap}.directory table th.sortable{width:13%}.directory table th.sortable .d-icon-heart{color:#fa6c8d;margin:0 0.25em 0 0}.directory .me{background-color:#ffffca}.directory .me .username a,.directory .me .name,.directory .me .title,.directory .me .number,.directory .me .time-read{color:#919191}@keyframes ping{from{transform:scale(0.25);opacity:1}to{transform:scale(2);opacity:0}}@keyframes rotate-forever{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes background-fade-highlight{0%{background-color:#d1f0ff}100%{background-color:transparent}}@keyframes placeHolderShimmer{0%{background-position:-1000px 0}100%{background-position:1100px 0}}.placeholder-animation{animation-duration:4s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:placeHolderShimmer;animation-timing-function:linear;background:#f8f8f8;background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 18%, #f8f8f8 33%)}html{height:100%}body{background-attachment:fixed;background-size:cover;min-height:100%}body:before,body:after{content:\"\";display:table}body:after{clear:both}big{font-size:2em}small{font-size:.7579em}blockquote{border-left:5px solid #e9e9e9;background-color:#f9f9f9;clear:both}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0.5rem}a.cancel{margin-left:1.25em;line-height:normal;color:#646464;transition:color 250ms}a.cancel:hover{color:#e45735}ul.breadcrumb{margin:0 10px 0 10px}a.no-href{cursor:pointer}img.avatar{border-radius:50%}span.relative-date{white-space:nowrap}label{display:flex;margin-bottom:5px;align-items:flex-start}label>.d-icon{align-self:center;margin-right:4px}input[type=\"radio\"],input[type=\"checkbox\"]{margin-top:0.17em;margin-right:0.43em;margin-left:0.1em;line-height:1;cursor:pointer;flex-shrink:0}input[type=\"submit\"],input[type=\"reset\"],input[type=\"button\"],input[type=\"radio\"],input[type=\"checkbox\"]{width:auto}input.invalid{background-color:#fbe6e1}.radio input[type=\"radio\"],.checkbox input[type=\"checkbox\"]{float:left;margin-left:-18px}input,select,textarea{color:#222;caret-color:currentColor}input[class*=\"span\"],select[class*=\"span\"],textarea[class*=\"span\"]{float:none;margin-left:0}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#e9e9e9;border-color:#e9e9e9}input:focus:required:invalid,select:focus:required:invalid,textarea:focus:required:invalid{color:#e45735;border-color:#e45735}input:focus:required:invalid:focus,select:focus:required:invalid:focus,textarea:focus:required:invalid:focus{border-color:#e45735;box-shadow:0 0 6px 0 #e45735}input[type=\"text\"],input[type=\"password\"],input[type=\"datetime\"],input[type=\"datetime-local\"],input[type=\"date\"],input[type=\"month\"],input[type=\"time\"],input[type=\"week\"],input[type=\"number\"],input[type=\"email\"],input[type=\"url\"],input[type=\"search\"],input[type=\"tel\"],input[type=\"color\"]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;padding:4px 10px;margin-bottom:9px;font-size:1em;line-height:1;color:#222;background-color:#fff;border:1px solid #919191;border-radius:0;box-sizing:border-box;min-height:30px}input[type=\"text\"]:focus,input[type=\"password\"]:focus,input[type=\"datetime\"]:focus,input[type=\"datetime-local\"]:focus,input[type=\"date\"]:focus,input[type=\"month\"]:focus,input[type=\"time\"]:focus,input[type=\"week\"]:focus,input[type=\"number\"]:focus,input[type=\"email\"]:focus,input[type=\"url\"]:focus,input[type=\"search\"]:focus,input[type=\"tel\"]:focus,input[type=\"color\"]:focus{border-color:#08c;box-shadow:0 0 6px 0 #08c;outline:0}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input[class*=\"span\"],.input-append input[class*=\"span\"]{display:inline-block}.input-prepend input,.input-prepend select,.input-append input,.input-append select{position:relative;margin-bottom:0;vertical-align:middle;border-radius:0}.input-prepend input:focus,.input-prepend select:focus,.input-append input:focus,.input-append select:focus{z-index:2}.input-prepend .add-on,.input-append .add-on{display:inline-flex;align-items:center;width:auto;padding:0 0.5em;height:28px;background-color:#e9e9e9;border:1px solid #919191}.input-prepend .add-on:first-child,.input-prepend .btn:first-child,.input-append .add-on:first-child,.input-append .btn:first-child{margin-right:-1px}.input-prepend .add-on:last-child,.input-prepend .btn:last-child,.input-append .add-on:last-child,.input-append .btn:last-child{margin-left:-1px;border-radius:0 3px 3px 0}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}textarea{height:auto;background-color:#fff;border:1px solid #919191}textarea:focus{border-color:#08c;box-shadow:0 0 6px 0 #08c;outline:0}select{border:1px solid #e9e9e9}table th{font-weight:normal;color:#919191;text-align:left;padding:0.5em}.sortable{white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.discourse-no-touch .sortable:hover{background-color:#e9e9e9}.sortable .d-icon{margin-left:0.25em}.radio,.checkbox{min-height:18px;padding-left:18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline .radio.inline,.checkbox.inline .checkbox.inline{margin-left:10px}.wrap{margin-right:auto;margin-left:auto;padding:0 8px}.wrap .contents{position:relative}.boxed.white{background-color:#fff}.full-width{margin-left:12px}.coldmap-high{color:#bdbdbd !important}.coldmap-med{color:#919191 !important}.coldmap-low{color:#919191 !important}.top-space{margin-top:10px}.message{border-radius:8px;background-color:#fff;padding:14px}.message h2{margin-bottom:20px}.clear-transitions{transition:none !important}.tip{display:inline-block}.tip.good{color:#090}.tip.bad{color:#e45735}.avatar-wrapper{background-color:#fff;display:inline-block;border-radius:50%}.profiler-results.profiler-left{top:60px !important}.flex-center-align{display:flex;align-items:center}.unread-private-messages{color:#fff;background:#090}.unread-private-messages.badge-notification[href]{color:#fff}.ring-backdrop-spotlight{position:absolute;width:80px;height:80px;top:-18px;right:-18px;background-image:radial-gradient(40px at 50% 50%, transparent 95%, #222 100%);opacity:0.85}.ring-backdrop{position:absolute;width:80px;height:80px;top:-18px !important;right:-18px !important;box-shadow:0 0 0 9999px rgba(34,34,34,0.85);z-index:1200}.ring-first-notification{position:absolute;color:#fff;text-align:left;right:70px;top:60px;width:230px;line-height:1.2}.ring{background:-webkit-radial-gradient(transparent, #090);background:-o-radial-gradient(transparent, #090);background:-moz-radial-gradient(transparent, #090);background:radial-gradient(transparent, #090);top:-11px !important;right:23.5px !important;border-radius:100%;width:20px;height:20px;-moz-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-transform-origin:center;-moz-animation-duration:3s;-webkit-animation-duration:3s;-moz-animation-name:ping;-webkit-animation-name:ping}.fade{opacity:0;transition:opacity 0.15s linear}.fade.in{opacity:1}.inline-spinner{display:inline-block;margin:0}.spinner{margin:20px auto 20px auto;position:relative;-webkit-animation:rotate-forever 1s infinite linear;animation:rotate-forever 1s infinite linear;height:30px;width:30px;border:4px solid #b6b6b6;border-right-color:transparent;border-radius:50%}.spinner.small{width:10px;height:10px;margin:0;display:inline-block}.content-list h3{color:#919191;font-size:1.1487em;padding-left:5px;margin-bottom:10px}.content-list ul{list-style:none;margin:0}.content-list ul li{border-bottom:1px solid #e9e9e9}.content-list ul li:first-of-type{border-top:1px solid #e9e9e9}.content-list ul li a{display:block;padding:10px;color:#222}.content-list ul li a:hover{background-color:#e9e9e9;color:#222}.content-list ul li a.active{font-weight:bold;color:#222}.form-vertical input,.form-vertical textarea,.form-vertical select,.form-vertical .input-prepend,.form-vertical .input-append{display:inline-block;margin-bottom:0;flex:0 0 auto}.form-vertical .control-group:before,.form-vertical .control-group:after{content:\"\";display:table}.form-vertical .control-group:after{clear:both}.form-vertical .control-label{font-weight:bold;font-size:1.3195em;line-height:1.4}.form-vertical .controls{margin-left:0}#main img.avatar.header{width:45px;height:45px}#main img.avatar.medium{width:32px;height:32px}#main img.avatar.small{width:25px;height:25px}#main img.avatar.tiny{width:20px;height:20px}#main .user-list .user{padding-bottom:5px}#loading-message{position:absolute;font-size:2em;text-align:center;top:120px;left:500px;color:#222}#footer .container{height:50px}#footer .container .contents{padding-top:10px}#footer .container .contents a[href]{color:#fff}.inline{display:inline}.pref-auth-tokens .row{border-bottom:1px solid #ddd;margin:5px 0px;padding-bottom:5px}.pref-auth-tokens .row:last-child{border-bottom:0}.pref-auth-tokens .auth-token-icon{color:#919191;font-size:2.25em;float:left;margin-right:10px}.pref-auth-tokens .auth-token-first{font-size:1.1em}.pref-auth-tokens .auth-token-first .auth-token-device{font-weight:bold}.pref-auth-tokens .auth-token-second{color:#919191}.pref-auth-tokens .auth-token-second .active{color:#090;font-weight:bold}.pref-auth-tokens .auth-token-dropdown{float:right}.pref-auth-tokens .auth-token-dropdown .btn,.pref-auth-tokens .auth-token-dropdown .btn:hover{background:transparent}.pref-auth-tokens .auth-token-dropdown .btn .d-icon,.pref-auth-tokens .auth-token-dropdown .btn:hover .d-icon{color:#646464}.pref-auth-tokens .dropdown-menu{width:120px}.pref-auth-tokens .dropdown-menu .icon{margin-top:auto}.topic-statuses{display:inline;float:left;margin-right:0.15em}.topic-statuses .topic-status{margin:0;display:inline-flex;color:#919191}.topic-statuses .topic-status .d-icon{height:0.76em;width:0.75em}.topic-statuses .topic-status:not(:last-child){margin-right:0.15em}.topic-statuses .d-icon-envelope{color:#e45735}.broken-theme-alert{font-size:15px;font-weight:bold;padding:5px 0;background:#ec8972;text-align:center;z-index:9999;color:#fff}.edit-topic-timer-modal .modal-body{max-height:none;overflow:visible !important}.edit-topic-timer-modal .control-group{display:flex;align-items:center}.edit-topic-timer-modal .control-group>.d-icon{margin-right:5px}.edit-topic-timer-modal input.date-picker,.edit-topic-timer-modal input[type=\"time\"]{width:200px;text-align:left}.edit-topic-timer-modal .radios{margin-bottom:10px}.edit-topic-timer-modal label{display:inline-flex;padding-right:5px;margin-bottom:0;align-items:center}.edit-topic-timer-modal label input{margin-top:0}.edit-topic-timer-modal .btn.pull-right{margin-right:10px}.edit-topic-timer-modal .future-date-input input{margin:0}.edit-topic-timer-modal .future-date-input .alert-info{margin:0 -15px -15px -15px}.edit-topic-timer-modal .future-date-input .btn-clear{display:none}.edit-topic-timer-modal .future-date-input .topic-status-info{border:none;padding:0}.edit-topic-timer-modal .future-date-input .topic-status-info h3{font-weight:normal;font-size:1.1487em}.edit-topic-timer-modal .future-date-input input[disabled]{background:#e9e9e9}.edit-topic-timer-modal .pika-single{position:absolute !important}.mobile-view .edit-topic-timer-modal .select-kit.combo-box{flex:1 0 0px}.ember-select{background-color:#fff;color:#222}img.emoji{width:20px;height:20px;vertical-align:middle}img.emoji.only-emoji{width:32px;height:32px;margin:0.5em 0}.md-table img.emoji.only-emoji,.poll img.emoji.only-emoji{width:20px;height:20px}small img.emoji,sub img.emoji,sup img.emoji{height:1.1em;width:1.1em}.emoji-picker{background-clip:padding-box;z-index:1300;position:fixed;display:none;flex-direction:row;height:320px;color:#222;background-color:#fff;border:1px solid #e9e9e9}.emoji-picker .categories-column{display:flex;flex-direction:column;flex:1 0 0px;align-items:center;justify-content:space-between;border-right:1px solid #e9e9e9;min-width:36px}.emoji-picker .category-icon{display:block;margin:4px auto;-webkit-filter:grayscale(100%);filter:grayscale(100%)}.emoji-picker .category-icon button.emoji{margin:0;padding:0}.emoji-picker .category-icon.current,.emoji-picker .category-icon:hover{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.emoji-picker .main-column{display:flex;flex-direction:column;flex:20}.emoji-picker .list{overflow-y:scroll;-webkit-overflow-scrolling:touch;padding:0;flex:1 0 0px;flex-direction:column}.emoji-picker .section-header{padding:8px;margin-top:2px;margin-bottom:0px;padding-bottom:0px;justify-content:space-between;display:flex;align-items:center;font-weight:bold}.emoji-picker .section-header .title{color:#222}.emoji-picker .section-header .clear-recent .fa{margin:0;padding:0;color:#a6a6a6}.emoji-picker .section-header .clear-recent .fa:hover{color:#222}.emoji-picker .section-group{flex-wrap:wrap;display:flex;align-items:center;justify-content:flex-start;padding:4px}.emoji-picker .footer{align-items:center;display:flex;justify-content:space-between;border-top:1px solid #e9e9e9}.emoji-picker .info{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:8px;font-weight:700;max-width:125px}.emoji-picker .diversity-picker{display:flex;justify-content:flex-end;padding:8px}.emoji-picker .diversity-picker .diversity-scale{width:20px;height:20px;margin-left:5px;border:0;border-radius:3px;display:flex;align-items:center;justify-content:center;cursor:pointer}.emoji-picker .diversity-picker .diversity-scale.default{background:#ffcc4d}.emoji-picker .diversity-picker .diversity-scale.light{background:#f7dece}.emoji-picker .diversity-picker .diversity-scale.medium-light{background:#f3d2a2}.emoji-picker .diversity-picker .diversity-scale.medium{background:#d5ab88}.emoji-picker .diversity-picker .diversity-scale.medium-dark{background:#af7e57}.emoji-picker .diversity-picker .diversity-scale.dark{background:#7c533e}.emoji-picker .diversity-picker .diversity-scale.selected .d-icon{display:block}.emoji-picker .diversity-picker .d-icon{display:none}.emoji-picker .diversity-picker .d-icon{color:#fff;font-size:1em;filter:drop-shadow(0.5px 1.5px 0 rgba(0,0,0,0.3))}.emoji-picker button.emoji{background:transparent;background-position:center;background-repeat:no-repeat;border-radius:0;background-size:20px 20px;-moz-box-sizing:content-box;box-sizing:content-box;height:20px;border:0;vertical-align:top;width:20px;outline:none;padding:3px;margin:2px}.emoji-picker .section-group button.emoji:hover,.emoji-picker .results button.emoji:hover{display:inline-block;vertical-align:top;border-radius:2px;background-color:#9df}.emoji-picker-modal.fadeIn{z-index:1200;position:fixed;left:0;top:0;width:100%;height:100%;opacity:0.8;background-color:black}.emoji-picker .filter{background-color:none;border-bottom:1px solid #e9e9e9;padding:5px;display:flex;position:relative;align-items:center}.emoji-picker .filter input[type=\"text\"]{width:auto !important}.emoji-picker .filter .d-icon-search{color:#a6a6a6;font-size:1.1487em;margin-left:5px;margin-right:5px}.emoji-picker .filter input{height:24px;margin:0;flex:1 0 0px;border:none;box-shadow:none;padding-right:24px;outline:none;color:#222;background:#fff}.emoji-picker .filter input:focus{border:none;box-shadow:none}.emoji-picker .filter input::-ms-clear{display:none}.emoji-picker .results{display:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:4px;flex:1 0 0px}.emoji-picker .filter .clear-filter{position:absolute;right:5px;top:12px;border:0;background:none;color:#a6a6a6;outline:none;display:none}.emoji-picker .filter .clear-filter:hover{color:#222}.error-page{text-align:center;padding-top:2em}.error-page .face{font-size:4.286em}.error-page .reason{font-size:1.7511em}.error-page .url{font-style:italic;font-size:.8706em}.error-page .desc{margin-top:16px}.error-page .desc .d-icon-check-circle{color:#090}.error-page .buttons{display:inline-flex;margin-top:15px}.error-page .buttons button{margin:0 20px}.explain-reviewable{min-width:500px}.explain-reviewable .thresholds{margin-top:1em}.explain-reviewable table{width:100%}.explain-reviewable table td{padding:0.5em}.explain-reviewable td.sum{text-align:right}.explain-reviewable td.sum.total{font-weight:bold}.explain-reviewable tr.total td{background-color:#e9e9e9;font-weight:bold}.explain-reviewable .op{font-weight:bold}.explain-reviewable .score-value-type{color:#919191}.explain-reviewable .op:last-of-type{display:none}.body-page{width:100%;max-width:700px}.about-page .body-page{max-width:unset}.about-page .body-page section:not(.admins):not(.moderators):not(.category-moderators){max-width:700px}.about-page .body-page .about.category-moderators .badge-wrapper.bullet .badge-category{color:#222}.mobile-view .body-page{font-size:1em;margin-top:20px}.body-page li{margin-bottom:8px}.body-page .nav-pills{margin-bottom:20px}.body-page ul:not(.nav-pills),.body-page ol:not(.nav-pills){margin-left:40px}.group-details-container{background:#f8f8f8;padding:20px;margin-bottom:15px;position:relative}.group-outlet{position:relative}.group-members-actions{display:flex;flex-wrap:wrap;width:100%}.group-members-actions input+.group-members-manage{margin-left:auto}.group-members-actions .group-username-filter{margin:0 0 5px 0;vertical-align:middle}.group-info{width:100%}.group-info .group-info-name{font-size:1.5157em;font-weight:bold;color:#222}.group-info .group-info-full-name{font-size:1.3195em;color:#646464}.group-info span{display:inline-block;vertical-align:middle}.group-info .avatar-flair-image{width:50px}.group-info .avatar-flair{background-size:50px;height:50px;width:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-repeat:no-repeat}.group-info .avatar-flair .d-icon{height:27.77778px;width:27.77778px}.group-manage-logs-filter{margin-right:10px}.group-manage-logs-filter:hover{background-color:#e45735}table.group-manage-logs{width:100%}table.group-manage-logs td{padding:0.5em}table.group-manage-logs .group-manage-logs-expand-details{cursor:pointer}table.group-manage-logs .group-manage-logs-expand-details .d-icon{color:#919191}table.group-members{width:100%;table-layout:fixed}table.group-members th:first-child{width:30%;text-align:left}table.group-members th:last-child{width:5%}table.group-members th.group-members-actions{width:5%}table.group-members th{text-align:center}table.group-members tr .user-info{display:block}table.group-members tr .user-info .avatar-flair{color:#222}table.group-members tr td:first-child{text-align:left}table.group-members tr td{text-align:center;color:#919191;padding:0.8em 0}.group-owner-label{color:#222}.form-vertical .group-flair-inputs{display:inline-block}.form-vertical .avatar-flair-preview{position:relative;width:45px}.form-vertical .avatar-flair-preview .avatar-wrapper{background-color:#f4f4f4}.group-form-save{margin-right:20px}.group-add-members .ac-wrap{overflow:hidden}.group-add-members .group-add-members-make-owner label{display:inline;vertical-align:middle}.group-add-members .group-add-members-make-owner input[type=\"checkbox\"]{vertical-align:middle}.groups-header{display:flex;flex-wrap:wrap;margin-bottom:1em}.groups-header .groups-header-new{order:2;margin-bottom:0.5em}.groups-header-filters{display:flex;flex-wrap:wrap}.groups-header-filters .groups-header-filters-name,.groups-header-filters .groups-header-filters-type{margin-right:5px;margin-bottom:0.5em}.groups-header-filters:last-child{margin-right:auto}.groups-boxes{margin:1em 0;width:100%}@supports (display: grid){.groups-boxes{display:grid;grid-template-columns:repeat(4, 24%);grid-column-gap:1.333%;grid-row-gap:1em}@media screen and (max-width: 768px){.groups-boxes{grid-template-columns:repeat(3, 32%);grid-column-gap:2%}}@media screen and (max-width: 450px){.groups-boxes{grid-template-columns:100%}}}.groups-boxes .group-box{display:flex;box-sizing:border-box;cursor:pointer;border:1px solid #e9e9e9;color:#222}@media screen and (max-width: 450px){.groups-boxes .group-box{margin:0}}.discourse-no-touch .groups-boxes .group-box{transition:all 0.25s}.discourse-no-touch .groups-boxes .group-box:hover{box-shadow:0 4px 14px rgba(0,0,0,0.15)}.groups-boxes .group-box .group-membership{color:#919191;margin-top:auto;padding-top:1em}.groups-boxes .group-box .group-membership .is-group-owner,.groups-boxes .group-box .group-membership .is-group-member{color:#090}.groups-boxes .group-box .group-box-inner{padding:1em;width:100%;display:flex;flex-direction:column;box-sizing:border-box}.groups-boxes .group-box .group-box-inner .group-info-wrapper{display:flex;overflow:hidden;flex:0 1 auto}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-avatar-flair{margin-top:0.2em;margin-right:8px;flex:0 0 auto}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-info{flex:1 0 auto;margin-bottom:1em;width:70%}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-info span{width:100%;word-break:break-word;line-height:1.2}.groups-boxes .group-box .group-box-inner .group-user-count{display:flex;align-items:center;color:#646464}.groups-boxes .group-box .group-box-inner .group-user-count .d-icon{margin-right:0.25em;font-size:0.8em;color:#919191}.groups-boxes .group-box .group-box-inner .group-description{color:#646464;word-wrap:break-word}.groups-boxes .group-box .groups-info-name{font-size:1.1487em;font-weight:bold;color:#222}.groups-boxes .group-box .group-avatar-flair{display:inline-block;color:#222}.groups-boxes .group-box .group-avatar-flair .avatar-flair{background-size:40px;height:40px;width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-repeat:no-repeat}.groups-boxes .group-box .group-avatar-flair .avatar-flair .d-icon{height:22.22222px;width:22.22222px}.groups-boxes .group-box .avatar-flair-image{width:40px}.d-header{display:flex;align-items:center;width:100%;position:absolute;top:0;z-index:1000;background-color:#4a86cf;box-shadow:0 2px 4px -1px rgba(0,0,0,0.25)}.d-header>.wrap{width:calc(100% - 16px);height:100%}.d-header>.wrap .contents{display:flex;align-items:center;height:100%}.d-header>.wrap .contents .header-row{width:100%}.d-header>.wrap .contents .header-row .logo-wrapper{float:left}.d-header>.wrap .contents .header-row .auth-buttons{float:right;margin-top:0.4em}.d-header>.wrap .contents .header-row .auth-buttons .login-button,.d-header>.wrap .contents .header-row .auth-buttons .signup-button{padding:8px 14px}.docked .d-header{position:fixed;backface-visibility:hidden}.d-header .title{display:flex;align-items:center;height:100%}.d-header .title a,.d-header .title a:visited{color:#fff}.d-header #site-logo{width:auto}.d-header .d-icon-home{font-size:2.296em}.d-header .panel{position:relative;display:flex;flex:0 0 auto;margin-left:auto;align-items:center}.d-header .hamburger-panel,.d-header .user-menu,.d-header .search-menu{width:0}.d-header .header-buttons{display:flex;align-items:center;margin-top:0.2em}.d-header .login-button,.d-header .sign-up-button{padding:6px 10px}.d-header .login-button .fa,.d-header .sign-up-button .fa{margin-right:3px}.d-header .login-button{margin-left:7px}.header-dropdown-toggle .flagged-posts,.header-dropdown-toggle .reviewables,.drop-down .flagged-posts,.drop-down .reviewables,.panel-body .flagged-posts,.panel-body .reviewables{background:#e45735;min-width:6px}.d-header-icons{text-align:center;margin:0 0 0 5px;list-style:none}.d-header-icons>li{float:left}.d-header-icons .icon{position:relative;display:flex;align-items:center;justify-content:center;width:2.2857em;height:2.2857em;padding:0.2143em;text-decoration:none;cursor:pointer;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent;transition:all linear 0.15s;outline:none}.d-header-icons .icon img.avatar{width:2.1333em;height:2.1333em}.d-header-icons .icon:hover,.d-header-icons .icon:focus{background-color:#e9e9e9;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent}.d-header-icons .icon:hover .d-icon,.d-header-icons .icon:focus .d-icon{color:#919191}.d-header-icons .icon:active{color:#222;background-color:#e9e9e9}.drop-down-mode .d-header-icons .active .icon{position:relative;background-color:#fff;cursor:default;border-top:1px solid #e9e9e9;border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.drop-down-mode .d-header-icons .active .icon .d-icon{color:#919191}.drop-down-mode .d-header-icons .active .icon:after{display:block;position:absolute;top:100%;left:0;z-index:1001;width:100%;height:0;content:\"\";border-top:1px solid #fff}.drop-down-mode .d-header-icons .active .icon:hover{border-bottom:none}.d-header-icons .d-icon{width:100%;font-size:1.7511em;line-height:1.4;display:inline-block;color:#8c8c8c}.d-header-icons .notifications{position:relative}.d-header-icons .ring{position:absolute;top:-9px;z-index:1;margin-left:0}.d-header-icons .header-dropdown-toggle{position:relative}.d-header-icons .badge-notification{position:absolute;z-index:1;left:0;top:-4px;min-width:0.6em}.d-header-icons .unread-notifications{left:auto;right:-3px;background-color:#6cf}.d-header-icons .unread-private-messages,.d-header-icons .ring{left:auto;right:25px}.highlight-strong{background-color:#ffffa6}.search-highlight{font-weight:bold}#search-help table td{padding-right:10px}#search-term::-ms-clear{display:none}.extra-info-wrapper{display:flex;align-items:center;height:100%;line-height:1.2;padding:0 1.5em 0 0.5em;overflow:hidden}.extra-info-wrapper .extra-info{overflow:hidden;width:100%;-webkit-animation:fadein 0.5s;animation:fadein 0.5s}.extra-info-wrapper .topic-link{color:#fff;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .topic-statuses .d-icon{color:#a6a6a6}.extra-info-wrapper .topic-statuses .d-icon-envelope{color:#e45735}.extra-info-wrapper .header-title{margin:0 0 0.15em 0;font-size:1.5157em;width:100%}.archetype-private_message .extra-info-wrapper .header-title{margin:0}.extra-info-wrapper .categories-wrapper{display:inline-flex;align-items:center;max-width:80%;flex:0 1 auto;min-width:1px}.extra-info-wrapper .categories-wrapper .badge-wrapper{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper{margin-right:8px}.extra-info-wrapper .badge-wrapper.bullet .badge-category-parent-bg,.extra-info-wrapper .badge-wrapper.bullet .badge-category-bg{min-width:5px}.extra-info-wrapper .badge-wrapper.bullet span.badge-category,.extra-info-wrapper .badge-wrapper.bar span.badge-category,.extra-info-wrapper .badge-wrapper.none span.badge-category{color:#bfbfbf}.extra-info-wrapper .topic-header-extra{display:inline-flex;align-items:center;max-width:100%}.extra-info-wrapper .topic-header-extra .discourse-tags{color:#bfbfbf;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .topic-header-extra .discourse-tags .discourse-tag{display:inline}.topic-header-participants{display:flex;align-items:center;overflow:hidden;font-size:.8706em}.topic-header-participants:not(:first-child){margin-left:5px}.topic-header-participants .trigger-user-card:not(:last-of-type),.topic-header-participants .trigger-group-card:not(:last-of-type){margin-right:5px}.topic-header-participants .trigger-user-card .icon{height:1.641em;display:inline-block}.mobile-view .topic-header-participants .trigger-user-card .icon{height:1.532em}.topic-header-participants .trigger-user-card .icon img{height:100%;width:auto}.topic-header-participants .trigger-group-card{padding:0 5px;border:1px solid #e9e9e9;border-radius:0.25em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topic-header-participants .trigger-group-card .icon{display:flex;align-items:center;height:1.641em;color:#646464}.mobile-view .topic-header-participants .trigger-group-card .icon{height:1.532em}.topic-header-participants .trigger-group-card .icon .d-icon{margin-right:5px}.topic-header-participants .trigger-group-card span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topic-header-participants .more-participants{color:#bfbfbf;margin-left:5px}.modal.history-modal #revision-numbers{display:inline-block;min-width:96px;text-align:center}.modal.history-modal #revision{overflow:auto;border-bottom:3px solid #e9e9e9}.modal.history-modal table.markdown>tbody>tr>td,.modal.history-modal .revision-content{width:47.5%;float:left}.modal.history-modal table.markdown>tbody>tr>td:nth-of-type(2),.modal.history-modal .revision-content:nth-of-type(2){margin-left:5%}.modal.history-modal #revision-details{padding:5px}.modal.history-modal #revisions .row:first-of-type{margin-top:10px}.modal.history-modal ins code,.modal.history-modal ins img,.modal.history-modal .diff-ins code,.modal.history-modal .diff-ins img{border:2px solid #090}.modal.history-modal ins img,.modal.history-modal .diff-ins img{opacity:0.75;filter:alpha(opacity=75)}.modal.history-modal ins a,.modal.history-modal .diff-ins a{color:#090;text-decoration:none}.modal.history-modal img.diff-ins,.modal.history-modal code.diff-ins{border:2px solid #090}.modal.history-modal img.diff-ins{opacity:0.75;filter:alpha(opacity=75)}.modal.history-modal .diff-ins{color:#222;background:#b8ffb8}.modal.history-modal ins{color:#222;background:#b8ffb8;text-decoration:none}.modal.history-modal del code,.modal.history-modal del img,.modal.history-modal .diff-del code,.modal.history-modal .diff-del img{border:2px solid #e45735}.modal.history-modal del img,.modal.history-modal .diff-del img{opacity:0.5;filter:alpha(opacity=50)}.modal.history-modal del a,.modal.history-modal .diff-del a{color:#e45735;text-decoration:none}.modal.history-modal img.diff-del,.modal.history-modal code.diff-del{border:2px solid #e45735}.modal.history-modal img.diff-del{opacity:0.5;filter:alpha(opacity=50)}.modal.history-modal .diff-del{color:#222;background:#fbe6e1;text-decoration:none}.modal.history-modal del{color:#222;background:#fbe6e1;text-decoration:none}.modal.history-modal span.date{font-weight:bold}.modal.history-modal span.edit-reason{background-color:#ffffa6;padding:3px 5px 5px 5px}.modal.history-modal .d-icon-ban{color:#f00}.modal.history-modal .hidden-revision-either{opacity:0.5}.modal.history-modal .hidden-revision-previous .row div:nth-of-type(1),.modal.history-modal .hidden-revision-previous .row td:nth-of-type(1){opacity:0.5}.modal.history-modal .hidden-revision-current .row div:nth-of-type(2),.modal.history-modal .hidden-revision-current .row td:nth-of-type(2){opacity:0.5}.lightbox-wrapper .lightbox{position:relative;display:inline-block;overflow:hidden}.lightbox-wrapper .lightbox:hover .meta{opacity:0.9;transition:opacity 0.5s}.d-lazyload-hidden{box-sizing:border-box}.onebox img.d-lazyload-hidden{border:1px solid #e9e9e9}.cooked img.d-lazyload{transition:opacity 0.4s 0.75s ease}.lightbox-wrapper{display:inline-block}.lightbox-wrapper img{object-fit:cover;object-position:top}.lightbox-wrapper,.lightbox-wrapper *{outline:0}.meta{position:absolute;bottom:0;width:100%;color:#fff;background:#222;opacity:0;transition:opacity 0.2s;display:flex;align-items:center}.meta .filename{margin:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meta .d-icon{margin:6px;opacity:0.8;color:#fff}.meta .d-icon+.filename{margin-left:0px}.meta .informations{margin:6px;padding-right:20px;color:#a6a6a6;font-size:1em;flex-shrink:0;flex-grow:3}.mfp-preloader .spinner{margin:auto}.discourse-no-touch a.lightbox{-webkit-transition:all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);transition:all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)}.discourse-no-touch a.lightbox:hover{border-radius:5px;box-shadow:0 2px 5px 0 rgba(34,34,34,0.2),0 2px 10px 0 rgba(34,34,34,0.2)}.caps-lock-warning{color:#e45735;font-size:.8706em;font-weight:bold}.discourse-no-touch #login-form{margin:0}.discourse-touch .caps-lock-warning{display:none}#login-form table{width:100%}#login-form a{color:#646464}#login-form td{padding-right:5px}#login-form #credentials tr:first-of-type{margin-bottom:0.75em}#new-account-link{cursor:pointer}.login-modal tbody,.create-account tbody{border:none}.login-modal tr,.create-account tr{border:none}.login-modal tr:not(.instructions) td,.create-account tr:not(.instructions) td{padding:10px 0 0 0}.login-modal td label,.login-modal td input,.create-account td label,.create-account td input{margin-bottom:0;width:100%}.login-modal .modal-footer .inline-spinner,.create-account .modal-footer .inline-spinner{display:inline-flex}.login-modal.awaiting-approval,.create-account.awaiting-approval{display:none}.create-account .disclaimer{color:#919191;margin-top:0.5em}.create-account .user-field>label{margin-top:0.75em;margin-bottom:0;padding-top:5px}.create-account .user-field:first-of-type>label{margin-top:0}.create-account .user-field input[type=\"text\"]{margin-bottom:0;width:100%}.create-account .user-field .select-kit{width:100%}.create-account .user-field .controls{padding-top:5px}.create-account .user-field .controls label{width:auto;text-align:left;font-weight:normal}.create-account .user-field .controls .instructions{margin-top:0.15em;color:#919191;line-height:1.2}.password-reset .instructions label{color:#919191}.invites-show .two-col{position:relative;display:flex}.invites-show .col-image{position:relative;margin-right:20px}@media screen and (max-width: 600px){.invites-show .col-image{display:none}}.invites-show form{margin-top:24px}.invites-show form button.btn-primary{margin-top:10px}.invites-show form label:not(.checkbox-label){font-weight:bold}.invites-show form .controls,.invites-show form .input{margin-bottom:10px}.invites-show form .instructions{color:#919191;margin:0;font-size:.8706em;font-weight:normal;line-height:1.2}.auth-message{padding:0 15px 15px 15px}.auth-message:empty{padding:0}.modal tr.instructions{display:flex;flex-direction:column;margin-top:0.15em}.modal tr.instructions label{color:#919191}button#login-link,button#new-account-link{background:transparent;color:#646464}#security-key{display:flex;flex-wrap:wrap;align-items:center}#security-key button{margin-right:1.5em}#security-key p{margin:0;font-size:1em}#security-key a{display:inline-block;padding:1em 0.5em 1em 0;color:#08c}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1500;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1501;position:fixed;outline:0 !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:\"\";display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:1.4;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:2em;font-family:Arial, Baskerville, monospace}.mfp-close:hover,.mfp-close:focus{opacity:1;outline:0}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:.8706em;line-height:1.2}.mfp-arrow{position:absolute;opacity:.65;top:50%;margin:-55px 0 0;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{outline:0;opacity:1}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:\"\";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:\"\";position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:linear-gradient(45deg, #111 0%, #333 100%)}.mfp-figure small{color:#bdbdbd;display:block;font-size:.8706em;line-height:1.2}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:1.2;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-title a.image-source-link .d-icon{padding-right:5px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media all and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:1.4;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{transform-origin:0;-webkit-transform-origin:0}.mfp-arrow-right{transform-origin:100%;-webkit-transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-zoom-in .mfp-content{opacity:0;transition:all 0.2s;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.mfp-zoom-in.mfp-bg{opacity:0;transition:all 0.3s ease-out}.mfp-zoom-in.mfp-ready .mfp-content{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.mfp-zoom-in.mfp-ready.mfp-bg{opacity:0.8}.mfp-zoom-in.mfp-removing .mfp-content{-webkit-transform:scale(0.8);transform:scale(0.8);opacity:0}.mfp-zoom-in.mfp-removing.mfp-bg{opacity:0}.mfp-force-scrollbars.mfp-wrap{overflow-y:auto !important;overflow-x:auto !important}.mfp-force-scrollbars .mfp-img{max-width:none}.menu-panel.slide-in{position:fixed;right:0;box-shadow:0 2px 4px -1px rgba(0,0,0,0.25)}.menu-panel.slide-in.animate{transition:right 0.2s ease-out, left 0.2s ease-out}.menu-panel.slide-in .panel-body{position:absolute;top:3px;bottom:37px;width:97%}.header-cloak{display:none}.menu-panel.drop-down{position:absolute;top:100%;right:-10px}.menu-panel{border:1px solid #e9e9e9;box-shadow:0 12px 12px rgba(0,0,0,0.15);background-color:#fff;z-index:1000;padding:0.5em;width:300px}.menu-panel hr{margin:3px 0}.menu-panel .panel-header{position:absolute;right:20px}.menu-panel ul{list-style:none;margin:0;padding:0}.menu-panel .panel-body{touch-action:pan-y pinch-zoom;overflow-y:auto;overflow-x:hidden;max-height:100vh}.menu-panel .badge-notification{vertical-align:text-bottom}.menu-links.columned li{width:50%;float:left}.menu-panel li a.widget-link,.menu-panel li.heading a.widget-link{padding:0.25em 0.5em;display:block}.menu-panel li a.widget-link:hover,.menu-panel li a.widget-link:focus,.menu-panel li.heading a.widget-link:hover,.menu-panel li.heading a.widget-link:focus{background-color:#ffffa6;outline:none}.menu-panel li .new,.menu-panel li.heading .new{font-size:.8706em;margin-left:0.5em;color:#919191}.menu-panel .categories-link{display:block;padding:0.25em 0.5em}.menu-panel li.category-link{float:left;background-color:transparent;display:inline-flex;align-items:center;padding:0.25em 0.5em;width:50%;box-sizing:border-box}.menu-panel li.category-link a{display:inline-flex}.menu-panel li.category-link a:hover,.menu-panel li.category-link a:focus{background:transparent}.menu-panel li.category-link .badge-notification{color:#919191;background-color:transparent;display:inline;padding:0;font-size:.8706em;line-height:1.4}.menu-panel li.category-link .badge-wrapper.bar,.menu-panel li.category-link .badge-wrapper.bullet{color:#222;padding:0 0 0 0.15em}.menu-panel li.category-link .badge-wrapper.box{color:#fff}.menu-panel li.category-link .badge-wrapper.box+a.badge.badge-notification{padding-top:2px}.menu-panel li.category-link .badge-wrapper.box span{z-index:-1}.menu-panel b.topics-count{color:#919191;font-weight:normal;font-size:.8706em}.menu-panel span.badge-category{max-width:100px}.menu-panel div.discourse-tags{font-size:.8706em}.user-menu .quick-access-panel{width:100%;display:table;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.user-menu .quick-access-panel h3{padding:0 0.4em;font-weight:bold;margin:0.5em 0}.user-menu .quick-access-panel .d-icon,.user-menu .quick-access-panel:hover .d-icon{color:#919191}.user-menu .quick-access-panel .icon{color:#646464}.user-menu .quick-access-panel li{background-color:#d1f0ff}.user-menu .quick-access-panel li div .fa{display:none}.user-menu .quick-access-panel li span:first-child{color:#222}.user-menu .quick-access-panel li:hover,.user-menu .quick-access-panel li:focus{background-color:#ffffa6;outline:none}.user-menu .quick-access-panel li a{padding:0}.user-menu .quick-access-panel li a>div{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.user-menu .quick-access-panel li p{margin:0;overflow:hidden}.user-menu .quick-access-panel li:not(.show-all){padding:0.25em 0.5em}.user-menu .quick-access-panel li:not(.show-all) .d-icon{float:left;margin-right:5px;padding-top:0.2em}.user-menu .quick-access-panel .is-warning .d-icon-far-envelope{color:#e45735}.user-menu .quick-access-panel .read{background-color:#fff}.user-menu .quick-access-panel .none{padding-top:5px}.user-menu .quick-access-panel .spinner-container{min-height:2em}.user-menu .quick-access-panel .spinner{width:20px;height:20px;border-width:2px;margin:0 auto}.user-menu .quick-access-panel .show-all a{width:100%;display:flex;justify-content:center;align-items:center;min-height:30px;color:#919191;background:#f9f9f9}.user-menu .quick-access-panel .show-all a:hover{color:#222;background:#e9e9e9}.user-menu .dismiss-link{display:inline-block;float:right}div.menu-links-header{width:100%;display:table;border-collapse:separate;border-spacing:0 0.5em}div.menu-links-header .menu-links-row{border-bottom:1px solid #e9e9e9;display:flex;padding:0 4px}div.menu-links-header .menu-links-row li{display:inline-flex;align-items:center;flex-wrap:wrap}div.menu-links-header .menu-links-row li.user{margin-right:auto}div.menu-links-header .menu-links-row li.glyphs{flex-wrap:wrap;text-align:right}div.menu-links-header .menu-links-row li.glyphs a{padding-left:0.6em;padding-right:0.6em}div.menu-links-header .menu-links-row li a{border:1px solid transparent;border-bottom:0}div.menu-links-header .menu-links-row li a.active{border:1px solid #e9e9e9;border-bottom:0;position:relative}div.menu-links-header .menu-links-row li a.active:after{display:block;position:absolute;top:100%;left:0;z-index:1001;width:100%;height:0;content:\"\";border-top:1px solid #fff}div.menu-links-header .menu-links-row li a.active:focus,div.menu-links-header .menu-links-row li a.active:hover{background-color:inherit}div.menu-links-header a:hover,div.menu-links-header a:focus{background-color:#ffffa6;outline:none}div.menu-links-header a{padding:0.3em 0.5em}div.menu-links-header a.user-activity-link{align-items:center;display:flex;margin:-0.5em 0;max-width:130px;overflow:visible}div.menu-links-header a.user-activity-link span.d-label{display:block;max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 350px){div.menu-links-header a.user-activity-link{max-width:125px}}div.menu-links-header li{display:table-cell;width:auto;text-align:center}div.menu-links-header li:first-child{text-align:left}div.menu-links-header li:last-child{text-align:right}div.menu-links-header .fa,div.menu-links-header a{color:#919191}div.menu-links-header .d-icon-user{margin-right:0.475em}.modal-outer-container{width:100%;height:100%}.modal-middle-container{display:flex;height:100%;align-items:center}.modal-inner-container{box-sizing:border-box;flex:0 1 auto;margin:0 auto;max-width:700px;background-color:#fff;box-shadow:0 8px 60px rgba(0,0,0,0.6)}.modal-inner-container .select-kit{width:220px}.modal-inner-container .select-kit.tag-chooser{width:100%}.modal-open .dropdown-menu{z-index:1400}.modal-open .popover{z-index:1500}.modal-open .tooltip{z-index:1600}.bootbox.modal{position:fixed;z-index:1300;overflow:auto;height:auto;background-color:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.15);background-clip:padding-box}.input-hint-text{margin-left:0.5em;color:#a6a6a6}.modal-header{display:flex;padding:10px 15px;border-bottom:1px solid #e9e9e9;align-items:center}.modal-header .title h3{margin-bottom:0}.modal-header .title p{margin:0}.modal-header .modal-close{align-self:flex-start;order:2;margin-left:auto;padding-left:2em}.modal-header .modal-close .close{color:#646464}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background-color:#111}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{animation:fade 0.3s;opacity:0.9;filter:alpha(opacity=90)}@keyframes fade{from{opacity:0}to{opacity:0.9}}@keyframes slidein{from{transform:translateY(-20%)}to{transform:translateY(0)}}.create-account.in .modal-inner-container,.login-modal.in .modal-inner-container{animation:slidein 0.3s}.inline-modal .modal-inner-container{border:1px solid gray}.fixed-modal{position:fixed;top:0;width:100%;height:100%;z-index:1300;overflow:auto}.fixed-modal:not(.history-modal) .modal-body:not(.reorder-categories):not(.poll-ui-builder){max-height:80vh !important}@media screen and (max-height: 500px){.fixed-modal:not(.history-modal) .modal-body:not(.reorder-categories):not(.poll-ui-builder){max-height:65vh !important}}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 10px;border-top:1px solid #e9e9e9}.modal-footer .btn{margin:0 5px 5px 0}.modal-footer .btn[href]{min-height:unset}.modal.edit-category-modal .modal-body textarea{height:10em}@media screen and (min-width: 524px){.modal.edit-category-modal .modal-inner-container{min-width:525px}}.modal .nav{padding:10px 30px 10px 15px;background-color:#fff;border-bottom:1px solid #e9e9e9}.modal .nav li>a{font-size:1em}.modal.hidden{display:none}.modal .modal-body{overflow-y:auto;max-height:400px;padding:1em}.modal .modal-body.full-height-modal{max-height:calc(100vh - 150px)}.modal .modal-body.insert-link{overflow-y:visible}.modal .modal-body.insert-link input{min-width:300px}.modal .modal-body.insert-link .inputs{position:relative}.modal .modal-body.insert-link .inputs .spinner{position:absolute;right:8px;top:-15px;width:10px;height:10px}.modal .modal-body.insert-link .inputs .internal-link-results{position:absolute;top:70%;padding:5px 10px;box-shadow:0 4px 14px rgba(0,0,0,0.15);z-index:5;background-color:#fff;max-height:150px;width:90%;overflow-y:auto}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link{padding:6px;border-bottom:1px solid #e9e9e9;cursor:pointer;display:block}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link:hover,.modal .modal-body.insert-link .inputs .internal-link-results>.search-link:focus{background-color:#ffffa6}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link .search-category{display:flex;align-items:center}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link .discourse-tags{display:inline-block;font-size:.8706em}.modal .modal-body textarea{width:100%;height:80px;box-sizing:border-box}.modal .modal-body p{font-size:1em}.modal .modal-body .archetype-option{margin-bottom:20px}.modal .modal-body .warning{color:#e45735 !important}.modal .password-confirmation{display:none}.modal section.field{padding:0.25em 0;margin-bottom:5px}.modal section.field.with-items{display:flex;align-items:flex-start}.modal section.field .field-item{display:inline-block;margin-right:10px}.modal .modal-body.forgot-password-modal p{font-size:1em}.modal pre code{white-space:pre-wrap;max-width:700px}.reply-where-modal .modal-footer a{display:block}.reply-where-modal .modal-footer .d-modal-cancel{margin:1em 0 0.5em}.reply-where-modal .modal-footer .btn{text-align:left;font-size:1.3195em;line-height:1.2;margin-bottom:10px;font-weight:bold}.reply-where-modal .modal-footer .btn .topic-title{font-weight:normal}.d-modal-cancel{margin-left:1em;color:#919191}.d-modal-cancel:hover{color:#e45735}.delete-user-modal .modal-footer .btn{line-height:1.2}.delete-posts-progress .progress-bar{height:15px;position:relative;background:#bdbdbd;border-radius:25px;overflow:hidden;margin:30px 0 20px}.delete-posts-progress .progress-bar span{display:block;width:0%;height:100%;background-color:#08c;position:relative;transition:width 0.6s linear}.permission-list{list-style:none;margin:0 0 30px;padding:0}.permission-list .name{margin-right:20px;display:inline-block;min-width:100px}.permission-list .permission{margin-left:20px}.permission-list .d-icon-times-circle{margin-left:5px;color:#e45735}.permission-list li{margin-bottom:10px}.edit-category-modal input:not([type=\"checkbox\"]),.edit-category-modal .controls{display:block;margin-bottom:0.5em}.edit-category-modal .disable_info_wrap{position:relative;display:inline-block;float:right}.edit-category-modal .disable_info_wrap .cannot_delete_reason{position:absolute;background:#222;color:#fff;text-align:center;border-radius:2px;padding:12px 8px}.edit-category-modal .disable_info_wrap .cannot_delete_reason::after{top:100%;left:57%;border:solid transparent;content:\" \";position:absolute;border-top-color:#222;border-width:8px}.edit-category-modal .permission-selector{margin-right:0.25em}.edit-category-modal .pending-permission-change-alert{margin-left:auto;max-width:250px;background:#434343;color:#fff;margin-top:10px;padding:5px 10px;position:relative}.edit-category-modal .pending-permission-change-alert .arrow-div{border:solid transparent;content:\" \";position:absolute;border-bottom-color:#434343;border-width:7px;top:-13px;left:200px}.edit-category-modal .add-permission{position:relative;top:0.1em}.edit-category-modal .edit-category-tab-settings>section{margin-bottom:1.5em}.edit-category-modal .edit-category-tab-settings input[type=\"number\"],.edit-category-modal .edit-category-tab-settings input[type=\"text\"],.edit-category-modal .edit-category-tab-settings .select-kit{width:280px}.edit-category-modal .edit-category-tab-settings label{max-width:280px}.edit-category-modal .edit-category-tab-settings .category-email-in-outlet label{flex-wrap:wrap}.edit-category-modal .edit-category-tab-settings .category-email-in-outlet label a{margin-left:1.3em}.edit-category-modal #category-min-tags-from-group{width:100px}.incoming-email-modal .btn{transition:none;background-color:transparent;margin-right:5px}.incoming-email-modal .btn:hover,.incoming-email-modal .btn.active{color:#222}.incoming-email-modal .btn.active{font-weight:bold}.incoming-email-modal .btn:focus{outline:2px solid #e9e9e9}.incoming-email-modal .incoming-email-tabs{margin-bottom:15px}.incoming-email-modal .incoming-email-content{height:300px;max-width:700px;width:90vw}.incoming-email-modal .incoming-email-content textarea,.incoming-email-modal .incoming-email-content .incoming-email-html-part{height:95%;border:none;border-top:1px solid #e9e9e9;padding-top:10px}.incoming-email-modal .incoming-email-content textarea{font-family:monospace;resize:none;border-radius:0;box-shadow:none}.incoming-email-modal .incoming-email-content .incoming-email-html-part{width:calc(100% - 36px);padding:10px 4px 4px 4px}@media screen and (max-width: 760px){.incoming-email-modal .incoming-email-content .incoming-email-html-part{width:calc(100% - 10px)}}.modal .modal-body.change-timestamp #date-container .pika-single{width:100%;box-sizing:border-box;display:flex;justify-content:center}.modal .modal-body.change-timestamp form{display:flex}.modal .modal-body.change-timestamp form .date-picker-wrapper,.modal .modal-body.change-timestamp form input[type=\"time\"]{width:50%}.modal .modal-body.change-timestamp form .date-picker-wrapper{display:flex;flex:1}.modal .modal-body.change-timestamp form .date-picker-wrapper .date-picker{flex:1}.modal .modal-body.change-timestamp form input.date-picker,.modal .modal-body.change-timestamp form input[type=\"time\"]{text-align:left;margin:0}.change-timestamp{max-width:420px}.change-timestamp #date-container .pika-single,.poll-ui-builder #date-container .pika-single{position:relative !important;display:inline-block;margin-top:0.5em}.change-timestamp .date-picker-wrapper,.poll-ui-builder .date-picker-wrapper{min-width:130px;margin-right:0.5em}.change-timestamp input[type=\"time\"],.poll-ui-builder input[type=\"time\"]{width:130px}.change-timestamp form,.poll-ui-builder form{margin:0}.flag-modal{max-height:450px}.flag-modal .flag-action-type-details{width:100%;max-width:500px;line-height:1.4}.flag-message{margin:0}.custom-message-length{color:#919191;font-size:.8706em}.jump-to-post-modal .modal-inner-container{max-width:350px}.jump-to-post-modal .modal-body{overflow-y:visible}.jump-to-post-modal .modal-body #post-jump,.jump-to-post-modal .modal-body .date-picker{margin:0;width:100px}.jump-to-post-modal .modal-body .input-hint-text{color:#222}.jump-to-post-modal .modal-body .jump-to-post-control .index{color:#919191}.jump-to-post-modal .modal-body .jump-to-date-control .input-hint-text{margin-left:0}.jump-to-post-modal .modal-body .separator{display:flex;align-items:center;margin:0.5em auto}.jump-to-post-modal .modal-body .separator hr{flex:1 0 0px}.jump-to-post-modal .modal-body .separator .text{margin:0 0.5em 0 0;color:#919191}.choose-topic-modal #split-topic-name,.choose-topic-modal #choose-topic-title,.choose-topic-modal #choose-message-title{width:100%}.choose-topic-modal .category-chooser{margin-bottom:9px;width:100% !important}.choose-topic-modal .controls.existing-topic{margin-bottom:0.75em}.choose-topic-modal .existing-topic .radio{flex-wrap:wrap}.choose-topic-modal .existing-topic .topic-title{max-width:90%}.choose-topic-modal .existing-topic .topic-categories{width:100%}.modal:not(.has-tabs) .modal-tab{position:absolute;width:95%}.modal.has-tabs .modal-tabs{display:inline-flex;flex-wrap:wrap;width:calc(100% - 20px);flex:1 0 auto;margin:0}.modal.has-tabs .modal-tabs .modal-tab{list-style:none;padding:4px 8px;margin-right:4px;cursor:pointer}.modal.has-tabs .modal-tabs .modal-tab.is-active{color:#fff;background:#e45735}.modal.has-tabs .modal-tabs .modal-tab.is-active.single-tab{background:none;color:#222;padding:4px 0}.page-not-found{margin:0 0 40px 0}.page-not-found h1.title{font-size:2em;line-height:1.2}.page-not-found-search{margin-top:20px}.page-not-found-topics{display:flex}@media screen and (max-width: 600px){.page-not-found-topics{flex-wrap:wrap}}.popular-topics,.recent-topics{box-sizing:border-box;width:50%;max-width:400px;margin-bottom:40px;padding-right:20px}@media screen and (max-width: 600px){.popular-topics,.recent-topics{width:100%}}.popular-topics h2,.recent-topics h2{margin-bottom:10px}.not-found-topic{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:15px}@media screen and (max-width: 600px){.not-found-topic:nth-of-type(n+6){display:none}}.not-found-topic a:not(.badge-wrapper){flex-basis:100%}a.loading-onebox:before{content:\"\";display:inline-flex;float:left;margin:3px 5px 0 0;position:relative;height:10px;width:10px;border:2px solid #bdbdbd;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-forever 1s infinite linear;animation:rotate-forever 1s infinite linear}.onebox-result{border-left:5px solid #e9e9e9;background-color:#f9f9f9;margin-top:15px;padding:12px;font-size:1em}.onebox-result>.source{margin-bottom:12px;margin-right:10px;display:block;color:#222;position:relative;height:20px}.onebox-result>.source .info{position:absolute;font-size:1em}.onebox-result>.source .info a{color:black;text-decoration:none;padding-right:10px}.onebox-result>.source .info img.favicon{margin-right:3px}.onebox-result .onebox-result-body{padding-top:5px}.onebox-result .onebox-result-body img{max-height:80%;max-width:25%;height:auto;float:left;margin-right:10px}.onebox-result .onebox-result-body h3,.onebox-result .onebox-result-body h4{margin:0}.onebox-result .onebox-result-body code{max-height:400px}.onebox-result .onebox-result-body .metrics{clear:both;padding-bottom:25px}.onebox-result .onebox-result-body .metrics .metric{display:inline-block;padding-left:33px;float:left}.onebox-result .onebox-result-body img.verdict{float:none;margin-right:7px}.onebox-result .onebox-result-body img.popcorn{float:none;margin-left:20px;margin-right:5px}aside.onebox{border:5px solid #e9e9e9;margin-bottom:1em;padding:12px 25px 12px 12px;font-size:1em}aside.onebox header{margin-bottom:8px}aside.onebox header a[href]{color:#919191;text-decoration:none}aside.onebox.stackexchange .source{background:url('/assets/favicons/stackexchange-9e9f17242c6d44137d40a3e55c71129060b103bfa31b7fead4ca3f18358da29f.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.twitterstatus .source{background:url('/assets/favicons/twitter-4ff0f6e16c5f53ddd3b51eeeff8610ea0432d8ebafce89785d75c231386f80d7.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.wikipedia .source{background:url('/assets/favicons/wikipedia-8feddaf7544a35c824f2e4274227fe8e7e7af71ddfe26523fe5fe20497cf5799.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubblob .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubcommit .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubpullrequest .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubissue .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubgist .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.amazon .source{background:url('/assets/favicons/amazon-882adb9da23d489f1d53ba95c6ea4052536732d9caa57ec82a8f8d0f508e48ea.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.instagram .source{background:url('/assets/favicons/instagram-b10f04096a20e469f83a32ec24519d1f20ab473209a77a3c7dbfe767613c9e5f.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.googledocs .source{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.googledrive .source{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox .onebox-body{clear:both}aside.onebox .onebox-body h3,aside.onebox .onebox-body h4{font-size:1.1487em;margin:0 0 10px 0}aside.onebox .onebox-body a[href]{color:#08c;text-decoration:none}aside.onebox .onebox-body a[href]:visited{color:#08c}aside.onebox .onebox-body img{max-height:170px;max-width:20%;height:auto;width:auto;float:left;margin-right:10px}@media all and (max-width: 600px){aside.onebox .onebox-body img{max-width:35%}}aside.onebox .onebox-body img.onebox-full-image{max-height:none;max-width:none;width:initial;height:initial}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>:first-child{width:100%}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>img{height:auto}@supports (--custom: property){aside.onebox .onebox-body .aspect-image{max-height:170px;--magic-ratio: calc(var(--aspect-ratio) + 0.15);width:calc(128px * var(--magic-ratio));max-width:20%;float:left;margin-right:10px;height:auto}aside.onebox .onebox-body .aspect-image img{width:100%;height:inherit;max-width:initial;max-height:initial;float:none;margin-right:none}aside.onebox .onebox-body .aspect-image-full-size{max-height:500px;width:calc(500px * var(--aspect-ratio));max-width:100%}aside.onebox .onebox-body .aspect-image-full-size img{width:100%;height:inherit;max-width:initial;max-height:initial;float:none;padding:5px 5px 5px 5px}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]{position:relative}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]::before{content:\"\";display:block;padding-bottom:calc(100% / (var(--aspect-ratio)))}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>:first-child{position:absolute;top:0;left:0;height:100%}}aside.onebox .onebox-body p:last-child{margin-bottom:4px}aside.onebox .onebox-body .tweet-images{display:block;clear:both}aside.onebox .onebox-body .tweet-images img.tweet-image{margin-top:1em;max-width:100%;max-height:100%;float:none}@media screen and (max-width: 550px){aside.onebox .onebox-body .tweet-images iframe{max-height:70vh}}aside.onebox .onebox-body.user-onebox .fa{margin-right:5px}aside.onebox .onebox-body.user-onebox .full-name,aside.onebox .onebox-body.user-onebox .location{margin-right:10px}aside.onebox .onebox-body .instagram-images,aside.onebox .onebox-body .scale-images{clear:both;position:relative}aside.onebox .onebox-body .instagram-images .instagram-image,aside.onebox .onebox-body .instagram-images .scale-image,aside.onebox .onebox-body .scale-images .instagram-image,aside.onebox .onebox-body .scale-images .scale-image{padding:5px 5px 5px 5px;max-width:100%;max-height:100%;float:none}aside.onebox .onebox-body .instagram-video-icon{bottom:10px;right:10px;position:absolute}aside.onebox .onebox-body .instagram-video-icon:before{opacity:0.8;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32px' height='32px' viewBox='0 0 512 512' fill='white'%3E%3Cpath d='M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z'%3E%3C/path%3E%3C/svg%3E\")}.googledocs-onebox-logo{width:60px;height:50px;float:left}.googledocs-onebox-logo.g-docs-logo{background:url('/assets/favicons/google_branding/logo_docs_48px-ba6cf22f5336743da95749fb1172023f37e55e8783a2766de8d9097b4cc6b5b9.png') no-repeat}.googledocs-onebox-logo.g-forms-logo{background:url('/assets/favicons/google_branding/logo_forms_48px-d64ec45f889caa62cd4c52bcff1475ef487b9662b5ed6104aa9fa6f8557b09fc.png') no-repeat}.googledocs-onebox-logo.g-sheets-logo{background:url('/assets/favicons/google_branding/logo_sheets_48px-ca5da2b813ac5382a7b3a42d1327ddbced98467021466efe5494c25ca50f5a38.png') no-repeat}.googledocs-onebox-logo.g-slides-logo{background:url('/assets/favicons/google_branding/logo_slides_48px-a752c1f8e690496c7b22265f77ebfbc2d584aa42b2e4392f72b1c5a144bbb95f.png') no-repeat}.googledocs-onebox-logo.g-calendar-logo{background:url('/assets/favicons/google_branding/logo_calendar_48px-7e0f251c12ecc35f5260919fe00b3789c58257b76c4288d458a6718f12367145.png') no-repeat}.googledocs-onebox-logo.g-drive-logo{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat}.gdocs-onebox-splash{background-color:#d6d6d6;color:#222;border:1px inset #222}.gdocs-onebox-splash .gdocs-onebox-logo{display:inline-block;width:128px;height:128px}.gdocs-onebox-splash .gdocs-onebox-logo.g-calendar-logo{background:url('/assets/favicons/google_branding/logo_calendar_128px-231ebf870f91f296642eb4e881c76013c818b2f677aec3b1faaac33f72811f56.png') no-repeat}aside.onebox .onebox-body .onebox-avatar{max-height:none;max-width:none;height:60px;width:60px}blockquote aside.onebox{border-left:5px solid #e9e9e9;background-color:#f9f9f9}pre.onebox code ol.lines li:before{position:absolute;display:inline-block;width:35px;left:-40px;color:#afafaf;text-align:right;padding-right:5px;font-size:.8706em;line-height:1.4;content:counter(li-counter);counter-increment:li-counter}pre.onebox code ol{margin-left:0;line-height:1.4}pre.onebox code{background-color:#fff}pre.onebox code li{padding-left:5px}pre.onebox code ol.lines{position:relative;margin:0 0 0 40px}pre.onebox code ol.lines li{list-style-type:none;padding-left:5px;margin-left:0;border-left:1px solid #cfcfcf;min-height:1.5em;white-space:pre}pre.onebox code li.selected{background-color:#f8eec7}pre.onebox code{white-space:normal}.onebox.githubpullrequest .onebox-body h4,.onebox.githubcommit .onebox-body h4,.onebox.githubissue .onebox-body h4{margin-bottom:5px}.onebox.githubpullrequest .onebox-body>.github-icon,.onebox.githubcommit .onebox-body>.github-icon,.onebox.githubissue .onebox-body>.github-icon{float:left;margin-right:5px}.onebox.githubpullrequest .github-row,.onebox.githubcommit .github-row,.onebox.githubissue .github-row{display:flex}.onebox.githubpullrequest .github-icon-container,.onebox.githubcommit .github-icon-container,.onebox.githubissue .github-icon-container{display:flex;align-items:flex-start;margin-right:5px}.onebox.githubpullrequest .github-icon,.onebox.githubcommit .github-icon,.onebox.githubissue .github-icon{fill:#646464;width:40px;height:40px}.onebox.githubpullrequest .branches,.onebox.githubcommit .branches,.onebox.githubissue .branches{font-size:.8706em}.onebox.githubpullrequest .branches code,.onebox.githubcommit .branches code,.onebox.githubissue .branches code{word-break:break-all}.onebox.githubpullrequest .github-info-container,.onebox.githubcommit .github-info-container,.onebox.githubissue .github-info-container{width:100%}.onebox.githubpullrequest .github-info,.onebox.githubcommit .github-info,.onebox.githubissue .github-info{display:flex;align-items:center;flex-wrap:wrap;width:100%}.onebox.githubpullrequest .github-info>div,.onebox.githubcommit .github-info>div,.onebox.githubissue .github-info>div{margin:2.5px 0}.onebox.githubpullrequest .github-info>div:not(:last-child),.onebox.githubcommit .github-info>div:not(:last-child),.onebox.githubissue .github-info>div:not(:last-child){margin-right:15px}.onebox.githubpullrequest .github-info .lines,.onebox.githubcommit .github-info .lines,.onebox.githubissue .github-info .lines{font-weight:bold}.onebox.githubpullrequest .github-info .lines .added,.onebox.githubcommit .github-info .lines .added,.onebox.githubissue .github-info .lines .added{color:#090}.onebox.githubpullrequest .github-info .lines .removed,.onebox.githubcommit .github-info .lines .removed,.onebox.githubissue .github-info .lines .removed{color:#e45735}.onebox.githubpullrequest .onebox-avatar-inline,.onebox.githubcommit .onebox-avatar-inline,.onebox.githubissue .onebox-avatar-inline{height:20px;width:20px;border-radius:2px;float:none;margin:0;padding:0;vertical-align:middle;max-width:none}.onebox.githubpullrequest .github-content,.onebox.githubcommit .github-content,.onebox.githubissue .github-content{margin:5px 0 0 0}.onebox.githubpullrequest .labels span,.onebox.githubcommit .labels span,.onebox.githubissue .labels span{background-color:#919191 !important;color:#fff !important;padding:2px 4px !important}.onebox-body .github-commit-status{background:#f5f5f5;border-radius:5px;margin:0 0 5px 100px;padding:10px}.onebox-body .status_tag{display:inline-block;color:#fff;padding:1px 4px;border-radius:3px;font-weight:bold;margin-bottom:5px;text-transform:capitalize}.onebox-body .build_status{padding:2px;font-size:.8706em}.onebox-body .status_tag.open{background-color:#6cc644}.onebox-body .status_tag.merged{background-color:#6e5494}.onebox-body .status_tag.closed{background-color:#bd2c00}.onebox-body .github-content-right{margin-left:100px}aside.onebox.twitterstatus .onebox-body h4{margin-bottom:0}.onebox.twitterstatus .thumbnail{width:48px;height:48px}.onebox.twitterstatus p,.onebox.twitterstatus .tweet{white-space:pre-line;padding-top:3px;margin-left:70px}.onebox.twitterstatus p .quoted,.onebox.twitterstatus .tweet .quoted{border:1px solid #e9e9e9;padding:0px 14px 0px 12px;white-space:normal;margin-top:15px}.onebox.twitterstatus p .quoted .quoted-link,.onebox.twitterstatus .tweet .quoted .quoted-link{color:inherit}.onebox.twitterstatus p .quoted .quoted-title,.onebox.twitterstatus .tweet .quoted .quoted-title{font-weight:bold;margin:5px 2px}.onebox.twitterstatus p .quoted .quoted-title span,.onebox.twitterstatus .tweet .quoted .quoted-title span{font-weight:lighter;color:#919191}.onebox.twitterstatus p .quoted div,.onebox.twitterstatus .tweet .quoted div{margin-bottom:5px}.onebox.twitterstatus .date{clear:left}.onebox.imgur-album .outer-box,.onebox.google-photos-album .outer-box,.onebox.flickr-album .outer-box{position:absolute;z-index:1;font-size:.8706em;color:#fff;background-color:rgba(0,0,0,0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:690px;padding:5px 0}.onebox.imgur-album .outer-box .inner-box,.onebox.google-photos-album .outer-box .inner-box,.onebox.flickr-album .outer-box .inner-box{padding-left:10px;padding-right:10px;overflow:hidden;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.onebox.imgur-album .outer-box .inner-box .album-title,.onebox.google-photos-album .outer-box .inner-box .album-title,.onebox.flickr-album .outer-box .inner-box .album-title{width:100%;font-size:1.1487em;line-height:1.4;color:#ccc;text-decoration:none}aside.onebox.stackexchange .onebox-body img:not(.onebox-avatar){max-height:60%;max-width:10%}aside.onebox.stackexchange .onebox-body .tags{color:gray}.onebox-metadata{color:#919191}.onebox.xkcd .onebox-body img{max-width:100% !important;float:none !important}.onebox.pdf .onebox-body .pdf-onebox-logo{width:60px;height:50px;float:left;background:url('/assets/favicons/pdf_64px-4e8a1bffc220412e7b3b299e56ef313353621a4c6bf05066d32d3b792e7820a7.png') no-repeat;background-size:48px 48px;display:inline-block}.onebox.pdf .onebox-body .filesize{color:gray}.onebox.whitelistedgeneric .label1,.onebox.whitelistedgeneric .label2{color:#919191}.onebox.whitelistedgeneric .label1{float:left}.onebox.whitelistedgeneric .label2{float:right}.onebox.whitelistedgeneric .site-icon,.onebox.gfycat .site-icon{width:16px;height:16px;margin-right:3px}.onebox.gfycat p span.label1 a{white-space:nowrap}.onebox.instagram div.instagram-description{color:#919191;padding-top:10px}.onebox.githubcommit pre.message{padding:0}.onebox.twitterstatus .like,.onebox.twitterstatus .retweet{color:#919191;padding-left:10px}.onebox.twitterstatus .like svg,.onebox.twitterstatus .retweet svg{fill:currentColor;vertical-align:middle}.mobile-view article.onebox-body{border-top:none}.onebox.video-onebox,.video-container{position:relative;padding:0 0 56.25% 0;width:100%}.onebox.video-onebox video,.video-container video{position:absolute;width:100%;height:100%}.onebox-placeholder-container{position:relative;width:100%;padding:0 0 48.25% 0;background-color:#e9e9e9}.onebox-placeholder-container .placeholder-icon{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.onebox-placeholder-container .placeholder-icon.video:before{opacity:0.8;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='grey' d='M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.audio:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.map:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.generic:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z'%3E%3C/path%3E%3C/svg%3E\")}.redirection-warning{margin:0 auto;text-align:center;font-size:1.7511em;line-height:1.2}.request-group-membership-form label{font-weight:bold}.group-add-membership-request-template{width:98%}#request-access{width:325px;margin:0 auto}#request-access input[type=\"text\"]{width:320px;height:30px;font-size:1.5157em}#request-access input[type=\"submit\"]{font-size:1.5157em;padding:10px}.reviewable .flagged-post-header{width:100%;display:flex;justify-content:space-between}.reviewable .status{color:#919191}.reviewable .status span.approved{color:#090}.reviewable .status span.approved .d-icon{color:currentColor}.reviewable .status span.rejected{color:#e45735}.reviewable .status span.rejected .d-icon{color:currentColor}.reviewable .explain{margin-left:0.5em}.reviewable .nav-pills{margin-bottom:1em}.reviewable .reviewable-container{display:flex;flex-direction:row;margin-top:1em}.reviewable .reviewable-container .reviewable-list{flex:1;box-sizing:border-box;max-width:760px;min-width:0;margin-right:auto}.reviewable .reviewable-container .reviewable-filters{width:250px;height:100%;box-sizing:border-box}.reviewable .reviewable-container .reviewable-list+.reviewable-filters{margin-left:1em}.reviewable-settings h4{margin-top:1em;margin-bottom:1em}.reviewable-settings .saved{margin-left:0.5em}.reviewable-settings .reviewable-score-type{display:flex;margin-bottom:0.5em}.reviewable-settings .reviewable-score-type .select-kit{min-width:10em}.reviewable-settings .reviewable-score-type .title{width:30%}.reviewable-user-info{margin:0.5em 0}.reviewable-user-info .reviewable-user-fields{margin-bottom:2em}.reviewable-user-info .reviewable-user-details{border-bottom:1px solid #e9e9e9;padding-bottom:0.25em;display:flex;margin-bottom:0.5em}.reviewable-user-info .reviewable-user-details .name{width:8em;font-weight:bold;margin-right:1em}.no-review{margin-top:1em}.reviewable-filters{background-color:#f8f8f8;padding:1em;margin-bottom:1em}.reviewable-filters .reviewable-filter{display:flex;flex-direction:column;margin:0 0 1em 0}.reviewable-filters .reviewable-filter .filter-label{margin:0 0 0.5em 0}.reviewable-filters .reviewable-filter .score-filter{margin:0;width:100%}.reviewable-filters .reviewable-filter .category-chooser{width:100%}.reviewable-filters .reviewable-filter .d-date-time-input-range{width:inherit;border:none;padding:0}.reviewable-filters .reviewable-filter .d-date-time-input-range .d-date-input{flex:1 1 auto;border:1px solid #919191}.reviewable-claimed-topic{display:flex;align-items:center}.reviewable-claimed-topic .btn-small{margin-left:0.5em}.reviewable-actions .claimed-actions{display:flex;flex:1 1 100%;margin-right:0;justify-content:space-between;align-items:center;margin-bottom:0.5em}.claimed-by{display:flex;align-items:center}.claimed-by .claimed-username{margin-left:0.5em}.reviewable-topics{width:100%}.reviewable-topics tbody td{padding:0.5em}.reviewable-topics .reviewable-details{display:flex;justify-content:flex-end}.reviewable-topics .reviewable-details .btn{display:flex;align-items:center;margin-left:1em}.reviewable-filters .topic-filter .btn{display:flex;width:auto}.reviewable-filters .refresh{height:1em;display:flex}.reviewable-filters .score-filter{width:5em}.user-flag-percentage{display:flex;align-items:center;margin-left:0.5em}.user-flag-percentage .percentage-label{margin-right:0.25em}.user-flag-percentage .percentage-label.agreed{color:#090}.user-flag-percentage .percentage-label.agreed+.d-icon{color:#090}.user-flag-percentage .percentage-label.disagreed{color:#e45735}.user-flag-percentage .percentage-label.disagreed+.d-icon{color:#e45735}.user-flag-percentage .percentage-label.ignored{color:#919191}.user-flag-percentage .d-icon{font-size:0.9em}.reviewable-item{padding-top:2em;border-top:1px solid #e9e9e9;padding-bottom:1em}.reviewable-item .topic-statuses{font-size:1.3195em}.reviewable-item .reviewable-meta-data{color:#919191;display:flex;width:100%;margin-bottom:0.5em;font-size:.8706em;align-items:baseline}.reviewable-item .reviewable-meta-data .reviewable-type{margin-right:0.25em}.reviewable-item .reviewable-meta-data .reply-count{margin-left:1em}.reviewable-item .reviewable-meta-data .created-at{margin-left:1em;margin-right:auto}.reviewable-item .reviewable-meta-data .created-at a{color:#919191}.reviewable-item .reviewable-meta-data .score{font-size:.8706em}.reviewable-item .reviewable-contents{display:flex;flex-wrap:wrap;margin-bottom:2em}.reviewable-item .reviewable-actions{display:flex;flex-wrap:wrap;width:100%}.reviewable-item .reviewable-actions button{white-space:nowrap}.reviewable-item .reviewable-actions .reviewable-action,.reviewable-item .reviewable-actions .reviewable-action-dropdown{margin-right:0.5em}.reviewable-histories{margin-top:1em}.reviewable-scores{min-width:50%;color:#646464}.reviewable-scores .reviewed-by .date{margin-left:0.5em}.reviewable-scores .user,.reviewable-scores .reviewed-by{display:flex;align-items:center}.reviewable-scores .user-flag-percentage{margin-left:0.5em}.reviewable-scores .d-icon{font-size:.8706em;color:#919191}.reviewable-scores .badge-notification{line-height:1.2;vertical-align:text-top}.reviewable-scores tbody{border-width:1px}.reviewable-scores tbody td{white-space:nowrap;vertical-align:baseline}.reviewable-scores tbody td.user a,.reviewable-scores tbody td.reviewed-by a{max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reviewable-scores tbody td:last-of-type{width:100%;white-space:normal}.reviewable-scores tbody>tr>th{text-align:left}.reviewable-scores tbody>tr>th:not(:empty),.reviewable-scores tbody>tr>td:not(:empty){padding:0.5em 1em 0.5em 0}@media screen and (max-width: 450px){.reviewable-scores tbody>tr>th,.reviewable-scores tbody>tr>td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-right:0.5em}}.reviewable-scores tbody .reviewable-score-spacer{padding-right:1em}.reviewable-score-reason{margin:0.5em 0;max-width:690px;margin-bottom:0.5em}.reviewable-conversation{margin:0.5em 0}.reviewable-conversation .reviewable-conversation-post{max-width:690px;margin-bottom:0.5em}.reviewable-conversation .reviewable-conversation-post .username{font-weight:bold;margin-right:0.25em}.reviewable-conversation .controls{margin-top:0.25em}.reviewable-item .show-raw-email{color:#919191;font-size:.7579em}.reviewable-item .post-title{background-color:yellow}.reviewable-item .created-by{margin-right:1em;padding-top:0.35em}@media screen and (max-width: 450px){.reviewable-item .created-by{float:left;margin-bottom:1em}}.reviewable-item .names{font-weight:bold}.reviewable-item .post-contents-wrapper{width:100%;margin-top:1em;min-width:275px;word-break:break-word}@media screen and (min-width: 450px){.reviewable-item .post-contents-wrapper{display:flex}}.reviewable-item .reviewable-post-header{display:flex;justify-content:space-between;max-width:690px;width:690px;align-items:center}.reviewable-item .reviewable-post-header .reviewable-reply-to{display:flex;align-items:center;color:#919191;font-size:0.9em}.reviewable-item .reviewable-post-header .reviewable-reply-to .d-icon{margin-right:0.5em}.reviewable-item .post-contents{width:100%;min-width:0}.reviewable-item .post-body{max-width:690px;max-height:300px;margin-top:0.5em;overflow-y:auto}.reviewable-item .post-body p,.reviewable-item .post-body aside{margin:0 0 1em 0}.reviewable-item .post-body pre,.reviewable-item .post-body code{word-break:break-all}.reviewable-item .post-topic{width:100%;color:#919191;margin-bottom:0.75em}.reviewable-item .post-topic .title-text{font-weight:bold;color:#222;display:block;font-size:1.3195em;margin-right:0.75em}.reviewable-item .post-topic .topic-statuses:empty{display:none}.editable-fields{width:100%}.editable-fields .editable-created-by{display:flex;margin-bottom:0.5em}.editable-fields .editable-created-by .avatar{margin-right:0.25em}.editable-fields .editable-field{margin-bottom:0.5em}.editable-fields .editable-field .mini-tag-chooser{margin:0}.editable-fields .editable-field .reviewable-input-text{width:100%;margin-bottom:0}.editable-fields .editable-field .reviewable-input-textarea{width:100%;height:10em}@media screen and (max-width: 1000px){table.reviewable-scores{width:100%;display:block}table.reviewable-scores tbody{width:calc(100% - 5px);display:block;clear:both}tr.reviewable-score{display:grid;grid-template-columns:auto auto 1fr}td.reviewable-score-spacer{display:none}}@media screen and (max-width: 450px){tr.reviewable-score{grid-template-columns:auto auto auto}}.rtl .d-icon-caret-right{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:\"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=cos(180), M12=-sin(180), M21=sin(180), M22=cos(180))\";-ms-filter:\"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=cos(180), M12=-sin(180), M21=sin(180), M22=cos(180))\";zoom:1}.rtl .nav-stacked a.active::after{border-left-color:transparent !important;border-right-color:#fff !important}.rtl code{direction:ltr !important;text-align:left !important}.rtl .pull-left{float:right !important}.rtl .autocomplete{left:27px}.rtl .admin-customize .current-style .toggle-mobile{position:static !important;float:left !important}.rtl .admin-customize .current-style .toggle-maximize{position:static !important;float:left !important}.rtl .dashboard-left{float:right !important}.rtl .dashboard-right{float:left !important}.cooked ul[dir=\"ltr\"],.d-editor-preview ul[dir=\"ltr\"],.cooked ul[dir=\"rtl\"],.d-editor-preview ul[dir=\"rtl\"]{padding-right:40px;padding-left:40px}.rtl aside.onebox.githubblob{padding:12px 25px 12px 12px !important;direction:ltr !important}.rtl aside.onebox.githubblob .source{background-position:0 50% !important;padding-right:20px}.rtl pre.onebox code ol.lines{margin:0 0 0 40px !important}.rtl pre.onebox code ol.lines li:before{right:-40px;padding-left:5px;padding-right:0;text-align:right !important}.rtl pre.onebox code ol.lines li{padding-right:5px;padding-left:0;margin-right:0;border-right:1px solid #cfcfcf;border-left:none !important}@media (max-width: 700px){.rtl .admin-detail.mobile-open{transition:transform 0.3s ease;-webkit-transform:translateX(-250px);transform:translateX(-250px)}}@media (max-width: 500px){.rtl .admin-detail.mobile-open{transition:transform 0.3s ease;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@media (max-width: 700px){.rtl .admin-detail.mobile-closed{transition:transform 0.3s ease;-webkit-transform:translateX(0);transform:translateX(0);margin-left:-10px !important;padding-left:10px !important}}.rtl .admin-nav .nav-stacked{margin:0 -10px 0 10px !important}.search-menu .search-input{position:relative;padding:0.5em 3px}.search-menu .search-context .show-help{float:right}.search-menu .heading{padding:5px 0 5px 5px}.search-menu .heading .filter{padding:0 5px}.search-menu input[type=\"text\"]{box-sizing:border-box;width:calc(100% - 6px);height:32px}.search-menu .search-context{padding:0 5px}.search-menu .search-context label{margin-bottom:0}.search-menu .search-context+.results{margin-top:5px}.search-menu .results{display:flex;flex-direction:row}.search-menu .results .list{min-width:100px}.search-menu .results .list .item .blurb{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;margin-top:0.25em}.search-menu .results .search-result-topic .second-line{display:flex;flex-wrap:wrap;align-items:center}.search-menu .results .search-result-topic .second-line .discourse-tags{flex-wrap:wrap;display:contents}.search-menu .results .main-results{display:flex;flex:1 1 auto}.search-menu .results .main-results .topic-statuses{color:#919191}.search-menu .results .main-results+.secondary-results{border-left:1px solid #e9e9e9;margin-left:1em;padding-left:1em;max-width:33%}.search-menu .results .secondary-results{display:flex;flex-direction:column;flex:1 1 auto}.search-menu .results .secondary-results .separator{margin-bottom:1em;margin-top:1em;height:1px;background:#e9e9e9}.search-menu .results .secondary-results .search-result-tag .discourse-tag{font-size:.8706em}.search-menu .results .secondary-results .search-result-category .widget-link{margin-bottom:0}.search-menu .results .secondary-results .search-result-group .search-link{color:#646464}.search-menu .results .secondary-results .search-result-group .search-link:hover{color:#222}.search-menu .results .secondary-results .search-result-group .group-result{display:flex;align-items:center}.search-menu .results .secondary-results .search-result-group .group-result .d-icon,.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair{min-width:25px;margin-right:0.5em}.search-menu .results .secondary-results .search-result-group .group-result .d-icon .d-icon,.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair .d-icon{margin-right:0}.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair-image{background-repeat:no-repeat;background-size:100% 100%;min-height:25px}.search-menu .results .secondary-results .search-result-group .group-result .group-names{display:flex;flex-direction:column;overflow:auto;line-height:1.2}.search-menu .results .secondary-results .search-result-group .group-result .group-names:hover .name,.search-menu .results .secondary-results .search-result-group .group-result .group-names:hover .slug{color:#646464}.search-menu .results .secondary-results .search-result-group .group-result .group-names .name,.search-menu .results .secondary-results .search-result-group .group-result .group-names .slug{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-menu .results .secondary-results .search-result-group .group-result .group-names .name{font-weight:700}.search-menu .results .secondary-results .search-result-group .group-result .group-names .slug{font-size:.8706em;color:#646464}.search-menu .results .secondary-results .search-result-category .list,.search-menu .results .secondary-results .search-result-user .list,.search-menu .results .secondary-results .search-result-group .list,.search-menu .results .secondary-results .search-result-tag .list{display:block}.search-menu .results .secondary-results .search-result-category .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-user .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-group .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-tag .list .item .widget-link.search-link{flex:1;font-size:1em;padding:5px}.search-menu .results .secondary-results .search-result-user .user-result{display:flex;flex-direction:row;align-items:center}.search-menu .results .secondary-results .search-result-user .user-result .avatar{margin-right:0.5em;display:block;min-width:25px}.search-menu .results .secondary-results .search-result-user .user-result .user-titles{display:flex;flex-direction:column;overflow:auto;line-height:1.2}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .username,.search-menu .results .secondary-results .search-result-user .user-result .user-titles .name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .username{color:#646464;font-size:.8706em}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .name{color:#646464;font-size:1em;font-weight:700}.search-menu .results .show-more{padding:5px}.search-menu .searching{position:absolute;top:1.15em;right:1em}.search-menu .searching .spinner{width:10px;height:10px;border-width:2px;margin:0}.search-menu .no-results{padding:5px}.search-menu .filter{padding:0}.search-menu .filter:hover{background:transparent}.search-menu .search-link{margin-bottom:0.25em}.search-menu .search-link .badge-category-parent{line-height:1}.search-menu .search-link .topic{display:inline-block;line-height:1.2}.search-menu .search-link .topic-title{margin-right:0.25em}.search-container{display:flex;justify-content:space-between}.search-container .warning{background-color:#ec8972;padding:5px 8px;color:#fff}.search-container .search-bar{display:flex;justify-content:space-between;align-items:center;justify-content:space-between;margin-bottom:1em}.search-container .search-bar .search-query{flex:1 0 0px;margin:0 0.5em 0 0}.search-container .search-bar .search-cta{padding-bottom:6.5px;padding-top:6.5px}.search-container .search-advanced{width:70%}@media screen and (max-width: 850px){.search-container .search-advanced{width:65%}}.search-container .search-advanced .search-actions,.search-container .search-advanced .search-notice,.search-container .search-advanced .search-results,.search-container .search-advanced .search-title,.search-container .search-advanced .search-bar{margin-bottom:1em}.search-container .search-advanced .search-info{display:flex;flex-wrap:wrap;border-bottom:3px solid #e9e9e9;padding-bottom:0.5em;margin-bottom:1em;flex-direction:row;align-items:center}.search-container .search-advanced .search-info .result-count{display:flex}.search-container .search-advanced .search-info .result-count .term{font-weight:bold}.search-container .search-advanced .search-info .result-count span+span{margin-left:0.25em}.search-container .search-advanced .search-info .sort-by{display:flex;margin-left:auto;align-items:center}.search-container .search-advanced .search-info .sort-by .desc{margin-right:0.5em}.search-container .search-advanced .search-info .sort-by .combo-box{min-width:150px}.search-container .search-advanced .search-title{display:flex;justify-content:flex-start;align-items:center}.search-container .search-advanced .search-title .bulk-select{margin-left:0.5em}.search-container .search-advanced .search-title .fps-select a{margin-left:0.5em;font-size:.8706em}.search-container .search-advanced .search-title .fps-select a:hover{text-decoration:underline}.search-container .search-advanced .search-notice .fps-invalid{padding:0.5em;background-color:#fbe6e1;border:1px solid #ec8972;color:#e45735}.search-container .search-advanced-sidebar{width:30%;margin-left:1em;display:flex;flex-direction:column}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar{width:35%}}.search-container .search-advanced-sidebar #search-min-post-count,.search-container .search-advanced-sidebar .date-picker,.search-container .search-advanced-sidebar .combo-box,.search-container .search-advanced-sidebar .ac-wrap,.search-container .search-advanced-sidebar .control-group,.search-container .search-advanced-sidebar .date-picker-wrapper,.search-container .search-advanced-sidebar .search-advanced-category-chooser{box-sizing:border-box;width:100%;min-width:100%}.search-container .search-advanced-sidebar #search-min-post-count input,.search-container .search-advanced-sidebar #search-min-post-count .item,.search-container .search-advanced-sidebar .date-picker input,.search-container .search-advanced-sidebar .date-picker .item,.search-container .search-advanced-sidebar .combo-box input,.search-container .search-advanced-sidebar .combo-box .item,.search-container .search-advanced-sidebar .ac-wrap input,.search-container .search-advanced-sidebar .ac-wrap .item,.search-container .search-advanced-sidebar .control-group input,.search-container .search-advanced-sidebar .control-group .item,.search-container .search-advanced-sidebar .date-picker-wrapper input,.search-container .search-advanced-sidebar .date-picker-wrapper .item,.search-container .search-advanced-sidebar .search-advanced-category-chooser input,.search-container .search-advanced-sidebar .search-advanced-category-chooser .item{padding-left:4px}.search-container .search-advanced-sidebar .date-picker-wrapper{margin-top:0.5em}.search-container .search-advanced-sidebar .date-picker{box-sizing:border-box;text-align:left;padding:4px;margin-bottom:0}.search-container .search-advanced-sidebar .search-advanced-title{background:#e9e9e9;padding:0.358em 1em;font-weight:700;text-align:left;font-weight:bold}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar .search-advanced-title{padding:0.358em 0.5em}}.search-container .search-advanced-sidebar .search-advanced-title.btn{background:#e9e9e9}.search-container .search-advanced-sidebar .search-advanced-title .d-icon{margin:0}.search-container .search-advanced-sidebar .search-advanced-filters{background:#f8f8f8;padding:1em}.search-container .search-advanced-sidebar .search-advanced-filters .control-group{margin-bottom:15px}.search-container .search-advanced-sidebar .search-advanced-filters section.field{margin-top:5px}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar .search-advanced-filters{padding:0.75em 0.5em}.search-container .search-advanced-sidebar .search-advanced-filters .ac-wrap,.search-container .search-advanced-sidebar .search-advanced-filters .choices,.search-container .search-advanced-sidebar .search-advanced-filters .select-kit.multi-select{width:100% !important}.search-container .search-advanced-sidebar .search-advanced-filters .select-kit{min-width:unset}}.fps-invalid{margin-bottom:1em}.fps-result{display:flex;margin-bottom:28px;max-width:780px}.fps-result .author{display:inline-block;vertical-align:top}.fps-result .like-count{color:#919191}.fps-result .like-count .fa{color:#fa6c8d;font-size:.8706em}.fps-result .badge-wrapper span.badge-category{max-width:inherit}.fps-result .search-category{padding-top:3px}.fps-result .topic{padding-bottom:2px;max-width:700px}.fps-result .avatar{margin-right:14px}.fps-result a.search-link:visited .topic-title{color:#0aadff}.fps-result .search-link .topic-title{font-size:1.3195em;line-height:1.2}.fps-result .search-link .topic-statuses{display:inline-block;font-size:1.3em;line-height:1.2;color:#919191}.fps-result .search-link .topic-statuses span{line-height:1}.fps-result .blurb{font-size:1em;line-height:1.4;word-wrap:break-word;max-width:640px;color:#919191}.fps-result .blurb .date{color:#919191}.fps-result .blurb .search-highlight{color:#222}.fps-result .discourse-tag{font-size:.8706em}.fps-topic{display:inline-block}.no-results-suggestion{margin-top:30px}.search-footer{margin-bottom:30px}.panel-body-contents .search-context label{float:left}.google-search-form{margin-top:2em}#share-link{position:absolute;left:20px;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15);background-color:#fff;padding:8px 8px 4px 8px;width:300px;display:none}#share-link.visible{display:block}#share-link input[type=\"text\"]{width:100%}#share-link .share-for-touch .overflow-ellipsis{clear:both}#share-link .share-for-touch{margin:14px 0}#share-link .title{margin-bottom:4px;align-items:center;display:flex;justify-content:space-between}#share-link .title h3{font-size:1em;margin:0}#share-link .title .date{font-weight:normal;color:#919191}#share-link .copy-text{display:inline-block;position:absolute;margin:5px 5px 5px 15px;color:#090;opacity:1;transition:opacity 0.25s;font-size:1em}#share-link .copy-text:not(.success){opacity:0}#share-link .social-link{margin-right:8px;font-size:1.7511em}#share-link .social-link .d-icon{color:#08c}#share-link .social-link .d-icon-fab-facebook{color:#4267b2}#share-link .social-link .d-icon-fab-twitter-square{color:#1da1f2}#share-link input[type=\"text\"]{font-size:1.1487em;margin-bottom:0}#share-link .actions{display:flex;align-items:flex-end;margin-top:8px}#share-link .actions .sources{display:flex;align-items:center;flex-wrap:wrap;flex-direction:row;max-width:45%}#share-link .actions .sources .social-link{margin-right:8px}#share-link .actions .alt-actions{display:flex;align-items:center;flex:1;justify-content:flex-end;height:36px}#share-link .actions .alt-actions .close-share{font-size:1.5157em;color:#919191}#share-link .actions .alt-actions .new-topic{margin-right:16px}.discourse-no-touch #share-link .share-for-touch{display:none}.discourse-touch #share-link input[type=\"text\"]{display:none}.shared-draft-controls{background-color:#d1f0ff;padding:1em;clear:both}.shared-draft-controls .publish-field{margin-top:1em}.topic-title-outlet.choose-tags{margin-left:25px;margin-top:3px}.tags-list{margin-top:2em;padding-bottom:1em;border-bottom:1px solid #e9e9e9}#list-area .tags-list h3{margin-bottom:20px}.tags-list .tag-box{display:inline-block;width:300px;margin-bottom:1em;float:left;vertical-align:middle}.tags-list .tag-box .discourse-tag{font-size:1em}.tags-list .tag-box .tag-count{font-size:.8706em;vertical-align:middle;line-height:1}.tag-show-heading{display:inline-flex;flex-wrap:wrap;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:hidden}@media screen and (max-width: 450px){.tag-show-heading{width:100%}}.tag-show-heading .d-icon{margin:0 0.25em}.topic-category{display:flex;flex-wrap:wrap;align-items:center}.topic-category .topic-header-extra{display:inline-flex;align-items:center}.topic-category .badge-wrapper{margin-top:0}.discourse-tag-count{font-size:.8706em;color:#919191;line-height:1;vertical-align:middle}.discourse-tag{max-width:14em;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle}.discourse-tag{margin:0;color:#919191}.discourse-tag:visited,.discourse-tag:hover{color:#919191}.extra-info-wrapper .discourse-tag{color:#bfbfbf !important}.discourse-tag.large{font-size:1.5157em}.discourse-tag.box{background-color:#e9e9e9;color:#646464;padding:2px 8px}.extra-info-wrapper .discourse-tag.box{background-color:#383838;color:#a6a6a6}.discourse-tag.simple,.discourse-tag.simple:visited,.discourse-tag.simple:hover{margin-right:0;color:#646464}.discourse-tag.bullet{margin-right:0.5em;display:inline-flex;align-items:center}.discourse-tag.bullet:before{background:#bdbdbd;margin-right:5px;position:relative;width:9px;height:9px;display:inline-block;content:\"\"}.discourse-tag.bullet.large:before{width:13px;height:13px}.discourse-tags .discourse-tag.simple:not(:last-child):after,.list-tags .discourse-tag.simple:not(:last-child):after{content:\", \";margin-left:1px}.d-header .topic-header-extra .discourse-tags{display:inline-block;font-size:.8706em}.d-header .topic-header-extra .discourse-tags+.topic-featured-link{margin-left:8px}.fps-result .add-full-page-tags{display:inline-block}.topic-list-item .discourse-tags{display:inline-flex;font-weight:normal;font-size:.8706em}.categories-list .topic-list-latest .discourse-tags{display:inline-block}.mobile-view .topic-list-item .discourse-tags{display:inline-flex;flex-wrap:wrap;font-size:.8706em;margin-top:0}.mobile-view .topic-list-item .discourse-tags .discourse-tag{margin-right:0.2em}.mobile-view .topic-list-item .discourse-tags .discourse-tag.box{position:relative;top:0}header .discourse-tag{color:#919191}.list-tags{display:inline-block;margin-right:3px;font-size:.8706em}.tag-chooser{width:100%;max-width:100%}.title-wrapper .tag-chooser{width:500px}.tag-sort-options{margin-bottom:20px}.tag-sort-options a{text-decoration:underline}.tag-sort-options span.active a{font-weight:bold}.autocomplete .d-icon-tag{color:#222;padding-right:5px}.autocomplete a{color:#919191}.tags-admin-menu{margin-top:20px}.tags-admin-menu ul{width:320px}.tag-groups-container{margin-top:20px}.tag-groups-container .content-list{width:20%;float:left;margin:20px 0}.tag-groups-container .content-list ul{margin-bottom:10px}.tag-groups-container .content-list .btn{margin-left:10px}.tag-groups-container .tag-group-content{width:75%;float:right}.tag-groups-container .tag-group-content section{margin-bottom:20px}.tag-groups-container .tag-group-content label{font-size:1em;display:inline-block;margin-right:10px}.tag-groups-container .tag-group-content .btn{margin-right:10px}.tag-groups-container .tag-group-content h1 input{width:100%}.tag-groups-container .group-tags-list .tag-chooser{width:100%}.tag-groups-container .saving{margin-left:20px}.tag-groups-container .parent-tag-section .tag-chooser{width:200px;margin-right:10px}section.tag-info{margin:1em 0;padding:2em;border:1px solid #e9e9e9}section.tag-info .field{margin:0 0 0.5em}section.tag-info .btn{margin-right:0.5em}section.tag-info .tag-name .discourse-tag{display:block;margin-bottom:0.75em}section.tag-info .synonyms-list,section.tag-info .add-synonyms,section.tag-info .tag-associations{margin-top:1em}section.tag-info .synonyms-list:before,section.tag-info .synonyms-list:after,section.tag-info .add-synonyms:before,section.tag-info .add-synonyms:after,section.tag-info .tag-associations:before,section.tag-info .tag-associations:after{content:\"\";display:table}section.tag-info .synonyms-list:after,section.tag-info .add-synonyms:after,section.tag-info .tag-associations:after{clear:both}section.tag-info .synonyms-list{margin:2em 0 0}section.tag-info .tag-list{margin:1em 0 0 0;padding:0;border:none}section.tag-info .tag-list:before,section.tag-info .tag-list:after{content:\"\";display:table}section.tag-info .tag-list:after{clear:both}section.tag-info .tag-list a{color:#919191;margin-left:0.25em}#discourse-tooltip{background-color:#fff;position:absolute;z-index:600;border:1px solid #919191;max-width:400px;margin-top:25px;overflow-wrap:break-word;display:none;font-size:1em;font-weight:500}#discourse-tooltip.retina{border:0.5px solid #919191}#discourse-tooltip .tooltip-pointer{position:relative;background:#fff}#discourse-tooltip .tooltip-pointer:before,#discourse-tooltip .tooltip-pointer:after{position:absolute;pointer-events:none;border:solid transparent;bottom:100%;content:\"\";height:0;width:0}#discourse-tooltip .tooltip-pointer:after{border-bottom-color:#fff;border-width:8px;left:50%;margin-left:-8px;margin-bottom:-0.5px}#discourse-tooltip .tooltip-pointer:before{border-bottom-color:#919191;border-width:9px;left:50%;margin-left:-9px;margin-bottom:-0.5px}#discourse-tooltip .tooltip-content{padding:1em;max-width:250px;font-size:.8706em;color:#222;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);line-height:1.4em}.show-topic-admin{position:fixed;top:120px;right:10px;z-index:300;height:35px}.popup-menu{background-color:#fff;width:215px;padding:10px;border:1px solid #e9e9e9;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15)}.popup-menu ul{list-style:none;margin:10px 0 0 0}.popup-menu .btn{text-align:left}.popup-menu button{width:100%;margin-bottom:5px}.popup-menu .header .close-button{display:none}@media screen and (max-width: 550px){.popup-menu{width:100%;padding:0;padding-bottom:env(safe-area-inset-bottom);z-index:1000;animation:slideUp 0.3s}@keyframes slideUp{0%{transform:translateY(100%)}100%{transform:translateY(0)}}.popup-menu .header{padding:10px 0 0 10px;display:flex;justify-content:space-between}.popup-menu .header .close-button{display:block;background:transparent}.popup-menu ul{margin-top:0}}.modal-body.feature-topic{max-height:500px}.modal-body.feature-topic input.date-picker{margin:0}.modal-body.feature-topic .feature-section{display:block;padding:1em 0}.modal-body.feature-topic .feature-section:not(:last-of-type){border-bottom:1px solid #e9e9e9}.modal-body.feature-topic .feature-section .badge-wrapper{margin-right:0}.modal-body.feature-topic .feature-section .desc{display:inline-block;vertical-align:middle}.modal-body.feature-topic .feature-section .desc p:first-of-type{margin:0}.modal-body.feature-topic .feature-section .desc p{margin:10px 0 0}.modal-body.feature-topic .feature-section .with-validation{position:relative}.feature-topic-modal .d-modal-cancel{margin-left:0}.desktop-view .feature-topic-modal .feature-topic{overflow:visible}.desktop-view .feature-topic-modal .modal-inner-container{min-width:700px}.desktop-view .feature-topic-modal .pin-until{position:relative;display:inline-block}.mobile-view .feature-topic .feature-section .desc{display:block;clear:both;max-width:90%;margin:0}.selected-posts{border:1px solid #6cf;background-color:#d1f0ff}.selected-posts .btn{border:none;color:#fff;font-weight:normal;margin-bottom:10px}.selected-posts .btn:not(.btn-danger){background:#08c;border-color:#08c}.selected-posts .btn:not(.btn-danger)[href]{color:#fff}.selected-posts .btn:not(.btn-danger):hover{color:#fff;background:#0aadff}.selected-posts .btn:not(.btn-danger):active{background-color:#004b70;background-image:linear-gradient(to bottom, #004b70, #005f8f);color:#fff}.selected-posts .btn[disabled]{text-shadow:0 1px 0 rgba(34,34,34,0.2);background-color:#08c;background-image:linear-gradient(to bottom, #08c, #046);box-shadow:inset 0 1px 0 rgba(0,0,0,0.33)}.button-count.has-pending span{background-color:#e45735;color:#fff;border-radius:10px;padding:0.25em 0.5em;display:inline-block;font-size:0.8em}.placeholder-avatar{display:inline-block;width:45px;height:45px;border-radius:50%;position:relative;overflow:hidden}.placeholder-avatar:before{animation:placeHolderShimmer 4s linear infinite forwards;position:absolute;left:0;content:\"\";background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 28%, #f8f8f8 43%);height:45px;width:700px}.placeholder-text{margin-left:11px;display:inline-block;width:calc(100% - 11px);height:1.5em;margin-bottom:0.6em}.names{flex:1 1 auto;overflow:hidden}.names span.first{display:flex;align-items:baseline;font-weight:bold}.names span{font-size:1em;margin-right:8px;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle}.names span a{color:#646464}.names .fa{font-size:.8706em;color:#919191}.names .svg-icon-title{margin-left:3px;margin-right:0px}.names .new_user a,.names .user-title,.names .user-title a{color:#919191}.cooked,.d-editor-preview{word-wrap:break-word;line-height:1.4}.cooked h1,.cooked h2,.cooked h3,.cooked h4,.cooked h5,.cooked h6,.d-editor-preview h1,.d-editor-preview h2,.d-editor-preview h3,.d-editor-preview h4,.d-editor-preview h5,.d-editor-preview h6{margin:30px 0 10px;line-height:1.2}.cooked h1,.d-editor-preview h1{font-size:1.5157em}.cooked h2,.d-editor-preview h2{font-size:1.3195em}.cooked h3,.d-editor-preview h3{font-size:1.1487em}.cooked h4,.d-editor-preview h4{font-size:1em}.cooked h5,.d-editor-preview h5{font-size:.8706em}.cooked h6,.d-editor-preview h6{font-size:.7579em}.cooked a,.d-editor-preview a{word-wrap:break-word}.cooked ins,.d-editor-preview ins{background-color:#b8ffb8}.cooked del,.d-editor-preview del{background-color:#fbe6e1}.cooked big,.d-editor-preview big{font-size:1.5rem}.cooked small,.d-editor-preview small{font-size:0.75rem}.cooked small small,.d-editor-preview small small{font-size:0.75em}.cooked big big,.d-editor-preview big big{font-size:1em}.cooked sub sub sub,.d-editor-preview sub sub sub{bottom:0}.cooked sup sup sup,.d-editor-preview sup sup sup{top:0}.cooked video,.d-editor-preview video{max-width:100%}.cooked sup sup,.d-editor-preview sup sup{top:0}.moderator .regular>.cooked{background-color:#ffffca;padding:10px}.moderator .regular>.cooked img:not(.thumbnail){max-width:100%;height:auto}.moderator .clearfix>.topic-meta-data>.names span.user-title,.moderator .nav-pills>.topic-meta-data>.names span.user-title,.moderator .container>.topic-meta-data>.names span.user-title,.moderator .wrap>.topic-meta-data>.names span.user-title{color:#646464}.moderator .clearfix>.topic-meta-data>.names span.user-title a,.moderator .nav-pills>.topic-meta-data>.names span.user-title a,.moderator .container>.topic-meta-data>.names span.user-title a,.moderator .wrap>.topic-meta-data>.names span.user-title a{background-color:#ffffca;padding-left:4px;padding-right:4px}.topic-meta-data{display:flex;align-items:flex-start}.topic-meta-data .names{margin-right:auto}.topic-meta-data .post-infos{display:flex;flex:0 0 auto;align-items:center}aside.quote{margin-top:1em;margin-bottom:1em}aside.quote .badge-wrapper{margin-left:5px}aside.quote .title{border-left:5px solid #e9e9e9;background-color:#f9f9f9;color:#646464;padding:12px 12px 0px 12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}aside.quote .title .avatar{margin-right:7px}aside.quote .title img{margin-top:-4px}aside.quote blockquote{margin-top:0}blockquote img{max-width:100% !important}.quote-controls,.quote-controls .d-icon{color:#bdbdbd}.cooked .highlight{background-color:#d1f0ff;padding:2px;margin:-2px}.post-ignored{font-style:italic}.post-action{color:#919191}.post-action .undo-action,.post-action .act-action{margin-left:5px}.post-hidden .topic-avatar,.post-hidden .cooked,.post-hidden .topic-meta-data,.post-hidden .post-actions{opacity:0.5}.topic-post.staged{opacity:0.4}.quote-controls{float:right;display:flex;align-items:center}.quote-controls a{margin-left:0.3em}.quote-button{display:none;position:absolute;background-color:#b6b6b6;color:#fff;padding:10px;z-index:300;opacity:0.9}.quote-button .d-icon{display:inline-block}.quote-button:hover{background-color:#919191;cursor:pointer}.topic-avatar,.user-card-avatar{position:relative}.topic-map{background:#f8f8f8;border:1px solid #e9e9e9;border-top:none}.topic-map .avatars>div{float:left;position:relative;margin:3px 0}.topic-map .avatars .post-count{position:absolute;right:0;border-radius:100px;padding:3px 5px;text-align:center;font-weight:normal;font-size:.7579em;line-height:1}.topic-map .avatar{float:left;margin-right:4px}.topic-map section{border-top:1px solid #e9e9e9}.topic-map ul{margin:0;list-style:none}.topic-map h3{margin-bottom:4px;color:#222;line-height:1.4;font-weight:normal;font-size:1em}.topic-map h4{margin:1px 0 2px 0;color:#919191;font-weight:normal;font-size:.8706em;line-height:1}.topic-map span.domain{font-size:.7579em;color:#919191}.topic-map td{vertical-align:top;padding:1px}.topic-map .topic-links tr{border:none}.topic-map .topic-links .badge-notification{margin:1px 5px 2px 0}.topic-map .controls{display:flex;align-items:center}.topic-map .controls .btn{margin-right:0.5em}.topic-map .controls .btn:last-child{margin:0}.topic-map .participants{display:flex;flex-wrap:wrap;align-items:center}.topic-map .participants+.controls{margin-top:0.5em}.topic-map .participants.hide-names .user .username,.topic-map .participants.hide-names .user .group-name{display:none}.topic-map .participants .user{border:1px solid #e9e9e9;border-radius:0.25em;padding:0;margin:0.125em 0.25em 0.125em 0;display:flex;align-items:center;height:26px}.topic-map .participants .user .user-link,.topic-map .participants .user .group-link{color:#646464}.topic-map .participants .user .user-link:hover,.topic-map .participants .user .group-link:hover{color:#222}.topic-map .participants .user .avatar,.topic-map .participants .user .d-icon-users{margin-left:0.25em;margin-right:0.25em}.topic-map .participants .user .username,.topic-map .participants .user .group-name{margin-right:0.25em}.topic-map .participants .user:last-child{margin-right:0}.topic-map .participants .user .remove-invited{display:flex;flex:1 0 0px;align-items:center;justify-content:center;box-sizing:border-box;border-radius:0 0.25em 0.25em 0;padding-top:0;padding-bottom:0;height:100%}.topic-map .add-remove-participant-btn .d-icon{margin-left:0.25em}.topic-avatar .avatar-flair,.avatar-flair-preview .avatar-flair,.user-card-avatar .avatar-flair,.topic-map .poster .avatar-flair,.user-profile-avatar .avatar-flair,.user-image .avatar-flair{display:flex;align-items:center;justify-content:center;background-repeat:no-repeat;background-position:center;position:absolute;bottom:0;right:-6px}.topic-avatar .avatar-flair,.avatar-flair-preview .avatar-flair,.collapsed-info .user-profile-avatar .avatar-flair,.user-image .avatar-flair{background-size:20px 20px;width:20px;height:20px}.topic-avatar .avatar-flair.rounded,.avatar-flair-preview .avatar-flair.rounded,.collapsed-info .user-profile-avatar .avatar-flair.rounded,.user-image .avatar-flair.rounded{background-size:18px 18px;border-radius:12px;width:24px;height:24px;bottom:-2px;right:-8px}.user-card-avatar .avatar-flair,.user-profile-avatar .avatar-flair{background-size:40px 40px;width:40px;height:40px}.user-card-avatar .avatar-flair.rounded,.user-profile-avatar .avatar-flair.rounded{background-size:30px 30px;border-radius:24px;width:40px;height:40px;bottom:-2px;right:-4px}.user-card-avatar .avatar-flair .fa,.user-profile-avatar .avatar-flair .fa{font-size:1.7511em}.topic-map .poster .avatar-flair{right:0;background-size:12px 12px;width:16px;height:16px;bottom:-3px;color:#222}.topic-map .poster .avatar-flair.rounded{background-size:12px 12px;border-radius:8px;width:16px;height:16px;bottom:-2px;right:0}.topic-map .poster .avatar-flair .d-icon{font-size:.7579em}.topic-avatar .poster-avatar-extra{display:none}.map:first-of-type{display:flex}.map:first-of-type .buttons{margin-left:auto;order:15}.map:first-of-type .buttons .btn{height:100%}.topic-body .cooked{overflow:hidden}.topic-body.highlighted{animation:background-fade-highlight 2.5s ease-out}.post-info{flex:0 0 auto;margin-right:0.5em}.post-info.post-date{margin-right:0}.post-info.via-email .d-icon,.post-info.whisper .d-icon,.post-info.post-locked .d-icon{font-size:1em}.post-info .wiki,.post-info .last-wiki-edit{color:green}.post-info.via-email{color:#bdbdbd}.post-info.raw-email{cursor:pointer}pre code{word-wrap:normal;display:block;padding:0.5em;color:#222;background:#f9f9f9;max-height:500px}kbd{background-color:#fff;border:1px solid #e9e9e9;border-radius:3px;box-shadow:0 2px 0 rgba(0,0,0,0.2),0 0 0 1px #fff inset;background:#fafafa;border:1px solid #ccc;border-bottom:medium none #fff;color:#222;display:inline-block;font-size:.8706em;line-height:1.4;margin:0 0.1em;padding:0.1em 0.6em}kbd * * *{display:none}blockquote>*:first-child{margin-top:0 !important}blockquote>*:last-child{margin-bottom:0 !important}.gap{padding:0.25em 0 0.5em 56px;color:#919191;cursor:pointer;text-transform:uppercase;font-weight:bold;font-size:.8706em}.who-liked,.who-read{transition:height 0.5s}.who-liked a,.who-read a{margin:0 0.25em 0.5em 0;display:inline-block}.cooked table thead th,.d-editor-preview table thead th{text-align:left;padding-bottom:2px;font-weight:bold;color:#222}.cooked table td,.d-editor-preview table td{padding:3px 3px 3px 0.5em}.small-action{display:flex;align-items:center;max-width:758px;border-top:1px solid #e9e9e9}.small-action .topic-avatar{align-self:flex-start;padding:0.7em 0;border-top:none;margin-right:11px;flex:0 0 auto}.small-action .topic-avatar .d-icon{font-size:2em;width:45px;text-align:center;color:#bdbdbd}.small-action .small-action.deleted{background-color:rgba(242,171,154,0.7)}.small-action .small-action-desc.timegap{color:#919191}.small-action .small-action-desc{display:flex;flex-wrap:wrap;flex:1 1 100%;align-items:center;padding:1em 0;text-transform:uppercase;font-weight:bold;font-size:.8706em;color:#919191;min-width:0}.small-action .small-action-desc .custom-message{flex:1 1 100%;text-transform:none;font-weight:normal;font-size:1.1487em;order:12;word-break:break-word;min-width:0}.small-action .small-action-desc .custom-message p{margin-bottom:0}.small-action .small-action-desc a.trigger-user-card{align-self:stretch}.small-action .small-action-desc .avatar{margin-right:0.8em;float:left}.small-action .small-action-desc>p{margin:0;line-height:1.2;flex:1 1}.small-action button{background:transparent;border:0;order:9}.small-action button:last-of-type{margin-left:auto;order:8}.whisper .post-info.whisper{margin-left:0.5em}.whisper .topic-body .cooked{font-style:italic;color:#919191}a.mention{font-weight:bold;font-size:0.93em;color:#222;color:#646464;padding:2px 4px;background:#e9e9e9;border-radius:8px}span.mention{font-weight:bold;font-size:0.93em;color:#222}a.mention-group{font-weight:bold;font-size:0.93em;color:#222}a.mention-group.notify,.small-action-desc a.mention-group{color:#646464;padding:2px 4px;background:#e9e9e9;border-radius:8px}.popup-menu h3{margin-top:0}.suggested-topics .topics{padding-bottom:15px}.suggested-topics .suggested-topics-message .badge-wrapper{margin-right:0}.large-image-placeholder>a.link{margin-right:10px}.large-image-placeholder>a>*{overflow:hidden;vertical-align:middle}.large-image-placeholder>a>.d-icon{color:#919191;margin-right:6px;font-size:1em;line-height:1.4}.large-image-placeholder>a>span.url{display:inline-block;max-width:300px;margin-right:6px;text-overflow:ellipsis;white-space:nowrap}.large-image-placeholder>a>span.help{display:inline-block;color:#919191;font-size:.8706em;font-style:italic;line-height:1.4;margin-bottom:1px}.large-image-placeholder>a>span.badge-notification{vertical-align:unset}.broken-image{color:#bdbdbd;border:1px solid #e9e9e9;font-size:2em}.broken-image .d-icon{margin:16px}.reply-to-tab{display:flex;align-items:center;margin-right:2em}.reply-to-tab img{margin:0 0.25em}.topic-post.selected article.boxed .select-posts button.select-post{background-color:#08c;color:#fff;border-color:#08c}.topic-post.selected article.boxed .topic-body .contents:after{display:none}.topic-post article.boxed{position:relative}.topic-post article.boxed .select-posts{position:absolute;right:5em;z-index:300;top:0.5em;height:100px}.topic-post article.boxed .select-posts button{margin-left:8px;background-color:#e9e9e9;color:#222;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}@media all and (max-width: 767px){.reply-to-tab span{display:none}.user-title{float:left;clear:left}}.signup-cta a{float:right;text-decoration:underline}.signup-cta .buttons{margin-bottom:1em}.post-notice{align-items:center;background-color:#d1f0ff;border-top:1px solid #e9e9e9;display:flex;max-width:calc( 690px + (11px * 2) + 45px - (0.8em * 2));padding:0.8em}.post-notice.old{background-color:unset;color:#919191}.post-notice.old .d-icon{color:#919191}.post-notice p{margin:0}.post-notice .d-icon{font-size:2em;color:#646464;margin-right:0.65em}#topic-footer-buttons .reason{color:#646464;display:inline;margin:0 0 0 8px;line-height:1.2}@keyframes button-jump-up{0%{margin-bottom:-60px}50%{margin-bottom:10px}65%{margin-bottom:0px}77%{margin-bottom:5px}100%{margin-bottom:0px}}.progress-back-container{z-index:300;margin-right:0;animation-duration:0.5s;animation-name:button-jump-up;width:145px;text-align:center;margin-bottom:0px;position:absolute;right:0;top:-2em}.progress-back-container .btn{margin:0}#topic-progress-wrapper{display:flex}#topic-progress-wrapper .topic-admin-menu-button-container{display:flex}#topic-progress-wrapper .topic-admin-menu-button-container>span{display:flex}#topic-progress-wrapper .topic-admin-popup-menu.right-side{position:absolute;bottom:0;right:0;left:auto;transition:bottom 0.5s;transform:translateZ(0)}#topic-progress-wrapper.docked .topic-admin-popup-menu.right-side{bottom:-150px}.title-wrapper{display:flex;flex-wrap:wrap}.title-wrapper button{margin:0 0.5em 0 0}.title-wrapper a.topic-featured-link{display:inline-block}.title-wrapper .topic-statuses{line-height:1.2em;margin-right:0.15em}.title-wrapper .topic-statuses .d-icon{color:#919191}h1{margin:0 0 4px 0}a.badge-category{margin-top:5px}#topic-title .title-wrapper{display:flex;flex-wrap:wrap;width:90%}#topic-title .title-wrapper a.topic-featured-link{display:inline-block}#topic-title h1{margin:0 0 4px 0;width:100%}#topic-title a.badge-category{margin-top:5px}#topic-title a.edit-topic .d-icon{font-size:0.8em}#topic-title .edit-topic-title{display:flex;flex-wrap:wrap;box-sizing:border-box;max-width:758px}#topic-title .edit-topic-title #edit-title{flex:1 1 auto}#topic-title .edit-topic-title .category-chooser,#topic-title .edit-topic-title .mini-tag-chooser{flex:1 1 49%;margin:0 0 9px 0}@media all and (max-width: 500px){#topic-title .edit-topic-title .category-chooser,#topic-title .edit-topic-title .mini-tag-chooser{flex:1 1 100%}}#topic-title .edit-topic-title .mini-tag-chooser{margin-left:2%}@media all and (max-width: 500px){#topic-title .edit-topic-title .mini-tag-chooser{margin-left:0}}.private-message-glyph{color:#bdbdbd}.private-message-glyph-wrapper{float:left}.private-message-glyph-wrapper .private-message-glyph{margin:0 5px 0 0;display:inline-block}.private_message #topic-title .edit-topic-title{position:relative}.private_message #topic-title .edit-topic-title .private-message-glyph{position:absolute;left:0.75em;top:6px}.private_message #topic-title .edit-topic-title #edit-title{width:calc(100% - 50px);padding-left:2.25em}.private_message #topic-title .edit-topic-title .mini-tag-chooser{margin-left:0}@media screen and (min-width: 450px){.private_message #topic-title .edit-topic-title .mini-tag-chooser .selected-name{max-width:500px}}.topic-title-outlet{clear:both}.has-pending-posts{display:flex;justify-content:space-between;padding:0.5em;background-color:#ffffa6;margin-top:1em;max-width:757px}.suggested-topics-wrapper.related-messages-wrapper .suggested-topics:nth-of-type(n+2) thead{display:none}.suggested-topics h3 .badge-wrapper.bullet span.badge-category,.suggested-topics h3 .badge-wrapper.box span,.suggested-topics h3 .badge-wrapper.bar span{display:inline}.suggested-topics h3 .badge-wrapper.bullet span.badge-category{vertical-align:baseline;line-height:1.2}.suggested-topics h3 .badge-wrapper.bullet,.suggested-topics h3 .badge-wrapper.bullet span.badge-category-parent-bg,.suggested-topics h3 .badge-wrapper.bullet span.badge-category-bg{line-height:0.8}.suggested-topics .badge-wrapper.bullet span.badge-category,.suggested-topics .badge-wrapper.bar span.badge-category{max-width:150px}.suggested-topics .suggested-topics-title{display:flex;align-items:center}.post-links-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;clear:both}.post-links-container .post-links{margin-top:1em;padding-top:1em;border-top:1px solid #e9e9e9}.post-links-container .post-links li:last-of-type{margin-bottom:1em}.post-links-container .expand-links{color:#919191}.post-links-container .track-link{display:flex;align-items:center}.post-links-container .track-link span:not(.badge){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.post-links-container ul{margin:0;list-style:none}.post-links-container ul li{margin-bottom:0.5em}.post-links-container ul li a[href]{color:#919191}.post-links-container ul li .clicks{margin-left:0.5em;flex:0 0 auto}.post-links-container ul li .d-icon{font-size:.7579em;margin:0 0.5em 0 0}.post-links-container a.reply-new .d-icon{background:#fff;border-radius:20px;transition:all linear 0.15s}.post-links-container a.reply-new:hover{color:#08c}.post-links-container a.reply-new:hover .d-icon{background:#d1f0ff}a.topic-featured-link{display:inline-block;text-transform:lowercase;color:#919191;font-size:0.875rem}a.topic-featured-link .d-icon{margin-right:3px}.topic-area .pending-posts{max-width:calc( 690px + 45px + 22px)}.topic-area .pending-posts .reviewable-item .post-body{max-height:unset}.uploaded-image-preview{background:#222 center;background-size:cover;position:relative}.uploaded-image-preview .placeholder-overlay{background-size:contain;background-repeat:no-repeat;background-position:center;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0.3}.uploaded-image-preview .image-upload-controls{position:relative;display:flex;padding:10px}.uploaded-image-preview .image-upload-controls .btn{margin-right:5px;padding:7px 10px}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn{background:none;margin-right:0;margin-left:auto}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn .d-icon{color:#e9e9e9}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn:hover{background:none}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn:hover .d-icon{color:#222}.image-uploader.no-repeat .uploaded-image-preview{background-repeat:no-repeat}.image-uploader.contain-image .uploaded-image-preview{background-size:contain}.hidden-upload-field{visibility:hidden;position:absolute}.user-badge,.user-card .badge-section .more-user-badges a{padding:3px 8px;color:#222;border:1px solid #e9e9e9;line-height:1.4;display:inline-flex;align-items:center;background-color:#fff;margin:0 0 3px}.user-badge img,.user-card .badge-section .more-user-badges a img{height:16px;width:16px}.user-badge .badge-display-name,.user-card .badge-section .more-user-badges a .badge-display-name{margin-left:0.25em}.user-badge.badge-type-gold .fa,.user-card .badge-section .more-user-badges a.badge-type-gold .fa{color:#e7c300 !important}.user-badge.badge-type-silver .fa,.user-card .badge-section .more-user-badges a.badge-type-silver .fa{color:silver !important}.user-badge.badge-type-bronze .fa,.user-card .badge-section .more-user-badges a.badge-type-bronze .fa{color:#cd7f32 !important}.user-badge.disabled,.user-card .badge-section .more-user-badges a.disabled{color:#919191;background-color:#f8f8f8}.user-badge.disabled .fa,.user-card .badge-section .more-user-badges a.disabled .fa{opacity:0.4}@media all and (max-width: 750px){.show-badge .user-badge-with-posts .badge-user a.post-link{width:auto}.show-badge div.badge-user{padding:0}.badges-listing{display:block}.badges-listing .info,.badges-listing .grant-count{text-align:left}.badges-listing .row>div.info{display:none}.badges-listing .row{display:block}.badges-listing .row>div{display:block;margin-top:10px}}.show-badge .badge-user-info .earned{font-size:1.3195em;margin-bottom:1em}.show-badge .single-user{margin-left:2%;padding-bottom:20px}.show-badge .single-user .load-more{padding-top:30px;display:block;font-size:1.3195em}.show-badge .single-user .badge-user{padding-left:0;text-align:left;display:block;margin:20px 0;width:800px}.show-badge .single-user .badge-user .badge-info{display:none}.show-badge .single-user .badge-user .date{display:inline-block;font-size:1.1487em;margin-left:10px}.show-badge .single-user .badge-user .post-link{font-size:1.3195em;width:500px;margin:0;padding:0}.show-badge .single-user .badge-user:after{content:\"\";clear:both;display:table}.long-description.banner{width:88%;margin-bottom:15px;margin-top:15px}.badge-card{position:relative;display:inline-block;background-color:#f8f8f8;border:1px solid #e9e9e9;margin-bottom:2vh;transition:box-shadow 0.25s}.badge-card .check-display{position:absolute;left:5px;top:5px}.badge-card .grant-count{position:absolute;right:5px;top:5px;font-weight:bold;color:#919191;font-size:1.3195em}.badge-card .badge-contents{display:flex;min-height:128px;height:100%;padding:0 10%}.badge-card .badge-contents .badge-link{color:#222}.badge-card .badge-contents .badge-icon{display:flex;flex:0 0 auto;width:1.23em;margin-right:5%;align-items:center;justify-content:center;font-size:3.5em}.badge-card .badge-contents .badge-icon a{width:100%}.badge-card .badge-contents .badge-icon img{width:100%;max-width:65px;max-height:80px}.badge-card .badge-contents .badge-icon.badge-type-gold .fa{color:#e7c300 !important}.badge-card .badge-contents .badge-icon.badge-type-silver .fa{color:#c0c0c0 !important}.badge-card .badge-contents .badge-icon.badge-type-bronze .fa{color:#cd7f32 !important}.badge-card .badge-contents .badge-info{display:flex;flex:1 1 auto;align-items:center;padding:1em 1.5em 1em 0;color:#222}@media screen and (max-width: 600px){.badge-card .badge-contents .badge-info{padding-right:0}}.badge-card .badge-contents .badge-info h3{margin-bottom:0.25em;font-size:1.1487em}@media screen and (min-width: 900px){.badge-card .badge-contents .badge-info h3{font-size:1.3195em}}.badge-card.medium{flex:0 0 auto;width:32%;margin-right:1.63%}@media screen and (min-width: 851px){.badge-card.medium:nth-of-type(3n){margin-right:0}}@media screen and (max-width: 850px){.badge-card.medium{width:48.5%}.badge-card.medium:nth-of-type(2n){margin-right:0}}@media screen and (max-width: 550px){.badge-card.medium{flex:0 0 100%}}.badge-card.medium:hover{box-shadow:0 4px 14px rgba(0,0,0,0.15)}.badge-card.medium:active{box-shadow:none}.badge-card.large{width:100%;align-self:flex-start}@media screen and (min-width: 767px){.badge-card.large{max-width:calc(1110px / 2);margin-right:1.5em}}.badge-card.large .badge-contents{padding:0 5%}.badge-card.large .badge-contents h3{font-size:1.5157em}.badges-granted{display:flex;flex-wrap:wrap}@media screen and (max-width: 800px){.badges-granted{justify-content:space-between}}.badge-groups{margin:20px 0;color:#919191}.badge-groups h3{margin-bottom:1em}.badge-title .user-content{padding:0}.badge-group-list{margin-bottom:1.5em;display:flex;flex-wrap:wrap}@media screen and (max-width: 850px){.badge-group-list{justify-content:space-between}}.badge-group-list .title{width:100%;font-size:1.1487em}.show-badge-details{display:flex;flex-wrap:wrap;flex-direction:row;margin-bottom:2em;margin-top:1em}.show-badge-details .badge-grant-info.hidden{display:none}.show-badge-details .grant-info-item{margin-bottom:1em;color:#919191}.show-badge-details .grant-info-item:first-of-type{margin-right:10px}.show-badge-details .badge-set-title{padding:1.5em;border:1px solid #e9e9e9}.show-badge-details .badge-set-title .user-content{padding:0}.show-badge-details .badge-set-title .user-content .control-group{margin-bottom:1em}.show-badge-details .badge-title .form-horizontal .controls{margin-left:0}.show-badge-details .form-horizontal{margin-bottom:0}.check-display{display:inline-block;padding:0 0.25em;border-radius:10px;text-align:center}.check-display .fa{font-size:0.9em;color:#fff}.check-display.status-checked{background-color:#090}.check-display.status-unchecked{background-color:#e45735}.hyperlink{cursor:pointer}.user-content-wrapper{width:100%;display:grid;grid-template-columns:1fr 5fr;grid-template-rows:auto auto 1fr auto;grid-row-gap:20px}.user-content-wrapper .user-primary-navigation{grid-column-start:1;grid-column-end:3;grid-row-start:1;grid-row-end:2}.user-content-wrapper .user-secondary-navigation{grid-column-start:1;grid-column-end:2;grid-row-start:2;grid-row-end:3}.user-content-wrapper .solo-preference,.user-content-wrapper .user-content,.user-content-wrapper .spinner{grid-row-start:2;grid-row-end:4;grid-column-start:1;grid-column-end:3}.user-content-wrapper .user-content{min-width:100%}.user-content-wrapper .user-additional-controls+.user-content,.user-content-wrapper .user-secondary-navigation+.user-content{grid-column-start:2;grid-column-end:3}.user-content-wrapper .user-additional-controls{grid-row-start:3;align-self:start;justify-self:start}.user-content .list-actions{display:flex;margin-bottom:12px}.user-content .list-actions .btn{margin-right:12px}.user-content .paginated-topics-list{position:relative}.user-content .show-mores{width:100%}.user-content .d-icon-heart{color:#fa6c8d}.user-main .about{width:100%;margin-bottom:15px}.user-main .about.has-background .user-profile-image{background-size:cover;background-position:center center;background-repeat:no-repeat}.user-main .about.has-background .staff-counters{margin-bottom:0}.user-main .about .secondary{display:inline-block;width:100%;border-top:1px solid #e9e9e9}.user-main .about .secondary .btn{padding:4px 12px}.user-main .about .secondary dl{margin:0;padding:5px 10px}.user-main .about .secondary dl div{display:inline-flex;align-items:baseline;margin-right:15px;margin:4px 0}.user-main .about .secondary dt,.user-main .about .secondary dd{display:inline-flex;align-items:center}.user-main .about .secondary dd{padding:0;margin:0 15px 0 0;color:#222}.user-main .about .secondary dd.groups span:not(:last-of-type){margin-right:0.25em}.user-main .about .secondary dd.groups span:after{content:\",\"}.user-main .about .secondary dd.groups span:last-of-type:after{content:\"\"}.user-main .about .secondary dt{color:gray;margin-right:5px;display:inline-block}.user-main .about .details{background:rgba(255,255,255,0.8);border-bottom:1px solid #e9e9e9}.user-main .about .details h1{font-size:2em;font-weight:normal}.user-main .about .details h1 .d-icon{font-size:0.8em}.user-main .about .details h2{font-weight:normal;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details h3{font-weight:normal;margin-bottom:0.5em}.user-main .about .details h3 .d-icon:not(:first-of-type){margin-left:10px}.user-main .about .details .groups{margin-left:10px;display:inline}.user-main .about .details img.avatar{float:left}.user-main .about .details .suspended{color:#e45735}.user-main .about .details .primary{width:100%;position:relative}.user-main .about .details .primary h1{font-weight:bold}.user-main .about .details .primary .bio{max-height:300px;overflow:auto}.user-main .about .details .primary .bio a[href]{text-decoration:underline}.user-main .about .details .primary .bio img{max-width:100%}.user-main .about .details .user-profile-avatar{position:relative;float:left}.user-main .about .details .user-profile-avatar .avatar-flair{bottom:8px;right:16px}.user-main .about .controls ul{list-style-type:none}.user-main .about .controls .btn{margin-bottom:10px;line-height:1.2}.user-main .about.collapsed-info .details{margin-top:0;background:rgba(255,255,255,0.8)}.user-main .about.collapsed-info .details .bio{display:none}.user-main .about.collapsed-info .details .primary{width:100%}.user-main .about.collapsed-info .details .primary .avatar{margin-right:10px;width:45px;height:45px}.user-main .about.collapsed-info .details .primary h1{font-size:1.5157em}.user-main .about.collapsed-info .details .primary h2{font-size:1.1487em}.user-main .about.collapsed-info .details .primary h3,.user-main .about.collapsed-info .details .primary h3.location-and-website{display:none}.user-main .about.collapsed-info .user-profile-avatar .avatar-flair{bottom:8px;right:2px}.user-main .about.collapsed-info .user-profile-avatar .avatar-flair .d-icon{font-size:1em}.user-main .staff-counters{background:#222;color:#fff;display:flex;padding:10px;margin-bottom:16px}.user-main .staff-counters>div,.user-main .staff-counters>div a{display:flex;align-items:baseline;flex:0 1 auto;margin:0 10px 0 0;color:#fff}.user-main .staff-counters>div span,.user-main .staff-counters>div a span{padding:0 7px 1px;border-radius:10px;margin-right:5px}.user-main .staff-counters .active{font-weight:bold}.user-main .helpful-flags{background-color:#090}.user-main .flagged-posts{background-color:#e49735}.user-main .warnings-received{background-color:#ec8972}.user-main .deleted-posts{background-color:#ec8972}.user-main .suspensions{background-color:#e45735}.user-main .user-field{margin-bottom:10px}.user-main .user-field .controls label{width:auto;text-align:left;font-weight:normal}.user-main .user-field .controls .instructions{color:#919191;margin-top:5px;margin-bottom:10px;font-size:.8706em}.user-main .user-content .admin-controls nav{margin:0}.user-main .user-content .admin-controls nav .nav-pills{overflow-x:auto}.user-field .required{vertical-align:top;color:#e45735;font-weight:bold;margin-left:0.25em}.public-user-fields{margin-top:8px;margin-bottom:8px}.public-user-fields .user-field-name{font-weight:bold}.collapsed-info .public-user-fields{display:none}.avatar-selector .avatar-choice{display:grid;grid-template-columns:2em 1fr auto;grid-template-rows:auto auto;align-items:center}.avatar-selector .avatar-choice:not(:last-of-type){margin-bottom:0.75em}.avatar-selector .avatar-choice span{word-break:break-word}.avatar-selector .avatar-choice input[type=\"radio\"]{margin-top:0}.avatar-selector .avatar-choice button{margin-left:auto}.avatar-selector label.radio{display:flex;align-items:center;max-width:300px;margin:0 0.5em 0 0;padding:0}.avatar-selector label.radio .avatar{flex:0 0 auto;margin:0 0.75em 0 0}.avatar-selector .error{color:#e45735;margin:0;max-width:calc(300px - 20px);grid-column-start:2;grid-column-end:3}.top-section:before,.top-section:after{content:\"\";display:table}.top-section:after{clear:both}.top-section ul{list-style:none;margin:0}.top-section,.top-sub-section{margin-bottom:20px}.top-section.badges-section,.top-sub-section.badges-section{display:flex;flex-wrap:wrap}.stats-title{text-transform:uppercase;margin-bottom:10px;width:100%}.stats-section ul{margin:10px 0}.stats-section li{display:inline-block;padding:10px 14px 10px 0;margin:0 10px 10px 0}.stats-section li.linked-stat{padding:0}.stats-section li.linked-stat a{padding:10px 14px 10px 0;width:100%;height:100%;display:block;color:#222}.stats-section .value{font-weight:bold;font-size:1.3195em}.stats-section .label{color:#919191}.top-sub-section{width:50%}.top-sub-section ul{max-width:95%}.top-sub-section li{border-left:#e9e9e9 solid 2px;padding:5px 8px;margin:10px 0}.top-sub-section .topic-info{color:#919191}@media all and (max-width: 600px){.top-sub-section{float:none;width:100%}}.replies-section li,.topics-section li,.links-section li{word-wrap:break-word}.links-section .domain{font-size:.8706em;color:#919191}.top-categories-section table{max-width:95%}.top-categories-section table tr{border:none}.top-categories-section table td,.top-categories-section table th{padding:0.5em}.top-categories-section table td.topic-count,.top-categories-section table td.reply-count,.top-categories-section table th.topic-count,.top-categories-section table th.reply-count{text-align:center}.summary-user-list li{height:45px}.groups .group-link{color:#08c}.user-preferences textarea{height:100px}.user-preferences .tracking-controls label{align-items:center;display:inline-block}.user-preferences .tracking-controls label .d-icon{margin-right:3px}@media screen and (max-width: 550px){.user-preferences .tracking-controls .select-kit.multi-select{width:100%}}.user-preferences .tracking-controls .show-tracking{float:right}.user-preferences .static{color:#222;display:inline-block}.user-preferences .instructions{color:#919191;margin-bottom:10px;font-size:.8706em;line-height:1.4}.user-preferences .instructions a[href]{color:#08c}.user-preferences .avatar{margin-left:3px}.user-preferences .warning{background-color:#ec8972;padding:5px 8px;color:#fff;width:520px}.user-preferences .warning-wrap{height:30px;margin-bottom:10px}.user-preferences .tracking-controls{margin-top:24px}.user-preferences.second-factor-backup-preferences{padding-left:0}.user-preferences.second-factor-backup-preferences .second-factor-token-input{margin-right:10px}.user-preferences.second-factor-backup-preferences .form-horizontal .instructions{margin-left:0}.user-preferences.second-factor-backup-preferences .backup-codes{margin:2em 0}.user-preferences.second-factor-backup-preferences .backup-codes .wrapper{display:inline-block;position:relative;border-radius:3px;border:1px solid #e9e9e9;width:100%}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-area{resize:none;padding:0;height:auto;text-align:center;width:100%;background:white;border:0;cursor:auto;outline:none;font-family:monospace}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-area:focus{box-shadow:none;border-color:#e9e9e9}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-copy-btn,.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-download-btn{right:5px;position:absolute}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-copy-btn{top:5px}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-download-btn{top:40px}.user-preferences .pref-associated-accounts table td{padding:8px}.user-preferences .featured-topic-link{padding:5px 0;font-weight:bold}.paginated-topics-list .user-content{width:100%;margin-top:0}.large-notification{display:flex;align-items:center}.large-notification a{display:flex;align-items:center}.large-notification a .d-icon{margin-right:0.5em}.large-notification a span:first-child{color:#222}.large-notification a div .fa{display:none}.large-notification a div p{margin:0}.qr-code-container{display:flex}.qr-code-container .qr-code{padding:5px 5px 0 5px;background-color:white}.second-factor.instructions{color:#919191;margin-top:5px;margin-bottom:10px;font-size:.8706em}.second-factor .second-factor-item{margin-top:0.75em}.second-factor .btn.edit{min-height:auto}.primary-textual .staged,.user-card .staged{font-style:italic}.selectable-avatars{max-height:350px;margin-bottom:1em;text-align:justify}.selectable-avatars .selectable-avatar{margin:5px;display:inline-block}.selectable-avatars .selectable-avatar .avatar{cursor:pointer;width:60px;height:60px}.selectable-avatars .selectable-avatar .avatar:hover{box-shadow:0 0 10px #222}div.tagsinput{border:1px solid #ccc;background:#fff;padding:5px 5px 0;width:584px;height:100px;overflow-y:auto;border-radius:4px}div.tagsinput span.tag{border:1px solid #a5d24a;border-radius:2px;display:block;float:left;padding:1px 5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:.8706em}div.tagsinput span.tag a{font-weight:bold;color:#82ad2b;text-decoration:none;font-size:.7579em}div.tagsinput input{width:80px;font-family:helvetica;font-size:.8706em;border:1px solid transparent;padding:2px 5px;background:transparent;color:#000;outline:0;margin:0 5px 5px 0}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#fbd8db !important;color:#90111a !important}.d-editor-container{display:flex;flex-grow:1;max-width:100%}.d-editor{display:flex;flex-grow:1;min-height:0}.d-editor-textarea-wrapper,.d-editor-preview-wrapper{flex:1}.d-editor-textarea-wrapper{display:flex;flex-direction:column;background-color:#fff;position:relative;border:1px solid #919191}.d-editor-textarea-wrapper textarea{background:transparent}.d-editor-textarea-wrapper.disabled{cursor:not-allowed}.d-editor-textarea-wrapper.disabled .d-editor-button-bar{visibility:hidden}.d-editor-preview-wrapper{max-width:49%;margin-left:1%;display:flex;flex-direction:column}.d-editor-button-bar{display:flex;align-items:center;min-height:30px;border-bottom:1px solid #e9e9e9}.d-editor-button-bar .btn,.d-editor-button-bar .btn-default{background-color:transparent;display:inline-block}.d-editor-button-bar .btn .d-icon,.d-editor-button-bar .btn-default .d-icon{color:#919191}.d-editor-button-bar .btn svg,.d-editor-button-bar .btn-default svg{-webkit-transform:translate3d(0, 0, 0)}.d-editor-button-bar .d-editor-spacer{height:1em;display:inline-block;border-left:1px solid #bdbdbd}.d-editor-button-bar .btn:not(.no-text){font-size:1.1487em}.d-editor-button-bar .btn.bold{font-weight:bolder}.d-editor-button-bar .btn.italic{font-style:italic}.d-editor-preview-wrapper{overflow:auto;cursor:default;-webkit-overflow-scrolling:touch}.d-editor-input,.d-editor-preview{box-sizing:border-box;flex:1 1 100%;width:100%;margin:0;min-height:auto;word-wrap:break-word;-webkit-appearance:none;border-radius:0}.d-editor-input:focus,.d-editor-preview:focus{box-shadow:none;border:0;outline:0}.d-editor-input{border:0;padding:10px;height:100%;overflow-x:hidden;resize:none}.d-editor-preview{height:auto}.d-editor-plugin{display:flex;flex:1 1;overflow:auto}.composing-whisper .d-editor-preview{font-style:italic;color:#919191 !important}.d-editor-preview>*:first-child{margin-top:0}.hide-preview .d-editor-preview-wrapper{display:none;flex:0}.edit-category-tab-topic-template .emoji.btn{display:none}.user-preferences .bio-composer textarea,.group-form-bio textarea,.edit-category-tab-topic-template textarea{width:100%;height:100%;min-height:10em}.user-preferences .bio-composer .local-dates.btn,.group-form-bio .local-dates.btn,.edit-category-tab-topic-template .local-dates.btn{display:none}.user-preferences .bio-composer .d-editor-container,.group-form-bio .d-editor-container,.edit-category-tab-topic-template .d-editor-container{display:block}.user-preferences .bio-composer .d-editor-textarea-wrapper,.group-form-bio .d-editor-textarea-wrapper,.edit-category-tab-topic-template .d-editor-textarea-wrapper{border:1px solid #e9e9e9}.user-preferences .bio-composer .d-editor-preview-wrapper,.group-form-bio .d-editor-preview-wrapper,.edit-category-tab-topic-template .d-editor-preview-wrapper{max-width:100%;margin:10px 0 0 0}.user-preferences .bio-composer .d-editor-preview,.group-form-bio .d-editor-preview,.edit-category-tab-topic-template .d-editor-preview{background-color:#f8f8f8;padding:5px}.user-preferences .bio-composer .d-editor-preview:empty,.group-form-bio .d-editor-preview:empty,.edit-category-tab-topic-template .d-editor-preview:empty{padding:0}.user-preferences .bio-composer,.group-form-bio{padding:10px;border:1px solid #e9e9e9}.d-editor-preview img{padding-bottom:1.4em}.d-editor-preview img.emoji,.d-editor-preview img.avatar,.d-editor-preview img.site-icon{padding-bottom:0}.d-editor-preview .image-wrapper{position:relative;display:inline-block;padding-bottom:1.4em}.d-editor-preview .image-wrapper img{padding-bottom:0}.d-editor-preview .image-wrapper:hover .button-wrapper{opacity:0.9}.d-editor-preview .image-wrapper .button-wrapper{opacity:0;position:absolute;transition:all 0.25s;display:flex;align-items:center;bottom:0;left:0}.d-editor-preview .image-wrapper .button-wrapper .separator{color:#bdbdbd}.d-editor-preview .image-wrapper .button-wrapper .scale-btn{color:#08c;padding:0 0.4em}.d-editor-preview .image-wrapper .button-wrapper .scale-btn:first-of-type{padding-left:0}.d-editor-preview .image-wrapper .button-wrapper .scale-btn.active{font-weight:bold;color:#222}.d-editor-preview .image-wrapper .button-wrapper .scale-btn:not(.active):hover{text-decoration:underline;cursor:pointer}.mobile-view .d-editor-preview .image-wrapper .button-wrapper{opacity:1}.d-editor-button-bar{margin:0.25em}.d-editor-button-bar .btn,.d-editor-button-bar .btn-default{padding:0 0.5em}.d-editor-button-bar .d-editor-spacer{margin:0 0.25em}@media screen and (max-width: 450px){.text-size-smaller .d-editor-button-bar .btn,.text-size-smaller .d-editor-button-bar .btn-default{padding:0 0.4em}}@media screen and (max-width: 350px){.text-size-smaller .d-editor-button-bar .btn,.text-size-smaller .d-editor-button-bar .btn-default{padding:0 0.3em}.text-size-smaller .d-editor-button-bar .d-editor-spacer{margin:0 0.25em}}@media screen and (max-width: 450px){.text-size-normal .d-editor-button-bar .btn,.text-size-normal .d-editor-button-bar .btn-default{padding:0 0.35em}}@media screen and (max-width: 350px){.text-size-normal .d-editor-button-bar .btn,.text-size-normal .d-editor-button-bar .btn-default{padding:0 0.25em}}@media screen and (max-width: 450px){.text-size-larger .d-editor-button-bar .btn,.text-size-larger .d-editor-button-bar .btn-default{padding:0 0.3em}}@media screen and (max-width: 350px){.text-size-larger .d-editor-button-bar .btn,.text-size-larger .d-editor-button-bar .btn-default{padding:0 0.2em}}.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{font-size:.8706em}@media screen and (max-width: 450px){.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{padding:0 0.3em}}@media screen and (max-width: 350px){.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{padding:0 0.2em}}.timeline-loading{width:900px}.timeline-container{box-sizing:border-box;z-index:100;margin-left:757px;position:fixed;-webkit-transform:translate3d(0, 0, 0)}@media screen and (min-width: 1140px){.timeline-container{margin-left:820px}}@media all and (min-width: 1250px){.timeline-container{margin-left:900px}}.timeline-container.timeline-docked{position:absolute}.timeline-container.timeline-docked-bottom .timeline-footer-controls{opacity:0;pointer-events:none;cursor:default}.timeline-container.timeline-fullscreen.show{max-height:700px;transition:max-height 0.4s ease-out}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen.show{max-height:75vh}}.timeline-container.timeline-fullscreen.show .topic-timeline .timeline-footer-controls{display:inherit}.timeline-container.timeline-fullscreen.show .timeline-controls{display:table-cell;vertical-align:top}.timeline-container.timeline-fullscreen{max-height:0;transition:max-height 0.3s ease-in;position:fixed;margin-left:0;background-color:#fff;bottom:0;left:0;right:0;border-top:1px solid #e9e9e9;box-shadow:0 -1px 40px rgba(0,0,0,0.12);padding-top:20px;z-index:1150}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen{padding-top:10px}}.timeline-container.timeline-fullscreen .back-button{display:none}.timeline-container.timeline-fullscreen .topic-timeline{width:100%;table-layout:fixed;margin-left:0;margin-right:0;display:table;touch-action:none}.timeline-container.timeline-fullscreen .topic-timeline .timeline-date-wrapper{float:right;text-align:right}.timeline-container.timeline-fullscreen .topic-timeline .post-excerpt{max-width:650px;line-height:1.4;display:block;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:8;-webkit-box-orient:vertical}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen .topic-timeline .post-excerpt{-webkit-line-clamp:5}}.timeline-container.timeline-fullscreen .topic-timeline .username{color:#646464;word-wrap:break-word;font-weight:bold}.timeline-container.timeline-fullscreen .topic-timeline .title{margin-top:0;padding-left:1em;display:table-cell;vertical-align:top;width:100%}.timeline-container.timeline-fullscreen .topic-timeline .title h2{margin-top:0;display:block;line-height:1.2;font-size:1.3195em;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:4;-webkit-box-orient:vertical}.timeline-container.timeline-fullscreen .topic-timeline .title a{color:#222}.timeline-container.timeline-fullscreen .topic-timeline .timeline-last-read{right:0;margin-left:0}.timeline-container.timeline-fullscreen .topic-timeline .timeline-last-read .progress{display:none}.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls{display:none;position:absolute;bottom:10px;left:10px}.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls button,.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls .btn-group{float:none;display:inline-block;margin-bottom:0;margin-right:15px;position:static}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea-wrapper{display:table-cell;padding-bottom:20px;padding-right:1.5em;width:100px}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea{border-left:0;border-right-style:solid;border-right-width:1px;max-width:120px;float:right}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller{position:relative;margin-right:-1.5em;padding-right:1.5em;justify-content:flex-end}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller .timeline-scroller-content{text-align:right;padding-left:0;padding-right:1em}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller .timeline-handle{float:none;width:11px;position:relative;right:-6px}.timeline-container.timeline-fullscreen .timeline-scrollarea-wrapper::after{content:\"\";display:table;clear:both}.timeline-container .topic-timeline{margin-left:3em;transition:opacity 0.2s ease-in;touch-action:none}.timeline-container .topic-timeline .timeline-controls{margin-bottom:1em}.timeline-container .topic-timeline .timeline-controls button{margin-right:0.5em}.timeline-container .topic-timeline .timeline-footer-controls{margin-top:1.5em;transition:opacity 0.2s ease-in;display:flex}.timeline-container .topic-timeline .timeline-footer-controls button{margin-right:0.5em}.timeline-container .topic-timeline .timeline-footer-controls button:last-child{margin-right:0}.timeline-container .topic-timeline .start-date{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;color:#919191}.timeline-container .topic-timeline .timeline-scrollarea{margin-top:0.5em;margin-left:0.5em;border-left:1px solid;border-color:#d1f0ff;position:relative;-webkit-transform:translate3d(0, 0, 0)}.timeline-container .topic-timeline .timeline-padding{transition:height 0.15s ease-out;cursor:pointer}.widget-dragging .timeline-container .topic-timeline .timeline-padding{transition:none}.timeline-container .topic-timeline .timeline-handle{border-radius:0.8em;width:0.35em;background-color:#d1f0ff;height:100%;float:left;z-index:2}.timeline-container .topic-timeline .timeline-scroller-content{padding-left:1em}.timeline-container .topic-timeline .timeline-ago{color:#919191}.timeline-container .topic-timeline .timeline-scroller{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;margin-left:-0.19em;cursor:ns-resize;display:flex;align-items:center}.timeline-container .topic-timeline .timeline-scroller .back-button{margin-top:1em}.timeline-container .topic-timeline .timeline-replies{font-weight:bold}.timeline-container .topic-timeline .timeline-last-read{position:absolute;margin-left:-0.35em;z-index:3}.timeline-container .topic-timeline .timeline-last-read .progress{font-size:0.8em;color:#08c;margin-right:1em}.timeline-container .topic-timeline .back-button{min-height:unset;padding:2px 5px}.timeline-container .topic-timeline .now-date{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:inline-block;color:#919191;margin-top:0.5em}.alert{margin-bottom:15px}#banner{margin-bottom:10px;max-width:1090px;max-height:250px}#reply-control .reply-area{margin:0 auto;padding:5px 15px;box-sizing:border-box;height:calc(100% - 11px);width:100%}#reply-control .reply-area .submit-panel{flex-wrap:wrap;align-items:center}#reply-control #private-message-users{width:404px}#reply-control .item+#private-message-users{width:unset;min-width:150px;flex:1 1 auto}#reply-control .select-kit.is-expanded{z-index:701}.category-input{margin-left:10px}.edit-title .d-editor-preview-wrapper{margin-top:-43px}@media screen and (max-width: 955px){.edit-title:not(.private-message) .d-editor-preview-wrapper{margin-top:-77px}}.edit-title .with-tags .d-editor-preview-wrapper{margin-top:-77px}@media screen and (max-width: 900px){.edit-title .with-tags .d-editor-preview-wrapper{margin-top:-105px}}.closed .grippie{display:none}.open .grippie{cursor:row-resize;padding:4px 0;background:#08c}.open .grippie:before{content:\"\";display:block;width:27px;margin:auto;border-top:3px double #fff}.discourse-touch .open .grippie{padding:7px 0}.composer-popup-container{max-width:1500px;margin-left:auto;margin-right:auto}.composer-popup{position:absolute;width:calc(50% - 45px);max-width:724px;top:20px;bottom:10px;left:51%;overflow-y:auto;z-index:500;padding:10px 10px 35px 10px;box-shadow:0 4px 14px rgba(0,0,0,0.15);background:#ffffa6}.hide-preview .composer-popup{z-index:701}.composer-popup.urgent{background:#fbe6e1}.composer-popup.education-message{background-color:#d1f0ff}.composer-popup h3{margin-bottom:10px}.composer-popup p{margin-bottom:10px}.composer-popup a.close{display:flex;align-items:center;position:absolute;right:10px;top:10px;color:#222;opacity:0.5;font-size:1.1487em}.composer-popup a.close:before{content:\"esc\";font-size:.8706em;margin-right:0.5em}.composer-popup a.close:hover{opacity:1}.composer-popup ul{list-style:none;margin:0;padding:0}.composer-popup ul li{font-weight:normal;margin-top:8px}.composer-controls .d-chevron-down{vertical-align:text-top}.custom-body{background-color:#d1f0ff}.custom-body p{max-width:98%}.similar-topics{background-color:#d1f0ff}.similar-topics a[href]{color:#222}.similar-topics .posts-count{background-color:#08c}.similar-topics .search-link .topic-title{flex:0 1 auto;margin-right:0.5em}.similar-topics .search-link .topic-statuses:empty{display:none}.similar-topics .search-link span.badge-wrapper{margin-left:0}.similar-topics .search-link .blurb{color:#646464}.similar-topics .search-link .topic-title .d-icon,.similar-topics .search-link .blurb .d-icon{color:#646464}.similar-topics .search-link span.topic{display:flex;flex-direction:column}.similar-topics .search-link span.topic .first-line{flex:1}.similar-topics .search-link span.topic .second-line{display:flex;flex-wrap:wrap;align-items:center}.similar-topics .search-link span.topic .second-line .discourse-tags{flex-wrap:wrap;display:contents;font-size:.8706em}.composer-popup:nth-of-type(2){margin-left:10px;width:calc(50% - 65px)}a.toggle-preview{color:#646464}a.toggle-preview:hover{color:#08c}#draft-status,#file-uploading{flex-grow:1;text-align:right}.fullscreen-composer{overflow:hidden}.fullscreen-composer .profiler-results{display:none}.fullscreen-composer #reply-control.fullscreen{height:100vh !important;z-index:1001}@supports (--custom: property){.fullscreen-composer #reply-control.fullscreen{height:calc(var(--composer-vh, 1vh) * 100) !important}}.fullscreen-composer #reply-control.fullscreen .d-editor-preview-wrapper{margin-top:1%}.fullscreen-composer #reply-control.fullscreen .reply-to{border-bottom:1px solid #e9e9e9;padding-bottom:3px;margin:0}.fullscreen-composer #reply-control.fullscreen .reply-to .composer-controls{margin-right:0}.fullscreen-composer #reply-control.fullscreen .d-editor-textarea-wrapper{border:none}.fullscreen-composer #reply-control.fullscreen.show-preview .d-editor-textarea-wrapper{border-right:1px solid #e9e9e9}.fullscreen-composer #reply-control.fullscreen #draft-status,.fullscreen-composer #reply-control.fullscreen #file-uploading{margin-left:0;text-align:initial}.fullscreen-composer #reply-control.fullscreen .composer-popup{top:30px}.fullscreen-composer #reply-control.fullscreen:before{content:\"\";background:#fff;width:100%;height:100%;position:fixed;z-index:-1;left:0}body.widget-dragging{cursor:ns-resize}.boxed{height:100%}.form-vertical .control-group{margin-bottom:1.25em}.form-vertical .controls:not(.controls-dropdown)+.controls{margin-top:0.5em}code,pre{font-family:Consolas, Menlo, Monaco, \"Lucida Console\", \"Liberation Mono\", \"DejaVu Sans Mono\", \"Bitstream Vera Sans Mono\", \"Courier New\", monospace}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}form{margin:0 0 18px}label,input,button,select,textarea{font-size:1em;font-weight:normal;line-height:1.2}select,textarea{display:inline-block;padding:4px;margin-bottom:9px;font-size:1em;line-height:1.4;color:#222}input,textarea{width:210px}select,input[type=\"file\"]{line-height:1.4}select{width:220px;background:#fff}select[multiple],select[size]{height:auto}input,textarea{margin-left:0}input[type=\"radio\"][disabled],input[type=\"radio\"][readonly],input[type=\"checkbox\"][disabled],input[type=\"checkbox\"][readonly]{background-color:transparent}.input-xxlarge,.input-xxlarge+.control-instructions{width:530px}.controls-dropdown{margin-bottom:10px}.control-instructions{color:#919191;font-size:0.875rem}.control-group{margin-bottom:9px}.control-group.warning>label,.control-group.error>label{color:#e45735}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea,.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#e45735;border-color:#e45735}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus,.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#ae3417;box-shadow:0 0 6px 0 #e45735}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#e45735;background-color:#e45735;border-color:#e45735}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#e45735;background-color:#ec8972;border-color:#c63c1b}.control-group.success>label{color:#090}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#090;border-color:#090}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#090;box-shadow:0 0 6px 0 #08c}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#090;background-color:#b8ffb8;border-color:#090}.form-horizontal .hide{display:none}.form-horizontal input,.form-horizontal textarea,.form-horizontal select,.form-horizontal .input-prepend,.form-horizontal .input-append{display:inline-block;margin-bottom:0}.form-horizontal .control-group{margin-bottom:18px}.form-horizontal .control-group:before,.form-horizontal .control-group:after{content:\"\";display:table}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-indent{margin-left:20px;margin-bottom:10px}.form-horizontal .control-label{margin:6.5px;float:left;width:140px;text-align:right;font-weight:bold}.form-horizontal .controls{margin-left:160px}.bootbox.modal .modal-footer a.btn-primary{color:#fff}.row:before,.row:after{content:\"\";display:table}.row:after{clear:both}.offset2{margin-left:116px}.offset1{margin-left:64px}@media all and (max-width: 570px){body{min-width:0}.wrap,.full-width{min-width:0}}.d-header{left:0;height:4em;margin-bottom:15px}.d-header #site-logo{height:2.667em}.d-header #site-text-logo{font-size:1.5157em;margin:0}.d-header .extra-info:not(.two-rows) .header-title{margin-bottom:0}@media all and (max-width: 570px){.extra-info-wrapper{display:none}}#main{position:relative}#main-outlet{padding-top:5.8572em}.search-link .blurb{color:#646464;display:block;word-wrap:break-word;font-size:.7579em;line-height:1.4}.search-link .blurb .search-highlight{color:#646464}.login-modal #login-buttons:not(.hidden),.create-account #login-buttons:not(.hidden){display:flex;flex:0 1 auto;flex-direction:column;align-items:stretch;min-height:75px;padding:0 24px;order:2}.login-modal #login-buttons:not(.hidden) button,.create-account #login-buttons:not(.hidden) button{display:flex;text-align:left;margin:0.35em;white-space:nowrap;align-items:center}.login-modal #login-buttons:not(.hidden) button:lang(zh_CN),.create-account #login-buttons:not(.hidden) button:lang(zh_CN){min-width:200px}.login-modal #login-buttons:not(.hidden) button:first-of-type:last-of-type.oauth2_basic,.create-account #login-buttons:not(.hidden) button:first-of-type:last-of-type.oauth2_basic{margin-left:auto;margin-right:auto;justify-content:center}.login-modal form,.create-account form{min-width:300px;max-width:100%}.login-modal #modal-alert,.create-account #modal-alert{max-width:100%;padding:8px 16px}.login-modal .login-modal #login-buttons:not(.hidden) button:first-of-type,.create-account .login-modal #login-buttons:not(.hidden) button:first-of-type{margin-top:2.8em}.login-modal .login-modal #login-buttons:not(.hidden) button:last-of-type,.create-account .login-modal #login-buttons:not(.hidden) button:last-of-type{margin-bottom:3em}.login-modal .create-account #login-buttons:not(.hidden),.create-account .create-account #login-buttons:not(.hidden){justify-content:flex-start;padding-top:2.7em}.login-modal .create-account #login-buttons:not(.hidden)+.login-form,.create-account .create-account #login-buttons:not(.hidden)+.login-form{border-right:1px solid #e9e9e9}.login-modal #login-form,.create-account #login-form{box-sizing:border-box;flex:1 0 auto;padding:0 24px}.login-modal #login-form+#login-buttons,.create-account #login-form+#login-buttons{border-left:1px solid #e9e9e9}.login-modal tr:not(.instructions) td,.create-account tr:not(.instructions) td{display:flex;padding:5px 0 0 0}.login-modal .tip,.login-modal td label,.create-account .tip,.create-account td label{display:block;overflow:hidden;word-wrap:break-word;margin-bottom:0;max-width:280px}@media screen and (min-width: 500px){.login-modal .tip,.login-modal td label,.create-account .tip,.create-account td label{max-width:400px}}.has-alt-auth .tip,.has-alt-auth td label{max-width:250px}.d-modal.login-modal .modal-body,.d-modal.login-modal #credentials{display:flex;align-items:center;padding:15px 0}.d-modal.login-modal .modal-body tr,.d-modal.login-modal #credentials tr{display:flex;flex-direction:column}.d-modal.login-modal .modal-body.hidden,.d-modal.login-modal #credentials.hidden{display:none}.d-modal.create-account .modal-body{display:flex;padding:15px 0}.d-modal.create-account .create-account-form tr{display:flex;flex-direction:column}.d-modal.create-account .login-form{position:relative;display:flex;overflow:hidden;flex:1 1 auto}.d-modal.create-account .login-form:after,.d-modal.create-account .login-form:before{content:\"\";display:block;position:absolute;width:100%;pointer-events:none}.d-modal.create-account .login-form:after{bottom:0;height:35px;background-image:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 100%)}@media screen and (max-height: 650px){.d-modal.create-account .login-form:after{height:45px}}.d-modal.create-account .login-form:before{top:0;height:25px;background-image:linear-gradient(to top, rgba(255,255,255,0) 0%, #fff 100%)}.d-modal.create-account .login-form form{box-sizing:border-box;padding:16px 24px;margin-bottom:0;max-height:475px;overflow-x:hidden;overflow-y:auto}@media screen and (max-height: 650px){.d-modal.create-account .login-form form{max-height:calc(65vh - 100px)}.d-modal.create-account .login-form form>*:last-child{margin-bottom:40px}}.d-modal.create-account .login-form form,.d-modal.create-account .login-form table{width:100%}.d-modal.create-account .login-form tr{display:flex;flex-direction:column;margin-top:0.15em}.d-modal.create-account .login-form tr.password-confirmation{display:none}.d-modal.create-account tr.input input,.d-modal.create-account tr.input label{margin-bottom:0;width:100%}.d-modal.create-account tr.input .tip{max-width:340px}.d-modal.create-account .user-fields{margin-bottom:20px}.d-modal.create-account .user-field{display:flex;flex-direction:column}.d-modal.create-account .user-field.confirm{margin-top:5px}.d-modal.create-account .user-field>label{width:auto}.d-modal.create-account .user-field .controls{margin-left:0}.d-modal.create-account .invites-show{padding-top:20px}.d-modal.create-account .invites-show .two-col{margin-top:30px}.d-modal.create-account .invites-show .col-form{margin-left:200px}.d-modal.create-account .invites-show .col-form .inline-invite-img{display:none}.d-modal.create-account .invites-show form .controls,.d-modal.create-account .invites-show form .input{margin-left:20px}.d-modal.create-account .invites-show form input,.d-modal.create-account .invites-show form label{margin-bottom:0}.d-modal.create-account .invites-show form .user-field .control-label:not(.checkbox-label){margin-left:20px}.d-modal.create-account .tos-agree{margin-bottom:12px}.login-form .tip:not(:empty)+td{display:none}.login-form .tip:not(:empty),.login-form .tip:empty+td{min-height:1.75em}.login-form .tip:not(:empty).bad .svg-icon,.login-form .tip:empty+td.bad .svg-icon{vertical-align:middle}.password-reset .col-form,.email-login .col-form,.invites-show .col-form{padding-left:20px}.password-reset .col-image,.email-login .col-image,.invites-show .col-image{width:175px}.password-reset .col-image img,.email-login .col-image img,.invites-show .col-image img{width:100%}.password-reset h2,.email-login h2,.invites-show h2{margin-bottom:12px}.password-reset .col-form,.email-login .col-form{padding-top:40px}.bootbox.modal{top:50%;left:50%;width:610px;margin:-250px 0 0 -305px}.bootbox.modal .cancel{margin-left:1em}.modal.in{-webkit-animation:fade 0.25s;animation:fade 0.25s}.modal-footer .btn.right{float:right}.modal-header h3{font-size:1.5157em}.close{font-size:1.5157em;text-decoration:none;cursor:pointer}.close:visited{color:#646464}.close:hover{color:#222}.modal .category-chooser{width:50%}.modal .modal-body.insert-link input{min-width:450px}.edit-category-modal .modal-body{position:relative;height:420px}.edit-category-modal .edit-category-tab-general .category-chooser{width:434px}.edit-category-modal .disable_info_wrap .cannot_delete_reason{top:-100px;right:4px;max-width:380px;min-width:300px}.topic-bulk-actions-modal p{margin-top:0}.topic-bulk-actions-modal.full .modal-body{height:400px;max-height:400px}.topic-bulk-actions-modal .bulk-buttons{display:flex;flex-wrap:wrap;margin-right:-1%}.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 0 30%;margin-bottom:1em;margin-right:1%;white-space:nowrap;overflow:hidden;max-width:33%}@media screen and (max-width: 767px){.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 0 48%;max-width:48%}}@media screen and (max-width: 550px){.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 1 auto;min-width:49%;max-width:unset}}.choose-topic-modal .modal-body{position:relative;height:350px}.choose-topic-modal #choosing-topic{width:525px}.choose-topic-modal #choosing-topic p{margin-top:0}.choose-topic-modal #choosing-topic .radios{margin-bottom:10px;display:flex;flex-direction:row}.choose-topic-modal #choosing-topic .radios .radio-label{display:inline-block;padding-right:15px}.choose-topic-modal #choosing-topic button{margin-top:10px;display:block;width:300px}.choose-topic-modal #choosing-topic form{width:95%;margin-top:20px}.choose-topic-modal #choosing-topic form .participant-selector{width:100%}.choose-topic-modal #choosing-topic form div.ac-wrap{width:100%;margin-bottom:9px}.category-list{margin-bottom:10px;width:100%}.category-list td{vertical-align:top}.category-list th{vertical-align:middle}.category-list td:first-of-type{padding-left:10px}.category-list.with-topics{margin-left:3px}.category-list.with-topics .category{width:45%}.category-list .topics .badge-notification,.category-list .category .badge-notification{background-color:transparent;color:#919191}.category-list .topics{width:80px;text-align:right}.category-list .topics .value{font-size:1.1487em}.category-list .topics .unit{font-size:.8706em}.category-list .topics .badge-notification{display:block;text-align:right;padding-right:0;margin-top:5px}.category-list .subcategories{margin-top:0.25em;clear:both}.category-list .subcategories .subcategory{display:inline-flex;align-items:baseline;margin-right:0.3em}.category-list .subcategories .badge-wrapper{margin-right:0.5em}.category-list .subcategories .badge-notification.new-posts{display:block;padding:0}.category-list .featured-topic{margin:10px 0 0;display:flex;align-items:baseline}.category-list .featured-topic:first-of-type{margin-top:13px}.category-list .featured-topic a.last-posted-at,.category-list .featured-topic a.last-posted-at:visited{font-size:.8706em;color:#919191}.category-list .featured-topic .title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:0 1 auto}.category-list .featured-topic .topic-statuses{margin-right:0.15em}.category-list .featured-topic .topic-post-badges .badge.new-posts,.category-list .featured-topic .title{margin-right:5px}.category-list tbody .category{border-left:6px solid}.category-list tbody .category h3,.category-list tbody .category h4{line-height:1.2}.category-list tbody .category h3 a[href],.category-list tbody .category h4 a[href]{color:#222}.category-list tbody .category h3{font-size:1.3195em}.category-list tbody .category h4{font-size:1.1487em}.category-list tbody .latest{padding:0 0 10px 10px}.categories-and-latest,.categories-and-top{display:flex;flex-flow:row wrap}.categories-and-latest div.column,.categories-and-top div.column{flex:1 0 0px;flex-direction:row;min-width:300px}@media all and (max-width: 600px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:0}}@media all and (min-width: 600px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:1em}}@media all and (min-width: 700px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:2em}}.categories-and-latest .discourse-tags,.categories-and-top .discourse-tags{display:inline-block}.categories-and-latest .discourse-tags .discourse-tag,.categories-and-top .discourse-tags .discourse-tag{font-size:.8706em}.categories-and-latest .topic-featured-link,.categories-and-top .topic-featured-link{padding-left:8px}.categories-and-latest .subcategories-with-subcategories .category-description,.categories-and-top .subcategories-with-subcategories .category-description{display:none}.latest-topic-list .table-heading,.top-topic-list .table-heading{padding:12px 5px;color:#919191}.latest-topic-list .no-topics,.latest-topic-list .more-topics,.top-topic-list .no-topics,.top-topic-list .more-topics{margin-top:1em}.latest-topic-list-item{padding:1em;border-bottom:1px solid #e9e9e9;display:flex;align-items:center}.latest-topic-list-item .topic-poster{width:60px}.latest-topic-list-item .main-link{flex:0 1 auto;max-width:65%;font-size:1em}.latest-topic-list-item .main-link .badge-wrapper{max-width:100%}.latest-topic-list-item .main-link .badge-wrapper .badge-category-bg{flex-shrink:0}.latest-topic-list-item .main-link .top-row{margin-bottom:0.1em;font-size:1.1487em}.latest-topic-list-item .topic-stats{flex:1 0 0px;text-align:right;color:#919191}.latest-topic-list-item .topic-last-activity a{color:#919191}.list-controls .nav{float:left;margin-bottom:10px}.list-controls .btn{float:right;margin-left:8px;margin-bottom:9px;font-size:1.1487em;font-weight:normal}.list-controls .search .btn{float:none}.list-controls a.badge-category{padding:3px 12px;font-size:1.1487em}.topic-list-icons .d-icon-thumbtack,.latest-topic-list .d-icon-thumbtack,.top-topic-list .d-icon-thumbtack,.topic-list .d-icon-thumbtack{color:#919191}.topic-list-icons .d-icon-thumbtack.unpinned,.latest-topic-list .d-icon-thumbtack.unpinned,.top-topic-list .d-icon-thumbtack.unpinned,.topic-list .d-icon-thumbtack.unpinned{color:#919191}.topic-list-icons a.title,.latest-topic-list a.title,.top-topic-list a.title,.topic-list a.title{color:#222}.topic-list-icons .d-icon-bookmark,.latest-topic-list .d-icon-bookmark,.top-topic-list .d-icon-bookmark,.topic-list .d-icon-bookmark{color:#919191}.topic-list{margin:0 0 10px}.topic-list th,.topic-list td{padding:12px 5px}.topic-list th:first-of-type,.topic-list td:first-of-type{padding-left:10px}.topic-list th:last-of-type,.topic-list td:last-of-type{padding-right:10px}.topic-list th button .d-icon{color:#919191}.topic-list button.bulk-select{padding:0}.topic-list td.bulk-select{padding:10px;width:30px}.topic-list td.bulk-select+.main-link{padding-left:0}.topic-list .badge-notification{position:relative;top:-2px}.topic-list .badge-notification.new-topic{top:-1px;padding-left:5px}.topic-list .posters{width:146px}.topic-list .posters>a{float:left;margin-right:4px}.topic-list .posters>a:last-of-type{margin-right:0}.topic-list .posters>a.posters-more-count{cursor:default;color:#919191;line-height:25px;font-size:.8706em}.topic-list td.posters{height:29px}.topic-list .posters a:first-child .avatar.latest:not(.single){box-shadow:0 0 3px 1px #81c3e4;border:2px solid #85c2e0;position:relative;top:-2px;left:-2px}.topic-list .likes{width:65px}.topic-list .views{width:65px}.topic-list .posts{width:65px}.topic-list .post-actions{clear:both;width:auto;color:#919191;text-align:left;font-size:.8706em;margin-top:5px}.topic-list .post-actions .fa{margin-right:2px}.topic-list .post-actions a{color:#919191;margin-right:3px;line-height:1.4}.topic-list .activity{width:60px}.topic-list .activity:lang(zh_CN){width:80px}.topic-list .activity span{cursor:pointer}.topic-list .age{width:60px}.topic-list .with-year{white-space:nowrap}.topic-list-bottom{margin:20px 0}#list-area .top-lists h2{cursor:pointer;margin:5px 0 10px}#list-area h2{margin:20px 0 10px}#list-area .show-more.has-topics{top:0}#list-area .show-more.has-topics .alert{padding:12px 35px 12px 14px}#bulk-select{position:fixed;right:20px;top:130px;padding:5px;background-color:#fff;z-index:300}button.dismiss-read{float:right;margin-bottom:5px;margin-left:10px}.tags-admin-menu .dropdown-menu{right:0;top:30px;bottom:auto;left:auto}.category-heading p{line-height:1.4;font-size:1.5157em}.category-navigation{clear:both}.category-logo.aspect-image{float:left;margin:0.25em 1em 0.5em 0}.category-logo.aspect-image img{width:auto;max-height:150px}@supports (--custom: property){.category-logo.aspect-image{--max-height: 150px;max-height:var(--max-height);max-width:60%;height:auto;width:calc(var(--max-height) * var(--aspect-ratio))}.category-logo.aspect-image img{width:100%;height:inherit;max-width:initial;max-height:initial}}@media screen and (max-width: 850px){.nav-pills>li>a{font-size:1em;padding:7px 10px}button#create-topic span{display:none}button#create-topic .d-icon{margin-right:0}.topic-list th:first-of-type{padding:12px 5px}.topic-list th,.topic-list td{padding:10px;font-size:1em}.topic-list th.views{display:none}.topic-list td.views{display:none}.topic-list .posts{width:50px}.topic-list .posters{width:30px;text-align:center}.topic-list td.posters a:not(.latest){display:none}.topic-list td.posters a.latest{width:100%}.topic-list td.posters a.latest img{margin:0 auto}}.wrap{max-width:1110px}.full-width{margin-left:0}.topic-post:first-child nav.post-controls .post-admin-menu{bottom:-125px}.topic-body{padding:0}.topic-body .regular{margin-top:15px}.topic-body:first-of-type{border-top:none}.topic-body .reply-to-tab{z-index:2;color:#919191}.discourse-no-touch .topic-body .actions .fade-out{opacity:0.7;transition:background 0.25s, opacity 0.7s ease-in-out}.discourse-touch .topic-body .actions .fade-out{opacity:1}.topic-body:hover .actions .fade-out,.topic-body .selected .actions .fade-out{opacity:1}section.post-menu-area{position:relative;padding-left:11px}.post-links-container{margin-left:11px}nav.post-controls{padding:0}nav.post-controls .double-button{display:inline-flex;color:#bdbdbd;margin-right:0.15em}nav.post-controls .double-button:hover button{background:#e9e9e9;color:#919191}nav.post-controls .double-button button{margin-left:0;margin-right:0}nav.post-controls .double-button button:active{box-shadow:none}nav.post-controls .double-button button.my-likes .d-icon,nav.post-controls .double-button button.read-indicator .d-icon,nav.post-controls .double-button button.regular-likes .d-icon{color:#bdbdbd;padding-left:0.45em}nav.post-controls .double-button button.like.d-hover{background:#fee9ee}nav.post-controls .double-button button.like.d-hover .d-icon{color:#fa6c8d}nav.post-controls .double-button button.has-like .d-icon{color:#fa6c8d}nav.post-controls .double-button button.has-like.d-hover{background:#e9e9e9}nav.post-controls .double-button button.has-like.d-hover .d-icon{color:#919191}nav.post-controls .double-button button[disabled]{cursor:not-allowed}nav.post-controls .double-button button.button-count:not(.my-likes){padding-right:0}nav.post-controls .double-button button.button-count.d-hover{color:#222}nav.post-controls .double-button button.button-count+.toggle-like{padding-left:0.45em}nav.post-controls .double-button button.button-count+.toggle-like.d-hover{background:#e9e9e9}nav.post-controls a,nav.post-controls button{color:#bdbdbd;margin-right:2px;display:inline-block}nav.post-controls a .d-icon,nav.post-controls button .d-icon{opacity:1}nav.post-controls a.toggle-likes{padding:8px 0;margin-right:-3px}nav.post-controls span.badge-posts{margin-right:5px;transition:all linear 0.15s}nav.post-controls .actions{text-align:right;float:right;display:inline-block}nav.post-controls .actions .more-actions{display:none;overflow:hidden}nav.post-controls .show-replies{margin-left:-10px;font-size:inherit}nav.post-controls .show-replies span.badge-posts{color:#919191}nav.post-controls .show-replies:hover{background:#e9e9e9}nav.post-controls .show-replies:hover span.badge-posts{color:#222}nav.post-controls .show-replies .d-icon{margin-left:5px;font-size:.8706em}nav.post-controls button.create{margin-right:0;color:#646464;margin-left:10px}nav.post-controls button.create .d-icon{color:#646464}nav.post-controls .create .d-icon{margin-right:5px}nav.post-controls button{font-size:1.1487em;padding:8px 10px;vertical-align:top;background:transparent;border:none;margin-left:3px}nav.post-controls button.d-hover,nav.post-controls button:focus{background:#e9e9e9;color:#222}nav.post-controls button:active{box-shadow:inset 0 1px 3px rgba(0,0,0,0.4)}nav.post-controls button.hidden{display:none}nav.post-controls button.admin{position:relative}nav.post-controls button.delete.d-hover,nav.post-controls button.delete:hover,nav.post-controls button.delete:focus{background:#e45735;color:#fff}nav.post-controls button.delete.d-hover .d-icon,nav.post-controls button.delete:hover .d-icon,nav.post-controls button.delete:focus .d-icon{color:#fff}nav.post-controls button.bookmark{padding:8px 11px}nav.post-controls button.bookmark.bookmarked .d-icon{color:#08c}nav.post-controls .post-admin-menu{display:inline-flex;flex-direction:column;box-sizing:border-box;background-color:#fff;width:auto;max-width:320px;padding:10px;border:1px solid #e9e9e9;position:absolute;text-align:left;bottom:-2px;right:15px;z-index:300}nav.post-controls .post-admin-menu h3{margin-top:0;color:#222;font-size:1em}nav.post-controls .post-admin-menu ul{list-style:none;margin:10px 0 0 0}nav.post-controls .post-admin-menu li{margin-bottom:5px}nav.post-controls .post-admin-menu li .d-icon{width:14px;margin-right:10px}.embedded-posts{border:1px solid #e9e9e9}.embedded-posts h1,.embedded-posts h2,.embedded-posts h3{margin:10px 0}.embedded-posts .topic-body{box-sizing:border-box;width:calc(100% - 70px);overflow:hidden}.embedded-posts .cooked{margin-top:15px}.embedded-posts .topic-avatar{padding-left:25px;padding-top:15px}.embedded-posts .collapse-down,.embedded-posts .collapse-up{position:absolute;color:#919191;background:#fff;border:1px solid #e9e9e9;padding:6px 9px 8px;z-index:99}.embedded-posts .collapse-down .d-icon,.embedded-posts .collapse-up .d-icon{color:currentColor}.discourse-no-touch .embedded-posts .collapse-down:hover,.discourse-no-touch .embedded-posts .collapse-up:hover{background:#e9e9e9;color:#646464}.discourse-no-touch .embedded-posts .collapse-down:hover .d-icon,.discourse-no-touch .embedded-posts .collapse-up:hover .d-icon{color:currentColor}.embedded-posts.bottom{border-top:none;margin-bottom:20px;margin-left:11px}.embedded-posts.bottom.hidden{display:block;opacity:0}.embedded-posts.bottom .collapse-up{transform:translate(-50%, -164%)}.embedded-posts.bottom .row{padding-bottom:0.5em}.embedded-posts.bottom .row .topic-avatar,.embedded-posts.bottom .row .topic-body{border-top:1px solid #e9e9e9}.embedded-posts.top{border-bottom:none;margin-left:56px;width:699px}.embedded-posts.top .collapse-down{transform:translate(-50%, 55%)}.embedded-posts.top .row{border-bottom:none}.embedded-posts.top .row .topic-avatar,.embedded-posts.top .row .topic-body{border-top:1px solid #e9e9e9}.embedded-posts.top.topic-body{padding:0}.embedded-posts .post-date{color:#919191}.embedded-posts .d-icon-arrow-up,.embedded-posts .d-icon-arrow-down{margin-left:5px}.embedded-posts .reply:first-of-type .row{border-top:none}.embedded-posts .topic-meta-data{position:relative}.embedded-posts .topic-meta-data h5{position:absolute;z-index:1;font-size:.8706em}.embedded-posts .topic-meta-data h5 a{font-weight:bold;color:#bdbdbd}.embedded-posts .arrow{color:#919191}.post-action .relative-date{margin-left:5px}.post-action .avatar{margin-right:2px}.topic-map{margin:20px 0 20px 11px}.topic-map .map .secondary{text-align:center}.topic-map .map li{float:left;padding:7px 10px}.topic-map .map li:last-of-type{border-right:0}.topic-map .map li:nth-child(3){text-align:center}.topic-map .map .number{color:#646464}.topic-map .map .number,.topic-map .map .d-icon{font-size:1.3195em;line-height:1.2}.topic-map .map button .d-icon,.topic-map .map button:hover .d-icon{color:#646464}.topic-map .map .avatar a{float:left}.topic-map .map .topic-map-post{margin-top:6px}.topic-map .avatars,.topic-map .links,.topic-map .information{padding:7px 10px 7px 10px;color:#222}.topic-map .buttons{float:right}.topic-map .buttons .btn{border:0;padding:0 23px;color:#919191;background:#f9f9f9;border-left:1px solid #e9e9e9;border-top:1px solid transparent}.topic-map .buttons .btn:hover{color:#222;background:#e9e9e9}.topic-map .buttons .btn.collapsed{padding-bottom:1px}.topic-map .buttons .btn .fa{margin:0;font-size:1.3195em;line-height:52px}.topic-map .link-summary .btn{color:#919191;background:#f9f9f9;width:100%}.topic-map .link-summary .btn:hover{color:#222;background:#e9e9e9}#topic-footer-buttons{padding:10px 10px 0 0;float:left}#topic-footer-buttons .btn{margin-bottom:5px;margin-right:10px}#topic-footer-buttons .btn .d-icon-bookmark.bookmarked{color:#08c}#topic-footer-buttons .bookmark.bookmarked .d-icon-bookmark{color:#08c}#topic-footer-buttons .feature-on-profile.featured-on-profile .d-icon-id-card{color:#08c}#topic-footer-button{width:757px}.suggested-topics{clear:left;padding:20px 0 15px 0}.suggested-topics table{margin-top:10px}.suggested-topics .topic-statuses .topic-status{padding:0}.suggested-topics .topic-statuses .topic-status .d-icon{font-size:1em}span.post-count{background:#222;color:#fff;opacity:0.8}button.expand-post{margin-top:10px;margin-left:11px}.quote-button.visible{display:block}iframe{max-width:100%}video{max-height:500px}.video{max-height:500px}.video>video{max-height:unset}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.open>.dropdown-menu{display:block}.btn-group{position:relative}.dropdown-toggle{float:left;position:relative}.deleted .topic-body{background-color:rgba(242,171,154,0.7)}.post-select{float:right;margin-right:20px;margin-top:-20px}.deleted-user-avatar{font-size:2.296em}.info-line{margin:10px 0;color:#222}blockquote{margin-left:0;margin-right:0;padding:12px}.quote>blockquote .onebox-result{background-color:#f8f8f8}.quote aside .quote,.quote aside .title,.quote aside blockquote,.quote aside .onebox,.quote aside .onebox-result{background:#f8f8f8;border-left:5px solid #e9e9e9}.quote aside aside.quote>blockquote,.quote aside aside.quote>.title{border-left:0}.topic-body{width:calc(690px + (11px * 2));float:left;position:relative;border-top:1px solid #e9e9e9;padding:12px 0 0 0}.topic-body .topic-meta-data,.topic-body .cooked{padding:0 11px 0.25em 11px}.topic-body a.expand-hidden{padding-left:11px}.topic-avatar{border-top:1px solid #e9e9e9;padding-top:15px;width:45px;float:left;z-index:2}.gap{width:calc( 45px + 690px + 2 * 11px)}.time-gap+.topic-post .topic-body,.time-gap+.topic-post .topic-avatar{border-top:none}.time-gap+.topic-post .embedded-posts.top{border-bottom:1px solid #e9e9e9}.posts-wrapper{position:relative;-webkit-font-smoothing:subpixel-antialiased}.dropdown{position:relative}.caret{display:inline-block;width:0;height:0;vertical-align:middle;border-top:4px solid #222;border-right:4px solid transparent;border-left:4px solid transparent;content:\"\";margin-left:5px}.dropdown-menu{position:absolute;bottom:115%;left:0;z-index:300;display:none;float:left;width:550px;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #e9e9e9;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);background-clip:padding-box}.dropdown-menu span{font-size:.8706em;color:#919191}.dropdown-menu span.title{font-weight:bold;display:block;font-size:1em;color:#222}.dropdown-menu a{display:block;padding:9px;clear:both;font-weight:normal;line-height:1.2;color:#222;transition:all linear 0.15s}.dropdown-menu a>div{margin-left:26px}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#222;text-decoration:none;background-color:#ffffa6}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{text-decoration:none;color:#222;background-color:#d1f0ff;cursor:default}.dropdown-menu .icon{margin-top:3px;float:left;font-size:1.3195em}.open>.dropdown-menu{display:block;clear:both}.selected-posts{width:200px;position:fixed;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15);padding:0.714em;margin-bottom:5px;right:10px}@media screen and (min-width: 1140px){.selected-posts{right:auto;margin-left:330px;left:50%}}.selected-posts button{width:100%;margin:4px auto;display:inline-block;text-align:left}.selected-posts.hidden{display:none}.selected-posts .controls{margin-top:10px}.selected-posts p{font-size:.8706em;margin:0 0 10px 0}.selected-posts p.cancel{margin:10px 0 0 0}.selected-posts h3{font-size:1.7511em;color:#222;margin-bottom:5px}.selected-posts h3 .d-icon{margin-right:7px}a.attachment:before{display:inline-block;margin-right:4px;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14px' height='16px' viewBox='0 0 512 512' fill='%2308c'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z'%3E%3C/path%3E%3C/svg%3E\");vertical-align:middle}.topic-meta-data{align-items:center}.topic-meta-data .names{display:flex;align-items:center}.topic-meta-data:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.topic-meta-data .post-info a{color:#919191}.topic-meta-data .post-info a.wiki{color:green}.who-liked,.who-read{margin-top:20px;margin-bottom:0;width:100%;text-align:right}span.highlighted{background-color:#d1f0ff}.first.new-user:not(.staff) a{color:#bdbdbd}.read-state{position:absolute;align-self:center;color:#6cf;right:0;font-size:0.571em}.read-state.read{visibility:hidden;opacity:0;transition:visibility 1s, opacity ease-out 1s}.signup-cta{width:690px}@media all and (max-width: 790px){.topic-avatar{width:45px}.topic-post .reply-to-tab{right:15%}.topic-body{box-sizing:border-box;width:calc(100% - 47px)}.embedded-posts.top{width:calc(100% - 56px)}}.post-actions{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;clear:both;text-align:right;margin-bottom:10px}.post-actions .post-action{display:inline-block;margin-left:10px;margin-top:10px}.post-menu-area{margin:20px 0}#topic-title{z-index:1;padding-top:14px;margin-bottom:10px}#topic-title #edit-title,#topic-title .category-chooser,#topic-title .edit-controls{width:500px}#topic-title h1{font-size:1.7511em;line-height:1.2;overflow:hidden;width:100%}#topic-title h1 a{color:#222}#topic-title .remove-featured-link{float:right;text-transform:lowercase;color:#919191;font-size:0.857rem}.topic-error,.topic-notice{padding:18px;width:60%;margin-left:auto;margin-right:auto;font-size:1.7511em;text-align:center;line-height:1.2}.topic-error .topic-retry,.topic-error .topic-join-group,.topic-notice .topic-retry,.topic-notice .topic-join-group{display:block;margin-top:28px;margin-left:auto;margin-right:auto}.topic-status-info{border-top:1px solid #e9e9e9;padding:10px 0;max-width:758px}.topic-status-info .topic-timer-heading{display:flex;align-items:center;margin:0px}.topic-status-info .topic-timer-remove{font-size:.7579em;background:transparent;margin-left:auto}#topic-progress-wrapper{position:fixed;right:1em;bottom:0;z-index:100}#topic-progress-wrapper.docked{position:absolute;bottom:-70px}#topic-progress-expanded{border:1px solid #e9e9e9;padding:5px;background:#fff;position:relative;left:340px;width:135px}#topic-progress-expanded button.full{width:100%;margin-bottom:5px}#topic-progress-expanded button.full .d-icon{display:block;margin-top:2px;margin-bottom:2px;font-size:1.3195em}#topic-progress-expanded .jump-form input[type=\"text\"]{float:left;width:45px;height:20px;text-align:center;margin-bottom:0;font-size:1.1487em}#topic-progress-expanded .jump-form button.btn{float:right;width:55px}#topic-progress-expanded button.btn.jump-prompt{margin:0}#topic-progress-expanded button.btn.jump-bottom{margin:5px 0 0 0}#topic-progress{position:relative;left:340px;background-color:#fff;color:#08c;border:1px solid #d1f0ff;border-bottom:none;width:145px;height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#topic-progress.hidden{display:none}#topic-progress:hover{cursor:pointer}#topic-progress .nums{position:relative;top:9px;width:100%;text-align:center;z-index:1}#topic-progress .d-icon{position:absolute;right:8px;bottom:9px;z-index:1}#topic-progress h4{display:inline;font-size:1.3195em;line-height:1}#topic-progress .bg{position:absolute;top:0;bottom:0;width:0;max-width:145px;border-right:1px solid #d1f0ff;background-color:#d1f0ff;transition:width 0.75s}#topic-filter{background-color:#ffffa6;padding:8px;bottom:0;position:fixed;width:100%;font-size:1em;z-index:300}@media all and (min-width: 400px){#topic-progress,#topic-progress-expanded{right:0;left:0}#topic-progress-wrapper{right:19vw}#topic-progress-wrapper.docked{right:19vw}#topic-footer-main-buttons{max-width:70%}}@media all and (max-width: 485px){#topic-progress-wrapper.docked{display:none}#topic-footer-main-buttons{max-width:100%}}.upload-selector label{display:inline-block;padding-left:10px}.upload-selector .radios{min-height:60px;display:flex;align-items:flex-start}.upload-selector .radios label{flex:1 0 auto;margin-right:1em;margin-top:1px}.upload-selector .radios .inputs{width:100%}.upload-selector .radios .inputs input{width:90%;margin:0 0 5px 0}.upload-selector .radios .inputs input[type=\"file\"]{font-size:1em;line-height:1.2}.upload-selector .radios .inputs .description,.upload-selector .radios .inputs .hint{color:#919191;display:block}.upload-selector .radios .inputs .hint{font-style:italic;margin:5px 0 0 0}.upload-selector .radios .inputs .label{margin:0 0 5px 0}.upload-selector .radios:last-child:not(:nth-child(2)){min-height:20px}.uploaded-image-preview{height:270px;width:400px;max-height:150px;margin-bottom:10px}.user-content-wrapper>.alert:first-child,.user-content-wrapper>.user-stream>.alert:first-child{margin-top:10px}.user-content-wrapper .show-mores{position:absolute}.form-horizontal .control-group.category{margin-top:18px}.user-profile-hidden{font-size:1.5em;text-align:center}.user-secondary-navigation{min-width:150px}.user-secondary-navigation .nav-stacked{background-color:transparent}.user-secondary-navigation .nav-stacked li{border-bottom:none}.user-secondary-navigation .nav-stacked li.archive{padding-left:1.4em}.user-secondary-navigation .nav-stacked a{color:#919191}.user-secondary-navigation .nav-stacked a.active{color:#222;font-weight:bold;background-color:transparent}.user-secondary-navigation .nav-stacked a.active:after{display:none}.user-content{padding-bottom:12px;margin-bottom:12px;background-color:#fff;box-sizing:border-box}.user-content.user-badges-list{display:flex;flex-wrap:wrap}.user-content .btn.right{float:right}.user-content h2{margin-bottom:10px}.pref-avatar .avatar{max-width:90px;max-height:90px}.pref-second-factor{margin-top:10px}.user-invite-list{width:100%;margin-top:15px}.user-invite-list tr td{padding:0.667em}.user-invite-search{clear:both;margin:15px 0px -15px 0px}.user-invite-none{padding:15px 0}.user-main{margin-bottom:50px}.user-main .about.group .details{padding:15px 0;margin:0;color:#3c3c3c}.user-main .about .details img.avatar{margin:0 20px 10px 0}.user-main .about .details .primary .primary-textual{padding:0 4px 4px}.user-main .about .details .primary .primary-textual a[href]{text-decoration:underline}.user-main .about .details .primary .primary-textual h1{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details .primary .primary-textual .location-and-website{display:flex;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details .primary .primary-textual .location-and-website .user-profile-location{margin-right:1em}.user-main .about .details .primary .bio{max-width:750px}.user-main .about .details .primary .bio a.mention{text-decoration:none}.user-main .about .details .secondary{margin-top:16px}.user-main .about.has-background .user-profile-image{height:300px}.user-main .about.has-background .details{box-sizing:border-box;width:100%;padding:15px 0 0 0;bottom:0}.user-main .about .controls{padding:0 0 12px 0;float:right;text-align:right}.user-main .about .controls .btn{min-width:140px}.user-main .about.collapsed-info .user-profile-image{display:none}.user-main .about.collapsed-info .controls{width:auto}.user-main .about.collapsed-info .controls>ul{display:inline-flex}.user-main .about.collapsed-info .controls>ul>li{display:inline;margin-left:12px}.user-main .about.collapsed-info .controls>ul>li .d-button-label{line-height:1}.user-main .about.collapsed-info .controls>ul a{margin-bottom:10px;width:auto}.user-main .about.collapsed-info .details{position:relative;padding:0;margin-top:0;border-bottom:1px solid #e9e9e9}.user-main .user-field input[type=\"text\"]{width:530px}.user-main .user-field .controls .instructions{display:block}.user-main .public-user-fields{overflow:hidden}.user-preferences{padding-top:10px;padding-left:30px}.user-preferences .form-vertical{width:500px;max-width:100%}.user-preferences h3{color:#222;margin:20px 0 10px 0}.user-preferences .category-selector,.user-preferences .tag-chooser,.user-preferences textarea,.user-preferences input.user-selector,.user-preferences .user-chooser{width:100%}.user-preferences .instructions{display:inline-block;margin-top:4px}.user-crawler .username{margin-left:5px;display:inline-block}.modal.history-modal .modal-inner-container{max-width:1110px}.modal.history-modal .modal-body{height:70vh}.modal.history-modal #revision-controls .btn[disabled]{cursor:not-allowed;background-color:#e9e9e9}.modal.history-modal #revision-controls .btn-danger[disabled]{background-color:#ec8972}.modal.history-modal #revision{display:flex;justify-content:space-between}.modal.history-modal #revisions{word-wrap:break-word}.modal.history-modal #revisions table{margin-top:10px}.modal.history-modal img{max-width:670px;height:auto}.modal.history-modal .inline-diff{width:670px}.modal.history-modal .markdown{font-family:monospace;font-size:.8706em;width:100%;border-collapse:collapse;border-spacing:0}.modal.history-modal .markdown td{width:50%;vertical-align:top;max-width:440px;word-wrap:break-word;white-space:pre-wrap}.modal.history-modal .revision-content img,.modal.history-modal .markdown img{max-width:100%;box-sizing:border-box}.modal.history-modal .modal-header{height:42px}.modal.history-modal .modal-footer{display:flex;justify-content:space-between}.group-nav .group-dropdown{margin-right:10px}.group-info{margin-bottom:20px}.group-navigation{width:15%;background-color:transparent}.group-navigation li{border:none}.group-navigation li a{color:#919191;padding:8px 0}.group-navigation li a.active{background-color:transparent;font-weight:bold;color:#222}.group-navigation li a.active:after{display:none}.group-activity-outlet,.group-messages-outlet,.group-manage-outlet{width:85%}.group-manage .form-horizontal button{float:none}.group-details-button{position:absolute;top:20px;right:20px}.admin-customize .show-current-style{padding-left:2%;width:68%}.admin-customize .show-current-style .title input{width:80%}.admin-customize .themes-list{width:28%}.user-card,.group-card{position:absolute;z-index:200}.user-card.fixed,.group-card.fixed{position:fixed;z-index:1001}.user-card.docked-card,.group-card.docked-card{z-index:1001}.user-card .first-row .names,.group-card .first-row .names{flex:1 1 auto}.user-card .first-row .usercard-controls button,.group-card .first-row .usercard-controls button{min-width:150px}.user-card h1 .d-icon,.group-card h1 .d-icon{font-size:.8706em}.user-card h2,.group-card h2{font-size:1.1487em}.user-card h3,.group-card h3{font-size:1em}.user-card .badge-section .user-badge,.user-card .badge-section .more-user-badges a{display:block;max-width:185px;margin:0 0.5em 0 0}.user-card .badge-section .more-user-badges{max-width:125px}.user-info.medium{flex:0 0 32%;margin:0 2% 4vh 0;display:flex}.user-info.medium:nth-of-type(3n){margin-right:0}@media screen and (max-width: 800px){.user-info.medium{flex:0 0 48%;margin-right:0}}.user-info.medium .user-image{width:55px;margin-right:0}.user-stream .item,.user-stream .user-stream-item{padding:1em 0.53em}.user-stream .time,.user-stream .delete-info,.user-stream .draft-type{margin-right:8px}.user-stream .notification.unread{background-color:#d1f0ff}\n\n/*# sourceMappingURL=desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1001,
          "bodySize": 293694,
          "_transferSize": 294695
        },
        "cache": {},
        "timings": {
          "blocked": 6.622000003818423,
          "dns": 0.01100000000000012,
          "ssl": 187.98000000000002,
          "connect": 368.41,
          "send": 7.2029999999999745,
          "wait": 447.79800000182354,
          "receive": 3566.2089999823365,
          "_blocked_queueing": 2.2250000038184226
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739991"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.630Z",
        "time": 832.9009999981988,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 751,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "0b5c9104-5fad-4f8f-bc51-8e9278e4173c"
            },
            {
              "name": "X-Runtime",
              "value": "0.031613"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 992,
            "mimeType": "text/css",
            "compression": -12,
            "text": "details{position:relative}details>*,details .lightbox-wrapper{display:none}details,summary{outline:none}summary:first-of-type{cursor:pointer;display:block}summary:before{content:\"\\25BA\";margin-right:0.25em}details[open]>*,details[open] .lightbox-wrapper{display:block}details[open]>summary:before,details.open>summary:before{content:\"\\25BC\"}details[open]>summary:first-of-type ~ *,details.open>summary:first-of-type ~ *{display:block}summary::-webkit-details-marker{display:none}.elided summary:before{content:\"\" !important;display:none}.elided summary{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;margin:0;padding:0;color:#919191;background:#e9e9e9;border:1px solid #bdbdbd;width:1.5em;line-height:1}.elided summary:hover{color:#222;background:#bdbdbd;border-color:currentColor}\n\n/*# sourceMappingURL=discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1021,
          "bodySize": 1004,
          "_transferSize": 2025
        },
        "cache": {},
        "timings": {
          "blocked": 4.884999991610647,
          "dns": 0.010000000000000231,
          "ssl": 188.022,
          "connect": 371.71,
          "send": 5.331000000000017,
          "wait": 443.49300000908227,
          "receive": 7.471999997505918,
          "_blocked_queueing": 2.0169999916106462
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.630Z",
        "time": 833.767999993395,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 753,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "795483b1-4968-48f7-9147-9f8e45ffe0ad"
            },
            {
              "name": "X-Runtime",
              "value": "0.024260"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 132,
            "mimeType": "text/css",
            "compression": -11,
            "text": ".btn.ldap{background-color:#517693}\n\n/*# sourceMappingURL=discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1025,
          "bodySize": 143,
          "_transferSize": 1168
        },
        "cache": {},
        "timings": {
          "blocked": 5.276000000381842,
          "dns": 0.009999999999999787,
          "ssl": 189.91599999999997,
          "connect": 373.17,
          "send": 3.15300000000002,
          "wait": 445.4080000140369,
          "receive": 6.750999978976324,
          "_blocked_queueing": 1.7850000003818423
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.631Z",
        "time": 837.5870000185538,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 755,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "4a683424-85ca-4665-ad40-501f58596932"
            },
            {
              "name": "X-Runtime",
              "value": "0.029210"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 7074,
            "mimeType": "text/css",
            "compression": -13,
            "text": ".discourse-local-date.cooked-date{color:#222;cursor:pointer;border-bottom:1px dashed #919191;white-space:nowrap}.discourse-local-date.cooked-date .d-icon{color:#222}.discourse-local-date.cooked-date.past{border-bottom-color:#bdbdbd}.discourse-local-date.cooked-date.past[data-countdown]{color:#919191}#d-popover .locale-dates-previews{max-width:360px}#d-popover .locale-dates-previews .preview{display:flex;flex-direction:column;padding:5px}#d-popover .locale-dates-previews .preview .timezone{font-weight:700}#d-popover .locale-dates-previews .preview.current{background:#d1f0ff}.discourse-local-dates-create-modal-footer{display:flex;align-items:center;justify-content:flex-start}.discourse-local-dates-create-modal-footer:before,.discourse-local-dates-create-modal-footer:after{content:none}.discourse-local-dates-create-modal-footer .cancel-action{margin:0 5px 5px 0}.discourse-local-dates-create-modal-footer .btn+.cancel-action{margin-left:1em}.discourse-local-dates-create-modal-footer .advanced-mode-btn{margin-left:auto}.discourse-local-dates-create-modal{box-sizing:border-box;min-height:320px;display:flex;flex-direction:row;padding:0.5em}.discourse-local-dates-create-modal .picker-panel{padding:5px;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .date-picker{display:flex;flex-direction:column;width:auto;box-sizing:border-box}.discourse-local-dates-create-modal .date-picker .pika-single{position:relative !important;flex:1;display:flex;border:0}.discourse-local-dates-create-modal .form{flex:1 0 0px}.discourse-local-dates-create-modal .form label{font-weight:700}.discourse-local-dates-create-modal .form .date-time-configuration{display:flex}.discourse-local-dates-create-modal .form .date-time-configuration .fake-input{display:none}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input{width:100%}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input.is-expanded .select-kit-header{border:1px solid #919191}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header{padding:0.5em 0.5em;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header .d-icon{margin-right:1em}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header .caret-icon{margin-right:0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control{position:relative;display:flex;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-filled .date-time,.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-selected .date-time{color:#222;background:#fff}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-filled .d-icon,.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-selected .d-icon{color:#646464}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from{border-radius:5px 5px 0 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from .date-time{border-radius:5px 5px 0 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from.is-selected{border-color:#08c}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to{border-radius:0 0 5px 5px;margin-bottom:1em}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to .date-time{border-radius:0 0 5px 5px;padding-right:3em}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to.is-selected{border-color:#08c}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .date-time{color:#919191;background:#f8f8f8}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .d-icon{position:absolute;margin-top:auto;margin-bottom:auto;left:0.5em;top:0;bottom:0;color:#919191}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .delete-to-date{position:absolute;margin-top:auto;margin-bottom:auto;right:0;width:30px;top:0;bottom:0;color:#646464;border-radius:0 0 5px 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .date-time{padding:1em 0.5em 1em 2em;border:0;outline:none;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;text-align:left}.discourse-local-dates-create-modal .form .date-time-configuration .inputs-panel{flex:1}.discourse-local-dates-create-modal .form .date-time-configuration .picker-panel{z-index:1;background:#fff;width:200px;box-sizing:border-box;margin-left:1em}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers{display:flex;justify-content:center;flex:1;margin-top:1em;align-items:center;padding:0.25em;border-top:1px solid #bdbdbd;box-sizing:border-box}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers .d-icon{color:#919191}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers .time-picker{outline:none;box-shadow:none;margin:0;box-sizing:border-box;width:100%;border:0}.discourse-local-dates-create-modal .form .preview{text-align:center;margin-top:0;margin-bottom:0.5em;display:flex;align-items:center;padding:0.5em;flex-wrap:wrap}.discourse-local-dates-create-modal .form .preview b{margin-right:0.5em}.discourse-local-dates-create-modal .form .preview b+p{margin:0;display:inline-block}.discourse-local-dates-create-modal .form .recurrence .recurrence-input{width:300px}.discourse-local-dates-create-modal .validation-error{margin-bottom:0.5em}.discourse-local-dates-create-modal .format .format-input{width:280px}.discourse-local-dates-create-modal .formats{list-style:none;padding:0;margin:0}.discourse-local-dates-create-modal .formats .format .previewed-format{color:#919191}.discourse-local-dates-create-modal .control-group.recurrence,.discourse-local-dates-create-modal .control-group.format,.discourse-local-dates-create-modal .control-group.timezones{margin-top:1em}.discourse-local-dates-create-modal .timezones-input{width:99%}html:not(.mobile-view) .fixed-modal .discourse-local-dates-create-modal.modal-body{width:600px;max-height:400px !important}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body{max-height:400px !important}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .date-time-configuration{flex-direction:column}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .picker-panel{width:100%;margin:0 0 1em 0}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .picker-panel .pika-single{justify-content:center}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .time-picker{padding-top:6px}\n\n/*# sourceMappingURL=discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1029,
          "bodySize": 7087,
          "_transferSize": 8116
        },
        "cache": {},
        "timings": {
          "blocked": 3.7300000086426737,
          "dns": 0.01499999999999968,
          "ssl": 188.757,
          "connect": 376.39500000000004,
          "send": 1.183999999999969,
          "wait": 440.8170000050254,
          "receive": 15.446000004885718,
          "_blocked_queueing": 1.5300000086426735
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739969"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.631Z",
        "time": 1048.194999981206,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 752,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "f522e171-5654-4e71-8288-b287458f5d33"
            },
            {
              "name": "X-Runtime",
              "value": "0.019525"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1356,
            "mimeType": "text/css",
            "compression": -12,
            "text": ".presence-users{background-color:#fff;color:#919191;display:flex}.presence-users span.presence-text{margin-left:5px;margin-right:2px;flex:0 0 auto;padding-top:3px}.presence-users .presence-avatars{display:flex;overflow:hidden;flex-wrap:wrap}.presence-users .wave{flex:0 0 auto}.presence-users .wave .dot{display:inline-block;animation:wave 1.8s linear infinite}.presence-users .wave .dot:nth-child(2){animation-delay:-1.6s}.presence-users .wave .dot:nth-child(3){animation-delay:-1.4s}@keyframes wave{0%,60%,100%{transform:initial}30%{transform:translateY(-0.2em)}}.composer-fields .presence-users{position:absolute;top:20px;right:95px}@media screen and (max-width: 800px){.composer-fields .presence-users{max-width:318px}.composer-fields .presence-users .presence-avatars{flex-wrap:nowrap}}.mobile-view .presence-users{font-size:.8706em}.mobile-view .composer-fields .presence-users{top:7px;right:65px;max-width:70px}.mobile-view .composer-fields .presence-users .presence-avatars{flex-wrap:nowrap}.mobile-view .composer-fields .presence-users .description{display:none}.rtl span.presence-text{margin-left:2px;margin-right:5px}.rtl .composer-fields .presence-users{right:unset;left:95px}.rtl.mobile-view .composer-fields .presence-users{right:unset;left:65px}\n\n/*# sourceMappingURL=discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1023,
          "bodySize": 1368,
          "_transferSize": 2391
        },
        "cache": {},
        "timings": {
          "blocked": 835.7269999943934,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.30299999999999727,
          "wait": 211.40499999145982,
          "receive": 0.7599999953527004,
          "_blocked_queueing": 1.229999994393438
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.632Z",
        "time": 1055.7079999998678,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 750,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "b019fa00-cad8-4208-957a-d6ad52e23b3d"
            },
            {
              "name": "X-Runtime",
              "value": "0.014640"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 940,
            "mimeType": "text/css",
            "compression": -12,
            "text": ".select-kit.solved-status-filter{min-width:auto}.post-controls span:not(.d-button-label){display:inline-flex;align-items:baseline}.fa.accepted{color:green}.post-controls .accepted .d-button-label,.post-controls .unaccepted .d-button-label{margin-left:7px}.post-controls .accepted .d-icon,.post-controls .accepted .d-button-label{color:green}.discourse-no-touch .post-controls .accepted .d-icon,.discourse-no-touch .post-controls .accepted .d-button-label{color:green}.post-controls span.accepted-text{padding:8px 10px;font-size:1.1487em}.post-controls span.accepted-text span{display:inline-block}.post-controls span.accepted-text .accepted-label{margin-left:7px}.mobile-view .solved-panel{margin-bottom:15px}.solved-panel{margin-top:20px;margin-bottom:0px;font-size:13px}.solved-panel .by{display:none}aside.quote .title.title-only{padding:12px}\n\n/*# sourceMappingURL=discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1019,
          "bodySize": 952,
          "_transferSize": 1971
        },
        "cache": {},
        "timings": {
          "blocked": 835.7589999996126,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.22000000000002728,
          "wait": 219.08800000880842,
          "receive": 0.6409999914467335,
          "_blocked_queueing": 1.0089999996125698
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.632Z",
        "time": 1058.896000002278,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 741,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "a1e89be5-ddec-4c1a-8b5d-a8f7c5afc76d"
            },
            {
              "name": "X-Runtime",
              "value": "0.021465"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2133,
            "mimeType": "text/css",
            "compression": -12,
            "text": "/*!\n* lazyYT (lazy load YouTube videos)\n* v1.0.1 - 2014-12-30\n* (CC) This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.\n* http://creativecommons.org/licenses/by-sa/4.0/\n* Contributors: https://github.com/tylerpearson/lazyYT/graphs/contributors || https://github.com/daugilas/lazyYT/graphs/contributors\n*/.lazyYT-container{position:relative;z-index:1;display:block;height:0;padding:0 0 56.25% 0;overflow:hidden;background-color:#000000;margin-bottom:12px}.lazyYT-container iframe{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.lazyYT-container .html5-info-bar{position:absolute;top:0;z-index:935;width:100%;height:30px;overflow:hidden;font-family:Arial, Helvetica, sans-serif;font-size:12px;color:#fff;background-color:rgba(0,0,0,0.8);-webkit-transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1);-moz-transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1)}.lazyYT-container .html5-title{padding-right:6px;padding-left:12px}.lazyYT-container .html5-title-text-wrapper{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-wrap:normal;white-space:nowrap}.lazyYT-container .html5-title-text{width:100%;font-size:13px;line-height:30px;color:#ccc;text-decoration:none}.lazyYT-container .html5-title-text:hover{color:#fff;text-decoration:underline}.ytp-thumbnail{padding-bottom:inherit;cursor:pointer;background-position:50% 50%;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.ytp-large-play-button{position:absolute;top:50% !important;left:50% !important;width:86px !important;height:60px !important;padding:0 !important;margin:-29px 0 0 -42px !important;font-size:normal !important;font-weight:normal !important;line-height:1 !important;opacity:.9}.ytp-large-play-button-svg{opacity:.9;fill:#1f1f1f}.lazyYT-image-loaded:hover .ytp-large-play-button-svg,.ytp-large-play-button:focus .ytp-large-play-button-svg{opacity:1;fill:#cc181e}\n\n/*# sourceMappingURL=lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1001,
          "bodySize": 2145,
          "_transferSize": 3146
        },
        "cache": {},
        "timings": {
          "blocked": 837.1540000163317,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.25499999999999545,
          "wait": 220.78099999432266,
          "receive": 0.7059999916236848,
          "_blocked_queueing": 0.7360000163316727
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739969"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.633Z",
        "time": 1230.7240000227466,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 738,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "90107a5c-1109-4865-9859-2c08a8f5fc53"
            },
            {
              "name": "X-Runtime",
              "value": "0.010577"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3617,
            "mimeType": "text/css",
            "compression": -12,
            "text": "div.poll{margin:1em 0;border:1px solid #e9e9e9;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.poll ul,div.poll ol{margin:0;padding:0;list-style:none;display:inline-block;width:100%}div.poll li{cursor:pointer;font-size:1.1487em}div.poll li[data-poll-option-id]{color:#222;padding:0.5em 0;word-break:break-word}div.poll img{max-width:100% !important;height:auto}div.poll .poll-info{color:#919191;vertical-align:middle;padding:1em 0}div.poll .poll-info .info-label{font-size:1.7511em;line-height:1.2}div.poll .poll-info .info-text{margin:0.25em 0;display:block}div.poll .poll-container{vertical-align:middle;padding:0.5em 1em}div.poll .poll-container .poll-results-number-rating{font-size:2em}div.poll .poll-buttons .info-text{margin:0.25em 0;color:#919191}div.poll .poll-buttons .info-text+.info-text,div.poll .poll-buttons button+.info-text{margin-left:0.5em}div.poll .poll-voters:not(:empty){margin-bottom:0.25em}div.poll .poll-voters:not(:empty) li{display:inline}div.poll .poll-voters-toggle-expand{width:100%;text-align:center}div.poll .results>li{cursor:default;padding:0.25em 0}div.poll .results>li:last-child{padding-bottom:0}div.poll .results .option p{margin:0}div.poll .results .percentage{float:right;color:#919191;margin-left:0.25em}div.poll .results .bar-back{background:#e9e9e9}div.poll .results .bar{height:0.75em;background:#919191}div.poll .results .chosen .bar{background:#08c}div.poll[data-poll-type=\"number\"] li[data-poll-option-id]{display:inline-block;width:3.25em;margin-right:0.25em}div.poll .pie-chart-legends{text-align:center;margin:10px 0}div.poll .pie-chart-legends .legend{display:inline-block;margin:4px 0 4px 14px}div.poll .pie-chart-legends .legend .swatch{display:inline-block;width:24px;height:12px;margin-right:4px}div.poll .poll-grouped-pies-controls{display:flex;justify-content:space-between}div.poll .poll-results-chart{height:310px;overflow-y:auto;overflow-x:hidden}div.poll .poll-group-by-toggle{margin-bottom:10px}div.poll .poll-group-by-selector{height:30px}div.poll .poll-grouped-pie-container{display:inline-block;position:relative;padding:15px 0}div.poll .poll-grouped-pie-container .poll-pie-label{display:block;text-align:center}div.poll.pie .poll-container{display:inline-block;height:310px;max-height:310px;overflow-y:auto}div.poll.pie .poll-container .poll-grouped-pie-container{width:50%}div.poll.pie .poll-info{display:inline-block;width:150px}body.crawler .poll .poll-info,body.crawler .poll .poll-button{display:none}.poll-ui-builder-form{display:flex;margin:0}.poll-ui-builder-form .options{flex-shrink:0;width:280px}.poll-ui-builder-form .combo-box{min-width:180px;width:180px}.poll-ui-builder-form .d-editor-preview{margin-left:20px;width:360px}.poll-ui-builder-form label{font-weight:bold;display:inline}.poll-ui-builder-form .tip{display:block;margin-bottom:15px;margin-top:5px;font-size:.8706em}.poll-ui-builder-form .poll-select{margin-bottom:10px;display:flex;align-items:center}.poll-ui-builder-form .input-group-label{min-width:85px}.poll-ui-builder-form .input-group{display:flex;justify-content:space-between}.poll-ui-builder-form .poll-number{margin:10px 0;display:flex;align-items:center}.poll-ui-builder-form .poll-number input{width:70px}.poll-ui-builder-form .poll-textarea{flex-direction:column}.poll-ui-builder-form .poll-textarea textarea{width:100%;height:90px;box-sizing:border-box}.poll-ui-builder-form .poll-select+.poll-textarea{margin-top:10px}.poll-ui-builder-form .poll-checkbox,.poll-ui-builder-form .poll-date{margin-top:5px}\n\n/*# sourceMappingURL=poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 995,
          "bodySize": 3629,
          "_transferSize": 4624
        },
        "cache": {},
        "timings": {
          "blocked": 1010.9520000084043,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.08799999999996544,
          "wait": 216.2270000009015,
          "receive": 3.4570000134408474,
          "_blocked_queueing": 0.9490000084042549
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739952"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.633Z",
        "time": 1257.6000000117347,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 746,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "59796509-9a6d-4fcc-b243-fd9ffda2fee7"
            },
            {
              "name": "X-Runtime",
              "value": "0.010005"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1247,
            "mimeType": "text/css",
            "compression": -12,
            "text": "div.poll{display:table;width:100%;box-sizing:border-box}div.poll .poll-info{min-width:150px;width:100%;display:table-cell;text-align:center}div.poll .poll-info .info-number{font-size:3.5em}div.poll .poll-info p{margin:0.5em 0}div.poll .poll-info .info-label{display:block}div.poll .poll-container{display:table-cell;width:100%;border-right:1px solid #e9e9e9}div.poll .poll-buttons{border-top:1px solid #e9e9e9;padding:1em}div.poll .poll-buttons .info-text{line-height:2em}div.poll .poll-buttons :not(:first-child):not(:last-child){margin-left:1em}div.poll .poll-buttons .toggle-status{float:right}div.poll.pie .poll-container{width:calc(100% - 190px)}div.poll.pie .poll-container .poll-grouped-pie-container{width:50%}div.poll.pie .poll-info{display:inline-block;width:150px}.d-editor-preview .poll-buttons a:not(:first-child){margin-left:0.25em}.d-editor-preview .poll li[data-poll-option-id]:before{position:relative;vertical-align:baseline;border:2px solid #222;border-radius:50%;display:inline-block;margin-right:0.5em;width:12px;height:12px;content:\"\"}.d-editor-preview .poll[data-poll-type=\"multiple\"] li[data-poll-option-id]:before{border-radius:3px}\n\n/*# sourceMappingURL=poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1011,
          "bodySize": 1259,
          "_transferSize": 2270
        },
        "cache": {},
        "timings": {
          "blocked": 1046.299000010684,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.06799999999998363,
          "wait": 210.03800001123,
          "receive": 1.1949999898206443,
          "_blocked_queueing": 1.6220000106841326
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739973"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.634Z",
        "time": 1256.917999999132,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 747,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css\"; filename*=UTF-8''desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "2848f47f-3b93-422c-bb38-1fffe28f6cb8"
            },
            {
              "name": "X-Runtime",
              "value": "0.008801"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 752,
            "mimeType": "text/css",
            "compression": -12,
            "text": "html{font-family:Source Sans Pro,Cantarell,Droid Sans,Ubuntu,DejaVu Sans,Arial,sans-serif}.d-header{height:3.3em;box-shadow:none;border:1px solid #3968a1}.d-header-icons .d-icon{color:#fff}.d-header-icons .icon:hover,.d-header-icons .icon:focus{background-color:#4a86cf}.d-header-icons .icon:hover .d-icon,.d-header-icons .icon:focus .d-icon{color:rgba(255,255,255,0.9)}.btn{border-radius:2px;color:#333;background-color:#eee}.extra-info-wrapper .badge-wrapper.bullet span.badge-category,.extra-info-wrapper .badge-wrapper.bar span.badge-category,.extra-info-wrapper .badge-wrapper.none span.badge-category{color:#fff}.btn-primary{background:#4a86cf;color:#fff}\n\n/*# sourceMappingURL=desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": 1013,
          "bodySize": 764,
          "_transferSize": 1777
        },
        "cache": {},
        "timings": {
          "blocked": 1053.3250000004564,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.06399999999985084,
          "wait": 202.60600001362536,
          "receive": 0.92299998505041,
          "_blocked_queueing": 0.9900000004563481
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 1021.1929999932181,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/static.gnome.org/css/fonts.css",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.036836"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Request-Id",
              "value": "a6db2c88-03c9-46a4-8292-8d721c322e0a"
            },
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/html"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0,
          "_error": "net::ERR_ABORTED"
        },
        "cache": {},
        "timings": {
          "blocked": 0.11799998867698014,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1020.817999997573,
          "receive": 0.2570000069681555,
          "_blocked_queueing": 0.11699998867698014
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 69
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 4404.647999996087,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "bbc238d4-ecde-44ca-bb79-6387875d34e2"
            },
            {
              "name": "X-Runtime",
              "value": "0.042606"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 293545,
            "mimeType": "text/css",
            "text": "/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title],acronym[title]{text-decoration:underline;text-decoration-style:dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:1.7511em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=\"button\"],input[type=\"reset\"],input[type=\"submit\"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=\"checkbox\"],input[type=\"radio\"]{box-sizing:border-box;padding:0}input[type=\"number\"]::-webkit-inner-spin-button,input[type=\"number\"]::-webkit-outer-spin-button{height:auto}input[type=\"search\"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=\"search\"]::-webkit-search-cancel-button,input[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/\n */.pika-single{z-index:9999;display:block;position:relative;color:#222;background:#fff;border:1px solid #e9e9e9;border-bottom-color:#e9e9e9;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,0.5)}.pika-single:before,.pika-single:after{content:\" \";display:table}.pika-single:after{clear:both}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;filter:alpha(opacity=0);opacity:0}.pika-label{display:inline-block;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;color:#222;background-color:#fff}.pika-prev,.pika-next{display:block;cursor:pointer;position:relative;outline:none;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5}.pika-prev:hover,.pika-next:hover{opacity:1}.pika-prev.is-disabled,.pika-next.is-disabled{cursor:default;opacity:.2}.pika-prev,.is-rtl .pika-next{float:left;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\")}.pika-next,.is-rtl .pika-prev{float:right;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\")}.pika-select{display:inline-block}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table th,.pika-table td{width:14.285714285714286%;padding:0}.pika-table th{color:#222;font-size:12px;line-height:25px;font-weight:bold;text-align:center}.pika-table abbr{border-bottom:none;cursor:help}.pika-button{cursor:pointer;display:block;-moz-box-sizing:border-box;box-sizing:border-box;outline:none;border:0;margin:0;width:100%;padding:5px;color:#222;font-size:12px;line-height:15px;text-align:right;background:#fff}.is-today .pika-button{color:#08c;font-weight:bold}.is-selected .pika-button{color:#fff;font-weight:bold;background:#08c;box-shadow:inset 0 1px 3px #d1f0ff;border-radius:3px}.is-disabled .pika-button,.is-outside-current-month .pika-button{pointer-events:none;cursor:default;color:#222;opacity:.3}.pika-button:hover{color:#222;background:#d1f0ff;box-shadow:none;border-radius:3px}.pika-week{font-size:11px;color:#222}.is-inrange .pika-button{background:#D5E9F7}.is-startrange .pika-button{color:#fff;background:#6CB31D;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#08c;box-shadow:none;border-radius:3px}.pull-left{float:left}.pull-right{float:right}.show{display:block}.hide,.hidden{display:none}.invisible{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.affix{position:fixed}.clearfix:before,.nav-pills:before,.container:before,.wrap:before,.clearfix:after,.nav-pills:after,.container:after,.wrap:after{display:table;content:\" \"}.clearfix:after,.nav-pills:after,.container:after,.wrap:after{clear:both}.overflow-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clickable{cursor:pointer}.disable-no-hover:hover{background:#e9e9e9;color:#222}html{color:#222;font-family:Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;background-color:#fff;overflow-y:scroll;direction:ltr}html.text-size-smaller{font-size:14px}html.text-size-larger{font-size:17px}html.text-size-largest{font-size:19px}a{color:#08c;text-decoration:none;cursor:pointer}a:visited{color:#08c}a:hover{color:#08c}a:active{color:#08c}hr{display:block;height:1px;margin:1em 0;border:0;border-top:1px solid #e9e9e9;padding:0}ul,dd{margin:0 0 9px 25px;padding:0}.cooked ul,.cooked ol,.cooked dd{clear:both}.cooked ul,.d-editor-preview ul{margin:0;padding-left:40px}li>ul,li>ol{margin-bottom:0}img{vertical-align:middle}fieldset{margin:0;border:0;padding:0}pre code{overflow:auto;tab-size:4}.row:before,.row:after{display:table;content:\"\"}.row:after{clear:both}#offscreen-content{display:none}tbody{border-top:3px solid #e9e9e9}tr{border-bottom:1px solid #e9e9e9}tr.highlighted{animation:background-fade-highlight 2.5s ease-out}ruby>rt{font-size:72%}.select-kit.categories-admin-dropdown .select-kit-body{min-width:auto;width:250px}.select-kit.categories-admin-dropdown .select-kit-header .d-icon{justify-content:space-between}.select-kit.combo-box.category-chooser{width:300px}.select-kit.combo-box.category-chooser .select-kit-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.select-kit.combo-box.category-chooser .select-kit-row.none .topic-count{display:none}.select-kit.combo-box.category-chooser .select-kit-row .topic-count{font-size:.8706em;color:#222;white-space:nowrap;margin-left:0.5em;font-weight:normal}.select-kit.combo-box.category-chooser .select-kit-row .category-status{color:#222;line-height:1.4;-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto}.select-kit.combo-box.category-chooser .select-kit-row .category-desc{-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto;color:#919191;font-size:.8706em;line-height:1.4}.select-kit.combo-box.category-drop{min-width:auto}.select-kit.combo-box.category-drop .badge-wrapper{font-size:1em;font-weight:normal}.select-kit.combo-box.category-drop .badge-wrapper.box{margin:0}.select-kit.combo-box.category-drop .badge-wrapper.box span.badge-category{margin:0}.select-kit.combo-box.category-drop.bar.has-selection .category-drop-header{padding:0 5px 0 10px}.select-kit.combo-box.category-drop.box.has-selection .category-drop-header .badge-wrapper.box{padding:0}.select-kit.combo-box.category-drop .category-drop-header.is-none .selected-name{color:inherit}.select-kit.combo-box.category-drop .category-drop-header .badge-wrapper{margin-right:0}.select-kit.combo-box.category-drop .select-kit-body{min-width:300px}.select-kit.combo-box.category-drop .select-kit-row{flex-direction:column;align-items:flex-start}.select-kit.combo-box.category-drop .select-kit-row[data-value=\"all-categories\"],.select-kit.combo-box.category-drop .select-kit-row[data-value=\"no-categories\"]{color:#08c;font-weight:700}.select-kit.combo-box.category-drop .select-kit-row .category-desc{font-weight:normal;color:#919191;margin-top:2px}.select-kit.combo-box.category-drop .select-kit-row .category-status{align-items:center}.select-kit.combo-box.category-drop .select-kit-row .topic-count{margin-left:5px;font-weight:normal}.select-kit.combo-box.category-drop .select-kit-row .badge-wrapper{margin:0;font-weight:bold}.select-kit.combo-box.category-drop .select-kit-row .badge-wrapper:nth-child(2){margin-left:10px}.select-kit.combo-box.category-drop.is-expanded .select-kit-wrapper,.select-kit.combo-box.category-drop .select-kit-wrapper{display:none}.select-kit .category-row .category-status{display:flex;flex-wrap:wrap;align-items:center;max-width:100%;-webkit-box-flex:0;-ms-flex:1 1 auto;flex:1 1 auto}.select-kit .category-row .category-status .badge-wrapper.box{margin-bottom:1px;margin-top:1px}.select-kit .category-row .topic-count{white-space:nowrap}.select-kit.category-selector .select-kit-selected-name .badge-wrapper.box,.select-kit-box.category-selector .select-kit-selected-name .badge-wrapper.box{margin:2px;padding:0}.select-kit.combo-box.color-palettes .color-palettes-row .palettes{display:flex;align-items:center;margin-left:0.5em;flex:1 0 0}.select-kit.combo-box.color-palettes .color-palettes-row .palettes .palette{height:15px;width:15px;display:block}.select-kit.combo-box .select-kit-body{border-radius:0;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}.select-kit.combo-box .select-kit-row{margin:0;min-height:1px;padding:6px 10px}.select-kit.combo-box .select-kit-row.no-content{font-weight:normal}.select-kit.combo-box .select-kit-filter .filter-input,.select-kit.combo-box .select-kit-filter .filter-input:focus,.select-kit.combo-box .select-kit-filter .filter-input:active{flex:1}.select-kit.combo-box .select-kit-filter .filter-icon{margin-left:0.25em}.select-kit.combo-box .select-kit-header{background:#fff;border:1px solid #919191;padding:0 0.25em 0 0.5em;font-weight:500;font-size:1em}.select-kit.combo-box .select-kit-header.is-focused{border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box .select-kit-collection{display:flex;flex-direction:column;padding:0;min-width:100px;max-height:200px}.select-kit.combo-box .select-kit-collection .collection-header a{white-space:nowrap;color:#222;line-height:1.2;font-weight:bold;display:block;padding:6px 10px;color:#08c}.select-kit.combo-box .select-kit-collection .collection-header a:hover{text-decoration:underline}.select-kit.combo-box.is-disabled .select-kit-header{background:#e9e9e9;border-color:#bdbdbd;color:#919191}.select-kit.combo-box.is-disabled .select-kit-header .d-icon{color:#919191}.select-kit.combo-box.is-highlighted .select-kit-header{border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box.is-expanded .select-kit-wrapper{display:block;border:1px solid #08c;box-shadow:0 0 6px 0 #08c}.select-kit.combo-box.is-expanded.is-above .select-kit-header{border-radius:0 0 3px 3px}.select-kit.combo-box.is-expanded.is-above .select-kit-body{border-radius:3px 3px 0 0}.select-kit.combo-box.tag-drop,.select-kit.combo-box.group-dropdown{min-width:auto}.select-kit.combo-box.tag-drop{color:#646464}.select-kit.combo-box.group-dropdown .select-kit-row{font-weight:bold}.select-kit.combo-box.is-expanded .select-kit-wrapper,.select-kit.combo-box .select-kit-wrapper{display:none}.select-kit.dropdown-select-box.composer-actions{margin:0}.select-kit.dropdown-select-box.composer-actions .select-kit-header{background:none;outline:none;padding:0;margin-right:5px;border:1px solid #e9e9e9;min-height:unset}.select-kit.dropdown-select-box.composer-actions .select-kit-header .d-icon{padding:5px 6px}.select-kit.dropdown-select-box.composer-actions .select-kit-header:hover,.select-kit.dropdown-select-box.composer-actions .select-kit-header:focus{background:#e9e9e9}.select-kit.dropdown-select-box.composer-actions .d-icon{margin:0 !important}.select-kit.dropdown-select-box{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;min-width:auto;border:none}.select-kit.dropdown-select-box.is-expanded .select-kit-collection,.select-kit.dropdown-select-box.is-expanded .select-kit-body{border-radius:0}.select-kit.dropdown-select-box .select-kit-body{border:1px solid #e9e9e9;background-clip:padding-box;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);max-width:300px;width:300px}.select-kit.dropdown-select-box .select-kit-row{margin:0;padding:10px 5px}.select-kit.dropdown-select-box .select-kit-row .icons{display:-webkit-box;display:-ms-flexbox;display:flex;flex:0 0 auto;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-item-align:start;align-self:flex-start;margin-right:0.357em;margin-top:2px;width:30px}.select-kit.dropdown-select-box .select-kit-row .icons .d-icon{font-size:1.3195em;-ms-flex-item-align:center;align-self:center;margin-right:0;opacity:1}.select-kit.dropdown-select-box .select-kit-row .texts{line-height:1.4;-webkit-box-flex:1;-ms-flex:1;flex:1 1 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.select-kit.dropdown-select-box .select-kit-row .texts .name{-webkit-box-flex:1;-ms-flex:1;flex:1 1 auto;font-weight:bold;font-size:1em;color:#222;padding:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}.select-kit.dropdown-select-box .select-kit-row .texts .desc{-webkit-box-flex:1;-ms-flex:1;flex:1 1 auto;font-size:.8706em;font-weight:normal;color:#919191;white-space:normal}.select-kit.dropdown-select-box .select-kit-collection{padding:0;max-height:100%}.select-kit.dropdown-select-box .dropdown-select-box-header{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.select-kit.dropdown-select-box .dropdown-select-box-header .d-icon+.d-icon{margin-left:5px}.select-kit.dropdown-select-box .dropdown-select-box-header.is-focused{outline-style:auto;outline-color:#08c}.select-kit.combobox.future-date-input-selector{min-width:50%}.select-kit.combobox.future-date-input-selector .future-date-input-selector-header .btn-clear{line-height:1.4}.select-kit.combobox.future-date-input-selector .future-date-input-selector-datetime{color:#888;margin-left:5px;white-space:nowrap}.select-kit.combobox.future-date-input-selector .future-date-input-selector-icons{margin-right:5px}.select-kit.combobox.future-date-input-selector .btn-clear{padding:0;margin-left:5px}.select-kit.combobox.future-date-input-selector .future-date-input-selector-row .future-date-input-selector-icons{color:#888}.select-kit.icon-picker .multi-select-header .select-kit-selected-name .d-icon{color:#646464}.select-kit.multi-select.list-setting .select-kit-row.create .square{width:12px;height:12px;margin-left:5px}.select-kit.combo-box.mini-tag-chooser{margin-bottom:5px;margin-left:5px}.select-kit.combo-box.mini-tag-chooser.is-expanded .select-kit-header{border:1px solid #08c}.select-kit.combo-box.mini-tag-chooser.no-tags .select-kit-header .selected-name{color:#919191}.select-kit.combo-box.mini-tag-chooser .select-kit-header{height:30px}.select-kit.combo-box.mini-tag-chooser .select-kit-header .selected-name{margin:0;border:0;padding:0;outline:none;box-shadow:none;cursor:pointer;max-width:250px}.select-kit.combo-box.mini-tag-chooser .select-kit-header .selected-name .name{white-space:nowrap}.select-kit.combo-box.mini-tag-chooser .select-kit-filter{border-top:0}.select-kit.combo-box.mini-tag-chooser.is-expanded .select-kit-wrapper,.select-kit.combo-box.mini-tag-chooser .select-kit-wrapper{display:none}.select-kit.combo-box.mini-tag-chooser .select-kit-row.is-selected{background:none}.select-kit.combo-box.mini-tag-chooser .select-kit-row.is-highlighted.is-selected{background:#d1f0ff}.select-kit.combo-box.mini-tag-chooser .select-kit-row .discourse-tag-count{margin-left:5px}.select-kit.combo-box.mini-tag-chooser .selected-tags{max-height:125px;overflow-y:auto;display:flex;border-bottom:1px solid #e9e9e9;padding:0.25em 0 0 0.25em;box-sizing:border-box;flex-wrap:wrap;width:100%}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag{background:#e9e9e9;box-sizing:border-box;margin:0;padding:0.5em;border:0;font-size:.8706em;margin-right:0.25em;margin-bottom:0.25em}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag .tag-icon{margin-right:0.25em}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag.is-highlighted{box-shadow:0 0 2px #e45735,0 1px 0 rgba(0,0,0,0.05)}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag .d-icon{color:#bdbdbd;vertical-align:middle}.select-kit.combo-box.mini-tag-chooser .selected-tags .selected-tag:hover .d-icon.d-icon-times{color:#e45735}.select-kit.multi-select{width:300px;background:#fff;border-radius:0}.select-kit.multi-select .select-kit-body{width:100%}.select-kit.multi-select .select-kit-row{margin:5px;min-height:1px;padding:5px;border-radius:0}.select-kit.multi-select .select-kit-filter{border:0;flex:1 0 0px;margin:1px}.select-kit.multi-select .multi-select-header{background:#fff;border:1px solid #919191}.select-kit.multi-select .multi-select-header.is-focused{box-shadow:0 0 6px 0 #08c;border-radius:0}.select-kit.multi-select.is-disabled .multi-select-header{background:#e9e9e9;border-color:#bdbdbd;color:#919191}.select-kit.multi-select.is-disabled .multi-select-header .d-icon{color:#919191}.select-kit.multi-select.is-expanded .select-kit-wrapper{display:block;border:1px solid #08c;box-shadow:0 0 6px 0 #08c;border-radius:0}.select-kit.multi-select.is-expanded .multi-select-header{border-radius:0;box-shadow:none}.select-kit.multi-select.is-expanded .select-kit-body{border-radius:0}.select-kit.multi-select .choices{margin:0;padding:0 0 2px 0;box-sizing:border-box;display:block;width:100%}.select-kit.multi-select .choices .choice{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:space-between;margin:2px 0 0px 3px;padding:0;float:left;height:30px}.select-kit.multi-select .choices .choice.input-wrapper{min-width:120px}.select-kit.multi-select .choices .filter{white-space:nowrap;min-width:50px;padding:0;outline:none;flex:1;display:flex}.select-kit.multi-select .choices .filter .filter-input,.select-kit.multi-select .choices .filter .filter-input:focus{border:none;background:none;display:inline-block;width:100%;outline:none;min-width:auto;padding:0;margin:0;outline:0;border:0;box-shadow:none;border-radius:0;min-height:unset}.select-kit.multi-select .choices .selected-color .selected-color-wrapper{display:flex;flex:1 0 0px;flex-direction:column}.select-kit.multi-select .choices .selected-color .color-preview{height:5px;margin:0 2px 2px 0px;display:flex;width:100%}.select-kit.multi-select .choices .selected-category .body{display:flex;align-items:center}.select-kit.multi-select .choices .selected-category .badge-wrapper{padding:2px 4px;line-height:1.2;display:flex;flex:1 0 0px;align-items:center}.select-kit.multi-select .choices .selected-category .badge-wrapper.bullet{margin-right:2.5px}.select-kit.multi-select .choices .selected-name{background:#e9e9e9;padding:0.25em;flex:1;align-items:center;display:flex;justify-content:space-between}.select-kit.multi-select .choices .selected-name .d-icon{color:#bdbdbd;vertical-align:middle}.select-kit.multi-select .choices .selected-name .d-icon:last-child{margin-left:0.5em}.select-kit.multi-select .choices .selected-name:hover .d-icon:last-child{color:#e45735}.select-kit.multi-select .choices .selected-name.is-highlighted{box-shadow:0 0 2px #e45735,0 1px 0 rgba(0,0,0,0.05)}.select-kit.dropdown-select-box.notifications-button .select-kit-body{max-width:400px;width:400px}@media screen and (max-width: 767px){.select-kit.dropdown-select-box.notifications-button .select-kit-body{width:auto}}.select-kit.dropdown-select-box.notifications-button .select-kit-row .icons{-ms-flex-item-align:start;align-self:flex-start}.select-kit.dropdown-select-box.period-chooser{display:inline-flex;position:relative}.select-kit.dropdown-select-box.period-chooser .select-kit-collection{padding:5px}.select-kit.dropdown-select-box.period-chooser .period-chooser-header{background:none;border:none;justify-content:flex-start;width:auto;height:auto;padding:0}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name{color:#fff;display:inline-block;box-sizing:border-box}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name .date-section{color:#222;margin-right:5px}.select-kit.dropdown-select-box.period-chooser .period-chooser-header h2.selected-name .top-date-string{font-size:.8706em;color:#919191;font-weight:normal;text-transform:uppercase}.select-kit.dropdown-select-box.period-chooser .period-chooser-header .d-icon{color:#222;opacity:1;margin:5px 0 10px 5px;font-size:1.5157em}.select-kit.dropdown-select-box.period-chooser .period-chooser-header.is-focused,.select-kit.dropdown-select-box.period-chooser .period-chooser-header:hover{background:none;border:none;outline:none}.select-kit.dropdown-select-box.period-chooser .period-chooser-row{font-weight:bold;padding:5px;font-size:1.1487em;align-items:center;display:flex}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .period-title{flex:1 0 0px}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .date-section{color:#222}.select-kit.dropdown-select-box.period-chooser .period-chooser-row .top-date-string{font-weight:normal;font-size:.8706em;color:#919191;text-transform:uppercase;margin-left:5px}#topic-footer-buttons .pinned-button{min-width:auto;margin:1em 0}#topic-footer-buttons .pinned-button.is-hidden{display:none}#topic-footer-buttons .pinned-button .btn{margin:0}#topic-footer-buttons .pinned-button .reason{display:inline;line-height:1.2}.pinned-button{margin:0;min-width:auto}.pinned-button .pinned-options{display:inline}.pinned-button .pinned-options .select-kit-body{min-width:unset;max-width:unset;width:550px}.select-kit{border:none;min-width:220px;box-sizing:border-box;display:inline-block;flex-direction:column;position:relative;vertical-align:middle;user-select:none}.select-kit.is-hidden{display:none}.select-kit.is-disabled{pointer-events:none}.select-kit.is-expanded{z-index:300}.select-kit.is-expanded .select-kit-body{display:flex;flex-direction:column;left:0;position:absolute;top:0;align-items:center;justify-content:center}.select-kit.is-expanded .select-kit-collection{border-radius:inherit;box-sizing:border-box;width:100%}.select-kit.is-loading .select-kit-collection{overflow:hidden}.select-kit.is-above .select-kit-filter{border-top:0}.select-kit.is-above .select-kit-wrapper{bottom:0;top:auto}.select-kit .d-icon{color:#646464}.select-kit .select-kit-header{box-sizing:border-box;overflow:hidden;transition:all 0.25s;cursor:pointer;display:flex;align-items:center;flex-direction:row;min-height:30px}.select-kit .select-kit-header .selected-name{text-align:left;flex:0 1 auto;color:inherit;display:flex}.select-kit .select-kit-header .selected-name .d-icon+.name{margin-left:0.5em}.select-kit .select-kit-header .selected-name .name{display:inline-block}.select-kit .select-kit-header .selected-name.select-kit-selected-color{border-bottom-width:5px;border-bottom-style:solid}.select-kit .select-kit-header .btn-clear{margin-left:0.25em;padding:0.25em;border:0;background:none;min-height:auto}.select-kit .select-kit-header .icon{margin-right:5px}.select-kit .select-kit-header .caret-icon{margin-left:auto;padding-left:5px;pointer-events:none}.select-kit .select-kit-header .d-button-label{display:flex;align-items:center;white-space:nowrap;overflow:hidden;line-height:1.2}.select-kit .select-kit-header .d-button-label .d-icon{margin-left:5px;margin-right:0}.select-kit .select-kit-body{display:none;background:#fff;box-sizing:border-box;min-width:inherit}.select-kit .select-kit-row{cursor:pointer;line-height:1.2;outline:none;display:flex;flex:1 0 auto;box-sizing:border-box;align-items:center;justify-content:flex-start}.select-kit .select-kit-row .name{margin:0;overflow:hidden;text-overflow:ellipsis;flex:1 1 0%}.select-kit .select-kit-row .d-icon+.name,.select-kit .select-kit-row .svg-icon-title+.name{margin-left:0.5em}.select-kit .select-kit-row.is-highlighted{background:#d1f0ff}.select-kit .select-kit-row.is-selected{background:#ffffa6}.select-kit .select-kit-row.is-selected.is-highlighted{background:#d1f0ff}.select-kit .select-kit-row .discourse-tag,.select-kit .select-kit-row .discourse-tag-count{color:#222}.select-kit .select-kit-row.create-color-row{border-left-style:solid;border-left-width:5px}.select-kit .select-kit-collection{background:#fff;overflow-x:hidden;overflow-y:auto;border-radius:inherit;-webkit-overflow-scrolling:touch;margin:0;padding:0;max-height:200px;width:100%}.select-kit .select-kit-collection .validation-message{white-space:nowrap;color:#e45735;flex:1 0 auto;margin:5px;padding:0 2px}.select-kit .select-kit-collection .select-kit-collection{padding:0;margin:0}.select-kit .select-kit-collection .select-kit-collection:hover .select-kit-row.is-highlighted:hover{background:#d1f0ff}.select-kit .select-kit-collection::-webkit-scrollbar{-webkit-appearance:none;width:10px}.select-kit .select-kit-collection::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:#919191}.select-kit .select-kit-collection::-webkit-scrollbar-track{background:transparent;border-radius:0}.select-kit .select-kit-filter{box-sizing:border-box;align-items:center;justify-content:space-between;width:100%}.select-kit .select-kit-filter .filter-input{background:none;margin:0;padding:0;flex:1 0 0px;outline:none;border:0;border-radius:0;box-shadow:none;width:auto}.select-kit .select-kit-filter.is-hidden{width:1px;height:1px;border:0;margin:-1px;padding:0;overflow:hidden;position:fixed;outline:0;left:0;top:0}.select-kit .select-kit-wrapper{position:absolute;top:0;left:0;background:none;display:none;box-sizing:border-box;pointer-events:none}.select-kit .select-kit-errors-collection{background:#e45735;padding:0.25em 1em;margin:0;width:100%;box-sizing:border-box}.select-kit .select-kit-errors-collection .select-kit-error{list-style:none;color:#fff}.select-kit .no-content,.select-kit .is-loading{display:flex;flex:1 0 auto;padding:0.5em;width:100%;box-sizing:border-box;background:#fff}.select-kit .is-loading{align-items:center;justify-content:center}.select-kit.single-select .select-kit-filter{display:flex}.select-kit.single-select .select-kit-filter.is-expanded{padding:0.25em 0.5em;border-top:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9}.select-kit.multi-select.tag-chooser .select-kit-row{display:flex;align-items:center}.select-kit.multi-select.tag-chooser .select-kit-row .discourse-tag-count{margin-left:5px}.select-kit.combo-box.tag-drop{min-width:auto}.select-kit.combo-box.tag-drop .select-kit-row[data-value=\"all-tags\"],.select-kit.combo-box.tag-drop .select-kit-row[data-value=\"no-tags\"]{color:#08c;font-weight:700}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-body{box-shadow:none;padding:0.5em 0.5em 0.25em 0.5em;width:230px}.select-kit.dropdown-select-box.toolbar-popup-menu-options .toolbar-popup-menu-options-heading{width:100%}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row{margin-bottom:0.25em;padding:0.5em 0.25em;background:#e9e9e9;transition:all 0.25s}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .texts .name,.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .icons .d-icon{font-size:1em;font-weight:normal;color:#222}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row .d-icon{opacity:0.7}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted{background:#919191}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted .name,.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-highlighted .d-icon{color:#fff}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row:hover{background:#919191;color:#fff}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-selected{color:#222;background:#e9e9e9}.select-kit.dropdown-select-box.toolbar-popup-menu-options .select-kit-row.is-selected.is-highlighted{background:#919191;color:#222}#topic-footer-buttons .topic-notifications-button{min-width:auto;margin:1em 0}#topic-footer-buttons .topic-notifications-button .btn{margin:0}#topic-footer-buttons .topic-notifications-button .reason{display:inline;line-height:1.2}.topic-notifications-button .topic-notifications-options{min-width:auto}.topic-notifications-button{margin:0}.topic-notifications-button .topic-notifications-options{display:inline-flex}.select-kit.dropdown-select-box.user-notifications-dropdown{text-align:left}.select-kit.dropdown-select-box.user-notifications-dropdown .select-kit-body{width:485px;max-width:485px}.select-kit.dropdown-select-box.user-notifications-dropdown .select-kit-header{justify-content:center}.select-kit.dropdown-select-box.user-notifications-dropdown .dropdown-select-box-header{align-items:center}.user-chooser .select-kit-row.user-row .avatar{margin-left:0;margin-right:0.5em}.user-chooser .select-kit-row.user-row .username{color:#222;white-space:nowrap}.user-chooser .select-kit-row.user-row .name{color:#646464;font-size:.8706em;margin-left:0.5em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.badge-notification,.badge-group{display:inline-block;font-weight:normal;white-space:nowrap;border-radius:10px}.badge-wrapper{font-size:.8706em;font-weight:bold;white-space:nowrap;position:relative;display:inline-flex;align-items:baseline}.badge-wrapper .badge-category{display:inline-flex;align-items:baseline}.badge-wrapper .badge-category .category-name{text-overflow:ellipsis;overflow:hidden}.badge-wrapper .badge-category .d-icon{margin-right:3px;width:0.74em;height:0.74em;color:inherit}.badge-wrapper.bullet{margin-right:12px}.badge-wrapper.bullet span.badge-category{color:#646464;overflow:hidden;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper.bullet span.badge-category{color:#fff}.badge-wrapper.bullet .badge-category-parent-bg,.badge-wrapper.bullet .badge-category-bg{flex:0 0 auto;width:9px;height:9px;margin-right:5px;display:inline-block}.badge-wrapper.bullet .badge-category-parent-bg{width:5px;margin-right:0}.badge-wrapper.bullet .badge-category-parent-bg+.badge-category-bg{width:5px}.badge-wrapper.bullet .d-icon{color:#919191}.badge-wrapper.box{margin-right:5px;padding:2px 4px 2px 4px;display:inline-flex}.badge-wrapper.box span{overflow:hidden;text-overflow:ellipsis}.badge-wrapper.box span.badge-category-bg,.badge-wrapper.box span.badge-category-parent-bg{position:absolute;top:0;right:0;bottom:0;left:0}.badge-wrapper.box span.badge-category-parent-bg{width:calc(100% - 5px)}.badge-wrapper.box span.badge-category-parent-bg+.badge-category-bg{left:5px;width:calc(100% - 5px)}.badge-wrapper.box span.badge-category-parent-bg+.badge-category-bg+.badge-category{margin-left:5px}.badge-wrapper.box span.badge-category{position:relative}.badge-wrapper.box+.topic-header-extra{padding:2px 4px 2px 4px}.badge-wrapper.bar{margin-right:5px}.badge-wrapper.bar span.badge-category{color:#646464;padding:1px 3px;overflow:hidden;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper.bar span.badge-category{color:#fff}.badge-wrapper.bar .badge-category-parent-bg,.badge-wrapper.bar .badge-category-bg{display:inline-block;padding:0 1px}.badge-wrapper.bar .badge-category-parent-bg:before,.badge-wrapper.bar .badge-category-bg:before{content:\"\\a0\"}.badge-wrapper.none{color:#646464;margin-right:5px}.list-controls .category-breadcrumb a.badge-category{display:inline-block;padding:6px 8px;line-height:1.2}.badge-notification{padding:0.21em 0.42em;min-width:0.5em;color:#fff;font-size:.7579em;line-height:1;text-align:center;background-color:#bdbdbd}.badge-notification[href]{color:#fff}.badge-notification:hover{color:#fff}.badge-notification.new-posts,.badge-notification.unread-posts{background-color:#6cf;color:#fff;font-weight:normal}.badge-notification.new-topic{background-color:transparent;color:#0aadff;font-weight:normal;font-size:.8706em}.badge-notification.new-topic::before{content:\"●\";margin-right:2px}.badge-notification.clicks{font-weight:normal;background-color:#e9e9e9;top:-1px;color:#919191;position:relative;border:none}.badge-posts{font-weight:normal;font-size:1em;line-height:1}.badge-posts[href]{color:#919191}.badge-group{padding:2px 5px;color:#222;background-color:#e9e9e9;border-color:#e9e9e9;font-size:.8706em}#banner{padding:10px;background:#d1f0ff;color:#222;z-index:2;overflow:auto}#banner.overlay{position:fixed}#banner .close{margin-top:-5px;color:#bdbdbd;padding-left:5px;float:right}#banner .meta{display:none}.bookmark-with-reminder.modal .modal-body{max-width:410px;min-width:380px}.bookmark-with-reminder.modal .modal-body .control-label{font-weight:700}.bookmark-with-reminder.modal .modal-body .ember-text-field.bookmark-name{width:100%}.btn.hidden{display:none}.btn{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#222;background:#e9e9e9;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn .d-icon{color:#646464;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.no-text .d-icon{margin-right:0}.discourse-no-touch .btn:hover,.discourse-no-touch .btn.btn-hover{background:#919191;color:#fff}.discourse-no-touch .btn:hover .d-icon,.discourse-no-touch .btn.btn-hover .d-icon{color:#e9e9e9}.btn[href]{color:#222}.btn:active,.btn.btn-active{background-color:#bababa;background-image:linear-gradient(to bottom, #bababa, #e9e9e9)}.btn[disabled],.btn.disabled{opacity:0.4;cursor:not-allowed}.btn[disabled]:hover,.btn.disabled:hover{color:#222;background:#e9e9e9}.btn[disabled]:hover .d-icon,.btn.disabled:hover .d-icon{color:#646464}.btn-primary{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#08c;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn-primary .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn-primary.no-text .d-icon{margin-right:0}.discourse-no-touch .btn-primary:hover,.discourse-no-touch .btn-primary.btn-hover{background:#069;color:#fff}.discourse-no-touch .btn-primary:hover .d-icon,.discourse-no-touch .btn-primary.btn-hover .d-icon{color:#fff}.btn-primary[href]{color:#fff}.btn-primary:active,.btn-primary.btn-active{background-color:#006da3;background-image:linear-gradient(to bottom, #006da3, #08c)}.btn-primary[disabled],.btn-primary.disabled{opacity:0.4;cursor:not-allowed}.btn-primary[disabled]:hover,.btn-primary.disabled:hover{color:#fff;background:#08c}.btn-primary[disabled]:hover .d-icon,.btn-primary.disabled:hover .d-icon{color:#fff}.btn-danger{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#e45735;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn-danger .d-icon{color:#fbe6e1;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn-danger.no-text .d-icon{margin-right:0}.discourse-no-touch .btn-danger:hover,.discourse-no-touch .btn-danger.btn-hover{background:#c63c1b;color:#fff}.discourse-no-touch .btn-danger:hover .d-icon,.discourse-no-touch .btn-danger.btn-hover .d-icon{color:#fbe6e1}.btn-danger[href]{color:#fff}.btn-danger:active,.btn-danger.btn-active{background-color:#c63c1b;background-image:linear-gradient(to bottom, #c63c1b, #e45735)}.btn-danger[disabled],.btn-danger.disabled{opacity:0.4;cursor:not-allowed}.btn-danger[disabled]:hover,.btn-danger.disabled:hover{color:#fff;background:#e45735}.btn-danger[disabled]:hover .d-icon,.btn-danger.disabled:hover .d-icon{color:#fbe6e1}.btn.cancel{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#e45735;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn.cancel .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.cancel.no-text .d-icon{margin-right:0}.discourse-no-touch .btn.cancel:hover,.discourse-no-touch .btn.cancel.btn-hover{background:#c63c1b;color:#fff}.discourse-no-touch .btn.cancel:hover .d-icon,.discourse-no-touch .btn.cancel.btn-hover .d-icon{color:#fff}.btn.cancel[href]{color:#fff}.btn.cancel:active,.btn.cancel.btn-active{background-color:#c63c1b;background-image:linear-gradient(to bottom, #c63c1b, #e45735)}.btn.cancel[disabled],.btn.cancel.disabled{opacity:0.4;cursor:not-allowed}.btn.cancel[disabled]:hover,.btn.cancel.disabled:hover{color:#fff;background:#e45735}.btn.cancel[disabled]:hover .d-icon,.btn.cancel.disabled:hover .d-icon{color:#fff}.btn.ok{display:inline-block;margin:0;padding:6px 12px;min-height:30px;border:none;box-sizing:border-box;font-weight:normal;color:#fff;background:#090;font-size:1em;line-height:1;text-align:center;cursor:pointer;transition:all 0.25s}.btn.ok .d-icon{color:#fff;margin-right:0.45em;transition:color 0.25s;line-height:1.2}.btn.ok.no-text .d-icon{margin-right:0}.discourse-no-touch .btn.ok:hover,.discourse-no-touch .btn.ok.btn-hover{background:#007a00;color:#fff}.discourse-no-touch .btn.ok:hover .d-icon,.discourse-no-touch .btn.ok.btn-hover .d-icon{color:#fff}.btn.ok[href]{color:#fff}.btn.ok:active,.btn.ok.btn-active{background-color:#007a00;background-image:linear-gradient(to bottom, #007a00, #090)}.btn.ok[disabled],.btn.ok.disabled{opacity:0.4;cursor:not-allowed}.btn.ok[disabled]:hover,.btn.ok.disabled:hover{color:#fff;background:#090}.btn.ok[disabled]:hover .d-icon,.btn.ok.disabled:hover .d-icon{color:#fff}.btn-social{color:#fff;background:#666}.btn-social .d-icon{color:#fff}.btn-social:hover{color:#fff}.btn-social[href]{color:#fff}.btn-social:before{margin-right:9px;font-size:1em}.btn-social.google_oauth2{background:#fff;color:#333;border:1px solid #e9e9e9}.btn-social.google_oauth2 .d-icon{opacity:0.9}.btn-social.google_oauth2:hover{color:currentColor;background:#f2f2f2}.btn-social.instagram{background:#e1306c}.btn-social.instagram:hover{background:#ac194b}.btn-social.facebook{background:#4267b2}.btn-social.facebook:hover{background:#2d477a}.btn-social.cas{background:#70ba61}.btn-social.twitter{background:#1da1f2}.btn-social.twitter:hover{background:#0c85d0}.btn-social.github{background:#100e0f}.btn-social.github:hover{background:#463e42}.btn-social.discord{background:#7289da}.btn-social.discord:hover{background:#4a67cf}.btn-small{padding:6px;font-size:.8706em;min-height:20px}.btn-small .d-icon{max-height:0.87em}.btn-large{padding:9px 18px;font-size:1.1487em;line-height:1}.btn-flat{background:transparent;border:0;outline:0;line-height:1;transition:color 0.25s, background 0.25s}.btn-flat .d-icon{color:#bdbdbd}.discourse-no-touch .btn-flat:hover .d-icon,.discourse-no-touch .btn-flat.btn-hover .d-icon{color:#222}.btn-flat.close{padding:0;min-height:unset;background:transparent;font-size:1.5157em}.btn-flat.close .d-icon{color:#646464}.discourse-no-touch .btn-flat.close:hover,.discourse-no-touch .btn-flat.close.btn-hover{background:transparent}.discourse-no-touch .btn-flat.close:hover .d-icon,.discourse-no-touch .btn-flat.close.btn-hover .d-icon{color:#222}.btn-link{background:transparent;border:0;outline:0;padding:0;color:#08c}.btn-link:focus{outline:1px currentColor dotted}.conditional-loading-section.is-loading{padding:2em;margin:1em;display:flex;align-items:center;justify-content:center;background:#f8f8f8;flex-direction:column}.conditional-loading-section.is-loading .title{font-size:1.1487em;font-weight:700}.conditional-loading-section:not(.is-loading){animation:fadein 0.5s;-webkit-animation:fadein 0.5s}@keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}.convert-to-public-topic .modal-body .instructions{margin-bottom:1em}.d-date-input .date-picker{margin:0;text-align:left;width:100%;outline:none;box-shadow:none !important}.d-date-input .pika-single{margin-left:-1px}.pika-table th,.pika-table td{padding:0 !important;border-top:none !important;border-bottom:none !important}.date-picker-wrapper{position:relative;display:inline-block}.date-picker{text-align:center;width:8em;margin:0}.pika-single{position:absolute !important}.d-date-time-input-range{padding:0.5em;background:whitesmole;border:1px solid #e9e9e9;width:300px;display:flex;flex-direction:column}.d-date-time-input-range .panels{display:inline-flex;list-style:none;margin:0 0 0.5em 0;flex:1}.d-date-time-input-range .panels.from .from-panel{background:#e45735;color:#fff}.d-date-time-input-range .panels.to .to-panel{background:#e45735;color:#fff}.d-date-time-input-range .panels .btn{margin-right:0.5em}.d-date-time-input-range .panel{display:none;flex:1}.d-date-time-input-range .panel.visible{display:flex}.d-date-time-input{display:flex;align-items:center;border:1px solid #e9e9e9;width:258px;box-sizing:border-box;position:relative;flex:1;justify-content:space-between}.d-date-time-input .date-picker,.d-date-time-input .fields{border:0}body.footer-nav-visible #main-outlet{padding-bottom:64px}body.footer-nav-visible #topic-progress-wrapper,body.footer-nav-visible #reply-control.draft{bottom:49px}body.footer-nav-visible #reply-control.draft{margin-bottom:env(safe-area-inset-bottom);padding-bottom:0px}.footer-nav{background-color:rgba(74,134,207,0.9);box-shadow:0 0 2px 0 rgba(0,0,0,0.25);height:49px;position:fixed;bottom:-49px;left:0;width:100%;z-index:900;transition:all linear 0.1s}.footer-nav .d-icon{color:#a6a6a6}.footer-nav.visible{bottom:0px}.footer-nav .footer-nav-widget{display:flex;justify-content:\"space-evenly\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.footer-nav .footer-nav-widget button{flex:1;margin:4px;border-radius:2px;padding:14px 18px}.footer-nav .footer-nav-widget button:disabled{opacity:0.6}@supports (padding: 0px){.footer-nav.visible{padding-bottom:max(5px, env(safe-area-inset-bottom))}}@supports (-webkit-backdrop-filter: blur(10px)){body:not(.footer-nav-ipad) .footer-nav{background-color:rgba(74,134,207,0.7);-webkit-backdrop-filter:blur(20px)}}body.footer-nav-ipad{padding-top:49px}body.footer-nav-ipad .footer-nav{bottom:auto;top:0px;background-color:#4a86cf;z-index:1020;padding-bottom:0}body.footer-nav-ipad #reply-control,body.footer-nav-ipad #reply-control.fullscreen{z-index:1021}body.footer-nav-ipad.docked .d-header{margin-top:49px}.group-member-dropdown{text-align:left}.group-form-automatic-membership-automatic,.groups-form-grant-trust-level{margin-bottom:10px}a.hashtag{color:#222;font-weight:bold}a.hashtag:visited,a.hashtag:hover{color:#222}a.hashtag:hover span{text-decoration:underline}.iframed-html{background:white;border:none}.ignored-list{overflow:auto;max-height:150px;display:flex;flex-wrap:wrap;align-items:center;background-color:#fff;min-height:30px;box-sizing:border-box}.ignored-user-list-item{border:1px solid #919191;border-radius:0.25em;padding:0;display:flex;align-items:center;margin-right:10px}.remove-ignored-user{display:flex;flex:1 0 0px;align-items:center;justify-content:center;box-sizing:border-box;border-radius:0 0.25em 0.25em 0;padding-top:0;padding-bottom:0;height:100%}.ignored-user-name{padding-left:10px;padding-right:10px}.topic-list-item td:first-child,.topic-post{border-left:1px solid transparent}.topic-list tr.selected td:first-child,.topic-list-item.selected td:first-child,.latest-topic-list-item.selected{box-shadow:inset 3px 0 0 #e45735}.featured-topic.selected,.topic-post.selected{box-shadow:-3px 0 0 #e45735}.latest .featured-topic{padding-left:4px}.topic-list-item.selected{background-color:inherit}.keyboard-shortcuts-modal .modal-body{max-height:560px}#keyboard-shortcuts-help div.row{width:100%}#keyboard-shortcuts-help div.row div{float:left;width:32%}#keyboard-shortcuts-help ul{list-style:none;margin-left:0}#keyboard-shortcuts-help ul li{margin:5px 0}#keyboard-shortcuts-help ul kbd{font-size:15px;font-family:Helvetica,Arial,sans-serif;margin:0;color:#444;font-weight:bold;padding:2px 6px;white-space:nowrap}.nav-pills,.nav-stacked{margin-left:0;list-style:none}.nav-pills li a,.nav-stacked li a{display:block;text-decoration:none}.nav-pills>li{float:left;margin-right:5px}.nav-pills>li>a{border:none;padding:6px 12px;color:#222;font-size:1.1487em;line-height:1;box-sizing:border-box;min-height:30px;display:flex;align-items:center;transition:background 0.15s}.nav-pills>li>a .d-icon{margin-right:5px;opacity:0.65}.nav-pills>li>a:hover{color:#e45735;background-color:#f7cdc2}.nav-pills>li a.active{color:#fff;background-color:#e45735}.nav-pills>li a.active .d-icon{opacity:1}.nav-stacked{padding:0;overflow:hidden;background:#e9e9e9}.nav-stacked li{border-bottom:1px solid #e9e9e9;position:relative}.nav-stacked li:last-of-type{border-bottom:0}.nav-stacked li.indent{padding-left:15px}.nav-stacked a{margin:0;padding:13px;font-size:1.1487em;line-height:1;cursor:pointer;color:#222}.nav-stacked a.active{color:#fff;background-color:#e45735}.nav-stacked a.active::after{left:90%;top:33%;content:\" \";position:absolute;border:8px solid transparent;border-left-color:#fff}.nav-stacked .count{font-size:.8706em}.nav-stacked .glyph{font-size:.8706em;width:1.25em;text-align:center;margin-right:0.25em;line-height:1.4}.share-and-invite.modal .modal-body{max-width:475px;min-width:320px;padding:0}.share-and-invite.modal .modal-panel{padding:0.667em}.share-and-invite.modal .modal-header .modal-close{padding-left:0}.share-and-invite.modal .share.modal-panel .header{display:flex;flex-direction:row;align-items:center}.share-and-invite.modal .share.modal-panel .header .title{font-size:1em;font-weight:normal;margin-bottom:8px}.share-and-invite.modal .share.modal-panel .header .title .post-date{color:#919191;font-size:.8706em}.share-and-invite.modal .share.modal-panel .body{display:flex;flex-direction:column}.share-and-invite.modal .share.modal-panel .body .topic-share-url{width:100%;height:auto;box-sizing:border-box}.share-and-invite.modal .share.modal-panel .body .topic-share-url-for-touch a{word-break:break-all;font-size:1.1487em}.share-and-invite.modal .share.modal-panel .body .topic-share-url-for-touch,.share-and-invite.modal .share.modal-panel .body .topic-share-url{margin-bottom:8px}.share-and-invite.modal .share.modal-panel .body .sources{display:flex;align-items:center;flex-wrap:wrap;flex-direction:row}.share-and-invite.modal .share.modal-panel .body .sources .social-link{font-size:2.296em;margin-right:8px}.share-and-invite.modal .invite.modal-panel .error-message,.share-and-invite.modal .invite.modal-panel .success-message{margin-bottom:8px}.share-and-invite.modal .invite.modal-panel .body .invite-user-control,.share-and-invite.modal .invite.modal-panel .body .group-access-control,.share-and-invite.modal .invite.modal-panel .body .show-custom-message-control{margin-bottom:16px}.share-and-invite.modal .invite.modal-panel .body .instructions{margin-bottom:8px}.share-and-invite.modal .invite.modal-panel .body .email-or-username-input{width:100%}.share-and-invite.modal .invite.modal-panel .body .invite-user-input-wrapper{display:flex}.share-and-invite.modal .invite.modal-panel .body .invite-user-input-wrapper div.ac-wrap{flex:1}.share-and-invite.modal .invite.modal-panel .footer{display:flex;align-items:center}.share-and-invite.modal .invite.modal-panel .footer .btn-primary{margin-right:8px}.share-and-invite.modal .invite.modal-panel .footer .btn-primary:last-child{margin-right:0}.svg-icon,.svg-icon-title{height:1em;width:1em;line-height:1;display:inline-flex;position:relative;vertical-align:-0.125em;fill:currentColor;flex-shrink:0;overflow:visible}svg>use{pointer-events:none}.fa-stack{position:relative;width:1em;height:1em;display:inline-block}.fa-stack .fa-stack-1x,.fa-stack .fa-stack-2x{left:0px;top:0px;position:absolute}.fa-stack .fa-stack-2x{height:1.5em;width:1.5em;margin-top:-0.25em;margin-left:-0.25em}.tap-tile-grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tap-tile-grid .tap-tile{padding:10px 5px;display:flex;flex-direction:column;text-align:center;align-items:center;border:1px solid #919191;margin:0 0 20px;width:100px;font-size:.7579em;cursor:pointer}.tap-tile-grid .tap-tile:hover{background-color:#d1f0ff}.tap-tile-grid .tap-tile.active{background-color:#ffffa6}.tap-tile-grid .tap-tile .svg-icon,.tap-tile-grid .tap-tile .svg-icon-title{width:2.5em;height:2.5em;margin-bottom:10px}.tap-tile-grid::after{content:\"\";width:115px}.d-time-input{box-sizing:border-box}.d-time-input .fields{display:flex;align-items:center;border:1px solid #e9e9e9}.d-time-input .fields .field{text-align:center;width:auto;margin:0;border:none;outline:none;box-shadow:none;width:32px}.d-time-input .fields .field.time{width:100%;text-align:left}.d-time-input .fields .field.hours,.d-time-input .fields .field.minutes{text-align:center;width:45px}.d-time-input .fields .field.hours{padding-right:0}.d-time-input .fields .field.minutes{padding-left:10px;width:55px}.animated-placeholder{height:20px;position:relative}.card-avatar-placeholder{width:120px;height:120px;border-radius:100%;position:relative;overflow:hidden}.card-avatar-placeholder:before{animation:placeHolderShimmer 4s linear infinite forwards;position:absolute;left:0;content:\"\";background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 18%, #f8f8f8 33%);height:120px;width:580px}.user-card,.group-card{width:580px;box-shadow:0 4px 14px rgba(0,0,0,0.15);color:#222;background:#fff center center;background-size:cover;transition:opacity 0.2s, transform 0.2s;-webkit-transition:opacity 0.2s, -webkit-transform 0.2s;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9)}.user-card.show,.group-card.show{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.user-card .card-content,.group-card .card-content{padding:10px;background:rgba(255,255,255,0.85);margin-top:80px}.user-card .card-content:after,.group-card .card-content:after{content:\"\";display:block;clear:both}.user-card .card-content a.card-huge-avatar,.group-card .card-content a.card-huge-avatar{outline:none}.user-card.no-bg .card-content,.group-card.no-bg .card-content{margin-top:0}.user-card .card-row:not(.first-row),.group-card .card-row:not(.first-row){margin-top:0.5em}.user-card .first-row .names,.group-card .first-row .names{padding-left:1.25em}.user-card .first-row .names .user-profile-link,.group-card .first-row .names .user-profile-link{display:flex;align-items:center}.user-card .first-row .names .d-icon,.group-card .first-row .names .d-icon{margin:0 0.25em}.user-card .first-row .names .name-username-wrapper,.group-card .first-row .names .name-username-wrapper{margin-right:0;flex:0 1 auto}.user-card .first-row .names span,.group-card .first-row .names span{display:block}.user-card .first-row .usercard-controls,.group-card .first-row .usercard-controls{list-style-type:none;margin:0}.user-card .first-row .usercard-controls button,.group-card .first-row .usercard-controls button{width:100%}.user-card .btn,.group-card .btn{margin-bottom:5px}.user-card h1,.group-card h1{line-height:1.2}.user-card h1 .d-icon,.group-card h1 .d-icon{color:#222}.user-card h3,.group-card h3{display:inline;margin-right:0.5em;color:#222}.user-card h3.email,.user-card h3 .desc,.user-card h3 a,.group-card h3.email,.group-card h3 .desc,.group-card h3 a{color:#646464}.user-card h1,.user-card h2,.user-card h3,.group-card h1,.group-card h2,.group-card h3{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-card h1 a,.user-card h2 a,.group-card h1 a,.group-card h2 a{color:#222}.user-card h2,.user-card h3,.group-card h2,.group-card h3{font-weight:normal}.user-card p,.group-card p{margin:0 0 5px 0}.user-card .first-row{display:flex}.user-card .first-row .avatar-placeholder{width:120px;height:120px}.user-card .first-row .user-card-avatar{margin-top:-50px}.user-card .first-row .new-user a{color:#bdbdbd}.user-card .second-row{max-height:150px;overflow:auto}.user-card .second-row .bio a{color:#222;text-decoration:underline}.user-card .second-row .bio a.mention{text-decoration:none}.user-card .second-row .bio .overflow{max-height:60px;overflow:hidden}.user-card .second-row .suspended{color:#e45735}.user-card .second-row .suspended .suspension-reason-title,.user-card .second-row .suspended .suspension-date{font-weight:bold}.user-card .second-row .profile-hidden{font-size:1.1487em;margin-top:0.5em}.user-card .featured-topic .desc{color:#646464}.user-card .featured-topic a{color:#222;text-decoration:underline}.user-card .location-and-website{display:flex;flex-wrap:wrap;width:100%;align-items:center}.user-card .location-and-website .location,.user-card .location-and-website .website-name{display:flex;overflow:hidden;align-items:center}.user-card .location-and-website .location .d-icon,.user-card .location-and-website .website-name .d-icon{margin-right:0.25em}.user-card .location-and-website .website-name a,.user-card .location-and-website .location span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#222}.user-card .location-and-website .location{margin-right:0.5em}.user-card .location-and-website .website-name a{text-decoration:underline}.user-card .public-user-fields{margin:0}.user-card .badge-section{display:flex;align-items:flex-start}.user-card .badge-section .user-badge,.user-card .badge-section .more-user-badges a{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#f8f8f8;border:1px solid #e9e9e9;color:#222}.group-card .first-row{display:flex}.group-card .first-row .group-card-avatar{margin-top:-50px}.group-card .first-row .avatar-flair{display:flex;background-size:contain;width:120px;height:120px;color:#222}.group-card .first-row .avatar-flair .d-icon{margin:auto;font-size:80px}.group-card .first-row .avatar-flair.rounded{border-radius:50%}.group-card .second-row{max-height:150px;overflow:auto}.group-card .second-row .bio a{color:#222;text-decoration:underline}.group-card .second-row .bio img{max-width:100%;height:auto}.group-card .second-row .bio a.mention{text-decoration:none}.group-card .second-row .bio .overflow{max-height:60px;overflow:hidden}.user-info{display:inline-block;clear:both;margin-bottom:1em}.user-info .user-image{float:left;padding-right:4px;margin-right:10px}.user-info .user-image-inner{position:relative;display:inline-block}.user-info .user-detail{float:left;width:70%;padding-left:5px}@media screen and (max-width: 600px){.user-info .user-detail{font-size:.8706em}}.user-info .user-detail .name-line{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-info .user-detail .username a{font-weight:bold;color:#646464}.user-info .user-detail .name{margin-left:5px;color:#646464}.user-info .user-detail .title{margin-top:3px;color:#919191}.user-info.small{width:333px}@media screen and (max-width: 800px){.user-info.small{width:auto;display:flex}}@media screen and (max-width: 600px){.user-info.small{width:100%}}.user-info.medium{min-height:60px}.user-info.medium .username,.user-info.medium .name{display:block}.user-info.medium .name{margin-left:0}.user-info.medium.badge-info{min-height:80px;min-width:250px}.user-info.medium.badge-info .granted-on{color:#919191}.user-info.medium.badge-info .post-link{display:block;margin-top:0.2em}.user-stream .item,.user-stream .user-stream-item{background-color:#fff;border-bottom:1px solid #e9e9e9}.user-stream .item.moderator-action,.user-stream .user-stream-item.moderator-action{background-color:#ffffa6}.user-stream .item.deleted,.user-stream .user-stream-item.deleted{opacity:0.8;background-color:rgba(242,171,154,0.7)}.user-stream .item.hidden,.user-stream .user-stream-item.hidden{display:block;opacity:0.4}.user-stream .type,.user-stream span.name{color:#222}.user-stream .time,.user-stream .delete-info,.user-stream .draft-type{display:block;float:right;color:#919191;font-size:.7579em}.user-stream .draft-type{clear:right}.user-stream .delete-info .d-icon{font-size:1em}.user-stream .expand-item,.user-stream .collapse-item{float:right;margin-right:0.5em;line-height:1;color:#919191}.user-stream .avatar-link{float:left;margin-right:4px}.user-stream .title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.user-stream .name{font-size:1em;max-width:400px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-stream .edit-reason{background-color:#ffffa6;padding:3px 5px 5px 5px}.user-stream .remove-bookmark,.user-stream .remove-draft{float:right;margin-top:-4px}.user-stream .notification li{display:inline-block}.user-stream .notification p{display:inline-block}.user-stream .notification p span:first-child{color:#222}.user-stream .notification .time{display:inline-block;margin-left:10px;float:none}.user-stream .notification .fa,.user-stream .notification .icon{color:#919191;font-size:1.7511em}.user-stream .excerpt{margin:1em 0 0 0;font-size:1em;word-wrap:break-word;color:#222}.user-stream .excerpt:empty{display:none}.user-stream .excerpt details.disabled{color:#919191}.user-stream .group-member-info{display:flex}.user-stream .child-actions,.user-stream-item-actions,.user-stream-item-draft-actions{margin-top:8px}.user-stream .child-actions .avatar-link,.user-stream-item-actions .avatar-link,.user-stream-item-draft-actions .avatar-link{float:none;margin-right:3px}.user-stream .child-actions .fa,.user-stream-item-actions .fa,.user-stream-item-draft-actions .fa{width:15px;display:inline-block;color:#222}.user-stream .child-actions .fa.d-icon-heart,.user-stream-item-actions .fa.d-icon-heart,.user-stream-item-draft-actions .fa.d-icon-heart{color:#fa6c8d}.user-stream.filter-deleted{grid-column-start:1;grid-column-end:3;grid-row-start:2}.popup-tip{position:absolute;display:block;padding:5px 10px;z-index:600}.popup-tip.bad{background:#ec8972;color:white;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}.popup-tip.hide,.popup-tip.good{display:none}.popup-tip .close{float:right;color:#222;opacity:0.5;font-size:1em;margin:0 0 0 4px;cursor:pointer}.popup-tip .close:hover{opacity:1}#topic-entrance{border:1px solid #e9e9e9;padding:5px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.15);z-index:300;position:absolute;width:133px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#topic-entrance button.full{width:100%;margin-bottom:5px}#topic-entrance button.full .d-icon{display:block;margin:2px auto;transform:rotate(90deg)}#topic-entrance button.btn.jump-bottom{margin:5px 0 0 0}@media print{.avatar,.topic-avatar,header,.topic-above-post-stream-outlet.topic-above-post-stream,.topic-map,.post-menu-area.clearfix,.post-menu-area.nav-pills,.post-menu-area.container,.post-menu-area.wrap,div#topic-footer-buttons,div.suggested-topics,div#progress-topic-wrapper,#topic-progress-wrapper,div.nums,._flyout,.show-topic-admin,#topic-progress,.quote-controls,.topic-status-info,div.lazyYT,.post-info.edits,.post-action,.saving-text,.draft-text,.discourse-modal,div.read-state,div.read-state.read,.edit-topic,a.reply-to-tab,a.reply-new,div.time-gap,#bottom,#footer,.alert-info,.badge-category,.badge-category-bg,.badge-notification.clicks,.crawler-nav,.powered-by-link{display:none !important}a,a:visited{color:#0088cc !important}div.row{border-top:1px solid #aaa}.cooked pre code{max-height:none}#main-outlet{padding:0 !important}html,body{min-width:0;height:auto}.lightbox-wrapper img{max-width:500px !important;height:auto !important}.topic-body{width:auto;margin:0;padding:0;float:none}.topic-post article.boxed .select-posts{width:auto;left:auto;right:0}.gap{width:auto}#topic-title{margin:0;padding:0}#topic-title div div h1{margin:2.5em 0 0 0;padding:0;float:left;font-weight:normal;font-size:normal}a,a:visited{color:#ddd;font-weight:bold}.topic-category-outlet.show-topic-category-location,div.alert.alert-info.alert-emails-disabled,div.profiler-results.profiler-left.profiler-no-controls{display:none}}.topic-list.shared-drafts{margin-bottom:1.5em}.show-more{width:100%;z-index:1}.show-more.has-topics{position:absolute;top:7px}.list-controls{clear:both;margin-bottom:5px}.list-controls .combo-box .combo-box-header{background:#fff;color:#222;border:1px solid #919191;font-size:1em;transition:none}.list-controls .select-kit{align-self:center}.list-controls .select-kit .select-kit-collection{font-size:.8706em;max-height:40vh}.list-controls .select-kit .select-kit-collection .texts,.list-controls .select-kit .select-kit-collection .icons{font-size:1.1487em}.list-controls .select-kit.categories-admin-dropdown,.list-controls .select-kit.tags-admin-dropdown,.list-controls .select-kit.category-notifications-button,.list-controls .select-kit.tag-notifications-button{float:right}.list-controls .select-kit.categories-admin-dropdown button,.list-controls .select-kit.tags-admin-dropdown button,.list-controls .select-kit.category-notifications-button button,.list-controls .select-kit.tag-notifications-button button{display:inline-block}.list-controls .category-heading{max-width:100%}.topic-list-item.visited a.title:not(.badge-notification),.latest-topic-list-item.visited a.title:not(.badge-notification),.category-topic-link.visited a.title:not(.badge-notification){color:#919191}.topic-list-main-link,.topic-list .main-link,.latest-topic-list-item .main-link{font-size:1.1487em}.topic-list-main-link a.title,.topic-list .main-link a.title,.latest-topic-list-item .main-link a.title{padding:15px 0;word-break:break-word;color:#222}.anon .topic-list-main-link a.title:visited:not(.badge-notification),.anon .topic-list .main-link a.title:visited:not(.badge-notification),.topic-list .anon .main-link a.title:visited:not(.badge-notification),.anon .latest-topic-list-item .main-link a.title:visited:not(.badge-notification),.latest-topic-list-item .anon .main-link a.title:visited:not(.badge-notification){color:#919191}.topic-list-main-link a.title.visited:not(.badge-notification),.topic-list .main-link a.title.visited:not(.badge-notification),.latest-topic-list-item .main-link a.title.visited:not(.badge-notification){color:#919191}.topic-list{width:100%;border-collapse:collapse}.topic-list>tbody>tr.has-excerpt .star{vertical-align:top;margin-top:2px}.topic-list>tbody>tr.last-visit{border-bottom:none}.topic-list>tbody>tr .topic-list-separator{text-align:center}.topic-list .topic-list-item-separator{border:none}.topic-list .topic-list-item-separator td{border-bottom:1px solid #ec8972;line-height:0.1em;padding:0;text-align:center}.topic-list .topic-list-item-separator td span{background-color:#fff;color:#ec8972;padding:0 8px;font-size:.8706em}.topic-list th,.topic-list td{line-height:1.4;text-align:left;vertical-align:middle}.topic-list th button .d-icon{color:#919191}.topic-list td{color:#919191;font-size:1em}.topic-list .main-link .raw-topic-link>*{pointer-events:none}.topic-list .unread-indicator.read{display:none}.topic-list .unread-indicator .d-icon{vertical-align:middle;font-size:.5em}.topic-list .link-bottom-line{font-size:.8706em;display:flex;flex-wrap:wrap;align-items:center}.topic-list .link-bottom-line .discourse-tags{flex-wrap:wrap}.topic-list .link-bottom-line a.badge-wrapper.box,.topic-list .link-bottom-line a.discourse-tag.box{padding-top:0;padding-bottom:0}.topic-list .link-bottom-line .discourse-tag.simple:after,.topic-list .link-bottom-line .discourse-tag.box{margin-right:0.25em}.topic-list .topic-featured-link{padding-left:5px}.topic-list .topic-excerpt{font-size:.8706em;margin-top:5px;color:#646464;word-wrap:break-word;line-height:1.4;padding-right:20px}.topic-list .topic-statuses:empty{display:none}.topic-list .num{text-align:center}.topic-list .num a:not(.badge-posts){color:inherit}.topic-list .num a.badge-posts{font-weight:bold}.topic-list .num.posts a{padding:15px 5px}.topic-list .num.activity a{padding:15px 5px}.heatmap-high,.heatmap-high a{color:#fe7a15 !important}.heatmap-med,.heatmap-med a{color:#cf7721 !important}.heatmap-low,.heatmap-low a{color:#9b764f !important}.loading .topic-list{border:0;box-shadow:none}.loading .topic-list tr{background-color:transparent}#list-area{margin-bottom:100px}#list-area .empty-topic-list{padding:10px}#list-area .unseen{background-color:transparent;padding:0;border:0;color:#ec8972;font-size:1em;cursor:default}.topic-list .alert{margin-bottom:0;font-size:1em}.topic-list .spinner{margin-top:40px}ol.category-breadcrumb.hidden{display:none}ol.category-breadcrumb{display:block;float:left;list-style:none;margin:0 10px 10px 0;padding:0}ol.category-breadcrumb li{float:left;margin-right:5px}ol.category-breadcrumb .bread-crumbs-right-outlet{float:left}.d-icon-thumbtack.unpinned{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.top-title-buttons{display:inline}.top-title-buttons button{margin-right:0.5em}div.education{color:#919191}div.education .badge-notification.new-posts{vertical-align:text-bottom}.list-cell,.table-heading,.category-list td,.category-list th{padding:12px 5px;color:#919191}.table-heading{border-bottom:3px solid #e9e9e9}.topic-post-badges{white-space:nowrap;align-self:center;line-height:1.2}section.about{margin-bottom:40px}section.about h3{margin-bottom:15px}section.about table{width:auto}section.about table td{padding:10px}section.about table td.title{width:33%}#simple-container{border-radius:10px;background-color:#fff;padding:20px;width:550px;margin:0 auto}#simple-container .account-created .ac-message{font-size:1.1487em;line-height:1.4}#simple-container .account-created .activation-controls button{margin-right:0.5em}.alert{padding:0.5em 1em;background-color:#fbe6e1;color:#222;position:relative}.alert .close{font-size:1.5157em;position:absolute;top:8px;right:8px}.alert .close .d-icon{color:#bdbdbd}.alert.alert-success{background-color:#b8ffb8;color:#222}.alert.alert-error{background-color:#fbe6e1;color:#222}.alert.alert-info{background-color:#d1f0ff;color:#222}.alert.alert-info.clickable{color:#08c}a.alert.clickable{display:flex}span.bbcode-b{font-weight:bold}span.bbcode-i{font-style:italic}span.bbcode-u{text-decoration:underline}span.bbcode-s{text-decoration:line-through}.reorder-categories thead th{padding-bottom:0.5em}.reorder-categories input{width:4em}@media screen and (max-width: 550px){.reorder-categories input{width:2em}}.reorder-categories #rc-scroll-anchor{padding:0}.reorder-categories table{padding-bottom:150px;margin:0 0.667em}.reorder-categories table td{padding:0.5em 0.5em 0.5em 0}@media screen and (min-width: null){.reorder-categories table td{min-width:15em}}.reorder-categories .badge-wrapper span.badge-category{max-width:20em}@media screen and (max-width: 550px){.reorder-categories .badge-wrapper span.badge-category{max-width:30vw}}.reorder-categories-depth-1{margin-left:20px}.reorder-categories-depth-2{margin-left:40px}.category-list{table-layout:fixed}.category-list .category-text-title{display:flex;align-items:baseline}.category-list .category-name{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:text-top;line-height:1.2}.category-list.with-topics .subcategories-with-subcategories .category-description{display:none}.category-boxes,.category-boxes-with-topics{display:flex;flex-wrap:wrap;justify-content:flex-start;margin-top:1em;margin-bottom:1em;width:100%}.category-boxes .category-box,.category-boxes-with-topics .category-box{position:relative;display:flex;flex-direction:row;align-content:flex-start;box-sizing:border-box;border-width:0;border-left-width:6px;border-style:solid;border-color:#e9e9e9}.mobile-view .category-boxes .category-box,.mobile-view .category-boxes-with-topics .category-box{width:100%}.category-boxes .category-box .parent-box-link:before,.category-boxes-with-topics .category-box .parent-box-link:before{content:\"\";position:absolute;z-index:0;top:0;left:0;right:0;bottom:0}.category-boxes .category-box .logo.aspect-image img,.category-boxes-with-topics .category-box .logo.aspect-image img{display:block;width:auto;height:40px;margin:0 auto 1em auto}@supports (--custom: property){.category-boxes .category-box .logo.aspect-image img,.category-boxes-with-topics .category-box .logo.aspect-image img{--height: 40px;height:var(--height);width:calc(var(--height) * var(--aspect-ratio));max-width:100%}}.category-boxes .category-box-inner,.category-boxes-with-topics .category-box-inner{box-sizing:border-box;width:100%;padding:0;display:flex;flex-direction:column;border-width:2px;border-left-width:0;border-style:solid;border-color:#e9e9e9}.category-boxes.no-logos .logo,.category-boxes-with-topics.no-logos .logo{display:none}.category-boxes .category-box{width:23%;margin:0 1% 1.5em 1%}.category-boxes .category-box>a{width:100%;padding:0}.category-boxes .category-box .category-box-inner{padding:1em}.category-boxes .category-box .category-box-inner .category-logo{float:none;margin:0}.category-boxes.no-logos .category-box .category-box-inner>a{padding:3em 1em}.category-boxes .description{padding-bottom:1em;text-align:center;font-size:1em;color:#919191;position:relative;pointer-events:none}.category-boxes .description .overflow{max-height:6em}.category-boxes .description .overflow div a{pointer-events:auto}.category-boxes h3{font-size:1.3195em;margin-bottom:0.5em;margin-top:0.25em;line-height:1.2;text-align:center;color:#222;overflow:hidden}.category-boxes h4 a{color:#222}.category-boxes .subcategory.with-subcategories{position:relative;border:none;border-left-width:4px;border-left-style:solid;margin-bottom:0.25em}.category-boxes .subcategory.with-subcategories .category-title-link{display:flex}.category-boxes .subcategory.with-subcategories .category-title-link .category-logo{flex:1 0 auto;margin:0.25em 0.5em 0.5em 0;--max-height: 40px}.category-boxes .subcategory.with-subcategories .category-title-link .category-text-title{order:2;line-height:1.2;overflow:hidden;margin-bottom:0.25em;word-wrap:break-word}.category-boxes .subcategory.with-subcategories .category-title-link:before{content:\"\";position:absolute;z-index:0;top:0;left:0;right:0;bottom:0}.category-boxes .subcategory.with-subcategories .subcategory-box-inner{border:1px solid #e9e9e9;border-left:none;padding:0.5em 0.5em 0.4em 0.5em}.category-boxes .subcategory.with-subcategories:not(:last-of-type){margin-bottom:0.75em}.category-boxes .subcategory.with-subcategories .subcategory{margin-bottom:0.25em}.category-boxes .subcategories{display:flex;flex-flow:wrap}.category-boxes .subcategories .subcategory{display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:0.6em}.category-boxes .subcategories .subcategory .badge-wrapper{overflow:hidden}.category-boxes .subcategories .subcategory .subcategory-image-placeholder{display:inline-block;margin-right:0.6em;flex:1 0 auto}.category-boxes .subcategories .subcategory .subcategory-link{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category-boxes .subcategories .subcategory .logo img{display:inline-block;--height: 20px;height:var(--height);width:calc(var(--height) * var(--aspect-ratio));margin:0}.category-boxes-with-topics .category-box{width:31%;margin:0 1% 1.5em 1%;padding:0}.category-boxes-with-topics h3{font-size:1.3195em;text-align:center;overflow:hidden}.category-boxes-with-topics .category-box-heading{padding:1em 1em 0.5em 1em}.category-boxes-with-topics .category-box-heading a[href]{width:100%;color:#222}.category-boxes-with-topics .featured-topics{padding:0.5em 1em 1em 1em}.category-boxes-with-topics .featured-topics ul{color:#919191;list-style:none;padding:0;margin:0}.category-boxes-with-topics .featured-topics li{padding:4px 0;display:flex;align-items:baseline}.category-boxes-with-topics .featured-topics li .overflow{max-height:3em;overflow:hidden}.category-boxes-with-topics .featured-topics li .d-icon{margin-right:0.15em;width:0.76em;height:0.76em}.categories-list .category h3,.categories-list .category h4{margin-bottom:0}.categories-list .category h3 .d-icon,.categories-list .category h4 .d-icon{color:#646464;height:0.76em;width:0.76em;vertical-align:baseline;margin-right:0.1em}.categories-list .category .category-description{margin-top:0.5em;overflow:hidden;color:#646464}.categories-list .category .category-logo.aspect-image{margin-top:0.5em}.category-boxes-with-topics .category-box h3 .d-icon,.category-boxes .category-box h3 .d-icon{margin-right:0}.category-list.subcategories-with-subcategories{margin-top:1em;margin-bottom:0;border-top:1px solid #e9e9e9}.category-list.subcategories-with-subcategories .category-description{font-size:.8706em}.category-list.subcategories-with-subcategories .category-logo.aspect-image{--max-height: 75px}.hljs{display:block;padding:0.5em;color:#333}.hljs-comment,.hljs-doctag{color:#998;font-style:italic}.hljs-keyword,.javascript .hljs-title,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.ruby .hljs-constant{color:#099}.hljs-string,.hljs-tag .hljs-string,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-name,.coffeescript .hljs-params,.scss .hljs-meta{color:#d14;font-weight:bold}.javascript .hljs-title,.lisp .hljs-title,.clojure .hljs-title,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.haskell .hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.css .hljs-keyword,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#090}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in,.lisp .hljs-title,.clojure .hljs-built_in,.hljs-builtin-name{color:#0aadff}.meta{color:#919191;font-weight:bold}.hljs-deletion{background:#fbe6e1}.hljs-addition{background:#b8ffb8}.diff .hljs-meta{color:#e9e9e9}p>code,li>code,pre>code{color:#333;background:#f8f8f8}.category-color-editor input{width:5.5em;margin-right:1em}.category-color-editor .color-title{display:block;margin:1em 0 0.25em}.category-color-editor .colorpicker-wrapper{display:flex;align-items:center}.category-color-editor .colorpicker-wrapper input,.category-color-editor .colorpicker-wrapper .add-on{align-self:flex-start;margin-bottom:0.125em}.category-color-editor .colors-container{display:inline-flex;flex-wrap:wrap}.category-color-editor .colors-container .colorpicker{position:relative;margin:0 0.125em 0.25em;border:1px solid #919191;width:1.25em;height:1.2em;padding:0;flex:0 0 auto;color:white}.category-color-editor .colors-container .colorpicker svg{display:none}.category-color-editor .colors-container .colorpicker.used-color svg{display:inline-flex;opacity:0.8;max-width:70%}#reply-control{position:fixed;display:flex;flex-direction:column;bottom:0;height:0;right:0;left:0;margin-left:auto;margin-right:auto;max-width:1475px;width:100%;z-index:400;transition:height 250ms ease, background 250ms ease, transform 250ms ease, max-width 250ms ease;background-color:#fff;box-shadow:0 -1px 40px rgba(0,0,0,0.12)}#reply-control.hide-preview{max-width:740px}@media screen and (max-width: 1200px){#reply-control{min-width:0}}#reply-control .reply-area{display:flex;flex-direction:column}#reply-control .saving-text,#reply-control .draft-text{display:none;padding-left:10px}#reply-control .saving-text .spinner,#reply-control .draft-text .spinner{margin-left:5px;border-color:#fff;border-right-color:transparent}#reply-control .saving-text .d-icon,#reply-control .draft-text .d-icon{color:#fff}#reply-control.open{height:300px}#reply-control.open.edit-title{height:400px}#reply-control.closed{height:0 !important}#reply-control.draft,#reply-control.saving{height:40px !important;align-items:center;background:#08c;color:#fff;flex-direction:row;width:100%}#reply-control.draft .composer-controls,#reply-control.saving .composer-controls{margin-left:auto;display:flex;padding-right:5px}#reply-control.draft .composer-controls .toggle-toolbar,#reply-control.saving .composer-controls .toggle-toolbar{display:none}#reply-control.draft .composer-controls .d-icon,#reply-control.saving .composer-controls .d-icon{color:#fff}#reply-control.draft{cursor:pointer;display:flex}#reply-control.draft .draft-text{display:block}#reply-control.draft .grippie,#reply-control.draft .saving-text{display:none}#reply-control.draft .toggler{order:2}#reply-control.saving .saving-text{display:flex}#reply-control .reply-to{color:#646464;margin:5px 0 10px 0;display:flex;align-items:center}#reply-control .reply-to .d-icon{color:#919191}#reply-control .reply-to .reply-details{max-width:calc(100% - 175px);flex:1 1 auto;display:flex;align-items:center;white-space:nowrap}#reply-control .reply-to .reply-details .d-icon{opacity:0.8}#reply-control .reply-to .composer-action-title{display:inline-flex;align-items:center;width:auto;max-width:100%}#reply-control .reply-to .composer-action-title .avatar{width:20px}#reply-control .reply-to .composer-action-title .action-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#reply-control .reply-to .composer-action-title .topic-link,#reply-control .reply-to .composer-action-title .user-link,#reply-control .reply-to .composer-action-title .post-link{margin-right:5px}#reply-control .reply-to .composer-action-title .username{margin-right:5px;max-width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 500px){#reply-control .reply-to .composer-action-title .username{display:none}}#reply-control .reply-to .composer-action-title .d-icon{margin-right:5px}#reply-control .reply-to .composer-action-title img.avatar{margin-right:3px}#reply-control .reply-to .composer-controls{display:flex;margin-left:auto}#reply-control .reply-to .composer-controls button{padding:5px 7px}#reply-control .reply-to .composer-controls button.toggler{order:2}#reply-control .whisper,#reply-control .display-edit-reason{font-style:italic}#reply-control .whisper{margin-right:0.25em}#reply-control .display-edit-reason{display:inline-flex}#reply-control .display-edit-reason a{display:inline-flex}#reply-control .display-edit-reason .d-icon{padding:0.3em 0.5em;color:#08c}#reply-control #edit-reason{margin:0 4px}#reply-control .user-selector,#reply-control .title-and-category{display:flex;flex-wrap:wrap;width:100%;align-items:center;margin-bottom:5px;position:relative}#reply-control .user-selector.with-preview,#reply-control .title-and-category.with-preview{width:50%}#reply-control .title-input{position:relative;display:flex;flex:1 1 50%}#reply-control .title-input input{flex-grow:1}#reply-control .with-tags .title-input{flex:1 1 100%}#reply-control .category-input{display:flex;flex:1 0 35%;margin:0 0 5px 10px}@media screen and (max-width: 955px){#reply-control .category-input{flex:1 0 100%;margin-left:0}}#reply-control .category-input .category-chooser{display:flex;flex:1 0 auto;width:auto}#reply-control .with-tags .category-input{flex-basis:25%;margin-left:0;margin-right:5px}@media screen and (max-width: 920px){#reply-control .with-tags .category-input{flex-basis:100%;margin-right:0}}#reply-control .add-warning{margin-left:0.75em;margin-bottom:0;display:flex}#reply-control .add-warning input{margin-right:5px}#reply-control #reply-title{margin:0 0 5px 0;flex-basis:50%}#reply-control .mini-tag-chooser{flex:1 1 25%;margin:0 0 5px 0;background:#fff;z-index:700}@media all and (max-width: 900px){#reply-control .mini-tag-chooser{margin:0;flex:1 1 100%}}#reply-control .popup-tip{z-index:701}#reply-control .wmd-controls{position:relative;display:flex;flex-direction:column;flex-grow:1;min-height:0}#reply-control .submit-panel{display:flex;flex-shrink:0;margin:7px 0 3px 0}#reply-control .save-or-cancel{flex-basis:50%;display:flex;align-items:center;margin-right:auto}#reply-control .save-or-cancel button{flex:0 0 auto}#reply-control .save-or-cancel .cancel{margin-left:1.25em;line-height:normal;color:#646464;transition:color 250ms}#reply-control .save-or-cancel .cancel:hover{color:#e45735}#reply-control .save-or-cancel #draft-status,#reply-control .save-or-cancel #file-uploading{margin-left:25px}#reply-control .save-or-cancel #file-uploading{display:flex;align-items:center}#reply-control .save-or-cancel #file-uploading a{margin-left:5px;color:#646464}#reply-control .save-or-cancel #file-uploading .spinner{margin-right:5px}#reply-control .save-or-cancel #draft-status .d-icon-user-edit{color:#e45735;font-size:20px;vertical-align:-5.5px}#reply-control #draft-status,#reply-control #file-uploading{color:#646464}.cooked>*:first-child{margin-top:0}.autocomplete{z-index:701;position:absolute;width:240px;background-color:#fff;border:1px solid #e9e9e9}.autocomplete ul{list-style:none;padding:0;margin:0}.autocomplete ul li{border-bottom:1px solid #e9e9e9}.autocomplete ul li .d-icon-users{color:#888;padding:0 2px}.autocomplete ul li a{padding:5px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.autocomplete ul li a span.username{color:#222}.autocomplete ul li a span.name{font-size:.8706em;vertical-align:middle}.autocomplete ul li a.selected{background-color:#d1f0ff}.discourse-no-touch .autocomplete ul li a:hover,.discourse-no-touch .autocomplete ul li a.btn-hover{background-color:#ffffca;text-decoration:none}div.ac-wrap.disabled input{display:none}div.ac-wrap.disabled .item a{display:none}div.ac-wrap div.item a.remove,.remove-link{margin-left:4px;font-size:.8706em;line-height:1;padding:1px 3.5px;border-radius:12px;box-sizing:border-box;border:1px solid #e9e9e9}div.ac-wrap div.item a.remove:hover,.remove-link:hover{background-color:#fbe6e1;border:1px solid #ec8972;text-decoration:none;color:#e45735}div.ac-wrap{overflow:auto;max-height:150px;display:flex;flex-wrap:wrap;align-items:center;background-color:#fff;border:1px solid #919191;min-height:30px;box-sizing:border-box}div.ac-wrap div.item{float:left;padding:4px 10px;line-height:1.4}div.ac-wrap div.item span{display:inline-block;line-height:1.2}div.ac-wrap .ac-collapsed-button{float:left;border-radius:20px;position:relative;top:-2px;margin-right:10px}div.ac-wrap input[type=\"text\"]{float:left;display:block;box-shadow:none;border:0;margin:0;background:transparent;min-height:unset}div.ac-wrap input[type=\"text\"].fullwidth-input{width:100%}.future-date-input .examples{color:#919191}.md-table{overflow-y:auto;margin:1em 0}.mobile-view .md-table table{width:100%}.save-animation{-webkit-animation:transformer 5s forwards;animation:transformer 5s forwards}@-webkit-keyframes transformer{90%{-webkit-filter:opacity(1)}100%{-webkit-filter:opacity(0)}}@keyframes transformer{90%{opacity:1}100%{opacity:0}}body.ios-safari-composer-hacks #main-outlet,body.ios-safari-composer-hacks header,body.ios-safari-composer-hacks .grippie,html:not(.fullscreen-composer) body.ios-safari-composer-hacks .toggle-fullscreen{display:none}body.ios-safari-composer-hacks #reply-control{top:0px}body.ios-safari-composer-hacks #reply-control.open{height:calc(var(--composer-vh, 1vh) * 100)}div.ac-wrap.composer-user-selector-limited{width:400px;padding:0 10px;margin-bottom:5px}div.ac-wrap.composer-user-selector-limited .btn-primary{margin-left:0.5em;padding:3px 6px 2px;font-size:.8706em;min-height:unset}body.crawler>header{width:100%;position:absolute;top:0;z-index:9999;background-color:#fff;padding:10px;box-shadow:none;border-bottom:1px solid #bdbdbd;box-sizing:border-box}body.crawler div#main-outlet div.post{word-break:break-word}body.crawler div#main-outlet div.post img{max-width:100%;height:auto}body.crawler .raw-topic-link{display:block;font-weight:bold;margin-bottom:0.25em}body.crawler .topic-list{margin-bottom:1em}body.crawler footer{margin-top:3em;border-top:1px solid #bdbdbd}.crawler-topic-title{margin-top:0.5em}.crawler-post{margin-top:1em;margin-bottom:2em;padding-top:1.5em;border-top:1px solid #e9e9e9}.crawler-post-meta{margin-bottom:1em}.crawler-post-meta .creator{word-break:break-all}.crawler-post-meta .creator a{font-weight:bold}@media screen and (max-width: 768px){.crawler-post-meta .creator{display:inline-block;margin-bottom:0.25em}}.crawler-post-infos{color:#646464;display:inline-block}@media screen and (min-width: 768px){.crawler-post-infos{float:right}}.crawler-post-infos [itemprop=\"position\"]{float:left;margin-right:0.5em}#breadcrumbs{margin-bottom:0.5em;font-size:1.1487em}#breadcrumbs>div{margin-bottom:0.15em}#breadcrumbs .badge-category-bg{background-color:#a6a6a6}#breadcrumbs .category-title{color:#222}.crawler-tags-list span{display:block;margin-bottom:0.15em}.crawler-linkback-list{margin-top:1em}.crawler-linkback-list a{display:block;padding:0.5em 0;border-top:1px solid #e9e9e9}.crawler-nav{margin:1em 0}.crawler-nav ul{margin:0;list-style-type:none}.crawler-nav li{display:inline-block}.crawler-nav a{display:inline-block;padding:0.5em 1em 0.5em 0}.d-icon.d-icon-d-regular,.d-icon.d-icon-d-muted,.d-icon.d-icon-d-watching-first,.d-icon.d-icon-d-watching-first-post{color:#646464}.d-icon.d-icon-d-tracking,.d-icon.d-icon-d-watching{color:#08c}@-webkit-keyframes popoverFadeIn{from{opacity:0}to{opacity:1}}@keyframes popoverFadeIn{from{opacity:0}to{opacity:1}}#d-popover{background-color:#fff;position:absolute;z-index:1600;border-color:#919191;border-style:solid;border-width:1px;max-width:300px;-webkit-animation:popoverFadeIn 0.5s;animation:popoverFadeIn 0.5s;background-clip:padding-box;display:block;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);border-radius:2px}#d-popover.is-under{margin-top:0px}#d-popover.is-under .d-popover-top-arrow{display:block}#d-popover.is-under .d-popover-bottom-arrow{display:none}#d-popover.is-above{margin-top:0px}#d-popover.is-above .d-popover-bottom-arrow{display:block}#d-popover.is-above .d-popover-top-arrow{display:none}#d-popover.retina{border-width:0.5px}#d-popover .d-popover-content{padding:0.5em;font-size:.8706em;overflow-wrap:break-word;-webkit-animation:popoverFadeIn 0.5s;animation:popoverFadeIn 0.5s}#d-popover .d-popover-arrow{border-style:solid;color:transparent;content:\"\";position:absolute;z-index:calc(z(\"tooltip\") - 100)}#d-popover .d-popover-top-arrow{border-color:transparent transparent #919191;top:8px;transform:translate(0, -15px);border-width:0 8px 8px}#d-popover .d-popover-top-arrow:after{border-color:transparent transparent #fff;border-style:solid;border-width:0 7px 7px;bottom:-8px;margin-left:-7px;position:absolute;content:\"\"}#d-popover .d-popover-bottom-arrow{border-color:#919191 transparent transparent;top:calc(100% + 16px);transform:translate(0, -16px);border-width:8px 8px 0}#d-popover .d-popover-bottom-arrow:after{position:absolute;content:\"\";border-color:#fff transparent transparent;border-style:solid;border-width:7px 7px 0;bottom:2px;transform:translate(-7px, 0)}.directory{margin-bottom:100px}.directory .user-info{margin-bottom:0}.directory .period-chooser{float:left}.directory .filter-name{float:right}.directory .spinner{clear:both}.directory table{width:100%;margin-bottom:1em}.directory table td,.directory table th{padding:0.5em;text-align:left;border-bottom:1px solid #e9e9e9}@media screen and (max-width: 800px){.directory table td,.directory table th{padding:0.5em 0.25em}}.directory table td .number,.directory table td .time-read,.directory table th .number,.directory table th .time-read{font-size:1.5157em;color:#919191}@media screen and (max-width: 800px){.directory table td .number,.directory table td .time-read,.directory table th .number,.directory table th .time-read{font-size:1.1487em}}.directory table td .time-read,.directory table th .time-read{white-space:nowrap}.directory table th.sortable{width:13%}.directory table th.sortable .d-icon-heart{color:#fa6c8d;margin:0 0.25em 0 0}.directory .me{background-color:#ffffca}.directory .me .username a,.directory .me .name,.directory .me .title,.directory .me .number,.directory .me .time-read{color:#919191}@keyframes ping{from{transform:scale(0.25);opacity:1}to{transform:scale(2);opacity:0}}@keyframes rotate-forever{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes background-fade-highlight{0%{background-color:#d1f0ff}100%{background-color:transparent}}@keyframes placeHolderShimmer{0%{background-position:-1000px 0}100%{background-position:1100px 0}}.placeholder-animation{animation-duration:4s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:placeHolderShimmer;animation-timing-function:linear;background:#f8f8f8;background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 18%, #f8f8f8 33%)}html{height:100%}body{background-attachment:fixed;background-size:cover;min-height:100%}body:before,body:after{content:\"\";display:table}body:after{clear:both}big{font-size:2em}small{font-size:.7579em}blockquote{border-left:5px solid #e9e9e9;background-color:#f9f9f9;clear:both}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0.5rem}a.cancel{margin-left:1.25em;line-height:normal;color:#646464;transition:color 250ms}a.cancel:hover{color:#e45735}ul.breadcrumb{margin:0 10px 0 10px}a.no-href{cursor:pointer}img.avatar{border-radius:50%}span.relative-date{white-space:nowrap}label{display:flex;margin-bottom:5px;align-items:flex-start}label>.d-icon{align-self:center;margin-right:4px}input[type=\"radio\"],input[type=\"checkbox\"]{margin-top:0.17em;margin-right:0.43em;margin-left:0.1em;line-height:1;cursor:pointer;flex-shrink:0}input[type=\"submit\"],input[type=\"reset\"],input[type=\"button\"],input[type=\"radio\"],input[type=\"checkbox\"]{width:auto}input.invalid{background-color:#fbe6e1}.radio input[type=\"radio\"],.checkbox input[type=\"checkbox\"]{float:left;margin-left:-18px}input,select,textarea{color:#222;caret-color:currentColor}input[class*=\"span\"],select[class*=\"span\"],textarea[class*=\"span\"]{float:none;margin-left:0}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#e9e9e9;border-color:#e9e9e9}input:focus:required:invalid,select:focus:required:invalid,textarea:focus:required:invalid{color:#e45735;border-color:#e45735}input:focus:required:invalid:focus,select:focus:required:invalid:focus,textarea:focus:required:invalid:focus{border-color:#e45735;box-shadow:0 0 6px 0 #e45735}input[type=\"text\"],input[type=\"password\"],input[type=\"datetime\"],input[type=\"datetime-local\"],input[type=\"date\"],input[type=\"month\"],input[type=\"time\"],input[type=\"week\"],input[type=\"number\"],input[type=\"email\"],input[type=\"url\"],input[type=\"search\"],input[type=\"tel\"],input[type=\"color\"]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;padding:4px 10px;margin-bottom:9px;font-size:1em;line-height:1;color:#222;background-color:#fff;border:1px solid #919191;border-radius:0;box-sizing:border-box;min-height:30px}input[type=\"text\"]:focus,input[type=\"password\"]:focus,input[type=\"datetime\"]:focus,input[type=\"datetime-local\"]:focus,input[type=\"date\"]:focus,input[type=\"month\"]:focus,input[type=\"time\"]:focus,input[type=\"week\"]:focus,input[type=\"number\"]:focus,input[type=\"email\"]:focus,input[type=\"url\"]:focus,input[type=\"search\"]:focus,input[type=\"tel\"]:focus,input[type=\"color\"]:focus{border-color:#08c;box-shadow:0 0 6px 0 #08c;outline:0}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input[class*=\"span\"],.input-append input[class*=\"span\"]{display:inline-block}.input-prepend input,.input-prepend select,.input-append input,.input-append select{position:relative;margin-bottom:0;vertical-align:middle;border-radius:0}.input-prepend input:focus,.input-prepend select:focus,.input-append input:focus,.input-append select:focus{z-index:2}.input-prepend .add-on,.input-append .add-on{display:inline-flex;align-items:center;width:auto;padding:0 0.5em;height:28px;background-color:#e9e9e9;border:1px solid #919191}.input-prepend .add-on:first-child,.input-prepend .btn:first-child,.input-append .add-on:first-child,.input-append .btn:first-child{margin-right:-1px}.input-prepend .add-on:last-child,.input-prepend .btn:last-child,.input-append .add-on:last-child,.input-append .btn:last-child{margin-left:-1px;border-radius:0 3px 3px 0}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}textarea{height:auto;background-color:#fff;border:1px solid #919191}textarea:focus{border-color:#08c;box-shadow:0 0 6px 0 #08c;outline:0}select{border:1px solid #e9e9e9}table th{font-weight:normal;color:#919191;text-align:left;padding:0.5em}.sortable{white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.discourse-no-touch .sortable:hover{background-color:#e9e9e9}.sortable .d-icon{margin-left:0.25em}.radio,.checkbox{min-height:18px;padding-left:18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline .radio.inline,.checkbox.inline .checkbox.inline{margin-left:10px}.wrap{margin-right:auto;margin-left:auto;padding:0 8px}.wrap .contents{position:relative}.boxed.white{background-color:#fff}.full-width{margin-left:12px}.coldmap-high{color:#bdbdbd !important}.coldmap-med{color:#919191 !important}.coldmap-low{color:#919191 !important}.top-space{margin-top:10px}.message{border-radius:8px;background-color:#fff;padding:14px}.message h2{margin-bottom:20px}.clear-transitions{transition:none !important}.tip{display:inline-block}.tip.good{color:#090}.tip.bad{color:#e45735}.avatar-wrapper{background-color:#fff;display:inline-block;border-radius:50%}.profiler-results.profiler-left{top:60px !important}.flex-center-align{display:flex;align-items:center}.unread-private-messages{color:#fff;background:#090}.unread-private-messages.badge-notification[href]{color:#fff}.ring-backdrop-spotlight{position:absolute;width:80px;height:80px;top:-18px;right:-18px;background-image:radial-gradient(40px at 50% 50%, transparent 95%, #222 100%);opacity:0.85}.ring-backdrop{position:absolute;width:80px;height:80px;top:-18px !important;right:-18px !important;box-shadow:0 0 0 9999px rgba(34,34,34,0.85);z-index:1200}.ring-first-notification{position:absolute;color:#fff;text-align:left;right:70px;top:60px;width:230px;line-height:1.2}.ring{background:-webkit-radial-gradient(transparent, #090);background:-o-radial-gradient(transparent, #090);background:-moz-radial-gradient(transparent, #090);background:radial-gradient(transparent, #090);top:-11px !important;right:23.5px !important;border-radius:100%;width:20px;height:20px;-moz-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-webkit-transform-origin:center;-moz-animation-duration:3s;-webkit-animation-duration:3s;-moz-animation-name:ping;-webkit-animation-name:ping}.fade{opacity:0;transition:opacity 0.15s linear}.fade.in{opacity:1}.inline-spinner{display:inline-block;margin:0}.spinner{margin:20px auto 20px auto;position:relative;-webkit-animation:rotate-forever 1s infinite linear;animation:rotate-forever 1s infinite linear;height:30px;width:30px;border:4px solid #b6b6b6;border-right-color:transparent;border-radius:50%}.spinner.small{width:10px;height:10px;margin:0;display:inline-block}.content-list h3{color:#919191;font-size:1.1487em;padding-left:5px;margin-bottom:10px}.content-list ul{list-style:none;margin:0}.content-list ul li{border-bottom:1px solid #e9e9e9}.content-list ul li:first-of-type{border-top:1px solid #e9e9e9}.content-list ul li a{display:block;padding:10px;color:#222}.content-list ul li a:hover{background-color:#e9e9e9;color:#222}.content-list ul li a.active{font-weight:bold;color:#222}.form-vertical input,.form-vertical textarea,.form-vertical select,.form-vertical .input-prepend,.form-vertical .input-append{display:inline-block;margin-bottom:0;flex:0 0 auto}.form-vertical .control-group:before,.form-vertical .control-group:after{content:\"\";display:table}.form-vertical .control-group:after{clear:both}.form-vertical .control-label{font-weight:bold;font-size:1.3195em;line-height:1.4}.form-vertical .controls{margin-left:0}#main img.avatar.header{width:45px;height:45px}#main img.avatar.medium{width:32px;height:32px}#main img.avatar.small{width:25px;height:25px}#main img.avatar.tiny{width:20px;height:20px}#main .user-list .user{padding-bottom:5px}#loading-message{position:absolute;font-size:2em;text-align:center;top:120px;left:500px;color:#222}#footer .container{height:50px}#footer .container .contents{padding-top:10px}#footer .container .contents a[href]{color:#fff}.inline{display:inline}.pref-auth-tokens .row{border-bottom:1px solid #ddd;margin:5px 0px;padding-bottom:5px}.pref-auth-tokens .row:last-child{border-bottom:0}.pref-auth-tokens .auth-token-icon{color:#919191;font-size:2.25em;float:left;margin-right:10px}.pref-auth-tokens .auth-token-first{font-size:1.1em}.pref-auth-tokens .auth-token-first .auth-token-device{font-weight:bold}.pref-auth-tokens .auth-token-second{color:#919191}.pref-auth-tokens .auth-token-second .active{color:#090;font-weight:bold}.pref-auth-tokens .auth-token-dropdown{float:right}.pref-auth-tokens .auth-token-dropdown .btn,.pref-auth-tokens .auth-token-dropdown .btn:hover{background:transparent}.pref-auth-tokens .auth-token-dropdown .btn .d-icon,.pref-auth-tokens .auth-token-dropdown .btn:hover .d-icon{color:#646464}.pref-auth-tokens .dropdown-menu{width:120px}.pref-auth-tokens .dropdown-menu .icon{margin-top:auto}.topic-statuses{display:inline;float:left;margin-right:0.15em}.topic-statuses .topic-status{margin:0;display:inline-flex;color:#919191}.topic-statuses .topic-status .d-icon{height:0.76em;width:0.75em}.topic-statuses .topic-status:not(:last-child){margin-right:0.15em}.topic-statuses .d-icon-envelope{color:#e45735}.broken-theme-alert{font-size:15px;font-weight:bold;padding:5px 0;background:#ec8972;text-align:center;z-index:9999;color:#fff}.edit-topic-timer-modal .modal-body{max-height:none;overflow:visible !important}.edit-topic-timer-modal .control-group{display:flex;align-items:center}.edit-topic-timer-modal .control-group>.d-icon{margin-right:5px}.edit-topic-timer-modal input.date-picker,.edit-topic-timer-modal input[type=\"time\"]{width:200px;text-align:left}.edit-topic-timer-modal .radios{margin-bottom:10px}.edit-topic-timer-modal label{display:inline-flex;padding-right:5px;margin-bottom:0;align-items:center}.edit-topic-timer-modal label input{margin-top:0}.edit-topic-timer-modal .btn.pull-right{margin-right:10px}.edit-topic-timer-modal .future-date-input input{margin:0}.edit-topic-timer-modal .future-date-input .alert-info{margin:0 -15px -15px -15px}.edit-topic-timer-modal .future-date-input .btn-clear{display:none}.edit-topic-timer-modal .future-date-input .topic-status-info{border:none;padding:0}.edit-topic-timer-modal .future-date-input .topic-status-info h3{font-weight:normal;font-size:1.1487em}.edit-topic-timer-modal .future-date-input input[disabled]{background:#e9e9e9}.edit-topic-timer-modal .pika-single{position:absolute !important}.mobile-view .edit-topic-timer-modal .select-kit.combo-box{flex:1 0 0px}.ember-select{background-color:#fff;color:#222}img.emoji{width:20px;height:20px;vertical-align:middle}img.emoji.only-emoji{width:32px;height:32px;margin:0.5em 0}.md-table img.emoji.only-emoji,.poll img.emoji.only-emoji{width:20px;height:20px}small img.emoji,sub img.emoji,sup img.emoji{height:1.1em;width:1.1em}.emoji-picker{background-clip:padding-box;z-index:1300;position:fixed;display:none;flex-direction:row;height:320px;color:#222;background-color:#fff;border:1px solid #e9e9e9}.emoji-picker .categories-column{display:flex;flex-direction:column;flex:1 0 0px;align-items:center;justify-content:space-between;border-right:1px solid #e9e9e9;min-width:36px}.emoji-picker .category-icon{display:block;margin:4px auto;-webkit-filter:grayscale(100%);filter:grayscale(100%)}.emoji-picker .category-icon button.emoji{margin:0;padding:0}.emoji-picker .category-icon.current,.emoji-picker .category-icon:hover{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.emoji-picker .main-column{display:flex;flex-direction:column;flex:20}.emoji-picker .list{overflow-y:scroll;-webkit-overflow-scrolling:touch;padding:0;flex:1 0 0px;flex-direction:column}.emoji-picker .section-header{padding:8px;margin-top:2px;margin-bottom:0px;padding-bottom:0px;justify-content:space-between;display:flex;align-items:center;font-weight:bold}.emoji-picker .section-header .title{color:#222}.emoji-picker .section-header .clear-recent .fa{margin:0;padding:0;color:#a6a6a6}.emoji-picker .section-header .clear-recent .fa:hover{color:#222}.emoji-picker .section-group{flex-wrap:wrap;display:flex;align-items:center;justify-content:flex-start;padding:4px}.emoji-picker .footer{align-items:center;display:flex;justify-content:space-between;border-top:1px solid #e9e9e9}.emoji-picker .info{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:8px;font-weight:700;max-width:125px}.emoji-picker .diversity-picker{display:flex;justify-content:flex-end;padding:8px}.emoji-picker .diversity-picker .diversity-scale{width:20px;height:20px;margin-left:5px;border:0;border-radius:3px;display:flex;align-items:center;justify-content:center;cursor:pointer}.emoji-picker .diversity-picker .diversity-scale.default{background:#ffcc4d}.emoji-picker .diversity-picker .diversity-scale.light{background:#f7dece}.emoji-picker .diversity-picker .diversity-scale.medium-light{background:#f3d2a2}.emoji-picker .diversity-picker .diversity-scale.medium{background:#d5ab88}.emoji-picker .diversity-picker .diversity-scale.medium-dark{background:#af7e57}.emoji-picker .diversity-picker .diversity-scale.dark{background:#7c533e}.emoji-picker .diversity-picker .diversity-scale.selected .d-icon{display:block}.emoji-picker .diversity-picker .d-icon{display:none}.emoji-picker .diversity-picker .d-icon{color:#fff;font-size:1em;filter:drop-shadow(0.5px 1.5px 0 rgba(0,0,0,0.3))}.emoji-picker button.emoji{background:transparent;background-position:center;background-repeat:no-repeat;border-radius:0;background-size:20px 20px;-moz-box-sizing:content-box;box-sizing:content-box;height:20px;border:0;vertical-align:top;width:20px;outline:none;padding:3px;margin:2px}.emoji-picker .section-group button.emoji:hover,.emoji-picker .results button.emoji:hover{display:inline-block;vertical-align:top;border-radius:2px;background-color:#9df}.emoji-picker-modal.fadeIn{z-index:1200;position:fixed;left:0;top:0;width:100%;height:100%;opacity:0.8;background-color:black}.emoji-picker .filter{background-color:none;border-bottom:1px solid #e9e9e9;padding:5px;display:flex;position:relative;align-items:center}.emoji-picker .filter input[type=\"text\"]{width:auto !important}.emoji-picker .filter .d-icon-search{color:#a6a6a6;font-size:1.1487em;margin-left:5px;margin-right:5px}.emoji-picker .filter input{height:24px;margin:0;flex:1 0 0px;border:none;box-shadow:none;padding-right:24px;outline:none;color:#222;background:#fff}.emoji-picker .filter input:focus{border:none;box-shadow:none}.emoji-picker .filter input::-ms-clear{display:none}.emoji-picker .results{display:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:4px;flex:1 0 0px}.emoji-picker .filter .clear-filter{position:absolute;right:5px;top:12px;border:0;background:none;color:#a6a6a6;outline:none;display:none}.emoji-picker .filter .clear-filter:hover{color:#222}.error-page{text-align:center;padding-top:2em}.error-page .face{font-size:4.286em}.error-page .reason{font-size:1.7511em}.error-page .url{font-style:italic;font-size:.8706em}.error-page .desc{margin-top:16px}.error-page .desc .d-icon-check-circle{color:#090}.error-page .buttons{display:inline-flex;margin-top:15px}.error-page .buttons button{margin:0 20px}.explain-reviewable{min-width:500px}.explain-reviewable .thresholds{margin-top:1em}.explain-reviewable table{width:100%}.explain-reviewable table td{padding:0.5em}.explain-reviewable td.sum{text-align:right}.explain-reviewable td.sum.total{font-weight:bold}.explain-reviewable tr.total td{background-color:#e9e9e9;font-weight:bold}.explain-reviewable .op{font-weight:bold}.explain-reviewable .score-value-type{color:#919191}.explain-reviewable .op:last-of-type{display:none}.body-page{width:100%;max-width:700px}.about-page .body-page{max-width:unset}.about-page .body-page section:not(.admins):not(.moderators):not(.category-moderators){max-width:700px}.about-page .body-page .about.category-moderators .badge-wrapper.bullet .badge-category{color:#222}.mobile-view .body-page{font-size:1em;margin-top:20px}.body-page li{margin-bottom:8px}.body-page .nav-pills{margin-bottom:20px}.body-page ul:not(.nav-pills),.body-page ol:not(.nav-pills){margin-left:40px}.group-details-container{background:#f8f8f8;padding:20px;margin-bottom:15px;position:relative}.group-outlet{position:relative}.group-members-actions{display:flex;flex-wrap:wrap;width:100%}.group-members-actions input+.group-members-manage{margin-left:auto}.group-members-actions .group-username-filter{margin:0 0 5px 0;vertical-align:middle}.group-info{width:100%}.group-info .group-info-name{font-size:1.5157em;font-weight:bold;color:#222}.group-info .group-info-full-name{font-size:1.3195em;color:#646464}.group-info span{display:inline-block;vertical-align:middle}.group-info .avatar-flair-image{width:50px}.group-info .avatar-flair{background-size:50px;height:50px;width:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-repeat:no-repeat}.group-info .avatar-flair .d-icon{height:27.77778px;width:27.77778px}.group-manage-logs-filter{margin-right:10px}.group-manage-logs-filter:hover{background-color:#e45735}table.group-manage-logs{width:100%}table.group-manage-logs td{padding:0.5em}table.group-manage-logs .group-manage-logs-expand-details{cursor:pointer}table.group-manage-logs .group-manage-logs-expand-details .d-icon{color:#919191}table.group-members{width:100%;table-layout:fixed}table.group-members th:first-child{width:30%;text-align:left}table.group-members th:last-child{width:5%}table.group-members th.group-members-actions{width:5%}table.group-members th{text-align:center}table.group-members tr .user-info{display:block}table.group-members tr .user-info .avatar-flair{color:#222}table.group-members tr td:first-child{text-align:left}table.group-members tr td{text-align:center;color:#919191;padding:0.8em 0}.group-owner-label{color:#222}.form-vertical .group-flair-inputs{display:inline-block}.form-vertical .avatar-flair-preview{position:relative;width:45px}.form-vertical .avatar-flair-preview .avatar-wrapper{background-color:#f4f4f4}.group-form-save{margin-right:20px}.group-add-members .ac-wrap{overflow:hidden}.group-add-members .group-add-members-make-owner label{display:inline;vertical-align:middle}.group-add-members .group-add-members-make-owner input[type=\"checkbox\"]{vertical-align:middle}.groups-header{display:flex;flex-wrap:wrap;margin-bottom:1em}.groups-header .groups-header-new{order:2;margin-bottom:0.5em}.groups-header-filters{display:flex;flex-wrap:wrap}.groups-header-filters .groups-header-filters-name,.groups-header-filters .groups-header-filters-type{margin-right:5px;margin-bottom:0.5em}.groups-header-filters:last-child{margin-right:auto}.groups-boxes{margin:1em 0;width:100%}@supports (display: grid){.groups-boxes{display:grid;grid-template-columns:repeat(4, 24%);grid-column-gap:1.333%;grid-row-gap:1em}@media screen and (max-width: 768px){.groups-boxes{grid-template-columns:repeat(3, 32%);grid-column-gap:2%}}@media screen and (max-width: 450px){.groups-boxes{grid-template-columns:100%}}}.groups-boxes .group-box{display:flex;box-sizing:border-box;cursor:pointer;border:1px solid #e9e9e9;color:#222}@media screen and (max-width: 450px){.groups-boxes .group-box{margin:0}}.discourse-no-touch .groups-boxes .group-box{transition:all 0.25s}.discourse-no-touch .groups-boxes .group-box:hover{box-shadow:0 4px 14px rgba(0,0,0,0.15)}.groups-boxes .group-box .group-membership{color:#919191;margin-top:auto;padding-top:1em}.groups-boxes .group-box .group-membership .is-group-owner,.groups-boxes .group-box .group-membership .is-group-member{color:#090}.groups-boxes .group-box .group-box-inner{padding:1em;width:100%;display:flex;flex-direction:column;box-sizing:border-box}.groups-boxes .group-box .group-box-inner .group-info-wrapper{display:flex;overflow:hidden;flex:0 1 auto}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-avatar-flair{margin-top:0.2em;margin-right:8px;flex:0 0 auto}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-info{flex:1 0 auto;margin-bottom:1em;width:70%}.groups-boxes .group-box .group-box-inner .group-info-wrapper .group-info span{width:100%;word-break:break-word;line-height:1.2}.groups-boxes .group-box .group-box-inner .group-user-count{display:flex;align-items:center;color:#646464}.groups-boxes .group-box .group-box-inner .group-user-count .d-icon{margin-right:0.25em;font-size:0.8em;color:#919191}.groups-boxes .group-box .group-box-inner .group-description{color:#646464;word-wrap:break-word}.groups-boxes .group-box .groups-info-name{font-size:1.1487em;font-weight:bold;color:#222}.groups-boxes .group-box .group-avatar-flair{display:inline-block;color:#222}.groups-boxes .group-box .group-avatar-flair .avatar-flair{background-size:40px;height:40px;width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background-repeat:no-repeat}.groups-boxes .group-box .group-avatar-flair .avatar-flair .d-icon{height:22.22222px;width:22.22222px}.groups-boxes .group-box .avatar-flair-image{width:40px}.d-header{display:flex;align-items:center;width:100%;position:absolute;top:0;z-index:1000;background-color:#4a86cf;box-shadow:0 2px 4px -1px rgba(0,0,0,0.25)}.d-header>.wrap{width:calc(100% - 16px);height:100%}.d-header>.wrap .contents{display:flex;align-items:center;height:100%}.d-header>.wrap .contents .header-row{width:100%}.d-header>.wrap .contents .header-row .logo-wrapper{float:left}.d-header>.wrap .contents .header-row .auth-buttons{float:right;margin-top:0.4em}.d-header>.wrap .contents .header-row .auth-buttons .login-button,.d-header>.wrap .contents .header-row .auth-buttons .signup-button{padding:8px 14px}.docked .d-header{position:fixed;backface-visibility:hidden}.d-header .title{display:flex;align-items:center;height:100%}.d-header .title a,.d-header .title a:visited{color:#fff}.d-header #site-logo{width:auto}.d-header .d-icon-home{font-size:2.296em}.d-header .panel{position:relative;display:flex;flex:0 0 auto;margin-left:auto;align-items:center}.d-header .hamburger-panel,.d-header .user-menu,.d-header .search-menu{width:0}.d-header .header-buttons{display:flex;align-items:center;margin-top:0.2em}.d-header .login-button,.d-header .sign-up-button{padding:6px 10px}.d-header .login-button .fa,.d-header .sign-up-button .fa{margin-right:3px}.d-header .login-button{margin-left:7px}.header-dropdown-toggle .flagged-posts,.header-dropdown-toggle .reviewables,.drop-down .flagged-posts,.drop-down .reviewables,.panel-body .flagged-posts,.panel-body .reviewables{background:#e45735;min-width:6px}.d-header-icons{text-align:center;margin:0 0 0 5px;list-style:none}.d-header-icons>li{float:left}.d-header-icons .icon{position:relative;display:flex;align-items:center;justify-content:center;width:2.2857em;height:2.2857em;padding:0.2143em;text-decoration:none;cursor:pointer;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent;transition:all linear 0.15s;outline:none}.d-header-icons .icon img.avatar{width:2.1333em;height:2.1333em}.d-header-icons .icon:hover,.d-header-icons .icon:focus{background-color:#e9e9e9;border-top:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent}.d-header-icons .icon:hover .d-icon,.d-header-icons .icon:focus .d-icon{color:#919191}.d-header-icons .icon:active{color:#222;background-color:#e9e9e9}.drop-down-mode .d-header-icons .active .icon{position:relative;background-color:#fff;cursor:default;border-top:1px solid #e9e9e9;border-left:1px solid #e9e9e9;border-right:1px solid #e9e9e9}.drop-down-mode .d-header-icons .active .icon .d-icon{color:#919191}.drop-down-mode .d-header-icons .active .icon:after{display:block;position:absolute;top:100%;left:0;z-index:1001;width:100%;height:0;content:\"\";border-top:1px solid #fff}.drop-down-mode .d-header-icons .active .icon:hover{border-bottom:none}.d-header-icons .d-icon{width:100%;font-size:1.7511em;line-height:1.4;display:inline-block;color:#8c8c8c}.d-header-icons .notifications{position:relative}.d-header-icons .ring{position:absolute;top:-9px;z-index:1;margin-left:0}.d-header-icons .header-dropdown-toggle{position:relative}.d-header-icons .badge-notification{position:absolute;z-index:1;left:0;top:-4px;min-width:0.6em}.d-header-icons .unread-notifications{left:auto;right:-3px;background-color:#6cf}.d-header-icons .unread-private-messages,.d-header-icons .ring{left:auto;right:25px}.highlight-strong{background-color:#ffffa6}.search-highlight{font-weight:bold}#search-help table td{padding-right:10px}#search-term::-ms-clear{display:none}.extra-info-wrapper{display:flex;align-items:center;height:100%;line-height:1.2;padding:0 1.5em 0 0.5em;overflow:hidden}.extra-info-wrapper .extra-info{overflow:hidden;width:100%;-webkit-animation:fadein 0.5s;animation:fadein 0.5s}.extra-info-wrapper .topic-link{color:#fff;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .topic-statuses .d-icon{color:#a6a6a6}.extra-info-wrapper .topic-statuses .d-icon-envelope{color:#e45735}.extra-info-wrapper .header-title{margin:0 0 0.15em 0;font-size:1.5157em;width:100%}.archetype-private_message .extra-info-wrapper .header-title{margin:0}.extra-info-wrapper .categories-wrapper{display:inline-flex;align-items:center;max-width:80%;flex:0 1 auto;min-width:1px}.extra-info-wrapper .categories-wrapper .badge-wrapper{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .badge-wrapper{margin-right:8px}.extra-info-wrapper .badge-wrapper.bullet .badge-category-parent-bg,.extra-info-wrapper .badge-wrapper.bullet .badge-category-bg{min-width:5px}.extra-info-wrapper .badge-wrapper.bullet span.badge-category,.extra-info-wrapper .badge-wrapper.bar span.badge-category,.extra-info-wrapper .badge-wrapper.none span.badge-category{color:#bfbfbf}.extra-info-wrapper .topic-header-extra{display:inline-flex;align-items:center;max-width:100%}.extra-info-wrapper .topic-header-extra .discourse-tags{color:#bfbfbf;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.extra-info-wrapper .topic-header-extra .discourse-tags .discourse-tag{display:inline}.topic-header-participants{display:flex;align-items:center;overflow:hidden;font-size:.8706em}.topic-header-participants:not(:first-child){margin-left:5px}.topic-header-participants .trigger-user-card:not(:last-of-type),.topic-header-participants .trigger-group-card:not(:last-of-type){margin-right:5px}.topic-header-participants .trigger-user-card .icon{height:1.641em;display:inline-block}.mobile-view .topic-header-participants .trigger-user-card .icon{height:1.532em}.topic-header-participants .trigger-user-card .icon img{height:100%;width:auto}.topic-header-participants .trigger-group-card{padding:0 5px;border:1px solid #e9e9e9;border-radius:0.25em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topic-header-participants .trigger-group-card .icon{display:flex;align-items:center;height:1.641em;color:#646464}.mobile-view .topic-header-participants .trigger-group-card .icon{height:1.532em}.topic-header-participants .trigger-group-card .icon .d-icon{margin-right:5px}.topic-header-participants .trigger-group-card span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topic-header-participants .more-participants{color:#bfbfbf;margin-left:5px}.modal.history-modal #revision-numbers{display:inline-block;min-width:96px;text-align:center}.modal.history-modal #revision{overflow:auto;border-bottom:3px solid #e9e9e9}.modal.history-modal table.markdown>tbody>tr>td,.modal.history-modal .revision-content{width:47.5%;float:left}.modal.history-modal table.markdown>tbody>tr>td:nth-of-type(2),.modal.history-modal .revision-content:nth-of-type(2){margin-left:5%}.modal.history-modal #revision-details{padding:5px}.modal.history-modal #revisions .row:first-of-type{margin-top:10px}.modal.history-modal ins code,.modal.history-modal ins img,.modal.history-modal .diff-ins code,.modal.history-modal .diff-ins img{border:2px solid #090}.modal.history-modal ins img,.modal.history-modal .diff-ins img{opacity:0.75;filter:alpha(opacity=75)}.modal.history-modal ins a,.modal.history-modal .diff-ins a{color:#090;text-decoration:none}.modal.history-modal img.diff-ins,.modal.history-modal code.diff-ins{border:2px solid #090}.modal.history-modal img.diff-ins{opacity:0.75;filter:alpha(opacity=75)}.modal.history-modal .diff-ins{color:#222;background:#b8ffb8}.modal.history-modal ins{color:#222;background:#b8ffb8;text-decoration:none}.modal.history-modal del code,.modal.history-modal del img,.modal.history-modal .diff-del code,.modal.history-modal .diff-del img{border:2px solid #e45735}.modal.history-modal del img,.modal.history-modal .diff-del img{opacity:0.5;filter:alpha(opacity=50)}.modal.history-modal del a,.modal.history-modal .diff-del a{color:#e45735;text-decoration:none}.modal.history-modal img.diff-del,.modal.history-modal code.diff-del{border:2px solid #e45735}.modal.history-modal img.diff-del{opacity:0.5;filter:alpha(opacity=50)}.modal.history-modal .diff-del{color:#222;background:#fbe6e1;text-decoration:none}.modal.history-modal del{color:#222;background:#fbe6e1;text-decoration:none}.modal.history-modal span.date{font-weight:bold}.modal.history-modal span.edit-reason{background-color:#ffffa6;padding:3px 5px 5px 5px}.modal.history-modal .d-icon-ban{color:#f00}.modal.history-modal .hidden-revision-either{opacity:0.5}.modal.history-modal .hidden-revision-previous .row div:nth-of-type(1),.modal.history-modal .hidden-revision-previous .row td:nth-of-type(1){opacity:0.5}.modal.history-modal .hidden-revision-current .row div:nth-of-type(2),.modal.history-modal .hidden-revision-current .row td:nth-of-type(2){opacity:0.5}.lightbox-wrapper .lightbox{position:relative;display:inline-block;overflow:hidden}.lightbox-wrapper .lightbox:hover .meta{opacity:0.9;transition:opacity 0.5s}.d-lazyload-hidden{box-sizing:border-box}.onebox img.d-lazyload-hidden{border:1px solid #e9e9e9}.cooked img.d-lazyload{transition:opacity 0.4s 0.75s ease}.lightbox-wrapper{display:inline-block}.lightbox-wrapper img{object-fit:cover;object-position:top}.lightbox-wrapper,.lightbox-wrapper *{outline:0}.meta{position:absolute;bottom:0;width:100%;color:#fff;background:#222;opacity:0;transition:opacity 0.2s;display:flex;align-items:center}.meta .filename{margin:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meta .d-icon{margin:6px;opacity:0.8;color:#fff}.meta .d-icon+.filename{margin-left:0px}.meta .informations{margin:6px;padding-right:20px;color:#a6a6a6;font-size:1em;flex-shrink:0;flex-grow:3}.mfp-preloader .spinner{margin:auto}.discourse-no-touch a.lightbox{-webkit-transition:all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);transition:all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1)}.discourse-no-touch a.lightbox:hover{border-radius:5px;box-shadow:0 2px 5px 0 rgba(34,34,34,0.2),0 2px 10px 0 rgba(34,34,34,0.2)}.caps-lock-warning{color:#e45735;font-size:.8706em;font-weight:bold}.discourse-no-touch #login-form{margin:0}.discourse-touch .caps-lock-warning{display:none}#login-form table{width:100%}#login-form a{color:#646464}#login-form td{padding-right:5px}#login-form #credentials tr:first-of-type{margin-bottom:0.75em}#new-account-link{cursor:pointer}.login-modal tbody,.create-account tbody{border:none}.login-modal tr,.create-account tr{border:none}.login-modal tr:not(.instructions) td,.create-account tr:not(.instructions) td{padding:10px 0 0 0}.login-modal td label,.login-modal td input,.create-account td label,.create-account td input{margin-bottom:0;width:100%}.login-modal .modal-footer .inline-spinner,.create-account .modal-footer .inline-spinner{display:inline-flex}.login-modal.awaiting-approval,.create-account.awaiting-approval{display:none}.create-account .disclaimer{color:#919191;margin-top:0.5em}.create-account .user-field>label{margin-top:0.75em;margin-bottom:0;padding-top:5px}.create-account .user-field:first-of-type>label{margin-top:0}.create-account .user-field input[type=\"text\"]{margin-bottom:0;width:100%}.create-account .user-field .select-kit{width:100%}.create-account .user-field .controls{padding-top:5px}.create-account .user-field .controls label{width:auto;text-align:left;font-weight:normal}.create-account .user-field .controls .instructions{margin-top:0.15em;color:#919191;line-height:1.2}.password-reset .instructions label{color:#919191}.invites-show .two-col{position:relative;display:flex}.invites-show .col-image{position:relative;margin-right:20px}@media screen and (max-width: 600px){.invites-show .col-image{display:none}}.invites-show form{margin-top:24px}.invites-show form button.btn-primary{margin-top:10px}.invites-show form label:not(.checkbox-label){font-weight:bold}.invites-show form .controls,.invites-show form .input{margin-bottom:10px}.invites-show form .instructions{color:#919191;margin:0;font-size:.8706em;font-weight:normal;line-height:1.2}.auth-message{padding:0 15px 15px 15px}.auth-message:empty{padding:0}.modal tr.instructions{display:flex;flex-direction:column;margin-top:0.15em}.modal tr.instructions label{color:#919191}button#login-link,button#new-account-link{background:transparent;color:#646464}#security-key{display:flex;flex-wrap:wrap;align-items:center}#security-key button{margin-right:1.5em}#security-key p{margin:0;font-size:1em}#security-key a{display:inline-block;padding:1em 0.5em 1em 0;color:#08c}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1500;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1501;position:fixed;outline:0 !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:\"\";display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:1.4;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:2em;font-family:Arial, Baskerville, monospace}.mfp-close:hover,.mfp-close:focus{opacity:1;outline:0}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:.8706em;line-height:1.2}.mfp-arrow{position:absolute;opacity:.65;top:50%;margin:-55px 0 0;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{outline:0;opacity:1}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:\"\";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:\"\";position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:linear-gradient(45deg, #111 0%, #333 100%)}.mfp-figure small{color:#bdbdbd;display:block;font-size:.8706em;line-height:1.2}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:1.2;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-title a.image-source-link .d-icon{padding-right:5px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media all and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:1.4;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{transform-origin:0;-webkit-transform-origin:0}.mfp-arrow-right{transform-origin:100%;-webkit-transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-zoom-in .mfp-content{opacity:0;transition:all 0.2s;-webkit-transform:scale(0.8);-ms-transform:scale(0.8);transform:scale(0.8)}.mfp-zoom-in.mfp-bg{opacity:0;transition:all 0.3s ease-out}.mfp-zoom-in.mfp-ready .mfp-content{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.mfp-zoom-in.mfp-ready.mfp-bg{opacity:0.8}.mfp-zoom-in.mfp-removing .mfp-content{-webkit-transform:scale(0.8);transform:scale(0.8);opacity:0}.mfp-zoom-in.mfp-removing.mfp-bg{opacity:0}.mfp-force-scrollbars.mfp-wrap{overflow-y:auto !important;overflow-x:auto !important}.mfp-force-scrollbars .mfp-img{max-width:none}.menu-panel.slide-in{position:fixed;right:0;box-shadow:0 2px 4px -1px rgba(0,0,0,0.25)}.menu-panel.slide-in.animate{transition:right 0.2s ease-out, left 0.2s ease-out}.menu-panel.slide-in .panel-body{position:absolute;top:3px;bottom:37px;width:97%}.header-cloak{display:none}.menu-panel.drop-down{position:absolute;top:100%;right:-10px}.menu-panel{border:1px solid #e9e9e9;box-shadow:0 12px 12px rgba(0,0,0,0.15);background-color:#fff;z-index:1000;padding:0.5em;width:300px}.menu-panel hr{margin:3px 0}.menu-panel .panel-header{position:absolute;right:20px}.menu-panel ul{list-style:none;margin:0;padding:0}.menu-panel .panel-body{touch-action:pan-y pinch-zoom;overflow-y:auto;overflow-x:hidden;max-height:100vh}.menu-panel .badge-notification{vertical-align:text-bottom}.menu-links.columned li{width:50%;float:left}.menu-panel li a.widget-link,.menu-panel li.heading a.widget-link{padding:0.25em 0.5em;display:block}.menu-panel li a.widget-link:hover,.menu-panel li a.widget-link:focus,.menu-panel li.heading a.widget-link:hover,.menu-panel li.heading a.widget-link:focus{background-color:#ffffa6;outline:none}.menu-panel li .new,.menu-panel li.heading .new{font-size:.8706em;margin-left:0.5em;color:#919191}.menu-panel .categories-link{display:block;padding:0.25em 0.5em}.menu-panel li.category-link{float:left;background-color:transparent;display:inline-flex;align-items:center;padding:0.25em 0.5em;width:50%;box-sizing:border-box}.menu-panel li.category-link a{display:inline-flex}.menu-panel li.category-link a:hover,.menu-panel li.category-link a:focus{background:transparent}.menu-panel li.category-link .badge-notification{color:#919191;background-color:transparent;display:inline;padding:0;font-size:.8706em;line-height:1.4}.menu-panel li.category-link .badge-wrapper.bar,.menu-panel li.category-link .badge-wrapper.bullet{color:#222;padding:0 0 0 0.15em}.menu-panel li.category-link .badge-wrapper.box{color:#fff}.menu-panel li.category-link .badge-wrapper.box+a.badge.badge-notification{padding-top:2px}.menu-panel li.category-link .badge-wrapper.box span{z-index:-1}.menu-panel b.topics-count{color:#919191;font-weight:normal;font-size:.8706em}.menu-panel span.badge-category{max-width:100px}.menu-panel div.discourse-tags{font-size:.8706em}.user-menu .quick-access-panel{width:100%;display:table;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.user-menu .quick-access-panel h3{padding:0 0.4em;font-weight:bold;margin:0.5em 0}.user-menu .quick-access-panel .d-icon,.user-menu .quick-access-panel:hover .d-icon{color:#919191}.user-menu .quick-access-panel .icon{color:#646464}.user-menu .quick-access-panel li{background-color:#d1f0ff}.user-menu .quick-access-panel li div .fa{display:none}.user-menu .quick-access-panel li span:first-child{color:#222}.user-menu .quick-access-panel li:hover,.user-menu .quick-access-panel li:focus{background-color:#ffffa6;outline:none}.user-menu .quick-access-panel li a{padding:0}.user-menu .quick-access-panel li a>div{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.user-menu .quick-access-panel li p{margin:0;overflow:hidden}.user-menu .quick-access-panel li:not(.show-all){padding:0.25em 0.5em}.user-menu .quick-access-panel li:not(.show-all) .d-icon{float:left;margin-right:5px;padding-top:0.2em}.user-menu .quick-access-panel .is-warning .d-icon-far-envelope{color:#e45735}.user-menu .quick-access-panel .read{background-color:#fff}.user-menu .quick-access-panel .none{padding-top:5px}.user-menu .quick-access-panel .spinner-container{min-height:2em}.user-menu .quick-access-panel .spinner{width:20px;height:20px;border-width:2px;margin:0 auto}.user-menu .quick-access-panel .show-all a{width:100%;display:flex;justify-content:center;align-items:center;min-height:30px;color:#919191;background:#f9f9f9}.user-menu .quick-access-panel .show-all a:hover{color:#222;background:#e9e9e9}.user-menu .dismiss-link{display:inline-block;float:right}div.menu-links-header{width:100%;display:table;border-collapse:separate;border-spacing:0 0.5em}div.menu-links-header .menu-links-row{border-bottom:1px solid #e9e9e9;display:flex;padding:0 4px}div.menu-links-header .menu-links-row li{display:inline-flex;align-items:center;flex-wrap:wrap}div.menu-links-header .menu-links-row li.user{margin-right:auto}div.menu-links-header .menu-links-row li.glyphs{flex-wrap:wrap;text-align:right}div.menu-links-header .menu-links-row li.glyphs a{padding-left:0.6em;padding-right:0.6em}div.menu-links-header .menu-links-row li a{border:1px solid transparent;border-bottom:0}div.menu-links-header .menu-links-row li a.active{border:1px solid #e9e9e9;border-bottom:0;position:relative}div.menu-links-header .menu-links-row li a.active:after{display:block;position:absolute;top:100%;left:0;z-index:1001;width:100%;height:0;content:\"\";border-top:1px solid #fff}div.menu-links-header .menu-links-row li a.active:focus,div.menu-links-header .menu-links-row li a.active:hover{background-color:inherit}div.menu-links-header a:hover,div.menu-links-header a:focus{background-color:#ffffa6;outline:none}div.menu-links-header a{padding:0.3em 0.5em}div.menu-links-header a.user-activity-link{align-items:center;display:flex;margin:-0.5em 0;max-width:130px;overflow:visible}div.menu-links-header a.user-activity-link span.d-label{display:block;max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 350px){div.menu-links-header a.user-activity-link{max-width:125px}}div.menu-links-header li{display:table-cell;width:auto;text-align:center}div.menu-links-header li:first-child{text-align:left}div.menu-links-header li:last-child{text-align:right}div.menu-links-header .fa,div.menu-links-header a{color:#919191}div.menu-links-header .d-icon-user{margin-right:0.475em}.modal-outer-container{width:100%;height:100%}.modal-middle-container{display:flex;height:100%;align-items:center}.modal-inner-container{box-sizing:border-box;flex:0 1 auto;margin:0 auto;max-width:700px;background-color:#fff;box-shadow:0 8px 60px rgba(0,0,0,0.6)}.modal-inner-container .select-kit{width:220px}.modal-inner-container .select-kit.tag-chooser{width:100%}.modal-open .dropdown-menu{z-index:1400}.modal-open .popover{z-index:1500}.modal-open .tooltip{z-index:1600}.bootbox.modal{position:fixed;z-index:1300;overflow:auto;height:auto;background-color:#fff;box-shadow:0 4px 14px rgba(0,0,0,0.15);background-clip:padding-box}.input-hint-text{margin-left:0.5em;color:#a6a6a6}.modal-header{display:flex;padding:10px 15px;border-bottom:1px solid #e9e9e9;align-items:center}.modal-header .title h3{margin-bottom:0}.modal-header .title p{margin:0}.modal-header .modal-close{align-self:flex-start;order:2;margin-left:auto;padding-left:2em}.modal-header .modal-close .close{color:#646464}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background-color:#111}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{animation:fade 0.3s;opacity:0.9;filter:alpha(opacity=90)}@keyframes fade{from{opacity:0}to{opacity:0.9}}@keyframes slidein{from{transform:translateY(-20%)}to{transform:translateY(0)}}.create-account.in .modal-inner-container,.login-modal.in .modal-inner-container{animation:slidein 0.3s}.inline-modal .modal-inner-container{border:1px solid gray}.fixed-modal{position:fixed;top:0;width:100%;height:100%;z-index:1300;overflow:auto}.fixed-modal:not(.history-modal) .modal-body:not(.reorder-categories):not(.poll-ui-builder){max-height:80vh !important}@media screen and (max-height: 500px){.fixed-modal:not(.history-modal) .modal-body:not(.reorder-categories):not(.poll-ui-builder){max-height:65vh !important}}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 10px;border-top:1px solid #e9e9e9}.modal-footer .btn{margin:0 5px 5px 0}.modal-footer .btn[href]{min-height:unset}.modal.edit-category-modal .modal-body textarea{height:10em}@media screen and (min-width: 524px){.modal.edit-category-modal .modal-inner-container{min-width:525px}}.modal .nav{padding:10px 30px 10px 15px;background-color:#fff;border-bottom:1px solid #e9e9e9}.modal .nav li>a{font-size:1em}.modal.hidden{display:none}.modal .modal-body{overflow-y:auto;max-height:400px;padding:1em}.modal .modal-body.full-height-modal{max-height:calc(100vh - 150px)}.modal .modal-body.insert-link{overflow-y:visible}.modal .modal-body.insert-link input{min-width:300px}.modal .modal-body.insert-link .inputs{position:relative}.modal .modal-body.insert-link .inputs .spinner{position:absolute;right:8px;top:-15px;width:10px;height:10px}.modal .modal-body.insert-link .inputs .internal-link-results{position:absolute;top:70%;padding:5px 10px;box-shadow:0 4px 14px rgba(0,0,0,0.15);z-index:5;background-color:#fff;max-height:150px;width:90%;overflow-y:auto}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link{padding:6px;border-bottom:1px solid #e9e9e9;cursor:pointer;display:block}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link:hover,.modal .modal-body.insert-link .inputs .internal-link-results>.search-link:focus{background-color:#ffffa6}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link .search-category{display:flex;align-items:center}.modal .modal-body.insert-link .inputs .internal-link-results>.search-link .discourse-tags{display:inline-block;font-size:.8706em}.modal .modal-body textarea{width:100%;height:80px;box-sizing:border-box}.modal .modal-body p{font-size:1em}.modal .modal-body .archetype-option{margin-bottom:20px}.modal .modal-body .warning{color:#e45735 !important}.modal .password-confirmation{display:none}.modal section.field{padding:0.25em 0;margin-bottom:5px}.modal section.field.with-items{display:flex;align-items:flex-start}.modal section.field .field-item{display:inline-block;margin-right:10px}.modal .modal-body.forgot-password-modal p{font-size:1em}.modal pre code{white-space:pre-wrap;max-width:700px}.reply-where-modal .modal-footer a{display:block}.reply-where-modal .modal-footer .d-modal-cancel{margin:1em 0 0.5em}.reply-where-modal .modal-footer .btn{text-align:left;font-size:1.3195em;line-height:1.2;margin-bottom:10px;font-weight:bold}.reply-where-modal .modal-footer .btn .topic-title{font-weight:normal}.d-modal-cancel{margin-left:1em;color:#919191}.d-modal-cancel:hover{color:#e45735}.delete-user-modal .modal-footer .btn{line-height:1.2}.delete-posts-progress .progress-bar{height:15px;position:relative;background:#bdbdbd;border-radius:25px;overflow:hidden;margin:30px 0 20px}.delete-posts-progress .progress-bar span{display:block;width:0%;height:100%;background-color:#08c;position:relative;transition:width 0.6s linear}.permission-list{list-style:none;margin:0 0 30px;padding:0}.permission-list .name{margin-right:20px;display:inline-block;min-width:100px}.permission-list .permission{margin-left:20px}.permission-list .d-icon-times-circle{margin-left:5px;color:#e45735}.permission-list li{margin-bottom:10px}.edit-category-modal input:not([type=\"checkbox\"]),.edit-category-modal .controls{display:block;margin-bottom:0.5em}.edit-category-modal .disable_info_wrap{position:relative;display:inline-block;float:right}.edit-category-modal .disable_info_wrap .cannot_delete_reason{position:absolute;background:#222;color:#fff;text-align:center;border-radius:2px;padding:12px 8px}.edit-category-modal .disable_info_wrap .cannot_delete_reason::after{top:100%;left:57%;border:solid transparent;content:\" \";position:absolute;border-top-color:#222;border-width:8px}.edit-category-modal .permission-selector{margin-right:0.25em}.edit-category-modal .pending-permission-change-alert{margin-left:auto;max-width:250px;background:#434343;color:#fff;margin-top:10px;padding:5px 10px;position:relative}.edit-category-modal .pending-permission-change-alert .arrow-div{border:solid transparent;content:\" \";position:absolute;border-bottom-color:#434343;border-width:7px;top:-13px;left:200px}.edit-category-modal .add-permission{position:relative;top:0.1em}.edit-category-modal .edit-category-tab-settings>section{margin-bottom:1.5em}.edit-category-modal .edit-category-tab-settings input[type=\"number\"],.edit-category-modal .edit-category-tab-settings input[type=\"text\"],.edit-category-modal .edit-category-tab-settings .select-kit{width:280px}.edit-category-modal .edit-category-tab-settings label{max-width:280px}.edit-category-modal .edit-category-tab-settings .category-email-in-outlet label{flex-wrap:wrap}.edit-category-modal .edit-category-tab-settings .category-email-in-outlet label a{margin-left:1.3em}.edit-category-modal #category-min-tags-from-group{width:100px}.incoming-email-modal .btn{transition:none;background-color:transparent;margin-right:5px}.incoming-email-modal .btn:hover,.incoming-email-modal .btn.active{color:#222}.incoming-email-modal .btn.active{font-weight:bold}.incoming-email-modal .btn:focus{outline:2px solid #e9e9e9}.incoming-email-modal .incoming-email-tabs{margin-bottom:15px}.incoming-email-modal .incoming-email-content{height:300px;max-width:700px;width:90vw}.incoming-email-modal .incoming-email-content textarea,.incoming-email-modal .incoming-email-content .incoming-email-html-part{height:95%;border:none;border-top:1px solid #e9e9e9;padding-top:10px}.incoming-email-modal .incoming-email-content textarea{font-family:monospace;resize:none;border-radius:0;box-shadow:none}.incoming-email-modal .incoming-email-content .incoming-email-html-part{width:calc(100% - 36px);padding:10px 4px 4px 4px}@media screen and (max-width: 760px){.incoming-email-modal .incoming-email-content .incoming-email-html-part{width:calc(100% - 10px)}}.modal .modal-body.change-timestamp #date-container .pika-single{width:100%;box-sizing:border-box;display:flex;justify-content:center}.modal .modal-body.change-timestamp form{display:flex}.modal .modal-body.change-timestamp form .date-picker-wrapper,.modal .modal-body.change-timestamp form input[type=\"time\"]{width:50%}.modal .modal-body.change-timestamp form .date-picker-wrapper{display:flex;flex:1}.modal .modal-body.change-timestamp form .date-picker-wrapper .date-picker{flex:1}.modal .modal-body.change-timestamp form input.date-picker,.modal .modal-body.change-timestamp form input[type=\"time\"]{text-align:left;margin:0}.change-timestamp{max-width:420px}.change-timestamp #date-container .pika-single,.poll-ui-builder #date-container .pika-single{position:relative !important;display:inline-block;margin-top:0.5em}.change-timestamp .date-picker-wrapper,.poll-ui-builder .date-picker-wrapper{min-width:130px;margin-right:0.5em}.change-timestamp input[type=\"time\"],.poll-ui-builder input[type=\"time\"]{width:130px}.change-timestamp form,.poll-ui-builder form{margin:0}.flag-modal{max-height:450px}.flag-modal .flag-action-type-details{width:100%;max-width:500px;line-height:1.4}.flag-message{margin:0}.custom-message-length{color:#919191;font-size:.8706em}.jump-to-post-modal .modal-inner-container{max-width:350px}.jump-to-post-modal .modal-body{overflow-y:visible}.jump-to-post-modal .modal-body #post-jump,.jump-to-post-modal .modal-body .date-picker{margin:0;width:100px}.jump-to-post-modal .modal-body .input-hint-text{color:#222}.jump-to-post-modal .modal-body .jump-to-post-control .index{color:#919191}.jump-to-post-modal .modal-body .jump-to-date-control .input-hint-text{margin-left:0}.jump-to-post-modal .modal-body .separator{display:flex;align-items:center;margin:0.5em auto}.jump-to-post-modal .modal-body .separator hr{flex:1 0 0px}.jump-to-post-modal .modal-body .separator .text{margin:0 0.5em 0 0;color:#919191}.choose-topic-modal #split-topic-name,.choose-topic-modal #choose-topic-title,.choose-topic-modal #choose-message-title{width:100%}.choose-topic-modal .category-chooser{margin-bottom:9px;width:100% !important}.choose-topic-modal .controls.existing-topic{margin-bottom:0.75em}.choose-topic-modal .existing-topic .radio{flex-wrap:wrap}.choose-topic-modal .existing-topic .topic-title{max-width:90%}.choose-topic-modal .existing-topic .topic-categories{width:100%}.modal:not(.has-tabs) .modal-tab{position:absolute;width:95%}.modal.has-tabs .modal-tabs{display:inline-flex;flex-wrap:wrap;width:calc(100% - 20px);flex:1 0 auto;margin:0}.modal.has-tabs .modal-tabs .modal-tab{list-style:none;padding:4px 8px;margin-right:4px;cursor:pointer}.modal.has-tabs .modal-tabs .modal-tab.is-active{color:#fff;background:#e45735}.modal.has-tabs .modal-tabs .modal-tab.is-active.single-tab{background:none;color:#222;padding:4px 0}.page-not-found{margin:0 0 40px 0}.page-not-found h1.title{font-size:2em;line-height:1.2}.page-not-found-search{margin-top:20px}.page-not-found-topics{display:flex}@media screen and (max-width: 600px){.page-not-found-topics{flex-wrap:wrap}}.popular-topics,.recent-topics{box-sizing:border-box;width:50%;max-width:400px;margin-bottom:40px;padding-right:20px}@media screen and (max-width: 600px){.popular-topics,.recent-topics{width:100%}}.popular-topics h2,.recent-topics h2{margin-bottom:10px}.not-found-topic{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:15px}@media screen and (max-width: 600px){.not-found-topic:nth-of-type(n+6){display:none}}.not-found-topic a:not(.badge-wrapper){flex-basis:100%}a.loading-onebox:before{content:\"\";display:inline-flex;float:left;margin:3px 5px 0 0;position:relative;height:10px;width:10px;border:2px solid #bdbdbd;border-right-color:transparent;border-radius:50%;-webkit-animation:rotate-forever 1s infinite linear;animation:rotate-forever 1s infinite linear}.onebox-result{border-left:5px solid #e9e9e9;background-color:#f9f9f9;margin-top:15px;padding:12px;font-size:1em}.onebox-result>.source{margin-bottom:12px;margin-right:10px;display:block;color:#222;position:relative;height:20px}.onebox-result>.source .info{position:absolute;font-size:1em}.onebox-result>.source .info a{color:black;text-decoration:none;padding-right:10px}.onebox-result>.source .info img.favicon{margin-right:3px}.onebox-result .onebox-result-body{padding-top:5px}.onebox-result .onebox-result-body img{max-height:80%;max-width:25%;height:auto;float:left;margin-right:10px}.onebox-result .onebox-result-body h3,.onebox-result .onebox-result-body h4{margin:0}.onebox-result .onebox-result-body code{max-height:400px}.onebox-result .onebox-result-body .metrics{clear:both;padding-bottom:25px}.onebox-result .onebox-result-body .metrics .metric{display:inline-block;padding-left:33px;float:left}.onebox-result .onebox-result-body img.verdict{float:none;margin-right:7px}.onebox-result .onebox-result-body img.popcorn{float:none;margin-left:20px;margin-right:5px}aside.onebox{border:5px solid #e9e9e9;margin-bottom:1em;padding:12px 25px 12px 12px;font-size:1em}aside.onebox header{margin-bottom:8px}aside.onebox header a[href]{color:#919191;text-decoration:none}aside.onebox.stackexchange .source{background:url('/assets/favicons/stackexchange-9e9f17242c6d44137d40a3e55c71129060b103bfa31b7fead4ca3f18358da29f.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.twitterstatus .source{background:url('/assets/favicons/twitter-4ff0f6e16c5f53ddd3b51eeeff8610ea0432d8ebafce89785d75c231386f80d7.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.wikipedia .source{background:url('/assets/favicons/wikipedia-8feddaf7544a35c824f2e4274227fe8e7e7af71ddfe26523fe5fe20497cf5799.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubblob .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubcommit .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubpullrequest .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubissue .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.githubgist .source{background:url('/assets/favicons/github-399dde69546053c9b4b248be54bf45f0a16bbc690b05380fb0973c0208a9dbdb.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.amazon .source{background:url('/assets/favicons/amazon-882adb9da23d489f1d53ba95c6ea4052536732d9caa57ec82a8f8d0f508e48ea.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.instagram .source{background:url('/assets/favicons/instagram-b10f04096a20e469f83a32ec24519d1f20ab473209a77a3c7dbfe767613c9e5f.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.googledocs .source{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox.googledrive .source{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat 0% 50%;background-size:16px 16px;padding-left:20px}aside.onebox .onebox-body{clear:both}aside.onebox .onebox-body h3,aside.onebox .onebox-body h4{font-size:1.1487em;margin:0 0 10px 0}aside.onebox .onebox-body a[href]{color:#08c;text-decoration:none}aside.onebox .onebox-body a[href]:visited{color:#08c}aside.onebox .onebox-body img{max-height:170px;max-width:20%;height:auto;width:auto;float:left;margin-right:10px}@media all and (max-width: 600px){aside.onebox .onebox-body img{max-width:35%}}aside.onebox .onebox-body img.onebox-full-image{max-height:none;max-width:none;width:initial;height:initial}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>:first-child{width:100%}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>img{height:auto}@supports (--custom: property){aside.onebox .onebox-body .aspect-image{max-height:170px;--magic-ratio: calc(var(--aspect-ratio) + 0.15);width:calc(128px * var(--magic-ratio));max-width:20%;float:left;margin-right:10px;height:auto}aside.onebox .onebox-body .aspect-image img{width:100%;height:inherit;max-width:initial;max-height:initial;float:none;margin-right:none}aside.onebox .onebox-body .aspect-image-full-size{max-height:500px;width:calc(500px * var(--aspect-ratio));max-width:100%}aside.onebox .onebox-body .aspect-image-full-size img{width:100%;height:inherit;max-width:initial;max-height:initial;float:none;padding:5px 5px 5px 5px}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]{position:relative}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]::before{content:\"\";display:block;padding-bottom:calc(100% / (var(--aspect-ratio)))}aside.onebox .onebox-body [style*=\"--aspect-ratio\"]>:first-child{position:absolute;top:0;left:0;height:100%}}aside.onebox .onebox-body p:last-child{margin-bottom:4px}aside.onebox .onebox-body .tweet-images{display:block;clear:both}aside.onebox .onebox-body .tweet-images img.tweet-image{margin-top:1em;max-width:100%;max-height:100%;float:none}@media screen and (max-width: 550px){aside.onebox .onebox-body .tweet-images iframe{max-height:70vh}}aside.onebox .onebox-body.user-onebox .fa{margin-right:5px}aside.onebox .onebox-body.user-onebox .full-name,aside.onebox .onebox-body.user-onebox .location{margin-right:10px}aside.onebox .onebox-body .instagram-images,aside.onebox .onebox-body .scale-images{clear:both;position:relative}aside.onebox .onebox-body .instagram-images .instagram-image,aside.onebox .onebox-body .instagram-images .scale-image,aside.onebox .onebox-body .scale-images .instagram-image,aside.onebox .onebox-body .scale-images .scale-image{padding:5px 5px 5px 5px;max-width:100%;max-height:100%;float:none}aside.onebox .onebox-body .instagram-video-icon{bottom:10px;right:10px;position:absolute}aside.onebox .onebox-body .instagram-video-icon:before{opacity:0.8;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32px' height='32px' viewBox='0 0 512 512' fill='white'%3E%3Cpath d='M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z'%3E%3C/path%3E%3C/svg%3E\")}.googledocs-onebox-logo{width:60px;height:50px;float:left}.googledocs-onebox-logo.g-docs-logo{background:url('/assets/favicons/google_branding/logo_docs_48px-ba6cf22f5336743da95749fb1172023f37e55e8783a2766de8d9097b4cc6b5b9.png') no-repeat}.googledocs-onebox-logo.g-forms-logo{background:url('/assets/favicons/google_branding/logo_forms_48px-d64ec45f889caa62cd4c52bcff1475ef487b9662b5ed6104aa9fa6f8557b09fc.png') no-repeat}.googledocs-onebox-logo.g-sheets-logo{background:url('/assets/favicons/google_branding/logo_sheets_48px-ca5da2b813ac5382a7b3a42d1327ddbced98467021466efe5494c25ca50f5a38.png') no-repeat}.googledocs-onebox-logo.g-slides-logo{background:url('/assets/favicons/google_branding/logo_slides_48px-a752c1f8e690496c7b22265f77ebfbc2d584aa42b2e4392f72b1c5a144bbb95f.png') no-repeat}.googledocs-onebox-logo.g-calendar-logo{background:url('/assets/favicons/google_branding/logo_calendar_48px-7e0f251c12ecc35f5260919fe00b3789c58257b76c4288d458a6718f12367145.png') no-repeat}.googledocs-onebox-logo.g-drive-logo{background:url('/assets/favicons/google_branding/logo_drive_48px-627c9c6fb138ae2f9ff0afd03ab703662c596f9a1a2d7f6de4a0038f9287827e.png') no-repeat}.gdocs-onebox-splash{background-color:#d6d6d6;color:#222;border:1px inset #222}.gdocs-onebox-splash .gdocs-onebox-logo{display:inline-block;width:128px;height:128px}.gdocs-onebox-splash .gdocs-onebox-logo.g-calendar-logo{background:url('/assets/favicons/google_branding/logo_calendar_128px-231ebf870f91f296642eb4e881c76013c818b2f677aec3b1faaac33f72811f56.png') no-repeat}aside.onebox .onebox-body .onebox-avatar{max-height:none;max-width:none;height:60px;width:60px}blockquote aside.onebox{border-left:5px solid #e9e9e9;background-color:#f9f9f9}pre.onebox code ol.lines li:before{position:absolute;display:inline-block;width:35px;left:-40px;color:#afafaf;text-align:right;padding-right:5px;font-size:.8706em;line-height:1.4;content:counter(li-counter);counter-increment:li-counter}pre.onebox code ol{margin-left:0;line-height:1.4}pre.onebox code{background-color:#fff}pre.onebox code li{padding-left:5px}pre.onebox code ol.lines{position:relative;margin:0 0 0 40px}pre.onebox code ol.lines li{list-style-type:none;padding-left:5px;margin-left:0;border-left:1px solid #cfcfcf;min-height:1.5em;white-space:pre}pre.onebox code li.selected{background-color:#f8eec7}pre.onebox code{white-space:normal}.onebox.githubpullrequest .onebox-body h4,.onebox.githubcommit .onebox-body h4,.onebox.githubissue .onebox-body h4{margin-bottom:5px}.onebox.githubpullrequest .onebox-body>.github-icon,.onebox.githubcommit .onebox-body>.github-icon,.onebox.githubissue .onebox-body>.github-icon{float:left;margin-right:5px}.onebox.githubpullrequest .github-row,.onebox.githubcommit .github-row,.onebox.githubissue .github-row{display:flex}.onebox.githubpullrequest .github-icon-container,.onebox.githubcommit .github-icon-container,.onebox.githubissue .github-icon-container{display:flex;align-items:flex-start;margin-right:5px}.onebox.githubpullrequest .github-icon,.onebox.githubcommit .github-icon,.onebox.githubissue .github-icon{fill:#646464;width:40px;height:40px}.onebox.githubpullrequest .branches,.onebox.githubcommit .branches,.onebox.githubissue .branches{font-size:.8706em}.onebox.githubpullrequest .branches code,.onebox.githubcommit .branches code,.onebox.githubissue .branches code{word-break:break-all}.onebox.githubpullrequest .github-info-container,.onebox.githubcommit .github-info-container,.onebox.githubissue .github-info-container{width:100%}.onebox.githubpullrequest .github-info,.onebox.githubcommit .github-info,.onebox.githubissue .github-info{display:flex;align-items:center;flex-wrap:wrap;width:100%}.onebox.githubpullrequest .github-info>div,.onebox.githubcommit .github-info>div,.onebox.githubissue .github-info>div{margin:2.5px 0}.onebox.githubpullrequest .github-info>div:not(:last-child),.onebox.githubcommit .github-info>div:not(:last-child),.onebox.githubissue .github-info>div:not(:last-child){margin-right:15px}.onebox.githubpullrequest .github-info .lines,.onebox.githubcommit .github-info .lines,.onebox.githubissue .github-info .lines{font-weight:bold}.onebox.githubpullrequest .github-info .lines .added,.onebox.githubcommit .github-info .lines .added,.onebox.githubissue .github-info .lines .added{color:#090}.onebox.githubpullrequest .github-info .lines .removed,.onebox.githubcommit .github-info .lines .removed,.onebox.githubissue .github-info .lines .removed{color:#e45735}.onebox.githubpullrequest .onebox-avatar-inline,.onebox.githubcommit .onebox-avatar-inline,.onebox.githubissue .onebox-avatar-inline{height:20px;width:20px;border-radius:2px;float:none;margin:0;padding:0;vertical-align:middle;max-width:none}.onebox.githubpullrequest .github-content,.onebox.githubcommit .github-content,.onebox.githubissue .github-content{margin:5px 0 0 0}.onebox.githubpullrequest .labels span,.onebox.githubcommit .labels span,.onebox.githubissue .labels span{background-color:#919191 !important;color:#fff !important;padding:2px 4px !important}.onebox-body .github-commit-status{background:#f5f5f5;border-radius:5px;margin:0 0 5px 100px;padding:10px}.onebox-body .status_tag{display:inline-block;color:#fff;padding:1px 4px;border-radius:3px;font-weight:bold;margin-bottom:5px;text-transform:capitalize}.onebox-body .build_status{padding:2px;font-size:.8706em}.onebox-body .status_tag.open{background-color:#6cc644}.onebox-body .status_tag.merged{background-color:#6e5494}.onebox-body .status_tag.closed{background-color:#bd2c00}.onebox-body .github-content-right{margin-left:100px}aside.onebox.twitterstatus .onebox-body h4{margin-bottom:0}.onebox.twitterstatus .thumbnail{width:48px;height:48px}.onebox.twitterstatus p,.onebox.twitterstatus .tweet{white-space:pre-line;padding-top:3px;margin-left:70px}.onebox.twitterstatus p .quoted,.onebox.twitterstatus .tweet .quoted{border:1px solid #e9e9e9;padding:0px 14px 0px 12px;white-space:normal;margin-top:15px}.onebox.twitterstatus p .quoted .quoted-link,.onebox.twitterstatus .tweet .quoted .quoted-link{color:inherit}.onebox.twitterstatus p .quoted .quoted-title,.onebox.twitterstatus .tweet .quoted .quoted-title{font-weight:bold;margin:5px 2px}.onebox.twitterstatus p .quoted .quoted-title span,.onebox.twitterstatus .tweet .quoted .quoted-title span{font-weight:lighter;color:#919191}.onebox.twitterstatus p .quoted div,.onebox.twitterstatus .tweet .quoted div{margin-bottom:5px}.onebox.twitterstatus .date{clear:left}.onebox.imgur-album .outer-box,.onebox.google-photos-album .outer-box,.onebox.flickr-album .outer-box{position:absolute;z-index:1;font-size:.8706em;color:#fff;background-color:rgba(0,0,0,0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:690px;padding:5px 0}.onebox.imgur-album .outer-box .inner-box,.onebox.google-photos-album .outer-box .inner-box,.onebox.flickr-album .outer-box .inner-box{padding-left:10px;padding-right:10px;overflow:hidden;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.onebox.imgur-album .outer-box .inner-box .album-title,.onebox.google-photos-album .outer-box .inner-box .album-title,.onebox.flickr-album .outer-box .inner-box .album-title{width:100%;font-size:1.1487em;line-height:1.4;color:#ccc;text-decoration:none}aside.onebox.stackexchange .onebox-body img:not(.onebox-avatar){max-height:60%;max-width:10%}aside.onebox.stackexchange .onebox-body .tags{color:gray}.onebox-metadata{color:#919191}.onebox.xkcd .onebox-body img{max-width:100% !important;float:none !important}.onebox.pdf .onebox-body .pdf-onebox-logo{width:60px;height:50px;float:left;background:url('/assets/favicons/pdf_64px-4e8a1bffc220412e7b3b299e56ef313353621a4c6bf05066d32d3b792e7820a7.png') no-repeat;background-size:48px 48px;display:inline-block}.onebox.pdf .onebox-body .filesize{color:gray}.onebox.whitelistedgeneric .label1,.onebox.whitelistedgeneric .label2{color:#919191}.onebox.whitelistedgeneric .label1{float:left}.onebox.whitelistedgeneric .label2{float:right}.onebox.whitelistedgeneric .site-icon,.onebox.gfycat .site-icon{width:16px;height:16px;margin-right:3px}.onebox.gfycat p span.label1 a{white-space:nowrap}.onebox.instagram div.instagram-description{color:#919191;padding-top:10px}.onebox.githubcommit pre.message{padding:0}.onebox.twitterstatus .like,.onebox.twitterstatus .retweet{color:#919191;padding-left:10px}.onebox.twitterstatus .like svg,.onebox.twitterstatus .retweet svg{fill:currentColor;vertical-align:middle}.mobile-view article.onebox-body{border-top:none}.onebox.video-onebox,.video-container{position:relative;padding:0 0 56.25% 0;width:100%}.onebox.video-onebox video,.video-container video{position:absolute;width:100%;height:100%}.onebox-placeholder-container{position:relative;width:100%;padding:0 0 48.25% 0;background-color:#e9e9e9}.onebox-placeholder-container .placeholder-icon{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.onebox-placeholder-container .placeholder-icon.video:before{opacity:0.8;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='grey' d='M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.audio:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.map:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z'%3E%3C/path%3E%3C/svg%3E\")}.onebox-placeholder-container .placeholder-icon.generic:before{opacity:0.4;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg width='128px' height='128px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z'%3E%3C/path%3E%3C/svg%3E\")}.redirection-warning{margin:0 auto;text-align:center;font-size:1.7511em;line-height:1.2}.request-group-membership-form label{font-weight:bold}.group-add-membership-request-template{width:98%}#request-access{width:325px;margin:0 auto}#request-access input[type=\"text\"]{width:320px;height:30px;font-size:1.5157em}#request-access input[type=\"submit\"]{font-size:1.5157em;padding:10px}.reviewable .flagged-post-header{width:100%;display:flex;justify-content:space-between}.reviewable .status{color:#919191}.reviewable .status span.approved{color:#090}.reviewable .status span.approved .d-icon{color:currentColor}.reviewable .status span.rejected{color:#e45735}.reviewable .status span.rejected .d-icon{color:currentColor}.reviewable .explain{margin-left:0.5em}.reviewable .nav-pills{margin-bottom:1em}.reviewable .reviewable-container{display:flex;flex-direction:row;margin-top:1em}.reviewable .reviewable-container .reviewable-list{flex:1;box-sizing:border-box;max-width:760px;min-width:0;margin-right:auto}.reviewable .reviewable-container .reviewable-filters{width:250px;height:100%;box-sizing:border-box}.reviewable .reviewable-container .reviewable-list+.reviewable-filters{margin-left:1em}.reviewable-settings h4{margin-top:1em;margin-bottom:1em}.reviewable-settings .saved{margin-left:0.5em}.reviewable-settings .reviewable-score-type{display:flex;margin-bottom:0.5em}.reviewable-settings .reviewable-score-type .select-kit{min-width:10em}.reviewable-settings .reviewable-score-type .title{width:30%}.reviewable-user-info{margin:0.5em 0}.reviewable-user-info .reviewable-user-fields{margin-bottom:2em}.reviewable-user-info .reviewable-user-details{border-bottom:1px solid #e9e9e9;padding-bottom:0.25em;display:flex;margin-bottom:0.5em}.reviewable-user-info .reviewable-user-details .name{width:8em;font-weight:bold;margin-right:1em}.no-review{margin-top:1em}.reviewable-filters{background-color:#f8f8f8;padding:1em;margin-bottom:1em}.reviewable-filters .reviewable-filter{display:flex;flex-direction:column;margin:0 0 1em 0}.reviewable-filters .reviewable-filter .filter-label{margin:0 0 0.5em 0}.reviewable-filters .reviewable-filter .score-filter{margin:0;width:100%}.reviewable-filters .reviewable-filter .category-chooser{width:100%}.reviewable-filters .reviewable-filter .d-date-time-input-range{width:inherit;border:none;padding:0}.reviewable-filters .reviewable-filter .d-date-time-input-range .d-date-input{flex:1 1 auto;border:1px solid #919191}.reviewable-claimed-topic{display:flex;align-items:center}.reviewable-claimed-topic .btn-small{margin-left:0.5em}.reviewable-actions .claimed-actions{display:flex;flex:1 1 100%;margin-right:0;justify-content:space-between;align-items:center;margin-bottom:0.5em}.claimed-by{display:flex;align-items:center}.claimed-by .claimed-username{margin-left:0.5em}.reviewable-topics{width:100%}.reviewable-topics tbody td{padding:0.5em}.reviewable-topics .reviewable-details{display:flex;justify-content:flex-end}.reviewable-topics .reviewable-details .btn{display:flex;align-items:center;margin-left:1em}.reviewable-filters .topic-filter .btn{display:flex;width:auto}.reviewable-filters .refresh{height:1em;display:flex}.reviewable-filters .score-filter{width:5em}.user-flag-percentage{display:flex;align-items:center;margin-left:0.5em}.user-flag-percentage .percentage-label{margin-right:0.25em}.user-flag-percentage .percentage-label.agreed{color:#090}.user-flag-percentage .percentage-label.agreed+.d-icon{color:#090}.user-flag-percentage .percentage-label.disagreed{color:#e45735}.user-flag-percentage .percentage-label.disagreed+.d-icon{color:#e45735}.user-flag-percentage .percentage-label.ignored{color:#919191}.user-flag-percentage .d-icon{font-size:0.9em}.reviewable-item{padding-top:2em;border-top:1px solid #e9e9e9;padding-bottom:1em}.reviewable-item .topic-statuses{font-size:1.3195em}.reviewable-item .reviewable-meta-data{color:#919191;display:flex;width:100%;margin-bottom:0.5em;font-size:.8706em;align-items:baseline}.reviewable-item .reviewable-meta-data .reviewable-type{margin-right:0.25em}.reviewable-item .reviewable-meta-data .reply-count{margin-left:1em}.reviewable-item .reviewable-meta-data .created-at{margin-left:1em;margin-right:auto}.reviewable-item .reviewable-meta-data .created-at a{color:#919191}.reviewable-item .reviewable-meta-data .score{font-size:.8706em}.reviewable-item .reviewable-contents{display:flex;flex-wrap:wrap;margin-bottom:2em}.reviewable-item .reviewable-actions{display:flex;flex-wrap:wrap;width:100%}.reviewable-item .reviewable-actions button{white-space:nowrap}.reviewable-item .reviewable-actions .reviewable-action,.reviewable-item .reviewable-actions .reviewable-action-dropdown{margin-right:0.5em}.reviewable-histories{margin-top:1em}.reviewable-scores{min-width:50%;color:#646464}.reviewable-scores .reviewed-by .date{margin-left:0.5em}.reviewable-scores .user,.reviewable-scores .reviewed-by{display:flex;align-items:center}.reviewable-scores .user-flag-percentage{margin-left:0.5em}.reviewable-scores .d-icon{font-size:.8706em;color:#919191}.reviewable-scores .badge-notification{line-height:1.2;vertical-align:text-top}.reviewable-scores tbody{border-width:1px}.reviewable-scores tbody td{white-space:nowrap;vertical-align:baseline}.reviewable-scores tbody td.user a,.reviewable-scores tbody td.reviewed-by a{max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reviewable-scores tbody td:last-of-type{width:100%;white-space:normal}.reviewable-scores tbody>tr>th{text-align:left}.reviewable-scores tbody>tr>th:not(:empty),.reviewable-scores tbody>tr>td:not(:empty){padding:0.5em 1em 0.5em 0}@media screen and (max-width: 450px){.reviewable-scores tbody>tr>th,.reviewable-scores tbody>tr>td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-right:0.5em}}.reviewable-scores tbody .reviewable-score-spacer{padding-right:1em}.reviewable-score-reason{margin:0.5em 0;max-width:690px;margin-bottom:0.5em}.reviewable-conversation{margin:0.5em 0}.reviewable-conversation .reviewable-conversation-post{max-width:690px;margin-bottom:0.5em}.reviewable-conversation .reviewable-conversation-post .username{font-weight:bold;margin-right:0.25em}.reviewable-conversation .controls{margin-top:0.25em}.reviewable-item .show-raw-email{color:#919191;font-size:.7579em}.reviewable-item .post-title{background-color:yellow}.reviewable-item .created-by{margin-right:1em;padding-top:0.35em}@media screen and (max-width: 450px){.reviewable-item .created-by{float:left;margin-bottom:1em}}.reviewable-item .names{font-weight:bold}.reviewable-item .post-contents-wrapper{width:100%;margin-top:1em;min-width:275px;word-break:break-word}@media screen and (min-width: 450px){.reviewable-item .post-contents-wrapper{display:flex}}.reviewable-item .reviewable-post-header{display:flex;justify-content:space-between;max-width:690px;width:690px;align-items:center}.reviewable-item .reviewable-post-header .reviewable-reply-to{display:flex;align-items:center;color:#919191;font-size:0.9em}.reviewable-item .reviewable-post-header .reviewable-reply-to .d-icon{margin-right:0.5em}.reviewable-item .post-contents{width:100%;min-width:0}.reviewable-item .post-body{max-width:690px;max-height:300px;margin-top:0.5em;overflow-y:auto}.reviewable-item .post-body p,.reviewable-item .post-body aside{margin:0 0 1em 0}.reviewable-item .post-body pre,.reviewable-item .post-body code{word-break:break-all}.reviewable-item .post-topic{width:100%;color:#919191;margin-bottom:0.75em}.reviewable-item .post-topic .title-text{font-weight:bold;color:#222;display:block;font-size:1.3195em;margin-right:0.75em}.reviewable-item .post-topic .topic-statuses:empty{display:none}.editable-fields{width:100%}.editable-fields .editable-created-by{display:flex;margin-bottom:0.5em}.editable-fields .editable-created-by .avatar{margin-right:0.25em}.editable-fields .editable-field{margin-bottom:0.5em}.editable-fields .editable-field .mini-tag-chooser{margin:0}.editable-fields .editable-field .reviewable-input-text{width:100%;margin-bottom:0}.editable-fields .editable-field .reviewable-input-textarea{width:100%;height:10em}@media screen and (max-width: 1000px){table.reviewable-scores{width:100%;display:block}table.reviewable-scores tbody{width:calc(100% - 5px);display:block;clear:both}tr.reviewable-score{display:grid;grid-template-columns:auto auto 1fr}td.reviewable-score-spacer{display:none}}@media screen and (max-width: 450px){tr.reviewable-score{grid-template-columns:auto auto auto}}.rtl .d-icon-caret-right{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:\"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=cos(180), M12=-sin(180), M21=sin(180), M22=cos(180))\";-ms-filter:\"progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=cos(180), M12=-sin(180), M21=sin(180), M22=cos(180))\";zoom:1}.rtl .nav-stacked a.active::after{border-left-color:transparent !important;border-right-color:#fff !important}.rtl code{direction:ltr !important;text-align:left !important}.rtl .pull-left{float:right !important}.rtl .autocomplete{left:27px}.rtl .admin-customize .current-style .toggle-mobile{position:static !important;float:left !important}.rtl .admin-customize .current-style .toggle-maximize{position:static !important;float:left !important}.rtl .dashboard-left{float:right !important}.rtl .dashboard-right{float:left !important}.cooked ul[dir=\"ltr\"],.d-editor-preview ul[dir=\"ltr\"],.cooked ul[dir=\"rtl\"],.d-editor-preview ul[dir=\"rtl\"]{padding-right:40px;padding-left:40px}.rtl aside.onebox.githubblob{padding:12px 25px 12px 12px !important;direction:ltr !important}.rtl aside.onebox.githubblob .source{background-position:0 50% !important;padding-right:20px}.rtl pre.onebox code ol.lines{margin:0 0 0 40px !important}.rtl pre.onebox code ol.lines li:before{right:-40px;padding-left:5px;padding-right:0;text-align:right !important}.rtl pre.onebox code ol.lines li{padding-right:5px;padding-left:0;margin-right:0;border-right:1px solid #cfcfcf;border-left:none !important}@media (max-width: 700px){.rtl .admin-detail.mobile-open{transition:transform 0.3s ease;-webkit-transform:translateX(-250px);transform:translateX(-250px)}}@media (max-width: 500px){.rtl .admin-detail.mobile-open{transition:transform 0.3s ease;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@media (max-width: 700px){.rtl .admin-detail.mobile-closed{transition:transform 0.3s ease;-webkit-transform:translateX(0);transform:translateX(0);margin-left:-10px !important;padding-left:10px !important}}.rtl .admin-nav .nav-stacked{margin:0 -10px 0 10px !important}.search-menu .search-input{position:relative;padding:0.5em 3px}.search-menu .search-context .show-help{float:right}.search-menu .heading{padding:5px 0 5px 5px}.search-menu .heading .filter{padding:0 5px}.search-menu input[type=\"text\"]{box-sizing:border-box;width:calc(100% - 6px);height:32px}.search-menu .search-context{padding:0 5px}.search-menu .search-context label{margin-bottom:0}.search-menu .search-context+.results{margin-top:5px}.search-menu .results{display:flex;flex-direction:row}.search-menu .results .list{min-width:100px}.search-menu .results .list .item .blurb{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;margin-top:0.25em}.search-menu .results .search-result-topic .second-line{display:flex;flex-wrap:wrap;align-items:center}.search-menu .results .search-result-topic .second-line .discourse-tags{flex-wrap:wrap;display:contents}.search-menu .results .main-results{display:flex;flex:1 1 auto}.search-menu .results .main-results .topic-statuses{color:#919191}.search-menu .results .main-results+.secondary-results{border-left:1px solid #e9e9e9;margin-left:1em;padding-left:1em;max-width:33%}.search-menu .results .secondary-results{display:flex;flex-direction:column;flex:1 1 auto}.search-menu .results .secondary-results .separator{margin-bottom:1em;margin-top:1em;height:1px;background:#e9e9e9}.search-menu .results .secondary-results .search-result-tag .discourse-tag{font-size:.8706em}.search-menu .results .secondary-results .search-result-category .widget-link{margin-bottom:0}.search-menu .results .secondary-results .search-result-group .search-link{color:#646464}.search-menu .results .secondary-results .search-result-group .search-link:hover{color:#222}.search-menu .results .secondary-results .search-result-group .group-result{display:flex;align-items:center}.search-menu .results .secondary-results .search-result-group .group-result .d-icon,.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair{min-width:25px;margin-right:0.5em}.search-menu .results .secondary-results .search-result-group .group-result .d-icon .d-icon,.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair .d-icon{margin-right:0}.search-menu .results .secondary-results .search-result-group .group-result .avatar-flair-image{background-repeat:no-repeat;background-size:100% 100%;min-height:25px}.search-menu .results .secondary-results .search-result-group .group-result .group-names{display:flex;flex-direction:column;overflow:auto;line-height:1.2}.search-menu .results .secondary-results .search-result-group .group-result .group-names:hover .name,.search-menu .results .secondary-results .search-result-group .group-result .group-names:hover .slug{color:#646464}.search-menu .results .secondary-results .search-result-group .group-result .group-names .name,.search-menu .results .secondary-results .search-result-group .group-result .group-names .slug{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-menu .results .secondary-results .search-result-group .group-result .group-names .name{font-weight:700}.search-menu .results .secondary-results .search-result-group .group-result .group-names .slug{font-size:.8706em;color:#646464}.search-menu .results .secondary-results .search-result-category .list,.search-menu .results .secondary-results .search-result-user .list,.search-menu .results .secondary-results .search-result-group .list,.search-menu .results .secondary-results .search-result-tag .list{display:block}.search-menu .results .secondary-results .search-result-category .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-user .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-group .list .item .widget-link.search-link,.search-menu .results .secondary-results .search-result-tag .list .item .widget-link.search-link{flex:1;font-size:1em;padding:5px}.search-menu .results .secondary-results .search-result-user .user-result{display:flex;flex-direction:row;align-items:center}.search-menu .results .secondary-results .search-result-user .user-result .avatar{margin-right:0.5em;display:block;min-width:25px}.search-menu .results .secondary-results .search-result-user .user-result .user-titles{display:flex;flex-direction:column;overflow:auto;line-height:1.2}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .username,.search-menu .results .secondary-results .search-result-user .user-result .user-titles .name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .username{color:#646464;font-size:.8706em}.search-menu .results .secondary-results .search-result-user .user-result .user-titles .name{color:#646464;font-size:1em;font-weight:700}.search-menu .results .show-more{padding:5px}.search-menu .searching{position:absolute;top:1.15em;right:1em}.search-menu .searching .spinner{width:10px;height:10px;border-width:2px;margin:0}.search-menu .no-results{padding:5px}.search-menu .filter{padding:0}.search-menu .filter:hover{background:transparent}.search-menu .search-link{margin-bottom:0.25em}.search-menu .search-link .badge-category-parent{line-height:1}.search-menu .search-link .topic{display:inline-block;line-height:1.2}.search-menu .search-link .topic-title{margin-right:0.25em}.search-container{display:flex;justify-content:space-between}.search-container .warning{background-color:#ec8972;padding:5px 8px;color:#fff}.search-container .search-bar{display:flex;justify-content:space-between;align-items:center;justify-content:space-between;margin-bottom:1em}.search-container .search-bar .search-query{flex:1 0 0px;margin:0 0.5em 0 0}.search-container .search-bar .search-cta{padding-bottom:6.5px;padding-top:6.5px}.search-container .search-advanced{width:70%}@media screen and (max-width: 850px){.search-container .search-advanced{width:65%}}.search-container .search-advanced .search-actions,.search-container .search-advanced .search-notice,.search-container .search-advanced .search-results,.search-container .search-advanced .search-title,.search-container .search-advanced .search-bar{margin-bottom:1em}.search-container .search-advanced .search-info{display:flex;flex-wrap:wrap;border-bottom:3px solid #e9e9e9;padding-bottom:0.5em;margin-bottom:1em;flex-direction:row;align-items:center}.search-container .search-advanced .search-info .result-count{display:flex}.search-container .search-advanced .search-info .result-count .term{font-weight:bold}.search-container .search-advanced .search-info .result-count span+span{margin-left:0.25em}.search-container .search-advanced .search-info .sort-by{display:flex;margin-left:auto;align-items:center}.search-container .search-advanced .search-info .sort-by .desc{margin-right:0.5em}.search-container .search-advanced .search-info .sort-by .combo-box{min-width:150px}.search-container .search-advanced .search-title{display:flex;justify-content:flex-start;align-items:center}.search-container .search-advanced .search-title .bulk-select{margin-left:0.5em}.search-container .search-advanced .search-title .fps-select a{margin-left:0.5em;font-size:.8706em}.search-container .search-advanced .search-title .fps-select a:hover{text-decoration:underline}.search-container .search-advanced .search-notice .fps-invalid{padding:0.5em;background-color:#fbe6e1;border:1px solid #ec8972;color:#e45735}.search-container .search-advanced-sidebar{width:30%;margin-left:1em;display:flex;flex-direction:column}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar{width:35%}}.search-container .search-advanced-sidebar #search-min-post-count,.search-container .search-advanced-sidebar .date-picker,.search-container .search-advanced-sidebar .combo-box,.search-container .search-advanced-sidebar .ac-wrap,.search-container .search-advanced-sidebar .control-group,.search-container .search-advanced-sidebar .date-picker-wrapper,.search-container .search-advanced-sidebar .search-advanced-category-chooser{box-sizing:border-box;width:100%;min-width:100%}.search-container .search-advanced-sidebar #search-min-post-count input,.search-container .search-advanced-sidebar #search-min-post-count .item,.search-container .search-advanced-sidebar .date-picker input,.search-container .search-advanced-sidebar .date-picker .item,.search-container .search-advanced-sidebar .combo-box input,.search-container .search-advanced-sidebar .combo-box .item,.search-container .search-advanced-sidebar .ac-wrap input,.search-container .search-advanced-sidebar .ac-wrap .item,.search-container .search-advanced-sidebar .control-group input,.search-container .search-advanced-sidebar .control-group .item,.search-container .search-advanced-sidebar .date-picker-wrapper input,.search-container .search-advanced-sidebar .date-picker-wrapper .item,.search-container .search-advanced-sidebar .search-advanced-category-chooser input,.search-container .search-advanced-sidebar .search-advanced-category-chooser .item{padding-left:4px}.search-container .search-advanced-sidebar .date-picker-wrapper{margin-top:0.5em}.search-container .search-advanced-sidebar .date-picker{box-sizing:border-box;text-align:left;padding:4px;margin-bottom:0}.search-container .search-advanced-sidebar .search-advanced-title{background:#e9e9e9;padding:0.358em 1em;font-weight:700;text-align:left;font-weight:bold}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar .search-advanced-title{padding:0.358em 0.5em}}.search-container .search-advanced-sidebar .search-advanced-title.btn{background:#e9e9e9}.search-container .search-advanced-sidebar .search-advanced-title .d-icon{margin:0}.search-container .search-advanced-sidebar .search-advanced-filters{background:#f8f8f8;padding:1em}.search-container .search-advanced-sidebar .search-advanced-filters .control-group{margin-bottom:15px}.search-container .search-advanced-sidebar .search-advanced-filters section.field{margin-top:5px}@media screen and (max-width: 850px){.search-container .search-advanced-sidebar .search-advanced-filters{padding:0.75em 0.5em}.search-container .search-advanced-sidebar .search-advanced-filters .ac-wrap,.search-container .search-advanced-sidebar .search-advanced-filters .choices,.search-container .search-advanced-sidebar .search-advanced-filters .select-kit.multi-select{width:100% !important}.search-container .search-advanced-sidebar .search-advanced-filters .select-kit{min-width:unset}}.fps-invalid{margin-bottom:1em}.fps-result{display:flex;margin-bottom:28px;max-width:780px}.fps-result .author{display:inline-block;vertical-align:top}.fps-result .like-count{color:#919191}.fps-result .like-count .fa{color:#fa6c8d;font-size:.8706em}.fps-result .badge-wrapper span.badge-category{max-width:inherit}.fps-result .search-category{padding-top:3px}.fps-result .topic{padding-bottom:2px;max-width:700px}.fps-result .avatar{margin-right:14px}.fps-result a.search-link:visited .topic-title{color:#0aadff}.fps-result .search-link .topic-title{font-size:1.3195em;line-height:1.2}.fps-result .search-link .topic-statuses{display:inline-block;font-size:1.3em;line-height:1.2;color:#919191}.fps-result .search-link .topic-statuses span{line-height:1}.fps-result .blurb{font-size:1em;line-height:1.4;word-wrap:break-word;max-width:640px;color:#919191}.fps-result .blurb .date{color:#919191}.fps-result .blurb .search-highlight{color:#222}.fps-result .discourse-tag{font-size:.8706em}.fps-topic{display:inline-block}.no-results-suggestion{margin-top:30px}.search-footer{margin-bottom:30px}.panel-body-contents .search-context label{float:left}.google-search-form{margin-top:2em}#share-link{position:absolute;left:20px;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15);background-color:#fff;padding:8px 8px 4px 8px;width:300px;display:none}#share-link.visible{display:block}#share-link input[type=\"text\"]{width:100%}#share-link .share-for-touch .overflow-ellipsis{clear:both}#share-link .share-for-touch{margin:14px 0}#share-link .title{margin-bottom:4px;align-items:center;display:flex;justify-content:space-between}#share-link .title h3{font-size:1em;margin:0}#share-link .title .date{font-weight:normal;color:#919191}#share-link .copy-text{display:inline-block;position:absolute;margin:5px 5px 5px 15px;color:#090;opacity:1;transition:opacity 0.25s;font-size:1em}#share-link .copy-text:not(.success){opacity:0}#share-link .social-link{margin-right:8px;font-size:1.7511em}#share-link .social-link .d-icon{color:#08c}#share-link .social-link .d-icon-fab-facebook{color:#4267b2}#share-link .social-link .d-icon-fab-twitter-square{color:#1da1f2}#share-link input[type=\"text\"]{font-size:1.1487em;margin-bottom:0}#share-link .actions{display:flex;align-items:flex-end;margin-top:8px}#share-link .actions .sources{display:flex;align-items:center;flex-wrap:wrap;flex-direction:row;max-width:45%}#share-link .actions .sources .social-link{margin-right:8px}#share-link .actions .alt-actions{display:flex;align-items:center;flex:1;justify-content:flex-end;height:36px}#share-link .actions .alt-actions .close-share{font-size:1.5157em;color:#919191}#share-link .actions .alt-actions .new-topic{margin-right:16px}.discourse-no-touch #share-link .share-for-touch{display:none}.discourse-touch #share-link input[type=\"text\"]{display:none}.shared-draft-controls{background-color:#d1f0ff;padding:1em;clear:both}.shared-draft-controls .publish-field{margin-top:1em}.topic-title-outlet.choose-tags{margin-left:25px;margin-top:3px}.tags-list{margin-top:2em;padding-bottom:1em;border-bottom:1px solid #e9e9e9}#list-area .tags-list h3{margin-bottom:20px}.tags-list .tag-box{display:inline-block;width:300px;margin-bottom:1em;float:left;vertical-align:middle}.tags-list .tag-box .discourse-tag{font-size:1em}.tags-list .tag-box .tag-count{font-size:.8706em;vertical-align:middle;line-height:1}.tag-show-heading{display:inline-flex;flex-wrap:wrap;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:hidden}@media screen and (max-width: 450px){.tag-show-heading{width:100%}}.tag-show-heading .d-icon{margin:0 0.25em}.topic-category{display:flex;flex-wrap:wrap;align-items:center}.topic-category .topic-header-extra{display:inline-flex;align-items:center}.topic-category .badge-wrapper{margin-top:0}.discourse-tag-count{font-size:.8706em;color:#919191;line-height:1;vertical-align:middle}.discourse-tag{max-width:14em;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle}.discourse-tag{margin:0;color:#919191}.discourse-tag:visited,.discourse-tag:hover{color:#919191}.extra-info-wrapper .discourse-tag{color:#bfbfbf !important}.discourse-tag.large{font-size:1.5157em}.discourse-tag.box{background-color:#e9e9e9;color:#646464;padding:2px 8px}.extra-info-wrapper .discourse-tag.box{background-color:#383838;color:#a6a6a6}.discourse-tag.simple,.discourse-tag.simple:visited,.discourse-tag.simple:hover{margin-right:0;color:#646464}.discourse-tag.bullet{margin-right:0.5em;display:inline-flex;align-items:center}.discourse-tag.bullet:before{background:#bdbdbd;margin-right:5px;position:relative;width:9px;height:9px;display:inline-block;content:\"\"}.discourse-tag.bullet.large:before{width:13px;height:13px}.discourse-tags .discourse-tag.simple:not(:last-child):after,.list-tags .discourse-tag.simple:not(:last-child):after{content:\", \";margin-left:1px}.d-header .topic-header-extra .discourse-tags{display:inline-block;font-size:.8706em}.d-header .topic-header-extra .discourse-tags+.topic-featured-link{margin-left:8px}.fps-result .add-full-page-tags{display:inline-block}.topic-list-item .discourse-tags{display:inline-flex;font-weight:normal;font-size:.8706em}.categories-list .topic-list-latest .discourse-tags{display:inline-block}.mobile-view .topic-list-item .discourse-tags{display:inline-flex;flex-wrap:wrap;font-size:.8706em;margin-top:0}.mobile-view .topic-list-item .discourse-tags .discourse-tag{margin-right:0.2em}.mobile-view .topic-list-item .discourse-tags .discourse-tag.box{position:relative;top:0}header .discourse-tag{color:#919191}.list-tags{display:inline-block;margin-right:3px;font-size:.8706em}.tag-chooser{width:100%;max-width:100%}.title-wrapper .tag-chooser{width:500px}.tag-sort-options{margin-bottom:20px}.tag-sort-options a{text-decoration:underline}.tag-sort-options span.active a{font-weight:bold}.autocomplete .d-icon-tag{color:#222;padding-right:5px}.autocomplete a{color:#919191}.tags-admin-menu{margin-top:20px}.tags-admin-menu ul{width:320px}.tag-groups-container{margin-top:20px}.tag-groups-container .content-list{width:20%;float:left;margin:20px 0}.tag-groups-container .content-list ul{margin-bottom:10px}.tag-groups-container .content-list .btn{margin-left:10px}.tag-groups-container .tag-group-content{width:75%;float:right}.tag-groups-container .tag-group-content section{margin-bottom:20px}.tag-groups-container .tag-group-content label{font-size:1em;display:inline-block;margin-right:10px}.tag-groups-container .tag-group-content .btn{margin-right:10px}.tag-groups-container .tag-group-content h1 input{width:100%}.tag-groups-container .group-tags-list .tag-chooser{width:100%}.tag-groups-container .saving{margin-left:20px}.tag-groups-container .parent-tag-section .tag-chooser{width:200px;margin-right:10px}section.tag-info{margin:1em 0;padding:2em;border:1px solid #e9e9e9}section.tag-info .field{margin:0 0 0.5em}section.tag-info .btn{margin-right:0.5em}section.tag-info .tag-name .discourse-tag{display:block;margin-bottom:0.75em}section.tag-info .synonyms-list,section.tag-info .add-synonyms,section.tag-info .tag-associations{margin-top:1em}section.tag-info .synonyms-list:before,section.tag-info .synonyms-list:after,section.tag-info .add-synonyms:before,section.tag-info .add-synonyms:after,section.tag-info .tag-associations:before,section.tag-info .tag-associations:after{content:\"\";display:table}section.tag-info .synonyms-list:after,section.tag-info .add-synonyms:after,section.tag-info .tag-associations:after{clear:both}section.tag-info .synonyms-list{margin:2em 0 0}section.tag-info .tag-list{margin:1em 0 0 0;padding:0;border:none}section.tag-info .tag-list:before,section.tag-info .tag-list:after{content:\"\";display:table}section.tag-info .tag-list:after{clear:both}section.tag-info .tag-list a{color:#919191;margin-left:0.25em}#discourse-tooltip{background-color:#fff;position:absolute;z-index:600;border:1px solid #919191;max-width:400px;margin-top:25px;overflow-wrap:break-word;display:none;font-size:1em;font-weight:500}#discourse-tooltip.retina{border:0.5px solid #919191}#discourse-tooltip .tooltip-pointer{position:relative;background:#fff}#discourse-tooltip .tooltip-pointer:before,#discourse-tooltip .tooltip-pointer:after{position:absolute;pointer-events:none;border:solid transparent;bottom:100%;content:\"\";height:0;width:0}#discourse-tooltip .tooltip-pointer:after{border-bottom-color:#fff;border-width:8px;left:50%;margin-left:-8px;margin-bottom:-0.5px}#discourse-tooltip .tooltip-pointer:before{border-bottom-color:#919191;border-width:9px;left:50%;margin-left:-9px;margin-bottom:-0.5px}#discourse-tooltip .tooltip-content{padding:1em;max-width:250px;font-size:.8706em;color:#222;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);line-height:1.4em}.show-topic-admin{position:fixed;top:120px;right:10px;z-index:300;height:35px}.popup-menu{background-color:#fff;width:215px;padding:10px;border:1px solid #e9e9e9;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15)}.popup-menu ul{list-style:none;margin:10px 0 0 0}.popup-menu .btn{text-align:left}.popup-menu button{width:100%;margin-bottom:5px}.popup-menu .header .close-button{display:none}@media screen and (max-width: 550px){.popup-menu{width:100%;padding:0;padding-bottom:env(safe-area-inset-bottom);z-index:1000;animation:slideUp 0.3s}@keyframes slideUp{0%{transform:translateY(100%)}100%{transform:translateY(0)}}.popup-menu .header{padding:10px 0 0 10px;display:flex;justify-content:space-between}.popup-menu .header .close-button{display:block;background:transparent}.popup-menu ul{margin-top:0}}.modal-body.feature-topic{max-height:500px}.modal-body.feature-topic input.date-picker{margin:0}.modal-body.feature-topic .feature-section{display:block;padding:1em 0}.modal-body.feature-topic .feature-section:not(:last-of-type){border-bottom:1px solid #e9e9e9}.modal-body.feature-topic .feature-section .badge-wrapper{margin-right:0}.modal-body.feature-topic .feature-section .desc{display:inline-block;vertical-align:middle}.modal-body.feature-topic .feature-section .desc p:first-of-type{margin:0}.modal-body.feature-topic .feature-section .desc p{margin:10px 0 0}.modal-body.feature-topic .feature-section .with-validation{position:relative}.feature-topic-modal .d-modal-cancel{margin-left:0}.desktop-view .feature-topic-modal .feature-topic{overflow:visible}.desktop-view .feature-topic-modal .modal-inner-container{min-width:700px}.desktop-view .feature-topic-modal .pin-until{position:relative;display:inline-block}.mobile-view .feature-topic .feature-section .desc{display:block;clear:both;max-width:90%;margin:0}.selected-posts{border:1px solid #6cf;background-color:#d1f0ff}.selected-posts .btn{border:none;color:#fff;font-weight:normal;margin-bottom:10px}.selected-posts .btn:not(.btn-danger){background:#08c;border-color:#08c}.selected-posts .btn:not(.btn-danger)[href]{color:#fff}.selected-posts .btn:not(.btn-danger):hover{color:#fff;background:#0aadff}.selected-posts .btn:not(.btn-danger):active{background-color:#004b70;background-image:linear-gradient(to bottom, #004b70, #005f8f);color:#fff}.selected-posts .btn[disabled]{text-shadow:0 1px 0 rgba(34,34,34,0.2);background-color:#08c;background-image:linear-gradient(to bottom, #08c, #046);box-shadow:inset 0 1px 0 rgba(0,0,0,0.33)}.button-count.has-pending span{background-color:#e45735;color:#fff;border-radius:10px;padding:0.25em 0.5em;display:inline-block;font-size:0.8em}.placeholder-avatar{display:inline-block;width:45px;height:45px;border-radius:50%;position:relative;overflow:hidden}.placeholder-avatar:before{animation:placeHolderShimmer 4s linear infinite forwards;position:absolute;left:0;content:\"\";background:linear-gradient(to right, #f8f8f8 10%, #e9e9e9 28%, #f8f8f8 43%);height:45px;width:700px}.placeholder-text{margin-left:11px;display:inline-block;width:calc(100% - 11px);height:1.5em;margin-bottom:0.6em}.names{flex:1 1 auto;overflow:hidden}.names span.first{display:flex;align-items:baseline;font-weight:bold}.names span{font-size:1em;margin-right:8px;display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle}.names span a{color:#646464}.names .fa{font-size:.8706em;color:#919191}.names .svg-icon-title{margin-left:3px;margin-right:0px}.names .new_user a,.names .user-title,.names .user-title a{color:#919191}.cooked,.d-editor-preview{word-wrap:break-word;line-height:1.4}.cooked h1,.cooked h2,.cooked h3,.cooked h4,.cooked h5,.cooked h6,.d-editor-preview h1,.d-editor-preview h2,.d-editor-preview h3,.d-editor-preview h4,.d-editor-preview h5,.d-editor-preview h6{margin:30px 0 10px;line-height:1.2}.cooked h1,.d-editor-preview h1{font-size:1.5157em}.cooked h2,.d-editor-preview h2{font-size:1.3195em}.cooked h3,.d-editor-preview h3{font-size:1.1487em}.cooked h4,.d-editor-preview h4{font-size:1em}.cooked h5,.d-editor-preview h5{font-size:.8706em}.cooked h6,.d-editor-preview h6{font-size:.7579em}.cooked a,.d-editor-preview a{word-wrap:break-word}.cooked ins,.d-editor-preview ins{background-color:#b8ffb8}.cooked del,.d-editor-preview del{background-color:#fbe6e1}.cooked big,.d-editor-preview big{font-size:1.5rem}.cooked small,.d-editor-preview small{font-size:0.75rem}.cooked small small,.d-editor-preview small small{font-size:0.75em}.cooked big big,.d-editor-preview big big{font-size:1em}.cooked sub sub sub,.d-editor-preview sub sub sub{bottom:0}.cooked sup sup sup,.d-editor-preview sup sup sup{top:0}.cooked video,.d-editor-preview video{max-width:100%}.cooked sup sup,.d-editor-preview sup sup{top:0}.moderator .regular>.cooked{background-color:#ffffca;padding:10px}.moderator .regular>.cooked img:not(.thumbnail){max-width:100%;height:auto}.moderator .clearfix>.topic-meta-data>.names span.user-title,.moderator .nav-pills>.topic-meta-data>.names span.user-title,.moderator .container>.topic-meta-data>.names span.user-title,.moderator .wrap>.topic-meta-data>.names span.user-title{color:#646464}.moderator .clearfix>.topic-meta-data>.names span.user-title a,.moderator .nav-pills>.topic-meta-data>.names span.user-title a,.moderator .container>.topic-meta-data>.names span.user-title a,.moderator .wrap>.topic-meta-data>.names span.user-title a{background-color:#ffffca;padding-left:4px;padding-right:4px}.topic-meta-data{display:flex;align-items:flex-start}.topic-meta-data .names{margin-right:auto}.topic-meta-data .post-infos{display:flex;flex:0 0 auto;align-items:center}aside.quote{margin-top:1em;margin-bottom:1em}aside.quote .badge-wrapper{margin-left:5px}aside.quote .title{border-left:5px solid #e9e9e9;background-color:#f9f9f9;color:#646464;padding:12px 12px 0px 12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}aside.quote .title .avatar{margin-right:7px}aside.quote .title img{margin-top:-4px}aside.quote blockquote{margin-top:0}blockquote img{max-width:100% !important}.quote-controls,.quote-controls .d-icon{color:#bdbdbd}.cooked .highlight{background-color:#d1f0ff;padding:2px;margin:-2px}.post-ignored{font-style:italic}.post-action{color:#919191}.post-action .undo-action,.post-action .act-action{margin-left:5px}.post-hidden .topic-avatar,.post-hidden .cooked,.post-hidden .topic-meta-data,.post-hidden .post-actions{opacity:0.5}.topic-post.staged{opacity:0.4}.quote-controls{float:right;display:flex;align-items:center}.quote-controls a{margin-left:0.3em}.quote-button{display:none;position:absolute;background-color:#b6b6b6;color:#fff;padding:10px;z-index:300;opacity:0.9}.quote-button .d-icon{display:inline-block}.quote-button:hover{background-color:#919191;cursor:pointer}.topic-avatar,.user-card-avatar{position:relative}.topic-map{background:#f8f8f8;border:1px solid #e9e9e9;border-top:none}.topic-map .avatars>div{float:left;position:relative;margin:3px 0}.topic-map .avatars .post-count{position:absolute;right:0;border-radius:100px;padding:3px 5px;text-align:center;font-weight:normal;font-size:.7579em;line-height:1}.topic-map .avatar{float:left;margin-right:4px}.topic-map section{border-top:1px solid #e9e9e9}.topic-map ul{margin:0;list-style:none}.topic-map h3{margin-bottom:4px;color:#222;line-height:1.4;font-weight:normal;font-size:1em}.topic-map h4{margin:1px 0 2px 0;color:#919191;font-weight:normal;font-size:.8706em;line-height:1}.topic-map span.domain{font-size:.7579em;color:#919191}.topic-map td{vertical-align:top;padding:1px}.topic-map .topic-links tr{border:none}.topic-map .topic-links .badge-notification{margin:1px 5px 2px 0}.topic-map .controls{display:flex;align-items:center}.topic-map .controls .btn{margin-right:0.5em}.topic-map .controls .btn:last-child{margin:0}.topic-map .participants{display:flex;flex-wrap:wrap;align-items:center}.topic-map .participants+.controls{margin-top:0.5em}.topic-map .participants.hide-names .user .username,.topic-map .participants.hide-names .user .group-name{display:none}.topic-map .participants .user{border:1px solid #e9e9e9;border-radius:0.25em;padding:0;margin:0.125em 0.25em 0.125em 0;display:flex;align-items:center;height:26px}.topic-map .participants .user .user-link,.topic-map .participants .user .group-link{color:#646464}.topic-map .participants .user .user-link:hover,.topic-map .participants .user .group-link:hover{color:#222}.topic-map .participants .user .avatar,.topic-map .participants .user .d-icon-users{margin-left:0.25em;margin-right:0.25em}.topic-map .participants .user .username,.topic-map .participants .user .group-name{margin-right:0.25em}.topic-map .participants .user:last-child{margin-right:0}.topic-map .participants .user .remove-invited{display:flex;flex:1 0 0px;align-items:center;justify-content:center;box-sizing:border-box;border-radius:0 0.25em 0.25em 0;padding-top:0;padding-bottom:0;height:100%}.topic-map .add-remove-participant-btn .d-icon{margin-left:0.25em}.topic-avatar .avatar-flair,.avatar-flair-preview .avatar-flair,.user-card-avatar .avatar-flair,.topic-map .poster .avatar-flair,.user-profile-avatar .avatar-flair,.user-image .avatar-flair{display:flex;align-items:center;justify-content:center;background-repeat:no-repeat;background-position:center;position:absolute;bottom:0;right:-6px}.topic-avatar .avatar-flair,.avatar-flair-preview .avatar-flair,.collapsed-info .user-profile-avatar .avatar-flair,.user-image .avatar-flair{background-size:20px 20px;width:20px;height:20px}.topic-avatar .avatar-flair.rounded,.avatar-flair-preview .avatar-flair.rounded,.collapsed-info .user-profile-avatar .avatar-flair.rounded,.user-image .avatar-flair.rounded{background-size:18px 18px;border-radius:12px;width:24px;height:24px;bottom:-2px;right:-8px}.user-card-avatar .avatar-flair,.user-profile-avatar .avatar-flair{background-size:40px 40px;width:40px;height:40px}.user-card-avatar .avatar-flair.rounded,.user-profile-avatar .avatar-flair.rounded{background-size:30px 30px;border-radius:24px;width:40px;height:40px;bottom:-2px;right:-4px}.user-card-avatar .avatar-flair .fa,.user-profile-avatar .avatar-flair .fa{font-size:1.7511em}.topic-map .poster .avatar-flair{right:0;background-size:12px 12px;width:16px;height:16px;bottom:-3px;color:#222}.topic-map .poster .avatar-flair.rounded{background-size:12px 12px;border-radius:8px;width:16px;height:16px;bottom:-2px;right:0}.topic-map .poster .avatar-flair .d-icon{font-size:.7579em}.topic-avatar .poster-avatar-extra{display:none}.map:first-of-type{display:flex}.map:first-of-type .buttons{margin-left:auto;order:15}.map:first-of-type .buttons .btn{height:100%}.topic-body .cooked{overflow:hidden}.topic-body.highlighted{animation:background-fade-highlight 2.5s ease-out}.post-info{flex:0 0 auto;margin-right:0.5em}.post-info.post-date{margin-right:0}.post-info.via-email .d-icon,.post-info.whisper .d-icon,.post-info.post-locked .d-icon{font-size:1em}.post-info .wiki,.post-info .last-wiki-edit{color:green}.post-info.via-email{color:#bdbdbd}.post-info.raw-email{cursor:pointer}pre code{word-wrap:normal;display:block;padding:0.5em;color:#222;background:#f9f9f9;max-height:500px}kbd{background-color:#fff;border:1px solid #e9e9e9;border-radius:3px;box-shadow:0 2px 0 rgba(0,0,0,0.2),0 0 0 1px #fff inset;background:#fafafa;border:1px solid #ccc;border-bottom:medium none #fff;color:#222;display:inline-block;font-size:.8706em;line-height:1.4;margin:0 0.1em;padding:0.1em 0.6em}kbd * * *{display:none}blockquote>*:first-child{margin-top:0 !important}blockquote>*:last-child{margin-bottom:0 !important}.gap{padding:0.25em 0 0.5em 56px;color:#919191;cursor:pointer;text-transform:uppercase;font-weight:bold;font-size:.8706em}.who-liked,.who-read{transition:height 0.5s}.who-liked a,.who-read a{margin:0 0.25em 0.5em 0;display:inline-block}.cooked table thead th,.d-editor-preview table thead th{text-align:left;padding-bottom:2px;font-weight:bold;color:#222}.cooked table td,.d-editor-preview table td{padding:3px 3px 3px 0.5em}.small-action{display:flex;align-items:center;max-width:758px;border-top:1px solid #e9e9e9}.small-action .topic-avatar{align-self:flex-start;padding:0.7em 0;border-top:none;margin-right:11px;flex:0 0 auto}.small-action .topic-avatar .d-icon{font-size:2em;width:45px;text-align:center;color:#bdbdbd}.small-action .small-action.deleted{background-color:rgba(242,171,154,0.7)}.small-action .small-action-desc.timegap{color:#919191}.small-action .small-action-desc{display:flex;flex-wrap:wrap;flex:1 1 100%;align-items:center;padding:1em 0;text-transform:uppercase;font-weight:bold;font-size:.8706em;color:#919191;min-width:0}.small-action .small-action-desc .custom-message{flex:1 1 100%;text-transform:none;font-weight:normal;font-size:1.1487em;order:12;word-break:break-word;min-width:0}.small-action .small-action-desc .custom-message p{margin-bottom:0}.small-action .small-action-desc a.trigger-user-card{align-self:stretch}.small-action .small-action-desc .avatar{margin-right:0.8em;float:left}.small-action .small-action-desc>p{margin:0;line-height:1.2;flex:1 1}.small-action button{background:transparent;border:0;order:9}.small-action button:last-of-type{margin-left:auto;order:8}.whisper .post-info.whisper{margin-left:0.5em}.whisper .topic-body .cooked{font-style:italic;color:#919191}a.mention{font-weight:bold;font-size:0.93em;color:#222;color:#646464;padding:2px 4px;background:#e9e9e9;border-radius:8px}span.mention{font-weight:bold;font-size:0.93em;color:#222}a.mention-group{font-weight:bold;font-size:0.93em;color:#222}a.mention-group.notify,.small-action-desc a.mention-group{color:#646464;padding:2px 4px;background:#e9e9e9;border-radius:8px}.popup-menu h3{margin-top:0}.suggested-topics .topics{padding-bottom:15px}.suggested-topics .suggested-topics-message .badge-wrapper{margin-right:0}.large-image-placeholder>a.link{margin-right:10px}.large-image-placeholder>a>*{overflow:hidden;vertical-align:middle}.large-image-placeholder>a>.d-icon{color:#919191;margin-right:6px;font-size:1em;line-height:1.4}.large-image-placeholder>a>span.url{display:inline-block;max-width:300px;margin-right:6px;text-overflow:ellipsis;white-space:nowrap}.large-image-placeholder>a>span.help{display:inline-block;color:#919191;font-size:.8706em;font-style:italic;line-height:1.4;margin-bottom:1px}.large-image-placeholder>a>span.badge-notification{vertical-align:unset}.broken-image{color:#bdbdbd;border:1px solid #e9e9e9;font-size:2em}.broken-image .d-icon{margin:16px}.reply-to-tab{display:flex;align-items:center;margin-right:2em}.reply-to-tab img{margin:0 0.25em}.topic-post.selected article.boxed .select-posts button.select-post{background-color:#08c;color:#fff;border-color:#08c}.topic-post.selected article.boxed .topic-body .contents:after{display:none}.topic-post article.boxed{position:relative}.topic-post article.boxed .select-posts{position:absolute;right:5em;z-index:300;top:0.5em;height:100px}.topic-post article.boxed .select-posts button{margin-left:8px;background-color:#e9e9e9;color:#222;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2)}@media all and (max-width: 767px){.reply-to-tab span{display:none}.user-title{float:left;clear:left}}.signup-cta a{float:right;text-decoration:underline}.signup-cta .buttons{margin-bottom:1em}.post-notice{align-items:center;background-color:#d1f0ff;border-top:1px solid #e9e9e9;display:flex;max-width:calc( 690px + (11px * 2) + 45px - (0.8em * 2));padding:0.8em}.post-notice.old{background-color:unset;color:#919191}.post-notice.old .d-icon{color:#919191}.post-notice p{margin:0}.post-notice .d-icon{font-size:2em;color:#646464;margin-right:0.65em}#topic-footer-buttons .reason{color:#646464;display:inline;margin:0 0 0 8px;line-height:1.2}@keyframes button-jump-up{0%{margin-bottom:-60px}50%{margin-bottom:10px}65%{margin-bottom:0px}77%{margin-bottom:5px}100%{margin-bottom:0px}}.progress-back-container{z-index:300;margin-right:0;animation-duration:0.5s;animation-name:button-jump-up;width:145px;text-align:center;margin-bottom:0px;position:absolute;right:0;top:-2em}.progress-back-container .btn{margin:0}#topic-progress-wrapper{display:flex}#topic-progress-wrapper .topic-admin-menu-button-container{display:flex}#topic-progress-wrapper .topic-admin-menu-button-container>span{display:flex}#topic-progress-wrapper .topic-admin-popup-menu.right-side{position:absolute;bottom:0;right:0;left:auto;transition:bottom 0.5s;transform:translateZ(0)}#topic-progress-wrapper.docked .topic-admin-popup-menu.right-side{bottom:-150px}.title-wrapper{display:flex;flex-wrap:wrap}.title-wrapper button{margin:0 0.5em 0 0}.title-wrapper a.topic-featured-link{display:inline-block}.title-wrapper .topic-statuses{line-height:1.2em;margin-right:0.15em}.title-wrapper .topic-statuses .d-icon{color:#919191}h1{margin:0 0 4px 0}a.badge-category{margin-top:5px}#topic-title .title-wrapper{display:flex;flex-wrap:wrap;width:90%}#topic-title .title-wrapper a.topic-featured-link{display:inline-block}#topic-title h1{margin:0 0 4px 0;width:100%}#topic-title a.badge-category{margin-top:5px}#topic-title a.edit-topic .d-icon{font-size:0.8em}#topic-title .edit-topic-title{display:flex;flex-wrap:wrap;box-sizing:border-box;max-width:758px}#topic-title .edit-topic-title #edit-title{flex:1 1 auto}#topic-title .edit-topic-title .category-chooser,#topic-title .edit-topic-title .mini-tag-chooser{flex:1 1 49%;margin:0 0 9px 0}@media all and (max-width: 500px){#topic-title .edit-topic-title .category-chooser,#topic-title .edit-topic-title .mini-tag-chooser{flex:1 1 100%}}#topic-title .edit-topic-title .mini-tag-chooser{margin-left:2%}@media all and (max-width: 500px){#topic-title .edit-topic-title .mini-tag-chooser{margin-left:0}}.private-message-glyph{color:#bdbdbd}.private-message-glyph-wrapper{float:left}.private-message-glyph-wrapper .private-message-glyph{margin:0 5px 0 0;display:inline-block}.private_message #topic-title .edit-topic-title{position:relative}.private_message #topic-title .edit-topic-title .private-message-glyph{position:absolute;left:0.75em;top:6px}.private_message #topic-title .edit-topic-title #edit-title{width:calc(100% - 50px);padding-left:2.25em}.private_message #topic-title .edit-topic-title .mini-tag-chooser{margin-left:0}@media screen and (min-width: 450px){.private_message #topic-title .edit-topic-title .mini-tag-chooser .selected-name{max-width:500px}}.topic-title-outlet{clear:both}.has-pending-posts{display:flex;justify-content:space-between;padding:0.5em;background-color:#ffffa6;margin-top:1em;max-width:757px}.suggested-topics-wrapper.related-messages-wrapper .suggested-topics:nth-of-type(n+2) thead{display:none}.suggested-topics h3 .badge-wrapper.bullet span.badge-category,.suggested-topics h3 .badge-wrapper.box span,.suggested-topics h3 .badge-wrapper.bar span{display:inline}.suggested-topics h3 .badge-wrapper.bullet span.badge-category{vertical-align:baseline;line-height:1.2}.suggested-topics h3 .badge-wrapper.bullet,.suggested-topics h3 .badge-wrapper.bullet span.badge-category-parent-bg,.suggested-topics h3 .badge-wrapper.bullet span.badge-category-bg{line-height:0.8}.suggested-topics .badge-wrapper.bullet span.badge-category,.suggested-topics .badge-wrapper.bar span.badge-category{max-width:150px}.suggested-topics .suggested-topics-title{display:flex;align-items:center}.post-links-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;clear:both}.post-links-container .post-links{margin-top:1em;padding-top:1em;border-top:1px solid #e9e9e9}.post-links-container .post-links li:last-of-type{margin-bottom:1em}.post-links-container .expand-links{color:#919191}.post-links-container .track-link{display:flex;align-items:center}.post-links-container .track-link span:not(.badge){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.post-links-container ul{margin:0;list-style:none}.post-links-container ul li{margin-bottom:0.5em}.post-links-container ul li a[href]{color:#919191}.post-links-container ul li .clicks{margin-left:0.5em;flex:0 0 auto}.post-links-container ul li .d-icon{font-size:.7579em;margin:0 0.5em 0 0}.post-links-container a.reply-new .d-icon{background:#fff;border-radius:20px;transition:all linear 0.15s}.post-links-container a.reply-new:hover{color:#08c}.post-links-container a.reply-new:hover .d-icon{background:#d1f0ff}a.topic-featured-link{display:inline-block;text-transform:lowercase;color:#919191;font-size:0.875rem}a.topic-featured-link .d-icon{margin-right:3px}.topic-area .pending-posts{max-width:calc( 690px + 45px + 22px)}.topic-area .pending-posts .reviewable-item .post-body{max-height:unset}.uploaded-image-preview{background:#222 center;background-size:cover;position:relative}.uploaded-image-preview .placeholder-overlay{background-size:contain;background-repeat:no-repeat;background-position:center;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0.3}.uploaded-image-preview .image-upload-controls{position:relative;display:flex;padding:10px}.uploaded-image-preview .image-upload-controls .btn{margin-right:5px;padding:7px 10px}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn{background:none;margin-right:0;margin-left:auto}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn .d-icon{color:#e9e9e9}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn:hover{background:none}.uploaded-image-preview .image-upload-controls .image-uploader-lightbox-btn:hover .d-icon{color:#222}.image-uploader.no-repeat .uploaded-image-preview{background-repeat:no-repeat}.image-uploader.contain-image .uploaded-image-preview{background-size:contain}.hidden-upload-field{visibility:hidden;position:absolute}.user-badge,.user-card .badge-section .more-user-badges a{padding:3px 8px;color:#222;border:1px solid #e9e9e9;line-height:1.4;display:inline-flex;align-items:center;background-color:#fff;margin:0 0 3px}.user-badge img,.user-card .badge-section .more-user-badges a img{height:16px;width:16px}.user-badge .badge-display-name,.user-card .badge-section .more-user-badges a .badge-display-name{margin-left:0.25em}.user-badge.badge-type-gold .fa,.user-card .badge-section .more-user-badges a.badge-type-gold .fa{color:#e7c300 !important}.user-badge.badge-type-silver .fa,.user-card .badge-section .more-user-badges a.badge-type-silver .fa{color:silver !important}.user-badge.badge-type-bronze .fa,.user-card .badge-section .more-user-badges a.badge-type-bronze .fa{color:#cd7f32 !important}.user-badge.disabled,.user-card .badge-section .more-user-badges a.disabled{color:#919191;background-color:#f8f8f8}.user-badge.disabled .fa,.user-card .badge-section .more-user-badges a.disabled .fa{opacity:0.4}@media all and (max-width: 750px){.show-badge .user-badge-with-posts .badge-user a.post-link{width:auto}.show-badge div.badge-user{padding:0}.badges-listing{display:block}.badges-listing .info,.badges-listing .grant-count{text-align:left}.badges-listing .row>div.info{display:none}.badges-listing .row{display:block}.badges-listing .row>div{display:block;margin-top:10px}}.show-badge .badge-user-info .earned{font-size:1.3195em;margin-bottom:1em}.show-badge .single-user{margin-left:2%;padding-bottom:20px}.show-badge .single-user .load-more{padding-top:30px;display:block;font-size:1.3195em}.show-badge .single-user .badge-user{padding-left:0;text-align:left;display:block;margin:20px 0;width:800px}.show-badge .single-user .badge-user .badge-info{display:none}.show-badge .single-user .badge-user .date{display:inline-block;font-size:1.1487em;margin-left:10px}.show-badge .single-user .badge-user .post-link{font-size:1.3195em;width:500px;margin:0;padding:0}.show-badge .single-user .badge-user:after{content:\"\";clear:both;display:table}.long-description.banner{width:88%;margin-bottom:15px;margin-top:15px}.badge-card{position:relative;display:inline-block;background-color:#f8f8f8;border:1px solid #e9e9e9;margin-bottom:2vh;transition:box-shadow 0.25s}.badge-card .check-display{position:absolute;left:5px;top:5px}.badge-card .grant-count{position:absolute;right:5px;top:5px;font-weight:bold;color:#919191;font-size:1.3195em}.badge-card .badge-contents{display:flex;min-height:128px;height:100%;padding:0 10%}.badge-card .badge-contents .badge-link{color:#222}.badge-card .badge-contents .badge-icon{display:flex;flex:0 0 auto;width:1.23em;margin-right:5%;align-items:center;justify-content:center;font-size:3.5em}.badge-card .badge-contents .badge-icon a{width:100%}.badge-card .badge-contents .badge-icon img{width:100%;max-width:65px;max-height:80px}.badge-card .badge-contents .badge-icon.badge-type-gold .fa{color:#e7c300 !important}.badge-card .badge-contents .badge-icon.badge-type-silver .fa{color:#c0c0c0 !important}.badge-card .badge-contents .badge-icon.badge-type-bronze .fa{color:#cd7f32 !important}.badge-card .badge-contents .badge-info{display:flex;flex:1 1 auto;align-items:center;padding:1em 1.5em 1em 0;color:#222}@media screen and (max-width: 600px){.badge-card .badge-contents .badge-info{padding-right:0}}.badge-card .badge-contents .badge-info h3{margin-bottom:0.25em;font-size:1.1487em}@media screen and (min-width: 900px){.badge-card .badge-contents .badge-info h3{font-size:1.3195em}}.badge-card.medium{flex:0 0 auto;width:32%;margin-right:1.63%}@media screen and (min-width: 851px){.badge-card.medium:nth-of-type(3n){margin-right:0}}@media screen and (max-width: 850px){.badge-card.medium{width:48.5%}.badge-card.medium:nth-of-type(2n){margin-right:0}}@media screen and (max-width: 550px){.badge-card.medium{flex:0 0 100%}}.badge-card.medium:hover{box-shadow:0 4px 14px rgba(0,0,0,0.15)}.badge-card.medium:active{box-shadow:none}.badge-card.large{width:100%;align-self:flex-start}@media screen and (min-width: 767px){.badge-card.large{max-width:calc(1110px / 2);margin-right:1.5em}}.badge-card.large .badge-contents{padding:0 5%}.badge-card.large .badge-contents h3{font-size:1.5157em}.badges-granted{display:flex;flex-wrap:wrap}@media screen and (max-width: 800px){.badges-granted{justify-content:space-between}}.badge-groups{margin:20px 0;color:#919191}.badge-groups h3{margin-bottom:1em}.badge-title .user-content{padding:0}.badge-group-list{margin-bottom:1.5em;display:flex;flex-wrap:wrap}@media screen and (max-width: 850px){.badge-group-list{justify-content:space-between}}.badge-group-list .title{width:100%;font-size:1.1487em}.show-badge-details{display:flex;flex-wrap:wrap;flex-direction:row;margin-bottom:2em;margin-top:1em}.show-badge-details .badge-grant-info.hidden{display:none}.show-badge-details .grant-info-item{margin-bottom:1em;color:#919191}.show-badge-details .grant-info-item:first-of-type{margin-right:10px}.show-badge-details .badge-set-title{padding:1.5em;border:1px solid #e9e9e9}.show-badge-details .badge-set-title .user-content{padding:0}.show-badge-details .badge-set-title .user-content .control-group{margin-bottom:1em}.show-badge-details .badge-title .form-horizontal .controls{margin-left:0}.show-badge-details .form-horizontal{margin-bottom:0}.check-display{display:inline-block;padding:0 0.25em;border-radius:10px;text-align:center}.check-display .fa{font-size:0.9em;color:#fff}.check-display.status-checked{background-color:#090}.check-display.status-unchecked{background-color:#e45735}.hyperlink{cursor:pointer}.user-content-wrapper{width:100%;display:grid;grid-template-columns:1fr 5fr;grid-template-rows:auto auto 1fr auto;grid-row-gap:20px}.user-content-wrapper .user-primary-navigation{grid-column-start:1;grid-column-end:3;grid-row-start:1;grid-row-end:2}.user-content-wrapper .user-secondary-navigation{grid-column-start:1;grid-column-end:2;grid-row-start:2;grid-row-end:3}.user-content-wrapper .solo-preference,.user-content-wrapper .user-content,.user-content-wrapper .spinner{grid-row-start:2;grid-row-end:4;grid-column-start:1;grid-column-end:3}.user-content-wrapper .user-content{min-width:100%}.user-content-wrapper .user-additional-controls+.user-content,.user-content-wrapper .user-secondary-navigation+.user-content{grid-column-start:2;grid-column-end:3}.user-content-wrapper .user-additional-controls{grid-row-start:3;align-self:start;justify-self:start}.user-content .list-actions{display:flex;margin-bottom:12px}.user-content .list-actions .btn{margin-right:12px}.user-content .paginated-topics-list{position:relative}.user-content .show-mores{width:100%}.user-content .d-icon-heart{color:#fa6c8d}.user-main .about{width:100%;margin-bottom:15px}.user-main .about.has-background .user-profile-image{background-size:cover;background-position:center center;background-repeat:no-repeat}.user-main .about.has-background .staff-counters{margin-bottom:0}.user-main .about .secondary{display:inline-block;width:100%;border-top:1px solid #e9e9e9}.user-main .about .secondary .btn{padding:4px 12px}.user-main .about .secondary dl{margin:0;padding:5px 10px}.user-main .about .secondary dl div{display:inline-flex;align-items:baseline;margin-right:15px;margin:4px 0}.user-main .about .secondary dt,.user-main .about .secondary dd{display:inline-flex;align-items:center}.user-main .about .secondary dd{padding:0;margin:0 15px 0 0;color:#222}.user-main .about .secondary dd.groups span:not(:last-of-type){margin-right:0.25em}.user-main .about .secondary dd.groups span:after{content:\",\"}.user-main .about .secondary dd.groups span:last-of-type:after{content:\"\"}.user-main .about .secondary dt{color:gray;margin-right:5px;display:inline-block}.user-main .about .details{background:rgba(255,255,255,0.8);border-bottom:1px solid #e9e9e9}.user-main .about .details h1{font-size:2em;font-weight:normal}.user-main .about .details h1 .d-icon{font-size:0.8em}.user-main .about .details h2{font-weight:normal;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details h3{font-weight:normal;margin-bottom:0.5em}.user-main .about .details h3 .d-icon:not(:first-of-type){margin-left:10px}.user-main .about .details .groups{margin-left:10px;display:inline}.user-main .about .details img.avatar{float:left}.user-main .about .details .suspended{color:#e45735}.user-main .about .details .primary{width:100%;position:relative}.user-main .about .details .primary h1{font-weight:bold}.user-main .about .details .primary .bio{max-height:300px;overflow:auto}.user-main .about .details .primary .bio a[href]{text-decoration:underline}.user-main .about .details .primary .bio img{max-width:100%}.user-main .about .details .user-profile-avatar{position:relative;float:left}.user-main .about .details .user-profile-avatar .avatar-flair{bottom:8px;right:16px}.user-main .about .controls ul{list-style-type:none}.user-main .about .controls .btn{margin-bottom:10px;line-height:1.2}.user-main .about.collapsed-info .details{margin-top:0;background:rgba(255,255,255,0.8)}.user-main .about.collapsed-info .details .bio{display:none}.user-main .about.collapsed-info .details .primary{width:100%}.user-main .about.collapsed-info .details .primary .avatar{margin-right:10px;width:45px;height:45px}.user-main .about.collapsed-info .details .primary h1{font-size:1.5157em}.user-main .about.collapsed-info .details .primary h2{font-size:1.1487em}.user-main .about.collapsed-info .details .primary h3,.user-main .about.collapsed-info .details .primary h3.location-and-website{display:none}.user-main .about.collapsed-info .user-profile-avatar .avatar-flair{bottom:8px;right:2px}.user-main .about.collapsed-info .user-profile-avatar .avatar-flair .d-icon{font-size:1em}.user-main .staff-counters{background:#222;color:#fff;display:flex;padding:10px;margin-bottom:16px}.user-main .staff-counters>div,.user-main .staff-counters>div a{display:flex;align-items:baseline;flex:0 1 auto;margin:0 10px 0 0;color:#fff}.user-main .staff-counters>div span,.user-main .staff-counters>div a span{padding:0 7px 1px;border-radius:10px;margin-right:5px}.user-main .staff-counters .active{font-weight:bold}.user-main .helpful-flags{background-color:#090}.user-main .flagged-posts{background-color:#e49735}.user-main .warnings-received{background-color:#ec8972}.user-main .deleted-posts{background-color:#ec8972}.user-main .suspensions{background-color:#e45735}.user-main .user-field{margin-bottom:10px}.user-main .user-field .controls label{width:auto;text-align:left;font-weight:normal}.user-main .user-field .controls .instructions{color:#919191;margin-top:5px;margin-bottom:10px;font-size:.8706em}.user-main .user-content .admin-controls nav{margin:0}.user-main .user-content .admin-controls nav .nav-pills{overflow-x:auto}.user-field .required{vertical-align:top;color:#e45735;font-weight:bold;margin-left:0.25em}.public-user-fields{margin-top:8px;margin-bottom:8px}.public-user-fields .user-field-name{font-weight:bold}.collapsed-info .public-user-fields{display:none}.avatar-selector .avatar-choice{display:grid;grid-template-columns:2em 1fr auto;grid-template-rows:auto auto;align-items:center}.avatar-selector .avatar-choice:not(:last-of-type){margin-bottom:0.75em}.avatar-selector .avatar-choice span{word-break:break-word}.avatar-selector .avatar-choice input[type=\"radio\"]{margin-top:0}.avatar-selector .avatar-choice button{margin-left:auto}.avatar-selector label.radio{display:flex;align-items:center;max-width:300px;margin:0 0.5em 0 0;padding:0}.avatar-selector label.radio .avatar{flex:0 0 auto;margin:0 0.75em 0 0}.avatar-selector .error{color:#e45735;margin:0;max-width:calc(300px - 20px);grid-column-start:2;grid-column-end:3}.top-section:before,.top-section:after{content:\"\";display:table}.top-section:after{clear:both}.top-section ul{list-style:none;margin:0}.top-section,.top-sub-section{margin-bottom:20px}.top-section.badges-section,.top-sub-section.badges-section{display:flex;flex-wrap:wrap}.stats-title{text-transform:uppercase;margin-bottom:10px;width:100%}.stats-section ul{margin:10px 0}.stats-section li{display:inline-block;padding:10px 14px 10px 0;margin:0 10px 10px 0}.stats-section li.linked-stat{padding:0}.stats-section li.linked-stat a{padding:10px 14px 10px 0;width:100%;height:100%;display:block;color:#222}.stats-section .value{font-weight:bold;font-size:1.3195em}.stats-section .label{color:#919191}.top-sub-section{width:50%}.top-sub-section ul{max-width:95%}.top-sub-section li{border-left:#e9e9e9 solid 2px;padding:5px 8px;margin:10px 0}.top-sub-section .topic-info{color:#919191}@media all and (max-width: 600px){.top-sub-section{float:none;width:100%}}.replies-section li,.topics-section li,.links-section li{word-wrap:break-word}.links-section .domain{font-size:.8706em;color:#919191}.top-categories-section table{max-width:95%}.top-categories-section table tr{border:none}.top-categories-section table td,.top-categories-section table th{padding:0.5em}.top-categories-section table td.topic-count,.top-categories-section table td.reply-count,.top-categories-section table th.topic-count,.top-categories-section table th.reply-count{text-align:center}.summary-user-list li{height:45px}.groups .group-link{color:#08c}.user-preferences textarea{height:100px}.user-preferences .tracking-controls label{align-items:center;display:inline-block}.user-preferences .tracking-controls label .d-icon{margin-right:3px}@media screen and (max-width: 550px){.user-preferences .tracking-controls .select-kit.multi-select{width:100%}}.user-preferences .tracking-controls .show-tracking{float:right}.user-preferences .static{color:#222;display:inline-block}.user-preferences .instructions{color:#919191;margin-bottom:10px;font-size:.8706em;line-height:1.4}.user-preferences .instructions a[href]{color:#08c}.user-preferences .avatar{margin-left:3px}.user-preferences .warning{background-color:#ec8972;padding:5px 8px;color:#fff;width:520px}.user-preferences .warning-wrap{height:30px;margin-bottom:10px}.user-preferences .tracking-controls{margin-top:24px}.user-preferences.second-factor-backup-preferences{padding-left:0}.user-preferences.second-factor-backup-preferences .second-factor-token-input{margin-right:10px}.user-preferences.second-factor-backup-preferences .form-horizontal .instructions{margin-left:0}.user-preferences.second-factor-backup-preferences .backup-codes{margin:2em 0}.user-preferences.second-factor-backup-preferences .backup-codes .wrapper{display:inline-block;position:relative;border-radius:3px;border:1px solid #e9e9e9;width:100%}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-area{resize:none;padding:0;height:auto;text-align:center;width:100%;background:white;border:0;cursor:auto;outline:none;font-family:monospace}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-area:focus{box-shadow:none;border-color:#e9e9e9}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-copy-btn,.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-download-btn{right:5px;position:absolute}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-copy-btn{top:5px}.user-preferences.second-factor-backup-preferences .backup-codes .backup-codes-download-btn{top:40px}.user-preferences .pref-associated-accounts table td{padding:8px}.user-preferences .featured-topic-link{padding:5px 0;font-weight:bold}.paginated-topics-list .user-content{width:100%;margin-top:0}.large-notification{display:flex;align-items:center}.large-notification a{display:flex;align-items:center}.large-notification a .d-icon{margin-right:0.5em}.large-notification a span:first-child{color:#222}.large-notification a div .fa{display:none}.large-notification a div p{margin:0}.qr-code-container{display:flex}.qr-code-container .qr-code{padding:5px 5px 0 5px;background-color:white}.second-factor.instructions{color:#919191;margin-top:5px;margin-bottom:10px;font-size:.8706em}.second-factor .second-factor-item{margin-top:0.75em}.second-factor .btn.edit{min-height:auto}.primary-textual .staged,.user-card .staged{font-style:italic}.selectable-avatars{max-height:350px;margin-bottom:1em;text-align:justify}.selectable-avatars .selectable-avatar{margin:5px;display:inline-block}.selectable-avatars .selectable-avatar .avatar{cursor:pointer;width:60px;height:60px}.selectable-avatars .selectable-avatar .avatar:hover{box-shadow:0 0 10px #222}div.tagsinput{border:1px solid #ccc;background:#fff;padding:5px 5px 0;width:584px;height:100px;overflow-y:auto;border-radius:4px}div.tagsinput span.tag{border:1px solid #a5d24a;border-radius:2px;display:block;float:left;padding:1px 5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:.8706em}div.tagsinput span.tag a{font-weight:bold;color:#82ad2b;text-decoration:none;font-size:.7579em}div.tagsinput input{width:80px;font-family:helvetica;font-size:.8706em;border:1px solid transparent;padding:2px 5px;background:transparent;color:#000;outline:0;margin:0 5px 5px 0}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#fbd8db !important;color:#90111a !important}.d-editor-container{display:flex;flex-grow:1;max-width:100%}.d-editor{display:flex;flex-grow:1;min-height:0}.d-editor-textarea-wrapper,.d-editor-preview-wrapper{flex:1}.d-editor-textarea-wrapper{display:flex;flex-direction:column;background-color:#fff;position:relative;border:1px solid #919191}.d-editor-textarea-wrapper textarea{background:transparent}.d-editor-textarea-wrapper.disabled{cursor:not-allowed}.d-editor-textarea-wrapper.disabled .d-editor-button-bar{visibility:hidden}.d-editor-preview-wrapper{max-width:49%;margin-left:1%;display:flex;flex-direction:column}.d-editor-button-bar{display:flex;align-items:center;min-height:30px;border-bottom:1px solid #e9e9e9}.d-editor-button-bar .btn,.d-editor-button-bar .btn-default{background-color:transparent;display:inline-block}.d-editor-button-bar .btn .d-icon,.d-editor-button-bar .btn-default .d-icon{color:#919191}.d-editor-button-bar .btn svg,.d-editor-button-bar .btn-default svg{-webkit-transform:translate3d(0, 0, 0)}.d-editor-button-bar .d-editor-spacer{height:1em;display:inline-block;border-left:1px solid #bdbdbd}.d-editor-button-bar .btn:not(.no-text){font-size:1.1487em}.d-editor-button-bar .btn.bold{font-weight:bolder}.d-editor-button-bar .btn.italic{font-style:italic}.d-editor-preview-wrapper{overflow:auto;cursor:default;-webkit-overflow-scrolling:touch}.d-editor-input,.d-editor-preview{box-sizing:border-box;flex:1 1 100%;width:100%;margin:0;min-height:auto;word-wrap:break-word;-webkit-appearance:none;border-radius:0}.d-editor-input:focus,.d-editor-preview:focus{box-shadow:none;border:0;outline:0}.d-editor-input{border:0;padding:10px;height:100%;overflow-x:hidden;resize:none}.d-editor-preview{height:auto}.d-editor-plugin{display:flex;flex:1 1;overflow:auto}.composing-whisper .d-editor-preview{font-style:italic;color:#919191 !important}.d-editor-preview>*:first-child{margin-top:0}.hide-preview .d-editor-preview-wrapper{display:none;flex:0}.edit-category-tab-topic-template .emoji.btn{display:none}.user-preferences .bio-composer textarea,.group-form-bio textarea,.edit-category-tab-topic-template textarea{width:100%;height:100%;min-height:10em}.user-preferences .bio-composer .local-dates.btn,.group-form-bio .local-dates.btn,.edit-category-tab-topic-template .local-dates.btn{display:none}.user-preferences .bio-composer .d-editor-container,.group-form-bio .d-editor-container,.edit-category-tab-topic-template .d-editor-container{display:block}.user-preferences .bio-composer .d-editor-textarea-wrapper,.group-form-bio .d-editor-textarea-wrapper,.edit-category-tab-topic-template .d-editor-textarea-wrapper{border:1px solid #e9e9e9}.user-preferences .bio-composer .d-editor-preview-wrapper,.group-form-bio .d-editor-preview-wrapper,.edit-category-tab-topic-template .d-editor-preview-wrapper{max-width:100%;margin:10px 0 0 0}.user-preferences .bio-composer .d-editor-preview,.group-form-bio .d-editor-preview,.edit-category-tab-topic-template .d-editor-preview{background-color:#f8f8f8;padding:5px}.user-preferences .bio-composer .d-editor-preview:empty,.group-form-bio .d-editor-preview:empty,.edit-category-tab-topic-template .d-editor-preview:empty{padding:0}.user-preferences .bio-composer,.group-form-bio{padding:10px;border:1px solid #e9e9e9}.d-editor-preview img{padding-bottom:1.4em}.d-editor-preview img.emoji,.d-editor-preview img.avatar,.d-editor-preview img.site-icon{padding-bottom:0}.d-editor-preview .image-wrapper{position:relative;display:inline-block;padding-bottom:1.4em}.d-editor-preview .image-wrapper img{padding-bottom:0}.d-editor-preview .image-wrapper:hover .button-wrapper{opacity:0.9}.d-editor-preview .image-wrapper .button-wrapper{opacity:0;position:absolute;transition:all 0.25s;display:flex;align-items:center;bottom:0;left:0}.d-editor-preview .image-wrapper .button-wrapper .separator{color:#bdbdbd}.d-editor-preview .image-wrapper .button-wrapper .scale-btn{color:#08c;padding:0 0.4em}.d-editor-preview .image-wrapper .button-wrapper .scale-btn:first-of-type{padding-left:0}.d-editor-preview .image-wrapper .button-wrapper .scale-btn.active{font-weight:bold;color:#222}.d-editor-preview .image-wrapper .button-wrapper .scale-btn:not(.active):hover{text-decoration:underline;cursor:pointer}.mobile-view .d-editor-preview .image-wrapper .button-wrapper{opacity:1}.d-editor-button-bar{margin:0.25em}.d-editor-button-bar .btn,.d-editor-button-bar .btn-default{padding:0 0.5em}.d-editor-button-bar .d-editor-spacer{margin:0 0.25em}@media screen and (max-width: 450px){.text-size-smaller .d-editor-button-bar .btn,.text-size-smaller .d-editor-button-bar .btn-default{padding:0 0.4em}}@media screen and (max-width: 350px){.text-size-smaller .d-editor-button-bar .btn,.text-size-smaller .d-editor-button-bar .btn-default{padding:0 0.3em}.text-size-smaller .d-editor-button-bar .d-editor-spacer{margin:0 0.25em}}@media screen and (max-width: 450px){.text-size-normal .d-editor-button-bar .btn,.text-size-normal .d-editor-button-bar .btn-default{padding:0 0.35em}}@media screen and (max-width: 350px){.text-size-normal .d-editor-button-bar .btn,.text-size-normal .d-editor-button-bar .btn-default{padding:0 0.25em}}@media screen and (max-width: 450px){.text-size-larger .d-editor-button-bar .btn,.text-size-larger .d-editor-button-bar .btn-default{padding:0 0.3em}}@media screen and (max-width: 350px){.text-size-larger .d-editor-button-bar .btn,.text-size-larger .d-editor-button-bar .btn-default{padding:0 0.2em}}.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{font-size:.8706em}@media screen and (max-width: 450px){.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{padding:0 0.3em}}@media screen and (max-width: 350px){.text-size-largest .d-editor-button-bar .btn,.text-size-largest .d-editor-button-bar .btn-default{padding:0 0.2em}}.timeline-loading{width:900px}.timeline-container{box-sizing:border-box;z-index:100;margin-left:757px;position:fixed;-webkit-transform:translate3d(0, 0, 0)}@media screen and (min-width: 1140px){.timeline-container{margin-left:820px}}@media all and (min-width: 1250px){.timeline-container{margin-left:900px}}.timeline-container.timeline-docked{position:absolute}.timeline-container.timeline-docked-bottom .timeline-footer-controls{opacity:0;pointer-events:none;cursor:default}.timeline-container.timeline-fullscreen.show{max-height:700px;transition:max-height 0.4s ease-out}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen.show{max-height:75vh}}.timeline-container.timeline-fullscreen.show .topic-timeline .timeline-footer-controls{display:inherit}.timeline-container.timeline-fullscreen.show .timeline-controls{display:table-cell;vertical-align:top}.timeline-container.timeline-fullscreen{max-height:0;transition:max-height 0.3s ease-in;position:fixed;margin-left:0;background-color:#fff;bottom:0;left:0;right:0;border-top:1px solid #e9e9e9;box-shadow:0 -1px 40px rgba(0,0,0,0.12);padding-top:20px;z-index:1150}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen{padding-top:10px}}.timeline-container.timeline-fullscreen .back-button{display:none}.timeline-container.timeline-fullscreen .topic-timeline{width:100%;table-layout:fixed;margin-left:0;margin-right:0;display:table;touch-action:none}.timeline-container.timeline-fullscreen .topic-timeline .timeline-date-wrapper{float:right;text-align:right}.timeline-container.timeline-fullscreen .topic-timeline .post-excerpt{max-width:650px;line-height:1.4;display:block;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:8;-webkit-box-orient:vertical}@media screen and (max-height: 425px){.timeline-container.timeline-fullscreen .topic-timeline .post-excerpt{-webkit-line-clamp:5}}.timeline-container.timeline-fullscreen .topic-timeline .username{color:#646464;word-wrap:break-word;font-weight:bold}.timeline-container.timeline-fullscreen .topic-timeline .title{margin-top:0;padding-left:1em;display:table-cell;vertical-align:top;width:100%}.timeline-container.timeline-fullscreen .topic-timeline .title h2{margin-top:0;display:block;line-height:1.2;font-size:1.3195em;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;-webkit-line-clamp:4;-webkit-box-orient:vertical}.timeline-container.timeline-fullscreen .topic-timeline .title a{color:#222}.timeline-container.timeline-fullscreen .topic-timeline .timeline-last-read{right:0;margin-left:0}.timeline-container.timeline-fullscreen .topic-timeline .timeline-last-read .progress{display:none}.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls{display:none;position:absolute;bottom:10px;left:10px}.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls button,.timeline-container.timeline-fullscreen .topic-timeline .timeline-footer-controls .btn-group{float:none;display:inline-block;margin-bottom:0;margin-right:15px;position:static}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea-wrapper{display:table-cell;padding-bottom:20px;padding-right:1.5em;width:100px}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea{border-left:0;border-right-style:solid;border-right-width:1px;max-width:120px;float:right}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller{position:relative;margin-right:-1.5em;padding-right:1.5em;justify-content:flex-end}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller .timeline-scroller-content{text-align:right;padding-left:0;padding-right:1em}.timeline-container.timeline-fullscreen .topic-timeline .timeline-scrollarea .timeline-scroller .timeline-handle{float:none;width:11px;position:relative;right:-6px}.timeline-container.timeline-fullscreen .timeline-scrollarea-wrapper::after{content:\"\";display:table;clear:both}.timeline-container .topic-timeline{margin-left:3em;transition:opacity 0.2s ease-in;touch-action:none}.timeline-container .topic-timeline .timeline-controls{margin-bottom:1em}.timeline-container .topic-timeline .timeline-controls button{margin-right:0.5em}.timeline-container .topic-timeline .timeline-footer-controls{margin-top:1.5em;transition:opacity 0.2s ease-in;display:flex}.timeline-container .topic-timeline .timeline-footer-controls button{margin-right:0.5em}.timeline-container .topic-timeline .timeline-footer-controls button:last-child{margin-right:0}.timeline-container .topic-timeline .start-date{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;color:#919191}.timeline-container .topic-timeline .timeline-scrollarea{margin-top:0.5em;margin-left:0.5em;border-left:1px solid;border-color:#d1f0ff;position:relative;-webkit-transform:translate3d(0, 0, 0)}.timeline-container .topic-timeline .timeline-padding{transition:height 0.15s ease-out;cursor:pointer}.widget-dragging .timeline-container .topic-timeline .timeline-padding{transition:none}.timeline-container .topic-timeline .timeline-handle{border-radius:0.8em;width:0.35em;background-color:#d1f0ff;height:100%;float:left;z-index:2}.timeline-container .topic-timeline .timeline-scroller-content{padding-left:1em}.timeline-container .topic-timeline .timeline-ago{color:#919191}.timeline-container .topic-timeline .timeline-scroller{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;margin-left:-0.19em;cursor:ns-resize;display:flex;align-items:center}.timeline-container .topic-timeline .timeline-scroller .back-button{margin-top:1em}.timeline-container .topic-timeline .timeline-replies{font-weight:bold}.timeline-container .topic-timeline .timeline-last-read{position:absolute;margin-left:-0.35em;z-index:3}.timeline-container .topic-timeline .timeline-last-read .progress{font-size:0.8em;color:#08c;margin-right:1em}.timeline-container .topic-timeline .back-button{min-height:unset;padding:2px 5px}.timeline-container .topic-timeline .now-date{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:inline-block;color:#919191;margin-top:0.5em}.alert{margin-bottom:15px}#banner{margin-bottom:10px;max-width:1090px;max-height:250px}#reply-control .reply-area{margin:0 auto;padding:5px 15px;box-sizing:border-box;height:calc(100% - 11px);width:100%}#reply-control .reply-area .submit-panel{flex-wrap:wrap;align-items:center}#reply-control #private-message-users{width:404px}#reply-control .item+#private-message-users{width:unset;min-width:150px;flex:1 1 auto}#reply-control .select-kit.is-expanded{z-index:701}.category-input{margin-left:10px}.edit-title .d-editor-preview-wrapper{margin-top:-43px}@media screen and (max-width: 955px){.edit-title:not(.private-message) .d-editor-preview-wrapper{margin-top:-77px}}.edit-title .with-tags .d-editor-preview-wrapper{margin-top:-77px}@media screen and (max-width: 900px){.edit-title .with-tags .d-editor-preview-wrapper{margin-top:-105px}}.closed .grippie{display:none}.open .grippie{cursor:row-resize;padding:4px 0;background:#08c}.open .grippie:before{content:\"\";display:block;width:27px;margin:auto;border-top:3px double #fff}.discourse-touch .open .grippie{padding:7px 0}.composer-popup-container{max-width:1500px;margin-left:auto;margin-right:auto}.composer-popup{position:absolute;width:calc(50% - 45px);max-width:724px;top:20px;bottom:10px;left:51%;overflow-y:auto;z-index:500;padding:10px 10px 35px 10px;box-shadow:0 4px 14px rgba(0,0,0,0.15);background:#ffffa6}.hide-preview .composer-popup{z-index:701}.composer-popup.urgent{background:#fbe6e1}.composer-popup.education-message{background-color:#d1f0ff}.composer-popup h3{margin-bottom:10px}.composer-popup p{margin-bottom:10px}.composer-popup a.close{display:flex;align-items:center;position:absolute;right:10px;top:10px;color:#222;opacity:0.5;font-size:1.1487em}.composer-popup a.close:before{content:\"esc\";font-size:.8706em;margin-right:0.5em}.composer-popup a.close:hover{opacity:1}.composer-popup ul{list-style:none;margin:0;padding:0}.composer-popup ul li{font-weight:normal;margin-top:8px}.composer-controls .d-chevron-down{vertical-align:text-top}.custom-body{background-color:#d1f0ff}.custom-body p{max-width:98%}.similar-topics{background-color:#d1f0ff}.similar-topics a[href]{color:#222}.similar-topics .posts-count{background-color:#08c}.similar-topics .search-link .topic-title{flex:0 1 auto;margin-right:0.5em}.similar-topics .search-link .topic-statuses:empty{display:none}.similar-topics .search-link span.badge-wrapper{margin-left:0}.similar-topics .search-link .blurb{color:#646464}.similar-topics .search-link .topic-title .d-icon,.similar-topics .search-link .blurb .d-icon{color:#646464}.similar-topics .search-link span.topic{display:flex;flex-direction:column}.similar-topics .search-link span.topic .first-line{flex:1}.similar-topics .search-link span.topic .second-line{display:flex;flex-wrap:wrap;align-items:center}.similar-topics .search-link span.topic .second-line .discourse-tags{flex-wrap:wrap;display:contents;font-size:.8706em}.composer-popup:nth-of-type(2){margin-left:10px;width:calc(50% - 65px)}a.toggle-preview{color:#646464}a.toggle-preview:hover{color:#08c}#draft-status,#file-uploading{flex-grow:1;text-align:right}.fullscreen-composer{overflow:hidden}.fullscreen-composer .profiler-results{display:none}.fullscreen-composer #reply-control.fullscreen{height:100vh !important;z-index:1001}@supports (--custom: property){.fullscreen-composer #reply-control.fullscreen{height:calc(var(--composer-vh, 1vh) * 100) !important}}.fullscreen-composer #reply-control.fullscreen .d-editor-preview-wrapper{margin-top:1%}.fullscreen-composer #reply-control.fullscreen .reply-to{border-bottom:1px solid #e9e9e9;padding-bottom:3px;margin:0}.fullscreen-composer #reply-control.fullscreen .reply-to .composer-controls{margin-right:0}.fullscreen-composer #reply-control.fullscreen .d-editor-textarea-wrapper{border:none}.fullscreen-composer #reply-control.fullscreen.show-preview .d-editor-textarea-wrapper{border-right:1px solid #e9e9e9}.fullscreen-composer #reply-control.fullscreen #draft-status,.fullscreen-composer #reply-control.fullscreen #file-uploading{margin-left:0;text-align:initial}.fullscreen-composer #reply-control.fullscreen .composer-popup{top:30px}.fullscreen-composer #reply-control.fullscreen:before{content:\"\";background:#fff;width:100%;height:100%;position:fixed;z-index:-1;left:0}body.widget-dragging{cursor:ns-resize}.boxed{height:100%}.form-vertical .control-group{margin-bottom:1.25em}.form-vertical .controls:not(.controls-dropdown)+.controls{margin-top:0.5em}code,pre{font-family:Consolas, Menlo, Monaco, \"Lucida Console\", \"Liberation Mono\", \"DejaVu Sans Mono\", \"Bitstream Vera Sans Mono\", \"Courier New\", monospace}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}form{margin:0 0 18px}label,input,button,select,textarea{font-size:1em;font-weight:normal;line-height:1.2}select,textarea{display:inline-block;padding:4px;margin-bottom:9px;font-size:1em;line-height:1.4;color:#222}input,textarea{width:210px}select,input[type=\"file\"]{line-height:1.4}select{width:220px;background:#fff}select[multiple],select[size]{height:auto}input,textarea{margin-left:0}input[type=\"radio\"][disabled],input[type=\"radio\"][readonly],input[type=\"checkbox\"][disabled],input[type=\"checkbox\"][readonly]{background-color:transparent}.input-xxlarge,.input-xxlarge+.control-instructions{width:530px}.controls-dropdown{margin-bottom:10px}.control-instructions{color:#919191;font-size:0.875rem}.control-group{margin-bottom:9px}.control-group.warning>label,.control-group.error>label{color:#e45735}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea,.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#e45735;border-color:#e45735}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus,.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#ae3417;box-shadow:0 0 6px 0 #e45735}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#e45735;background-color:#e45735;border-color:#e45735}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#e45735;background-color:#ec8972;border-color:#c63c1b}.control-group.success>label{color:#090}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#090;border-color:#090}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#090;box-shadow:0 0 6px 0 #08c}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#090;background-color:#b8ffb8;border-color:#090}.form-horizontal .hide{display:none}.form-horizontal input,.form-horizontal textarea,.form-horizontal select,.form-horizontal .input-prepend,.form-horizontal .input-append{display:inline-block;margin-bottom:0}.form-horizontal .control-group{margin-bottom:18px}.form-horizontal .control-group:before,.form-horizontal .control-group:after{content:\"\";display:table}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-indent{margin-left:20px;margin-bottom:10px}.form-horizontal .control-label{margin:6.5px;float:left;width:140px;text-align:right;font-weight:bold}.form-horizontal .controls{margin-left:160px}.bootbox.modal .modal-footer a.btn-primary{color:#fff}.row:before,.row:after{content:\"\";display:table}.row:after{clear:both}.offset2{margin-left:116px}.offset1{margin-left:64px}@media all and (max-width: 570px){body{min-width:0}.wrap,.full-width{min-width:0}}.d-header{left:0;height:4em;margin-bottom:15px}.d-header #site-logo{height:2.667em}.d-header #site-text-logo{font-size:1.5157em;margin:0}.d-header .extra-info:not(.two-rows) .header-title{margin-bottom:0}@media all and (max-width: 570px){.extra-info-wrapper{display:none}}#main{position:relative}#main-outlet{padding-top:5.8572em}.search-link .blurb{color:#646464;display:block;word-wrap:break-word;font-size:.7579em;line-height:1.4}.search-link .blurb .search-highlight{color:#646464}.login-modal #login-buttons:not(.hidden),.create-account #login-buttons:not(.hidden){display:flex;flex:0 1 auto;flex-direction:column;align-items:stretch;min-height:75px;padding:0 24px;order:2}.login-modal #login-buttons:not(.hidden) button,.create-account #login-buttons:not(.hidden) button{display:flex;text-align:left;margin:0.35em;white-space:nowrap;align-items:center}.login-modal #login-buttons:not(.hidden) button:lang(zh_CN),.create-account #login-buttons:not(.hidden) button:lang(zh_CN){min-width:200px}.login-modal #login-buttons:not(.hidden) button:first-of-type:last-of-type.oauth2_basic,.create-account #login-buttons:not(.hidden) button:first-of-type:last-of-type.oauth2_basic{margin-left:auto;margin-right:auto;justify-content:center}.login-modal form,.create-account form{min-width:300px;max-width:100%}.login-modal #modal-alert,.create-account #modal-alert{max-width:100%;padding:8px 16px}.login-modal .login-modal #login-buttons:not(.hidden) button:first-of-type,.create-account .login-modal #login-buttons:not(.hidden) button:first-of-type{margin-top:2.8em}.login-modal .login-modal #login-buttons:not(.hidden) button:last-of-type,.create-account .login-modal #login-buttons:not(.hidden) button:last-of-type{margin-bottom:3em}.login-modal .create-account #login-buttons:not(.hidden),.create-account .create-account #login-buttons:not(.hidden){justify-content:flex-start;padding-top:2.7em}.login-modal .create-account #login-buttons:not(.hidden)+.login-form,.create-account .create-account #login-buttons:not(.hidden)+.login-form{border-right:1px solid #e9e9e9}.login-modal #login-form,.create-account #login-form{box-sizing:border-box;flex:1 0 auto;padding:0 24px}.login-modal #login-form+#login-buttons,.create-account #login-form+#login-buttons{border-left:1px solid #e9e9e9}.login-modal tr:not(.instructions) td,.create-account tr:not(.instructions) td{display:flex;padding:5px 0 0 0}.login-modal .tip,.login-modal td label,.create-account .tip,.create-account td label{display:block;overflow:hidden;word-wrap:break-word;margin-bottom:0;max-width:280px}@media screen and (min-width: 500px){.login-modal .tip,.login-modal td label,.create-account .tip,.create-account td label{max-width:400px}}.has-alt-auth .tip,.has-alt-auth td label{max-width:250px}.d-modal.login-modal .modal-body,.d-modal.login-modal #credentials{display:flex;align-items:center;padding:15px 0}.d-modal.login-modal .modal-body tr,.d-modal.login-modal #credentials tr{display:flex;flex-direction:column}.d-modal.login-modal .modal-body.hidden,.d-modal.login-modal #credentials.hidden{display:none}.d-modal.create-account .modal-body{display:flex;padding:15px 0}.d-modal.create-account .create-account-form tr{display:flex;flex-direction:column}.d-modal.create-account .login-form{position:relative;display:flex;overflow:hidden;flex:1 1 auto}.d-modal.create-account .login-form:after,.d-modal.create-account .login-form:before{content:\"\";display:block;position:absolute;width:100%;pointer-events:none}.d-modal.create-account .login-form:after{bottom:0;height:35px;background-image:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 100%)}@media screen and (max-height: 650px){.d-modal.create-account .login-form:after{height:45px}}.d-modal.create-account .login-form:before{top:0;height:25px;background-image:linear-gradient(to top, rgba(255,255,255,0) 0%, #fff 100%)}.d-modal.create-account .login-form form{box-sizing:border-box;padding:16px 24px;margin-bottom:0;max-height:475px;overflow-x:hidden;overflow-y:auto}@media screen and (max-height: 650px){.d-modal.create-account .login-form form{max-height:calc(65vh - 100px)}.d-modal.create-account .login-form form>*:last-child{margin-bottom:40px}}.d-modal.create-account .login-form form,.d-modal.create-account .login-form table{width:100%}.d-modal.create-account .login-form tr{display:flex;flex-direction:column;margin-top:0.15em}.d-modal.create-account .login-form tr.password-confirmation{display:none}.d-modal.create-account tr.input input,.d-modal.create-account tr.input label{margin-bottom:0;width:100%}.d-modal.create-account tr.input .tip{max-width:340px}.d-modal.create-account .user-fields{margin-bottom:20px}.d-modal.create-account .user-field{display:flex;flex-direction:column}.d-modal.create-account .user-field.confirm{margin-top:5px}.d-modal.create-account .user-field>label{width:auto}.d-modal.create-account .user-field .controls{margin-left:0}.d-modal.create-account .invites-show{padding-top:20px}.d-modal.create-account .invites-show .two-col{margin-top:30px}.d-modal.create-account .invites-show .col-form{margin-left:200px}.d-modal.create-account .invites-show .col-form .inline-invite-img{display:none}.d-modal.create-account .invites-show form .controls,.d-modal.create-account .invites-show form .input{margin-left:20px}.d-modal.create-account .invites-show form input,.d-modal.create-account .invites-show form label{margin-bottom:0}.d-modal.create-account .invites-show form .user-field .control-label:not(.checkbox-label){margin-left:20px}.d-modal.create-account .tos-agree{margin-bottom:12px}.login-form .tip:not(:empty)+td{display:none}.login-form .tip:not(:empty),.login-form .tip:empty+td{min-height:1.75em}.login-form .tip:not(:empty).bad .svg-icon,.login-form .tip:empty+td.bad .svg-icon{vertical-align:middle}.password-reset .col-form,.email-login .col-form,.invites-show .col-form{padding-left:20px}.password-reset .col-image,.email-login .col-image,.invites-show .col-image{width:175px}.password-reset .col-image img,.email-login .col-image img,.invites-show .col-image img{width:100%}.password-reset h2,.email-login h2,.invites-show h2{margin-bottom:12px}.password-reset .col-form,.email-login .col-form{padding-top:40px}.bootbox.modal{top:50%;left:50%;width:610px;margin:-250px 0 0 -305px}.bootbox.modal .cancel{margin-left:1em}.modal.in{-webkit-animation:fade 0.25s;animation:fade 0.25s}.modal-footer .btn.right{float:right}.modal-header h3{font-size:1.5157em}.close{font-size:1.5157em;text-decoration:none;cursor:pointer}.close:visited{color:#646464}.close:hover{color:#222}.modal .category-chooser{width:50%}.modal .modal-body.insert-link input{min-width:450px}.edit-category-modal .modal-body{position:relative;height:420px}.edit-category-modal .edit-category-tab-general .category-chooser{width:434px}.edit-category-modal .disable_info_wrap .cannot_delete_reason{top:-100px;right:4px;max-width:380px;min-width:300px}.topic-bulk-actions-modal p{margin-top:0}.topic-bulk-actions-modal.full .modal-body{height:400px;max-height:400px}.topic-bulk-actions-modal .bulk-buttons{display:flex;flex-wrap:wrap;margin-right:-1%}.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 0 30%;margin-bottom:1em;margin-right:1%;white-space:nowrap;overflow:hidden;max-width:33%}@media screen and (max-width: 767px){.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 0 48%;max-width:48%}}@media screen and (max-width: 550px){.topic-bulk-actions-modal .bulk-buttons .btn{flex:1 1 auto;min-width:49%;max-width:unset}}.choose-topic-modal .modal-body{position:relative;height:350px}.choose-topic-modal #choosing-topic{width:525px}.choose-topic-modal #choosing-topic p{margin-top:0}.choose-topic-modal #choosing-topic .radios{margin-bottom:10px;display:flex;flex-direction:row}.choose-topic-modal #choosing-topic .radios .radio-label{display:inline-block;padding-right:15px}.choose-topic-modal #choosing-topic button{margin-top:10px;display:block;width:300px}.choose-topic-modal #choosing-topic form{width:95%;margin-top:20px}.choose-topic-modal #choosing-topic form .participant-selector{width:100%}.choose-topic-modal #choosing-topic form div.ac-wrap{width:100%;margin-bottom:9px}.category-list{margin-bottom:10px;width:100%}.category-list td{vertical-align:top}.category-list th{vertical-align:middle}.category-list td:first-of-type{padding-left:10px}.category-list.with-topics{margin-left:3px}.category-list.with-topics .category{width:45%}.category-list .topics .badge-notification,.category-list .category .badge-notification{background-color:transparent;color:#919191}.category-list .topics{width:80px;text-align:right}.category-list .topics .value{font-size:1.1487em}.category-list .topics .unit{font-size:.8706em}.category-list .topics .badge-notification{display:block;text-align:right;padding-right:0;margin-top:5px}.category-list .subcategories{margin-top:0.25em;clear:both}.category-list .subcategories .subcategory{display:inline-flex;align-items:baseline;margin-right:0.3em}.category-list .subcategories .badge-wrapper{margin-right:0.5em}.category-list .subcategories .badge-notification.new-posts{display:block;padding:0}.category-list .featured-topic{margin:10px 0 0;display:flex;align-items:baseline}.category-list .featured-topic:first-of-type{margin-top:13px}.category-list .featured-topic a.last-posted-at,.category-list .featured-topic a.last-posted-at:visited{font-size:.8706em;color:#919191}.category-list .featured-topic .title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:0 1 auto}.category-list .featured-topic .topic-statuses{margin-right:0.15em}.category-list .featured-topic .topic-post-badges .badge.new-posts,.category-list .featured-topic .title{margin-right:5px}.category-list tbody .category{border-left:6px solid}.category-list tbody .category h3,.category-list tbody .category h4{line-height:1.2}.category-list tbody .category h3 a[href],.category-list tbody .category h4 a[href]{color:#222}.category-list tbody .category h3{font-size:1.3195em}.category-list tbody .category h4{font-size:1.1487em}.category-list tbody .latest{padding:0 0 10px 10px}.categories-and-latest,.categories-and-top{display:flex;flex-flow:row wrap}.categories-and-latest div.column,.categories-and-top div.column{flex:1 0 0px;flex-direction:row;min-width:300px}@media all and (max-width: 600px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:0}}@media all and (min-width: 600px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:1em}}@media all and (min-width: 700px){.categories-and-latest div.column.categories,.categories-and-top div.column.categories{margin-right:2em}}.categories-and-latest .discourse-tags,.categories-and-top .discourse-tags{display:inline-block}.categories-and-latest .discourse-tags .discourse-tag,.categories-and-top .discourse-tags .discourse-tag{font-size:.8706em}.categories-and-latest .topic-featured-link,.categories-and-top .topic-featured-link{padding-left:8px}.categories-and-latest .subcategories-with-subcategories .category-description,.categories-and-top .subcategories-with-subcategories .category-description{display:none}.latest-topic-list .table-heading,.top-topic-list .table-heading{padding:12px 5px;color:#919191}.latest-topic-list .no-topics,.latest-topic-list .more-topics,.top-topic-list .no-topics,.top-topic-list .more-topics{margin-top:1em}.latest-topic-list-item{padding:1em;border-bottom:1px solid #e9e9e9;display:flex;align-items:center}.latest-topic-list-item .topic-poster{width:60px}.latest-topic-list-item .main-link{flex:0 1 auto;max-width:65%;font-size:1em}.latest-topic-list-item .main-link .badge-wrapper{max-width:100%}.latest-topic-list-item .main-link .badge-wrapper .badge-category-bg{flex-shrink:0}.latest-topic-list-item .main-link .top-row{margin-bottom:0.1em;font-size:1.1487em}.latest-topic-list-item .topic-stats{flex:1 0 0px;text-align:right;color:#919191}.latest-topic-list-item .topic-last-activity a{color:#919191}.list-controls .nav{float:left;margin-bottom:10px}.list-controls .btn{float:right;margin-left:8px;margin-bottom:9px;font-size:1.1487em;font-weight:normal}.list-controls .search .btn{float:none}.list-controls a.badge-category{padding:3px 12px;font-size:1.1487em}.topic-list-icons .d-icon-thumbtack,.latest-topic-list .d-icon-thumbtack,.top-topic-list .d-icon-thumbtack,.topic-list .d-icon-thumbtack{color:#919191}.topic-list-icons .d-icon-thumbtack.unpinned,.latest-topic-list .d-icon-thumbtack.unpinned,.top-topic-list .d-icon-thumbtack.unpinned,.topic-list .d-icon-thumbtack.unpinned{color:#919191}.topic-list-icons a.title,.latest-topic-list a.title,.top-topic-list a.title,.topic-list a.title{color:#222}.topic-list-icons .d-icon-bookmark,.latest-topic-list .d-icon-bookmark,.top-topic-list .d-icon-bookmark,.topic-list .d-icon-bookmark{color:#919191}.topic-list{margin:0 0 10px}.topic-list th,.topic-list td{padding:12px 5px}.topic-list th:first-of-type,.topic-list td:first-of-type{padding-left:10px}.topic-list th:last-of-type,.topic-list td:last-of-type{padding-right:10px}.topic-list th button .d-icon{color:#919191}.topic-list button.bulk-select{padding:0}.topic-list td.bulk-select{padding:10px;width:30px}.topic-list td.bulk-select+.main-link{padding-left:0}.topic-list .badge-notification{position:relative;top:-2px}.topic-list .badge-notification.new-topic{top:-1px;padding-left:5px}.topic-list .posters{width:146px}.topic-list .posters>a{float:left;margin-right:4px}.topic-list .posters>a:last-of-type{margin-right:0}.topic-list .posters>a.posters-more-count{cursor:default;color:#919191;line-height:25px;font-size:.8706em}.topic-list td.posters{height:29px}.topic-list .posters a:first-child .avatar.latest:not(.single){box-shadow:0 0 3px 1px #81c3e4;border:2px solid #85c2e0;position:relative;top:-2px;left:-2px}.topic-list .likes{width:65px}.topic-list .views{width:65px}.topic-list .posts{width:65px}.topic-list .post-actions{clear:both;width:auto;color:#919191;text-align:left;font-size:.8706em;margin-top:5px}.topic-list .post-actions .fa{margin-right:2px}.topic-list .post-actions a{color:#919191;margin-right:3px;line-height:1.4}.topic-list .activity{width:60px}.topic-list .activity:lang(zh_CN){width:80px}.topic-list .activity span{cursor:pointer}.topic-list .age{width:60px}.topic-list .with-year{white-space:nowrap}.topic-list-bottom{margin:20px 0}#list-area .top-lists h2{cursor:pointer;margin:5px 0 10px}#list-area h2{margin:20px 0 10px}#list-area .show-more.has-topics{top:0}#list-area .show-more.has-topics .alert{padding:12px 35px 12px 14px}#bulk-select{position:fixed;right:20px;top:130px;padding:5px;background-color:#fff;z-index:300}button.dismiss-read{float:right;margin-bottom:5px;margin-left:10px}.tags-admin-menu .dropdown-menu{right:0;top:30px;bottom:auto;left:auto}.category-heading p{line-height:1.4;font-size:1.5157em}.category-navigation{clear:both}.category-logo.aspect-image{float:left;margin:0.25em 1em 0.5em 0}.category-logo.aspect-image img{width:auto;max-height:150px}@supports (--custom: property){.category-logo.aspect-image{--max-height: 150px;max-height:var(--max-height);max-width:60%;height:auto;width:calc(var(--max-height) * var(--aspect-ratio))}.category-logo.aspect-image img{width:100%;height:inherit;max-width:initial;max-height:initial}}@media screen and (max-width: 850px){.nav-pills>li>a{font-size:1em;padding:7px 10px}button#create-topic span{display:none}button#create-topic .d-icon{margin-right:0}.topic-list th:first-of-type{padding:12px 5px}.topic-list th,.topic-list td{padding:10px;font-size:1em}.topic-list th.views{display:none}.topic-list td.views{display:none}.topic-list .posts{width:50px}.topic-list .posters{width:30px;text-align:center}.topic-list td.posters a:not(.latest){display:none}.topic-list td.posters a.latest{width:100%}.topic-list td.posters a.latest img{margin:0 auto}}.wrap{max-width:1110px}.full-width{margin-left:0}.topic-post:first-child nav.post-controls .post-admin-menu{bottom:-125px}.topic-body{padding:0}.topic-body .regular{margin-top:15px}.topic-body:first-of-type{border-top:none}.topic-body .reply-to-tab{z-index:2;color:#919191}.discourse-no-touch .topic-body .actions .fade-out{opacity:0.7;transition:background 0.25s, opacity 0.7s ease-in-out}.discourse-touch .topic-body .actions .fade-out{opacity:1}.topic-body:hover .actions .fade-out,.topic-body .selected .actions .fade-out{opacity:1}section.post-menu-area{position:relative;padding-left:11px}.post-links-container{margin-left:11px}nav.post-controls{padding:0}nav.post-controls .double-button{display:inline-flex;color:#bdbdbd;margin-right:0.15em}nav.post-controls .double-button:hover button{background:#e9e9e9;color:#919191}nav.post-controls .double-button button{margin-left:0;margin-right:0}nav.post-controls .double-button button:active{box-shadow:none}nav.post-controls .double-button button.my-likes .d-icon,nav.post-controls .double-button button.read-indicator .d-icon,nav.post-controls .double-button button.regular-likes .d-icon{color:#bdbdbd;padding-left:0.45em}nav.post-controls .double-button button.like.d-hover{background:#fee9ee}nav.post-controls .double-button button.like.d-hover .d-icon{color:#fa6c8d}nav.post-controls .double-button button.has-like .d-icon{color:#fa6c8d}nav.post-controls .double-button button.has-like.d-hover{background:#e9e9e9}nav.post-controls .double-button button.has-like.d-hover .d-icon{color:#919191}nav.post-controls .double-button button[disabled]{cursor:not-allowed}nav.post-controls .double-button button.button-count:not(.my-likes){padding-right:0}nav.post-controls .double-button button.button-count.d-hover{color:#222}nav.post-controls .double-button button.button-count+.toggle-like{padding-left:0.45em}nav.post-controls .double-button button.button-count+.toggle-like.d-hover{background:#e9e9e9}nav.post-controls a,nav.post-controls button{color:#bdbdbd;margin-right:2px;display:inline-block}nav.post-controls a .d-icon,nav.post-controls button .d-icon{opacity:1}nav.post-controls a.toggle-likes{padding:8px 0;margin-right:-3px}nav.post-controls span.badge-posts{margin-right:5px;transition:all linear 0.15s}nav.post-controls .actions{text-align:right;float:right;display:inline-block}nav.post-controls .actions .more-actions{display:none;overflow:hidden}nav.post-controls .show-replies{margin-left:-10px;font-size:inherit}nav.post-controls .show-replies span.badge-posts{color:#919191}nav.post-controls .show-replies:hover{background:#e9e9e9}nav.post-controls .show-replies:hover span.badge-posts{color:#222}nav.post-controls .show-replies .d-icon{margin-left:5px;font-size:.8706em}nav.post-controls button.create{margin-right:0;color:#646464;margin-left:10px}nav.post-controls button.create .d-icon{color:#646464}nav.post-controls .create .d-icon{margin-right:5px}nav.post-controls button{font-size:1.1487em;padding:8px 10px;vertical-align:top;background:transparent;border:none;margin-left:3px}nav.post-controls button.d-hover,nav.post-controls button:focus{background:#e9e9e9;color:#222}nav.post-controls button:active{box-shadow:inset 0 1px 3px rgba(0,0,0,0.4)}nav.post-controls button.hidden{display:none}nav.post-controls button.admin{position:relative}nav.post-controls button.delete.d-hover,nav.post-controls button.delete:hover,nav.post-controls button.delete:focus{background:#e45735;color:#fff}nav.post-controls button.delete.d-hover .d-icon,nav.post-controls button.delete:hover .d-icon,nav.post-controls button.delete:focus .d-icon{color:#fff}nav.post-controls button.bookmark{padding:8px 11px}nav.post-controls button.bookmark.bookmarked .d-icon{color:#08c}nav.post-controls .post-admin-menu{display:inline-flex;flex-direction:column;box-sizing:border-box;background-color:#fff;width:auto;max-width:320px;padding:10px;border:1px solid #e9e9e9;position:absolute;text-align:left;bottom:-2px;right:15px;z-index:300}nav.post-controls .post-admin-menu h3{margin-top:0;color:#222;font-size:1em}nav.post-controls .post-admin-menu ul{list-style:none;margin:10px 0 0 0}nav.post-controls .post-admin-menu li{margin-bottom:5px}nav.post-controls .post-admin-menu li .d-icon{width:14px;margin-right:10px}.embedded-posts{border:1px solid #e9e9e9}.embedded-posts h1,.embedded-posts h2,.embedded-posts h3{margin:10px 0}.embedded-posts .topic-body{box-sizing:border-box;width:calc(100% - 70px);overflow:hidden}.embedded-posts .cooked{margin-top:15px}.embedded-posts .topic-avatar{padding-left:25px;padding-top:15px}.embedded-posts .collapse-down,.embedded-posts .collapse-up{position:absolute;color:#919191;background:#fff;border:1px solid #e9e9e9;padding:6px 9px 8px;z-index:99}.embedded-posts .collapse-down .d-icon,.embedded-posts .collapse-up .d-icon{color:currentColor}.discourse-no-touch .embedded-posts .collapse-down:hover,.discourse-no-touch .embedded-posts .collapse-up:hover{background:#e9e9e9;color:#646464}.discourse-no-touch .embedded-posts .collapse-down:hover .d-icon,.discourse-no-touch .embedded-posts .collapse-up:hover .d-icon{color:currentColor}.embedded-posts.bottom{border-top:none;margin-bottom:20px;margin-left:11px}.embedded-posts.bottom.hidden{display:block;opacity:0}.embedded-posts.bottom .collapse-up{transform:translate(-50%, -164%)}.embedded-posts.bottom .row{padding-bottom:0.5em}.embedded-posts.bottom .row .topic-avatar,.embedded-posts.bottom .row .topic-body{border-top:1px solid #e9e9e9}.embedded-posts.top{border-bottom:none;margin-left:56px;width:699px}.embedded-posts.top .collapse-down{transform:translate(-50%, 55%)}.embedded-posts.top .row{border-bottom:none}.embedded-posts.top .row .topic-avatar,.embedded-posts.top .row .topic-body{border-top:1px solid #e9e9e9}.embedded-posts.top.topic-body{padding:0}.embedded-posts .post-date{color:#919191}.embedded-posts .d-icon-arrow-up,.embedded-posts .d-icon-arrow-down{margin-left:5px}.embedded-posts .reply:first-of-type .row{border-top:none}.embedded-posts .topic-meta-data{position:relative}.embedded-posts .topic-meta-data h5{position:absolute;z-index:1;font-size:.8706em}.embedded-posts .topic-meta-data h5 a{font-weight:bold;color:#bdbdbd}.embedded-posts .arrow{color:#919191}.post-action .relative-date{margin-left:5px}.post-action .avatar{margin-right:2px}.topic-map{margin:20px 0 20px 11px}.topic-map .map .secondary{text-align:center}.topic-map .map li{float:left;padding:7px 10px}.topic-map .map li:last-of-type{border-right:0}.topic-map .map li:nth-child(3){text-align:center}.topic-map .map .number{color:#646464}.topic-map .map .number,.topic-map .map .d-icon{font-size:1.3195em;line-height:1.2}.topic-map .map button .d-icon,.topic-map .map button:hover .d-icon{color:#646464}.topic-map .map .avatar a{float:left}.topic-map .map .topic-map-post{margin-top:6px}.topic-map .avatars,.topic-map .links,.topic-map .information{padding:7px 10px 7px 10px;color:#222}.topic-map .buttons{float:right}.topic-map .buttons .btn{border:0;padding:0 23px;color:#919191;background:#f9f9f9;border-left:1px solid #e9e9e9;border-top:1px solid transparent}.topic-map .buttons .btn:hover{color:#222;background:#e9e9e9}.topic-map .buttons .btn.collapsed{padding-bottom:1px}.topic-map .buttons .btn .fa{margin:0;font-size:1.3195em;line-height:52px}.topic-map .link-summary .btn{color:#919191;background:#f9f9f9;width:100%}.topic-map .link-summary .btn:hover{color:#222;background:#e9e9e9}#topic-footer-buttons{padding:10px 10px 0 0;float:left}#topic-footer-buttons .btn{margin-bottom:5px;margin-right:10px}#topic-footer-buttons .btn .d-icon-bookmark.bookmarked{color:#08c}#topic-footer-buttons .bookmark.bookmarked .d-icon-bookmark{color:#08c}#topic-footer-buttons .feature-on-profile.featured-on-profile .d-icon-id-card{color:#08c}#topic-footer-button{width:757px}.suggested-topics{clear:left;padding:20px 0 15px 0}.suggested-topics table{margin-top:10px}.suggested-topics .topic-statuses .topic-status{padding:0}.suggested-topics .topic-statuses .topic-status .d-icon{font-size:1em}span.post-count{background:#222;color:#fff;opacity:0.8}button.expand-post{margin-top:10px;margin-left:11px}.quote-button.visible{display:block}iframe{max-width:100%}video{max-height:500px}.video{max-height:500px}.video>video{max-height:unset}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.open>.dropdown-menu{display:block}.btn-group{position:relative}.dropdown-toggle{float:left;position:relative}.deleted .topic-body{background-color:rgba(242,171,154,0.7)}.post-select{float:right;margin-right:20px;margin-top:-20px}.deleted-user-avatar{font-size:2.296em}.info-line{margin:10px 0;color:#222}blockquote{margin-left:0;margin-right:0;padding:12px}.quote>blockquote .onebox-result{background-color:#f8f8f8}.quote aside .quote,.quote aside .title,.quote aside blockquote,.quote aside .onebox,.quote aside .onebox-result{background:#f8f8f8;border-left:5px solid #e9e9e9}.quote aside aside.quote>blockquote,.quote aside aside.quote>.title{border-left:0}.topic-body{width:calc(690px + (11px * 2));float:left;position:relative;border-top:1px solid #e9e9e9;padding:12px 0 0 0}.topic-body .topic-meta-data,.topic-body .cooked{padding:0 11px 0.25em 11px}.topic-body a.expand-hidden{padding-left:11px}.topic-avatar{border-top:1px solid #e9e9e9;padding-top:15px;width:45px;float:left;z-index:2}.gap{width:calc( 45px + 690px + 2 * 11px)}.time-gap+.topic-post .topic-body,.time-gap+.topic-post .topic-avatar{border-top:none}.time-gap+.topic-post .embedded-posts.top{border-bottom:1px solid #e9e9e9}.posts-wrapper{position:relative;-webkit-font-smoothing:subpixel-antialiased}.dropdown{position:relative}.caret{display:inline-block;width:0;height:0;vertical-align:middle;border-top:4px solid #222;border-right:4px solid transparent;border-left:4px solid transparent;content:\"\";margin-left:5px}.dropdown-menu{position:absolute;bottom:115%;left:0;z-index:300;display:none;float:left;width:550px;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #e9e9e9;box-shadow:0 2px 3px 0 rgba(0,0,0,0.2);background-clip:padding-box}.dropdown-menu span{font-size:.8706em;color:#919191}.dropdown-menu span.title{font-weight:bold;display:block;font-size:1em;color:#222}.dropdown-menu a{display:block;padding:9px;clear:both;font-weight:normal;line-height:1.2;color:#222;transition:all linear 0.15s}.dropdown-menu a>div{margin-left:26px}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#222;text-decoration:none;background-color:#ffffa6}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{text-decoration:none;color:#222;background-color:#d1f0ff;cursor:default}.dropdown-menu .icon{margin-top:3px;float:left;font-size:1.3195em}.open>.dropdown-menu{display:block;clear:both}.selected-posts{width:200px;position:fixed;z-index:300;box-shadow:0 4px 14px rgba(0,0,0,0.15);padding:0.714em;margin-bottom:5px;right:10px}@media screen and (min-width: 1140px){.selected-posts{right:auto;margin-left:330px;left:50%}}.selected-posts button{width:100%;margin:4px auto;display:inline-block;text-align:left}.selected-posts.hidden{display:none}.selected-posts .controls{margin-top:10px}.selected-posts p{font-size:.8706em;margin:0 0 10px 0}.selected-posts p.cancel{margin:10px 0 0 0}.selected-posts h3{font-size:1.7511em;color:#222;margin-bottom:5px}.selected-posts h3 .d-icon{margin-right:7px}a.attachment:before{display:inline-block;margin-right:4px;content:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14px' height='16px' viewBox='0 0 512 512' fill='%2308c'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z'%3E%3C/path%3E%3C/svg%3E\");vertical-align:middle}.topic-meta-data{align-items:center}.topic-meta-data .names{display:flex;align-items:center}.topic-meta-data:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.topic-meta-data .post-info a{color:#919191}.topic-meta-data .post-info a.wiki{color:green}.who-liked,.who-read{margin-top:20px;margin-bottom:0;width:100%;text-align:right}span.highlighted{background-color:#d1f0ff}.first.new-user:not(.staff) a{color:#bdbdbd}.read-state{position:absolute;align-self:center;color:#6cf;right:0;font-size:0.571em}.read-state.read{visibility:hidden;opacity:0;transition:visibility 1s, opacity ease-out 1s}.signup-cta{width:690px}@media all and (max-width: 790px){.topic-avatar{width:45px}.topic-post .reply-to-tab{right:15%}.topic-body{box-sizing:border-box;width:calc(100% - 47px)}.embedded-posts.top{width:calc(100% - 56px)}}.post-actions{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;clear:both;text-align:right;margin-bottom:10px}.post-actions .post-action{display:inline-block;margin-left:10px;margin-top:10px}.post-menu-area{margin:20px 0}#topic-title{z-index:1;padding-top:14px;margin-bottom:10px}#topic-title #edit-title,#topic-title .category-chooser,#topic-title .edit-controls{width:500px}#topic-title h1{font-size:1.7511em;line-height:1.2;overflow:hidden;width:100%}#topic-title h1 a{color:#222}#topic-title .remove-featured-link{float:right;text-transform:lowercase;color:#919191;font-size:0.857rem}.topic-error,.topic-notice{padding:18px;width:60%;margin-left:auto;margin-right:auto;font-size:1.7511em;text-align:center;line-height:1.2}.topic-error .topic-retry,.topic-error .topic-join-group,.topic-notice .topic-retry,.topic-notice .topic-join-group{display:block;margin-top:28px;margin-left:auto;margin-right:auto}.topic-status-info{border-top:1px solid #e9e9e9;padding:10px 0;max-width:758px}.topic-status-info .topic-timer-heading{display:flex;align-items:center;margin:0px}.topic-status-info .topic-timer-remove{font-size:.7579em;background:transparent;margin-left:auto}#topic-progress-wrapper{position:fixed;right:1em;bottom:0;z-index:100}#topic-progress-wrapper.docked{position:absolute;bottom:-70px}#topic-progress-expanded{border:1px solid #e9e9e9;padding:5px;background:#fff;position:relative;left:340px;width:135px}#topic-progress-expanded button.full{width:100%;margin-bottom:5px}#topic-progress-expanded button.full .d-icon{display:block;margin-top:2px;margin-bottom:2px;font-size:1.3195em}#topic-progress-expanded .jump-form input[type=\"text\"]{float:left;width:45px;height:20px;text-align:center;margin-bottom:0;font-size:1.1487em}#topic-progress-expanded .jump-form button.btn{float:right;width:55px}#topic-progress-expanded button.btn.jump-prompt{margin:0}#topic-progress-expanded button.btn.jump-bottom{margin:5px 0 0 0}#topic-progress{position:relative;left:340px;background-color:#fff;color:#08c;border:1px solid #d1f0ff;border-bottom:none;width:145px;height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#topic-progress.hidden{display:none}#topic-progress:hover{cursor:pointer}#topic-progress .nums{position:relative;top:9px;width:100%;text-align:center;z-index:1}#topic-progress .d-icon{position:absolute;right:8px;bottom:9px;z-index:1}#topic-progress h4{display:inline;font-size:1.3195em;line-height:1}#topic-progress .bg{position:absolute;top:0;bottom:0;width:0;max-width:145px;border-right:1px solid #d1f0ff;background-color:#d1f0ff;transition:width 0.75s}#topic-filter{background-color:#ffffa6;padding:8px;bottom:0;position:fixed;width:100%;font-size:1em;z-index:300}@media all and (min-width: 400px){#topic-progress,#topic-progress-expanded{right:0;left:0}#topic-progress-wrapper{right:19vw}#topic-progress-wrapper.docked{right:19vw}#topic-footer-main-buttons{max-width:70%}}@media all and (max-width: 485px){#topic-progress-wrapper.docked{display:none}#topic-footer-main-buttons{max-width:100%}}.upload-selector label{display:inline-block;padding-left:10px}.upload-selector .radios{min-height:60px;display:flex;align-items:flex-start}.upload-selector .radios label{flex:1 0 auto;margin-right:1em;margin-top:1px}.upload-selector .radios .inputs{width:100%}.upload-selector .radios .inputs input{width:90%;margin:0 0 5px 0}.upload-selector .radios .inputs input[type=\"file\"]{font-size:1em;line-height:1.2}.upload-selector .radios .inputs .description,.upload-selector .radios .inputs .hint{color:#919191;display:block}.upload-selector .radios .inputs .hint{font-style:italic;margin:5px 0 0 0}.upload-selector .radios .inputs .label{margin:0 0 5px 0}.upload-selector .radios:last-child:not(:nth-child(2)){min-height:20px}.uploaded-image-preview{height:270px;width:400px;max-height:150px;margin-bottom:10px}.user-content-wrapper>.alert:first-child,.user-content-wrapper>.user-stream>.alert:first-child{margin-top:10px}.user-content-wrapper .show-mores{position:absolute}.form-horizontal .control-group.category{margin-top:18px}.user-profile-hidden{font-size:1.5em;text-align:center}.user-secondary-navigation{min-width:150px}.user-secondary-navigation .nav-stacked{background-color:transparent}.user-secondary-navigation .nav-stacked li{border-bottom:none}.user-secondary-navigation .nav-stacked li.archive{padding-left:1.4em}.user-secondary-navigation .nav-stacked a{color:#919191}.user-secondary-navigation .nav-stacked a.active{color:#222;font-weight:bold;background-color:transparent}.user-secondary-navigation .nav-stacked a.active:after{display:none}.user-content{padding-bottom:12px;margin-bottom:12px;background-color:#fff;box-sizing:border-box}.user-content.user-badges-list{display:flex;flex-wrap:wrap}.user-content .btn.right{float:right}.user-content h2{margin-bottom:10px}.pref-avatar .avatar{max-width:90px;max-height:90px}.pref-second-factor{margin-top:10px}.user-invite-list{width:100%;margin-top:15px}.user-invite-list tr td{padding:0.667em}.user-invite-search{clear:both;margin:15px 0px -15px 0px}.user-invite-none{padding:15px 0}.user-main{margin-bottom:50px}.user-main .about.group .details{padding:15px 0;margin:0;color:#3c3c3c}.user-main .about .details img.avatar{margin:0 20px 10px 0}.user-main .about .details .primary .primary-textual{padding:0 4px 4px}.user-main .about .details .primary .primary-textual a[href]{text-decoration:underline}.user-main .about .details .primary .primary-textual h1{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details .primary .primary-textual .location-and-website{display:flex;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-main .about .details .primary .primary-textual .location-and-website .user-profile-location{margin-right:1em}.user-main .about .details .primary .bio{max-width:750px}.user-main .about .details .primary .bio a.mention{text-decoration:none}.user-main .about .details .secondary{margin-top:16px}.user-main .about.has-background .user-profile-image{height:300px}.user-main .about.has-background .details{box-sizing:border-box;width:100%;padding:15px 0 0 0;bottom:0}.user-main .about .controls{padding:0 0 12px 0;float:right;text-align:right}.user-main .about .controls .btn{min-width:140px}.user-main .about.collapsed-info .user-profile-image{display:none}.user-main .about.collapsed-info .controls{width:auto}.user-main .about.collapsed-info .controls>ul{display:inline-flex}.user-main .about.collapsed-info .controls>ul>li{display:inline;margin-left:12px}.user-main .about.collapsed-info .controls>ul>li .d-button-label{line-height:1}.user-main .about.collapsed-info .controls>ul a{margin-bottom:10px;width:auto}.user-main .about.collapsed-info .details{position:relative;padding:0;margin-top:0;border-bottom:1px solid #e9e9e9}.user-main .user-field input[type=\"text\"]{width:530px}.user-main .user-field .controls .instructions{display:block}.user-main .public-user-fields{overflow:hidden}.user-preferences{padding-top:10px;padding-left:30px}.user-preferences .form-vertical{width:500px;max-width:100%}.user-preferences h3{color:#222;margin:20px 0 10px 0}.user-preferences .category-selector,.user-preferences .tag-chooser,.user-preferences textarea,.user-preferences input.user-selector,.user-preferences .user-chooser{width:100%}.user-preferences .instructions{display:inline-block;margin-top:4px}.user-crawler .username{margin-left:5px;display:inline-block}.modal.history-modal .modal-inner-container{max-width:1110px}.modal.history-modal .modal-body{height:70vh}.modal.history-modal #revision-controls .btn[disabled]{cursor:not-allowed;background-color:#e9e9e9}.modal.history-modal #revision-controls .btn-danger[disabled]{background-color:#ec8972}.modal.history-modal #revision{display:flex;justify-content:space-between}.modal.history-modal #revisions{word-wrap:break-word}.modal.history-modal #revisions table{margin-top:10px}.modal.history-modal img{max-width:670px;height:auto}.modal.history-modal .inline-diff{width:670px}.modal.history-modal .markdown{font-family:monospace;font-size:.8706em;width:100%;border-collapse:collapse;border-spacing:0}.modal.history-modal .markdown td{width:50%;vertical-align:top;max-width:440px;word-wrap:break-word;white-space:pre-wrap}.modal.history-modal .revision-content img,.modal.history-modal .markdown img{max-width:100%;box-sizing:border-box}.modal.history-modal .modal-header{height:42px}.modal.history-modal .modal-footer{display:flex;justify-content:space-between}.group-nav .group-dropdown{margin-right:10px}.group-info{margin-bottom:20px}.group-navigation{width:15%;background-color:transparent}.group-navigation li{border:none}.group-navigation li a{color:#919191;padding:8px 0}.group-navigation li a.active{background-color:transparent;font-weight:bold;color:#222}.group-navigation li a.active:after{display:none}.group-activity-outlet,.group-messages-outlet,.group-manage-outlet{width:85%}.group-manage .form-horizontal button{float:none}.group-details-button{position:absolute;top:20px;right:20px}.admin-customize .show-current-style{padding-left:2%;width:68%}.admin-customize .show-current-style .title input{width:80%}.admin-customize .themes-list{width:28%}.user-card,.group-card{position:absolute;z-index:200}.user-card.fixed,.group-card.fixed{position:fixed;z-index:1001}.user-card.docked-card,.group-card.docked-card{z-index:1001}.user-card .first-row .names,.group-card .first-row .names{flex:1 1 auto}.user-card .first-row .usercard-controls button,.group-card .first-row .usercard-controls button{min-width:150px}.user-card h1 .d-icon,.group-card h1 .d-icon{font-size:.8706em}.user-card h2,.group-card h2{font-size:1.1487em}.user-card h3,.group-card h3{font-size:1em}.user-card .badge-section .user-badge,.user-card .badge-section .more-user-badges a{display:block;max-width:185px;margin:0 0.5em 0 0}.user-card .badge-section .more-user-badges{max-width:125px}.user-info.medium{flex:0 0 32%;margin:0 2% 4vh 0;display:flex}.user-info.medium:nth-of-type(3n){margin-right:0}@media screen and (max-width: 800px){.user-info.medium{flex:0 0 48%;margin-right:0}}.user-info.medium .user-image{width:55px;margin-right:0}.user-stream .item,.user-stream .user-stream-item{padding:1em 0.53em}.user-stream .time,.user-stream .delete-info,.user-stream .draft-type{margin-right:8px}.user-stream .notification.unread{background-color:#d1f0ff}\n\n/*# sourceMappingURL=desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11099999358318746,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 853.9360000071358,
          "receive": 3550.6009999953676,
          "_blocked_queueing": 0.10999999358318746
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 76
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 854.2240000097081,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "0b5c9104-5fad-4f8f-bc51-8e9278e4173c"
            },
            {
              "name": "X-Runtime",
              "value": "0.031613"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 992,
            "mimeType": "text/css",
            "text": "details{position:relative}details>*,details .lightbox-wrapper{display:none}details,summary{outline:none}summary:first-of-type{cursor:pointer;display:block}summary:before{content:\"\\25BA\";margin-right:0.25em}details[open]>*,details[open] .lightbox-wrapper{display:block}details[open]>summary:before,details.open>summary:before{content:\"\\25BC\"}details[open]>summary:first-of-type ~ *,details.open>summary:first-of-type ~ *{display:block}summary::-webkit-details-marker{display:none}.elided summary:before{content:\"\" !important;display:none}.elided summary{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;margin:0;padding:0;color:#919191;background:#e9e9e9;border:1px solid #bdbdbd;width:1.5em;line-height:1}.elided summary:hover{color:#222;background:#bdbdbd;border-color:currentColor}\n\n/*# sourceMappingURL=discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.12000000390596688,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 849.9779999914356,
          "receive": 4.126000014366582,
          "_blocked_queueing": 0.11900000390596688
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 79
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.622Z",
        "time": 854.6949999872595,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "795483b1-4968-48f7-9147-9f8e45ffe0ad"
            },
            {
              "name": "X-Runtime",
              "value": "0.024260"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 132,
            "mimeType": "text/css",
            "text": ".btn.ldap{background-color:#517693}\n\n/*# sourceMappingURL=discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11899999629147351,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 852.1550000081081,
          "receive": 2.4209999828599393,
          "_blocked_queueing": 0.11799999629147351
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 81
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 854.3329999956768,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "4a683424-85ca-4665-ad40-501f58596932"
            },
            {
              "name": "X-Runtime",
              "value": "0.029210"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 7074,
            "mimeType": "text/css",
            "text": ".discourse-local-date.cooked-date{color:#222;cursor:pointer;border-bottom:1px dashed #919191;white-space:nowrap}.discourse-local-date.cooked-date .d-icon{color:#222}.discourse-local-date.cooked-date.past{border-bottom-color:#bdbdbd}.discourse-local-date.cooked-date.past[data-countdown]{color:#919191}#d-popover .locale-dates-previews{max-width:360px}#d-popover .locale-dates-previews .preview{display:flex;flex-direction:column;padding:5px}#d-popover .locale-dates-previews .preview .timezone{font-weight:700}#d-popover .locale-dates-previews .preview.current{background:#d1f0ff}.discourse-local-dates-create-modal-footer{display:flex;align-items:center;justify-content:flex-start}.discourse-local-dates-create-modal-footer:before,.discourse-local-dates-create-modal-footer:after{content:none}.discourse-local-dates-create-modal-footer .cancel-action{margin:0 5px 5px 0}.discourse-local-dates-create-modal-footer .btn+.cancel-action{margin-left:1em}.discourse-local-dates-create-modal-footer .advanced-mode-btn{margin-left:auto}.discourse-local-dates-create-modal{box-sizing:border-box;min-height:320px;display:flex;flex-direction:row;padding:0.5em}.discourse-local-dates-create-modal .picker-panel{padding:5px;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .date-picker{display:flex;flex-direction:column;width:auto;box-sizing:border-box}.discourse-local-dates-create-modal .date-picker .pika-single{position:relative !important;flex:1;display:flex;border:0}.discourse-local-dates-create-modal .form{flex:1 0 0px}.discourse-local-dates-create-modal .form label{font-weight:700}.discourse-local-dates-create-modal .form .date-time-configuration{display:flex}.discourse-local-dates-create-modal .form .date-time-configuration .fake-input{display:none}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input{width:100%}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input.is-expanded .select-kit-header{border:1px solid #919191}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header{padding:0.5em 0.5em;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header .d-icon{margin-right:1em}.discourse-local-dates-create-modal .form .date-time-configuration .timezone-input .select-kit-header .caret-icon{margin-right:0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control{position:relative;display:flex;border:1px solid #e9e9e9}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-filled .date-time,.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-selected .date-time{color:#222;background:#fff}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-filled .d-icon,.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.is-selected .d-icon{color:#646464}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from{border-radius:5px 5px 0 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from .date-time{border-radius:5px 5px 0 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.from.is-selected{border-color:#08c}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to{border-radius:0 0 5px 5px;margin-bottom:1em}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to .date-time{border-radius:0 0 5px 5px;padding-right:3em}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control.to.is-selected{border-color:#08c}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .date-time{color:#919191;background:#f8f8f8}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .d-icon{position:absolute;margin-top:auto;margin-bottom:auto;left:0.5em;top:0;bottom:0;color:#919191}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .delete-to-date{position:absolute;margin-top:auto;margin-bottom:auto;right:0;width:30px;top:0;bottom:0;color:#646464;border-radius:0 0 5px 0}.discourse-local-dates-create-modal .form .date-time-configuration .date-time-control .date-time{padding:1em 0.5em 1em 2em;border:0;outline:none;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;text-align:left}.discourse-local-dates-create-modal .form .date-time-configuration .inputs-panel{flex:1}.discourse-local-dates-create-modal .form .date-time-configuration .picker-panel{z-index:1;background:#fff;width:200px;box-sizing:border-box;margin-left:1em}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers{display:flex;justify-content:center;flex:1;margin-top:1em;align-items:center;padding:0.25em;border-top:1px solid #bdbdbd;box-sizing:border-box}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers .d-icon{color:#919191}.discourse-local-dates-create-modal .form .date-time-configuration .time-pickers .time-picker{outline:none;box-shadow:none;margin:0;box-sizing:border-box;width:100%;border:0}.discourse-local-dates-create-modal .form .preview{text-align:center;margin-top:0;margin-bottom:0.5em;display:flex;align-items:center;padding:0.5em;flex-wrap:wrap}.discourse-local-dates-create-modal .form .preview b{margin-right:0.5em}.discourse-local-dates-create-modal .form .preview b+p{margin:0;display:inline-block}.discourse-local-dates-create-modal .form .recurrence .recurrence-input{width:300px}.discourse-local-dates-create-modal .validation-error{margin-bottom:0.5em}.discourse-local-dates-create-modal .format .format-input{width:280px}.discourse-local-dates-create-modal .formats{list-style:none;padding:0;margin:0}.discourse-local-dates-create-modal .formats .format .previewed-format{color:#919191}.discourse-local-dates-create-modal .control-group.recurrence,.discourse-local-dates-create-modal .control-group.format,.discourse-local-dates-create-modal .control-group.timezones{margin-top:1em}.discourse-local-dates-create-modal .timezones-input{width:99%}html:not(.mobile-view) .fixed-modal .discourse-local-dates-create-modal.modal-body{width:600px;max-height:400px !important}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body{max-height:400px !important}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .date-time-configuration{flex-direction:column}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .picker-panel{width:100%;margin:0 0 1em 0}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .picker-panel .pika-single{justify-content:center}html.mobile-view .fixed-modal .discourse-local-dates-create-modal.modal-body .time-picker{padding-top:6px}\n\n/*# sourceMappingURL=discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.10100000474974513,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 846.1550000141617,
          "receive": 8.076999976765364,
          "_blocked_queueing": 0.10000000474974513
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 82
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1059.1169999970589,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "f522e171-5654-4e71-8288-b287458f5d33"
            },
            {
              "name": "X-Runtime",
              "value": "0.019525"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:32 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1356,
            "mimeType": "text/css",
            "text": ".presence-users{background-color:#fff;color:#919191;display:flex}.presence-users span.presence-text{margin-left:5px;margin-right:2px;flex:0 0 auto;padding-top:3px}.presence-users .presence-avatars{display:flex;overflow:hidden;flex-wrap:wrap}.presence-users .wave{flex:0 0 auto}.presence-users .wave .dot{display:inline-block;animation:wave 1.8s linear infinite}.presence-users .wave .dot:nth-child(2){animation-delay:-1.6s}.presence-users .wave .dot:nth-child(3){animation-delay:-1.4s}@keyframes wave{0%,60%,100%{transform:initial}30%{transform:translateY(-0.2em)}}.composer-fields .presence-users{position:absolute;top:20px;right:95px}@media screen and (max-width: 800px){.composer-fields .presence-users{max-width:318px}.composer-fields .presence-users .presence-avatars{flex-wrap:nowrap}}.mobile-view .presence-users{font-size:.8706em}.mobile-view .composer-fields .presence-users{top:7px;right:65px;max-width:70px}.mobile-view .composer-fields .presence-users .presence-avatars{flex-wrap:nowrap}.mobile-view .composer-fields .presence-users .description{display:none}.rtl span.presence-text{margin-left:2px;margin-right:5px}.rtl .composer-fields .presence-users{right:unset;left:95px}.rtl.mobile-view .composer-fields .presence-users{right:unset;left:65px}\n\n/*# sourceMappingURL=discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.10000000474974513,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1058.714000013424,
          "receive": 0.3029999788850546,
          "_blocked_queueing": 0.10000000474974513
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 83
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1066.395999980159,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "b019fa00-cad8-4208-957a-d6ad52e23b3d"
            },
            {
              "name": "X-Runtime",
              "value": "0.014640"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 940,
            "mimeType": "text/css",
            "text": ".select-kit.solved-status-filter{min-width:auto}.post-controls span:not(.d-button-label){display:inline-flex;align-items:baseline}.fa.accepted{color:green}.post-controls .accepted .d-button-label,.post-controls .unaccepted .d-button-label{margin-left:7px}.post-controls .accepted .d-icon,.post-controls .accepted .d-button-label{color:green}.discourse-no-touch .post-controls .accepted .d-icon,.discourse-no-touch .post-controls .accepted .d-button-label{color:green}.post-controls span.accepted-text{padding:8px 10px;font-size:1.1487em}.post-controls span.accepted-text span{display:inline-block}.post-controls span.accepted-text .accepted-label{margin-left:7px}.mobile-view .solved-panel{margin-bottom:15px}.solved-panel{margin-top:20px;margin-bottom:0px;font-size:13px}.solved-panel .by{display:none}aside.quote .title.title-only{padding:12px}\n\n/*# sourceMappingURL=discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.1049999770000577,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1066.0979999887534,
          "receive": 0.19300001440569758,
          "_blocked_queueing": 0.1039999770000577
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 84
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1070.9199999982957,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "a1e89be5-ddec-4c1a-8b5d-a8f7c5afc76d"
            },
            {
              "name": "X-Runtime",
              "value": "0.021465"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2133,
            "mimeType": "text/css",
            "text": "/*!\n* lazyYT (lazy load YouTube videos)\n* v1.0.1 - 2014-12-30\n* (CC) This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.\n* http://creativecommons.org/licenses/by-sa/4.0/\n* Contributors: https://github.com/tylerpearson/lazyYT/graphs/contributors || https://github.com/daugilas/lazyYT/graphs/contributors\n*/.lazyYT-container{position:relative;z-index:1;display:block;height:0;padding:0 0 56.25% 0;overflow:hidden;background-color:#000000;margin-bottom:12px}.lazyYT-container iframe{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.lazyYT-container .html5-info-bar{position:absolute;top:0;z-index:935;width:100%;height:30px;overflow:hidden;font-family:Arial, Helvetica, sans-serif;font-size:12px;color:#fff;background-color:rgba(0,0,0,0.8);-webkit-transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1);-moz-transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1);transition:opacity 0.25s cubic-bezier(0, 0, 0.2, 1)}.lazyYT-container .html5-title{padding-right:6px;padding-left:12px}.lazyYT-container .html5-title-text-wrapper{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-wrap:normal;white-space:nowrap}.lazyYT-container .html5-title-text{width:100%;font-size:13px;line-height:30px;color:#ccc;text-decoration:none}.lazyYT-container .html5-title-text:hover{color:#fff;text-decoration:underline}.ytp-thumbnail{padding-bottom:inherit;cursor:pointer;background-position:50% 50%;background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.ytp-large-play-button{position:absolute;top:50% !important;left:50% !important;width:86px !important;height:60px !important;padding:0 !important;margin:-29px 0 0 -42px !important;font-size:normal !important;font-weight:normal !important;line-height:1 !important;opacity:.9}.ytp-large-play-button-svg{opacity:.9;fill:#1f1f1f}.lazyYT-image-loaded:hover .ytp-large-play-button-svg,.ytp-large-play-button:focus .ytp-large-play-button-svg{opacity:1;fill:#cc181e}\n\n/*# sourceMappingURL=lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11100002268701792,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1070.64800000114,
          "receive": 0.16099997446872294,
          "_blocked_queueing": 0.11000002268701792
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 85
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1240.695999993477,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "90107a5c-1109-4865-9859-2c08a8f5fc53"
            },
            {
              "name": "X-Runtime",
              "value": "0.010577"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3617,
            "mimeType": "text/css",
            "text": "div.poll{margin:1em 0;border:1px solid #e9e9e9;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.poll ul,div.poll ol{margin:0;padding:0;list-style:none;display:inline-block;width:100%}div.poll li{cursor:pointer;font-size:1.1487em}div.poll li[data-poll-option-id]{color:#222;padding:0.5em 0;word-break:break-word}div.poll img{max-width:100% !important;height:auto}div.poll .poll-info{color:#919191;vertical-align:middle;padding:1em 0}div.poll .poll-info .info-label{font-size:1.7511em;line-height:1.2}div.poll .poll-info .info-text{margin:0.25em 0;display:block}div.poll .poll-container{vertical-align:middle;padding:0.5em 1em}div.poll .poll-container .poll-results-number-rating{font-size:2em}div.poll .poll-buttons .info-text{margin:0.25em 0;color:#919191}div.poll .poll-buttons .info-text+.info-text,div.poll .poll-buttons button+.info-text{margin-left:0.5em}div.poll .poll-voters:not(:empty){margin-bottom:0.25em}div.poll .poll-voters:not(:empty) li{display:inline}div.poll .poll-voters-toggle-expand{width:100%;text-align:center}div.poll .results>li{cursor:default;padding:0.25em 0}div.poll .results>li:last-child{padding-bottom:0}div.poll .results .option p{margin:0}div.poll .results .percentage{float:right;color:#919191;margin-left:0.25em}div.poll .results .bar-back{background:#e9e9e9}div.poll .results .bar{height:0.75em;background:#919191}div.poll .results .chosen .bar{background:#08c}div.poll[data-poll-type=\"number\"] li[data-poll-option-id]{display:inline-block;width:3.25em;margin-right:0.25em}div.poll .pie-chart-legends{text-align:center;margin:10px 0}div.poll .pie-chart-legends .legend{display:inline-block;margin:4px 0 4px 14px}div.poll .pie-chart-legends .legend .swatch{display:inline-block;width:24px;height:12px;margin-right:4px}div.poll .poll-grouped-pies-controls{display:flex;justify-content:space-between}div.poll .poll-results-chart{height:310px;overflow-y:auto;overflow-x:hidden}div.poll .poll-group-by-toggle{margin-bottom:10px}div.poll .poll-group-by-selector{height:30px}div.poll .poll-grouped-pie-container{display:inline-block;position:relative;padding:15px 0}div.poll .poll-grouped-pie-container .poll-pie-label{display:block;text-align:center}div.poll.pie .poll-container{display:inline-block;height:310px;max-height:310px;overflow-y:auto}div.poll.pie .poll-container .poll-grouped-pie-container{width:50%}div.poll.pie .poll-info{display:inline-block;width:150px}body.crawler .poll .poll-info,body.crawler .poll .poll-button{display:none}.poll-ui-builder-form{display:flex;margin:0}.poll-ui-builder-form .options{flex-shrink:0;width:280px}.poll-ui-builder-form .combo-box{min-width:180px;width:180px}.poll-ui-builder-form .d-editor-preview{margin-left:20px;width:360px}.poll-ui-builder-form label{font-weight:bold;display:inline}.poll-ui-builder-form .tip{display:block;margin-bottom:15px;margin-top:5px;font-size:.8706em}.poll-ui-builder-form .poll-select{margin-bottom:10px;display:flex;align-items:center}.poll-ui-builder-form .input-group-label{min-width:85px}.poll-ui-builder-form .input-group{display:flex;justify-content:space-between}.poll-ui-builder-form .poll-number{margin:10px 0;display:flex;align-items:center}.poll-ui-builder-form .poll-number input{width:70px}.poll-ui-builder-form .poll-textarea{flex-direction:column}.poll-ui-builder-form .poll-textarea textarea{width:100%;height:90px;box-sizing:border-box}.poll-ui-builder-form .poll-select+.poll-textarea{margin-top:10px}.poll-ui-builder-form .poll-checkbox,.poll-ui-builder-form .poll-date{margin-top:5px}\n\n/*# sourceMappingURL=poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.12199999003112316,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1239.7359999962393,
          "receive": 0.8380000072065741,
          "_blocked_queueing": 0.12099999003112316
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 86
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1270.6449999823235,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css\"; filename*=UTF-8''poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "59796509-9a6d-4fcc-b243-fd9ffda2fee7"
            },
            {
              "name": "X-Runtime",
              "value": "0.010005"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1247,
            "mimeType": "text/css",
            "text": "div.poll{display:table;width:100%;box-sizing:border-box}div.poll .poll-info{min-width:150px;width:100%;display:table-cell;text-align:center}div.poll .poll-info .info-number{font-size:3.5em}div.poll .poll-info p{margin:0.5em 0}div.poll .poll-info .info-label{display:block}div.poll .poll-container{display:table-cell;width:100%;border-right:1px solid #e9e9e9}div.poll .poll-buttons{border-top:1px solid #e9e9e9;padding:1em}div.poll .poll-buttons .info-text{line-height:2em}div.poll .poll-buttons :not(:first-child):not(:last-child){margin-left:1em}div.poll .poll-buttons .toggle-status{float:right}div.poll.pie .poll-container{width:calc(100% - 190px)}div.poll.pie .poll-container .poll-grouped-pie-container{width:50%}div.poll.pie .poll-info{display:inline-block;width:150px}.d-editor-preview .poll-buttons a:not(:first-child){margin-left:0.25em}.d-editor-preview .poll li[data-poll-option-id]:before{position:relative;vertical-align:baseline;border:2px solid #222;border-radius:50%;display:inline-block;margin-right:0.5em;width:12px;height:12px;content:\"\"}.d-editor-preview .poll[data-poll-type=\"multiple\"] li[data-poll-option-id]:before{border-radius:3px}\n\n/*# sourceMappingURL=poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.10000000474974513,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1269.4680000131484,
          "receive": 1.0769999644253403,
          "_blocked_queueing": 0.10000000474974513
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 87
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:23:58.623Z",
        "time": 1270.8910000219475,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [
            {
              "name": "__ws",
              "value": "discourse.gnome.org"
            }
          ],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Discourse-Route",
              "value": "stylesheets/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Disposition",
              "value": "inline; filename=\"desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css\"; filename*=UTF-8''desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "2848f47f-3b93-422c-bb38-1fffe28f6cb8"
            },
            {
              "name": "X-Runtime",
              "value": "0.008801"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:53:33 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "text/css"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 752,
            "mimeType": "text/css",
            "text": "html{font-family:Source Sans Pro,Cantarell,Droid Sans,Ubuntu,DejaVu Sans,Arial,sans-serif}.d-header{height:3.3em;box-shadow:none;border:1px solid #3968a1}.d-header-icons .d-icon{color:#fff}.d-header-icons .icon:hover,.d-header-icons .icon:focus{background-color:#4a86cf}.d-header-icons .icon:hover .d-icon,.d-header-icons .icon:focus .d-icon{color:rgba(255,255,255,0.9)}.btn{border-radius:2px;color:#333;background-color:#eee}.extra-info-wrapper .badge-wrapper.bullet span.badge-category,.extra-info-wrapper .badge-wrapper.bar span.badge-category,.extra-info-wrapper .badge-wrapper.none span.badge-category{color:#fff}.btn-primary{background:#4a86cf;color:#fff}\n\n/*# sourceMappingURL=desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css.map */\n"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.13300001558288932,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1270.1620000083242,
          "receive": 0.5959999980404973,
          "_blocked_queueing": 0.13200001558288932
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 89
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:02.425Z",
        "time": 229.6290000085719,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000387"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:31 GMT"
            },
            {
              "name": "Content-Length",
              "value": "898"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1696,
            "mimeType": "application/javascript",
            "text": "!function(){var s,r=require(\"preload-store\").default,e=document.getElementById(\"data-preloaded\"),o=document.getElementById(\"data-discourse-setup\").dataset;e&&(s=JSON.parse(e.dataset.preloaded),Object.keys(s).forEach(function(e){r.store(e,JSON.parse(s[e])),\"true\"===o.debugPreloadedAppData&&console.log(e,r.get(e))})),window.Logster=window.Logster||{},window.Logster.enabled=\"true\"===o.enableJsErrorReporting,Discourse.CDN=o.cdn,Discourse.BaseUrl=o.baseUrl,Discourse.BaseUri=o.baseUri,Discourse.Environment=o.environment,Discourse.SiteSettings=r.get(\"siteSettings\"),Discourse.ThemeSettings=r.get(\"themeSettings\"),Discourse.LetterAvatarVersion=o.letterAvatarVersion,Discourse.MarkdownItURL=o.markdownItUrl,Discourse.ServiceWorkerURL=o.serviceWorkerUrl,I18n.defaultLocale=o.defaultLocale,Discourse.start(),Discourse.set(\"assetVersion\",o.assetVersion);var t=require(\"discourse/models/session\").default;t.currentProp(\"disableCustomCSS\",\"true\"===o.disableCustomCss),o.safeMode&&t.currentProp(\"safe_mode\",o.safeMode),Discourse.HighlightJSPath=o.highlightJsPath,Discourse.SvgSpritePath=o.svgSpritePath,\"development\"===Discourse.Environment&&(Discourse.SvgIconList=o.svgIconList),o.s3BaseUrl&&(Discourse.S3CDN=o.s3Cdn,Discourse.S3BaseUrl=o.s3BaseUrl),Ember.RSVP.configure(\"onerror\",function(e){e&&\"TransitionAborted\"===e.message||(\"development\"===Discourse.Environment&&(e?e.message||e.stack?(console.log(e.message),console.log(e.stack)):console.log(\"Uncaught promise: \",e):console.log(\"A promise failed but was not caught.\")),window.onerror(e&&e.message,null,null,null,e))})}();\n//# sourceMappingURL=/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.221000008655712,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 228.698999985449,
          "receive": 0.7090000144671649,
          "_blocked_queueing": 0.219000008655712
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 291
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:02.426Z",
        "time": 228.88599999714643,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000427"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:00 GMT"
            },
            {
              "name": "Content-Length",
              "value": "774"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1096,
            "mimeType": "application/javascript",
            "text": "$bu=function(){var e=null;if(navigator&&navigator.userAgent&&(e=navigator.userAgent),!window.WeakMap&&!(0<=e.indexOf(\"Googlebot\")||0<=e.indexOf(\"Mediapartners\")||0<=e.indexOf(\"AdsBot\"))){var t=document.createElement(\"div\");t.className=\"buorg\",t.innerHTML='<div>Unfortunately, <a href=\"https://www.discourse.org/faq/#browser\">your browser is too old to work on this site</a>. Please <a href=\"https://browsehappy.com\">upgrade your browser</a>.</div>';var o=document.createElement(\"style\"),r=\".buorg {position:absolute; z-index:111111; width:100%; top:0px; left:0px; background:#FDF2AB; text-align:left; font-family: sans-serif; color:#000; font-size: 14px;} .buorg div {padding: 8px;} .buorg a, .buorg a:visited {color:#E25600; text-decoration: underline;}\";document.body.appendChild(t),document.getElementsByTagName(\"head\")[0].appendChild(o);try{o.innerText=r,o.innerHTML=r}catch(e){try{o.styleSheet.cssText=r}catch(e){return}}document.body.style.marginTop=t.clientHeight+\"px\"}}();\n//# sourceMappingURL=/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js.map"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.14999999951012433,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 227.63799998972192,
          "receive": 1.0980000079143792,
          "_blocked_queueing": 0.14899999951012433
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 297
        },
        "_priority": "High",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:02.430Z",
        "time": 222.38799999468029,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 734,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:31 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000387"
            },
            {
              "name": "Content-Length",
              "value": "898"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1696,
            "mimeType": "application/javascript",
            "compression": 798,
            "text": "!function(){var s,r=require(\"preload-store\").default,e=document.getElementById(\"data-preloaded\"),o=document.getElementById(\"data-discourse-setup\").dataset;e&&(s=JSON.parse(e.dataset.preloaded),Object.keys(s).forEach(function(e){r.store(e,JSON.parse(s[e])),\"true\"===o.debugPreloadedAppData&&console.log(e,r.get(e))})),window.Logster=window.Logster||{},window.Logster.enabled=\"true\"===o.enableJsErrorReporting,Discourse.CDN=o.cdn,Discourse.BaseUrl=o.baseUrl,Discourse.BaseUri=o.baseUri,Discourse.Environment=o.environment,Discourse.SiteSettings=r.get(\"siteSettings\"),Discourse.ThemeSettings=r.get(\"themeSettings\"),Discourse.LetterAvatarVersion=o.letterAvatarVersion,Discourse.MarkdownItURL=o.markdownItUrl,Discourse.ServiceWorkerURL=o.serviceWorkerUrl,I18n.defaultLocale=o.defaultLocale,Discourse.start(),Discourse.set(\"assetVersion\",o.assetVersion);var t=require(\"discourse/models/session\").default;t.currentProp(\"disableCustomCSS\",\"true\"===o.disableCustomCss),o.safeMode&&t.currentProp(\"safe_mode\",o.safeMode),Discourse.HighlightJSPath=o.highlightJsPath,Discourse.SvgSpritePath=o.svgSpritePath,\"development\"===Discourse.Environment&&(Discourse.SvgIconList=o.svgIconList),o.s3BaseUrl&&(Discourse.S3CDN=o.s3Cdn,Discourse.S3BaseUrl=o.s3BaseUrl),Ember.RSVP.configure(\"onerror\",function(e){e&&\"TransitionAborted\"===e.message||(\"development\"===Discourse.Environment&&(e?e.message||e.stack?(console.log(e.message),console.log(e.stack)):console.log(\"Uncaught promise: \",e):console.log(\"A promise failed but was not caught.\")),window.onerror(e&&e.message,null,null,null,e))})}();\n//# sourceMappingURL=/assets/preload-application-data-28a755a0e44e81128baa75e1fa4235a11b440d1a164d94e00cbb24ac7d0df83e.js.map"
          },
          "redirectURL": "",
          "headersSize": 192,
          "bodySize": 898,
          "_transferSize": 1090
        },
        "cache": {},
        "timings": {
          "blocked": 2.8420000039339066,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05999999999999983,
          "wait": 218.3570000087172,
          "receive": 1.1289999820291996,
          "_blocked_queueing": 1.7740000039339066
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "738342"
      },
      {
        "startedDateTime": "2020-06-09T03:24:02.431Z",
        "time": 221.1750000133179,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 724,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:50:00 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "X-Runtime",
              "value": "0.000427"
            },
            {
              "name": "Content-Length",
              "value": "774"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1096,
            "mimeType": "application/javascript",
            "compression": 322,
            "text": "$bu=function(){var e=null;if(navigator&&navigator.userAgent&&(e=navigator.userAgent),!window.WeakMap&&!(0<=e.indexOf(\"Googlebot\")||0<=e.indexOf(\"Mediapartners\")||0<=e.indexOf(\"AdsBot\"))){var t=document.createElement(\"div\");t.className=\"buorg\",t.innerHTML='<div>Unfortunately, <a href=\"https://www.discourse.org/faq/#browser\">your browser is too old to work on this site</a>. Please <a href=\"https://browsehappy.com\">upgrade your browser</a>.</div>';var o=document.createElement(\"style\"),r=\".buorg {position:absolute; z-index:111111; width:100%; top:0px; left:0px; background:#FDF2AB; text-align:left; font-family: sans-serif; color:#000; font-size: 14px;} .buorg div {padding: 8px;} .buorg a, .buorg a:visited {color:#E25600; text-decoration: underline;}\";document.body.appendChild(t),document.getElementsByTagName(\"head\")[0].appendChild(o);try{o.innerText=r,o.innerHTML=r}catch(e){try{o.styleSheet.cssText=r}catch(e){return}}document.body.style.marginTop=t.clientHeight+\"px\"}}();\n//# sourceMappingURL=/assets/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6efcf8bf26301166dec8.js.map"
          },
          "redirectURL": "",
          "headersSize": 192,
          "bodySize": 774,
          "_transferSize": 966
        },
        "cache": {},
        "timings": {
          "blocked": 2.090000004205853,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.039000000000000035,
          "wait": 217.41700000333412,
          "receive": 1.6290000057779253,
          "_blocked_queueing": 1.2160000042058527
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "High",
        "_resourceType": "fetch",
        "connection": "739952"
      },
      {
        "startedDateTime": "2020-06-09T03:24:20.508Z",
        "time": 540.616999991471,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/static.gnome.org/css/fonts.css",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "text/css,*/*;q=0.1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 680,
          "bodySize": 0
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            },
            {
              "name": "X-Request-Id",
              "value": "5712352c-0c94-4bab-bd15-db59915856de"
            },
            {
              "name": "X-Runtime",
              "value": "0.016380"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            }
          ],
          "cookies": [],
          "content": {
            "size": 16897,
            "mimeType": "text/html",
            "compression": -13,
            "text": "<!DOCTYPE html>\n<html lang=\"en-US\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>GNOME Discourse</title>\n  <meta name=\"description\" content=\"\">\n  <meta name=\"generator\" content=\"Discourse 2.4.5 - https://github.com/discourse/discourse version 53c7d0200a67ba1a87aeb0f23370c2081249bf21\">\n<link rel=\"icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/8d459f18d4cbb4baadd9e4685a6b55853b5755db.png\">\n<link rel=\"apple-touch-icon\" type=\"image/png\" href=\"https://discourse.gnome.org/uploads/default/original/1X/859193316132fa2c9c9f7513f217e2056d88a978.png\">\n<meta name=\"theme-color\" content=\"#4a86cf\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover\">\n\n<script type=\"application/ld+json\">{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https://discourse.gnome.org\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://discourse.gnome.org/search?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"}}</script>\n<link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://discourse.gnome.org/opensearch.xml\" title=\"GNOME Discourse Search\">\n\n    <link href=\"/stylesheets/desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop\" data-theme-id=\"5\"/>\n\n\n  <link href=\"/stylesheets/discourse-details_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-details\" data-theme-id=\"5\"/>\n  \n  <link href=\"/stylesheets/discourse-ldap-auth_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-ldap-auth\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-local-dates_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-local-dates\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-presence_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-presence\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/discourse-solved_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"discourse-solved\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/lazy-yt_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"lazy-yt\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll\" data-theme-id=\"5\"/>\n  <link href=\"/stylesheets/poll_desktop_4_7d3883f95dff4560a6d63d166937cf93b0f7dbd7.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"poll_desktop\" data-theme-id=\"5\"/>\n\n  <link href=\"/stylesheets/desktop_theme_5_ae465f16fa7caf58f1c930c7246571af0cf7e71e.css?__ws=discourse.gnome.org\" media=\"all\" rel=\"stylesheet\" data-target=\"desktop_theme\" data-theme-id=\"5\"/>\n\n  \n\n  <link href=\"static.gnome.org/css/fonts.css\" rel=\"stylesheet\">\n  \n  \n</head>\n<body >\n  \n  \n  <section id='main'>\n    \n  <header class=\"d-header\">\n    <div class=\"wrap\">\n      <div class=\"contents clearfix\">\n        <div class=\"title\">\n          <a href=\"/\">\n              <img src=\"https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png\" alt=\"GNOME Discourse\" id=\"site-logo\">\n          </a>\n        </div>\n        <div class=\"panel clearfix\">\n            <span class='header-buttons'>\n                <a href=\"/signup\" class='btn btn-primary btn-small sign-up-button'>Sign Up</a>\n              <a href=\"/login\" class='btn btn-primary btn-small login-button btn-icon-text'><svg class=\"fa d-icon svg-icon svg-node\" aria-hidden=\"true\"><svg id=\"user\" viewBox=\"0 0 448 512\">\n    <path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/>\n  </svg></svg>\nLog In</a>\n            </span>\n        </div>\n      </div>\n    </div>\n  </header>\n\n    <div id=\"main-outlet\" class=\"wrap not-found-container\">\n      <div class=\"page-not-found\">\n  <h1 class=\"title\">Oops! That page doesn’t exist or is private.</h1>\n\n</div>\n\n\n\n<div class=\"row page-not-found-topics\">\n  <div class=\"popular-topics\">\n    <h2 class=\"popular-topics-title\">Popular</h2>\n      <div class='not-found-topic'>\n        <a href=\"/t/official-proposal-how-we-define-gnome-software/3371\">Official proposal: how we define GNOME software</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/any-good-example-of-python-code-for-gstreamer-wayland/3323\">Any good example of Python code for GStreamer + Wayland?</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/gtk4-api-get-first-child/3484\">Gtk4 Api, get_first_child</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/id-like-to-help-with-gnome-shell-extension-smoke-tests/3366\">I&rsquo;d like to help with gnome shell extension smoke tests</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/hexadecimal-spin-button/3363\">Hexadecimal spin button</a><a class='badge-wrapper  bullet' href='/c/platform/core'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='The core components of the GNOME SDK'>Core</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/activities-overview-missing-after-update/3358\">Activities Overview Missing After Update?</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/how-to-return-value-in-gio-task/3455\">How to return value in Gio.Task?</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/patent-case-against-gnome-resolved/3386\">Patent case against GNOME resolved</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/gnome-annual-report-2019/3493\">GNOME Annual Report 2019</a><a class='badge-wrapper  bullet' href='/c/community'><span class='badge-category-bg' style='background-color: #652D90;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Anything that isn’t used to discuss code or development goes here!'>Community</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/introduction-to-gtk-development-to-beginners/3392\">Introduction to GTK+ development to beginners</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n    <a href=\"/top\" class=\"btn btn-default\">More&hellip;</a>\n  </div>\n  <div class=\"recent-topics\">\n    <h2 class=\"recent-topics-title\">Recent</h2>\n      <div class='not-found-topic'>\n        <a href=\"/t/activate-callback-with-gtk-application-add-window/3522\">Activate callback with gtk_application_add_window()</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/extension-prefs-dialog-is-oversized/3521\">Extension prefs dialog is oversized</a><a class='badge-wrapper  bullet' href='/c/platform/core'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='The core components of the GNOME SDK'>Core</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/difference-between-idle-add-and-timeout-add-0-with-scroll-to-cell/3519\">Difference between idle_add(...) and timeout_add(0, ...) with scroll_to_cell</a><a class='badge-wrapper  bullet' href='/c/platform/language-bindings'><span class='badge-category-parent-bg' style='background-color: #F7941D;'></span><span class='badge-category-bg' style='background-color: #BF1E2E;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the development of language bindings for the GNOME platform, as well as the development of GNOME components and applications in various programming languages.'>Language bindings</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/do-yelp-support-viewing-html-files/3515\">Do Yelp support viewing HTML files?</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/handle-event-from-ui-file/3511\">Handle event from .ui file</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/number-of-arguments-in-the-gcallback-function-and-how-to-find-out-the-name-of-an-argument-type/3509\">Number of arguments in the gcallback function, and how to find out the name of an argument type</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/emoji-not-displayed-on-mac-os/3508\">Emoji not displayed on Mac Os</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/two-different-views-on-the-same-screen/3507\">Two different views on the same screen</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/cant-load-ui-file-in-vala/3504\">Cant load .ui file in vala</a><a class='badge-wrapper  bullet' href='/c/platform'><span class='badge-category-bg' style='background-color: #F7941D;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='A place to discuss the platform and toolkits around GNOME application and software development. This includes gtk, glib, pango etc.'>Platform</span></a>\n      </div>\n      <div class='not-found-topic'>\n        <a href=\"/t/is-there-a-way-to-have-two-dates-show-up-in-the-menu-bar-1-english-date-and-1-nepali-date/3502\">Is there a way to have two Dates show up in the menu bar? 1 English date and 1 Nepali date</a><a class='badge-wrapper  bullet' href='/c/desktop'><span class='badge-category-bg' style='background-color: #0088CC;'></span><span style='' data-drop-close='true' class='badge-category clear-badge'\n                 title='Discussions about the GNOME desktop as a whole belong in this category. It could be questions, or discussion about the development of the GNOME Desktop Environment. Tags exist to help categorise these discussions.'>Desktop</span></a>\n      </div>\n    <a href=\"/latest\" class=\"btn btn-default\">More&hellip;</a>\n  </div>\n</div>\n\n\n  <div class=\"row\">\n    <div class=\"page-not-found-search\">\n      <h2>Search this site</h2>\n      <p>\n        <form action='/search' id='discourse-search'>\n          <input type=\"text\" name=\"q\" value=\"\">\n          <button class=\"btn btn-primary\">Search</button>\n        </form>\n      </p>\n    </div>\n  </div>\n\n  <link rel=\"preload\" href=\"/assets/onpopstate-handler-09bc9d995084d732c7f6dfaadcd21404e817fc736165b7b893bc2dd040749aae.js\" as=\"script\">\n<script src=\"/assets/onpopstate-handler-09bc9d995084d732c7f6dfaadcd21404e817fc736165b7b893bc2dd040749aae.js\"></script>\n\n\n    </div>\n  </section>\n  \n  \n  \n  \n</body>\n</html>\n"
          },
          "redirectURL": "",
          "headersSize": 167,
          "bodySize": 16910,
          "_transferSize": 17077
        },
        "cache": {},
        "timings": {
          "blocked": 1.802999999143183,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05500000000000005,
          "wait": 535.0160000130329,
          "receive": 3.7429999792948365,
          "_blocked_queueing": 1.3299999991431832
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "VeryHigh",
        "_resourceType": "fetch",
        "connection": "739969"
      },
      {
        "startedDateTime": "2020-06-09T03:24:20.507Z",
        "time": 542.0379999850411,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/static.gnome.org/css/fonts.css",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.016380"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "X-Request-Id",
              "value": "5712352c-0c94-4bab-bd15-db59915856de"
            },
            {
              "name": "Content-Type",
              "value": "text/html; charset=utf-8"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/html"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0,
          "_error": "net::ERR_ABORTED"
        },
        "cache": {},
        "timings": {
          "blocked": 0.16699998343735933,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 541.509000010021,
          "receive": 0.36199999158270657,
          "_blocked_queueing": 0.16599998343735933
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "parser",
          "url": "https://discourse.gnome.org/",
          "lineNumber": 69
        },
        "_priority": "VeryHigh",
        "_resourceType": "stylesheet",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:21.126Z",
        "time": 5417.5019999966025,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/svg-sprite/discourse.gnome.org/svg-5-45ccff676fa06e2dd919b3caa08f8673ef7bc45f.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 715,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "svg_sprite/show"
            },
            {
              "name": "Last-Modified",
              "value": "Wed, 09 Jun 2010 03:24:21 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript; charset=utf-8"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Request-Id",
              "value": "f237f020-0200-40b1-aa81-0cbb3730edd4"
            },
            {
              "name": "X-Runtime",
              "value": "0.076288"
            },
            {
              "name": "Content-Length",
              "value": "108012"
            }
          ],
          "cookies": [],
          "content": {
            "size": 108012,
            "mimeType": "application/javascript",
            "compression": 0,
            "text": "window.__svg_sprite = \"<!--\\nDiscourse SVG subset of Font Awesome Free by @fontawesome - https://fontawesome.com\\nLicense - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\\n-->\\n<svg xmlns='http://www.w3.org/2000/svg' style='display: none;'>\\n<symbol id=\\\"discourse-compress\\\" viewBox=\\\"0 0 1792 1792\\\">\\n  <path d=\\\"M896 960v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45zm755-672q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23z\\\"/>\\n</symbol><symbol id=\\\"discourse-expand\\\" viewBox=\\\"0 0 1792 1792\\\">\\n  <path d=\\\"M883 1056q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23zm781-864v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45z\\\"/>\\n</symbol><symbol id=\\\"discourse-bookmark-clock\\\" viewBox=\\\"0 0 536 512\\\">\\n  <path d=\\\"M215.86 143.33A168.09 168.09 0 01296 0H48A48 48 0 000 48v464l192-112 192 112V315.53c-94-.04-168.14-79.33-168.14-172.2z M392.45 0a144 144 0 10144 144 143.91 143.91 0 00-144-144zm64 150.3a9.77 9.77 0 01-9.7 9.7h-60.6a9.77 9.77 0 01-9.7-9.7V73.7a9.77 9.77 0 019.7-9.7h12.6a9.77 9.77 0 019.7 9.7V128h38.3a9.77 9.77 0 019.7 9.7z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-exclamation\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M439.4 362.3c-19.3-20.8-55.5-52-55.5-154.3 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8C118.6 68.1 64.1 130.3 64.1 208c0 102.3-36.2 133.5-55.5 154.3-6 6.4-8.6 14.1-8.6 21.7.1 16.4 13 32 32.1 32h383.8c19.1 0 32-15.6 32.1-32 .1-7.6-2.6-15.3-8.6-21.7zM201.7 116.6h44.6c6.5 0 11.7 5.5 11.4 12l-6.5 123.8c-.3 6.1-5.3 10.9-11.4 10.9h-31.6c-6.1 0-11.1-4.8-11.4-10.9l-6.5-123.8c-.3-6.6 4.9-12 11.4-12zM224 361.3c-18.6 0-33.7-15.1-33.7-33.7s15.1-33.7 33.7-33.7 33.7 15.1 33.7 33.7-15.1 33.7-33.7 33.7zM224 512c35.3 0 64-28.7 64-64H160c0 35.3 28.7 64 64 64z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-one\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 512c35.3 0 64-28.7 64-64H160c0 35.3 28.7 64 64 64zM439.4 362.3c-19.3-20.8-55.5-52-55.5-154.3 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8C118.6 68.1 64.1 130.3 64.1 208c0 102.3-36.2 133.5-55.5 154.3-6 6.4-8.6 14.1-8.6 21.7.1 16.4 13 32 32.1 32h383.8c19.1 0 32-15.6 32.1-32 .1-7.6-2.6-15.3-8.6-21.7zm-145.2-28c0 8.6-7 15.5-15.5 15.5h-97c-8.6 0-15.5-7-15.5-15.5v-15.8c0-8.6 7-15.5 15.5-15.5h27.1V192.5l-5.1 3.1c-6 6.1-15.9 6.2-22 .1l-11.2-11.1c-6.1-6-6.2-15.9-.1-22l31.6-31.9c3.2-3.2 7.4-4.7 11.5-4.6h26.6c8.6 0 11.5 7 11.5 15.5v161.3h27.1c8.6 0 15.5 7 15.5 15.5v15.9z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-slash\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M442.7 396.2L36.5 70.7c-6.9-5.5-17-4.4-22.5 2.5L4 85.6c-5.5 6.9-4.4 17 2.5 22.5l406.2 325.5c6.9 5.5 17 4.4 22.5-2.5l10-12.5c5.5-6.9 3.7-17.7-3.2-23.2l.7.8zM67.5 368c16.7-22 34.5-55.8 41.4-110.6l-45.5-35.6C60.2 312.6 27 342.5 8.6 362.3 2.6 368.7 0 376.4 0 384c.1 16.4 13 32 32.1 32h279.7l-61.4-48H67.5zM224 96c61.9 0 112 50.1 112 112 0 .2-.1.4-.1.6 0 16.8 1.2 31.8 2.8 45.7l59.5 46.5c-8.3-22.1-14.3-51.5-14.3-92.9 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8c-26 5.4-49.4 16.9-69.1 32.7l38.2 29.8C179 103.2 200.6 96 224 96zm0 416c35.3 0 64-28.6 64-64H160c0 35.4 28.7 64 64 64z\\\"/>\\n</symbol><symbol id=\\\"fab-android\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\\\"/>\\n</symbol><symbol id=\\\"fab-apple\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\\\"/>\\n</symbol><symbol id=\\\"fab-chrome\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\\\"/>\\n</symbol><symbol id=\\\"fab-discord\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\\\"/>\\n</symbol><symbol id=\\\"fab-discourse\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\\\"/>\\n</symbol><symbol id=\\\"fab-facebook\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\\\"/>\\n</symbol><symbol id=\\\"fab-facebook-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\\\"/>\\n</symbol><symbol id=\\\"fab-github\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\\\"/>\\n</symbol><symbol id=\\\"fab-google-plus-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\\\"/>\\n</symbol><symbol id=\\\"fab-instagram\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\\\"/>\\n</symbol><symbol id=\\\"fab-linux\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\\\"/>\\n</symbol><symbol id=\\\"fab-twitter\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\\\"/>\\n</symbol><symbol id=\\\"fab-twitter-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\\\"/>\\n</symbol><symbol id=\\\"fab-windows\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\\\"/>\\n</symbol><symbol id=\\\"far-bell\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"far-bell-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"far-calendar-plus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/>\\n</symbol><symbol id=\\\"far-chart-bar\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\\\"/>\\n</symbol><symbol id=\\\"far-check-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\\\"/>\\n</symbol><symbol id=\\\"far-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\\\"/>\\n</symbol><symbol id=\\\"far-clipboard\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\\\"/>\\n</symbol><symbol id=\\\"far-clock\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\\\"/>\\n</symbol><symbol id=\\\"far-comment\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\\\"/>\\n</symbol><symbol id=\\\"far-copyright\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\\\"/>\\n</symbol><symbol id=\\\"far-dot-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\\"/>\\n</symbol><symbol id=\\\"far-edit\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\\\"/>\\n</symbol><symbol id=\\\"far-envelope\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\\\"/>\\n</symbol><symbol id=\\\"far-eye\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\\\"/>\\n</symbol><symbol id=\\\"far-eye-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\\\"/>\\n</symbol><symbol id=\\\"far-file-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\\\"/>\\n</symbol><symbol id=\\\"far-frown\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\\\"/>\\n</symbol><symbol id=\\\"far-heart\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\\\"/>\\n</symbol><symbol id=\\\"far-image\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\\\"/>\\n</symbol><symbol id=\\\"far-list-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\\\"/>\\n</symbol><symbol id=\\\"far-moon\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\\\"/>\\n</symbol><symbol id=\\\"far-smile\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\\\"/>\\n</symbol><symbol id=\\\"far-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\\\"/>\\n</symbol><symbol id=\\\"far-sun\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\\\"/>\\n</symbol><symbol id=\\\"far-thumbs-down\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\\\"/>\\n</symbol><symbol id=\\\"far-thumbs-up\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\\\"/>\\n</symbol><symbol id=\\\"far-trash-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\\\"/>\\n</symbol><symbol id=\\\"address-book\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\\\"/>\\n</symbol><symbol id=\\\"adjust\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\\\"/>\\n</symbol><symbol id=\\\"ambulance\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\\\"/>\\n</symbol><symbol id=\\\"anchor\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\\\"/>\\n</symbol><symbol id=\\\"angle-double-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\\\"/>\\n</symbol><symbol id=\\\"angle-double-left\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\\\"/>\\n</symbol><symbol id=\\\"angle-double-right\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\\\"/>\\n</symbol><symbol id=\\\"angle-double-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\\\"/>\\n</symbol><symbol id=\\\"angle-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\\\"/>\\n</symbol><symbol id=\\\"angle-right\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\\\"/>\\n</symbol><symbol id=\\\"angle-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\\\"/>\\n</symbol><symbol id=\\\"archive\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"arrow-down\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\\\"/>\\n</symbol><symbol id=\\\"arrow-left\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\\\"/>\\n</symbol><symbol id=\\\"arrow-up\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\\\"/>\\n</symbol><symbol id=\\\"arrows-alt-h\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\\\"/>\\n</symbol><symbol id=\\\"arrows-alt-v\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\\\"/>\\n</symbol><symbol id=\\\"asterisk\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\\\"/>\\n</symbol><symbol id=\\\"at\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\\\"/>\\n</symbol><symbol id=\\\"backward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\\\"/>\\n</symbol><symbol id=\\\"ban\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\\\"/>\\n</symbol><symbol id=\\\"bars\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\\\"/>\\n</symbol><symbol id=\\\"bed\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\\\"/>\\n</symbol><symbol id=\\\"bell\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\\\"/>\\n</symbol><symbol id=\\\"bell-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"bold\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\\\"/>\\n</symbol><symbol id=\\\"book\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\\\"/>\\n</symbol><symbol id=\\\"book-reader\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\\\"/>\\n</symbol><symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\\\"/>\\n</symbol><symbol id=\\\"briefcase\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\\\"/>\\n</symbol><symbol id=\\\"calendar-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"caret-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\\n</symbol><symbol id=\\\"caret-left\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\\\"/>\\n</symbol><symbol id=\\\"caret-right\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\\n</symbol><symbol id=\\\"caret-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\\\"/>\\n</symbol><symbol id=\\\"certificate\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\\\"/>\\n</symbol><symbol id=\\\"chart-bar\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"chart-pie\\\" viewBox=\\\"0 0 544 512\\\">\\n  <path d=\\\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\\\"/>\\n</symbol><symbol id=\\\"check\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\\\"/>\\n</symbol><symbol id=\\\"check-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\\\"/>\\n</symbol><symbol id=\\\"check-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\\\"/>\\n</symbol><symbol id=\\\"chevron-down\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\\\"/>\\n</symbol><symbol id=\\\"chevron-left\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\\\"/>\\n</symbol><symbol id=\\\"chevron-right\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\\\"/>\\n</symbol><symbol id=\\\"chevron-up\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\\\"/>\\n</symbol><symbol id=\\\"circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\\\"/>\\n</symbol><symbol id=\\\"code\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\\\"/>\\n</symbol><symbol id=\\\"cog\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/>\\n</symbol><symbol id=\\\"columns\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\\\"/>\\n</symbol><symbol id=\\\"comment\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\\\"/>\\n</symbol><symbol id=\\\"compress\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\\\"/>\\n</symbol><symbol id=\\\"copy\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\\\"/>\\n</symbol><symbol id=\\\"crosshairs\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\\\"/>\\n</symbol><symbol id=\\\"cube\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\\\"/>\\n</symbol><symbol id=\\\"desktop\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\\\"/>\\n</symbol><symbol id=\\\"download\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/>\\n</symbol><symbol id=\\\"ellipsis-h\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\\\"/>\\n</symbol><symbol id=\\\"ellipsis-v\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\\\"/>\\n</symbol><symbol id=\\\"envelope\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\\\"/>\\n</symbol><symbol id=\\\"envelope-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\\\"/>\\n</symbol><symbol id=\\\"exchange-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\\\"/>\\n</symbol><symbol id=\\\"exclamation-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/>\\n</symbol><symbol id=\\\"exclamation-triangle\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/>\\n</symbol><symbol id=\\\"external-link-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\\\"/>\\n</symbol><symbol id=\\\"fast-backward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\\\"/>\\n</symbol><symbol id=\\\"fast-forward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\\\"/>\\n</symbol><symbol id=\\\"file\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/>\\n</symbol><symbol id=\\\"file-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/>\\n</symbol><symbol id=\\\"filter\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\\\"/>\\n</symbol><symbol id=\\\"flag\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\\\"/>\\n</symbol><symbol id=\\\"folder\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"folder-open\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\\\"/>\\n</symbol><symbol id=\\\"forward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\\\"/>\\n</symbol><symbol id=\\\"gavel\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\\\"/>\\n</symbol><symbol id=\\\"globe\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\\\"/>\\n</symbol><symbol id=\\\"globe-americas\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\\\"/>\\n</symbol><symbol id=\\\"hand-point-right\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\\\"/>\\n</symbol><symbol id=\\\"hands-helping\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\\\"/>\\n</symbol><symbol id=\\\"heading\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\\\"/>\\n</symbol><symbol id=\\\"heart\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\\\"/>\\n</symbol><symbol id=\\\"home\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\\\"/>\\n</symbol><symbol id=\\\"id-card\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\\\"/>\\n</symbol><symbol id=\\\"info-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\\\"/>\\n</symbol><symbol id=\\\"italic\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\\\"/>\\n</symbol><symbol id=\\\"key\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\\\"/>\\n</symbol><symbol id=\\\"link\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\\\"/>\\n</symbol><symbol id=\\\"list\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"list-ol\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\\\"/>\\n</symbol><symbol id=\\\"list-ul\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"lock\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\\\"/>\\n</symbol><symbol id=\\\"magic\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\\\"/>\\n</symbol><symbol id=\\\"map-marker-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\\\"/>\\n</symbol><symbol id=\\\"microphone-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"minus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"minus-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\\\"/>\\n</symbol><symbol id=\\\"mobile-alt\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\\\"/>\\n</symbol><symbol id=\\\"paint-brush\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\\\"/>\\n</symbol><symbol id=\\\"paper-plane\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\\\"/>\\n</symbol><symbol id=\\\"pencil-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\\\"/>\\n</symbol><symbol id=\\\"play\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\\\"/>\\n</symbol><symbol id=\\\"plug\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\\\"/>\\n</symbol><symbol id=\\\"plus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"plus-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/>\\n</symbol><symbol id=\\\"plus-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/>\\n</symbol><symbol id=\\\"power-off\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\\\"/>\\n</symbol><symbol id=\\\"puzzle-piece\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\\\"/>\\n</symbol><symbol id=\\\"question\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\\\"/>\\n</symbol><symbol id=\\\"question-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\\\"/>\\n</symbol><symbol id=\\\"quote-left\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"quote-right\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"random\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\\\"/>\\n</symbol><symbol id=\\\"redo\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\\\"/>\\n</symbol><symbol id=\\\"reply\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\\\"/>\\n</symbol><symbol id=\\\"rocket\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\\\"/>\\n</symbol><symbol id=\\\"search\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\\\"/>\\n</symbol><symbol id=\\\"share\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\\\"/>\\n</symbol><symbol id=\\\"shield-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\\\"/>\\n</symbol><symbol id=\\\"shower\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\\\"/>\\n</symbol><symbol id=\\\"sign-in-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\\\"/>\\n</symbol><symbol id=\\\"sign-out-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\\\"/>\\n</symbol><symbol id=\\\"signal\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"step-backward\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\\\"/>\\n</symbol><symbol id=\\\"step-forward\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\\\"/>\\n</symbol><symbol id=\\\"stream\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"sync\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\\\"/>\\n</symbol><symbol id=\\\"table\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\\\"/>\\n</symbol><symbol id=\\\"tag\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"tasks\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"thermometer-three-quarters\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/>\\n</symbol><symbol id=\\\"thumbs-down\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\\\"/>\\n</symbol><symbol id=\\\"thumbs-up\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\\\"/>\\n</symbol><symbol id=\\\"thumbtack\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\\\"/>\\n</symbol><symbol id=\\\"times\\\" viewBox=\\\"0 0 352 512\\\">\\n  <path d=\\\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\\\"/>\\n</symbol><symbol id=\\\"times-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\\\"/>\\n</symbol><symbol id=\\\"trash-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"tv\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\\\"/>\\n</symbol><symbol id=\\\"undo\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\\\"/>\\n</symbol><symbol id=\\\"unlink\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\\\"/>\\n</symbol><symbol id=\\\"unlock\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"unlock-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\\\"/>\\n</symbol><symbol id=\\\"upload\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/>\\n</symbol><symbol id=\\\"user\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"user-edit\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\\\"/>\\n</symbol><symbol id=\\\"user-plus\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"user-secret\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\\\"/>\\n</symbol><symbol id=\\\"user-shield\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\\\"/>\\n</symbol><symbol id=\\\"user-times\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"users\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\\\"/>\\n</symbol><symbol id=\\\"wrench\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/>\\n</symbol></svg>\";"
          },
          "redirectURL": "",
          "headersSize": 821,
          "bodySize": 108012,
          "_transferSize": 108833
        },
        "cache": {},
        "timings": {
          "blocked": 135.8120000025183,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.0759999999999934,
          "wait": 696.0340000096094,
          "receive": 4585.579999984475,
          "_blocked_queueing": 1.2540000025182962
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739981"
      },
      {
        "startedDateTime": "2020-06-09T03:24:21.125Z",
        "time": 5418.43799999333,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/svg-sprite/discourse.gnome.org/svg-5-45ccff676fa06e2dd919b3caa08f8673ef7bc45f.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "svg_sprite/show"
            },
            {
              "name": "Content-Length",
              "value": "108012"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Request-Id",
              "value": "f237f020-0200-40b1-aa81-0cbb3730edd4"
            },
            {
              "name": "X-Runtime",
              "value": "0.076288"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Wed, 09 Jun 2010 03:24:21 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript; charset=utf-8"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 108012,
            "mimeType": "application/javascript",
            "text": "window.__svg_sprite = \"<!--\\nDiscourse SVG subset of Font Awesome Free by @fontawesome - https://fontawesome.com\\nLicense - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\\n-->\\n<svg xmlns='http://www.w3.org/2000/svg' style='display: none;'>\\n<symbol id=\\\"discourse-compress\\\" viewBox=\\\"0 0 1792 1792\\\">\\n  <path d=\\\"M896 960v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45zm755-672q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23z\\\"/>\\n</symbol><symbol id=\\\"discourse-expand\\\" viewBox=\\\"0 0 1792 1792\\\">\\n  <path d=\\\"M883 1056q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23zm781-864v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45z\\\"/>\\n</symbol><symbol id=\\\"discourse-bookmark-clock\\\" viewBox=\\\"0 0 536 512\\\">\\n  <path d=\\\"M215.86 143.33A168.09 168.09 0 01296 0H48A48 48 0 000 48v464l192-112 192 112V315.53c-94-.04-168.14-79.33-168.14-172.2z M392.45 0a144 144 0 10144 144 143.91 143.91 0 00-144-144zm64 150.3a9.77 9.77 0 01-9.7 9.7h-60.6a9.77 9.77 0 01-9.7-9.7V73.7a9.77 9.77 0 019.7-9.7h12.6a9.77 9.77 0 019.7 9.7V128h38.3a9.77 9.77 0 019.7 9.7z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-exclamation\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M439.4 362.3c-19.3-20.8-55.5-52-55.5-154.3 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8C118.6 68.1 64.1 130.3 64.1 208c0 102.3-36.2 133.5-55.5 154.3-6 6.4-8.6 14.1-8.6 21.7.1 16.4 13 32 32.1 32h383.8c19.1 0 32-15.6 32.1-32 .1-7.6-2.6-15.3-8.6-21.7zM201.7 116.6h44.6c6.5 0 11.7 5.5 11.4 12l-6.5 123.8c-.3 6.1-5.3 10.9-11.4 10.9h-31.6c-6.1 0-11.1-4.8-11.4-10.9l-6.5-123.8c-.3-6.6 4.9-12 11.4-12zM224 361.3c-18.6 0-33.7-15.1-33.7-33.7s15.1-33.7 33.7-33.7 33.7 15.1 33.7 33.7-15.1 33.7-33.7 33.7zM224 512c35.3 0 64-28.7 64-64H160c0 35.3 28.7 64 64 64z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-one\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 512c35.3 0 64-28.7 64-64H160c0 35.3 28.7 64 64 64zM439.4 362.3c-19.3-20.8-55.5-52-55.5-154.3 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8C118.6 68.1 64.1 130.3 64.1 208c0 102.3-36.2 133.5-55.5 154.3-6 6.4-8.6 14.1-8.6 21.7.1 16.4 13 32 32.1 32h383.8c19.1 0 32-15.6 32.1-32 .1-7.6-2.6-15.3-8.6-21.7zm-145.2-28c0 8.6-7 15.5-15.5 15.5h-97c-8.6 0-15.5-7-15.5-15.5v-15.8c0-8.6 7-15.5 15.5-15.5h27.1V192.5l-5.1 3.1c-6 6.1-15.9 6.2-22 .1l-11.2-11.1c-6.1-6-6.2-15.9-.1-22l31.6-31.9c3.2-3.2 7.4-4.7 11.5-4.6h26.6c8.6 0 11.5 7 11.5 15.5v161.3h27.1c8.6 0 15.5 7 15.5 15.5v15.9z\\\"/>\\n</symbol><symbol id=\\\"discourse-bell-slash\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M442.7 396.2L36.5 70.7c-6.9-5.5-17-4.4-22.5 2.5L4 85.6c-5.5 6.9-4.4 17 2.5 22.5l406.2 325.5c6.9 5.5 17 4.4 22.5-2.5l10-12.5c5.5-6.9 3.7-17.7-3.2-23.2l.7.8zM67.5 368c16.7-22 34.5-55.8 41.4-110.6l-45.5-35.6C60.2 312.6 27 342.5 8.6 362.3 2.6 368.7 0 376.4 0 384c.1 16.4 13 32 32.1 32h279.7l-61.4-48H67.5zM224 96c61.9 0 112 50.1 112 112 0 .2-.1.4-.1.6 0 16.8 1.2 31.8 2.8 45.7l59.5 46.5c-8.3-22.1-14.3-51.5-14.3-92.9 0-77.7-54.5-139.9-127.9-155.2V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v20.8c-26 5.4-49.4 16.9-69.1 32.7l38.2 29.8C179 103.2 200.6 96 224 96zm0 416c35.3 0 64-28.6 64-64H160c0 35.4 28.7 64 64 64z\\\"/>\\n</symbol><symbol id=\\\"fab-android\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\\\"/>\\n</symbol><symbol id=\\\"fab-apple\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\\\"/>\\n</symbol><symbol id=\\\"fab-chrome\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\\\"/>\\n</symbol><symbol id=\\\"fab-discord\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\\\"/>\\n</symbol><symbol id=\\\"fab-discourse\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\\\"/>\\n</symbol><symbol id=\\\"fab-facebook\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\\\"/>\\n</symbol><symbol id=\\\"fab-facebook-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\\\"/>\\n</symbol><symbol id=\\\"fab-github\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\\\"/>\\n</symbol><symbol id=\\\"fab-google-plus-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\\\"/>\\n</symbol><symbol id=\\\"fab-instagram\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\\\"/>\\n</symbol><symbol id=\\\"fab-linux\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\\\"/>\\n</symbol><symbol id=\\\"fab-twitter\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\\\"/>\\n</symbol><symbol id=\\\"fab-twitter-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\\\"/>\\n</symbol><symbol id=\\\"fab-windows\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\\\"/>\\n</symbol><symbol id=\\\"far-bell\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"far-bell-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"far-calendar-plus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/>\\n</symbol><symbol id=\\\"far-chart-bar\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\\\"/>\\n</symbol><symbol id=\\\"far-check-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\\\"/>\\n</symbol><symbol id=\\\"far-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\\\"/>\\n</symbol><symbol id=\\\"far-clipboard\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\\\"/>\\n</symbol><symbol id=\\\"far-clock\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\\\"/>\\n</symbol><symbol id=\\\"far-comment\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\\\"/>\\n</symbol><symbol id=\\\"far-copyright\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\\\"/>\\n</symbol><symbol id=\\\"far-dot-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\\"/>\\n</symbol><symbol id=\\\"far-edit\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\\\"/>\\n</symbol><symbol id=\\\"far-envelope\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\\\"/>\\n</symbol><symbol id=\\\"far-eye\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\\\"/>\\n</symbol><symbol id=\\\"far-eye-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\\\"/>\\n</symbol><symbol id=\\\"far-file-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\\\"/>\\n</symbol><symbol id=\\\"far-frown\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\\\"/>\\n</symbol><symbol id=\\\"far-heart\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\\\"/>\\n</symbol><symbol id=\\\"far-image\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\\\"/>\\n</symbol><symbol id=\\\"far-list-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\\\"/>\\n</symbol><symbol id=\\\"far-moon\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\\\"/>\\n</symbol><symbol id=\\\"far-smile\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\\\"/>\\n</symbol><symbol id=\\\"far-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\\\"/>\\n</symbol><symbol id=\\\"far-sun\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\\\"/>\\n</symbol><symbol id=\\\"far-thumbs-down\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\\\"/>\\n</symbol><symbol id=\\\"far-thumbs-up\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\\\"/>\\n</symbol><symbol id=\\\"far-trash-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\\\"/>\\n</symbol><symbol id=\\\"address-book\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\\\"/>\\n</symbol><symbol id=\\\"adjust\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\\\"/>\\n</symbol><symbol id=\\\"ambulance\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\\\"/>\\n</symbol><symbol id=\\\"anchor\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\\\"/>\\n</symbol><symbol id=\\\"angle-double-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\\\"/>\\n</symbol><symbol id=\\\"angle-double-left\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\\\"/>\\n</symbol><symbol id=\\\"angle-double-right\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\\\"/>\\n</symbol><symbol id=\\\"angle-double-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\\\"/>\\n</symbol><symbol id=\\\"angle-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\\\"/>\\n</symbol><symbol id=\\\"angle-right\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\\\"/>\\n</symbol><symbol id=\\\"angle-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\\\"/>\\n</symbol><symbol id=\\\"archive\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"arrow-down\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\\\"/>\\n</symbol><symbol id=\\\"arrow-left\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\\\"/>\\n</symbol><symbol id=\\\"arrow-up\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\\\"/>\\n</symbol><symbol id=\\\"arrows-alt-h\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\\\"/>\\n</symbol><symbol id=\\\"arrows-alt-v\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\\\"/>\\n</symbol><symbol id=\\\"asterisk\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\\\"/>\\n</symbol><symbol id=\\\"at\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\\\"/>\\n</symbol><symbol id=\\\"backward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\\\"/>\\n</symbol><symbol id=\\\"ban\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\\\"/>\\n</symbol><symbol id=\\\"bars\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\\\"/>\\n</symbol><symbol id=\\\"bed\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\\\"/>\\n</symbol><symbol id=\\\"bell\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\\\"/>\\n</symbol><symbol id=\\\"bell-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/>\\n</symbol><symbol id=\\\"bold\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\\\"/>\\n</symbol><symbol id=\\\"book\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\\\"/>\\n</symbol><symbol id=\\\"book-reader\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\\\"/>\\n</symbol><symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\\\"/>\\n</symbol><symbol id=\\\"briefcase\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\\\"/>\\n</symbol><symbol id=\\\"calendar-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"caret-down\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\\n</symbol><symbol id=\\\"caret-left\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\\\"/>\\n</symbol><symbol id=\\\"caret-right\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\\n</symbol><symbol id=\\\"caret-up\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\\\"/>\\n</symbol><symbol id=\\\"certificate\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\\\"/>\\n</symbol><symbol id=\\\"chart-bar\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"chart-pie\\\" viewBox=\\\"0 0 544 512\\\">\\n  <path d=\\\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\\\"/>\\n</symbol><symbol id=\\\"check\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\\\"/>\\n</symbol><symbol id=\\\"check-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\\\"/>\\n</symbol><symbol id=\\\"check-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\\\"/>\\n</symbol><symbol id=\\\"chevron-down\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\\\"/>\\n</symbol><symbol id=\\\"chevron-left\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\\\"/>\\n</symbol><symbol id=\\\"chevron-right\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\\\"/>\\n</symbol><symbol id=\\\"chevron-up\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\\\"/>\\n</symbol><symbol id=\\\"circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\\\"/>\\n</symbol><symbol id=\\\"code\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\\\"/>\\n</symbol><symbol id=\\\"cog\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/>\\n</symbol><symbol id=\\\"columns\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\\\"/>\\n</symbol><symbol id=\\\"comment\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\\\"/>\\n</symbol><symbol id=\\\"compress\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\\\"/>\\n</symbol><symbol id=\\\"copy\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\\\"/>\\n</symbol><symbol id=\\\"crosshairs\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\\\"/>\\n</symbol><symbol id=\\\"cube\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\\\"/>\\n</symbol><symbol id=\\\"desktop\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\\\"/>\\n</symbol><symbol id=\\\"download\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/>\\n</symbol><symbol id=\\\"ellipsis-h\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\\\"/>\\n</symbol><symbol id=\\\"ellipsis-v\\\" viewBox=\\\"0 0 192 512\\\">\\n  <path d=\\\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\\\"/>\\n</symbol><symbol id=\\\"envelope\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\\\"/>\\n</symbol><symbol id=\\\"envelope-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\\\"/>\\n</symbol><symbol id=\\\"exchange-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\\\"/>\\n</symbol><symbol id=\\\"exclamation-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/>\\n</symbol><symbol id=\\\"exclamation-triangle\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/>\\n</symbol><symbol id=\\\"external-link-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\\\"/>\\n</symbol><symbol id=\\\"fast-backward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\\\"/>\\n</symbol><symbol id=\\\"fast-forward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\\\"/>\\n</symbol><symbol id=\\\"file\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/>\\n</symbol><symbol id=\\\"file-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/>\\n</symbol><symbol id=\\\"filter\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\\\"/>\\n</symbol><symbol id=\\\"flag\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\\\"/>\\n</symbol><symbol id=\\\"folder\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"folder-open\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\\\"/>\\n</symbol><symbol id=\\\"forward\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\\\"/>\\n</symbol><symbol id=\\\"gavel\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\\\"/>\\n</symbol><symbol id=\\\"globe\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\\\"/>\\n</symbol><symbol id=\\\"globe-americas\\\" viewBox=\\\"0 0 496 512\\\">\\n  <path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\\\"/>\\n</symbol><symbol id=\\\"hand-point-right\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\\\"/>\\n</symbol><symbol id=\\\"hands-helping\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\\\"/>\\n</symbol><symbol id=\\\"heading\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\\\"/>\\n</symbol><symbol id=\\\"heart\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\\\"/>\\n</symbol><symbol id=\\\"home\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\\\"/>\\n</symbol><symbol id=\\\"id-card\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\\\"/>\\n</symbol><symbol id=\\\"info-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\\\"/>\\n</symbol><symbol id=\\\"italic\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\\\"/>\\n</symbol><symbol id=\\\"key\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\\\"/>\\n</symbol><symbol id=\\\"link\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\\\"/>\\n</symbol><symbol id=\\\"list\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"list-ol\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\\\"/>\\n</symbol><symbol id=\\\"list-ul\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"lock\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\\\"/>\\n</symbol><symbol id=\\\"magic\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\\\"/>\\n</symbol><symbol id=\\\"map-marker-alt\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\\\"/>\\n</symbol><symbol id=\\\"microphone-slash\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"minus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"minus-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\\\"/>\\n</symbol><symbol id=\\\"mobile-alt\\\" viewBox=\\\"0 0 320 512\\\">\\n  <path d=\\\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\\\"/>\\n</symbol><symbol id=\\\"paint-brush\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\\\"/>\\n</symbol><symbol id=\\\"paper-plane\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\\\"/>\\n</symbol><symbol id=\\\"pencil-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\\\"/>\\n</symbol><symbol id=\\\"play\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\\\"/>\\n</symbol><symbol id=\\\"plug\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\\\"/>\\n</symbol><symbol id=\\\"plus\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/>\\n</symbol><symbol id=\\\"plus-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/>\\n</symbol><symbol id=\\\"plus-square\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/>\\n</symbol><symbol id=\\\"power-off\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\\\"/>\\n</symbol><symbol id=\\\"puzzle-piece\\\" viewBox=\\\"0 0 576 512\\\">\\n  <path d=\\\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\\\"/>\\n</symbol><symbol id=\\\"question\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\\\"/>\\n</symbol><symbol id=\\\"question-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\\\"/>\\n</symbol><symbol id=\\\"quote-left\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"quote-right\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"random\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\\\"/>\\n</symbol><symbol id=\\\"redo\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\\\"/>\\n</symbol><symbol id=\\\"reply\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\\\"/>\\n</symbol><symbol id=\\\"rocket\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\\\"/>\\n</symbol><symbol id=\\\"search\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\\\"/>\\n</symbol><symbol id=\\\"share\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\\\"/>\\n</symbol><symbol id=\\\"shield-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\\\"/>\\n</symbol><symbol id=\\\"shower\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\\\"/>\\n</symbol><symbol id=\\\"sign-in-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\\\"/>\\n</symbol><symbol id=\\\"sign-out-alt\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\\\"/>\\n</symbol><symbol id=\\\"signal\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"step-backward\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\\\"/>\\n</symbol><symbol id=\\\"step-forward\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\\\"/>\\n</symbol><symbol id=\\\"stream\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\\\"/>\\n</symbol><symbol id=\\\"sync\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\\\"/>\\n</symbol><symbol id=\\\"table\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\\\"/>\\n</symbol><symbol id=\\\"tag\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"tasks\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"thermometer-three-quarters\\\" viewBox=\\\"0 0 256 512\\\">\\n  <path d=\\\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/>\\n</symbol><symbol id=\\\"thumbs-down\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\\\"/>\\n</symbol><symbol id=\\\"thumbs-up\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\\\"/>\\n</symbol><symbol id=\\\"thumbtack\\\" viewBox=\\\"0 0 384 512\\\">\\n  <path d=\\\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\\\"/>\\n</symbol><symbol id=\\\"times\\\" viewBox=\\\"0 0 352 512\\\">\\n  <path d=\\\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\\\"/>\\n</symbol><symbol id=\\\"times-circle\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\\\"/>\\n</symbol><symbol id=\\\"trash-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/>\\n</symbol><symbol id=\\\"tv\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\\\"/>\\n</symbol><symbol id=\\\"undo\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\\\"/>\\n</symbol><symbol id=\\\"unlink\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\\\"/>\\n</symbol><symbol id=\\\"unlock\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/>\\n</symbol><symbol id=\\\"unlock-alt\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\\\"/>\\n</symbol><symbol id=\\\"upload\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/>\\n</symbol><symbol id=\\\"user\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"user-edit\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\\\"/>\\n</symbol><symbol id=\\\"user-plus\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"user-secret\\\" viewBox=\\\"0 0 448 512\\\">\\n  <path d=\\\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\\\"/>\\n</symbol><symbol id=\\\"user-shield\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\\\"/>\\n</symbol><symbol id=\\\"user-times\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/>\\n</symbol><symbol id=\\\"users\\\" viewBox=\\\"0 0 640 512\\\">\\n  <path d=\\\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\\\"/>\\n</symbol><symbol id=\\\"wrench\\\" viewBox=\\\"0 0 512 512\\\">\\n  <path d=\\\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/>\\n</symbol></svg>\";"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.19600000053085387,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 834.8619999964033,
          "receive": 4583.379999996396,
          "_blocked_queueing": 0.19500000053085387
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 205671
              },
              {
                "functionName": "",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 548518
              },
              {
                "functionName": "n",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 548598
              },
              {
                "functionName": "t",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 205017
              },
              {
                "functionName": "load",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 415160
              },
              {
                "functionName": "initialize",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 2234849
              },
              {
                "functionName": "n.initialize",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 174903
              },
              {
                "functionName": "",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 339690
              },
              {
                "functionName": "i.each",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 500133
              },
              {
                "functionName": "i.walk",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 499152
              },
              {
                "functionName": "n.each",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 498565
              },
              {
                "functionName": "n.topsort",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 498611
              },
              {
                "functionName": "_runInitializer",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 340033
              },
              {
                "functionName": "runInitializers",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 339643
              },
              {
                "functionName": "_bootSync",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 329658
              },
              {
                "functionName": "domReady",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 329233
              },
              {
                "functionName": "t._run",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 495758
              },
              {
                "functionName": "t._join",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 495567
              },
              {
                "functionName": "t.join",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 492518
              },
              {
                "functionName": "f",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 359062
              },
              {
                "functionName": "",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 359286
              },
              {
                "functionName": "e",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 29448
              },
              {
                "functionName": "t",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 29772
              }
            ],
            "parent": {
              "description": "setTimeout",
              "callFrames": [
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29981
                },
                {
                  "functionName": "i",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 27739
                },
                {
                  "functionName": "fireWith",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28507
                },
                {
                  "functionName": "fire",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28543
                },
                {
                  "functionName": "i",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 27739
                },
                {
                  "functionName": "fireWith",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28507
                },
                {
                  "functionName": "ready",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 31473
                },
                {
                  "functionName": "q",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 31255
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.010Z",
        "time": 2307.537999993656,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/javascripts/jquery.magnific-popup.min.js",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "*/*"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 675,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:40:01 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            },
            {
              "name": "X-Runtime",
              "value": "0.000342"
            },
            {
              "name": "Content-Length",
              "value": "20216"
            }
          ],
          "cookies": [],
          "content": {
            "size": 20216,
            "mimeType": "application/javascript",
            "compression": 0,
            "text": "/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h=\"Close\",i=\"BeforeClose\",j=\"AfterClose\",k=\"BeforeAppend\",l=\"MarkupParse\",m=\"Open\",n=\"Change\",o=\"mfp\",p=\".\"+o,q=\"mfp-ready\",r=\"mfp-removing\",s=\"mfp-prevent-close\",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement(\"div\");return f.className=\"mfp-\"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace(\"%title%\",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement(\"p\").style,b=[\"ms\",\"O\",\"Moz\",\"Webkit\"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+\"Transition\"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f=\"\",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos=\"auto\"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x(\"bg\").on(\"click\"+p,function(){b.close()}),b.wrap=x(\"wrap\").attr(\"tabindex\",-1).on(\"click\"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x(\"container\",b.wrap)),b.contentContainer=x(\"content\"),b.st.preloader&&(b.preloader=x(\"preloader\",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b[\"init\"+j].call(b)}y(\"BeforeOpen\"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=\" mfp-close-btn-in\"):b.wrap.append(z())),b.st.alignTop&&(f+=\" mfp-align-top\"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:\"hidden\",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:\"absolute\"}),(b.st.fixedBgPos===!1||\"auto\"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:\"absolute\"}),b.st.enableEscapeKey&&d.on(\"keyup\"+p,function(a){27===a.keyCode&&b.close()}),v.on(\"resize\"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=\" mfp-auto-cursor\"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a(\"body, html\").css(\"overflow\",\"hidden\"):n.overflow=\"hidden\");var r=b.st.mainClass;return b.isIE7&&(r+=\" mfp-ie7\"),r&&b._addClassToMFP(r),b.updateItemHTML(),y(\"BuildControls\"),a(\"html\").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on(\"focusin\"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+\" \"+q+\" \";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+\" \"),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:\"\"};b.isIE7?a(\"body, html\").css(\"overflow\",\"\"):e.overflow=\"\",a(\"html\").css(e)}d.off(\"keyup\"+p+\" focusin\"+p),b.ev.off(p),b.wrap.attr(\"class\",\"mfp-wrap\").removeAttr(\"style\"),b.bgOverlay.attr(\"class\",\"mfp-bg\"),b.container.attr(\"class\",\"mfp-container\"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css(\"height\",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css(\"height\",b.wH),y(\"Resize\")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y(\"BeforeChange\",[b.currItem?b.currItem.type:\"\",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y(\"FirstMarkupParse\",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass(\"mfp-\"+e+\"-holder\");var g=b[\"get\"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y(\"AfterChange\")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(\".mfp-close\").length||b.content.append(z()):b.content=a:b.content=\"\",y(k),b.container.addClass(\"mfp-\"+c+\"-holder\"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass(\"mfp-\"+f[g])){d=f[g];break}e.src=e.el.attr(\"data-mfp-src\"),e.src||(e.src=e.el.attr(\"href\"))}return e.type=d||b.st.type||\"inline\",e.index=c,e.parsed=!0,b.items[c]=e,y(\"ElementParse\",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e=\"click.magnificPopup\";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass(\"mfp-s-\"+c),d||\"loading\"!==a||(d=b.st.tLoading);var e={status:a,text:d};y(\"UpdateStatus\",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find(\"a\").on(\"click\",function(a){a.stopImmediatePropagation()}),b.container.addClass(\"mfp-s-\"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass(\"mfp-close\")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split(\"_\"),e.length>1){var f=b.find(p+\"-\"+e[0]);if(f.length>0){var g=e[1];\"replaceWith\"===g?f[0]!==d[0]&&f.replaceWith(d):\"img\"===g?f.is(\"img\")?f.attr(\"src\",d):f.replaceWith(a(\"<img>\").attr(\"src\",d).attr(\"class\",f.attr(\"class\"))):f.attr(e[1],d)}}else b.find(p+\"-\"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement(\"div\");a.style.cssText=\"width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;\",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:\"\",preloader:!0,focus:\"\",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:\"auto\",fixedBgPos:\"auto\",overflowY:\"auto\",closeMarkup:'<button title=\"%title%\" type=\"button\" class=\"mfp-close\">&#215;</button>',tClose:\"Close (Esc)\",tLoading:\"Loading...\",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if(\"string\"==typeof c)if(\"open\"===c){var e,f=u?d.data(\"magnificPopup\"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data(\"magnificPopup\",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F=\"inline\",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:\"hide\",markup:\"\",tNotFound:\"Content not found\"},proto:{initInline:function(){b.types.push(F),w(h+\".\"+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C=\"mfp-\"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus(\"ready\")}else b.updateStatus(\"error\",e.tNotFound),f=a(\"<div>\");return c.inlineElement=f,f}return b.updateStatus(\"ready\"),b._parseMarkup(d,{},c),d}}});var H,I=\"ajax\",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:\"mfp-ajax-cur\",tError:'<a href=\"%url%\">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+\".\"+I,K),w(\"BeforeChange.\"+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus(\"loading\");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y(\"ParseAjax\",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus(\"ready\"),y(\"AjaxContentAdded\")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus(\"error\",b.st.ajax.tError.replace(\"%url%\",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),\"\"}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||\"\"}return\"\"};a.magnificPopup.registerModule(\"image\",{options:{markup:'<div class=\"mfp-figure\"><div class=\"mfp-close\"></div><figure><div class=\"mfp-img\"></div><figcaption><div class=\"mfp-bottom-bar\"><div class=\"mfp-title\"></div><div class=\"mfp-counter\"></div></div></figcaption></figure></div>',cursor:\"mfp-zoom-out-cur\",titleSrc:\"title\",verticalFit:!0,tError:'<a href=\"%url%\">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=\".image\";b.types.push(\"image\"),w(m+d,function(){\"image\"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off(\"resize\"+p)}),w(\"Resize\"+d,b.resizeImage),b.isLowIE&&w(\"AfterChange\",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css(\"padding-top\"),10)+parseInt(a.img.css(\"padding-bottom\"),10)),a.img.css(\"max-height\",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y(\"ImageHasSize\",a),a.imgHidden&&(b.content&&b.content.removeClass(\"mfp-loading\"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(\".mfploader\"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus(\"ready\")),c.hasSize=!0,c.loaded=!0,y(\"ImageLoadComplete\")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(\".mfploader\"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus(\"error\",h.tError.replace(\"%url%\",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(\".mfp-img\");if(i.length){var j=document.createElement(\"img\");j.className=\"mfp-img\",c.el&&c.el.find(\"img\").length&&(j.alt=c.el.find(\"img\").attr(\"alt\")),c.img=a(j).on(\"load.mfploader\",f).on(\"error.mfploader\",g),j.src=c.src,i.is(\"img\")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass(\"mfp-loading\"),b.updateStatus(\"error\",h.tError.replace(\"%url%\",c.src))):(d.removeClass(\"mfp-loading\"),b.updateStatus(\"ready\")),d):(b.updateStatus(\"loading\"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass(\"mfp-loading\"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement(\"p\").style.MozTransform),N};a.magnificPopup.registerModule(\"zoom\",{options:{enabled:!1,easing:\"ease-in-out\",duration:300,opener:function(a){return a.is(\"img\")?a:a.find(\"img\")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=\".zoom\";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr(\"style\").removeAttr(\"class\").addClass(\"mfp-animated-image\"),d=\"all \"+c.duration/1e3+\"s \"+c.easing,e={position:\"fixed\",zIndex:9999,left:0,top:0,\"-webkit-backface-visibility\":\"hidden\"},f=\"transition\";return e[\"-webkit-\"+f]=e[\"-moz-\"+f]=e[\"-o-\"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css(\"visibility\",\"visible\")};w(\"BuildControls\"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css(\"visibility\",\"hidden\"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y(\"ZoomAnimationEnded\")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css(\"visibility\",\"hidden\"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return\"image\"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css(\"padding-top\"),10),g=parseInt(d.css(\"padding-bottom\"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h[\"-moz-transform\"]=h.transform=\"translate(\"+e.left+\"px,\"+e.top+\"px)\":(h.left=e.left,h.top=e.top),h}}});var P=\"iframe\",Q=\"//about:blank\",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find(\"iframe\");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css(\"display\",a?\"block\":\"none\"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class=\"mfp-iframe-scaler\"><div class=\"mfp-close\"></div><iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe></div>',srcAction:\"iframe_src\",patterns:{youtube:{index:\"youtube.com\",id:\"v=\",src:\"//www.youtube.com/embed/%id%?autoplay=1\"},vimeo:{index:\"vimeo.com/\",id:\"/\",src:\"//player.vimeo.com/video/%id%?autoplay=1\"},gmaps:{index:\"//maps.google.\",src:\"%id%&output=embed\"}}},proto:{initIframe:function(){b.types.push(P),w(\"BeforeChange\",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+\".\"+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e=\"string\"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace(\"%id%\",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus(\"ready\"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule(\"gallery\",{options:{enabled:!1,arrowMarkup:'<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:\"Previous (Left arrow key)\",tNext:\"Next (Right arrow key)\",tCounter:\"%curr% of %total%\"},proto:{initGallery:function(){var c=b.st.gallery,e=\".mfp-gallery\";return b.direction=!0,c&&c.enabled?(f+=\" mfp-gallery\",w(m+e,function(){c.navigateByImgClick&&b.wrap.on(\"click\"+e,\".mfp-img\",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on(\"keydown\"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w(\"UpdateStatus\"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):\"\"}),w(\"BuildControls\"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,\"left\")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,\"right\")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off(\"click\"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y(\"LazyLoad\",d),\"image\"===d.type&&(d.img=a('<img class=\"mfp-img\" />').on(\"load.mfploader\",function(){d.hasSize=!0}).on(\"error.mfploader\",function(){d.hasSize=!0,d.loadError=!0,y(\"LazyLoadError\",d)}).attr(\"src\",d.src)),d.preloaded=!0}}}});var U=\"retina\";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\\.\\w+$/,function(a){return\"@2x\"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w(\"ImageHasSize.\"+U,function(a,b){b.img.css({\"max-width\":b.img[0].naturalWidth/c,width:\"100%\"})}),w(\"ElementParse.\"+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});"
          },
          "redirectURL": "",
          "headersSize": 147,
          "bodySize": 20216,
          "_transferSize": 20363
        },
        "cache": {},
        "timings": {
          "blocked": 1589.2769999952372,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05899999999996908,
          "wait": 488.6299999873154,
          "receive": 229.57200001110323,
          "_blocked_queueing": 1.2109999952372164
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739991"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.009Z",
        "time": 2309.3729999964125,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/javascripts/jquery.magnific-popup.min.js",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.000342"
            },
            {
              "name": "Last-Modified",
              "value": "Tue, 02 Jun 2020 09:40:01 GMT"
            },
            {
              "name": "Content-Length",
              "value": "20216"
            },
            {
              "name": "Content-Type",
              "value": "application/javascript"
            }
          ],
          "cookies": [],
          "content": {
            "size": 20216,
            "mimeType": "application/javascript",
            "text": "/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h=\"Close\",i=\"BeforeClose\",j=\"AfterClose\",k=\"BeforeAppend\",l=\"MarkupParse\",m=\"Open\",n=\"Change\",o=\"mfp\",p=\".\"+o,q=\"mfp-ready\",r=\"mfp-removing\",s=\"mfp-prevent-close\",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement(\"div\");return f.className=\"mfp-\"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace(\"%title%\",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement(\"p\").style,b=[\"ms\",\"O\",\"Moz\",\"Webkit\"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+\"Transition\"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f=\"\",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos=\"auto\"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x(\"bg\").on(\"click\"+p,function(){b.close()}),b.wrap=x(\"wrap\").attr(\"tabindex\",-1).on(\"click\"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x(\"container\",b.wrap)),b.contentContainer=x(\"content\"),b.st.preloader&&(b.preloader=x(\"preloader\",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b[\"init\"+j].call(b)}y(\"BeforeOpen\"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=\" mfp-close-btn-in\"):b.wrap.append(z())),b.st.alignTop&&(f+=\" mfp-align-top\"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:\"hidden\",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:\"absolute\"}),(b.st.fixedBgPos===!1||\"auto\"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:\"absolute\"}),b.st.enableEscapeKey&&d.on(\"keyup\"+p,function(a){27===a.keyCode&&b.close()}),v.on(\"resize\"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=\" mfp-auto-cursor\"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a(\"body, html\").css(\"overflow\",\"hidden\"):n.overflow=\"hidden\");var r=b.st.mainClass;return b.isIE7&&(r+=\" mfp-ie7\"),r&&b._addClassToMFP(r),b.updateItemHTML(),y(\"BuildControls\"),a(\"html\").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on(\"focusin\"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+\" \"+q+\" \";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+\" \"),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:\"\"};b.isIE7?a(\"body, html\").css(\"overflow\",\"\"):e.overflow=\"\",a(\"html\").css(e)}d.off(\"keyup\"+p+\" focusin\"+p),b.ev.off(p),b.wrap.attr(\"class\",\"mfp-wrap\").removeAttr(\"style\"),b.bgOverlay.attr(\"class\",\"mfp-bg\"),b.container.attr(\"class\",\"mfp-container\"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css(\"height\",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css(\"height\",b.wH),y(\"Resize\")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y(\"BeforeChange\",[b.currItem?b.currItem.type:\"\",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y(\"FirstMarkupParse\",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass(\"mfp-\"+e+\"-holder\");var g=b[\"get\"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y(\"AfterChange\")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(\".mfp-close\").length||b.content.append(z()):b.content=a:b.content=\"\",y(k),b.container.addClass(\"mfp-\"+c+\"-holder\"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass(\"mfp-\"+f[g])){d=f[g];break}e.src=e.el.attr(\"data-mfp-src\"),e.src||(e.src=e.el.attr(\"href\"))}return e.type=d||b.st.type||\"inline\",e.index=c,e.parsed=!0,b.items[c]=e,y(\"ElementParse\",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e=\"click.magnificPopup\";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass(\"mfp-s-\"+c),d||\"loading\"!==a||(d=b.st.tLoading);var e={status:a,text:d};y(\"UpdateStatus\",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find(\"a\").on(\"click\",function(a){a.stopImmediatePropagation()}),b.container.addClass(\"mfp-s-\"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass(\"mfp-close\")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split(\"_\"),e.length>1){var f=b.find(p+\"-\"+e[0]);if(f.length>0){var g=e[1];\"replaceWith\"===g?f[0]!==d[0]&&f.replaceWith(d):\"img\"===g?f.is(\"img\")?f.attr(\"src\",d):f.replaceWith(a(\"<img>\").attr(\"src\",d).attr(\"class\",f.attr(\"class\"))):f.attr(e[1],d)}}else b.find(p+\"-\"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement(\"div\");a.style.cssText=\"width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;\",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:\"\",preloader:!0,focus:\"\",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:\"auto\",fixedBgPos:\"auto\",overflowY:\"auto\",closeMarkup:'<button title=\"%title%\" type=\"button\" class=\"mfp-close\">&#215;</button>',tClose:\"Close (Esc)\",tLoading:\"Loading...\",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if(\"string\"==typeof c)if(\"open\"===c){var e,f=u?d.data(\"magnificPopup\"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data(\"magnificPopup\",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F=\"inline\",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:\"hide\",markup:\"\",tNotFound:\"Content not found\"},proto:{initInline:function(){b.types.push(F),w(h+\".\"+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C=\"mfp-\"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus(\"ready\")}else b.updateStatus(\"error\",e.tNotFound),f=a(\"<div>\");return c.inlineElement=f,f}return b.updateStatus(\"ready\"),b._parseMarkup(d,{},c),d}}});var H,I=\"ajax\",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:\"mfp-ajax-cur\",tError:'<a href=\"%url%\">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+\".\"+I,K),w(\"BeforeChange.\"+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus(\"loading\");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y(\"ParseAjax\",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus(\"ready\"),y(\"AjaxContentAdded\")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus(\"error\",b.st.ajax.tError.replace(\"%url%\",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),\"\"}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||\"\"}return\"\"};a.magnificPopup.registerModule(\"image\",{options:{markup:'<div class=\"mfp-figure\"><div class=\"mfp-close\"></div><figure><div class=\"mfp-img\"></div><figcaption><div class=\"mfp-bottom-bar\"><div class=\"mfp-title\"></div><div class=\"mfp-counter\"></div></div></figcaption></figure></div>',cursor:\"mfp-zoom-out-cur\",titleSrc:\"title\",verticalFit:!0,tError:'<a href=\"%url%\">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=\".image\";b.types.push(\"image\"),w(m+d,function(){\"image\"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off(\"resize\"+p)}),w(\"Resize\"+d,b.resizeImage),b.isLowIE&&w(\"AfterChange\",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css(\"padding-top\"),10)+parseInt(a.img.css(\"padding-bottom\"),10)),a.img.css(\"max-height\",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y(\"ImageHasSize\",a),a.imgHidden&&(b.content&&b.content.removeClass(\"mfp-loading\"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(\".mfploader\"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus(\"ready\")),c.hasSize=!0,c.loaded=!0,y(\"ImageLoadComplete\")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(\".mfploader\"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus(\"error\",h.tError.replace(\"%url%\",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(\".mfp-img\");if(i.length){var j=document.createElement(\"img\");j.className=\"mfp-img\",c.el&&c.el.find(\"img\").length&&(j.alt=c.el.find(\"img\").attr(\"alt\")),c.img=a(j).on(\"load.mfploader\",f).on(\"error.mfploader\",g),j.src=c.src,i.is(\"img\")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass(\"mfp-loading\"),b.updateStatus(\"error\",h.tError.replace(\"%url%\",c.src))):(d.removeClass(\"mfp-loading\"),b.updateStatus(\"ready\")),d):(b.updateStatus(\"loading\"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass(\"mfp-loading\"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement(\"p\").style.MozTransform),N};a.magnificPopup.registerModule(\"zoom\",{options:{enabled:!1,easing:\"ease-in-out\",duration:300,opener:function(a){return a.is(\"img\")?a:a.find(\"img\")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=\".zoom\";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr(\"style\").removeAttr(\"class\").addClass(\"mfp-animated-image\"),d=\"all \"+c.duration/1e3+\"s \"+c.easing,e={position:\"fixed\",zIndex:9999,left:0,top:0,\"-webkit-backface-visibility\":\"hidden\"},f=\"transition\";return e[\"-webkit-\"+f]=e[\"-moz-\"+f]=e[\"-o-\"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css(\"visibility\",\"visible\")};w(\"BuildControls\"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css(\"visibility\",\"hidden\"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y(\"ZoomAnimationEnded\")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css(\"visibility\",\"hidden\"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return\"image\"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css(\"padding-top\"),10),g=parseInt(d.css(\"padding-bottom\"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h[\"-moz-transform\"]=h.transform=\"translate(\"+e.left+\"px,\"+e.top+\"px)\":(h.left=e.left,h.top=e.top),h}}});var P=\"iframe\",Q=\"//about:blank\",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find(\"iframe\");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css(\"display\",a?\"block\":\"none\"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class=\"mfp-iframe-scaler\"><div class=\"mfp-close\"></div><iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe></div>',srcAction:\"iframe_src\",patterns:{youtube:{index:\"youtube.com\",id:\"v=\",src:\"//www.youtube.com/embed/%id%?autoplay=1\"},vimeo:{index:\"vimeo.com/\",id:\"/\",src:\"//player.vimeo.com/video/%id%?autoplay=1\"},gmaps:{index:\"//maps.google.\",src:\"%id%&output=embed\"}}},proto:{initIframe:function(){b.types.push(P),w(\"BeforeChange\",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+\".\"+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e=\"string\"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace(\"%id%\",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus(\"ready\"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule(\"gallery\",{options:{enabled:!1,arrowMarkup:'<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:\"Previous (Left arrow key)\",tNext:\"Next (Right arrow key)\",tCounter:\"%curr% of %total%\"},proto:{initGallery:function(){var c=b.st.gallery,e=\".mfp-gallery\";return b.direction=!0,c&&c.enabled?(f+=\" mfp-gallery\",w(m+e,function(){c.navigateByImgClick&&b.wrap.on(\"click\"+e,\".mfp-img\",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on(\"keydown\"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w(\"UpdateStatus\"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):\"\"}),w(\"BuildControls\"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,\"left\")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,\"right\")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off(\"click\"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y(\"LazyLoad\",d),\"image\"===d.type&&(d.img=a('<img class=\"mfp-img\" />').on(\"load.mfploader\",function(){d.hasSize=!0}).on(\"error.mfploader\",function(){d.hasSize=!0,d.loadError=!0,y(\"LazyLoadError\",d)}).attr(\"src\",d.src)),d.preloaded=!0}}}});var U=\"retina\";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\\.\\w+$/,function(a){return\"@2x\"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w(\"ImageHasSize.\"+U,function(a,b){b.img.css({\"max-width\":b.img[0].naturalWidth/c,width:\"100%\"})}),w(\"ElementParse.\"+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.25199998277053237,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2086.4480000025146,
          "receive": 222.67300001112744,
          "_blocked_queueing": 0.24999998277053237
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 205671
              },
              {
                "functionName": "",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 548518
              },
              {
                "functionName": "n",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 548598
              },
              {
                "functionName": "t",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 205017
              },
              {
                "functionName": "e.default",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 381150
              },
              {
                "functionName": "",
                "scriptId": "205",
                "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                "lineNumber": 0,
                "columnNumber": 397766
              },
              {
                "functionName": "j",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 186259
              },
              {
                "functionName": "trigger",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 278171
              },
              {
                "functionName": "trigger",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 317633
              },
              {
                "functionName": "e",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 296272
              },
              {
                "functionName": "n.didCreate",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 139289
              },
              {
                "functionName": "t.commit",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 445231
              },
              {
                "functionName": "t.commit",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 446459
              },
              {
                "functionName": "t.commit",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 131229
              },
              {
                "functionName": "t._renderRoots",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 145463
              },
              {
                "functionName": "t._renderRootsTransaction",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 145696
              },
              {
                "functionName": "t._renderRoot",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 145084
              },
              {
                "functionName": "t._appendDefinition",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 144209
              },
              {
                "functionName": "t.appendOutletView",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 143930
              },
              {
                "functionName": "t.invoke",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 488853
              },
              {
                "functionName": "t.flush",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 487851
              },
              {
                "functionName": "t.flush",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 489858
              },
              {
                "functionName": "t._end",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 495254
              },
              {
                "functionName": "t.end",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 491810
              },
              {
                "functionName": "t._run",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 495782
              },
              {
                "functionName": "t._join",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 495567
              },
              {
                "functionName": "t.join",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 492518
              },
              {
                "functionName": "f",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 359062
              },
              {
                "functionName": "",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 359286
              },
              {
                "functionName": "e",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 29448
              },
              {
                "functionName": "t",
                "scriptId": "202",
                "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                "lineNumber": 0,
                "columnNumber": 29772
              }
            ],
            "parent": {
              "description": "setTimeout",
              "callFrames": [
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29981
                },
                {
                  "functionName": "i",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 27739
                },
                {
                  "functionName": "fireWith",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28507
                },
                {
                  "functionName": "fire",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28543
                },
                {
                  "functionName": "i",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 27739
                },
                {
                  "functionName": "fireWith",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 28507
                },
                {
                  "functionName": "ready",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 31473
                },
                {
                  "functionName": "q",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 31255
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "script",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.046Z",
        "time": 2272.2350000112783,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/cwunder/45/1159_2.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 724,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:38:49 GMT"
            },
            {
              "name": "Content-Length",
              "value": "3453"
            },
            {
              "name": "Content-Type",
              "value": "image/jpeg"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.025271"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3453,
            "mimeType": "image/jpeg",
            "compression": 0,
            "text": "/9j/4AAQSkZJRgABAQIAOAA4AAD/2wBDAAEBAQEBAQEBAQEBAQEBAQIBAQEBAQIBAQECAgICAgICAgIDAwQDAwMDAwICAwQDAwQEBAQEAgMFBQQEBQQEBAT/2wBDAQEBAQEBAQIBAQIEAwIDBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT/wAARCAAtAC0DAREAAhEBAxEB/8QAGwAAAQUBAQAAAAAAAAAAAAAACAUGBwkKAwv/xAAqEAABBQACAgEEAAcBAAAAAAADAQIEBQYHEQgSEwAJFCEKFhciMTJBYf/EABsBAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEA/8QANBEAAgECBQIEAwgBBQAAAAAAAQIRAyEABAUSMQZBEyJRYXGR8AcUFTJCgcHRsSOCkqHh/9oADAMBAAIRAxEAPwDP9D3s2Jo9GKsky5/UEFZBmzm+qhC0kZXiYxf2rlQY3I5jmu+XpU77cijzbCskW549PX+RHtggpVmDlFN+39fXthd2XOmioOMJYhsRsGBcntWtWu9p75c0dbWvWQYiuexqiGNjkR6IrXu9WtciuSzpopPqa5Oqk0gpYyfzC5AA9JBB9Ba1sVM+7Lld1FoJgfD1Px9PfEL4XyZrLzV42p5llrH4tkaIUTcXGOw0K+5Hg18wqNsJNOB0qCkueqdqKOaUIT3OVP8Avq40qU8hWpeGtFVKiBA2wOORwAOLRgaVM1QZqmXrNuY33MWB9bHmfYgnuRziUucpWJodYeZxPrJ+04xnXJYHHG/scHPwlhta4LuwGl1kp/zw5Pq4P5QCq9BuKjmEKN43uGly700anUM2k3BgT3gxPw/bGw2ZGZCVShRuII7i3MmQeeTEwbjEj8W835x9XSZzS3elz8aVuYTNFc5emI9aelEpGGliAhkWQZHnksHFYJnffy/P2v65q0HSnu59PX5/LHVHMK8o/bCLyVoai41U844trl68z1saOBrJ7p+udXSHL+A6xWK1kZpPgGJOgorf7VX3eva/WLmKWZpVIp09xNzYQP8Alzi4BScSTx8eP2wwNNMrbrmG6uKlaCjrLTdpcCpaqMsfP0cYBGzEiAY9ERjGfBI7Z/qrV9Xfp6okD6rSpUzmszSZCFmCATJIF9pM8wcWlpJ47IahjdE+3J/fnvhS5D4/zWozU17d3RTNvyfua5mJgQIsesx1XCn3To9lfaOc5UFDRXkRYsULGMbHhmUpBsSOJxXo+WrjTzrvhsBtcimVhyoBiAeBu47kXjGXnGo1s8mm0qkgsBvPALEC8xwOe2Lg/Fb7etV4Tw5XLWan8bcx+VNCSW+tsuXLA2HwWar1Y1ktlBGH86jnfC35/wAkyrKcw7hhczrsie1/rDPatUXLVj4OX5NNTLHkiW7njyjyg3gnD/6Y6H0/SC1bLjx81O1ajqQqgwDtSbDnzHzRaQMVc/cbuaLLeTP9O6HN5Osrc6Gm2ugm4PTSdFndTc66PD0t1aCIdVVGtfZPgBjvRvwsgO7/ALiKv0edIJWfQGrVqm9irAdwoAO1f27nucKf7QnoU+qKmWo0wioRIH6maCzf7psOw5vOAXh7CLU6J7JHy/jVlwY7QheMJBt+UrkE5VR3s9O0VVXtqf4Tpe1QspIa+XSpIkgescDAXuFOrxYE98TNWbcswiutR1tudtXC6sJwAzyE7YTtjSO6X1b0nTE/Tfbr6w87l/GqeZmBEixIxtZRVVIXaQYNxPP1fCtScfhudLHr7TXVfGmWj9rotLdOk2twEb47kVkWMNqEPJlexFQL3iAxGp7mRHN9vNL0ypquo1lcodgU8yok2+JBFvfEWczaZSnTqKpAJNouSB78TPfDG5boc3mtLLlQt5ylpuL5EUUBlkGzhyJVL+OILAJ+HHGOKwThiSMoniVoGORzffpX/TNy9DK5YqM3UfwgLlTcEREAcD5xbnAs9TMVqZaiih54YTI7z7/5/wCsEr45eZt7ht5x/wAYXmzyXMfA2oBGh3sDlKbPlavJ1wpYI4wNPXyo5TkE54/xY3zDM8bXDY9q/Eir/qT7NenNZ1qnnNMzBpM9yRtIkcllsoY+xE9x3LF6a+1LqXp3TGoZqilZadl3TYdgDDFlHoymBaY4HHlvxZ8gqfkS+S7r6fczC2R9nech4SxSdkL18+zkzySojT/DMY5XPe18YwGmjuY0ZGoqNV1uo2V0pnyWYYUwRKTwVChbHjkRgUdszqLNmlUu7Es5A/UzFjMcTM4bI+DuRdFq5WqkwIbMpeaUliy/tQK6kOKedyRVf09Ef8xjhGwaOT2IRrE/f6+oqGr6dSy6UqlQGqFugBBkLcdhbn/zHC5TNl/EWkfDn8xuLmB8+I74e2M4FvlHZQ7W9zRyVZhV5BV80zHQpLBIswJ3NGqOIwjvVV6T9NRU/S/rJ1PWaSvSbL0XfcgaQFi/AMsPMByPhjX03IVKiurAAqYu20z37Gf4xdJ973wvx/gLvvH+n482Nta1HNvH+g01tqt1BjFmTLSitoNaQEZ8VrE9RxJcN7xen9vzBRFcn+mv0TolHpjK18vQzTPuYGakSAAbKFAtMsSZMnmIxjZ6u+cdWqLwDx/N/hil+FZwamtrdppYRLfGpdBzHJUqNk7KMNKmxaoY9yjUeqfNXy1ARpEc1z2FeNfZCKNxpUeYqESDYwsTioE/SOeRfvgjs1wZxpjdnB1pc9RbaI2mlSsje12hqdfx3NONkcjpB2+iyBkje4pDWlGqoJZCKxXsarKpp0fEBQdwPna313GPtzxc40d+BfizVswt5yf5a4jJaDP6/JQIXEHHeyzs6m0tQscinDp4KflBljqpUQqMAyc4RpDikf8AAEQgEMrftCzfTWp1KWSztFK1SjuuS0JuA3KNjLJlQTfaOOZwwuj+mNQzK/fK+9KTEQBCloP5pZWIEG0CTzYcwV5Wa7x98fdLqOQm4zx5sq3igS2nDXBmh4+dSQN7rplcerh/zBcx9EeRZNiSLRx4jIkCLGr0+KXPOdI7zfQJouW6JrVvw2lopeo6lKtTxWZdn5nLKWO0Hbwp3EDaJmCXa50Xnstl31SnqaUkmadIowYsIVVVixkkkTUPlUncQqi1wHhB9ujgTQeJfBl7z5415UvKN7kP5jvjE1MqDdWLLSSazDYXDmW54x7GX+Y80iTC+CKZz2kBEiicwDCvJdI9J6pR/EaumoFeNg3uP9JVC0zaoBBUSohSFIBEySvNberpWfOm5fMs7UwBUMCPFkmoAIsFJ2m7AsGIYgiAM/iiayLqfF7w+5Jq5oZrMr5EX2P/ADIBSLPPB0WQWcOIyMVOioSXmgOK1vuo/hYqo1Hq5rC0vNCo5am0iAZExE2mfft3wOVFiAwvjJJi7KliZjkzMtpaO0dq8RbZa5mWxiDNHmmiOdH+Eo/VrDgkpFMjGOcESiZ7u767KyniZc0qQ83c25/x8uMVSWVgzExaB9XxHdzyXYVOMz+TsJ+WvNJmGPGmhgZsFTaGjlCgnQSzmI0ssTUUyMfI9nduVEVqL19VXenlbU2mqO/YfXrjoIar3Hl9P7/rBB6n7sfmK3I8P4ZeQqqTU4bJFqJLbPNMtdRs4seQMVYPS2hivLJeKKMcdHBUJXhjDeVykI9XLvM9B9NZ/PVc/nkqMjmfDFRkRe5gJtYhjJhmgcARg/o9fdSZHJUsjk6io1MbfE2BnaLCS+5QVECQt4kycGh9iWn5u85PuM5WJzLqLTkng3i9935ReQSbNQyagjQQi1FDTtlPVjo8Wzu51KJlTHegCCqjJ+O8YzNWbN9MdL+QNlEVUEBQdqG9i6yA7A/lL7jczM4pL1f1TSpuFzr76hksYLi1wrkSit3VNoMA2jHovDkVpXP9JVfIEJGxwtZNYggMG1GMYwDAogWoiI1B9dIjEROkRE+thalE8Ef1+0W+GBchySTJP1JnuZ5xlZ/iKbgWu+2Xw/yMyrjwbGn8w86hos2xsNAwSpldgBj60h5CrEe9zGuO9yGcdieiq3tzlGOi9Q/GMtT1NlZWdGBXxHZRtgTDHkxyZIve5m9nqJy1XwQZE8wAeJ5A49sYeHaGfGjIMJHsC4blUaFXtVe4pHq53+VVznPVV/6rv/E+mAKrqnhg2xT8IFoGONGgJMoh7QCWfvCmjjDMV4kjFEBSsMqtVFcqK1vTV6TtO17/AOQAbhuPHp/OJai+EsUzB7nF4X2o/tb8Q/dayvlBjNRrdHwjydwwHIbXjblTHwx6Wsj11mzRRLnPW+bkEHHmgOWojTAyxmjS453m7MYb1F9D/UGrVtLfL1aYlXJBXgQF3SLG/afSbHt5lVFRmVu0H69sayvBT7fnCP22+GOa+IOM52z2Oiq9VQXnLXKt3dtzmo5ctSwgNr3oOAMba2vrGTDth1wnmQamMRxiGKQzl/ndXOpff8xmA4XLmkoVaroDvgzKQQQTJPeF4jGnTQo1JQRL7rkA8T2MiLYL+z1waOWlM2BZHhRAKSI1NPMYQSvkyWlVxHK95Pdwvft7lVPbrtf8r5UzoydT7socoBYeI9vMwNySTMTcnHIQVfOYk+w9B6ADH//Z",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 777,
          "bodySize": 3453,
          "_transferSize": 4230
        },
        "cache": {},
        "timings": {
          "blocked": 1860.4810000154134,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.06399999999985084,
          "wait": 410.30100001312803,
          "receive": 1.3889999827370048,
          "_blocked_queueing": 1.5500000154133886
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "738342"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.047Z",
        "time": 2468.4699999925215,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/m/90ced4/45.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 716,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "Content-Length",
              "value": "764"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.007367"
            }
          ],
          "cookies": [],
          "content": {
            "size": 764,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAE1UExURZHP1ZTQ1uPy84zN0+/4+IvM06HW24/O1I3N1Oz29+/3+JDP1d/w8o7O1M3p7JLP1fD4+fL5+Y3N0/H4+ZDO1Y7N1JDO1Ov29+v19uTy9KTX3O739+3295bR17zi5aPX3L3i5vH5+aDW2/P5+tbt75zU2ZLQ1pXR16LW27vh5cDk5/T6+uv29u73+OPy9OXz9Oj09aDV28jn6qva37vi5avb37/j5tLs7p3U2dju7+r19p7V2snn6tfu74jL0tPs7tnv8IvN07jg5JjS2MTm6drv8Nvv8KjZ3pPQ1uHx88Ll6Nnu753U2svo66XY3bff47nh5IXK0L/j59zv8aLX3M/q7b7j5s7q7Obz9NXt7/L5+t3v8brh5YnM0q7c4MPl6JnS2MLk6Mfn6rfg5Mzp7IXK0YjL0WlwSd0AAAFlSURBVEjH7dTXbsIwFIBhg22S4JpmQkgouxTKbilQKKN777133/8Raoaq3mQ8QHwTHeWT8ku2A4C3vAU4iPE69zdSjDEklngz3igk5+l01OrJQnwjZ8X5hCKi4haejvi4iKTaAmelA4Kul3c4dfKluWhMF/w+Gx2plmJ5eTzBFVS7M221OfAri5MUvPYwuA/aavQakoaUTEJSTy1kq8X3F1FI8+MQsdPu2Wv08aYrN3gcksnyjw4lX/2s1NPIKERK4hkHHfr+VPQuD+CyGOlqjvonLShxDPBSZhUCR43pUMrylIU0n2cdNcQNpdPus5A6dKHlREw8O2chlHOhw+plqgX80gUOu9AAN5XKqcn2SHWj5ZNyJBo8pMSVZgFmCbGz5VQSE28h2/QDFBEC/EijiqXWroLSNTvccBeJ2xwB6t5+qmp5d4jPMI7YS5JLGOPbSQJG3vrOE16m/5+AyhrxfoXeAuAXP0MnxN4p4AYAAAAASUVORK5CYII=",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 788,
          "bodySize": 764,
          "_transferSize": 1552
        },
        "cache": {},
        "timings": {
          "blocked": 2271.8669999828935,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.09400000000005093,
          "wait": 195.16199999745368,
          "receive": 1.3470000121742487,
          "_blocked_queueing": 1.281999982893467
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739991"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.045Z",
        "time": 2275.114999996731,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/cwunder/45/1159_2.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "3453"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.025271"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:38:49 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/jpeg"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 3453,
            "mimeType": "image/jpeg",
            "text": "/9j/4AAQSkZJRgABAQIAOAA4AAD/2wBDAAEBAQEBAQEBAQEBAQEBAQIBAQEBAQIBAQECAgICAgICAgIDAwQDAwMDAwICAwQDAwQEBAQEAgMFBQQEBQQEBAT/2wBDAQEBAQEBAQIBAQIEAwIDBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT/wAARCAAtAC0DAREAAhEBAxEB/8QAGwAAAQUBAQAAAAAAAAAAAAAACAUGBwkKAwv/xAAqEAABBQACAgEEAAcBAAAAAAADAQIEBQYHEQgSEwAJFCEKFhciMTJBYf/EABsBAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEA/8QANBEAAgECBQIEAwgBBQAAAAAAAQIRAyEABAUSMQZBEyJRYXGR8AcUFTJCgcHRsSOCkqHh/9oADAMBAAIRAxEAPwDP9D3s2Jo9GKsky5/UEFZBmzm+qhC0kZXiYxf2rlQY3I5jmu+XpU77cijzbCskW549PX+RHtggpVmDlFN+39fXthd2XOmioOMJYhsRsGBcntWtWu9p75c0dbWvWQYiuexqiGNjkR6IrXu9WtciuSzpopPqa5Oqk0gpYyfzC5AA9JBB9Ba1sVM+7Lld1FoJgfD1Px9PfEL4XyZrLzV42p5llrH4tkaIUTcXGOw0K+5Hg18wqNsJNOB0qCkueqdqKOaUIT3OVP8Avq40qU8hWpeGtFVKiBA2wOORwAOLRgaVM1QZqmXrNuY33MWB9bHmfYgnuRziUucpWJodYeZxPrJ+04xnXJYHHG/scHPwlhta4LuwGl1kp/zw5Pq4P5QCq9BuKjmEKN43uGly700anUM2k3BgT3gxPw/bGw2ZGZCVShRuII7i3MmQeeTEwbjEj8W835x9XSZzS3elz8aVuYTNFc5emI9aelEpGGliAhkWQZHnksHFYJnffy/P2v65q0HSnu59PX5/LHVHMK8o/bCLyVoai41U844trl68z1saOBrJ7p+udXSHL+A6xWK1kZpPgGJOgorf7VX3eva/WLmKWZpVIp09xNzYQP8Alzi4BScSTx8eP2wwNNMrbrmG6uKlaCjrLTdpcCpaqMsfP0cYBGzEiAY9ERjGfBI7Z/qrV9Xfp6okD6rSpUzmszSZCFmCATJIF9pM8wcWlpJ47IahjdE+3J/fnvhS5D4/zWozU17d3RTNvyfua5mJgQIsesx1XCn3To9lfaOc5UFDRXkRYsULGMbHhmUpBsSOJxXo+WrjTzrvhsBtcimVhyoBiAeBu47kXjGXnGo1s8mm0qkgsBvPALEC8xwOe2Lg/Fb7etV4Tw5XLWan8bcx+VNCSW+tsuXLA2HwWar1Y1ktlBGH86jnfC35/wAkyrKcw7hhczrsie1/rDPatUXLVj4OX5NNTLHkiW7njyjyg3gnD/6Y6H0/SC1bLjx81O1ajqQqgwDtSbDnzHzRaQMVc/cbuaLLeTP9O6HN5Osrc6Gm2ugm4PTSdFndTc66PD0t1aCIdVVGtfZPgBjvRvwsgO7/ALiKv0edIJWfQGrVqm9irAdwoAO1f27nucKf7QnoU+qKmWo0wioRIH6maCzf7psOw5vOAXh7CLU6J7JHy/jVlwY7QheMJBt+UrkE5VR3s9O0VVXtqf4Tpe1QspIa+XSpIkgescDAXuFOrxYE98TNWbcswiutR1tudtXC6sJwAzyE7YTtjSO6X1b0nTE/Tfbr6w87l/GqeZmBEixIxtZRVVIXaQYNxPP1fCtScfhudLHr7TXVfGmWj9rotLdOk2twEb47kVkWMNqEPJlexFQL3iAxGp7mRHN9vNL0ypquo1lcodgU8yok2+JBFvfEWczaZSnTqKpAJNouSB78TPfDG5boc3mtLLlQt5ylpuL5EUUBlkGzhyJVL+OILAJ+HHGOKwThiSMoniVoGORzffpX/TNy9DK5YqM3UfwgLlTcEREAcD5xbnAs9TMVqZaiih54YTI7z7/5/wCsEr45eZt7ht5x/wAYXmzyXMfA2oBGh3sDlKbPlavJ1wpYI4wNPXyo5TkE54/xY3zDM8bXDY9q/Eir/qT7NenNZ1qnnNMzBpM9yRtIkcllsoY+xE9x3LF6a+1LqXp3TGoZqilZadl3TYdgDDFlHoymBaY4HHlvxZ8gqfkS+S7r6fczC2R9nech4SxSdkL18+zkzySojT/DMY5XPe18YwGmjuY0ZGoqNV1uo2V0pnyWYYUwRKTwVChbHjkRgUdszqLNmlUu7Es5A/UzFjMcTM4bI+DuRdFq5WqkwIbMpeaUliy/tQK6kOKedyRVf09Ef8xjhGwaOT2IRrE/f6+oqGr6dSy6UqlQGqFugBBkLcdhbn/zHC5TNl/EWkfDn8xuLmB8+I74e2M4FvlHZQ7W9zRyVZhV5BV80zHQpLBIswJ3NGqOIwjvVV6T9NRU/S/rJ1PWaSvSbL0XfcgaQFi/AMsPMByPhjX03IVKiurAAqYu20z37Gf4xdJ973wvx/gLvvH+n482Nta1HNvH+g01tqt1BjFmTLSitoNaQEZ8VrE9RxJcN7xen9vzBRFcn+mv0TolHpjK18vQzTPuYGakSAAbKFAtMsSZMnmIxjZ6u+cdWqLwDx/N/hil+FZwamtrdppYRLfGpdBzHJUqNk7KMNKmxaoY9yjUeqfNXy1ARpEc1z2FeNfZCKNxpUeYqESDYwsTioE/SOeRfvgjs1wZxpjdnB1pc9RbaI2mlSsje12hqdfx3NONkcjpB2+iyBkje4pDWlGqoJZCKxXsarKpp0fEBQdwPna313GPtzxc40d+BfizVswt5yf5a4jJaDP6/JQIXEHHeyzs6m0tQscinDp4KflBljqpUQqMAyc4RpDikf8AAEQgEMrftCzfTWp1KWSztFK1SjuuS0JuA3KNjLJlQTfaOOZwwuj+mNQzK/fK+9KTEQBCloP5pZWIEG0CTzYcwV5Wa7x98fdLqOQm4zx5sq3igS2nDXBmh4+dSQN7rplcerh/zBcx9EeRZNiSLRx4jIkCLGr0+KXPOdI7zfQJouW6JrVvw2lopeo6lKtTxWZdn5nLKWO0Hbwp3EDaJmCXa50Xnstl31SnqaUkmadIowYsIVVVixkkkTUPlUncQqi1wHhB9ujgTQeJfBl7z5415UvKN7kP5jvjE1MqDdWLLSSazDYXDmW54x7GX+Y80iTC+CKZz2kBEiicwDCvJdI9J6pR/EaumoFeNg3uP9JVC0zaoBBUSohSFIBEySvNberpWfOm5fMs7UwBUMCPFkmoAIsFJ2m7AsGIYgiAM/iiayLqfF7w+5Jq5oZrMr5EX2P/ADIBSLPPB0WQWcOIyMVOioSXmgOK1vuo/hYqo1Hq5rC0vNCo5am0iAZExE2mfft3wOVFiAwvjJJi7KliZjkzMtpaO0dq8RbZa5mWxiDNHmmiOdH+Eo/VrDgkpFMjGOcESiZ7u767KyniZc0qQ83c25/x8uMVSWVgzExaB9XxHdzyXYVOMz+TsJ+WvNJmGPGmhgZsFTaGjlCgnQSzmI0ssTUUyMfI9nduVEVqL19VXenlbU2mqO/YfXrjoIar3Hl9P7/rBB6n7sfmK3I8P4ZeQqqTU4bJFqJLbPNMtdRs4seQMVYPS2hivLJeKKMcdHBUJXhjDeVykI9XLvM9B9NZ/PVc/nkqMjmfDFRkRe5gJtYhjJhmgcARg/o9fdSZHJUsjk6io1MbfE2BnaLCS+5QVECQt4kycGh9iWn5u85PuM5WJzLqLTkng3i9935ReQSbNQyagjQQi1FDTtlPVjo8Wzu51KJlTHegCCqjJ+O8YzNWbN9MdL+QNlEVUEBQdqG9i6yA7A/lL7jczM4pL1f1TSpuFzr76hksYLi1wrkSit3VNoMA2jHovDkVpXP9JVfIEJGxwtZNYggMG1GMYwDAogWoiI1B9dIjEROkRE+thalE8Ef1+0W+GBchySTJP1JnuZ5xlZ/iKbgWu+2Xw/yMyrjwbGn8w86hos2xsNAwSpldgBj60h5CrEe9zGuO9yGcdieiq3tzlGOi9Q/GMtT1NlZWdGBXxHZRtgTDHkxyZIve5m9nqJy1XwQZE8wAeJ5A49sYeHaGfGjIMJHsC4blUaFXtVe4pHq53+VVznPVV/6rv/E+mAKrqnhg2xT8IFoGONGgJMoh7QCWfvCmjjDMV4kjFEBSsMqtVFcqK1vTV6TtO17/AOQAbhuPHp/OJai+EsUzB7nF4X2o/tb8Q/dayvlBjNRrdHwjydwwHIbXjblTHwx6Wsj11mzRRLnPW+bkEHHmgOWojTAyxmjS453m7MYb1F9D/UGrVtLfL1aYlXJBXgQF3SLG/afSbHt5lVFRmVu0H69sayvBT7fnCP22+GOa+IOM52z2Oiq9VQXnLXKt3dtzmo5ctSwgNr3oOAMba2vrGTDth1wnmQamMRxiGKQzl/ndXOpff8xmA4XLmkoVaroDvgzKQQQTJPeF4jGnTQo1JQRL7rkA8T2MiLYL+z1waOWlM2BZHhRAKSI1NPMYQSvkyWlVxHK95Pdwvft7lVPbrtf8r5UzoydT7socoBYeI9vMwNySTMTcnHIQVfOYk+w9B6ADH//Z",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.3090000017285347,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2274.5850000002215,
          "receive": 0.2209999947808683,
          "_blocked_queueing": 0.3060000017285347
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.047Z",
        "time": 2477.736000000732,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/b/b782af/45.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 716,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "Content-Length",
              "value": "756"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.005201"
            }
          ],
          "cookies": [],
          "content": {
            "size": 756,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFfUExURbiDsPPr8vXu9PPr8bR8rLV/rbV+rfXu87R8q9m91fbv9LeBr7aArrZ/rvTt88+ryta20fLp8PTs8sOXvbiCsLR9rPXt8/Pq8fbv9fHo7/Tr8reCr7eArvXv9L2MtvLo8MOWvLN6qrV9rNzB18GTuu/k7tGuzLuIs+7h7M+qyc2nx7Z/reDI3NSzz8SXvciewbV+rNvA1+rZ57iCr7uJtLmFsura586qyezd6b+Pt8aav8mgw9zC2Ne40sWZvubS49u/1sedwPn0+LN7q9zB2OfV5NW10OXR4vHn7/Dl78ylxsujxd/H29e50vfw9dq91byJtO3f68CSufDl7u/j7e/i7dm81LB2qNi71NW0z86oyMqjxOHK3bR7q7F4qfDm79S0z8qhw8GSur6Nt7J4qcCRud7E2e7g67mEsbF3qLN6q8CQuezd6rqGssifwrJ5qtq+1symxs6pydKwzcWav1prXnIAAAEzSURBVEjH7dTVbsMwGIbhxA50DnRJG2jKzDhmZmZmZrx/Leuknf6+gLzHjyL5k2OG8fJqp3B/pZQwjOXBnN+t6F/KyEIQ0lx6EhHbtomozdVB7usQ41uFne246ph4SIC1vhLMr28WNyxzTOkCtTiblCLl6wvdysYisO7kfre5OrO0jEKp+acQW8hLsD5/EBrc25dKKtAornZuv+uvH+8aeb5R4E1Clq6qSAw1X3wMhdaww2LVaVXvZYq9m5e1QOKzRexjieKUB6c8LyRjdzi62KBckHncV9E0R6HbpzvJmeYwR/nt8NSyjtIUurpnGL7kxLwW7UuBmq0clUqHuwtY7O2BNllDcVZEKEpE0p+A7rcxvopZN5ydGemGMCMNjAbcaomYbMjwbxzh25XlsPf+ef33A6wnJftZkD00AAAAAElFTkSuQmCC",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 788,
          "bodySize": 756,
          "_transferSize": 1544
        },
        "cache": {},
        "timings": {
          "blocked": 2271.378999997299,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.06700000000000728,
          "wait": 205.66499998829886,
          "receive": 0.6250000151339918,
          "_blocked_queueing": 1.4749999972991645
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "738342"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.045Z",
        "time": 2473.0100000160746,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/m/90ced4/45.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "764"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.007367"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 764,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAE1UExURZHP1ZTQ1uPy84zN0+/4+IvM06HW24/O1I3N1Oz29+/3+JDP1d/w8o7O1M3p7JLP1fD4+fL5+Y3N0/H4+ZDO1Y7N1JDO1Ov29+v19uTy9KTX3O739+3295bR17zi5aPX3L3i5vH5+aDW2/P5+tbt75zU2ZLQ1pXR16LW27vh5cDk5/T6+uv29u73+OPy9OXz9Oj09aDV28jn6qva37vi5avb37/j5tLs7p3U2dju7+r19p7V2snn6tfu74jL0tPs7tnv8IvN07jg5JjS2MTm6drv8Nvv8KjZ3pPQ1uHx88Ll6Nnu753U2svo66XY3bff47nh5IXK0L/j59zv8aLX3M/q7b7j5s7q7Obz9NXt7/L5+t3v8brh5YnM0q7c4MPl6JnS2MLk6Mfn6rfg5Mzp7IXK0YjL0WlwSd0AAAFlSURBVEjH7dTXbsIwFIBhg22S4JpmQkgouxTKbilQKKN777133/8Raoaq3mQ8QHwTHeWT8ku2A4C3vAU4iPE69zdSjDEklngz3igk5+l01OrJQnwjZ8X5hCKi4haejvi4iKTaAmelA4Kul3c4dfKluWhMF/w+Gx2plmJ5eTzBFVS7M221OfAri5MUvPYwuA/aavQakoaUTEJSTy1kq8X3F1FI8+MQsdPu2Wv08aYrN3gcksnyjw4lX/2s1NPIKERK4hkHHfr+VPQuD+CyGOlqjvonLShxDPBSZhUCR43pUMrylIU0n2cdNcQNpdPus5A6dKHlREw8O2chlHOhw+plqgX80gUOu9AAN5XKqcn2SHWj5ZNyJBo8pMSVZgFmCbGz5VQSE28h2/QDFBEC/EijiqXWroLSNTvccBeJ2xwB6t5+qmp5d4jPMI7YS5JLGOPbSQJG3vrOE16m/5+AyhrxfoXeAuAXP0MnxN4p4AYAAAAASUVORK5CYII=",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.22000000104121864,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2472.435999997055,
          "receive": 0.354000017978251,
          "_blocked_queueing": 0.21800000104121864
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.046Z",
        "time": 2481.2959999835584,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/b/b782af/45.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "756"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.005201"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 756,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFfUExURbiDsPPr8vXu9PPr8bR8rLV/rbV+rfXu87R8q9m91fbv9LeBr7aArrZ/rvTt88+ryta20fLp8PTs8sOXvbiCsLR9rPXt8/Pq8fbv9fHo7/Tr8reCr7eArvXv9L2MtvLo8MOWvLN6qrV9rNzB18GTuu/k7tGuzLuIs+7h7M+qyc2nx7Z/reDI3NSzz8SXvciewbV+rNvA1+rZ57iCr7uJtLmFsura586qyezd6b+Pt8aav8mgw9zC2Ne40sWZvubS49u/1sedwPn0+LN7q9zB2OfV5NW10OXR4vHn7/Dl78ylxsujxd/H29e50vfw9dq91byJtO3f68CSufDl7u/j7e/i7dm81LB2qNi71NW0z86oyMqjxOHK3bR7q7F4qfDm79S0z8qhw8GSur6Nt7J4qcCRud7E2e7g67mEsbF3qLN6q8CQuezd6rqGssifwrJ5qtq+1symxs6pydKwzcWav1prXnIAAAEzSURBVEjH7dTVbsMwGIbhxA50DnRJG2jKzDhmZmZmZrx/Leuknf6+gLzHjyL5k2OG8fJqp3B/pZQwjOXBnN+t6F/KyEIQ0lx6EhHbtomozdVB7usQ41uFne246ph4SIC1vhLMr28WNyxzTOkCtTiblCLl6wvdysYisO7kfre5OrO0jEKp+acQW8hLsD5/EBrc25dKKtAornZuv+uvH+8aeb5R4E1Clq6qSAw1X3wMhdaww2LVaVXvZYq9m5e1QOKzRexjieKUB6c8LyRjdzi62KBckHncV9E0R6HbpzvJmeYwR/nt8NSyjtIUurpnGL7kxLwW7UuBmq0clUqHuwtY7O2BNllDcVZEKEpE0p+A7rcxvopZN5ydGemGMCMNjAbcaomYbMjwbxzh25XlsPf+ef33A6wnJftZkD00AAAAAElFTkSuQmCC",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.18100000272877514,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2480.927000004496,
          "receive": 0.18799997633323073,
          "_blocked_queueing": 0.18000000272877514
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.046Z",
        "time": 2697.149999992689,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/system/45/2_2.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "1242"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.026879"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:37:36 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1242,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAQAAACQEyoRAAAEoUlEQVRIx61XXWxTZRh+uoKO/wHGhB8janCOC/4SEAUmXCAh2YQE4UqjJqKGeGNEb4gY5c6fSxM1JpgY1GAUCYTERAjg+BkOtvM+56edG27jtFu7lU1WurZs+7yg607b73Qj7Hw3zXfe9+l7nvcfmOCJg9P5PZXnjPCwE4jjgZ8YuJihe6CiRImikvOcNTXQayUheWgqKoa5+L6hFVQgPv+/2aehcjedsHdLVlTB6ZWVsbwGMDwvVqXyGtonixsBqeMl86SzqglZAAqNMA/lbB23eojbogCANCKBm5vtP+WMrDMw7Aecgh2UNyRKJYqW+XI42IEBKLR8VQKt+KaJIfSgdYa8LZ2iRNFgrY07OuAkwkHZJ4n8Ryd40KoynjAOyI0iOpQoNpn7ZJG5lF9LMn9rcxORLgbOYBgtr0lfAUBazktYhkuBRYmSrBjSVPTWsWqLaFG4DNaJWxC9kzpSfHPNqqHXob2wFvDS/QNr/+y71mmJceg+hGfxlymBHjY+UgHlJcSAuZxX8tk27i5PDhYTIJ5fefkTXOgWunEURMs2w/Vx2SQPaa0JIVscIyNQaHlHUj5KE95SSVx2GKXAAODCnMdzPhyOMslOki5THPWROWJO69ZnYxKhat7QKnXwU2dronpwcaIm9CK/ZI9W6rq5pFtfmAD3Y629p7iqrWLsQ9NoDXIjGzSSWe4Rb0zHKmNLelZ117ce7PrG7tLweYpLrYLakEQIzjNs0PB91Tzk7IqsiT0Wm9MTBH+WNumTtIxqHdghq82Scqkg4FaJazUykpB2ucxPwBFdvOZj+nAikNaW37bp8iM1cS9jaC7K5lbS3BrxKcFRWHuZKaMbLQ/dGa7u923H1nr2TwJa9K+lbdFtH+gEnLW8VRa6bOLeDNf0+7Zjc4MMlNGegJCUuT3qyzVf5d3yhGTKVrQv2it0ETKM9ko5LtqWkPvtgu/zNA26HNTa0MNNVklcp2DB3MUBrbVZ9rODV3kIsUDs4fgj0eXWRnMvmzSifznVhZ06DQvcQGpkz/Fdqz6yLr4sXhUPejLsLOz3ZKQ0DdjALf9Mz+ak4miv5E6S48kxJjvEeuoHnW6Yj4uj9XZMjjp7utf3rrWelVfkuPRrpS5woY/TI+BcnvH1eIb9vMUBZn0lfjVnutD6vKeCH0q6sIbQ89Es6JfFNYdKhlreUhgtbQMOpM6nxE9+UHBlm1EIriAwV9CYgmGhyXza8LpyAO0PydEH6+b580NXpSdU76Czkr9NEfSxjhkpLyHNsFazZQoIuWbVhDDiZXsQDrhlbGfJnSE5wStM+5UuOcvfi97arLWRLG1JzeBmOnmxbu7nbD5qvsRGDfAf3C7zOYcfsC9/53AjkdFF9hBMmLVsFiWKjfaO9oo4FC7A+kxT4fYLFFw4QXs3HVGi2MwXiJT/ktQAZzVP8ltnWWsuhP6F/XrJ+J6VnZHcOHcEoZU8xp/sFX/77zL3xspWZGanK5V3uXtebrNwzrvN58Y3sCZkZ96dYZffwPSNSp6Sm0VWd/HJ2IOvpHFwAa8XOfEi507BttsLK8jPGWWUEUYYYZSuHAhjYqv/ByEMU5cxxnELAAAAAElFTkSuQmCC",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.1519999856352806,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2696.7770000122728,
          "receive": 0.2209999947808683,
          "_blocked_queueing": 0.1509999856352806
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.046Z",
        "time": 2709.854999993695,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/abhinav_srivastava/45/1377_2.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "2796"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.025436"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jun 2020 12:36:04 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/jpeg"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2796,
            "mimeType": "image/jpeg",
            "text": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQIBAQEBAQIBAQECAgICAgICAgIDAwQDAwMDAwICAwQDAwQEBAQEAgMFBQQEBQQEBAT/2wBDAQEBAQEBAQIBAQIEAwIDBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT/wAARCAAtAC0DAREAAhEBAxEB/8QAHAAAAgIDAQEAAAAAAAAAAAAACAoGCQAFBwQL/8QAKBAAAAcBAQABBAMAAwEAAAAAAQIDBAUGBwgJABESExQKFSEWIkFR/8QAGgEAAgMBAQAAAAAAAAAAAAAAAAIBBgcFA//EACcRAAIBAwQDAAICAwAAAAAAAAECAwAGEQQFEiEHEzEiQRRxMlFh/9oADAMBAAIRAxEAPwBoDJfaziXT+6+muAJLRYHMte5/uTKiVeS0SyM65Wt4kwYoHsUdVnC/401JCDkFRj3Eaop+ysKZ125Fkk1xRnBxmoyM4pQz2K7V9CfLP3n3XofL7nIwcDrNEocxRKbbU3M5hW10OJrzGLGGlYYqyYH/AK+cb2gBctVEH7JaWVVQcJkemIsyqCP+0rEg5q1vCP5jvHNhr0al0lzL0hkV1FAqcofL0ITcc8FUv/Uyjd2L2PlCkP8AT7wIrH/UgGEonP8Ab9xjgaOYoy6j/Ky8gbG/RazmkblnbVVYqSkrc+a7UtGtimEAFRQY1F6oBS/X6iIEEQAB/wA+RxNSGBOKusy7svlXbILEbJku/ZboUP0g0mXuHuKrbG8stpCdcbmc2L+vQIP5hNEgX8b9NUhDslzFQcFSWMVMVpqJn4UV8oX+RDwDp/HnorvehWeAeSmG9ganNdA5BoDll+1X5h5PrhLWauOFBIKSchFSbl8JWxjGOoxcMXBf8MoVL1U5GDXkw4nIqn+Wre8TWX0y5zte3aw4nCv5WoZ1bpeGtdsySDdIKtlJyKg5FQi0a0VTUMxO7aNTpmARbGVJ/qQ/GGM0veK0Of5hp+szrGrZVmGoafZ5RcGkZXc5zSevU3IrCAiCSDZi0VOc4gAj9oB9f8H/AOD8nNGDULdJKsFXiL0v6a0cuq3flcHKl+iogoZJYqpvr9pfsOQxRH6/QBKP+/Coor+Pe2+huF9iru68+WmMjr3UKzaa5U07tEq3qnVv/mDJFnMyLSEVcJtSvDg1aLfmEBIoo0SFwm5KUCfFKg1IOKa082f5PNpYZ5fG/ol1nZF9T/5OiequjcIx99pq8QKSv2f1juoSsSukuBwErtvLshAog3O1drFVXRbKU76pw/XdMV/yBeCtp9BPPa15jzu9nX+w0a8wupVTMWVlZ1yvbQnHuf15GuySj1VNkU/6zpWQYuFjJik/iWhfzpJrLiZVODmmYZGKGDzyhrd45cEYbw+9x3b987yvsPPb/c805uyBxtFRoz+2zsiKC89Y3UnB1Zs0jSM2cUsDqwNDunEc4O0FRI5FBGOTQvytXoOYehfrMy1vmi/9t7j5usK/AsSa3zvC+ezfKNBvtfnQWRbu2GnoaVZYyViXZ2UkyXSr8kmcBSXQkGqaapEVVpiM0GU947+QPmTCP4OB6n4dkfQNtGxstnlm9Yujaswo+QIvRWRG0xmTNxZx7tRFNJRWMTkWypSuWySgPigicizciej8pcY7FDH5pfx+vL6e0J22vHqfyl6I7ETP5pzTeecH0OnPqs2emi3LM1hmmTeck5eZTYKvUXxQArJsm5SQUWTVKUExkux6WoCgdmif8IP46lZo2AadbPWPkvLrrqd8urBtm2XaU1ir9Yssh4SO/Revl5Vk6VQ/JNvVFVwaJqqFTRj2qonBRyqknBYmpC4pvXWdSo2LZ9ZNM0ixMKrTaszB3LzckRVVq2/IcqKBBImUyhjKLKJJlIQomMZQAAPqPzpbLsm6XHusGybLEZdVMeKKMdn79JAAABJJIAAJrhXRc2y2dsOpuS4JxDo4F5O7ZIAzgDABJJYhQAMkkCk8vYzqvQ+Q+NeGNT3PoT0ggeseh17Palcz5u6uieZqG9RI2hnssrYnaFalwQbxKEjBIx0VHNyGFWWdCsqJiHP8t3k2a3TeOr2y0YY49t0ztFCUDZdUwC7u5Z3ZmBPInsH8QFwKo/hvTXMtiaTeby1k0+56xRPL7WUqnMsUWJEVViT1lSUABB/y/IGopBdVWLjfkHz79aa36GehllyfWuv6RiXYvP3ZnQlT7VzqiUucTmlbeLBevwSCppWObMGz9o5YKFfE+pWz2ObOweR6GfcTnFarnrIrinQnc8B0NyT1z616Z2T3QfPEPQqw8Z8LYPx7a6hzVRblV2DNrI1BeffTNPlpZBd3HlmJV8/fFOskICikyIIppA2MMAPtKcEEtRzeTFinOhPO7oTrjnnau4XXTldKLyEzTeOis46HXqbmui/XbhBPY2sxa39XYEiuyOoiwNmrtY8I3OVqCX6Mg8vnjaa3ReWj0F3wRSbdqHWGUyBvwRzx5o6EPGykg8wehnIK5ByzzJo7nksLWbpZesmg3LSKZovU6qHKYLLKjKyypwDH1spyccRyxTXeSarRNrzytabm9hYWenWhkLqKmY5NVBsuKZzIuE/xqFKoQySyaqRyHKBimTMAh9Q+VbfNi3W2931Gxb1CY9VC3F1ODg4B+gkEEEEEHBBBFXW1ro2W8Lf0ty2/OJtHOvJHAYAj4emAIwwIII6IxU+fNEH7N0xcplVbPG52jlI5SnIqmoQxDlMUwCUQEDD/AIICA/8AofOWrOjB0OCOwR9H9H9Gu7PDHqIWgmGUYEEHsEEYIIPRGP0aWe7X8mej+huROYeQpXn7i3oeB50kJlKvatoPUGlYBpdeR+xJtDPIJSFrjr9UXTNZ41kot0s+ZG/TYHTKY6aJ2l78j3Dsl23dqrq2ZJIxqj7ZIpFQeuQgc1R0Y+1S2WDskTd4KZ7OaeJLYuiyrL09oXNJDK2kzHFNE8jGWPm7K0kcka+pwpVeCyTDrIfHQ0VD8qO39HrPD/JevZD5ycw+fXGfS9e6iNnWCX3Q+jNN0yQq72WlWteeDZYxoyVZy7yZkDy75+ou5VFz95Sn/wC6ZqGcfqtPxkd1zbfvJzpirRnUXE1Lofmv0BxV2n1zZuw8jz3c9ivXKfRmUW2TSazElG1E1djXjUzeABgRRivHABwZi7TetztVlEBM95NBzjqiK4u8yOrsC4l6A4aZ4RxNz5QdgeNCmvea9J6PuF8nVJVv+lbJ2yqy9caGkHgM4+IasmaCrJqCYqlN+IiYFWvnji4tltK7tJdW8JJJ/EYSxxxqh9ki54K7uw9ahsMXCSt1gICQwzLyzbN0XnZmptG2XhiOrAjlmleRTFGWUs0aRxt7XKgqEaSFe8lyMqWPGDJvGsWce0TIi0YtU2bVFMhUk0U0iFTIUpSgBSgBSgAAUAAP/A+UR3aRjJISWPZJ7JP7JP0n+60jTwRaaBNPCAEUBQAAAABgAAYAAA+AAf6r1/Fr2rPhRVQPtd6a2Xyf5NqPTtZyaD2dSV3qFymXpU5a3NLIqzlYewvzuW0iiguKSyasQ3APvQVIJFFAEv1Epio7FRkVI7bjUX8uq9O9nwOZ+tnR9gaXLX9my91D84ZXEwqkNkvFtJfvfxy0NWWqzlys/sE+vGtlp22OzpuH6TCPaNmkYzbGbLCEns1LddCrpvj0tZ8KK//Z",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.1299999927394092,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2709.2119999946335,
          "receive": 0.5130000063218176,
          "_blocked_queueing": 0.1289999927394092
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.046Z",
        "time": 2902.6250000169966,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/h/fbc32d/45.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "508"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.006717"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 508,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADMUExURfvEKfzOTf724PvBHvvCIf3qtf3orPvEKPvCIP723/713PzUZfvBHP713/vEKv734/vDJf713f713vzXb/vDI/zOUP712/vDJP735fvLRfvMR/702v7z1/vDJ/vCIvzVaPzcgf724f756vzVafvGMPvIOvvHNf3psPvBH/zOUf3suPzPUfzWbPzOTvzbgP7tvfzcgv3qtP3rtf3orf745/756/vAGPvLRP702f7z2PzVavu/E/3dhfzWa/zTYPu+EfzSXvzaff3hkvu/FLtGzSsAAADOSURBVEjH7ZRHFoIwFAApUQICAtKLCNh7793730mDsI1xp+8xq1lMskjyQ1EFBS84KLJK5pYoQg4bK8PGuGWlrjvTRmhha30SLwcwdTZZxTOA25wDJUmgs7rC8GX4oeZ/qpYRRLVkbg4i4nIlqLXt8VRDJHdT+lz7fPWN5hPUO09QEaZHUEve3qURzk0lOBPTXUPE40x6gi+V/+zmv3qxc0Yb5XXELPC13rcjA6TeDW27U8cOpuIaRjN4a7tnOAp+5usQBPlKAHWu+AYLEE8sAhNmZqsIjgAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.14700000577047467,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2902.2480000061223,
          "receive": 0.2300000051036477,
          "_blocked_queueing": 0.14600000577047467
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.047Z",
        "time": 2921.4480000082403,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/jfft/45/1152_2.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Content-Length",
              "value": "2671"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Runtime",
              "value": "0.012808"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:38:36 GMT"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2671,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAADAFBMVEUAAAD98uO/6vj8+/nC6/nE6/mG3/a86vjB6vj99OYGAQDQ7/n88d/77dr459L14cn25M39/P377tz6+Pf66tbH7PqP4Pb///8aBwHK7fn+9+rv7e2Z4vf49vPO7/p93vZt2/UBBwPx27+T4faK3/YKBAF43fbv2LzN7vnp5uSC3/f29PGt5fclCAARAwD/+/C36frewJOy5/glGQ2ZwMV03PUPFgcQEAqm5PYFDAb08vDq0bHk39ry38fnzarLx8LXtonH4+2ZjIKf4/fm4+Gw3Ojx3MQtDQHHoWwxLR713b7w1bLP9v/XsYCgi3GziVTUrXbPpWjJ6fQ1Gwju6uXS8v6k1OHHnGFNFwHoypbgxaHf29ne3uEAB9CIWyizjWExIxaDgXtfUkxxo6giOjas4PC35PMRGxF5cms7S0YEFyHy2rmDbFL758nPz8+3m3zS8PqE3PO+vblINyrI8f9kYVyh3e5YS0Bcf3xTKg2OjYeZzNOVmJfM7Pe/k10mJxm109qUaTfY19UHJzzt0KWtdT3Yz8VIPjeTXyLm2MdjQRyzsrDiwonj2tGOf3KrayyCMwVUPy/evH90Y1jOvq86OTcMKR7C7/5XOBkwXVEiTER9RRiJwMz97s7Y089JgYQcRDGHuL9clZrh0Letp6NBam+PhnzDlFDmyaJzwNCgcyaNThl1KAGQelVDMCNhSDGvhUgjPkigXyfr4NDMmxgLJ8xDJg7Hp34FJWloNgs9NC8FHAXE4OceEAiFsLZxmJg7RycXNh4eKCydd1DHz9toam9Ol6t8USl91erNrYd3YES3wcqWRQqivtLNoVpuk4rYsWNfHwICFce8iUmqm423eQk0Us+bpr/Cw8nHys/F6vj11qiHo6GLknBx4f2vk2w+alSIc2BxVjwmVVt6hLxVgGGX1edsTyK7qJrRo0OkXA9iaGDdukLiwljGjhSZrrGJma+tsMVHXTyssKYQOc0gTaQZP39NTlRk2fS+hDLUrVXDs5kCF6PN1u+XoeNqfMbEweIgAAAHKklEQVRIxz2Td1xT9xrG35CQRXZCBgkNgQxJGAlhBggrJOwte++NgoAyVET2kGlx4VbcG1erdc+6tUo/rbV79/Z23X3v70R7n8/v5PyRb573Oc97AlovrZb0WjbkuOXgq3g31UPoIRRG8Rg8Do7i4OCg23R2hYeCCgGfQTnpT9kQ7N/eiGi9Xujh7jHzIeMN7enZcPasOwDI3oPX4Gt+Wdl6UCBvIdUDbsQwWTwODUehIDy0ZwUV0X8FDLWximSzrF2m8KMKU9E3iq4aZxaDTrNG8fQMLBhUAFRhtI0NGR0CgRDnDX4K8BCCAtw3rTUzsShW3IGiCs1XAOaNzMmYN4EcdwEqADyoHlSq8MZa85skCEcnO98i++L/3ph5XImvH1CFQouC6r4y1sx0VpkZFAeM551ObDhduNvqTf4zyX1fAKHFIhRSLUmBgcNJSUmJV27xaDhe4uPQhtBDv1s7seYgEOxJX/iCwiKkUhWQGm8MdK6ry47au1LFwTnv/Sp68kbBGdBam0ZCH5HLZQF6IWqECjNZgaq5hKbDh2tjzHSK8+PxawPxut8Aq5pAsF3A+IWL531RFqBS4UqsSpX46eXKnS+dgxkUprEmmMViPQMC2Qaxtgv2C7bkuBLAKsRUEBPMM8YODDDodAYPR2eiO+fEr7BgSyAs2NraLizY2pM2AMxnCv0CgLqSyeTR0OI5NBqdjqOx0EU7cQpE9pgw3n7Z5vUA+p4V7npQJMaweHQaBROHQ+OwGDgcbeQULFokEonssQkE+/bdKMPtgpkVqQFdsSxsOA6JQ+fRGSw0phejMdxKk8nLQQayhg8L8vUzOiaLwcM2j+OgIXQVDke/8wjs7DDe3hbDbUrPywBKd8YP5w9GqYIRjlaPYzCzs5PiKfQtP+chGmmR1X1Z+6WNpai/qoRXM/krjc5MLDoOx1NFRSWbaYwtn7+hkZB95Ccbtu4AWIXiwGBGtsqMolvfKxwHm1D3LA8W2dktwei3UlZ77y7ZegHRqwICQJ8Yb1ShVxZFp9DNzrrk+Jrnj6y0VZ1hYem727dvB/CN9osGaM4INTqj/anmQpMLMpLi5+o+z8sDssjKL+kMe/9iSTnZG5USjf6AsOqjDF2gmclkstDqmUZdbPaxU3ngRloQ2YnCwlZ7e194Z3E5Rl+C93ypHlUJybpA9KRMlTE0OVkXk1D92zOQ+GttRCkp7yA+ZXFnHNb4Nr/oChC6tx5C7qpgplmFfsM6/eTYZ/uAyI/wQvYIf2vJksXeAXAeSi9HT/pR3S36waMTyJ1Bx1FwsfNt/z3zK0iJfIm/l81CZ0rnYlF6FVSsh+rS6FdDxUJ3i3tqfkZWDQO1HnxP+N1/zjwCHylRjnASQWS3evkG2aUNFRBwua+vqH4y82GmxZJ5YK+uJmYu+cH89L/P/AucnJC7i7+b9m3vqtJPtm1bDzJZ9XThd0Omrm/XbXqYmflwbN3x/qThwYo1938Hp785KREucfO+WLJj68ZjFdXVx7qn9VVta0aOf/Pg8YGDB8fGxuLXTiS0Nf5yH3ycnJx8pGpJZHtk+vZIr83burv3dUePNxeFiG/9fSIra+XxdT2hNRNXHA2zLzqAiOFO0paWyPLIcm36jo3dJZur5xPaOkJMaXsn5rLWxsbUsU5kTXG5gpxGiLDiS+WRLWVu/mXbt+7YF3Hdtz+kcVeISbxzIMioO5FWM2ASGDQCV9MsSCR8qZOPT0uLvEXSkn59M0kivf7VvZzZkHqT2GAI0vSKNY4GLlusEewyBYGLC58oVS7lo+NSll6m9eff/CmqNycoyOQqFrvOGvBcR64GzzWwNc1pYnCRq6VK6VKpeikxopzkFcG/6T01kmtlxQbXIVcBFwmP1whMfWka4BOJUh+llEgk8r20XhL+l3dmXXNygkxpYoNG47imXsDFY7hGkNYaxEW0UqmWy/lEdQQJwavrc8W5uVZjBHMNa/B4vCN2sTWtvQKQy9Vq5Msnyr20/ulXc3ND/nk6NHtnsIHNRom5aWI2HgVBEhT/IgAfpdJHqSaqlRFat/c/+Evlka6MxKM9+/v3R6m4bC5XI8ajJHi2QJB2rkgARKIaCy0lupUhuKOj+Vw4O2doV/hobf+9LWy2owGBSOzG4vk2B0QTUWq5j6T8zq6vp0YEniOjo4XvFhaOFzel7s9yZDvmNNYH5YRUNlVOVhoxms/nS9VlT/q/fbo/v8HgqNlDLWwaH508Utza9aBOENI3XVR8uPXctefNScDnu7i4ED/+MuHAwbs/nvzxaZTB4Fik7zt8e6o2Ibyo9ugwre3cT0MdHc/FV6+9RLt0kUg+3nfowMGxTbe+OXnyZPI/1jUUNx058vWTV+Hheyo/PZpY+AH36h/XXrx4EQ5uSBE3P3rZf/fucVf28Pc//PD9057GVU23a3tH92B4eO14yM/NRa1/TE/V/w8+LjH/94uH2AAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.11899999629147351,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 2921.0680000036264,
          "receive": 0.2610000083222985,
          "_blocked_queueing": 0.11799999629147351
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "t.insertHTMLBefore",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 437833
                },
                {
                  "functionName": "t.__appendHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451831
                },
                {
                  "functionName": "t.trustedContent",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 452304
                },
                {
                  "functionName": "t.appendDynamicHTML",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 451925
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 418854
                },
                {
                  "functionName": "t.evaluate",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 414201
                },
                {
                  "functionName": "t.evaluateSyscall",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448421
                },
                {
                  "functionName": "t.evaluateInner",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 448007
                },
                {
                  "functionName": "t.evaluateOuter",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 447916
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 473672
                },
                {
                  "functionName": "e.next",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 474721
                },
                {
                  "functionName": "render",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 142045
                },
                {
                  "functionName": "H",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 187281
                },
                {
                  "functionName": "t._renderRoots",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145390
                },
                {
                  "functionName": "t._renderRootsTransaction",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145696
                },
                {
                  "functionName": "t._renderRoot",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 145084
                },
                {
                  "functionName": "t._appendDefinition",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 144209
                },
                {
                  "functionName": "t.appendOutletView",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 143930
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488853
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.047Z",
        "time": 3138.7180000019725,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "X-Runtime",
              "value": "0.004085"
            },
            {
              "name": "Last-Modified",
              "value": "Thu, 28 Feb 2019 14:46:52 GMT"
            },
            {
              "name": "Content-Length",
              "value": "5107"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            }
          ],
          "cookies": [],
          "content": {
            "size": 5107,
            "mimeType": "image/png",
            "text": "iVBORw0KGgoAAAANSUhEUgAAAWUAAAB4CAMAAAAdZBN4AAAC/VBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+G1NxwAAAA/nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8xMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/lerFcIAAA+nSURBVHja7Z15XFbFGsfnBRVQXMBdAvc1V8o1l6tkbpFLlHZRSdNKTcybUmqaN0W5tlkqkmWumXqzAsOUolxQU1Ox3AjUXJEERUGQ7Xwu8HLOPDNn5izvOd6/5veHH9+ZOXPe98t5Z57nmWfmRchmeQUt+PrkrRwpO33fquFeSOghaMCX9ySgmzPcBBO7NeykRGtnFYHFVvn/IDH0sQBjVr7BUetXT2vArBt5hwVZKmoqsJlS0w3F5eDywhmVESUSW28IcGY0Ol8hN0lV+YbE0wZBzoReKsbkbtODxoQSLuVvBDrjansfonuTMi6KuZClLYKdce0l0B0i6urd5EOWlgh2hhVIontAeBuxGpClkQKeYcVQ7BrBaVELckEdAc+wUih4HXGV+1ktyt8KdoZVn4bXDteNl8SA4ZLavJecmzq3Bi7oTsNroVQ5UrQg3/AQNNmqGl1YTuh4XaVoFE2vmlLVS/NRfk3gZKvWARnRbqVsLAXvJm6+UgvyX+JR5mgrhvSsXDaGordfaV0pQ4vyBIGTrYEA0j65cDhFbxnPkCaVJIL4HG2DmOSw5WMUvhFK86kakHNbCpxsueVAThNlH5py/Woq7TdqUA4XODkKIDitlYuvEMW7cPtjfMjxYrzgiRwbDjDHEeURL9VlLuSLtQVNnjoRpK7JxRNh6W1sLaP7PMg5HQRMrh4h5y+5uHYBKP0QN6/Eg1w0XLDky0EkVJQ45PLtAD0MyOWwIZdMFCi19AuEVaxQfpwTl7/GpjxTgNTUWxDWXVz+lVx2vhpsfoT5JAvIOmoFF0ov4fL6FctOeY8TzT9iQC4Uw4Va1WbvT9nejTlkJIJmXbLLSvIHkxePYlgXgwVTlbqWD63FSnbKUABsNWzYPL5QOtSFutr7Lg35TEfBVKU+uRV0wuSSA5hYGNm2RiP19e9RkGNEOq1aNf+S8WQ3rijq+ECZxQwkufn8BRmnBgukDM1gBC3eVCKXRnrokqn0kD1bRO0Rikpwym9CQmjpS6/4BJQETIMA2TPZXFHyvKFem+9xtj4ypZZAXDYGh4SsvRoSEuK9ODO59OWYTAndAl/3eYrf/EX5618cBvt9dGrkgvGtBF9F08+U/bt4Z1pnhPaskFA+oHwaNwu9VGrG+Qhc1ijHLlyO/LKCJHQdzl1+IJ7xaBsByzLlpn97zF3dS0LENoUXBB97KaO9I891L6UcASkvFXxsphx24SwqpexfZDqprU7HwL5BI0JCgoM61RdAtSl7H36ljDL6GlA+rOOADJj2wTcnCZe64PT2t/tXFVh5lMtURrkdeJjP8a9rPXlzGjd7ds8rZvNnHe0mRu86k56Vn5F67If3wwJpb8bbp1zM9dmqPhVi+vIdwj9LunBHun3jdOx7o+pxbu/to6imutYd1/rA/YruDTTkC3voWR76fWp8+YvGZQPxUozrLPs9eQ6OvixpK29tOxOM2y+j+8vZEUb8oeKcxXNZV6+SL4pUVQX8m+y4ODGM6Y3uA4+I2l59AfQwDZQ30SLwq/ZH9jiutDzGqHYPWpctGVBhjNE1627fM/f6FH3dQ0W5sKcZyvVXPlB3e/llxhciTdOw2srZsGGFMvJXbOZtqrqGb1+RjOpKHyOMa8Xwt/rsb09Rli77Gqcc8je71wOqFCdHHqjeqnrssjkb6SxRRq2vVrScQVV03FIgmdADAynhndK0emhLU5a2G6XseIfb692hVA+1Ye09ekwZDGt/so0yanLUObj6k8G270okcyr8h96dBudqXZ+MVJQZaaNMym6btd7Xs9Sfmqh9iup/Naw8Zx9l5BGRWTowTiUmko3Fkmld89W+z5B8zcvnMijntDFEOVr7WzaQfBtE5SpqOCHGyBwbKZdyDgptC15WnpcnuaJF2sNFjvbVLRmUpVOeBii/rPO+bhPrEZPIR4MMPVK7O2raSZlU11OSa7pdWaNX30vaF/+GWJSlD/Qpt9d9Jg65gx6oIZxclV/C3adkL2VHeIHkqp7Q6Hc92TQ/fs7YQYF9Q6YuP+WcACLYlEue1qPsIHfW/v7WyMf7jV1xmyh8BfSwRusLeIasfPIhUa6zR3JdM/j9DiAa3ooA7kCd0QklxCojpCxlNNSh/DxhUMpcvOYWguJM8NWPJ9/z77D3ltQHCmNSPjSbVqg5yC3OW4AsLeZ3/Ctx1A7t/LbddBBxKEt73DQpO5LhLou6YG0om71DP5k7HyA0m6qbx6QcbTHQ8USmFcgaJ+gQE/un7uoGXlzK0ixNyoOgq0f89YKBLXoDTxn0R3wdXJJE1UU/DMo971qCLL3D7RnuiY9z13kbFOWCblqUt4AxnJoXYLaIMrx70n7AL/iCerT9GvsQKPewCJmYZAg1AIPkDd2QB0VZSq3Bp+ydy2Ti9PLuMk7qaK4KodThGHmk4WMX5cY3LUKWuOlbk0Gjl5BZytJ6PuVhoFkg3VEkrsuSv0B9VO96vNJ+J12Vbjtl71NWId/k7tjZAcwLT/OUpVAu5Q851oJzUgVddGFENp3aoRBQGd4lHnZT3mAVshTFtcGB9bocuUD5Xise5SOaB8uAzfjTK4pmqXcmyss9z6o/UmObKQ+3DLmgOa/vpqDVY65Qlo5WYVN2A8Nyb3VPIMH6U0Q//EqO3zD+c9bTXsq1LA/KGnbcCPDgVHKJsvKgUpSbs4MOsibgWtkgx9vq5sv/WeOsqaTYeDhkFGIv5UjLkG/wQ3LgwDkjOY4KZbBvpTiISTmIsXEOmqbq6oM4nv03OZ8o7umtTxjeLKD803iorsYhN8q1CrlkKL/3D3CzFWYohx8H0319FuVQ9tYBJUQFwswVUzPOBa6ubHB2roZ9LL/8fDZjZz83jrHCOOWllh/lhRq9b2FFkRHqHESqP0351ZbA4o13MCj/S2NxqUzATnf6hW4FOHj8HJnwc0F+GRyqNrPtoFzF8qi8RStFNJa9LEyfc5uvooxekigrgaI8H1d/zrozOOW1idM/Ul7/iWrI67Ep5X9zbHP0Vx9fYQflMVYh79AKLaME3HCsOcroS1DdWU15sY6JeBXXO5dd8JEeexH6Uf5/axh33oHaKI3S7KS81SLkbZqQ4c6rUSYp17qI61O8VZSX6VjrwGDu5AwhKa+/Qihc/v/s0pqT2BesjlNNHPZRdrcWipOW6xzTAGLW40xSRl0LCJuX/yx/bOhZnqK8/hChZsDyaQzjGng6qGMf5W6WGOf9U69/18dlcuiVRmuMy2tZd86m3Tj8Zyl7fk/LdmIDvMemLEZ3jvoG2EL5VSuQr3fT7X8z28YwRtntJ7Cy2ISiPBOMWizXHuQBOp/KdcQMsRSHsH6G8eZEpdUQ+yivtAD5ewMJtsvYK/PGKKNHwPaXA5+SlEHsZy/jxnWB/+9GTcRlbo5yHl6cr2LzNSst36S0msSgvLkFlOFczFjXR4sIIyfnvA7WzMxThg66dI+k3A9EBBk3BmHOy/Tyadn6tLvs/uVPJZJv/qNemLDuYR92FfIJY8mew9hxjJaBTg3SoczMaolUfY9ra8a199EGtC+xsq6k2b1bVow3Qq6xj3Kyi0G4pQb3Ufpz8x+c7r0eZc9kHmUHcA6D1D1H00MVttHyHexgZyC5Lr7LPsp/uAQ50fgmvwxNg0uXMnr0PocyCP7As37kyQ8kNDv7wv7GBWfgns4qu1oOvzdObrKP8lEXGGdNdhi/AQhk3PJwgTLjfMAKylG45KKqY3h2Y3sqLSRJZcqX6xMqoJppH+UE85A31jVzgzBw5RRXKKNvOZThmZn96I5XgLnR+UyMUwr+62zyGtWtc9jxwgVetlFeY5Zx2lPmbuALvpjZfq5QJk8vwJQ97/BtOb88lc8yh3poscvn1J0qdNJGC9sozzQ56y0xfQwGPPjvOzcXKKM+RUzKaC0oo06O+AJUDaA9gzkVjX4net2kKu1rG+UhpiD/Fmj+Dn1hB6vcXKCMFrEpPwHnCmLlEUZNL7rTA8+LzEUieQVqt1Lygm2Um5lgnBPh7sotiMTMONJf7GyIcqUkJmUi6+oMSHobDc2Haap5Xh7zehB+UQ3V12CWbZTd0g1DjvNz7Ra9iMSprLkBSk3Au7mGKCP/LCZlmCgnZb9YYcI0JDyZq3IywHVVhg7x2ePlTnFQ6SM15fPrVepnhME6g4zvhzuQi6J/9OS3ZeGjg8fPiDlRrOthI1a+RCQnPpCxcvozoW99W0gUjpa/D3hwr8savV+WC6cpRdv1okXlmmwEwfPGIB+2cNhIzT91u9ejTMx0mHLTO3od71I7oQXK3DASrBD7qQsP2kfZp9BQ7pA7sqA22ZYpVzvLoszKCSKz3ZRfcetOB49I9w+HstQNbaCMV8A0GIxD1jQozypl1CGPRRm9o9ntXRw6wccMgj0K2J7AueQBOMPA3T7Kz+lCvtkTWdWQXKuUgWVP7Kp8X6PXe2Bmmq6UgnMq8BiMN4pVxrNFA/soV76hAzmDE+P07D3rs71/XLly/ueVY7z17tLpouY9YvQpO2KZlNFk7pB3DVr3USxrLADnDmClk0E6eyjTNr8qWs9MIqw6Ng4apbkL9bJma8Xwd8ReD0b6lFHd60zKqDdnct1GbILAayDzQekpxio4zmp6xkbKjbX3n01jXOI1T/WjMImVdRdy2WcKSFemeyEjlNHAYiZlVHXOLYabOpSXsgB/PVY2juGYuJOObtlCWXuX7XHGulMP1tOzQP9GHaJU+ysvxwyA5suWrAoxf71nibNuvqqi+uT9xL6QexufpK37I3LPWYNAaYVBkQ4/5HKlZcV6sH+mloxaBpr5iIz9bH2ZG37PGPPox0VtP5yclpZ67GDcmjdHPoLskm/wwk1JJ9JSju1ZPbN7ZaNXOZwnu1RH/wct0aCsPhLFg30IQxYS0vZMsvgWp7p1f3bLc4Kjjl7kUi6somr8JLvlOoFRb3jazcWszjd/jN1Q/NqcvjV3V89fwOrKbFfiLyjqagp3Daoz3XQYs90+wdDAmLGNh/kPegPSfGazVwVDA/Lm5r/soxZUjzPtuOoCoRG14kbEDxJrdQOZbSIFQGN6uoiH+SIIbvleYLXIrif4GdREbtSsIFIenANOMBtECHqG9Trf0c78qE9V5N4pkr22lCJ+ScOEtNd3cnjPelFPgc6MFrmUaLtIgDOnCYXmISdUEtxMasR9s5BTfQU10+qVbg7yteaCmQtq+KMZyBntBDHXYhomzvu81FrwclV9Uo3uR2skYLmuKuE5RiBvED9ZYk3N9He1Zo0VmCyr325tyDsaCkZ2qMtW/hn5R/sKPnap6Rz2FuLEwQ4Bx061WXCU8rrTFgkb+SGo+oCZnyeezcqVsi79HD1J+HpG9T9XargiaonUuQAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": -1,
          "bodySize": -1,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 0.16700000492669642,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 3138.286999994984,
          "receive": 0.2640000020619482,
          "_blocked_queueing": 0.16500000492669642
        },
        "serverIPAddress": "",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [],
            "parent": {
              "description": "Image",
              "callFrames": [
                {
                  "functionName": "",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 155998
                },
                {
                  "functionName": "t.exports",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156159
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156736
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156794
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156794
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156794
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156794
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 156794
                },
                {
                  "functionName": "",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 158366
                },
                {
                  "functionName": "t.exports",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 158417
                },
                {
                  "functionName": "",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 159455
                },
                {
                  "functionName": "i",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 159486
                },
                {
                  "functionName": "t.exports",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 158853
                },
                {
                  "functionName": "",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 159455
                },
                {
                  "functionName": "i",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 159486
                },
                {
                  "functionName": "e",
                  "scriptId": "203",
                  "url": "https://discourse.gnome.org/assets/vendor-6298e12c042d341b1c8aa26fa7c82ff8866b7acee80cdea5b8c6f37a4cea7f79.js",
                  "lineNumber": 0,
                  "columnNumber": 159616
                },
                {
                  "functionName": "rerenderWidget",
                  "scriptId": "205",
                  "url": "https://discourse.gnome.org/assets/application-9ad15bf98c8e734b8427e1347c17dd96bb7fbd99faef24e8646aa75bd3a5d6a1.js",
                  "lineNumber": 0,
                  "columnNumber": 1055574
                },
                {
                  "functionName": "t.invoke",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 488843
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 487851
                },
                {
                  "functionName": "t.flush",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 489858
                },
                {
                  "functionName": "t._end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495254
                },
                {
                  "functionName": "t.end",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 491810
                },
                {
                  "functionName": "t._run",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495782
                },
                {
                  "functionName": "t._join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 495567
                },
                {
                  "functionName": "t.join",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 492518
                },
                {
                  "functionName": "f",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359062
                },
                {
                  "functionName": "",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 359286
                },
                {
                  "functionName": "e",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29448
                },
                {
                  "functionName": "t",
                  "scriptId": "202",
                  "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                  "lineNumber": 0,
                  "columnNumber": 29772
                }
              ],
              "parent": {
                "description": "setTimeout",
                "callFrames": [
                  {
                    "functionName": "",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 29981
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "fire",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28543
                  },
                  {
                    "functionName": "i",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 27739
                  },
                  {
                    "functionName": "fireWith",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 28507
                  },
                  {
                    "functionName": "ready",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31473
                  },
                  {
                    "functionName": "q",
                    "scriptId": "202",
                    "url": "https://discourse.gnome.org/assets/ember_jquery-8e338e1cfe17986203b8367e20408d23399e209fb3a0d86cbd8f98e499a037a9.js",
                    "lineNumber": 0,
                    "columnNumber": 31255
                  }
                ]
              }
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "image",
        "pageref": "page_2"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.048Z",
        "time": 2693.150999984937,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/system/45/2_2.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 720,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:37:36 GMT"
            },
            {
              "name": "Content-Length",
              "value": "1242"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.026879"
            }
          ],
          "cookies": [],
          "content": {
            "size": 1242,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAQAAACQEyoRAAAEoUlEQVRIx61XXWxTZRh+uoKO/wHGhB8janCOC/4SEAUmXCAh2YQE4UqjJqKGeGNEb4gY5c6fSxM1JpgY1GAUCYTERAjg+BkOtvM+56edG27jtFu7lU1WurZs+7yg607b73Qj7Hw3zXfe9+l7nvcfmOCJg9P5PZXnjPCwE4jjgZ8YuJihe6CiRImikvOcNTXQayUheWgqKoa5+L6hFVQgPv+/2aehcjedsHdLVlTB6ZWVsbwGMDwvVqXyGtonixsBqeMl86SzqglZAAqNMA/lbB23eojbogCANCKBm5vtP+WMrDMw7Aecgh2UNyRKJYqW+XI42IEBKLR8VQKt+KaJIfSgdYa8LZ2iRNFgrY07OuAkwkHZJ4n8Ryd40KoynjAOyI0iOpQoNpn7ZJG5lF9LMn9rcxORLgbOYBgtr0lfAUBazktYhkuBRYmSrBjSVPTWsWqLaFG4DNaJWxC9kzpSfHPNqqHXob2wFvDS/QNr/+y71mmJceg+hGfxlymBHjY+UgHlJcSAuZxX8tk27i5PDhYTIJ5fefkTXOgWunEURMs2w/Vx2SQPaa0JIVscIyNQaHlHUj5KE95SSVx2GKXAAODCnMdzPhyOMslOki5THPWROWJO69ZnYxKhat7QKnXwU2dronpwcaIm9CK/ZI9W6rq5pFtfmAD3Y629p7iqrWLsQ9NoDXIjGzSSWe4Rb0zHKmNLelZ117ce7PrG7tLweYpLrYLakEQIzjNs0PB91Tzk7IqsiT0Wm9MTBH+WNumTtIxqHdghq82Scqkg4FaJazUykpB2ucxPwBFdvOZj+nAikNaW37bp8iM1cS9jaC7K5lbS3BrxKcFRWHuZKaMbLQ/dGa7u923H1nr2TwJa9K+lbdFtH+gEnLW8VRa6bOLeDNf0+7Zjc4MMlNGegJCUuT3qyzVf5d3yhGTKVrQv2it0ETKM9ko5LtqWkPvtgu/zNA26HNTa0MNNVklcp2DB3MUBrbVZ9rODV3kIsUDs4fgj0eXWRnMvmzSifznVhZ06DQvcQGpkz/Fdqz6yLr4sXhUPejLsLOz3ZKQ0DdjALf9Mz+ak4miv5E6S48kxJjvEeuoHnW6Yj4uj9XZMjjp7utf3rrWelVfkuPRrpS5woY/TI+BcnvH1eIb9vMUBZn0lfjVnutD6vKeCH0q6sIbQ89Es6JfFNYdKhlreUhgtbQMOpM6nxE9+UHBlm1EIriAwV9CYgmGhyXza8LpyAO0PydEH6+b580NXpSdU76Czkr9NEfSxjhkpLyHNsFazZQoIuWbVhDDiZXsQDrhlbGfJnSE5wStM+5UuOcvfi97arLWRLG1JzeBmOnmxbu7nbD5qvsRGDfAf3C7zOYcfsC9/53AjkdFF9hBMmLVsFiWKjfaO9oo4FC7A+kxT4fYLFFw4QXs3HVGi2MwXiJT/ktQAZzVP8ltnWWsuhP6F/XrJ+J6VnZHcOHcEoZU8xp/sFX/77zL3xspWZGanK5V3uXtebrNwzrvN58Y3sCZkZ96dYZffwPSNSp6Sm0VWd/HJ2IOvpHFwAa8XOfEi507BttsLK8jPGWWUEUYYYZSuHAhjYqv/ByEMU5cxxnELAAAAAElFTkSuQmCC",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 776,
          "bodySize": 1242,
          "_transferSize": 2018
        },
        "cache": {},
        "timings": {
          "blocked": 2467.617999998484,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.12800000000015643,
          "wait": 224.76200000888093,
          "receive": 0.6429999775718898,
          "_blocked_queueing": 2.896999998483807
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739991"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.049Z",
        "time": 2705.417999997735,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/abhinav_srivastava/45/1377_2.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 735,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jun 2020 12:36:04 GMT"
            },
            {
              "name": "Content-Length",
              "value": "2796"
            },
            {
              "name": "Content-Type",
              "value": "image/jpeg"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.025436"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2796,
            "mimeType": "image/jpeg",
            "compression": 0,
            "text": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQIBAQEBAQIBAQECAgICAgICAgIDAwQDAwMDAwICAwQDAwQEBAQEAgMFBQQEBQQEBAT/2wBDAQEBAQEBAQIBAQIEAwIDBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAT/wAARCAAtAC0DAREAAhEBAxEB/8QAHAAAAgIDAQEAAAAAAAAAAAAACAoGCQAFBwQL/8QAKBAAAAcBAQABBAMAAwEAAAAAAQIDBAUGBwgJABESExQKFSEWIkFR/8QAGgEAAgMBAQAAAAAAAAAAAAAAAAIBBgcFA//EACcRAAIBAwQDAAICAwAAAAAAAAECAwAGEQQFEiEHEzEiQRRxMlFh/9oADAMBAAIRAxEAPwBoDJfaziXT+6+muAJLRYHMte5/uTKiVeS0SyM65Wt4kwYoHsUdVnC/401JCDkFRj3Eaop+ysKZ125Fkk1xRnBxmoyM4pQz2K7V9CfLP3n3XofL7nIwcDrNEocxRKbbU3M5hW10OJrzGLGGlYYqyYH/AK+cb2gBctVEH7JaWVVQcJkemIsyqCP+0rEg5q1vCP5jvHNhr0al0lzL0hkV1FAqcofL0ITcc8FUv/Uyjd2L2PlCkP8AT7wIrH/UgGEonP8Ab9xjgaOYoy6j/Ky8gbG/RazmkblnbVVYqSkrc+a7UtGtimEAFRQY1F6oBS/X6iIEEQAB/wA+RxNSGBOKusy7svlXbILEbJku/ZboUP0g0mXuHuKrbG8stpCdcbmc2L+vQIP5hNEgX8b9NUhDslzFQcFSWMVMVpqJn4UV8oX+RDwDp/HnorvehWeAeSmG9ganNdA5BoDll+1X5h5PrhLWauOFBIKSchFSbl8JWxjGOoxcMXBf8MoVL1U5GDXkw4nIqn+Wre8TWX0y5zte3aw4nCv5WoZ1bpeGtdsySDdIKtlJyKg5FQi0a0VTUMxO7aNTpmARbGVJ/qQ/GGM0veK0Of5hp+szrGrZVmGoafZ5RcGkZXc5zSevU3IrCAiCSDZi0VOc4gAj9oB9f8H/AOD8nNGDULdJKsFXiL0v6a0cuq3flcHKl+iogoZJYqpvr9pfsOQxRH6/QBKP+/Coor+Pe2+huF9iru68+WmMjr3UKzaa5U07tEq3qnVv/mDJFnMyLSEVcJtSvDg1aLfmEBIoo0SFwm5KUCfFKg1IOKa082f5PNpYZ5fG/ol1nZF9T/5OiequjcIx99pq8QKSv2f1juoSsSukuBwErtvLshAog3O1drFVXRbKU76pw/XdMV/yBeCtp9BPPa15jzu9nX+w0a8wupVTMWVlZ1yvbQnHuf15GuySj1VNkU/6zpWQYuFjJik/iWhfzpJrLiZVODmmYZGKGDzyhrd45cEYbw+9x3b987yvsPPb/c805uyBxtFRoz+2zsiKC89Y3UnB1Zs0jSM2cUsDqwNDunEc4O0FRI5FBGOTQvytXoOYehfrMy1vmi/9t7j5usK/AsSa3zvC+ezfKNBvtfnQWRbu2GnoaVZYyViXZ2UkyXSr8kmcBSXQkGqaapEVVpiM0GU947+QPmTCP4OB6n4dkfQNtGxstnlm9Yujaswo+QIvRWRG0xmTNxZx7tRFNJRWMTkWypSuWySgPigicizciej8pcY7FDH5pfx+vL6e0J22vHqfyl6I7ETP5pzTeecH0OnPqs2emi3LM1hmmTeck5eZTYKvUXxQArJsm5SQUWTVKUExkux6WoCgdmif8IP46lZo2AadbPWPkvLrrqd8urBtm2XaU1ir9Yssh4SO/Revl5Vk6VQ/JNvVFVwaJqqFTRj2qonBRyqknBYmpC4pvXWdSo2LZ9ZNM0ixMKrTaszB3LzckRVVq2/IcqKBBImUyhjKLKJJlIQomMZQAAPqPzpbLsm6XHusGybLEZdVMeKKMdn79JAAABJJIAAJrhXRc2y2dsOpuS4JxDo4F5O7ZIAzgDABJJYhQAMkkCk8vYzqvQ+Q+NeGNT3PoT0ggeseh17Palcz5u6uieZqG9RI2hnssrYnaFalwQbxKEjBIx0VHNyGFWWdCsqJiHP8t3k2a3TeOr2y0YY49t0ztFCUDZdUwC7u5Z3ZmBPInsH8QFwKo/hvTXMtiaTeby1k0+56xRPL7WUqnMsUWJEVViT1lSUABB/y/IGopBdVWLjfkHz79aa36GehllyfWuv6RiXYvP3ZnQlT7VzqiUucTmlbeLBevwSCppWObMGz9o5YKFfE+pWz2ObOweR6GfcTnFarnrIrinQnc8B0NyT1z616Z2T3QfPEPQqw8Z8LYPx7a6hzVRblV2DNrI1BeffTNPlpZBd3HlmJV8/fFOskICikyIIppA2MMAPtKcEEtRzeTFinOhPO7oTrjnnau4XXTldKLyEzTeOis46HXqbmui/XbhBPY2sxa39XYEiuyOoiwNmrtY8I3OVqCX6Mg8vnjaa3ReWj0F3wRSbdqHWGUyBvwRzx5o6EPGykg8wehnIK5ByzzJo7nksLWbpZesmg3LSKZovU6qHKYLLKjKyypwDH1spyccRyxTXeSarRNrzytabm9hYWenWhkLqKmY5NVBsuKZzIuE/xqFKoQySyaqRyHKBimTMAh9Q+VbfNi3W2931Gxb1CY9VC3F1ODg4B+gkEEEEEHBBBFXW1ro2W8Lf0ty2/OJtHOvJHAYAj4emAIwwIII6IxU+fNEH7N0xcplVbPG52jlI5SnIqmoQxDlMUwCUQEDD/AIICA/8AofOWrOjB0OCOwR9H9H9Gu7PDHqIWgmGUYEEHsEEYIIPRGP0aWe7X8mej+huROYeQpXn7i3oeB50kJlKvatoPUGlYBpdeR+xJtDPIJSFrjr9UXTNZ41kot0s+ZG/TYHTKY6aJ2l78j3Dsl23dqrq2ZJIxqj7ZIpFQeuQgc1R0Y+1S2WDskTd4KZ7OaeJLYuiyrL09oXNJDK2kzHFNE8jGWPm7K0kcka+pwpVeCyTDrIfHQ0VD8qO39HrPD/JevZD5ycw+fXGfS9e6iNnWCX3Q+jNN0yQq72WlWteeDZYxoyVZy7yZkDy75+ou5VFz95Sn/wC6ZqGcfqtPxkd1zbfvJzpirRnUXE1Lofmv0BxV2n1zZuw8jz3c9ivXKfRmUW2TSazElG1E1djXjUzeABgRRivHABwZi7TetztVlEBM95NBzjqiK4u8yOrsC4l6A4aZ4RxNz5QdgeNCmvea9J6PuF8nVJVv+lbJ2yqy9caGkHgM4+IasmaCrJqCYqlN+IiYFWvnji4tltK7tJdW8JJJ/EYSxxxqh9ki54K7uw9ahsMXCSt1gICQwzLyzbN0XnZmptG2XhiOrAjlmleRTFGWUs0aRxt7XKgqEaSFe8lyMqWPGDJvGsWce0TIi0YtU2bVFMhUk0U0iFTIUpSgBSgBSgAAUAAP/A+UR3aRjJISWPZJ7JP7JP0n+60jTwRaaBNPCAEUBQAAAABgAAYAAA+AAf6r1/Fr2rPhRVQPtd6a2Xyf5NqPTtZyaD2dSV3qFymXpU5a3NLIqzlYewvzuW0iiguKSyasQ3APvQVIJFFAEv1Epio7FRkVI7bjUX8uq9O9nwOZ+tnR9gaXLX9my91D84ZXEwqkNkvFtJfvfxy0NWWqzlys/sE+vGtlp22OzpuH6TCPaNmkYzbGbLCEns1LddCrpvj0tZ8KK//Z",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 777,
          "bodySize": 2796,
          "_transferSize": 3573
        },
        "cache": {},
        "timings": {
          "blocked": 2476.880000009909,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.057999999999992724,
          "wait": 227.8060000070352,
          "receive": 0.6739999807905406,
          "_blocked_queueing": 2269.2650000099093
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "738342"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.049Z",
        "time": 2898.2079999987036,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/letter_avatar_proxy/v4/letter/h/fbc32d/45.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 716,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show_proxy_letter"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 01 Jan 1990 00:00:00 GMT"
            },
            {
              "name": "Content-Length",
              "value": "508"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.006717"
            }
          ],
          "cookies": [],
          "content": {
            "size": 508,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADMUExURfvEKfzOTf724PvBHvvCIf3qtf3orPvEKPvCIP723/713PzUZfvBHP713/vEKv734/vDJf713f713vzXb/vDI/zOUP712/vDJP735fvLRfvMR/702v7z1/vDJ/vCIvzVaPzcgf724f756vzVafvGMPvIOvvHNf3psPvBH/zOUf3suPzPUfzWbPzOTvzbgP7tvfzcgv3qtP3rtf3orf745/756/vAGPvLRP702f7z2PzVavu/E/3dhfzWa/zTYPu+EfzSXvzaff3hkvu/FLtGzSsAAADOSURBVEjH7ZRHFoIwFAApUQICAtKLCNh7793730mDsI1xp+8xq1lMskjyQ1EFBS84KLJK5pYoQg4bK8PGuGWlrjvTRmhha30SLwcwdTZZxTOA25wDJUmgs7rC8GX4oeZ/qpYRRLVkbg4i4nIlqLXt8VRDJHdT+lz7fPWN5hPUO09QEaZHUEve3qURzk0lOBPTXUPE40x6gi+V/+zmv3qxc0Yb5XXELPC13rcjA6TeDW27U8cOpuIaRjN4a7tnOAp+5usQBPlKAHWu+AYLEE8sAhNmZqsIjgAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 788,
          "bodySize": 508,
          "_transferSize": 1296
        },
        "cache": {},
        "timings": {
          "blocked": 2692.5360000180754,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05699999999995953,
          "wait": 205.0279999929108,
          "receive": 0.5869999877177179,
          "_blocked_queueing": 2269.633000018075
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739991"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.049Z",
        "time": 2916.6590000095307,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/user_avatar/discourse.gnome.org/jfft/45/1152_2.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 721,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "X-Frame-Options",
              "value": "SAMEORIGIN"
            },
            {
              "name": "X-XSS-Protection",
              "value": "1; mode=block"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "X-Download-Options",
              "value": "noopen"
            },
            {
              "name": "X-Permitted-Cross-Domain-Policies",
              "value": "none"
            },
            {
              "name": "Referrer-Policy",
              "value": "strict-origin-when-cross-origin"
            },
            {
              "name": "X-Discourse-Route",
              "value": "user_avatars/show"
            },
            {
              "name": "Last-Modified",
              "value": "Sat, 21 Mar 2020 16:38:36 GMT"
            },
            {
              "name": "Content-Length",
              "value": "2671"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Transfer-Encoding",
              "value": "binary"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31556952, public, immutable"
            },
            {
              "name": "Access-Control-Allow-Origin",
              "value": "*.gnome.org"
            },
            {
              "name": "Access-Control-Allow-Headers",
              "value": "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Visible, User-Api-Key, User-Api-Client-Id, Authorization"
            },
            {
              "name": "Access-Control-Allow-Credentials",
              "value": "true"
            },
            {
              "name": "Access-Control-Allow-Methods",
              "value": "POST, PUT, GET, OPTIONS, DELETE"
            },
            {
              "name": "X-Runtime",
              "value": "0.012808"
            }
          ],
          "cookies": [],
          "content": {
            "size": 2671,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAMAAAANxBKoAAADAFBMVEUAAAD98uO/6vj8+/nC6/nE6/mG3/a86vjB6vj99OYGAQDQ7/n88d/77dr459L14cn25M39/P377tz6+Pf66tbH7PqP4Pb///8aBwHK7fn+9+rv7e2Z4vf49vPO7/p93vZt2/UBBwPx27+T4faK3/YKBAF43fbv2LzN7vnp5uSC3/f29PGt5fclCAARAwD/+/C36frewJOy5/glGQ2ZwMV03PUPFgcQEAqm5PYFDAb08vDq0bHk39ry38fnzarLx8LXtonH4+2ZjIKf4/fm4+Gw3Ojx3MQtDQHHoWwxLR713b7w1bLP9v/XsYCgi3GziVTUrXbPpWjJ6fQ1Gwju6uXS8v6k1OHHnGFNFwHoypbgxaHf29ne3uEAB9CIWyizjWExIxaDgXtfUkxxo6giOjas4PC35PMRGxF5cms7S0YEFyHy2rmDbFL758nPz8+3m3zS8PqE3PO+vblINyrI8f9kYVyh3e5YS0Bcf3xTKg2OjYeZzNOVmJfM7Pe/k10mJxm109qUaTfY19UHJzzt0KWtdT3Yz8VIPjeTXyLm2MdjQRyzsrDiwonj2tGOf3KrayyCMwVUPy/evH90Y1jOvq86OTcMKR7C7/5XOBkwXVEiTER9RRiJwMz97s7Y089JgYQcRDGHuL9clZrh0Letp6NBam+PhnzDlFDmyaJzwNCgcyaNThl1KAGQelVDMCNhSDGvhUgjPkigXyfr4NDMmxgLJ8xDJg7Hp34FJWloNgs9NC8FHAXE4OceEAiFsLZxmJg7RycXNh4eKCydd1DHz9toam9Ol6t8USl91erNrYd3YES3wcqWRQqivtLNoVpuk4rYsWNfHwICFce8iUmqm423eQk0Us+bpr/Cw8nHys/F6vj11qiHo6GLknBx4f2vk2w+alSIc2BxVjwmVVt6hLxVgGGX1edsTyK7qJrRo0OkXA9iaGDdukLiwljGjhSZrrGJma+tsMVHXTyssKYQOc0gTaQZP39NTlRk2fS+hDLUrVXDs5kCF6PN1u+XoeNqfMbEweIgAAAHKklEQVRIxz2Td1xT9xrG35CQRXZCBgkNgQxJGAlhBggrJOwte++NgoAyVET2kGlx4VbcG1erdc+6tUo/rbV79/Z23X3v70R7n8/v5PyRb573Oc97AlovrZb0WjbkuOXgq3g31UPoIRRG8Rg8Do7i4OCg23R2hYeCCgGfQTnpT9kQ7N/eiGi9Xujh7jHzIeMN7enZcPasOwDI3oPX4Gt+Wdl6UCBvIdUDbsQwWTwODUehIDy0ZwUV0X8FDLWximSzrF2m8KMKU9E3iq4aZxaDTrNG8fQMLBhUAFRhtI0NGR0CgRDnDX4K8BCCAtw3rTUzsShW3IGiCs1XAOaNzMmYN4EcdwEqADyoHlSq8MZa85skCEcnO98i++L/3ph5XImvH1CFQouC6r4y1sx0VpkZFAeM551ObDhduNvqTf4zyX1fAKHFIhRSLUmBgcNJSUmJV27xaDhe4uPQhtBDv1s7seYgEOxJX/iCwiKkUhWQGm8MdK6ry47au1LFwTnv/Sp68kbBGdBam0ZCH5HLZQF6IWqECjNZgaq5hKbDh2tjzHSK8+PxawPxut8Aq5pAsF3A+IWL531RFqBS4UqsSpX46eXKnS+dgxkUprEmmMViPQMC2Qaxtgv2C7bkuBLAKsRUEBPMM8YODDDodAYPR2eiO+fEr7BgSyAs2NraLizY2pM2AMxnCv0CgLqSyeTR0OI5NBqdjqOx0EU7cQpE9pgw3n7Z5vUA+p4V7npQJMaweHQaBROHQ+OwGDgcbeQULFokEonssQkE+/bdKMPtgpkVqQFdsSxsOA6JQ+fRGSw0phejMdxKk8nLQQayhg8L8vUzOiaLwcM2j+OgIXQVDke/8wjs7DDe3hbDbUrPywBKd8YP5w9GqYIRjlaPYzCzs5PiKfQtP+chGmmR1X1Z+6WNpai/qoRXM/krjc5MLDoOx1NFRSWbaYwtn7+hkZB95Ccbtu4AWIXiwGBGtsqMolvfKxwHm1D3LA8W2dktwei3UlZ77y7ZegHRqwICQJ8Yb1ShVxZFp9DNzrrk+Jrnj6y0VZ1hYem727dvB/CN9osGaM4INTqj/anmQpMLMpLi5+o+z8sDssjKL+kMe/9iSTnZG5USjf6AsOqjDF2gmclkstDqmUZdbPaxU3ngRloQ2YnCwlZ7e194Z3E5Rl+C93ypHlUJybpA9KRMlTE0OVkXk1D92zOQ+GttRCkp7yA+ZXFnHNb4Nr/oChC6tx5C7qpgplmFfsM6/eTYZ/uAyI/wQvYIf2vJksXeAXAeSi9HT/pR3S36waMTyJ1Bx1FwsfNt/z3zK0iJfIm/l81CZ0rnYlF6FVSsh+rS6FdDxUJ3i3tqfkZWDQO1HnxP+N1/zjwCHylRjnASQWS3evkG2aUNFRBwua+vqH4y82GmxZJ5YK+uJmYu+cH89L/P/AucnJC7i7+b9m3vqtJPtm1bDzJZ9XThd0Omrm/XbXqYmflwbN3x/qThwYo1938Hp785KREucfO+WLJj68ZjFdXVx7qn9VVta0aOf/Pg8YGDB8fGxuLXTiS0Nf5yH3ycnJx8pGpJZHtk+vZIr83burv3dUePNxeFiG/9fSIra+XxdT2hNRNXHA2zLzqAiOFO0paWyPLIcm36jo3dJZur5xPaOkJMaXsn5rLWxsbUsU5kTXG5gpxGiLDiS+WRLWVu/mXbt+7YF3Hdtz+kcVeISbxzIMioO5FWM2ASGDQCV9MsSCR8qZOPT0uLvEXSkn59M0kivf7VvZzZkHqT2GAI0vSKNY4GLlusEewyBYGLC58oVS7lo+NSll6m9eff/CmqNycoyOQqFrvOGvBcR64GzzWwNc1pYnCRq6VK6VKpeikxopzkFcG/6T01kmtlxQbXIVcBFwmP1whMfWka4BOJUh+llEgk8r20XhL+l3dmXXNygkxpYoNG47imXsDFY7hGkNYaxEW0UqmWy/lEdQQJwavrc8W5uVZjBHMNa/B4vCN2sTWtvQKQy9Vq5Msnyr20/ulXc3ND/nk6NHtnsIHNRom5aWI2HgVBEhT/IgAfpdJHqSaqlRFat/c/+Evlka6MxKM9+/v3R6m4bC5XI8ajJHi2QJB2rkgARKIaCy0lupUhuKOj+Vw4O2doV/hobf+9LWy2owGBSOzG4vk2B0QTUWq5j6T8zq6vp0YEniOjo4XvFhaOFzel7s9yZDvmNNYH5YRUNlVOVhoxms/nS9VlT/q/fbo/v8HgqNlDLWwaH508Utza9aBOENI3XVR8uPXctefNScDnu7i4ED/+MuHAwbs/nvzxaZTB4Fik7zt8e6o2Ibyo9ugwre3cT0MdHc/FV6+9RLt0kUg+3nfowMGxTbe+OXnyZPI/1jUUNx058vWTV+Hheyo/PZpY+AH36h/XXrx4EQ5uSBE3P3rZf/fucVf28Pc//PD9057GVU23a3tH92B4eO14yM/NRa1/TE/V/w8+LjH/94uH2AAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 776,
          "bodySize": 2671,
          "_transferSize": 3447
        },
        "cache": {},
        "timings": {
          "blocked": 2704.9320000025778,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.05299999999999727,
          "wait": 211.03100000027754,
          "receive": 0.6430000066757202,
          "_blocked_queueing": 2466.243000002578
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "738342"
      },
      {
        "startedDateTime": "2020-06-09T03:24:22.050Z",
        "time": 3134.353999979794,
        "request": {
          "method": "GET",
          "url": "https://discourse.gnome.org/uploads/default/original/1X/dc9ca5f6a714c30e8c9c573dab03a6dc0cc79a89.png",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "discourse.gnome.org"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            },
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
            },
            {
              "name": "Sec-Fetch-Site",
              "value": "same-origin"
            },
            {
              "name": "Sec-Fetch-Mode",
              "value": "no-cors"
            },
            {
              "name": "Sec-Fetch-Dest",
              "value": "empty"
            },
            {
              "name": "Referer",
              "value": "https://discourse.gnome.org/"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate, br"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,it;q=0.8"
            },
            {
              "name": "Cookie",
              "value": "experimentation_subject_id=ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040; 9c753be85879442b31cb2a28db04f818=a57fb44eab0668f4538dbb1a371d6972"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "experimentation_subject_id",
              "value": "ImQxM2FlZTY0LTBkMjMtNGQwMy1iOGU2LTRlY2ZhYTBjMTNmMCI%3D--380f3a82bf8b070d615271dcb67cc49eb86aa040",
              "expires": null,
              "httpOnly": false,
              "secure": false
            },
            {
              "name": "9c753be85879442b31cb2a28db04f818",
              "value": "a57fb44eab0668f4538dbb1a371d6972",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 743,
          "bodySize": 0
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Last-Modified",
              "value": "Thu, 28 Feb 2019 14:46:52 GMT"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "X-Runtime",
              "value": "0.004085"
            },
            {
              "name": "Content-Length",
              "value": "5107"
            }
          ],
          "cookies": [],
          "content": {
            "size": 5107,
            "mimeType": "image/png",
            "compression": 0,
            "text": "iVBORw0KGgoAAAANSUhEUgAAAWUAAAB4CAMAAAAdZBN4AAAC/VBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+G1NxwAAAA/nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8xMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/lerFcIAAA+nSURBVHja7Z15XFbFGsfnBRVQXMBdAvc1V8o1l6tkbpFLlHZRSdNKTcybUmqaN0W5tlkqkmWumXqzAsOUolxQU1Ox3AjUXJEERUGQ7Xwu8HLOPDNn5izvOd6/5veHH9+ZOXPe98t5Z57nmWfmRchmeQUt+PrkrRwpO33fquFeSOghaMCX9ySgmzPcBBO7NeykRGtnFYHFVvn/IDH0sQBjVr7BUetXT2vArBt5hwVZKmoqsJlS0w3F5eDywhmVESUSW28IcGY0Ol8hN0lV+YbE0wZBzoReKsbkbtODxoQSLuVvBDrjansfonuTMi6KuZClLYKdce0l0B0i6urd5EOWlgh2hhVIontAeBuxGpClkQKeYcVQ7BrBaVELckEdAc+wUih4HXGV+1ktyt8KdoZVn4bXDteNl8SA4ZLavJecmzq3Bi7oTsNroVQ5UrQg3/AQNNmqGl1YTuh4XaVoFE2vmlLVS/NRfk3gZKvWARnRbqVsLAXvJm6+UgvyX+JR5mgrhvSsXDaGordfaV0pQ4vyBIGTrYEA0j65cDhFbxnPkCaVJIL4HG2DmOSw5WMUvhFK86kakHNbCpxsueVAThNlH5py/Woq7TdqUA4XODkKIDitlYuvEMW7cPtjfMjxYrzgiRwbDjDHEeURL9VlLuSLtQVNnjoRpK7JxRNh6W1sLaP7PMg5HQRMrh4h5y+5uHYBKP0QN6/Eg1w0XLDky0EkVJQ45PLtAD0MyOWwIZdMFCi19AuEVaxQfpwTl7/GpjxTgNTUWxDWXVz+lVx2vhpsfoT5JAvIOmoFF0ov4fL6FctOeY8TzT9iQC4Uw4Va1WbvT9nejTlkJIJmXbLLSvIHkxePYlgXgwVTlbqWD63FSnbKUABsNWzYPL5QOtSFutr7Lg35TEfBVKU+uRV0wuSSA5hYGNm2RiP19e9RkGNEOq1aNf+S8WQ3rijq+ECZxQwkufn8BRmnBgukDM1gBC3eVCKXRnrokqn0kD1bRO0Rikpwym9CQmjpS6/4BJQETIMA2TPZXFHyvKFem+9xtj4ypZZAXDYGh4SsvRoSEuK9ODO59OWYTAndAl/3eYrf/EX5618cBvt9dGrkgvGtBF9F08+U/bt4Z1pnhPaskFA+oHwaNwu9VGrG+Qhc1ijHLlyO/LKCJHQdzl1+IJ7xaBsByzLlpn97zF3dS0LENoUXBB97KaO9I891L6UcASkvFXxsphx24SwqpexfZDqprU7HwL5BI0JCgoM61RdAtSl7H36ljDL6GlA+rOOADJj2wTcnCZe64PT2t/tXFVh5lMtURrkdeJjP8a9rPXlzGjd7ds8rZvNnHe0mRu86k56Vn5F67If3wwJpb8bbp1zM9dmqPhVi+vIdwj9LunBHun3jdOx7o+pxbu/to6imutYd1/rA/YruDTTkC3voWR76fWp8+YvGZQPxUozrLPs9eQ6OvixpK29tOxOM2y+j+8vZEUb8oeKcxXNZV6+SL4pUVQX8m+y4ODGM6Y3uA4+I2l59AfQwDZQ30SLwq/ZH9jiutDzGqHYPWpctGVBhjNE1627fM/f6FH3dQ0W5sKcZyvVXPlB3e/llxhciTdOw2srZsGGFMvJXbOZtqrqGb1+RjOpKHyOMa8Xwt/rsb09Rli77Gqcc8je71wOqFCdHHqjeqnrssjkb6SxRRq2vVrScQVV03FIgmdADAynhndK0emhLU5a2G6XseIfb692hVA+1Ye09ekwZDGt/so0yanLUObj6k8G270okcyr8h96dBudqXZ+MVJQZaaNMym6btd7Xs9Sfmqh9iup/Naw8Zx9l5BGRWTowTiUmko3Fkmld89W+z5B8zcvnMijntDFEOVr7WzaQfBtE5SpqOCHGyBwbKZdyDgptC15WnpcnuaJF2sNFjvbVLRmUpVOeBii/rPO+bhPrEZPIR4MMPVK7O2raSZlU11OSa7pdWaNX30vaF/+GWJSlD/Qpt9d9Jg65gx6oIZxclV/C3adkL2VHeIHkqp7Q6Hc92TQ/fs7YQYF9Q6YuP+WcACLYlEue1qPsIHfW/v7WyMf7jV1xmyh8BfSwRusLeIasfPIhUa6zR3JdM/j9DiAa3ooA7kCd0QklxCojpCxlNNSh/DxhUMpcvOYWguJM8NWPJ9/z77D3ltQHCmNSPjSbVqg5yC3OW4AsLeZ3/Ctx1A7t/LbddBBxKEt73DQpO5LhLou6YG0om71DP5k7HyA0m6qbx6QcbTHQ8USmFcgaJ+gQE/un7uoGXlzK0ixNyoOgq0f89YKBLXoDTxn0R3wdXJJE1UU/DMo971qCLL3D7RnuiY9z13kbFOWCblqUt4AxnJoXYLaIMrx70n7AL/iCerT9GvsQKPewCJmYZAg1AIPkDd2QB0VZSq3Bp+ydy2Ti9PLuMk7qaK4KodThGHmk4WMX5cY3LUKWuOlbk0Gjl5BZytJ6PuVhoFkg3VEkrsuSv0B9VO96vNJ+J12Vbjtl71NWId/k7tjZAcwLT/OUpVAu5Q851oJzUgVddGFENp3aoRBQGd4lHnZT3mAVshTFtcGB9bocuUD5Xise5SOaB8uAzfjTK4pmqXcmyss9z6o/UmObKQ+3DLmgOa/vpqDVY65Qlo5WYVN2A8Nyb3VPIMH6U0Q//EqO3zD+c9bTXsq1LA/KGnbcCPDgVHKJsvKgUpSbs4MOsibgWtkgx9vq5sv/WeOsqaTYeDhkFGIv5UjLkG/wQ3LgwDkjOY4KZbBvpTiISTmIsXEOmqbq6oM4nv03OZ8o7umtTxjeLKD803iorsYhN8q1CrlkKL/3D3CzFWYohx8H0319FuVQ9tYBJUQFwswVUzPOBa6ubHB2roZ9LL/8fDZjZz83jrHCOOWllh/lhRq9b2FFkRHqHESqP0351ZbA4o13MCj/S2NxqUzATnf6hW4FOHj8HJnwc0F+GRyqNrPtoFzF8qi8RStFNJa9LEyfc5uvooxekigrgaI8H1d/zrozOOW1idM/Ul7/iWrI67Ep5X9zbHP0Vx9fYQflMVYh79AKLaME3HCsOcroS1DdWU15sY6JeBXXO5dd8JEeexH6Uf5/axh33oHaKI3S7KS81SLkbZqQ4c6rUSYp17qI61O8VZSX6VjrwGDu5AwhKa+/Qihc/v/s0pqT2BesjlNNHPZRdrcWipOW6xzTAGLW40xSRl0LCJuX/yx/bOhZnqK8/hChZsDyaQzjGng6qGMf5W6WGOf9U69/18dlcuiVRmuMy2tZd86m3Tj8Zyl7fk/LdmIDvMemLEZ3jvoG2EL5VSuQr3fT7X8z28YwRtntJ7Cy2ISiPBOMWizXHuQBOp/KdcQMsRSHsH6G8eZEpdUQ+yivtAD5ewMJtsvYK/PGKKNHwPaXA5+SlEHsZy/jxnWB/+9GTcRlbo5yHl6cr2LzNSst36S0msSgvLkFlOFczFjXR4sIIyfnvA7WzMxThg66dI+k3A9EBBk3BmHOy/Tyadn6tLvs/uVPJZJv/qNemLDuYR92FfIJY8mew9hxjJaBTg3SoczMaolUfY9ra8a199EGtC+xsq6k2b1bVow3Qq6xj3Kyi0G4pQb3Ufpz8x+c7r0eZc9kHmUHcA6D1D1H00MVttHyHexgZyC5Lr7LPsp/uAQ50fgmvwxNg0uXMnr0PocyCP7As37kyQ8kNDv7wv7GBWfgns4qu1oOvzdObrKP8lEXGGdNdhi/AQhk3PJwgTLjfMAKylG45KKqY3h2Y3sqLSRJZcqX6xMqoJppH+UE85A31jVzgzBw5RRXKKNvOZThmZn96I5XgLnR+UyMUwr+62zyGtWtc9jxwgVetlFeY5Zx2lPmbuALvpjZfq5QJk8vwJQ97/BtOb88lc8yh3poscvn1J0qdNJGC9sozzQ56y0xfQwGPPjvOzcXKKM+RUzKaC0oo06O+AJUDaA9gzkVjX4net2kKu1rG+UhpiD/Fmj+Dn1hB6vcXKCMFrEpPwHnCmLlEUZNL7rTA8+LzEUieQVqt1Lygm2Um5lgnBPh7sotiMTMONJf7GyIcqUkJmUi6+oMSHobDc2Haap5Xh7zehB+UQ3V12CWbZTd0g1DjvNz7Ra9iMSprLkBSk3Au7mGKCP/LCZlmCgnZb9YYcI0JDyZq3IywHVVhg7x2ePlTnFQ6SM15fPrVepnhME6g4zvhzuQi6J/9OS3ZeGjg8fPiDlRrOthI1a+RCQnPpCxcvozoW99W0gUjpa/D3hwr8savV+WC6cpRdv1okXlmmwEwfPGIB+2cNhIzT91u9ejTMx0mHLTO3od71I7oQXK3DASrBD7qQsP2kfZp9BQ7pA7sqA22ZYpVzvLoszKCSKz3ZRfcetOB49I9w+HstQNbaCMV8A0GIxD1jQozypl1CGPRRm9o9ntXRw6wccMgj0K2J7AueQBOMPA3T7Kz+lCvtkTWdWQXKuUgWVP7Kp8X6PXe2Bmmq6UgnMq8BiMN4pVxrNFA/soV76hAzmDE+P07D3rs71/XLly/ueVY7z17tLpouY9YvQpO2KZlNFk7pB3DVr3USxrLADnDmClk0E6eyjTNr8qWs9MIqw6Ng4apbkL9bJma8Xwd8ReD0b6lFHd60zKqDdnct1GbILAayDzQekpxio4zmp6xkbKjbX3n01jXOI1T/WjMImVdRdy2WcKSFemeyEjlNHAYiZlVHXOLYabOpSXsgB/PVY2juGYuJOObtlCWXuX7XHGulMP1tOzQP9GHaJU+ysvxwyA5suWrAoxf71nibNuvqqi+uT9xL6QexufpK37I3LPWYNAaYVBkQ4/5HKlZcV6sH+mloxaBpr5iIz9bH2ZG37PGPPox0VtP5yclpZ67GDcmjdHPoLskm/wwk1JJ9JSju1ZPbN7ZaNXOZwnu1RH/wct0aCsPhLFg30IQxYS0vZMsvgWp7p1f3bLc4Kjjl7kUi6somr8JLvlOoFRb3jazcWszjd/jN1Q/NqcvjV3V89fwOrKbFfiLyjqagp3Daoz3XQYs90+wdDAmLGNh/kPegPSfGazVwVDA/Lm5r/soxZUjzPtuOoCoRG14kbEDxJrdQOZbSIFQGN6uoiH+SIIbvleYLXIrif4GdREbtSsIFIenANOMBtECHqG9Trf0c78qE9V5N4pkr22lCJ+ScOEtNd3cnjPelFPgc6MFrmUaLtIgDOnCYXmISdUEtxMasR9s5BTfQU10+qVbg7yteaCmQtq+KMZyBntBDHXYhomzvu81FrwclV9Uo3uR2skYLmuKuE5RiBvED9ZYk3N9He1Zo0VmCyr325tyDsaCkZ2qMtW/hn5R/sKPnap6Rz2FuLEwQ4Bx061WXCU8rrTFgkb+SGo+oCZnyeezcqVsi79HD1J+HpG9T9XargiaonUuQAAAABJRU5ErkJggg==",
            "encoding": "base64"
          },
          "redirectURL": "",
          "headersSize": 133,
          "bodySize": 5107,
          "_transferSize": 5240
        },
        "cache": {},
        "timings": {
          "blocked": 2897.779999981882,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.055999999999983174,
          "wait": 235.6560000116844,
          "receive": 0.8619999862276018,
          "_blocked_queueing": 2475.745999981882
        },
        "serverIPAddress": "8.43.85.13",
        "_initiator": {
          "type": "script",
          "stack": {
            "callFrames": [
              {
                "functionName": "fetch",
                "scriptId": "6",
                "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                "lineNumber": 0,
                "columnNumber": 4603
              }
            ],
            "parent": {
              "description": "async function",
              "callFrames": [
                {
                  "functionName": "fetch",
                  "scriptId": "6",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-core.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 4272
                },
                {
                  "functionName": "q",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2430
                },
                {
                  "functionName": "makeRequest",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 2037
                },
                {
                  "functionName": "handle",
                  "scriptId": "7",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-strategies.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1792
                },
                {
                  "functionName": "handleRequest",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 1452
                },
                {
                  "functionName": "",
                  "scriptId": "5",
                  "url": "https://discourse.gnome.org/javascripts/workbox/workbox-routing.prod.js",
                  "lineNumber": 0,
                  "columnNumber": 828
                }
              ]
            }
          }
        },
        "_priority": "Low",
        "_resourceType": "fetch",
        "connection": "739991"
      }
    ]
  }
}